LCOV - code coverage report
Current view: top level - Codec - noise_util.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 82 0.0 %
Date: 2019-11-25 17:12:20 Functions: 0 7 0.0 %

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2017, Alliance for Open Media. All rights reserved
       3             :  *
       4             :  * This source code is subject to the terms of the BSD 2 Clause License and
       5             :  * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
       6             :  * was not distributed with this source code in the LICENSE file, you can
       7             :  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
       8             :  * Media Patent License 1.0 was not distributed with this source code in the
       9             :  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
      10             :  */
      11             : 
      12             : #include <math.h>
      13             : 
      14             : #include <stdio.h>
      15             : #include <stdlib.h>
      16             : #include <string.h>
      17             : 
      18             : #include "EbDefinitions.h"
      19             : #include "noise_util.h"
      20             : #include "aom_dsp_rtcd.h"
      21             : 
      22             : void *eb_aom_memalign(size_t align, size_t size);
      23             : void eb_aom_free(void *memblk);
      24             : 
      25           0 : float eb_aom_noise_psd_get_default_value(int32_t block_size, float factor) {
      26           0 :     return (factor * factor / 10000) * block_size * block_size / 8;
      27             : }
      28             : 
      29             : // Internal representation of noise transform. It keeps track of the
      30             : // transformed data and a temporary working buffer to use during the
      31             : // transform.
      32             : struct aom_noise_tx_t {
      33             :     DECLARE_ALIGNED(32, float, *tx_block);
      34             :     DECLARE_ALIGNED(32, float, *temp);
      35             :     int32_t block_size;
      36             :     void(*fft)(const float *, float *, float *);
      37             :     void(*ifft)(const float *, float *, float *);
      38             : };
      39             : 
      40           0 : struct aom_noise_tx_t *eb_aom_noise_tx_malloc(int32_t block_size) {
      41             :     struct aom_noise_tx_t *noise_tx =
      42           0 :         (struct aom_noise_tx_t *)malloc(sizeof(struct aom_noise_tx_t));
      43           0 :     if (!noise_tx) return NULL;
      44           0 :     memset(noise_tx, 0, sizeof(*noise_tx));
      45           0 :     switch (block_size) {
      46           0 :     case 2:
      47           0 :         noise_tx->fft = eb_aom_fft2x2_float;
      48           0 :         noise_tx->ifft = eb_aom_ifft2x2_float;
      49           0 :         break;
      50           0 :     case 4:
      51           0 :         noise_tx->fft = eb_aom_fft4x4_float;
      52           0 :         noise_tx->ifft = eb_aom_ifft4x4_float;
      53           0 :         break;
      54           0 :     case 8:
      55           0 :         noise_tx->fft = eb_aom_fft8x8_float;
      56           0 :         noise_tx->ifft = eb_aom_ifft8x8_float;
      57           0 :         break;
      58           0 :     case 16:
      59           0 :         noise_tx->fft = eb_aom_fft16x16_float;
      60           0 :         noise_tx->ifft = eb_aom_ifft16x16_float;
      61           0 :         break;
      62           0 :     case 32:
      63           0 :         noise_tx->fft = eb_aom_fft32x32_float;
      64           0 :         noise_tx->ifft = eb_aom_ifft32x32_float;
      65           0 :         break;
      66           0 :     default:
      67           0 :         free(noise_tx);
      68           0 :         fprintf(stderr, "Unsupported block size %d\n", block_size);
      69           0 :         return NULL;
      70             :     }
      71           0 :     noise_tx->block_size = block_size;
      72           0 :     noise_tx->tx_block = (float *)eb_aom_memalign(
      73           0 :         32, 2 * sizeof(*noise_tx->tx_block) * block_size * block_size);
      74           0 :     noise_tx->temp = (float *)eb_aom_memalign(
      75           0 :         32, 2 * sizeof(*noise_tx->temp) * block_size * block_size);
      76           0 :     if (!noise_tx->tx_block || !noise_tx->temp) {
      77           0 :         eb_aom_noise_tx_free(noise_tx);
      78           0 :         return NULL;
      79             :     }
      80             :     // Clear the buffers up front. Some outputs of the forward transform are
      81             :     // real only (the imaginary component will never be touched)
      82           0 :     memset(noise_tx->tx_block, 0,
      83           0 :         2 * sizeof(*noise_tx->tx_block) * block_size * block_size);
      84           0 :     memset(noise_tx->temp, 0,
      85           0 :         2 * sizeof(*noise_tx->temp) * block_size * block_size);
      86           0 :     return noise_tx;
      87             : }
      88             : 
      89           0 : void eb_aom_noise_tx_forward(struct aom_noise_tx_t *noise_tx, const float *data) {
      90           0 :     noise_tx->fft(data, noise_tx->temp, noise_tx->tx_block);
      91           0 : }
      92             : 
      93           0 : void eb_aom_noise_tx_filter(struct aom_noise_tx_t *noise_tx, const float *psd) {
      94           0 :     const int32_t block_size = noise_tx->block_size;
      95           0 :     const float kBeta = 1.1f;
      96           0 :     const float kEps = 1e-6f;
      97           0 :     for (int32_t y = 0; y < block_size; ++y) {
      98           0 :         for (int32_t x = 0; x < block_size; ++x) {
      99           0 :             int32_t i = y * block_size + x;
     100           0 :             float *c = noise_tx->tx_block + 2 * i;
     101           0 :             const float p = c[0] * c[0] + c[1] * c[1];
     102           0 :             if (p > kBeta * psd[i] && p > 1e-6) {
     103           0 :                 noise_tx->tx_block[2 * i + 0] *= (p - psd[i]) / AOMMAX(p, kEps);
     104           0 :                 noise_tx->tx_block[2 * i + 1] *= (p - psd[i]) / AOMMAX(p, kEps);
     105             :             }
     106             :             else {
     107           0 :                 noise_tx->tx_block[2 * i + 0] *= (kBeta - 1.0f) / kBeta;
     108           0 :                 noise_tx->tx_block[2 * i + 1] *= (kBeta - 1.0f) / kBeta;
     109             :             }
     110             :         }
     111             :     }
     112           0 : }
     113             : 
     114           0 : void eb_aom_noise_tx_inverse(struct aom_noise_tx_t *noise_tx, float *data) {
     115           0 :     const int32_t n = noise_tx->block_size * noise_tx->block_size;
     116           0 :     noise_tx->ifft(noise_tx->tx_block, noise_tx->temp, data);
     117           0 :     for (int32_t i = 0; i < n; ++i)
     118           0 :         data[i] /= n;
     119           0 : }
     120             : 
     121           0 : void eb_aom_noise_tx_free(struct aom_noise_tx_t *noise_tx) {
     122           0 :     if (!noise_tx) return;
     123           0 :     eb_aom_free(noise_tx->tx_block);
     124           0 :     eb_aom_free(noise_tx->temp);
     125           0 :     free(noise_tx);
     126             : }
     127             : 
     128           0 : double eb_aom_normalized_cross_correlation(const double *a, const double *b,
     129             :     int32_t n) {
     130           0 :     double c = 0;
     131           0 :     double a_len = 0;
     132           0 :     double b_len = 0;
     133           0 :     for (int32_t i = 0; i < n; ++i) {
     134           0 :         a_len += a[i] * a[i];
     135           0 :         b_len += b[i] * b[i];
     136           0 :         c += a[i] * b[i];
     137             :     }
     138           0 :     return c / (sqrt(a_len) * sqrt(b_len));
     139             : }
     140             : 
     141             : #define OD_DIVU_DMAX (1024)
     142             : uint32_t od_divu_small_consts[OD_DIVU_DMAX][2] = {
     143             :   { 0xFFFFFFFF, 0xFFFFFFFF }, { 0xFFFFFFFF, 0xFFFFFFFF },
     144             :   { 0xAAAAAAAB, 0 },          { 0xFFFFFFFF, 0xFFFFFFFF },
     145             :   { 0xCCCCCCCD, 0 },          { 0xAAAAAAAB, 0 },
     146             :   { 0x92492492, 0x92492492 }, { 0xFFFFFFFF, 0xFFFFFFFF },
     147             :   { 0xE38E38E4, 0 },          { 0xCCCCCCCD, 0 },
     148             :   { 0xBA2E8BA3, 0 },          { 0xAAAAAAAB, 0 },
     149             :   { 0x9D89D89E, 0 },          { 0x92492492, 0x92492492 },
     150             :   { 0x88888889, 0 },          { 0xFFFFFFFF, 0xFFFFFFFF },
     151             :   { 0xF0F0F0F1, 0 },          { 0xE38E38E4, 0 },
     152             :   { 0xD79435E5, 0xD79435E5 }, { 0xCCCCCCCD, 0 },
     153             :   { 0xC30C30C3, 0xC30C30C3 }, { 0xBA2E8BA3, 0 },
     154             :   { 0xB21642C9, 0 },          { 0xAAAAAAAB, 0 },
     155             :   { 0xA3D70A3E, 0 },          { 0x9D89D89E, 0 },
     156             :   { 0x97B425ED, 0x97B425ED }, { 0x92492492, 0x92492492 },
     157             :   { 0x8D3DCB09, 0 },          { 0x88888889, 0 },
     158             :   { 0x84210842, 0x84210842 }, { 0xFFFFFFFF, 0xFFFFFFFF },
     159             :   { 0xF83E0F84, 0 },          { 0xF0F0F0F1, 0 },
     160             :   { 0xEA0EA0EA, 0xEA0EA0EA }, { 0xE38E38E4, 0 },
     161             :   { 0xDD67C8A6, 0xDD67C8A6 }, { 0xD79435E5, 0xD79435E5 },
     162             :   { 0xD20D20D2, 0xD20D20D2 }, { 0xCCCCCCCD, 0 },
     163             :   { 0xC7CE0C7D, 0 },          { 0xC30C30C3, 0xC30C30C3 },
     164             :   { 0xBE82FA0C, 0 },          { 0xBA2E8BA3, 0 },
     165             :   { 0xB60B60B6, 0xB60B60B6 }, { 0xB21642C9, 0 },
     166             :   { 0xAE4C415D, 0 },          { 0xAAAAAAAB, 0 },
     167             :   { 0xA72F053A, 0 },          { 0xA3D70A3E, 0 },
     168             :   { 0xA0A0A0A1, 0 },          { 0x9D89D89E, 0 },
     169             :   { 0x9A90E7D9, 0x9A90E7D9 }, { 0x97B425ED, 0x97B425ED },
     170             :   { 0x94F2094F, 0x94F2094F }, { 0x92492492, 0x92492492 },
     171             :   { 0x8FB823EE, 0x8FB823EE }, { 0x8D3DCB09, 0 },
     172             :   { 0x8AD8F2FC, 0 },          { 0x88888889, 0 },
     173             :   { 0x864B8A7E, 0 },          { 0x84210842, 0x84210842 },
     174             :   { 0x82082082, 0x82082082 }, { 0xFFFFFFFF, 0xFFFFFFFF },
     175             :   { 0xFC0FC0FD, 0 },          { 0xF83E0F84, 0 },
     176             :   { 0xF4898D60, 0 },          { 0xF0F0F0F1, 0 },
     177             :   { 0xED7303B6, 0 },          { 0xEA0EA0EA, 0xEA0EA0EA },
     178             :   { 0xE6C2B449, 0 },          { 0xE38E38E4, 0 },
     179             :   { 0xE070381C, 0xE070381C }, { 0xDD67C8A6, 0xDD67C8A6 },
     180             :   { 0xDA740DA8, 0 },          { 0xD79435E5, 0xD79435E5 },
     181             :   { 0xD4C77B04, 0 },          { 0xD20D20D2, 0xD20D20D2 },
     182             :   { 0xCF6474A9, 0 },          { 0xCCCCCCCD, 0 },
     183             :   { 0xCA4587E7, 0 },          { 0xC7CE0C7D, 0 },
     184             :   { 0xC565C87C, 0 },          { 0xC30C30C3, 0xC30C30C3 },
     185             :   { 0xC0C0C0C1, 0 },          { 0xBE82FA0C, 0 },
     186             :   { 0xBC52640C, 0 },          { 0xBA2E8BA3, 0 },
     187             :   { 0xB81702E1, 0 },          { 0xB60B60B6, 0xB60B60B6 },
     188             :   { 0xB40B40B4, 0xB40B40B4 }, { 0xB21642C9, 0 },
     189             :   { 0xB02C0B03, 0 },          { 0xAE4C415D, 0 },
     190             :   { 0xAC769184, 0xAC769184 }, { 0xAAAAAAAB, 0 },
     191             :   { 0xA8E83F57, 0xA8E83F57 }, { 0xA72F053A, 0 },
     192             :   { 0xA57EB503, 0 },          { 0xA3D70A3E, 0 },
     193             :   { 0xA237C32B, 0xA237C32B }, { 0xA0A0A0A1, 0 },
     194             :   { 0x9F1165E7, 0x9F1165E7 }, { 0x9D89D89E, 0 },
     195             :   { 0x9C09C09C, 0x9C09C09C }, { 0x9A90E7D9, 0x9A90E7D9 },
     196             :   { 0x991F1A51, 0x991F1A51 }, { 0x97B425ED, 0x97B425ED },
     197             :   { 0x964FDA6C, 0x964FDA6C }, { 0x94F2094F, 0x94F2094F },
     198             :   { 0x939A85C4, 0x939A85C4 }, { 0x92492492, 0x92492492 },
     199             :   { 0x90FDBC09, 0x90FDBC09 }, { 0x8FB823EE, 0x8FB823EE },
     200             :   { 0x8E78356D, 0x8E78356D }, { 0x8D3DCB09, 0 },
     201             :   { 0x8C08C08C, 0x8C08C08C }, { 0x8AD8F2FC, 0 },
     202             :   { 0x89AE408A, 0 },          { 0x88888889, 0 },
     203             :   { 0x8767AB5F, 0x8767AB5F }, { 0x864B8A7E, 0 },
     204             :   { 0x85340853, 0x85340853 }, { 0x84210842, 0x84210842 },
     205             :   { 0x83126E98, 0 },          { 0x82082082, 0x82082082 },
     206             :   { 0x81020408, 0x81020408 }, { 0xFFFFFFFF, 0xFFFFFFFF },
     207             :   { 0xFE03F810, 0 },          { 0xFC0FC0FD, 0 },
     208             :   { 0xFA232CF3, 0 },          { 0xF83E0F84, 0 },
     209             :   { 0xF6603D99, 0 },          { 0xF4898D60, 0 },
     210             :   { 0xF2B9D649, 0 },          { 0xF0F0F0F1, 0 },
     211             :   { 0xEF2EB720, 0 },          { 0xED7303B6, 0 },
     212             :   { 0xEBBDB2A6, 0 },          { 0xEA0EA0EA, 0xEA0EA0EA },
     213             :   { 0xE865AC7C, 0 },          { 0xE6C2B449, 0 },
     214             :   { 0xE525982B, 0 },          { 0xE38E38E4, 0 },
     215             :   { 0xE1FC780F, 0 },          { 0xE070381C, 0xE070381C },
     216             :   { 0xDEE95C4D, 0 },          { 0xDD67C8A6, 0xDD67C8A6 },
     217             :   { 0xDBEB61EF, 0 },          { 0xDA740DA8, 0 },
     218             :   { 0xD901B204, 0 },          { 0xD79435E5, 0xD79435E5 },
     219             :   { 0xD62B80D7, 0 },          { 0xD4C77B04, 0 },
     220             :   { 0xD3680D37, 0 },          { 0xD20D20D2, 0xD20D20D2 },
     221             :   { 0xD0B69FCC, 0 },          { 0xCF6474A9, 0 },
     222             :   { 0xCE168A77, 0xCE168A77 }, { 0xCCCCCCCD, 0 },
     223             :   { 0xCB8727C1, 0 },          { 0xCA4587E7, 0 },
     224             :   { 0xC907DA4F, 0 },          { 0xC7CE0C7D, 0 },
     225             :   { 0xC6980C6A, 0 },          { 0xC565C87C, 0 },
     226             :   { 0xC4372F86, 0 },          { 0xC30C30C3, 0xC30C30C3 },
     227             :   { 0xC1E4BBD6, 0 },          { 0xC0C0C0C1, 0 },
     228             :   { 0xBFA02FE8, 0xBFA02FE8 }, { 0xBE82FA0C, 0 },
     229             :   { 0xBD691047, 0xBD691047 }, { 0xBC52640C, 0 },
     230             :   { 0xBB3EE722, 0 },          { 0xBA2E8BA3, 0 },
     231             :   { 0xB92143FA, 0xB92143FA }, { 0xB81702E1, 0 },
     232             :   { 0xB70FBB5A, 0xB70FBB5A }, { 0xB60B60B6, 0xB60B60B6 },
     233             :   { 0xB509E68B, 0 },          { 0xB40B40B4, 0xB40B40B4 },
     234             :   { 0xB30F6353, 0 },          { 0xB21642C9, 0 },
     235             :   { 0xB11FD3B8, 0xB11FD3B8 }, { 0xB02C0B03, 0 },
     236             :   { 0xAF3ADDC7, 0 },          { 0xAE4C415D, 0 },
     237             :   { 0xAD602B58, 0xAD602B58 }, { 0xAC769184, 0xAC769184 },
     238             :   { 0xAB8F69E3, 0 },          { 0xAAAAAAAB, 0 },
     239             :   { 0xA9C84A48, 0 },          { 0xA8E83F57, 0xA8E83F57 },
     240             :   { 0xA80A80A8, 0xA80A80A8 }, { 0xA72F053A, 0 },
     241             :   { 0xA655C439, 0xA655C439 }, { 0xA57EB503, 0 },
     242             :   { 0xA4A9CF1E, 0 },          { 0xA3D70A3E, 0 },
     243             :   { 0xA3065E40, 0 },          { 0xA237C32B, 0xA237C32B },
     244             :   { 0xA16B312F, 0 },          { 0xA0A0A0A1, 0 },
     245             :   { 0x9FD809FE, 0 },          { 0x9F1165E7, 0x9F1165E7 },
     246             :   { 0x9E4CAD24, 0 },          { 0x9D89D89E, 0 },
     247             :   { 0x9CC8E161, 0 },          { 0x9C09C09C, 0x9C09C09C },
     248             :   { 0x9B4C6F9F, 0 },          { 0x9A90E7D9, 0x9A90E7D9 },
     249             :   { 0x99D722DB, 0 },          { 0x991F1A51, 0x991F1A51 },
     250             :   { 0x9868C80A, 0 },          { 0x97B425ED, 0x97B425ED },
     251             :   { 0x97012E02, 0x97012E02 }, { 0x964FDA6C, 0x964FDA6C },
     252             :   { 0x95A02568, 0x95A02568 }, { 0x94F2094F, 0x94F2094F },
     253             :   { 0x94458094, 0x94458094 }, { 0x939A85C4, 0x939A85C4 },
     254             :   { 0x92F11384, 0x92F11384 }, { 0x92492492, 0x92492492 },
     255             :   { 0x91A2B3C5, 0 },          { 0x90FDBC09, 0x90FDBC09 },
     256             :   { 0x905A3863, 0x905A3863 }, { 0x8FB823EE, 0x8FB823EE },
     257             :   { 0x8F1779DA, 0 },          { 0x8E78356D, 0x8E78356D },
     258             :   { 0x8DDA5202, 0x8DDA5202 }, { 0x8D3DCB09, 0 },
     259             :   { 0x8CA29C04, 0x8CA29C04 }, { 0x8C08C08C, 0x8C08C08C },
     260             :   { 0x8B70344A, 0x8B70344A }, { 0x8AD8F2FC, 0 },
     261             :   { 0x8A42F870, 0x8A42F870 }, { 0x89AE408A, 0 },
     262             :   { 0x891AC73B, 0 },          { 0x88888889, 0 },
     263             :   { 0x87F78088, 0 },          { 0x8767AB5F, 0x8767AB5F },
     264             :   { 0x86D90545, 0 },          { 0x864B8A7E, 0 },
     265             :   { 0x85BF3761, 0x85BF3761 }, { 0x85340853, 0x85340853 },
     266             :   { 0x84A9F9C8, 0x84A9F9C8 }, { 0x84210842, 0x84210842 },
     267             :   { 0x83993052, 0x83993052 }, { 0x83126E98, 0 },
     268             :   { 0x828CBFBF, 0 },          { 0x82082082, 0x82082082 },
     269             :   { 0x81848DA9, 0 },          { 0x81020408, 0x81020408 },
     270             :   { 0x80808081, 0 },          { 0xFFFFFFFF, 0xFFFFFFFF },
     271             :   { 0xFF00FF01, 0 },          { 0xFE03F810, 0 },
     272             :   { 0xFD08E551, 0 },          { 0xFC0FC0FD, 0 },
     273             :   { 0xFB188566, 0 },          { 0xFA232CF3, 0 },
     274             :   { 0xF92FB222, 0 },          { 0xF83E0F84, 0 },
     275             :   { 0xF74E3FC3, 0 },          { 0xF6603D99, 0 },
     276             :   { 0xF57403D6, 0 },          { 0xF4898D60, 0 },
     277             :   { 0xF3A0D52D, 0 },          { 0xF2B9D649, 0 },
     278             :   { 0xF1D48BCF, 0 },          { 0xF0F0F0F1, 0 },
     279             :   { 0xF00F00F0, 0xF00F00F0 }, { 0xEF2EB720, 0 },
     280             :   { 0xEE500EE5, 0xEE500EE5 }, { 0xED7303B6, 0 },
     281             :   { 0xEC979119, 0 },          { 0xEBBDB2A6, 0 },
     282             :   { 0xEAE56404, 0 },          { 0xEA0EA0EA, 0xEA0EA0EA },
     283             :   { 0xE9396520, 0 },          { 0xE865AC7C, 0 },
     284             :   { 0xE79372E3, 0 },          { 0xE6C2B449, 0 },
     285             :   { 0xE5F36CB0, 0xE5F36CB0 }, { 0xE525982B, 0 },
     286             :   { 0xE45932D8, 0 },          { 0xE38E38E4, 0 },
     287             :   { 0xE2C4A689, 0 },          { 0xE1FC780F, 0 },
     288             :   { 0xE135A9CA, 0 },          { 0xE070381C, 0xE070381C },
     289             :   { 0xDFAC1F75, 0 },          { 0xDEE95C4D, 0 },
     290             :   { 0xDE27EB2D, 0 },          { 0xDD67C8A6, 0xDD67C8A6 },
     291             :   { 0xDCA8F159, 0 },          { 0xDBEB61EF, 0 },
     292             :   { 0xDB2F171E, 0 },          { 0xDA740DA8, 0 },
     293             :   { 0xD9BA4257, 0 },          { 0xD901B204, 0 },
     294             :   { 0xD84A598F, 0 },          { 0xD79435E5, 0xD79435E5 },
     295             :   { 0xD6DF43FD, 0 },          { 0xD62B80D7, 0 },
     296             :   { 0xD578E97D, 0 },          { 0xD4C77B04, 0 },
     297             :   { 0xD417328A, 0 },          { 0xD3680D37, 0 },
     298             :   { 0xD2BA083C, 0 },          { 0xD20D20D2, 0xD20D20D2 },
     299             :   { 0xD161543E, 0xD161543E }, { 0xD0B69FCC, 0 },
     300             :   { 0xD00D00D0, 0xD00D00D0 }, { 0xCF6474A9, 0 },
     301             :   { 0xCEBCF8BC, 0 },          { 0xCE168A77, 0xCE168A77 },
     302             :   { 0xCD712753, 0 },          { 0xCCCCCCCD, 0 },
     303             :   { 0xCC29786D, 0 },          { 0xCB8727C1, 0 },
     304             :   { 0xCAE5D85F, 0xCAE5D85F }, { 0xCA4587E7, 0 },
     305             :   { 0xC9A633FD, 0 },          { 0xC907DA4F, 0 },
     306             :   { 0xC86A7890, 0xC86A7890 }, { 0xC7CE0C7D, 0 },
     307             :   { 0xC73293D8, 0 },          { 0xC6980C6A, 0 },
     308             :   { 0xC5FE7403, 0xC5FE7403 }, { 0xC565C87C, 0 },
     309             :   { 0xC4CE07B0, 0xC4CE07B0 }, { 0xC4372F86, 0 },
     310             :   { 0xC3A13DE6, 0xC3A13DE6 }, { 0xC30C30C3, 0xC30C30C3 },
     311             :   { 0xC2780614, 0 },          { 0xC1E4BBD6, 0 },
     312             :   { 0xC152500C, 0xC152500C }, { 0xC0C0C0C1, 0 },
     313             :   { 0xC0300C03, 0xC0300C03 }, { 0xBFA02FE8, 0xBFA02FE8 },
     314             :   { 0xBF112A8B, 0 },          { 0xBE82FA0C, 0 },
     315             :   { 0xBDF59C92, 0 },          { 0xBD691047, 0xBD691047 },
     316             :   { 0xBCDD535E, 0 },          { 0xBC52640C, 0 },
     317             :   { 0xBBC8408D, 0 },          { 0xBB3EE722, 0 },
     318             :   { 0xBAB65610, 0xBAB65610 }, { 0xBA2E8BA3, 0 },
     319             :   { 0xB9A7862A, 0xB9A7862A }, { 0xB92143FA, 0xB92143FA },
     320             :   { 0xB89BC36D, 0 },          { 0xB81702E1, 0 },
     321             :   { 0xB79300B8, 0 },          { 0xB70FBB5A, 0xB70FBB5A },
     322             :   { 0xB68D3134, 0xB68D3134 }, { 0xB60B60B6, 0xB60B60B6 },
     323             :   { 0xB58A4855, 0xB58A4855 }, { 0xB509E68B, 0 },
     324             :   { 0xB48A39D4, 0xB48A39D4 }, { 0xB40B40B4, 0xB40B40B4 },
     325             :   { 0xB38CF9B0, 0xB38CF9B0 }, { 0xB30F6353, 0 },
     326             :   { 0xB2927C2A, 0 },          { 0xB21642C9, 0 },
     327             :   { 0xB19AB5C5, 0 },          { 0xB11FD3B8, 0xB11FD3B8 },
     328             :   { 0xB0A59B42, 0 },          { 0xB02C0B03, 0 },
     329             :   { 0xAFB321A1, 0xAFB321A1 }, { 0xAF3ADDC7, 0 },
     330             :   { 0xAEC33E20, 0 },          { 0xAE4C415D, 0 },
     331             :   { 0xADD5E632, 0xADD5E632 }, { 0xAD602B58, 0xAD602B58 },
     332             :   { 0xACEB0F89, 0xACEB0F89 }, { 0xAC769184, 0xAC769184 },
     333             :   { 0xAC02B00B, 0 },          { 0xAB8F69E3, 0 },
     334             :   { 0xAB1CBDD4, 0 },          { 0xAAAAAAAB, 0 },
     335             :   { 0xAA392F36, 0 },          { 0xA9C84A48, 0 },
     336             :   { 0xA957FAB5, 0xA957FAB5 }, { 0xA8E83F57, 0xA8E83F57 },
     337             :   { 0xA8791709, 0 },          { 0xA80A80A8, 0xA80A80A8 },
     338             :   { 0xA79C7B17, 0 },          { 0xA72F053A, 0 },
     339             :   { 0xA6C21DF7, 0 },          { 0xA655C439, 0xA655C439 },
     340             :   { 0xA5E9F6ED, 0xA5E9F6ED }, { 0xA57EB503, 0 },
     341             :   { 0xA513FD6C, 0 },          { 0xA4A9CF1E, 0 },
     342             :   { 0xA4402910, 0xA4402910 }, { 0xA3D70A3E, 0 },
     343             :   { 0xA36E71A3, 0 },          { 0xA3065E40, 0 },
     344             :   { 0xA29ECF16, 0xA29ECF16 }, { 0xA237C32B, 0xA237C32B },
     345             :   { 0xA1D13986, 0 },          { 0xA16B312F, 0 },
     346             :   { 0xA105A933, 0 },          { 0xA0A0A0A1, 0 },
     347             :   { 0xA03C1689, 0 },          { 0x9FD809FE, 0 },
     348             :   { 0x9F747A15, 0x9F747A15 }, { 0x9F1165E7, 0x9F1165E7 },
     349             :   { 0x9EAECC8D, 0x9EAECC8D }, { 0x9E4CAD24, 0 },
     350             :   { 0x9DEB06C9, 0x9DEB06C9 }, { 0x9D89D89E, 0 },
     351             :   { 0x9D2921C4, 0 },          { 0x9CC8E161, 0 },
     352             :   { 0x9C69169B, 0x9C69169B }, { 0x9C09C09C, 0x9C09C09C },
     353             :   { 0x9BAADE8E, 0x9BAADE8E }, { 0x9B4C6F9F, 0 },
     354             :   { 0x9AEE72FD, 0 },          { 0x9A90E7D9, 0x9A90E7D9 },
     355             :   { 0x9A33CD67, 0x9A33CD67 }, { 0x99D722DB, 0 },
     356             :   { 0x997AE76B, 0x997AE76B }, { 0x991F1A51, 0x991F1A51 },
     357             :   { 0x98C3BAC7, 0x98C3BAC7 }, { 0x9868C80A, 0 },
     358             :   { 0x980E4156, 0x980E4156 }, { 0x97B425ED, 0x97B425ED },
     359             :   { 0x975A7510, 0 },          { 0x97012E02, 0x97012E02 },
     360             :   { 0x96A8500A, 0 },          { 0x964FDA6C, 0x964FDA6C },
     361             :   { 0x95F7CC73, 0 },          { 0x95A02568, 0x95A02568 },
     362             :   { 0x9548E498, 0 },          { 0x94F2094F, 0x94F2094F },
     363             :   { 0x949B92DE, 0 },          { 0x94458094, 0x94458094 },
     364             :   { 0x93EFD1C5, 0x93EFD1C5 }, { 0x939A85C4, 0x939A85C4 },
     365             :   { 0x93459BE7, 0 },          { 0x92F11384, 0x92F11384 },
     366             :   { 0x929CEBF5, 0 },          { 0x92492492, 0x92492492 },
     367             :   { 0x91F5BCB9, 0 },          { 0x91A2B3C5, 0 },
     368             :   { 0x91500915, 0x91500915 }, { 0x90FDBC09, 0x90FDBC09 },
     369             :   { 0x90ABCC02, 0x90ABCC02 }, { 0x905A3863, 0x905A3863 },
     370             :   { 0x90090090, 0x90090090 }, { 0x8FB823EE, 0x8FB823EE },
     371             :   { 0x8F67A1E4, 0 },          { 0x8F1779DA, 0 },
     372             :   { 0x8EC7AB3A, 0 },          { 0x8E78356D, 0x8E78356D },
     373             :   { 0x8E2917E1, 0 },          { 0x8DDA5202, 0x8DDA5202 },
     374             :   { 0x8D8BE340, 0 },          { 0x8D3DCB09, 0 },
     375             :   { 0x8CF008CF, 0x8CF008CF }, { 0x8CA29C04, 0x8CA29C04 },
     376             :   { 0x8C55841D, 0 },          { 0x8C08C08C, 0x8C08C08C },
     377             :   { 0x8BBC50C9, 0 },          { 0x8B70344A, 0x8B70344A },
     378             :   { 0x8B246A88, 0 },          { 0x8AD8F2FC, 0 },
     379             :   { 0x8A8DCD20, 0 },          { 0x8A42F870, 0x8A42F870 },
     380             :   { 0x89F8746A, 0 },          { 0x89AE408A, 0 },
     381             :   { 0x89645C4F, 0x89645C4F }, { 0x891AC73B, 0 },
     382             :   { 0x88D180CD, 0x88D180CD }, { 0x88888889, 0 },
     383             :   { 0x883FDDF0, 0x883FDDF0 }, { 0x87F78088, 0 },
     384             :   { 0x87AF6FD6, 0 },          { 0x8767AB5F, 0x8767AB5F },
     385             :   { 0x872032AC, 0x872032AC }, { 0x86D90545, 0 },
     386             :   { 0x869222B2, 0 },          { 0x864B8A7E, 0 },
     387             :   { 0x86053C34, 0x86053C34 }, { 0x85BF3761, 0x85BF3761 },
     388             :   { 0x85797B91, 0x85797B91 }, { 0x85340853, 0x85340853 },
     389             :   { 0x84EEDD36, 0 },          { 0x84A9F9C8, 0x84A9F9C8 },
     390             :   { 0x84655D9C, 0 },          { 0x84210842, 0x84210842 },
     391             :   { 0x83DCF94E, 0 },          { 0x83993052, 0x83993052 },
     392             :   { 0x8355ACE4, 0 },          { 0x83126E98, 0 },
     393             :   { 0x82CF7504, 0 },          { 0x828CBFBF, 0 },
     394             :   { 0x824A4E61, 0 },          { 0x82082082, 0x82082082 },
     395             :   { 0x81C635BC, 0x81C635BC }, { 0x81848DA9, 0 },
     396             :   { 0x814327E4, 0 },          { 0x81020408, 0x81020408 },
     397             :   { 0x80C121B3, 0 },          { 0x80808081, 0 },
     398             :   { 0x80402010, 0x80402010 }, { 0xFFFFFFFF, 0xFFFFFFFF },
     399             :   { 0xFF803FE1, 0 },          { 0xFF00FF01, 0 },
     400             :   { 0xFE823CA6, 0 },          { 0xFE03F810, 0 },
     401             :   { 0xFD863087, 0 },          { 0xFD08E551, 0 },
     402             :   { 0xFC8C15B5, 0 },          { 0xFC0FC0FD, 0 },
     403             :   { 0xFB93E673, 0 },          { 0xFB188566, 0 },
     404             :   { 0xFA9D9D20, 0 },          { 0xFA232CF3, 0 },
     405             :   { 0xF9A9342D, 0 },          { 0xF92FB222, 0 },
     406             :   { 0xF8B6A622, 0xF8B6A622 }, { 0xF83E0F84, 0 },
     407             :   { 0xF7C5ED9D, 0 },          { 0xF74E3FC3, 0 },
     408             :   { 0xF6D7054E, 0 },          { 0xF6603D99, 0 },
     409             :   { 0xF5E9E7FD, 0 },          { 0xF57403D6, 0 },
     410             :   { 0xF4FE9083, 0 },          { 0xF4898D60, 0 },
     411             :   { 0xF414F9CE, 0 },          { 0xF3A0D52D, 0 },
     412             :   { 0xF32D1EE0, 0 },          { 0xF2B9D649, 0 },
     413             :   { 0xF246FACC, 0 },          { 0xF1D48BCF, 0 },
     414             :   { 0xF16288B9, 0 },          { 0xF0F0F0F1, 0 },
     415             :   { 0xF07FC3E0, 0xF07FC3E0 }, { 0xF00F00F0, 0xF00F00F0 },
     416             :   { 0xEF9EA78C, 0 },          { 0xEF2EB720, 0 },
     417             :   { 0xEEBF2F19, 0 },          { 0xEE500EE5, 0xEE500EE5 },
     418             :   { 0xEDE155F4, 0 },          { 0xED7303B6, 0 },
     419             :   { 0xED05179C, 0xED05179C }, { 0xEC979119, 0 },
     420             :   { 0xEC2A6FA0, 0xEC2A6FA0 }, { 0xEBBDB2A6, 0 },
     421             :   { 0xEB5159A0, 0 },          { 0xEAE56404, 0 },
     422             :   { 0xEA79D14A, 0 },          { 0xEA0EA0EA, 0xEA0EA0EA },
     423             :   { 0xE9A3D25E, 0xE9A3D25E }, { 0xE9396520, 0 },
     424             :   { 0xE8CF58AB, 0 },          { 0xE865AC7C, 0 },
     425             :   { 0xE7FC600F, 0 },          { 0xE79372E3, 0 },
     426             :   { 0xE72AE476, 0 },          { 0xE6C2B449, 0 },
     427             :   { 0xE65AE1DC, 0 },          { 0xE5F36CB0, 0xE5F36CB0 },
     428             :   { 0xE58C544A, 0 },          { 0xE525982B, 0 },
     429             :   { 0xE4BF37D9, 0 },          { 0xE45932D8, 0 },
     430             :   { 0xE3F388AF, 0 },          { 0xE38E38E4, 0 },
     431             :   { 0xE32942FF, 0 },          { 0xE2C4A689, 0 },
     432             :   { 0xE260630B, 0 },          { 0xE1FC780F, 0 },
     433             :   { 0xE198E520, 0 },          { 0xE135A9CA, 0 },
     434             :   { 0xE0D2C59A, 0 },          { 0xE070381C, 0xE070381C },
     435             :   { 0xE00E00E0, 0xE00E00E0 }, { 0xDFAC1F75, 0 },
     436             :   { 0xDF4A9369, 0 },          { 0xDEE95C4D, 0 },
     437             :   { 0xDE8879B3, 0 },          { 0xDE27EB2D, 0 },
     438             :   { 0xDDC7B04D, 0 },          { 0xDD67C8A6, 0xDD67C8A6 },
     439             :   { 0xDD0833CE, 0 },          { 0xDCA8F159, 0 },
     440             :   { 0xDC4A00DD, 0 },          { 0xDBEB61EF, 0 },
     441             :   { 0xDB8D1428, 0 },          { 0xDB2F171E, 0 },
     442             :   { 0xDAD16A6B, 0 },          { 0xDA740DA8, 0 },
     443             :   { 0xDA17006D, 0xDA17006D }, { 0xD9BA4257, 0 },
     444             :   { 0xD95DD300, 0 },          { 0xD901B204, 0 },
     445             :   { 0xD8A5DEFF, 0 },          { 0xD84A598F, 0 },
     446             :   { 0xD7EF2152, 0 },          { 0xD79435E5, 0xD79435E5 },
     447             :   { 0xD73996E9, 0 },          { 0xD6DF43FD, 0 },
     448             :   { 0xD6853CC1, 0 },          { 0xD62B80D7, 0 },
     449             :   { 0xD5D20FDF, 0 },          { 0xD578E97D, 0 },
     450             :   { 0xD5200D52, 0xD5200D52 }, { 0xD4C77B04, 0 },
     451             :   { 0xD46F3235, 0 },          { 0xD417328A, 0 },
     452             :   { 0xD3BF7BA9, 0 },          { 0xD3680D37, 0 },
     453             :   { 0xD310E6DB, 0 },          { 0xD2BA083C, 0 },
     454             :   { 0xD2637101, 0 },          { 0xD20D20D2, 0xD20D20D2 },
     455             :   { 0xD1B71759, 0 },          { 0xD161543E, 0xD161543E },
     456             :   { 0xD10BD72C, 0 },          { 0xD0B69FCC, 0 },
     457             :   { 0xD061ADCA, 0 },          { 0xD00D00D0, 0xD00D00D0 },
     458             :   { 0xCFB8988C, 0 },          { 0xCF6474A9, 0 },
     459             :   { 0xCF1094D4, 0 },          { 0xCEBCF8BC, 0 },
     460             :   { 0xCE69A00D, 0 },          { 0xCE168A77, 0xCE168A77 },
     461             :   { 0xCDC3B7A9, 0xCDC3B7A9 }, { 0xCD712753, 0 },
     462             :   { 0xCD1ED924, 0 },          { 0xCCCCCCCD, 0 },
     463             :   { 0xCC7B0200, 0 },          { 0xCC29786D, 0 },
     464             :   { 0xCBD82FC7, 0 },          { 0xCB8727C1, 0 },
     465             :   { 0xCB36600D, 0 },          { 0xCAE5D85F, 0xCAE5D85F },
     466             :   { 0xCA95906C, 0 },          { 0xCA4587E7, 0 },
     467             :   { 0xC9F5BE86, 0 },          { 0xC9A633FD, 0 },
     468             :   { 0xC956E803, 0xC956E803 }, { 0xC907DA4F, 0 },
     469             :   { 0xC8B90A96, 0 },          { 0xC86A7890, 0xC86A7890 },
     470             :   { 0xC81C23F5, 0xC81C23F5 }, { 0xC7CE0C7D, 0 },
     471             :   { 0xC78031E0, 0xC78031E0 }, { 0xC73293D8, 0 },
     472             :   { 0xC6E5321D, 0 },          { 0xC6980C6A, 0 },
     473             :   { 0xC64B2278, 0xC64B2278 }, { 0xC5FE7403, 0xC5FE7403 },
     474             :   { 0xC5B200C6, 0 },          { 0xC565C87C, 0 },
     475             :   { 0xC519CAE0, 0xC519CAE0 }, { 0xC4CE07B0, 0xC4CE07B0 },
     476             :   { 0xC4827EA8, 0xC4827EA8 }, { 0xC4372F86, 0 },
     477             :   { 0xC3EC1A06, 0 },          { 0xC3A13DE6, 0xC3A13DE6 },
     478             :   { 0xC3569AE6, 0 },          { 0xC30C30C3, 0xC30C30C3 },
     479             :   { 0xC2C1FF3E, 0 },          { 0xC2780614, 0 },
     480             :   { 0xC22E4507, 0 },          { 0xC1E4BBD6, 0 },
     481             :   { 0xC19B6A42, 0 },          { 0xC152500C, 0xC152500C },
     482             :   { 0xC1096CF6, 0 },          { 0xC0C0C0C1, 0 },
     483             :   { 0xC0784B2F, 0 },          { 0xC0300C03, 0xC0300C03 },
     484             :   { 0xBFE80300, 0 },          { 0xBFA02FE8, 0xBFA02FE8 },
     485             :   { 0xBF589280, 0 },          { 0xBF112A8B, 0 },
     486             :   { 0xBEC9F7CE, 0 },          { 0xBE82FA0C, 0 },
     487             :   { 0xBE3C310C, 0 },          { 0xBDF59C92, 0 },
     488             :   { 0xBDAF3C64, 0 },          { 0xBD691047, 0xBD691047 },
     489             :   { 0xBD231803, 0 },          { 0xBCDD535E, 0 },
     490             :   { 0xBC97C21E, 0xBC97C21E }, { 0xBC52640C, 0 },
     491             :   { 0xBC0D38EE, 0xBC0D38EE }, { 0xBBC8408D, 0 },
     492             :   { 0xBB837AB1, 0 },          { 0xBB3EE722, 0 },
     493             :   { 0xBAFA85A9, 0xBAFA85A9 }, { 0xBAB65610, 0xBAB65610 },
     494             :   { 0xBA725820, 0xBA725820 }, { 0xBA2E8BA3, 0 },
     495             :   { 0xB9EAF063, 0 },          { 0xB9A7862A, 0xB9A7862A },
     496             :   { 0xB9644CC4, 0 },          { 0xB92143FA, 0xB92143FA },
     497             :   { 0xB8DE6B9A, 0 },          { 0xB89BC36D, 0 },
     498             :   { 0xB8594B41, 0 },          { 0xB81702E1, 0 },
     499             :   { 0xB7D4EA19, 0xB7D4EA19 }, { 0xB79300B8, 0 },
     500             :   { 0xB7514689, 0 },          { 0xB70FBB5A, 0xB70FBB5A },
     501             :   { 0xB6CE5EF9, 0xB6CE5EF9 }, { 0xB68D3134, 0xB68D3134 },
     502             :   { 0xB64C31D9, 0 },          { 0xB60B60B6, 0xB60B60B6 },
     503             :   { 0xB5CABD9B, 0 },          { 0xB58A4855, 0xB58A4855 },
     504             :   { 0xB54A00B5, 0xB54A00B5 }, { 0xB509E68B, 0 },
     505             :   { 0xB4C9F9A5, 0 },          { 0xB48A39D4, 0xB48A39D4 },
     506             :   { 0xB44AA6E9, 0xB44AA6E9 }, { 0xB40B40B4, 0xB40B40B4 },
     507             :   { 0xB3CC0706, 0 },          { 0xB38CF9B0, 0xB38CF9B0 },
     508             :   { 0xB34E1884, 0 },          { 0xB30F6353, 0 },
     509             :   { 0xB2D0D9EF, 0 },          { 0xB2927C2A, 0 },
     510             :   { 0xB25449D7, 0 },          { 0xB21642C9, 0 },
     511             :   { 0xB1D866D1, 0xB1D866D1 }, { 0xB19AB5C5, 0 },
     512             :   { 0xB15D2F76, 0 },          { 0xB11FD3B8, 0xB11FD3B8 },
     513             :   { 0xB0E2A260, 0xB0E2A260 }, { 0xB0A59B42, 0 },
     514             :   { 0xB068BE31, 0 },          { 0xB02C0B03, 0 },
     515             :   { 0xAFEF818C, 0 },          { 0xAFB321A1, 0xAFB321A1 },
     516             :   { 0xAF76EB19, 0 },          { 0xAF3ADDC7, 0 },
     517             :   { 0xAEFEF982, 0 },          { 0xAEC33E20, 0 },
     518             :   { 0xAE87AB76, 0xAE87AB76 }, { 0xAE4C415D, 0 },
     519             :   { 0xAE10FFA9, 0 },          { 0xADD5E632, 0xADD5E632 },
     520             :   { 0xAD9AF4D0, 0 },          { 0xAD602B58, 0xAD602B58 },
     521             :   { 0xAD2589A4, 0 },          { 0xACEB0F89, 0xACEB0F89 },
     522             :   { 0xACB0BCE1, 0xACB0BCE1 }, { 0xAC769184, 0xAC769184 },
     523             :   { 0xAC3C8D4A, 0 },          { 0xAC02B00B, 0 },
     524             :   { 0xABC8F9A0, 0xABC8F9A0 }, { 0xAB8F69E3, 0 },
     525             :   { 0xAB5600AC, 0 },          { 0xAB1CBDD4, 0 },
     526             :   { 0xAAE3A136, 0 },          { 0xAAAAAAAB, 0 },
     527             :   { 0xAA71DA0D, 0 },          { 0xAA392F36, 0 },
     528             :   { 0xAA00AA01, 0 },          { 0xA9C84A48, 0 },
     529             :   { 0xA9900FE6, 0 },          { 0xA957FAB5, 0xA957FAB5 },
     530             :   { 0xA9200A92, 0xA9200A92 }, { 0xA8E83F57, 0xA8E83F57 },
     531             :   { 0xA8B098E0, 0xA8B098E0 }, { 0xA8791709, 0 },
     532             :   { 0xA841B9AD, 0 },          { 0xA80A80A8, 0xA80A80A8 },
     533             :   { 0xA7D36BD8, 0 },          { 0xA79C7B17, 0 },
     534             :   { 0xA765AE44, 0 },          { 0xA72F053A, 0 },
     535             :   { 0xA6F87FD6, 0xA6F87FD6 }, { 0xA6C21DF7, 0 },
     536             :   { 0xA68BDF79, 0 },          { 0xA655C439, 0xA655C439 },
     537             :   { 0xA61FCC16, 0xA61FCC16 }, { 0xA5E9F6ED, 0xA5E9F6ED },
     538             :   { 0xA5B4449D, 0 },          { 0xA57EB503, 0 },
     539             :   { 0xA54947FE, 0 },          { 0xA513FD6C, 0 },
     540             :   { 0xA4DED52C, 0xA4DED52C }, { 0xA4A9CF1E, 0 },
     541             :   { 0xA474EB1F, 0xA474EB1F }, { 0xA4402910, 0xA4402910 },
     542             :   { 0xA40B88D0, 0 },          { 0xA3D70A3E, 0 },
     543             :   { 0xA3A2AD39, 0xA3A2AD39 }, { 0xA36E71A3, 0 },
     544             :   { 0xA33A575A, 0xA33A575A }, { 0xA3065E40, 0 },
     545             :   { 0xA2D28634, 0 },          { 0xA29ECF16, 0xA29ECF16 },
     546             :   { 0xA26B38C9, 0 },          { 0xA237C32B, 0xA237C32B },
     547             :   { 0xA2046E1F, 0xA2046E1F }, { 0xA1D13986, 0 },
     548             :   { 0xA19E2540, 0 },          { 0xA16B312F, 0 },
     549             :   { 0xA1385D35, 0 },          { 0xA105A933, 0 },
     550             :   { 0xA0D3150C, 0 },          { 0xA0A0A0A1, 0 },
     551             :   { 0xA06E4BD4, 0xA06E4BD4 }, { 0xA03C1689, 0 },
     552             :   { 0xA00A00A0, 0xA00A00A0 }, { 0x9FD809FE, 0 },
     553             :   { 0x9FA63284, 0 },          { 0x9F747A15, 0x9F747A15 },
     554             :   { 0x9F42E095, 0x9F42E095 }, { 0x9F1165E7, 0x9F1165E7 },
     555             :   { 0x9EE009EE, 0x9EE009EE }, { 0x9EAECC8D, 0x9EAECC8D },
     556             :   { 0x9E7DADA9, 0 },          { 0x9E4CAD24, 0 },
     557             :   { 0x9E1BCAE3, 0 },          { 0x9DEB06C9, 0x9DEB06C9 },
     558             :   { 0x9DBA60BB, 0x9DBA60BB }, { 0x9D89D89E, 0 },
     559             :   { 0x9D596E54, 0x9D596E54 }, { 0x9D2921C4, 0 },
     560             :   { 0x9CF8F2D1, 0x9CF8F2D1 }, { 0x9CC8E161, 0 },
     561             :   { 0x9C98ED58, 0 },          { 0x9C69169B, 0x9C69169B },
     562             :   { 0x9C395D10, 0x9C395D10 }, { 0x9C09C09C, 0x9C09C09C },
     563             :   { 0x9BDA4124, 0x9BDA4124 }, { 0x9BAADE8E, 0x9BAADE8E },
     564             :   { 0x9B7B98C0, 0 },          { 0x9B4C6F9F, 0 },
     565             :   { 0x9B1D6311, 0x9B1D6311 }, { 0x9AEE72FD, 0 },
     566             :   { 0x9ABF9F48, 0x9ABF9F48 }, { 0x9A90E7D9, 0x9A90E7D9 },
     567             :   { 0x9A624C97, 0 },          { 0x9A33CD67, 0x9A33CD67 },
     568             :   { 0x9A056A31, 0 },          { 0x99D722DB, 0 },
     569             :   { 0x99A8F74C, 0 },          { 0x997AE76B, 0x997AE76B },
     570             :   { 0x994CF320, 0x994CF320 }, { 0x991F1A51, 0x991F1A51 },
     571             :   { 0x98F15CE7, 0 },          { 0x98C3BAC7, 0x98C3BAC7 },
     572             :   { 0x989633DB, 0x989633DB }, { 0x9868C80A, 0 },
     573             :   { 0x983B773B, 0 },          { 0x980E4156, 0x980E4156 },
     574             :   { 0x97E12644, 0x97E12644 }, { 0x97B425ED, 0x97B425ED },
     575             :   { 0x97874039, 0 },          { 0x975A7510, 0 },
     576             :   { 0x972DC45B, 0 },          { 0x97012E02, 0x97012E02 },
     577             :   { 0x96D4B1EF, 0 },          { 0x96A8500A, 0 },
     578             :   { 0x967C083B, 0 },          { 0x964FDA6C, 0x964FDA6C },
     579             :   { 0x9623C686, 0x9623C686 }, { 0x95F7CC73, 0 },
     580             :   { 0x95CBEC1B, 0 },          { 0x95A02568, 0x95A02568 },
     581             :   { 0x95747844, 0 },          { 0x9548E498, 0 },
     582             :   { 0x951D6A4E, 0 },          { 0x94F2094F, 0x94F2094F },
     583             :   { 0x94C6C187, 0 },          { 0x949B92DE, 0 },
     584             :   { 0x94707D3F, 0 },          { 0x94458094, 0x94458094 },
     585             :   { 0x941A9CC8, 0x941A9CC8 }, { 0x93EFD1C5, 0x93EFD1C5 },
     586             :   { 0x93C51F76, 0 },          { 0x939A85C4, 0x939A85C4 },
     587             :   { 0x9370049C, 0 },          { 0x93459BE7, 0 },
     588             :   { 0x931B4B91, 0 },          { 0x92F11384, 0x92F11384 },
     589             :   { 0x92C6F3AC, 0x92C6F3AC }, { 0x929CEBF5, 0 },
     590             :   { 0x9272FC48, 0x9272FC48 }, { 0x92492492, 0x92492492 },
     591             :   { 0x921F64BF, 0 },          { 0x91F5BCB9, 0 },
     592             :   { 0x91CC2C6C, 0x91CC2C6C }, { 0x91A2B3C5, 0 },
     593             :   { 0x917952AF, 0 },          { 0x91500915, 0x91500915 },
     594             :   { 0x9126D6E5, 0 },          { 0x90FDBC09, 0x90FDBC09 },
     595             :   { 0x90D4B86F, 0 },          { 0x90ABCC02, 0x90ABCC02 },
     596             :   { 0x9082F6B0, 0 },          { 0x905A3863, 0x905A3863 },
     597             :   { 0x9031910A, 0 },          { 0x90090090, 0x90090090 },
     598             :   { 0x8FE086E3, 0 },          { 0x8FB823EE, 0x8FB823EE },
     599             :   { 0x8F8FD7A0, 0 },          { 0x8F67A1E4, 0 },
     600             :   { 0x8F3F82A8, 0x8F3F82A8 }, { 0x8F1779DA, 0 },
     601             :   { 0x8EEF8766, 0 },          { 0x8EC7AB3A, 0 },
     602             :   { 0x8E9FE542, 0x8E9FE542 }, { 0x8E78356D, 0x8E78356D },
     603             :   { 0x8E509BA8, 0x8E509BA8 }, { 0x8E2917E1, 0 },
     604             :   { 0x8E01AA05, 0 },          { 0x8DDA5202, 0x8DDA5202 },
     605             :   { 0x8DB30FC6, 0x8DB30FC6 }, { 0x8D8BE340, 0 },
     606             :   { 0x8D64CC5C, 0 },          { 0x8D3DCB09, 0 },
     607             :   { 0x8D16DF35, 0x8D16DF35 }, { 0x8CF008CF, 0x8CF008CF },
     608             :   { 0x8CC947C5, 0 },          { 0x8CA29C04, 0x8CA29C04 },
     609             :   { 0x8C7C057D, 0 },          { 0x8C55841D, 0 },
     610             :   { 0x8C2F17D2, 0x8C2F17D2 }, { 0x8C08C08C, 0x8C08C08C },
     611             :   { 0x8BE27E39, 0x8BE27E39 }, { 0x8BBC50C9, 0 },
     612             :   { 0x8B963829, 0x8B963829 }, { 0x8B70344A, 0x8B70344A },
     613             :   { 0x8B4A451A, 0 },          { 0x8B246A88, 0 },
     614             :   { 0x8AFEA483, 0x8AFEA483 }, { 0x8AD8F2FC, 0 },
     615             :   { 0x8AB355E0, 0x8AB355E0 }, { 0x8A8DCD20, 0 },
     616             :   { 0x8A6858AB, 0 },          { 0x8A42F870, 0x8A42F870 },
     617             :   { 0x8A1DAC60, 0x8A1DAC60 }, { 0x89F8746A, 0 },
     618             :   { 0x89D3507D, 0 },          { 0x89AE408A, 0 },
     619             :   { 0x89894480, 0 },          { 0x89645C4F, 0x89645C4F },
     620             :   { 0x893F87E8, 0x893F87E8 }, { 0x891AC73B, 0 },
     621             :   { 0x88F61A37, 0x88F61A37 }, { 0x88D180CD, 0x88D180CD },
     622             :   { 0x88ACFAEE, 0 },          { 0x88888889, 0 },
     623             :   { 0x8864298F, 0 },          { 0x883FDDF0, 0x883FDDF0 },
     624             :   { 0x881BA59E, 0 },          { 0x87F78088, 0 },
     625             :   { 0x87D36EA0, 0 },          { 0x87AF6FD6, 0 },
     626             :   { 0x878B841B, 0 },          { 0x8767AB5F, 0x8767AB5F },
     627             :   { 0x8743E595, 0 },          { 0x872032AC, 0x872032AC },
     628             :   { 0x86FC9296, 0x86FC9296 }, { 0x86D90545, 0 },
     629             :   { 0x86B58AA8, 0 },          { 0x869222B2, 0 },
     630             :   { 0x866ECD53, 0x866ECD53 }, { 0x864B8A7E, 0 },
     631             :   { 0x86285A23, 0x86285A23 }, { 0x86053C34, 0x86053C34 },
     632             :   { 0x85E230A3, 0x85E230A3 }, { 0x85BF3761, 0x85BF3761 },
     633             :   { 0x859C5060, 0x859C5060 }, { 0x85797B91, 0x85797B91 },
     634             :   { 0x8556B8E7, 0x8556B8E7 }, { 0x85340853, 0x85340853 },
     635             :   { 0x851169C7, 0x851169C7 }, { 0x84EEDD36, 0 },
     636             :   { 0x84CC6290, 0 },          { 0x84A9F9C8, 0x84A9F9C8 },
     637             :   { 0x8487A2D1, 0 },          { 0x84655D9C, 0 },
     638             :   { 0x84432A1B, 0x84432A1B }, { 0x84210842, 0x84210842 },
     639             :   { 0x83FEF802, 0x83FEF802 }, { 0x83DCF94E, 0 },
     640             :   { 0x83BB0C18, 0 },          { 0x83993052, 0x83993052 },
     641             :   { 0x837765F0, 0x837765F0 }, { 0x8355ACE4, 0 },
     642             :   { 0x83340520, 0x83340520 }, { 0x83126E98, 0 },
     643             :   { 0x82F0E93D, 0x82F0E93D }, { 0x82CF7504, 0 },
     644             :   { 0x82AE11DE, 0 },          { 0x828CBFBF, 0 },
     645             :   { 0x826B7E99, 0x826B7E99 }, { 0x824A4E61, 0 },
     646             :   { 0x82292F08, 0 },          { 0x82082082, 0x82082082 },
     647             :   { 0x81E722C2, 0x81E722C2 }, { 0x81C635BC, 0x81C635BC },
     648             :   { 0x81A55963, 0 },          { 0x81848DA9, 0 },
     649             :   { 0x8163D283, 0 },          { 0x814327E4, 0 },
     650             :   { 0x81228DBF, 0 },          { 0x81020408, 0x81020408 },
     651             :   { 0x80E18AB3, 0 },          { 0x80C121B3, 0 },
     652             :   { 0x80A0C8FB, 0x80A0C8FB }, { 0x80808081, 0 },
     653             :   { 0x80604836, 0x80604836 }, { 0x80402010, 0x80402010 },
     654             :   { 0x80200802, 0x80200802 }, { 0xFFFFFFFF, 0xFFFFFFFF }
     655             : };

Generated by: LCOV version 1.14