From d8380a8e6489c6e8587fbc4961a1ea0ea6491989 Mon Sep 17 00:00:00 2001 From: Patrick McDonagh Date: Wed, 8 Aug 2018 09:39:52 -0500 Subject: [PATCH] adds testing folder --- testing/POC-to-ModbusTCP | 1 + testing/Pycomm-Helper | 1 + testing/coils.csv | 1 + testing/db_coils.csv | 19 ++ testing/db_discrete_inputs.csv | 2 + testing/db_holding_registers.csv | 91 +++++++ testing/db_input_registers.csv | 131 ++++++++++ testing/digital_inputs.csv | 1 + testing/dump/tag_data/tag_vals.bson | Bin 0 -> 194066 bytes testing/dump/tag_data/tag_vals.metadata.json | 1 + testing/holding_registers.csv | 1 + testing/input_registers.csv | 1 + testing/test.py | 241 +++++++++++++++++++ 13 files changed, 491 insertions(+) create mode 160000 testing/POC-to-ModbusTCP create mode 160000 testing/Pycomm-Helper create mode 100644 testing/coils.csv create mode 100644 testing/db_coils.csv create mode 100644 testing/db_discrete_inputs.csv create mode 100644 testing/db_holding_registers.csv create mode 100644 testing/db_input_registers.csv create mode 100644 testing/digital_inputs.csv create mode 100644 testing/dump/tag_data/tag_vals.bson create mode 100644 testing/dump/tag_data/tag_vals.metadata.json create mode 100644 testing/holding_registers.csv create mode 100644 testing/input_registers.csv create mode 100644 testing/test.py diff --git a/testing/POC-to-ModbusTCP b/testing/POC-to-ModbusTCP new file mode 160000 index 0000000..ddff98d --- /dev/null +++ b/testing/POC-to-ModbusTCP @@ -0,0 +1 @@ +Subproject commit ddff98d97919610fd270d9f10efb8b8d2d33dfb0 diff --git a/testing/Pycomm-Helper b/testing/Pycomm-Helper new file mode 160000 index 0000000..d39467c --- /dev/null +++ b/testing/Pycomm-Helper @@ -0,0 +1 @@ +Subproject commit d39467c9c424daa456db5f15927ed7ad42c67401 diff --git a/testing/coils.csv b/testing/coils.csv new file mode 100644 index 0000000..8f21186 --- /dev/null +++ b/testing/coils.csv @@ -0,0 +1 @@ +1,False2,False3,False4,False5,False6,False7,False8,False9,False10,True11,True12,False13,True14,False15,True16,False17,False18,False \ No newline at end of file diff --git a/testing/db_coils.csv b/testing/db_coils.csv new file mode 100644 index 0000000..aeeb711 --- /dev/null +++ b/testing/db_coils.csv @@ -0,0 +1,19 @@ +1,_TOC_ACCEPTED,0,False +2,Autotune_Next_Start,0,False +3,Gas_Interference_Override_Enabled,0,False +4,Gauge_Off_Manual,0,False +5,Initialize,0,False +6,Input_Analog_1.Enabled,0,False +7,Input_Analog_2.Enabled,0,False +8,Input_Analog_3.Enabled,0,False +9,Input_Inclinometer_Calibrate,0,False +10,Input_Inclinometer.Enabled,1,True +11,Input_LoadCell.Enabled,1,True +12,Min_Fluid_Load_Shutdown_Enabled,0,False +13,Restart_After_Fault_Allowed,1,True +14,Update_Tapers,0,False +15,USE_WIRELESS_LOADCELL,1,True +16,Write_Mode_Data,0,False +17,Write_Setup_Data,0,False +18,Pump.Start,0,False +19,Pump.Stop,0,False diff --git a/testing/db_discrete_inputs.csv b/testing/db_discrete_inputs.csv new file mode 100644 index 0000000..8e085da --- /dev/null +++ b/testing/db_discrete_inputs.csv @@ -0,0 +1,2 @@ +1,Inclinometer_Calibrating,0,False +2,Inclinometer_Stale,0,False diff --git a/testing/db_holding_registers.csv b/testing/db_holding_registers.csv new file mode 100644 index 0000000..233dde8 --- /dev/null +++ b/testing/db_holding_registers.csv @@ -0,0 +1,91 @@ +1,_dt,0.10000000149,0.10000000149,52429,15820 +3,Casing_ID,4.89200019836,4.89200019836,35652,16540 +5,Drive_Start_Speed,900.0,900.0,0,17505 +7,Electricity_Cost,0.0799999982119,0.0799999982119,55050,15779 +9,Estimated_Tubing_Movement,6.17285728455,6.17285728455,34828,16581 +11,Fluid_Gradient,0.434196382761,0.434196382761,20221,16094 +13,Friction,-80.1068344116,-80.1068344116,14003,49824 +15,Gauge_Off_Time.Hour,7,7,7 +16,Gauge_Off_Time.Min,30,30,30 +17,Input_Analog_1_AIN.Cfg_PVEUMax,180.0,180.0,0,17204 +19,Input_Analog_1_AIN.Cfg_PVEUMin,0.0,0.0,0,0 +21,Input_Analog_2_AIN.Cfg_PVEUMax,100.0,100.0,0,17096 +23,Input_Analog_2_AIN.Cfg_PVEUMin,0.0,0.0,0,0 +25,Input_Analog_3_AIN.Cfg_PVEUMax,100.0,100.0,0,17096 +27,Input_Analog_3_AIN.Cfg_PVEUMin,0.0,0.0,0,0 +29,Input_Inclinometer_AIN.Cfg_PVEUMax,103.5,103.5,0,17103 +31,Input_Inclinometer_AIN.Cfg_PVEUMin,-1.5,-1.5,0,49088 +33,Input_LoadCell_AIN.Cfg_PVEUMax,50000.0,50000.0,20480,18243 +35,Input_LoadCell_AIN.Cfg_PVEUMin,0.0,0.0,0,0 +37,K_Factor,0.0,0.0,0,0 +39,Min_Fluid_Load_Shutdown_Setpoint,40.0,40.0,0,16928 +41,Input_Analog_1.Channel,0,0,0 +42,Input_Analog_1.Type,6,6,6 +43,Input_Analog_2.Channel,2,2,2 +44,Input_Analog_2.Type,0,0,0 +45,Input_Analog_3.Channel,3,3,3 +46,Input_Analog_3.Type,0,0,0 +47,Input_Inclinometer.Channel,1,1,1 +48,Input_Inclinometer.Type,1,1,1 +49,Input_LoadCell.Channel,0,0,0 +50,Input_LoadCell.Type,6,6,6 +51,Taper.Taper[1].Setup.Length,4735.0,4735.0,63488,17811 +53,Taper.Taper[1].Setup.Diameter,1.22500002384,1.22500002384,52429,16284 +55,Taper.Taper[1].Setup.Material,2,2,2 +56,Taper.Taper[2].Setup.Length,3575.0,3575.0,28672,17759 +58,Taper.Taper[2].Setup.Diameter,1.0,1.0,0,16256 +60,Taper.Taper[2].Setup.Material,1,1,1 +61,Taper.Taper[3].Setup.Length,125.0,125.0,0,17146 +63,Taper.Taper[3].Setup.Diameter,1.5,1.5,0,16320 +65,Taper.Taper[3].Setup.Material,1,1,1 +66,Taper.Taper[4].Setup.Length,0.0,0.0,0,0 +68,Taper.Taper[4].Setup.Diameter,1.5,1.5,0,16320 +70,Taper.Taper[4].Setup.Material,1,1,1 +71,Taper.Taper[5].Setup.Length,0.0,0.0,0,0 +73,Taper.Taper[5].Setup.Diameter,1.5,1.5,0,16320 +75,Taper.Taper[5].Setup.Material,1,1,1 +76,Taper.Taper[6].Setup.Length,0.0,0.0,0,0 +78,Taper.Taper[6].Setup.Diameter,1.5,1.5,0,16320 +80,Taper.Taper[6].Setup.Material,1,1,1 +81,Taper.Taper[7].Setup.Length,0.0,0.0,0,0 +83,Taper.Taper[7].Setup.Diameter,0.0,0.0,0,0 +85,Taper.Taper[7].Setup.Material,1,1,1 +86,Taper.Taper[8].Setup.Length,0.0,0.0,0,0 +88,Taper.Taper[8].Setup.Diameter,0.0,0.0,0,0 +90,Taper.Taper[8].Setup.Material,1,1,1 +91,Taper.Taper[9].Setup.Length,0.0,0.0,0,0 +93,Taper.Taper[9].Setup.Diameter,0.0,0.0,0,0 +95,Taper.Taper[9].Setup.Material,1,1,1 +96,Taper.Taper[10].Setup.Length,0.0,0.0,0,0 +98,Taper.Taper[10].Setup.Diameter,0.0,0.0,0,0 +100,Taper.Taper[10].Setup.Material,1,1,1 +101,UnitConfig.MotorNameplate.Volts,480.0,480.0,0,17392 +103,UnitConfig.MotorNameplate.Amps,49.0,49.0,0,16964 +105,UnitConfig.MotorNameplate.Hertz,60.0,60.0,0,17008 +107,UnitConfig.MotorNameplate.Poles,6,6,6 +108,UnitConfig.MotorNameplate.RPM,1135.0,1135.0,57344,17549 +110,UnitConfig.MotorNameplate.ServiceFactor,1.14999997616,1.14999997616,13107,16275 +112,UnitConfig.MotorNameplate.Horsepower,40.0,40.0,0,16928 +114,UnitConfig.Pump_Diameter,2.0,2.0,0,16384 +116,UnitConfig.Anchor_Depth,8513.0,8513.0,1024,17925 +118,UnitConfig.Total_Stroke_Length,102.0,102.0,0,17100 +120,UnitConfig.Motor_Sheave_Size,9.0,9.0,0,16656 +122,UnitConfig.Gearbox_Sheave,40.0,40.0,0,16928 +124,UnitConfig.Gearbox_Limit,100.0,100.0,0,17096 +126,UnitConfig.Gearbox_Ratio,28.7000007629,28.7000007629,39322,16869 +128,UnitConfig.Rating_Gearbox,320.0,320.0,0,17312 +130,UnitConfig.Rating_Structural,256.0,256.0,0,17280 +132,UnitConfig.Well_Type,0,0,0 +133,UnitConfig.Total_Vertical_Depth,8435.0,8435.0,52224,17923 +135,UnitConfig.Tubing_Size_ID,2.44099998474,2.44099998474,14680,16412 +137,UnitConfig.Tubing_Size_OD,2.875,2.875,0,16440 +139,UnitConfig.API_Oil,38.0,38.0,0,16920 +141,UnitConfig.SG_Water,1.10000002384,1.10000002384,52429,16268 +143,UnitConfig.Percent_Water,63.3333320618,63.3333320618,21845,17021 +145,Pump.Speed_Setpoint_SPM,7.5,7.5,0,16624 +147,Pump.Speed_Max,8.5,8.5,0,16648 +149,Pump.Speed_Min,6.0,6.0,0,16576 +151,Pump.POC_Percentage_Off,50.0,50.0,0,16968 +153,Pump.Auto_Percentage_RampDown,70.0,70.0,0,17036 +155,Pump.Auto_Percentage_RampUp,95.0,95.0,0,17086 +157,Pump.Mode,4,4,4 diff --git a/testing/db_input_registers.csv b/testing/db_input_registers.csv new file mode 100644 index 0000000..9921b52 --- /dev/null +++ b/testing/db_input_registers.csv @@ -0,0 +1,131 @@ +1,_Firmware_Rev,2837,2837,2837 +2,_Program_Firmware,0,0,0 +3,Card_Past[1].Card_Type,0,0,0 +4,Card_Past[1].Downhole_AdjustedGrossStroke,38.7296638489,38.7296638489,60205,16922 +6,Card_Past[1].Downhole_FluidLoad,9301.94726562,9301.94726562,22474,17937 +8,Card_Past[1].Downhole_GrossStroke,38.5721244812,38.5721244812,18907,16922 +10,Card_Past[1].Downhole_Max_Load.Load,-4504.80761719,-4504.80761719,50806,50572 +12,Card_Past[1].Downhole_Max_Position.Position,87.9638290405,87.9638290405,60795,17071 +14,Card_Past[1].Downhole_Min_Load.Load,-13726.6484375,-13726.6484375,31384,50774 +16,Card_Past[1].Downhole_Min_Position.Position,49.0251274109,49.0251274109,6587,16964 +18,Card_Past[1].Downhole_NetStroke,16.4754943848,16.4754943848,52688,16771 +20,Card_Past[1].Fillage_Percent,41.8596954346,41.8596954346,28756,16935 +22,Card_Past[1].Fluid_Above_Pump,1672.27990723,1672.27990723,2293,17617 +24,Card_Past[1].Fluid_Moved,0.00533483037725,0.00533483037725,53197,15278 +26,Card_Past[1].ID,3836,3836,3836 +27,Card_Past[1].Num_Points,80,80,80 +28,Card_Past[1].Polished_Rod_HP,3.17588162422,3.17588162422,16805,16459 +30,Card_Past[1].Pump_HP,2.14305853844,2.14305853844,10207,16393 +32,Card_Past[1].Pump_Intake_Pressure,691.807373047,691.807373047,62380,17452 +34,Card_Past[1].SPM,7.50029563904,7.50029563904,620,16624 +36,Card_Past[1].Surface_Max.Load,22371.9980469,22371.9980469,51199,18094 +38,Card_Past[1].Surface_Max.Position,102.644172668,102.644172668,18897,17101 +40,Card_Past[1].Surface_Min.Load,14531.0,14531.0,3072,18019 +42,Card_Past[1].Surface_Min.Position,1.48628771305,1.48628771305,16045,16318 +44,Card_Past[1].Surface_StrokeLength,101.15788269,101.15788269,20694,17098 +46,Card_Past[1].Tubing_Movement,-0.15805606544,-0.15805606544,55667,48673 +48,Card_Past[2].Card_Type,0,0,0 +49,Card_Past[2].Downhole_AdjustedGrossStroke,39.3632926941,39.3632926941,29699,16925 +51,Card_Past[2].Downhole_FluidLoad,9332.53808594,9332.53808594,53799,17937 +53,Card_Past[2].Downhole_GrossStroke,39.2052383423,39.2052383423,53802,16924 +55,Card_Past[2].Downhole_Max_Load.Load,-4479.39453125,-4479.39453125,64296,50571 +57,Card_Past[2].Downhole_Max_Position.Position,88.0684204102,88.0684204102,8968,17072 +59,Card_Past[2].Downhole_Min_Load.Load,-13731.8261719,-13731.8261719,36686,50774 +61,Card_Past[2].Downhole_Min_Position.Position,48.8631820679,48.8631820679,29670,16963 +63,Card_Past[2].Downhole_NetStroke,16.8652839661,16.8652839661,60442,16774 +65,Card_Past[2].Fillage_Percent,43.5486869812,43.5486869812,12763,16942 +67,Card_Past[2].Fluid_Above_Pump,1680.51281738,1680.51281738,4201,17618 +69,Card_Past[2].Fluid_Moved,0.00546104554087,0.00546104554087,62098,15282 +71,Card_Past[2].ID,3837,3837,3837 +72,Card_Past[2].Num_Points,81,81,81 +73,Card_Past[2].Polished_Rod_HP,3.17837429047,3.17837429047,27260,16459 +75,Card_Past[2].Pump_HP,2.1452255249,2.1452255249,19296,16393 +77,Card_Past[2].Pump_Intake_Pressure,727.613037109,727.613037109,59196,17461 +79,Card_Past[2].SPM,7.50042104721,7.50042104721,883,16624 +81,Card_Past[2].Surface_Max.Load,22424.0,22424.0,12288,18095 +83,Card_Past[2].Surface_Max.Position,102.704589844,102.704589844,26816,17101 +85,Card_Past[2].Surface_Min.Load,14383.0,14383.0,48128,18016 +87,Card_Past[2].Surface_Min.Position,1.2810652256,1.2810652256,63986,16291 +89,Card_Past[2].Surface_StrokeLength,101.423522949,101.423522949,55512,17098 +91,Card_Past[2].Tubing_Movement,-0.156150981784,-0.156150981784,58891,48671 +93,Card_Past[3].Card_Type,0,0,0 +94,Card_Past[3].Downhole_AdjustedGrossStroke,39.3632926941,39.3632926941,29699,16925 +96,Card_Past[3].Downhole_FluidLoad,9220.05175781,9220.05175781,4149,17936 +98,Card_Past[3].Downhole_GrossStroke,40.2297286987,40.2297286987,60222,16928 +100,Card_Past[3].Downhole_Max_Load.Load,-4577.02197266,-4577.02197266,2093,50575 +102,Card_Past[3].Downhole_Max_Position.Position,89.1081848145,89.1081848145,14180,17074 +104,Card_Past[3].Downhole_Min_Load.Load,-13716.9667969,-13716.9667969,21470,50774 +106,Card_Past[3].Downhole_Min_Position.Position,48.8784561157,48.8784561157,33674,16963 +108,Card_Past[3].Downhole_NetStroke,17.2314224243,17.2314224243,55796,16777 +110,Card_Past[3].Fillage_Percent,43.1121520996,43.1121520996,29400,16940 +112,Card_Past[3].Fluid_Above_Pump,1593.30529785,1593.30529785,10693,17607 +114,Card_Past[3].Fluid_Moved,0.00557960290462,0.00557960290462,54554,15286 +116,Card_Past[3].ID,3839,3839,3839 +117,Card_Past[3].Num_Points,80,80,80 +118,Card_Past[3].Polished_Rod_HP,3.17968058586,3.17968058586,32739,16459 +120,Card_Past[3].Pump_HP,2.15009284019,2.15009284019,39711,16393 +122,Card_Past[3].Pump_Intake_Pressure,723.106201172,723.106201172,50892,17460 +124,Card_Past[3].SPM,7.40651130676,7.40651130676,548,16621 +126,Card_Past[3].Surface_Max.Load,22458.0,22458.0,29696,18095 +128,Card_Past[3].Surface_Max.Position,102.66192627,102.66192627,21224,17101 +130,Card_Past[3].Surface_Min.Load,14247.0,14247.0,39936,18014 +132,Card_Past[3].Surface_Min.Position,0.897685110569,0.897685110569,52913,16229 +134,Card_Past[3].Surface_StrokeLength,101.76424408,101.76424408,34635,17099 +136,Card_Past[3].Tubing_Movement,-0.15639077127,-0.15639077127,9447,48672 +138,Card_Past[4].Card_Type,0,0,0 +139,Card_Past[4].Downhole_AdjustedGrossStroke,39.8216743469,39.8216743469,18789,16927 +141,Card_Past[4].Downhole_FluidLoad,9234.20996094,9234.20996094,18647,17936 +143,Card_Past[4].Downhole_GrossStroke,39.6652832031,39.6652832031,43328,16926 +145,Card_Past[4].Downhole_Max_Load.Load,-4547.15625,-4547.15625,6464,50574 +147,Card_Past[4].Downhole_Max_Position.Position,88.1874694824,88.1874694824,24572,17072 +149,Card_Past[4].Downhole_Min_Load.Load,-13701.2597656,-13701.2597656,5386,50774 +151,Card_Past[4].Downhole_Min_Position.Position,48.5221862793,48.5221862793,5816,16962 +153,Card_Past[4].Downhole_NetStroke,17.5000534058,17.5000534058,28,16780 +155,Card_Past[4].Fillage_Percent,47.4513893127,47.4513893127,52793,16957 +157,Card_Past[4].Fluid_Above_Pump,1675.76940918,1675.76940918,30879,17617 +159,Card_Past[4].Fluid_Moved,0.0056665870361,0.0056665870361,44743,15289 +161,Card_Past[4].ID,3839,3839,3839 +162,Card_Past[4].Num_Points,81,81,81 +163,Card_Past[4].Polished_Rod_HP,3.17927145958,3.17927145958,31023,16459 +165,Card_Past[4].Pump_HP,2.15389442444,2.15389442444,55656,16393 +167,Card_Past[4].Pump_Intake_Pressure,697.395263672,697.395263672,22860,17454 +169,Card_Past[4].SPM,7.50100326538,7.50100326538,2104,16624 +171,Card_Past[4].Surface_Max.Load,22477.0,22477.0,39424,18095 +173,Card_Past[4].Surface_Max.Position,102.643119812,102.643119812,18759,17101 +175,Card_Past[4].Surface_Min.Load,14120.0,14120.0,40960,18012 +177,Card_Past[4].Surface_Min.Position,0.760877609253,0.760877609253,51424,16194 +179,Card_Past[4].Surface_StrokeLength,101.882240295,101.882240295,50101,17099 +181,Card_Past[4].Tubing_Movement,-0.157758742571,-0.157758742571,35714,48673 +183,Drive_Speed_Reference_SP,915.0,915.0,49152,17508 +185,Drive_Torque_Percent,19.7000007629,19.7000007629,39322,16797 +187,GAUGEOFF_Average_SPM,7.50694417953,7.50694417953,14563,16624 +189,GAUGEOFF_Downhole_GrossStroke,49.4552688599,49.4552688599,53810,16965 +191,GAUGEOFF_Downhole_NetStroke,20.4940032959,20.4940032959,62392,16803 +193,GAUGEOFF_Electricity_Cost,14.1668748856,14.1668748856,43909,16738 +195,GAUGEOFF_Fluid_Above_Pump,2115.18945312,2115.18945312,13064,17668 +197,GAUGEOFF_Inflow_Rate,81.6242752075,81.6242752075,16289,17059 +199,GAUGEOFF_kWh,177.0859375,177.0859375,5632,17201 +201,GAUGEOFF_kWh_Regen,12.42578125,12.42578125,53248,16710 +203,GAUGEOFF_Lifting_Cost,-0.00627574836835,-0.00627574836835,42187,48077 +205,GAUGEOFF_Max_Load,22175.9042969,22175.9042969,16335,18093 +207,GAUGEOFF_Min_Load,14811.7773438,14811.7773438,28444,18023 +209,GAUGEOFF_Percent_Run,100.0,100.0,0,17096 +211,GAUGEOFF_Polished_Rod_HP,3.17030906677,3.17030906677,58968,16458 +213,GAUGEOFF_Pump_Intake_Pressure,918.411437988,918.411437988,39509,17509 +215,GAUGEOFF_Surface_StrokeLength,101.617286682,101.617286682,15373,17099 +219,GAUGEOFF_Tubing_Movement,-0.145999446511,-0.145999446511,32993,48661 +221,Gearbox_Loading,47.773109436,47.773109436,6058,16959 +223,Gearbox_Torque,231068.046875,231068.046875,42755,18529 +225,Input_Analog_1_AIN.Val,418.787994385,418.787994385,25821,17361 +227,Input_Analog_2_AIN.Val,0.0,0.0,0,0 +229,Input_Analog_3_AIN.Val,0.0,0.0,0,0 +231,Instantaneous_SPM,0.603709518909,0.603709518909,36021,16154 +233,kWh_Today,102091.265625,102091.265625,26018,18375 +235,Max_Theoretical_Fluid_Load,11505.9150391,11505.9150391,51113,17971 +237,Motor_Torque,198.465591431,198.465591431,30513,17222 +239,Pump.Run_Status,1,1,1 +240,Pump.Speed_Actual_SPM,7.50140094757,7.50140094757,2938,16624 +242,Pump_Intake_Pressure,675.003662109,675.003662109,49212,17448 +244,TODAY_Production_Calculated,2.61908006668,2.61908006668,40706,16423 +246,TODAY_Production_Projected,59.9281005859,59.9281005859,46688,17007 +248,TODAY_Percent_Run,100.0,100.0,0,17096 diff --git a/testing/digital_inputs.csv b/testing/digital_inputs.csv new file mode 100644 index 0000000..b61f132 --- /dev/null +++ b/testing/digital_inputs.csv @@ -0,0 +1 @@ +1,False \ No newline at end of file diff --git a/testing/dump/tag_data/tag_vals.bson b/testing/dump/tag_data/tag_vals.bson new file mode 100644 index 0000000000000000000000000000000000000000..8fd01fc2fa3d70ebf323e7b4f9aa8037054125a8 GIT binary patch literal 194066 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
Bi3%GcgsG}K?=AzwM`t0?1oU;9TGdw9gBE`BVG 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 UU$F50Gho4Jw^q@&d5w1e7c;L}VgLXD literal 0 HcmV?d00001 diff --git a/testing/dump/tag_data/tag_vals.metadata.json b/testing/dump/tag_data/tag_vals.metadata.json new file mode 100644 index 0000000..30c7011 --- /dev/null +++ b/testing/dump/tag_data/tag_vals.metadata.json @@ -0,0 +1 @@ +{"options":{},"indexes":[{"v":1,"key":{"_id":1},"name":"_id_","ns":"tag_data.tag_vals"}]} \ No newline at end of file diff --git a/testing/holding_registers.csv b/testing/holding_registers.csv new file mode 100644 index 0000000..ecf56d9 --- /dev/null +++ b/testing/holding_registers.csv @@ -0,0 +1 @@ +1,524292,158203,356524,165405,06,175057,550508,157799,3482810,1658111,2022112,1609413,1400314,4982415,716,3017,018,1720419,020,021,022,1709623,024,025,026,1709627,028,029,030,1710331,032,4908833,2048034,1824335,036,037,038,039,040,1692841,042,643,244,045,346,047,148,149,050,651,6348852,1781153,5242954,1628455,256,2867257,1775958,059,1625660,161,062,1714663,064,1632065,166,067,068,069,1632070,171,072,073,074,1632075,176,077,078,079,1632080,181,082,083,084,085,186,087,088,089,090,191,092,093,094,095,196,097,098,099,0100,1101,0102,17392103,0104,16964105,0106,17008107,6108,57344109,17549110,13107111,16275112,0113,16928114,0115,16384116,1024117,17925118,0119,17100120,0121,16656122,0123,16928124,0125,17096126,39322127,16869128,0129,17312130,0131,17280132,0133,52224134,17923135,14680136,16412137,0138,16440139,0140,16920141,52429142,16268143,21845144,17021145,0146,16624147,0148,16648149,0150,16576151,0152,16968153,0154,17036155,0156,17086157,4 \ No newline at end of file diff --git a/testing/input_registers.csv b/testing/input_registers.csv new file mode 100644 index 0000000..bde3e72 --- /dev/null +++ b/testing/input_registers.csv @@ -0,0 +1 @@ +1,28372,03,04,602055,169226,224747,179378,189079,1692210,5080611,5057212,6079513,1707114,3138415,5077416,658717,1696418,5268819,1677120,2875621,1693522,229323,1761724,5319725,1527826,383627,8028,1680529,1645930,1020731,1639332,6238033,1745234,62035,1662436,5119937,1809438,1889739,1710140,307241,1801942,1604543,1631844,2069445,1709846,5566747,4867348,049,2969950,1692551,5379952,1793753,5380254,1692455,6429656,5057157,896858,1707259,3668660,5077461,2967062,1696363,6044264,1677465,1276366,1694267,420168,1761869,6209870,1528271,383772,8173,2726074,1645975,1929676,1639377,5919678,1746179,88380,1662481,1228882,1809583,2681684,1710185,4812886,1801687,6398688,1629189,5551290,1709891,5889192,4867193,094,2969995,1692596,414997,1793698,6022299,16928100,2093101,50575102,14180103,17074104,21470105,50774106,33674107,16963108,55796109,16777110,29400111,16940112,10693113,17607114,54554115,15286116,3839117,80118,32739119,16459120,39711121,16393122,50892123,17460124,548125,16621126,29696127,18095128,21224129,17101130,39936131,18014132,52913133,16229134,34635135,17099136,9447137,48672138,0139,18789140,16927141,18647142,17936143,43328144,16926145,6464146,50574147,24572148,17072149,5386150,50774151,5816152,16962153,28154,16780155,52793156,16957157,30879158,17617159,44743160,15289161,3839162,81163,31023164,16459165,55656166,16393167,22860168,17454169,2104170,16624171,39424172,18095173,18759174,17101175,40960176,18012177,51424178,16194179,50101180,17099181,35714182,48673183,49152184,17508185,39322186,16797187,14563188,16624189,53810190,16965191,62392192,16803193,43909194,16738195,13064196,17668197,16289198,17059199,5632200,17201201,53248202,16710203,42187204,48077205,16335206,18093207,28444208,18023209,0210,17096211,58968212,16458213,39509214,17509215,15373216,17099217,32993218,48661219,32993220,48661221,6058222,16959223,42755224,18529225,25821226,17361227,0228,0229,0230,0231,36021232,16154233,26018234,18375235,51113236,17971237,30513238,17222239,1240,2938241,16624242,49212243,17448244,40706245,16423246,46688247,17007248,0249,17096250,16952251,17081252,0253,0254,16952255,17081256,61145257,17076258,26482259,17072260,59565261,17067262,32834263,17062264,48054265,17056266,52960267,17050268,4090269,17044270,12645271,17037272,49927273,17029274,25818275,17020276,49565277,17004278,17622279,16989280,34149281,16973282,37433283,16957284,8198285,16942286,46017287,16926288,48840289,16911290,15682291,16896292,30019293,16864294,41513295,16833296,59770297,16803298,24285299,16777300,13531301,16739302,48516303,16693304,9101305,16652306,32630307,16591308,62736309,16529310,52728311,16447312,13499313,16361314,57409315,16250316,61433317,16113318,32756319,16036320,38846321,16167322,38054323,16285324,44796325,16394326,24935327,16469328,24808329,16536330,40233331,16594332,22571333,16651334,13075335,16688336,65061337,16728338,25087339,16770340,47602341,16793342,59046343,16819344,6631345,16846346,5932347,16875348,15518349,16900350,24342351,16914352,42273353,16930354,25006355,16945356,44782357,16960358,49725359,16975360,2491361,16991362,22672363,17007364,56960365,17022366,14171367,17031368,50419369,17038370,53970371,17045372,44974373,17052374,40142375,17059376,11372377,17066378,32938379,17072380,57616381,17077382,61588383,17082384,21261385,17087386,3039387,17091388,9816389,17094390,49508391,17096392,58218393,17098394,12716395,17100396,468397,17101398,31520399,17101400,8145401,17101402,4437403,17100404,33675405,17098406,17997407,17096408,50233409,17093410,52889411,17090412,16635413,17087414,0415,0416,0417,0418,0419,0420,0421,0422,0423,0424,0425,0426,0427,0428,0429,0430,0431,0432,0433,0434,0435,0436,0437,0438,0439,0440,0441,0442,0443,0444,0445,0446,0447,0448,0449,0450,0451,0452,0453,0454,0455,0456,0457,0458,0459,0460,0461,0462,0463,0464,0465,0466,0467,0468,0469,0470,0471,0472,0473,0474,0475,0476,0477,0478,0479,0480,0481,0482,0483,0484,0485,0486,0487,0488,0489,0490,0491,0492,0493,0494,0495,0496,0497,0498,0499,0500,0501,0502,0503,0504,0505,0506,0507,0508,0509,0510,0511,0512,0513,0514,0515,0516,0517,0518,0519,0520,0521,0522,0523,0524,0525,0526,0527,0528,0529,0530,0531,0532,0533,0534,0535,0536,0537,0538,0539,0540,0541,0542,0543,0544,0545,0546,0547,0548,0549,0550,0551,0552,0553,0554,0555,0556,0557,0558,0559,0560,0561,0562,0563,0564,0565,0566,0567,0568,0569,0570,0571,0572,0573,0574,0575,0576,0577,0578,0579,0580,0581,0582,0583,0584,0585,0586,0587,0588,0589,0590,0591,0592,0593,0594,0595,0596,0597,0598,0599,0600,0601,0602,0603,0604,0605,0606,0607,0608,0609,0610,0611,0612,0613,0614,0615,0616,0617,0618,0619,0620,0621,0622,0623,0624,0625,0626,0627,0628,0629,0630,0631,0632,0633,0634,0635,0636,0637,0638,0639,0640,0641,0642,0643,0644,0645,0646,0647,0648,0649,0650,0651,0652,0653,0654,0655,0656,0657,0658,0659,0660,0661,0662,0663,0664,0665,0666,0667,0668,0669,0670,0671,0672,0673,0674,0675,0676,0677,0678,0679,0680,0681,0682,0683,0684,0685,0686,0687,0688,0689,0690,0691,0692,0693,0694,0695,0696,0697,0698,0699,0700,0701,0702,0703,0704,0705,0706,0707,0708,0709,0710,0711,0712,0713,0714,0715,0716,0717,0718,0719,0720,0721,0722,0723,0724,0725,0726,0727,0728,0729,0730,0731,0732,0733,0734,0735,0736,0737,0738,0739,0740,0741,0742,0743,0744,0745,0746,0747,0748,0749,0750,0751,0752,0753,0754,0755,0756,0757,0758,0759,0760,0761,0762,0763,0764,0765,0766,0767,0768,0769,0770,0771,0772,0773,0774,0775,0776,0777,0778,0779,0780,0781,0782,0783,0784,0785,0786,0787,0788,0789,0790,0791,0792,0793,0794,0795,0796,0797,0798,0799,0800,0801,0802,0803,0804,0805,0806,0807,0808,0809,0810,0811,0812,0813,0814,0815,0816,0817,0818,0819,0820,0821,0822,0823,0824,0825,0826,0827,0828,0829,0830,0831,0832,0833,0834,0835,0836,0837,0838,0839,0840,0841,0842,0843,0844,0845,0846,0847,0848,0849,0850,0851,0852,0853,0854,0855,0856,0857,0858,0859,0860,0861,0862,0863,0864,0865,0866,0867,0868,0869,0870,0871,0872,0873,0874,0875,0876,0877,0878,0879,0880,0881,0882,0883,0884,0885,0886,0887,0888,0889,0890,0891,0892,0893,0894,0895,0896,0897,0898,0899,0900,0901,0902,0903,0904,0905,0906,0907,0908,0909,0910,0911,0912,0913,0914,0915,0916,0917,0918,0919,0920,0921,0922,0923,0924,0925,0926,0927,0928,0929,0930,0931,0932,0933,0934,0935,0936,0937,0938,0939,0940,0941,0942,0943,0944,0945,0946,0947,0948,0949,0950,0951,0952,0953,0954,0955,0956,0957,0958,0959,0960,0961,0962,0963,0964,0965,0966,0967,0968,0969,0970,0971,0972,0973,0974,0975,0976,0977,0978,0979,0980,0981,0982,0983,0984,0985,0986,0987,0988,0989,0990,0991,0992,0993,0994,0995,0996,0997,0998,0999,01000,01001,01002,01003,01004,01005,01006,01007,01008,01009,01010,01011,01012,01013,01014,01015,01016,01017,01018,01019,01020,01021,01022,01023,01024,01025,01026,01027,01028,01029,01030,01031,01032,01033,01034,01035,01036,01037,01038,01039,01040,01041,01042,01043,01044,01045,01046,01047,01048,01049,01050,01051,01052,01053,01054,01055,01056,01057,01058,01059,01060,01061,01062,01063,01064,01065,01066,01067,01068,01069,01070,01071,01072,01073,01074,01075,01076,01077,01078,01079,01080,01081,01082,01083,01084,01085,01086,01087,01088,01089,01090,01091,01092,01093,01094,01095,01096,01097,01098,01099,01100,01101,01102,01103,01104,01105,01106,01107,01108,01109,01110,01111,01112,01113,01114,01115,01116,01117,01118,01119,01120,01121,01122,01123,01124,01125,01126,01127,01128,01129,01130,01131,01132,01133,01134,01135,01136,01137,01138,01139,01140,01141,01142,01143,01144,01145,01146,01147,01148,01149,01150,01151,01152,01153,01154,01155,01156,01157,01158,01159,01160,01161,01162,01163,01164,01165,01166,01167,01168,01169,01170,01171,01172,01173,01174,01175,01176,01177,01178,01179,01180,01181,01182,01183,01184,01185,01186,01187,01188,01189,01190,01191,01192,01193,01194,01195,01196,01197,01198,01199,01200,01201,01202,01203,01204,01205,01206,01207,01208,01209,01210,01211,01212,01213,01214,01215,01216,01217,01218,01219,01220,01221,01222,01223,01224,01225,01226,01227,01228,01229,01230,01231,01232,01233,01234,01235,01236,01237,01238,01239,01240,01241,01242,01243,01244,01245,01246,01247,01248,01249,01250,01251,01252,01253,01254,01255,01256,01257,01258,01259,01260,01261,01262,01263,01264,01265,01266,01267,01268,01269,01270,01271,01272,01273,01274,01275,01276,01277,01278,01279,01280,01281,01282,01283,01284,01285,01286,01287,01288,01289,01290,01291,01292,01293,01294,01295,01296,01297,01298,01299,01300,01301,01302,01303,01304,01305,01306,01307,01308,01309,01310,01311,01312,01313,01314,01315,01316,01317,01318,01319,01320,01321,01322,01323,01324,01325,01326,01327,01328,01329,01330,01331,01332,01333,01334,01335,01336,01337,01338,01339,01340,01341,01342,01343,01344,01345,01346,01347,01348,01349,01350,01351,01352,01353,01354,01355,01356,01357,01358,01359,01360,01361,01362,01363,01364,01365,01366,01367,01368,01369,01370,01371,01372,01373,01374,01375,01376,01377,01378,01379,01380,01381,01382,01383,01384,01385,01386,01387,01388,01389,01390,01391,01392,01393,01394,01395,01396,01397,01398,01399,01400,01401,01402,01403,01404,01405,01406,01407,01408,01409,01410,01411,01412,01413,01414,01415,01416,01417,01418,01419,01420,01421,01422,01423,01424,01425,01426,01427,01428,01429,01430,01431,01432,01433,01434,01435,01436,01437,01438,01439,01440,01441,01442,01443,01444,01445,01446,01447,01448,01449,01450,01451,01452,01453,01454,01455,01456,01457,01458,01459,01460,01461,01462,01463,01464,01465,01466,01467,01468,01469,01470,01471,01472,01473,01474,01475,01476,01477,01478,01479,01480,01481,01482,01483,01484,01485,01486,01487,01488,01489,01490,01491,01492,01493,01494,01495,01496,01497,01498,01499,01500,01501,01502,01503,01504,01505,01506,01507,01508,01509,01510,01511,01512,01513,01514,01515,01516,01517,01518,01519,01520,01521,01522,01523,01524,01525,01526,01527,01528,01529,01530,01531,01532,01533,01534,01535,01536,01537,01538,01539,01540,01541,01542,01543,01544,01545,01546,01547,01548,01549,01550,01551,01552,01553,01554,01555,01556,01557,01558,01559,01560,01561,01562,01563,01564,01565,01566,01567,01568,01569,01570,01571,01572,01573,01574,01575,01576,01577,01578,01579,01580,01581,01582,01583,01584,01585,01586,01587,01588,01589,01590,01591,01592,01593,01594,01595,01596,01597,01598,01599,01600,01601,01602,01603,01604,01605,01606,01607,01608,01609,01610,01611,01612,01613,01614,01615,01616,01617,01618,01619,01620,01621,01622,01623,01624,01625,01626,01627,01628,01629,01630,01631,01632,01633,01634,01635,01636,01637,01638,01639,01640,01641,01642,01643,01644,01645,01646,01647,01648,01649,01650,01651,01652,01653,01654,01655,01656,01657,01658,01659,01660,01661,01662,01663,01664,01665,01666,01667,01668,01669,01670,01671,01672,01673,01674,01675,01676,01677,01678,01679,01680,01681,01682,01683,01684,01685,01686,01687,01688,01689,01690,01691,01692,01693,01694,01695,01696,01697,01698,01699,01700,01701,01702,01703,01704,01705,01706,01707,01708,01709,01710,01711,01712,01713,01714,01715,01716,01717,01718,01719,01720,01721,01722,01723,01724,01725,01726,01727,01728,01729,01730,01731,01732,01733,01734,01735,01736,01737,01738,01739,01740,01741,01742,01743,01744,01745,01746,01747,01748,01749,01750,01751,01752,01753,01754,169521755,170811756,611451757,170761758,264821759,170721760,595651761,170671762,328341763,170621764,480541765,170561766,529601767,170501768,40901769,170441770,126451771,170371772,499271773,170291774,258181775,170201776,495651777,170041778,176221779,169891780,341491781,169731782,374331783,169571784,81981785,169421786,460171787,169261788,488401789,169111790,156821791,168961792,300191793,168641794,415131795,168331796,597701797,168031798,242851799,167771800,135311801,167391802,485161803,166931804,91011805,166521806,326301807,165911808,627361809,165291810,527281811,164471812,134991813,163611814,574091815,162501816,614331817,161131818,327561819,160361820,388461821,161671822,380541823,162851824,447961825,163941826,249351827,164691828,248081829,165361830,402331831,165941832,225711833,166511834,130751835,166881836,650611837,167281838,250871839,167701840,476021841,167931842,590461843,168191844,66311845,168461846,59321847,168751848,155181849,169001850,243421851,169141852,422731853,169301854,250061855,169451856,447821857,169601858,497251859,169751860,24911861,169911862,226721863,170071864,569601865,170221866,141711867,170311868,504191869,170381870,539701871,170451872,449741873,170521874,401421875,170591876,113721877,170661878,329381879,170721880,576161881,170771882,615881883,170821884,212611885,170871886,30391887,170911888,98161889,170941890,495081891,170961892,582181893,170981894,127161895,171001896,4681897,171011898,315201899,171011900,81451901,171011902,44371903,171001904,336751905,170981906,179971907,170961908,502331909,170931910,528891911,170901912,166351913,170871914,01915,01916,01917,01918,01919,01920,01921,01922,01923,01924,01925,01926,01927,01928,01929,01930,01931,01932,01933,01934,01935,01936,01937,01938,01939,01940,01941,01942,01943,01944,01945,01946,01947,01948,01949,01950,01951,01952,01953,01954,01955,01956,01957,01958,01959,01960,01961,01962,01963,01964,01965,01966,01967,01968,01969,01970,01971,01972,01973,01974,01975,01976,01977,01978,01979,01980,01981,01982,01983,01984,01985,01986,01987,01988,01989,01990,01991,01992,01993,01994,01995,01996,01997,01998,01999,02000,02001,02002,02003,02004,02005,02006,02007,02008,02009,02010,02011,02012,02013,02014,02015,02016,02017,02018,02019,02020,02021,02022,02023,02024,02025,02026,02027,02028,02029,02030,02031,02032,02033,02034,02035,02036,02037,02038,02039,02040,02041,02042,02043,02044,02045,02046,02047,02048,02049,02050,02051,02052,02053,02054,02055,02056,02057,02058,02059,02060,02061,02062,02063,02064,02065,02066,02067,02068,02069,02070,02071,02072,02073,02074,02075,02076,02077,02078,02079,02080,02081,02082,02083,02084,02085,02086,02087,02088,02089,02090,02091,02092,02093,02094,02095,02096,02097,02098,02099,02100,02101,02102,02103,02104,02105,02106,02107,02108,02109,02110,02111,02112,02113,02114,02115,02116,02117,02118,02119,02120,02121,02122,02123,02124,02125,02126,02127,02128,02129,02130,02131,02132,02133,02134,02135,02136,02137,02138,02139,02140,02141,02142,02143,02144,02145,02146,02147,02148,02149,02150,02151,02152,02153,02154,02155,02156,02157,02158,02159,02160,02161,02162,02163,02164,02165,02166,02167,02168,02169,02170,02171,02172,02173,02174,02175,02176,02177,02178,02179,02180,02181,02182,02183,02184,02185,02186,02187,02188,02189,02190,02191,02192,02193,02194,02195,02196,02197,02198,02199,02200,02201,02202,02203,02204,02205,02206,02207,02208,02209,02210,02211,02212,02213,02214,02215,02216,02217,02218,02219,02220,02221,02222,02223,02224,02225,02226,02227,02228,02229,02230,02231,02232,02233,02234,02235,02236,02237,02238,02239,02240,02241,02242,02243,02244,02245,02246,02247,02248,02249,02250,02251,02252,02253,02254,02255,02256,02257,02258,02259,02260,02261,02262,02263,02264,02265,02266,02267,02268,02269,02270,02271,02272,02273,02274,02275,02276,02277,02278,02279,02280,02281,02282,02283,02284,02285,02286,02287,02288,02289,02290,02291,02292,02293,02294,02295,02296,02297,02298,02299,02300,02301,02302,02303,02304,02305,02306,02307,02308,02309,02310,02311,02312,02313,02314,02315,02316,02317,02318,02319,02320,02321,02322,02323,02324,02325,02326,02327,02328,02329,02330,02331,02332,02333,02334,02335,02336,02337,02338,02339,02340,02341,02342,02343,02344,02345,02346,02347,02348,02349,02350,02351,02352,02353,02354,02355,02356,02357,02358,02359,02360,02361,02362,02363,02364,02365,02366,02367,02368,02369,02370,02371,02372,02373,02374,02375,02376,02377,02378,02379,02380,02381,02382,02383,02384,02385,02386,02387,02388,02389,02390,02391,02392,02393,02394,02395,02396,02397,02398,02399,02400,02401,02402,02403,02404,02405,02406,02407,02408,02409,02410,02411,02412,02413,02414,02415,02416,02417,02418,02419,02420,02421,02422,02423,02424,02425,02426,02427,02428,02429,02430,02431,02432,02433,02434,02435,02436,02437,02438,02439,02440,02441,02442,02443,02444,02445,02446,02447,02448,02449,02450,02451,02452,02453,02454,02455,02456,02457,02458,02459,02460,02461,02462,02463,02464,02465,02466,02467,02468,02469,02470,02471,02472,02473,02474,02475,02476,02477,02478,02479,02480,02481,02482,02483,02484,02485,02486,02487,02488,02489,02490,02491,02492,02493,02494,02495,02496,02497,02498,02499,02500,02501,02502,02503,02504,02505,02506,02507,02508,02509,02510,02511,02512,02513,02514,02515,02516,02517,02518,02519,02520,02521,02522,02523,02524,02525,02526,02527,02528,02529,02530,02531,02532,02533,02534,02535,02536,02537,02538,02539,02540,02541,02542,02543,02544,02545,02546,02547,02548,02549,02550,02551,02552,02553,02554,02555,02556,02557,02558,02559,02560,02561,02562,02563,02564,02565,02566,02567,02568,02569,02570,02571,02572,02573,02574,02575,02576,02577,02578,02579,02580,02581,02582,02583,02584,02585,02586,02587,02588,02589,02590,02591,02592,02593,02594,02595,02596,02597,02598,02599,02600,02601,02602,02603,02604,02605,02606,02607,02608,02609,02610,02611,02612,02613,02614,02615,02616,02617,02618,02619,02620,02621,02622,02623,02624,02625,02626,02627,02628,02629,02630,02631,02632,02633,02634,02635,02636,02637,02638,02639,02640,02641,02642,02643,02644,02645,02646,02647,02648,02649,02650,02651,02652,02653,02654,02655,02656,02657,02658,02659,02660,02661,02662,02663,02664,02665,02666,02667,02668,02669,02670,02671,02672,02673,02674,02675,02676,02677,02678,02679,02680,02681,02682,02683,02684,02685,02686,02687,02688,02689,02690,02691,02692,02693,02694,02695,02696,02697,02698,02699,02700,02701,02702,02703,02704,02705,02706,02707,02708,02709,02710,02711,02712,02713,02714,02715,02716,02717,02718,02719,02720,02721,02722,02723,02724,02725,02726,02727,02728,02729,02730,02731,02732,02733,02734,02735,02736,02737,02738,02739,02740,02741,02742,02743,02744,02745,02746,02747,02748,02749,02750,02751,02752,02753,02754,02755,02756,02757,02758,02759,02760,02761,02762,02763,02764,02765,02766,02767,02768,02769,02770,02771,02772,02773,02774,02775,02776,02777,02778,02779,02780,02781,02782,02783,02784,02785,02786,02787,02788,02789,02790,02791,02792,02793,02794,02795,02796,02797,02798,02799,02800,02801,02802,02803,02804,02805,02806,02807,02808,02809,02810,02811,02812,02813,02814,02815,02816,02817,02818,02819,02820,02821,02822,02823,02824,02825,02826,02827,02828,02829,02830,02831,02832,02833,02834,02835,02836,02837,02838,02839,02840,02841,02842,02843,02844,02845,02846,02847,02848,02849,02850,02851,02852,02853,02854,02855,02856,02857,02858,02859,02860,02861,02862,02863,02864,02865,02866,02867,02868,02869,02870,02871,02872,02873,02874,02875,02876,02877,02878,02879,02880,02881,02882,02883,02884,02885,02886,02887,02888,02889,02890,02891,02892,02893,02894,02895,02896,02897,02898,02899,02900,02901,02902,02903,02904,02905,02906,02907,02908,02909,02910,02911,02912,02913,02914,02915,02916,02917,02918,02919,02920,02921,02922,02923,02924,02925,02926,02927,02928,02929,02930,02931,02932,02933,02934,02935,02936,02937,02938,02939,02940,02941,02942,02943,02944,02945,02946,02947,02948,02949,02950,02951,02952,02953,02954,02955,02956,02957,02958,02959,02960,02961,02962,02963,02964,02965,02966,02967,02968,02969,02970,02971,02972,02973,02974,02975,02976,02977,02978,02979,02980,02981,02982,02983,02984,02985,02986,02987,02988,02989,02990,02991,02992,02993,02994,02995,02996,02997,02998,02999,03000,03001,03002,03003,03004,03005,03006,03007,03008,03009,03010,03011,03012,03013,03014,03015,03016,03017,03018,03019,03020,03021,03022,03023,03024,03025,03026,03027,03028,03029,03030,03031,03032,03033,03034,03035,03036,03037,03038,03039,03040,03041,03042,03043,03044,03045,03046,03047,03048,03049,03050,03051,03052,03053,03054,03055,03056,03057,03058,03059,03060,03061,03062,03063,03064,03065,03066,03067,03068,03069,03070,03071,03072,03073,03074,03075,03076,03077,03078,03079,03080,03081,03082,03083,03084,03085,03086,03087,03088,03089,03090,03091,03092,03093,03094,03095,03096,03097,03098,03099,03100,03101,03102,03103,03104,03105,03106,03107,03108,03109,03110,03111,03112,03113,03114,03115,03116,03117,03118,03119,03120,03121,03122,03123,03124,03125,03126,03127,03128,03129,03130,03131,03132,03133,03134,03135,03136,03137,03138,03139,03140,03141,03142,03143,03144,03145,03146,03147,03148,03149,03150,03151,03152,03153,03154,03155,03156,03157,03158,03159,03160,03161,03162,03163,03164,03165,03166,03167,03168,03169,03170,03171,03172,03173,03174,03175,03176,03177,03178,03179,03180,03181,03182,03183,03184,03185,03186,03187,03188,03189,03190,03191,03192,03193,03194,03195,03196,03197,03198,03199,03200,03201,03202,03203,03204,03205,03206,03207,03208,03209,03210,03211,03212,03213,03214,03215,03216,03217,03218,03219,03220,03221,03222,03223,03224,03225,03226,03227,03228,03229,03230,03231,03232,03233,03234,03235,03236,03237,03238,03239,03240,03241,03242,03243,03244,03245,03246,03247,03248,03249,03250,03251,03252,03253,03254,94273255,170843256,468473257,170793258,239353259,170753260,294013261,170703262,20683263,170653264,148383265,170593266,564823267,170523268,589313269,170463270,319183271,170403272,485893273,170333274,244823275,170263276,513923277,170133278,179123279,169983280,595443281,169823282,491743283,169673284,479323285,169513286,235143287,169363288,257973289,169203290,199403291,169043292,420513293,168813294,514673295,168483296,24243297,168203298,215233299,167923300,33693301,167653302,332263303,167173304,421003305,166723306,288263307,166283308,304613309,165633310,519193311,165003312,384833313,164103314,583433315,163143316,435413317,161893318,46843319,160223320,191713321,160133322,104703323,161733324,368813325,163133326,273293327,164173328,516533329,165043330,138993331,165593332,627833333,166173334,490713335,166643336,345573337,167033338,314553339,167453340,33923341,167793342,461713343,168033344,585323345,168303346,86523347,168603348,525513349,168873350,278373351,169063352,476123353,169203354,476093355,169353356,534853357,169503358,297533359,169663360,469103361,169813362,342313363,169973364,266173365,170133366,403573367,170263368,90133369,170343370,558293371,170413372,215343373,170493374,330983375,170563376,328983377,170633378,364163379,170693380,611083381,170743382,26103383,170803384,557773385,170843386,46993387,170893388,324593389,170923390,108173391,170953392,371763393,170973394,260863395,170993396,338143397,171003398,156623399,171013400,174153401,171013402,165853403,171003404,91673405,170993406,338083407,170973408,262093409,170953410,375213411,170923412,154033413,170893414,214613415,170853416,03417,03418,03419,03420,03421,03422,03423,03424,03425,03426,03427,03428,03429,03430,03431,03432,03433,03434,03435,03436,03437,03438,03439,03440,03441,03442,03443,03444,03445,03446,03447,03448,03449,03450,03451,03452,03453,03454,03455,03456,03457,03458,03459,03460,03461,03462,03463,03464,03465,03466,03467,03468,03469,03470,03471,03472,03473,03474,03475,03476,03477,03478,03479,03480,03481,03482,03483,03484,03485,03486,03487,03488,03489,03490,03491,03492,03493,03494,03495,03496,03497,03498,03499,03500,03501,03502,03503,03504,03505,03506,03507,03508,03509,03510,03511,03512,03513,03514,03515,03516,03517,03518,03519,03520,03521,03522,03523,03524,03525,03526,03527,03528,03529,03530,03531,03532,03533,03534,03535,03536,03537,03538,03539,03540,03541,03542,03543,03544,03545,03546,03547,03548,03549,03550,03551,03552,03553,03554,03555,03556,03557,03558,03559,03560,03561,03562,03563,03564,03565,03566,03567,03568,03569,03570,03571,03572,03573,03574,03575,03576,03577,03578,03579,03580,03581,03582,03583,03584,03585,03586,03587,03588,03589,03590,03591,03592,03593,03594,03595,03596,03597,03598,03599,03600,03601,03602,03603,03604,03605,03606,03607,03608,03609,03610,03611,03612,03613,03614,03615,03616,03617,03618,03619,03620,03621,03622,03623,03624,03625,03626,03627,03628,03629,03630,03631,03632,03633,03634,03635,03636,03637,03638,03639,03640,03641,03642,03643,03644,03645,03646,03647,03648,03649,03650,03651,03652,03653,03654,03655,03656,03657,03658,03659,03660,03661,03662,03663,03664,03665,03666,03667,03668,03669,03670,03671,03672,03673,03674,03675,03676,03677,03678,03679,03680,03681,03682,03683,03684,03685,03686,03687,03688,03689,03690,03691,03692,03693,03694,03695,03696,03697,03698,03699,03700,03701,03702,03703,03704,03705,03706,03707,03708,03709,03710,03711,03712,03713,03714,03715,03716,03717,03718,03719,03720,03721,03722,03723,03724,03725,03726,03727,03728,03729,03730,03731,03732,03733,03734,03735,03736,03737,03738,03739,03740,03741,03742,03743,03744,03745,03746,03747,03748,03749,03750,03751,03752,03753,03754,03755,03756,03757,03758,03759,03760,03761,03762,03763,03764,03765,03766,03767,03768,03769,03770,03771,03772,03773,03774,03775,03776,03777,03778,03779,03780,03781,03782,03783,03784,03785,03786,03787,03788,03789,03790,03791,03792,03793,03794,03795,03796,03797,03798,03799,03800,03801,03802,03803,03804,03805,03806,03807,03808,03809,03810,03811,03812,03813,03814,03815,03816,03817,03818,03819,03820,03821,03822,03823,03824,03825,03826,03827,03828,03829,03830,03831,03832,03833,03834,03835,03836,03837,03838,03839,03840,03841,03842,03843,03844,03845,03846,03847,03848,03849,03850,03851,03852,03853,03854,03855,03856,03857,03858,03859,03860,03861,03862,03863,03864,03865,03866,03867,03868,03869,03870,03871,03872,03873,03874,03875,03876,03877,03878,03879,03880,03881,03882,03883,03884,03885,03886,03887,03888,03889,03890,03891,03892,03893,03894,03895,03896,03897,03898,03899,03900,03901,03902,03903,03904,03905,03906,03907,03908,03909,03910,03911,03912,03913,03914,03915,03916,03917,03918,03919,03920,03921,03922,03923,03924,03925,03926,03927,03928,03929,03930,03931,03932,03933,03934,03935,03936,03937,03938,03939,03940,03941,03942,03943,03944,03945,03946,03947,03948,03949,03950,03951,03952,03953,03954,03955,03956,03957,03958,03959,03960,03961,03962,03963,03964,03965,03966,03967,03968,03969,03970,03971,03972,03973,03974,03975,03976,03977,03978,03979,03980,03981,03982,03983,03984,03985,03986,03987,03988,03989,03990,03991,03992,03993,03994,03995,03996,03997,03998,03999,04000,04001,04002,04003,04004,04005,04006,04007,04008,04009,04010,04011,04012,04013,04014,04015,04016,04017,04018,04019,04020,04021,04022,04023,04024,04025,04026,04027,04028,04029,04030,04031,04032,04033,04034,04035,04036,04037,04038,04039,04040,04041,04042,04043,04044,04045,04046,04047,04048,04049,04050,04051,04052,04053,04054,04055,04056,04057,04058,04059,04060,04061,04062,04063,04064,04065,04066,04067,04068,04069,04070,04071,04072,04073,04074,04075,04076,04077,04078,04079,04080,04081,04082,04083,04084,04085,04086,04087,04088,04089,04090,04091,04092,04093,04094,04095,04096,04097,04098,04099,04100,04101,04102,04103,04104,04105,04106,04107,04108,04109,04110,04111,04112,04113,04114,04115,04116,04117,04118,04119,04120,04121,04122,04123,04124,04125,04126,04127,04128,04129,04130,04131,04132,04133,04134,04135,04136,04137,04138,04139,04140,04141,04142,04143,04144,04145,04146,04147,04148,04149,04150,04151,04152,04153,04154,04155,04156,04157,04158,04159,04160,04161,04162,04163,04164,04165,04166,04167,04168,04169,04170,04171,04172,04173,04174,04175,04176,04177,04178,04179,04180,04181,04182,04183,04184,04185,04186,04187,04188,04189,04190,04191,04192,04193,04194,04195,04196,04197,04198,04199,04200,04201,04202,04203,04204,04205,04206,04207,04208,04209,04210,04211,04212,04213,04214,04215,04216,04217,04218,04219,04220,04221,04222,04223,04224,04225,04226,04227,04228,04229,04230,04231,04232,04233,04234,04235,04236,04237,04238,04239,04240,04241,04242,04243,04244,04245,04246,04247,04248,04249,04250,04251,04252,04253,04254,04255,04256,04257,04258,04259,04260,04261,04262,04263,04264,04265,04266,04267,04268,04269,04270,04271,04272,04273,04274,04275,04276,04277,04278,04279,04280,04281,04282,04283,04284,04285,04286,04287,04288,04289,04290,04291,04292,04293,04294,04295,04296,04297,04298,04299,04300,04301,04302,04303,04304,04305,04306,04307,04308,04309,04310,04311,04312,04313,04314,04315,04316,04317,04318,04319,04320,04321,04322,04323,04324,04325,04326,04327,04328,04329,04330,04331,04332,04333,04334,04335,04336,04337,04338,04339,04340,04341,04342,04343,04344,04345,04346,04347,04348,04349,04350,04351,04352,04353,04354,04355,04356,04357,04358,04359,04360,04361,04362,04363,04364,04365,04366,04367,04368,04369,04370,04371,04372,04373,04374,04375,04376,04377,04378,04379,04380,04381,04382,04383,04384,04385,04386,04387,04388,04389,04390,04391,04392,04393,04394,04395,04396,04397,04398,04399,04400,04401,04402,04403,04404,04405,04406,04407,04408,04409,04410,04411,04412,04413,04414,04415,04416,04417,04418,04419,04420,04421,04422,04423,04424,04425,04426,04427,04428,04429,04430,04431,04432,04433,04434,04435,04436,04437,04438,04439,04440,04441,04442,04443,04444,04445,04446,04447,04448,04449,04450,04451,04452,04453,04454,04455,04456,04457,04458,04459,04460,04461,04462,04463,04464,04465,04466,04467,04468,04469,04470,04471,04472,04473,04474,04475,04476,04477,04478,04479,04480,04481,04482,04483,04484,04485,04486,04487,04488,04489,04490,04491,04492,04493,04494,04495,04496,04497,04498,04499,04500,04501,04502,04503,04504,04505,04506,04507,04508,04509,04510,04511,04512,04513,04514,04515,04516,04517,04518,04519,04520,04521,04522,04523,04524,04525,04526,04527,04528,04529,04530,04531,04532,04533,04534,04535,04536,04537,04538,04539,04540,04541,04542,04543,04544,04545,04546,04547,04548,04549,04550,04551,04552,04553,04554,04555,04556,04557,04558,04559,04560,04561,04562,04563,04564,04565,04566,04567,04568,04569,04570,04571,04572,04573,04574,04575,04576,04577,04578,04579,04580,04581,04582,04583,04584,04585,04586,04587,04588,04589,04590,04591,04592,04593,04594,04595,04596,04597,04598,04599,04600,04601,04602,04603,04604,04605,04606,04607,04608,04609,04610,04611,04612,04613,04614,04615,04616,04617,04618,04619,04620,04621,04622,04623,04624,04625,04626,04627,04628,04629,04630,04631,04632,04633,04634,04635,04636,04637,04638,04639,04640,04641,04642,04643,04644,04645,04646,04647,04648,04649,04650,04651,04652,04653,04654,04655,04656,04657,04658,04659,04660,04661,04662,04663,04664,04665,04666,04667,04668,04669,04670,04671,04672,04673,04674,04675,04676,04677,04678,04679,04680,04681,04682,04683,04684,04685,04686,04687,04688,04689,04690,04691,04692,04693,04694,04695,04696,04697,04698,04699,04700,04701,04702,04703,04704,04705,04706,04707,04708,04709,04710,04711,04712,04713,04714,04715,04716,04717,04718,04719,04720,04721,04722,04723,04724,04725,04726,04727,04728,04729,04730,04731,04732,04733,04734,04735,04736,04737,04738,04739,04740,04741,04742,04743,04744,04745,04746,04747,04748,04749,04750,04751,04752,04753,04754,134174755,170824756,530014757,170774758,618514759,170724760,79314761,170684762,199144763,170624764,466004765,170564766,557664767,170504768,460664769,170444770,39494771,170384772,62794773,170314774,304284775,170234776,239714777,170084778,437164779,169924780,529274781,169774782,562044783,169614784,355324785,169464786,434554787,169294788,488044789,169124790,578324791,168974792,372214793,168684794,600524795,168384796,571414797,168094798,320294799,167824800,168394801,167484802,477934803,167024804,606744805,166594806,339964807,166054808,100434809,165424810,140884811,164644812,57924813,163864814,194494815,162664816,644184817,161284818,529334819,160234820,37114821,161194822,400154823,162574824,412264825,163694826,484864827,164524828,521624829,165284830,429424831,165824832,295504833,166424834,168404835,166784836,500614837,167174838,372114839,167624840,467094841,167874842,310364843,168154844,52224845,168454846,344684847,168724848,100014849,168984850,46954851,169124852,416224853,169264854,34664855,169424856,243034857,169574858,447364859,169724860,129514861,169884862,288294863,170034864,236594865,170194866,472214867,170294868,517014869,170374870,354974871,170454872,324854873,170524874,168184875,170594876,310994877,170654878,200044879,170714880,502684881,170764882,474434883,170814884,215964885,170864886,127674887,170904888,289064889,170934890,180344891,170964892,387524893,170984894,22404895,171004896,587874897,171004898,189174899,171014900,601534901,171004902,33534903,171004904,392354905,170984906,432984907,170964908,216764909,170944910,283864911,170914912,594704913,170874914,04915,04916,04917,04918,04919,04920,04921,04922,04923,04924,04925,04926,04927,04928,04929,04930,04931,04932,04933,04934,04935,04936,04937,04938,04939,04940,04941,04942,04943,04944,04945,04946,04947,04948,04949,04950,04951,04952,04953,04954,04955,04956,04957,04958,04959,04960,04961,04962,04963,04964,04965,04966,04967,04968,04969,04970,04971,04972,04973,04974,04975,04976,04977,04978,04979,04980,04981,04982,04983,04984,04985,04986,04987,04988,04989,04990,04991,04992,04993,04994,04995,04996,04997,04998,04999,05000,05001,05002,05003,05004,05005,05006,05007,05008,05009,05010,05011,05012,05013,05014,05015,05016,05017,05018,05019,05020,05021,05022,05023,05024,05025,05026,05027,05028,05029,05030,05031,05032,05033,05034,05035,05036,05037,05038,05039,05040,05041,05042,05043,05044,05045,05046,05047,05048,05049,05050,05051,05052,05053,05054,05055,05056,05057,05058,05059,05060,05061,05062,05063,05064,05065,05066,05067,05068,05069,05070,05071,05072,05073,05074,05075,05076,05077,05078,05079,05080,05081,05082,05083,05084,05085,05086,05087,05088,05089,05090,05091,05092,05093,05094,05095,05096,05097,05098,05099,05100,05101,05102,05103,05104,05105,05106,05107,05108,05109,05110,05111,05112,05113,05114,05115,05116,05117,05118,05119,05120,05121,05122,05123,05124,05125,05126,05127,05128,05129,05130,05131,05132,05133,05134,05135,05136,05137,05138,05139,05140,05141,05142,05143,05144,05145,05146,05147,05148,05149,05150,05151,05152,05153,05154,05155,05156,05157,05158,05159,05160,05161,05162,05163,05164,05165,05166,05167,05168,05169,05170,05171,05172,05173,05174,05175,05176,05177,05178,05179,05180,05181,05182,05183,05184,05185,05186,05187,05188,05189,05190,05191,05192,05193,05194,05195,05196,05197,05198,05199,05200,05201,05202,05203,05204,05205,05206,05207,05208,05209,05210,05211,05212,05213,05214,05215,05216,05217,05218,05219,05220,05221,05222,05223,05224,05225,05226,05227,05228,05229,05230,05231,05232,05233,05234,05235,05236,05237,05238,05239,05240,05241,05242,05243,05244,05245,05246,05247,05248,05249,05250,05251,05252,05253,05254,05255,05256,05257,05258,05259,05260,05261,05262,05263,05264,05265,05266,05267,05268,05269,05270,05271,05272,05273,05274,05275,05276,05277,05278,05279,05280,05281,05282,05283,05284,05285,05286,05287,05288,05289,05290,05291,05292,05293,05294,05295,05296,05297,05298,05299,05300,05301,05302,05303,05304,05305,05306,05307,05308,05309,05310,05311,05312,05313,05314,05315,05316,05317,05318,05319,05320,05321,05322,05323,05324,05325,05326,05327,05328,05329,05330,05331,05332,05333,05334,05335,05336,05337,05338,05339,05340,05341,05342,05343,05344,05345,05346,05347,05348,05349,05350,05351,05352,05353,05354,05355,05356,05357,05358,05359,05360,05361,05362,05363,05364,05365,05366,05367,05368,05369,05370,05371,05372,05373,05374,05375,05376,05377,05378,05379,05380,05381,05382,05383,05384,05385,05386,05387,05388,05389,05390,05391,05392,05393,05394,05395,05396,05397,05398,05399,05400,05401,05402,05403,05404,05405,05406,05407,05408,05409,05410,05411,05412,05413,05414,05415,05416,05417,05418,05419,05420,05421,05422,05423,05424,05425,05426,05427,05428,05429,05430,05431,05432,05433,05434,05435,05436,05437,05438,05439,05440,05441,05442,05443,05444,05445,05446,05447,05448,05449,05450,05451,05452,05453,05454,05455,05456,05457,05458,05459,05460,05461,05462,05463,05464,05465,05466,05467,05468,05469,05470,05471,05472,05473,05474,05475,05476,05477,05478,05479,05480,05481,05482,05483,05484,05485,05486,05487,05488,05489,05490,05491,05492,05493,05494,05495,05496,05497,05498,05499,05500,05501,05502,05503,05504,05505,05506,05507,05508,05509,05510,05511,05512,05513,05514,05515,05516,05517,05518,05519,05520,05521,05522,05523,05524,05525,05526,05527,05528,05529,05530,05531,05532,05533,05534,05535,05536,05537,05538,05539,05540,05541,05542,05543,05544,05545,05546,05547,05548,05549,05550,05551,05552,05553,05554,05555,05556,05557,05558,05559,05560,05561,05562,05563,05564,05565,05566,05567,05568,05569,05570,05571,05572,05573,05574,05575,05576,05577,05578,05579,05580,05581,05582,05583,05584,05585,05586,05587,05588,05589,05590,05591,05592,05593,05594,05595,05596,05597,05598,05599,05600,05601,05602,05603,05604,05605,05606,05607,05608,05609,05610,05611,05612,05613,05614,05615,05616,05617,05618,05619,05620,05621,05622,05623,05624,05625,05626,05627,05628,05629,05630,05631,05632,05633,05634,05635,05636,05637,05638,05639,05640,05641,05642,05643,05644,05645,05646,05647,05648,05649,05650,05651,05652,05653,05654,05655,05656,05657,05658,05659,05660,05661,05662,05663,05664,05665,05666,05667,05668,05669,05670,05671,05672,05673,05674,05675,05676,05677,05678,05679,05680,05681,05682,05683,05684,05685,05686,05687,05688,05689,05690,05691,05692,05693,05694,05695,05696,05697,05698,05699,05700,05701,05702,05703,05704,05705,05706,05707,05708,05709,05710,05711,05712,05713,05714,05715,05716,05717,05718,05719,05720,05721,05722,05723,05724,05725,05726,05727,05728,05729,05730,05731,05732,05733,05734,05735,05736,05737,05738,05739,05740,05741,05742,05743,05744,05745,05746,05747,05748,05749,05750,05751,05752,05753,05754,05755,05756,05757,05758,05759,05760,05761,05762,05763,05764,05765,05766,05767,05768,05769,05770,05771,05772,05773,05774,05775,05776,05777,05778,05779,05780,05781,05782,05783,05784,05785,05786,05787,05788,05789,05790,05791,05792,05793,05794,05795,05796,05797,05798,05799,05800,05801,05802,05803,05804,05805,05806,05807,05808,05809,05810,05811,05812,05813,05814,05815,05816,05817,05818,05819,05820,05821,05822,05823,05824,05825,05826,05827,05828,05829,05830,05831,05832,05833,05834,05835,05836,05837,05838,05839,05840,05841,05842,05843,05844,05845,05846,05847,05848,05849,05850,05851,05852,05853,05854,05855,05856,05857,05858,05859,05860,05861,05862,05863,05864,05865,05866,05867,05868,05869,05870,05871,05872,05873,05874,05875,05876,05877,05878,05879,05880,05881,05882,05883,05884,05885,05886,05887,05888,05889,05890,05891,05892,05893,05894,05895,05896,05897,05898,05899,05900,05901,05902,05903,05904,05905,05906,05907,05908,05909,05910,05911,05912,05913,05914,05915,05916,05917,05918,05919,05920,05921,05922,05923,05924,05925,05926,05927,05928,05929,05930,05931,05932,05933,05934,05935,05936,05937,05938,05939,05940,05941,05942,05943,05944,05945,05946,05947,05948,05949,05950,05951,05952,05953,05954,05955,05956,05957,05958,05959,05960,05961,05962,05963,05964,05965,05966,05967,05968,05969,05970,05971,05972,05973,05974,05975,05976,05977,05978,05979,05980,05981,05982,05983,05984,05985,05986,05987,05988,05989,05990,05991,05992,05993,05994,05995,05996,05997,05998,05999,06000,06001,06002,06003,06004,06005,06006,06007,06008,06009,06010,06011,06012,06013,06014,06015,06016,06017,06018,06019,06020,06021,06022,06023,06024,06025,06026,06027,06028,06029,06030,06031,06032,06033,06034,06035,06036,06037,06038,06039,06040,06041,06042,06043,06044,06045,06046,06047,06048,06049,06050,06051,06052,06053,06054,06055,06056,06057,06058,06059,06060,06061,06062,06063,06064,06065,06066,06067,06068,06069,06070,06071,06072,06073,06074,06075,06076,06077,06078,06079,06080,06081,06082,06083,06084,06085,06086,06087,06088,06089,06090,06091,06092,06093,06094,06095,06096,06097,06098,06099,06100,06101,06102,06103,06104,06105,06106,06107,06108,06109,06110,06111,06112,06113,06114,06115,06116,06117,06118,06119,06120,06121,06122,06123,06124,06125,06126,06127,06128,06129,06130,06131,06132,06133,06134,06135,06136,06137,06138,06139,06140,06141,06142,06143,06144,06145,06146,06147,06148,06149,06150,06151,06152,06153,06154,06155,06156,06157,06158,06159,06160,06161,06162,06163,06164,06165,06166,06167,06168,06169,06170,06171,06172,06173,06174,06175,06176,06177,06178,06179,06180,06181,06182,06183,06184,06185,06186,06187,06188,06189,06190,06191,06192,06193,06194,06195,06196,06197,06198,06199,06200,06201,06202,06203,06204,06205,06206,06207,06208,06209,06210,06211,06212,06213,06214,06215,06216,06217,06218,06219,06220,06221,06222,06223,06224,06225,06226,06227,06228,06229,06230,06231,06232,06233,06234,06235,06236,06237,06238,06239,06240,06241,06242,06243,06244,06245,06246,06247,06248,06249,06250,06251,06252,06253,06254,10246255,180726256,128006257,180716258,481286259,180706260,332806261,180706262,235526263,180706264,61446265,180706266,491526267,180696268,307206269,180696270,230406271,180696272,215046273,180696274,102406275,180696276,337926277,180686278,87046279,180676280,537606281,180646282,307206283,180616284,148486285,180576286,307206287,180526288,174086289,180476290,133126291,180386292,286726293,180306294,112646295,180246296,30726297,180196298,378886299,180146300,174086301,180106302,645126303,180066304,245766305,180046306,51206307,180026308,378886309,179996310,122886311,179976312,143376313,179966314,389136315,179976316,471056317,180006318,348156319,180046320,389136321,180086322,112646323,180136324,256006325,180186326,624646327,180236328,399366329,180296330,256006331,180356332,235526333,180416334,593916335,180466336,337926337,180496338,440326339,180506340,158726341,180516342,450566343,180516344,163846345,180526346,158726347,180536348,87046349,180556350,25606351,180586352,312326353,180616354,46086355,180656356,527366357,180686358,373766359,180726360,10246361,180766362,624646363,180786364,286726365,180816366,368646367,180836368,220166369,180856370,512006371,180866372,40966373,180886374,296966375,180896376,650246377,180906378,250886379,180926380,225296381,180936382,614406383,180936384,194566385,180946386,204806387,180946388,568326389,180936390,15366391,180936392,645126393,180916394,547846395,180906396,322566397,180896398,532486399,180876400,532486401,180856402,465926403,180836404,435206405,180816406,414726407,180796408,368646409,180776410,384006411,180756412,578566413,180736414,358406415,180726416,06417,06418,06419,06420,06421,06422,06423,06424,06425,06426,06427,06428,06429,06430,06431,06432,06433,06434,06435,06436,06437,06438,06439,06440,06441,06442,06443,06444,06445,06446,06447,06448,06449,06450,06451,06452,06453,06454,06455,06456,06457,06458,06459,06460,06461,06462,06463,06464,06465,06466,06467,06468,06469,06470,06471,06472,06473,06474,06475,06476,06477,06478,06479,06480,06481,06482,06483,06484,06485,06486,06487,06488,06489,06490,06491,06492,06493,06494,06495,06496,06497,06498,06499,06500,06501,06502,06503,06504,06505,06506,06507,06508,06509,06510,06511,06512,06513,06514,06515,06516,06517,06518,06519,06520,06521,06522,06523,06524,06525,06526,06527,06528,06529,06530,06531,06532,06533,06534,06535,06536,06537,06538,06539,06540,06541,06542,06543,06544,06545,06546,06547,06548,06549,06550,06551,06552,06553,06554,06555,06556,06557,06558,06559,06560,06561,06562,06563,06564,06565,06566,06567,06568,06569,06570,06571,06572,06573,06574,06575,06576,06577,06578,06579,06580,06581,06582,06583,06584,06585,06586,06587,06588,06589,06590,06591,06592,06593,06594,06595,06596,06597,06598,06599,06600,06601,06602,06603,06604,06605,06606,06607,06608,06609,06610,06611,06612,06613,06614,06615,06616,06617,06618,06619,06620,06621,06622,06623,06624,06625,06626,06627,06628,06629,06630,06631,06632,06633,06634,06635,06636,06637,06638,06639,06640,06641,06642,06643,06644,06645,06646,06647,06648,06649,06650,06651,06652,06653,06654,06655,06656,06657,06658,06659,06660,06661,06662,06663,06664,06665,06666,06667,06668,06669,06670,06671,06672,06673,06674,06675,06676,06677,06678,06679,06680,06681,06682,06683,06684,06685,06686,06687,06688,06689,06690,06691,06692,06693,06694,06695,06696,06697,06698,06699,06700,06701,06702,06703,06704,06705,06706,06707,06708,06709,06710,06711,06712,06713,06714,06715,06716,06717,06718,06719,06720,06721,06722,06723,06724,06725,06726,06727,06728,06729,06730,06731,06732,06733,06734,06735,06736,06737,06738,06739,06740,06741,06742,06743,06744,06745,06746,06747,06748,06749,06750,06751,06752,06753,06754,06755,06756,06757,06758,06759,06760,06761,06762,06763,06764,06765,06766,06767,06768,06769,06770,06771,06772,06773,06774,06775,06776,06777,06778,06779,06780,06781,06782,06783,06784,06785,06786,06787,06788,06789,06790,06791,06792,06793,06794,06795,06796,06797,06798,06799,06800,06801,06802,06803,06804,06805,06806,06807,06808,06809,06810,06811,06812,06813,06814,06815,06816,06817,06818,06819,06820,06821,06822,06823,06824,06825,06826,06827,06828,06829,06830,06831,06832,06833,06834,06835,06836,06837,06838,06839,06840,06841,06842,06843,06844,06845,06846,06847,06848,06849,06850,06851,06852,06853,06854,06855,06856,06857,06858,06859,06860,06861,06862,06863,06864,06865,06866,06867,06868,06869,06870,06871,06872,06873,06874,06875,06876,06877,06878,06879,06880,06881,06882,06883,06884,06885,06886,06887,06888,06889,06890,06891,06892,06893,06894,06895,06896,06897,06898,06899,06900,06901,06902,06903,06904,06905,06906,06907,06908,06909,06910,06911,06912,06913,06914,06915,06916,06917,06918,06919,06920,06921,06922,06923,06924,06925,06926,06927,06928,06929,06930,06931,06932,06933,06934,06935,06936,06937,06938,06939,06940,06941,06942,06943,06944,06945,06946,06947,06948,06949,06950,06951,06952,06953,06954,06955,06956,06957,06958,06959,06960,06961,06962,06963,06964,06965,06966,06967,06968,06969,06970,06971,06972,06973,06974,06975,06976,06977,06978,06979,06980,06981,06982,06983,06984,06985,06986,06987,06988,06989,06990,06991,06992,06993,06994,06995,06996,06997,06998,06999,07000,07001,07002,07003,07004,07005,07006,07007,07008,07009,07010,07011,07012,07013,07014,07015,07016,07017,07018,07019,07020,07021,07022,07023,07024,07025,07026,07027,07028,07029,07030,07031,07032,07033,07034,07035,07036,07037,07038,07039,07040,07041,07042,07043,07044,07045,07046,07047,07048,07049,07050,07051,07052,07053,07054,07055,07056,07057,07058,07059,07060,07061,07062,07063,07064,07065,07066,07067,07068,07069,07070,07071,07072,07073,07074,07075,07076,07077,07078,07079,07080,07081,07082,07083,07084,07085,07086,07087,07088,07089,07090,07091,07092,07093,07094,07095,07096,07097,07098,07099,07100,07101,07102,07103,07104,07105,07106,07107,07108,07109,07110,07111,07112,07113,07114,07115,07116,07117,07118,07119,07120,07121,07122,07123,07124,07125,07126,07127,07128,07129,07130,07131,07132,07133,07134,07135,07136,07137,07138,07139,07140,07141,07142,07143,07144,07145,07146,07147,07148,07149,07150,07151,07152,07153,07154,07155,07156,07157,07158,07159,07160,07161,07162,07163,07164,07165,07166,07167,07168,07169,07170,07171,07172,07173,07174,07175,07176,07177,07178,07179,07180,07181,07182,07183,07184,07185,07186,07187,07188,07189,07190,07191,07192,07193,07194,07195,07196,07197,07198,07199,07200,07201,07202,07203,07204,07205,07206,07207,07208,07209,07210,07211,07212,07213,07214,07215,07216,07217,07218,07219,07220,07221,07222,07223,07224,07225,07226,07227,07228,07229,07230,07231,07232,07233,07234,07235,07236,07237,07238,07239,07240,07241,07242,07243,07244,07245,07246,07247,07248,07249,07250,07251,07252,07253,07254,07255,07256,07257,07258,07259,07260,07261,07262,07263,07264,07265,07266,07267,07268,07269,07270,07271,07272,07273,07274,07275,07276,07277,07278,07279,07280,07281,07282,07283,07284,07285,07286,07287,07288,07289,07290,07291,07292,07293,07294,07295,07296,07297,07298,07299,07300,07301,07302,07303,07304,07305,07306,07307,07308,07309,07310,07311,07312,07313,07314,07315,07316,07317,07318,07319,07320,07321,07322,07323,07324,07325,07326,07327,07328,07329,07330,07331,07332,07333,07334,07335,07336,07337,07338,07339,07340,07341,07342,07343,07344,07345,07346,07347,07348,07349,07350,07351,07352,07353,07354,07355,07356,07357,07358,07359,07360,07361,07362,07363,07364,07365,07366,07367,07368,07369,07370,07371,07372,07373,07374,07375,07376,07377,07378,07379,07380,07381,07382,07383,07384,07385,07386,07387,07388,07389,07390,07391,07392,07393,07394,07395,07396,07397,07398,07399,07400,07401,07402,07403,07404,07405,07406,07407,07408,07409,07410,07411,07412,07413,07414,07415,07416,07417,07418,07419,07420,07421,07422,07423,07424,07425,07426,07427,07428,07429,07430,07431,07432,07433,07434,07435,07436,07437,07438,07439,07440,07441,07442,07443,07444,07445,07446,07447,07448,07449,07450,07451,07452,07453,07454,07455,07456,07457,07458,07459,07460,07461,07462,07463,07464,07465,07466,07467,07468,07469,07470,07471,07472,07473,07474,07475,07476,07477,07478,07479,07480,07481,07482,07483,07484,07485,07486,07487,07488,07489,07490,07491,07492,07493,07494,07495,07496,07497,07498,07499,07500,07501,07502,07503,07504,07505,07506,07507,07508,07509,07510,07511,07512,07513,07514,07515,07516,07517,07518,07519,07520,07521,07522,07523,07524,07525,07526,07527,07528,07529,07530,07531,07532,07533,07534,07535,07536,07537,07538,07539,07540,07541,07542,07543,07544,07545,07546,07547,07548,07549,07550,07551,07552,07553,07554,07555,07556,07557,07558,07559,07560,07561,07562,07563,07564,07565,07566,07567,07568,07569,07570,07571,07572,07573,07574,07575,07576,07577,07578,07579,07580,07581,07582,07583,07584,07585,07586,07587,07588,07589,07590,07591,07592,07593,07594,07595,07596,07597,07598,07599,07600,07601,07602,07603,07604,07605,07606,07607,07608,07609,07610,07611,07612,07613,07614,07615,07616,07617,07618,07619,07620,07621,07622,07623,07624,07625,07626,07627,07628,07629,07630,07631,07632,07633,07634,07635,07636,07637,07638,07639,07640,07641,07642,07643,07644,07645,07646,07647,07648,07649,07650,07651,07652,07653,07654,07655,07656,07657,07658,07659,07660,07661,07662,07663,07664,07665,07666,07667,07668,07669,07670,07671,07672,07673,07674,07675,07676,07677,07678,07679,07680,07681,07682,07683,07684,07685,07686,07687,07688,07689,07690,07691,07692,07693,07694,07695,07696,07697,07698,07699,07700,07701,07702,07703,07704,07705,07706,07707,07708,07709,07710,07711,07712,07713,07714,07715,07716,07717,07718,07719,07720,07721,07722,07723,07724,07725,07726,07727,07728,07729,07730,07731,07732,07733,07734,07735,07736,07737,07738,07739,07740,07741,07742,07743,07744,07745,07746,07747,07748,07749,07750,07751,07752,07753,07754,261127755,180717756,506887757,180707758,317447759,180707760,235527761,180707762,112647763,180707764,568327765,180697766,358407767,180697768,225287769,180697770,189447771,180697772,128007773,180697774,537607775,180687776,414727777,180677778,384007779,180657780,291847781,180627782,491527783,180587784,337927785,180537786,61447787,180497788,20477789,180407790,71687791,180327792,389137793,180257794,133127795,180207796,317447797,180157798,153607799,180117800,573447801,180077802,327687803,180047804,174087805,180027806,378887807,179997808,634897809,179967810,153607811,179957812,419847813,179957814,133127815,179987816,563207817,180017818,573447819,180057820,174087821,180107822,204807823,180157824,194567825,180207826,409607827,180267828,563207829,180317830,348157831,180387832,389137833,180447834,537607835,180487836,281607837,180507838,138247839,180517840,522247841,180517842,184327843,180527844,563207845,180527846,158727847,180547848,215047849,180567850,343047851,180597852,312327853,180637854,542727855,180667856,419847857,180707858,209927859,180747860,343047861,180777862,138247863,180807864,496647865,180827866,363527867,180847868,133127869,180867870,440327871,180877872,629767873,180887874,179207875,180907876,604167877,180917878,76807879,180937880,547847881,180937882,230407883,180947884,384007885,180947886,256007887,180947888,465927889,180937890,476167891,180927892,414727893,180917894,276487895,180907896,614407897,180887898,578567899,180867900,634887901,180847902,542727903,180827904,358407905,180807906,307207907,180787908,404487909,180767910,486407911,180747912,128007913,180737914,07915,07916,07917,07918,07919,07920,07921,07922,07923,07924,07925,07926,07927,07928,07929,07930,07931,07932,07933,07934,07935,07936,07937,07938,07939,07940,07941,07942,07943,07944,07945,07946,07947,07948,07949,07950,07951,07952,07953,07954,07955,07956,07957,07958,07959,07960,07961,07962,07963,07964,07965,07966,07967,07968,07969,07970,07971,07972,07973,07974,07975,07976,07977,07978,07979,07980,07981,07982,07983,07984,07985,07986,07987,07988,07989,07990,07991,07992,07993,07994,07995,07996,07997,07998,07999,08000,08001,08002,08003,08004,08005,08006,08007,08008,08009,08010,08011,08012,08013,08014,08015,08016,08017,08018,08019,08020,08021,08022,08023,08024,08025,08026,08027,08028,08029,08030,08031,08032,08033,08034,08035,08036,08037,08038,08039,08040,08041,08042,08043,08044,08045,08046,08047,08048,08049,08050,08051,08052,08053,08054,08055,08056,08057,08058,08059,08060,08061,08062,08063,08064,08065,08066,08067,08068,08069,08070,08071,08072,08073,08074,08075,08076,08077,08078,08079,08080,08081,08082,08083,08084,08085,08086,08087,08088,08089,08090,08091,08092,08093,08094,08095,08096,08097,08098,08099,08100,08101,08102,08103,08104,08105,08106,08107,08108,08109,08110,08111,08112,08113,08114,08115,08116,08117,08118,08119,08120,08121,08122,08123,08124,08125,08126,08127,08128,08129,08130,08131,08132,08133,08134,08135,08136,08137,08138,08139,08140,08141,08142,08143,08144,08145,08146,08147,08148,08149,08150,08151,08152,08153,08154,08155,08156,08157,08158,08159,08160,08161,08162,08163,08164,08165,08166,08167,08168,08169,08170,08171,08172,08173,08174,08175,08176,08177,08178,08179,08180,08181,08182,08183,08184,08185,08186,08187,08188,08189,08190,08191,08192,08193,08194,08195,08196,08197,08198,08199,08200,08201,08202,08203,08204,08205,08206,08207,08208,08209,08210,08211,08212,08213,08214,08215,08216,08217,08218,08219,08220,08221,08222,08223,08224,08225,08226,08227,08228,08229,08230,08231,08232,08233,08234,08235,08236,08237,08238,08239,08240,08241,08242,08243,08244,08245,08246,08247,08248,08249,08250,08251,08252,08253,08254,08255,08256,08257,08258,08259,08260,08261,08262,08263,08264,08265,08266,08267,08268,08269,08270,08271,08272,08273,08274,08275,08276,08277,08278,08279,08280,08281,08282,08283,08284,08285,08286,08287,08288,08289,08290,08291,08292,08293,08294,08295,08296,08297,08298,08299,08300,08301,08302,08303,08304,08305,08306,08307,08308,08309,08310,08311,08312,08313,08314,08315,08316,08317,08318,08319,08320,08321,08322,08323,08324,08325,08326,08327,08328,08329,08330,08331,08332,08333,08334,08335,08336,08337,08338,08339,08340,08341,08342,08343,08344,08345,08346,08347,08348,08349,08350,08351,08352,08353,08354,08355,08356,08357,08358,08359,08360,08361,08362,08363,08364,08365,08366,08367,08368,08369,08370,08371,08372,08373,08374,08375,08376,08377,08378,08379,08380,08381,08382,08383,08384,08385,08386,08387,08388,08389,08390,08391,08392,08393,08394,08395,08396,08397,08398,08399,08400,08401,08402,08403,08404,08405,08406,08407,08408,08409,08410,08411,08412,08413,08414,08415,08416,08417,08418,08419,08420,08421,08422,08423,08424,08425,08426,08427,08428,08429,08430,08431,08432,08433,08434,08435,08436,08437,08438,08439,08440,08441,08442,08443,08444,08445,08446,08447,08448,08449,08450,08451,08452,08453,08454,08455,08456,08457,08458,08459,08460,08461,08462,08463,08464,08465,08466,08467,08468,08469,08470,08471,08472,08473,08474,08475,08476,08477,08478,08479,08480,08481,08482,08483,08484,08485,08486,08487,08488,08489,08490,08491,08492,08493,08494,08495,08496,08497,08498,08499,08500,08501,08502,08503,08504,08505,08506,08507,08508,08509,08510,08511,08512,08513,08514,08515,08516,08517,08518,08519,08520,08521,08522,08523,08524,08525,08526,08527,08528,08529,08530,08531,08532,08533,08534,08535,08536,08537,08538,08539,08540,08541,08542,08543,08544,08545,08546,08547,08548,08549,08550,08551,08552,08553,08554,08555,08556,08557,08558,08559,08560,08561,08562,08563,08564,08565,08566,08567,08568,08569,08570,08571,08572,08573,08574,08575,08576,08577,08578,08579,08580,08581,08582,08583,08584,08585,08586,08587,08588,08589,08590,08591,08592,08593,08594,08595,08596,08597,08598,08599,08600,08601,08602,08603,08604,08605,08606,08607,08608,08609,08610,08611,08612,08613,08614,08615,08616,08617,08618,08619,08620,08621,08622,08623,08624,08625,08626,08627,08628,08629,08630,08631,08632,08633,08634,08635,08636,08637,08638,08639,08640,08641,08642,08643,08644,08645,08646,08647,08648,08649,08650,08651,08652,08653,08654,08655,08656,08657,08658,08659,08660,08661,08662,08663,08664,08665,08666,08667,08668,08669,08670,08671,08672,08673,08674,08675,08676,08677,08678,08679,08680,08681,08682,08683,08684,08685,08686,08687,08688,08689,08690,08691,08692,08693,08694,08695,08696,08697,08698,08699,08700,08701,08702,08703,08704,08705,08706,08707,08708,08709,08710,08711,08712,08713,08714,08715,08716,08717,08718,08719,08720,08721,08722,08723,08724,08725,08726,08727,08728,08729,08730,08731,08732,08733,08734,08735,08736,08737,08738,08739,08740,08741,08742,08743,08744,08745,08746,08747,08748,08749,08750,08751,08752,08753,08754,08755,08756,08757,08758,08759,08760,08761,08762,08763,08764,08765,08766,08767,08768,08769,08770,08771,08772,08773,08774,08775,08776,08777,08778,08779,08780,08781,08782,08783,08784,08785,08786,08787,08788,08789,08790,08791,08792,08793,08794,08795,08796,08797,08798,08799,08800,08801,08802,08803,08804,08805,08806,08807,08808,08809,08810,08811,08812,08813,08814,08815,08816,08817,08818,08819,08820,08821,08822,08823,08824,08825,08826,08827,08828,08829,08830,08831,08832,08833,08834,08835,08836,08837,08838,08839,08840,08841,08842,08843,08844,08845,08846,08847,08848,08849,08850,08851,08852,08853,08854,08855,08856,08857,08858,08859,08860,08861,08862,08863,08864,08865,08866,08867,08868,08869,08870,08871,08872,08873,08874,08875,08876,08877,08878,08879,08880,08881,08882,08883,08884,08885,08886,08887,08888,08889,08890,08891,08892,08893,08894,08895,08896,08897,08898,08899,08900,08901,08902,08903,08904,08905,08906,08907,08908,08909,08910,08911,08912,08913,08914,08915,08916,08917,08918,08919,08920,08921,08922,08923,08924,08925,08926,08927,08928,08929,08930,08931,08932,08933,08934,08935,08936,08937,08938,08939,08940,08941,08942,08943,08944,08945,08946,08947,08948,08949,08950,08951,08952,08953,08954,08955,08956,08957,08958,08959,08960,08961,08962,08963,08964,08965,08966,08967,08968,08969,08970,08971,08972,08973,08974,08975,08976,08977,08978,08979,08980,08981,08982,08983,08984,08985,08986,08987,08988,08989,08990,08991,08992,08993,08994,08995,08996,08997,08998,08999,09000,09001,09002,09003,09004,09005,09006,09007,09008,09009,09010,09011,09012,09013,09014,09015,09016,09017,09018,09019,09020,09021,09022,09023,09024,09025,09026,09027,09028,09029,09030,09031,09032,09033,09034,09035,09036,09037,09038,09039,09040,09041,09042,09043,09044,09045,09046,09047,09048,09049,09050,09051,09052,09053,09054,09055,09056,09057,09058,09059,09060,09061,09062,09063,09064,09065,09066,09067,09068,09069,09070,09071,09072,09073,09074,09075,09076,09077,09078,09079,09080,09081,09082,09083,09084,09085,09086,09087,09088,09089,09090,09091,09092,09093,09094,09095,09096,09097,09098,09099,09100,09101,09102,09103,09104,09105,09106,09107,09108,09109,09110,09111,09112,09113,09114,09115,09116,09117,09118,09119,09120,09121,09122,09123,09124,09125,09126,09127,09128,09129,09130,09131,09132,09133,09134,09135,09136,09137,09138,09139,09140,09141,09142,09143,09144,09145,09146,09147,09148,09149,09150,09151,09152,09153,09154,09155,09156,09157,09158,09159,09160,09161,09162,09163,09164,09165,09166,09167,09168,09169,09170,09171,09172,09173,09174,09175,09176,09177,09178,09179,09180,09181,09182,09183,09184,09185,09186,09187,09188,09189,09190,09191,09192,09193,09194,09195,09196,09197,09198,09199,09200,09201,09202,09203,09204,09205,09206,09207,09208,09209,09210,09211,09212,09213,09214,09215,09216,09217,09218,09219,09220,09221,09222,09223,09224,09225,09226,09227,09228,09229,09230,09231,09232,09233,09234,09235,09236,09237,09238,09239,09240,09241,09242,09243,09244,09245,09246,09247,09248,09249,09250,09251,09252,09253,09254,261129255,180719256,506889257,180709258,317449259,180709260,235529261,180709262,112649263,180709264,568329265,180699266,358409267,180699268,225289269,180699270,189449271,180699272,128009273,180699274,537609275,180689276,414729277,180679278,384009279,180659280,291849281,180629282,491529283,180589284,337929285,180539286,61449287,180499288,20479289,180409290,71689291,180329292,389139293,180259294,133129295,180209296,317449297,180159298,153609299,180119300,573449301,180079302,327689303,180049304,174089305,180029306,378889307,179999308,634899309,179969310,153609311,179959312,419849313,179959314,133129315,179989316,563209317,180019318,573449319,180059320,174089321,180109322,204809323,180159324,194569325,180209326,409609327,180269328,563209329,180319330,348159331,180389332,389139333,180449334,537609335,180489336,281609337,180509338,138249339,180519340,522249341,180519342,184329343,180529344,563209345,180529346,158729347,180549348,215049349,180569350,343049351,180599352,312329353,180639354,542729355,180669356,419849357,180709358,209929359,180749360,343049361,180779362,138249363,180809364,496649365,180829366,363529367,180849368,133129369,180869370,440329371,180879372,629769373,180889374,179209375,180909376,604169377,180919378,76809379,180939380,547849381,180939382,230409383,180949384,384009385,180949386,256009387,180949388,465929389,180939390,476169391,180929392,414729393,180919394,276489395,180909396,614409397,180889398,578569399,180869400,634889401,180849402,542729403,180829404,358409405,180809406,307209407,180789408,404489409,180769410,486409411,180749412,128009413,180739414,09415,09416,09417,09418,09419,09420,09421,09422,09423,09424,09425,09426,09427,09428,09429,09430,09431,09432,09433,09434,09435,09436,09437,09438,09439,09440,09441,09442,09443,09444,09445,09446,09447,09448,09449,09450,09451,09452,09453,09454,09455,09456,09457,09458,09459,09460,09461,09462,09463,09464,09465,09466,09467,09468,09469,09470,09471,09472,09473,09474,09475,09476,09477,09478,09479,09480,09481,09482,09483,09484,09485,09486,09487,09488,09489,09490,09491,09492,09493,09494,09495,09496,09497,09498,09499,09500,09501,09502,09503,09504,09505,09506,09507,09508,09509,09510,09511,09512,09513,09514,09515,09516,09517,09518,09519,09520,09521,09522,09523,09524,09525,09526,09527,09528,09529,09530,09531,09532,09533,09534,09535,09536,09537,09538,09539,09540,09541,09542,09543,09544,09545,09546,09547,09548,09549,09550,09551,09552,09553,09554,09555,09556,09557,09558,09559,09560,09561,09562,09563,09564,09565,09566,09567,09568,09569,09570,09571,09572,09573,09574,09575,09576,09577,09578,09579,09580,09581,09582,09583,09584,09585,09586,09587,09588,09589,09590,09591,09592,09593,09594,09595,09596,09597,09598,09599,09600,09601,09602,09603,09604,09605,09606,09607,09608,09609,09610,09611,09612,09613,09614,09615,09616,09617,09618,09619,09620,09621,09622,09623,09624,09625,09626,09627,09628,09629,09630,09631,09632,09633,09634,09635,09636,09637,09638,09639,09640,09641,09642,09643,09644,09645,09646,09647,09648,09649,09650,09651,09652,09653,09654,09655,09656,09657,09658,09659,09660,09661,09662,09663,09664,09665,09666,09667,09668,09669,09670,09671,09672,09673,09674,09675,09676,09677,09678,09679,09680,09681,09682,09683,09684,09685,09686,09687,09688,09689,09690,09691,09692,09693,09694,09695,09696,09697,09698,09699,09700,09701,09702,09703,09704,09705,09706,09707,09708,09709,09710,09711,09712,09713,09714,09715,09716,09717,09718,09719,09720,09721,09722,09723,09724,09725,09726,09727,09728,09729,09730,09731,09732,09733,09734,09735,09736,09737,09738,09739,09740,09741,09742,09743,09744,09745,09746,09747,09748,09749,09750,09751,09752,09753,09754,09755,09756,09757,09758,09759,09760,09761,09762,09763,09764,09765,09766,09767,09768,09769,09770,09771,09772,09773,09774,09775,09776,09777,09778,09779,09780,09781,09782,09783,09784,09785,09786,09787,09788,09789,09790,09791,09792,09793,09794,09795,09796,09797,09798,09799,09800,09801,09802,09803,09804,09805,09806,09807,09808,09809,09810,09811,09812,09813,09814,09815,09816,09817,09818,09819,09820,09821,09822,09823,09824,09825,09826,09827,09828,09829,09830,09831,09832,09833,09834,09835,09836,09837,09838,09839,09840,09841,09842,09843,09844,09845,09846,09847,09848,09849,09850,09851,09852,09853,09854,09855,09856,09857,09858,09859,09860,09861,09862,09863,09864,09865,09866,09867,09868,09869,09870,09871,09872,09873,09874,09875,09876,09877,09878,09879,09880,09881,09882,09883,09884,09885,09886,09887,09888,09889,09890,09891,09892,09893,09894,09895,09896,09897,09898,09899,09900,09901,09902,09903,09904,09905,09906,09907,09908,09909,09910,09911,09912,09913,09914,09915,09916,09917,09918,09919,09920,09921,09922,09923,09924,09925,09926,09927,09928,09929,09930,09931,09932,09933,09934,09935,09936,09937,09938,09939,09940,09941,09942,09943,09944,09945,09946,09947,09948,09949,09950,09951,09952,09953,09954,09955,09956,09957,09958,09959,09960,09961,09962,09963,09964,09965,09966,09967,09968,09969,09970,09971,09972,09973,09974,09975,09976,09977,09978,09979,09980,09981,09982,09983,09984,09985,09986,09987,09988,09989,09990,09991,09992,09993,09994,09995,09996,09997,09998,09999,010000,010001,010002,010003,010004,010005,010006,010007,010008,010009,010010,010011,010012,010013,010014,010015,010016,010017,010018,010019,010020,010021,010022,010023,010024,010025,010026,010027,010028,010029,010030,010031,010032,010033,010034,010035,010036,010037,010038,010039,010040,010041,010042,010043,010044,010045,010046,010047,010048,010049,010050,010051,010052,010053,010054,010055,010056,010057,010058,010059,010060,010061,010062,010063,010064,010065,010066,010067,010068,010069,010070,010071,010072,010073,010074,010075,010076,010077,010078,010079,010080,010081,010082,010083,010084,010085,010086,010087,010088,010089,010090,010091,010092,010093,010094,010095,010096,010097,010098,010099,010100,010101,010102,010103,010104,010105,010106,010107,010108,010109,010110,010111,010112,010113,010114,010115,010116,010117,010118,010119,010120,010121,010122,010123,010124,010125,010126,010127,010128,010129,010130,010131,010132,010133,010134,010135,010136,010137,010138,010139,010140,010141,010142,010143,010144,010145,010146,010147,010148,010149,010150,010151,010152,010153,010154,010155,010156,010157,010158,010159,010160,010161,010162,010163,010164,010165,010166,010167,010168,010169,010170,010171,010172,010173,010174,010175,010176,010177,010178,010179,010180,010181,010182,010183,010184,010185,010186,010187,010188,010189,010190,010191,010192,010193,010194,010195,010196,010197,010198,010199,010200,010201,010202,010203,010204,010205,010206,010207,010208,010209,010210,010211,010212,010213,010214,010215,010216,010217,010218,010219,010220,010221,010222,010223,010224,010225,010226,010227,010228,010229,010230,010231,010232,010233,010234,010235,010236,010237,010238,010239,010240,010241,010242,010243,010244,010245,010246,010247,010248,010249,010250,010251,010252,010253,010254,010255,010256,010257,010258,010259,010260,010261,010262,010263,010264,010265,010266,010267,010268,010269,010270,010271,010272,010273,010274,010275,010276,010277,010278,010279,010280,010281,010282,010283,010284,010285,010286,010287,010288,010289,010290,010291,010292,010293,010294,010295,010296,010297,010298,010299,010300,010301,010302,010303,010304,010305,010306,010307,010308,010309,010310,010311,010312,010313,010314,010315,010316,010317,010318,010319,010320,010321,010322,010323,010324,010325,010326,010327,010328,010329,010330,010331,010332,010333,010334,010335,010336,010337,010338,010339,010340,010341,010342,010343,010344,010345,010346,010347,010348,010349,010350,010351,010352,010353,010354,010355,010356,010357,010358,010359,010360,010361,010362,010363,010364,010365,010366,010367,010368,010369,010370,010371,010372,010373,010374,010375,010376,010377,010378,010379,010380,010381,010382,010383,010384,010385,010386,010387,010388,010389,010390,010391,010392,010393,010394,010395,010396,010397,010398,010399,010400,010401,010402,010403,010404,010405,010406,010407,010408,010409,010410,010411,010412,010413,010414,010415,010416,010417,010418,010419,010420,010421,010422,010423,010424,010425,010426,010427,010428,010429,010430,010431,010432,010433,010434,010435,010436,010437,010438,010439,010440,010441,010442,010443,010444,010445,010446,010447,010448,010449,010450,010451,010452,010453,010454,010455,010456,010457,010458,010459,010460,010461,010462,010463,010464,010465,010466,010467,010468,010469,010470,010471,010472,010473,010474,010475,010476,010477,010478,010479,010480,010481,010482,010483,010484,010485,010486,010487,010488,010489,010490,010491,010492,010493,010494,010495,010496,010497,010498,010499,010500,010501,010502,010503,010504,010505,010506,010507,010508,010509,010510,010511,010512,010513,010514,010515,010516,010517,010518,010519,010520,010521,010522,010523,010524,010525,010526,010527,010528,010529,010530,010531,010532,010533,010534,010535,010536,010537,010538,010539,010540,010541,010542,010543,010544,010545,010546,010547,010548,010549,010550,010551,010552,010553,010554,010555,010556,010557,010558,010559,010560,010561,010562,010563,010564,010565,010566,010567,010568,010569,010570,010571,010572,010573,010574,010575,010576,010577,010578,010579,010580,010581,010582,010583,010584,010585,010586,010587,010588,010589,010590,010591,010592,010593,010594,010595,010596,010597,010598,010599,010600,010601,010602,010603,010604,010605,010606,010607,010608,010609,010610,010611,010612,010613,010614,010615,010616,010617,010618,010619,010620,010621,010622,010623,010624,010625,010626,010627,010628,010629,010630,010631,010632,010633,010634,010635,010636,010637,010638,010639,010640,010641,010642,010643,010644,010645,010646,010647,010648,010649,010650,010651,010652,010653,010654,010655,010656,010657,010658,010659,010660,010661,010662,010663,010664,010665,010666,010667,010668,010669,010670,010671,010672,010673,010674,010675,010676,010677,010678,010679,010680,010681,010682,010683,010684,010685,010686,010687,010688,010689,010690,010691,010692,010693,010694,010695,010696,010697,010698,010699,010700,010701,010702,010703,010704,010705,010706,010707,010708,010709,010710,010711,010712,010713,010714,010715,010716,010717,010718,010719,010720,010721,010722,010723,010724,010725,010726,010727,010728,010729,010730,010731,010732,010733,010734,010735,010736,010737,010738,010739,010740,010741,010742,010743,010744,010745,010746,010747,010748,010749,010750,010751,010752,010753,010754,4249610755,1807110756,5222410757,1807010758,2304010759,1807010760,1228810761,1807010762,409610763,1807010764,5273610765,1806910766,3072010767,1806910768,1536010769,1806910770,768010771,1806910772,563210773,1806910774,5785610775,1806810776,1126410777,1806810778,4198410779,1806610780,256010781,1806410782,2150410783,1806010784,5068810785,1805510786,5632010787,1805010788,921610789,1804410790,3584010791,1803510792,2252910793,1802810794,2764810795,1802210796,2252910797,1801710798,5119910799,1801210800,5222410801,1800810802,3174410803,1800510804,5734410805,1800210806,3481510807,1800010808,5836810809,1799710810,2867210811,1799510812,4198410813,1799410814,1638410815,1799610816,3584010817,1799910818,3174410819,1800310820,4608010821,1800710822,2969610823,1801210824,5324810825,1801710826,3481510827,1802310828,2252910829,1802910830,2252910831,1803510832,3788810833,1804110834,2662310835,1804710836,5529610837,1804910838,460810839,1805110840,4966410841,1805110842,1894410843,1805210844,5478410845,1805210846,4659210847,1805310848,3174410849,1805510850,2406410851,1805810852,5939210853,1806110854,4147210855,1806510856,3072010857,1806910858,1843210859,1807310860,4659210861,1807610862,3737610863,1807910864,6451210865,1808110866,512010867,1808410868,5427210869,1808510870,1638410871,1808710872,3276810873,1808810874,5632010875,1808910876,1484810877,1809110878,5171210879,1809210880,5324810881,1809310882,3072110883,1809410884,5632010885,1809410886,5683210887,1809410888,2406410889,1809410890,3123210891,1809310892,2662310893,1809210894,1638410895,1809110896,5734410897,1808910898,972810899,1808810900,460810901,1808610902,5734410903,1808310904,4710410905,1808110906,3993610907,1807910908,3225610909,1807710910,3276810911,1807510912,5120010913,1807310914,2713610915,1807210916,010917,010918,010919,010920,010921,010922,010923,010924,010925,010926,010927,010928,010929,010930,010931,010932,010933,010934,010935,010936,010937,010938,010939,010940,010941,010942,010943,010944,010945,010946,010947,010948,010949,010950,010951,010952,010953,010954,010955,010956,010957,010958,010959,010960,010961,010962,010963,010964,010965,010966,010967,010968,010969,010970,010971,010972,010973,010974,010975,010976,010977,010978,010979,010980,010981,010982,010983,010984,010985,010986,010987,010988,010989,010990,010991,010992,010993,010994,010995,010996,010997,010998,010999,011000,011001,011002,011003,011004,011005,011006,011007,011008,011009,011010,011011,011012,011013,011014,011015,011016,011017,011018,011019,011020,011021,011022,011023,011024,011025,011026,011027,011028,011029,011030,011031,011032,011033,011034,011035,011036,011037,011038,011039,011040,011041,011042,011043,011044,011045,011046,011047,011048,011049,011050,011051,011052,011053,011054,011055,011056,011057,011058,011059,011060,011061,011062,011063,011064,011065,011066,011067,011068,011069,011070,011071,011072,011073,011074,011075,011076,011077,011078,011079,011080,011081,011082,011083,011084,011085,011086,011087,011088,011089,011090,011091,011092,011093,011094,011095,011096,011097,011098,011099,011100,011101,011102,011103,011104,011105,011106,011107,011108,011109,011110,011111,011112,011113,011114,011115,011116,011117,011118,011119,011120,011121,011122,011123,011124,011125,011126,011127,011128,011129,011130,011131,011132,011133,011134,011135,011136,011137,011138,011139,011140,011141,011142,011143,011144,011145,011146,011147,011148,011149,011150,011151,011152,011153,011154,011155,011156,011157,011158,011159,011160,011161,011162,011163,011164,011165,011166,011167,011168,011169,011170,011171,011172,011173,011174,011175,011176,011177,011178,011179,011180,011181,011182,011183,011184,011185,011186,011187,011188,011189,011190,011191,011192,011193,011194,011195,011196,011197,011198,011199,011200,011201,011202,011203,011204,011205,011206,011207,011208,011209,011210,011211,011212,011213,011214,011215,011216,011217,011218,011219,011220,011221,011222,011223,011224,011225,011226,011227,011228,011229,011230,011231,011232,011233,011234,011235,011236,011237,011238,011239,011240,011241,011242,011243,011244,011245,011246,011247,011248,011249,011250,011251,011252,011253,011254,011255,011256,011257,011258,011259,011260,011261,011262,011263,011264,011265,011266,011267,011268,011269,011270,011271,011272,011273,011274,011275,011276,011277,011278,011279,011280,011281,011282,011283,011284,011285,011286,011287,011288,011289,011290,011291,011292,011293,011294,011295,011296,011297,011298,011299,011300,011301,011302,011303,011304,011305,011306,011307,011308,011309,011310,011311,011312,011313,011314,011315,011316,011317,011318,011319,011320,011321,011322,011323,011324,011325,011326,011327,011328,011329,011330,011331,011332,011333,011334,011335,011336,011337,011338,011339,011340,011341,011342,011343,011344,011345,011346,011347,011348,011349,011350,011351,011352,011353,011354,011355,011356,011357,011358,011359,011360,011361,011362,011363,011364,011365,011366,011367,011368,011369,011370,011371,011372,011373,011374,011375,011376,011377,011378,011379,011380,011381,011382,011383,011384,011385,011386,011387,011388,011389,011390,011391,011392,011393,011394,011395,011396,011397,011398,011399,011400,011401,011402,011403,011404,011405,011406,011407,011408,011409,011410,011411,011412,011413,011414,011415,011416,011417,011418,011419,011420,011421,011422,011423,011424,011425,011426,011427,011428,011429,011430,011431,011432,011433,011434,011435,011436,011437,011438,011439,011440,011441,011442,011443,011444,011445,011446,011447,011448,011449,011450,011451,011452,011453,011454,011455,011456,011457,011458,011459,011460,011461,011462,011463,011464,011465,011466,011467,011468,011469,011470,011471,011472,011473,011474,011475,011476,011477,011478,011479,011480,011481,011482,011483,011484,011485,011486,011487,011488,011489,011490,011491,011492,011493,011494,011495,011496,011497,011498,011499,011500,011501,011502,011503,011504,011505,011506,011507,011508,011509,011510,011511,011512,011513,011514,011515,011516,011517,011518,011519,011520,011521,011522,011523,011524,011525,011526,011527,011528,011529,011530,011531,011532,011533,011534,011535,011536,011537,011538,011539,011540,011541,011542,011543,011544,011545,011546,011547,011548,011549,011550,011551,011552,011553,011554,011555,011556,011557,011558,011559,011560,011561,011562,011563,011564,011565,011566,011567,011568,011569,011570,011571,011572,011573,011574,011575,011576,011577,011578,011579,011580,011581,011582,011583,011584,011585,011586,011587,011588,011589,011590,011591,011592,011593,011594,011595,011596,011597,011598,011599,011600,011601,011602,011603,011604,011605,011606,011607,011608,011609,011610,011611,011612,011613,011614,011615,011616,011617,011618,011619,011620,011621,011622,011623,011624,011625,011626,011627,011628,011629,011630,011631,011632,011633,011634,011635,011636,011637,011638,011639,011640,011641,011642,011643,011644,011645,011646,011647,011648,011649,011650,011651,011652,011653,011654,011655,011656,011657,011658,011659,011660,011661,011662,011663,011664,011665,011666,011667,011668,011669,011670,011671,011672,011673,011674,011675,011676,011677,011678,011679,011680,011681,011682,011683,011684,011685,011686,011687,011688,011689,011690,011691,011692,011693,011694,011695,011696,011697,011698,011699,011700,011701,011702,011703,011704,011705,011706,011707,011708,011709,011710,011711,011712,011713,011714,011715,011716,011717,011718,011719,011720,011721,011722,011723,011724,011725,011726,011727,011728,011729,011730,011731,011732,011733,011734,011735,011736,011737,011738,011739,011740,011741,011742,011743,011744,011745,011746,011747,011748,011749,011750,011751,011752,011753,011754,011755,011756,011757,011758,011759,011760,011761,011762,011763,011764,011765,011766,011767,011768,011769,011770,011771,011772,011773,011774,011775,011776,011777,011778,011779,011780,011781,011782,011783,011784,011785,011786,011787,011788,011789,011790,011791,011792,011793,011794,011795,011796,011797,011798,011799,011800,011801,011802,011803,011804,011805,011806,011807,011808,011809,011810,011811,011812,011813,011814,011815,011816,011817,011818,011819,011820,011821,011822,011823,011824,011825,011826,011827,011828,011829,011830,011831,011832,011833,011834,011835,011836,011837,011838,011839,011840,011841,011842,011843,011844,011845,011846,011847,011848,011849,011850,011851,011852,011853,011854,011855,011856,011857,011858,011859,011860,011861,011862,011863,011864,011865,011866,011867,011868,011869,011870,011871,011872,011873,011874,011875,011876,011877,011878,011879,011880,011881,011882,011883,011884,011885,011886,011887,011888,011889,011890,011891,011892,011893,011894,011895,011896,011897,011898,011899,011900,011901,011902,011903,011904,011905,011906,011907,011908,011909,011910,011911,011912,011913,011914,011915,011916,011917,011918,011919,011920,011921,011922,011923,011924,011925,011926,011927,011928,011929,011930,011931,011932,011933,011934,011935,011936,011937,011938,011939,011940,011941,011942,011943,011944,011945,011946,011947,011948,011949,011950,011951,011952,011953,011954,011955,011956,011957,011958,011959,011960,011961,011962,011963,011964,011965,011966,011967,011968,011969,011970,011971,011972,011973,011974,011975,011976,011977,011978,011979,011980,011981,011982,011983,011984,011985,011986,011987,011988,011989,011990,011991,011992,011993,011994,011995,011996,011997,011998,011999,012000,012001,012002,012003,012004,012005,012006,012007,012008,012009,012010,012011,012012,012013,012014,012015,012016,012017,012018,012019,012020,012021,012022,012023,012024,012025,012026,012027,012028,012029,012030,012031,012032,012033,012034,012035,012036,012037,012038,012039,012040,012041,012042,012043,012044,012045,012046,012047,012048,012049,012050,012051,012052,012053,012054,012055,012056,012057,012058,012059,012060,012061,012062,012063,012064,012065,012066,012067,012068,012069,012070,012071,012072,012073,012074,012075,012076,012077,012078,012079,012080,012081,012082,012083,012084,012085,012086,012087,012088,012089,012090,012091,012092,012093,012094,012095,012096,012097,012098,012099,012100,012101,012102,012103,012104,012105,012106,012107,012108,012109,012110,012111,012112,012113,012114,012115,012116,012117,012118,012119,012120,012121,012122,012123,012124,012125,012126,012127,012128,012129,012130,012131,012132,012133,012134,012135,012136,012137,012138,012139,012140,012141,012142,012143,012144,012145,012146,012147,012148,012149,012150,012151,012152,012153,012154,012155,012156,012157,012158,012159,012160,012161,012162,012163,012164,012165,012166,012167,012168,012169,012170,012171,012172,012173,012174,012175,012176,012177,012178,012179,012180,012181,012182,012183,012184,012185,012186,012187,012188,012189,012190,012191,012192,012193,012194,012195,012196,012197,012198,012199,012200,012201,012202,012203,012204,012205,012206,012207,012208,012209,012210,012211,012212,012213,012214,012215,012216,012217,012218,012219,012220,012221,012222,012223,012224,012225,012226,012227,012228,012229,012230,012231,012232,012233,012234,012235,012236,012237,012238,012239,012240,012241,012242,012243,012244,012245,012246,012247,012248,012249,012250,012251,012252,012253,012254,3916212255,1707712256,4648812257,1707912258,4669612259,1708112260,1397312261,1708312262,750312263,1708412264,6149012265,1708312266,2536912267,1708312268,1085912269,1708212270,852812271,1708012272,1553112273,1707712274,4078112275,1707312276,1617012277,1706912278,2255212279,1706412280,599312281,1705912282,3667012283,1705312284,104812285,1704812286,5195212287,1704212288,787012289,1703812290,809612291,1703412292,6327712293,1703012294,4068812295,1702812296,6122812297,1702612298,6267212299,1702512300,4311312301,1702512302,5260812303,1702512304,1263012305,1702612306,3504512307,1702612308,5847712309,1702612310,723312311,1702712312,595012313,1702712314,3183012315,1702612316,3258812317,1702512318,2032412319,1702412320,154812321,1702212322,6490012323,1701812324,2867812325,1701512326,6351212327,1701012328,1867412329,1700612330,2778012331,1700112332,4467212333,1699612334,3079412335,1699112336,652412337,1698612338,495112339,1698012340,4448612341,1697412342,2983412343,1697012344,5674112345,1696712346,1773812347,1696612348,101412349,1696612350,1301612351,1696712352,5198712353,1696912354,4402612355,1697312356,1703012357,1697812358,1962812359,1698312360,2755412361,1698812362,1073112363,1699312364,938012365,1699712366,3538712367,1700012368,3251312369,1700312370,5639012371,1700512372,5970212373,1700712374,1258312375,1701012376,5485412377,1701212378,20612379,1701612380,6148412381,1701912382,2700512383,1702412384,304812385,1702712386,5697512387,1702912388,5773212389,1703212390,6450012391,1703512392,544412393,1703912394,2240212395,1704212396,4691312397,1704512398,492412399,1704912400,3488612401,1705212402,984612403,1705612404,4238212405,1705912406,1715112407,1706312408,5209512409,1706612410,2007812411,1707012412,2812412413,1707312414,012415,012416,012417,012418,012419,012420,012421,012422,012423,012424,012425,012426,012427,012428,012429,012430,012431,012432,012433,012434,012435,012436,012437,012438,012439,012440,012441,012442,012443,012444,012445,012446,012447,012448,012449,012450,012451,012452,012453,012454,012455,012456,012457,012458,012459,012460,012461,012462,012463,012464,012465,012466,012467,012468,012469,012470,012471,012472,012473,012474,012475,012476,012477,012478,012479,012480,012481,012482,012483,012484,012485,012486,012487,012488,012489,012490,012491,012492,012493,012494,012495,012496,012497,012498,012499,012500,012501,012502,012503,012504,012505,012506,012507,012508,012509,012510,012511,012512,012513,012514,012515,012516,012517,012518,012519,012520,012521,012522,012523,012524,012525,012526,012527,012528,012529,012530,012531,012532,012533,012534,012535,012536,012537,012538,012539,012540,012541,012542,012543,012544,012545,012546,012547,012548,012549,012550,012551,012552,012553,012554,012555,012556,012557,012558,012559,012560,012561,012562,012563,012564,012565,012566,012567,012568,012569,012570,012571,012572,012573,012574,012575,012576,012577,012578,012579,012580,012581,012582,012583,012584,012585,012586,012587,012588,012589,012590,012591,012592,012593,012594,012595,012596,012597,012598,012599,012600,012601,012602,012603,012604,012605,012606,012607,012608,012609,012610,012611,012612,012613,012614,012615,012616,012617,012618,012619,012620,012621,012622,012623,012624,012625,012626,012627,012628,012629,012630,012631,012632,012633,012634,012635,012636,012637,012638,012639,012640,012641,012642,012643,012644,012645,012646,012647,012648,012649,012650,012651,012652,012653,012654,012655,012656,012657,012658,012659,012660,012661,012662,012663,012664,012665,012666,012667,012668,012669,012670,012671,012672,012673,012674,012675,012676,012677,012678,012679,012680,012681,012682,012683,012684,012685,012686,012687,012688,012689,012690,012691,012692,012693,012694,012695,012696,012697,012698,012699,012700,012701,012702,012703,012704,012705,012706,012707,012708,012709,012710,012711,012712,012713,012714,012715,012716,012717,012718,012719,012720,012721,012722,012723,012724,012725,012726,012727,012728,012729,012730,012731,012732,012733,012734,012735,012736,012737,012738,012739,012740,012741,012742,012743,012744,012745,012746,012747,012748,012749,012750,012751,012752,012753,012754,012755,012756,012757,012758,012759,012760,012761,012762,012763,012764,012765,012766,012767,012768,012769,012770,012771,012772,012773,012774,012775,012776,012777,012778,012779,012780,012781,012782,012783,012784,012785,012786,012787,012788,012789,012790,012791,012792,012793,012794,012795,012796,012797,012798,012799,012800,012801,012802,012803,012804,012805,012806,012807,012808,012809,012810,012811,012812,012813,012814,012815,012816,012817,012818,012819,012820,012821,012822,012823,012824,012825,012826,012827,012828,012829,012830,012831,012832,012833,012834,012835,012836,012837,012838,012839,012840,012841,012842,012843,012844,012845,012846,012847,012848,012849,012850,012851,012852,012853,012854,012855,012856,012857,012858,012859,012860,012861,012862,012863,012864,012865,012866,012867,012868,012869,012870,012871,012872,012873,012874,012875,012876,012877,012878,012879,012880,012881,012882,012883,012884,012885,012886,012887,012888,012889,012890,012891,012892,012893,012894,012895,012896,012897,012898,012899,012900,012901,012902,012903,012904,012905,012906,012907,012908,012909,012910,012911,012912,012913,012914,012915,012916,012917,012918,012919,012920,012921,012922,012923,012924,012925,012926,012927,012928,012929,012930,012931,012932,012933,012934,012935,012936,012937,012938,012939,012940,012941,012942,012943,012944,012945,012946,012947,012948,012949,012950,012951,012952,012953,012954,012955,012956,012957,012958,012959,012960,012961,012962,012963,012964,012965,012966,012967,012968,012969,012970,012971,012972,012973,012974,012975,012976,012977,012978,012979,012980,012981,012982,012983,012984,012985,012986,012987,012988,012989,012990,012991,012992,012993,012994,012995,012996,012997,012998,012999,013000,013001,013002,013003,013004,013005,013006,013007,013008,013009,013010,013011,013012,013013,013014,013015,013016,013017,013018,013019,013020,013021,013022,013023,013024,013025,013026,013027,013028,013029,013030,013031,013032,013033,013034,013035,013036,013037,013038,013039,013040,013041,013042,013043,013044,013045,013046,013047,013048,013049,013050,013051,013052,013053,013054,013055,013056,013057,013058,013059,013060,013061,013062,013063,013064,013065,013066,013067,013068,013069,013070,013071,013072,013073,013074,013075,013076,013077,013078,013079,013080,013081,013082,013083,013084,013085,013086,013087,013088,013089,013090,013091,013092,013093,013094,013095,013096,013097,013098,013099,013100,013101,013102,013103,013104,013105,013106,013107,013108,013109,013110,013111,013112,013113,013114,013115,013116,013117,013118,013119,013120,013121,013122,013123,013124,013125,013126,013127,013128,013129,013130,013131,013132,013133,013134,013135,013136,013137,013138,013139,013140,013141,013142,013143,013144,013145,013146,013147,013148,013149,013150,013151,013152,013153,013154,013155,013156,013157,013158,013159,013160,013161,013162,013163,013164,013165,013166,013167,013168,013169,013170,013171,013172,013173,013174,013175,013176,013177,013178,013179,013180,013181,013182,013183,013184,013185,013186,013187,013188,013189,013190,013191,013192,013193,013194,013195,013196,013197,013198,013199,013200,013201,013202,013203,013204,013205,013206,013207,013208,013209,013210,013211,013212,013213,013214,013215,013216,013217,013218,013219,013220,013221,013222,013223,013224,013225,013226,013227,013228,013229,013230,013231,013232,013233,013234,013235,013236,013237,013238,013239,013240,013241,013242,013243,013244,013245,013246,013247,013248,013249,013250,013251,013252,013253,013254,013255,013256,013257,013258,013259,013260,013261,013262,013263,013264,013265,013266,013267,013268,013269,013270,013271,013272,013273,013274,013275,013276,013277,013278,013279,013280,013281,013282,013283,013284,013285,013286,013287,013288,013289,013290,013291,013292,013293,013294,013295,013296,013297,013298,013299,013300,013301,013302,013303,013304,013305,013306,013307,013308,013309,013310,013311,013312,013313,013314,013315,013316,013317,013318,013319,013320,013321,013322,013323,013324,013325,013326,013327,013328,013329,013330,013331,013332,013333,013334,013335,013336,013337,013338,013339,013340,013341,013342,013343,013344,013345,013346,013347,013348,013349,013350,013351,013352,013353,013354,013355,013356,013357,013358,013359,013360,013361,013362,013363,013364,013365,013366,013367,013368,013369,013370,013371,013372,013373,013374,013375,013376,013377,013378,013379,013380,013381,013382,013383,013384,013385,013386,013387,013388,013389,013390,013391,013392,013393,013394,013395,013396,013397,013398,013399,013400,013401,013402,013403,013404,013405,013406,013407,013408,013409,013410,013411,013412,013413,013414,013415,013416,013417,013418,013419,013420,013421,013422,013423,013424,013425,013426,013427,013428,013429,013430,013431,013432,013433,013434,013435,013436,013437,013438,013439,013440,013441,013442,013443,013444,013445,013446,013447,013448,013449,013450,013451,013452,013453,013454,013455,013456,013457,013458,013459,013460,013461,013462,013463,013464,013465,013466,013467,013468,013469,013470,013471,013472,013473,013474,013475,013476,013477,013478,013479,013480,013481,013482,013483,013484,013485,013486,013487,013488,013489,013490,013491,013492,013493,013494,013495,013496,013497,013498,013499,013500,013501,013502,013503,013504,013505,013506,013507,013508,013509,013510,013511,013512,013513,013514,013515,013516,013517,013518,013519,013520,013521,013522,013523,013524,013525,013526,013527,013528,013529,013530,013531,013532,013533,013534,013535,013536,013537,013538,013539,013540,013541,013542,013543,013544,013545,013546,013547,013548,013549,013550,013551,013552,013553,013554,013555,013556,013557,013558,013559,013560,013561,013562,013563,013564,013565,013566,013567,013568,013569,013570,013571,013572,013573,013574,013575,013576,013577,013578,013579,013580,013581,013582,013583,013584,013585,013586,013587,013588,013589,013590,013591,013592,013593,013594,013595,013596,013597,013598,013599,013600,013601,013602,013603,013604,013605,013606,013607,013608,013609,013610,013611,013612,013613,013614,013615,013616,013617,013618,013619,013620,013621,013622,013623,013624,013625,013626,013627,013628,013629,013630,013631,013632,013633,013634,013635,013636,013637,013638,013639,013640,013641,013642,013643,013644,013645,013646,013647,013648,013649,013650,013651,013652,013653,013654,013655,013656,013657,013658,013659,013660,013661,013662,013663,013664,013665,013666,013667,013668,013669,013670,013671,013672,013673,013674,013675,013676,013677,013678,013679,013680,013681,013682,013683,013684,013685,013686,013687,013688,013689,013690,013691,013692,013693,013694,013695,013696,013697,013698,013699,013700,013701,013702,013703,013704,013705,013706,013707,013708,013709,013710,013711,013712,013713,013714,013715,013716,013717,013718,013719,013720,013721,013722,013723,013724,013725,013726,013727,013728,013729,013730,013731,013732,013733,013734,013735,013736,013737,013738,013739,013740,013741,013742,013743,013744,013745,013746,013747,013748,013749,013750,013751,013752,013753,013754,761413755,1707613756,3836613757,1707813758,5569013759,1708013760,4089813761,1708213762,5761913763,1708313764,1547913765,1708413766,1293213767,1708413768,2692213769,1708313770,4804213771,1708113772,926113773,1707913774,5597013775,1707513776,5016713777,1707113778,744613779,1706713780,115613781,1706213782,3720113783,1705613784,6005013785,1705013786,2763113787,1704513788,3059013789,1704013790,580513791,1703613792,3556113793,1703213794,4820813795,1702913796,3638113797,1702713798,433013799,1702613800,2597813801,1702513802,2494213803,1702513804,4559713805,1702513806,1413613807,1702613808,4635413809,1702613810,6490213811,1702613812,582013813,1702713814,5470213815,1702613816,889613817,1702613818,342413819,1702513820,2928213821,1702313822,2547213823,1702013824,36413825,1701713826,5626613827,1701213828,4153213829,1700813830,807113831,1700413832,3534213833,1699913834,2252813835,1699413836,1949013837,1698913838,3136313839,1698313840,5154713841,1697713842,5456013843,1697213844,3423213845,1696913846,5887513847,1696613848,4823413849,1696513850,1907813851,1696613852,3833413853,1696813854,723813855,1697213856,3824213857,1697613858,4035813859,1698113860,4847613861,1698613862,4230613863,1699113864,605213865,1699613866,562013867,1700013868,2338113869,1700313870,6353713871,1700513872,5748613873,1700713874,4602413875,1700913876,6428013877,1701113878,682113879,1701513880,5290813881,1701813882,388513883,1702313884,6419813885,1702513886,5163213887,1702813888,4789813889,1703113890,5128513891,1703413892,6167613893,1703713894,1724113895,1704113896,3556313897,1704413898,5530513899,1704713900,1800213901,1705113902,5169313903,1705413904,1607013905,1705813906,4702013907,1706113908,3323613909,1706513910,5559013911,1706813912,5897413913,1707113914,4554213915,1707413916,013917,013918,013919,013920,013921,013922,013923,013924,013925,013926,013927,013928,013929,013930,013931,013932,013933,013934,013935,013936,013937,013938,013939,013940,013941,013942,013943,013944,013945,013946,013947,013948,013949,013950,013951,013952,013953,013954,013955,013956,013957,013958,013959,013960,013961,013962,013963,013964,013965,013966,013967,013968,013969,013970,013971,013972,013973,013974,013975,013976,013977,013978,013979,013980,013981,013982,013983,013984,013985,013986,013987,013988,013989,013990,013991,013992,013993,013994,013995,013996,013997,013998,013999,014000,014001,014002,014003,014004,014005,014006,014007,014008,014009,014010,014011,014012,014013,014014,014015,014016,014017,014018,014019,014020,014021,014022,014023,014024,014025,014026,014027,014028,014029,014030,014031,014032,014033,014034,014035,014036,014037,014038,014039,014040,014041,014042,014043,014044,014045,014046,014047,014048,014049,014050,014051,014052,014053,014054,014055,014056,014057,014058,014059,014060,014061,014062,014063,014064,014065,014066,014067,014068,014069,014070,014071,014072,014073,014074,014075,014076,014077,014078,014079,014080,014081,014082,014083,014084,014085,014086,014087,014088,014089,014090,014091,014092,014093,014094,014095,014096,014097,014098,014099,014100,014101,014102,014103,014104,014105,014106,014107,014108,014109,014110,014111,014112,014113,014114,014115,014116,014117,014118,014119,014120,014121,014122,014123,014124,014125,014126,014127,014128,014129,014130,014131,014132,014133,014134,014135,014136,014137,014138,014139,014140,014141,014142,014143,014144,014145,014146,014147,014148,014149,014150,014151,014152,014153,014154,014155,014156,014157,014158,014159,014160,014161,014162,014163,014164,014165,014166,014167,014168,014169,014170,014171,014172,014173,014174,014175,014176,014177,014178,014179,014180,014181,014182,014183,014184,014185,014186,014187,014188,014189,014190,014191,014192,014193,014194,014195,014196,014197,014198,014199,014200,014201,014202,014203,014204,014205,014206,014207,014208,014209,014210,014211,014212,014213,014214,014215,014216,014217,014218,014219,014220,014221,014222,014223,014224,014225,014226,014227,014228,014229,014230,014231,014232,014233,014234,014235,014236,014237,014238,014239,014240,014241,014242,014243,014244,014245,014246,014247,014248,014249,014250,014251,014252,014253,014254,014255,014256,014257,014258,014259,014260,014261,014262,014263,014264,014265,014266,014267,014268,014269,014270,014271,014272,014273,014274,014275,014276,014277,014278,014279,014280,014281,014282,014283,014284,014285,014286,014287,014288,014289,014290,014291,014292,014293,014294,014295,014296,014297,014298,014299,014300,014301,014302,014303,014304,014305,014306,014307,014308,014309,014310,014311,014312,014313,014314,014315,014316,014317,014318,014319,014320,014321,014322,014323,014324,014325,014326,014327,014328,014329,014330,014331,014332,014333,014334,014335,014336,014337,014338,014339,014340,014341,014342,014343,014344,014345,014346,014347,014348,014349,014350,014351,014352,014353,014354,014355,014356,014357,014358,014359,014360,014361,014362,014363,014364,014365,014366,014367,014368,014369,014370,014371,014372,014373,014374,014375,014376,014377,014378,014379,014380,014381,014382,014383,014384,014385,014386,014387,014388,014389,014390,014391,014392,014393,014394,014395,014396,014397,014398,014399,014400,014401,014402,014403,014404,014405,014406,014407,014408,014409,014410,014411,014412,014413,014414,014415,014416,014417,014418,014419,014420,014421,014422,014423,014424,014425,014426,014427,014428,014429,014430,014431,014432,014433,014434,014435,014436,014437,014438,014439,014440,014441,014442,014443,014444,014445,014446,014447,014448,014449,014450,014451,014452,014453,014454,014455,014456,014457,014458,014459,014460,014461,014462,014463,014464,014465,014466,014467,014468,014469,014470,014471,014472,014473,014474,014475,014476,014477,014478,014479,014480,014481,014482,014483,014484,014485,014486,014487,014488,014489,014490,014491,014492,014493,014494,014495,014496,014497,014498,014499,014500,014501,014502,014503,014504,014505,014506,014507,014508,014509,014510,014511,014512,014513,014514,014515,014516,014517,014518,014519,014520,014521,014522,014523,014524,014525,014526,014527,014528,014529,014530,014531,014532,014533,014534,014535,014536,014537,014538,014539,014540,014541,014542,014543,014544,014545,014546,014547,014548,014549,014550,014551,014552,014553,014554,014555,014556,014557,014558,014559,014560,014561,014562,014563,014564,014565,014566,014567,014568,014569,014570,014571,014572,014573,014574,014575,014576,014577,014578,014579,014580,014581,014582,014583,014584,014585,014586,014587,014588,014589,014590,014591,014592,014593,014594,014595,014596,014597,014598,014599,014600,014601,014602,014603,014604,014605,014606,014607,014608,014609,014610,014611,014612,014613,014614,014615,014616,014617,014618,014619,014620,014621,014622,014623,014624,014625,014626,014627,014628,014629,014630,014631,014632,014633,014634,014635,014636,014637,014638,014639,014640,014641,014642,014643,014644,014645,014646,014647,014648,014649,014650,014651,014652,014653,014654,014655,014656,014657,014658,014659,014660,014661,014662,014663,014664,014665,014666,014667,014668,014669,014670,014671,014672,014673,014674,014675,014676,014677,014678,014679,014680,014681,014682,014683,014684,014685,014686,014687,014688,014689,014690,014691,014692,014693,014694,014695,014696,014697,014698,014699,014700,014701,014702,014703,014704,014705,014706,014707,014708,014709,014710,014711,014712,014713,014714,014715,014716,014717,014718,014719,014720,014721,014722,014723,014724,014725,014726,014727,014728,014729,014730,014731,014732,014733,014734,014735,014736,014737,014738,014739,014740,014741,014742,014743,014744,014745,014746,014747,014748,014749,014750,014751,014752,014753,014754,014755,014756,014757,014758,014759,014760,014761,014762,014763,014764,014765,014766,014767,014768,014769,014770,014771,014772,014773,014774,014775,014776,014777,014778,014779,014780,014781,014782,014783,014784,014785,014786,014787,014788,014789,014790,014791,014792,014793,014794,014795,014796,014797,014798,014799,014800,014801,014802,014803,014804,014805,014806,014807,014808,014809,014810,014811,014812,014813,014814,014815,014816,014817,014818,014819,014820,014821,014822,014823,014824,014825,014826,014827,014828,014829,014830,014831,014832,014833,014834,014835,014836,014837,014838,014839,014840,014841,014842,014843,014844,014845,014846,014847,014848,014849,014850,014851,014852,014853,014854,014855,014856,014857,014858,014859,014860,014861,014862,014863,014864,014865,014866,014867,014868,014869,014870,014871,014872,014873,014874,014875,014876,014877,014878,014879,014880,014881,014882,014883,014884,014885,014886,014887,014888,014889,014890,014891,014892,014893,014894,014895,014896,014897,014898,014899,014900,014901,014902,014903,014904,014905,014906,014907,014908,014909,014910,014911,014912,014913,014914,014915,014916,014917,014918,014919,014920,014921,014922,014923,014924,014925,014926,014927,014928,014929,014930,014931,014932,014933,014934,014935,014936,014937,014938,014939,014940,014941,014942,014943,014944,014945,014946,014947,014948,014949,014950,014951,014952,014953,014954,014955,014956,014957,014958,014959,014960,014961,014962,014963,014964,014965,014966,014967,014968,014969,014970,014971,014972,014973,014974,014975,014976,014977,014978,014979,014980,014981,014982,014983,014984,014985,014986,014987,014988,014989,014990,014991,014992,014993,014994,014995,014996,014997,014998,014999,015000,015001,015002,015003,015004,015005,015006,015007,015008,015009,015010,015011,015012,015013,015014,015015,015016,015017,015018,015019,015020,015021,015022,015023,015024,015025,015026,015027,015028,015029,015030,015031,015032,015033,015034,015035,015036,015037,015038,015039,015040,015041,015042,015043,015044,015045,015046,015047,015048,015049,015050,015051,015052,015053,015054,015055,015056,015057,015058,015059,015060,015061,015062,015063,015064,015065,015066,015067,015068,015069,015070,015071,015072,015073,015074,015075,015076,015077,015078,015079,015080,015081,015082,015083,015084,015085,015086,015087,015088,015089,015090,015091,015092,015093,015094,015095,015096,015097,015098,015099,015100,015101,015102,015103,015104,015105,015106,015107,015108,015109,015110,015111,015112,015113,015114,015115,015116,015117,015118,015119,015120,015121,015122,015123,015124,015125,015126,015127,015128,015129,015130,015131,015132,015133,015134,015135,015136,015137,015138,015139,015140,015141,015142,015143,015144,015145,015146,015147,015148,015149,015150,015151,015152,015153,015154,015155,015156,015157,015158,015159,015160,015161,015162,015163,015164,015165,015166,015167,015168,015169,015170,015171,015172,015173,015174,015175,015176,015177,015178,015179,015180,015181,015182,015183,015184,015185,015186,015187,015188,015189,015190,015191,015192,015193,015194,015195,015196,015197,015198,015199,015200,015201,015202,015203,015204,015205,015206,015207,015208,015209,015210,015211,015212,015213,015214,015215,015216,015217,015218,015219,015220,015221,015222,015223,015224,015225,015226,015227,015228,015229,015230,015231,015232,015233,015234,015235,015236,015237,015238,015239,015240,015241,015242,015243,015244,015245,015246,015247,015248,015249,015250,015251,015252,015253,015254,2270615255,1707715256,4264115257,1707915258,5532015259,1708115260,3552415261,1708315262,4399415263,1708415264,4733715265,1708415266,1443715267,1708415268,406615269,1708315270,849515271,1708115272,2179015273,1707815274,4426415275,1707415276,2302015277,1707015278,2657815279,1706515280,180015281,1706015282,3713415283,1705415284,1054415285,1704915286,507115287,1704415288,3642815289,1703915290,4644015291,1703515292,4788415293,1703215294,2217415295,1703015296,5559715297,1702815298,5702415299,1702715300,5093215301,1702715302,5914515303,1702715304,2786215305,1702815306,5144115307,1702815308,560515309,1702915310,980815311,1702915312,6512115313,1702815314,2702715315,1702815316,2118015317,1702715318,6255815319,1702515320,1878515321,1702415322,1172315323,1702115324,4195815325,1701715326,1782615327,1701315328,3936415329,1700815330,3184715331,1700315332,3438415333,1699815334,4537815335,1699215336,1140015337,1698715338,4843415339,1698015340,507815341,1697515342,1029515343,1697015344,1635415345,1696715346,1054415347,1696515348,5203415349,1696415350,6256915351,1696515352,4179815353,1696815354,2868915355,1697215356,980615357,1697715358,2283815359,1698215360,2745215361,1698715362,1591615363,1699215364,4338215365,1699615366,938915367,1700015368,645615369,1700315370,4440815371,1700515372,4887115373,1700715374,3828815375,1700915376,323915377,1701215378,4885615379,1701515380,3789715381,1701915382,335915383,1702415384,3764815385,1702615386,2969515387,1702915388,2919615389,1703215390,4491415391,1703515392,6162615393,1703815394,1870515395,1704215396,3624715397,1704515398,5960615399,1704815400,2680015401,1705215402,426415403,1705615404,3801415405,1705915406,1420215407,1706315408,4255815409,1706615410,6324615411,1706915412,69815413,1707315414,015415,015416,015417,015418,015419,015420,015421,015422,015423,015424,015425,015426,015427,015428,015429,015430,015431,015432,015433,015434,015435,015436,015437,015438,015439,015440,015441,015442,015443,015444,015445,015446,015447,015448,015449,015450,015451,015452,015453,015454,015455,015456,015457,015458,015459,015460,015461,015462,015463,015464,015465,015466,015467,015468,015469,015470,015471,015472,015473,015474,015475,015476,015477,015478,015479,015480,015481,015482,015483,015484,015485,015486,015487,015488,015489,015490,015491,015492,015493,015494,015495,015496,015497,015498,015499,015500,015501,015502,015503,015504,015505,015506,015507,015508,015509,015510,015511,015512,015513,015514,015515,015516,015517,015518,015519,015520,015521,015522,015523,015524,015525,015526,015527,015528,015529,015530,015531,015532,015533,015534,015535,015536,015537,015538,015539,015540,015541,015542,015543,015544,015545,015546,015547,015548,015549,015550,015551,015552,015553,015554,015555,015556,015557,015558,015559,015560,015561,015562,015563,015564,015565,015566,015567,015568,015569,015570,015571,015572,015573,015574,015575,015576,015577,015578,015579,015580,015581,015582,015583,015584,015585,015586,015587,015588,015589,015590,015591,015592,015593,015594,015595,015596,015597,015598,015599,015600,015601,015602,015603,015604,015605,015606,015607,015608,015609,015610,015611,015612,015613,015614,015615,015616,015617,015618,015619,015620,015621,015622,015623,015624,015625,015626,015627,015628,015629,015630,015631,015632,015633,015634,015635,015636,015637,015638,015639,015640,015641,015642,015643,015644,015645,015646,015647,015648,015649,015650,015651,015652,015653,015654,015655,015656,015657,015658,015659,015660,015661,015662,015663,015664,015665,015666,015667,015668,015669,015670,015671,015672,015673,015674,015675,015676,015677,015678,015679,015680,015681,015682,015683,015684,015685,015686,015687,015688,015689,015690,015691,015692,015693,015694,015695,015696,015697,015698,015699,015700,015701,015702,015703,015704,015705,015706,015707,015708,015709,015710,015711,015712,015713,015714,015715,015716,015717,015718,015719,015720,015721,015722,015723,015724,015725,015726,015727,015728,015729,015730,015731,015732,015733,015734,015735,015736,015737,015738,015739,015740,015741,015742,015743,015744,015745,015746,015747,015748,015749,015750,015751,015752,015753,015754,015755,015756,015757,015758,015759,015760,015761,015762,015763,015764,015765,015766,015767,015768,015769,015770,015771,015772,015773,015774,015775,015776,015777,015778,015779,015780,015781,015782,015783,015784,015785,015786,015787,015788,015789,015790,015791,015792,015793,015794,015795,015796,015797,015798,015799,015800,015801,015802,015803,015804,015805,015806,015807,015808,015809,015810,015811,015812,015813,015814,015815,015816,015817,015818,015819,015820,015821,015822,015823,015824,015825,015826,015827,015828,015829,015830,015831,015832,015833,015834,015835,015836,015837,015838,015839,015840,015841,015842,015843,015844,015845,015846,015847,015848,015849,015850,015851,015852,015853,015854,015855,015856,015857,015858,015859,015860,015861,015862,015863,015864,015865,015866,015867,015868,015869,015870,015871,015872,015873,015874,015875,015876,015877,015878,015879,015880,015881,015882,015883,015884,015885,015886,015887,015888,015889,015890,015891,015892,015893,015894,015895,015896,015897,015898,015899,015900,015901,015902,015903,015904,015905,015906,015907,015908,015909,015910,015911,015912,015913,015914,015915,015916,015917,015918,015919,015920,015921,015922,015923,015924,015925,015926,015927,015928,015929,015930,015931,015932,015933,015934,015935,015936,015937,015938,015939,015940,015941,015942,015943,015944,015945,015946,015947,015948,015949,015950,015951,015952,015953,015954,015955,015956,015957,015958,015959,015960,015961,015962,015963,015964,015965,015966,015967,015968,015969,015970,015971,015972,015973,015974,015975,015976,015977,015978,015979,015980,015981,015982,015983,015984,015985,015986,015987,015988,015989,015990,015991,015992,015993,015994,015995,015996,015997,015998,015999,016000,016001,016002,016003,016004,016005,016006,016007,016008,016009,016010,016011,016012,016013,016014,016015,016016,016017,016018,016019,016020,016021,016022,016023,016024,016025,016026,016027,016028,016029,016030,016031,016032,016033,016034,016035,016036,016037,016038,016039,016040,016041,016042,016043,016044,016045,016046,016047,016048,016049,016050,016051,016052,016053,016054,016055,016056,016057,016058,016059,016060,016061,016062,016063,016064,016065,016066,016067,016068,016069,016070,016071,016072,016073,016074,016075,016076,016077,016078,016079,016080,016081,016082,016083,016084,016085,016086,016087,016088,016089,016090,016091,016092,016093,016094,016095,016096,016097,016098,016099,016100,016101,016102,016103,016104,016105,016106,016107,016108,016109,016110,016111,016112,016113,016114,016115,016116,016117,016118,016119,016120,016121,016122,016123,016124,016125,016126,016127,016128,016129,016130,016131,016132,016133,016134,016135,016136,016137,016138,016139,016140,016141,016142,016143,016144,016145,016146,016147,016148,016149,016150,016151,016152,016153,016154,016155,016156,016157,016158,016159,016160,016161,016162,016163,016164,016165,016166,016167,016168,016169,016170,016171,016172,016173,016174,016175,016176,016177,016178,016179,016180,016181,016182,016183,016184,016185,016186,016187,016188,016189,016190,016191,016192,016193,016194,016195,016196,016197,016198,016199,016200,016201,016202,016203,016204,016205,016206,016207,016208,016209,016210,016211,016212,016213,016214,016215,016216,016217,016218,016219,016220,016221,016222,016223,016224,016225,016226,016227,016228,016229,016230,016231,016232,016233,016234,016235,016236,016237,016238,016239,016240,016241,016242,016243,016244,016245,016246,016247,016248,016249,016250,016251,016252,016253,016254,016255,016256,016257,016258,016259,016260,016261,016262,016263,016264,016265,016266,016267,016268,016269,016270,016271,016272,016273,016274,016275,016276,016277,016278,016279,016280,016281,016282,016283,016284,016285,016286,016287,016288,016289,016290,016291,016292,016293,016294,016295,016296,016297,016298,016299,016300,016301,016302,016303,016304,016305,016306,016307,016308,016309,016310,016311,016312,016313,016314,016315,016316,016317,016318,016319,016320,016321,016322,016323,016324,016325,016326,016327,016328,016329,016330,016331,016332,016333,016334,016335,016336,016337,016338,016339,016340,016341,016342,016343,016344,016345,016346,016347,016348,016349,016350,016351,016352,016353,016354,016355,016356,016357,016358,016359,016360,016361,016362,016363,016364,016365,016366,016367,016368,016369,016370,016371,016372,016373,016374,016375,016376,016377,016378,016379,016380,016381,016382,016383,016384,016385,016386,016387,016388,016389,016390,016391,016392,016393,016394,016395,016396,016397,016398,016399,016400,016401,016402,016403,016404,016405,016406,016407,016408,016409,016410,016411,016412,016413,016414,016415,016416,016417,016418,016419,016420,016421,016422,016423,016424,016425,016426,016427,016428,016429,016430,016431,016432,016433,016434,016435,016436,016437,016438,016439,016440,016441,016442,016443,016444,016445,016446,016447,016448,016449,016450,016451,016452,016453,016454,016455,016456,016457,016458,016459,016460,016461,016462,016463,016464,016465,016466,016467,016468,016469,016470,016471,016472,016473,016474,016475,016476,016477,016478,016479,016480,016481,016482,016483,016484,016485,016486,016487,016488,016489,016490,016491,016492,016493,016494,016495,016496,016497,016498,016499,016500,016501,016502,016503,016504,016505,016506,016507,016508,016509,016510,016511,016512,016513,016514,016515,016516,016517,016518,016519,016520,016521,016522,016523,016524,016525,016526,016527,016528,016529,016530,016531,016532,016533,016534,016535,016536,016537,016538,016539,016540,016541,016542,016543,016544,016545,016546,016547,016548,016549,016550,016551,016552,016553,016554,016555,016556,016557,016558,016559,016560,016561,016562,016563,016564,016565,016566,016567,016568,016569,016570,016571,016572,016573,016574,016575,016576,016577,016578,016579,016580,016581,016582,016583,016584,016585,016586,016587,016588,016589,016590,016591,016592,016593,016594,016595,016596,016597,016598,016599,016600,016601,016602,016603,016604,016605,016606,016607,016608,016609,016610,016611,016612,016613,016614,016615,016616,016617,016618,016619,016620,016621,016622,016623,016624,016625,016626,016627,016628,016629,016630,016631,016632,016633,016634,016635,016636,016637,016638,016639,016640,016641,016642,016643,016644,016645,016646,016647,016648,016649,016650,016651,016652,016653,016654,016655,016656,016657,016658,016659,016660,016661,016662,016663,016664,016665,016666,016667,016668,016669,016670,016671,016672,016673,016674,016675,016676,016677,016678,016679,016680,016681,016682,016683,016684,016685,016686,016687,016688,016689,016690,016691,016692,016693,016694,016695,016696,016697,016698,016699,016700,016701,016702,016703,016704,016705,016706,016707,016708,016709,016710,016711,016712,016713,016714,016715,016716,016717,016718,016719,016720,016721,016722,016723,016724,016725,016726,016727,016728,016729,016730,016731,016732,016733,016734,016735,016736,016737,016738,016739,016740,016741,016742,016743,016744,016745,016746,016747,016748,016749,016750,016751,016752,016753,016754,2270616755,1707716756,4264116757,1707916758,5532016759,1708116760,3552416761,1708316762,4399416763,1708416764,4733716765,1708416766,1443716767,1708416768,406616769,1708316770,849516771,1708116772,2179016773,1707816774,4426416775,1707416776,2302016777,1707016778,2657816779,1706516780,180016781,1706016782,3713416783,1705416784,1054416785,1704916786,507116787,1704416788,3642816789,1703916790,4644016791,1703516792,4788416793,1703216794,2217416795,1703016796,5559716797,1702816798,5702416799,1702716800,5093216801,1702716802,5914516803,1702716804,2786216805,1702816806,5144116807,1702816808,560516809,1702916810,980816811,1702916812,6512116813,1702816814,2702716815,1702816816,2118016817,1702716818,6255816819,1702516820,1878516821,1702416822,1172316823,1702116824,4195816825,1701716826,1782616827,1701316828,3936416829,1700816830,3184716831,1700316832,3438416833,1699816834,4537816835,1699216836,1140016837,1698716838,4843416839,1698016840,507816841,1697516842,1029516843,1697016844,1635416845,1696716846,1054416847,1696516848,5203416849,1696416850,6256916851,1696516852,4179816853,1696816854,2868916855,1697216856,980616857,1697716858,2283816859,1698216860,2745216861,1698716862,1591616863,1699216864,4338216865,1699616866,938916867,1700016868,645616869,1700316870,4440816871,1700516872,4887116873,1700716874,3828816875,1700916876,323916877,1701216878,4885616879,1701516880,3789716881,1701916882,335916883,1702416884,3764816885,1702616886,2969516887,1702916888,2919616889,1703216890,4491416891,1703516892,6162616893,1703816894,1870516895,1704216896,3624716897,1704516898,5960616899,1704816900,2680016901,1705216902,426416903,1705616904,3801416905,1705916906,1420216907,1706316908,4255816909,1706616910,6324616911,1706916912,69816913,1707316914,016915,016916,016917,016918,016919,016920,016921,016922,016923,016924,016925,016926,016927,016928,016929,016930,016931,016932,016933,016934,016935,016936,016937,016938,016939,016940,016941,016942,016943,016944,016945,016946,016947,016948,016949,016950,016951,016952,016953,016954,016955,016956,016957,016958,016959,016960,016961,016962,016963,016964,016965,016966,016967,016968,016969,016970,016971,016972,016973,016974,016975,016976,016977,016978,016979,016980,016981,016982,016983,016984,016985,016986,016987,016988,016989,016990,016991,016992,016993,016994,016995,016996,016997,016998,016999,017000,017001,017002,017003,017004,017005,017006,017007,017008,017009,017010,017011,017012,017013,017014,017015,017016,017017,017018,017019,017020,017021,017022,017023,017024,017025,017026,017027,017028,017029,017030,017031,017032,017033,017034,017035,017036,017037,017038,017039,017040,017041,017042,017043,017044,017045,017046,017047,017048,017049,017050,017051,017052,017053,017054,017055,017056,017057,017058,017059,017060,017061,017062,017063,017064,017065,017066,017067,017068,017069,017070,017071,017072,017073,017074,017075,017076,017077,017078,017079,017080,017081,017082,017083,017084,017085,017086,017087,017088,017089,017090,017091,017092,017093,017094,017095,017096,017097,017098,017099,017100,017101,017102,017103,017104,017105,017106,017107,017108,017109,017110,017111,017112,017113,017114,017115,017116,017117,017118,017119,017120,017121,017122,017123,017124,017125,017126,017127,017128,017129,017130,017131,017132,017133,017134,017135,017136,017137,017138,017139,017140,017141,017142,017143,017144,017145,017146,017147,017148,017149,017150,017151,017152,017153,017154,017155,017156,017157,017158,017159,017160,017161,017162,017163,017164,017165,017166,017167,017168,017169,017170,017171,017172,017173,017174,017175,017176,017177,017178,017179,017180,017181,017182,017183,017184,017185,017186,017187,017188,017189,017190,017191,017192,017193,017194,017195,017196,017197,017198,017199,017200,017201,017202,017203,017204,017205,017206,017207,017208,017209,017210,017211,017212,017213,017214,017215,017216,017217,017218,017219,017220,017221,017222,017223,017224,017225,017226,017227,017228,017229,017230,017231,017232,017233,017234,017235,017236,017237,017238,017239,017240,017241,017242,017243,017244,017245,017246,017247,017248,017249,017250,017251,017252,017253,017254,017255,017256,017257,017258,017259,017260,017261,017262,017263,017264,017265,017266,017267,017268,017269,017270,017271,017272,017273,017274,017275,017276,017277,017278,017279,017280,017281,017282,017283,017284,017285,017286,017287,017288,017289,017290,017291,017292,017293,017294,017295,017296,017297,017298,017299,017300,017301,017302,017303,017304,017305,017306,017307,017308,017309,017310,017311,017312,017313,017314,017315,017316,017317,017318,017319,017320,017321,017322,017323,017324,017325,017326,017327,017328,017329,017330,017331,017332,017333,017334,017335,017336,017337,017338,017339,017340,017341,017342,017343,017344,017345,017346,017347,017348,017349,017350,017351,017352,017353,017354,017355,017356,017357,017358,017359,017360,017361,017362,017363,017364,017365,017366,017367,017368,017369,017370,017371,017372,017373,017374,017375,017376,017377,017378,017379,017380,017381,017382,017383,017384,017385,017386,017387,017388,017389,017390,017391,017392,017393,017394,017395,017396,017397,017398,017399,017400,017401,017402,017403,017404,017405,017406,017407,017408,017409,017410,017411,017412,017413,017414,017415,017416,017417,017418,017419,017420,017421,017422,017423,017424,017425,017426,017427,017428,017429,017430,017431,017432,017433,017434,017435,017436,017437,017438,017439,017440,017441,017442,017443,017444,017445,017446,017447,017448,017449,017450,017451,017452,017453,017454,017455,017456,017457,017458,017459,017460,017461,017462,017463,017464,017465,017466,017467,017468,017469,017470,017471,017472,017473,017474,017475,017476,017477,017478,017479,017480,017481,017482,017483,017484,017485,017486,017487,017488,017489,017490,017491,017492,017493,017494,017495,017496,017497,017498,017499,017500,017501,017502,017503,017504,017505,017506,017507,017508,017509,017510,017511,017512,017513,017514,017515,017516,017517,017518,017519,017520,017521,017522,017523,017524,017525,017526,017527,017528,017529,017530,017531,017532,017533,017534,017535,017536,017537,017538,017539,017540,017541,017542,017543,017544,017545,017546,017547,017548,017549,017550,017551,017552,017553,017554,017555,017556,017557,017558,017559,017560,017561,017562,017563,017564,017565,017566,017567,017568,017569,017570,017571,017572,017573,017574,017575,017576,017577,017578,017579,017580,017581,017582,017583,017584,017585,017586,017587,017588,017589,017590,017591,017592,017593,017594,017595,017596,017597,017598,017599,017600,017601,017602,017603,017604,017605,017606,017607,017608,017609,017610,017611,017612,017613,017614,017615,017616,017617,017618,017619,017620,017621,017622,017623,017624,017625,017626,017627,017628,017629,017630,017631,017632,017633,017634,017635,017636,017637,017638,017639,017640,017641,017642,017643,017644,017645,017646,017647,017648,017649,017650,017651,017652,017653,017654,017655,017656,017657,017658,017659,017660,017661,017662,017663,017664,017665,017666,017667,017668,017669,017670,017671,017672,017673,017674,017675,017676,017677,017678,017679,017680,017681,017682,017683,017684,017685,017686,017687,017688,017689,017690,017691,017692,017693,017694,017695,017696,017697,017698,017699,017700,017701,017702,017703,017704,017705,017706,017707,017708,017709,017710,017711,017712,017713,017714,017715,017716,017717,017718,017719,017720,017721,017722,017723,017724,017725,017726,017727,017728,017729,017730,017731,017732,017733,017734,017735,017736,017737,017738,017739,017740,017741,017742,017743,017744,017745,017746,017747,017748,017749,017750,017751,017752,017753,017754,017755,017756,017757,017758,017759,017760,017761,017762,017763,017764,017765,017766,017767,017768,017769,017770,017771,017772,017773,017774,017775,017776,017777,017778,017779,017780,017781,017782,017783,017784,017785,017786,017787,017788,017789,017790,017791,017792,017793,017794,017795,017796,017797,017798,017799,017800,017801,017802,017803,017804,017805,017806,017807,017808,017809,017810,017811,017812,017813,017814,017815,017816,017817,017818,017819,017820,017821,017822,017823,017824,017825,017826,017827,017828,017829,017830,017831,017832,017833,017834,017835,017836,017837,017838,017839,017840,017841,017842,017843,017844,017845,017846,017847,017848,017849,017850,017851,017852,017853,017854,017855,017856,017857,017858,017859,017860,017861,017862,017863,017864,017865,017866,017867,017868,017869,017870,017871,017872,017873,017874,017875,017876,017877,017878,017879,017880,017881,017882,017883,017884,017885,017886,017887,017888,017889,017890,017891,017892,017893,017894,017895,017896,017897,017898,017899,017900,017901,017902,017903,017904,017905,017906,017907,017908,017909,017910,017911,017912,017913,017914,017915,017916,017917,017918,017919,017920,017921,017922,017923,017924,017925,017926,017927,017928,017929,017930,017931,017932,017933,017934,017935,017936,017937,017938,017939,017940,017941,017942,017943,017944,017945,017946,017947,017948,017949,017950,017951,017952,017953,017954,017955,017956,017957,017958,017959,017960,017961,017962,017963,017964,017965,017966,017967,017968,017969,017970,017971,017972,017973,017974,017975,017976,017977,017978,017979,017980,017981,017982,017983,017984,017985,017986,017987,017988,017989,017990,017991,017992,017993,017994,017995,017996,017997,017998,017999,018000,018001,018002,018003,018004,018005,018006,018007,018008,018009,018010,018011,018012,018013,018014,018015,018016,018017,018018,018019,018020,018021,018022,018023,018024,018025,018026,018027,018028,018029,018030,018031,018032,018033,018034,018035,018036,018037,018038,018039,018040,018041,018042,018043,018044,018045,018046,018047,018048,018049,018050,018051,018052,018053,018054,018055,018056,018057,018058,018059,018060,018061,018062,018063,018064,018065,018066,018067,018068,018069,018070,018071,018072,018073,018074,018075,018076,018077,018078,018079,018080,018081,018082,018083,018084,018085,018086,018087,018088,018089,018090,018091,018092,018093,018094,018095,018096,018097,018098,018099,018100,018101,018102,018103,018104,018105,018106,018107,018108,018109,018110,018111,018112,018113,018114,018115,018116,018117,018118,018119,018120,018121,018122,018123,018124,018125,018126,018127,018128,018129,018130,018131,018132,018133,018134,018135,018136,018137,018138,018139,018140,018141,018142,018143,018144,018145,018146,018147,018148,018149,018150,018151,018152,018153,018154,018155,018156,018157,018158,018159,018160,018161,018162,018163,018164,018165,018166,018167,018168,018169,018170,018171,018172,018173,018174,018175,018176,018177,018178,018179,018180,018181,018182,018183,018184,018185,018186,018187,018188,018189,018190,018191,018192,018193,018194,018195,018196,018197,018198,018199,018200,018201,018202,018203,018204,018205,018206,018207,018208,018209,018210,018211,018212,018213,018214,018215,018216,018217,018218,018219,018220,018221,018222,018223,018224,018225,018226,018227,018228,018229,018230,018231,018232,018233,018234,018235,018236,018237,018238,018239,018240,018241,018242,018243,018244,018245,018246,018247,018248,018249,018250,018251,018252,018253,018254,3459218255,5058618256,139218257,5059318258,4635918259,5060018260,6172418261,5060418262,5737618263,5060818264,6404018265,5060918266,2450818267,5060818268,3929618269,5061018270,4230118271,5061518272,6106518273,5062218274,3902518275,5062918276,269418277,5063618278,5117018279,5064118280,4688818281,5064618282,1691118283,5065518284,4125618285,5066318286,5015518287,5067618288,2542318289,5069118290,1129018291,5070018292,450618293,5070918294,1916218295,5071618296,2669618297,5072118298,4816318299,5072518300,414118301,5072818302,691418303,5072918304,4548818305,5073018306,6548918307,5073118308,387718309,5073518310,2541818311,5074218312,1113218313,5075018314,930218315,5075918316,629018317,5076618318,396418319,5076918320,321818321,5077118322,2884018323,5077318324,5500218325,5077318326,3107118327,5077318328,5374218329,5077118330,3825218331,5076718332,6167418333,5076618334,1767018335,5076718336,6094018337,5076518338,6517018339,5076318340,329818341,5076118342,5009618343,5075618344,4626418345,5075618346,3441918347,5075618348,3881118349,5075418350,5472218351,5075118352,5809818353,5074518354,1680318355,5073818356,4129918357,5072818358,4239618359,5071618360,6391118361,5070518362,277018363,5069718364,803918365,5069118366,5173818367,5068718368,5782218369,5068118370,3218218371,5067718372,911818373,5067518374,1309618375,5066918376,1306118377,5066218378,184818379,5065418380,3988618381,5064118382,1499518383,5062718384,4141918385,5061218386,3871918387,5059818388,2457218389,5058818390,4734718391,5058218392,5088018393,5057918394,2407218395,5057818396,3779818397,5057718398,5745618399,5057718400,1728418401,5057718402,3771218403,5057418404,4175818405,5057318406,139818407,5057418408,2288818409,5057418410,2839818411,5057918412,2896718413,5058318414,018415,018416,018417,018418,018419,018420,018421,018422,018423,018424,018425,018426,018427,018428,018429,018430,018431,018432,018433,018434,018435,018436,018437,018438,018439,018440,018441,018442,018443,018444,018445,018446,018447,018448,018449,018450,018451,018452,018453,018454,018455,018456,018457,018458,018459,018460,018461,018462,018463,018464,018465,018466,018467,018468,018469,018470,018471,018472,018473,018474,018475,018476,018477,018478,018479,018480,018481,018482,018483,018484,018485,018486,018487,018488,018489,018490,018491,018492,018493,018494,018495,018496,018497,018498,018499,018500,018501,018502,018503,018504,018505,018506,018507,018508,018509,018510,018511,018512,018513,018514,018515,018516,018517,018518,018519,018520,018521,018522,018523,018524,018525,018526,018527,018528,018529,018530,018531,018532,018533,018534,018535,018536,018537,018538,018539,018540,018541,018542,018543,018544,018545,018546,018547,018548,018549,018550,018551,018552,018553,018554,018555,018556,018557,018558,018559,018560,018561,018562,018563,018564,018565,018566,018567,018568,018569,018570,018571,018572,018573,018574,018575,018576,018577,018578,018579,018580,018581,018582,018583,018584,018585,018586,018587,018588,018589,018590,018591,018592,018593,018594,018595,018596,018597,018598,018599,018600,018601,018602,018603,018604,018605,018606,018607,018608,018609,018610,018611,018612,018613,018614,018615,018616,018617,018618,018619,018620,018621,018622,018623,018624,018625,018626,018627,018628,018629,018630,018631,018632,018633,018634,018635,018636,018637,018638,018639,018640,018641,018642,018643,018644,018645,018646,018647,018648,018649,018650,018651,018652,018653,018654,018655,018656,018657,018658,018659,018660,018661,018662,018663,018664,018665,018666,018667,018668,018669,018670,018671,018672,018673,018674,018675,018676,018677,018678,018679,018680,018681,018682,018683,018684,018685,018686,018687,018688,018689,018690,018691,018692,018693,018694,018695,018696,018697,018698,018699,018700,018701,018702,018703,018704,018705,018706,018707,018708,018709,018710,018711,018712,018713,018714,018715,018716,018717,018718,018719,018720,018721,018722,018723,018724,018725,018726,018727,018728,018729,018730,018731,018732,018733,018734,018735,018736,018737,018738,018739,018740,018741,018742,018743,018744,018745,018746,018747,018748,018749,018750,018751,018752,018753,018754,018755,018756,018757,018758,018759,018760,018761,018762,018763,018764,018765,018766,018767,018768,018769,018770,018771,018772,018773,018774,018775,018776,018777,018778,018779,018780,018781,018782,018783,018784,018785,018786,018787,018788,018789,018790,018791,018792,018793,018794,018795,018796,018797,018798,018799,018800,018801,018802,018803,018804,018805,018806,018807,018808,018809,018810,018811,018812,018813,018814,018815,018816,018817,018818,018819,018820,018821,018822,018823,018824,018825,018826,018827,018828,018829,018830,018831,018832,018833,018834,018835,018836,018837,018838,018839,018840,018841,018842,018843,018844,018845,018846,018847,018848,018849,018850,018851,018852,018853,018854,018855,018856,018857,018858,018859,018860,018861,018862,018863,018864,018865,018866,018867,018868,018869,018870,018871,018872,018873,018874,018875,018876,018877,018878,018879,018880,018881,018882,018883,018884,018885,018886,018887,018888,018889,018890,018891,018892,018893,018894,018895,018896,018897,018898,018899,018900,018901,018902,018903,018904,018905,018906,018907,018908,018909,018910,018911,018912,018913,018914,018915,018916,018917,018918,018919,018920,018921,018922,018923,018924,018925,018926,018927,018928,018929,018930,018931,018932,018933,018934,018935,018936,018937,018938,018939,018940,018941,018942,018943,018944,018945,018946,018947,018948,018949,018950,018951,018952,018953,018954,018955,018956,018957,018958,018959,018960,018961,018962,018963,018964,018965,018966,018967,018968,018969,018970,018971,018972,018973,018974,018975,018976,018977,018978,018979,018980,018981,018982,018983,018984,018985,018986,018987,018988,018989,018990,018991,018992,018993,018994,018995,018996,018997,018998,018999,019000,019001,019002,019003,019004,019005,019006,019007,019008,019009,019010,019011,019012,019013,019014,019015,019016,019017,019018,019019,019020,019021,019022,019023,019024,019025,019026,019027,019028,019029,019030,019031,019032,019033,019034,019035,019036,019037,019038,019039,019040,019041,019042,019043,019044,019045,019046,019047,019048,019049,019050,019051,019052,019053,019054,019055,019056,019057,019058,019059,019060,019061,019062,019063,019064,019065,019066,019067,019068,019069,019070,019071,019072,019073,019074,019075,019076,019077,019078,019079,019080,019081,019082,019083,019084,019085,019086,019087,019088,019089,019090,019091,019092,019093,019094,019095,019096,019097,019098,019099,019100,019101,019102,019103,019104,019105,019106,019107,019108,019109,019110,019111,019112,019113,019114,019115,019116,019117,019118,019119,019120,019121,019122,019123,019124,019125,019126,019127,019128,019129,019130,019131,019132,019133,019134,019135,019136,019137,019138,019139,019140,019141,019142,019143,019144,019145,019146,019147,019148,019149,019150,019151,019152,019153,019154,019155,019156,019157,019158,019159,019160,019161,019162,019163,019164,019165,019166,019167,019168,019169,019170,019171,019172,019173,019174,019175,019176,019177,019178,019179,019180,019181,019182,019183,019184,019185,019186,019187,019188,019189,019190,019191,019192,019193,019194,019195,019196,019197,019198,019199,019200,019201,019202,019203,019204,019205,019206,019207,019208,019209,019210,019211,019212,019213,019214,019215,019216,019217,019218,019219,019220,019221,019222,019223,019224,019225,019226,019227,019228,019229,019230,019231,019232,019233,019234,019235,019236,019237,019238,019239,019240,019241,019242,019243,019244,019245,019246,019247,019248,019249,019250,019251,019252,019253,019254,019255,019256,019257,019258,019259,019260,019261,019262,019263,019264,019265,019266,019267,019268,019269,019270,019271,019272,019273,019274,019275,019276,019277,019278,019279,019280,019281,019282,019283,019284,019285,019286,019287,019288,019289,019290,019291,019292,019293,019294,019295,019296,019297,019298,019299,019300,019301,019302,019303,019304,019305,019306,019307,019308,019309,019310,019311,019312,019313,019314,019315,019316,019317,019318,019319,019320,019321,019322,019323,019324,019325,019326,019327,019328,019329,019330,019331,019332,019333,019334,019335,019336,019337,019338,019339,019340,019341,019342,019343,019344,019345,019346,019347,019348,019349,019350,019351,019352,019353,019354,019355,019356,019357,019358,019359,019360,019361,019362,019363,019364,019365,019366,019367,019368,019369,019370,019371,019372,019373,019374,019375,019376,019377,019378,019379,019380,019381,019382,019383,019384,019385,019386,019387,019388,019389,019390,019391,019392,019393,019394,019395,019396,019397,019398,019399,019400,019401,019402,019403,019404,019405,019406,019407,019408,019409,019410,019411,019412,019413,019414,019415,019416,019417,019418,019419,019420,019421,019422,019423,019424,019425,019426,019427,019428,019429,019430,019431,019432,019433,019434,019435,019436,019437,019438,019439,019440,019441,019442,019443,019444,019445,019446,019447,019448,019449,019450,019451,019452,019453,019454,019455,019456,019457,019458,019459,019460,019461,019462,019463,019464,019465,019466,019467,019468,019469,019470,019471,019472,019473,019474,019475,019476,019477,019478,019479,019480,019481,019482,019483,019484,019485,019486,019487,019488,019489,019490,019491,019492,019493,019494,019495,019496,019497,019498,019499,019500,019501,019502,019503,019504,019505,019506,019507,019508,019509,019510,019511,019512,019513,019514,019515,019516,019517,019518,019519,019520,019521,019522,019523,019524,019525,019526,019527,019528,019529,019530,019531,019532,019533,019534,019535,019536,019537,019538,019539,019540,019541,019542,019543,019544,019545,019546,019547,019548,019549,019550,019551,019552,019553,019554,019555,019556,019557,019558,019559,019560,019561,019562,019563,019564,019565,019566,019567,019568,019569,019570,019571,019572,019573,019574,019575,019576,019577,019578,019579,019580,019581,019582,019583,019584,019585,019586,019587,019588,019589,019590,019591,019592,019593,019594,019595,019596,019597,019598,019599,019600,019601,019602,019603,019604,019605,019606,019607,019608,019609,019610,019611,019612,019613,019614,019615,019616,019617,019618,019619,019620,019621,019622,019623,019624,019625,019626,019627,019628,019629,019630,019631,019632,019633,019634,019635,019636,019637,019638,019639,019640,019641,019642,019643,019644,019645,019646,019647,019648,019649,019650,019651,019652,019653,019654,019655,019656,019657,019658,019659,019660,019661,019662,019663,019664,019665,019666,019667,019668,019669,019670,019671,019672,019673,019674,019675,019676,019677,019678,019679,019680,019681,019682,019683,019684,019685,019686,019687,019688,019689,019690,019691,019692,019693,019694,019695,019696,019697,019698,019699,019700,019701,019702,019703,019704,019705,019706,019707,019708,019709,019710,019711,019712,019713,019714,019715,019716,019717,019718,019719,019720,019721,019722,019723,019724,019725,019726,019727,019728,019729,019730,019731,019732,019733,019734,019735,019736,019737,019738,019739,019740,019741,019742,019743,019744,019745,019746,019747,019748,019749,019750,019751,019752,019753,019754,3944919755,5058919756,3069819757,5059619758,5890019759,5060219760,5624019761,5060419762,5617619763,5060919764,4341019765,5061019766,728219767,5061019768,1230619769,5061519770,82219771,5062119772,3418919773,5062519774,1622519775,5062919776,3101519777,5063419778,4371619779,5064219780,1309119781,5065119782,2074819783,5065919784,3095219785,5067019786,1929719787,5068319788,2438919789,5069319790,4362819791,5070219792,605819793,5071119794,4454519795,5071819796,19619797,5072519798,5746819799,5072719800,3222819801,5072819802,3113219803,5072919804,2493019805,5073019806,3781519807,5073219808,1076719809,5073819810,4628019811,5074519812,3355619813,5075419814,509219815,5076219816,4806419817,5076619818,5384419819,5076919820,3661619821,5077219822,6135819823,5077419824,3847319825,5077419826,6307419827,5077119828,554119829,5076919830,3823819831,5076619832,1114619833,5076719834,928619835,5076819836,3890319837,5076519838,2801619839,5076119840,449319841,5075819842,2268419843,5075519844,1551419845,5075619846,412019847,5075719848,2376419849,5075419850,3358019851,5074919852,670719853,5074219854,6359619855,5073219856,1503619857,5072319858,3430419859,5071319860,5779419861,5070319862,5665619863,5069419864,4422619865,5068719866,4365819867,5067919868,6448719869,5067619870,5386119871,5067619872,6205719873,5067519874,2814619875,5067019876,6242119877,5065919878,2713919879,5064619880,2430419881,5063119882,3908319883,5061719884,137719885,5060619886,1759219887,5059719888,2328719889,5058919890,2730719891,5058219892,4098419893,5057819894,4391919895,5057619896,5985019897,5057519898,1993819899,5057719900,4229819901,5057819902,1986019903,5057619904,3978019905,5057419906,1617419907,5057519908,1829819909,5057519910,16619911,5058019912,4761419913,5058319914,019915,019916,019917,019918,019919,019920,019921,019922,019923,019924,019925,019926,019927,019928,019929,019930,019931,019932,019933,019934,019935,019936,019937,019938,019939,019940,019941,019942,019943,019944,019945,019946,019947,019948,019949,019950,019951,019952,019953,019954,019955,019956,019957,019958,019959,019960,019961,019962,019963,019964,019965,019966,019967,019968,019969,019970,019971,019972,019973,019974,019975,019976,019977,019978,019979,019980,019981,019982,019983,019984,019985,019986,019987,019988,019989,019990,019991,019992,019993,019994,019995,019996,019997,019998,019999,020000,020001,020002,020003,020004,020005,020006,020007,020008,020009,020010,020011,020012,020013,020014,020015,020016,020017,020018,020019,020020,020021,020022,020023,020024,020025,020026,020027,020028,020029,020030,020031,020032,020033,020034,020035,020036,020037,020038,020039,020040,020041,020042,020043,020044,020045,020046,020047,020048,020049,020050,020051,020052,020053,020054,020055,020056,020057,020058,020059,020060,020061,020062,020063,020064,020065,020066,020067,020068,020069,020070,020071,020072,020073,020074,020075,020076,020077,020078,020079,020080,020081,020082,020083,020084,020085,020086,020087,020088,020089,020090,020091,020092,020093,020094,020095,020096,020097,020098,020099,020100,020101,020102,020103,020104,020105,020106,020107,020108,020109,020110,020111,020112,020113,020114,020115,020116,020117,020118,020119,020120,020121,020122,020123,020124,020125,020126,020127,020128,020129,020130,020131,020132,020133,020134,020135,020136,020137,020138,020139,020140,020141,020142,020143,020144,020145,020146,020147,020148,020149,020150,020151,020152,020153,020154,020155,020156,020157,020158,020159,020160,020161,020162,020163,020164,020165,020166,020167,020168,020169,020170,020171,020172,020173,020174,020175,020176,020177,020178,020179,020180,020181,020182,020183,020184,020185,020186,020187,020188,020189,020190,020191,020192,020193,020194,020195,020196,020197,020198,020199,020200,020201,020202,020203,020204,020205,020206,020207,020208,020209,020210,020211,020212,020213,020214,020215,020216,020217,020218,020219,020220,020221,020222,020223,020224,020225,020226,020227,020228,020229,020230,020231,020232,020233,020234,020235,020236,020237,020238,020239,020240,020241,020242,020243,020244,020245,020246,020247,020248,020249,020250,020251,020252,020253,020254,020255,020256,020257,020258,020259,020260,020261,020262,020263,020264,020265,020266,020267,020268,020269,020270,020271,020272,020273,020274,020275,020276,020277,020278,020279,020280,020281,020282,020283,020284,020285,020286,020287,020288,020289,020290,020291,020292,020293,020294,020295,020296,020297,020298,020299,020300,020301,020302,020303,020304,020305,020306,020307,020308,020309,020310,020311,020312,020313,020314,020315,020316,020317,020318,020319,020320,020321,020322,020323,020324,020325,020326,020327,020328,020329,020330,020331,020332,020333,020334,020335,020336,020337,020338,020339,020340,020341,020342,020343,020344,020345,020346,020347,020348,020349,020350,020351,020352,020353,020354,020355,020356,020357,020358,020359,020360,020361,020362,020363,020364,020365,020366,020367,020368,020369,020370,020371,020372,020373,020374,020375,020376,020377,020378,020379,020380,020381,020382,020383,020384,020385,020386,020387,020388,020389,020390,020391,020392,020393,020394,020395,020396,020397,020398,020399,020400,020401,020402,020403,020404,020405,020406,020407,020408,020409,020410,020411,020412,020413,020414,020415,020416,020417,020418,020419,020420,020421,020422,020423,020424,020425,020426,020427,020428,020429,020430,020431,020432,020433,020434,020435,020436,020437,020438,020439,020440,020441,020442,020443,020444,020445,020446,020447,020448,020449,020450,020451,020452,020453,020454,020455,020456,020457,020458,020459,020460,020461,020462,020463,020464,020465,020466,020467,020468,020469,020470,020471,020472,020473,020474,020475,020476,020477,020478,020479,020480,020481,020482,020483,020484,020485,020486,020487,020488,020489,020490,020491,020492,020493,020494,020495,020496,020497,020498,020499,020500,020501,020502,020503,020504,020505,020506,020507,020508,020509,020510,020511,020512,020513,020514,020515,020516,020517,020518,020519,020520,020521,020522,020523,020524,020525,020526,020527,020528,020529,020530,020531,020532,020533,020534,020535,020536,020537,020538,020539,020540,020541,020542,020543,020544,020545,020546,020547,020548,020549,020550,020551,020552,020553,020554,020555,020556,020557,020558,020559,020560,020561,020562,020563,020564,020565,020566,020567,020568,020569,020570,020571,020572,020573,020574,020575,020576,020577,020578,020579,020580,020581,020582,020583,020584,020585,020586,020587,020588,020589,020590,020591,020592,020593,020594,020595,020596,020597,020598,020599,020600,020601,020602,020603,020604,020605,020606,020607,020608,020609,020610,020611,020612,020613,020614,020615,020616,020617,020618,020619,020620,020621,020622,020623,020624,020625,020626,020627,020628,020629,020630,020631,020632,020633,020634,020635,020636,020637,020638,020639,020640,020641,020642,020643,020644,020645,020646,020647,020648,020649,020650,020651,020652,020653,020654,020655,020656,020657,020658,020659,020660,020661,020662,020663,020664,020665,020666,020667,020668,020669,020670,020671,020672,020673,020674,020675,020676,020677,020678,020679,020680,020681,020682,020683,020684,020685,020686,020687,020688,020689,020690,020691,020692,020693,020694,020695,020696,020697,020698,020699,020700,020701,020702,020703,020704,020705,020706,020707,020708,020709,020710,020711,020712,020713,020714,020715,020716,020717,020718,020719,020720,020721,020722,020723,020724,020725,020726,020727,020728,020729,020730,020731,020732,020733,020734,020735,020736,020737,020738,020739,020740,020741,020742,020743,020744,020745,020746,020747,020748,020749,020750,020751,020752,020753,020754,020755,020756,020757,020758,020759,020760,020761,020762,020763,020764,020765,020766,020767,020768,020769,020770,020771,020772,020773,020774,020775,020776,020777,020778,020779,020780,020781,020782,020783,020784,020785,020786,020787,020788,020789,020790,020791,020792,020793,020794,020795,020796,020797,020798,020799,020800,020801,020802,020803,020804,020805,020806,020807,020808,020809,020810,020811,020812,020813,020814,020815,020816,020817,020818,020819,020820,020821,020822,020823,020824,020825,020826,020827,020828,020829,020830,020831,020832,020833,020834,020835,020836,020837,020838,020839,020840,020841,020842,020843,020844,020845,020846,020847,020848,020849,020850,020851,020852,020853,020854,020855,020856,020857,020858,020859,020860,020861,020862,020863,020864,020865,020866,020867,020868,020869,020870,020871,020872,020873,020874,020875,020876,020877,020878,020879,020880,020881,020882,020883,020884,020885,020886,020887,020888,020889,020890,020891,020892,020893,020894,020895,020896,020897,020898,020899,020900,020901,020902,020903,020904,020905,020906,020907,020908,020909,020910,020911,020912,020913,020914,020915,020916,020917,020918,020919,020920,020921,020922,020923,020924,020925,020926,020927,020928,020929,020930,020931,020932,020933,020934,020935,020936,020937,020938,020939,020940,020941,020942,020943,020944,020945,020946,020947,020948,020949,020950,020951,020952,020953,020954,020955,020956,020957,020958,020959,020960,020961,020962,020963,020964,020965,020966,020967,020968,020969,020970,020971,020972,020973,020974,020975,020976,020977,020978,020979,020980,020981,020982,020983,020984,020985,020986,020987,020988,020989,020990,020991,020992,020993,020994,020995,020996,020997,020998,020999,021000,021001,021002,021003,021004,021005,021006,021007,021008,021009,021010,021011,021012,021013,021014,021015,021016,021017,021018,021019,021020,021021,021022,021023,021024,021025,021026,021027,021028,021029,021030,021031,021032,021033,021034,021035,021036,021037,021038,021039,021040,021041,021042,021043,021044,021045,021046,021047,021048,021049,021050,021051,021052,021053,021054,021055,021056,021057,021058,021059,021060,021061,021062,021063,021064,021065,021066,021067,021068,021069,021070,021071,021072,021073,021074,021075,021076,021077,021078,021079,021080,021081,021082,021083,021084,021085,021086,021087,021088,021089,021090,021091,021092,021093,021094,021095,021096,021097,021098,021099,021100,021101,021102,021103,021104,021105,021106,021107,021108,021109,021110,021111,021112,021113,021114,021115,021116,021117,021118,021119,021120,021121,021122,021123,021124,021125,021126,021127,021128,021129,021130,021131,021132,021133,021134,021135,021136,021137,021138,021139,021140,021141,021142,021143,021144,021145,021146,021147,021148,021149,021150,021151,021152,021153,021154,021155,021156,021157,021158,021159,021160,021161,021162,021163,021164,021165,021166,021167,021168,021169,021170,021171,021172,021173,021174,021175,021176,021177,021178,021179,021180,021181,021182,021183,021184,021185,021186,021187,021188,021189,021190,021191,021192,021193,021194,021195,021196,021197,021198,021199,021200,021201,021202,021203,021204,021205,021206,021207,021208,021209,021210,021211,021212,021213,021214,021215,021216,021217,021218,021219,021220,021221,021222,021223,021224,021225,021226,021227,021228,021229,021230,021231,021232,021233,021234,021235,021236,021237,021238,021239,021240,021241,021242,021243,021244,021245,021246,021247,021248,021249,021250,021251,021252,021253,021254,1336421255,5058821256,4362521257,5059421258,877321259,5060121260,5860721261,5060121262,6314621263,5060521264,2764021265,5060821266,6510921267,5060821268,3146421269,5061321270,1237521271,5061721272,2149021273,5061921274,2552221275,5062321276,3551821277,5062921278,5816221279,5063921280,3249421281,5065021282,27021283,5065821284,4913921285,5066521286,5069221287,5067421288,4364121289,5068721290,1591921291,5069721292,6305021293,5070721294,3712521295,5071621296,5160621297,5072221298,705221299,5072621300,3017421301,5072621302,1493721303,5072721304,1343621305,5072921306,2951421307,5073121308,585821309,5073521310,413121311,5074121312,3046021313,5074821314,3769221315,5075621316,1123321317,5076421318,5700421319,5076821320,4175121321,5077121322,3107621323,5077421324,6359521325,5077421326,2881021327,5077321328,4690121329,5077121330,1784621331,5076821332,4307921333,5076621334,6472621335,5076621336,1600821337,5076521338,1925221339,5076221340,3274021341,5076021342,5583821343,5075721344,3132821345,5075721346,4402121347,5075721348,583121349,5075521350,2055021351,5075121352,6216121353,5074621354,1447521355,5074021356,6078221357,5073021358,5534821359,5071921360,6458921361,5070721362,4257221363,5069721364,1505821365,5069021366,2341421367,5068421368,4223221369,5068121370,1446521371,5068021372,930221373,5067621374,3413021375,5067021376,4473721377,5066321378,6363921379,5065421380,4630121381,5064421382,5221721383,5063121384,6507621385,5061721386,606621387,5060521388,1170921389,5059221390,3550521391,5058221392,220721393,5057921394,1492321395,5057921396,6052521397,5057921398,981421399,5058021400,799021401,5057921402,2216421403,5057721404,3266721405,5057321406,4022421407,5057321408,6019621409,5057621410,5432621411,5057821412,3863421413,5058421414,3755021415,5058721416,021417,021418,021419,021420,021421,021422,021423,021424,021425,021426,021427,021428,021429,021430,021431,021432,021433,021434,021435,021436,021437,021438,021439,021440,021441,021442,021443,021444,021445,021446,021447,021448,021449,021450,021451,021452,021453,021454,021455,021456,021457,021458,021459,021460,021461,021462,021463,021464,021465,021466,021467,021468,021469,021470,021471,021472,021473,021474,021475,021476,021477,021478,021479,021480,021481,021482,021483,021484,021485,021486,021487,021488,021489,021490,021491,021492,021493,021494,021495,021496,021497,021498,021499,021500,021501,021502,021503,021504,021505,021506,021507,021508,021509,021510,021511,021512,021513,021514,021515,021516,021517,021518,021519,021520,021521,021522,021523,021524,021525,021526,021527,021528,021529,021530,021531,021532,021533,021534,021535,021536,021537,021538,021539,021540,021541,021542,021543,021544,021545,021546,021547,021548,021549,021550,021551,021552,021553,021554,021555,021556,021557,021558,021559,021560,021561,021562,021563,021564,021565,021566,021567,021568,021569,021570,021571,021572,021573,021574,021575,021576,021577,021578,021579,021580,021581,021582,021583,021584,021585,021586,021587,021588,021589,021590,021591,021592,021593,021594,021595,021596,021597,021598,021599,021600,021601,021602,021603,021604,021605,021606,021607,021608,021609,021610,021611,021612,021613,021614,021615,021616,021617,021618,021619,021620,021621,021622,021623,021624,021625,021626,021627,021628,021629,021630,021631,021632,021633,021634,021635,021636,021637,021638,021639,021640,021641,021642,021643,021644,021645,021646,021647,021648,021649,021650,021651,021652,021653,021654,021655,021656,021657,021658,021659,021660,021661,021662,021663,021664,021665,021666,021667,021668,021669,021670,021671,021672,021673,021674,021675,021676,021677,021678,021679,021680,021681,021682,021683,021684,021685,021686,021687,021688,021689,021690,021691,021692,021693,021694,021695,021696,021697,021698,021699,021700,021701,021702,021703,021704,021705,021706,021707,021708,021709,021710,021711,021712,021713,021714,021715,021716,021717,021718,021719,021720,021721,021722,021723,021724,021725,021726,021727,021728,021729,021730,021731,021732,021733,021734,021735,021736,021737,021738,021739,021740,021741,021742,021743,021744,021745,021746,021747,021748,021749,021750,021751,021752,021753,021754,021755,021756,021757,021758,021759,021760,021761,021762,021763,021764,021765,021766,021767,021768,021769,021770,021771,021772,021773,021774,021775,021776,021777,021778,021779,021780,021781,021782,021783,021784,021785,021786,021787,021788,021789,021790,021791,021792,021793,021794,021795,021796,021797,021798,021799,021800,021801,021802,021803,021804,021805,021806,021807,021808,021809,021810,021811,021812,021813,021814,021815,021816,021817,021818,021819,021820,021821,021822,021823,021824,021825,021826,021827,021828,021829,021830,021831,021832,021833,021834,021835,021836,021837,021838,021839,021840,021841,021842,021843,021844,021845,021846,021847,021848,021849,021850,021851,021852,021853,021854,021855,021856,021857,021858,021859,021860,021861,021862,021863,021864,021865,021866,021867,021868,021869,021870,021871,021872,021873,021874,021875,021876,021877,021878,021879,021880,021881,021882,021883,021884,021885,021886,021887,021888,021889,021890,021891,021892,021893,021894,021895,021896,021897,021898,021899,021900,021901,021902,021903,021904,021905,021906,021907,021908,021909,021910,021911,021912,021913,021914,021915,021916,021917,021918,021919,021920,021921,021922,021923,021924,021925,021926,021927,021928,021929,021930,021931,021932,021933,021934,021935,021936,021937,021938,021939,021940,021941,021942,021943,021944,021945,021946,021947,021948,021949,021950,021951,021952,021953,021954,021955,021956,021957,021958,021959,021960,021961,021962,021963,021964,021965,021966,021967,021968,021969,021970,021971,021972,021973,021974,021975,021976,021977,021978,021979,021980,021981,021982,021983,021984,021985,021986,021987,021988,021989,021990,021991,021992,021993,021994,021995,021996,021997,021998,021999,022000,022001,022002,022003,022004,022005,022006,022007,022008,022009,022010,022011,022012,022013,022014,022015,022016,022017,022018,022019,022020,022021,022022,022023,022024,022025,022026,022027,022028,022029,022030,022031,022032,022033,022034,022035,022036,022037,022038,022039,022040,022041,022042,022043,022044,022045,022046,022047,022048,022049,022050,022051,022052,022053,022054,022055,022056,022057,022058,022059,022060,022061,022062,022063,022064,022065,022066,022067,022068,022069,022070,022071,022072,022073,022074,022075,022076,022077,022078,022079,022080,022081,022082,022083,022084,022085,022086,022087,022088,022089,022090,022091,022092,022093,022094,022095,022096,022097,022098,022099,022100,022101,022102,022103,022104,022105,022106,022107,022108,022109,022110,022111,022112,022113,022114,022115,022116,022117,022118,022119,022120,022121,022122,022123,022124,022125,022126,022127,022128,022129,022130,022131,022132,022133,022134,022135,022136,022137,022138,022139,022140,022141,022142,022143,022144,022145,022146,022147,022148,022149,022150,022151,022152,022153,022154,022155,022156,022157,022158,022159,022160,022161,022162,022163,022164,022165,022166,022167,022168,022169,022170,022171,022172,022173,022174,022175,022176,022177,022178,022179,022180,022181,022182,022183,022184,022185,022186,022187,022188,022189,022190,022191,022192,022193,022194,022195,022196,022197,022198,022199,022200,022201,022202,022203,022204,022205,022206,022207,022208,022209,022210,022211,022212,022213,022214,022215,022216,022217,022218,022219,022220,022221,022222,022223,022224,022225,022226,022227,022228,022229,022230,022231,022232,022233,022234,022235,022236,022237,022238,022239,022240,022241,022242,022243,022244,022245,022246,022247,022248,022249,022250,022251,022252,022253,022254,022255,022256,022257,022258,022259,022260,022261,022262,022263,022264,022265,022266,022267,022268,022269,022270,022271,022272,022273,022274,022275,022276,022277,022278,022279,022280,022281,022282,022283,022284,022285,022286,022287,022288,022289,022290,022291,022292,022293,022294,022295,022296,022297,022298,022299,022300,022301,022302,022303,022304,022305,022306,022307,022308,022309,022310,022311,022312,022313,022314,022315,022316,022317,022318,022319,022320,022321,022322,022323,022324,022325,022326,022327,022328,022329,022330,022331,022332,022333,022334,022335,022336,022337,022338,022339,022340,022341,022342,022343,022344,022345,022346,022347,022348,022349,022350,022351,022352,022353,022354,022355,022356,022357,022358,022359,022360,022361,022362,022363,022364,022365,022366,022367,022368,022369,022370,022371,022372,022373,022374,022375,022376,022377,022378,022379,022380,022381,022382,022383,022384,022385,022386,022387,022388,022389,022390,022391,022392,022393,022394,022395,022396,022397,022398,022399,022400,022401,022402,022403,022404,022405,022406,022407,022408,022409,022410,022411,022412,022413,022414,022415,022416,022417,022418,022419,022420,022421,022422,022423,022424,022425,022426,022427,022428,022429,022430,022431,022432,022433,022434,022435,022436,022437,022438,022439,022440,022441,022442,022443,022444,022445,022446,022447,022448,022449,022450,022451,022452,022453,022454,022455,022456,022457,022458,022459,022460,022461,022462,022463,022464,022465,022466,022467,022468,022469,022470,022471,022472,022473,022474,022475,022476,022477,022478,022479,022480,022481,022482,022483,022484,022485,022486,022487,022488,022489,022490,022491,022492,022493,022494,022495,022496,022497,022498,022499,022500,022501,022502,022503,022504,022505,022506,022507,022508,022509,022510,022511,022512,022513,022514,022515,022516,022517,022518,022519,022520,022521,022522,022523,022524,022525,022526,022527,022528,022529,022530,022531,022532,022533,022534,022535,022536,022537,022538,022539,022540,022541,022542,022543,022544,022545,022546,022547,022548,022549,022550,022551,022552,022553,022554,022555,022556,022557,022558,022559,022560,022561,022562,022563,022564,022565,022566,022567,022568,022569,022570,022571,022572,022573,022574,022575,022576,022577,022578,022579,022580,022581,022582,022583,022584,022585,022586,022587,022588,022589,022590,022591,022592,022593,022594,022595,022596,022597,022598,022599,022600,022601,022602,022603,022604,022605,022606,022607,022608,022609,022610,022611,022612,022613,022614,022615,022616,022617,022618,022619,022620,022621,022622,022623,022624,022625,022626,022627,022628,022629,022630,022631,022632,022633,022634,022635,022636,022637,022638,022639,022640,022641,022642,022643,022644,022645,022646,022647,022648,022649,022650,022651,022652,022653,022654,022655,022656,022657,022658,022659,022660,022661,022662,022663,022664,022665,022666,022667,022668,022669,022670,022671,022672,022673,022674,022675,022676,022677,022678,022679,022680,022681,022682,022683,022684,022685,022686,022687,022688,022689,022690,022691,022692,022693,022694,022695,022696,022697,022698,022699,022700,022701,022702,022703,022704,022705,022706,022707,022708,022709,022710,022711,022712,022713,022714,022715,022716,022717,022718,022719,022720,022721,022722,022723,022724,022725,022726,022727,022728,022729,022730,022731,022732,022733,022734,022735,022736,022737,022738,022739,022740,022741,022742,022743,022744,022745,022746,022747,022748,022749,022750,022751,022752,0 \ No newline at end of file diff --git a/testing/test.py b/testing/test.py new file mode 100644 index 0000000..33ddf0e --- /dev/null +++ b/testing/test.py @@ -0,0 +1,241 @@ +#!/usr/bin/env python + +# ---------------------------------------------------------------------------# +# import the various server implementations +# ---------------------------------------------------------------------------# +from pymodbus.client.sync import ModbusTcpClient as ModbusClient + +# ---------------------------------------------------------------------------# +# import python packages +# ---------------------------------------------------------------------------# +from pymongo import MongoClient +import pytest +import struct + +# ---------------------------------------------------------------------------# +# configure the client logging +# ---------------------------------------------------------------------------# +import logging +logging.basicConfig() +log = logging.getLogger() +log.setLevel(logging.INFO) + +# ---------------------------------------------------------------------------# +# Modbus Client Setup +# ---------------------------------------------------------------------------# +modbus_client = ModbusClient('localhost', port=502) + +# ---------------------------------------------------------------------------# +# Mongo DB Setup +# ---------------------------------------------------------------------------# +mongo_client = MongoClient() +mongo_db = mongo_client.tag_data +mongo_tags = mongo_db.tag_vals + + +def close_enough(a, b): + return abs(a - b) < 0.001 + + +def float_to_bytes(float_val): + ''' + Converts a float to little-endian bytes + ''' + packed_string = struct.pack('f', float_val) + unpacked_list = list(struct.unpack('HH', packed_string)) + return unpacked_list + + +def integer_to_byte(integer_val): + ''' + Converts an integer to its byte + ''' + packed_string = struct.pack('h', integer_val) + unpacked = list(struct.unpack('H', packed_string)) + return unpacked + + +def lebyte_to_float(word_list): + ''' + Converts list of little-endian bytes to float + ''' + packed_string = struct.pack("HH", *word_list) + unpacked_float = struct.unpack("f", packed_string)[0] + return unpacked_float + + +def lebyte_to_integer(word_list): + ''' + Converts list(size = 1) of little-endian bytes to Integer + ''' + try: + packed_string = struct.pack("H", *word_list) + unpacked_int = struct.unpack("h", packed_string)[0] + except Exception as e: + print("Unable to convert {} to integer".format(word_list)) + return False + return unpacked_int + + +def read_holding_registers(num_registers): + with open('holding_registers.csv', 'wb') as csvfile: + modbus_client.connect() + for i in range(0, num_registers - 1): + reg = modbus_client.read_holding_registers(i, 1).registers + csvfile.write("{},{}\n".format(i + 1, reg[0])) + print("{},{}".format(i + 1, reg[0])) + + +def read_input_registers(num_registers): + with open('input_registers.csv', 'wb') as csvfile: + modbus_client.connect() + for i in range(0, num_registers - 1): + reg = modbus_client.read_input_registers(i, 1).registers + csvfile.write("{},{}\n".format(i + 1, reg[0])) + print("{},{}".format(i + 1, reg[0])) + + +def read_coils(num_registers): + with open('coils.csv', 'wb') as csvfile: + modbus_client.connect() + for i in range(0, num_registers - 1): + reg = modbus_client.read_coils(i, 1).bits + csvfile.write("{},{}\n".format(i + 1, reg[0])) + print("{},{}".format(i + 1, reg[0])) + + +def read_discrete_inputs(num_registers): + with open('discrete_inputs.csv', 'wb') as csvfile: + modbus_client.connect() + for i in range(0, num_registers - 1): + reg = modbus_client.read_discrete_inputs(i, 1).bits + csvfile.write("{},{}\n".format(i + 1, reg[0])) + print("{},{}".format(i + 1, reg[0])) + + +def db_read_holding_registers(): + tag_in_db = mongo_tags.find({"register_type": 'hr'}) + with open('db_holding_registers.csv', 'wb') as csvfile: + for db_tag in tag_in_db: + try: + database_value = db_tag['val'] + except KeyError: + print("No value in DB for {}".format(db_tag['tag_name'])) + reg = [] + reg_string = "" + try: + if db_tag['tag_type'][-3:] == 'INT': + reg = modbus_client.read_holding_registers(db_tag['register_number'] - 1, 1).registers + + elif db_tag['tag_type'] == 'REAL': + reg = modbus_client.read_holding_registers(db_tag['register_number'] - 1, 2).registers + # print(reg) + except AttributeError: + print("Could not get register {} for {}".format(db_tag['register_number'], db_tag['tag_name'])) + continue + if reg: + if len(reg) == 2: + # r = reg.reverse() + modbus_value = lebyte_to_float(reg) + reg_string = "{},{}".format(reg[0], reg[1]) + else: + modbus_value = lebyte_to_integer(reg) + reg_string = "{}".format(reg[0]) + print("{},{},{},{},{}".format(db_tag['register_number'], db_tag['tag_name'], database_value, modbus_value, reg_string)) + csvfile.write("{},{},{},{},{}\n".format(db_tag['register_number'], db_tag['tag_name'], database_value, modbus_value, reg_string)) + modbus_client.close() + + +def db_read_input_registers(): + tag_in_db = mongo_tags.find({"register_type": 'ir'}) + with open('db_input_registers.csv', 'wb') as csvfile: + for db_tag in tag_in_db: + try: + database_value = db_tag['val'] + except KeyError: + print("No value in DB for {}".format(db_tag['tag_name'])) + continue + reg = [] + try: + if db_tag['tag_type'][-3:] == 'INT': + reg = modbus_client.read_input_registers(db_tag['register_number'] - 1, 1).registers + + elif db_tag['tag_type'] == 'REAL': + reg = modbus_client.read_input_registers(db_tag['register_number'] - 1, 2).registers + # print(reg) + except AttributeError: + print("Could not get register {} for {}".format(db_tag['register_number'], db_tag['tag_name'])) + continue + if reg: + if len(reg) == 2: + # r = reg.reverse() + modbus_value = lebyte_to_float(reg) + reg_string = "{},{}".format(reg[0], reg[1]) + else: + modbus_value = lebyte_to_integer(reg) + reg_string = "{}".format(reg[0]) + + print("{},{},{},{},{}".format(db_tag['register_number'], db_tag['tag_name'], database_value, modbus_value, reg_string)) + csvfile.write("{},{},{},{},{}\n".format(db_tag['register_number'], db_tag['tag_name'], database_value, modbus_value, reg_string)) + modbus_client.close() + + +def db_read_coils(): + modbus_client.connect() + tag_in_db = mongo_tags.find({"register_type": 'co'}) + with open('db_coils.csv', 'wb') as csvfile: + for db_tag in tag_in_db: + try: + database_value = db_tag['val'] + except KeyError: + print("No value in DB for {}".format(db_tag['tag_name'])) + continue + + try: + reg = modbus_client.read_coils(db_tag['register_number'] - 1, 1).bits + print("{},{},{},{}".format(db_tag['register_number'], db_tag['tag_name'], database_value, reg[0])) + csvfile.write("{},{},{},{}\n".format(db_tag['register_number'], db_tag['tag_name'], database_value, reg[0])) + + except AttributeError: + print("Could not get register {} for {}".format(db_tag['register_number'], db_tag['tag_name'])) + continue + + +def db_read_discrete_inputs(): + modbus_client.connect() + tag_in_db = mongo_tags.find({"register_type": 'di'}) + with open('db_discrete_inputs.csv', 'wb') as csvfile: + for db_tag in tag_in_db: + try: + database_value = db_tag['val'] + except KeyError: + print("No value in DB for {}".format(db_tag['tag_name'])) + continue + + try: + reg = modbus_client.read_discrete_inputs(db_tag['register_number'] - 1, 1).bits + print("{},{},{},{}".format(db_tag['register_number'], db_tag['tag_name'], database_value, reg[0])) + csvfile.write("{},{},{},{}\n".format(db_tag['register_number'], db_tag['tag_name'], database_value, reg[0])) + + except AttributeError: + print("Could not get register {} for {}".format(db_tag['register_number'], db_tag['tag_name'])) + continue + + +if __name__ == '__main__': + print("Holding Registers") + # read_holding_registers(158) + db_read_holding_registers() + + print("Input Registers") + # read_input_registers(22753) + db_read_input_registers() + + print("Coils") + # read_coils(19) + db_read_coils() + + print("Discrete Inputs") + # read_discrete_inputs(2) + db_read_discrete_inputs() +