diff --git a/lib/Encoding/Big5.php b/lib/Encoding/Big5.php index a19f89f..cc494e7 100644 --- a/lib/Encoding/Big5.php +++ b/lib/Encoding/Big5.php @@ -18,6 +18,7 @@ class Big5 implements StatelessEncoding { 1164 => [0x00EA, 0x0304], 1166 => [0x00EA, 0x030C], ]; + const TABLE_ENC = [167=>5103,10951,175=>5120,5205,5137,183=>5040,215=>5135,247=>5136,11300,331=>11301,339=>11299,592=>11295,596=>11297,603=>11296,618=>11303,629=>11298,643=>11294,650=>11302,710=>10952,5430,713=>5428,5429,5431,717=>5123,729=>5427,913=>5342,5343,5344,5345,5346,5347,5348,5349,5350,5351,5352,5353,5354,5355,5356,5357,5358,931=>5359,5360,5361,5362,5363,5364,5365,945=>5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379,5380,5381,5382,963=>5383,5384,5385,5386,5387,5388,5389,1025=>11141,1040=>11135,11136,11137,11138,11139,11140,11142,11143,11144,11145,11146,11147,11148,11149,11150,11151,11152,11153,11154,11155,11156,11157,11158,11159,11160,11161,11162,11163,11164,11165,11166,11167,11168,11169,11170,11171,11172,11173,11175,11176,11177,11178,11179,11180,11181,11182,11183,11184,11185,11186,11187,11188,11189,11190,11191,11192,11193,11194,11195,11196,11197,11198,11199,11200,1105=>11174,8211=>5046,5048,8216=>5091,5092,8220=>5093,5094,8229=>5036,5035,5029,8242=>5098,8245=>5097,8251=>5102,8364=>5465,8451=>5191,8453=>5119,8457=>5192,8470=>11259,8481=>11260,8544=>5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,8560=>10916,10917,10918,10919,10920,10921,10922,10923,10924,10925,8592=>5172,5170,5173,5171,8598=>5174,5175,5177,5176,8632=>11202,11203,8679=>11201,8725=>5182,8730=>5138,8734=>5145,5158,5157,8739=>5179,8741=>5178,8745=>5154,5155,5162,8750=>5163,8756=>5165,5164,8786=>5146,8800=>5144,5147,8806=>5142,5143,8853=>5168,8857=>5169,8869=>5156,8895=>5159,9216=>5432,5433,5434,5435,5436,5437,5438,5439,5440,5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456,5457,5458,5459,5460,5461,5462,5463,9249=>5464,9312=>10896,10897,10898,10899,10900,10901,10902,10903,10904,10905,9332=>10906,10907,10908,10909,10910,10911,10912,10913,10914,10915,9472=>5236,9474=>5237,9484=>5239,9488=>5240,9492=>5241,9496=>5242,9500=>5234,9508=>5233,9516=>5232,9524=>5231,9532=>5230,9552=>18991,18990,18972,18981,18963,18974,18983,18965,18978,18987,18969,18980,18989,18971,18975,18984,18966,5250,18986,18968,18973,18982,18964,18979,18988,18970,18976,18985,18967,5243,5244,5246,5245,5255,5256,5257,5050,9601=>5215,5216,5217,5218,5219,5220,5221,5222,5229,5228,5227,5226,5225,5224,5223,9620=>5235,5238,9632=>5115,5114,9650=>5108,5107,9660=>5117,5116,9670=>5113,5112,9675=>5105,9678=>5109,5106,9698=>5251,5252,5254,5253,9733=>5111,5110,9792=>5166,9794=>5167,10045=>10965,11904=>11263,11908=>11264,11910=>11265,11266,11267,11914=>11268,11916=>11269,11270,11925=>11271,11932=>11272,11273,11941=>11274,11943=>11275,11946=>11276,11948=>11277,11950=>11278,11958=>11279,11964=>11280,11966=>11281,11974=>11282,11978=>11283,11980=>11284,11285,11983=>11286,11990=>11287,11288,11998=>11289,12003=>11290,12083=>10940,12288=>5024,5026,5027,5104,12293=>10959,10960,10961,5073,5074,5069,5070,5077,5078,5081,5082,5065,5066,5186,12308=>5061,5062,12317=>5095,5096,12321=>5278,5279,5280,5281,5282,5283,5284,5285,5286,12353=>10966,10967,10968,10969,10970,10971,10972,10973,10974,10975,10976,10977,10978,10979,10980,10981,10982,10983,10984,10985,10986,10987,10988,10989,10990,10991,10992,10993,10994,10995,10996,10997,10998,10999,11000,11001,11002,11003,11004,11005,11006,11007,11008,11009,11010,11011,11012,11013,11014,11015,11016,11017,11018,11019,11020,11021,11022,11023,11024,11025,11026,11027,11028,11029,11030,11031,11032,11033,11034,11035,11036,11037,11038,11039,11040,11041,11042,11043,11044,11045,11046,11047,11048,12443=>11261,11262,10955,10956,12449=>11049,11050,11051,11052,11053,11054,11055,11056,11057,11058,11059,11060,11061,11062,11063,11064,11065,11066,11067,11068,11069,11070,11071,11072,11073,11074,11075,11076,11077,11078,11079,11080,11081,11082,11083,11084,11085,11086,11087,11088,11089,11090,11091,11092,11093,11094,11095,11096,11097,11098,11099,11100,11101,11102,11103,11104,11105,11106,11107,11108,11109,11110,11111,11112,11113,11114,11115,11116,11117,11118,11119,11120,11121,11122,11123,11124,11125,11126,11127,11128,11129,11130,11131,11132,11133,11134,12540=>10962,10953,10954,12549=>5390,5391,5392,5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,12751=>11204,12849=>11258,12963=>5118,13198=>5202,5203,13212=>5197,5198,5199,13217=>5201,13252=>5204,13262=>5200,13265=>5161,5160,13269=>5196,13434=>19037,13665=>19202,13729=>19212,13859=>19184,13881=>19349,13897=>19005,14001=>19191,14019=>19215,14021=>19661,14053=>19532,19238,14088=>19241,14093=>19566,14128=>19681,14130=>19249,14144=>19512,14147=>19040,14328=>19724,14381=>19290,14390=>19295,14496=>19313,14540=>19104,14642=>19379,14691=>19347,14849=>19478,14871=>19393,14935=>19409,14950=>19407,15019=>19131,15070=>19320,15147=>19451,15232=>19480,15265=>19487,15298=>19296,15347=>19497,15373=>19501,15580=>19064,15595=>19533,15666=>19477,15675=>19579,15694=>19576,15711=>19336,15749=>19247,15796=>19152,15815=>19348,15848=>19603,15936=>19353,15957=>19638,16040=>19778,16042=>19103,16087=>19671,16132=>19709,16217=>19123,16388=>19257,16600=>19422,16644=>19602,17077=>19002,17148=>19484,17553=>11209,17570=>19107,17605=>19526,17641=>19460,17746=>19165,17749=>19572,18342=>19149,18525=>19258,18606=>19321,18653=>19276,18669=>19647,18771=>19686,19255=>19420,19693=>19157,19728=>19267,19968=>5495,5497,19971=>5498,19975=>11309,5517,5515,5518,5516,11310,5560,11319,11317,5559,5558,19988=>5654,5653,5652,19992=>5655,5651,19998=>5778,5779,20006=>6220,20011=>5519,20013=>5561,11320,20016=>5562,11339,5945,11697,20022=>10926,20024=>5520,5563,20027=>5656,11340,20031=>10927,20034=>11304,5499,20037=>5522,20039=>11311,5523,19128,20043=>5564,20045=>5657,5659,5658,20050=>5780,5781,20054=>6221,20056=>6998,5496,11206,20060=>11305,5500,5525,5524,20073=>5782,20083=>6222,20094=>7455,13042,20098=>8418,14366,14367,10928,5501,20104=>5566,20107=>6223,5502,11312,5526,20113=>5567,5569,11321,5570,5568,20121=>5783,20123=>6224,20126=>6225,6599,10929,5527,5571,20132=>5784,5786,5785,20136=>5946,20139=>6226,6227,6600,6601,20147=>6999,20150=>14368,19304,20153=>18485,5503,20160=>5573,5572,11322,5574,5580,20166=>5575,5576,11324,11323,5578,5579,20173=>5577,20180=>5662,5663,5664,5665,5661,5668,11346,20188=>11342,10958,5669,5685,20193=>11344,20195=>5666,5667,5660,20200=>11341,11343,20208=>5799,11382,5796,5800,11392,11380,5797,11384,20219=>5798,20221=>5801,20223=>5787,11383,5802,11387,20228=>11391,11388,20232=>11385,5788,5790,5803,20237=>5792,11377,5795,5793,5794,11393,11390,11381,5791,20248=>11378,5789,20253=>11386,20258=>11389,20268=>11379,11499,20271=>5968,5955,20275=>11500,5952,20278=>5970,20280=>5960,20282=>5959,11488,5963,5958,11493,11501,20289=>11497,20291=>5961,20294=>5964,5949,5973,11490,20300=>11709,5947,5969,5948,5956,5957,11495,11491,5962,5954,11487,5950,11498,5971,5974,5953,5966,5972,5951,11496,5967,11502,11489,5965,11492,20327=>11494,20329=>6241,11711,11723,6233,20334=>11724,6228,6238,20339=>6231,11705,6239,11704,11708,11715,11713,6247,6242,11699,11701,6244,6232,11702,11714,11721,6237,11707,11700,6236,11703,6240,11706,20363=>6235,20365=>6230,20367=>6245,11716,6246,11720,20372=>11718,11722,6243,11710,11698,20378=>11712,6234,11717,6229,11719,20395=>19020,20398=>6616,6604,20402=>12058,12066,20405=>6603,6611,6623,20409=>12072,12070,12065,20415=>6605,12071,12061,6619,6610,6618,12056,20423=>12068,20425=>12059,6614,12060,20429=>12055,6621,6608,6617,6607,20435=>12057,12062,20438=>12069,6615,6612,12064,6620,12067,12063,6609,6622,6613,6606,6602,20460=>12073,20462=>7025,7003,20465=>7019,20467=>7024,12513,12512,12517,12518,7006,20474=>7015,20478=>7028,20480=>7016,20485=>12506,7009,12507,19022,7030,20491=>7021,7000,7001,12526,7472,20497=>7014,7013,12508,7017,13058,7008,12519,7023,7022,7012,12511,12520,20510=>12505,7011,12521,7020,12509,7002,20517=>7005,7004,12522,7018,7007,7027,7029,12516,7026,20527=>12524,12510,12525,20531=>12514,20533=>12523,20535=>12515,20540=>7010,20544=>13066,13054,20547=>7460,20549=>13059,13065,7459,13052,7463,13056,13049,7461,13053,7466,7471,20561=>13070,20563=>13048,20565=>7467,20567=>13069,20570=>7462,13055,7458,13050,13046,13060,13047,13045,13057,13063,13064,7464,20584=>13686,13061,13044,13062,20589=>7474,13067,7473,13043,20594=>13051,13068,7469,7468,7465,7470,20602=>7456,20605=>7457,20608=>7952,20610=>13689,13682,20613=>7949,20615=>13690,20619=>13680,13683,7948,13684,20624=>19490,7951,13688,20628=>13678,13677,7953,20632=>7954,7950,7955,13676,13687,13685,13679,20642=>7947,13681,20652=>8425,8419,14372,8428,14378,14381,8421,8422,14375,8420,14384,8426,14385,20666=>14380,8427,20669=>14369,8424,14370,20673=>14379,14377,20676=>14373,8423,14371,8429,14376,14383,14374,14382,20686=>8876,8873,20689=>8874,20691=>15066,15058,8872,8869,15059,20698=>8871,15062,20701=>15064,20704=>15071,19361,20707=>15070,15065,8868,15057,8866,15060,8877,15063,20716=>15067,8870,8867,15069,15068,8875,20723=>15061,20725=>9256,15681,20728=>15678,9257,20731=>9255,20733=>15685,15682,15675,9254,19036,9258,15676,9253,9261,15679,15680,9259,9260,15686,15683,15684,20750=>19038,20752=>9649,16321,9646,16318,9648,9650,20759=>16319,9647,20762=>16320,20764=>16317,20767=>9945,16890,9946,16888,20772=>16889,16887,16886,20777=>16891,9944,20781=>17356,17357,20784=>15677,17355,9947,10393,17721,17722,20791=>10636,10637,18307,18306,10720,10719,18636,20799=>5504,5528,5582,20803=>5581,5671,5670,5806,5805,5807,5804,20811=>5976,5975,5977,20818=>6249,20820=>6248,6250,20823=>6624,20825=>5206,12527,5207,7475,5209,5208,13691,19044,5210,8878,5211,20837=>5505,20839=>5583,5808,6251,19046,5506,5586,5584,5585,20849=>5809,20853=>5978,6253,6252,6254,20860=>7031,20864=>9651,20866=>10930,20871=>11318,11211,5672,5673,20877=>5810,20879=>11503,20881=>6626,6625,12529,12528,7476,10931,5587,11325,20894=>11725,20896=>6627,20898=>7034,20900=>7032,7033,20906=>9652,10932,5674,20912=>5811,11394,19058,19067,20917=>19004,5979,5980,19059,11504,20924=>11726,6255,11727,20932=>12531,12532,7037,19552,12533,19061,12530,7038,7036,7035,12534,19062,13071,19063,20947=>19065,13692,20951=>14386,15072,20956=>9262,9653,16322,19589,5507,5521,19068,20973=>19070,20976=>7477,7957,20979=>8879,19369,11306,5588,20984=>5677,5675,5676,20989=>6256,20992=>5508,5509,11208,5529,20998=>5589,5590,5591,11396,5678,19075,11347,21006=>5815,21008=>11397,5813,5814,11395,21014=>5816,5812,21020=>11505,6575,11506,21025=>11507,21028=>5982,5981,19076,21032=>5985,5983,5984,21038=>6262,21040=>6261,11732,11729,11730,21045=>11728,6263,6259,6258,21050=>6260,6257,19077,21057=>6264,21059=>6629,12074,21062=>11731,6634,21065=>12075,6630,6633,6632,6631,6628,21074=>12537,21076=>7041,12540,7039,19079,21082=>12536,7042,7040,7043,12538,12539,21089=>12535,12541,21097=>7961,7478,13072,13074,13073,13075,7479,21106=>7958,21108=>7959,7960,21111=>8431,14388,21114=>14387,14389,14390,8432,21119=>8430,15073,15074,8881,8880,15412,21127=>9263,9264,9265,9267,15687,15688,9266,21137=>9654,21139=>9655,19080,21142=>17723,18309,18308,18637,21147=>5510,21151=>5680,5679,21155=>5817,21158=>11398,21161=>5987,5988,5986,5989,11508,11509,21173=>19078,21177=>19081,21179=>6266,11733,21182=>6265,21184=>12076,6638,12077,6637,21189=>19082,21191=>6635,21193=>6636,21197=>12542,21200=>19252,21202=>7480,13077,21205=>7483,13076,7667,7482,7481,21211=>7964,21213=>7963,7962,8433,19085,21218=>8436,8437,8435,21222=>8434,21225=>15075,21227=>15076,21231=>15690,9268,15689,21235=>9656,16892,9948,21239=>17724,10540,10933,5530,5592,11326,21246=>5593,5594,21253=>5681,5682,21256=>5818,11510,11734,11735,21261=>6639,12543,7485,7484,13694,13693,21269=>5511,5595,5683,21273=>7486,11307,21276=>11348,5684,21279=>11400,5820,5819,11399,5990,21290=>7044,21293=>13078,21295=>8438,15077,8882,21299=>19095,16323,21303=>18053,10934,5596,21308=>11736,12078,7489,7487,7488,5512,19069,5531,5288,5599,21319=>5598,5597,5687,5686,21324=>11349,11401,21329=>6270,6267,6269,6268,21335=>6640,21338=>7965,21340=>5513,21342=>5600,21344=>5689,5688,21347=>11511,21350=>6271,21353=>10935,21356=>11327,19108,5691,5690,5821,5822,11512,5991,19109,5992,21367=>6272,6273,6274,21371=>6641,12079,21374=>19111,7045,21378=>11308,21380=>5601,21386=>11402,21390=>11513,11514,21394=>11737,19116,11738,21398=>12081,12080,12083,12082,6642,21404=>13079,7047,12544,7046,19118,21412=>13695,7966,19303,13696,19306,21419=>19119,15078,8883,19120,21426=>9269,21428=>17725,21430=>10936,21433=>11328,21435=>5692,21441=>19125,21443=>7490,21445=>19126,21448=>5514,5532,5603,5602,21453=>5604,21460=>6276,21462=>6275,6277,21465=>19130,21467=>6643,21471=>7048,19133,16324,10220,5533,5694,5709,5704,21480=>5699,5698,5705,5703,5696,5710,5697,5693,5708,5707,5706,5695,21493=>5702,19136,21496=>5701,21499=>5711,5700,21502=>19179,21505=>5828,21507=>5834,5830,21510=>5836,11403,5833,5823,5826,5829,5825,5832,5835,5824,5827,5831,5837,19138,21528=>11523,11520,21531=>6005,11521,5993,5995,6019,6014,19513,21540=>11528,11522,5997,5999,11527,6006,11517,6018,6020,5994,6011,19158,11515,6017,21555=>6002,21557=>6012,6013,11516,6010,6008,21563=>6009,6015,11524,5996,21568=>6016,11526,6004,6001,21573=>11519,6000,11529,6003,21578=>6007,21582=>5998,11525,21588=>11518,21600=>11755,11754,6295,11757,11759,11748,11751,11758,6296,21611=>11745,11749,19143,21615=>11753,12098,6291,12102,6278,11750,6279,6292,6285,6281,21626=>11746,6284,6289,6298,11747,11740,6283,11741,11743,21636=>6286,21638=>6288,11739,11744,21643=>6297,6293,11752,6299,19147,6290,11742,6287,21653=>6282,6280,21656=>11756,21658=>6294,21664=>12097,12085,12100,21668=>19148,12087,6650,6664,6646,6663,6655,6660,6644,12086,12092,6659,12104,6661,21683=>6651,21686=>12094,12091,6649,21690=>12084,6662,12099,6654,12101,6665,6645,6656,6653,12089,6657,12095,12096,6652,6658,6648,21710=>6647,12088,21718=>12093,21726=>12103,21728=>12564,7061,12546,21732=>12551,7054,7065,12549,7049,7059,7064,12556,21741=>7060,7063,21745=>12559,7055,12550,21751=>12562,12563,21754=>7057,12561,7053,7068,21759=>12553,21761=>7051,21763=>12566,12554,12558,7056,7067,12555,7062,12560,12567,13094,21774=>12565,7069,7050,12557,12548,21780=>7058,21783=>12547,21786=>12552,21798=>12545,7066,21802=>13086,19140,7509,13100,7507,7504,13091,7500,13095,7511,13085,13090,13089,7052,7506,13098,21819=>13101,13082,21822=>7984,21824=>13102,7512,21827=>7498,7495,13093,7492,19156,13099,19090,7499,13103,21837=>13083,13097,7502,13084,13087,13092,19219,21845=>7503,7501,7513,21852=>7508,19146,7496,7648,21857=>7497,13088,7510,7505,13096,7494,21866=>7493,21877=>13080,13081,13701,21883=>7967,7970,13712,7990,13715,7968,13708,7974,7980,8255,21894=>19160,7978,13705,7991,7971,7979,13713,14404,13718,13706,21905=>13697,13710,13704,7977,13716,21912=>7973,7993,7986,21916=>7975,7972,21919=>7983,21921=>13717,13703,13709,13711,13699,13714,7969,13698,19161,7976,7992,7988,13700,7982,21937=>7989,7985,7981,21941=>13707,21947=>7987,21951=>14402,14398,21954=>14413,14391,14400,8452,8453,8445,14409,8455,14396,14395,14393,14411,8443,14405,14394,8446,14403,8441,14399,14406,14408,21977=>14412,8450,14392,8444,14397,21983=>8439,21985=>8451,14407,8447,8448,8454,8442,5212,8440,14401,21999=>8449,22002=>14410,22006=>8899,8894,22009=>15093,15089,22012=>15083,8888,8884,15092,8885,15086,15088,22020=>15091,19162,8890,22024=>8897,8891,22028=>15081,8892,8893,15084,8898,22034=>15082,15087,8889,15080,8895,8887,22043=>8886,15085,15090,22047=>8896,22055=>15079,22057=>9276,15707,22060=>15704,22062=>9270,9282,9283,22066=>9273,15702,9275,15694,9281,19169,15706,9272,15708,9271,22077=>15703,15705,9274,15701,15695,15692,22085=>13702,15698,22088=>15691,15697,15696,22092=>15693,19174,9278,19175,22099=>9277,22103=>9279,15699,9657,15700,22110=>16333,22112=>16326,22114=>9669,16330,9661,9665,16329,22120=>9664,9660,9663,9658,9668,16331,16327,9667,16325,9666,16332,16328,9280,22134=>9670,16334,9662,9659,22142=>16899,16901,9950,16902,16900,16898,16897,9952,16896,9953,22156=>16894,16895,9949,9954,9951,22163=>16893,22165=>10221,22167=>17360,17358,17363,17361,22172=>17359,17362,22181=>10394,17728,17729,10541,22186=>17730,17726,17731,17727,10222,22194=>18054,18056,10544,18055,10543,10542,22204=>10545,18311,18312,22208=>10639,10638,10640,18310,22213=>18487,18486,22216=>10721,10723,10722,18488,10778,18751,22225=>10819,22227=>18750,18823,22231=>11313,22234=>5713,5712,22237=>5840,5839,11405,5838,11404,22244=>6023,11532,22247=>11531,22250=>6021,6024,22253=>19182,11530,19181,6022,19177,22263=>11760,22265=>11761,6300,22271=>6666,19180,12568,12569,7070,7071,22279=>13105,7514,7516,13104,7515,13719,7994,22290=>8456,8457,14414,22294=>8901,22296=>8900,22298=>15709,16336,16335,22302=>18883,5534,11329,22306=>11350,11351,22312=>5843,5847,11407,22316=>5845,5844,11406,5846,5842,22323=>5841,11408,22331=>6034,22334=>6031,22336=>6027,11533,19190,19208,22341=>11534,19186,6029,22345=>11536,6025,11537,11535,6028,6030,6033,6032,6026,11538,22369=>6305,11774,22372=>6307,22374=>6306,22376=>11775,6304,6303,11765,22381=>11764,22383=>11762,11767,11766,11763,11772,11773,11770,11768,6302,22395=>11771,6308,11776,22400=>11769,22402=>6667,6301,22411=>6668,12109,22415=>12115,19350,22419=>6674,12113,12119,22423=>12110,12114,12116,12118,12112,22429=>12111,12106,12107,6669,22434=>6671,6670,12108,12117,22446=>6673,22453=>12105,12579,22456=>12578,12583,12574,22460=>12577,12576,22463=>12580,22465=>12584,7072,7075,22470=>12575,12581,22475=>7074,12570,22478=>6672,13119,12582,22482=>12573,22484=>7073,12572,22492=>13110,22495=>7517,7521,13126,13108,13122,7522,13124,19193,13130,22505=>13134,22508=>13125,13113,13121,22512=>13135,13133,13123,13118,13111,13727,13109,7526,13116,7527,7523,13106,13128,13114,19129,22528=>13112,13131,7524,19195,13137,7518,7520,13120,13115,7076,7519,13117,13132,13136,13127,22544=>13129,22548=>13107,22553=>13722,22555=>13731,13730,8002,13723,22560=>8003,8001,22563=>13725,7998,13729,19198,13724,13726,13720,7996,22572=>13739,13738,13735,7995,7999,8000,12571,13732,7997,7525,13734,13721,13737,13736,22587=>13740,22589=>14428,22591=>13733,22600=>13728,14420,8467,8470,8465,14419,14423,14418,22609=>8459,8469,14415,8463,14422,22615=>8461,8460,14425,8462,14427,19200,14424,8458,22626=>8468,14429,14417,14426,22632=>14416,22635=>8464,22637=>8466,22639=>14421,22641=>14430,22644=>15101,8902,15107,22649=>8907,15103,15110,15095,8909,8903,15100,9284,15099,15108,8904,22661=>8908,15098,15104,15109,15094,8906,15102,22670=>15106,15112,15096,15105,22675=>8905,15111,22680=>15097,22684=>9288,15711,9286,9285,15713,15718,22691=>15714,22693=>15717,9291,22696=>9644,9290,19201,15710,15716,22702=>9289,15715,22705=>15712,22707=>9287,22714=>16341,18959,16343,16338,9672,16340,22721=>9671,16342,22725=>9674,16344,9673,16337,16339,22734=>9958,16905,22737=>9957,16906,9956,16904,9955,16903,22744=>10224,10223,17732,17734,19204,17733,10395,10396,19203,22754=>10397,18057,10546,22759=>18639,18638,10820,22763=>5535,5605,22767=>6035,22772=>12120,22777=>8004,8005,19206,14431,8910,15113,15719,22787=>11330,22790=>11539,22794=>10937,22796=>11777,12121,12585,7077,22801=>19627,17735,22804=>10641,5536,5714,11352,22809=>5848,5849,22812=>6309,22815=>19213,7528,22818=>8912,22820=>8913,8911,22823=>5537,22825=>5606,5608,5607,11331,5609,5715,11353,22833=>5716,22839=>5850,5851,22844=>11409,22846=>6036,22848=>11540,22852=>6313,11778,22855=>6311,6312,6310,12586,22862=>6678,6677,6679,6676,22867=>12122,6314,6675,22871=>7078,7079,22874=>7080,22876=>13138,22880=>8006,13741,7529,22887=>8471,22889=>8915,8914,15114,22893=>9292,9675,22896=>17364,18489,18640,5538,5717,22902=>5718,11415,5853,5856,22907=>11413,11411,5855,11414,11416,11410,5858,5857,5854,5852,11412,22922=>6047,22925=>6044,11545,11548,11547,22930=>6038,6046,22934=>6043,11544,11542,6042,22941=>6037,6040,22944=>11543,11550,11546,6041,6045,6048,11541,11549,6039,22958=>6319,6327,22961=>11790,11783,6328,11794,11779,11786,22969=>6318,11780,6316,11787,11791,6315,22976=>11792,11785,22979=>11788,22981=>6330,6321,11795,11793,19222,6326,6324,11784,6323,11782,11781,6322,6320,6329,6325,6317,22998=>11789,23000=>6681,19227,6688,12136,6680,12128,12124,23008=>12140,12123,23011=>6683,12133,6686,6689,23016=>6684,12137,6687,23020=>7087,12143,12125,23025=>12127,12134,12138,12142,12139,12132,12135,23033=>19234,12129,6691,12131,12130,12141,6682,12126,6690,23043=>6685,23049=>7093,12594,23052=>7092,23055=>12592,23057=>7081,23059=>7086,23061=>12591,12588,12593,7082,12587,23067=>7085,7083,23070=>12595,7084,7088,23075=>7089,19218,7091,23081=>7090,23085=>12589,12590,23091=>12596,23093=>13145,7530,13755,13144,13163,23100=>7536,23102=>13161,23104=>7535,7531,13170,13154,13157,23110=>7539,13167,13159,7532,7540,23116=>13164,13162,23120=>13147,13168,13156,13151,23125=>13141,13169,13153,13140,23130=>7538,13158,13171,13155,13143,13148,13139,23138=>7537,19237,13152,13149,7533,13142,23145=>13166,7534,23148=>13150,13146,23152=>13165,23159=>8007,13748,23162=>13745,13762,13750,13763,23167=>8009,23171=>13759,13756,23176=>19609,23178=>13757,13760,13764,23182=>13160,13766,14451,19563,8010,13767,13743,13753,19242,13758,23194=>8008,8011,13765,13768,13747,13744,19362,23202=>13746,23205=>13751,13749,8012,23209=>13761,23211=>19236,13752,23214=>13754,13742,14439,14437,8480,8478,14447,14438,14448,14444,14436,14450,14435,14442,8477,8476,8475,14440,14445,8472,8479,23236=>14433,23238=>14443,14432,14441,8473,14446,14434,8474,14449,23251=>19244,23253=>15118,8920,8919,8921,15130,15120,15126,15115,15129,15128,15132,15125,8916,15124,8922,23269=>15117,8917,23272=>15131,8918,15119,15122,15127,15121,15116,23283=>15123,15721,9296,15724,15723,15726,15728,18962,9294,23293=>15722,23295=>15720,23297=>15729,15727,15725,23301=>15731,23303=>15730,9298,9293,23307=>9295,9297,23311=>15732,16351,23315=>16350,16349,23318=>16352,16345,23321=>16346,16354,16347,23325=>9676,16356,23328=>16355,16348,23331=>16910,9961,16908,16913,16912,16353,23338=>9960,23340=>16911,16907,16915,16914,9959,23346=>16909,23348=>9677,23352=>10225,23356=>17365,17736,17737,17738,10547,23363=>10548,23365=>18058,19691,18314,18313,23371=>18490,18491,18641,18752,23376=>5539,5540,23379=>5541,5610,5719,11417,5859,5860,23386=>6051,6052,6050,6049,23391=>6331,23394=>11796,6333,6332,11797,23401=>6692,23403=>7094,12597,23406=>13173,23408=>7541,8014,13172,8013,23413=>8923,19253,15133,9678,23418=>9962,16916,19255,10549,23423=>10724,10938,11354,19054,5720,11355,5863,23431=>5861,5862,5864,23435=>6054,6053,23438=>11551,6055,23442=>11552,11798,23445=>11799,23447=>6334,6336,6338,6335,6339,6337,19266,23458=>6696,6693,6695,6697,6694,12598,12144,23466=>19372,23468=>12600,12599,7100,23472=>7096,23475=>7097,7099,7101,7098,23480=>7103,7102,23487=>7546,13175,13174,7545,23492=>7544,7543,7547,7542,23498=>13774,13771,8016,13770,13775,23504=>8018,13773,8015,8017,13772,19260,14452,19701,14453,14454,23518=>8924,8932,15134,8926,8930,15135,8931,8927,8928,8925,8929,9301,13769,9302,9300,23534=>9299,16357,9679,16917,16918,19265,23541=>10398,10550,23544=>5542,23546=>5865,23551=>19207,23553=>6698,23555=>12601,7104,19268,23559=>7550,7549,7548,8019,8020,13776,8933,9680,5543,11332,5611,11356,19270,19272,11418,5866,23578=>6340,23583=>14455,23586=>5544,23588=>5612,11419,23592=>11553,23594=>11554,23596=>6056,23600=>13777,8021,23603=>14456,23607=>9963,5545,5565,5613,11357,5721,23614=>6060,6059,6057,6058,23620=>11800,6342,6343,11801,6341,19275,23627=>6702,12145,6701,6699,6700,7107,7105,23636=>12603,7106,12602,23640=>7095,13176,23644=>7552,7553,23648=>7551,23650=>8934,15136,9303,9304,23655=>15733,9964,17366,17367,23660=>10642,18753,11315,5614,23665=>5546,23667=>11359,11358,23673=>5867,11421,11422,11420,23678=>11423,23685=>19277,11562,23688=>11557,11559,11561,11558,6064,11555,23695=>11556,6061,6062,11560,11563,6063,11564,23708=>19612,11815,23711=>11809,11804,6345,11812,11810,11803,11816,11819,11814,11807,6347,11813,6348,11808,11811,11802,11806,11818,6349,23731=>6350,23733=>11805,11817,6344,6346,23738=>19287,23750=>12162,12155,12161,12154,12156,12150,12148,23758=>12163,12160,12146,23762=>6704,12158,12159,23766=>12157,12149,12147,6703,12153,12151,23774=>12152,12164,23784=>7112,19278,7111,23788=>12604,7108,12606,19279,7113,12607,23796=>7116,23798=>7114,12608,12165,12610,23803=>7110,23805=>7109,23807=>12605,12609,7115,23814=>7555,7554,23819=>13178,13182,13184,7556,13187,19283,7560,13189,23828=>7562,23830=>7558,7566,19284,7563,13180,7557,23837=>13179,13177,13191,13181,23842=>7559,13190,7564,13186,13185,7565,13183,7561,23854=>13192,23856=>13188,13792,13799,13788,8024,13784,13800,13778,13797,13795,13789,23868=>13798,13791,23871=>13783,13801,13781,13794,13779,23877=>13802,19285,8025,23881=>13796,14459,13782,8022,23886=>13786,23888=>8023,13785,13790,23893=>13787,23897=>13793,23902=>14463,23906=>14466,14458,23909=>14460,23911=>14465,14464,8481,23915=>13780,14462,23919=>8482,23921=>14457,14461,23927=>15143,23929=>15150,15141,23932=>15148,15139,15147,15151,15138,15142,15137,23940=>8935,23942=>15140,8936,15146,15145,15144,19280,23949=>15149,23954=>15737,15739,9306,15740,23959=>15735,23961=>15734,15744,23964=>15742,9305,15745,15736,15741,15743,15738,23975=>16361,16366,16360,16365,23980=>16358,16368,16364,16369,16363,16359,16367,23988=>16370,16362,19335,16919,9968,23994=>9966,23996=>9965,9967,24000=>17368,24002=>17634,17739,24006=>18059,18060,24009=>10551,24011=>18315,24013=>10643,24015=>18316,24017=>18493,10726,24020=>10725,18492,10779,19288,18642,24027=>10939,24029=>5547,5868,11424,11565,6206,7567,24037=>5548,5724,5723,5722,24043=>6065,24046=>7117,24048=>14467,5549,5550,5551,5615,24055=>6705,24057=>12166,24061=>8026,5552,11333,24066=>5725,5726,11360,24070=>5869,24073=>19308,11566,24076=>6066,24078=>11567,24081=>6356,24084=>11821,6354,6353,11820,6351,11822,6352,6355,24093=>6706,24095=>6708,12170,12167,12168,12169,12171,6707,24104=>12612,12611,24107=>7119,24109=>7118,19297,24115=>7570,13194,24118=>7569,7571,7568,24125=>8028,13193,24128=>8029,13804,24131=>8030,13803,8027,24138=>14470,14472,8483,14471,14469,14468,24147=>15154,8941,8939,24151=>8940,15152,15153,24155=>8937,15749,15747,24159=>9308,15748,9309,9307,8938,24166=>16373,16371,16372,15746,16921,9969,16920,17369,17370,16374,17740,24178=>5553,5727,5871,11425,5870,24184=>6357,8484,19300,5616,5728,6709,8031,10941,11361,24194=>11362,19251,11426,24199=>6068,11571,11569,6069,11568,11570,11572,24207=>6067,24213=>6361,6362,6359,24218=>6358,12175,6360,24224=>6710,24226=>12174,12176,12173,12177,6711,7122,12613,24234=>12615,7120,12616,7121,12614,24240=>12172,13195,13198,13199,13196,7575,7574,7572,7573,13197,24254=>7576,24257=>8033,8034,24260=>8035,14473,14475,14477,8486,8485,8032,14476,14474,24270=>15158,24272=>19305,15156,15162,8942,15163,15160,8943,15157,15155,15161,9311,15751,15159,9313,15752,9312,9315,15753,9310,9314,24293=>16379,16377,16376,16378,16375,24300=>10400,24302=>18061,18062,24305=>18317,18494,10854,10942,24310=>6363,6070,24313=>19311,6712,19312,19314,24318=>5554,5617,24321=>5729,11427,24324=>6071,11573,24327=>12178,6713,24330=>8944,5555,24333=>19317,24335=>5872,24338=>8487,5556,5618,5619,24343=>5731,5730,24346=>11428,5873,24349=>11574,24351=>6072,24354=>11824,11825,11826,24358=>6364,6365,11823,6366,24365=>6714,12179,24368=>12618,7123,24371=>12617,24373=>7577,13200,7578,13201,24378=>19323,24380=>8036,24384=>14478,24387=>15165,15164,24390=>8945,24392=>9316,15754,9681,16380,9970,24398=>10727,18644,10943,24404=>11827,24406=>12180,7579,13805,8488,24413=>10226,24417=>10944,6074,19328,6073,6715,24423=>12619,24425=>7581,7853,7582,7580,8037,24431=>15166,8946,9317,19331,11316,11429,24438=>11576,6075,11575,6076,24443=>19074,6370,11830,11829,6369,6367,6368,11828,24453=>6717,12181,6720,6716,6722,6718,6719,6721,24464=>7126,7125,7124,24470=>13203,7583,7586,7584,24475=>13202,7589,24478=>7585,13204,7588,7587,24484=>19030,13807,13806,19334,8040,8038,8039,13808,8489,14480,8490,14479,24498=>15755,24501=>9319,15167,9318,24505=>8947,24507=>16923,16381,9971,16922,17741,18063,18064,24515=>5620,24517=>5732,24521=>11363,24524=>6078,6080,24527=>11432,11579,11578,11577,24532=>11431,11430,5875,6079,6077,5874,24541=>6371,11831,19426,6372,11584,24547=>11586,11585,11832,24552=>11581,24554=>6084,6082,24557=>11580,11582,11588,24561=>6081,24563=>11583,11592,6374,24567=>11589,6083,24570=>11587,11590,24573=>6373,24575=>6375,11591,24585=>11852,11839,11837,11851,11846,6727,6376,11847,11850,6723,11849,6377,6382,6380,11840,24601=>11835,11842,6387,11853,6724,11843,24608=>6725,6383,11845,19382,12196,6726,11834,6384,6728,6385,6381,6386,11844,11833,11848,6378,24625=>19344,11836,11841,11838,6379,24631=>12182,24633=>12183,24640=>12193,12623,12194,6734,12197,12187,6733,12189,24649=>12190,19102,24652=>12192,6729,24656=>7130,24658=>18960,12188,12184,7131,24664=>12198,7127,12621,12191,24669=>12620,12186,12195,24674=>6732,7128,6738,7129,12199,12622,6731,7133,6737,6736,6735,7132,12200,7134,6730,24690=>12185,24703=>7590,12626,12628,24707=>12630,7135,7141,13207,12634,12625,7592,13205,24716=>7140,7138,12636,24720=>13206,24722=>12627,24724=>7139,12631,7142,12633,24730=>7137,12632,12635,12629,19354,7136,7593,24738=>12624,7591,19355,24744=>7594,24752=>13209,13218,8043,19356,7596,7601,8044,13220,7608,13810,13210,7600,7603,7598,13208,13222,13225,13825,24771=>13223,13814,7599,7606,7610,13217,13809,13221,7595,13811,13224,13813,13213,24785=>8041,24787=>13211,13212,7605,24792=>7604,13215,7609,13219,7602,13216,19504,7607,8045,8042,13812,24804=>13214,24806=>7597,24816=>8050,8054,13816,8495,8052,13820,8056,14481,13822,8497,8048,8051,13823,24830=>13824,13830,8058,8498,24835=>13826,13831,13819,8508,24840=>8499,8057,13817,13832,24845=>8507,8055,8492,13829,24850=>8059,13821,13815,8049,13818,24856=>13827,24858=>8491,8496,8046,13828,24863=>8494,24867=>8047,24871=>8506,15169,14492,24875=>14484,15168,24878=>14488,14490,24882=>14487,24884=>8505,24886=>14486,8509,24891=>15184,24894=>8504,8949,14493,15170,19365,24900=>8502,14485,14489,8948,8493,14482,14483,8950,8501,8503,8500,14491,24914=>15174,15175,15180,9324,15187,24920=>8956,24922=>8955,15182,19383,9323,15171,8954,19261,15186,8952,8953,19363,15183,15772,9321,8053,24938=>15185,9328,15177,24942=>9322,24944=>9327,15172,15176,15173,15179,8957,9320,8951,24953=>15758,15181,24956=>9326,24958=>9329,24960=>15178,19368,9325,15757,24967=>19371,24969=>15762,9685,15756,16393,15771,9333,24976=>9331,9683,15768,15764,9337,24982=>16384,24986=>9335,15763,24989=>16382,24991=>15767,24993=>15770,15761,24996=>9336,24999=>9330,16383,9684,15769,9332,9334,15766,9338,15765,15760,15759,9682,15773,16386,16925,9687,25016=>16392,25018=>16390,25020=>16926,25022=>9688,16391,25025=>16388,9973,16924,25029=>16385,16387,9974,9690,9972,9689,9976,16389,9686,25040=>19378,25043=>19375,25046=>17379,25048=>17371,25054=>16932,17372,16928,25059=>10227,16930,16929,9975,16927,16931,17380,17376,17378,25069=>17373,17374,25072=>17377,17375,10401,25077=>10404,10403,10402,10552,18065,10553,17742,10644,18318,10645,10728,10780,18645,25091=>18646,18647,25095=>18928,5621,11364,5733,25100=>5877,5878,5876,25104=>5879,6086,6085,25108=>11854,6389,6388,25113=>12637,7611,7612,25119=>8060,14494,8510,8511,14496,14498,14497,25127=>15189,25129=>15188,8958,15190,25133=>15774,9339,25136=>9691,25138=>9977,10228,9978,25142=>5622,25146=>11593,25149=>11855,6391,6390,6392,6739,12201,12202,25158=>12638,7143,7613,8061,13833,5623,25165=>5557,5624,25168=>11365,5737,5736,5734,5735,25176=>5882,11439,11441,5881,11433,25182=>11434,25184=>11440,11436,11438,5880,11435,11442,11437,25197=>6093,6102,6100,11603,11600,11608,6098,11609,25206=>6091,11606,25209=>6097,11602,11601,6095,11607,6096,6393,6090,11604,25219=>11594,6087,25222=>6106,11599,11605,6092,6094,25228=>11595,25230=>11596,11597,25233=>6105,6099,6104,11598,6103,6089,6088,6101,25256=>6407,11867,11860,6402,6421,11856,11863,11865,11868,6416,25267=>11864,11857,6414,11861,25272=>11869,6399,25275=>11866,6409,6408,11859,6397,25282=>6398,25284=>6396,19387,6420,6412,6406,6394,11862,6405,6395,6413,6422,12203,6410,11858,6400,6403,6404,19389,6418,6419,6417,6411,6415,6401,6740,25311=>19014,25323=>12209,6752,6744,6746,6751,12221,6749,12639,7144,6754,12206,12214,6750,12213,12210,12218,12220,6743,6747,6753,7146,12215,6745,6756,12208,25351=>6748,7145,6742,25355=>12205,12212,12204,12207,12211,12640,6755,25363=>12216,12217,12219,6741,25384=>7160,12652,7158,7159,12642,12658,25391=>7149,25394=>13226,12660,12654,25398=>12645,25400=>12663,12648,7155,13249,12651,7157,7148,25408=>12665,12653,7151,12646,12643,12644,7152,12659,12666,7154,12650,12649,7162,7161,7147,7153,7156,12662,25428=>12656,7150,12641,12664,12655,12657,12661,25445=>13227,25447=>7621,7641,7640,25451=>7629,19391,13245,13241,13238,13256,7624,7616,25461=>13243,8077,7620,13251,25466=>7642,7639,13247,13230,25472=>7638,13253,13229,7627,7631,13252,25479=>13239,7632,7626,13228,19385,8063,13255,13237,7637,13240,13254,7636,25492=>13834,25494=>7617,13235,7622,7633,25499=>7628,13244,13234,13232,13250,7614,7634,7618,8062,13248,7619,25511=>7615,7630,7625,7623,13236,7635,13233,13246,13242,13836,13835,25533=>13231,13852,25536=>8065,25538=>13858,13841,13855,14499,8068,13859,13862,8067,13844,13861,13860,8069,13837,8064,8072,25554=>8070,13857,25557=>13847,8074,13864,13856,13865,8082,8080,13854,13853,25567=>13851,13845,8073,25571=>8071,12647,13838,25575=>14529,13839,8066,8079,14501,25581=>8075,8076,13840,13863,14500,13848,13843,8078,13849,13846,25592=>19395,8083,25606=>8526,25609=>14504,14523,14528,14516,8522,14533,8519,14502,25618=>14503,8512,8521,14510,8524,8525,14511,25626=>14524,14530,8520,25630=>8514,14509,14505,14532,14514,14515,14506,14526,14517,14527,14519,25642=>8515,15191,8518,8516,14531,14522,14518,25651=>14507,8968,14521,8523,14513,19394,14512,19408,25661=>8517,8513,15212,14525,14520,25667=>14508,25675=>15207,25677=>15192,15203,25680=>15210,8966,8081,15208,8961,25688=>8960,15215,25691=>15193,15206,15194,15205,8964,15209,13850,25701=>15216,15201,8967,15788,9340,25707=>15214,15213,8969,15775,9341,15776,25714=>15197,15198,15195,15200,15196,15217,8963,9342,8965,8970,25725=>15199,25727=>15211,25730=>15204,25733=>15779,25735=>8959,9345,16400,15784,15783,15785,25743=>15782,9346,25746=>9352,9349,25749=>9350,15777,15780,15790,9358,9356,25756=>15781,13842,9343,15787,15778,25762=>9359,15786,8962,9348,15202,25769=>9351,25771=>9355,9357,9354,9353,19739,9347,15789,9344,9360,25787=>9695,9696,16399,9705,9702,25793=>9693,9700,16401,9698,9692,25799=>9699,25801=>16398,9980,9694,25805=>9701,9979,16397,16396,25810=>9703,25812=>9704,25814=>16395,16394,9981,16404,9697,16402,25824=>9982,19404,9987,16935,16937,19405,9984,25832=>16938,16934,25835=>16936,9985,9988,25839=>16933,9983,9986,10230,16403,10229,25847=>10235,17384,25850=>10233,10234,17387,17383,10231,17381,10405,17385,25859=>17386,17382,25862=>10232,17743,25865=>17746,25868=>17747,17745,17748,10406,17744,25875=>18069,10555,18068,18067,18066,10554,10556,25883=>18319,10647,10646,19384,25888=>18496,18495,18498,10781,10729,18649,18497,25897=>18648,10783,10782,10821,18754,18824,5625,25906=>13866,16405,10945,25910=>5883,11610,6109,6107,25915=>6108,25917=>11870,6423,6757,25921=>12222,25923=>12223,25925=>6758,12668,25928=>7163,7164,12667,25933=>19410,25935=>7649,25937=>7645,25939=>13257,7652,7651,7644,7647,7650,7646,25948=>13870,7643,8084,19416,25954=>8086,8087,13869,13872,8085,13867,13871,25962=>13868,25964=>8527,19415,25967=>14534,25970=>8971,15218,9706,9361,15791,9362,9363,15793,15792,15794,16407,25983=>16406,16940,16939,9989,9990,17749,19414,25991=>5626,19254,25996=>13873,26000=>8089,8088,14535,26004=>17388,10648,18650,5627,26009=>7165,26011=>7654,7653,13874,13875,8528,15219,8972,16408,26020=>5628,5738,26023=>6424,11871,26026=>12224,6759,7655,26030=>13876,8090,8529,26034=>15795,15796,26037=>19418,16941,10236,18825,5629,26043=>11872,6425,6760,26047=>12225,26049=>7166,12672,12670,12671,7167,12669,26059=>7657,7658,13258,7659,7656,13877,19421,13878,14536,26070=>8974,8973,26074=>16942,17389,26077=>17751,17750,18070,10946,11334,6761,19425,26085=>5630,5739,26088=>5885,5884,26092=>5886,5887,11444,11443,11611,6110,11614,11613,11612,11615,26106=>6426,11878,11874,11883,26112=>6433,26114=>6431,11879,11875,11882,6430,6437,11877,11873,6436,11880,6429,11881,6432,6434,11885,11884,11876,6428,6427,6435,26136=>19428,26140=>12230,12236,26143=>6767,6764,12227,12232,19660,6770,6762,12231,6765,6768,26155=>12234,26157=>6763,12239,6766,26161=>6769,12228,12233,12237,12229,12226,26169=>12238,12235,26177=>7175,7168,7171,19431,7174,26183=>12675,26185=>7169,12673,19434,7173,26191=>7170,26193=>12676,7172,26199=>19141,26201=>13262,7661,13261,13263,7660,7665,12674,26209=>13260,13264,26212=>7662,13259,7664,19436,7663,26218=>13885,26220=>13880,26222=>8091,8095,8092,13883,13886,19438,8093,26230=>8094,8099,14545,13884,8097,13881,13879,26238=>8098,26240=>13882,26244=>8535,19345,14537,8532,8533,8531,14542,14541,14538,8537,26256=>14540,8096,26260=>14544,14539,8534,8530,8536,14543,26269=>8977,26271=>15222,15221,15220,8975,26276=>19172,26280=>8976,15799,15802,9365,26285=>19173,9364,15803,15798,9367,15800,19167,9366,15797,26295=>15801,9712,9709,16417,16416,26301=>16415,16410,26304=>16411,26308=>9710,26310=>9707,9711,16409,9708,16412,16413,16418,19170,26319=>16414,26322=>16943,26326=>9992,26328=>17392,9991,17390,17391,10237,10408,17752,26336=>10407,26339=>18072,18073,26342=>10557,26344=>18071,10649,26347=>18651,10784,18755,18756,26352=>5631,26354=>5888,5889,6111,26358=>11886,6771,7176,7666,26364=>7491,26366=>8100,8101,7956,13887,19448,8538,15224,15223,26376=>5632,5890,11887,6439,26381=>6438,26383=>12240,12241,26386=>12677,12678,7177,7178,26391=>7179,13265,26395=>7668,26397=>8103,26399=>8102,14546,14816,15225,16419,26406=>10238,10558,5633,26410=>5742,5743,5741,5744,5740,26417=>5893,26419=>11452,5892,5894,26424=>11447,11446,11449,11448,11451,5891,11445,11450,26436=>19013,11616,6121,11617,11621,6120,26443=>11625,11620,11623,6113,6114,6115,6116,26451=>6123,26453=>11619,6118,6124,26457=>11618,11624,26460=>6117,11622,6119,6112,6122,26466=>19456,26471=>19455,26474=>6460,26476=>11889,6440,26479=>6450,6451,6443,6461,6445,11897,6456,11892,6446,11907,11908,11900,11893,6459,11905,6454,6452,26497=>11906,26499=>11904,11896,11888,11895,6447,26505=>6453,26507=>6441,11899,11898,11890,26512=>6455,11902,11891,6458,11909,6442,26519=>6449,11894,11903,6457,26524=>6444,6448,26527=>11901,26540=>19481,26542=>12273,6779,6792,19498,12268,12258,6785,12256,6778,12251,6788,12264,12245,12247,26560=>12250,12242,12263,12279,6783,12252,12270,26568=>12244,12277,12278,12281,12272,12257,12265,6789,6776,6784,6796,6773,6775,26583=>19459,12249,6793,6786,12275,12246,6795,6790,12255,26594=>6794,12262,12254,6787,12274,12266,26601=>6781,12280,12253,6777,12271,12261,6782,12267,6774,12243,6791,7194,6780,12260,12259,12248,26618=>12276,26620=>12269,26623=>6772,26625=>19464,26637=>19640,26642=>12698,7201,12699,26646=>12687,7190,7202,26650=>12680,19100,12689,12697,26655=>12679,12706,7180,19461,26661=>12705,12700,26664=>12701,7188,7199,12691,26669=>12692,12702,12693,26673=>12688,12682,12683,12696,12690,26679=>19539,7181,7185,12704,12684,7197,7193,19315,26688=>7196,7203,7186,7198,12695,7200,7183,26696=>7182,12681,26699=>12685,7191,12703,12694,12686,7195,7192,26707=>7184,7187,26717=>19467,26731=>13286,26733=>13270,13271,13275,26737=>13290,13287,26740=>13280,13279,7675,13283,13298,13266,26747=>13299,13285,13303,13291,7674,13289,7669,7690,7680,26757=>7684,7683,13267,26761=>13296,13302,13294,13301,26767=>13282,13268,13300,13284,7672,7685,26774=>13293,7678,26779=>13292,13269,7686,26783=>7688,13295,7689,7671,13276,13297,26790=>19214,7677,7687,13278,13288,13273,13277,7682,13272,7670,7679,7676,13281,7189,13910,7673,26813=>19635,26819=>19473,7681,26822=>13913,13935,13924,8123,19751,8118,13907,8119,13923,26832=>13916,13929,8115,13889,13931,8105,13897,8108,8107,26842=>8124,26844=>13891,13925,13926,8110,8106,13905,26851=>8117,13900,26854=>13927,8113,13919,13932,13894,13899,13893,26862=>8112,13912,14568,13895,8116,13904,13928,8111,13901,13898,13915,8114,8104,8126,13918,13917,26880=>19476,19475,19769,19667,13890,8109,13930,13906,13908,26890=>13921,13920,13888,8120,8122,13896,13903,13911,8121,13902,13914,13933,26903=>13922,26917=>13934,26922=>13892,26927=>14588,8546,26930=>14586,14565,14570,14563,19485,14582,14549,14556,26939=>14580,14590,14566,19072,14553,14572,14577,14557,26948=>14574,14554,26952=>14561,14562,8548,14581,14579,26958=>14550,14584,26961=>14585,14587,8552,8544,26966=>13274,14558,14576,14559,8541,8557,14583,8555,8551,14548,8543,19482,14551,8556,26981=>14567,14547,26984=>8549,14571,14555,8550,14564,8540,8125,14573,13909,14552,26995=>19472,14578,8545,14575,8542,14569,8553,14560,14589,27010=>8547,14701,27014=>8554,27021=>15239,15237,27024=>15259,15235,27027=>15253,8539,8980,15231,15258,19486,15236,15250,8985,8978,27038=>15256,27040=>15229,15255,27043=>8996,15246,15262,8994,15238,8979,15240,15254,8988,15233,8992,8982,15242,15232,15226,27059=>15252,8989,15261,15227,8986,27065=>15248,27067=>8987,15234,15245,15241,15243,27073=>8981,15260,8995,15244,27078=>15263,27081=>15228,15249,8984,8993,8991,15230,15251,8990,27091=>8983,15247,27097=>15257,27105=>19469,15815,27108=>15811,15807,15827,15824,9370,27115=>15831,15814,9381,15821,27121=>15810,15820,9378,15840,27126=>15837,15823,15808,19491,19452,15828,15830,9374,15818,15813,15804,9371,9379,27140=>15833,9380,15805,15839,15826,15832,9377,19470,27149=>15829,27151=>15836,27153=>9382,27155=>9376,15822,15809,15841,15806,15834,9373,27163=>15816,27165=>15817,9372,9369,15812,9375,27171=>9368,27173=>15835,15838,15819,16432,27180=>19684,27186=>16424,27188=>16420,9725,27192=>9714,9719,9715,16434,16445,9713,16426,16435,15825,16436,27204=>9720,19494,16451,9724,9727,16422,27211=>9723,27213=>16449,16450,16440,16439,16431,27220=>16441,16448,16447,27224=>9718,9716,16433,16430,27229=>16427,16446,9726,16444,9722,9721,27236=>16438,27238=>16421,16423,16425,16443,16437,9717,27245=>16428,27247=>16442,27254=>16429,27262=>10000,16961,9993,16946,27267=>16957,9995,16964,27271=>16953,27273=>16948,19298,27276=>16965,16944,16955,27280=>10002,16960,16966,16954,9994,16956,16945,10001,27290=>16963,16950,9997,19496,16952,16949,10003,16951,9996,9999,16959,16947,16962,27304=>16958,27308=>10240,17403,10245,10246,27315=>10239,17402,27318=>17399,17400,10243,17394,17398,10242,27325=>17395,27330=>10244,10241,27333=>17393,17397,17401,19499,27339=>17758,17755,17764,27343=>17763,17761,17756,27347=>10412,27353=>17757,10411,9998,17760,10410,17765,17759,17754,17396,27365=>10409,27367=>17753,18077,27370=>18076,17762,10559,27374=>18080,18081,18075,18079,27379=>18074,27384=>18323,18078,10652,10650,18321,27392=>18324,27394=>18320,18322,10651,27400=>18500,18501,10730,18499,27407=>18654,10785,18652,18653,18757,27414=>10855,18828,18826,18827,18829,27421=>19502,18929,27424=>5634,5895,27427=>6462,27429=>11910,27432=>12282,27436=>12707,12709,27439=>12708,27441=>12710,7691,13305,12711,19505,13304,13306,13307,13936,8128,13937,13939,8129,8127,13938,27457=>14596,14594,14593,27461=>14592,14591,8558,14595,8997,15264,15266,8998,15265,9384,27472=>9383,15842,27476=>16453,16452,16454,27481=>9728,27483=>16967,10004,27486=>17404,10247,17766,10731,5635,5745,5896,6125,6463,6464,27498=>6797,27501=>12712,27506=>8559,27508=>19506,27510=>15968,9729,10248,5636,27515=>5897,27518=>11912,6465,11911,27522=>12283,6798,12284,27526=>6799,27528=>12714,7205,7204,27532=>13312,13310,13311,13309,27537=>13308,27540=>13940,13943,8131,13941,8130,13942,27547=>14597,27550=>15267,15268,15269,27554=>15845,15844,9385,15843,15846,16455,27562=>16456,16457,27565=>16968,10005,10249,17767,27570=>10653,11335,27573=>6800,12285,7206,27578=>7692,27580=>8132,13944,27583=>8561,8560,27587=>15270,15271,9386,9387,16459,16458,17405,18655,5637,11336,5746,27599=>6126,11626,27602=>6801,8562,5638,27606=>12286,6802,12287,27610=>10006,5639,19517,27614=>11913,27616=>12288,19515,12719,12718,12716,27622=>12715,12720,12717,27627=>7693,7694,27631=>8133,13945,27634=>13946,13947,27639=>14602,14603,14601,27643=>14599,14600,8563,15272,15849,15848,15847,15850,16461,16460,9730,16462,27656=>10007,16969,27659=>17406,17768,18502,27663=>5640,5748,5747,27667=>6466,11337,11366,5898,27672=>11453,11627,11628,6467,27677=>11914,27679=>6803,12289,12290,27683=>7207,7211,12721,7210,7208,7209,27690=>13313,7695,8136,27694=>8134,8135,13948,27699=>8999,5641,27702=>11367,19518,5749,27707=>11370,27710=>5752,11369,5751,5750,6127,11368,27718=>11454,27721=>19127,11458,11460,11461,5908,5909,11457,5904,27730=>11455,27732=>11459,5905,27735=>5900,27737=>5901,19522,5907,11456,5899,6128,5902,5903,5906,27749=>11645,11643,11630,6140,11637,6135,11631,27757=>11639,19188,11636,6138,11635,6145,11644,6147,27766=>6149,27768=>11629,19524,6136,11646,27773=>6143,6146,27776=>11937,6130,6153,6144,11632,6133,6148,11640,6131,6132,11935,11633,6139,6150,11647,11634,6137,27794=>6142,11915,6151,11641,6141,27800=>6152,6129,11638,6134,11642,11936,27819=>6479,6495,11922,6486,27824=>11943,6471,27827=>6474,11934,27830=>11920,11924,6482,6484,11927,6491,6477,6475,6476,6490,11939,6485,11926,11928,6483,6488,11929,11942,27849=>6804,6494,19098,6472,11941,27855=>11945,11925,11947,11932,6481,11921,6480,6498,6487,27865=>11919,12299,6493,6497,11933,11938,27872=>6499,6492,6478,6468,27877=>6473,27879=>11923,6469,11946,27883=>11917,11916,11930,11918,6496,7212,6489,11931,6470,27893=>6819,27897=>11944,27904=>12306,12309,27907=>12312,12301,27911=>12315,12318,12320,12298,6805,6810,12726,6826,12313,12321,12305,12297,27926=>12753,6813,12310,12302,12304,6818,27933=>12307,6812,12294,12316,27938=>12319,27941=>6809,27943=>6821,12291,6823,6807,6827,12317,12293,6824,12747,11940,6811,6806,12300,12292,6825,6817,12311,6822,6820,12303,6814,12295,6815,6816,12296,12314,6808,12308,27992=>12729,7220,7225,19142,19544,27998=>12738,12744,12740,12727,12730,12723,12724,7232,7217,12739,12748,7227,7213,28012=>7222,12731,7224,12732,12742,19231,28020=>7226,12757,12725,7219,7218,7230,12722,12755,12743,12756,12750,12736,12751,28034=>12745,12754,12752,7231,12737,7216,7215,7223,7229,12749,7228,12734,7696,28048=>12758,12733,12728,7221,7233,7214,19543,12741,12746,28074=>7730,13315,13319,28078=>7711,7709,28082=>7700,13317,13316,7720,28087=>13322,7714,28090=>13340,13352,7697,13337,13330,7732,13314,28098=>13342,28100=>7729,7717,7728,7707,13326,13344,13336,7708,7702,13350,28111=>13343,13345,7710,7718,13347,13324,13341,13329,13349,7723,7699,7721,13334,13332,13333,7712,13328,13327,7701,13321,13351,7703,13331,7733,28136=>7727,13320,7724,7722,7731,13338,7726,12735,13339,7725,13346,7698,13335,7716,13323,7715,28153=>7713,7705,7704,13949,13348,28160=>13325,28163=>13970,28165=>7706,28185=>8165,7719,8147,13964,8161,28191=>13952,8144,8140,13982,8146,8150,8145,8154,13986,13977,28202=>19776,13959,8159,8153,13971,8137,13983,13976,8141,13965,8156,13994,13995,28216=>8138,13981,8158,13969,13955,13956,8162,13960,13967,13961,28227=>8160,8168,13957,13950,13951,28233=>13953,8143,13966,28237=>8157,8166,19562,19462,13968,13992,13984,8139,13990,8151,28248=>8149,19216,13996,8148,13974,13962,13972,8171,13978,13975,13958,8167,13988,13985,13993,8142,13973,8170,28267=>13980,28270=>8152,8155,28273=>13979,8169,13963,13318,28279=>13989,13987,13991,28284=>19545,28296=>13954,8164,28301=>14634,14633,14607,8569,28306=>14632,14610,14611,28310=>8579,14641,8574,14631,28315=>14604,8580,8570,14619,14609,14612,14636,8564,14643,14635,8573,14624,8584,28330=>8583,8577,28334=>14642,8565,14622,14613,14626,14638,8585,19508,8567,14621,28345=>14614,8576,28348=>8575,14617,14627,14637,14608,14618,8568,14628,8581,8572,14615,8571,14606,14620,14640,8163,9027,14623,15273,14625,14639,8578,14616,8566,8582,9405,14605,28376=>14630,19091,28379=>19033,14629,28395=>15301,9024,15290,15295,9013,28401=>15275,9026,28404=>9004,15274,15307,9028,15278,15294,19569,15280,15310,15306,9002,9012,15876,9025,9010,15276,19546,15305,9014,15302,15315,15282,15291,28429=>15313,15303,9009,28434=>15289,9003,9001,9019,19411,28440=>15287,15284,15285,28444=>15309,28446=>15314,15312,9007,15316,9011,9018,28453=>15277,15852,15286,28457=>9005,9023,9020,9008,15296,15281,9021,15298,9015,9017,9000,28469=>15300,15292,15279,9016,15308,15311,15288,15299,19641,9006,9388,15297,15851,28483=>15304,19574,28494=>15283,15861,15871,9391,15870,15882,9393,15868,28503=>15872,9404,28506=>15863,9396,19575,15875,16470,9408,9407,15877,15860,15887,9402,28518=>9392,15880,28521=>15884,15889,15878,15866,9395,9398,9406,9401,28530=>15869,15293,19577,28534=>15865,15888,9397,28538=>9400,15890,9389,15879,15853,15885,10016,28546=>15867,28548=>9390,15862,9394,15854,9022,15858,19399,15883,15859,15857,9399,28560=>15881,28562=>15856,15874,15873,15886,15864,9403,28573=>19567,16473,19580,9743,9733,16485,16465,9735,16477,9742,9737,16475,16971,16481,16487,16480,16463,16478,16489,16491,9732,16490,9738,9744,28598=>9741,28600=>16484,9740,16479,28604=>16467,16472,28607=>16483,9739,9736,9731,9734,16471,28614=>15855,16466,16469,16486,16474,16464,16970,16488,16468,16482,28627=>19582,16973,10020,28632=>10008,28635=>10012,16975,16981,16979,10010,10011,10018,16982,16974,10013,28646=>16978,16977,16983,10019,28651=>10014,10017,16976,10021,10015,10022,10009,16980,28660=>16972,28663=>17419,19565,28666=>10254,17416,17418,28670=>10252,17414,17415,17410,28676=>16476,17411,10253,17407,28681=>10250,17420,10251,17408,17409,17413,10256,28689=>10255,28692=>17412,10418,17772,17778,10419,17769,10416,10413,17780,10417,28703=>10414,17771,17774,17775,17776,17779,28710=>17417,17770,10415,17777,17781,17773,28719=>18084,10561,18087,10562,18095,18086,18083,28727=>18085,18089,18092,18091,18094,18082,28734=>10560,18090,18093,18096,18088,18325,18326,18330,18331,28744=>18328,18329,18327,19594,10654,28753=>10732,18506,28757=>18503,18504,18505,10733,28762=>18657,18656,28765=>18760,10822,18758,18761,18759,18830,10856,10870,18905,18884,28776=>18904,18950,18951,5642,28784=>5910,11462,28788=>11648,28790=>6154,28792=>6157,19139,11649,28796=>6155,6156,19595,28801=>19597,11956,11958,11953,11950,11952,28810=>6503,19189,28814=>6501,28817=>11954,6502,11951,11948,6500,11955,28824=>11949,6504,11957,28831=>12323,28833=>12327,28836=>6836,28839=>19596,28841=>12330,28843=>6828,6831,6833,6835,6832,12326,12325,28851=>6830,12328,12329,28855=>12322,6834,28858=>6829,28861=>19623,12324,28869=>12772,12773,12774,7238,28874=>7234,12763,19598,12771,12776,7239,28881=>12761,12767,12760,12770,19599,19600,12766,7235,7237,12775,28892=>12759,12762,12768,19601,12769,12777,12765,28900=>7236,28911=>7738,13359,28915=>13361,13357,28918=>13369,13355,13368,7734,13353,14000,13363,7737,28927=>13364,13367,28930=>13371,28932=>13360,28934=>13365,28937=>7735,7736,13370,13358,13354,13372,28944=>13362,28947=>13366,28951=>13356,28953=>8172,8173,14010,8179,28958=>13998,14007,13997,8176,14005,14003,28965=>14004,8174,28968=>14008,28971=>19607,19617,28974=>14001,13999,8175,14002,14006,28982=>8177,28986=>14009,28993=>14649,14656,14658,14664,19608,8598,14644,29001=>8590,19610,14659,8595,14665,8586,19614,14662,29010=>14646,14663,14645,29014=>8600,29016=>14657,8587,14666,29020=>8592,14650,8597,14661,14648,14655,14651,14647,8589,8596,8594,8591,8599,8588,14654,29036=>8593,29038=>8178,29040=>14660,29042=>14652,29048=>14653,29051=>15324,29053=>9031,29056=>15320,15326,15322,29060=>9033,15321,15325,15317,29065=>15319,9032,29071=>15323,15318,29074=>9034,29076=>9029,29078=>19605,15327,29081=>9030,15896,15893,15905,15899,15901,9409,15895,15903,29092=>15902,15900,29095=>15906,9412,15897,15904,29100=>9410,29103=>15892,15894,9411,15891,15907,19604,15898,29112=>16495,9751,19621,29116=>16506,16504,9745,16494,16497,16498,16493,9755,9756,16492,16507,16502,9749,9746,16501,16499,29134=>9752,16503,9747,29138=>9748,29140=>16500,9750,16496,29144=>16505,9753,16508,16509,9754,19106,29151=>10024,10031,16984,16990,29156=>16988,10027,10026,10023,16986,29164=>10029,10028,10025,29168=>16989,16985,16987,29172=>10030,29176=>10260,17423,29179=>10257,10258,17425,10259,17422,29185=>17421,17785,17424,29189=>17786,10420,17784,29194=>17783,29196=>17782,10421,19624,29200=>10563,29203=>18097,18098,19626,29209=>18334,18333,10655,29213=>18332,18507,18508,29218=>18658,18762,19629,29222=>18831,18930,10890,18940,5643,29228=>6505,6506,19632,29232=>6837,29237=>10032,5644,29240=>6507,7240,8601,5645,29245=>7739,9035,11338,19633,12331,12778,29252=>15328,29254=>10033,5646,6508,12332,12333,14011,8180,29263=>14667,29266=>8602,15329,29269=>19636,9413,19637,10422,5647,14012,5648,29277=>5912,11463,5911,6160,6159,6158,11650,29287=>6509,29289=>6510,11959,29292=>12334,29294=>12337,6839,12335,29298=>6838,12336,6840,29302=>12781,12780,12779,7241,29307=>13374,13375,7740,13373,13376,8182,7741,19642,29316=>8181,14016,14015,29320=>14013,14014,29323=>14017,14669,14668,14672,29328=>14671,14670,9036,15332,29333=>15331,9037,15330,15908,29338=>15909,9414,29341=>16510,16511,29345=>17791,10423,17790,17789,17787,17788,10656,18099,18509,18832,29356=>5649,29358=>11371,5753,11372,29364=>11464,11465,29370=>11656,29373=>11652,29375=>11651,6511,11655,6162,11653,6161,11657,11654,29385=>11963,12338,11961,11968,29390=>6512,29392=>6515,11969,11965,29396=>11966,29398=>11960,6514,11962,6513,11967,29404=>11964,29407=>12342,6842,6843,29411=>12345,12339,29414=>12344,29416=>12340,6841,12343,12341,29427=>12787,12784,29430=>12786,7246,7245,7243,12783,12788,7242,7244,12785,13384,12782,12789,29447=>13379,13383,29450=>13382,14019,14030,29455=>13385,29457=>13380,14018,7745,29462=>7744,13378,13381,7746,29467=>7743,7742,13377,13386,29474=>14021,14028,29477=>8184,14027,14024,19649,8186,19643,19644,29485=>14026,19650,29488=>14020,14022,14025,14023,8185,14029,8183,8603,29498=>14676,14675,14673,29502=>8606,8605,14677,29506=>14674,15333,9038,8604,29513=>14679,14678,29516=>15336,15334,9415,29520=>9039,15335,15911,29527=>9416,15910,15919,15918,15916,29533=>15915,15912,15913,15914,15917,15920,29541=>16516,16513,16514,9757,16512,16518,16517,16515,29550=>16992,16993,10034,29554=>10035,16991,29557=>10262,17426,10261,10424,29562=>10425,10564,18101,18100,18335,18510,10734,18660,18659,18661,5754,12346,7247,7747,13387,5755,11373,5650,29582=>11466,29586=>11662,11660,11661,11658,6163,11659,29596=>19124,11977,29599=>6518,11975,11971,11974,29604=>11970,6520,11973,19121,6517,6516,19652,6519,11976,11972,29618=>6847,6850,12354,12353,12352,6844,12361,12351,29627=>6846,12794,29630=>12358,12356,6849,29634=>12348,12359,29637=>12350,12360,12357,12349,19655,6845,12362,12347,6848,19271,19651,29650=>12799,12790,12801,19101,12793,12804,12805,12791,12803,12800,12798,12802,7253,29664=>7251,29667=>12796,19677,12792,29671=>12795,12806,12797,7252,12355,29677=>7248,7250,19003,29684=>13401,13390,13388,19665,13389,29690=>13396,29692=>13397,13393,7752,13398,13395,13392,29699=>7750,13391,7748,7751,13394,13402,7249,7749,13400,13399,7753,29717=>19666,14035,19159,29722=>14036,8196,29725=>14042,29728=>14044,14037,8190,14041,14040,8191,8197,29736=>8198,14043,8188,14034,14032,14038,14031,8195,14033,14039,14045,8189,8194,8192,8193,29753=>19669,8187,29759=>8613,14686,8612,14690,29764=>14680,29766=>14691,19676,29769=>19656,14681,14682,29773=>14692,14689,14687,14688,14684,14683,19559,14693,8609,29783=>14685,29785=>8614,8608,8615,8616,19712,8611,8610,19674,29794=>15337,9041,9040,19243,29799=>15342,29801=>9417,9042,29804=>19680,9044,15343,8607,9043,15339,15341,15338,19682,15340,19678,29817=>15930,29820=>15929,15926,9420,16519,9421,15925,19685,9419,29829=>15927,15924,15921,15928,15922,15923,9418,29840=>16997,29842=>16523,29844=>16522,16524,29847=>16994,9760,29850=>16520,29852=>9758,29854=>9762,9761,16521,16525,29859=>9759,19360,17001,10038,10263,10039,10036,16998,16996,29869=>16999,29871=>17002,10037,17000,16995,29877=>17429,17432,17794,17427,29882=>18102,17433,29885=>10426,17431,10264,17428,17430,17434,17795,29893=>17793,29896=>19694,29898=>10427,17792,29903=>10565,29908=>10658,18512,10657,18514,18511,18513,10786,18763,5756,11978,12807,12808,7754,14694,9763,10428,10735,18764,5757,29928=>11979,5213,29932=>12363,29934=>12364,29940=>12809,12810,7755,7756,29947=>14046,29949=>14697,14696,14695,15344,29954=>15345,15346,9045,29959=>15932,15931,29963=>16526,9764,9765,19696,17006,17003,17004,17005,17436,17435,10265,17796,18336,5758,29978=>6851,29980=>7757,14698,19698,5759,29985=>12811,7758,29989=>8199,8200,29992=>5760,5761,11467,6165,6164,6852,12365,14047,5762,5763,5764,5765,30007=>6166,6167,11664,11663,30013=>6521,11982,11980,11981,30023=>12366,12367,30026=>19705,6856,6854,19704,6855,6853,30036=>7254,30041=>7258,7257,12812,7256,7255,30047=>12813,30050=>7761,13404,13403,7759,7760,19706,30058=>8202,8201,14049,30062=>19707,14048,7762,30070=>8617,14700,8618,14699,30077=>15347,15933,9422,16527,30084=>17007,30086=>10430,10429,30090=>10736,5766,11983,30094=>19711,7763,15348,9046,10947,30100=>11665,11666,30104=>11984,6523,6524,30109=>6522,19713,30114=>6860,6861,6858,6859,30119=>12368,30122=>12369,6857,30128=>12814,30130=>7262,7263,19714,7766,12820,30136=>7268,7266,12821,12816,7265,7264,7259,12819,12818,12815,7267,30148=>12817,7260,30151=>7261,30154=>7767,13408,13409,7768,13405,13407,13411,13410,13406,30164=>7764,7765,30167=>14057,8207,8206,14051,8204,30173=>14054,8208,14055,8209,14052,8203,8205,14056,30182=>14053,14050,30189=>14713,30191=>14702,8620,8623,8622,8627,8626,14714,14712,14705,14709,14708,8624,14711,14707,14715,14706,8625,8619,8621,19715,14704,30216=>15350,9050,15354,9049,15351,9048,30223=>14703,14710,15353,30227=>9051,15355,15352,15349,30233=>15936,15940,15942,15938,15937,15935,9425,9423,9428,9429,15939,9426,15934,9427,9047,15941,9424,30252=>19716,16529,30255=>16528,16536,16530,16535,16532,9766,16534,30264=>9767,30266=>9768,30268=>16533,16531,30274=>10041,17008,30278=>10040,17011,17009,17010,30284=>10042,30287=>19718,17440,19717,10268,17441,30294=>10266,17442,10267,17439,17443,30300=>17437,30303=>10431,17797,10432,10566,30308=>17438,10567,30313=>10659,18337,30316=>10738,18515,10737,19719,18662,10823,10824,30325=>18946,10948,30328=>6862,12370,30331=>8210,8211,5767,5913,11468,30337=>11667,6168,30340=>6525,30342=>6863,6864,6865,13413,12822,7269,30350=>7769,13412,19722,30354=>14059,8213,30357=>14058,8212,30361=>14716,9430,15946,15943,15944,15945,30369=>19727,30372=>17012,19728,17444,30378=>18104,18103,30381=>18516,5768,11985,7270,30388=>8214,14717,30391=>19729,15356,30394=>9431,16537,30397=>17445,18105,5769,30402=>6526,6868,12371,6869,6867,30408=>6866,12823,7271,30412=>19730,7272,7273,30418=>7771,13414,7770,30426=>14060,7772,8215,14718,8628,8629,30433=>9052,30435=>9053,9432,9770,16538,9769,30441=>17013,10043,30444=>17446,18106,5770,6169,11988,11987,6527,11986,6528,11989,30455=>12377,6872,6871,12379,12378,6876,30462=>6875,30465=>6870,30467=>12373,12374,12375,30471=>6877,12372,6873,12376,6874,30480=>12826,12830,12828,12827,30485=>12831,30489=>12832,12833,12825,30493=>12824,19736,7275,7276,30498=>12834,12829,30501=>13423,19737,12835,7277,7274,30509=>13417,30511=>13416,30513=>13418,13419,13421,13420,13425,7776,7773,7777,13415,7778,13424,7775,13422,7774,30528=>19738,30532=>14063,14065,14061,14062,30538=>14066,14068,14069,14064,14067,8216,30546=>14722,30548=>14727,14719,14723,30552=>19741,14728,14724,8630,8638,30558=>8633,14720,14721,9057,8641,8634,30565=>8639,8632,14726,8640,14725,8636,8631,8637,14729,15361,15363,30585=>8635,30588=>15358,9055,15364,9056,15362,15357,15360,15365,9054,15359,30599=>9434,15950,15949,30603=>9437,9435,15947,9433,15948,30609=>9436,30613=>16546,30615=>16548,30617=>16547,16539,16543,16542,16540,9772,9773,9771,16541,16544,16545,30629=>9774,30631=>10048,17021,30634=>10045,17015,10047,10049,30639=>19743,10046,17020,17016,10044,17019,17014,17018,17017,30650=>17448,10271,10272,10269,30655=>10270,30658=>17447,30660=>17800,19445,30663=>10433,30665=>17798,17799,30668=>18107,18110,18108,18109,18338,30675=>10660,18663,18765,30679=>10825,18833,18834,10871,5771,6878,30686=>14070,30688=>14730,30690=>5772,6170,30693=>6529,19115,12380,12381,7278,30700=>14071,8217,8642,10050,17022,17801,18111,5773,19747,30711=>11995,11990,11992,11994,11993,11991,6530,30722=>6879,12390,30725=>12385,12382,30729=>12389,30732=>6881,6882,12388,12387,12386,12383,12384,12391,6880,30749=>7282,30751=>7288,7287,12844,12838,12836,30757=>7285,13432,7280,12841,12845,12847,12843,12837,7286,12842,12840,7279,12848,7289,12846,7283,12839,30775=>7284,7281,30780=>19012,30787=>7780,30789=>13433,30792=>13426,13428,13430,30796=>13431,13429,7781,30800=>13434,30802=>13427,30812=>14075,8218,14083,30816=>14072,30818=>14084,30820=>14073,14074,30824=>14082,14081,14078,7779,8219,14076,14079,8220,14080,14077,30841=>14741,30843=>14745,8649,30846=>15371,8652,14743,18956,30851=>14740,14735,14737,14738,14731,30857=>8648,30860=>8647,30862=>8643,14734,30865=>8650,30867=>8651,14733,14736,14744,8645,8646,14742,14732,30878=>15373,9059,15375,14739,15377,9063,15378,15374,30887=>9060,15370,9062,15367,15372,15376,15369,30895=>19752,8644,19760,15366,9061,15368,30906=>9440,15952,9444,30910=>9442,30913=>9058,30915=>15959,15960,9439,30919=>19753,15958,15961,9441,9438,15954,15951,15956,15953,9445,15955,30931=>19754,15957,9443,30935=>19758,30938=>9776,16555,30941=>16549,16553,16559,16560,16556,16557,16554,30949=>16551,30951=>9778,9775,16550,16552,30956=>9777,16558,30959=>10054,30961=>19176,17028,17023,10053,30967=>10051,30969=>17030,10052,17026,17027,17024,17031,17449,30977=>10055,17025,30980=>17032,17029,30985=>17453,30988=>17450,30990=>10273,30992=>17454,17456,17455,17451,17452,30999=>17806,31001=>10434,31003=>17803,17805,17802,17807,31009=>17804,31011=>18113,18116,18112,10568,18114,18115,18117,10569,10571,10570,18339,19756,18341,31025=>18340,31028=>19759,18517,31032=>18766,18835,5774,31036=>19774,11668,6531,11997,6532,6533,11996,31044=>12396,12395,6883,6886,6885,6884,12392,12394,12393,31055=>12851,7291,12855,12854,12853,12849,7290,7294,7297,31066=>7298,12850,12852,7296,7295,7293,7292,13441,31075=>13439,13435,7782,31079=>13436,7783,13437,13438,13440,31085=>7784,31088=>14088,19352,14087,14086,14085,31097=>14749,8653,31100=>14746,14748,31103=>8654,19770,8655,14747,31110=>19767,31112=>15387,31114=>15380,15381,31117=>9066,9064,9065,15389,31122=>15388,15385,15384,15383,15382,15386,15379,31130=>15962,15967,15965,19772,31136=>15964,15963,15966,31140=>16561,31142=>9779,10056,17034,19775,10057,17033,17458,17457,10274,31152=>17808,10435,18118,10739,18518,31158=>18768,18767,11374,6887,6888,13442,31165=>8657,5775,6173,6172,6171,31173=>11998,19779,31176=>6535,6534,31179=>6891,19561,12398,12401,12399,31185=>6889,6890,31188=>19781,12397,12400,31192=>7305,31196=>12862,12864,12863,7302,12858,31203=>7300,7299,31206=>7303,7301,31209=>7304,12861,12856,12857,12860,12859,31222=>13445,13446,13444,31226=>13443,7785,31232=>8225,31234=>14089,14091,14093,8224,31240=>8222,31242=>14090,8223,14092,8221,31248=>14759,14750,14753,14757,8661,14755,31255=>14754,14751,14752,8659,14758,8658,31262=>8663,8662,8660,31266=>14756,31270=>15395,31272=>15394,31275=>15390,31278=>9067,15393,15392,9068,31287=>9450,31289=>15969,31291=>9451,9447,9449,31295=>9446,9448,31300=>16562,31302=>9782,16564,16563,31306=>15391,9784,9783,9780,9781,31316=>17039,31318=>17037,10058,17038,31322=>17040,17036,17035,31327=>17459,10277,10275,10276,31335=>17809,17810,10437,31339=>10436,18120,18121,18119,31344=>18519,18520,31348=>5776,11469,6174,31352=>11999,6537,6536,12000,31358=>12403,6892,12402,6893,31364=>7306,12867,12865,12871,7307,12866,12870,12868,12869,31375=>13447,13449,31378=>7786,31380=>13448,7787,8228,8227,8226,14094,31390=>14762,8664,8665,31394=>14761,14760,31400=>15396,9070,9069,15397,15398,31406=>9453,9452,31409=>16568,15970,15972,15971,16567,16565,16569,16566,31418=>9785,31422=>17041,10059,17042,17043,31428=>10278,10279,31431=>10572,31434=>10787,5777,31441=>12404,31448=>12872,7308,31455=>7938,7937,31459=>8230,14096,8229,14095,31467=>14763,31469=>9071,15399,9072,31478=>10573,18122,31481=>5914,6538,12001,31485=>6895,31487=>6894,12405,12406,31492=>12874,12876,7309,31496=>12878,12881,12879,31502=>12880,12877,12873,7310,12882,12875,31512=>13458,7793,13467,7790,31517=>13460,7794,31520=>7788,31522=>13455,13468,13456,13453,7792,31528=>7789,31530=>13459,13462,7791,13463,7795,13464,13454,13461,13465,13457,13452,13450,31544=>13466,31547=>14098,31552=>14103,31556=>14099,14105,8233,13451,14100,8231,14097,8238,14101,8237,14102,8239,8234,8240,8235,31572=>8236,31574=>8232,31576=>14104,31584=>8668,14774,31587=>14777,14765,14770,14764,8670,31593=>14768,31597=>14766,8669,31600=>14773,14772,14769,14771,14767,9076,14776,8666,14775,31618=>15415,31620=>9083,15410,31623=>9082,15400,31626=>15402,9075,15407,15406,15409,9080,15404,15403,31636=>9079,9074,15405,9077,15411,15413,31643=>15408,15401,9078,31648=>9461,9073,31652=>15414,31660=>15976,9454,31663=>15978,31665=>9455,31668=>9457,15981,31671=>15973,9081,15979,31678=>15975,31680=>8667,9460,31684=>9456,31686=>9458,9459,31689=>9788,15980,15974,9462,31694=>15977,31700=>16579,16574,31704=>16584,9786,16576,9790,16582,16573,16570,16585,10065,9791,16581,16571,9789,16575,9793,16572,16577,9792,16580,16583,31728=>17061,17062,17046,17053,17051,31735=>10063,17058,16578,31739=>17049,31741=>17059,10062,17048,17047,17057,17054,17056,31749=>17044,17060,10060,31753=>17055,17064,17052,10064,10061,17050,17045,17063,9787,31765=>19083,31769=>17462,31772=>17460,17466,10283,17464,17463,10285,17469,10284,31781=>17470,17467,10281,17468,17461,10282,10280,17814,17465,31792=>17471,31795=>17811,31799=>10442,10440,17813,31803=>17815,17812,10441,10438,10439,10443,31811=>10575,31813=>18127,31815=>18126,18124,18123,18125,31820=>10574,10576,31824=>10661,31827=>18343,18342,31831=>18521,31833=>18523,18525,18524,18522,31839=>10741,10740,31843=>10789,10788,10790,18665,18664,31849=>18836,18769,18837,10857,31854=>10858,18885,31858=>10895,5915,31861=>12002,31864=>12408,12409,12407,31869=>6896,31871=>12410,12411,12412,31876=>12883,12889,31880=>12887,7311,12885,31884=>12886,12888,31889=>12884,7796,31892=>13469,7798,13471,7797,13470,31902=>14107,8241,31905=>14109,14106,13472,31909=>8242,31911=>18961,14108,31919=>14780,31921=>8671,14778,8672,14779,8673,31929=>9084,15419,15416,15418,9085,9086,15417,31941=>15982,31944=>15983,31946=>9463,15985,15984,31950=>5214,31952=>16589,16590,16586,31956=>16587,9794,9795,16588,31961=>10071,31964=>10067,10072,10068,10070,10066,31970=>10069,31975=>10286,17065,31978=>17817,31980=>17816,31982=>18128,10577,10578,18527,18344,31988=>18526,31990=>18838,18906,5916,31995=>6175,31997=>12003,6539,32000=>6899,12415,6897,12413,6902,6898,6903,6901,12414,6900,7315,7314,12900,7323,12893,12899,7319,12892,12898,12896,7318,7320,12895,7313,12894,7324,7321,7325,7322,12891,12890,12897,7316,7312,7317,32040=>13487,13480,32043=>8247,13479,32046=>7802,7809,7806,7812,7811,7807,32053=>13473,13476,32056=>13475,7803,13477,13486,7804,13474,13483,13484,7805,13481,7810,7800,7808,13478,7799,13482,32074=>13485,32078=>14126,14117,8244,14124,14121,14113,14122,8246,14114,32088=>14110,32091=>8679,14119,32094=>8243,14125,32097=>8250,8252,14112,32102=>8251,14115,8245,14123,14116,14120,32109=>14118,8248,14111,8253,7801,8249,8254,32121=>8675,14787,14789,14791,14795,32127=>14785,14783,8677,32131=>14790,14794,14786,14782,32136=>14781,32140=>14792,14784,14788,8678,32145=>8676,14796,8674,14793,32150=>15436,32156=>9089,15428,9476,15438,9092,15442,9098,15423,32166=>15439,15420,32169=>15441,15424,32172=>9105,9102,15440,15434,9088,9096,9095,32180=>9094,9100,32183=>15421,9101,15435,9097,9087,15437,9090,9091,9099,15426,15425,15422,32196=>15430,15427,15431,9104,32201=>15443,9093,15432,15433,32206=>15429,32210=>9103,32215=>15990,9468,9477,9473,15987,32221=>9470,9474,15999,9464,15991,32227=>9472,32230=>15994,15989,9471,9475,15988,32236=>9469,32238=>15998,9466,15997,15996,9478,15750,9465,32246=>15995,15986,32249=>9479,15993,9467,32259=>15992,32264=>9798,9803,9796,16603,16594,16606,16598,16604,9804,9797,16591,16597,16607,16600,16605,16593,32282=>16601,9799,16599,9802,9801,16595,16596,16592,16602,9800,16609,16608,32297=>17076,17072,10079,32301=>17066,10073,10089,17078,10081,10077,17069,10084,10087,17080,10076,17071,10085,17082,17079,17067,10080,10074,10088,17074,10083,17068,10078,17081,10082,10075,17075,10086,17073,32332=>17077,32336=>17473,17479,10292,17482,10287,10288,17474,17481,17476,10293,10290,32348=>17472,32350=>10289,17478,17480,10291,17477,17475,32360=>17827,10447,10448,10444,32365=>10445,32367=>17823,17821,32370=>17825,10450,17826,17819,17818,17822,17820,10446,17824,18129,10581,10580,18130,32384=>18132,18131,10582,32390=>18349,18346,18347,32394=>18345,18348,10663,18350,32399=>10662,32401=>18528,32403=>10791,10793,18666,10792,18770,18840,18842,18839,18841,10877,32566=>5917,32568=>6904,12764,7326,32573=>7813,14127,14128,32579=>16610,10090,17083,32584=>10294,32586=>17829,17828,10583,18351,32591=>18529,10826,11470,32596=>6540,6176,32600=>12416,32603=>12906,12901,12905,12903,7327,12904,12902,32611=>13488,32613=>14129,14130,14799,14800,8681,8682,14798,14801,14797,8680,32624=>9106,32626=>8683,15444,32629=>9480,16000,9481,32633=>9805,16613,16611,16612,17086,17085,17084,32643=>17830,32645=>10449,17831,18530,10827,18771,5918,6542,6541,12418,6905,19538,32657=>12417,12908,32660=>7328,13489,12907,32666=>7815,13492,13490,13491,7814,32672=>14132,14133,14131,32676=>8686,14803,14802,14804,8685,8684,32684=>16001,16003,32687=>9482,16002,16614,9806,17484,32693=>17483,10451,17832,10453,10452,18133,18352,10664,5919,12419,6906,12911,7330,12910,12909,32709=>7329,32711=>13498,32713=>13500,13493,13494,7816,13495,7817,13499,13496,13497,7818,32724=>8256,8257,32727=>14134,32731=>14805,14806,32734=>15448,9109,9107,9108,15445,15446,32741=>15447,16008,32744=>16009,9483,16006,16005,16007,16004,9809,16615,9807,9808,17088,10091,17087,17340,32759=>17485,17486,10295,32763=>10296,10092,17833,17834,18134,10584,5920,32771=>5921,6907,6543,7331,12420,32779=>8258,5922,6909,12421,12422,6908,6910,5923,32788=>12423,7333,12912,7335,7332,7334,32795=>13503,7819,32798=>13502,13501,32801=>14807,32804=>15449,32806=>9484,32808=>9810,16617,16616,32812=>17089,32816=>18353,32819=>5924,11669,12004,6911,12424,32825=>12914,32829=>7336,12913,7337,32835=>13505,32838=>7821,13504,13506,32842=>7820,32847=>14136,14137,14135,8259,32854=>8687,32856=>8688,32858=>9111,32860=>15451,15450,9110,32868=>16010,32871=>16011,32876=>16618,32879=>10096,10095,10093,10094,10097,32885=>17487,10298,10297,17835,18135,32893=>10743,10742,5925,32898=>12713,32900=>8690,8260,8689,9112,32905=>5926,11375,5927,5928,32911=>12005,11672,32914=>11673,6178,32917=>11670,6177,32920=>6180,11671,6182,6181,11674,6179,32929=>6548,6546,12007,32933=>6545,32937=>6550,6552,6549,32941=>12010,12006,6553,32945=>6547,6183,32948=>6551,12009,32952=>12008,32954=>6544,32962=>12430,6915,6916,12432,32967=>12426,12429,12438,12436,32972=>6917,12442,6920,12439,12431,12428,32980=>14139,12437,6912,12440,12425,12434,6914,6919,12435,6923,6921,32992=>12427,6918,32995=>12433,6922,6913,12441,33005=>7342,33007=>7351,7340,7338,12916,7346,7343,12918,33016=>7345,12917,12915,12920,7350,7348,14138,33024=>12921,12919,7339,33029=>7341,7344,33032=>7347,33034=>7349,33045=>13516,7823,33048=>13507,13509,33051=>13510,33053=>13518,13514,13512,33057=>13515,13519,7824,7828,13508,33063=>13517,33065=>7826,33067=>7825,13513,13511,33071=>7822,7827,33081=>8266,14147,33085=>14145,8268,33091=>14140,14821,33094=>8267,14144,33098=>14141,8263,8269,14146,8265,14143,9113,8264,14142,8270,8262,8261,33115=>14813,14811,33118=>14817,33120=>14809,14822,14814,33124=>14808,8694,8700,14819,33129=>14812,33131=>8697,33134=>8695,14820,8692,8691,14815,8696,8271,33142=>14818,14810,8693,8698,8699,33151=>9118,9114,33154=>9119,15454,33158=>15453,15455,9116,15452,9117,15458,15457,15456,33167=>9115,33173=>16015,33175=>16018,9490,16017,9489,9485,9486,9487,16014,16013,9488,33186=>16016,16012,33190=>16620,16630,9813,9812,33195=>16624,16626,33198=>16621,33200=>16625,16619,16628,9811,16627,16623,33207=>16629,33209=>16622,10100,17090,17096,10104,10106,10103,10102,33218=>10101,10099,17091,17094,10098,17095,33225=>10105,17093,33228=>17092,10299,33231=>10300,17490,17488,17489,33237=>17837,33239=>17836,10454,18137,10585,18136,33245=>18354,18531,10744,18843,18844,10794,5929,33253=>6554,14148,9120,10107,17097,5930,33260=>7353,7352,14149,19723,33266=>16631,5931,6924,33271=>14150,14151,14152,9121,9814,5932,33278=>6555,12443,7354,12922,7829,33284=>14153,8701,33287=>9122,9815,10108,10301,18138,5933,6556,33296=>7355,13520,8272,33300=>9123,15459,16019,33307=>5934,8273,14823,9124,5935,12011,12444,6925,33317=>12924,19523,33320=>7358,33322=>7356,7357,7359,33327=>12923,33330=>13525,13522,13524,7830,7832,7831,13521,7833,13523,33340=>14154,14155,33343=>14156,14826,33346=>14827,33348=>14825,14828,33351=>8702,33353=>14824,33355=>9125,33358=>16024,16020,16023,16025,16022,16021,33365=>16632,16633,16634,9816,9817,17099,17098,17100,33374=>17492,17491,33377=>17839,33379=>17840,17838,33382=>10586,33384=>18139,18140,33387=>18532,18667,18772,5936,6184,33393=>10109,5937,33396=>13526,14157,33399=>10834,11471,33404=>11472,11474,5938,11475,11473,33411=>11682,11683,11677,33415=>19294,33418=>11681,6186,33421=>6187,11678,11676,11675,11679,6185,11680,12445,33432=>12016,6559,12015,12017,33437=>6558,12022,6562,12012,12026,12032,6569,12029,6566,33447=>12019,12025,12027,33451=>12014,6565,6560,12020,6567,6570,6564,33459=>6557,12024,12018,12031,6572,6568,6563,12023,7360,12021,6561,6571,33472=>12013,33474=>12028,12030,33489=>6942,6936,6944,6941,12452,12455,6937,33497=>12446,33499=>6930,6940,33502=>6943,6945,12467,12458,33507=>6929,12466,6933,6931,6926,12450,33514=>12465,12454,12457,12470,19010,6946,12464,6938,12459,12469,12456,12460,12463,33529=>12448,12468,12462,19289,33534=>12447,33536=>12451,6939,6934,6927,6932,6928,6947,12449,12941,6935,33548=>12461,12090,33558=>12944,7374,33561=>12928,33563=>12939,12935,33566=>12954,33568=>12946,33570=>12936,33572=>12945,12930,12934,12957,7377,12949,12940,7361,12955,12926,33583=>12948,33585=>7376,7371,12925,7369,7368,7373,12947,7365,7372,12453,14158,12942,33599=>12932,7375,12933,12937,7378,12927,12951,33607=>12950,12958,7367,7364,12956,12952,12943,12938,7370,7366,12929,7362,12953,7363,33622=>12931,33635=>19489,33651=>13532,13534,13539,13559,7847,7837,33658=>13531,7848,7849,13542,13549,13555,33665=>13536,33667=>13543,33670=>7850,13557,13552,7845,7843,13548,13544,13530,7834,13535,13527,33682=>7842,7844,13540,13537,7839,13553,7836,13538,13560,13546,33693=>13545,7835,33696=>7846,33698=>7838,13528,13533,13550,13556,7851,13529,13541,13547,7841,33710=>13558,13551,13554,33721=>19679,33725=>7840,33727=>14174,14162,8281,14191,14199,14202,8279,14170,14195,14171,14185,8292,14181,8289,19071,14182,14159,33745=>14196,33748=>8298,14193,14183,14204,14178,14860,33755=>14207,8296,14176,14188,8299,8278,14180,14205,14173,14166,14177,33767=>14165,14163,8274,14197,14172,14200,33774=>14201,8282,8287,8283,8291,14192,8284,14184,14168,33784=>8276,14160,14194,14203,14167,8290,14208,14179,33793=>14175,33795=>8275,8295,33798=>14190,8297,33801=>14186,8286,8280,8288,8277,8294,14187,14169,14189,14164,14198,33814=>19041,33819=>14206,33827=>14161,19364,33833=>14859,33835=>14881,8656,14864,19555,14862,14841,8706,14857,14877,14853,8714,14876,14851,8293,14867,14852,14874,8713,8705,33855=>14830,14838,33858=>14863,14855,14880,14858,8719,14875,33865=>8710,33867=>14861,14869,14842,14868,33872=>14885,14837,14870,33876=>14883,33878=>14831,8285,33881=>14845,14844,8712,33885=>14848,14850,14865,14882,8715,19732,8716,33893=>14836,8708,14840,14878,8717,33899=>8709,8711,8718,14884,14871,14866,33907=>14847,14846,8707,14832,8704,14856,14833,14854,33917=>14843,14879,33922=>8703,33926=>14839,33933=>14835,14873,14834,9138,15499,33940=>15482,33943=>15460,15490,9130,15475,15485,9133,15478,9131,15463,15493,15462,15481,33956=>15461,33959=>15479,15488,15486,15474,15469,15467,33966=>15468,15487,15498,15476,9132,33972=>15471,33974=>15491,33976=>9135,15470,15464,15480,9139,33983=>9127,9136,15472,15466,33988=>9129,14872,9128,15483,33993=>9126,9141,9134,15484,15473,15465,15492,15477,9140,15496,9137,15495,34006=>15489,15494,34011=>15497,34023=>16065,16066,16053,16052,16048,9502,34030=>9494,16068,16067,14829,16045,16049,16043,34038=>16062,16047,34041=>16069,16040,16038,16050,16060,16055,9504,16029,34050=>16059,34053=>19221,9505,14849,16041,16032,16035,16073,16042,16033,16031,16028,34065=>9498,16051,9497,9501,16046,16054,9491,16070,16074,9493,34076=>16037,16057,16061,16034,16071,9500,34083=>9499,16026,9503,16064,16036,16056,16030,16044,16039,9495,9496,16058,16075,16072,16063,34099=>19550,34107=>16027,34109=>9492,16651,34112=>16642,16645,19084,9823,16647,16636,16643,16649,9820,9824,9818,34124=>19001,16638,16654,34129=>16648,34131=>16639,16663,16657,16635,17119,16641,9819,34139=>16652,34141=>16662,9827,34144=>16659,16640,16646,16650,16644,16664,16661,16658,9821,9822,9826,16637,16665,9825,16655,34161=>16653,34165=>16656,17132,17113,17118,17131,17117,17109,17114,34174=>10112,34176=>17102,17126,17128,17101,10111,17130,17122,10118,17129,17115,10120,17107,16660,17123,17120,17103,17134,10114,34196=>10115,17105,17121,34200=>17133,17124,17111,10117,10113,17125,17112,17135,17106,17116,17127,17108,17110,34214=>10310,17104,10119,10303,10110,34223=>10116,10307,17508,34227=>17498,17493,17499,17509,17513,17512,10309,10308,34237=>17500,17514,17503,17495,34242=>17497,17496,17502,17507,17494,17501,17506,10306,34251=>17504,34253=>10304,17505,10302,10305,17856,17510,34261=>10458,34263=>17848,17852,17844,17847,34268=>17855,10456,17860,17853,34273=>17845,17861,17854,10459,10460,17858,34280=>17846,10455,10457,17841,17849,17843,34287=>17859,17857,17842,17850,34294=>18147,10461,17851,10588,10590,10587,34301=>18152,18144,18142,18146,18143,34308=>18148,18150,10591,10593,34313=>18149,10594,10592,18151,19086,34321=>10589,34327=>10665,18355,18361,10667,18145,18360,34334=>18367,18358,18365,18364,18141,18359,17511,18368,18357,18362,34345=>18366,18356,34348=>18536,10666,18363,34353=>18672,18537,18535,18533,18534,18538,34360=>10795,18670,18668,18673,18671,34366=>18674,10796,18669,34371=>18773,34374=>18845,18846,18847,34379=>18941,18931,11476,6573,34384=>6948,34386=>12960,12959,7379,7852,13562,34393=>13561,34395=>8300,8721,34398=>8720,8722,34401=>15500,16076,16666,16668,16667,34407=>10121,17136,17515,18907,5939,34413=>12035,12036,12034,12033,6574,34419=>12474,12472,34423=>12471,34425=>6949,6951,6950,12473,34437=>12972,12969,12967,34442=>7380,12970,7385,12964,12979,34448=>12981,12965,34451=>7382,12982,12977,12963,12968,12978,12974,12971,34460=>7387,12980,12966,34465=>12975,12961,7386,7383,12973,34471=>12976,12962,7384,7381,34479=>7862,13569,7861,34483=>13572,13575,7858,7856,13564,13573,13571,13568,13576,13577,13579,13580,13563,7855,13566,13565,13578,7857,13567,7859,7854,13570,7863,34507=>7860,13574,34512=>8307,14223,34515=>14212,8304,34518=>14891,14221,14209,8302,14214,8305,14218,14216,8308,8301,34530=>14210,14213,8306,34534=>14211,34536=>14222,14220,14215,14217,14219,8303,34549=>14892,14898,14888,14894,8723,14890,8729,34558=>8728,34560=>8727,14897,8730,8731,14887,14900,8732,8726,8725,14896,8733,14886,14889,14899,14895,34577=>15532,15521,8724,34584=>9148,15509,15530,15510,9143,34590=>15507,34592=>15516,15508,9145,15502,15529,9146,15526,15527,15503,9151,15518,34604=>15512,15519,15506,34608=>15531,15523,15517,15501,9147,15524,34615=>9150,15528,34618=>15522,9144,15520,34622=>15514,9142,15505,15513,15525,15511,34630=>15515,34636=>9515,14893,16094,16103,16093,16089,16086,9516,16084,9149,16077,9514,16083,9513,16088,16085,16101,16096,16090,16095,9509,16087,16106,16078,16079,16102,9510,16107,9512,16108,16092,15504,16098,16091,16100,16097,34675=>16082,9507,16105,9508,16080,9511,16678,16099,16104,34685=>19055,34689=>16675,9506,9828,16685,16681,34695=>16679,16674,16689,34701=>9832,34703=>16670,16682,16683,16673,16672,16686,34710=>16676,16671,16677,34714=>16688,16669,16687,16684,9830,9829,34722=>9831,16680,17532,34730=>17138,10127,17142,17139,17146,17152,17141,34738=>17161,10124,17155,17144,17156,17151,17158,17143,10129,10128,17145,17159,17137,17157,10122,34754=>17149,17148,17153,17140,10126,34760=>10130,17147,17154,10131,17150,34769=>10123,10125,17528,17526,34775=>17533,17530,17534,34779=>17519,17527,17538,17160,17523,10314,16081,17518,17531,17525,17522,17517,17516,17537,34794=>17521,17520,10312,17529,34799=>10311,34802=>10313,17524,17536,34806=>17865,17866,34809=>10465,17863,10462,17871,34814=>10466,17873,17862,17535,17875,17864,34821=>10463,17870,34824=>17872,17867,17874,17869,17868,10464,34832=>18154,18155,34835=>18157,10595,10596,18158,18156,34841=>18153,34843=>18371,18374,18370,34847=>10671,18372,10670,10669,10668,18373,18543,18541,34856=>18540,18369,18542,18375,18539,34862=>18677,18643,18675,10797,18676,18678,34869=>18776,10828,18775,18774,10829,34875=>10859,18886,18909,18908,18910,5940,12475,34883=>12983,12984,34888=>14224,34890=>18376,18777,5941,6952,12476,34898=>13581,7864,34901=>14226,14225,8309,34905=>8734,16109,9517,34909=>9518,34913=>9833,10830,5942,34919=>12477,6576,12479,12478,6953,34925=>12985,34927=>12992,7388,12990,12988,34932=>12995,12986,12987,7389,34937=>7393,34940=>12996,7392,12994,12991,12989,7390,7391,12993,19763,34952=>7866,13582,34955=>7871,13598,7870,13600,34961=>13588,7868,13599,34965=>13583,7869,13595,13591,13593,13587,13594,34974=>7865,13590,34977=>13589,13585,34980=>13596,34983=>13592,13584,34986=>13586,7867,13597,34993=>8312,14237,34998=>14233,14235,14230,14229,14227,35004=>14234,14236,14232,35008=>14231,8310,8311,35017=>14239,8742,14902,14908,14903,14904,18958,14909,35026=>8744,35028=>8736,8743,14901,14228,8739,8737,14907,14906,8738,8740,14905,8735,35041=>8741,35047=>15534,9158,35051=>15545,15544,35054=>15539,9160,15543,15535,15536,9152,9154,35062=>15541,15533,9156,9155,15537,15542,15540,9157,15538,35072=>19768,14238,9153,35077=>16110,16117,9520,35081=>16121,9524,16113,16111,35086=>16120,35088=>9519,16119,9521,9522,16112,9523,16118,16114,16115,16116,9159,35102=>16690,16702,35105=>9838,16697,16699,35109=>9836,16691,16695,35113=>16698,9834,9837,16701,16693,16694,16700,16692,16696,9835,17163,35125=>17162,10133,17168,10135,35131=>10132,17164,10136,17165,35137=>17166,17169,35140=>10134,35142=>17543,35145=>17546,35147=>17540,17542,35151=>17541,17544,17545,17167,17539,35158=>10469,17879,17882,17884,17877,17878,17881,17883,10470,10468,10467,17880,17876,18159,10597,35174=>18160,35177=>18378,10672,18380,10673,18377,18379,10746,35185=>18544,10745,18681,18680,35190=>18679,35193=>18848,18849,18851,18850,35198=>11477,5943,35201=>6954,13601,8313,35205=>14910,10315,35208=>17885,35211=>6188,35215=>7873,35219=>7872,35221=>14240,8314,14242,14241,35227=>14911,8745,15546,15549,15548,35233=>15547,16122,16124,16123,35238=>9840,35242=>9839,35244=>10137,17170,17172,17171,35250=>10316,35254=>17887,17886,35257=>18161,10598,35261=>10674,18546,18545,10860,35282=>6189,12480,6955,13604,13602,35289=>13603,14244,14245,14918,14243,35295=>14912,14916,14915,14917,8746,14914,14913,14919,35304=>15552,15550,35307=>15551,16127,16125,35312=>16126,16703,17173,17174,10317,35318=>17888,18162,10599,35322=>18381,18547,10747,35326=>18682,18852,6190,35330=>6957,6958,12481,35335=>12482,6956,35338=>7399,35340=>7397,35342=>7396,7403,7395,7404,12997,7401,35349=>7398,7402,7400,7394,35355=>7881,35357=>7875,13608,7880,35362=>7882,7876,35365=>7877,35367=>13606,35370=>7874,35372=>13607,7879,35376=>13605,7878,35380=>8325,35382=>8327,35385=>14248,8326,8315,8319,35390=>8765,14924,14250,8320,35396=>14253,14254,8324,35400=>14256,35402=>14258,35404=>14259,14247,14246,14260,8323,14257,14255,35412=>8321,8317,8328,14251,14252,14249,35419=>8322,35422=>8318,35424=>8316,14923,8760,8755,35430=>8750,35432=>8766,8751,35435=>8747,8762,8759,8761,35440=>8752,8757,8748,8749,14931,14928,14920,14925,35449=>8763,14932,8764,8754,35455=>14922,35457=>14930,14926,14929,14927,8758,14921,8753,35467=>15555,9162,9165,35471=>15557,35473=>9173,15556,9167,35477=>9529,15558,35480=>9172,15554,9174,35486=>9163,35488=>8756,9166,35491=>9164,9168,9170,9161,9175,9171,35498=>9169,15553,35504=>9536,35506=>9532,35510=>9539,35512=>16130,9540,16142,16135,9525,16143,16137,9535,16138,35522=>9534,16141,9528,16139,16129,9527,16714,9533,35531=>9530,35533=>9538,35535=>16128,35537=>16132,9526,16131,16133,16134,9537,16136,16140,16144,35547=>9541,9846,16709,16715,16712,16704,16716,16705,35556=>16711,35558=>9841,9847,16717,35563=>9843,35565=>9853,9848,16719,16713,9844,16706,9854,16707,16708,9855,9852,9531,35578=>9842,16720,9856,35582=>9849,16718,9845,9850,9851,35588=>10145,17179,17188,17185,17187,35594=>10142,17180,35597=>17186,10138,17182,10146,17178,17183,17190,16710,17184,17177,10139,17176,10140,17191,10141,17189,10144,17175,35616=>10143,35618=>17181,17549,17563,17558,17560,17548,10318,35626=>17547,10321,10320,35630=>17562,17554,17551,17557,35635=>17550,35637=>17552,17561,17559,35641=>10319,17566,17564,17555,17565,17556,35648=>17892,10471,17899,35653=>18384,10478,17553,17890,10474,17891,17896,35662=>10476,10477,17889,17898,17900,17893,17895,17897,17894,17901,10473,10479,10475,35676=>10472,18165,35679=>10604,18163,35683=>18167,35685=>18168,10602,18169,18166,35690=>18164,10605,10601,18170,35695=>10603,10600,35700=>10675,35703=>10676,18383,18382,18385,18386,35709=>10677,18548,18553,10748,35714=>18550,35716=>18549,18552,18551,35720=>18686,35722=>10798,18685,18683,35726=>18684,35730=>10832,10831,18778,18779,10833,35736=>18853,18854,10872,35740=>10878,35742=>18911,18942,35895=>6191,35897=>13609,35899=>13610,14933,15559,16145,10148,35905=>10147,17567,17902,35909=>18687,6192,12998,7405,7883,14935,14934,9542,16146,9543,17192,10322,35924=>10887,6193,12037,12999,35930=>7884,35932=>13611,13612,35935=>14261,35937=>8329,8767,35940=>14937,14936,14938,35944=>15560,15561,9176,9857,9544,9858,35951=>17196,17193,17195,17194,10149,35957=>17568,17904,17903,11684,7407,7406,13000,35965=>13613,35968=>14263,14262,8330,35972=>14940,14941,14939,35977=>8769,8768,35980=>9178,9177,35983=>16147,16723,16721,16722,9859,17198,17197,35991=>17571,17570,17569,17905,35996=>18912,6194,6959,36000=>6960,7408,7409,13002,13001,13614,36007=>7890,7888,7885,7889,7887,7886,36015=>8331,14266,36018=>8774,8333,8338,14268,8340,8339,8342,14267,14264,8336,8332,8334,14265,8341,8337,8335,8776,8775,8773,8777,36039=>8771,8772,36042=>8770,36044=>14942,36047=>15563,36049=>9180,9181,9179,36053=>15562,36055=>15564,36057=>16150,16152,36060=>9553,16153,9546,16149,9545,9555,9551,9552,9548,16148,9547,16154,16151,36074=>9554,36076=>9549,9550,16725,36080=>16727,16726,36083=>16728,9860,16724,36088=>10153,17199,10150,10154,10152,10151,17572,36096=>17575,36098=>17574,36100=>17573,10323,17906,17907,10480,17908,10481,36109=>10607,36111=>10606,18387,36115=>10678,18388,18554,10749,10750,36121=>18688,36123=>10835,36196=>6195,36198=>7892,7891,14943,14944,36203=>9182,16729,9556,16730,17200,6196,36210=>12483,6962,6961,36214=>13003,7410,13004,13617,36219=>13616,36221=>13615,36224=>14270,8345,36228=>14269,8344,36233=>14271,8343,36236=>14946,14949,14947,14948,14952,14945,14953,14950,14951,9184,15565,36249=>9183,36251=>16158,16156,36255=>9557,16155,16157,36259=>9558,36261=>16731,36263=>16732,10155,36266=>17910,17912,17909,17911,18171,18389,36274=>18887,6197,6963,13005,13007,13006,36281=>13620,7894,36284=>13618,36286=>7893,13621,36289=>13622,13619,36293=>14283,8353,14275,14281,36299=>8348,8351,14274,8346,14278,14959,8350,36307=>14273,36309=>14279,14276,14282,14272,14280,8349,8352,14277,8347,36319=>8779,14955,8778,14962,14961,8785,36326=>8786,14963,8780,14960,8784,14965,14956,36334=>14958,8781,14954,14957,14964,8782,14966,36346=>8783,36348=>9185,15570,15576,15568,15577,36354=>15567,15572,15578,15575,15574,15573,36361=>15566,15571,36365=>15569,36367=>9563,9560,16167,16172,16174,16171,16164,16166,16176,16173,16168,16177,16165,16175,9561,9567,9565,16159,9566,9562,16160,16162,16161,16169,16170,36393=>9564,36395=>9559,36398=>16163,36400=>16742,9862,36403=>16733,9863,9866,16738,36408=>16735,9865,36412=>16739,16740,16734,16743,16736,16741,9864,36420=>9861,16737,36423=>17206,10158,10156,10159,10157,17205,17202,17201,36432=>17204,36435=>17203,17589,10329,17580,17579,36441=>10324,17585,17584,17576,17587,17581,10328,17578,17586,17577,10325,10327,17582,10326,17583,36457=>17588,17916,36460=>10486,17913,36463=>17917,36466=>10483,17915,10488,36470=>10485,36472=>17914,36474=>10487,17918,10482,36481=>10609,10611,36484=>18174,10610,18172,10484,18173,10608,10679,10681,18391,10680,18390,36496=>18559,10751,18558,10752,18556,18555,18560,18561,18689,36506=>18557,36509=>18783,18780,18781,18782,10861,36515=>18857,18856,18855,18888,36520=>18932,18913,10879,6198,7411,36530=>8787,36538=>9568,36541=>16744,36544=>10330,36546=>17919,36553=>18914,6199,6577,6965,6964,36559=>7414,36561=>13008,7412,13009,7413,36567=>13627,13623,36571=>7895,13626,13625,13624,7896,13628,13629,36581=>14290,14288,14292,14293,14299,36587=>14295,14297,36590=>14289,14284,36593=>14296,36596=>14298,14291,14294,14285,8355,14287,14286,8354,8356,36606=>8790,14968,14970,14969,14974,8788,36613=>14971,14967,14972,14973,8789,8791,14975,36621=>15582,15581,36624=>15579,15580,9187,9189,9186,9188,16184,16185,16180,36634=>16181,9570,9575,9569,9576,9571,16182,36643=>16183,16179,9577,9573,36649=>9572,9574,36652=>16178,36654=>16746,9868,36658=>16748,9870,16751,16747,16745,16750,9869,16749,36667=>9867,36670=>10161,10164,17208,36674=>10162,17207,10160,10163,17590,17591,17592,10331,36683=>17593,36685=>10332,10490,17922,17923,17921,17920,17924,10489,18178,18176,18177,18179,18175,18180,18393,36701=>18394,18392,10682,18562,10753,18563,18691,18690,36763=>6200,8357,36767=>8792,36771=>9190,36774=>9872,36776=>9871,36781=>10491,10579,10683,6201,7415,8793,36788=>17925,10949,36792=>19762,36799=>11686,36802=>6202,36804=>6205,6204,6203,36809=>11685,36811=>12039,36813=>12041,6578,36817=>6580,12038,12040,6579,12043,12042,12044,36832=>12487,12485,6968,12484,6973,6970,6967,36840=>6974,36842=>6969,6972,36845=>6971,12486,36848=>6966,36852=>7421,13011,13017,7418,7425,36858=>7420,13014,13016,7423,13010,13013,7419,7416,13012,7422,13015,7424,7417,36875=>13631,13634,7898,36879=>7908,7904,13632,36884=>7912,7905,7910,7900,36889=>7897,7899,7911,13633,7903,7906,7902,7907,13635,7909,7901,13630,36909=>14300,8358,14302,36913=>8360,8362,36916=>14301,8359,8363,36920=>8361,36924=>8799,14980,8807,14977,36929=>8808,8797,36932=>14978,36935=>8802,36937=>14979,8795,8794,36941=>8805,8804,8803,8801,8806,14976,8796,8798,8800,36952=>9192,9195,36955=>9199,9193,9198,9196,36960=>9191,36962=>9197,9194,36967=>16189,9580,9578,36971=>16190,36973=>9581,9579,16188,16187,36978=>9876,16186,9874,9873,16752,9582,9875,16753,9878,16754,9877,10166,17210,10165,10170,10168,10169,10334,10167,17209,16755,10333,10335,37002=>10492,10493,37005=>18181,37007=>10800,10799,6207,37012=>11482,7426,37015=>11479,11480,11478,37019=>11481,37022=>11690,11687,11692,11688,6208,6211,37029=>11689,6210,11691,37034=>6209,37039=>12047,12049,6583,12045,12048,12046,6581,6584,37048=>6582,37053=>12489,12493,12490,37057=>6977,37059=>6978,37061=>12492,37063=>12494,12496,37066=>6975,12495,37070=>6976,37076=>13642,12491,13018,13027,13025,13020,13021,13026,13028,7428,37087=>13023,13019,7427,7429,13022,13029,13024,37096=>7913,13645,13637,13643,13644,7914,37103=>13636,13638,12488,13640,13641,13639,8365,37113=>14309,16756,14310,14307,7915,8367,14306,14312,14311,8364,14315,14305,14314,14303,14313,14308,8366,37131=>14987,37133=>14982,14988,14983,14981,14984,8809,37140=>14986,37142=>14985,8810,9201,9200,15589,15592,15584,15588,9202,15587,15585,15591,15586,15583,15590,37158=>16196,9585,17594,16193,16194,16192,14304,9584,16197,16191,9583,9586,16195,16757,9879,16758,16759,37176=>17211,10171,17595,17596,37182=>17597,17927,17926,18183,37187=>18182,18396,18397,18395,18564,10754,6212,6980,6979,7432,7431,13031,13032,13030,37202=>7430,13649,37205=>13650,13646,7916,13647,37210=>13648,37215=>14318,14320,14316,14319,8368,14317,8369,37224=>14495,8813,8812,37228=>8811,37230=>14989,14990,37234=>15594,15596,9206,9203,37239=>9205,9204,15595,15593,37248=>16204,16201,16202,9590,16203,16198,16199,9587,37257=>9588,16200,9589,37261=>16763,37263=>16764,16761,16762,9880,16760,37273=>17215,17212,17214,10174,17218,10173,17216,17219,17217,17213,10172,37285=>17599,37287=>17600,17598,37290=>17602,10336,10337,17929,10495,17601,17928,10494,18186,18187,10612,18185,37303=>18184,37305=>18398,10684,37308=>18692,18785,18784,37312=>10836,10862,18786,18889,37317=>10880,6213,6585,37321=>8814,37323=>10613,6214,6981,7917,8370,10338,6586,37331=>12498,12497,13033,19341,7435,7433,7437,13035,37340=>7436,7434,37346=>13034,7920,13656,37350=>7919,7921,13661,7923,13658,13659,13651,7922,13662,37361=>13653,37363=>13654,13652,7918,37367=>13660,13655,13657,37373=>14332,37375=>14331,14329,14321,14336,14324,14334,14341,14333,8378,37385=>8374,14322,37388=>14328,8376,37391=>14327,8377,8379,14330,37396=>8371,8372,14342,14340,37401=>14339,14325,37404=>14337,37406=>8375,37411=>8373,14338,14323,14326,14335,37421=>15631,15000,37424=>14993,15012,15021,14996,8825,37430=>15009,8815,8817,8829,14994,37436=>19463,8818,8820,8830,8819,37445=>8828,15002,37448=>14991,8826,15001,8822,15019,8827,15017,15005,15015,8824,14992,15018,15013,37462=>15020,8816,37466=>8831,8821,37470=>14998,37472=>15006,15010,37475=>15014,8823,14997,14995,15007,37484=>15004,15003,37487=>15008,15011,37490=>15016,37494=>15599,37496=>9207,15609,15601,9212,9216,15618,15626,15611,9208,37506=>15615,14999,37509=>9209,15622,15627,15619,37514=>15621,15630,15623,15605,15614,37521=>9217,37523=>9213,15603,15616,9211,15610,9210,15624,15607,15600,9214,15629,37536=>15602,15620,15617,15612,15598,15597,15606,15625,9215,15628,15604,15608,9595,37554=>9603,9598,16237,16234,16210,9593,37561=>18957,37563=>9592,9599,37568=>16208,9597,16220,16206,16207,9591,16236,9601,16223,16228,16222,16782,16218,16226,16224,16211,16205,16232,9600,16233,37589=>16227,37591=>16216,16214,16209,37595=>18998,37597=>16217,16230,16213,16229,16235,37604=>9596,37606=>16225,16231,16221,16215,9594,37614=>15613,16219,9602,16212,37623=>16788,9883,16787,16784,16803,9887,37630=>16800,16792,16802,16777,16790,37636=>9889,37638=>16769,37640=>16767,16801,37643=>16799,16798,16781,16780,16770,9891,37650=>16776,16786,16797,9894,16804,37656=>10182,9896,9890,16774,37661=>16783,16766,16768,9881,9893,9886,16775,16791,16785,9892,16765,10177,16793,16796,9888,37677=>16779,9895,9885,37683=>9884,16789,16795,9882,37688=>16772,16794,37692=>16773,37696=>19332,19630,37700=>19008,37702=>16778,17225,37705=>17230,10179,10181,17236,10175,17251,17242,17231,17232,17241,37716=>10188,17240,17224,17239,17227,17252,10187,10185,17228,37726=>17247,37728=>17233,17246,19615,17248,17223,10180,37735=>17249,37738=>17237,37740=>10184,17234,37744=>10186,17243,37749=>10178,17229,17244,37753=>17238,16771,17245,17226,37758=>10183,37760=>17250,37762=>10176,17221,37765=>19703,37768=>17616,17609,10340,37772=>17604,17619,17611,17235,37777=>17621,17605,37780=>10339,17615,10341,10349,10347,17617,10348,17607,37789=>17608,17613,17618,37793=>17220,10342,17626,17623,17627,17614,17610,17624,17940,17612,37804=>10345,37806=>10344,17222,10346,17620,17622,10343,17625,17603,37815=>17606,37824=>17949,37826=>17933,10499,17947,37831=>17931,10500,37834=>17942,37836=>17938,10505,17948,17932,17935,10497,17950,19211,17943,17946,10503,10508,10506,17939,17934,37852=>10501,10502,17930,10498,37857=>10496,10504,17945,10507,37862=>17941,17951,10509,37868=>17937,37870=>17944,37872=>19573,19683,37877=>18200,18214,18202,18209,17936,18207,18190,18212,10616,18194,18211,18201,37891=>10615,37894=>18216,18203,37897=>18208,18210,18188,18213,18199,18204,18192,18196,18215,18206,18189,18193,18195,18205,37912=>10614,18198,37915=>19316,37920=>18191,37928=>18197,18402,18407,10691,18409,37934=>10685,37936=>18405,18411,10690,10686,37941=>10687,18401,18408,10689,18406,10688,18400,18404,18403,37951=>18399,18410,37954=>19625,19628,10755,18571,18574,18570,18572,18573,18567,18568,18565,37967=>18569,18566,10756,10757,37973=>18694,37975=>18696,37981=>18695,18697,37984=>10802,37986=>18693,10801,10803,37992=>18788,18789,10837,18787,37997=>18859,18858,18860,10864,18861,10863,18862,18890,18893,18892,10873,18891,38011=>19406,10883,10881,10882,10888,18934,18935,18933,18943,38263=>6587,38266=>13663,14343,16238,17952,38272=>6588,38274=>6982,7438,38278=>13664,38280=>13665,7924,38283=>8382,14345,14344,8386,8381,14346,8383,8385,8384,8380,38296=>8832,38299=>15025,15023,38302=>15024,15022,38305=>9218,38307=>9221,9223,9222,38312=>9219,9220,38315=>16240,16239,9604,16241,38320=>16242,9605,38325=>16812,16810,17258,38329=>16808,16809,9897,16805,16813,16807,16811,17254,38339=>17256,38341=>17257,10193,17253,10192,17255,10189,10190,10191,16806,38352=>10352,17630,17628,17629,10350,10353,10351,38362=>17953,17954,10510,38366=>18217,18219,18218,10617,10692,18414,18413,18412,38428=>6589,38430=>11376,38432=>11485,5944,11483,11486,11484,38440=>11694,38442=>6218,38444=>6219,11696,6216,11695,11693,6217,6215,38457=>12050,12053,6592,12052,12051,38463=>6591,6590,38466=>6594,12054,6593,38474=>12503,6984,6985,6986,12504,12500,6983,12501,38483=>12502,12499,38488=>7445,38491=>7442,13036,7443,7446,13037,38497=>7441,7439,7440,7444,38506=>7925,13668,7933,13667,38511=>13670,7929,13669,8394,7927,7930,7926,7931,7932,7928,38524=>13666,8390,14348,38528=>14352,38531=>14351,8395,8391,8392,14347,14349,14350,8387,8389,38541=>8393,8388,38545=>15028,15026,15027,8834,8835,38551=>15029,8833,9224,38555=>9226,9225,38558=>15632,38561=>15633,16244,38564=>16243,19755,38567=>9898,9899,16814,9900,38572=>17261,38574=>17259,38576=>17260,10194,38579=>17631,10511,38582=>10950,38584=>10195,6595,38587=>7447,13038,38591=>13671,7934,8396,14353,14355,8398,8397,8399,8400,14354,8838,8839,8837,9227,8836,15030,38610=>9228,16245,16815,9901,10196,17632,17636,10356,17633,10357,10355,17637,10358,17635,38625=>17955,10354,10512,38629=>18790,38632=>6596,7936,7935,38639=>8401,14357,14356,8402,38645=>15034,8843,8840,15033,8842,15031,8841,38653=>15032,38655=>15634,9229,38658=>16248,38660=>9606,16246,9607,9608,16247,9609,38667=>16816,38669=>9905,9902,9907,16818,9903,16817,9906,38678=>9904,38680=>17264,17266,38684=>10197,17265,10198,17263,17262,38690=>17639,17638,10359,17640,17960,10514,17959,17956,10513,17957,17958,38702=>18220,18221,10618,38706=>10695,38709=>18415,38712=>10693,10694,18416,38717=>10758,10759,18575,38722=>10838,18792,10840,38726=>18791,18793,10839,18863,38731=>18915,38738=>6597,38742=>8844,38744=>15635,38746=>16249,9908,9909,38750=>6598,38752=>9610,10515,6987,38758=>9910,38760=>10804,6988,13672,38764=>14358,38766=>14360,38768=>14359,38770=>15038,15035,8845,38774=>8846,15036,15037,38778=>15637,15642,9230,15636,15638,15645,15640,15644,15641,15639,15643,9231,38791=>19178,16252,38794=>16250,9612,38797=>9611,16251,9613,38804=>16821,38807=>16820,9911,16819,17267,38812=>17269,17271,17270,38816=>10199,17268,17647,10360,17645,17648,10361,38824=>17643,38826=>17646,17644,17641,10362,17642,38835=>17961,38838=>17963,17962,38841=>18222,38843=>18223,38845=>19329,38847=>18417,38849=>10761,38851=>10760,18698,18699,10841,18794,38857=>10874,38859=>6989,8403,15647,15646,16254,16253,38867=>10200,17273,17272,17651,17649,17652,17650,38876=>10516,17964,17965,17966,38881=>18418,38883=>18576,38885=>18795,38893=>6990,38896=>16822,17274,38899=>6991,38902=>9232,38904=>16823,10363,17653,10517,38909=>18224,18225,10696,18700,6992,7939,7940,13673,8404,8405,14361,8406,38922=>8850,38924=>8852,15040,15041,15039,8847,8848,8851,8849,19401,38934=>15648,9233,9234,38939=>16261,9616,16256,16255,38944=>16260,9614,38948=>9918,38950=>16257,16262,16259,16258,38955=>9615,38957=>9916,38959=>16825,9912,38962=>16826,38965=>16824,38967=>9915,9913,9917,38971=>9914,38977=>17275,38979=>17280,17276,17279,10201,38984=>17070,17278,17277,38988=>10366,10364,10367,10365,17654,17655,17656,10368,38999=>17970,10519,17968,39003=>10520,17967,17969,10518,18229,18226,39010=>18227,18228,18419,10698,39015=>10697,39017=>18578,18577,10762,19039,39023=>10805,10842,10865,18864,18916,18917,39080=>6993,14362,39084=>15042,15649,15650,9235,39089=>9236,16263,9617,39094=>10202,39096=>17657,39098=>10369,17973,10521,17972,17974,17971,18422,18230,18231,39108=>10619,39110=>18421,39113=>18420,39115=>18579,18918,39131=>6994,39135=>6995,39138=>7448,13039,39141=>13674,39143=>8407,39145=>8410,8408,14363,39149=>8412,39151=>8409,39154=>8411,39156=>8854,39158=>15043,39161=>15044,16265,39164=>8853,8855,8856,39168=>15652,39170=>15651,9237,39173=>9238,39175=>15653,16264,9240,9618,39180=>9239,39184=>9919,16266,9620,9619,16267,16270,16268,16269,9621,39194=>9924,9922,39198=>9921,16828,39201=>9923,39204=>16827,17281,39207=>16829,9920,16830,17284,17282,17283,17288,10373,17287,17290,17289,17286,17285,39221=>10203,39226=>17660,39228=>17659,10372,10370,10371,39233=>17658,39235=>17977,39237=>10522,39239=>17976,17975,10523,39243=>18236,18235,39246=>18233,39248=>18232,10621,10620,18237,18580,10763,18424,10699,18423,18234,39259=>18581,10806,39262=>10866,18865,39265=>18919,39318=>6996,13675,17291,6997,39324=>15655,15654,16831,39329=>17293,39331=>17292,19447,10374,17978,17979,10622,39339=>18920,7449,8414,8413,15045,15047,8858,15046,8857,8859,15048,39353=>15657,15659,15658,39357=>15661,39361=>9241,15660,15656,39367=>15662,39369=>16277,39371=>16280,16282,16272,16276,16273,9623,9626,9628,16274,16275,9627,16278,16281,16279,9629,39387=>9625,16271,9622,39391=>9624,39394=>9926,16837,16835,16834,39399=>16840,39401=>16839,16838,39404=>16833,9925,16832,39408=>16836,9927,39412=>17296,39414=>17300,17297,17299,17298,17295,17301,17304,17302,17303,10205,39425=>10204,17294,17305,17665,17668,17670,17669,39433=>17663,17667,17662,39437=>17664,10375,17661,39441=>17666,39444=>17992,17981,10524,39449=>10525,17980,17985,17991,17983,17990,39456=>17987,39458=>17986,17989,17984,17982,39463=>17988,39465=>18244,18242,10623,18241,18247,18245,39472=>10624,18240,18238,39476=>18239,10626,18243,10625,18246,18425,18431,39485=>18426,10703,18432,10702,18430,18429,10701,18428,10700,18427,39496=>18587,18589,18588,39500=>18585,10765,18582,18586,18591,39506=>18590,18583,18584,10764,18701,10809,39513=>18702,10807,10808,39518=>18796,10843,18894,39522=>10875,39524=>18921,10876,18922,18923,18937,18936,10891,18947,39592=>7450,39595=>15050,39597=>15049,39599=>9242,9243,15663,39603=>16283,16843,39607=>9630,9928,16841,39611=>16844,9929,39614=>17306,16842,17671,10376,17993,39622=>18250,18248,39626=>18249,39629=>18433,39631=>10704,18592,10812,10766,10810,10811,18797,10867,39640=>7451,39644=>17672,39647=>13040,39649=>8860,39651=>15664,39654=>9244,15665,39659=>16285,16284,9931,9631,9632,39665=>16288,16287,16286,39670=>16845,16848,39673=>16847,16846,9930,17310,17308,17307,39681=>17309,39683=>10377,17674,17675,10378,39688=>17673,39690=>17995,17994,17997,10526,17996,39696=>18251,18253,18252,39701=>18434,18437,18435,18436,18593,10767,39710=>18703,18704,18705,39714=>10844,10868,18924,7452,39719=>9633,9932,17676,39723=>18594,39726=>18938,13041,39729=>10892,7453,16849,39733=>17677,39735=>17998,39738=>18438,18595,7454,39742=>15666,15667,39745=>9245,9246,16290,9635,9634,16289,39752=>17311,39754=>17678,17680,17679,10381,10380,10379,39761=>10706,18439,39764=>10705,18597,18596,39768=>10845,18798,7941,15051,39775=>15670,15668,15669,39780=>16299,39782=>16294,16291,16298,39788=>16300,39791=>9637,16297,16293,39796=>16292,16296,16295,9636,39802=>16860,16855,16853,16862,16854,39808=>16850,39810=>16856,19535,39813=>16851,17320,16852,16863,39824=>16859,9933,16858,16857,39829=>16861,39834=>17312,17315,39838=>17314,39840=>17322,17317,17321,39844=>17319,17318,17316,39848=>17313,39850=>10208,10207,39853=>10209,10206,17323,39861=>17686,17689,39864=>17687,17691,39869=>17692,39871=>17684,10386,17685,39875=>17683,17690,39878=>17682,17681,10385,10383,10382,39891=>17688,18007,18013,10529,18008,39897=>18011,18015,10530,18010,39902=>18002,39904=>18001,18014,18005,39908=>18003,18012,18004,10528,10527,39914=>17999,18000,18009,39920=>18006,39927=>18256,18259,39933=>10384,39941=>18257,18263,18261,18255,18266,39947=>18254,39949=>10628,18262,39954=>18258,10627,18265,39959=>18264,39964=>18442,18441,39969=>18448,39971=>18444,18447,10708,39976=>18445,18446,39979=>18440,18443,10707,39985=>10769,18608,18603,18607,39990=>18610,18606,39993=>18602,39995=>10771,18605,18609,10770,18600,18260,18604,40004=>18601,40006=>18598,40008=>18599,10768,18709,18711,18714,18710,18715,40016=>18708,40018=>18706,40020=>10813,18712,10815,10814,18707,18713,40030=>18803,10846,18804,40034=>18802,18799,40038=>18801,18800,18866,40045=>18868,18867,40049=>18897,40051=>18896,18895,18898,40055=>10884,10885,18944,18948,40165=>7942,14364,15054,40169=>8861,15052,40173=>15053,40177=>15671,15672,9249,9247,15673,9248,16305,40185=>16308,16302,16309,16301,16303,40191=>16304,16307,40195=>9640,16312,16311,9638,16306,16310,9639,40208=>16873,40210=>9938,40212=>16868,9934,40215=>16865,16871,16874,40219=>9939,40221=>16870,16867,16875,16866,40226=>16872,9935,40229=>16864,9936,40232=>9937,16869,40237=>17341,17328,17329,17332,17330,40243=>17324,19060,40246=>17327,17337,17331,40251=>10210,40253=>17339,17336,10211,17338,17325,17334,17335,40261=>17333,40266=>17696,17698,17701,40271=>17695,40273=>10387,17703,17694,17704,40278=>17700,17702,17706,17699,17707,17697,17693,10388,40287=>17705,10389,10532,40295=>17326,18041,18032,10534,18028,10535,40303=>18037,18031,18021,10533,18034,18029,18030,40311=>18016,18023,18038,40315=>18035,40317=>18027,40319=>18039,18022,18017,18036,40324=>18019,18033,18024,18040,18020,10531,18018,18025,18026,40336=>18273,40338=>18271,40340=>18276,40342=>18288,18279,18272,18268,18281,18274,18277,18270,18284,18267,18275,18280,18282,18285,18269,40358=>18289,18290,18283,18287,18278,40364=>18464,18467,40367=>10709,40369=>18466,18471,18469,10710,18460,18450,18449,10712,18462,18463,18459,18451,40382=>18456,18286,40385=>18452,10711,18458,40389=>18457,40391=>18453,18465,40394=>18454,18615,18468,18470,18461,18455,18616,18618,18612,10772,40405=>18625,18623,10773,18622,18621,18614,18611,18617,18626,18613,18619,40417=>18724,18729,18719,18722,10816,18726,40424=>18733,18620,40427=>18720,18730,18734,18725,18718,18728,40434=>18727,18732,18731,18624,18723,18717,18721,10847,10848,18716,40445=>18815,18806,18814,18811,18812,18805,18808,18816,18810,18809,18807,40457=>18813,40459=>18869,40461=>18870,40463=>18872,18871,18874,18873,18900,18899,18925,40471=>18926,40473=>18939,10889,10893,40477=>18949,10894,40565=>7943,40569=>10629,18472,40572=>10849,10850,40575=>7944,15055,40578=>8862,16313,40582=>16877,16878,16876,17343,17342,10212,17709,17344,17708,40593=>18043,10536,10538,18042,40599=>10537,40601=>18291,18293,18292,18473,10713,40607=>10817,18817,18875,40612=>18952,7945,40615=>15674,40617=>9641,40621=>16880,16879,40624=>17345,40628=>10539,10630,18627,18945,40635=>7946,9250,40638=>9642,40640=>18044,40642=>18735,8415,40648=>17346,40652=>10869,8416,9643,10213,18736,8417,40659=>16314,9941,16881,16882,40664=>9940,40666=>17347,10217,10215,10216,10214,17710,10390,40676=>18295,18294,18297,18296,10631,40683=>18474,40685=>18476,18475,10714,18628,40690=>18737,18738,10818,18876,18901,10886,40697=>14365,16883,17348,18045,15056,40703=>17349,17712,17711,40710=>18739,10851,40713=>18877,18902,40718=>8863,16315,16316,40722=>16884,8864,40725=>10391,17713,40728=>18478,10715,18479,18477,18740,40734=>18818,40736=>8865,40738=>17352,17351,17350,17714,40744=>17718,17717,17716,17715,10392,18046,18299,10632,18298,18480,18631,18630,10774,18629,18743,18742,18741,40763=>9251,40765=>16885,10218,40768=>18047,18048,18632,18744,40774=>18819,18878,18927,18954,9252,10219,17719,18049,18481,18745,40786=>9645,40788=>17353,17720,18050,18051,18052,18304,40795=>18300,10716,18303,18302,10633,18301,10635,40803=>10634,18483,18482,10717,10718,40810=>10776,18633,10775,40814=>18748,18749,18747,18746,10853,40820=>18820,18821,18822,10852,18879,18882,18881,18880,40830=>18953,40845=>9942,40848=>10399,18305,18484,40852=>10777,18634,40856=>18955,40860=>9943,40864=>17354,40866=>18635,40868=>18903,40880=>11210,11212,64012=>11314,14598,65072=>5034,5047,65075=>5049,5051,5055,5056,5059,5060,5063,5064,5067,5068,5071,5072,5075,5076,5079,5080,5083,5084,65097=>5124,5125,5128,5129,5126,5127,5052,5037,5038,5039,65108=>5041,5042,5043,5044,65113=>5085,5086,5087,5088,5089,5090,5130,5131,5132,5148,5149,5150,5151,5152,65128=>5183,5193,5194,5195,65281=>5033,11257,5099,5184,5189,5100,11256,5053,5054,5101,5133,5025,5134,5028,5180,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5031,5030,5139,5141,5140,5032,5190,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,10963,5181,10964,65343=>5122,65345=>5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5057,5045,5058,5153,65504=>5187,5188,11254,5121,11255,5185,65517=>18996,131210=>11207,131276=>11205,131352=>19386,131521=>19318,131588=>19259,131742=>19342,131744=>19017,131813=>19049,131911=>19032,131966=>19029,131968=>19031,132021=>19510,132041=>19488,132127=>19034,132231=>19043,132423=>18997,132494=>19051,132517=>19264,132531=>19056,132547=>19670,132575=>18999,132694=>19370,133411=>19503,133460=>19093,134031=>19132,134114=>19097,134143=>19047,134202=>19653,134263=>19137,134355=>19302,134450=>19534,134477=>19153,19223,134516=>19145,134773=>19435,134877=>19151,135348=>19168,135740=>19205,135759=>19185,135941=>19019,135994=>19322,136054=>19749,136078=>19396,136214=>19194,136276=>19196,136343=>19570,136598=>19113,136723=>19114,136766=>19217,136850=>19220,136888=>19250,136897=>19746,136917=>19233,136935=>19658,19105,136973=>19150,136998=>19099,137072=>19388,19307,137138=>19229,137180=>19226,137211=>19228,19397,137256=>19232,19423,137335=>19346,137374=>19693,137431=>19163,137489=>19248,137560=>19511,137603=>19053,137608=>19695,137691=>19009,137780=>19262,137803=>19700,138052=>19269,138405=>19273,138745=>19281,138780=>19735,138807=>19282,138813=>19440,138916=>19286,139114=>19338,139337=>19292,139516=>19048,139562=>19493,139635=>19293,140240=>19325,140401=>19327,140427=>19519,140433=>19537,140525=>19021,140563=>19027,140592=>19050,140628=>19246,140828=>19766,140904=>19340,140952=>19155,141236=>19351,141261=>19507,141407=>19374,141485=>19673,141505=>19381,141559=>19446,141696=>19380,142755=>19135,142861=>19390,142902=>19400,143428=>19639,143435=>19564,143486=>19417,143780=>19432,19433,143816=>19443,143863=>19429,19430,19536,143921=>19441,143923=>19052,144010=>19171,144044=>19742,144308=>19045,144358=>19465,144384=>19427,144495=>19468,144845=>19474,144896=>19025,144956=>19479,144985=>19492,145155=>19495,145197=>19073,145346=>19453,146139=>19509,146266=>19514,146585=>19057,146632=>19011,19531,146876=>19525,19527,146991=>19558,19568,147196=>19516,147328=>19092,147330=>19560,147380=>19587,147383=>19373,147397=>19000,147435=>19134,19094,147440=>19586,147513=>19585,19164,147517=>19571,147589=>19548,147596=>19402,147601=>19583,147775=>19588,19592,147780=>19581,147797=>19584,19590,19591,147807=>19688,147876=>19528,19187,147917=>19457,147938=>19657,148087=>19606,19210,148161=>19616,148323=>19197,148325=>19613,148380=>19449,148533=>19166,148570=>19618,148668=>19301,149539=>19645,149745=>19520,149760=>19530,19291,149772=>19529,149811=>19015,149824=>19419,149826=>19006,149876=>19634,149887=>19547,149890=>19357,149901=>19663,149903=>19358,149924=>19042,149929=>19239,149943=>19662,149983=>19392,150011=>19664,150034=>19750,150049=>19450,19620,19413,19659,150054=>19668,19619,19412,150137=>19689,150156=>19687,150182=>19066,150193=>19026,150517=>19199,150803=>19710,151426=>19708,151709=>19733,151933=>19734,152038=>19437,152096=>19740,152144=>19337,152339=>19444,153056=>19757,153093=>19631,153373=>19403,153458=>19122,153687=>19771,154060=>19263,155779=>19765,156125=>19593,156661=>19721,157832=>19324,157966=>19726,157969=>19725,158254=>19654,158483=>19087,158504=>19274,158545=>19521,158547=>19144,158643=>19018,158846=>19192,158849=>19224,159013=>19540,159017=>19023,19225,159136=>19466,19541,159142=>19230,159211=>19542,159301=>19235,159342=>19330,159346=>19549,159442=>19367,159604=>19551,159647=>19731,159649=>19245,159992=>19339,160038=>19777,161287=>11213,161292=>19761,162318=>19256,162387=>19359,162436=>19024,162617=>19773,164994=>19310,165364=>19442,165547=>19110,165892=>19648,165931=>19646,166244=>19744,166248=>19745,166314=>19016,166332=>19154,166372=>19007,166441=>19343,166454=>19333,166474=>19483,166555=>19117,166622=>19089,19471,166689=>19556,166699=>19764,166758=>19183,166799=>19690,166813=>19376,166888=>19622,166915=>19692,167596=>19702,167602=>19675,167641=>19699,168173=>19458,168205=>19780,168304=>19578,168348=>19500,170333=>19377,172368=>19209,194708=>19319,194726=>19366]; protected $dirtyEOF = 0; protected $bufferedCode = 0; @@ -45,7 +46,7 @@ class Big5 implements StatelessEncoding { if ($lead == 0) { if ($b < 0x80) { return $b; - } elseif ($b == 0xFF) { + } elseif ($b == 0x80 || $b == 0xFF) { return self::err($this->errMode, [$this->posChar -1, $this->posByte - 1]); } else { $lead = $b; @@ -100,7 +101,7 @@ class Big5 implements StatelessEncoding { } elseif ($codePoint < 128) { return chr($codePoint); } else { - $pointer = array_flip(self::TABLE_CODES)[$codePoint] ?? null; + $pointer = self::TABLE_ENC[$codePoint] ?? null; if (isset($pointer)) { $lead = (int) ($pointer / 157) + 0x81; $trail = $pointer % 157; @@ -120,7 +121,7 @@ class Big5 implements StatelessEncoding { $distance--; $this->posChar--; } - while ($distance > 0 && $this->posByte > 0) { + while ($distance > 0 && ($this->posByte > 0 || $this->bufferedCode > 0)) { $distance--; $this->posChar--; if ($this->bufferedCode > 0) { // we're in the middle of a special double-character sequence @@ -130,13 +131,13 @@ class Big5 implements StatelessEncoding { } // go back one byte $b1 = ord(@$this->string[--$this->posByte]); - if ($b1 < 0x40 || $b1 == 0x7F || $b1 == 0xFF || $this->posByte == 0) { // these bytes never appear in sequences, and the first byte is necessarily the start of a sequence + if ($b1 < 0x40 || $b1 == 0x7F || $this->posByte == 0) { // these bytes never appear in sequences, and the first byte is necessarily the start of a sequence // the byte is a character continue; } // go back a second byte $b2 = ord(@$this->string[--$this->posByte]); - if ($b2 < 0x87) { // these bytes never appear in the lead of a sequence + if ($b2 < 0x81 || $b2 == 0xFF) { // these bytes never appear in the lead of a sequence // the first byte was a character $this->posByte += 1; continue; @@ -146,11 +147,11 @@ class Big5 implements StatelessEncoding { $b = $b2; // go back bytes until a definite trail byte or start of string while ($pos > 0) { + $b = ord(@$this->string[--$pos]); if ($b < 0x87 || $b == 0xFF) { $pos++; break; } - $b = ord(@$this->string[--$pos]); } if (($start - $pos) % 2) { // the number of bytes is odd // the first byte was a character @@ -160,12 +161,12 @@ class Big5 implements StatelessEncoding { // we have to consume the sequence to ascertain whether it is one character (valid) or two (invalid or special) $this->posChar--; $this->nextCode(); - if ($this->bufferedCode || $this->posByte < $start) { // two characters + if ($this->posByte < $start) { // two characters // nothing more to do; byte position is already correct continue; } else { // one character // go back two bytes - $this->posByte -+ 2; + $this->posByte -= 2; continue; } } diff --git a/lib/Encoding/GenericEncoding.php b/lib/Encoding/GenericEncoding.php index b78d355..1a31de7 100644 --- a/lib/Encoding/GenericEncoding.php +++ b/lib/Encoding/GenericEncoding.php @@ -81,7 +81,7 @@ trait GenericEncoding { return $distance; } elseif ($distance < 0) { $distance = abs($distance); - if (!$this->posByte) { + if (!$this->posChar) { return $distance; } $mode = $this->errMode; diff --git a/tests/cases/Encoding/TestBig5.php b/tests/cases/Encoding/TestBig5.php index 3652391..6f8cf4e 100644 --- a/tests/cases/Encoding/TestBig5.php +++ b/tests/cases/Encoding/TestBig5.php @@ -12,12 +12,21 @@ use MensBeam\Intl\Encoding\EncoderException; class TestBig5 extends \MensBeam\Intl\Test\CoderDecoderTest { protected $testedClass = Big5::class; - protected $seekString = ""; - protected $seekCodes = []; - protected $seekOffsets = []; + /* + Char 0 U+007A (1 byte) Offset 0 + Char 1 U+86CC (2 bytes) Offset 1 + Char 2 U+6C34 (2 bytes) Offset 3 + Char 3 U+00CA (0 bytes) Offset 5 + Char 4 U+0304 (2 bytes) Offset 5 + Char 5 U+00EA (0 bytes) Offset 7 + Char 6 U+030C (2 bytes) Offset 7 + End of string at char 7, offset 9 + */ + protected $seekString = "7A D7AA A4F4 8862 88A5"; + protected $seekCodes = [0x7A, 0x86CC, 0x6C34, 0xCA, 0x304, 0xEA, 0x30C]; + protected $seekOffsets = [0, 1, 3, 5, 5, 7, 7, 9]; /* This string contains an invalid character sequence sandwiched between two null characters */ protected $brokenChar = "00 FF 00"; - protected $lowerA = "a"; /** * @dataProvider provideCodePoints @@ -118,21 +127,38 @@ class TestBig5 extends \MensBeam\Intl\Test\CoderDecoderTest { } public function provideCodePoints() { - return []; - $series = [ + return [ + 'U+0064 (HTML)' => [false, 0x64, "64"], + 'U+0064 (fatal)' => [true, 0x64, "64"], + 'U+00CA (HTML)' => [false, 0xCA, bin2hex("Ê")], + 'U+00CA (fatal)' => [true, 0xCA, new EncoderException("", Encoding::E_UNAVAILABLE_CODE_POINT)], + 'U+3007 (HTML)' => [false, 0x3007, "C6 E2"], + 'U+3007 (fatal)' => [true, 0x3007, "C6 E2"], + '-1 (HTML)' => [false, -1, new EncoderException("", Encoding::E_INVALID_CODE_POINT)], + '-1 (fatal)' => [true, -1, new EncoderException("", Encoding::E_INVALID_CODE_POINT)], + '0x110000 (HTML)' => [false, 0x110000, new EncoderException("", Encoding::E_INVALID_CODE_POINT)], + '0x110000 (fatal)' => [true, 0x110000, new EncoderException("", Encoding::E_INVALID_CODE_POINT)], ]; - foreach ($series as $name => $test) { - yield "$name (fatal)" => array_merge([true], $test); - yield "$name (HTML)" => array_merge([false], $test); - } } public function provideStrings() { - return []; return [ - // control samples 'empty string' => ["", []], - 'sanity check' => ["61 62 63 31 32 33", [97, 98, 99, 49, 50, 51]], + 'sanity check' => ["40", [64]], + 'two-byte character' => ["D7 D7", [36290]], + 'EOF after first byte' => ["D7", [65533]], + 'low byte after first byte' => ["D7 39", [65533, 57]], + '0x80 as first byte' => ["80 D7", [65533, 65533]], + '0xFF as first byte' => ["FF D7", [65533, 65533]], + 'invalid high byte as first byte' => ["81 D7", [65533]], + '0x7F after first byte' => ["D7 7F", [65533, 127]], + '0xFF after first byte' => ["D7 FF", [65533]], + 'invalid high byte after first byte' => ["D7 81", [65533]], + 'double-characters low' => ["88 62 88 64", [202, 772, 202, 780]], + 'double-characters high' => ["88 A3 88 A5", [234, 772, 234, 780]], + 'mixed string' => ["7A D7 AA A4 F4 88 62 88 A5", [122, 34508, 27700, 202, 772, 234, 780]], + 'mixed string 2' => ["62 D7 D7 D7 D7 62", [98, 36290, 36290, 98]], + 'broken string' => ["00 FF 00", [0, 65533, 0]], ]; } diff --git a/tests/lib/DecoderTest.php b/tests/lib/DecoderTest.php index 4e43d8e..ae89559 100644 --- a/tests/lib/DecoderTest.php +++ b/tests/lib/DecoderTest.php @@ -47,9 +47,14 @@ abstract class DecoderTest extends \PHPUnit\Framework\TestCase { $s = new $class($input); $exp = array_reverse($exp); $act = []; - while ($s->nextCode() !== false); - while ($s->posByte()) { - $s->seek(-1); + $pos = 0; + while ($s->nextCode() !== false) { + $this->assertSame(++$pos, $s->posChar()); + } + $this->assertSame(sizeof($exp), $pos); + while ($s->posChar()) { + $this->assertSame(0, $s->seek(-1)); + $this->assertSame(--$pos, $s->posChar()); $act[] = $s->nextCode(); $s->seek(-1); } @@ -245,7 +250,8 @@ abstract class DecoderTest extends \PHPUnit\Framework\TestCase { } $this->assertSame(2, $s->posChar()); $this->assertSame(0x00, $s->nextCode()); - $s->seek(-2); + $this->assertSame(3, $s->posChar()); + $this->assertSame(0, $s->seek(-2)); $this->assertSame(1, $s->posChar()); try { $p = $s->peekCode(); diff --git a/tools/mkindex.php b/tools/mkindex.php index ff8de75..1643632 100644 --- a/tools/mkindex.php +++ b/tools/mkindex.php @@ -88,8 +88,41 @@ function big5(string $label) { 1166 => [0x00EA, 0x030C], ] ARRAY_LITERAL; + // compile an encoder table + // see https://encoding.spec.whatwg.org/#index-big5-pointer for particulars + // first get the decoder table as an array + $table = eval("return $codes;"); + // filter out the low end of the table containing Hong Kong Supplement characters, which are not used during encoding + $table = array_filter($table, function($key) { + return (!($key < ((0xA1 - 0x81) * 157))); + }, \ARRAY_FILTER_USE_KEY); + // search for each unique code point's pointer in the table, the first for some, the last for a specific set + $enc = []; + $a = 0; + $points = array_unique($table); + sort($points); + foreach ($points as $point) { + // find the correct pointer + if (in_array($point, [0x2550, 0x255E, 0x256A, 0x5341, 0x5345])) { + $pointer = array_search($point, array_reverse($table, true)); + } else { + $pointer = array_search($point, $table); + } + // step the output array's key + if ($a == $point) { + $key = ""; + } else { + $a = $point; + $key = "$point=>"; + } + $a++; + $enc[] = "$key$pointer"; + } + // compose the encoder table literal + $enc = "[".implode(",", $enc)."]"; echo "const TABLE_CODES = $codes;\n"; echo "const TABLE_DOUBLES = $specials;\n"; + echo "const TABLE_ENC = $enc;\n"; } function euckr(string $label) { @@ -143,7 +176,7 @@ function make_decoder_char_array(array $entries): string { return "[".implode(",", $out)."]"; } -// this is only used for single-byte encoders; other encoders instead flip their decoder arrays +// this is only used for single-byte encoders; other encoders instead flip their decoder arrays or use custom tables function make_encoder_array(array $entries): string { $out = []; foreach ($entries as $match) { diff --git a/tools/test-big5.html b/tools/test-big5.html index 59d8869..8918d9a 100644 --- a/tools/test-big5.html +++ b/tools/test-big5.html @@ -5,10 +5,50 @@ var sampleStrings = { 'empty string': "", // valid single characters 'sanity check': "40", + 'two-byte character': "D7 D7", + // invalid sequences + 'EOF after first byte': "D7", + 'low byte after first byte': "D7 39", + '0x80 as first byte': "80 D7", + '0xFF as first byte': "FF D7", + 'invalid high byte as first byte': "81 D7", + '0x7F after first byte': "D7 7F", + '0xFF after first byte': "D7 FF", + 'invalid high byte after first byte': "D7 81", + 'non-character': "88 66", + // double sequences + 'double-characters low': "88 62 88 64", + 'double-characters high': "88 A3 88 A5", + // mixed string + 'mixed string': "7A D7 AA A4 F4 88 62 88 A5", + 'mixed string 2': "62 D7 D7 D7 D7 62", }; var sampleCharacters = { + 'U+0064': 0x64, + 'U+00CA': 0xCA, + 'U+3007': 0x3007, + '-1': -1, + '0x110000': 0x110000, }; var seekCodePoints = [ +/* + Char 0 U+007A (1 byte) Offset 0 + Char 1 U+86CC (2 bytes) Offset 1 + Char 2 U+6C34 (2 bytes) Offset 3 + Char 3 U+00CA (0 bytes) Offset 5 + Char 4 U+0304 (2 bytes) Offset 5 + Char 5 U+00EA (0 bytes) Offset 7 + Char 6 U+030C (2 bytes) Offset 7 + End of string at char 7, offset 9 +*/ + 0x007A, + 0x86CC, + 0x6C34, + // these four should be replaced with bytes 8862 88A5, which together produce four characters + 0x00CA, + 0x0304, + 0x00EA, + 0x030C, ];