commit 452b4deb5b34c4630c154f3133b954732534b856 Author: hamuchiwa Date: Mon Jul 6 14:22:07 2015 -0400 add files diff --git a/arduino/rc_keyboard_control.ino b/arduino/rc_keyboard_control.ino new file mode 100644 index 0000000..9f5b7ee --- /dev/null +++ b/arduino/rc_keyboard_control.ino @@ -0,0 +1,102 @@ +// assign pin num +int right_pin = 6; +int left_pin = 7; +int forward_pin = 10; +int reverse_pin = 9; + +// duration for output +int time = 50; +// initial command +int command = 0; + +void setup() { + pinMode(right_pin, OUTPUT); + pinMode(left_pin, OUTPUT); + pinMode(forward_pin, OUTPUT); + pinMode(reverse_pin, OUTPUT); + Serial.begin(115200); +} + +void loop() { + //receive command + if (Serial.available() > 0){ + command = Serial.read(); + } + else{ + reset(); + } + send_command(command,time); +} + +void right(int time){ + digitalWrite(right_pin, LOW); + delay(time); +} + +void left(int time){ + digitalWrite(left_pin, LOW); + delay(time); +} + +void forward(int time){ + digitalWrite(forward_pin, LOW); + delay(time); +} + +void reverse(int time){ + digitalWrite(reverse_pin, LOW); + delay(time); +} + +void forward_right(int time){ + digitalWrite(forward_pin, LOW); + digitalWrite(right_pin, LOW); + delay(time); +} + +void reverse_right(int time){ + digitalWrite(reverse_pin, LOW); + digitalWrite(right_pin, LOW); + delay(time); +} + +void forward_left(int time){ + digitalWrite(forward_pin, LOW); + digitalWrite(left_pin, LOW); + delay(time); +} + +void reverse_left(int time){ + digitalWrite(reverse_pin, LOW); + digitalWrite(left_pin, LOW); + delay(time); +} + +void reset(){ + digitalWrite(right_pin, HIGH); + digitalWrite(left_pin, HIGH); + digitalWrite(forward_pin, HIGH); + digitalWrite(reverse_pin, HIGH); +} + +void send_command(int command, int time){ + switch (command){ + + //reset command + case 0: reset(); break; + + // single command + case 1: forward(time); break; + case 2: reverse(time); break; + case 3: right(time); break; + case 4: left(time); break; + + //combination command + case 6: forward_right(time); break; + case 7: forward_left(time); break; + case 8: reverse_right(time); break; + case 9: reverse_left(time); break; + + default: Serial.print("Inalid Command\n"); + } +} diff --git a/computer/cascade_xml/stop_sign.xml b/computer/cascade_xml/stop_sign.xml new file mode 100644 index 0000000..b0ae724 --- /dev/null +++ b/computer/cascade_xml/stop_sign.xml @@ -0,0 +1,3009 @@ + + + + BOOST + HAAR + 20 + 20 + + GAB + 9.9900001287460327e-01 + 5.0000000000000000e-01 + 9.4999999999999996e-01 + 1 + 100 + + 0 + 1 + ALL + 20 + + + <_> + 6 + -1.0939440727233887e+00 + + <_> + + 0 -1 148 8.9181773364543915e-03 + + -3.2638889551162720e-01 9.4230771064758301e-01 + <_> + + 0 -1 86 1.3571768999099731e-02 + + -6.8534660339355469e-01 6.6345340013504028e-01 + <_> + + 0 -1 225 -4.4768685474991798e-03 + + 7.9003661870956421e-01 -3.9033985137939453e-01 + <_> + + 0 -1 136 2.2162390872836113e-02 + + 3.5036116838455200e-01 -9.8154574632644653e-01 + <_> + + 0 -1 19 -7.6481122523546219e-03 + + 7.6003026962280273e-01 -4.3640643358230591e-01 + <_> + + 0 -1 139 -1.1918266303837299e-02 + + -9.8644179105758667e-01 3.9417660236358643e-01 + + <_> + 7 + -1.5762221813201904e+00 + + <_> + + 0 -1 148 9.2704370617866516e-03 + + -3.2761576771736145e-01 9.5786058902740479e-01 + <_> + + 0 -1 135 -1.9005180802196264e-03 + + 5.7715004682540894e-01 -6.2378382682800293e-01 + <_> + + 0 -1 122 5.0907600671052933e-03 + + -2.4879439175128937e-01 9.3842136859893799e-01 + <_> + + 0 -1 150 7.4056261219084263e-03 + + -3.3132168650627136e-01 8.7289220094680786e-01 + <_> + + 0 -1 52 4.7507928684353828e-03 + + 4.0246972441673279e-01 -7.8387957811355591e-01 + <_> + + 0 -1 81 2.3172399029135704e-02 + + 2.1249443292617798e-01 -9.3798589706420898e-01 + <_> + + 0 -1 23 -6.8990810541436076e-04 + + 2.9927337169647217e-01 -6.7425519227981567e-01 + + <_> + 8 + -1.3223168849945068e+00 + + <_> + + 0 -1 120 -9.8390486091375351e-03 + + 9.3127149343490601e-01 -2.2977346181869507e-01 + <_> + + 0 -1 141 3.3767162822186947e-03 + + -7.4691045284271240e-01 4.5986407995223999e-01 + <_> + + 0 -1 105 -1.2708993628621101e-02 + + 4.3482649326324463e-01 -5.9453052282333374e-01 + <_> + + 0 -1 3 4.4225547462701797e-03 + + 3.2036414742469788e-01 -7.0002388954162598e-01 + <_> + + 0 -1 166 -2.1059974096715450e-03 + + 4.3418595194816589e-01 -5.4405933618545532e-01 + <_> + + 0 -1 75 -1.3529483228921890e-02 + + 6.6598272323608398e-01 -3.6486998200416565e-01 + <_> + + 0 -1 216 1.3222147244960070e-03 + + -5.6668788194656372e-01 4.1631707549095154e-01 + <_> + + 0 -1 213 3.2437634654343128e-03 + + 2.3951879143714905e-01 -8.8393592834472656e-01 + + <_> + 10 + -1.4300292730331421e+00 + + <_> + + 0 -1 150 7.1214702911674976e-03 + + -2.4959743022918701e-01 9.5854920148849487e-01 + <_> + + 0 -1 168 2.1871416829526424e-03 + + -4.3361976742744446e-01 5.7648772001266479e-01 + <_> + + 0 -1 119 -1.4555409550666809e-02 + + 7.9672878980636597e-01 -2.7260738611221313e-01 + <_> + + 0 -1 122 3.9350409060716629e-03 + + -3.3558750152587891e-01 8.0586564540863037e-01 + <_> + + 0 -1 80 -1.8883053213357925e-02 + + -9.3276524543762207e-01 2.8396156430244446e-01 + <_> + + 0 -1 12 4.2392634786665440e-03 + + -3.4224936366081238e-01 6.5354591608047485e-01 + <_> + + 0 -1 66 7.7399257570505142e-03 + + -3.0820870399475098e-01 7.0627796649932861e-01 + <_> + + 0 -1 45 -5.5334782227873802e-03 + + -8.9295595884323120e-01 2.9409390687942505e-01 + <_> + + 0 -1 225 -3.4906379878520966e-03 + + 4.3025150895118713e-01 -4.8881426453590393e-01 + <_> + + 0 -1 177 -8.2713123410940170e-03 + + 4.2259964346885681e-01 -4.7347596287727356e-01 + + <_> + 9 + -7.8519403934478760e-01 + + <_> + + 0 -1 147 7.3378914967179298e-03 + + -2.2789116203784943e-01 8.7254899740219116e-01 + <_> + + 0 -1 92 2.1861693821847439e-03 + + -2.4241171777248383e-01 7.3435175418853760e-01 + <_> + + 0 -1 4 6.6929664462804794e-03 + + -2.3223823308944702e-01 8.3536314964294434e-01 + <_> + + 0 -1 15 -3.0415097717195749e-03 + + 7.2421151399612427e-01 -3.1358626484870911e-01 + <_> + + 0 -1 24 -2.2028371691703796e-02 + + -8.6363059282302856e-01 3.1721523404121399e-01 + <_> + + 0 -1 171 5.3813634440302849e-03 + + -3.4379902482032776e-01 7.3170280456542969e-01 + <_> + + 0 -1 212 -1.2554442510008812e-03 + + 4.0889114141464233e-01 -5.7934141159057617e-01 + <_> + + 0 -1 204 -4.5258044265210629e-03 + + 5.8548921346664429e-01 -3.5304042696952820e-01 + <_> + + 0 -1 179 4.2108178604394197e-04 + + 3.0701041221618652e-01 -6.6653245687484741e-01 + + <_> + 12 + -1.3357472419738770e+00 + + <_> + + 0 -1 150 9.0770302340388298e-03 + + -1.3446676731109619e-01 8.8065099716186523e-01 + <_> + + 0 -1 29 1.5558045357465744e-02 + + -1.7103458940982819e-01 8.4514760971069336e-01 + <_> + + 0 -1 116 2.3854377213865519e-03 + + -2.9265767335891724e-01 6.5858846902847290e-01 + <_> + + 0 -1 49 -3.2075499184429646e-03 + + 6.6192793846130371e-01 -2.8998324275016785e-01 + <_> + + 0 -1 87 1.2446118518710136e-02 + + 2.1792320907115936e-01 -8.9249801635742188e-01 + <_> + + 0 -1 76 1.5842631459236145e-02 + + -2.9893171787261963e-01 6.5454185009002686e-01 + <_> + + 0 -1 20 -2.0855397451668978e-03 + + 7.6481509208679199e-01 -1.8651746213436127e-01 + <_> + + 0 -1 215 3.8683071732521057e-02 + + 2.1997819840908051e-01 -8.5177761316299438e-01 + <_> + + 0 -1 206 -7.6698767952620983e-03 + + 4.1107115149497986e-01 -4.4569832086563110e-01 + <_> + + 0 -1 118 -8.5372831672430038e-03 + + 2.4056506156921387e-01 -7.7771276235580444e-01 + <_> + + 0 -1 202 -3.1835564877837896e-03 + + 7.1681833267211914e-01 -2.6032191514968872e-01 + <_> + + 0 -1 35 1.6730523109436035e-01 + + 2.2690634429454803e-01 -9.5423907041549683e-01 + + <_> + 10 + -8.5492289066314697e-01 + + <_> + + 0 -1 148 1.4860156923532486e-02 + + -1.4098361134529114e-01 8.2372879981994629e-01 + <_> + + 0 -1 125 3.2915743067860603e-03 + + 3.6377155780792236e-01 -7.3520499467849731e-01 + <_> + + 0 -1 131 -9.0462306980043650e-04 + + 2.6533758640289307e-01 -6.1726611852645874e-01 + <_> + + 0 -1 154 -9.2846160987392068e-04 + + -6.6102337837219238e-01 2.4513626098632812e-01 + <_> + + 0 -1 208 -3.5578296519815922e-03 + + 4.4340604543685913e-01 -4.1166031360626221e-01 + <_> + + 0 -1 110 -1.7249643802642822e-02 + + -8.8759630918502808e-01 1.5873688459396362e-01 + <_> + + 0 -1 91 -3.8062729872763157e-03 + + 3.8590875267982483e-01 -3.8930633664131165e-01 + <_> + + 0 -1 123 -4.7114621847867966e-03 + + 6.9044142961502075e-01 -3.1712299585342407e-01 + <_> + + 0 -1 164 -4.8488499596714973e-03 + + -7.2421079874038696e-01 2.5197473168373108e-01 + <_> + + 0 -1 73 2.4316154886037111e-03 + + 2.2632339596748352e-01 -6.1680984497070312e-01 + + <_> + 13 + -1.1078851222991943e+00 + + <_> + + 0 -1 148 1.7475863918662071e-02 + + -1.0682492703199387e-01 8.9733839035034180e-01 + <_> + + 0 -1 217 4.5167068019509315e-03 + + -2.6478856801986694e-01 6.0247254371643066e-01 + <_> + + 0 -1 198 3.5229998175054789e-03 + + -6.6434299945831299e-01 2.7437764406204224e-01 + <_> + + 0 -1 160 3.2210480421781540e-02 + + 2.0357139408588409e-01 -7.6927685737609863e-01 + <_> + + 0 -1 132 -2.0241020247340202e-03 + + 2.8551825881004333e-01 -5.5103397369384766e-01 + <_> + + 0 -1 223 3.7779987324029207e-03 + + -3.5580486059188843e-01 4.8848810791969299e-01 + <_> + + 0 -1 85 2.4984557181596756e-02 + + 1.8584188818931580e-01 -9.4803929328918457e-01 + <_> + + 0 -1 121 -1.6767945140600204e-02 + + 6.6115951538085938e-01 -2.4938638508319855e-01 + <_> + + 0 -1 143 -2.0269663073122501e-03 + + 7.3603212833404541e-01 -2.7370554208755493e-01 + <_> + + 0 -1 72 8.5741700604557991e-04 + + 2.9587081074714661e-01 -6.3898605108261108e-01 + <_> + + 0 -1 69 5.9723271988332272e-03 + + -2.6639580726623535e-01 6.7018646001815796e-01 + <_> + + 0 -1 25 -2.7210367843508720e-02 + + -9.2615580558776855e-01 2.2729092836380005e-01 + <_> + + 0 -1 208 9.0153133496642113e-03 + + -2.2689771652221680e-01 8.3223342895507812e-01 + + <_> + 11 + -1.0984435081481934e+00 + + <_> + + 0 -1 65 1.2107226997613907e-02 + + 5.0619637966156006e-01 -8.6754965782165527e-01 + <_> + + 0 -1 150 9.4374734908342361e-03 + + -3.9365565776824951e-01 6.5703415870666504e-01 + <_> + + 0 -1 21 1.1711213737726212e-02 + + 3.1801971793174744e-01 -6.9821691513061523e-01 + <_> + + 0 -1 81 1.6662761569023132e-02 + + 2.0305791497230530e-01 -8.0723613500595093e-01 + <_> + + 0 -1 6 -6.9732880219817162e-03 + + 6.8390756845474243e-01 -2.8155863285064697e-01 + <_> + + 0 -1 193 -1.1022158432751894e-03 + + -9.5274454355239868e-01 1.5929229557514191e-01 + <_> + + 0 -1 194 1.4089785516262054e-02 + + 1.6760101914405823e-01 -7.4553871154785156e-01 + <_> + + 0 -1 99 -1.1054595932364464e-02 + + -8.8027667999267578e-01 1.4937028288841248e-01 + <_> + + 0 -1 127 6.1510183149948716e-04 + + 1.8685489892959595e-01 -7.0456385612487793e-01 + <_> + + 0 -1 47 1.6092609614133835e-02 + + 1.4326860010623932e-01 -8.5095059871673584e-01 + <_> + + 0 -1 16 -2.1811896003782749e-03 + + 4.5898976922035217e-01 -3.3345645666122437e-01 + + <_> + 13 + -1.3055574893951416e+00 + + <_> + + 0 -1 61 1.0570232756435871e-02 + + -1.4638447761535645e-01 7.6303315162658691e-01 + <_> + + 0 -1 142 1.0863183997571468e-02 + + -6.3222002983093262e-01 3.2941257953643799e-01 + <_> + + 0 -1 173 -6.3338470645248890e-03 + + -9.5168888568878174e-01 1.4265495538711548e-01 + <_> + + 0 -1 97 -3.8316589780151844e-03 + + 6.1313134431838989e-01 -2.7598819136619568e-01 + <_> + + 0 -1 121 -1.4076851308345795e-02 + + 5.5137878656387329e-01 -2.8811123967170715e-01 + <_> + + 0 -1 119 1.5379240736365318e-02 + + -2.7460792660713196e-01 6.8394511938095093e-01 + <_> + + 0 -1 59 -1.7307939007878304e-02 + + -8.6583417654037476e-01 2.4866457283496857e-01 + <_> + + 0 -1 90 2.1620562765747309e-03 + + -3.1081113219261169e-01 5.2028650045394897e-01 + <_> + + 0 -1 77 1.7445433884859085e-02 + + 1.7520397901535034e-01 -8.6358433961868286e-01 + <_> + + 0 -1 74 1.1048212181776762e-03 + + 1.5455716848373413e-01 -7.9086005687713623e-01 + <_> + + 0 -1 38 -3.2547369599342346e-02 + + -8.6507672071456909e-01 1.2958316504955292e-01 + <_> + + 0 -1 139 -1.0840517468750477e-02 + + -9.3840682506561279e-01 1.0427381843328476e-01 + <_> + + 0 -1 113 -2.1696519106626511e-02 + + 4.7011950612068176e-01 -3.3237215876579285e-01 + + <_> + 13 + -1.2217904329299927e+00 + + <_> + + 0 -1 43 6.1039522290229797e-02 + + -3.5135135054588318e-01 6.3855421543121338e-01 + <_> + + 0 -1 53 2.0916627254337072e-03 + + 3.5352686047554016e-01 -5.8230650424957275e-01 + <_> + + 0 -1 82 -5.4075457155704498e-03 + + -7.3556029796600342e-01 1.8013066053390503e-01 + <_> + + 0 -1 88 2.9461065307259560e-02 + + 1.4648732542991638e-01 -8.9267420768737793e-01 + <_> + + 0 -1 1 -8.6212567985057831e-03 + + 6.9949394464492798e-01 -2.4417032301425934e-01 + <_> + + 0 -1 156 7.5163046130910516e-04 + + 1.9996334612369537e-01 -6.1599260568618774e-01 + <_> + + 0 -1 101 1.1822404339909554e-03 + + 2.1303911507129669e-01 -7.9225355386734009e-01 + <_> + + 0 -1 170 -1.0327875614166260e-02 + + 3.9748170971870422e-01 -3.7951198220252991e-01 + <_> + + 0 -1 57 1.3646125793457031e-02 + + 1.4806200563907623e-01 -8.8352638483047485e-01 + <_> + + 0 -1 60 -1.0930988937616348e-02 + + -8.7780463695526123e-01 1.2654538452625275e-01 + <_> + + 0 -1 83 -3.9898004615679383e-04 + + 3.2563978433609009e-01 -4.0755400061607361e-01 + <_> + + 0 -1 203 -1.0913937585428357e-03 + + -6.5434277057647705e-01 2.0752930641174316e-01 + <_> + + 0 -1 14 -9.1804293915629387e-03 + + 4.4697201251983643e-01 -3.3995616436004639e-01 + + <_> + 13 + -1.0699930191040039e+00 + + <_> + + 0 -1 61 1.4407616108655930e-02 + + -6.5810590982437134e-02 7.6429808139801025e-01 + <_> + + 0 -1 155 -1.4900839887559414e-03 + + -7.0511257648468018e-01 2.9409301280975342e-01 + <_> + + 0 -1 157 9.2853698879480362e-04 + + 2.4344077706336975e-01 -7.6088863611221313e-01 + <_> + + 0 -1 200 9.1734677553176880e-03 + + -2.1043851971626282e-01 7.5370323657989502e-01 + <_> + + 0 -1 28 -1.3944649137556553e-02 + + 7.0997124910354614e-01 -2.3159675300121307e-01 + <_> + + 0 -1 182 1.1832735035568476e-03 + + 1.8974022567272186e-01 -7.7928614616394043e-01 + <_> + + 0 -1 151 1.5558891464024782e-03 + + 1.2613099813461304e-01 -8.8180267810821533e-01 + <_> + + 0 -1 9 -1.4908779412508011e-02 + + 3.4523972868919373e-01 -3.6218604445457458e-01 + <_> + + 0 -1 10 7.6176263391971588e-03 + + -2.4482454359531403e-01 5.4577326774597168e-01 + <_> + + 0 -1 224 -1.8354549538344145e-03 + + 4.3978342413902283e-01 -2.8142160177230835e-01 + <_> + + 0 -1 58 8.3801047876477242e-03 + + -5.6639957427978516e-01 2.4037459492683411e-01 + <_> + + 0 -1 36 8.4927916526794434e-02 + + 1.4379566907882690e-01 -8.6258643865585327e-01 + <_> + + 0 -1 0 -6.4726930577307940e-04 + + -5.6429803371429443e-01 1.8726366758346558e-01 + + <_> + 12 + -1.1163084506988525e+00 + + <_> + + 0 -1 147 3.1515143346041441e-03 + + -2.4528302252292633e-01 7.1507608890533447e-01 + <_> + + 0 -1 116 3.9459150284528732e-03 + + -2.0995469391345978e-01 6.6445493698120117e-01 + <_> + + 0 -1 29 2.3989036679267883e-02 + + -1.8720336258411407e-01 7.2010856866836548e-01 + <_> + + 0 -1 31 2.6497257873415947e-02 + + -1.6425497829914093e-01 7.9332649707794189e-01 + <_> + + 0 -1 50 -4.1593713685870171e-03 + + 3.9679887890815735e-01 -3.8564151525497437e-01 + <_> + + 0 -1 148 -2.0666350610554218e-03 + + 6.4924222230911255e-01 -2.4383844435214996e-01 + <_> + + 0 -1 137 5.2172630093991756e-03 + + 2.2083838284015656e-01 -7.3666936159133911e-01 + <_> + + 0 -1 138 -2.3368090391159058e-02 + + -8.5843545198440552e-01 1.4143894612789154e-01 + <_> + + 0 -1 70 3.9968490600585938e-03 + + -3.7320300936698914e-01 4.3831467628479004e-01 + <_> + + 0 -1 30 -2.9332647100090981e-03 + + 7.4971592426300049e-01 -1.8995225429534912e-01 + <_> + + 0 -1 84 4.8859998583793640e-02 + + 1.9833399355411530e-01 -8.0461448431015015e-01 + <_> + + 0 -1 187 -1.2691011652350426e-03 + + 3.8683864474296570e-01 -3.0497401952743530e-01 + + <_> + 15 + -1.2673220634460449e+00 + + <_> + + 0 -1 78 1.2985384464263916e-01 + + -8.4380611777305603e-02 6.9517886638641357e-01 + <_> + + 0 -1 182 -1.1194279650226235e-03 + + -6.4787501096725464e-01 2.9426303505897522e-01 + <_> + + 0 -1 134 2.4406444281339645e-03 + + 2.9787281155586243e-01 -4.6530961990356445e-01 + <_> + + 0 -1 191 -4.9433985259383917e-04 + + -6.6080307960510254e-01 1.8109810352325439e-01 + <_> + + 0 -1 98 -2.3914951831102371e-02 + + 3.8740792870521545e-01 -3.2326799631118774e-01 + <_> + + 0 -1 5 1.3750994578003883e-02 + + 1.6312979161739349e-01 -8.2758486270904541e-01 + <_> + + 0 -1 163 4.2307535186409950e-03 + + 1.4413008093833923e-01 -5.9532529115676880e-01 + <_> + + 0 -1 2 -9.7714476287364960e-03 + + 6.9644129276275635e-01 -1.8432737886905670e-01 + <_> + + 0 -1 183 1.2424413580447435e-03 + + 2.1172174811363220e-01 -7.1169346570968628e-01 + <_> + + 0 -1 214 -5.9831123799085617e-03 + + 4.6825656294822693e-01 -2.8549411892890930e-01 + <_> + + 0 -1 95 -1.1030778288841248e-02 + + -9.4377171993255615e-01 1.4650797843933105e-01 + <_> + + 0 -1 190 -2.7143396437168121e-04 + + -4.5227256417274475e-01 2.5263085961341858e-01 + <_> + + 0 -1 165 -5.2619427442550659e-03 + + 6.9854092597961426e-01 -1.9855946302413940e-01 + <_> + + 0 -1 41 2.2632898762822151e-02 + + -2.9799222946166992e-01 4.5334550738334656e-01 + <_> + + 0 -1 117 -1.4445209875702858e-02 + + -7.8955471515655518e-01 1.5295024216175079e-01 + + <_> + 16 + -9.7979891300201416e-01 + + <_> + + 0 -1 46 5.9893950819969177e-02 + + -3.0188679695129395e-01 5.6235826015472412e-01 + <_> + + 0 -1 218 -2.3848307318985462e-03 + + 4.5047393441200256e-01 -2.9810902476310730e-01 + <_> + + 0 -1 192 6.9857947528362274e-04 + + 2.2349986433982849e-01 -5.8818548917770386e-01 + <_> + + 0 -1 145 -1.1462680995464325e-02 + + -8.6781299114227295e-01 1.2436744570732117e-01 + <_> + + 0 -1 185 8.3465371280908585e-03 + + -2.5049787759780884e-01 5.2001965045928955e-01 + <_> + + 0 -1 32 -1.4119693636894226e-01 + + 6.4857500791549683e-01 -2.3622547090053558e-01 + <_> + + 0 -1 113 -2.1133938804268837e-02 + + 4.4720208644866943e-01 -2.6754841208457947e-01 + <_> + + 0 -1 122 3.7803484592586756e-03 + + -2.5428411364555359e-01 6.8597966432571411e-01 + <_> + + 0 -1 186 -1.1149249970912933e-02 + + -8.3990848064422607e-01 2.0673976838588715e-01 + <_> + + 0 -1 207 1.7773392610251904e-03 + + -3.8543665409088135e-01 3.4842592477798462e-01 + <_> + + 0 -1 180 -8.5401936667039990e-04 + + -8.1604099273681641e-01 1.3598001003265381e-01 + <_> + + 0 -1 18 6.2428936362266541e-03 + + 1.7673847079277039e-01 -6.1230689287185669e-01 + <_> + + 0 -1 7 -2.0077629014849663e-03 + + 3.8907942175865173e-01 -2.7249032258987427e-01 + <_> + + 0 -1 102 1.8406452145427465e-03 + + 1.9835935533046722e-01 -6.0253584384918213e-01 + <_> + + 0 -1 111 -2.1298211067914963e-02 + + -9.0016674995422363e-01 1.1164353042840958e-01 + <_> + + 0 -1 219 5.6642421986907721e-04 + + -4.2127260565757751e-01 2.5203657150268555e-01 + + <_> + 15 + -1.1228418350219727e+00 + + <_> + + 0 -1 146 2.1299365907907486e-02 + + -1.3761468231678009e-01 7.2519081830978394e-01 + <_> + + 0 -1 93 -5.2297385409474373e-03 + + 5.5900961160659790e-01 -2.1580575406551361e-01 + <_> + + 0 -1 103 -4.9902116879820824e-03 + + -7.0914232730865479e-01 2.0003379881381989e-01 + <_> + + 0 -1 71 3.9833690971136093e-03 + + -2.9756838083267212e-01 4.8676246404647827e-01 + <_> + + 0 -1 56 -3.0424085707636550e-05 + + 2.3934963345527649e-01 -5.5498003959655762e-01 + <_> + + 0 -1 225 -5.6844102218747139e-03 + + 4.3037879467010498e-01 -2.8478831052780151e-01 + <_> + + 0 -1 128 4.2308247648179531e-03 + + 1.4648592472076416e-01 -7.3504680395126343e-01 + <_> + + 0 -1 176 -2.5656151119619608e-03 + + 5.3543043136596680e-01 -2.2712767124176025e-01 + <_> + + 0 -1 175 -5.2796602249145508e-03 + + 6.0166043043136597e-01 -2.2136579453945160e-01 + <_> + + 0 -1 140 -1.0811282321810722e-02 + + -8.3671861886978149e-01 1.7473283410072327e-01 + <_> + + 0 -1 8 -3.7774206139147282e-03 + + 4.6761018037796021e-01 -2.7274829149246216e-01 + <_> + + 0 -1 114 1.5192632563412189e-02 + + 1.6919247806072235e-01 -7.9415977001190186e-01 + <_> + + 0 -1 62 8.2875788211822510e-03 + + 1.2299308180809021e-01 -8.2859587669372559e-01 + <_> + + 0 -1 188 5.9630651958286762e-03 + + -2.5899666547775269e-01 5.1027423143386841e-01 + <_> + + 0 -1 26 5.3904941305518150e-03 + + -2.2784242033958435e-01 4.8399889469146729e-01 + + <_> + 19 + -1.3157703876495361e+00 + + <_> + + 0 -1 70 4.0107001550495625e-03 + + -8.5820898413658142e-02 6.7168676853179932e-01 + <_> + + 0 -1 167 -1.0682346764951944e-03 + + 3.3965399861335754e-01 -4.6378323435783386e-01 + <_> + + 0 -1 130 -4.8217829316854477e-03 + + 3.5143306851387024e-01 -4.4357591867446899e-01 + <_> + + 0 -1 221 1.0541528463363647e-02 + + -1.8974232673645020e-01 6.7302715778350830e-01 + <_> + + 0 -1 144 -3.2208363991230726e-03 + + 6.1141002178192139e-01 -2.1767613291740417e-01 + <_> + + 0 -1 37 1.2271979823708534e-02 + + 1.9720385968685150e-01 -7.8660905361175537e-01 + <_> + + 0 -1 184 -2.7822744101285934e-02 + + -7.3871928453445435e-01 9.6447579562664032e-02 + <_> + + 0 -1 64 1.1429890990257263e-02 + + 9.5539622008800507e-02 -8.9027160406112671e-01 + <_> + + 0 -1 175 -5.5978558957576752e-03 + + 4.5929881930351257e-01 -2.3745401203632355e-01 + <_> + + 0 -1 54 -2.7573226019740105e-02 + + -7.8082805871963501e-01 1.6121190786361694e-01 + <_> + + 0 -1 133 4.0384469320997596e-04 + + 1.7540691792964935e-01 -5.5881142616271973e-01 + <_> + + 0 -1 33 -4.8831147141754627e-03 + + 3.0872398614883423e-01 -3.6869084835052490e-01 + <_> + + 0 -1 79 7.2125736624002457e-03 + + -6.3367730379104614e-01 2.0913860201835632e-01 + <_> + + 0 -1 187 -9.4622914912179112e-04 + + 2.8808918595314026e-01 -3.6935117840766907e-01 + <_> + + 0 -1 89 1.6953573795035481e-03 + + -3.8472810387611389e-01 3.4631332755088806e-01 + <_> + + 0 -1 195 6.5296713728457689e-04 + + 2.2430448234081268e-01 -5.2062070369720459e-01 + <_> + + 0 -1 220 2.8629060834646225e-03 + + -2.3371277749538422e-01 5.3285640478134155e-01 + <_> + + 0 -1 209 -6.3919182866811752e-03 + + 3.8150778412818909e-01 -3.2114073634147644e-01 + <_> + + 0 -1 152 -8.1557715311646461e-03 + + -9.0991258621215820e-01 1.3800430297851562e-01 + + <_> + 17 + -9.9257946014404297e-01 + + <_> + + 0 -1 67 9.4081815332174301e-03 + + -8.5923217236995697e-02 6.8453294038772583e-01 + <_> + + 0 -1 174 1.8006918253377080e-04 + + -4.2844942212104797e-01 3.5522922873497009e-01 + <_> + + 0 -1 40 2.4972274899482727e-02 + + -1.8215766549110413e-01 6.3967519998550415e-01 + <_> + + 0 -1 124 1.4221961610019207e-03 + + 1.1760210245847702e-01 -9.2780041694641113e-01 + <_> + + 0 -1 94 3.1297855079174042e-02 + + 9.2404648661613464e-02 -8.9928042888641357e-01 + <_> + + 0 -1 153 2.1077373530715704e-03 + + 1.4851069450378418e-01 -6.6883879899978638e-01 + <_> + + 0 -1 27 9.5633987803012133e-04 + + -2.8326782584190369e-01 3.7906372547149658e-01 + <_> + + 0 -1 129 5.0415643490850925e-03 + + -3.3550488948822021e-01 3.2433202862739563e-01 + <_> + + 0 -1 22 -8.3368398249149323e-02 + + 6.1164420843124390e-01 -2.1896371245384216e-01 + <_> + + 0 -1 107 -2.7440130710601807e-02 + + -8.4096825122833252e-01 1.5542520582675934e-01 + <_> + + 0 -1 106 7.8556984663009644e-02 + + -2.8489080071449280e-01 4.6177482604980469e-01 + <_> + + 0 -1 222 -7.2500649839639664e-03 + + 5.3348070383071899e-01 -2.1219530701637268e-01 + <_> + + 0 -1 109 1.6347233904525638e-03 + + 1.6729801893234253e-01 -6.9352817535400391e-01 + <_> + + 0 -1 162 2.6977853849530220e-04 + + 2.5987550616264343e-01 -4.3260866403579712e-01 + <_> + + 0 -1 189 -5.7676085270941257e-03 + + 7.0254051685333252e-01 -1.6224943101406097e-01 + <_> + + 0 -1 17 -1.7488464945927262e-03 + + 4.2560079693794250e-01 -2.4656893312931061e-01 + <_> + + 0 -1 34 2.0067796111106873e-02 + + 1.4189948141574860e-01 -7.8631621599197388e-01 + + <_> + 16 + -8.5554289817810059e-01 + + <_> + + 0 -1 55 1.5008594840764999e-02 + + -3.6906853318214417e-02 6.6719490289688110e-01 + <_> + + 0 -1 100 -9.0441864449530840e-04 + + -4.7129964828491211e-01 2.9451522231101990e-01 + <_> + + 0 -1 20 -2.9339746106415987e-03 + + 5.9310662746429443e-01 -1.9929191470146179e-01 + <_> + + 0 -1 42 2.0090207457542419e-02 + + 1.5872223675251007e-01 -6.2924015522003174e-01 + <_> + + 0 -1 108 -2.0622745156288147e-02 + + -8.3693826198577881e-01 1.4092734456062317e-01 + <_> + + 0 -1 211 2.8015044517815113e-03 + + -2.9468011856079102e-01 3.7038007378578186e-01 + <_> + + 0 -1 197 8.4652211517095566e-03 + + -1.8935786187648773e-01 6.2374275922775269e-01 + <_> + + 0 -1 172 -3.8291749078780413e-03 + + -7.1053242683410645e-01 1.7426708340644836e-01 + <_> + + 0 -1 161 -1.4564687444362789e-04 + + 2.5777840614318848e-01 -4.2533934116363525e-01 + <_> + + 0 -1 159 -9.4181322492659092e-04 + + -7.0600843429565430e-01 1.6395463049411774e-01 + <_> + + 0 -1 201 2.1828156895935535e-03 + + -3.2674476504325867e-01 3.4803149104118347e-01 + <_> + + 0 -1 112 5.7039246894419193e-04 + + 2.1099506318569183e-01 -5.0233703851699829e-01 + <_> + + 0 -1 48 -1.6675218939781189e-02 + + -9.6355831623077393e-01 1.0359567403793335e-01 + <_> + + 0 -1 199 -6.1245122924447060e-03 + + 8.0040270090103149e-01 -1.5676018595695496e-01 + <_> + + 0 -1 11 6.9429620634764433e-04 + + 2.2719597816467285e-01 -4.7487652301788330e-01 + <_> + + 0 -1 13 -6.5532270818948746e-03 + + 3.8721549510955811e-01 -2.9272890090942383e-01 + + <_> + 18 + -9.5728838443756104e-01 + + <_> + + 0 -1 104 -1.9738204777240753e-02 + + 7.1573603153228760e-01 -3.7766829133033752e-02 + <_> + + 0 -1 29 2.3932699114084244e-02 + + -1.2382164597511292e-01 6.4499098062515259e-01 + <_> + + 0 -1 126 6.0778815532103181e-04 + + 1.7731371521949768e-01 -6.9734889268875122e-01 + <_> + + 0 -1 205 -2.0022362470626831e-02 + + 4.2228186130523682e-01 -2.8621998429298401e-01 + <_> + + 0 -1 63 -2.7350686490535736e-02 + + -8.6237978935241699e-01 1.0193534195423126e-01 + <_> + + 0 -1 158 8.4758771117776632e-04 + + 1.2006379663944244e-01 -6.7567551136016846e-01 + <_> + + 0 -1 115 -1.5399750322103500e-02 + + 3.7037074565887451e-01 -2.9842740297317505e-01 + <_> + + 0 -1 149 -1.8268900457769632e-03 + + 5.8938509225845337e-01 -2.1852675080299377e-01 + <_> + + 0 -1 68 3.4716567024588585e-03 + + 2.0814478397369385e-01 -6.1582213640213013e-01 + <_> + + 0 -1 196 3.8586612208746374e-04 + + 1.7324846982955933e-01 -5.4126971960067749e-01 + <_> + + 0 -1 96 -2.5660893879830837e-03 + + 5.2059847116470337e-01 -2.0215690135955811e-01 + <_> + + 0 -1 51 -4.4747442007064819e-03 + + 7.2574257850646973e-01 -1.4541296660900116e-01 + <_> + + 0 -1 178 -3.8517237408086658e-04 + + -3.6410763859748840e-01 3.1393557786941528e-01 + <_> + + 0 -1 39 -3.2515146303921938e-03 + + 2.9960343241691589e-01 -3.6603471636772156e-01 + <_> + + 0 -1 169 1.1146154254674911e-02 + + 1.1810198426246643e-01 -8.7127703428268433e-01 + <_> + + 0 -1 181 -2.5658524828031659e-04 + + -4.9312287569046021e-01 1.6420070827007294e-01 + <_> + + 0 -1 210 1.9157908856868744e-02 + + -1.6594356298446655e-01 6.7599576711654663e-01 + <_> + + 0 -1 44 -3.9546834304928780e-03 + + 3.2257035374641418e-01 -3.2760405540466309e-01 + + <_> + + <_> + 0 2 1 2 -1. + <_> + 0 3 1 1 2. + 0 + <_> + + <_> + 0 5 2 6 -1. + <_> + 0 5 1 3 2. + <_> + 1 8 1 3 2. + 0 + <_> + + <_> + 0 6 2 6 -1. + <_> + 0 6 1 3 2. + <_> + 1 9 1 3 2. + 0 + <_> + + <_> + 0 7 15 7 -1. + <_> + 5 7 5 7 3. + 0 + <_> + + <_> + 0 9 2 6 -1. + <_> + 0 9 1 3 2. + <_> + 1 12 1 3 2. + 0 + <_> + + <_> + 0 9 20 4 -1. + <_> + 0 11 20 2 2. + 0 + <_> + + <_> + 0 10 3 2 -1. + <_> + 1 10 1 2 3. + 0 + <_> + + <_> + 0 10 4 1 -1. + <_> + 2 10 2 1 2. + 0 + <_> + + <_> + 0 11 3 1 -1. + <_> + 1 11 1 1 3. + 0 + <_> + + <_> + 0 12 15 3 -1. + <_> + 5 12 5 3 3. + 0 + <_> + + <_> + 0 13 4 5 -1. + <_> + 2 13 2 5 2. + 0 + <_> + + <_> + 1 2 1 2 -1. + <_> + 1 3 1 1 2. + 0 + <_> + + <_> + 1 5 3 1 -1. + <_> + 2 6 1 1 3. + 1 + <_> + + <_> + 1 6 3 3 -1. + <_> + 2 7 1 1 9. + 0 + <_> + + <_> + 1 8 3 3 -1. + <_> + 2 9 1 1 9. + 0 + <_> + + <_> + 1 9 3 1 -1. + <_> + 2 9 1 1 3. + 0 + <_> + + <_> + 1 10 3 1 -1. + <_> + 2 10 1 1 3. + 0 + <_> + + <_> + 1 11 2 2 -1. + <_> + 2 11 1 2 2. + 0 + <_> + + <_> + 2 10 18 1 -1. + <_> + 11 10 9 1 2. + 0 + <_> + + <_> + 2 12 5 2 -1. + <_> + 2 12 5 1 2. + 1 + <_> + + <_> + 2 14 2 2 -1. + <_> + 2 14 1 1 2. + <_> + 3 15 1 1 2. + 0 + <_> + + <_> + 3 4 12 9 -1. + <_> + 6 4 6 9 2. + 0 + <_> + + <_> + 3 5 15 6 -1. + <_> + 8 7 5 2 9. + 0 + <_> + + <_> + 3 6 12 10 -1. + <_> + 6 6 6 10 2. + 0 + <_> + + <_> + 3 8 12 6 -1. + <_> + 7 10 4 2 9. + 0 + <_> + + <_> + 3 8 12 5 -1. + <_> + 9 8 6 5 2. + 0 + <_> + + <_> + 3 11 3 3 -1. + <_> + 2 12 3 1 3. + 1 + <_> + + <_> + 3 12 2 4 -1. + <_> + 3 12 1 2 2. + <_> + 4 14 1 2 2. + 0 + <_> + + <_> + 3 13 3 2 -1. + <_> + 3 13 3 1 2. + 1 + <_> + + <_> + 3 13 4 3 -1. + <_> + 2 14 4 1 3. + 1 + <_> + + <_> + 3 15 2 2 -1. + <_> + 3 15 1 1 2. + <_> + 4 16 1 1 2. + 0 + <_> + + <_> + 4 1 3 4 -1. + <_> + 5 2 1 4 3. + 1 + <_> + + <_> + 4 1 13 8 -1. + <_> + 4 5 13 4 2. + 0 + <_> + + <_> + 4 6 9 3 -1. + <_> + 7 7 3 1 9. + 0 + <_> + + <_> + 4 6 9 8 -1. + <_> + 7 6 3 8 3. + 0 + <_> + + <_> + 4 6 12 9 -1. + <_> + 8 9 4 3 9. + 0 + <_> + + <_> + 4 7 12 6 -1. + <_> + 8 9 4 2 9. + 0 + <_> + + <_> + 4 10 6 3 -1. + <_> + 7 10 3 3 2. + 0 + <_> + + <_> + 4 11 12 4 -1. + <_> + 8 11 4 4 3. + 0 + <_> + + <_> + 4 12 8 4 -1. + <_> + 4 12 4 2 2. + <_> + 8 14 4 2 2. + 0 + <_> + + <_> + 5 0 3 5 -1. + <_> + 6 1 1 5 3. + 1 + <_> + + <_> + 5 0 4 5 -1. + <_> + 5 0 2 5 2. + 1 + <_> + + <_> + 5 4 8 3 -1. + <_> + 7 6 4 3 2. + 1 + <_> + + <_> + 5 4 9 12 -1. + <_> + 5 8 9 4 3. + 0 + <_> + + <_> + 5 5 6 3 -1. + <_> + 7 6 2 1 9. + 0 + <_> + + <_> + 5 5 10 1 -1. + <_> + 5 5 5 1 2. + 1 + <_> + + <_> + 5 5 9 12 -1. + <_> + 5 9 9 4 3. + 0 + <_> + + <_> + 5 6 6 8 -1. + <_> + 5 6 3 4 2. + <_> + 8 10 3 4 2. + 0 + <_> + + <_> + 5 7 3 6 -1. + <_> + 5 10 3 3 2. + 0 + <_> + + <_> + 5 10 3 1 -1. + <_> + 6 10 1 1 3. + 0 + <_> + + <_> + 5 10 3 3 -1. + <_> + 6 11 1 1 9. + 0 + <_> + + <_> + 5 11 4 1 -1. + <_> + 6 11 2 1 2. + 0 + <_> + + <_> + 5 11 9 5 -1. + <_> + 8 11 3 5 3. + 0 + <_> + + <_> + 5 13 6 3 -1. + <_> + 7 14 2 1 9. + 0 + <_> + + <_> + 6 4 8 11 -1. + <_> + 8 4 4 11 2. + 0 + <_> + + <_> + 6 4 9 1 -1. + <_> + 9 7 3 1 3. + 1 + <_> + + <_> + 6 5 9 3 -1. + <_> + 9 6 3 1 9. + 0 + <_> + + <_> + 6 5 9 6 -1. + <_> + 9 5 3 6 3. + 0 + <_> + + <_> + 6 5 8 6 -1. + <_> + 6 8 8 3 2. + 0 + <_> + + <_> + 6 6 6 8 -1. + <_> + 9 6 3 8 2. + 0 + <_> + + <_> + 6 7 6 5 -1. + <_> + 9 7 3 5 2. + 0 + <_> + + <_> + 6 8 4 4 -1. + <_> + 7 8 2 4 2. + 0 + <_> + + <_> + 6 8 6 5 -1. + <_> + 8 8 2 5 3. + 0 + <_> + + <_> + 6 8 8 8 -1. + <_> + 8 8 4 8 2. + 0 + <_> + + <_> + 6 8 9 2 -1. + <_> + 9 8 3 2 3. + 0 + <_> + + <_> + 6 8 6 4 -1. + <_> + 9 8 3 4 2. + 0 + <_> + + <_> + 6 9 3 3 -1. + <_> + 7 9 1 3 3. + 0 + <_> + + <_> + 6 9 4 3 -1. + <_> + 7 9 2 3 2. + 0 + <_> + + <_> + 6 9 6 2 -1. + <_> + 9 9 3 2 2. + 0 + <_> + + <_> + 6 10 3 1 -1. + <_> + 7 10 1 1 3. + 0 + <_> + + <_> + 6 10 4 1 -1. + <_> + 7 10 2 1 2. + 0 + <_> + + <_> + 6 11 4 1 -1. + <_> + 7 11 2 1 2. + 0 + <_> + + <_> + 6 12 3 3 -1. + <_> + 7 13 1 1 9. + 0 + <_> + + <_> + 6 14 3 3 -1. + <_> + 7 15 1 1 9. + 0 + <_> + + <_> + 6 14 8 1 -1. + <_> + 8 14 4 1 2. + 0 + <_> + + <_> + 7 0 5 8 -1. + <_> + 7 2 5 4 2. + 0 + <_> + + <_> + 7 1 2 7 -1. + <_> + 7 1 1 7 2. + 1 + <_> + + <_> + 7 1 6 8 -1. + <_> + 9 1 2 8 3. + 0 + <_> + + <_> + 7 3 9 15 -1. + <_> + 7 8 9 5 3. + 0 + <_> + + <_> + 7 5 10 3 -1. + <_> + 7 5 5 3 2. + 1 + <_> + + <_> + 7 6 6 10 -1. + <_> + 10 6 3 10 2. + 0 + <_> + + <_> + 7 6 8 9 -1. + <_> + 11 6 4 9 2. + 0 + <_> + + <_> + 7 7 6 6 -1. + <_> + 9 9 2 2 9. + 0 + <_> + + <_> + 7 7 4 3 -1. + <_> + 7 8 4 1 3. + 0 + <_> + + <_> + 7 7 5 9 -1. + <_> + 7 10 5 3 3. + 0 + <_> + + <_> + 7 7 10 5 -1. + <_> + 12 7 5 5 2. + 0 + <_> + + <_> + 7 7 7 8 -1. + <_> + 7 9 7 4 2. + 0 + <_> + + <_> + 7 8 6 7 -1. + <_> + 9 8 2 7 3. + 0 + <_> + + <_> + 7 9 6 3 -1. + <_> + 9 10 2 1 9. + 0 + <_> + + <_> + 7 9 12 1 -1. + <_> + 10 9 6 1 2. + 0 + <_> + + <_> + 7 10 2 2 -1. + <_> + 7 10 1 1 2. + <_> + 8 11 1 1 2. + 0 + <_> + + <_> + 7 10 3 3 -1. + <_> + 8 11 1 1 9. + 0 + <_> + + <_> + 7 10 2 4 -1. + <_> + 7 10 1 2 2. + <_> + 8 12 1 2 2. + 0 + <_> + + <_> + 7 10 3 4 -1. + <_> + 8 10 1 4 3. + 0 + <_> + + <_> + 7 10 4 3 -1. + <_> + 7 10 2 3 2. + 1 + <_> + + <_> + 7 10 6 4 -1. + <_> + 7 11 6 2 2. + 0 + <_> + + <_> + 7 11 2 1 -1. + <_> + 8 11 1 1 2. + 0 + <_> + + <_> + 7 11 3 1 -1. + <_> + 8 11 1 1 3. + 0 + <_> + + <_> + 7 12 6 8 -1. + <_> + 7 14 6 4 2. + 0 + <_> + + <_> + 7 13 9 2 -1. + <_> + 10 13 3 2 3. + 0 + <_> + + <_> + 7 14 4 1 -1. + <_> + 9 14 2 1 2. + 0 + <_> + + <_> + 7 14 6 1 -1. + <_> + 9 14 2 1 3. + 0 + <_> + + <_> + 8 2 3 3 -1. + <_> + 9 2 1 3 3. + 0 + <_> + + <_> + 8 2 2 5 -1. + <_> + 9 2 1 5 2. + 0 + <_> + + <_> + 8 2 6 3 -1. + <_> + 8 2 3 3 2. + 1 + <_> + + <_> + 8 3 6 6 -1. + <_> + 10 5 2 2 9. + 0 + <_> + + <_> + 8 3 8 16 -1. + <_> + 8 7 8 8 2. + 0 + <_> + + <_> + 8 4 4 4 -1. + <_> + 8 4 4 2 2. + 1 + <_> + + <_> + 8 4 8 5 -1. + <_> + 8 4 4 5 2. + 1 + <_> + + <_> + 8 5 3 1 -1. + <_> + 9 5 1 1 3. + 0 + <_> + + <_> + 8 5 6 6 -1. + <_> + 10 5 2 6 3. + 0 + <_> + + <_> + 8 5 4 4 -1. + <_> + 8 5 4 2 2. + 1 + <_> + + <_> + 8 6 4 1 -1. + <_> + 9 6 2 1 2. + 0 + <_> + + <_> + 8 7 3 6 -1. + <_> + 9 9 1 2 9. + 0 + <_> + + <_> + 8 7 6 7 -1. + <_> + 11 7 3 7 2. + 0 + <_> + + <_> + 8 8 3 3 -1. + <_> + 9 9 1 1 9. + 0 + <_> + + <_> + 8 8 2 4 -1. + <_> + 8 8 1 2 2. + <_> + 9 10 1 2 2. + 0 + <_> + + <_> + 8 8 9 6 -1. + <_> + 11 8 3 6 3. + 0 + <_> + + <_> + 8 8 5 8 -1. + <_> + 8 12 5 4 2. + 0 + <_> + + <_> + 8 9 3 3 -1. + <_> + 9 10 1 1 9. + 0 + <_> + + <_> + 8 9 3 2 -1. + <_> + 9 9 1 2 3. + 0 + <_> + + <_> + 8 9 3 3 -1. + <_> + 9 9 1 3 3. + 0 + <_> + + <_> + 8 10 3 1 -1. + <_> + 9 10 1 1 3. + 0 + <_> + + <_> + 8 11 3 1 -1. + <_> + 9 11 1 1 3. + 0 + <_> + + <_> + 8 12 2 2 -1. + <_> + 8 13 2 1 2. + 0 + <_> + + <_> + 8 13 6 3 -1. + <_> + 10 14 2 1 9. + 0 + <_> + + <_> + 8 14 2 1 -1. + <_> + 9 14 1 1 2. + 0 + <_> + + <_> + 8 14 4 1 -1. + <_> + 10 14 2 1 2. + 0 + <_> + + <_> + 9 2 3 3 -1. + <_> + 10 2 1 3 3. + 0 + <_> + + <_> + 9 2 3 13 -1. + <_> + 10 2 1 13 3. + 0 + <_> + + <_> + 9 2 3 6 -1. + <_> + 9 4 3 2 3. + 0 + <_> + + <_> + 9 3 3 6 -1. + <_> + 10 5 1 2 9. + 0 + <_> + + <_> + 9 3 3 4 -1. + <_> + 10 4 1 4 3. + 1 + <_> + + <_> + 9 5 2 1 -1. + <_> + 10 5 1 1 2. + 0 + <_> + + <_> + 9 5 8 7 -1. + <_> + 11 5 4 7 2. + 0 + <_> + + <_> + 9 5 6 2 -1. + <_> + 9 5 3 2 2. + 1 + <_> + + <_> + 9 5 6 4 -1. + <_> + 9 5 3 4 2. + 1 + <_> + + <_> + 9 6 4 5 -1. + <_> + 11 6 2 5 2. + 0 + <_> + + <_> + 9 6 6 9 -1. + <_> + 11 6 2 9 3. + 0 + <_> + + <_> + 9 6 6 4 -1. + <_> + 9 6 3 4 2. + 1 + <_> + + <_> + 9 7 4 6 -1. + <_> + 11 7 2 6 2. + 0 + <_> + + <_> + 9 7 6 3 -1. + <_> + 9 7 3 3 2. + 1 + <_> + + <_> + 9 7 5 9 -1. + <_> + 9 10 5 3 3. + 0 + <_> + + <_> + 9 8 2 3 -1. + <_> + 10 8 1 3 2. + 0 + <_> + + <_> + 9 8 2 8 -1. + <_> + 10 8 1 8 2. + 0 + <_> + + <_> + 9 8 6 6 -1. + <_> + 12 8 3 6 2. + 0 + <_> + + <_> + 9 9 3 3 -1. + <_> + 10 10 1 1 9. + 0 + <_> + + <_> + 9 9 2 2 -1. + <_> + 10 9 1 2 2. + 0 + <_> + + <_> + 9 9 3 2 -1. + <_> + 10 9 1 2 3. + 0 + <_> + + <_> + 9 10 2 1 -1. + <_> + 10 10 1 1 2. + 0 + <_> + + <_> + 9 10 3 1 -1. + <_> + 10 10 1 1 3. + 0 + <_> + + <_> + 9 10 2 2 -1. + <_> + 9 11 2 1 2. + 0 + <_> + + <_> + 9 10 4 5 -1. + <_> + 11 10 2 5 2. + 0 + <_> + + <_> + 9 13 3 3 -1. + <_> + 10 14 1 1 9. + 0 + <_> + + <_> + 9 14 4 1 -1. + <_> + 10 14 2 1 2. + 0 + <_> + + <_> + 9 14 2 2 -1. + <_> + 10 14 1 2 2. + 0 + <_> + + <_> + 9 14 4 1 -1. + <_> + 11 14 2 1 2. + 0 + <_> + + <_> + 9 15 3 1 -1. + <_> + 10 15 1 1 3. + 0 + <_> + + <_> + 9 15 4 1 -1. + <_> + 10 15 2 1 2. + 0 + <_> + + <_> + 10 4 2 2 -1. + <_> + 11 4 1 2 2. + 0 + <_> + + <_> + 10 5 5 9 -1. + <_> + 7 8 5 3 3. + 1 + <_> + + <_> + 10 6 1 4 -1. + <_> + 10 7 1 2 2. + 0 + <_> + + <_> + 10 6 3 1 -1. + <_> + 11 7 1 1 3. + 1 + <_> + + <_> + 10 6 4 5 -1. + <_> + 12 6 2 5 2. + 0 + <_> + + <_> + 10 7 4 5 -1. + <_> + 12 7 2 5 2. + 0 + <_> + + <_> + 10 8 2 2 -1. + <_> + 10 8 1 1 2. + <_> + 11 9 1 1 2. + 0 + <_> + + <_> + 10 8 3 3 -1. + <_> + 11 9 1 1 9. + 0 + <_> + + <_> + 10 8 2 2 -1. + <_> + 10 8 1 2 2. + 1 + <_> + + <_> + 10 8 3 2 -1. + <_> + 11 9 1 2 3. + 1 + <_> + + <_> + 10 8 2 4 -1. + <_> + 9 9 2 2 2. + 1 + <_> + + <_> + 10 9 3 3 -1. + <_> + 11 10 1 1 9. + 0 + <_> + + <_> + 10 9 2 4 -1. + <_> + 10 9 1 2 2. + <_> + 11 11 1 2 2. + 0 + <_> + + <_> + 10 9 4 2 -1. + <_> + 12 9 2 2 2. + 0 + <_> + + <_> + 10 9 4 3 -1. + <_> + 12 9 2 3 2. + 0 + <_> + + <_> + 10 10 8 5 -1. + <_> + 12 10 4 5 2. + 0 + <_> + + <_> + 10 11 3 1 -1. + <_> + 11 11 1 1 3. + 0 + <_> + + <_> + 10 11 2 4 -1. + <_> + 10 11 1 2 2. + <_> + 11 13 1 2 2. + 0 + <_> + + <_> + 10 11 2 9 -1. + <_> + 10 14 2 3 3. + 0 + <_> + + <_> + 10 13 1 2 -1. + <_> + 10 14 1 1 2. + 0 + <_> + + <_> + 10 13 4 1 -1. + <_> + 12 13 2 1 2. + 0 + <_> + + <_> + 10 14 2 1 -1. + <_> + 11 14 1 1 2. + 0 + <_> + + <_> + 10 14 1 2 -1. + <_> + 10 15 1 1 2. + 0 + <_> + + <_> + 10 14 3 1 -1. + <_> + 11 14 1 1 3. + 0 + <_> + + <_> + 10 14 2 2 -1. + <_> + 11 14 1 2 2. + 0 + <_> + + <_> + 11 2 6 8 -1. + <_> + 13 4 2 8 3. + 1 + <_> + + <_> + 11 5 1 6 -1. + <_> + 11 7 1 2 3. + 0 + <_> + + <_> + 11 6 2 8 -1. + <_> + 11 10 2 4 2. + 0 + <_> + + <_> + 11 8 1 3 -1. + <_> + 11 9 1 1 3. + 0 + <_> + + <_> + 11 9 3 3 -1. + <_> + 10 10 3 1 3. + 1 + <_> + + <_> + 11 10 3 1 -1. + <_> + 12 10 1 1 3. + 0 + <_> + + <_> + 11 13 1 2 -1. + <_> + 11 14 1 1 2. + 0 + <_> + + <_> + 11 14 1 2 -1. + <_> + 11 15 1 1 2. + 0 + <_> + + <_> + 11 14 3 1 -1. + <_> + 12 14 1 1 3. + 0 + <_> + + <_> + 11 15 2 1 -1. + <_> + 12 15 1 1 2. + 0 + <_> + + <_> + 12 2 4 8 -1. + <_> + 13 3 2 8 2. + 1 + <_> + + <_> + 12 3 7 3 -1. + <_> + 11 4 7 1 3. + 1 + <_> + + <_> + 12 7 2 1 -1. + <_> + 12 7 1 1 2. + 1 + <_> + + <_> + 12 7 2 4 -1. + <_> + 12 7 1 2 2. + <_> + 13 9 1 2 2. + 0 + <_> + + <_> + 12 7 2 9 -1. + <_> + 12 10 2 3 3. + 0 + <_> + + <_> + 12 9 3 1 -1. + <_> + 13 9 1 1 3. + 0 + <_> + + <_> + 12 10 3 1 -1. + <_> + 13 10 1 1 3. + 0 + <_> + + <_> + 12 10 1 4 -1. + <_> + 12 11 1 2 2. + 0 + <_> + + <_> + 12 10 2 2 -1. + <_> + 12 10 1 1 2. + <_> + 13 11 1 1 2. + 0 + <_> + + <_> + 12 15 2 2 -1. + <_> + 13 15 1 2 2. + 0 + <_> + + <_> + 13 4 2 8 -1. + <_> + 13 4 1 4 2. + <_> + 14 8 1 4 2. + 0 + <_> + + <_> + 13 5 3 9 -1. + <_> + 14 8 1 3 9. + 0 + <_> + + <_> + 13 6 6 6 -1. + <_> + 13 6 3 3 2. + <_> + 16 9 3 3 2. + 0 + <_> + + <_> + 13 7 2 3 -1. + <_> + 13 7 1 3 2. + 1 + <_> + + <_> + 13 9 3 3 -1. + <_> + 14 9 1 3 3. + 0 + <_> + + <_> + 13 10 3 3 -1. + <_> + 14 11 1 1 9. + 0 + <_> + + <_> + 13 11 1 8 -1. + <_> + 13 11 1 4 2. + 1 + <_> + + <_> + 13 15 6 1 -1. + <_> + 16 15 3 1 2. + 0 + <_> + + <_> + 14 3 1 6 -1. + <_> + 12 5 1 2 3. + 1 + <_> + + <_> + 14 7 2 3 -1. + <_> + 14 7 1 3 2. + 1 + <_> + + <_> + 14 7 2 2 -1. + <_> + 14 7 2 1 2. + 1 + <_> + + <_> + 14 7 3 6 -1. + <_> + 14 7 3 3 2. + 1 + <_> + + <_> + 14 8 3 4 -1. + <_> + 15 8 1 4 3. + 0 + <_> + + <_> + 14 8 3 5 -1. + <_> + 15 8 1 5 3. + 0 + <_> + + <_> + 14 9 2 6 -1. + <_> + 14 9 1 3 2. + <_> + 15 12 1 3 2. + 0 + <_> + + <_> + 14 12 6 2 -1. + <_> + 14 12 3 1 2. + <_> + 17 13 3 1 2. + 0 + <_> + + <_> + 14 16 4 1 -1. + <_> + 16 16 2 1 2. + 0 + <_> + + <_> + 15 9 3 1 -1. + <_> + 16 10 1 1 3. + 1 + <_> + + <_> + 18 6 1 9 -1. + <_> + 18 9 1 3 3. + 0 + <_> + + <_> + 18 8 2 5 -1. + <_> + 19 8 1 5 2. + 0 + <_> + + <_> + 18 12 2 1 -1. + <_> + 18 12 1 1 2. + 1 + <_> + + <_> + 18 13 2 2 -1. + <_> + 18 13 1 2 2. + 1 + diff --git a/computer/cascade_xml/traffic_light.xml b/computer/cascade_xml/traffic_light.xml new file mode 100644 index 0000000..c3d818d --- /dev/null +++ b/computer/cascade_xml/traffic_light.xml @@ -0,0 +1,1785 @@ + + + + BOOST + HAAR + 45 + 25 + + GAB + 9.9900001287460327e-01 + 5.0000000000000000e-01 + 9.4999999999999996e-01 + 1 + 100 + + 0 + 1 + ALL + 20 + + + <_> + 3 + -1.1182584762573242e+00 + + <_> + + 0 -1 92 -1.5218246728181839e-02 + + 8.0637812614440918e-01 -9.5652174949645996e-01 + <_> + + 0 -1 1 -9.0668499469757080e-03 + + 7.8182405233383179e-01 -8.1939858198165894e-01 + <_> + + 0 -1 91 -8.2602538168430328e-03 + + 6.5766179561614990e-01 -8.2300186157226562e-01 + + <_> + 4 + -3.8429734110832214e-01 + + <_> + + 0 -1 7 -3.1275503337383270e-02 + + 7.2270745038986206e-01 -9.2253524065017700e-01 + <_> + + 0 -1 82 -2.7673570439219475e-03 + + 5.2933508157730103e-01 -9.6118038892745972e-01 + <_> + + 0 -1 131 3.4157070331275463e-03 + + -7.4300682544708252e-01 5.4688668251037598e-01 + <_> + + 0 -1 55 -2.1575871855020523e-02 + + 7.5190967321395874e-01 -6.0541456937789917e-01 + + <_> + 5 + -5.6873494386672974e-01 + + <_> + + 0 -1 131 3.0508034396916628e-03 + + -6.5454542636871338e-01 7.0804595947265625e-01 + <_> + + 0 -1 70 2.0139521802775562e-04 + + -8.8296043872833252e-01 4.6185281872749329e-01 + <_> + + 0 -1 89 -9.0918154455721378e-05 + + -8.7925267219543457e-01 3.7363520264625549e-01 + <_> + + 0 -1 13 1.6122728120535612e-03 + + 2.5894206762313843e-01 -9.5166242122650146e-01 + <_> + + 0 -1 47 -5.7838540669763461e-05 + + -9.5217996835708618e-01 2.4426831305027008e-01 + + <_> + 5 + -6.2908536195755005e-01 + + <_> + + 0 -1 9 -1.7118256073445082e-03 + + 7.2586411237716675e-01 -5.7894736528396606e-01 + <_> + + 0 -1 105 -1.1031275789719075e-04 + + 4.3248271942138672e-01 -9.0851449966430664e-01 + <_> + + 0 -1 125 -5.0491997972130775e-03 + + 3.8107362389564514e-01 -7.9866659641265869e-01 + <_> + + 0 -1 27 -2.0671228412538767e-04 + + -9.6724623441696167e-01 2.3175306618213654e-01 + <_> + + 0 -1 27 1.3348244829103351e-04 + + 2.4554981291294098e-01 -9.7370201349258423e-01 + + <_> + 5 + -1.1076694726943970e+00 + + <_> + + 0 -1 68 1.3001039042137563e-04 + + 5.7551825046539307e-01 -9.7860962152481079e-01 + <_> + + 0 -1 30 -3.3500225981697440e-05 + + -8.6870771646499634e-01 3.9780837297439575e-01 + <_> + + 0 -1 44 -2.0558938384056091e-02 + + 6.1390924453735352e-01 -5.1743024587631226e-01 + <_> + + 0 -1 4 -3.0245352536439896e-03 + + 5.2975594997406006e-01 -6.3342809677124023e-01 + <_> + + 0 -1 133 2.1721082157455385e-04 + + 3.3637839555740356e-01 -9.9252820014953613e-01 + + <_> + 6 + -1.1980488300323486e+00 + + <_> + + 0 -1 117 -4.2530021164566278e-04 + + -8.3193278312683105e-01 6.2162160873413086e-01 + <_> + + 0 -1 123 1.3861652405466884e-04 + + 3.6078250408172607e-01 -9.2338705062866211e-01 + <_> + + 0 -1 109 -1.2715373188257217e-02 + + 5.5411911010742188e-01 -5.1542079448699951e-01 + <_> + + 0 -1 14 -2.6816513855010271e-03 + + 4.4698977470397949e-01 -6.7423629760742188e-01 + <_> + + 0 -1 50 -6.0114997904747725e-04 + + -9.4970852136611938e-01 2.5682422518730164e-01 + <_> + + 0 -1 39 5.3423915232997388e-05 + + 2.3531873524188995e-01 -9.1529178619384766e-01 + + <_> + 4 + 5.2624002099037170e-02 + + <_> + + 0 -1 52 1.2321374379098415e-04 + + 5.9589743614196777e-01 -8.0444443225860596e-01 + <_> + + 0 -1 122 -2.9269425431266427e-04 + + -9.2455589771270752e-01 3.2840943336486816e-01 + <_> + + 0 -1 51 -2.5443063350394368e-04 + + -8.6902695894241333e-01 2.9218551516532898e-01 + <_> + + 0 -1 62 -2.8406906494637951e-05 + + -9.2562615871429443e-01 2.3647351562976837e-01 + + <_> + 6 + -5.5691772699356079e-01 + + <_> + + 0 -1 96 -1.7651211237534881e-04 + + 5.6299215555191040e-01 -9.3478262424468994e-01 + <_> + + 0 -1 59 -2.6983745396137238e-02 + + 4.8550808429718018e-01 -5.7044625282287598e-01 + <_> + + 0 -1 25 -8.2707917317748070e-04 + + -7.5436908006668091e-01 3.9481931924819946e-01 + <_> + + 0 -1 74 -3.3318206667900085e-02 + + 4.4258514046669006e-01 -6.2007123231887817e-01 + <_> + + 0 -1 24 -4.0659449994564056e-02 + + 6.7747306823730469e-01 -4.1924440860748291e-01 + <_> + + 0 -1 116 1.7721638141665608e-04 + + 2.7273333072662354e-01 -9.6762365102767944e-01 + + <_> + 9 + -1.1224768161773682e+00 + + <_> + + 0 -1 15 2.2653568885289133e-04 + + 5.8097165822982788e-01 -8.2075470685958862e-01 + <_> + + 0 -1 135 1.1001355014741421e-03 + + -5.2033698558807373e-01 5.0861692428588867e-01 + <_> + + 0 -1 81 -6.0721102636307478e-04 + + 4.4948601722717285e-01 -6.5971684455871582e-01 + <_> + + 0 -1 3 -2.0594703964889050e-03 + + 4.6075913310050964e-01 -5.4609370231628418e-01 + <_> + + 0 -1 58 -2.5371506810188293e-02 + + 4.1999927163124084e-01 -5.8192580938339233e-01 + <_> + + 0 -1 60 2.7266819961369038e-04 + + -8.1050950288772583e-01 3.2997298240661621e-01 + <_> + + 0 -1 113 9.2536982265301049e-05 + + 2.2872088849544525e-01 -9.1734880208969116e-01 + <_> + + 0 -1 114 -4.3776165693998337e-04 + + -9.4291299581527710e-01 2.3099844157695770e-01 + <_> + + 0 -1 75 -5.9191461332375184e-06 + + 2.7944248914718628e-01 -8.0519253015518188e-01 + + <_> + 6 + -6.3339114189147949e-01 + + <_> + + 0 -1 106 -7.6895457823411562e-06 + + 5.5734407901763916e-01 -7.4757283926010132e-01 + <_> + + 0 -1 65 2.1155076101422310e-02 + + -3.9223381876945496e-01 5.5961626768112183e-01 + <_> + + 0 -1 94 7.9423858551308513e-05 + + 3.9795845746994019e-01 -7.4542719125747681e-01 + <_> + + 0 -1 132 -1.1796997860074043e-03 + + 4.2678046226501465e-01 -5.6197750568389893e-01 + <_> + + 0 -1 41 -7.5357063906267285e-05 + + -8.3983147144317627e-01 2.6857435703277588e-01 + <_> + + 0 -1 57 -3.2889500260353088e-02 + + 5.5841594934463501e-01 -4.1907948255538940e-01 + + <_> + 7 + -4.2552766203880310e-01 + + <_> + + 0 -1 119 9.2608337581623346e-05 + + 5.4645353555679321e-01 -7.3869347572326660e-01 + <_> + + 0 -1 110 1.0352894896641374e-03 + + -8.2881146669387817e-01 3.2366982102394104e-01 + <_> + + 0 -1 103 -1.0691542411223054e-04 + + 2.0922286808490753e-01 -9.2345798015594482e-01 + <_> + + 0 -1 54 -5.0032680155709386e-04 + + -8.8800156116485596e-01 2.2651962935924530e-01 + <_> + + 0 -1 115 1.6262420103885233e-04 + + 1.4117328822612762e-01 -9.3459022045135498e-01 + <_> + + 0 -1 61 -2.5965880922740325e-05 + + 2.1897254884243011e-01 -7.9763734340667725e-01 + <_> + + 0 -1 77 6.8813023972325027e-06 + + -6.1619734764099121e-01 3.2628849148750305e-01 + + <_> + 9 + -1.1347165107727051e+00 + + <_> + + 0 -1 5 -2.3673165123909712e-03 + + 5.5375254154205322e-01 -6.8224298954010010e-01 + <_> + + 0 -1 29 -2.2772494412492961e-04 + + -8.4745872020721436e-01 2.9582437872886658e-01 + <_> + + 0 -1 98 -4.9833563389256597e-04 + + 2.7509352564811707e-01 -7.9623371362686157e-01 + <_> + + 0 -1 0 -2.4950597435235977e-03 + + 3.8401266932487488e-01 -6.0704624652862549e-01 + <_> + + 0 -1 22 -1.3221341650933027e-03 + + 4.1101419925689697e-01 -5.1578378677368164e-01 + <_> + + 0 -1 28 3.5101475077681243e-05 + + -7.7102130651473999e-01 2.6260149478912354e-01 + <_> + + 0 -1 32 -1.3225190341472626e-03 + + 5.4373836517333984e-01 -4.5510113239288330e-01 + <_> + + 0 -1 84 -1.7676851712167263e-04 + + -9.6311193704605103e-01 2.2451019287109375e-01 + <_> + + 0 -1 71 -8.4284460172057152e-05 + + 1.7425289750099182e-01 -9.4447797536849976e-01 + + <_> + 7 + -9.9081629514694214e-01 + + <_> + + 0 -1 21 -3.0416352674365044e-03 + + -8.3892619609832764e-01 4.9952426552772522e-01 + <_> + + 0 -1 3 -3.2510135788470507e-03 + + 5.0745302438735962e-01 -4.0581086277961731e-01 + <_> + + 0 -1 49 -2.7112653478980064e-02 + + 4.7979277372360229e-01 -4.1902795433998108e-01 + <_> + + 0 -1 99 -3.3669878030195832e-04 + + 2.6228913664817810e-01 -8.6885607242584229e-01 + <_> + + 0 -1 85 -6.2557175988331437e-04 + + 2.9307699203491211e-01 -6.6085666418075562e-01 + <_> + + 0 -1 129 5.7841241359710693e-03 + + -6.2330943346023560e-01 3.6265468597412109e-01 + <_> + + 0 -1 90 -1.4100826228968799e-04 + + 2.9955452680587769e-01 -6.2958890199661255e-01 + + <_> + 9 + -9.4170409440994263e-01 + + <_> + + 0 -1 26 -1.0752207890618593e-04 + + -9.1240876913070679e-01 4.9388521909713745e-01 + <_> + + 0 -1 17 5.4902193369343877e-05 + + 2.3044449090957642e-01 -8.0160576105117798e-01 + <_> + + 0 -1 11 2.9557880479842424e-03 + + 1.8769079446792603e-01 -8.3098721504211426e-01 + <_> + + 0 -1 42 7.4737065006047487e-05 + + -8.2648044824600220e-01 2.1240779757499695e-01 + <_> + + 0 -1 31 9.2128422111272812e-03 + + 3.3417859673500061e-01 -6.1713069677352905e-01 + <_> + + 0 -1 80 -5.6273087859153748e-02 + + 5.8601039648056030e-01 -4.3135163187980652e-01 + <_> + + 0 -1 46 -4.5482371933758259e-04 + + -6.7318749427795410e-01 3.0672127008438110e-01 + <_> + + 0 -1 6 5.2398513071238995e-04 + + -3.4565076231956482e-01 6.4438700675964355e-01 + <_> + + 0 -1 107 -1.2128071393817663e-03 + + 4.5617285370826721e-01 -4.6154832839965820e-01 + + <_> + 9 + -1.1487864255905151e+00 + + <_> + + 0 -1 112 1.6462607891298831e-04 + + 5.0566035509109497e-01 -9.7142857313156128e-01 + <_> + + 0 -1 35 6.6264437919016927e-05 + + -7.6834422349929810e-01 2.9602336883544922e-01 + <_> + + 0 -1 121 -2.4305414990521967e-04 + + -9.6120482683181763e-01 1.8722063302993774e-01 + <_> + + 0 -1 120 3.8327336369547993e-05 + + 2.6676881313323975e-01 -7.1165627241134644e-01 + <_> + + 0 -1 34 -9.7052147611975670e-04 + + -8.1342124938964844e-01 1.7853492498397827e-01 + <_> + + 0 -1 127 -6.1740156525047496e-06 + + 1.8331494927406311e-01 -8.3237200975418091e-01 + <_> + + 0 -1 93 -1.3953330380900297e-05 + + 3.1803333759307861e-01 -5.3453892469406128e-01 + <_> + + 0 -1 8 -1.5846057794988155e-03 + + 2.7946412563323975e-01 -6.6444915533065796e-01 + <_> + + 0 -1 88 -1.6342351213097572e-02 + + 5.1273310184478760e-01 -3.8046845793724060e-01 + + <_> + 8 + -1.2016570568084717e+00 + + <_> + + 0 -1 12 -1.0847686789929867e-03 + + 5.0191569328308105e-01 -7.9487180709838867e-01 + <_> + + 0 -1 102 -5.1427626749500632e-04 + + 2.4128369987010956e-01 -8.1255680322647095e-01 + <_> + + 0 -1 23 -1.8383808434009552e-02 + + 6.4674752950668335e-01 -2.9313954710960388e-01 + <_> + + 0 -1 63 -2.5105761596933007e-04 + + -9.2148679494857788e-01 2.2645594179630280e-01 + <_> + + 0 -1 67 -2.1741576492786407e-02 + + 5.2215409278869629e-01 -4.1079953312873840e-01 + <_> + + 0 -1 124 -3.4985631704330444e-02 + + 3.2559829950332642e-01 -5.9795075654983521e-01 + <_> + + 0 -1 79 1.4734102878719568e-03 + + -3.5487082600593567e-01 6.0526216030120850e-01 + <_> + + 0 -1 45 2.0769808441400528e-02 + + -5.1455181837081909e-01 6.2268215417861938e-01 + + <_> + 10 + -7.2308760881423950e-01 + + <_> + + 0 -1 128 9.5574898296035826e-05 + + 4.8044693470001221e-01 -9.2063492536544800e-01 + <_> + + 0 -1 53 2.8381973970681429e-04 + + -8.5529482364654541e-01 2.6645165681838989e-01 + <_> + + 0 -1 48 7.6030823402106762e-03 + + 3.0882462859153748e-01 -5.7422232627868652e-01 + <_> + + 0 -1 78 1.6646791249513626e-02 + + -3.3542081713676453e-01 5.9531646966934204e-01 + <_> + + 0 -1 19 -1.2090168893337250e-03 + + -5.4142624139785767e-01 4.1354033350944519e-01 + <_> + + 0 -1 95 -1.6771969967521727e-04 + + 2.9962882399559021e-01 -7.2322082519531250e-01 + <_> + + 0 -1 126 2.8689959435723722e-05 + + 2.6773402094841003e-01 -6.5903985500335693e-01 + <_> + + 0 -1 20 6.6815223544836044e-03 + + 2.3754282295703888e-01 -7.3575747013092041e-01 + <_> + + 0 -1 97 -3.4236656501889229e-03 + + 3.6159345507621765e-01 -7.5826853513717651e-01 + <_> + + 0 -1 33 1.2732727918773890e-03 + + -6.0256642103195190e-01 2.6525798439979553e-01 + + <_> + 9 + -9.5814341306686401e-01 + + <_> + + 0 -1 37 -2.1262167138047516e-04 + + -6.6829270124435425e-01 5.3969848155975342e-01 + <_> + + 0 -1 108 -1.6208652596105821e-05 + + 2.2586794197559357e-01 -8.7113767862319946e-01 + <_> + + 0 -1 36 1.1260545579716563e-04 + + 2.0030571520328522e-01 -8.3372658491134644e-01 + <_> + + 0 -1 134 5.7705468498170376e-04 + + -7.9086685180664062e-01 2.3868314921855927e-01 + <_> + + 0 -1 56 -1.0837236186489463e-03 + + 3.2010525465011597e-01 -5.3199630975723267e-01 + <_> + + 0 -1 111 -1.8599703616928309e-04 + + 3.0578160285949707e-01 -5.5640172958374023e-01 + <_> + + 0 -1 64 -1.5118342707864940e-04 + + -8.2822650671005249e-01 1.9903132319450378e-01 + <_> + + 0 -1 83 -4.1448799893260002e-03 + + -4.3385601043701172e-01 4.1304954886436462e-01 + <_> + + 0 -1 69 8.5696432506665587e-05 + + -8.7357699871063232e-01 1.9455631077289581e-01 + + <_> + 7 + -4.0030923485755920e-01 + + <_> + + 0 -1 38 1.7059991369023919e-03 + + -8.5915493965148926e-01 4.9338373541831970e-01 + <_> + + 0 -1 10 -1.6846917569637299e-03 + + 4.4672420620918274e-01 -5.3707736730575562e-01 + <_> + + 0 -1 40 -5.8449420612305403e-04 + + -7.7790278196334839e-01 2.7698427438735962e-01 + <_> + + 0 -1 73 -2.4571600370109081e-03 + + 2.7406308054924011e-01 -6.4117157459259033e-01 + <_> + + 0 -1 43 -5.5974610149860382e-02 + + 5.5524331331253052e-01 -3.8878279924392700e-01 + <_> + + 0 -1 76 -1.9325233995914459e-02 + + 6.0979032516479492e-01 -4.1731300950050354e-01 + <_> + + 0 -1 130 -1.2540252646431327e-04 + + -9.4642448425292969e-01 2.3837846517562866e-01 + + <_> + 11 + -1.1879638433456421e+00 + + <_> + + 0 -1 104 -2.4424141156487167e-04 + + 5.1319646835327148e-01 -7.0621466636657715e-01 + <_> + + 0 -1 16 1.4977643149904907e-04 + + 2.3306415975093842e-01 -8.6206024885177612e-01 + <_> + + 0 -1 2 -4.3414589017629623e-03 + + 2.2676137089729309e-01 -7.0749777555465698e-01 + <_> + + 0 -1 100 -3.9709286647848785e-04 + + 5.0981646776199341e-01 -3.8439393043518066e-01 + <_> + + 0 -1 66 -3.4664515405893326e-02 + + 8.3707231283187866e-01 -2.4584873020648956e-01 + <_> + + 0 -1 18 -7.4850942473858595e-04 + + -6.3968110084533691e-01 3.3969947695732117e-01 + <_> + + 0 -1 101 9.9156214855611324e-04 + + -3.3157727122306824e-01 6.2442117929458618e-01 + <_> + + 0 -1 72 9.4228598754853010e-06 + + -8.9700716733932495e-01 2.3467294871807098e-01 + <_> + + 0 -1 87 -1.0972914751619101e-03 + + 4.7398251295089722e-01 -3.7037673592567444e-01 + <_> + + 0 -1 118 3.9175640267785639e-05 + + 2.4726134538650513e-01 -7.2340226173400879e-01 + <_> + + 0 -1 86 -8.2670961273834109e-04 + + 2.7788189053535461e-01 -6.1641848087310791e-01 + + <_> + + <_> + 0 16 19 8 -1. + <_> + 0 18 19 4 2. + 0 + <_> + + <_> + 0 17 12 10 -1. + <_> + 3 17 6 10 2. + 0 + <_> + + <_> + 0 19 6 9 -1. + <_> + 3 19 3 9 2. + 0 + <_> + + <_> + 0 20 6 4 -1. + <_> + 2 20 2 4 3. + 0 + <_> + + <_> + 0 20 4 6 -1. + <_> + 2 20 2 6 2. + 0 + <_> + + <_> + 0 20 8 7 -1. + <_> + 4 20 4 7 2. + 0 + <_> + + <_> + 0 22 2 4 -1. + <_> + 0 22 1 2 2. + <_> + 1 24 1 2 2. + 0 + <_> + + <_> + 1 13 12 21 -1. + <_> + 5 20 4 7 9. + 0 + <_> + + <_> + 1 18 6 8 -1. + <_> + 3 18 2 8 3. + 0 + <_> + + <_> + 1 18 6 9 -1. + <_> + 3 18 2 9 3. + 0 + <_> + + <_> + 2 17 15 6 -1. + <_> + 2 19 15 2 3. + 0 + <_> + + <_> + 2 23 22 2 -1. + <_> + 13 23 11 2 2. + 0 + <_> + + <_> + 3 17 9 6 -1. + <_> + 6 19 3 2 9. + 0 + <_> + + <_> + 3 24 20 1 -1. + <_> + 13 24 10 1 2. + 0 + <_> + + <_> + 4 15 13 9 -1. + <_> + 4 18 13 3 3. + 0 + <_> + + <_> + 4 18 3 9 -1. + <_> + 5 18 1 9 3. + 0 + <_> + + <_> + 4 18 2 4 -1. + <_> + 4 20 2 2 2. + 0 + <_> + + <_> + 4 20 2 2 -1. + <_> + 4 21 2 1 2. + 0 + <_> + + <_> + 4 20 6 1 -1. + <_> + 6 22 2 1 3. + 1 + <_> + + <_> + 4 20 8 1 -1. + <_> + 6 22 4 1 2. + 1 + <_> + + <_> + 4 23 15 2 -1. + <_> + 9 23 5 2 3. + 0 + <_> + + <_> + 4 25 18 1 -1. + <_> + 13 25 9 1 2. + 0 + <_> + + <_> + 4 28 13 4 -1. + <_> + 3 29 13 2 2. + 1 + <_> + + <_> + 4 36 16 9 -1. + <_> + 4 39 16 3 3. + 0 + <_> + + <_> + 5 1 16 10 -1. + <_> + 5 6 16 5 2. + 0 + <_> + + <_> + 5 19 3 6 -1. + <_> + 6 21 1 2 9. + 0 + <_> + + <_> + 5 20 1 4 -1. + <_> + 5 21 1 2 2. + 0 + <_> + + <_> + 5 20 2 4 -1. + <_> + 5 21 2 2 2. + 0 + <_> + + <_> + 5 21 4 4 -1. + <_> + 7 21 2 4 2. + 0 + <_> + + <_> + 5 22 3 1 -1. + <_> + 6 23 1 1 3. + 1 + <_> + + <_> + 5 23 2 1 -1. + <_> + 6 23 1 1 2. + 0 + <_> + + <_> + 5 23 15 2 -1. + <_> + 10 23 5 2 3. + 0 + <_> + + <_> + 5 36 16 1 -1. + <_> + 9 36 8 1 2. + 0 + <_> + + <_> + 6 7 4 16 -1. + <_> + 6 7 2 8 2. + <_> + 8 15 2 8 2. + 0 + <_> + + <_> + 6 17 1 9 -1. + <_> + 6 20 1 3 3. + 0 + <_> + + <_> + 6 17 2 12 -1. + <_> + 7 17 1 12 2. + 0 + <_> + + <_> + 6 21 3 1 -1. + <_> + 7 22 1 1 3. + 1 + <_> + + <_> + 6 22 3 1 -1. + <_> + 7 23 1 1 3. + 1 + <_> + + <_> + 6 22 12 3 -1. + <_> + 10 22 4 3 3. + 0 + <_> + + <_> + 6 23 2 2 -1. + <_> + 6 23 1 1 2. + <_> + 7 24 1 1 2. + 0 + <_> + + <_> + 6 23 6 1 -1. + <_> + 8 23 2 1 3. + 0 + <_> + + <_> + 6 24 2 3 -1. + <_> + 7 24 1 3 2. + 0 + <_> + + <_> + 6 24 10 1 -1. + <_> + 11 24 5 1 2. + 0 + <_> + + <_> + 7 0 12 30 -1. + <_> + 7 10 12 10 3. + 0 + <_> + + <_> + 7 1 11 16 -1. + <_> + 7 5 11 8 2. + 0 + <_> + + <_> + 7 12 10 18 -1. + <_> + 7 21 10 9 2. + 0 + <_> + + <_> + 7 16 3 3 -1. + <_> + 8 17 1 3 3. + 1 + <_> + + <_> + 7 16 2 11 -1. + <_> + 8 16 1 11 2. + 0 + <_> + + <_> + 7 16 12 15 -1. + <_> + 11 21 4 5 9. + 0 + <_> + + <_> + 7 16 11 15 -1. + <_> + 7 21 11 5 3. + 0 + <_> + + <_> + 7 20 2 3 -1. + <_> + 6 21 2 1 3. + 1 + <_> + + <_> + 7 21 1 3 -1. + <_> + 6 22 1 1 3. + 1 + <_> + + <_> + 7 21 2 3 -1. + <_> + 6 22 2 1 3. + 1 + <_> + + <_> + 7 23 9 2 -1. + <_> + 10 23 3 2 3. + 0 + <_> + + <_> + 7 24 6 1 -1. + <_> + 9 24 2 1 3. + 0 + <_> + + <_> + 7 29 10 16 -1. + <_> + 7 33 10 8 2. + 0 + <_> + + <_> + 7 35 12 9 -1. + <_> + 11 35 4 9 3. + 0 + <_> + + <_> + 8 0 10 10 -1. + <_> + 8 5 10 5 2. + 0 + <_> + + <_> + 8 12 9 21 -1. + <_> + 8 19 9 7 3. + 0 + <_> + + <_> + 8 14 10 18 -1. + <_> + 8 20 10 6 3. + 0 + <_> + + <_> + 8 19 2 8 -1. + <_> + 9 19 1 8 2. + 0 + <_> + + <_> + 8 20 3 3 -1. + <_> + 7 21 3 1 3. + 1 + <_> + + <_> + 8 21 6 1 -1. + <_> + 10 21 2 1 3. + 0 + <_> + + <_> + 8 23 14 2 -1. + <_> + 8 23 7 1 2. + <_> + 15 24 7 1 2. + 0 + <_> + + <_> + 8 29 2 2 -1. + <_> + 9 29 1 2 2. + 0 + <_> + + <_> + 8 35 13 10 -1. + <_> + 8 40 13 5 2. + 0 + <_> + + <_> + 9 14 8 20 -1. + <_> + 9 14 4 10 2. + <_> + 13 24 4 10 2. + 0 + <_> + + <_> + 9 14 8 16 -1. + <_> + 9 18 8 8 2. + 0 + <_> + + <_> + 9 20 1 4 -1. + <_> + 8 21 1 2 2. + 1 + <_> + + <_> + 9 20 2 4 -1. + <_> + 10 20 1 4 2. + 0 + <_> + + <_> + 9 20 2 7 -1. + <_> + 10 20 1 7 2. + 0 + <_> + + <_> + 9 21 2 4 -1. + <_> + 8 22 2 2 2. + 1 + <_> + + <_> + 9 21 6 4 -1. + <_> + 11 21 2 4 3. + 0 + <_> + + <_> + 9 21 5 12 -1. + <_> + 9 25 5 4 3. + 0 + <_> + + <_> + 9 21 15 21 -1. + <_> + 14 28 5 7 9. + 0 + <_> + + <_> + 9 23 2 2 -1. + <_> + 9 24 2 1 2. + 0 + <_> + + <_> + 10 12 15 9 -1. + <_> + 7 15 15 3 3. + 1 + <_> + + <_> + 10 14 10 4 -1. + <_> + 10 15 10 2 2. + 0 + <_> + + <_> + 10 15 6 24 -1. + <_> + 10 21 6 12 2. + 0 + <_> + + <_> + 10 20 6 8 -1. + <_> + 10 20 3 8 2. + 1 + <_> + + <_> + 10 21 9 24 -1. + <_> + 13 29 3 8 9. + 0 + <_> + + <_> + 10 21 5 4 -1. + <_> + 9 22 5 2 2. + 1 + <_> + + <_> + 11 21 10 4 -1. + <_> + 16 21 5 4 2. + 0 + <_> + + <_> + 11 22 14 3 -1. + <_> + 18 22 7 3 2. + 0 + <_> + + <_> + 11 23 3 2 -1. + <_> + 12 23 1 2 3. + 0 + <_> + + <_> + 11 24 9 6 -1. + <_> + 14 26 3 2 9. + 0 + <_> + + <_> + 11 26 12 7 -1. + <_> + 14 26 6 7 2. + 0 + <_> + + <_> + 12 3 3 10 -1. + <_> + 13 4 1 10 3. + 1 + <_> + + <_> + 12 8 9 15 -1. + <_> + 15 13 3 5 9. + 0 + <_> + + <_> + 12 22 2 2 -1. + <_> + 12 22 2 1 2. + 1 + <_> + + <_> + 13 16 2 6 -1. + <_> + 13 18 2 2 3. + 0 + <_> + + <_> + 13 16 8 15 -1. + <_> + 17 16 4 15 2. + 0 + <_> + + <_> + 13 19 12 12 -1. + <_> + 17 23 4 4 9. + 0 + <_> + + <_> + 13 20 1 3 -1. + <_> + 13 21 1 1 3. + 0 + <_> + + <_> + 13 22 8 1 -1. + <_> + 15 22 4 1 2. + 0 + <_> + + <_> + 13 25 8 4 -1. + <_> + 15 25 4 4 2. + 0 + <_> + + <_> + 14 18 6 4 -1. + <_> + 17 18 3 4 2. + 0 + <_> + + <_> + 14 19 6 8 -1. + <_> + 17 19 3 8 2. + 0 + <_> + + <_> + 14 23 6 6 -1. + <_> + 16 25 2 2 9. + 0 + <_> + + <_> + 14 24 6 1 -1. + <_> + 17 24 3 1 2. + 0 + <_> + + <_> + 15 7 4 6 -1. + <_> + 15 7 2 3 2. + <_> + 17 10 2 3 2. + 0 + <_> + + <_> + 15 15 8 1 -1. + <_> + 19 15 4 1 2. + 0 + <_> + + <_> + 15 18 6 6 -1. + <_> + 17 20 2 2 9. + 0 + <_> + + <_> + 15 23 6 3 -1. + <_> + 17 24 2 1 9. + 0 + <_> + + <_> + 15 23 6 3 -1. + <_> + 17 23 2 3 3. + 0 + <_> + + <_> + 15 24 4 1 -1. + <_> + 17 24 2 1 2. + 0 + <_> + + <_> + 16 22 6 1 -1. + <_> + 19 22 3 1 2. + 0 + <_> + + <_> + 17 6 4 12 -1. + <_> + 17 6 2 6 2. + <_> + 19 12 2 6 2. + 0 + <_> + + <_> + 17 16 2 10 -1. + <_> + 18 16 1 10 2. + 0 + <_> + + <_> + 17 16 8 13 -1. + <_> + 19 16 4 13 2. + 0 + <_> + + <_> + 17 19 8 8 -1. + <_> + 21 19 4 8 2. + 0 + <_> + + <_> + 17 23 3 2 -1. + <_> + 18 24 1 2 3. + 1 + <_> + + <_> + 17 26 2 3 -1. + <_> + 18 26 1 3 2. + 0 + <_> + + <_> + 18 17 2 6 -1. + <_> + 19 17 1 6 2. + 0 + <_> + + <_> + 18 20 2 6 -1. + <_> + 19 20 1 6 2. + 0 + <_> + + <_> + 18 20 2 8 -1. + <_> + 19 20 1 8 2. + 0 + <_> + + <_> + 18 21 2 4 -1. + <_> + 18 21 1 2 2. + <_> + 19 23 1 2 2. + 0 + <_> + + <_> + 18 22 3 3 -1. + <_> + 19 23 1 1 9. + 0 + <_> + + <_> + 19 18 2 9 -1. + <_> + 20 18 1 9 2. + 0 + <_> + + <_> + 19 19 2 5 -1. + <_> + 20 19 1 5 2. + 0 + <_> + + <_> + 19 20 2 6 -1. + <_> + 20 20 1 6 2. + 0 + <_> + + <_> + 19 21 2 4 -1. + <_> + 20 21 1 4 2. + 0 + <_> + + <_> + 19 23 3 3 -1. + <_> + 19 24 3 1 3. + 0 + <_> + + <_> + 19 24 1 3 -1. + <_> + 18 25 1 1 3. + 1 + <_> + + <_> + 20 1 3 39 -1. + <_> + 21 14 1 13 9. + 0 + <_> + + <_> + 20 5 1 36 -1. + <_> + 20 17 1 12 3. + 0 + <_> + + <_> + 20 20 2 1 -1. + <_> + 21 20 1 1 2. + 0 + <_> + + <_> + 20 20 3 4 -1. + <_> + 21 21 1 4 3. + 1 + <_> + + <_> + 20 23 1 4 -1. + <_> + 20 24 1 2 2. + 0 + <_> + + <_> + 21 18 4 9 -1. + <_> + 23 18 2 9 2. + 0 + <_> + + <_> + 21 19 1 2 -1. + <_> + 21 19 1 1 2. + 1 + <_> + + <_> + 21 19 4 8 -1. + <_> + 23 19 2 8 2. + 0 + <_> + + <_> + 21 20 4 5 -1. + <_> + 22 20 2 5 2. + 0 + <_> + + <_> + 21 21 1 4 -1. + <_> + 20 22 1 2 2. + 1 + <_> + + <_> + 22 18 2 10 -1. + <_> + 23 18 1 10 2. + 0 + <_> + + <_> + 23 20 2 6 -1. + <_> + 24 20 1 6 2. + 0 + diff --git a/computer/chess_board/frame01.jpg b/computer/chess_board/frame01.jpg new file mode 100644 index 0000000..982b557 Binary files /dev/null and b/computer/chess_board/frame01.jpg differ diff --git a/computer/chess_board/frame02.jpg b/computer/chess_board/frame02.jpg new file mode 100644 index 0000000..51db56f Binary files /dev/null and b/computer/chess_board/frame02.jpg differ diff --git a/computer/chess_board/frame03.jpg b/computer/chess_board/frame03.jpg new file mode 100644 index 0000000..1f81e0b Binary files /dev/null and b/computer/chess_board/frame03.jpg differ diff --git a/computer/chess_board/frame04.jpg b/computer/chess_board/frame04.jpg new file mode 100644 index 0000000..56410a6 Binary files /dev/null and b/computer/chess_board/frame04.jpg differ diff --git a/computer/chess_board/frame05.jpg b/computer/chess_board/frame05.jpg new file mode 100644 index 0000000..000b1b3 Binary files /dev/null and b/computer/chess_board/frame05.jpg differ diff --git a/computer/chess_board/frame06.jpg b/computer/chess_board/frame06.jpg new file mode 100644 index 0000000..3439877 Binary files /dev/null and b/computer/chess_board/frame06.jpg differ diff --git a/computer/chess_board/frame07.jpg b/computer/chess_board/frame07.jpg new file mode 100644 index 0000000..3d5ec56 Binary files /dev/null and b/computer/chess_board/frame07.jpg differ diff --git a/computer/chess_board/frame08.jpg b/computer/chess_board/frame08.jpg new file mode 100644 index 0000000..3234cad Binary files /dev/null and b/computer/chess_board/frame08.jpg differ diff --git a/computer/chess_board/frame09.jpg b/computer/chess_board/frame09.jpg new file mode 100644 index 0000000..86edb9e Binary files /dev/null and b/computer/chess_board/frame09.jpg differ diff --git a/computer/chess_board/frame10.jpg b/computer/chess_board/frame10.jpg new file mode 100644 index 0000000..be27a5c Binary files /dev/null and b/computer/chess_board/frame10.jpg differ diff --git a/computer/chess_board/frame11.jpg b/computer/chess_board/frame11.jpg new file mode 100644 index 0000000..15f3713 Binary files /dev/null and b/computer/chess_board/frame11.jpg differ diff --git a/computer/chess_board/frame12.jpg b/computer/chess_board/frame12.jpg new file mode 100644 index 0000000..a42e351 Binary files /dev/null and b/computer/chess_board/frame12.jpg differ diff --git a/computer/chess_board/frame13.jpg b/computer/chess_board/frame13.jpg new file mode 100644 index 0000000..a76c155 Binary files /dev/null and b/computer/chess_board/frame13.jpg differ diff --git a/computer/chess_board/frame14.jpg b/computer/chess_board/frame14.jpg new file mode 100644 index 0000000..057490f Binary files /dev/null and b/computer/chess_board/frame14.jpg differ diff --git a/computer/chess_board/frame15.jpg b/computer/chess_board/frame15.jpg new file mode 100644 index 0000000..3c54496 Binary files /dev/null and b/computer/chess_board/frame15.jpg differ diff --git a/computer/chess_board/frame16.jpg b/computer/chess_board/frame16.jpg new file mode 100644 index 0000000..9a0200f Binary files /dev/null and b/computer/chess_board/frame16.jpg differ diff --git a/computer/chess_board/frame17.jpg b/computer/chess_board/frame17.jpg new file mode 100644 index 0000000..143ea70 Binary files /dev/null and b/computer/chess_board/frame17.jpg differ diff --git a/computer/chess_board/frame18.jpg b/computer/chess_board/frame18.jpg new file mode 100644 index 0000000..813090d Binary files /dev/null and b/computer/chess_board/frame18.jpg differ diff --git a/computer/chess_board/frame19.jpg b/computer/chess_board/frame19.jpg new file mode 100644 index 0000000..6d75afe Binary files /dev/null and b/computer/chess_board/frame19.jpg differ diff --git a/computer/chess_board/frame20.jpg b/computer/chess_board/frame20.jpg new file mode 100644 index 0000000..087d088 Binary files /dev/null and b/computer/chess_board/frame20.jpg differ diff --git a/computer/collect_training_data.py b/computer/collect_training_data.py new file mode 100644 index 0000000..1fd91ec --- /dev/null +++ b/computer/collect_training_data.py @@ -0,0 +1,163 @@ +__author__ = 'zhengwang' + +import numpy as np +import cv2 +import serial +import pygame +from pygame.locals import * +import socket + + +class CollectTrainingData(object): + + def __init__(self): + + self.server_socket = socket.socket() + self.server_socket.bind(('192.168.1.100', 8000)) + self.server_socket.listen(0) + + # accept a single connection + self.connection = self.server_socket.accept()[0].makefile('rb') + + # connect to a seral port + self.ser = serial.Serial('/dev/tty.usbmodem1421', 115200, timeout=1) + self.send_inst = True + + # create labels + self.k = np.zeros((4, 4), 'float') + for i in range(4): + self.k[i, i] = 1 + self.temp_label = np.zeros((1, 4), 'float') + + pygame.init() + self.collect_image() + + def collect_image(self): + + saved_frame = 0 + total_frame = 0 + + # collect images for training + print 'Start collecting images...' + e1 = cv2.getTickCount() + image_array = np.zeros((1, 38400)) + label_array = np.zeros((1, 4), 'float') + + # stream video frames one by one + try: + stream_bytes = ' ' + frame = 1 + while self.send_inst: + stream_bytes += self.connection.read(1024) + first = stream_bytes.find('\xff\xd8') + last = stream_bytes.find('\xff\xd9') + if first != -1 and last != -1: + jpg = stream_bytes[first:last + 2] + stream_bytes = stream_bytes[last + 2:] + image = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8), cv2.CV_LOAD_IMAGE_GRAYSCALE) + + # select lower half of the image + roi = image[120:240, :] + + # save streamed images + cv2.imwrite('training_images/frame{:>05}.jpg'.format(frame), image) + + #cv2.imshow('roi_image', roi) + cv2.imshow('image', image) + + # reshape the roi image into one row array + temp_array = roi.reshape(1, 38400).astype(np.float32) + + frame += 1 + total_frame += 1 + + # get input from human driver + for event in pygame.event.get(): + if event.type == KEYDOWN: + key_input = pygame.key.get_pressed() + + # complex orders + if key_input[pygame.K_UP] and key_input[pygame.K_RIGHT]: + print("Forward Right") + image_array = np.vstack((image_array, temp_array)) + label_array = np.vstack((label_array, self.k[1])) + saved_frame += 1 + self.ser.write(chr(6)) + + elif key_input[pygame.K_UP] and key_input[pygame.K_LEFT]: + print("Forward Left") + image_array = np.vstack((image_array, temp_array)) + label_array = np.vstack((label_array, self.k[0])) + saved_frame += 1 + self.ser.write(chr(7)) + + elif key_input[pygame.K_DOWN] and key_input[pygame.K_RIGHT]: + print("Reverse Right") + self.ser.write(chr(8)) + + elif key_input[pygame.K_DOWN] and key_input[pygame.K_LEFT]: + print("Reverse Left") + self.ser.write(chr(9)) + + # simple orders + elif key_input[pygame.K_UP]: + print("Forward") + saved_frame += 1 + image_array = np.vstack((image_array, temp_array)) + label_array = np.vstack((label_array, self.k[2])) + self.ser.write(chr(1)) + + elif key_input[pygame.K_DOWN]: + print("Reverse") + saved_frame += 1 + image_array = np.vstack((image_array, temp_array)) + label_array = np.vstack((label_array, self.k[3])) + self.ser.write(chr(2)) + + elif key_input[pygame.K_RIGHT]: + print("Right") + image_array = np.vstack((image_array, temp_array)) + label_array = np.vstack((label_array, self.k[1])) + saved_frame += 1 + self.ser.write(chr(3)) + + elif key_input[pygame.K_LEFT]: + print("Left") + image_array = np.vstack((image_array, temp_array)) + label_array = np.vstack((label_array, self.k[0])) + saved_frame += 1 + self.ser.write(chr(4)) + + elif key_input[pygame.K_x] or key_input[pygame.K_q]: + print 'exit' + self.send_inst = False + self.ser.write(chr(0)) + break + + elif event.type == pygame.KEYUP: + self.ser.write(chr(0)) + + # save training images and labels + train = image_array[1:, :] + train_labels = label_array[1:, :] + + # save training data as a numpy file + np.savez('training_data_temp/test08.npz', train=train, train_labels=train_labels) + + e2 = cv2.getTickCount() + # calculate streaming duration + time0 = (e2 - e1) / cv2.getTickFrequency() + print 'Streaming duration:', time0 + + print(train.shape) + print(train_labels.shape) + print 'Total frame:', total_frame + print 'Saved frame:', saved_frame + print 'Dropped frame', total_frame - saved_frame + + finally: + self.connection.close() + self.server_socket.close() + +if __name__ == '__main__': + CollectTrainingData() \ No newline at end of file diff --git a/computer/mlp_predict_test.py b/computer/mlp_predict_test.py new file mode 100644 index 0000000..01818c7 --- /dev/null +++ b/computer/mlp_predict_test.py @@ -0,0 +1,51 @@ +__author__ = 'zhengwang' + +import cv2 +import numpy as np +import glob + + +# load training data +image_array = np.zeros((1, 38400)) +label_array = np.zeros((1, 4), 'float') +training_data = glob.glob('testing_data/*.npz') + +for single_npz in training_data: + with np.load(single_npz) as data: + print data.files + test_temp = data['train'] + test_labels_temp = data['train_labels'] + print test_temp.shape + print test_labels_temp.shape + image_array = np.vstack((image_array, test_temp)) + label_array = np.vstack((label_array, test_labels_temp)) + +test = image_array[1:, :] +test_labels = label_array[1:, :] +print test.shape +print test_labels.shape + +# create MLP +layer_sizes = np.int32([38400, 32, 4]) +model = cv2.ANN_MLP() +model.create(layer_sizes) +model.load('mlp_xml/mlp.xml') + +# generate predictions +e0 = cv2.getTickCount() +ret, resp = model.predict(test) +prediction = resp.argmax(-1) +e00 = cv2.getTickCount() +time0 = (e00 - e0)/cv2.getTickFrequency() +print 'Prediction time per frame:', time0/(test.shape[0]) + +print 'Prediction:', prediction + +true_labels = test_labels.argmax(-1) +print 'True labels:', true_labels + +print 'Testing...' +num_correct = np.sum( true_labels == prediction ) +print(num_correct) +test_rate = np.mean(prediction == true_labels) +print 'Test rate: %f' % (test_rate*100) \ No newline at end of file diff --git a/computer/mlp_training.py b/computer/mlp_training.py new file mode 100644 index 0000000..6cc0bef --- /dev/null +++ b/computer/mlp_training.py @@ -0,0 +1,69 @@ +__author__ = 'zhengwang' + +import cv2 +import numpy as np +import glob + +print 'Loading training data...' +e0 = cv2.getTickCount() + +# load training data +image_array = np.zeros((1, 38400)) +label_array = np.zeros((1, 4), 'float') +training_data = glob.glob('training_data/*.npz') + +for single_npz in training_data: + with np.load(single_npz) as data: + print data.files + train_temp = data['train'] + train_labels_temp = data['train_labels'] + print train_temp.shape + print train_labels_temp.shape + image_array = np.vstack((image_array, train_temp)) + label_array = np.vstack((label_array, train_labels_temp)) + +train = image_array[1:, :] +train_labels = label_array[1:, :] +print train.shape +print train_labels.shape + +e00 = cv2.getTickCount() +time0 = (e00 - e0)/ cv2.getTickFrequency() +print 'Loading image duration:', time0 + +# set start time +e1 = cv2.getTickCount() + +# create MLP +layer_sizes = np.int32([38400, 32, 4]) +model = cv2.ANN_MLP() +model.create(layer_sizes) +criteria = (cv2.TERM_CRITERIA_COUNT | cv2.TERM_CRITERIA_EPS, 500, 0.0001) +criteria2 = (cv2.TERM_CRITERIA_COUNT, 100, 0.001) +params = dict(term_crit = criteria, + train_method = cv2.ANN_MLP_TRAIN_PARAMS_BACKPROP, + bp_dw_scale = 0.001, + bp_moment_scale = 0.0 ) + +print 'Training MLP ...' +num_iter = model.train(train, train_labels, None, params = params) + +# set end time +e2 = cv2.getTickCount() +time = (e2 - e1)/cv2.getTickFrequency() +print 'Training duration:', time + +# save param +model.save('mlp_xml/mlp.xml') + +print 'Ran for %d iterations' % num_iter + +ret, resp = model.predict(train) +prediction = resp.argmax(-1) +print 'Prediction:', prediction +true_labels = train_labels.argmax(-1) +print 'True labels:', true_labels + +print 'Testing...' +train_rate = np.mean(prediction == true_labels) +print 'Train rate: %f:' % (train_rate*100) \ No newline at end of file diff --git a/computer/picam_calibration.py b/computer/picam_calibration.py new file mode 100644 index 0000000..1d11b6e --- /dev/null +++ b/computer/picam_calibration.py @@ -0,0 +1,59 @@ + +""" +Reference: +OpenCV-Python Tutorials - Camera Calibration and 3D Reconstruction +http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_calib3d/py_calibration/py_calibration.html +""" + +import cv2 +import numpy as np +import glob + +# termination criteria +criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) + +# 6x9 chess board, prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0) +object_point = np.zeros((6*9, 3), np.float32) +object_point[:, :2] = np.mgrid[0:9, 0:6].T.reshape(-1, 2) + +# 3d point in real world space +object_points = [] +# 2d points in image plane +image_points = [] +h, w = 0, 0 + +images = glob.glob('chess_board/*.jpg') + +for file_name in images: + image = cv2.imread(file_name) + gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + h, w = gray.shape[:2] + + # find chess board corners + ret, corners = cv2.findChessboardCorners(gray, (9, 6), None) + + # add object points, image points + if ret: + object_points.append(object_point) + cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1), criteria) + image_points.append(corners) + + # draw and display the corners + cv2.drawChessboardCorners(image, (9, 6), corners, ret) + cv2.imshow('image', image) + cv2.waitKey(500) + +# calibration +retval, cameraMatrix, distCoeffs, rvecs, tvecs = cv2.calibrateCamera(object_points, image_points, (w, h), None, None) + +print "camera matrix:\n", cameraMatrix + +# pi camera intrinsic parameters +ay = cameraMatrix[1, 1] +u0 = cameraMatrix[0, 2] +v0 = cameraMatrix[1, 2] +print "Ay:", ay +print "u0:", u0 +print "v0:", v0 + +cv2.destroyAllWindows() \ No newline at end of file diff --git a/computer/rc_control_test.py b/computer/rc_control_test.py new file mode 100644 index 0000000..8261a5c --- /dev/null +++ b/computer/rc_control_test.py @@ -0,0 +1,69 @@ +__author__ = 'zhengwang' + +import serial +import pygame +from pygame.locals import * + + +class RCTest(object): + + def __init__(self): + pygame.init() + self.ser = serial.Serial('/dev/tty.usbmodem1421', 115200, timeout=1) + self.send_inst = True + self.steer() + + def steer(self): + + while self.send_inst: + for event in pygame.event.get(): + if event.type == KEYDOWN: + key_input = pygame.key.get_pressed() + + # complex orders + if key_input[pygame.K_UP] and key_input[pygame.K_RIGHT]: + print("Forward Right") + self.ser.write(chr(6)) + + elif key_input[pygame.K_UP] and key_input[pygame.K_LEFT]: + print("Forward Left") + self.ser.write(chr(7)) + + elif key_input[pygame.K_DOWN] and key_input[pygame.K_RIGHT]: + print("Reverse Right") + self.ser.write(chr(8)) + + elif key_input[pygame.K_DOWN] and key_input[pygame.K_LEFT]: + print("Reverse Left") + self.ser.write(chr(9)) + + # simple orders + elif key_input[pygame.K_UP]: + print("Forward") + self.ser.write(chr(1)) + + elif key_input[pygame.K_DOWN]: + print("Reverse") + self.ser.write(chr(2)) + + elif key_input[pygame.K_RIGHT]: + print("Right") + self.ser.write(chr(3)) + + elif key_input[pygame.K_LEFT]: + print("Left") + self.ser.write(chr(4)) + + # exit + elif key_input[pygame.K_x] or key_input[pygame.K_q]: + print 'Exit' + self.send_inst = False + self.ser.write(chr(0)) + self.ser.close() + break + + elif event.type == pygame.KEYUP: + self.ser.write(chr(0)) + +if __name__ == '__main__': + RCTest() \ No newline at end of file diff --git a/computer/rc_driver.py b/computer/rc_driver.py new file mode 100644 index 0000000..ee11653 --- /dev/null +++ b/computer/rc_driver.py @@ -0,0 +1,285 @@ +__author__ = 'zhengwang' + +import threading +import SocketServer +import serial +import cv2 +import numpy as np +import math + +# distance data measured by ultrasonic sensor +sensor_data = " " + + +class NeuralNetwork(object): + + def __init__(self): + self.model = cv2.ANN_MLP() + + def create(self): + layer_size = np.int32([38400, 32, 4]) + self.model.create(layer_size) + self.model.load('mlp_xml/mlp.xml') + + def predict(self, samples): + ret, resp = self.model.predict(samples) + return resp.argmax(-1) + + +class RCControl(object): + + def __init__(self): + self.serial_port = serial.Serial('/dev/tty.usbmodem1421', 115200, timeout=1) + + def steer(self, prediction): + if prediction == 2: + self.serial_port.write(chr(1)) + print("Forward") + elif prediction == 0: + self.serial_port.write(chr(7)) + print("Left") + elif prediction == 1: + self.serial_port.write(chr(6)) + print("Right") + else: + self.stop() + + def stop(self): + self.serial_port.write(chr(0)) + + +class DistanceToCamera(object): + + def __init__(self): + # camera params + self.alpha = 8.0 * math.pi / 180 + self.v0 = 119.865631204 + self.ay = 332.262498472 + + def calculate(self, v, h, x_shift, image): + # compute and return the distance from the target point to the camera + d = h / math.tan(self.alpha + math.atan((v - self.v0) / self.ay)) + if d > 0: + cv2.putText(image, "%.1fcm" % d, + (image.shape[1] - x_shift, image.shape[0] - 20), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 255, 255), 2) + return d + + +class ObjectDetection(object): + + def __init__(self): + self.red_light = False + self.green_light = False + self.yellow_light = False + + def detect(self, cascade_classifier, gray_image, image): + + # y camera coordinate of the target point 'P' + v = 0 + + # detection + cascade_obj = cascade_classifier.detectMultiScale( + gray_image, + scaleFactor=1.1, + minNeighbors=5, + minSize=(30, 30), + flags=cv2.cv.CV_HAAR_SCALE_IMAGE + ) + + # draw a rectangle around the objects + for (x_pos, y_pos, width, height) in cascade_obj: + cv2.rectangle(image, (x_pos+5, y_pos+5), (x_pos+width-5, y_pos+height-5), (255, 255, 255), 2) + v = y_pos + height - 5 + #print(x_pos+5, y_pos+5, x_pos+width-5, y_pos+height-5, width, height) + + # stop sign + if width/height == 1: + cv2.putText(image, 'STOP', (x_pos, y_pos-10), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) + + # traffic lights + else: + roi = gray_image[y_pos+10:y_pos + height-10, x_pos+10:x_pos + width-10] + mask = cv2.GaussianBlur(roi, (25, 25), 0) + (minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(mask) + cv2.circle(roi, maxLoc, 5, (255, 0, 0), 2) + + # Red light + if 1.0/8*(height-30) < maxLoc[1] < 4.0/8*(height-30): + cv2.putText(image, 'Red', (x_pos+5, y_pos-5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2) + self.red_light = True + + # Green light + elif 5.5/8*(height-30) < maxLoc[1] < height-30: + cv2.putText(image, 'Green', (x_pos+5, y_pos - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2) + self.green_light = True + + # yellow light + #elif 4.0/8*(height-30) < maxLoc[1] < 5.5/8*(height-30): + # cv2.putText(image, 'Yellow', (x_pos+5, y_pos - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 255), 2) + # self.yellow_light = True + return v + + +class SensorDataHandler(SocketServer.BaseRequestHandler): + + data = " " + + def handle(self): + global sensor_data + try: + while self.data: + self.data = self.request.recv(1024) + sensor_data = round(float(self.data), 1) + #print "{} sent:".format(self.client_address[0]) + print sensor_data + finally: + print "Connection closed on thread 2" + + +class VideoStreamHandler(SocketServer.StreamRequestHandler): + + # h1: stop sign + h1 = 15.5 - 10 # cm + # h2: traffic light + h2 = 15.5 - 10 + + # create neural network + model = NeuralNetwork() + model.create() + + obj_detection = ObjectDetection() + rc_car = RCControl() + + # cascade classifiers + stop_cascade = cv2.CascadeClassifier('cascade_xml/stop_sign.xml') + light_cascade = cv2.CascadeClassifier('cascade_xml/traffic_light.xml') + + d_to_camera = DistanceToCamera() + d_stop_sign = 25 + d_light = 25 + + stop_start = 0 # start time when stop at the stop sign + stop_finish = 0 + stop_time = 0 + drive_time_after_stop = 0 + + def handle(self): + + global sensor_data + stream_bytes = ' ' + stop_flag = False + stop_sign_active = True + + # stream video frames one by one + try: + while True: + stream_bytes += self.rfile.read(1024) + first = stream_bytes.find('\xff\xd8') + last = stream_bytes.find('\xff\xd9') + if first != -1 and last != -1: + jpg = stream_bytes[first:last+2] + stream_bytes = stream_bytes[last+2:] + gray = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8), cv2.CV_LOAD_IMAGE_GRAYSCALE) + image = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8), cv2.CV_LOAD_IMAGE_UNCHANGED) + + # lower half of the image + half_gray = gray[120:240, :] + + # object detection + v_param1 = self.obj_detection.detect(self.stop_cascade, gray, image) + v_param2 = self.obj_detection.detect(self.light_cascade, gray, image) + + # distance measurement + if v_param1 > 0 or v_param2 > 0: + d1 = self.d_to_camera.calculate(v_param1, self.h1, 300, image) + d2 = self.d_to_camera.calculate(v_param2, self.h2, 100, image) + self.d_stop_sign = d1 + self.d_light = d2 + + cv2.imshow('image', image) + #cv2.imshow('mlp_image', half_gray) + + # reshape image + image_array = half_gray.reshape(1, 38400).astype(np.float32) + + # neural network makes prediction + prediction = self.model.predict(image_array) + + # stop conditions + if sensor_data is not None and sensor_data < 30: + print("Stop, obstacle in front") + self.rc_car.stop() + + elif 0 < self.d_stop_sign < 25 and stop_sign_active: + print("Stop sign ahead") + self.rc_car.stop() + + # stop for 5 seconds + if stop_flag is False: + self.stop_start = cv2.getTickCount() + stop_flag = True + self.stop_finish = cv2.getTickCount() + + self.stop_time = (self.stop_finish - self.stop_start)/cv2.getTickFrequency() + print "Stop time: %.2fs" % self.stop_time + + # 5 seconds later, continue driving + if self.stop_time > 5: + print("Waited for 5 seconds") + stop_flag = False + stop_sign_active = False + + elif 0 < self.d_light < 30: + #print("Traffic light ahead") + if self.obj_detection.red_light: + print("Red light") + self.rc_car.stop() + elif self.obj_detection.green_light: + print("Green light") + pass + elif self.obj_detection.yellow_light: + print("Yellow light flashing") + pass + + self.d_light = 30 + self.obj_detection.red_light = False + self.obj_detection.green_light = False + self.obj_detection.yellow_light = False + + else: + self.rc_car.steer(prediction) + self.stop_start = cv2.getTickCount() + self.d_stop_sign = 25 + + if stop_sign_active is False: + self.drive_time_after_stop = (self.stop_start - self.stop_finish)/cv2.getTickFrequency() + if self.drive_time_after_stop > 5: + stop_sign_active = True + + if cv2.waitKey(1) & 0xFF == ord('q'): + self.rc_car.stop() + break + + cv2.destroyAllWindows() + + finally: + print "Connection closed on thread 1" + + +class ThreadServer(object): + + def server_thread(host, port): + server = SocketServer.TCPServer((host, port), VideoStreamHandler) + server.serve_forever() + + def server_thread2(host, port): + server = SocketServer.TCPServer((host, port), SensorDataHandler) + server.serve_forever() + + distance_thread = threading.Thread(target=server_thread2, args=('192.168.1.100', 8002)) + distance_thread.start() + video_thread = threading.Thread(target=server_thread('192.168.1.100', 8000)) + video_thread.start() + +if __name__ == '__main__': + ThreadServer() \ No newline at end of file