# An implementation of the Retro VM in Ruby # Based on the C and Javascript VM from Retro # Written by Mathieu Blondel, 2009 # Public domain class RetroVM IMAGE_FILE = "retroImage" IMAGE_SIZE = 5000000 # Amount of memory to provide STACK_DEPTH = 100 # Depth of the stacks CYCLES_PER = 2000 VM_NOP = 0; VM_LIT = 1; VM_DUP = 2 VM_DROP = 3; VM_SWAP = 4; VM_PUSH = 5 VM_POP = 6; VM_CALL = 7; VM_JUMP = 8 VM_RETURN = 9; VM_GT_JUMP = 10; VM_LT_JUMP = 11 VM_NE_JUMP = 12; VM_EQ_JUMP = 13; VM_FETCH = 14 VM_STORE = 15; VM_ADD = 16; VM_SUB = 17 VM_MUL = 18; VM_DIVMOD = 19; VM_AND = 20 VM_OR = 21; VM_XOR = 22; VM_SHL = 23 VM_SHR = 24; VM_ZERO_EXIT = 25; VM_INC = 26 VM_DEC = 27; VM_IN = 28; VM_OUT = 29 VM_WAIT = 30 def initialize(stdin=STDIN, stdout=STDOUT) @in = stdin; @out = stdout @run = false @data = Array.new(STACK_DEPTH, 0) @address = Array.new(STACK_DEPTH, 0) @ports = Array.new(1024) @image = Array.new(IMAGE_SIZE, 0) @dev_output = "" @skip = 0 init_vm end public def load_image if File.exist?(IMAGE_FILE) restore_image else load_default_image end end def run @run = true while @run CYCLES_PER.downto(0) do process_opcode check_stack @ip += 1 if @ports[3] == 0 @ports[3] = 1 @out.write(@dev_output) @dev_output = "" end end end end private def process_opcode op = @image[@ip] case op when VM_NOP when VM_LIT @sp += 1; @ip += 1; @data[@sp] = @image[@ip] when VM_DUP @sp += 1; @data[@sp] = @data[@sp-1] when VM_DROP @data[@sp] = 0; @sp -= 1 when VM_SWAP x = @data[@sp] y = @data[@sp-1] @data[@sp] = y @data[@sp-1] = x when VM_PUSH @rsp += 1 @address[@rsp] = @data[@sp] @sp -= 1 when VM_POP @sp += 1 @data[@sp] = @address[@rsp] @rsp -= 1 when VM_CALL @ip += 1; @rsp += 1 @address[@rsp] = @ip @ip = @image[@ip] - 1 when VM_JUMP @ip += 1 @ip = @image[@ip] - 1 when VM_RETURN @ip = @address[@rsp]; @rsp -= 1 when VM_GT_JUMP @ip += 1 if @data[@sp-1] > @data[@sp] @ip = @image[@ip] - 1 end @sp -= 2 when VM_LT_JUMP @ip += 1 if @data[@sp-1] < @data[@sp] @ip = @image[@ip] - 1 end @sp -= 2 when VM_NE_JUMP @ip += 1 if @data[@sp-1] != @data[@sp] @ip = @image[@ip] - 1 end @sp -= 2 when VM_EQ_JUMP @ip += 1 if @data[@sp-1] == @data[@sp] @ip = @image[@ip] - 1 end @sp -= 2 when VM_FETCH x = @data[@sp] @data[@sp] = @image[x] when VM_STORE @image[@data[@sp]] = @data[@sp-1] @sp -= 2 when VM_ADD @data[@sp-1] += @data[@sp]; @data[@sp] = 0; @sp -= 1 when VM_SUB @data[@sp-1] -= @data[@sp]; @data[@sp] = 0; @sp -= 1 when VM_MUL @data[@sp-1] *= @data[@sp]; @data[@sp] = 0; @sp -= 1 when VM_DIVMOD x = @data[@sp] y = @data[@sp-1] @data[@sp] = y / x @data[@sp-1] = y % x when VM_AND x = @data[@sp] y = @data[@sp-1] @sp -= 1 @data[@sp] = x & y when VM_OR x = @data[@sp] y = @data[@sp-1] @sp -= 1 @data[@sp] = x | y when VM_XOR x = @data[@sp] y = @data[@sp-1] @sp -= 1 @data[@sp] = x ^ y when VM_SHL x = @data[@sp] y = @data[@sp-1] @sp -= 1 @data[@sp] = (y << x) when VM_SHR x = @data[@sp] y = @data[@sp-1] @sp -= 1 @data[@sp] = (y >> x) when VM_ZERO_EXIT if @data[@sp] == 0 @sp -= 1 @ip = @address[@rsp]; @rsp -= 1 end when VM_INC @data[@sp] += 1 when VM_DEC @data[@sp] -= 1 when VM_IN x = @data[@sp] @data[@sp] = @ports[x] @ports[x] = 0 when VM_OUT @ports[0] = 0 @ports[@data[@sp]] = @data[@sp-1] @sp -= 2 when VM_WAIT handle_devices else raise "Incorrect opcode" @ip = IMAGE_SIZE @run = 0 end end def save_image File.open(IMAGE_FILE, "w") do |f| f.write(@image.pack("i*")) end end def restore_image File.open(IMAGE_FILE, "r") do |f| @image = f.read.unpack("i*") end end def handle_devices # Port 0: Wait for hardware event, set to 0 to wait # Port 1: Read input, set port 0 to wait then read the key value # from this port # Port 2: Generate output, reads data from the stack # Port 3: Force video update # Port 4: Save image # Port 5: Query hardware capability # -1 Amount of memory being provided # -2 Address of framebuffer (0 if none) # -3 Width of framebuffer # -4 Height of framebuffer # -5 Depth of data stack # -6 Depth of address (return) stack return if @ports[0] == 1 # Input if @ports[0] == 0 and @ports[1] == 1 @ports[0] = 1 c = @in.getc exit! if c == nil # eof c = 32 if c == 10 # replace '\n' with ' ' @ports[1] = c @skip += 1 end # Output if @ports[2] == 1 if @data[@sp] < 0 clear_display else # The program image replies back the input characters # This is a hack to not display characters twice if @skip > 0 @skip -= 1 else @dev_output += @data[@sp].chr end end @sp -= 1 @ports[2] = 0 @ports[0] = 1 end # Save if @ports[4] == 1 save_image @ports[4] = 0 @ports[0] = 1 end # Capabilities if @ports[5] == -1 @ports[5] = IMAGE_SIZE @ports[0] = 1 elsif [-2, -3, -4].include?(@ports[5]) @ports[5] = 0 @ports[0] = 1 elsif @ports[5] == -5 @ports[5] = @sp @port[0] = 1 elsif @ports[5] == -6 @ports[5] = @rsp @port[0] = 1 end end def clear_display @dev_output = "" `clear` end def check_stack if @sp < 0 or @rsp < 0 raise "Stack underflow" @ip = IMAGE_SIZE @run = false elsif @sp > STACK_DEPTH or @rsp > STACK_DEPTH raise "Stack overflow" @ip = IMAGE_SIZE @run = false end end def init_vm @ip = 0 @sp = 0 @rsp = 0 @ports[0] = 0 @data[0] = 0 end public def load_default_image # See Retro to know how this image is generated @image[0]=8 @image[1]=1678 @image[3]=82 @image[4]=69 @image[5]=84 @image[6]=82 @image[7]=79 @image[8]=32 @image[9]=49 @image[10]=48 @image[12]=87 @image[13]=111 @image[14]=114 @image[15]=100 @image[16]=32 @image[17]=78 @image[18]=111 @image[19]=116 @image[20]=32 @image[21]=70 @image[22]=111 @image[23]=117 @image[24]=110 @image[25]=100 @image[27]=111 @image[28]=107 @image[29]=32 @image[31]=2549 @image[34]=8192 @image[37]=2 @image[38]=9 @image[41]=26 @image[42]=9 @image[45]=27 @image[46]=9 @image[49]=4 @image[50]=9 @image[53]=3 @image[54]=9 @image[57]=20 @image[58]=9 @image[61]=21 @image[62]=9 @image[65]=22 @image[66]=9 @image[69]=14 @image[70]=9 @image[73]=15 @image[74]=9 @image[77]=16 @image[78]=9 @image[81]=17 @image[82]=9 @image[85]=18 @image[86]=9 @image[89]=19 @image[90]=9 @image[93]=23 @image[94]=9 @image[97]=24 @image[98]=9 @image[101]=29 @image[102]=9 @image[105]=28 @image[106]=9 @image[109]=1 @image[111]=1 @image[113]=29 @image[114]=30 @image[115]=9 @image[118]=4 @image[119]=3 @image[120]=9 @image[123]=5 @image[124]=2 @image[125]=6 @image[126]=4 @image[127]=9 @image[130]=3 @image[131]=3 @image[132]=9 @image[135]=1 @image[136]=-1 @image[137]=22 @image[138]=9 @image[141]=5 @image[142]=4 @image[143]=6 @image[144]=4 @image[145]=9 @image[148]=4 @image[149]=5 @image[150]=4 @image[151]=6 @image[152]=9 @image[155]=2 @image[156]=8 @image[157]=146 @image[160]=7 @image[161]=121 @image[162]=8 @image[163]=121 @image[166]=1 @image[167]=-1 @image[168]=4 @image[169]=15 @image[170]=9 @image[173]=1 @image[175]=4 @image[176]=15 @image[177]=9 @image[180]=19 @image[181]=8 @image[182]=116 @image[185]=19 @image[186]=3 @image[187]=9 @image[190]=1 @image[191]=-1 @image[192]=18 @image[193]=9 @image[196]=27 @image[197]=5 @image[198]=9 @image[201]=2 @image[202]=26 @image[203]=4 @image[204]=14 @image[205]=9 @image[208]=2 @image[209]=26 @image[210]=5 @image[211]=15 @image[212]=6 @image[213]=9 @image[216]=2 @image[217]=5 @image[218]=14 @image[219]=16 @image[220]=6 @image[221]=15 @image[222]=9 @image[225]=2 @image[226]=5 @image[227]=14 @image[228]=4 @image[229]=17 @image[230]=6 @image[231]=15 @image[232]=9 @image[235]=1 @image[236]=34 @image[237]=14 @image[238]=9 @image[241]=7 @image[242]=233 @image[243]=15 @image[244]=7 @image[245]=233 @image[246]=26 @image[247]=1 @image[248]=34 @image[249]=15 @image[250]=9 @image[253]=1 @image[254]=33 @image[255]=14 @image[256]=1 @image[258]=12 @image[259]=263 @image[260]=6 @image[261]=3 @image[262]=9 @image[264]=9 @image[267]=1 @image[268]=-1 @image[269]=1 @image[270]=33 @image[271]=15 @image[272]=9 @image[275]=1 @image[277]=1 @image[278]=33 @image[279]=15 @image[280]=9 @image[283]=7 @image[284]=251 @image[285]=1 @image[286]=9 @image[287]=8 @image[288]=239 @image[291]=7 @image[292]=251 @image[293]=7 @image[294]=281 @image[295]=8 @image[296]=273 @image[299]=2 @image[300]=14 @image[301]=25 @image[302]=7 @image[303]=239 @image[304]=26 @image[305]=8 @image[306]=299 @image[309]=7 @image[310]=297 @image[311]=3 @image[312]=1 @image[314]=8 @image[315]=239 @image[318]=7 @image[319]=251 @image[320]=1 @image[321]=5 @image[322]=8 @image[323]=239 @image[326]=7 @image[327]=251 @image[328]=1 @image[329]=6 @image[330]=8 @image[331]=239 @image[334]=1 @image[335]=7 @image[336]=7 @image[337]=239 @image[338]=8 @image[339]=239 @image[342]=1 @image[343]=1 @image[344]=7 @image[345]=239 @image[346]=8 @image[347]=239 @image[350]=7 @image[351]=233 @image[352]=1 @image[353]=5 @image[354]=8 @image[355]=239 @image[358]=1 @image[359]=6 @image[360]=7 @image[361]=239 @image[362]=1 @image[363]=27 @image[364]=7 @image[365]=239 @image[366]=1 @image[367]=25 @image[368]=7 @image[369]=239 @image[370]=1 @image[371]=8 @image[372]=7 @image[373]=239 @image[374]=8 @image[375]=239 @image[378]=7 @image[379]=251 @image[380]=1 @image[381]=12 @image[382]=7 @image[383]=239 @image[384]=7 @image[385]=233 @image[386]=1 @image[388]=8 @image[389]=239 @image[392]=7 @image[393]=251 @image[394]=1 @image[395]=11 @image[396]=7 @image[397]=239 @image[398]=7 @image[399]=233 @image[400]=1 @image[402]=8 @image[403]=239 @image[406]=7 @image[407]=251 @image[408]=1 @image[409]=10 @image[410]=7 @image[411]=239 @image[412]=7 @image[413]=233 @image[414]=1 @image[416]=8 @image[417]=239 @image[420]=7 @image[421]=251 @image[422]=1 @image[423]=13 @image[424]=7 @image[425]=239 @image[426]=7 @image[427]=233 @image[428]=1 @image[430]=8 @image[431]=239 @image[434]=7 @image[435]=251 @image[436]=7 @image[437]=233 @image[438]=4 @image[439]=15 @image[440]=1 @image[442]=8 @image[443]=239 @image[446]=7 @image[447]=251 @image[448]=8 @image[449]=233 @image[452]=7 @image[453]=251 @image[454]=1 @image[455]=8 @image[456]=7 @image[457]=239 @image[458]=8 @image[459]=239 @image[462]=7 @image[463]=251 @image[464]=1 @image[465]=25 @image[466]=8 @image[467]=239 @image[470]=1 @image[471]=33 @image[472]=14 @image[473]=1 @image[474]=-1 @image[475]=12 @image[476]=483 @image[477]=1 @image[478]=7 @image[479]=7 @image[480]=239 @image[481]=8 @image[482]=239 @image[484]=8 @image[485]=194 @image[488]=2 @image[489]=14 @image[490]=1 @image[492]=13 @image[493]=496 @image[494]=8 @image[495]=468 @image[497]=1 @image[498]=33 @image[499]=14 @image[500]=1 @image[501]=-1 @image[502]=12 @image[503]=509 @image[504]=26 @image[505]=26 @image[506]=14 @image[507]=8 @image[508]=239 @image[510]=8 @image[511]=194 @image[514]=8 @image[515]=194 @image[518]=1 @image[519]=33 @image[520]=14 @image[521]=1 @image[522]=-1 @image[523]=12 @image[524]=531 @image[525]=1 @image[526]=1 @image[527]=7 @image[528]=239 @image[529]=7 @image[530]=239 @image[532]=9 @image[538]=-1 @image[541]=1 @image[542]=538 @image[543]=14 @image[544]=25 @image[545]=3 @image[546]=1 @image[548]=1 @image[549]=3 @image[550]=29 @image[551]=9 @image[554]=1 @image[556]=1 @image[557]=533 @image[558]=15 @image[559]=1 @image[560]=534 @image[561]=14 @image[562]=1 @image[563]=16 @image[564]=16 @image[565]=1 @image[566]=534 @image[567]=15 @image[568]=9 @image[571]=1 @image[572]=533 @image[573]=14 @image[574]=1 @image[575]=16 @image[576]=16 @image[577]=2 @image[578]=1 @image[579]=533 @image[580]=15 @image[581]=1 @image[582]=536 @image[583]=14 @image[584]=11 @image[585]=588 @image[586]=7 @image[587]=552 @image[589]=9 @image[592]=2 @image[593]=1 @image[594]=10 @image[595]=12 @image[596]=601 @image[597]=7 @image[598]=552 @image[599]=3 @image[600]=9 @image[602]=2 @image[603]=1 @image[604]=13 @image[605]=12 @image[606]=611 @image[607]=7 @image[608]=552 @image[609]=3 @image[610]=9 @image[612]=5 @image[613]=1 @image[614]=533 @image[615]=14 @image[616]=1 @image[617]=534 @image[618]=14 @image[619]=6 @image[620]=1 @image[621]=1 @image[622]=1 @image[623]=2 @image[624]=29 @image[625]=7 @image[626]=107 @image[627]=7 @image[628]=569 @image[629]=8 @image[630]=539 @image[633]=1 @image[634]=1 @image[635]=1 @image[636]=2 @image[637]=29 @image[638]=7 @image[639]=107 @image[640]=8 @image[641]=539 @image[644]=1 @image[645]=10 @image[646]=8 @image[647]=631 @image[650]=1 @image[651]=535 @image[652]=14 @image[653]=1 @image[655]=13 @image[656]=659 @image[657]=8 @image[658]=590 @image[660]=8 @image[661]=631 @image[664]=1 @image[665]=535 @image[666]=14 @image[667]=1 @image[669]=13 @image[670]=673 @image[671]=8 @image[672]=552 @image[674]=8 @image[675]=642 @image[678]=1 @image[679]=-1 @image[680]=7 @image[681]=648 @image[682]=1 @image[684]=1 @image[685]=533 @image[686]=15 @image[687]=1 @image[689]=1 @image[690]=534 @image[691]=15 @image[692]=9 @image[695]=7 @image[696]=199 @image[697]=25 @image[698]=7 @image[699]=648 @image[700]=8 @image[701]=695 @image[704]=1 @image[705]=538 @image[706]=7 @image[707]=171 @image[708]=7 @image[709]=693 @image[710]=3 @image[711]=1 @image[712]=538 @image[713]=7 @image[714]=164 @image[715]=8 @image[716]=539 @image[721]=9 @image[724]=1 @image[725]=1 @image[726]=1 @image[727]=1 @image[728]=29 @image[729]=7 @image[730]=107 @image[731]=1 @image[732]=1 @image[733]=28 @image[734]=2 @image[735]=1 @image[737]=13 @image[738]=741 @image[739]=8 @image[740]=719 @image[742]=3 @image[743]=8 @image[744]=724 @image[747]=1 @image[748]=6144 @image[749]=1 @image[750]=717 @image[751]=14 @image[752]=16 @image[753]=15 @image[754]=9 @image[757]=1 @image[758]=1 @image[759]=1 @image[760]=717 @image[761]=8 @image[762]=214 @image[765]=7 @image[766]=722 @image[767]=2 @image[768]=7 @image[769]=648 @image[770]=2 @image[771]=1 @image[772]=718 @image[773]=14 @image[774]=13 @image[775]=780 @image[776]=7 @image[777]=745 @image[778]=8 @image[779]=755 @image[781]=3 @image[782]=8 @image[783]=765 @image[786]=7 @image[787]=722 @image[788]=2 @image[789]=7 @image[790]=648 @image[791]=2 @image[792]=1 @image[793]=718 @image[794]=14 @image[795]=12 @image[796]=798 @image[797]=9 @image[799]=7 @image[800]=745 @image[801]=7 @image[802]=755 @image[803]=8 @image[804]=786 @image[807]=1 @image[808]=718 @image[809]=15 @image[810]=1 @image[812]=1 @image[813]=717 @image[814]=15 @image[815]=7 @image[816]=763 @image[817]=7 @image[818]=784 @image[819]=3 @image[820]=1 @image[822]=8 @image[823]=745 @image[826]=26 @image[827]=9 @image[830]=26 @image[831]=26 @image[832]=9 @image[835]=26 @image[836]=26 @image[837]=26 @image[838]=9 @image[841]=7 @image[842]=233 @image[843]=1 @image[844]=31 @image[845]=14 @image[846]=7 @image[847]=239 @image[848]=1 @image[849]=31 @image[850]=15 @image[851]=1 @image[852]=516 @image[853]=7 @image[854]=239 @image[855]=7 @image[856]=233 @image[857]=1 @image[859]=7 @image[860]=239 @image[861]=1 @image[862]=32 @image[863]=7 @image[864]=805 @image[865]=1 @image[866]=6144 @image[867]=7 @image[868]=307 @image[869]=7 @image[870]=233 @image[871]=4 @image[872]=15 @image[873]=9 @image[876]=1 @image[877]=31 @image[878]=14 @image[879]=7 @image[880]=824 @image[881]=15 @image[882]=7 @image[883]=265 @image[884]=1 @image[886]=7 @image[887]=239 @image[888]=1 @image[890]=8 @image[891]=239 @image[894]=7 @image[895]=839 @image[896]=1 @image[897]=468 @image[898]=8 @image[899]=874 @image[902]=7 @image[903]=839 @image[904]=1 @image[905]=512 @image[906]=8 @image[907]=874 @image[910]=1 @image[911]=41 @image[912]=8 @image[913]=805 @image[916]=13 @image[917]=923 @image[918]=1 @image[920]=1 @image[921]=2 @image[922]=15 @image[924]=9 @image[927]=14 @image[928]=4 @image[929]=14 @image[930]=9 @image[933]=26 @image[934]=4 @image[935]=26 @image[936]=4 @image[937]=9 @image[940]=7 @image[941]=158 @image[942]=14 @image[943]=4 @image[944]=14 @image[945]=16 @image[946]=25 @image[947]=3 @image[948]=7 @image[949]=158 @image[950]=7 @image[951]=925 @image[952]=7 @image[953]=914 @image[954]=7 @image[955]=931 @image[956]=1 @image[957]=2 @image[958]=14 @image[959]=25 @image[960]=3 @image[961]=8 @image[962]=940 @image[965]=1 @image[966]=-1 @image[967]=1 @image[968]=2 @image[969]=15 @image[970]=7 @image[971]=938 @image[972]=7 @image[973]=128 @image[974]=1 @image[975]=2 @image[976]=14 @image[977]=9 @image[980]=2 @image[981]=14 @image[982]=25 @image[983]=3 @image[984]=7 @image[985]=931 @image[986]=8 @image[987]=980 @image[990]=1 @image[992]=4 @image[993]=7 @image[994]=978 @image[995]=3 @image[996]=9 @image[997]=4000000 @image[1002]=1 @image[1003]=5120 @image[1004]=1 @image[1005]=998 @image[1006]=15 @image[1007]=9 @image[1010]=1 @image[1011]=1 @image[1012]=1 @image[1013]=998 @image[1014]=8 @image[1015]=214 @image[1018]=7 @image[1019]=199 @image[1020]=25 @image[1021]=1 @image[1022]=998 @image[1023]=14 @image[1024]=15 @image[1025]=7 @image[1026]=1008 @image[1027]=8 @image[1028]=1018 @image[1031]=7 @image[1032]=1000 @image[1033]=7 @image[1034]=1016 @image[1035]=3 @image[1036]=1 @image[1038]=1 @image[1039]=998 @image[1040]=14 @image[1041]=15 @image[1042]=1 @image[1043]=5120 @image[1044]=9 @image[1047]=1 @image[1048]=997 @image[1049]=14 @image[1050]=1 @image[1051]=999 @image[1052]=15 @image[1053]=1 @image[1054]=997 @image[1055]=14 @image[1056]=1 @image[1057]=998 @image[1058]=15 @image[1059]=7 @image[1060]=1016 @image[1061]=3 @image[1062]=1 @image[1064]=1 @image[1065]=998 @image[1066]=14 @image[1067]=15 @image[1068]=1 @image[1069]=998 @image[1070]=14 @image[1071]=26 @image[1072]=1 @image[1073]=997 @image[1074]=15 @image[1075]=1 @image[1076]=999 @image[1077]=14 @image[1078]=9 @image[1081]=1 @image[1082]=34 @image[1083]=7 @image[1084]=805 @image[1085]=1 @image[1086]=6144 @image[1087]=8 @image[1088]=1029 @image[1091]=7 @image[1092]=251 @image[1093]=1 @image[1094]=1 @image[1095]=7 @image[1096]=239 @image[1097]=7 @image[1098]=1079 @image[1099]=7 @image[1100]=1045 @image[1101]=8 @image[1102]=239 @image[1109]=2 @image[1110]=1 @image[1111]=47 @image[1112]=11 @image[1113]=1124 @image[1114]=2 @image[1115]=1 @image[1116]=58 @image[1117]=10 @image[1118]=1123 @image[1119]=3 @image[1120]=1 @image[1121]=-1 @image[1122]=9 @image[1125]=3 @image[1126]=1 @image[1128]=9 @image[1131]=1 @image[1132]=48 @image[1133]=17 @image[1134]=9 @image[1137]=1 @image[1138]=48 @image[1139]=16 @image[1140]=9 @image[1143]=2 @image[1144]=14 @image[1145]=1 @image[1146]=45 @image[1147]=12 @image[1148]=1156 @image[1149]=1 @image[1150]=-1 @image[1151]=1 @image[1152]=1106 @image[1153]=15 @image[1154]=26 @image[1155]=9 @image[1157]=1 @image[1158]=1 @image[1159]=1 @image[1160]=1106 @image[1161]=15 @image[1162]=9 @image[1165]=2 @image[1166]=14 @image[1167]=25 @image[1168]=7 @image[1169]=1129 @image[1170]=1 @image[1171]=1103 @image[1172]=14 @image[1173]=1 @image[1174]=10 @image[1175]=18 @image[1176]=16 @image[1177]=1 @image[1178]=1103 @image[1179]=15 @image[1180]=26 @image[1181]=8 @image[1182]=1165 @image[1185]=7 @image[1186]=1141 @image[1187]=1 @image[1189]=1 @image[1190]=1103 @image[1191]=15 @image[1192]=7 @image[1193]=1163 @image[1194]=3 @image[1195]=1 @image[1196]=1103 @image[1197]=14 @image[1198]=1 @image[1199]=1106 @image[1200]=14 @image[1201]=18 @image[1202]=9 @image[1205]=2 @image[1206]=14 @image[1207]=25 @image[1208]=7 @image[1209]=1107 @image[1210]=1 @image[1211]=2 @image[1212]=14 @image[1213]=20 @image[1214]=1 @image[1215]=2 @image[1216]=15 @image[1217]=26 @image[1218]=8 @image[1219]=1205 @image[1222]=7 @image[1223]=1141 @image[1224]=1 @image[1225]=-1 @image[1226]=1 @image[1227]=2 @image[1228]=15 @image[1229]=7 @image[1230]=1203 @image[1231]=3 @image[1232]=1 @image[1233]=2 @image[1234]=14 @image[1235]=9 @image[1238]=1 @image[1239]=1 @image[1240]=1 @image[1241]=2 @image[1242]=7 @image[1243]=214 @image[1244]=1 @image[1245]=1103 @image[1246]=14 @image[1247]=1 @image[1248]=10 @image[1249]=19 @image[1250]=2 @image[1251]=1 @image[1253]=13 @image[1254]=1260 @image[1255]=1 @image[1256]=1103 @image[1257]=15 @image[1258]=8 @image[1259]=1236 @image[1261]=3 @image[1262]=9 @image[1265]=1 @image[1266]=2 @image[1267]=14 @image[1268]=25 @image[1269]=3 @image[1270]=7 @image[1271]=1135 @image[1272]=7 @image[1273]=648 @image[1274]=1 @image[1275]=2 @image[1276]=14 @image[1277]=27 @image[1278]=1 @image[1279]=2 @image[1280]=15 @image[1281]=8 @image[1282]=1265 @image[1285]=2 @image[1286]=1 @image[1288]=10 @image[1289]=1302 @image[1290]=2 @image[1291]=1 @image[1293]=13 @image[1294]=1301 @image[1295]=1 @image[1296]=45 @image[1297]=7 @image[1298]=648 @image[1299]=7 @image[1300]=188 @image[1303]=1 @image[1305]=1 @image[1306]=2 @image[1307]=15 @image[1308]=1 @image[1309]=1103 @image[1310]=15 @image[1311]=7 @image[1312]=1236 @image[1313]=7 @image[1314]=1263 @image[1315]=1 @image[1316]=32 @image[1317]=8 @image[1318]=648 @image[1322]=2 @image[1323]=7 @image[1324]=833 @image[1325]=1 @image[1326]=6144 @image[1327]=7 @image[1328]=963 @image[1329]=1 @image[1330]=-1 @image[1331]=12 @image[1332]=1340 @image[1333]=1 @image[1334]=32 @image[1335]=15 @image[1336]=1 @image[1337]=1319 @image[1338]=8 @image[1339]=164 @image[1341]=14 @image[1342]=25 @image[1343]=8 @image[1344]=1322 @image[1347]=1 @image[1348]=1319 @image[1349]=7 @image[1350]=171 @image[1351]=1 @image[1352]=31 @image[1353]=14 @image[1354]=8 @image[1355]=1320 @image[1358]=1 @image[1359]=32 @image[1360]=7 @image[1361]=805 @image[1362]=7 @image[1363]=1345 @image[1364]=1 @image[1365]=1319 @image[1366]=14 @image[1367]=1 @image[1368]=-1 @image[1369]=12 @image[1370]=1378 @image[1371]=1 @image[1372]=32 @image[1373]=14 @image[1374]=7 @image[1375]=828 @image[1376]=14 @image[1377]=9 @image[1379]=1 @image[1381]=9 @image[1384]=7 @image[1385]=251 @image[1386]=1 @image[1387]=1 @image[1388]=7 @image[1389]=239 @image[1390]=7 @image[1391]=1356 @image[1392]=8 @image[1393]=239 @image[1396]=2 @image[1397]=1 @image[1399]=4 @image[1400]=15 @image[1401]=26 @image[1402]=1 @image[1404]=4 @image[1405]=15 @image[1406]=9 @image[1409]=2 @image[1410]=1 @image[1411]=8 @image[1412]=4 @image[1413]=15 @image[1414]=26 @image[1415]=15 @image[1416]=9 @image[1419]=7 @image[1420]=1356 @image[1421]=8 @image[1422]=1394 @image[1425]=7 @image[1426]=1356 @image[1427]=8 @image[1428]=1407 @image[1431]=1 @image[1432]=1 @image[1433]=1 @image[1434]=4 @image[1435]=29 @image[1436]=8 @image[1437]=107 @image[1440]=8 @image[1441]=5000000 @image[1444]=1 @image[1445]=31 @image[1446]=14 @image[1447]=2 @image[1448]=7 @image[1449]=833 @image[1450]=7 @image[1451]=702 @image[1452]=1 @image[1453]=32 @image[1454]=7 @image[1455]=648 @image[1456]=14 @image[1457]=25 @image[1458]=8 @image[1459]=1447 @image[1462]=1 @image[1463]=-5 @image[1464]=1 @image[1465]=5 @image[1466]=29 @image[1467]=30 @image[1468]=1 @image[1469]=5 @image[1470]=28 @image[1471]=9 @image[1474]=7 @image[1475]=1460 @image[1478]=25 @image[1479]=5 @image[1480]=3 @image[1481]=6 @image[1482]=27 @image[1483]=8 @image[1484]=1476 @image[1488]=1 @image[1490]=1 @image[1491]=533 @image[1492]=15 @image[1493]=1 @image[1495]=1 @image[1496]=534 @image[1497]=15 @image[1498]=1 @image[1499]=3 @image[1500]=7 @image[1501]=702 @image[1502]=8 @image[1503]=662 @image[1506]=1 @image[1507]=-1 @image[1508]=1 @image[1509]=5 @image[1510]=29 @image[1511]=7 @image[1512]=107 @image[1513]=1 @image[1514]=5 @image[1515]=28 @image[1516]=1 @image[1517]=1485 @image[1518]=15 @image[1519]=1 @image[1520]=-2 @image[1521]=1 @image[1522]=5 @image[1523]=29 @image[1524]=7 @image[1525]=107 @image[1526]=1 @image[1527]=5 @image[1528]=28 @image[1529]=1 @image[1530]=535 @image[1531]=15 @image[1532]=1 @image[1533]=-3 @image[1534]=1 @image[1535]=5 @image[1536]=29 @image[1537]=7 @image[1538]=107 @image[1539]=1 @image[1540]=5 @image[1541]=28 @image[1542]=1 @image[1543]=536 @image[1544]=15 @image[1545]=1 @image[1546]=-4 @image[1547]=1 @image[1548]=5 @image[1549]=29 @image[1550]=7 @image[1551]=107 @image[1552]=1 @image[1553]=5 @image[1554]=28 @image[1555]=1 @image[1556]=537 @image[1557]=15 @image[1558]=8 @image[1559]=1486 @image[1562]=8 @image[1563]=194 @image[1566]=7 @image[1567]=662 @image[1568]=1 @image[1569]=12 @image[1570]=7 @image[1571]=702 @image[1572]=8 @image[1573]=662 @image[1576]=1 @image[1577]=32 @image[1578]=14 @image[1579]=7 @image[1580]=828 @image[1581]=14 @image[1582]=9 @image[1585]=1 @image[1586]=32 @image[1587]=14 @image[1588]=7 @image[1589]=824 @image[1590]=14 @image[1591]=9 @image[1594]=1 @image[1595]=6144 @image[1596]=8 @image[1597]=1220 @image[1600]=1 @image[1601]=6144 @image[1602]=7 @image[1603]=1183 @image[1604]=8 @image[1605]=516 @image[1608]=1 @image[1609]=1319 @image[1610]=14 @image[1611]=1 @image[1612]=-1 @image[1613]=12 @image[1614]=1621 @image[1615]=7 @image[1616]=1574 @image[1617]=7 @image[1618]=1583 @image[1619]=7 @image[1620]=1560 @image[1622]=9 @image[1625]=1 @image[1626]=1319 @image[1627]=14 @image[1628]=1 @image[1630]=12 @image[1631]=1643 @image[1632]=7 @image[1633]=1592 @image[1634]=1 @image[1635]=-1 @image[1636]=12 @image[1637]=1640 @image[1638]=8 @image[1639]=1598 @image[1641]=7 @image[1642]=1564 @image[1644]=9 @image[1647]=1 @image[1648]=33 @image[1649]=14 @image[1650]=1 @image[1652]=12 @image[1653]=1660 @image[1654]=7 @image[1655]=662 @image[1656]=1 @image[1657]=27 @image[1658]=7 @image[1659]=702 @image[1661]=9 @image[1664]=7 @image[1665]=1645 @image[1666]=1 @image[1667]=32 @image[1668]=7 @image[1669]=805 @image[1670]=7 @image[1671]=1345 @image[1672]=7 @image[1673]=1606 @image[1674]=7 @image[1675]=1623 @image[1676]=8 @image[1677]=1664 @image[1678]=7 @image[1679]=1504 @image[1680]=7 @image[1681]=1662 @image[1683]=486 @image[1684]=39 @image[1685]=49 @image[1686]=43 @image[1688]=1682 @image[1689]=486 @image[1690]=43 @image[1691]=49 @image[1692]=45 @image[1694]=1688 @image[1695]=486 @image[1696]=47 @image[1697]=115 @image[1698]=119 @image[1699]=97 @image[1700]=112 @image[1702]=1694 @image[1703]=486 @image[1704]=51 @image[1705]=100 @image[1706]=114 @image[1707]=111 @image[1708]=112 @image[1710]=1702 @image[1711]=486 @image[1712]=55 @image[1713]=97 @image[1714]=110 @image[1715]=100 @image[1717]=1710 @image[1718]=486 @image[1719]=59 @image[1720]=111 @image[1721]=114 @image[1723]=1717 @image[1724]=486 @image[1725]=63 @image[1726]=120 @image[1727]=111 @image[1728]=114 @image[1730]=1723 @image[1731]=486 @image[1732]=67 @image[1733]=64 @image[1735]=1730 @image[1736]=486 @image[1737]=71 @image[1738]=33 @image[1740]=1735 @image[1741]=486 @image[1742]=75 @image[1743]=43 @image[1745]=1740 @image[1746]=486 @image[1747]=79 @image[1748]=45 @image[1750]=1745 @image[1751]=486 @image[1752]=83 @image[1753]=42 @image[1755]=1750 @image[1756]=486 @image[1757]=87 @image[1758]=47 @image[1759]=109 @image[1760]=111 @image[1761]=100 @image[1763]=1755 @image[1764]=486 @image[1765]=91 @image[1766]=60 @image[1767]=60 @image[1769]=1763 @image[1770]=486 @image[1771]=95 @image[1772]=62 @image[1773]=62 @image[1775]=1769 @image[1776]=486 @image[1777]=116 @image[1778]=110 @image[1779]=105 @image[1780]=112 @image[1782]=1775 @image[1783]=486 @image[1784]=35 @image[1785]=100 @image[1786]=117 @image[1787]=112 @image[1789]=1782 @image[1790]=486 @image[1791]=103 @image[1792]=105 @image[1793]=110 @image[1795]=1789 @image[1796]=486 @image[1797]=99 @image[1798]=111 @image[1799]=117 @image[1800]=116 @image[1802]=1795 @image[1803]=468 @image[1804]=233 @image[1805]=104 @image[1806]=101 @image[1807]=114 @image[1808]=101 @image[1810]=1802 @image[1811]=468 @image[1812]=239 @image[1813]=44 @image[1815]=1810 @image[1816]=468 @image[1817]=265 @image[1818]=93 @image[1820]=1815 @image[1821]=468 @image[1822]=839 @image[1823]=99 @image[1824]=114 @image[1825]=101 @image[1826]=97 @image[1827]=116 @image[1828]=101 @image[1830]=1820 @image[1831]=468 @image[1832]=892 @image[1833]=58 @image[1835]=1830 @image[1836]=468 @image[1837]=900 @image[1838]=109 @image[1839]=97 @image[1840]=99 @image[1841]=114 @image[1842]=111 @image[1843]=58 @image[1845]=1835 @image[1846]=468 @image[1847]=662 @image[1848]=99 @image[1849]=114 @image[1851]=1845 @image[1852]=468 @image[1853]=648 @image[1854]=101 @image[1855]=109 @image[1856]=105 @image[1857]=116 @image[1859]=1851 @image[1860]=468 @image[1861]=702 @image[1862]=116 @image[1863]=121 @image[1864]=112 @image[1865]=101 @image[1867]=1859 @image[1868]=468 @image[1869]=676 @image[1870]=99 @image[1871]=108 @image[1872]=101 @image[1873]=97 @image[1874]=114 @image[1876]=1867 @image[1877]=468 @image[1878]=1442 @image[1879]=119 @image[1880]=111 @image[1881]=114 @image[1882]=100 @image[1883]=115 @image[1885]=1876 @image[1886]=468 @image[1887]=722 @image[1888]=107 @image[1889]=101 @image[1890]=121 @image[1892]=1885 @image[1893]=468 @image[1894]=121 @image[1895]=111 @image[1896]=118 @image[1897]=101 @image[1898]=114 @image[1900]=1892 @image[1901]=468 @image[1902]=128 @image[1903]=50 @image[1904]=100 @image[1905]=114 @image[1906]=111 @image[1907]=112 @image[1909]=1900 @image[1910]=468 @image[1911]=133 @image[1912]=110 @image[1913]=111 @image[1914]=116 @image[1916]=1909 @image[1917]=468 @image[1918]=139 @image[1919]=114 @image[1920]=111 @image[1921]=116 @image[1923]=1916 @image[1924]=468 @image[1925]=146 @image[1926]=45 @image[1927]=114 @image[1928]=111 @image[1929]=116 @image[1931]=1923 @image[1932]=468 @image[1933]=153 @image[1934]=116 @image[1935]=117 @image[1936]=99 @image[1937]=107 @image[1939]=1931 @image[1940]=468 @image[1941]=158 @image[1942]=50 @image[1943]=100 @image[1944]=117 @image[1945]=112 @image[1947]=1939 @image[1948]=468 @image[1949]=164 @image[1950]=111 @image[1951]=110 @image[1953]=1947 @image[1954]=468 @image[1955]=171 @image[1956]=111 @image[1957]=102 @image[1958]=102 @image[1960]=1953 @image[1961]=468 @image[1962]=178 @image[1963]=47 @image[1965]=1960 @image[1966]=468 @image[1967]=183 @image[1968]=109 @image[1969]=111 @image[1970]=100 @image[1972]=1965 @image[1973]=468 @image[1974]=188 @image[1975]=110 @image[1976]=101 @image[1977]=103 @image[1979]=1972 @image[1980]=468 @image[1981]=194 @image[1982]=101 @image[1983]=120 @image[1984]=101 @image[1985]=99 @image[1986]=117 @image[1987]=116 @image[1988]=101 @image[1990]=1979 @image[1991]=468 @image[1992]=1283 @image[1993]=46 @image[1995]=1990 @image[1996]=468 @image[1997]=1079 @image[1998]=34 @image[2000]=1995 @image[2001]=468 @image[2002]=963 @image[2003]=99 @image[2004]=111 @image[2005]=109 @image[2006]=112 @image[2007]=97 @image[2008]=114 @image[2009]=101 @image[2011]=2000 @image[2012]=468 @image[2013]=107 @image[2014]=119 @image[2015]=97 @image[2016]=105 @image[2017]=116 @image[2019]=2011 @image[2020]=468 @image[2021]=1356 @image[2022]=39 @image[2024]=2019 @image[2025]=468 @image[2026]=199 @image[2027]=64 @image[2028]=43 @image[2030]=2024 @image[2031]=468 @image[2032]=206 @image[2033]=33 @image[2034]=43 @image[2036]=2030 @image[2037]=468 @image[2038]=214 @image[2039]=43 @image[2040]=33 @image[2042]=2036 @image[2043]=468 @image[2044]=223 @image[2045]=45 @image[2046]=33 @image[2048]=2042 @image[2049]=468 @image[2050]=1407 @image[2051]=58 @image[2052]=105 @image[2053]=115 @image[2055]=2048 @image[2056]=468 @image[2057]=1394 @image[2058]=58 @image[2059]=100 @image[2060]=101 @image[2061]=118 @image[2062]=101 @image[2063]=99 @image[2064]=116 @image[2065]=111 @image[2066]=114 @image[2068]=2055 @image[2069]=468 @image[2070]=1423 @image[2071]=105 @image[2072]=115 @image[2074]=2068 @image[2075]=468 @image[2076]=1417 @image[2077]=100 @image[2078]=101 @image[2079]=118 @image[2080]=101 @image[2081]=99 @image[2082]=116 @image[2083]=111 @image[2084]=114 @image[2086]=2074 @image[2087]=468 @image[2088]=332 @image[2089]=99 @image[2090]=111 @image[2091]=109 @image[2092]=112 @image[2093]=105 @image[2094]=108 @image[2095]=101 @image[2097]=2086 @image[2098]=468 @image[2099]=340 @image[2100]=108 @image[2101]=105 @image[2102]=116 @image[2103]=101 @image[2104]=114 @image[2105]=97 @image[2106]=108 @image[2107]=44 @image[2109]=2097 @image[2110]=468 @image[2111]=1029 @image[2112]=116 @image[2113]=101 @image[2114]=109 @image[2115]=112 @image[2116]=83 @image[2117]=116 @image[2118]=114 @image[2119]=105 @image[2120]=110 @image[2121]=103 @image[2123]=2109 @image[2124]=468 @image[2125]=539 @image[2126]=114 @image[2127]=101 @image[2128]=100 @image[2129]=114 @image[2130]=97 @image[2131]=119 @image[2133]=2123 @image[2134]=468 @image[2135]=1045 @image[2136]=107 @image[2137]=101 @image[2138]=101 @image[2139]=112 @image[2140]=83 @image[2141]=116 @image[2142]=114 @image[2143]=105 @image[2144]=110 @image[2145]=103 @image[2147]=2133 @image[2148]=468 @image[2149]=988 @image[2150]=103 @image[2151]=101 @image[2152]=116 @image[2153]=76 @image[2154]=101 @image[2155]=110 @image[2156]=103 @image[2157]=116 @image[2158]=104 @image[2160]=2147 @image[2161]=468 @image[2162]=1438 @image[2163]=98 @image[2164]=121 @image[2165]=101 @image[2167]=2160 @image[2168]=468 @image[2169]=719 @image[2170]=40 @image[2171]=114 @image[2172]=101 @image[2173]=109 @image[2174]=97 @image[2175]=112 @image[2176]=45 @image[2177]=107 @image[2178]=101 @image[2179]=121 @image[2180]=115 @image[2181]=41 @image[2183]=2167 @image[2184]=468 @image[2185]=1560 @image[2186]=119 @image[2187]=105 @image[2188]=116 @image[2189]=104 @image[2190]=45 @image[2191]=99 @image[2192]=108 @image[2193]=97 @image[2194]=115 @image[2195]=115 @image[2197]=2183 @image[2198]=468 @image[2199]=468 @image[2200]=46 @image[2201]=119 @image[2202]=111 @image[2203]=114 @image[2204]=100 @image[2206]=2197 @image[2207]=468 @image[2208]=512 @image[2209]=46 @image[2210]=109 @image[2211]=97 @image[2212]=99 @image[2213]=114 @image[2214]=111 @image[2216]=2206 @image[2217]=468 @image[2218]=516 @image[2219]=46 @image[2220]=100 @image[2221]=97 @image[2222]=116 @image[2223]=97 @image[2225]=2216 @image[2226]=468 @image[2227]=486 @image[2228]=46 @image[2229]=105 @image[2230]=110 @image[2231]=108 @image[2232]=105 @image[2233]=110 @image[2234]=101 @image[2236]=2225 @image[2237]=468 @image[2238]=805 @image[2239]=97 @image[2240]=99 @image[2241]=99 @image[2242]=101 @image[2243]=112 @image[2244]=116 @image[2246]=2236 @image[2247]=468 @image[2248]=824 @image[2249]=100 @image[2250]=45 @image[2251]=62 @image[2252]=99 @image[2253]=108 @image[2254]=97 @image[2255]=115 @image[2256]=115 @image[2258]=2246 @image[2259]=468 @image[2260]=828 @image[2261]=100 @image[2262]=45 @image[2263]=62 @image[2264]=120 @image[2265]=116 @image[2267]=2258 @image[2268]=468 @image[2269]=833 @image[2270]=100 @image[2271]=45 @image[2272]=62 @image[2273]=110 @image[2274]=97 @image[2275]=109 @image[2276]=101 @image[2278]=2267 @image[2279]=468 @image[2280]=1486 @image[2281]=98 @image[2282]=111 @image[2283]=111 @image[2284]=116 @image[2286]=2278 @image[2287]=468 @image[2288]=1460 @image[2289]=100 @image[2290]=101 @image[2291]=112 @image[2292]=116 @image[2293]=104 @image[2295]=2286 @image[2296]=468 @image[2297]=1472 @image[2298]=114 @image[2299]=101 @image[2300]=115 @image[2301]=101 @image[2302]=116 @image[2304]=2295 @image[2305]=468 @image[2306]=1564 @image[2307]=110 @image[2308]=111 @image[2309]=116 @image[2310]=102 @image[2311]=111 @image[2312]=117 @image[2313]=110 @image[2314]=100 @image[2316]=2304 @image[2317]=468 @image[2318]=1429 @image[2319]=115 @image[2320]=97 @image[2321]=118 @image[2322]=101 @image[2324]=2316 @image[2325]=468 @image[2326]=1183 @image[2327]=62 @image[2328]=110 @image[2329]=117 @image[2330]=109 @image[2331]=98 @image[2332]=101 @image[2333]=114 @image[2335]=2324 @image[2336]=468 @image[2337]=1645 @image[2338]=111 @image[2339]=107 @image[2341]=2335 @image[2342]=512 @image[2343]=1089 @image[2344]=115 @image[2345]=34 @image[2347]=2341 @image[2348]=512 @image[2349]=273 @image[2350]=91 @image[2352]=2347 @image[2353]=512 @image[2354]=289 @image[2355]=59 @image[2357]=2352 @image[2358]=512 @image[2359]=281 @image[2360]=59 @image[2361]=59 @image[2363]=2357 @image[2364]=512 @image[2365]=376 @image[2366]=61 @image[2367]=105 @image[2368]=102 @image[2370]=2363 @image[2371]=512 @image[2372]=390 @image[2373]=62 @image[2374]=105 @image[2375]=102 @image[2377]=2370 @image[2378]=512 @image[2379]=404 @image[2380]=60 @image[2381]=105 @image[2382]=102 @image[2384]=2377 @image[2385]=512 @image[2386]=418 @image[2387]=33 @image[2388]=105 @image[2389]=102 @image[2391]=2384 @image[2392]=512 @image[2393]=432 @image[2394]=116 @image[2395]=104 @image[2396]=101 @image[2397]=110 @image[2399]=2391 @image[2400]=512 @image[2401]=444 @image[2402]=114 @image[2403]=101 @image[2404]=112 @image[2405]=101 @image[2406]=97 @image[2407]=116 @image[2409]=2399 @image[2410]=512 @image[2411]=450 @image[2412]=97 @image[2413]=103 @image[2414]=97 @image[2415]=105 @image[2416]=110 @image[2418]=2409 @image[2419]=512 @image[2420]=460 @image[2421]=48 @image[2422]=59 @image[2424]=2418 @image[2425]=512 @image[2426]=908 @image[2427]=40 @image[2429]=2424 @image[2430]=512 @image[2431]=316 @image[2432]=112 @image[2433]=117 @image[2434]=115 @image[2435]=104 @image[2437]=2429 @image[2438]=512 @image[2439]=324 @image[2440]=112 @image[2441]=111 @image[2442]=112 @image[2444]=2437 @image[2445]=512 @image[2446]=1382 @image[2447]=91 @image[2448]=39 @image[2449]=93 @image[2451]=2444 @image[2452]=512 @image[2453]=348 @image[2454]=102 @image[2455]=111 @image[2456]=114 @image[2458]=2451 @image[2459]=512 @image[2460]=356 @image[2461]=110 @image[2462]=101 @image[2463]=120 @image[2464]=116 @image[2466]=2458 @image[2467]=516 @image[2468]=533 @image[2469]=116 @image[2470]=120 @image[2472]=2466 @image[2473]=516 @image[2474]=534 @image[2475]=116 @image[2476]=121 @image[2478]=2472 @image[2479]=516 @image[2480]=31 @image[2481]=108 @image[2482]=97 @image[2483]=115 @image[2484]=116 @image[2486]=2478 @image[2487]=516 @image[2488]=33 @image[2489]=99 @image[2490]=111 @image[2491]=109 @image[2492]=112 @image[2493]=105 @image[2494]=108 @image[2495]=101 @image[2496]=114 @image[2498]=2486 @image[2499]=516 @image[2500]=6144 @image[2501]=116 @image[2502]=105 @image[2503]=98 @image[2505]=2498 @image[2506]=516 @image[2507]=538 @image[2508]=117 @image[2509]=112 @image[2510]=100 @image[2511]=97 @image[2512]=116 @image[2513]=101 @image[2515]=2505 @image[2516]=516 @image[2517]=535 @image[2518]=102 @image[2519]=98 @image[2521]=2515 @image[2522]=516 @image[2523]=536 @image[2524]=102 @image[2525]=119 @image[2527]=2521 @image[2528]=516 @image[2529]=537 @image[2530]=102 @image[2531]=104 @image[2533]=2527 @image[2534]=516 @image[2535]=1485 @image[2536]=35 @image[2537]=109 @image[2538]=101 @image[2539]=109 @image[2541]=2533 @image[2542]=516 @image[2543]=34 @image[2544]=104 @image[2545]=101 @image[2546]=97 @image[2547]=112 @image[2549]=2541 @image[2550]=516 @image[2551]=32 @image[2552]=119 @image[2553]=104 @image[2554]=105 @image[2555]=99 @image[2556]=104 end end if __FILE__ == $0 vm = RetroVM.new vm.load_image vm.run end