(lp1 (ccopy_reg _reconstructor p2 (cpygments.token _TokenType p3 c__builtin__ tuple p4 (S'Punctuation' p5 ttRp6 (dp7 S'subtypes' p8 c__builtin__ set p9 ((lp10 g2 (g3 g4 (g5 S'Indicator' p11 ttRp12 (dp13 g8 g9 ((ltRp14 sS'parent' p15 g6 sbatRp16 sg11 g12 sg15 g2 (g3 g4 (ttRp17 (dp18 S'Comment' p19 g2 (g3 g4 (g19 ttRp20 (dp21 g15 g17 sS'Preproc' p22 g2 (g3 g4 (g19 g22 ttRp23 (dp24 g8 g9 ((ltRp25 sg15 g20 sbsS'Single' p26 g2 (g3 g4 (g19 g26 ttRp27 (dp28 g8 g9 ((ltRp29 sg15 g20 sbsS'Multiline' p30 g2 (g3 g4 (g19 g30 ttRp31 (dp32 g8 g9 ((ltRp33 sg15 g20 sbsg8 g9 ((lp34 g2 (g3 g4 (g19 S'Special' p35 ttRp36 (dp37 g8 g9 ((ltRp38 sg15 g20 sbag23 ag27 ag31 atRp39 sg35 g36 sbsS'Name' p40 g2 (g3 g4 (g40 ttRp41 (dp42 S'Function' p43 g2 (g3 g4 (g40 g43 ttRp44 (dp45 g8 g9 ((ltRp46 sg15 g41 sbsS'Exception' p47 g2 (g3 g4 (g40 g47 ttRp48 (dp49 g8 g9 ((ltRp50 sg15 g41 sbsS'Tag' p51 g2 (g3 g4 (g40 g51 ttRp52 (dp53 g8 g9 ((ltRp54 sg15 g41 sbsS'Constant' p55 g2 (g3 g4 (g40 g55 ttRp56 (dp57 g8 g9 ((ltRp58 sg15 g41 sbsg15 g17 sS'Pseudo' p59 g2 (g3 g4 (g40 g59 ttRp60 (dp61 g8 g9 ((ltRp62 sg15 g41 sbsS'Attribute' p63 g2 (g3 g4 (g40 g63 ttRp64 (dp65 g8 g9 ((ltRp66 sg15 g41 sbsS'Label' p67 g2 (g3 g4 (g40 g67 ttRp68 (dp69 g8 g9 ((ltRp70 sg15 g41 sbsS'Blubb' p71 g2 (g3 g4 (g40 g71 ttRp72 (dp73 g8 g9 ((ltRp74 sg15 g41 sbsS'Entity' p75 g2 (g3 g4 (g40 g75 ttRp76 (dp77 g8 g9 ((ltRp78 sg15 g41 sbsS'Builtin' p79 g2 (g3 g4 (g40 g79 ttRp80 (dp81 g8 g9 ((lp82 g2 (g3 g4 (g40 g79 g59 ttRp83 (dp84 g8 g9 ((ltRp85 sg15 g80 sbatRp86 sg59 g83 sg15 g41 sbsS'Other' p87 g2 (g3 g4 (g40 g87 ttRp88 (dp89 g8 g9 ((ltRp90 sg15 g41 sbsS'Identifier' p91 g2 (g3 g4 (g40 g91 ttRp92 (dp93 g8 g9 ((ltRp94 sg15 g41 sbsS'Variable' p95 g2 (g3 g4 (g40 g95 ttRp96 (dp97 g15 g41 sS'Global' p98 g2 (g3 g4 (g40 g95 g98 ttRp99 (dp100 g8 g9 ((ltRp101 sg15 g96 sbsS'Instance' p102 g2 (g3 g4 (g40 g95 g102 ttRp103 (dp104 g8 g9 ((ltRp105 sg15 g96 sbsS'Anonymous' p106 g2 (g3 g4 (g40 g95 g106 ttRp107 (dp108 g8 g9 ((ltRp109 sg15 g96 sbsg8 g9 ((lp110 g107 ag103 ag99 ag2 (g3 g4 (g40 g95 S'Class' p111 ttRp112 (dp113 g8 g9 ((ltRp114 sg15 g96 sbatRp115 sg111 g112 sbsg8 g9 ((lp116 g2 (g3 g4 (g40 S'Decorator' p117 ttRp118 (dp119 g8 g9 ((ltRp120 sg15 g41 sbag64 ag56 ag60 ag2 (g3 g4 (g40 S'Namespace' p121 ttRp122 (dp123 g8 g9 ((ltRp124 sg15 g41 sbag92 ag80 ag96 ag88 ag72 ag76 ag44 ag2 (g3 g4 (g40 S'Property' p125 ttRp126 (dp127 g8 g9 ((ltRp128 sg15 g41 sbag68 ag52 ag48 ag2 (g3 g4 (g40 g111 ttRp129 (dp130 g8 g9 ((ltRp131 sg15 g41 sbatRp132 sg125 g126 sg111 g129 sg117 g118 sg121 g122 sbsS'Keyword' p133 g2 (g3 g4 (g133 ttRp134 (dp135 g55 g2 (g3 g4 (g133 g55 ttRp136 (dp137 g8 g9 ((ltRp138 sg15 g134 sbsg15 g17 sg121 g2 (g3 g4 (g133 g121 ttRp139 (dp140 g8 g9 ((ltRp141 sg15 g134 sbsg59 g2 (g3 g4 (g133 g59 ttRp142 (dp143 g8 g9 ((ltRp144 sg15 g134 sbsS'Reserved' p145 g2 (g3 g4 (g133 g145 ttRp146 (dp147 g8 g9 ((ltRp148 sg15 g134 sbsS'Declaration' p149 g2 (g3 g4 (g133 g149 ttRp150 (dp151 g8 g9 ((ltRp152 sg15 g134 sbsg95 g2 (g3 g4 (g133 g95 ttRp153 (dp154 g8 g9 ((ltRp155 sg15 g134 sbsg8 g9 ((lp156 g136 ag146 ag2 (g3 g4 (g133 S'Type' p157 ttRp158 (dp159 g8 g9 ((ltRp160 sg15 g134 sbag150 ag153 ag139 ag142 atRp161 sg157 g158 sbsS'Generic' p162 g2 (g3 g4 (g162 ttRp163 (dp164 S'Prompt' p165 g2 (g3 g4 (g162 g165 ttRp166 (dp167 g8 g9 ((ltRp168 sg15 g163 sbsg15 g17 sS'Deleted' p169 g2 (g3 g4 (g162 g169 ttRp170 (dp171 g8 g9 ((ltRp172 sg15 g163 sbsS'Traceback' p173 g2 (g3 g4 (g162 g173 ttRp174 (dp175 g8 g9 ((ltRp176 sg15 g163 sbsS'Emph' p177 g2 (g3 g4 (g162 g177 ttRp178 (dp179 g8 g9 ((ltRp180 sg15 g163 sbsS'Output' p181 g2 (g3 g4 (g162 g181 ttRp182 (dp183 g8 g9 ((ltRp184 sg15 g163 sbsS'Subheading' p185 g2 (g3 g4 (g162 g185 ttRp186 (dp187 g8 g9 ((ltRp188 sg15 g163 sbsS'Error' p189 g2 (g3 g4 (g162 g189 ttRp190 (dp191 g8 g9 ((ltRp192 sg15 g163 sbsg8 g9 ((lp193 g182 ag178 ag190 ag186 ag174 ag170 ag2 (g3 g4 (g162 S'Heading' p194 ttRp195 (dp196 g8 g9 ((ltRp197 sg15 g163 sbag2 (g3 g4 (g162 S'Inserted' p198 ttRp199 (dp200 g8 g9 ((ltRp201 sg15 g163 sbag2 (g3 g4 (g162 S'Strong' p202 ttRp203 (dp204 g8 g9 ((ltRp205 sg15 g163 sbag166 atRp206 sg202 g203 sg198 g199 sg194 g195 sbsS'Text' p207 g2 (g3 g4 (g207 ttRp208 (dp209 g8 g9 ((lp210 g2 (g3 g4 (g207 S'Symbol' p211 ttRp212 (dp213 g8 g9 ((ltRp214 sg15 g208 sbag2 (g3 g4 (g207 S'Whitespace' p215 ttRp216 (dp217 g8 g9 ((ltRp218 sg15 g208 sbatRp219 sg211 g212 sg215 g216 sg15 g17 sbsg5 g6 sS'Token' p220 g17 sS'Number' p221 g2 (g3 g4 (S'Literal' p222 g221 ttRp223 (dp224 S'Bin' p225 g2 (g3 g4 (g222 g221 g225 ttRp226 (dp227 g8 g9 ((ltRp228 sg15 g223 sbsS'Binary' p229 g2 (g3 g4 (g222 g221 g229 ttRp230 (dp231 g8 g9 ((ltRp232 sg15 g223 sbsg15 g2 (g3 g4 (g222 ttRp233 (dp234 S'String' p235 g2 (g3 g4 (g222 g235 ttRp236 (dp237 S'Regex' p238 g2 (g3 g4 (g222 g235 g238 ttRp239 (dp240 g8 g9 ((ltRp241 sg15 g236 sbsS'Interpol' p242 g2 (g3 g4 (g222 g235 g242 ttRp243 (dp244 g8 g9 ((ltRp245 sg15 g236 sbsS'Regexp' p246 g2 (g3 g4 (g222 g235 g246 ttRp247 (dp248 g8 g9 ((ltRp249 sg15 g236 sbsg15 g233 sS'Heredoc' p250 g2 (g3 g4 (g222 g235 g250 ttRp251 (dp252 g8 g9 ((ltRp253 sg15 g236 sbsS'Double' p254 g2 (g3 g4 (g222 g235 g254 ttRp255 (dp256 g8 g9 ((ltRp257 sg15 g236 sbsg211 g2 (g3 g4 (g222 g235 g211 ttRp258 (dp259 g8 g9 ((ltRp260 sg15 g236 sbsS'Escape' p261 g2 (g3 g4 (g222 g235 g261 ttRp262 (dp263 g8 g9 ((ltRp264 sg15 g236 sbsS'Character' p265 g2 (g3 g4 (g222 g235 g265 ttRp266 (dp267 g8 g9 ((ltRp268 sg15 g236 sbsS'Interp' p269 g2 (g3 g4 (g222 g235 g269 ttRp270 (dp271 g8 g9 ((ltRp272 sg15 g236 sbsS'Backtick' p273 g2 (g3 g4 (g222 g235 g273 ttRp274 (dp275 g8 g9 ((ltRp276 sg15 g236 sbsS'Char' p277 g2 (g3 g4 (g222 g235 g277 ttRp278 (dp279 g8 g9 ((ltRp280 sg15 g236 sbsg26 g2 (g3 g4 (g222 g235 g26 ttRp281 (dp282 g8 g9 ((ltRp283 sg15 g236 sbsg87 g2 (g3 g4 (g222 g235 g87 ttRp284 (dp285 g8 g9 ((ltRp286 sg15 g236 sbsS'Doc' p287 g2 (g3 g4 (g222 g235 g287 ttRp288 (dp289 g8 g9 ((ltRp290 sg15 g236 sbsg8 g9 ((lp291 g284 ag2 (g3 g4 (g222 g235 S'Atom' p292 ttRp293 (dp294 g8 g9 ((ltRp295 sg15 g236 sbag255 ag278 ag270 ag288 ag251 ag274 ag243 ag258 ag247 ag239 ag281 ag266 ag262 atRp296 sg292 g293 sbsg15 g17 sg221 g223 sS'Scalar' p297 g2 (g3 g4 (g222 g297 ttRp298 (dp299 g8 g9 ((lp300 g2 (g3 g4 (g222 g297 S'Plain' p301 ttRp302 (dp303 g8 g9 ((ltRp304 sg15 g298 sbatRp305 sg15 g233 sg301 g302 sbsg87 g2 (g3 g4 (g222 g87 ttRp306 (dp307 g8 g9 ((ltRp308 sg15 g233 sbsS'Date' p309 g2 (g3 g4 (g222 g309 ttRp310 (dp311 g8 g9 ((ltRp312 sg15 g233 sbsg8 g9 ((lp313 g310 ag236 ag306 ag223 ag298 atRp314 sbsS'Decimal' p315 g2 (g3 g4 (g222 g221 g315 ttRp316 (dp317 g8 g9 ((ltRp318 sg15 g223 sbsS'Float' p319 g2 (g3 g4 (g222 g221 g319 ttRp320 (dp321 g8 g9 ((ltRp322 sg15 g223 sbsS'Hex' p323 g2 (g3 g4 (g222 g221 g323 ttRp324 (dp325 g8 g9 ((ltRp326 sg15 g223 sbsS'Integer' p327 g2 (g3 g4 (g222 g221 g327 ttRp328 (dp329 g8 g9 ((lp330 g2 (g3 g4 (g222 g221 g327 S'Long' p331 ttRp332 (dp333 g8 g9 ((ltRp334 sg15 g328 sbatRp335 sg331 g332 sg15 g223 sbsS'Octal' p336 g2 (g3 g4 (g222 g221 g336 ttRp337 (dp338 g8 g9 ((ltRp339 sg15 g223 sbsg8 g9 ((lp340 g226 ag230 ag337 ag316 ag2 (g3 g4 (g222 g221 S'Oct' p341 ttRp342 (dp343 g8 g9 ((ltRp344 sg15 g223 sbag328 ag320 ag324 atRp345 sg341 g342 sbsg222 g233 sg87 g2 (g3 g4 (g87 ttRp346 (dp347 g8 g9 ((ltRp348 sg15 g17 sbsg189 g2 (g3 g4 (g189 ttRp349 (dp350 g8 g9 ((ltRp351 sg15 g17 sbsS'Operator' p352 g2 (g3 g4 (g352 ttRp353 (dp354 g8 g9 ((lp355 g2 (g3 g4 (g352 S'Word' p356 ttRp357 (dp358 g8 g9 ((ltRp359 sg15 g353 sbatRp360 sg356 g357 sg15 g17 sbsg8 g9 ((lp361 g20 ag349 ag163 ag208 ag41 ag6 ag134 ag233 ag353 ag346 atRp362 sg235 g236 sbsbV- tp363 a(g76 Vmodule p364 tp365 a(g6 V( tp366 a(g41 Vtest p367 tp368 a(g6 V) tp369 a(g6 V. tp370 a(g208 V\u000a tp371 a(g6 V- tp372 a(g76 Vexport p373 tp374 a(g6 V( tp375 a(g6 V[ tp376 a(g41 Vlisten p377 tp378 a(g353 V/ tp379 a(g328 V1 tp380 a(g6 V, tp381 a(g208 V\u000a p382 tp383 a(g41 Vhandle_client p384 tp385 a(g353 V/ tp386 a(g328 V1 tp387 a(g6 V, tp388 a(g208 V\u000a p389 tp390 a(g41 Vmaintain_clients p391 tp392 a(g353 V/ tp393 a(g328 V1 tp394 a(g6 V, tp395 a(g208 V\u000a p396 tp397 a(g41 Vstart p398 tp399 a(g353 V/ tp400 a(g328 V1 tp401 a(g6 V, tp402 a(g208 V\u000a p403 tp404 a(g41 Vstop p405 tp406 a(g353 V/ tp407 a(g328 V0 tp408 a(g6 V, tp409 a(g208 V\u000a p410 tp411 a(g41 Vcontroller p412 tp413 a(g353 V/ tp414 a(g328 V1 tp415 a(g6 V] tp416 a(g6 V) tp417 a(g6 V. tp418 a(g208 V\u000a\u000a p419 tp420 a(g6 V- tp421 a(g76 Vauthor p422 tp423 a(g6 V( tp424 a(g236 V" tp425 a(g236 Vjerith p426 tp427 a(g236 V" tp428 a(g6 V) tp429 a(g6 V. tp430 a(g208 V\u000a\u000a p431 tp432 a(g6 V- tp433 a(g76 Vdefine p434 tp435 a(g6 V( tp436 a(g56 VTCP_OPTIONS p437 tp438 a(g6 V, tp439 a(g6 V[ tp440 a(g41 Vlist p441 tp442 a(g6 V, tp443 a(g208 V tp444 a(g6 V{ tp445 a(g41 Vpacket p446 tp447 a(g6 V, tp448 a(g208 V tp449 a(g328 V0 tp450 a(g6 V} tp451 a(g6 V, tp452 a(g208 V tp453 a(g6 V{ tp454 a(g41 Vactive p455 tp456 a(g6 V, tp457 a(g208 V tp458 a(g41 Vfalse p459 tp460 a(g6 V} tp461 a(g6 V, tp462 a(g208 V tp463 a(g6 V{ tp464 a(g41 Vreuseaddr p465 tp466 a(g6 V, tp467 a(g208 V tp468 a(g41 Vtrue p469 tp470 a(g6 V} tp471 a(g6 V] tp472 a(g6 V) tp473 a(g6 V. tp474 a(g208 V\u000a\u000a p475 tp476 a(g6 V- tp477 a(g76 Vrecord p478 tp479 a(g6 V( tp480 a(g68 Vplayer p481 tp482 a(g6 V, tp483 a(g208 V tp484 a(g6 V{ tp485 a(g41 Vname p486 tp487 a(g353 V= tp488 a(g41 Vnone p489 tp490 a(g6 V, tp491 a(g208 V tp492 a(g41 Vsocket p493 tp494 a(g6 V, tp495 a(g208 V tp496 a(g41 Vmode p497 tp498 a(g6 V} tp499 a(g6 V) tp500 a(g6 V. tp501 a(g208 V\u000a\u000a p502 tp503 a(g20 V%% To allow incoming connections, we need to listen on a TCP port.\u000a p504 tp505 a(g20 V%% This is also the entry point for our server as a whole, so it\u000a p506 tp507 a(g20 V%% starts the client_manager process and gives it a name so the rest\u000a p508 tp509 a(g20 V%% of the code can get to it easily.\u000a p510 tp511 a(g208 V\u000a tp512 a(g44 Vlisten p513 tp514 a(g6 V( tp515 a(g96 VPort p516 tp517 a(g6 V) tp518 a(g208 V tp519 a(g353 V- tp520 a(g353 V> tp521 a(g208 V\u000a p522 tp523 a(g6 V{ tp524 a(g41 Vok p525 tp526 a(g6 V, tp527 a(g208 V tp528 a(g96 VLSocket p529 tp530 a(g6 V} tp531 a(g208 V tp532 a(g353 V= tp533 a(g208 V tp534 a(g122 Vgen_tcp p535 tp536 a(g6 V: tp537 a(g41 Vlisten p538 tp539 a(g6 V( tp540 a(g96 VPort p541 tp542 a(g6 V, tp543 a(g208 V tp544 a(g56 V?TCP_OPTIONS p545 tp546 a(g6 V) tp547 a(g6 V, tp548 a(g208 V\u000a p549 tp550 a(g80 Vregister p551 tp552 a(g6 V( tp553 a(g41 Vclient_manager p554 tp555 a(g6 V, tp556 a(g208 V tp557 a(g80 Vspawn p558 tp559 a(g6 V( tp560 a(g56 V?MODULE p561 tp562 a(g6 V, tp563 a(g208 V tp564 a(g41 Vmaintain_clients p565 tp566 a(g6 V, tp567 a(g208 V tp568 a(g6 V[ tp569 a(g6 V[ tp570 a(g6 V] tp571 a(g6 V] tp572 a(g6 V) tp573 a(g6 V) tp574 a(g6 V, tp575 a(g208 V\u000a p576 tp577 a(g41 Vdo_accept p578 tp579 a(g6 V( tp580 a(g96 VLSocket p581 tp582 a(g6 V) tp583 a(g6 V. tp584 a(g208 V\u000a\u000a p585 tp586 a(g20 V%% Accepting a connection gives us a connection socket with the\u000a p587 tp588 a(g20 V%% newly-connected client on the other end. Since we want to accept\u000a p589 tp590 a(g20 V%% more than one client, we spawn a new process for each and then wait\u000a p591 tp592 a(g20 V%% for another connection on our listening socket.\u000a p593 tp594 a(g208 V\u000a tp595 a(g44 Vdo_accept p596 tp597 a(g6 V( tp598 a(g96 VLSocket p599 tp600 a(g6 V) tp601 a(g208 V tp602 a(g353 V- tp603 a(g353 V> tp604 a(g208 V\u000a p605 tp606 a(g134 Vcase p607 tp608 a(g208 V tp609 a(g122 Vgen_tcp p610 tp611 a(g6 V: tp612 a(g41 Vaccept p613 tp614 a(g6 V( tp615 a(g96 VLSocket p616 tp617 a(g6 V) tp618 a(g208 V tp619 a(g134 Vof p620 tp621 a(g208 V\u000a p622 tp623 a(g6 V{ tp624 a(g41 Vok p625 tp626 a(g6 V, tp627 a(g208 V tp628 a(g96 VSocket p629 tp630 a(g6 V} tp631 a(g208 V tp632 a(g353 V- tp633 a(g353 V> tp634 a(g208 V\u000a p635 tp636 a(g80 Vspawn p637 tp638 a(g6 V( tp639 a(g56 V?MODULE p640 tp641 a(g6 V, tp642 a(g208 V tp643 a(g41 Vhandle_client p644 tp645 a(g6 V, tp646 a(g208 V tp647 a(g6 V[ tp648 a(g96 VSocket p649 tp650 a(g6 V] tp651 a(g6 V) tp652 a(g6 V, tp653 a(g208 V\u000a p654 tp655 a(g41 Vclient_manager p656 tp657 a(g208 V tp658 a(g353 V! tp659 a(g208 V tp660 a(g6 V{ tp661 a(g41 Vconnect p662 tp663 a(g6 V, tp664 a(g208 V tp665 a(g96 VSocket p666 tp667 a(g6 V} tp668 a(g6 V; tp669 a(g208 V\u000a p670 tp671 a(g6 V{ tp672 a(g41 Verror p673 tp674 a(g6 V, tp675 a(g208 V tp676 a(g96 VReason p677 tp678 a(g6 V} tp679 a(g208 V tp680 a(g353 V- tp681 a(g353 V> tp682 a(g208 V\u000a p683 tp684 a(g122 Vio p685 tp686 a(g6 V: tp687 a(g41 Vformat p688 tp689 a(g6 V( tp690 a(g236 V" tp691 a(g236 VSocket accept error: p692 tp693 a(g243 V~s p694 tp695 a(g243 V~n p696 tp697 a(g236 V" tp698 a(g6 V, tp699 a(g208 V tp700 a(g6 V[ tp701 a(g96 VReason p702 tp703 a(g6 V] tp704 a(g6 V) tp705 a(g208 V\u000a p706 tp707 a(g134 Vend p708 tp709 a(g6 V, tp710 a(g208 V\u000a p711 tp712 a(g41 Vdo_accept p713 tp714 a(g6 V( tp715 a(g96 VLSocket p716 tp717 a(g6 V) tp718 a(g6 V. tp719 a(g208 V\u000a\u000a p720 tp721 a(g20 V%% All the client-socket process needs to do is wait for data and\u000a p722 tp723 a(g20 V%% forward it to the client_manager process which decides what to do\u000a p724 tp725 a(g20 V%% with it. If the client disconnects, we let client_manager know and\u000a p726 tp727 a(g20 V%% then quietly go away.\u000a p728 tp729 a(g208 V\u000a tp730 a(g44 Vhandle_client p731 tp732 a(g6 V( tp733 a(g96 VSocket p734 tp735 a(g6 V) tp736 a(g208 V tp737 a(g353 V- tp738 a(g353 V> tp739 a(g208 V\u000a p740 tp741 a(g134 Vcase p742 tp743 a(g208 V tp744 a(g122 Vgen_tcp p745 tp746 a(g6 V: tp747 a(g41 Vrecv p748 tp749 a(g6 V( tp750 a(g96 VSocket p751 tp752 a(g6 V, tp753 a(g208 V tp754 a(g328 V0 tp755 a(g6 V) tp756 a(g208 V tp757 a(g134 Vof p758 tp759 a(g208 V\u000a p760 tp761 a(g6 V{ tp762 a(g41 Vok p763 tp764 a(g6 V, tp765 a(g208 V tp766 a(g96 VData p767 tp768 a(g6 V} tp769 a(g208 V tp770 a(g353 V- tp771 a(g353 V> tp772 a(g208 V\u000a p773 tp774 a(g41 Vclient_manager p775 tp776 a(g208 V tp777 a(g353 V! tp778 a(g208 V tp779 a(g6 V{ tp780 a(g41 Vdata p781 tp782 a(g6 V, tp783 a(g208 V tp784 a(g96 VSocket p785 tp786 a(g6 V, tp787 a(g208 V tp788 a(g96 VData p789 tp790 a(g6 V} tp791 a(g6 V, tp792 a(g208 V\u000a p793 tp794 a(g41 Vhandle_client p795 tp796 a(g6 V( tp797 a(g96 VSocket p798 tp799 a(g6 V) tp800 a(g6 V; tp801 a(g208 V\u000a p802 tp803 a(g6 V{ tp804 a(g41 Verror p805 tp806 a(g6 V, tp807 a(g208 V tp808 a(g41 Vclosed p809 tp810 a(g6 V} tp811 a(g208 V tp812 a(g353 V- tp813 a(g353 V> tp814 a(g208 V\u000a p815 tp816 a(g41 Vclient_manager p817 tp818 a(g208 V tp819 a(g353 V! tp820 a(g208 V tp821 a(g6 V{ tp822 a(g41 Vdisconnect p823 tp824 a(g6 V, tp825 a(g208 V tp826 a(g96 VSocket p827 tp828 a(g6 V} tp829 a(g208 V\u000a p830 tp831 a(g134 Vend p832 tp833 a(g6 V. tp834 a(g208 V\u000a\u000a p835 tp836 a(g20 V%% This is the main loop of the client_manager process. It maintains\u000a p837 tp838 a(g20 V%% the list of "players" and calls the handler for client input.\u000a p839 tp840 a(g208 V\u000a tp841 a(g44 Vmaintain_clients p842 tp843 a(g6 V( tp844 a(g96 VPlayers p845 tp846 a(g6 V) tp847 a(g208 V tp848 a(g353 V- tp849 a(g353 V> tp850 a(g208 V\u000a p851 tp852 a(g122 Vio p853 tp854 a(g6 V: tp855 a(g41 Vformat p856 tp857 a(g6 V( tp858 a(g236 V" tp859 a(g236 VPlayers: p860 tp861 a(g243 V~n p862 tp863 a(g236 V" tp864 a(g6 V, tp865 a(g208 V tp866 a(g6 V[ tp867 a(g6 V] tp868 a(g6 V) tp869 a(g6 V, tp870 a(g208 V\u000a p871 tp872 a(g122 Vlists p873 tp874 a(g6 V: tp875 a(g41 Vforeach p876 tp877 a(g6 V( tp878 a(g134 Vfun p879 tp880 a(g6 V( tp881 a(g96 VP tp882 a(g6 V) tp883 a(g208 V tp884 a(g353 V- tp885 a(g353 V> tp886 a(g208 V tp887 a(g122 Vio p888 tp889 a(g6 V: tp890 a(g41 Vformat p891 tp892 a(g6 V( tp893 a(g236 V" tp894 a(g236 V>>> p895 tp896 a(g243 V~w p897 tp898 a(g243 V~n p899 tp900 a(g236 V" tp901 a(g6 V, tp902 a(g208 V tp903 a(g6 V[ tp904 a(g96 VP tp905 a(g6 V] tp906 a(g6 V) tp907 a(g208 V tp908 a(g134 Vend p909 tp910 a(g6 V, tp911 a(g208 V tp912 a(g96 VPlayers p913 tp914 a(g6 V) tp915 a(g6 V, tp916 a(g208 V\u000a p917 tp918 a(g134 Vreceive p919 tp920 a(g208 V\u000a p921 tp922 a(g6 V{ tp923 a(g41 Vconnect p924 tp925 a(g6 V, tp926 a(g208 V tp927 a(g96 VSocket p928 tp929 a(g6 V} tp930 a(g208 V tp931 a(g353 V- tp932 a(g353 V> tp933 a(g208 V\u000a p934 tp935 a(g96 VPlayer p936 tp937 a(g208 V tp938 a(g353 V= tp939 a(g208 V tp940 a(g68 V#player p941 tp942 a(g6 V{ tp943 a(g41 Vsocket p944 tp945 a(g353 V= tp946 a(g96 VSocket p947 tp948 a(g6 V, tp949 a(g208 V tp950 a(g41 Vmode p951 tp952 a(g353 V= tp953 a(g41 Vconnect p954 tp955 a(g6 V} tp956 a(g6 V, tp957 a(g208 V\u000a p958 tp959 a(g41 Vsend_prompt p960 tp961 a(g6 V( tp962 a(g96 VPlayer p963 tp964 a(g6 V) tp965 a(g6 V, tp966 a(g208 V\u000a p967 tp968 a(g122 Vio p969 tp970 a(g6 V: tp971 a(g41 Vformat p972 tp973 a(g6 V( tp974 a(g236 V" tp975 a(g236 Vclient connected: p976 tp977 a(g243 V~w p978 tp979 a(g243 V~n p980 tp981 a(g236 V" tp982 a(g6 V, tp983 a(g208 V tp984 a(g6 V[ tp985 a(g96 VPlayer p986 tp987 a(g6 V] tp988 a(g6 V) tp989 a(g6 V, tp990 a(g208 V\u000a p991 tp992 a(g96 VNewPlayers p993 tp994 a(g208 V tp995 a(g353 V= tp996 a(g208 V p997 tp998 a(g6 V[ tp999 a(g96 VPlayer p1000 tp1001 a(g208 V tp1002 a(g6 V| tp1003 a(g208 V tp1004 a(g96 VPlayers p1005 tp1006 a(g6 V] tp1007 a(g6 V; tp1008 a(g208 V\u000a p1009 tp1010 a(g6 V{ tp1011 a(g41 Vdisconnect p1012 tp1013 a(g6 V, tp1014 a(g208 V tp1015 a(g96 VSocket p1016 tp1017 a(g6 V} tp1018 a(g208 V tp1019 a(g353 V- tp1020 a(g353 V> tp1021 a(g208 V\u000a p1022 tp1023 a(g96 VPlayer p1024 tp1025 a(g208 V tp1026 a(g353 V= tp1027 a(g208 V tp1028 a(g41 Vfind_player p1029 tp1030 a(g6 V( tp1031 a(g96 VSocket p1032 tp1033 a(g6 V, tp1034 a(g208 V tp1035 a(g96 VPlayers p1036 tp1037 a(g6 V) tp1038 a(g6 V, tp1039 a(g208 V\u000a p1040 tp1041 a(g122 Vio p1042 tp1043 a(g6 V: tp1044 a(g41 Vformat p1045 tp1046 a(g6 V( tp1047 a(g236 V" tp1048 a(g236 Vclient disconnected: p1049 tp1050 a(g243 V~w p1051 tp1052 a(g243 V~n p1053 tp1054 a(g236 V" tp1055 a(g6 V, tp1056 a(g208 V tp1057 a(g6 V[ tp1058 a(g96 VPlayer p1059 tp1060 a(g6 V] tp1061 a(g6 V) tp1062 a(g6 V, tp1063 a(g208 V\u000a p1064 tp1065 a(g96 VNewPlayers p1066 tp1067 a(g208 V tp1068 a(g353 V= tp1069 a(g208 V tp1070 a(g122 Vlists p1071 tp1072 a(g6 V: tp1073 a(g41 Vdelete p1074 tp1075 a(g6 V( tp1076 a(g96 VPlayer p1077 tp1078 a(g6 V, tp1079 a(g208 V tp1080 a(g96 VPlayers p1081 tp1082 a(g6 V) tp1083 a(g6 V; tp1084 a(g208 V\u000a p1085 tp1086 a(g6 V{ tp1087 a(g41 Vdata p1088 tp1089 a(g6 V, tp1090 a(g208 V tp1091 a(g96 VSocket p1092 tp1093 a(g6 V, tp1094 a(g208 V tp1095 a(g96 VData p1096 tp1097 a(g6 V} tp1098 a(g208 V tp1099 a(g353 V- tp1100 a(g353 V> tp1101 a(g208 V\u000a p1102 tp1103 a(g96 VPlayer p1104 tp1105 a(g208 V tp1106 a(g353 V= tp1107 a(g208 V tp1108 a(g41 Vfind_player p1109 tp1110 a(g6 V( tp1111 a(g96 VSocket p1112 tp1113 a(g6 V, tp1114 a(g208 V tp1115 a(g96 VPlayers p1116 tp1117 a(g6 V) tp1118 a(g6 V, tp1119 a(g208 V\u000a p1120 tp1121 a(g96 VNewPlayers p1122 tp1123 a(g208 V tp1124 a(g353 V= tp1125 a(g208 V tp1126 a(g41 Vparse_data p1127 tp1128 a(g6 V( tp1129 a(g96 VPlayer p1130 tp1131 a(g6 V, tp1132 a(g208 V tp1133 a(g96 VPlayers p1134 tp1135 a(g6 V, tp1136 a(g208 V tp1137 a(g96 VData p1138 tp1139 a(g6 V) tp1140 a(g6 V, tp1141 a(g208 V\u000a p1142 tp1143 a(g96 VNewPlayer p1144 tp1145 a(g208 V tp1146 a(g353 V= tp1147 a(g208 V tp1148 a(g41 Vfind_player p1149 tp1150 a(g6 V( tp1151 a(g96 VSocket p1152 tp1153 a(g6 V, tp1154 a(g208 V tp1155 a(g96 VNewPlayers p1156 tp1157 a(g6 V) tp1158 a(g6 V, tp1159 a(g208 V\u000a p1160 tp1161 a(g41 Vsend_prompt p1162 tp1163 a(g6 V( tp1164 a(g96 VNewPlayer p1165 tp1166 a(g6 V) tp1167 a(g208 V\u000a p1168 tp1169 a(g134 Vend p1170 tp1171 a(g6 V, tp1172 a(g208 V\u000a p1173 tp1174 a(g41 Vmaintain_clients p1175 tp1176 a(g6 V( tp1177 a(g96 VNewPlayers p1178 tp1179 a(g6 V) tp1180 a(g6 V. tp1181 a(g208 V\u000a\u000a p1182 tp1183 a(g20 V%% find_player is a utility function to get a player record associated\u000a p1184 tp1185 a(g20 V%% with a particular socket out of the player list.\u000a p1186 tp1187 a(g208 V\u000a tp1188 a(g44 Vfind_player p1189 tp1190 a(g6 V( tp1191 a(g96 VSocket p1192 tp1193 a(g6 V, tp1194 a(g208 V tp1195 a(g96 VPlayers p1196 tp1197 a(g6 V) tp1198 a(g208 V tp1199 a(g353 V- tp1200 a(g353 V> tp1201 a(g208 V\u000a p1202 tp1203 a(g6 V{ tp1204 a(g41 Vvalue p1205 tp1206 a(g6 V, tp1207 a(g208 V tp1208 a(g96 VPlayer p1209 tp1210 a(g6 V} tp1211 a(g208 V tp1212 a(g353 V= tp1213 a(g208 V tp1214 a(g122 Vlists p1215 tp1216 a(g6 V: tp1217 a(g41 Vkeysearch p1218 tp1219 a(g6 V( tp1220 a(g96 VSocket p1221 tp1222 a(g6 V, tp1223 a(g208 V tp1224 a(g68 V#player.socket p1225 tp1226 a(g6 V, tp1227 a(g208 V tp1228 a(g96 VPlayers p1229 tp1230 a(g6 V) tp1231 a(g6 V, tp1232 a(g208 V\u000a p1233 tp1234 a(g96 VPlayer p1235 tp1236 a(g6 V. tp1237 a(g208 V\u000a\u000a p1238 tp1239 a(g20 V%% delete_player returns the player list without the given player. It\u000a p1240 tp1241 a(g20 V%% deletes the player from the list based on the socket rather than\u000a p1242 tp1243 a(g20 V%% the whole record because the list might hold a different version.\u000a p1244 tp1245 a(g208 V\u000a tp1246 a(g44 Vdelete_player p1247 tp1248 a(g6 V( tp1249 a(g96 VPlayer p1250 tp1251 a(g6 V, tp1252 a(g208 V tp1253 a(g96 VPlayers p1254 tp1255 a(g6 V) tp1256 a(g208 V tp1257 a(g353 V- tp1258 a(g353 V> tp1259 a(g208 V\u000a p1260 tp1261 a(g122 Vlists p1262 tp1263 a(g6 V: tp1264 a(g41 Vkeydelete p1265 tp1266 a(g6 V( tp1267 a(g96 VPlayer p1268 tp1269 a(g68 V#player.socket p1270 tp1271 a(g6 V, tp1272 a(g208 V tp1273 a(g68 V#player.socket p1274 tp1275 a(g6 V, tp1276 a(g208 V tp1277 a(g96 VPlayers p1278 tp1279 a(g6 V) tp1280 a(g6 V. tp1281 a(g208 V\u000a\u000a p1282 tp1283 a(g20 V%% Sends an appropriate prompt to the player. Currently the only\u000a p1284 tp1285 a(g20 V%% prompt we send is the initial "Name: " when the player connects.\u000a p1286 tp1287 a(g208 V\u000a tp1288 a(g44 Vsend_prompt p1289 tp1290 a(g6 V( tp1291 a(g96 VPlayer p1292 tp1293 a(g6 V) tp1294 a(g208 V tp1295 a(g353 V- tp1296 a(g353 V> tp1297 a(g208 V\u000a p1298 tp1299 a(g134 Vcase p1300 tp1301 a(g208 V tp1302 a(g96 VPlayer p1303 tp1304 a(g68 V#player.mode p1305 tp1306 a(g208 V tp1307 a(g134 Vof p1308 tp1309 a(g208 V\u000a p1310 tp1311 a(g41 Vconnect p1312 tp1313 a(g208 V tp1314 a(g353 V- tp1315 a(g353 V> tp1316 a(g208 V\u000a p1317 tp1318 a(g122 Vgen_tcp p1319 tp1320 a(g6 V: tp1321 a(g80 Vsend p1322 tp1323 a(g6 V( tp1324 a(g96 VPlayer p1325 tp1326 a(g68 V#player.socket p1327 tp1328 a(g6 V, tp1329 a(g208 V tp1330 a(g236 V" tp1331 a(g236 VName: p1332 tp1333 a(g236 V" tp1334 a(g6 V) tp1335 a(g6 V; tp1336 a(g208 V\u000a p1337 tp1338 a(g41 Vactive p1339 tp1340 a(g208 V tp1341 a(g353 V- tp1342 a(g353 V> tp1343 a(g208 V\u000a p1344 tp1345 a(g41 Vok p1346 tp1347 a(g208 V\u000a p1348 tp1349 a(g134 Vend p1350 tp1351 a(g6 V. tp1352 a(g208 V\u000a\u000a p1353 tp1354 a(g20 V%% Sends the given data to all players in active mode.\u000a p1355 tp1356 a(g208 V\u000a tp1357 a(g44 Vsend_to_active p1358 tp1359 a(g6 V( tp1360 a(g96 VPrefix p1361 tp1362 a(g6 V, tp1363 a(g208 V tp1364 a(g96 VPlayers p1365 tp1366 a(g6 V, tp1367 a(g208 V tp1368 a(g96 VData p1369 tp1370 a(g6 V) tp1371 a(g208 V tp1372 a(g353 V- tp1373 a(g353 V> tp1374 a(g208 V\u000a p1375 tp1376 a(g96 VActivePlayers p1377 tp1378 a(g208 V tp1379 a(g353 V= tp1380 a(g208 V tp1381 a(g122 Vlists p1382 tp1383 a(g6 V: tp1384 a(g41 Vfilter p1385 tp1386 a(g6 V( tp1387 a(g134 Vfun p1388 tp1389 a(g6 V( tp1390 a(g96 VP tp1391 a(g6 V) tp1392 a(g208 V tp1393 a(g353 V- tp1394 a(g353 V> tp1395 a(g208 V tp1396 a(g96 VP tp1397 a(g68 V#player.mode p1398 tp1399 a(g208 V tp1400 a(g353 V= tp1401 a(g353 V= tp1402 a(g208 V tp1403 a(g41 Vactive p1404 tp1405 a(g208 V tp1406 a(g134 Vend p1407 tp1408 a(g6 V, tp1409 a(g208 V\u000a p1410 tp1411 a(g96 VPlayers p1412 tp1413 a(g6 V) tp1414 a(g6 V, tp1415 a(g208 V\u000a p1416 tp1417 a(g122 Vlists p1418 tp1419 a(g6 V: tp1420 a(g41 Vforeach p1421 tp1422 a(g6 V( tp1423 a(g134 Vfun p1424 tp1425 a(g6 V( tp1426 a(g96 VP tp1427 a(g6 V) tp1428 a(g208 V tp1429 a(g353 V- tp1430 a(g353 V> tp1431 a(g208 V tp1432 a(g122 Vgen_tcp p1433 tp1434 a(g6 V: tp1435 a(g80 Vsend p1436 tp1437 a(g6 V( tp1438 a(g96 VP tp1439 a(g68 V#player.socket p1440 tp1441 a(g6 V, tp1442 a(g208 V tp1443 a(g96 VPrefix p1444 tp1445 a(g208 V tp1446 a(g353 V+ tp1447 a(g353 V+ tp1448 a(g208 V tp1449 a(g96 VData p1450 tp1451 a(g6 V) tp1452 a(g208 V tp1453 a(g134 Vend p1454 tp1455 a(g6 V, tp1456 a(g208 V\u000a p1457 tp1458 a(g96 VActivePlayers p1459 tp1460 a(g6 V) tp1461 a(g6 V, tp1462 a(g208 V\u000a p1463 tp1464 a(g41 Vok p1465 tp1466 a(g6 V. tp1467 a(g208 V\u000a\u000a p1468 tp1469 a(g20 V%% We don't really do much parsing, but that will probably change as\u000a p1470 tp1471 a(g20 V%% more features are added. Currently this handles naming the player\u000a p1472 tp1473 a(g20 V%% when he first connects and treats everything else as a message to\u000a p1474 tp1475 a(g20 V%% send.\u000a p1476 tp1477 a(g208 V\u000a tp1478 a(g44 Vparse_data p1479 tp1480 a(g6 V( tp1481 a(g96 VPlayer p1482 tp1483 a(g6 V, tp1484 a(g208 V tp1485 a(g96 VPlayers p1486 tp1487 a(g6 V, tp1488 a(g208 V tp1489 a(g96 VData p1490 tp1491 a(g6 V) tp1492 a(g208 V tp1493 a(g353 V- tp1494 a(g353 V> tp1495 a(g208 V\u000a p1496 tp1497 a(g134 Vcase p1498 tp1499 a(g208 V tp1500 a(g96 VPlayer p1501 tp1502 a(g68 V#player.mode p1503 tp1504 a(g208 V tp1505 a(g134 Vof p1506 tp1507 a(g208 V\u000a p1508 tp1509 a(g41 Vactive p1510 tp1511 a(g208 V tp1512 a(g353 V- tp1513 a(g353 V> tp1514 a(g208 V\u000a p1515 tp1516 a(g41 Vsend_to_active p1517 tp1518 a(g6 V( tp1519 a(g96 VPlayer p1520 tp1521 a(g68 V#player.name p1522 tp1523 a(g208 V tp1524 a(g353 V+ tp1525 a(g353 V+ tp1526 a(g208 V tp1527 a(g236 V" tp1528 a(g236 V: p1529 tp1530 a(g236 V" tp1531 a(g6 V, tp1532 a(g208 V\u000a p1533 tp1534 a(g41 Vdelete_player p1535 tp1536 a(g6 V( tp1537 a(g96 VPlayer p1538 tp1539 a(g6 V, tp1540 a(g208 V tp1541 a(g96 VPlayers p1542 tp1543 a(g6 V) tp1544 a(g6 V, tp1545 a(g208 V tp1546 a(g96 VData p1547 tp1548 a(g6 V) tp1549 a(g6 V, tp1550 a(g208 V\u000a p1551 tp1552 a(g96 VPlayers p1553 tp1554 a(g6 V; tp1555 a(g208 V\u000a p1556 tp1557 a(g41 Vconnect p1558 tp1559 a(g208 V tp1560 a(g353 V- tp1561 a(g353 V> tp1562 a(g208 V\u000a p1563 tp1564 a(g96 VUPlayer p1565 tp1566 a(g208 V tp1567 a(g353 V= tp1568 a(g208 V tp1569 a(g96 VPlayer p1570 tp1571 a(g68 V#player p1572 tp1573 a(g6 V{ tp1574 a(g41 Vname p1575 tp1576 a(g353 V= tp1577 a(g41 Vbogostrip p1578 tp1579 a(g6 V( tp1580 a(g96 VData p1581 tp1582 a(g6 V) tp1583 a(g6 V, tp1584 a(g208 V tp1585 a(g41 Vmode p1586 tp1587 a(g353 V= tp1588 a(g41 Vactive p1589 tp1590 a(g6 V} tp1591 a(g6 V, tp1592 a(g208 V\u000a p1593 tp1594 a(g6 V[ tp1595 a(g96 VUPlayer p1596 tp1597 a(g208 V tp1598 a(g6 V| tp1599 a(g208 V tp1600 a(g41 Vdelete_player p1601 tp1602 a(g6 V( tp1603 a(g96 VPlayer p1604 tp1605 a(g6 V, tp1606 a(g208 V tp1607 a(g96 VPlayers p1608 tp1609 a(g6 V) tp1610 a(g6 V] tp1611 a(g208 V\u000a p1612 tp1613 a(g134 Vend p1614 tp1615 a(g6 V. tp1616 a(g208 V\u000a\u000a p1617 tp1618 a(g20 V%% Utility methods to clean up the name before we apply it. Called\u000a p1619 tp1620 a(g20 V%% bogostrip rather than strip because it returns the first continuous\u000a p1621 tp1622 a(g20 V%% block of non-matching characters rather stripping matching\u000a p1623 tp1624 a(g20 V%% characters off the front and back.\u000a p1625 tp1626 a(g208 V\u000a tp1627 a(g44 Vbogostrip p1628 tp1629 a(g6 V( tp1630 a(g96 VString p1631 tp1632 a(g6 V) tp1633 a(g208 V tp1634 a(g353 V- tp1635 a(g353 V> tp1636 a(g208 V\u000a p1637 tp1638 a(g41 Vbogostrip p1639 tp1640 a(g6 V( tp1641 a(g96 VString p1642 tp1643 a(g6 V, tp1644 a(g208 V tp1645 a(g236 V" tp1646 a(g262 V\u005cr p1647 tp1648 a(g262 V\u005cn p1649 tp1650 a(g262 V\u005ct p1651 tp1652 a(g236 V tp1653 a(g236 V" tp1654 a(g6 V) tp1655 a(g6 V. tp1656 a(g208 V\u000a\u000a p1657 tp1658 a(g44 Vbogostrip p1659 tp1660 a(g6 V( tp1661 a(g96 VString p1662 tp1663 a(g6 V, tp1664 a(g208 V tp1665 a(g96 VChars p1666 tp1667 a(g6 V) tp1668 a(g208 V tp1669 a(g353 V- tp1670 a(g353 V> tp1671 a(g208 V\u000a p1672 tp1673 a(g96 VLStripped p1674 tp1675 a(g208 V tp1676 a(g353 V= tp1677 a(g208 V tp1678 a(g122 Vstring p1679 tp1680 a(g6 V: tp1681 a(g41 Vsubstr p1682 tp1683 a(g6 V( tp1684 a(g96 VString p1685 tp1686 a(g6 V, tp1687 a(g208 V tp1688 a(g122 Vstring p1689 tp1690 a(g6 V: tp1691 a(g41 Vspan p1692 tp1693 a(g6 V( tp1694 a(g96 VString p1695 tp1696 a(g6 V, tp1697 a(g208 V tp1698 a(g96 VChars p1699 tp1700 a(g6 V) tp1701 a(g353 V+ tp1702 a(g328 V1 tp1703 a(g6 V) tp1704 a(g6 V, tp1705 a(g208 V\u000a p1706 tp1707 a(g122 Vstring p1708 tp1709 a(g6 V: tp1710 a(g41 Vsubstr p1711 tp1712 a(g6 V( tp1713 a(g96 VLStripped p1714 tp1715 a(g6 V, tp1716 a(g208 V tp1717 a(g328 V1 tp1718 a(g6 V, tp1719 a(g208 V tp1720 a(g122 Vstring p1721 tp1722 a(g6 V: tp1723 a(g41 Vcspan p1724 tp1725 a(g6 V( tp1726 a(g96 VLStripped p1727 tp1728 a(g6 V, tp1729 a(g208 V tp1730 a(g96 VChars p1731 tp1732 a(g6 V) tp1733 a(g6 V) tp1734 a(g6 V. tp1735 a(g208 V\u000a\u000a p1736 tp1737 a(g20 V%% Here we have some extra code to test other bits of pygments' Erlang\u000a p1738 tp1739 a(g20 V%% lexer.\u000a p1740 tp1741 a(g208 V\u000a tp1742 a(g44 Vget_timestamp p1743 tp1744 a(g6 V( tp1745 a(g6 V) tp1746 a(g208 V tp1747 a(g353 V- tp1748 a(g353 V> tp1749 a(g208 V\u000a p1750 tp1751 a(g6 V{ tp1752 a(g6 V{ tp1753 a(g96 VYear p1754 tp1755 a(g6 V, tp1756 a(g96 VMonth p1757 tp1758 a(g6 V, tp1759 a(g96 VDay p1760 tp1761 a(g6 V} tp1762 a(g6 V, tp1763 a(g6 V{ tp1764 a(g96 VHour p1765 tp1766 a(g6 V, tp1767 a(g96 VMin p1768 tp1769 a(g6 V, tp1770 a(g96 VSec p1771 tp1772 a(g6 V} tp1773 a(g6 V} tp1774 a(g208 V tp1775 a(g353 V= tp1776 a(g208 V tp1777 a(g122 Verlang p1778 tp1779 a(g6 V: tp1780 a(g41 Vuniversaltime p1781 tp1782 a(g6 V( tp1783 a(g6 V) tp1784 a(g6 V, tp1785 a(g208 V\u000a p1786 tp1787 a(g122 Vlists p1788 tp1789 a(g6 V: tp1790 a(g41 Vflatten p1791 tp1792 a(g6 V( tp1793 a(g122 Vio_lib p1794 tp1795 a(g6 V: tp1796 a(g41 Vformat p1797 tp1798 a(g6 V( tp1799 a(g208 V\u000a p1800 tp1801 a(g236 V" tp1802 a(g243 V~4.10.0B p1803 tp1804 a(g236 V- tp1805 a(g243 V~2.10.0B p1806 tp1807 a(g236 V- tp1808 a(g243 V~2.10.0B p1809 tp1810 a(g236 VT tp1811 a(g243 V~2.10.0B p1812 tp1813 a(g236 V: tp1814 a(g243 V~2.10.0B p1815 tp1816 a(g236 V: tp1817 a(g243 V~2.10.0B p1818 tp1819 a(g236 VZ tp1820 a(g236 V" tp1821 a(g6 V, tp1822 a(g208 V\u000a p1823 tp1824 a(g6 V[ tp1825 a(g96 VYear p1826 tp1827 a(g6 V, tp1828 a(g208 V tp1829 a(g96 VMonth p1830 tp1831 a(g6 V, tp1832 a(g208 V tp1833 a(g96 VDay p1834 tp1835 a(g6 V, tp1836 a(g208 V tp1837 a(g96 VHour p1838 tp1839 a(g6 V, tp1840 a(g208 V tp1841 a(g96 VMin p1842 tp1843 a(g6 V, tp1844 a(g208 V tp1845 a(g96 VSec p1846 tp1847 a(g6 V] tp1848 a(g6 V) tp1849 a(g6 V) tp1850 a(g6 V. tp1851 a(g208 V\u000a\u000a p1852 tp1853 a(g44 Va_binary p1854 tp1855 a(g6 V( tp1856 a(g6 V) tp1857 a(g208 V tp1858 a(g353 V- tp1859 a(g353 V> tp1860 a(g208 V\u000a p1861 tp1862 a(g353 V< tp1863 a(g353 V< tp1864 a(g208 V tp1865 a(g328 V100 p1866 tp1867 a(g6 V: tp1868 a(g328 V16 p1869 tp1870 a(g353 V/ tp1871 a(g41 Vinteger p1872 tp1873 a(g6 V, tp1874 a(g208 V tp1875 a(g328 V16#7f p1876 tp1877 a(g208 V tp1878 a(g353 V> tp1879 a(g353 V> tp1880 a(g6 V. tp1881 a(g208 V\u000a\u000a p1882 tp1883 a(g44 Va_list_comprehension p1884 tp1885 a(g6 V( tp1886 a(g6 V) tp1887 a(g208 V tp1888 a(g353 V- tp1889 a(g353 V> tp1890 a(g208 V\u000a p1891 tp1892 a(g6 V[ tp1893 a(g96 VX tp1894 a(g353 V* tp1895 a(g328 V2 tp1896 a(g208 V tp1897 a(g6 V| tp1898 a(g6 V| tp1899 a(g208 V tp1900 a(g96 VX tp1901 a(g208 V tp1902 a(g353 V< tp1903 a(g353 V- tp1904 a(g208 V tp1905 a(g6 V[ tp1906 a(g328 V1 tp1907 a(g6 V, tp1908 a(g328 V2 tp1909 a(g6 V, tp1910 a(g328 V3 tp1911 a(g6 V] tp1912 a(g6 V] tp1913 a(g6 V. tp1914 a(g208 V\u000a\u000a p1915 tp1916 a(g44 Vmap p1917 tp1918 a(g6 V( tp1919 a(g96 VFun p1920 tp1921 a(g6 V, tp1922 a(g208 V tp1923 a(g6 V[ tp1924 a(g96 VH tp1925 a(g6 V| tp1926 a(g96 VT tp1927 a(g6 V] tp1928 a(g6 V) tp1929 a(g208 V tp1930 a(g353 V- tp1931 a(g353 V> tp1932 a(g208 V\u000a p1933 tp1934 a(g6 V[ tp1935 a(g96 VFun p1936 tp1937 a(g6 V( tp1938 a(g96 VH tp1939 a(g6 V) tp1940 a(g208 V tp1941 a(g6 V| tp1942 a(g208 V tp1943 a(g41 Vmap p1944 tp1945 a(g6 V( tp1946 a(g96 VFun p1947 tp1948 a(g6 V, tp1949 a(g208 V tp1950 a(g96 VT tp1951 a(g6 V) tp1952 a(g6 V] tp1953 a(g6 V; tp1954 a(g208 V\u000a\u000a p1955 tp1956 a(g44 Vmap p1957 tp1958 a(g6 V( tp1959 a(g96 VFun p1960 tp1961 a(g6 V, tp1962 a(g208 V tp1963 a(g6 V[ tp1964 a(g6 V] tp1965 a(g6 V) tp1966 a(g208 V tp1967 a(g353 V- tp1968 a(g353 V> tp1969 a(g208 V\u000a p1970 tp1971 a(g6 V[ tp1972 a(g6 V] tp1973 a(g6 V. tp1974 a(g208 V\u000a\u000a p1975 tp1976 a(g20 V%% pmap, just because it's cool.\u000a p1977 tp1978 a(g208 V\u000a tp1979 a(g44 Vpmap p1980 tp1981 a(g6 V( tp1982 a(g96 VF tp1983 a(g6 V, tp1984 a(g208 V tp1985 a(g96 VL tp1986 a(g6 V) tp1987 a(g208 V tp1988 a(g353 V- tp1989 a(g353 V> tp1990 a(g208 V\u000a p1991 tp1992 a(g96 VParent p1993 tp1994 a(g208 V tp1995 a(g353 V= tp1996 a(g208 V tp1997 a(g41 Vself p1998 tp1999 a(g6 V( tp2000 a(g6 V) tp2001 a(g6 V, tp2002 a(g208 V\u000a p2003 tp2004 a(g6 V[ tp2005 a(g134 Vreceive p2006 tp2007 a(g208 V tp2008 a(g6 V{ tp2009 a(g96 VPid p2010 tp2011 a(g6 V, tp2012 a(g208 V tp2013 a(g96 VResult p2014 tp2015 a(g6 V} tp2016 a(g208 V tp2017 a(g353 V- tp2018 a(g353 V> tp2019 a(g208 V\u000a p2020 tp2021 a(g96 VResult p2022 tp2023 a(g208 V\u000a p2024 tp2025 a(g134 Vend p2026 tp2027 a(g208 V tp2028 a(g6 V| tp2029 a(g6 V| tp2030 a(g208 V tp2031 a(g96 VPid p2032 tp2033 a(g208 V tp2034 a(g353 V< tp2035 a(g353 V- tp2036 a(g208 V tp2037 a(g6 V[ tp2038 a(g80 Vspawn p2039 tp2040 a(g6 V( tp2041 a(g134 Vfun p2042 tp2043 a(g6 V( tp2044 a(g6 V) tp2045 a(g208 V tp2046 a(g353 V- tp2047 a(g353 V> tp2048 a(g208 V\u000a p2049 tp2050 a(g96 VParent p2051 tp2052 a(g208 V tp2053 a(g353 V! tp2054 a(g208 V tp2055 a(g6 V{ tp2056 a(g41 Vself p2057 tp2058 a(g6 V( tp2059 a(g6 V) tp2060 a(g6 V, tp2061 a(g208 V tp2062 a(g96 VF tp2063 a(g6 V( tp2064 a(g96 VX tp2065 a(g6 V) tp2066 a(g6 V} tp2067 a(g208 V \u000a p2068 tp2069 a(g134 Vend p2070 tp2071 a(g6 V) tp2072 a(g208 V tp2073 a(g6 V| tp2074 a(g6 V| tp2075 a(g208 V tp2076 a(g96 VX tp2077 a(g208 V tp2078 a(g353 V< tp2079 a(g353 V- tp2080 a(g208 V tp2081 a(g96 VL tp2082 a(g6 V] tp2083 a(g6 V] tp2084 a(g6 V. tp2085 a(g208 V\u000a tp2086 a.