Tags: ESP8266 ESP32
Here is a simple adaptation of the TV-B-Gone which works on an ESP8266, maybe also an ESP32, and is easily adaptable on other "new" MCUs.
#define IRLED 14 const int codes_eu[] PROGMEM= { 35714, 80, 0 , 30303, 62, 80 , 33333, 52, 142 , 38400, 52, 194 , 37037, 200, 246 , 38610, 128, 446 , 38462, 136, 574 , 38462, 104, 710 , 38462, 76, 814 , 35714, 48, 890 , 38610, 76, 938 , 38462, 76, 1014 , 33445, 52, 1090 , 38462, 176, 1142 , 38462, 76, 1318 , 38462, 272, 1394 , 33333, 68, 1666 , 33333, 48, 1734 , 38462, 76, 1782 , 38462, 76, 1858 , 35714, 68, 1934 , 38462, 76, 2002 , 38462, 76, 2078 , 38462, 76, 2154 , 38462, 76, 2230 , 31250, 42, 2306 , 38462, 48, 2348 , 38462, 76, 2396 , 30303, 62, 2472 , 34483, 92, 2534 , 38462, 76, 2626 , 38462, 104, 2702 , 33333, 52, 2806 , 38462, 28, 2858 , 38462, 76, 2886 , 38462, 76, 2962 , 38462, 48, 3038 , 0, 22, 3086 , 40161, 48, 3108 , 35714, 104, 3156 , 33333, 56, 3260 , 38462, 76, 3316 , 41667, 4, 3392 , 38462, 76, 3396 , 41667, 20, 3472 , 34602, 32, 3492 , 0, 34, 3524 , 38462, 76, 3558 , 38462, 80, 3634 , 33333, 96, 3714 , 38462, 104, 3810 , 31250, 48, 3914 , 34483, 32, 3962 , 31250, 28, 3994 , 38462, 76, 4022 , 38462, 8, 4098 , 38462, 76, 4106 , 41667, 8, 4182 , 38462, 68, 4190 , 35714, 48, 4258 , 38462, 68, 4306 , 38462, 76, 4374 , 30395, 58, 4450 , 30303, 62, 4508 , 38462, 80, 4570 , 38462, 24, 4650 , 38610, 62, 4674 , 0, 46, 4736 , 0, 46, 4782 , 38462, 48, 4828 , 0, 46, 4876 , 34483, 32, 4922 , 35714, 52, 4954 , 0, 46, 5006 , 38462, 48, 5052 , 30303, 62, 5100 , 0, 24, 5162 , 38462, 136, 5186 , 38462, 136, 5322 , 38462, 160, 5458 , 40000, 136, 5618 , 33333, 48, 5754 , 38462, 48, 5802 , 38462, 76, 5850 , 33333, 48, 5926 , 38462, 48, 5974 , 38462, 48, 6022 , 38462, 76, 6070 , 0, 58, 6146 , 38462, 60, 6204 , 40000, 44, 6264 , 35714, 22, 6308 , 0, 58, 6330 , 34483, 32, 6388 , 38462, 60, 6420 , 34483, 32, 6480 , 0, 54, 6512 , 35714, 92, 6566 , 0, 54, 6658 , 38462, 48, 6712 , 38462, 48, 6760 , 34483, 48, 6808 , 38462, 48, 6856 , 38610, 76, 6904 , 38462, 118, 6980 , 33333, 48, 7098 , 38462, 48, 7146 , 38462, 44, 7194 , 38462, 136, 7238 , 31250, 42, 7374 , 38462, 80, 7416 , 31250, 28, 7496 , 30303, 62, 7524 , 58824, 154, 7586 , 0, 58, 7740 , 31250, 28, 7798 , 34483, 48, 7826 , 38462, 48, 7874 , 38462, 164, 7922 , 38462, 104, 8086 , 38462, 164, 8190 , 40000, 48, 8354 , 38462, 76, 8402 , 38462, 136, 8478 , 38462, 76, 8614 , 38462, 48, 8690 , 41667, 16, 8738 , 38462, 90, 8754 , 38462, 90, 8844 , 38462, 48, 8934 , 0, 46, 8982 , 38462, 48, 9028 , 40000, 48, 9076 , 0, 46, 9124 , 38462, 76, 9170 , 35714, 44, 9246 , 0, 22, 9290 , 0, 60, 9312 , }; const unsigned short codes2_eu[] PROGMEM= { 264,90,43,91,43,47,43,47,133,133,43,47,43,47,43,47,43,47,43,47,43,47,43,47,43,47,43,47,43,47,43,47, 88,47,43,91,43,47,43,8324,264,91,43,91,43,47,43,47,133,133,43,47,43,47,43,47,43,47,43,47,43,47,43,47, 43,47,43,47,43,47,43,47,88,47,43,91,43,47,43,91,47,265,51,54,51,54,51,54,51,54,51,54,51,54,51,54, 51,54,51,54,51,2053,51,263,51,108,100,109,51,54,51,54,51,54,51,54,51,54,51,54,51,11647,51,263,51,108,100,109, 51,54,51,54,51,54,51,54,51,54,51,54,51,54,43,206,46,204,46,456,46,456,46,204,46,204,46,204,46,456,46,456, 46,456,46,204,46,456,46,3488,46,204,46,204,46,456,46,456,46,204,46,204,46,204,46,456,46,456,46,456,46,204,46,456, 46,204,240,60,120,60,60,60,120,60,60,60,120,60,60,60,60,60,120,60,60,60,60,60,60,60,60,2700,240,60,120,60, 60,60,120,60,60,60,120,60,60,60,60,60,120,60,60,60,60,60,60,60,60,2700,346,176,44,45,44,131,44,45,44,45, 44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,131,44,45,44,45,44,45,44,45,44,45,44,45, 44,45,44,45,44,45,44,131,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,131,44,45,44,131,44,131, 44,131,44,131,44,45,44,45,44,131,44,45,44,131,44,131,44,131,44,131,44,45,44,131,44,7462,346,178,44,45,44,131, 44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,131,44,45,44,45,44,45,44,45, 44,45,44,45,44,45,44,45,44,45,44,131,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,131,44,45, 44,131,44,131,44,131,44,131,44,45,44,45,44,131,44,45,44,131,44,131,44,131,44,131,44,45,44,131,44,45,24,190, 25,80,25,80,25,80,25,80,25,80,25,190,25,190,25,80,25,190,25,80,25,80,25,80,25,190,25,80,25,4799,25,190, 25,80,25,80,25,80,25,80,25,190,25,80,25,80,25,190,25,80,25,190,25,190,25,190,25,80,25,190,25,4199,25,190, 25,80,25,80,25,80,25,80,25,80,25,190,25,190,25,80,25,190,25,80,25,80,25,80,25,190,25,80,25,4799,25,190, 25,80,25,80,25,80,25,80,25,190,25,80,25,80,25,190,25,80,25,190,25,190,25,190,25,80,25,190,25,80,455,468, 53,172,53,172,53,172,53,63,53,63,53,63,53,63,53,63,53,172,53,172,53,172,53,63,53,63,53,63,53,63,53,63, 53,63,53,172,53,63,53,63,53,63,53,63,53,63,53,63,53,172,53,63,53,172,53,172,53,172,53,172,53,172,53,172, 53,4472,455,468,53,172,53,172,53,172,53,63,53,63,53,63,53,63,53,63,53,172,53,172,53,172,53,63,53,63,53,63, 53,63,53,63,53,63,53,172,53,63,53,63,53,63,53,63,53,63,53,63,53,172,53,63,53,172,53,172,53,172,53,172, 53,172,53,172,54,0,838,422,50,159,50,159,50,54,50,54,50,54,50,54,50,54,50,54,50,159,50,159,50,159,50,54, 50,159,50,54,50,54,50,54,50,2307,50,159,50,159,50,54,50,54,50,54,50,54,50,54,50,54,50,159,50,159,50,159, 50,54,50,159,50,54,50,54,50,54,50,2307,50,159,50,159,50,54,50,54,50,54,50,54,50,54,50,54,50,159,50,159, 50,159,50,54,50,159,50,54,50,54,50,54,50,159,898,453,55,57,55,57,55,57,55,57,55,170,55,57,55,170,55,57, 55,170,55,170,55,170,55,170,55,57,55,170,55,57,55,170,55,170,55,170,55,170,55,57,55,170,55,57,55,57,55,57, 55,57,55,57,55,57,55,170,55,57,55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,88,90,177,91,88,91, 88,91,88,91,88,91,88,91,88,91,88,181,88,91,177,91,88,8976,88,91,177,91,88,91,88,91,88,91,88,91,88,91, 88,91,88,181,88,91,177,91,88,90,898,453,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,57,55,170,55,170, 55,170,55,170,55,170,55,170,55,57,55,170,55,57,55,170,55,57,55,57,55,170,55,57,55,57,55,57,55,170,55,57, 55,170,55,170,55,57,55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,898,451,53,171,53,56,53,56,53,56, 53,171,53,171,53,56,53,56,53,171,53,56,53,56,53,171,53,56,53,56,53,171,53,56,53,171,53,171,53,56,53,56, 53,56,53,171,53,171,53,56,53,56,53,56,53,171,53,171,53,171,53,56,53,56,53,171,53,3950,900,226,53,9599,900,226, 53,171,46,206,46,206,46,459,46,459,46,206,46,206,46,206,46,459,46,459,46,459,46,206,46,459,46,3447,46,206,46,206, 46,459,46,459,46,206,46,206,46,206,46,459,46,459,46,459,46,206,46,459,46,206,895,449,53,171,53,171,53,59,53,171, 53,171,53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,171,53,59,53,59,53,59,53,59, 53,171,53,171,53,171,53,171,53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,171,53,171, 53,171,53,171,53,171,53,171,53,171,53,171,53,2302,895,449,53,171,53,171,53,59,53,171,53,171,53,171,53,171,53,59, 53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,171,53,59,53,59,53,59,53,59,53,171,53,171,53,171,53,171, 53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,171,53,171,53,171,53,171,53,171,53,171, 53,171,53,171,53,171,799,400,48,52,48,52,48,160,48,52,48,160,48,52,48,52,48,52,48,400,48,160,48,52,48,160, 48,52,48,160,48,52,48,52,48,52,48,2335,799,400,48,52,48,52,48,160,48,52,48,160,48,52,48,52,48,52,48,400, 48,160,48,52,48,160,48,52,48,160,48,52,48,52,48,52,48,52,851,425,53,54,53,156,53,54,53,156,53,54,53,156, 53,54,53,156,53,156,53,54,53,156,53,54,53,156,53,54,53,156,53,54,53,54,53,54,53,156,53,156,53,156,53,54, 53,54,53,54,53,156,53,156,53,54,53,54,53,54,53,156,53,156,53,156,53,2542,853,424,53,54,53,156,53,54,53,156, 53,54,53,156,53,54,53,156,53,156,53,54,53,156,53,54,53,156,53,54,53,156,53,54,53,54,53,54,53,156,53,156, 53,156,53,54,53,54,53,54,53,156,53,156,53,54,53,54,53,54,53,156,53,156,53,156,53,2542,853,424,53,54,53,156, 53,54,53,156,53,54,53,156,53,54,53,156,53,156,53,54,53,156,53,54,53,156,53,54,53,156,53,54,53,54,53,54, 53,156,53,156,53,156,53,54,53,54,53,54,53,156,53,156,53,54,53,54,53,54,53,156,53,156,53,156,53,2542,853,424, 53,54,53,156,53,54,53,156,53,54,53,156,53,54,53,156,53,156,53,54,53,156,53,54,53,156,53,54,53,156,53,54, 53,54,53,54,53,156,53,156,53,156,53,54,53,54,53,54,53,156,53,156,53,54,53,54,53,54,53,156,53,156,53,156, 53,54,28,213,28,214,28,214,28,92,28,92,28,92,28,214,28,92,28,92,28,214,28,92,28,92,28,92,28,92,28,92, 28,92,28,2771,28,214,28,214,28,214,28,92,28,92,28,92,28,214,28,92,28,92,28,214,28,92,28,92,28,92,28,92, 28,92,28,92,28,213,15,844,16,557,16,844,16,844,16,844,16,557,16,844,16,844,16,844,16,557,16,844,16,5224,16,844, 16,557,16,844,16,844,16,844,16,557,16,844,16,844,16,844,16,557,16,844,16,557,898,453,55,57,55,57,55,57,55,170, 55,170,55,170,55,57,55,57,55,170,55,170,55,170,55,57,55,57,55,57,55,170,55,170,55,57,55,57,55,170,55,170, 55,170,55,57,55,57,55,57,55,170,55,170,55,57,55,57,55,57,55,170,55,170,55,170,55,3949,900,226,55,9623,900,226, 56,0,843,418,50,54,50,158,50,54,50,54,50,54,50,54,50,54,50,54,50,418,50,54,50,158,50,158,50,158,50,54, 50,54,50,54,50,54,50,2443,843,418,50,54,50,158,50,54,50,54,50,54,50,54,50,54,50,54,50,418,50,54,50,158, 50,158,50,158,50,54,50,54,50,54,50,54,50,54,48,301,48,1001,48,301,48,1001,48,301,48,1001,48,301,48,301,48,301, 48,301,48,301,48,301,48,301,48,301,48,301,48,651,48,3001,48,301,48,1001,48,301,48,1001,48,301,48,1001,48,301,48,301, 48,301,48,301,48,301,48,301,48,301,48,301,48,301,48,651,48,301,898,451,53,171,53,171,53,56,53,56,53,56,53,56, 53,56,53,171,53,56,53,171,53,56,53,171,53,171,53,171,53,171,53,56,53,56,53,56,53,56,53,171,53,56,53,56, 53,56,53,56,53,171,53,171,53,171,53,56,53,171,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226,53,171,898,453, 55,170,55,170,55,57,55,57,55,170,55,57,55,170,55,57,55,57,55,57,55,170,55,170,55,57,55,170,55,57,55,170, 55,170,55,170,55,170,55,57,55,170,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,57,55,170,55,170,55,170, 55,3949,900,226,55,9623,900,226,56,0,892,450,53,60,53,60,53,60,53,175,53,175,53,60,53,60,53,60,53,60,53,60, 53,60,53,175,53,175,53,60,53,60,53,60,53,60,53,60,53,60,53,60,53,60,53,60,53,175,53,175,53,175,53,175, 53,175,53,175,53,175,53,175,53,60,53,60,53,4463,895,225,53,9453,895,225,53,60,898,453,55,57,55,57,55,57,55,170, 55,170,55,170,55,57,55,57,55,170,55,170,55,170,55,57,55,57,55,57,55,170,55,170,55,57,55,57,55,57,55,57, 55,170,55,57,55,57,55,57,55,170,55,170,55,170,55,170,55,57,55,170,55,170,55,170,55,3949,900,226,55,9623,900,226, 56,0,49,250,49,102,100,52,49,52,49,52,49,52,49,2377,49,252,49,102,100,102,49,52,49,52,49,52,49,12009,49,252, 49,102,100,102,49,52,49,52,49,52,49,250,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,491,14,743,14,491, 14,491,14,4926,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,491,14,743,14,491,14,491,14,743,898,453,55,57, 55,170,55,57,55,170,55,57,55,170,55,57,55,170,55,170,55,57,55,170,55,57,55,170,55,57,55,170,55,57,55,170, 55,57,55,170,55,57,55,57,55,57,55,170,55,170,55,57,55,170,55,57,55,170,55,170,55,170,55,57,55,57,55,3949, 900,226,55,9623,900,226,56,0,47,267,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,2055,50,265, 50,110,50,55,100,57,50,110,50,55,50,55,50,55,50,55,50,12117,50,265,50,110,50,55,100,57,50,110,50,55,50,55, 50,55,50,55,50,55,50,251,50,99,102,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50, 50,50,50,50,50,1445,50,252,50,99,50,50,102,49,50,99,50,50,50,50,50,50,102,98,50,50,50,50,50,50,50,50, 50,50,50,11014,50,252,50,99,50,50,102,49,50,99,50,50,50,50,50,50,102,98,50,50,50,50,50,50,50,50,50,50, 50,251,898,453,55,57,55,57,55,170,55,57,55,57,55,57,55,57,55,57,55,170,55,170,55,57,55,170,55,170,55,170, 55,170,55,170,55,57,55,57,55,57,55,170,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,57,55,170,55,170, 55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,838,422,53,160,53,160,53,160,53,160,53,160,53,53,53,53,53,53, 53,160,53,160,53,160,53,53,53,160,53,53,53,160,53,160,53,1697,53,160,53,160,53,160,53,160,53,160,53,53,53,53, 53,53,53,160,53,160,53,160,53,53,53,160,53,53,53,160,53,160,53,1697,53,160,53,160,53,160,53,160,53,160,53,53, 53,53,53,53,53,160,53,160,53,160,53,53,53,160,53,53,53,160,53,160,53,160,49,205,49,206,49,456,49,456,49,206, 49,206,49,206,49,456,49,456,49,456,49,206,49,206,49,3690,49,206,49,206,49,456,49,456,49,206,49,206,49,206,49,456, 49,456,49,456,49,206,49,206,49,205,48,150,50,347,50,347,50,347,50,149,50,149,50,2936,50,149,50,347,50,347,50,347, 50,149,50,149,50,347,898,453,55,57,55,57,55,57,55,170,55,170,55,57,55,57,55,57,55,170,55,170,55,170,55,57, 55,57,55,170,55,170,55,170,55,57,55,57,55,57,55,170,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,57, 55,170,55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,898,453,55,170,55,57,55,57,55,57,55,170,55,170, 55,170,55,57,55,57,55,170,55,170,55,170,55,57,55,57,55,57,55,170,55,57,55,57,55,57,55,170,55,57,55,57, 55,57,55,57,55,170,55,170,55,170,55,57,55,170,55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,14,743, 14,491,14,743,14,743,14,743,14,743,14,491,14,491,14,491,14,491,14,491,14,5178,14,743,14,491,14,743,14,743,14,743, 14,743,14,491,14,491,14,491,14,491,14,491,14,743,3,1002,3,1002,3,1495,3,1495,3,1495,3,3059,3,1002,3,1002,3,1495, 3,1495,3,1495,13,674,13,675,13,675,13,675,13,675,13,445,13,445,13,675,13,675,13,445,13,445,13,4583,13,675,13,675, 13,675,13,675,13,675,13,445,13,445,13,675,13,675,13,445,13,445,13,674,347,350,85,89,85,264,85,264,85,89,85,264, 85,89,85,89,85,264,85,89,85,264,85,89,85,89,85,264,85,89,85,89,85,264,85,89,85,264,85,264,85,89,85,264, 85,89,85,264,85,264,85,3402,348,350,85,89,85,264,85,264,85,89,85,264,85,89,85,89,85,264,85,89,85,264,85,89, 85,89,85,264,85,89,85,89,85,264,85,89,85,264,85,264,85,89,85,264,85,89,85,264,85,264,85,89,46,300,49,997, 49,298,49,997,49,298,49,997,49,298,49,648,49,648,49,648,49,648,49,298,49,298,49,3056,49,298,49,997,49,298,49,997, 49,298,49,997,49,298,49,648,49,648,49,648,49,648,49,298,49,298,49,997,898,451,53,56,53,56,53,56,53,56,53,56, 53,56,53,56,53,171,53,171,53,171,53,171,53,171,53,56,53,171,53,171,53,56,53,56,53,171,53,56,53,171,53,56, 53,56,53,56,53,56,53,171,53,56,53,171,53,56,53,171,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226,53,56, 1037,4216,1040,0,898,453,55,57,55,57,55,57,55,170,55,57,55,57,55,170,55,57,55,170,55,170,55,170,55,57,55,170, 55,170,55,57,55,170,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,170,55,170, 55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,152,471,154,156,154,156,154,469,154,2947,154,469,154,156,154,156, 154,469,154,156,15,493,16,493,16,493,16,698,16,698,16,698,16,698,16,1414,16,493,16,493,16,493,16,698,16,698,16,698, 16,698,16,493,3,745,3,496,3,496,3,745,3,496,3,1488,3,745,3,496,3,496,3,745,3,496,3,1488,3,745,3,496, 3,496,3,745,3,496,898,451,53,56,53,56,53,56,53,56,53,56,53,56,53,56,53,171,53,171,53,171,53,56,53,171, 53,171,53,171,53,171,53,56,53,171,53,171,53,56,53,56,53,171,53,56,53,56,53,56,53,56,53,56,53,171,53,171, 53,56,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226,53,56,448,445,55,55,55,167,55,167,55,167,55,55,55,55, 55,55,55,55,55,55,55,167,55,167,55,167,55,55,55,55,55,55,55,55,55,55,55,55,55,167,55,55,55,167,55,55, 55,55,55,55,55,167,55,167,55,55,55,167,55,55,55,167,55,167,55,167,55,4577,450,444,55,167,55,9506,450,444,55,167, 55,55,361,358,91,88,91,88,91,88,91,88,91,88,91,88,91,88,91,88,91,88,91,88,91,267,91,267,91,267,91,267, 91,267,91,267,91,267,91,267,91,267,91,267,91,267,91,88,91,3621,361,359,91,88,91,88,91,88,91,88,91,88,91,88, 91,88,91,88,91,88,91,88,91,267,91,267,91,267,91,267,91,267,91,267,91,267,91,267,91,267,91,267,91,267,91,88, 91,88,347,347,84,88,84,261,84,88,84,261,84,88,84,88,84,88,84,261,84,88,84,261,84,88,84,88,84,261,84,88, 84,261,84,88,84,261,84,261,84,261,84,88,84,261,84,88,84,261,84,261,84,3360,347,348,84,88,84,261,84,88,84,261, 84,88,84,88,84,88,84,261,84,88,84,261,84,88,84,88,84,261,84,88,84,261,84,88,84,261,84,261,84,261,84,88, 84,261,84,88,84,261,84,261,84,88,16,838,17,558,17,839,17,839,17,839,17,558,17,839,17,839,17,839,17,558,17,839, 17,6328,17,839,17,558,17,839,17,839,17,839,17,558,17,839,17,839,17,839,17,558,17,839,17,558,15,493,16,698,16,493, 16,698,16,698,16,698,16,698,16,1414,16,493,16,698,16,493,16,698,16,698,16,698,16,698,16,698,49,262,49,53,49,53, 49,104,100,103,49,53,49,8030,49,264,49,53,49,53,49,104,100,103,49,53,49,262,898,451,53,56,53,56,53,56,53,56, 53,56,53,56,53,56,53,171,53,56,53,171,53,171,53,171,53,171,53,171,53,171,53,56,53,56,53,56,53,56,53,171, 53,171,53,56,53,56,53,56,53,171,53,171,53,171,53,56,53,56,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226, 53,56,112,107,677,2766,113,107,677,2766,898,451,53,56,53,56,53,56,53,56,53,56,53,56,53,56,53,171,53,171,53,56, 53,171,53,56,53,171,53,171,53,171,53,56,53,56,53,171,53,56,53,171,53,56,53,56,53,56,53,56,53,171,53,56, 53,171,53,56,53,171,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226,53,56,310,613,622,8312,310,614,622,8312,50,158, 53,156,53,51,53,51,53,51,53,51,53,156,53,51,53,156,53,51,53,156,53,156,53,51,53,51,53,156,53,156,53,2180, 53,156,53,156,53,51,53,51,53,51,53,51,53,156,53,51,53,156,53,51,53,156,53,156,53,51,53,51,53,156,53,156, 53,156,88,90,177,91,88,91,88,91,88,91,88,91,88,181,177,91,88,91,88,91,88,91,88,8976,88,91,177,91,88,91, 88,91,88,91,88,91,88,181,177,91,88,91,88,91,88,91,88,90,50,158,53,156,53,51,53,51,53,156,53,51,53,156, 53,51,53,156,53,51,53,156,53,156,53,51,53,51,53,156,53,156,53,2180,53,156,53,156,53,51,53,51,53,156,53,51, 53,156,53,51,53,156,53,51,53,156,53,156,53,51,53,51,53,156,53,156,53,156,898,451,53,56,53,56,53,56,53,56, 53,56,53,56,53,56,53,171,53,171,53,171,53,171,53,56,53,171,53,56,53,171,53,56,53,56,53,171,53,56,53,171, 53,56,53,56,53,56,53,56,53,171,53,56,53,171,53,56,53,171,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226, 53,56,47,267,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,2055,50,265,50,55,50,55,50,110, 50,55,100,57,50,110,100,112,50,12117,50,265,50,55,50,55,50,110,50,55,100,57,50,110,100,112,50,55,47,267,50,55, 50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,2055,50,265,50,55,50,55,50,55,50,110,50,55,100,112, 50,55,50,55,50,12117,50,265,50,55,50,55,50,55,50,110,50,55,100,112,50,55,50,55,50,55,448,445,55,167,55,167, 55,55,55,167,55,55,55,55,55,55,55,55,55,167,55,167,55,55,55,167,55,55,55,55,55,55,55,55,55,55,55,167, 55,55,55,167,55,55,55,55,55,55,55,55,55,167,55,55,55,167,55,55,55,167,55,167,55,167,55,167,55,4577,450,444, 55,55,55,9506,450,444,55,55,55,167,94,728,94,473,94,473,94,728,94,473,102,1637,94,728,94,473,94,473,94,728,94,473, 102,1637,49,263,50,54,50,54,50,54,50,54,50,54,50,54,50,54,50,54,50,54,50,2029,50,263,50,108,50,54,50,54, 50,54,50,54,100,110,50,54,50,54,50,10199,50,263,50,108,50,54,50,54,50,54,50,54,100,110,50,54,50,54,50,54, 4,499,4,499,4,750,4,750,4,750,4,750,4,750,4,499,4,499,4,499,4,750,4,4999,4,499,4,499,4,750,4,750, 4,750,4,750,4,750,4,499,4,499,4,499,4,750,4,499,4,750,4,750,4,499,4,750,4,750,4,750,4,499,4,499, 4,499,4,750,4,4999,4,499,4,750,4,750,4,499,4,750,4,750,4,750,4,499,4,499,4,499,4,750,14,743,14,491, 14,743,14,743,14,743,14,491,14,743,14,491,14,743,14,743,14,743,14,4422,14,743,14,491,14,743,14,743,14,743,14,491, 14,743,14,491,14,743,14,743,14,743,14,743,5,854,5,854,5,854,5,854,5,854,5,568,5,854,5,854,5,854,5,568, 5,854,5,4999,5,854,5,854,5,854,5,854,5,854,5,568,5,854,5,854,5,854,5,568,5,854,15,493,16,493,16,698, 16,493,16,493,16,493,16,493,16,1414,16,493,16,493,16,698,16,493,16,493,16,493,16,493,16,493,88,89,88,90,88,90, 88,90,88,90,88,90,88,90,88,90,88,90,88,179,88,90,177,90,88,8977,88,90,88,90,88,90,88,90,88,90,88,90, 88,90,88,90,88,90,88,179,88,90,177,90,88,89,6,566,6,566,6,851,6,851,6,851,6,566,6,851,6,851,6,851, 6,566,6,851,6,5474,6,566,6,566,6,851,6,851,6,851,6,566,6,851,6,851,6,851,6,566,6,851,14,843,16,841, 16,841,16,841,16,841,16,555,16,841,16,841,16,841,16,555,16,841,16,4911,16,841,16,841,16,841,16,841,16,841,16,555, 16,841,16,841,16,841,16,555,16,841,16,841,47,267,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55, 50,2055,50,265,50,55,50,55,50,110,50,55,100,57,50,110,50,55,50,55,50,12117,50,265,50,55,50,55,50,110,50,55, 100,57,50,110,50,55,50,55,50,55,6,2098,6,1339,6,925,6,925,6,925,6,925,6,2787,6,1339,6,925,6,925,6,925, 6,925,892,448,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,170,53,170,53,170,53,59,53,59,53,59,53,170, 53,170,53,59,53,170,53,170,53,170,53,170,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,170,53,170, 53,170,53,170,53,4359,893,448,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,170,53,170,53,170,53,59,53,59, 53,59,53,170,53,170,53,59,53,170,53,170,53,170,53,170,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,59, 53,170,53,170,53,170,53,170,53,59,895,448,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,167,55,57,55,57, 55,167,55,57,55,57,55,167,55,167,55,57,55,167,55,57,55,57,55,167,55,57,55,57,55,167,55,57,55,57,55,167, 55,167,55,57,55,167,55,167,55,57,55,167,55,4416,897,447,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,167, 55,57,55,57,55,167,55,57,55,57,55,167,55,167,55,57,55,167,55,57,55,57,55,167,55,57,55,57,55,167,55,57, 55,57,55,167,55,167,55,57,55,167,55,167,55,57,55,167,55,57,26,185,27,80,27,185,27,185,27,80,27,80,27,185, 27,185,27,80,27,185,27,80,27,80,27,80,27,185,27,80,27,4249,27,185,27,80,27,185,27,185,27,80,27,185,27,80, 27,80,27,185,27,80,27,185,27,185,27,185,27,80,27,185,27,4249,27,185,27,80,27,185,27,185,27,80,27,80,27,185, 27,185,27,80,27,185,27,80,27,80,27,80,27,185,27,80,27,4249,27,185,27,80,27,185,27,185,27,80,27,185,27,80, 27,80,27,185,27,80,27,185,27,185,27,185,27,80,27,185,27,4249,27,185,27,80,27,185,27,185,27,80,27,80,27,185, 27,185,27,80,27,185,27,80,27,80,27,80,27,185,27,80,27,80,848,430,51,56,51,162,51,56,51,162,51,56,51,162, 51,56,51,162,51,162,51,56,51,162,51,56,51,162,51,56,51,162,51,56,51,162,51,162,51,56,51,162,51,162,51,56, 51,56,51,56,51,56,51,56,51,162,51,56,51,56,51,162,51,162,51,162,51,2842,850,429,51,56,51,162,51,56,51,162, 51,56,51,162,51,56,51,162,51,162,51,56,51,162,51,56,51,162,51,56,51,162,51,56,51,162,51,162,51,56,51,162, 51,162,51,56,51,56,51,56,51,56,51,56,51,162,51,56,51,56,51,162,51,162,51,162,51,56,16,559,17,559,17,847, 17,559,17,847,16,559,17,847,16,847,17,847,16,559,17,847,16,5900,17,559,16,559,17,847,16,559,17,847,16,559,17,847, 17,847,17,847,16,559,17,847,17,559,16,738,16,739,16,739,16,739,16,739,16,739,16,484,16,484,16,484,16,484,16,484, 16,4795,16,739,16,739,16,739,16,739,16,739,16,739,16,484,16,484,16,484,16,484,16,484,16,738,799,400,48,160,48,160, 48,52,48,160,48,160,48,52,48,52,48,52,48,400,48,160,48,160,48,160,48,160,48,160,48,52,48,52,48,52,48,2120, 799,400,48,160,48,160,48,52,48,160,48,160,48,52,48,52,48,52,48,400,48,160,48,160,48,160,48,160,48,160,48,52, 48,52,48,52,48,160,17,850,17,554,17,851,16,851,17,851,17,554,17,851,17,851,16,851,17,554,17,851,17,4847,17,851, 17,554,17,851,17,851,16,851,17,554,17,851,17,851,16,851,17,554,16,851,17,850,14,743,14,743,14,743,14,743,14,743, 14,743,14,491,14,491,14,491,14,491,14,491,14,5126,14,743,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,491, 14,491,14,491,14,743,14,743,14,491,14,743,14,743,14,743,14,743,14,743,14,491,14,743,14,491,14,491,14,4874,14,743, 14,491,14,743,14,743,14,743,14,743,14,743,14,491,14,743,14,491,14,491,14,743,799,400,48,160,48,52,48,160,48,52, 48,160,48,52,48,52,48,52,48,400,48,160,48,52,48,160,48,52,48,160,48,52,48,52,48,52,48,2335,799,400,48,160, 48,52,48,160,48,52,48,160,48,52,48,52,48,52,48,400,48,160,48,52,48,160,48,52,48,160,48,52,48,52,48,52, 48,160,3,39,3,9,3,9,3,9,3,9,3,29,3,19,3,9,3,9,3,9,3,9,3,9,3,19,3,39,3,9968, 3,39,3,9,3,9,3,9,3,9,3,29,3,19,3,9,3,9,3,9,3,9,3,9,3,19,3,39,15,605,15,138, 15,138,15,138,15,138,15,138,15,138,15,446,15,138,15,138,15,138,15,138,15,138,15,605,15,6565,15,605,15,138,15,138, 15,138,15,138,15,138,15,138,15,446,15,138,15,138,15,138,15,138,15,138,15,605,15,605,48,148,48,50,48,149,48,50, 48,149,48,50,48,50,48,50,48,50,48,50,48,1424,48,149,48,50,48,149,48,50,48,149,48,50,48,50,48,50,48,50, 48,50,48,148,87,639,88,275,88,275,88,275,88,639,88,275,88,639,88,639,88,639,88,275,88,275,3,38,3,8,3,18, 3,8,3,8,3,24,3,18,3,8,3,8,3,8,3,8,3,8,3,8,3,38,3,9969,3,38,3,8,3,18,3,8, 3,8,3,24,3,18,3,8,3,8,3,8,3,8,3,8,3,8,3,38,15,493,16,698,16,698,16,698,16,698,16,698, 16,698,16,1414,16,493,16,698,16,698,16,698,16,698,16,698,16,698,16,698,13,608,14,141,14,141,14,141,14,296,14,141, 14,141,14,451,14,141,14,141,14,141,14,141,14,296,14,606,14,6207,14,608,14,141,14,141,14,141,14,296,14,141,14,141, 14,451,14,141,14,141,14,141,14,141,14,296,14,606,14,141,15,493,16,493,16,698,16,493,16,698,16,698,16,698,16,1414, 16,493,16,493,16,698,16,493,16,698,16,698,16,698,16,493,3,28,3,8,3,8,3,8,3,8,3,8,3,8,3,18, 3,8,3,8,3,8,3,8,3,28,3,12731,3,28,3,8,3,18,3,18,3,18,3,18,3,8,3,18,3,8,3,8, 3,8,3,8,3,28,46,260,46,106,93,53,46,53,46,53,46,53,46,53,46,53,46,53,46,53,46,53,46,53,46,53, 46,53,46,53,46,1502,46,260,46,106,46,53,93,53,46,106,46,53,46,53,46,53,46,53,46,53,46,53,46,53,93,106, 46,53,46,10962,46,260,46,106,46,53,93,53,46,106,46,53,46,53,46,53,46,53,46,53,46,53,46,53,93,106,46,53, 46,260,3,28,3,8,3,8,3,8,3,8,3,8,3,18,3,8,3,8,3,8,3,8,3,8,3,28,3,12731,3,28, 3,8,3,18,3,18,3,18,3,18,3,18,3,8,3,8,3,8,3,8,3,8,3,28,14,743,14,743,14,743,14,743, 14,743,14,743,14,491,14,491,14,491,14,491,14,743,14,4674,14,743,14,743,14,743,14,743,14,743,14,743,14,491,14,491, 14,491,14,491,14,743,14,743,14,743,14,491,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,491,14,491,14,5126, 14,743,14,491,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,491,14,491,14,743,44,815,45,815,45,815,45,528, 45,815,45,528,45,815,45,815,45,815,45,528,45,815,45,5000,45,815,45,815,45,815,45,528,45,815,45,528,45,815,45,815, 45,815,45,528,45,815,45,815,14,743,14,491,14,743,14,491,14,743,14,491,14,491,14,491,14,491,14,491,14,491,14,5881, 14,743,14,491,14,743,14,491,14,743,14,491,14,491,14,491,14,491,14,491,14,491,14,743,898,451,53,171,53,56,53,171, 53,56,53,56,53,56,53,56,53,171,53,56,53,171,53,171,53,56,53,56,53,56,53,171,53,56,53,56,53,171,53,56, 53,56,53,171,53,56,53,56,53,56,53,171,53,56,53,171,53,171,53,56,53,171,53,171,53,171,53,3950,900,226,53,9599, 900,226,53,171,48,246,50,94,100,47,50,47,50,47,50,47,50,47,50,47,50,47,50,47,50,47,50,47,50,47,50,47, 50,47,50,47,50,1488,50,245,50,94,50,47,100,47,50,94,50,47,50,47,50,47,50,47,100,94,100,94,100,47,50,94, 50,10970,50,245,50,94,50,47,100,47,50,94,50,47,50,47,50,47,50,47,100,94,100,94,100,47,50,94,50,10970,50,245, 50,94,50,47,100,47,50,94,50,47,50,47,50,47,50,47,100,94,100,94,100,47,50,94,50,94,17,846,16,847,17,847, 16,847,17,847,17,559,17,847,16,847,17,847,17,559,17,847,16,5900,17,847,17,847,16,847,17,847,16,847,17,559,16,847, 17,847,16,847,17,559,16,847,17,846,14,743,14,491,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,743,14,743, 14,4622,14,743,14,491,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,743,14,743,14,743,24,185,27,78,27,183, 27,78,27,183,27,78,27,78,27,78,27,78,27,78,27,1542,27,183,27,78,27,183,27,78,27,183,27,78,27,78,27,78, 27,78,27,78,27,78,447,453,56,168,56,55,56,168,56,55,56,55,56,55,56,55,56,55,56,168,56,55,56,168,56,55, 56,55,56,55,56,55,56,55,56,55,56,168,56,55,56,55,56,55,56,55,56,55,56,55,56,168,56,55,56,168,56,168, 56,168,56,168,56,168,56,168,56,4850,448,453,56,168,56,55,56,168,56,55,56,55,56,55,56,55,56,55,56,168,56,55, 56,168,56,55,56,55,56,55,56,55,56,55,56,55,56,168,56,55,56,55,56,55,56,55,56,55,56,55,56,168,56,55, 56,168,56,168,56,168,56,168,56,168,56,168,56,168,49,250,49,52,100,52,49,52,49,52,49,52,49,2377,49,252,49,52, 100,102,49,52,49,52,49,52,49,12009,49,252,49,52,100,102,49,52,49,52,49,52,49,250,448,445,55,55,55,55,55,55, 55,167,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,167,55,55,55,55,55,55,55,55,55,167,55,167,55,167, 55,167,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,167,55,167,55,167,55,167,55,5023,450,444,55,167, 55,9506,450,444,55,167,55,55,49,262,49,104,100,103,49,53,49,53,49,53,49,8030,49,264,49,104,100,103,49,53,49,53, 49,53,49,262,47,267,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,2055,50,265,50,110,50,55, 100,57,50,55,50,110,50,55,50,55,50,55,50,12117,50,265,50,110,50,55,100,57,50,55,50,110,50,55,50,55,50,55, 50,55,1931,389,48,196,48,196,48,196,48,196,48,98,48,98,48,196,48,196,48,196,48,98,48,196,48,196,48,98,48,98, 48,98,48,98,48,196,48,196,48,98,48,98,48,98,48,196,48,98,48,98,97,836,395,388,48,196,48,196,48,196,48,196, 48,98,48,98,48,196,48,196,48,196,48,98,48,196,48,196,48,98,48,98,48,98,48,98,48,196,48,196,48,98,48,98, 48,98,48,196,48,98,48,98,97,836,395,388,48,196,48,196,48,196,48,196,48,98,48,98,48,196,48,196,48,196,48,98, 48,196,48,196,48,98,48,98,48,98,48,98,48,196,48,196,48,98,48,98,48,98,48,196,48,98,48,196,3,42,3,9, 3,9,3,9,3,9,3,9,3,9,3,31,3,9,3,9,3,9,3,9,3,9,3,42,3,10957,3,42,3,9,3,9, 3,9,3,9,3,9,3,9,3,31,3,9,3,9,3,9,3,9,3,9,3,42,49,262,49,53,100,103,49,53,49,53, 49,53,49,8030,49,264,49,53,100,103,49,53,49,53,49,53,49,262,44,815,45,815,45,815,45,815,45,815,45,528,45,815, 45,815,45,815,45,528,45,815,45,4713,45,815,45,815,45,815,45,815,45,815,45,528,45,815,45,815,45,815,45,528,45,815, 45,815,14,743,14,491,14,743,14,491,14,743,14,491,14,743,14,491,14,491,14,491,14,491,14,5430,14,743,14,491,14,743, 14,491,14,743,14,491,14,743,14,491,14,491,14,491,14,491,14,743,19,78,21,77,21,77,21,77,21,77,21,77,21,77, 21,77,21,77,21,77,21,77,21,27,21,27,21,27,21,27,21,77,21,27,21,27,21,27,21,27,21,27,21,27,21,27, 21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,77,21,77,21,27, 21,27,21,3785,21,77,21,77,21,77,21,77,21,77,21,77,21,77,21,77,21,77,21,77,21,77,21,27,21,27,21,27, 21,27,21,77,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27, 21,27,21,27,21,27,21,27,21,27,21,27,21,77,21,77,21,27,21,27,22,0,347,347,84,261,84,88,84,88,84,88, 84,88,84,261,84,261,84,261,84,261,84,88,84,88,84,88,84,88,84,261,84,261,84,261,84,261,84,88,84,88,84,88, 84,88,84,261,84,261,84,261,84,3360,347,348,84,261,84,88,84,88,84,88,84,88,84,261,84,261,84,261,84,261,84,88, 84,88,84,88,84,88,84,261,84,261,84,261,84,261,84,88,84,88,84,88,84,88,84,261,84,261,84,261,84,261,19,78, 21,27,21,27,21,77,21,77,21,77,21,77,21,77,21,77,21,77,21,77,21,77,21,27,21,27,21,27,21,27,21,77, 21,77,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27, 21,27,21,27,21,27,21,77,21,77,21,27,21,27,21,3785,21,77,21,27,21,27,21,77,21,77,21,77,21,77,21,77, 21,77,21,77,21,77,21,77,21,27,21,27,21,27,21,27,21,77,21,77,21,27,21,27,21,27,21,27,21,27,21,27, 21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,27,21,77,21,77,21,27,21,27, 22,0,13,741,13,742,13,742,13,742,13,742,13,742,13,490,13,490,13,490,13,490,13,742,13,5443,13,742,13,742,13,742, 13,742,13,742,13,742,13,490,13,490,13,490,13,490,13,742,13,741,843,407,50,54,50,54,50,158,50,54,50,158,50,54, 50,54,50,54,50,407,50,158,50,158,50,158,50,158,50,158,50,54,50,54,50,54,50,2153,843,407,50,54,50,54,50,158, 50,54,50,158,50,54,50,54,50,54,50,407,50,158,50,158,50,158,50,158,50,158,50,54,50,54,50,54,50,54,882,454, 55,168,55,168,55,56,55,56,55,56,55,56,55,56,55,168,55,56,55,168,55,56,55,168,55,168,55,168,55,168,55,56, 55,56,55,56,55,56,55,168,55,56,55,56,55,56,55,56,55,168,55,168,55,168,55,56,55,168,55,168,55,168,55,168, 55,3929,884,452,55,168,55,168,55,56,55,56,55,56,55,56,55,56,55,168,55,56,55,168,55,56,55,168,55,168,55,168, 55,168,55,56,55,56,55,56,55,56,55,168,55,56,55,56,55,56,55,56,55,168,55,168,55,168,55,56,55,168,55,168, 55,168,55,168,56,0,898,453,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,170, 55,170,55,170,55,170,55,170,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,170, 55,170,55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,14,743,14,491,14,743,14,491,14,743,14,491,14,491, 14,491,14,743,14,743,14,743,14,5126,14,743,14,491,14,743,14,491,14,743,14,491,14,491,14,491,14,743,14,743,14,743, 14,743,152,471,154,156,154,782,154,2947,154,469,154,156,154,782,154,156,50,251,50,99,102,49,50,50,50,50,50,50,50,50, 50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,1449,50,252,50,99,50,50,102,49,50,99,50,50, 50,50,50,50,50,50,102,98,102,98,50,50,102,98,50,11014,50,252,50,99,50,50,102,49,50,99,50,50,50,50,50,50, 50,50,102,98,102,98,50,50,102,98,50,251,50,251,50,99,102,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50, 50,50,50,50,50,50,50,50,50,50,50,50,50,1449,50,252,50,99,50,50,102,49,50,99,50,50,50,50,50,50,50,50, 102,98,102,49,50,99,102,98,50,11014,50,252,50,99,50,50,102,49,50,99,50,50,50,50,50,50,50,50,102,98,102,49, 50,99,102,98,50,251,14,743,14,743,14,743,14,743,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,4170,14,743, 14,743,14,743,14,743,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,743,4,499,4,499,4,750,4,750,4,750, 4,750,4,499,4,499,4,499,4,499,4,750,4,4999,4,499,4,499,4,750,4,750,4,750,4,750,4,499,4,499,4,499, 4,499,4,750,14,743,14,743,14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,743,14,491,14,4422,14,743,14,743, 14,743,14,743,14,743,14,743,14,743,14,491,14,491,14,743,14,491,14,743,13,741,13,490,13,490,13,490,13,490,13,490, 13,742,13,742,13,742,13,490,13,490,13,5939,13,742,13,490,13,490,13,490,13,490,13,490,13,742,13,742,13,742,13,490, 13,490,13,741,6,851,6,851,6,851,6,566,6,851,6,566,6,851,6,851,6,851,6,566,6,851,6,5188,6,851,6,851, 6,851,6,566,6,851,6,566,6,851,6,851,6,851,6,566,6,851,898,453,55,57,55,57,55,57,55,57,55,57,55,57, 55,57,55,57,55,170,55,170,55,170,55,170,55,170,55,170,55,170,55,170,55,170,55,57,55,57,55,57,55,57,55,57, 55,57,55,57,55,57,55,170,55,170,55,170,55,170,55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,86,91, 174,90,87,90,87,90,87,180,174,90,87,90,87,180,87,90,174,90,87,8868,87,90,174,90,87,90,87,90,87,180,174,90, 87,90,87,180,87,90,174,90,88,0,4,1036,4,1036,4,1507,4,1507,4,1507,4,3005,4,1036,4,1036,4,1507,4,1507,4,1507, 14,607,14,141,14,141,14,141,14,141,14,141,14,141,14,452,14,141,14,141,14,141,14,141,14,141,14,607,14,6310,14,607, 14,141,14,141,14,141,14,141,14,141,14,141,14,452,14,141,14,141,14,141,14,141,14,141,14,607,0,0, }; const int codes_us[] PROGMEM={ 38400, 52, 0 , 57143, 104, 52 , 37037, 200, 156 , 38610, 128, 356 , 38610, 76, 484 , 35714, 48, 560 , 38462, 136, 608 , 39216, 68, 744 , 38462, 136, 812 , 38462, 76, 948 , 38462, 104, 1024 , 38462, 76, 1128 , 38462, 104, 1204 , 38462, 96, 1308 , 38462, 76, 1404 , 38462, 76, 1480 , 34483, 68, 1556 , 40000, 76, 1624 , 38462, 272, 1700 , 38462, 200, 1972 , 38462, 76, 2172 , 38462, 76, 2248 , 38462, 76, 2324 , 40000, 88, 2400 , 38462, 52, 2488 , 38462, 104, 2540 , 39216, 68, 2644 , 57143, 104, 2712 , 38610, 72, 2816 , 35842, 44, 2888 , 38462, 76, 2932 , 35842, 48, 3008 , 38462, 76, 3056 , 38462, 200, 3132 , 38462, 76, 3332 , 41667, 44, 3408 , 37037, 22, 3452 , 41667, 22, 3474 , 40000, 76, 3496 , 40000, 8, 3572 , 40000, 16, 3580 , 76923, 52, 3596 , 40000, 76, 3648 , 40000, 48, 3724 , 40000, 76, 3772 , 38462, 80, 3848 , 29412, 46, 3928 , 40000, 76, 3974 , 40000, 76, 4050 , 45455, 22, 4126 , 55556, 96, 4148 , 40000, 76, 4244 , 40000, 76, 4320 , 55556, 60, 4396 , 55556, 56, 4456 , 0, 54, 4512 , 37175, 16, 4566 , 40000, 28, 4582 , 33333, 36, 4610 , 40000, 76, 4646 , 40000, 76, 4722 , 40000, 76, 4798 , 40000, 76, 4874 , 40000, 76, 4950 , 57143, 104, 5026 , 59172, 156, 5130 , 38462, 66, 5286 , 40000, 76, 5352 , 40000, 48, 5428 , 40000, 76, 5476 , 38462, 66, 5552 , 55556, 16, 5618 , 40000, 76, 5634 , 40000, 76, 5710 , 40000, 76, 5786 , 41667, 104, 5862 , 40000, 76, 5966 , 35714, 44, 6042 , 38462, 68, 6086 , 40000, 76, 6154 , 0, 54, 6230 , 40000, 80, 6284 , 35714, 48, 6364 , 35714, 48, 6412 , 37037, 200, 6460 , 38462, 88, 6660 , 37175, 200, 6748 , 38462, 76, 6948 , 38610, 76, 7024 , 38462, 76, 7100 , 35714, 40, 7176 , 58824, 104, 7216 , 38462, 136, 7320 , 38462, 136, 7456 , 35714, 44, 7592 , 38462, 80, 7636 , 38462, 76, 7716 , 38462, 76, 7792 , 38462, 76, 7868 , 38462, 76, 7944 , 35842, 68, 8020 , 38462, 76, 8088 , 40000, 104, 8164 , 38462, 80, 8268 , 40000, 76, 8348 , 40000, 76, 8424 , 40000, 76, 8500 , 38462, 80, 8576 , 38462, 80, 8656 , 40000, 76, 8736 , 40161, 76, 8812 , 40000, 76, 8888 , 38462, 76, 8964 , 40000, 136, 9040 , 40000, 76, 9176 , 40000, 104, 9252 , 40000, 76, 9356 , 41667, 76, 9432 , 40000, 76, 9508 , 55556, 76, 9584 , 40000, 76, 9660 , 40000, 76, 9736 , 52632, 96, 9812 , 40000, 76, 9908 , 40000, 76, 9984 , 55556, 76, 10060 , 40000, 76, 10136 , 25641, 16, 10212 , 40000, 104, 10228 , 40000, 76, 10332 , 37037, 104, 10408 , 40000, 76, 10512 , 83333, 64, 10588 , 41667, 48, 10652 , 40000, 136, 10700 , 38462, 176, 10836 , 38610, 176, 11012 , } ; const unsigned short codes2_us[] PROGMEM={ 240,60,120,60,60,60,120,60,60,60,120,60,60,60,60,60,120,60,60,60,60,60,60,60,60,2700,240,60,120,60,60,60, 120,60,60,60,120,60,60,60,60,60,120,60,60,60,60,60,60,60,60,2700,400,400,50,200,50,200,50,200,50,200,50,100, 50,100,50,200,50,100,50,200,50,100,50,200,50,100,50,100,50,100,50,100,50,100,50,200,50,200,50,100,50,200,50,100, 50,200,50,100,50,200,50,800,400,400,50,200,50,200,50,200,50,200,50,100,50,100,50,200,50,100,50,200,50,100,50,200, 50,100,50,100,50,100,50,100,50,100,50,200,50,200,50,100,50,200,50,100,50,200,50,100,50,200,50,200,347,176,42,46, 42,133,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,133,42,46,42,46,42,46, 42,46,42,46,42,46,42,46,42,46,42,46,42,133,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,133, 42,46,42,133,42,133,42,133,42,133,42,46,42,46,42,133,42,46,42,133,42,133,42,133,42,133,42,46,42,133,42,7519, 347,177,42,46,42,133,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,133,42,46, 42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,46,42,133,42,46,42,46,42,46,42,46,42,46,42,46,42,46, 42,46,42,133,42,46,42,133,42,133,42,133,42,133,42,46,42,46,42,133,42,46,42,133,42,133,42,133,42,133,42,46, 42,133,42,46,26,185,27,80,27,80,27,80,27,80,27,80,27,185,27,185,27,80,27,185,27,80,27,80,27,80,27,185, 27,80,27,4549,27,185,27,80,27,80,27,80,27,80,27,185,27,80,27,80,27,185,27,80,27,185,27,185,27,185,27,80, 27,185,27,4549,27,185,27,80,27,80,27,80,27,80,27,80,27,185,27,185,27,80,27,185,27,80,27,80,27,80,27,185, 27,80,27,4549,27,185,27,80,27,80,27,80,27,80,27,185,27,80,27,80,27,185,27,80,27,185,27,185,27,185,27,80, 27,185,27,80,898,453,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,57,55,170,55,170,55,170,55,170,55,170, 55,170,55,57,55,170,55,57,55,170,55,57,55,57,55,170,55,57,55,57,55,57,55,170,55,57,55,170,55,170,55,57, 55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,88,90,177,91,88,91,88,91,88,91,88,91,88,91,88,91, 88,181,88,91,177,91,88,8976,88,91,177,91,88,91,88,91,88,91,88,91,88,91,88,91,88,181,88,91,177,91,88,90, 448,466,50,172,50,172,50,172,50,62,50,62,50,62,50,62,50,62,50,172,50,172,50,172,50,62,50,62,50,62,50,62, 50,62,50,62,50,172,50,62,50,62,50,62,50,62,50,62,50,62,50,172,50,62,50,172,50,172,50,172,50,172,50,172, 50,172,50,4541,450,465,50,172,50,172,50,172,50,62,50,62,50,62,50,62,50,62,50,172,50,172,50,172,50,62,50,62, 50,62,50,62,50,62,50,62,50,172,50,62,50,62,50,62,50,62,50,62,50,62,50,172,50,62,50,172,50,172,50,172, 50,172,50,172,50,172,50,172,49,49,49,410,49,510,49,50,49,410,49,50,49,410,49,510,49,50,49,410,49,510,49,50, 49,410,49,510,49,510,49,50,49,12107,49,50,49,410,49,510,49,50,49,410,49,50,49,410,49,510,49,50,49,410,49,510, 49,50,49,410,49,510,49,510,49,50,49,49,898,450,56,170,56,58,56,58,56,58,56,170,56,170,56,170,56,58,56,58, 56,170,56,170,56,170,56,58,56,58,56,58,56,170,56,58,56,170,56,58,56,170,56,58,56,58,56,170,56,58,56,170, 56,58,56,170,56,58,56,170,56,170,56,58,56,170,56,4011,900,449,56,170,56,58,56,58,56,58,56,170,56,170,56,170, 56,58,56,58,56,170,56,170,56,170,56,58,56,58,56,58,56,170,56,58,56,170,56,58,56,170,56,58,56,58,56,170, 56,58,56,170,56,58,56,170,56,58,56,170,56,170,56,58,56,170,56,170,898,451,53,171,53,171,53,171,53,56,53,56, 53,56,53,56,53,171,53,56,53,171,53,56,53,56,53,56,53,171,53,56,53,56,53,56,53,56,53,56,53,56,53,56, 53,171,53,171,53,171,53,171,53,171,53,171,53,171,53,171,53,56,53,56,53,56,53,3950,900,226,53,9599,900,226,53,171, 841,419,51,158,51,158,51,55,51,55,51,55,51,55,51,55,51,55,51,158,51,158,51,158,51,55,51,158,51,55,51,55, 51,55,51,2286,51,158,51,158,51,55,51,55,51,55,51,55,51,55,51,55,51,158,51,158,51,158,51,55,51,158,51,55, 51,55,51,55,51,2286,51,158,51,158,51,55,51,55,51,55,51,55,51,55,51,55,51,158,51,158,51,158,51,55,51,158, 51,55,51,55,51,55,51,158,884,442,55,55,55,55,55,55,55,55,55,172,55,55,55,172,55,55,55,172,55,172,55,172, 55,172,55,55,55,172,55,55,55,172,55,172,55,172,55,172,55,55,55,172,55,55,55,55,55,55,55,55,55,55,55,55, 55,172,55,55,55,172,55,172,55,172,55,4039,885,225,55,9348,885,225,56,0,331,336,81,254,81,87,81,254,81,254,81,87, 81,254,81,87,81,254,81,254,81,87,81,87,81,87,81,87,81,254,81,87,81,254,81,87,81,87,81,254,81,87,81,87, 81,254,81,254,81,254,81,3280,331,337,81,254,81,87,81,254,81,254,81,87,81,254,81,87,81,254,81,254,81,87,81,87, 81,87,81,87,81,254,81,87,81,254,81,87,81,87,81,254,81,87,81,87,81,254,81,254,81,254,81,254,893,448,53,55, 53,55,53,167,53,167,53,167,53,55,53,55,53,55,53,167,53,55,53,55,53,55,53,55,53,167,53,167,53,55,53,55, 53,55,53,167,53,167,53,167,53,55,53,167,53,167,53,167,53,167,53,55,53,167,53,55,53,55,53,167,53,55,53,55, 53,55,53,167,53,55,53,167,53,167,53,55,53,167,53,167,53,167,53,2304,895,447,53,9369,895,447,53,55,898,453,55,57, 55,57,55,57,55,57,55,57,55,170,55,170,55,57,55,170,55,170,55,170,55,170,55,170,55,57,55,57,55,170,55,170, 55,170,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,170,55,170,55,170,55,3949, 900,226,55,9623,900,226,56,0,898,453,55,57,55,170,55,57,55,57,55,57,55,57,55,170,55,57,55,170,55,57,55,170, 55,170,55,170,55,170,55,57,55,170,55,170,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,170, 55,170,55,170,55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,28,211,28,211,28,211,28,90,28,90,28,90, 28,211,28,90,28,90,28,211,28,90,28,90,28,90,28,90,28,90,28,90,28,2507,28,211,28,211,28,211,28,90,28,90, 28,90,28,211,28,90,28,90,28,211,28,90,28,90,28,90,28,90,28,90,28,90,28,211,898,449,56,57,56,57,56,57, 56,175,56,175,56,175,56,57,56,57,56,175,56,175,56,175,56,57,56,57,56,57,56,175,56,175,56,57,56,175,56,57, 56,57,56,175,56,57,56,57,56,57,56,175,56,57,56,175,56,175,56,57,56,175,56,175,56,175,56,4150,898,227,56,9499, 898,227,56,57,849,429,51,55,51,161,51,55,51,161,51,55,51,161,51,55,51,161,51,161,51,55,51,161,51,55,51,161, 51,55,51,161,51,55,51,55,51,55,51,161,51,161,51,161,51,55,51,55,51,55,51,161,51,161,51,55,51,55,51,55, 51,161,51,161,51,161,51,2566,849,430,51,55,51,161,51,55,51,161,51,55,51,161,51,55,51,161,51,161,51,55,51,161, 51,55,51,161,51,55,51,161,51,55,51,55,51,55,51,161,51,161,51,161,51,55,51,55,51,55,51,161,51,161,51,55, 51,55,51,55,51,161,51,161,51,161,51,2566,849,430,51,55,51,161,51,55,51,161,51,55,51,161,51,55,51,161,51,161, 51,55,51,161,51,55,51,161,51,55,51,161,51,55,51,55,51,55,51,161,51,161,51,161,51,55,51,55,51,55,51,161, 51,161,51,55,51,55,51,55,51,161,51,161,51,161,51,2566,849,430,51,55,51,161,51,55,51,161,51,55,51,161,51,55, 51,161,51,161,51,55,51,161,51,55,51,161,51,55,51,161,51,55,51,55,51,55,51,161,51,161,51,161,51,55,51,55, 51,55,51,161,51,161,51,55,51,55,51,55,51,161,51,161,51,161,51,55,325,163,40,42,40,42,40,124,40,42,40,124, 40,42,40,42,40,42,40,124,40,124,40,42,40,42,40,42,40,124,40,124,40,42,40,42,40,42,40,42,40,42,40,42, 40,42,40,42,40,42,40,42,40,42,40,124,40,42,40,42,40,42,40,42,40,124,40,42,40,42,40,124,40,42,40,42, 40,42,40,42,40,124,40,42,40,124,40,42,40,42,40,42,40,42,40,42,40,42,40,4601,326,163,40,42,40,42,40,124, 40,42,40,124,40,42,40,42,40,42,40,124,40,124,40,42,40,42,40,42,40,124,40,124,40,42,40,42,40,42,40,42, 40,42,40,42,40,42,40,42,40,42,40,42,40,42,40,124,40,42,40,42,40,42,40,42,40,124,40,42,40,42,40,124, 40,42,40,42,40,42,40,42,40,124,40,42,40,124,40,42,40,42,40,42,40,42,40,42,40,42,40,42,898,461,60,55, 60,55,60,163,60,55,60,55,60,55,60,55,60,55,60,163,60,163,60,55,60,163,60,163,60,163,60,163,60,163,60,55, 60,55,60,55,60,163,60,55,60,55,60,55,60,55,60,163,60,163,60,163,60,55,60,163,60,163,60,163,60,163,60,4099, 900,230,60,9698,900,230,61,0,799,400,48,52,48,52,48,160,48,52,48,160,48,52,48,52,48,52,48,400,48,160,48,52, 48,160,48,52,48,160,48,52,48,52,48,52,48,2335,799,400,48,52,48,52,48,160,48,52,48,160,48,52,48,52,48,52, 48,400,48,160,48,52,48,160,48,52,48,160,48,52,48,52,48,52,48,52,892,450,53,60,53,60,53,60,53,175,53,175, 53,60,53,60,53,60,53,60,53,60,53,60,53,175,53,175,53,60,53,60,53,60,53,60,53,60,53,60,53,60,53,60, 53,60,53,175,53,175,53,175,53,175,53,175,53,175,53,175,53,175,53,60,53,60,53,4463,895,225,53,9453,895,225,53,60, 48,504,48,504,48,52,48,409,48,52,48,409,48,504,48,52,48,409,48,504,48,52,48,409,48,504,48,504,48,52,48,409, 48,52,48,409,48,504,48,52,48,409,48,10461,48,504,48,504,48,52,48,409,48,52,48,409,48,504,48,52,48,409,48,504, 48,52,48,409,48,504,48,504,48,52,48,409,48,52,48,409,48,504,48,52,48,409,48,504,237,60,118,60,118,60,118,60, 118,60,58,60,118,60,58,60,118,60,58,60,58,60,58,60,58,2569,238,60,118,60,118,60,118,60,118,60,58,60,118,60, 58,60,118,60,58,60,58,60,58,60,58,60,346,350,84,264,84,264,84,264,84,264,84,264,84,264,84,264,84,90,84,90, 84,90,84,90,84,90,84,90,84,90,84,90,84,90,84,90,84,90,84,90,84,264,84,264,84,264,84,264,84,264,84,3470, 347,350,84,264,84,264,84,264,84,264,84,264,84,264,84,264,84,90,84,90,84,90,84,90,84,90,84,90,84,90,84,90, 84,90,84,90,84,90,84,90,84,264,84,264,84,264,84,264,84,264,84,264,49,49,49,410,49,510,49,50,49,410,49,50, 49,410,49,510,49,510,49,50,49,410,49,510,49,50,49,410,49,510,49,50,49,12582,49,50,49,410,49,510,49,50,49,410, 49,50,49,410,49,510,49,510,49,50,49,410,49,510,49,50,49,410,49,510,49,50,49,49,400,400,50,100,50,200,50,200, 50,200,50,100,50,100,50,200,50,100,50,200,50,100,50,200,50,100,50,200,50,100,50,100,50,100,50,200,50,200,50,100, 50,200,50,100,50,200,50,100,50,200,50,800,400,400,50,100,50,200,50,200,50,200,50,100,50,100,50,200,50,100,50,200, 50,100,50,200,50,100,50,200,50,100,50,100,50,100,50,200,50,200,50,100,50,200,50,100,50,200,50,100,50,200,50,100, 258,271,118,121,118,271,118,121,118,271,118,121,118,271,118,271,118,121,118,271,118,271,118,121,118,121,118,121,118,271,118,121, 118,271,118,4750,258,271,118,121,118,271,118,121,118,271,118,121,118,271,118,271,118,121,118,271,118,271,118,121,118,121,118,121, 118,271,118,121,118,271,118,121,88,90,177,91,88,91,88,91,88,91,88,91,88,181,177,91,88,181,88,91,177,8976,88,91, 177,91,88,91,88,91,88,91,88,91,88,181,177,91,88,181,88,91,177,91,898,451,53,56,53,56,53,56,53,56,53,171, 53,56,53,171,53,56,53,171,53,56,53,171,53,171,53,56,53,171,53,56,53,171,53,56,53,56,53,56,53,56,53,56, 53,56,53,56,53,56,53,171,53,171,53,171,53,171,53,171,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226,53,56, 88,89,88,90,177,90,88,90,88,90,88,90,88,90,88,90,88,179,88,90,177,90,88,8977,88,90,88,90,177,90,88,90, 88,90,88,90,88,90,88,90,88,179,88,90,177,90,88,89,898,451,53,56,53,56,53,56,53,56,53,171,53,56,53,171, 53,56,53,171,53,56,53,171,53,171,53,56,53,171,53,56,53,171,53,56,53,171,53,56,53,56,53,56,53,56,53,56, 53,56,53,171,53,56,53,171,53,171,53,171,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226,53,56,334,156,40,43, 40,43,40,122,40,43,40,122,40,43,40,43,40,43,40,122,40,122,40,43,40,43,40,43,40,122,40,122,40,43,40,43, 40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,122,40,43,40,43,40,43,40,43,40,122,40,43, 40,122,40,43,40,122,40,43,40,43,40,43,40,122,40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,5297, 336,155,40,43,40,43,40,122,40,43,40,122,40,43,40,43,40,43,40,122,40,122,40,43,40,43,40,43,40,122,40,122, 40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,43,40,122,40,43,40,43,40,43,40,43, 40,122,40,43,40,122,40,43,40,122,40,43,40,43,40,43,40,122,40,43,40,43,40,43,40,43,40,43,40,43,40,43, 40,43,40,43,898,453,55,57,55,57,55,57,55,57,55,170,55,57,55,170,55,57,55,170,55,170,55,170,55,170,55,57, 55,170,55,57,55,170,55,170,55,170,55,170,55,170,55,170,55,170,55,57,55,57,55,57,55,57,55,57,55,57,55,57, 55,57,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,96,93,97,93,97,93,97,287,97,93,97,287,97,93,97,287, 97,93,97,93,97,3431,97,93,97,93,97,93,97,287,97,93,97,287,97,93,97,287,97,93,97,93,97,93,82,581,84,250, 84,250,84,250,84,580,84,250,84,580,84,580,84,580,84,250,85,0,514,164,39,263,39,263,39,263,164,163,39,263,164,163, 164,163,39,263,39,263,39,263,898,449,56,175,56,57,56,175,56,57,56,175,56,57,56,57,56,57,56,57,56,175,56,57, 56,175,56,57,56,175,56,175,56,175,56,57,56,175,56,57,56,57,56,175,56,57,56,57,56,57,56,175,56,57,56,175, 56,175,56,57,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,175,113,101,688,2707,113,101,688,2707,113,101,113,101, 113,201,113,2707,113,101,113,101,113,201,113,101,242,62,117,62,58,62,117,62,58,62,117,62,58,62,58,62,117,62,58,62, 58,62,58,62,58,2746,242,62,117,62,58,62,117,62,58,62,117,62,58,62,58,62,117,62,58,62,58,62,58,62,58,62, 899,421,54,170,54,170,54,65,54,65,54,65,54,65,54,65,54,170,54,65,54,170,54,65,54,170,54,170,54,170,54,170, 54,65,54,65,54,65,54,65,54,170,54,65,54,65,54,65,54,65,54,170,54,170,54,170,54,65,54,170,54,170,54,170, 54,170,54,4099,899,226,54,8668,899,226,54,170,43,120,43,121,43,121,43,121,43,121,131,45,43,121,43,121,43,121,43,121, 43,121,43,3491,43,121,43,121,43,121,43,121,43,121,131,45,43,121,43,121,43,121,43,121,43,121,43,120,431,436,51,160, 51,160,51,160,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,160,51,160,51,160,51,160,51,160,51,51, 51,160,51,51,51,51,51,51,51,51,51,51,51,51,51,160,51,51,51,160,51,160,51,160,51,160,51,160,51,160,51,4096, 883,219,51,9513,883,219,51,160,455,449,58,53,58,167,58,167,58,53,58,53,58,53,58,53,58,53,58,53,58,167,58,167, 58,53,58,53,58,53,58,53,58,53,58,167,58,167,58,167,58,167,58,53,58,53,58,53,58,53,58,53,58,53,58,53, 58,53,58,167,58,167,58,167,58,167,58,4494,456,449,58,167,58,9679,456,449,58,167,58,53,51,277,52,105,103,54,52,53, 52,53,52,53,52,2527,52,277,52,105,52,53,52,53,52,53,52,53,52,53,52,12809,52,277,52,105,52,53,52,53,52,53, 52,53,52,53,52,105,898,449,56,57,56,57,56,57,56,57,56,175,56,57,56,57,56,57,56,175,56,175,56,175,56,175, 56,57,56,175,56,175,56,175,56,175,56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,57,56,57,56,57,56,57, 56,175,56,57,56,57,56,57,56,4150,898,227,56,9499,898,227,56,57,431,436,51,51,51,51,51,51,51,51,51,51,51,51, 51,51,51,51,51,160,51,160,51,160,51,160,51,160,51,160,51,160,51,160,51,160,51,160,51,160,51,160,51,51,51,51, 51,51,51,51,51,51,51,51,51,51,51,51,51,160,51,160,51,160,51,160,51,4096,883,219,51,9513,883,219,51,51,274,854, 274,1986,274,1986,274,854,274,854,274,1986,274,854,274,1986,274,1986,274,854,274,854,359,331,80,88,80,88,80,88,80,88,80,88, 80,88,80,88,80,88,80,88,80,88,80,254,80,254,80,254,80,254,80,254,80,254,80,254,80,254,80,254,80,254,80,254, 80,88,80,3750,359,331,80,88,80,88,80,88,80,88,80,88,80,88,80,88,80,88,80,88,80,88,80,254,80,254,80,254, 80,254,80,254,80,254,80,254,80,254,80,254,80,254,80,254,80,88,80,88,898,449,56,57,56,57,56,175,56,57,56,57, 56,57,56,175,56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,57,56,57,56,57,56,57,56,57,56,175,56,175, 56,57,56,57,56,57,56,175,56,175,56,175,56,57,56,57,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,57, 898,449,56,175,56,175,56,175,56,57,56,175,56,175,56,57,56,57,56,57,56,57,56,57,56,175,56,57,56,57,56,175, 56,175,56,57,56,175,56,57,56,57,56,175,56,57,56,57,56,57,56,175,56,57,56,175,56,175,56,57,56,175,56,175, 56,175,56,4150,898,227,56,9499,898,227,56,175,51,232,51,792,51,232,51,792,51,232,51,792,51,232,51,512,51,512,51,232, 51,232,51,232,51,232,51,512,51,2883,51,232,51,792,51,232,51,792,51,232,51,792,51,232,51,512,51,512,51,232,51,232, 51,232,51,232,51,512,51,232,51,232,51,792,51,232,51,792,51,232,51,792,51,232,51,232,51,232,51,512,51,512,51,512, 51,512,51,2883,51,232,51,792,51,232,51,792,51,232,51,792,51,232,51,232,51,232,51,512,51,512,51,512,51,512,51,232, 3,30,3,10,3,10,3,20,3,20,3,20,3,10,3,20,3,10,3,20,3,20,3,10,3,30,3,12778,3,30,3,10, 3,10,3,20,3,20,3,20,3,10,3,20,3,10,3,20,3,20,3,10,3,20,55,193,57,384,57,384,57,384,57,192, 57,192,57,192,58,0,45,148,46,351,46,351,46,351,46,148,46,148,46,2781,46,148,46,351,46,351,46,351,46,148,46,148, 46,351,31,218,23,219,23,219,23,101,23,101,22,101,22,219,22,101,22,101,22,219,22,101,22,101,23,101,23,101,23,101, 23,101,23,101,23,219,898,449,56,175,56,57,56,175,56,175,56,57,56,175,56,175,56,57,56,57,56,175,56,57,56,57, 56,175,56,57,56,57,56,175,56,57,56,57,56,175,56,57,56,175,56,57,56,57,56,57,56,175,56,175,56,57,56,175, 56,57,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,175,898,449,56,57,56,57,56,57,56,57,56,57,56,175, 56,57,56,57,56,175,56,175,56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,57,56,57,56,57,56,175,56,57, 56,57,56,57,56,57,56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,57,898,449, 56,57,56,57,56,57,56,57,56,57,56,175,56,57,56,175,56,175,56,175,56,175,56,175,56,175,56,57,56,175,56,57, 56,175,56,175,56,57,56,175,56,57,56,57,56,57,56,57,56,57,56,57,56,175,56,57,56,175,56,175,56,175,56,175, 56,4150,898,227,56,9499,898,227,56,57,898,449,56,57,56,57,56,57,56,175,56,57,56,175,56,57,56,57,56,175,56,175, 56,175,56,57,56,175,56,57,56,175,56,175,56,175,56,175,56,57,56,175,56,57,56,57,56,57,56,57,56,57,56,57, 56,175,56,57,56,175,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,57,898,449,56,175,56,175,56,175,56,175, 56,175,56,175,56,175,56,175,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,175,56,175,56,175,56,175, 56,175,56,175,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,175,56,175,56,4150,898,227,56,9499,898,227, 56,175,400,400,50,100,50,100,50,100,50,100,50,100,50,100,50,200,50,200,50,200,50,100,50,200,50,200,50,200,50,200, 50,200,50,200,50,200,50,200,50,100,50,100,50,100,50,200,50,100,50,100,50,800,400,400,50,100,50,100,50,100,50,100, 50,100,50,100,50,200,50,200,50,200,50,100,50,200,50,200,50,200,50,200,50,200,50,200,50,200,50,200,50,100,50,100, 50,100,50,200,50,100,50,100,50,100,1953,392,48,197,48,197,48,197,48,197,48,98,48,98,48,197,48,197,48,197,48,98, 48,197,48,197,48,98,48,98,48,98,48,98,48,197,48,197,48,98,48,98,48,98,48,197,48,98,48,98,98,846,395,392, 48,197,48,197,48,197,48,197,48,98,48,98,48,197,48,197,48,197,48,98,48,197,48,197,48,98,48,98,48,98,48,98, 48,197,48,197,48,98,48,98,48,98,48,197,48,98,48,98,98,846,395,392,48,197,48,197,48,197,48,197,48,98,48,98, 48,197,48,197,48,197,48,98,48,197,48,197,48,98,48,98,48,98,48,98,48,197,48,197,48,98,48,98,48,98,48,197, 48,98,48,98,98,846,742,154,38,276,38,276,38,276,165,154,38,276,165,154,165,154,38,276,38,276,38,276,415,155,38,276, 38,276,38,276,165,154,38,276,165,154,165,154,38,276,38,276,38,276,415,155,38,276,38,276,38,276,165,154,38,276,165,154, 165,154,38,276,38,276,38,276,431,436,51,51,51,51,51,51,51,160,51,160,51,160,51,160,51,160,51,160,51,160,51,160, 51,51,51,51,51,51,51,51,51,51,51,51,51,160,51,51,51,51,51,51,51,51,51,51,51,51,51,160,51,51,51,160, 51,160,51,160,51,160,51,160,51,160,51,4096,883,219,51,9513,883,219,51,51,130,45,43,121,131,45,43,121,43,121,131,45, 43,121,43,121,43,121,43,121,131,45,43,9437,131,45,43,121,131,45,43,121,43,121,131,45,43,121,43,121,43,121,43,121, 131,45,43,121,898,449,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,175,56,175,56,175,56,175,56,175, 56,175,56,175,56,175,56,175,56,175,56,57,56,175,56,57,56,57,56,57,56,57,56,57,56,57,56,175,56,57,56,175, 56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,57,27,182,27,76,27,76,27,76,27,76,27,76,27,76,27,183, 27,76,27,76,27,183,27,76,27,183,27,183,27,76,27,183,27,3199,27,183,27,76,27,76,27,76,27,76,27,76,27,76, 27,183,27,76,27,76,27,183,27,76,27,183,27,183,27,76,27,182,37,181,37,272,37,181,37,272,37,272,37,181,37,181, 37,181,899,421,54,65,54,170,54,170,54,65,54,65,54,65,54,65,54,65,54,65,54,170,54,170,54,65,54,65,54,65, 54,65,54,65,54,65,54,65,54,170,54,65,54,170,54,65,54,65,54,65,54,170,54,170,54,65,54,170,54,65,54,170, 54,170,54,170,54,4099,899,226,54,8668,899,226,54,65,898,449,56,57,56,175,56,57,56,175,56,57,56,175,56,57,56,175, 56,175,56,57,56,175,56,57,56,175,56,57,56,175,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,175, 56,175,56,175,56,175,56,175,56,175,56,175,56,175,56,57,56,4150,898,227,56,9499,898,227,56,57,898,449,56,175,56,57, 56,57,56,57,56,175,56,57,56,175,56,57,56,57,56,175,56,175,56,175,56,57,56,175,56,57,56,175,56,57,56,57, 56,57,56,175,56,57,56,57,56,57,56,57,56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,175,56,4150,898,227, 56,9499,898,227,56,175,390,390,51,98,51,98,51,98,51,98,51,98,51,98,51,194,51,98,51,194,51,98,51,194,51,98, 51,194,51,194,51,194,51,194,51,194,51,194,51,98,51,194,51,98,51,194,51,98,51,194,102,931,390,391,51,98,51,98, 51,98,51,98,51,98,51,98,51,194,51,98,51,194,51,98,51,194,51,98,51,194,51,194,51,194,51,194,51,194,51,194, 51,98,51,194,51,98,51,194,51,98,51,194,102,931,898,449,56,57,56,175,56,175,56,175,56,57,56,175,56,175,56,57, 56,175,56,57,56,57,56,57,56,175,56,57,56,57,56,175,56,57,56,57,56,175,56,57,56,175,56,57,56,57,56,57, 56,175,56,175,56,57,56,175,56,57,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,57,88,89,177,90,88,90, 88,179,88,90,88,90,177,90,88,179,88,90,177,90,88,8977,88,90,177,90,88,90,88,179,88,90,88,90,177,90,88,179, 88,90,177,90,88,89,480,155,40,275,40,275,40,275,160,154,40,275,160,154,160,154,40,275,40,275,160,154,40,275,40,275, 40,275,40,275,160,154,40,275,160,154,160,154,40,275,40,275,160,154,40,275,40,275,40,275,40,275,160,154,40,275,160,154, 160,154,40,275,40,275,160,154,40,275,898,449,56,57,56,175,56,57,56,175,56,57,56,175,56,57,56,175,56,175,56,57, 56,175,56,57,56,175,56,57,56,175,56,57,56,175,56,175,56,175,56,57,56,57,56,175,56,57,56,175,56,57,56,57, 56,57,56,175,56,175,56,57,56,175,56,57,56,4150,898,227,56,9499,898,227,56,57,3,30,3,10,3,10,3,20,3,20, 3,20,3,10,3,10,3,20,3,10,3,10,3,10,3,30,3,12778,3,30,3,10,3,10,3,20,3,20,3,20,3,10, 3,10,3,20,3,10,3,10,3,10,3,30,48,52,48,409,48,504,48,52,48,409,48,52,48,409,48,504,48,52,48,409, 48,504,48,52,48,409,48,504,48,504,48,52,48,409,48,52,48,409,48,9978,48,52,48,409,48,504,48,52,48,409,48,52, 48,409,48,504,48,52,48,409,48,504,48,52,48,409,48,504,48,504,48,52,48,409,48,52,48,409,48,52,88,89,88,179, 177,90,88,90,88,90,88,90,88,90,88,90,88,90,88,179,177,179,88,8888,88,90,88,179,177,90,88,90,88,90,88,90, 88,90,88,90,88,90,88,179,177,179,88,89,88,89,177,90,88,90,88,90,88,90,88,90,88,90,88,90,88,179,88,90, 177,90,88,8977,88,90,177,90,88,90,88,90,88,90,88,90,88,90,88,90,88,179,88,90,177,90,88,89,336,171,41,43, 41,128,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,128,41,43,41,43,41,43, 41,43,41,43,41,43,41,128,41,43,41,43,41,128,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,128, 41,43,41,128,41,128,41,128,41,128,41,43,41,43,41,128,41,43,41,128,41,128,41,43,41,128,41,43,41,128,41,7476, 338,169,41,43,41,128,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,43,41,128,41,43, 41,43,41,43,41,43,41,43,41,43,41,128,41,43,41,43,41,128,41,43,41,43,41,43,41,43,41,43,41,43,41,43, 41,43,41,128,41,43,41,128,41,128,41,128,41,128,41,43,41,43,41,128,41,43,41,128,41,128,41,43,41,128,41,43, 41,128,41,43,445,437,55,165,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,165, 55,60,55,60,55,60,55,60,55,165,55,60,55,60,55,2284,448,436,55,165,55,60,55,60,55,60,55,60,55,60,55,60, 55,60,55,60,55,60,55,60,55,60,55,165,55,60,55,60,55,60,55,60,55,165,55,60,55,60,55,165,347,176,42,46, 42,126,42,46,42,126,42,46,42,126,42,46,42,126,42,46,42,126,42,46,42,126,42,126,42,46,42,126,42,46,42,126, 42,126,42,126,42,126,42,46,42,46,42,46,42,126,42,46,42,126,42,46,42,46,42,126,42,46,42,46,42,46,42,46, 42,126,42,126,42,46,42,126,42,46,42,46,42,46,42,126,42,46,42,46,42,46,42,126,42,46,42,126,42,126,42,6989, 347,177,42,46,42,126,42,46,42,126,42,46,42,126,42,46,42,126,42,46,42,126,42,46,42,126,42,126,42,46,42,126, 42,46,42,126,42,126,42,126,42,126,42,46,42,46,42,46,42,126,42,46,42,126,42,46,42,46,42,126,42,46,42,46, 42,46,42,46,42,126,42,126,42,46,42,126,42,46,42,46,42,46,42,126,42,46,42,46,42,46,42,126,42,46,42,126, 42,126,42,46,880,435,56,69,56,69,56,69,56,174,56,174,56,69,56,69,56,69,56,174,56,174,56,174,56,69,56,69, 56,174,56,174,56,174,56,69,56,69,56,69,56,174,56,69,56,69,56,69,56,69,56,174,56,174,56,174,56,69,56,174, 56,174,56,174,56,174,56,4165,880,222,56,9585,880,222,56,69,898,451,53,56,53,56,53,56,53,56,53,171,53,56,53,56, 53,56,53,171,53,56,53,171,53,171,53,56,53,171,53,56,53,56,53,171,53,171,53,171,53,171,53,171,53,56,53,56, 53,56,53,56,53,56,53,56,53,56,53,56,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226,53,56,898,453,55,57, 55,57,55,57,55,170,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,57,55,170,55,170,55,170,55,170,55,57, 55,170,55,57,55,57,55,170,55,57,55,57,55,57,55,170,55,57,55,170,55,170,55,57,55,170,55,170,55,170,55,3949, 900,226,55,9623,900,226,56,0,88,90,177,91,88,91,88,181,177,181,177,91,88,181,88,91,177,91,88,8976,88,91,177,91, 88,91,88,181,177,181,177,91,88,181,88,91,177,91,88,90,400,400,48,200,48,200,48,200,48,200,48,100,48,100,48,200, 48,200,48,200,48,100,48,200,48,200,48,100,48,100,48,100,48,100,48,200,48,200,48,100,48,100,48,100,48,200,48,100, 48,100,48,1050,400,400,48,200,48,200,48,200,48,200,48,100,48,100,48,200,48,200,48,200,48,100,48,200,48,200,48,100, 48,100,48,100,48,100,48,200,48,200,48,100,48,100,48,100,48,200,48,100,48,100,48,200,451,447,54,170,54,56,54,170, 54,56,54,56,54,56,54,56,54,56,54,170,54,56,54,170,54,56,54,56,54,56,54,56,54,56,54,56,54,170,54,56, 54,56,54,56,54,56,54,56,54,56,54,170,54,56,54,170,54,170,54,170,54,170,54,170,54,170,54,4927,451,447,54,170, 54,56,54,170,54,56,54,56,54,56,54,56,54,56,54,170,54,56,54,170,54,56,54,56,54,56,54,56,54,56,54,56, 54,170,54,56,54,56,54,56,54,56,54,56,54,56,54,170,54,56,54,170,54,170,54,170,54,170,54,170,54,170,54,170, 895,448,55,57,55,167,55,167,55,57,55,57,55,57,55,57,55,167,55,57,55,167,55,57,55,57,55,57,55,57,55,57, 55,57,55,167,55,57,55,57,55,167,55,57,55,57,55,167,55,57,55,57,55,167,55,167,55,57,55,167,55,167,55,57, 55,167,55,4400,897,447,55,57,55,167,55,167,55,57,55,57,55,57,55,57,55,167,55,57,55,167,55,57,55,57,55,57, 55,57,55,57,55,57,55,167,55,57,55,57,55,167,55,57,55,57,55,167,55,57,55,57,55,167,55,167,55,57,55,167, 55,167,55,57,55,167,55,57,88,90,177,91,88,91,88,91,88,181,88,91,177,91,88,181,88,91,177,91,88,8976,88,91, 177,91,88,91,88,91,88,181,88,91,177,91,88,181,88,91,177,91,88,90,440,446,56,58,56,58,56,58,56,174,56,58, 56,58,56,58,56,58,56,58,56,58,56,58,56,174,56,58,56,58,56,58,56,58,56,174,56,174,56,58,56,174,56,58, 56,58,56,58,56,58,56,58,56,58,56,174,56,58,56,174,56,174,56,174,56,174,56,4549,440,446,56,174,56,9448,440,446, 56,174,56,58,898,451,53,56,53,171,53,56,53,56,53,171,53,56,53,56,53,56,53,171,53,171,53,171,53,171,53,171, 53,171,53,171,53,171,53,56,53,171,53,171,53,171,53,56,53,56,53,56,53,56,53,171,53,56,53,56,53,56,53,171, 53,171,53,171,53,171,53,3950,900,226,53,9599,900,226,53,56,898,451,53,171,53,171,53,56,53,56,53,56,53,56,53,56, 53,171,53,171,53,56,53,171,53,56,53,171,53,56,53,171,53,56,53,56,53,171,53,56,53,56,53,56,53,56,53,171, 53,171,53,171,53,56,53,171,53,171,53,171,53,171,53,56,53,56,53,3950,900,226,53,9599,900,226,53,171,898,453,55,57, 55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,170,55,170,55,170,55,170,55,170,55,170, 55,57,55,57,55,57,55,170,55,57,55,170,55,57,55,57,55,170,55,170,55,170,55,57,55,170,55,57,55,170,55,3949, 900,226,55,9623,900,226,56,0,898,451,53,56,53,56,53,56,53,56,53,56,53,56,53,56,53,56,53,171,53,56,53,171, 53,171,53,171,53,171,53,56,53,171,53,171,53,56,53,56,53,56,53,56,53,56,53,56,53,56,53,56,53,171,53,171, 53,171,53,171,53,171,53,171,53,171,53,3950,900,226,53,9599,900,226,53,56,43,171,45,170,45,170,45,60,45,60,45,60, 45,170,45,60,45,60,45,170,45,60,45,60,45,60,45,60,45,60,45,60,54,2301,45,170,45,170,45,170,45,60,45,60, 45,60,45,170,45,60,45,60,45,170,45,60,45,60,45,60,45,60,45,60,45,60,54,2301,898,453,55,57,55,57,55,57, 55,57,55,57,55,170,55,170,55,57,55,170,55,170,55,170,55,170,55,170,55,57,55,57,55,170,55,57,55,57,55,57, 55,57,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,170,55,170,55,170,55,170,55,170,55,3949,900,226,55,9623, 900,226,56,0,346,348,86,258,86,87,86,87,86,258,86,87,86,258,86,87,86,87,86,87,86,87,86,87,86,258,86,87, 86,258,86,258,86,87,86,258,86,87,86,258,86,258,86,258,86,258,86,258,86,87,86,3338,348,347,86,258,86,87,86,87, 86,258,86,87,86,258,86,87,86,87,86,87,86,87,86,87,86,258,86,87,86,258,86,258,86,87,86,258,86,87,86,258, 86,258,86,258,86,258,86,258,86,87,86,258,455,449,58,53,58,53,58,53,58,167,58,53,58,53,58,53,58,53,58,53, 58,53,58,53,58,167,58,53,58,53,58,53,58,53,58,167,58,167,58,167,58,167,58,53,58,53,58,53,58,53,58,53, 58,53,58,53,58,53,58,167,58,167,58,167,58,167,58,4494,456,449,58,167,58,9679,456,449,58,167,58,53,898,449,56,175, 56,57,56,57,56,57,56,175,56,175,56,175,56,57,56,57,56,175,56,175,56,175,56,57,56,57,56,57,56,175,56,57, 56,57,56,57,56,175,56,57,56,57,56,57,56,57,56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,175,56,4150, 898,227,56,9499,898,227,56,175,898,449,56,175,56,175,56,57,56,57,56,57,56,57,56,57,56,175,56,57,56,57,56,175, 56,175,56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,175,56,175,56,175,56,175,56,175,56,57,56,57,56,57, 56,57,56,57,56,57,56,57,56,57,56,4150,898,227,56,9499,898,227,56,175,431,436,51,51,51,51,51,51,51,160,51,51, 51,51,51,51,51,51,51,160,51,160,51,160,51,51,51,160,51,160,51,160,51,160,51,160,51,160,51,160,51,160,51,51, 51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,160,51,160,51,160,51,160,51,4096,883,219,51,9513,883,219,51,51, 455,449,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,53, 58,53,58,167,58,167,58,167,58,167,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,53,58,167,58,167,58,167, 58,167,58,4494,456,449,58,167,58,9679,456,449,58,167,58,53,455,449,58,53,58,167,58,167,58,53,58,167,58,53,58,53, 58,53,58,53,58,167,58,167,58,53,58,167,58,53,58,53,58,53,58,167,58,167,58,167,58,167,58,53,58,53,58,53, 58,53,58,53,58,53,58,53,58,53,58,167,58,167,58,167,58,167,58,4494,456,449,58,167,58,9679,456,449,58,167,58,53, 1050,494,58,61,58,61,58,61,58,61,58,61,58,211,58,61,58,211,58,211,58,211,58,211,58,211,58,211,58,61,58,211, 58,61,58,61,58,211,58,61,58,211,58,61,58,61,58,61,58,61,58,211,58,61,58,211,58,61,58,211,58,211,58,211, 58,211,73,4164,883,211,58,9582,883,211,58,61,898,449,56,175,56,175,56,57,56,57,56,57,56,57,56,57,56,175,56,57, 56,57,56,175,56,175,56,175,56,175,56,175,56,57,56,57,56,57,56,57,56,175,56,57,56,57,56,57,56,57,56,175, 56,175,56,175,56,57,56,175,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,175,431,436,51,160,51,160,51,160, 51,160,51,160,51,160,51,160,51,160,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,160,51,160,51,160, 51,160,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,160,51,160,51,160,51,160,51,4096,883,219,51,9513, 883,219,51,160,898,453,55,170,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,170, 55,170,55,170,55,170,55,170,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,57,55,170,55,170,55,170,55,170, 55,170,55,170,55,170,55,3949,900,226,55,9623,900,226,56,0,896,442,56,54,56,54,56,54,56,54,56,54,56,54,56,54, 56,166,56,54,56,54,56,54,56,166,56,54,56,166,56,166,56,54,56,166,56,54,56,54,56,166,56,54,56,54,56,166, 56,54,56,54,56,166,56,166,56,54,56,166,56,166,56,54,56,166,56,3945,896,443,56,54,56,54,56,54,56,54,56,54, 56,54,56,54,56,166,56,54,56,54,56,54,56,166,56,54,56,166,56,166,56,54,56,166,56,54,56,54,56,166,56,54, 56,54,56,166,56,54,56,54,56,166,56,166,56,54,56,166,56,166,56,54,56,166,56,54,791,398,44,147,44,50,44,147, 44,50,44,147,44,50,44,50,44,50,44,447,44,147,44,50,44,147,44,50,44,147,44,50,44,50,44,50,44,2236,793,397, 44,147,44,50,44,147,44,50,44,147,44,50,44,50,44,50,44,447,44,147,44,50,44,147,44,50,44,147,44,50,44,50, 44,50,44,147,328,331,81,86,81,296,81,86,81,296,81,86,81,86,81,86,81,296,81,86,81,296,81,86,81,86,81,296, 81,86,81,296,81,86,81,296,81,296,81,296,81,86,81,296,81,86,81,296,81,296,81,3349,329,331,81,86,81,296,81,86, 81,296,81,86,81,86,81,86,81,296,81,86,81,296,81,86,81,86,81,296,81,86,81,296,81,86,81,296,81,296,81,296, 81,86,81,296,81,86,81,296,81,296,81,86,898,449,56,57,56,57,56,57,56,57,56,175,56,57,56,57,56,57,56,175, 56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,175,56,57,56,57,56,57,56,175,56,57,56,57,56,57,56,57, 56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,57,819,420,49,158,49,54,49,54, 49,54,49,54,49,54,49,54,49,54,49,420,49,54,49,158,49,158,49,158,49,54,49,54,49,54,49,54,49,2446,821,419, 49,158,49,54,49,54,49,54,49,54,49,54,49,54,49,54,49,420,49,54,49,158,49,158,49,158,49,54,49,54,49,54, 49,54,49,158,431,436,51,160,51,160,51,160,51,51,51,160,51,160,51,160,51,160,51,51,51,51,51,51,51,160,51,51, 51,51,51,51,51,51,51,160,51,160,51,160,51,160,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,160, 51,160,51,160,51,160,51,4096,883,219,51,9513,883,219,51,160,881,438,55,63,55,63,55,171,55,63,55,63,55,63,55,63, 55,63,55,171,55,171,55,63,55,171,55,171,55,171,55,171,55,171,55,63,55,63,55,63,55,171,55,63,55,63,55,63, 55,63,55,171,55,171,55,171,55,63,55,171,55,171,55,171,55,171,55,4094,881,219,55,9508,881,219,55,63,898,449,56,57, 56,57,56,175,56,175,56,57,56,57,56,57,56,57,56,175,56,175,56,57,56,57,56,175,56,175,56,175,56,175,56,175, 56,175,56,175,56,175,56,175,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,175,56,175,56,175,56,4150, 898,227,56,9499,898,227,56,57,898,449,56,57,56,57,56,57,56,57,56,175,56,57,56,57,56,57,56,175,56,175,56,175, 56,175,56,57,56,175,56,175,56,175,56,57,56,57,56,57,56,175,56,57,56,57,56,57,56,57,56,175,56,175,56,175, 56,57,56,175,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,57,329,322,80,95,80,95,80,95,80,95,80,95, 80,95,80,95,80,95,80,95,80,95,80,249,80,249,80,249,80,249,80,249,80,249,80,249,80,249,80,249,80,95,80,95, 80,249,80,3867,329,322,80,95,80,95,80,95,80,95,80,95,80,95,80,95,80,95,80,95,80,95,80,249,80,249,80,249, 80,249,80,249,80,249,80,249,80,249,80,249,80,95,80,95,80,249,81,0,898,449,56,57,56,57,56,57,56,175,56,175, 56,175,56,57,56,57,56,175,56,175,56,175,56,57,56,57,56,57,56,175,56,175,56,57,56,57,56,175,56,175,56,175, 56,57,56,57,56,57,56,175,56,175,56,57,56,57,56,57,56,175,56,175,56,175,56,4150,898,227,56,9499,898,227,56,57, 900,421,54,56,54,56,54,56,54,56,54,151,54,151,54,56,54,56,54,151,54,151,54,151,54,151,54,56,54,56,54,151, 54,151,54,56,54,56,54,56,54,56,54,56,54,56,54,56,54,56,54,151,54,151,54,151,54,151,54,151,54,151,54,151, 54,151,54,4092,901,226,54,8677,901,226,54,56,881,438,55,63,55,63,55,63,55,171,55,171,55,171,55,63,55,63,55,171, 55,171,55,171,55,63,55,63,55,63,55,171,55,171,55,63,55,171,55,63,55,63,55,171,55,63,55,63,55,63,55,171, 55,63,55,171,55,171,55,63,55,171,55,171,55,171,55,4094,881,219,55,9508,881,219,55,63,898,449,56,175,56,57,56,175, 56,57,56,57,56,57,56,57,56,175,56,57,56,175,56,57,56,175,56,175,56,175,56,175,56,57,56,57,56,57,56,57, 56,175,56,57,56,57,56,57,56,57,56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,175,56,4150,898,227,56,9499, 898,227,56,175,114,100,115,100,115,200,115,2706,115,100,115,100,115,200,115,100,346,348,86,87,86,87,86,87,86,258,86,87, 86,258,86,87,86,87,86,87,86,87,86,87,86,258,86,258,86,258,86,258,86,87,86,258,86,87,86,258,86,258,86,258, 86,258,86,258,86,87,86,3338,348,347,86,87,86,87,86,87,86,258,86,87,86,258,86,87,86,87,86,87,86,87,86,87, 86,258,86,258,86,258,86,258,86,87,86,258,86,87,86,258,86,258,86,258,86,258,86,258,86,87,86,87,898,449,56,175, 56,175,56,175,56,175,56,175,56,175,56,175,56,175,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,57,56,57, 56,57,56,57,56,175,56,57,56,57,56,57,56,57,56,175,56,175,56,175,56,57,56,175,56,175,56,175,56,175,56,4150, 898,227,56,9499,898,227,56,175,358,349,88,258,88,90,88,90,88,90,88,90,88,258,88,90,88,258,88,258,88,258,88,90, 88,258,88,90,88,258,88,258,88,258,88,258,88,90,88,258,88,90,88,90,88,90,88,258,88,90,88,2247,358,350,88,258, 88,90,88,90,88,90,88,90,88,258,88,90,88,258,88,258,88,258,88,90,88,258,88,90,88,258,88,258,88,258,88,258, 88,90,88,258,88,90,88,90,88,90,88,258,88,90,88,258,899,421,54,65,54,65,54,170,54,65,54,170,54,65,54,65, 54,65,54,170,54,170,54,65,54,170,54,65,54,170,54,170,54,170,54,170,54,170,54,65,54,170,54,170,54,65,54,65, 54,65,54,65,54,65,54,170,54,65,54,65,54,170,54,170,54,170,54,4099,899,226,54,8668,899,226,54,65,28,106,28,370, 28,106,28,370,28,106,28,370,28,106,28,106,28,106,28,106,28,106,28,106,28,106,28,238,28,238,28,1173,28,106,28,370, 28,106,28,370,28,106,28,370,28,106,28,106,28,106,28,106,28,106,28,106,28,106,28,238,28,238,28,106,13,741,15,740, 15,740,15,740,15,740,15,489,15,489,15,489,15,740,15,740,15,489,17,4641,15,740,15,740,15,740,15,740,15,740,15,489, 15,489,15,489,15,740,15,740,15,489,18,0,896,442,56,54,56,166,56,166,56,54,56,54,56,54,56,54,56,166,56,166, 56,54,56,166,56,54,56,54,56,54,56,54,56,54,56,166,56,166,56,166,56,166,56,54,56,54,56,54,56,54,56,54, 56,54,56,54,56,54,56,166,56,166,56,166,56,166,56,3945,896,443,56,54,56,166,56,166,56,54,56,54,56,54,56,54, 56,166,56,166,56,54,56,166,56,54,56,54,56,54,56,54,56,54,56,166,56,166,56,166,56,166,56,54,56,54,56,54, 56,54,56,54,56,54,56,54,56,54,56,166,56,166,56,166,56,166,56,54,892,450,53,59,53,59,53,171,53,171,53,171, 53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,59,53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,171, 53,171,53,171,53,171,53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,171,53,171,53,171, 53,171,53,171,53,171,53,171,53,171,53,2301,895,448,53,59,53,59,53,171,53,171,53,171,53,171,53,171,53,59,53,59, 53,59,53,59,53,59,53,59,53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,171,53,171,53,171,53,171,53,171, 53,171,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,171,53,171,53,171,53,171,53,171,53,171,53,171, 53,171,53,59,892,450,53,171,53,171,53,59,53,171,53,171,53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,59, 53,59,53,59,53,171,53,59,53,59,53,59,53,59,53,171,53,171,53,171,53,171,53,171,53,171,53,59,53,59,53,59, 53,59,53,59,53,59,53,59,53,59,53,171,53,171,53,171,53,171,53,171,53,171,53,171,53,171,53,2301,895,448,53,171, 53,171,53,59,53,171,53,171,53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,59,53,171,53,59, 53,59,53,59,53,59,53,171,53,171,53,171,53,171,53,171,53,171,53,59,53,59,53,59,53,59,53,59,53,59,53,59, 53,59,53,171,53,171,53,171,53,171,53,171,53,171,53,171,53,171,55,0, }; void delay_ten_us(uint16_t us) { delayMicroseconds(us*10); } void xmitCodeElement(uint16_t ontime, uint16_t offtime, uint8_t PWM_code) { if(PWM_code) analogWrite(IRLED,512); else digitalWrite(IRLED, HIGH); delay_ten_us(ontime); digitalWrite(IRLED, LOW); delay_ten_us(offtime); } void setup() { pinMode(IRLED, OUTPUT); } void loop() { int region=0; // 0 for EU, 1 for US delay_ten_us(25000); const int *codes; const unsigned short *codes2; int sz=0; int p=0; if(region==0) { codes=codes_eu; codes2=codes2_eu; sz=sizeof(codes_eu)/sizeof(codes_eu[0])/3; } else { codes=codes_us; codes2=codes2_us; sz=sizeof(codes_us)/sizeof(codes_us[0])/3; } for(int i=0 ;i<sz;i++) { const int *cc=codes+3*i; int freq=pgm_read_dword(cc+0); const unsigned short *code=codes2+pgm_read_dword(cc+2); analogWriteFreq(freq); for (int k=0;k<pgm_read_dword(cc+1);k+=2) xmitCodeElement(pgm_read_word(code+k), pgm_read_word(code+k+1), (freq!=0)); delay(130); } }