From fa19d70be4e5896b25c9945fddfbdc7f98038100 Mon Sep 17 00:00:00 2001 From: Ethan Lee Date: Wed, 1 Feb 2012 00:49:44 -0500 Subject: [PATCH] Hello World! --- .classpath | 12 + .project | 17 + bin/jake2/Defines.class | Bin 0 -> 35677 bytes bin/jake2/Globals.class | Bin 0 -> 8876 bytes bin/jake2/Jake2.class | Bin 0 -> 1530 bytes bin/jake2/client/CL$1.class | Bin 0 -> 1042 bytes bin/jake2/client/CL$10.class | Bin 0 -> 1361 bytes bin/jake2/client/CL$11.class | Bin 0 -> 1979 bytes bin/jake2/client/CL$12.class | Bin 0 -> 1188 bytes bin/jake2/client/CL$13.class | Bin 0 -> 640 bytes bin/jake2/client/CL$14.class | Bin 0 -> 554 bytes bin/jake2/client/CL$15.class | Bin 0 -> 1225 bytes bin/jake2/client/CL$2.class | Bin 0 -> 3475 bytes bin/jake2/client/CL$3.class | Bin 0 -> 1333 bytes bin/jake2/client/CL$4.class | Bin 0 -> 820 bytes bin/jake2/client/CL$5.class | Bin 0 -> 497 bytes bin/jake2/client/CL$6.class | Bin 0 -> 1147 bytes bin/jake2/client/CL$7.class | Bin 0 -> 2142 bytes bin/jake2/client/CL$8.class | Bin 0 -> 526 bytes bin/jake2/client/CL$9.class | Bin 0 -> 806 bytes bin/jake2/client/CL$cheatvar_t.class | Bin 0 -> 432 bytes bin/jake2/client/CL.class | Bin 0 -> 22717 bytes bin/jake2/client/CL_ents.class | Bin 0 -> 20092 bytes bin/jake2/client/CL_fx$cdlight_t.class | Bin 0 -> 653 bytes bin/jake2/client/CL_fx$clightstyle_t.class | Bin 0 -> 653 bytes bin/jake2/client/CL_fx.class | Bin 0 -> 29324 bytes bin/jake2/client/CL_input$1.class | Bin 0 -> 509 bytes bin/jake2/client/CL_input$10.class | Bin 0 -> 497 bytes bin/jake2/client/CL_input$11.class | Bin 0 -> 495 bytes bin/jake2/client/CL_input$12.class | Bin 0 -> 494 bytes bin/jake2/client/CL_input$13.class | Bin 0 -> 492 bytes bin/jake2/client/CL_input$14.class | Bin 0 -> 496 bytes bin/jake2/client/CL_input$15.class | Bin 0 -> 494 bytes bin/jake2/client/CL_input$16.class | Bin 0 -> 498 bytes bin/jake2/client/CL_input$17.class | Bin 0 -> 496 bytes bin/jake2/client/CL_input$18.class | Bin 0 -> 496 bytes bin/jake2/client/CL_input$19.class | Bin 0 -> 494 bytes bin/jake2/client/CL_input$2.class | Bin 0 -> 490 bytes bin/jake2/client/CL_input$20.class | Bin 0 -> 498 bytes bin/jake2/client/CL_input$21.class | Bin 0 -> 496 bytes bin/jake2/client/CL_input$22.class | Bin 0 -> 499 bytes bin/jake2/client/CL_input$23.class | Bin 0 -> 497 bytes bin/jake2/client/CL_input$24.class | Bin 0 -> 495 bytes bin/jake2/client/CL_input$25.class | Bin 0 -> 493 bytes bin/jake2/client/CL_input$26.class | Bin 0 -> 496 bytes bin/jake2/client/CL_input$27.class | Bin 0 -> 494 bytes bin/jake2/client/CL_input$28.class | Bin 0 -> 493 bytes bin/jake2/client/CL_input$29.class | Bin 0 -> 491 bytes bin/jake2/client/CL_input$3.class | Bin 0 -> 488 bytes bin/jake2/client/CL_input$30.class | Bin 0 -> 493 bytes bin/jake2/client/CL_input$31.class | Bin 0 -> 495 bytes bin/jake2/client/CL_input$32.class | Bin 0 -> 493 bytes bin/jake2/client/CL_input$4.class | Bin 0 -> 492 bytes bin/jake2/client/CL_input$5.class | Bin 0 -> 490 bytes bin/jake2/client/CL_input$6.class | Bin 0 -> 492 bytes bin/jake2/client/CL_input$7.class | Bin 0 -> 490 bytes bin/jake2/client/CL_input$8.class | Bin 0 -> 493 bytes bin/jake2/client/CL_input$9.class | Bin 0 -> 491 bytes bin/jake2/client/CL_input.class | Bin 0 -> 12755 bytes bin/jake2/client/CL_inv.class | Bin 0 -> 3603 bytes bin/jake2/client/CL_newfx.class | Bin 0 -> 11744 bytes bin/jake2/client/CL_parse$1.class | Bin 0 -> 1972 bytes bin/jake2/client/CL_parse.class | Bin 0 -> 13968 bytes bin/jake2/client/CL_pred$1.class | Bin 0 -> 649 bytes bin/jake2/client/CL_pred$2.class | Bin 0 -> 602 bytes bin/jake2/client/CL_pred.class | Bin 0 -> 7136 bytes bin/jake2/client/CL_tent$1.class | Bin 0 -> 672 bytes bin/jake2/client/CL_tent$2.class | Bin 0 -> 664 bytes bin/jake2/client/CL_tent$3.class | Bin 0 -> 660 bytes bin/jake2/client/CL_tent$beam_t.class | Bin 0 -> 770 bytes bin/jake2/client/CL_tent$explosion_t.class | Bin 0 -> 794 bytes bin/jake2/client/CL_tent$laser_t.class | Bin 0 -> 583 bytes bin/jake2/client/CL_tent.class | Bin 0 -> 25774 bytes bin/jake2/client/CL_view.class | Bin 0 -> 4701 bytes bin/jake2/client/Console$1.class | Bin 0 -> 1367 bytes bin/jake2/client/Console$2.class | Bin 0 -> 615 bytes bin/jake2/client/Console$3.class | Bin 0 -> 2357 bytes bin/jake2/client/Console$4.class | Bin 0 -> 785 bytes bin/jake2/client/Console$5.class | Bin 0 -> 593 bytes bin/jake2/client/Console$6.class | Bin 0 -> 593 bytes bin/jake2/client/Console.class | Bin 0 -> 8621 bytes bin/jake2/client/Key$1.class | Bin 0 -> 454 bytes bin/jake2/client/Key$2.class | Bin 0 -> 456 bytes bin/jake2/client/Key$3.class | Bin 0 -> 459 bytes bin/jake2/client/Key$4.class | Bin 0 -> 458 bytes bin/jake2/client/Key.class | Bin 0 -> 13305 bytes bin/jake2/client/M$1.class | Bin 0 -> 1447 bytes bin/jake2/client/M$2.class | Bin 0 -> 761 bytes bin/jake2/client/M$3.class | Bin 0 -> 1225 bytes bin/jake2/client/M$4.class | Bin 0 -> 1089 bytes bin/jake2/client/M.class | Bin 0 -> 8720 bytes bin/jake2/client/Menu$1.class | Bin 0 -> 457 bytes bin/jake2/client/Menu$10.class | Bin 0 -> 464 bytes bin/jake2/client/Menu$100.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$101.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$102.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$103.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$104.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$105.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$106.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$107.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$108.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$109.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$11.class | Bin 0 -> 461 bytes bin/jake2/client/Menu$110.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$111.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$112.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$113.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$114.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$115.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$116.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$117.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$118.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$119.class | Bin 0 -> 494 bytes bin/jake2/client/Menu$12.class | Bin 0 -> 465 bytes bin/jake2/client/Menu$120.class | Bin 0 -> 532 bytes bin/jake2/client/Menu$121.class | Bin 0 -> 583 bytes bin/jake2/client/Menu$122.class | Bin 0 -> 583 bytes bin/jake2/client/Menu$123.class | Bin 0 -> 583 bytes bin/jake2/client/Menu$124.class | Bin 0 -> 583 bytes bin/jake2/client/Menu$125.class | Bin 0 -> 583 bytes bin/jake2/client/Menu$126.class | Bin 0 -> 506 bytes bin/jake2/client/Menu$127.class | Bin 0 -> 544 bytes bin/jake2/client/Menu$128.class | Bin 0 -> 500 bytes bin/jake2/client/Menu$129.class | Bin 0 -> 538 bytes bin/jake2/client/Menu$13.class | Bin 0 -> 465 bytes bin/jake2/client/Menu$130.class | Bin 0 -> 607 bytes bin/jake2/client/Menu$131.class | Bin 0 -> 583 bytes bin/jake2/client/Menu$132.class | Bin 0 -> 588 bytes bin/jake2/client/Menu$133.class | Bin 0 -> 582 bytes bin/jake2/client/Menu$134.class | Bin 0 -> 589 bytes bin/jake2/client/Menu$135.class | Bin 0 -> 500 bytes bin/jake2/client/Menu$136.class | Bin 0 -> 538 bytes bin/jake2/client/Menu$137.class | Bin 0 -> 480 bytes bin/jake2/client/Menu$138.class | Bin 0 -> 518 bytes bin/jake2/client/Menu$14.class | Bin 0 -> 467 bytes bin/jake2/client/Menu$15.class | Bin 0 -> 468 bytes bin/jake2/client/Menu$16.class | Bin 0 -> 470 bytes bin/jake2/client/Menu$17.class | Bin 0 -> 508 bytes bin/jake2/client/Menu$18.class | Bin 0 -> 466 bytes bin/jake2/client/Menu$19.class | Bin 0 -> 472 bytes bin/jake2/client/Menu$2.class | Bin 0 -> 495 bytes bin/jake2/client/Menu$20.class | Bin 0 -> 510 bytes bin/jake2/client/Menu$21.class | Bin 0 -> 472 bytes bin/jake2/client/Menu$22.class | Bin 0 -> 468 bytes bin/jake2/client/Menu$23.class | Bin 0 -> 469 bytes bin/jake2/client/Menu$24.class | Bin 0 -> 461 bytes bin/jake2/client/Menu$25.class | Bin 0 -> 478 bytes bin/jake2/client/Menu$26.class | Bin 0 -> 516 bytes bin/jake2/client/Menu$27.class | Bin 0 -> 582 bytes bin/jake2/client/Menu$28.class | Bin 0 -> 583 bytes bin/jake2/client/Menu$29.class | Bin 0 -> 576 bytes bin/jake2/client/Menu$3.class | Bin 0 -> 459 bytes bin/jake2/client/Menu$30.class | Bin 0 -> 496 bytes bin/jake2/client/Menu$31.class | Bin 0 -> 534 bytes bin/jake2/client/Menu$32.class | Bin 0 -> 680 bytes bin/jake2/client/Menu$33.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$34.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$35.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$36.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$37.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$38.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$39.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$4.class | Bin 0 -> 466 bytes bin/jake2/client/Menu$40.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$41.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$42.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$43.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$44.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$45.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$46.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$47.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$48.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$49.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$5.class | Bin 0 -> 463 bytes bin/jake2/client/Menu$50.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$51.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$52.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$53.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$54.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$55.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$56.class | Bin 0 -> 484 bytes bin/jake2/client/Menu$57.class | Bin 0 -> 522 bytes bin/jake2/client/Menu$58.class | Bin 0 -> 573 bytes bin/jake2/client/Menu$59.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$6.class | Bin 0 -> 501 bytes bin/jake2/client/Menu$60.class | Bin 0 -> 579 bytes bin/jake2/client/Menu$61.class | Bin 0 -> 571 bytes bin/jake2/client/Menu$62.class | Bin 0 -> 570 bytes bin/jake2/client/Menu$63.class | Bin 0 -> 572 bytes bin/jake2/client/Menu$64.class | Bin 0 -> 571 bytes bin/jake2/client/Menu$65.class | Bin 0 -> 571 bytes bin/jake2/client/Menu$66.class | Bin 0 -> 569 bytes bin/jake2/client/Menu$67.class | Bin 0 -> 570 bytes bin/jake2/client/Menu$68.class | Bin 0 -> 569 bytes bin/jake2/client/Menu$69.class | Bin 0 -> 578 bytes bin/jake2/client/Menu$7.class | Bin 0 -> 459 bytes bin/jake2/client/Menu$70.class | Bin 0 -> 582 bytes bin/jake2/client/Menu$71.class | Bin 0 -> 568 bytes bin/jake2/client/Menu$72.class | Bin 0 -> 488 bytes bin/jake2/client/Menu$73.class | Bin 0 -> 526 bytes bin/jake2/client/Menu$74.class | Bin 0 -> 500 bytes bin/jake2/client/Menu$75.class | Bin 0 -> 538 bytes bin/jake2/client/Menu$76.class | Bin 0 -> 488 bytes bin/jake2/client/Menu$77.class | Bin 0 -> 522 bytes bin/jake2/client/Menu$78.class | Bin 0 -> 566 bytes bin/jake2/client/Menu$79.class | Bin 0 -> 568 bytes bin/jake2/client/Menu$8.class | Bin 0 -> 462 bytes bin/jake2/client/Menu$80.class | Bin 0 -> 566 bytes bin/jake2/client/Menu$81.class | Bin 0 -> 566 bytes bin/jake2/client/Menu$82.class | Bin 0 -> 566 bytes bin/jake2/client/Menu$83.class | Bin 0 -> 565 bytes bin/jake2/client/Menu$84.class | Bin 0 -> 482 bytes bin/jake2/client/Menu$85.class | Bin 0 -> 520 bytes bin/jake2/client/Menu$86.class | Bin 0 -> 574 bytes bin/jake2/client/Menu$87.class | Bin 0 -> 490 bytes bin/jake2/client/Menu$88.class | Bin 0 -> 528 bytes bin/jake2/client/Menu$89.class | Bin 0 -> 574 bytes bin/jake2/client/Menu$9.class | Bin 0 -> 460 bytes bin/jake2/client/Menu$90.class | Bin 0 -> 490 bytes bin/jake2/client/Menu$91.class | Bin 0 -> 528 bytes bin/jake2/client/Menu$92.class | Bin 0 -> 575 bytes bin/jake2/client/Menu$93.class | Bin 0 -> 580 bytes bin/jake2/client/Menu$94.class | Bin 0 -> 574 bytes bin/jake2/client/Menu$95.class | Bin 0 -> 494 bytes bin/jake2/client/Menu$96.class | Bin 0 -> 532 bytes bin/jake2/client/Menu$97.class | Bin 0 -> 576 bytes bin/jake2/client/Menu$98.class | Bin 0 -> 574 bytes bin/jake2/client/Menu$99.class | Bin 0 -> 582 bytes bin/jake2/client/Menu$mcallback.class | Bin 0 -> 391 bytes bin/jake2/client/Menu$menuaction_s.class | Bin 0 -> 395 bytes bin/jake2/client/Menu$menucommon_s.class | Bin 0 -> 893 bytes bin/jake2/client/Menu$menufield_s.class | Bin 0 -> 524 bytes bin/jake2/client/Menu$menuframework_s.class | Bin 0 -> 731 bytes bin/jake2/client/Menu$menulayer_t.class | Bin 0 -> 440 bytes bin/jake2/client/Menu$menulist_s.class | Bin 0 -> 454 bytes bin/jake2/client/Menu$menuseparator_s.class | Bin 0 -> 404 bytes bin/jake2/client/Menu$menuslider_s.class | Bin 0 -> 472 bytes bin/jake2/client/Menu$playermodelinfo_s.class | Bin 0 -> 506 bytes bin/jake2/client/Menu.class | Bin 0 -> 82691 bytes bin/jake2/client/SCR$1.class | Bin 0 -> 457 bytes bin/jake2/client/SCR$2.class | Bin 0 -> 469 bytes bin/jake2/client/SCR$3.class | Bin 0 -> 465 bytes bin/jake2/client/SCR$4.class | Bin 0 -> 464 bytes bin/jake2/client/SCR$5.class | Bin 0 -> 466 bytes bin/jake2/client/SCR$6.class | Bin 0 -> 461 bytes bin/jake2/client/SCR$cinematics_t.class | Bin 0 -> 761 bytes bin/jake2/client/SCR$dirty_t.class | Bin 0 -> 683 bytes bin/jake2/client/SCR$graphsamp_t.class | Bin 0 -> 391 bytes bin/jake2/client/SCR.class | Bin 0 -> 29189 bytes bin/jake2/client/V$1.class | Bin 0 -> 760 bytes bin/jake2/client/V$2.class | Bin 0 -> 803 bytes bin/jake2/client/V$3.class | Bin 0 -> 1026 bytes bin/jake2/client/V$4.class | Bin 0 -> 906 bytes bin/jake2/client/V.class | Bin 0 -> 8634 bytes bin/jake2/client/VID$1.class | Bin 0 -> 465 bytes bin/jake2/client/VID$2.class | Bin 0 -> 583 bytes bin/jake2/client/VID$3.class | Bin 0 -> 587 bytes bin/jake2/client/VID$4.class | Bin 0 -> 587 bytes bin/jake2/client/VID$5.class | Bin 0 -> 1144 bytes bin/jake2/client/VID$6.class | Bin 0 -> 582 bytes bin/jake2/client/VID$7.class | Bin 0 -> 581 bytes bin/jake2/client/VID.class | Bin 0 -> 13907 bytes bin/jake2/client/centity_t.class | Bin 0 -> 639 bytes .../client/cl_sustain_t$ThinkAdapter.class | Bin 0 -> 439 bytes bin/jake2/client/cl_sustain_t.class | Bin 0 -> 928 bytes bin/jake2/client/client_state_t.class | Bin 0 -> 2885 bytes bin/jake2/client/client_static_t.class | Bin 0 -> 1000 bytes bin/jake2/client/clientinfo_t.class | Bin 0 -> 944 bytes bin/jake2/client/console_t.class | Bin 0 -> 552 bytes bin/jake2/client/cparticle_t.class | Bin 0 -> 521 bytes bin/jake2/client/dlight_t.class | Bin 0 -> 407 bytes bin/jake2/client/entity_t.class | Bin 0 -> 1296 bytes bin/jake2/client/frame_t.class | Bin 0 -> 1244 bytes bin/jake2/client/kbutton_t.class | Bin 0 -> 381 bytes bin/jake2/client/keyfunc_t.class | Bin 0 -> 315 bytes bin/jake2/client/lightstyle_t.class | Bin 0 -> 363 bytes bin/jake2/client/particle_t.class | Bin 0 -> 1176 bytes bin/jake2/client/refdef_t.class | Bin 0 -> 809 bytes bin/jake2/client/refexport_t.class | Bin 0 -> 1103 bytes bin/jake2/client/viddef_t.class | Bin 0 -> 312 bytes bin/jake2/client/vidmode_t.class | Bin 0 -> 521 bytes bin/jake2/client/vrect_t.class | Bin 0 -> 349 bytes bin/jake2/game/AIAdapter.class | Bin 0 -> 321 bytes bin/jake2/game/Cmd$1.class | Bin 0 -> 1122 bytes bin/jake2/game/Cmd$2.class | Bin 0 -> 1158 bytes bin/jake2/game/Cmd$3.class | Bin 0 -> 904 bytes bin/jake2/game/Cmd$4.class | Bin 0 -> 1609 bytes bin/jake2/game/Cmd$5.class | Bin 0 -> 470 bytes bin/jake2/game/Cmd$6.class | Bin 0 -> 1079 bytes bin/jake2/game/Cmd.class | Bin 0 -> 21704 bytes bin/jake2/game/EdictFindFilter.class | Bin 0 -> 476 bytes bin/jake2/game/EdictIterator.class | Bin 0 -> 377 bytes bin/jake2/game/EndianHandler.class | Bin 0 -> 1030 bytes bin/jake2/game/EntBlockedAdapter.class | Bin 0 -> 369 bytes bin/jake2/game/EntDieAdapter.class | Bin 0 -> 376 bytes bin/jake2/game/EntDodgeAdapter.class | Bin 0 -> 362 bytes bin/jake2/game/EntInteractAdapter.class | Bin 0 -> 373 bytes bin/jake2/game/EntPainAdapter.class | Bin 0 -> 359 bytes bin/jake2/game/EntThinkAdapter.class | Bin 0 -> 341 bytes bin/jake2/game/EntTouchAdapter.class | Bin 0 -> 405 bytes bin/jake2/game/EntUseAdapter.class | Bin 0 -> 373 bytes bin/jake2/game/GameAI$1.class | Bin 0 -> 1888 bytes bin/jake2/game/GameAI$10.class | Bin 0 -> 2146 bytes bin/jake2/game/GameAI$11.class | Bin 0 -> 1151 bytes bin/jake2/game/GameAI$12.class | Bin 0 -> 4757 bytes bin/jake2/game/GameAI$2.class | Bin 0 -> 778 bytes bin/jake2/game/GameAI$3.class | Bin 0 -> 1691 bytes bin/jake2/game/GameAI$4.class | Bin 0 -> 812 bytes bin/jake2/game/GameAI$5.class | Bin 0 -> 966 bytes bin/jake2/game/GameAI$6.class | Bin 0 -> 814 bytes bin/jake2/game/GameAI$7.class | Bin 0 -> 1009 bytes bin/jake2/game/GameAI$8.class | Bin 0 -> 825 bytes bin/jake2/game/GameAI$9.class | Bin 0 -> 1373 bytes bin/jake2/game/GameAI.class | Bin 0 -> 6203 bytes bin/jake2/game/GameBase$1.class | Bin 0 -> 728 bytes bin/jake2/game/GameBase$2.class | Bin 0 -> 685 bytes bin/jake2/game/GameBase$3.class | Bin 0 -> 651 bytes bin/jake2/game/GameBase.class | Bin 0 -> 12750 bytes bin/jake2/game/GameChase.class | Bin 0 -> 4170 bytes bin/jake2/game/GameCombat.class | Bin 0 -> 10956 bytes bin/jake2/game/GameFunc$1.class | Bin 0 -> 876 bytes bin/jake2/game/GameFunc$10.class | Bin 0 -> 1343 bytes bin/jake2/game/GameFunc$11.class | Bin 0 -> 1572 bytes bin/jake2/game/GameFunc$12.class | Bin 0 -> 904 bytes bin/jake2/game/GameFunc$13.class | Bin 0 -> 1307 bytes bin/jake2/game/GameFunc$14.class | Bin 0 -> 1013 bytes bin/jake2/game/GameFunc$15.class | Bin 0 -> 1225 bytes bin/jake2/game/GameFunc$16.class | Bin 0 -> 1386 bytes bin/jake2/game/GameFunc$17.class | Bin 0 -> 1852 bytes bin/jake2/game/GameFunc$18.class | Bin 0 -> 879 bytes bin/jake2/game/GameFunc$19.class | Bin 0 -> 1121 bytes bin/jake2/game/GameFunc$2.class | Bin 0 -> 1191 bytes bin/jake2/game/GameFunc$20.class | Bin 0 -> 1346 bytes bin/jake2/game/GameFunc$21.class | Bin 0 -> 1247 bytes bin/jake2/game/GameFunc$22.class | Bin 0 -> 874 bytes bin/jake2/game/GameFunc$23.class | Bin 0 -> 1104 bytes bin/jake2/game/GameFunc$24.class | Bin 0 -> 1027 bytes bin/jake2/game/GameFunc$25.class | Bin 0 -> 2818 bytes bin/jake2/game/GameFunc$26.class | Bin 0 -> 1427 bytes bin/jake2/game/GameFunc$27.class | Bin 0 -> 1200 bytes bin/jake2/game/GameFunc$28.class | Bin 0 -> 1744 bytes bin/jake2/game/GameFunc$29.class | Bin 0 -> 1412 bytes bin/jake2/game/GameFunc$3.class | Bin 0 -> 1354 bytes bin/jake2/game/GameFunc$30.class | Bin 0 -> 1421 bytes bin/jake2/game/GameFunc$31.class | Bin 0 -> 1369 bytes bin/jake2/game/GameFunc$32.class | Bin 0 -> 1796 bytes bin/jake2/game/GameFunc$33.class | Bin 0 -> 1801 bytes bin/jake2/game/GameFunc$34.class | Bin 0 -> 1153 bytes bin/jake2/game/GameFunc$35.class | Bin 0 -> 1437 bytes bin/jake2/game/GameFunc$36.class | Bin 0 -> 3772 bytes bin/jake2/game/GameFunc$37.class | Bin 0 -> 4009 bytes bin/jake2/game/GameFunc$38.class | Bin 0 -> 1491 bytes bin/jake2/game/GameFunc$39.class | Bin 0 -> 1908 bytes bin/jake2/game/GameFunc$4.class | Bin 0 -> 883 bytes bin/jake2/game/GameFunc$40.class | Bin 0 -> 2650 bytes bin/jake2/game/GameFunc$41.class | Bin 0 -> 1849 bytes bin/jake2/game/GameFunc$42.class | Bin 0 -> 1199 bytes bin/jake2/game/GameFunc$43.class | Bin 0 -> 1507 bytes bin/jake2/game/GameFunc$44.class | Bin 0 -> 1628 bytes bin/jake2/game/GameFunc$45.class | Bin 0 -> 901 bytes bin/jake2/game/GameFunc$46.class | Bin 0 -> 1038 bytes bin/jake2/game/GameFunc$47.class | Bin 0 -> 1137 bytes bin/jake2/game/GameFunc$48.class | Bin 0 -> 902 bytes bin/jake2/game/GameFunc$49.class | Bin 0 -> 1190 bytes bin/jake2/game/GameFunc$5.class | Bin 0 -> 1539 bytes bin/jake2/game/GameFunc$50.class | Bin 0 -> 1207 bytes bin/jake2/game/GameFunc$51.class | Bin 0 -> 889 bytes bin/jake2/game/GameFunc$52.class | Bin 0 -> 820 bytes bin/jake2/game/GameFunc$53.class | Bin 0 -> 959 bytes bin/jake2/game/GameFunc$54.class | Bin 0 -> 820 bytes bin/jake2/game/GameFunc$55.class | Bin 0 -> 889 bytes bin/jake2/game/GameFunc$56.class | Bin 0 -> 820 bytes bin/jake2/game/GameFunc$57.class | Bin 0 -> 894 bytes bin/jake2/game/GameFunc$58.class | Bin 0 -> 1480 bytes bin/jake2/game/GameFunc$59.class | Bin 0 -> 983 bytes bin/jake2/game/GameFunc$6.class | Bin 0 -> 1663 bytes bin/jake2/game/GameFunc$60.class | Bin 0 -> 2990 bytes bin/jake2/game/GameFunc$61.class | Bin 0 -> 769 bytes bin/jake2/game/GameFunc$62.class | Bin 0 -> 972 bytes bin/jake2/game/GameFunc$7.class | Bin 0 -> 1414 bytes bin/jake2/game/GameFunc$8.class | Bin 0 -> 1341 bytes bin/jake2/game/GameFunc$9.class | Bin 0 -> 1128 bytes bin/jake2/game/GameFunc.class | Bin 0 -> 16012 bytes bin/jake2/game/GameItemList.class | Bin 0 -> 10961 bytes bin/jake2/game/GameItems$1.class | Bin 0 -> 1270 bytes bin/jake2/game/GameItems$10.class | Bin 0 -> 1529 bytes bin/jake2/game/GameItems$11.class | Bin 0 -> 1344 bytes bin/jake2/game/GameItems$12.class | Bin 0 -> 1505 bytes bin/jake2/game/GameItems$13.class | Bin 0 -> 1867 bytes bin/jake2/game/GameItems$14.class | Bin 0 -> 2385 bytes bin/jake2/game/GameItems$15.class | Bin 0 -> 1500 bytes bin/jake2/game/GameItems$16.class | Bin 0 -> 1941 bytes bin/jake2/game/GameItems$17.class | Bin 0 -> 1143 bytes bin/jake2/game/GameItems$18.class | Bin 0 -> 1081 bytes bin/jake2/game/GameItems$19.class | Bin 0 -> 1871 bytes bin/jake2/game/GameItems$2.class | Bin 0 -> 2522 bytes bin/jake2/game/GameItems$20.class | Bin 0 -> 1739 bytes bin/jake2/game/GameItems$21.class | Bin 0 -> 1141 bytes bin/jake2/game/GameItems$22.class | Bin 0 -> 1216 bytes bin/jake2/game/GameItems$23.class | Bin 0 -> 2973 bytes bin/jake2/game/GameItems$24.class | Bin 0 -> 1602 bytes bin/jake2/game/GameItems$25.class | Bin 0 -> 1152 bytes bin/jake2/game/GameItems$3.class | Bin 0 -> 1519 bytes bin/jake2/game/GameItems$4.class | Bin 0 -> 3355 bytes bin/jake2/game/GameItems$5.class | Bin 0 -> 948 bytes bin/jake2/game/GameItems$6.class | Bin 0 -> 1127 bytes bin/jake2/game/GameItems$7.class | Bin 0 -> 1619 bytes bin/jake2/game/GameItems$8.class | Bin 0 -> 1537 bytes bin/jake2/game/GameItems$9.class | Bin 0 -> 1527 bytes bin/jake2/game/GameItems.class | Bin 0 -> 14903 bytes bin/jake2/game/GameMisc$1.class | Bin 0 -> 1002 bytes bin/jake2/game/GameMisc$10.class | Bin 0 -> 1036 bytes bin/jake2/game/GameMisc$11.class | Bin 0 -> 2513 bytes bin/jake2/game/GameMisc$12.class | Bin 0 -> 998 bytes bin/jake2/game/GameMisc$13.class | Bin 0 -> 1075 bytes bin/jake2/game/GameMisc$14.class | Bin 0 -> 1379 bytes bin/jake2/game/GameMisc$15.class | Bin 0 -> 2892 bytes bin/jake2/game/GameMisc$16.class | Bin 0 -> 1085 bytes bin/jake2/game/GameMisc$17.class | Bin 0 -> 778 bytes bin/jake2/game/GameMisc$18.class | Bin 0 -> 994 bytes bin/jake2/game/GameMisc$19.class | Bin 0 -> 998 bytes bin/jake2/game/GameMisc$2.class | Bin 0 -> 756 bytes bin/jake2/game/GameMisc$20.class | Bin 0 -> 999 bytes bin/jake2/game/GameMisc$21.class | Bin 0 -> 1000 bytes bin/jake2/game/GameMisc$22.class | Bin 0 -> 1211 bytes bin/jake2/game/GameMisc$23.class | Bin 0 -> 1202 bytes bin/jake2/game/GameMisc$24.class | Bin 0 -> 798 bytes bin/jake2/game/GameMisc$25.class | Bin 0 -> 932 bytes bin/jake2/game/GameMisc$26.class | Bin 0 -> 1338 bytes bin/jake2/game/GameMisc$27.class | Bin 0 -> 875 bytes bin/jake2/game/GameMisc$28.class | Bin 0 -> 1322 bytes bin/jake2/game/GameMisc$29.class | Bin 0 -> 1325 bytes bin/jake2/game/GameMisc$3.class | Bin 0 -> 2317 bytes bin/jake2/game/GameMisc$30.class | Bin 0 -> 2017 bytes bin/jake2/game/GameMisc$31.class | Bin 0 -> 881 bytes bin/jake2/game/GameMisc$32.class | Bin 0 -> 976 bytes bin/jake2/game/GameMisc$33.class | Bin 0 -> 1101 bytes bin/jake2/game/GameMisc$34.class | Bin 0 -> 1386 bytes bin/jake2/game/GameMisc$35.class | Bin 0 -> 2422 bytes bin/jake2/game/GameMisc$36.class | Bin 0 -> 996 bytes bin/jake2/game/GameMisc$37.class | Bin 0 -> 2753 bytes bin/jake2/game/GameMisc$38.class | Bin 0 -> 1209 bytes bin/jake2/game/GameMisc$39.class | Bin 0 -> 1215 bytes bin/jake2/game/GameMisc$4.class | Bin 0 -> 2858 bytes bin/jake2/game/GameMisc$40.class | Bin 0 -> 1880 bytes bin/jake2/game/GameMisc$41.class | Bin 0 -> 820 bytes bin/jake2/game/GameMisc$42.class | Bin 0 -> 823 bytes bin/jake2/game/GameMisc$5.class | Bin 0 -> 925 bytes bin/jake2/game/GameMisc$6.class | Bin 0 -> 1028 bytes bin/jake2/game/GameMisc$7.class | Bin 0 -> 1166 bytes bin/jake2/game/GameMisc$8.class | Bin 0 -> 1281 bytes bin/jake2/game/GameMisc$9.class | Bin 0 -> 769 bytes bin/jake2/game/GameMisc.class | Bin 0 -> 19981 bytes bin/jake2/game/GameSVCmds$ipfilter_t.class | Bin 0 -> 407 bytes bin/jake2/game/GameSVCmds.class | Bin 0 -> 5768 bytes bin/jake2/game/GameSave.class | Bin 0 -> 9183 bytes bin/jake2/game/GameSpawn$1.class | Bin 0 -> 688 bytes bin/jake2/game/GameSpawn$10.class | Bin 0 -> 688 bytes bin/jake2/game/GameSpawn$11.class | Bin 0 -> 688 bytes bin/jake2/game/GameSpawn$12.class | Bin 0 -> 688 bytes bin/jake2/game/GameSpawn$13.class | Bin 0 -> 5739 bytes bin/jake2/game/GameSpawn$14.class | Bin 0 -> 699 bytes bin/jake2/game/GameSpawn$15.class | Bin 0 -> 689 bytes bin/jake2/game/GameSpawn$16.class | Bin 0 -> 688 bytes bin/jake2/game/GameSpawn$17.class | Bin 0 -> 692 bytes bin/jake2/game/GameSpawn$18.class | Bin 0 -> 695 bytes bin/jake2/game/GameSpawn$19.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$2.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$20.class | Bin 0 -> 697 bytes bin/jake2/game/GameSpawn$21.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$22.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$23.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$24.class | Bin 0 -> 692 bytes bin/jake2/game/GameSpawn$25.class | Bin 0 -> 696 bytes bin/jake2/game/GameSpawn$26.class | Bin 0 -> 696 bytes bin/jake2/game/GameSpawn$27.class | Bin 0 -> 700 bytes bin/jake2/game/GameSpawn$28.class | Bin 0 -> 698 bytes bin/jake2/game/GameSpawn$29.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$3.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$30.class | Bin 0 -> 696 bytes bin/jake2/game/GameSpawn$31.class | Bin 0 -> 698 bytes bin/jake2/game/GameSpawn$32.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$33.class | Bin 0 -> 691 bytes bin/jake2/game/GameSpawn$34.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$35.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$36.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$37.class | Bin 0 -> 705 bytes bin/jake2/game/GameSpawn$38.class | Bin 0 -> 704 bytes bin/jake2/game/GameSpawn$39.class | Bin 0 -> 692 bytes bin/jake2/game/GameSpawn$4.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$40.class | Bin 0 -> 691 bytes bin/jake2/game/GameSpawn$41.class | Bin 0 -> 698 bytes bin/jake2/game/GameSpawn$42.class | Bin 0 -> 696 bytes bin/jake2/game/GameSpawn$43.class | Bin 0 -> 697 bytes bin/jake2/game/GameSpawn$44.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$45.class | Bin 0 -> 691 bytes bin/jake2/game/GameSpawn$46.class | Bin 0 -> 687 bytes bin/jake2/game/GameSpawn$47.class | Bin 0 -> 683 bytes bin/jake2/game/GameSpawn$48.class | Bin 0 -> 689 bytes bin/jake2/game/GameSpawn$49.class | Bin 0 -> 689 bytes bin/jake2/game/GameSpawn$5.class | Bin 0 -> 697 bytes bin/jake2/game/GameSpawn$50.class | Bin 0 -> 687 bytes bin/jake2/game/GameSpawn$51.class | Bin 0 -> 687 bytes bin/jake2/game/GameSpawn$52.class | Bin 0 -> 705 bytes bin/jake2/game/GameSpawn$53.class | Bin 0 -> 689 bytes bin/jake2/game/GameSpawn$54.class | Bin 0 -> 690 bytes bin/jake2/game/GameSpawn$55.class | Bin 0 -> 691 bytes bin/jake2/game/GameSpawn$56.class | Bin 0 -> 689 bytes bin/jake2/game/GameSpawn$57.class | Bin 0 -> 697 bytes bin/jake2/game/GameSpawn$58.class | Bin 0 -> 696 bytes bin/jake2/game/GameSpawn$59.class | Bin 0 -> 690 bytes bin/jake2/game/GameSpawn$6.class | Bin 0 -> 702 bytes bin/jake2/game/GameSpawn$60.class | Bin 0 -> 690 bytes bin/jake2/game/GameSpawn$61.class | Bin 0 -> 691 bytes bin/jake2/game/GameSpawn$62.class | Bin 0 -> 698 bytes bin/jake2/game/GameSpawn$63.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$64.class | Bin 0 -> 688 bytes bin/jake2/game/GameSpawn$65.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$66.class | Bin 0 -> 691 bytes bin/jake2/game/GameSpawn$67.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$68.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$69.class | Bin 0 -> 692 bytes bin/jake2/game/GameSpawn$7.class | Bin 0 -> 696 bytes bin/jake2/game/GameSpawn$70.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$71.class | Bin 0 -> 694 bytes bin/jake2/game/GameSpawn$72.class | Bin 0 -> 695 bytes bin/jake2/game/GameSpawn$73.class | Bin 0 -> 703 bytes bin/jake2/game/GameSpawn$74.class | Bin 0 -> 707 bytes bin/jake2/game/GameSpawn$75.class | Bin 0 -> 701 bytes bin/jake2/game/GameSpawn$76.class | Bin 0 -> 705 bytes bin/jake2/game/GameSpawn$77.class | Bin 0 -> 699 bytes bin/jake2/game/GameSpawn$78.class | Bin 0 -> 703 bytes bin/jake2/game/GameSpawn$79.class | Bin 0 -> 699 bytes bin/jake2/game/GameSpawn$8.class | Bin 0 -> 677 bytes bin/jake2/game/GameSpawn$80.class | Bin 0 -> 699 bytes bin/jake2/game/GameSpawn$81.class | Bin 0 -> 699 bytes bin/jake2/game/GameSpawn$82.class | Bin 0 -> 701 bytes bin/jake2/game/GameSpawn$83.class | Bin 0 -> 699 bytes bin/jake2/game/GameSpawn$84.class | Bin 0 -> 699 bytes bin/jake2/game/GameSpawn$85.class | Bin 0 -> 705 bytes bin/jake2/game/GameSpawn$86.class | Bin 0 -> 699 bytes bin/jake2/game/GameSpawn$87.class | Bin 0 -> 700 bytes bin/jake2/game/GameSpawn$88.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn$89.class | Bin 0 -> 691 bytes bin/jake2/game/GameSpawn$9.class | Bin 0 -> 685 bytes bin/jake2/game/GameSpawn$90.class | Bin 0 -> 693 bytes bin/jake2/game/GameSpawn.class | Bin 0 -> 18374 bytes bin/jake2/game/GameTarget$1.class | Bin 0 -> 1096 bytes bin/jake2/game/GameTarget$10.class | Bin 0 -> 1551 bytes bin/jake2/game/GameTarget$11.class | Bin 0 -> 1364 bytes bin/jake2/game/GameTarget$12.class | Bin 0 -> 994 bytes bin/jake2/game/GameTarget$13.class | Bin 0 -> 1039 bytes bin/jake2/game/GameTarget$14.class | Bin 0 -> 2921 bytes bin/jake2/game/GameTarget$15.class | Bin 0 -> 913 bytes bin/jake2/game/GameTarget$16.class | Bin 0 -> 2731 bytes bin/jake2/game/GameTarget$17.class | Bin 0 -> 1387 bytes bin/jake2/game/GameTarget$18.class | Bin 0 -> 2518 bytes bin/jake2/game/GameTarget$19.class | Bin 0 -> 1733 bytes bin/jake2/game/GameTarget$2.class | Bin 0 -> 1295 bytes bin/jake2/game/GameTarget$20.class | Bin 0 -> 1019 bytes bin/jake2/game/GameTarget$3.class | Bin 0 -> 1051 bytes bin/jake2/game/GameTarget$4.class | Bin 0 -> 1211 bytes bin/jake2/game/GameTarget$5.class | Bin 0 -> 1345 bytes bin/jake2/game/GameTarget$6.class | Bin 0 -> 1381 bytes bin/jake2/game/GameTarget$7.class | Bin 0 -> 1151 bytes bin/jake2/game/GameTarget$8.class | Bin 0 -> 2473 bytes bin/jake2/game/GameTarget$9.class | Bin 0 -> 1409 bytes bin/jake2/game/GameTarget.class | Bin 0 -> 8004 bytes bin/jake2/game/GameTrigger$1.class | Bin 0 -> 681 bytes bin/jake2/game/GameTrigger$10.class | Bin 0 -> 1754 bytes bin/jake2/game/GameTrigger$11.class | Bin 0 -> 862 bytes bin/jake2/game/GameTrigger$12.class | Bin 0 -> 1130 bytes bin/jake2/game/GameTrigger$2.class | Bin 0 -> 799 bytes bin/jake2/game/GameTrigger$3.class | Bin 0 -> 1480 bytes bin/jake2/game/GameTrigger$4.class | Bin 0 -> 988 bytes bin/jake2/game/GameTrigger$5.class | Bin 0 -> 810 bytes bin/jake2/game/GameTrigger$6.class | Bin 0 -> 3096 bytes bin/jake2/game/GameTrigger$7.class | Bin 0 -> 1623 bytes bin/jake2/game/GameTrigger$8.class | Bin 0 -> 1874 bytes bin/jake2/game/GameTrigger$9.class | Bin 0 -> 1044 bytes bin/jake2/game/GameTrigger.class | Bin 0 -> 6445 bytes bin/jake2/game/GameTurret$1.class | Bin 0 -> 1199 bytes bin/jake2/game/GameTurret$2.class | Bin 0 -> 3096 bytes bin/jake2/game/GameTurret$3.class | Bin 0 -> 1843 bytes bin/jake2/game/GameTurret$4.class | Bin 0 -> 1176 bytes bin/jake2/game/GameTurret$5.class | Bin 0 -> 2100 bytes bin/jake2/game/GameTurret$6.class | Bin 0 -> 1839 bytes bin/jake2/game/GameTurret.class | Bin 0 -> 5697 bytes bin/jake2/game/GameUtil$1.class | Bin 0 -> 798 bytes bin/jake2/game/GameUtil$2.class | Bin 0 -> 670 bytes bin/jake2/game/GameUtil$3.class | Bin 0 -> 1234 bytes bin/jake2/game/GameUtil$4.class | Bin 0 -> 2423 bytes bin/jake2/game/GameUtil$5.class | Bin 0 -> 1097 bytes bin/jake2/game/GameUtil.class | Bin 0 -> 11045 bytes bin/jake2/game/GameWeapon$1.class | Bin 0 -> 2095 bytes bin/jake2/game/GameWeapon$2.class | Bin 0 -> 2553 bytes bin/jake2/game/GameWeapon$3.class | Bin 0 -> 1729 bytes bin/jake2/game/GameWeapon$4.class | Bin 0 -> 2602 bytes bin/jake2/game/GameWeapon$5.class | Bin 0 -> 2578 bytes bin/jake2/game/GameWeapon$6.class | Bin 0 -> 2735 bytes bin/jake2/game/GameWeapon$7.class | Bin 0 -> 3397 bytes bin/jake2/game/GameWeapon.class | Bin 0 -> 12785 bytes bin/jake2/game/Info.class | Bin 0 -> 2925 bytes bin/jake2/game/ItemDropAdapter.class | Bin 0 -> 488 bytes bin/jake2/game/ItemUseAdapter.class | Bin 0 -> 484 bytes bin/jake2/game/Monster$1.class | Bin 0 -> 1027 bytes bin/jake2/game/Monster$2.class | Bin 0 -> 1419 bytes bin/jake2/game/Monster$3.class | Bin 0 -> 1192 bytes bin/jake2/game/Monster$4.class | Bin 0 -> 1032 bytes bin/jake2/game/Monster.class | Bin 0 -> 7956 bytes bin/jake2/game/PlayerClient$1.class | Bin 0 -> 4072 bytes bin/jake2/game/PlayerClient$2.class | Bin 0 -> 1547 bytes bin/jake2/game/PlayerClient$3.class | Bin 0 -> 1524 bytes bin/jake2/game/PlayerClient$4.class | Bin 0 -> 709 bytes bin/jake2/game/PlayerClient$5.class | Bin 0 -> 1493 bytes bin/jake2/game/PlayerClient$6.class | Bin 0 -> 969 bytes bin/jake2/game/PlayerClient.class | Bin 0 -> 26768 bytes bin/jake2/game/PlayerHud.class | Bin 0 -> 11366 bytes bin/jake2/game/PlayerTrail.class | Bin 0 -> 2727 bytes bin/jake2/game/PlayerView.class | Bin 0 -> 17321 bytes bin/jake2/game/PlayerWeapon$1.class | Bin 0 -> 2719 bytes bin/jake2/game/PlayerWeapon$10.class | Bin 0 -> 898 bytes bin/jake2/game/PlayerWeapon$11.class | Bin 0 -> 1005 bytes bin/jake2/game/PlayerWeapon$12.class | Bin 0 -> 2528 bytes bin/jake2/game/PlayerWeapon$13.class | Bin 0 -> 908 bytes bin/jake2/game/PlayerWeapon$14.class | Bin 0 -> 2597 bytes bin/jake2/game/PlayerWeapon$15.class | Bin 0 -> 913 bytes bin/jake2/game/PlayerWeapon$16.class | Bin 0 -> 2464 bytes bin/jake2/game/PlayerWeapon$17.class | Bin 0 -> 891 bytes bin/jake2/game/PlayerWeapon$18.class | Bin 0 -> 2817 bytes bin/jake2/game/PlayerWeapon$19.class | Bin 0 -> 863 bytes bin/jake2/game/PlayerWeapon$2.class | Bin 0 -> 2404 bytes bin/jake2/game/PlayerWeapon$20.class | Bin 0 -> 2003 bytes bin/jake2/game/PlayerWeapon$21.class | Bin 0 -> 1570 bytes bin/jake2/game/PlayerWeapon$22.class | Bin 0 -> 3620 bytes bin/jake2/game/PlayerWeapon$23.class | Bin 0 -> 4145 bytes bin/jake2/game/PlayerWeapon$24.class | Bin 0 -> 1986 bytes bin/jake2/game/PlayerWeapon$3.class | Bin 0 -> 916 bytes bin/jake2/game/PlayerWeapon$4.class | Bin 0 -> 2519 bytes bin/jake2/game/PlayerWeapon$5.class | Bin 0 -> 918 bytes bin/jake2/game/PlayerWeapon$6.class | Bin 0 -> 1182 bytes bin/jake2/game/PlayerWeapon$7.class | Bin 0 -> 894 bytes bin/jake2/game/PlayerWeapon$8.class | Bin 0 -> 2838 bytes bin/jake2/game/PlayerWeapon$9.class | Bin 0 -> 921 bytes bin/jake2/game/PlayerWeapon.class | Bin 0 -> 11803 bytes bin/jake2/game/SuperAdapter.class | Bin 0 -> 1282 bytes bin/jake2/game/client_persistant_t.class | Bin 0 -> 2869 bytes bin/jake2/game/client_respawn_t.class | Bin 0 -> 1708 bytes bin/jake2/game/cmdalias_t.class | Bin 0 -> 374 bytes bin/jake2/game/cmodel_t.class | Bin 0 -> 449 bytes bin/jake2/game/cplane_t.class | Bin 0 -> 832 bytes bin/jake2/game/csurface_t.class | Bin 0 -> 379 bytes bin/jake2/game/cvar_t.class | Bin 0 -> 501 bytes bin/jake2/game/edict_t.class | Bin 0 -> 11237 bytes bin/jake2/game/entity_state_t.class | Bin 0 -> 2646 bytes bin/jake2/game/game_import_t$1.class | Bin 0 -> 655 bytes bin/jake2/game/game_import_t.class | Bin 0 -> 6082 bytes bin/jake2/game/game_locals_t.class | Bin 0 -> 1728 bytes bin/jake2/game/gclient_t.class | Bin 0 -> 7115 bytes bin/jake2/game/gitem_armor_t.class | Bin 0 -> 569 bytes bin/jake2/game/gitem_t.class | Bin 0 -> 2178 bytes bin/jake2/game/level_locals_t.class | Bin 0 -> 2927 bytes bin/jake2/game/link_t.class | Bin 0 -> 385 bytes bin/jake2/game/mapsurface_t.class | Bin 0 -> 419 bytes bin/jake2/game/mframe_t.class | Bin 0 -> 1182 bytes bin/jake2/game/mmove_t.class | Bin 0 -> 1493 bytes bin/jake2/game/monsterinfo_t.class | Bin 0 -> 2799 bytes bin/jake2/game/monsters/M_Actor$1.class | Bin 0 -> 1274 bytes bin/jake2/game/monsters/M_Actor$10.class | Bin 0 -> 3473 bytes bin/jake2/game/monsters/M_Actor$2.class | Bin 0 -> 830 bytes bin/jake2/game/monsters/M_Actor$3.class | Bin 0 -> 1272 bytes bin/jake2/game/monsters/M_Actor$4.class | Bin 0 -> 2538 bytes bin/jake2/game/monsters/M_Actor$5.class | Bin 0 -> 1070 bytes bin/jake2/game/monsters/M_Actor$6.class | Bin 0 -> 1605 bytes bin/jake2/game/monsters/M_Actor$7.class | Bin 0 -> 1062 bytes bin/jake2/game/monsters/M_Actor$8.class | Bin 0 -> 1094 bytes bin/jake2/game/monsters/M_Actor$9.class | Bin 0 -> 2252 bytes bin/jake2/game/monsters/M_Actor.class | Bin 0 -> 28239 bytes bin/jake2/game/monsters/M_Berserk$1.class | Bin 0 -> 891 bytes bin/jake2/game/monsters/M_Berserk$10.class | Bin 0 -> 648 bytes bin/jake2/game/monsters/M_Berserk$11.class | Bin 0 -> 988 bytes bin/jake2/game/monsters/M_Berserk$12.class | Bin 0 -> 1717 bytes bin/jake2/game/monsters/M_Berserk$13.class | Bin 0 -> 1082 bytes bin/jake2/game/monsters/M_Berserk$14.class | Bin 0 -> 1884 bytes bin/jake2/game/monsters/M_Berserk$2.class | Bin 0 -> 849 bytes bin/jake2/game/monsters/M_Berserk$3.class | Bin 0 -> 1190 bytes bin/jake2/game/monsters/M_Berserk$4.class | Bin 0 -> 844 bytes bin/jake2/game/monsters/M_Berserk$5.class | Bin 0 -> 842 bytes bin/jake2/game/monsters/M_Berserk$6.class | Bin 0 -> 955 bytes bin/jake2/game/monsters/M_Berserk$7.class | Bin 0 -> 848 bytes bin/jake2/game/monsters/M_Berserk$8.class | Bin 0 -> 847 bytes bin/jake2/game/monsters/M_Berserk$9.class | Bin 0 -> 959 bytes bin/jake2/game/monsters/M_Berserk.class | Bin 0 -> 17224 bytes bin/jake2/game/monsters/M_Boss2$1.class | Bin 0 -> 832 bytes bin/jake2/game/monsters/M_Boss2$10.class | Bin 0 -> 2676 bytes bin/jake2/game/monsters/M_Boss2$11.class | Bin 0 -> 936 bytes bin/jake2/game/monsters/M_Boss2$12.class | Bin 0 -> 1899 bytes bin/jake2/game/monsters/M_Boss2$13.class | Bin 0 -> 1561 bytes bin/jake2/game/monsters/M_Boss2$14.class | Bin 0 -> 1558 bytes bin/jake2/game/monsters/M_Boss2$15.class | Bin 0 -> 775 bytes bin/jake2/game/monsters/M_Boss2$2.class | Bin 0 -> 940 bytes bin/jake2/game/monsters/M_Boss2$3.class | Bin 0 -> 873 bytes bin/jake2/game/monsters/M_Boss2$4.class | Bin 0 -> 1337 bytes bin/jake2/game/monsters/M_Boss2$5.class | Bin 0 -> 840 bytes bin/jake2/game/monsters/M_Boss2$6.class | Bin 0 -> 1135 bytes bin/jake2/game/monsters/M_Boss2$7.class | Bin 0 -> 1672 bytes bin/jake2/game/monsters/M_Boss2$8.class | Bin 0 -> 1064 bytes bin/jake2/game/monsters/M_Boss2$9.class | Bin 0 -> 1244 bytes bin/jake2/game/monsters/M_Boss2.class | Bin 0 -> 16564 bytes bin/jake2/game/monsters/M_Boss3$1.class | Bin 0 -> 1164 bytes bin/jake2/game/monsters/M_Boss3$2.class | Bin 0 -> 1006 bytes bin/jake2/game/monsters/M_Boss3.class | Bin 0 -> 1839 bytes bin/jake2/game/monsters/M_Boss31$1.class | Bin 0 -> 1098 bytes bin/jake2/game/monsters/M_Boss31$10.class | Bin 0 -> 1737 bytes bin/jake2/game/monsters/M_Boss31$11.class | Bin 0 -> 1562 bytes bin/jake2/game/monsters/M_Boss31$12.class | Bin 0 -> 1561 bytes bin/jake2/game/monsters/M_Boss31$13.class | Bin 0 -> 777 bytes bin/jake2/game/monsters/M_Boss31$14.class | Bin 0 -> 1660 bytes bin/jake2/game/monsters/M_Boss31$15.class | Bin 0 -> 639 bytes bin/jake2/game/monsters/M_Boss31$16.class | Bin 0 -> 1345 bytes bin/jake2/game/monsters/M_Boss31$17.class | Bin 0 -> 2684 bytes bin/jake2/game/monsters/M_Boss31$18.class | Bin 0 -> 834 bytes bin/jake2/game/monsters/M_Boss31$19.class | Bin 0 -> 943 bytes bin/jake2/game/monsters/M_Boss31$2.class | Bin 0 -> 838 bytes bin/jake2/game/monsters/M_Boss31$3.class | Bin 0 -> 848 bytes bin/jake2/game/monsters/M_Boss31$4.class | Bin 0 -> 848 bytes bin/jake2/game/monsters/M_Boss31$5.class | Bin 0 -> 850 bytes bin/jake2/game/monsters/M_Boss31$6.class | Bin 0 -> 834 bytes bin/jake2/game/monsters/M_Boss31$7.class | Bin 0 -> 1250 bytes bin/jake2/game/monsters/M_Boss31$8.class | Bin 0 -> 838 bytes bin/jake2/game/monsters/M_Boss31$9.class | Bin 0 -> 2119 bytes bin/jake2/game/monsters/M_Boss31.class | Bin 0 -> 18495 bytes bin/jake2/game/monsters/M_Boss32$1.class | Bin 0 -> 1096 bytes bin/jake2/game/monsters/M_Boss32$10.class | Bin 0 -> 838 bytes bin/jake2/game/monsters/M_Boss32$11.class | Bin 0 -> 949 bytes bin/jake2/game/monsters/M_Boss32$12.class | Bin 0 -> 1740 bytes bin/jake2/game/monsters/M_Boss32$13.class | Bin 0 -> 926 bytes bin/jake2/game/monsters/M_Boss32$14.class | Bin 0 -> 1397 bytes bin/jake2/game/monsters/M_Boss32$15.class | Bin 0 -> 1811 bytes bin/jake2/game/monsters/M_Boss32$16.class | Bin 0 -> 1994 bytes bin/jake2/game/monsters/M_Boss32$17.class | Bin 0 -> 884 bytes bin/jake2/game/monsters/M_Boss32$18.class | Bin 0 -> 1396 bytes bin/jake2/game/monsters/M_Boss32$19.class | Bin 0 -> 1022 bytes bin/jake2/game/monsters/M_Boss32$2.class | Bin 0 -> 838 bytes bin/jake2/game/monsters/M_Boss32$20.class | Bin 0 -> 1565 bytes bin/jake2/game/monsters/M_Boss32$21.class | Bin 0 -> 2372 bytes bin/jake2/game/monsters/M_Boss32$22.class | Bin 0 -> 2686 bytes bin/jake2/game/monsters/M_Boss32$23.class | Bin 0 -> 1430 bytes bin/jake2/game/monsters/M_Boss32$24.class | Bin 0 -> 1231 bytes bin/jake2/game/monsters/M_Boss32$3.class | Bin 0 -> 838 bytes bin/jake2/game/monsters/M_Boss32$4.class | Bin 0 -> 842 bytes bin/jake2/game/monsters/M_Boss32$5.class | Bin 0 -> 850 bytes bin/jake2/game/monsters/M_Boss32$6.class | Bin 0 -> 852 bytes bin/jake2/game/monsters/M_Boss32$7.class | Bin 0 -> 856 bytes bin/jake2/game/monsters/M_Boss32$8.class | Bin 0 -> 852 bytes bin/jake2/game/monsters/M_Boss32$9.class | Bin 0 -> 1069 bytes bin/jake2/game/monsters/M_Boss32.class | Bin 0 -> 31999 bytes bin/jake2/game/monsters/M_Brain$1.class | Bin 0 -> 881 bytes bin/jake2/game/monsters/M_Brain$10.class | Bin 0 -> 1072 bytes bin/jake2/game/monsters/M_Brain$11.class | Bin 0 -> 846 bytes bin/jake2/game/monsters/M_Brain$12.class | Bin 0 -> 1186 bytes bin/jake2/game/monsters/M_Brain$13.class | Bin 0 -> 845 bytes bin/jake2/game/monsters/M_Brain$14.class | Bin 0 -> 1185 bytes bin/jake2/game/monsters/M_Brain$15.class | Bin 0 -> 1040 bytes bin/jake2/game/monsters/M_Brain$16.class | Bin 0 -> 1325 bytes bin/jake2/game/monsters/M_Brain$17.class | Bin 0 -> 975 bytes bin/jake2/game/monsters/M_Brain$18.class | Bin 0 -> 979 bytes bin/jake2/game/monsters/M_Brain$19.class | Bin 0 -> 983 bytes bin/jake2/game/monsters/M_Brain$2.class | Bin 0 -> 839 bytes bin/jake2/game/monsters/M_Brain$20.class | Bin 0 -> 1867 bytes bin/jake2/game/monsters/M_Brain$21.class | Bin 0 -> 2078 bytes bin/jake2/game/monsters/M_Brain$3.class | Bin 0 -> 832 bytes bin/jake2/game/monsters/M_Brain$4.class | Bin 0 -> 1032 bytes bin/jake2/game/monsters/M_Brain$5.class | Bin 0 -> 831 bytes bin/jake2/game/monsters/M_Brain$6.class | Bin 0 -> 1071 bytes bin/jake2/game/monsters/M_Brain$7.class | Bin 0 -> 1005 bytes bin/jake2/game/monsters/M_Brain$8.class | Bin 0 -> 1020 bytes bin/jake2/game/monsters/M_Brain$9.class | Bin 0 -> 1200 bytes bin/jake2/game/monsters/M_Brain.class | Bin 0 -> 19569 bytes bin/jake2/game/monsters/M_Chick$1.class | Bin 0 -> 983 bytes bin/jake2/game/monsters/M_Chick$10.class | Bin 0 -> 1007 bytes bin/jake2/game/monsters/M_Chick$11.class | Bin 0 -> 1022 bytes bin/jake2/game/monsters/M_Chick$12.class | Bin 0 -> 1032 bytes bin/jake2/game/monsters/M_Chick$13.class | Bin 0 -> 1152 bytes bin/jake2/game/monsters/M_Chick$14.class | Bin 0 -> 1527 bytes bin/jake2/game/monsters/M_Chick$15.class | Bin 0 -> 856 bytes bin/jake2/game/monsters/M_Chick$16.class | Bin 0 -> 848 bytes bin/jake2/game/monsters/M_Chick$17.class | Bin 0 -> 838 bytes bin/jake2/game/monsters/M_Chick$18.class | Bin 0 -> 1228 bytes bin/jake2/game/monsters/M_Chick$19.class | Bin 0 -> 1163 bytes bin/jake2/game/monsters/M_Chick$2.class | Bin 0 -> 832 bytes bin/jake2/game/monsters/M_Chick$20.class | Bin 0 -> 834 bytes bin/jake2/game/monsters/M_Chick$21.class | Bin 0 -> 840 bytes bin/jake2/game/monsters/M_Chick$22.class | Bin 0 -> 843 bytes bin/jake2/game/monsters/M_Chick$23.class | Bin 0 -> 883 bytes bin/jake2/game/monsters/M_Chick$3.class | Bin 0 -> 975 bytes bin/jake2/game/monsters/M_Chick$4.class | Bin 0 -> 1057 bytes bin/jake2/game/monsters/M_Chick$5.class | Bin 0 -> 830 bytes bin/jake2/game/monsters/M_Chick$6.class | Bin 0 -> 1920 bytes bin/jake2/game/monsters/M_Chick$7.class | Bin 0 -> 1059 bytes bin/jake2/game/monsters/M_Chick$8.class | Bin 0 -> 1987 bytes bin/jake2/game/monsters/M_Chick$9.class | Bin 0 -> 1212 bytes bin/jake2/game/monsters/M_Chick.class | Bin 0 -> 23255 bytes bin/jake2/game/monsters/M_Flash.class | Bin 0 -> 7769 bytes bin/jake2/game/monsters/M_Flipper$1.class | Bin 0 -> 844 bytes bin/jake2/game/monsters/M_Flipper$10.class | Bin 0 -> 1082 bytes bin/jake2/game/monsters/M_Flipper$11.class | Bin 0 -> 893 bytes bin/jake2/game/monsters/M_Flipper$12.class | Bin 0 -> 1783 bytes bin/jake2/game/monsters/M_Flipper$2.class | Bin 0 -> 850 bytes bin/jake2/game/monsters/M_Flipper$3.class | Bin 0 -> 846 bytes bin/jake2/game/monsters/M_Flipper$4.class | Bin 0 -> 842 bytes bin/jake2/game/monsters/M_Flipper$5.class | Bin 0 -> 852 bytes bin/jake2/game/monsters/M_Flipper$6.class | Bin 0 -> 848 bytes bin/jake2/game/monsters/M_Flipper$7.class | Bin 0 -> 851 bytes bin/jake2/game/monsters/M_Flipper$8.class | Bin 0 -> 845 bytes bin/jake2/game/monsters/M_Flipper$9.class | Bin 0 -> 1771 bytes bin/jake2/game/monsters/M_Flipper.class | Bin 0 -> 14480 bytes bin/jake2/game/monsters/M_Float$1.class | Bin 0 -> 883 bytes bin/jake2/game/monsters/M_Float$10.class | Bin 0 -> 841 bytes bin/jake2/game/monsters/M_Float$11.class | Bin 0 -> 985 bytes bin/jake2/game/monsters/M_Float$12.class | Bin 0 -> 1765 bytes bin/jake2/game/monsters/M_Float$13.class | Bin 0 -> 1051 bytes bin/jake2/game/monsters/M_Float$2.class | Bin 0 -> 837 bytes bin/jake2/game/monsters/M_Float$3.class | Bin 0 -> 1647 bytes bin/jake2/game/monsters/M_Float$4.class | Bin 0 -> 981 bytes bin/jake2/game/monsters/M_Float$5.class | Bin 0 -> 947 bytes bin/jake2/game/monsters/M_Float$6.class | Bin 0 -> 1004 bytes bin/jake2/game/monsters/M_Float$7.class | Bin 0 -> 1920 bytes bin/jake2/game/monsters/M_Float$8.class | Bin 0 -> 1072 bytes bin/jake2/game/monsters/M_Float$9.class | Bin 0 -> 834 bytes bin/jake2/game/monsters/M_Float.class | Bin 0 -> 22610 bytes bin/jake2/game/monsters/M_Flyer$1.class | Bin 0 -> 881 bytes bin/jake2/game/monsters/M_Flyer$10.class | Bin 0 -> 700 bytes bin/jake2/game/monsters/M_Flyer$11.class | Bin 0 -> 701 bytes bin/jake2/game/monsters/M_Flyer$12.class | Bin 0 -> 1094 bytes bin/jake2/game/monsters/M_Flyer$13.class | Bin 0 -> 1095 bytes bin/jake2/game/monsters/M_Flyer$14.class | Bin 0 -> 844 bytes bin/jake2/game/monsters/M_Flyer$15.class | Bin 0 -> 1131 bytes bin/jake2/game/monsters/M_Flyer$16.class | Bin 0 -> 837 bytes bin/jake2/game/monsters/M_Flyer$17.class | Bin 0 -> 870 bytes bin/jake2/game/monsters/M_Flyer$18.class | Bin 0 -> 840 bytes bin/jake2/game/monsters/M_Flyer$19.class | Bin 0 -> 1840 bytes bin/jake2/game/monsters/M_Flyer$2.class | Bin 0 -> 835 bytes bin/jake2/game/monsters/M_Flyer$20.class | Bin 0 -> 1046 bytes bin/jake2/game/monsters/M_Flyer$3.class | Bin 0 -> 844 bytes bin/jake2/game/monsters/M_Flyer$4.class | Bin 0 -> 940 bytes bin/jake2/game/monsters/M_Flyer$5.class | Bin 0 -> 830 bytes bin/jake2/game/monsters/M_Flyer$6.class | Bin 0 -> 832 bytes bin/jake2/game/monsters/M_Flyer$7.class | Bin 0 -> 1018 bytes bin/jake2/game/monsters/M_Flyer$8.class | Bin 0 -> 830 bytes bin/jake2/game/monsters/M_Flyer$9.class | Bin 0 -> 832 bytes bin/jake2/game/monsters/M_Flyer.class | Bin 0 -> 19183 bytes bin/jake2/game/monsters/M_Gladiator$1.class | Bin 0 -> 855 bytes bin/jake2/game/monsters/M_Gladiator$10.class | Bin 0 -> 1408 bytes bin/jake2/game/monsters/M_Gladiator$11.class | Bin 0 -> 1537 bytes bin/jake2/game/monsters/M_Gladiator$12.class | Bin 0 -> 1876 bytes bin/jake2/game/monsters/M_Gladiator$13.class | Bin 0 -> 1092 bytes bin/jake2/game/monsters/M_Gladiator$14.class | Bin 0 -> 1833 bytes bin/jake2/game/monsters/M_Gladiator$2.class | Bin 0 -> 901 bytes bin/jake2/game/monsters/M_Gladiator$3.class | Bin 0 -> 859 bytes bin/jake2/game/monsters/M_Gladiator$4.class | Bin 0 -> 873 bytes bin/jake2/game/monsters/M_Gladiator$5.class | Bin 0 -> 856 bytes bin/jake2/game/monsters/M_Gladiator$6.class | Bin 0 -> 854 bytes bin/jake2/game/monsters/M_Gladiator$7.class | Bin 0 -> 968 bytes bin/jake2/game/monsters/M_Gladiator$8.class | Bin 0 -> 1266 bytes bin/jake2/game/monsters/M_Gladiator$9.class | Bin 0 -> 863 bytes bin/jake2/game/monsters/M_Gladiator.class | Bin 0 -> 10949 bytes bin/jake2/game/monsters/M_Gunner$1.class | Bin 0 -> 845 bytes bin/jake2/game/monsters/M_Gunner$10.class | Bin 0 -> 1077 bytes bin/jake2/game/monsters/M_Gunner$11.class | Bin 0 -> 1817 bytes bin/jake2/game/monsters/M_Gunner$12.class | Bin 0 -> 1464 bytes bin/jake2/game/monsters/M_Gunner$13.class | Bin 0 -> 1012 bytes bin/jake2/game/monsters/M_Gunner$14.class | Bin 0 -> 1027 bytes bin/jake2/game/monsters/M_Gunner$15.class | Bin 0 -> 1038 bytes bin/jake2/game/monsters/M_Gunner$16.class | Bin 0 -> 845 bytes bin/jake2/game/monsters/M_Gunner$17.class | Bin 0 -> 1692 bytes bin/jake2/game/monsters/M_Gunner$18.class | Bin 0 -> 1550 bytes bin/jake2/game/monsters/M_Gunner$19.class | Bin 0 -> 1139 bytes bin/jake2/game/monsters/M_Gunner$2.class | Bin 0 -> 886 bytes bin/jake2/game/monsters/M_Gunner$20.class | Bin 0 -> 850 bytes bin/jake2/game/monsters/M_Gunner$21.class | Bin 0 -> 1165 bytes bin/jake2/game/monsters/M_Gunner$3.class | Bin 0 -> 844 bytes bin/jake2/game/monsters/M_Gunner$4.class | Bin 0 -> 838 bytes bin/jake2/game/monsters/M_Gunner$5.class | Bin 0 -> 981 bytes bin/jake2/game/monsters/M_Gunner$6.class | Bin 0 -> 836 bytes bin/jake2/game/monsters/M_Gunner$7.class | Bin 0 -> 947 bytes bin/jake2/game/monsters/M_Gunner$8.class | Bin 0 -> 850 bytes bin/jake2/game/monsters/M_Gunner$9.class | Bin 0 -> 1811 bytes bin/jake2/game/monsters/M_Gunner.class | Bin 0 -> 18873 bytes bin/jake2/game/monsters/M_Hover$1.class | Bin 0 -> 1146 bytes bin/jake2/game/monsters/M_Hover$10.class | Bin 0 -> 1271 bytes bin/jake2/game/monsters/M_Hover$11.class | Bin 0 -> 1898 bytes bin/jake2/game/monsters/M_Hover$12.class | Bin 0 -> 883 bytes bin/jake2/game/monsters/M_Hover$13.class | Bin 0 -> 992 bytes bin/jake2/game/monsters/M_Hover$2.class | Bin 0 -> 1629 bytes bin/jake2/game/monsters/M_Hover$3.class | Bin 0 -> 832 bytes bin/jake2/game/monsters/M_Hover$4.class | Bin 0 -> 940 bytes bin/jake2/game/monsters/M_Hover$5.class | Bin 0 -> 830 bytes bin/jake2/game/monsters/M_Hover$6.class | Bin 0 -> 846 bytes bin/jake2/game/monsters/M_Hover$7.class | Bin 0 -> 835 bytes bin/jake2/game/monsters/M_Hover$8.class | Bin 0 -> 1829 bytes bin/jake2/game/monsters/M_Hover$9.class | Bin 0 -> 1027 bytes bin/jake2/game/monsters/M_Hover.class | Bin 0 -> 19682 bytes bin/jake2/game/monsters/M_Infantry$1.class | Bin 0 -> 850 bytes bin/jake2/game/monsters/M_Infantry$10.class | Bin 0 -> 1229 bytes bin/jake2/game/monsters/M_Infantry$11.class | Bin 0 -> 1022 bytes bin/jake2/game/monsters/M_Infantry$12.class | Bin 0 -> 1037 bytes bin/jake2/game/monsters/M_Infantry$13.class | Bin 0 -> 1050 bytes bin/jake2/game/monsters/M_Infantry$14.class | Bin 0 -> 1201 bytes bin/jake2/game/monsters/M_Infantry$15.class | Bin 0 -> 1101 bytes bin/jake2/game/monsters/M_Infantry$16.class | Bin 0 -> 860 bytes bin/jake2/game/monsters/M_Infantry$17.class | Bin 0 -> 1147 bytes bin/jake2/game/monsters/M_Infantry$18.class | Bin 0 -> 1054 bytes bin/jake2/game/monsters/M_Infantry$2.class | Bin 0 -> 1053 bytes bin/jake2/game/monsters/M_Infantry$3.class | Bin 0 -> 848 bytes bin/jake2/game/monsters/M_Infantry$4.class | Bin 0 -> 961 bytes bin/jake2/game/monsters/M_Infantry$5.class | Bin 0 -> 1776 bytes bin/jake2/game/monsters/M_Infantry$6.class | Bin 0 -> 1924 bytes bin/jake2/game/monsters/M_Infantry$7.class | Bin 0 -> 896 bytes bin/jake2/game/monsters/M_Infantry$8.class | Bin 0 -> 1146 bytes bin/jake2/game/monsters/M_Infantry$9.class | Bin 0 -> 2091 bytes bin/jake2/game/monsters/M_Infantry.class | Bin 0 -> 18984 bytes bin/jake2/game/monsters/M_Insane$1.class | Bin 0 -> 840 bytes bin/jake2/game/monsters/M_Insane$10.class | Bin 0 -> 1064 bytes bin/jake2/game/monsters/M_Insane$11.class | Bin 0 -> 996 bytes bin/jake2/game/monsters/M_Insane$12.class | Bin 0 -> 1192 bytes bin/jake2/game/monsters/M_Insane$13.class | Bin 0 -> 1175 bytes bin/jake2/game/monsters/M_Insane$14.class | Bin 0 -> 2504 bytes bin/jake2/game/monsters/M_Insane$2.class | Bin 0 -> 842 bytes bin/jake2/game/monsters/M_Insane$3.class | Bin 0 -> 840 bytes bin/jake2/game/monsters/M_Insane$4.class | Bin 0 -> 895 bytes bin/jake2/game/monsters/M_Insane$5.class | Bin 0 -> 989 bytes bin/jake2/game/monsters/M_Insane$6.class | Bin 0 -> 1253 bytes bin/jake2/game/monsters/M_Insane$7.class | Bin 0 -> 1253 bytes bin/jake2/game/monsters/M_Insane$8.class | Bin 0 -> 2273 bytes bin/jake2/game/monsters/M_Insane$9.class | Bin 0 -> 840 bytes bin/jake2/game/monsters/M_Insane.class | Bin 0 -> 23488 bytes bin/jake2/game/monsters/M_Medic$1.class | Bin 0 -> 1264 bytes bin/jake2/game/monsters/M_Medic$10.class | Bin 0 -> 1880 bytes bin/jake2/game/monsters/M_Medic$11.class | Bin 0 -> 1214 bytes bin/jake2/game/monsters/M_Medic$12.class | Bin 0 -> 1007 bytes bin/jake2/game/monsters/M_Medic$13.class | Bin 0 -> 1022 bytes bin/jake2/game/monsters/M_Medic$14.class | Bin 0 -> 1032 bytes bin/jake2/game/monsters/M_Medic$15.class | Bin 0 -> 1068 bytes bin/jake2/game/monsters/M_Medic$16.class | Bin 0 -> 851 bytes bin/jake2/game/monsters/M_Medic$17.class | Bin 0 -> 3530 bytes bin/jake2/game/monsters/M_Medic$18.class | Bin 0 -> 1020 bytes bin/jake2/game/monsters/M_Medic$19.class | Bin 0 -> 963 bytes bin/jake2/game/monsters/M_Medic$2.class | Bin 0 -> 1308 bytes bin/jake2/game/monsters/M_Medic$20.class | Bin 0 -> 958 bytes bin/jake2/game/monsters/M_Medic$3.class | Bin 0 -> 881 bytes bin/jake2/game/monsters/M_Medic$4.class | Bin 0 -> 832 bytes bin/jake2/game/monsters/M_Medic$5.class | Bin 0 -> 830 bytes bin/jake2/game/monsters/M_Medic$6.class | Bin 0 -> 1271 bytes bin/jake2/game/monsters/M_Medic$7.class | Bin 0 -> 1744 bytes bin/jake2/game/monsters/M_Medic$8.class | Bin 0 -> 1738 bytes bin/jake2/game/monsters/M_Medic$9.class | Bin 0 -> 1070 bytes bin/jake2/game/monsters/M_Medic.class | Bin 0 -> 21447 bytes bin/jake2/game/monsters/M_Mutant$1.class | Bin 0 -> 1063 bytes bin/jake2/game/monsters/M_Mutant$10.class | Bin 0 -> 949 bytes bin/jake2/game/monsters/M_Mutant$11.class | Bin 0 -> 1241 bytes bin/jake2/game/monsters/M_Mutant$12.class | Bin 0 -> 1243 bytes bin/jake2/game/monsters/M_Mutant$13.class | Bin 0 -> 1224 bytes bin/jake2/game/monsters/M_Mutant$14.class | Bin 0 -> 841 bytes bin/jake2/game/monsters/M_Mutant$15.class | Bin 0 -> 1931 bytes bin/jake2/game/monsters/M_Mutant$16.class | Bin 0 -> 1620 bytes bin/jake2/game/monsters/M_Mutant$17.class | Bin 0 -> 1276 bytes bin/jake2/game/monsters/M_Mutant$18.class | Bin 0 -> 838 bytes bin/jake2/game/monsters/M_Mutant$19.class | Bin 0 -> 825 bytes bin/jake2/game/monsters/M_Mutant$2.class | Bin 0 -> 886 bytes bin/jake2/game/monsters/M_Mutant$20.class | Bin 0 -> 1290 bytes bin/jake2/game/monsters/M_Mutant$21.class | Bin 0 -> 1042 bytes bin/jake2/game/monsters/M_Mutant$22.class | Bin 0 -> 1875 bytes bin/jake2/game/monsters/M_Mutant$23.class | Bin 0 -> 1138 bytes bin/jake2/game/monsters/M_Mutant$24.class | Bin 0 -> 2044 bytes bin/jake2/game/monsters/M_Mutant$25.class | Bin 0 -> 3444 bytes bin/jake2/game/monsters/M_Mutant$3.class | Bin 0 -> 844 bytes bin/jake2/game/monsters/M_Mutant$4.class | Bin 0 -> 842 bytes bin/jake2/game/monsters/M_Mutant$5.class | Bin 0 -> 838 bytes bin/jake2/game/monsters/M_Mutant$6.class | Bin 0 -> 884 bytes bin/jake2/game/monsters/M_Mutant$7.class | Bin 0 -> 1037 bytes bin/jake2/game/monsters/M_Mutant$8.class | Bin 0 -> 841 bytes bin/jake2/game/monsters/M_Mutant$9.class | Bin 0 -> 842 bytes bin/jake2/game/monsters/M_Mutant.class | Bin 0 -> 13757 bytes bin/jake2/game/monsters/M_Parasite$1.class | Bin 0 -> 854 bytes bin/jake2/game/monsters/M_Parasite$10.class | Bin 0 -> 862 bytes bin/jake2/game/monsters/M_Parasite$11.class | Bin 0 -> 857 bytes bin/jake2/game/monsters/M_Parasite$12.class | Bin 0 -> 1005 bytes bin/jake2/game/monsters/M_Parasite$13.class | Bin 0 -> 858 bytes bin/jake2/game/monsters/M_Parasite$14.class | Bin 0 -> 975 bytes bin/jake2/game/monsters/M_Parasite$15.class | Bin 0 -> 963 bytes bin/jake2/game/monsters/M_Parasite$16.class | Bin 0 -> 1721 bytes bin/jake2/game/monsters/M_Parasite$17.class | Bin 0 -> 2596 bytes bin/jake2/game/monsters/M_Parasite$18.class | Bin 0 -> 853 bytes bin/jake2/game/monsters/M_Parasite$19.class | Bin 0 -> 1087 bytes bin/jake2/game/monsters/M_Parasite$2.class | Bin 0 -> 855 bytes bin/jake2/game/monsters/M_Parasite$20.class | Bin 0 -> 1827 bytes bin/jake2/game/monsters/M_Parasite$21.class | Bin 0 -> 3153 bytes bin/jake2/game/monsters/M_Parasite$3.class | Bin 0 -> 896 bytes bin/jake2/game/monsters/M_Parasite$4.class | Bin 0 -> 848 bytes bin/jake2/game/monsters/M_Parasite$5.class | Bin 0 -> 856 bytes bin/jake2/game/monsters/M_Parasite$6.class | Bin 0 -> 854 bytes bin/jake2/game/monsters/M_Parasite$7.class | Bin 0 -> 860 bytes bin/jake2/game/monsters/M_Parasite$8.class | Bin 0 -> 848 bytes bin/jake2/game/monsters/M_Parasite$9.class | Bin 0 -> 850 bytes bin/jake2/game/monsters/M_Parasite.class | Bin 0 -> 12895 bytes bin/jake2/game/monsters/M_Player.class | Bin 0 -> 7685 bytes bin/jake2/game/monsters/M_Soldier$1.class | Bin 0 -> 1080 bytes bin/jake2/game/monsters/M_Soldier$10.class | Bin 0 -> 708 bytes bin/jake2/game/monsters/M_Soldier$11.class | Bin 0 -> 708 bytes bin/jake2/game/monsters/M_Soldier$12.class | Bin 0 -> 1224 bytes bin/jake2/game/monsters/M_Soldier$13.class | Bin 0 -> 791 bytes bin/jake2/game/monsters/M_Soldier$14.class | Bin 0 -> 708 bytes bin/jake2/game/monsters/M_Soldier$15.class | Bin 0 -> 708 bytes bin/jake2/game/monsters/M_Soldier$16.class | Bin 0 -> 709 bytes bin/jake2/game/monsters/M_Soldier$17.class | Bin 0 -> 941 bytes bin/jake2/game/monsters/M_Soldier$18.class | Bin 0 -> 1009 bytes bin/jake2/game/monsters/M_Soldier$19.class | Bin 0 -> 895 bytes bin/jake2/game/monsters/M_Soldier$2.class | Bin 0 -> 2540 bytes bin/jake2/game/monsters/M_Soldier$20.class | Bin 0 -> 988 bytes bin/jake2/game/monsters/M_Soldier$21.class | Bin 0 -> 1147 bytes bin/jake2/game/monsters/M_Soldier$22.class | Bin 0 -> 2190 bytes bin/jake2/game/monsters/M_Soldier$23.class | Bin 0 -> 1032 bytes bin/jake2/game/monsters/M_Soldier$24.class | Bin 0 -> 1483 bytes bin/jake2/game/monsters/M_Soldier$25.class | Bin 0 -> 2402 bytes bin/jake2/game/monsters/M_Soldier$26.class | Bin 0 -> 1591 bytes bin/jake2/game/monsters/M_Soldier$27.class | Bin 0 -> 1862 bytes bin/jake2/game/monsters/M_Soldier$28.class | Bin 0 -> 1477 bytes bin/jake2/game/monsters/M_Soldier$29.class | Bin 0 -> 1036 bytes bin/jake2/game/monsters/M_Soldier$3.class | Bin 0 -> 1319 bytes bin/jake2/game/monsters/M_Soldier$30.class | Bin 0 -> 1017 bytes bin/jake2/game/monsters/M_Soldier$31.class | Bin 0 -> 1160 bytes bin/jake2/game/monsters/M_Soldier$32.class | Bin 0 -> 1551 bytes bin/jake2/game/monsters/M_Soldier$4.class | Bin 0 -> 1302 bytes bin/jake2/game/monsters/M_Soldier$5.class | Bin 0 -> 1320 bytes bin/jake2/game/monsters/M_Soldier$6.class | Bin 0 -> 1303 bytes bin/jake2/game/monsters/M_Soldier$7.class | Bin 0 -> 1008 bytes bin/jake2/game/monsters/M_Soldier$8.class | Bin 0 -> 1126 bytes bin/jake2/game/monsters/M_Soldier$9.class | Bin 0 -> 707 bytes bin/jake2/game/monsters/M_Soldier.class | Bin 0 -> 36628 bytes bin/jake2/game/monsters/M_Supertank$1.class | Bin 0 -> 852 bytes bin/jake2/game/monsters/M_Supertank$10.class | Bin 0 -> 1355 bytes bin/jake2/game/monsters/M_Supertank$11.class | Bin 0 -> 1158 bytes bin/jake2/game/monsters/M_Supertank$12.class | Bin 0 -> 1985 bytes bin/jake2/game/monsters/M_Supertank$13.class | Bin 0 -> 1270 bytes bin/jake2/game/monsters/M_Supertank$14.class | Bin 0 -> 2951 bytes bin/jake2/game/monsters/M_Supertank$15.class | Bin 0 -> 2282 bytes bin/jake2/game/monsters/M_Supertank$2.class | Bin 0 -> 1010 bytes bin/jake2/game/monsters/M_Supertank$3.class | Bin 0 -> 856 bytes bin/jake2/game/monsters/M_Supertank$4.class | Bin 0 -> 860 bytes bin/jake2/game/monsters/M_Supertank$5.class | Bin 0 -> 857 bytes bin/jake2/game/monsters/M_Supertank$6.class | Bin 0 -> 968 bytes bin/jake2/game/monsters/M_Supertank$7.class | Bin 0 -> 1084 bytes bin/jake2/game/monsters/M_Supertank$8.class | Bin 0 -> 1730 bytes bin/jake2/game/monsters/M_Supertank$9.class | Bin 0 -> 1794 bytes bin/jake2/game/monsters/M_Supertank.class | Bin 0 -> 19643 bytes bin/jake2/game/monsters/M_Tank$1.class | Bin 0 -> 876 bytes bin/jake2/game/monsters/M_Tank$10.class | Bin 0 -> 1663 bytes bin/jake2/game/monsters/M_Tank$11.class | Bin 0 -> 835 bytes bin/jake2/game/monsters/M_Tank$12.class | Bin 0 -> 1709 bytes bin/jake2/game/monsters/M_Tank$13.class | Bin 0 -> 1788 bytes bin/jake2/game/monsters/M_Tank$14.class | Bin 0 -> 1288 bytes bin/jake2/game/monsters/M_Tank$15.class | Bin 0 -> 762 bytes bin/jake2/game/monsters/M_Tank$16.class | Bin 0 -> 851 bytes bin/jake2/game/monsters/M_Tank$17.class | Bin 0 -> 1290 bytes bin/jake2/game/monsters/M_Tank$18.class | Bin 0 -> 1861 bytes bin/jake2/game/monsters/M_Tank$19.class | Bin 0 -> 1056 bytes bin/jake2/game/monsters/M_Tank$2.class | Bin 0 -> 834 bytes bin/jake2/game/monsters/M_Tank$20.class | Bin 0 -> 1871 bytes bin/jake2/game/monsters/M_Tank$21.class | Bin 0 -> 3429 bytes bin/jake2/game/monsters/M_Tank$3.class | Bin 0 -> 830 bytes bin/jake2/game/monsters/M_Tank$4.class | Bin 0 -> 834 bytes bin/jake2/game/monsters/M_Tank$5.class | Bin 0 -> 830 bytes bin/jake2/game/monsters/M_Tank$6.class | Bin 0 -> 826 bytes bin/jake2/game/monsters/M_Tank$7.class | Bin 0 -> 1174 bytes bin/jake2/game/monsters/M_Tank$8.class | Bin 0 -> 824 bytes bin/jake2/game/monsters/M_Tank$9.class | Bin 0 -> 1903 bytes bin/jake2/game/monsters/M_Tank.class | Bin 0 -> 22590 bytes bin/jake2/game/moveinfo_t.class | Bin 0 -> 2132 bytes bin/jake2/game/player_state_t.class | Bin 0 -> 3896 bytes bin/jake2/game/pmove_state_t.class | Bin 0 -> 3049 bytes .../game/pmove_t$PointContentsAdapter.class | Bin 0 -> 493 bytes bin/jake2/game/pmove_t$TraceAdapter.class | Bin 0 -> 536 bytes bin/jake2/game/pmove_t.class | Bin 0 -> 1867 bytes bin/jake2/game/pushed_t.class | Bin 0 -> 440 bytes bin/jake2/game/spawn_t.class | Bin 0 -> 465 bytes bin/jake2/game/spawn_temp_t.class | Bin 0 -> 1801 bytes bin/jake2/game/trace_t.class | Bin 0 -> 1137 bytes bin/jake2/game/usercmd_t.class | Bin 0 -> 1193 bytes bin/jake2/qcommon/CM$carea_t.class | Bin 0 -> 433 bytes bin/jake2/qcommon/CM$cbrush_t.class | Bin 0 -> 429 bytes bin/jake2/qcommon/CM$cbrushside_t.class | Bin 0 -> 439 bytes bin/jake2/qcommon/CM$cleaf_t.class | Bin 0 -> 448 bytes bin/jake2/qcommon/CM$cnode_t.class | Bin 0 -> 427 bytes bin/jake2/qcommon/CM.class | Bin 0 -> 32196 bytes bin/jake2/qcommon/CRC.class | Bin 0 -> 4119 bytes bin/jake2/qcommon/Cbuf.class | Bin 0 -> 4053 bytes bin/jake2/qcommon/Com$1.class | Bin 0 -> 602 bytes bin/jake2/qcommon/Com$ParseHelp.class | Bin 0 -> 1860 bytes bin/jake2/qcommon/Com$RD_Flusher.class | Bin 0 -> 401 bytes bin/jake2/qcommon/Com.class | Bin 0 -> 15206 bytes bin/jake2/qcommon/Cvar$1.class | Bin 0 -> 1135 bytes bin/jake2/qcommon/Cvar$2.class | Bin 0 -> 1302 bytes bin/jake2/qcommon/Cvar.class | Bin 0 -> 6675 bytes bin/jake2/qcommon/FS$1.class | Bin 0 -> 471 bytes bin/jake2/qcommon/FS$2.class | Bin 0 -> 471 bytes bin/jake2/qcommon/FS$3.class | Bin 0 -> 470 bytes bin/jake2/qcommon/FS$dpackheader_t.class | Bin 0 -> 410 bytes bin/jake2/qcommon/FS$filelink_t.class | Bin 0 -> 421 bytes bin/jake2/qcommon/FS$pack_t.class | Bin 0 -> 529 bytes bin/jake2/qcommon/FS$packfile_t.class | Bin 0 -> 968 bytes bin/jake2/qcommon/FS$searchpath_t.class | Bin 0 -> 497 bytes bin/jake2/qcommon/FS.class | Bin 0 -> 15672 bytes bin/jake2/qcommon/MD4.class | Bin 0 -> 4996 bytes bin/jake2/qcommon/MSG.class | Bin 0 -> 10057 bytes bin/jake2/qcommon/Netchan.class | Bin 0 -> 5897 bytes bin/jake2/qcommon/PMove$pml_t.class | Bin 0 -> 780 bytes bin/jake2/qcommon/PMove.class | Bin 0 -> 16494 bytes bin/jake2/qcommon/Qcommon.class | Bin 0 -> 5417 bytes bin/jake2/qcommon/SZ.class | Bin 0 -> 2480 bytes bin/jake2/qcommon/cmd_function_t.class | Bin 0 -> 436 bytes bin/jake2/qcommon/longjmpException.class | Bin 0 -> 316 bytes bin/jake2/qcommon/lump_t.class | Bin 0 -> 396 bytes bin/jake2/qcommon/miptex_t.class | Bin 0 -> 515 bytes bin/jake2/qcommon/netadr_t.class | Bin 0 -> 1339 bytes bin/jake2/qcommon/netchan_t.class | Bin 0 -> 1299 bytes bin/jake2/qcommon/qfiles$daliasframe_t.class | Bin 0 -> 922 bytes bin/jake2/qcommon/qfiles$darea_t.class | Bin 0 -> 814 bytes bin/jake2/qcommon/qfiles$dareaportal_t.class | Bin 0 -> 886 bytes bin/jake2/qcommon/qfiles$dbrush_t.class | Bin 0 -> 846 bytes bin/jake2/qcommon/qfiles$dbrushside_t.class | Bin 0 -> 828 bytes bin/jake2/qcommon/qfiles$dedge_t.class | Bin 0 -> 396 bytes bin/jake2/qcommon/qfiles$dface_t.class | Bin 0 -> 902 bytes bin/jake2/qcommon/qfiles$dheader_t.class | Bin 0 -> 920 bytes bin/jake2/qcommon/qfiles$dleaf_t.class | Bin 0 -> 1370 bytes bin/jake2/qcommon/qfiles$dmdl_t.class | Bin 0 -> 1833 bytes bin/jake2/qcommon/qfiles$dmodel_t.class | Bin 0 -> 1206 bytes bin/jake2/qcommon/qfiles$dnode_t.class | Bin 0 -> 1166 bytes bin/jake2/qcommon/qfiles$dplane_t.class | Bin 0 -> 876 bytes bin/jake2/qcommon/qfiles$dsprframe_t.class | Bin 0 -> 881 bytes bin/jake2/qcommon/qfiles$dsprite_t.class | Bin 0 -> 848 bytes bin/jake2/qcommon/qfiles$dstvert_t.class | Bin 0 -> 553 bytes bin/jake2/qcommon/qfiles$dtriangle_t.class | Bin 0 -> 657 bytes bin/jake2/qcommon/qfiles$dvertex_t.class | Bin 0 -> 625 bytes bin/jake2/qcommon/qfiles$dvis_t.class | Bin 0 -> 696 bytes bin/jake2/qcommon/qfiles$miptex_t.class | Bin 0 -> 1414 bytes bin/jake2/qcommon/qfiles$pcx_t.class | Bin 0 -> 1678 bytes bin/jake2/qcommon/qfiles$tga_t.class | Bin 0 -> 1448 bytes bin/jake2/qcommon/qfiles.class | Bin 0 -> 2059 bytes bin/jake2/qcommon/sizebuf_t.class | Bin 0 -> 706 bytes bin/jake2/qcommon/texinfo_t.class | Bin 0 -> 1366 bytes bin/jake2/qcommon/xcommand_t.class | Bin 0 -> 301 bytes bin/jake2/render/DummyRenderer.class | Bin 0 -> 3315 bytes bin/jake2/render/LWJGLRenderer.class | Bin 0 -> 4566 bytes bin/jake2/render/Ref.class | Bin 0 -> 192 bytes bin/jake2/render/Renderer.class | Bin 0 -> 2410 bytes bin/jake2/render/glconfig_t.class | Bin 0 -> 834 bytes bin/jake2/render/glpoly_t.class | Bin 0 -> 713 bytes bin/jake2/render/glstate_t.class | Bin 0 -> 713 bytes bin/jake2/render/image_t.class | Bin 0 -> 1560 bytes bin/jake2/render/lwjgl/Anorms.class | Bin 0 -> 30542 bytes bin/jake2/render/lwjgl/Base.class | Bin 0 -> 2295 bytes bin/jake2/render/lwjgl/Draw.class | Bin 0 -> 7194 bytes .../render/lwjgl/Image$floodfill_t.class | Bin 0 -> 405 bytes bin/jake2/render/lwjgl/Image$glmode_t.class | Bin 0 -> 573 bytes bin/jake2/render/lwjgl/Image$gltmode_t.class | Bin 0 -> 513 bytes bin/jake2/render/lwjgl/Image$pos_t.class | Bin 0 -> 457 bytes bin/jake2/render/lwjgl/Image.class | Bin 0 -> 27194 bytes bin/jake2/render/lwjgl/LWJGLBase.class | Bin 0 -> 6878 bytes bin/jake2/render/lwjgl/Light.class | Bin 0 -> 13544 bytes bin/jake2/render/lwjgl/Main$1.class | Bin 0 -> 593 bytes bin/jake2/render/lwjgl/Main$2.class | Bin 0 -> 594 bytes bin/jake2/render/lwjgl/Main$3.class | Bin 0 -> 594 bytes bin/jake2/render/lwjgl/Main$4.class | Bin 0 -> 591 bytes bin/jake2/render/lwjgl/Main.class | Bin 0 -> 26718 bytes bin/jake2/render/lwjgl/Mesh.class | Bin 0 -> 12909 bytes bin/jake2/render/lwjgl/Misc.class | Bin 0 -> 6925 bytes bin/jake2/render/lwjgl/Model.class | Bin 0 -> 25225 bytes bin/jake2/render/lwjgl/Polygon.class | Bin 0 -> 3303 bytes .../render/lwjgl/Surf$gllightmapstate_t.class | Bin 0 -> 1097 bytes bin/jake2/render/lwjgl/Surf.class | Bin 0 -> 20462 bytes bin/jake2/render/lwjgl/Warp.class | Bin 0 -> 15166 bytes bin/jake2/render/medge_t.class | Bin 0 -> 582 bytes bin/jake2/render/mleaf_t.class | Bin 0 -> 1384 bytes bin/jake2/render/mmodel_t.class | Bin 0 -> 528 bytes bin/jake2/render/mnode_t.class | Bin 0 -> 564 bytes bin/jake2/render/model_t.class | Bin 0 -> 3011 bytes bin/jake2/render/msurface_t.class | Bin 0 -> 1611 bytes bin/jake2/render/mtexinfo_t.class | Bin 0 -> 705 bytes bin/jake2/render/mvertex_t.class | Bin 0 -> 578 bytes bin/jake2/server/SV.class | Bin 0 -> 17761 bytes bin/jake2/server/SV_CCMDS$1.class | Bin 0 -> 509 bytes bin/jake2/server/SV_CCMDS$10.class | Bin 0 -> 508 bytes bin/jake2/server/SV_CCMDS$11.class | Bin 0 -> 514 bytes bin/jake2/server/SV_CCMDS$12.class | Bin 0 -> 512 bytes bin/jake2/server/SV_CCMDS$13.class | Bin 0 -> 510 bytes bin/jake2/server/SV_CCMDS$14.class | Bin 0 -> 510 bytes bin/jake2/server/SV_CCMDS$15.class | Bin 0 -> 512 bytes bin/jake2/server/SV_CCMDS$16.class | Bin 0 -> 515 bytes bin/jake2/server/SV_CCMDS$2.class | Bin 0 -> 504 bytes bin/jake2/server/SV_CCMDS$3.class | Bin 0 -> 506 bytes bin/jake2/server/SV_CCMDS$4.class | Bin 0 -> 510 bytes bin/jake2/server/SV_CCMDS$5.class | Bin 0 -> 508 bytes bin/jake2/server/SV_CCMDS$6.class | Bin 0 -> 503 bytes bin/jake2/server/SV_CCMDS$7.class | Bin 0 -> 507 bytes bin/jake2/server/SV_CCMDS$8.class | Bin 0 -> 507 bytes bin/jake2/server/SV_CCMDS$9.class | Bin 0 -> 509 bytes bin/jake2/server/SV_CCMDS.class | Bin 0 -> 18328 bytes bin/jake2/server/SV_ENTS.class | Bin 0 -> 11261 bytes bin/jake2/server/SV_GAME.class | Bin 0 -> 6811 bytes bin/jake2/server/SV_INIT.class | Bin 0 -> 9710 bytes bin/jake2/server/SV_MAIN$1.class | Bin 0 -> 836 bytes bin/jake2/server/SV_MAIN.class | Bin 0 -> 17144 bytes bin/jake2/server/SV_SEND.class | Bin 0 -> 9224 bytes bin/jake2/server/SV_USER$1.class | Bin 0 -> 482 bytes bin/jake2/server/SV_USER$10.class | Bin 0 -> 493 bytes bin/jake2/server/SV_USER$2.class | Bin 0 -> 482 bytes bin/jake2/server/SV_USER$3.class | Bin 0 -> 492 bytes bin/jake2/server/SV_USER$4.class | Bin 0 -> 488 bytes bin/jake2/server/SV_USER$5.class | Bin 0 -> 484 bytes bin/jake2/server/SV_USER$6.class | Bin 0 -> 489 bytes bin/jake2/server/SV_USER$7.class | Bin 0 -> 489 bytes bin/jake2/server/SV_USER$8.class | Bin 0 -> 493 bytes bin/jake2/server/SV_USER$9.class | Bin 0 -> 492 bytes bin/jake2/server/SV_USER$ucmd_t.class | Bin 0 -> 533 bytes bin/jake2/server/SV_USER.class | Bin 0 -> 12648 bytes bin/jake2/server/SV_WORLD.class | Bin 0 -> 10061 bytes bin/jake2/server/areanode_t.class | Bin 0 -> 681 bytes bin/jake2/server/challenge_t.class | Bin 0 -> 426 bytes bin/jake2/server/client_frame_t.class | Bin 0 -> 536 bytes bin/jake2/server/client_t.class | Bin 0 -> 1458 bytes bin/jake2/server/moveclip_t.class | Bin 0 -> 1003 bytes bin/jake2/server/server_static_t.class | Bin 0 -> 1039 bytes bin/jake2/server/server_t.class | Bin 0 -> 1139 bytes bin/jake2/sound/DummyDriver.class | Bin 0 -> 1905 bytes bin/jake2/sound/S.class | Bin 0 -> 4623 bytes bin/jake2/sound/Sound.class | Bin 0 -> 634 bytes bin/jake2/sound/WaveLoader$wavinfo_t.class | Bin 0 -> 480 bytes bin/jake2/sound/WaveLoader.class | Bin 0 -> 5824 bytes bin/jake2/sound/lwjgl/Channel.class | Bin 0 -> 9541 bytes bin/jake2/sound/lwjgl/LWJGLSoundImpl$1.class | Bin 0 -> 638 bytes bin/jake2/sound/lwjgl/LWJGLSoundImpl$2.class | Bin 0 -> 647 bytes bin/jake2/sound/lwjgl/LWJGLSoundImpl$3.class | Bin 0 -> 643 bytes bin/jake2/sound/lwjgl/LWJGLSoundImpl$4.class | Bin 0 -> 645 bytes bin/jake2/sound/lwjgl/LWJGLSoundImpl.class | Bin 0 -> 13099 bytes bin/jake2/sound/lwjgl/PlaySound.class | Bin 0 -> 2806 bytes bin/jake2/sound/sfx_t.class | Bin 0 -> 637 bytes bin/jake2/sound/sfxcache_t.class | Bin 0 -> 438 bytes bin/jake2/sound/soundinfo_t.class | Bin 0 -> 407 bytes bin/jake2/sound/wavinfo_t.class | Bin 0 -> 386 bytes bin/jake2/sys/HighPrecisionTimer.class | Bin 0 -> 777 bytes bin/jake2/sys/IN$1.class | Bin 0 -> 460 bytes bin/jake2/sys/IN$2.class | Bin 0 -> 458 bytes bin/jake2/sys/IN$3.class | Bin 0 -> 469 bytes bin/jake2/sys/IN$4.class | Bin 0 -> 462 bytes bin/jake2/sys/IN.class | Bin 0 -> 4538 bytes bin/jake2/sys/InputListener.class | Bin 0 -> 3263 bytes bin/jake2/sys/JOGLKBD.class | Bin 0 -> 5059 bytes bin/jake2/sys/Jake2InputEvent.class | Bin 0 -> 731 bytes bin/jake2/sys/KBD.class | Bin 0 -> 573 bytes bin/jake2/sys/LWJGLKBD.class | Bin 0 -> 3559 bytes bin/jake2/sys/NET$loopback_t.class | Bin 0 -> 584 bytes bin/jake2/sys/NET$loopmsg_t.class | Bin 0 -> 405 bytes bin/jake2/sys/NET.class | Bin 0 -> 7920 bytes bin/jake2/sys/NanoTimer.class | Bin 0 -> 569 bytes bin/jake2/sys/StandardTimer.class | Bin 0 -> 555 bytes bin/jake2/sys/Sys$FileFilter.class | Bin 0 -> 2501 bytes bin/jake2/sys/Sys.class | Bin 0 -> 2777 bytes bin/jake2/sys/Timer.class | Bin 0 -> 1186 bytes bin/jake2/util/Lib.class | Bin 0 -> 9479 bytes bin/jake2/util/Math3D.class | Bin 0 -> 11032 bytes ...PrintfFormat$ConversionSpecification.class | Bin 0 -> 32634 bytes bin/jake2/util/PrintfFormat.class | Bin 0 -> 6930 bytes bin/jake2/util/QuakeFile.class | Bin 0 -> 3516 bytes bin/jake2/util/Vargs.class | Bin 0 -> 2568 bytes bin/jake2/util/Vec3Cache.class | Bin 0 -> 1131 bytes build.xml | 175 + doc/LICENSE | 340 ++ doc/README | 58 + doc/readme.id | 29 + executables/LWJake2.bat | 2 + executables/LWJake2.sh | 3 + executables/LWJake2_Server.bat | 2 + executables/LWJake2_Server.sh | 3 + findbugs/LWJake2.fbf | 2 + findbugs/LWJake2.fbp | 6 + findbugs/findbugs-2.0.0/README.txt | 20 + findbugs/findbugs-2.0.0/bin/addMessages | 73 + findbugs/findbugs-2.0.0/bin/computeBugHistory | 78 + findbugs/findbugs-2.0.0/bin/convertXmlToText | 73 + findbugs/findbugs-2.0.0/bin/copyBuggySource | 75 + findbugs/findbugs-2.0.0/bin/defectDensity | 77 + .../findbugs-2.0.0/bin/deprecated/bugHistory | 75 + .../findbugs-2.0.0/bin/deprecated/unionBugs | 78 + .../bin/deprecated/unionResults | 80 + .../findbugs-2.0.0/bin/deprecated/updateBugs | 78 + .../experimental/backdateHistoryUsingSource | 75 + .../findbugs-2.0.0/bin/experimental/churn | 75 + .../findbugs-2.0.0/bin/experimental/obfuscate | 75 + .../bin/experimental/treemapVisualization | 75 + findbugs/findbugs-2.0.0/bin/fb | 192 + findbugs/findbugs-2.0.0/bin/fbwrap | 84 + findbugs/findbugs-2.0.0/bin/filterBugs | 78 + findbugs/findbugs-2.0.0/bin/findbugs | 199 + findbugs/findbugs-2.0.0/bin/findbugs-csr | 76 + findbugs/findbugs-2.0.0/bin/findbugs-dbStats | 76 + findbugs/findbugs-2.0.0/bin/findbugs-msv | 76 + findbugs/findbugs-2.0.0/bin/findbugs.bat | 240 + findbugs/findbugs-2.0.0/bin/findbugs2 | 177 + .../findbugs-2.0.0/bin/listBugDatabaseInfo | 75 + findbugs/findbugs-2.0.0/bin/mineBugHistory | 73 + findbugs/findbugs-2.0.0/bin/printAppVersion | 75 + findbugs/findbugs-2.0.0/bin/printClass | 73 + findbugs/findbugs-2.0.0/bin/rejarForAnalysis | 75 + .../findbugs-2.0.0/bin/setBugDatabaseInfo | 75 + findbugs/findbugs-2.0.0/bin/unionBugs | 80 + findbugs/findbugs-2.0.0/bin/xpathFind | 75 + .../findbugs-2.0.0/doc/AddingDetectors.txt | 237 + findbugs/findbugs-2.0.0/doc/Changes.html | 3505 +++++++++++ findbugs/findbugs-2.0.0/doc/FAQ.html | 275 + findbugs/findbugs-2.0.0/doc/FilterFile.txt | 125 + .../doc/allBugDescriptions.html | 5185 +++++++++++++++++ findbugs/findbugs-2.0.0/doc/bug-logo.png | Bin 0 -> 3887 bytes .../findbugs-2.0.0/doc/bugDescriptions.html | 5182 ++++++++++++++++ findbugs/findbugs-2.0.0/doc/buggy-sm.png | Bin 0 -> 9803 bytes findbugs/findbugs-2.0.0/doc/contributing.html | 121 + .../doc/customers/ITAsoftware.png | Bin 0 -> 2701 bytes .../doc/customers/geoLocation.png | Bin 0 -> 28724 bytes .../findbugs-2.0.0/doc/customers/geoMap.png | Bin 0 -> 58866 bytes .../doc/customers/glassfish.png | Bin 0 -> 2023 bytes .../findbugs-2.0.0/doc/customers/google.png | Bin 0 -> 3526 bytes .../findbugs-2.0.0/doc/customers/logo_umd.png | Bin 0 -> 2623 bytes findbugs/findbugs-2.0.0/doc/customers/nsf.png | Bin 0 -> 5793 bytes .../findbugs-2.0.0/doc/customers/sat4j.png | Bin 0 -> 2509 bytes .../doc/customers/sleepycat.png | Bin 0 -> 1886 bytes findbugs/findbugs-2.0.0/doc/customers/sun.png | Bin 0 -> 2380 bytes findbugs/findbugs-2.0.0/doc/demo.html | 219 + findbugs/findbugs-2.0.0/doc/downloads.html | 118 + .../doc/eclipse-filters-icon.png | Bin 0 -> 416 bytes findbugs/findbugs-2.0.0/doc/factSheet.html | 128 + findbugs/findbugs-2.0.0/doc/findbugs.css | 15 + findbugs/findbugs-2.0.0/doc/findbugs2.html | 285 + .../doc/guaranteedDereference.png | Bin 0 -> 40771 bytes findbugs/findbugs-2.0.0/doc/index.html | 311 + .../doc/infiniteRecursiveLoops.png | Bin 0 -> 31862 bytes findbugs/findbugs-2.0.0/doc/informal.png | Bin 0 -> 9914 bytes .../doc/ja/manual/acknowledgments.html | 123 + .../doc/ja/manual/analysisprops.html | 6 + .../doc/ja/manual/annotations.html | 67 + .../findbugs-2.0.0/doc/ja/manual/anttask.html | 40 + .../doc/ja/manual/building.html | 40 + .../doc/ja/manual/datamining.html | 280 + .../findbugs-2.0.0/doc/ja/manual/eclipse.html | 3 + .../doc/ja/manual/example-code.png | Bin 0 -> 17799 bytes .../doc/ja/manual/example-details.png | Bin 0 -> 53029 bytes .../findbugs-2.0.0/doc/ja/manual/example.png | Bin 0 -> 17653 bytes .../findbugs-2.0.0/doc/ja/manual/filter.html | 168 + .../findbugs-2.0.0/doc/ja/manual/gui.html | 5 + .../doc/ja/manual/important.png | Bin 0 -> 722 bytes .../findbugs-2.0.0/doc/ja/manual/index.html | 3 + .../doc/ja/manual/infiniteRecursiveLoops.png | Bin 0 -> 24467 bytes .../doc/ja/manual/installing.html | 9 + .../doc/ja/manual/introduction.html | 3 + .../findbugs-2.0.0/doc/ja/manual/license.html | 3 + .../findbugs-2.0.0/doc/ja/manual/note.png | Bin 0 -> 490 bytes .../doc/ja/manual/project-dialog.png | Bin 0 -> 11995 bytes .../doc/ja/manual/rejarForAnalysis.html | 3 + .../findbugs-2.0.0/doc/ja/manual/running.html | 22 + .../findbugs-2.0.0/doc/ja/manual/warning.png | Bin 0 -> 1241 bytes findbugs/findbugs-2.0.0/doc/links.html | 126 + findbugs/findbugs-2.0.0/doc/mailingLists.html | 85 + findbugs/findbugs-2.0.0/doc/manual-fo.xsl | 30 + findbugs/findbugs-2.0.0/doc/manual.xml | 3940 +++++++++++++ findbugs/findbugs-2.0.0/doc/manual.xsl | 36 + .../doc/manual/acknowledgments.html | 124 + .../doc/manual/analysisprops.html | 45 + .../doc/manual/annotations.html | 101 + .../findbugs-2.0.0/doc/manual/anttask.html | 203 + .../findbugs-2.0.0/doc/manual/building.html | 123 + .../findbugs-2.0.0/doc/manual/datamining.html | 421 ++ .../findbugs-2.0.0/doc/manual/eclipse.html | 112 + .../doc/manual/example-code.png | Bin 0 -> 17799 bytes .../doc/manual/example-details.png | Bin 0 -> 53029 bytes .../findbugs-2.0.0/doc/manual/example.png | Bin 0 -> 17653 bytes .../findbugs-2.0.0/doc/manual/filter.html | 355 ++ findbugs/findbugs-2.0.0/doc/manual/gui.html | 68 + .../findbugs-2.0.0/doc/manual/important.png | Bin 0 -> 722 bytes findbugs/findbugs-2.0.0/doc/manual/index.html | 10 + .../doc/manual/infiniteRecursiveLoops.png | Bin 0 -> 24467 bytes .../findbugs-2.0.0/doc/manual/installing.html | 29 + .../doc/manual/introduction.html | 12 + .../findbugs-2.0.0/doc/manual/license.html | 13 + findbugs/findbugs-2.0.0/doc/manual/note.png | Bin 0 -> 490 bytes .../doc/manual/project-dialog.png | Bin 0 -> 11995 bytes .../doc/manual/rejarForAnalysis.html | 33 + .../findbugs-2.0.0/doc/manual/running.html | 203 + .../findbugs-2.0.0/doc/manual/warning.png | Bin 0 -> 1241 bytes findbugs/findbugs-2.0.0/doc/manual_ja.xml | 2806 +++++++++ findbugs/findbugs-2.0.0/doc/performance.html | 114 + .../findbugs-2.0.0/doc/performingARelease.txt | 27 + .../findbugs-2.0.0/doc/pluginStructure.txt | 28 + findbugs/findbugs-2.0.0/doc/plugins.txt | 9 + findbugs/findbugs-2.0.0/doc/pressRelease.pdf | Bin 0 -> 115000 bytes findbugs/findbugs-2.0.0/doc/publications.html | 138 + .../findbugs-2.0.0/doc/reportingBugs.html | 127 + findbugs/findbugs-2.0.0/doc/sourceInfo.html | 115 + findbugs/findbugs-2.0.0/doc/sysprops.html | 202 + findbugs/findbugs-2.0.0/doc/team.html | 98 + findbugs/findbugs-2.0.0/doc/umdFindbugs.png | Bin 0 -> 29745 bytes .../findbugs-2.0.0/doc/updateChecking.html | 123 + findbugs/findbugs-2.0.0/doc/users.html | 199 + findbugs/findbugs-2.0.0/lib/annotations.jar | Bin 0 -> 74080 bytes findbugs/findbugs-2.0.0/lib/ant.jar | Bin 0 -> 1289806 bytes findbugs/findbugs-2.0.0/lib/asm-3.3.jar | Bin 0 -> 43577 bytes .../findbugs-2.0.0/lib/asm-analysis-3.3.jar | Bin 0 -> 18143 bytes .../findbugs-2.0.0/lib/asm-commons-3.3.jar | Bin 0 -> 38275 bytes findbugs/findbugs-2.0.0/lib/asm-tree-3.3.jar | Bin 0 -> 21503 bytes findbugs/findbugs-2.0.0/lib/asm-util-3.3.jar | Bin 0 -> 36598 bytes findbugs/findbugs-2.0.0/lib/asm-xml-3.3.jar | Bin 0 -> 49634 bytes findbugs/findbugs-2.0.0/lib/bcel.jar | Bin 0 -> 583778 bytes findbugs/findbugs-2.0.0/lib/buggy.icns | Bin 0 -> 36133 bytes .../findbugs-2.0.0/lib/commons-lang-2.4.jar | Bin 0 -> 261809 bytes findbugs/findbugs-2.0.0/lib/dom4j-1.6.1.jar | Bin 0 -> 313898 bytes findbugs/findbugs-2.0.0/lib/findbugs-ant.jar | Bin 0 -> 29230 bytes findbugs/findbugs-2.0.0/lib/findbugs.jar | Bin 0 -> 3409389 bytes findbugs/findbugs-2.0.0/lib/jFormatString.jar | Bin 0 -> 27271 bytes findbugs/findbugs-2.0.0/lib/jaxen-1.1.1.jar | Bin 0 -> 226915 bytes .../findbugs-2.0.0/lib/jcip-annotations.jar | Bin 0 -> 6562 bytes findbugs/findbugs-2.0.0/lib/jdepend-2.9.jar | Bin 0 -> 82818 bytes findbugs/findbugs-2.0.0/lib/jsr305.jar | Bin 0 -> 31866 bytes .../lib/yjp-controller-api-redist.jar | Bin 0 -> 76679 bytes .../optionalPlugin/bugCollectionCloud.jar | Bin 0 -> 1209 bytes .../optionalPlugin/noUpdateChecks.jar | Bin 0 -> 1536 bytes .../optionalPlugin/poweruser.jar | Bin 0 -> 1731 bytes findbugs/findbugs-2.0.0/plugin/README | 8 + .../plugin/findbugsCommunalCloud.jar | Bin 0 -> 601175 bytes findbugs/findbugs-2.0.0/src/xsl/default.xsl | 376 ++ .../findbugs-2.0.0/src/xsl/fancy-hist.xsl | 1197 ++++ findbugs/findbugs-2.0.0/src/xsl/fancy.xsl | 848 +++ findbugs/findbugs-2.0.0/src/xsl/plain.xsl | 306 + findbugs/findbugs-2.0.0/src/xsl/summary.xsl | 252 + findbugs/runFindBugs.sh | 3 + lib/lwjgl.jar | Bin 0 -> 933867 bytes lib/lwjgl_native/OpenAL32.dll | Bin 0 -> 177152 bytes lib/lwjgl_native/OpenAL64.dll | Bin 0 -> 351744 bytes lib/lwjgl_native/liblwjgl.jnilib | Bin 0 -> 1117496 bytes lib/lwjgl_native/liblwjgl.so | Bin 0 -> 374744 bytes lib/lwjgl_native/liblwjgl64.so | Bin 0 -> 433072 bytes lib/lwjgl_native/libopenal.so | Bin 0 -> 327769 bytes lib/lwjgl_native/libopenal64.so | Bin 0 -> 362034 bytes lib/lwjgl_native/lwjgl.dll | Bin 0 -> 208384 bytes lib/lwjgl_native/lwjgl64.dll | Bin 0 -> 299520 bytes lib/lwjgl_native/openal.dylib | Bin 0 -> 256696 bytes lib/lwjgl_util.jar | Bin 0 -> 173273 bytes src/jake2/Defines.java | 1368 +++++ src/jake2/Globals.java | 388 ++ src/jake2/Jake2.java | 101 + src/jake2/client/CL.java | 1621 ++++++ src/jake2/client/CL_ents.java | 1214 ++++ src/jake2/client/CL_fx.java | 2173 +++++++ src/jake2/client/CL_input.java | 753 +++ src/jake2/client/CL_inv.java | 146 + src/jake2/client/CL_newfx.java | 838 +++ src/jake2/client/CL_parse.java | 796 +++ src/jake2/client/CL_pred.java | 298 + src/jake2/client/CL_tent.java | 1791 ++++++ src/jake2/client/CL_view.java | 190 + src/jake2/client/Console.java | 610 ++ src/jake2/client/Key.java | 830 +++ src/jake2/client/M.java | 497 ++ src/jake2/client/Menu.java | 4910 ++++++++++++++++ src/jake2/client/SCR.java | 1871 ++++++ src/jake2/client/V.java | 412 ++ src/jake2/client/VID.java | 770 +++ src/jake2/client/centity_t.java | 39 + src/jake2/client/cl_sustain_t.java | 55 + src/jake2/client/client_state_t.java | 139 + src/jake2/client/client_static_t.java | 72 + src/jake2/client/clientinfo_t.java | 53 + src/jake2/client/console_t.java | 51 + src/jake2/client/cparticle_t.java | 46 + src/jake2/client/dlight_t.java | 31 + src/jake2/client/entity_t.java | 91 + src/jake2/client/frame_t.java | 61 + src/jake2/client/kbutton_t.java | 36 + src/jake2/client/lightstyle_t.java | 30 + src/jake2/client/particle_t.java | 50 + src/jake2/client/refdef_t.java | 47 + src/jake2/client/refexport_t.java | 113 + src/jake2/client/viddef_t.java | 28 + src/jake2/client/vidmode_t.java | 44 + src/jake2/client/vrect_t.java | 39 + src/jake2/game/AIAdapter.java | 29 + src/jake2/game/Cmd.java | 1294 ++++ src/jake2/game/EdictFindFilter.java | 34 + src/jake2/game/EdictIterator.java | 36 + src/jake2/game/EndianHandler.java | 76 + src/jake2/game/EntBlockedAdapter.java | 30 + src/jake2/game/EntDieAdapter.java | 29 + src/jake2/game/EntDodgeAdapter.java | 29 + src/jake2/game/EntInteractAdapter.java | 29 + src/jake2/game/EntPainAdapter.java | 29 + src/jake2/game/EntThinkAdapter.java | 29 + src/jake2/game/EntTouchAdapter.java | 29 + src/jake2/game/EntUseAdapter.java | 29 + src/jake2/game/GameAI.java | 764 +++ src/jake2/game/GameBase.java | 659 +++ src/jake2/game/GameChase.java | 193 + src/jake2/game/GameCombat.java | 553 ++ src/jake2/game/GameFunc.java | 2210 +++++++ src/jake2/game/GameItemList.java | 760 +++ src/jake2/game/GameItems.java | 1356 +++++ src/jake2/game/GameMisc.java | 1944 ++++++ src/jake2/game/GameSVCmds.java | 298 + src/jake2/game/GameSave.java | 386 ++ src/jake2/game/GameSpawn.java | 1206 ++++ src/jake2/game/GameTarget.java | 849 +++ src/jake2/game/GameTrigger.java | 592 ++ src/jake2/game/GameTurret.java | 450 ++ src/jake2/game/GameUtil.java | 692 +++ src/jake2/game/GameWeapon.java | 983 ++++ src/jake2/game/Info.java | 167 + src/jake2/game/ItemDropAdapter.java | 29 + src/jake2/game/ItemUseAdapter.java | 29 + src/jake2/game/Monster.java | 363 ++ src/jake2/game/PlayerClient.java | 1738 ++++++ src/jake2/game/PlayerHud.java | 541 ++ src/jake2/game/PlayerTrail.java | 148 + src/jake2/game/PlayerView.java | 1060 ++++ src/jake2/game/PlayerWeapon.java | 1512 +++++ src/jake2/game/SuperAdapter.java | 60 + src/jake2/game/client_persistant_t.java | 164 + src/jake2/game/client_respawn_t.java | 97 + src/jake2/game/cmdalias_t.java | 30 + src/jake2/game/cmodel_t.java | 32 + src/jake2/game/cplane_t.java | 56 + src/jake2/game/csurface_t.java | 30 + src/jake2/game/cvar_t.java | 40 + src/jake2/game/edict_t.java | 777 +++ src/jake2/game/entity_state_t.java | 170 + src/jake2/game/game_import_t.java | 209 + src/jake2/game/game_locals_t.java | 111 + src/jake2/game/gclient_t.java | 430 ++ src/jake2/game/gitem_armor_t.java | 46 + src/jake2/game/gitem_t.java | 111 + src/jake2/game/level_locals_t.java | 161 + src/jake2/game/link_t.java | 33 + src/jake2/game/mapsurface_t.java | 37 + src/jake2/game/mframe_t.java | 62 + src/jake2/game/mmove_t.java | 82 + src/jake2/game/monsterinfo_t.java | 162 + src/jake2/game/monsters/M_Actor.java | 1609 +++++ src/jake2/game/monsters/M_Berserk.java | 992 ++++ src/jake2/game/monsters/M_Boss2.java | 1088 ++++ src/jake2/game/monsters/M_Boss3.java | 86 + src/jake2/game/monsters/M_Boss31.java | 1216 ++++ src/jake2/game/monsters/M_Boss32.java | 2013 +++++++ src/jake2/game/monsters/M_Brain.java | 1176 ++++ src/jake2/game/monsters/M_Chick.java | 1328 +++++ src/jake2/game/monsters/M_Flash.java | 494 ++ src/jake2/game/monsters/M_Flipper.java | 786 +++ src/jake2/game/monsters/M_Float.java | 1237 ++++ src/jake2/game/monsters/M_Flyer.java | 1016 ++++ src/jake2/game/monsters/M_Gladiator.java | 664 +++ src/jake2/game/monsters/M_Gunner.java | 1117 ++++ src/jake2/game/monsters/M_Hover.java | 1085 ++++ src/jake2/game/monsters/M_Infantry.java | 1098 ++++ src/jake2/game/monsters/M_Insane.java | 1309 +++++ src/jake2/game/monsters/M_Medic.java | 1305 +++++ src/jake2/game/monsters/M_Mutant.java | 1063 ++++ src/jake2/game/monsters/M_Parasite.java | 874 +++ src/jake2/game/monsters/M_Player.java | 426 ++ src/jake2/game/monsters/M_Soldier.java | 2275 ++++++++ src/jake2/game/monsters/M_Supertank.java | 1285 ++++ src/jake2/game/monsters/M_Tank.java | 1543 +++++ src/jake2/game/moveinfo_t.java | 116 + src/jake2/game/player_state_t.java | 207 + src/jake2/game/pmove_state_t.java | 156 + src/jake2/game/pmove_t.java | 109 + src/jake2/game/pushed_t.java | 31 + src/jake2/game/spawn_t.java | 34 + src/jake2/game/spawn_temp_t.java | 129 + src/jake2/game/trace_t.java | 63 + src/jake2/game/usercmd_t.java | 74 + src/jake2/qcommon/CM.java | 1827 ++++++ src/jake2/qcommon/CRC.java | 159 + src/jake2/qcommon/Cbuf.java | 247 + src/jake2/qcommon/Com.java | 721 +++ src/jake2/qcommon/Cvar.java | 467 ++ src/jake2/qcommon/FS.java | 978 ++++ src/jake2/qcommon/MD4.java | 314 + src/jake2/qcommon/MSG.java | 566 ++ src/jake2/qcommon/Netchan.java | 372 ++ src/jake2/qcommon/PMove.java | 1112 ++++ src/jake2/qcommon/Qcommon.java | 259 + src/jake2/qcommon/SZ.java | 112 + src/jake2/qcommon/cmd_function_t.java | 35 + src/jake2/qcommon/longjmpException.java | 33 + src/jake2/qcommon/lump_t.java | 35 + src/jake2/qcommon/miptex_t.java | 49 + src/jake2/qcommon/netadr_t.java | 76 + src/jake2/qcommon/netchan_t.java | 87 + src/jake2/qcommon/qfiles.java | 691 +++ src/jake2/qcommon/sizebuf_t.java | 48 + src/jake2/qcommon/texinfo_t.java | 65 + src/jake2/qcommon/xcommand_t.java | 34 + src/jake2/render/DummyRenderer.java | 183 + src/jake2/render/LWJGLRenderer.java | 235 + src/jake2/render/Ref.java | 42 + src/jake2/render/Renderer.java | 110 + src/jake2/render/glconfig_t.java | 45 + src/jake2/render/glpoly_t.java | 75 + src/jake2/render/glstate_t.java | 47 + src/jake2/render/image_t.java | 78 + src/jake2/render/lwjgl/Anorms.java | 219 + src/jake2/render/lwjgl/Base.java | 154 + src/jake2/render/lwjgl/Draw.java | 415 ++ src/jake2/render/lwjgl/Image.java | 1692 ++++++ src/jake2/render/lwjgl/LWJGLBase.java | 337 ++ src/jake2/render/lwjgl/Light.java | 758 +++ src/jake2/render/lwjgl/Main.java | 1535 +++++ src/jake2/render/lwjgl/Mesh.java | 691 +++ src/jake2/render/lwjgl/Misc.java | 284 + src/jake2/render/lwjgl/Model.java | 1361 +++++ src/jake2/render/lwjgl/Polygon.java | 159 + src/jake2/render/lwjgl/Surf.java | 1337 +++++ src/jake2/render/lwjgl/Warp.java | 718 +++ src/jake2/render/medge_t.java | 44 + src/jake2/render/mleaf_t.java | 60 + src/jake2/render/mmodel_t.java | 34 + src/jake2/render/mnode_t.java | 47 + src/jake2/render/model_t.java | 198 + src/jake2/render/msurface_t.java | 105 + src/jake2/render/mtexinfo_t.java | 49 + src/jake2/render/mvertex_t.java | 41 + src/jake2/server/SV.java | 1104 ++++ src/jake2/server/SV_CCMDS.java | 1126 ++++ src/jake2/server/SV_ENTS.java | 596 ++ src/jake2/server/SV_GAME.java | 317 + src/jake2/server/SV_INIT.java | 477 ++ src/jake2/server/SV_MAIN.java | 981 ++++ src/jake2/server/SV_SEND.java | 534 ++ src/jake2/server/SV_USER.java | 699 +++ src/jake2/server/SV_WORLD.java | 528 ++ src/jake2/server/areanode_t.java | 43 + src/jake2/server/challenge_t.java | 39 + src/jake2/server/client_frame_t.java | 42 + src/jake2/server/client_t.java | 89 + src/jake2/server/moveclip_t.java | 58 + src/jake2/server/server_static_t.java | 71 + src/jake2/server/server_t.java | 72 + src/jake2/sound/DummyDriver.java | 116 + src/jake2/sound/S.java | 237 + src/jake2/sound/Sound.java | 112 + src/jake2/sound/WaveLoader.java | 360 ++ src/jake2/sound/lwjgl/Channel.java | 443 ++ src/jake2/sound/lwjgl/LWJGLSoundImpl.java | 632 ++ src/jake2/sound/lwjgl/PlaySound.java | 169 + src/jake2/sound/sfx_t.java | 48 + src/jake2/sound/sfxcache_t.java | 37 + src/jake2/sound/soundinfo_t.java | 19 + src/jake2/sound/wavinfo_t.java | 19 + src/jake2/sys/HighPrecisionTimer.java | 32 + src/jake2/sys/IN.java | 218 + src/jake2/sys/InputListener.java | 117 + src/jake2/sys/JOGLKBD.java | 233 + src/jake2/sys/Jake2InputEvent.java | 49 + src/jake2/sys/KBD.java | 52 + src/jake2/sys/LWJGLKBD.java | 224 + src/jake2/sys/NET.java | 404 ++ src/jake2/sys/NanoTimer.java | 27 + src/jake2/sys/StandardTimer.java | 27 + src/jake2/sys/Sys.java | 243 + src/jake2/sys/Timer.java | 36 + src/jake2/util/Lib.java | 385 ++ src/jake2/util/Math3D.java | 496 ++ src/jake2/util/PrintfFormat.java | 3215 ++++++++++ src/jake2/util/QuakeFile.java | 162 + src/jake2/util/Vargs.java | 121 + src/jake2/util/Vec3Cache.java | 38 + 1681 files changed, 142058 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 bin/jake2/Defines.class create mode 100644 bin/jake2/Globals.class create mode 100644 bin/jake2/Jake2.class create mode 100644 bin/jake2/client/CL$1.class create mode 100644 bin/jake2/client/CL$10.class create mode 100644 bin/jake2/client/CL$11.class create mode 100644 bin/jake2/client/CL$12.class create mode 100644 bin/jake2/client/CL$13.class create mode 100644 bin/jake2/client/CL$14.class create mode 100644 bin/jake2/client/CL$15.class create mode 100644 bin/jake2/client/CL$2.class create mode 100644 bin/jake2/client/CL$3.class create mode 100644 bin/jake2/client/CL$4.class create mode 100644 bin/jake2/client/CL$5.class create mode 100644 bin/jake2/client/CL$6.class create mode 100644 bin/jake2/client/CL$7.class create mode 100644 bin/jake2/client/CL$8.class create mode 100644 bin/jake2/client/CL$9.class create mode 100644 bin/jake2/client/CL$cheatvar_t.class create mode 100644 bin/jake2/client/CL.class create mode 100644 bin/jake2/client/CL_ents.class create mode 100644 bin/jake2/client/CL_fx$cdlight_t.class create mode 100644 bin/jake2/client/CL_fx$clightstyle_t.class create mode 100644 bin/jake2/client/CL_fx.class create mode 100644 bin/jake2/client/CL_input$1.class create mode 100644 bin/jake2/client/CL_input$10.class create mode 100644 bin/jake2/client/CL_input$11.class create mode 100644 bin/jake2/client/CL_input$12.class create mode 100644 bin/jake2/client/CL_input$13.class create mode 100644 bin/jake2/client/CL_input$14.class create mode 100644 bin/jake2/client/CL_input$15.class create mode 100644 bin/jake2/client/CL_input$16.class create mode 100644 bin/jake2/client/CL_input$17.class create mode 100644 bin/jake2/client/CL_input$18.class create mode 100644 bin/jake2/client/CL_input$19.class create mode 100644 bin/jake2/client/CL_input$2.class create mode 100644 bin/jake2/client/CL_input$20.class create mode 100644 bin/jake2/client/CL_input$21.class create mode 100644 bin/jake2/client/CL_input$22.class create mode 100644 bin/jake2/client/CL_input$23.class create mode 100644 bin/jake2/client/CL_input$24.class create mode 100644 bin/jake2/client/CL_input$25.class create mode 100644 bin/jake2/client/CL_input$26.class create mode 100644 bin/jake2/client/CL_input$27.class create mode 100644 bin/jake2/client/CL_input$28.class create mode 100644 bin/jake2/client/CL_input$29.class create mode 100644 bin/jake2/client/CL_input$3.class create mode 100644 bin/jake2/client/CL_input$30.class create mode 100644 bin/jake2/client/CL_input$31.class create mode 100644 bin/jake2/client/CL_input$32.class create mode 100644 bin/jake2/client/CL_input$4.class create mode 100644 bin/jake2/client/CL_input$5.class create mode 100644 bin/jake2/client/CL_input$6.class create mode 100644 bin/jake2/client/CL_input$7.class create mode 100644 bin/jake2/client/CL_input$8.class create mode 100644 bin/jake2/client/CL_input$9.class create mode 100644 bin/jake2/client/CL_input.class create mode 100644 bin/jake2/client/CL_inv.class create mode 100644 bin/jake2/client/CL_newfx.class create mode 100644 bin/jake2/client/CL_parse$1.class create mode 100644 bin/jake2/client/CL_parse.class create mode 100644 bin/jake2/client/CL_pred$1.class create mode 100644 bin/jake2/client/CL_pred$2.class create mode 100644 bin/jake2/client/CL_pred.class create mode 100644 bin/jake2/client/CL_tent$1.class create mode 100644 bin/jake2/client/CL_tent$2.class create mode 100644 bin/jake2/client/CL_tent$3.class create mode 100644 bin/jake2/client/CL_tent$beam_t.class create mode 100644 bin/jake2/client/CL_tent$explosion_t.class create mode 100644 bin/jake2/client/CL_tent$laser_t.class create mode 100644 bin/jake2/client/CL_tent.class create mode 100644 bin/jake2/client/CL_view.class create mode 100644 bin/jake2/client/Console$1.class create mode 100644 bin/jake2/client/Console$2.class create mode 100644 bin/jake2/client/Console$3.class create mode 100644 bin/jake2/client/Console$4.class create mode 100644 bin/jake2/client/Console$5.class create mode 100644 bin/jake2/client/Console$6.class create mode 100644 bin/jake2/client/Console.class create mode 100644 bin/jake2/client/Key$1.class create mode 100644 bin/jake2/client/Key$2.class create mode 100644 bin/jake2/client/Key$3.class create mode 100644 bin/jake2/client/Key$4.class create mode 100644 bin/jake2/client/Key.class create mode 100644 bin/jake2/client/M$1.class create mode 100644 bin/jake2/client/M$2.class create mode 100644 bin/jake2/client/M$3.class create mode 100644 bin/jake2/client/M$4.class create mode 100644 bin/jake2/client/M.class create mode 100644 bin/jake2/client/Menu$1.class create mode 100644 bin/jake2/client/Menu$10.class create mode 100644 bin/jake2/client/Menu$100.class create mode 100644 bin/jake2/client/Menu$101.class create mode 100644 bin/jake2/client/Menu$102.class create mode 100644 bin/jake2/client/Menu$103.class create mode 100644 bin/jake2/client/Menu$104.class create mode 100644 bin/jake2/client/Menu$105.class create mode 100644 bin/jake2/client/Menu$106.class create mode 100644 bin/jake2/client/Menu$107.class create mode 100644 bin/jake2/client/Menu$108.class create mode 100644 bin/jake2/client/Menu$109.class create mode 100644 bin/jake2/client/Menu$11.class create mode 100644 bin/jake2/client/Menu$110.class create mode 100644 bin/jake2/client/Menu$111.class create mode 100644 bin/jake2/client/Menu$112.class create mode 100644 bin/jake2/client/Menu$113.class create mode 100644 bin/jake2/client/Menu$114.class create mode 100644 bin/jake2/client/Menu$115.class create mode 100644 bin/jake2/client/Menu$116.class create mode 100644 bin/jake2/client/Menu$117.class create mode 100644 bin/jake2/client/Menu$118.class create mode 100644 bin/jake2/client/Menu$119.class create mode 100644 bin/jake2/client/Menu$12.class create mode 100644 bin/jake2/client/Menu$120.class create mode 100644 bin/jake2/client/Menu$121.class create mode 100644 bin/jake2/client/Menu$122.class create mode 100644 bin/jake2/client/Menu$123.class create mode 100644 bin/jake2/client/Menu$124.class create mode 100644 bin/jake2/client/Menu$125.class create mode 100644 bin/jake2/client/Menu$126.class create mode 100644 bin/jake2/client/Menu$127.class create mode 100644 bin/jake2/client/Menu$128.class create mode 100644 bin/jake2/client/Menu$129.class create mode 100644 bin/jake2/client/Menu$13.class create mode 100644 bin/jake2/client/Menu$130.class create mode 100644 bin/jake2/client/Menu$131.class create mode 100644 bin/jake2/client/Menu$132.class create mode 100644 bin/jake2/client/Menu$133.class create mode 100644 bin/jake2/client/Menu$134.class create mode 100644 bin/jake2/client/Menu$135.class create mode 100644 bin/jake2/client/Menu$136.class create mode 100644 bin/jake2/client/Menu$137.class create mode 100644 bin/jake2/client/Menu$138.class create mode 100644 bin/jake2/client/Menu$14.class create mode 100644 bin/jake2/client/Menu$15.class create mode 100644 bin/jake2/client/Menu$16.class create mode 100644 bin/jake2/client/Menu$17.class create mode 100644 bin/jake2/client/Menu$18.class create mode 100644 bin/jake2/client/Menu$19.class create mode 100644 bin/jake2/client/Menu$2.class create mode 100644 bin/jake2/client/Menu$20.class create mode 100644 bin/jake2/client/Menu$21.class create mode 100644 bin/jake2/client/Menu$22.class create mode 100644 bin/jake2/client/Menu$23.class create mode 100644 bin/jake2/client/Menu$24.class create mode 100644 bin/jake2/client/Menu$25.class create mode 100644 bin/jake2/client/Menu$26.class create mode 100644 bin/jake2/client/Menu$27.class create mode 100644 bin/jake2/client/Menu$28.class create mode 100644 bin/jake2/client/Menu$29.class create mode 100644 bin/jake2/client/Menu$3.class create mode 100644 bin/jake2/client/Menu$30.class create mode 100644 bin/jake2/client/Menu$31.class create mode 100644 bin/jake2/client/Menu$32.class create mode 100644 bin/jake2/client/Menu$33.class create mode 100644 bin/jake2/client/Menu$34.class create mode 100644 bin/jake2/client/Menu$35.class create mode 100644 bin/jake2/client/Menu$36.class create mode 100644 bin/jake2/client/Menu$37.class create mode 100644 bin/jake2/client/Menu$38.class create mode 100644 bin/jake2/client/Menu$39.class create mode 100644 bin/jake2/client/Menu$4.class create mode 100644 bin/jake2/client/Menu$40.class create mode 100644 bin/jake2/client/Menu$41.class create mode 100644 bin/jake2/client/Menu$42.class create mode 100644 bin/jake2/client/Menu$43.class create mode 100644 bin/jake2/client/Menu$44.class create mode 100644 bin/jake2/client/Menu$45.class create mode 100644 bin/jake2/client/Menu$46.class create mode 100644 bin/jake2/client/Menu$47.class create mode 100644 bin/jake2/client/Menu$48.class create mode 100644 bin/jake2/client/Menu$49.class create mode 100644 bin/jake2/client/Menu$5.class create mode 100644 bin/jake2/client/Menu$50.class create mode 100644 bin/jake2/client/Menu$51.class create mode 100644 bin/jake2/client/Menu$52.class create mode 100644 bin/jake2/client/Menu$53.class create mode 100644 bin/jake2/client/Menu$54.class create mode 100644 bin/jake2/client/Menu$55.class create mode 100644 bin/jake2/client/Menu$56.class create mode 100644 bin/jake2/client/Menu$57.class create mode 100644 bin/jake2/client/Menu$58.class create mode 100644 bin/jake2/client/Menu$59.class create mode 100644 bin/jake2/client/Menu$6.class create mode 100644 bin/jake2/client/Menu$60.class create mode 100644 bin/jake2/client/Menu$61.class create mode 100644 bin/jake2/client/Menu$62.class create mode 100644 bin/jake2/client/Menu$63.class create mode 100644 bin/jake2/client/Menu$64.class create mode 100644 bin/jake2/client/Menu$65.class create mode 100644 bin/jake2/client/Menu$66.class create mode 100644 bin/jake2/client/Menu$67.class create mode 100644 bin/jake2/client/Menu$68.class create mode 100644 bin/jake2/client/Menu$69.class create mode 100644 bin/jake2/client/Menu$7.class create mode 100644 bin/jake2/client/Menu$70.class create mode 100644 bin/jake2/client/Menu$71.class create mode 100644 bin/jake2/client/Menu$72.class create mode 100644 bin/jake2/client/Menu$73.class create mode 100644 bin/jake2/client/Menu$74.class create mode 100644 bin/jake2/client/Menu$75.class create mode 100644 bin/jake2/client/Menu$76.class create mode 100644 bin/jake2/client/Menu$77.class create mode 100644 bin/jake2/client/Menu$78.class create mode 100644 bin/jake2/client/Menu$79.class create mode 100644 bin/jake2/client/Menu$8.class create mode 100644 bin/jake2/client/Menu$80.class create mode 100644 bin/jake2/client/Menu$81.class create mode 100644 bin/jake2/client/Menu$82.class create mode 100644 bin/jake2/client/Menu$83.class create mode 100644 bin/jake2/client/Menu$84.class create mode 100644 bin/jake2/client/Menu$85.class create mode 100644 bin/jake2/client/Menu$86.class create mode 100644 bin/jake2/client/Menu$87.class create mode 100644 bin/jake2/client/Menu$88.class create mode 100644 bin/jake2/client/Menu$89.class create mode 100644 bin/jake2/client/Menu$9.class create mode 100644 bin/jake2/client/Menu$90.class create mode 100644 bin/jake2/client/Menu$91.class create mode 100644 bin/jake2/client/Menu$92.class create mode 100644 bin/jake2/client/Menu$93.class create mode 100644 bin/jake2/client/Menu$94.class create mode 100644 bin/jake2/client/Menu$95.class create mode 100644 bin/jake2/client/Menu$96.class create mode 100644 bin/jake2/client/Menu$97.class create mode 100644 bin/jake2/client/Menu$98.class create mode 100644 bin/jake2/client/Menu$99.class create mode 100644 bin/jake2/client/Menu$mcallback.class create mode 100644 bin/jake2/client/Menu$menuaction_s.class create mode 100644 bin/jake2/client/Menu$menucommon_s.class create mode 100644 bin/jake2/client/Menu$menufield_s.class create mode 100644 bin/jake2/client/Menu$menuframework_s.class create mode 100644 bin/jake2/client/Menu$menulayer_t.class create mode 100644 bin/jake2/client/Menu$menulist_s.class create mode 100644 bin/jake2/client/Menu$menuseparator_s.class create mode 100644 bin/jake2/client/Menu$menuslider_s.class create mode 100644 bin/jake2/client/Menu$playermodelinfo_s.class create mode 100644 bin/jake2/client/Menu.class create mode 100644 bin/jake2/client/SCR$1.class create mode 100644 bin/jake2/client/SCR$2.class create mode 100644 bin/jake2/client/SCR$3.class create mode 100644 bin/jake2/client/SCR$4.class create mode 100644 bin/jake2/client/SCR$5.class create mode 100644 bin/jake2/client/SCR$6.class create mode 100644 bin/jake2/client/SCR$cinematics_t.class create mode 100644 bin/jake2/client/SCR$dirty_t.class create mode 100644 bin/jake2/client/SCR$graphsamp_t.class create mode 100644 bin/jake2/client/SCR.class create mode 100644 bin/jake2/client/V$1.class create mode 100644 bin/jake2/client/V$2.class create mode 100644 bin/jake2/client/V$3.class create mode 100644 bin/jake2/client/V$4.class create mode 100644 bin/jake2/client/V.class create mode 100644 bin/jake2/client/VID$1.class create mode 100644 bin/jake2/client/VID$2.class create mode 100644 bin/jake2/client/VID$3.class create mode 100644 bin/jake2/client/VID$4.class create mode 100644 bin/jake2/client/VID$5.class create mode 100644 bin/jake2/client/VID$6.class create mode 100644 bin/jake2/client/VID$7.class create mode 100644 bin/jake2/client/VID.class create mode 100644 bin/jake2/client/centity_t.class create mode 100644 bin/jake2/client/cl_sustain_t$ThinkAdapter.class create mode 100644 bin/jake2/client/cl_sustain_t.class create mode 100644 bin/jake2/client/client_state_t.class create mode 100644 bin/jake2/client/client_static_t.class create mode 100644 bin/jake2/client/clientinfo_t.class create mode 100644 bin/jake2/client/console_t.class create mode 100644 bin/jake2/client/cparticle_t.class create mode 100644 bin/jake2/client/dlight_t.class create mode 100644 bin/jake2/client/entity_t.class create mode 100644 bin/jake2/client/frame_t.class create mode 100644 bin/jake2/client/kbutton_t.class create mode 100644 bin/jake2/client/keyfunc_t.class create mode 100644 bin/jake2/client/lightstyle_t.class create mode 100644 bin/jake2/client/particle_t.class create mode 100644 bin/jake2/client/refdef_t.class create mode 100644 bin/jake2/client/refexport_t.class create mode 100644 bin/jake2/client/viddef_t.class create mode 100644 bin/jake2/client/vidmode_t.class create mode 100644 bin/jake2/client/vrect_t.class create mode 100644 bin/jake2/game/AIAdapter.class create mode 100644 bin/jake2/game/Cmd$1.class create mode 100644 bin/jake2/game/Cmd$2.class create mode 100644 bin/jake2/game/Cmd$3.class create mode 100644 bin/jake2/game/Cmd$4.class create mode 100644 bin/jake2/game/Cmd$5.class create mode 100644 bin/jake2/game/Cmd$6.class create mode 100644 bin/jake2/game/Cmd.class create mode 100644 bin/jake2/game/EdictFindFilter.class create mode 100644 bin/jake2/game/EdictIterator.class create mode 100644 bin/jake2/game/EndianHandler.class create mode 100644 bin/jake2/game/EntBlockedAdapter.class create mode 100644 bin/jake2/game/EntDieAdapter.class create mode 100644 bin/jake2/game/EntDodgeAdapter.class create mode 100644 bin/jake2/game/EntInteractAdapter.class create mode 100644 bin/jake2/game/EntPainAdapter.class create mode 100644 bin/jake2/game/EntThinkAdapter.class create mode 100644 bin/jake2/game/EntTouchAdapter.class create mode 100644 bin/jake2/game/EntUseAdapter.class create mode 100644 bin/jake2/game/GameAI$1.class create mode 100644 bin/jake2/game/GameAI$10.class create mode 100644 bin/jake2/game/GameAI$11.class create mode 100644 bin/jake2/game/GameAI$12.class create mode 100644 bin/jake2/game/GameAI$2.class create mode 100644 bin/jake2/game/GameAI$3.class create mode 100644 bin/jake2/game/GameAI$4.class create mode 100644 bin/jake2/game/GameAI$5.class create mode 100644 bin/jake2/game/GameAI$6.class create mode 100644 bin/jake2/game/GameAI$7.class create mode 100644 bin/jake2/game/GameAI$8.class create mode 100644 bin/jake2/game/GameAI$9.class create mode 100644 bin/jake2/game/GameAI.class create mode 100644 bin/jake2/game/GameBase$1.class create mode 100644 bin/jake2/game/GameBase$2.class create mode 100644 bin/jake2/game/GameBase$3.class create mode 100644 bin/jake2/game/GameBase.class create mode 100644 bin/jake2/game/GameChase.class create mode 100644 bin/jake2/game/GameCombat.class create mode 100644 bin/jake2/game/GameFunc$1.class create mode 100644 bin/jake2/game/GameFunc$10.class create mode 100644 bin/jake2/game/GameFunc$11.class create mode 100644 bin/jake2/game/GameFunc$12.class create mode 100644 bin/jake2/game/GameFunc$13.class create mode 100644 bin/jake2/game/GameFunc$14.class create mode 100644 bin/jake2/game/GameFunc$15.class create mode 100644 bin/jake2/game/GameFunc$16.class create mode 100644 bin/jake2/game/GameFunc$17.class create mode 100644 bin/jake2/game/GameFunc$18.class create mode 100644 bin/jake2/game/GameFunc$19.class create mode 100644 bin/jake2/game/GameFunc$2.class create mode 100644 bin/jake2/game/GameFunc$20.class create mode 100644 bin/jake2/game/GameFunc$21.class create mode 100644 bin/jake2/game/GameFunc$22.class create mode 100644 bin/jake2/game/GameFunc$23.class create mode 100644 bin/jake2/game/GameFunc$24.class create mode 100644 bin/jake2/game/GameFunc$25.class create mode 100644 bin/jake2/game/GameFunc$26.class create mode 100644 bin/jake2/game/GameFunc$27.class create mode 100644 bin/jake2/game/GameFunc$28.class create mode 100644 bin/jake2/game/GameFunc$29.class create mode 100644 bin/jake2/game/GameFunc$3.class create mode 100644 bin/jake2/game/GameFunc$30.class create mode 100644 bin/jake2/game/GameFunc$31.class create mode 100644 bin/jake2/game/GameFunc$32.class create mode 100644 bin/jake2/game/GameFunc$33.class create mode 100644 bin/jake2/game/GameFunc$34.class create mode 100644 bin/jake2/game/GameFunc$35.class create mode 100644 bin/jake2/game/GameFunc$36.class create mode 100644 bin/jake2/game/GameFunc$37.class create mode 100644 bin/jake2/game/GameFunc$38.class create mode 100644 bin/jake2/game/GameFunc$39.class create mode 100644 bin/jake2/game/GameFunc$4.class create mode 100644 bin/jake2/game/GameFunc$40.class create mode 100644 bin/jake2/game/GameFunc$41.class create mode 100644 bin/jake2/game/GameFunc$42.class create mode 100644 bin/jake2/game/GameFunc$43.class create mode 100644 bin/jake2/game/GameFunc$44.class create mode 100644 bin/jake2/game/GameFunc$45.class create mode 100644 bin/jake2/game/GameFunc$46.class create mode 100644 bin/jake2/game/GameFunc$47.class create mode 100644 bin/jake2/game/GameFunc$48.class create mode 100644 bin/jake2/game/GameFunc$49.class create mode 100644 bin/jake2/game/GameFunc$5.class create mode 100644 bin/jake2/game/GameFunc$50.class create mode 100644 bin/jake2/game/GameFunc$51.class create mode 100644 bin/jake2/game/GameFunc$52.class create mode 100644 bin/jake2/game/GameFunc$53.class create mode 100644 bin/jake2/game/GameFunc$54.class create mode 100644 bin/jake2/game/GameFunc$55.class create mode 100644 bin/jake2/game/GameFunc$56.class create mode 100644 bin/jake2/game/GameFunc$57.class create mode 100644 bin/jake2/game/GameFunc$58.class create mode 100644 bin/jake2/game/GameFunc$59.class create mode 100644 bin/jake2/game/GameFunc$6.class create mode 100644 bin/jake2/game/GameFunc$60.class create mode 100644 bin/jake2/game/GameFunc$61.class create mode 100644 bin/jake2/game/GameFunc$62.class create mode 100644 bin/jake2/game/GameFunc$7.class create mode 100644 bin/jake2/game/GameFunc$8.class create mode 100644 bin/jake2/game/GameFunc$9.class create mode 100644 bin/jake2/game/GameFunc.class create mode 100644 bin/jake2/game/GameItemList.class create mode 100644 bin/jake2/game/GameItems$1.class create mode 100644 bin/jake2/game/GameItems$10.class create mode 100644 bin/jake2/game/GameItems$11.class create mode 100644 bin/jake2/game/GameItems$12.class create mode 100644 bin/jake2/game/GameItems$13.class create mode 100644 bin/jake2/game/GameItems$14.class create mode 100644 bin/jake2/game/GameItems$15.class create mode 100644 bin/jake2/game/GameItems$16.class create mode 100644 bin/jake2/game/GameItems$17.class create mode 100644 bin/jake2/game/GameItems$18.class create mode 100644 bin/jake2/game/GameItems$19.class create mode 100644 bin/jake2/game/GameItems$2.class create mode 100644 bin/jake2/game/GameItems$20.class create mode 100644 bin/jake2/game/GameItems$21.class create mode 100644 bin/jake2/game/GameItems$22.class create mode 100644 bin/jake2/game/GameItems$23.class create mode 100644 bin/jake2/game/GameItems$24.class create mode 100644 bin/jake2/game/GameItems$25.class create mode 100644 bin/jake2/game/GameItems$3.class create mode 100644 bin/jake2/game/GameItems$4.class create mode 100644 bin/jake2/game/GameItems$5.class create mode 100644 bin/jake2/game/GameItems$6.class create mode 100644 bin/jake2/game/GameItems$7.class create mode 100644 bin/jake2/game/GameItems$8.class create mode 100644 bin/jake2/game/GameItems$9.class create mode 100644 bin/jake2/game/GameItems.class create mode 100644 bin/jake2/game/GameMisc$1.class create mode 100644 bin/jake2/game/GameMisc$10.class create mode 100644 bin/jake2/game/GameMisc$11.class create mode 100644 bin/jake2/game/GameMisc$12.class create mode 100644 bin/jake2/game/GameMisc$13.class create mode 100644 bin/jake2/game/GameMisc$14.class create mode 100644 bin/jake2/game/GameMisc$15.class create mode 100644 bin/jake2/game/GameMisc$16.class create mode 100644 bin/jake2/game/GameMisc$17.class create mode 100644 bin/jake2/game/GameMisc$18.class create mode 100644 bin/jake2/game/GameMisc$19.class create mode 100644 bin/jake2/game/GameMisc$2.class create mode 100644 bin/jake2/game/GameMisc$20.class create mode 100644 bin/jake2/game/GameMisc$21.class create mode 100644 bin/jake2/game/GameMisc$22.class create mode 100644 bin/jake2/game/GameMisc$23.class create mode 100644 bin/jake2/game/GameMisc$24.class create mode 100644 bin/jake2/game/GameMisc$25.class create mode 100644 bin/jake2/game/GameMisc$26.class create mode 100644 bin/jake2/game/GameMisc$27.class create mode 100644 bin/jake2/game/GameMisc$28.class create mode 100644 bin/jake2/game/GameMisc$29.class create mode 100644 bin/jake2/game/GameMisc$3.class create mode 100644 bin/jake2/game/GameMisc$30.class create mode 100644 bin/jake2/game/GameMisc$31.class create mode 100644 bin/jake2/game/GameMisc$32.class create mode 100644 bin/jake2/game/GameMisc$33.class create mode 100644 bin/jake2/game/GameMisc$34.class create mode 100644 bin/jake2/game/GameMisc$35.class create mode 100644 bin/jake2/game/GameMisc$36.class create mode 100644 bin/jake2/game/GameMisc$37.class create mode 100644 bin/jake2/game/GameMisc$38.class create mode 100644 bin/jake2/game/GameMisc$39.class create mode 100644 bin/jake2/game/GameMisc$4.class create mode 100644 bin/jake2/game/GameMisc$40.class create mode 100644 bin/jake2/game/GameMisc$41.class create mode 100644 bin/jake2/game/GameMisc$42.class create mode 100644 bin/jake2/game/GameMisc$5.class create mode 100644 bin/jake2/game/GameMisc$6.class create mode 100644 bin/jake2/game/GameMisc$7.class create mode 100644 bin/jake2/game/GameMisc$8.class create mode 100644 bin/jake2/game/GameMisc$9.class create mode 100644 bin/jake2/game/GameMisc.class create mode 100644 bin/jake2/game/GameSVCmds$ipfilter_t.class create mode 100644 bin/jake2/game/GameSVCmds.class create mode 100644 bin/jake2/game/GameSave.class create mode 100644 bin/jake2/game/GameSpawn$1.class create mode 100644 bin/jake2/game/GameSpawn$10.class create mode 100644 bin/jake2/game/GameSpawn$11.class create mode 100644 bin/jake2/game/GameSpawn$12.class create mode 100644 bin/jake2/game/GameSpawn$13.class create mode 100644 bin/jake2/game/GameSpawn$14.class create mode 100644 bin/jake2/game/GameSpawn$15.class create mode 100644 bin/jake2/game/GameSpawn$16.class create mode 100644 bin/jake2/game/GameSpawn$17.class create mode 100644 bin/jake2/game/GameSpawn$18.class create mode 100644 bin/jake2/game/GameSpawn$19.class create mode 100644 bin/jake2/game/GameSpawn$2.class create mode 100644 bin/jake2/game/GameSpawn$20.class create mode 100644 bin/jake2/game/GameSpawn$21.class create mode 100644 bin/jake2/game/GameSpawn$22.class create mode 100644 bin/jake2/game/GameSpawn$23.class create mode 100644 bin/jake2/game/GameSpawn$24.class create mode 100644 bin/jake2/game/GameSpawn$25.class create mode 100644 bin/jake2/game/GameSpawn$26.class create mode 100644 bin/jake2/game/GameSpawn$27.class create mode 100644 bin/jake2/game/GameSpawn$28.class create mode 100644 bin/jake2/game/GameSpawn$29.class create mode 100644 bin/jake2/game/GameSpawn$3.class create mode 100644 bin/jake2/game/GameSpawn$30.class create mode 100644 bin/jake2/game/GameSpawn$31.class create mode 100644 bin/jake2/game/GameSpawn$32.class create mode 100644 bin/jake2/game/GameSpawn$33.class create mode 100644 bin/jake2/game/GameSpawn$34.class create mode 100644 bin/jake2/game/GameSpawn$35.class create mode 100644 bin/jake2/game/GameSpawn$36.class create mode 100644 bin/jake2/game/GameSpawn$37.class create mode 100644 bin/jake2/game/GameSpawn$38.class create mode 100644 bin/jake2/game/GameSpawn$39.class create mode 100644 bin/jake2/game/GameSpawn$4.class create mode 100644 bin/jake2/game/GameSpawn$40.class create mode 100644 bin/jake2/game/GameSpawn$41.class create mode 100644 bin/jake2/game/GameSpawn$42.class create mode 100644 bin/jake2/game/GameSpawn$43.class create mode 100644 bin/jake2/game/GameSpawn$44.class create mode 100644 bin/jake2/game/GameSpawn$45.class create mode 100644 bin/jake2/game/GameSpawn$46.class create mode 100644 bin/jake2/game/GameSpawn$47.class create mode 100644 bin/jake2/game/GameSpawn$48.class create mode 100644 bin/jake2/game/GameSpawn$49.class create mode 100644 bin/jake2/game/GameSpawn$5.class create mode 100644 bin/jake2/game/GameSpawn$50.class create mode 100644 bin/jake2/game/GameSpawn$51.class create mode 100644 bin/jake2/game/GameSpawn$52.class create mode 100644 bin/jake2/game/GameSpawn$53.class create mode 100644 bin/jake2/game/GameSpawn$54.class create mode 100644 bin/jake2/game/GameSpawn$55.class create mode 100644 bin/jake2/game/GameSpawn$56.class create mode 100644 bin/jake2/game/GameSpawn$57.class create mode 100644 bin/jake2/game/GameSpawn$58.class create mode 100644 bin/jake2/game/GameSpawn$59.class create mode 100644 bin/jake2/game/GameSpawn$6.class create mode 100644 bin/jake2/game/GameSpawn$60.class create mode 100644 bin/jake2/game/GameSpawn$61.class create mode 100644 bin/jake2/game/GameSpawn$62.class create mode 100644 bin/jake2/game/GameSpawn$63.class create mode 100644 bin/jake2/game/GameSpawn$64.class create mode 100644 bin/jake2/game/GameSpawn$65.class create mode 100644 bin/jake2/game/GameSpawn$66.class create mode 100644 bin/jake2/game/GameSpawn$67.class create mode 100644 bin/jake2/game/GameSpawn$68.class create mode 100644 bin/jake2/game/GameSpawn$69.class create mode 100644 bin/jake2/game/GameSpawn$7.class create mode 100644 bin/jake2/game/GameSpawn$70.class create mode 100644 bin/jake2/game/GameSpawn$71.class create mode 100644 bin/jake2/game/GameSpawn$72.class create mode 100644 bin/jake2/game/GameSpawn$73.class create mode 100644 bin/jake2/game/GameSpawn$74.class create mode 100644 bin/jake2/game/GameSpawn$75.class create mode 100644 bin/jake2/game/GameSpawn$76.class create mode 100644 bin/jake2/game/GameSpawn$77.class create mode 100644 bin/jake2/game/GameSpawn$78.class create mode 100644 bin/jake2/game/GameSpawn$79.class create mode 100644 bin/jake2/game/GameSpawn$8.class create mode 100644 bin/jake2/game/GameSpawn$80.class create mode 100644 bin/jake2/game/GameSpawn$81.class create mode 100644 bin/jake2/game/GameSpawn$82.class create mode 100644 bin/jake2/game/GameSpawn$83.class create mode 100644 bin/jake2/game/GameSpawn$84.class create mode 100644 bin/jake2/game/GameSpawn$85.class create mode 100644 bin/jake2/game/GameSpawn$86.class create mode 100644 bin/jake2/game/GameSpawn$87.class create mode 100644 bin/jake2/game/GameSpawn$88.class create mode 100644 bin/jake2/game/GameSpawn$89.class create mode 100644 bin/jake2/game/GameSpawn$9.class create mode 100644 bin/jake2/game/GameSpawn$90.class create mode 100644 bin/jake2/game/GameSpawn.class create mode 100644 bin/jake2/game/GameTarget$1.class create mode 100644 bin/jake2/game/GameTarget$10.class create mode 100644 bin/jake2/game/GameTarget$11.class create mode 100644 bin/jake2/game/GameTarget$12.class create mode 100644 bin/jake2/game/GameTarget$13.class create mode 100644 bin/jake2/game/GameTarget$14.class create mode 100644 bin/jake2/game/GameTarget$15.class create mode 100644 bin/jake2/game/GameTarget$16.class create mode 100644 bin/jake2/game/GameTarget$17.class create mode 100644 bin/jake2/game/GameTarget$18.class create mode 100644 bin/jake2/game/GameTarget$19.class create mode 100644 bin/jake2/game/GameTarget$2.class create mode 100644 bin/jake2/game/GameTarget$20.class create mode 100644 bin/jake2/game/GameTarget$3.class create mode 100644 bin/jake2/game/GameTarget$4.class create mode 100644 bin/jake2/game/GameTarget$5.class create mode 100644 bin/jake2/game/GameTarget$6.class create mode 100644 bin/jake2/game/GameTarget$7.class create mode 100644 bin/jake2/game/GameTarget$8.class create mode 100644 bin/jake2/game/GameTarget$9.class create mode 100644 bin/jake2/game/GameTarget.class create mode 100644 bin/jake2/game/GameTrigger$1.class create mode 100644 bin/jake2/game/GameTrigger$10.class create mode 100644 bin/jake2/game/GameTrigger$11.class create mode 100644 bin/jake2/game/GameTrigger$12.class create mode 100644 bin/jake2/game/GameTrigger$2.class create mode 100644 bin/jake2/game/GameTrigger$3.class create mode 100644 bin/jake2/game/GameTrigger$4.class create mode 100644 bin/jake2/game/GameTrigger$5.class create mode 100644 bin/jake2/game/GameTrigger$6.class create mode 100644 bin/jake2/game/GameTrigger$7.class create mode 100644 bin/jake2/game/GameTrigger$8.class create mode 100644 bin/jake2/game/GameTrigger$9.class create mode 100644 bin/jake2/game/GameTrigger.class create mode 100644 bin/jake2/game/GameTurret$1.class create mode 100644 bin/jake2/game/GameTurret$2.class create mode 100644 bin/jake2/game/GameTurret$3.class create mode 100644 bin/jake2/game/GameTurret$4.class create mode 100644 bin/jake2/game/GameTurret$5.class create mode 100644 bin/jake2/game/GameTurret$6.class create mode 100644 bin/jake2/game/GameTurret.class create mode 100644 bin/jake2/game/GameUtil$1.class create mode 100644 bin/jake2/game/GameUtil$2.class create mode 100644 bin/jake2/game/GameUtil$3.class create mode 100644 bin/jake2/game/GameUtil$4.class create mode 100644 bin/jake2/game/GameUtil$5.class create mode 100644 bin/jake2/game/GameUtil.class create mode 100644 bin/jake2/game/GameWeapon$1.class create mode 100644 bin/jake2/game/GameWeapon$2.class create mode 100644 bin/jake2/game/GameWeapon$3.class create mode 100644 bin/jake2/game/GameWeapon$4.class create mode 100644 bin/jake2/game/GameWeapon$5.class create mode 100644 bin/jake2/game/GameWeapon$6.class create mode 100644 bin/jake2/game/GameWeapon$7.class create mode 100644 bin/jake2/game/GameWeapon.class create mode 100644 bin/jake2/game/Info.class create mode 100644 bin/jake2/game/ItemDropAdapter.class create mode 100644 bin/jake2/game/ItemUseAdapter.class create mode 100644 bin/jake2/game/Monster$1.class create mode 100644 bin/jake2/game/Monster$2.class create mode 100644 bin/jake2/game/Monster$3.class create mode 100644 bin/jake2/game/Monster$4.class create mode 100644 bin/jake2/game/Monster.class create mode 100644 bin/jake2/game/PlayerClient$1.class create mode 100644 bin/jake2/game/PlayerClient$2.class create mode 100644 bin/jake2/game/PlayerClient$3.class create mode 100644 bin/jake2/game/PlayerClient$4.class create mode 100644 bin/jake2/game/PlayerClient$5.class create mode 100644 bin/jake2/game/PlayerClient$6.class create mode 100644 bin/jake2/game/PlayerClient.class create mode 100644 bin/jake2/game/PlayerHud.class create mode 100644 bin/jake2/game/PlayerTrail.class create mode 100644 bin/jake2/game/PlayerView.class create mode 100644 bin/jake2/game/PlayerWeapon$1.class create mode 100644 bin/jake2/game/PlayerWeapon$10.class create mode 100644 bin/jake2/game/PlayerWeapon$11.class create mode 100644 bin/jake2/game/PlayerWeapon$12.class create mode 100644 bin/jake2/game/PlayerWeapon$13.class create mode 100644 bin/jake2/game/PlayerWeapon$14.class create mode 100644 bin/jake2/game/PlayerWeapon$15.class create mode 100644 bin/jake2/game/PlayerWeapon$16.class create mode 100644 bin/jake2/game/PlayerWeapon$17.class create mode 100644 bin/jake2/game/PlayerWeapon$18.class create mode 100644 bin/jake2/game/PlayerWeapon$19.class create mode 100644 bin/jake2/game/PlayerWeapon$2.class create mode 100644 bin/jake2/game/PlayerWeapon$20.class create mode 100644 bin/jake2/game/PlayerWeapon$21.class create mode 100644 bin/jake2/game/PlayerWeapon$22.class create mode 100644 bin/jake2/game/PlayerWeapon$23.class create mode 100644 bin/jake2/game/PlayerWeapon$24.class create mode 100644 bin/jake2/game/PlayerWeapon$3.class create mode 100644 bin/jake2/game/PlayerWeapon$4.class create mode 100644 bin/jake2/game/PlayerWeapon$5.class create mode 100644 bin/jake2/game/PlayerWeapon$6.class create mode 100644 bin/jake2/game/PlayerWeapon$7.class create mode 100644 bin/jake2/game/PlayerWeapon$8.class create mode 100644 bin/jake2/game/PlayerWeapon$9.class create mode 100644 bin/jake2/game/PlayerWeapon.class create mode 100644 bin/jake2/game/SuperAdapter.class create mode 100644 bin/jake2/game/client_persistant_t.class create mode 100644 bin/jake2/game/client_respawn_t.class create mode 100644 bin/jake2/game/cmdalias_t.class create mode 100644 bin/jake2/game/cmodel_t.class create mode 100644 bin/jake2/game/cplane_t.class create mode 100644 bin/jake2/game/csurface_t.class create mode 100644 bin/jake2/game/cvar_t.class create mode 100644 bin/jake2/game/edict_t.class create mode 100644 bin/jake2/game/entity_state_t.class create mode 100644 bin/jake2/game/game_import_t$1.class create mode 100644 bin/jake2/game/game_import_t.class create mode 100644 bin/jake2/game/game_locals_t.class create mode 100644 bin/jake2/game/gclient_t.class create mode 100644 bin/jake2/game/gitem_armor_t.class create mode 100644 bin/jake2/game/gitem_t.class create mode 100644 bin/jake2/game/level_locals_t.class create mode 100644 bin/jake2/game/link_t.class create mode 100644 bin/jake2/game/mapsurface_t.class create mode 100644 bin/jake2/game/mframe_t.class create mode 100644 bin/jake2/game/mmove_t.class create mode 100644 bin/jake2/game/monsterinfo_t.class create mode 100644 bin/jake2/game/monsters/M_Actor$1.class create mode 100644 bin/jake2/game/monsters/M_Actor$10.class create mode 100644 bin/jake2/game/monsters/M_Actor$2.class create mode 100644 bin/jake2/game/monsters/M_Actor$3.class create mode 100644 bin/jake2/game/monsters/M_Actor$4.class create mode 100644 bin/jake2/game/monsters/M_Actor$5.class create mode 100644 bin/jake2/game/monsters/M_Actor$6.class create mode 100644 bin/jake2/game/monsters/M_Actor$7.class create mode 100644 bin/jake2/game/monsters/M_Actor$8.class create mode 100644 bin/jake2/game/monsters/M_Actor$9.class create mode 100644 bin/jake2/game/monsters/M_Actor.class create mode 100644 bin/jake2/game/monsters/M_Berserk$1.class create mode 100644 bin/jake2/game/monsters/M_Berserk$10.class create mode 100644 bin/jake2/game/monsters/M_Berserk$11.class create mode 100644 bin/jake2/game/monsters/M_Berserk$12.class create mode 100644 bin/jake2/game/monsters/M_Berserk$13.class create mode 100644 bin/jake2/game/monsters/M_Berserk$14.class create mode 100644 bin/jake2/game/monsters/M_Berserk$2.class create mode 100644 bin/jake2/game/monsters/M_Berserk$3.class create mode 100644 bin/jake2/game/monsters/M_Berserk$4.class create mode 100644 bin/jake2/game/monsters/M_Berserk$5.class create mode 100644 bin/jake2/game/monsters/M_Berserk$6.class create mode 100644 bin/jake2/game/monsters/M_Berserk$7.class create mode 100644 bin/jake2/game/monsters/M_Berserk$8.class create mode 100644 bin/jake2/game/monsters/M_Berserk$9.class create mode 100644 bin/jake2/game/monsters/M_Berserk.class create mode 100644 bin/jake2/game/monsters/M_Boss2$1.class create mode 100644 bin/jake2/game/monsters/M_Boss2$10.class create mode 100644 bin/jake2/game/monsters/M_Boss2$11.class create mode 100644 bin/jake2/game/monsters/M_Boss2$12.class create mode 100644 bin/jake2/game/monsters/M_Boss2$13.class create mode 100644 bin/jake2/game/monsters/M_Boss2$14.class create mode 100644 bin/jake2/game/monsters/M_Boss2$15.class create mode 100644 bin/jake2/game/monsters/M_Boss2$2.class create mode 100644 bin/jake2/game/monsters/M_Boss2$3.class create mode 100644 bin/jake2/game/monsters/M_Boss2$4.class create mode 100644 bin/jake2/game/monsters/M_Boss2$5.class create mode 100644 bin/jake2/game/monsters/M_Boss2$6.class create mode 100644 bin/jake2/game/monsters/M_Boss2$7.class create mode 100644 bin/jake2/game/monsters/M_Boss2$8.class create mode 100644 bin/jake2/game/monsters/M_Boss2$9.class create mode 100644 bin/jake2/game/monsters/M_Boss2.class create mode 100644 bin/jake2/game/monsters/M_Boss3$1.class create mode 100644 bin/jake2/game/monsters/M_Boss3$2.class create mode 100644 bin/jake2/game/monsters/M_Boss3.class create mode 100644 bin/jake2/game/monsters/M_Boss31$1.class create mode 100644 bin/jake2/game/monsters/M_Boss31$10.class create mode 100644 bin/jake2/game/monsters/M_Boss31$11.class create mode 100644 bin/jake2/game/monsters/M_Boss31$12.class create mode 100644 bin/jake2/game/monsters/M_Boss31$13.class create mode 100644 bin/jake2/game/monsters/M_Boss31$14.class create mode 100644 bin/jake2/game/monsters/M_Boss31$15.class create mode 100644 bin/jake2/game/monsters/M_Boss31$16.class create mode 100644 bin/jake2/game/monsters/M_Boss31$17.class create mode 100644 bin/jake2/game/monsters/M_Boss31$18.class create mode 100644 bin/jake2/game/monsters/M_Boss31$19.class create mode 100644 bin/jake2/game/monsters/M_Boss31$2.class create mode 100644 bin/jake2/game/monsters/M_Boss31$3.class create mode 100644 bin/jake2/game/monsters/M_Boss31$4.class create mode 100644 bin/jake2/game/monsters/M_Boss31$5.class create mode 100644 bin/jake2/game/monsters/M_Boss31$6.class create mode 100644 bin/jake2/game/monsters/M_Boss31$7.class create mode 100644 bin/jake2/game/monsters/M_Boss31$8.class create mode 100644 bin/jake2/game/monsters/M_Boss31$9.class create mode 100644 bin/jake2/game/monsters/M_Boss31.class create mode 100644 bin/jake2/game/monsters/M_Boss32$1.class create mode 100644 bin/jake2/game/monsters/M_Boss32$10.class create mode 100644 bin/jake2/game/monsters/M_Boss32$11.class create mode 100644 bin/jake2/game/monsters/M_Boss32$12.class create mode 100644 bin/jake2/game/monsters/M_Boss32$13.class create mode 100644 bin/jake2/game/monsters/M_Boss32$14.class create mode 100644 bin/jake2/game/monsters/M_Boss32$15.class create mode 100644 bin/jake2/game/monsters/M_Boss32$16.class create mode 100644 bin/jake2/game/monsters/M_Boss32$17.class create mode 100644 bin/jake2/game/monsters/M_Boss32$18.class create mode 100644 bin/jake2/game/monsters/M_Boss32$19.class create mode 100644 bin/jake2/game/monsters/M_Boss32$2.class create mode 100644 bin/jake2/game/monsters/M_Boss32$20.class create mode 100644 bin/jake2/game/monsters/M_Boss32$21.class create mode 100644 bin/jake2/game/monsters/M_Boss32$22.class create mode 100644 bin/jake2/game/monsters/M_Boss32$23.class create mode 100644 bin/jake2/game/monsters/M_Boss32$24.class create mode 100644 bin/jake2/game/monsters/M_Boss32$3.class create mode 100644 bin/jake2/game/monsters/M_Boss32$4.class create mode 100644 bin/jake2/game/monsters/M_Boss32$5.class create mode 100644 bin/jake2/game/monsters/M_Boss32$6.class create mode 100644 bin/jake2/game/monsters/M_Boss32$7.class create mode 100644 bin/jake2/game/monsters/M_Boss32$8.class create mode 100644 bin/jake2/game/monsters/M_Boss32$9.class create mode 100644 bin/jake2/game/monsters/M_Boss32.class create mode 100644 bin/jake2/game/monsters/M_Brain$1.class create mode 100644 bin/jake2/game/monsters/M_Brain$10.class create mode 100644 bin/jake2/game/monsters/M_Brain$11.class create mode 100644 bin/jake2/game/monsters/M_Brain$12.class create mode 100644 bin/jake2/game/monsters/M_Brain$13.class create mode 100644 bin/jake2/game/monsters/M_Brain$14.class create mode 100644 bin/jake2/game/monsters/M_Brain$15.class create mode 100644 bin/jake2/game/monsters/M_Brain$16.class create mode 100644 bin/jake2/game/monsters/M_Brain$17.class create mode 100644 bin/jake2/game/monsters/M_Brain$18.class create mode 100644 bin/jake2/game/monsters/M_Brain$19.class create mode 100644 bin/jake2/game/monsters/M_Brain$2.class create mode 100644 bin/jake2/game/monsters/M_Brain$20.class create mode 100644 bin/jake2/game/monsters/M_Brain$21.class create mode 100644 bin/jake2/game/monsters/M_Brain$3.class create mode 100644 bin/jake2/game/monsters/M_Brain$4.class create mode 100644 bin/jake2/game/monsters/M_Brain$5.class create mode 100644 bin/jake2/game/monsters/M_Brain$6.class create mode 100644 bin/jake2/game/monsters/M_Brain$7.class create mode 100644 bin/jake2/game/monsters/M_Brain$8.class create mode 100644 bin/jake2/game/monsters/M_Brain$9.class create mode 100644 bin/jake2/game/monsters/M_Brain.class create mode 100644 bin/jake2/game/monsters/M_Chick$1.class create mode 100644 bin/jake2/game/monsters/M_Chick$10.class create mode 100644 bin/jake2/game/monsters/M_Chick$11.class create mode 100644 bin/jake2/game/monsters/M_Chick$12.class create mode 100644 bin/jake2/game/monsters/M_Chick$13.class create mode 100644 bin/jake2/game/monsters/M_Chick$14.class create mode 100644 bin/jake2/game/monsters/M_Chick$15.class create mode 100644 bin/jake2/game/monsters/M_Chick$16.class create mode 100644 bin/jake2/game/monsters/M_Chick$17.class create mode 100644 bin/jake2/game/monsters/M_Chick$18.class create mode 100644 bin/jake2/game/monsters/M_Chick$19.class create mode 100644 bin/jake2/game/monsters/M_Chick$2.class create mode 100644 bin/jake2/game/monsters/M_Chick$20.class create mode 100644 bin/jake2/game/monsters/M_Chick$21.class create mode 100644 bin/jake2/game/monsters/M_Chick$22.class create mode 100644 bin/jake2/game/monsters/M_Chick$23.class create mode 100644 bin/jake2/game/monsters/M_Chick$3.class create mode 100644 bin/jake2/game/monsters/M_Chick$4.class create mode 100644 bin/jake2/game/monsters/M_Chick$5.class create mode 100644 bin/jake2/game/monsters/M_Chick$6.class create mode 100644 bin/jake2/game/monsters/M_Chick$7.class create mode 100644 bin/jake2/game/monsters/M_Chick$8.class create mode 100644 bin/jake2/game/monsters/M_Chick$9.class create mode 100644 bin/jake2/game/monsters/M_Chick.class create mode 100644 bin/jake2/game/monsters/M_Flash.class create mode 100644 bin/jake2/game/monsters/M_Flipper$1.class create mode 100644 bin/jake2/game/monsters/M_Flipper$10.class create mode 100644 bin/jake2/game/monsters/M_Flipper$11.class create mode 100644 bin/jake2/game/monsters/M_Flipper$12.class create mode 100644 bin/jake2/game/monsters/M_Flipper$2.class create mode 100644 bin/jake2/game/monsters/M_Flipper$3.class create mode 100644 bin/jake2/game/monsters/M_Flipper$4.class create mode 100644 bin/jake2/game/monsters/M_Flipper$5.class create mode 100644 bin/jake2/game/monsters/M_Flipper$6.class create mode 100644 bin/jake2/game/monsters/M_Flipper$7.class create mode 100644 bin/jake2/game/monsters/M_Flipper$8.class create mode 100644 bin/jake2/game/monsters/M_Flipper$9.class create mode 100644 bin/jake2/game/monsters/M_Flipper.class create mode 100644 bin/jake2/game/monsters/M_Float$1.class create mode 100644 bin/jake2/game/monsters/M_Float$10.class create mode 100644 bin/jake2/game/monsters/M_Float$11.class create mode 100644 bin/jake2/game/monsters/M_Float$12.class create mode 100644 bin/jake2/game/monsters/M_Float$13.class create mode 100644 bin/jake2/game/monsters/M_Float$2.class create mode 100644 bin/jake2/game/monsters/M_Float$3.class create mode 100644 bin/jake2/game/monsters/M_Float$4.class create mode 100644 bin/jake2/game/monsters/M_Float$5.class create mode 100644 bin/jake2/game/monsters/M_Float$6.class create mode 100644 bin/jake2/game/monsters/M_Float$7.class create mode 100644 bin/jake2/game/monsters/M_Float$8.class create mode 100644 bin/jake2/game/monsters/M_Float$9.class create mode 100644 bin/jake2/game/monsters/M_Float.class create mode 100644 bin/jake2/game/monsters/M_Flyer$1.class create mode 100644 bin/jake2/game/monsters/M_Flyer$10.class create mode 100644 bin/jake2/game/monsters/M_Flyer$11.class create mode 100644 bin/jake2/game/monsters/M_Flyer$12.class create mode 100644 bin/jake2/game/monsters/M_Flyer$13.class create mode 100644 bin/jake2/game/monsters/M_Flyer$14.class create mode 100644 bin/jake2/game/monsters/M_Flyer$15.class create mode 100644 bin/jake2/game/monsters/M_Flyer$16.class create mode 100644 bin/jake2/game/monsters/M_Flyer$17.class create mode 100644 bin/jake2/game/monsters/M_Flyer$18.class create mode 100644 bin/jake2/game/monsters/M_Flyer$19.class create mode 100644 bin/jake2/game/monsters/M_Flyer$2.class create mode 100644 bin/jake2/game/monsters/M_Flyer$20.class create mode 100644 bin/jake2/game/monsters/M_Flyer$3.class create mode 100644 bin/jake2/game/monsters/M_Flyer$4.class create mode 100644 bin/jake2/game/monsters/M_Flyer$5.class create mode 100644 bin/jake2/game/monsters/M_Flyer$6.class create mode 100644 bin/jake2/game/monsters/M_Flyer$7.class create mode 100644 bin/jake2/game/monsters/M_Flyer$8.class create mode 100644 bin/jake2/game/monsters/M_Flyer$9.class create mode 100644 bin/jake2/game/monsters/M_Flyer.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$1.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$10.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$11.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$12.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$13.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$14.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$2.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$3.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$4.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$5.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$6.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$7.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$8.class create mode 100644 bin/jake2/game/monsters/M_Gladiator$9.class create mode 100644 bin/jake2/game/monsters/M_Gladiator.class create mode 100644 bin/jake2/game/monsters/M_Gunner$1.class create mode 100644 bin/jake2/game/monsters/M_Gunner$10.class create mode 100644 bin/jake2/game/monsters/M_Gunner$11.class create mode 100644 bin/jake2/game/monsters/M_Gunner$12.class create mode 100644 bin/jake2/game/monsters/M_Gunner$13.class create mode 100644 bin/jake2/game/monsters/M_Gunner$14.class create mode 100644 bin/jake2/game/monsters/M_Gunner$15.class create mode 100644 bin/jake2/game/monsters/M_Gunner$16.class create mode 100644 bin/jake2/game/monsters/M_Gunner$17.class create mode 100644 bin/jake2/game/monsters/M_Gunner$18.class create mode 100644 bin/jake2/game/monsters/M_Gunner$19.class create mode 100644 bin/jake2/game/monsters/M_Gunner$2.class create mode 100644 bin/jake2/game/monsters/M_Gunner$20.class create mode 100644 bin/jake2/game/monsters/M_Gunner$21.class create mode 100644 bin/jake2/game/monsters/M_Gunner$3.class create mode 100644 bin/jake2/game/monsters/M_Gunner$4.class create mode 100644 bin/jake2/game/monsters/M_Gunner$5.class create mode 100644 bin/jake2/game/monsters/M_Gunner$6.class create mode 100644 bin/jake2/game/monsters/M_Gunner$7.class create mode 100644 bin/jake2/game/monsters/M_Gunner$8.class create mode 100644 bin/jake2/game/monsters/M_Gunner$9.class create mode 100644 bin/jake2/game/monsters/M_Gunner.class create mode 100644 bin/jake2/game/monsters/M_Hover$1.class create mode 100644 bin/jake2/game/monsters/M_Hover$10.class create mode 100644 bin/jake2/game/monsters/M_Hover$11.class create mode 100644 bin/jake2/game/monsters/M_Hover$12.class create mode 100644 bin/jake2/game/monsters/M_Hover$13.class create mode 100644 bin/jake2/game/monsters/M_Hover$2.class create mode 100644 bin/jake2/game/monsters/M_Hover$3.class create mode 100644 bin/jake2/game/monsters/M_Hover$4.class create mode 100644 bin/jake2/game/monsters/M_Hover$5.class create mode 100644 bin/jake2/game/monsters/M_Hover$6.class create mode 100644 bin/jake2/game/monsters/M_Hover$7.class create mode 100644 bin/jake2/game/monsters/M_Hover$8.class create mode 100644 bin/jake2/game/monsters/M_Hover$9.class create mode 100644 bin/jake2/game/monsters/M_Hover.class create mode 100644 bin/jake2/game/monsters/M_Infantry$1.class create mode 100644 bin/jake2/game/monsters/M_Infantry$10.class create mode 100644 bin/jake2/game/monsters/M_Infantry$11.class create mode 100644 bin/jake2/game/monsters/M_Infantry$12.class create mode 100644 bin/jake2/game/monsters/M_Infantry$13.class create mode 100644 bin/jake2/game/monsters/M_Infantry$14.class create mode 100644 bin/jake2/game/monsters/M_Infantry$15.class create mode 100644 bin/jake2/game/monsters/M_Infantry$16.class create mode 100644 bin/jake2/game/monsters/M_Infantry$17.class create mode 100644 bin/jake2/game/monsters/M_Infantry$18.class create mode 100644 bin/jake2/game/monsters/M_Infantry$2.class create mode 100644 bin/jake2/game/monsters/M_Infantry$3.class create mode 100644 bin/jake2/game/monsters/M_Infantry$4.class create mode 100644 bin/jake2/game/monsters/M_Infantry$5.class create mode 100644 bin/jake2/game/monsters/M_Infantry$6.class create mode 100644 bin/jake2/game/monsters/M_Infantry$7.class create mode 100644 bin/jake2/game/monsters/M_Infantry$8.class create mode 100644 bin/jake2/game/monsters/M_Infantry$9.class create mode 100644 bin/jake2/game/monsters/M_Infantry.class create mode 100644 bin/jake2/game/monsters/M_Insane$1.class create mode 100644 bin/jake2/game/monsters/M_Insane$10.class create mode 100644 bin/jake2/game/monsters/M_Insane$11.class create mode 100644 bin/jake2/game/monsters/M_Insane$12.class create mode 100644 bin/jake2/game/monsters/M_Insane$13.class create mode 100644 bin/jake2/game/monsters/M_Insane$14.class create mode 100644 bin/jake2/game/monsters/M_Insane$2.class create mode 100644 bin/jake2/game/monsters/M_Insane$3.class create mode 100644 bin/jake2/game/monsters/M_Insane$4.class create mode 100644 bin/jake2/game/monsters/M_Insane$5.class create mode 100644 bin/jake2/game/monsters/M_Insane$6.class create mode 100644 bin/jake2/game/monsters/M_Insane$7.class create mode 100644 bin/jake2/game/monsters/M_Insane$8.class create mode 100644 bin/jake2/game/monsters/M_Insane$9.class create mode 100644 bin/jake2/game/monsters/M_Insane.class create mode 100644 bin/jake2/game/monsters/M_Medic$1.class create mode 100644 bin/jake2/game/monsters/M_Medic$10.class create mode 100644 bin/jake2/game/monsters/M_Medic$11.class create mode 100644 bin/jake2/game/monsters/M_Medic$12.class create mode 100644 bin/jake2/game/monsters/M_Medic$13.class create mode 100644 bin/jake2/game/monsters/M_Medic$14.class create mode 100644 bin/jake2/game/monsters/M_Medic$15.class create mode 100644 bin/jake2/game/monsters/M_Medic$16.class create mode 100644 bin/jake2/game/monsters/M_Medic$17.class create mode 100644 bin/jake2/game/monsters/M_Medic$18.class create mode 100644 bin/jake2/game/monsters/M_Medic$19.class create mode 100644 bin/jake2/game/monsters/M_Medic$2.class create mode 100644 bin/jake2/game/monsters/M_Medic$20.class create mode 100644 bin/jake2/game/monsters/M_Medic$3.class create mode 100644 bin/jake2/game/monsters/M_Medic$4.class create mode 100644 bin/jake2/game/monsters/M_Medic$5.class create mode 100644 bin/jake2/game/monsters/M_Medic$6.class create mode 100644 bin/jake2/game/monsters/M_Medic$7.class create mode 100644 bin/jake2/game/monsters/M_Medic$8.class create mode 100644 bin/jake2/game/monsters/M_Medic$9.class create mode 100644 bin/jake2/game/monsters/M_Medic.class create mode 100644 bin/jake2/game/monsters/M_Mutant$1.class create mode 100644 bin/jake2/game/monsters/M_Mutant$10.class create mode 100644 bin/jake2/game/monsters/M_Mutant$11.class create mode 100644 bin/jake2/game/monsters/M_Mutant$12.class create mode 100644 bin/jake2/game/monsters/M_Mutant$13.class create mode 100644 bin/jake2/game/monsters/M_Mutant$14.class create mode 100644 bin/jake2/game/monsters/M_Mutant$15.class create mode 100644 bin/jake2/game/monsters/M_Mutant$16.class create mode 100644 bin/jake2/game/monsters/M_Mutant$17.class create mode 100644 bin/jake2/game/monsters/M_Mutant$18.class create mode 100644 bin/jake2/game/monsters/M_Mutant$19.class create mode 100644 bin/jake2/game/monsters/M_Mutant$2.class create mode 100644 bin/jake2/game/monsters/M_Mutant$20.class create mode 100644 bin/jake2/game/monsters/M_Mutant$21.class create mode 100644 bin/jake2/game/monsters/M_Mutant$22.class create mode 100644 bin/jake2/game/monsters/M_Mutant$23.class create mode 100644 bin/jake2/game/monsters/M_Mutant$24.class create mode 100644 bin/jake2/game/monsters/M_Mutant$25.class create mode 100644 bin/jake2/game/monsters/M_Mutant$3.class create mode 100644 bin/jake2/game/monsters/M_Mutant$4.class create mode 100644 bin/jake2/game/monsters/M_Mutant$5.class create mode 100644 bin/jake2/game/monsters/M_Mutant$6.class create mode 100644 bin/jake2/game/monsters/M_Mutant$7.class create mode 100644 bin/jake2/game/monsters/M_Mutant$8.class create mode 100644 bin/jake2/game/monsters/M_Mutant$9.class create mode 100644 bin/jake2/game/monsters/M_Mutant.class create mode 100644 bin/jake2/game/monsters/M_Parasite$1.class create mode 100644 bin/jake2/game/monsters/M_Parasite$10.class create mode 100644 bin/jake2/game/monsters/M_Parasite$11.class create mode 100644 bin/jake2/game/monsters/M_Parasite$12.class create mode 100644 bin/jake2/game/monsters/M_Parasite$13.class create mode 100644 bin/jake2/game/monsters/M_Parasite$14.class create mode 100644 bin/jake2/game/monsters/M_Parasite$15.class create mode 100644 bin/jake2/game/monsters/M_Parasite$16.class create mode 100644 bin/jake2/game/monsters/M_Parasite$17.class create mode 100644 bin/jake2/game/monsters/M_Parasite$18.class create mode 100644 bin/jake2/game/monsters/M_Parasite$19.class create mode 100644 bin/jake2/game/monsters/M_Parasite$2.class create mode 100644 bin/jake2/game/monsters/M_Parasite$20.class create mode 100644 bin/jake2/game/monsters/M_Parasite$21.class create mode 100644 bin/jake2/game/monsters/M_Parasite$3.class create mode 100644 bin/jake2/game/monsters/M_Parasite$4.class create mode 100644 bin/jake2/game/monsters/M_Parasite$5.class create mode 100644 bin/jake2/game/monsters/M_Parasite$6.class create mode 100644 bin/jake2/game/monsters/M_Parasite$7.class create mode 100644 bin/jake2/game/monsters/M_Parasite$8.class create mode 100644 bin/jake2/game/monsters/M_Parasite$9.class create mode 100644 bin/jake2/game/monsters/M_Parasite.class create mode 100644 bin/jake2/game/monsters/M_Player.class create mode 100644 bin/jake2/game/monsters/M_Soldier$1.class create mode 100644 bin/jake2/game/monsters/M_Soldier$10.class create mode 100644 bin/jake2/game/monsters/M_Soldier$11.class create mode 100644 bin/jake2/game/monsters/M_Soldier$12.class create mode 100644 bin/jake2/game/monsters/M_Soldier$13.class create mode 100644 bin/jake2/game/monsters/M_Soldier$14.class create mode 100644 bin/jake2/game/monsters/M_Soldier$15.class create mode 100644 bin/jake2/game/monsters/M_Soldier$16.class create mode 100644 bin/jake2/game/monsters/M_Soldier$17.class create mode 100644 bin/jake2/game/monsters/M_Soldier$18.class create mode 100644 bin/jake2/game/monsters/M_Soldier$19.class create mode 100644 bin/jake2/game/monsters/M_Soldier$2.class create mode 100644 bin/jake2/game/monsters/M_Soldier$20.class create mode 100644 bin/jake2/game/monsters/M_Soldier$21.class create mode 100644 bin/jake2/game/monsters/M_Soldier$22.class create mode 100644 bin/jake2/game/monsters/M_Soldier$23.class create mode 100644 bin/jake2/game/monsters/M_Soldier$24.class create mode 100644 bin/jake2/game/monsters/M_Soldier$25.class create mode 100644 bin/jake2/game/monsters/M_Soldier$26.class create mode 100644 bin/jake2/game/monsters/M_Soldier$27.class create mode 100644 bin/jake2/game/monsters/M_Soldier$28.class create mode 100644 bin/jake2/game/monsters/M_Soldier$29.class create mode 100644 bin/jake2/game/monsters/M_Soldier$3.class create mode 100644 bin/jake2/game/monsters/M_Soldier$30.class create mode 100644 bin/jake2/game/monsters/M_Soldier$31.class create mode 100644 bin/jake2/game/monsters/M_Soldier$32.class create mode 100644 bin/jake2/game/monsters/M_Soldier$4.class create mode 100644 bin/jake2/game/monsters/M_Soldier$5.class create mode 100644 bin/jake2/game/monsters/M_Soldier$6.class create mode 100644 bin/jake2/game/monsters/M_Soldier$7.class create mode 100644 bin/jake2/game/monsters/M_Soldier$8.class create mode 100644 bin/jake2/game/monsters/M_Soldier$9.class create mode 100644 bin/jake2/game/monsters/M_Soldier.class create mode 100644 bin/jake2/game/monsters/M_Supertank$1.class create mode 100644 bin/jake2/game/monsters/M_Supertank$10.class create mode 100644 bin/jake2/game/monsters/M_Supertank$11.class create mode 100644 bin/jake2/game/monsters/M_Supertank$12.class create mode 100644 bin/jake2/game/monsters/M_Supertank$13.class create mode 100644 bin/jake2/game/monsters/M_Supertank$14.class create mode 100644 bin/jake2/game/monsters/M_Supertank$15.class create mode 100644 bin/jake2/game/monsters/M_Supertank$2.class create mode 100644 bin/jake2/game/monsters/M_Supertank$3.class create mode 100644 bin/jake2/game/monsters/M_Supertank$4.class create mode 100644 bin/jake2/game/monsters/M_Supertank$5.class create mode 100644 bin/jake2/game/monsters/M_Supertank$6.class create mode 100644 bin/jake2/game/monsters/M_Supertank$7.class create mode 100644 bin/jake2/game/monsters/M_Supertank$8.class create mode 100644 bin/jake2/game/monsters/M_Supertank$9.class create mode 100644 bin/jake2/game/monsters/M_Supertank.class create mode 100644 bin/jake2/game/monsters/M_Tank$1.class create mode 100644 bin/jake2/game/monsters/M_Tank$10.class create mode 100644 bin/jake2/game/monsters/M_Tank$11.class create mode 100644 bin/jake2/game/monsters/M_Tank$12.class create mode 100644 bin/jake2/game/monsters/M_Tank$13.class create mode 100644 bin/jake2/game/monsters/M_Tank$14.class create mode 100644 bin/jake2/game/monsters/M_Tank$15.class create mode 100644 bin/jake2/game/monsters/M_Tank$16.class create mode 100644 bin/jake2/game/monsters/M_Tank$17.class create mode 100644 bin/jake2/game/monsters/M_Tank$18.class create mode 100644 bin/jake2/game/monsters/M_Tank$19.class create mode 100644 bin/jake2/game/monsters/M_Tank$2.class create mode 100644 bin/jake2/game/monsters/M_Tank$20.class create mode 100644 bin/jake2/game/monsters/M_Tank$21.class create mode 100644 bin/jake2/game/monsters/M_Tank$3.class create mode 100644 bin/jake2/game/monsters/M_Tank$4.class create mode 100644 bin/jake2/game/monsters/M_Tank$5.class create mode 100644 bin/jake2/game/monsters/M_Tank$6.class create mode 100644 bin/jake2/game/monsters/M_Tank$7.class create mode 100644 bin/jake2/game/monsters/M_Tank$8.class create mode 100644 bin/jake2/game/monsters/M_Tank$9.class create mode 100644 bin/jake2/game/monsters/M_Tank.class create mode 100644 bin/jake2/game/moveinfo_t.class create mode 100644 bin/jake2/game/player_state_t.class create mode 100644 bin/jake2/game/pmove_state_t.class create mode 100644 bin/jake2/game/pmove_t$PointContentsAdapter.class create mode 100644 bin/jake2/game/pmove_t$TraceAdapter.class create mode 100644 bin/jake2/game/pmove_t.class create mode 100644 bin/jake2/game/pushed_t.class create mode 100644 bin/jake2/game/spawn_t.class create mode 100644 bin/jake2/game/spawn_temp_t.class create mode 100644 bin/jake2/game/trace_t.class create mode 100644 bin/jake2/game/usercmd_t.class create mode 100644 bin/jake2/qcommon/CM$carea_t.class create mode 100644 bin/jake2/qcommon/CM$cbrush_t.class create mode 100644 bin/jake2/qcommon/CM$cbrushside_t.class create mode 100644 bin/jake2/qcommon/CM$cleaf_t.class create mode 100644 bin/jake2/qcommon/CM$cnode_t.class create mode 100644 bin/jake2/qcommon/CM.class create mode 100644 bin/jake2/qcommon/CRC.class create mode 100644 bin/jake2/qcommon/Cbuf.class create mode 100644 bin/jake2/qcommon/Com$1.class create mode 100644 bin/jake2/qcommon/Com$ParseHelp.class create mode 100644 bin/jake2/qcommon/Com$RD_Flusher.class create mode 100644 bin/jake2/qcommon/Com.class create mode 100644 bin/jake2/qcommon/Cvar$1.class create mode 100644 bin/jake2/qcommon/Cvar$2.class create mode 100644 bin/jake2/qcommon/Cvar.class create mode 100644 bin/jake2/qcommon/FS$1.class create mode 100644 bin/jake2/qcommon/FS$2.class create mode 100644 bin/jake2/qcommon/FS$3.class create mode 100644 bin/jake2/qcommon/FS$dpackheader_t.class create mode 100644 bin/jake2/qcommon/FS$filelink_t.class create mode 100644 bin/jake2/qcommon/FS$pack_t.class create mode 100644 bin/jake2/qcommon/FS$packfile_t.class create mode 100644 bin/jake2/qcommon/FS$searchpath_t.class create mode 100644 bin/jake2/qcommon/FS.class create mode 100644 bin/jake2/qcommon/MD4.class create mode 100644 bin/jake2/qcommon/MSG.class create mode 100644 bin/jake2/qcommon/Netchan.class create mode 100644 bin/jake2/qcommon/PMove$pml_t.class create mode 100644 bin/jake2/qcommon/PMove.class create mode 100644 bin/jake2/qcommon/Qcommon.class create mode 100644 bin/jake2/qcommon/SZ.class create mode 100644 bin/jake2/qcommon/cmd_function_t.class create mode 100644 bin/jake2/qcommon/longjmpException.class create mode 100644 bin/jake2/qcommon/lump_t.class create mode 100644 bin/jake2/qcommon/miptex_t.class create mode 100644 bin/jake2/qcommon/netadr_t.class create mode 100644 bin/jake2/qcommon/netchan_t.class create mode 100644 bin/jake2/qcommon/qfiles$daliasframe_t.class create mode 100644 bin/jake2/qcommon/qfiles$darea_t.class create mode 100644 bin/jake2/qcommon/qfiles$dareaportal_t.class create mode 100644 bin/jake2/qcommon/qfiles$dbrush_t.class create mode 100644 bin/jake2/qcommon/qfiles$dbrushside_t.class create mode 100644 bin/jake2/qcommon/qfiles$dedge_t.class create mode 100644 bin/jake2/qcommon/qfiles$dface_t.class create mode 100644 bin/jake2/qcommon/qfiles$dheader_t.class create mode 100644 bin/jake2/qcommon/qfiles$dleaf_t.class create mode 100644 bin/jake2/qcommon/qfiles$dmdl_t.class create mode 100644 bin/jake2/qcommon/qfiles$dmodel_t.class create mode 100644 bin/jake2/qcommon/qfiles$dnode_t.class create mode 100644 bin/jake2/qcommon/qfiles$dplane_t.class create mode 100644 bin/jake2/qcommon/qfiles$dsprframe_t.class create mode 100644 bin/jake2/qcommon/qfiles$dsprite_t.class create mode 100644 bin/jake2/qcommon/qfiles$dstvert_t.class create mode 100644 bin/jake2/qcommon/qfiles$dtriangle_t.class create mode 100644 bin/jake2/qcommon/qfiles$dvertex_t.class create mode 100644 bin/jake2/qcommon/qfiles$dvis_t.class create mode 100644 bin/jake2/qcommon/qfiles$miptex_t.class create mode 100644 bin/jake2/qcommon/qfiles$pcx_t.class create mode 100644 bin/jake2/qcommon/qfiles$tga_t.class create mode 100644 bin/jake2/qcommon/qfiles.class create mode 100644 bin/jake2/qcommon/sizebuf_t.class create mode 100644 bin/jake2/qcommon/texinfo_t.class create mode 100644 bin/jake2/qcommon/xcommand_t.class create mode 100644 bin/jake2/render/DummyRenderer.class create mode 100644 bin/jake2/render/LWJGLRenderer.class create mode 100644 bin/jake2/render/Ref.class create mode 100644 bin/jake2/render/Renderer.class create mode 100644 bin/jake2/render/glconfig_t.class create mode 100644 bin/jake2/render/glpoly_t.class create mode 100644 bin/jake2/render/glstate_t.class create mode 100644 bin/jake2/render/image_t.class create mode 100644 bin/jake2/render/lwjgl/Anorms.class create mode 100644 bin/jake2/render/lwjgl/Base.class create mode 100644 bin/jake2/render/lwjgl/Draw.class create mode 100644 bin/jake2/render/lwjgl/Image$floodfill_t.class create mode 100644 bin/jake2/render/lwjgl/Image$glmode_t.class create mode 100644 bin/jake2/render/lwjgl/Image$gltmode_t.class create mode 100644 bin/jake2/render/lwjgl/Image$pos_t.class create mode 100644 bin/jake2/render/lwjgl/Image.class create mode 100644 bin/jake2/render/lwjgl/LWJGLBase.class create mode 100644 bin/jake2/render/lwjgl/Light.class create mode 100644 bin/jake2/render/lwjgl/Main$1.class create mode 100644 bin/jake2/render/lwjgl/Main$2.class create mode 100644 bin/jake2/render/lwjgl/Main$3.class create mode 100644 bin/jake2/render/lwjgl/Main$4.class create mode 100644 bin/jake2/render/lwjgl/Main.class create mode 100644 bin/jake2/render/lwjgl/Mesh.class create mode 100644 bin/jake2/render/lwjgl/Misc.class create mode 100644 bin/jake2/render/lwjgl/Model.class create mode 100644 bin/jake2/render/lwjgl/Polygon.class create mode 100644 bin/jake2/render/lwjgl/Surf$gllightmapstate_t.class create mode 100644 bin/jake2/render/lwjgl/Surf.class create mode 100644 bin/jake2/render/lwjgl/Warp.class create mode 100644 bin/jake2/render/medge_t.class create mode 100644 bin/jake2/render/mleaf_t.class create mode 100644 bin/jake2/render/mmodel_t.class create mode 100644 bin/jake2/render/mnode_t.class create mode 100644 bin/jake2/render/model_t.class create mode 100644 bin/jake2/render/msurface_t.class create mode 100644 bin/jake2/render/mtexinfo_t.class create mode 100644 bin/jake2/render/mvertex_t.class create mode 100644 bin/jake2/server/SV.class create mode 100644 bin/jake2/server/SV_CCMDS$1.class create mode 100644 bin/jake2/server/SV_CCMDS$10.class create mode 100644 bin/jake2/server/SV_CCMDS$11.class create mode 100644 bin/jake2/server/SV_CCMDS$12.class create mode 100644 bin/jake2/server/SV_CCMDS$13.class create mode 100644 bin/jake2/server/SV_CCMDS$14.class create mode 100644 bin/jake2/server/SV_CCMDS$15.class create mode 100644 bin/jake2/server/SV_CCMDS$16.class create mode 100644 bin/jake2/server/SV_CCMDS$2.class create mode 100644 bin/jake2/server/SV_CCMDS$3.class create mode 100644 bin/jake2/server/SV_CCMDS$4.class create mode 100644 bin/jake2/server/SV_CCMDS$5.class create mode 100644 bin/jake2/server/SV_CCMDS$6.class create mode 100644 bin/jake2/server/SV_CCMDS$7.class create mode 100644 bin/jake2/server/SV_CCMDS$8.class create mode 100644 bin/jake2/server/SV_CCMDS$9.class create mode 100644 bin/jake2/server/SV_CCMDS.class create mode 100644 bin/jake2/server/SV_ENTS.class create mode 100644 bin/jake2/server/SV_GAME.class create mode 100644 bin/jake2/server/SV_INIT.class create mode 100644 bin/jake2/server/SV_MAIN$1.class create mode 100644 bin/jake2/server/SV_MAIN.class create mode 100644 bin/jake2/server/SV_SEND.class create mode 100644 bin/jake2/server/SV_USER$1.class create mode 100644 bin/jake2/server/SV_USER$10.class create mode 100644 bin/jake2/server/SV_USER$2.class create mode 100644 bin/jake2/server/SV_USER$3.class create mode 100644 bin/jake2/server/SV_USER$4.class create mode 100644 bin/jake2/server/SV_USER$5.class create mode 100644 bin/jake2/server/SV_USER$6.class create mode 100644 bin/jake2/server/SV_USER$7.class create mode 100644 bin/jake2/server/SV_USER$8.class create mode 100644 bin/jake2/server/SV_USER$9.class create mode 100644 bin/jake2/server/SV_USER$ucmd_t.class create mode 100644 bin/jake2/server/SV_USER.class create mode 100644 bin/jake2/server/SV_WORLD.class create mode 100644 bin/jake2/server/areanode_t.class create mode 100644 bin/jake2/server/challenge_t.class create mode 100644 bin/jake2/server/client_frame_t.class create mode 100644 bin/jake2/server/client_t.class create mode 100644 bin/jake2/server/moveclip_t.class create mode 100644 bin/jake2/server/server_static_t.class create mode 100644 bin/jake2/server/server_t.class create mode 100644 bin/jake2/sound/DummyDriver.class create mode 100644 bin/jake2/sound/S.class create mode 100644 bin/jake2/sound/Sound.class create mode 100644 bin/jake2/sound/WaveLoader$wavinfo_t.class create mode 100644 bin/jake2/sound/WaveLoader.class create mode 100644 bin/jake2/sound/lwjgl/Channel.class create mode 100644 bin/jake2/sound/lwjgl/LWJGLSoundImpl$1.class create mode 100644 bin/jake2/sound/lwjgl/LWJGLSoundImpl$2.class create mode 100644 bin/jake2/sound/lwjgl/LWJGLSoundImpl$3.class create mode 100644 bin/jake2/sound/lwjgl/LWJGLSoundImpl$4.class create mode 100644 bin/jake2/sound/lwjgl/LWJGLSoundImpl.class create mode 100644 bin/jake2/sound/lwjgl/PlaySound.class create mode 100644 bin/jake2/sound/sfx_t.class create mode 100644 bin/jake2/sound/sfxcache_t.class create mode 100644 bin/jake2/sound/soundinfo_t.class create mode 100644 bin/jake2/sound/wavinfo_t.class create mode 100644 bin/jake2/sys/HighPrecisionTimer.class create mode 100644 bin/jake2/sys/IN$1.class create mode 100644 bin/jake2/sys/IN$2.class create mode 100644 bin/jake2/sys/IN$3.class create mode 100644 bin/jake2/sys/IN$4.class create mode 100644 bin/jake2/sys/IN.class create mode 100644 bin/jake2/sys/InputListener.class create mode 100644 bin/jake2/sys/JOGLKBD.class create mode 100644 bin/jake2/sys/Jake2InputEvent.class create mode 100644 bin/jake2/sys/KBD.class create mode 100644 bin/jake2/sys/LWJGLKBD.class create mode 100644 bin/jake2/sys/NET$loopback_t.class create mode 100644 bin/jake2/sys/NET$loopmsg_t.class create mode 100644 bin/jake2/sys/NET.class create mode 100644 bin/jake2/sys/NanoTimer.class create mode 100644 bin/jake2/sys/StandardTimer.class create mode 100644 bin/jake2/sys/Sys$FileFilter.class create mode 100644 bin/jake2/sys/Sys.class create mode 100644 bin/jake2/sys/Timer.class create mode 100644 bin/jake2/util/Lib.class create mode 100644 bin/jake2/util/Math3D.class create mode 100644 bin/jake2/util/PrintfFormat$ConversionSpecification.class create mode 100644 bin/jake2/util/PrintfFormat.class create mode 100644 bin/jake2/util/QuakeFile.class create mode 100644 bin/jake2/util/Vargs.class create mode 100644 bin/jake2/util/Vec3Cache.class create mode 100644 build.xml create mode 100644 doc/LICENSE create mode 100644 doc/README create mode 100644 doc/readme.id create mode 100755 executables/LWJake2.bat create mode 100755 executables/LWJake2.sh create mode 100755 executables/LWJake2_Server.bat create mode 100755 executables/LWJake2_Server.sh create mode 100644 findbugs/LWJake2.fbf create mode 100644 findbugs/LWJake2.fbp create mode 100644 findbugs/findbugs-2.0.0/README.txt create mode 100755 findbugs/findbugs-2.0.0/bin/addMessages create mode 100755 findbugs/findbugs-2.0.0/bin/computeBugHistory create mode 100755 findbugs/findbugs-2.0.0/bin/convertXmlToText create mode 100755 findbugs/findbugs-2.0.0/bin/copyBuggySource create mode 100755 findbugs/findbugs-2.0.0/bin/defectDensity create mode 100755 findbugs/findbugs-2.0.0/bin/deprecated/bugHistory create mode 100755 findbugs/findbugs-2.0.0/bin/deprecated/unionBugs create mode 100755 findbugs/findbugs-2.0.0/bin/deprecated/unionResults create mode 100755 findbugs/findbugs-2.0.0/bin/deprecated/updateBugs create mode 100755 findbugs/findbugs-2.0.0/bin/experimental/backdateHistoryUsingSource create mode 100755 findbugs/findbugs-2.0.0/bin/experimental/churn create mode 100755 findbugs/findbugs-2.0.0/bin/experimental/obfuscate create mode 100755 findbugs/findbugs-2.0.0/bin/experimental/treemapVisualization create mode 100755 findbugs/findbugs-2.0.0/bin/fb create mode 100755 findbugs/findbugs-2.0.0/bin/fbwrap create mode 100755 findbugs/findbugs-2.0.0/bin/filterBugs create mode 100755 findbugs/findbugs-2.0.0/bin/findbugs create mode 100755 findbugs/findbugs-2.0.0/bin/findbugs-csr create mode 100755 findbugs/findbugs-2.0.0/bin/findbugs-dbStats create mode 100755 findbugs/findbugs-2.0.0/bin/findbugs-msv create mode 100644 findbugs/findbugs-2.0.0/bin/findbugs.bat create mode 100755 findbugs/findbugs-2.0.0/bin/findbugs2 create mode 100755 findbugs/findbugs-2.0.0/bin/listBugDatabaseInfo create mode 100755 findbugs/findbugs-2.0.0/bin/mineBugHistory create mode 100755 findbugs/findbugs-2.0.0/bin/printAppVersion create mode 100755 findbugs/findbugs-2.0.0/bin/printClass create mode 100755 findbugs/findbugs-2.0.0/bin/rejarForAnalysis create mode 100755 findbugs/findbugs-2.0.0/bin/setBugDatabaseInfo create mode 100755 findbugs/findbugs-2.0.0/bin/unionBugs create mode 100755 findbugs/findbugs-2.0.0/bin/xpathFind create mode 100644 findbugs/findbugs-2.0.0/doc/AddingDetectors.txt create mode 100644 findbugs/findbugs-2.0.0/doc/Changes.html create mode 100644 findbugs/findbugs-2.0.0/doc/FAQ.html create mode 100644 findbugs/findbugs-2.0.0/doc/FilterFile.txt create mode 100644 findbugs/findbugs-2.0.0/doc/allBugDescriptions.html create mode 100644 findbugs/findbugs-2.0.0/doc/bug-logo.png create mode 100644 findbugs/findbugs-2.0.0/doc/bugDescriptions.html create mode 100644 findbugs/findbugs-2.0.0/doc/buggy-sm.png create mode 100644 findbugs/findbugs-2.0.0/doc/contributing.html create mode 100644 findbugs/findbugs-2.0.0/doc/customers/ITAsoftware.png create mode 100644 findbugs/findbugs-2.0.0/doc/customers/geoLocation.png create mode 100644 findbugs/findbugs-2.0.0/doc/customers/geoMap.png create mode 100644 findbugs/findbugs-2.0.0/doc/customers/glassfish.png create mode 100644 findbugs/findbugs-2.0.0/doc/customers/google.png create mode 100644 findbugs/findbugs-2.0.0/doc/customers/logo_umd.png create mode 100644 findbugs/findbugs-2.0.0/doc/customers/nsf.png create mode 100644 findbugs/findbugs-2.0.0/doc/customers/sat4j.png create mode 100644 findbugs/findbugs-2.0.0/doc/customers/sleepycat.png create mode 100644 findbugs/findbugs-2.0.0/doc/customers/sun.png create mode 100644 findbugs/findbugs-2.0.0/doc/demo.html create mode 100644 findbugs/findbugs-2.0.0/doc/downloads.html create mode 100644 findbugs/findbugs-2.0.0/doc/eclipse-filters-icon.png create mode 100644 findbugs/findbugs-2.0.0/doc/factSheet.html create mode 100644 findbugs/findbugs-2.0.0/doc/findbugs.css create mode 100644 findbugs/findbugs-2.0.0/doc/findbugs2.html create mode 100644 findbugs/findbugs-2.0.0/doc/guaranteedDereference.png create mode 100644 findbugs/findbugs-2.0.0/doc/index.html create mode 100644 findbugs/findbugs-2.0.0/doc/infiniteRecursiveLoops.png create mode 100644 findbugs/findbugs-2.0.0/doc/informal.png create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/acknowledgments.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/analysisprops.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/annotations.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/anttask.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/building.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/datamining.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/eclipse.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/example-code.png create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/example-details.png create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/example.png create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/filter.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/gui.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/important.png create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/index.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/infiniteRecursiveLoops.png create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/installing.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/introduction.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/license.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/note.png create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/project-dialog.png create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/rejarForAnalysis.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/running.html create mode 100644 findbugs/findbugs-2.0.0/doc/ja/manual/warning.png create mode 100644 findbugs/findbugs-2.0.0/doc/links.html create mode 100644 findbugs/findbugs-2.0.0/doc/mailingLists.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual-fo.xsl create mode 100644 findbugs/findbugs-2.0.0/doc/manual.xml create mode 100644 findbugs/findbugs-2.0.0/doc/manual.xsl create mode 100644 findbugs/findbugs-2.0.0/doc/manual/acknowledgments.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/analysisprops.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/annotations.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/anttask.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/building.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/datamining.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/eclipse.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/example-code.png create mode 100644 findbugs/findbugs-2.0.0/doc/manual/example-details.png create mode 100644 findbugs/findbugs-2.0.0/doc/manual/example.png create mode 100644 findbugs/findbugs-2.0.0/doc/manual/filter.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/gui.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/important.png create mode 100644 findbugs/findbugs-2.0.0/doc/manual/index.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/infiniteRecursiveLoops.png create mode 100644 findbugs/findbugs-2.0.0/doc/manual/installing.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/introduction.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/license.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/note.png create mode 100644 findbugs/findbugs-2.0.0/doc/manual/project-dialog.png create mode 100644 findbugs/findbugs-2.0.0/doc/manual/rejarForAnalysis.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/running.html create mode 100644 findbugs/findbugs-2.0.0/doc/manual/warning.png create mode 100644 findbugs/findbugs-2.0.0/doc/manual_ja.xml create mode 100644 findbugs/findbugs-2.0.0/doc/performance.html create mode 100644 findbugs/findbugs-2.0.0/doc/performingARelease.txt create mode 100644 findbugs/findbugs-2.0.0/doc/pluginStructure.txt create mode 100644 findbugs/findbugs-2.0.0/doc/plugins.txt create mode 100644 findbugs/findbugs-2.0.0/doc/pressRelease.pdf create mode 100644 findbugs/findbugs-2.0.0/doc/publications.html create mode 100644 findbugs/findbugs-2.0.0/doc/reportingBugs.html create mode 100644 findbugs/findbugs-2.0.0/doc/sourceInfo.html create mode 100644 findbugs/findbugs-2.0.0/doc/sysprops.html create mode 100644 findbugs/findbugs-2.0.0/doc/team.html create mode 100644 findbugs/findbugs-2.0.0/doc/umdFindbugs.png create mode 100644 findbugs/findbugs-2.0.0/doc/updateChecking.html create mode 100644 findbugs/findbugs-2.0.0/doc/users.html create mode 100644 findbugs/findbugs-2.0.0/lib/annotations.jar create mode 100644 findbugs/findbugs-2.0.0/lib/ant.jar create mode 100644 findbugs/findbugs-2.0.0/lib/asm-3.3.jar create mode 100644 findbugs/findbugs-2.0.0/lib/asm-analysis-3.3.jar create mode 100644 findbugs/findbugs-2.0.0/lib/asm-commons-3.3.jar create mode 100644 findbugs/findbugs-2.0.0/lib/asm-tree-3.3.jar create mode 100644 findbugs/findbugs-2.0.0/lib/asm-util-3.3.jar create mode 100644 findbugs/findbugs-2.0.0/lib/asm-xml-3.3.jar create mode 100644 findbugs/findbugs-2.0.0/lib/bcel.jar create mode 100644 findbugs/findbugs-2.0.0/lib/buggy.icns create mode 100644 findbugs/findbugs-2.0.0/lib/commons-lang-2.4.jar create mode 100644 findbugs/findbugs-2.0.0/lib/dom4j-1.6.1.jar create mode 100644 findbugs/findbugs-2.0.0/lib/findbugs-ant.jar create mode 100644 findbugs/findbugs-2.0.0/lib/findbugs.jar create mode 100644 findbugs/findbugs-2.0.0/lib/jFormatString.jar create mode 100644 findbugs/findbugs-2.0.0/lib/jaxen-1.1.1.jar create mode 100644 findbugs/findbugs-2.0.0/lib/jcip-annotations.jar create mode 100644 findbugs/findbugs-2.0.0/lib/jdepend-2.9.jar create mode 100644 findbugs/findbugs-2.0.0/lib/jsr305.jar create mode 100644 findbugs/findbugs-2.0.0/lib/yjp-controller-api-redist.jar create mode 100644 findbugs/findbugs-2.0.0/optionalPlugin/bugCollectionCloud.jar create mode 100644 findbugs/findbugs-2.0.0/optionalPlugin/noUpdateChecks.jar create mode 100644 findbugs/findbugs-2.0.0/optionalPlugin/poweruser.jar create mode 100644 findbugs/findbugs-2.0.0/plugin/README create mode 100644 findbugs/findbugs-2.0.0/plugin/findbugsCommunalCloud.jar create mode 100644 findbugs/findbugs-2.0.0/src/xsl/default.xsl create mode 100644 findbugs/findbugs-2.0.0/src/xsl/fancy-hist.xsl create mode 100644 findbugs/findbugs-2.0.0/src/xsl/fancy.xsl create mode 100644 findbugs/findbugs-2.0.0/src/xsl/plain.xsl create mode 100644 findbugs/findbugs-2.0.0/src/xsl/summary.xsl create mode 100755 findbugs/runFindBugs.sh create mode 100644 lib/lwjgl.jar create mode 100644 lib/lwjgl_native/OpenAL32.dll create mode 100644 lib/lwjgl_native/OpenAL64.dll create mode 100644 lib/lwjgl_native/liblwjgl.jnilib create mode 100644 lib/lwjgl_native/liblwjgl.so create mode 100644 lib/lwjgl_native/liblwjgl64.so create mode 100644 lib/lwjgl_native/libopenal.so create mode 100644 lib/lwjgl_native/libopenal64.so create mode 100644 lib/lwjgl_native/lwjgl.dll create mode 100644 lib/lwjgl_native/lwjgl64.dll create mode 100644 lib/lwjgl_native/openal.dylib create mode 100644 lib/lwjgl_util.jar create mode 100644 src/jake2/Defines.java create mode 100644 src/jake2/Globals.java create mode 100644 src/jake2/Jake2.java create mode 100644 src/jake2/client/CL.java create mode 100644 src/jake2/client/CL_ents.java create mode 100644 src/jake2/client/CL_fx.java create mode 100644 src/jake2/client/CL_input.java create mode 100644 src/jake2/client/CL_inv.java create mode 100644 src/jake2/client/CL_newfx.java create mode 100644 src/jake2/client/CL_parse.java create mode 100644 src/jake2/client/CL_pred.java create mode 100644 src/jake2/client/CL_tent.java create mode 100644 src/jake2/client/CL_view.java create mode 100644 src/jake2/client/Console.java create mode 100644 src/jake2/client/Key.java create mode 100644 src/jake2/client/M.java create mode 100644 src/jake2/client/Menu.java create mode 100644 src/jake2/client/SCR.java create mode 100644 src/jake2/client/V.java create mode 100644 src/jake2/client/VID.java create mode 100644 src/jake2/client/centity_t.java create mode 100644 src/jake2/client/cl_sustain_t.java create mode 100644 src/jake2/client/client_state_t.java create mode 100644 src/jake2/client/client_static_t.java create mode 100644 src/jake2/client/clientinfo_t.java create mode 100644 src/jake2/client/console_t.java create mode 100644 src/jake2/client/cparticle_t.java create mode 100644 src/jake2/client/dlight_t.java create mode 100644 src/jake2/client/entity_t.java create mode 100644 src/jake2/client/frame_t.java create mode 100644 src/jake2/client/kbutton_t.java create mode 100644 src/jake2/client/lightstyle_t.java create mode 100644 src/jake2/client/particle_t.java create mode 100644 src/jake2/client/refdef_t.java create mode 100644 src/jake2/client/refexport_t.java create mode 100644 src/jake2/client/viddef_t.java create mode 100644 src/jake2/client/vidmode_t.java create mode 100644 src/jake2/client/vrect_t.java create mode 100644 src/jake2/game/AIAdapter.java create mode 100644 src/jake2/game/Cmd.java create mode 100644 src/jake2/game/EdictFindFilter.java create mode 100644 src/jake2/game/EdictIterator.java create mode 100644 src/jake2/game/EndianHandler.java create mode 100644 src/jake2/game/EntBlockedAdapter.java create mode 100644 src/jake2/game/EntDieAdapter.java create mode 100644 src/jake2/game/EntDodgeAdapter.java create mode 100644 src/jake2/game/EntInteractAdapter.java create mode 100644 src/jake2/game/EntPainAdapter.java create mode 100644 src/jake2/game/EntThinkAdapter.java create mode 100644 src/jake2/game/EntTouchAdapter.java create mode 100644 src/jake2/game/EntUseAdapter.java create mode 100644 src/jake2/game/GameAI.java create mode 100644 src/jake2/game/GameBase.java create mode 100644 src/jake2/game/GameChase.java create mode 100644 src/jake2/game/GameCombat.java create mode 100644 src/jake2/game/GameFunc.java create mode 100644 src/jake2/game/GameItemList.java create mode 100644 src/jake2/game/GameItems.java create mode 100644 src/jake2/game/GameMisc.java create mode 100644 src/jake2/game/GameSVCmds.java create mode 100644 src/jake2/game/GameSave.java create mode 100644 src/jake2/game/GameSpawn.java create mode 100644 src/jake2/game/GameTarget.java create mode 100644 src/jake2/game/GameTrigger.java create mode 100644 src/jake2/game/GameTurret.java create mode 100644 src/jake2/game/GameUtil.java create mode 100644 src/jake2/game/GameWeapon.java create mode 100644 src/jake2/game/Info.java create mode 100644 src/jake2/game/ItemDropAdapter.java create mode 100644 src/jake2/game/ItemUseAdapter.java create mode 100644 src/jake2/game/Monster.java create mode 100644 src/jake2/game/PlayerClient.java create mode 100644 src/jake2/game/PlayerHud.java create mode 100644 src/jake2/game/PlayerTrail.java create mode 100644 src/jake2/game/PlayerView.java create mode 100644 src/jake2/game/PlayerWeapon.java create mode 100644 src/jake2/game/SuperAdapter.java create mode 100644 src/jake2/game/client_persistant_t.java create mode 100644 src/jake2/game/client_respawn_t.java create mode 100644 src/jake2/game/cmdalias_t.java create mode 100644 src/jake2/game/cmodel_t.java create mode 100644 src/jake2/game/cplane_t.java create mode 100644 src/jake2/game/csurface_t.java create mode 100644 src/jake2/game/cvar_t.java create mode 100644 src/jake2/game/edict_t.java create mode 100644 src/jake2/game/entity_state_t.java create mode 100644 src/jake2/game/game_import_t.java create mode 100644 src/jake2/game/game_locals_t.java create mode 100644 src/jake2/game/gclient_t.java create mode 100644 src/jake2/game/gitem_armor_t.java create mode 100644 src/jake2/game/gitem_t.java create mode 100644 src/jake2/game/level_locals_t.java create mode 100644 src/jake2/game/link_t.java create mode 100644 src/jake2/game/mapsurface_t.java create mode 100644 src/jake2/game/mframe_t.java create mode 100644 src/jake2/game/mmove_t.java create mode 100644 src/jake2/game/monsterinfo_t.java create mode 100644 src/jake2/game/monsters/M_Actor.java create mode 100644 src/jake2/game/monsters/M_Berserk.java create mode 100644 src/jake2/game/monsters/M_Boss2.java create mode 100644 src/jake2/game/monsters/M_Boss3.java create mode 100644 src/jake2/game/monsters/M_Boss31.java create mode 100644 src/jake2/game/monsters/M_Boss32.java create mode 100644 src/jake2/game/monsters/M_Brain.java create mode 100644 src/jake2/game/monsters/M_Chick.java create mode 100644 src/jake2/game/monsters/M_Flash.java create mode 100644 src/jake2/game/monsters/M_Flipper.java create mode 100644 src/jake2/game/monsters/M_Float.java create mode 100644 src/jake2/game/monsters/M_Flyer.java create mode 100644 src/jake2/game/monsters/M_Gladiator.java create mode 100644 src/jake2/game/monsters/M_Gunner.java create mode 100644 src/jake2/game/monsters/M_Hover.java create mode 100644 src/jake2/game/monsters/M_Infantry.java create mode 100644 src/jake2/game/monsters/M_Insane.java create mode 100644 src/jake2/game/monsters/M_Medic.java create mode 100644 src/jake2/game/monsters/M_Mutant.java create mode 100644 src/jake2/game/monsters/M_Parasite.java create mode 100644 src/jake2/game/monsters/M_Player.java create mode 100644 src/jake2/game/monsters/M_Soldier.java create mode 100644 src/jake2/game/monsters/M_Supertank.java create mode 100644 src/jake2/game/monsters/M_Tank.java create mode 100644 src/jake2/game/moveinfo_t.java create mode 100644 src/jake2/game/player_state_t.java create mode 100644 src/jake2/game/pmove_state_t.java create mode 100644 src/jake2/game/pmove_t.java create mode 100644 src/jake2/game/pushed_t.java create mode 100644 src/jake2/game/spawn_t.java create mode 100644 src/jake2/game/spawn_temp_t.java create mode 100644 src/jake2/game/trace_t.java create mode 100644 src/jake2/game/usercmd_t.java create mode 100644 src/jake2/qcommon/CM.java create mode 100644 src/jake2/qcommon/CRC.java create mode 100644 src/jake2/qcommon/Cbuf.java create mode 100644 src/jake2/qcommon/Com.java create mode 100644 src/jake2/qcommon/Cvar.java create mode 100644 src/jake2/qcommon/FS.java create mode 100644 src/jake2/qcommon/MD4.java create mode 100644 src/jake2/qcommon/MSG.java create mode 100644 src/jake2/qcommon/Netchan.java create mode 100644 src/jake2/qcommon/PMove.java create mode 100644 src/jake2/qcommon/Qcommon.java create mode 100644 src/jake2/qcommon/SZ.java create mode 100644 src/jake2/qcommon/cmd_function_t.java create mode 100644 src/jake2/qcommon/longjmpException.java create mode 100644 src/jake2/qcommon/lump_t.java create mode 100644 src/jake2/qcommon/miptex_t.java create mode 100644 src/jake2/qcommon/netadr_t.java create mode 100644 src/jake2/qcommon/netchan_t.java create mode 100644 src/jake2/qcommon/qfiles.java create mode 100644 src/jake2/qcommon/sizebuf_t.java create mode 100644 src/jake2/qcommon/texinfo_t.java create mode 100644 src/jake2/qcommon/xcommand_t.java create mode 100644 src/jake2/render/DummyRenderer.java create mode 100644 src/jake2/render/LWJGLRenderer.java create mode 100644 src/jake2/render/Ref.java create mode 100644 src/jake2/render/Renderer.java create mode 100644 src/jake2/render/glconfig_t.java create mode 100644 src/jake2/render/glpoly_t.java create mode 100644 src/jake2/render/glstate_t.java create mode 100644 src/jake2/render/image_t.java create mode 100644 src/jake2/render/lwjgl/Anorms.java create mode 100644 src/jake2/render/lwjgl/Base.java create mode 100644 src/jake2/render/lwjgl/Draw.java create mode 100644 src/jake2/render/lwjgl/Image.java create mode 100644 src/jake2/render/lwjgl/LWJGLBase.java create mode 100644 src/jake2/render/lwjgl/Light.java create mode 100644 src/jake2/render/lwjgl/Main.java create mode 100644 src/jake2/render/lwjgl/Mesh.java create mode 100644 src/jake2/render/lwjgl/Misc.java create mode 100644 src/jake2/render/lwjgl/Model.java create mode 100644 src/jake2/render/lwjgl/Polygon.java create mode 100644 src/jake2/render/lwjgl/Surf.java create mode 100644 src/jake2/render/lwjgl/Warp.java create mode 100644 src/jake2/render/medge_t.java create mode 100644 src/jake2/render/mleaf_t.java create mode 100644 src/jake2/render/mmodel_t.java create mode 100644 src/jake2/render/mnode_t.java create mode 100644 src/jake2/render/model_t.java create mode 100644 src/jake2/render/msurface_t.java create mode 100644 src/jake2/render/mtexinfo_t.java create mode 100644 src/jake2/render/mvertex_t.java create mode 100644 src/jake2/server/SV.java create mode 100644 src/jake2/server/SV_CCMDS.java create mode 100644 src/jake2/server/SV_ENTS.java create mode 100644 src/jake2/server/SV_GAME.java create mode 100644 src/jake2/server/SV_INIT.java create mode 100644 src/jake2/server/SV_MAIN.java create mode 100644 src/jake2/server/SV_SEND.java create mode 100644 src/jake2/server/SV_USER.java create mode 100644 src/jake2/server/SV_WORLD.java create mode 100644 src/jake2/server/areanode_t.java create mode 100644 src/jake2/server/challenge_t.java create mode 100644 src/jake2/server/client_frame_t.java create mode 100644 src/jake2/server/client_t.java create mode 100644 src/jake2/server/moveclip_t.java create mode 100644 src/jake2/server/server_static_t.java create mode 100644 src/jake2/server/server_t.java create mode 100644 src/jake2/sound/DummyDriver.java create mode 100644 src/jake2/sound/S.java create mode 100644 src/jake2/sound/Sound.java create mode 100644 src/jake2/sound/WaveLoader.java create mode 100644 src/jake2/sound/lwjgl/Channel.java create mode 100644 src/jake2/sound/lwjgl/LWJGLSoundImpl.java create mode 100644 src/jake2/sound/lwjgl/PlaySound.java create mode 100644 src/jake2/sound/sfx_t.java create mode 100644 src/jake2/sound/sfxcache_t.java create mode 100644 src/jake2/sound/soundinfo_t.java create mode 100644 src/jake2/sound/wavinfo_t.java create mode 100644 src/jake2/sys/HighPrecisionTimer.java create mode 100644 src/jake2/sys/IN.java create mode 100644 src/jake2/sys/InputListener.java create mode 100644 src/jake2/sys/JOGLKBD.java create mode 100644 src/jake2/sys/Jake2InputEvent.java create mode 100644 src/jake2/sys/KBD.java create mode 100644 src/jake2/sys/LWJGLKBD.java create mode 100644 src/jake2/sys/NET.java create mode 100644 src/jake2/sys/NanoTimer.java create mode 100644 src/jake2/sys/StandardTimer.java create mode 100644 src/jake2/sys/Sys.java create mode 100644 src/jake2/sys/Timer.java create mode 100644 src/jake2/util/Lib.java create mode 100644 src/jake2/util/Math3D.java create mode 100644 src/jake2/util/PrintfFormat.java create mode 100644 src/jake2/util/QuakeFile.java create mode 100644 src/jake2/util/Vargs.java create mode 100644 src/jake2/util/Vec3Cache.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..fd8bad8 --- /dev/null +++ b/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..f8e4c9a --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + LWJake2 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/bin/jake2/Defines.class b/bin/jake2/Defines.class new file mode 100644 index 0000000000000000000000000000000000000000..5529f1304c94c878a452c93ef78d8f16226f09d8 GIT binary patch literal 35677 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 bO_mD}vO`|#4i_P|cWfVog=70#tVRD1$i8z9 literal 0 HcmV?d00001 diff --git a/bin/jake2/Globals.class b/bin/jake2/Globals.class new file mode 100644 index 0000000000000000000000000000000000000000..f84e8760b2057fae656a630ad3f051b39cc89470 GIT binary patch literal 8876 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 DfO{#5 literal 0 HcmV?d00001 diff --git a/bin/jake2/Jake2.class b/bin/jake2/Jake2.class new file mode 100644 index 0000000000000000000000000000000000000000..acb6d6bf7c24339dcae3aea640dafaa751d8643c GIT binary patch literal 1530 zcmZuxU2ofD7(H*|#IEapEFop1*(ha4bZ_a`&GGb%x5|(N`nU9LJzdr9&GbTf%QRep@PuVs?vy|#0 zMYnF*o7rSZ!6CYwY?!W!C}J|6IMAZ+r(pn3vQP77Q?If_EYXq5N0CjgDL5j~RWU1; zp}S^9!JvQ`Q*e~PhR22#JS`9}x_aGZ=^@J=dgwY-BjQn2#WQ$T#<0L4AHq$;snr}i zopWj$j^jDDu*kmMw;ySt1I_cSd0IshCuO8a)FX+u^}2>r7-37(CaJ&BiDW-b2ey4n zA-T`#rd~7C29vD2*)F6pCgU_2_lrzdoigdsa0KH5(Z`0ofQ*c@4*_=M)9@nB352%w zYLj1BZ|K8tG-L zW|HZ7EC^_GR<&w1OvAA&6c0sS@aisUxPl@f=IdmYMG|a?n_l0fSM)JzB`a(EQOu&? zI~r7kvF=C6PPO8)tblBr@A@an-+HJzV;jR(fS z7CFE`fG5r$SDCjocfmcB`Vq=E?Pry%_Y7*Yo2%wKaPQ%*3%%&0g~8%4`guwI3{C_m zcd?v`k4O4{K;$;^@ecwbwf8x~yU2Ow!!&>F-A;A9B)ylX+AqD{G2V_#Ul5%i2}aHr9Wz;2(qroZJ|02p`On9Q$Xjj$$2RGwS^#A|> literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$1.class b/bin/jake2/client/CL$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2c09fdccf97f8e26ac349dec875dcacb878e05fc GIT binary patch literal 1042 zcmZuv?M@Rx6g|@xwp|x%iy$Im6_gf{3iw?<#0IrVL1RsS7!xwx9bjR1rtS{Hv-kr3 z#t44=@Bw@%E}c!y(7)(PS1&Upi=`$*s;V4eB8iNJKJ+tW>#h_V`+iFVuX)Q8 z4EegUx!2@@8~NQ}O7FNK!(ja%0u=^B91441iww>oZy?7o(1AVkREv9|g+ZJr2DV2f z#!r{%TxB!VT)XzBu4FKb5d#+(#!j{R3uoaXMyZb@d=&^=1&%AX8Q7aN#u$b-lrHqb z1zw0?v!;o06bxMH>G(&ms`4#d#Wj-aW#CG^#V}MPp6_|t<8r&)&=lRSl$sH{NekC; zgCQLi-Et$zMmtznm0ywU%3rl@5r$9ctYV^wX#=I+khZxm%4^bbxqMDwPXrcjVun-< z4|uyKX=bTntyD8Hi`xduaUv1z zc3U`IF$_GUdB%67(zO?Bhqh>IS4kR_Cun6g(zl_xy|>QW-DhAn)P7)#=w?K?TAz*b z=@G5Ts1IqhF7%Fa46IV{)cmS-2CF8e2&x_rLlL3?>O^lFNYGD@k$i)83uIXonf`+G zQG9IDYR0g)NYUXL@~sYt>;QRmy2|q8t&Z!<=${fN@15v*+L1l6w(3>1m3Ds=g=CQW3XMQkQVWT z#0!YM01_8*5#qTBM8pFxNFebW_$wghIH3?KB01xkGydkAZ{~db^5!jo9-KDNL`a_% z=VVXLb{(n0T)wb&Yqx7NkeuH+&G&lYY;_>T7L!B{xy1cZf!xeR&Qfts!488OHu3Oa6 zKoeMHVKvqe;+hs~LPJTcBh2@u?I|Vg&`}fFY}Pcf0T}~bgto>J!qb&bAFw0;oDvlZJ6^bnRbR-8?- zupNIeScSV66HNYRu)w)2$EVIPn28_b1HCHlP9Eg}1BfM02ow{QRl31%Sui_%x3!X2gOW}6tq zkby(I(G6>pFIYINhio2jg8J~Z<{Tc@6HfY4xS>Y=>wkrKlOx_sZmU_on@O&YwH;@?|RJQ8{Jm6s&PI|nX)(~%vpLazN$N-&S zq4-(@P5kgRWZ&SoZEQ(LHoiu3COS6x-_&Vz9Wg#^Vc)7Hv2A6K@Y^iFXNJ`PS6*P= zODuYi*i03_M^0zr5jLgQRZB+5+tdrhTMc+*1?thP+(MxCIG1{vb zU?=jAw8cM_uf4*^bF^?EJ<6|a;|v-V(9D~eH88^W9&`gKx(SnRp_TsOi~TP;=s(u} ze{81P*uu7(?x2tEVlUm}3EsyjJ-|tN2!|fw0zJVrJ;mSj?1%2J)VnWo6$5c|d&X$t Zq9@pG!bz0a#&{!uQ~a1Lik5|cUjg7pL|*^^ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$11.class b/bin/jake2/client/CL$11.class new file mode 100644 index 0000000000000000000000000000000000000000..47435a8302ad77ff4b4bf75ef99686466fcce070 GIT binary patch literal 1979 zcma)6-A^1<6#pGqc4mh`U@4Rp6e?|9%EFcpKY&(Sw$P%>QUy`)1Babin6f*wot*{x z(4-G0CMJFKg*RWygNeqZz^3@|qD|GL(HcLaN#mRT4MsdO`;jit#NC;D=bn4+xxf4S zoqN9d_txhC`midXg5bZTENgw?cv9C4I~<7~?d=udAvEXhm*ZwCWg6i%r&kPh-X?fY z>4t7UN2m;T&Ja8iQ`IC?!Y88&UP5hDH?&wbwV+wk%0g1(O`>L8NzN#i?u-jYkG-U4 z2#2Ek5eyRqZB2`3ZB0NOp{X2Yhl}tD`IxV9KhZ$_d zG!ptE!wk-K&WH#Q8q>P5$WQx%Wh!c1$=E$TJ(7eLJSL!(P+z`V#7xO}9BmxyqNN*l zf+GYO^okNrD#l`X%4X~0uoL_Up~^6`YFb1Gflf*|h9?CaFVS42GqR#sGJ@!263=VQ z>CgcY_wO;@Ss-gsNonCY2bs5redt2BfKUne1Cug(5N1#-N;1nj(3p=Y>y=skerCkJ zl6H*aj`1lOPrJsnY1ty4Wd(F2VYc@VNEpH?0jx=5IWaNKjxQ;OjMLy`cw{nbPbNk< zM_iT&J;Ct;+Ty8;x()9?nZw>0mpwhbCSrtPaUPx{9NtUxNLEj(nk8b4x#KjD5Wxi} z^V*!R7i7GMC`+ZJ)0&|YT7xcW%3$ai3j8N4RoRYKj~_%dcO$GDT4v1l*3cWYe48;q-%tq$0?oa4~K1{yOIT3uLYDN^bT~Sp_%VdVyMd&P=#4q>F z4_nGO49;DrB02sw1bN&rG%J!+G8rv{b};Q+8i5Laxs>r(;IDq} z$+4W+hWLp)EpaP3ZuB8MJXy_SIq$@M4UafUiUBG*III)s?;X_6Zliv}lY`&ioWrC3 zcK;J~Vh%@#ssdFvaiaSDbu@)Mn>ZP&PkA>nP#N++lf$6@dH>nGpEuww`3d{{Do<_T z+72SK{?TomZ`s257A9idIlMIF33zTp33#^f$~wFom~q`+XE(?8rvGhj*qK2EJfR#G z*3ssABuXAjC65g>hi+nE9a1^WcZgc*>OR=L=CD-B3;_n0RnSKeX%jN#P*1nG#_n)U z{1jdE8T#l84APf;)xScFZexn>@ICmNGxjbL^c_~|dt9Y^c#nR-b@~xE=qG$kKjRMl zf^X?J+@s&|EB%4{?Ee?tca^x1XS<+89Pi?iE24-$F@|Nd8SXu>xn1E`;%%MmOHUI~6#h;r42*+7d1^sXQCk!$MN}xh7y&BoZ?D8Ay#sOPo~v0!X+=k}cW`kmKz`u^9OcL3tJs~|uKJu?gb6p2ohQf{^zEms6?i(|<;2{;S!>SobCxs5+0{Q` z?qwrp8_rxTo%bdbv=W;4yN8x6J0o(HIL65rxZ72P(Js4kg3uT_$P}HDh*KImaGLvS zWV6D_5LzS2=mBt%KT(OZT=qboJ1T$KN$C0)_kS496G)YzyEVjcfl%qYh2nS~k%O@l zD(mHi2BqghFmX?zYx15Pg$u>fkOd4K0-KKno-sSkc}n>SYB|r3E1sa;@Bro4V}UV%Mqqw>S}T z;0N%VP+{DJRHz4g{KhlyJ&%8#|M&@D3q64bp>v|X=&d9#jJ7^Wv&~oA0uf<-n*W-+ zvUD~%3sKqOfhR1yG1mB9LbKN&5Teu#wL}xwVzjV8Sk8>qAI9aOu0E;5LbFKba#aje zWdfchBY$ja!fJNa!45&_Go6pUZsP{me6DrXHTKALYwf+Uqx!X!=wMagCSm1&uc<3z ztl<_r{a6|6j|gi$RykEkq3kHx_naN=^am2_xGQjHK81g;O;1%7;~wr4+Ce%fvx{E; zDvQKJbOj#qv!^abs?^CIH^g`xJhU!65ahlaSGj&?!azity$pu9>#fZTSF@q_+8?{2 zz_U5k{8I?=p0&D43su*;Mi)GM{zRa`i-*ow@M)VPh0KfZXn(u7mb}YQM!ym9Bf`?0V3$!Kh&#&@tW0owf(Ms8OF@**(V{2-N0hmYFm`QIG7$q*`~k4~{ID42u)~!3+ESP*sPz za^<%YhV+S4GC5^P?d;w%nDx*XHd4qsm_nMN;7TQ~2K}~(Zg@Ko)Wi)v9^CRsYWzi- zNms@UCHH@VV+KnMg*QmZcm_oavkdu(E)ECEuQnab>0X&;caZqulhV4fgLzGw4a#R@ z5z7{q7|MSdwC;Hn3kNG&JAExWGEPL))V`F*rbFb33#o%!b$7qVA36Qhx$=TAma20p zl5Xf*s1W(bnZao&C8B!3<59Ksfz4yiKD?7blKJifMRx3$d3!lcU_ zVP_(unkPhAzYWgDm|l!f7@;)6!jDUl-owZtWjIJ1d1Q_0UvBo7TMDb>VPFmGR84Hq MzDdibJ~|qGpUNF(3jhEB literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$15.class b/bin/jake2/client/CL$15.class new file mode 100644 index 0000000000000000000000000000000000000000..4e29bff45e1312d1fe333ec3f5dd052240455daa GIT binary patch literal 1225 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$3.class b/bin/jake2/client/CL$3.class new file mode 100644 index 0000000000000000000000000000000000000000..d272e9e278d77ecbf91c2802a9979b7a6822ceb6 GIT binary patch literal 1333 zcmZ`(*-{fh6g>@*hH-FVQ4xfQ3&e#exW@$;1)~AcAc{Uv&7=(@lNro(Ec9o1@zED7 z3Q}6-2lywJ%Y#e#W_ddk&=5@3^m^~_iI)rv5e1MP_F>JKus_7a=QltgUGz#$yrILxpkl2UXe*1ij#l0%={AUAj-iqW+M`t=CM;Yhu$&A6ktNYK zg9Xk@Ia_!_Um|)mdnU;QJ;vUjutJ2jl^!*>WN<8un`97_LJwGNE%Fo6~`-QwMM;!gIxRvVD zZlgzc!?RsKAcKxcHRoqIrfIRl?^cSzOp^3@%N0Q&14Kc}(0>6?Lmxd}nsXWrP|x(r zu{G2$m$nURjZ)Z0L}+t6&CM`~`bL_OwKo7>6RZZ9e1n}UXsug9EFAGAbiG6Sbkl(~ zbk!Eoy^7wZ6V$AtuZaHTBF;x%p{o>}Siv=3#Ep$f5x0vN*L-S;3+O@U_7kr19$?zLRCXlaw1l&8coeyHDd9OyNOk?IE>~=rgDWT?PIA E0QrMIr~m)} literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$4.class b/bin/jake2/client/CL$4.class new file mode 100644 index 0000000000000000000000000000000000000000..a8737cc27ed04bd47af96b42e1e9f1f86c6c9b27 GIT binary patch literal 820 zcmZuw+iuf95IvK)abg_Wru0Igw2-zW1!`yuJOuF)5fmxqB`B}a##yB%j$Q0clpo;* ziH~T7M8pFhz(0YQjYBC=OM98w*>ld$jKBZ<`VGJVo|{M!7T<}!JaAm!lYw%ojqM{7 z24O96zjwpIAPk(bUPaJtD?;Xl7kKI=AzdoB2u3yRN(*V^Y|J4;m~VK2d@~$$Wb{^a zd`T!YLRa`L5qa94ISqB<#e}8Ce*!85Q;wxOR5FVNf;AB1L|<&7fEy;381rv|)scv7 zEMtX`|4q~q{*c+1OH45mjxU0q(^Qcc^eW|A4r^F9ag*Z{q}P7f5q@mr7H$*lSVkim zwPPg|V^BSdJN)!hF^pwbtJtz}7xxI+rc^Vcl`Dwq<(6jJwy}d<xVJt=2)teuxsKeJO3#Sr==bQGOGF_j%AE3a1(GZ0Vy6_e6~&A z9r8-rv-btrv+1$Lvo#I-0fP^(v27=T)zP5bEF0+7Um~dv_E`8?i{NhVHGyg z6KtLpHqKG}jQbNj((q}92G;pHh}(ry+%;)#1p}*Oa*?u^=!!GC$9%&;Y9Yh7pYT4# Tf5hR`cf|8E9u`Z`BKZ3S&vK}T literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$5.class b/bin/jake2/client/CL$5.class new file mode 100644 index 0000000000000000000000000000000000000000..368f8ae4fa1efcbe849690c2391e39edc3aaf9f1 GIT binary patch literal 497 zcmZWl$w~u35Ph8)(>jh>UE&5FJg5f)5f7qx85M+45G7ZcOd8X1rWJj6zVwEsyQ$| zP~H2Cp?D&d%uX4so!vHr?dh&?U}4V142le8Un+5(#~qQ}1)WGR)O;NVQ9DSa!IPk! z^<>IW_x}kvX5eBV!aO713ThlxV*OL*qHdZwXEF`7QXsZ%z=tRgvG_w#GW}Qu7ORr{ d+AkVDp|P+^p9@&SI(eJc1#FNx)WB$>^99wMSlR#p literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$6.class b/bin/jake2/client/CL$6.class new file mode 100644 index 0000000000000000000000000000000000000000..4cddfaeee5b51b91c997d7a07d9f89b6288c9deb GIT binary patch literal 1147 zcmZuwO;gig5Psf%g@zQQe25BI1hfStd?+eKw3H94Z9&WQ;H4ANP$Fp}$y>ymf5VeU z&oIN-@!-XSGyW*YeVfV*U}lodZuZ@M_Sq-D|9t-eU>eWX$QuK(^wt6hAW>+hmA+l`RCSPF)CR1gGP}Zp$GJ=RI2qVJKoi}Zx*r@Ls z?vA!=84U5fqia@Kb4}s5gCV|edJMh!D*)0Al5uS44Ni5hAugeZq03LJX>~)*)~gD7 z(MQcQZcT3?$#r0WU^hIiW-KLi$F>cfCzd_KJu=)CS;io4O1N=8@W08jPF=w*4AETM zu4(fz!SXg$mNAVP z3HOQZOY|vF#S-K-(`%C;IGj^x;R`-rM`FTU>gtR#9^#RN#q$ZhkDgjw-%;=wPl%ta zWAB+YDv~4wf{wI;WjrPNb&EDRa&eQsqFQ{IdWEN>c!rFG=L|y^AYaN;uqx;bw|Eq1 z))cH`gC_FXvPl3!QCBt;`t@_`lQ@u5@Di_x`}X`5Zi*v}YDD}RG+>Eq`awZ^-xi}> zavH8~Y?wl>QZ_#$$`iTkwr)8d37}x`eWyxAb0jP`YiXWmcu0VTr=JN3&`s(mU!u1K zvP?uKzoFx#^;xE;EYjE@LiDkde8o>98zYZ2eqP{&GDXSNCc4945RLaYasA{J!=ItV z$AV2vd_|;*sZbNMd3rpc_fsr|&#*#f>I_*j@y#>55Z!~+8CVou*bpQ(426v##zxW0 z#z^`Tr0OKebrMN7jVU&Rc{WQcpF@T%w2%(?Xxd1}Y4>?-5aI&W4I>!q3Q&_GIRR{8 Sn{0>#3cRLUrZm9?U4H>Wi1y$B literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$7.class b/bin/jake2/client/CL$7.class new file mode 100644 index 0000000000000000000000000000000000000000..ca0057b7f05ff9062d9adbe46f237904f156a19e GIT binary patch literal 2142 zcmaJ?TXz#x6#jM_I?XUh8=#a+Au8B}UZO3CTFRvnXf!RA#MWMDm`qNZfn=u4oD}LE z#V7xOi#OJCEtbB)Dy2)7`rwm3@CWn{_#+henWW{?)~q#|bN1P1pYMG8+k5`__orU~ z^x+!~4TRP!=2g*`u*$Y@WFnb9bX-G-&|WiNv)oF>brLt!+jI&!NoYD@JGMMYXpF_j z38AE05IPzWHn0UvgzahD5u?>gUU*qEUlxQ&+O^E`xarwyUN?qh$@U35((3>W5HxW^ zSXC*)XhB3nD`8vB?R?qIn`Pg?4(ufC^eorO)v)L0P2a!ndWEMk=gf*oSPQ0?lLKM2 zpN*bLH4TT? z0I%jE=~fJMBF0CKF#usrYy^-X?4b zE~pL~PzRkLbZ>-vvjdyKnxm+W(-_ilhVW8N5*ZSMli~mwaTp60}Sw)lBuiDm!`C>KxkvQ zsNn;`{{QnckU^F?QTw<=C>6#S#tls1BbGlyuu7&w*i%338Ek4HIA;no8m0-mYv-(U zF>nd9Op_-nt`s@5Q1FD$7ieD}Gq^9;NDD3-FjZ+8fn4i*nqd*LYjPI0ED4Vl%xZNU zVM$Tw)?F`#vAo>RHcD({CdPy{PwYpvF@?wNu|=-EIUn*onc zg*jKYfh&sB(7fw$^5Q5PsDMdqmToOHcZ}GEs+fnT;o6#{s?she(stf}56J?rHHNG^ zv?v7=*tP+*`1Fvv%YuRHxIxe}TtH){bye{GgRxX+Mv}xK+;*=WNw*wPd8@5hSw`=~X7A7n z`nn=-E#sYuuGK(1j0`GEXz(uDy7sT&RIpw%-fAGWoW1kp??)J(e2Di(?&JL>Txhz3 zmSFVZ5++CPqW3;>PjTfHu9~HL1%-+3C6sPM?{2L$JwU0eF~GQttD}uQe3PCPxa?L{ zyfiW=fXCkq&`B6{ioal|5uqf1K+bVXKhJG<7{@4uK}vHg8^thPK!(OJMHi8y3`&%R z%i~3wz)hOOw={+CXa?WYCHz3M_>nH-0h#!XEc{LdJSKrZsTlBolvBnW*ZJ?juUN## zoQD~7;1gsyTQ@O{Pch4*$DEzdu$K{k&U-r06!`~f4RMM*!C^FNAf9MkTxe})r!Uy4 W0bgV0 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$8.class b/bin/jake2/client/CL$8.class new file mode 100644 index 0000000000000000000000000000000000000000..f1832fce2f1be5e484ffecc6f6b3b15e5c045e3e GIT binary patch literal 526 zcmZWlO-lnY5PfM^qieOcYW;>DJg5g3DuPh)vMLl-FN#-*+o;jq1hZ-JZ+TKY_yhb= z;zVna8km{P%*)H0`S^T$2hhSgM~R_!FCJtoN;4(3i{fNspCe#c`YAuACeMwIo_rL# zd*v9$50qB!kfFS}b;%IKrYl2~F==SbHgcq<;EtjU;zz= zv14nEWoT@6=%c=fGNEsyb7z&lZF~9Qx#`(do+vMr$H|UI(GbTv%}hb4Q|azZmt&QR zBT^YE9g=0^OcaGI&;%`ob_5ZeejPm&Qc^+H`$$?*_m&CeEaj)x9^&DPB?;x& zBtmVAUh4D{W8Uth8DT2^uYfwilLs>CTUo>e${r>OrGeX1Wm-aI0j6+{D@YVWEDS>o zT4`oh*feR{dJ!|2^>CgrKa}bpzW{Tn5DIPcS}P;kgbL%n5@Bk>EpFX(A0~;+vL~sM zbszIs@NkhZF@)KOwgOyoQz$=@om9sRl)=u3~Q)*a| z>~4s?lac!k)9)qHb-*Kz;;QS9345#)WipQ1kaowkJ=|sEP+w6@2-dZhy-0~HlNlDl zUeZgXR=?K>yYK{@vhoeAmP^7o;=^aY+p1;Kh%+bfcvQ$p8+&YdU_g8Q8 Vbp%y}Ec3X-XN|YdiCt=5zX9+!tS|ro literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL$cheatvar_t.class b/bin/jake2/client/CL$cheatvar_t.class new file mode 100644 index 0000000000000000000000000000000000000000..9e92c4de4d74c25226f11b74c5b65d47178e4a80 GIT binary patch literal 432 zcmZutO-sW-5PjPwjg8UP)^EHB9@K+@UMpS#f)Mmj=~XuCl5R{lkZkh5JP98B0sbg) zvIGhu%f8u}dGls=zJETy0L*aWp~rBV@i#dOMXsbaVH978mE@-3<%{v)FpM+a@G$2( z4WE)s3d7)NzLpG=c#~R~Qt5Qg;5Iz3DcL6lhAB~6^^^)iVMU2ExK&!2J0e|PElDma zUZsydb_4j>W*Egv%g1`1$nu#dxouSlo-cW+TE7cAW~C~Iv#!T~KcHs*qNqzD?^Ubg zMe$8LG(+&9wJf8YSCy+BYWd le_-dG0zHff2NVY87!wBe?P3oTo1a?T#{pU2mLK96!(ZIxTa5q! literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL.class b/bin/jake2/client/CL.class new file mode 100644 index 0000000000000000000000000000000000000000..e61e10e6ad3a3bf7222ff7e76a9ebae6832cfbf1 GIT binary patch literal 22717 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_fx$cdlight_t.class b/bin/jake2/client/CL_fx$cdlight_t.class new file mode 100644 index 0000000000000000000000000000000000000000..fcea1d82c7149db0ba61e357094b9574008e43ad GIT binary patch literal 653 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

(#~h8{%sd-R+pm2MXe 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 Y{yk5v#9cm6I-FRY4+Yl)d!gRGQX=spo~9zj z2514aO&~{?1}AKhw@;SopPdKH-jBmJy|zwcuP`Y%N7$Jpku4HpnExhdj4@z7qV&7| g4F-GvQEyJ`4J=bt4i&7BHBm(!YvkF)ti{mz1PWtha{vGU literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$10.class b/bin/jake2/client/CL_input$10.class new file mode 100644 index 0000000000000000000000000000000000000000..9f3ae2450cca85b7297137765c5b1b4c81e14692 GIT binary patch literal 497 zcmZ`#O;5r=5Pe%Jm0Cnm6wreQ59&b_j~Xv12}$Lm;YyZvBa3BM+amlePZ|&Y0DqKm z7LgdEo9w=M^R;j0{p0lwKpj;F7DIW!??k;8L{g}<*6_Ph-H+1U<0A+5Jo*sm;ZUpE z#2{B;H)Y74NhQ;BhRoi6hrw>>P`Jn-=V1X^hJr7ZXpe?H5#R7$Bp8am4tUhzu{3<< zw9~#!7^?n%I!+lJF%iKirS>Z*I#^{W{h94y&HTLFYImDD9`iW7&|}5mUh7dDh^90u z^4~Ka4)`M{otG+zbRyO5l}P(K^iVcUaxI#!Wp=^fwUiQZBjQOS66}CxrVRoXU7D4+ zL)Hl)GoFKIEIv)cF1@ZvvnsGDxJ2ChN+Qe?BenAe^(hDJ7ZiTiZy{rC|ERZT^%<;F Vm4y;E2yI%>CMsmP)Y*uk^9iTRIX%cH?ml^*bn7zdD3|B2l%6m zvxvkP-DG#>&Bxm}^ZxPr2B3+m4TGUF;&-B1_d_XET5oxMsU}&v-)Pvd7TJ408jmAY zpK8lh&`%k1XHv=ZoWVRe>@iraC=d=z8~SIr)9tsT_>srK&4j_Zin7=jZK*XB zz9&2$@dr*SFO(lfiBz|jA{|D7i;AYmcWAbb-h`%8O2n;@Cy7W<15Hf(0}Q$}DPfzu z6S7Q4j-IjnG)p`5I=al*g+<8~!tPfQ*#aSk)dfLwh5_pZ#ozrkn8x0Zerw)uVw1WI Tl(9wDqV;TJhdhUvwHP{|R%l+W literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$12.class b/bin/jake2/client/CL_input$12.class new file mode 100644 index 0000000000000000000000000000000000000000..d149113cd4b31c74e5f5b4e34249465f71449016 GIT binary patch literal 494 zcmZ`#O;5r=5PjQLDy4{`C~`9KBkDn7J!(9Nnvhg38m?q18(An@?T7NWJZU`m1N>3O zSwv!tZn8V`X6C(}nfH&^Hvk@LHVlU9fDeUN4?-zaT5tFrsqV6L>(H}d&9e7FG#W*! zKGv42UMFS9ok%6qQwDQ)ugzdJqMmSIBJW}jIfjxim1t$7u841VHxvwIKMHu*=CRax z8nn{BOc-kZe|;P?*kUY#EG79xlx-|ARQ{}Xv8;bCG+UiB9t_W;N5$Y=M_C+*OQ~BZ zeh+vs;18Udyih?HB~sm9iL@W}TvW9}zDc7s^&%MDrcxqqggi+^f(_8Xv_8O~OM?=& z$vYy;bY%Y-^G}nsL$9ODj7?aSED(0TipUlTF)Yjkya@)Z7nFYUw_zGPKls*^Z(@a5 U1}a!3YteSruuh&s%DNdkpNSw|EC2ui literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$13.class b/bin/jake2/client/CL_input$13.class new file mode 100644 index 0000000000000000000000000000000000000000..09ef97ad3e781e5cd9a685c5a2d3aa515072639d GIT binary patch literal 492 zcmZ`#O;5r=5PjQLDz%8BD01@P0U?nHM~w%GCM1=M%9Si-BMW7V{V@D3PZ|&Y0DqKm z7LXXDo9xcKnR&DG=Hv729Y6zR8wNvZ#K)ph_X83kI`t+-0y@;XpVrk#(_#3`5?NN_5gmUqpAj9|(qm7y3Nt@K6l`oW6#uMtv7>*^wmZE`?vL-M49;zsM!vX~dVt)w zyps`s;xyuw@`Esz>fuHt!*JlDwBVDlwq65++g3_Mt$@d|h;ay#OUnZcx+IgZOJ0HH0BtvUXlOJufjBHKls*?Z(^5N28!4t RYte4@aX_9!o%Jwuz5qH^U1$IR literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$14.class b/bin/jake2/client/CL_input$14.class new file mode 100644 index 0000000000000000000000000000000000000000..79ff8ada7224955840cc2a6084988d5d24b05f99 GIT binary patch literal 496 zcmZ`#O;5r=5PjQLDz%8>7jp98K~1!Z-ZWlNlO~mmhASy$BMW60`=R_TPZ|&Y0DqKm z7LgdEo9xcKnR#z#=KbUK4L}_=8wNwQ9}alki(_?6I2 zl)gti=!Xv>wRtI{SfxVVUGuD`x-P0(qv+FczFq}`>r2U#MjWOoPq76WnHC5bbZJz= zHhITnnU3r|WBzH9cIb6&CGi{Gw&a-ZvZ^hZ5Rx-VL0MmBZ>u=S)&zng`DKs-f`20wa7k1YCKl5 zG1WGd{cgsvd@iKOE*Q-HgARk$Qhn~gM8U-pmKn-{ki4Cbdpx-fdogFI1S$&SPM8Rd z=RqqQh?Joo{MW}BgUzQr$}^H*L&e5AL-o&U7aRKLqTlWYN{#Z#-GsrpQF#*aE1_E` zeGhmv3?D;k@=`{zN`<_?=Gj2?UDUKf!KcxDy$A-^my#!~I80NXVizal>h($ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$16.class b/bin/jake2/client/CL_input$16.class new file mode 100644 index 0000000000000000000000000000000000000000..186c00f7177fd3ae66c40bd8b2876f46c590f0e8 GIT binary patch literal 498 zcmZ`#O;5r=5PjQLDz%8BD01@PK|M&sMB_)ipe9W!7Y$cZ+Kn!hUG0bRw>)V)_yhb= z##uySjBYYJ^LFOFotgKK*Eax7)NL3HwSF+*%|;jtF0)3%z-T$wTV+Na#c$jA-zkrI3MTY91)h?FCKYQ)2uhbw?kMfL+!MRd-67mb7 z+bDexxzi6G0&4VJhOtV8yt(Art%_XKv`W#V@jSf@2G^64C#^V0Q=VcSG&HRcFvw_F z!Zt;F?WLXM&63(4ErxX0t0pciq5lCQ!b>IAXS zcpkLUfk+st{(pU(G1z>{!z?BFHI!_uGnD_VcCn#6iu2`E*P$4DXT1&t@cCtTb?u?`~m(b z<18XEMmO1=c{B6g&dmGA>l=UuYBmgp>X6@xMm>zAP+8pzx>DWc+4jMa4QrOY5984& zR`s#AT=lyd!~BU zji*5?8_1NQ7W~)8F@r6}BFr0wzGs^i)Q?&7@T&TC!x5I zx{2cVi2FnSz^To16-IF?)y<{I265j-RcjP{8qU|NU~qkhEle9yxqsxplSd?5O?0yxIEfQi_nh7)}7_eSY`px%X8qFVkYsxpV WMl1srtdq59KO5L2&mm>q44qFg>|clg literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$19.class b/bin/jake2/client/CL_input$19.class new file mode 100644 index 0000000000000000000000000000000000000000..6a5861198bd2ed3fac3f35709e239bf97724c6ad GIT binary patch literal 494 zcmZ`#O;5r=5PjQLDy4{`D01@PK|M&slhJq~5}Q;mC|9zSRTj$@`(gN7o-`i(0sbiC zEFv*RH`$$eGxOfg%=^dd8-NCCHVlU9h~JAwJqV>xX}#(9q?%;u?$L=2Ymt2jqVYIV z^{KX84SFd$x`&|aB84ZL36L}X)$T5_BsYE*)_eFfo`=MYc`%%EdE{~jMnBG$>)4 zykoLVM-HB`{4`5D^g6oCXu+anfw22kM7BtXVPzrEm|?(rLFqUD5~kt(;9GOPi49^I Us9=+t^VD0^tr`!~g&Q literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$2.class b/bin/jake2/client/CL_input$2.class new file mode 100644 index 0000000000000000000000000000000000000000..4828b9b800205ffd13e126aea5accc2571843f5b GIT binary patch literal 490 zcmZ`#yG{Z@6g|VPuB?kFihz}cg<43mmKqz>gk+^rY00omWN?|meJH{2QaS z@eZIdMkkp$_sqTLzFt0_o&osSaFAoD4EVM1>tQ5?O6!fFBh@HNw|oaSLv`xB3H5NO zRefxbt6nE%m_L+Crbi6c_D-9@Zs?wHVIl8f4)YAfKq}G7hFuX~@NOg+N`Ve})aJ1? zeD-OleVH)Sf`8gLU~t4(gjq`2mr-)C!chJ**u$zRoNu-|m!o5Srx@IGoyDOzm8O2- zYq-4uzva~7i3%f~NOg54(!TC_s801XSJNzk!D}id;zq=iL?qY*O-ri-a&&1*;tpB+ zgv|WxK49T~;&$nEO&EKHP0mH)-ZY4?K#XDOJApspfc=Q#Z~YrA_Wna}&-517NR>kw S>x4G#rh*z-E@d{&(D?*JreA>o literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$20.class b/bin/jake2/client/CL_input$20.class new file mode 100644 index 0000000000000000000000000000000000000000..1687a932ae4cd9c499af63fc0846f0deccc1fab4 GIT binary patch literal 498 zcmZ`#O;5r=5PjQLDz%8BD01@PK|P46M~xTMq_J?(a3xDwWwGpPKajuWN#nsE;Eys+ z5s5Ln$?nXXnfG>P-alU70C=d|Fc@k>ekZ&}7)hbhMl-k}X^o_z@QXrxtR zl3T9&-ISqlB9%-}8O+_i4ujRyec`}F(ZvD^4CO#7(auIa5nuCOBp51z4tdn!vCQ!- zXr%+0Fw}$p`Z#8=#YBWzO7bhH*jQz#{#or}ZThp{?zZ$;MB*kr(~pY5xzbr2iVK;y zQTiV8V93Xu8a-EGq!X!bTOu9kzKdF}QuJv&KVJre>nkPVX2g?3B-jQGO)CTpx-=|d zo4g~kERXCzWASO4cIb8TGUE~!C6@@hUqxg~gcz3R0^Sq@)(gtN`7M}6`v>2e@lC7~ V%Rm(yWG&jzCbr0PNI7qY&L@geV0Qoj literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$21.class b/bin/jake2/client/CL_input$21.class new file mode 100644 index 0000000000000000000000000000000000000000..87570f9f226b28b898049b50255623e5dbbc2380 GIT binary patch literal 496 zcmZ`#O;5r=5PjQLDz%8BD01@PK|M&UM~xSv2}vPFlq*@vDvM={{UH1;PZ|&Y0DqKm z7LgdEo9xcKnR#z#=KbUK4SBjOC|U+M(CcWyTdOO0E!gzlz8f2r;ZK1iTprtQQo2^RHnV?H_z=&Ns11 VECXe1k+o<)+t?w`A!XeRoliI6U$X!J literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$22.class b/bin/jake2/client/CL_input$22.class new file mode 100644 index 0000000000000000000000000000000000000000..0176abc74405694aba956114442015d0ad34da51 GIT binary patch literal 499 zcmZ`#O;5r=5PjQLDzylrD01@PK|M%Pj~XwiNfY3rqBl~?1{TY%_5=A_o-`i(0sbiC zEFv*RH`$$eGxOfg%=^dd8vqYA8wNvl6x?yI9!7%8wBBfTg}l$wUC*;&EwT@x8jqE% zPqhtXzne1TPJ|TcDTBGU-(j#Cs?Qym$h%lVj-l8TlDD&QkH=R*FX9a4rV4|o6U0K} zdC*FSB4MaC|LfzJ!RAvQW+};+P`0tgQ2Ddk#k&5vfkfmBk^y z5W0`T_mqdDU=mQL=Q4~`BIKaO)1m6SsA`$KPxJYD8w{>5C660XkR&|84rprHAz;v@ zX$jlp9g$@^a`24hr&-#e*U@FhH7rW55O%+c$QB4OtS$t+83wEu6o2z?U>dhS_|}|n XVuM%)D%d1z(TcXPO`b!_x*0m3QC49M literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$23.class b/bin/jake2/client/CL_input$23.class new file mode 100644 index 0000000000000000000000000000000000000000..977c086f63e7e90de0e4ef061df221035d97d5ca GIT binary patch literal 497 zcmZ`#%TB^T6g^Wam0Cnm6j`}&p)MpTON|?%Nt41xWnnaAC=(bgQ|yEATdp)N`~W}7 zcn6Ufqm#^>d+uw_z3(5dZvb4>EEo*c5q}VFJqV>xX}#%prJ7{vf!nZPE~Ae@G#*E) zKGVomzne1T&!m#+IYaL7sKa13qrR|_L&3oc@(d+kD$&lyJrQ5?UMLvKeiZPq!(*xW z!fB>MnK0D+|8$%(SYjrEET#4vC|lTMsQj7jU`zkJ?zOwEXewek7^XK92Ky??;y_$V zt)lon3O zSwv!tZn8V`=Hu;~dH;BQ1K^=)!(eEP_?_@tVJwBpTWvp(YEtBT-iZxsk-ZO-@i|zNehN>@>=oaIFNN@Nc77R5%33=S-snmEL zwDO_M7@GcnI!+mEF%@Bv6a5-$Hr5&He^$HL&_BDKZqS|lC21&@{E>ES# z^PrUvWya75{_Eq6!4^{y7CFhUqiSP=q4sCBi%tErZ+X&q@B{oP z<18XEMmO1=c{B6g&dmGA>l=Uobr%*xZOBI=Xhg9TN;jHeSE{>Q?*vCKoO$*>O2*?v zH73S#)$eMC!iiK;pEB6HdmRR+ne>GR8$}-rC@_>msYE*;_e6Tbd$C}sgh|BX4o{`Q zv!J5~GGnNR|MhXq;EIWea!v9psJK{VsQy{)W6k_rYPGv(TJvaho;)fB?>foTNL)(O zMCp6PgCT$5)aHeX;v|#m_DbkM()Up_8pRe3*D|YM@LNiWv>Ed(6B)KaBhvx_i!O~y z*d_0fEHjb)XDmKV(;mH^DYGOTN-h!hzlz9~2r(?r1%fFCoEMaT^GC3)_y^ya@olUV V%R&_!WF6YiCbr1)NZB+)=MzR$U-19{ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$27.class b/bin/jake2/client/CL_input$27.class new file mode 100644 index 0000000000000000000000000000000000000000..b9c89fc2dafedfc34f5381330c03b8b6502ef59b GIT binary patch literal 494 zcmZ`#!A`>VOYLP>*6Ml&&|L9jV5d-VaV)ILquLN=BnZ z)n~?X)$3@6+__XzUohAQhiwL@k@SQI8+jiq$T5_fQi)bJ>Wb+d@5X|m+)N@KxA{~W zya+nFFH?qE^S?gM7+f(EQKm_L9c33A43$5teQcVa3t_8ssWp#=_hSa{Hp!-uxR$1c z;`e~Z1OCXV$txAbNh;ODjnMt1=c8&A@*#~Dnnf`9p;BVnhGt{gYPW(Hnxam Up@MC)4sB-#yX1MKY?`6-3H6j;EdT%j literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$28.class b/bin/jake2/client/CL_input$28.class new file mode 100644 index 0000000000000000000000000000000000000000..48c2b30b527c9c02179017825d24a617f7cb4634 GIT binary patch literal 493 zcmZ`#O-}+b5PjWUSy>lR6h%%RJg5gr){BY83u>|na#6XGvNTd$THO!iZ+X&q@CW## zj8jBnj5cX!-pst$nR)+seFG4n?!scI4f&l28c{5T${Nj9SE~Cw+X;?bIP>g7q(>vI z8WUr=>UT4S!iiKeJ7utU_c{ztQ}=}j8$}-rC@_>;Qi*mx>WSo<_hP|NY3Yc^9iB*o zXF(?$$dsYp`mc{;23Jf(lxHNrf{Ke(hU%ZyKGw|7UfAy5q~c6JDgswJPa<(4O$Vj# z`3{DB%&Et76~#K0>h@A(1KsygGXlksCJW6T82nHvku+nTrXs~QXkOYLV9}*H3A^MS zl4T~c|BS__Y1*ULGi6o^hmuQ#{jVajB|;3#bAe!r0p|tf-~1f5HU7bOW_%m##IjJu S23d!evxzP8JW@8z(D?*oJYMAh literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$29.class b/bin/jake2/client/CL_input$29.class new file mode 100644 index 0000000000000000000000000000000000000000..8bc4cc713ae3d7723e593f0d4e6e9ecd6b454284 GIT binary patch literal 491 zcmZ`#%TB^T6g|^c3blx$D6(?lLS0BwS4QK8XwsyzQP`59Ok}W3u@6J^t6XVZ_yK;D z@eU#}Mkkp$_sqTLzTQ7x-vD@M*f1FCBYrEqW*AAKvSusjNj1r{UGLb2wea4B@pv4o z=2RnBgI>l^IF(9fXAI`vewV>&#RK8MM9IYx3JjG%D$&lzeUV)Aek2&GK^*d^%M+>j z{L{*YGG%B4|MhXgV2h~;^NiB3qH1G}q4sCAi*;SO=(l^FRCFc`&Q+Wzp}3H`e))U4 z!x6vd)Zw`bqd1l7=2B$Cc;KS0jjnH`UjZC;}5+x*PGZNm4O;I R2`yU97PiT9D6?*c&LN#nsE;14o- zG0p-SV|0_bx@8}~(g<@ZBDD0@-hhh0CG znlC=hbSM)--TSAFBZ4KSBFIwCzJ{`ebwcIOUhCuq(%U_PSsTmJ@w-hb%Lh2Fp>t8%Dd Ri_zrGR8eQk=FGYoKA-pRUcCSS literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$30.class b/bin/jake2/client/CL_input$30.class new file mode 100644 index 0000000000000000000000000000000000000000..2c37599cbd8d1fe3d4f1282a3a9fe6c9f0169079 GIT binary patch literal 493 zcmZ`#O;5r=5PjQLDz%8BD01@PK{<$lqs9x-q)FwX;YyaWk;Qh4{V-gN{v}Tu5B>mu zlyMf37^9o)&b*zOH}mHGqs9wrLabagT**>4vQT!lEy~&G5Avk(;1BRe z8D|lRF}lg_%$tw5Z|42u^$kE3WfvAhsm}+ZS_va5R9dMAZKI4JM3-Z7FA7ERLKl+_%zl~Mu VvQWetS%=oMjt%lWVm4yvd;*odU%LPR literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$32.class b/bin/jake2/client/CL_input$32.class new file mode 100644 index 0000000000000000000000000000000000000000..a2b277505f3e0a0752cde579b4754ca22abeaf64 GIT binary patch literal 493 zcmZ`#O;5r=5PjQLDz%8BD01@PK|M%Pjv6mSlg7$LB#;Q79VG6hh9gQ8F#QKxkT9gEFxPX#IQUU@MajWo>BhIzlUi&{NP((d=u-$ VGEl_^S&Npli7oORQr6AT`2a=^UiSb1 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$4.class b/bin/jake2/client/CL_input$4.class new file mode 100644 index 0000000000000000000000000000000000000000..d859bbfb528051a1d475a56a81e5a178e86a208c GIT binary patch literal 492 zcmZ`#O-}+b5PfA=R+dE+MZl8>59&b@^rrEGnryOq(QqYYX{5Ncx*y8l@}%+L5AZJ; ziBmvhj5e9hyw1GWnR%PMyaH%p!$FRrHsm*=)eIvkRN8C@U8!!fbnC!@%}}2u??OEq zY1JGX&sD#hGUSh>lIbynwY}3}u-m#XTv#Z0SU{ek97rWDvQbaOSG*SqhDxAA9(8yu z4W2*R=|Cn7jo_a)4jCLV7Gai>`Z6jGRv4;(7JFDV9~b?L?umX-#u(g7oyDOzlcs~x z*LZtFe$T1LQx!%!k?Q(fqyydeP&Wz%pClR6ah~jJSYcAFrGACP!p1si^`RhrIF&&;(jQ9%ag`~KfoVl zoB|qSv}rr@X6DV;`^W1WfF`zGSPYdBzZ1yzJCRDJrwsPqewV>%>4ETIBkyAgIfh~&mFQ&SzKE}RKN1Y3K!-f)@>m+Y zFgoc_CJeRUpEiyeTrm}4mQwaLlw7Pcl>ZF&v0)15+nwH-epELT2JcE|aVRdNsbBaS z?qI|pICXfg!bm4l-Cl}xs0Ti(b3V=0HcMde+e(SJ74aky33fo!(&_+<9!*KuCGC(T zGnV=@mY-&BkABaD(RIkVLfD@Nkt`5mSp81WoMDQ5LGd@=f^FG9_|AfFW0P1G%Ge_5 P&~7TIk>*im(+r(YZ;4#D literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$6.class b/bin/jake2/client/CL_input$6.class new file mode 100644 index 0000000000000000000000000000000000000000..fb510b4c099e56d7a3eb13d7b7cb92c9ebbca8b2 GIT binary patch literal 492 zcmZ`#O;5r=5PjPg3Z;nR2jIzr2lXHcCSEjNP?IK=i-s#%$|{RxSKFfeEl(N`{s4cJ zaTd@Rqnqr`yqS4#XXgFm^$kD^n=UMd+KAtZRx^sFP+7Ab_N2O-WZQ=>9ESQlc^~QV zSgYpLSgr=Wj3Iw4mCQ~U?48{%gVWXn;lW1HM-F+0N+^}+OvZhYT=9M^7^dUCQSYcTIv)IR~`M4BxdZD<^PW7W=@GkWviNv`y z9hASu+aK`Vc2CQ78s9Szy+{;0H>Hq#g4#6)Cnr^V0GFi!RMc z*d_0PEHjb4XB3`hX^&pdlvz1Alq?bU=S5`8gcz2-1zIxTb?u?`~m(b z<1C;tMmO1g^LFOV*Zaro8-NzJU04jYF~1kBW*AAKbh91wrJCe=_t=HQP@g*=!X%Cp z)tnmSYS`Bdg;S}dK4Y-=_InIYI~fWOHi|x$P+%wrQi*OJ4@7#+2a#Z?1WCxF9#5s= zi%&<7WX8}4{%PZc!4*>x=9;pvq2gklq55aAj}23}*y;8IajS184Bl0er=hrzrhe&b zxWh4jG>h4nLQ8M&VpX+I^j#&bO-%(1W?TBZY$gl&NmR1K?bZJWBE?Gx} z%={cYWBF<3_UQFYnB~DC=L&Iu9z<9o#<2RGpf%%w^Mdkky${+jB%%&MSpK+O7%m4rY literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$8.class b/bin/jake2/client/CL_input$8.class new file mode 100644 index 0000000000000000000000000000000000000000..47250d48829f6f2dc8b84c78e135dee973132809 GIT binary patch literal 493 zcmZ`#O-}+b5PjWUSy>km6ah~jJg5gr@M5Czf|`)59Mo_nWoe+ew7MV4-}0pK;1BRe z8K;287;Vzdy!m*2Gw&a-ZvdLua$zx4$NW|_8(}1cN*k@9C)Hh+?i{&r7;5w6eW)iB ztr}Bfxf=9RhTMr%GCgImclWvsPD>Aj2OD`GOUN-41F1wOoAgC|!~2n7C0$M>1ik2mi=8W^lz+gjq`LYbd)YF;xC6_OWh0_S>D_l^l-JGySL-ylb7sp}3Gn zLg8z^gE4>LB=TH^kxrx?sBHyOb+GY=iPAL($BAz57!8T}M+8$uhr9lb1 zNNqt`QKRuK**R|xy_BC-WS46EM+%^3!q7ZiW@mtb4vAN|gv-^K=Y US*T!>tV8RmqE4Pi%tj2IPlUQ&CIA2c literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input$9.class b/bin/jake2/client/CL_input$9.class new file mode 100644 index 0000000000000000000000000000000000000000..5872996a8a98bcac520368f76ac780dbd1e54e34 GIT binary patch literal 491 zcmZ`#O;5r=5PjQLDz%6rpPoE;P!E#e$!NR~O`22>esCpA*}!7iV!IgrmM4t|e}F&A zI16Zu(M@(|-pstWGxPrO`UaqdZ5I|pZN%?Is~N>oDBWy_U8yEhy?gA!VW=;X4^c86 zC#pF!maBeOGvrRClKPCn-rMgmIPIh_JlM$lSV4}V7)m9srsJMSZ+R~k45cuMc--Ns zG#TAA7-7_gW5y`ffttCYh#@xR9oS z!q;?%BmT&##d8(KNha0cQs`mQ_faI0yTnNVgLXD literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_input.class b/bin/jake2/client/CL_input.class new file mode 100644 index 0000000000000000000000000000000000000000..a80c0d6d42527cd3e9e8c6fd1a8e86d8f37c6aea GIT binary patch literal 12755 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 IMDXwb0B9rAEC2ui literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_inv.class b/bin/jake2/client/CL_inv.class new file mode 100644 index 0000000000000000000000000000000000000000..6d0c2e584f8ce8111c83556b67e6333ec887629a GIT binary patch literal 3603 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 a11fn_r=1S0;TFvyyh-ERo{gU@`urDCnEW~b literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_parse.class b/bin/jake2/client/CL_parse.class new file mode 100644 index 0000000000000000000000000000000000000000..88f12ecde094ce862107eb821b0d01dfba57a8a1 GIT binary patch literal 13968 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

RXWWt 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 OlU+k1;bk8-Lpy=NcDiW?;?L42 z2oL@Mehvw*#51$|U?Ocg_ujduXU;uyaee*=z!qMFXb3DG$scN~o90>>+wBd;lS*al z??MCutJB_rEL3+=lqYIz*LN$Ks?V96SXBwkebh$VPXf)2%{_sjS7s_k6H$T|<^hZcZGo0`=L)QBjQZ1ea|ZV6e0OZO zW8BAs5FLT}o2U}Zqb(5b4E-3St*xxAKx5RW`a&D32nzX=p{YzJ5PvU^t5o&1)1J)i zd3z*JB!~NA(!8v-IT$K?SY`=U{LDLaP^WfC!wQ^-A!J1$h*mTw@QrM8M{4*2xsac!!n1U9`D6f)Oz-#^}}S zH_O2p?)_rXAOZXtz?CQXFa^yB2*&~zJ!yo8%$%wSOU#_g2+Pa@=8rtvV?1FDcpXo% Q%B(}YQ|+E6XM2w5FZ33FYXATM literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_pred$2.class b/bin/jake2/client/CL_pred$2.class new file mode 100644 index 0000000000000000000000000000000000000000..5e09336604ae7be486e90f982b8f276ab2b0952f GIT binary patch literal 602 zcmZuuO-}+b5PfAASJp)o5%HUYiC>8%crqFjLnI*qL!#lrft00z>e3~hW_ZP2_D|`_(+R@Vc|+DsjnG~qvIBXS@CIP{uBteK*Q%VFCkB6ZME$q=l|BFat&XW;Ekbv|zK!P?2N4`b3bFwUooV;T3B~IIP z+A-`4CMB21ccvh+Y4RABk)bmxa6vXMdHRNxX9^^UjJQ7V9h393o>OwveI0qC8Q6&N Y1#FTvN$4%?&@D^&Xr^cx*u_3lzZ+$KX8-^I literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_pred.class b/bin/jake2/client/CL_pred.class new file mode 100644 index 0000000000000000000000000000000000000000..500ed454b1ff368df0d98f8b7b66762f62a431bf GIT binary patch literal 7136 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_tent$1.class b/bin/jake2/client/CL_tent$1.class new file mode 100644 index 0000000000000000000000000000000000000000..cffbf69694b0145e38356c114fe11cf60b889372 GIT binary patch literal 672 zcmaJ;T~8W86g{&ntXr2^td!uVh>X8Chq|&S3jfn))kz z()i#H@JE^6L27^pH<>+iKjz$X?|piHcmzw$k3$}{cp|Mma=NA`HN$d!qVB7vJ%%)8s6IonG?_E5ZLi$&v4BMnIfnc+ zl@hqVv2i>j+O_k(p5p@~X-YCJ~H{wAOibH9;2}T;fUGQs8 z?H;HwinUbd$HMgDj)yfWHm$@CI>1LeAD@Ki7ZpTyq?AZ%5!YI14;u_C6Hmu`rR?!d zU<0%R+AiSGq1lt|(QTKISc$m%=A}c4z(pK(CaX literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_tent$2.class b/bin/jake2/client/CL_tent$2.class new file mode 100644 index 0000000000000000000000000000000000000000..39a3aaf9aeb1e46d2758b0644a83e8b6d055493f GIT binary patch literal 664 zcmaJ;T}vB56g_vdado?zHfpN%qgJH&0SfWa50KD8AuRC}1Nelm z1GPA*n~t$U>AGDxYAM}5Xo^2pW`vPlrIp<$e1iz9tWr!TcBIGebC{&e}zdGj) znH`BnA_>K68jGYRGUei4(zh*T2s71zd;fXbA>^5%+l0l{K~BH7owZts510&4Buo!W zX?b~a6=4bmLUgQ}>19KT^R#2xwvovRVeUWDgzzx!WU>6NTo+N#+vb_L5ZvZB9Ve+# z`t+x?t+W|njxaUszzsOUf}2bDTVzIdU9i{>tz}k8gfY?tSR%|09PRIs+5InoCGhO| zRRNC|&z$3cciW8QGV3=Oz3!Gn{)dj{J;LYWJC38jB*t-$fC&^h;{^5?yOJBXct0%g u1mAn^3Y2>Hz6s9Qd1B6>k0ig|GQrR>evY25vms=k@Z@fDyeO)(QI3eo4Wyg z!uzpaoVHEhSfO;=Zl3j&P7b=_hm|>DYF}w(KNAXD+bx3M$htB_0i_58XD1VzlF%2x|mU=k0DSmNko8E>%4rwZ4cF837h4(tB(Jvo$-C;$Ke literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_tent$beam_t.class b/bin/jake2/client/CL_tent$beam_t.class new file mode 100644 index 0000000000000000000000000000000000000000..0da611553d8930a56c408b50a7d3dea32bb85dc9 GIT binary patch literal 770 zcmZuu+iuf96r7FixJ{R~gy5zvg#raybBWYf5HFD`Rf?!8+C0z)YvXKM2gi}@EfPNf z--ASigb*LVMGo5ZPGQ^#M zR+Gs1a0OP!>YeJODm(8S4aPb)0(HKUnD+wWP+)1O3lshBc$4W+rvgE*nw#rvsPj(Q zjm&capAC~tG^b2Qqe63B?d(9nD~!rX9G>&+MUo}vCF$;7U%>5hY6A{#NUUIW5dt?Q zmLP4lCULE*)+Lr91y*`Vre9r720A}cgOpm$-ZWNeU*(DA^QLPql0sl>zUq}0aAPk{ zwaTs1wnPJUTiuiJt7=EWtEz_*3s@9ryq;d>u|7zwu$(*k%(_T=m}NTerm84(;p4GD z>ni_gKy?GyrkKO)@)^`&wsnP6D>-*6k$#j&H%g=z#2SO1an5yCC**>-5q?24tbeP| z(5fJ)p#7=*W`jAPBG8A6h+Zo+5o4WvlU-R&!7Xf&0k{7se8gILb{c+0%dyF|$zuvE z4J-{TZCl#5wC#mq=)9TX4&yH4{)e;U|DWSf%<$mva?7PHBOKwJKXviXQm6B!YIwxO QYS_gdvB9MTLOj93FV41%R87DdEXo!F;wgdlvCRa{V)>9bm_^*iHi8P)K{@iQ<%DK0+Z~JV|8txq^^;#o(;Qr9`}MkM=f8)v5p-)7N|{3J&qQrT(~)w<=%ML4uuU+Tf3MdTT78m zq{z*r$o5j?5X20HduE*~t(UAOhz<7~SKXheADp8x#JpShRTyI7YnpI_x{4h2I(3uV zc#1jNH|de1blk#io?z!5mo}ugrMKK~SjbwHvnub}C;M)QCCVMj-7i%4DQn$Mx6@(J p{C7O~Pd$}RyiMX4c!r$|v|D4^3?7mwgAK-jm%z^vkN7_n{{hldl#2iW literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_tent$laser_t.class b/bin/jake2/client/CL_tent$laser_t.class new file mode 100644 index 0000000000000000000000000000000000000000..685c3f4932f6092fa255fbc50ef2b57c51956d4d GIT binary patch literal 583 zcmZvY%Syvg5QhIrQll}wc)x2E7utmZw~B%Vp-^<86kL_lc+gYR6p~{_P~S=L0t!BW z4<*j2Sy*wAnKP4_Z)X0_ueT2X+gNj95fXq-3mvYQ3r1uSX)4NmILU2&J~@ zi69d3MR43|%TN<+t|83S2YNZD^lek`5L_9bYt@kisu6~ERjl+Lw{2`T2u`(oEF7(95|#(| z`*RzwnF}K+5;I`Vhl^n|Z^6e5Jc4)9y-q@TsLT{U>)kR^a9E3DnN(S%RHiP%%yuz=%qj2_$(lf>$`;`-H3w=%x z4sK9H50jkpe|j*5X^vnH$awqAH@tkse#UI&31csq{|me0mF^kx@C%mDU=|j+-NF)< M*&8fj1*;hT24q=qr2qf` literal 0 HcmV?d00001 diff --git a/bin/jake2/client/CL_tent.class b/bin/jake2/client/CL_tent.class new file mode 100644 index 0000000000000000000000000000000000000000..33ee7f09c56c41658b1b45b3d39db1a93a28fe5c GIT binary patch literal 25774 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 E0_b_eiU0rr literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Console$1.class b/bin/jake2/client/Console$1.class new file mode 100644 index 0000000000000000000000000000000000000000..10259892f985185b8c3daf12844cb0baeda4e49b GIT binary patch literal 1367 zcmZ`(-Bue_7~Ka_CK(Pw#>Io1%%l(fgpJC_Pq8Rq=>zSyQWhVBV<9gv z)|Xo;-j{gYv>aOry>g^HKis(&s7EcG!zsLB;k3X=_m$NkYN#NQIDYyu##PqC4RPiM>_fqOL6||`TWB0RU_VaZGf_EVhV(-jPbG+}#be*E=$HC2A3P$v1~e_IRB&QsJpv3Edz{xDOjTeHeL6SPMfP z7Xy_fI>C7mGY>y7z?%n^w#9!}xeDXC^c%8II$@hnyOVYq83u=G%We|a5n2MT{axS% zGfe@vjnN~Ve2TXoBj=oNPE4}Hx3mWE9lqz9p~ita LZ=0YEZ2tZNo}@bp literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Console$2.class b/bin/jake2/client/Console$2.class new file mode 100644 index 0000000000000000000000000000000000000000..190741f38518ef8f4696388a0ef6a7fcf6897fd5 GIT binary patch literal 615 zcmZuuO-~y!5PeRTY_lvSP5GuDDWq-S(3QfiAS4n2s+6XOA}$;vXJf$BvDIB~6@C^7 z3B-XP&>w{ulL#STC3|*e-aPv~|G&My0Z_+RA327Z6aGikqgY9yZPYY6HA+m0&2h zOw83jPo&F7Mb93~ln!dWe2aAkUkpT?Sy4m@Wgl-CCWhEuWx8CYA>Lw&t`QskjE8DY zO~4g8|QD&uzwvvRO(vcrgA?%@4 zikzq&G#bu>;J3+=SnNorHXJ$m%?*2Hl9bCuOgygIvY2eb$GuogUOj#C~EK@=w_V|e{Q@STv3AUwz9 o1*S`tD=a?cX%okt<8 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Console$3.class b/bin/jake2/client/Console$3.class new file mode 100644 index 0000000000000000000000000000000000000000..970183b2c885ead1f155838987b2783f0dba06b4 GIT binary patch literal 2357 zcmZuz+jA3D9R5yjo34v(L%9S}jmo91(kMmIv>-IJ5G=H|rCeH|+s&rkl4L`&X;Vc| zz!{zKGQ9ZUI0KH(^i>>%3|?NH;n^Ag0cLp9cOQ)3$)-$8lg#cp=XZYR``y0ZNgn?9 z;CBFfaYKPeVDr3w$=n+=GM1ThVhKA}v@_<89tA#ut?u4s!_H>yT&yfdJ(s%Z2n719 zoaG!8@OE@g2>23q%2eS+lLkKm0?k8K&OBMl&X|R9eI{cHgobQG&rIkAORnoepEG9_ zX=tdi7rg?CSvHN5L+}=a6toIF>*~(xSu>W%rZj9s8$CE&m^EtdB!k#2u&q?oXU%xj zuyd(WHXrRvTNyLQGY3@_Td_?+SfF)nfC)RRVLKuWZ=_)5oV38E4!X9W$1-|uHa6x^ zI@{Yhq2M`zEl+Rsm#j?6EU1X$MFlSiw5)|69MkX;b}*)+^dn^z1ll?}*W;_$g$@O~ zYXEC)Yv@E50T%R3$sDGCyH@)*JTq?^PH#iVcDy1>6A7YQK*UtE<5dl>VK0N#^LaCu z64W`99uE7`z!5N}eW+bKKJYFtCFOhVAHT@yhZU^0)e zNM=fwOA;{Zm}MvG*wG-~7VvblW>Fm0&@YRlCJLtRm?OF~7sL^67Zz0v;+TS?PuNj% ztW0dkn$eKNaRGnYW{3iZ8br7*z?B4Ac5IY%x3h;0!z>mDNub^!hS)O$qoc#4l3S%r zD!1E-O7L#A2`4e4V3=iXL}v}}Vw4PJi0c?%5Bs9i+k|nDU#Fh#%qJQePU8$IV3Z04 zwk(U8lxNOqn3QtWu^l~=VfPiK_`HS-QrsjZi&n~+lhSDoI%ZfDnPw(%vR_3CX$9<4 zlJ*JbmWqzamYBsH5%fYqUo!0cl0et$G}c*{T$RTaQL=MF#XK?!F4b-m0yjvihAfy8 z|6;*%=z!8O*`KVP97JBjWw1{IX(MA7x!GQ~+yJK5myBj(EdVMchX=}rnRhIiaFO9t zX2>!ToU(VexgIxyqQ#j~I&IRlPhJ}G`dXD2_Z|?~Fy`pSr4xF-cAY6QrRtbnDj23D zi-4AJ>D(>P@=_eg$uM|_oG_g^n;oYmb2+n+$mqqQStP|t58lmyhY#;jt`*LDI0`B0 zx{u)9+P2EKT2mW^kDJeMt+`4ZH*m#PSOM@x2o|L1e5((?2IKw;n*F!Y6xvk5mb<^8 z{cHu#SFrOwUJmWKhnTN|9uA@XeBHxa@qknb^>I5Kkn)4BoQK1K3J!$>p+p4(abMW? z2SMMFpg-coPZ+Dc&!&9Seakqy-CgBt!_?eC?}24(tt~FLN2YsPqPG!PM$1i)h`1`> zRv*=8^&KHxjIr;lKZpIUl6QO=OHV`BQNw<(t5kvEPJAgEZ43J&G*BLyI~d_7N@Oo4yBY8UDC(bCokU!pxX`7ed6vfH;OC zt0)Wf6?XD{hBcgIF{b!KbslY)!G1Q|2uz$pn%y}I19SXZ{AO_lIeZ2iw~)sjlK(r- ze?S2bi257%A7T-IqKv<=gvWRv|Kf@W-~-W&tD=qb?YJ(YxFNbY?!(6-j!)>(r{Xxu z;xs-NQ~0t*mMJtzLe$B!ghwdRQ-Lq|&tQQwkMQESJEK4QX!Q)EdQ6Yq*#%VT#S+P< zhzY#MsQlP3cG06Nq}>OMn~AP6+<;P}C6jO!JTnf(6)2deNa1fCrJo8$4d0c1}T2G(N|$uF+i&KEy{HeZ0ki>wHu?F58Zu{{cD3 BD|P?? literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Console$4.class b/bin/jake2/client/Console$4.class new file mode 100644 index 0000000000000000000000000000000000000000..f91787890409fdedc0edcedd5e78bee8a96a99bf GIT binary patch literal 785 zcmZuv%Wl&^6g?9=apJo4L1{`TrG*swfEX2aMQkD}RU~E6s@rJlOjBB@&75d860sgg1)BW)0lNI!!Vt}J{JQIS53=_dL(#! zFgOe4aS7K@b}-K{mqDldd04=8nmvf9`BJv|n2A=RxekMt-Y($=ZaP?GSj?3A2j^i4 zw-}0DF=(|#LKLxGle*&Jwh81-LE55nG7P85HC%kPgI)#yHbj{ z9`Pg*36?=z&_4m>=+OI-?U43}Br~3kk0`z!gHbF6cPjn^Wn7|y upQy4NHkpkY%l|ckpN_CeIeAzsxdJ8LCnJXksFAdZPMU^}OLLjY==%k}6Q(i% literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Console$5.class b/bin/jake2/client/Console$5.class new file mode 100644 index 0000000000000000000000000000000000000000..1a0ac93aecd5b8487f359b6b4155b62a63ad5f8b GIT binary patch literal 593 zcmZuuO-~y!5Pg#@EZHmxgpWc?DPITRKqOF4ATCiWAq6h2IP|hI&ZseLY>{! zA@$H7z>lgJlcYI>{4LMrZ!8g4bAy@rJPSOyoaYinmxLOkMG}tiy%aK_`UdlNCB>>DbA=OLe2fjt^Gnt}yoNDf_PL2;jt8?zeJP6kK2p(xLncP?9MQN*>GZKq7^c z-8)Que=H}mCILoOL{h9uo{m5grzIoQ{t_GuG7zNYpQ!)9!o)3>|MAp>*HESU c6Rvd3RmMBHU6KaZB}QT>upu)M*1#*{0SHoe2><{9 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Console$6.class b/bin/jake2/client/Console$6.class new file mode 100644 index 0000000000000000000000000000000000000000..b0e42c09882a041674fc3e4fb71be0e20b3c4d89 GIT binary patch literal 593 zcmZuuO-~y!5Pg#@ELj#P-+}Vka%g)X5=dM?T%sZ&1uh^Cy{wEgB8H8vW}OOt7OfBx z2YvuQ3Na=T1%xGgJf7$G#?KFrclQ7`@HIw>FmtXhc%!Cs!`9d8&K54`wXGNtq1vnc z)~?-lwssk!vdzpB26v1#ewR@G_Wgtq)m@Vllu=1BfI-4o!&pA-wokcptWI+#Of;NU z`HAY7koONG-!g>=H9qcQn-KFQ>#pYtK4BupIAQ7|Y>G)t5h}W+eCAoT3G^%6nMpB= zs`ROI5n6gH)O&SSc;$`G{B{NNScvhNu<%CY9WKQpmIy-^e3do15Ibm}kQ}*gNAsQu zuTA?-uAi$vO6>S)b?ypd&koqPTvGu1)^ewwtD@inE07N5SAddCaZvJDcAF9@ocy@O z(DidUku?c0nnonWVad}TNaBcOgwYp*T|owdH2R0JznC7l!Q6kI(I85*^4C=i)7&er aw9i$>vfM67gR2rFF%+iok){?Gj;4+Ix~&b{}1 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Key$1.class b/bin/jake2/client/Key$1.class new file mode 100644 index 0000000000000000000000000000000000000000..1fcb1341672f047329c90cdcb69f3050d83d1c53 GIT binary patch literal 454 zcmZWlO)mpM7=C7VbZafGDtdHqz`;fxiGzkjlnd##neGmq+MS8rt<=wQA`X6l2>(dD z(>5YC$ve+H@8|Q*`}gY`fF>Fq9ERFJ+{tDbB}(cdJeQA~dmcDLW8%M$Oqv=Ujw}it zcMFEnq0*{2VsN*%I}E&KV(G)he1JKW7%FY0<>fH#$?RJ65=leaCK5?UWXkfXlNWuJ zGt}Gv6&x^lawMZ+L5-`Zd01ws&gKPJvEzIa-91*M?S{ye8D^0@Rd#HdBD(|eAV|}R zjuMkAeS0B`zKI!vGp%LTN<^N^92=l@=vx4XjMgCT(QBWOS!EG~GJSpX`KDjrAD;kPX!s})sw4TRTFuC4WwYj`df99H5QN6u{}j3L*xBYZM``1J zMktnX@01vAnR!}6AyV|Pj$#|fWTRAX_hjd*eO;08|=L@IEhB_tG zy8jg%6MQvQ(In%>6;yp}5-Q7iA+~1YSako+4z!J>G5vc&aN{OPq|S9dyTsw6k$jdc z?94{SrP@ARsch(CLU>`VN;*cSsYp*} literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Key$4.class b/bin/jake2/client/Key$4.class new file mode 100644 index 0000000000000000000000000000000000000000..7b8018080ce5078573fa90a01ef6d0f914ed54d7 GIT binary patch literal 458 zcmZWl%T59@6g_1sgX1WOsBDZZT&N2tL3bJ#5>1TgM#GkrnJUGhjWfmIXSve2@B{oP z<1G+lu*vP|xzBU^_5JY)pozMV0z-8m9%VC%Qzf;HuH?(kkq^#LpZcF-GaMQnjU5V| zbS*>iL}_JD8NA)S4g+tQLC^x!9(Sw0_ z7NqN3$EnGcez=ylZxV*^QfryDQjzB}M+3AHeGO0`qg9Ce^g1MD&a?l9((5D~&>grm zZws7)OT@!z65%p2()HV*IpF|*M|r+}8=lwrQ_pAh9%@uoz&bVvIsF2#NfuCNCx*@s DyUSB- literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Key.class b/bin/jake2/client/Key.class new file mode 100644 index 0000000000000000000000000000000000000000..37c815a0491f3cf676d6b7d6c7b707698c98f216 GIT binary patch literal 13305 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/M$1.class b/bin/jake2/client/M$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4794ba7c40399d67f336dea945d2225611239d3b GIT binary patch literal 1447 zcmZ`(+j1L45IrrewAOk<9L10uApw#g`4ZVN*C+%M*)lek6JaCpg;I^Bu{68dq9bn< z8lIBAE>y0}+pq}d2e&QJm4zi=Z?=`+xziLqEki>3mhzRpO-SbQHG)+Nn$kfM85b#} z2`AT-FW39sJsEC_Jx>y{Ye7SJH4!Rv9$s3ytsPF?v6F7S83w(&4(j_}5O7#2#`8ObGr1vR9KCF+hOX;kemjFVamL15>~e(N zQ19X_&Jlj#NbHmyyo>j3 zyhk`SFzajO6)Hlv7ZzPy!Bv7&lMNk&rJ#2}uyZ@*opQcrm3{>>$YIJxo^X1^=Q5Y( zu85?IY0R*bmg1_7MsC>GRks&}hQ1+x-9^DfW_6VxnTvUs+aSIW52Iuvfuw_v@QIC& z31>%q9fNZ5DLymV4n>1YyAX$J!X0&fl=T%;KGR=uEn<^6m?A#6aqD;`hFTZ5@daUQ zpYgQ{IDu5opolvz?xMsB;dxQusU|D9rbR5dD8~txezO-uhQe1aRb=Ac;Ml;D8p+$=;{Yc&qA~lFN z$sSob%KRuFJTn~SYs#avu&WI%8l8&h#Uo-HR?bGy4;!+q%p9dF*UdC=_b>Skj~)80 ziq!3Z5#1Hvmtn~hQ6wW=27BTuNBrffkc7p`aX!0) zM=Ve9i4%j9{51fxEDb<1JMlYk!h%i@(9 zuU4iHF?opdsognuuR1);Jjdl3zR6zOul|7#hPNzcdCkpCXBVE~!}Zxi+;o3?42L&g zK1RxV!kfk6V@5ER&#*lG9AERgZ#^-Q$Bb_>Cr}#`)WJpakfSc#dw&LV%V~3^1Ed}iIau~s6mw*2PB*r}3 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/M$2.class b/bin/jake2/client/M$2.class new file mode 100644 index 0000000000000000000000000000000000000000..88397b72a20531151943c8c2136b498face32d9f GIT binary patch literal 761 zcmZ8eO>fgc5PefSabrx=hR~3dj{*gfR$wU{gOE@uQly4UKP0$BuCqy&IBR5Ykht)R zIDpg&i342u{7b-WVpR!|GS9QK@6DUpAAdf70no&bgC)Z1t6(IWei%uiwBOlkIkMa!9xytLUCUz@q98q5y@e2 z5(z?SKMsTFI7p<)vqM`CWol~wJ7^Jd1EJeb3FUf&%Wncd3e>FOJ$_ix)WeW|tT*a>m_I9FS z$4nT6_QGk#&Wh-~RO?%g+@4O^J4)mURTGYM)B{3ge`JGT%;r)egh~W01W-k&U3R2c z+0AZ>{JOpA3PN}}m$cmtJMU<}cxb3C$J2M`8N>*Ij8IE+gvR~|U+>vb*Or;+n#wye z6RSo&A(Ty|nX{M3Ne*WyxlL&4FM|2RMaoI4go;I81kr>R6U|($q_N_?g;umN;J(e> zxnfVa1X|K59Tqxqi9M#-QHCs)qYe|E;uJ0rL^m#*=pnR~!j}bExT33=BApgVn5%d8cI?YS??L!6Bhc=PpHT^{3%Kc>%J0Bb|;tDja6fS(B#OpEmi(7${Vf7$nd_s z7s3q;n;0Urmf)AATZrN&_wD6&Wy+B$all|&z;kj(Sc`6qS{Ty}1pM$IZsV?rJA{h` z__O)3a1Y}Q8c!@}F01J@p|iAubJN7yH6dmpjBzc=q=g4~$W@Bpp-grEEaB==@_f~& zF>7L`T=nuG3v-y~5mio>$B-6`nH@lvd}Lus-vp&NP{rvnJmE6k#!|XxGeoFaQ+9GY zZtoPwH?)@9%_qfzqX)byKCE@)*`Jq5H|Oz~#)aC-r3luNlp;Ut+MXvo^njlYKR@^@ zKNt2*_Qu!}+rYpFRKMd*1wy=r*n+;m;L8i_TZJIDHSDqasO41y46)S!mEpR#YzpZb z9rU#%weo*z7!AeL*UW{>U~=#Tjc*Vzj(F4l`~+R~Q+RcXF6|!UYB=&9gQpl7JjSh4 z+-Ea!f~oMr<|!79BVF6)+@<-@H<+1+QKz4l&v?T>%ne*iFs`zjh3TDN&wjHL`| z3d>Dp`zKT=3_Z2mBCm+lvgK}+OshO!;5)9UGDN0L%XDWLLW$%igR*EBL=+)tI>LxB zw5*wyc(7Z^i|Pi?OTiFZvkfjcdDZm%;8Jl*rsKuVc93QW7lpgJ#L%8dQh1N2B)5vG zb+>9-#dIUiGc;9lTk=`XC<&uX?+MEy+m#5={LV$eG~AqW zS5NeeL}`z1N=FPM8g61-#TY|d9q|>?b%8rV#{_QC^a9eo^_c!$PI|&QG(!!Om{M_v zp}P*~^dlX2LEEry|)=Z!>7!mMuft4sAwOxFwrZ(N`@?R2L<89N{1i8Z%87{z)53 zzDnLWSw=QI_zsP4=uZQpbVkX7eTG88Ci3;#BeKopku+$b(*qbG>j8vft*^<{(miyr zFLkM*|EV#w1*!W4Ph~JQbcFU72rCDN=y{9y^L7mEzx4c}LnMwdO6JB9ZpWtcv3s>A z+xcV6C>D(8f-d%*w)qF*>?elVFHDe~WWW7}I%`FPhNwK|u|O>? c5*jt6wGif#Ph}Yy|1L@A3jLz=%HvAkU!(NqQ2+n{ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/M.class b/bin/jake2/client/M.class new file mode 100644 index 0000000000000000000000000000000000000000..08b2a6e9156b1b6221ef8f98c6fa6588c38a6fc6 GIT binary patch literal 8720 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 JRo>s+{|$M{9xMO= literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$1.class b/bin/jake2/client/Menu$1.class new file mode 100644 index 0000000000000000000000000000000000000000..86dd055d3688a56c00bb2ab4a89eff1f7f55bfe9 GIT binary patch literal 457 zcmZutJx>Bb5Pid)oSdf!h*DZusD&4?)YzaVCSaqXCCjmq#bY<#hw`^<6fOJ#{wU)t z5M$I$X5YSBb{3b2GCq1;wlUghJyOm0L!mV|2CL?Z5rL|MLYy4g^r zgnIj*5snF-oX9B8xbixx9x8;&pTqz)+pyFTO83qZ@ksEmO`b&ZLfO70yU@W%JP4lZ zTt~4uBY-k3A;8JUuv|^E_GQ~D{A^sVlz{ZO(_xN?hNY=Ceg5{@K*yr1~Y4i-2 zgDcE~c@pC)Gs4<;f#!?@?iA(U`Y9ZG{h@akdIuY-TW;cpQ{Hc1QOlg5J|;71u} zfq0N6-PxIW^Y+dA{`vd@P({&1gdsEL6H#?sPYM+}9iir@mz9bMgCW1(n!4Qc`rMr` z#IB{1;Vnb7RPHetb$=i%M3Jzuffz%wEtR;RPy1r_$ormPNVk0&@9~+``KoAyBN;H{ z+Ut*zjv9k0UWGdkX+BdT&_3n~DE65;Aqfz9DB!Yb$P&CNVLlo$irkd8J KzbI9YjQB4~3vgxt literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$101.class b/bin/jake2/client/Menu$101.class new file mode 100644 index 0000000000000000000000000000000000000000..32ed60b0859b0adbbb7036b11b8f9ad39955a8b9 GIT binary patch literal 575 zcmZWlO;5r=5PeH4g<3^WKt+uQ4}2sdctpK`BqSgQ4Og?24J?$cp~d*OJZU`m1N>3O zSs)ywNq2T;-n@PDety5c0aS5jA;ORz^NFaIT~7)XmODbtFDh3R3noKuvo&?O=k>We zVTj&HCBr)gBVXt-n00?3Y#4|;*g}*c(UwX)%%^=Zd*XdhFr?Z(jraIW>U>o+!;uUa zvhB^sNJovq5^utthcutg6X=zfJ+6l3ZhtJ?uvX~VNMheYiXpi{;otxXhTTS|>G5HG zt)2N=%?25R{pinUu4qcFH?G~d)F|5KUb&thNHy$;aO4jhXY5YC8krhLvK+LJFHE(hR933L9HUGOX8Hb&vO| z3+>F;YL>_ttVe$`c12xky$S8csYcN@_saGBK&oC#gnhqjBd?cC*IMnDQ2Hu(*5C#? z!eBR)6631JgFw(~iG^u61ldLA0}=YkCdy5^T~K7Ya{Ph#`?PJ*X=#{!34@xel-n~9 z#Wl)kFC^*I1h*8Ylqa9q_)l;J!@iypWasbB2(*F>vNRe+jz}Wd#tub;9Nonp-O^Ok My7U*N>b?>G18m1|vH$=8 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$103.class b/bin/jake2/client/Menu$103.class new file mode 100644 index 0000000000000000000000000000000000000000..4866308638980811278bf9c8d1994f64e12fe980 GIT binary patch literal 575 zcmZWl!A`K>o78SxXcTR8uRK2prRujtGzfY&3VO**t<`>sWT3)l4Q`Ml z40b~)F>!q!hJsd0E=|J;$SyJ;h|y0rQEt+$LXqjp*#{Euv$jR2rD66R3~FvrZqGp! zHz}jNkfKu)+)$iRo_}KdKYWt*XOG5w!1^&Mdf10LK-_J9ES7?g^gXL7`Cd-n$P={ zrFIr*H7jHc)?+Z8c%mk?-lTTpLZfJ#2j%%eC{@2HqCwEJk=IK))n@x8l7R}JHMmZW zFxYja#H8Z$Fch>}a%mb)Kz5P&K#YE}iE@)}*A$tqoP8kiK5JWaS{i0IU{G^|a(fP< zxJeo9g%q8d;Ev*q^86Fq{|QO}cDUb3F#m7iTg~1fB!kL6LpD7UNg_m5e`lWVvD4eiT>{v))-9(xpwLoEG14)L}TC48z zes!*$d0Nc^8H07}O?*exrPiC!ZX9bAZF8+0*9)ZTw?sJbdN%TU$#kvNeh#Ilf+r1b zkRuFsLn+}`T^C^G9QT0Pc~6*((Q~Q)0M+_#NVcEi%v_!?0Xp0T&CRq z15sR|jP^p3PEBx0aY}jgfwlhx4>0V$a8`a8P3mI&i$TDPBC~WK?&9K>UnjRn2 zm)e=H)vS;)SdacRa79yUy(#U+xkk}8_saGBP^y6=qM_fnQPfLj8&2mXlD-O`HMm8N zFxV}nL{Rs57z$b~wKNUKAiKzXAVxpgM7c?~D~e24PCt-*pS3MIEe*2;3~H`ZZqGp! zHz=dMkfu`;+)|uTo_%8LKfwToJ)9Bb7w^sqw1OP+G#W>NNMhK<9z}y3-NymlvQ*Q$ L^cSbBb5Pb_L2j?k*0xD`OEI<=cEG$qPkc0%J(9oLY*ucWEXYRxJx2!Z4{s4cJ zaTW-LTyi@*GjHC$c|X5j-vFvOG7)3Qjrl}WD~>CL3M(C!hhm@S1@GT9*y_7FLk~s8sSI= z42AaUW2B?TV2U^4L?O-RN(6f46_=}FrQ071C#;ow7Bbj2k!8rNP}tZ(nqjliX}Ww^ zUutKbR+ufmFke2uI$)Mo}-BZFIUXq4ZSntidgE zgu!kpCH%U}gFw(~sikQ+2H8dC12Ou^Cdy5^T~TDZa{7Vf`>buzX=#}4!=UCm<@Ovz zaf3423u!tv!7arZ<=H2;{u6{S>}W=iU%Wdf&h*+$C=xc75MxL-r4l#cxGN@iyz2^vbkn2p4xdP!{}qj3 zAbo~hbMZ0KQDHE}lW@X-<}(EXJ@S&vRln5k4uum`iX96nteZ$Pq!uV_Y#_<7T5Hu^ z-mlKJGf%5oAY-s@y>Q})y3~3T+Kpq4qHV5~<9fbS{gwy@Ue88eFPW~j+7E&Blz*?m z4RVCRZYU)tRhRp|pw$v{)36V+i_8Zi^pj1Ln{+#)$aLlK9r3qm+oIFbF#8z>HJ2&3 zXCR6zl+j*D(y0k9DNZSmKCt$m;01>LIwi>dy*ne&3NpyjXcRdjiC`036b*888#{DM OQ%&pAUzDo5M*J7oLvfq{ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$109.class b/bin/jake2/client/Menu$109.class new file mode 100644 index 0000000000000000000000000000000000000000..03ebf13bf41b85cd6705db0ca520e0e7d7f28124 GIT binary patch literal 575 zcmZWl!A`l_ zKgu`@hJ!Te&d$u6w{PC}&*v9_GWJYF7&1dX66KQPN}+;MOQ`VR^yJ)x!H{2UjUDc~ zUG9t+Vi!`$;EEwyD0Uc(s@D@1qDa_SLX08VluF!$&OEJVfsDbr^}>lG>Qd`XXg7{Einh5{j_dhS^;;qscs(0=y=1!9YCinNyP=erR9)`-f>uk+O~XFOE;1j8&`&l|Zqn_HBGZ+_cf{YOZHrDz!|Z1m)Lf?A zo`EQ?P)2(pNv9^bq&THK`oP+Mf)^O}>y#k-_wI~9E65;Aqfz9DB!W$BQ8dWWZS2r3 OO*O4ce^ILL8u4H0#c{;| literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$11.class b/bin/jake2/client/Menu$11.class new file mode 100644 index 0000000000000000000000000000000000000000..54d9028fc1d0c51aed8267a8ee563fb4dceec859 GIT binary patch literal 461 zcmZutO-}+b5PfAU3(G2kh#Wn5P!DdvqsGMGM@+zrhASycmEvw2_rvhFJZU`m1N>3O zDG+1SCe!JgnK$z~AD?gU06J*7C@?gp;z4$TFj7)yL0{^8r`>kJ8Cr|XV`$>o=wN2O z(BomoP&`&zWhV^I?%sfbcgt^_~euG!Tihcp2o` zM5PSP-hUd77+g7%VV+Uzb<|zd7;1kieQel?6{~!BDPlRiWAJWFo`mv3+0kX2I+%(l zLBh^;7@1V*`@YO3X3XGUX)Tj(B+^u-*arQHwgVK%=r4p_dL5EyHnRVM((^p+(e2r? z(kVD4D}?<;5&2a@3~S#FI&%#0S5$xVyKqWpKlpsfchDeK0h?%&=d=W1i_D|WRt%jl DTai?w literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$110.class b/bin/jake2/client/Menu$110.class new file mode 100644 index 0000000000000000000000000000000000000000..1f0f117ebe7b98b10f804f2ef948b4afa2b2b962 GIT binary patch literal 575 zcmZWl!A`2~!3KbTbLQRf~#d8w|Lw30}a=GVq zxI1K6y_8CZ*9_5IzRh4%{I0MNMcl>;Rv8ivsl@GM)Dh!*-th#3)9`7$&Bs#b^P&;< zWx$YWEI&p%$_%D>7VadZ`BaWTPrTr9)ho0*1L20{eA_}2TP7TaN=Xqy}5dVU~PuPMU5-?fp|OFGqN>oJtR3LZ4L zPL43xb*03(;_)C5v|4;&8je7Ak@-M`ezJ*jlWrFjnXa6CAof0OTXb3)X1~Co<{IVp z3`B9AGTI9XIyJ!+#VO_KCpP~Ryuz^GrUdEvyE6i@^qaWZ&LvFP-cDd(u zxjSNrUP>jyYX&1<=rEX7zb9-Mh&xzAlp)cSO59GzT`{@mT~9Einm&zp_(bY_Q8dGW z3>dP_)yGIjg~1Zf!kvaRpUxBLi5ESt`o(s4DBQ48=-5bN+d_&VxkBM!2MLDFTC48y zes!sx`C82i8H0W2PbaRZORYDq-8k1M+U7>No*zinZ;5c=_Z;N(lBrs&{TNDL1rHkB zAV(OShEifu^>`2nS}ndb4aXq6$b29|KiNdNMYjuzOjk}n5PP4sZ8~iYb6#LlbDeT$ z4x+e08SRAxotof^;*9d_6I=fYUST?KGlI^6gBOhlKfsSN z&H~{eO}eu)^XBcF_w)Pp4WNt@3lWC&kdH*U=z3D9u-Fo6dR8ixEtm|s_14(sp4a8> zh#`6{l?-ngjC`TPU{?K}uwfwXU;|NxL{lnpKOJ|)BOMh6OS}qq8q$0^PoNiG^tkF5+ufmX!%CrJBZ*xLDTd@4g@ZjL7`AJzy2ty~ zm3HQ9HEU!H_Jcp2xS}q#-ne$-Qln^_JLP(QAXUF5!hzp&kkd=1YOVHjD18+?X>fxa zVQ?BsiAmMtK_F+8XA(!KCIU<<0^` zaf>qA3kf^8Pa2JUfFEU? z1;Rm^bZ2Mg&D%Hc=l634poCKk5r))|k3^~9dQzyc&=P8TUM!X^m<-wV*4X8q*X8br zVe?ul8QwA&xqOGgtol7+!$8cz1~wVuO{v8Fbleq_N8a@WL$c}9c!y7<&X+|q9LRtn z(_DXybW|8D@haSDNb{*2fnIpQ84_z04)zge*r~PZ9`9FI z+L^D_tdTL;5B_xGin`Q#W7>@?jiPPtlXwc5|2^i}Yr!3}bR z!D%QZCRL9IfuPl5E7NcWvWv_IBJ`6@lv{KwQ)Iew@s8-*ylvBIYnbx|lbTzUI|~rS zZOUjb#Oc%oHx%cTmmk>uPw)-Xnav5(%Xb$9T0shF8a0q1k_ZlPNYNxmk8n)4B-OMo K{TWm}F{6JDFmg)( literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$114.class b/bin/jake2/client/Menu$114.class new file mode 100644 index 0000000000000000000000000000000000000000..c54fc4be85f8e63ed146da3fd6c97e74630c0e08 GIT binary patch literal 575 zcmZWl!A`UW% z$TU_TBOPT1Q@jdy64HDsN1zv8@VM#~TAhJ#!*afDA&DIm4nuN%pIlT~U)-Z(O@^p;5HWopL=tkgC@dVc+lC$m%7XYP0nmN?!#}8eAtw z80@-IVqEcf5C~c=zBCOdAiKzXAVNRcM7c?~ONvZa&fXDwo3$-EEe*53VNi2}a(fP< zxJeo9g#?|N;D+Li^85qa{|SCz*wYz7dhza@Kr2WgO`}m{h$MnN>{B$z(E}XP&7qps LrN1aukBrzKAC7Wy literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$115.class b/bin/jake2/client/Menu$115.class new file mode 100644 index 0000000000000000000000000000000000000000..da8a89f7c049a74736ab38a118ad6264732ee234 GIT binary patch literal 575 zcmZWl!A`ot>FCZ{NJn-}esyB^;WFFr)^2C`tv_lR|}srcjgPV)4R+!H`{Uja=?| z9qtYpRxhQJ;Wa}vmv1u|6~8MiL=m^Kf>nk@Ln?7Q8Fj??o_9RK;52+1Z}YL#`MhX^ zeHk!h8q1H7jxvKOo`pLJX+D)B&=W6sT=fdA&Oo?fIp4OB#Fhz%A-P0hV;c#EjcT*z z@m^)2o%veL5*dSa=TFA2s7b9iuH87(DB9*mxtu`6-uzD$#46hlYxqO?!sQ6uBA&R(-6|6EO8d8bd$*3d7_q^i?2B+cEc$<%<&gVrV z?8|^5(^!6tbd(uP@hsd)Nb{*2fu4B5%lWp2B(_XA49O)58{0@QY*d>y zkM}AI?abF|mdF^aJAX2EMNMkGaqY&LM$tAm%Juv}s$NrseZOlXtCw`D&DLWmeHA=t zaGe}su>~4l2>oOeUD~eOf(>HAXC-{b8|4a$e^LJ+iT0shF8jT`DBoXXjm!d(A?qQ#9 P4%M_S{Y9yIV8s3aM%r@8 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$117.class b/bin/jake2/client/Menu$117.class new file mode 100644 index 0000000000000000000000000000000000000000..b852b4c58b1eb1dffce1d8cecc7416b95ae56880 GIT binary patch literal 575 zcmZWl!A`I{S%mh){3No<*L7?MjAHnx#q*r+yZ z9`98a+L^D_ERiu-cm8DTikj4VqS}GadGDLIvHiJ>|yTU>gaT{w`XGk=p68Do)M~okN#}f=r!>92!A4{DtibmL% z0Yj#-`WWdbGnnF4xRa3PQ#k^?@Pfxxuh8lYgd3LgZ3{{4m~a@9D-$tKE8x?NIax^ni8*xRga(P?Rz{R4xV8|vjxL5?2akZumu Nv@ZQcsd{9@{s3u~a}@vp literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$119.class b/bin/jake2/client/Menu$119.class new file mode 100644 index 0000000000000000000000000000000000000000..1690b4f4193982b3c3ccc7f9f3d4ddd0796d5e44 GIT binary patch literal 494 zcmZut%T59@6g_1|M#e!Nil8eOF4TntToH&H(8L6EpyQek1BtKafJj)t*qvPOa8(U^7(ap*vqsr&?8K z2DusyVuo}}Dj6R!Si5_D2D`0C!i9y5hb5#La$Tv!Su!1p@RAP$!BFgKp9g&&O2ZdU zJ08o3q1^qqi6(<1X2MTm($1skpukZ0lj>p3d|B-D&TnI>RWvYDbVB~X;9lq?^u>uZ zEo6-UV8ZV?HF&K2Ku1zt_e4C_BM%iLk~b-XZ>1{+?^G!fwgVnTBEmLkW?CPRqD!+9 zcgQ*>Oo>XYP=9NCdG?}D_PoA7Tev>55wQ`r19X{;D0jC z0x?G2WOnw=%$s>Tv(MKz06y9dN({|0e-M5rjHOU{rzcdgd*nN?8QP1?B-BZwRcC5E zSJ5D6D4$9t^D_o(Z@GK8yuJBhVp_`#hBfFN1bI zk{LrQ_)o(LgCnLQEOKhSfrf)RL;X*sht2s!qkIr(9$oT84DJ}*8(pNKxR7Ri)ua!{ z{E?Hma}~xqlj^=F@{x`hyep+d+KqXZi3~fSf6<135*hu6utTq7^2|gIo>6(4r(L>T zQ&xG0P03Zl-lB;78X<=D?*{%H1NIAQzxgv*m5(2Md&#%ZBvuJqXpy&R5x_Q?OP!4v FI$t$_SH1uM literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$120.class b/bin/jake2/client/Menu$120.class new file mode 100644 index 0000000000000000000000000000000000000000..33a8bbad0e700d73c93d0f40d927afc52f975691 GIT binary patch literal 532 zcmZWl$xZ@65Pc0JBjX^8f(x2>@Bkh}@nmp0pe97n1BNRZh6Y;39y5!PztWS&gCF2W z8LJ13A$HPTUG-kQTE4zNJ^@s*ts};ezqiJ`TCp9$Wl(8x8SWld4|He@g*j-Drdlu{@#tSx^f` z!e>}(&ei#Cp~j%|XKsf9<>yO{GSQx_iet%Pr5$)e4r>OoSkaMV$o`Wsv5GVS7p>dJ zK)BNHD&cEBp{{8Z2G(FO+HUCC{7R@ElZvpfiqHg?(so>*inMqza{DHVYOsu=bpIp= z3}!=0?$sU3_qmT9kUVV{h|#5GkgwD4h%8f)y*DhrMzBGzp=ha7Xap{iZ%#>MQ{*u$ zBTcUoI3^oO7T=M1p+Jn15$Pj!9wirMHK)m{dL9Kzi(@U~uVaI(MmyWY7X1vuR8Mq% E0F7g2MF0Q* literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$121.class b/bin/jake2/client/Menu$121.class new file mode 100644 index 0000000000000000000000000000000000000000..bcf0a76e28eb041d4646a9767af55cb6e54637c7 GIT binary patch literal 583 zcmZWm%T59@6g_1|N5(-A1$@Va3(>?0xJ2EcCMKW@4O`P08ZC^iVFqhZp)`(Y%7O8mA^!;M;G2+o+aKwWMhY9tUHmT^2`w>@H{#noyVbZ8}T+Cw5L6KoL1>s>Hd4|HFzE_dv z-R2*ArVXDI9D{qVhl5ZYOT##8^w=>~G|!O=BOOb1)fUOM?s`}@V=nw+pWP->tN7Bi zoRBgM-icCT(2RH-3mP%|Cmz;8ve7318QLTl`3~K7$ubk!dd1YsDDBeenzGy@Y)Vd( z?~RMd=E!51L7q+nuupabx&4O1e}E_0x#tl;`RCm+fMHNVnOZGW2qc3AERwZJ*(I#d Ptw=G$%PfnctM=44iAHsR literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$122.class b/bin/jake2/client/Menu$122.class new file mode 100644 index 0000000000000000000000000000000000000000..2e314274815400b6c16cee89046ba3f6d004214e GIT binary patch literal 583 zcmZWmO)mpM7=EU^tgfw6TBV4CgO9|m+on+>n_v@MGedgoy?HxdXB?kqD>LtGtfgeUvsMPNYm91f|A_mBIRB21fWJr`4$c2HrM%0YOTL78E4U*D-n z^Fiy6J=2Cy4vxV+(ODddLunWnjUJn(ism^`VWbnO&buPL&;t(*GiLo4`}ii6S|w+u zrA^8(cx|Ob+=_UT2pX~YCmxnTve7311==JR`3~K-$ubjJf5F)EFzwRmnzGUZY)X!k z?|m1MEs@7Cfij&2V3+I=a^n?~{{bFhm!5_IwV!vt0StpGYSe0BmOu)qV~(s%%Fbhf QZWW3dUS?SoU9`u(0Grr#sQ>@~ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$123.class b/bin/jake2/client/Menu$123.class new file mode 100644 index 0000000000000000000000000000000000000000..46884aae15be4334d3145f7b4a219d1b907268a4 GIT binary patch literal 583 zcmZWm%T59@6g_1|N5(-A1$@Va3(>@huteRUCMKW@4O`P08ZC^iVFvYQjQ)ZvjSD}( zk22nZx^SAbxA%2=?&;^(`v-s;)*NIQNJ6bYPhjmt2?k6meZ-5kVjF# z!#>00o>Ve9V6Zl;9R|CpyTXNqtcM9qGUQuQiPPatAO;sahy+8irK!Ec2h#XIK|8sY zF+-)5evEiD7##5+!eK)FrA;cj<9@`|m46oWM3^+H9T&5hb5LZMO+k2=N1mZ@sP9#z zdAIq;o@v7;1;^l?>){|2$I>v)8a;MQ70q*`!brzbUA0AWt-BtU&6o?n*k`wi)GEF- zEhnT5gLk5o7&Idu$AU)8{)vZmkZkk`K!!HSMZQC~I$35STd$aU8Kqr1T~n5OgiXn5 z^1X2p*&KNcGsx3v0QSj_Ah+L8_z&;|JNG;SDF3`W1~3dtC{wG23V~#>fJL%4DZ7Lf Qx)mvAc$sBUbk&~v2Ciy#(f|Me literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$124.class b/bin/jake2/client/Menu$124.class new file mode 100644 index 0000000000000000000000000000000000000000..a175f47970827c8702493af2595f310b6eb5787c GIT binary patch literal 583 zcmZWm%T59@6g_1|2gX4V#ka0Ko>Ve9V6ZCH7K7c;ZQ;T~&chhS8469Q#M$sV5Q9q|M1rBz)YRVM18Mx9pq+GO z%rMtXKSn(2434-L;V_~8a)pX+xgT-W@y~;v2$OoXTc^__|| zZ#VwfGi~^!;27KsJsgDMSQ^GTqsNx1qIr%~80lE5&Z$Vcy6s`fj5+^{eSVWjt>P=w zaze^5cqdAUK_lXEENH~spLkdU$wr?5WN4FIJ!r`v3p{ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$125.class b/bin/jake2/client/Menu$125.class new file mode 100644 index 0000000000000000000000000000000000000000..894bc5ae76fc6f62b5d0a12cad9769ae777b7fe7 GIT binary patch literal 583 zcmZWm%T59@6g`EJfpL(BA}DHHxDZVwVqE#ype7_B3k_RSh6bxcYv!T;mMheSAK*tB zZxLNcllJz$PR~94{CfWY(7=X`1VibL--|}w^QBNxy(3h-wcj|jVKG!^QzMW2exG~y z45?$OWOT}q+^+Q)tfn3a2T5dH%pt{)YfB|A<56D(*SzlwhGJV&dyfaw_|u>j-O7-m z+@5`mcpNd<;#qicME#|0DthE~pQ~ZL+rJZDbX4m(C}7b>k)bdH;bI9nhWwd+QoiPc z<{x{e4WAh}2Ior0fhR7cVVp5~?3pT>=UjQd4y77)M0BeME~;kC$}e{JA(C2!H>RaU z$}qSsr9{y5c^C>BG4m%LHbJt{CjbfBBp3NM-44hy6WJLf{W3{AbULOiJBCHcdGg(# zBC=WX7#5JD(*T^1oj~rsBL5%Y4OaGj0o(#GoyyD$JFcg~F<3XE; z((tL%ihD9*C^!FY;*h}>BjF`6X)mK-BhQfklj>r{d|7Gep$atjFYaQgRn#%FG(tXP za4vNcdg4@?Ml!~~+vg9Q+B{KSpd+bnS|aXg-$lhpl}t)!R_~g@JyS}A^?*l_h_C^g zpH>N^=+fN8ZL;Bb5Pb_LC+8u80xFtVSb&8@ER4a}pe97n0z*rVV}X@(&)kQ~ztT!$;Sca< z7=MRx_P|2jWOsIE-n=(6?_aNP0IJy35o5?*TVr0W*pA>bsI<5YxA&?CIy8p-uhf`N z2BEaO0YlNd?$dQZ&b@v>n$csTL1LZr?;v zjh9!D?qA{ogV~Uhdv(Y1eePomBtn}8VsvRSd?C(Bf1=Na=)QQDx_P_WboG)gXz zZ%#pEQ{*u$B2BL%I3ycU7GJRRNP!p?BjQKuGb+x{G^fQ%J%>D%#Zidxt5_qe(f-!4 LK|h0XswX<%3=nMh literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$128.class b/bin/jake2/client/Menu$128.class new file mode 100644 index 0000000000000000000000000000000000000000..b92ed329b05f1b28dad468bb993f936484ddf263 GIT binary patch literal 500 zcmZutO;5r=5PeH4m0CeiKJ?_lgL;ryjhbjo6g4pcFB-07X;&$f-PjN1Z+X&q@CW## zjI%%tQ8(G0dGlu8&dlf6`v(9QYZfvLx9)|3kV(BIWV*5I9$7FMY7^?wQ^TQ> z^^vw*`kjO!dlJYXIb|?5x7rM5L;1pnft-UmWEl$0K#H4m*cH(o?}mb*)Knf1+dK+1 zo(9dN7sL$J=D$rGGgx9Iyfh*0C6p`_8H#^W9W3iFD`&nRi8wx2YS7VhTtxi2bI)Mk zsx9Z*co8usYBV8&7Yx^?vRZ43jZW@Y#>j>3&#m~ z7+(7R#FWyvd}BJwGI)E|12(qoXQ^D@us@ zSC-`Twh%nH@~klAA@)E9v|}JeKdppvm2SrrnS42T!}4oV*67qEEO!EhiYt`sGZ4j9 z${2FU(MA}5212lXHkjv6mSjR|4pp8eP))!D-8ZEl^uzo`N`vV%?Y- zFZF1U39Ozgt+ERN>+q;AV7KEDd9dL6Si!15v7QZ|l90{)HGl(a*crj()%{ugfuD6sK=7(4uGu@@$C{DQUTdD`RK zGiB}`Y)-B-_7_F$Hy8L6yDDivV`nJnn47 G@c9C&6IIjz literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$130.class b/bin/jake2/client/Menu$130.class new file mode 100644 index 0000000000000000000000000000000000000000..c6053f64f478ec69b8e1285eead05c9ebfb18f4e GIT binary patch literal 607 zcmZuu%T59@6g`EJk#Q7J5#Nu*L{Q@hEH!RW6B2wR8W(O%87mftmdp$${*xP58W(RP3D!)!(Sp_H0-TlO6uVy@0E> zci!p#RKySZ z&czB=N#BcrKZ~%g)xB)r8hnFvN@TiWa2rZdGvHAqBCLVxbVlfZQglc-%CZ#I$TRXI zTW@e)leSCNF|b@47B$BycLyL$AV(SfAo66*f+Iqv$!E5A-ZAw;QHs!%n~9uErq>3D i-)Yk;VlLU3!8}D~!$LB-h$ZqC3A;?B4UYjm3V#4T%6Xgs literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$131.class b/bin/jake2/client/Menu$131.class new file mode 100644 index 0000000000000000000000000000000000000000..33330b16a1043dd8bc91379683e8f46db7c0eae1 GIT binary patch literal 583 zcmZWm%TB{E5FEFGv>_!>D6jH5aA-lIDja!SDv*#`Kmzr^1v$YKx5km06v3Y$_zF%S z4txL~g;=Mk2NEe>@9yk)JpTUq`~t9pH5(a*QkVC{PAyPU=(yGrdazO7t=q5|%IVg9 zz?JfO&|?_ims-Y$4B1Mx&0sac8{r^}yo)i6Gk8s@#p&SQ7yV1_E5T4~hBV&heQEN) zq7~oCh+)2&K8$qiG1%f!1cR97OBDh=@S5VfQ#&vqyrU3Qg>P+z6)<$l(9^T&J}+W{YI#7 zW#`)9Pso$Rk}C%HL~Cj)9z}w#m>-#kbr6Og0m#r#c2REAZkHl6mCbkL-jcRMt7Bl^ zGc0OOQ0@*v6bqCwOv0np5FAiUD7QW^^`GDcmiL+v%>A7^Brpm}n4{4w=7}VO1uRmu U$k`>V(5^@|qsx3*s;*kOU(i-_;Q#;t literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$132.class b/bin/jake2/client/Menu$132.class new file mode 100644 index 0000000000000000000000000000000000000000..286ea968ac65547727f0fad51a43fcf051027985 GIT binary patch literal 588 zcmZWmO;5r=5Pb{PLakO%K*g_v2hcW-!H*aEBqyr*Z^(eD0H!LKuVj{_qn4z$-3WpB9;Ho8B zN(4b=s-O8<(F`Gjb>j~Qt~i%kb6h)es8MvIGv#`IAXU3A!j9jvk;Nv-y7u_97*u@q zAlvsEUnOHkzT7d`Ri&uu@gNX%&-m0q?1C`#5*sMm1;&3sEF&%pu0$)TI*VqrNK!H{A6FL#iIoc#{vL&L>49 z?8qTQwmy3p>8LQ6;!${`kml2Q0zL4e&sDp4;dX@=RtilENi3U4F(hXwY^=axu&;P1 zs#E1G&{}4w7_94HH1Nck)M^vjivx|KyPPV|4~9~;8zSrkEgLy(kf2MSKZ!v#Q1`NZ zr|~tiWbDW-omx|hnm!*61>G<)^$t5A47~vmp`YBM+@xKZBGZ+<7sQ{(ZHrb*!<{sU25pp0P=4y~HtnBtgn{}oIB3BF)B-(!Nz}K&aZ!2OmmJN(y~LeW{W(q1L2^hrTq!GQyN$#<07s{w$wr zeDDYOAB_GI;~gM)-)Dc4@5j66kaN$($|FiexpzDPV7(y$fFeE0Sbhur;L1;O$T!JK@7AcRC<=j z`(mbCzASp_SS5sw-s)kjqeJlJXBlTH&)4=DbR(Ktm{Ie5a4qAs)942%qw1qVD6de2 zc#McpePeHpwqkhxDOJ`a-OR)UvQE+pBO$o3*({b_c zM{<>eI~2dp+X1hEgGImKaq}VP;R3|*5od%oM7%nJR~+Y*FTP>@e}doeqCazj`tsZb kfm2XJok#Q7V3Hi3;3-Fs{e6aQ-c`8fbh$6j)g7<+4^NwSZU6uP literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$135.class b/bin/jake2/client/Menu$135.class new file mode 100644 index 0000000000000000000000000000000000000000..7ae784d6aab74d0dec134f1db32c1979a4a0f784 GIT binary patch literal 500 zcmZut%T59@6g_1|M#fQIBIwG63w0q8;!5KNH8BBWqG3zQP@pihaUP1F}L|gSETYX0RK&CtO&_cvwQ3A={KnTqTpP2yb~e5DbN;_Ic3ep)`Eq zwBwc20#8mi6OxigV9ON1De^NaZ&6lO?fIo_`p;ccFI%bfwkUucEH#!M@ zaUo3?8RI_~@q11^o-04lkyL}0h=;o8p<;B3CZ+R3tk2+GDn;S}k0KFa8#FmB5lGRc ziHSR8)d`vL>_21qX%=?rbxm4s0Gom<#JzbE;VLnPwJ(9%j05%yvcKyktla2Zy}hWn XuufGel(0c))27PUB+Dgb(+r(Y1;b&E literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$136.class b/bin/jake2/client/Menu$136.class new file mode 100644 index 0000000000000000000000000000000000000000..18f3141376ccb3d91174db505632261a7030ec06 GIT binary patch literal 538 zcmZWlO;5r=5PbvHYOR7I;Ai5&19-3z5)*^*LNpcrKNUF9_L6wL>tPL0?$NV%f$5774kwRN^+7^hEgJ_IyFuXa}C_cid2Fe-Oz2#wK!v%{$+n zim(}|fgE-<_qCXE<2((4S_JDpNJ39sN!{kM1{`Z09^z7Yeh{(Fjfh7<-^Q+SphKrH%BR@%tOEb;iVy#|8iOaGmr}!;wvo&~gJJ{o&#W~#* FpC2AEX-5D6 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$137.class b/bin/jake2/client/Menu$137.class new file mode 100644 index 0000000000000000000000000000000000000000..51a992d63a6b4534cfbd73ca4d19efb50c25b36a GIT binary patch literal 480 zcmZut%T59@6g_1sBf}^UMbMQC7wW=^uyCPqgPNFtiP5knWvEgdI&mJ#=NSD0R~i?7 zfFEVN1!9caq&@fCd(VCJEz6d%Z zQiji*JQ=8%q1yU)hjS@rYPpXS0(=vCSs-$}qiF*d;B1|J+o+#5f zXO`L-iaSAb9cw=bW2LX#G8u$@7d4~Jo0RUPz!iggs~D+<5$kFbhQKlFU2x3EmA U3@TV5rj^>jEovoAkrT|1qBRr19Vn z@JAVE3m%M3y0bI$-kUf3_5JY)pn)wDDMIPa8H+~U^`uZy{amPcXTN!1!XT9Yw8mmG zh?U!q2=hl$$>^AnuGX#zM%%v?7ShPtn8Q3F*Of|K#P>HMxN>ehK`3^8*YU2MKiKctic_hrW%a;4tW?vU}b(!AjLng&$-FBCP&hh-8W=jleWdDrD6Fe7~EXo+@69sE^S3fvr}Z}JY-|6}gDX&*Meaf~9vfYs zT9kUwO9k@BN~`olz}epE3b;)(pa2g10v3=LD7KWQ%WT}I_)7L85-7J!D5I{7mF07% zn+{bXP;LFE;Yh%vDTP_etyfX@P!cHp$t+;a{#dfgdlyFO4#g9Sd)ER%$7FFxXUYoj zZNlD2P9)1a)nQ~3rEl7l4$VNIaIQ7Q%}6E*CD;T{#ybLXY&;Qjk6#Cj!g_Weuz3F! z4)_jin*R!ygG>OmsLlg10t#00!xFnS?N8D+6-W4k5%El(N`{s4cJ zaTbU%>L#;q-+b+x`S^T$2hc#xLr$PFl8@A=hmj&}>TS~5&f&2KSD-eJJcaRi9P9ej zqSS+)5m-J|TA4EeXLqkF;5Op{`EZaAu!LoSVoPbd%Eo<4u4O+WfpRMjWz?04vV7rm z%}}KR)z*I+P6RxfQkWTTy^gYnl0fNCW`GU*W7#V2b&O0*hmr{;y?X(_6K6?C7s@Kg z+l+&eoJiJpuEQu!m40ZG8O8&F;8JT!nvqOXO0f+djh6)E*mxx79>0zlh4t*eVC8uh z_WAa0THyvR2Mf%Dc@pC)Gl8}528|g9+*cHT*Wbb^-2JF`7xfM*T$RHns*Eo00@z~n Jxw93+=L-cqSO@?B literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$16.class b/bin/jake2/client/Menu$16.class new file mode 100644 index 0000000000000000000000000000000000000000..451c53473cacd7d7a90f94211b3c9846390d8fa8 GIT binary patch literal 470 zcmZut!A=4(5PfA=SC&--5jlGBpdKV*;zi>HH8BA%7;Xm3(nxV>W4DX^mM4t|KfsSN zPJtMsHknS}%)IHF`S^T$2hcz*K#rj@;t!%xj}s}Bt+$2Bb`FmN_zbmq<}udeu~zk| z^IQ#jmSOo+DrwIcyxqMngWuEx5yC@0!V;DliY=+cbvEt`bHn?IU?{hA%#$uR(&0tW zw?mmSR9pXPIAI9HRK%I3*6Sz-C^3}&R7TivKUO-H8`}|PB23Rsac=k%L)g)oiN&RK z8uBiFFya$V3NKWg=v1ovwy;AzV2G}i5~i8(G!-efLBr9SfE*bOML3|>5qah!`!85| zo~1*&LswR~g-^)>;b>k&ew7fz+ING-31`RaoZ$ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$17.class b/bin/jake2/client/Menu$17.class new file mode 100644 index 0000000000000000000000000000000000000000..b7412626772226ce75a08e7b259dbb42fe086ce1 GIT binary patch literal 508 zcmZWlOHaZ;5dIb_m4YHqA6z_m01r0e!5EAeq6rbaV7QV}MyS+n(r$_TD?MpE_yhb= z#@WJ!*kpG)Gv8xoe}2Ed0klvzkrJppJ9BE;uJ4glcAsQ?a(-#T5U6c*=Cpi@r8`mr znQKpa>P8^lXbuI8PB0-0X=L-*LPns_^CUgQFJlTHov}{>rC#7V{?G|Mov(|Ant2i1 z^fr9f6SM_PdL=hjOs_V&O-3yo+jr#D9;nch)3${o$|gzz#eWKUR8SBo50n$C0fh?+ zM_T!wmOM7^A|Sc~)*y&Om+m}0WL5*tv<4T`4K-_)Zj2gk!J_ zzao(0!&`H1^4|qVp)02!*nUsi7T=bJ<;F0$nd3aa0&(2oOkfuUzO}#=$3(LJiM=;2 pq?n9EAGt|FuB|;+WbIx>jcIA@C-?&#ay0mLfFnK@_w-Es{Q*LPV5TcKYw>)V)_yhb= z#wieE)F#vEo0&KBIv<~J?*N*pdB`wS#(W~0^)Qk`nR-{KbfT!oQNq`L14Gtxtb;8H0OwfFR+s<) literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$19.class b/bin/jake2/client/Menu$19.class new file mode 100644 index 0000000000000000000000000000000000000000..e9da6654e2dfd30a1fab312ca6dfe4b94c6c185a GIT binary patch literal 472 zcmZutO)o=16g|^7JbhkOtEx*23oJBhCB&vkBrOZlZ8Lpu=+x^B?}Pp=D`MdX_yNM7 z5qH`~1e4r3bMDuidtX1FUjQ^vbCF}H48*l;)PqP#oz~k@XKUNLE;vJN61fe`aAb6*&nM`dH2xV>&S@k>?T!4C*4a1@7!c@ zAdi(*k+)e}192xv@AH!3P%)9>9Z};K^XT5KV~S1;dpr%LpUuY_bm{f2Ajl2S30+ zG5&+GXW>Geq`RjdRb4Y*zaO6fTBw`I5GoJuT(lg|mqNu(U#R4`Wx^oT)*5rMxKETf ziV3+3sbqXf$Tpfog3$>k!a^1W8yme5-qK_A4TGDToZHJGj$51&wozoS3C=mDl=XM)yl^4IV5Iz@ jpA=kM?OcNO_9|)&%VIB`-^T$*gTDkgWV5)ZHSzfaKJ{Fe literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$20.class b/bin/jake2/client/Menu$20.class new file mode 100644 index 0000000000000000000000000000000000000000..d598dfa4e4bff48dddcb2981abbd19185788fdd3 GIT binary patch literal 510 zcmZWlOHaZ;5dIb_m0Cd%@WI7{2k>AGo(#rBi6%twg5gR^J3yswlRk|6D?MpE_yhb= z#@WJ!*kpG)Gv8xoe}2Ed0klxpkrAjo*>h@Hj_;9-tv<=*xOJvO6R53q=Cqh3(iz19 zxl2!a@s&Wf(HshBoxmjnS>#P@ASY1ld6FKI=P`wk_Sh$ZaxZXfe`trE%2!1#o_P`5 z^wxY<6SM_%dL<``nO<#ln~Zv~E#HN?oVE>=u&bjiQ2M7}qJkn5uU$8!D7p!P z`A8|>(_%E?!Fd}2(G@TTK@vK2=czIC3UaE9c!^u-_(8-*eTrv+D`0k|q_E@LQA81r zz%u-fK!y+R&AHBh=NyHqoP1#OJ#8C&8wyq^L*wQa=jIZ`aho%N0*ZVqfeVhQWc?F6 rZ(PVQ8L2)Bm6Tjtc`nJyy^0#sve--U`#9jJ@%sRWd<^cXnfUty5H?_# literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$21.class b/bin/jake2/client/Menu$21.class new file mode 100644 index 0000000000000000000000000000000000000000..4ad56b9ad0bcea94108b02dfafdb346625dfc6ea GIT binary patch literal 472 zcmZutO-}+b5PfA=R@M~+5jkq)pd2KwM~#W1CMMuT!d~A}Lhb>I#)L`~wFzLw&A11bQ;jsx>vp zRoG7%^2bui^n}6M-Rm*fZ5;|1778AgkY^}$q!QQJWFX>OK8OTErK1BL^>{1|UpVb_ zC=-TS=f56~7#uMbL6%bKHB=mw8OnbmJ*=A_Yo}otizGSIdfYctoX7mBf5+h7=qwJz zr8Hd>jIuxCkDPkEP(h>3reUAkQpR@{b7;tFwZ9z?iGjG_2lz@Krzenshb{tm2S<43-|$hT0XtQ6Txv{|Xkr3xG;B$ksZto)I1j^bxzf1s1NCby^OzIyI`|9E`^5Tfm(#L%3GsSJZCQBvnYU+Q8v3|(-B_9F5Snc2+fU~W<9 zc$hPkPn1^qDTA}OKVaZp6H5;cDn3?FW~lX)me<8>B-2|lN+d(0XCjddM5-)bI(a@; z8AGf0pN3-wSI%Wr9fNmciZqg!$||VX zjLt+n3etC>qr_xN-}hxcHZg;LrL|1EiO4dUVFxrCEeR-*(MZHydL0om>p6JF>eE-) zquaA-)kAO!t`YYaNrdaf7^>e5!Y>Z+7u0^&ci>cmAN71$@1RLlC2XNZ$Y~eAHkn7A Htr$9=sM=Rp literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$23.class b/bin/jake2/client/Menu$23.class new file mode 100644 index 0000000000000000000000000000000000000000..8a7df8664b4b521584be023cee28d72390051d47 GIT binary patch literal 469 zcmZutO-lnY5Pj)J*RHGmwD#!1gL<&AJt|&`g3yYf^dL$}w`rTYO>jS?{wz<52Y-M+ zN}RMsL=8+PZ)V=)&3t^my#okPcadYLPQ<+o8eycQP8%Jmv)!QSf-}??nTOC!r$#qs z)(bu8r3|abN~`pQ!P(pIGVqoeNDmJ3K31^GP-rVHFS2Q0#@C`BNrrOUgd*ySSXsOb z@^q{chFbeS4Mz;FoXIdtsdW)$7bS+$pGqGU`(wo_?_EaXNyaUshicRtGI&=ei$i&) ztc1KRIh=?`K>|;87@0)rQAeg@Ghpz~wI*sLl0+uh0nJ8R0&-+D6JeKLP4dh}4qmYK zJWqRcd$z2215U|x!v3O&{01S0&F==m90U9nh2Q*JIK{gke7@v6s1hrOE!4Dy`;eiXz(3)rNqGU2j zbTGAE=waV56pxfv=9t0R-sv&$b~2P69F%-4p~z6_C@s(P$v~!8Vh~G)dMAlQ+!Lv? zcoF1gq%wwP=RXaH46dBYC^yu)in@y$L+wwck2O27Y?b#fa%KA04Blmur;$8Wc67<6 z_Qv8~kgyXS#Yv|0O;?&xGGy@2w3cZ*7Fi}UY=Zto+W`t>^cTV|z4pm78`*uq^7Ab1 z(e2r?>H|0>%Y^-T5&0ED46EM_!WjnmD=NSFk8r9_KlpsXchDeK0qbaz=d=W1gUqAO HRt%jl<||e7 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$25.class b/bin/jake2/client/Menu$25.class new file mode 100644 index 0000000000000000000000000000000000000000..54864a0f22880cb8b38182e38afd39a862fae2ef GIT binary patch literal 478 zcmZutO-}+b5PjWUSy@&QL_|*>JRl}+vc{9f3u)V)_yhb= z#wieE)F$nlH#2WO`tkYp4j{y~3yYyP=Jz5DqF4%*1zn-?-SEhT!_b&V9wI%NXcbHi zay9H{422V^WOmA6H}`rBPFoL!2OC8nODHguJ5q_Od@>Np4IjjUq1w?Ak9$0khA*5> zHj*hrz4PA;#|*BRiYU*h^ct!zDh!oBnLgG{$6}XD)jv!46N7iH^CS`%(ljobl@7-I zk<(b`DvEU~)m>L)BR%xdFxrwy>CXz>GWeHDiKHF#G!-d!Kugkh0Tx|aj<`$KAt5uK z)(e)OXJL7&>1GsaPBU literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$26.class b/bin/jake2/client/Menu$26.class new file mode 100644 index 0000000000000000000000000000000000000000..5e665dc73b7f2225e17f3436b69ad1e76d85fe23 GIT binary patch literal 516 zcmZWlOHaZ;5dOAQ3#E!6-~&xOcmQJ{!NkO1ybw)@;042#EM|w`UcR%u?2&n_{8U;*>F86RMhAR6`wXQEtm}Dwa#2DCb4pd z5yR%SR5H3@NL6bC2D9ytg^d(44mPmKkn2h%9^&Vb2p;*!6AXo}?{aUz1F7>>(Trv? zB%AJ<&uW4egC$;t8%IPhRXa68z3_&|)wI!%0;#4g8+q(nC@|#zDL5!1$B^!EsfPDr zL9@~V46MUo_x(6<#huiXWwc*iYt!7f%Juw^w0k0&`C|tay-rp`hKbUI!RaU^g0{!Q zP=q)EDbs5L2K}@>yA(vO4OR{z^p-i+C_7eO)4k()RN{2Y2n@v4E6McU#RA3?i literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$27.class b/bin/jake2/client/Menu$27.class new file mode 100644 index 0000000000000000000000000000000000000000..c7a5621ef515ccfd6704bac63b23b7c733b3a52c GIT binary patch literal 582 zcmZWmO-}+b5Pe-%SJqV&5x$Gwro0zLafE0{MEx;DGbPc0{%sm#vz?5+jZ7TvTIR1(}@Xn)K})VLCIaz39w>EEi_V{ zs0S^dDZaMw8Y?3Z)Qq9{Sj&E&c*N|Vc-R2T#(w}fyjd>xJ-+R+6*jW{iiwwD+UL`^ zFy{&`Cnwnten4!e*b|sWj!#Q)$aYA%^M;xK1UGOUIV33lzWYO9JD5k2OEXwt5(kS| XV(YTB%UI=Go@2HzyD}VIb0@w5x=eLN literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$28.class b/bin/jake2/client/Menu$28.class new file mode 100644 index 0000000000000000000000000000000000000000..3050325bddd22543c1ad49cf6a76b18433614957 GIT binary patch literal 583 zcmZWmOG^VW5dN}VUAwMUYprkb;K2u2s29PjU<1iyX1@6{^X2pF{R2Q9s}TZ$%B}2Cy_RZ4#?_i+^7Z;&giv5z!%iGc_@Baovccc0O z)yD8+^}T(8h@L3T9hc8;Fy=wlv^3q?Mdy}Mx4+qrF^!oBWr67-h6ELqn7ieqb?4+B zGuvyCeIR?9n^Zt#zNsNnfw-0BHl%k%owuATK4{#8 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$29.class b/bin/jake2/client/Menu$29.class new file mode 100644 index 0000000000000000000000000000000000000000..3d62818a550a05ca6d2ddd50b31bc44132191d67 GIT binary patch literal 576 zcmZWlO-}+b5Pe-%7uHn-0l$q051@%8cp|75qlpQqiH55wYXgPSB}*6eXL-_i@CW## zj8iloq)9uSnK!Sm@AK>Z13(Qs9vp^3pAST>8Y(HYskVep_G)zxF2m+*XBcv&Iy@XO z%pXfF%_&2wTxm17XVHW3kwPZG9OfCaO{v9IGVF->j(3z`$TuSzZ}V8%{I}?uo*Xlj znzN79>J0`@Jc%$dG+rzdX2PqA>u&YB(-)y>RN6jrSn-f&$jvYWC?HEpZWMnO@vSh) z=pxY}1BQtdvrUZ$ZTc*73r60+o#jFFvq~9<^tux z4~XI-WeiKm(rF1!C{8I4-mv_iU;@{9oD!6N-~A!53W_MvXbP)D;$RKy6kRfP16y>< OQ_bqKD@E09H~kG3kaH3M literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$3.class b/bin/jake2/client/Menu$3.class new file mode 100644 index 0000000000000000000000000000000000000000..e59dd647b34a31f53d8fd2d9c0cb78cc667fc576 GIT binary patch literal 459 zcmZutO-}+b5Ph?|va+lqAj(lA2lXHc95r5uCMMuT!PwwBJ3c%@W0`o2%xq?KYi_;J z<6%Z9oGGocbAo$#G$43gGnN5d6ho|`Kq&W=me=`gB$Hb)iY1}iGm(e~B2gBvf?hUJ zDWTr`N5Uz=mvb5A8F$`7)klR;`BNC8W(St6?qOdjJ-j0XHzrRad8zE=qD`Gl#gkxN z7dnbfs`PzdW)m|egjZV2q#KJgl_~bXU*g>W4jX@kvCpp#d$N(^7py-o(gELrEpzta zak9iXTo$q4U_{vbZqQy}zx)BM5rR(u!R%yLl24ttN60PL~_+}VoZ^96%H BQ``Um literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$30.class b/bin/jake2/client/Menu$30.class new file mode 100644 index 0000000000000000000000000000000000000000..75014ffdc8958f260cb1a0ca8108b14c66ffe8ba GIT binary patch literal 496 zcmZut%T59@6g{1(jEtiQBBCo7E|i5BSZds$CMMuU!q)w_Wsnf0co&(NMo9Z*a55M#L=z%-!Ehy|EU;3yrXNOrhw*>tN#nsE z;EyuS77h|O*`1x4H}B2N_s{1SfEo@AXbgorXUc1~>j^F+yTfICR6jMKGnAGxQ$8ET z((OkKtLH+B=z<|tsrDH3ra$B+Qb=1^!74+hEhN8*?*}}%bp{@1$hCdf@p?`ml)nh- z(L{tK(_Ye9bkJZh_!D>Ih{}tVR+UhXj_o;eY*IB@xuP)(*4;6%yL2$$0J{E%ciJev4J3uQG~PC@#A zNkE43uOc`jn^2ZNu=Pp-jf#=*LwiYzOAF0;u~ILhL}e*#C-@!glGSN%d)TL+NjcRM FonK6VXte+U literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$32.class b/bin/jake2/client/Menu$32.class new file mode 100644 index 0000000000000000000000000000000000000000..a29b06c1796bcbd50fddb6ddb4641c1214be9e30 GIT binary patch literal 680 zcmZWmT~E|N6g_ua>24`5Agl;}fH4L%ag*IgjDo8q#6=%8`$}fZ2xYs|WZDA$ET14e z5TE%`#52Hy**59ixpU7sbLZUao69Qz9lQ)s6D%C7k?yqPG|{GL?`c!M>UIM7f|Y7z z9IG@Ps(2)rdY_o2_#p7sHwFT~mmTO39vTrIU`o*JCq{oO$3ty@s$r@H^ZktUfwGCq z?+^XrD9Ht_e)Y0$XHyX9GaZ)&>5J>coTzrH%whZc@L0#i=EfkvoM5d=9`hl;tQzan z%#QZ+5Rb4JU_mff!A5A|F$-Vy?_O#1%zn1&bf+}2;I+GR(w+%vHX)GAy|2=rApDV) zHr6|dbD-huedkd0=ZlHcEKkhgo-U5Eg9y)^Z8Pj5-*>oO+AD~5jnTH3syx^9sqx*$d21YHTC$KHX}x?r`@SWMBzT$o8;Iehn*l%II?%&+vk~Wma5k?(=xM>en&L HxQ6;a!p)NH literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$33.class b/bin/jake2/client/Menu$33.class new file mode 100644 index 0000000000000000000000000000000000000000..2b144d17cd300d2ad9b7d0b8b09f86a2f584d05e GIT binary patch literal 572 zcmZWl$xZ@65Pi*z42**aA}*-$;K3zv66T0{a7ze-9yDA{GjyPJ=t*XA`7BQw4}O3j zWvm9{K|1NKuBunBs@~W4$0vX$wk+frYWMs>G~FPSLZxn3sBFjcESL<9*~~cLVc6%v z14I5uDw&=z7`uBt2J!IiDwaHDU~np66TS+Ay-59x_>W%w6)i>QNfahDnn(4!9fjW>U$pZr;d0z zm1-c>@G?^Y1B>)PGlUHGO_arfxRiS2qSoV3qiCTE6@*bj3|*0qqJe{k-m^r^$(_cv zNe>36t(1t*LY^do7AyWqhHa2oq&$$LOCphP(a$5xbY%Yxh1W^irq|XmqYaai^W-~I z5ZMxW3=1gJs|k+DPACuFvG|{$1Jm#)1ohv(QvyA~GU`-nV1-C>Sj8GylLTGI2K}lO N({t%#P;}EQ`~ZWbaDD&) literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$34.class b/bin/jake2/client/Menu$34.class new file mode 100644 index 0000000000000000000000000000000000000000..893dd7c4e667d3d37f99d87eb76fee3af9d3abd0 GIT binary patch literal 572 zcmZWl$xg#C5Pfa}p&?LOO4$(y4lPJjqTC7`SSnQ%H~@tka$F1C21m-m@>!ff9QXh} z3NbE-1F>X}XXeeDnfLki{sCYMD-LoDU6EK?Z9SO%x3Nd4+5Wy z0mJBy(kj_wu&T8#gMAS8qzemq4fqYLf_lA+WIsl3Z0W&Gcuo!qII zq0-4VYiu_e9Qhi%J;~Rr( zlO7CSTWc8|1U!xSfmqa4ppXLG^csR)vO~&^H%$E}xPon64+$#2eSZkd1T&~msfAf0$zcxjWNi|30Za5N OQOwL`jz!UBd+ZyO|8S%L literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$35.class b/bin/jake2/client/Menu$35.class new file mode 100644 index 0000000000000000000000000000000000000000..59ec92150a0ec93f3e6bba1d48560d62855fbfd2 GIT binary patch literal 572 zcmZWl$xZ@65Pi*z4vd2cA}*-$;K3zv5(p=kgQy7+^q}EtdS*J%I`ky7xO|o;jR!x# zk1|#x@gSXaS69`mS5@!p`{NTp1Dh6d4Ap!7AR4Y8N}*D>CselGY*{cF>eHE#&%@B; z{sY78kyJ80VK8=f`wV6~3WN;<1qU;jWhix}5?9&C6Y(wgLcvh!MpWMCvDE$~Xr@D% zFx0x!&6=%421`5(KTD~6X@@Y6+zq)JxYypj@YBQHzKt>#EmRoFQw$EOC{f?Dm_J>L zms6<%sRkFB@)=m92bv;euy3L)_Qi$NBNwzD2O32Sohv_#5@P6ybQlE=>Uz&2F(-E# z*C9O^oQ_f=ZihTc1T9whlMGuRu}FC!N0&q*-=bfWEYp#_H{@T(X`5bK!we55CFjU@ zenDi5nM6V_|COf9wf5*aqf&iu=#ssxV-(Lbf!4hgzYG9d2a#+DCS(5}^!#e#c O6w`C*V^DO%%>MwVesIkI literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$36.class b/bin/jake2/client/Menu$36.class new file mode 100644 index 0000000000000000000000000000000000000000..399f474643441b48055ddc4ffad2c2ef766a265d GIT binary patch literal 572 zcmZWl$xg#S41I0_p&?LOpzMeP2MQ9AsKkZkz$R6+Z~*m+Cg})!ff9QXh} z3gIb;1089`WBd8pexG0O9{{$n?4UrHx)oiy<%f}yI`dmn=d1N?2R310Fw+Y~6a^ye z5{7q`R@pwmTC24Q_F>$SE-Vy13}Kj1YAP+y@?Id5OA$npP-(_o-WG{6{%_FEZd6LB zHV2#4w|5ARe3D_FaryKbV;+Pb34QIK2e&fJc4}=GWlTD#5Xu7#9;Q&@zDJ38JeAJ} zN_UjLKFM`Rpx6vFKuB;e;yelEi83P>jUJl@#S0zlFp5)VXvyp*?s!-*dyX-4dS!48 z)`Q?Rw3f+XB+^v!V#PnnumTo~l?MuZStRxy{?*x%iLAe3`E?D<(y%!>%D(pl zVmrnjVH_oX4Z$AUKIO(6CjJxL!M5)E1l8ZZKLloiX;it?!VHrXFpD|1HVZnBMgCPd NX67=-;^>k+@(sAzaPt5F literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$37.class b/bin/jake2/client/Menu$37.class new file mode 100644 index 0000000000000000000000000000000000000000..2110f2c6df1666668640cfac1a5e31af14e4b8d8 GIT binary patch literal 572 zcmZWlxlRKy5Pi-rELj!;frJ}TPy~>OloTmA3Ia%o00k&5@;X-HWbsOSa0xz&3PiyN z@KK0yKoqPcdpt95-pstuulElCHLN_`_D@*YMo%1~%2Ezi>%Uq)Bl40y926O*GYlSPQJ}tu5x+Z? z4+lzjlAAv(hEBtmdu_L#2jB6 z+zIKy;GJkKqh`S4SkhwoKgqBL5{r}va&$=~@*Vos$ubk!e8t$yFzwRo8kqG6o08+? zdp{tu6XY>WqCl@9*dsfn+*e}X62*7J~{{M+}3z)Vm=nMy6p5lIg7SRiYYpo>_h PUy)*FE^{o3uGnMW$~18q literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$38.class b/bin/jake2/client/Menu$38.class new file mode 100644 index 0000000000000000000000000000000000000000..59c7384910e63d30de5cfa16b14a15d47ac2c6ff GIT binary patch literal 572 zcmZWl$xg#C5Pfa}p&?KxwCsojhXN9n+Dj#t0|g{Rfdi;lJ|DO7PZiXG{!b0A|2u2wSEv4modgIIJiu-|ND7Hc>Z}UhQ|2JqS zJry&QTiIsy#twrc@1;l+Dlb(CbIYp%*WK!c-Ea_b}pj zr}E)I>5kIf<5UX<7Mg)FgbeOwm_|Y#D>HK5=&@~3w9t_jK^POmnM`_N$HS7@bAp)T zYlAx>Js7+bt!2~1ynEFrf1lxKZ5|n@Y{t%c6N+?sQg*hV0VIB))Z4z`5 R%k(Q!%*>JyUaX$b6 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$39.class b/bin/jake2/client/Menu$39.class new file mode 100644 index 0000000000000000000000000000000000000000..697785c9cb28b992e7804a927e6a3133177796d4 GIT binary patch literal 572 zcmZWl$xg#C5Pfa}p&?KxwCsojhXN9n+Ec}Hpn!xZZ~*m+9M@{y21m-m@*4;~gcFDZ zAHYW;#szU8mhAD&ym>S8KEK{S0MxMRAjdG<=L1=*ia<%7RL`VN*Xs=jHp5ajb0c^V z_*@JaMt7A~$v%Ts*=RG^&9Ea~Sjc-A!6-warL;UxZ+sbDaX*j@#a2k=Z5}D({|4=( zr(%Y3E8DEz*kN$wy%cFe<)sQ?Zh1A}x?8>Q`%)x38*LZUm~l{Kn9eYGm_>p59!C7` zR6ZOi-BG%GoNB?qLNic?kioqS(@4l;Wk${$J+=*s7CO=*2xDS6lSwb^cvv!fP7rf^ zZEz=~2ZMK_wTzkpk7G%T<^LqZ8b~Zs9>~!pk;r%GS0~F%Wb+kcFT=D;uWMk|BWy~J zlkfe2$WD;QFo^=ahG38EkaFt{Q~wE`U|Y{ag7RgeFN<3ab*Ai literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$4.class b/bin/jake2/client/Menu$4.class new file mode 100644 index 0000000000000000000000000000000000000000..caed7280ec3e2f59607de6863b1db82532e4fa47 GIT binary patch literal 466 zcmZut%T59@6g{1(jEtiQ_+aV6g}RUg-D%tqO-#UzhAk;Wm11di9tOX_=-;@~xbOq~ zDB~>R9g1t&sK;7KlhxbO-WKDhS zP?&x9G^LP zHc%{f2MmE6%Q(-d^D-&{$_(W{i4m&q!-~`0ZRa{uH(K1wqnGI~8Av!fiCQU8URHoPfO-3sMJTjVyctEc`LgqX>FPMLx zghRSRm*zcyQ*eQJG)*F0B*w7x-Jmhy0Dnd4cl{%L@99T9pVj+Vp(+onSR>@L3t*ir Jq|QzZoiA|0SSkPj literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$40.class b/bin/jake2/client/Menu$40.class new file mode 100644 index 0000000000000000000000000000000000000000..9d29022be35ed6414c346967fd90601b5d9d3e01 GIT binary patch literal 572 zcmZWl$xg#C5Pfa}X+xm2K-m!o4iqF>6>cmCHVIMS0O}Pvu2tNoj+BMvXApb>ClCid zfR93q3*ta5+2fgc^JeCKe!YJHXkf`fj$yLPd$Lgzfs#6@ok^XpY}Fmu4D;DcU+^IC zx#%$r?dBO#BK8M$Ee*f1zs=tzqojEUh)CO2W*!@SvZl$hgd zgF7KT7`zj$WpohmIF__n;ZHIwgTx}`fgD{DiF}8Cn`D`Zti2-tGDy4hx&~%F!lvX1 z`Q8tR>?nB*V<^&V2zJR1DA(UG{-59pw)H$9sQmW*Autn6p+cn=rimnn8O)NkNzgeg Q(63A}GnY9QMHlV-H{C>Wc>n+a literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$41.class b/bin/jake2/client/Menu$41.class new file mode 100644 index 0000000000000000000000000000000000000000..c5b7d26c57f717b8c95c2c0299916d26efcfd131 GIT binary patch literal 572 zcmZWlxlRKy5Pi-rY_cqb1PC{xpdcU-CD3scToNKc0ZNO!juo72ywV;Vzl5Nm0#Wb* zd=z3F5Cv<=9?#61H#6_^>-_^j14|Ba43k~nlZ~1Pl+;P>OzL!HtM0&Nn9pYVf(L=m zMUP>4M`@MpF<7hB7K42dwxtUT1rI|QW+*n5mgi~Tm(dmX1IbWshE(3-kuv^o&`xet z%us1&n{Cy%860^pMVe6g)GA?ac`e|&Q@ilHQY72emWvW59F!SK83qrNC{o|Uh~J&c zhkd2nN_UP^Ef`p62FegJxR+rX33;r{$OWUvhC$InM_L47Obll-xe41I=FOg?#2jB6 z+zIKy;GJkKql19Qv82Tcf0AJtBo-+T?G^c#LE5F)H8ATDHYG>M z_kKWRN6BLtLy=xXuuFD8x&DUn{{&C4t>*zj<+tw-ftg?m6)LqbO(Z$YV3w>+g3e)q Qer1Z8xy-RBx@hOW0q&o1p8x;= literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$42.class b/bin/jake2/client/Menu$42.class new file mode 100644 index 0000000000000000000000000000000000000000..1addbcd5218df2d20e6b0a7781f91a43e672f075 GIT binary patch literal 572 zcmZWl$xZ@65Pi*z42+`)D(=RE2hl_l|-4>LO55C-p0-)6HhXfz7az%?tz&0-uXM zL;gT%l^iixTeUWWeG+!03kyXL6UZ}^T1w07bl}VAj{AXRsI)>VZ}UhQ|2JqS4=QG; zwzAEdjeQ13K1-1%R6f5&m`7d@xbD_({GJraey#1Ij9CX2hH{3%!yHP~_cY>9m-6LU z>5kIf^Hd847Mg)FgbeO&m_|aLD>HJ@=&@^1w9uIrK^POml}sMOj)xVq=M*u=_Xc-C zdN6nwTFdAp;BhQzvErX(*Z_$|$^$vNBog@!{r1Q*6WJc3@H$Gn^tuLS4PjGql6-Fr zB0EJM!!%0t8iGTzBg&mO%={;Khi!d~2&%t*#{_1Ac~q&?!UB=xu!tqHHVL|nRr*yZ NX67=-qUf4k_yGYeamWAw literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$43.class b/bin/jake2/client/Menu$43.class new file mode 100644 index 0000000000000000000000000000000000000000..38c32d5c9819728e548012d96b0f000359de4b56 GIT binary patch literal 572 zcmZWlOG^VW5dP9#UAwMUtF3SG;Grs5XnXT{47t32T!8l zj}j+UJh*{mGBe+NGxL3Zy}SabVbwv7VYbf)vQ`y=k~*oLNu91Y>JDs%rEKO#@F4KH z7%+_PDy@=z2CK5sX0V%KN4l_(_b`G{hC)ked7j?*GP>e^AQ_6SkjmRUQpW!c+DT8v z4CPj~S);zg;K+L^(uB%O6~f%|YQS~3dg1q_NOm^bE~YW#pvW+tVel}E0`)zN_}!^| zI8eHyboV&bf`Nr*pbQ~{dl{yYkjKi5oHu%G8x$>cq(uU#k!?2HE@~KaP-mzW7(9%lN`3bees?S% zc9rfZ-95~;U|_Kss6fczp2vA2N7_F6MVq7KKlfX-@ZQtW`YScsMNwFk(4lnX|gs6I)gd- P)hTA?GRLCmyj}hVCM$9p literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$45.class b/bin/jake2/client/Menu$45.class new file mode 100644 index 0000000000000000000000000000000000000000..43b13839672b08255b85bfd143a7630ed7aa236e GIT binary patch literal 572 zcmZWl$xg#C5Pfa}X+xm2K-m!o4iqFRm2zS^ut|sl2T-rbajoJub)+mTpT!Bpfe+v# z5c~*YTo4Ch$sW(ln>RD>?d#fK>@irY)fR(&5VoZY3k45D7-lFom6qpe-x>LLGyHX_E)s~AACLEL*N*M+ZlPFT(!-(IV z%7=ZW+e&wiQ!N-+Xa>p8+a$|OWbFz0$3fbq*EKNf9X2IL z$oGCgWJk$k7(L$FJBK)L>m@&5!Lu&vJlLFKpa4}qCr3Kc4~Fij*m%wU$RO@hv0 RfqrF*nYqldD7t9pzX3R^azg+B literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$46.class b/bin/jake2/client/Menu$46.class new file mode 100644 index 0000000000000000000000000000000000000000..28b61f15c752304bbbb172d8865fa34c3dcd24c6 GIT binary patch literal 572 zcmZWl$xg#C5Pfa}X+xm2K-m!o4iqFRm5K|?flWdbIDmRZj%yXSsUu}!`7BN#4txN= zg5VPnxF1M{ax^-@31L3 zLcaF{B0EYR!x)P68iHN21IqPhjQ=P2fNgya2r9pQe+bM3Q>aj>g=r$mVFt5gZ4z`2 R3-l{f%*Q&Wy`+9i=P{)#k9K&Rn_hh{$0wr})JCizHX>2*L8RoN@zTiRN zbJ1fM-ced5dkofUwZ&i`gl*})t`y03wdJCO2?u3{Qij39B#PAcFyeQo z@?l@;w$h#BR0{?cnt?Ke4DMx^MnWDdGjhS`v0+fO(2*8F7!$*pOm4!qhk3K-C^5&^ z26sYwFnA|g%jh8BaV%-E!k=VV28l(=139`R68R4OHpwy*S$jhMagcWDbq&mVhfT>5 z^1UAr*-`Qs#!#f!5bTm2P_92?{6E15Z0mDCQ2FiqLtrMDLWN2#OcO~CGngf7lb~~0 QpkJ9{W-fCqiZ0suZ(XQzl>h($ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$48.class b/bin/jake2/client/Menu$48.class new file mode 100644 index 0000000000000000000000000000000000000000..1143c4b91922908acc1fa4fa60d6860fd0c01ac4 GIT binary patch literal 572 zcmZWm$xZ@65Pb~|1LG)yh`aINK{SyBIheQ{+!7<|LBrKFO$Qr>o@5r6&+?@4;0O3o z#%drQWRmIXs(SUR>h<@}=NEuF)*Yl6%01Cn^_ujxGI8x%nPjuE?|?I`OlAgB_6q?$on`F>d;k{`4ilNjDsJtaYZT)eO$B#N< zs5B>=HTDk}9QC4P5>xs77Ga)5%@?LyyKVQBj1Q_U7e&lDC@~Z#7(A3wpuT6Jc)n7v zC)#wh>0Ts8GO)l7G(pJV-UUf0)rGbr=dB*Q7DWr48|eoTFkK&K@*B0Hqq`M~Ud0(wfG8xmB;eMba#f_YS^G>ru!NnsI7WH|}Cj8(do OC}!ufUz(z8JogJtKX1VR literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$49.class b/bin/jake2/client/Menu$49.class new file mode 100644 index 0000000000000000000000000000000000000000..2edf95691db6f4522dd71c3c4679a1a9a8520f5f GIT binary patch literal 572 zcmZWl$xg#C5Pfb;Lqnht+Oi`K99SeG0T;w_V3R5e96-GyC$(BbaHK3OpT!Bpfe+xL z5aYJuKrGqgnR)YO=6(NsegW9VvW*f$?Or^{Z9j~Z)R})Nb-ud0XM-~=6f=*Zh@wD* z4-Dl4rB!ysV6CmU8Td)ukq#_WT#TU1P;DtKuky!0CbuGpB!kzAsk|)`W&B}~XFZiN zG+M=GyL6&yjWAEbkA&{}*TKCEv;Fn9gDFhg@EE2F3@&P@Qs2`=JYUGy zW2HMvch7SjGO*YTR3KzeB9iwmkv_r3BVB7VUOUdkqWYuD=(qsqDUzI5&9^P8=k8Bq+^FajOAVDlHi?3SsbWiZM)|! zvptZvl4myi?N4}WmJ6Ptd94c60FL)8aDx1fZ I?J#`40A$cs!2kdN literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$50.class b/bin/jake2/client/Menu$50.class new file mode 100644 index 0000000000000000000000000000000000000000..24eec2e44ba5d3863b316a49af13a8f1276568de GIT binary patch literal 572 zcmZWl$xZ@65Pc0TBjX@~f(!2PfSL%wcyc+oB}CAJhO23Y4mJ!u$t*6PZ(+yd?r<{85lc4=Q9R zHpZJBR1X;}`7GTyqVhtSFpr|*3Ei#Sw0qKx4!2u2a+tM{XUL5)IG970`kn{k=}Nww zD&0}Kdl_q&f%#^jF+v9W){g^MUMe$k+UT)oP_)p6c0E5NhNg@j{EmZ?*)v1T;l07t zNe>36uC)x#JQ0SH7EAw0hINowq&$$IOCphP(QltDGm)J)Oui1&Hodli@ilNtPLc2Y zg2-mbW0*#kUPEw9c1XGVj+y@i8{m9%NKhR0{UtCH6i}qnB<6`Efdwp*C*Bt=*FH6F?0c7E%nQfq0NL*YlOsv3n_XvUOOsz!_F2Geb}Keph%8 z44EUPReZvb-rngj@J7&+HqyvBm_mjj-&R^)CBv=^Z$;Oa48?Xp?`ksa2=|aAo zD&14M-%PZ}zydSS1R;Zc6C|N0o63xwGkR1EiWWN8o*zWSa4F;apyy!K>^Vcs(VfAy zNDl_5rL_zjzK9}8i{<_#!zM^9QXWXrC6UOt=yyPtnaJ)Nvah4GO|NZWd>@>W)8sq9 zAhI*$G0Y-QuOT=lJEGis$J~E{3OIL11m$txUjj410?JgH#v+lVu!Lo@oCICL8vTkC NGjo}frsz7){s3dUa4G-* literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$52.class b/bin/jake2/client/Menu$52.class new file mode 100644 index 0000000000000000000000000000000000000000..5f5edf6f902672b912a7c856825e508a96e50a9a GIT binary patch literal 572 zcmZWl$xg#C5Pfb8X+xk;pzMeP2NsD)K|P=X2bM||1rDHIk&{}jAvjVNme1k@;=l*+ zQHXIt9Ec@*JTq_J%)HO9_YVL*R&A6RW^Tou^t~`rQfJ<|)cJbDx4{{fikbURL{T8Z zJBHDHrB!ywU~O!68TfJBlMXCYT#R6pq1sVeUgYxl<|LqJR7K# zq24JrYxqqDTRzD!&!~KMgD?-mi-hibm%*(Jv*u>k!4#%#)EK4;3@&C+rM@SLcs!HO zM@sjU?zeIsGO*YTR3KztN+hBlG+a$t8YnE?WIz1)S)Mc=`~m(b z;}netY0^$-=FOX#_xbhy0icQ<3kin&NQ`B*;(AKzsB$HByjQPT;0&9ynTabruP59w z!~BubDmr0EmdafQ-t_y@MiOZUbC_qybd;9Y@uVk%JJItbL$2dfc~=C=_`g9O4OPfc z?94W+*BT6#e3EV)QF)<6m6rOe1_qsO5^(L(3i_56?+u4FXy`wlkEo{PjB-Wyz- z^k8t>TFap6i7=G3So%*g?1IE1<$(lU5{Z0^el@bpMD|~idYPtedTj&aEpSRMknj9} z$S#t{u!Ib~hTxd&l=9#W%l`>3zH6Tl(1EhHH712L3`W!F(X(}ym;!#HiccSA-hFsI9^0o++@h3qZ^;O7F zXihh)R*o4g`7GTyqVnY;VID=<6S`Nv?F^(F9hcfRvRJZ^W5`Z1ILISIeJ=v>bR}QT zmF_CttH;`9V7?h>ijcu>`ElUNx-uiDjUEREMGIYO*YiVSxRz1h?>g8pd(IPc_+W4i z(u2WiXf1=9C&EzDV(CB0umci{lm`-YNhIK zi0nLh3=7E6YY0xsjw$!wvG||h9-Ozw1cgc8Ujj41G740h#0rrlu!=RZoCICRCjD|0 NGjo}fr05o({Q;XeaHRkM literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$55.class b/bin/jake2/client/Menu$55.class new file mode 100644 index 0000000000000000000000000000000000000000..60dc027d3f6a2e0ae370488525fbce58e448d76a GIT binary patch literal 572 zcmZWl$xg#C5Pfb8p&?KxPl-Zwew?(G2M1*zLl|bLG__F|MK4n6wTNQHP;Dku-V&*{{%?@ycRFLJ zH3yr8;U0slo|G(dDxX;=%!3GGVLHKObgyK-x6$%2i76LVhRFd2AJeE%-;-24o~h>} zZQ9y&>V=UEEU^O(5HfgINs&rb*LLKx)nnVDXrWUh<0K=7bCusEZ6Awv&oN@oZY-`r zdNBA6V^n$^i!4*LSou#ftb)WM<$)4i5{Z15e!FCujcmSRsQvc+A+Qt7phl$*W{ISPIn0ygBd9bu--#o!ZXE{-FLWC*t5FB>pJz zX4{Bhl9~6udEfWFH}moN`~skX6&pE*%0OJpM%@pT)JeT9b-K2*YlAb?#+4gC91cTW zADJk0&r2Al_mx)30fV)^(P7}tuqPc@$h(-rG()kav^-0PT^U`7ZXg-TtcclFwjFrA>%cLLnT-1z1!BD)+hSctf)-q}aB93K@RnSxE(|{apdLm() zvTcgY+-yE#<{>LPbUKE{U%{zZAncAw6lV!B%zYa)GEC$r6o2dAVDa}KdOp!xsE{g$ TMN}zr`kN&zQ|6Gf8HUyuoBUji literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$57.class b/bin/jake2/client/Menu$57.class new file mode 100644 index 0000000000000000000000000000000000000000..4154eaeb5159c01b67756343c0b8b5ea25f1c635 GIT binary patch literal 522 zcmZWlO;5r=6r6=>wNw#A{6G^A9>jx9Fvb{+7o!OgylA|VQWmV#ZPE`T|4L6951x%b z$~arN5Sw)0d;8|i%)X!B&o2NC?3l<2R36=tY&c%vOO-essnWgU6BC9&b*3|t<3Xyt zZXz&$<|{ur7s&6|?*)vDurDp-v1nrs^8&@TujEbo)RWPj+Y6*XxgC0LaPLOGuBVqq z^5DmmY0v0P9W(_@`69hE;rQBqt4`Fj>jbVEI=4yWt6|eZ39BZ`0;PWpHYz9zEMLoU z+|`s!x&u1qGXz9Sz`707$dgyT_P3}ZhgyN|FO?UBF%>#8c?kP9YWh(H4e4fl<_*<5|^3(*U xj2UI^11qn*$Z;4MKa8JjxH{FG3~Ti@R5_N%dWPS?CZoY!ZDE_4#h&)W?+^G1WAp$3 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$58.class b/bin/jake2/client/Menu$58.class new file mode 100644 index 0000000000000000000000000000000000000000..bad7103aae35d6db11f3ff274f8aee929aaa214a GIT binary patch literal 573 zcmZWlT}uK%6g}5nUEQ`cGy9Gnda!~7LlF9SiGslDq4G7xba$x3uoqOiq^YuOY1W?1KgA}3E7Z0*l^#dh!T)mV!*{(Mn*o3v|%D@*v&=&p! zA##Ih9z z$v~bb+9yzG#+jlcxHn-k^yRrS1Luqy`v%49oM}G@Bc;2SGVX;P4{K)2!u4aULLJ>3 z=miTx@Gi8L!_z=Sk>t&Cf0|(ntQJcTr1-K*96RhCuqBh(eMR22E^9sZG>R5FRY4dfQVn_{y^Z<~R`i}T7Z0h7 zRC1%C9g>8>=_n=QcF2=N&~D{F)vy85i^K;CbV(=jE&A<~WjeC+g3|LiZPROOSn&fU zB`3*uen4cW$YYpBgjy2U}9o0UWg_{@Pgq=mSupEbvD_Dk>4~w`nj?PUOgz8FTCg$Tr zd4rgcyOc`CSA^_wy-zS&!AMxhB5z|2IYOZ$mAFeDha$XphrS?`I)UfZmMAW)lN^@1ey#EsPU@)~lgC$RZz<@rIx6S^Xv1|x#qR!W2|-;E*>;Semt z-v?xP^Lsfr`F6&Ubmim&>+fmX;?vSF;{^scH#oN!AdZ`yu|*X4)B+bAQ_0#Vw%@pr oVKP#E7_TY0x}3Qn>**C#nU=+Fir>RNM}t2GIN)t@PkZ9^2MY&YZU6uP literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$60.class b/bin/jake2/client/Menu$60.class new file mode 100644 index 0000000000000000000000000000000000000000..0169d87c57f4a167ef155bf0be0ebc68a8b5db87 GIT binary patch literal 579 zcmZWmO-}+b5PgM(g>@B0zz@`T@PL|#(S!@?g-AjI5~Ff8Woe+gb_v@x`m;P~Jop2= z8~ruLDH0FTq@B*po7b7w_wUy?00-Ex5o5^R@LO?E_IxRnF1Lh=wkrEJEQaEA=Fa23 z-{sydL-I%}sZSW^&+i9c8of(0u7X<**6Tj6MK}(I&0Px9N6BmYK-TGg43Ev_q$3 zV2KY{l$;^o{RNSoC68ea89EKYG1)QY?hEGs6MVu-e2obTlXrg!Ob2-ss5FixB8g!c XD`YLwbroxL%TmnrWmcS`>sIOq@yvB% literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$61.class b/bin/jake2/client/Menu$61.class new file mode 100644 index 0000000000000000000000000000000000000000..b0bbb30638836828f0c7ce25013f48e2a5916cd5 GIT binary patch literal 571 zcmZWlO)mpc6g{sqH9Ce;S|3F$ER@8gmDm)UhD6fpqSCF*OmFHjeIxTB{+1Q7@B{n` z;eUwxN-Xpx@7=F+&%5`$eZ9N_XkgPqPGITAyQPL3gpyS1c1UI0hjk04Ky|V*3cN7% zz2H`0>PRY?o(LE_wZ4GaiUwrEK*2#CQv$`dRCJMze2OnUKO})tJL2}f7fT)gCe8F( zCIXfABq83b@TVBIz*@2JK#nhK#IeQR0b8LnyHA*Y9G7i=Z4Jx6!{p)& z$IcIk?JP&U6^i_7f@8L0%DrdI|0no>ng1LURDS>cAANr|r^8f$< literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$63.class b/bin/jake2/client/Menu$63.class new file mode 100644 index 0000000000000000000000000000000000000000..6762cf111359ab0635bb359c7162b865e68f41fc GIT binary patch literal 572 zcmZWl%T5A85UgPr7uHoC0zOdV!2@U_2_#%lFGLa&kb{P+S(XV5EVE`G#NYCy@!$ve zLq-qA9v~iMl9`_FuCA%6kDs@90970th%w|Q_LNsEjw`qfD_t(5(|XN-&QM(M%pBWw z2evb1*tir@gx3sOsoZDKo8FL{(2%qc#|A^HBP73#W&`fu+XI&~WIG;>_ibOOd{xxL zu?QFno%P4+wFZO1pSTl+G@dUJW^PwpTaGHd!Gt?uque)Fc6Q@YgBsCuL)egUWQa`ONH literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$64.class b/bin/jake2/client/Menu$64.class new file mode 100644 index 0000000000000000000000000000000000000000..31cf11690fb44d60c31b1deb50aece26e6489e24 GIT binary patch literal 571 zcmZWl%T59@6g`E3fpL_FfDhETZ~>Y~f`kp~hDbsJve2+K!`MJ!XvsW`zvW8f!VmDH zjJH5sNR#%y&ON>NeE)oY0jT4|M2w*@b!NO?b3MUjSnG2coi!UK42JS%W$rqjH*(w= zL-JZk5#BPyE7c)`(N@pgLL6xu2_zXZJt6shG#_#Q(HVK1A>UKfK6HGc<8{&qCn8`d z^)^3iHd+iOf8}lzQhTvNm=~w!IdWVZjHcWTTh*b39Cl6Q8FCv8HVViv?DUkH1q)xu zaVL^415>R@6fJWnT~7tX(C6VqJ=-Yj9kYW)D3lDIG_*@{ zFxXuwx!?AjAmFrD`cE;Og0v#xff!xVh+>nxE3!;y&fk%GTb3<)Ee%V?U{G<3VtWN5 zyG;>og$%u#;D+py^5O&8{{#k%WMWBBTK~Hu&=V9Y~g3*nS4UvQdWT9beI%CDk(3*J|f6JA|g&*KY z8E=ueaGJFDb?)iC=j;396F?g~HZlw=k9;E9EkBS##jSx*$==Da4U3_ku1tL%1RnP% z47oF@WPHJpZ8S#=R!83n2U!$cEFi~F>PscAlBp-c8}0>yq1xBfKH{M?@jPk84>Dq? z_0yl79G^1S;zjsLOzo=;!aVaB0V>;MP8M1 MW-fEGl-;)SKi@}h)Bpeg literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$66.class b/bin/jake2/client/Menu$66.class new file mode 100644 index 0000000000000000000000000000000000000000..2f0b1f2ad289665d0e220a6c9784ed8b8b293838 GIT binary patch literal 569 zcmZWlO-}+b5PgM}g>{t=0TI-A@Bo^)2_{@nFGLa&kb{P+S=I&$OKbMS__sW1Jop3r zQN}3{57MNa&di%PGw=K7^9w)|$0iaC#hE+jO~>;Emyt8zGCpm!Oc)Hc&CJ4ceShqF zbB5HFkRrNaNY)!82BV{%xP>G#Hnxyr$o7TgckyD(g9mr)bB01+QTfOXg!b1#Bbthk zq1@kW)@rpGO#aHfIHK}WoiH!1MeWAOLLPf23Jm!T1{+0W8SHMrd0(k{ zHX4?4aZhMcy_{ON@gkWwT&kf2Knk#ExPk}T7avv;K5mT8M#OT$tX7?j*5-(G>p z?vTf@i!8mG;F|1`^85q2{{&SSsoIjDyzaXq&=ZtUrqU$#i6nsv4#*m$W)+9@D^N_& LrB9NgM@IS=AboD~ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$67.class b/bin/jake2/client/Menu$67.class new file mode 100644 index 0000000000000000000000000000000000000000..0614ef0dc7729df9ca766871aa8dd2c7cc399bd5 GIT binary patch literal 570 zcmZWl$w~u35Pg-588eP%QR6Ox3sJ#<_AjZq}G)>-8rq>un23Dm7y zA$O*VA)4HN(DikVW3b6mo<@M`?ML4m}y&3NMg^awp{Wo`{r*f0I@+P%)v> znf&au-XPfWMfz#N?Tb~$Jd0W&^nLBxdysz8*zY+gVctfWP?}(Hv48?$wi$(SJP;~s zrP?P@Xl9w;$SX`Xp*d2q| z&T>SULxEpIaL#r_dH9ave}Y|DxxEoV<@et)ftg?t6>iO9iAge8#tK`D{t=0Y6aV!2@U_2^u6py%0$-AO{Usvy=u3OV_ZwMt_zkjR${# zKgu{o;z63U)0uhmX6Ai;e|!R{VBbW9Av<;^qEhCr6e=ipgbELWi$pb?Cu z&ya5~H>=j_45oM%JPfEjS0v1nQ+6FSEO+~3!Gn6KXCaLZ6B&l|5`&E_k_`5Z_u>bV zPnx0P49wG`EKxC7cV0N-qAB&T39ZD5M$szQio2dK)vzOikvFhW&>N<@kAd`*|Dd5Q z5`$W`loGRs>-fH)trCBF;Q*u*$qq#5l0xL0^gAWXbmZs_@z;6UqSw-}*cl8;u99#6 zg2=9s$FPnhy_(>X?40uW9jX5WRT#1JIYEBW_m@CVkVBqIqu3;p2)3|I)*v-^uuH!T O#q?bIL@Byw#D4&f{cnQ+ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$69.class b/bin/jake2/client/Menu$69.class new file mode 100644 index 0000000000000000000000000000000000000000..57ae1de0250fd54a09969f4471c8ecc5931bbc20 GIT binary patch literal 578 zcmZWl%Sr<=6g_FjPCJhFVXbd*;i6Trpdgg`K#K*T+J(}s%#6XNohCAq5%I5FDK7i~ zKT5o*#f1$d_jT^cz31!u;}gI>Hf^LB$^&o6_v=9@xYYG4E|cxUh7F5hZMrfFyfE~= zV91a;5>n_BhIF;oW3XE4o;ye*=VAsKhI~gzew~bb9^HC=$QeoY*ne>Ro@p1Kq6k92Bu&qr_00VsKGLo*G+8tkp=o z@RpJ~QeoUqWWd0bnQ4lX!MRaM6!5k%Q|F8%dj>^2UC1C*v5*f}T=&(zi#4-qq5G(X zlJT8^UXm&d?xmDGYK2}Lb6PL=Cmgmwl9B#EiY`e-u}$6qS!OajZ^*um%MQJcfn`o% zQE`@H_ZLKVjv|J6W*NSE8Jm%bYZ2H>~Ur)Z=q@ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$7.class b/bin/jake2/client/Menu$7.class new file mode 100644 index 0000000000000000000000000000000000000000..1e231e14a34262cba4a021eecc0493e11191c43e GIT binary patch literal 459 zcmZutJx>Bb5Pi$7oE)bJh*DZusD&h0SZHjBCPuK)(30gCW%1aH_hIm7S!s;H-XCS0 z1!9c4$?WW#_vT~g9GM z2E9}uf2@s8PXwHu-L8OaMFaBSpx|Q(d4W<}8@kNKeTuJDKO})lI|@|TRk5~s5tQjr zCjzzhKO-CoxHO?4OS$qIDlWDkJN+W zxlTMJl7td$fxpDN0dj2o6~->V4%iDD*?Y$F(~S1`_N+|4 zK{8on?9WB)R~QMbeivxYFpFPM`kg<8Bj11I%SFC}bzqrRWS~TLu1Jv&&-?WndiU%e*Xcmi%&5sgxP!bz`O0tXtut6&bD0J--!_smPRv= znKEXevIj!#P+RSf3DxzDJ|XJ3Yfex_J;fMmgho$W{!%^;IKNT@!-QtfNqJx8I{0tF z$lvLL(CUpow!d>gi1~@L(o6Z=x?p~&wo&%BeKEM_%pYv@6HH?!Mw2i-!jNJX4Z=dl zS)V&oeC2}u3E!yF_~Nv*8G&5rYlN4OT)HyP_*93^>p_<7fRedB+swE^+uL*YckVjH zQW$sY;=9+*7T*H2E6NbkuC<(Zj4BG25$o^bVHF~q`~gsrEpmw;%WY3Ag~;Ylj6V<4 ziJVD*)w+lzIU#=f3KBah9^nHTat4AUu|vwOUzqxz;0#f%Hza7iz57ZKI+#OCN~@R` bk_tXzL2M+_E@D}3O^JoR!m3JiB^rMLyjOJq literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$71.class b/bin/jake2/client/Menu$71.class new file mode 100644 index 0000000000000000000000000000000000000000..de4f0a37ebe443740e7ac8322c3216ae014603d2 GIT binary patch literal 568 zcmZWl%TB^T6g`(#3bo2Z#RqC!xByLTzy%8*8={E`$O2_+N}0ewnHt&}f6JA|g&*KY z8SkKRA(PD9*STlzJ)d9i9{}puw~!*NkG+YgyM7>riruzQ$zh{r!6cLyD^uSKg1+ZZ z2xqmnIAOthP5C# zH%f_FGw`BF@KV`7xo`j$id6?vd|4olE%r{?lFl5xBJ(mY+x*%ZmhQsj;xfn14~Xpw zM}$@6_|*g#Z0D56Z^-{AxQChU%?V1s|Nao@2{usTRs)+%lEN0Y*_tfo4tCiqa!${s KkHOhJGxH6+Q*TxP literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$72.class b/bin/jake2/client/Menu$72.class new file mode 100644 index 0000000000000000000000000000000000000000..9393ec7a42f2a587af09e525b7ed12b3e86f9bcb GIT binary patch literal 488 zcmZut%Q6E&6g{08GctxeM1+-v1r|~@78aCEP^BtiL1mljOqw*4ZstLDia)ZVEPQ~E zQf?=q6uPSW+;bo2-rMgVuWtYXEW5}tR4)0I2^HDPrb0($prE|{UA1Ni`M#PguBv=8hOCJa1=+c_R zU9z?anel8qWBO?n_UQFYnsX1Ef-}VZaT4JyG3xd$5R5orzo78D{sETr_@myQ)LW=f VRSpZN658}Xi&!GdBV{uTolh5KU7i2{ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$73.class b/bin/jake2/client/Menu$73.class new file mode 100644 index 0000000000000000000000000000000000000000..6a679b3719914f59603bbe68d4deece0135b779e GIT binary patch literal 526 zcmZWlOHaZ;5dIcwE47Ls-~&xOcmNMJfrBv^FGLd}=mEo(l(ND~-I_j(oQ?lSPZ|&Y z0DqKmw%~!-q&qt^-(z;Ze?Gqe)UanD#Zb6&CcI|5p5QXFJ6y&G$8`f5LusKi;nUk# zy8VbjKNV6$XAJ2|wa1_}{UJAzM#jPtbcSqONPZRH4|s6n3_Q+|Z~Ly}^_)Pcd|uR| zu?Wegz2GySpuu49C+@}((TkNoYgi^1&rap3X`p$5z-z>%^b(z$d!KO~C|kH-GcLRr0PO+os9g0~D- zOG+LzJtqu#h<%Va?G;GTPkW%;pj(|HQ&xMLO(>=!*9O!BB389uHg| zNzJEDGwI8iq1yg$h9d?`jD(jaBwa+=LW!X`lj)wf94zUEIX!qQ;tve=Wtc{uIFq_< zUiEwc6rnfC0yBKI;5+w|HxE&B+Qg7d_kNfO}#F^0t-fyS5v<{Jus>z`m` epMTYx(|Q9Hs>)y)RYDUhSj9S7HYw|2=zIgaPG5BZ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$75.class b/bin/jake2/client/Menu$75.class new file mode 100644 index 0000000000000000000000000000000000000000..42e05e379ad210d4e4446b6cb71bdac457ada095 GIT binary patch literal 538 zcmY*V%TB^T6g>l#O0Dt`@PV&|3veL`#u$TfgPJsg8%(#PlmSNSH0i_0&lo>JR~i?7 zfFEVNQ`yjD=DyB3_jG=KzrF!9v9BY=PR?6i1TDqPel5&?v6Mv|q%1~HPR%jEu>K{#&_iZuc zet$%zB_$8qo)d;V!~tj{y)lrYLvKR0PT2`XraDI-Sbk5&2Hl2&WnQ4saD{5~A4GAL zDuy-W=vD&f6cfqnC-QI9ND-O1ija9t$d&odf3n(MMup~SY$W(iY*Ey(jUDV!X3$J| GqVEr$HD?L{ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$76.class b/bin/jake2/client/Menu$76.class new file mode 100644 index 0000000000000000000000000000000000000000..49934b61595f322be6884d27c0aa8c80e10f83a2 GIT binary patch literal 488 zcmZutO)o=16g|`Tbo6=jLseN>SYY8Lm9QW-MIvc!NVm=Oy`fXD^WuHb-y!@ED`MdX z_)+3cTOycb=G=2X&b@cuKVIJeG_cB%W2g?qwQP8PsH9H4w$$1B-Y$pDP@hC@{Af6g zv^O#+bkI#1@&`(*^pL^Y*z7Ra%_xu#EEHVKAkR>2DJ{>kVNb>vq8CbrN-Oe3*b%WZ zeCo8*zDgKst^a1&XW()q{VXNv5-J>JhVq|G7mKE2sTs>arAgOpa1@I>2IoA=Vqcyp z)4yQ++XHbcXu4zVhf$*RRa>V0C~#3X5(_4!`=xWq;GSwN<7Oz5L?&1RtxF#VK3pBL+2Czvt6bD literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$77.class b/bin/jake2/client/Menu$77.class new file mode 100644 index 0000000000000000000000000000000000000000..d59e4673b9466050528411f40e2c7d22c6935758 GIT binary patch literal 522 zcmZWl%}&BV5dIb_l~P3z@CQvicmNNQ;DH#77orIfykNMJQWjXL+oatZc@g7d=t<+j z2k@bcvjq>tCf(VY`F>{S`{(luKplrB5)6fVXU6L_*ArZ-T9?b{xY00SFqBq0Gd>?j z(j6#<)P;~jT{0vq)josK@<-f45@{Q2NHJtPLh{?_VaS6!XXtT;e8+bkukQpx=gXp@ zrXnPp&Wg`+f+mB>pST+-q8BUeDxn^on&-$#t)~JZCrt}EY@5h4F zR5-Zda~hZ4z`)uJR?m+DmtPA#Tv}V6YIz#{O1hpOl6;q|sXww&)-T%BkinnWn89vK z$%B^Xgdq=c1QMs60txzQ2b7z1JEO>S<>VdfZ*kkA)6y{W83r{ol-mms#SO~H4Ou$1 zz&XWOviyOqS1Kfkj94G$OH3{;Jr`u{UPOs#N$kY}h-|~Sg7_wcD%KO}Rl>Zyl z!?6=E6uQgJYV`(#As&Psg;bs|5$2v(TrNkI>%m0WVWZqPk->(6EJJ3A!9osc2CKz` z$4fpF?MT`T%u}N*Q8Ab|UgX=N?WkdsN{JJNqE%YbcD=xnqn-%I-q1o(ZJ1J=cM8`b zC8$qFO5rzM9t46`O8$w31CUIlIS`{u@{n)P@02W4k)vlMp5|$jUQ@x059pL!CEr?r z$fn3+SVNj#MQ~1bPI>%-_5TE)(2cJ-LE*RWfM}bN;Y!XQfTi7P6laxEyrC*j} MYA$s&itg!&AE|Y3_W%F@ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$79.class b/bin/jake2/client/Menu$79.class new file mode 100644 index 0000000000000000000000000000000000000000..8c2b34636cae6d110e76e5a8796b4f0aa43ed1f6 GIT binary patch literal 568 zcmZWl%TB^T6g>l#LM#{%-q+xXYM`k->+`~YS=dsW5`eVRMe`DD}@THJ)xq*dc%alP+G2d4tL!F zccu)9GpS^F!4NN3`V2r;E52U5qsNh2J~ z8AGwV{8_!xWH7~}aH5df3uVGQ@T$wzsCqM)2q$b-`WCX-Fp*=(E-~21Bg3%P6GIt! zSKJfrNI4A5*TXE4F<7^L6gZ+S^|&dm#fe7IGMCD6{h3swo(RYO&_+q`nAV*48rLB$ z80?NxB51jMHWRc|>Q62lfP^B|ff!v9h+>nxQ?g8Fj-HWxnwKqlEe$h2U{G8W*yJsYS07N5j>i_@% literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$8.class b/bin/jake2/client/Menu$8.class new file mode 100644 index 0000000000000000000000000000000000000000..028e6b2c549cdcb928111d89f202d1ebe0bb2aab GIT binary patch literal 462 zcmZutO-}+b5PfCquB@vFh;sDcK|M%<7ZZ&aqKOIULBo}lrAl>ab+@bNzw)H<;1BRe z8K*#uQJYMsZ{B>o&d2B5JAfwY0SXM&YjGo+jW|(K+eSy~d}A*FXQ)q!yV#6IMmNUJ z3q9yr2LC{5We*v=&8;p2Z<&D%;h`8|4n9Mvt+YJNM}3)Ih<+j&Ds2;sq$^V8@GQvf zP-P6Y_CFH#83H+$ac-&eGAaSe4COzG5vp$BlGEKgyS2*btar%}o|`<4<*{j(KLztA|Vp?-Jm(a0Dnd4cl{$g|LI3PpVfOd3&@WFhHJ3UX IMGtlJ7jA=X8vp2Y-M+ z$~X(egKV-pJ2P+I%)IZP&o2NC9P3Ci6efHs8Z|HQg^X)GA(PW)U5Ca{UeC-t9s~pK zO&Ky*zVzc8hIFOcXVBW=P?$&~YheQ!2HW+exKCyS5k2uiAQ&7sr1CzGeC4l#T0HjW z3?+BHS+m|^(8a6pl9qhc^0!zA)V$5+EUMXTIOF9_$p9Q8yz4u=-XYQvo3d{($FDM5X@ zQi`Y@@cCTOO4&cLZ~~HvGzU_2Ngncb`dyM`DsuJ?<86^P=`|J1u%S_MlYDClBAX+R zVGB0Bir|{;g7W+W+y4pj&E}>P&81G7 IqDPwX3xZBmJz%(+rEH*3wh3*Cf6J4`gFnC@ zWt;`#!EUlUJ2P+I%)IZP&o2NCoa#t08CP23@=gCkm;&P$SHW+a8w_`)M>2PS~msO=NMXBgc@9F<8hW!(a{gN<8p| z=tRCBoFyI{jSL}6}fna@wQHz^qLB0l%P>^k9=zbBAX_U zVILWK6~QgpHRa_84*nBVpc&OQL2=u6L!c%oph%@j91%$Z$2cLYk(4D==$E6InoFG| IMXQ?e3#C?VcK`qY literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$83.class b/bin/jake2/client/Menu$83.class new file mode 100644 index 0000000000000000000000000000000000000000..d8a43105638f693565c1ac5276ec996b2faa6167 GIT binary patch literal 565 zcmZWl%T5A85Uhrkg=G;z!3SzQXar3pkqZgxg@`dhJ!rU^VVUUYGMntf_*sO z{rS(@tq#GKuhL6mZm-lC^CFtQ&=1X<;gj^@PGjJpgk>9LLTQe{#R`gqd^eOM6-T{9 zdjty1By&sz=Qc<}Pxh3VHD`o4GAQ2UTzh^HDgAIIT!^u}H@Hg{g5X|i zEyJ!aqDb;axj(J216GM82U2`l9gc1GT5QQ=4&IS{o0J`X9Rthm!Qx_`V|NN-Ti}SW zh$6p+;FRrz^6&#o{|WYCW$P1y>g?YsftjF!Dz~Pw$|NbQVV$kTN^W42y)x&_T;`-X IyJcm60Vp?ZUH||9 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$84.class b/bin/jake2/client/Menu$84.class new file mode 100644 index 0000000000000000000000000000000000000000..cc3baea3f0021a89bdfe4e76c49f6e3d042761b1 GIT binary patch literal 482 zcmZut%T59@6g_1s1H&MKi0I0N3w0q0x-ikW!AFRL8x31hhN{JxPMnAGTdp)N`~W}7 zcnicBwMl#Kx%Zy?=*Q>VJAgLUZR8m0V{tFrEk96Fr>&mU+2+B%4bISEhPNbiuRC)s%hkBn4SlJ`4GTGJo5(Zd{wdffAj@Fi@tNpr z$$K#;zw`(O)?%=_UgSICR%&-?4LH^M_iSfJGqiE2k_HjTri+b7D<4-br@}%+L z5Aa7BX8}1#lkV)yym|ZPegAxZ0jOZ#K#UO4Cy5X8(Ab7Qmue@ zulYzc7UEf;Sx7&m-AnFv}fu`mq>AiKzWAVxpgM7cq?Q;JMgj^1IuP1_comV%kj(5bmfxjh3> zT%(L(9Z5PB!8ye#% Lm-;lS?&;<)3Yu~w literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$87.class b/bin/jake2/client/Menu$87.class new file mode 100644 index 0000000000000000000000000000000000000000..bac178ba837dfc8d7b0b191d1263942ab0226c91 GIT binary patch literal 490 zcmZutyG{Z@6g|VPF088vBBGUrg<430g(eyse8dE7G_+*c9c6HLChkM|Eh~+MA7Ewl ze~fp45Ti~qbMCpXIrqMOy}SZwV9h~}p)%mNqEYulDO6f-3zco`?>Vp;YU9YAucJt- z`p_U(K{sWXJ(NnOM-0~HR)@iE>Oi=#Q1CE=S%zXuDshoTJrQ5=UMLvKE$#EL!((aq z#A&B}nJ`pa|7kd2aKupfSxT)JQFc&bDE-Owuw;HLwKNaTcqF=JgyWb$Fu0dGi+yn_ zjevsj?+o}oCwV8z4|O8dO}M2z*MGpufBvYqC-oL8 WRF%Urs)ROeXa%cexzyQ+q4NzK9A3cy literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$88.class b/bin/jake2/client/Menu$88.class new file mode 100644 index 0000000000000000000000000000000000000000..af3515c06374f10d63ceb15dd3ac6de886f76318 GIT binary patch literal 528 zcmZWlOHaZ;5dIb_g<9ny-~&xOcmNMJ!3zfCg{UEd7YtXjlm#kfoAhDiU+GEX!5`q+ z_;ZZ2g_szdbZ2Mgd(6(q_uD&wIu3Ls7>f6NChC^$Izon4SIFq7(a@nWl>c;QVlj@S zJqQ_6=ZWO*4~2inhpu2KbUd58eeOFdUlp}* z>I7ud`Qx*ipvj<%M`1@H(M#2KjZhEVa=DyXz0h~$q-h|JEgc1h{67T~MPwOr9gmN$ z`CJT??2TB^%=8cj)@CqzUgX>2%25+$6yQX8(EOLucD;Z+x+0uW|*(Plv{w+@$5B>mu zlyMf2gEZ;R&di&)Z{GLM=NEt)j&&p$3L`!iHQV()A!EBMdGWW;*qOfgpgu!Y{ zDZ-Y|qe#$d#>zCDfb1ggfdu_z6XiPHE-5lqIeSO?ZQeHNG!@K9L8Im-<<pB zZDi=a HJ<`&@e?4$y literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$9.class b/bin/jake2/client/Menu$9.class new file mode 100644 index 0000000000000000000000000000000000000000..86de5e75f123989f7aa8b4200c53056892acab43 GIT binary patch literal 460 zcmZutJx>Bb5Pi#?cXFO0AWCUrp%#*0Wi&QK6BDq}(30hDl*MB=-iP6L82uqu8Vi4b zKgu{O#29sx+1WR5-puU0f4sf{Xrt+)Bv2pA8)~|M;L3Iw FKA)!xRk{EG literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$90.class b/bin/jake2/client/Menu$90.class new file mode 100644 index 0000000000000000000000000000000000000000..0088fea5711d949a3d19a4816747c4be200db27c GIT binary patch literal 490 zcmZut%TB^T6g@*LwY7>MBD!+nLez+;w5NR~i?7fFEVN z1B4iLl9_YQea*S|^XvTsfQKy$Ifn9(KMJqz2U4iC-V!R?IXSXmGE}FLCqD|qNY%$0 zx$1XQhWwdSGCgN7c5595vk~=$0|T~;1>_kDO{v6f7WPDZ$9sWbC^aLW2OS@uDT5`(!p~A_y^4~BB17>{ri(TGW3kOg;+lt|t4Fwq`7?vlj)ro4I(w#TDXK-(n5^*EoNg@(#g9fJ60Xe!fC~=Fd zV?w4qd#_l0nS>pB9i3*^U{Y|2xI0ZETqee_GH>8bIAFe^@VkB=hJEm(-kjANC{tAq T>!=W#w4n`blI2imEr!lFi``t| literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$91.class b/bin/jake2/client/Menu$91.class new file mode 100644 index 0000000000000000000000000000000000000000..9f15bca07af519e34e443344d687fc634a0a3892 GIT binary patch literal 528 zcmZWlOH0E*5dNl(#>QwLYJGzT4_45io<#8?D#hxh;Kz4R!zQ^o*e!YJH*vGn!0%879^?Bd(!+>?_U9rwK5BF?Xg!-ROpGVzH`<;|9 zc^v2MmqLtrhtyyj5{v@^R5hAA&?| zT7P`T6C4q2equjMg}$)WYzS(oyin<$*G}U=_l_J?F=wMjsQy!MF^@8#(pE#hPy_B5 z*-IYD%<>QdH3?2T%3`0-12bXC0CtUs%zvi+FiOPZiqnVa-o*RbNmvPC0eqv6|Bk4k)D}JzHdO3WZwV) literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$92.class b/bin/jake2/client/Menu$92.class new file mode 100644 index 0000000000000000000000000000000000000000..ba7a8730ea8f38e67c8fde9d3b888362e67d91ff GIT binary patch literal 575 zcmZWl%T5A85UhcfW!F^%72n2#2h>CoJQ*K}8ci^$2Mt%VEFBnFXOevw|H$aglg5J| z;71vIfOwEeW_r52x~8VSe?Gqe)Ua+NBQV$V`&6q2p(K@5uSlhv`!ySuz{+^%A@IYn zh;(6$0vX~R$b%-X7A)Z)oUu$WYXF>nQXn;aN!6njb{2vhGAE# zdx7yiZFG7dkl)zs2snq)4f)8!3owRpfnrM=y2$!nimzlhB!N;Z;_{A+we^34PTJFn zK(#g6tl8KVaOsg$mU4MzgE0@X7D{tlyX@YPN_RIqK4wsMQ4*LLVF)mbB5&9x8LQr) z`-$vRa-10@AR;@`2&I7Ej(xy%E z1I5=CeagBB1gFMOd>G0kAzsk?lMZWO(f9>`9RDm9`!3%aY=w<%y`k_lNc(*H7Un&} z;p7DS!4SlDl0AVb6#29S`)mi4+wYkEPw)cAdmRu|fBOyz>;x55xipVCCdpwQ3v3-0 Tb`i^bD{;)uWxqT}SDeBR1(S6K literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$94.class b/bin/jake2/client/Menu$94.class new file mode 100644 index 0000000000000000000000000000000000000000..4f6059130882cfd139a2b244f40f04e0ed1bcf96 GIT binary patch literal 574 zcmZWl%TB^T6g>l#(pp8HK2YPr1!y7(vLUD&A_)d`fnjS(nZQ7qCZ#3*mMe`5cShq! z8SenmL?)TJuXE4bd%nJ3-vE?xs3XFV8QEiAE;+8?GAOmV43Dc79U4P^wK8#R*X`NP zm?3r{qzJAUqJ?6YL92UxZXyc9!Wv=>iI$N3Hk|ahe{c6(&X8(()ZVpyq2gsy3x;CK zkZY}eR;|<+bpFVlFrfBqfiN?>Gp-Fl^pSlFe_vXX2%PChc|>8*HBuVDHJVpEgjdJ3OQ)=VCeNN%Np?~8LAYAHqHb2Ems;Bet@51 z^cRe`KnzivwCA4tIKB72eZ9N_sA9uGhN0N!ccNMeLMc>IX$X~W9UeHa8OoE$eV_*e zttumfTy@(C!~C&SGC5(ews%?#c1?GM2Mex`Im|O;>r#oUbkGseHSdIiAz#-44_iEv zhEJV#(vvYmss3LNM+}Y_i6Bi#dIfn0IfmSyOdkdFW8qRu)fCZCL~S#~X~Z8Gyrxd0 zK%7g{f@}PHeLm#W;F$_S9ZPlF5J^vWeUyz#&ZM+wq;44e3#CL<3wa!i7@MG>X?;M3 zE)7fEA#0zI8PDz$79Pi8k6zEDx$m$kxJcZeBoQtVV_5zXsE#>cKO_6Q{sWf#Ia6;> Z>n#+iDuY#&2yNQZ8rI43NZB+)=Nmf&VJ-jw literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$96.class b/bin/jake2/client/Menu$96.class new file mode 100644 index 0000000000000000000000000000000000000000..7ac73856f066ed713afb09560f61ba6fd15909a5 GIT binary patch literal 532 zcmZWl%T5A85UhdKm30+Szz3Rm@Bkhp(Zqycybw)L@Pgq=mZi~=bvD@tk-yTD#)BW= z#~8oB*t2kuILS;;cUM<+_vg?12Y_SjnMeubADj^#S6xq%imGi=@j>m>gdtFz%Zz9; zjFsDq1QySvlF_+9x?JfB7!7|w7ShPrSiqt{wj~wa#E*RnZk@hI0_!c`b-b<{LBR-BmkLAk|&nLJk`y)&+9^7;NN`W!)=Z zstyHX3VNFOnkL*ek0KzN0#?V51D7tP?lGeQM_Pp^xKOU=hpf`3=-waLDCxm+8q)j2 zITWy)N>R}8oG_#i`(S?FE|B8O+hE`1-w9ixBZse8dP&k2zm|q&zF=^2nSFZ-V!Ohg zz$&u*YJwWugtGL8wPy~bxEKjPGT%vYai%#f*6IZmxh##%1iyuCwgzu)2fO^UIH!B! F^9uzFXlnof literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$97.class b/bin/jake2/client/Menu$97.class new file mode 100644 index 0000000000000000000000000000000000000000..20fe6608ab2ada2e1ccd3f55a3ef6f66e7b9a728 GIT binary patch literal 576 zcmZWl%T5A85UgQWSJqV&0UxOG-~ly}1P_FuUWg`9~xXvc~F#eV&jR!x# zzcBh8#vU*pWRjVl?yjz>srT>KHvkpvT1W}x#`2CTW!Lve#pMpEWWQFmU@zEs2VRewxwTtDd9SjC!!tib9FgM%D0tmHcJ zDQb*(j+%*b1w^3L%&-aA-5?2FYI<64TAOjKQOt3nTtA3BHSAD43I+~}`jfeCEW@}< z;RA)Y8s1`01e}&q6gGSrMZ}*=|JjB;uwm>zkmAioac=SLgrm@v!)Gi!P1-h}wuads zFuA$NxibZET;fb%85uq`!5PO1<;Eqb9Olv)wDcSWph{F`*lok|Fm z*63&Z%>#lfpJk95ZlA3(=1J5;p>OL~y?Ys$gId?aG-h0s2-71BKFTN(CQjQ|k48m0 zIZt&!pvcZL!bR{pQ5pyGT-j;!R*GGV;$6;k5Jrj8w{2h%J08F1a^X1RJb*ZIVQmu zlyM5g7};byotZapW?sL(KRyA}u;U`ZP>_y#OUTh_3C_t*C=cJU{GZ?$PWEI%P@46f64(ifC{bw=YebU3IyT5UB<&`) Q=$5CLoy&enif%jUAB?qh!2kdN literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$mcallback.class b/bin/jake2/client/Menu$mcallback.class new file mode 100644 index 0000000000000000000000000000000000000000..57310d64846e15d1bf56ba09c18428fb879488d3 GIT binary patch literal 391 zcmaJ-O-sW-5Pj3erj5~lXuXKw!9(?6px26*f*?daD7|miQ8!IDkPq>1c@jMM1N>3q zY!pER5Bp|k=FP{O_m9^%08{MvXc2Z(wd84}GsCuuF4)!wE3L9DQF`gaBMegYsG>~S z`{*i3SyzP4iLs_SCA24p3xYS#Z#h64y%1~Y5c;vPd|9s&E^btkF<}(v(sZE;wmKLL@HRe%5h literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$menuaction_s.class b/bin/jake2/client/Menu$menuaction_s.class new file mode 100644 index 0000000000000000000000000000000000000000..ba9ec6605ceb1338014273785604a866656a167f GIT binary patch literal 395 zcmaJ-O-sW-6r9(_CXLbBs8{L1gL*K~tKy{~2+@nut8CW?ZcTO}AO0f$fG5F&KfoU) zzKsJ}UkWJQ7-w(m5W$}w?aI=7 z2!m5&O>;)*9~{mJ!OY!pj6Q}5)-WK9a%1_bEf-wfs71kqG<6mLo`g!7N{JsVg$Q|-S5QgtB v9Lg&b?v$e!M9(7h5DWS>@Pu{2HX?~1V+YYE_K#Y2 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$menucommon_s.class b/bin/jake2/client/Menu$menucommon_s.class new file mode 100644 index 0000000000000000000000000000000000000000..e77725fd82289d83b956e879cfbe4a8a52beb16d GIT binary patch literal 893 zcmZuv%Wl&^6g`uqc^LNwh* zB!u_?J_>Q{I1tn<=H7em`!Txlud~Rwy8nXqFMMNx;)OKKFR)Lq zMfG}yNk)MgwnK(3JFy7^(++yQP%*0F1&;K(GLizhkF2@W^JG6{ZcSqt$tVsx(g>94 z=5?eq6xdl*X=YAp{0-~H+F_btq?PF!ITEm@^{1ft($#MCN+5rDbk1>)gRZiW$1NK- zaI=hE0aPGRvr$4hk?z=7!D=EM*jPtVVD;41>TT?Il=&b#Ub?Piq;qN91ZT=Z^vUH^ zwMDJZ9fjRnXF+Tn_1aBxRg$wclJyJNCz@j%dom0aulGn`d%?zMdnlnPuztybDgBuX zQ~v)Uo(k+;iby}r+z~l)5;dnmjr+*+=dJK9p-75kVJWX<*vj}7*r|Rw!(3;I*D}nd zrns8LU&XZ)U(fhP#y3;W10|IS$+tvyYF`#4Pfk5XF41M)47`49~}E|lrjz!NsvB7cVRAI}lQ A4FCWD literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$menufield_s.class b/bin/jake2/client/Menu$menufield_s.class new file mode 100644 index 0000000000000000000000000000000000000000..3c96a1fc1b586427784a57b0a3be5e67d69d8f33 GIT binary patch literal 524 zcmaJ;%TB{E5FGcFK0-^&tGqdI01iaz6~uu`NR=i}eqtj-8rGwW5_%fX80rfd$*~fn zm4pd`NW>()mRiO)4EeM3Aw!{SCZdWw)?K(*V`%iH77s}{7WR=-Cx%wv_*@OSmFaz% zEW|TOlOEH6|Ex=MRtF}rzPOWVt4iv}Wx5lC+tXUuuHsQ7$d_G)=1MP8rRM!OQ~Tv5 zPC#3b^~LOz2muG>j4Mm7F1eO5qZ(~V@9GqJ#A&8@@ruR^1vxYcOIh+6EsEW50XDFi X)weR-#tw0d^m(+gN3H3ru#fT=ztVP= literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$menuframework_s.class b/bin/jake2/client/Menu$menuframework_s.class new file mode 100644 index 0000000000000000000000000000000000000000..0feab4e786ddee917a841e22e0425ea09c7ec335 GIT binary patch literal 731 zcmaJEiBqSsxJ`O}&stT>mmO8Q5(ym?LXK|>I zDz!g=ABFmCoI^{*Vdjm;Z)e`j?!)7+KLEC|?xG^l>C1uI?gmk)blN>uI$MtEz8M*- z>%T_x2wZQzSf`N=8Uj_q`Yday;>#ilbCYxPGI3>Neu{m@bC(rz{F9g)kzln%Jifksa#>gZs*d3`FELg z((fUsUK*wC-@WGJoF$nF)Ipe+Yvjw{%7+&44z*ThKa$oeUcjQj>WPYu~U2~lOZW*6AYn2b9P8&mw9&k&nm)Iz=St1ux@W#<9Z~|?jpmD*(*Npa1 zDKf3id%W3f@BPN~PrSe5p9*H^TSeC%9DKz%dYEO-dpdzR%on_c!hfVj@JtmQEMdi| OW16^1#oRa6Q2z_;>8UdS literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$menulayer_t.class b/bin/jake2/client/Menu$menulayer_t.class new file mode 100644 index 0000000000000000000000000000000000000000..c880e00365c67f7c4c9097eb325d1875c67d3274 GIT binary patch literal 440 zcmZWl$w~u35Pg+x%w#l+TM$G955|K7xhh@)f)L|D$u;y$O6_E(2WL_9S)K$Bet;h( z){Hs0(DbXWSFdaP_xnT!^l^`Sj9T`mt-Zq*9l?occH(NNJI8@ zl*K-u>pWFG7aZr45u6KSI35HlNjR~vMQH!q3Ze01FW85)Eo&^vt)eCfSXdDxInush sLp-Cq71)2$DhyVZp literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$menulist_s.class b/bin/jake2/client/Menu$menulist_s.class new file mode 100644 index 0000000000000000000000000000000000000000..649eb338bd2f485bab0d4017a176004b429babc0 GIT binary patch literal 454 zcmZ`#%Sr=55UkES>uOBm6C`->pdMVvRq+xK0?|t(7Y|{w4smpL7WR?P@gF=19{d15 zO011S4(g$+d%BD2ss8wUdk4_RejO#j!J~T8{UEePyDYfYEE8dE+=wLVaZl zrDkFAtoW3`A3CR#fmLa$>2*iY{v}0LagUW-Z*?9Vf*yFx5~GS55vZd<6b8L8udxc4 ti%#|Q75)p05;lmnW%C&=*8VpEn`kfRoh5d$#oQskjBV^vTA26H_yPxsXD0vv literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$menuseparator_s.class b/bin/jake2/client/Menu$menuseparator_s.class new file mode 100644 index 0000000000000000000000000000000000000000..dbe725ecdb6118952e5d90de9c646fd402600468 GIT binary patch literal 404 zcmZut!AiqG6r62hlg4OF)T=0ZP!9%rRlF1gp?XnzE!+6Ot;w!zl75p{Pl5+Oz>gB& zMnTbDW_ITdvv2nOh+_gdhe4gYVuwpPzN_{p0lwzz7E}S`3Fv{vbwCqNLD8bR~3oloI4hE`*uoF6=)& zNtULWp5+W)D)ox1QZTSdCHZ3`y`(fv=@_o>$k9HRS{4@!*70!4V2`tf@L^#ifR8nX zZY;I9F4MU%w|uVXMHpuZS5t0erJJT*+)Mg;5dRPvNJH#RRE%dPmk6eB1!}|pB7H6^m literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu$playermodelinfo_s.class b/bin/jake2/client/Menu$playermodelinfo_s.class new file mode 100644 index 0000000000000000000000000000000000000000..e0b44446de7dd19f4c2e1f7dac7e7ee17e8e04e3 GIT binary patch literal 506 zcmah_%SyvQ6g|_XkEF3r-);mgs0#z#DsBowq3WX2je<Zet;h( z-id-j1s8MAnRDOw{p0lwKnFV|0`4z;_{42yA zOG6!Ev!EuYQp@y=A%Ac3{eO#2 z`XFhfHnsbAUmDUI#B&phb7>2@_AJMC6$ZbjwJ=@9lSI&Awip^q6-isVA$CD4(BU0= z1r*5wC6qIC;bmCKkP)ZVD85Q8Ahb&1=moWBA~`h37OhylMU%My6@V62Gyhs<*Ret9 KW$ByPM)?!v@^*0m literal 0 HcmV?d00001 diff --git a/bin/jake2/client/Menu.class b/bin/jake2/client/Menu.class new file mode 100644 index 0000000000000000000000000000000000000000..955bbdd03a2e82d7ba36d7a4b6a3eb90723e00a9 GIT binary patch literal 82691 zcmb4s2Y6h?)%M&zdv{dV4cnN-7~_V8yNzkGiji$eMv`re0kP7qti>y>*j?EcNeDFr zk^q5FLlSyPAP|dU5Qdl*TEHPd=)ENn0)!F*3IBU$?!8*ctMADVk9B6J&zaNaOu3K! z_wIWcV{?V>FkNG1$Hz7$=2o<)l8NqIMSY^X*I}l{N{2+RO!R52sH?Rrmh5hA@6BY> z8I5UmDBZB8zO`yiQ*&ceYi(0yeN8j+Ri(SLxmb5@Z7kKBFwj;B6-LdiD4k9BcE>eV zzUuhc=2%54*1fT!IhRRxZ(Pb*k;aOCFjMl(W+OTys^f zVwo%5oAWb8@-xj-nM7AB#+X3wWf!!gH0E}-#xt=k9lhP{8XJ#35iU+>Pj_{tyDPR5 zjCIFbb4xWA>T2DT=u;WTc^N&VdGRt^aed{Ht@SkxYg(&oR<|5ZqvsmqU9G8DA6nK} zbi>fX^%&|D>b=Y$>j(qUh=?b8a-ABp+hgsW382iaudHimt!t^NZ>DN3^r@caqZ$K1 z6EZ9(Dnxa*(r@57+uGHe$|ZYL^;ECM_8FlI9hq2HVoN%+sWpocPt3L+pGN)NiJXc{ zWHu)H4pKAD>6Qw-ZI$! z9$txd$w94~lZh?64W%pHn@zOJvVKE8Qqfvlnou?*)$fMn?gHJA@k6@dcQDz#868Py z`hrgQbs?pdy5aZ0#{tF1GwDGh%TMUZBsLc;(Vf^jI4}NSIuog$R>+2)UI>$*SkX!% zF``_>kRtev0P!j@CBY$3Kv$5Nm`kY~i>q>Ui&iuTR1jFKeT)^rcCnoqZw0zV?2 z=!k(kvO(jM2h-Ynv$=Fv^29`t+eZZ$+OHs+=*}i{$<4`JUu!l6@_;-aiJ?`xWN6^b zuc0H8NXW@-OK;WKq!ENcDw%~yhA_!1=?}bBmc)$uRmM_VVtrYndYO_pUYhPqPSKZ4 z1NZo)s1w;9(jcnX@T6QO){)q)t@cbho9&DxGb#n_?bny>*t$8L>g|HQ@eq^O_v6!j z*<2D*L-rysp*`*u8lG@MZ!ASvCQN87uXF8~*>q}

b8+5Y^daduuY6=mM2Q3QD;M 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�b6#2~rq)6v#=kH+ky1jTFJ&pA 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 JsInb~&JV}CR44!d literal 0 HcmV?d00001 diff --git a/bin/jake2/client/SCR$4.class b/bin/jake2/client/SCR$4.class new file mode 100644 index 0000000000000000000000000000000000000000..28d4aed3a55bd43992f03dc0edcb12f2c6055021 GIT binary patch literal 464 zcmZWlJx>Bb5Pid~9-gNlqN0_Bg<430b{ZR^2?<(=(vsy^W%1b4yTcIwm6gWA+TedO z&H^z8H`#sjX6DVuj=tYN093H$B10(jl!#p8Z*G63q`fU|o%XX-^Nj(Z=*p#uheCiZw zS0{vG{r?2V1Xm4JFi5#@9t9UGg#2utk5$_)+tAPI=Am^<@EXw|4%E4}O|!hrK~FwO zp6JX3VU%cdccId5)bUZWN>SrI2!72N6<0%cU|@7G zvM6+?l`>?Hl~(BqgR`^SWZ+fPksch(`*iBiExn^!_seo%9sQE1^HS1CmiBb5Picf9-gNlqN0_Bg<430iH*jFXhMP(Vra>7tg>+I#k<4c&$7~3_ya7B z{vG2i5MywY-8XM$-hAx)_v;&gDz;r@2*th}sA?q$wK8d?S-ajnb|DDmssBERhQr8I z#ulaNwo}5wsWv)2BRG5eErO^;UFE^SqK_;V2>FIK>S{FXsQ5;9Ld8uQQ6R&XjJ4%6 zr$~D`A(R^bCpaOvYOI1$%7qIkx>zL?=JR~4*>>6H;IVy6@S4#m4%CIV9do?NVP8H- z9_QQyVU%cdcd61|)b&xeGEwIx2!7od71u(UBr3rUcq{%LAj6lpVeYbZ#7Ne2@QmEk zB<%6)*);lq;NTK-f11R&%#5(|TcA4OfOtWEUjGS)zW(UNOz)t?stne#!6^76HnGK) K$Cd3ce0~6biBix2 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/SCR$cinematics_t.class b/bin/jake2/client/SCR$cinematics_t.class new file mode 100644 index 0000000000000000000000000000000000000000..69a135132cb2fde95ca8f0c4b52e2ac6bdf0c438 GIT binary patch literal 761 zcmah`O>fgc5Pj>!cI!GcDG(@75=sk6Kt%Kk;y@&%N)bpDbfMy0pphw?%Pf!VYHel$;#9!1Q6_Um=UBkE(R)416M?`+ zaUzXTsTFXmOD|D+o{*?^regu;^;3Z@n$ejuGi~N1NX%-c?872RzQC-PzizxFT3f}o zeiFre0C~K}+UWcV348sCKz+pG05$A}xQzBD1g?kJL94L#LR>tzIw3BhC9pl_%+J@$ zsmfl-Y04RP#;aJS6PfA4uP*C(qB%ro{7=mu3GDa&lhU6Ae8?{6I$5o=SUuB4(+$f1 zpb%RiJf>pVD3#VK>tj%E;qOH;>CaW6OU4>E8}fJI@dSKql(<=8P~ldEVTBD`DD$=} zY@${ARIEhmRU*|QI{c_A`(2@TN>32GgHO0RpqgKTkGM8yIi+#qr*ZQ`S=r^;=KJ8j zLETN!a1Gk-3LW~l7z@w2u#ek76YO(P^*JOu%y8M~@Hd%P6ja4U*ukChyo(;OkXfLQ HdkB62v|Wz^ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/SCR$dirty_t.class b/bin/jake2/client/SCR$dirty_t.class new file mode 100644 index 0000000000000000000000000000000000000000..a1ef2534a356704320a411c1bc209fddc3fd3978 GIT binary patch literal 683 zcmZ`#OKaOe7@SXj$Whhi(a5orrm6D)$AyUc+LDW*5HJZe#fM(XT3K4TiVTt*>O)_U z{GdQgA&2~c{-}~!*(B{Dg58;2zMUD(pTE~P0NU8GVF_vj^+mV+APRMy`Ny4i+b3a? zjX!2Kih_lKI#Yh6;!pljf1ra*V10chkOM>7+{QdvW3uv_Fb=bQL7}m(06Ee=N17AO6#L=4OXd@WSZe*o<4Y0?^W4k% zWr_uIcRGMYEb#<9#WHWqW6f!c*l4}Hf;WL@aAkrOgY^mO2G=H7yBDr99q^5ne5d#i z)bNwpf8|Eiso0%S1M9Rj>7L)^?aZQiEq;X$)aI&l(bl`SadN41CcXIQAH12gg$;^Y OG;R+Nwks?_j5tJ6K%_>>5u_J$S6AnU!M8N?# z6yn)XKtu87&CaeyGyC!R_6}f#Lk9-oC>2j~6eL>7tO};#-RZm#t3@f6tB1;gN$96y zEdnjFd2k!2GN}mGTIgC5Xv{pxbzU%^5bP_Jsp^{0IXj;b%rJkH9y-|cu>p_Ji&Q3W z>SZj8dl74P7({s@^h^}0Isb@ewNNGDIQlQ!CBd8Kb&<%iYMfloe$hlF_>(M?MW{tt z%F@Ap+u?6ZLiblsoPaa)uNXWQY(~I=%Sb$&op+a6z`Ieb;Vb+XCI+?`?N)q7kGcQ- V0DWw?_k$L9u*~G literal 0 HcmV?d00001 diff --git a/bin/jake2/client/SCR.class b/bin/jake2/client/SCR.class new file mode 100644 index 0000000000000000000000000000000000000000..0f9b32ccff817055f283895505da1f6476766954 GIT binary patch literal 29189 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/V$3.class b/bin/jake2/client/V$3.class new file mode 100644 index 0000000000000000000000000000000000000000..c4c6d3ac979647d2a9d24b288fd0e35fbf47b727 GIT binary patch literal 1026 zcmZ`&Yfscb6g_ue-R%~^m6zZH6?7Mb%Hn$wMWP7__(9Ajej-D6Tng=UZM%f;{t$ly zngD9z5Aa7B?`$iHfK8^;nK^Urx%Zy_`u+VUfI5~9WC#O0VprB}$8)8M?dIfyfgE8p z+5PAQz8@%iU(Z6dHe*6z(N%7|M95ZaO+s!ZXh{=Ulq}>?AoQ=fO1|m(TQYnnwmeCw ztObtnnj&=dI^E30+is-KPRDN$47o3zZp^d;s2I3NxR9XQ!k6}n-?DHCgB*J~Y&$(6 zt0fF$)WFCI^lw5IE@O;PYIoJ9&r&_Ya2hj|swG3ax4RiP3|t|M?1(*KdqTDCjW~2w z`(@Yl7*)hI*42YXwux~}=yY!ohN{f=@0CWasg>WdFo~%|<(>wv*3LpT)g22})VQ*u z(_u-3+4DHh+)b4=ikRX2Y*ri1`K`KUoV73qn^25{Bn!e|^_=LsYV#I*VS$hdxm9Cn zY0~P2@`K#(1YykODdPbi8F+YNjiq@#Uzss~&x#XU}Z zajL3Jyb%j$cU^Q+51AW5H+1A{SG%mxoYRe91HMv@7ew5K0rA|&EB4z7!6&BGl=Wlu z=Rc!JUomv>1LN;2SC4Q#cZ{2dxLuj%*CFn%eZjq%Z@8aFv4ank_xbi%+sP|^v!mSo616oHVB7_wHm$)MFjj~mD$Z(;~JhLH^s@Xc;#heuDH z9iKB4H$vC(n@%K@-ZyG;PsGaiZ~iKS&JVcTm3$bZM9`WOrQTaEJ)n)Dqd1`5mBP0P zxg8rQ;DVwsMx3lhxtYf}CUs0OoJ*%LaS2ll8P{i+PNz@0(2Auac}rIFn8sBdR~V*J z5a}=zC0wJvM10rdyA0!L%*5P7o57rpS%$F`+DU+kc`Q)z`+~m?qc$;oURPC>O)TOD z_1p10I!m?n6Py-LOlNS*#F7Fq6o3=7eNIhTMn%VMhC-6^WT3UMV`2rXM0+a|fh5`s z7Qya2wogaxZAsR4_5Va_W`ja*(AYPh-Pk~&6ne;l}e7}K#QT<(QL)ocU-k7~XX z$2_JcQ3-VMfDA3VDx~YQTOrAmW$_rppL=eDzJ>~8Z=jL$4C!VPMDi?YG}HmWr(O)O zUL5&>!ZZCC=fB|M5iTF$dUpBaS6Bm8ORGaE^=9Jz2K$u7Jo1$65C(foKg%H|Nm}e3 o*4TU0NY=^LU?2WsxZY=&#hqR)cdpF literal 0 HcmV?d00001 diff --git a/bin/jake2/client/V.class b/bin/jake2/client/V.class new file mode 100644 index 0000000000000000000000000000000000000000..b5a94f97b94290545e60ada2ba5c332fbfa74566 GIT binary patch literal 8634 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 Uh0(c=t^PaNX?SOI{_36PKizkG7ytkO literal 0 HcmV?d00001 diff --git a/bin/jake2/client/VID$1.class b/bin/jake2/client/VID$1.class new file mode 100644 index 0000000000000000000000000000000000000000..caaec92306a313245a21f8c1e2572077f4fd7251 GIT binary patch literal 465 zcmZWlO-}+b5PbvHg>@A~RP^M*gL;sNM~y~N6B6{GhASycmEzKkyT$OgJZU`m1N>3O zDG+0@N&Du_%$tvXeSdrcsA1DXhEVFuCsnJ4kygf5TaAnD0}p~wnfRZ>crb`fb>vW* zZrc*(kG0YEgpl3YZ4pF0?kXQyVKy3(#|jmd02L<{4PJy0G>lP6J(6jvQfz@Y;~xSte0d}09$SZuue22G$k{c%xR|-UTxtEUX1wszHJRErg3k7w>xbmb;E-+Ya zDQSvp2LTTZoH3-=1Sup#V&xx-Am`{20F8cfjBCX%!&f?J9a<>e<*n*sWpZJBGGV&BZ@ltdyEs> PWvCXzDbDpcp`z~(fY@<& literal 0 HcmV?d00001 diff --git a/bin/jake2/client/VID$3.class b/bin/jake2/client/VID$3.class new file mode 100644 index 0000000000000000000000000000000000000000..d10fbb02fbe054bb9dfff660e4f24f87d8e648b3 GIT binary patch literal 587 zcmZWmO;5r=5Pe&!g<9o9{Qly=0X2~Xj;I&Zgaq|~Ax2N7jIdC*Nn4EZUwP7a@CW## zjI-64piR27GyCSv+qWN|Z|?wVC|NKB3L|$+wW{Y!QgOB0Iw{vJm;xJ9^>b2_^1bK! ze$VyB0<(uw$@o|xRoU$dn9ZP1Hd4qqn8B<-wk;K1OzwLWUb#J=cuqUu_O2UBo&OZg zcqk)*VtZ;>BBCK+(Ia`2n46a>jCgRXzN-e+%if5*xUt){k;kHif+6gsq*|Fl4@{H@i6E+*wEKZYhPOI zgn-jhio&MvMiE68wgvK2qBK$<^Xnl>VE6bT0E2&ajdP24b&f(;_Fj;FPL6F}Z4EQ7 zVe;V|=gv2X<2+{q3&`@S363}>l>4v9{Ux}8Y1}3R%Rh6!3ABPGEOToLD@A(# U_IMqeyen`mg)QuuX+|aA7qwh-LI3~& literal 0 HcmV?d00001 diff --git a/bin/jake2/client/VID$4.class b/bin/jake2/client/VID$4.class new file mode 100644 index 0000000000000000000000000000000000000000..51306d6f5632812705cb3d19ec50506d918a9a7f GIT binary patch literal 587 zcmZWmO;5r=5Pe&!#acxW@LM@}08J!OZ+;v^O-N7=n%3O z*+NLrCf(VYee>q++wY&xF93(AIj|T?Pkbm2n?WdrN}7KAa`)JQ&9E_5zY!|keGYgS zc6l&lm_3zBCg%*fdc$Y1TTxHA$YIXI3}zV$9jU}^`rH-q1Mh}{=5!)z_jxQ$J}%nH zKx&3^XKGj`;)KBwuOdhjYOd4?@xq%SSN-N)_eliFNyB$h#Il1D!_wb=4`mc+=tV61 zgG33fTNCZJ7U822^pBFky^qp35ZBU3&XbS>1ETv}sUVEBRQ(%~45FTg4Rg)B@uf{p zFnDdHMBECw)=m zg$p+>Sld8MToBj(7=M6K@xHM!t=OdV?z{J%`_8@heEs$L1V9F>3OGZ2N8c5hv|*XT z_R@v?>coPAAj3$9e_h!1iK?MnR!KK@8A6MuZF)I|z~oecA-Ga2iwFV;Yv@9Vp?A%+ z#YVka63#QdWC?m_tw!*I?wIo4at6I^(`D#i>v+s3k!4WCfiUVGffJLI(a_VDZf~WZ zmUe{UWv2=XVhqU+=pUX$)-qkM=!OwRpN4)U7*wO~G<2&@JZSo(4dSTir-&0k^0h6&2h@f;vi)9Pf}7zy`)z)?LCRp#CIz uFdqAk@DId&BSdNUD9Dk;BAr1J%M$LBHB6BJmhmvClE{~_LQlwP)9*JITm9?+ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/VID$6.class b/bin/jake2/client/VID$6.class new file mode 100644 index 0000000000000000000000000000000000000000..21f897e517c1fa99e4c1ed6a6a03d97515e6112b GIT binary patch literal 582 zcmZWm%SyvQ6g`v1rj5~Rt@TkKUAXW878Kn0*t80TRzaovX?k0u;{=*S`~lJ5aizHM z1NGmHv%D_8`zfd?b)r-{=U~^{_`SGRS)vLsp>B3N)Q2w_O@u%B~`w(+au0BZq;> ze~NZ|6+{B1*2u6_#J+$-_v9xrH_xs!;!f6-)Pvet_nQ28f1~4K8Z!=x0#kqcJ(N%o zm^i11;s*6)qGBFoN2K~j%Re>&_aaP&KAi+cZH_f;8xUXRSoUQRLl)? z#*!wRAmBB%reR&lD5A*0ioo=U9)lFf|JsKt*f@Rzz~Y|` Y#{x&2?OntY?}}W@U>U1+j#26N1w#OF{Qv*} literal 0 HcmV?d00001 diff --git a/bin/jake2/client/VID$7.class b/bin/jake2/client/VID$7.class new file mode 100644 index 0000000000000000000000000000000000000000..1d74e700b8dd6cef6c9b9cb55d6ad349209baa24 GIT binary patch literal 581 zcmZWm%TB^T6g^X_g<3@r@cme@5KU}?3m2$~K}|?d7n<(dIzn}r651O53ZsAGO5?&0 z@S}`(3Nb;Obne_c=bn4!%-8qFCxALO3}_6+TlbFFZC?aj#dv9S#uclW_Zm_WRSBkfk}pZJCOW5>3Mu`<$8kCoOVdV9r31VfJsog%a`% z)=|GN9-Cci<1|N)xVTYL{*f`5mtivS`DviUW=X=10?|!Qq%XoKkexFgcf)H7%j$wz zpdl?O`JgG>DB_WUHHN~N9ED`a{kn$@kZ<$^fJQ(0MY%z{U5ZRqw%(9^O^;1l zO$F1Qpwr literal 0 HcmV?d00001 diff --git a/bin/jake2/client/VID.class b/bin/jake2/client/VID.class new file mode 100644 index 0000000000000000000000000000000000000000..dd8e97b0db0a41dde4cae4f69064d8631a318ca5 GIT binary patch literal 13907 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 z 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 Tx90Wg*vEj;V-8^t2Ttb;?V)Li literal 0 HcmV?d00001 diff --git a/bin/jake2/client/cl_sustain_t.class b/bin/jake2/client/cl_sustain_t.class new file mode 100644 index 0000000000000000000000000000000000000000..d882f60a14c213419f37255066579da1dfe54ad0 GIT binary patch literal 928 zcma)5?P?Q26g`vACY_o#)mo#rR%=aGZ8X*|6hR7wK&aG~V(pJI*$i>h&8F;bioSp^ z;Zq0(LBt2}p~N$@QS+zZF87{ucjw-F=FaZVU*CQJXy9ocDS=Bpb*vk8*Y|V~6ON)` z6e}+{iu1?_%=Xl&s{1PF)?c-I+KmNLUPnMQ1v2r66D^R}K_~Y5WQ9P#kK=bRC->r8d4d#2CJjyhq7 zX9BtB9D6 zPxBj@rcnevj4X>3YLU_{ax)e=T8kX4MQ+z32VjvSvB<3uQ|!QFp})YWX=7mC`HBT6 z_dPelVgi-VcJUSZGBWhb^fd}|7%$^0pGX#ADwY_V>)PM4pRi!x9XMaGm^LnBT$Zk4 z!iotiS!aBu-;S_CyFt52yG5(fZqx44>K_kx{@go`7~%duaZ8+!`KL;FKp`7w5nnUj e#Y4QoqY0r0W1%UoFmu@83hN`fdP;bQ;^QJT)on@PjW^w85Y{6rBD z@dGF#ia*3pSz4A=T6R&T1Xpfcx^nB5a^c#Ac;4%tNkVWjbML$N-1qLg_q^M`{rl5R z04wli6g2`J`>g|VMIxECW!?*gS@bMVnqCxj04lu}PpsnNl+6m}%F_$)Z4W)xzCe!dhIJc4cwMEV!~zkSPZ45ojuMlhlaKNIPy) zn#87Ln!6M%wcIa2>NS$d3e*fR z@iu0YvXh=nnT~5`?7TW-V4zPOUG)?_Szx*w1=`0NO?64uXv7+9qBbXbl%4gNUrO#LBijR5`OQ$g(~w-2y|C z0+C96r-pS3Hweu7(1xnOk{k89(|r`=QC_V zgPkw4V~%@-RZQA>nX^1QX{PNgYc)BD$lFe$^N1%qOX;+98Prq-2HB1ThUICk0t!}E zdY-;t^l4?VweZBQ_3%v5XjT zX?SFFvDv^zJQYO`^S|5EjG-Hw8z8XNKr>nzupNC-Jj03y z=nXPWo)iu2K!la+>fK;=uJ7vJxlP6FGSG@PrR_E_5$#b-R*L}xlLGB|1Jf}>*-Qf+ zfo2()i5XFl?O{g2RTAO5ieWIwC~aUCW~<;K19LD}Y5NV#Q^8sCbXpWFPGMd(@F>T z{HAQw#Dk*Qje zr&^MtT28@KEvJQe5>~HCS1n0aO5PH)_4=L=M@DKp`KaZ+q5ZyaKeA8b$vrK}JT1vP zEy*`6$u=#QV5ydgaGzzNBnP$q!SG%yL-|nXCo}06Sf$rOF;U~mHZ4gh?I&~en(WY$ z&DWA$*M6Y}1^0OxsQHf7uHmNN#IIvh{AYCcUq`QxE%6_)Z5Z7?b}H>g%*V4ziTsNG z8XtS&ksFcz+Q#kub^J|e-0tJK@ut1wP5XGnAdg7-knz^mVGR1njEC8T9Uv^{BR}3- z7;kdNo4okMvX8^@HUX9X(Rf=eZq)mDLEB%9x7E)X#t9!M6=E2teVhrjvp!xAv^Ra6 z545*@Tnw~JJ}xu6OU&+lA6IJEeuehQ)mrL~XX%*|`J zZ&kb}={>>SKGa@jH7fElefp%pCqUo#>|rfF;{PX{b|Cla_`F-#W^VJ&SNjGU?0APg(ixP_zm8^`evPKr9563rZO({M)2 z!&$MIqihxCi?vuFHc|Frq1cVMkdz0pM3k{qoT5C3W#S^1i>s7hlgl47yOrb@*~MJ1 xQm*EU_>}AwVkbWh*R)ow+AdTye8$L0sK3o4YobI0EsZTr{E@Yv(^rEp{sZECt7iZJ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/client_static_t.class b/bin/jake2/client/client_static_t.class new file mode 100644 index 0000000000000000000000000000000000000000..56ea887d1785ed2e4dc8c48fc8a4f89a02f8f105 GIT binary patch literal 1000 zcmZ`&+fEcg5IqeGyE_cK$W<<`ilVS8tLr@~i6J2|AxgxM=*!wW(?G*aH_Y@x_$(g? zi6(x4A7!lW>BSd)nbUQux~fi9&#&L#e*$RZWf=nu3kUpAv|CXkg)$yGx#31e9aBb$ zVeEjP@K(arUh6~mKtzUN$OZ@o_Ku-)D9$>u$cYYiGoFe__Y@hGOz_0Wl)|cxFV1X( zp%%-WcN5Xcqf7|JFmXwU>_lWfLy$X5QBH>O&A)AIn@p;`R}5jKm7L#cgm%4OvPHe)B(frYpJAJV;Eds*sSOB#8QZxSghbK1FB$H z2~k76jC%|-|CvdECYEgMYKU=6*we!hS5dd8c8FQjsohPf#Cs>@lij1;j*fV;!!v1Z zPnOKS%o!Sf{{MbrG{0b5_ei##Cc|VAcKHNX?b=BOiKACLO*n*MI?;wbRyh~6T zzmf`C1{RwaxZNDTbB^Wa4>Uht;Ql!tIHKjgkG@gV03Oq~sMkP={@DP}F@-mn#~NjA U;0gJ|A|syS8Ci@X?9CT{0F)Hm3IG5A literal 0 HcmV?d00001 diff --git a/bin/jake2/client/clientinfo_t.class b/bin/jake2/client/clientinfo_t.class new file mode 100644 index 0000000000000000000000000000000000000000..a8be2201ff75b0c8c7865b74e9c96ce3e97f81fb GIT binary patch literal 944 zcmaJ=?QRl56g|U77wBp!B9tN@t<}O}S&AQjYShHUq)DScF#IvG8Mad#3cJm+)$kU+ ziisPIi9Uc2WxO-H2_ZKA*n95G+>bNo&i?-M;}?KFo)}0lR3`jF^lfJ}>S@ad5IQmy07RPaI08LBbeYjh?#l5;`A)?5DxY7bTOmWd3q%Ck)5BJY6- z6E||`qG!Nf8QEYl55&yGA^Hqi?)!Y zRlPnF;{@RgtMe6Q)rqhYqM~p=#J<9Ih_=FNh^oR)hz>y`X(^L0e#gO*%PtKHI3U|4 m9yYenqt1tD(Vy4DLp;YL&8ZaijX4nmI@=>wjLwxJkN*PlRK86B literal 0 HcmV?d00001 diff --git a/bin/jake2/client/console_t.class b/bin/jake2/client/console_t.class new file mode 100644 index 0000000000000000000000000000000000000000..823c3485c7fb8b2d338530e1a3b276940dba4bec GIT binary patch literal 552 zcmZut%TB{E5FDpz(?@{PLV3SIf*z>g3gQ4#B~S$iP!DiGZeoF3H>nc06i)mS2ZV$W zAHYW;)+OS^!8<#%-t~CDzTZCq>|@J;#ZYPUj@YkxN{T?&yfBDEC2q9?o1xg|171@+ zxT{^X+QQQe1sO;!xsp%9XJFS1wiZJwSU1NEj@OSOnnRUSIzv)?8TS-_WXOb3m&YB3 zoRWcfkiNcW$m>vZWrUb!Q+FIjaZik9*BP<{87IZGmR)nnx*?{`}wy5cP*7)p)MJ!|JJr^HikWVkxZaKCyfk67$YOhAwR-Gf^LFi363W?kzf&% zqx+?V(>I9Ia?MXE&Ja6;MHw(veZy?EH2;x(#X{Bj$h>0dg>(xm6icuvu2I~8OCHOV Suae^a_7Yns#;9sKHh%!Oz-Fib literal 0 HcmV?d00001 diff --git a/bin/jake2/client/cparticle_t.class b/bin/jake2/client/cparticle_t.class new file mode 100644 index 0000000000000000000000000000000000000000..65a12985a7615d6953b072909f60d1193c77b22c GIT binary patch literal 521 zcmZ{gO;5r=5Qg8Sr9i3jp#tLfMUjI|xT;)CJP{4ikPr`MSvRn_w4@fo-|}EgjPVEf zqm0wig9-7l`^?PFyfd@kKObKJS~$!g#ZVjbXW4RvR?-VyG37z1gqDwC1|~ys%;((I z+#9;LgRvALgXzfyq2Bqg@SJi&HIWSLn!)gcAw%jRGUrk=q`43=g|Gb}^7VAY8L~0s z6zf8HDr{3lf d15In<7*(90i3Tpo-=(Ot?1a5!{{6V>;1@sNT|WQ- literal 0 HcmV?d00001 diff --git a/bin/jake2/client/dlight_t.class b/bin/jake2/client/dlight_t.class new file mode 100644 index 0000000000000000000000000000000000000000..a2c657ab946712fb3dc6bf7b1bce6b2ec38d7d91 GIT binary patch literal 407 zcmZus!AiqG5Pg%RscllL)mjxjc+&_5dR4p#Jq4vGh2lXr>5^_tH;`@xKg)v%B7T4$ zB~GfI^sw*EydB=m`}ll)2hhh(9TuURiF?@(lUzw{!bz^uskt+CIE1xKJcuwCIt{Pl zOeTil7Nts+CRn!vLMKA8>>E=@ETxi zA2qmD)$vh>OK3+*%ge%kgqGP6NPUuDdo_$JaUKfipkpop( zw0`rPR8eri`)tl`GxK_`s9L_{6*QL24)9p_xf47^%*VkCT7moKj%{x^cKFr2;WOHQ lrS&Hsx3Iz3fy21VxQ8D05pcc9ivMkiF1EPiD2x`izX0OXOtJs~ literal 0 HcmV?d00001 diff --git a/bin/jake2/client/entity_t.class b/bin/jake2/client/entity_t.class new file mode 100644 index 0000000000000000000000000000000000000000..0d440c6914f15882f04436266d60e52c1e618fb8 GIT binary patch literal 1296 zcmZ`&+foxj5IvJCB#Ybx6orUavM3QEH^WT>0W2;e7^QfimarrXn+>%rmVAsKVU=52 zmgNWd;3rw0nGIr@@?rLLpP8OM-97u`*Vpd=MzIn{NTBP;I5tN!CEGF`FT-Vd=X+ip z5rMWNtkyT+=x)-Hc-QyqrLc z*VyK%Kxnr>ujX21%VFH1Yg8F8Rs@=B_Q3_;M7zG#v~QG-ZPPvBDTc;Rk1fYJs|qA+ zt6cF;y>lhNuum$6Ktygg=&-6r*;G2Bhqh6sjM%j0Sl+BacraaLSf2V52;-)PYq;JF zfqo6mNJ#6JhGbyf)^G(0f!0;aG1t$k`=+}cG@xU(Rx<3O;abwKlM%0CF;`E$DgQK? zT?wC>o`v4SeJcA>84&oA&|zh_I#}+=tG-%+S9}R@TN$xJO>r_W*-+6+amr zB6p+@eL~ttn$V|neZdgT6wMS(xjW)xgfKvApiX6dWaZYFk1>f8J|-ki`IwTJ^O2J{ z<6}nRoR7In#p9|gv+VgChdxiOP?Mv%u87U(Tv1qEzk2|HMZLC?YqRZ(}Kx?U0W zt62V@jKApc2cD62=XJrtf}-+4L3usQYJy6Xoz;`F2C@_KGbP=ejGK{egXlFjd!23F rpzxO*>LyZnMPXY=V;jSGjVy|o#2b#_EhX*zHHQ43F)UGB2+O|#WAo~B literal 0 HcmV?d00001 diff --git a/bin/jake2/client/frame_t.class b/bin/jake2/client/frame_t.class new file mode 100644 index 0000000000000000000000000000000000000000..772406fa7095c9a80e1fba633ce2c488eeff1eea GIT binary patch literal 1244 zcmZ{keN$3F6vm$g1f@;Q)I^KaO5sXS_M(PaXj;zL%Va~Pe=rNKb?pMq<>CyVq|ebz zs8dZJpbypb>;)}n=nv1?bN22zzkT-LuixK(0+_|K2m%6wd+L*(&6FHlSG>%wtIE3I zMGz9`-%|%FA+Fnf{u)WN4`;Ka8m$f~9I=0aQ z{XoD>Yp39E6}+r~tklZ|UcmNj&GWtc%B|^t65&O=VtY#h!9+4I5L&73=qQ31kr>2K z4~a)5deIlbWr5g#J4G>u5%cv`iGExV=-aR>`bE85)b1NqbjUfdQ7tJauUy;2?PSRN zXcKF=eTTDR6F*qfR5zCByr0aQmeUeFh?-SW;vB+eH6wApwYn)W&{}0AE+QPoZQO}q z_RKSGHfo+OOWeghfga_$s!^)$Hv}xx`Rrq7*E^)vlX)Y-oWym^3(TJYcY2g$`!b#O z_yW6bwahtjHLq^2vM3=9_7WaP@aP1)?%7TzXFzKbIdCdMySC#9gcIA#%PpEG5~~g`v(0nJ_C%-6{V>5soKOlGLl?q~B8&p)_H$8M7-?yF()Ta|`*}`> zpXa;#o^t!1V$%nCf|Eo$%;<$510&WEE?NEKKf0TUS>G}C{s>o^h=1WX0gTfQAVeFd zonpsnT;h6y8OcgKk4apk7u5SkyY^?22bg7twF1JaHDE)ODz_yhb= z;%pR89`?<=**9-yKEK{R08Fv#!XgY)v6Ry=$&@T~xQuJ9%i>PEa0vZWJc=+A#eH}c zr!vt5XHh;C1nc&k&@s7Ixg^j9f8{Hg5LzoOv?;NoeWD7bX9WA;aL$U;av?p~==<=o z-UVUcqlGr17pX#C)_E+e8xd#RKZwdiWOGp|!+(p8eo!mIDEfcvV}f^G)>R_Ul<^4u z?m052V4o-2e7wVt$1(ygI!)|0kqxlMocA{?G6u|Mus8$!$t!x3*1PwDjc4W-HW`D) YbIh)L+&jjWQU2($jUh9_PNN=u1Hj%$J^%m! literal 0 HcmV?d00001 diff --git a/bin/jake2/client/keyfunc_t.class b/bin/jake2/client/keyfunc_t.class new file mode 100644 index 0000000000000000000000000000000000000000..2e50acc379ca929c83788a48101e5c7a92d5f072 GIT binary patch literal 315 zcmZutJx{|h5Pg@LhK53+5{QwpWgwy}6$=s)Qh=eTD{{S?Nce*V--e%d%qQ z3Eio6)*ll(qw$=ePMRCe&_S<{6?6%M!aBYP_a(Pix~!QnEE=Qhxo&N&e@W%<>;qx9 z_<#EmA>}7F!OMW{(b-sZe@XrSFFB#w===m1`e?%*#8koTn7}efq}5{5rPS}z5tZjLjM2& literal 0 HcmV?d00001 diff --git a/bin/jake2/client/lightstyle_t.class b/bin/jake2/client/lightstyle_t.class new file mode 100644 index 0000000000000000000000000000000000000000..c3ec5a1aeb8a6f4c42403d7e3a8afadb38fc136f GIT binary patch literal 363 zcmZ`!O-sW-5Pg$Ro5b4I@9M>y_F$k_#f#8`1f?j2;z2fXNw&rW(yijp@*skUKfoU) zPND}d9%kRXc{?+2KEK{R01UC=!XRwV#GM?5Nv>p}!(64Ap6jPv-e?yVp)(T?BFsgR zh8OWnCYoSYX-qJ#M+EyZQ(6*;bLUtUN}sU4e=s3fr{%5mU}8By3tkI^l>jyz#z+Po~p_xGYQ5&1+^s^-5%OJ{0M*oppictr3n%SDyQk*ddZ|JpySonw#pntZOo z$jdn+xL9hCYGcfOW@oGt=J)zH7VJnC literal 0 HcmV?d00001 diff --git a/bin/jake2/client/particle_t.class b/bin/jake2/client/particle_t.class new file mode 100644 index 0000000000000000000000000000000000000000..9c083a7bff899debeb72b27a64d54014eac8def8 GIT binary patch literal 1176 zcmZux+fEZv6kVsK3>~JF7ATj32o`9$4dUHaCC2yxevDsWtb5Lk%#fHSbEf;Oz4qE`@Al`PZ$AJmVo5@Tq5oJr;frd`(7EZT zr<(2PHG}Ut651HLkF_&RH8k^3-K-w-n#0glvkc2#Id}N7ZENQYeH8&RbxU=lD~*E# zZWkFk&$#XIw>~Nppw-!24{%umKnT=pVu4YmCYclqeOyD-FeCo%@=kU z+E%T79!Cm264DImYnnFgeQqo0MIS?=Qr_OKtnICBJTEVAFoX)Y@&&XgqaTA32B=-n zo`$0vYDKRq7($jvO#UWlmSHwu4s-@Ih3i4T=QtQf6vWW(mKjxW6Ju0}C_~OL4Cc$B z{Lod=CAg(PLWlb{p&$-f#uN$?@(exKTK8%yn8pl^M5|w!$dJj0_^;xEeNI6q6ozC) zH~B{6b(P!xgwhqOrWre$t-BNRgY6|T3mH)?Dp)`l&BHm;>(m4}@Za^K1xePqv+6F> zOU>YpL*tL-cguyHC|a!+gLL{Y%yb4ui;>uJwA#rF?bI*Zd*~A^*Tci;5BC*ZP(^vm zYS=ZtuDiRI40e6qwG3lqW|V#zZIIpJ&|BQ~Se)drILQ@(=s*Hpgiq49SBTIPm`W|- z0^OI$G%=i7z$I=pF`i=hE;o_8!0;DLHZl8|pb^Z|Gec#7aiYwj4-*){Bz;Dq3IvFr ztn`bhbTW#^roZBLK+!IOUW(!Ya0hn@7{@)_r--ZYh<)Ub|=Zi&8}=GsR93# z43qoypXa`Y?0ux%Zy?G4uP+k6!?e5LMtXtdICdaTLX=6q$+&(N9Fbt156A zR!4lwqm*ZZ=v{9lV#UBd(|JQ@#!$YHi5fC^Lm>x43YPo%w5tXYO=M<7z7{3(N;Jto>$+qfFp|2KeBy~y#RGAYwJ;fmASPaU=_;@D=nFcx07*C6dyRf3qzxo$2>jb zh1A?ST{V=nRCDnKE`N=-uf5MFMJ!IFE>XV>9O|FME_E)^*Ea~u@W`T7EmkcqS**b~ z@xUStZa9r?kcKw6X5$U3yMdd=zm5%qP3zypEyK4gzm09fcPwZ6k!YTKl=z&5xT+s<7&LXt8SvrnaM&% zz(QMIN;i~o)BSSZM&Ag?)MG_3?bPd)Qvo@z)i*&hhy~noDklO;yVz9mG5z$6mPRF% zS#}QpHu8*CakFZlpMEW7R%IRfS#`r$@J^G$8sQ`Fe29*ySD4no{BM|CGg4NBN?JG zbogm!l+E*|r2b_bwmC;Or(X&?-R_QW)TOjV8Ryh?EcUwr#bf>TvFqRbB#M&Qy|O6d zAT>TOyXpkBb(i@)@|WNa$IEb+aRpWx%dp0H5AHLrr||>W;P_!${|Fv)`~;pdK7;3s hFVegN6^=LICF3i2&A0_F;~RKOClT}q0x$*d{s3wL65s#; literal 0 HcmV?d00001 diff --git a/bin/jake2/client/viddef_t.class b/bin/jake2/client/viddef_t.class new file mode 100644 index 0000000000000000000000000000000000000000..dffec82f0898df3004582b7f48a3f0e71b1514ec GIT binary patch literal 312 zcmZusO-sX25S(rEp)s|!B7!$>>cI!SDqaLZ2zpR@m6v2~HpT?vYyDlG1P}fIf0Ve1 z_2y+~XPDic{rdj+1Te#Hhyh`*v`;)UStVRMvywdL#|Ia}BTP!WvZk{2!rZ1MXO7^% zO702*T@!+WWl^XYoJ%e4f-pQfo)f&wCg%u4#4$FoNf;+m^Ud-(<@VmD6%(dOli6x+ zTj}^(^jsk?g#F~-L}!HPu35GjUrD!O^cVHCONm41d3|f3=p)dM5U!EB7|J76jUp-f dC-2yL>jy?!gI+wqw)XL_0b@**5q5gl^apG3K2`t# literal 0 HcmV?d00001 diff --git a/bin/jake2/client/vidmode_t.class b/bin/jake2/client/vidmode_t.class new file mode 100644 index 0000000000000000000000000000000000000000..055bc66b1ab07b4b82388b26d0cac8e7484f6f3f GIT binary patch literal 521 zcmZutO;5r=5Pe(9cLfANM9_FqD2YvoH;oq)lO{wD7_O$Y8(1u@DGOfxOCA~%5B>mu zlySBgJ?LR~-t4@c_hvpm-`)WXaF~V0(3m?9d|Qp%)C{DNQE10N7CD6)2J#!!G*Cc}p*$1;zgaCN zJi2oxK8aR`q3if#ClV_Ee$?emEXfDi_-}riqc93rk;|`z>QVaH%&8g~N2HyiHR^Q8 z6x~pkl1PS1w+KB$BRepr0+3l voY0V6l+Z&BCe`{>1I{*`u#Yxnim#j~y;kByOOSG-oVL_@s24+rG7Se`MG0M6 literal 0 HcmV?d00001 diff --git a/bin/jake2/client/vrect_t.class b/bin/jake2/client/vrect_t.class new file mode 100644 index 0000000000000000000000000000000000000000..385ca425a28de4fdcdd1117d19193067e4df812b GIT binary patch literal 349 zcmZusyH3ME5S&f?0OODlLi%(-!AWU}XpoSQEGR%}(b+l0XUrLy%Y)CNLZaXU@==Jj zxsqaUW@l#~xBL0}1~A1qM29dcDip%T~`Ygp^HI`7(GHi(MH{^ zUQ$&*%CuC3VNzwXoXc7_xf4B`>o-F5P_61r-RQ;`yTdPG?W5Lp@(U$IK>Yv! literal 0 HcmV?d00001 diff --git a/bin/jake2/game/AIAdapter.class b/bin/jake2/game/AIAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..fe5432f1a0409ae66f8a3f8b6a69e27643094b59 GIT binary patch literal 321 zcmYjN!A`(}E-`92Y@&_^p`DtQjLYRr>=VxxLg=JL#)~OirN9v7(LV0Zo4j85Cj#mB4SIW<)U~gps<#N1jGbG;xDr74zSSO#db@00N=&m zUIIiD|C;y^zKNGJ?P92~o0-|~GH1^D=Gz~?zkCBQfdvgQfy|DzDu=3B+^QpMY4qW`hHC=-?b_Qx z4BS9JRr{=0i+wv zDbq^IjKJu5V$am)L=roacO@WPjzxCIYG~QJ%hq1har$b|sM&JCRXv$9J*TLO&xWn| zb~UK86_#bV9T34-^nF<~t5&@(>&Sx0{9}L^2YZ~h#;-}PLU~4xkowRJ>zwswS^)_L zFVZ$zNnAT*`h~QHKB4mG>50K426#q>bA?0aE>#Uae*qw2`xXEI literal 0 HcmV?d00001 diff --git a/bin/jake2/game/Cmd$2.class b/bin/jake2/game/Cmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..cd7828a1081144ef9a2ac97dd4c008b9478d538f GIT binary patch literal 1158 zcmZuwZBNrs6n^d)wA3Onc@uf5in8)H9lpUP!Y0$We!)-R@4sd#SUSj>iNeGD18(za`dD-0cRy~GgBdKOpEfo>I@=wj$C*e>6yRra{Q zZR|OmAy)8A!zmfQE%q&AG(4~a;k$Z&ib3MX+^mI^whu80{R}rRN2$1l0lIt5FPjY@ zc^N|tadA#d@7oS{iO-6*thF*}h8CEwzOUPZ+nj1kTEzU_wl z41;lkcw{6T!!0L@Az8~Qy(D3RA+nnh5H%HdajyyINF2!P*N-Te!b1rUE)@T-ZLX+d z8gT}>;2Bnq;4uufyK^@qVTNJ&Dw<5qb}a78m?ND`ujW|pbl4!SDbTSX>M|x)k5oKH zlBgNgDt9f0`F7V_gWk%YlJSIrk#;(ssd$bT1UdAYiZBes+mM#AOhKXsq?#rn-C%!N zOa&>d2#l{7I^(+;y`*3bSqT~Hjw{vKtL>|JEy|wu+I>NYNj*1{26)i9}vT4j=FqpRfT7?;1pgnqXT*VknY- lf(Yd)TQ?#-e=sLuoG#fQLxc_$XpYho0XFGZC{)Nr-#>vB`(OY7 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/Cmd$3.class b/bin/jake2/game/Cmd$3.class new file mode 100644 index 0000000000000000000000000000000000000000..5a4c2194698f2226c265df1a4e99cd621b8a9ca3 GIT binary patch literal 904 zcmZuwZEw<06n-vr6l*6NZfuHfsFRf`RGIG(6D69E?9H%{_{m(#9V;s>mO}Q;Fa8lf z`PnZU(ZnC%ukeQ$^;}BKa5T9+J?Gr>Jm;-Het-QApop@H2*X^PABm#b;vHdDI?c6B z6$-<0Xnk*aosQ?4$5L{)`7U6Hm2KA!o-;&^T%AFwcuk=piVHes5MxMe*{;~>cN)Uq z=M6_NB)2?^J9X~cQXd6wr)>r$>B#|;LS(U8C`9c#Ev&E(y#aGMPIX%Xi@#-&sG z39RcdkYk7kUdX_(U`);H4)QAQGR#j7wc>Sj6lA)wJ?d+4AUk?b$9)vT?pdQ5SL1lV z5LwqKcbiU?VYU`<>u8&I$FtOGUf;LGYgv+#wp@oMsAJX+UVL26mni9T@NpjoF$F+;2*#T zf|Za3rTiJI-;j8l9%6oorBhr_W=?SP1lb`rJ~Bpj^V6T7$xTuvQIA&H$Dk~WaIq)nZ+7@VXuB_$1Q7~6w0$#^EQ z$5HsJhz$!iNL_%0C=ycEf#xGBAvUNIYgR1SvW5k)s9Mgm9pR+0^ya<$?tSN;`|~dk zfA|qVFS06{1e)iJd9ycBFp6d(Rm``aQlSVOs@*Q;++xvn63cQoocxR@5IAEwmNz8e z>+G5oP*QH*)Zjx%haUlfeHqI!$126FS-NUuZBrneadU<}X_PD}*Dn=s)+$TgPX9>( z)m%1n6_2pZ2&>pH@Wgg29S3lbzK2VNT$M;Vh!(O=RZ1n(@uG%p8Rcl5ba_zIa0pMS zcv4{h_P|nZQO98%VOW<-mgBuG5a}ePB_m-QP9ZVj@wSlcnhfD-L{+p2?5!bOvfZp< zmvuaYV*;UEF+WrFD$v>(67Q?mGhR|fJC!@J&sQuvZAxY=|6l9qLN_CJ zSf^Unc2Lw1$4M1E)rxM{=}6!?W_8K1E9N*u>}U*eJUeIRykytoQENDkURl*6L7ZZm zqk~a-)vx0PyvU3h3k#-`7wBn(+sfEuaP>fwGSWdENg0m6N=bsgq+8!?KEaHzSO8#rKHt53> zb>%01A@$!p`ngg2dR-gqAsLx7AM*u#h&Fzwn7Qi+VVXI56A|3NY3@Uq!C7Q6f*eMX z#}$~EfJMtWp62z>% literal 0 HcmV?d00001 diff --git a/bin/jake2/game/Cmd$5.class b/bin/jake2/game/Cmd$5.class new file mode 100644 index 0000000000000000000000000000000000000000..b9970e517b8e4fee9a915e136a95af0c65945152 GIT binary patch literal 470 zcmZutJx>Bb5PbtD2j?M(U#N|Rg<430vC`NOH701Ip|By#-3Au!cH@00f57P9F%~8k z{s4cJaSm)mH<^9=W+v~=?C00}2Y@CvZR7~mp%}?#qc1|)Xoddvp$&^rpJwko6NW}N z#u*CjcN0S4SZS4<5b`^_9fH*|zI2dB$;BKBgi2d!d6kAe8Qq9pAPKd$@kG!Ok;?c_ z(ns1=AfmNB-#`|&RUIS$^7xy`Qw zM#?gKZz#S@$`0Sor0o$F7w4I~(RqCY((R!h#=mUlq9>}yz%EETH*=|kzJ4T~X zykLkXJ{X_76;`jJudcdUBgJI*L4V3fmrygHSlznxp| zf6H{iK)*omztDo?tBUdx=tI)PNel|aEyv%Gc7v#7Ug*FuMh%Pz^tUj$&&J%Ab!Fld z##mg?D1nhyl7VT<4l1f|`MD09!C3?20z)k@Z80X!;e1e(Z7IiR&4Zh5cujkVbpcZb zCd1bMeWuDEzljv41tK*kL(A+bLiTBbf0)p<^(3g94|@t6*IoZ1m55p z-eLvsa0~CTiVt{zgOKBDlgAN9GQuS+guILV2QQFk9Cujo6=L@yheb*n5mU%g(uq5O qtCV7tfI&olF@<437>M#G_<;~nT&FvN8-xG>mbfo-C73GcB){KXLFFC* literal 0 HcmV?d00001 diff --git a/bin/jake2/game/Cmd.class b/bin/jake2/game/Cmd.class new file mode 100644 index 0000000000000000000000000000000000000000..f577798af88204e3712c3bd1723b4214174f3fe8 GIT binary patch literal 21704 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 PBjz=#{2@4GWTF2HR$oZc literal 0 HcmV?d00001 diff --git a/bin/jake2/game/EndianHandler.class b/bin/jake2/game/EndianHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..1d41c053241460807c53781031bb903747ef4c7b GIT binary patch literal 1030 zcmZ{i-%b-j6vn@4OIu2TEnsWq}6<2z_%A3xy-3JH9svq!;W<_sov6>Xkse>Ud62 z7l6v(mwM0+R`qy1rm&D`Cdv!#jqj&kw8?Gwc*dig+ z<8Yf8L7Xx{ErKKz9v_AG7%de_K{-~Zz&_RWr~+5RP&c8s_WiP@f(d1sK!%>@h*|MOvV)gJk$_b zlSogQ{t-g0Xvk5u=dk=2#;EMgTn1O4syQq9aVu}lUR1SS(|W{K{NIp?U-B?6AQtJ>lq^$l@tS+2Z5Zu!K7MKf@zD*K}pmS2L;Qt>J;D%c4mB zIIAvkvQ>UXxsVDMWERq;N4?UVADCLT08t*Z TP@KCqt*5yp(^?Qm4YvLl!)vJ$ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/EntBlockedAdapter.class b/bin/jake2/game/EntBlockedAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..37b099348fd927c0b45347ab9ba99cd57e23a4b2 GIT binary patch literal 369 zcmZut!AiqG6r7i)O^wxR4;4fNZ&krSuN6T>Pr*y2SJ@;F-8N0iy79j}6+H9<{3!9Q z?IBPvGy7(S-P!m3^R)snL@$6xIGL&$52IH#=jfrZcX^r4IJ?c%!mD*bYorcQ#DW6JgX#ULN6{;l~0t>Zr+H#ebeuR z)42A~R+SMUNY>>DmxFqiGo9KOJNi#^y~1%>nUo*3YtY}i`D&^@lz#^KhU^9K!@X8O literal 0 HcmV?d00001 diff --git a/bin/jake2/game/EntDieAdapter.class b/bin/jake2/game/EntDieAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..a3cf3d3aa371e9763b0387035a7f5a40e528c180 GIT binary patch literal 376 zcma)2u}%U}5S%>@PEQo1(a_nUg_qD`NE9V8x!7Q6EX?C>ql<7yp6~oGD-#Ppz>hNS zA;rXX1K>hSQfTu70iDIBt lq)f{7vk&aNujNp&lz}ex6q|no%KIp9cYv0532j9WhrbV`SJ40f literal 0 HcmV?d00001 diff --git a/bin/jake2/game/EntDodgeAdapter.class b/bin/jake2/game/EntDodgeAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..4814f724d6206c07ce0ac043f694ea1dec3ebd5a GIT binary patch literal 362 zcmZut!AiqG5Pg#-jmBzg5rpE!TNN?TYekT1Pr*y2SJ`HVy0uNpy79j}2_F0aKT4d{ z9zyZ*-p+f&%-i|;{`dqiKsQD}=q=PU57N0>ae7y{+fvW@Mys`B8zUqf*ZfJfX1g&7 z%_~zFcTH&Y&!&WMRBBGpz-|i>nuK;{3cjyaGqw+Ewq!y#D|5A+Dr*L3khjRtIQ{O6Uj%IQ#(^bW=M3 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/EntInteractAdapter.class b/bin/jake2/game/EntInteractAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..c6f829de14ed188d379417b0e67c61bd9e7e5857 GIT binary patch literal 373 zcmZut!AiqW5S&fZrp9Wumx3VTtyM74Yef)I5Q3LV4_;)OEc$Ajl;?~8)sx`C5AdVJ zjph)jmzmv}<-OVc`u_L?FhVbYM>w4Gi;SWtUP^SGx!cT%<-}d4ywWOwPw3Z1CdEo@ zWfEHFCNu7W&=?G-1pg{eB}4;T9W>D*bYqjrU9p^rz316N2)#H@crj&b%DxhP_iSDX zM{(_=%`9U=+f?xgr-S;mq$Y8XZv3A%d?19Ays(Mfm@-3u^X;=azp;M|-9&E#cv|TO pih*{KGATDt-qBwF+M!};0|(ev?EDQV@1VTdF1o4`_7pwr{{T48SYQAE literal 0 HcmV?d00001 diff --git a/bin/jake2/game/EntPainAdapter.class b/bin/jake2/game/EntPainAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..0703467bbc2f2220bb791665a7ed1598f95341f7 GIT binary patch literal 359 zcmZut!AiqW5S&fZrp9V(J&1bpRs{|8S}BOMAOsOAy~=B{=&NlKo-h7aPl5+Oz>gC5 z*&b5xGP66g><;_=^Z5m!k8S{ua6DJ9+>f5slA}>(AC%5+QdL+s0er$y#h#P}n~h0m zT6mWwh%zqHkaH8{ssr z9NNw?kmZHMB3$;WQ=IC=KH0&4+W5|83MYAK5*}-J{cwBh)m*(R{|u5}z5#erNp8VF mx=5IW>lYtruKw&$(AmHVb_HAO0pUHkPwk^EDxo9j;oujk$Wj#m literal 0 HcmV?d00001 diff --git a/bin/jake2/game/EntThinkAdapter.class b/bin/jake2/game/EntThinkAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..35091711d6e5336733fa1a3df53170af8fe2af57 GIT binary patch literal 341 zcmZ8d!A`ORhN>R#MVL>1tE&V8YExy(|9;5>{>pJb6h-!BDDL ln1qAtPaJ*x$&p|s1AUwbw*C#mr>MT=3~lKW&ILVmegRDWOeg>V literal 0 HcmV?d00001 diff --git a/bin/jake2/game/EntTouchAdapter.class b/bin/jake2/game/EntTouchAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..a99141bcacefdf4deeda60656ed9e0b9c196e96d GIT binary patch literal 405 zcmah_!AiqG6r7hPjmB!V2tx7Vt$HxfYl|R7Pr*w|J<4{o+O264wwwN!C&7as;75sX zwTF<4mzjMt13T}1eSdrc7@`-#BlK6|RSn}8u~zY2Zf8X$m$#`Xtui5e!dcCqR;4mK zlh7XPT-zH$Yj8Oy_>&@45n9;qAV8bYO?0jvs`WydnOJ0s&`Sy_vbiwY%{$SzOT8hS zC$*0nMMi|cx?+UKK|QBZE$x#X{in$?6S-;x<)$*vLOR*?kETUsq`KFx>1m_E^-64o ye*s>WZwGk%;w2eFo?>QV4zAv@_x5W?jLru7IAHAj1(*-v&U%C{tAt}l4<|oxA7h;W literal 0 HcmV?d00001 diff --git a/bin/jake2/game/EntUseAdapter.class b/bin/jake2/game/EntUseAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..0266efe11985956da98657667c954a7c12198c38 GIT binary patch literal 373 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 C>gEM zg(eV*F+PCLWQ=!OLP|oL&fVL&_ndQYPyhV;`5V9@-kC5M20!xyv6!jyy2xzMv09kP zW=({z->eo^EBsIipP_R_dQ!b)2qlswhH$=75mAH?vCx4|hMrC7iLImhzVP4keOEB_ zZ#Eq6mbfo?O>uJ9aUC2J6Vcg2qPwjNlF{rWr2lJ#EDOMqJBzzH(_XiaSOL`hk=pm z@oPn%lIpY^D6RzYMKFoGCZ-tT?PS-AEZoC1t+L_Es`NF$(;he$JY9qY1FenLZ0LDJUhGZq$* zr50Hc+$}e68IdmGv57~7-6C~dDLj=aT6ltGhFGzjuhHJcu0|WVald-KlXzy~d2=MH zc156pS1h~$`6OB_pK$k}-Z-WoDt;q|Z6`mHl>*^@qEL|m4abfdx_1!H215qw`niZYZ|B8>UZ3Y-K4QVdet44_bYwseVE$GX~IW3}Mz7M%oxb)`(--7=vw$H)YMW zs4r!a2)shPImrfIBTIwyVi~KLCd@a4+y(X*wuwCDYt2E|VN(oKCs3eIl)CjM==C22 C6zB>7 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameAI$12.class b/bin/jake2/game/GameAI$12.class new file mode 100644 index 0000000000000000000000000000000000000000..09fae8e134f96057ba015acf013e5b302bb2b846 GIT binary patch literal 4757 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 M^5bP(IAH<)2VsG$WdHyG literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameAI$2.class b/bin/jake2/game/GameAI$2.class new file mode 100644 index 0000000000000000000000000000000000000000..c4ccb3f519a860e2d0f5069cddca5d7a61df6a03 GIT binary patch literal 778 zcmZWnT~8BH5IsY;EL|3mmJdNxRMb|YP3mKf2|+Y9#TN)BzBIS(WxIBJ*X&;OPx+uG zM&pA&z#nBi+ZM9ICOc_qGxyKmU%vq~P;)UOsJvH0-KYm@r0cI}_F6j)7mi>v z7dSBXco3T5USEB%IuXo13r%RB3kucRiNM*9``SYRB_Bo13YOZT(QnR1U7Z}OZlnd} zcHC3ZiAuuEpZ;|0AWQ|T?Od(%CYpj`pl$1gV5M4P#z$3;lnLrbHVIA8oWrtU`ICx< zqu8YEs*_rkSh6T;hJy8KURL+Rp6%FX?Oh40Sa-2T_LZ_eu497*ugG?SSg@5Byfl+$ z2{&-l#TJj6lbx3JQO1Uc+qmOm`~Qr?N%ubPq9RzhbQmYq(J33sS3W= zedWgtJX((kQE(WXr|(aahzs-ti&&z~1RfJJfkOG(7s7;|sYALsYT<%fMrBHU&1{yz z;_f%Be8=YQPuzOze7;aw%zBkmxDvpZ!B}l=!kDU&i+k9iUIF*Vya#wlbhvY%%GYBo HYmd)AJaU~4 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameAI$3.class b/bin/jake2/game/GameAI$3.class new file mode 100644 index 0000000000000000000000000000000000000000..2e56234c04f4594da41b0b5ac96685f5062db5aa GIT binary patch literal 1691 zcmZ`(ZBrXn6n-vAy2)l+XiA~bYNOUl8X*>{sHs(;q(+m{3Z@p+c#~W3fCA%=5Xyd`FH zHgAjE9Xb|@SLO^v874!DWml~=rQ2F)@QxBb!>OCnmFgBlWGYi(h%R{zVIqQrg&0mT z440%U?snTX;ji(UBN$R8ug;wc_ocoMK1Nkj1`Ov*p;!k=)~9O`ONLfiZ?N z{lIlc3RmUI7A|0d!7NvIxYKHT+m!gkiB1ZI%z6SB@rHp*$3a}=fw1r$@UDR?1YZcDK_M2d;ys2$-Qhvtl2Z-xQAc?b z8DtGyV;DKAv+zEq8H{c2bj8Xh!&P1C0n974Em0@5LZ1f6n@A(48~p*bE^IQ;XDV^b zGMr9JHywD6Y^1qLYoi+$KEy}F9^UB)x4|%dlJ&8G12FO$jgKvSf=?M3(dHt(JmfC* zPpVx_0woC61a9J%fzPOauYF|Ub9_PBc)qlyORd@{m{`PZ151a@=ql;tO0s5Q83iKx zw(=gnMx#RnSDU)r zZ!D~0jhej6cd9{02m*~2q6>cjTK&MncX&vI-IijfDWu(0q%WG-zz+t#f0Z`n{+w9& z5mjQt@v(W$xKwl`ZlTtT6m!Kj_Zb|lc#*8K}?Ve?~?sx(1 zh_X;kuVJ9Wa5e;b|22bEbY0;u>G2T(^^CR|Ek^WC+G2D!=r%`^k&In?j`-j7V+bal zCP^>{QBo%9ZuK9LJWV&^4~FT~4yH+J2a(jsUnKhG+B;Y~WEwd%B{&AAFUdWHK|PyH z?ql>Zu0O%#KS)2!KE>Pnn0k(x)b%~g(RKbQ^7~kzOX?0CdnoRqlqALd-yS28O?~?e z_p>7t&rr$kW1YVL6#MmeB%hG)J=hPTf9ec-mCfj+n1=-G&;ome8zkphK%=5)1iC1( z9o%EP#D<^2*)P2k#`cQ DciE9z literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameAI$4.class b/bin/jake2/game/GameAI$4.class new file mode 100644 index 0000000000000000000000000000000000000000..2bd6c78acc72a48593e59b94b5f59620ecde2b94 GIT binary patch literal 812 zcmZ8fT~8BH5Iw_gS-LC&+wvizprW=^Y=XSim=HwMr0@d4kC*1s-fq`!@0#6G=rE^^#}{4EURq$E#1_$@~b@NuwY@HC1tt}^9~kql{q?r@K_kt z^SFlV7M2OKnd(%dgBw`k365%LdLdys+kIqywM4^B2QF4@+{PUXYyYd+OONE>E((OH zkrSG+3_3iOY=?{U5$uETBx=d0elqpRROy3cdc2ig)e6Fxr?)3{H*6D}x>7RQ2}B&r z7^~og^4-9|@*+95IC{vQ*yq-NVB(BF#$dCx*@NE0T?$XwL8lq0aS3%%7(!pL7H)&Z%FFL4ny2R|R=#2B9IKU|xb@upa>?hi5YPwM r^pUT|C*JVq0rz~0A96Dj?xDo&2Fe5MIx6fA@SbqKi&#R+! literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameAI$5.class b/bin/jake2/game/GameAI$5.class new file mode 100644 index 0000000000000000000000000000000000000000..d165c8a85b942590f6cc1cbd4a20dc57dbe4ff63 GIT binary patch literal 966 zcmZ`%&rcIk5dNm!Qo3C%lwXR7il{9GswjG>F=-G?6Yv7T#7pyNAKSIt-DdYe3 zE#+B`SsKI$XZ()UYPpWjQ&oK>JXJMaZe(1iNtnz2 zZ{R475mNU=r|P$*tP^NmE58MTwrK+=FhkG}EZJ#D%WNplS9F}hY!avcMBEG~GjIlT zgyDY&{m+0q0n<4H=etaPTXdW~TbO=|S@H(vQQ*7v(RdxEDLq*a7eJVfUivTTN`Xp? z2C^7s*?ej5@e-r;{Us5Gwv?zfH$}TAmcHfgdo{Uk1#+fCnU(@sSnf5aX1hMivME)= zttYWU7>TSltR@&0$C2KuEqq`4d>MW~{1(x*{BSrq6tMp(pth$F%gWY`7(i|hk{cy{Y4`_Io`0M@bQV1!V7E_!mk=8L|pJ!Z4f zSh?rGCd_97TiWb(mF{hH#0w)M!svaam3ct0%9VYBy%~0-3k!Jr_OYkn^Q!JS3FL70!4mYJt#xZP!Ff`}HwQ z5vJl-s^1TF%&J6X zv5c_ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameAI$7.class b/bin/jake2/game/GameAI$7.class new file mode 100644 index 0000000000000000000000000000000000000000..e83d0cf9ec263aad0d82728efc8acfa3592c4268 GIT binary patch literal 1009 zcmZ`&(M}Ul5Ixf_ENmB%LWP1TVAYliMNm;|Oh~n+3H1fUs1MDhy|&jbTe5o#@x{OJ zfiKWRqhd%TKKKEClySDLW{J4T&g|@+IdgW-?9X4{e*joU-b92j`bsqAa;`3RWbP50 zwNh%;gh3b!9juksYGPMQkI;Wlxk}$BMAMlqf>CJIq=hI3ZS# z?MOm=y;T*?mhe;%_g)&hp?pGOJ=En-`#hnqE_LYvlSpScV^8E9;ns5-+EZ>lKY$T} zDO5$bJ(my>iZGE5BgvYo>Wa=6Gh2g5VBEwx<`HVuORzD4B!QU8)QNgmEB(6SYoR5> z3}On?Ce9O*VT=<=HZI^IkB50WlJO!hiWX*Z$;2GtOt-A+DCz24*+vSN30AqXFP!F1 zYmcXtJpBWTndcU+B4Z-`uU1dAa%{{a%UDI_);5L5b0dtOiWMNuV!_5Da)em9QfM$) z`AqEpw;~YOm(EKT;>37*1Aqng0YEf<_6xgid4LXjA1aOhEsbNeSNevz z1f1qlv9||^XR}8bJHn)~lsd-D)9f*>9Kbkae=Q&u?GT$}=AaM!w|qo`KJi|C#xxyb zmcDkn&2$la-5487xZWW+$G`0g^Si-V1|kWQGjDbn-@oUKXU`)sqLjrzq29x=Lyp<<=uC%6ooAJNW zWQk_R{Q>?_##@S}7@Kepx9{F_&pod{f1O_d*u{>89AV|XIF`HaSWKk*ft&|=8Q&u0$5MBnv50zuD^7*$i(u^T>qrIT)*_Y(mQce&YXCM;*x zNvjD?Hwa|3=ZiR&F{naDYIdg_g9~31Av1mztXiac~y!x!8*c* zIi=-=UbiKKhG=<`ke~D0!dn!9GWOtOI$BmCVar_NmUq{e37I7s)y{Dfg(63+ijpVv zQfVOylwK;Y$0mX$RP(0rI)ovi2-^zDO43#Bs2P>3#YG!iFlu2d;gk5Pwx^_yN_7X@ zFhX$Z&APuT8~&^>JR4)!X<^65W4RJ3&%vkoj9^!lb{it#773&OdvEcFEOz4y3!gLm z1j0dI4)$Q2Fx>TZ$U{~7x=$EO0!VlmMiyV8U|}!AOcYxaoQvQT?-AurUd#pnkib-S_ade2tye%uec$8!01bUb8K5|9b!$aGZPQ7{w^Pe zV6(JYgPtPI&SAElIEZzQEq)c)z|s`h&)O77e}n|y$8ubOiloIl;V zhcgdQ&7Z!}`V~ii#@K((H6DXC)yFzvBt1ulUc#YQ$kA(z(r+lx?>J0<;0(RNkMtH1 z{n-b!J8pUah}*{;>irq?Z~;en1oK?mLMrz+=C^Y2#r|9_;WFzq7Fb^4zs)ITaQyoh DD-=2$ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameAI.class b/bin/jake2/game/GameAI.class new file mode 100644 index 0000000000000000000000000000000000000000..046721383cd0c98d84294fb08242661788edd3a0 GIT binary patch literal 6203 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 JoTl4c`hNh9se}Lk literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameBase$1.class b/bin/jake2/game/GameBase$1.class new file mode 100644 index 0000000000000000000000000000000000000000..da5b716c54039cd2a2e6297d1125ded1d7e6e19e GIT binary patch literal 728 zcmZuuO>fgc5Pg%lH8Bn?X+xoWrBF~)5E11V#DS2Y@Zy_fZiv->4(K)rr+ucV5suSA|}G z?86hRmQvfpB(gh+8SW&h)wy8)X<`!lOil!X&$wz~4mS|@cA(qh;1Xks-wuUV`Y3Eo1tl*lDtAfRUb0Jo7opF6UQE9Oo zn=IEoj*Y`~63@vI2y@H-Q_mDTs}HP-j`q~s*-(N(HpwH+QM0aoHjYP*nuFaoQJNL( zbWht+HuSMBSSs~-h8Kjp#^}74s-n;ZTHt5#=Ya}0KZ(B2+Y_GRBAefE;qx>d&;|}B z@8L0dk$!jz;#sFBxP%2-N1%vw#El1Eu=o>m)f0Dl_!U=97_E{CL=zz&;LAtUESNzJ??;Tr=9B$T8W#Y literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameBase$2.class b/bin/jake2/game/GameBase$2.class new file mode 100644 index 0000000000000000000000000000000000000000..ca0d57236d9306830875868e588ad9cad07e9a86 GIT binary patch literal 685 zcmZuu+iuf95IvKcx;8GohC;c8UZkcVB8A6PJP@^2rNB#3A9$&@&MMi~S*y0wuRweW zFGvWaKJ)|lDAcoVDlCeno$<_^J$q*6_n*rv0Bvmgs0r$)>P)v=12xjEeVX?w*Bfmg zo?x|7+U=XT*fX}jXOco^g6SP&P4P}JwbeWlc-^$GLrfuva1Yahxt_85<9KwUvrp8qMF5F#rGn literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameBase$3.class b/bin/jake2/game/GameBase$3.class new file mode 100644 index 0000000000000000000000000000000000000000..8d41c400082060c5bd10079c2e65df30c3865071 GIT binary patch literal 651 zcmZuu+iuf95Iy6#b!!|_(i^uzfl8zx5vhGbMMx!(s#3U!R^g!!(KZ>S+a|k~z0F@B zeuNjEKs@jPd=z5VHIPbJ^32Zd%-OR)e|`S}U<(f-1cc>Nb;euGp&D~@Ps|II^Tu|B zknnJ-l#cC$dv4>M)yB1~aco?^J5Z_Pj4=C58||JGDvix9A#B+J$EaXF!3<^zwT?FY z=6rn2*`YcfF`?eEeKqQ;O#8S@hVDe?gw@W};(wfW2-VcD@0aTdGmWG6=6;N8Sd38r zdzqZG31`iNZtug}_nnssmQW)sNPLMtfh-|7Y7^oEd!F^Vtv$EupPf%m)kF#VSEfI* zxi-Vs>`v?;!Y#t$e>f&s!yN(JW9K1uQ%zWFOy6cG>7E{^Hgi3<eBBy`L80(?_>Tqn|_Lt literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameBase.class b/bin/jake2/game/GameBase.class new file mode 100644 index 0000000000000000000000000000000000000000..49faf78d5bb6e4d65a550f4bc6fd021461478959 GIT binary patch literal 12750 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 q**Am>8gjq?jPJCh|ar-Ju=3oi*EO6aSMB znh-TU_yhb=#=HH1m4~@!?##XC-Z^*v{QdPCKn2e&7z~AvyelehoA-qKnoND5yv-d8 zCc|ptYG3JQN2=~CpMTOKVwia$mDDd8QpHk>!Q2gfVIzgCgEVFs78+8CH-p}ph?@K? z5Dd9S=<%S%BN_XXLsNHTpJAnusCCswjUn9@`e2V?saT?zA$J3=+U~KAq-xhPSY*id z!l5|zLq#>xM5nsMS4&@yljx$ac=9Nfh^!)!}ppw|*e=jWz~svNj=%BbanKOTIG>BAg?SVIB))V}hrIF+nPK<14{9J!XgT zHj$dTOeF;-sYet|Wl$(zVCg4T2{taUS^kc#_vV*NviZ1WqY2A+hrH1mkuHxDC!|Dy ZC!k+xQ-hp`We~-;C~%BZfg9-ihJl3^A%-z zDuO`_nYhK!8VJ!MELj!7aT~)7p^~Hr2`1G~mY3xN*VDAZ3kyILqZl)Bhx7~}{o}|n zjwJE(^E32as!=wZ$z&2+n))QCR+%OtNQ~ZKdf_Ok-f0F()OgQu+|%TEm0VdCi?)d1 zJ|3EQz|bA2>ECEwRJT@cj^mLpzYnW#<~bIy$Pg7Im+Q%rq!$itXCg>r*#z~)MbUHz zb7ZhWJ?J;ao>ciAS1Gqle1jA&^mHmpm|2czc+L>X(NpKsmR(?&xm2X>%>S_TOc=zH z`Znlx-h~XY4P_PfbJjs^5TYCIp;r(YsYfMtJ_6&qfu|TNtCp3=MTIewWP#Ua{o}#TKjQ1arq+`!1u6;n~2?j=+ zqcxky6OCUmLe@m}=I$A0^{M_0snP1y;}a}>!_)95U5(FTM6X5@8jWVO8!hNH;utVm zF+}Ht(S}*01M@~Faz>Y5YDcx4TB%eRR*|D(*9b9;P$EXS>psaBc+n2=?wCC&)L!RsMhRmvG3a2i5w%Yd(6Tz14Gn`(HWs4yxGbAk;R2LaW zvpF)_5k*J1R&g!p*{)R{#77K9*AYRZ83AO_-f8)4JgjWlX3z-A?>o!Y(>RG!8pa4` z3`*a}z-gSJ$o|fzBP_zps>=SHfpMHCE=Z&qJ6=;b zzJW`)%y4W+nsW`WXIr+*FtAZkv9B1I!d1#d+0MnoQX)I}x#0&QkYVf`@*1u&oQdN; zWMrVA@}!~^9PGuejv}bfGYltVZi@K@uhSHPL3d=1VQ{^%C_2KT_EkTa%tL7Vq;FKz zuS!p@uHzGYrr}eD6Gw8_Y~M6+6Q47T%uCbj$fcjUj_2E+TVgo%UIbC=$_8$$7V%cc zQuN(1@Fnh20Ud8g+U}-D?r~fP$039BSk$m^n2LW53@oY0$&m3hmQmGk|G(JP>=;&BNPX6Fb)*f3%1lq53L2lY}Z7$Kb!iRx7{;k#a7chbTF0I z)ezErFS(}bjBC|ou;sO=>Z4bUy(8Z zomQPB_&5^u@)+%n$cW?+?HGn}oK_WJnxqQAGb6u}h}>0l@bfWO{?0Xn6Ok(;Rzfs> zVGpC)^Oq=)a`rD=Ddh97@iA>C_mCwmGo9cgqx-mC_!C-TA2(hdwaD+`R^NuyFZOUR zxr^b~sN{dc>XToP>7S-{q2>4SSXIiyN>`8}^#am-0weqq#`tAS@<~jQp5s%P=2ubT zSGHClAFcJ#PVfLuMub literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$12.class b/bin/jake2/game/GameFunc$12.class new file mode 100644 index 0000000000000000000000000000000000000000..46b171b735a45626d52d11744f51c49ca31e4977 GIT binary patch literal 904 zcma)4TW=CU6#k~WbOFH@ifyg+UX_cLhz}a68dKY*3H61Fi7#ZjOkjo15_YJ6%NnDJ z4?g>bLQu-Z{GpbuSgDo5C9HW^CFdBe8BPZ4xJ+6kuKNO;aahji*oJ3Q zs;6)TS3PVBti*uk{bg{?B4sS~b~kKy!Vfx)8@T1+rocw5;xAlF;kLlqKie$5;~13Y zFbZ*M^C^&dXnJ;oDe0TwOq!5(wrQl_Ka#`QTGGvMJo43kU>BF26MkUl&(-c}e-K8T z|B*7iu)`J(wN|6ufs7&*u>&&T3&TY6HPH9yJ)#!WiSkz@&uJ_mO_`>K^B67 z%fp%Q$lCx+M_>N1Ki?S{XVDmLqoR z)dNx6GY)LQ&|Pp%!`?S)mfAPLkgQl9!$2X>E5IYo5H1UuUt{QvCn)K}NZE!{PVLH? z<&@JAbTM>E#jJR28?tB$$EO$eF^1>yU}aIVOj(ra|6wN8a>S)X)2r7G4O791{WiqV zuc42w6=2@1uVVm%B#~)bM2AEU_A56~s-kKP>$ryNlv@#oEh`Kxui%?HMled37mldD zqRR&>oZmtv-qtaOI}DMkdm=37&}HZk=AOfTyKy8m#2I1%%D)qIOeiK{Pa2X&If-cv zQw%+UzKCdk$ty? zthglxJ?}W8wrU%mCp;QF@uN=^{z@Mc?KRrXQDhXu6Q2+{rH2+oX^m0@UqXmpUZK6- zNTS$IJBF+1pj8!^qNob+?#}lV8pl<2@a4c!esQ!LJ2o6Lv@mN4pHCWB>qA_)jv!K$xW25ZQYAUQ%?5sGMi ZF~Zkr*Mbe?DTc`2z$X2pR7HtGzh81GBH91| literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$14.class b/bin/jake2/game/GameFunc$14.class new file mode 100644 index 0000000000000000000000000000000000000000..1b3829e97780f91c893aa75d12160cb3e2555502 GIT binary patch literal 1013 zcma)5U2hUW6g|TN3v{taDN;eLS``W{7V1Y*W1?+oNUASwc^ugWi{g}CP&zXDg{`~d*2Y?n{>WDEE&-l4$H7!0C%>xphiEFNH zZR?0LR3dx(u6*lw=D8TY8S)QO_zcNcwrk7R3|h6;V~Fp1Ly>`ow1EVY42y@hE8b7W z1K}U@fg>35hn~ru9`|kK&llrzWCskT!w6c0$qqxp60*C;P^i`@=z=#L?pnD#Wg zlfq4gobO34$?Xq9k_`H#Rj)=msRvo*b!($sBnT-xM8N4MX-%lQ&gQX{Rr~QSI_*9!vA1X9S}-RT}mB z7Ze&(+@4~Utojs>;##io4Yj|NiuA)kJ4I5nP}D{!kzLm88OCauXO2M`(ZtgktqQit ZiqU>+#;%QR(s4W^`GUR-MJf99{060B+FJks literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$15.class b/bin/jake2/game/GameFunc$15.class new file mode 100644 index 0000000000000000000000000000000000000000..228d693151163bd77ed462784ed344e946997c19 GIT binary patch literal 1225 zcmbVMTT|0O6#lkJ2`%9w_lqJZN=t!q6|vxDfHIu{UtsWoht4)#+DMwzWXp^{#0UKq z;xMD*gFnC@<#;wNkn-Y;$z;!E&*j^5&gS=@pT7XC;I)Am!|;24E>^M?UK81UTJjCo znps{qpfij|_V!$P>@}?Fn=-FU;WKn>*{&^LGH9vv34^}ll|>R75+>s4VCX%tUGcV2 zD+&LYmmI;+f8bf%IpMyoYdhr5;Rk@Ri1 zlIz4hh92LOT#{In3L?3*=(|)jtSH--EXv%!bXJ`*h&zT>(D2W=rPS$@1coqTV3^Jn zf!&I4ViaQx34S3Q&$8u5hS+I7feAb?aG#;O>9X&5CGG?!CY5#9g|JqOo^MxdS4E#P zF^xwIjA}E{2H2GpvKY{T6_x~M@YKK)hOsD;HX{?WDn-X_^t6dNWT44uctU0&lA>Sf`-Dtq05)4X~M^n{}m2N@ta@bwH0c9(ilgodgIRE0;qN#+2tP+94IAzbMukZh2&N|X_e&wWSd zB{4B1X-yJ^=0K;-E|Sfr5z%gvXtdEws|v6{R0Yub`@Rxsx~u5WY7tlM#J{(x3oqGX04g91%^`74@Z?iacjiUsfk<1v#?Ct*uZnD!6s>S b#HPnd`-1owa@Y!W+qAx-FG(>}6ng#w-uM!O literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$16.class b/bin/jake2/game/GameFunc$16.class new file mode 100644 index 0000000000000000000000000000000000000000..03de2bfba7703be4b738e5b99975cab91c1f0279 GIT binary patch literal 1386 zcma)5ZF3V<6n<`Q$~IvurBGh0_);-xEwQcQOA)B0DU}wKl&I91%^bK?&)IYS`S;Ji0Lf~TB$Oq zuWEq`JGF+1{jjqzjKczM92sS3wt5Ngk?DDF2@vMpf>Z#tM3IGN}0T#$kFrEYb zUx15C7O@?yRfb!G@F@Q7`s%-M1h|_U=1pSAko$9C|^NaQ4@= z=|-gJu7;tGmjaa}Iw4u^1D74?$;G7Y(3+%Th!PSdYaTEKBHblVRDB0 W=hO@M0=HA&4W65P%FMK#;qMuB{xbjo literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$17.class b/bin/jake2/game/GameFunc$17.class new file mode 100644 index 0000000000000000000000000000000000000000..d88120d6a2462e37bff119af99d5c5696bfbdda4 GIT binary patch literal 1852 zcmZ`(>rWh26#rfBE(6QuwP1O)BHF5Kw`DD8tAZ_svXu%{grWs?9d<9vl-Zfh&QQ~s z7`~~oYNBF7Vnptc&*?Z=^&;6Zq?(hHp{0o3S zxCW{O_FXcUbzdTD=5*pL9my3ZedyQ;10jLVfNs?BXO=8y`ESdODR`;%T7#~{!;%Lg&xEN>SlG? zcMBu7HpwU4GoOsjvRho?2#yMdLJs3$~kH=AydxL>ewBg3$L97fhmEGKvlZJNMV{$H}v8nb(MzY z0-iNMtFjmQVbjwJ&*37CN!HqfH!o(&%H`bx4=&?9ukbuxpibv#<7{55|7}GCDVPRc zssybfl)?hiG`61h%W-0N!f(&Y@kpjX6)%DoEn?H2l`ekAZKFF&GNBc&fV8}f0`=3r znO>eS^W`@oGVQJu(mHAJt5Lr@oV|QadRIoBwC#Gd88L z@*`;Z2^{$;eEAt(k)LB#eu>xQ2Huv}u_nL5$MS1jm)~MjeurP>_xMBJz@Ksxf5{*5 zx7;eWWM2vPa!aTISb{}OxkQyUK(&QBTB=(b>RO}i9aQOZv8^_8L__qF0S^5mWY2x4 F-+xEZwh90M literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$18.class b/bin/jake2/game/GameFunc$18.class new file mode 100644 index 0000000000000000000000000000000000000000..ec7364b098320af14aca7be55f4b2766e41f09df GIT binary patch literal 879 zcmY+C%Wl(95QhI#J9Uz}l%{Rc3zq_+BrPFe8qO;%1A*xWp7QiV0i#en7BKhxhD^gi%0>dy0&`VQ z$!GmuT?R)^y(QJT#aeP<|qp!T2faY3oI6jEIM&YT}QP_ zhdS_7tDMBVz)ZcbwXbRoUr{DOqUs3b3UQ`vc&@JLa`8n9OUPNsa-f*zC~spKD+0-$ zeHyClrYjLnt+S9LV zgW>`FCT>~S5Lk)9&llM!L;{vaW@Qf`+_vi(EV)G-C zANVnaG;Nw5##fk3&M>xzMf9_b1TJ8XHUiwCj{rvI;(NMbdqjuvE!JvGS~FM}wYE76 zWl-2U#iDtJRr>Ykr^wI${`=+(`AKNvEkpC&grDJHFuo&c{6Nn5i4Eh|Kr1`sjkHKc a5t~#qur=tt&2horZQ8qh)67M~^Z5sA&$@8{ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$19.class b/bin/jake2/game/GameFunc$19.class new file mode 100644 index 0000000000000000000000000000000000000000..513bc204d0fa6ae84544c4bd5bb28636d1d201bc GIT binary patch literal 1121 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$23.class b/bin/jake2/game/GameFunc$23.class new file mode 100644 index 0000000000000000000000000000000000000000..e7155d08dc24e6b7b4c48ef5c7c1d94c2a885a94 GIT binary patch literal 1104 zcmah}TTc^F5dKbk%C=<@gqAx+1hwT>1-zxk#2^?F@C5>iFJ##s+LdLOY)|zdP!{3nKN@{zM1*XwBLVx`3hhKk1eDGhF?1;YNgt6PF3{<#b!Hj z=T=rNNP+Rh-A17I!nWIdR(H;{iUfL|c!8&%3Z%=GeF3>1)>R&9O)=opU*ubzWO83ZMCCg$2IQCehx*9SQzF+ ziKb(G8>1K_JFf4kK$G8Oy++qd6oWBgV-i!0Z7RptY+P&^_q2^0m=VZ1uJ+Cy9g^%q z66JD|9A&#V=v+pOeS&6lQzBJB!1Fb9u+KDnE(6X6Hzu6 zv1B+lK7o;ca$I@Eg=i`Nn1P{gnsv!^XcZ_XJGkQ7gp*<7{dWC}b%DNJ?YJj9&RM)T z`Q5M`xoXohtJQZo^|ILzF5gDr`eBP3vZHh}taC@UfhV4dgFSWG{F~Ay1j7hAcqxvX{2q4WjO&C2$S>lm=jl+5n^n2i{S2(+xUgF_D_S zN*%;doce~*8RnE0KcMgp@`8H&E%n0UN0i><=E5hG4@^_(PE#dQP>#ZqW5~)0^vg*M z$P$Wj8dGwnQ*Et_7*``UmNC<5u!Jg49E-lYxYyyK#D9fV4!K6JL@I01d!OeN9^hfe PH%s}5-#jtQnEd<%d>HSN literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$24.class b/bin/jake2/game/GameFunc$24.class new file mode 100644 index 0000000000000000000000000000000000000000..091b8db939c7411669dce023c74f6bb81795fd6b GIT binary patch literal 1027 zcma)5+int36kP`fD0Hw&Yj3n(TZJM;v0gDvv@M3D`qHK*_Mtf)PT|Nf(+r2kKk#?d zSWSHJ1N~Ctz*(O_f0$X&VV71tzw&r(XBFhbq{W zhprOHZTpUN_hg_$ePpyuTlbh~JCZ39s05CeU81Hik>%)L(>f#HwWH^%rs?Jwp1F+ zxShf+fyqcEXM?g)Kv7_PG>0P{u>XZ{OY(clJ>n>|cjR)+;V8zWG1BP_Hf7iXfsTFc8G+b-ouk0-Fu$CjC@jszCOpZc7&^yVP ze5rhjsZ!|+=1*~@6hFoF&sZvb#mbw%6;1OafmJ}lDk5vGAZL{@ZUw x%nho_;~sD9g|;eh;Ry03NvvpL75|;gp4?<|(x#zMpa>NTCQWG4L>@H-@@OZdByB_5&@|w1Gjo!;$;`du z+&c}WC@2L5@d1cR6z~OKw0`PxR#&wn~QHOmwVqkftyxmt-1T0ea?RW z_C6o{=biTe^xy*vbqbfv+Y6?rYtAm3u3`S9D{gjs&kYtx;qutoJ~ud=cie@6oLve` zS)qQ9<2u2u3W>J%Nd+46awdfY8a0xrSJ*h}xaL5mIAh9(?U{m6XdU&kc45*kJF>4a zDabp%!lk1zTQNWS6q0i$7}=|^xviZq9k;s*wma7~5tJQwuCD=`6gK#!%q;tznW+SU z=duVZbr%%2w8hn$oRbYQL0|i^MqG?77A|3*VrFaS8kgcS1;t)%T_^4aPH-aQ2XjJxGb(?-6f4HaTTYE9WEHwS2vv&)1TJ3TKHDcJI+SSDQw4e7OqveD5grX zFlhTm<1=Ve(8HMt6O2U?EZa7no=&$_(r3&v5}`p087- zu?M%XZ@vj?dfNYIRW4K>1$Uc9zr;}Qdlfh5i(`WtLtsRN@jC9T$CZwUB54pd$I*Z^ zJMJ$!K{jvvE(VC(vvbitE{@->F@pUHsZg`y=FEKx7mIV}fvlaAIf?@o#`ruI=O=bF z4vLRWp(cSyIS@z3HSWZO$GsXhX1IiYz}Sn&?U(FDHxrm*DXd@)vlbW&TVgK9uV~DP(}{vp5->X& z^C4QjvNPwn;!;7QC@d;@{;m`}e8ECVVN;~A5;%pfF+0fj?$sy@MpKg}8+hd*uXG}X z0LLv}LiTgE9hL(Kiej}#8sPUyW(>-GPA&oEND_r!* z#@GOx;~wB9h}z&39<}hug)JllP2;Qh8sCrRL#E<$R@Q-^r`r+V)Mi@<{>L@GE;0$e zEZO;n#y2HfmYJR9AVVB}TjR+Pnt5Xvg1or>w8nRYl`7izW!BiI@Li4X;rj~BH4he? zLO}p=z7u<$bxtg4{6NGKIVViYa~jWw+5;ZiIlE}jh3p?`{8$<_#kk{P>2fDG;uLyw7_&>^+hm0_*k?R z7e%6Ve`oc?+RoL#TR)X(8lNKmC!5B{I##fG1(!3~wu);y>Z@p%&-Kgb?qKF;&){Yz zx6%t}Wjes@)_rF%T*Vztyg&5J5*j;N4_9$Wwnuo|Bw~lEI3kRrF~(70Oh*EruVQ)` znH6N0km7|^MV3$5lRT4!Rk)oAUTjNrufiYiBw16mPRcqNtrOk6Ig#j|@1$@=-Sab@ z$#9wEWn|&e*)-o;xK`x&|G+99>{!ObRXoPK%~LCQViVz^DxTo&x1Qxx2(98NzVu8L z&vsB1KYSURnES%}NHO;(RlLNz0X}#|DE~R$*K5loRs6iRJX*ysYRl;=e#y%P*{jHofIOovKmG4Ch-H0pcCR{@|qm6c>m-^60 zdoW11V3_HCx(yT5k0~0!3=LwQhTzj)oTM~P(J&sT+wnAwV2SR)Y2v=6F`T6X_$wX6 zKj;wt$@E`L|IPG68dpi0P?`>_tu(2wrn}S*I;wWjl-fMU7_bNlS zD$$HONm=z6<eJK}x(nJMuY1pdPR6zh?e;opA&Hkqz9 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$26.class b/bin/jake2/game/GameFunc$26.class new file mode 100644 index 0000000000000000000000000000000000000000..4c2362f53460f7841096f13f3b59b0195aa62953 GIT binary patch literal 1427 zcmZuw+foxj5IsW%mV`ku+(b}O5ecYKybCId1f!rLi1$h@$q-gHvvGF<-ip8Q0sRFZ z)B>&Y!4L2&{1VHaCFnw#s%%g9^zEGK{`vd+4*-LBW}$|m?YX@u2h&BnB-7*c$y8Ln zXYi~A&afwPH>UK=f}<9%7VNT?K11EGqa1yiA=a0gW#FS;K_(DGT%Zmwn+M?9i>kKV@DRNq})2^+G>1pjd zsyI}ST@0e&d46ue(K+pvDS%R{MTYjiXi`~l^5ig-dK^b9+AXwEN0Fk{dx72Ppd9nA zU8KHP)_8XcbYU+;eaTyrj+*xNW=D~7KsqFa%6dxG@5*WZS3rC5~NTw~00>_ai zbYXRduKzNW&1N#0)T{x1QqZ8BA{vN_&S-h5w4-0;0&Qyhz(k@rGB{A(){JhLKW}g~2 z_vE-)3);9bm3O^>)?!lX1+PFxj`kDmCNSXw(WYZ@S8{sB9xQc|v{)Q&eTn+t2 z38)O*fi<-3;#hf)6dm`hVc#m+zu?e7Q=+PiWUApS`bj$xTgPc*C3&9YP*eBHDr))1 z4bRIB?>?Yw;0vy;;|7VFYq(v#nOny+|7cnbAzma9;AJ%M7ii@^I(dLYT%(uHDPF-z zzKjd}B}VxxjPci);&1Sfzr}OD65?vx=)H=IP+%4h2-!obPzRo}ntQ0yqmYxwctVoX P1Ord$pCCU&8vXtNeq25- literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$27.class b/bin/jake2/game/GameFunc$27.class new file mode 100644 index 0000000000000000000000000000000000000000..a5fecc8076631c2f123e46db04f77ece1c61d877 GIT binary patch literal 1200 zcmZuw%Tg0T6g{0Z3<-lkct2DW#DoYD@P$F-8B7(pfnvcX)g(fdOU*HazT^~S6k$Y6G@y~8bN-9#_? z2xGS*ij*45YVQFPgE-63RCV^HW$!u!9>hMrCin=>mU@`;lu**I`Z`E9HyHW?)F+)Z zcb{(0jEUQRkNxN73xNFv(wI whQGlaf9vPgeZ*hSjWWRk7AdZEqVz5PsHK=VE6=Q|GN|3Mn+SaZPJTC@r{zq;6c?I_1S7Km!~X-{ySr`OZ48 z3rL7Bh(7=-kO+`??H4{k)j-7uegHoTF?)8(wT)`YH#@Vl&&)hCyZ`+A*WUo<;2TIV zjBi;DIhS{=rp#ZWPpRYAX6DWr;0%Xjd&|CBt-F3>$+lWbh7A4ZUEfs;41KfNH3nV` zY?($MQUXczGaRV6zP#FLZpd)e+VCVprV`XFZ_Nr_t@n&v)!jD3p-L=PERO<1(vhls zkzsT;OHS9Vyl44NzN$jkcM1bI$RO+>2u&w2?cf8S4iKc@V3?SVgG$@2DN_})*HRe6 zgn@C&C>FH0FK`Hxgt6&a4&}wl+Ivdi2p(k^Xa?7%>u&}G9>?A@6MPEOc-+8IhOrp< z{|*9AX#Bx;(D7}vt*lU`FoWX;o@5w_9nmCQu-a1K1ZEi$j!O-R2h}Yz-DWEYby<9I z5lAD4QwE+QK4VDtI0~Fbp6ZL@GaT8MqjI@aDrMJn>CXrnm3bn9$e4~ofmjfBcz+whh|+`o~mo}O9G3L zS<$fCR?~6_b_^E;irU=2=Q)jKfs!^Qqr9}!%K~LwW=PdMtKIgAG(Cy?3{r)BHfj24 zih?kWt9aGGD-4fxv+gL@%U9eDf!FXlg>0*^)@(7H&;;H$ln+|6G)B`{6?g-5S47ly zGYDPBrFl)Pmr{5O*9^S<;0WmZD6o!q=tf0jUU!wb5hxWjseAE;+;>9@X~KL@z{LAh z*a{7YacRU#jHNS7DhXIK+@Hq6V_zO)lbaO-qUefH-#u$_G@0yraV`qss}c4 zU-o?&7WFL1HjaYcFM16Ted*mI-5_nABqNzT`6mW`r$vJ9mcCyJfPW57n}ei_t`o^2 z(ue>YpsxlvMN$LwWrlwv(LJuw!M}(d?Ynz4gOTo0mL>oSgU@oeF?x{WlO5z~dH6OS z+s4E#9Lo)-d%DPE2mioH(w^>Gp54V+S{1f2oa4J#$Z2I4OM16|7Z*uh%3QgFl^u-g zJp!%X!kc&S?oEtGn^v@$&PCQ5|5euz)qWWnO8y20`Ii{uUtx-WjbnTp$7!AAJ2=a~ z!2|v_2pI1c*&~3;g@Za#;8H{b$?VX` ZOol>lMeH@;k>oUMK$HGya@6$F??2R0pril* literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$29.class b/bin/jake2/game/GameFunc$29.class new file mode 100644 index 0000000000000000000000000000000000000000..1f25633545c3340b97c876f5b2e9a5ee7470ed36 GIT binary patch literal 1412 zcma)5TW=Fb7(Ek@+1P9f2}y_{h0szOV-iESCnP{aOhW??4Gn^qXjo6|CH8LQ9Va~T zKj5X0Jir5?pZ6ao&Lx7)tET1?HPbUoNXPqZ~H3C6KOYGk-;( ze>BgabycjXpi*2k4L_(%b)#3HyBvm%$h0Mjgjo$BK*m|?kn%W5BE$cqu;vh!IupX{!KUfI`_9kg`++>%* zCphfjQ-OiRogV^Rd=_6D8D+G^{@leV@&Zm>N0F+;1^!QcY+%8~F^rM137cM3U^vNu zUA<}D?Y@#m5holR7ub`a(dmfGsW~a&#s#m0%jIw**aoob2df>xEKcLBgEIpA5`gyF zM3jqjIBywRA8WL2|MGWiHd8JxU|Jw!w5oem<&!{vGNVqrv&`h8i%Yo7wsZ(L*8~dN zqHhNg4|b$$E2I{hsvY}`@{GT(Oh`SY10&G0Xq2~lU9GhzI=dJ)8=fxtcIJCJl^eIM z;j5SnyjmD>bgyeu4a=F?A)h9Wrv5$Jhdr&MqR8kp&)hF; zp}$w+!9&PR>ic$&P`yO$<1HLYe~X^B`Ur)>qj`5uQ9;a^QEuoiupJAumge$+pAfXP)7bwV=I3Zu*tbC1W z`35E0U(2^xlt19M{1MCYCusRIR%vg@U*ddcSX<`Q&ev*RU^*_*eaup0Vd=XOQ{QLJm09?jx7o1^yQ*6o0 z^`7X<`VBh#fetFOE*yr_nX862%Nt5>UGIu*BV&d`SCv-g9fn-B)?siKqOL3(Ntv?VBl45od7D#n~tEJ8m4D3}>@LK1I=-WnmWyVPI5PZwa$8yXfH!yvcC5 zBLfq~ZQ_zhEmT*0f5oqLN_ZPrT@Yi>9MEI~JzN8=Nq#+yBC70E7i)_}yoY%g*Z)81 zyhx;n1rX!;P*PhAXR<>MZL8F*2$LZXKHhh6gW*&LvL~H9ELp%EqxuB#IBt4qT0>FG zJ7%~p)_Th#Mfm2VHneTon)};BOTQk|6QO+_Ya0=4wZwM1#-(;Nhy&>>i^|(*F(BX+AK*%GJpOz6n>!(juM?E zlHh$fba|L`Z{$RBj5NX@N9eQ(W=Prux$@DUNsPj6c5s~u&HWcjyOM_fL+Nc#_osJp zVi%{&lbfTjsULsB*h5sNf5rLR&V!Nh)zpi`#YdP;JyWADPwMX<;jJGU*6`UbrYh;p zCS_gU!_@Rcyt|7=h19h@d_Zbt4=v|`ZGAZMJdRS&3C6j>IX=Jy{}MC&4la?r!tY^$ ze}x9goBS@C{61Rr|AK#wF8>Az{}%W7cf)xnM>D1K(scL`AJN23T*SwiAcQ^{)?^dp X*d9W*j892A^fZAE{Y&I-F{R(XT)8NE literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$30.class b/bin/jake2/game/GameFunc$30.class new file mode 100644 index 0000000000000000000000000000000000000000..e14c31760857f870a8b744945086c7060cd940ec GIT binary patch literal 1421 zcmbVLTTc@~6#j-z*;1DK9lW3-axVhnr3i8>B9|8scq7YpXjhh9(%r%vKf?s0|3OIA z#0OuEBpNkp)aa`}!+2)9;Gz#EHtC!_-<&z~oipD#{Q3L^fIiGCC}60)r)`M7SW4Rz zu_;;-Sxax}?^VDV8UuTimb++Y_4H^`+j2#Qp>W8s40o6z)YiVlz{l;Rh$4g{6=4)I zl+7BJn9pvmiOiz5W(tPNSzFi4B`sq}-v_yyHXMff*}z=^9&v_nO1RS#4ApJz6tu0y zOwCHg7Tk6=!?h)KZSb&ZszxW(w6! zLs%|7NRV18kJ5!Q_PmMV9ZQy29Sl9HOa`{9xFj!%I$PR~<=@qgP6ZtdRROxP z(_@+=RCJ-65}RUMm<&z9#2&V4%C~boA~9T6(96&eNOUqtC3*FeCR}5a-kl{Rrz z0KF42Dn>Czy7f|x{FgkAn(Zmy5$3vl6gTbZ&QlIUO_1ZUoTw>ML=1H&wtowYp=80; z^o==f%b$?wf}PFiB4NlGDmj{s9ytm$Ws{a}+76AvoN&{2l0lueNF3v)<~YJZGpJA+ zcX%reCix0^{bU*0aK|%5_UWSlQCg#9!C!&XW-<9{K8S1yc?_i}qg5v8CMy$!D$5^} z$sd>5!4CsRL&rxeQRN@~LFvPEW~D2K>PO)FWE+*;2PmeG(=Q3=%;8)P7t15Ndnn28 z?h$-|wj6qBbKw3%8I||dwI>)jz*TvutLrIl%5p+pIfIfme+`AdL4?0W1%HQn{vHkd z16uh<#P}!l^3NFNUogVIVupXiGXL)JAINj``4d}=qs1$E1rzi|jUsFk39qv&n8IzU hYnsqP@JM-WDdBg>E5Hn9$#T*-Fh~C=Ws$9;-!H6TP0auR literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$31.class b/bin/jake2/game/GameFunc$31.class new file mode 100644 index 0000000000000000000000000000000000000000..ad81637f18d5391042926150d75b98966df6947d GIT binary patch literal 1369 zcmZuwO>7%Q6#mAZ^*ZjFkff7mzrC#Giyjp>6nPZ8v-1u=C#g=Dly;eDn6} zdtclFFo$Iq34vqVYDdo%s;Z$2FL5dD8UNJ$tP3e{Jhr!N!ppV5>|Cg*-B7m#QfC7b zgy#g36Zv%kxzw!a43g;c;279w0!JtEOuDKHb!DoBwXhYK>S7uL+#!eA*&w;U(P&=P?Om-aER0}* z+(evQR{}rW2p99O_hA@07suFH?C|cshY>tPj;*??vOlq6vmf^G2u20c_LRVEHAx=l z?!lz*!=rf2#hAcwjQlXc!{azfrb^HbmGLQ$C}l8?CtW-t@WA0k%POpSm_VLNt4+2d zCrbH}?PkiuG)@cjg<3WInhFf1h_}D9{@@K%h`t);qZw{;t1U_+c@L@VcwvCC+l zR?s?=pCbJ+odhymGqjLDKyvd4W3Q7$n`K0~(a+TqoTjw|$-xIdqUn@dcE}%NrOErH zgBa?RitpJ=nl;}|?c?Zx#I^U}$eRp~@8iU0I8~xMS-yc2)AymGn{&sne}GiZEfJk8 zPk(jr(|D(3#uVig)89Hw&q-5sa!v=}eyZcmc7b=_N56G*&L^0?fdT8kwvX9dYMVeO zY2klz7Y=h5qTDFSvdl0$YU-N2X+?>|T<7RP{){8?7i8tH7?HnWO#Y5(`3L6ZpE$$# zy!;E7%?#};mZMf{rL3x~$*ipyx>nqrwAW?D()&ZD;T5eaL;p%ctcE;h z7%L@!WqY=7vU&d|e6yj;GVmXDG7Icy^`EYhJ)v|oxWb&?C$5tSW&xCK)njLa*mMdl!sQ+t6?H_1FO;cE3Ii&E64z()qrZ(oDJ_!<@DS@|;rnVL=nt(=oJtG;b zRCX(xJ0aZ09TPYF57=P0g;G$O`0;C*1tu&CE+Xmn2ZrWu-`a0-lBmrvd}m z7U)7Z%{Zm6d*&7OP_?B!ncGRqvOmM7?r$jV)+#xbu=Jp}9S!h=o>zJb7M+~!R%u?7 z$}74QSS&l#{drqftE!4YPy~9D;D71$puI`EX_Aa2ANvk1PiWCZRMm8CB3%#$9k$Y5 z)Gv{2qaDL@Xs54s5F@D_1iCuDAyGHi-oZl+rh#KqDzSd`&jBkEvvgEMF#m!5g)=Q{5(G67w|bB#uxk|zT%hggpXjKNANQr!!JCF z-+9c(`Eni0L!1d!6fj0eFW_SoY1M=d{G^`_%54Z=>o lA2^_=`A|pdBW?d*P~>69@3oB*NrQ#}aOfAJc$y6K_YZiNhvxtQ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$33.class b/bin/jake2/game/GameFunc$33.class new file mode 100644 index 0000000000000000000000000000000000000000..1bd4e77c0fb5daac0e45b084ee50aa8bc7ca30aa GIT binary patch literal 1801 zcma)7&2Jl35dXc{FB>~AG~}~sLt7v%abq_mDgAPr(l~bN5~m+Y6KDYQyxy$0Uhf9) z#(_(Y9JnAM^+35)qEfG2a@{xT4DDAf$MUBc zBBP0AhG@nu8*xMs6X0lPI5KZJ#==IeWYm{r$u<~z=3QOd%d&2%b!#)~S1ga==zJ(z zD3de;Hw`~O%g{HPAftvHx20o_FZy-MG1DD*ok5gcw_YqY6J*f#wXxAKtWmafzv!o5 zwU=0qp&x@91}M)^DlH#@qZlG&ud!xJlk#PGWq({?7;g|4x@{SbPke^4&E_sejNv5S z)NqQStBE~lyCrFR0&n4MhR%kePZiy|Wm*nH+iFf>pB6ZScPJ7?J06CmK$iby(etHm z1lS3TX*kO;6wdpAkw8+#X>W#zfPM8Oj&V$Ac$c9+1>KP;hK{A;tgK0s z%9sD&WFE-2Mfz$^ee?85EXVO4E^4^I(0eF$!SZy0OSsI?J!9x@&B%VSZo8i4Iui_o zugsuXy0pMmRia3_W-9uo1+J@g+*_BMPEa+qeM4Xd8G5gp+b}F=%_Y=ux_jFJv02P% z$Q@+pUju=g$kWB&lonNb}*GzFUvuK2|hPhaKih^{T*!=q2!=0Zg~Jv93@a2&@JuDyCkMmJ=hCPXs{S1=N)L!C&#>3X z(Df^7f<%Ir>00!qUM3N2SQy^HHZwQ_=hiI+QYKkNy$~jheC7-9s9rS5ikC7zh*bAIaj*UIX z30jQoV3f3;R5a4vw~KSh-=HOTaen)-#n=w6v}{Pdrfq$P=r(EZ?_jp`(f7zS^;_*v zaFW!*!ZUQIQaiZ2izN~tEu>!j{l_y5@0~rz$Elz2*~@HEblp5WJz;?tPm*D=XwaEWJdlh5K7=>?v{GM~c=pNGy1aQFfm{5G~oe$DUV zTYe9ZN&dj^2fUr9e+%NK#hcRBa3`SpDNNGZ;9(FI(jxcM_D$?g4hx?*t literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$34.class b/bin/jake2/game/GameFunc$34.class new file mode 100644 index 0000000000000000000000000000000000000000..d09d2e2b3a4f96856441a529651f4d82355ba0b3 GIT binary patch literal 1153 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 ALI3~& literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$39.class b/bin/jake2/game/GameFunc$39.class new file mode 100644 index 0000000000000000000000000000000000000000..c69998d1670b0b398d00e0e0c9006a335538dfb6 GIT binary patch literal 1908 zcmZux+fy4=82=rToF&O3mqNLewp!69q-iSDOQj+$C72fQ!lkxUa zGrn}3@$#V60cYx6Mn$bmXgfam;DZkx|E7-L*#umK%;cQ&efwR1-{t;;KmG*JgX;=v z81~O=3!*2H)AAxQOh>Y0X1aP$DeyCNc)ksp&cvKV@9(4v+wG&7eNcZ#~1>#Id0L&zy=x|v?mbce*rpt-=%8u6MGSv}*VoxbSh zAX?C>U_Zss(U^2}Lq!Bp26Z?+X%l)fKmsndXPSG3 z9G#M0V=9gzPB7_a$)=((7m$RC6L^B5Hg7Eo-JG=uKd+4~HX#^9FP>CzlA*;D&K*53WVYv23`s`N6jvR$F@hLIO2G@e!;zh@;yf;FH}j z2^Zw+MHMgMWzx3`+LAeIXgR77OUbbqmqPob(4>kfTqLY1V=JRO*BEN1lObHfw1UeF zjg{<5RPw|qbyhDWaRsk2gr`J?x@6E08qHrIGM%iHG_B$d={4Xwl=YcWk&&FBZI#R{ zwQ*KffxwalxpkcoPJ4D@ zDwRxD<1DCn6BIckP<9lW#*AP{+m7Z4x6lq26_j=sdZ&=|O$qvKVa!UrwMDTtfj)O? z>&6`|voNX^s(U6hZk37|k<{fTs@vKy$K|lnt{O5khGo-285Pc)m8B_5nWiA9HQN?8 zjV`S@TAFZAT5m)vMD^0m=niz>MeXnOs3F`Wb~OP10Dk%yCR(is(OpLr!$YX2QyPfV zEe-gZ8gA27QJ2=iKlG^jwpFQzDyr-T8Ss-0EYMo;+W3T|w_Z{cuk1J9JvUuDf~Vvsn=O^mF$w#Nd?D>y=& z*d4rbF?Okpv4#iBn;0X7iF}V@!-9R?h5USE@(_HutbfPTZ zChRqYw@muiB@`}%^XMQ9K1PUtf_nZbn)yw1^3Tx4KSz|W;spN!J^U8>`Ik7)zrq#% zHD>uYu=saa;@{&v{sZ3UYxs!&gcbfXzUAxqk^h3*{8yCeeV6}+zxW33^RkO`cLmET z&V(wK&`wA<;}EXmAXTQGw)HjQ`S2D+8HCc)do-fdD8zW%E!{hKmu^4p7hswGAySvM GrQg3+48t4% literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$4.class b/bin/jake2/game/GameFunc$4.class new file mode 100644 index 0000000000000000000000000000000000000000..4c564a175e20e0b0a2757d055dd5de994adeb302 GIT binary patch literal 883 zcmZ8f+iuf95IyTSb>g}$O_~-;fdU1R25Lxn3qnF|gDRy+s8x{YL$tNG$r5LcoJ}PD z00jIA45c;Ey0D8x9I*7U)1c04m@X3y-OzrTJ1sNk^$gQ4(-cSXf*^PX^@lc^7s zw?QG3VKoujRr;_aRri_C-)a#t%si1w>Zc5;VyVesZil|GkwVr%8Z!(F4XMP7LGM^Z zhx|AY47o<=@u0~g8T*r;rtZi-!%8F3>wJtFL%J>W-VVc3u|zpT?gm`7-2)v-)vjf* zNS%0F1)|jphoa?&iaMorQpY!FAkVm~9GAhtYN*IO&rv9@R_DxYJDsw{V*w z6Hh4BNqFJ9)88~&7I$#Z!rlMZa-QIzh!TS(lz&2dVpvOF@WPI2@jA*5a>&z`gwiBp zGJUECgMAPVB2Uz1yr#LS{9CcyB=4^Bg0N3=?+e`teG3(ad_uQrK7+HTlpq0kzc2b& z2eqY_hLNR5LB2&^m5>ppH-8}WjSdEEvNj=%_b@3qOTIHsBAg?SVIB))V}b{SF+nPK z=_|pwJZ6XSAyJw-DD4ugouJWb^UJ#z$DjC*+OK hBhuw@;e?bZaDOyO3R|N(7Y_+dJR)1A&z?+4$A8*awsZgh literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$40.class b/bin/jake2/game/GameFunc$40.class new file mode 100644 index 0000000000000000000000000000000000000000..5a82790bbbab5b1b3238dde3119588caaec29db3 GIT binary patch literal 2650 zcmaJ@X>b%p6#hDy?MXI`z`}AXD+EnQLLfj?0ty5c0|^3wNQkmdb|;%5o0)ZYHh?06 z_kDp!K=BqS`GH6v3MJ)3d0c3-b~Y8*lL(<(_&iE)>908vSAwb zg$%hx#SIKfwH4F-$VI+@51gTQtzqhOGwscKYN6Jg&=~@?R#ZzgXemR^vx|z|YNQzk z)p~4s{HS8^#dW)821Ea%ViM}m$`hIyFR!;#h8eHQLth5Joze_5V(Kew5+^{jjbUJs z7gCQIQ9EK+6)(w05Cc^VAb&h2v-<*rFqmSqwG>&EE}v%6kD)kI#W03`9)0QZbSv~9{Ocj_W zInIwJv~=2}l;)wD>Nlj>&i+h+FlG@jfe-a&UpH;TUKvT-nypj%^HGC2DrPeb_QY_q zkU%Z!D1%nYh#MwR+7$NV63kaIkKqhgEn^#r@>-)=U;*mMj}F@+%L9sVk}Y7$k5jVS4WYLpCQnM%g9ax<;60%dU2{m0U?|IGU~=m3oV0!>4yp(2~(s0RziOB|!(!O~ij5Loyvi zLZBU#mb`YWLpRJ8i^RPdKep^-JBXyfm7tqPS*{rr1`FrIMp8wFs@Oxp2`y=3xxfmL z>wdTPBjgudC0;8h&R!5#3#@X2a;i(>uNJsgt`wxLj2V;cr)*{FR6s_2oxt_DfpXw% zG7RhS&Z(&hhn-~GxJlqh?9Oli%%#&~VDnHg^gTO{SOl4C? zEJdod1Xabv9s_L({~wm~N~HBf3q2VQ3rb8+6B)i1BPDybgicD#id#0-L9cpSi?-Ei zN#~hRoha+AOe(5}4f&SzI`&44kryDnHZ#p=!b;PVP^a6i7Ts2&hAxCuwLIi{8X=HX zdiLP7^gz*ErP+Au8TG!=yO8%h4RVNBNp23nyP?o#0nLRgM13!s(V0STY9&A!^%5XA z&}SQUuDV1Af6=3wdt5buey(cHa|FN%Z5gZMdw64R!Td&rK3~E7xk{y?RQfh!Z^;hy z-v^(vRSvo_q^@)yMs7!FHwqgA=j=j}T;GY3Kshx#F>WU&kZdU}cA`)^?Lv%f zkRx$&Kj_Y4z%`v1D0TYyvvUzxQ?L_jX*R=M zxv>kkc$_HfhBV)n+lAYt5IOG3-AQhgxx;&;M`hcwt{a^tjWP#ox~SPIiE;>j6XS@X z-N@m45a4?eb~|Fsdg!f|XQbIjj|%Xq1BhTZ~6hN3jRlB0Pr2sjvsJ1$cr+K0HZT84mR* v{qMn5Fcm@P?-z=MXFCb<^2pcQ?Jmy06a^dpA5})nP3HF9eRtnq&p!M9`sAly08HU?jvj{5 zn`T{1<*H^wim=kPp3Pt_s}!wD#q zi&mrQdMb?=P80tBrhPf-xXB=>u44i(a-1P#LIJw$4ZMW247}VVBxHqQL=}4kpL9W| zRMQ5|A;VxS6|Y;R`bMX))c+ZT^F0KNW0J5u>U_Rs*=6CykRuqvWdt=Ob!2f-vEi(m zO&gfO%LJ?0YzlQplTV4>T|p-Zf%PgwA0Z@@6}RP-385@rGjJIL3^C~jd{Fm##lReh zmyBq2s;e4DTJlcOm!=d1e;jXOp5rRRSO{X#b;!U1hzTm22Cm~h z2Hhso1_?Zsx&;+~-N1&Ts2(8g5UrHDVBiCMNNT@n-f}9oStSVAvLfr2fo*(555pF_ z!af2_TUWHz>-5{ee1cCoirv6;A2MKKhX9aPgI+evYjcku|E6*v@>kSO+!42B`xVAf z!%Yr)3rF9I>NN)HpnUXzKgx(DwSYBl=^6Quna*&B)T4{$;04=|N@g@yxM3eILpxsPEIvwL`hjx5rrrVsHJ8D|c# zMvC_-K<36CHnp$!u}O+e?W^xGp1BWFew--n?4wMJ>OLBo%syQ0o+_#h#u{ae=o9eh zUl^d82YC<1c!avEh6}tGmq^a?DCT$!i(JPR?}N#Yp~eT`@j-mS6S&KV@C_fvw|umX zN;0Utg9>2)A0FW{hA$y$)`J$s?}Ik@Co&u(GpEU5w+-+u+$O0JWq~{N>13vEfPQ}i DLguxy literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$42.class b/bin/jake2/game/GameFunc$42.class new file mode 100644 index 0000000000000000000000000000000000000000..470e8f7b810cde65e8228f56df1b857c295da1f9 GIT binary patch literal 1199 zcma)5TTc@~6#k~&GO%6bDwhIs6?zehfENS>1gcHI7qCWoAj2}WE6bL2r>HOd5B&qY ziV-C~_@)p3DB_v6n2o{2O?J+lnK|eC&Y5q1U3~ivUbWnMcEzERC5F0r$8*#phHyNQV=$JByV67$4HhD(V`y4)Jo&7A zup>*GV#k#Xt!qVFxH(aBv|n2^RKf8HXf1#gU@^xK$xD@8VQ7yh=+Kc!yTZ$-H&n^- z@^kfQVQ5e#;dt9+pFqNuaUmYeCwCoNZL7KeT}$K|a2=f-9Yi|7tCq(?7rF^m*vdH) zsz}Xfzbds((qo|)eGI05DBgH`uE`Fn4N+&)szNkbB~v3xw6K8gN^Myz(u_JnYxHgiV~OTHB6#kk_=wzIT8&E{SjrT;rtPmIF=5h-LLD>ybwd+HwNqUo6l9|*@huuHo zga1M;L`$oDrOJP^?^~9qCy5SEuq{q-ZYdf}@XNaUT+YH8%TahLrh+BxFm!WUn zcI3lWV@G;hVy7+{lIw0+)VGCa>v?ClmM5|I2mKg@p89KBlvUTB9 zvqk0EPIV@RA83dCYE^nAS(kf4xn8N|(|eI%yq69`%ZgoAB{lPZ*D~92oW>x>8R8$J z*uk-I7DEhX!`+igc*K<09EYt@&RZD92t(YF|0oLE*=1mPz4N1m6fP1@Q>a=OC;4r( zaa_h#jw=lPAuc*yi^7){uHiaEPt|5P7bc-gTe2HX*VCcLkYTvkO;w7LR7w49t6Iu& zQ(xXUO^jlkW9+C1jzC$si7W%JG^rNqPlnSv*I!jAvuzUVTNdeUlEGRnZQAACtxm4e z$6W|h@79asHpAf8;EOH0UXfl5Qw*1niD*YuLLp73OyqD^>ocpp84I(RBPEMwQ#uuf z@$axX8d2v_%Hut%ALS{B1q+MlV~8oYtxH|hWeY2TINAj*Nk^GjMSwo~$?-)fMG2anZn&~m=4Q_`cZs_BM|i?Xr<`BO+;5haRBly^5ov(s*7(QSEU znYVRACc2GwQzw>McEu^zU7z}DL#mof8Lk>si8WZKs?I`~BBYUK0P zB>Fp7|0Vb+-Fb3ibRPrzIQR4!j2C13xNr#TB`zh?2e=W;-{7ZdW5_tfC0c%m-0#Vs zU*nEGd4TEUJPil~%j5>^Di(n=40Ly@dOngX_hGwm#r`w1cETn9+`IR@Jm)#*+`s<*{Z9bn5FA|$13!qS94|FQ zOO_UBneX_{<%tOngW*EzZq8SgZP#y3*F{^&km1xV*LT$vL#9xyG8nT#U7E-sXQ3OX z7<$XDFPA&5O&M0irY9Nl<-ieMRfMiSCm#*9?M4je%c)o?9Fq*)4XGCIF!UFSq_iVS zp70x`H5IykV={|AhO@M9G-Ozlp4<^C2x}S|S(0zR$#AZa_AcwLqiSlhxRJwIoZ}cE zXsPJQy@m7mfYMYVBmf%yvEVs;h>tifGMq`-YxFZBk`_M3C5EnsOH8H#Xs&B+s~vR2+@KO1g)-A|y}AsuxXCbd zEc=eHTf|m@z2*A#gazBg7(UbOHKcc6SojiOQH4aiE&V#f$UE>K<{$}7yi;#6Vs;GQ zSeQaDLskWGTj>P9wJ@z4Am?}@ihQbB7PFM^77a*Eg~Ihs%wd6Jp5gttC>`Z`rLwze z;X5o6uta*5~Xdn-DB@Os`B$M%;)C{a!sA}sBDeLni3y-luEf(!;d7?p6%P31Dk{)$i z&zcfWb4j$5xi;5=PUy&aS5JP=!90e32=Gr^>a>_LGpJ^Uv64QUkJ%z!~!>`c)7CkRMv3sQT9+xeL{xbw^Z>UUG><+S=sEbpQ+Z0zEp@j}Dj zPkSDHgnI>?KR_>EMIW!=B45WKucE{sVv6K6e}q}SfmQwll0QX@WSc)j$e-g!F7OlI v+|PR;&MnECvcwaVDD$Tjts9xX8>1BT**<08qejx8z5|}q-y}87DgFKh8-#^3 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$45.class b/bin/jake2/game/GameFunc$45.class new file mode 100644 index 0000000000000000000000000000000000000000..3585b35ff56d75905fbfc39770ee53081201b136 GIT binary patch literal 901 zcmZuwT~8B16g@+?3|kk_(iRG+sHiOnRlujJi6SK=)dwLw_|i<vw! z91g>L!ndQ%K}YHC%eFW%GGZ8irnE9I7*eJ3A%n9Wwq*t>xE|6NXPB-lE#LNgO&J}C zW*`}|^{^#^LlG%!j}9HvQ8B|@J;9a8qsox>rP+JUkSmqx(y6EfLi?3{6DjRiCvbyd zCO&D9>H9Kj$UvS76HOh z?1%lRC2PvgbMj(N>vk+O@g3a?!kEVLMw(98X7Kj3meF<~;#kI50xb)z9tM(@gltaM zCTT`Gz48qcpXp-^8Il>&;74%Cd5vsuc!~5RSqxK{CTRiINLzqZ_WCDM!*GiZ?k7T1 zm!VnAj6&a0E<}UE>KEkBFi+~%S1e~&nrB#bK3<|t*_^oo=f}wL?f|tgj2xj72G&s_ Z+!P)U;-1h?21-9qa+BT+`D~i>`~iRFzq`u`)jp)De zK@CRYgFnC@WjwR3WDPXw`FiHe`Oam&{{Hjx7l3IjbF?vJ_QipmF4RO_7S_qEHGFq` zc8F~E_bt`db?aR-AKVn_>Dt3#m! znzsKu8XF_H%5jCEFF|6u-`2`=a1GZPob~c{MAL>e1`V1&x1sacb319=z)g;^v;4~< zk`BgkizfBtq4XF=k{t0_*)#i&Xx=pLAjgqq7)mty|0M?#$kRKTH8QX@v!O``Q}N*& zp|p*AnC7_8aIs0!pdkw-RdFzbSqAQg!mkGPSP^mhoP&oZy`vd0jE@~WF-K`%zSXTa zvLfm2GT56zBXs4OGFs{Sr-3Q+dqI`s+1afa?b5`B!3*R&%}az`L2@OH2 zx91B%Gu^O*zfYv5PE&i)*Gk=J!#ika5w^A|(4 B-Esf` literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$47.class b/bin/jake2/game/GameFunc$47.class new file mode 100644 index 0000000000000000000000000000000000000000..061d2c33309160273a7a69a6a7d9bcf930840538 GIT binary patch literal 1137 zcma)5TTc@~6#j;78Ma+6Lb(<2f~YMOs(^wPA&Ou~z!wk`Uz%Y%l$B+d>`saP1dWOM zfRSIos}Rt{2Y-M+%6O)%W>p?+({tv`xqau%*Y7{RegiOuS&jyVuIFM)juoq7TNWRY zSg3jS(8MH1f}tnooA=a{P~NYI9VG*X#%afM)C_}>%dasc=KP9G!GLKYiAILjCC8JG zYuoEGSQYE8WN2UVZQ-toz|nSenNXWfNR5_aonk0T49Tigiw_wxxjY5!ilQsLYH>vc zj#n);;T%KD20<<>XIlp4T1cIYx}43$i^_^)tFkKn?_GY)L?^mAx(Im;TvW$G4|*9) zVJl}>D4#ZxIjgiT(r2L`0~GAZ7mDWfwiwug_FS-VQG1dV>57*o1~J5OnV}=rP;cXb z2&IK9xJsd}+?6gvU%XrWuI%dlhBTvz9ELga485^Je+F47=*|hfHWMQ#a*Y1lSd+oR z4cugCi)}d?qCbv-__3;Iix^T$VH~$OCK$3Y5PwBkxQ$5~Dk|80=9A^05zbJ$8x-iP zP0haM6(#JgWw8^{D7E6(0$VOPnrO|x2sEnsLR6ghY}XHoFUwMG`V|Ii(eq?5=ZY|t zAw2<6hW-(#OJXnCoUC!ujC6AN3z`n;(0~-l6lw5RNRTs4wsjgrx|uAZBU(x70wbh# z0i(U`6RFd5T^;;&EYC}*lLa)M0Z7}@mRKFmV;1ldC}&ug=@aD+?8 zxTfuOavUIigzJUR7<;PW8g;mXXrg{^kmPUC!r!5Tzek4eVSs<2NB@XPzF)^OeA+L< wLY?W`TZcb|J9MI<>4sQOb??$S2_uu`WR%Egz%=fWPSDK24E<7+s%NLqPlC|+*8l(j literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$48.class b/bin/jake2/game/GameFunc$48.class new file mode 100644 index 0000000000000000000000000000000000000000..289f7f31a3bce081aa129354983e4a7c2469dade GIT binary patch literal 902 zcma)4O-~a+7=DJ`GHq%3D2S+til8l3o1h006k`w!33x$CJdt5Ll$B+-*_~p%5KsOG zJ!+I_f**;*#DhP;A4Pno6tV{oZnE#!ydTf|%=|g}^&7x6Zb)t^o<$ zsWndW1qw@HsN?xSC5cW5lJxO`pe=cs^d-I9)Pg!Q^%L3eG`f(d%u_?YgUiDn`i0{p z>LNXXUi4Ag1~;i~1EI%5;G98A*Az!@zS>0G1Jh3hC&yQolB`R7?` H8Q}L9Sf;or literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$49.class b/bin/jake2/game/GameFunc$49.class new file mode 100644 index 0000000000000000000000000000000000000000..2d12cc23b0a9ee76811adbc51805020469fcc4a2 GIT binary patch literal 1190 zcmZ`&%Tg0j5Ir}Ua7h>p1Pq8T5X6KCQNRZVP+q}Qfg6y8o76D5gfWvlsmuh6jX&Vp z4PW5Gg`z--Rg{m7({dTQmwdH+JTeTSqVRI_44sK2J=!wTwjqn@ z6|ZW^Vx}4G3~g>Dzd^k7rX#n+wnOYf1S?AnT?s$1C|IVK_cF<6VVp-7N1Rys3OC|9 zx^aOp+=>td2A0)ke*h}wl8(!`!VqyQ#tXS&8%5&Iaw^oTqfdoGrc;w%82z};F~HE_ z!#`aT6mP!)I&E8m`ch#w~_G z(fSKitvYX&D^697LV=Fz7{fSGFVhZfwWu?5j^HltbKIj%`T98prDFmQ7@A$-HE@#u z9R6AGK-aOYf-3k>$0N+pv~Aj@ke=mj|97M61YKco(4F`vc(QSZ))mh% zOUp*3ad?pxr&cvZ)>5b0da{`j)j1vSf;4T%r3+gY-ljuGpy#9%)j8X6UE!h^v;z7U zp)Tp($>wB@k!GYrLkDPnPd@^Pkc^N9--SlO7P9r@N2FWHVmOB=Nd+)WS^)%OZSP1O zrz>>u55CmkpVSyS8mVuH3zb2(CG`=VuXhkm#d`M8N!CT}g0!%>@y{6KM;PW`=q$csihsjA s|6XSpKW5QjNPIAhIpR1^h#CUXIN>hTd&^?6?&~M{n7$EurJASDZxGf6z5oCK literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$5.class b/bin/jake2/game/GameFunc$5.class new file mode 100644 index 0000000000000000000000000000000000000000..2ad0328a0843adf8d2739246487ba629a902a129 GIT binary patch literal 1539 zcmZWpYi}Dx6g@Ludt+zPCQd>hDG+D@J4x%3P+o3R@^T2+h2Y?l25{HwiM`Ecx2(q& z{0tD{DO!YheCY?MQiu@Z2cYtgD#V?&L)XF9&fU3l=iGB&``16e{|R6gH%xGb@f+5T zoXs_?U71^@rO@{5GZ#!43@0N;E1ueDI^NDg-MXn{z>v7;c#fK9h-I=B24l&u%M@Zr z3dE6MI9hZ(d8NHulfi~nb0tH%=-ZZCu>wc$drCt!ofgBfV#L=&8hM6zL#nl9hOtbR zY&urXwY)~ItOCbtzq06UCKv$5vI9&t6Mn9LG#N zLZl*od*=ejae`q$13KQee~8_Int+m+z@sKk^=I*+fxu&UoY=IKr6>VxO<#CI;7Ocj zNJ+0=4XIQ7e5;^2Jtgooo*_$8P4rRsl%qbXhCrd?ET&CNF`S6> zc@sH?k?xJQa@<_WQq8$#foCzxaHJw_(?x|CGfJg9qdSZuIdL)!|^nOivpKGJtMlVRz7HxErS_4(q(xC zizXHrMk8Szw1dDBs1c4V=yI2IwU>R5(t0YIs6&04*DYBPNMqDkm;`i^*92bEt$dZZ)%+7B;LY?iSqwRE?O-q@HS{1;;tm{Lq!aA zRdPu|hedn`*Gz2o7qQ<+U<>ckbSY<7H&DU2bpQU}I*6*kb$ycbjq!?SyMBv?tt3^`uT$;T zJWmEouGMPE7A8So0Q#IDTxs%YZ_;j#BqJH0`V9lW&^a~0=FB&re}DW0U=cZv4u;`Z;y^B@tKv|m zH)+W?Y-4(PoV+rQE26HX%h0uA+NN4%h$NCl1}*DUWDF5Rb#$VOp>Nx? z<@3hjzI1oRz9kt3wjD!QMd6x$+}_kw&Ge|zcBoT`MTViXD%I8o!%!kgNllTqgk4SV zDA%;BnQp|XRmE}KvL_8!s&d1lR*_&`ON3En#WYk|W&U?BS&ZT`u5b(!^$@!@j*bzG zGB6@Pb`H{3rg~HMlu(koMKOkJ9ODe5VT^N0I{FAQ+t}ySSq*jW4Mh3#~p@vE486aD_sz(wzQ!mi5UjHC=KPfxz`PXVBm>T zzLZby`RBWW;S%MH&kn^9+L_vS-(!lVp~tOL*FcPE#&0jE5&cLfNgE_CZ@J znHZri>$r~x4ABA=l(WJz7?v-*o>Kl_SjnP~_DIKLkTiw@DsqxtVBVH^}hy)D?-j?-`rnKyk&_nysW&Q~TW zF=rc=88Qq`Oajeg6vrJJ>c=SdF}AZ^myL$K02p_o&&M3#~5ocVz6BXT+rqcuhr z{0lVt*h8`2N+R1!5yK_)(dq-tlJx;11O4yGw90*S@UNlL$luZd47N+(5*LkXrcx&u zI>FUrOq}A@J7`BK+DRQ_?iBY@+9@9T#3BK)VS3}>-_Xy$BhG(dod3im{}ptaX`!_{ u5iVBnBp^41Rr2Uaw6{iH1WyA*7AJR|+zvcLmaIm13~bOpMuq;l==TR@ToTIw literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$51.class b/bin/jake2/game/GameFunc$51.class new file mode 100644 index 0000000000000000000000000000000000000000..4666eceef1223ff84aad443116624dbda6ab5396 GIT binary patch literal 889 zcmZuwT~8B16g`)28MZDUEtF3M6txAVw#26z6GduBs)>Q{;7haJj_um*tl6D5{wN>R zNKAb22lzuY>VGiaX$x7=mwV^V-gD;6J+ohbfBpiXf<1u=LjIN8m6cN4?a9&;4z<4W zw(gY$EW%3S+kw)@9ba`Hw%pfRMuf@xzVh`0LaI##v zl+m%<3?w024?QG;m9StJzV zox&Vpt`&w+BbHtyb)y#!WSLRStGa~6LXugwd`~xYwfMru0u}}GgxrObAGxt~u!LnM z3FJTqgw-U+aIX=VyTnXoV-;5f)(Fc9qQ9FQT*W%iNc%mW1J!J7;<~^!o=E~T7Uy8g zG}}tP(ZfsFxQT+mt$(E&vm6w${ht|B2y02%7Yt zA9=Fo8xyC`%-JV@yAPCJEJDf(_9f|Fw4;p+~I5pQrXMzIE~+Lz&jFBvUz!5)@6TgO}`4MnT$`q_)muXWd U4RLo-=4`QJ<`*;f8L8yuAKTu%ZvX%Q literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$52.class b/bin/jake2/game/GameFunc$52.class new file mode 100644 index 0000000000000000000000000000000000000000..14d286d74b0f12ca4b7467fa6bb5a5adbacbd14c GIT binary patch literal 820 zcmaJfgc5PcInb>ljerX?+<&;kXLRuCywPeDj1B&br#rBx5~5N+)xF>%(Fz3H#w z00;@hfgix10l^(H&PTOE6_z~X@yvVkc4oi-`T7k&9Xk$kgz{T4ko8(m3}x*loAyZg z+xv9~Heub!wUj>YhidRV5a(JZgt@1o3iUIBRjHm3>}DKD7ZwU0@|Ytmc0wgzjfQ73 zITmM;B$PU_FQOBXgjqcOY3qKN64p9KFGELzknc%-@Pe>XsdCYUs6|5cYDYQ=Rj)CR zCBjk=$4NJpej;^u7+=UbqnK9>2&)y7Sq7o6ySh<*UBC^jIw-R&qw_THVGTF=Oy_aR zRJqf30k?45!3JU3sGjNca0i=L$k-!nnBD)GVZ&wCyB_Z0KA~{Py1Pvg`Gox|HJ`Ts z$2HzTDx)_%D6?*MVuE`Vj}l+D!)zDDnf52yNO@Z=-WZ&Jj*$PwWh7TIP5kJ)Dg zR_XeCb`yBU4(F!qCCNm?FDy8}$3*2x@sx;R b*v12d4vjkn|A_K`E@y$DdXoagzK#y literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$53.class b/bin/jake2/game/GameFunc$53.class new file mode 100644 index 0000000000000000000000000000000000000000..19d73aa90b4bf0444f6861e5103522011554d27d GIT binary patch literal 959 zcmZuwTTc^F5dIF`a%kO(6eyRXB35mwP^F+IH6{wwkbo}`9(-v|x5swvb{BU~tB?K( zU;GU`sDYUHpzr=6jThpaZ87U*lbzX_Gc(^eXJ$X2eE0}p1$Q`x7&1>qTdtIvq9aQW zNmRS8m0K%w7!0$KvrSj+wQRS2zab8k^cjZl+ODncF~stPeFkIQYse&GNSKIYm|=9= zcIBgPr!M_HQFkOmdfT&vvoCyG+XJVeT6VxNy&b`d@Tf4vn^J9UFihkN6x0(XN4U+> zuJUcSSsB3?!&t-f{8}I_U#eQi>&Y@@QC+vqFqMy1mJQodHB~7*PGAyK92ue&K^~l& zn8pnC^jz4AfmMx9FM$N+aDn4I!+0b^bA2EJY2qU03D%K4=`duYsG+as=`-)kwSk4nYa=%P=FkI=*tmj81zs|<5dYJZKD zxJ}}QiL_2O0_i-VdymGSULZqiR|%`VBMt_GOzwJJ-;z~Zk2-Za!eu=%T82&6a=d^h zwj))`YcQBwt}Fd@M+AWkFb~=z+De3y_J?dvR+%&-9bbHpk+<|Qge1u%Y49&F=fgc5PcInvEw?lO-ouzfkF!;tstT_rywL05>zSerBx5~5N+)xF>%(Fz3H#w z00;@hfgiw+LX7iKS*XI2XFQ&HZ{E)A?>|3(0occ`g&d*sQ4HmNy)QLJt3U<%HNmLX&Io2J@}&aZ_pLdK`! zB9w%3H}XVyCgLECXFp9n2ol12H`6Plqe;m3r9OO1SgqE$=t|T>q5Aa`9S5r4w6RQB z_M<57CDMzf?v0`=dB7;67xye|5>_(RbDb{kz1mFiLo&M^XVe7DmorB5A1&-Zm5&IHHgj-l-n-V-@pAs15 zrO)i9@RS|4k%1c5&@xtL&^Bw~HYn}weZ%TkZ2Z8M`RSTusv(aByD%ZDOp9kk48sl{ ZGnIiS6Ufgc5PjP?wVgUio3!aC&_aQvg$7!MOAr#222~13s8tWWM2<5gCe9k!n}{F9 z0T2}u2YvuQ3Nf3cl_^|icGmOWzMZ%J_4~(90Q)#FF(XiV@AhfG+I0t1eZ`?Ml-_o& zX2K9yOME+$>a^#}{_~FeK~W?y`_z}ddM1!6SIz{C!>~gcq+mNpV^$#F^d-F+4%!r* zy6u1j3eC`SgEKesbv@lQRL_qER+@>k5<2Pv=`N|`mja9B3O9}1YT(Ll^+ZL!?A9$T z2rP8MFlxo*MWkATa6~mmF|X_kESHna)bTylQuWHYjU_CbCpNR2^;rNHgW%7soE?D73}F1_pne%idKG1TABc-q)fp&_Lw$>>KOM3 Rk2xFcnEu7|eI_b-`3D_NxHtd+ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$56.class b/bin/jake2/game/GameFunc$56.class new file mode 100644 index 0000000000000000000000000000000000000000..7b41f53c034d481aba11a7d7cc2595cc8ed46fed GIT binary patch literal 820 zcmaJcd-O+r#ifdU1RB8b$gy#yhlw5ckkTw3)&57EY6k|oYAvYmVt z2j~UFfe+xL5aT4REL361^E{rJH*aV5_n)7?0PJGNMut%RBt~+#IS^ynJZ96GXm5M} zz=lQGNX3qHd_Giq^v)NbV;K^b-YBi&w}foHaY3-!#+MGVD7eUBiLlaDTE3r*`!YNi z{Xh~*UE_)1LWC;u7eB3ds3O98H`ObpqeaLKWPEZ+sMH&rG!@N2=t1)=4wW9X@>nCR z`No93NP3}+dt)<|2VBLxdPJzz)6CLWUfhdYjSmIfMa@Q)P@H!@4oqJJk&AWQBP>s) zx7RbF8YoT3Ty_e$j|Vn33FTXqx_F33gw?bV-)KJcX1e`9Lu@%r`q;%2JS7xPS$MB4 z0*|nNtLV$l|F~vLh-C1QCzZ~-J~F{MGn3Gh9hEGjcs=CT$xL}&N7@Ta#4|mW@zD4L z_e5(MwgVAGGQt*k(|m6*v%F#UZT9vUi7~hH9rZ??s3BAe`c^X9$xeecKo{`2D}fPFkQkzgpk<3q9E=<|_iydiNs zkxu3LfeC}56!RTPbvkh6@KukGl?WKpFI?%Wmkh~j?To=V^m`(UBr-NqNHff}T`As9 zMi(MDr1HnBt&{q#^Y(>$ErrzTt z-lv&uDEbvOw{mj{B6{XlU~Pwm#`&ZB*V!n>rz+q!4Sbrg4o zCwx5HLbl^i0!JLXdQZ6<@;%)#ZSqJuo*&YMCg~B-lR_kE z`DB}9JtNIXr*^)<`a*{UvLv&lVXeX-=N+=`X%OigSqyhEM^XdqlGXspLjE(UX}U&- zwH8ZF{!1-jVU`+FG|^zQ{uPVAV3R5tA3h>iPhMlaZd{Wm`5hJGlg5wgDpBFE)?r#@ zW;t|Z z76y7Pbfbsi>be)m&7)RRM%$w4ONQKfXbZnCB2U|$&5YXfVuqXRscI=C6^3qCs@e*} zV7@?3$D-_uz%6g7$P3&G$2EolCk&%TEbU0DMzf8R!F;O~^Xcr;@od#lmCN=D^lNyZFS!FhgHE z_nIFzg&$k^6rV9%IhOWJBaA%P3mCd~syg?mg)!WtN>uH3IxQ9Q)Q^o=2_=)<1r$w; zGu%q!KIdeir0evwOBi53|DHt|Qzq^+Tu+7R1}ulIrcf4Ll^F)U-B=MV;ZhfC?@i`8 zv>noSs`{bV05RXiJP7SDnu=MWnE#S8EoY z>CFKZ9@%>hM>a#6C+ZIQWS-F2>4tt~VO?J$!)dt`A4`9i?)GI|5!g`e=~?UBQo=si z5Qm+i$!>*5ku9s99;?3p$7NDa2Myk8U~8@dcSEYZ&@u7dyNu{TXRvBPAfshp#IcMq z3_?XHk*qYtWSeBokYpsg$NvI9A*BmhTC*g<^T^Q8D`Z=3Cz5?+F?@ilwCV&CBy|EK z*Z&8JcDT+CUPy%+Z$on!=!CweG8)r<=?sJBPrsr>%7_1Av{Wpf;$t#K&X6Z9H<2;= z2VY>a^bgF^3p_YE#TRFIT0BGbm*0>%A$M)(YRx}Uy%UP7JBHj#qlhE`nwn%2MO>3RLECpyD>G=<6w@>W= literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$59.class b/bin/jake2/game/GameFunc$59.class new file mode 100644 index 0000000000000000000000000000000000000000..cc50d0dda80a15d2620102a5ecde856013d752ea GIT binary patch literal 983 zcmbtT+iuf95Iq~`;+Qmnw3N2o3KU2h(m)XpD5$8nRFMKNg}n43+S=RH)Uhjj!*>A^ zAo0Kl@KK0kC!rR+AYsWfJL{b@XU>j){QUMEz$Ts)kP%pXC(qPoYbZymbwJY@`}W$i z=LKX1mQvsLeZA+ZZAYGK6$<2ExW22m1dLj}FOc009A&{kv4kA*0+pWYtJmYvu?pYF zV^0ZGdx0&zz6{+so^EFKsT;9SFI6eUqAidcD&5@^Sg6%`=)G)t(jT@Cb?ExTwuvh& zG7`H}OQR~swe>)^|8=i>)T#H2xQc59ERubS;1sHaB`gbAngTj< zB!{dlxa%>r%+%%@UjJ(X|^xBs9#j+nTT=0&aFMl-G37Vh9)0eAnpkBc)Utl>WU zPM}`?SKrBPM#?*(Fs1Pg5hp z=b2M!7@x852`i0e^9xolSd?S3=00*}2W9ghf!ms-OyQV}2Y8q;sG!Cbd2_GMRord` h>sV%)c-6oo{!j)P$22$4qR(=~fX93-V#Iy$`2`M5(Yycv literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$6.class b/bin/jake2/game/GameFunc$6.class new file mode 100644 index 0000000000000000000000000000000000000000..017e3485c0fce67520cc3a95540ce8a25990c539 GIT binary patch literal 1663 zcmZ8h-BVjd6#wn!CYOYzd=#WDRa;v$0oqj1il%^k1*rt(Ln@%gn`B8YT=r&?h0z&b zebX6d9Q)*hZ_a3)(F&GPr=!mJphNwO)bZ?1kU%nb&)u`<^Y=S@|NQsIhX4jqw!s;? zHk~awm@GQmGC4y_dPn82-n3ycTxd9&R(iSQs;%*YQ`WM=5V_?lSC2A;;)xXoYtk>s z7($2&gb`tAopY6(-`UQ|%CeL5BtyrXpLe_!r{bD@U1{l(TV?2;Ysht6Mv5U^lzMiG zp);N!n_VaAIjWdk(iK+~Q%z`RXd{Iuv)lfz%;sd#Rpdlb)fR<~H^!9(H?Olgl~{|S z3*9yzqoNw}*3Sjb;XFf=3FxW~|5SBHY6=uZ4<5I1@g$1J1_DpuNvfu*9ZdkRS>te7 z;3-^Th)Gq*2BlN~d_8Sy>J@kz&yXdldQOzCw5#9G27!Xa3H00OV>sVf{|O_30h1zfXxB?-99YLyouICIkP^6s5racn$^vzlwnh#QA4TypCTxr| zoNZ|0hxbQ$R!5vZS5-R>mm@ z*VPW@cFEtV(O4r&^U&Tmt2zuMdKi zJ`}XKX*WcYkqq}eK+|{h!V#l2MiTrhSajG-dr>nY*+M&_7Ok|J0M|&G0HKbyZ%NeL zO?2?D8(c&GyV8i%T-hvzkC4x2k)I>0q2`5Ei=J@vLZ*KYoqME4?DB{ghyTOFf!KS#@bjP?J3={wdvqfs9pVCIwI@PO#H6d7j@ z@OuA!Ebn2hJKQn4ncGK}_GA0VS@%p&0T#E3R`74o#=l1o-$R1$qmSeb{s5!=0AnO4 z_)nPO53$I9!5aS+IsO|8{CAZ3ANYVD;v@bDpYp!~Kt^j#*8!pSQGg^!+VCMZaD^b8 z!90o>q5O+<8B6qLp^RR*^cKb@RdxoUzs+Z5tNkBb=A0}&(sFD=k+kT713o=5ifh=R F-+!lRc{>0A literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$60.class b/bin/jake2/game/GameFunc$60.class new file mode 100644 index 0000000000000000000000000000000000000000..ed8a21f29e4038e2c4eeef2bd2488780b337e2fe GIT binary patch literal 2990 zcmZ`*{d*ME6@G7acIWQqA~7LGKy7TTW?e!Iw3LckK0;zNK`|jT1X(9LliguwXV#tB z1dt*KMWrn*ZM6k#{b((qw3-1D0fq&^}61Z-sQM6X{3Nl`Z{;dhKyifZ76m%GqS%&c=YnjoCcQ0*c68{tjuMNk-I!On9*YHJ$(y!pcgiD} zD9W6ffRb2>8+F`3X+&Un3+oNvQn(495@^cXRL&>@7d&g1%3g)Dk+_-C;Pm|-v(lUO zgG#V`#+XjwGx)5ITc|)0@OiNcx8gQ|l!PL0ue74e8dR6T@dOvjS=+&q8Fz2v`2;S21a ztozdpAHo+E?qq9N>|l4dyXBteMw<0){&(|Ommn{SM8C@wLzf|8wt&~ zf`(`M6B%%IczP^}0SxN6_v*vszEHRi_tR8_X4y%{%M~qC;HK#5Qn#$HPc-_4Xwr^h zg-r~gH-dPz2NgEsA!?T>Xw|27nMW4_+~QkNuu+9A92g^K2H&diWiC&O&W$?8C4RAa zo5BRwG3A$y8F$Jt@;;j%R@lMjM8Ptgpuna_6pYX_pc}z7N=BXl20*(uLFvp((6m1x z!9IIlf_a4k2gb;m@pmc|89!#0@~oE>Tu@_aGltDX>(|!40BGy)1(;jDLcr5;zie4V zfHbBRW{ECeN2nLpvHO^n3#gf? zo4O|Y>wnW@9Q}2LZ{R4|>mC~%%b?3NPF~Euc6>|W7_X}N_8z)V592!u-^DX@fPG%@ zV8t`5IVzSOqNXXI@8P(P?+aXWxfwVeg%dbQwKgUx2d%3=-JisM{6OJ{;g-CLowr@> zz5QJ4cD$(YQn+Z@^Lu&GA1l0!pHLIkvm9n#(URd#>UsWD;gz|N70i=Y6;AVUH-|(n z+K$7g){fT{ei72DWbDdbX4@MIXPB;f$?|=on#5Uw1tr_h^#q1ftluyLIHzzPv$T4M z8hF)QLEwhy!BS_8vN_rt7Zl#&sCXD4@eW-%mmUaC>OF;D@#@K(WB5Mz3SS-XEBpq( zrNtb2IO<&Zzt0Cfc`?ZGJl!%)N=r`JAa6H@Z2;^XUm3wt|93%cw!u zwJIBUKbDV9P=55xBmAWYnRK1Bl_Ukp`0eK*-=IMgQuLc533(qhnrtRr)tyK#AdT3C zh4jk+-6R?DMO!^Iwvhf~APMcQ#M_DSSo7v_jlOvE=HV;! zO;_l5YMHZGbOuXWJI~?MHFV9X%R}{!Idx^Iem)bgVRa@^!x{?7(BwVmus(AJ{WT1c zc%X(6GLBt@A~CM*JB~$}SPk1VS`Arpn581cUE6+~YSGx>&v=70 zwY`R)pTf;FqGBu|@%lxyahZQfh1^P&sMYXhruFR_-sMW3!>_f|eDWb^<&lu4+v(yXDmG}!qu=2o z5w%6Uir?c95xY~I#2;uBL$5f3Khj9Uhjc{b6n`e0j=xZy zI+6Mq$8`L){;#F^nvbxh=_4rmx|`ZEHxk0%!WQ~F{y|csOBDDgeJRR=dyM}44^q$Q Am;e9( literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$61.class b/bin/jake2/game/GameFunc$61.class new file mode 100644 index 0000000000000000000000000000000000000000..c440b65ebe42034b7837279b24992c33982a5bb2 GIT binary patch literal 769 zcma)3T~8B16g|UkyUS8U3j%(B@z7$l5ffiZG>Tw|)d!K1@It2Bp&eLe&F+-=J2d(` z^hx4_KfoVlJkwUQK_1-A-gEElz4x4Z=jX5QKLD&?DZqrl{DC}FD~+B!QjHfh8v_$B zJ$ewp7g#L(TQ_z)S5Le0omH7Yc~u*29}9T3dRxF>OS>w9hsg>`C=1NAv{A1IM;(>D zm7PQhR9k5*leWyXi^qq)?dzOGtpZa)MN^>EQ+D&Yz+A1)q+{7gr0F%bY^F`G8RCM# z)F4-ThdN0*>3iy7B=DqG?5MgrwtKeuzi0J!go{`RFfTBBO4+v6Nd=3zBoMqL=`%;V za3)=Smy5|&vQPDAQFFM|_T4roWo-4av?={)D;;F9+R$!k(|?w6-_6douA4YXbI$%s z*?!s$aQk10?g|Aeo5rYYEs=Sya@+)0!)wRT@`@M-j2;pNv9$aR;a55nh-f1s!VmEI zbBb|glti3nBybKhw64KDqHEw)&wn9|%3XJa9}A`4-_j~($E9zGK5NQ%PcXN0n*0+= v;pbt8u%BB;TJLA$>j4JpoN<# literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$62.class b/bin/jake2/game/GameFunc$62.class new file mode 100644 index 0000000000000000000000000000000000000000..b280302a6e527ee7e7c9698a5bb3f9be671a2a04 GIT binary patch literal 972 zcmZuv+iuf95Iq|^wd1%H(vr00R-i!K&;|k&P!JN77DWoYv_yiJ$Vs-&6332gr{Y&Y zTz-HDs3=H0@Bw@jVm5VKmte^|9`BwrbLQ;tKRC-Q$(AWA}OaDJ>gA zuf4ch(V#NSC-&C8Xsau{-lL8^h-d4}nK>OQtZZekX5 z3@Jy@43Y$LN=?xp_<^L!;0(@bI7`YBBykZF=W&4=>C;$TseP<<0~c{w!zB`*fFCPi zVi8vu^pHm}kM&i%l${#E>0^{Ag;&w36X3LLS>a(zIp zN$odG+(d;z3wO3%+aVWOjdr;gky**H9n77<*z|`%n{NntA0`icUXimQ8`r(I>xX3P zGahyQ4ue_qJRYpMb{O&y3m|s7x)`l=$tc$-yG4;vOfUU_{*^vbFlaR>LVpXDHnWtQ z`-dn_QpRusQ?yEgWr~tO$({T{VIMBpp}$K&l|yI_(=qfV^+IJZw~Lul=^N(1W1+N* zt9!U!Quk0+KOYk2s1xY#k<~vSr+-92|1=`c?-Ru2L`8yb6TN~vBkU^fQdG%K;2ymO J?a6NG`3wB#(FFhi literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$7.class b/bin/jake2/game/GameFunc$7.class new file mode 100644 index 0000000000000000000000000000000000000000..f6be138eb48ea4505ed9e9d33b17cd3789d5e5e8 GIT binary patch literal 1414 zcmZWo-EJF26#izs>DrqOp-z9(LPH6`Zb%IYw1E3Vnq)&DE(HgdHWJokJ$1HOkE7jj zfCqsKB;KGGP$i}6MIQi_8xR5^L8U@@48)nW-E4{_&)M^TzHiR_@bA6*0H(2OgEJhw zDK_MEsVQ2rv`B~7QU3T@8y3T8%C(^M%6gzSW*cHt%ZOp$xj+T_0z;-ytT9+~?S^!a zLC(bh_Av}E2TESGdFHIJ}(dwL37L^P<~zbz6@LKE$TF2EE`m{kS;45fv@YjT)dvcK^(Sm zh-ON)?fG3C!BK{+DHW(2?Wcz8o2gI^$MBqu<9kWm4RG;1PEe0Xwgi!-n)OByYoUA^ zk$EQj1s5kx$dKQOBB^ve-juT8U>p-RUSb$Yjn`+z#mgu#9N7$ouFr|kpEbZ`B(!W) z68NKgVDHXTF4j!xQ!XY=h2f;aZg!4*Q!Y-U#Ne1pbuUmNWH_E?@u@{9n>&BaMIIvt z(2R@M@dhnLBcL7OtDZGG1{l8Ibn%w)WVdA4_5=NegEG$BILENRi?XAGuv8IxeP-Up z1zcnptVv(DqbjWpQI;*Ndfuv6tmQC^IUAS$&(9?hOBeH4pdAP$bz(S{9zLoV%mbA`4c<`eEQ*m+GSaV8#u9Iam(H-fl3sOG?RTE);PrV~l~i(L+aa(wijRCT)f!BRO#Ddt|?(4-SV;ha~tFS{F$5db@ndap1h5B zw&CU9U)#YlDIe_MBkPu#IzfBJpyIz^g#U^Y{5MSS-!aAiz(xKi7WqRg@khAA|H7vv z1^*k0KSqcDlfXOFh0udXV6cLZ31E$?Ti_EXsmIlXm``vmv5nJto&F9*8RqEsAMesd AR{#J2 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameFunc$8.class b/bin/jake2/game/GameFunc$8.class new file mode 100644 index 0000000000000000000000000000000000000000..10bdeadef5e364cdfe64f7fd57454bcd34c66529 GIT binary patch literal 1341 zcmZuw+foxj5IwUAED4K35CQRmg35vt0dE+@AP|fayntBcOKM5Ru(Fv=WhbaF{)c{p z4{Cu{`QQimDOz63QlBh)mP9sasxm!2+tYnc&*^u+-@FAdiaRp6;VTOHyPqRWUt=eL3DsPn}FEcbw*us{R450yYnISyw=6Mt$L<}^bkzx0| zE%-vExWdaz){4U!V)Jg!a+a;Kt^Dd?SgzV0L+5;;);5d;Lqmbf^bEtE0h40Zt+-=} zLVQt{ZBa-xp^d>PIhM?>+A=HM5?!E-VvSM`1atDdouhz+c{hR%bn4hkfC4qE-wkx3 zn{wQ9tOCJeX%*dLU_TBpG!@--Zi{>F4!pHvN*}=?9M;iW-`DK`14mT;i04*BKFdWu zf_@y+ag?DwfJSxTvgL6D$1%X56>NHqARYBwS-V(r%ZgMunFOL3!bu$`7`g(P>H-Z6 zBTnr6>J0n;+o5zil}ee*iui~@G8v;bP%CaX7la?LAZlZb_kPRpaYi;#E?|2oiQ+r z6j65gI(K%k@XxZ2Ql;m!xPq%X()BFrgA825JgHsUMN%|NscH)buB*d{;16Y0d?6xF znhgT2DUhLMQChjRj8&@6Ky=Zqlyf{~t0`%zsef3ho#tp(J z?O2}2J@kS`kmecwN~1@eb|;BW&s3Ggk-8ir=-lzY)9x`f;Q Q*#xc2^p8@M>ID7%0OA%eH} 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 DjvnRk literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItemList.class b/bin/jake2/game/GameItemList.class new file mode 100644 index 0000000000000000000000000000000000000000..30b53365c5c71026fa30f235e340ccaf85bef5f3 GIT binary patch literal 10961 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$11.class b/bin/jake2/game/GameItems$11.class new file mode 100644 index 0000000000000000000000000000000000000000..0af74360d26049e2532e50247bf24c5f473ffd46 GIT binary patch literal 1344 zcmZuw>r&G|6#lj?gqA2+?iXuSR7#;0@P?qsrNw9gXMm25&eYKCgq1X5l7RXYzKS{( z8GrZyK9u9x-b~TXbWe8A+3$Sk+jD;X{_zvQ99}30F$}%a5BXfy)GIu@L5t?|iZ?Mk zt02NK5^ze#p2t@V{mADoL+6sPh5wi#JeevoMAjUG#}GzTMF%<=dJ4kkTgR1s?(XXQ z7H5bToU(2ebyvuJ<1peM2#+!q0;z&L78yEB?rZA|{gWw*I?=P1ZkyR1-xapG*o8|B z>aoX5p0K!Gmej(uWk^p3F}Weie#u`9o|%GbqO(*niUABM7$lMb9*sLHhA~0~mo33< zpJA{Kqkc*#QH+u$D<2BbLWS}#S?EF-5Pj}7Y5S~$aan~cqpH7%dd z%Q*?xTBturyBR~xA=#3cL2vURh|rF6?3Q_+`kYj2y=6ucqj}5OWy|qsCN{Z$;21O& znr(A;&C)%Odq{$k)8M1F(umStq1`-LMz&+>JG#EmM+h-mV`Ra~h>)|J_G&$d>;>9U ze)P~P0cOZbfN;F`Gnx8zi4JB2u7+Dzs9;<5iDc1k;O-L@xL?1iA5EC>KhnQg&HP|8bQKd#C oSx?p=LTT|7T8;Yxp5ZxB52H{kVG~&3qV)$6Ath?nqP7ZwrVY>*O6`xC^s?NBEz9oC?oCiS zRo{GaeCmUJcX;tZoj5u^_y_n$*`B)zaZ$<)_w2prp6{IRyXWNfo0qQu6mi`|7oqPD zu_B9wnpl;EDPGD-u13d3izW=hp@g&Ksj{bJC~S3gNd){w*m2469Cd||8q6;cjB$TS zW|2b1LK-^=yDN?-XX>kqGMpESt|a6tzAfAZ5juL`J~Y&_6A=zn66un)j1kf`smc?C z{eyYF)er?&c(uZu3LURD){VV{Y~a`{^`N>UZxXtlcBzD+!6d9)a%@#qW80nOf6m|o z^qJ@-?0ct_Ya)^sKEwfLY5RV_H{V_WUoGo-+c~F% zy)rF=_TXga{Ca51Nk@;?u1@9={jNNHCC_&Kh$m!Ps%3wPV3j>jhU2=YWP|~5TK*|O zyz;>E-sIgGw!}7l>N&cf@JAQ2yk^;gd>HKP;l0(m#C9j|I6rptssV=CYJgO3&to>N zaE%TM5}~P1Xb$^Yq14atx~7e%*x$rQJ%2yI-JvE1awlG3@E^>cZepZ~ViOnm^h)mP ztv%iAw;mv!dere;W6$IZeEsW)@!RJ8pSA?td4>xc7=ABeWP2cE*7zTE_ROf+dV2ajY(@ord>5;?f$#aN j3v-;qM0#|zH>clgK34PxEU-1W1A!m;Kg%Ina{l`d{Ssl7 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$13.class b/bin/jake2/game/GameItems$13.class new file mode 100644 index 0000000000000000000000000000000000000000..3acbfa4ffcd7884f37f413043be77456b8e2f27a GIT binary patch literal 1867 zcmZuyT~ixX7=GSl!zN){N+2y%Xi;m0hJpp9Dzx%Zz*Im5#7b2>?4BlDlHHhWV0zOT zr(W5r<2ZE$XS80Z7xqFsVPw2;yl|Y3zr;&_f%u+HNEe4pcF#HQ*Ykd!{p;Ufe*-W8 zM@NWo?7CQ!1N|A1m;KZHN_#S2I(2SPheqfOFee=^?Rc^%OmEB*1>O-FMr_CSE)v4s zJxc^_!nI@^VZ;nX&_HOKu^l;A&acYiqFBvILSn`>MQ%wHZFQ~@H7{$I2<*tqqXA!PItJR%&QaQ&BK9O`A){z)HHOE~siR}RevND31Ws}&*K#7m z;Ziz=$MK|&CkQP8G!^-{C`kjS@DxF}@->B)AfmZ0iay}e=+V(lXbzaDG7X$Tit*M( zuFR>YDHYvW1AV?1rdxJAz!m^3e$vmdU0}gB|Ud(@(Q>AzUJ5~V~=ktZQwFq;lzwt z*2n-`v$jbecdy_ypx z9xD~a8wQr}CPPozj-^JD(5;~V*Z67{>eIW29K(6MWnfvs#vHk^hn&RQ2HsJXj+Y8z z!|}T+%+m^O>>ohE3InS!SztkW^U{|hv>h1plp6T3-x~WSVJ|1#cdnOJmqgUfS$?x| z3oa85EqKCQn-zuH@W&V2a?zAiwz?h;*NfGsg5?`z(lK*xiKl#4dRf;Z7-`3m#R<+; zNtVzB_JXf7_;0>+_^k73kXPb0a^@FAf96ey15`nV0J;T@nT>olszSUT;uGVeiQme= zSzeWaaN@{Myj0bdb7lcrF%DFs70OChPC^LwB8B^Dj2F@M3Htd-gmKA?ULFKUfx0^ zd|z1|?cBmhU35kXe1}xy1H8&ucQ=uI#7oTYVDWn#Rum<-jVrudO}u+^3$0a!M%IX> z5-U4+PrI+u;HU305*+_WXrbF^qdPcFAES>x;fvx^9@@`%x<1D;-9?7JfK6YbNSnAt zTewGG;Ya!!+w={7r+fI5zV&lBkEqI1Er)7nLHcQbh-pX31^2qY*kBtluWF=9+Kl4!hZVnX8mK@&}snCOF{{%2;}&YEs^=ltiteCNNO z*$?l%^$vjbctL`XP&cBCYU|rGN?vQ<&5wkw<%_Gx8)u8zii+ zbR{z*m$4C>IM9M-aa|j{7-bb9(TlcXh*CuGD7Hx0Ojzj&Y#vP+o#1AO=*BpEXIc{k z-w}4a5!+;J7r}7V)KSfLyCA8HEQqu{CZiiWIXQ`ay#vX_;I7_-|4+_L1x0ciuuDd- zz>B7oqLx(6F~b(e?3VF35`=~BF>YbpaxV8qSy4BRuMtnm=yx1c&3sC!a8QT`WehpM zu6Pbu2=~a?D}>c4GdJ1efI8Z(#nb^<|Sj$1Ct&`!Ekm?@{gEG{a!aV5j|lw79Df(64i_tk(> zDBoDoVROt9 zPrfO6FY#^zuUrEJ*Sv}F4JLe?8<8I$Kvxi8VHNLXSBcjJyyNpx!%qRQmRAAbuU&YZ z7uQ^%gI@8N`e#jRvDh{B#~41sdLu0*EGc36yJ+YPwoc)}?JlE9x`fvF1;koQ;O`?P zbWCDvaOf(noa4lgwgrzftBMulb8LYyg&p<55_*QN;`caPUP9F*`Z@zwQODaSob7sZKgO2OV$Ac7z?^SonBHC>9d*fh&kQYe&eV=^vWg zls$@t*qvhzuycfq?!YnZoO--%2Aw@}(8XGT-WCg8M$muFW5nou&f(f;PG7*1NgOL7 zU3Km}A}zK06h;EqM4_Alzlvtg{A-Zu2EWNl{PuVq4fFJ@9?%*zci@)hR z{LAY!eNR#PftJ#bw2apk^b@V7pQ)98p>6al?V#Uifc~HZ^e3h0E@kO2r-NSNcH=H7 zcaWeAm`;a{pum)mBRGU-(ZaEr{IihY&N@9yox$xgPo`rivNVWW*aVv`LbQVampBwI zV-Lo#pWAvGgJtR_c3_@ROhW@u`J_Zl7`nX#&sj8sM7>c%FYz4p~eZfBpli1~^Cn literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$15.class b/bin/jake2/game/GameItems$15.class new file mode 100644 index 0000000000000000000000000000000000000000..227ebf52d3fb8d9c7d257a40f7d848155334e287 GIT binary patch literal 1500 zcma)6%W@k<6g@qXJ(4oPL=Jfn983tovK@;!2`>jjV#{HS>_Ft0kU)vfsF4OsGh(LY zR5mR60~X{PSOBFWsVw*aR{RYtc%7EUs!@>zs#4#%-S?h8_tn4t{p1$_%eZU95;*>) z+*8ZtrtGNlbuO+}o%rm9%QmtCGpWN$pxr>LNP7BeLw5NkFnPrfe7!1=nJeuIWY@xm zDj*HFaH@%Zk86Q)zcy z;OJb5R{OHtmO-;z(~%!ES8_NaaHQ*dd%bSG8{Q|$s1uT3&QBN%EX<|RRm1mmU9UWC zuXHDm=WyJ{G15&jN_-rgz)6PgwS5(6fn#Zm=5UwDd7Q$GjTcBcg)usJa2hW%V_g+7 z^4T;-0%1=4Sj)ih%;P1zY~zf;=@i;iEFGN1D*|~x*eAO%dLUrkbxlC8I+#O=SNg0l zS*5RRnmt}qzyi+OSR5xkDush3lm!azPGzg^Zm(Bvvwz0&dH_`7l^1Z)#ngr1o00OEdEJWi*KU4ZLOJO_n!>GCXwfHcV&i%XW{QB{ocy?>Jb+ zyF`w=@_z6|TQ-?q;btI!Jg#Bg#@cvU6Uq)M#xM6(j~Vy%1CxsD4&H}Lu$t00)c{f8 z#8|)wjkHnPHSixesA7xr(2GgwR5~IvShr%8%nnn110UJ=kZqreY~09z-TXhTJ4!o; zFf-`NvGN{}WU@ltGJ|`#rlq&HCA-N47HVNH^3;ZJX7rg+!I#Xaaf~a0*A8Qj+LqF- zup!{ML7<|wwv1yHW0u*?@J+#B<>XVhsa>RG-Z3%%2)Q5mVWGgaKnd|XvOGLQ-5DBD z9;U|oF~!vYoToGZnc}lQPz>D-I>a9-*UZSZi0Q=jH^OJ>Q(x@kXdln_F}u*mxyP7a zTK&(~r%Tz-Z~TPU`gr}&x8GrrmRE}Jef_($hw7%WIQKKQv)>zb zgQ(6RM_PYjTKt0&AJ$8jg;gtqO=|+%)+9c&as$fqLs|)C5=0F=>w4Kx=ejWH<_(A8 z*pknkKbAR$mYj5xR~e3u#z|{SpE7kTH*C2A%}4sF%2gu zULQu|USJSIL{~|c>Dj}6j5>t6F&tO7RGeX)#E6Dd41+$j=V%I?#uIJq<^y%d$-WlqV+O$6gOt6`!!=tdp{CNaejNvqiJMeBO}rig z#mVJ4%xIWq==MddpswhS6nGiuDWy)qFileN2b0;-%ifb;!D|{`W$5w&)Gh^HhpLDz z-K$_-F#7Z zGkHZ@Qs6D69C1qew&hs_zyRf7Sztxoh3;1P{3=;rusf4oL+3Zc{R4$QZB`?te5KZCz7%&<&0c3)P!npRQ#kGG&IB#R>rg) z8Z^t&&D+GBNLrRGFPOUHNC(4I5doU0@V+$n=&aFchE}Q-w2b|T(08=qh|o8pvcp>u zq{~)1i<%OxZFD04=%B9xI7_Pn2t+%-rKM)B(7}bzG|(`OqPu3w_6R;mHqR!iI9kO( z6~p6Iyzm5Llk*37sft;#{|KR2%U9^Go!j<5Mf5-owp2e?2Qt@{trtE{ScqcgPo z5aHMt>h?d7cP4{(-#I{{Zc`zfH=}RwK0?QM&3x&TCm@9sDeQH2(#1eczJ7pPUnAk^ ze?SiA{Nka8xQBKh9zd@`Zbt7}d*7o_SDaAm53qud6-^$!E5reKC%SnTMtBr6yc_3v z4=(XuEb~6B@_wZF01SQtE{|cC58_ikgwOaezTqeFGe3o2`3U~xXYdz~dpwWTxUBO` ztiplorREtbwBzLS4>b)ahAoPu4WYj=!a7)Nc4V}jgxg;F9$<&oAaw`u5&a_sq4G<= Fe*wgX&2#_& literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$17.class b/bin/jake2/game/GameItems$17.class new file mode 100644 index 0000000000000000000000000000000000000000..e8557eb7a07f2f9209fc9d01f9be17c6be0037b1 GIT binary patch literal 1143 zcmZuwOH&g;5dLO2A<1SD2_O$eBO)dw5C{Sy4+R7(1$ZzPReHf;GbSsWP0UVEFCP5| z9^~lR16rZ9Jop3rQIumAawq3Efv&(C?(%Z&>EZH8z;I^-vpUWacuqb5i5kqexNl}M9<8Zf_ z$;+DU78k?lX6UZk)tKgh+sk9*EA^TsHf^e(vlt`ZH6Q@4Z-mr2!ErC z27^w6B(yXFMW+IoAgKWK*yUpqt#pMBZNitTpQXmo(@s4mE{fCE zcl0(e6#aCB&h+yJ;(?bZh^HGEqc8pi(X^5$7)v#fjHN#uVdymDGrCe_ooHbC<4?>5 zzA7fo7mOfG6f%fvQ|QyOh-))QXtT&_b6D2qk<%8M^x`cFZF)ooOIU8cXbUTJ)9`>W dgV6h8D)b>K8dkAJGC)fKtkY*uf@%W&{sA9q^2q=I literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$18.class b/bin/jake2/game/GameItems$18.class new file mode 100644 index 0000000000000000000000000000000000000000..7d2236627e3fb48f433907e8614b590101d33cde GIT binary patch literal 1081 zcmZuw+foxj5IwV-u*tF*36Yy3sHh1cM8FFgK(4V;1wI&yDt*CWGbSsWP0UVEUwpFs z10VDod{8TvmJfb_A7$CIiPUP5s!UH$PoF+LefHPyA3p&sVBLVmF!GEaiiLcY*G2vw zEhQ=H{`CBkfe6DyD7fv(k|#xr+j70ao3vx-TXsB0t}^K9%pOBzvr!Qybi^%0(Z`V3 zaXfLqT|W@5hy1`549T5_&D}lTa+KdYjL4efGmPzo%7wWU7@}1nOIr-7bcSvn@x05u zYQ8L6j#n+jFi6Nv$3AQ~_qk^~!jm<@D-1EGN0}j;4#SIzW6OP6IO#0&IF2(IF)&Q1 zAxga*3!@lgFzfu~K2>pLje(U^%2^BNf{@?jFTAHNulhO|5XU4g7?@%h3c;xkH@Gh> zT*M{9s|YS@buMkf8w&HXk9doy#&H=}4P0Ru454&`7ShPjD;;sSO|Q&~icZ$TEOIm! zhh|Do7sjlrvj8-Yc>~w}?X(xQNF~&1?0K7e(vh!BT*plVHwY`l;CNCNZefWUDGT{P z1W&*)dg7}Wm0EO~(toV}PK7#Y&;&_g17*qW!(HC&NyRKT+AUiY9VMny$ED|#CP;7F zp6xb#(!{QiwFU{mDtVr0ZMxj|g^wwkhEC!~u#!Z{H^^HgOLIbW<{M(4X`{iU)g%jT z1rZANlW%n|ksTn9>LWp`0?3h70DAKDCoK*AAM*$VPt&p(at#IgHQb<{14P|JU0nDi`Ex2lfCzR{q~&mJ7<6X>xUl! zoJUauXE^atY|8V)MX@D^Z_y*;$}Q*2$R!OyhF+gBZMzxUl~rN5Hw&UdH-;luOxtv? zF$DUPiwwc>azREBKtx9fM;JP0Ok2*?w(_!?6M0KA#AnKeuogwtRB}rhbW5hgaB9Z) zI)5&s456ZQGZPHQ`jh0fEru;&7l*TM)wGMFVRSOYDyFentE}aPT_{_oN-u1-5@s0a z_k+uVX}D|d=<9UJ}dDK7%&a#EjDTe4ydN;p#lf zbbN@5)c#4+E~t58=vVFk2WyH*Z}f^L`B9|``C}cIaG5gAX^ekWnPfNEo}+cD3PDPPGehC8-(6L zR>J~Arw^rR)RDton)q#D)g-Yuspj#XjwRfuiBWx`w)-&;nxT5PqGJ^gD1)qY7i1%M zhLeYScQE{uYGnhBAwC3mV5bzyZb|J?ho`_NcO8jN{QeZNmQ2DP5}vWI6T5!n?jHI)WAfjTNzXVKn|_LpmKdAf!(e=P zA0ur&$43`~p6h5=aCInE$MyAjzi!AA65pcR6Uf`UC+6c5{};6Hzd-xu2kMxN zXTJOf-7hdz$L+SSpP*xaw2PGFSNm8Fey6(MU@cFdOYnKb_-*v^J4o>bT;^F!@f_~) zyV&51sPZN3@ca0JFXJ&^!7g9LGyVWC`8s~#0>AP+UU37z@d68R$$EH+^>LGp@Q3Uw zw;GgQqwyiyT9m5Wr&v>z(`}t@96NZaR*3R?j5Gw!64kG~Tb?qGLF?`5>HZTr4LANk aEC;x-~3DNP~B;DCo`lXp>@45G!^X$3Ld1-$A z_lKVV#8FbAFl;%?XGJ`g;W-iOr$@pOIeT|pg`c6>qwBStgyo1L*PX*@ULc8K!vVuG zoI?!0*61jMzbBs-A@~r~P=gH&^#g__hDx~^Q5@kjreFvUCU=o2+JYjycn6vDIo{39nC6sP_P~h zSFd3wo*=3UqDWVccrmIFQe)T-w`80_?7~wjo@ChRL3@OyhTYghH01dF)J(}Vg+uTx zA^o4$&?yO`2zl!s2OBRy?EOS*Zw0g}w~4 zPs4NWscn`rb^!Ys)FYK3LU<8fDqdPihnrmu-8ew`>NBjgtUQKRnXgqDmPvPuG-Hq* zQ6rHLX?Pj0(A5$ny@OMUp`*QH3|m)ZeAzr&=HiHk9#A0#4Qr0Fm@i&nP$o##hgVhf zuS|T^RYO8vFmSF!IWe3I0lZFSkSY@yz#vs;k0c|2BpLNr2@BvjkuY4LHGmXZr6f7B z#7<}!m53p`z|UJ}OrEiQU_cOWU_!+>!$!}2C09qdEi_Ex6gi~@cd|L|=vlJ!5~I)Y zV!33dz*S5$G;GmIT#DpA3hP&mcoJDT$>#c`=vSlVlqj&VrgNloHOc zD927syMpZH_Ue=4z*laQ6>!UX3L)=g06awtD(7SUd%-9B20Xw>Yz zhrk^Y6olv*q7^s>KPhWT(ke!@*3pjMk9vAafDT$EfG^x|o0f{ZL6@spZX42zh`Orw z)v9(^75o4DVy-g2+Akh{ehDuOb^MH>jwKx2?{`fPZ}v}ib}XQGI_W*@bT^T&(By8& z+La^8@N4S@ZCMMnB^e%AFKBEn&{#4&v|iBmwLsgG;bZFsjjjb6O@@cp3mRVwG@fi* zz)1My#V^ow7h?-JU3=qm)VI-Tni79y30ePlvJcAr^9TJ408XL-V`!!!)`4+!VS?u7 zBu?NI(m0I*rf><ae;k?UV=AW|oqP zoNRWIERq!5Qnt(CNjxl}7kTWVpG|eHG~-J5mL-a%YDaIcO2iH5XF*-_j;5v^O%E}m hqVI2vc>f~whI3@4pa`2*Kh0ynp>K%dk>iIx{{aD4R8Rl_ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$20.class b/bin/jake2/game/GameItems$20.class new file mode 100644 index 0000000000000000000000000000000000000000..3fb2452c7f2bb6463ef072bf96808dc1fb7915af GIT binary patch literal 1739 zcmaJ>OLH4V5dLOX@>3^t`(mQ&+tP!_no)Sy3W$4DpIoc7b7J ze1djuidZx{mDa1Qg=1Lg+yB3Gq8xWN zCNPQzO{7W02*a+|!b5nNF2t#N(pLtaSKmqN8AaTzS0byvM`5v%6&_Udf-!PQQkY(q7PfJ@QjW%l&B#92^8qz`mMIu@8r~~@oXhYen)q_wAFo-4c=Y>C}(z@i*PBRQC!*qvA zG6@?mn0TJyNaPURXgv%I%UEGBojR4WdXr&t*DA4z#64B7YxX=|GV$VnbGV?qs)d(P zV%W1(UJRuy>gvC@W_Lc$Ypnk~AjCg4Yov z=N_6{olRtiXh!E_FO3=?OI8CIseM0?>4a-^@avIKqZgXOfleqZ5PY0s?o4fCWHy!| zb8I!!!toYPv@m%vHa*qC$?q_n)%GXMevgrCpP$xx^Cy4Dv;R(7czWPl1K z^LJtMTe!sE!v=pJTl_ZO;UC}@+1va>e9S+>C;U@<#XrM0{PVUfr#q>4Wg!vpDlWB^ zyo1Y_Cm}6-fh)9T&}Dsz*Kmg9dY!lo!T1Xq6QgY3pVT@A%5B}>fFK*AXBF6>f0DrT H#nA5`1v;Of literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$21.class b/bin/jake2/game/GameItems$21.class new file mode 100644 index 0000000000000000000000000000000000000000..4347c3692b63e68813feac4170fdfa25f4ebaa2b GIT binary patch literal 1141 zcma)5?M@Rx6g{&oEUhbOMX)HfDr!rCO7Xi$VhWljfIlGBM3ZLdPL|Q_ZnHa(_zW69 z-b51;i9dV*AIf;AUk(XB++^qW&b@Q)nX{+A|NQ&~pn^3U7Q^&g{!UcN9&d~Cb6V<3 zwBxzTvW+Cej8W8u^(gE-b$LgLh+%Y922!mtBnrg_L$VgSB8>!64n{D_FtI5Ev3=0q z6VWc;^94g@Gi-6c!6T{j{$^6`%a|d%Y0NT-R2fD*q3Y`llZ7I69rCiz1FyWJA{ltq zF`Q>`Tw>PrL?9yW6BnH_lnN%OaAiw1Rn^?{B;AVkij6cbV%o+OO*xH-gG`|t0ZyDmm*LMQznAf+a=m5T*D0;*H4lj)*Z~@ zCaKX85h2xrU5{V&$Lt+<3?-{Jub*+RlMjkYr{#59$f;l2klHxzlT+c$PAn zj|o~ez#>HrkjR|-Mxl3Hqr>`W98C<5W^kc@bf4fgr(9{_7?UqcN0>Q6{s^}yU3jyU zbYGN?apxbY4E4kMgi-4=vep;OT3@>p@;#LP1j568Jm`|j;UOLorvx5%xmB@BF-bN6 Mp3s}7E=``EzdYOp>i_@% literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$22.class b/bin/jake2/game/GameItems$22.class new file mode 100644 index 0000000000000000000000000000000000000000..a56de026f48b353ce64e87812f870a7fdd2779e1 GIT binary patch literal 1216 zcmZuwT~8B16g{&oEL|4)5J5hyRS{bXT`hhWQKSVo0b&9Y6CawT9m~pgx7l4VzWC@b z&?x%iPf$YC_}~xlM;Y&IOEWb#>D-;Ucg{Wc-ZQ`d{QLzVk4GvLhS3++9?u&!tImy8 zTFj8wgQw&mMm-#UzkyLP}ZwkGA0i4+*RYCJTH48!RRMIBg%W4SeB zGxTk@R_MVX<*E|1a>IMceao+V#4avQ7_w;@msjmdSPl#FSyX#a`Skw%6gVY>&!&huX}D9=m{SV(BS~q@#=Nj!_S?xTceq<{3^s33&Ojn7~qV0uyo_LOm4F5>G+H z4ct<3ljbg!&>5uTHcpee_5&{R+|^OQ0)s9@SYG8WjoM+D{5OlFQA!iTqK=^mCmPVO z9DX7PYP}EvHAMEFl*!Py8CsRSb*s^mthVXx`xU-o3sIkHcP=NiNm?wq6~_xmo9jH> z^{PbKbcyYZkOCD&FA&j6Plfg>?dHicvRyOZ(esr)6lk<+WTCu8oSeP1*PB6P z`)Eh`(NC)Ym?J9yVnYL8$TY7DbSUqntFiV~>PzeD8{#538QEhD4-Vki1$_FHsLrg0lkyAcJX;V$;R$5Ae m`*;vBHL!$-M07dAVbc^?jF^|OLN-og2Uh8?QMf3Let!Y(JrUdh literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$23.class b/bin/jake2/game/GameItems$23.class new file mode 100644 index 0000000000000000000000000000000000000000..ebd1266613dc0d3c267ead57cf81f3af37877a60 GIT binary patch literal 2973 zcmZ`)Yjj*y75>i2o!rdylqN$;3BeKpG3gMZ4Jxz+Y}2GflW6(~q@fHqGbfYV%-lQN zdy}R<3R0yiukyC2pa_LZfi`5)(3WZ~R47FOUCYN>xcuSrr@#EyC3WvR(>OzFvgVw7 z_Ur7&xA!^q@!?|tmg7ScQeeqeYfLY1%UC(xwvLwWK|j6`~3eR0}NXu^rtvo*UNQMr$~$1>!w!%E}H{ zp3UbH(FjIuU!b9x%p(^ zCP%WaOTI&%kJYa*I2$*_$->~ri@J~ zFL#)$lC*Pq*JHP1Sca=jBm^!lGg2X=(28pWYJ44(oM}042IhO%GQa_TPT})dPO;kr z14?*>GfX2lqPP}cH1UPX++~Vfg)ea`7Ho69Y&seGz;>@!SOKo2?`G|^faqrG4GK3h zwI=6I=wN$ZNAYE>F|nF%E{kvu4GJ9~7{oTZ|eI z37BJ?AnY^wD+*sl4|zf*ZY;N3D zh7H(cVxvG^QDZ!?vu(XrFxtLWVF0%XL|C9?uWVd4OK#yw;*Za_R0d4xC(c`q8w6uUU04&n@yy`QBc`iYsT$t zT6;AhN5T#Z+_1k^G{rEC4EOn{z+y&NrQ*sWnzky8F&d(&tmXR-ftmGk3JzRKmzB?J zhceK5J_GY?mYkt}zmsN5)BpT$vI6qQ$GC|=;DWN8_t?V<6WB(0o(Nnj^hK1-^Nx`1 z1cVqn_f3UwVG%(xaEtSWi?T!EE{@bp=V{~wBQbmjJ5Ag(zneEvsTID9?@M5(+Zq#|l4TgQh<*XYy%< zXILu6CUcfg?*LD>pDR3zUyyQEPw)V&=%#oqd@14g|eqB91E{0#Bq>~ z78GVU&{(KiinR~33a^Lp>yZ)aR!V6fjwl>uT8&4g(%#4Cq~V7Glx|y$J!mW))-jT$fXR(%L5xF+ttA zA+S8UI%xo z_R$3LfJP<4mELnYn{;ZYUCAR7sjZAHf#Fw6ut)703t%>Rx+}eBfG;Z62>xq8^!-MhkA&d~$ zo`GUF-Z?gE}lRI&TS`{`aRp#Xk1jpyRO94_D`I=oWA6tSiwJN95%BEpiS-ASZw zGH|H&V={cGbUIx3AHL@>%Nr!$@X0%-@J0d0Ir6JlLaGEe0vCRZCkSx+@GrcLcL<=hVi!)K zfnwV!>hUgp88}U`wxRkgJ^Y3VVbT~e@gA`7Ebc|5NHMX6Xd(FwZf#pi27VVJ{`YvF Sc7sL-@B#f|bRD+@{rwlPZu_+W literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$24.class b/bin/jake2/game/GameItems$24.class new file mode 100644 index 0000000000000000000000000000000000000000..4802023e4e0cdef333099041f404f676d6fc873f GIT binary patch literal 1602 zcmZux+j0{}5Ir-Jy^_2bBV>#nE{cPLWML^7Fd+s47|AS=4Z%i%kSf)(8jFS1u4;E} zk{2q!k^BI!KpBVPfe+v>-~n=}aH&92Nu?k?D_ONl`DJ=8-94vIpP9$+9zFsviLVuK zhN0{F4KZ1$>kUzur9tyW!`m}?P(hSoICLlvE_&i*O>g?bW#~O>+NOV;A(F{f7@{*y zO(YOOTtyFh88(+qTg)#vt_pWiziJ7FWZ5xvtD?K6T(>u){x#F1o64c9!Z@ZGdg{X0 zPBWx3S@K%Z3zlxz3k$w$+V$xewlMTBd!pKOZVFd-8xDbs&;~;;6V57Xrr}rp>F{3N zq^f8yTZv;3LkhML%n*`xjEe0TCLl|eUMH|ji{k_ARIr0#Ysg#TKBap?#V+h-;B}K> zr0Y6zsG5zY<4Pbgd`L7kOwT9;*eCNh^_2uZ!kB_R4BJDQWqUe-Dn7y2tsQp*87&KDAyps+XO)oiaI_PvdkZC?4`}2j0GUgZ*qe+7H zml(#oXjqr6wn2lbU+20cv|mbyAbP^5>s(Xw+k)D(;OoYXIlb9_ zr-=n;*)>GTlrOozBZItD9YHAChUIwlAm@aC&8ab{nr#br#?n1ccu0dl(XWGGr2m1| z3at*1Wn_ECe?sgoO*j%XCdh(6L6i>rXsx!K$Znz)-H**Q$^;W+Wr9d@;0~EqxXcdz zG!z=?geI}I70ObSAWAXK+$vIA25{>KjO8xN`OEjW?jv;%Be@6-$@CgVRkd#oncFBP z_dP)V0S+Fgs83gMbQPy|=6^)L^zKQXS;N`8tt12ZKAdE}lSGyo3Cg^H6ybb^KK>j- z{AY~tU$C41iZT8h_R@TU|BfmC0!983XZb6X$)4k{ai0HyZ}=Nj`CHWZpSaHdf<<$O z{~gpk-m0rzGgXN5_%fiWi3?aDmZoq7ix?&x7YPl0+Y|p{l>I~hRs@xR$FFdSY?PiV Ma5?a45lz$o0B1Ra1poj5 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$25.class b/bin/jake2/game/GameItems$25.class new file mode 100644 index 0000000000000000000000000000000000000000..d56fe3974805fb8cc06f7dde72019901715f727a GIT binary patch literal 1152 zcma)5TTc@~6#izXrF2=O7L<#Ks90N8s1|Qf1QF3R0bf88pPHc^+mY=q=}s}e@IU+o zzWAU7H1WY7;9t_9XG$dt@xe`Y&SlT#J7>QAarEswfC82huowp4h;3QO*F;0+pVLv& zvJp-c?j;ao7>ayc@%774E>*>jmQ9APdF3m;z`(P)O@`QVP?a_~k`ChNV(42{zI@SY zY{}+^*zzPpdNrsBZ&Ngtu{+L~uB(t?cs0@~3ZuvnuSs2c$}o`4QPi%;d%~~f*L73* zwPH8UGjz8?Sylv`(2&Zon2pwxRaMbtUHo5PZZnAs7);B?FzUEkl(O47Wpl+zOd+4ZG(-QHgeM}D4sPQPgH=;! z<}oxWtHw^yGz+yc10u@Z(?mHH8N!`AnSa{whB&$6SG*u3-mFPo52_4K z$@gV**%M(XLyUtU(7%E9Ni-%qLDmdOMlwG672Tgnv0&3_lZ5pXG5Xj;wsRarvX?CC zk3Kq0fhm%v08ghrkvL8_)nWaLr1F#0H2OQK9|=p0a^~Du2N*~l?HyvkWrrAX4{$lY z_Z}%Xeu#17y8Z!uZp;|_xJl+dZn{_$L4W literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$3.class b/bin/jake2/game/GameItems$3.class new file mode 100644 index 0000000000000000000000000000000000000000..54f4606c58dada655afa9984eaa5740c57d678a9 GIT binary patch literal 1519 zcmZuwZF3V<6n<{9X_|B^B@K~xtDq(%CEBW}!P3$f8f-yHse&)zc5_YEZZ?_hO~5Z5 zKKkA9L#Z>u2r{Epu{ML_2Y-OS#$Vug&L(u$k)7Fl&poftdG5J?{qx7404AWK2nnP< zm+NXGUzK&0zd%b-tGah`G73ZBSim;#>Y}SvOImuSBAX-$44k!HTTcmu)0tHPW42LI zafA^w5y61Kz9rjLm)i9;)mo8jjuJ>LH7x0@%9hRNzS7V&+Y>mr6et&fQV@t#l`hT+ zB-0sk>d3q!-D#c&1HHkY`Rv!?npEvP>A8$3< zu8!d(UW(#Hfzd!EZu_dX9TP7jEikgIs&dh9sZ1of>jFoE!0A#}Slz#o0+%^uBFnK6 zKOly2>ywBWcj;wm& z+cdtco;R_;>ZsT84Xj%g^aAHy z%V~J@OqP|dH7WvT(Iv8H9qD<>!x%9UCOYA-^l0fErPCzs#1SH=9%JxV5<=7zHx{CG z3kDg7NHTj)v=7sX>SG_RoM4=GP7qFvJff`^&e?%)0-@o(&;&+%p&~QwVFYXg6r=fC~L_ir^Uf{spBj BQ+)sc literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$4.class b/bin/jake2/game/GameItems$4.class new file mode 100644 index 0000000000000000000000000000000000000000..b38ac59424ebc25d4ce8db228f051b2e1cde7acb GIT binary patch literal 3355 zcmb7G3v?V+8UAi|H?!H^m~`8;O$%v}hfR|v3bhr2p|m7nH7#J$g{JCuGJCt3c6MgF zGn-P8QXilQzFMoMRz*bW6KPD+Kr0GLz*c;Fj!%5+@vZ0hICwb3|DV|`vjLCVp6vYd zzwW*N|9$_RGtWHu5P*yEO${{yOLpsf)Ww}SJ+C_Z=qKf=ynDeq4N-yRAzP2_4LT)b z5ZX>ejSCbhDFH2}DpQ5ksv&L%(UOt)=|1Dh}$ymJ&$zJBDth z^`gn|Wo6VGFAYN?`HoR&pBEJ1yPLbq;t%)6R9pu}~o4@y;?P zZJpfx7lG?nhf}JoX?Pj0>%ZxY0%ce891XWr+@%|=ZcW#r2}?CBq4R{cT+T1C49x;{ zhNZi%P37cMKhLID2-Nd-Gs8utdn2ltz`0ndp+%r^zPrRKoJaLmdrP`SrE21X&6VMr z;oZuhZ4L3Z&X>3V7m}-CnacL4x#8pH0xcbaeP1N88m;6zqIAm}5fCX>w@I{PEwwW! z=HjXZ{*F1k6ED&5;_3?I0;?osT|#LKrm?3~5Lg+`Kp;xlgdW}S$~fvu;HB80VZFe) zp>jUgQQ~E|R3L7a;|1FO=LWY9MY|6Ib+{be8eUFN3N2MBi^LV!D6nAIu}f}7w+bUV zRi&4sHc4y-L9nJk^AnbXQ4SgKNnzXA&dBYcppvX1?GQ8QI*GS4j*o{-UPg*a>XI^%{tq z%R*VJf+TLhcH)nj*K^9Wv+Blq@G7&cHI={)yhg*Tt7}&ws>ExNp+u>{o-LWw)~kAM z5LjB(pE5kUS_x+T&?SapP!TLOs;qf6^>rDGhlT4OOd+RXS9MLRog_xMcTvyGtLVm! zL9h2nSgdUbu$alaxePmSrECcY1kXsxC5~3LG)27J=Bhb>a{r4GE{IRjf+|wWR)xDz zW))jZYN;LcViY%O*eB2uD*f|#O6+G6*1O6g8mp{7!|JHkH%Yvnc~pO`&!f!MK1-RQ z2PAIcn3&;|Y%h*C5Dl4nZl{|GxZJT%ALZu1N#f0ZdtLI(`t4=)Z4z(6TN!|?7C5J> zPjiDZmFn&7ZB57Vwn~0Gls}F;D|)L+|Bi}2AJTKp-zD*GMyD+I!(X3|bXej&e58b1 z(D&K9EIsE&5Csx=AI3Di|GB)_=9!knQG9^1^<}7AgL;v!3F^)NF%{ApK1eWqc9;fe z-&8WKtSZLwVcHRwUu9R73YR5t3?JdU?e71;ku-bUBk?iZOY=`J6ckr?ZFpMG(TVUg zH^8gbq-l5zAD8$98fescPGC&nQ}~RAPYWyz(6rZZ@_EPZ-0b8f?&A%`vjw^iJ4g zHQ|8>%~V8gnVp^GMtxD@VLU?fvoF(IRH}zB-1$Rb4qW`f5b4=yRxHRDD#-1&Dq5SEQ7;s8OL-m^caq@!7 zEbHLr(A4O$4a;%qBV&v5MjUFTOxd<7Zsx09xpXPh8K?kM0{Wv*9(vbEx`dvBHET{H zeu9J=!ZBmHhJH^Gtf@pK$-s%8_4G#Tqk(=o!CHE9f=IIQetHDqoE!vVxI2|&@7e-gHX&OU21H(9WP9U2!hbOT+2+Ggk z{2*j+C{mWg4(~`$q7-;`jN^6p`Y$)f?m{yy+g?jQ$%9jPqm&D#aO-jGC)b-B6Jhi1 zA@h)LZVsF82${PoIo}@AUKlL@&KazjvzIj$Cwf1WJaXVD7PYlc+na>jX#NA{8?OwzlZ^n z)A*a%iN6ble~1E}5+(dgjN)l=C!P`aU{>5mFrOAe%!r6MBVsm*}Jf zeUcs}i8w^k44s%rN7CbT<|us^9-@<+B@%v>D%6C=1}&a=8n=rzEiK8K^O|EDmPRPx Z2{P8;Yg8Ig&<^_j2K^-{J#&lx{TmC@i^>21 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$5.class b/bin/jake2/game/GameItems$5.class new file mode 100644 index 0000000000000000000000000000000000000000..961623b8cc7a61fa70e26cb54461177e0661fba0 GIT binary patch literal 948 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 G;m>P4(`~*0 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameItems$9.class b/bin/jake2/game/GameItems$9.class new file mode 100644 index 0000000000000000000000000000000000000000..4223304b16df8a7a1141a7eafa8556d3349b7f35 GIT binary patch literal 1527 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$1.class b/bin/jake2/game/GameMisc$1.class new file mode 100644 index 0000000000000000000000000000000000000000..35300732ca1099582597246f88768b4313ddeb1c GIT binary patch literal 1002 zcma)4U2hUW6g|T%-GWQ26l|?kK~ee8V$nB@rq*gmz?h&U`a-751lBIQWOr!dt8W^k z&;9~^R8uwa!5`p{vfcrz+xTL#JNM3=d(S;{?)?1q{Re;=ZkUKMWS@y$S*!NNP*(5L z(sDw(uwlYrScx2Md+Kp0H+y2FWWX?Y)A1a2i-8wQ9R_2|@5v-M5*Ff^V_0lDo_sJK z?#SSg*l{I8y6M}(?TEn9`&rOX11DryZbmx&B~fRH_oZswWylmul(Q$QuJHQRwhA1t zU!TVbhJ|q`yCRTch~wRrUXkl{yJzv25Zb5sz@2;aFI~DI#b4 zV^1-#MgpgC#>5)KQY2g7?vfwXa(BU!KThk=6DcaFPz#^?0 z;3`=Sz|+S+l9`rkbnsV^QvRnjjip)X2jXH-O}_GE9~tAt7i2zTwX%;K{h4<#jrTD4 zS6tA%_=MMjrq5p^$=@Ky-%c8ory#Qi1cwsJ6Ha+l$fKK3>&jTjEyu}1v=)muO2qG)>OFY zta(ZxHy5~$x9o)4*v(5B*LB21bBRm|78QYXO~tc!1-c7GI&C{;&+%*Jg*eoHt-BO&lBjI8Js^;OVM> zm^I!fYz&xNE81T7oLXe=PT9!ev_L+Y__tdorY@c?@s#5CGOZR|!BuL>?EtRvm!-dn;O7T2&EKN{ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$11.class b/bin/jake2/game/GameMisc$11.class new file mode 100644 index 0000000000000000000000000000000000000000..9ae6f01d8bd2dc0994f0c770e28587dd51b959d4 GIT binary patch literal 2513 zcmbVO+jA3T6#sqAmuxOuNDGB7s6|9<2_>}EiWI@pHnq}%r5A*vWwX0Yw@r4-?xtKE z#}|fy@zK#4&( zwp6*Ho0>Q5wcPJs*HEf%FoG&9m#~b2DDiVfm5gdAlmXW~O4iDTQhXbwH;M=Fkc0;r zDtwW=XJ(TvE5>N@cxBi_D;bu!i=!N4e?E9b;#d8T({*!5J;pwJ_zM^eHD2BkEbIhSN?EZVmn zGvnKDl+lF88KS=ZHhba-gH&|DH{UGdNo=AE9sx>Mb83d7VqGG4n`N|!qkx{vMDaAX zNg(7@l~@-wZ?ki0)syiIS{WAg5ARlWGw-&~XuAJ0rsl*xQ}0xl?`4~eb`e>4(#YBx zrA6d6C8Ja1cF{~l@@daeHBTIM$#@Ps2+#h}PTR?;*bg<%qEEtZQdv^{ZZj>T9|M#(%~37g&K27y6~-QhnjCdd)=k>!F@lAg)Qz-bx(!JJ zy1OB#H%74+LlX8eESZ-#(Xlf2<3)m0|EOahYA=d1tX~NE^SY>rpfH9Pa-y-s2^E@z z^uL`LAb88rK{b~jV2u)@MeP*U7toLhe2yn*`P3;? zC+Y=roQY?=_Q3JDQoxp(tLuFUT5T_&!za(~5wx<~U#(QacTM#)N2{WzA;otHCa#~w zenGO$k*Y{Md=9C2xH)nj+Y~9FgaR82cwPwyHjbrx6^Sb$?r(5^BdCOe{zg!2Bq|4G zMJnKhs>rd(^y%sAq*(D4$A#kf|5yA{`5eWG`T`D6aFm;9qJWX}kcflLK8oOt^6#y_&XTj=dh2z3zeUT$=`!ZbdrC7WBfy$Ao?2r2(R;xafV;S z`}|W};GbcNPocms;W{ti2LA%L_+|Xeui!U+6@T$B@i)K5Bz~Pm`B$u*Xq;bR)%+V) z!*8&){9Cq;f5+bP$q!?5&%zZCVF$B#vAkHo%= zowd!n1(RVpb+;R+=dpO~@)IQ@hN%ZKkm@0WQ7U&B%c^Jsq$YP3Nwk-qkba31g z(KFuj1w*kNI^6H@NNRt4XsW)9sZcvrDaE3}koAOW?Jz8s$`mx@HJ=Aw?Lb8`@EX&Y zC*Y$&;B>{S6F-dQP;>_|RWlO#sFVg4u5?saHU9Oi+{xiQE?8J%SojM;8_T#z9sI3+ z!o(#GE9pYiza2U0Un7T0xMJZlu}=Yy3EH@dYt-Vt;J)fJuvQM&anr&LhQcU(&kuXt zk8P~s7Q@U?I9uH?lAa70GKbAP?x1X;^v4L#DA=f=N_}!AF@5r1eQF&xlO2eKe?)^y zzk1Sgnq#Q?dU0~xQF6#tNOt}p97K+2O1&S2$=o;em}!G{14mCZ@b-o3hc1KN3IY*r z`#g?Cj8zbOT4W@WmX3Ujye-m!2I_4QIDZde0jgNu_D6< zV#SjT>G{AF-m(al@tccWuc?R{&Br>$P!t)G6{+WLGjwNj6jT=lPxzI>q7Ic`DYoGV z?X1>(wJKdD`b%n~8ieL}Y>c8{VQfDG z_Qg23fN=)fQ~tX2wbIZ2iOJ9-lHMxaRDArsyP)$6^qS#RO1N6pg$~HJ7lT^p$~($X zr+tqSV}=1lu36tTm+e;;q+Sck7Oo$h*ASV(ne%-a&Uhk6@GaN0aXzOx%dx}7|R!{{Js3XGCA1rq7b=cIPiO?B{3vDCz` z)HJ%9sau4FQ_fJnbsOFJN3W3S+}YYjCeOBUBL5Zx4`1SJ{x#1329_b@;GdD?U(m_F zqKAJ&hJVK(|Iz3+vRkp)jcU{HZe}#rMY3otvM!O8p!aeE@fBPp&2f!nkv^N^O$I$b E0kC!M3;+NC literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$14.class b/bin/jake2/game/GameMisc$14.class new file mode 100644 index 0000000000000000000000000000000000000000..b3d4719db477b1c22aa6826b88281ed733768544 GIT binary patch literal 1379 zcmah}QEwAR5dPL)`(o!(8bb(%QlO<^6NpPfTS|bECNZS7LCBU7$s`b11(UfMV<;;D)#MqWR#}s_XLjA61fs}EC^&e+N>@M z94eLRw4*A43OkjCiT$v%FosD1cU{G?4%UnG2Wuq%DKEy?Vu^sF7SUn=? zbSPKl;x~Z2_Wb#;d3=OV9DGcyVG=L!$wsB_;xaxJ$k*2%sbF&}+Tmmr-`J^Ywfq&C z>FMAh@gviI*9?hznX#*avDmCugAM8ha=v#z!W1LfjI$jDm4!XxN;Qiul#X$02aqVz5Pc5i3=f20-6TYO7r_57BzJTQBIM?pbiF$%7 zwgLwzEx-k83y?0n{Tqo!45b+>XA5)FnT^8y#xq>HXOEH|9OVph ztmSu1%0F;Y{)toaFU-onu_#}nCSTzWbwj=$)Ou@J&!|>bhASuzj@QHj-$)8=S8;8? zViVW#8P71wn{fk+{I{CK56vN9ZO?RD(`}X{ z$|Z{V0l7sHk#dQIqO3$Xi=v#OB+7wA`2pOb2$URiAcDM}8KVK&he#Z9NK0K`)vJ21 zzJB%9>mMI~`3-;$m_8^1o9Fcfqa&Qu(?<9>H&N4x?`+@agDOy4FgIkmlXIrE(3j8` zT_YnSx(41wT?9oJJ+ddBp| zd86vinT|m9NWoqOJbDBuX}H6K0+o$Tyy&VPPU%)MJmF?cE7{{mxxj{)p2--gS>yU* zidnD=2elRisu~N!8VNJ*&bmEK7mBe7RX%KHP6gZM=QUKLMxa=ayXIBhwfS2s*9zkW zsnhThwr~y->7;-d4xkd!t`>3zSUGW$bH%SyzG3dI$HMPV?mN1AdIH$E5Qq6F(-_Th#G% zk(a)+8m2t8YRQbfWF>M(=zYg|4b!+FP}Xn6?X)rET@A;yt&VkX#gylEQNyLR+}gbp zGE!GKn|6k!E}g{$>x}cPI{H;saOs4r#}}gdV)kD9ydw=v*h`tX5iz~XU%HycR__jT zc^I0Yy5krQwt+WcjUd}{Md7iJN1cpU@H%H-a%uHx`I~jcLn!zdmwLJ zK~J!k`?bsS!DCh=B=dIJwt_xyoot(rjfK>_SzR@&Su^F$v}z{L+#Ecp81gy>hu*JNX>~%_}(fK70%_>IYsm@v4w`9kX0Uicm&=G*AE`DnU2n zK`O-%ZNM~@!=NBuqYAu5mAFlt@F8u+M~t6R6@H*<+@~7+MYVWDb@-d{32hZ6R4*!M zo2a4&QO#IK+rc5#zB#4YL+pHr9kiS~(m)GdBy{FU~L2XsJD=%7+Vhm}8kcX=guF$Q@?FOF=&byLrsO?3Cx4^!@&QfDhm3#H zjC@2FRfR68#WbsylAbN!UAYpSFW+3O@iJ<-fS1W9d^#;$@C|tzm!b2SHOM~@W1EUN lpJ6GK$7-<;358$D(?<6Ha0N+5m4A-F9KQh$=KVnU`3Je*j~f60 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$16.class b/bin/jake2/game/GameMisc$16.class new file mode 100644 index 0000000000000000000000000000000000000000..0a92a18ab8f2299beb6a7c8df59176157f51a832 GIT binary patch literal 1085 zcma)5T~8B16g|^+DXoiW`H%`)RMeIV6;S*rR{5%FQhb5%!ULJMLs`1rlHGyeZ}88k zu`%(%A7Jz^8PAlWYkaXu=gytE_uMo0p8fXo%U1x4SdAkhFn%OkYO&CiZB=;9Wy=Zb zGYiXc!~`ZncblHxaMWr;9&6Oy z{*J7Y>q*vvfxUuS=iRT<28$e zxGG@Rr0*+tzoA_DmV_D(tF2|jkgDO-^}a6t?^$K9oZC%c4A_i z-D}9UY_g`PBru5^aZCw}gi_3d)?}b;+(d>ia@DDF1t!C6dT0BtX;DC;3EaY+IBpB1 zLqLBA*_gpywq84JQ@k82Rlol*q_Z}1<|g5(GtCBjtpxIzi{rt+yv(?5%%dQ1x!*^1 zcIMMW@$FN{iM$EMOMaJ;R#$znAw5)6ARO$|;G8%@tm;`wT$~|DD z;~lu1j)@$UTFZK?r>~2qTE`v7(*lvbGTXh~Iq~bN>=;1}T?l2~=z@~l^y+RWpf0wQ zKI}B8jEd(ef8CWqpaM*T;-K=;Td7j|ae7O%g4UY-jKL4wM3Cf~q=lsrb|XPZGntkH24Nh~bRASK*2!_fYz7(j{8!Vd2W+Kh7d2BOnhOH%BBJh}$ zd;LUCPe*B@dXt>fyuv=Omx0wl$F^r%|GU=cM!1a45E}yPX9%8Hom8-eD*`JAz5Pt7 zwnG=#Ja?qi$Ww;>251Bot7xcl-S1f&Duz-j*qDSx^ zJ~vmGS7t@@tIPy0V2#!RJfL>~UiIQ>tJNARK4>iuo4VtwBFn%-wmaQ_=>XJ>ze vAABkRc4kF$0G8t_t`#!_TxUe4T)V-@<9o9paf=5A`|i-*;}@~svE=g`J-D7T literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$18.class b/bin/jake2/game/GameMisc$18.class new file mode 100644 index 0000000000000000000000000000000000000000..08b693db1da70a29c9b174af22d6d4bfa61eaac1 GIT binary patch literal 994 zcmZWo-A)rx5dIF`Wog|Cwpa@IgBG==LIwP(R!tDWG-KWbXQt@M+%o=__pO(@-9Opo7-g2R{JdxLj+M1I))iW zE0!Z3?)DnO-QW#dFeEDdCbu`aYbiT8)MUr<7}AvxR)|N5L2nCLzRxh8%~8-EFWB5^ z7i!YAoOWphC&<$y()EVTo83;|7IiA=bSW{=6WMTa(XyJdE=#$sC{AL+K#G`!zyrUD zG$t7saho1Uccdks)ji220hOYd#%Tkm7$(Ct27*kS!C9iS?b3XyWI2j+$QU@!kPIcM zuJ3VAn3%-{3b)0cu>V2#&+4|CqvxYvLe4;T5PdMn#2oUpA8GmE>)M^e!=I}41rr73 zi8|t`3`V7S!rrEV4s;w0j3Hi=G~z1X33eB&^>^K-Shv)60<~nk}=ZI zpF<<(F|y60AkuNN7>;9|mPzX+v9{-!373{qbb7lOg9{65AX z?PE%Nymf%7vE+Ls^ItHtkBf=RjRVYoKw5=F$T@JXeN@0c;S~KJ&|e{`zeYxXgS`G0 tMg5)6Aa#TiFd#f!!6I>3qHGOAnQ^MI>~p`0YyR1Fl0|xB6s4M@=QnjQ)m#7o literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$19.class b/bin/jake2/game/GameMisc$19.class new file mode 100644 index 0000000000000000000000000000000000000000..5d2248086f04af721c5c3b5168dfaddedfbe8c61 GIT binary patch literal 998 zcmZWoTTc@~6#k~&Wog}tZJ|K%f?Bi%X$8EdVxkC!1bitWk(WBOLs`3>lHGymZ}10b zG#cZJFFvS&nE2oiF!+~T+mY>iO}?Xq$Iy4jk&e2{5HFV28H|N)QzQ{b!iI@HhJh7F zibuPhP2sKaO;<2vR=N%Du5-`PdU$E5ZO3OAS&3jpcvKn8mQc$N7zT?aa@yk+m&;bA zraVWss{Kea40VWfU2va>DK6V}$|>6v8Oq^eG`naz4OLgw(nbP97`BijY7z9%Zes+a z42;N)^@L01sONQGaV02A0%JI1;WWc&G)Iq7{qAdw2 zo~f`^hA-SL>UB@WVZ#_wHN_k4RlXArFInsEdJVDU=<%lhjIFGvL<_Je8*bO9DXj{% z-ECU9`G387-5Bg;DTTM-a^Dv|#z9L(D~jNxWg^`oZH^=(X-yJKt9bTJ|H{w732H3l)18bfa#COYo9cZ$lhZyK56WLbB_KIn6EKtzCpo!i?aC+ uRr7s7B6kcFk|0Q2#SGDyrDy}OLXL9G(RU2ja6P!YLFX-cljNoAqvto4(bt{; literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$2.class b/bin/jake2/game/GameMisc$2.class new file mode 100644 index 0000000000000000000000000000000000000000..ad9ef4e1b8d00e46a6145f484b1649d577fce78a GIT binary patch literal 756 zcmZvZ&2G~`6ot=poVp2a3u)Ry_-TOx2^B;N%OIqx6cm)QY3YJZG01t&YlcdE9EP1Z4?>*nWI`jL_&tCwVsQZ``SbeL8y4mQf6Ww^uV?WBm zt)>r8pqeY~8GAU0%y6ftMpmZ+^N%AF*(Ub@D9u&Yw7MoDT_Oc}XmNN_Dr*1agSUE8X^E@BnyKGp*Z(VeT_~ z#3&dG_kUpF8$aey;#p#Zd=HPs3(SLQ6XPN?nu2AX4)B1{0c82&SB9zF(IG$Nr1D%^ z#>!0kg54a0rS0#ioT9odPqE>BIj1bSUFApk@)H92c|u#8DrPilaT{CYN!*#}?&2P! P$BPAOd`qmk_4xb+z;l&T literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$20.class b/bin/jake2/game/GameMisc$20.class new file mode 100644 index 0000000000000000000000000000000000000000..71d0bafd90b9441e8804da9f63b54e7cca7a60ac GIT binary patch literal 999 zcmZWo+fEZv6kUhTFtiS03l=C|P^-2e6pPnXOa#G@fG;H^@=_1eLwoEnB{K)2-{4>P zqDG=(ASOQe0R|KQ#y8_W)6q<|N%!tP`?A))^xLm5UjdYH*Fq0N_8D)9a;d?$Md=ZV zRT((>@{9$8As6#4dTOmHz1D*|-%-M6=)EUBsqQl*3dMB>W1(FaDI}1zVWO8|U`2Z3 z@$UAf@YndJD;P2>ZHK$-+?U#p9u3u$0mH~j3@gT?!eBOpT7JkdR47u=9xu7vYm}pNG_JsQndiYjz^(2E3{VIwU3f<`4K{h5ZNgGl!1Ya`dj*q|V)~9Whv?u9_ z=PDYN5eRpShTYY1G%$w#s^U&-mG4B`OI6#uz9W{T-f#b(y-n*i(FH7ej@u4sO{+pR z+jR@K|L<4d8-u;1l)MCQ~-Qk`^N9p>9uYT|Ed27^)ROX5N>n43Jr(33;t zjHeq%$ffb~6$U3iVf+wRGS@bbF!dTa9h1fn@^^WReT^M*&eER*<~t0T`^cN`F>QW8 t#XJZ}WII3+34+87t`m(iWgF-l1=bqI7@s`3*kR*!=(i literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$21.class b/bin/jake2/game/GameMisc$21.class new file mode 100644 index 0000000000000000000000000000000000000000..6c961207ff693c84b1a8a27c0fce80cb94ff4619 GIT binary patch literal 1000 zcmZWoTTc@~6#j4`_X z+nd5)^2r*%Ye!fMKXmq@X=sa=F(m)s!#2 zW~C2lhT&}@T^BqcVopms?Q)%}dTq*$^l%|wUo@nn>Z(%QNa8exEo6yY3_tSQ7{Mq5 zBYI<9>7J76c|A~E396FB7|vQa!!R1J(G_Il9L9;xmQN$5lGP;6PA_*QrID1#9F3W^pA-RRvxHYPDeD^fB9UpD5Cj(+IYXKa+TC+Uf2 zDjJm$2zQI7-PLh4Foyn`;!b;&??mfM)jGSrBbKFJaQ~mh&FDSR2`qVz+X-k-t3tIp z4GXva?^hojgI)DJ;V-&82t&k4kF!87Q;ylkkkdHN$UcM%&9k|j?;B@m>*-QiNC2C3`VIhhzr4Berg{>kN1%? zo@^W-muBNHF*x-O6Z^QFxw?6P=~u|@iS8f*^4XvqYmz*#>&@S*kG?(!Y)y;oD7;x9OXrDBT}@ego_P*z*7Y literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$22.class b/bin/jake2/game/GameMisc$22.class new file mode 100644 index 0000000000000000000000000000000000000000..c8ad8d87238445f6091552f2b561ccdef668fee6 GIT binary patch literal 1211 zcmZuwTTc^F5dIF`W!tg{wotAj0%}WzD&Uoiaw|3gUmzs%QkV8n)^2yn?g8Q77-Qm# z4@v+NAN&D|8sp{X80Rd-Y|%}2W@l&Sn{Up{`S|<&2LL0;X{cjJJT=OEBvUdfJhMPz z$@B^XBO@9VhR%R*-WDsHrd^&c8e4+94D}PHZHg&|P%^d3pv*c&9z_Td9V+S>nifr) zKiaOWb9cp9w>U#=(J2_#s^OZ_uKrZSrs*-XF9vD_c#JcsB`$Jv3@ynN1??Ca%dktC zW#O83X*`Vc?U%X`8QoKPa@!UYZ83>`s?njjrLxJYz1TsmKZ%tdes{Tlih;(;XD z^^DS(etZcMM^`mwt8)ljzOepKEm{iXO+q09mRKvM>teC1b0)c+q8N+b!^{DOa=cbmfL66jUir5eMtaR2D$VBS{@&uQ+cv>h|cEr z7l^0#(R+X^v1{vx7w1OAFEFh4#C)rJfx(Q+hHghiggs0vkFVCYU~$f?1z4tJ~BRpm>!ns387 z0{};aYdMu*|9JS5Ald0 z8F+Qqmek*Eh92F}6C%hIHQ1DeX^Rpudp*{%2QyW_4 z30_gM!IekzQqE21E^m^%(dI-%*1+!x)7;{~M26`?jfo53o&uJGp_9t0ww9+D*K z)gc_|h0xlh)g)O)));+{wzo8CL6XKKSr}gsr^9wyTL(^LJ7~pl2Awo&fN`=KAeK7& zhRi{@Mu+h=5*j-SO`)q9`kDaZ6q6p?LH8~O$Xt4d>#4EwE^h81J7&_5n%u)(%WB_4 z{x7`&;t%5+OyfJcjUN~?eqxyHi191TIeLKG%t;wAgC`-)G-hc=m!rKon#Jgw4|y+O Sk!+kE98jQtlKl0>==TT1VG{oU literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$24.class b/bin/jake2/game/GameMisc$24.class new file mode 100644 index 0000000000000000000000000000000000000000..918829ec5a4e7968536b113df4bb33d058282996 GIT binary patch literal 798 zcmY+CZEw<06vzJ;S_)XU2^)LzVa};AR1EqKV`AoJNSMj8WiOlwxwO}ErQDMCvV`yC z3r%KBeBlT1b7<5rVLS!4lqNl=r|0~C=k(nE`1kEQfCe5~NHLT@@V;o&Jw6ci*JKW5 zWxFU}kEcrJ8-yv%0n5)vzLbM$%tXCo#>UAqsd@;LbqNqELW;jbk6HOS6=;Chf;aX zEUr_=2?hhMToHDkB2lqYsG?18#i#1A{u&gj;plP<4&Zx7KG2?Htty1VpvbY=Zb7><1TG72&E?# zL+b2+78wcuJ$=(0dp0ve{x}$gjyRCPqqS zuv-`Y9MMUTr?aaZ}S zY?UW4!!Xk&(X~34QusB(lO5^`{ah}JEShdZ)l@nEEQYg~vymoQ5#})OU>*w$jD#(Y zv`gixH?=@(yKJp_T2nWl! zLgk(~65c=TgLgGg4>1_9UqjwTZj^nr$iWHfFQ$hXb=CnsO^(bpUlbtWdoYZZ>l z5K_^YM-Cj$iy^+-JM6^viRP>fM zJst!iKo)d==r&?t>E2LmQ?yQ=k+)VpV&Xmh8AF_GoII>=Fe!P4VrN)Hev%@FDNK{q z0ITFRfRRkRBR6c<=&-&=T8-1zBvN7PbJ9XISSs`}tDinH=8Ht);24?02W0!Wn!H{= z#;W=D6nRSPw|*dH{Y2LKHDE{&Q9=g7!wuXd4uifut!N#$$eY+8dxxGl<+Nn_{Q+@m B$ZP-r literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$26.class b/bin/jake2/game/GameMisc$26.class new file mode 100644 index 0000000000000000000000000000000000000000..7df6e834b7ab68d4472d1711acd9e08d63b9eee4 GIT binary patch literal 1338 zcma)5U2hXd6g?B$yY^;7s3A0@P$*4lj3L{al2S~Qk`Kd5Nne8U!h<#T4)(x)M7ta4 z58#g=Rq88L6|MTvAJ9M2=e}2^XEvtVKpwE$Z+{zA8{zYV8SBH;p2{|+m^A7m3e7yWrK5_6VKC`iSbTCIQy10zb1)MB7hyxu5>IZ>2L&00bwR}^o z<>Ct3r_Ek{Aefrl?` zeDN*=MqDnXcU_=1M4$~An8vt-DuR{5`y^Z)<= literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$27.class b/bin/jake2/game/GameMisc$27.class new file mode 100644 index 0000000000000000000000000000000000000000..f95b192e4f46f9d5420b48ad67f28be969e0ba58 GIT binary patch literal 875 zcma)4O>fgc5Pe%acAdJkq@k21G$|CwN7G2*z##~PN{b?;y%ZvGinh)+S#a#g-sH${ z0z^ULzz^U@Rm?gm7;zz1=3_nc_RSmry!!qFKnn*pmKZkQ@%N(D9P+Vfz9MrXV{fnZ z#D>YRm3ns+s5h~AG2jy=A_nWJ45WI-U{tC-2JzP+yckN7Va?E@$ACqLz;kf z929WZMv-A7Rj-FRo(7(a9h4Xx6>%BNX>O;v{3UN&-@WT1hmzLxzK%9XO% zKdh0}01fgQz{stCBsXu@=&*{ZR^xXo$+Bpj5WGn}#roSX$gf|0xJ17G8QYgAldbPJ zzT(~=N;zF??O??!A!n6Quyzyt+8kqnPiWY~gM?BM4=JKS=>ChBAx M^v_bg9)fukSwqWUvuN55wqt{y}8YRbChA4O+IP zXH938!U!@<_|6Kp+I5=N;cA69lyDi0Wob*b!Vrij_8EeCry?QQH(N<6FL3J{&oQP*teSb%x=1f-W8LbdB59^p0|+ zUCs648pBAPK$nhWL%5}~Q!kg4MoN(#`zG$sE-KPeC6)W1&uUO1@z+JmYq|&A((c55 zA4V`1#wbzqq3`53F^(8RAGee|;>w|x4PR6;f=S#6<2u8TFNto!o{}{aH*t%>+$imN z)H0WPLETDTnot|$Z4-BJmw{32WETiqN%g7ZDXui7KHS5DFzz$Nd{{)+B@=NZ==mL2 zR;A6*^R}q_kTfyd^7FD+m$r7LOr$YS0;$xiRC_Z*qFW3jOAqGDu9@cP(YP}45RVwH z?v`Hjifnr8yw0nno3%@`Ep~D1ymN6gu^+(_o`&({-zIClo5*3AA-X0kr!EQ~8#Tw1 zj-6o`yRdXi@1Cd~ki;BysHY*+5(_c&BREqKjfd6^M{*AS}Tno?ZdRol4WE=GvCnrl|Fh9 zp*2DlMjSypyh3}keTi&8?dSzCK&wtLM^+~Y3`W0@X@~3VFcQAdz**=ZhB~322}Ouv zvdQELhEFj;X6gjfA+j@}d9(Z~sZZvPnO>vucgNAmQ!FG;@%S9+O^w2sMX!-U%t#|) z%p*xQWh@|LWLgjw+hsZsH0fuEwNPiVLSMv{e9!Ts)toF=u|~`T$hQcsqd+!D`T&ab Kk5Hs$OuyfrUob)d literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$29.class b/bin/jake2/game/GameMisc$29.class new file mode 100644 index 0000000000000000000000000000000000000000..4160b7360e83e3d86af6d2a64ef21f89e12af8a6 GIT binary patch literal 1325 zcmZuw-BJ@t6#kk_dPo=)BZ&C33$D?GzbJ^Sf*^mxMv0mYOO?w-YLYaem&r_Orb*S_ z?F;O^7e0a)YGG+vmfrgq`vks#)}BtnI@CH<)2I9N`T5Q{Uw``g?gM}s{AQwu;mjY- zzL?3?orcJ5&{B|L_43SZ69&V%$lbc9w)UjAzg%;gN(2miL3&axGQ=|3Z3bi2uZbjL zNLYx2Go0L%o_KiBsEA<8sknk6wdq$KciRc1K6jOd+LIx}+096<2#$G%cwMOc8pB{F zOGYgx=Q>_JS5krW>hrxgMa~TZU2e&y2+9?|Q7JbAL1Ddpa_-9EOf-S0$*L-=`Rwlr z3}M*B8A2BU(7m^C79$K+J@5~_n(&lVe-e)GMbdH3TeyIW3<)J0B2-SJ$-wLce#DrG zQHIlz47$V>ClnSg;U|LWik5I0&PQXnb!AsKEhMlBq;b{66^4;WpyNgsG8%!Q5%7f0JSU> z?k*u{(Y7XcY1>~?PIbTFG}}xyb2CvcKh9bk&24iHNXydcqW*U`amMqFe6xu$Ts>-rCcH^`^T-}5K2zTy*u z{&-)pFu`79aN-c>Ug3vBT;8?Qe-9%2^ci?+!Y2LXA+A~J%H&(zoQ$W7q**w`z4$eI zvb%kY^&@3Em9G?y=Ne(VvS|&9-^Ku6zz|==7+=CTzlSNlf_c7*CBBY4x3R@H;P8CA zgz*l{ZV3b!_c20644{Mun4_Y{u!2ooq#OmxlmPpJDH9KSNb#uMmB%QOH1I2}Tl6Q% JUAK+Ce*s%59s~dY literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$3.class b/bin/jake2/game/GameMisc$3.class new file mode 100644 index 0000000000000000000000000000000000000000..c67c37057d221e0c365e324762eb479c3f12af22 GIT binary patch literal 2317 zcma)7>vI!T6#w1cB-^Bm&{7^LAT9D}NFYd6v;`Cj#bS$;K6n(3+wC@4n(W5xrlmem zQStG`Pkvzh%%C%l0=8O^!SPkpaYSd(QO6JZ%|F2z8OL)rDQsJ2G&8y9+;h+Ko^yZu z%|Dl}0N9Mz6;uc;I;IU9o0DlRXC(K~(rG&S>LvvNfjZyOZp-bli+X0qpq6)yf5Q+Qt~^jA+TMW~GzeZo#zDEtRMisLpF{CZ*d2%P6E=PLiz3 z^kAdku`y`sZpv->FPWaFAjT|3-6H^!1XRjfok*>hdf_BC^hXWdmQ?qc0gNiTvmSf^mEz(QYI ze4o9pnN`tq$>kQquUwqhIInq4r{rX^6(-xk4x*rDJdnx~Rkk!~#6NiAsFrD7*qDXBg~ zckM!}ogWiW8vEP&+e(wLTSXiD3*=18;rI`$Xy-D5#)x6Loc$vzI=rDs+gg@nlrf9< zsdyCo$#PUPX-Y&J3lFI1Mvp*M&bAzSY^F72(`)qC>^t#Fj-yY-K^&rxS&EsRbw!>m zmF4&6c=|_hR6+mDE1IdK;xR8V*UTAVq@XEyLSU)yN@wJtVu01dd9COe(>8-D3=C0D z)EjG1V7b2pMwE-ChRfc$artKC1W@}b+9K%69 z2+8TQ0B=v(YT{2sr{AMl5~jz8s(_)GpI6#28L zmcNKPqATRDVy*nmYwuBnxrOESGB<`Ox1YGDh@&|o?rA*3gGb!6I6+fYEf(WBY@-1< zK=S8FFN8z5R_2m4A}^pG3QkhZOAx++It4E(D{F3`LcyZH(Ytxgon-iuH*qiH6wv@) Pq4hQTM<_fcz`uV1kGwV! literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$30.class b/bin/jake2/game/GameMisc$30.class new file mode 100644 index 0000000000000000000000000000000000000000..d93150642327d9bec7e2f93b62ee0646345237a8 GIT binary patch literal 2017 zcma)7-B%k$6#orLW|J^j3ZyNxYSCJuDNO}Gp%(cHq6BLLX#v}~NhYwc*-f*PC{}Cr z)noq_?MaRtAAIz||H&TjY(l$_3ZaQ08HaY1APo<4$MP2o!T=i zGPO!a#`21nX096uGn@;&tvG7SlM5xYs$`9U->@7@-DC(&Oy(HEOKwTV5kgEL0?u%1 z-E!ncy;6|1O|xK2hM{%0XxcfmX6bu}8CLt2M~2n|mI7YPF+}#HT3coqnV2M@hMBTW zXD^jiHOtwXi{doHaD`mXH>|3xTs4w#JB_=xB@Y3cQE+84|s~ z%B>go{{vOCgQ&9ta~dGxE9l5R6u60bhL~AYR>M>-HRwptxs$@juz)24i~o*z(e$Li zGFBM+%a&7GJX*3%kLuMOq;8-zJ*O?3#(?^7l_CBjkT~J534DT2X+l=>T9TpE)q^V< zVvUrwn_ZpgzXZT3fSz{O6YzXkyMbcJ;4=doJwqEbCU8q9iMcvuw*|7;>@ijs0kOoNLbQ`*^EIXAk)&9(~KpA^fjU2VPTg%e!ps9{d?55MZX+4+=umlc3 zeHgJN0rrfR&&!h;)AsxzDsT-r-J{hlBv92phm}>K*+`%!;AuuoGiXLDRqbzGpn}|)E-0BfcJNc#EB5hCFW%9{Y`+84C{JlhZkN+(O>DK4{f%g-Banql0e*R71~I zhcMh$WlQ7>C!Hs3Hk^#KFp}JEVr=l)qZY=JO}tFE@xj5zEsQ5w3zw6FMhlb4r?}d} zG?8~&_#ipe!VNYX8I3%}M?>jje5}9!M0_;T#QJP_G~C4JO>A}OF2UxHQ6TO8ChQg- zoCwf^mOF;hNeKB#*dR~AZz05QBg(TF=9?JjTe!?~xXSNfhTp|3-^M)O#Uj6l4SpY4 zp2rS1ali|3h(6#YJmeBT^Rl0fo9&1@*`V0*HRk;UKEV-vQQC<|%Zq#n;U|1UUtug_ s9S`v>{gQr1@BLtZW5+c~jE7!OZH@{*s1 zf}z-neI9msB27M9wDmwLI;fL5DZ`@0kPC!vKVv9Ws#G-L&5%by^F${y3R?5HN;^ZM z+*3Ml?cyh z>TKWTTqIYl2j+hA+}Co#bxd*LBpxTeIFjZX7BA)9HEPmD9Y%f_D^l}V=t10fvGXr? z^HVT*?I;q-LCBR73R@tJ=|@6p>C!28DcdK{$meR`F#m~yITXki$iqos)8+!@-n5AP zB4rF$ute4XG{_qOtGN7;+_c@G!%>-5>vt>3GHV?XyiGmj`s*(!Enj>%N2&f9>*v@a zTi4@6fdl literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$32.class b/bin/jake2/game/GameMisc$32.class new file mode 100644 index 0000000000000000000000000000000000000000..1fb2402e1521b53d32fd4a09d31df92e706fc35c GIT binary patch literal 976 zcmZWnTTc@~6#j-TyR>el76e+npki%7sJ32%nh1g+p}v%m=u4e$hj#3;#odAEi^j_@ z@!1D85ECE#0S5n)@yvELTis;OnKN_F`Mz`c@$1`n02SP}FvKwNjCVz)+~zx?{E$RV z2F`4?V!>d@$KF;wwb_wg_kN4-D&aGjccdrPJ%&WFw8dbo^jac?1d=v}VKR(vNKZW4 z+i41alQ&(#klpAx+}+~7)OK`fsE!O6rZ!?&F&;|{!)>9~A25s;OXRfA%P#lY<+}2v z*IpXI35MJbk!}QB3D=cMG+Hv~G$^mvrRYdc7UKw_B^}jJOQk1CoW!Js38EKc5WU-& zLXLqE!Rdi;Pf7K%5h#MBEJ;k`w1rc|B%Wiy$;KI+B|6(aHJMVbCvgrJESzT;iv{V@ zmw6y;%;F-syJBCs|DcC=4Ocfa2+=R0WT7~SKImj)4)Zi5B}4EvDKseG{987x92-zP3jS+|BP-?Pl}dc)pOilK$EHo z)#blpy5|Xh#pOXD0?dFGi`EpOq=h2eBCAT8kshA=ijmKB7($9>NFbeb%N;}|8W6D*L{2@=`NCsO@zogL=uSZLyJXcl8p=yT#iFeuI+VEpj` z^2XCc4cAE{)_t)CZGF_w-En>2qc}-+p}g3SbKJF4`D+pYm-nRjl(JQG7&ZRjTS} zspP_D=ue$3hWd#T^ELiVi;tlIoOVQD(^0gF@-_{!tS74vH8~qLZuv zm>_QetlX&&I-J+3QtMY~4qeUC=fuUPn&I(%bXx~FGyVx92e?eGu#aNy=H>xz z{pOT2$<76fK^qk=v^0VjL){{R30 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$34.class b/bin/jake2/game/GameMisc$34.class new file mode 100644 index 0000000000000000000000000000000000000000..804976cb832eb564fa02146bae68b1cd57497582 GIT binary patch literal 1386 zcma)6U2has7=BK7_Dpw}%Cg%@g}~(sG*lmRC|9mdo}_)xo~H9R_CE%=}+pZK;3? zo^`R8;0N$+_3^O}V*+kpr>W{>7kmPrhy6I{;($Q$zcC-r;d%1d(^1ECGal#cd53+x zfFlB)(W>89X~y>G(=glY7kwPVak3P|E0GZpS&y2J6F5nW)b4+*G%}(2fJ`Z)$wUDY zsJl2NFgAF<$C7-U&JMVqa5(IJCVfod43P(2mCW)?r#e?_S}@Z-&ROUM3!Tw0VldUc z>%f=0F{H zPb|Z%Sv&ariB3DtgcD3mLf|u6uo~^9p zAK~R`x8fF0uVS3y{5_PjEbD4#iD#)!+}$qrGT&kP8auvSnQ!FZ?p8b7aK@ZJHjE`E zml5*@O1#;ZD9Eo+l3!z7euIPZE{+k}gj~Zpc@GWwEn0-WD8EA>zsC*v1KyWE;v@MJ zK9=`!hqbHnLB`J8n+$BRLoVrq04?N$F3~5zkdM0>=t(b literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$35.class b/bin/jake2/game/GameMisc$35.class new file mode 100644 index 0000000000000000000000000000000000000000..cf0f608d4bec52af3a60046b9ede4d98a2a5ed6e GIT binary patch literal 2422 zcma)7TWnNC82+Z+&gq^`p%y3GQht=kAQjVx_Ck;`{jjw6iV!+3+ykM{0@%n}=XLwgaj(RH1 zz_(kD*fiiH0h255;dNLyeD%~dsY{gLBor+7lU#2ZB=aoKh z$Z{E$br;ww@FT)dmQ-HXZidAT0Xj4$!?tvi;a)FoImt*lu3@Me%sBB_+)l-ZV+7|6 z)1~~pw4o4KC9Jp?^CE%$ek{RK12yDTf#LkVz%tYlhH})%Q8N5r5Pqz{wFXu)EGhud zp0`R@30#L&3}Vo760Jx3WSU}NSXl_vu6^mC{SM2fghsSS^#a#pHRaaJ->9A+u}Oy4 z3arC=I@cM~2n>m$FtgBI1S-8$I&w9m^Wk-lX9-aZtqdy)N;;TIk4P^TPh}i0ks5axu29u} zZS^LBo3&Lwq@?W)nTX&P1KYEOCh}xF%MQ0mTR91t7TAHE3>BJTj_XM$PBg8#%(J4S z5d*u(@LU46W-L3Q(k5Eq*QRz0w4;L_MYiC+hOPj`+k#sKx^NpgB}YfeGEsqc<|RK5 zMx^ehL~YX-d-TOS7#ekf=WzeZ0Q%-0fxEDfq1;R5-il66pTJ&CFk?iyu1qSeyIbHM z>?4;mE=9k*sQ!+(*H!r^A2D$N_Zhf%PW=ndXsCk>JB#R;e^o_9yqYeMt>Ym9i2-UX zY;H0Cj@7&vP#kKwtz!BheY7 z@N%z{s2TjsmtxBLJN7SFjV$>GCmxYqxsft_NFrFxT5|=ys5n0v^Q#=Qu}Xrs3E)5 zqoc|jN)hEnm*c2(n=M^exu^p%j=n?4j`YPK*&wNjW=3<_hO;PtjTR*^X*6jDe+xd^ ztRPwB4$)jm62k&4q)`Jj(yReWtE*1al)J9c!QU>pS~`2R8jEsQOSTfckI=RRC$RWk ztYgv887wEEZW?Q%p&3*JLlbD2#Nyn6GT$j$H2RLcK$>aX5ZpI`X5XPnG{1^Iy;D}a zlgRFDo5r?i@C~%=JB!v(RmBwArqEe^`xK&~Dp4d==AI4m28ss>L%%Phd<8OyWV`DV_6dtxjMKCHoy1ditafE+`6EvUX-{KYi9ZvJ}nBm{! zYyJbi;XmR${|OiP&-jD?f{XlDR>FT{2LGK2{wJ&9f3ao!B3sEXv9TMKCX+-az0Y j%4=)4ZdwwqSU_9HvrKy$&(Q3n)&M+9f0Mv973udcN|I+x literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$36.class b/bin/jake2/game/GameMisc$36.class new file mode 100644 index 0000000000000000000000000000000000000000..f3dd6b62227410d15f658cec54df9e590a06fcdf GIT binary patch literal 996 zcma)4O-~b16g{sUcjR3ULwqcMnv1l)j_xFL_}ql_J9Naq!I{s!0n z3Q0s07cO1+qm1X3!HmX*i@9HO?>+b3bASB&`VGJ;)+BNQ<8M?)uQuB1ST~+iYzK)y zzxF`F5tz*U+lb7|L_cY%6QjEVgAao!FpmWC)!LqbvmUp!i#&=R1~4d4-U=f9qIZ0t zySwTj)B=^Q*jM46>IT+NgN`{05&~^ykTO#=1qRyMY(5njtJauwsv4n++KnC44Wf3l zfGYyShrP((_ruul?DrBP<@@q+HQQ9T0^jVL=KscOdqrHugv2-}&kUFL@i2*N0&a4m z-bRO^YV#3d)0SNKP{FjoR2J!vHbF6|iQced3@ z%A30r_qx7*7FcFWmyE4gg2??wL^cu*F2Fq#?WGGD;kj3V7#4^@)r1alyH zyiN2a?})ynw?-|f2bR8|a7H5sm(rz%9E8K4L-f6iB>lMRKR10O&0inE&29hy literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$37.class b/bin/jake2/game/GameMisc$37.class new file mode 100644 index 0000000000000000000000000000000000000000..00a58d7467cb33949305a48dd93d3b247311163a GIT binary patch literal 2753 zcmai0TW}Lq82(P1v6HYxRr zig!^FZ+Hhq@HQh%fQ}D7_`-}cjxYM^v#&n*YW>e9ZFh@~Gwq(+|9}7OJO9Z~e}Df2 zfF^v)QO2<7gfgZzMUzTOi+0nePtU4ro40ZJ7?!%ux=ee(%BiF62_dN@yXJqe8%s0K@!V-PHEyQo~wiKp8ePhU#8RRg6I;qsw(^(`S$BS%xLO zE?X`?S{eLF&FjPfe2zZH}Ot&1FUuRc=QHD-gzFjztue%kdJvz!KC_hEzk>Oq+7-wwEmK z5=sT?u$*HV!$KE^48B9jY62^;l0l5-V7?!!Ax@0&pI*;iF#ZG`>tP)s_ zHDuf_X;hQOoTP=w@SOs8VI9eJ$0Y(o!jmZnx`#j&+sb(IHP`6v@Ul!Zobm!yAc74X z>#5-XB_psAn;4iy6?X$^rP|4?MFkphH$z!cCziUUB#+~IN|J#x97HpncUn0kVXm|5 zWh(0vTGrN0#nvq|6v90qs&DnWfCV@mE&1ku_fUu(1|V%x&^haym^HLV(6xV zS{Xg5o0OcPSO`7X$8jISf}&c^){SVNVvjcO5$Hu9LugP_sl=UDnq1`#L$RTlbgdHy z1n!r3AO3m&m{Z2$zD(Q`0#D*8YOxtDn`T(<=1HlU z$P;DUbeQrqp5=Ik_~gp;Trq*uPHojxqU3)siG*W@Pz8L29+lo5Yr=*?di{o=|l+zCf#~0+0y8ts5DVlyOmr*rp+C->%(~sR|*;VM- z>@rou%F^4`r`e-cg5ztiiD`KvP>)GO>ok;XR?DIu^c2&>4(CfxFs(VQnrUP-`q$q? z@G4Ep5Tb90M(`T==&+L3q9{b;JX$f_f%){60Gnu(0Oi$H-_cN1m+0VOmumTpYBd%X zRm&Rbr$CU<#Kr<@ZozkzwQzO~OE(lyKZ&&kG_?3@{kI^lVRLoU4Q#nelZ`jfQtL0E zt$+^FlfxwTdUy8IPU*~ltg-sw@IhJ~n#5sgsDK9xh*#BIhc>&Ut+A^5Q)jPZjI5i4 zTNSvDM5njOJPS0&?L%$>>Bl&{#Zqyns`*7@5R#=LSy)SU3>4F!i$pDPY2F z{-v44t8zAp*N+rKds~*E+$ljG%PEI-;CvZ^d<81`O4RXHsOPKEz}Fzc*P)R|(81SZ zfN!AAw;4K*;v{dx8QzTZd<0jvMA9)LYq48H*|3>@2^IiCZx8X0o8&kZ4 z`S>1I$-A7I9V*tPR5Pj&-g62qXXj}~Bf>XrBAP3_JJAa>XT%rj{M1U#kW&d(W!gLrVYnL64UBQ<$`tTKf MzoGw7iG(!$2Zo-mRR910 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$38.class b/bin/jake2/game/GameMisc$38.class new file mode 100644 index 0000000000000000000000000000000000000000..81dc2492a13cb0cf8ffba78e395da8a05585619b GIT binary patch literal 1209 zcmZ`&+foxj5IvJ@oFpzH5xEN9H34A}R6r2rE=njBj8*cGT9T6z|xx_i$4{PpE4fMKj~#2DJP+-))JR9s&;i?rmWDqR{G zXv>Z77hbr-ep#7mQVCtdV#xio>Z3!*6;il}%N&P=4BxLe0{ zUn*;+2Km}R_F&e=9OfC)9$k68xBp%|2{uk4B&tILY3PD5R>R$DNi0aC+onHy95nJH zWzPpCFH|JIywICrnPd5=e$02oU@rxMsLpz>QbN)F5-pXC+Dcyu`JB8FvW#q^?-P>m z=}(LrGEKz*o`*$;$H}+rL1dfAV>p3kS`EMeSpyKyoP0;7o^H^=S0btLgVYR8HB#RY zJkenM16untUHdrG{}C7Bd&u@D_Ap4!^~_CrZ+*rnId?Mm=$$6V#P4IqdV4_FYii+- zkm8Tg!k?gxui+wpiXmRWD1TNfq^(ZYD1>OSfJG`Lj{7y7B|IQ&;UTSg`lad2bVko_ DK;Q~P literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$39.class b/bin/jake2/game/GameMisc$39.class new file mode 100644 index 0000000000000000000000000000000000000000..e7ea829c42159fc38db2c02307fc07713712cfd3 GIT binary patch literal 1215 zcmZWoYflqF6g@*1hSsfMc^6bb!~#MUL_|O>k5&{g5hU>u>$Dxp!m>+t2crK*zxzQ6 zXyONdfWcp6V!X30W`Q=nx3l+g&b@Q?*WVvM0gU1qM-4;kme`h~>9W|7=^UA5%P;ng zO>!6v$xv*;QEQu)vz;l4T_rt+x@pU?)B}b{YG9qgm~%@qh6ti2YEj3~uw*%MWpAe- zy){v=B|~D#Eed;Gc$Pj_9~x@Y@)_EfLRcXlQw+6bsTSuMno|Rmv@g=OaLVabJt8o+U=wM((sPk00qb&6y z?<=7sb%~-AmpQr^I>J3pC7HN_t3+qRqoq>I#VC4kjiZ;LDO99KofW<`(TD4lZp(dX zpFt0v*y9JuW z#0<20Jg20k5!~z^A*P=Tr{wNT#qbET9E8?*HfCZDB#2;!tnCUFh%jqpx&a#6m-Yt9 zCCu^U{)xn@62CM@~_oa_+;t`?Y5mjxekv6ljcnL=OdS9pUat{9fSzli%<#v9P5xjnA4yK)x6Cg#H$Bo=1`k^z#CS zc@Y!5gbew4z7a5Mt)N$#5fA$2h}&c8R15Y8^VD!L80rb0k~gqKc7=X1O4C!*=N|=! B3EKbw literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$4.class b/bin/jake2/game/GameMisc$4.class new file mode 100644 index 0000000000000000000000000000000000000000..942d10f822b943a8688c72db0a82c43c0238745d GIT binary patch literal 2858 zcmai0>2nlC6#sQ*b||`@!cV^w0UBCnI z#skG0Q1Jvjz6d6ONAblftkVC$Z&qnhrKNb5B9{2x>?TYSs!S!*ulwDvfBjy*{P&a7 z0OsNY4J87VTlF4uZbMQ}n+>bz(`vcKwD}rTftmnorR}vjIiq`NLeF?+Rv^64vMq11 zfKpr6E}$-V5@r+%A`&5l1xB}6wz(#k?liM)dS}WMC~t8LJ=LyfE#4OoRj=D}1;)1o zd|e8oNg$Loz11rODr)OUCa*W7bUWFw-pg8cvZ)kf$Zp25Y_G#`(w(~3;c=9tR$MpM z1}&Qj%OH`a|2s1>@r3@(k z%lTw06C@^L5*4&xvV3@+QB1}Z4KabS0dHKVWx8uhT#2aya#hDV%jjtWl9=v?oOJY*X?vEpBSJoFCF(F!pd@J#9D>S>mkukPak5-b4fS+~L)|UQ zS*e7XW&5)w8aT;_kB<5p*fR@)&Idg57!1Q1$Ydg1^23^7M z?4pR{T87_s1nZzm5iND?rD!Cm#&j>nvI`{^fe;+lGa1uP2+X>i(l9^8w3;}tB@#=q zOh6EZCj{$Ls9}fe=^g_nf)!}iuu`BpcmsZ+`-LP{;YNza$y!OvrlN0Yj^ZY?Xt-Hm zR6#B0S*eB=t5c#CYbcex=aA=dwOg7mQ;$-t6DW-pa1|@XtyJq+!ZF>L?RYVByXAUO zu0xx|28jGl8%R%V@T z65BaPO}C0!W^s?iy||A8CLA!pCI%tGEw$USdx|Z!DT3sm-u0cNBB*LOxsM;bFRc=5_|X+Ml-tCU4R82KOylXo+9KKDT{DRcnTU# z7Eb+=R^n-iXV_?|Lr=Tk?z0ll@nJ+aJS(qzPBw}c@REiXhc~PZgkXu6vEOf48(bO$ z+#spk@yq5C45hzg`2)u_Q`8zlj@QlODCBo+diO#3fi_Ne%*}hqoC!2^My-CSS&v-r z=|)ehp7E!YhPMXi(QjA7JA()4C5vQmy_3rtX0ye!Z)E>Wo6XIRrsGQ6NI5ReuvXLS zb`l!i8| zMf@<-WAR?poPkx(YaeRr>xoly3Ri6ILq#8^(QeuoSauvUK1F;J3C%i%t54#Z^6O8a ziMBWNV)-eorcL?U!buI&x6tPV)}KIoeVh!%1(`mI#iX!B-FW~D$ZSV==RvTy&g1Cn z#n$pnXCLn7{ia^z)!lu_^QIR&>QCVQjYL<(k5E8tia!;s`%oc7UuDd>i#th)d^~yv zHZ3)c;W+PDfke+>9520i{0t;hjiIAxBw}xYvv+{AmpL)w>??5g4RH1`CtTkcidTnD z;rV!Vn2hrsD*hcF!VDt6N2&4yBFc{_Q+`5~at<}h&zM4Mt?~;RlwYw@`3)PD-_b?1 zrThU~`4f5NFYHpzV~_GT_A3`~SosIXl#BRS1x~91pQ|PKN>%W+8pbzj1ZUMK&Z#5l zy+{#JM~X6al&Dchi>Ydvn5m8t^VM>(NUab{)JkfX<3x*E<%6S(BNeSha4>ZM)eIh@ z4iZHuB&g>FGSq)6tjZEWUB;6aFkXR@6z{u`ioN3{0`{n EKUNyja{vGU literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$40.class b/bin/jake2/game/GameMisc$40.class new file mode 100644 index 0000000000000000000000000000000000000000..5c483b931545328eb04bcb8cbbbe875e7d2cb193 GIT binary patch literal 1880 zcmah~eN!7n82>HFWl6Hwl9skh{VLD?b*=P58+kJk|OMd_Rr(Xa}VUMGa;mnR+ zGpDi@y>4c&)3R*&#>mWNjwr+VkZjSB>u%Gi&X)CtG(CpcRm-vDTMUuW%mzbr-YuI6 zL=YFy5Mwy8WI5)|X1!#3>w3vH8B$BGq1zj}XQ^|C8I@JbXE?VMx-0aK9D`OdWnqEg z^k{~ZT6)&jol161dX`hk^<$7BUa?9=sa{9g9eQgt?9nV+hAhh5|M83lIX90f8h+E; z)(yqZY{W5yvm9qAoY0Fq{sqn<%^)hC+jPpNBQ1H49{!|Tm7fa&DO_Z@7*;q2bS{o( zaEaqthEt&n6-0BoZwfqzVTQhnMd=E=Q3)+t^@i)Ixcf1}@Kl|0o87Kja(Z%4Zzb>| zMmb(0@I#J!>;y6xV@UWa9E&2l%P^#XJ(h(`K{krff$djjTx#j$Mx#EP4R8z6L<}8aJm(}S7fj4o5A=xqw=~8vr zCY2N)-O6v#P0H}9z%@{yf zPED8ee;yr@1POV~h;A91r;AMfEN;Kfti*-|%#Xzcz-WOO^ z5^dX~jK;Bs4>{I*QS0`Lzy@x0+o5VXwI`I8Vt0C&!WhD)z(>kRqds(M>Mb7&e1cDj zW1B6Lu)WAb|paD6;$jNh2~k6swDoJ)Q#G* z-U!AJSD8wzxlPY7^Ol-b16@ofRk71FTXYQD^=afRo3iTCt3|QSco^NtmRwXe$vNpcAz!PSC0xOb}HLBB_%< z5NVq$@8GqNY2;ti6i&5GS%DlV7yGfFW1ErW>SmOFT5|P@cAOC#Kg8+Z5PdMtj&OeB zSCkI$^teV#>iLIwL5So-j87aQo7NuT)wIUaG4=?#w6c5q5c9-r?`|Am>3fW*!{#AY zqIZt4GJb#$j&PgE)**^1vvh=Qg+wGkVh$%M6bHk+fehcp826FoO-%C^a(oZ-MDzR} zR`_SQ%|Az(e}P?oANTo}_?CZ#@Ax+X3^&@Lc3_~OVIdtLw~rm#5#GeB!449%k2)Me ze-K~8#SHyp4PzG#+Qo>1@bCMJo&t})f1*M*K5_dX(IgtBE(BWiOVAA}JM{SnxK6#E literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$41.class b/bin/jake2/game/GameMisc$41.class new file mode 100644 index 0000000000000000000000000000000000000000..741beefee7c56a05c9b6b50530846b38c412bcd4 GIT binary patch literal 820 zcma)4O>fgc5Pcilaq6bDq@^w2r4&d&5K*`VRf0CDBBi|)a_J%3*jsn0V^{W;p8yj4 z890GB@B{c!h-W9DsPup(&zo7#%$s@ZpTEBU0I-R=i;}?dTX~{3o1q-3<}S^i&isw% zPhHpot5e_FvDwk;Wgt(DN(IUE zBPCGlCBBUMGSzuJIke5O&PddoVw#$wCE$e0baw=n>J28nlg&uRVe`PGIu2VETo!Oc zJsbp@6joth)u+3uK>KE3TK{|2J?u3497Gvps>6`#xA30 zL_u^OensUAof14+j|lfYY<`?&TpcG7=NJiG!aQx>;4v|8VAU2r6UOCvceo#>O0B=8 zH7rg_6|u}3=g~JTo#*}t+x=8D*cvBI8ZaH#aJ}GkaDyHv<=IVo`GO8^;Wp>ay*1pS YwXn{pguB=v+PFvifUn0M`Q&_l1CeKfgc5Pcilb?T-R($bdi0tFHfL<-!3DnXl6ky0*&TzZH$_BLJW*pUY=gq8V=FPnI&tKnv0BEA-qa?8URvxQnVsQNMDoO_OknQ0PPEw)aBB6wfV-VWDu9Fe3OvjSEcJAvUY(AIDtj%5 zu@b2E(on{InQ0qO4_$Mla}xDtm}aJE33wxAx;p|ZwK|jD$wn-bQDfg^IvKUfxFirn zYMAMK5NWbFg?(9@ZKxt0nt^Hk?^*YtQ||}3j5Qyt0?TJ+dt-E5!8)!8EbI_ zAh32WYavgr;zRCm-UI^kIysElA*HTmX^aey3yC8+mLu*Yx|HE0)d@LD2OVy_pPpu+ z>S(L$;vc=9Sb3;?I|<`7r#ySg9Ho(u`~U7>Z&{$yO%j!D$1=}Vjtx*g{uwANZ;`Rj z=qXVUy@y{>{z9jOfHok)e-D=*7Z_J2NyJ4)0vE7EYa2W!+6GSb;%CC7+;)fmVW!mi zTUy2Pv{Vu2SmQnVhLyA2AL06+iUwPgq-g`D<0`HdoF1;z|rP8^BZorqsRaN literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$5.class b/bin/jake2/game/GameMisc$5.class new file mode 100644 index 0000000000000000000000000000000000000000..454923cbd64bd2be0fc52c67d555444df2d748f5 GIT binary patch literal 925 zcmZWoZEq4m5Pr6|^a@^IguYm+7AYzeTeP)mf|_V;4GHy2n||c-1z60360~=!ub8p>_*eJE!BT;%zVowH* z+?EZ_kdC-^ls;%n)p^o%kG1d_#ve*0^+<2R%u`RQnktx zxX9q>cC9DHJ3>+|N-(-ZkohR4Xv&7J>2l#^9CKK(F;4|WI77dKOIT!JRMOH&y3$gA zs0G^9f>7dE!WA2r85W}$BS8+XVwuW$<5O1&vJ%HNtk}phq#{Y?vQOPWILP5Tg?pkW zynomS-)f#|Uoc?5iGq#%DEnxTgH;r1ELsl8clo2Uv!CYb>kdlB6IbHB4qIgjrK!Us z7Y_Tykl62@_zkfu%?v01%x2xpf~LHq8eTV`#_tK;?lx`Q`~P}orD#kQrG&rjxj`TT zWI&rkYlwlQjUn46Ym+o19b5g1iO=*hh6Kq3Y4Bxma$X?Y83vJ_B#U7R(EpW>ElN7R{a!f{Np+D ul&PO*k>V@J@Z5l5euxq>5FT#h4slrY)0v7kahEj57Rmc`667-_)AJi?q`~U| literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$6.class b/bin/jake2/game/GameMisc$6.class new file mode 100644 index 0000000000000000000000000000000000000000..d22481fb21fec0145643a2ed3b428a7024ff2213 GIT binary patch literal 1028 zcma)4TTc@~6#k|=W!rTTD0dVEMQK5)RBon51Bj*x_<}a^35V^lUD@t7y934-;@|KW z=%X4hi4Xn&e-!b|Qe+7)ZnEbxXU;j_Ip6#_{`DI`1uG^p41;gPzO0m8(URq7B(}WR znOZWz8Aei}jX=GO&ULcFhPZ$P@CAxDc%DxEP^0tb+z^&%c z$B_3ux2bjxV(MWe@^LX;PBuJ8?WpSio|Wo(3}V>C5MfTi>eR6@f>8!5Zi~0Uo-bU2 z&uV#G!MKU54E?DTJ;|DgrHyO2&X93EhOsmbz4RTg)ea+#Q1_j*aYNV7#_F9fbC{y) zEep3%G%Gwv!Ye68Rbzj7>j4=V?lHMp1Ne_yAlf3(+8R_iIPvpLkk%2|hA`LzdPQgp$+b5Su zcaz6(89gL*fxD!20i)3Snbb+Tt`1&Fr5gWI3+V5pej+TKa@JrN9<5dIE(%F=ZUSc)L1prZC7R6#@qLAhv%tv7A~e>8{oP>w9SO?M0Whxi=4 zfPdA18clovABs4q6fIs7n{;kFGyBcVx8D!Gd;>6udnOtf+FyzdIhZbrO__d3BCGs- z--rp$&{_9r#tjyHdA}e^fh;pLjwx3K;|xYTvBU7=Bg~u zi&aN5L^EDqIE$jJv|kJIU|snP9htf}{Q@z{5Gu-GcA6m;Pf*U5NISwUrssmPa*Lx) zILQ!MtGM~xws4$W#i#ceRXGu_Zz&5ZALN43|BWRU!)Ql`iBp8T4qB~`jZT~n#k~h~ma?V2*Kzj>>)MtkF&D0Uw=+*6Ic8nqpy*57d?j zJhCHmfyi%UMXAOcYtE~b^YVex%!(W_W4IY$DoF8RG}xe6R$N(KxaOOEHLWrlbvy~n^;{jy9Vj)VmR9Sl8NjwfH$ zYb6=%ijpfC`nP;rxO*aSwB2%YRdqs!;jPGB=P(u-jEYo+HHN`dnqp2w&J|uIx1$2b zt1Nb+kD>3N?%74ZbSQ0AR2n2@we;&$w6H8YI%M%*KKqz1k(UDPupS%;Tf5VH2@GM_ z#8rlY2=I2Eg=-k05qW-46D~t+elZrol%w7hLnV|3pTGnr zO=K8GqDU?TS;#gTIIo_wFs(7h%e6|9$TMeR_HXj6`n8f!7Uq#>=-e%?wVEmX*BaXE z+TYN>0zD0;h0;ABK3r(AwOCrbud14!Mq`D9FdEk057CP2ZC>JCWWzM`9VP6eZE@Tp zYI4V~2e#aBG?lyC6rIwPB(kr2w(EyP$!)2se%Zw8MP{_)8LWcm$zatLVJJh4fksMS zBN~!E9I{QaW=S*B#>8iIp3)(PB*`Rc@Dez^>>}H029fS2i{T1-Na_Mv(z-yrzxN}l zX1cBpZbwq%e^UD~&`SMA*BF$O&;9^E&7NVN$%x?vR!DQaB)LZaBo)!~pyxMN CejrHz literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc$9.class b/bin/jake2/game/GameMisc$9.class new file mode 100644 index 0000000000000000000000000000000000000000..5033da1781a0b54abe73686a611834059d00ff36 GIT binary patch literal 769 zcmYjOO>fgc5Pe&(gJNL9*}Y^FD<)@icGV9TEYs}JgkzhTIxns1jR z$66)a#{&-=)G$Ywc@6Lon+%J2FD4#^eTI#^0Xs)~oz1anZ9EF_*pl6hz*8BW(;w$~ zGvf^YQ9MdQ`BB-KmS_E6+1b$4_jMS>Db40Untt462wGapWG@nFDpPEM7Dn60{0ZZkP*5sexmrDKIY)l=@Wvd;FP>WaWE|+EK|fVj|!bu;3c6IaHyMs)?b4a! literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameMisc.class b/bin/jake2/game/GameMisc.class new file mode 100644 index 0000000000000000000000000000000000000000..65a5f28f2a0f1889c5ab57e43ea6cffd616cdfe3 GIT binary patch literal 19981 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 UhkpCM)8YWT%uYMLhkf+E0ag}Qt^fc4 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSVCmds.class b/bin/jake2/game/GameSVCmds.class new file mode 100644 index 0000000000000000000000000000000000000000..6fd51e7d16430586da8543d006aefb190c692d76 GIT binary patch literal 5768 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSave.class b/bin/jake2/game/GameSave.class new file mode 100644 index 0000000000000000000000000000000000000000..77116c9a8c8c334fbab69330588078c20dbc34ea GIT binary patch literal 9183 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$1.class b/bin/jake2/game/GameSpawn$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ca396d7fbee75fe8f5a587fcc4c80b7c9a78e9e1 GIT binary patch literal 688 zcmZ`$O;6iE6r9CQ3~qoDX!t5E2-GH25J8WrkSa=1q<|^~ap)yll2yEovqtt({uBp# z0&(aM=#Q#8PNK*vU}@j%^LsP%cK6TUhu;A9vEgAtp!7rb)PA)q`>J}((7cq_W^2!b zE3lHO9T|HTXw&=Lk(XA*0{KtcXnP>wlq=@~?qSqXJ{(LHkV9TzwxNwWz3N}6_)K1e zN}$+?+A=(su}<^RPuB)I5m;(uyfSmt1ae(v>t6&G$`v;Kl+{q0ZnbG+ZMwBd%n8gi zzqPbg{Z^o4XaiCxYI*{T<*cmg=(cUyTIIWsS6K8=qUe9Nb;=|K%wg$SHV^A4W66C= zT)=NeS8-c?)#;gM#%I}0XXmvXnRXZ@oc%=EAnJH{`*@1MBM21g#;Eu(lu4oztb@jU zISeB2n7PO7BT*1@+jp4!#mxkKMxO|5!e#LVcZFdSahe$?!z^PeutQ7*oZ`z{!jPV- z16vuYGo}_XKcXHGQ=9yUdn~v&WA@Pe9nIel6iUOckpla%j1_VntPVJ@u|{<9hH;(C JXD#*T_YX!&V`eKgFRv zwc^kp&>vNG>_m};ilu$C&--THyxl*4AAbWlz*`Sf0;_kjrw(cz*;lnQhUP%tn|B}H zdvFETbB8C!UUjwUeQL{rRk1+vqc++e2{@JNwSapZwUrMCGbI#I6qs*lqb`U2TNPi) z+fWIV8&M#`YZ>b_AOCc1S0@5%ja;w1k-9*kqwM)-f#ph-Ro`SSl%`W_+E|-TeHx1b zv&}E9uR{~G?q%k!KvC1D(9m)Yv9R+K(?7VGg3ss^feThcYk5oeVDLE%_BA+WC|;zs<8s=v4(YW9c*NrO}r+$*kat~ K@_Cl_=l2i(nT5pw literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$11.class b/bin/jake2/game/GameSpawn$11.class new file mode 100644 index 0000000000000000000000000000000000000000..380db5bfdec4e17fd65fd7e88e625ca8bd1ddf0e GIT binary patch literal 688 zcmZ`$O;6iE6r9CQ3?>u^l z9{L0LQB}uD6j=x??VEkxH#6_;zWn?17r-9YJ&Xv<-^-5LtF+{Us+=*@ALWzT*xmKu z3M^#~PmH~8YtuPw%15hWf&9KU+8zivrSgq{dlWU54+mofDsnV1Qu%2SJIR#r82U>mkt{_5i+<~_^_%)GKarAh(QSa_GrSsi68+j&b{ zz^_N$I8diL9r?p>l%2G5-pYvy!YEU0$g8 zOkRXapxlZA8J^2nr~UM!Yx_D8SZ`&#vO$^xxt_Ae?*vw=HBNn&^-!8#y=`M{dd&is z1Qyz-osT0Ebb>Gn24qmw5G&QJtm^8(c5Jiu!N((1Jgf>V-?BZ?Nl?TR*6txuvRJW)1$In^5^E~(l9&oO<%hor z6MCu+e9KUs8MTb%DRq~a+T>sS#ftlL#-5mer}>Yu!s=vds=#@yV}o1=kH?%%JR!Q+ NV%_2Eb1(Jh^B?-8h4KIZ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$13.class b/bin/jake2/game/GameSpawn$13.class new file mode 100644 index 0000000000000000000000000000000000000000..beeb467d4d5eaa3d017942d9fdf77fa803eca066 GIT binary patch literal 5739 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⪚00+8UX+f&OHwOdmQKJc zl8)CU3vWnWcvCtZZ%OCiZD|eOk=Ei}>3X~;ZNU4|o%ld{2p>vM;Uno4d@Q|-Poz)q znY10B%QC){`{OHl7`~RrVY^(99rAR1E6>JGxf$Qdt$d1{NF=98l2?)}=ee~hBA-TO z@>x_aUr15;GE(GgsY1Sm2FkZnm3%K%%MWn-5Dk_eqapH>+&)9Y5qvbES{hG$e-_Y2IOyeUJG$EpLJCG(thS225aBfFZO=KUci%g;VNCUS`G$k^V zrbZ6rb~ZIej-)2{;2G*2F8;y8#|*8Y6F_t#XT?BNG}iQ+sO-QQLwDfN0g&k=CQFo{ VlevxX&lr3{GpgjXN}Of<`7g1kVp;$I literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$14.class b/bin/jake2/game/GameSpawn$14.class new file mode 100644 index 0000000000000000000000000000000000000000..1bc58bac5d0803b8c821ff64466d73b48785624c GIT binary patch literal 699 zcmZ`$O;6iE6r8o47~D|WK%smUs5m68+NjW5Dx?Z%g%l7{5C<;N;w;HFW*ym^@~3)e zPaqEc0sJV`aS}xqDwh1l&+pB=dAs)ycYgtF8RU%OQqK&q@0&b;xCgAPGZ56=9bO{9%1!f!CsN=!ag-TB4 zMWh7EjX0FinM`z+kAHf$t5bocMs8N#NL`@NQTA|OV7^ji*H2lCr0LX}HqoY2pTbLl z>C1r$Th}s**iAvx<7Sn-q-yKXwrst69^e%geJlvfJsNqW)3AisSQ02TPg*(6C$zY> ztBj?y|BVs|n(-hB)i<4O|9rC5$7~56(18h~IOP&Y%68+nj}0n4@-(~;`Z+X4C3}%f zQ?NWgQ-9Ka1byCL^v@#7N0RMjhcuv%;*fWjG4d(VkY30 zU;HMF=$Sg4evax+sAbHJsk=muLGk@9=DlAN_Gowl&q;?03!|>F0{gLy6>?py4moRh QL-erDxXCwQEwjYuAEXnBLjV8( literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$15.class b/bin/jake2/game/GameSpawn$15.class new file mode 100644 index 0000000000000000000000000000000000000000..58a007e4299d573f24abd0c2df040a9fe6491006 GIT binary patch literal 689 zcmZ`$O;6iE6r8o47~B*}2vF!3m3l~uAcCr=R7i-@3Mo{Tf;e!AHqJI#V%EssfZ#WA zD5q9E^au1uRg9A;vQTTuZ~Xk;%$v9S=kKrI0Cw=&ha<3ZCI@P#-jnC5{+Xe5A+OAv z?e{)Bfwf%mz}VxyHiNycys#<}D1OjJ+g$;-T00T&_T#P!;9|Cf0*V6jO>NYd;dw_T z$FdVCfpRkrWppAFo#m6Cp6%;YV6~Z>l{eB5DD;#){3uYV*4T9^>yb3Qddnu-^cpi* z5SVLyZGRh@upM{KRA@<|su^&-YF<}$b!gkRQ9BK=gcTpl0*epk9_chJVF6G7OXjk! zG8|I*m$pFAiib(4KIv@dx#=!jnROn^feE8HrS&6a`*GLDD=IxOF}ekT(xEXb*^gwJ zsub(sU|tbVYvj6kHsUJtS2 zj}Q8!@xdS9k20QZn`T3Flf7r}-h0kHcjot>pT7X?OVqp?NJo zneFETRl(2x+|B|_@ ztBj?ce`yN@&3KT6>R4whKbWlYEOX9NIWl1sr*!^K*>2qSu}P(SCWe8SuNZd6c0Szw{9je0ja zJyGeQJc*S+t(}B2K9Z@<^XX5|_H`z(+Ahp08fgiXB4zjA2rShb>^hUpSemHWv8gsu zYYtU`YUh3T!^nhP^?4X4nLgvR5{1ox8`g``s;5KSwXMc+fIC?6u`IB7W%Pm0!V0Rm z`(HBmb(OKSbe*<9&`CyVsP=Te_O01E&vW-YnOzg+E=_cxY(MGwcu1uyCdL;bP}w&| zr8}|AGL>Ni9L(FpIP#d8`^;Vv1+nzxH|Bov!$H6p5aE1*$Kp-ql}QtEo*A8CfiV|& zM$84=+U=i&2|ZVb^R+;AXVe-Nr_?PX$DsW550<2Nph;Fj??Ad$Ix%bZe{`2z}fNiY#a0He<%CXvRh4MtT-Y|4e z<+)kk+V$ZHtQ3+5#`Z?qj9(7rsa1(U`Gq#x?g_Y!=8=H69}iUk7xNXAP!?F|Xrtbp zogAyACyyf~Q0v4486C+)XMFn8vm>1fEO!dMii5NTN};lcuLKqwO;&x9tw@@%)wPK> zVS5f$fok`CpEL|r(wEV>yr5%=#%9b78%1k1)C1eM?dFF7_p#)oE>OSGx|cguP{o7) z>bbJ3jOA4SvKI)t@mVrZuXVQho!Lg4*#bPA12c%?lncC7b`%eNJf+i(IVN`@P&qV4 zCHs*~Q*AeNqe$J{r5I0zU6BAiQjOx_}|b&_Ec+Shi50p zD(%bTSP9g-NhsqZnd-cszVz%!X96qTl2oRsdSK-kX{wanlbllmW9<&hjw5)t&aijW7$VTpmD>vU+C1ZfCvBOb75B* z%S`{07YKUESsJSMI^X;5Y@Zi-e8$~1VVq=)f1vCr8Txoar5iaWe?p+PZ;VQJVwq(s z!#Zfp--k)%cV_Ridqot)%F~~i`@shX0c${na|w@!x7pWti&Oon;ZT;Mq|7jWzM zz7q<1t`6sOiR#X%bu3P)+eF%+`s@lz-nSXMF#iJ2`8rW(6jM_L&SM3u0Eb@<_b?0$CY|k^lez literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$2.class b/bin/jake2/game/GameSpawn$2.class new file mode 100644 index 0000000000000000000000000000000000000000..e7cc412eab4fc499d9d644b0867af5248902d47f GIT binary patch literal 694 zcmZ`$%TC)s6g`8Tn7S#Clm^NhiA4ewOX)HdQbj3>6cADn3pUY^jN&2A7}*2-R2S_E z)I~p_A64}@i6W~HOLNa$-+RuPJM;6`_a6Z2*zqtUP`Q-@RS)`dsDe|5_MLn*yLAt) zz-q2`V(ew8&ER8C-dU9h6hCOA?U8^}tz8MY$8k^jaPXpp0*V6jEp62K{qRO5m+~f3 z0_9fRmC=<b6K210GXtN|Cj$F$S$xS|Y1~A7#f&GzJYy#Cj+hBJ<%O?= zF+EcU4sujyN-g8{gnC5GY>NBOSaQEi*<fgc6r8o4xR^j`+NQL86^TOvf}n6rRSA`XDg}g;s0S|5Hd#4KoONVx=zl4K zU%-K$TJ^vW;71|GaTHkFZze0zo&PB?I+VXI^eEcY2Ynz~ebIgD6h9!h2;$@zBR3DqZt2zYT%PkufSc zh-8|o6uaPHULod@XU*Ja_KGNorKcBIIp>FifH5G#IfKXIP3D!niFk_{one(R6L?O{ z1l;PKpM;#Asl)kNpt?(H73&M?K9OTkes+ls@5hpz5B~ud+#~-+?n5he*OZ`!ln;LVC9P(t5!3VN2>Xrp?fUP z%vNjLhbORBDDD~C8)-9sGnB_xB?9Hw+Gx8Y;MN-l0^V*sQ~_MfS5QJ(V4YG-0!A6K%rw z9F_zYyPx_@!%!vtL`Cu|Nz^rCE?6%rtDzp)zHK)?2Y7%LA2os6t;xMysDdRt{4bvy zyUJLa`j@;w(2Y-$fqJL2#qZ4)dYSp>+3cA?6sPq6LD^9}^s!E*TRtXNAyC;jMkTwE zOjDI&102lz!zA*cnfuIM5e2dI>>6`d{BRI321GdD;IVjzc_nWm-epE-SYXTqUJx?@ zx4L*q$my9nobv+Jol&c}Kc(&vIR@qDH(2(5%-H$x3wX}=i9#*!nkuj#t5_q~#iI%5 SF`f`TJZ0SA8?csH;`0}735hiT literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$22.class b/bin/jake2/game/GameSpawn$22.class new file mode 100644 index 0000000000000000000000000000000000000000..131204cf6b84d1ae0f21a966e398cdad03d5125d GIT binary patch literal 693 zcmZ`$(P|Sx6g{)M$+l~1ZLF!Styb_MQ8W-ABZbmdDWpY6=tEz^G#NHywzFY(qQBHa z3;Lw^;0O3o;@NBnOVNeBXYSs6&OLYM_n)7?0JQMjha<4@Nsd*k8Olr5{J_wi$S>wa ztL4KJ*eVo{jO~rI8Sf9}#HvJ~{7xHf_XON}<4nLih=(eGi{%PRC=0B1v{9$i%L|qC z`12qo1Ma}qLH>hDOC3OP++~@VAp5ajHC&hU7KhVwwJKR zS>2C)reUa({$!et$f2wmbH92~SPk{S_HDay9^er+eAEPLcLw)zoeI|Q_`iHE>?&jF z>0j~!K{uWz1NB~Kd*5H|^Cq)TyGLda#VPHdC_9RWKAutOj*r<*2vm-ZQOQ9h(^RF{ z1qbu`FpK=p%zb8WiGo;q`5jB&cyJIf21Gbl@L0UZyplH&SD4WmRv9ya*ThV~tv>il z$my9noa+MBT~ModIH&FrIR@odKd|oIEZF(*8+gv`Ore%{%@x>>O>B|t;>nD&jUA$g Or;NLN1J*K2eEtHI_K5cY literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$23.class b/bin/jake2/game/GameSpawn$23.class new file mode 100644 index 0000000000000000000000000000000000000000..d1f2eff9b6d7f0f3291acb89bd072802b2060d0e GIT binary patch literal 693 zcmZ`$T}#_g7=BKYHZJR?)~-(Xp@Utt8?#U^JA~nM2;CU8c(I#uY!B(N@kEl-`KP>4 zHrUw3e!zZ|_@pT%hzsO>^5(qH$D91S`STY*8?Ssg0_&%8qS~!co~hO+mfpF%Ft6LY zK0JZV!r_6j{joNa44bKY!`ju}%dxx&^Odkd8npRQBkjK&{c_)OXp6qzPL+n`jeumas~% z-q!)!FjUE4JWVV)lrINx<;WP7>_;+9Rf=uU zn7x%m%x&d-@bJ)fE@a2^}jB-h2W8Rt1(5IwwP M-R2$eEQ`eJ7Oc048UO$Q literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$24.class b/bin/jake2/game/GameSpawn$24.class new file mode 100644 index 0000000000000000000000000000000000000000..fa91969db44a6bd08ceefd1e1556a6e64e7b95a4 GIT binary patch literal 692 zcmZ`$T}vB56g{)M$=WqFHQHG1hYCIc~E0kpC0!x32fCMT-h3gxM4ePrmJ$?s;T z{mzFcuu&);8rvUhGua=>GpiDT@~$@8?g_Y!=COcx5RX&<7Y`~Zp)64CYNI}%pPs0s zFHa&RQ0vA+86C?+XZh@>XU94fSnn2Q6^(QRN};kx?*&#HO?F+#RwPZ>>e)n_u(N<= zfu-J;0n;#4$zY;>kU~{6;d+gtt{Ul~9oSCuYkP-V;nUK29`xAy24 zA*W~RaIOkecTTNgWk%g2atz9^uCVI;oU`-c*YKP_Q-yloHB(?e*0DjZi>Fi0Gdw4H Oc)_^EH()KZ#OD^Cmx#Rp literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$25.class b/bin/jake2/game/GameSpawn$25.class new file mode 100644 index 0000000000000000000000000000000000000000..e965141a3ea18b8b3a182fb0dd89d16d3475d2fd GIT binary patch literal 696 zcmZ`$O>fgc6r8o4xHW;&P*PexS|kn$2qFb>3aW%kL6rhRO4I|FXzQ$;CGNViH}p^S zP);BYMR4RtA;xwTSru6F8$Z7{^XBdT{`373Ko1XnI0BoWUfFGzUp2<0F~sJYW3u>{Mq0TZ781s*%1xEmHRIwZKNZ!>-S=8%q;)hc?wF>aSp( z%EJ$1rctEQahS|aVX#JJGvkWwsG^1%hERPeb)a=d0gXuJkP5fTwd{!Z^ve!8>KA$;8JFm9F?GE<>PkXpBntW0_?t z!!9_OH;5wgsG0lBo)ZPJ_V_DSzVO3Az!(tWT*71V8uLckM7++7&alRq3p^#}0&er> z1)-$p>TrHksP2;5#H|H&kH|5oKlz3Y?|jKFhyR4<{3;Y$W!FN1{n)}bxi0P&oO`%W P^zeXjmv6vYZi&xd)*FhJ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$26.class b/bin/jake2/game/GameSpawn$26.class new file mode 100644 index 0000000000000000000000000000000000000000..8bde98bcffab5d5bf3da364e88f17f70623ab429 GIT binary patch literal 696 zcmZ`$O;6iE6r8o4n7U~xDGh~w01}4;)J6(YFR73aP=u6Ll@f92C0de|vyE9Jd!g!o z>YO?D(Q!bywLV5Wpp-Uu2?U6tDzp)zHK)?1$crbA2os6t=_%ds)7YPy;IMf zU1coC`k%c((2dWNfqJL2)gR7QdYx^+(>XAMC{DS-du2!Q(8nsBZp|^d41vm#F)G=M zWSXiJYhYvEASRJVP41Iz69uuf`2%y8{BRI321Gbl@R+<$UdfAy56Czf<{2}CSH#S~ ztv>or$mN+koa=(rok^>BJeBSc*#_mUpIG$1&D44GKk%HJi9;=~nmVu^%UGe-#j}a# SIbIMwykuPC8!(rR#OELL+={*c literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$27.class b/bin/jake2/game/GameSpawn$27.class new file mode 100644 index 0000000000000000000000000000000000000000..9981b6bc839d694171f6a398da1d0e12e51bbd40 GIT binary patch literal 700 zcmZ`$O>fgc6r8o4xVV9~p-n&dDpCqJ|8hoDNR6jUi7q(nV%iMGkg*~VE%_6GhG z2RMN^^aoTbfMS zB|Ui-DS>Jy9?0laCOXR(KRr9rslaZhFso>!El>)TJ$WUtS#PlGqijafgw3u^v5{2lv})2b`%eNJfPAwAM*?U=4J%*y;UHiPh;XjpvAD{-k~a}=GNUuBF=hf! zh?#&}UH?MJ>6tp5p9QMBq*ifzK|LgL49btcW7GS*Waq53cLV^9*#U8mX V?#wxNagXTXKI1;$fVIpLpT9q?jGh1h literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$28.class b/bin/jake2/game/GameSpawn$28.class new file mode 100644 index 0000000000000000000000000000000000000000..ae072980a8311ac0d7ec17a1e26e0ecae9aefbcd GIT binary patch literal 698 zcmZ`$U279T6g{)M$<{Smn||5)(F#5!N*jnTg-Ai#DupOQLLYny(_~1-Y-Ypmw59*a z2Ys^ip+BI{75z2Rvzri>q6>S^-o59Xd+*Hk-^(iib-eK52&{gULshT!5uFKK<$0fldV0nz>&2K^g*uzOsk=0!x)DS*NlVO4F~kY^+Vc zF^2_#<<{qpl`(l8t48CFGFIDjDrs(p+_I9lS3TV&u~GdJU>U1ER_Ji2eLHh2VF8c- zE9cfOJ8`goxeElX=p^o{_c~qv;cThxbO)Z#f$4@(!W}*;JBWHdHt2L`jO;oDN{7a% zcrTPmq7rO^jd_R2A`hFn&+H9R5DTwET zVrt-)AAKiGXYhm{Fy>Oel$uuiRu VCz<9co)JAfXWZl)u$GR*=N2S@i_QQ5 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$29.class b/bin/jake2/game/GameSpawn$29.class new file mode 100644 index 0000000000000000000000000000000000000000..a3de97c43c7c69298d0476bc3c74a594beb0be7c GIT binary patch literal 694 zcmZ`$%Wl&^6g^`*aWSE7LLaoym()elszeGa6jTY7f+~foQlc)piKfXYnZ_MQ_7r}K z1*||U_<;UG5&Q|_*oh*m0!zNf*Y}=t&z-sb^Zf^a26lWn0;^YYq#E^syjJyh4DGS} zXm%SfeRu-vx#F?0ouM|P*L^v*Di$cd(ni}u0k>K^7x0dvz6#*tK?wyE1r}P`sMDM4 zOBHwIWvB!yt*9r%a~bP2pZ@ghP$vRwt=z1AGFIG({t6T}BW_sDORK)_*{*HYE&?oL)yIm!^1acWOsRx2p8S{2 zja_9dP5nzEiRVg`TJWc{azU7e)#FzgKn`^?htn>7I@3Dg;U=#;Eux zlu4ozY=eV&f5;*anz_&H1yK+SdtWj4g&z(A#()Ut4jzjSnU^L_#7E5N3=52@zyUE8 za4UdvSYJf2byi5!FC{x>XnpJwdI@L%wp- T&NFNfJ!~>=^9@)_E%Esa?$?ST literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$3.class b/bin/jake2/game/GameSpawn$3.class new file mode 100644 index 0000000000000000000000000000000000000000..20cdd034d3b17b3172381824d720ce2bfda7ce14 GIT binary patch literal 694 zcmZ`$T~8B16g|UkyRcM&3gyEuOnhiH+60I`)Q}iJ)1(@c5*~bMhIX<$bURCS2l-Px zz!Sy?e}F&Ac&2Td4eBOy&)mKDoHKXk*Y6)c0qo#efH{HMnH;K}W+X?d`H`V}E-%gV z-2lG8R-txe>~XBk@clrZTa^iv-)W=mzJOP6oCx>_=|F|>uuwq>Wr3xRHtO@m=u~CL z@-$Hb)lS-%$%)Lg%cnnm8|z$Pqf_uIoTDXBij-|13ar)}Z2Bgfi8N8OYcp-4);v~N z>3->Ht46(8$;8IJL}n5FN|ZK3f%SS(Tn%*J_H3*1HN+a$1Jo#R$GlCkyn+>M{Flv< zJ!LGp{}LAnyXi&NS0A*S{QhjB*KPt{&XMUSY0e2gDI2GQ08jru#rP=%Ds5v_c96(C zS2?ypW4<58kvGjeV75yX#L|mf%-?V`hmbKOx}wkGB6pQZ6Y(B1o(xNjPT&>M33%1z zYr=%?)PcPM)tgbPcrc~z6P-=@<#(+5S2Om+{0+_DjumQ?uBih1v575mJv5G;}Td9i#1gY9(s!FI7R4E{&L|w3nrpd?|;*KMG`uM0W zUCyJ~JEcqT^-+RtIcjm{RZ{GpzV#|jku=-Js)NV7BXR7&zp);13 zW_xePhbORJC>|Nx9cnXrIgn$k5`pr*HrgHtxb?<~fOi-VQ~($A6_ijGsJ69H@6OLo zRnnEGkrJr2(^b literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$31.class b/bin/jake2/game/GameSpawn$31.class new file mode 100644 index 0000000000000000000000000000000000000000..7240f87b76b85eb9409a5329344c550eb8645108 GIT binary patch literal 698 zcmZ`$O>fgc5PfSqaWR3?&<|R^io_uSK}35Ds)R~Gl>$Oa)B~4j>x_~m?z*zKd z6Nm#pfPVslzkqmlqR6VilIM9m^WMzc{r>0cHvl`h7s6B6c&Deb(;4d%>AYm4K~htCyOTWxlo>rSHWxYKu;vE%L% zRutCyZ-!21>>I`t7A28$NywzQozi8iDla1wyP@m0-$q!&Mu>GPTo^wn)f!mAjsMc= z+867%*uT^jqJDao#qz=w=C3YHJuW=(d=6}!q&Ypj5;sXlA?{M?!W!juC^QbOm25xJ zc`iA&!NI&kl#z$cJY=>@RK(hY&sh4z4-XMzM1=PP0gIQJH)c)5E6lhVmKh6yN5n$F zZ(jRIn9&P$ct0yte?e{H`kcB)MT0 T+`?^QfIE!ad?VJ1mH7Mx&nb)I literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$32.class b/bin/jake2/game/GameSpawn$32.class new file mode 100644 index 0000000000000000000000000000000000000000..a77e9a3495610f2dfe2da98c774a72cd4cbb020a GIT binary patch literal 693 zcmZ`$O;6iE6r8o47~Hf#8lcb*K;n?JY9obXDx`|i3Ms8BCF0Oav^c9|8?#3C(*7w9 zaB9VYAHc7nf^*fe6GawkE%}X~-Jy4rO#G6P@MLpPn7*RA8-Bm{l~=7AOssJ$Nrrt2fy7T{a_WhRv=`v>CSN zuq3e9{nEEGVP8L0VWKQa)HP!+ST8E8fevlowi{mqEMwKjioo){$-P{tf+alpFP#g! z%5Y5WU+MxuH$F{5^+9KQKbr0HCbQ3@**9Snr?me`*-O7AeLVK#M}ix90ZI35zY-f79TLLOqz%fnb8>*7&C#_#7w}g zE}j!6^h_Pj?*i4GQLA`7rS1|r2IW`3Q1i}a?8)$3c+Op}urleIDzG1GSSQ!T)131R R&xsyhFmCb&>u=^q4Y>LMub+Ndvta0IrrR|AAi1m2e60dJ{*Dd3prAIjZj{y##@HYmAo-8 znoS>`z*eDnY;1R^&FIZQURjk0l=rpK_CUa`)z1XH!+4+qxR|Y=gtEXwTO0NM`tn>Q zU3nfUfoePM%jirdI?E?NJv-E?z-GHJt7xPpPzsejJrY={)!Fq)HX>=lM#m=FgsmAY z3Cwps^sG$S*9&7AkwR57;(E2Bt{UjR?b%lSV}Mnx`&biLeK5D1%T%z0jsMcQuB(it zqkpLj1fBRg>8lf+Z9PBTW;Zj>gE=<+C{AhqowCDt;A5Lg4{YT3AW%6qMkR-lOjDI& z2OP}HLmqj`%zb7}q9B%D-eKkoKO6*%0TIqUJQnAeSH?}mN6hF93yhh-YhotgRu?}L z#`H`b&d&nXol>hG2 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$34.class b/bin/jake2/game/GameSpawn$34.class new file mode 100644 index 0000000000000000000000000000000000000000..08871a37250be9b353082e53901d9533f19df678 GIT binary patch literal 693 zcmZ`%O>fgc6r8o4xR|tQL)*{~`XO;hKoF_r7E}p^f-0p|r9?e&iMGxvS>moEdkcSx z1Drq{_yPQ=!q|x-s{%`Yzkz@@s9hJrQsl%_{+~6Ax7Y7Y`~Zp)64CYNIZ0Z?09+ zm)DUJsCDB|MprV?Sw8>i*|AOqwz`F0MI&v2(n#5}w*u>pCaXTlRwT`+)w78O11l5O4bo{O(=kcZH4_flC@QO=4(-6Un;!yfpzdQ+VB=orelAqO8Xo_b&VgNJ zEIs{8T_EViw@Ikp>1^(m#XK)F``nsS6Gm}L`{&Az@q z9Dt2^e8?mBnYqvGm?(&)XWy~(jUNsI#()Ut4jvaDGOx^vh|A3A3{}QV-~}-gaBHhy z2{U@84(CsS>Mp1?JepHah-`!M^B-9EzAV^zbC);6b#jHxS=C&D_1MBTxh{5c&Mux1 PJ?t?a@C~?@S>p2-rGtn@ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$35.class b/bin/jake2/game/GameSpawn$35.class new file mode 100644 index 0000000000000000000000000000000000000000..16c131ae81a5530036110ff869ba97e18c5e4a91 GIT binary patch literal 694 zcmZ`$U279T6g|_~&8BO#P3(uQUlsb0R5Z}yQ=}lZN+F7n&<9__G#Qd6VS+DgtojERsT0v7Kuug#i>cbU-{Rv5j&3!)d0jnx~% zjPBJTD(y-P(Cu&xMKlXZ(Im?r}0n+ka!fLgt9=TZLI!uec9JZ zSM?(;P;18n6-8g*=Ke|)wi9kxFG}m78MvNnHNFH`#k!9*fz=12ySY+`DxUq9&W)wE zj;8*lE)aC$>tvwcn{4qX^M&4I{&_ZMb`ZrW{eRSM91neLQR#t={3-;(b8B^S%C%CR zVjCRH`$Hai(9C^iheSavz5b2GU;J1=z!(rALwGDcW*$zPh)c}q3>C&qV4s)?$lCHx z!jzt=LoOAla!#$`>5O_z;`wb#bQC zp*oATK)s)YDn3=I$@BS7&rM7wu-PxoDjVquR3hz8-U&3?9d=!-Zmew79k|rksJDzY zf$hQPky9!AMq!#{S*)*hJYqu>wF2YftHV^z{VXH!$P!% zH9Yz+oy$vY9sT`FT_6}FS81rQb)m{*A+^30k0%npcxSlRoD+m!b*#^+heVD+^~EnVyl)HkYbre? zaOlGms1<@I*7Zilj^7W|mD7np`JJ)G9SO)r^Gv`yjt4q`#6krnlm!+$#_BKEm*+a^ zsq;t+R6B8~qBE74%%5I*Ze&t{jZUFfv5~ewX{g=l2Z5DFlUX;a6)8JxbzNfYusx4u zfqM6A->HOo{V<8sG}1RZn%&t{{&%_iZNPHY&(DJS`?-6$UT*rw8>Hu6UisGM4> zljBIGsZOy27UoMLw_G`WpWXpc5KFtiFn`O#90J;a2w8*2;1l|lNfPlXJ$8mg+DzaL zF%yv0rJsZeJyVCQ7pQVZt>XEVdPHOyl=psP#rrX1Pl|8ClUupM+9YeLz*<9yYv74?>_*$Sobj@u=q<2^lq)E&UNiOL-Rsi+l{?X zK0JYyT=CGlR^Qmcm#(^SIuY@2zUokR|k-oDxrX)z)Ztf{p0fdOvf#C z7HWZVBkHK|M8zh}M;|@cH;KSAx{e$@5xo=T5wWEUY&Iz02g{@mm{^4N)0b@XfT!+WvH1pE1iTHvUoneMC71$=G0Jw5APV) L_y(+{miRmXqTGgQ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$4.class b/bin/jake2/game/GameSpawn$4.class new file mode 100644 index 0000000000000000000000000000000000000000..2fe848ced0937f9a67a698e995d7a4c38daeb634 GIT binary patch literal 693 zcmZ`$O>fgc6r8P{xR^j`TGCR!TB(Pm6+|lBQU#$>P^5s6QuV+k+9pr-5@%i6TliBP z-~{5p58y{3#z_=ed|28y`~2R_?A!hM>-!G?N7xInqR@D+Cvwz|^iUobQp_HTs)jgq{*YQohWQI%i1zFBR6!N*1Hh5u@#^}2G*i;X{VblM#WY5jJG=DZzXw1773hc)n?2zl>?u>H}_lZ6p NFz#}NtQG$Jegj$Bhj9P^ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$40.class b/bin/jake2/game/GameSpawn$40.class new file mode 100644 index 0000000000000000000000000000000000000000..d60e81b4d7e4de8f691be9a404504b49c1605e09 GIT binary patch literal 691 zcmZ`$%TC)s6g`8T7);6|yb67R#3JDp1ng2FRg_jpX;mo^i*BMJ86`u^II;)$DHgB- zvET#vDAZ#oiY!De`5s@-J?EY~_xa`V3BVrKJd6n}oy(rut90ars{CZA_vN)&KiKu) z3an%fkBx0~wds9p%f3~SK>n*X+8zoxrShqOdla^n4+j$k#Z^Cu9Qia7q)lh-;SjGyu4nCxukN8A%@tJXz Kug|l@5}$v8=7t6U literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$41.class b/bin/jake2/game/GameSpawn$41.class new file mode 100644 index 0000000000000000000000000000000000000000..8dd7722ab2b83c8eb90fa94687d7f68e7965daf6 GIT binary patch literal 698 zcmZ`$!A{#i6r5$97~Hg!ltO{FfYd`m)tUxwsgMw*6;h}w1##dKEzT-g;;fOqz)x|Y zry>shfPNI}IEf-3T1$T8=Y2Et#{Tp8@Ebq_n?7a)mM_#mH^QD8>hK#&`%>N5ce|f_ zcmk`1!$a#%`o<3SyXw;ERG|FXSmX8tWUYQG;2k7g9YA8Pf)dIC^DSfb_p9N#PEXW% ztOcsABvSFIN=@ERUV5%?GJ%y=!K=7PQ=rt-?&yoaVy(`pYZb=I_QJMHjqNpOu|Ti( zkB(C*=Q=8K3AZaz)()7jRutA<6SX0k8fm z!qie*$Ho5TArQ2at2EMIO&H1iwQel}XL7;MEtxgYO zm1R1^258KGh*9OoX797xAqrw?>lbE!@?i!6Ye0ky;qmYZ`^tET_>>(t!#ry)@PU{M z$m;Vu!kC_`Lv9zSa!Re@#e}*?qz%gN@3H9JPT6Dg20XblQdk;KO%ynf6|9mgu{Pqo S#v7uCx2zky1D@q8@%js9S&0b% literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$42.class b/bin/jake2/game/GameSpawn$42.class new file mode 100644 index 0000000000000000000000000000000000000000..76a9b64adde4f3b258984b2ed5b16d8d02ddcc48 GIT binary patch literal 696 zcmZ`$U279T6g|_~Wa}EOO~30$Tks)KG!VsNQwmb66rucsMn%MKPAh7XSjdZgSsaq%QWpq1@nzE2?@VU>?%dMz%mGj5#P*{&rGpRJ4da229V*>eBfkuR%Bi(FIgV7C z>J+=+VBR3|$fIWNGkZZ4#L|1JOq+;zm~k^KF=hhKh?#(_ z-uq6N(ld3){Q_0asa34Zs7FMOLHX$~ta{((?CJ2=@Z>?Rus-dYDXwC|+_ssnLcXJD17h67N1XeE8Q190I>QdJ}F|@AKcl-L? zo)1r8Jy$%ku01ezxZhJ(PR9bp_r@C65RjGXsepG7^>hG0i!PgQKveDc$C1Ct1>HFLA_i_`@QeeF&T1r{q+c70Q|P}zR1$M|4FZwe655D|vO@GhNql_3BxGC9L>Z7FfD7y`71buz=ME=`=01 zb)0^mx?i}>~awVQ;oELaW P^ze#tlW)LUx)PuN(4~mz literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$44.class b/bin/jake2/game/GameSpawn$44.class new file mode 100644 index 0000000000000000000000000000000000000000..2df36619a64e54c334fd19714d15f4f8c84717e8 GIT binary patch literal 694 zcmZ`$%TC)s6g|T@F?G{Y!mH31mAXi%N+ilI6;cJ^A%&_^5DPZZ;Ea+XW{m6seu_oA zYQ=&N;G?P@J5gjIu;hDueeXH<+?o4-w|4+G@X^PVz|xr->WxNUo$JOPL+3(W+fSRD zK0JYyLa}At(ZJZ@_nx|NIuR&;GuF5*0a>db3wYacPX~~ARzV46ftj|k`p4z@sZNg6 zX`}_J?Ko7?u}VyqkAHe@U{ZnQc41c0NK>HH*Y03PV7^vo*Oh8S%Jv%_ml)e`PGeSJ zuJg0&RKmV)I8ccSbB85L+aY(X6~%SWgs$tF^^*V#Sn{z*{)6F%CJif?#p@@@+*oSs zXzDR-fuIv#CZXOn+2SuJ3$17Vc{VK@MsZ62huRI|o{tYydSD{I3W3UjwL003RGR7( ztKeYXAM(h9X6`flN)*J>+8<2+=EoEQ#()U91CPb$%qycN;tOVUh8f08;0rMmkkwbe z2qSu?4%sSD<%C+r+?cvWa4fJlKr>=D414H{--Pz6k zH$FUp)xzPib?1F!2XDLT+UZ1~d|<3`hXS%zzYy?_;;s%LF;zhcWr3NNvHI-h>QX1? z>N3&-)m9v;=t3nX%SW4@>zhqOKiqz*bv`v|Siu~g{g=#frM8Za z{-rGtwBws3)bC9;_4Ig}oy?U}1C!smm_Wc75FtOp&OCQ4fi1gYwo-EO_^0_OSUGJozbCSQ=K16j+ZHtdcA7Jm#XdK`ltF} zpDI511Nx&%&n6)((k|>hd-vXR?zuC+|J>dI*u*OzGXksM)lhG?Vs)llpBch)b!A^~ z@A&Wp)=R|$>$(GDhadau-04i9`oUP^b_Hak*%R>g(!LHL@t}qZssi&JWA&Gdvs0aQ z)oG#y>YX%FNl#^_$R|HNH!!)tTBkItY@{tviM2c27g%aE*>$N}iL!AkbeXYndlm}< zweai7rO{W^vM~t-4!K;Ttg8Daawo3c{1#vtt3Fl)7Vk|xGI>g2{ZSZZ4m{r^5z$2fAV7n0b@Xf4B@dj$GkRfB0gkBXP9R!1l|z~0a<^1O&HS) zb;xdsDyP&s7AMqQBFCWm_6AGdk12aRya!Jnj}%tMT@wZNV-4%%N<1BLp5Zys!wbd@ Lz5#26B|d)vA7OVMjj3P#Qt%;BG++yTND;)^BE(XN_+V*e+zgvB>#XdK_D}Vp zK3V$EAJ89FdNv7Rk#=G4*}M0ibMBq_{paT|06SRoF(t5gp$2-V6{$z`EnUv4g#yx^g-dD8Dh*xLpC+Xr2go`$QrWd@E3IG}(2dTCuWGtLsu@qjm*z z0+sH^v)Dv^$7br;0T*i&6?M;q?##8DrvV;g(Z_y~GVVqp* zmxf{F=`#13y(9`^Y2yx+TYgL-U<`@3m>*MjiL^m^^9SnQw+VY>{u!S9GE`U?b&VC+k7cZoEAeE=d5UL556>A_ L`39`zBk}nQ4ibZc literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$48.class b/bin/jake2/game/GameSpawn$48.class new file mode 100644 index 0000000000000000000000000000000000000000..145ea08d91b76f71ffe2df0ee9e6e68f4d19a0fe GIT binary patch literal 689 zcmZ`$%Wl&^6g|^%;$lJ{>5G|6|0eMePrlfs&Dqi z!5bf*z*ebvY~9(w*x|cKT{@i!RNoqF+@XMMG|vURqcqY1B<|HvK~-R}W32vkHR|i^ zO!X5jQ17InO3qbgihTOha|4qLY<5bs%0}7(l~}uz_X4YpCcD0>R-$a&>blI>xIK?$ zfrakpUSi^b>y0?{H7QiJL$22->*~mauIJj#F9FuD;bUE3<<8twlZQ1dc6n7;=dm2yFiCS-Kh5hrM)KxW9B}yeWD;%c79?0CqL#8Fa|_O1&_u1%xjY-;sa)MhDF9g;3csTkoBb> zgbBS+hwPWAaz?FVWlB9Hatx}w*I4zw&)AdU5j?5K3hR@usRH}4i7j#^9*sGV@r3B% NDdRTZfVILBpTDAhh2H=G literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$49.class b/bin/jake2/game/GameSpawn$49.class new file mode 100644 index 0000000000000000000000000000000000000000..5dd00d5df5dcb56235d72218f00bb727581058e8 GIT binary patch literal 689 zcmZ`$O;6iE6r5$9n7S#HK%vktD)o?1l}KqXRVt(kXoVE2Nv2?Fh(5^H{*!O$R!F#Df|ts0u80jn&^SMyEPE zQm2U)sCUy)CC4f=MLzxMx!B|a>)q0+K)*t^O zOz4F=q$yG5j9SO?l)6LY7*yZ>#ftZH#-0ox!js8ZVRh0qRbW5Xu|clHvoYs6UJyOJ NWZdK%uvS>&a|^X*h5i5l literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$5.class b/bin/jake2/game/GameSpawn$5.class new file mode 100644 index 0000000000000000000000000000000000000000..6a4b2f14bba5e805334f0490a7c149f761b4f2b6 GIT binary patch literal 697 zcmZ`$%TC)s6g`8T7~GUcpyAQ-l2{~EB@&2LDx@krgcK^IAQo(*AsLb(W*pf=EB=WE ztf*M<0sSb%aS}ydfF<8E*Y}=t?j8SseSQJ3jdc%W0)=bYRomsZyiw&NhI&u_H5ge?!NR7wppA_(M;jZslG zka4VHtbxY-h3H3KHgk{J4p9&@n@<>jgdB@PJ)fbXwZ5=>jri22D0&@*x^_Rizl}^sp zRip*VjW|@%g-T48kAHfuYf^!=Ms8N#NL`@N(eCtEV5w4N*PW_G%64i^ml)frPh&x# z)co2q_Bw9aK@^cdP21ygmAtBMo6xmfy?Pm78LK{41Qwr6Ju_)o!UA6Wm&{eAwvKN8 zr7aLN<3SSYPbS;=`DByb%s3C_#D-Cv()gKn-MH=JEtQ^_7~TPwI<;0ON0CZXoniwV z%!|V?@`RcD%npcxSlIfB=^y-Zh9~f3I#gI0b&VC+k2S25EAev3d4<n)cU+ijGv zAW&|7X&ZYUx9u>BNT8Rd-D2+OAPM4e%H%K9&U*?@c{4X;{Vrp8S{0Ri(C$ zZvLe$5VYc966#MT+jw@m$(zhL4`ttmQJm8Fp?1BviO; z6CBKo!zl8EnfuJ%5e2dE@)t@!`7wilF(5)-!DI0u^YXZf_=p*uVU95qcumX%WM%#b zVNB1|A+K{(Ii*&xIHB$mIR?d7zp>MheU0u89Ksv5GZvCDuorr+7y6 Ou)(;=H()KZ#ODq$TZNhc literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$52.class b/bin/jake2/game/GameSpawn$52.class new file mode 100644 index 0000000000000000000000000000000000000000..66101fd273dee300f21c6beb78e1355dfaa21f6e GIT binary patch literal 705 zcmZ`$T~8B16g|UiySP-rf_(XfhKE)IO-gvGAt8u{q!^PD9(ZYn?bwc8X36eUpEUA+ ze849O5B>mul;LdKG%L|f_MW|a?>Xn*ncsh|e*viDxsNG$R>r)3vt@t#kF+ zu5Z_Ucmk`r;=Xl9J!AX39d+(>B2au~tZ_R6vQj-3@b==44j^%-gaV2JvrS|5yTRG1 zPL9-Rqy@^&I8@QGN=%lIe|oNGQh}9b&MQAiL!i*r?%=h+LZ!;CPpTFv+pV=+Vr;iD zjr#&6V?V@g8#_CQA`+-+`&_P)SJfR8y0&XnPXau^l8;4!`CG1sCJjqi#tP?ey>I_5 z`yV+jFST`??_X{LK`S04p?+hsGq^X|Z8KYiHv2Y=;*_f#YS)W9KGvvoYpmg|aLog2 zb+Q+!G}S5AKx1AdhLLB^+-J5$6vV=dpP2r^k0}I<0TJ>GJQin|mqty*yUaKlW*IYq z4PquB%X6265j|6f{F W9t}B<@r3B%DdRJ~0c+Vvd~N_PWsE@p literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$53.class b/bin/jake2/game/GameSpawn$53.class new file mode 100644 index 0000000000000000000000000000000000000000..7bd6ce88e2db09ea66a7e706f1fe5260c89d1eb1 GIT binary patch literal 689 zcmZ`$(M}UV6g|UiyLGJ~1wlXs5*}KOHi7U|LqY%vNg*aBJowTK+etfiJKO9I`U4RC z7$5LS*<9JM-u7uipT+vFT$*VELo!>+O114RrmOp*2*W z?bhy&4^LnA z3G)K8t@rJra=msKCpI%zpsMY2y=q=pcTDKou2K6C;0cy}ED0>!nR{x|u#9;;y_d{o zrM8ZK{--SvwBoBI)bC8T^Xzn&H<@)F%aIMEIHmPd?Rs&?$2yhnm>AuHK>5USn}bND zsZOy04(8Qi6nVzXeP%mEK`gxdfzo$=%phP4h>+LtSbWI5JZ>UBVn%0}W6T6z6Egu> zd3;M4(=&C*n;cb6sTC|tsCz_?LGjg3EPCIj?D6m~@Z{H#!qT{FqQHKvV3k~nwGrnT Ro)bO1VBFvvu$Eck^AAbYhNl1k literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$54.class b/bin/jake2/game/GameSpawn$54.class new file mode 100644 index 0000000000000000000000000000000000000000..1b39f2a06f4c08b27208df3fced0e83884153e36 GIT binary patch literal 690 zcmZ`$%Wl&^6g|^%;$i}&Y3PerD|L~8+DN5c1y!m_L6uU3l&T9h(Zm@gL!5DBPuq_G z!H;x7S0EOA03U@oPNK-Fz>@Fr_1yEg_U}JGe*xIVrjI#+m5*wmck4Yh)b+P4t&zI2 zTl;%HJc0Gx;jwjRePaiQT{Ut#5h%Vg*0=)!S*@K5ct>$p2avc^LIFjAg{HCk-Nmq@ zlQY$cv_QEThblT(iOKruOV9O9DzMhfdF6vN1PVRvPF@RCsx?kss(PesuikQrvAxDT z7U|V`-yX%rx^@^3JIawmSv%l<)x5Con$WdfqxK=dL#+5%7FfDvd}`9Lghj0Wm&|RY zwlt~yOIsjl#TQAa-BL%{97QTk zb&3tpnEwvr%8$(6XZMmQh=u3hF@M8{IRvZ$5%Lo}9^PeNnhX)|v12kUux0|=#7sbz zAABQB=$Sg?=NwhesAViosRu;bp!nhkD&F;sJu&|RPktRMEKjDU3Y^Cp*2$H4H0C_U R6QYNwtQ))oo@J4E{RLb>hcEyD literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$55.class b/bin/jake2/game/GameSpawn$55.class new file mode 100644 index 0000000000000000000000000000000000000000..3f2a21aac71a76b8d353906e9dac41817d2a74d3 GIT binary patch literal 691 zcmZ`$T~8B16g|UiySP??f*|+-Bs{blZGz#cgoGdxl449sc<`l}ZYS;7?QF9g(-VR}FOSh@m-D zU+mV-jt@^@Emu6W?zCrYf4`%KPA3AzU1N>g6OfhanSgf?cXR-WdnFW56qsumtKXjw z+B!K^?MMrh8*!+jGnJSupZxS(&!hsYjohrfk-9*ktKIQifu%~7U7uAgQnp)by2RLS zeHIG>^UV*ffl0%bz8FSvJH8-^y0*^+D|uzzF`;X@di7&~M_BQ(EUj+5$l{K2JjZ&SYCZoNn_vGtYxLv|$vdG=HL9FYfqQr_wDGqk9l29b2oD zgGi;RPO$+F=H+1&dCJUvW^agsSa|UZvp@MUgMcw0LVktE;(g|&aTD zQCDZjs+(wmYAcOZa-uTh^XbpP4NNYu-YU#08fglY`q~}77Fem(+4Vs+5@q|1w#$s| zH|Mb=u+V$qn9G{POMg;*6>zBc!WG8HW0?tjT# zR%+|$=U>_aQ9HfJV*SSWofl@iJoVOjEC)7D(wx?hv>T+o5SvuGW@3B`0+mC*&3>Zt zT<6#V2lMJMjyz-LA+u*hK`iZj$NV>b%pqcoh>%wZSiH%+GHD{-Vn%0JWb^`0h+aTe zZ+|6B=w2Q2V}UAX)GC&z)IB1{p#1m;R)Q}x_GI`c1oHD(VRh0qRbW5Xu|clHy)oxL R9uNaOWZdE#vF0uD`3qRVhV1|V literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$57.class b/bin/jake2/game/GameSpawn$57.class new file mode 100644 index 0000000000000000000000000000000000000000..3b50f222423390a671e1061a5d883fff83beb757 GIT binary patch literal 697 zcmZ`$T~8B16g|UiySP??0!8o(5*}I&G{G1iYDf&CAt}bBga==mVRzCF-OiHTLH~|M zAANu)jSv0+e-z_44rfJ z*>1kv_2CJu6^aMe9rukLypGhl)2TrDm9fU{3CMcmM8MlmA{{{DP6Z{D1?Jku>h~AJ zQ=J~G(^v~s+exV66P21gpZxS(-(&)-?ZT|$A}xVZPrJi60!#GnwHu+?)5KifuNIIq@jLma_{%2p0;xfJe~s^#z{sCN80t1$j4JE-CAOF8v>O> zYjwIGt1QzQ*1^HNLX0BMnz_&H1yK-7&wgU|iXSrw7y}~Y7kDh*WnLLK5$`eMW|(8l z1-6K}fUM4662|mg9r9~|DyP&c7AMp_BFCWo{1=wIA5->t_&0d+`$(ZS?wTmDAFEg+ XSK{G_^9YZL9-c6+^9@+bSK@O6i)4yx literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$58.class b/bin/jake2/game/GameSpawn$58.class new file mode 100644 index 0000000000000000000000000000000000000000..2d79d3d6a814a2fe7e9d47b91fc0b79f5d60f1e7 GIT binary patch literal 696 zcmZ`$T}vB56g}f?vUVG5P5r3a4-0)rT6Do82q}VCTZC8&5g+;z#?6pSvze9MvHm1W z^+BH$ANm9Oqe{;vA?!oDu=niUd(XM|%>4dy{|mq-Uip|3So)^=dNb^*fet@0v`*Ez zeZ95q!xLC36!)z=>KWVL?Wj|yQ-Sh(V~yJpkhS`;fVY=)bO4D56_ijGm~9%XKc5Xw zbb6#tVl7Z@CXtGdRci8l{L^zilL;(03$u!gGz3ar?G8Q&%-8Dd`mVxQ*>2c!sj=P0 zH0A_mT3^}&lSOS6xrDowC~Et3S1Zcuj)`2`HR@jjEMUpUqQGil>>#ljt!3e1dpFmq zU=C0JD?-mwTgSEjHA5h1C1+`*KbqY7qlu-B+yPH#-$rqg(ZQj1y`qTyg>{jkD9s9>>W`MOK)y5eZ!9_1dIU@@&X=<51Cg+O~e^y+zhjf zxxhLx7m(G**Mt#0SBLyjpvnogiYH_04v}L}etU;`c{O2=hW~^oFNX??qpq<6`>~7_ XawS%WoM(7W^zedljc>qOz7n6mO&^LI literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$59.class b/bin/jake2/game/GameSpawn$59.class new file mode 100644 index 0000000000000000000000000000000000000000..6f5255e250257687a17263b10c279c5a5fb423b4 GIT binary patch literal 690 zcmZ`$T~8B16g|UiySP@7f_(V}2@kCXnqYh|H6#SlkQ8H5!h4s~YH?Mx=(i@sXi@sxIv2 zo3}nZfwe;Mz`EnUv4g#yI(0e~D8Dn-xLpBRtDgvX`$GDn3!E$@9ra&-G0vu-YojDjI1Dlp^g8-wQ0(>g+mKjab>J(RQh^QF9ja zoYnr^8JaBYM5fzO>5v@C+5z{g6@_)rgs$V7^)CS)W7)@&z`~8eN7Sic9xHc}xvkXJ z(a>$$0zo@DOGEv^dM5g#z4Gt4pO0$apfKvp09 zB#h~~I^>T6RZgi@EKI1oM26ihL-R{AQouo0<34cYpuf0@%TphdF`TS2<8S&AuF}<_CuENPail z?>x8y>xJ5(vFDLCgZ)sBtV#vS@3ql(Pr#`+E(F|m5-J}K9#l|5Szw`~jXJ#=UaIt5 zUdBqG+DQT#U&vJF`Shb}Bb^DXb_!mFIa&gxzOu&$0!#G9 zV=Gw1>b(M7-C+~Q`=7pm-%YO4KppA)1|H8gdz){NyH0FQAIP%7sd(3u;f>?U>3-dQT%)w{$iNHs=EI#C^GHD_{V#dj^ zz?ciXA?5;3^~q1dgr2JdodVUFQLA`5rS1`PoAT@5SaPpt?1}j)%|DG5YLl+10{gLs Yb#fhSj5*Knoao{O<0fC9wcMZ2KgiCDn*aa+ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$60.class b/bin/jake2/game/GameSpawn$60.class new file mode 100644 index 0000000000000000000000000000000000000000..cfe4e95ec25d99703b98fbfa37d91516c24d6e6d GIT binary patch literal 690 zcmZ`$T~8B16g|UiyRcS~f*|+>2@fpI=lUiSSZx(%6^%3nN|AQQZv~cWb#{GGjab>J(RQh^QF9gx zoYnr=8JaBYM5fz`bwmzj?ST8$io&{QLf3K4`lkSou;OD`VDZl26Y5m3fXDwOb6csc zqoIFk3k2=tA`SIBlP~>Xy3B6wonDV@7$+IMpJ>-ldOluI>5hrfH3(FWt<~vatg=jJ zSO*95?l6k{$;^FbFNuO!+WLvvZ#>K(U<`M7+<8&M?oI3+xbc0a<-` zMHtg_b;utDs+>}*Se#G~h#Z6R_BEEg%PD(2{2HG8HBwj}cTE)7k5#OZEAeE+d5UL5 P56>Cb`39`zmiYVyOJs+q literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$61.class b/bin/jake2/game/GameSpawn$61.class new file mode 100644 index 0000000000000000000000000000000000000000..e02ba0f4d249ff4777b2c1369d47d98df0c65bab GIT binary patch literal 691 zcmZ`$T~8B16g|UiyRcS)f*|;Xi4QGA8!+*uhQuHml449sc;Ka(?oPI2x3gq-&_Bfk zK52|!&;BUm*|upmL^s)c_U^ss+;eAs|M~g@z#bm?m=jokuZDWB6|0eMy~a z^IadFz-Fm6581;2_ zqWXyzsCUv(C8sJgMLzxMxq- zz*6^JZ)EbY7n^=>pjAW?b?uM~Hp*(lT+5$m0y~slS+7w&gnr-v6FwcWIv|*CwG=Hq!AdP%Hq|!AL<9iUO9a*chgGA-I z&anj!=H+1=dCJUvX3vO%SlRxJ`A__qL%54F+7wVATOH?_d*0D0B?h`o%)txU`^)6@Z$?%`>n^AOHXW literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$62.class b/bin/jake2/game/GameSpawn$62.class new file mode 100644 index 0000000000000000000000000000000000000000..7fcb7a4fcc182619f37ce6de743bdeed82ba6e9b GIT binary patch literal 698 zcmZ`$O>fgc6rAlkaWSDEp|rFVC{hmz2rLDOOHd_L3W}5>q*Og{iMGxvS>miK?-u@4 z59I{nzy$;nKMFBUqR0oZfGyGp!(cc;|~O6qj@S29A*O@LE>5s6;uUQyT7#swnA(Q?3R2dnRU$O;^Tg2DpbQd zZvR(>sin4_i~Y+)AnIiod7@vLBK*oC)RQ6uzt53P(#$c#vG${E5aK?SO4}?50=15{ zIzLR6bJ}4KH0D3VwDM!K57|8>3S#BqXDol>!xAFahzR)|0S~XUug!*tH`sAAtg;pY zkBNnVtgl@WX7oZG@<)j(7t}g#&Z!4P+MxRA3pRqw1$$=x6M_6SRoI+O%@sJ0ZS0UM Wac9ce#a&{6d#roBBc2s2@%jr^hKo)B literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$63.class b/bin/jake2/game/GameSpawn$63.class new file mode 100644 index 0000000000000000000000000000000000000000..eb21f09eb8814b06d7274fbb87fb91675a0d683d GIT binary patch literal 694 zcmZ`$T}vB56g}f?vbs&H#;EclRE+JJ&D5usRHgjfm@ANmr;-60vXnU&qK{ZoCg zPZb~f11$QJq-T>57HJpup1phTIrrR|oBQkE0JiYj$CSXzndBxWiop)4@lGFE@S7@X?# zSe?dNpxR186`!cog@Wa8nLq7M%$&vcAL|f z7g%V2=?qL3b|S5!EQuqNJ1kM!_PJxND6S(Dx{hnszXn*sijQUT9}GXDRt58T`d>0P zmfAX+`j@sq&`vJWP=7S};!h?Ez03XcYz}M~CmH=8Y1d04AFrtNz{Kz>1S*Ht>U2L= zS*A0rgM)d07)Bm6bD!BZQ4mX;zcBriA5#bz10v)NJQg1@uZ)_AkD1XKW*KvVx5QjP zR_87WBYLh5`KLgY6KWL;W9lA}V^Dr`g+=ejggqL53s2q+6_!U`V+HnO6>H>5JR5SJ S;|0;fOU8A+0c*J>K7RqB28p}? literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$64.class b/bin/jake2/game/GameSpawn$64.class new file mode 100644 index 0000000000000000000000000000000000000000..7f3598d1d1fe79467c6cb4b05a26398ce0a4914f GIT binary patch literal 688 zcmZ`$T}vB56g}f?vbv2`qt$A^Ec78!+JKh6qzGbd5n?GseCSIUH$yUJGaGhC{Zl^Z zQ;QG&fWEb~f2Vjh31N|TVei?y_nvdlo%!+i<`%#fUiz34SUFWay;bX|zOH>@Xb#kc zef93G4^Ln%SKPPmsB3I*x2*i`lnB@|E;m}?lTKcDqa zbaJFlA}vsE#G#6gRbsMy{L^z?lM1XhaH>w1b_X8>mMT?tovT`;Y^TWKbmaihm%#_WX^di`!&9&#FQ|0S#PAXXN(a{JWG_-_ zs#C0kgL!ipMjkP9pV>B15DOdMFn!IBDFloG5%MQI79TJ#jhcwF%;*erjG4e|VkRKV z^H+osJyVDLm7~fDwT#6vb%)3?C~khol6N^_kB0w-C;to;mPcJ<1@>bVYvf8i8FHTD Q8PUUY#&x~{YndfJcjuFbdH?_b literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$65.class b/bin/jake2/game/GameSpawn$65.class new file mode 100644 index 0000000000000000000000000000000000000000..ff53bcb24388c11c130bf9b512ab3026cc3f282e GIT binary patch literal 693 zcmZ`$T~8B16g|UiySP-5f_(Xfi4UztnqcsyhJ*kbl449sc;Ka(ZYS;7?QF9L zFPRHVZ5=)ROIsjl#%D>WKbUOq2h)8vGy6Q60~!Mr|vdW)Lt2M96D+EY2}6jhl$~nb8^M88d-5 z#7sbzAATc@>6tp@O^zz3)G`())Ey$np!oU{OWxNhdp!IWp8P#hSRQvx6xfe7tdlG8 Vc*J>vr$i6W7&rI^tYwz?`~}?DiJSlc literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$66.class b/bin/jake2/game/GameSpawn$66.class new file mode 100644 index 0000000000000000000000000000000000000000..b3c143e721c32562334a695b2f3304077eaf6992 GIT binary patch literal 691 zcmZ`$U279T6g|_~Wa}Djn||5)Rl$cu(Lja1q!gr9DWoE#^ud=f*$kU8o7u2CZU0ms z^hxPMe?b3)QvZi|HVI)Vy0G``-Fwfu=gwUJxx50fjb}dQ1lGT(f!=OJYN#6@7}_Is zZlCY$`0xZa3&jKLj{C+A-uBeU=~SS+Ypij50>!r-Bm70t+o;^~cj; zSEt9S8*71TD+yJ6qEeIR)1RK}n@nJ%RhU&Y(iA8~+8w?VSgF<7b*37zvQeY$Qe&g$ zJeC9&+n+i^lZBnGiO$R@w^yRB9dN-~QCas)=sK=h{~TZy>ps>5mTyfyqEH1(c<^5` z*Ol5jI{KHkK+sN3(@?)R`PTPm+q}-r^I#5a7$+IcA8FT5dOn^~>6VG{JqT0|t<~v% ztg=jJ*a8Rh@-U7(W#&G!H$*`!z4(s#Z~T};z!(rAf5Kz&F7wKyiFl70one777kEX? z1!Q&cD`7&<)ggZssB%WFVtGp4BXSJNFMnXgyO^;j!*Afp-(!WfN!L_?{n)@Jxe^b@ ToJV*}^zejni*LYMZi&xd_Ew1N literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$67.class b/bin/jake2/game/GameSpawn$67.class new file mode 100644 index 0000000000000000000000000000000000000000..9ed9b5fcc80a120e8af05706eed3807aaf343df5 GIT binary patch literal 694 zcmZ`$T~8B16g|UiyRcS~f_(V}2@kCXnn0otH6#SVkQ8H5!h|)c$jKInV)z`a?NDXx34MTgV zKH04oFMW6d>xJTxb!RzPbotyP#+G}06(McSRb7Fep)+4WI1Vr8R7+oi@v z%~>o6EVkcu1||zTnM;!>>SR4LB#+Xz&mC(;aoshc>$qn9eSim8@v%()jp3)%s$c=D z|0Q!{sjZ`_+q4COc5<19`q<=)-$4jWYM~E_(grFNAyO!{l|m{)N*{a))6I~K+02IBss1S+ z^vU9bKfwQDseeE`y9r?_bz$$>yZ4@R&z<@8_s35FJJ|3sBe48Y4fIZaj?o?1hSzxYZtbTVf zJlDyoI*+tKwH1ddI#Y?s^2txn^-U_U+A7Q{8fglYdfFYo5m>C%+4V^^B4vAxwo8od zHD@tT<@Wo|(4=9<=}3>_BsW;1vK?^6T2WhfP3StVS^p5=A(nkC2`t>0eL|@U=CSf$ zG8dNGI(oWITOer17fGm(Ot$y^=|0<;eICuB4Wl@v{S)o_ao5K)D%~)V--JNr*jk+& zL@G^nigj=>uMc_TIWzZ}y(9`^>G^lee&fds0>*#{`5PXKcbQklO~iZ5=nQj=nZOn? z6Oh#hUkPJ+rVe>kpvoz=iiHVvkH|47zqrJr_hrf+55I;d|Ktiw~2OawQ(+ ToX2=V^zf8%oo~QeW{J-~OZAEu literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$69.class b/bin/jake2/game/GameSpawn$69.class new file mode 100644 index 0000000000000000000000000000000000000000..79d5bf1d776e00dec59dfda585085c0f10b50cb2 GIT binary patch literal 692 zcmZ`$T}vB56g}f?vbs&HiPo=vDfo~mZNNgIqzGbd5n?GseCSJ$7b{Zl@) zPc41u59kkSX&=P1NeGLy3wzJrz4x4Z?#$1d?>_+SV$;Wrz{;5#=-qlx4R!rJL+e~! z*{xTveRu-vx#FR9Cw*fF`(1VJbRtlEW2|v|0A5*D>GFJaf z=Dt!}M@#?G76@ALMH1?FCNuJ2y3UKtJx}J)hEbf-{jqlaxa;E?mF}1rU4%gC$XcBo zL@G^niVbiuZx5r$V`lC%dr1_;!uD6pe&NRq0>*#{`3oM4_n4Q)O~m`m=nV6WnZR>m zCLk*dp9y1nrVjZ#N0n1*1&b5v9+6{E-1&wj?|RA}5B~#C{v9bSkGm!c?8h3`$(49C U;ylI^qKBu98+-%SGE01J0s20Pn*aa+ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$7.class b/bin/jake2/game/GameSpawn$7.class new file mode 100644 index 0000000000000000000000000000000000000000..847b1544cd5b5cd18c9c9f56010461921cf6b1ef GIT binary patch literal 696 zcmZ`$O>fgc6r8P{IJhaLX-U5*6p2Fuf=KOwLr|qEEmfryRdN(0F45Lmk|oYMvbP}q z6NhpFao`8^M^zmsQRD+y@|%5rZ)V zy!GG;?Br^v#&(9c*-W70LabNjx@SuzWiUO-`ZPbVB@s&zC z@+wjSm3AD;s4Ekl<@1lO9qLqItDW=8&CwJn43s@T5!k5J+4NO5B54MVz$V%ZnkB3W ztOu7pZ9d1nNhH6kq!-5Vggh#nk-%mxudVtzv_0FbfAaAdn;xp{$a!B*C0dbI#+I>$ zt^W#eX@^Z5>|gop3-H6sO$bLfK*5_wbBLxj_~Lf%3UA zDrrSBO;w70(3pP^)5yDK?lC(g3S!~qFO+`rumqpcCjtRn7MFP{&zguU%s3fV88d;` z#7w}cJh~yw=$Sgu$x)pJwSx6I^@y0+6kq+uhWlf|o|$)P{&A{MopsF>*pF@Okn3P~ T%6Wo4qKl`D`+R-YGJihz>)VM{ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$70.class b/bin/jake2/game/GameSpawn$70.class new file mode 100644 index 0000000000000000000000000000000000000000..d2101dbc7ecf17bc09748ad6c829df849cc8fbd2 GIT binary patch literal 693 zcmZ`%T~8B16g|UkySNq$EmHYVG4Y|*XbC>}P(xx62uUF(B|P}j4BJUNbUWMZ4*I8f z&?k)#{s8_H#4~NvY=~~M_w3!d=iGB==H~AA9{{^}5nw@}b}5Hyx7n8?)jVS8jO91; z^8HQ#UtlA*cwp?=K%3#mo*Y}13KTzRqwSu6S8tpP`1?suh4Ap8gaV2J<+e8J^lEgW z(ldDxD}hQoiDY~(Q|nQCG=~=BzYB(x~jPR?lmzo{ntSwi;hTJVq_Rnn3kl?-NRuu!1N5C39d; z8B0(9(iR9i$yFMuL+$2%G@s|Kv(K$LFj1Ujw11-PAn65oPNjP$CMO|KIyOe7`?1V2 zm0=rf%;Uo(a-W$8%-#_NvGD3A7Ju+#0U={Zgm(*{iw~KXrbWahW^{%!qZ4>TbOK&w z`8#1sck1x&a#U|lt)M!i?h)Ar#n->E>R->e5 QO7!uJahq?*HD`&>U!IqUHvj+t literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$71.class b/bin/jake2/game/GameSpawn$71.class new file mode 100644 index 0000000000000000000000000000000000000000..1dcb143402026408d1400083537d426b49e10d99 GIT binary patch literal 694 zcmZ`%O;6iE6r9DIICawk;Uj#MmP$P&pf)N!a7cxOC`Cx2suaYbmuPWT$r5Lc?4|uv zJ(Lp_2YvuQ3U!=Bk%g!wzwz_FnKy5D?;mdO0PNtcj~RjLg&OFcMo$fOfwkP?p>?NyV+Z?Pb?I~>Q2cDHaeD$@t$rpT58|#4;Ne*r1r!BlTgK{dSHp9i zoT~Fk3shQhsG>8Km@J?Cl&)`5fz?*7SKdfdpwQFq_=~_|tHduM3Uu%lHK_QFQ)^2$oz9}4s964DgB>l*N?kC-cae0iP2FAl#i{|$w8#j zRHxVk8}s}yiri@CKC@3mK`d5iSdUe#k?Uc7#Ce4c QqQq;)O}+uwGE02^0Y-|3tN;K2 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$72.class b/bin/jake2/game/GameSpawn$72.class new file mode 100644 index 0000000000000000000000000000000000000000..58aa3bf859c210fff0b66719eac731d3cbed4e04 GIT binary patch literal 695 zcmZ`$O;6iE6r9DIm>QRqK%vkNK;n?JY9ob14?#$X0zwK^r63NyM2oXZwsF?TUfMs^ zLwlm?p+BHM3NcQi$Us>T7rUNnoW`XV-Vth?VU(IxaP~--gzUH44nx~^6K8sItBe5?vA-*Z2sScoOOc$CbQ zJ#8JmAJP^GI>~h!>0^^`zBt?HL%skH=g3BJl5v4E?FLED$0n8T4Kcn8f$-E?ogT(2 z%XEe<(3ls9apXxe_nGYy1+nz@2J^r9F^7OLAVMxcvbexJoHP-iGUH^ZFy;d9iMfDR zefEnmq37z5VS(z+s8uXasry9Qp#1I+R^-nadt$x_DJx@z)k)V>f&Ey=2Du(yjybRJ Qnkeyxaf@%jT0Rn=JN0#j{Qv*} literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$73.class b/bin/jake2/game/GameSpawn$73.class new file mode 100644 index 0000000000000000000000000000000000000000..b57ba0dceb552fc2aff211ad0f399436b2b604db GIT binary patch literal 703 zcmZ`$O;6iE6r9DIn7U~x0g^&X0jY`Od#nlM!iDw#0g)sIB{^=en-dya=#@x{sQ`dck`tlZL0=FS$|$i+K5{ z3|IHGb)4>hE&@R(zD|1j$Ydw*e74!gY!M#Pq3uO+%0*7K8^(Pf8&oQcGb0F8POR0* zex%Y=r`QCId6Aezo;Y)#*$z<fgc6r8O$aWR3?^oxX+7KuYb)mkb@Jp@%krBsztgp{fWF3~n#IZK>%WpCk6 zaex!3hyDP56k?o&$Oo|GH-3I^=FQvv_51b?zyY55SPn?`Ij^0G-+UZQ7`r26Ijs(0``%*w2r;!fe;a&|DR0Wp0#_IPs<13wA zsH;Q^)Vt|GC6_8QMLzo}-O%I$jc#dH*+@sA5^Hz%R$#T&X4hvGCd$TP&t=BOokc9O z()-XKr#7dtew?VtD3{V=h1zz+C0k{69hrgayH5LKfHiFRSQpqXO`i$n;d%e`uT~Aq zc>G@>uJ38<=;L2=1cF|AlMVDcQ=G!X`F8uoGCZggJ4n);%baUBOd}uLR4N&o69j5! z*6QpyQF*R&?0|!LnV3YLI&+`dOQIlFUi`q~cYZ7&U<`zq9uz6mL}CJO7*u9*V+(Lj@2 W4^JkXO>7Y*o-*$64OlBI@%aOIfsBU$ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$75.class b/bin/jake2/game/GameSpawn$75.class new file mode 100644 index 0000000000000000000000000000000000000000..40d3c8e0f13b03f302454d66c737ce82c39138b3 GIT binary patch literal 701 zcmZ`$!EVz)6r8O$aWR3CP+D3Fq@stU2rLyL4ndVrDOIHuA*JepOSDZ^&Nj}vvN!Nk z9N+}vzz6VAh}k5Hd;m*++3vl1 z8A1wdmky7uJ0BT4elt|pPUiyE*Tx!mC=j&T7XtDq8|nxFZq!ggRbZ`atbRY8T zU8Y)~(ai=by->OF{oB zRTwY?=@BJLB`;Ugmo4WAGCl+d-NYjB%#jC>w@&Or?^WB|)He>SG}&HO;w^S`hBa0%@QmmM zg2tV%ggM=-L++NS!IIj*-39fK$Tg@w{egA)Wyzi|e*!7@W(phgsf7aPv4w4N13Z{< ScJPoW@rbp_JK~wQ#Op7|Va(P=0T$ar**Zt$rpT58|E<;Nd|9C6oo`TE^<*%h9<` zPSts&1*)yMtD-ZNm@LnKN;fd6z)Gv&RUD)tQ0i;f{3x(ktF!C73L|CvVcR9f_8YU9 z7g%VYbVjjFIatTougbdQCwY{%L+)5BitC=~x{hnqzXW)SWgkldYX$RMCk>A}&0MO2 zc|7~C4wv_|b)4^CHUdFAzD&CMlgZBD@pQM{Y!x2Uq3uR-%2kfE8^k>yuc%a*XG##L zG_BRiL8Q`Dr&tG#d6gJPo;h=$*&CuDmbPv&d&7?z1dIU@@--xj51CgcO~gmcI2q;` zGl3mqCg4?{ToWerOdYaTpn6kk6$?3apGX^&w|`+#UQO8(^DRiZJyuwnbma={#|l=- X_3(Vmd4ZQii8aP`z5#35NPO-A` literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$77.class b/bin/jake2/game/GameSpawn$77.class new file mode 100644 index 0000000000000000000000000000000000000000..4ddb05c837b6d2068585e42e3cb1cf64833ba802 GIT binary patch literal 699 zcmZ`$T~8B16g|UEyRcS)f*{}rCO)(p*#tE;sUb0lhNLwnB|P}j4DF;HyPYMw1N{%U0QT`T#Dc))H#O4x@j#7r{E4A+uCDB} zMk9n2*e(>0tUDPRJ9^(&=T2t=<#)y!cOVed>ZbzoFzxFI0hTH#p)9c6GFE@S7@z6v zM4csCpxR1%Dmhh|@%ikhbVHL1Y_$qr#X*_^rGa+G9|YEGb#`5X2^=)L>4nVr@n}Akqfq7r(GBujlNkc>_|uohWQfyJiaP#}>B94X`ue TJj5fS#AC)?z7cDFBtCxue3glZ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$78.class b/bin/jake2/game/GameSpawn$78.class new file mode 100644 index 0000000000000000000000000000000000000000..89cd57e02d26b31582e5edf16c120eafd97b0207 GIT binary patch literal 703 zcmZ`$(M}UV6g|UEySP@7f*>dg2@kCVHh~8X)g}hPkQ8H5!h|@KvoWSZ=HPriIUyXG5fuTKC*LM5W zYadczy-+;1?tEbE@Lf-holXSGZ;UmrDd5%W7XtDq?&$y??p07iSzw`Mtp0d4y41@8fgfW`r4ho7g(;<+4W6@k+S`;?Gj`Ajd?6m zx&5g#ifu|`oiC9Yk28ZMD%&AftQEC&&vaeKHR_)OJjSYz6@iVy?5Ru|o^?)gr3x1D zFN`coxsD{W_#HpJfvgWjpCGxoM|_Rdp=%JsbFVD5U8A5 ztCOQhrKwJ_2@d8(ViI}c%zb7DL_sXQ{Dt|S{Fp<)7!V;3Az8f7yplH&A26dcEHGvQ zyTnYut3LWc$my9nWTQa!X4EQ{rqm{pV^H4tjb-_L#?FVog_O;S!b;vXRbW5XuuiUr VrxVUIY!D@$Gj8$?Sj#N&`3vt}i-iCH literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$79.class b/bin/jake2/game/GameSpawn$79.class new file mode 100644 index 0000000000000000000000000000000000000000..084aecd710a411274059df7a5489f1d7bb38c18f GIT binary patch literal 699 zcmZ`$O>fgc6r8O$aWR3m=|^Y_w3T{DK-5w>R8>$#l@?SfMM$Y~=q1`Zt7M6@uIw%R zDGqP~ap(`=MZ6!`#_{Kn7k&AfTLzyJKY2XKfz9}5DtPimwO!+{#>@I6E4R(-Mi zN5?*-z*eDnZr#<;*wJZU-8!8Ll;0R@+=+l!Z*&D@E9vV19v)OsLRny`ZLI!qH@?y7 zmAZ+wK((DjD(W2D?71FjjUDc3f)gpt*<@ zf#uG}-Z-%tjrF3TiAE$**Ai>>qO$Ir$n{*aaUEbCH6I%S+l9$9ku1FIwQ`*bR`BG% zB3#?k*3sF&W(WkG}~Fay@KM TI8X76DDj+emv6vYZi&xdn;0|8j>NI#u-QUK-GU@ zL07H1=m+$ps-8)r$O|m_o;#j<9y9*?@An@72iOTPB~bh-d+MOlk$qJ;VQCEHH?w;b zz!zB0>>V3>-qoh}p)ChiB?8lLwbAyyfLAJC2>7+QtwMO1%_E0tfrYv@>dSrqRwd{1 zHc|qGdfbxHg-oM<}PjyBKchiM4Dk}H0g9Z+WH=j2)grBo z&11=($YaYGH6jrcxksZZLSbbfMzeV3S*aco*qoHFreWxH`Zz!sGRX9<;`*(aCJx&#N6Ib%=}<8g^)EQ0$1?4`GQ@3G(?=^ipj9R>IB{p zoq$(Zd?JkKP93<;P`wGYfaNju9nsn3eqqIboRCM}Hw@Yw3KT~}V*!q14X;S`us-B$ R;5E_5ChIoekbBOa&wn0hgunm* literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$80.class b/bin/jake2/game/GameSpawn$80.class new file mode 100644 index 0000000000000000000000000000000000000000..87739ebff217dc587dad5c9d2542f04348ec3ffd GIT binary patch literal 699 zcmZ`$T~8B16g|UEySP??%7=g-knqrIU=6;I)Q}hiZ7jy5ga==mp&i??+gY+ZX#7t; zz>~%Ye}F&Ac&2Tdeb7zzp1phTIrrR|-+zAo0eA^LaTK!x=9;H1UA;7H)N+=5~w2am7u0|I+ zJ5v{l7O1w;u1d~TW_&*VDc!*20_&~9tfG;IK&h`?^OeAItr}9W z`~MZ;+JUx?&i*w+AZn*qSy!JJzy00WR(pO49?-GvCTY$kPPH4Py%3M7R4_9m2vnNZ z>g*^{d9HJ8frEL87)PEq^N`tdq9B%@e8>C^KjsiIMnuRrkSyM2UYRrz?=Yh?EHHY3 zU7{BVs*Bfz3EithHVf2XMy=xBlzK?y7?hv>z_R={V^4;^g_Nza!s?`Js=$7%V}slP Vn`6!cJS0jyV%*{zvF0uD`3v!DiVFY$ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$81.class b/bin/jake2/game/GameSpawn$81.class new file mode 100644 index 0000000000000000000000000000000000000000..49af1ef2fe09e33eeae3d62c9ccbebad284623af GIT binary patch literal 699 zcmZ`$O;6iE6r9DI7~Hf#N})hMKsMULuB(r_J1F_MRw+g}1ku{>6_e1dIU@@)(lEN6bs3CgNjebcR{ROkk6k z33%nXpM()TQ-}PTqk0o+8BfR5T_VSzxbYhc@@B#w4gU@)e+(5CM_pqD_G1|<+gY+Z=%3;N zo-jV}1N>3Ovu)Gt18lPQ?A?3Mx#!OO{rBe%Kn*W^%m}RgPy<~Hduph|BZlUM`ek3f zulbMy8@b|vb*;X!gAZMG;dCNU+%?v?Jpr#$Jr$7qaaRZM@Ti0WiUNxbWA&%Y;h9ca z>MYU%u%1Ft#a;wa=qijSLp3YzJJilGoN<({XKAuYM2k1ZzH41vYcDCo*Yx(mu?TN?69z z2SvEJr>`(_9P&G<6u=tGn3zcAhFZMFuF=)iWOIOQ5A+V$hEkLOg%nVAvcvpV>R2AQoQTV)lj~GYA+1B4i7a#X07saT9T#8J%H~F%x)0 z%mlph(ludB&(tBmBdM=q7v5-o5vnd+yBLpPO3%+jtRTMqv4?8tCn~r-nNIz|gu>-|Wjb zJ0YaNYN2>w-ErU8!P~C7bUG6#?;2~|oLSqs)n?jJ$%)F0&nG{n>ziC)rCFF&G|~_#^|U*DC$Lznv+G*LiL$-8<<t<8 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$84.class b/bin/jake2/game/GameSpawn$84.class new file mode 100644 index 0000000000000000000000000000000000000000..87c92a72feddcb1e06cbb1e04d9878b1311ff368 GIT binary patch literal 699 zcmZ`$O>fgc6r8O$aWR3mp|rH+qevVQs$wZ{Knkh^rJzbFLQ2&`FVV(Xk|oZ%@^0y$ z>H$t54*URq6k?o2kq=Zw1yHO?G`zajNVv?)u!=VS5>C z0;}DRy-8*rjrIDOb1jmnYsXx$QC8LillY!*H_s#7#b$^Nft}LixrmETdT$Dy8rE>{ zzam^a(ALx0zh($T-Rv??^gB~*e|xdjvtkJz(2-5j%yEem?MK-l#3L$|%q$23wPR~_ zewZrfw8Jhqn3srY$o$g9uPSO)x95Bm)8sSY`BJ$pQZ{Mv#z-U`>};>as%v4 TIrs5^DDjYSmv6*cVTsRQaX*R) literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$85.class b/bin/jake2/game/GameSpawn$85.class new file mode 100644 index 0000000000000000000000000000000000000000..c8431af304f6dc67c0ba89482ffe1928f789cf65 GIT binary patch literal 705 zcmZ`$U279T6g|_OWa}Dj8*6G?KPvc;D7w%h2$6!;Duq;pls@>fOtM2V&1SajO!ZIs zpihbq{s4cJcs2=PA9P{w*}M0ibMBq_{paT|0Q-0tVntxBq(iZ1*Z&)j_%fwUPEGZv-~m9d>nQFj#^ z09^14)O zU;}slE5hXiZ9V7vmxn;q&##K1erw7zxVhZzS-A?2>DUgl+;Npt?Z8` zjT38iag-_Nw8I`~%&WvK^30is%npcxSbO{(tKaysf`~C9LXII>yw1EaZzA4c#>ue8 zSPDEPmI6U@{VQQkFV!JUg&HiWP25^g4~euv{mBn($}day+3Ovu)GtgKo0-?A^KN_c^Ya&gJv<39C$M^^i1WZ=%+8G9~dXF)-HLKgR}%HiT1~D1(q94PJK~vs%#Q>d~R&gn#U5o zIv=~E%sK|^USxSf4rT3-`!&kKx^H^E>s!rF5$-Vi4ALLD+IQG*$^j(bz;0g*PS?)<>Ayq>Wq=AR*DK2}(nOidLyk2S258{pxX Tvw=rMiN~y4yd$0!k$C+DjR1-` literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$87.class b/bin/jake2/game/GameSpawn$87.class new file mode 100644 index 0000000000000000000000000000000000000000..613e232aabf586a39c8149f006f77e9cefe8230c GIT binary patch literal 700 zcmZ`$U279T6g|_OWa}EOO>1lGR|OxEiVd_63Xy`;Duq;pls@z&Om>H4n%&v5J8AVl z`B0w}AN&FSDDi9(!cuf$?wPxD&$;K${QmRv7l2(n^RXbXey&D(w>40SZhc_rUZ^Yk z{PimzQed-mcxc_p(Ad%2NL@Ic2~^)0Yuvto*Jz#!$b&S}0X*EQp@OQwQpZ^Rah&vZ zcB1;R7N~d9P{pSzGeti8Dc#WI0vnxDudcLIGNbMj*#^}YKd>sl&e_xESCI1aL}6`OHB(?cHn2&q Whldl+BRnQbJYn483V2pn;`bMQzAN&FSDDmtjgr(@h-m`b_J?EY~^ZU=wUjPnpKg5#2)>}2v2d$Ah*R2-}-3#^J zJ~%uKAq93y#S`m$V`C>zhw8#>Cs2K2tno(zL8EylAdl0bju7BV4HZ-cRyxM&SJU%> zc0Dynv_QR+#ws~e&gA+0r}Sf!32b*tv&u%=0+o^Wr_Th|8%=h-Q>{eVQLF2nv7`1f z)&y3&uls)Loc8^J(<&a5L|r@Kf{n7W9-7$qeY^Q4!UncNYzk~#n%padYFNX~|I)c| zpslB;f2j*Z-E`_={oLexUtjF=D7Vj}Ik9n)X0-oO`*Au9agR!uY!o*kP&>6&yW>P< zna;2a4(9cth&*TJA+yIsL9Fb3$MQFREFofyh>#y3S-i@;HfthYV@79KVax>{5_5r| zzWS9gqvz_7A4}9=L9OG)oO(p$7*zLvU|oJ$uxGYC}ncshIZUO9K)5ny+$`>`%yS2VL)wTBw%`AP=IR4&Y&?gaV2J^9^J5$I)p= z$1T+fwLrNMbyawxVw2`~KcyR(L}0Cvo0T_G7bx_#J3bUxtW??cRn`rN46VA3C(}dZV>f+Jg3q<8`(Vwl#Z>{@jNqpV=#-AQoQy#Pkn-Od((lh>#bMEY317jhl!Mn9&*L8B>96Vk+R3 zAATo{>8U#8Wsd4isAW82HKpzmIR?d-zpyB;C+zX?Z;%kRRFPt42d)C)xa1hF&RjELEPaAFb1)N6nT);g{LgmB3LIow11r|Hns4t_d3zeS9 zi&zO%J4qnpbD8QqpZ;`hUuOcVoq|`PkG4Q5Qug$dK&{ba(GS^*rHNWyn`#ra=dmPE z>3;29j!e)S#?q2NNiz^wX%t0Or~})x?dCThFRwMs6vq3)Ojq^^9Ob{m-8~?0qKM6f-Q0ZP1;}_sir^cxCFqT=SGHimz zd^U_DFPOQ<>?2VSOIv?1|C^gR_>4Xg2;lPY33ruA5%DQAc7{d9T;M%17jUZ2e-S41 zTpb7tRA)x5VtGp4C+0Tg?HknG>lu4ueo6CatWcj+O%+&=HLR2C;N_U}3a^PS-Y{-* K`8>=0`P~8P7KGdY literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn$90.class b/bin/jake2/game/GameSpawn$90.class new file mode 100644 index 0000000000000000000000000000000000000000..ad2904ee55f0d5c726e7643530547eae7391a32a GIT binary patch literal 693 zcmZ`$U279T6g|_OWa}Dj8~b7FR|OxE7LC*=i4>$(DMS$x`p}m!%?`*<9JM;U`&tCxca6iO?z{Wc@)_bj?I@7IJ4Bd0} z-adHxID{0~Disf{?~RNdKabV9*G{1N%vj_11%gKNSU?`6v5pYnN(~iM1(rI->Nk_K zQ|)@{G|>X}PC8J@v2rHQXFsJMnM`1_Q<_ya(iW%;wLf|xu-a&{>q4~>WrwY025UODXH~&lL z!hyD)p8lmS5Ovdu8|arN-~0M}pGUcU9?hX0Bxy$bueBegafo|Vx@4oc34z*?wb~sd zD$8_+ZE!HJ4@KlTGY^?PAqrw;=Q|d^@nZoIV?>1f0LkK2=Cx@P@ftHa!xCdI@Q|1b z1oh>wgeg5&hx}Ng26Jj1H)hm*BFCV*`va@;%bYzO{s~fkE)>?MT{8vtV-s8C2Dnvl SZsQJ7;x6Mh--xx`5}&`!PKd7n literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameSpawn.class b/bin/jake2/game/GameSpawn.class new file mode 100644 index 0000000000000000000000000000000000000000..dc09eb0e8f406d84c7af2b6c1abc631eeae46de2 GIT binary patch literal 18374 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 PI5v20@}Hu;t&G3F376@+ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$10.class b/bin/jake2/game/GameTarget$10.class new file mode 100644 index 0000000000000000000000000000000000000000..2e0273cad009cc017d131e4dc28e737a4594bf75 GIT binary patch literal 1551 zcma)6+j1L45Itk9vesr36X&Xgi-7=ALM&nj0&&2^vSduGaFMM*42bb+kQc9aRl6fY zK7~S(R~D>C@+*vSE#Wt%Z6mQCB*$r&TPl@3J5I`UQbpsoWBNd$f4jO zk9`6YD}Jc1^|v=vyec;WB`~=Xc`|6p*f-})Y3WTr5jeSWFC23Mc_La~6gW~U(`-jp z0vUEIO&$ATcWxYq7`mURwoak9lb-w_GzfE43e1;=L#vMO>9(Hxzq)eE!BHHyaZKRw z9*Aq&4_ur;QNUhmH_f#I$5M=UDE;TY0#4xp8}}3HP?YSeiwE%#866~Gi27HS#{Xd# zj~Kgx7sw<_aj`jE%BDaTvjfk&ClQ zJeDg^iGz!H&c?GWs`#X~L;Xn|+z=5Wg-d02QvI%sWQ9t%n-8VBj zarX_FHcd!PE%bsY;ixr~-i-KaYzQ3PQ^3Ki!Qw549KEXPPnBQ_ypwMY(v`0Q&o)o9 zl!7vU=1Yu!%FP%Yt_~%{x3KteKhN&Ki1GkW0tYd{)dV<4X#(UX@B4&e;BKNr+#Yhx z-Ep17;mq|mt@HHpc5&pARkY6D!pYAuMe*n@JW;d;au??Yn%PVrXl+?)fu_wPoipCxj&CfZuY3>OwvsPqzpH8s7*V6R6t>B2(J zLk1TZ@>?pDJIAd989x;VP07%|6;(xZPsGaLj?>nMDq*;?^jh+JYX1{nx&qqM7I6*kIQT&C2=iLB_9dgY)gl9ZuEPKM>F?$olTs=A`f|JOIYm%|W-9ehHU zbW!Z&@i2l>1~+Mo7h%0A8dM4kOvspraePXMJYzk#g<9!Xl|&0ol*>6x;JSlr45QuY zdk%T{43pIHC{_&>GVp!hT=BVwFO1)5MJL23Hohqj(}s~%Yc&imdiWAE)WW1KWsT_g zE=r)`e#J1i)uS=U4& zJ$!?2iFZSNFli&ZifXl^*bK!GE_+xs1@wiHqM53&CSST(!it0CUOo22dRWDpDKk0_ zsm$?@(hUON_fxSZvRNlR^~|NC3`!E|L!n>vdVx3>SB`s2**Lc1OSN zZgd=1rLT;_^Y35KtPv`CHo|H%N=T^NQXfV&2iyN{{MnnMo(Ewl<8{(+A`@H#jgej| z(v{v6VTaH>Sw=Q<>vv>-p$&&it4kJ~!=|5oguSyvWG@n8xP&~dCcz9@lfddP{7mL7 z+++v0x>IgXDYMs5Tn$r@$=mziXGo3 eoy@|@=l_OfW)KkOc!bAfZEU4^OvBIGNbnuLjv@U3 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$12.class b/bin/jake2/game/GameTarget$12.class new file mode 100644 index 0000000000000000000000000000000000000000..81a6ad42b5106de896baeea5825d8bd52dd9694b GIT binary patch literal 994 zcma)5T~8B16g{)svUFLgwnY#XiWF@NQYrd`(I^(ur1}Ch@u?ZwVY|BQlAURN^(U#p zXngPo_@j(>w$-+XiM!eRHFNGgbMNerpWnU%sN#_YgJIzfe=DjLm!FEtK8Zsfxk44T zsumKHtF=HKN%5@1&y~n7JJYzvutc`& zim26&LMeUG7k=w^s3)nm8Ox`|@iL<0wN*>){BNw(Okoc57Opd7FVKC?rEsu-8`KHi z%L^ycp_Z?YFR5S(H*wp-t;zmQ>~XM!Wri6kqP~bueC|?{SUrUmtXjB3%^V{zJcxsW z#@OtVgAw<#S@moKcOL9)-IY+sJi-E zq+}9z(e|M+OLVz^9v7r*%tr+ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$13.class b/bin/jake2/game/GameTarget$13.class new file mode 100644 index 0000000000000000000000000000000000000000..ec92fe92b0bef091eac58b8cbb1ecb5baa280862 GIT binary patch literal 1039 zcmZ`%TTc@~6#iygSh_4$?g&ajQClk1wp=tA6Xg~X@P*5RFPmXIv}>2$W@f=Rev3cA z2Q?%bAN&FSDD}*CV;00s=A1n*bw$YHwS3;f(84IxR2t^Z*|0O?+Jl{qM^9=U3bEuM@lH~G@Z@;k~M;iZ$jRhLSz`&kGR|3rsw6E$ zgW2*WM!sP35;KGNeW9a^53tMSZ+J+noc*ZrV_lOZ9L5qXV;RHb$BY$B8LKE5&ttN& lE?`1N(5T=k(N$vvRv?&Ktg?wjCU8QBwCH)Ng{s8SZvL2^7XNk6ow+kZV?rQGP*GfP6Jv}JMFC$B5{x8)m@yB6j5jlv$t8F09cFq0 zK@IqRt}N>le4(tyT}34uV%FVq%c?D@vatN(N2~Vx{sVr{GM?@`NzFv2X8LrWKJWAE z?)moDFTVn?0sk_=8CD*!M(qvF87pfy@1P-J7elDNp^w36_0x77A;bj2h%i)jI-cEK%nsZ6gf;Bi3^kp8%5wXxyrb47 zrXfe10=eoe^HmYa7KSjz)UlmmMSTN_jakjE&cuMao zfvd5aeAu3y9jDMP9@j7(GE_)vQsYjM4abqvb_&qe9D&0UrpY1uCD zN7R$!K077-e5;=$>t_8>`%rsBpE7uZK%+7kv4#s-$20COMRb!uv*H^C=Lj`oE!GQa za|=T>u++7cjFKHPG;iuwfsMG0@}k_XtVqC2`H1X@AOtqR1t{e0GPDFv!6$u;O& zwF~UPy$m9dX**c7T#C6=mOVzBuE9=pndoF#UKXT+(l!ExKsR<#?K93ItSRUxoovp} zD^P?Y0E^>(Buw;H9*+t^fd@dK537tQ(w0(2L+uq+EFrB!p?2YzX%$`60qij`Sc$&U zuE3B&SIG9H>iL5L`!pIQ*-2YjD`PA6Ljsm!hc!MGCnb@FfsAgB z?WJ>mAqEGdCJrzx4dUA2`omOE0ar;a8M9L@$)JzQrYGPlFQIfc6URXmOc07|%TiKB zZuPUnmK2aE666xe?K(<^j!PcC@`B7C$V>4QR)^X<=o5hdkicOTi&+?3$oYuC!+3-a zM9OujUJRF)Tgn7n)!UdAxJd_v$!JVm9^o4fsj zBOTu>fsqd20G<(e7S9nUN7oRk)|R_VX{K)P3;2_X7c1d7zb){RZiuJRuKfO4;DquU z)qb}-)VNJ}S>Tl*-BHK$idiN2n!xLLgQCwCUFoE(0%aT_{OJm9!YP3_mFc+erWcyH z6K@N=gLf%t*B-OoMaNz9lCHX)3p(`oaK^;@mB+nONZ_ydfXXJFER}$@8+Ts3_?<$_ zM*@FSJ2B5bEK3)#QLx?p6s41)d`Ub^7fYVPCU~dmOiF@N#r-*dL{yD^N3~SY#V(Tz zS7P%Y z_~-Aj9B7c&4$rgmt>n947jP{oV!CLcM|$IEZPKcRC?gua;R{61(S##TW1J}XHW;+I zgw`SuBD$1TbSuEI9 z+!#!n>LRnaxh_JhTc&Zl5}U=H0omHGsM2aXh07WTwe@4?v7)i7B;G^@n`%0=m_c@? za9M*jswCUHSer?K}W)|aM9bK(@%>O~`27}i!u!Jfhh&9jDC zy?Pe8lJuC8_DhTL3rLelkgOX-_UHsfMgc@-FhQicDxkH|fGSOU29ML0nm#>^=Vx%7 zR%C}V|4W%vcm}UdqE`Fr(t0Y-$vGXX9mtPu8;qZA(8lR~CYutQA&p7xF zRP%eWhTn$`d?#9YH@f&PBzO<{c`x?y1Ty>qJi`0%BJam5d;q8UAU@`Mah5-bS-ubd z)zmaV|YG~=jd=kN)xqny{U(>O~r13%y*KE-DUvoj>4XV}1w<8#`Lpp{MF z9L-Ghkk%CH5Jf*bP@4UN>NkSe91@6{U?$x}CZ_2-Pw)%<-~AcAbM(J17D$j#g$y0I pIjs8Ku8Dy_jP`H;8AZN~{GZncbp~G$H84x#m-LHMjwGc%zX4Oswx|FA literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$15.class b/bin/jake2/game/GameTarget$15.class new file mode 100644 index 0000000000000000000000000000000000000000..bf422bb0f389a9d05cc91e1ed53b0e76254a1e6a GIT binary patch literal 913 zcma)4%Wl&^6g@L`>c+TD2}#?8M++3lgEXRuRS*c3f-0qKQnHPv&LlB)?Z}>#4dMqt z0t6erfGtQM5DPwlk3!sWBATKiVafM3bI+Xn`1$Mm4*(ljx4;>epNM_AQSXZbS${}k zS44fO)^6OgU>-l+3e@9R-s_5?k`cqqZ7=ZD9R{ORZZnvhVOQEPkam#53`3^r1@h78 zU{6N7V$YWh*=Fbpzbzt9`;(xl242iiZ2pT!gCRwXw(m3KN@cosDC)il`t_EIyrAEh z#c75GmC)|^B9>8S6w_-)BJY-_fo0coRYx`cH&$+^k;jsSMPffiaDwAt83l&4aFur` zR7hRPodm5x&N?`U^9*)86iBRngK%&Om;bIW?DZIyPOPll z)`(XeT-9lrV{Hio8dEHNN=}7ppociuQo`Ne5yQze>{d96T=~G$^U562Sl4Z*$X4L` zVN7k`k!lcj8Jz7PkkKafJ(e+6L4Bv?LLzAm$hXM5Nt%&PRlZ{O6B!&fNt-nI3z&3x zihO5$iS!(K4D-m4)BrWo8o3n!MWs-T f7J{(KWSii5gX{{~993LTVk;zT^xKrF3!?8g02RH0 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$16.class b/bin/jake2/game/GameTarget$16.class new file mode 100644 index 0000000000000000000000000000000000000000..c01ebd21ee2ab8e68058f05a318b633c8d709685 GIT binary patch literal 2731 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 MHvJh2*VNPZAH6*{UH||9 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$18.class b/bin/jake2/game/GameTarget$18.class new file mode 100644 index 0000000000000000000000000000000000000000..fb88365aad91e20eede6c77c27851c1f128f29ec GIT binary patch literal 2518 zcma)7+jA3D82_E!B%3T-3!w!qrAad6TCfSU;6@Fr7?y?rB-`Dl#|_+s zn;DEz%g%RC2K+Ou3Ip{>n|tYduT>=SyQD?87`PRyDGq__lHLW}=ydUI2G(L7$?eHX z1crPK9X@m)fttc`Ye=cTbRoQq#(eVB0ws_^n}+puDJ1>4a+!hKC3DP?-fS??A-zfD zil*n;L`@tUiB>ezvu8t!9QTrXju8@m{^3A0$? z`$ieohK<`da+K#p*ERB4$2RoH8tP?e4y#o2Ju@7~{ZwyhQ>3Nr0|p*MKapUT%Us5{ z{aQ*3Sg1PSr_x>n`|uEjf(o%E98+!!OH5`xVG2%EB=87^Gz>DNLV>RpGO!=i4q}dL z6)cjY2(?q{()M_LSF**BJgz*%dQa%#gg?>~M|+KSn`ve=N7tW4 z{4^~T=rrmyLphHKeOyF)BM_pwfp(N+XrxgBw9_mB)a2r?XbRLNI+Wi-s_MLI5=#SB z_9MZ^2u*F9LDM<>$~q&gGn$G{VNBGZQ?r@=>)8>uHZR~3^5 zItsL>E<0_h$Qd+ET^=QEvb1~Q%@&DYfgTUmA+XXsSlb+&({0nJ%wX~io}b1`ZL@ge zfMj0vnRl^@sQUw&@+WlVFEl9sAf;SHi*gBRQ4C_@DThs^!)F=+qd_;}mn5yBV z8pr3f{zBC;rCh+5>J2!pHsYMR7~iW)@H4G{QIq&hU5fMSa$HbXFhx!IVcH&qq8cU& z3f@IZhLKk9(TehcR`1hF+W8YcpjCvj;Rk$(lhp4&A`hAn`xgxwnl)saFXDJq`5QeX Z|FNGKpWsuPBUHn{XY|(zU1kpb{sVLCfrtPA literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$19.class b/bin/jake2/game/GameTarget$19.class new file mode 100644 index 0000000000000000000000000000000000000000..7255279f8688baf0974201a9d4ea06308cdcc10b GIT binary patch literal 1733 zcmZuy-BVjd6#p%I;U?j>V9G~nu`L!WAB7Ysw8%$=Kx!(%A_xlA^d{Mcg`2(Uy*EsK z@U7#sPd;=yn`d{73gEi|Krp>0Jfv05qRgtuYm9KjG@ar3sbX?s$i>z78bD}4&J5{lJ;WQL)c zFr}9mItB*G?7&Vqwkjsp15c{rOa!knbO%-7Sz&v@?!yWtm8EypKKa&V_dqy;D9C(} z4Q2+nqv%Api7tW{LQvORIEx;J(~j*2*^+xeugVf-!ctM3$Ll6~8P0^G!^B4nA3&K z%2L_&bapzoAq&H}N|1@<1{^{KGWaa(2X;Vdk?kn1nMgF^Xf(1ghH&c>26n}?! z=)`pklbB*?Rj%|Yyef!C6fhmbO}uSly0Og~AX=EgEJJ(Q^<^MkB??*Jt*8RSg@K(^ zn6{IOrPHZYYH-uIMP019xMkrTEHFfh*{TVp*}3z7jv8sw!V;FLFj7@~UB_zqZ(Dd5 zY04|_NJ^NYE9_sa-PY-R&%z2a3|7(8IBWb+XNEmapz4V4Tezz^i%=uDc_KW953pfk zow}-4?@Az@#EQ&W_z*NlX5O<^!7WwiDrF?Qbef&`*uu8%fo8ufM8R16t#+uns48YeucuATtU--BL%9|>S>Po*ObT;WUL6VVd9(s<*5434QjMf-Q@XIhr*-B@tW<>H7 zorq$z(W)O9A*mnW@%HaY)ZF#!;Qb+2{;z8sXKJpjga`!yo(~_P;}GYLaOtb3xN?X$ z>0KvzO|QI(?_H6*i3Ogitmu--WO_b?Qs+9Jw*1KzrU^pC2fw7wVz-R zgyDhlozA+-);6e__z+I>Vf65;xX4G)NBe$0iZMQhDL#%_ejQ0Zi4>nghTp(leiK`K z8rysZSw0KJ=kPh7$CqUPgfHM*zKCPKRHbmJMpKz`NS}WIU($#A literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$2.class b/bin/jake2/game/GameTarget$2.class new file mode 100644 index 0000000000000000000000000000000000000000..84bf940ca6e727f8d2db1364cd15b2fdfc87836f GIT binary patch literal 1295 zcma)6TW=Fb6#mA$_QsnHNpk_h#pTvw6B0uL;S!oOgqT_ieF;QDfULnDoB?On+8qaY z;eYT8cm>2o>O+4(e@~yPs_Hk6X*U%QU1{cA=3KsW=FI-~*Dt>Um`6Q8PT6Hon?z+|~Xt6f>` zNYk!v+C-c7(h$C3WCCmK0dH(}6$>Ijua`3EN;w-@wRF=q?9%_$Rkn(l!l3{MnIwa7 z5GTT6Obdi*S3WmSIia2s8*w2oyTCL_L%~Qs57`|r1CdGE! zU4BtEt=^S3Chs@5CF>a3w6gi^j_eL5FWiiKNmJFdo6XUGXKv2T7&Ysr*&#a9zN74R z+zN18VCp};-J3aqsBVl();cmxRf-cJNLiy$7j){Tm?-=5{1Rl+Nz+~ao zYkW`U$On{OKMSuhFj{5=2 z{dyl^g&ey?-H+rvT;p2BG<&v!;{)y{&qq)wg}Ko``DgosFVMppl{wtPI;oEu_n){z JhINhP_czh77bO4y literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$20.class b/bin/jake2/game/GameTarget$20.class new file mode 100644 index 0000000000000000000000000000000000000000..4033c2c62e8fa0c354c16fbd180683f267c17c53 GIT binary patch literal 1019 zcma)5T~8BH5IvW>u(YfeOF=$F5m8!dX)S&iHHx5(1s}k^HkbC=u55R4_qOrTCx4F` zh=~vW0E2(YICop^Vq)SZJF_!)=FFKpv)_My{RW_jbrVAj({IFqEasb{E%VPv>}p>8e+OeB2O+O8N{V>$YpFhYUQOsWKQFUPH#g5wkFi5r#y?cI8f|y)XSe zvF}KRWW}osrz(6~+kK~@T6VxNTlp7{62mYtDnDgNr85-P6?sRv&HS$NZMRt(#W{va z71FLr;j7l$4z*P41XPlT@=-d9E*o}T)l}(!eVJ+ulQ?f;iecg}mQO?=ElgvENIJ4B z9fr9mZs@Byy6=EW#xRF@6Big}B0#5uEL_ATx=&@dsR6bX!)07Cu}Jq9$>}#?VF_2M zcHQf^ilWOpdf7r+L&P*hphWx7cyMy^Lmy==Tn~?2`A*Tzy9e64Y9WsTC5XDRyFz(1 z-c+=W-&dxCix$>2#92oKs@C?pveu(&1k!m;Ts+m%`w`#uI(}Vl*?RPe!D_AQ36f{i ztvg;o6Wo@no)jWZ}5zK&L?Oh99bz2m8A! z-j=(866oKEJQ?iB*f)0DY3aJ32#jr{Dy3nR1v-dleN|vEU*M}lSqx-YD{kr74{PNv zoM$ZptF(YuUZ|i!PzMPsF6Gl{Rn_-&MVJ5ASJ-hdgb^FV#GZoJ&f{VfV*W5@ z16gAmV%@<7T(WUdU?3G@I$D;Aa&Z|~NS0w+U_6b)xGI5RC?Q5u`KpU+xGrGtt0a-N zCWHU<@8AY**|>RnR;QA=$eT27oy@dT&6}_(7t?1iO6FqL#hhua+eCPEvaPD5RE3&D zNMruXC}$Muy4eaxdfGpfI-=gQrKPvGDI4uk=eDAQ*i+AZvkbk4lGe!POjGo%gOVLrdTsdU=`zvy>)5w!iNSMJwE7hgeL7W=}%%%AXeZx5QiDOKDM$d^+p!WI*GuE49%ovQ>CdOfYMG#AH#1rn{GA6_-X2e>v=u|6l vyQo1~#O)@|Sr&HD5dM~?goa?{CYK_jg7zX*0k1_6kTRVq>IihkUp2JH5)BEHoHD+E@1qPV z;}0LehjQGLRtef4CX?NB_MH9p+e?1@{PrEdJl1t|5k}rx@5Fq*VI7G4CW{@*ZwNWP zs6!)+Mh-Vzxf_Vpx^*apPv~B;qO>` zjvx$_y_)4zEZ_M_XA@OP;YQB(6i*1CJbQD~+{qT>=_@GpXERv=7_VvNw$unFT) zP*u&UeQ@acDqI37T-GtcC5V8u$(WeL6+*A;*_?#!*2Q}Ql?+_Pbsg8v_uw3^iD}Gm zc>=HL)(I0GQ!SN>#bPUun?>p?v<5i8;l* z?~RJzu6tnMHs*EQ`L|%Z(soQNV3A;MR(X_Klg7=@bz~l8_q%bKio(BV;yxa5%{Hq= zUx*FWRUYJyC~7ui!sYX!PJmnuPwuOEPFOW*A6e4lwXy9r{hBD+YHX8d<2a|rk1ZQ+ z&G7;rzbzs6y}FK7!f>QcXC9nu$#sRl?pQ$}0!)GF@ZX0}@{huMop%eYiFG{t6+NGL z(FKF0!5UPC#)rMUH(Qrj_wkN!0ZEn$V3xH4hz(r)$g1V8&_P=f*VrG|0SvZXKQMsC zJ~PJ{%Efah7&pz{FPJ*UjaMhgYOg;do0~mFK6i?{XWS-LTzU?JUch9Xq?bt14yI@q x(^LtAW?R7Rpd11Z@hIdug95KOJGL$HD#q{QkoYoISZjE~a*aQO@2kxC`31qd5}N=3 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$5.class b/bin/jake2/game/GameTarget$5.class new file mode 100644 index 0000000000000000000000000000000000000000..c5e4bcbaf7564a72fe16f6cfe261097e962d112a GIT binary patch literal 1345 zcma)5+foxj5IvJ@SP~Ya;eJt35pxlOAc}^IT#^_Kz5uE6LBo&?$-=Tr?M^5^$1kvy zLZp1~1NU^oW;h7B`3#c^H=Ceppe}E3zyz|LaSX!sx?*ihhQkEA&>mBQy+Rh#^qZ8HW9! zZZFIF;gMy#>B1PnO%ts4db{^ z&2g-TS!Eb)TWX<@%jKGNJkStFf&vV2ET}^xe#V}!Y`F7rJjy9ds(46q@ln2fNyC)K ze9z7Ab=?Ugg=r0sJioLgH=6!V%u-R)Zc%d@p5Q5iR)*&?!JlW#ja1e4Iod} ztQeL@eNO#kT;TobOU4Ti_EpH{O2`1j2BB|_rMUreXJ(>OpjczKjnKL|2O`c;ub&e&MbI{{F zfiNZAL4^=9~d+s^k`OZ17UcdYYz$9uGdIS#tAlKAn z(UC1xoa0iHfuqdC1q*3`qlwG1XKJh3Tbpjmb)y1-zRTLv=88ZnmtPV{&-hK1MG6@k zz33AdnAe`V(Qd7%pe9#bB``GaH>A5H10Ct{VcM+fP+)XE5i1E~N}!jBsbGT6x5HW4k`9?G?ODvdqE_}ijIqzym_?b%HkB(k35b-;p=#mV_q*Ya(XNf_ z_)fr{tKSLZNnvFQ{~JtaPD15AWbH$_!9=o)emiKWijL-E;9cLJjryD?Wv>x6wC5}+ zv+6f3+`?#L2W)$>#^VgAL2(?;wKysKVwY%g1mT)^WsWghS`Rzcfp`wr7t!a<>rt4H}~+ zNaC*$1Dg23AK;HN&bAjh4IgaMo!!})XP()4?&q)XKLAW(-b4!_^-|R3WT7gyWZ^L{ z>%y-}H9l>^AoNEr7hUxt)x$Aov~e8%@Shi%m%?&@G3Hi7!nrZXeD&5*sgrC zv$ZMxb+PG4LidVS7S4w7ZG8@%hN{^CVPGXvDN3VAh%=w%M}*#VhNE^x!4Yn?u%>+5 ztrpvGmTz_fSyBz+CAqilc!BM?%#7WHxpWj;R_wAWsp9|oG8+l>A!XtmHxS_%;#la% z03jjD%H9>q=z4O)W?Ss2E7?x!Lh@rpo830%NM6QhK_2=qz&7A|3or|@rU%_b|{ z+;FrQPiVbnyY+BJ#Uw7{s);Lv!3g|6Q5Mq3Fe#pcTW2|(`dXRix`C{Y9ZMjGf{8q# zCxWU;KNNwqa2+=o&XK#)Aq++NHGCyUt03SJBrt_rCT{ZdBS3!#S-7pA%ux20)D-Sm zxT_rrSMI5hvJpt<1()YB^tNY@Fu4B- z))$OqzheB^VU~Btm|%152$TAH^BB{bWUN7QL=&L5h|@cC(tFnS2c&2pBlHnDI%rg% yXjTZTb1mG%K!b1|Mc#3n>|^ya=1c>bQoOy-+ZN1Xj;+D+1|IM~$%(pG{{03rWB(}t literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$8.class b/bin/jake2/game/GameTarget$8.class new file mode 100644 index 0000000000000000000000000000000000000000..9e3e29599292954560b972f38dfbf358108d2182 GIT binary patch literal 2473 zcmbtV>2nlC6#sR0!(=y&Ik*ooAY!gfOz;4MA_*j{hC>sgG3wg8+w2a^&a5+&H7JKS z3f_te3aABIg_gqBl0+>j{UBBHm-s(erM{lo#97D(tK3wkyI;S4$M0R&{`&C>fNp%Q zp^9P2KCxeRcVISlAiquHB#^%&;_Yxy^L3!BWfUPqII1y^p>9w&<<9Y3Qrg2JX-I~~K`SMU5n=1jMGAwLvA+CbxG=!Py9CB^l%=FZtfno8uBNMJ?cp{ahTWQFGG{`o(VA$LolrGbH z%1yXE|CQD<62T%Y(Xg0d!F5*l3P*A*#WJ$8ta3$Au18B4%5R5MMz8`mYgkGC1_V_y zaje2E4E4H6Fz0l~(Jj-}bL0l=SB9+SSc6*`qG>7IY)-hTEZG%Qnkop}Q+69}*RYPE zA)w5^!2=wztLBs{<)Hda-bI4esVK}ixGT9&rre%6`bZR` zFjecaD8Rudl=S!s^a96= z3fWLj9KC6<%EJN+#GN53iK$)>v)3*O4(c)6zFKj@s@@+=df{xhvRKk zO0|x(3)1!qK8knozJ~WIQ){;&4oG|Zc$(t_d`NApS5n2t1AUN^b^UJ$ND`}sqzNbTPt^5sz!9kRyllw{=Cdhr3I-<1}&j42rv_h`Wj5ctbr7 zpF*sixI*3Mv9`Uft%!~7C2TICk9PG@+HcP`g#HNCubjq10TErXtBA!)c=#&T6|txK zCyb7&V+ms=h-qY|kZa6O!k$E75(nB!I8xs_iI=L*p`nP^MoT!>@HY-$#<8|(yrTdN zc>pG9B!hi{TJ|M4JBKywJYwuCbg&E9$iBe<`<8n3cNk&cQxCg{9PRV$5*7Gm9AuL? z%BFCfP2(*40q1D_n$8#4&zNFY@EiLDzq4OGbX$D{%jgo8IDwD6fLz1Jw4*Q*?GxIC maFX^BRP)t;qIbh`BAg;Z6+Xphw1#n-zGvw_O3zh9>GuyLzl4MU literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget$9.class b/bin/jake2/game/GameTarget$9.class new file mode 100644 index 0000000000000000000000000000000000000000..fcb67db1534b12dacc3314899aca421943fcf513 GIT binary patch literal 1409 zcma)5+j0{}5It>O)>787F*gGtAqgR}jS(@qfd~X&1PV4c8}q<}7;7i%3DT}>cjPL5 zfPcteBq_>COHq#`Te0aaVe0OoPq!-(ME zC+fbQuZF6ltCzW~t0dI+_*oBm!BpmOIkLA?eJN1eRwshuc@r6XL6ECVZwT^>aiGh{ zq2!~0qF{W*MEY8{v#FDHwb|B!$(6XJ+8Zh{E*@;=?UqRehgLE-Wnt6=1>$Ke3HDW{ znYE*;Z54&pHJg|ytc_xiU{5#IP1^(BOt;%A-6AaR2`*N$jdfsJwrOk6yEna2!hRg| za6qv434jYK)jp_3+ZLoQu}P@p(G!tQ01qN6BC+!N;`;g!9@vf`% zI`Iy{Ca&szA7@?FXs>F?Bo1xO$9c!0n36+~y1WZMF5*LK(do9WX{nUditId4W5LIw ztH=eNu#9C~_D~n>&v0<#vlw?amGyB24Z(}+&08uk-E>KHR7hzTo_i|lLkbSY$3fxu zNp<^UPUW*Qs6}kI+%qYumNh%d#`MS5tZLm~RojEvFR#Vjq^0Y|y^it!r~Z_ia_%fg ztv1Dt!c}dz;=se&(?t8vRp2+GNGFS&{Zywo1`5PSj^4`m$k=0ahE`|`Ghbr#b2=j^ zb1lE&>ZegX0i0tVL^jNk@t(&llC>pK5smOA11`wyw|L&E?7 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTarget.class b/bin/jake2/game/GameTarget.class new file mode 100644 index 0000000000000000000000000000000000000000..ac47996a6f469195a3514b74cfb4d2bc4dcd7529 GIT binary patch literal 8004 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 Iw^cv?2gEnsWB>pF literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTrigger$1.class b/bin/jake2/game/GameTrigger$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4e311f47197e4fa1f10450f74ac86748c0c6d53f GIT binary patch literal 681 zcmZuvO>fgc6r5K(b>jwFLP$&bDu_cu1rg;K1giRhDg`c$df-xRla;f?Sy%Q3_)#3- zfGYLC58(HJ1Q*0Ou__~B$#3@gy_tEt>+gRqz5&?Ag8&PH^>=Elw>y!V=*}yKerlpf zrw^Y7@C6&C>b`aTk+I{Qp*nLq6)ZkC*0>h}uhl*l_`AtahwxCXp@K!hO3zsRW;!|5 zX zrE=qcf^neEtGdkcI#N literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTrigger$10.class b/bin/jake2/game/GameTrigger$10.class new file mode 100644 index 0000000000000000000000000000000000000000..9688c993029adde226b145ed3179417b4599cd1e GIT binary patch literal 1754 zcmah~OLH4V5dLQMSV^AP8^wwr35i1jSg{j1F_?$rKw?{tzz$#wn_!3-t;W*g)vjuH zWuU0aKj1(WI>ZOAxssH56bF6)75)uec%6z}H?ytLNe|hrL&j7BX zrbA;G`$X)@tA)B~%EAf_WzVYDrFY@VjE*?Ncw~Fo3CeEUY}}}cRvknTD2T`yWOlxuPmyzWXP_%rm#1KXDPn77!Mkj&v0rra#p`9 z^9+f)3`$E3!;^WE+Y<#_IQ7Ct;8{+6K8529nMT_SDuMEl#CvpWGHO-UER#g$|8LD~ zk#%`U(Dd8hjxg17elv|6Ms%E{kRo39>~oA_j2sFG+L~yJIz`S(O63&CX*|P_4y>m1 z1JP{JPBD$MIHzNR;Y7rkg5aj`CC9TkPZ8O2PuhoI3fC&O0@WwK(s&Lp=y<+At^GnA zlgfj*@<6$Ckz*?K)^CYVogG`${rJM;$G<9DmpKY*FSX;5GfumyJiWrHcxD;2x<&O7 zg;Et!#cH-(l?QSrhnG0!lz{=qwS3xhYVxxTUcqZRUS$}KMBAs!F^_8$vhTK?8pG)$ zlUOPhi$#@*>v%)Q>kP-b=2mRCN^o%8z)d=NPnxq8m#W%w$meYWJBKBXWfTee!(}I( zzzROEP-X&^=QM8NO&z6vJo|+>-csizyGJPNYaF*#(6L&xp20g<*YPexE)uLt?V{VP zihyGSWdgWdS?U!^>BwNCF#lH-Zx_{Dq9^P~U)np=Ge>C?yl&7?ZJY?Joji<+J#7Ih z6;=2QBYoTdHUq_83(JNwun`DzcTKc&McunzE~^%%3u4(ZZP%w3 zUXww?r5mZraPkmPJrxFCavbR`+QRpxj|mXMbdez(>AoReCvKJ~BbvDQ15yuZq9H?L zhA7x?h|}f(@w_WU^cZmrgBYSw8Ms7L8Hi<#Z;5o(m36S+BdW2ds#%=qs~Ffoo?wLFIj1qqXfZ5k2^6&?)-@elS_*fG3T*(p8i%J1qOA?# z3(dfn+HrhE^RKmR2+XYzzfKPrf&uSgGsLokEt=60wDvykgemLb18h@1T;e{&82vKZ pl+^C*Ba-CMQ-h=Yyz!U%PsMPT)-+V`G0`{#jV65=vahm5&p(a7m@fbT literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTrigger$11.class b/bin/jake2/game/GameTrigger$11.class new file mode 100644 index 0000000000000000000000000000000000000000..b78b24236884b57bc4f66cde8c994ead8d16c5a6 GIT binary patch literal 862 zcmah{+iuf95IvjNb!-AHA#G{Pwbz7O)WTa35-KgKl=9LjJVsk*>lj?SvNx6ZE091) zJn#X06ymI76}LhnQs&I;&Y3wg>tDZr`~+UW%HRCV6c^wTg1RJy*s z?Z6UPE?w`%x}Qw^@#~R1(<&91c^Sr`ekD+CwFd&$ZZc9Hs&MPDF(WYB3uE2a6|tn^B~E=%bO*n!dqZv>jHHuKJ9Cz5f{Inrqu2i+QO z3e3|t(uYAR&qMubsEt@M3w+-yH&CO{*F)X?-6_#Bz{NZk9V~FV z(f~#MI&Nc0z$r8dh%rceX0r=|tjF4Nt zHe-j;bD|*HkG`Y!g-!(?tw%&<6&5eAF|JROh}Rhj+`ufYDe#nN3RD|&p9xdCsgBB8 ziCVp&HgKz;4w-F}<34%(70qvGUhThyTBVg2c`;2aijab3tmJ)N+@VLcJiCi~`FJkw Zb6|`9!(7rT)`%9?X*c=z$TXVy`vcRww;%uj literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTrigger$12.class b/bin/jake2/game/GameTrigger$12.class new file mode 100644 index 0000000000000000000000000000000000000000..2c0b9104412cdb2f44cb2f7eee8a03689b5d255a GIT binary patch literal 1130 zcmah{T~8BH5Iy&Hm!)+PgaQJhsHiPP3I*|_20;X@X-NnKBR-I2d)Y2*cbna96JPir z`YR;CnE2qM5B?H=g>mk-fyJ2Eq%(KU%$%Kb=l=Zt?K^-1o@(F>BS*%uDC8}pF7g{> zc6{5igg-e~(4a7k#?otUxZ^d=+Dg@Egu-X&dTzURxWtgiWOo^qRj(>iNFb?0MHfSF z*>=Tdvwk4_9pk_e4E<%#G@M<-w`JS`m9S<93}fZkw=R!TWKb;;mR>QWGg+!@8F|NW zt^9WA+pbmY#x+txXF2+Q-E#w)@2FXC?1yq->hAcrnfOOU)i%TZu=qdBY|zKVUxjAS z^bZYF!r9#<1~IH*h!n;|bog~##|X`E=ol91WF=WWrsIZ0wV)N@61%D67A6?FTf*^7 zJN&@F->=Ke9UXUNMyq=*V)Z3cAl{%MM3s1>%B+qluM0XSbxFL?mcY4$ha5WDy3}NX2B+!IwNPmv5`ILcfkUI zSnvV-6BTEi2#i!DHuu~+bMKksbN%D$+jjsRJn>KwSbHbmt4=$TW7U4maF*#PQrULL zgZuaGQDV+>^I=As=}`G_PzzASoWN2~C+f{)e4(;4c@Zmt zdM^!S+?ScQ_3Y3!Bb^Iu^!}xzD^QJ;Iesb7XtvmPDciA3qV}oDbP{#vaZ{j1WrLGR zY&7*uaz6IFS!Ps29h!mZ{_k02Y6iEPvtWG1pwlr AAOHXW literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTrigger$3.class b/bin/jake2/game/GameTrigger$3.class new file mode 100644 index 0000000000000000000000000000000000000000..7f3fb6caf6dac6f54e2b4fc102ea4a08fda86673 GIT binary patch literal 1480 zcmah}ZEqVz5PmlH`D**pCT{cI^41jWCar10Yf=Isi9;YR4GFGFKA6pUV_$l?3wP^O zeCf|XqT)wj6hwp&ANjzKLOgr6$^{{D((T;N%+5SB`^^3M*RQ_=SimD2LjsdW@`+lg zw&k&^ZgSa+ymnhfvx_#e0@Eq$Mxgh?uG?8{$rG(2f!uvB@brp6rd(+VWY@x$Dj#l)C#a2+=U3h{}28XWqv%}$6d zV|v-aE5>BUr-|O^UUP60v(z1jr%c8>7}~Gp@jA*j-Vhk>W7+h>1L?;OD#o{Xs@%n9 z$ZPe20_JeX#=O92-?ghfzgm~Nv$*cyE~)}fL%BMPHooaH1T&TQYx}jzS0?*Chpbs7 zKI&)EHL*%hf7^_;)TTXoyp4BlydyA`Zq5ZK2k#khIbNf$VuNeR!7}a>z^YO8Q7}<4 z0g!-b7`GJ%AL1i+Y(3Nuqp;O=+2H|7wqgt)J6Hp$l9#UbP9-I0W)Z@nx3S0}65EimD7P)u&PL#vk30%e% zt|q`8N)sSc8u^i;f80ce$fb^EUK}mqYX7JxFno?@j^@vB?GFskonhK~_B|$hRJ>&K zD^X>iJ%`on(faC7xOI-(&v7sJTkdhDxbry6*DCHTSv>LP8Qz+*ggD3hQw`988O0+!U8d(-GVfB`k=mSQBH|5#wlz z34AT4p~MV4aXqPQrH_748SB7jSWlX9gl&GYh1AvYAnExLKF32=yoMXt!7TrnU(lXI ccC>^gdhBvHggtyonI%(!2HyhXnfCJe8{tSrS^xk5 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTrigger$4.class b/bin/jake2/game/GameTrigger$4.class new file mode 100644 index 0000000000000000000000000000000000000000..8ed274f1b16c9f5a9488e241eddff116dbfa129c GIT binary patch literal 988 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTrigger$9.class b/bin/jake2/game/GameTrigger$9.class new file mode 100644 index 0000000000000000000000000000000000000000..2ffc33eb264a5fd98ea487eb5b8632cc5dad3e90 GIT binary patch literal 1044 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 DVCwhH literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTurret$5.class b/bin/jake2/game/GameTurret$5.class new file mode 100644 index 0000000000000000000000000000000000000000..cc294b7bef1bce9545185df5a5d92a0d387da50d GIT binary patch literal 2100 zcmaJ>-)|IE6#hZxe(w-9SZCQI-v>oNgaKZD0+WNc+gRmiTc*Ir1Iq6Ov%-AzZc!cs! z=}Pr7A=cD9LNL1X8IeE?l@{VCCsg-KR~#!$j|*?u9(M$xwm+Y?oe|rU+Fsr?R8IPY z_5G1=MTv9};#r~k4inZiHM3XIZgXrm+cu;;>1I1Bu$oY(0@|sJCyT;MF{C@iam#Cc zQxsfeWLl+ENAu}QtVO+vCprGHj~}vqVPPHCGl(OK!Xa#oVg!3BN2lX6R3$cIvx!Zd zMg(Z3lZB_Sh0CPmG?#*UjQ#iS{ZffWY&G!=*CrCU%+SKKI-=4Q=T(r2_I}Pn6PlTp zaK-c-*Ca~oL2BADX`uzJ>?qxWufNFYHloeKPV8dwa>900j<@>~*bSC@&%dj1N=e7U z3#cO`dZe2fwmnut!|b#0B3>d?P3K*oyFt1Wd2W{|m&i#_p-#MPVn1PBB+(T<77pli z6UwutlhS3XL?;efIHU=iww!S6tgqP~wr~VJyjPUI3_2_Mp9)9mJSdG;y%D_@`tS;8 z&z-kISm7$E=2E`0l?Z6}mE`Qh1Z_LLRyn#y^12mx5p7&$&=tFpU`ZoikeNh zudAN3Ahj6Pwo-O_DmB4Z-Oq`P(bWa$Yr}mp4Nf-hPf3SwM_shm>7vbdkZ;8dJQL?0 zRv{QN;h_azA!Io*}$*#7#SSpJ&K`P`P}@#5;twk?wpH zL9qHCwBJJ9xXt$7 zFn$po+88aNtLFavBD%grUsAg-p?d*4^qD@Ym|wuI|Bb492vc!|VS;ZknWH7V+OmYf zmiU>S8n%Sju8$A4@ayUDuyqM%TSL=cLMCLTu}a9^{7jRroxF>w67mz)c zgf7}YJgGOvEv`sbBXUxzc9z*FEB(|3L4bXe{IG=7Uzdj4Qkvc$=SB`9Hz9x)=HHA729V Am;e9( literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameTurret$6.class b/bin/jake2/game/GameTurret$6.class new file mode 100644 index 0000000000000000000000000000000000000000..7670a0a31376cfc9f1435da0f8a41c15734b544c GIT binary patch literal 1839 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 F`&)<mtC`aAn~2N z(8NUIg%99E8NO``?nT|CGo788-}z?F{`vdsH-KIEc~}C=pX5mG)(7%j)mt>DMhBa( z@^A#!GpS~1PKG)hz3t1-M#TbiuXU)+8v(oOcLbdMsIOeuD0;|YPGGUEL-pa}{7l6s z@+?pS<#yDQK}W_qji)aiGt`N|YCCh*KN$^y+(4P51A$7_XU(Oo2QnPgk4>z@L8E}X z0`p^G-2)ZKFRUjp9FbVfB2{1aOxHC0k3}qFHIEhQ$s9S&d$@-+fuiggeJM@EIV-a; zF7D%D9uEYTGLReH9v;+N6&AnG<81<>~C=6A+AIKz82{u3szYUBn zuaR+{(H^~^&+Ys~;XD6WaA{q7SX*$IoM-G!is%;@36!u%n*v_YrvSTr=NsLmJ*C6i z&a~RMtz|4tTi>yo$DmZJ{Xpdk>$NLvIA3omrBtisqhRg8vub17%A{jTV=p$bMxKr5 Uq);Q032ME|tgU8eWZ|ApigX literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameUtil$2.class b/bin/jake2/game/GameUtil$2.class new file mode 100644 index 0000000000000000000000000000000000000000..6706b78ea770a7d580e52176fab247a78bf063cf GIT binary patch literal 670 zcmZ`$O;6iE6r8o41Wfp762eyt95^IY)F>Q-A|VI}DR6;u=mjmwDp_LI$X@!ZdMGEV z9{L0NqpFUR06u^vzwz^XGw;pr-+#aV0BB&d07qc)Rt{Ao=*v45oG^T~I^1d$;0df| zN^N5=2ign|dh*_?SRlWzjkYZTw^qLr@D8J%^5J5-h#c|)^Brx}`NQ3fiZA6&s02!# zs4K%O8S6Bk{PgTVCjv{I%&gZnngY4LvZqG^m0F!W-(?U=(+@6etWCc;g%1M7lk4MH zsdi6y?Ewi?G($?(vYINbUfX8(u@1v#T$u3!YEgbi*j2i!)^hQI9@OjZyJoD3e4b*aX#iPZ&iWDf0reJ)$7y zwx2Nd$PWiTqfdkrz+-WSd2!rCoMk33hk3?SV279rxTS@kgfTr;hqIfZx-Zlc$`fjf z$T7%&{)LMBvhs%@y!Uuiw z!NeC5FM&vW@CW##jAyo0*GQAj*>joid~@cTA3wi+2QZ3F0~$l?OTI5g<9S{b@nu?` zNz3jVGZ0|t@}-s>xm~cF{bY_GNKs~}nYJ8D&NAo&(H(}sLMbQ0&=E2bL=8j3n&pU% z!{V+eZ}VMSFhtf$S#Iy}vZefLFdz$-%h0~&>-CpLf+3g}GQG&qG7zPjBObT8laFu7 zvgPCxwP<2!To-x1BDgIJ8A5aRX;am<5BPCK&dSP+OhjLV(28~gZA8k~x0*N6flk6G z9XslvEtf$kfNm34(L<9cc)b}|T7|EfxURzCB0tGgQX$+#pMhHp&AxW(nDg8fCT^pj z`q|=0*bLqNeqJnNtHHU%JcI!Z8i+D<`hfl|G7-ZNU5K=bG<23yoJLH#ul;K$CM&GW7f1}M4@OpIfKayh|ep~z*nKOQ zf2vBuCRUJUs9VmY%0euut0$RVisk9o74{xO{g&j}{dIm&m1lUXbXd-cl%)h*|67u5d{P^g8IN!CUE7kZ+JTMwZ5m;NVx(ex?tN z=Ave!(dPsLl&mA)tQ3*0Cy(I@8faAj!(W_py?TrGFSvh($-38XV8$Xd z7nuD3BX)sB{Z!HMj?qv0fi{IEErA|w8iU#lhO{}1Ye^)vd8}%S*w9iQ&$bGeDo5$AlJyKGdTV=o&d1*0Di0Kz9y2p?{dl)C}nN3*rh0egFUf literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameUtil$4.class b/bin/jake2/game/GameUtil$4.class new file mode 100644 index 0000000000000000000000000000000000000000..08590232cd23c6f57a57c22173167de471108911 GIT binary patch literal 2423 zcmZuxU2GIp6#nkr*&Vu_N?D3a0i`HN3oWHo1ZgRhLb1{oOQBF&sMFo)?sR8o%kH$L z5Geo3Zvh2UB!t8mV#0&eqQv;~hKa$%_+pGNzWHF{lMf{R#B*l1Wf$G-+%Q^&2Yex_U2&@f-0URL|Kn!%-}DMxnzW-cSuu!%G0 zF>LZ{Ga6NFnGO>JajUz&NyAo-LcW{eo+K5M!C|2D*RhS@rDCRKQ9!ca4-M%__xToV zSJ9elHZ9cf2HHq{NVf*bJ3*;x$1W8+1)j-DRkPWvp#!_AVd&|w+db`^olXsV(M7o8 z2|Gm%X4-v;r^22kal!0EkBa@d5zo1!;Z5j-DQ;K>VOo&w(o_9R1-TC)4PlOrrn{Y# zE>;%wX^5~TUs}NNGBxyro6RzY42oAyvAbtI7PouKg&Idf1(k4ivFBdWFu?Is95YV& z*oUNs6d%mYVCkc2lZqN)mJMncVw|dO_E~x)rPMuo^qo@IOv`$vYCrhV@7wST4LSO8 z9*$}l#WBLqF;B$Zs5f%dPiQ#Fmb@7|EP?ySWP)L|h zyq3O1djWA&qnJr68>pb24R`{DAJdjrXX}v7S*o6C)c|IvRpnzc;3I2ezAt>8p8U2> zg+6b7Tgy{?>+(qyO=8|H>>%p-NxV@00Hx*L?v=!@IMdsfmb0LO1QlrkX|QYpRpmld zEDx;t6l>Rci@lSm$y9Dh8tKjf!8L{oPX^G3LapG@8~#-=+2%=bU(y1O!@Ak z_YU%zREbnFV&j{%mFOg_w8DYwH#3HPx1X4C6f)`$46jx0V1@grKX8zlMZ_q#Ni@RT zY~sAk9b(SKH-)S)s9Y?<;n-!C6r~XtTzemRL8YL7t?~dzf(kudGKG-$2{115=}3R? zeH?H>A7>;B=_qiDuDiZ@pZKN_>AB0O<84>rn9w938c zmfZ+T>UY{>GK66n#)yn!RQBVljNx5r;g*c!BbmTGIe<^3gD>SEzLvxIULM2`@(_NK zhw-yKf?wrP{4PiFhdhQq<#8e936UpHib8ox1mzh~EYFI?@|>uW=S8i&AU4TMVw)Tj z?eenNFRzFY?S1m9h{|i?fV?ga$@j!*IW8{Bn{FBQu}5MoQ-(~PMlls)p%}#(ETzIN z5ed9Sln1}j_cq$7`X5hG!Z%G7O;g1*SJL-l)DdTKjvDJcMQ&V-O4p_`>Ct4BMey+3u3=l*AYQhbBH~ zyz2v)8jU7CYT}PFp4k>z5*~axw>g(@&iQ`-`St_AB<4(ThOS3qM^5I7qAYU{NUSTz z9iBE}F!V;A7Cf~c$a@8`t7L_tY0mK+b%!CA&TKFk^L{}l5ks?uIGPyRmK{$%td_TA zWle0kk|DM1+rr%t6-WDxprJ}mz|gZCnRE;y&k!$4wRE4MGo7KFJ&|*TSIn)disKdY z37lnUDf?bPm^P~cO^Jo_ZaUgf793k`s{H@PG8@h4LXU}VLLC9t=wqQ5eS}PUviz8k zoz_-27_e{-=V?_XDO^=zU`slD(ZZk($G2Tk40L43!etCoqU}1;Qw-hFmc@FM@ax>G z7Oo+E{AHq)23P2%GndjC%bi3343Qn>^8WNT=lCJTP`}9 zEv-lM#`M*RPYa&y`T<>iMXHitV6c`vPgdq#5d<=zmD25r)d(d~kbIN8DbkE|eB=uf zhh%UhNhV2yKZik&E#zDEB+{+qF`PjgN!=hzS~rNL+7C$8%XN3~7m?D~ztR*s8l~SU z+n}2KXbqh|VH}d~e?~f6!-e+2{U>$v(l4Yaa;1h0(Ru%=PRxEr=jd0AX~eM*@gxlZ ze+iSnLV~|W8-Ig#{ucfG9R~P&4Dk;b=N~b_4=}?IG0Q)N@J8wo8t@1VZlEvxQ6AG| m(Hy?Fq2*6-6D_UHfBj1#0j0JH&@>WnSTL366=Qm literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameUtil.class b/bin/jake2/game/GameUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..09a0898891dc9aa38476add9eb490ea6bb64d016 GIT binary patch literal 11045 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameWeapon$1.class b/bin/jake2/game/GameWeapon$1.class new file mode 100644 index 0000000000000000000000000000000000000000..52f267dd9da838f5eabbd816c9534058d377f647 GIT binary patch literal 2095 zcmah~%~RZD82<&b8+Hj&p+KRr6mOvmx}CR>|TMzgbdp7(j5@2@=m^XFdyT)-C^>J)U` zHtvWE!SL+cY<>m5fR#dxG4QJW#ZF#N|)o{ZO6m-reY$Y8TSCFzq zn4eN`ytj{BTgI?sxYqDu=-aL}-hk&7G!-2qpjU-Zx=4vCTUIK6u-%%+v9s%w=#A-5O3QXiF$~W<$pd zI87bvj$tu7NDa<0b9>TDE2c738EC(b0SwX!I&w0}MnOB=DFmSr%CuxK4ED`yEM~&RS|**1cadg2 z-?nU5LEUODi#IT;VWhSf7aU_p_;EMtxP&(uT}+$z?10VGb!2p_xqKYpxQ@#*gV~V% zT{6msC1fmDb-WdkgNm{3M%m5a8YVSN)MoZ+59pYR9CkgwY&cRyPREQSHEapTGnoKM z%K?_=dNj#o6CK!=c7ZQK&( z#X{U3QkkV=Ln>>Clug;bB;M9>2M*1bH=WQnIr?lVYNrGABM{EI9KUcwj$bMoX4WDZ z@6+mXxu|lk*?TqD&t{z^Eqf(8yBHegojIcttu0NunqBlZeN*IYx!am$j^lP6k~@l& zY1ecZylc&gaKmHFcmLfHv4jFW?{Zm8a*G8bKo4k^OB&Ie+mvUGr;CINVd~sZXm~)R z4q3jlguq#-ylf<<$4rDxJSlh%&3sD*gM?B+eao>Q31V@n9b5;`MC<<+Z9!`+s{Bqf zQpMpw{~nHi5A{K(`UowZ>K?kZukNFv{{TG?J#m5oAnr6w}>} z5$1K2r%ODI@-&7k7)OrFWe!)dfC(&N5^I=dThGA3b=*ZBUlPB^HSjgLzQH`c<;Z_W z?jJaw2Ux@-EaNd&qLi=EBGXz;xx~uoj7o9{mzb>WAv{!~W;n#B@LA~_JOwz-PwfId zi?Lgzaa*xniu_u{SV-v(G-g^)v_IkZzVQiC8aDqx&$&z!*|&IIhi!aDsA7lj&-u^N JyzB`+e*t;n>)-$Y literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameWeapon$2.class b/bin/jake2/game/GameWeapon$2.class new file mode 100644 index 0000000000000000000000000000000000000000..367a093e928c809fc170c59b3a3c26b80195e928 GIT binary patch literal 2553 zcma)8U2qds6#j0q$+qc2e`ujCBB-DZg%(>Cq*$asDb*H%mLOCJ+hm(8-R#C>(^5oG z{(nSJc;Ue(ADD3*f0zz-lwpP!9(?t|7snZ2opHujM@IbaZh;i)j7j#MbI(2h_nfo& z@t^N+18Bol6#;=I2la8Itu?J@jn+OcyA3_(*elyqC<2WohrPBtoH6b3Eh#5ei~(^g;Ju=SLY=slFP=m%w} z)*fekO{I#Bl$mrBZbx))IqI-P#bSC@VtDpkLp>U(!Yq_y*@kP4P+cnZsyilk*4 zwkxo>lr!y9X-@Jk*RTT52nYtdw3Lm4raP4=xVme2yw72kij_=Bsbh1PG(3+NXx7P_ zY10-6jKm^{qFKf2xi`Aq(x;5Pf2SJOV68xfPuu301*WNS-t>&b`lE5_bgPDSUM39N z$WBR0n}&92TgjSsK@wip@QP2+4;3QVfQ>3%6{z-|FS@4HI;gvu_8tu#*d$OMHRqPh1E4eONz}-%ERChJ(!Cr*vS6p?5Uw!+v_tkP~@5Wfoaqg5?m$0S!7vnW*8!PVeA>2VMW$ zgV=m7$l_3Leg1PqX3x+tCUa6YVOUO*gB0Nna;5 z9FogWebkW*v4%IOmwQE3b1xmbA%e z7Yw<2a(qzFdBanciH{69#eC9;nR3EbKAM~@a#E7gYbPxRWTyuWH{+yKeEMXm`U8TA z>9;xXx-Gp>FbW)3G|RSxw{oU)uX5K;C~LK3TLNWG3GiB@~)vXa9xk5VBIRicDzZeognJW{`M6Yn?A;6vq0d5_-xe}UD+ z_n`_0(8$TN3Zr~Y>3lDZ@g!RkMQD_)W1v>jhDrv2=J9(;!L)DmL6AK?PAFd?|p?jfq;;(c6&szRu!;|>8X5;D9% u30;)Xmm~Oy9}5@W=u;U0 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameWeapon$3.class b/bin/jake2/game/GameWeapon$3.class new file mode 100644 index 0000000000000000000000000000000000000000..6880656bb33113006f3e28fe33fb9a32edd8a3d9 GIT binary patch literal 1729 zcmah}TXWk)6#mwhE89^CIO)YDg#rcQ+Kow4O2Hu|P3>TC$|Z>db1+9!XBh zFvAP^3(%nqWrj;Tz;JOV4ILhMa8@>s(uCn5 z9J$KZ#8ke)TOz+e!>ZtI$38i&LSZ--IxO1$veVI1Zs97UQiI2*R)X>`AE2|SGBD#jQNg&gd}(C`Qz zB_CHT-XL~ZIf=*cgo?)*MnVrHQ7gV_X*h`|8HN^WC0B@|%#%vHZ}L6xPiq*L0g^tI z-{39Y5HhDz8nS`eYx4~|2%f}gCJkSf=p?LX4(Avm4U_sSOpR>8n%QbQuB=fUFA#MbK{tB&W`pWmpX3u8d_9R7 z%&K^i;b@47U9UBq$4iu)=X7ktv<-2Mc$RG3*E<=abp{tS%!Ar17F=f-+n2X;xl}4; zs&SO|;F=0>#qo0JL;|+zlXZz$GW&{#SA(t)wrG8rz#?8#acOt?ciLXV>v)4C^lw`i zueB|b7hwxCCMDT4?X|un3rQ?tMaA-7;f8K$sA5$rMB4tdNiI`8g-uNqbNr_4;#i;w z!W#xK5DLj(%7fhPI^K~CNp#8Q`r0CI_jR9KayqUqN~Zi7hIdk*kX0f}(bg@;BZV&t zzv&nZTG=K&&0E~_gohI#gw$*ZM*47QuhMRsW=3=D)NhD)X%Rt^#w5+aXHe*Hh*nzf z63qu`N486!G zkxDCDIHrF5IpW!SIMK~*;i(%~p(`1MjOXqlmzw(YCen8>osH3udVU)PO&i+A+->9r z)?&zdcwk)^Si9NWU6k*jlHJCet1|Uykb0fIBj5(&_=2SQCGBov3}4|mzNTN}8%p?F zoW*yT#VuUKZIozT!S`6k54emU@h+|F_z73>GurqCF0DK0VjWxf2zT)bwgX zLM-4dqyyeI@iwhw0XE6wJ3+-Z$?tnqj`zu$fSMSYNJUZ-a*YfTd;m_fLNWmbm-Xva Hg_i#S_6D1d literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameWeapon$4.class b/bin/jake2/game/GameWeapon$4.class new file mode 100644 index 0000000000000000000000000000000000000000..385bc80d635f659b43d4f1b262f1b43cd4eb4ef7 GIT binary patch literal 2602 zcmai0Yitx%6#j0zyVGu`&=v}`sGvM-Y3V8;Dn*pGEL2+rT8db8na&Q|f!&=tGh09& zK0tiG1uY7im`MBw*g#_lMiYsUsEJWYd_+-yV3erQ_`?wJyR+LeMbK^L-gECg_q@Jy z&h7ED?;HUz1FtK{6BxTjTWidSB(#(fS;%39q4ikl$+Hv$1S)-p3({`8mC?KB$F&~U zumwVM&9v#x6UeWs?hptxT5%(cd=#n(A|x=f#Y`KEGpR1aZr8e!hCo@1rEAF!%{Jva zw;6D|O-G=j#iz?}NWDNXVYtmr0;8*{$)Beov1HBseo!*`dY({xza*j z$jvLN{8Ej$sgtGt|Mv7A$~P`x)SZmITGQorbw?q}F;>ACy5zGuCtt-lRL}-%U0Q}| z^u^Q_VmvNaaG5~4Pr!K{Dz3l;%2=J$5)6)L4&zEpQgD^PDBlGcr{%7hR52M-1d0~M zqPAfykbV-`i#ne*{%RFfs3wMb(lpX!9^=M($N|fwU|yLXvla!8!wvfhM41O zt_({dBDhw;HN?_q;&3LFc{h`4E!#|(X@R`XXc*VwdIhtGr{a>Nw!yHo$*AH6+(_@T zdy6g8VJ=l()Vt1Tb9G1H@Ea$>((<_~Zj$N>dX1!|)7CI<#(V|02$W_`%rJP7R?Y36 z*`%TYjpXexbl0+5=L>|ZI-}7}{$*pfKt)u75_VZJaV@1Kj6y8JtqPilqcWI3DsJq7Ch|r#;r>=@MwZsLR6;`Hu{j zjxap@Nq0JMhk_Nu?UuS5G{;b}5_i(ixWT}rG*?#CD8CxLSF=69@4`I_?jDL}f&wDh zLlrTsVgmPS$qdmFQK_;^g)Surbj#`q!$3m8YJm|xELu!5b;Bf+t)=5$b7?EUT7d~E z_Lrm+vAWg}Atw?yx@^;#5n&f_>QeC;VWeOwU{YOJA+4sPtLVYK%%S#f+gjJ;T@|Rk zR6s9iF+(ZfsBpa$u(i0Eabko~!rH51o%A-$bu4=%(cPfpK5V3a?XhJZ{~(YJm(n}b zi3eL%)F1Yt%^ZT8RcyiiETRO%Rq5xHK*Y>ck7dh#7si9ws^B4kalXPF#-m~z9u_EE zVVkbeu)!r{fhtc;IUZ5*sOR)L*14TDSWHsl<0_uOlLE!woh6oIx~9eG2U#`M9g^c| z70=*VN=;>wuBmGd`%H+ZluKN_wiC46ZrLP*Udv@E_`MjcBfbCu*?rj|h8>^p$V@P5 zE^c!*eQm4OQz zS~@3KThouxZz8b2B5)LC6@h+KDqH$cP&0su`{h|brt&~i{HFDzE;xW$IkIdHiTVoe z%&YB3Qy-?**5o+rb1c*Qv5;g-ett>80B+xl<^x#XkIteUyD+cl05sAhXG-;Tp8AsY zTXtd60OAEbvqO7PT2r>BI45iX$@0*)(7D~`P7ms_w@VK)C4~c6e*l|82k`*c+xswr ztCCVK_kwCRl_(@RR|F5@G0r)OfrEI;b5+LG!(%6=kbWPf_y83+ib{NlY8+$qkE0GB z@x}QVjrasjoEPF#cEr!H3ZG*QzQ9JDz-H20@g@53753n3yoGPE58vT!oJ2pq$07Vc zv`^wa?j6G^-u{W)r|=Da#*g@g<7xbbUvU<{i4cAlqw$9rhd(`l7iB@r0ZcgY9BpI* zkb0gJGl|p-cu}SvsU6tKyebt1@^R(=Ui--N5+*PuU#5@cC_F>7(Kl*b{TW0=@!wEt b6<*!N!#uo#S2+i;o8xQz!c-)4jlX{Yg8i98 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameWeapon$5.class b/bin/jake2/game/GameWeapon$5.class new file mode 100644 index 0000000000000000000000000000000000000000..a243b1e2d29e28eb7ade5af42f325bcb2af558d5 GIT binary patch literal 2578 zcma)7U2qds6#j0r$u{Yhme2w%e}z(MXrV{}p#>|nq(oZ;TZ#oVY?5udG}$f5wiN&W z5fQ~-6ctcs;6WagDbQgYAADiP!53$I_SFX+XMDx6em5Iv0z8<_-Fxr(yXSo8+_OLZ zd;JFhYw@*;5`lS#^buoiOHxl8E!}+WHS|&2TE1R|B2Zhv+-^Dj!=^Q|HKC6>Mn=H5 z*|bdOVF6ELXh1;ev=c@E9{4qQ;S;FnF)d@~SUP58`t?}K5D50zaXmGlXH2=z6BTFJ z%nH=>6r5G)NV|YHX*iKCfvUz3rN;G^lx`(k`kahuCEH6eTc9j9l#Ch^qbd48d789F z7+YhZQ6pi-ov70u+UG|#=Bb!Vj|vXW^EJ#zjewv}3yRb&$8?THvyScW-b!upAAPwHa>F@pnKUh>gLNwnQgb`P0;R5I?^Z%V#k{7J z*r6dJZO?Kg`o>~TMvps^^_Yep^a^M$tH-dC&M-lvfl$u>$2IKAp_|bY=2$kGNGD}j zPiW{vKTqO5>av)oZ~y~%QpH}LHB*{0J`ID|M{Kf(GY+T5u27dB2k^9trv&EQm6C0G z*3b~eL86#6dGQKCmv=L2rbq3JEZ+cPNT`Sx*HDp+1_MI`b8p6UjBQ69)}GQB2@Ob9 z`eovfKzWY2%g&mPXs!VVRWDaU*5Nc_sYF zVoU|4%H62CQ+7;GWi^aTxw3I1-Wqi?C~I;;!%;j#{r>3fx{Lhpx+{d`_I-9MCc>YL z@Bp6E@H}2%qJ~T>aXV3)ijF9{aqX-e*;nqg!D6mV+DjT<#w!FVWiaZy8bgj2B^Hc1 z*BD;I8!BEeZVbgj8ji_QQXDgFC|hpc{8<9~mWC6O>bHyuC)dIJIEi;vymN28?BOla za0>6Sj=Q7bjA7)Q=0#Xo6iIQPsti77Kz8OWPV3&({gx+#W*<$Q|4SD zz?_Oou^1X=ywB0&Bfa`)u9>Sc-+?}REE6}vrtJ6?Go5_3ydI=%x8f;Qot5l0oMD@l z{N=qJ%KZp2wur?})|t|?StE-&&|S6wpUbI1FN3cjU*Rh*>(Pq6Y^POiGN4*XM~>bavD#2i<(HM{ zwtGfs+YW^ACVj2Dr_4teHzj@Xz;m5Qn<+DOm zi$<|bgv2VbQmhkAxhmM~>DWzzFqYvO7`)a<37UZEyUW8HQIE{5ef#8$)ZG1JkZ#+aJ4MT((lw`OSe9)`k7 zf0)75Y{rBah465=QN*yYO*2GCIx!$pJ?eli7<_GJRMo?3N|X02(q#{67DGi_ℜL z)HAr_!Va}CEUEMp*N9r9t46%0+fHdlyuKKv44#3(c*K_G5qB2$R_3Y{F)eCG?E3%0 zMU$jl%wddL>C~Vam1uw1gEA~ru$27CF*&QBqZ}1vgE?x*7%iFaIS*D~m4cNFWjP9N zyuooZR+ElFU5!&@SjdZ8aI1o~42yFFWRMQqn$EEf>lsS+MuI6JTBVf6$9<*r8y1ejRq|>bOW{Dv@I+c9C}(T!*PyR7lI`^{zh{$~aih zv0FyaYg28<)Px!r(w99PcSr+@M}%%h$$AeO(X5~;Kd!SCz|rEEYnZ8os(TT{J_UR8 zlO}V}Y$gU&n^t1qLbmK zo=BG()6&-LgH8YY!QgyWWTMxF9tGX`5s_Xtsg~e44C?fPxJD_+RS_qKh?Yp2DcNGh zI6{>_>I@RAMs{XoY|B9Ps5;`sQ5;jy&rqIIC3(^ucj0bIon@wtm}bPp7)4wJ^8bVdcCb2!(>dV5T%;9KvZX%ha`)tco~?4>UGb<~lTI*wwqPUcdf> z7sE&>&>2cI)~BiaYT8wMsIG;>fJx~Oi>Pg;+8fD(%Ko5}Lw{Hb-pi2!HBm{1qgfX! z%?CFz`NPFX(=f4;Da{sEjTNDg)m2-`TIt~^$Cwk41dUhS35e{q6B4~zp6=tgKQk^; zlm&@-KnBI3J;?Epq$y%>kPNdtco>f=c;uf&JlkxK;c>E2=1hzwb$W81zzk`|aCQqg zGvY~(r=*yhCb==}K^LCkcoxqQMi&qVL8@RJ&)ewQ3T#pT*j$Ko;MS zrEQwTou#-|Sh#4x3|bwk??9EWOEjrU|a3Y~PE#|DbiRur>s@UR^yXFKU1hFw_2 zc4Gr;KrP!t%c+4jXCoR|6YZsD^s*N8(fJr_#UKmPP;137+ef7x!U?t?C+R%F4&XFv zqjqh_8P%zCJ8$Yrh{KO997Z%2^>BL<@gw%$O@#>r}&J@>vQt42rkd!^7VxO!l|H3ke<6} PIssSc>m@C+#OU)Eg?p{- literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameWeapon$7.class b/bin/jake2/game/GameWeapon$7.class new file mode 100644 index 0000000000000000000000000000000000000000..501395a168299ee07e46a48f0585fba989d43c97 GIT binary patch literal 3397 zcmaJ@YjjlA75;YS&fJ;FrNAiQU{!pTL>{q3p#-f;9+;M-A`lwWcD$LnnOrh+?=W*G z1gL7wz@12&$2t4# zz0ZE{eeNH>ICUDpGMv{@Cz!X{9I}=*WzD?Rw1&$j%PhFgEh}_rg82bryW?#bw4I^* zGG@WEih{^pwqtwW6oeWYdjwjmo3Y{uA!Zj zVKCFk(EbWft6SK{T>D}gd$e{xFmsSKFbJE$%5s?>^hXVXl$|fQMb#~#2q1Cf;ONNL zR&NcX0T)bMSeZ?8nyY5_bp%CEm2#)*;!8uvzv4%(2u}y&8!YfD)j(Mlc!<$f+1P4e zMAdM(TERtZH?YGGs^w$~E{pmR?9#E5C0J3lh81Y$N(Oc-uKHms-JF_={~qks@t9yv zz$!I?THSoV=^1z&KVoTYNVQe_sPl@0CFs+Xr&q#N657e1#vT>fCk^bwQ%v=yqU~9$ zw|R`8)=(urZQ#dvhFLRi02Ia1V1IFz@f;ibAme4KGF~F3wTk- zf!dijMK-!#69zs~*qCFD zc-2QmD_OY#x@cz^EQUK=aBVd(Lm8V-Vwhu~s7|axh0ABzVjc-KBYmpksgH$1_L>H) zb(X1L@0sbLF0E?rIFs>)T(r5Xyai$*?)^oHu!^=kYN z*RN~QrX#}B5s~Q#{RFNa!~FUK2N8=dkB&m06<;2emiVabOUB2rplk7>cMuts9g7!@ z;cGrvSUiSBhZJ&vP?Ns%5RwFzokxP(@NF49~7$0g!RT=r^cM+>tKN)@iTKu*eK(l1gCPRG5 zbJ!>jdZoZubqi8bge4v}OPR0OR+MD~BeEU4WC!-hBiJuHIYM{gu7pLWM zoRueVPM*Y{Wgq@3`|%HX8vo>eQJ%%Wi$?}s<#QF%+Ak+<_wXXFF9AjjlW zV*Vyu6OUn7pr9a?52+1V%)nAFMX2OlYBz>vUm4r*T2~;`avFj(97+|2V^}W*C3|3vEk8?EnA( literal 0 HcmV?d00001 diff --git a/bin/jake2/game/GameWeapon.class b/bin/jake2/game/GameWeapon.class new file mode 100644 index 0000000000000000000000000000000000000000..a8f38676bcd912c6ad7dce2d7ef55933f7d2d868 GIT binary patch literal 12785 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/Info.class b/bin/jake2/game/Info.class new file mode 100644 index 0000000000000000000000000000000000000000..59e8805bf29df8309210d3b4087e0b956d9a0893 GIT binary patch literal 2925 zcma)7T~Ab36kUh;WEgb#57F?I*$QM;`1Is8MC-tz;@(WdnSF&C4eoS4w=>~0;F5WG-o9dMb@mqJ{#wq0404+8n!X?f+Uce(qT)F&-Uwc z1u;}8dWQ{b3&WRos9-yt+fQ}`JAyNQoJBXYNEw+aYg(Zkm3W-<<2-r=JjqPLSR5pF z&ZcNE>cvHYh8{iBXlePJp|OUXW@a^2L{57nX-#XoHs~cmr88=gAhW33g z5VwJL0|G&6J*VlJ#M-mze9qD)46RdZKd!~6^{gJZjBKve=fRM`o_}|9cYbox$ofdw zRX>KYhmulQUp3O^g2CWE4C0#9d5heg@#2O+oix#MY8+@bTAHyKH;jalpautV(~s9N zMkw{UIU|!G{Y^dFQMcdjkPf${!ySR<9Vq=zN8OJJ*-l=|v{fqLQUp+Uxe0;2+vwl) z>XfXDL`ynjUd*uVH)zr&p&Kkxlxs64nb0kctu6YuAE*BLzUnY39Mg|E%(K^X`3V~> z=@s2x5L>`O9N9Hd&fj4(pN$*6NjV#f<)f{VH5?#G4$gC0$Vtkb2VV6{Gk%45BY)iG zzQ^!C;;sn0xcc}Pc#l3BcB@kvgA?4xHK%mSAO^@nnKI+=%h2;@&v7)!d>H(2MtSq z|6YE4nf?xyYAZ^(Z{!-}cZlybqZTcwM=Q%e!keQ^_ZZh8UPHSo=eYeoza%8g1g~-@ z7^4j*XjQ~0^*G5hhluX;0 ztBYqC91Vq^;>rp}1_)NnH6EtPxU?HDD}uDVt}I*R`=h+Pr8YFUb)6358*s)*6j)CQ zx=_mDb^zTtj2<+hmk?ecP!|c%W%Q#DSGkU02)A$rll+?HG)N`8b|hdBb{lM8iKuV~D%@r6RRle3`eHe73SestC;2mF z{Va0@ll=v#C1}Y4HftIic!*BcNLEqxQaDw^xr#c%vx-tB%?c&WgG6hVDcM~&M0jP()`kLW z3Ja}?&*OLqr}KN>+C63W@w+NPyN_!N2})Yn6_t)NGHRNArlJc;t>j{UgNwc`?cGP{ z*4n#Rwf7@=Vt2O^VOP7W$`z>m3W4ws@K+J`j6^;hI7P|YeE7J#PB&8Vm?9o0!*cl8 zNq4gsf%nPA2b9QN)ZioRrv?w<6S8p+VJxw|KO?@Mvt#cQ!!N1Z2mD`f7fF1>vHR^N zM&=6zmr&VKk^DbMHQU2sKYi`t(8h@Na5%+xvd9$}*$3xy)Q}NHM;YmOjze6>sYs?We-_h)Bz?TFp{_)CeU5*0w#J+X@g^kY=_ShO2=wXX(XH~#{n+=E0n^F3OGwn*22RFHM_wKp(o-;FdfB*UU3%~}pa~Keqc<*-QhTV3LrR{_& z)-qaL&mk)?lR|csKIr(W`=aTdFhgKy+gHARE|4je4+XNduqg}3Aa7w1LjvRbzLKv` zkB?+@;2s51ptv7;ZgA*EzKN5MS>5qtfyw<8*M*9zz+hYIy_Zy3Dl_HGwF6hR?YfS9 z)vgZXs=(-RUvz_=RF@TrpDLw$%BJt>hOU<16>uF>IZO(S^*O!3mrC1?g=yRn7;zd- zcqVrv9*Dqyx*X>g%DlH)POvSu~1>7Y^qS;rikmsBh znnEZyk0nEMPhdJlb1BE{r(~gQw2wNCT1R@_R}op823fJNYLE#cu6EmDQW~FuR4}NiyhOd{~a$S)V1q%9rq-; z;6gn-jXb&Qn-Q>_{#~t^tK^LAC@-KE)pn%rgv}hDT|UnworQZ!$*2~%aV%rZfn&!J zMsMY~G0rjCq!;vq%il5ll`jJ*a4pb7l#nGj!r1C3(T_6X)-lf2G^o&<2ASfOFLeEK z(;cFmD$QJ!7I7^p{m5+6z+U-*iIsEA(B{su_z6YxX1;vGBEkE#Wm<*yAp6;{^;9lk zm^7>W@hT{aHOvYd^I{!KVgqHdiHg|jNto=@Boau-ZEsP;!(Jyb&vuV`+8^TyeHKr- MR%rz$na%O}3!E9(IRF3v literal 0 HcmV?d00001 diff --git a/bin/jake2/game/Monster$2.class b/bin/jake2/game/Monster$2.class new file mode 100644 index 0000000000000000000000000000000000000000..001993a9f961bcf369ada4b8a06e6d7cdd715844 GIT binary patch literal 1419 zcmZ`&ZFdt@5PqiJbkpTlYD!yPe5r`ivOusXf+_Tkro=YI+EN6n@iw_lF5T?r>~5?5 z!VmEe_{9&(Nsz+_Kl;I+;9v0^4s*AGv(aPD$(^0KGjpGrdFHQ|Fa7{94QZo~aN@Dt zQ`7mnY^r=Y@S|9T=ca8~gwv^;B|qM5Xn$|MCR^-57?{z%j&BkAC#SXu)?!do4*D@D zkih`q_^S5R+J19Kg`0B6Q-s`VP?g@647Jg_Mk{XUh%mOAdg~2}0wGgZap^XroSb5p z1DW@vU(avEq4w*AEZ!!JHjhA8*jBHruoAW84?ah7W`B<`KAFy~YPuR%;=a>yhAvZ&e7u}@E+dhegzCqGp@cz zMF$_?LmOuaBdM@up1{3WdjjV$LasoW~^B6a}8HF|LxaUJ!7NHQNjh zRD9S{#&}8KvN77x!LBFk(IBpX$N9;B-&&B761a*_Ij^SY53cZnYs~ zMK@bPXy)bMHi|Zu2q#l5>+um-#vOv=@z_-|g8v=$jo;y|y z_WjzX44LuV!bo|$grSXCR`<%X)m;~7BiIkCs;JFEi7wvDW-)l7X%bR8C79%Ee`Ik6mK zjqnzZ^Jx-XVrdfe=Z1e}aTIQ{gKnfk``?7-FwzbEo73|%cBe`cu(X(Q!1w%j*w3_!f3E;lHRw z$|@gx^ufYkvh3X~)B-PV)lT2LaVJPNVm1@Tqi&efyeumCDM>^^mgOCVrS2VZz zt}7T)n_h*xCEj#`ePq;C&G8uqHe;1eFccUPwon@@gfWw)BL_V1a%ty_s_96((1lA3 z!;LoNGTCffG|T=T{~*izK9$tMbs-baE~-vNl~v(?ZP}8E%NR5;Kvy`A(!vmi83xaw z5Y;vghS7K-YT|ayk@cvJ1ruppF)(^Mbp+AE)gX0(S|sZx#&E;Hb%wqeh;^FT68D9L zn;55~t~d}bLpokFw3XeU`99s-#BF2@+@a3J5}iI|A&Utbs&X3CMYg8TA07P(u;wgG z1s+q1k1E2I#yt!7F-@GPxQ>wO%sB0~H7uRR0}Br^OHhRrjZZY#IMn0Wn0Sn*2A-V1 z?2d9=3kA$EbRV}o9P&s!&nd2kO@3w}6$I(NaNkjNPt^hzo4lf&1Fk&Mdy0xz>RWs- zqGqz_?Kdl8%?ZeBMWmbxNJ#8nl@-_XiG*81)x0Vl*pN~*mtF4r!lzjg`RIuuTig zwqv2%NoWdvQRrvFqEk#}@*DbF7$I@(5Vum3yDi+!9U}h=U6Z*MX2|iVh4}!U7Q!1L z{9q**>?QiyE2PZNZ&t>Fbd89 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/Monster$4.class b/bin/jake2/game/Monster$4.class new file mode 100644 index 0000000000000000000000000000000000000000..73f0fa98bd3241ef917a2cdcd08e7c4078fec272 GIT binary patch literal 1032 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerClient$3.class b/bin/jake2/game/PlayerClient$3.class new file mode 100644 index 0000000000000000000000000000000000000000..8b2b11706ca90ee354dfdb093f47aef83311e88f GIT binary patch literal 1524 zcmbVMU2hvj6g^|Fv$omNc3T?S0u7MTxTG;8e6=Z*+D$@=Q(~M32_&q^X6kIR*|m1p zMHM{rz!T3PA)a_bv_(!6iYOoDv#9?E2?=q=cB)O92SlXIo!Oal=H4^s`p!Q$Zvhy^ zTP9Kh2bblF8Z9>Dsw&QU@`?(}o~!(LaLj}ua44}o;m31JuD^12Q8r^03iO?JeK&qZ zAU#x=7ck1fqRJzUoP`Yf1a?7QFS(Jx;Y#AJ zt*ML)WEv`-J}0n$sK9fVWzmyPHTiw(3M5M~$FdjAW z$W}$S9MfwS5aIHpV7Cd~a`3e$NM@U)5J_m_N;{ZR!qH&*53nIHN2rA!iR`;W=G?&hcavX#w=<7c9JpmjuLi2hf8QfaUQ) zJNll&X%lop(y?0)S$G+AV_y)u4VS5>-kCH?e*wnrK@O$Qfh@{=&SmL(WBT$53zIsf zd@MuytDDm)yk=p#Lqv;tDl$rK!pk4%;WL0nkCbC-9^c^tZeb4JqmCc2j33d$Pk0}<@gaV}NB9*V<2QVY-|+?hz;)aq%bz@P zx1;GmSGS&~R1h=dV^iT8-ry{SS>}*|_?wV4s$8V-CTffZF9qiLpC>>+6aW4N(p6__ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerClient$4.class b/bin/jake2/game/PlayerClient$4.class new file mode 100644 index 0000000000000000000000000000000000000000..6a7f94fcafe8f128f73da4077a5e7425b8ae2454 GIT binary patch literal 709 zcmZ`%U279T6g@Y)Y3epw8|!D)R`4MeYM}NlB1ml@5Ty|5Ynkqjn=zZ&usap}SNbIQ z;1BRk@%M;lc7sM}7v`S1bMLux?w$Sq`|CFV`*_qsLvZ)Kn(F;ts%E-(oT-nxILwT; z?(snj;s4yDMNFB3I)x)7{9H`cfpf}p#5A_x!jL`Mj4rHv+51nVPX^_%nAnJ(U{ zvrG#*qdZpGi7Jfu7l)ynm{PDcx>QMD&`h-(z7lM9cbWG=^)hAC-q;n!ru|iH2-fD6 z`qMcjQcMkd-Q}t}F|j*!{fo{9!>Wf;XYY8+MHv*4yNPc+oSJwlkO60qsF_OHnhXWe zI6p69Jutr4jpb=R^_n@6BO7OVNzJddo8(Cg+k)Gd^et!)t@ZDr%2Jou0VmCuLuEN( z`Yn3Th(c^W`GVEY+%yo;MnvETLI&5kYu8D{tMmlduukg>>=Au|pmY5bp{D!lz|SRW z@R!=bjRkegoF@C` literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerClient$5.class b/bin/jake2/game/PlayerClient$5.class new file mode 100644 index 0000000000000000000000000000000000000000..5c1292324255d36c0223eb4bdede056341949a3a GIT binary patch literal 1493 zcma)6OLH4V5dOxy(n|6MCrU)(#E@VNks_iEPGTNTLL%Fe7i^JWmoK48HPViyNmjeA z-Eo5N{1Lct1uBFT2Yx_)0C3?A#hEHj6b1CG6l#_Dz@>X0-92A_-8~Qg{^Cmj^Vqa7 z!7zP`-xl*uj}L@%-RFBETJog`)Z9f2Cd0AR^-7?YrMTwt9VH@$>?IjUb%ntwSGE|; zrO*=v7|7emAj>edCIivh9dtyr$veJaD6WNF?r-r(>iy`@RDBsUoLEb}G!A5uA=4Ae zU1m5^u8`dw?)W_DIU6dHL2ogKLkzi2=A-fhYbLv`P0p9Jl?!(v>tv4B^I>&F|08dj>kcC5G( zL}DJVVbQ|tFRU6k(r#d81hXb)HxJUf&i+BWY z*~W_QiGre;^7w%Fs2j~#_}kRE>5@O{Muxl$wtZ^NkOnHpmEzso$!tCH&g_ITP?Rwt zJg}j!*ZIz9ata&aZqyYGsb}j@dS+_6>;!)$==xzyGqNsJKlCiT!*Dd!n`s{g+YJIe z{ydIFj8mXVqK^WJq=}}zMZ5E)8R^WK&yo9t78697rfq`cS1{>vl2-Q6i1Y#4F+7DS zk~+Xy(mH@qJoquGp}UR_e4TPN{&Owj@W}NK3ZO%@s`qf@;5Q$l`6-T9EfU33_c3eR zllM_J7P22 zEF@sRMIPS~;O{X_dImpW7C+)NenOdamG&3#GwS#StN0b`_$@)bIz%=?O&HNYGs&t& zcFlyI7F=3sR$F+JqMOO;EnKD_^CW6mqq8hU)N~quVU|t)Nxz0c)|#icah_Vcfgp8%}mp@j@X@rWOb_2z*4qWRL} zuSLA=xgwAiN}CLeS~~K>Q_+=`y_omJlRl56h#4jxxq&MmGZ@v{K7+X(_Js`tIR{xx zFidsaK)g8d4@JDk4?V$?eo}G_i@maLpNbq=xBr&``Kd1N=403t{${T-Z zX1j7LhiS}M$TQ6S2hBkN*BI=`??yaH=)DXD9ZK}wo=lV$Mp2fL5n8my8%tW^!Y0?h6wr$le?1lj(2!8 zo|3&Ap2R)Ta@8EC_4%wF@l#IIeirn+FmZ#yj*!EUAe?p(sHIXeCl)p@DmmUMD$}=$ zbfOMuOMwjiXpiV_k+(sXsYv|;F1=0DHl21__5~&-FVo!_6_K5!8zY^j=u`k_bY{sm z&T;h}X3tPK$Mwd_YSE-X{`Py^d7}raDnR81Q2^x>;wy6aM*H&}vtfhGLJGFe5v zIf5Tk6A@~tr|mSzucwVRutJ`CUjwV;nOI9XSc!s7ax=Jx`(#a8Wc61C@)T1KS0969 Hc!1n*=^oY` literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerClient.class b/bin/jake2/game/PlayerClient.class new file mode 100644 index 0000000000000000000000000000000000000000..5e8f3b0cd4df2666508e879ac1ff22f5e0840cc4 GIT binary patch literal 26768 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerHud.class b/bin/jake2/game/PlayerHud.class new file mode 100644 index 0000000000000000000000000000000000000000..7f9147db6c8feec2e7117f4317222bef00c21d83 GIT binary patch literal 11366 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerTrail.class b/bin/jake2/game/PlayerTrail.class new file mode 100644 index 0000000000000000000000000000000000000000..83851a4a8d3572f9a1f0fa87904431036ba15313 GIT binary patch literal 2727 zcmb7FTT>KA7(LD2mqu<13Pw$0%mT`qH5!ZvD2rLqA28LyXfxTsSSS5+(hEbE0 z52;G3OqG?&lP`Ht#BwXQACTw#fmEd`FZl&26LWfYTn6PO570f`Uw_{@=ez8$|Nig` zfC#?up-iA|UR%&3;aM%Ihx-%SlAayPYDU5bw?Ngrme;}wEj1fHJ3X(*O#wMHc)TY% z8SU)r9y%o;dIUVCdLXc6JnHbJ&lquY(mWy%wC*S8bZv(3iyvCtH1ay%j|uqO;|U{W zm~RNULQTU0?vC_~9suJ@c;NM+Mxf?d*UDnEgb#kTtCI+#Jcw#+mDq*`0dKqQ)g9_l zZY!fkO7B}tPLrZGonZ8uXgaPXhPAArzU@Pi5~zroT702b%UEYYxUfq(tspjY&d3RD zby9W6M!N34&XFN53`%j_{ezu~QV$6R5JIyLO#-zJHr-VIgqG7KTCkUD&FGprm(pANqYbTas##q{F?`_W&agV32YTv#itEj&x>;LJ(LHS_nfD=fKQ) z5_(=|b+3bGolPcG_2evgBN+2xbUnQFMiS#HHEz>LvbL*nUgB+a5Ksr?nal(!)Re?a z*sX9+OTcD^nvIz4OE=bH;wArKyJ*Qq867yJKU*#3GCGDcEIOPyX zO1y~O#F5LS>CA2F$&61qaP{dIl|fEo4=U7dQQ|mGFkrtCU+6NjIodae)@8}=@ePYc zkzA5^7w-v_C)25%sk0s~qy-wBJ{&iel9%y;4_DY>jzq7sk@!&QW=|ERo+|Q>B|gD2 zQ8uX}vrLL>k0U>Km8ZuZjQ ze$?Oq>M7Q4uC27#&RfY4o6&&hEFe30!k>jls27#I;K;MFgt;m#p5}+xsUnnF5xmyn znkO2N?hCy4t2(nEM`*1c`y1R-#F+X1srPLqB{r-^sUMhxD?wO5zv^#vr zk`I=$?c*jjQ5X)b;N?~9EC1>i-1n4>Ta}Cj9EhnkQgiqLj+C_glUg5hQ|~oR_i&N{ zCz!4dYS+mk@1jiIWZQ{-IL!fk1_u!>q1l9;4sHE#$w&NY-AtZrE*sl#ER8aHo%jCa z9d(rtjJo;fDIbWgV9Pgz*-U6FI2Kt&$11uD=(WFB5L?At4=`aH6fkMqv=pE@AL(wM z%ni^<0SR(irLfPuzGyRaQ9A$;UI67`mAD$Q32WJ0?aiSbu1h(h!+|QFwRbxVae(x8Tr%> zr-Cq*s)6#jXe;s{Jxc$4dD8{~#ztec9h|Ro64b z^%C80X{6}3{eQYoktmLcWrn@V2-is9Itkn$fomji(*d}x1bA-=aL56;9G)kDU37JW i6;vE!EmpMvh6kezTcVq-pd2o{r>+z?wvVv=FFLy)8@?0 zbN_zmQ6ickuLVe$`cwt0Llef82Wvy)me&L~h9avfL+b1;u94@X6H;0&#P%7D2QiCEFGNqte773O#RMs&$ z8#ZjH1j-DIQCHbGlgW(ATLt*MaA_!+nEJVtOetFG?^3E)%5};0N&{WWq;#fUi!19w zOPgwoLy?n%#X3^P;&4f@W>qj!sr4w(Kf?}^LWYLAG?@BepvH>I2BxgU33o3n)+Tl3 zs-k(pnv#>kH8q&ksI?2$F34MuLV1)QpwUd}-ikIgR@RJL5^SuPINznCX(Z-3Kis%H z5-x2jX-uK9G(JG%u+rU|q{uEELlZFPU@>@bMuBiLO`<6Qn#`1$uvH7O-*bZvA(xJ& zsZ4G|b5R8RV6SzqnTgDoGzTNts$`l*GXjJOL>aUq<2AZeKs~W}&B2-`Eb=6p<V6&B3c}v6R}$fbB(sUw1kqF{GRY7(=u8Spyd$Z1k|`>x^xn) zgc#O?*__0|Ji#w&Xbd)n?5dnXrv?ZDmYqQ6P$ZX5qt#d)?E`YMcBKx!)}_-`(%e!z zxuW8laJW<(&UC3Lu^||#4M%ilL6?fP!Bekf;RYSLRj#_W@2GQ*oI(DgPln=)dmPyi8DDA$)!4FAgOzdWmNCdSqkhC zokx9?-(}R`Qlo7N)>YOP)kiAB5$w3mq}iqQv;o?C`0Bz|03~5{H__Pv`pKa@9g5`A zIXXy6E%X~IUmDtwOsCMfE^VRnF!OrPWb{8|4;7X$$OUv!fG&h-NZi6i9GAAz#h7<} zZINAja6UJgHqoUnU8aNk?1JcyT<+3#g(TTIhw4h5IfDoWrTXeGZGAYR_BuefL8rP6$;!q^ zWnKB)rplVqP$Y?diV2QZCR1o1-JxdgPWTN~!I*pSI!w=7r5HbR>2CTt7zx(bV*!|Q zM-}G%2sui9dJ^4>)hyDE_iM*CrZGn%{a*;QV?oBQ4>l`}11>#4oml_Iu*Veid(@9d zpPoVw(IWwR_|Q#1WLaGL1w9JEYQVmfTEY4cvo2I(kGb?XJ%N?7=sM{{iHn)2!omd$ z7O0(CM!$0DDc$~<{s(L7D}v69p>L%)GZ(+`qBASIWtTdI=UjT8UVz(J1rHpK%&Q3n zBNzs5Lzg>`UUKPWdIdA~+Lz1$%V>mCQ4AgFHJ4sjLmC?iR-&#{yT0MloAeg&qol+2 zu*Xq{WP85j(*LMTrA2kSx-MK&ttMFg&+pXNyoP=`;EZ#NOj*Wm9n@96REHWa}nl zbN<|=FX(UZ(jMB-E$XJ$*wE*<)7m;SDcoYGuWT3c>ioPxh~=^qMC z^}zL&jU`Z+W%MtXzDqz?RRnvnSSL9G%_@O3fFEDi;#)T2@xp5Nd?M;(*IZc9E1|k>@9&)|}#Usx>I3pnSW&g1K_Y;*MS_*>R&Mew(iIOuY590LD1iA!A$#UYy@xbP4fm|{uhs(ApQO0~0HJKjbMwgpZOM29YE9)9d!gY;UOt^ow z&G7?>b=F0V!lPQYt8fZlfXyvX!#fit-Jy$I-l`hWe_X&h2seR%>-M3ToU~kAP(v?{oP!-PBYS*=YQ($Uk+t zmHd!`a3N{+U(Z^@x}wHlFm)dWGzdGsoJiO?;or_bZYQacW(o zGxu~NxC3r?xq}bH^>t+kmN!YAo99F)ai_}6&^7xI1(F2f~ikmyPyz1dZhJx@&~(A zS_x0nb9vFJ;YdyC@nvNYJe&`hUvbGterL{XHEN6ab(epm;^IQkipsG44HY3AIhfyc zDL_fO$8Wp*j&4Lx>~T@|j-~K#`P~5j&W4F`b@h(5r-p*{;X0S!SqPtW$kR;y-u8fgOp$bygp{{E5!0 zcQm{>B$7_z&u~1760{wo8kWR=J&a;gbfhn!kI@e0!G`){ta{HGPdGe&b!byux&Q9+ zH+I$Hs%oRaB>o53iqdK-@)|9@B>vZrTjJyny8OM)s8?NRLt{~CB)q;Z>Zcd+zg_Oq zp$y`gBw?6`D1D3O5f=lE7+u~J@t98%U#xD2NRmMJJc^qlbiHqGP>E#N1H`Ff_6U9xE;fhVHBq4o-Q$-oPP_^`NrLRsj z4dy-+sjX~isD#n?&PUSEm2A5THlDJlO7CzaIWiz1xmdu%l&(;%vMU4SDAfjy!sh7N z`D6&zf6N&a8p27@ARUDNf%;&PiXk{koSC&r^MW?Ck`b~ zmWohKeMtp^4AtmKGTD_Wax4bb#v>j6y3hS`oJ#EF-y$Fq}NASVQ5A!I3Gve8yo3S|+@ zLrG1rp`p%BBm+baJ9Q?>Vr-sHdZ{bRtlTx!sl!I-vq@Iyxhy?NR)SNHlcGqlvIe0M z4%u>wE34#GFxk);DXFbTXmNzI=Z}ZXD@+n(bTT}G4dWu^MHNl8)==ty*+;xee{ z8L&SwJOE;dDj7wttW$p7D1P+l=x8+{CD_`-Cwr)1F3?nu5-M}0TvD-8HtT={VYNal zU8z#2my1Av4sp;n7!R+~P+f^B_m1jsUFphDq&XCcQoTTs+4-1O`)3cbz8Wihfi&uI zV6`(B0V?7tS?|gQm3vbbZcdR+a&|xvZzZbba%;*@XexE(96A9@V>JXxK6Oyby1`FZo5*?SOI&pQc^nLu-9VunruO8(i&gAblO ze@s8^+2YDB?P-u$*7{92@X8Jy;ue>0p%b)(6w5-dwAW>ySGvvRLa&6#C`>2lMDK9r zPPq%iM?wu)^8tyv5LIn$396-s1-M)82?%m1ISEQ}IGQW>+C4{ZwFK)Kj_3~D?@F7l zbEdb>u_n9V+TQL;hqk9LESgslDyg1Vfh4fkirGBi%21E<2VLpml^%9wv{(9tE2Z9S ze(B0%I(AA!MRJgI@8FH{$*-KfJo<;v6Y4CXOE9-pmL^x`m5{!2m) z4M^)U=Y^EuXhve6;JSWdXYMSaQOM(s9)qY2$utuY#6d2-2NoYZ(CboNd z@~B7ev8r2;vckH$5V9(;FrkKkymF`^iXKQH(?>dz&|vrs_z%cgvIbfxC2JsM-?(J3 zZ(K3hH!c|L8z*1;hQqLLcuM=mi5c${y?(&E7pU~6KA_(hwQ6$kB%1Dj#J}34u2}8h z*O$6tKV|(0lKmq{j@eHG?nif_qwwqtR*8n=h(3~rA?Gs18H&{YQ8dV6s2dy{A9x&U zFs{h|JwQXcN%$?$>*9I{AT=C_$*OyRDA&KmfI8H?{5Hz&q)`ior(Smx1*DZ6XY299 zJ88^)J_}IscTOZvblvW z%J+9r1bAR*b32{y0G6eg>2ya2U6P+pcX!aXRyw1N1~}{d^^i4`?$R}1q7VFF!LUz+ zTP&iP+BI#m_Dnm@b{u9QC<9VpAsH5eG9YsRfed6h8CR(AWLz=TvD3T~I9Knyg|5fj zTY~N2F<}WdJDs%C*}QH_V6@jEl(g(ANv$-})+cCvg4T6rH>I7Z z^%J!oNGqL^)JD5U`|x;}_N~si{Q+w2lXQUY%DCqM-Pb3erTr)!ppFCdpzEd{pkIQM zCso#y@>4tL$^6x*VggTBfq^HrE#nz9Cg*276RSUqnV|kG>e>EI`ZbWkEtHw<*TUA} zb=k=Zei1e7x(7Z(!6`8?M8pHHQE;jS+upBs(r?i1?N0jb)~UWMU+T^lx=<&13!RhY z%XqI!%UkQTX?vEly*IsIeZx(Z0(L*BQeei1U@egG;Zz@}`~k?2kUuN=PxSHEQ?vb^ zavz_cfO_tN`vYLJ>XW+e#?vQf2 zQzCSiG~&IU?v~B;bGel6k!^TiLHEk_)GoJDhulk@@(BFlbM&yhN{`4p^b2{Hekp&Y z$K-2zLcXUbO@N*<>GZV8rDqK;3(Q!0*-WHY%v5^S6wqtdR^9-21M5WxtqUuZZ}g@V z;lTH>s%jwx2fsfOj-=S1yX0D|BWxu&xS9Tql8@5O80vy`^<#CAh`_!D_&zd>Faw9? z$Ks_|;-$Cf7_XIvm|Pb0O{R$^l?_TMG+(}B2k%t1$4F%7bYb({04)kYAn>DRSs&hi zqOo1nue)7-)SfzD#vpuBw}c9L_`PK{}C=HQ4mrj}yjbA@-21ac|@KlEsJB zr}?11g=)yzzj$;zC%4e_d>ETJ)b(X@uNB=@lgVibRmZk)`ifQ_;T3zM`)@q_e|qX& zmhnNI=jZ#RF3=Vjz;B}Ouky|5Gc(|6^cvRI?Z!(EaEj7!@jDfl=Uh zvNCb}FtDe_7_Z}Pk6}89w`@}}8c)ymnemxC6V9aviYTpUr9K{T7J8;w;4E}!#6JtTeYA(c~+l>1Wd=b5edz=puVEqa1|6`c) zPY|$u1_k~LZt4Gu$o5NW#vR>-^bPLV|4x_Cw{!(A=XTIP=?3~2?SWCc7pCV?7?>Ae zT3*8Y6_}1UVKm-`x%i0v^fd=qIGKBL3J>5OJO-s%+=~}-8ZYB?F5(P6i!*U^(3{WW zKD?Ft@)g{luL1UM9>hQA!F(^?_wx{bfQRyfJd9uAkw|Bb;*U5F8N{RcYaS01FdnJ-|$LsS~tQeX<#~7Le|9kY>0Xe!O&Eb-k z5r~^Ty@n7h@I;%#2nW z))cn$(i|vU)Xup%CdvV3(@{n?Je|M6M=sv&NczYJ@U?Kt?a zkfCu1@O=sy7Kiw=d@H(FYXssA;*E${HX&B|3H9Z(=_tf_$MCr{kGIe%d>*ak^Sf1- zPG^E5>d)z1i4v+PRiUJ(o71@(B~1mK&NYZ!92|fba4ldyoLURG4kf=`4P=@Fm^jix z-o%}Di%ur(FmJsiE*kZEF!TI&ecWwveYZES_ouF1q5o7gH9n8y&pjGm0VkJsZaDe? zub+{VHWhxVZ?t`NJD=@r>EN?lsdoY>?cbXL%SlTHYPOs4WopK=af0=od~Pev&cUIx zg>q9f`MgX%|3~eEa?%EA=Zp_BzRY+glP@@=zpe0v*3nmOh4w8!6jHWr=76+;dnilK zT{ueY&g6^ZM=P}KqvQdB%`H4BHPy}JOAn#l$^*T6>?8>C%c78N-iW0?qJG&CsMDJ` z%KeBsJ?61`c{lSOb-w&RQor&@)HkFaiF&a|{i<&2(WSZS|BrfqEIF3uf=s^Fn>)<1 z?wnV7G8Kz5!7IONqQ>%7Csy!93s3&IEAP~<12g%Cj2kn)wC%j}M`(K7g|%!c-+|+- z*J@A0HnpJ#VueBWcB)AQQj`RU!}>;%cxPN$IR)`B@uif;m(zT{65mqppi;hys`+Y| zwrlB196PSVMflx(1MTM)#0k4##%`ofkfc2b5AX6GL;$yP7Vm|3zm-SuKAyn0@dh8 zIqw&T+Yu9V$Ur_I!|)!#56IEnDUFLtaLK(QL z<7yqrjUDrcx)|2Ee`qG(gMzC}`a1Yt@JEG1k@e`{e%{Faa2f(TJ+y{m6mE6%%8W0I zJGc*MXe6w9g?!3DRNHpmNIg+)N&?ANE6q&-6r(vPB%riUS&zDH1-Z^%@;L=#V8uFl ze;Ypl->%u2v^IVS#cgRx$m@+6-NwH#6YOJ*(uH+zjvvKe1OslK9H_-lLs`VExpTYS{{PwL=*(J%Nr#0@{tule8je6Wi?fD8N*G2*}U z;u-3o7tWcuWX_Rf9*%p0u?U+dN)Lq3JrO3S@j^-GlO==KNG6v{Zw{l}1Qj|*vUoEt zeFwph&eTAe&y5QCYKXE1!VErByb_P4g~+<3L)FdcYbIW~9sHK9C0Khe4LjX}6I_f3o-tq- z-I9y%f0Z@{va(=0`F||w-$PvBk>M>-4Opl7hq&WurA1LB>$Ve-{*-_;Jc?v}_mPo+ z0rS2tEon;!twY6|q+8a(9}Q@sX}P;-ib4-zFM*{`%%!tWEZUdpmnvH-^Hi?sRhC8eBiZ3cLH2~2LK5F;9J+hwj=+L*6TJ(1vm{>%%gRa z_TnG*#kjVsAQWe=m8RMJd0eJE1W7mTnIRT=u$ zvmD^w;``Elv0pf?hntNBY89g7q)qlPvd0_Ed<7y_)eq@N#}@6rUty5WeS}y z$I_)T6-nyjXeY`y;vnBD(~)GJfuwQ)lFHMOM4m}6$SitYX4AVehu%l|Lzzoo$no@p zoX9>zH0iR0Gw|*sOSvC1AV60#(xAq%pa7b7!r3f`y5IxdzVM-T~Z zM5g2d3GqcJUm|6Et(5alyl<2WzE`RdP1PV;szsz!jR>g`QBgC$ChPeF*~s6@Chn4- zh+oc@UUH6PpxjT+m7`>fjFR&tALX%fzD&cn1O;-TEW~?}TqbK|o7BqX(k$EMV%Z_r z$W?NSTrEG9ozfxK$s=+-Zme&RXHkAhTI5Z90`RWfC?Cm9@(Idc0Q+0nZAkVQkz0&U z_L_9L&1B2%X0ZI!jFDC|S?(~$0#+b*ny+I%g~m@awN@yk;V zZo!@2^1PEPFF2#*MQ0r96XX?Vro8IRmDij_^15@9{Kh#`-f%*wSKxv`UF&E>YYUwr zk|L?7o#~{CixSfiXQ6(o3BQ-;%+}8Uqi*yB8i)*ho{jOC>}_Zt{rf0XJS}D)~P;4~}-$ ztIC%D%wewOFs|NSR!9CwN%AKo4L^cve@sK=Q+$W=8BLMD&~)7OERoOYB>94Z@;9oN zzeBaZq08i3+JX1g@(;R2{)u~|gSZ#^o}Q5(=taC=mVeW4rHei_hW>6GHpa&pCO|Rq zz_vsquPHQ5hCmdUu0{q&j}3yqH;I+>zI-Yr4?%`D4?*FOF5DP_%p#y8U5R+jhF(X8 zj)XYiYZFf#Xfx=d6HU?GYUg{sZRgvcrV+^VWy&zDb*`Fq8QvzNink$yxZ4Y_ZSans z-uD6hHEuM$D8-~vs>z^SlSyMtZ<=iS+Sz%ZD@=*bPWg98QuDwIzH;$+;pdTwLP*Qm zcDE(JUBK!sJT6a36AdX$oLi4&S{(Usr3U5`~EJXBq(H00*fwKlJdm|D30z$ren8LKRuhPsxI#q z&|=)Ykr_mpW-tvkLujlSLDS7hDm0_$6kIrl%xJ1L`LqG=pWyQG5;Klk%rSH`E+KC- zljt5ZnI1M%a7lSAy^TxB56yA(jhRMWW;&;t0`7-v$wAm8FV&bG-L~t*-YP>bLpTtkHwtN0doOonhQDCT*Sl8R?agQ^B8jp zA8RhfQ5u>W7Q)@8N%4eSA-SI6XZtC#hHeaY;En zC94NyzAh&7<`x)4_*q#tdOyFcQn8=kFc9upHb%A|^+*`$6&sf4;+jLws=nfyRSB&P zntaLWZn{u77Z)8*bbIJQQEWyg8h1O0y_aT6Q-?IeRd2Mi*)E%L@qtf8+9;<}&g+zm zloder!cuQ%23Zc|Vv{LeMpv7PVGQeV>!^mfsU3~oowOke^>X5}*%=>$;M2HhnkCV7ebyS#nBTpw-ltT_LzSobL$~ec zvB*%#b=946L#NybE{05&Q6l$YL<#b7)&_7MR0j+Nxm7CI{GwT^<<%0!+{9`BT2skbr* z86t^%!AZu9)cTqm^PY6>2mWp zU1^@7-R4<(#5_l@ndj+`<^}rPyvWJsb?$3^!$a{t+PukA%v(Ioyv_5?JA9(~EuUh3 z$7h;%x!kj z4)S7-@OzHo4;>%>*$MEcPBMS)r1Doz4`h6LN^d7!209rs%IPCBoxZZb$&#gxmzA<^ z2uB-xjf+1I`?cV20pMJE$Xt8(<=uGYQxDBD#R8$}MSYtiC9X$XkO6DJ=(2q@+nXcUqRR8FfRe19pabi}{eMolGj~$o{yL z)#MyQd55AZS|@|8**m~s@6N|$41jpId@Wurep?BPbMa%2Be(A z*XE{OODcJWH9eMGrBK=#$`Y~`KFCnh>?OZ3DVUPfM6h4WDQcp<0xKAn8^9xnbFwPM zDOnlCRYw?BHCrRgaV4fjw07^16DzUGfm(uP$!yw1)L}K17)vR#sxj1BV=#6-9& z5~J#Hj&#HmY!|VEZ&sxwEtZtyk?5$VWz;;k?G&+#+Z>j?JtErCK^n@+IfB$+CCMb4 zTNJ{j^4oKw6I~AMV_0t?P3 zzI|B4s|XXD2}4H_O-b{62sv>Sy$z37Qw&pJK{dlm4~$D=E<_+XaDk!DQd`Mc5mCg5tvqFp>ufQs-?Ul$6iQc{G4BQvZkkOKqCg4q9!ak}jN?2yh@8cvw&GC_s*R(zKPdpE5pMVks41ZSdsG{o^Tl8R+uYBu%)vD6E?}?W z)E$^cqcQc_DH@-an;9zS5PE>^k8z}c6J$7b?|n2q#u&@DQVO zI7N_?3y6FL1l;THqs5HRmreJJ>G*QfeRwR^mRT&H$B4U%fR`1+5c+`q!VsZzw|s&s z)4#O%@>$lk7^q?vwH&CO1HH5eROeWSRXK}~D~$u8do$R`r$!l`eAJ^+DIsI)jAxY2 z&lx-xFf{{jkr2AD5OGq+J?UD;{q}iW;R|ANijM`f@jED%GBu4YOHbDujy`vlNk2uJ zda!s#hbzv)UCd%LvlO7)s`O%y7f5-*Qh0p2{ zqIomTy{LhY{tft1j{s>oNK$XXZnV-DYdd{Hc3==~NMI-Rhh2D^EO)U7Gw8sl*o)8U zL-h#zFo!P8)B0=r9{qrB{7fgG(wF8pgz-0y;2DlGCw*Kz=w&rH!F=drZS;-Ug;T5> z1FR3H*&xoa2nLx%^EkEpJkGJJ)Y0$YJiANdyNIx9YT_T#_z~jlGsx^4472a36aR=L z`xPVXccj=KP}yI|uxH2$<+voQKwhZEgwTXZ!G|d!h|5AJt_a6*Rp`TYLBdTTi(A43 zZVT7&j{cf!jTdXaW_r80ft&Q6ZxL&&P+i~fFV1hav36G@^LGT7wX!vh0iyOcnFYK> SG*LGuGC|>Zmoa(=P5%S;44f?;17g zKk-3*(HP?o@JAWX0wQhfPIm6xnS0MY_ssnI{rx9^HQbCMB#?b3J8G@il1HlexGP^M z_lc4{M=!44iNZX7zM=h{wyir4nzH9BS0HlF*0z6Nz{ury1FdPea$Rl>yAJsH;JyAcEhjxrTo(=oI@sx^Ncv9dK?#Uk-hvw zt#8^cdpXAUgf=CMxR>IX!@NLZ#OsmL%C#E;rT>yC^V{c`Bzh7ykl9e$rwo%}fBO-L z_hjEw^+T5zN=-xiWr68K@*Qtk+fLtYs7*V#kJRLy-wtGDryIJ_bv(*iResxP611$z ze7!3@PkFcsa^MrfVCF^BkJ7tKD`>;ZUlIGvMF;_POP@I5{V@X z$<ri*`Th6DF95T+W}ri0;IXr#W;11H zS7q*3ohQnFpq#y$H##$8KtH*@=mqN)*W0;Ma`pn{3q)_ao*Uc}(8eb=1oVYkNtw_P zw-7;8AhqmzYPGSurTlegtEvRj%eA6Y-Ee$2^jkqasJL~3!R51O$qGcuD#+ax=oz12 z;=YrqI$k-m7Wl4L&c@Ki?V6((7Ag*74UaYK?Cl8jjkot!CASz9g6zb@IC{}%;2bl~ z*xN!s&I=@udKQ*kpFB>?dPA+Ryt&C@Cde^orG5 zo${@ypi(QbY0l&13st9HS9OelGw}N05P8V-4SI95f;KYw4Y4o$>3~TzX(3)g=VF4s z)l8yI(xW;^5yJ-4v|$4+EkDyV%fs#vuiHwsx%PBh_ zk#lxFD(CGLnGP3XVLTefjWABvka0U7lct@QQJEkb(jvxWk{FkrL{p}S2`Pz|>>?&* zn%F73i7DAbl(N@eoigOGoR_z+Pk%+vcMRyCj#-Q$P8M&_FWzE^-y`u3PiYUtdpr{# z@SOIA_;|>2vdN^ylAJJvVe;(9KDEC@T@H}OW&UY=uN>|%imS9bFC8$(&t!fmC7*ww Cozw{c literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$12.class b/bin/jake2/game/PlayerWeapon$12.class new file mode 100644 index 0000000000000000000000000000000000000000..22faa23e3b9d5d00908335f4c0b94627adb9d086 GIT binary patch literal 2528 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$16.class b/bin/jake2/game/PlayerWeapon$16.class new file mode 100644 index 0000000000000000000000000000000000000000..86ac75b150a24fd308dd3cc134d17cb400ca9458 GIT binary patch literal 2464 zcmZ`)OK=ob6g}^yXF4|~I~qbIR;pM*`ab&yh>&(IX9%o96+<{~Xl^Q_xq6D^{6PAI z<`7N@Yp_nmT845TO5sr8PTWO~OlavmImEg`SdR@V?k1;v!hZS%HsT%z)y&0C<+V5| zk)JiFQ&CGK`jm=s2y8+@Vl5S?0Q}{qFF@~vFO8?KNr}H7P2}KBWh*3 z__3}qw&H#j_ss{Ecg=Kj53#Xzzd$Pu^DL+A{Z-=Dpi`g= z2Pi=krZJf^%w&q9XHf|q6*zoFuSj3d+peX%~rK1u8h*m*~%=r$~<#Ci7H=4g|F zhjA3gRUBie^x2eES?EuJM=(mU$r|?xo?+br*tr6ipwXygvJxi*G>lPNlO}bxKVsSc zF*B339oZCN#F0=zuCDSKUmzop1hqnF*fCwBeaa8Z6cTts`ddnuM#3Q`!sOeN0#D&Q`BrGlUfax3jH_?M zagpF>1TM(yLXBq*_)S|MNf_5U2ldThsYZ)ym^DJAKVab52>Ek_G*1N@3S^eQcg?CXZ>ALXWXHD|P zre5f@^t7F$8@tDFQ#P3qQOh!%jl!k)3LG^yAAF1{TxVf!uvI+4ns~~~X+m0On~OP>vo~;=vRcNfaRn_@ z1=Xw!Z_=!Uo?Cc}-U@wde#cds1<+4LpydmTX(k_pZr5U zs4p60`~m(b zxqhg9KIRzV6XH}HV$WtUhfDv6Jyk~ex*<^cFQF>OKIb^uldzG_wlX1g7!UjVCV@;( z_5)Qv^x090YVB7ACL+E^N6wDd_Z#YojvA61Z~E;>SGH}#G+ZyBuA3@sdrg8?4VkaI zG6+8>R^&<1h7II z0oeKMCz@e;gbu4amTDiR<}o!&{eTn;0E_V-&PzMHw!JynB)7M2CbIeLTK2)Ml`ok7 zhC=M)5p;pnVZA}x@{zLw%vvGlX&0>ipxp8ha#W7sn8#%nOrt;%7DzCMJg#zQb1n{W TmvD_X#_j{x`8kY_-o)_-{FS}F literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$18.class b/bin/jake2/game/PlayerWeapon$18.class new file mode 100644 index 0000000000000000000000000000000000000000..c2bccbecfc80569a64fe6aae4778aef31aa2fd0c GIT binary patch literal 2817 zcmZ`*>30)V6#u=~Nv262(nbmtx4Nf7semF{6)6y{wn!}&3rL(MlVsY-Bu*x&b-|s= zBI1GqZiowrtTn9>m*eq^9{&N4#}9t;Kk%F9sQ1l;o=Fe3P2P6j@80{n%j+-yoc|uc za-3Je85WIbqx$mBjF!_oH=5eGZg1ALLf*P=*(w!E{rP&!*_1V`(KRWp;OI6(@J_=r zoVytsV(o(r%G!KN52FDgfdGOGb9)U--%!d8>-HvX*wh)Kz4@eO4r;a`*R@T>$r?q5 z%X|OdmM(@sMt6GFG0cm#lVDlvG&L*JIpElamFa3kGpQSMO-~G`Gl{felez#QTcZpM zVt#BrWh9-1)78F3S@$Fm!h9@Lv4G)Hp8@w0Bi&k27ih&IhHy&PoNP{Wl39}Tqb19l zO<*Bhjw@AM!O-kO@eT#9LK|6A*31%F#o{4cgX>gWON97@Yjz1-j~j^Gq-p4u!!X~k zE#vLF3S+oQMLRL#!6RMq7kB`@w3GeH>jxQXmN;CuCS&CG?X5PvL3W_pT36 zuOSv234$=_{*P_m{bvQ9165?CoJi#|iGo389mWfINyUo{mw4p3ru7=b0xx4HxsbFq zE0xc=-7c=IshP4%V7G({dr)@XG-YY*6?hfDQEF><=Hx~BVWfp>hm<(bUpLjs507?lluEUO!ttRu;JPvCugKvAucqZ8RK zHF2Uw=HL;5k8qUw=*GlGJ3m4Z7|56GBr$kxT^`Q#n63+rN)2|iQtDMO1dxnvvl zUKD|2I8GX6XO=CRlCTc-LRXfUJv{^{X*?nDg>1iSDwj634CO?O<$q$98EaF^c|)V{COyJ7@@WBglL>YD@shvrEdw)L8Am{h&G+2!MiTe!C&xQ zZJ4n_+au$7N3OnSaisz#fBU5-qE+(<3g4d#N4Nu{~lITQqf;JB}HKuk}@vc0l zk2H6Q#OIqlJ(Ho%PVXPpJpSx z$_o5E+rhtK2l#hxN^PUoOKDR}DLFfdQ-O3#&ie5sm5GW9`F#(9|I#zqsDi1uM#a?3pDc`j3GE_BjE??B fe=PDh>2AQZTMl2LN~1ze4fvWqVX{-!3;p~Dz|ONf literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$19.class b/bin/jake2/game/PlayerWeapon$19.class new file mode 100644 index 0000000000000000000000000000000000000000..1f5bfa1312b4649049e22bd463b34dfaf8fa71cd GIT binary patch literal 863 zcmZ`%QEL-H5dQY=(xlhZTw~j4ts1pz(xSooAQ}<0wj~fnXlcPd9Ghg5thw%myN%+1 z@W_#h~#;Exh#leENO@3@_to%z0<`DTCr`SKOO2G-NC7?xl2uGlEI`H?8U4EZ|| z9|+!y)au;_X*mDJx0K%NNY#DPx4>FAD37*=Yh*HU3fwS}%eV^}DbDDe$1hg`MGyE>Mt zUCCgc!5x(zJl)=*bRtz5~sn|kkQf)HrSOt=7H|oa?u`SJT<|i+}9iuVzv85Vel#s^H zh3-U6(xa-VuFa4qiAYcYoj~^q!K$2H4Z&@)hQQAGAIOa0h8@=T38;Mn&Eeb_dVq{M2KjYA;}`t<{=)$l23Q{8 z(q~+C-k;Frs18^^khOjyM|RQrHKbk|!N=4@gd4a?%u|<@~Iy5t2jXsxRrdE3X E0*FkwO8@`> literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$2.class b/bin/jake2/game/PlayerWeapon$2.class new file mode 100644 index 0000000000000000000000000000000000000000..a7e60c8b760f49468a47f8f1a26054dd81558f52 GIT binary patch literal 2404 zcmZ`*+gDU|6#jn0nK{F7R6tQd%So+3K@`hO%mfvq06_=^tnn~&m^m!nup{mub8u$I7_-{tJfxA(XA9)A4i z>+b;6;awF0f$~9p$f&DL>KUW9J*|%$_8~(b&RXm1R44)!zSsLKrz>SzLk$Ui*fDH@ z&`#4bom~P2l~vsW%ARb(h@b$48iEK3ENL+b5H6Kd7Krm@I&3grwRaQ}MM6XTjRzN)tnWmutNIVG+GL&Hjx3#eu;b}X+a1VpdW zz)TimHEvXK1Ece4&REv422p{?h-r+b3^SQ>sMj39TC7*GPN2k7$vbAcwpDjhTlZ?X z8Mg=&b{lagYj+w{2v_zs@u#X=x~kMrg$+!8JZ%~l-!AtDl=N;HQX#6bNkt7)=7Tl& zUPCQ5Gn$bY^C+na^fgIXbsDzfHUX_cUV9)&P7xt^zaENh8t%Y$#5d*+X9QXy`;2b0|x1wjKr6%)>rgdJ=hav&U{X4y!mMuyldd zMm=X}=s_=ON}BA-d6d&_%*+gDZCS|?9KnMs9uQdRGa}o2PDVovM_FNqY|}9s#~sG5 zR5p9O_G^gCf(@Eh!Wfgr=y*ViM_lpF6y3;PNog=K$Q-gAa%S4F;)ZOAMyZn4kby-H znS9zY<9d!&8e##tKB_US;TSkR0>cZ7XV@J;zT$B(q9Q-Pc;*Xf7?pU#$-FgSGfG)L z;~E~q!^GxIk+!UvV~iEoNxzG#8;@!@j>p&$iOfJ+PZHWvf0pATy6x8U<9JfV6LX#G z4o>f-hNp0nsTRfjH|L+B3_#|u^yNp z{|w(GXEqyppA}DMbDY_&hLg(DkJfBihP@}P=W<34Q4lG+7w(f^B0Q@+ZRIMs1~+_# z@D*+X>_ORw0X|=W!k0zdX`T?*MLY>C#u7fIff}yTKtXBo7hF7bX&rdgr&=(lT8gEf zYG5%9glTPc=-W_FK~YDK!cVZMqjkZ#ZNYhmvhX5UJhm-V7AmehdTP5mfo11WSQb)K z+d|c)6{Qs$C$XwHoH#X&o4CDo5*usE6)}x1^2E>Wlen{*SLMNJ?5Zhk^n~_IqsiOd zTTt5Cv9UZ@Qx+--94>8Jp-$t#1nyU+(8q;B`Vl1~f(vNG zMKs}UwBZuE@D6(M9tQC~#_$17<3pU`dJZ2^`eW`s!6Yu@8+?i%@ELx_=lBg*@CUxc zpSUU%Oo<9iyL=t=IGN##?BHbGvM7+?-A?SVI1Yh$O9ZwEvEw8J5M!x5o_I7fo*Bt8 zOHN$4aiLQ9NToRAVC)oBK~5a_18{?af?}&;yO0AEuSb$=Wcz@sG`+ljufO-b@AVh| ze*7tbKD?oTGwi>v&5OQXT`P#*3#PUt+{;39Z0l&>aRpI^mXJN|i^3&OoXu;FFI{$O}dHz+CEYoAVFH})#nLnuQ)Dn2Uqp@lNenTD`@hCMYg%DWULfd_F=!2yC9 zilJBSDh}Z=5#ACabnPoL?hTH=b27jtN@o2K8Fajf6I96dc=?rB?79 z-LVPgC|nu-}T5Zk_8ZpI|?m{maK+ZQG{ zoURHTa|}w(q3-o(89Hj%t@dep3zncwTX9{*yi`Pdp-7!#_)Bq6k?S(HpAwc`)aO#N z5p5NYY>R{?7OR~R3A(qYKdQHp`sG_db(c+$CGChCe< z!IvIXS}U~br;*VZ>sUv8g(e(H`X*@v{}NF$*3numAEL3IR@9qlpsx(jO`{ADX?oxT z8p`f6I`~&1*T{xz6Lytd*#e=6kwTeeR$L+d1pjqEL%XpW@ zCt^33@wPPG#pzSgmgrp!o!RgkJJ_>~6L;`TXY3PXt~Om*$HkWDDlVN3bMqk$|>~Xr{cs#!mhX8u+(3!oNcY{~rDP2Mq8Z zai0H#Y5p^E{1>=1FY;ee;=kc7{yT2*KX9A>i4SSM#{a@P{~Mq2`vHe1%RE&$B*w4+ zH=z9M$2o{4P-M|u!QM^ju*Xf_6 JV6uwz`wwla_R;_V literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$21.class b/bin/jake2/game/PlayerWeapon$21.class new file mode 100644 index 0000000000000000000000000000000000000000..fc2f7521fd22a467408fd3f6271fb68c4fc2dfca GIT binary patch literal 1570 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 LG>YW(qR;;T8Doq^ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$23.class b/bin/jake2/game/PlayerWeapon$23.class new file mode 100644 index 0000000000000000000000000000000000000000..a75819b198858e3c3061b84b6a3e61cf57aef645 GIT binary patch literal 4145 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$6.class b/bin/jake2/game/PlayerWeapon$6.class new file mode 100644 index 0000000000000000000000000000000000000000..c27548e4ad3ed6e0e8416953d81867d52d914bbb GIT binary patch literal 1182 zcmZuxTTc^F5dKatY`a~ch03KAL_}>tsDR?76y;XZ1dIs;BRtf@_PAZU-EDTaP5dD~ z`09%Tglegq-S>a%zX3BneXh+-`{@#SVd7nfMN1AuZh*1#_J;Y z%;0Z?{ao;dWzMfl2r;C5+k2*aT-D9mR)sfQVKWSD=%(&&G6XZ(6Nb=^RS`0Rh$;wU zfMNJRH^tLt{ao0`{M-->BL|ksjT3I`p5J>Ja;v(-Fm>Ro)lVhQ5Y~iS+GR*)vJ}_i zIfI*8?#Q)uQ_Dw?U>NNZFK-*%A$sMaZd1iDftxjk@r)l{RCLuXyZP*C6jv}VVT|&9 z<@f10wz(q|Okk2ht_bc{>)chV6z2z0Tihm`D5fwiA#JD%-|{!X>p@Tgjg|( zYq&09j$yDHyl+_N+;9}k;|4>lCDgUDW$T)5G6c?wGHxL&Awy00!2KtrU;&E^N`LF= z|F(QqES;9JCs8aRCt;ap;sfoSi-J2?q4}zYE=-qU%-^!secS1J4fiD6rK$KZF839z z<34rJ_;=tcco2H|g_e(Ay$;VgM5xd>Vr+u$Qwm8og%nGZs;5Z6)5x)z4v7WogbMXY zcu$*nOf-fF=Lrf#JBjJu(-uY2cP8=6`_=@pO>O`?*d-exSp$3Ymnqq6n|^-)VkrJA literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$7.class b/bin/jake2/game/PlayerWeapon$7.class new file mode 100644 index 0000000000000000000000000000000000000000..b0ce3a0eacef765c8c97d1172c4f976ae50b55a2 GIT binary patch literal 894 zcmaJO1cN*@OFOh{m)T}_YvQ{< z#|QOAV~jt*A7wn-*18yVCp&lU%)RHHId{JQ`0@?FHrC^a2rRxbdvd$dF)wB1xoy6Y z?h9%59ksd>hc1u{9q%dsxNE82bCj$De)0PG_OeGOTOkk#N zDS0@!JeTgVd2UOAOxOLpbc$odlA7 zbKuG5h0A_Y)5uv(VETf5CtJpmGjLmS-wOIM8`k+=pewt!r&_k-QP%_McbzstYl_Tw zsjDYFR^U*0I)?H z0BD)?dzw*tfDTazrD~JZ46@_Yw@9!6P>g*wPPKHlajK{Dje}_5B^rkt@pK~nAicA> z^$~NQk<;Hz@N?u3v5u4|@+Fj!7aJ(hu8GZI&GHC$T$2@W3%6M{g&dW*LzeT%V1+A< WqcFr>#a&vRPXJisZ!kW%7{8xf#=Cg{ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$8.class b/bin/jake2/game/PlayerWeapon$8.class new file mode 100644 index 0000000000000000000000000000000000000000..d1b0bd78f182e628cb75d74866e1848a1c3f9b4a GIT binary patch literal 2838 zcmZ`*Yit`;7XD5=o{61X>ZDGeY`3t5jhl7S78=; zo}^?Ky6o~OEU=V?0x6G%h24Mz(o!XCwL;bYKuA?BLuUCo9re;n_?_Cp||FBE8E)dI;NG~R*QPV z%Ch6BJ(ESl>CEdT_A!+(9X1wTM5g2I(BnjJN1$wuok~0)MQQ0X_W#NNSTGA?MPQ@ zaT|wt(yKtJH8)vwM)I5VmXrEK7{9_D8rE~1KJ~I}3%3RC#IFhAl09x^Oe;4a+F(G?e$ zvFITxRdRLL@N(1!#??L5u&Wjl*edncX2-2jhr^Qwwh3&S(Kl1omM+2j-du#wjHv5)TOUOJ+k+H?3607~y)R zIejcri{CMS9v_x1otsC;L4gM`#I9B9b?Z&Ro=heZiP&Hm!#JYhF!zKnL;kK4IEoY- z>$N-BNV&JVa@=(6=g;)fpxPd~?Wck6_)4{XCC?cCssD|5E5gXa)Q}_Gas!ZibvGw) z9Ne0Ll4)@sn!01%YP;`_El~8%(>7ym4IF_IxC_G>gD)3!H_a-SRRLl`cf9OR;2{ks z3H81R)83)Lq)c#dLeG!$#2UsQ1RlmC4EgH0aq|=oCz6Mfu|et09|azj-e{S^XkO2H z-SB6D$0Tx==$2VX6&=%dOm{MbHasElBu=y4V!@u^G*%4)kLT-@r}2!2zf`w-m5ji% zc#a#TSV(!c89tp7KFYHys2U6f}a|IHbUXUI;KTgh}R`dF{rVW z|D}RBuTnvvA@VO?%GafK&?ev2z{1rAEGu6P46*{1<-SrsR)+$0eM1UA!MeWQ=2=89 zV0FW~k8t}Onj|@k7Uk4AEHCdj4b5VUa%>J;X2>bC?w!Ss@~*q(9PYV*-LrUr8GUD8 z!|klBIVd#_utp*3KEhygSwf7=p|ANO4$a`Zif&e2n+fJlM{#T{iV^$Fu6Q7d%=+gp zVsz|GU!1*+2cyVKhQ*8<*COh9H2BESG{TYgHf08CpiQ}e6SEkvJ3Gb9rES3(Xpv}J zusPlsR2r3w`27W(;`3+f*MS3FRaWDR>Trva*(bT$9R9RmOux9G)El~(^y|7eRf->u(To*Q90w)@@r*k12VPe zZlsnS2yoq$_a!boJbj8yT<9%`&{nLVd-=0rD}NtsM>E}r9kdhu)DE3GU{WV+>cR=$ zyVQ+GDZvwD4_>Aurg%Na>l?gI)BX5>9>9mxgGP=~N(t9-&csma_B~<>&(%qmL<1pYX|LvgmW( ze?c~VNsb5T1E`gttpHl?UdI~@>1kZSo7m4S5TVa-p6LL-;pZ*x5d~Lqy0ZI$d4FeK z5Z7>`vU{5|wHr&WV+Rxsr14zS@DA`3I@IeJm}k~_O!XRn$<|*(fZ`jkqkjIdd}C*f a)&Ilm#D8LjSB2+2@Gd`Lc2c$~|NajRl(<&_ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon$9.class b/bin/jake2/game/PlayerWeapon$9.class new file mode 100644 index 0000000000000000000000000000000000000000..f63c15ac8949dd9b58d7b43bdf99bc043d0aa550 GIT binary patch literal 921 zcmaJ=?QRl56g|T(EG%fZ6m3iEcNM5s(rRNGjEUA(Nod!kO%3)3*}@c7=t7o7Z8Yjj z_!j<9|7c9(1NczJvp~sesx#TSb7$_Hd*Uh!>h}^Xu+q);AWOF+L>T0_tbts4>5Jp5` ztYkZKvv;s3-EC{HB?XeDcGYU_Sg!5+!$s9=*j<5{QXto#R0;y&y7Y<<1yb1@<6c<# zmgUs*Tb^q>^+FWm0uuw`mB)u2={{&#-9E=K!JVeSWHtydYj)MEc!k`v7|vi)!&yfB zBYgr>m=>5i0lu< zJSq|lJHD7eqGR>Cva;{8vQ#&;TNH@zlkaFr-)i^Vs$94I%8UmUzv(N?`mH(DR=Z1u zH>B5S*9cm4$b6OJc4ZeAK@NON=#MNpeU08NT0tA0|BC2mPD0Q*>a-9qp>i`$KQRcR zJw=b|V2q;=ut4hrC`scJ&EU9?4)H2*R2dyjVq$po1ENd-tf)u&hM^tlWyOe?W!2Ek za@dHP<%kh8%bKB^<){%iH?K#Hl(A?m-&pv9)HkHnkE4WXUI^kfe}gy3h__f2?{J&; zj(FcEF+WH&B*Bz8j|-%sVwuuhBJB*4xXhWtex;8)hpV(I-vn@tpU!yyrfk0fp*zJm literal 0 HcmV?d00001 diff --git a/bin/jake2/game/PlayerWeapon.class b/bin/jake2/game/PlayerWeapon.class new file mode 100644 index 0000000000000000000000000000000000000000..e45eefde5c9a83419e3da0c068fb81bd9f6b6694 GIT binary patch literal 11803 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 XCpj?Bf%y*9a_gT3Ho!M8&CmY;(M2_h literal 0 HcmV?d00001 diff --git a/bin/jake2/game/SuperAdapter.class b/bin/jake2/game/SuperAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..773a07487464be7181bebf8c9746ade5347dd8dd GIT binary patch literal 1282 zcmZ`(YflqF6g|@xwk%sKzsVTy%r3IT@}ZN?oqNwc=ggh`_2=7n0Q1<=5MvlT z3r|CW;rbze&#fAFs@AK$Ls9k_k~}zXGV~YKam%-B)-&Eb@cCX%6ewk-T(ce9UuB4A z%^ilsrdtsjx*2-gROrx=GH?w^hRzjL*ahlspaY!@>7wn3m#zAq@ZQJ<44I-^=CvK} z*>bOfI^sy_RMl@_0D}x2RpCG1V(8170ZS#K+8NHu*4gWto(A$G|AY$cjdb>|2sOE_)gU4_q!pIfo&JSd-IYSEKgVhxpk>}CfX&;keKboNtRgyCUV4*P#7ko^;dJ!Fs%mYTu;zxqh;4B!b@V7VLCce zv;P=o&E;^6Mjh85-FI6~WoA`J9&>UK?$bR+8JsKFkr@jH9^fI33U4%oLvCCpwk@kd z5{nE>mq?EdEX!F*`fkuc#|l<8JYnbwyn0u5>vh+$Hr={`HOWicdQBtb?~_wU;v++< zG?78oW`5}bs!0iesqJhvk;>d=sttK zdjjJt(w}J?Ll3RGI-Hh6g^Y?yAbL1q@fw{oil=fX=*{Jh(RYd)7v^E4a$~W^e;%~32Wr-1yVpHON>p0G7w~9T%ky!6NE1n-NR&v_aVeH z36J2Wet;G8KQVlU{BCCE1QrG7GmmIF#?mPY`A^h5u5@RJGBAg3EFev{KZV6eTN6*I e8CixAMSx+QcI3%#Ole>VCcg+2Vc4KGhRwgk6c|VV literal 0 HcmV?d00001 diff --git a/bin/jake2/game/client_persistant_t.class b/bin/jake2/game/client_persistant_t.class new file mode 100644 index 0000000000000000000000000000000000000000..6ff8815a9d3e8f0f13e67fa7654ac9462041a487 GIT binary patch literal 2869 zcmb7_{Z|xK9LAqvR~D9Q5-Pq#n3RZ!h+2lY3KF7_lG5xlECa*LIy=itW@@RY z>{LfjZ}xW5e(=<9RzqbS&*|5G%YUSQpp!lK&MYseL`=rbUWM7ogOtZo`$kQ z-f&HO*wIkcIXB$vu`}DMA!Zw%%{4VdM|68ggO<`zo^foOj~lXmLPP0@pl4P%eoN2hH7v~=mU?2)^o(&XVcHYiqvK9%C>h|I74p$^!LkgG)73)x5yP_B zP(!Yh8B;?-PRzQ7tq&O-ESJqpFj3Wcs~}%kI%()R$JVfd$C_0pE8jlo@nCUF&wIr= z6**_pa0fGmv|MsYKI6DNaitWK$FXu5o;@p1Td|;3p3m`2I#0p(?J{lC+pQr|m*}Hf z`9^1f{Y{3dDkHvp^*t*08M8w2i}s@wDL{)zcQYP}S*V zbgNHyP1z1Rquz+gZLXVtuthBAAtQN%9&fDsubGKHxuIfro->x4<%#$FUdB#qjKcfb~x2DYd{pJWrE!*VU&pPL6ITWIKV6yg`meDFLkGD@{jGSjWc0LBq zU9OI4It{7r*^xMgF%mHmspK%*VpbFh3fXU)t;GnXxWC7p8B?q{~YrUo$Q6 z3eNCSsGj0}SI+l0+-{;z&Oa;g8qRTBYQEZWw2n5*u?qsP;|(Sy7*l&*RTNu&)QVSE zN!{xd+>DZ5!|Fw{zeQ?~^>jYMZ)7$9c7!QtCX)PU{1W$3f19Hvc#6N(JSq586nl7w_wvKi$v1Dn7WRr@6*S;!wlqA$ z{~qcMS_hvhVc*Zm`tMOI*C!J`5|WKR8YP>2G)Xr5XqIg8(IVOEqgAraM;lQeNfv+Z z{)jztq}@lmWQUIq$&`P>2)kNmGbXO5viBf!@X- zHsK1k;~JXr31{C#3%HV*V%J}UVM!+xQ(;; zi64$%aSp%Zyi$K%pysUl_qc{fwGYzy0xwbt*8$p4IuwI;pJfRd<7Y-v`xCXAxX)J? zdpY#rEG{?sZ&ub*{@NK#NhU%z&frzqZYnAiwwpt?glrAjMk*`iL-jRV*qpOc_O*u- zJ3^*H9tznNvO8qY49?5vdP5!y`};#44>=I>>f z<-4@eQfZJjghDFSY70~?kTjK-MrdYIs&rYFcIlGMY!=a< z;xF*CGbVMa;}7r;`AvQ9&5MzCS|^h|XYb2-Ue4J+{(AX4fH{;cBm^!VIM2Pg+*9Y! z%ejH?RpXt=tJj?4>P~FI6gYF>eCy-_r}{Lvv3uaTv4C{Lu+}*yFuwX~jhYwL{d(-M zTs$vev#uBIM??`2MS*194I}2Zd$_m5+JRRWNNnc?2I@6}IB^*9g zR9V1W3imu428JZw!D$QU1TMW9-^MV81|aaRL=t@}J1=2lP~h~cU-j0H4tKq1%h?S` zXlONbouKSQzItyjn(;HA{Kj4*v}+bs8g-BEjA!0>Y^tpIT$Z?mw7|sc4*$ozsj?#c zfrN#Am0gh-K);O)vKFQU&bGuK#eR@mbK++=mL;ZfjnNk$ zA#sXU?nmJvTj2(t6RCo85;yRXz+n5PTIW8mYUd-**`swG#u~A7#PP}dfj6&?*el<; zUM=>+YTd#ufnhy6ewZt6ba#~cd5Mp4)5an`v%uD#>(S7yDDgSIAaeye1{FtLOj4vgMEjnuw>(~(J z*Lxb(%oJ727EzM;3Y!$E_u9B-Mtfs#hDVXBjSv_)`5nzF8*rJ;Gx+5tVX84?W~!d* z$d2mBq12K6VNCJ{XPnP7e5>epU?TehXS2Uzxbgxc4UA^{e(S3kgQbeee{!(YKU!KCiOSb)=bJ^K6AN0ojvCtF+TD^OVRo}*D^sU`fMxy&vqR3%eMsvDukpD~pbez(fW0W;8fWSz zHc54>$DBgfoC0?Wq<4>`&LiDdTz* z57bJ^>}JVMHq%kV)2hY2YARIoh-$W}<}uZLO*P+;#tu0@`QK_5PpDZ`YPOU@Jp2cm C4o27j literal 0 HcmV?d00001 diff --git a/bin/jake2/game/cmdalias_t.class b/bin/jake2/game/cmdalias_t.class new file mode 100644 index 0000000000000000000000000000000000000000..fef948cb254cb05c004f8acd5981709d9980ad75 GIT binary patch literal 374 zcmZusO;3YB5Pb`@w1A~nYi;5W&>kfA>c_>zQ=^BPUd=!^xVS(2MLT=@atWch00={b+)7{9(FHOrphY;^Y~=Nmg{^i9hew+aNzbZ z6hI#w;=x8wz+b3L-d1TSi+c)n6Q4(gTig1mf;;WPK(}f)LO}>hQ3}O{Ow%Eqng_&G`dcnU5b*>2 zDDh6!Rb9-SbI;tzx%2t;_5q-Wj*T3lF&7WA=LRB@t{){+8Qy0$OhRogo`f5UIB>5g zbLnRUGg9#*A$K>>Tr8PeNvZ-B6ACjarZLwO=#up_6|1aIFpiE#oPEJBB^anWD8ng& zu<0NVOS6Up`-e3h6krjmo{HtwBAUqbR!lqE9si1EHdE}O>HV|ADWPIO3ES9VBvy6R-Z%S| BP+|Z8 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/cplane_t.class b/bin/jake2/game/cplane_t.class new file mode 100644 index 0000000000000000000000000000000000000000..f226ac12b1560b65c8ce932432b3aae10805de6f GIT binary patch literal 832 zcmZuu+int36kTU#xD=+gfMBiC+7>DdmQkqs(8dRANK8;4B)sro4#R{F4wnpriGSel zm`H3);|KUrrt1Jz6ZKd^Ph?N^ zvKl@0Mqc=WwNkmw{_%0LaRn0SOEfn=N3je|2)=RIdB z0}}7Yv%qm1o?2`D+V`rm9DAIp^AAOsX$cWEAil_?Tx1e1GL2%^*+Cl_H+gyujR?qC z-;uJSm(e+4}=6N;#Dsw=s$wo<^;Fuh1p295%P^C95}KWF;W(*so<)k=VY}xh}5-%+s?O*Kd~3%7KZV2M2Bk zeF1bqK@Tmo1^kK5)qS;yRPiXItg%|gGMmXl*YgIn$`?(iL&o?gJhM2{WmUxLR@V~# z_Fd<7Zk*83H_yK;D zvAV&Sm`?h=s;++Zs=mHIJ^|Emm_&@BFyt?y?s$A89CyaUPLzbnkRS3HcYGdr&O>)7 z+=#&psD`1~{CjFep$xn$hQvfOhE<Y-7%y_NYT-{zrI@iJ*f14)iEt?@K;MMJ8>>|!?;YIaMGmWIjT0B oWBZLBW7ws;s^x1iaYPdzljsRaoT7{x9Z)kZguP{(ef{&`2c~IP@c;k- literal 0 HcmV?d00001 diff --git a/bin/jake2/game/edict_t.class b/bin/jake2/game/edict_t.class new file mode 100644 index 0000000000000000000000000000000000000000..cd7753df8d600ff98c5566ca9020ebbb76ccccf1 GIT binary patch literal 11237 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/entity_state_t.class b/bin/jake2/game/entity_state_t.class new file mode 100644 index 0000000000000000000000000000000000000000..d1e6d99dd234f501b1fda9d3105684c819a5ed9e GIT binary patch literal 2646 zcmaJ?TUS#@7~Mkx!7yI2T5G))F(lPkv={58Rw^0+BO+kL77xh@90)mha-z`I8*BBl zdRe{qrT2UL)~=OcZ>x_!^q=&#KcMZNIRg@Lb+I`6n>jOczP-QwP5%7n*FONXV>W_1 zfequTLr8;SMGiMF^WE9>5lXP^@iW83eXT zM9`?Bha{FEs-hhdO^_J{#!1 zrrXV0g#pWR)Ywdh{V|6$H`ZicQ(tNy(ma><`BrwK$C@%*>#ul@PuVui(=Pi?A=z7| zQ97N1eLxY99-GeEQ@-OCOA+j!cZB06Q|W~_Q5?Xb2oAFJ0jt_`Bo1Svz;gYyW6BR_ z?7Z4@MB-^2Wij=e0oKcw@T<#QGpQFL8emU69zIDkAa%>x{m&)F^G( zv#p%U(UKTJRzRwWd79i9YpW@Z=?AsLmdIn28mk@i^uw{Xp-%PIkr>AWt*qW^%Jdu? zu5r}%bu$WVy6f!PvPWq^SJ`!=iY`fbpix34o9b@kh(FpYGLM*2b{U7?Yl&`3vUq#rcW z4I1eMjdX%W`amOHKy2WbDJGu}a&((H)e$rCTi6s2Rk1ZLs@NWH_`M+$YU<5|`Cs4E zTSd##sn(@av3P>J6SvV6PgD@+aX<0!5R!bxHQgNuV;89>d6Dd)Fppp#|BhoPx)H-^ zwBa0A?&11%L1J9d&Jk0@UY;Ph8f+->FBjHDAR@esl$wv?F>ZLAahRhgG`qhzqu9+P z;uUP4!;=bI=J1rlR)aBv9dkIQ=2Hf{4E7jI8|*dMXRzPkpuvp6A);bmr`aE6>46kW zaFS6Mo3k5RaY}REgI*?l21jrfC(ut721)K5E|T*YhA@Q-n8tI9RGC>&Wd_gk4Z9n| z|0h5^F^7w)u*96IW`L~*S+_ZiRncKEWw6U&kHNITUW0uG`wb2n%orTHTYxMD$WZ{B z0^}*c7zG$7u?Y%Lpa4Y*;8K7~r0-FH5?7Qd09%-?ddC*`5}<%d%Aj1GrsY)Kn}37I zsM6m;u{#l;!&KtOg^H};BH$XE?K&^q8;cHaHtMP$MW60d>hjhxhyQI%HLEPXl@=$o zC|~`IGQ(D7tssmsj4@OTJG8iTR}~bug03nkZUsG6P}~aARZ!dt*lHBFg1#y!ZUy~S zP}~XztDv|QWUA~{;!qV!#C?h4zRVwrSFjncvXfpTkJqsuZ}11|O?vMw`s{6b>K#~k z7Y^Q|%a@pB)u@jqdaKBa3uV!*q k3WxADj^Z0$BHyy9z9Y%+F@PU5AsM7<2nm*1HRR3z0H%8zrvLx| literal 0 HcmV?d00001 diff --git a/bin/jake2/game/game_import_t$1.class b/bin/jake2/game/game_import_t$1.class new file mode 100644 index 0000000000000000000000000000000000000000..adc704eb1956b4171a4dff1ed7143c4ba0febf71 GIT binary patch literal 655 zcmZ`$OG^VW5dNlHySA=c>-$mlP_QcaI*6bMQY;8n1f>@b65D8_ZBlllzsidT5j^+< z{88d$U8I5yWF|B7&FjnO*ZT*69W47u5$5j2gWTD?6CD|gYt`wR&|cfpwvRMnr6=C) zm?z1RbECAa7;UAt(NR-$tqchn+fq?!i%Zsea$Moxn){48P+HkTLb2Q*wpu5oE2b&4 zAPfZm4rXkvO5h`aV&a@kgu+X<#X`9Cy z?z){C$xeiU@>O;9gg}Onx~dX#7v?c+$f}AP{n={cUOWk&=U6w|CQ|zDRN9tl`j{uo z^rM0hoMN?SycjC?He{5{}=Yr@2TY-5>;@%S4lpLgu=E5+BxAp5iY+GE>!a%=0a zEZz{j#F$a%izB=vZjom@;2h^2LxDA691}^EUDmEj%6oPaE;|#WTXE*pPc+GNh)GOw c+{1K?pTR8aH0D??@GUUH^>W8U5lhH^1Hqz>M*si- literal 0 HcmV?d00001 diff --git a/bin/jake2/game/game_import_t.class b/bin/jake2/game/game_import_t.class new file mode 100644 index 0000000000000000000000000000000000000000..fcbcb2f0d414974327f58c9aa8889f6ea648b0c6 GIT binary patch literal 6082 zcma)833wc38Ga|(-AOi+q%BSFVv*M7YC}t@mXvCmChcm{hNg#Yg*e%rq|@$^?#{** zL8vGy^#BAF5EK+tsB#FhfYt*=LTi%(3#F8e;41tnF;jP~F_JOGBhP zm$KrhMx6m2H9G1wESQ8Qq>=ePymR+^bFv~y`F%6AY)dhSi`CkLBsth=w`M2?~}&Gw5)8ly>7- zfJHhMYMAZ1QLyskR=#6!*U(_k)=dT$V;=4Ebz?qfrjlmC8SoI}3Oa3#TWJkig8#{8 z)^sCekt(xjk|2bTScc^~UKB!Nb607tP10W?|6y#&w(Oo&0p%sYdwqMqDuX0sCfxPr2?DeEvRc089ZW>_>@uZB9)VbK>& z$IfM$2glA>xe=ym##pXk%chkY@_3xuystMb06voi=r*tkU1TEFF^Nemm$yf48mQVQ zHa#|$qGPb{M(ojoDmZcHMH@b{*$xnCTYi zp=2(T$z?mba~T7Jf)wo$LF!XMEbKC{TlQ;cL19qDE7N#}{hRh86-}eV~$$NvWSfs7%ht>wGu5zqB;38c9w+`$(V=vV8gI<^)a(hP_0wvP1lTBI7o(ec3{gOzbl3~aWl=*a_C>QIk8td;8MI%#~ajSm$~ofzu&-R zI7&~t`-j5xYvoih)2gTj}@Ib3bv8eGLO!kBWfAMB9{#n)nX0zu^7W8hkmYoOdt z_05y4-IzP9mW;bJDgQzfo@in1=5T|78*#l`q2feYHIlXqwA&P_%)BtMNe&i@)QF4D zkuk}^fE9Ur&i!#X~s;gqS}InYl%10TQ#38Lf!^R~?-xh+W62&Ge{^O}3hKUp4U96hZFOndG?1$Jr8` zz-c>uCoyGGh^878PvRRozRup9n%HiBH}Fk7K{}f)sTNU?=|}$KX1XZPk+eA~OcfX> zmxguEi%KOX-#73BJVlG_bB0a9j^y%5i`a2Ii60yIiF~i=l}#lSG4rEL8Lw^Zil5_` zI)1?nxW1^XV|ONH;8%E>(dts7qA|_}VIfQpl3@JS!0+&kD^Ed<14VS`=DAI$Rrw@^zA#um1hFnOl?CaD-5L+oBaEv<1Q1$fR9?wYp+Hn2wd` zAP7|zSK*^81J&F;1FJj(egxVWfz?6$4o2XN3K1ydPekA>to2YYCNG^9>)RGBo*S7P zof|9R#S`GO6xlTtIg5E+!vw8WMz*+0z7zGn6ZJTo0T(Cg(aDu0tsd)fjzX%(2CkxN z@17>|t)Dgac5K=eWT{WLhBYMzFP(mqU zLZ?v?6FQC9Ok$F(Mnz2MG%8|J$c+$UI<>ciS6^a+k6V44=ul6E*!TI>*Y8!|R=@f- zFigTMR?YI;7DU}b)PzEH%P;187sC$KfEu=jGu#=(>LXTv1%|Km849ZO#~$qU60(j@ zVJQ8v?>HB3>q^#ub0?9D`sAW`wMVWq6vhm~>^uofDip>F!t6N-%>M93vV);IkD)rh zLZ~JhNqm%0rIGPMRqz|BeZ~C9{Ad#!DSKxiWJv`)y?F{=wbsMoN+Mp5B3EwnjB_Q` zT94OoQn<}?m|2rF9Ki)1flbsC`IyXy*9OCrso>JUKD{+;FIC+Y{Gf4A7hVCK- zI(>?}`PA^PP^fnYp)MiR(UU-3hwD97ql}Ntle)I{6-|+*XbJBPI(wM{+u(}%9aN`^ zKsu~W6@ipP9o~octMu04CI&#tp$<256{R^|w?jg4OOXHNR6ACI|3`2eAvD~M;~tcs z{Wj+5qd}}IX!uHnHT}db&)yjB^m26f4=*yI6XfXgu01PH&=j?i;A%N0v_hC z+@~f(eK81i3!!eU0QIQqZw+4#h5AYm>NY~%eiEq1@r1`}8!J*OQRjJG!qz}Qx+1~`oJfxJTPpsd2_4)@qJDtKG xgD8)LQus?~f&MjE3Xd_hk5{1aFO|V6{F}a4;Xn83!_>_OoF)UT6{XYvrKOq1B literal 0 HcmV?d00001 diff --git a/bin/jake2/game/game_locals_t.class b/bin/jake2/game/game_locals_t.class new file mode 100644 index 0000000000000000000000000000000000000000..6a89e3d7fb427c49f916f05d96ac3fd49f1eb650 GIT binary patch literal 1728 zcmZuwT~}L06y1}gT)4UYfVNPO)&PElK#4@9MGCb7t*KBxLb0XVFoYpoNbbd(8`_`X zU+~FCpIu9+OPBrt|A)W9H|w6c7b2^DnSIX8nKS3?ede!!fBO?a0n$Q3;M$(tSA~34 z)|FYxHNPTjjdExqC2(m^9?E=8de!{W)}E?_0?w|g9n@8$A**U!plhKOQVIjtt4^Jb zDF~$XmC7!&sBHmJ6tF5aS9xJWpywGAv?_@9%OR84jRX0@JMdkPuiAC_^7Kxc4sW}m ztC%6(P{E-Jc51RpufuEB%WkOZ+Lq1GZ^%RQ>V`nu9oKWi8G&SWcwHbh>u)O?N%T0l zj4SQv6+j0B-f?gaZQ8o-z(SjacLlDztxO#=;J`*&TSE>Uv?S>IB@n%t@> z&5~wyT?Vf9$1weGXzkFQwc~ys^&{_)|-uknxR|EuQbWneYd8jbQ|{k%ZfS( zUEgb17!|l|1abX*aq0BL#uz@bkUwqXY#s;WpiXw6oW)EBkPWX3z0SB;9_Kb?%+~nec_-JUG117c`69}Ame%&-7@DW zqh~VaVl*>8S-5T6xQ{O_JP_!N)cCIA*XzEQpY`hwig?JX=9W2x;f}yn&DqKH#-pkE z5F`9Fj{zptX9MdmjfTSn+ zt!*M_mlmmrk(wBvQ)-YiYLE&Uq&^0zjzMZ;kjfB~%*5Zp^(wtG610GU+$(hFx~?6e z&#e8qPJusg;|Lk!5B|)c1m5G?XPz5E3OSZHO6d#Sn?MFbc%SD^ln@`_LwW*P4D)7= zc8cDJepV#8quWy>$GEwe)2n_t!hVe(AK_N)561pvj8idA$9UJ^53o`{A(cGBJ$=2? z`u<0>cg_Bad0l$als>^J1|E>nBCUrkWdYZ*#Il!h6D#}&tC&U!^H{@U3SGt%Y*Sm^ zRwgPqZi}VkE8f=XY+{j=B=Cq)IV4{*QPP62FlI3~QM}d_w6+p7MJMmByh#oI<~s?- z?~MG8)u*qpc8tfzcrudv1${C0$9U@)&-DIa>`%u2RE*Ox-i`6z2}jx|L4+1J1quf| z=kMM`HzaPL!d`bc-c^dbiy655t$XZppHX%8?-^dYqiRoi*@=14Z1f`W4>m}ICO~&h OQ{xzaEy>jrwfP@?Q(YJU literal 0 HcmV?d00001 diff --git a/bin/jake2/game/gclient_t.class b/bin/jake2/game/gclient_t.class new file mode 100644 index 0000000000000000000000000000000000000000..797c2dbaf63c3647ad07056d22c55ef8626b16fc GIT binary patch literal 7115 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/gitem_armor_t.class b/bin/jake2/game/gitem_armor_t.class new file mode 100644 index 0000000000000000000000000000000000000000..f50675271e3580801411e6cc309dc792b6248090 GIT binary patch literal 569 zcmZ`#%TB^T6g^W~URHUDJe7x{(1j#yHEv9rG$Fdsuq6Xdut-}|iqZe@M_e=}F8lyL z%6O;ff`yB@_nbR7XU?3j?~hLa1GE!R7|L`0AO`&zcSL_?2f`V1-|_r$kbugNo%1K& zUvPKUzn;v+G+;lge&~n%f?)b z9%6`}+pZm4FeJN{WtvuR#Gqb!cOs1#vO09+7-HStCH&nr^2)& zm5r=UWlU(1gBV4tMJG-b(qh!fVARQ8)X5xm3WvV8O?8LZE0k#3G~SUhY9aDQJ;bij z39)CC)DUH(sD-G$(XN6z)dSK8Ar)=XJtUPQ6wpBh$7tXL`*eG;)}-AAF`y{}q!%TU Z?vw~gf6{wX21t4mNsk(BHi;={{QzxGW9R?? literal 0 HcmV?d00001 diff --git a/bin/jake2/game/gitem_t.class b/bin/jake2/game/gitem_t.class new file mode 100644 index 0000000000000000000000000000000000000000..c8d3a191c3d306571b6bcd177018f4362213fc15 GIT binary patch literal 2178 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 WRNXaHeMKKT`5y*a_?kumZvO|wJE!pg literal 0 HcmV?d00001 diff --git a/bin/jake2/game/link_t.class b/bin/jake2/game/link_t.class new file mode 100644 index 0000000000000000000000000000000000000000..4f062d474a632ae024af195625d693be94899086 GIT binary patch literal 385 zcmZWl!A`9gk;71u> z3l~E++1WSq-kX{I`ThC^FvgLCnqWUxb3OKFYN7qar1QtZfi397YNh-{r8EC7jCE89 z?3Y}x1ik5&;*!NwzmX%Epi9DkE$j6wlbYgMa5&g54+9$9WKY_Kg_Z{wZGkly1`TjP z54&gx+EbJ2+vOtE`GX1*T{g-hl>{m`CEg_M;@P|k-1}^qM|xsPVspLNML8GF=xOl- zEXEzw`4Tvr$VL^W9!=&wq6um|fIIrc-st=Top+)dy1ZMJ(=lwEPXokl2Uhw?G5`Po literal 0 HcmV?d00001 diff --git a/bin/jake2/game/mapsurface_t.class b/bin/jake2/game/mapsurface_t.class new file mode 100644 index 0000000000000000000000000000000000000000..474d48e1df6ec95ec7d8a1e9e7641133e2edfe15 GIT binary patch literal 419 zcmZutyH3ME5S+E0m>4H^fB-284Wz(QS`Yg6~D?^k*hT1Wcx&=syHR+2ZwWlah}~t3p%+GM)+{UY zKwhZIq~A;)RU2TByXt%{jU%__AHl?09jO|d@j9b3t|E@^cm;d>hThEz?hE?Q%xT!< bw^#d&U|=5(M%ZG`{?=fCZAN_9x_b8utWjEj literal 0 HcmV?d00001 diff --git a/bin/jake2/game/mframe_t.class b/bin/jake2/game/mframe_t.class new file mode 100644 index 0000000000000000000000000000000000000000..6507f2897a5585308b0932d5829835676e243d14 GIT binary patch literal 1182 zcmZuvT~8BH5IwiFRLb&Ms20#F^3iUERlZb;CdAN$q>&g%6Q9V^F1WC?WZ9~J%S15o z!T9WtGM>3@w_D=N&b_lU=bSln|NQ;=3&0vmNyHS==k|rOW}VrWj&*tJGaLs=#1+QR z?a#L5*^M*n;N;w?1qw0SRmfB#9lQIxb^9uC{E|Yv?q0JjzEB;4!lZ!&2IVwmAc=c& z$`}|zN@1+xHk|jZ%M-^xvQIpR)s<$=_Nun;%Dt0}bBJq&>8OUTLmW5p#dibtX1m&3 zf$LcxTC}t5dQM5?rS`tooU6cXHm;M%X|w66+qCu%!apfI!P6w>skCiuKaPO~EGih9 ztz#XH?UL%f9k#9R z7?wmxJew~>{pe#(Vl5m(>k1bscpC;bv86C1cpX99Rym1R3Nw*6b!X3<;jr2AYuZ(X zk?sms<$V&DJLhvAVC2GiQnGFxxopNbGs7_W9pTMGj2U3c{DD!kc!LRZ;Rb1QIplUc+lmXO9W9x!XR`;o;AZ$#3(N}q%|rcc5xn)oO?%w9P!@II6=pHViiga}AdmDAADI!FY|;FViCa9Dn7+l5#A)7p@RM5YI(2PO z$tEebG)<-r5KfWhTt%($*?$O+JA^s2c#D(^b literal 0 HcmV?d00001 diff --git a/bin/jake2/game/mmove_t.class b/bin/jake2/game/mmove_t.class new file mode 100644 index 0000000000000000000000000000000000000000..5df2b9d835face651c0d4e02db4dda51a11f5ee0 GIT binary patch literal 1493 zcmaJ>TTc^F5dKbEER;nnmqMY4C~CWiRa8*9C?dp4@e&A$@xd%*(S@=l%NBj~fj`0% z&nAM2#><baJKl!B>@ihAvBV+V0YF*)1rfYBQ!>fBv!Ku1+jj>%Q$V@xZ9#I{vuAa5|U!ceVc&$Sf#CCQD0p z3}M6#7&xpDPG=SxpwMEV4hQ7aW*}NQwHv5MgT#^sVrW!2ly_YFc6n{l_U5g{BH1?Q zO9iXAV0n)CK``P!b~Y4RYtaNFB#pW!p5yarG9BEPeW#ecSLV2!3--G2 zl-!LdjuD<7x>L&L?o@AL=)=hzcn7 z9IV5@5%fsmGX}Cat6=Eo!49~geau=GbLDm0+ux7CR?7;Bf3xDHtI#y(TZPqGYkhxG zo^35jzhMKHaG7F|fJV#B8^V^8fQYJhRX<#W4?NcB@hJhyDAEfsTA?5>} z=1UwhyLQoRrgqV44(uXfCL_D(c+T4pIweQf>t&DQtk}o*C(weENOF%|yuVPXgcQ2z zNxmRa`XpFF`Xp!sX{QKQ@J`P zDu^g3;#ye#s8uFdVkuv0`J;dOr+@P4r(f!MuV0ufRw{k&yZ0@3Irq*_|9t%|fTj32 zj1mL0yUiYJX>HofTD4g>m-j8t&ZXSAA4bT))NZrStaZ#>y0*Ei+e-KbqKSg%Svf!J z_E`pIHjOY`(`d_VE))k>T~|i zjGgOQn>2gr3@;1WNqM3?Z<$^q!*##u^cX1h3OU}9bdzaXC*H9^s*87&o4#)*c&aRG zIhOLnPG=a-!U=CT=J=?Y@QX*IiHw!#89iUwYZmgBZ_8Mw1j=~I&e{2l#YiG~v(HM# z)2`_lDCuO3(ZK6?a3bP+rtRoOm1E}pcwYKp=h6m*zK&V(rH77{@&}nc8NNPJ=`b@1 zw~(XfQ+wTh%Zr;{*7f54U@wnM8>><>)3%D<`Ky_)>Y6qtZ@rteA}B>n;2}I*2?LJ^ z%)@*sEfH9V`3$Vd&RN?E*)Gf5X?DrvPj7Nrw>HzWkB zV-?94aBuvL0;{ox$yD#Ib6v+WNs~}@M@?Gk*!yT}ZAPh(A++_goZ5*1R~DiA?b?r#>@juytF_BS}LsZKNmCt3vrs^q?10&Unm z>Z4{FDLk4Y)r_r$UdtP0VQ@pcz#XWPZ*~ey38Z}jQv)e3FfEWwf$5kb_ay{o20BaN z&Ok~F%)(vLY75K`bUgxd5S6;Dz}z4jSD+UM$zT;t8=K$tSkLNC9Zz0hL2#xZaCac} z3)~ZAWl-SWKsqFFUtm2VaDSjXCh%Y&oe+2c6`Tht1GE00A_l5jW%F(|dq;`qS!PmZ z@|3`fc!@qr#qDB~=^e7xG5I+o@B)^}&94Z&iq|-tDio5}3dw4PWUWGS zPa&D7ki1h!)+r?C6q0cY$v1^$n?iC;A(^I-JX6TwqmXP;NG>VlC{jp9DI}j1l1&Q9 zC57aVLNbb2%1Aia_^sy3WON2`QS3TuV&&hIx0gm++C%&=i?$3?JxR6r3vMq#Ex*$d z;&&mxD;Po@Vw4}HMg&*lG5(6m#Bp%oW5Ts(8}Xpp#BW77z>$@PvA?3B1iV~57Q8ux2Fps`D1Qe#SEMq{_W*U`xL zbMk&quYHY+wZ2dLGoW!u+YjsYQH{rmGHazOYkeFGz($UxP0U&&bGDh~*g{(qmSZc{ zU>mK?{M(M*Xh9sUNMjdV4#j@#!7+5;6!x-L_p$ThxXL14Ll-_n64#N!cijC0Z2XLF z{0axZBa1(gQpeV77OxB=Rn%sr$XB~HIufr+jt6>Aqp$UgCDQ9YjRV>~q}PWv z9@TifSmGhhdmzt=QDBqEf)8@W53xZGu_X>;C61sTM_J%w=)`dr?F0_85QmxQQ#gt9 zoZ44#8lT_{KF3*n#bV#YIs8b=FSvl;a1np7__uHgf8jFzmJ<_Kj0%!LHlQlAQ8`*> SO2smVP_jU_;fJ!$_~<_q>~@#{ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$1.class b/bin/jake2/game/monsters/M_Actor$1.class new file mode 100644 index 0000000000000000000000000000000000000000..97c3bf02f94551e1c63d603d0aa5a7753c067755 GIT binary patch literal 1274 zcmZWp+foxj5Iw_gToM*RK&~Q)s0j$+B6tB22p6LXS`~^1U&4}1!kW!4wL788kMP|G zAN&9xl!DUo!4L3@w5URRHVd_pRAqX4ru+2i>F)h?_Twjj8NAle#4z~QsPLI&*{Jel z)v-OnT`!r$ce5H|@$w(KsMehAWGvZHgrZC7#$}P*YBk$Dkmp zBZ4aoZ5h+%Tea#Qcejl_i!*d&oPuHP7_KSx;7}F&rpGXp3B|fhXMrJ7<|4hu&=pUR z?V*vh47;4n3D>mC3(dI3&|*mLc~2O2k?aZBt}yh(!_d5F7DQewB;G`E9X%SliB~9e zaId2meS{b=G3}B=&k+U+-4I+90~pkBgJB>9_J1BaZeoa`z0R}h9P)FrT@BFwjRd`g z+Zsj~dM|@YN_nAUR3f$%YOc#|AswT*i@1h+44ombO)B%M;c*=ajM3v*{E%D3HXPSK z%UiNYo}bfwOlp{5=nDZg8tF)4ii$7HDixS*$VZ*gF^dPJQCS=CiJ&Ro$&>~6@#pbK z!^6e`RO`v>c#J0uv6AU}qT~{L0!+uSh$RhA8LrkT)r4s!Gv=O-XILg4u3viU$Xpcj zSk;k|C{fD@K%!X3riP8ioEnMgcrKkHK~&Y_R*Bj!{8Hy##L$`(Mxl~54uW=$<(!&Z z;2WlFcs&@WN!hP75$krray;tSEEoF@^{AeM7l=WEJ;Q( zGWHG4Uun~X7_BjqP<}(D%NEl0x)I4%(&&lMMymvvASnTqj`lAk>h2O9%Ab&{a^c#6 z&cO8(4Kszo`uH)rj?jOC;UnBR#`ycT4<9i_r_=K07{kYy`;LVRW#wWwS5$Woc2BUT zewG}3?jvZX?I~i)8M>9f7*&C3`r<5+TqZrGHu=Q5>%jwJL<4EOAZjlODFSv%^;MAZ VbIM|iq)LMbyrO@M%w*E^`v(ccB}D)L literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$10.class b/bin/jake2/game/monsters/M_Actor$10.class new file mode 100644 index 0000000000000000000000000000000000000000..6b6981e199b7ecb58dbeba0fcdbd9ec736885098 GIT binary patch literal 3473 zcmai0ZFp406@DkXvp2gLB?(C-0c-$)ELjK%1#6&UxRNdGo(7p9fHjKWfMmxV~5KGis~Ddeo?n#;l}mB$CxF!G@3>OWaViQiEHd zJjZ6EWp9h6LOl&#dYo(pJU5$`X|EMo*V zg@srophb;jQV%<+ot6L@y0!tVr@`AE;~Z5MZa(7CMh1E#B`((`JMM4K$5$ygbro#+HHF*I zOq9{%al`5oSU!`>v{kY>B5ZG_ZTNVmtqQG}MRl`dnU#EK!*&hZ1m@%W~9Y}(_p8JW;DZG8vai_xL56T67vJnKxQjxep0RBA82fuM$O&JfJFjlvyV9A8x5 z8;Y0&=_J>zQz7K2lW~2I)g95pj+#)~jWF%D-ynYiKV@`RBRiN1y*#2ZvARscQ7Iw{ zQCL*?WZW<)$-=RWD}0M7q{4|<%IeCHC?5=XqV_%`Q5_{}RrjW%@tPHT^nOlgN}(Tn zD9R+enB+w`nz77;tv2ja_%`hNgp5)Ye#?$%}{7l17ryqjbZIb}= zG=A>ndwY`ZBfdKb7gaMZn!B~}gmX0)UV#rB6ui-g? zvYb>+Hd1(jVeGcesNrrtf3CudL->`#i>&p=bvlE2h_$B_PIC^VQvlxo8HF^42>i5> zNr7a5A0$JY?=3Gz@REkn$$?BZQh1p;=7}ZDuxa^l4(B!eMxZDYdWtew-9iXnwL#&x zctzmab~-L&iMCXyouH~vw3WLW`QP8p-mfZLz-tbj$!woa43lKwcX&FcaM9VI*=6XF zpfl=D8WB3LWX$g27l(B2Vq#)$f+sF$${1hE1e!_1SFdVHN!H3DJ?=b9G~TzbEtX1zj7F2+E-L#pTEVviJ#IEyp-3!AFOL?(?uilURg+~IiS-dZ znKY890Ifo=EjV9#4^dyE-YSxUq+B+F{L|FPgO9#Gl8^`CrojU0tBeuJYp6$w#Vq>r z1j|YC1g_%3QzSC(JUiswIj*h=*J8}hxVrj~PyZ1A_MG!{xC&Z3-1L(Lt#vYxMoHCi zxKC4~e2is4>>NVL5aw5X77+#Fz;*`Z!oK{mytxT_@T>HKynC0@;;Qw`%x|rV}X1S3+2NI$VahCK8Bm*<7kjiph*s(Ssumh@<~MG zQ`k##KlKlg%>(jj9Ffo9ggk~3c^v2E30#mTaY;Uh%kp{rS-yb3Qv2`nMf_8q!hfhX zpUE@ABh%tqIV9%DVX;(>h#EO6*2c1g@GSVb^?Q^tIjHpp zwTNZZdJ}IkEvfZ3-XYEvi9g|8gy}W6hMr27a0}730k`5k^3X&N5$Js^BHag+%O#j~ z1?3t()UMEz{|bsVl-7KLyief!6x%<=h6S3xEa0d4KXT~#2YgJ@P4^XWnSMTshWSf> F{{y%IqJ01W literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$2.class b/bin/jake2/game/monsters/M_Actor$2.class new file mode 100644 index 0000000000000000000000000000000000000000..c39a8cad50c22ce7b6873608601dfafa76474077 GIT binary patch literal 830 zcmZXS!EVz)5QhJ)ow{)hg%H}(Qd*!u(h4GlV-Ql+w5U?brBx5TL|bQ@m^f=>Z^}z? z00ctfzyt75h<_7P8EVNp9?#6T|IX~M-#>l=Xko|0oWS}!Ia00WK#o;&oaoG`G;1F9 zc0-e-TP+W+z-l37Uz?L*q({4b`JSl)^RFTunb!hNy>Tkw?j?QY!$CPf3G)Jr-AJpq zlkvGqPvm*51ghO6l<}!dBkSisT{Da_fsJlquj_K!0;Pd6haG`hy}{f|*^H$gG>=Uh z=|Ot|w*`D@wf8>Ac*JyaHSKb}NLKwQG(FR9oRx7G%N~{}tFUt(53quJ0+n1yq%RV7 zqX;TQh$~|a>mKe4tQBDYA0xm6Y_Ksind9VA9=(^eg0{5%9SfiNF$bTkPs?iom%$4CV3tICgPy=mEONDg z=d>2!RBwHvnUz~Q+)km?xhk#VPF~t!Hn%~r^A)u(Sp9}g_u~~~CgA|S`)0~nn&svk cE9nWIlH}mow5E;*t;=Zw+kAb-tS~-*0C(20iU0rr literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$3.class b/bin/jake2/game/monsters/M_Actor$3.class new file mode 100644 index 0000000000000000000000000000000000000000..a5ae6adf58c92b06e390b894c976d9bccfe9c2b2 GIT binary patch literal 1272 zcmZWoT~8B16g@)+mX-yye18clLII%yeiu+cz-mikAeb0Uowh@}u$?8lTZ}LM3=HStFo@3hq{(4=#BX3jnL%$YmC|9txaU=EuG8W@K5#J-%17eq3Z>WW;y3O?&!P$&d?u#tSNuHXsP|>yf`2zL(_t#EPsh16r0##;HyqvMi4^SL?fCQ z+EbR2o8?kgy4xaaONMC5$q9Q$xR##R7r9@wJci*^pw?MA35Ldk^pg)5I%5-rJrr?U zs6u?pcP&*&G~+x&SZM7Tx2yd3>_#?_O#h1u3?t)YG%F?Hn}($ta7Ro68h5TO+?Y53*0bqQ|GtT@;zUuyw-Eu z#2wtF^?E%^?K;$9LE^wp)z}3r8CYcKJ*!q{XM7X)aG${t)~+oI)I}_*C9IfO1$9bW zO@cO{))XhqDpl9@1ukIS#D>mj$(3DKDqnBWeRcKmPOe+J zr_K6{nb9ptO~0mcw&PJtrlntW@&rgKCEZn9c%Jky0(vj>2vHsBozUE%**rx?v2pS% znm^G;10pm=D1tu+r_C0cn>7%{R+`ZX(N3c#n5L)+LeX;{Db&(6JNS!0YUqC|T~|Hz zJE5rzwkqg6M*q|?M&7>17{x2UFic_MC)z5wI`su}Pd}igg6q{!enfk>j*;MR-l6s6 zY6Z)mvBrf-@^tk;R#n&$=x+sb;%?U k4-q5LNn&jRA2(PRu|KLF_c2lwIr#vj=^r7S_Je+Z0U!k)BLDyZ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$4.class b/bin/jake2/game/monsters/M_Actor$4.class new file mode 100644 index 0000000000000000000000000000000000000000..46eb27a02d6a0073fccf348b7c4bd2d2089abd02 GIT binary patch literal 2538 zcmZuz>vI!T6#w1!CYz+UPyz)CB1I5e3dFXE+9I#gVzuSfTCG*%CfTM-H@hLbDb)89 zABf@$0YMQT`1&BVg^mwK#~E?(H8PIq_!=EQ`49NT5zpPEx+zVvd+$B>Jb&lhb94Hi z_f7(+!`ljq80KtM`?b1AQcY=*lx5nEma!x4(KT_$$}Cu>fHPEhSei{|ld79*5^9<_ z8T>1BQ+HM}6jxPuG4LiUp@mS4pnwm4hRJQZscp!nVp^tCjTst4xXp^IMwgn=Zw%x&|SI^UZ{247NhTGug5tEwj60X1T%W-`*@WOOsx7{C;UkSbk|rpZh4CpRpq z@+#I6dfbURjT6yYTC2N)D8~#1)5%wlJ9#OAnW&(+`!v;X`WRTNWS=c?fh31g>W*k` zOOh`Xn2SncqS$5^m@^&S8I0PF>S*Li5Eo&Ag87A5YXwXK7fTC@-LIQwHWkDrs8&$L zFxBJadP?J3)z$xp1xpKU7cvQ4idsU`(NmN`)*@r8 z7g#2VVF__Gp~bAM8K+=~g|A)>NS@0DuE3RqR@~4j8iwg!5Ry46`4B=Qu2QgqVNx!b ztfL!|Ha#Y=601l)qnZgT!Dztw~@Vnu){8=t-IJqMnuz)}vLy)eKWS z+S*m8uYR4tHMo|{bZN3mI5DJvLd$OLQP!-(DF!Ox1(y6E;5R*Df;@M1wQX>U}=te?7 zlk_r=El16oj@(QN^g$<~+@?vzMuk1Khg=wU5+xY@0*0(upKd0!9kO0c0Sjr$QIeDt zpd#B(R8OU?j69eMsI$x%uXJrzHxgPV1P22OvgG4<4uS31K}TdjHL}`90%xH-_hYVY zjBTZCHcrqtLfD4eWW&0hq1-Ey?<>_^0o+M$H&jZ_y9MsSy;O2)I<1)r2DiJ6Ss4@Y z7|xOM?o)2MalgO=6374nXsb!hmIq*`z(aVLPMIurx70fVc$Cb}3rVw&3GBvXl5wn@ z!VsRolM40}Cb z8LDk-HY!0`ppy;vP1hN%6u4T+gkHz7>o^`i<`S3t%6$jMv_Io&uPpcR!(*i9 zyao@@LIPjx0w1F*8T><(@{=g%A7MWK7z_9(sO6{7#6LqP{{l(=CDQyW4DzqBlYfIf z{97F2-{D<;7N=-D&A-Rz{70POKjAF@8GrC!@F)KjfAQZKgW)b;uX9~xqOYHs7IiD(mAM5 y6fgzl^rJs!3XamHat;mfdCB-2Gg&xDCSG?-=MB6`Bc~$=yhTrl9Fny~pML?b1ALkQ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$5.class b/bin/jake2/game/monsters/M_Actor$5.class new file mode 100644 index 0000000000000000000000000000000000000000..0257b8d0ba5e65562c3c65e088885d372f916206 GIT binary patch literal 1070 zcmZ`%T~8BH5IwiOWocOi3Ic+BsHiO!s-TD#(ehD40=__+C=bo0y|gRaU9x*2@Wz8b z#|Jf_#s?#>{tu1cKfyS+tz^}>o8IZ{%$zxQ&bEebA-?Pug`F3krTxZ7t}2$#Fti-#^)HO#(gH(QB1yTs zB5ez&oL*I)<&-nc=wOHm&Am{PqD1M0>ufRfB!bAYWEE9GWs;AgIE@|y-9#(Uxe+(f zi!*ems^t*3(0Yy^9{~LL9T39+h71fcbkys1lx3$^gsMy~m>9-6hG<@DBCAp{G$+<` z^d$4T-vtvRbzHIM^K1>06w#rCi6llTzv}KvwZBc{VoN%3#l)Bn82;|2Ey}+BmNsz} z*Qk*r_f+GaEEmNjNVn?@oq-$OCw=FHFHKD0Cf%iMk*>j!=mjWP)os_)gNfl5G6rrl z^aeow$T2a4J2Y*Z<|`d#sr~;>S?`4}?M+fG*z&gu1hVSxctx4B^nRF)?Hkwf(gH0y zMcegB-W91TZpi?t-ydN0_nHvGlH*8k-WI+ueG-F~lje)sNlQt-LEa=;Mm93~3eC^y zPl#02%7#ee58xDRA>XVgk!>Z9;S}2F)Bs~-H9$Dt{)|k$T%&`343vgXO5^Bkls+MN zYJ=(2A-dvy^!C5TS#r+DFVcHSJMG31E~g$IA{99}LMqjAgz*=cNWH`~e|pkyP*dTb z(8@ofkAJ~1|B6xm4Qc)zQ~XDbM|Ztfg9mlREbbDMFz(fGvX~>wF;C|r{bCf;7o+DF Dh^OR} literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$6.class b/bin/jake2/game/monsters/M_Actor$6.class new file mode 100644 index 0000000000000000000000000000000000000000..5b36739663091c097c2c63813ddaffabcf9e1a16 GIT binary patch literal 1605 zcma)6OHUhD6#g#uwa4~QgM%9aNeF~Ab_@(LDQyaE${RO!n#9N(7S`Cl*aPDkG;>LJ zWz%2LRjV$t4OLO2F8TxdZ@P`5Cg+YFG*BwllJ9xmbI;>D^VdIr{0X3loj3*YqzAsF}Hl4Onm7e9amoyABButfgy=Bo`k>Fg-g~N)L)s%I)^nZ1w-OYS0fh?}Z z@iC}loWru;4G>kJ$cBvP(Z@7(p(UiW?wi>?Ca2;V#w*FkVRZQXr zCgQlsa3vIVizZRA{HBgum}Jm)I-dL8mepV={8u3t`cNw6YZ`7dOkb9Q->r9rDbKRd zaED>)GEXX~RXp=k+1}NWQ%NO)q_)YfI&)7)L3KcDkz&s_+e$gBV@@fPlJM0syJnk! zF^^&#_ZdFw)q5l@+bCNN9Se9s=@QTZ>K=Jbv1zH5)BEc@r#6Oma>Hrbu1_0N5whb_$Murq2ye|ceP8$l zJDLG~ArPFj#w5o{S|G}Z@_WBSJ0WHONjj56!G{nfV~S+G=R|anB$_qSbgBTeL{)%D zX6O}>-gOlnd^mJ9a&|R?E4{1ifWoT~$A#Z8GW6;ftVR}NFOe=}#!#(ZZpz3{$QQB9L;A2Shab);)WQmTFJjrQO_)X;a1ZMax%o0COx`%uc%X|ut zh_3S6*y7XJ=6CUw=kScrpvGsh%MCR6Jlgy|BwxVy{6Wx~=g?I7{njXM3)?|Ak5M9y zW_}D1^@s6 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$7.class b/bin/jake2/game/monsters/M_Actor$7.class new file mode 100644 index 0000000000000000000000000000000000000000..7dfbd5973b0494583193c84d6d2104d1d7678913 GIT binary patch literal 1062 zcmaJ=T~pIg5IvVBgoXf8D4!yzC@lyTP(X@0h`=yIeSu*{Upklcwp^RuFiFaz^5j48 z$sgd059-v>@xdS9k5V@wFku|+Oz&nlyXTy{yZQO+`wsvMSToSZF!qwy#X_OR8=}x~ zl^+PtFOE z+8KIwr4rAYjYHw>^Fv24WOiMfI|tm8p&tje;7IxmRV#L&m%-$r_HtEvM5Yt2sxu7clE|VW?VubK^Dj(fF=$|bVe~)D7KSiP zcZrZo+$K!1-BkaCJxF5|V+O7=^d(@osmV{cFDzWcIB9dliExNHDJ_bXov=kdDNN%! zZW_43Fq{CooMd4Vx2W}jY|xF_RvJ^t8^}?s6E*RjElgvEp)+o-R8^NIoK%o_6A73_ z!N45DPy*~yj)l7+fBKj=eG!UCV-^b*7IBZk;IiuQ8qJpNkVaoPRT^HB?|c{xU3&qy z>m`01FNL}1Ha%Nx$#89~cq!+?snaYrmF>7bO}!+7Bey~cJ4y*}!{NR!d`y5=lJ*?Y zNvlY{LEa)+MpmExijGh8&<2xElPvUQX!Np^eCsTUY!`V9-RPk+1ehfo0;DomK9V^r z57D8oBuY~kr5W_arEf?J(O_lf8~Q(Eq=ku@7H+q2=j}UW!^h_>%=i9&{pt(m-y?Go z!RaYQv=1R|BzJ&5F6gV!^fhGlhnUhIV@Y3+_y^87Vt!)7eJqiJWvbTDHq}iSE0OXC SSdC&?I*ar-DJ#4h{r&&}it4%m literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$8.class b/bin/jake2/game/monsters/M_Actor$8.class new file mode 100644 index 0000000000000000000000000000000000000000..e395cab0ce08a473b62880b587c18999e2d9a2eb GIT binary patch literal 1094 zcmZWoT~pIQ6g^85LQ51V$TxzB*n$uRKhW|aAUMnvd?+%GFJ;>CRP zwu`G}VO5s!&@m7hHNj_gFr~76H}N(#=>2O>y50say=*SmTY7(MXd_BtVDe)BykV37G@Z_V+1d0 zCf0Z;Y&f`27wL&p;ZbFAiP2fn(;W??`seV_!aT!34Cr!@jYoJ)^vbQ#G_Xx$>HPe+ zF7c_2XWElI;q_27+(sz81L}61^Iz{MS<<`3kSh4~pe#0BJzsWndS~@`&;V}8vge01 z9@|14`c$#KC8Y?~JsyT4#2Dxf=!ZbG(#+D{qTM`MM%JAAhPKc2(Sj7MDY7tkV34z& z_I4wP>^0iaU893m4KPDi10>R&pU5=QH9E{!vDCyxY8u_m)OQ50HBC={Mb8%uo?+}e z?sRs%Z{6>-_Lmx`v_2UAkbZJhI>UnT@q%KIN`P5F%G^b-`5NQq9wy0V%{LM4SOdCA lOC-o)k%)WgM_9r#2~A)nLVJ!?vIfmGutsl+qI5;{`~~}3@PYsU literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Actor$9.class b/bin/jake2/game/monsters/M_Actor$9.class new file mode 100644 index 0000000000000000000000000000000000000000..197941fb274a08bc7eed5cde37a25bb3ed7a9d0b GIT binary patch literal 2252 zcma)7>vI!T6#v~Ox7%(Pp=rybfCNEEsSpJOp$PISR{Nl|6xxFECb>#Qq!+eo6$=!jss>V4cgHw{xZO zhMSbeyevE&@#9oI3PXe2Zs95HU@*&GO+EtB`Cr;kTi6w97d+ueSJ~=@c9OEtqa$g} zIU)#LLf3*`!d3T|30XC<7ik0g7@nv@sVdt^587D^&*C{^Ay9s%iSa;j=OdFh)t0@66jux`1Ag=2V;!KewR zDo17*c16LBWM^eg^{rA(CJy0*F5{ONx}qkHYU`P3!6~{gSrkDsEAq)YQ%P-i#==?j z6Ct8fk#3%0?`jTKFwzKy3i)N~rKC_votalGyox~vMjf&_%1=FcnLr68iJ(>t83V5^ofb-Hxy%h@cum_ zr2yMNap_%46fMl6M8#YYGy;@ereVPPwO!eQ3%Y|7YdSGoqJ+|L8!y^!sWIOAOk6`? zfaY9xgwbVM78I)FkVcqGS8mXmUeTsKQzowChJiO2+9SO)BvkPLRm+=ri<)YJO40Mj zs#)bzzY%=OgZ|euXc+HUcsEQQjXXyN+TnW^-p2=&hMKm#A+8e+ojVG(3m;kdI3&T& zOW|bbttQ}83!iBM;@5>kaN~h=s3*9mih7>w>1o#lp&-I)3~R=e$d!gfB^=a-zTO=3 zs(w!P+j^Q?jW5MM-E}nX&$>Cs3uqV*Nmcan2EM17jqtI2sFQ~Q*OmThJ#=J%Bxq{W z*9qa1J|VO>Xm@}lBgyyNMavypG{K~&NfP`D;`FkO_EueqfGS)Ua8K)m_8$BBD?d_dI=OVhN=8>Go zPTD0OAfd$^b|>~M;+dat`B&`!9fv0AboU}&xQpY7lM6VlElDKK)z<@a7+S=bKDk7X z1xzmBN-vv7Cn<`AoX3n_%)#khK;_aM+U%TzwxX35o8pV8X*{%fJFa&(r$^`UVcqJJ z&?@w&*^7njT|g&=pFukp=-^p&libd8Nbx)lbBUvT21C4nNnS*W*4Ma=8lS~YUcxQz z;5PU0Gp}HtU&9~V#{(XOR35C;)u57y!{^u$vi}fY(28F$qAc_S+#f}K} zk`O?#U_z%Y!y`hk#< zVj3-%M3=_;_F5DziS;TeE3Hh#Dk^*B6l51B$|^#JGL6WR=(1?9;%MojUegvVi4`VH zqu%(L**W71qKQOwY41L!VNQY@I%VXku}n-hEt)1_dqEs->lBZE30AkhBBbdc)EVbZx4%gIt>yw0*snrAtdKbEKt~ z)svQ5R$p3bSp#XQWf5tqWf{^AcH7%f+99sZ6t+)q*EW)tvffx)imi#X6kF4v?dN5u znY2_xb7`rD7Sd97T1rdVIZ9f}PAh3CJFTUq?6i@VvXdpOmz}oKQg+%&OR=?=mSXE5 zEyZ@Uv=m!M({Q{Qu&_8@?&Yyl(9w}P2OS-!OVH6#x&|E`qg&8X_PPfh<*rB2QRaFE z9p$Z8zKI|YT#b;HvNcj#ifxp%6kE2m6x(QNDYh|n*gWHypdfVjhFgM`>{gOktYjDhn^CU{`#9E zB<(&`NZNf`K>7>RbRlW?8A8(TGwT8>uc}<^4Zhr@qs=xDom&{3F6f{x-`8gvwBanMnu zB|%4_mIfWgS{8H^YH*2}?Z(oz;yNlUSve#GMZv&dgfR!d9Uo*^ye z;Y?{M4`)eBc{p2I%ELL*QXbYwOL;g~TFS#(VZA)8la}&up0pI(dTA-P^QEQOE|8XD z+aN8)cA>Ns+eOk+Y!^#Qv0Wl;Upm#?C@sZysk9W^CTS_Q&C*hAmq|;pT`n!fc7?PQ z+ZJglwkxHj*sc<`AH{aHv=rMl(o$^KN=va_CoRQxy|fhDR%t1=8>FS!wnuM{zuPBn!)Nw*&V&+)L!Aq@``2mX@M^Mp}ydS!pTq=cJ|BpXatb>Yu#5 zAT71wMQN!GFG)*nI4CW(;bm?s6aJ;uE7H=@UX_-P_L{VGwAZDjqrD+5Mf|3;)ZcGO zOFjO!wAAPC2h#rCnZ6x$(bDYj3frPw|d z)|=a()m^A0qE)2{Z=ilIBt`axkQCULLQ-5`2}xmnEhI(tjgS=7w?a}(-w8<}eIJxw zZ~Y)7b=HqUQba!qNfG@lBt`U#kQC9cLQ+J(2}u$CUbjRnj~4rj!Qr5z2K^Cq)Sf?s zj+*mV&{1pt4m!6nxWAgbS3<{i+hUqQ=O))o2|72orWJ6MT2lp`n^{vcx6HegFzujo zV>3fR=f-A+gU*f3Obt3WHZv{gD7N&Vqu89FquA;N9mQ5Z;Jnxx1Rcc|2|9`+Bj_lO zhCxShWCk6@(J1IBj>bVpaWn}!ilb@JQ5?+zjwZC(Jm@Hn7Ijm9L2=#3k=asOiti|C zDZ*CLQjD#or6}7-OL1m#yRg{1XJodOmfFxx*gn*T_R>-tI!H@xIGWof{v9f_qqKCi zPSVoRI!jAO>mn^3t*f*YaW`(u{hL*0cWJ2&J*1^J^bA_>gxTyRE!EIlTB@N>(0aG5 z%)Zi64gI908u|w;Zd=i493U-?$AR1??-!Yaq@|+`mX?k-L|V%FP-!Xa!=$CG50{o^ z)G^Xh6eFaiC`JnFtq-H5rJ0p2EyXrEU~x-{VjCkZ#Wq%2ifx><6x(=dDYgmHQfw2Y zrPwBMi~BrYY{yDVu}zkiVw)1M{)wKMBQ0$^Ra(l!G-)Xh)1{?6%#fDyFjHE}L$0)x zhgs569*z^%%R`>Dl!w{UQf$XdOR?okOR>$7mSUSLEyXrZT8ixiX(_f7rKQ*kg!Mib z=1WVlMWv3NXPL-BoJ55+`zO9m$`t5XSDYn%?>zzfLXGlxio+&Nm;Vfw> z4`)kDc{oQ}%EOwV_0M6>m6qDDR$6MqI%%m5=SfR#SRb_BFDA_MrKO`?AT1qjgS2$C z3#Fx_T_i0iJ8B^?H7jwAAyPrKQ*|la^w;Tw03l3T|;l+lTBH zX({3>rKO0kl9nRAn%m|6HJo{kwA9{frKR>>CoQ$?dTFU;TcxFz-5@QsY@4*y7dJ{v zeX(6wuP=5;OMP)uz($w#p&D)$*86O^MOv!i);e2QapbDwHfbqmw@XVoyF*&a*`3l- z&hCWK4~cr_e)E8ctBdp!-L$`jrD!fQhOhgmfHKUwA9{5q^0&gDlN75F=?s2`Yj!iSDKi$I9|Fm zyC_g0M{yt6Idh2#7p*IT>*gE2ET~f9zmfW^cU{iX>-7+IkuX~dZ z;jq0ulja!@{L1~N;36H_VtbHC^#r{RHl3cj3AWHz|J<(cKevPW=XU-6xgAs^uMK`X z-RIcK7UKHB-<>ibrN1rR$PU)&t1z-(8C~Rds-F|L@pzP#XBWLU9rj4)`J3WlQgn1? zpjqAnrgi;5txCFo*%IOVJ$7VEI6vJ*@tA3}5KS2ykNu-13*!~oGFZR+NNpi{pVyys zj@RZS`iHBk{FlQWSIG|7FcGa-6iXC%yC=%33UN{PkCE=`BTWnsFD#Ci#uFnbU(t%;6pXunBgcBqdOoC@AoYBI8g&JURMkwi z2&v}i0`~3%O!(|cj%ulnGL3LFo}AB3csFNHO6D(3HCC;0Xw}9v26q1UZN_sgmzpkl zZd2Pj)(h5)A=Mu9g*B$cTQ|~FJ9V^skdCG?sPm*r|Go_U_fa}K)=SnwH}0;E>gEO* zLV)fnqekt+1J~JE_%Ujf`{OlN!@NDcgt9_gE=2B-{o zk0Flrs`b2k$YG8e?jF*{A+b)W>~i;rhWq0>_s3fI$0+>R=eh@1d&eHSsCDTh>9f&p+;L$9mg) zBj2&!LDCS*T*rFXb0;{~dtM?795p{#bE2w(#_a;fdf(fw$gw`~_Fd>$A9`-FV|`>D z3@h9M3D1ru3KwU^6Jdp$9J+mnQC&NR6_z(WsVI&Krf`d*;h4p-!lhX&%c?4}yxCpp zwxz4M(N8N+d)E2Mq zYaHu)ckRGM;QwsRkTi9zx5o{R^@H_eNZn`}t@#xG$7OgbxyiA9vVO)1z?67t zY-$yj#EMzb1;tq98%`-Jj27obv1)=zrWuyX!0Mb>9LJ|&D?Z!hmpO2r;hj_DL<@0R z6Pw_kGc*mXPO+kRVFKqaSbo&qswSkWgDa2!zN2<3TsfIIV&Ee;R+@+>R=R6rB8FO0 z)oyi9NZ|^pISW0wk)!Tad)?_@x~SOwJWrWBK26=P9toUGL zTDjO!PbgeKH1g9{u+WtSI9aKTVLDlJy@oyQsAtr($mE2A=@n(}w_$QI2Mf_T_39ci zcf6Os=NFtqQ zwIES}^9oEdKm0Cv?q=UQ>O1v4(&TM6wG5x$#i#j|7E6)dPKE_OR2>t6?~+xwH;KXj^687p3hBVim?U=Q0{AQ9NYvWn%=3Y`6E zjElv1t6r{qwv`htr@0hzBdwP^y`UssS?HZDrRo%|LK^2T{9M638yFp}j5%6sH_vpc zSmLhQ*p5%Z!e!A4cOvMpP77(A)$nr)?@dRiTNrkFnftA&G+j?O2Yr9z&ip%p2*iKCn9W|(G+;^G|D{r*=$ zyrjIW!d(DDx&_t-S;gq8cyUpzBCN5frsF9SI<1TqWu@un+CAOTINfRN_D}NrV*XVY zjV0aI(e2!JrWRsmRl3b|_v_&3qjg7j1t>3%xtCx){;h(4)af^6SXg()=*)^H(1@ag z=YQEHO%K$ALwb;DG-JzKAdik7;^rh&RF137#6q{XaKdv~H%ha9*T*<|gdT}^sq3d< z#CGJNd*8Ji_AdtxYs~q~tmW~<;;hm#|MTBXfm{C=M~`(Uf7m^vNvtf7xpKUtC%95q zmKDc~!Ww5wjmwLpE8Va9VPeL5;cB?DXGu|CH>Syso}zOwo=R}WkBfk!*oyz7TPI<$ z)zh%KVY^3};pmyPSYUOjR1e{tNj-$~0IUZ(&(X8>@#uSh*>Goa7(IbM-r$(y=(*m$ z(G`^{+ue7xfzt<6Tj1#VZsS!6hK(!GqlFe$E#+SIxdIb$p@l`s!ljqXiya-;IFm~E zSCDw=!ZI=3**i2ri*;#8mjt^qu#Kb3EZp017nRbYR9&o3a&(1jlzXP^iiD%9Tw&on z*5&1nUg5IsU9h?8WJjMuwUoq)V=>p9=IB-Wbhln_MQVegS$8i1R|S(wapi*rHhE>? z?sJBt&vX-l({y}DEvj@o?QBP%<1P+q=&+^UN36T)xsG0I9YiJyt19qSsf0TyTz{UU z*VD37i4zLsteL*R(Hq>RWw_xaS6*5{)AU99l90x)5LyJ=#&3=|dZWG+Vc`ZDWBFSWiooTF-bzR0cadeG)RD7zteXGXo^v3fpNAGrr zddTgJqIg9bj(Lxx?{zS{kbu}%^gYisoF5_9?;~3|GXEQz?oX>a;crN34;1d|12rghe z9~@=809?qp2pnU)5WI--VsM=C67W*S#o!XgrQkBg<=~STSAZ)SC%{#Vmw}fvUIAXo z_+;=Yj86rh#&{L@bjGW}XD~h!d=}%g!RIhu13s7WTJSo?=YiKVJ|BDm;|<^o8D9jx znDHgxjf^h^Z(_U|d>P}*!B;Te0=|;*Rp6@`Ujx3D@pa(q8E*yOz<3+@M#kI0I~d;t zzM1hY;9D8r2ELu~9pF0|-vz##aW%Mx@lJ3p<6Yq0jQ4==VSF!mFXQ{b_cML~{2=3f z;D;DL41R?1qu|FF?*~85_yG6`#!rHuV*E7t8OG0opJV(y_yxuGJXsEHsg1|?=pT5{66Ckz#lUH2>dbQL*P#se+vGL@#o+#7=H==it*Rr zZy0|I{*LkY;2#+O2>yxj&){De{|f$%@$cZnjQ;@t$@nku-$&RqjOM1vI0bAmR$$H8 z28S4j!KsYX!0C(~a6QKL!3`Kkz!{7if-@O60yk#d1l*KyGjMapEx;`q9|dm3xHY&9 z<1BDn#_hoE8Fv65&A21D6XVX{E{wZ^yD{z#?!mYxxEJHz;69A|g8MP<4<5jHAb1et z!Qdf`hk}PO9u7W+@d)rp#-qU5j7NjVFdhpY$9Oz=0^^C`NsNyLPi8y?oWpo3cpBsB z;2Df(f^!+q0w2dX4?LUk@!)*MbHH;M&jX*p_(X64j(&EU%zUk<*4 z@fPrvjIRP;&G;JdwT!O=U(a|e_y)$?z&A494&K4|Ch*OSZvo%R_%`tEjPC&7$@nht z-HfZjHH>$HYZ>nX?`FIQd=KM$!Fw6s2fm;21Kk5 zKI1vyxs2z5Phfl^xPb9|aFp=^a3SL&aE$Rn@FK>G!Ewe*z)KkygG(5fg3B0}gHK{y z0j^}609P?y242p11$ZUnlfkDjJ{5c#<5l3(8LtMP!T3z@S&YvHpTl?!_*}+o!Rr{G z2VT$keDDQ~H-Il>d=dC!#+QIMGQJeNiScIeWsENeU%_|__)5lCfv;wK4ftBd*MYBR zycK){<89y@8E*&gV0;t!X2!RGZ)JQN_;$v3fbV2{7x-?*)!-V&JHfS#cY${^-UGge z@x9=^jPC>A&-elGgN*lqA7cD4_z}jBf*)hNAN)Au1K=kZKM8({@zdaE7(WYsj`8#0 z7Z|??eu?ox@XL%}0l&)lHSp_<-vGbK_$~0;jNbvj%lJL;`;0#Tf5`YF@W+e~fj?pV zDflzSpM$?({3ZA+#$SWKVf-!lJI3FGe_;G0_$S6cgMVTCEBH6Yzk?4m{sa6cf0^E}EQQ%gLTZ7v$&H}e(+z#BHaR>0xj5~rmG42fR!niBA8{_Wa9*lc} zdok_}?!&k*xF6&G-~o&Wf(J1k3?9OGD0mp-;oxH!j{uKkJPMr6crqcriH6cnNqZ<6>|L<5F-L<8tsxj4QyEj1%B0#>>FV8Lt4Z zWPCFC6vn55Ph-3ad^+RR;4>JX2|kPQ+2C^+uK}OScrADxU2)ibESgF@b4(?k z3Z@c|`BI68e5u5vyHw&4Tq^MZE|qw!mP$N3OC_G1r4o zm3SzYN<0!vB_4>S5|6Y}i3e4w#N($_;*nD-@xUpSc*vAWJYq^E9vr0-kAqT)$3CgV zL!VUQQBErHfF_lA>Jp_!CVsJg#s6~3Z-!B?H-3YTKdC=P!uMOh=UbW9AG!G|)A}nn zUuP;KH{Z@wDY^NfOr>)3! z)fvW)YL$iY*P%vrilnnq*(EqCyJV{F-Z1sYB}5NT_+t&CrziZu)}@|@{#e8Ny*!Z| zokyxjj?XTRzr~S#di%y7p~+@N{1NJNjq2k?bU4FIsaAck6C&!jR}H|78&snPM;sR0 z&`jl5>(4oeW4z<|(H#+fbPyxFE&S*pMtZ_;>ycfO@g3PG86V6jZ>Qu8gvs`eA0f0Z5l&=7tW{GfBZ z?ANFnROhjgDb;F5wVF(|=8C$G`;WT3;ZvjXsIHvIv}%=?tm}ADmlsQN0rZ=ZpKMjK zra4s8^vKL=H78lqyhwc(;)%gAn?%2&B>Fv?M87|i==Ww4lYLpoV)JA_*1hldVjcT^ zSjT=3*0H~m*0H~m`dp);6m_Ra|7sOYMqL=m`2RZU{D}YgQI{3}^P`Ua&yTt+#oR1q z7@ubtzgMeRGEa*_-bb~HyC2nRDScFz&_{I{K9En^t12;3s%q4-y=nzsom`_%iG)~c zbAkgZiOG?fsZR4|fj^`$qgHvsA0-g}n&=NJh~(r>?vtE!r@JA9B5Bp?^lEhq&ABro z_5Md=>ekaE%{fap$Di@Z=J?BNvN3*i$uW+``7<%OUa{sT_c^kSKhm+y+1_E3YchwneoTFpUN6_4vp{hNYiR{PBQLu_o{X1j`cO_{Jm-eUR_k9F6RBR5oxSe7xU95 zS9#6w(*fb<-p}+#@AIfeZFUc7+0|-ua-dwkS8c&zuBuU2?^W00)%7)M>t3}DueR5y z9e3lzFGbyq|0j}m#sU2N$!LQ!#6c*B;{0%|vW>|qWXw@vBd$`76)Md*SEU=9m1AsI z^^9GrzOi35FkVp+aMW-i3{4VS4F<{H(~ z+>Ea*ZC9<#U8=RYA73DR1s~LhR9o|B)h@+W?Ngel4k;bg(J2E}$CUA^Q%audoU%}L zNm-`4rmRujQZ}pZDce<#lwGQ4$|K57*{^!1Jfr%g97Oqs>X-7q>Ywth8eo}fpw&x~(>Je3?4ytA9eeg&4lG&GPrTQM_uj&-_mpWB9P^alEwMzF;r|8~lwH~a_ z&?8WeRcGmA)!BG#{2aYRtlxM4J?Dgte zdyBfxzFA#w?@?Rr$JGt?D{7m4NZn}vthR@2wIkF--4yDmZVnApw}i&4TSIy3w$MU# zduW-uBeX`{8QQ3>32jz)hptoAq3tMdQ#(V|`1h!)4IM!Fl-eD7S$!OOSA8Ekq<#qf zq<#!5^;5X9`Z?TD{SqFeehp7jzlHPE_u+hXIDDe|BfJo0vHB}qss0Y1iHnzw+6-^g zDdAdeg&)-_d{FD~A#I0$)uGfh9Zo$;r>6GQX{n=hdTNgPD|NcAmzt;Rr=EziNJmmj z^`O)hdR*!%JwEkfJt1|go|syrC#CL#dqhu8J)ozgK8NyUJvH@RJume$eRk>(Mt60K zJ6rJ2biZ-yT|MDRT70PjPIuj{ZmpY6bopucyExtk7!J2%!?3zT-RbRY-i1pq4fnBq zpPg@|&&XH!r_*Ol5u77rQpoPPMB?b7k&P_j&YiwR$WvvM*e>J?bgA=k^=( z-D0PD=^CTE_X>MGoT*;%;MMMX)EnLPyxtzZvu44J9Yz}u-p6|%9eM9l-Me1tf*IYr z_1L4nz`t*1?=T|Rl3HO>Bf9mlLm6iG4D-jx$UW)@H#wHO))*(^`DsJHVPxsIjBNdm zF-^Z`(7mw^cTiG`YYo>{k8G9 z{?<6Czc*gjKN#=oAC33%`Xl`l^;3T@vFbPFUJ*x(m(}lTFFGR2cuXC}s}!TRQLFyI zE6d0>wy8hyN~yoFZA(M_jR!V$2%}g1UH2Dn)N}CkypilZ{E}9=J!{Uc*5*zfO5b#a z5$?K2J9l^8sWbK)!>V=Ty}EgRrf#`gw}Q*srQ2ufPWb8N>ES)P3#nfCxl8xir3WN; zAG+Td?CDe(=&B0{hhT(9|uO$ z=F#61h}BD5jMT1?qFVJ**9_x8tv<19wOUrIqbSa=)kWB2QMJmf)l0osgKKrU_iA#j zuJm4AU8|S5ugqG#(l1YS%lw^sHNM2Tx>m17qq^?WXL;Lqs?}@US5B>7SFO*-8yC*T z;kMT5O-IJd7NaA^%O6I%{?lln|1u&rzL8+37=3KZn1J$FTNzVrZA`PnMxLE&l-Oy; zSt!@o>Bf1sW30Cu7#G+-Ns6YVAzpF}tzxwB5vb(QazIZZ|jHvs)OS*hd-P z*{zJjc574HZOjICmf6&9Yqqi5n?3EL%>i~NbEMtboM3k~r`bKtJi8Z-HJae&Y;Ua5 z7z!IIGGf?aV>|}T<;ekqr^sl)7|$bO43K{R(!*E$vxl!dGCGvouhnWtt-cynpgXVg z{wBLqjljhm{<@59ug6B))T%3tIq7({W78HRt!t*frB?5#*0=7|cWyBpyr8bW)1SJk zcRDs}kfcn#bB6yKHPr6Wd)z{MyRVtycjb|unrSpL47;xpviljW?fyo8l!NSn#&CO( zF~%NjzO`ut%boMj0FJY~y-+v~jyV#@K6*H4fMljOXl$ zM>1?Y&oZ29=s|~#Ng2&s;2R-(F>O=yefoZsGx2S#`Y7>7ZS%_keu=NYxPMfoU#{@W Qb$+?QFSq#RwO;xE02Qt5-2eap literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$1.class b/bin/jake2/game/monsters/M_Berserk$1.class new file mode 100644 index 0000000000000000000000000000000000000000..652802edeec5fbd0e406265899f78efe99ab8380 GIT binary patch literal 891 zcmZuv!EVz)5Pj=7b>g^fNDHKGLQ^P^G!%<+3__x%L6*{9ihAfJ+9r#$)Uhjj!&h;D z9zf#22k=pdStpHL5lh~;vpe(V?aci7`|CG=1MFKc7`8w2D{Lp|ek94ap)FFsK3hWwg#3`=ihDAikrT(fn~U>-$7VIzm4gFKcPR(moO zr<3ueh(GenKrmE#(SQf%JeJy?9hzz+6Na5$Cfy=U9frIwl=q%tz1bq~FWe1y=(}es zmZ9G%;2y&=CDTvnC(<7&hJu`_W@tCF8N^TyR9|%#owY8CxQ~Yx9x$wBRDGaw9r8pt zsA7Y`@Fl}$mO$6DFUQwWtf`CGLft~`ZYBSJnuAB!W+)}mBplufXP%86JhAYYp_@YSmp}Bcz1#7d=3nI{($~RbV=Wnp- zIHezGm|y2S6%qhr3q_-b65)zbPdOXYxEUug;2EB$GRkPu&Y=5N%Cd(xp-CMFUeIro ImzGQ4Kcr#2g#Z8m literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$10.class b/bin/jake2/game/monsters/M_Berserk$10.class new file mode 100644 index 0000000000000000000000000000000000000000..80bca965daf62fea1be753d55eead2ecbb4195d8 GIT binary patch literal 648 zcmaJ;T}vB56g{)MF?LP0rq<62B7H~%T|b~NkwR-N2+Xn**r`Qr zc}K+v@uGqfCIn`h z+NhK3{-r9;_iQLQdha7&jNF`I@@n#l1bA| zPFtovZQMY0blbIDqkh4`t;)Vq^SQb}e41YuZS_U_ z1*RWwXv^Dk$3xT3a!dPT<$8IijAen<|862sIWk5S2br{1S*(FK$UlQY3ULdT#x+M(hULC=oF>3fot>X2F s`kqJ|1kv{=%!dJUepnqbz4jd5kP~8l(7%91VuU5e6}~ZReiT0c0HLpfPXGV_ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$11.class b/bin/jake2/game/monsters/M_Berserk$11.class new file mode 100644 index 0000000000000000000000000000000000000000..61a266fa19fcbb67b032f932230df4a1967e967e GIT binary patch literal 988 zcmZuv%Wl&^6g^Wrb>g@WLf=r@lmbahYf@lUgaoBXm6C2!b-^Z@IMZ~nGmh*@KZYM* z!vYWp#DWjtqY!tJP#IcFp6ffl_ndPdzkdJt31AOT9ZWE+zvZFW^Sit!{9de5Et1r4 zv|f@CNw`_7Ij|X4GEs+0pPWk-zUc5iMKer3lS=C63|6Ij%3vSF9pS=4!9xy{3^R49 z#POil7Rd>3M}nbLj{_c^@BND076aLWadk7GHE^pj&#s`o_gP79A`wOpo{nT1I|dwmmFi znW{>->I_S47H|uz4sKH&8L49^4|lM}P#i0l>MW-AWjQl{h`E3=?mF0DSj~W4t=q#U z?lCN1mK9%!7T1~wVJq#+kV>5Uhoxr%4E_UD9aI>WuHqYYE$v~;Ko^5Sk_e?uqEYqG z!;ZOMx{fl425o9eDx$Ohi2t^fM$k0s8oWOqu-l9WNg!TJvjWqXJGN^ENLzBKf+$XD zfDNI~W9qecq?AYwBA%uq#X6|_w73|av{>XjoT>3o8#1wqKO9O@0iQ=-(hz93syd3 z{VVRj$JEH#Cdd9@@Q1oeqzIOSyp_kiCna(Hlx)f#f)AI*`;n-XN literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$12.class b/bin/jake2/game/monsters/M_Berserk$12.class new file mode 100644 index 0000000000000000000000000000000000000000..79ddf35e6b26848606f564713a1d47b99d6d8fca GIT binary patch literal 1717 zcmZuxZBrXn6n-w7uq3%q2ti9<6k94#q>;4s1+Y+%VA`amhDmMJ#+%J0*=AodyPJ&u z2tVpLPQU1vezh4;#}EDhe}%uq@!UEf zbJ>QlW!82bKaifEEmgOPNUt@&n$rEj$o!fQMCS``v4bw4$TMXLbQiUP5 zHX0tcvhV#SetBplSLHmx_^4rzW({5O2t! z@F_!Paf#HsB5Mh!ku3+F=`_~IFvY+rnkt~$rc^1ZK3Q3edY5(62&%#QX|jA_sgl49 z-qi61B^=3VV8wA3vs8Rj3M*(bu!2%Q&v8MCleYM_+CNg_w>aL$94S$O=ZC^Mff;;P z^#c(|$|QkHnAdT67;rhH#BoJM(EXO_I2}8I1uW@UWSEX5xkv5X7QW=TiewC*HfKHU>%?6*kHIADdzPl;J6i{>{G0I*y1F%u&v`Z z!`X=Ckavz9(9Fa`BZdp7&O)J(&*xR^7m(-J!)MB%Wm*K@bTn_HE4(n_J1FY7%Pok?$ZUc>ll{n)9#mK&~)px{RPL7-i{@FU;3B>!5ZSJzH}!M zuhZXkqD)Dy{(-R<^fQ7aeUn6?4+>>i06hKXLE-3=V#JhDmZ!>EZD)o;=5RpD~D0 z#cE-(Yg7)j0>-sFn9+*3td%gY-N&l7k2UQ9Hi&L&W!%*cP}C}TqCG@QdxVbmIIQqS zzluSHR1Xf(2tnzhNq+<-$xN(<9q8gIW(n99NyjicGqEtm6Lew`KLQ&L(HM;s;L@8U JKMG!Y{s*+SkrDs^ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$13.class b/bin/jake2/game/monsters/M_Berserk$13.class new file mode 100644 index 0000000000000000000000000000000000000000..c72dfe8d813347be62546d83cfc900f59be41be3 GIT binary patch literal 1082 zcmZ`%-%ry}6#nkoQ8tReKtL2kMBSKBVT$Mw<<|@e_ySp?MCWC_Y;|2r+6#d<9{h8B zPy=dwF!JgjWjuGAq(*JidwT9U=Q}^X^W*2&ZvbXcFc4!HeZy;F#;WkTunpHioWs z#}m)?>pLRY;ybQjNUi&2?iP9AD7|&5%c>JHjIBp<{j;JxL%bs7+6qHoIz#RU+;X{B zu{LGkc$IuRdKgT~raCCug4+~8;9iYkARUDlwo{fRna{jP;35VL^iyq-^ewxIL0qE7 z>W)VR#eFu^l##I9&3_Z=bed)N?2A9>`iiuHNV@MQ5S^B}IkPPkV?E*cS zqRMyO#CQ{zABOs31Cp3grnHF+Cdj|;9|(E0M>At<%5dAnq%s)c!LG|Ip}Mn7+`%*@ z^2DKR^~nkeC$|KCmnh8-zlr*2!*>#yhT&~W`RI9{r#XU3XWQm3+G!nr6{I7TJ_4V z9}>kILRNj-0Byi}o z5wnWj7&88E{PSU7EbkV5*CP^v)E!F*=L^E8WLwgko)y_jx=xv3*C3s4M zx$Fu0QbY7!{(>u{jHPbSds8Xh#wl)PpPwKbKR!h^+i{AikC@4R!kqr@Jl}{aMSG1- zjbljL!KhZogl5Ci1ZK6}MjidlT&+4ND;DsWD$($yfwPDuk~)^@T%|8bHq{tCzW|JD BiG6#kmt`wjsY(2$!D(EuxqY!ojLl-t58i$(}hNnB@ln%xOIGdMF4eep@H zGB0YpMGcmCqqMY2QW7m6`~m(OUoA^LJ-blD#VWUI`gET@xBkv$fB*Z}-vDH=6h#9= z#}#c^WYn@|3e~hN*AtGb<_lv)gtOc=@L&`nhNA(gNz0os#Hg;VkSs%F*su(5gn@VW zEHH$|ZCxb55myjKgrRB1u*B@DSrpE^R;&t!)QnxystcN9$a9?;@+yYQaC#=->CkwF z7{X=YQxw6PKqB_a6+;ZWusWAUBz(<9Z}rP&=RmR zMHv{=T%n*7rx_Z`2E(ynbTUN+!(6c)8Fvg_gso|~C3RI7npf$+s;wn(AG)JBvo~RT z6czNKm%?%FRZBN4UA)53CXv|(V^2;RyI(;c`U!DgoZ-Zw80K=>ETI#_0}P!e<-h8x zcJYcRd9F&&cGaS736;|0_M3VpLA6I!b@t%%^Yj`84`GlYHeYeQbXk5RQ9CP_)sGrMv!+F=FfWKeNGsA;;FnSETr6Ed?gf?r>% zYUMb_FcHN#!^uEi4;Hb4NvRk2F_jf6txYMI_Upu>e$+KnEBovx6+DF*D(Jcy!&OuxFtKexoL-_7=foZRaf?p*A)HT7PGW{#5_AKV3nA=-9drT|1AdMzVtBxZq zPbx}h7Zp7BAI>r~4qQ=P+UIkp^#}rbPL=x5ra2PRJWnev`y-|Hek!{a+ps)phQ%!P zlf}?DCuQ>5N_}c1=Im9cB(jE_D@S(6R=+G~YL7{)RJC223VGpGY@I>LS(b3dtD5Ty z7agG4K(i43O4EwYQ97L^%7})0e@1MJHVsJ7nji}P7D9BHq_a{JBHBnN@{cB3rGY-8 z(g062|45{!F0F%K3#js4)f8H4s_X_CkS5mCKcSVrV_)LJEu2h;X-VC48}}+o@;1_Z zFtUlJbV_Xt@n10TdW5w_!W;kmvBQ5jz>g9?oqE*g45h={7}+AjBjL{x+Nzr#ty%Ri z)1hr-+d|Em4K$Nn?iTXfIKPR;+F^kX5)ukkWbkAH(#`6gcD-{KAa9j^25ag+bxgF0OUt_~_ei0AQwpNDlU(vGr6yi2r` zNngihv{NqS?nM;n&#Du{c!_usXvA$o>@S+J$z<|Rw8qkLQYsR=0VU`}Lsa^Jpf5o# IWU}e^FB6T%I{*Lx literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$2.class b/bin/jake2/game/monsters/M_Berserk$2.class new file mode 100644 index 0000000000000000000000000000000000000000..5b6a6c490bf1ae52acefb5e6b05d69a51e48aeb3 GIT binary patch literal 849 zcmZuv-%ry}7(HLtQP$Og0|60);lK^lCG&B{M39*!!A3p&!@x*~e*!d_%vf1#(ST@F?HnEIMA)szW|B^Id@)pd^lBikIhnBVLTMGhB;;!KOM-n84y2153Lf%UAS`v2mTxEH zD;Zsgt3VRU-LNl$OA)Cgp1ri=p)!O@H&g4jhFXNYFXPT@!fLI~*`Gus5ZZ5?$C1*0 zYY}$|B`%iq-!oD~{UK9WU5^OswXD7zsD9jwTlMz^+{3zqHNr}!{u|!Pu`trZ2JRCq zU-2%o0?FEXYJ43=iA(_xuY4e+Ul`u|x1oIMIW7i_~#Z!6OHIgpCaUpBf&j z*ynLlDq-u^aXOuLyPbMrWblFalx_L%%mnv5oJ4)uR*5I2x#!Q4m9lN8x*vpwS9&Jn zVL0G^J6g-=BoM|(gI%!W{39Vf*=dd)j-E3TWB%|v7Qga?1(#2k5mp5@e=KtBO_Lb! zaK!bo#AhP#lra&=m6yLTOzDX_ti231H>Z}dGNZm@0WO2(8>}AXZ?Nfk#c$ZPKhJf_ v+yJa93f4Y~j3w(J)m)qMW}2*k13YHc9BL`IjzdP94F-<*cKKV7l);a2;ScafIo_8RCMcQ7yLq|yo_p?nC;9#7=Pv+@C}>a^#@-qYzL={UO`dDo zmg{lH&Fz)9$Z)4ImDiv$3Tg@Zx92iF?XGoOnieVlaj*$D#OVv9TF2h7AQ0q2As|?{f_li3V{i!rX zpBg#Sua2tp>wjDu~akqT-dk)%2SP?qN{F0FevS z@A!2LA;}Qy&=FS6rkMnR0v>{k;66q*j4%uZz;49ocz`hm%@8%ys8ipp7{vr8H9REt z?W~q3%v?zv>6pSJnzLhARlDiWxuC8m&pt+w!i?bjd+do~h@uqR(_15h^tYUCAP@%wtelKvKzLQdz>RvWzU*1!cvj pGSDv9p(2~#z)K>tNoXpRxcoP4`AuwN$A6cib(iiaMaeGd`U?&v37r4{ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$4.class b/bin/jake2/game/monsters/M_Berserk$4.class new file mode 100644 index 0000000000000000000000000000000000000000..21e0cae40f758673855852ff18ac11c3c4f3e23d GIT binary patch literal 844 zcmZva&u-H|5XQfCoVsyb3L&(mP})L)q!m~y+=7sx2~a8RrBx4HBG=g_Ce9k!n?4l> zKp-RzJOB@c_%{D!R4jSNiORH0Gykab znntFBo#zg0f%RNcOX<^oqz13L!AB+wEWC(Rq+bdYYV|V#`ylB`7X_3&6tN(%+>Vqy z9u3cBdK#R^QlQdK!XQ2i(#ZJJm$vRlnZR~C*Xw_R8Un?h)Q3%hYOT)f%fOEV)$>nu z8mV4m5jO;u*v#nfWI9k?RuHZR0;{z=UUs8UcXXrvzJyy?b+AHhx%Shzhc(<5C{NWy z>LTGt@}OLVxDxJQ!@*sFjU4Riw|KaRO?I4V9VVA@Cb;?!ejG92Z9H&rUtsMj*vRT= z4?Big4o7J!l{ST3Nhae9jw{cceY=2rl8n+&zKP6guFY5f)J&G!YpF0!GEVkL>VCpm zdWTBM^dJthOlH^u7tj9*))|uf0{EU65hhK-inQ80$ee&E0s^{0vFGJ=cm6%6zyJLF1z;CDHVOi(@BF^p^}7B*dV^S{S|+J? z)P7APlm6y&8a&1sMY~wf(`6?NbXzwYXJy>MqKySg%XQD>NpPjT@8s{->^QU~!!W_oM?(8mG8UB`xvhXPC2xkgo6 zyVx|yN-#_kskABNLQ)xBa9DZf)u#(M$MG-;D%<4(F)qq_7BW{;X?rqPlpzT5iABP^xa7k?G1YD zk2#(O@PyU?iq%`6X(r`{j>2WGv^XuT;&xWL&uq4VyYmgTuUP($HS5!qF_G{APT}L2 hvoOicI7ZSI9+6bU<8e(L4O)vk1-5xRj2U6P{sMp&w_X4M literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$6.class b/bin/jake2/game/monsters/M_Berserk$6.class new file mode 100644 index 0000000000000000000000000000000000000000..ff8d359d6289ae9e0c028dd2c443ef71322cc822 GIT binary patch literal 955 zcmZuvK~EDw6#izrWof$=s0b8AsDQShtdzt{jfo;AO zjYhqAP=hh?;1BRe8Q*LdvQ-Z=Z{EE3zVDlP@7M1iKLJ#+XFy|EeZdE!YW4U~SVK<+ zq3{E%*?vMs_=AlH26TqyMACr_kNS=rJnryQN@kdP=tw7g#E>dijv4fQuOqTZA!8zq zDTbMbBgNrpcq05Ge&Py-Lc_DUd(3@D`SGP5_ML#C)JSmsPf(2^-4kK`DZ_lZLfL2B za=GkTtE0^Q5qq;*Aa3F2h3#dCy5%xWjYSyI`{=UnD zKm=F=4G+yEqMe3@e1p6_vW#qc>pP~u&_P3%_AFUwuc1>gN4_~uBAX|V_%TDf0=P$3 z0i+7EpUI5N6*{yxiPF?%X#rQ`QjfBU2AkXGm_Ns|{_+)O)%h#dzTx&q-(U@;NF;%=mFhbnbw#SGP3k;MDhjqXacS7~MAH_-79 D8E?^( literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$7.class b/bin/jake2/game/monsters/M_Berserk$7.class new file mode 100644 index 0000000000000000000000000000000000000000..feb9ef1c080bbf4053da116c0b031c104ee636af GIT binary patch literal 848 zcmZuvU2hUW6g{&nA5sLmQmd`Ct)fC(C8-ZSU`%W+h6GFqO&i(=9AFCLF0*8J@OStV zeD))Lyx16H^wl3_ybBH4L^j!b=g!=F&$(yj&)@Gq0qkNY4ufI+6}QE1sn3U^G<21( zh3A**?LBhBv-6MQFd0@tNe4X(|@ld4}%V3AG;Ea2bfTJx^m_D9kt;3#1zn_;;SMiD*P)oooao|t=Y0rU4SAc52A0 zYKGOh@TZk(wRl3Uec_zZ2=gcsB9}u3GmmyVEN_hJY_kH0LZ^EOuf{CTeq&QB|L-LG#bn6=uUua>FUV&x? zE#JYU!v%^{(J*t4y-Pn&< zD`MpuEpwsKidsvJ`u0vXbB?Ro*y!aVdvlH($L5Dw_jFKYe1v6uLf-f~LD`sgx(~i`Ht!6IQO$F5n#kNSjH-yD%jiWyWZWO4tdy*zn zwd>QkMVR4aS^d8L%xBDCan&U(SM&0sCBxKD>$UeK+{UtnCBi~3{aYT&exQYe72F{h zZONm^3uIICWv?G6nM?_Hv2J0Fu$~k7zXu2Rut6y6c%WK-f1tt+fjk>qcwpf^VI@cZ zCxwG;JmhYMOv2iY-FRN3(HL$*i|7MSDPQs5mI?MrJV-*(kl99NCmVm34V0I5sKO}L zJiH^3cH$Pn@stwDK@?~$G&aHe=HCcI%X?#7XafsO2#$HjI+j%q2|(vH`ZhYJi=pEEucE&*0959@_vC`er>+Xisa`HpGC9q literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Berserk$9.class b/bin/jake2/game/monsters/M_Berserk$9.class new file mode 100644 index 0000000000000000000000000000000000000000..6fbb383d028fcdc4531dd34b5070253b983e7c04 GIT binary patch literal 959 zcmZuvTWb?R6#iy+lTFjurfF-nwKuJr^tQG2f>Z>1i3Ad%q@=Wch?C7U8ME0fyAxl0 z@hA8b`~f~F2o@3XSrk$5?}%rcP!`&OnKNhiob!G2o%8+Q=dS=(@xX+}F#UqJ#H!Wc zZDF-NH&DV4tWtG@jPP4?4^0>h&x#}v#Ee@DVv}?lOQjr9bE7={Tf62I+XUltw|=T?If)z=Ow2QkMp!+iuI&ka z?71l{Vu?y0Nncc(l29fteB@!iP{ zPHo+GZO02p@{&+ZuWsTV!(@cq`Q|aC3a%^sO@{}82uK-%qFKc0Ny9?EN!}V+Mm9G8 z35gGM(MaM@W{s{tV9?Kg@>AU)vX{ssiWsCbEU-j2ETCu7@5yx2!|Kp}MpE^&)C`7u zsjp~gLr!<%U*h|E|IWTaJJ!EbTFi_re8i}}l9@QcwS~pR39hH($Ipk@n-gUBjCW^1 z8Da?S7t-2qOlf~$X@5^aXS#)Zpag+sSOlBKELJd1GC;q>)@10?vqi?bP@2&M%%DKPqp0dAv&po$|ZrbtiTE}sEtA$~Q zTxZV(@r8-rg=O)|L}6uhRc&3OrnYcm@kkVj8dM3nPHaJZNxZNkUR72&dESCVNuBF> zW2Y5O98+9d7q2SqT>_NK;;_B1v2vzMu{n+~SNUOJi@JJ~yP==_-3NGD5VC;PZg z)IXjz^;N8NmI^!TA{F+vuTQ4T!_;`(LQ~^R_B1ulBvydn1m^fSlf5%Z^JC^r_OV2E($^B%Ni{PTZ+ zsd3|hrp9dtnHuNeKvUy93^p~+!w^&BJPb88&ciTM<2(#EjLhrBc^F}doQEPyWGf>r zk-dzvL^djVTo+$NK0f#N1393yoxQ69nG~wb`-Znb~Mit*-?olvZGQ< zWJd{0WJmKYksXy;B0DNK#XfvaB`uL1EwDs(w9pdSQH3S4qsq(#sVT-}=Ps*EjeD#% zHSTbcsd0acO^p*&V``kAT2tfn?7ZvZSU5ZNW<5^Ml8g~QW=_shOJpa@ERn4oZHesV z7)xX`$66x0S#F7J=QvAbKgU}l8#=)h{U!cHOXN6DvP6#aWJ}~YPq9Rf^HfXZI8U=g zj`MU&Rel8Tj$v-`#RrN+1LfP%FZsd zRkn7K>*NMEsul4{4)$V0;z%zsBo6aZL*f`OGb9f1azor9P3TyJV@;s#S=7dM(3+qlWp*vHL=<}c8< zm>T=I)zsL>ZKlRPZqKBuw7z5^H@(Arsj-2zrp68)Gc~rb&eYh$dQ)Q)kDD61*kEdG;|Wt^A5R*Z zKLel2Xp7>>D*x_nqp7ivr%jE0JY#C?W0RrzOZ#S1B3@U{hPIj-`+48g*v<#0#%?||H8%5+sj-)Brp8u2 zHZ^wgiK(%XPcugRnEBlM%o5qj=a$G;zOY30@}(*IbN(w!*V-Q znoMMNBugs*xk0V^s*>^y)h5fz^-ZR~uQm~{(L0;X^WOv(2fI5=5HAeJRMm~E!W+YQ zNnKHCd=a(=Eue z#dR34Wx9T4^^!!ob}OSY@6mO4+R?8rU8h~TtsJX39Z8$?-km*X_T{Jd1ugXpBiG4G ztK7oZytL+{-B7+mkBJ8 zODgK;xlY@35P?r)XY2G%wrlL#ISuM+IMDX#x@JeU!S2jBva9sYjLFJGMFOVnDWc~) zl4#C^K>Vk=z5l5$#LS`cPoQ>k5@E7W!7w`~Zl*F8AWWs*EPwv8+m zx=>e-y3szalRbnx$#GoT-*bO+e-G0EyX>KNl)6(_-KMAK{^4#96Jp=RsC}Z;%Wu=q zbN{8=3_uoSqW>vCui4Gzs|PvAbp~`DH}0Po zu3e8Z&U61FCrpRzGKqboG~Q3*B#&HoyN+>+N969%ThlyJch-dU)S3mn)XvFLD=Z8kD!?%_q)u&Hr#3vdz=&j53)`}G?b$@Y>LVnLB9%bnW zaZ2vuF!zg6sUKmvN7;xF(Jb(2p^hdS(O`)S72U1}?y3KJTK{#S{_9G|(PP$l6!yog z^C+UnT(ZkC`$wtXAMe?KF>0 z*WPmAt)x6&Q~-cCSaRb?10K+*RjTVea!gPkGda z+J*@aeYWrk2>gx@JzL<&T;Ck_d9>m zqmHz<>$I4VtV&F(uf+9WMtq*W-)cFbx+GpPD_)b-%wp70)D??!U3sz=Q$Q{Te_xvQ zP0sWw#leo^;6md%dl)NNqBL1jhdUxHQS>~$7$!Uo$%Rxel_TS|36EZ)mvKkPm!ise zoxaV>mjRS4iPxZ?9D0>r4-=kjspH$?(N@9(1(hXnlOc!K-=d3?m5Zutw3`UwX(D|MFNAe{Y3|)) zX?#hPw$UeH`q*_^ikY3UEz({cAvRW`WWI6Wi3@Z2Aq z>WXBkR`&JOep<;cPsA(g%C*$ZQw3UzmL=yE@07cH>HsZ= zD&w`ax?Z8DdQw{mdTMH+x2O8(l|bQkO>;j_^;fv9$qmlnWYzp?YtoB7`qWc{)Znnf zy^fsPMjcNLakpy&`awq5ALgmyS_$b3yB3N(HBt)-*H+C);utj+O-ifrpyfLDbJ=Ju zr*D*WgM&RaPIr*)PhKq@;;9KdEZ>N0Ws;{RyT9u|^z)-urg~}`H}jt%wKT(1GYOBU zxh3^AHJE(*P-y*7PaVeVNG;Y!tRvgh;hvhKmy0NFVi)?;6t@cMNKYN5`^?kk((53s z*VIMTTs1GO;>f3%e%5W9r%DuV(X+7HR^ch_->jR5BYCxniupJx<$9D}SMjVhT|aqE zj4uk-_2~5K`kIo&*rZc$gShRh6h2Re@QOsCD*+ef;FZ?clU=vYc#C z7!#D72pA_vhNIwI!5+Ao;O5{Kf@9!3!7ai0f?I)i6TCZk55cX$Z3MRkwG-SPyr4elej zFSwuJ{@?+E2Z9F)J`g-u@DT7&!Nb7A1&;t12_6X^C3rM=jNq~0g9IN89w&G__z=Mp zz!L>e0#6n^1w2*oH1Kr6Gr%(i&jKGR_%QHn!H0wA2tERQq~N2##e(O88IR|{SQUM#opYBKTDBX@XA&pCR~6@L7V-2A?DNT=02<&j(*1_(JeSf-eSNBKT79 zWr8mUUm^HP@Cv~z!B+{s8hnl5Yr)qEz8-vo;2Xg=3BDP8i{M+qw+X%-e23sW!FLJ1 z8+?!8d%^b!z90O6;0AC?@G5Yl;ML$Yf*%AwB=}))li)|dj|yH3eoXK>@Or_IgEt6% z0{o=lr@$KpKMj6H@FwtP!Ow!96Z|~*1;H_!Ysgf?pH-I`|F2Z-Up^Gw|nvzW{$J_$%<&g1-TOEBHI`_kw=_ z|0wt;@XvyO0skuaH}LO*{{U|n{4emIf_H%b+R3itv~gX*1XhAW;4Hz};IQBbI7e_4 zoGaJ^Hxt|(+(K{+oF}*?IA3rp@NR;42k#-cHMou7w%~Sx+k^KMycf8G;Ev$E1$P4P zBe*lTi{O31`w8v}?k2bZyuaY?-~$Br02d1G3GOAhH@J`BzTkd>`-2Av9ta*J_(1Sr z!9&191rGxc7d!%7BzPovl;F|eF@nc}4-$MZc%0zz;6nsY08bP=2|QWw6!28R)4fsYn^4ER{V%fZJ9J|296;1j_o2|gKoir`bh zrwKkCe1_mN!Dk6R8+?x7bHV2cJ|BF6;0wVQ3BDM7iQr4YmkGWce1+gE!7Bu>1Yafi zYVb9JuLWNx_(pr2!0U!kl=^GO@bc*KPq@F_%Xrj!0QD+4&EU63GkDGp8{_b{51F(!JELF z1wRXZPVn>K7X-fueo64l;8z5{3Vu!S>)b1iuS@Pw*D-R>ALsKM?#O z_#?sFz#j|#1pKMs&%mDx{sR1^;IF`63;qWDt@~a2dC>jdiRia>c$SXnH*;L#?HiXr z2PIyUG5;Er_?*RzPgGpuvlEy2ro$z^y694WN#PRTQMklc6fW`ggG+q-;1b_6xWpF< zF7bVWOMG+S65kQH#J2%1@eP1Wd;#DRZ}qvvJAE$kMxRT(q~{VZ;km>scrNi)olCq^ z=Mrz!xy1W)F7Y;uZz>&O6aQc#+u||1ryA zyrICKoS9A3W%e4{FGU4S)E!$rQdHPPy|C3MMSUZWQvcbi34b-vz}yDvyM~5MpB+jI zE@PI7*(Qb!Oi@u2jhd~(4OE2IV^VZ*6OG4c6H+uW*2);p@BP0RY<9#Ldv?qUEoR0x zJ7(9!e)AMPT zkyZ$Y8b=YrVZIO~3&Lz)2(ks?a9;@01!0aaq!SF~h(Oud=*U3X*(w+)7Ni-ijtc4o zi55zbYAD5ACq;9$*;t#{J`FS%5~k9;CMv~LnxCSwShjGT%%=*!<6tsDsPu(k?(VD+ zxQ0;W*9Z(isP=^*eh7It#w4Rl5W zE#tV)YNB%x<9R7M-G zI7Jt-#~HEW2D&iq@!}@B6do^6(G{`gVwS8hk3$-R4<|#l*WITU}F-cE8EG+9FD+xCcOdM z_5ai426H2m+B63%dOEyVu%c%;SkW^atmqjIR`d)9D|)~wy35b&<~(Oh1KpL*>pe|$ z9}e9EDQaku zrymV*M$=GdIt_E?(Qv04dJPph%V?yt9OcP0+BugdIG4~w=SG_3JV2A3bu`6!fu=fJ zXqxj4O?P(C47WMWboas~y$7!1!*JoAglqLtxI9 z-9d}#K}t{))D2We8&N(-OXv;!24xFfM&Huq%AqS%9$l$A(F%MoU8zRWrD_aattQen zYAVV@={gmsJJmv3t?KD9wVc+eb7;LNnKcPS1o~ z+7!w`*@B)8wV}5{9qH{*A-xkCM(>6u(tDvJXiKP)wuX+Q_e1B=2cc`|!_a;7QRp$+ z7J7j`4!w&uTj|r#$Mjj~Ym`6I7ok7t`>YWCkd;qAW_6;UvU<_aStIF}tf};CR-Asz zT1>xZokD+PT|(QlZlZr>rRdMB4YVWcHTo-S8`^%V+^nw^W&MnDy9#Azsm|HCs!MiT zwQqJewO{r?)irwzw1ZVa_B6GB_F*WGQU_!wRFCXBRhWH>>Y079>Xm(i>YaVR>XW@r z_04`!^~-)=_0RrJ4G24GU^u1*g*&PP!#(lsc!U}fo}z|^=c-}hMQV8XL^UFOp(+Yr zqYemPuSSJ$Q=`N8qg<`VhS#Yh!<*EC@JslA0=%y(!r!XO@D5cKX{M?p?bV`4ceOY& zMAbwlsM^R8sxDHY>Lbh5lE}GgX=H_35V=|%9l1#z6S*5@gIXSWNF5h>S{)yGL!A)$ zM4cGcJ)z`w5k38Me_ zflqz-`2w`8f;IGX=5)bxoEH5io?n5Up-s?oXfr+QH^y^qNbhqyHPCab=#|{dRydJ@ z2kFfR8tA=z`d~GEl%mgh`%B*bnzz5@?eBT}N8bLKw}0jB-+6mGZ~s}aivH59vR12b zqly-+QqA*KOa3SSLDdS}Hec<@|LmnX(x^HVWHqWz1$oYQjjBsQ?1@Iz74S!++P|QI z8X8p(6cBr%ZC~7*H>!dDR#~GO>TfM;R3r43+o(nb4Pf2*KTP4u@48`Ttl z>)=K;U2l1fY8Ij{SgmF^s3TAmAF4B}^g`sE?R3Isqm!#vJ1x{2C#IU5_UaL*t9sPw ztJXRr)ML&Bwaz(AJ?<2%4Nd}Oxq8A`rk-@pR8KkQsg2IX>KSK++T>iPHaoYf=bU@g z^Uf;uqO(@LWUsf3!3xXN^#jvI4Gm1C1sQY}DP<20u(DDj6b4aysX^1h&46_o3PvU^bW3d-?8 TSsIk}L3vD2o)DDh_~rir1^`ee literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss2$1.class b/bin/jake2/game/monsters/M_Boss2$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7fd6a2ddbb46f3ceca47b5ee0bdb17f196efc414 GIT binary patch literal 832 zcmZXS!EVz)5QhJ0oVsxgEg`g}rL;hSq!n0%V-OOwMXHo?Y1Kn7(Z<;(Ce9jpH+>!u z96102A#vaVcqqhd>{fU(dm~1&6%52!2IE9&BU2q5 zbYCV~w>F=+a0n}fls#pRhLIY*=!>_UN|=2XsmMGhlp4)rg0qwKrH2wKKFXLS%y%Ls zUr)w8nI4H=ED5zv5{md(q>=UWpN<(uny}s}>~&dAn@}D|v%gEIH=3M#CW2U~L2zi& zNDbO^xJIbWUY8273ABCoC+Rc*+ZeYp9BI_z_oyUDF<0cbxC6PK! zxE)1MA;P!{R|TnAvyPd&-vBmbZRj?hAj+z~j|p3wj5KgH`tZEQ#$E_6S!o z&#MJIVrv1V+QMfxS-GWy-WN(s7o{~^&r5eXo40|#{SEc6Sow|(=hFovlkfo^eVlR@ gv)r6xCEdpZCYA7TTGK$2t;6F4w)pipW`*(d7bKsur~m)} literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss2$10.class b/bin/jake2/game/monsters/M_Boss2$10.class new file mode 100644 index 0000000000000000000000000000000000000000..8693d6ab3e9e021a27d1769d4f919fb181d803b8 GIT binary patch literal 2676 zcmb7FU2qds6#nkbCYz*N3V~Y6U(27gw57Bas1yqHmud?wEu}w5+$Oilw#lYux2;t~ z(Gd{=|0<%xFuXXt@Ssf5jyTTf1I{=wV;!d*X+(JuaZy_x)03h)nKCU~q^;_%a8t^%YPZzvRG~1e$?|D6?Y_8S zjvtEZ6XeU_+h>@D-N@i6EAMAenp05`ga-i)UicUaIt^1CnM{s|be}$w5DcNtR76ko z>uE!dGn0xPH!OzI&aAzj!l!}38xwX%3&X0ia&n&1s}s5ztM0Yah8b({V+F$shkdv? zE+XTHY+H|v(<;I@Nfwo5?;xT^#17jHnSF2p(pG(1M85}B^pYxkw$dDwK;1|+puTCmaW@@SOl;cTUBgfD9+}P_>DpAD{>=zL`m2OT=5Ph|5xNW$t zykAnQ*057D4o(?jIxdV@+zwD}Jg1_LVPzJJb}Eo2-4YshVK;3XGpH`I&mt=*Y$PXA zX&F!t2a1Du9t|q?GOW%*%5l`N5Bp_y(t3nSqt2lw>19JNWT`_Ye6d=cB~H{1;E;-g zxtYsYH8jc0d4y>P(SkM=t^YmOaf+9Qb{wYI80Kg?W!elCPc4*e0t>Xtha~h18eT*v z9VJcWNJse}>pNryk7ziGZiZ!Us(L3!X|bjw~EVjAKS$>$nm0gh=HM}oi;VoH$Axi-#RI3c@; z2dASP(_9+*FYeIW$WDui*9Es*u_|ns=)itz)UQ}{6! zkc_zo~?WUc%ZYv(%a<|Ax?M_7bMS)AlJ7c9x+ zY>FG~EFWVRd4kRIlv9b9scfm*GLN M^bgW9c~R;47ka61@c;k- literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss2$11.class b/bin/jake2/game/monsters/M_Boss2$11.class new file mode 100644 index 0000000000000000000000000000000000000000..c7b05b2796edef267394f74d69c823c3b4c2c30f GIT binary patch literal 936 zcmZuv!BP`J5Ph>rSlBEg5CZ{36x0NSHBnDkT7ra1RpJGTgO}7K8Iv)aS!!p4`Vrne z_z51AgIXT^0KdX7vFzDIYqi*_ot~NPe(&|`{qgJDcK{VUuwgN*zT|yT@w$8qntOrPm5p-QMw($Mk#nG;JE;Q!X-? zV3?^(C7uljEfF5`mM<9Q>Oq_PCp?tqJibgvJ*gSi>Itq3^z1TZx+1DQWylpvlzhfL zpR2BS6opcCcPBB+;I@qVrWQPG_o#rNRi9y@m;@Ic*^ZjgZt1y$D_F3RXSg&XA4bym z>ayix5e4cn&<7B1Fsox$o#vM)(%jBd)o zX%HInDXinBjSYt71jzq=ySRnh4AVLos?NBrG6SnQC}GRSCc|Q){2vMzcd$(!#I+17 z7kW^uRjbu_dRq7|$l9dhKSq&&qlmZr4SqVFnR65j!?vhOGgWu|)9jd;(AW=D+YdC& zq#>eS(4mByQX<^+L>q*>`tp|ef9dlZ?u+5CdZPqeY%(CScxrIDtOSvtF; zB#P5?qRC-~Rs*n2(Ez08E`OvjDmUn`qC{!xZ|NN7$E7_2AQ~)xMec15OYh!e_8co) znRDE5v)Rumrau_uSW%ut!#YFOdWD?z8hMHZ>rG6NAHj?%2oO8)h~#cu%?bojj& RUr!Z82< literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss2$12.class b/bin/jake2/game/monsters/M_Boss2$12.class new file mode 100644 index 0000000000000000000000000000000000000000..04d3c4a4489ae7c254c9975ecf41684b2836ace6 GIT binary patch literal 1899 zcmbtVTW=dx5dO~i);JrQq$$NMq=A+aH%Z+%P@pN7B#m3s*oo`l5CU>H_KCfXz1!|? zQWXgVsfvJdE%!!1TP_l`g|w>F2muljPZe+c173MT;theA^;(e~m8aO+Gc)JReCIne zb9Qh3`~6PVT1lo_PvoabfsAU-`8@gpn(~2argN9{AxA#T^@Ct0M@fp_b@uH^B z4&>Ei>?`2kr|FvgsDP(4oDuL28F?9m2Mr2*@C&RT(R7)dD^E*vT%9gSfz}ZtrP^tQqYdAoG)ful8i@Fu^{fowgB!CXmP{lY^@YYsCKb$zk=mf8dY^*M3aVjh1x;_jPIL#*#cXSM)Z{T%Qmvwb9_-=-R_C)b z&Sch@nX#OFd8S-qyA|{z$^|@-9W#xi%ph&dnK>?C(+Y{Hm_uVD?pN>t_HeGHF3Tqw zx-M7MR6D1ANWsI{D-d)~G-MoO??465McSv}5pXvJ=QVkvD78Y7DT%lf`?!Ju3<})l z#-`_{ZBxzhazm9*IODi+=7tet-mY8HFw1I5dyaYg*e}dUKZqv+h}YLU;r70QLl_a* zu#y_hlv%UdN$t1nAg3Jhc)Zg5mMqQid1egrglgt_N3M!<03SDs>Et%A@s;t+%N(E3 zO=nDV?u1gka=V<4X70m!u4Gu;(Fti6jeGzT|69^Zvok_m*QGhcrL?4l4)8X7%~2Wo zBC;J|tB<8%>Dze&>#njw2=W+Y33?u0UTkDrah+H;vBfFJdLA8s9+nP(r?q*Bg&Xdm zgI=f!^{j-pVuKq>zcLGk5EuPF_$NJ$sYx$CzQ$Bym7QE=@Aa;p@U5QkcU?!@b!_hL z5zFXsjUCqzZcawKdqUo2M0l>R;{X{ zbF@YL)tp?$ff~Hgwc?G|%0KwN|_o<9RQyRQ4u+C_pcwgI+=}EntvNAx)=o zgkC{`UPYN+!*SMaI)hX6I?mD?Sfn>`f!@L;dK*_*F44QVLGR&5dLKWt{tJD8-{?d9 zP9Nb9`WS!GIs8qF_=nE%Tk%s7pwC1Tofj>vx6uW$jV_8PeJ=Xx3o$@nibM33NU$8E zuf+s?Bc7#8LS;QqmxV=F!~%UQ&d_(_9a<8LbX9!9@;qIubmu|01FPN1y@&+%aDO(7 zvq)kq_j89>z$j}T^orvcW6jGiog+xG=0jSH;xKD|UQbuDG>#`(dXeGrDSm>C=3Ef| F{RcirtvCPx literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss2$13.class b/bin/jake2/game/monsters/M_Boss2$13.class new file mode 100644 index 0000000000000000000000000000000000000000..077549556d84cc555a7937563732e28a047e9504 GIT binary patch literal 1561 zcmZ`(-)|d55dL<3=d+zFjnlNnEwlzou^Xpu94OF~LXyVCV5d!!x}+|$&i2~A=6r|l z)`^1p3NMH!UU)&3kdTmQB|sH51YU?wxg%548We^DLp}?(Txpy3+HAvkhkO~r zr%l_GXBa}MbeTb!cN!vw5TZI%gc)`hOJ2m017&S{Uj1`@_VU-Qn^!0&Jk!{ms zNEV0AdIX*s2DK$*;Vi>=DoxJoM%FUyR(4ssrrnx}AkMI_=A*ARO;^;qmL+7>HCt^- zp>&A7#;`v%e2i$Aby<}&=_^s}#eNO@2;&fp!FL^xBf-E3<-u*?wlw8t)su!4lqHIT zcv8a?42j_!+njV9!eOG0fLns{@k&01r|^u1ry1fwSXY`>wq(fm^jRH8@GOHq>${gl zT{cpeZ!)YC_fF>#u)LNQlh|xLyYJ)>w(=m%VGOwFrqb-8& zvVtE>Y%L(q@K_MM+^tF1s8cb~0n~KacY9q&0dG)Af!m_vb_~mWmr7E}FHQX@Vo^hB z`zVxx8=~VpE->ubVvQ!P8jKo4@{z;kcdFn&{Y&BrtI41>9e2ZU8+7JiK*Q2-X}rlm zR@g+7jut_MyecacVnV>hjSf=QBog3#FL zmn4F4KRfuHq0rD)=ot0{q3jYOgaf!0{yw}K8d+LZ=v7CSN;~w$9r`I{r$L>#jq%$! zkeOsXBm?E>*GR|lUM@44P0zGU zbC)M*KN{BJEE8w{P_7={RBmn+c@g7OULwrv97yR!&VP^tT280nkSi(u7Y!sj1 vA`TP9NqmT9+J)$S3P~ClgPk^Ya7i7>tnFueoAoZ* zeNJh)bATHc4oFBy2noRfP$evc`UfC5fdCH;<>$M^$Dr@bVH?uSIzW2?H zKmGUPTL5y{(7+iET{SjEF55P`BHMLrPYTz|mTHTR=jD#fp46Z)92oIgw&hyKv^N); z#`EOM5I$qtraa3KN~J3d%97I*F@zA+p(4z%w`kg8rPr+scg?66&(XK7w(Esk)E8)-qjD?^%|R zHA}Q4Mba7eCd2;J=qaLUHe^lCr>{gYh5Z`tB#0v@hTnDEg#-g5kOy~!+tQTRYo0Wu zpe#`w#624BW=M?Y*x{t(5DpV_gxeC7k5}_C+>84)+{Z8;g!QCpWlM(a%$?J51P?Ii z3%+|rG^FEF&{(RP4}R&2f9QicQiH6HYqm{0iet!Vm?pF%I7S%FTZY%sF@xho<lYI%bA3RMGOCv?mrN2NSpyXZPs2|?NExeY4io^24-ybogvCv`l8Q^d8fMfWi=m$gpplHEOh4&}j_G+cuY9se=CuX2cU#i$QBS?lr@0(wS5; z{|aGgxYXTbpmuUe#sZ@Araw3Oa4e7eT~E-L?S|!e)b%AHJ5E!>mH#dFV4NvK!M26F zL`C+5ha{-P^jCnvO2bOJM%o-nMp8ZY5h5SZh9gF6j3oFMQ0U_r>3ZNqat~?5IQG)& zCzv7WCkRc%-zO1-``N+290?6=hfZK$5X#Dk5Dwto@F(H*(Aes_La#cuTH2+r?9xvw zyAA5}O-$azfy@l+BN-@1KSVlS$Yo{{Y9Cp$%?*5xPCOj!A4w>E%qJ9e<3wP1{H6M8 zLP@BZK9=Y`e|ehr@vt_|GUM!@c%hG{mG`!j!QU91Sjzd%Crm7px(e5?G!A+#51&0$yym;yo_f_Dp;qrN^gvE_;sS^ EKT$_z;Q#;t literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss2$15.class b/bin/jake2/game/monsters/M_Boss2$15.class new file mode 100644 index 0000000000000000000000000000000000000000..f909804b3e97612abfb39ed3303878a79c4da34f GIT binary patch literal 775 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 Dr4la{ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss2$5.class b/bin/jake2/game/monsters/M_Boss2$5.class new file mode 100644 index 0000000000000000000000000000000000000000..f5bc450d95b2f9076ed8d3631f13e848b0d46ced GIT binary patch literal 840 zcmZXS!EVz)5QhJ)ow{)hEg`g}rL@ojNh`1v#3={~+9Fj-xwPt`7i;5e9TR(v>`kAF z10WC*2OfYc2;K%U8=GpOma>!a%zX3jjKBT<@)bZAI}T)g`Z}!P$Dn< z!{9|$6y2>S4s3=MBV}Kz<54Wf&xiaCr83Mujb*H!F<9-+34^_x4TTE}bq_VnGR*g5 zDPB#|fyj^fAQ24BeiriNgy*sLtCzMK#RbE9-{^H&PLH7$33af?&}w%m_ni9)myv&@ z@>oW_Ib5TT1Fb#aO7UAP|F{~P}|L@}AHrDADrPee%7pCCWKlo`>gYRI|!Ci*s%U~@l zP#(54wGmG8Tu7x0X(fe7&Zw2i{Cjr>_b8j>p?DeV)p*t7AL+@`B==>QWCcz3P^eKh zq=W-0MZTNxq7Vf(Kx?OO3Dc9-O}<0kW3r5FZTmCk-qW8MxOBQ?!M?+$V1sw;M(7Zj^4hzMr3**P$__BO$9oZtdBkezR)rQz%1x(H6E`Vu)q3+YH)@Tjfc_ zkTB4WI73&_7W{70DRXbjDmOSoZ_%w-jcv=bl^-5za?kb|#)=WHqjCxi?KLjfZ!`2~ zvJ`t@nGH+S%uVUpqE_fY4?|B`X)k%)lG3WwOHPfl2wv0~1~X9tUbQQ-Bn#P{1Wsa5 z#{j8|2ng>D3}KisxZutMVm=Nci4lzIIK|Kx0k}h5y(jI4fzudc&~35nxk57Jj@5A- zaCRq&GnmkEmf=JTx=Dy;(JmX9#5tOPXNjuo1QS?`FaO*P9#v7+z!Y)}sj!no@6tG< zG?5!>L;}+=b<8k~M5_3I4hCj%k^0c;v*RA{Ql!=Yw8sf<74RG`>$t=)bQD<0DoF$L z3N=+}dL9>2B`P^r4O~;_!$;ZnU0(*%)qLLAW$4^g^WL!b!<|ZQx=pXb*KDMk zlJriJ1^Wn%E>q+itst_UF{t4>mdI*U9I#BkB*m#B>G=(P Czy#I+ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss2$7.class b/bin/jake2/game/monsters/M_Boss2$7.class new file mode 100644 index 0000000000000000000000000000000000000000..02ccc56a679c3faea02f07a0a3ccc518daf6cdde GIT binary patch literal 1672 zcmZuy-E$LF6#t!O!;<6{Ff>9b6wsNAPzH4=lw0KnhcIE{;r?2yJ|%%ibObYOIlkZVGI$JACMF376Cf{h8<%9L1WsX^tL3Uq zk;0ereH6zF44pLd?HZO2m3-h|fR$bMCj&E}^tYR!K z0vg~MfwMSA7-~3#Bgq2jd9xgEBWUYRWUzn>CeAa`L^6W|AaGGvAQy6^dfedoEEch3 z;u7I-!m!V|z%qDX(y5j>4kUvo52A1#7PhQ^8znml~Cvo zpBHSZ7@*}kjb_B-n#|pck9F2paMi?%{ownY3%sP==Il|st_l@R|sEAh~Ip5 zFmEz9&y<*^PkoNPclcunS$=1kg1&~qhdJg&SBdE`bA)}^&u{HuhN*Ut${+ZYN!MI^ z2Yr(;P5oz@$HA^Conr@Sw%MA#ixGZ~q}|)d@y9V^2Pe1j=v_R{T1{kMa=Fj&46Ckeqq2jwPjG=X#{bv2cE840&-mr!(W`8%i;#+o za1A4z#kUxy?@*xc`TF<)6Z9i5t01Tf4q)2;v#P0P5$E2v+OO*#l6~sg;8$A+brdJ752@Z aJj4f**&)@@CDLDd8kV}v?JSDvO5rXGx3l3 z1AI^eYJBj)M}L&@46S6B~^@ zAaph=ML!H@C+}M@8HOV+t5R(>gxp)Ix%=eG(6Jz-P>T$)Y_7~;F8ei}LJUb8ada?r ztqaMY9W-}%u;uP}oFTLBS6#2{214uYpQdVvkYRj1lI!1c3Jmc&S8FQ_ec2rO9=eX_ z%DS_u0wL>#1bP@!JG%Btjk`5+CtSJ5Fp!NR^O~rtiYnw@BykY~7W%2INanWP#vq2M zr>2lpo3ULozrO@hxP&naqYOQ*kOL(=XTw#ExfL7Zm|#ejc~$wrCRYrJ>~@KsTv?~O zV&iHH(me{zBB7bZw}3X?u#rWM{G0wESI7G_DYm8!c^fyi!3qy|J+~g}e={~5+@eI1 zAE|bWtdt~H?^u{)=#4bJTI{xo~^-6@?+aE*|7is literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss2$9.class b/bin/jake2/game/monsters/M_Boss2$9.class new file mode 100644 index 0000000000000000000000000000000000000000..648a5777b893c86a632e5033ddfa27668cadf9b6 GIT binary patch literal 1244 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 I(%0?uU$;t*r2qf` literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss3$1.class b/bin/jake2/game/monsters/M_Boss3$1.class new file mode 100644 index 0000000000000000000000000000000000000000..43585ce1fec8053e2f01371fa320c81b565020b9 GIT binary patch literal 1164 zcma)5YflqF6g|@iOUoh%$QwmL=tEcm-$jrDB_v=>kotiS&C*WFXuC^xrzHFa|BM=f z#t;4gf0XfT+sIb@V4KdJJ9ForbMHO<`Rn@+0L$1i5D}PqZ-0=>R@JUctL{3!mY#3z zm-4RfugoqPhzX2_Lbe@!=*x|Yeab+Au2tnIy(SP%rHcZwO}8SGh$3MkjxK?|J>|&P zjry_l-rC1CDKN0-mhD>6_Eg}v4`cd7`2u(LLP*!ipT$g7jMKNvh!!aXl4ID=Vt3OFH+zXX#=Bw=iO0SYR+jZ-))b+rBh0iZOvm zRSArTlLj3vsrsqw1#n4BV9LN`XE!@yOx(sD7VyqfTISC+smD^g0sdXg7`VsYh49;T zn3%UyfG9F}xc2v{$eScE0e z+vN4e^_5mGuj8qsLb@14ESXf(3Ypg%HLc3FubG9ns-dhZUks+o9(=K?)D zrGh8rb}$)%k$;XWP*;>iar7N!wx>xtu09DAnXt=Ro!Q#uK6&6ays|8)KzL?b)Qf>` zsLXArTw^g#bzkZew_+gA7KWPhxBi%6*Kwq`S+jj#`j`e8@sEV&O10BB=&jHS+IZ$G zx<7LhL6U2d7MMYdmp$B>tsvT7dIC4l$2CZ>KpP~84)lMbX+00JgR{PR8vXNh0E6wP zAIT-gIO_|Bx-KzJ(?8s@*$YfxVD1tRc-VI0mw1@{hDTQ{$5{q2M;`O!lfop@R7Hjg w$Tp!ft@LeZ0^tR6O==caxeIEv@RGYIziad&SjQ{c7&f?W@|R?MPz*o60c&CYjQ{`u literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss3$2.class b/bin/jake2/game/monsters/M_Boss3$2.class new file mode 100644 index 0000000000000000000000000000000000000000..4d1a24065c1b6ae970f99c2fdfa2d79ea155abfa GIT binary patch literal 1006 zcmZWoT~8B16g|@}EUk+`L69PXiqcY{S_Czyi69sf@C8DmFLi0hcI`4tb_b&G{tn}t zFFvS&nE2oiF!%%fGsd&q4Q{bX=gysb?mhQwfByOY13(4$O{4_IU)wENDL3prS>E$h zprs#_H>=BD5X?_iOc(N1NoG8Vef zEzq~&DEaJQZ&&);_O2@havNUFc6V&w3HA8V&`l>0nAk{g{h!W~KvzTR^(O*Dg(9(s zcGUpuFd)z$CD^WDOWUeWCq`E-fssNozN|YnUDZp)7a3f@h>2k)m*9`> z7A|5`Krp?r4tJ#;{k9rtTT4dCU<~6XE(we#V|0KlT*d^`dF8X+47r}c6@v@ z4hD_qc(d9d%3f*$=h4SA3@}R>21w`nKU1{b!{}f;{<)@4U2_S3mtD&TA6@mg_zzs}Gl??bgOjy#&e>=0Z}0Q%%kO{v@+*J|{GcJmFt}w@ z#e`ll9HBd&D+A$6eX*GHq`aab&d{}G)D7J>+={+b+7jh}A+;h!Q-fh(Ap$V#26T1J zG`0z5l5CeZEw|cKEd+*ZGMqo5A8H&~B&W)@8=v`>W)DKKO>5@^@Z`#<&*Y4o5|S)Ad}kYwmwuv~Go=9GlLY?N$4SPNd+ zuvZP=Qs+>ZMjJXQ$Y9fwCWxO1dg~1wui`30((&pd z*xgnh=9R(g9B-(Lg!F97OyVtuVTTfJ%cCL;8Pa{r6uut#mK<};31vIQF%7DZL};MW za#W!OQgkcy;&HsoaSb_gNQoJYvLf8T3U(Fsfe6_d!gY>WqJGXz9?GGw&$yi zr12hZXqaa>8+q$79gg?0KuHOMvs_c`F!ZVP{?kOQ5J!oJo4BQ6iQ!xX?09qv?W$6| z!%+wc+wdu(Bvz=o97~qSB65J;m4L&GQkRz{6-tS?eIT_H+JC{wSmQpm~8w|b2 z>ZH|%45w&zm8*-!c54u%3tr7Hi@c?#0&fk=F_mIE&bzMgXKX`CA#sTYN*hrVLsHEl z+9lO=p|y?vQZ@`ad0lT_&?J^b+{F z@CF1zbFT%Z)5=Jm$Uefrk!gDizHET{E2vYx3`aH4)9#Zk3S)q zeT)|$WRnfNl1()5S~l}$1C!YUyt9uPS|$%M*TA9@bhDouxJ}~B@*!65lIUJ$J+t2N z7$4K#%v9*NsSf+-Zos0YzX6*T?*KBhQ)*yWVIJZO6?a?s)X5#lp%XK7%A*f+ z7@$-RVV=@_1Cv<5b=6H+!a8ol#2qTY0(P*Budx!+)O_n= literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$1.class b/bin/jake2/game/monsters/M_Boss31$1.class new file mode 100644 index 0000000000000000000000000000000000000000..8dd91855d2c0eed3abde5a29e52b0d33a95a9430 GIT binary patch literal 1098 zcmZuwOHUI~6#h=1P^KbK-hM#&i2Hqi~bC-<&zG?>y%9?-wrtWUvy3j}YI}>LQb>Y7LQU zSf=9&+evMf)-1=#rl-r5Ou7kS?Sc3CQu=QBxb^xCX9Ie|H+}? zB4)V>Enm)aWD^PnRaKKap_QNA;wF(+ct`%vnvskzDY$${ljYGn!nnh8@z&dIGqdGg zA(gAxa#=FQ2;^77=(vSB$q*-hcrtO`LXn5MAT4b5?c z!(HaF@HV4$^S-ehW+}@^jKS$==y}2~K1BGAFoND7z{);U64!2_ICl)k4(Jj9ID z%y~5PUCltpG~50VcqD1G=r2f`^p1bY4~Wu7UfE9=VT{vfp2ru=(^q5|7wH>T={wdL zRr=B5JJIIU;mho>fGf;6fDJ6-Dpz=o^Yp;~3vu6Ql&y2Ex|eXBF~DO7midXWk8BK| EKf2E9*#H0l literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$10.class b/bin/jake2/game/monsters/M_Boss31$10.class new file mode 100644 index 0000000000000000000000000000000000000000..55eb613810b8a80ae4b72b54bafe7f1933630e66 GIT binary patch literal 1737 zcmZux-%}e^6#njJH%r1|fl}MFRjAfV3N#S3YN`5IZ!lQ1%Dlv@((}owcXT5k{?jG((KjuO zc2GTEIKoZfGR94e5!(olND}i+J7`##z!gefcfVX$n`N(F54fZvZiK`pEleRx)mtdv z^u0}Duat(4pm{Ciq5PG3A%>i%LsYZ3r zzi<0BB1N61iegan`y^vEL3coGhgYd;VTN9JOD-1B`%R=wd?WO*aSWCTY_o8A;>v@96oB78-@CLe^+mg-(aPq+6j8$v)Dk zO>lzV3Sfey0*DRvKOqsiD|BeJh->V?br2^*SN1h}IuI}7f5z8iy({ZFJx1?J@rb^B zM8BpV-7t=B#K)du=qb*QPq2NAgvzBoqzAB@9iK?)`^eDdbjRpYD!z|*QgP$%WVko; zu(Fbhr}UJuj}O&r?)DxQ#*94_Evxq#ZjGt4{_Fr7@2?GhPMG^x*MB*P{uYKP`Z`9m z2BtKDoVJNot%-YD3y$W()jasLZfjp*SM%|M7T_mM;%BXm$J!2lCHX}A7SFZs@E6Iy zweLHbTnw|-%_Q&wWn86P_Tw4uVVH71f=94v6{FkbM^tE~BZpm7X=Tu41gOy}PUpPC Uwho7+PV)vd=t&ZqDklB@13_wsxc~qF literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$11.class b/bin/jake2/game/monsters/M_Boss31$11.class new file mode 100644 index 0000000000000000000000000000000000000000..0ff665df16420aa83b0c4eaca6c2f08f61768b2e GIT binary patch literal 1562 zcmZuxZEqVz5Po)j_Sw#bI%z_2TSy9}*o{-y2^45bAxYz6u+ydvE~z7#v%R)2Ip3kX zbxMoW4| zfElc-;0zNR`lgskH}$qiw{6Rn!g14u%7X2>vzeorj0%O};DFPTC0AR9wK-qc-y~;- z&>6!rGp3uA;~e8YB{m4@MnYR5E%tT;xq zB`J~)u{IeFBnFQWb)zOLaxQr#f^i&B@i1W=fYJZ1;St0c7@<70BixdPyjF3gE(K+Y z;1C{FahM@Km}7^NhQ}~L)Ddn|P(EJHMsWmBsCb-V#1HF8!%P=+*_u74;V7PD(B?h& zlBh}Bp`f8eIqUzDCGXIuG$eXiZK~F=A~=qeiYY=nfMbBttf{*#4bwP5RQBzahG(qU zjfN|TuRz%cc2YwIGt|rTm5YwOK?sU=$Ei^-hqpnLvmT6bJgwmwoFcA;CEC|0^$xE3 zR4WhifBo%wKd<4m2RghZOuI%rdOV!b@B(O}!hWrVd4?#R)2r4$Q0@`>JCje z8EBjwl2M=Ntl?dp;r}n@32*EP`;t{NZI{NrAY{v~tGL2&c<*leH=2ehXIa8oq&B<4 z#U!Z7^ml;XO81p?m9$xsjAZcmZwUWF8;&TgQIg>AK%tLAq-(wt$zjrnbL^wlOE68+ zOAr{1{Y=6S_p*b(I}jS!4jsjQKa>>_CLF+zp+7=vfuWT(h2G%MN@172yh}f=>^20a z?qlpe4yLAA7n8nn>{ldXH)c}P@n9Eevd#8`x7o-9hRxi2?m73IbHDqYbMxoFzdr^rf<+xt zpl`)oRU_G&xu&vfuHy&F^RvbBgzNjG!zYGEbZ7!cTAZewV6JXCtK-Y&`*apaoVOe+ zxF8TqXG#Lvq`Rz=h@ss;90`E~1>uXEOn=_YeCD2oFE2dpCJuB3kMlGmYzQFN9 z%USyY8WV`uRFJEy7d&bY*m7CFqXOAjzc)C<4HnnLDAed@Dx%4f*_CX3U>l4xLNiCGf>RZj-z;5 z$1#CaYmQw`2A)A5nImjlF`rz>C2<_j>3CM4I|^G5EIV5?gZk)211IpjfH5ArmsBNi zJqC587jn@rQwk4#!9co^)%C2J<+S4z26YS&Z3~VTMsv35*9{EeH2G@U%hk|WcB@ri zk+0Z71ni7~VT`bpm&#W>cZCRM-F2_RQg-fuSjdGi4&g-uFX1e?R*qV`$<({JYErE| zF8uX(=>4jJb0O%q4Q0C(@)+`P-oR^ML$yVBEshH$c~0ZD(IIab7{>(78NevWSM>C zqaQ3X{|(TX`CO^%)J7=Dn9_97@Hvk)>_4;d8R*M33(Tnfgc6r6ROCN=H{p&w8JrBI{<1Xi145E7IkRZ4ql)k<8VO|o&ean@*e!>{51 zJ%Ch1x$~nCZxgq&BE-Qv`|LL}Z)g4c&*c?>T|6zpW7s_BL$Mphd?cb#s*DxdM2GFS zsWFY6?VUymKEpffs~Mpio)}`BDR5w$o*)~M GwtoSmr=kM@ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$14.class b/bin/jake2/game/monsters/M_Boss31$14.class new file mode 100644 index 0000000000000000000000000000000000000000..dcd7af743a3c050c79308b2ff0b053f64ede3aa7 GIT binary patch literal 1660 zcmZuxTXWk)6#iCrqS#hw;-;i&3TNuy%03&FvV1~6-RBP)@mjI>V4 z@EdsNg=b!PfJ|CC48scy3>|I*48MUt0mE6@6uFH(+OwB)zO(1sZ}4lNxT z!>KL4E#?X~Z;3+7_d+Rxuu!fo`C&Ledv5lEjwHj0nA3_U*P4#Ez1ZM8GUOyx?-rE>vXTc=o~oh8Z$jeqh(Ql-$}Te}eYNj^^UvqTyJw zCKvLzQaFZD9gow_V#&Mf299HlFoY*sdzAAq2n8^1;3S@4U{u6-kCP`IxmOD%mx9uz za0+L1oMsq{C+l%C@D$Dxvwq;%j>n*Fm}xwX^E#ek8196%rQ;ULTsG&g8^|Hg@K{w? z(hn-_x(v7_8B)0oQ~mQ*6+LNS3eyZm$E_qhTQ;dMa>^5Y0kb-uC6pL^$*CKplzG}p zz`cgwiVoTAzxo#`h<+(t#0xr}XE++G}7@5y1n#0@Gnilsb<>Y!LO zO`>W5MTVie(tqK0&Gr4AncI9zZ<1&uDYyJxp(I3%byQ8I_eil7c_=p5v7zHuFB?7Z z2HsY{8LJ%x!jmdcox!^XYL75Hr&hRux{4V7e=D6$%+YlZg}X_z*cBELOe(SIf-{p2 zs-iAmneRmRTUUBcSNwKh3DZ%Jz~Fz6%#7lXo{1IDa{Z95a9PNv-yoqDJx>J7E)PQy z;xs5rq&n5o%R*zFdh=wNnwj_l1D{hzLz>z&S!mxNNsAd88yzRIgES(U;|R41V4AD~ zNMwgTBhv|2=+M56g(e<^W^uF=$}$9yq?ix-zv^F4WLDRc^z~&{%NcX>03!!DaeybO zr_9tnoTG2TyoZ?&M{wbzk1@TE=O+91amg?;cd?`#X(s#9UA%k;H);6VKGyEwtxquC z^?c`nCoR24OUX~w&ZCO2P({$b!;tnpvf2+guieL#_9HH8KjE78GnUA%Xun`h`xRXK z4O`mpaLM}GAK26Wj7pv8l+!Jh3WJ3)Ds~9lXy7c7lZ69;P0DFgW@7noa2-u;lxCcW SzAf?v;asNHjeI)%QukjW5QPH( literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$15.class b/bin/jake2/game/monsters/M_Boss31$15.class new file mode 100644 index 0000000000000000000000000000000000000000..93a0cc15a7bc22152889f5fd92d174672693a0f4 GIT binary patch literal 639 zcmaJ;!A=uV6g_ulN?|M_6+w|iNnErhFae^Q5)(yCNQxT>3pdT9^PE09eM9Cw{3;i^ zGI8Mt_zU_Ce1h>zTTNq#lgvGH=bm%!efNF;_4ONoU2N152p(Oiq25h0HPXqbu+Hn! zCC9y2g>!p5Pj;Tw5ee33NQc&+4vZbXOw}dHg1LQTjej8sTkSJJbWo%^Mu>$5YM2u& zb&b_;uSVy(JXPnp7Bss>U*%`2G*v$R8To;6g3azsubT$y2x^)3N3R7dtv1;oRFW&3 zB`3Z#HtWn|S+HX^TV`@{$j7$5SDS*u3j^BZC3e5U{a literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$16.class b/bin/jake2/game/monsters/M_Boss31$16.class new file mode 100644 index 0000000000000000000000000000000000000000..218e2f5d2c21c6f0704192d9a2a785bf1b3745fc GIT binary patch literal 1345 zcma)6+foxj5IwU=*jyG+K;@=@atjd>K=A^i1PDd}wXk^MAvI)&u#oIhyA!JXCm)m& zt@6PS@N=}vyOuqhpd0nURAqX)XS)0JneKi2!sHUS;zCHCkH2Ibc7i?1DBRP~W=Df@g=rOKLC*fKEx(mZZpLs1=X9K9Xb(VK zA=*!_Z4FvhCP6HRv$B^)xs%;ib!R0Ok z%f~T*OFAw#zDGj_1A`bMihNJX^3S^S`CQJgXaq?eqx2#HFm-Yaj423FN^b6yc`1ew zTsAPSjB!aVWAX|w31vgU&AGZzfT3d zX5hNY6)6%2Qdw>qn8h5iQm4zZcbq@S4xH4go~;~_yWv#bqR3flRGLo)aY8jZm9cCW%Z^8lz9!_ZV=@?d+ZOI(nR}k_&=2Z( z8gBS2%^&GHY11Sb$;j9%M4!_}L!8z)Noem7ro#m3M(q;GX3`j1&`PTcFiuhh2(_Jh zMxy4fqCuQw&7_{eA+DCNoU{ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$17.class b/bin/jake2/game/monsters/M_Boss31$17.class new file mode 100644 index 0000000000000000000000000000000000000000..311b3a1a4107c2bf6e1892810f16089f96df3fd8 GIT binary patch literal 2684 zcmb7FO;8j^6#kl?-Pv7+A6E$CA87nx1w_Cf1V!aHC=d}O3dYT_G`l0avt(z0kQft_ zlrculA2FJ;EH5c99uf-^DyCAE986WpRHZ6MkExtfx#gsJJ+t60ddU{_d)@E#>#yJY z`pvJ8zW)(G9j>X!VJJJLkBhpRsGbltiKJ=SB4yR|gjyJ-)^ z40HUzs6Ii?4BkD4Y1qvSydpHnptL4OMF1Rr4IX$I3c3wb^iC#5L~1}Ei3^5ccQT^K z2lbR8=jlboju{riy6%j#o&~6h!4nmBR~ti7MToqo^qRPCMr-=*lwn4jd|1X%crclY zhFfDIGJe3e^~gAFqWC7sl8Vd|#HbOm!*)|>$d6)_sCbUxWgtk~HLO4>#So@Q%+SHl z3Lyim(y$t9C?_$Y$L$yc>ypc58p^SbW^}<-S$j>}uxG-St=oc7`0+e8s@T9#nu#IH zNy8>=rW2AWBWjooIl~f6krWCW ziHT%NCY0v@r2*_llZr-$6&aDT95w90URj-#9wBPfJJ2M&%+L!}>XP+dq^q;V$=W^~ zP_aL|a%roE7FjtiOgn%!bf{>5`d&vVUm7~`0_Daq$5KhtW~h87Q8EE6zzPk?&<8af zLN{F{MQo(2{Ez)zvVy%DUc_OBe798nlOys91jL`tNoY{I9nsK_0S4cctmuqBO(&8= zs6$qBP{T_&Mq7+gB4F6DGRHEcVHhVEa?@{$u9;j?zzmC%)suKdML4^5Sw0$cjL`83 z5f^mf)tR|j(k6)7Co!r)NUmwR^Cn%|OG8vcOh)p$21&qE8paW);Bhe}NM=17XDu9; zUBq&rnwU^Q_sM)V*-jc>m5EVoBO&CGmIhlc6r{0?Q4_ObVpQ6uG)zmJs&0(M^{AyZ zKX~w)vag$lW*P!GjWa6Vq*7%(w{BxZ!&`WpZb1YXO(vX%=;Zz#4e!c$9w(Z2-yikP zkI+~mK1S=-MAEKJ%Q^{CBqk_MB&M74QRLXvX0v+E0`(d4oR$<`WGx$_8oO(09{Syx z!-c$l*$jL138(3*vXKP(lar~4=rCkw&RgjGTV-FR?6jMac+#T2+9T{(a#Y0^ROgI0 z_*93c>UNo?NVUdw%Mup#J<0=pZ{UpdL7=%xvwD(@q-V=_@O?u{4gxd=NP<%e$e2rW z&2=J~M>EPe3TTu8s!7TKJXrWO33t1U4r)D5w(`ZTK`eK-@&O7!hp{W(AH2tTZr^c* z{yn*UJxk`jOXiJA#OEbQRO+Yjiy`Ajr6&8X{aVcwQHaq(sl>6 zRg6_v26ugnhDL9xcMi?c|0{U-?MkW5qjjg6*1C53o&+OJ#w=Cl(Ibbx27hIV|1ORe z`@Y0_vL2tq%lDBlHSb+SZXs8yDyhnC*F5%%JmwCJIV9Yb)RpUUso3Ye=^${TOe$xt zArO46!E+0hGI}65BlWUkpK^1-5G?k25a{@99+U>sJMZD@e$U*hkJO4 zk13uXpHPMmqu>!PsQA?VdrS)f6--6(;u>M5Fi=@;Pz~m4+GB#e)F;RF*|=6EJfAu5 Va2B7FRB(mHtMnhBZStYg?>`4MZae@0 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$18.class b/bin/jake2/game/monsters/M_Boss31$18.class new file mode 100644 index 0000000000000000000000000000000000000000..aa9fa35e0a2f12424676fb482e5d7b611160d859 GIT binary patch literal 834 zcmZva(M}UV6o&s{w=CT*qO}4d3Mgs|(G758Qe&ck2}$t=!i6`@upPETx3gwviZA7b z8jXn;K7bFP(T6df*)C)aHtGC5J?DJ$?>YPZ&)07NHnHwuf??^D55#5|^PvcbsnSMd zI^6HRNVVSDSlxKy!DUz|740f>*q3VXyvN^AF~j6jsib+v;51uD4DNQ?6FwYN15_}{ zFw>Dryc!LUMRv%K6TwjLq!CY!cqVOJ{OOv$)C?<~(p~>E)Mlu}!tCuZG@31{KI37+ zRU96eOscp&g=-Ae(=>~_Z+SAHY62_Lxn>zHdNMLy({8=4;s)kC%#yFt)kQwQJZ>`7 z3MW#Xq%@8)sFWdG6}NEP!y?0C33ll@0^Gq8!bd*KnrL-HFKHvCbJ5So#u8NXW(>(Wu z>8Cx0U{5KLZ6{o7p|K2FH@!v3Pg*m@9z|QEjI^@$1ydjB#{_&jeNs3-;8LIQ6UVNyhD#4(Dg7)wyV`<9gA$L)CN*g7r^me8j?MEW7V67-I{+ m;5)x_&g{6h;8;ud@qkDU9_Bqwv`AfAC$L6epK{h1ef|Ox=CghP literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$19.class b/bin/jake2/game/monsters/M_Boss31$19.class new file mode 100644 index 0000000000000000000000000000000000000000..e8cc3460d248db3a8b809283b3c59d6d28c7f7a4 GIT binary patch literal 943 zcmZuv&2G~`5dJoH>ijsggwi&p(1x~*FT?bu=`j7*>z?NYo9BkA*RI zr5^~-H#)t?uJ1Q$8@2lyREFh5(4GwThqfF&>hog?W|(PTaTVYY2c@oX|a6y82RbOb}O?V8*<;GP}Y@uM0HZJ(jsPSpAzp(aDx5<%+;!+fPm z(I?z+xU`IJ;Mvk@W^kDybL4tf&zndJCR{mUSga(GMc+1qUeK&Q&*CZ;H7pRVMCI78 zV+kdOd`!fa1DCpy1WI@aE{kipu3?2?DFJpNM#l}TGHBc$INYKivsM;mtZTT*u<~!# z`80HFV3Yb8{cY@?h@KyC*{42SAQX9~RBr32geiG*;(0;_p(`x5rDHpMFPuX~y;6PQ z4F1A9>l8(I18$Bw{5YOiuIo-bQ#`f9nHJ7=W+$8ovD}lUvD8~q3UAlp zzAt>Nffk1L5Rs%sAzLG>L7I_HZ+$@KEnQN`k<5{X@&zh6^JMGOAkqc07%pL!WC(DV zbO@jn=iZQ-ribWIz9v$YKdD7riBnyQrZU*vKE?bgmem(8F&Ez7VeLI`y+UDXRLM|Z zhczN@MPdcz8+7G6O3DwcD?g(`3sbPT5W(V3#BPT&RisK;$~Pj4_fU)8$|UP_a`7MN F`WqLx%sv1B literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$2.class b/bin/jake2/game/monsters/M_Boss31$2.class new file mode 100644 index 0000000000000000000000000000000000000000..6e1cae1aeb86e742c291790e7c1371d232eba367 GIT binary patch literal 838 zcmZuvO>fgc5PcKdb?vwxq@^vTlmG>i7KliXK}fVTC{kJ>wd#RO6 z^Z*hEegOXh1pExdI7urbYRUUN-g)oM&g{28U%mpUr>a3Yc;|0EKGQakSY(XpS%ES~%{)1K6Xay#dBMLi9I6^gX=lCW5*a`HRB7Wpcy z9j1v?VPhKC2+nDogdG`VW)|zJK4H0%R~CWnrk%7=edFLdmTfE%7IMz7xE(vb79Lh` zgHQ-1cOfs3^{XQXXK|9rIJk*hHr5DhIg$U$_ppxJ1XssH6-?@*mWw;MXX7qmB}e|p zz{3Xa^I1kjHo5XFtyZ(y9F0JW=q>jrU+=|%+5IpcCSB2#S$AeGCjBJqBoAv(b)#5w zC-+6#ivxn!Qc5Jdk*~GTD1+zBw+Ew@=gYCp(KaJ7TAQCS{gFQkaCvnZLEmBWW|3oW zoWwZ85n&c{yk-KA88ZQ+H2;BNOwZIoKXO##l3K#Tg!-BV*aq|GSlqJCvFdrnPbi!3 yFLg>>0O%(i`h_CnEd3s7E{%B;O;*4IJY-b^l@Yg!O-7T43vBW0@?KUXKYsz&Jg-Io literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$3.class b/bin/jake2/game/monsters/M_Boss31$3.class new file mode 100644 index 0000000000000000000000000000000000000000..e0a0e19dcd8e519f20247f67225ff67e072232b0 GIT binary patch literal 848 zcmZuvT~E_c7=GTZqpT|*4g^HRsi+&Mi|lg7M39*!gP1_L@TNJe$L_H1l=O7|Dle1^ zO}y|2_)|3MKQO-C2C0!IJx|~EeV+H@>9;>$z5>|BBO5uw`l;y4?Rp>vvOb8kNn~v5 z``%7uOylWB!-hpz&E)LqOlg%oC*-TOV}i9C`O-liMHdB35#~Bd z%Y)(IM8-$rB$R}5C+dpuSi~xgCoip}rwpOe$<(@{pC+LY$fW&}uvo2e@;gxvg%0Y6 zNvw3xoW?c6>}eDSo-akx^Li>_3XAJLVY!->m%i#IUec_+DdIYoZ7dNMGUZ?KPIiQm zE>>`ZkP8&AA}f$C%~ON3C{AUHxQSaf)(C4Ek^g3Jv5wok784D%pKX%b4({Ndjk|=E zjKV)vTx{Sz4>V$Pr7H(&w_B~&$P6RHx4fxr(-%_{oWp1scV$bZrp#P;{v_Qg_qV6J zVPtrx`!eZ8KEZ8kE#uu#7$XfTV8{7C!sukDIkq`!FcM>7^E0MD@|pAIAFJ1qWK z;@BN0G0t$rmSK+1RNygVDv&SFe_$BXQ+3df3^jjAEn{Iqea!+~2J`1w+_KNH>bj** zs95hWb;{fT=qHNw3nj)``aRNI8uKQatbhl2$f|i%N8B1V87+1g*y7vaZ)uZ!{RQg7 Bv!Vb1 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$4.class b/bin/jake2/game/monsters/M_Boss31$4.class new file mode 100644 index 0000000000000000000000000000000000000000..9b2290a1f9785634beac58a6eada3aa86630b110 GIT binary patch literal 848 zcmZuvT~E_c7=GTZqpT|*4g^Gm38)*Wjo{ski6ApehB1L~;Z0N4Lw8try7YAZDle1^ zO}y|2_;)nwmGSL1NR2e^ zl31#sK8YKI>GLQKTpp$GhT<$?3X7{QVX>N(7rtyKZc?wkE#f8?O)L=RGUZ?KPWC)4 zY%JjxAs0wqMOGkPnk#$#C{AUHxQ#m|RtPH@k^g3}v5GZbi;f1$&o)U-3wN<$Vx6#* zQTV5djZNI+frf0ZbnQURW~0#9%G9OjkJFuUe+Q}^ zMw)keD3VU(6YQo^BHj-@t%XJf>^T2N7@q7j$0kR+jKo;j`i#ks{E&mir^N{R4ue0I zIJQSgj8h!3WtibJ6?nv$3gpYP9~egTR2}pqL(N}N%a|Ke->?9e!R!U*x6KPI+ji*_ zD#rUOoiaB7`iUa_LWyyjeh)PlM!c~mE8spJuxcLFA-9GtMuQy&w)wXBTiPUFe*t^1 Bv=RUS literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$5.class b/bin/jake2/game/monsters/M_Boss31$5.class new file mode 100644 index 0000000000000000000000000000000000000000..e2b393db31d072cfbb9059133cf9f654b254c949 GIT binary patch literal 850 zcmZuwT~E_s6n@UyQPvfh0|60X0_q0pBE+j16G3K{3}XV}!keb7uieYKw@cs7U*&~z zp@|p%0DqHTr`sSU(xm6<>3g2%e6>ISeE$Jp7mqFE2y5qFPwdtMuP^HTNa;kxx_;#D zM_TVa+j?%nB&=j&4pnl}m8$p3_XZqGn0g_VOkNUosAaTI1l4UOn_wP(My$ zse;BdZgI-%;nafrc>o99;!|l zX`bqlNV<_va9T=<_#pJO78(`s&iPBi$nvh)x7gcbB*y&qH%x!wha7CSHY4a4Og=2K z?~H>OXV@dmVvcPp@PsiHFv_LR3}bq#4*H#;8duaZ<|ov5EWl|{y1>GYb%7PfDSk!8 z{B)&L<^n)}QQ)v5<1GIJX*r8y-b9lX@DPt!)j)N`tznzdo@^1Q6 z8~}lkIPd^G6k^tKDx+e_J08!>xBt%U?>|3(0ocZt3yWd>A{_JWAPy%yn50r^o~ht) z@Gezq=jFyL7Y@T}DQ92mlaY|)x5MxwC>_cnr4v|=8J0U`G#`pc4|K2lp^iIPcCkddN?R9kA1k=a&?uA$ zd7e@`%Ait&aCO|neHUvCYbDsVbNE=t18PmKbCO>2x!Be}=saSe5AoQ=BZighP$Oxe zeQX$DBbsIzm)aE4C=^f5sZV9*{M^)}<8+!u{Jk(ES(s1!h3P0M+m}(2D(dJV*Q1o$ z=pRVQv)v?AiYv51^QK#be5E;)?~=DemXWP&{y^;ueOT~l^~l1iz@cD+e1Dcic7Z&G z8(5^(0G^XI0K0kfGnrYrp~I?{O6{xCCTo{4N89;y#h6K`!L#Z) hXK9vOaEzoUcuFK2&+?iMx?~-iC$LGcM=>Lep1+SZu%-Y2 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$7.class b/bin/jake2/game/monsters/M_Boss31$7.class new file mode 100644 index 0000000000000000000000000000000000000000..f3c43d0fde0fe6e104697b42400cc540626d3f8b GIT binary patch literal 1250 zcmZuwOH&g;5dLNpvXCr7LUY{{S$JO&uD;;E`G8)9I2~<>{&| zT*)0by_H|KU3X?`bXG@@q0i^DCgjecCCW=h^O$@YLUWd|2DN5;W=~$waX-1Uc){*U$@(wqpGz;Y^3L$V&X6R1%;d#+2$h^!X_gc`2ZXI33 z&6mD@Z=eUgguw-`o>JOI5MlJ=wvGXY4j;eiexKN*WkLiXl?(qa_Y(8m2#u z?}i%Df^npEOfU@is<<%)1CyYpM!haq?Gv8AZ1lC}RJ}U|JA+3$9y0XYgjJ;S(!gT{ z87b5phYP6!RRvEBJjF8xMw`*^=S@DAJk7h(l-wgehj|^(8G3ygt~(i6z#@&&wQHhC zkXcpjvVj$qxbvzOE{a$61YKS^U})V|i?n4P*OxWCZP%OvU$@jcxBh=E6KWf2;nzf= zV!O1BTU;L6l*`Bp!JUAKv-5NKBP0^yzXMo8C5n<2?aHjRBl^Jn^_AxvkOB(zop z=`upPap6R=l{DH4w9%;m#z`uGK&<@}iHmTB4(*mNG;kRjLq|RI1Hn@ow-g_AF;tIdWqp0A%zeeiBfz3>t1aectJ8qMFUy-g~?A9 GPv1Wd&>Ttt literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$8.class b/bin/jake2/game/monsters/M_Boss31$8.class new file mode 100644 index 0000000000000000000000000000000000000000..c8108afb704e845574a1722f6e7d8ba64b143224 GIT binary patch literal 838 zcmZvaQBTxB5Xb-9_9)jYBIgN+2q&Q4L9_v0OwO1nU_x^60^z}z%hFqV<$AlO-Q!dF zphjcjgCD>TWt{C5tidMT>2zj(``?-U_4~(906W-nVKJ;+@}bxXB0dtqNXbl#Gz*S; zZ&jA+fat@?E9mI0@rq4f6F2mHTSjPG_gWYPMF*tjwFFe?&`lw)vVYVAf zaXcQKi}aMACxW5gRUuE#cp4kO`040DoG~=JrM>>6r^8T*gg)G7Xtdgte8q!=%P2U} zX)L48H0BumOO-}Ft~C#b+f+bkIb>L9mEocvhq|Xb?e|sO$AXJ_QdZi$i2GQ?1BP0m zC6*V88d3(8B802rAs)F{W>_x4Zk@!(3RW5Ba-}16CH~57`~%Np2KyN6F4ht63_wZ%XU9SCsBkHf;lc>nj>xu=EX0=i?1yB4G`l kwVre4C%Fa3NP2>&M6&TLuW6x8)}e_4oAi1VGs5Wk1Ag+dGynhq literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31$9.class b/bin/jake2/game/monsters/M_Boss31$9.class new file mode 100644 index 0000000000000000000000000000000000000000..93b1b70ebf863604e24219b27ebb28e3ec009d2b GIT binary patch literal 2119 zcmZuxOHdqD6g}@TL&NYeWCAgS5Fv@-7cvP$qLBm$gn@|=N%+KkbkfXphGzPM-94C( z8b5LA!iAQl#wyK1-B^Z#Xt{8qyKGZdxmC-RZY`@^Sl-t?kRGI~y6=1UoqPM-&$|!) z{qB1JJ-DraGwfba3tCSiubNuIv@O@u95*qM8M0kBd3fJ31rdhE5N5>kCRN=!nNt@D z%20V+w{)+cp`yKGmLW21=d>6qP%RKeCBv3+-O|n!%{k4PR_6?jAwF(rRby6lbh$4n zBi_93GPI0`ezggmK89#s^U|jn>f1XAyrd=!)ygNPJV&?keO1`XP`zL~`OG4*BtC)Y zZVx-wa(dRwczv7cQt6J_YBb<+1>1>hh)&5$Ue@vsSB*{_P|(G&Ekt{iDm$dQnm{)W64cO^G-CrBUzagtU0k2dA@nFXT+XH(B#=Ze z<=4|qswqp!Xpag!C6#fR^h{2hBUV`ok03D|L!W|Y7#<6_6+PWZjO%j($8mzv>8MuD zHvKkARSx`?^dA}HNr53h#;XoRQaRw=_+|8~`kR#lv7^8Kv1_V;0XVIM1*v8PcpD;gSVMaefJoNTj&2RM&{sO>CMg|M#OuB$5tvKw;O!yPignXCwgsl-UZJ53 z*44FwdU|(8jn7a+i{{8GTBWR5#r|b3%|@d`4zwPy+L_PrKdvU25!pMpw%n1q8_8wtLT+YNvqe;NF8^J oVibrqY>&6@-P_pOx`$3*CmqKdc#~v=?i%nGy)p77dyk&~0LZ)YkN^Mx literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss31.class b/bin/jake2/game/monsters/M_Boss31.class new file mode 100644 index 0000000000000000000000000000000000000000..7f37dff6028232229aeb1f09ec98ab39b91bdd79 GIT binary patch literal 18495 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 z z=e>dlc<6p?;(TzZmJbPC%7=#5 z@RLHD`N^SrJ}h*A4-dV{^FxRDh|mvwl<@G;q9q?Ay6~~0A3sHm=HtY4K3>H6siKxo z5X<>QaRYBH*6}G~6Q3%!fW40wi0youc#KaMFYy`TeLhos%}*Cc`K)j=K0ACIpA*jE zbHn-kjPO)GFC62A;WPRC@G@QyzK|~nFXu(!tHG|}@$h=SFnljB3Gd;h;iq^a{5oG0 z{+O4Af8ym4AFqhC;PFUnUKMH2t0SGkX7gkuhu1_#@KmIL*G7u@;z%uD61j{ojjVxd zYx&uc4g8$QonW`}^CES8S!6#yKk@>&(2_< z)Uz&dzVmH8>z-XlTh_Cl-~xvvAJ(&6Owrl(Y=D_6tY?E|iqx}{OeIv$@-ao8u4kjH zYhx`t-ptdko=t)VXYXKBO`(51nI-?uKYpLhi@Z;c^w(W(_{kQPG<0WGN11trF;ogmF zH!hTgS}t6RSM*~hEJZMrzZX4K0_jvCgWGa zw1ujfN4{&RTD}*93`RrLT}PFD(NsP;P-sZwasG9pdGoAG^_dEGjRW^B1ePwr2T@X5-hgcW8zAi!U_!W zBVSbNhvK|5_SlirbStu8>BWe5_ijbcl~(6KRcyzjxgJXY%&Afbib_d$&la91J!&z{ zgmxLNo3@SQC`ma&M%c6X8NDCrCxjT?F+%WZa8mY@Y_yFC<0R4aF+jHtuuP}}gokc^ zAZWYm=-@K}*YKt55QaOh-zk9R^z;i72Xn6zn0WIRi3?0-!WWn^`ujg2^$r=WSqW%X zyPCm{X|Dai-)kBz`sVuy7+AjTZ~*uX=o@Db(dMff+8q479b=Ua7e;xQqosRLW|#mGlDhR$E=MBt48 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$10.class b/bin/jake2/game/monsters/M_Boss32$10.class new file mode 100644 index 0000000000000000000000000000000000000000..4f3afd66eaa166222289bc1ce069ed245eb71194 GIT binary patch literal 838 zcmZva(M}UV6o&s{w=CT*g0%u73Mgm`(Q3J@F;T#Tq;Lb_!kcE;4(-t08M8aZm-0f5 z#>5LBz^BpZwed`MA#1Qn=kMt`=bL}e+3$b8egn|LriTfJ%nBJ)srpe7y)4JsFy=X*XV%aTD_%=Ezy$@;o140k+UGW{H(>lq5nK+eq6;MRZD&Dl#t~oWVcTqa+lsq}|H&#nvC&nbO{NRT$}%X1XuT zK=&AeJ*7ml9q}|3DONx$r#A`XlU7Z!N6{83BQ0%w!PE!(F#(@WpA_y7xRk6=9ArhL z(-bjW!wj7k@QBm`oa*d*lC0g*;r=YNI+v|g+{jyZsG6=pu=xqKk68SS75CjGBeU=e lzWaO3nagT(jc(+M8%o=hLL1sb(n3v=V-OOQB1LMrr0Ri7v~@O#iL@(D12LB7*j0WY zJ>P71AG^NasBhM48aTsBB4}R)heKP99`(ct1vAV%u$3J=WJp)4M+|(=?MWSJWDR66 z!%#S|m3%fCA4~6096OSsc;H&XITD^7+VLX~hPKa8K1kI1AE72gW*~#s6NZIKm7-6D z=?FD2JAr4bL30-K4Ek7%JXdwSiK1{qRwIU`N)lW4Y%Ayn&Fb?ku3<^TA`wf}j{OFf zQDVr&RBY9EsUJz8goog=xQ-hdRvDHPV3%SH+{7A#ChWc=2J~mv%A$-74YwFp|IPX{ z4+ERnVwjJAH+D~D*AIm1Q7QXe7!Pd?h7S6E3U%tXzcz=)e54imr`KeJQgTD!D zMBIwR3j8|^{sSd`jt%}ZDzrESiwhAf?ndl(DU%~r%2K`=QM`{@^j0QWr=!PzpzAL* C#m`&- literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$12.class b/bin/jake2/game/monsters/M_Boss32$12.class new file mode 100644 index 0000000000000000000000000000000000000000..5301651c88603f19183d27772c256042164c6ce2 GIT binary patch literal 1740 zcmZuxTW=dh6#gdO@y5=EI%!JlwvZG`v74lB94OF~OPt23Ar4I)T+$TWwLP|{v3Jwm zb*l0R5zVL*^6RHG65k!cKg!;r22m#_E?(j1ZXS^obL`md5GiT2E<~z6f^52g? z1CWN)(Zeu&-CPyvRNZWeRLizpPdIKWU&`37JDEN{k=CIx91a-GTHaDaTC3AlbB&A{ z!snzVy{8yLiDZ#Mo3X1RiVz|OIKmA3=A|VT+O4v1mdtWfFbvMy6|-419jW$RrRFuH z%W!NyaMxahrWkl#c)9ZoLy06=ubZi+Y1LB&&yiMrsuu$ck(RmY*j6SxN7e*vtuh=; z1ffM$R=koomAn$c0UXqEFYyXo-90yO2yq5R%#Q4Ew>;_HD!HEN2||hB2=3Eylp!9( z*kNSgehgE(h-*_2Ue8K4ieq?C#{&!lzFXUq%~am>8k6S@9LGZp#4vqPp~91Bni*?Z~>cA~=aL9izlHz$1{xY}0fb2F7uU(%03OYD!tMYc*GRRK^vb z*l7b3NK^ghN*5jbIx#5NZKp!@>)$4^l2tSg;1L6l;tb_lSfX`{pm*e|n`#y9;|89< zS%#<|(Tu%D)_MoeM>=QVNl-II*QL1G5VGDNN-U>*pD{3v48uLXZ=qfG9J4~lkuINP zQJGQZW|1Y{zS)B9w9KY_g?MwaOJ*aufM<2&81@HpG)DuFFXO<%7=@aU zl5DNnj%u3-7I0C=^9)A=Ab~{t17u)P1ru}awpA^eo@Z88OXXTUiUMBHvBYpF;J)Ju z14UdW&K*~}X3y@;<+52Sfi`m+h~f&a>R8#?$9aFI4ZMVxiO6=zr6Uv(hLJsiRgdKe zJ=Ym&S2Sx>rkd^CG@UAuqGnTd;ne>Q$xv0&Ll9aQ6)K$HC0VH^z5oB0!TX zY1%H$X32eJru4AxrcOL zL8HSy+8e$R$$r{Vr(hp_6~H)21rQpHy-&h-SLonh2V6tju7lX`yRvokb|CJCKM5~~ z`WBZp`tiQS{I31NuKihUw}S6hghw|qw28xG<7^8f{^rC6k};7U8;@&SNRe)`V{;-N z-oj(?Fu!`**G;`%UW|w1TAXj;Y4w@8yn(qfnnpv4v&r z&UWmVFhsF`gAx8MCir*A@b6LJKj0ew5q16(TKs3+ptZ+;!E5|iyup9NTl{yt&Huo= z{7>8=`5ylZpYp%)Ims{hKb<^Y@N?D8BXAcboS{s{u!(CJrp%Av9hkHV(ev^q%Cypu k!KTO^3)HU!W1>J45^7>f`a?|W(2nic?F`u+FuZ_I z;}1-G^J`it@C|KX6St^l{8NnQn`GE!CBXJkwyyr zK3w!N3~fs#o*%ULM6|>ALcx&P)-@hhcqFag4LYVNV}{x7gw{n3tueR_VYW6HMsj(| zKIB2jRU;^yNUFwKABGtQO1u?mRpy5x)HSLga@ArO%O&YWUDiz1tmR+!<0{5Hj8bn2 z`R=-pYZxaEp+x(LR4<~i1d~3daGinCHYU#`DI?8MH8$J`lIzDbWj3>p;B>9-b zO*&g0$%a%6J-bCKam&YT8+Z0~ypl!^^B(dH!yTRjBg3G?O|!7!V*z&=(iKrNI$GEJ z)VP=1E$$Zc6-%__Bfv5x97^%7DP*H*sPQdgjz#!};$?jh)kIO+`x^K^4@>s6=|(qI zEz~icc1f6~u6uaEFqPQLxqD;qx0DjmddTBg#Fzn%3r!(TER6~I9(e^qM(ECeM&Bp; z=s}unnh@>}IJ9_)e7}=KI6xl5Acn|Vf<;10kjh;CNYE*_>~Mc3N>it$8C>a>z9xE- zL3ZI7BgdFH#tr()e!(3J?yKcaeDVF>3+KZr_n_T@`wPSFZ_K%WPBcb4JY5Z9#0thq ZB}IRo?Wur!gbwbLeMoPb)@;-C`~$)6!RP=0 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$14.class b/bin/jake2/game/monsters/M_Boss32$14.class new file mode 100644 index 0000000000000000000000000000000000000000..5c910ae2d59776346f9be745ca5be352cbd50d20 GIT binary patch literal 1397 zcmZuxYi}Dx6g?B~BX%~_4J{>YY0^@_ZjzcfeLzw|^Kvo7p&^x_M8ewGV|$y;ZZ$h@ z1PBT7d-wpT5)nfDfc~LYfC^{5ZnTNAtC>6Z?tPs5n0@y0kG}wvao@&}z{DeWSC&g1 zcTbk~!XVO8MWtF}IgFyY^3~ZJHVlFDDW$bQKj?bF?o!KrOl1M(^c7#r!~M=&lzDTwYJbItkE%fZ36{ zx+-v{P^9(~x8%D)r?jP&7jzbeaav%s=I*L6_`>!4PA{MZod>%D=L%`}vgI{(LoXD+ z&f+Z2*?5E4QsD>R9lVKg0YP*Zj+h79)895C?P^IcSzN$dHZBT`r+pkza&QR~EE)0o zlKzIaD>+=o+cvHUoKDPo+Ve{_S9j-D9bCmb0?tybUYAWBDjJOxwkye7tj9s$b5Q7e z4VBmNf-J6K+Qt;orf{T6S@GSd>tF`gS;B$5(T;_Uu-%TNW-GT7VDCGaMVURk*SN33 zM?|m{_EeKS96bcFU5R0w#SI5HV;IKcFq)0Cy6xZtd?@f*f_$sDqm|pF_w2y7SdY~f z9NfW2jFG5qglfqvdhV?RKd4UDcwTb?#E0ONvqP;-MaWb!o20Bgu5uf~Frv z9Lbv0-LPe2L*U}c9Z7B*8(j?osaDvENJf|hL-VSlzw<7Ux5>?s3R3gh?->4-hau#+ z=SX2bhry2{L1Q!z#q7HxjA z{pWhlP~96`TYYd8b2Q*pJ!??|3=>Y2b1Q%ST&fQ&9c`_;e Ww2$R8tdkn3asQkvM;~#S`TP$RXfoCS literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$15.class b/bin/jake2/game/monsters/M_Boss32$15.class new file mode 100644 index 0000000000000000000000000000000000000000..ee58968d3ab1dd60f7362d07d33ed0e9d68d0ff4 GIT binary patch literal 1811 zcmZux&2Jk;6#q@Uo=xlxanhu%leErPgPquM;v_93g_19~fjHE4YDiOX*Y?=n#@UV5 zn^d`isJQVLaN@uL4z#M&s6wa*gb+6lNL=8C1QG|%NPN8Un&3oPd*{u2^SqK*y-i9hrn6Bo%};ev{OhG4UgV@et>B1GwwYyzEJu1cdp4MP|vH0df;K~Y+^l0IC*iz-GLI$dXb zj!})Lbf+@CtRajDgSH^mv!dWwHW~TDTS@m9$x5%|8lrWtmTi;`vkeoNR1v2;G-cO> za+0vBXqZBR&~31}p1WyV_bG#nwPzRTLhVOMY$atH zJ$OmO%b24p3sdYIkn3XzHVPnbdsV|LpjPs^H(IiGNn5S^b3MJLVL^iD+c(66iZIF* zN7^lESjGy&3$9&eFYnlTfwFCDmgaNgRO_`}B%YLBSMUqf$DkRZdpw0TI z5R4f|FKnmu-THv2vWz|#;-n#`sQtewoscs?g;+5QRjWobkP=SCDyq24(0_WJ-SMW7 ztEMUJB`R=D)Gz=_lD-Y7uQa^GtHezcWkkJWPtp2_HZAbc>LUssfI^3U;x$)^XghIK z40O;c9mI%A2cE9L7erih=^ebY$<%XX+J!T&Y0EWo&`RFM`Imgt<4>2+le2F_b#h0HxTp&IXlFN%Z@!ptVc~qVNf~5G)b>~gBeNc z#$&NV%*VWUCtb<4hxv3YsE}|mMoTj4iFqc|pF)jN@~%e;_tPgBiYhKUpiBmQ|DO~q z4@;yUI{o+;I?kt~1VA+CW%VqBO3)kV==A&=CbY5fr!wBsn?Tiiy7nj%ZL9D?!>o}*O-Q_-X1 ht>!;Jic9TxlP<5s$h%Ocj)y|eA$!q{0qfNgew35 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$16.class b/bin/jake2/game/monsters/M_Boss32$16.class new file mode 100644 index 0000000000000000000000000000000000000000..86ff1aab99f47700c3eb2fb196b6e83249219db1 GIT binary patch literal 1994 zcmZux-BTM?6#p$GcOkiy55nl?}3sHqi-wv}F`Kq(|& z^mYY(i=3Wy)9%PlxQN;@sZXlwH6~`X5QR*u~Gu#ygN>akxIrd3)#MEx4 z{Vl29&v5_;2}J3&R~=`$x_c|_xSA^{l6o9Mr;5YXNCd-pUBz()yZqQnu5QFrdWPc-yh+6?YF5rRJ>DeP=r5ni z=Rs&}43KG!a*W{=MNg?36n%5Ba@n$0^rD`?qza-!Qy_hRlOrJm3zs#cB&5SL97&v2 zP?Ogc>$z&pt@ELfCV+offq5Z3=Tg&#g=mR^I=&y2I!*wc3+QSLApK74&R@*p|~wEl<2{n0K{o zVOm?Q%$>-*T`FcpLYI@N;pyNzCg%#xu1PCv*bdE=Y2mKe)G?m4EK!^=G{+GR4ua@Q z!xY|^#vQFyS`Cm?NQRGohq_1fQ-cV7BP78_5TeZ}t+@{(*+470C}^awbkIvuI;f59 z{)U8aF1^#Z4VczGGmW9yH&uQn2Vt_=>e)aGy?evP7l_i&OQB74tmDWAUZqw4z0VPP z)Ee5|wuZ*0N% zx*t(Hz(&!)#?Z>fahOe@lO@o@rZCLT;5a*r)9f5(SqgJ(221QbG&YMY$z?VNhh4yJ zHjg`O0Uwk6gk8j4b_oyJ624-W@in`GZ%IC8SMd|OhCkSK{K;g3i(*H##$vt#7XP0 z|4t{#UVH21D;EyKdIof$Oji+#2j=a7f1({j;k8uKykW@I8>bA;z8(k)8ZiAOq7kotw@YA4|B4`!4R0;*6*?#>WaC zFqBh`QVli3YL+N-Ln%slh;x|4Qp{gb{f~TlV`(?>#KmKV zmFu)tRNwg6vXtdu630Rr8%S+RL^PxlW;y58pbBdCcw&>K@ z0~JI%p`srOGtvVpdsitD??*gIM1mS!6HVg1*^~j>_y#x3EO3C3sHO667kkzmS=QTXqz}Ola;Zw1PWn=n6#itdwY9ybX__?sgR~I9PJfoh0n)lOv`H2Mc4=@hgbw3T)~db4)|Op4 zP=1Et0l4R;*W7RcOgil_3=hC9kH8b~0v(RlE^Mal?np;RI)9(^oj)J`_6L9kd}JfT zF#D<4kqd5D45T{FpjGWa~GCuSPaKgMr%rM_5!tYwIgnmF$2FGs6by~ z$d)TD25Tkk$O5v+JIH}E9IOXQULOv&Wwa@_`;uX@9{Qr+5>a6E@usDFLCkQvp33#4 zf@%!8uGH(R3{&L_S?>zBFI3lU>L^g%+5sG5C=J9;6soq+TKGHULBSQtnQ}V3>;%4U z>ssaG0;Vxz;|Rkuqx3@^^xb-}?cgYm5ynWUPB=&~dU>3{vo=l=kW{VXU=E(cEG3jm z4(?EiPs(QkoObX$USME^`NTdWr2~DZ9c!T_)t1MLc-h8F49C*R_8B=Sqe4Z7QP2$( zL*}Mez!{vgahBmw3Q$AnUUk*MdANkMC4C)6&Ed9=gs&O$<(r=QD=p)F!6A-R8Jv+> zU8=6`5il~UczpSrAl#MX2c@$1UF;w^GnaK0D>kk%9DO{nDXXm=teT)je;7qlY2(P3|9%9fhPNH8 zKPBs89yPq{p#GHeSBd`I@mib&HXx-*XkHA<;z$k-6K6UN)-$qLPI82Qo* zOk0#5wcU9`YHFM{<@dvwNZpXS7k20^)|HacN?*jWjByH-iCP)SOua_BO z>pv7eM?L}noo{7}8(S8QTydlE08>lWnLQle!>K*Y(aMOk4=_*T6>rA+ehP~}+{FZ) zy!I3(U*aPF3LgI& zH~2UBgnx@J|1JTsI4X1uf=WgMvjk%TTeyx2!FF*8@8Jf;pT;IOXl3Dj%I6^a5T1=@ cCUYcDr<=(oeSj88i#P&&NTWcp%q`OQFEal(&;S4c literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$19.class b/bin/jake2/game/monsters/M_Boss32$19.class new file mode 100644 index 0000000000000000000000000000000000000000..a8683a5e6d0629a7b6320b3dc56565b05a6077cd GIT binary patch literal 1022 zcmZuwT~8B16g@+iU0N5h1&b6E(5fv6mEvbACW2r{z?Tvdd8tD?l(pMgvNI6<34TT6 zPw>STAJjlheDDVt{7c5W%VM@_lg{m(d+t4F?!Eo->)Uq#W!$#V#W4DWw?w(rc4X^bgYOWS!Mx*0N8e>g6pHH%#)8)nDI}1z z(G8QKZ^e<~;ck0V_-lOA6%3gbug=|d?mK}WT^f4ZQ4HfNF|Pj!sxWjng0ZM}PooIxqs<-Rc#gY>Yx%YU9rh^gD8Z64X z>nR%1s?ghB!@^C5k=T3x88(BxET!-lT&|Q*7z6DXtuDfoc8h$Ayjil0Z1==h^n9it zT}aWHA`A053<{ng-#!A7?In-lB>LzK3QUm=3M4Y8K9M;}530j_5lc<{NzI@?N_|OM zhz4_$`xtn%kDT#%;{drdYrjYT literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$2.class b/bin/jake2/game/monsters/M_Boss32$2.class new file mode 100644 index 0000000000000000000000000000000000000000..81f63ad4c063c335f48127730b5eceba13bcf47a GIT binary patch literal 838 zcmZvaQBM;=5Xb+^T{(I^L}~>@#Hy$*L@y~18f#1xFd-?vKzQ(_S*}aF_PT3sw|pue z)M!k6@B{dvjI-^PoWVgc9Z%mO4_2 zcjM8S$WHiKDj2FAo$&OOXVUrkPu~utVW@Wsd;LdGo1xSf_Hdt})@V}l1&>p%`th;N zr0Ta9u*?vR_%PF|Yb;kiDj>8PGORX=aM6>A?b>$peHk~g8eoN#6*kY~5!P^vp^|Hn z>ReMpil9P-aAn-aod6pQ8wJ>vlSJ6WU54dc=}2FQncUhx@JYmB@8Lm!`wVMWu})Oi zM%Z%5N;1wep{y&UaTt-FQ?H85*~uBgV?E9i@m9LAEY7C>)OD2xcc79~8|vzjumeqv zj1H9&*$d9H;WEaU} zxP~QK9pDLB2k@%bKa-i3J39R5g;MXbw2B*f={{xCHi&k5Aldd9v)9>8fcRBX`;Y3y&=V%Fnaz1vBUzk2Fl@_1(x>IQZ9?B1Q3d!PIE-2LOPUw;EohG$}c;oM!jEy`BY z_JrjHexyVgSu3@LAd05Tf(| z3@0awq`hlfuI)FiRTWCVIg`a81NZE982B|6gi$~SgzdK(PE91yg(DlPre=y8ISk>H ziD3#Y;k|dxaT+5GSufZX>fScR&z7~pS&mVCkck3UI(p{`j&nFqCGezAsSIpZ(!W!w z^SFSgOpG%OcF}i~bgdOzwWe=yJdI}Y7njC>;@6)TwC7bIN(l z;bjvqF`Q1g>qFz1#{xq>hLgS{_85kA8xOU;NIkg%s^>gLa;V@H6E_(~6R`gx6UQ=c zQOlEDsr8sLnoREy<*BSgsB#o=OV{f*$7{GlJaEOXa1S*k-mAHq?@`>4H?U@6wZ9?# zN*r%O&ykXz=2|5^SAF=WcKHs+hCa#pVo$|!X7Mh=@oxN9v`uq1^`X71tNK1iEv{P> z?D$SxH(ei_qu%2zZEHn`Ltu*v?9zmYm>K^&C*(UtDl~Y>>Ku#_VXOu_VMA1;9`d6H zKanZjEBXyA`3*OSXhc_pY6T7r>9X&OaM87+NJKafLMMJBe$$_W)+Vi{Nivd|i$5d# z6MYQOK?0f15A?C0I9<9A4zo0H9Cxs6Q-$0rUjhn znLZ?Va)VYW)xk;qI#YUp#|vYHu_M3WN&22Bl=R(QTpDB>9bBgEOZV|?VP+pMcCc8w zkEIS?C9(1VuNU5`ckuRs%H}@a>)->@F72a{{^3!4*K``jC&(C|B5!<#VdHaLFuuT~ z@g=SrU*S5*S>tOg8sFfK@hxh`ci1w%kMkMs#@x$?qDPY+U0oUD-$k2bnuY{$>B-ZX IE)ZRR1N$>-V*mgE literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$21.class b/bin/jake2/game/monsters/M_Boss32$21.class new file mode 100644 index 0000000000000000000000000000000000000000..ad7f640d027b15cac938c2249adb0ac1580dad49 GIT binary patch literal 2372 zcma)8`*Raj6#lkJ@21Hj5-3oL0`jmW&_F7v6d&}F5^PauDMHb>O}5F>>~73%TTpzU zh!6e)XPnXT2k|GNQmCl-m{CV`R66>H_z#HR-6Wm#;f$ST&)sv+`R=*reCH&$|G9Y! zKmzZns8g`vv_57e;yK+i;+A8(o>6k+{pn7}b=wnL61!Cd6|Ai>>ao3U(>RdTi!@ar z_M5ipJ+2_o(mJFd*yUu6Fal`MP!FMCd7o(;hsUiEqco_G6buE?J}09WhV+st-z&T;%nb+tjt;-^ik=#*qqLfFZ&S*Dwbk7o_t%ePJH6Jf+b zF6^4mg?Ww|In~Z^{J2d!Yn)NgDAT^6M6D?awntubuY&bU7ABQSCYkaO9#OExBBcs$ z+!;A-WIQ*{>$-8*N?VLA&Z@g@RyGmFKI~UPdMvzoKQE%;F_5C6!F@`Oe#FjjE zaj>bBjN(ZJTmLf(PcO`c5keGTLqpJu;{UKd6I-o|Q%I)o@T2HN?zk zM+j$F6G>Mi*dKOGSz?+5#t@!wZCT&(kww{^%|ff(a-(rtPs9o?#V<$)Urv zEE|x9{d&e_nu7Nq%C{~tT>!Jh*(PuVx4XXmvSVy^$pUofR*c7(K>iLN7 zxQ;eWi(JP;fxYS{SRRW$+!zeZ;L!`J(x?VMy8Cxk|3qUjSksE#L0%N9wix--<2u&lb;m9@1T3d7PNrkj!KZaZn1kp>?YP=ro> zIGHd*%~25^-eTK&c$my6f=RTXEIo!8G{SbsZYb~bBOe7EcaeEo4k@{YMJOa6!W8id z3VkOR(!ml9MOaEzi3&YtM;TbVJTBHyf>PSi6_;e#nzmt2ge+UP1!dvK3asK-$xxV{ zLxz%uyRn)gB$7tNFd4G?TLUOZ1;-kO1+LksZN#cObvs(ORYN7J7y`W_Y$uYun~ihk$x8m zqL2|ENhD=KJy}3u0QaGRVU3PpHu#SmS zwawVV@jzzhQc?{~vU46`+5v1uD@V)i_u5JI($IznsWyf=MA)$zD((oB^aN(oD({o7 zAJXtJI_N4%!XsVff7rLn4sO%%2(~lKb6eFtIv}q=iTG1BDeskPJ2Z5ohru@{J366{ zQ$$iIZn4k+6rPpT8pde`P#h?Zuv8L(Hn{;6>1rZHV=}C135`g zStuswh~=beVuXY4lm2Wnl{7pd3!~UZT*#1?23sEFrg9mgF=j=@pp=bi7?*i+-584L z5ld;jeECada|bPrv;?pp&vHCNtx9`t9mar$=kPq;f&eg>h&vCsBX$fk!91M&6qhe&}YbTMp9@NwXBbN?4G4? z=y!Jx7IM1fFznPvoUzO0APICQMw4ODYRK7~Gc)_w%E?OAX)(jGghi9JQ`phOAjdn@ z=d?F?+l;2}wwtC%Hpg_!5*E!pssnv-;H>mXpgpHu9Z^QqyXGVKJ|HFw0a^n@p?(8} zgxR#$TqUA8w4;h6msaVZil}tp3C@3?h-)srL;W_*)H7=u#6s89(?bp@7(1?hqVD!& zckNc_-<#dlIcL9Z&VHj(F@?M-EIy4L#4Ve`^2%wHReJZVqwU&*16{6M3aUs@LNiy=PG&y$6C5k}uBpDQ9K`!F-=rZl017axsmk3%um5WG1MjZm1lR?Hjm& zq?5-1>AjSWj^^Q|6Q|sSy|)rpi1nP4O?ANVIenU-UO|ca9ct98Xi%@ARs9}a>JJF1 zKO(OFgi-Zpj1%3j{)$8DbsScI!=(B2khitF6RvbdiqJevi$#xy>UE#kSXn9pY``2tqKgRF)xWc56cHS&Dc!V6d%U(B}i zC2SWjVqw0NMTrjcWh~B1*%)8W4)7K12w%k}d6|R6V+315TMCJiJBUKU;(T@xFJm=f zw}g%15OE&VFo9QyQ&!yIqAe>dqMz`;23XU`~Sas$q?gFKk6X*Vh5xjI>{ e&Z=dc@_Ea7hm&}lsDk6Po}m8#naPJrzyAQB?R~!h literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$23.class b/bin/jake2/game/monsters/M_Boss32$23.class new file mode 100644 index 0000000000000000000000000000000000000000..4e1bcc3c127702f6d2fb3c35ae0e0193f60972ed GIT binary patch literal 1430 zcmaJ>Yi|=r6g?BKGqJsCf(cLvZAc5PonTz-zC&9QlY~GVFiuUAAgw0$)ZTi%8|{um zQ&noKKGomChZY49Rj6NE^@sFdP;qD1pp8VawR3l7?mhS1*Z%Y0AAbTU;SR?T!_*g| zD@(<;=*eQwa|0#)pjfpQydWr-&X&p?2E(bC(xR)@JGR@MZ;2gJW*EL?ySDn6A(6{B z7>tV7l4&H6GLghE!`Q0r%C&xPTl(u_+mQ^}Rj(I0V+Rb=t1(~CBQ(d5 zY)iFrg<&F>C+%HPbcEY3)|GF&?YR*gVaQZP*Z17|j=1ZRK0&)(h7-9sxNO-?WvRLR zW*WzEg5x;D=@&US@iI;_9I4;52E?ph=;nWs8!1fU6^_#kM`Os#l*8OL^6eGyw33&!^s%XVI>o1agM~=?4O~;n5q9nyppT?ZRo5*wI zs1`A}!L5lI%rY>l#vw`sXRAFcP(sO&QUOJd3x_EkRxeqlzTLK|5<^={X_WB} z$J><1$aP=YPO&Ofr+mf4yLgY`rG{)O&#(8ll`onULn^nmr2lzJXaOIX_%KAJsyi~! zfR{{s1Zu&NU2VB1?ow9CCLemcY+_ztjzzF*p5GIW{gq6if<+E$q|u1Uvg2)2x=k!; z_zYo{t%$i%`5VwlTQPA>Uy>uL4W&bSUo}z18XZOss`CtK@;;z!RIWz0H50eO0=0dw z@3x{$(ZB@K`JASQ+)<`>9I>aTYP7CIvs)EA;dpTEGhO%kep4>ldWJ@y&gca_0TkS# z+jP8uCZH-+$7@j^thlc9D~<>P8Q=`a1Qx00~APVfJAouHxiM#MhD-GnI@i@W^r_2`Y*v7WFv+j4R0he zwGD%wWTsY~J;20$oZ82kwZdOW8utqOcw-;uXCra`0Hx^leS_ZTYP5WE`#u)3%Ub2? z0j_J2%-*QYvIn?n+|&HRxJpC={7a1UuQ9>D!6g3{Q~Wzj^Y2mSKj1R|k$U1M+~PlD zlm7yX{~87{6A>K*L6lL)ISOMOHLT+zg*{1K^C_Jr&>(Lau*U?7+nkyvfzQIsY+#e5 QL0=nSi=H$A=+x2g31MMAQ2+n{ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$24.class b/bin/jake2/game/monsters/M_Boss32$24.class new file mode 100644 index 0000000000000000000000000000000000000000..18869ce4e9c27f68f74250002ac5c25867ecabba GIT binary patch literal 1231 zcmZuw+fvg|6kVqc99n`%LGB7DY72!(i&s#TLJ@880pvj*I-xzbv1!622b2%+RUf>5 zgb(V#$oSv~IQmPDJ85Bp*qLUZo$SlnYp?V3&-WhyQh3A>ViouX(Y|E9x zakYG5-gez|YBV*?p)m9Zf)*{gRxzyVy^_8~!3@o_hGob*4B>cUok7XiB@sm!5fx2n zW@yhDmRQ-YZ3<^i-!uh7EN2&Wb6s}~&u_d`WW{h9Msk5({{u9`&{P(3d4ZuTo}lO* zT{Cs7tgTANu*x$n=wOKE^{QiAYcvIgQ)R2l&=U{V7A2!73vwp$B#JZW;pk@Q4D?~oXko|L5tcOMZo!qh6h1q*F~>o23$k-ONX1>;qn5T~lnvTgXd@d%28$dd znvVLk+q7COuggk$K}8lzq?vV5l(v(xw{~gW@r~?8*4MKu%%`Na;K+wNC(To5N?o3LhL$gM2q8+(C|U4VQ0QYT`D#6gY#VtDr_fGMufPOZuRu6<`ZJk&x>p_ibs#l- zlo~^4BlRU=@i3(i(3MYqMgJa#W0yAfahaUtK2pi?JxuRon#_$o%qHvR0Q1VHqgMSi z3iul+{4F~8JM{AR80H@^#XtJ(hwCjG?Y)8TW0?Rb(C~mxA^QH%ua-letU?n3EA)?2 Jls6gu{sMDT6RQ9K literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$3.class b/bin/jake2/game/monsters/M_Boss32$3.class new file mode 100644 index 0000000000000000000000000000000000000000..b9633718db1df3ed9c065138b068ddb4ac70a752 GIT binary patch literal 838 zcmZva&u-H|5XQfaH+AEeja&E-q0*zb193^Y40ErQR>>O%t5!c};0Mt_IQdent zG8tdU_)J`clA+R#`XW3Ru}b6FOP&msVW@U{v+zQp1Mf76 zl@40-xWnL##VC$+Z>SPVC$Jtdtk?2rIZ*wim$d31O1O)48*2GrlC{8gY+{XhOTMSz{$ba>_*v3PKl8GjIFfEVy4j$o&jmHcdIqyGw z7dv=LN6CD&$E`>4{Z6Nojljt8BlRa=?)7=8Ij7Mi?#qr!N3n1{=~rndX;^LD4i0nJ*9)Ub5`rdTEWW9`knx^4VJI4x@TQs(=C_3qsqVB wa4J*)_z_C{9m=GO+|QV6Q{Rk91U$oYqFShB-a2+kIn5T>quZfxX_0jO1;P-k(EtDd literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$4.class b/bin/jake2/game/monsters/M_Boss32$4.class new file mode 100644 index 0000000000000000000000000000000000000000..ce92a536626da967868e1b5d375102c070c6ec62 GIT binary patch literal 842 zcmZuv%Wl&^6g`tn>c(*&q@^vTv;hhvEf6VX7lcGhgCZqWp;Z@bqG>WDL+lyL-c=2^ze00gp|uL_flyUzhcOiD;Es>$n>O(Eb<<5m}6LKDJ@S% z!KIAO#icJ9iY?O>{)LEC5>H?9c%Uppsg%g3MGFQRbS|S^(>B* z?$_sWi@^)TFfzImns5{nfu!}2VZEFdmp#>uJ8`}8A&=Wwcd*8=k}Cd|HgYJe^ss?D z44J;7MWh9im334QnkbRU<1X$w*kag9iTpQ#hi&XI6s#HP-mF2^ba5XK9Xw#zNU{H^ z;9(b!XqYjRs@ynCv)O1g#x_{#f219y8=g(f;GUUL)RhgD*s(Bk`+2fWGVEA)ePd~x zZ5aKwi@ygz-rpQ|wT5K*$Jldp|J$jUF;^>2wLf+u-!EK(RMT zB3z(|VG&DoCIZh06M<}T`76PMo~VPLq^Q|zY7r|_>M03O87yC6b>F$drdKF@M~Q#A x)+tg0;HSv*cPJ1p^7muSwFz&kNeXz3C#0H1dCaX~kC2nQz&_nBeM_38>n|NFt?vK; literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$5.class b/bin/jake2/game/monsters/M_Boss32$5.class new file mode 100644 index 0000000000000000000000000000000000000000..563137ebd70ab39f640aa9c52f32207bc98ee0c2 GIT binary patch literal 850 zcmZuv(M}Ul5Ixi0vUIyZEeME+RZ&||o0RxeVqaeQgG>x^l$1gt-^m=;$ROT`IQ-;vncM7inZYWH3iqYHFk2 zj)!L|JdtONuXg6j5JWLa~{sb&a1IA=6V)<27NWROaN*vf@kAs~kt6 zHoe+BZV>WAIS2#O=4M81U!6xxVtF$ltd)`lR9APRc2p~$W^og14ps@v2?K9C3JO?r|^^Cn zj$?0{#JIo_VG&Dw#sW_nV}W!b|CM1%kJTaGC#dNwY5~hL>N^(TGRR+GW!JgDhUewJ zqbR;y=@i%i#3{1k19FUu;^Rbfb;_G*vH~9AF{`FgnsCe5VHCV!V3%)~zr`l``U{e4 Bu~+~A literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$6.class b/bin/jake2/game/monsters/M_Boss32$6.class new file mode 100644 index 0000000000000000000000000000000000000000..76ba95a7b9a6aecc112ee39bdc646a6d088e0229 GIT binary patch literal 852 zcmZuv-%ry}7(L(GQPve00|60nD(VL6l9Bi_V$SVCyIp!a|0*Ap z2TgqN5AcsNe%%HsktV&TU;CZ&{W$&e_t$R#4Lo&_BW!;b1KFqtVkqmwNSj2)rheQ# zh>Y29?7VPb6E-tBM>;v}D?NDaixKA%=3XkTl2-()T00}yhmkK`SSWbNV~()YQChwm z56@+MD$YYmD0iZs2+u^U(s=gLPWs9aDxFNN8~SMy@_|g+ZwRZ^8Yh1d^-$=bev-sW z2hDjb6PAZ!5J$Sp!;HGI3i=7NSYHna>(y)p>8oDSO`5e21>C~AgEhiRrh~V#E@>ic^^a?%=M2Ey7ktc)xM?N+NbF~rF56K^Zq_2t+E_aqv}J=s#JF$%;V ziv9IUr_2q&?xA4&C^9bEa-z95<;^r%0gv&7RV`E}+!}TnZMGQLc(*&q@^vTlmG>i7KoHCSOg)_(x6Cbh19AGHqj&*oN4Tt$m8%; zET9XJSnvUS6yiEbD+9IUIllHi=RS^q{r>S2KpoFqk2p!D!fUyLZ1VeXaEDtXP|RI29;{Lu8J2L}ZodCV~^wUw49 z7XN1=&(1L9EyJ!Dv~WNXO2>Ls0|QTKf8_V{6H8_KJYQ}L-HdSiQ!j<0^;%f0{(NKoP?tmgr0co)e}5PHFiI!IYk=gI{E*&Na1!l^OLt2~ZgP6*d^p-GO$OtN8i#W>G}gM CU9?aD literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$8.class b/bin/jake2/game/monsters/M_Boss32$8.class new file mode 100644 index 0000000000000000000000000000000000000000..6357c1b1e8e0ae0ddcbdcf752e89c2868730a5d5 GIT binary patch literal 852 zcmZuvT~8B16g`(tS-M@I6a+-Xs;DifP0EW&jfo&NO$srA@Zd``wBvT{cDC8s;-B(C zdCh+$X1Wq z`=Paawe4391YskUb7pDOb)2;vnoQ7a8O{WHC!vY-yv8 zM}u<}oyzk-5sIy_BZD&;=_H=M6md^mLaCLibxS{WLe^Jt^BrNOT;b#kSq-G|t0!@! zjbER`5@Bf|`%!4x!$?I^2mZ(~i}g*PuvSi2P+i@L+i|_}F^4-?bFfNSPId5}*Rn6I z^01D(gc)D+Hqrvg-r9OF45LIQhkLm1V3V+!68Uco4_kOZDA;ghx;MI{ri+Jo?BEe$ zJtc9YjE8MJ;fcm{E_Lff&1R#~7#m_$@QJsT?)qwMf_oBfmMWKdZG?tQ`F2gwTR^@^#coV85AzDvMVmJ;d%KV zD2cDvIz?^(VuYNyK%Q|yd>L!5PIyyIR=`s{W7Q1GV{QdIjDjr&cKLSsThb(7{{VeU BvgZH* literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32$9.class b/bin/jake2/game/monsters/M_Boss32$9.class new file mode 100644 index 0000000000000000000000000000000000000000..318467055f869709edee0172f56e9c16c410384a GIT binary patch literal 1069 zcmZ`%-A)rx5dKbk%F=cbD9E1(sHiO!s#HWQqO?#$0^UHHC>PDr9@@3r-DdYd;LgMs z@Iky#18ThR!b@L6mdsJq!SJ7;FT`T6Fjx%=#r>W7mT)(WElV)OR-KYz6%5x@dh3$Qs_8L|t@?8Pqn->ys3PRb5<_o1 zLC(8I$};RqYF)afUCFegn;}{^YOZ4!%fcv=KOx&ShW@x8Ta?X`EXqvcVHl^;uc40$ z^W|>YbqrvTx~iKtRTtRI^Y;xPf?*$fYB@TNcW+8@ zOY5_2mn_F4Zr6mYI%N$xhGAb>e=P}vzGBBqJG` zc#ZZK^b;Un6}JJR<3mg&qlcJ$iEGJMnB~t- z(v7G}_-E++3kLaDjPh?t@b8%7KQP089+lD8Ow}rblHxWNsE{D;9O2x>B1w)colEpZ J$fo+D=QpUc;~W40 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Boss32.class b/bin/jake2/game/monsters/M_Boss32.class new file mode 100644 index 0000000000000000000000000000000000000000..9cac2b45ecb35cd55949561cbb8c1f1e9fb93fd0 GIT binary patch literal 31999 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 QySQafx9sPZvz_vP0s7cVW&i*H literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$1.class b/bin/jake2/game/monsters/M_Brain$1.class new file mode 100644 index 0000000000000000000000000000000000000000..376612459b7e117aaa7acbe4cfe898bc20ae9c9a GIT binary patch literal 881 zcmaJ=O>fgc5Pg$4b>f&dqy+DQR7aLdI_!eUC%Yc^_EB+|z+ZWA)0 zBCMndtdkuzI*npWUBD{VU91sSQzZWy?c)wMSauSPb^ly81s?9=zKeT=`$l+TyF0J?61SW~h!1mKSipFtIwv=s^KRXLgtkc}fecc;I z2|Ilt%^>P?LZG#b_l6=#WP%F#81V7JWaRd9>~i#skr;DZUy=XJlMFl_Jx0(^IJ{Zp z*q!WnFWCUpulR1jPraktencUZpO(Bc!)<686{MCmf`){gk=kLMu)o%Jm%NqEGw6v EztY9KWdHyG literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$10.class b/bin/jake2/game/monsters/M_Brain$10.class new file mode 100644 index 0000000000000000000000000000000000000000..15b43019bf8afa73abee8dd9a4932fb8a7a8ad87 GIT binary patch literal 1072 zcmZ`%OHUI~6#njX%Fr?h6a)lCRMeIV!$T1*q7W1*w_=Y1G63bqZJ9+NgN^e~1vSJ4egUg{@|EMR!5G@P2w7}4nOp)_0 zw;b-4tySsUZaLG84u<%Ks=iPXyhQE<>~1miB*W06WEW*YW>Sx0IE@|y-Bed7b;E9= z7iXxcs_jy7+ImhuJ^=LNcR(EHaNfWGLq|PsN7|0H!ewQ0!NedgFvRkrC_R5wNQUO* zdXAn{Ugf)FVyKSG_X2&c21%SKQ_@5V!{lG}c7@#Erg^a?Ww>TyL>Y`=chlkJK;2m; z#xPEaT(Kt`eX?8(lel5vIzwluqx-~gmIuPb6mC*4Wt)f%k3_9N!LDw5z8Xv%w~#S# zo1r%Z@`sO!8Qh_1J2YS6N?Y##cgkup0^w{DYvGi?Ss;*AZ^ti+oUInbZ0z5tqL(&k z(JeY&K=iH%S@B8+i2eRhRe$dZAuPGB@aG*K1R@|ZXgg`XsGYQxq#LA7l4K;K!>`c% zoPIQ7RWYm4?+55)Y$4sOJCST9jo}p9=u`kBBo#m;(f*7?JzSwf`xpw1oP;LO*$90? z@RSDA=|glS`snR{jkBa&OkAe-ic;E*BV0{CJVZKraD;Ta_8n8&k6Inw^<0fQC@W@hmnw0G2QPBzsT GJ-+~WKjg;% literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$11.class b/bin/jake2/game/monsters/M_Brain$11.class new file mode 100644 index 0000000000000000000000000000000000000000..7e06af4e8b30b6559e9f2ebd4b10cff4beec69f0 GIT binary patch literal 846 zcmZuvO>fgc5PcInb>oxY6+>O})DyzpX~`tw6G8A?s4^)k6`sHaWH2O{adBCOXN9Q@I1hMo$VXGtto z&|btUVYQ!D@9Ix{;>I!D*j7zKr5jrhskSwy;Ck&WQZqhJ#()AvijkDBm56P>2?Rx;F0OzJ+^) zN{0PU1_yh1z|Bmlgq<6k>2^Dv&U6=AgztG!*@FLeOt8@%9YT;PCToA1&h`S}BX Ca;~%h literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$12.class b/bin/jake2/game/monsters/M_Brain$12.class new file mode 100644 index 0000000000000000000000000000000000000000..9a0bfbca3f2597f16000d62e9ecb11857a68b4f5 GIT binary patch literal 1186 zcmZuv+fEZv6kVq?WqKK;6c7X~Ah(tR<>C#CRSFcFP!m#u0Uqk1J+w#KnPz5c{1xAP z@X-e)Mu{u>#n2y5Q1WY@ zs&k{7Dms=ls_6iFspN^PzEqP=$&%HYLl|N=&KL&cUVc%LWvAq%6Gv+H9T3D#3~3l7 zg&q-|BptUfOzk!J8 zQJ+dnxGgh`T-)SvE}u^v1(CwCh9!o+D{NVA3!QASO5If@E!{gQ*B&L=XquKguORN> zfrk53%0qH>TRI+MjX}4~mQg7+L|q8tX891(c&uTaVaS92uY!&Yp3v6XP=?WK8_MU~ zqoiTkqJBz#@CyFBTACr34TkQb!^>v{-fY`Vb5|KEnk}m=a?nL*2wo$H| zHaV&woSI3i(DQ~Ntj#*NZDG@9iJ10}_M3c8XN^v)6d6VT+*brX(T9&L;@ZSVnK7vJ zXPD0VWfH}1I*|#`LvNR0fuc*GL?a(5T*6&;C}SR|@(&tCUkCc02wY81yS{fFD&f6D zl^%b1uP`6&PkzRLvJ@S;z-V$l(sO}3f#%Cd`~vZ}=sm|`Qa#6AT@Qc3BlUw@zAZcE zN>U~eQ6>>nrm&<;V@;Vsnqo$oZR;7otl7~+)#=_KMG-6^i(%?ullTH)zmU1sFIU_XY_;!<2Fv$AAC3ZRR910 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$13.class b/bin/jake2/game/monsters/M_Brain$13.class new file mode 100644 index 0000000000000000000000000000000000000000..16075eb113c8c53699b281d0cb9706e60bccf6cd GIT binary patch literal 845 zcmZuv-%ry}6#mZIQPx$M0|5bXD(c3NhVeLKBFM~=K};Y#_|n|1m+iXlmb9JzQ$8pU zn)u)!;2&i?-6pAqCOu!zz32PRum1Y|<0pUyb}i%xTOY(wHr&1#Np}?LIFV88o_L3m zPN?QfZaEA{f=$1;IQDeQCo$!9gB#gvE~1@^n1v z%II8l14$@%!k!2&M5I!Gc4#I86%#6*Os-q%X%g~%nY7;!ma8=m{wUl)=)QZFL`wIY z^SDbWb<^s-_!FOafxJwZ#PWJbSgmFgNMH35FKO1^7jO@&7FGyLnF8MOR1QTf9jxI# zA=g(tjI2O9HcySN!YGv~U;_^cU<(fkP8^Q4?~P<2WrIL%8;|hB!ehc( zhW$?l2ithc%}l6-&0Cvkw_B~&WEHUtE_qJbg8z0*u+PGA)RQfhuEd#bd@mg+@9bFj zf-vUsoycSm`W(>KT1H2Kh+`R}0$w-&M3`7!Gy4{M2aLp+-}#RDul$jN&DLgwQHRNw zMfRO(5aS*82n$$bn+m*OOa+W`=?lY@o~pyx%}|XSY8gv2>N^(TG$>tTxo%x!-EoTF zP%%H>=#;qt7<(ufE{co`#{NWeWy+grvI3srIjb6|PPjGfFq*tvpw6$&cWIIQ`~htL BuF3!a literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$14.class b/bin/jake2/game/monsters/M_Brain$14.class new file mode 100644 index 0000000000000000000000000000000000000000..d7c6a78ddf27150c07dcd4dc2f0f5205dcdce73f GIT binary patch literal 1185 zcmZuv+fEZv6kVq?WqKK;6c7YNRMeINWjd~~ zopipqWpinc&CF|183uhhyQX_smFC4}nb#?op<`8=(p_gz63HV5b=xY72o!{M1ku6J zwJ%NaqER~&_8~tr1Ven^Dskh8+tNF?e^lM7bQnhWeYI}TlVJ!}gqz!8=uIRk`3+AS z+^nPvt}V?O?yP7mfW#BZcZqg7VxQlxlMi{zVkcKObbe_A_xg8y&xX%zi5+&EN3xZ^X z5~o?Zl1C9d#3K!3B-Mx8muEU2;|Z0qxmj*bv=BiODGlQceLhutw62$e*DX`W1SX04 zT-w6xm|^I~CQq}uT=FE0G-fnRGxS_z+v1MU$rW?dT}9H){gd+CQIxg1Wqb1qV*yV! zEK(^S$@OLFSi&-c?pO`8T&xL02;yeB2r^jHu*xvtL;qJn$2vA>YfUJ_@Qn@Sa?MfF zupD8WlO6nm|E`v1$YqV8v*7a5MV{B2ZqvL~MhaHLE{Ux4EUC90Kjj&UJiBX_49g)y z<%L_dXcc|7gC+=5*HRG)Iw9432+A=o5Ve$ReIi0+hJ`mHv#< zS#Kp#?4%Q!0A2L<2qr0d1WG*ikwOdZu|rw(L6v{dIC|R9_e9`nde-s1<5-Cv9INyM zqX+qkcyH=6`jqMT&=rPL6S1xNYfG-ddec4RgX*+g1+w3k9U;ITr zC;?4;@CW##sAtu%bs)op8x&>Acwqx2*d0r(UiGtU9@Dj$;#=#LYF@Qma;a#QW z`=eG_x(A|cONQjGQxW!|a8;1^|BU(#g|27! zeOKvveh9Z1M#_PEtJ093Z#iwL2}Ja|$uN-$3&^Uf_?Dkfe~jTaCJc;|yO4qYy@^TO zVTgNeaja{$sFP7v;+^wOC&0~^xQkhaMBlH{HHVrO77E>vTnzKLXJCP0G9-4X#>8SE zIns8HrE3Yd<+zsrr7dH)kB0^xFpP$vJ2bsb;YkxIq!}W0bwxiIuccaT#|=I=h748= zJYtv*kzDPziPf$J&pFc7P&4CrjGTeB%kD2Jm{`XXYI+ySFmr9wOQmA5*j*V<+BKSI zxMBY%LtWo@j@*hYs$g}@{${QQgQwlv))m|FXz+W|Z#Y#dC}}O-f-O8xdemlGOImhx zPg+OH4a(LjGKvGszcBQJULuIo8K($dK$I>Ml$*UGiZ>`@xQSsp1A-Nb0Rc~re5cTZ z2khWmAt=9qCNbKFHi>{_u$cL9im~L>*E5V|PBG2TFn5BbjB$cx(@gwCHu~*?dWx)r z7m?sQ80Bv2A+~2$FnZSbG)D!rMUwy>50=_;Gcf~00FA# AQUCw| literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$16.class b/bin/jake2/game/monsters/M_Brain$16.class new file mode 100644 index 0000000000000000000000000000000000000000..44c6ff6ee84df428c06a32c37a7bf6b61d2bc2c5 GIT binary patch literal 1325 zcmZuwO>+}R5Pjoad-bt^Eg;624?_q@*r0$3hL|K+wq=w^1|uV|eGp@5EKR(cRqc+< zl|R9OONt{04vC8-E{fs@D8uG+jDi^CSQi3J5ovgBZHOBR2b}e zzb+E65O*<%A%-JGsl;-pwJCyCzUc{uRMD?-ufhXq&i#+JZpx5hq8Q0_0H0Zg!G_R< z1%_kk3_0)ctjAR&Th@V8joBDR7>;im_EjyE<~2`LxhA_!k(5J`9Zg5Gh`Oxls-DfP z+qqYOJxAS1U=(8xPB4u0_;j@NvL&vY(+e(6Vw@pf5jE`xWuX~j>5V*HnMwkuan`{Z zhQpD#qTF;bfpgTIfUA19RpkV}#y1Ww5Zy@0OEibag13F;;vy~)^p*@nwJ9mf_<^)H z@`XZXJ&p_}9b9HO`UP5!hr-1au2B8qw)8x5iI!j6;Q>`2M;6x{e7j$9R}sCRE~#aj z!gsjWq4}|V9N%Ha!A+WFBwN3cE^gsALn3VRXKKsi4H_#eSYUu*dB?>MAh`@QBq=M( z#AK|>R@)EEIO4dAoP#;4JCfr|Nw}Cd$wouJqw4z;537OD0k7!<7O~_Y&u}6F^1nnb z?xA3MV-Ofl9oXbTp*vn0U?{vT(q5GJX93Y%xolBo86kuYt^qN;g*ND?jy-SmlwTTn^_^BxaF5t4ccorH<*lNO844xOgSQe!cA z`ESJjpqByCuF>xRc`n1IpGi8qJtwk<=tSzo5qcVcD`X9Tl^Xt?OfTG^!@3^{we~|( zINA^WKmdl*!=d*>YgTe)&8B-Wxl)=+9ZRN;@8PS-so}&PPQ}_!NB(=ghx0Enwu|&z zTur|C4TmS!-r`2;`{#e+#x7;r4P%XFg0rq7gk;b;6pT!)cE5hbc^nQ&uZ{~BT4C+`Q{idV>!_MY?x Nl<7`TjA;p7p8)UyBZ&Y2 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$17.class b/bin/jake2/game/monsters/M_Brain$17.class new file mode 100644 index 0000000000000000000000000000000000000000..df06ed7f5b09c2fa63e38948a99fc928fd3fe8a0 GIT binary patch literal 975 zcmZuv(M}UV6g|TfO3NZx5fB8cBD5e>P~!u}L=lrF#TN*PzHEl=(5~IiHnT%3G2uV_ z2OrefnE2oa_)*k5?MfDPlbJiS_nvdly?1_{|M&@D3y;$nVpx198gi>t6HQrahAJ{r zN2NXYg%-YA+I*5mieWAhv#ZQO-B*q0RnekYhLNYf^35{_UMLG9| z6BS>{*C)**sSm_aAQ^I%&=bL-(7wILKU1deM-2H&BG-TPY%>hkq$$5-m?{)0xGhS7 zP_@#&(Y~r}kK!sNII`+puP!6wdO;Y;D#0j$YB0_l#?{i*GZyj+r#337(J; z`yI^U2E$ma$XCZ9wIxZE@DN=F^H@mZCc|uk>{5(_MciVTY=s@EU7?$ycFk#v`oqdr z%WVgDY(O?@iHP0)6VOzSw7~wTGse6~i z_k9D|_Z_TT)R=dowN%EsXsnS8j{ida=^exPzGdALt$3K({qRJ4@|ADL?ZmHX!w!qy z!>+O;p<(SwQx9n}PFX3bcLEVbGD4n;gCMfwbYr-J3EC~eI$2A=bCaLR4B(a>JW4?M1vH0iF|70iVGFW~JvuzD>I|vdo+;eZ}}k+KeDYYl<{q4aGoOma<^ILfU$bymg3q>&<{?YKRr_5Grn^rtAwltAAfCv?=3 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$19.class b/bin/jake2/game/monsters/M_Brain$19.class new file mode 100644 index 0000000000000000000000000000000000000000..4451959a6edec6f9b0a30c801bccda805c02ca24 GIT binary patch literal 983 zcmZuwQBM;=5dOAzG ze}OMPC{l?$_yhb=#@Xvh4)v0ox!IZd=G&RMpTACj0I1-hgA~KUYu*u+a+`NWxf{q( z3l)}k>dzGSWMS=*1Djzk5wj`v?tv#ePg}f4u?!=RJ?ZHu3|6tU$6#*+Es=$VjEgiz z7$&woDPH!w4WV{kK`azCJMB!Lnhg3DkY*Bo4Bm`#A4i*d1l>kPSG@J6UQSKUC>_1hk`g>9Miyo(zq zz~SD$&)Z=J1>AOUi(&p>$g@egxPv004lmvf4n;lGT(+o7=h#M`A6*;h(P zZCs|dN8h6RCKbcw)$7%W*U=1*8eZ!P>g1q$|%hqXBbb1IJ7d0%) gxJPBzDBDIVpCOD&M0Xwcqq73Z2lQqs%G`&Z-#by(oB#j- literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$2.class b/bin/jake2/game/monsters/M_Brain$2.class new file mode 100644 index 0000000000000000000000000000000000000000..d31fcb0fcd7709c143eadc536580ade454b633bc GIT binary patch literal 839 zcmZuv%Wl&^6g}5=;>0n1q@^u=&_W9&Ef6UzgOF%xP^7d%YSjgsXyOdX5NBL@9KMPL zbO90zK7fxxTqhwi4@;ioYu|J3C-dANst7xxJp8TKC)d>r5b z4>O?>w*Na!tJQ2aCoUKnzT+Kb8~!~p!MljYaUh#2b;F-|{WM)B+jXjgFfzQ%Gnovc z9w)T4mhnj_jFAR=V5j-_!Q^CzId(aE#z>60!>=fO<_8NNpB^Ku931{w;@F=iG2Y^c zuz*EAQ-LRpseoNx`ou7$r|Pis8LB;}ma#IUzF`3_gQXj+9_4PZ>HDQG*mFM4b;{fT ttOANw5hcb2%bRGfO?fj-R=`6%VpSWJ3Ac(vMu*J>j`;TYTiPUFzW~`2tMdQ= literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$20.class b/bin/jake2/game/monsters/M_Brain$20.class new file mode 100644 index 0000000000000000000000000000000000000000..8966f08887efcc723969d4ec738c111f4150ad79 GIT binary patch literal 1867 zcmZuxU2_vv7=BKBlBLNhv}sE}X$ur=sU;0(hNpLN^6L8hx^eTQ5b;+GBE@Rt}m zr)Rbp_?lCe33Q@MAci=@vAki+>vgLr-CKImlnkl7Q_{^X-8Iy?spNju@E9iZky35o zEHcC@($Bri&_6vx&J8_n>UJf)>AQwqSv-PXhD1?;FYM5R0EJ?1I+|IQjgnvR7u)Hw zxtXml3}8^haRM8`(~J@r!Z2ODDs|JZGO(O-9~Br=>V&1=FN7wg9v7IvBstOLMqA3+ zzTrP8c)spSLehm(n9^{%m2BDKBydJm(7c*q+jXl8uVF^RG(%qmAoTh+!xa*pgh}7Cu%?s3?Z9wiB7l zWwY6E06!79jZdjev%Fz%JBPqWEKTrt1U|&82o;Ee+aB>vqX> zJX#tX(yuzy5RtQO>8_c&=SdHfpfRF7iQq}AjLsUJ7DzIZv2(xT$P0SuK!TnLlHf^j zGA8LPLMM{lbfSU9F?y;5b0k%Q&Q#BH5@EQ?4lW|0o&SfX&=-cX8YPHR%oZQ3NeY{Sm%;TrvFJ{AY>SFN#nLWI@k9SfRAN@dabbXFeUUwiGhcWQ{n24JROa7d!Mu?IGP)m=F573m3!GtTmM2kuC`BB2 hjt>8WnU1MJa;uZ70}XsllG8u~_vxRYq^f`P`wvT!v|<1N literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$21.class b/bin/jake2/game/monsters/M_Brain$21.class new file mode 100644 index 0000000000000000000000000000000000000000..e3e53ec9a2e589a1b78ec5489281e0ead0327daa GIT binary patch literal 2078 zcma)6OLH4V5dOv*YxP)T$FU)aL*4;9O1xMJapFgu_#s;$IS)JL5r`OR$I>SI5W6co z=0Z`G3kPzB165E|k!zfaLy7}GfM3C1;7U7-gS-cJ#9mC31U)|f3 zeo6R_=a<5*x>Wv7>By+fcufjBtSQwQ9ivK>s#@jJbM-sOY8YeK+jgNvqSCAgq>i&V z$Iw-^UW!z4tz1W^fnCxugUdvp$eiKeu9V2iQ0EU8Fl_Jy5_c3H<&6;v_`YKit$Wv}bFp(>l8^qcFps3x(BH4Qh3&TVyl z`913RK%GiQ87)PnQ)nOQ_&DN8NR7o5j;K;Y_yo5#e9G`z6R#0kwo$OkI!gGASmq1Y z^qi=PxP;Du& zyE^P$!Lro20%_Bc4$S9`g7QW0&8Dv5QO8S&Fcg)$QS)nFk62arEH@;s-^$U8bs2hA zluc38Tm3Dy;x+t=%vq`f>aF%Vs<=wrUvMk77f}By%CP2{WRQ1V>Cf3B2xNdGpu|KO zQ6qI#T5B{rOOh$gsb7%Trb!o4G^R*`p9ZJRG_Ccf5y>7}Q3=pXqXIZXQUS#J`yP>K z9#`n#XWEX&UL5Vm-sVyEga8!8cIF8NVmmlM@(9TjBuD5!{S$6JhLP!}q5s{d7}xdm zQ%uLs#~-3M(|=`<$DU#Cew+=)yMO%m&*%Dln_eS*rvLp&Q_OVl;F@xFt@{V??H2S( z6E)h*@Ev^k47a`+fcW-%^r?Uzqq2kQL-aHkcW9yV6pQlo0LST~StR&b^zri;;^R2P zFW@-8h!H-449!RRB+l_EjPq$skesG^Mv z`2rliga*%JgBS26FXAhb_xUou=2!86U&D9&I)3IWc*IwugfBId+DbU37Y^L0M%(ac zMwKO9oo0#(+xQ%Zsm^NVBOq#wVG1GX;%Jbz7m2^A1E9tk>$~0 z_ie_d+Su{oF)Ujt`%0e-r5e5I^N*CuF!M?(sb4d=&DJS{x107w02kE|70fWqb)*tU zlW|XEC%l&khI%KBd2-4#Y5el1r-w3USnF7OU6s>js0@TY*kfokTaQg>})reuSX`@A7#=5K9t@l;j!lI7_(q(O3#zQROHW5oDQk|vL z4jW`e2v@}lR(;%ISg~OLpCiOwtTD_NI>+g`xDea;2R)4#=si5}ai3x7D%42o>JS@- zSc@lFCX_aXG>Tj#XVfU0d2w!r;5eORv3MuVNWya9PfbT@X8S5m(wsVaDD*I;E`|q6 ziEKCFc`kCSgT_sF2-B6uOukRv4p~OFviSqEU+BX@Kx;r2&NFxvtdSoUNo22)$8a5U zv>Lz@vIgMR=RcDv$_*XPbF0+7EUn{aS-MBrv<!f7KM7nnAi)3g!Y@ zu4@Xpv7;l-P>8r3NdI^st8u_hD4wH&3%S!u|&S-X2mvTzjEZe zLiX#kxXzI3D(xL%sbmS_l|zQ5Vw9O%qUU$~dg*-;BGnQ5$ug1WdDcr_g9d{V=k>E=S z3~b;Y)e=N9to*l@X0y>~l-fx=KuJfD`W&GP3pTKcGD!%f33=jNDJ*gm7Pe(z8xR6vXbtQr!gO!!x?K7ykQT?|_6dzO%K3LpG}9wz z?Dlv=sF@n!dTy)vlduEXvmKA-f5`oTW06BsO78C2rsr`F>!9VNjYn|OQj)EcRU>4C ziOuhr{Y-x}r07f$LbDL3%QV@>)QND8EQWb3(5VQv2o*srbL|tsG+ePmV3;Z&)vX!Tkvye#N8s#|y?BeMq!|NNNM53FkF|ymlI7$W2+o f48(^gcuF~9coxJz#|y$Z?I-Y(ekru^6EIf}U zCSG`+3!C9Hn8r(Vpw|5hhih>^N|Qfu}ZZ_ z(qOmqCgD=8zHs3%ER-bMN*@fQ8ouuFW0EpVyp&4nR}6NedC1^w#y#P|M%70J6AV*r zsl?uR)D_7A??!^5-i|{a9r8q)ym;y8flL{e+oip(+G#OV`a=vMPx6}K?wVwP-`b}s5Z=5d>$Rv3}$ zD5l#egGv>`Rk4UA7k3yIOR&qw@NpN*4AZ&IQG6mYug~aA|Dm&rf!@Od7xx+FuR@Kb zj`p!?h_!H>BtmJ^NRvoKbaaXN@7#1r`|&sl#an46;urINYA%#UwynY_PU%8-g&xE` z66`1?lFf*xsYtN`nl^nx$X1#%}Lw0aa_eSky78s&a2qIium zhU=K3)c~GQGyuCk{gp!AZs@Q+mRjwL);ew$ty`p~ZQ!r}z|40n{KSg$<${r0_yo`T joN;DzZNV{?9^w&^Y&_0-8fa2rN9v6#izrWocP%1pz@WDr!rGMNmXR6F@K|U}7L7UXo^Lr_0#wEZJSW{4u_O z58ylS0}L1ChY#RG8PBxUEEt<~&YqcbzVn^)ou9wXegK%lBMSz@;2T~MQ;y54!m0Wy zj6@JR>xIRDOEo%U!DQ%Tw&;oft`!7F@#|Ti_5adU22=HY6@3vT*Gym zVU@q9OXJmwxkyUsr<*oz>6COtYL$4EyCQ`g@)pJzx?**nl8%c!6gF;SoG@H@fvgs~ zAgjB6pnFfl!5s^e=gFRnv1wJNsj^2S6e^O@hyM;z>mLfQOzOnv^JmZuts4<9R@V7$ zL-q8AzZVq6iqv~yH@0p<%StjXtD@(JBc#aSgjJbjEzQHlRW5zhE@#v}7YVe?{xQlzl eWTu9~Itc21t$|rQAZy|wo%8fhQ;_bEe!l_UUh7u? literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$7.class b/bin/jake2/game/monsters/M_Brain$7.class new file mode 100644 index 0000000000000000000000000000000000000000..db9daf15c31c746fd3eb9c2929c8279808256c9c GIT binary patch literal 1005 zcmZWnT~8BH5IuL>va~E9oBl0JF z@(1|hgPIx>A21qy@kgn1%Sx88$==zSJ9Ez2nfd+a>nVU79-1&17GCj|$YmS6EwXJ# zdA@MHY^l8Ma;a9fOhg&xLMgk-KWIwTdQ#&ZN@W;$B$f0ZGelD9Lx$*%Qxge95VsJ+ z0K;feD)GGAt_b&lS8TzMEIL(gA97b}KL|$srt}yViy^Mda`FtZhVTnd875L`%01#) zo2y24-*=^IeKNZ1VXVT^vPZ0jHL2r7)2p0xvbl~L6cww(&!1hPOT2}{qGvX@V?KhtrG79BTVc&UAHRsq#m*rtk8y@5zS;* zRc*(k8I^?JbZRCZP$w@-JYPLRC@3Y|9h-Ze@UR5hFj`ymPueW9Q`9S8ZT%*JI7AlRLmnJbDlpd27 zqQSjSnCM|H)5B5^x8A(Pr2c%-LuTyn>*LSJyhHLlf|C=9MBi)5zSJa%gz+6?#t$qT vKan$j^?9exumfIVK^Aw2`7TvPVJweOeXg%~lkRlvKAl_iCMZk)5m@9?_F*F6=4 z!VmHrrJ~QJnpm`8GNdCeD=OUDm8y2H${Xa$(6uC$4DT|;vbk*rbJ?qkBw|R|h@*?4 zZ(Sryw3{ho~{J%N=T(t?3dj*tm#GG{HK5 zNtedcRkKJuY15>QD>@_@5?57T=Z;7qhiMB_3~>Do+wt+T$1&M z=j+~+$m5!Yxz1ucd~8~j1T9Xx3alL>@+z{ceSG915VKma($z>pfHKl~V?D8NG0meZqNb|zsNvlV?McM*M zMlwG25#8_T!$6YGBuN-wV3M(ibi3t5vX?Z5Q|O~p1I&=r0I}5RwwTn29gjboOHGs?O~?0f`8|1jz^wV^7=MU<9vENI xXM982_>PS61Cz$j!+b+6%yvFP$93GGj4|9ijK76Nk|u7`S)eybHr)U{e*yb$;pYGV literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Brain$9.class b/bin/jake2/game/monsters/M_Brain$9.class new file mode 100644 index 0000000000000000000000000000000000000000..672d38d98467e34365936f0d5eb22b61703e1663 GIT binary patch literal 1200 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$10.class b/bin/jake2/game/monsters/M_Chick$10.class new file mode 100644 index 0000000000000000000000000000000000000000..5161fd5c804e28b84c37d80d3784c0911a11680d GIT binary patch literal 1007 zcmZuvT~8BH5IwhBSXvg4@(qe8C@lzuiXREaL=g-L^#wwrFU@6pY1eLdNq5U5@+W-q z2l(QHni>-y`~m(Wjf&@%wOOJ~dgspEnRCw0%(vfPz5*!VzKMju^h;S&g?vTURle?f zL8ux*zF69*I(BVtb;U$dU^14o>4ke$$E!Um%OmCrbU$!BCwwSiWOMrh$qm1((lC&+ z(1mV+fgQ(F&zkiE)!35WYMTOf>1ctLY zCLhbZE4@m7H*7dwWxWT3q_nmAQn|^a>bqsu5Z$W@jAi5as_fWdDO}IJNMQtHCPoE@ zV*F3pl*ckq7RE6_5LX>5S70iR(T%4Nc1@sfH4vWdIwf5t3}_Wcbitwb}f8H z&j(%-Nb^k7!uXCPAA9Lr=Sj4E^aT1bz*7S((P{uAbLl7HLwxwn$62?yq8ow}W uoS{HhOCCMPj(Ev}JXXlO%C{sEv;C|u@Sb1~*4nW(}WZf>hxPYYx>f{OBXRMW(E`%p$T6AFxPBx?PmpOQe@)zSK6fq{I1!EaR2 zQ@&f=ikilEOI_#_=&8irm#Zy`);=?c?bii{@=0`EHI=9wl?pF1xPT!GgKRBPz3q1} zjEe%@?PiR>7jPm;poE8T8I0hvg-Zg%39wT!4n{F1U@5cbDVMhv>v0QL99+dUjBE}$jTl^sQt)9@BTZ;nEp_Ed*miLpTC19$X3v5R`i;Q*T89S z*=$TA_hi+tctJ=KH+57Csumsyj3lmhb{mMW?)$pA;;AsyA;!TSjSST<|y%rt0;j~34oiI{~ zmT}_jx3*7ww==)KVSzJ@=X`dR-if@neBp^x@@43M>MLJAV<^_@hYWl>@?;rB4A|&H zKf_SdSMp^yJd*J%aTG{~;b!ED;84WAIcG+$PyB>orkTri37;*7zP8kRI}D?>Iys*S zClIRb9O&3r?X427F;rZ`zU3L7oQxTeptqJ+_Z3m;YyECSNnm} z^p9+e;TBaL3*|*&T6LrU`7i1ytpVJ|w1p|EF;_;G%Ek<;L`Nzaz9IUTWi|kFHs-NF zRb=J+>NuhqORKfrjQMXWIn8;=Qw|O>}uuS9V^(KtYWXtQioqvdg>4m{ug=1lj zVeEfQ!>FZg+%?tMV?LZ`nOsJKFoc7%8^w8*Rk+w;a8Ozca zl+H;hpiFz2B=`h4T~_F9_nb%$(uszQA=(YVDoF!S9KQOIL@(T+gHPr{i+@9hF_MM8 zC3sFTb6+v~ZWQD1KY*Vvf5zkwl$KX6FiHCCC)~NfieXkvnT->5@F`UIG;ChQ2%p6m zpT{g;NYgF#AhUD?j&)R1hI8}}S4~}H+r&M>yH7et!LE@0fb;?$;!$c_r2R2{Wr{S_ G(fR}4$k}KB literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$13.class b/bin/jake2/game/monsters/M_Chick$13.class new file mode 100644 index 0000000000000000000000000000000000000000..448b61b24737b0628428a9b3fea8612cd6560cf1 GIT binary patch literal 1152 zcmZuwZBr6a7(Ev*tiYCtnx;lnmLMo9y`!0;ILtsZ4i1j`fmXP}4cKLNm-;1r?+5gu zoTi+n=?C=efBQTbI!Tv9)A7){u96&_7r#+qHna8SW7pwj!1V5-Li#g zrAyUZQ`TDZs~H8HVaC<7tJ?=nskgT3T9skj?j)Md@C+S$Z0-~Ipua0Al{rbwKNf7qnr zCT3`79jTK-&q1W*cT%*bF1_lRRCC zN&xq8U%@=XxQl9!{NL6rq2d7+h@>IOcDG>XfU2_7HB3i#00|@&EHccxK>qhjMG8x# z&oX*?z1k6NA*$9pvWbBef=FXk!3x8)3*sLdl~R%+2mA93b5}Z8DD<}##3MXW@R;Gc z%Z{QvRq+(h$URfj>-~_FgUDh-!8*gFi`jADP-tC4SMdUy4n?AD^vs&bODBNpFyG5gd?=y2daZ3(RNIbpX7P@FyyRaR(iI(KYJ59F1UnIQpId98H`4AO0h6X#a@Q?F;RfQjv+|7fgCr zBC{8mJICE5KSx|uLtn9+Oof9Nco_C~Ux(`#cz(z~UeZP#MLdNtUq+OtvA|c5pqk>V u*x+k@Ik5rdP!5sfCALUVn4+|e8QOpsxjy0!cByhoDUhc-NL|iO>G}id!Si1L literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$14.class b/bin/jake2/game/monsters/M_Chick$14.class new file mode 100644 index 0000000000000000000000000000000000000000..073e57e73dfba620ad00b0e4e34ac5b45af12562 GIT binary patch literal 1527 zcmZ`&(QX?>6g?BqdTV=2owTL6h15VPc9YbNQ&JL#wuuurE^%n;;5G!wZ0xZ;wY?j5 zC#lLCLgEAZ$`iZ-QmHCoA;bspJv<}s>{^i%6h zpV(cI&$aEo$n{;vSHkmim3pxw8{I3jH%)Mciz6{>j@s@>r@P#=_bHYkx+EQ`ZZkwO z*%|{cx=j&B1ThN+q6}v?q$4&D`g_9Lw)c91VPeB=*u9$VN$n38x#~!tA-yqj)@%3_ z7>u@1i;N!2Y4z=n6&ggzR(~E@VcrMN>9ZT@|ul z#Bd%LOuR|NM$R7YTX+j821e8_9ZPqVRL|&k z1mTVCmg0C9@0)m!VLVJbP_mb+*s3$PYT*h#V6c{Tcuh2v>rql7vs()P*_uA|LkpPz z)%9dsIx$?sw23KVJHlf`$5PMsI~Hbeodg`N*IRnA?zURK)+@3b61!nx7I`Y*z4`;s zeL@VX?t#~!0-io1v0KtK&f}(qk1$VK3rF;y5%e*whEnU>er#a@iwyDbMn!j@qRjv= zL|U@&38NjBxpWJob(ZqetY4lv5I=UiM$8DN; z^uHwynw=2Jjw8GxmC_eJ(x7ALnIjnKA(C&BH%FF{HLm@RQ@_z<3~?IcWWndbX){5- z6$X(#O&&>(Gc;;|8L}E6GLd{iCQR4p;I~FnBS)zdI2)$2$HYQIyo~-C-H9Z&b~t@T zVykk(-#pRw3~)ye#Ya=xOXkPfKgopw?(tuaZd$@P-E;wIzKB^~zzSbNmEXo! z{0`duF8X{KU(;OiBEI9Rc+S`G125r6zK)-H8NZT!!S4r3t%qt1l_FhG!8~b|#8247 zWzsf{=lG0f5qgQ=;sMP#R0|5bXD(VL60>-Bq6P(N}8HkSX;7fDquG@9p?b6%%t9(!% zH1WY7;Eyt%c9T>?lishVJ>Pe}b54K#{_zvQJ|5Y~5Vk&wq1>* zWOOdWQ*rJ~Lb(%o!aozCisRW!D;g+6sB}`buJF?!(+4A}hwdV(hXL}^0LD1ubw$?Ii`ob7#PyuhA|0g6TZ=7SBqo<6-nA`b|`LFzt zL4nT#BdlXs{ISTfGfiT=#t~rwi+sicj~QcuY`OG>VM>qHVZBLFvzOE|mS)rw7T_`{ zU0``PcY$@sDSku6`h2NVW&^O^B4@ork#WK5CYmc#-b|Af@Bj~4HH&J(tzn1J;ynYq Ld>8mzY?7}(O$D>F literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$16.class b/bin/jake2/game/monsters/M_Chick$16.class new file mode 100644 index 0000000000000000000000000000000000000000..2d1038a46c0892487665931598a4662cb165c7b6 GIT binary patch literal 848 zcmZvaQBM;=5Xb-1Zn^e)0u}@WgsP}5sEwHTQe&c(nkK~REqQQ@IH@fD%e4!Y7mlA(_M=}Qp}v?Y|=sahB4sS|R26}6rd7AsW_{v>O@H2vB^ z6l&A2=W&@(Ow_+tejs}s&tx+sELYNO)zjUm6V*&#G5XP7S)^N?iI$%;aviN+?DX{>EW8}p<6xq&-_X%@pk~d{C0k?67saaH#+$y%&3SKg>!?(-dVv&6P E0Z)Ul;{X5v literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$17.class b/bin/jake2/game/monsters/M_Chick$17.class new file mode 100644 index 0000000000000000000000000000000000000000..353846e6199d07459b518d83cf7054e5ff790eb6 GIT binary patch literal 838 zcmZva&u-H|5XQf)ow{*c3L&(mg%Y4Z(h97W1BW0aloqK{%B58gT*B7gCX1alvNwGy z4uC*N9C!d83Nag-viz~+9gk<`H=k$x{m0jD0CutMVUA(r4Nt^wIN}o#PBK+!kr(0N zus@bjvbpobgUhgHU1gjoQEk_qwq-Q zQjK~GxWcd)8TCW1HII@Vsvx#X7*;wqUBoidL*47Xs^c0~JS>wmt9um>u!`#pjY^DE zXBkbz23Zlp)v=D79&RwKTd==BCBO!5QNL2@Bs&+s<+lES&te998+Se2VOaeaYeWro zfK9_}MAJMMN}EF3Mm$}aqwT)CV3ZOf_-;Jo hESI?z$4I(|`$Tf^U{=#Xm#j+*1-9t+DQ1Mx^%Efdv)ljx literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$18.class b/bin/jake2/game/monsters/M_Chick$18.class new file mode 100644 index 0000000000000000000000000000000000000000..b9e0b4a307e0cdcf87021802b74fcf8a1220a183 GIT binary patch literal 1228 zcmb7D+foxj5IsW%7M4Yn`$aJ#XhMW=5kZ3>hKp1MUqBvsNiCZpS+f^vcS4mP;k#BT zU*LmUSW-Ut0se;nVcD}u=@#b2soLqD?e5cOx_f^7`t}{bJf3N2VHkU9R>gd_Y`P-r z`d%nS5N3Ca`HF2-C+3zlaE6hX&!#8$E4Ei%FPSIg%h0xBd$wF@~<;4Xu9YKL}I*#AH{)R9I;!xUAkPOV0avIYCdz&%XUEr?ag zccZp$wXOYJh?ctNoI%60z|h%fkL?}%G$V1MF$>kV1B+PF@PJ`7R)x#WHL#3_)PQ>L zT>n%QO({*QI(Mn&Ze&xiIXu>|!Z7qNtRhvE238ejr&S9A;Yk&!$UHHyuKo|iatW{W zHy;m$bIj1Sr}FQbCyg1^_xxI5i7i`AvC()WGinBD%r`yD@k5%yT_G!ei5zx3PXu|# z3_}qj2`VMMJ48FZ3_5FcS|G_twoZLT`zKObpwq6C1h0UTv6Ie5-HBuuov3N(rd_!BZOKGw0|#$H*CGGfKU{*cm1p>cm@&Tp;zj z4>NDxqnqrrpK<>S9`O%#eJ#=zgNXS!+9`DvI(N{|T_m}O4EM3fPq4&8taBOB8mOmk j&>|9eieVy_kC50B!EHqM*~At}PJIKm>C?$cU6|HyUkeuB literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$19.class b/bin/jake2/game/monsters/M_Chick$19.class new file mode 100644 index 0000000000000000000000000000000000000000..985db6dbea57f2d5bd7261c2554acb9937f2584d GIT binary patch literal 1163 zcmZuwT~8B16g@)+O4~&c%C}-w#FnpG@B=NPP{5EBUqBvwX_oEKuHDX(-7Sef!gph$ z558y=4H$^T2Y-Okf8uX2-f35}N;lcL_s-mV&e=P6zy1316~GLZ!)Rd`d7@XuOuD33 zMY?KB*AtGLUN7XzrcoKq+zx{?3jnoLv-A zgb>ltiZ+JMyeY-QT6J4EoBFmT7`pSep<7$JW2)HS1j)srSyj9n6i{@$61CBL#Zz~!nJg_OcjJJD-8X~Ai5};hF9>ismBrYqCbp2 zk``e1&ovBSkT8T4)u+VT3_<}6YdDAV)Q_^zEst2)S`-&>F^mL5PXPA;wfd1~S{g3l zG66dzpSm*9R9rK*6ains)iA~w&NP5)gqO~n+ZvKckp{vn+SU4!$EFJo(gaSZI}v0s8^#R7aNryMzZnhJaf6|&(fF#pCklS=|LIq?exg8c zfktbNVc;~Vl2q_C+);=zqvkk5da6)Knb&Yv?Z*R5LKgq9aaUM7Gyof(ZdBIwU4OWu z8+Oex#Hy*rPxGgHS`81)=ZZ8e+oj=I7hc&eQo@>)!pYI>xWYvO)JFPYP+w`JDGpOK zOO}ys9si8>LvmUWr8P;-ut{vkh-*5QYQ@)Z= zmp+CFalb>9zeg|MM}mLAIRA)Aen9nynBzxS;>UGueGPtJ8!5p821(sLLL+UHF~Yo0 VehU_{RNu?cnxi*LS?aUt`3>z53F!a; literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$2.class b/bin/jake2/game/monsters/M_Chick$2.class new file mode 100644 index 0000000000000000000000000000000000000000..644089ae031bf28ad21b116e8dc26b3ca7675cfe GIT binary patch literal 832 zcmZXSQBM;=5Xb*}cjf5y6s#2xL{L#%h+a}3YfMbRgrxWa;enTCxi0P6>z=vW@~KQj z)R_3-2k=7~XL|=(<&xXExtaOxe`oghpP#<~w6WvEVOamb$D$n#`9wsMROMP^d34b4 zj$}OEYWwgQR;`phrH@8Zjo%LVM@nUwdo7jJZy4NW>zKjorUMbcMKwePa|{bTsl@x~ z%g|`HDEFL430K4DP-jvN zJM*~1P>YTBey+J1P(Fdxm|?kTqs2hRy01H}lPd0E*~b#;vbHYcAy#moh@}##&QfZJ z4YDGHt6~l7J{~ZvS+M`l5#k{>7#0hilk{9%iEaFYo<$7w5uW&X%&>A3Y9#e_h%G~` z#nUVkN}EC&MJ|#vYLv~qIyXabm`<};ypv`mVL9-ZrlT~oJryTuP8~fEdX!QZ!+oVh z)=hYxiyWJvanl{bY^5=i@00h6EF)Xl{(<=~^x+_&H6RP;Gdv2`$PbGovbV@%xQzu` z4d4Y?190n$7i5ZZLx*!=mAcoZb=)mWcPX2;LAdh`jZ3V4$ENq`no&r&MBsd#ah8hQ el4B%2#WNzgcs{FXqD9uDaRS@)1{5>G==lqPLbHGX literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$20.class b/bin/jake2/game/monsters/M_Chick$20.class new file mode 100644 index 0000000000000000000000000000000000000000..8e8088ab7f48759e459178fa0abef1cfc5bfd2fd GIT binary patch literal 834 zcmZvaPjAye5XIj%PTe?$mJr&~LK~n!(h7pYF$f8zMXHo?Y1IRl$aS{K5@(I z&4XTNsKU`!>yZmbU@fQF)8=TX^ypbXculRq{1c^>c`8t-H;x6IPTZFs3Mly~VqRde ztF(ME8K21HC^(6vK&2apL3A7>%I4Xhjv1;{pw`XZ^&dZNf#N`#{at}-y+QF=(2N2- zXdaqG=|Ot|R|LwTb>B;)ARSUqvK|Sn)bniFSE1>dcH?CU*RbMZnZ|N=XLTQ|xK3hb zMd{O+^T>m872--*$4wVE1lDt~zaPZM1~vtjWadBH<^AMyDK9o_YS<0^VUfNkaKt*`4^=${*T^a%p=yjN+6NJ&jAJd`#XXV=xIgWwqrvEKoxnD~9&6SZKfeJRShR2e literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$21.class b/bin/jake2/game/monsters/M_Chick$21.class new file mode 100644 index 0000000000000000000000000000000000000000..65ba404838668d629ca76b80b7373fd0e21499da GIT binary patch literal 840 zcmZva!EVz)5QhJ)ow{)hEuo~Pg%W6iq!n0%V-ONbi&QD)(y9k8*4Ei3OYAlBZu(Rl z0D+J=@Blmo2%ZBmo0!TJEP2P{nfd15o&Eaj^A`Xe?0A@C*m%Xqq7x2zD#A2V+K60- z2T^Y%s zm3T2pPegviPZGgU?`JVjj(IMvU;K2=ztrnLdb$jip)mWq49l%HC7{&J*fRNPrF8VrUdPvojHC!*dhqgzFJ)?XL!@ja&3>Yl@Dq( zCO-H9eu+lD!FZ>;k`>*gb9(olbLPz4{r2n2R{(8ndzfKZd(B6p9S-iL zf6Z;Q$OKro&b4@=wNSIX{Dcm`-#oUPwEfpqTw*d$lyZJryTuMpt_v z%rNZ}VP7esy9v)Sk)Z(^Jbg}>t~79}J*svH8DVAXGv?mYpBebH`h;-5!=+}8>L4c( zUZINND&}dm29F4>fm6Tsjv$v?cep=FQs+Wi$Bja|OKjQ(!S+Wie89>lG~Blr9(jbH l@ZIyN&tlFkd~Bo*Y?70Mhf_@xEkc*Z3T)BOr=AT)&u?4VxK#iE literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$23.class b/bin/jake2/game/monsters/M_Chick$23.class new file mode 100644 index 0000000000000000000000000000000000000000..4c8aad11a9d95618b249ffe34e84afea585ab4d4 GIT binary patch literal 883 zcmZuvU2oGc6g_U!rA@S^UTRXaG?`+TU&RCL z0VE#y0sI;e@QS!jyD6YXijS{-&++lS{`Tj~R{(A7+Q>0%z2#@3-3s_vw8n9yv`AFz zV9*^&|7^RxXTxIH%;fAx+KVWO`}+BipVN$C;i-(Ie#VfmH;x&sZafqY@+i3|V1Z$& zFC%d{8J~*eH9rjnL$x3KJUr%!H1TZF(j%!DYW>V{b1Zcj3W3nxONNztgOcCzR>-5E zb)*v+1)Uo|P9v>Fa^+%v)=mlyC#LY}{m6&RBXyrFy}Y zaIuQp47orutYrmEEeCRZ9w$b+gmrA%*kD-Ci2Q#q7hAYPwpBcdhL^UP=in~x+qlQD znj!ylfQxNBppv9ahK;%R^SoZKm-a@9@C_9%>-Vw~OR7eylJhFmG3Py@XKdSFOL>OaLcMSFydu(0zP#g8<}!J*M1 zg!LU3ZI&r^r%8m@C}LQ|5{*V+m(U30tCbG~Q@T-y^&>;gUs0=Ao>5Ooz<8=$V5M2O zz?$opKcQy5ztX9a0a!m#vVNgVxM=-OHEUDeOp_Gw5RXzD71U{#qy0vzvV$g}McoD- L)9+B0u}j}yWhK33 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$3.class b/bin/jake2/game/monsters/M_Chick$3.class new file mode 100644 index 0000000000000000000000000000000000000000..7311e551539f52616c364835548306526dbe6f5c GIT binary patch literal 975 zcmZWo%}*0S6#vb3%hIxd)XJv_3YZpzRq!jR(HMlJN#O$F;Drp^X*+g1OLn&${SUnB z!T*4R8jJ=b>eZ|NkMYfRB}p1Gr^!3Q>G&#) zL=ZY#`|B;~w&&L@m<*FClMNN^wxnu5uk%APW$1e%m5iP;WJ={d26Nr7i##&O*~p@g zVYnuh*zR@?M6k;bJi$cRIJPCR2Z^N5mjF>6ia2YJ>rhX zRnyst0;!snevB~KuFieGA?svH4uq`Q3}dA2rh>yOk23lFrEUtU}NJ3W*96k8y;^`&8(WoP0U%i#W2+K>PFIY zYVyFwJQk?O0atau6Zd$t@7bTV_~cN=l7&Tvsmrm>XK3RNmKjERP3ibY;=D7(3w6Y* zUImVgyV_~M?FNBRkyg=YL*X^3@oBIBZDbhSiMZR|;)lsV^E-YwaK)z7Be#=Y? z;}j+-2S~PiM#Kk6qNZY)s0LUjt^qQID<6pU+%-CkZzk)bRBg50Smm-HUIzs literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$4.class b/bin/jake2/game/monsters/M_Chick$4.class new file mode 100644 index 0000000000000000000000000000000000000000..ef3765c2d428f62447aec860a24940c883f4d66c GIT binary patch literal 1057 zcmZWoT~E|N6g|@|lwAfF5n%xlM8I9XRuR8~(HO*JBlrU0!I#a@9d_$>r=;!ToBzWf zpuG5?1Y_cZKfqt2Q4=-BN8_Egk|Iqyw|DNjXU@HM`ti^E4*(W%%Ywl$`b0G4V!19_ zvfT1i5K2ENuUA(Zj@_JGvS2a{ry#2;+-x|id9NmR3ChrU+fhzRb_~OD9%BraaCTf#r-E4}iwn4DVS-`g zWY*CrI3_X0&>Pp*^7dpk2!*OqBaR7*BC(W997UbeZMS`2s!)gYVKW@FdOx4ydMeze zj?Hr{=vaR$M(6mUZl?xZ=D4B(r&55Z(`F#uo&VJQ>oY^oMkws&y4X#|o!ju*zAYa( z`a8;oeBOGds$-c_=UY{$$y zbiJVu136lAWMO=QNx^RNc?=@kLmpLvJgu5wo~$Ow^!2_b6Q^r-7@t$AnWNM`oJmsm z2~Ee~;p`#$4>4>$dyc&RKEU`}Oq;Lb{pkagUZD5LnR^*K2PhM2A3br(T$G}fL={Y+ zizIvjH@;%P_=bY<9aF{+EE+#?*Z75s@jH??5KBnpkr?{PbyJpzsS{>lh-ZoMT2$I~ S+#qYxM1h<1<_M>2r{^!t+3bP< literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$5.class b/bin/jake2/game/monsters/M_Chick$5.class new file mode 100644 index 0000000000000000000000000000000000000000..736815c54d39370d5c765a9f5ecac97bf87d5848 GIT binary patch literal 830 zcmZXS&u-H|5XQf)ow{)hg%H}(Qd*$U{1HSd;uM60(jrw#xwPtmOXND+WQnsz_NKfP z2S6Ys4m2L_4~(90DEY8SPl>S6oX zq)HDvOSmcEM^=0PLl}>lPOhe1try91pd!;ZoyOZTZe!KM3S|{`&f@{ra7Un$3sL$! zVK<7PLWH<7Hn8d8uE0hC_Wv;g+`|?dGnY9@E@ZB?_78a$u*~~-=;49D+Eu1i)HeZk zEU*$y(^P6>3pt2P#^-EPk@@%7?9p*DO(XeQ*?|Q4xS!g7QrLlx;v{1~kE9tT11215 zEz@osW|_>e4Gx<(2(y(#rti^vMk{Db&F@(H%#Q{5Tzy(NyKot-&=2NGwAbhfT*oq3 z3wT0n0Z#SCCz^S=rSonTN}bEnDsJVa`^@Gx2wGoJ`-1gv*mgf&GUgJR@SWC-vog=k cIabmmJSNG(?yRPc2Cd6!0!_X?V^$cSKQi*Lk^lez literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$6.class b/bin/jake2/game/monsters/M_Chick$6.class new file mode 100644 index 0000000000000000000000000000000000000000..006b85eb178577bad45074bd0ff645a47e91ff7f GIT binary patch literal 1920 zcmZux-BTM?6#s2*l5N6;LI7K!Ev-d`0*!#hDjlFjQe#1jRQ#xI+$1;2lKqIgn-r+} zNaNP82ZmFUdsw1;1q6!8=D$AC4UDK`0MXg4f3gVY^OZVm# zu+gy%1<@tDD3V}EaKsQ-aCAkt#Orl4FPs}%-Vh2>D|SIMHZ(_<_a-yyRdiRu@JcAu z|FfA>5GxBW`-+0T(J|6(XlX;U%IS5_(XH~_5%efX7G&zV8f8iO1Y~kF>{t}_f|v8= z4&!CAV;c$djk=P;&XR6%bj$*a`HE1D}f z&S9L;GDJfdZLxh`&X8Sj{n(R8t2o~pyH$zfc}x+So^DbHm5i)yhT{dvOi74yMUl7b zR)LBkmFVIkki?64NySA4T|t6%PdCyldYG(zr8(WK*^caA0!vs{LDMi4f}nkDI5HBq4wv#P`eQMb#H)BsMOMM_ zkYS5+j%!#U0DUV3Ck`E;Y&Mh0jBUgh{yIp03D-H++Tu;iMAtcPwDD(Tu^Sw3;~g2P zsvFd*-f+EzhUWN%zK8c!+*HsL$~O>l+>%|0H8i6xWM6U|A3&pmn?UGR$!>!&Bx%A} z;3$Gx+Z{X}({6|WDtc+*giK!|p)W&MLGvF*u*EOOru5iRs5=f#vNV)97#!wdk$jMB zj@n_u8Jay;7^Svs4jwX9?~H~^Do~(gfwpuc;GVjWe}w7Bn7tS~ z7W=9Xm%h7)zFo|Z$98dr^NwF|^#LY)(P~Ka#(}7(srzQY*u`6WcsF(7o9`(^f3!RK zBf2T%?Ojlq(gU0!-oO)H)#r5v3Km@?V9W=sgaJC{(a8$vX98zg2_vk6DYl7OR>dMS zkYy&W5nW>zZZaE1Rzr!X!5q|?i#tSjSRJ3U2EJfh_?m6w2eyOz>@I#{ALBRniI3=f zfLaq#!Ve$9@td#@mrm3=;(3_zd%cf3GvOjsmIv> literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$7.class b/bin/jake2/game/monsters/M_Chick$7.class new file mode 100644 index 0000000000000000000000000000000000000000..301e8e4a7123129c45285cd1c405ebe18114156a GIT binary patch literal 1059 zcmZ`%TTc^F5dKbg%hIw66yz!w6}6?pDu}2c3WXXH@CDLDd1#jHp*?oHOLh+g-iXBe zU-3Z=sPVzXSAUdo4y|O>xSKt*b7tn7Z!SN6e*Feu0*eM>3{4d2+oXyy|?(-X>Rurdi<$Ime)-GX(}c=a+aA8WJYrXkutx z5gvcEQ`_Xhy1nUghSZAh*lxiNgwh+Ax~zzhVQ3|i>t8xE4Dm9T%Zm)1=?wYq+Lmj3 zWou0a!Yj`-qn#n?DDK4)w@c(sxL%c^I~_&lCE>`ToXI>%;2gRQbP=sc=7!xw4|=Jl zn(&BQY$LCKKLCa{s@*Rof79cZ+5fP5Ha`1hVGu1P;#&wH0P#=f>4gX>FD~$Mr)R>MEBN zzhq#6p+Cav@8uwbWzXY5&b7mkhZqK}B<(p)PFh9M4bmn_GLrGp&uIQYKQS7p8fuI@ zpFt;M3+ZOviR2m57|x=VP6aSVQUPeGw)Z6J;R+qvVI)*L4Nak=5qe1Qlm^q;BXp+v zQhhC7&`gzybMz(2rs|^S7em?I*Z=?k literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$8.class b/bin/jake2/game/monsters/M_Chick$8.class new file mode 100644 index 0000000000000000000000000000000000000000..75f5ebbcfb9a84b9beb7e8db3dc993d6832c025e GIT binary patch literal 1987 zcma)7T}&KR6#g!E|94vK0=ATvmP#$K!n9k(Rw&AUR{?FIRHb#D-MQ=z?96O-X2Ay^ zjjzTRP5NZxLla{nG*TO*KKWDYzb2Y!{EHf&eKkfscXo@z&x0g;&$;KEd(N5f{BZN{ zH{St}f*nR3!~O+rQKZzoW(w7`EyopQN1e?jKfPr^(&N2jsZC%8`5mgXGh@pPMu*6iw%!=}imMsc~#DtyGinChTkoTG};1&#r z;lPA1($-}97=n4>rbieWJ37gBNmGlOl~BG|_Ia@Q4m_uEikaOG;dL`Pl{uCBb%wJqG-jz zFb*&@_`Hl0@9mlR%x?$!)6&^p3cArlczfmy`?kd}ogNz_bRsy) z&}LHUi;ik%7evl=RQha3&DxewsW?uLsi$Jpb9aYveCy{=($^@s2fYlDnL^oK9yhWK z$!%k9%{ZNwDV$(v-!28m%$NkzdKMAf$8cynODd9{TDOzg_A59glZtvtohH4k?EMNJ zkd=)P{Q7)R%S+*qf?==RE{&6}nOdIaU=-tFj4|x2mb>B_MRmf+DmaZa4NFH| zrH6+UOkk2BUTb{AnzuJ~f=@%85XHkd6UHM9ExvZzJT?l>Vwz!Bbu3JKNo2gXIYvX| z?=sUC{l4z!4uo&kdoRb z6=<8Er3f8I6z4bPcx!g4B7{zn2HB<^6wzE)%Po5AsER!GZOJw)m!@fs;Aa-Yj%jH# zsg-IQCpK+Y$~iG+$epCr_Fa#h2AZx>D_67~S}BvlE!b2eC2d)vJY3WqM>seLsv50O zcqi>Sx`*j@oG2q2?0N%{RbuK8qccVn{4E4X8K=8aH6pr$Zqyy9r&BuUCMq59#BD1? zs?Vi&@V9+W`TElY8mdp(4RRn|tR!DYBmMTijB{79KN+MWamO_rR+RWPBzbS>3hI*y zwJE@_~q<-)!rq(c13;kF%>J_w9RTutKWvVI(6Zc?x0f&iw7jga`cJlYpz&}7UzkwFw zTlt4*=QnYLe}pcg-E{BeAETdtf>Zoc4D!z~MEoeprugSL!@s}`(ewOET;N~fBL5nK ze}j4cEf)EADDm&H%zwbs{6{>?f5LP8XFN~zMg9ve^I!1_{|&DaeU1O_;eHkoiERyc z$z_rAO0@!=I4Us71aY!2RxpodD!1hFDA0exHuS?FSqRHGS>qN+pFrd<+UN0j{7*Cz cdz9@a4~wL!LlGv?08I#B(Jw~vWOLBpzeqmi;{X5v literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick$9.class b/bin/jake2/game/monsters/M_Chick$9.class new file mode 100644 index 0000000000000000000000000000000000000000..873dc6af3641fbc93377496ed590d7bc4dc0f77f GIT binary patch literal 1212 zcmZ`&TTc^F5dIFkW!tjc3UU=eL~W^11aAnUP+F`369Xafk~D|*v|YR1ZMs|37vtaX z%^$#n641m4e}I2Q3G4&6es32s0>3MmxSeR6%4DmoaJS5WoTVAEW=%5P{NUI1~qPHMGy)C zI(%ql=v+4}al2aD5tS{zV+w}Qx}D+XHm?{`Z(OQw!EhKx*FCxZrL(}`%L_NP%Fr8* zknb*!ncT|9HrZMJ)Nz}!+vB@41rrkhW@Y@USy4on|2o>_X0SEehq!Z z&6B=i*D-)WhPDP9!^+vz5-*U)LT~{LV?@Joh5-*)laG!Q7-i77ku!Oo%4R7^;iQgn zoT46<_+z?kxt~;5Xj0O2M#oth5_D-=Szh9K5kLe{4U-H#o;+(b#})1f9p^Abm78K$ zm<+>SzO}owDW~An2*+?dd{scctd*MnHZl7?%|ZEEt-aUD0PW|M{|EZ1|1ctu2wQ4X~>P#8~Z*j7m5}rVP#C)p@rHIZo$rKxJe!K^ycVd z5<<$dL?v!=#}N+3K)(Y`4z-hh1JX6p=14MrN!w zNn_|hC!G>tilhWkLR~LO)Wan@l#iZJle=sF+}Q^@4-xHB6laM9^$k#?<0JGX?^Dq7xr;E`Wg%Bo@7yDKMp^AenN-x8C}X3 zj4EF-seD6B`Hm&!2NKH98nwQ9`UW*3f@Q1_xp)nUbrIZZt)>K$Bvo<%QuGGNNfu4d EZ*#;FP5=M^ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Chick.class b/bin/jake2/game/monsters/M_Chick.class new file mode 100644 index 0000000000000000000000000000000000000000..d71c48c32d9b53c7ecd40ecfcc7312f904c035e4 GIT binary patch literal 23255 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 H$&3FB9J;56 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flash.class b/bin/jake2/game/monsters/M_Flash.class new file mode 100644 index 0000000000000000000000000000000000000000..63ada753af7d914a2e046fd0404ce0924c8b9dca GIT binary patch literal 7769 zcmaLc2Y6J~wg>RFGG{W$WKw1Zgis`aNK-2hh( zn}`^xAtEIc5D-zh;uQ;5#e%3@9#6ga^j`I?|K7teyzhKZKK8fI@4wDEdrp~Q#`Aw1 zJwZgxd4h|gn5s|8dMvwn>V&Mx*{PGKPRXB{JtIH0&*=2Lto(^CGMJJkWzEh?&C8lH zA+_JwN!jCOGF1u{j?O{V=&3n5`Pssb%*=GAm=5Fea;N0ZOcQ9(a0rvpdFuFV7sW9} zWu_bE&UNdJ;3^`+{6=Qxf(!2$!M)hLB{Q=FHcz%_VOW%tW0*%|CR;5G^E@{9%N~I< zm>t0IB7y9U9yM*B*q=gth#vWgz&WqU>G7ESRoRzwA^@{e& zW;p`$y3DLD(kgHTB`46-z-+0^taOxoAe(`&aEukwFK`Ps8+Ao!kL8+$Fs#|!f?+y> z5|or-vo&U0VY^Y6grN+>CRRaey@nVL+Cdy{{4QUX-88;UoRp)OxilbyWsm@vof)`{N0Ti3K zH>~}z0vUpbWUxx5UxgFFtC%&GVrv&RNzw{5uolZ;?!y2Js-XazXGIOG51R&FkjMOH`&c{%LxnYlT#9`j0V#hBZ$%%X9FeaVuL>#7Df3pRISm??u9kf8#BRf?ey1KxA2Gze42`)LTmvxl61a4Q?A&ky9Qpw_JT|k30)jk=zl13kdcv8zGysP8osi zxJ7s0l83HHZlAz9)NOTll+EIfa`EH|we}pB21P^NM&QqqO7ddlX|#%x<>{#^dsroM z>y@je6=Ok5uEdV z92fqGJOS2NSx`lqTtVwdZ?VVa7!}p=QcEkA8P;>MjNmowTZ(<3UnS26-gm81yp0se zELatfL8-h{t56Pj)vBW&mLr#ijO6;9G zCA;se$z!u;JeoB&FPq8Nd+NBXydhaLa)|mJBOh@yC+6le)$INM ze3-Upau1q1YsR?j^j!4zgg#`O;PaJglYCqf$ry{p$SjIt$R&RvbYG^-COkf=-Qzz$BnoFj}Jz=m%C3bZM*%yboAK zFh*llU^1|pU{YxR>d+d{n$S=KrT2$5)S(t?Q^Fdn`__imf!0L_x7G)s^`H+zo1!*RYcptbXbWhP)|Sv#VfAWl4VA&^djz#U zt!rULDkW!XqC%g_&P(opl?;JU7_h= zP1f2C+8x>hwbiutg!Y2gfL7Pq8`=lj7g|GWKWKkwEoe=x1E2$;gP`|oeH1E})ae@x zt)*4nWzxp!8v;$yIuy0Tpc&BGT8Be3p)H|xw2pw*gpP#P)!G+23OXA4fYve4Ea+Hh zJ+0%QvOK46JoG`W+0Y#5Flc?P6QC2JxzGk$CqW;B=0O|U);6-OZERcnkZtY5S|{UZ zQ*gAYI9d~})1cF#GoYzj^TRq5+B8CEp%#yEQZucyQTsS_4z#(}C!lko^PnvvYM+EY z1#PMIY1BRgEr7Pt`Yd!l^f_p2TYbb<+t_Mbtqah1A^I*t-*#G`hZaJMpzR~HIIJBa z^e@oGsO_kA2|6r=s%JAz>oVwa=nB+!(z+7*0(2EL5Ya)}IDLPGnzm}$YG+&RVyj(k zHC^j!tZWU|uoi3R7NP5)>!IBv^hM|fXb-I$(P0yGGqk6z_OjL9w%W&5`)b{SqsgK} z=eJ*kZVhYy2;COe0TH@AtOK?FpX)YA>kb@kCu(=$wLNO9gKc$))|b#>H#)qG4nu8q zn5|}L-GdIVpu=8t7;dYXwmL%VtLRXI4zHoZNLw9ctE08A2Aq2p~eTdVrKID!sksLj#(IyxMMz5$(}^%(ScSSM;d0X-SkT&3~A z@-R-)r9o&#SRd1R3VJ%Md0O9uRtxK7t!JQT!#YLlIp|wqovKwnpAFynuujwZHuOSR zr)zx&`fgZfXnhZQF|7Go{|0?OtTVMvvf1_uwB?>%VGNFFNAYt=4=4)&E5GO;x?dw)I-A|Ak_8;%=$pbrGyuYhJHey*>Rm zTK}l3U)1~)n%n~atayXwe}QF@PTy_C8#Vs|{-3)|HfjD9tnM1!dviqZC8+*QHQA#1 z->Cl2UEZqsckmzJKUMX%yX)W+&mU2JyUEiVH&r#@ubLeM>YP3`DAS62&5y37U zY{L$+sPGOiDVJ+0_09<2t?O5)AXE136)a zPfp#Pi@jH|pJU`PmZ@yru(nSz1K+zR(fkaRmG$ zME(BlA0=cJ(S$9l3FTBQOVIz zQd=c;RDy5hUV0;xJfM<#D#5pMFC7ad^;Ob9B@I<_Jd`w2Nn@2fq>>Y%$zR zPcr2mZ_1Ny(9!5>@+3B;6Vd5Z z5j{fg>KSsE7Sg%sO>{o`5WO3HUar^|^nUbh`oQI(%dR@~iK`7=arLFoT;u5r*IfG2 zwVb|o?V@Y0V|3m1K7H@HPB&bC(9M`ibStJ2{TLIVpJRs5?U+3JHD*5jJ7z8Y9#g^` zbDAA7pRhCL7Q14jIX1RB$Hg||_}Ffo7(0@^vH9$eE#k_to4HEtVNQ;Ho2$oO<(jd- za4mN{*LK(Cy6(1I&)tt3xU;#DdmcaJUcpV=FL6`%ac=Iu#4X+5aqBqZHgQ$BU0f6H z5Z9H{;zn>FE}uKc6?50Pt=uiHjC;hr$GzgN@u0Zhd9bGv5A`(W3{QYFJ%i=v-AO#! zQ@~lCH9XE!!r7kFJi+rR=X!qR$Kqpoa(peG8sD0y$M@m<`0+d|ejd+>U&(XhU*;#{ z%lYZ}%UlqDljkQmc|k%=UX;*^3lsWsal!;%obU`UO<2Rr6JFz$31@g!!som?;Wn>L zOyu>6^?5^LfHx%$<1LBPd0S#J??~LvyAqG{?!*syPvTA9o8;n>q}seMsXZS^8q9~1 zrgCXg5tk)x=c7r-`B>6rK9TfKF84aP!kf&ey{UZG+k?-0$MHMfr}(0G4PWx^=f8X3 z=F8r1_+#&%{HZUQ|KV%FpZogoRo?{u%J(dP<9m_6^&RH#eDCoM-{+L#`;wA*G@dm1 s%lH*r|IjQ?6w4nXXQLyW6@C=u7ipm0#iI*&9LxW$ke#z-jN+XC1%zk!pa1{> literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flipper$1.class b/bin/jake2/game/monsters/M_Flipper$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e3fc4e9a39e19ca7f75c4b549da817a395d8c77d GIT binary patch literal 844 zcmZva&u-H|5XQf$ow{*c3L&(mP})L)q!n0{V-OPRAE{ExrBx4HBG=g@OPqCNZ~6ov zco+_VKu8>T03Hf48#|FvvE&_(XXZDbXZ-um&tCxcuU*k_v4OmVWI4ygn7bJ zODgetJiHLeS#S{vLbVl#L3AD@()jsHTlZy3*lHDe{ZCMnQ0fVNd_btx8=QR^_)(yG z{;5u+>NOW|gRt1m^tV$Ts18>!Tnz{-^&(z$WT@M^*?3dNEvz_LW^IM`dECP)ZWAiG z8mYQ5kE94HL>O1b9jrUJOIRQX<)pf;1H=Ho=SM{|S?m7tX%J-gCCZwzTsD3t#wQ4lbWAThKe$9IUYKWl3xo z+2j6L;?n@0ur&aydi^t-tlZE+?+c~Yth9=odFcUXa~pWO-%$ICweQ%pKg}4Kgb#4( jnkC=^-95$-?7FO&txkHZK*};oIey5ysbFB^kJS literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flipper$10.class b/bin/jake2/game/monsters/M_Flipper$10.class new file mode 100644 index 0000000000000000000000000000000000000000..881c609f5d55a7a88c1edd1d2d7553bc578af577 GIT binary patch literal 1082 zcmZ`%OH&g;5dLPfup}%30Rd4E5j7#g@=!#B4_>jT0xwXhQVyvl8Im!Z*|u&pBnc#+{lkL&by8 z*(&5bQLpo0Vs^%Y$uJ!8T9<04B4l;B|{%<~h#JpT?PFoNqAMj3jWaR*9x&X%hx^J_N7aDyS9=SAfQ+gvepq;_-k zr1Lu8O&b$UT=yt6mm848j5eigq%leUHUE&S<2ucZZD_+?8&ld~g@^l|TMqS|V`B!h zlt}U;)#{Vw;+V&M3-=iMA{{*^o>$zE+gQK@>ZL4*+~`R3A{0ce?gx4>2|PsB!Xt*E z2*@8kHkR<1A>q+{xl}?O|98rIIYRF36K~O!zgZxVZT}!B@|@61a_M3Vr!~d2N9(fa z`5{rf#Z|>GS)dIViPZJ?w$L7INXdg$&kaK!5+SsuG-EVQ+D_6f(&kArl5LZp(eZ(P z3}RNZYtU~MCK)?Px0_BRyGWxF(M_iYm?EhGV#%KOB%0wG9flVPja`H$(bo!nOYoEi zi zC`TiaZ0_thuo>1fQTvhhBMRd^{ie@Hv}2fiB_pX{GvsRZV+MOK?h6+=6g}iI$FSIu zkvKdbo{HoHKMe&#r4#pfc+3-N{K=uM2U0O?bTZ{;l4>#J1EKwQ49m4Tg@5MFkVirD zNGCE1S_RxULGwVPhIFMlAm1VHC0Rx`zx4x!Z?v)C((00h z^&K`{mdN+UL1gF2qxx8+)c|ahH2}Fv`74=mx-Ik%+yXERkpO4t zz9=rqVZ9=3soSpO2h#KPxnkZjYc=Who)}Ib%CNslYRU;FO*v+W8p$%mbEabkrx_xB z{Ywnd3D=M*M9`ukhB!mptm(-4Rl6j;MNzUOLuS@33u{SuraCv6(V%Mj498}hEbZyf zC_}6wgTf?3M_)gQuL<1}PDNh`JkzO+CUG}IdZq4v(J;wiBwWY)nz5x}mV;t2`hR(a z<$V8A3p#Oc0{2i1O>Q=zH0(zg<)bQv6;v5mL5UyKa7eLJ6|+>VU$x)}x)V6c(B6bH zO%)gyzSPizV+_1vG8}03PL-%=+BMfxekajOxwTEdtgjkU1l6I-Vl9OS(3imR?FHMW zsG%PN>O@->D|m6;uB>@O&=2Q>_0h%z3EGaTA8hlN5uPuWT0A%-5C>TmhF zTe>LAfv;28zFu-2sZ)9UA=?;EQSUvRz{%a=&rviQ9>EAha5=j&@ifuwS>lIq%c&)PH8x;Dwd?Q8Y`BlwBRX>CoslvxT#*d zn^VJt(o2WADuzW-cvBkkVFv^>X@;;xMJo1;h60`@@dl9TthhTW-gHA1S8mK|n8Q4^ z-&TLy?wYKdqH$>M7CXFATF>G61kP-4iEYRl78GW>yy|(<36vtuu`jKa9hh4)Lm4A) zEgB$~9)P3>0#Uvcz6JI0s9$QX=>*ip%Xu0EhoN;r$;^pbW86~rOPy(wYm_|RyvV=w9%>n28k+wNan8hh}6{;I{1f8s*yXY8MN0`*&76) zAl9?j(LvvVcX0L^4rgPuWbV6x`!y|n1KG$({9UwVGkRw<@;*+y8E2jG*xUd9xy65U z2S1ysa~{veHj&#P;9Tq~q8kn9C+n!;Wj4BrNfMa8hG#bMtcpJp#(xDzDS(fV<{x7p z{{-#)Q*`m$I7s^={4@0O&vBf8fdQg}bROYfBFDeNDgHIa_%|4*{S@)$`L{U3zr!NY zbNqXp=Re>A{}Gb^gcbfXT>cAQB^vNw@jCwvSNQLEi~kWOZl<1`M&c+d*XvlK z9aV^U=V+%2yN(yoMfFm<7x5DPlk^~mW#Ywgp17@u|4k2II-ULt9Z6ETKunI8Q6w6r PK>=Q&FGU7aIqCNwiv6zo literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flipper$2.class b/bin/jake2/game/monsters/M_Flipper$2.class new file mode 100644 index 0000000000000000000000000000000000000000..a76a6cc5a95af369cc911343d8145281e2fcc0a3 GIT binary patch literal 850 zcmZvaO>fgc5Qg7roVsxgEg}7&P})L)q!m~S#~>us52;ehrBx4HEZ5m2OPqCNZ~Ch^ zv`~b^fgiw+Ld?c)WK=A9$K#oK=G~qB{paT|04?mn=ks#DMaTrABK_ZQx|FrZ#riATIq1XQewF%|E(8mXadZWqNmw^`rs_&iZ zM5=y!0S^dEy-dHKOq3tR@tBL4uZD!xMzMqF%24~d-TYL+GFEM@u)KnTJnmu*j|kOV zkW{^xPo)SdL>O1WV{F)XLf9z4?rz7$Q*08JZ{?2SOHt5V|EI$=XxQ6$ZsQqY?JnCW z^R>BoRuRLLN*iq8=Ywk$Jm)f^!;Al29B;Gobsk3-HFAFVFB$g;AXH`JM

k<*~DGv-g%Qu`TcZz``|u%)#N+VGFu~#lb53ZkELM z9(&v$i@X}ZYqkbZsx4iy$;u5KbX_Pd%}Q%{n3o=KHn)MhcZ2#@tbfOr^<~D$Bz%KI kH&f0^mYZ{oq!)O}q!M0DYZ_>>wRo<;F24@Pj4*!w0we{y+5i9m literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flipper$3.class b/bin/jake2/game/monsters/M_Flipper$3.class new file mode 100644 index 0000000000000000000000000000000000000000..384d0fd611b96b3af746ce8cce8a54fd06e373fc GIT binary patch literal 846 zcmZvaO>fgc5Qg7roVsxgrJ_&!S$vYm;%ro!q?62Qnz5>|6wu>3U+C?}JJB?mA6pdl55+iid zI1UaYIT{JQx$D9qtmKjolsWB7HF(ttN1RNUeIb=JFA0TO{fyx3#U0_HfRc|QW(o5x zsl@B?@LcHA@H`TPN-J)M(OIaa^|POj>C1$$(aQDupP(k8*c0YxpRib~bM|G}h(gtC zoER-tuQ`VWLb;pj5A;}ZKBLuuuvE*#MMt(xV4C$eCEUT1iz+M2HP7NcmT{MfnHH(K zF&{`Cl#4K~gnL+Zai6f7gI(W=j|W&IRIii{<4a-X28ju^;m!TkViL9R4Lox3kg$9m zZlwjr$EM|$+heVTGPaP1l8C7L5A$mO1n(ps>$W(Qb~rbu!+&nimgje%+EJYF*&Yki zk2?haNGYNBqA*EBf_3od`9@)~^2phD+1q7HY>Qi;G54N7X5jJau?2mD!@)B9ewxJg z27BBe^SoNXGqx5`sN8zTCM~yg(Dz(vVOm;AjmGl@-m{h>iNlguPwhj*#*y7jYm=(s)A18Xce*gdg literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flipper$4.class b/bin/jake2/game/monsters/M_Flipper$4.class new file mode 100644 index 0000000000000000000000000000000000000000..77c6c064bd5d8bc3ae4c99d038e00c5bd7970fb8 GIT binary patch literal 842 zcmZva&u-H|5XQf$ow{)hr6IJXP})L)q!m~y+=7r$|45ZmF0Fd#C32ljvcy?O_NKfP z2S6Ys4m<#F0)kgS%*JkHR4jSN3S6VGx}Li8Oxx($;;M5;j_eUjGx+B$RqWAMO!q^#*5O1b!5# zo`0+psd~*hED*eIroa6*hz4B1Y{hn|UZjhT40T&K8)s$Q!jgkUmR9JV$2~0LHldP> zk*XW>M2et7gmGou!K#D1gw+D<>Zf?Phc&{&rPN`3A#%O7f9R8d;cno8gZqT#t6Zb1 ztvzfSWF;IYiBQ@U@D%zX_9**Ui4e-ZQquwzTyHb07F&1}>j2ThI^K9IUYKWl3zW zvB&)}&!+)AVQTfgc5Pj1)b>kRHLr6=Zw1ommD~MFYDF_MmL#mW=Y1IQ4%XK!%5@#K)H~m!{ z0D+J=@B{cupu%jNMn=VwcRZeXZ{E(#&&%&W0PJGN#T;S%eK-)i&0aVZ&0(TaBXrt4 z4h~~E8VSAi(uG4<%_SWubJ~|`@TL=vIGHg2N-Aky6AJal8Nu00I>JK%B_Bo16BgT2 ziMQk7xzMNKc`OK(b`pj0S*WG;r#~IjmnmVhovZafK`lbDC(O}4p;~Wn_C?r?L)B}Z z7%f$=wSXnUQa95dq$boR&|}3YE}#a4<$At^=*Y+frqy^?!W}HTsIk7BglXKz3holh zQ$LS667FHm#eKqBj_mq~F0 zTWNvuv1NJ7(O7Gtj0N&&QW1B#ZF$bC`xCsAWUM1`DD8-D&Q{>L?J!UAKt*wqa)*zF z=_eh6f25SqdvTbiBE<%H0eG)4IeGBxyX?JSOKgkV->~qBKjz@^>9Ga6P{GBhTe#YuoY&aig9GQem mc=Tt&Q_FIvJXX?UJYl8+o=z}zG}t;kSYVr9k7HICKYsyR2fg+H literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flipper$6.class b/bin/jake2/game/monsters/M_Flipper$6.class new file mode 100644 index 0000000000000000000000000000000000000000..eaa28c59cea8e0846844b0708098e256609b4236 GIT binary patch literal 848 zcmZuv(QXn!6g{)MuoTeJwH2hLrCOD3tDCfmFBlVTiy?s~4Gm4p16g2zk!6?c4t|dx z;DbKd7~=={QO3JK$R;w$y?5^Jz2}}eGk^a6{0-m)M>-USy-)UtpI8HX%&oEK29o=M zRc}`uF`01x;EfKAAs;EaaOL$-xTE(ydqTww@wdVi@*RU(GMfzAnb+edAm9Otpn3FGF!OYolc%mBq)$pqpR`F^h*TCVf{>szC{kJ>wd#URG6Y1o!7awvGnV~Q}_R9apP z`ZqGZ5;uV)l$xP0f@=}0G#i2Of?hsW3?6q9hE+bzEv_9Fr{Tx?_4!46?H zL;t6Qhdn&uX@*R~`n}UM8ufa8=td%gTi#T*rN BvLXNg literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flipper$8.class b/bin/jake2/game/monsters/M_Flipper$8.class new file mode 100644 index 0000000000000000000000000000000000000000..23364e624e6151fa23315df45c50f5955f7e8980 GIT binary patch literal 845 zcmZva!EVz)5QhJCoVsyb3TbFdp|phpNh`2aE=WO0s7*wqluN4~xL8|flPq!8k-h0t zaR3BD;=lv&P>9*sM22F?J08!>H~;SJ&tKnv064;-1B+qjJs*oBf5<1opTsKFB1!$z zpcBdIR3!T^9M}w7g`~F9=Od}culsyT$qY*`rIPv;L#ffcV6czlzHm`O#X}iO468k< z#M{~AQY7d6G7=26UL5l1f+y1W`A=JqWXiDDEA;xGpcX@UD0KIPq26dx_7(Rdu7>`Z zPNW*PmT`+=WsvC)CL$8lu}p9^X4q&H@uDw79q3l`T?MzX;b5J#724-<51Y8dP|ejy zHHhg*il9P-a24Fewu5^N+XdM5y?D5f9fq}q*7!;UTx%YZ()wTgi3u6<9v(V)z_59p zY;*J1|C-2eap literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flipper$9.class b/bin/jake2/game/monsters/M_Flipper$9.class new file mode 100644 index 0000000000000000000000000000000000000000..4218410cfeb22a20a0976d94ec9ee741d59c1e47 GIT binary patch literal 1771 zcmZuxTUQ%Z6#mXI!!+SQZ78;sUM(sVX-aCVNQ<;cFg3y2l(bUYaF`sDY334VCM{%K~-z;1BROxm@lulXgvzhnao${oDKOv;Y40&%Xc^5SY*yE<6`)S;#kq zEAy`Jg^>)xe5GD=>`q4plk+BYhVhiqiWl7%ws)r?I%LZ*c+2+eXpv!HYP!atFZ&Id z#Q-uK1_l|9mu*k3b=@r)JQQ1wWXP3$OE@(V*oyB7^{8cs442BOR7c@iU@)38Dt*Rq za%!5acSPP1UNc{f0^4gY9K#6)zMa6YcL*tAO33U~I=F1uR#cA`j*=Bi)3pr7aLUBn zgf|7L=f!av<5YV~3MXnYu#z&L;5e(qSyy~lPgF{Lp5p>8k`dK6(U;DP?CAS?7>P&{ zk__I#q>0P@{g!=39Pg?OX4tkpuj^*;KBi4fF^r}_uF_@R6`|y~f*I{Wtf*?c&heoV=2VO84Y}oaJ&TGV6Mbn3Pyj#T z_!#qqgFrikV>I0ZYexie{sr7Naf{(Zs*psIMN#qH zoBQ}AcjLzwr1=A%>YGOArZHx`!1+C_%ouwpaX$1L*2w+g9v&ayn_n=|Q;D>yK`K@D zKwS1cYEQAMJwsWmV_n9Z>Mg>|8V|u{yzt(dfu+Cs<*bTt`5)q z_Q-C_vhsLa$YQb%Sr}iG$je<2uSn!pR8`id5;e8CQ;G}AlhxIUnvmruE4DDcIG$S` zuUwEjb>6~6Ns6r2h12t=6co=dub!7o4ID%kO(Lt+1a*JBGBqn+UYGEp5X(%Nr&Kc4 z!AeD4GIJfGRG+C1RVpf#nRb{`1ExA$sX>u9Rt zt&^#Wx6Y<2-ny8och#+orYhcgn5uZ|X{zGwP*W9ehncE)>t(9q zt+%O)x5G_Uyd7bx;_XO7b^7fnQx$K0bhWIi#_7$zrYeqeOjR5oZK~q9pQ(!D{-!F9 z2biij&NWqWJkV6dF_x3&*$o#?Z|0e*I38@O;%$hjinpPrD&B^fs(2f2s^V>gsfxFe zrYhb>nW}gjZKzIfjxkm7c8sZtw_{CJyp1(g@itCZ7bo2DkZ-Dz?|4&{d?%QyRq;02RK?pAQx$I~nW}i3 zYO3OGnyHGnlTB5;O*d8XR%EEoc$i_T;%%m>inm#&D&A(Bs(3raRK?pIQx$KgnyPr4 zYpUYyG*cCCr|W8US`OMX{-hi!)7CT*OUPT+GW<^PJL3OjSxNHB~7sVX9Kv zd{dRu7U*hes>~^^%v7bcq^U}23r$r@TV$$ITDhr84^^0|^iZX#N)J_;s`OB`p*l0` zEK`-yS7WN;t=3eM+h$W0Z(B@Nyj^Fi;%%#`innd1D&DR)Rq?i+ ztgI)KoWg#pT{?Y5)#5}tb^DCOaz&+Wl}_ts+FegpP??%hmaJTqUmCB*YcP_x zEu1`Q+O&e{#nWe=R9rNzpa2^muQ<1QHFa2VJEZfKk{}hAS5=|8Vrjiu>YSFE?^l(s zf%A^(OI|MSg{<@iDJ(lpZVpT0<>-pGX;p4^G&`+1XcjHG7fYU*MQazlY&Fg7A=Ulp zaIa;g2Cn!=X)#nr5lA=#}dZ>7GVGlPWR3;w7o(!n__XO`@J%jr0?f ziRPr?F(u{6%47;J0=_F>dL@`uuU?LR~f|Ro__=8~|Nx({w5d5gsk= zv|3e2@1>%&hAvg5;khxq&!kCzJo67;$~v27(996wG0{^mrNuGV;e(>Io;Ii=m#XSr zWz#I0ty=CHo32$&6hsqYqWJUo;5-N^w%9a>id1Z?O{c0tu&y4Ykh~~uqYdhw8*Q3P zv;Fz%a0z&eO{Y1T-DcD2DziHdn%Uqe-R@*|mrZ9lmA%KNdsSsasH~dt{&85rRRQ zZF(wQQPt%t@4wiTaPofIruj5eY0ucSz|o$ysZ5pk{6Whb7NzH$^8R5{l4ghK#e?26 zJWBhVdtR|=p;O1#YiHq{aK^=&36D-$QxRm@A&%!toZ5B_$Ot4iYKv*I;L z#Ue&=#*4j~KUJ2*%S6UX+44MEJ?@L96}uO3{w$}|WOd3|iV~&Ck`(p^SZmnFfe`yM zmqxYtjgQwRYz}e=TN7EeE8;1&7s=L_m6FBr8srn<2xo;jnz@8J7j3rbc(MYE)tPsc zTXQVLZCVyLGnFj2xh)fRJI56l)+7=Is*KZX>LE60z>@glD0ks*A?`|6XKjRJ+--ArJ|w*hOIDU9@G8|oHCp;)zbI9c ztXwdgjDe#9zsDveiGu1zPZG}t5PY1C%Y%V)4nQ&pOwnQ3aV!}QV&w`rP6gA+SF zpIYoYy)>h3I@te3m0DJvP>ILeJVA+p+N$zosZt7T zE@Yf@VFG3DG!m7mWNMju;-(VPuahvjD)0<1uWkMW;|}dybW81kiqbsQ$0yo6S$a_t zOD{(FB%T&x98Y!8x<0c6+~pXWZgUaOz+9_HR-#fox6uCto)A%<&2vJG!y$KvP=~>q zI|bYJ!4qvhmFHp+oQ2OmRW(Hk>{7#h<`&{dO|E13beqp`vWzdS_2(lu|9A@z9bB4c zbBSt^U|Awwo+?ukX54%wMHeLJ6*tReHYb(ruZY*ys&tENE+-sW_|*_sLZ!`BYDMv3 zd!+a*n`;;rvfPy*SveocGbWFAMW%2aF9|WS(5Fa78k?8WY}JA4eIvqkyxiuqmEu>= zQYD;Y^SMg!VJD#YJe$v#TV#8wlnZRWkkCc}+4!kGTW#~jYSu@wXItd-i%NKj&1-2U z43yN>)IgS}AoR;@zFgLmTC9@^>_B+E%~z;G+SV>fVt*uG=$sdZC~x4aLc9^iwZ1RN ze2cO9YQ6>)!tz>)w}k&;p~PXIzcx`mAM-+A|I!O7UYv^5{(DNi+Fi(_MOAe*C5ghM zTGd;7-wOw*1qJ);NtKm}nhE9T&P1(s7~Ue)7qh3WE>^$_f zt-)wtjZ@${jTeKLXuK4>OylL?vo&4;K1bto!7DXB z4}8AHtH2j%d?ENEjaP#&)_4v05{=h_FV*-m@Z}n>1FzTk3hLBq@Ld|;4ZcU? zd%-(3z7KrA#`WL^jdy_?HGTm6pvDh@AJ+I0aFfQ5f*;d(H~4Xl_kf?!_)p*`HGT^G zXN~^?{;S4Mga4-SGvL2#{4Dr6jh_ea)%XSQKQ!J4eo^C>z%Oh33iwrxUjx6c@f+Yb zHGT{Hw#M&(-_`g%@cSBn0RB+pkHG)b_+#)V8h;A@OykeNUugU<@V_;~+Ss zaTpxYI10|v*ao-KxHY(q#xZbPjoX25d9tIw+ z@d)rpjYok;Ydi*gjK;@;$7(zdoUieC@C1z~f(tY*1RqDor=NE;3BPZJS3m3p!|L@; zLcFO+IK>U|`Y1fr4e|OWe6kzj6j2!Gd=lc=4q+EM1=rL2%n`^RhjnrtM|Be7_)S8b zyGe*sHwkf)CLxZ?B*bBvgg5|`5XWB<;_ypC9B4_1qbmt*sd>TKF1 zH_h=oc{B?FQwW+u$P~h+5NmNyti?^SmUl&3DWT)WGD@^S$eZDc6vQ+c6#%=CfbJH+}=Pp#DbZ4K9>((Z^9d)_0fp%n!th=*mXGUF`1-CBE zf?Jnn!L3WP;MS#CNRKQ{X>n6}WNB&Kk)sw-r!>%g?m989p6+u-R(%ugLT^6MKo5rh z9|l%E?QmA8huxC<*VDsJ$xTi47)pM;f%fPn|H)a?(#umC-651lcL1f)9SJTr(4VEW zGh*}V>CaLHtcZX8KQHBPQc6i|K|TE~UCQ5^=sCFB+dwZg(LTgpYM_^6?X{+THLIRp zR*jOj_^RvJwU|cNVj5kGX>{jD8q>4GVt<*qsMjj_y2gQ#8;Us=a-&?0R}5-P~_A(K~45_ZsN^Ci)Pu ze>Tv^P4p>ZpEuAKu@PFsrw5Ds;7jBGW@OEAn>~GRy4gL>9Efw$&F)=yo84o#**$if z-D9`eJ$9SjW4F;gb{pMex6wUz8{K2K(LHvX++%m)@z`Bov+!9xumX7KO~ZlHh55?R*P+FnopuBR_#2k})CeS-=5T?2jJMEeo@ zseumMkKHZPFWC1E!@+<>=i;Nmx%iJ5E3IsV9qD|lJFT*MA?!mJT6wh28cFM|6X*(S zE?sGr(+2At+Gwq#YpfgSTC1KmSx?bs>lNB!eM;9^KhsvS@rAwzKIIRj?KGZl!mkh9 zjBnAm&{DdU*3xZAaXUV--$8rmPJA)mLGRN#e9XOvK8N}>!u@m~Tl5gVDn87e=@ESR zYT{A!D4$4=@oBW17vWkZ?co$X!7C81q9^$>dKPE+&+#qvJU7x_{tLapuhKvGQ`*Nr z(~CZvUh?&zmwf~272kMz)i;A)^UbH%eM{*L-&%Upx0T-V-Aix#_Ru@Nee|yHBYMxb zpWgR}=>vaP`q1BxKJt&IXZ^?0$Nq`*iT?zI)95q*sq~HiO#0S;7JcVmMc?~3(hvSy zXurP^`a|@Se>WZQKZWoa`o;ee`}}XP-~Sm0{6BFJpHxGEjvNm3W?$e)jt2U1R$vIi zQQRspj#~$&a+|;z91B!%+rSEL7q|raW!yfnfjb1YAiRM)1$J<+z%K3=XyX2XXL&&2 zP0kH`&I1Dnco06(0Np66(#1Lj8GZXb3M0P2lCB>3nu5 z&MQLId`@U3pBq}wD?{7)ywFZQKlC`S3hm_!Lhtg0p|AL&(C@rD+=ed>_vAIO zgimo}^m*PLeGRkXS2ct1m(*{%IIoTPq=0Xf&;mIR(to@uChyOddyDNPpx@|sB#f~7 z&sy@%Nqa57x<=jWnRjtG>*~!`IOid5b$>m#%jS*`aOVc@A@M^c-b><#OZ-TQ_mOyx z#QRBnfW!w%JWt|7BtA^yBP2d5C)~(masrKPv zaANN_@=7Q6eIu_z**OpJMUHTJBd<|0yOA%g=XJPn{3Vf46qw)7m3Gwx00$tfzeeYo9M@z2ys8AN#`A*S?7LvoDLt*NU=ytts0V zqi(*oG7O|osXJfGn^33Cs*V=LEaokUGGE7A5ze!0tf2BkpSs~UZn)nKx4Gf%Zn(=0 UA9F*j)ar-!x#2r*_@NX27xQu`!Tfgc5Pj=7b>g^fNDGvH&;SLJhSq9&3_^m^AWJEiq8@sQw#n96aMqQ*;a72h z9zf#258y{3W}UQhQH3S%+u5CYett8*|NQ&~pp6{|7Q@Cz{z3YeijLaS}z{(=!7TI#Ir+Nk7UZQ+54}e4nr{%I(W;l+-OqnXYNN_h5oTlqzXGF z++mnMH}XZ&Ph~jL3?(_!%+PA&`NdEUbYFLFJ8PbnaToU;++$eEX?jOiz2T|wu!08+ zRwx-(^907rz8qh~iJ>lI4I2*D8P;+n|61+gAvPH*X*^NGE7>e?@d!^GJZ4zQ72o)P zhb=rMQ?g2i^;`ch2)f;F)|^yC=VV=8@0AHe66=xasCyhwl7Z+-(=2Z`4ZFr`>gJ&u zL~%-99|=8*hm;T~C6a@Pr>RI$2Mq!Z7_yZHfMSQDeL_Z9-2Q>mH`-WmX>|!*w~Cio^}Nb= z)a@_VJT(#kYY%0sjSAs{wV!d;r*$(59dfFH_urd`O2ZnATG_ul)PGjsau_m7_dcCh7QMqur|9IBmGUyf93l<3T;G;1Ao z58_0cjqT?y9D$WW&%QP%gGdiwhw=k^1!iAHIx?>WN{!~JfU}!~%0meiA7#u6%y%NK z-i$|QDm{^Bu@b0tl0e3%GL3AWe{{?s$^`12!e0N;(-tWAl{wrKSZFlad@ftD)cw}6 zNh95F&*7%P^`2F)(ylZ{21AYzt{ImaMZ5~5z;sQ!`L=@FSaPvQZH4Xgx{qbt5vb;B zBHc@PB}Gu7LR>w@4RNTA5yg0jncbtsVKpjNZ8b5dbnY~zgx37aZ$#}6x$_$c_ z4ToB*bT^h+rZUt)+xch0WToBAU1l#B1!H;hJLW#~#|%8K9wVH0a9FG|_oq#a*O<{a z%yYGXr;HX*s@?d+FdesaII=KWx*Vnj$%VC5U?&c{o}R6+pH2`8Mz fX>ZQ4k{;nPNhLg)%rwwsbZ9BC$=74e3ghz!8ECb} literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Float$11.class b/bin/jake2/game/monsters/M_Float$11.class new file mode 100644 index 0000000000000000000000000000000000000000..522d03eca1c22c9a5797fff9e1066fde4555ebb6 GIT binary patch literal 985 zcmZ`%O>fgc5PjRYapSnOgwTcprL+N(mewTY<4^=brIjkBTw3+OCE6sLWQo15>`ng# zcMjaSZ~z1Xao`8=EBGad*~C<)fF|wFf6{{15x*SJP=+G zs#uFC_V$~*e#mvXRJfvr9d?9+400|e zk!6@^NF|;PgO-R6dCM0Jg+|!s{t=I)@smSK_hrnm)JSptL(dk&WKZb5rwqkPm4Z*W z=X2Hb4s;|{Z)*zY8K%2Ny@;BD@C6Z061EyJ%vaLrq9fb7skf@n9bCk`jX8#MWA>qz zzSoc~7bRSx5+klUVK6FjH~aVpwU53WuHu@FMJgzzIYD)?gzF6Xqy(wDA@wm$pSmFt zIjrD@jWWaK6xi7YxVVX1RQYLr;fZK+t$BN}NymS{2jN6QLC3=Ho+16+QX0X55w*{clkqwS;V^28U1=VGo4l_LGd_AD zJF4x6F^z9u=ziFtfIX!|wC(da7BO{_IzMW;S?N)cZ_{p*EHfvopE32GHWP4Yb;!c% z!=lSP`R+J~>@;~aW6aQM0M^MGfJ|Zb9hq^uL5C$%shQK%0xl$}ir|R`#|L*45JrK#|)Mk5_9vL z41CqCt27cw2_!MfaHwoL>RQL%Qr-=@WhsVi*{w-yQ+lS}_mw}CECn|4hAe|GK z!M&;<5LQBx!qb>FaB{HSYQRb08J)rKTc+c5>=d5Eyn#7}@fgT;y2>lkR|2Q7K>e~* zS6M^3LtWL<7vYDw7m+h?dNB8(lfW6|shfdm(5AL&YN}}JSt9zA>a?B&G;G$Kn&tX52{u&FbgA8<e`prtQ7Ah@2aHn8&cZH^(04p({frDPp5S|Us)uKH@jUGcKmG*%a3R`f z&u#6Y(8Kv%yqrDv!vnJXfmisQ(f0Y|MDhWqdstgY_D~Wc^Bb;F_>CUk-otypV5)DD zaZ{a4y6i+)_ElsF_dSg9k1@eN!AbrpX8C>O`3^4e&#=rt$2$K4W&R~@@~?1<n z8vGly`M2;$cKCO=&%Y0AUykbQ*G`q9fo9mQ9hkJDCX? h>}ez?4o?0YeWFXC<$otlo$>$x literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Float$13.class b/bin/jake2/game/monsters/M_Float$13.class new file mode 100644 index 0000000000000000000000000000000000000000..d4013c0b74b2e7c5fad5ba9cb176b34e11badf19 GIT binary patch literal 1051 zcma)5%~BIV5dJ3Fuw=6WCI|=!QBf06BH+&fiz@kvl`8Op#f3v^*d3OU&1`CSu)O&U zdQi)!P!4K&@Bw@%%bq3bq8vDEf8Dd)-}K-7`1$QSfJHpCkz<&8&JV?6Bj6p;=tL^f zB2F4x?PeHpJ+rW6!(tfA_-rV>F2!S?cgd5X?~zneuQ23m^&JLlE%JqfJc=#~=wle% zluA53>gu$B0O{&PjE!1t){;z0DCZ3B~%rOkD3NPx2jhEdp zN@S!ckCfJRm5Mp9{N;%<|{ z*^Z84Pc)_38Mn8P^Je0-R2#}O*{EPk=!3{7hn7+zUJH4Why+#8+-b*=O4>uRZL*dK z8DU}e3;I8il7mCiA%yiB7X2)d?VdOhULcEM0D~kA!5uHIUXI&6HljT})F&Mq8lAUZB$@vU0eG`-B!PBJhAdr&klHzW{**<4^zq literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Float$2.class b/bin/jake2/game/monsters/M_Float$2.class new file mode 100644 index 0000000000000000000000000000000000000000..8424e5e601855bd7c408e39676aa4b266f42be74 GIT binary patch literal 837 zcmZuv+iuf95Iy7Ab>p}f($bb*XrTp?7O)f^K%_!~(x6BwLTc5AzC_!2n=EnGmF@6V zJU|~n;(-s~qY$%6sLaKZ_jv3%XJ*d$$Ioxy0o3r&g+;<7vsh$$-gE*8P3Ml$;Fh!VaDJ|a) z2j?<55$BO4lv{B}M5iKACZ4>svz|%`o2^`}f7_`OoUY88uL+BlD(8L>K_qlHIL;EK zyY*?@Aov%icbT+RXv#UPtowxJN?u!rs*|;|diAV`n^<dU5!O@K{ISHbKTcwt z;fOGcIX;cRBSs@oD9?Xl7}Je9tYrkc+U8mtouaU|Y(skGJ&(9jrHJs`)S#$iIs_oR4O4bogHAJr1 zj_tpxAvB)MYtUERl8hmQsEIHl8V1&FM{YC^52Uwa9n__Up>?-t)$^8TE4ic8{i@y2 zFuLA#*T2(Q&=9UjKeMV~csxnldseD$Ih9n-_iU%K(1$_3DXZM2S18+_EF9D=RTCX~ zgHzLRa=iNvS+a|M!Cy%3MKOYt2A*MpT{(2#n|Kxp4H{EC-Q(`~w*R2e@OdGlL~$Bt z3_PbH(H*15$i(v)WjbY#kTYaPIlW-wEY1;47E_nJMeL_zxPX@oyr^L?2-fuNdMa!A z)!9`O<49^Smy~&47Jb*FQ~&sWI`}5@D(a+(sdiM?vn#d}#YJ2)kYWv8+4Z1oHL4~q zV}>Yp^o243tQOpIxgmXac|S<(WfQMpj_ti#*!0}H%pm7By&?-b@g#};v`S+HubFrq z^DJ39^6&ve_aNA5fU5S2i8sJeiUk#|xJR@$+VO%&izb#7c(Hr7ykC`erRpoc6%(si z)9_T_munvQo>gSF(M~SOd<<8SG4OV8ceBC3o4AJS-6i)7&gg#*jKVp?PkZPavR-C= z90QNH8fDkJZ+RtZhR?G-RoqhbMwXuC%pWh-sMs`E}Te~`+aQ{~Jn7naJp4X2n!p9Yn$%hzzh*R;ipJL!2{=#R7#TVy{ zFAxdM8G&|eI-zSVoDZalZ!sO;o}q54g<0xeZHJjigj-lhgu{0(1-iH1JJ?EurxKAC zmM2N{!O-vV?GdAewEm?6qYdIVhKa%o;$jt-#Tu4H8aa_cL0m&kT!$yJXo?NID{kO@ zv561G7Cs{XvB=?bv4ii#O*|5}@RPWWpGkiedu>GTAgWO7AgZ`^%oEc%9wUo$?7z(?7ALTg)I|FhWS{?j#T?SNA@4I`5}cejNf&nqwX;zilqaFk3_g<-5K)ZRmeT(Ly4 zN8EO~?AmqZJF;7uz*&aLj?P{9jX-hPCInH-KEqrwPA=L`OEpxb^f--km@_fUaAqVv zRE}#`ou-96&Qpax(RhQf!rk%vzo>cirLcfS6PKu-SjrKrh0D0YkcldAWXGd6#^qx- zltc>4xN4%na3Mx^vVIHKaGhc1xW0jRBt}JUP(S`*53e+D39BYn81koibyf{!;f5y7 zw1&Pfq|!j0&AJ8qKVoH?av^ge-R`j;k_3-F< z?8uhu1vI>xP(6>vW$j5R{B4&9fe5IN)c3IAdZiadzDc`HvP_?>yvM|A+89XFnkEb5 z3zBr1A>SGWk)0%uCX6XsHNhHLO_0b=zale&Yjzl4W6;E3XcjXOR1!VOpzr~?r#Z|& zdyeVVx48HQOYcy8fyt4xMo#jjmIzbJ5(>sQWQ^~~8$YmQ{0wzwM_iE(vEn8+NU2On a(#fX?zZqt@g$W|6-6MBf9{nHw z0$+SkgE8^JAK;HdXRimj%EQj=?96=g?achS{`DI`4Tly|3~L|wP}Hh@J`&ZDFGD4Q zu-fXJcs^I#FD;l1D~XU}sZIy39KPxD3kqeJdF4u1y=E}Vl`{tO$nT0Q3}kGiF~cy| zbftJV9-WKel%IQoq1f~t?w#?#)pq=7s(~9atTz+2?$W6;pCQ-N+(pm{#**R*SPmJM%1LO^bsg1F^~(DU9$?ABBJoO;j{P>4Q6j{c zi7R_PwId0X@DN-Et5~z}kYPCiHWg#z5!M+j?)E(1r!TWc2AkNj@R(usZr1HEY;0qP zVgBZKBmYu#Ld9kGfVwfoDRNENJhf5QX*p*c1VSq9()D(2?CJNy6kOCXGZbF$KggSY zG348dJHr;ghzFN#`{Te7C$1i?9WTzlo(#?YSUR2`(qvjf4g4+zG^7;4k;lVOgxCPB z4ecT#N$WzkMb;r{MmoLw6SLpwl0uebmNZh=Fv*!C+nxlG&XdJ(4|60nz;n_Xz$g~J zlA5Gzbfo?!QjOcxBIe^%pQ5P@cJ{8YaD^4~<0lmK{W~^(;K^s?Cq{(~^NX$#aVrul y7%A9>fs&ENmSIJO7AIhFA%exTh}}MAnn;y0lwXY~zQ95Bwn?%^Cma8PuKxg=bIfS~ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Float$6.class b/bin/jake2/game/monsters/M_Float$6.class new file mode 100644 index 0000000000000000000000000000000000000000..d9d3f6ce4df4041cc33a3ea3fbe431f8df041b12 GIT binary patch literal 1004 zcmZuw+fvg|6kVqYqz&OBcew}xN&`X^6fb3*Q6x@giZ3uQ0}u7kp0>xPC!HkKpYlO@ zP{s#8zz09cai^_JR5FvZvy;8nzO0=ezrKA3u!UU%8HV|Hydk!n8gB}x8K@{0VdNZ? zTtDFP%8mh@VI~!_ui~S+RE-xE-l9;3{#~hL{G36{+s6$0UQiJxG~_Jwp`T&6D3y5A zZk~(qh@bm{VYC>Oxqr+;G~J41F~bd#@PA^ESo4=Z?=+%{h!i zscMBRZZKHYq;?UOKGb=W0K}{s3{&|ux2VW+T#5_!X$}*ZGBC+7mdgE_=JAq8!ooCe zGGuC!=8z^x23C^IRuCpMIm}|-z#PMDisau0EZo8Z!(bG&Ri(t^n3o&d49qie8_Nck z7^YM3zfxFO!5!+RgJqbzwj0lLUDrNNs#&#=hfT6@Nkhn-xhB@JVc;IaP&Y?AmcCPz z=N2~Mka8hcm5z*uCLUnhz!t+qs+?pbCxW*EW#J(nF=VSU6s5Y1sq1UYIdeVFJ|*f% z_*IfDJ-vocIGca0MiU5O2J06mo!fLvaCAks_%u`3BvSje#-TwzHr%w#c;aGWYW`%73HmsuE=#V zWr$x@p3<)}@SffrgEj82I05MSM%8t%VFdXmcCEE>|cBNNNXLX>w@<=O=G9*hTcPGfdE7!@MfW0+_ zlReGQ&WbAPydLSj-G&o5Y2$Iqt0{EjT;LQ^gyDEjb(3Nq24MiY1kT_r1EVW+?KASU z(wq5EQ$iH34d?Krjc$fibFh6z0#D&Q)zuGFS$PaC%TozFjc08dm5Sv$p#i)kkj8TiV$^I!?v#GA z;b%Op(T@P@yHcrSjdlaZ>ji-qahc#7@f-@(N-p&D=8VD10#`tNYM;)}2mUH$mGx^u zk@|jQ4>`)}6})DHh;yu|6w^e*F&R1nuVa+%URFfE=7JiY=2dmw4@~>oFpfzZM2D^> zkb}Gtn8Gy05B-|Al9yV`;@S{3E0aJ5Z`yc+;Z&3Rz7PU4m?Z|(eHqRi%A!oBas3Rg z3(RAI>T@$t+8Nu_baAUEV``H@R$vitQ6}}nc|TNI`PAYVRVK2yDR9eJwAL*qRAAh0 z3oPRfVODFdRz(?7&Ew=ksBL%~_iW?|GrGaF>ldUO3P{uLg6S6AHbj8e}b!l$g zqc85Ty@;t9dg>!2blehyUGjtbGN6=V^d(g2&U{6gf#a7-p`l$OBG!~LLq#-3)+I9& zh<%e@(WUx&}&vSxtSB9Yzq8kK9QxNqx4Jy)Y(uPSglCg{5p!I87v=HkJ z^IOPr4i+6INf(h3$s?puMbS=g1290+0PxO^uSi7h1|9r*lPlkI?ZmOjm3>cP48%Y2 zZ{tfmxv*r>KbBmWJ)qAW(63krH)01j;(gmVzKzq{c!E|&q++|c5Unrv53pSfq~e`} zokN|&yLkSQO}u{~W$ognEnMxhwlF3{atGH)i|=5LL`R|_yCa#hc5s9CQ?VW7NRn#I zQWoh;CWXGfRLsaIhb`P~-9@1zzJ9OcPn++eVtuh!vl3ENvjueX8yMtSjPXTec@B!- z!UkW)d;AXG=Xdb|$q%{2$Gm_~NPfy4e8x-ol9#c=D|pBie&DP4nXlm&Ud3S8y3#X7Ax2Jw>_&_snXJit4&iXn^75zs15 X=VAQ@8a0v@jVEA({s}@ew4mod`@gy6 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Float$8.class b/bin/jake2/game/monsters/M_Float$8.class new file mode 100644 index 0000000000000000000000000000000000000000..f7c21d37d85cada99473d18e18434e9e097e3246 GIT binary patch literal 1072 zcmZ`%-%ry}6#nkoQ8tReKtPZmD(c3BDk!2u6b3US;0t7l@~~XC%U0=H(q0I>@!+3> z5s<0z!N{wBl=0kclB%&y@9DYcobUYj&X1p8zX6y+&On4==q=w7Q&yQ*g;n+3Kng#w z)(Sbt<8o})fX*-wa#?oeM#Xk_7D{}VTp3#CY}c0a3|cakXV9}=NyMQcW+I9fhK^O+ z6|eTHTf*PqTaI8zta?T6Q%BHw*(IovH< z>(aN~a;6ns4Cc0~UHFBP;3WzmWOs+5FB!%bCA%mKGLw1}!&USd=%vC!xtn$q{kTS5 zRc)85i)`lfiz7h4_zuJ|gb@S73|)=5J!w1E8kd#nB@?5#!4S)fqV)WAAsJeen>l(? zd6n;$iLnMQKM3@NIwWzTOi2?djFW%W+ZXb1mj=dGl;NI<31u*X{cVSr19fMaxQ_>v z$Q1{&*(b}zFpWnB9x`-?I(kVAFY-W`n89P}rEC+k;gP5nDA?6q&sT$q;|Vebo-*`@ zK>qMCF^6XiafjwBTxrY0|4vzLMj)JR;w_x=Hwy%^?(O+Sk+ao?n9cp0R0PusExSd> z3y9z~AuC?V0P#NI{q20r}Psc zRu!`m@;ru4#x~N;h7-wl(ipCwgH8o7K~e!|iOv%ejc|ny?R_Xzy9`aByBYe9;3*Ae z)92_(4A49H1=mTrnYc~w9i?;{HQY_VK1VuwR6{!5R>R~OrqZ7e0|%k;&`rW&K?7v9?A ASpWb4 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Float$9.class b/bin/jake2/game/monsters/M_Float$9.class new file mode 100644 index 0000000000000000000000000000000000000000..50b0bcff6a8de8df851832f7cf11ff6d72fe1583 GIT binary patch literal 834 zcmZXST~8B16o%hnr!3vBBDDg72qJ6$r7f~W~FFLZR z(!J&k<`}}R^Dfi&N0AJufykP4p)qBqGaXhBeT@=`X@~r9o5dQ}mRSk(M@pVCD-wOd+5(AO(L7PRR&vS1f(U8vk_3m{@p+fS-;z h^OM?~<19VELn3*2H14URLCR^Kz$V=R<(x6P{sMB-vy1=$ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Float.class b/bin/jake2/game/monsters/M_Float.class new file mode 100644 index 0000000000000000000000000000000000000000..f3e5b7fe18bdc98e804b229e1310797f62501ab5 GIT binary patch literal 22610 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$1.class b/bin/jake2/game/monsters/M_Flyer$1.class new file mode 100644 index 0000000000000000000000000000000000000000..82adbf1e3ca9e02d338d1f79bae87c29fd2b73a6 GIT binary patch literal 881 zcmaJfgc5Pg$4b>f&dqyYXn}e7mK(} z$OV$HlqE1u_T=a|iVbxM%UHFsLRij_{A;v}J6L1cNiMZTa$?Jh>gqYJvV_#B0V(yboQcg+!q~bTIEh>;fZmYd%2_f zVU)1byFw460VjA$iFiBolSCw_fyaQy3+c-3=h)`x86z3z+-+L&N6cO F`3wJVx~%{J literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$10.class b/bin/jake2/game/monsters/M_Flyer$10.class new file mode 100644 index 0000000000000000000000000000000000000000..fe99ccb478fdfe0d529fb3d6ea9e770f8811bcfd GIT binary patch literal 700 zcmaJ;&2G~`7@W18pPE2RC~aw>&4EJ#0+(_l2!To~MM}A}>VZqNO}->coHeqyNPQ;` z3*!U zOfuBKw0Vb^tW248iPcl0A{HKeM)?yzJcL|BBD^06xOt6rWlADmXT`X%%r!T7M9dBR z>dGZyD$m{F{hX8fSJEnO&7?2MW*d|rt~~pK)!^fme%k&Qir(*u$J&%P^PmEo*rJP% VyA#blY!d@s39!RA+EH_fHJonAY=WA0o`cqbRS z(zx&ed51^jyBOdvQ&dn$yFdleK=6j*F) zquyVP&Xqlt=ZO-iw$rXm&ZO0OKK&WEfzAYK?U`D0`e_OjV&z)z1Xk+}l0VBRktU8# zoYf|7ma)u|{k;25Ut48$JaE*|-3$fR>$ConvD-39%8+OHG!@F)URLzj|9Ry zdx4F)j;--3GL`h%=e&}1IY}>UR~_kmC6(#MU*-dGfJ4(w(u@NgD>q1cB(#iC_8^g2 zrZUvPb@LK2j$AYI60=uCK`cD~j`BBtcnBFoBD_Bcc(}m4G9eM~GZT1#MaJCV1u-}9 zt4m)A6M60q@9&J%zm-<8GL^m|n`KbmS!({kYVhS&KPi8OqIW&^Sex*s9#mixTXga9 Vc&vGXZDPPH0iN;=d6qZD=O1@|j-CJj literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$12.class b/bin/jake2/game/monsters/M_Flyer$12.class new file mode 100644 index 0000000000000000000000000000000000000000..7ea21143422433035b8727fbbc64b3caa98cd4cf GIT binary patch literal 1094 zcmZuw?M@R>5IwiM?Y7%hN&!K>tP0vvpwNn6MN~d&HlZd2QUd&FmiD&2vfU-STN9tb zm+%4np~NUL#s~17B+j;#tcFeYPNzL{=FFYbUl-qh0?6Zqf)K;>8{>rMb4{bob8Xvl zJ?^-8o_-d;;sCok*9DPb8RtHKiA8iSP1R2bw9yUtZeh-nBT z!Z5HcEdILFKIYDzacpviZ!!$0GX#EX zD+UKcg5>J>AG^7;oLh8q}D zFiH{wD*7M|H!)80wS`4GLq{bQlbBX8#W2`IcRXR{%7)h}Y-+fL6ho}SYo6`wa#9dY zAC>6IR8-u-jDouiBY`fjXaW1&IJGSev$#k2hH!YbC8%`bO3_CpUC$iGkj9*X48zcW zZ0m;0HDobQYMX+#7@XYScU81cZO5NKhD9tX$Wf~R$^X}{VHtUbxNCQ;dhd1_n6Bah z9x7O27z-5t(?G)`Jfa*C`U{|Yl1V97C@WB86vK1h5dBOa zLQv^cDI)Y6GW{5*THo5j7UrIb4+CCqtZEU@1Nm*RzAamrp3RaAb-4UHtp*m zo`e*_lq6wRlCda-u|%;TMY5xcSVeoYzeDf#%EZgNDOp7r&lGE IKOa4R0D)=fga7~l literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$13.class b/bin/jake2/game/monsters/M_Flyer$13.class new file mode 100644 index 0000000000000000000000000000000000000000..62aba180bcf19282a5579f545e67b5a3ca194d78 GIT binary patch literal 1095 zcmZuw?M@R>5IvW>?Y7%RpnxD>Rt0S-P@v*h@r#d|Ce(yLN`N2D(q6h(w!36^YxEg> z2_L{8N{kX?d;lNHINMgT5;oa8o%YO`Gj~pZ|M~F?z%pK_=wX<8W1NWPT*GLJT+^{V zU$|bbTrFDfg*&~JSD`SBg)p18ziUeSj#=z5=3WKul)P)9)xQ+;- z41HVD7Oz{)BjN5EN0wknZaFo>su->e^6r<4Z%U6LwH4}hg`NUKq#^v$2E$M~L*TbY z&NA#qZpU|}-6+H`z%XzesIPjK;h9xeHcX$Yh~GY87)ggah`Ox#RlkrqP}V*Iaa_l! ziV@NnlFnOhvd{n+q7$zNM(#pq6-yCnST=C}50abF8)*pW+!sh0Fmwr&l9X IFdsdC0kL`Ka{vGU literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$14.class b/bin/jake2/game/monsters/M_Flyer$14.class new file mode 100644 index 0000000000000000000000000000000000000000..9b8138ae7963390df7eec1c9bb47a2466b86451e GIT binary patch literal 844 zcmZva&u-H|5XQf)ow{)hEg@|}3u%BBl2%|*xCJ4h{*fxBTw3+ei{(0-WE*?8vNx4@ zCk}u>NE~%YaxYx!(g>LrwsP4>T?$s${tFXXIShB z$=^+qbDo}r=P_rf_EZ$cr(r6LpTD&ANMsDHUZK~2^mG|YL#_|^7;5bfC0~Vp9Lk}8 ztWzO}-38oXSQ;4hL9EneknosO&l2I~n4#V-HsE~`=|FcoXJss-?qG$~6$IpQ4-MR7 zsN{Nt94Hz}5mbl}u8cK2aB!bttpNM`Ydkcu&agZao2V;(Lvif}e;PLAhj{GZ5kuo& zve6Z24;uzsi6&{vr8b4Mm5j#&8d;I~=i?dNV>L-5ejv~Uo~mHH7# zETIx>HY@;vs95j;{0TpSxRaz{AeKDWcjnGH=RW-X=htrl7O@^f7sJGJqs|xgs^M_m zafKgn&(}-kE&GUj(+k&PP#Mypm`xGv)GSfIQ!x%GmLa-g2`gA-P%_zF26e-&@B|dZ zHAE0)=q*};KWsRA+}knsY|b!HbWOwFH9SlD?M*ePSw6#LF~rqDPo5!CV4N=v%1J4rGd^h?T`uC;!vRUJ1z3gzC6KRC-MV(H?hGe^tme_Zxn_-&J z36&v^S?Dp$F^q?D__qxj=CQyq)T*-M9`ds7x(BC~{;N7p^H?G;frjZS!|4CWQdc?9 za9zSC&4%Z35y*>D&rJ=t9JI$NvF$cIlW$pa;I#HU z&&hG2iQE*X?fNt>B_7n=3I!B|;NFI9_&)bB392RiB51BO#N@}wTO!NIMrOXC`vZM+ zAwg?`ER_3D=`cyY)(RrqLmqVvy|hYzS+Wv98R&aYrgdGSLn(x=D!;D|V6c7lCBYL7 zR&u#dNSz>kjLZopU!-vP)f@EDX67TVe8%Eiq+8C7rqlDsQQt}GrsOo`1myveN)f|K z2~)}=%qx$vtUPJz7;bU3br36-F-A)Agb;-~74M1@(n>Rj+gK&5QgXl=y$OnwNz(HR DFIWJR literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$16.class b/bin/jake2/game/monsters/M_Flyer$16.class new file mode 100644 index 0000000000000000000000000000000000000000..8401ddf2d97d0d52e97bddba3a2c6ca9da3b5986 GIT binary patch literal 837 zcmZva-EPxB5QWdyPTe?$(oovcLJ9PTq!m~MiJKrK)E}u*%1x_E^d@YaO|ryUqxGf| z@5BWl5E2(W01t(jjZI|=ma-?~nfdnYj(`68{sTZ0yB=m3*5C4xXodqm7U4KisS!F2 zk2{C)d!aX605|u$V6*kZF0akFEp^|%% zs-Mt>6hVay;mTOUT@QB{)(WtzCke2Qd$eC>bevp>+-;N2^%s1av)KFC@bG|Ptv)H7*KjFWp*YBjNUu@E za2@lsTEHVx3vjA8K9XeZmJa8<(CS>aR&g_L-KT2W2EpzZEPlr7SJd1OmyFE98~9Fl i%2~>4bB?vNg>51^csT8;qe1G@K!F|l`INK9==lxoT(nXE literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$17.class b/bin/jake2/game/monsters/M_Flyer$17.class new file mode 100644 index 0000000000000000000000000000000000000000..cb5ef7177955246ae0e9f44d038b4a35655de355 GIT binary patch literal 870 zcmaJfgc5Pe%aapIUXg!F?JN`L}M3$-W*4nat$v{IzBmsUM+iCkynY~!radQ-uF z;=renIPe4bQHa^ZRIY@ud>g~r(CBxP?{h_F2@Wjtvo#+h*0-+r~RgkC9F7DW?27Ec@L|&$xxE~ zot`8Y)CudBv5wmgZc$e`WX9}a19uoISsy|U6B=e-LM}o=jEuV;?%_T|ZQg^a)6cqS zTtUtv2J--q96V%L%?Y@|>!D>BE8$crE;H$N%HtsoG0*vTAPnwtGF2fz5azzTY#nyY zwCO_kWf&(ZP5Y4RQ8J)}u9RHu#X*|#6iv`B(1u}l(hiXCkoSx%BU{+|j?yRkSb$5X zOBU7;HU%r>d-Ei+*T|#G#3G%B;0aknVAX3M$;{z~9afZsT9?o|Ze-9NWm6f{ieJ#! z{))BFXnw<{{o#_QYSdZ+wsnrGHJ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$18.class b/bin/jake2/game/monsters/M_Flyer$18.class new file mode 100644 index 0000000000000000000000000000000000000000..c0561ff8b5320e3aadfb4759553f6d0bbe778d9d GIT binary patch literal 840 zcmZvaO>fgc5Qg8aow{)hEg__(g%W6iq!n0{3sMjg>W5S*<!qqT5 zHd?A-cL6sTY6Gi2N<|{5U4_VM%&^=pvqfLVCNka5+bV8h*+Y|rm3kNP04umn#6pTx zgN)`;29+X&t6~jzJ=|efE5ZK$kO1qr$IvWvW)~vL4cF#Ua^sH%sf}CoeQbDmz_9W! z+6s$IfKAJ-#S^WCGPaO5l8a;Rzn;NA&L%n*2hwgPC>H0i2S_VrOs7p9XE^8J<6sw2)4hV@foXM(Q-drF=i4B ld}lJ{G-tU5$4YvLM?`Y)cv{m&hpbCW1-9t+DQ1Py^&8_pwkH4p literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$19.class b/bin/jake2/game/monsters/M_Flyer$19.class new file mode 100644 index 0000000000000000000000000000000000000000..5e8fd90da620bfcfe7ddf1f116bf27e75c4bf445 GIT binary patch literal 1840 zcmZux>r)$56#rfBhAqjZk5HtPifFMykw(B)D->yw)U;5mX|cWI&G z4OvywnX;^@OwD!tKzV*Dy|p2lg)gOau>kG?nt#isPa__H`;VvgZJtdK}3Ft0--n$m92TrJ?7iL(rQ zBgIBw*_mZ)O<)l;5{4(8QaFiu9Xl&<9?vs$l`V$D@xXf83s$Y}dU^_aZ~@CEE)q(y z_`9c1U`3;!@~O&FI9yXnynq)?TxK{FGi-A%@DlR6d~L;Wq~jRoa@lM)n!2k3t9Y5h zw8C4?y1Og+n532bD*~_LHHQ7s;Md%yiV~z(5-+V#iQ^kho z(G+S!4HF?<+=arl=F_;Xcgi3XRs^h0!WrtAuk7_*S^obx2{kvU=pAEJtzwm4TuIhs zS&tvR>)w1Ii`5lbZ!M5y-fehAm9_MW5v>JwLN5r~K}$~2c70k9D=MhC)CZAs9OW(A z()X2*5zx@kPDJ>nwMBQ6ZZkv~(ZuoJvF9Egx{#!Ak|_8F3=*d3E+QqOy>z4D#6J3J z2a`m#1D@W0mq=u;y@S6KGv)V9)98y#S&1BUlg;MDHV)GNaKiotDLOo8?BL-o9NWg@ zbesPEM;P}eqI>$}+770-aB3URq)&c#ha`XC+3xzOM1SHAhPSXZk=Q~`h}3VmM8;RP zaBT;#|BAW(gz@uz1sPW;g$hHRY|A9lsPGV#>lmQpyXfWbp`X8xqx=Jm@((e^Kf)P) z6Z8CIEb&ipfq#lT{|r}&UgMub@h?#2Un1bQ&?LISzrs!a4Q}yo@io!g{5F2#KZJ12 zN07AOB5-g6)ezxL*mR=45U+-*u#uZ^Fi2fmqSxWlDSfgc5PcKdb>p}nq@^wWpalvfEf6UjgOH%qC{l`$TJ^vsa^tPD#93FigTx60 z{2UI@14tbB0sJV$tP?8pVafYE-g$4{&g_q$-@XHA;*O0HVdJGg5Y0yD4@F}bt27fy z+BoQX(QA=xH*J`N)k4a?%8vR{4ITyl8K)Aa9!Mp#hXkWmKPH%aaUdKRD7&yQMVRYI zC7z9jCn7oWPa;96cH*8N9s7yY@#LqO^<_%f>=bJKYo|r9LXowf5Eg57&VA)KB434# z!z__1Y)#`5!8z65yE4$lEY?*6!g8&sECSifx>>9KqKwN}wy{K5C{%vR-FWP$!o>=% z5K5usE))fHySj3C7AIP!j5Tc7SSPF%ME7FtJB%2iI`J#&yCsIqqc6_jDt9RQswI#VI%P zKxF+m;DokPBH4@lG!-efz*FX{gM8)ba%^*SpOF}?ov)bw%pWBZ4Y?&V~ wbgFCs^bTcuj|$@~eaJPJ#=MCpE8rGxv#Nnw&aGpI(d5wryZk!5r%m$n3m_M*ga7~l literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$20.class b/bin/jake2/game/monsters/M_Flyer$20.class new file mode 100644 index 0000000000000000000000000000000000000000..67daf418b29aedc1b2452623dfc44a0a68f2761b GIT binary patch literal 1046 zcma)5OH&g;5dJ2cWXZAuCI|=!sHh21!o$Y_iz<1$omD&CUfk;}Uj$&i02m5kRJjB;g{A-fs4!h(T9!l-^53}*1j2PycshiHJW{n}|iMX-FFj}rq@N-`C zx$gk;sj58dtc|iQDno|DHAW>XqFBE@9ln7(*#l;$!OC z29Jb|30!8#c#>fKhA~!W9$K3{xqPe|g%N!7R~;f@9_OXt0KbtGI6B z+Ua4Og10e`8`PjAk74>;(v3#FPIN5XLd8V+ES;8&92*O$GK_2pC+LXn7hOMyWT2KA z#?J*!CLam^fX0$$|GU#fMydm!+8)r#4DdMS&QY>GF7I%U=9KFOQpME4y*h)n6C8(* zs7t*rc7GQa^{{E5ww0r+QC>^Lhk;804W&f5>GLQO5#~Tcr}ai6X$8qQ$y+7ONaq&5 zVBixO8CWDO(lA~lOFsw6w|haPFObJDgkh2z;0|dGU=&9_lIo>vbQo_^sm7nwB1-+# zR|Jr!oYDzKtGN?Q+V#gP1_L@TNIi58H9w>C)4g_zyJd zKk-7j(8LRWfIrIkcAKPrH0gQzw(s-2A5VY${PrEdKJMAb5H?p*FFM zO!e5S2d`zcb6~?Ftfo?qbbQuTy7$-@15PDOJycr7j|kav<(yz0hQ4%=MczdYQ-ryu z((+{3Z^`IPv;s*eHN&c=FPUyUGwYo2gp=wo@bIIx=oNB`lUJocl^t1ED+B z(>PMPQ=7&-p?Hz>?hV3$*9wF$SvJS&x<^#PBZCWGRJ!BeBNLp{a2T~^T_u*d6T=@Q z8)eUqbUO$QH+C%JZs>DDLu(lw2ErI=um!f8{~?S{wwYs_qXR}_%N;^~2&HXWN?Y2}{LlnaZb3+>v{IyoOR65YL|bQ*m^kaob}Dh< zJ$M2x8~_y|ao_=XD8#I7DwiI1W@l&Sn{RgJ_n)7?0JLymKx0^c$0wrI9Pz1WPCXff z!Vj9={;~UB_&d)H=nSi=kRutMjvYC9HQ*N%$}soBkxuxMAycWIG3bZhK;)2tX(5X_ zhJ_PHiZ`?Ax$sZ;w!OC#hPu>9iTLBN299Gb~oB6nn{= zE|;TbFZ3NbYR}^?gE>^(`~FN)G{MRV!*V4JEC!Ap_QQ7dt%>_sHn2pjQiT)0g%y+; z@(B+|4n6veG*HSza37pS=GDjNP9&~c%$+qGk(gm`p6D*Ka0Q;mBK&Dju zLMl#I=+G*u)Xa5i3HOpzkD{pzcI#JIyuzyf;UkLb{tcVo@%R%8u~8*M|Ey|6+)Bg> xS`C&~M_Jp)w$_LWEyZ9-A%ew|h+Ts+b!cUi@|zLGr+5~L006%B58gTp~BwBqq)p*_$H1 z69+&bBo2H4J{00@Vk$!;Whaw)^V{bc|N8yoCx9llU04EZZ^Myn27_=cgK?rVEz>MG z?i|J+WV*TQ!Vy?0NDh=f9Y$*Osu#YaRABB!q$2%Nz^*sW1f0F3Cq39G`zT>fV4)o; z`Fb)wm+5JE9!r60JL!h;S(rv9&;NAvFv~aEaQ$qB{veO ze!^)KL4^u&WvpV&#a)5b0_^|C@Np089L&t-IJuCy*V;eiX~8h>WHRn^OhxA3$L5Sql1bW?hml!`pRfCwnJ0}MsBWBOoaeFB!=y*S zky0|`H$E}U+6^7nPNCJlY^~x}-nvgUuYte)6}2x|`GyVW<0WHeVHckDe9Bpz fX>*RT^azhhvhifvQ%8f*;WmLSem&NVF@F94*I%)E literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$6.class b/bin/jake2/game/monsters/M_Flyer$6.class new file mode 100644 index 0000000000000000000000000000000000000000..9dac4426c18c8e1aa1a3d57ad42089e5dce9b77c GIT binary patch literal 832 zcmZXS&u-H|5XQf?ow{)hEg`g}rL;hSq!m~y5(fg6Q2$7k(q3Biz$Mx`n`DWzM(a%_ z-iZSs5E2I-fQLfN#%^V(CGU7VGr#?IW`F#fGt3h;P zv{ZxkEN(H>`c`{4GhFp3pTKIwu-Gi4MNh`2Yuc@MRoua%j|I|I+Pa8`Si)T*7D}Y* zr__!zs1zYw6)RZvagSl81pEISA?{<1VLsP6PA|lz*v3ETX~aSw;E|7q3`^IcR#Ml5 z*s#P}JkeSxV+&~%nMnH7s50~N+zi1kai?tG4SWMqcpR96(?y%9X%3em{J$R zL#2e?O?Z}x4C|nA(;dQer7@H5llOuwBU{=0f!Qzg;UJ(jAPeUeJPOvx5A!6lH^^hS zi8)#=;2Bv9aO?A*$>imh4yRozb+1b6xLuU)Q8sOZaO)cyU$Oih>)xj;MlRtE0%vE+ hS;%t>j+OKnPl)8=>9nSa7FmzR32f3EP|OOW=Py!jvUC6d literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$7.class b/bin/jake2/game/monsters/M_Flyer$7.class new file mode 100644 index 0000000000000000000000000000000000000000..a6e9fbc0a54f99dd1f4f49a49377a6a140f7f602 GIT binary patch literal 1018 zcmaJ<+fEZv6kTUJ?La#SmRgX?MMZ5v7_GOM8WTmTRqzGEgD=gYJ#EKM&ybl@qQBu6 z@aBsTN;D=u_yK;Dai8gkgC;iV*|TqJuYLLP^V@d-Rot~;FwDQ^eNlC~d?1{GFGD4Q z(AjR*y|*G*zGuN?m`j9gO10Z_W&cr|A5bVm=7B3+^^hS|uIw?G8-814k;1r*G%^g6 zTdou@hl70)?DBn2Fyy!V7Weje;A%ZKnyTl942xTdTL03iF{HafHJ&gO$`y(| z*V$2lE4#HZoMkxE(cGI-yio)HkP4;=TlN`d%1Lz5c3Y~cYL!>xIENVvMTXLUs@s^w zd4{n+xU4ab66P&jpr#U;F|v&XEHdQcHeA{9X_iR}2@es`G%nh>gv$)YQ4gAbGgLfK z&4KU)^-?&MANh6W6nP;}p7$vc}D|hCv`?G#FiP#m1_(=M(j~QoPl#YWJFr zb?uHv8kGx%lGYpwuk#n1-vecs*wF~v{2*R#cE=wEEm3#%`tA6**7f%2J~m~`^F!L+ zwopC4O#uxlMX=%VFccw{K&M6bis+@2BHbeG7D+}jz48@fpXkFtmfkE$7>{9+Ge^2T z3L-f{8g+t6dNsfrNez(7PkkgYO4sNxHWI0+lhiz>9l#FL68x1(dbKEyxL{y5S paxoPu3L*Nt2cb+@XJ#!gQPT`vrq?-N^s| literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer$8.class b/bin/jake2/game/monsters/M_Flyer$8.class new file mode 100644 index 0000000000000000000000000000000000000000..e57105378ff5aaf0a5e03c60416f5e84028237bf GIT binary patch literal 830 zcmZXSPjAye5XIjnPTe?$LI`bXDJ@VSX$6+b1t|y#^^a63<_JPQygmJpa=%Bb5rQcM5l1x6>A=45c~T6KFJB)Lw=`6zXAc zY!ao1?Rnf5@CMdczIz*4hFmVMPTUDIy8ui`G2TrAR7;pV*VV;T1ZYPk`m z2QjBn1Qja8Rk4aS7xx8L3$Xtm!^Z=xb1<3BNqi}DuZ@4mvw~$l#A6qa1eUKet)s5- zv1x&|-ZV+1Hnx$ANM$tOn2OB5kIfk!$J3-I50qVqpRfCcohOa$>s}P6oad1=qqtAO zq1H0ljlwjQDK@}m^9{o6&=r%zx&O5L006%B58gy+m7QlPq!8u-;VS zoj3pjA#vaVcqqhd>{faBWCWU^QY`YL?NWCu7q!?bdk}cd_JSk$jc5F6tqcagT_F6RG+s z9Y+~dst~Sy9$=keKKD6JFU6JF#y{w3#X=uq)5jx*<(p7zscS-P zSz;}oXf2enjWmi(Bz-!lGV|)Y8G@5^qGNF=?MT96;Lq)e(##H2oTM3@=&>-vv`2y? zrG(x~c$SF_8=!I1KZNN@W2W4v>;*+ev9kRGvtQ`JK|pIj5srdK#Tw;dE~0pgGKSlj zqtybQQM3TJKL43Q-frn|(o(B?-CD<;qII9tv<@Ls f+Ja*(J;oCvxp+G5X`)5Zqj3V;bO%(k#_0MB5}31c literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Flyer.class b/bin/jake2/game/monsters/M_Flyer.class new file mode 100644 index 0000000000000000000000000000000000000000..13408f930250a0e9422a9d3b0588abae282e55dd GIT binary patch literal 19183 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gladiator$10.class b/bin/jake2/game/monsters/M_Gladiator$10.class new file mode 100644 index 0000000000000000000000000000000000000000..b13d7325745e424e4509ea8a0a5d2815f96fa8b8 GIT binary patch literal 1408 zcmZ`&4R0Go5Pch;eYJC?ZfGfKp$R2`-6VD6@R>BBX%YuR92%uElt@??du?xXxvTEh zAV5fnzX1{gAqr9vrK&_!Rr~;c6ymMVvMy1vwL3d=GqZ2z&HnT6UR|nzL+*KQv!1;vVy033_mA}8za_`b#AahOmN-qnf z3dOpBwHmZ!4k=_Eq>&LgwW)l$)jQae;VpO1lLBL#LDTi>Zm5htFj~5+B7v#R#9jY` zX;C2Ek-EAjaHddXz-MmBbNxJ=|*?5lV5&#C@9XyY50YQ8hj)ePK=`R|QcC}=dEH2=M`mu*}UI30)ewDL+dS9j;v98BRA7PDg9>#|8w7&Kbgt;GLg-CX*bgF-)R z5UP&yv$%{I8`DIaz>#QX#dD*sgIQc*2M6{>+ZY=`yB$eQGIwKOR~^iuOcpm9H^bl# z5$puLut^qA4ngcz42-jQ-N73MhIKcH=1f&@Id~iI2s{%b-|6k?&}}k%b`V>v8@ELV z*RaGpVz;dzJa9erCGSYnugC_yixnH!k8)Fs2iCz2tR~A)p=^Y%@;Zk0i%+H7^sZX1 z_Qy4nUYp@ZXdO%i?CEZoum*FZ2iDZOH5CC5-`a9ngb(`8erJzh-{tGAm%DQk9-5~Q1oa8Sy4f%*`C>%(|!6(_kQ!&oi6|^plM=) zaQ=OJPb}meyC?EJ&kdCDgM78I(Y4#sR-QjIKX1YyoQ|9;x@x;4-My8z-RJX!$tCGZ zwM>X*vUP&7=Cwr{Ed2@?-7!w8AdzJ-%GMIh#QW(@8ssjfEyWh=p65;%j0O`Ij1iuxEkWZ@A^ zvv8g-9qAG#c1t?+qZZEN0@D<(=w0XB#=?wPCUFsun|O?HH1t1EvYW5ks#93EkU^I4 zKwY%>@@j*o^6i!)Br>}t{m<4lde*`dm?K!>v5IgV)#0doC|fdCe+Lq{j0F?(gkzB$ zHn>Vw?Lb&4;7KO!NG^;hMO{V>+3S10mNS8;@vMnw2-6WK_q$OG&*6Dy8F&M?-Eao1 z2$hpq!m^1M2qz=(u@Dws#7j(kh$Ec6@2!^0r4lEu^jL#Zfha8Q8)4CxDsOlEWD*%r&f5l?Mx&fdiFn>fwpTsWJ% zjTs)f;>^^gk3L4+xN(5|tZ{&+EGzXH7Vn+p*~)FKYZJeEIeh=}hs`aXy?TJxZlPw} z&}@fUE-)$3*GSX1xJch2N8fWt{eS}fh$Z?7%WPNZXTG;z(4t?_qu+)p literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gladiator$12.class b/bin/jake2/game/monsters/M_Gladiator$12.class new file mode 100644 index 0000000000000000000000000000000000000000..9aa79a3f1595b25972e5df269951f1bde3afca2d GIT binary patch literal 1876 zcmZ`)Yf~Fl7=F&OVM%h*LI4Z2+FH>)};fUU{6I>CdbEzz9q|VSiYdU5y z$Ivx4zRsX7x@9AQF2p%v=w>)tFdgG^-7Xp4RZ+4GhIGNzg|#j`Q{LN5HK>|C!)PHA z>VHz2VTe_XAiu;gFg8vG4Uw^gQ^~9ap6OI(deFykq_Y2rVvW+J#9Cx>EE>Tmn|e?T zW)9=!^5g4q4C0uE`zYy1UTrImAq*1$RYO=om4W4@`f-jElAW-{^#3@pu zM;`A8=LBYOqv!`BFesBaPGeNVL!F=-9ZDPz%LtmkWjapXj^hl*HH3>Tr3+U zx9;fl7*dhq$2p$BlMFqSfUDDE8I)@|b>T-qif1@x@eD(m_91B<^mwMgv2s_(tP_hFZE+sE?wu}`GIfj$}b=ENq9M4Lh{r4IxbRpjy z$1l2foWw5W{KlPyhOd^38(DZ;V|X8FaAuk zN*`I^b&gl?Dj`=f4}c@5w`kfm*OQ$rQ+b`^nrx7yPlYIl{Xd<+n<#2{s}r;iTaLFO zs8d2Kh7*TQN<<>X*2L+2^0gRBwN7Ny`nYat*0lrcU0v%fc2FvP!K5Lf={ywf25Vthseh zH*%)jK)sP2cTVmPT2sr8Zn-|~k5wb6x@88QcO1i8w1n>)K2Cv(5>`Y0(q^N(MyK;c zndF@P7Ck$3P^ieV&0pwmbkLRV{hCP2TzUulHDcQJ zuW1_nEmJ1QL5ys+Cw4JF-;tR0Ig)g^U){rlO+2!TN9mTmbsJ}hJ{FrwKXvmnjL`Y% zUCcGH^d(aA(nNj_b2}3)lXRi9hwOJ){b&GdpWMbk6E9E1ns|-#;7$61nb>dcb@!-$# zK@F(!!N{vW$~dPjWKCo@duHd%<(rvre*gLL6Tlqu1~i6=_xw=ISruLrR?Tw*Dg40N zE^auyY;)=Ple1X^Izuw#x9-Z_s_h;wm-!L-Gqfz)t}T}sBB^wNL0|RCB8~`RCZcFz z=-9Gd@#eU;FZ^A;?+Av(mRI6Vf%~@7o0qz*+5yAlRtW2snsN-$ijbRY3_Ynd1)Olp z;cms+k-qI#a;@lMxKp|AqF5HZOd$l|9y0W&!Vsctmt;}q((hvEMZbYQsxMSR({5q_ zgVbEjcBx2hFRx#n1Nzl3AdV4?85m{gYQ!B&+p)H}tY+6tjN>jttRPA>&K)5cT2p&@ zdeQ}jchAIRBQHM<^yPX=;zyZMCeoN9|C)Cq=lqZo01UR~;S%A|O&|TWQXypR}c<8>D4PGLq4$Z)p8Y zKN_*C7}n^w7djc+NH-f!B-=@&RYM1zD#0{Kl^~Mn{6wM=uChbx3x!5*LKEn2hJK** z1cQal1$q)mdWXJan3RdceR>}#rPH{?!_3Y6*T(8~^fj=Wbr33+@QNyl;B`IEGFC|HSfz8FzBt)bWAyw5 DWq0Mm literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gladiator$14.class b/bin/jake2/game/monsters/M_Gladiator$14.class new file mode 100644 index 0000000000000000000000000000000000000000..ec68f9d774934a77f8b280de78467ad9a0cd10a8 GIT binary patch literal 1833 zcma)7TT>iG6#lyRzB`1tfaYch5e=}y7@~NA5VIK!EU+>9GcTXMn_TO`ep9J5?27-xv}^{+6* zr#w?;5kp2p0!fDUdCQdx+fGF`mPN&u4EcGlD(n@}u++K5j0bhgXXu@ey!0OyjWQ%^ zGBBnYI{W%bVMpk;aBKQf(6HRvXd16EwABuLD4P~N8VlFSz9_ylt!hvXM*lC*SS$9g zWYC2-Qh1&Gh?v@f(r^Z6DJFF(?4ZuT3?+VE!v)38)~rgod6mIMTuPyvp(BDaOL>?S zzSPiz%M83`F`SE9rxI1RoGq`R>`tSX;_Fy`Ro^zH2c1_DQ5PYcQp)Rh+-a!Gh8?^hK5lrQgqUIkDg6i$5eRf`QnneY+S z(McxwPT8R_9a@pbC)5HbNm7!`;X^rP?U;t^%BW0e)EwQb%-+!Osmg4c!f$TcqL#rV zrc;<==#J#|q(as(qck&NR8@^Cyjcx%VWkArm!@z;Eo9%+a0~McxfYP+ZhFTmBXUEP zq0Cs&a2t21NB->u$J>$Ruu_N}tt%(IQF@ldSJ$_+MZ9%Uy?!HGZ{3)b!B797QQciTmlUM8hZ#=8cTFe(dimd zMl><-6ViLM;mFdOB?>-{I9=xGtTly*w$X{<6xwN30E0voKrDay8Ih*CLI=MQQH>p{ z=F!nqW#15hg4iv*Kqr0Ye!$)5c(ah8CI8k-ysc@umng(Wl0Txokk`B7v7d4E+a&8s zCcgjs_XGZi5q^sJh5W}MXS9&m$M_xrk0+iYzSn}DXrhLfh4?;-Bw##8X&;Nq|5)h% z6LgaUGsy8GPVrfEa4Je};5_Xw@|)=8w{V5eV}R%&okw^HV|)SE`E5+_JD8;X4DlBD zA{IGS6wy__gmu1*4ZaG=?_ra#!Q<=rl4!s;@HM}WC;S1vA@H_h?m5D;fgc5Pg#`Cyr@DTA-AcrnErPP$Gq65E7K8vXu5x)I%@PHeQ?s$FA%RzlsC& z01^j&06z*b>m-$tV#zx@yEAXzzL`INfBgo~#i4~9VfT~xEV~_FOk`&gg^8AN(m5TT z1j187NAZ5wLV>WI2|Et88*-c&>9?M^<{hE*T7^o#A>^B_3qs*2@}!MCDh`S$5mpB( zlxNe)m5e`#t3VR!gJ>jz3lS^h&kqZFtP;ZBAX9ERs~(}~OYOcVtT$U6|3!2H5&E5T z9jnmqm2sD=`io}_6XlOJp{(Z23GHUKiuBY-4|Q+ZS?jWbdw5{sK4C4x?1V*oClcvk z0}lx~UlBI507liJnp{V*fv(^Ywk>QCb}}H#p6B2(b_mrZnugwjI=MD>v1j24VIu?Z zUl9lUc*@eGnS`ySZ*<*$zn``#k--N7HyD`^vPfmYI#0Ms-&C zI2;90!m6K2J&rtr187CdrDR~`rUE%siqCAP(bpD2IlO%67%Hd_$S z5MNf=cVMa)3750(TvF!N1K> IhAw~q022GZ@&Et; literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gladiator$3.class b/bin/jake2/game/monsters/M_Gladiator$3.class new file mode 100644 index 0000000000000000000000000000000000000000..94bd4fe80f1544b8e341655194962082c6033792 GIT binary patch literal 859 zcmZuvT~E_c7=GThqpYiJ3QY}2ldM& zRyt_RW06n}?q}#2DdKLANnAnq39Hp?4e6_H(n%V%j|Du$s)H56Ql^J9-pxBAYZ4{?61w6(R2OEUVjL57(JUqoF!86fN`_m?=})oM1IBS(x3Kk=@zP2W#Va4(}_+?7q0I#bSg|0-Q9+jpwFVPtr* z=Q8O=`E(gUMcDkY$gww0 zVtl|6VF4vRQ-PO^sen}}e`6TaQ+1G+p;}XF1xpj^2NvKmDBofEFn@=2&ny1Gmi=|A vQ{e_cB^0QPBI5!rjx<-syon|&U?0y})k1Z|t>J*tW|M(KzFq#7Hp$mN=Y_O_ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gladiator$4.class b/bin/jake2/game/monsters/M_Gladiator$4.class new file mode 100644 index 0000000000000000000000000000000000000000..0eee56803832c2437930a367bc1cb13cdd8786f7 GIT binary patch literal 873 zcmZuv-%ry}6#mZE(XFd62Mib}AgCLtOVGC&6GcXr3}XV}!I$N-Uc2kMThiO%Kjnk+ zpotIu0sc|O(`}Gy)};6A={?_fe*XUR^A~^vJh71>Y=061dC>61P&S64HnEIMkK#D6Fbf>G#Z)TC+@d$a zNEfSEBV>HVZAl9xJ?yICWf&zg1+3$qjSa$PN@P|&F79KKW0`QIz5jEiwu5c#*myu# zO$q%I%*8Gqa$REu!p6+H+U-`WHJ*==!AI^~I`^C63C?Laih8o8k~x)9oA4}YGY|7f z_kz%HBTr=94?Tk0)>=k~fiOlIY=QTH7YyT*=g+py)^kQ;%37|Ey6q&_)G+zGA07qa_K9>gr2B_Dk*CAmRiQ*l=_|pI1EbHSlYL)QFYzo zcWhZ-Zgt9>0B8+)s-nm^PwQjN%7i!7WCc9JV^+fgc5Pe%ab>kRXLTF3*XiGmx8o;QCQxFnr3#ycIY1IRlXlrksCC(bzoBk>e zfIvtb_yPPV#BAb}MbwgaJf3-P-puT;-#>l=*hSmJ48!_+J`lTM!iORpW~$I4FT$hV zo0P|r>nz`V?!jePvC)7z{fMNN6awDy$ z18f@BS~SXYp|kcVSLi+$@j>6MwXGS?0m=EXZo0dPp3~7tPPifHS&W=64`6y zF*yg+QK$5Ie0k6G|?jK(rSSndVPu+Vf6d~t#-T0 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gladiator$6.class b/bin/jake2/game/monsters/M_Gladiator$6.class new file mode 100644 index 0000000000000000000000000000000000000000..c38d892277b74e8d50d860a8d97e3f4b808d8bed GIT binary patch literal 854 zcmZuvO>fgc5PefSb>kRX($JRj(UulST7jh^aS1{~Z9zc^99s3jCE7aMWQnsz_NM$P z4uC*N9QXnJD8y{y79(oO`#heRH*aU=*Y6)c0qkPO!wg~Lofyj9urEe393?t4GR?wH z_hl@4N|+?wdg8$)tQNu!v^g3mJ$&91?>U?>`&4OVo)MgS6&KaZ5h|G>|u%J6%^$D04umbsN{l_ zK25kQMWTX->B_i?+a7Ka)(T{oT_?aDtPvLf${i(VGS^)Dr^3Wxxi_%s;Vxn2e{QR+ zYXWRp(n>T=Q>l$jv3!fOK>6RVzs*vhjq*k$*r|xq!mqD=e6}2x|{f2e-;|0f5LI*y* jneZ%4V{;xW=^pMglY9NN=GSMR6~@mWaAUh| literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gladiator$7.class b/bin/jake2/game/monsters/M_Gladiator$7.class new file mode 100644 index 0000000000000000000000000000000000000000..7d7d256b7ad109016317c1b00b6b8718fec89960 GIT binary patch literal 968 zcmZuvO>fgc5Ph3Cb(1(WgwiiQ+K?8K78*zo9D%(Fz3Gwv z!7t##0Z%Ep zAgp(KFFihRx$=YU$0iJhjYQg!RL3J%j-L(qDWx+kJaMI~o-(AXwG#&8&>x5#(#TrK zV1Z$&?Mm@#I_ZnxnD;%wP-^=&_fB}=YCpa-)W{7PD(ytA|4V8zWE`Pd&l#4hHOfEZ zb&pG@-c^Aso#rC0G8CMP9(uu45`yUEm|?Y=EFcE1t$M0id!5B~teRLMbqN7++`<~x z8S=3nR}Ou8lq69iLUdW&z%3Iu8P*bHb2%1nW0S$;?$F~7HO^XDlubE*X%GmhbVwK7wXmn}OPBbfhciOq4KI;i zJR3c8S8;pX;ivHwb6tNL*y4q&=Uhx|(!L%OEyIztJwK!|b%YxEq}FOlDS|_fhoK0u z1==H8P(&x~5BVl}2V@!9%m{J+KhP4c#ZaHJsSI}Z&ar%s4ddN=6!rfXY<8ac*CT_e&~ zB2{30Sj?v75vVXHDzq{qiwhAg?nmnO327j;o+W%elK2phqPsGk4f=9%5A^#R6~NVL literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gladiator$8.class b/bin/jake2/game/monsters/M_Gladiator$8.class new file mode 100644 index 0000000000000000000000000000000000000000..c0bd301af4756e7cac01cbe2931224fb5dcbfcb5 GIT binary patch literal 1266 zcmZuwTTc@~6#k~&c4=9p6c7Xy5Y(1ixp+ar3k8bB)`%q-;Gquf(2m{i*4+ht^l$j) zn=d{nF-nXvCcgQbjPYz+&0^SO=j_a$%XiNA&ClOoz5$p;Mum@I_!+N=*+hv~MWSjN zwj(S%kYLC+4jnin8G3orU<0l6(V%a2CBP zdI+NjM$<{dIrLG3RcR1V-)>6z{t5`=JO))WVutGThTCtVTRC_D9|u- z!eMBM?WX97Z-p^}ODaYQswXZZ_cUC_6)IzKqgWqmE{r(FRg5uodr++rX-@>NnTCc5 zOj7E7X^DJUQkDKwo7_#M)A5}U5|~jj&CvN@wj{TOM%tL8?n;tq_fE>yNM2TJrsd8n zglo8=;yS~iC&_7iX_&`N8jfuq7{z=+7yM9I4U{Y$#sY4uSY+t+q&ZPa!yViu`s(ov z1E+SDPS+9LtD<_g-Vv!>cUiA%ELMH zz$%E8bk!U2+>a?&d?fKzqoA8Mi7zXhvPraQX~PiKvd(Q=*rWnVPS+0gm2L&?Rocyw zWn=?mpV9JxK71r6S5iKJRiMz%R@!R~C$ep{Bf+4ZRyV;USvP?{8hKBq5$&QKjDhiqNY^ngw$z?>u!&>D zUZd*>Q{(<4T-CJJPq_6K9nFJ#jRWPK3#i`6n7c9)5%!!eh=mzu6EzO;Z6nDJvCdu~ zOZE|aSw}n6K-5G_*szQh!W$t@TIwIFYTqfcg^lCKSUG# z6F#WXnE2oi@JAWv_Jdp_o9vyPotbmaotfW%e*OZmgKZyEgtc?gmphHFNMs{Pb#7#q zHxApcV$o5;q}j$(A0A=JN!!=vxTkdgMMu2lbi(vArImS3DAejF1aCL($N&YDLKHDg zm~AO7Uk{Q~nH`JMSQ09&G!pTN$dvWRKRwe^Ibpr!a9u5_Nho%uIoKmqYjw`Q5RF*q zZsW*gN_U$xxWTO5$sO8>j3u)cnLzgm3pJNQc2s2ArdfYe!YwTLm}h;CgmFB?B5o7P zV?|1zrQ8-5$cZpq3Cp5E~Y}91XHeYGVs|Lb;63xOXn*qz#1NC>>;xe5vfD=A2!4Y#Ysu-Pci^ z=G^E*X?kgg5FThPv)x$axy-Q&-UMDT3{Tzw_I>uAuqC#|tsj{A!XHxz_zc*B-ofKw znf-8-#P%9{gzK2)(*itVYXJ(CxzB7y(Ni^c}0- sr%Q~HgbxVl;}BiK3wg4@C;$Ke literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gladiator.class b/bin/jake2/game/monsters/M_Gladiator.class new file mode 100644 index 0000000000000000000000000000000000000000..7aacdd1a254543d22e4aac365dd471810f1a6518 GIT binary patch literal 10949 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$1.class b/bin/jake2/game/monsters/M_Gunner$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3c14b283b28421e560aac0f8ba73715f2bd91e6d GIT binary patch literal 845 zcmZuvQBTuQ6#mZIQPy=Z2Lj^638)*WjrcfYqR2>-K};Y#__CDs+FjS(lD6|#`Jg;# z;)6fHKcP{7hw-!xO+dIB_GH#?zmAGLSK$(aq($!cUt}^hM&lBrG;teE6Mf2d?t% zqa>2bZ_nZyq3UPud(sO;9FCR8B$ii0!g4d8KzOpB^pbY#bqUw8Y+#A7kTbB)U3uZg z!omt}5DLEJX5XM*$|UCL`!Oblxm; zY)uX^RyZQeVV>7i;2~owpw+4$7$)>o9rPnd)h?+uEKI4dSb)=@dXB~I;yG5WO8FBS z`uj_r8XExpM2UW(%s5BCGtH$5Z>q@(xQF|!s-c;2Ti9aMdAPtfzb5acCi(db%AK?p literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$10.class b/bin/jake2/game/monsters/M_Gunner$10.class new file mode 100644 index 0000000000000000000000000000000000000000..3c2e87a3687d86259dcfa71b40603ccc27bec994 GIT binary patch literal 1077 zcmZ`%TT|0e5dKb@5?X>lK|n+#|KAV{Y5$|x~DBn95tDo&7R%;_VVqQvyYzuOd+R1VHkX2?(!+aGArDucy1uL z9~kR}m8$D}}5vuwM&3ng=poEe(tY}Xd^43T6i&!8@OB_2lvF&$Af zF|@7OE`M6BY;%9p+;%uaV$Ca>PTurwsW&cFQMLny;k8h%e-)Hrh+15%E;Do`Q{=sG z8jk5&#)j~1*UB`bgQ3N$)n6!avqb&`?d~%4B*WmmWEVw2WKz##xQreR-Bej9dBd)w z7gwmQitSQ)%2rN2Jp$Cz&p;g4FsNaGp`#vG6}Drno1#3utYZkn46!^f3eVr*f}uIN zm7^z>m-%k!7^&l$2Z6d!gCts{DXAlcQSz^N`&=CE(ZtxQG~CfKCJkD!zvGxzAnyzv z6PTn#Ec z>lPg^AcEJqD0?Lh#D9ONtiM);L0^?SyyTcczyqR#Hk2le+DV&9x<=YGNk%d{`X0@1 z=tm)5CASLweuYZL7Si>)6UkQ67%riWP6;qZQUXL0?XOAH!zDVDZ=ul0MQ8$@jnJ0_ zPiZilK1NrfkKU^v&`-+s#7%l{Nu^yo!R_?3W2B=;CrGDTPB8u!Q|Wh@RbO4?8<3?a z-_ff4K%epxL&_OOm0vKZ<(Wvmh3b}Y DEK23u literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$11.class b/bin/jake2/game/monsters/M_Gunner$11.class new file mode 100644 index 0000000000000000000000000000000000000000..41dba44032cc20551107e47fe283842bcd4e348b GIT binary patch literal 1817 zcma)7T~`}L7=DJyca~xUsimcSH7yB|tUyauD9TqLO3(_WDy?yo9g=OcyO`Zj^`ci^ z$iJw^3vZ>Tv>q?~0sb3rJs$O)P2en$3vxLyZnr2xvwzP6xFeKLPidNs&8iriAl>xVAI1D4}zMDF^Gs_UH z3b(M#(3j4T^}eRoHLI#_x(&ms&PH&NAy)OgFX;wd$Gvee?MD{6QE^M|?ElpjcJi6+ zD3W+Hj7#(apObAU1((rJY}ABScWVr+AkD8T7?A2%)hL%*TTu*RIE*2NULVRT(Z8rU zLcs_|8M>+l!xg`GGCn24+_M|f?+8-FtZ6tEwW$lut>vC-`!U=^I*hT?;W~9tK?dXG zj$=11-LQ1=4MS2gbB4uCL4v)dU;;TJ+%snw=*VHAkk1o45xh;|Gb#FYN43k3Ma6Yg zdbXpMZA+*W9Vch%Q!z@sTVYI}e}0i(qu@4X7$RG>hW&KaC^KX`-g(~RLP5Il4nwMw z3yxVbiKY`TB6yEsw38(TNuN5glitoLxGSBCdQPp;zKrbq3OQkv3WXiP5~>pFCpWVW}_i2S01EVcSL>n z4CZlV5ntqNoyyFnCK1tGSF1en`bFz?lvR7SVY!s+J9#P>i=lf{+7z|Dc1wtD+Ra8q z7`f+rE6%{Z-B(K;^C!7ura@{^+p z^tO(&?+8Fb9AsajkG?BE;ruF}Q!6VEc67YQRIRb}m=!F)lx0wwbAx{Q{7bqU#o_s&|-v10k zG#x;kU&94Hh+aN~em;z=G#}(6NbymO@#`2TIYH|gp28fzfxG-B7WfzzX}&_b4W7n5 zp1~H$2Yeh4c@~d&4uY%L}?p-^MdOgCF=EkGQoKIc?&ICT!z@$Mpd| zqZvhrbf42q2KE47pr7I;XFGUEe>NkS!z0p#@Fi)x5&E0DWIP`K3w;qfQX*v+zJf+F QKxG1y>5I_?GMx1L4^RT6C;$Ke literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$12.class b/bin/jake2/game/monsters/M_Gunner$12.class new file mode 100644 index 0000000000000000000000000000000000000000..b671c1eaa57f04603f4ef19e817a3dca6a1556d9 GIT binary patch literal 1464 zcmZ`&+fp1w82*|b7dK9>zO zpR3EJ$~D6vPE-`V;nfq(t_E2E(~2+k^6SEvY8? z=?58{#W@!v6rL49=Uw1DE->_U0@A^5NL8^7SubQRgE73|Vw~Z;W$Xk-;6+R@xKi)> zvQC+^QU;TF*~Lo?XDqEEwPsbuO5hS+p*-S-_I-lb-fIUkO5MJOX%|xrgO-8zqrePi zN&P_jE$RU)WN`&K7jq1!+Td2A{ajh^2wcTA>T4teFKniLE%Yq^Nu;4Kg9W_h;!TEe z%f-JMCGa-hVd!u3s2Hh0dgOK74*EGJ3UdjR#X3H zu_~};YL`ujyPj;yx-z9(7bu`eDf;R_QH92AXQ`~}8{)-jrAm0u#k&j_tTax71j?pj zPNJJ+e+;(;-Zz5GzHG&+EuF+2fe*1s0oL_%lrS?@)y@4dG7QV&BiwUA6Jk^11V-Rv z+^4jBBB}}!oqYAbbTxw(D}R@Uz|Qg+ovHGhiL5m$a=$ZP+0C#O)l@;70qlP^;B#ht zXhhe8njgkAJ{6Vhg&u<_nfYJyWgM#*7eOpY+izByYP!30dYyJ=Bs0IF_h&kEAxmqP zcJS+P=&_IPq79lPnRSk_Vw4YY>j)cS=NOekd_b@*=dp<~&27$v#TRjkFJXW$V}jqr3}3+lU&SI{ z#|AH;!i(7E8>sP8n#4#u&`uH*G9KU|rLj#`DT#s0Wc!me{ZCO%Wec=^Mt_!2ratuj E4WAuLW&i*H literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$13.class b/bin/jake2/game/monsters/M_Gunner$13.class new file mode 100644 index 0000000000000000000000000000000000000000..d23be2f22477d486d17844f77c3eda06c2a0c773 GIT binary patch literal 1012 zcmZuvTTc^F5dNmyvb1cul>0>iL1{s#6mJQ}M7gC2C7KcveQ6Hc({}B4mvpy0B7eds ze}FGOsHrjW!5`p{Qs*oSF40Z)%+8#d@B4OUe*XIY13&?fb;Jm>Z$wiT@^#UY`IhT= zzHEE>Qf05>II_LCzM&&dn2IFrIR0V7a+=So;)Ih4Jx?sh@}Cm4Z0?8<-*T%m1r139 z3G@&K_AN&qbXv!uow zROD^p)bnM(Z8`PLUJMZi>w*4CwPQ9b4cD%65#u{e!gw~yAgh+?SNzS~>m)`ou49Za z98s{xeR(cCX_&@n@pi~wCvGH?^K+$-N|aX)A` ziFqvOxW&DR)P&*;EaEnyFYJcp)Lb4(R6*n>5U_-tjx1p!0(LFOz_Q{`o`{Yom53yk zaM!>p)(E<=YPP8JFsR5HJ!#jt*HOO9t`X8@Uzp93I0>hiD!ZMwDR(V3=k(*CJ4_ZU^5uew+n`u+CoD^@-ra}~k)IY;6j6=fhb!y=)*z>xM5 w3tAZk?J(dSyTA^4nFV>=W9D_Pj3c(t&-H~s@dn?i*aJQv@tfi-^-KKx0ewy1X8-^I literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$14.class b/bin/jake2/game/monsters/M_Gunner$14.class new file mode 100644 index 0000000000000000000000000000000000000000..de1833369f215dad93c2f6b9ff948d1dbbda667a GIT binary patch literal 1027 zcmZ`&TTc@~6#k~WWocPN3IbNNpolF9<>s}-M6MwzCI&)8&}P~W%h>HK+1(m_@fZ1^ z1~l=(AK)MIO+C{VvUu5K=j@qt&UbF#e*gLP8-O`1T8J@ZUh$fk%R9U-@^w!Iq40zJ zW@){ll<>!97c7_z>4?*+3bzlXsy(jqBXVZwSd>bJj~I+>Zim5K_NpQY0|^^(bTIT3 zr4mmX^|J7{dD#^VsiIfm?hf~**4vk6cqjvg(PAXmzX~ca#2pcCtT6OvbL9P+=UuLx z{8s2oVx7OC z%h=wUxkSs-rg0m$bVxF!g;jZ-J0gJ`CM`@b^hNTl(<+yEAZ*;m6k#~>k7D(%OR|3C z`MUQc@|d+SbH3PfJ~pvso-(^MLZLz#zWwhYH30(Q9?){4^En+ffoypVzarM8CPMcq z(Wdnpi7KnA;(7tCaZ`kcUe&@whT%wWe-VPg-q1{4c6ktp03#qC(!|g_iGQS9q|K9L zB;ylb(D{)*Vo1`NBnjggOfq(nZnvCBc9TXtLJyr9V2Y#$Fj5ykkZ6T#bQrslP~$8# zg}!#EOYoEi*~w${?;a!F`{UQU6QoHUiSN&(#>!78<0rWJi99}I+I)Y8KR|yFj6L)i v`$!uvkTG6j+$c5k4YV-Z`3M~gxI-BY+-=6+!+nw_9?)5!H%T_#06o6}&-vlU literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$15.class b/bin/jake2/game/monsters/M_Gunner$15.class new file mode 100644 index 0000000000000000000000000000000000000000..95a466b45ac413453168b7e9ee3220a1817a03de GIT binary patch literal 1038 zcmZuwOHUL*5dM05V3yrM5KxhzxPY?DYXrm>Mq_|AB)eWPTsO^3vy99GXL>RC4?KAG z=5G)q(RlD`;>llRtezdsM3`i|s;jHM`s%Sie}DT9U>Ofh6c{F6iUYZ9w?!cBAPN&D zo}*f7?L1q(wo}3-TrqK(;X;>EM|r;8 z@OCYX;wsf0i_ndNwC;NElV8+S`ucDU6DF=xmAOK)R2FWaLUd#(gJa@7OxWf;$8J<~o5vzTKT%(@dqN3!L1oP+Ks^-*E7H(_AveSuU87dt}E09QkkD(}(63&6%5iXTrV0DK6ZEb6c!))xO?Whww zvhL}{=>NNTi+ZfII-8;6M+uF!Db;@D(qOmrUatEhNn}FZBgf9ef=%CJ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$16.class b/bin/jake2/game/monsters/M_Gunner$16.class new file mode 100644 index 0000000000000000000000000000000000000000..88119dada804de9315eade2d99c57dd57a8c1ae0 GIT binary patch literal 845 zcmZuvQBTuQ7(I9GDC;`Ffq;ktin@Wih>0&VCW?$K8N>v_gD*?juHALr?b3F>Y1H52 zgYuw>5B>mul<~A1q(++bo_@XGIp24`bASK&`3t}f?pw$Sti5&na;N6G16dmcI*Mf& z)ehSGBduk)`RIuSQ(z^Nw5Q|ap3?p2U3bW2fvKlTtN59KQK_B?n7ct&+AvUXkjIq3 zY)ff*I2xSF@Yp@|r9inAbX@<$4OJ3PewuMlMFJbGOs&frste>j88=@FEL5t@e&^PF zS9`UiI8@rJPveTfjFqPPv1DOUU_MiSpHq3^ zM$*ADt_kEk#aUzplCibbU>JmnOaa$%!@{b-YDVP0LpZpJH32&cM!K7}C?J|PHgMa* zErI0>`JVy~HgSh%Nr^0S=~Btxh~qqvaWCi!IL+if?D}pL$q4J9+q^_bSGvsDV)U3Oi21D_nEu9(9Bi&O5ypF% z+$=J7#!18yBf5oIu8F_{Vj^Ia=e`og^h6!ThYZ!Ypq4Q|p}wL3%V6#d3)}fKtT?6O zcdVOVE_BLl0LDiYj87;MXN=FO=Hi$)(WCy+|VB#O95RHaA-aTD;!1D8ldfGQy&AyptG#82TF@g1*;oG4!ToHMgC-J+~5AekGaCPF7vl@{bOl)DaOl&|oy-2J>axT^TEw zmuV~zJ!QLg@U(#JNn`{f<6gmvL894!hN!^qY1_4Cs;fE6pEq-kCD1YLWCc@a1orkMXuW189n&o(=K|k$OQTI_7l?)Nr);0sX+(Bc z1orndVp|0}A7q2k#9}i#v0ukN2G($Q{k?(v5f=~)?cf%7H?V_i*-Bsr7EzjU5D(}$ zBoJ@J*kWYhL3A;kqEE63Ii;Kq8+Zsu$Rbm4EZ(wfDHX%RcvQzD0_`DKHL#sz+6>CW zXAJZpAz+Lt^Nf`bJfBW2Jxi(ZNn{jipMm}ws^{A!+ik`%9M_R#4h_*Yu$ywsO4-05 zhRAANpDik7)+-h(R>0~mg@HY0;BlN_Stqk+eeV(@nDeTBo(Z*X2Chf%e2;Oc!^Bp?)2|}D7Y~Lr&U%>YnJ2XNxyO> zBNIqb8M>y&h(gC29bpvD8JJSU$JT7?YT2?&;F@IOw9}vnsD=uSK-X0t)T1`bmRpN?c5*XI1ztJeHO;q7!|96Ztz}yOHf-m?38s% z!`uaTt@j5seapix#JI+|L*77yFIy-Zp%M31N-P9+b5#HX+!cWAX#0j+=&sNq-)wM| zo30($6S|5!XyOC>9sN1FAX{b^BK&JDv*~T}%rvR$EVS47(e`qr^`9S7QRv#@+Z z52fybctmXAXejl5hk;Igh`Rm_3{!Wq=F%J2HZU63I-Utt&nkI5u4xyKhlF_+EaDpX4X_MShCkp=_Xu)a3;f53tBTFvfA&v(`~Uy| literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$18.class b/bin/jake2/game/monsters/M_Gunner$18.class new file mode 100644 index 0000000000000000000000000000000000000000..6ceec3001643b669c52eaf21a149a6bea11166a8 GIT binary patch literal 1550 zcmZuw-BTM?6#rfBCR@T{Lj-GREnurAg)|Z@#Zs#j2*wg@OPjIskl7|T$(FFo?A}y6 zKJ?8u-<r{?6~5`_I3Rp8&|=s*WCp zkvrzP$Yty1hRAL>wkL(_WsBvdmTe37^yG{VjbS(xv}ns44a;7itD2h>%n-e3*_OP- zz*FfGgEsF}MGPFh1|orKG;pT0Z!uORDO)feF8=<63pg?!{TWsUu50gwTZu&Nof3VPFzDBDUi%*OasD z)M}oPG~l%W*jon9VVWkpRKDsucL>3%({d}+P=6Q1T0UJ;P0Sd08y6U20nmA8^B#ll zhpB*zxTNEq{j?W@H8k)p-V0-~Tv4v?P4wiUlT-v03I%@;J<+UD`o4*E22K;8skzjW zUUS?}Ot(rNqN$;pG_4IHH|X5<*OvNPm1bqVXm0w;sw-Y&LC<+hZFK+MjXA6Kk(gPu zD^16veJl#uaH=|17)~5ce6Xr?WI=$^uV(nTU$Cu@o%BN;ifiz5$7 z=|PO1F_PflL!*~{WE(*c$$qjJUcga$ssb63ssK;Kw@C!)syg^qD3y0p6L>L5We*62 zDzO{=D|(CfUAv{xKhk%tc)(scU|-M1f~{%_KF}#_7O1vxCe~G)KOPHl{MkNE_$JCz6qPZlLF*p=cYk+Rv(M zpRMZ{B=rZx`Hz_7KjAWefEE4=Zt`uI{2>~A2a^Aa&-m}S&)fKd|A8<0V|>m3#5bgW z$Dd$}|BY?_6gwn;I4>u9j!E_AiD0F{7BJmtt?av4Pgs)(kq=q6r NKcs(*AgL9g&;R0YRM-Fj literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$19.class b/bin/jake2/game/monsters/M_Gunner$19.class new file mode 100644 index 0000000000000000000000000000000000000000..76e1eba589bf804e9b4d1c634877bc61357bca10 GIT binary patch literal 1139 zcmZuvO-~b16g`g_7}`z+0ijeB5YUzi!-qzp2pR-JQrv(n+%!Y`Xh&w=keMloKf<^* zCa&GMP@~bfaH)}KjQ_x2V!UrU=tMfny!$@xJ@?#u&++e%p8(9^wuUx_;fLk{pEGKv z!wtt3e!xB7*eY){gy7!z?1BcBAscgA6Twd15(jsx<{>#VbSzoI3YHm^Tz;29U3IHG z2?Yrq?dV|WDp`WxYdCw{+cEcS&d^hGE2h0`dX_v#mugVAe1_3dELST+MTYho4>s>I z^yTv8ePkN8DQd=c;8~(p?8I4ybS>mxHiN*d98d&-3$g>bI6SXfm7p9H^A8d@hXD=! z#4VOSde@P`AYpL9okx_l6+{x}aY4fnLvIXVgSvV@uxuR{F-!;^@ud0-Em^dJ&2LI( zqdG2Oj3E{E!xH;04J95Bd!d37n7|bcml=j)Y)*AkM-F+0Ow=sLJ>pTv%9XlliT`SK zLI;Unz?6oo6nPq5aw`WqrX_N!((pVk0vVXZ4CXYyv7>cu;q%4Em;&{i<#HKKC&KViVGkD~XxT8tvxEGI=xk9-Xgg(}pCi zNwQErL#4+Qo%N;@*)*M~ZgkNq0j9`G0Hvq<6`5wZM2GSv7OMOW?Llu8`h?&q4VDUp zx9IzT>@#%JZsZNd-(m6vCO*J;+=uH=pP$^{2=CMXoYa>xbx1i&H9`4`lyZ!W@(p9k zcg!e1u&DeDdGt4PMLZ}g7BNUniiFS(B{Ps9prx>cTUaKm(!78b`jg})YozZFiMa$_ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$2.class b/bin/jake2/game/monsters/M_Gunner$2.class new file mode 100644 index 0000000000000000000000000000000000000000..43d4dbcfca58f3d9e5911540b8d7622c67a64043 GIT binary patch literal 886 zcmZuv!EVz)5Pg$4b>g^fNDGwGmH-8kh7u_pgOH#!m8F(TQ4hUDZn8KF&bqQUd=&@i z0VEE50AB(EegQG-B$W}dV4dgH$p?N;EAL~9hOM2k3S z9rX^zN{M*8ZNnmLW^(qG_7o@ief@0UpYx8e@I)%9pAz!*#tFgNiw43$9wiqAED)9t zr4ld4qcah|^3Os+s2)arKRoecY2xWeOAlp2s2ygGnsbP0W>1dJqu5ZFa1)z0HV7LTlK(E|Vhgtjhvx z`VNbKmN|AONsNme5tgvbt0CBBGz9r-dwrB$pp~{hLDz0XbT0BR$vs4K}e`As8Y(MRS&&bTW8}ean{J*^s6`k z0wHnW1Gt0WXArZFTe&KhyyNlAd-HZ?e*FFR9Y6=$4rUnE-tv*?_z@oqf1IdHi!}2O zg4YwJM7r5|>cD1LDJAVGeKeG6^s>+2Q8L5qbE%|$!Cu-VwCF-1~L^vIOI|hiVCO^!&0kULiA;*1Kn+(RB;na4w|H|B%z3VSjH`e zTA@g)K|*aQ6O|%FSH*4Iaj?p;S|Yo09}jo2#?UO}j*~NSNps^;g*2%4$`U#tYHS)b_ z64`n37_MP~PDAjRtRb-K*FTV%!VNpDUnQt@0j=Xk0o|o+Dg$r(Ga8?;@&)Vm`wNb# ogx_$jKRHixnp^M~Ne}Rlm@GWXF)g&o+B8;Ri(Z#vMi@Q+0J77&xBvhE literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$21.class b/bin/jake2/game/monsters/M_Gunner$21.class new file mode 100644 index 0000000000000000000000000000000000000000..585b33110dc7d9b8f4f19de67d7e55862ed3c84f GIT binary patch literal 1165 zcmZuw-A)rh6#j-?SXdTO{y~JIpe=uuqKFnj?$%0+x z$+9c`fO~#&E4xvVl6#}683Q`QKqP2Q20KL|OUrrtkb)VS7K9YRB7+uB>@w&pZl0Ua z&|;wxO$_ZBA^C$!d7pbb_P)azIx=p~c6Mz~sD15F4~oKP7|BGq>Iq6SG!}TUxysNL zPf+xcopfwjNNxw7kcD(JE--W!Lj75f9|(_Ub46Q7$|DL{V(5)WNqAo5f^3jZ?6sg9 zy#{(nVMIjj-a;Sx34=>seoWl;AQZqw3xl{sWhrvo35pDC)5I`F48%xR1b2f<{xA@Z zh0D0YU>pfwgyos2E3Y13V$Z}Ft{J$>aIOknA;e@x>|2N1K4<1!zm)P3$8Ftlw4cCNH# zAJ!($+;%Hoj;{+flWl)zep*cwP3@Y@Ij&C=wZ(&?n`f{#)i1H)*uKww#6UF-i>X!` zblMx_&5~v6Wc)3fUy;)QlU9=~v`^6KvX%B$HHd5*?WlWbr&R$=kyQX%$N86Js_6U0|60nD(VL65_p_3QDkJvASMtVd|58*wY#pnCB2=0l@H2; zCO-HF_}^&MN8@QXmKtf&^Y!$e?>oQlw?ALL0@%SL8#%(pTQQJ34POjpV;E`^%g8hi zy9Xn!Wwg0#!y>F@V)k`>(pP%$+!N;&^x zLe5t_iL5{}v#uJRhfyL^#7*3?u})aei2T=riw)c+xF#HFZ(1R>9o)e^8+Qq-8Tvmd zTx{Y#cau^%&6VA>+pShBU4)Ur8=g|O;>(r^&T%-3da|XGg_JM%{Un(uuWVoUg3$0h z4`tjBJubJMT!+0t7$Xg;;BE6ALTY)-?Az?^G7@89>oaCQ@<$F1TZa+!9Tp#!*muW4 zjAix+bC_qF2s~y?1oD-I4-8{^q7M3zq2{O53Kl2SS1iD3uyBE;?ZO4tT(|TIRqOp! wr@{q*exgXfP-2{;->K&Em^aa61w6n*R?VZ9a_iV)w0OP1Hop#^B}MY{7i?p+3jhEB literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$4.class b/bin/jake2/game/monsters/M_Gunner$4.class new file mode 100644 index 0000000000000000000000000000000000000000..a8f4467abfd69c461c88904a0045039b5debffc0 GIT binary patch literal 838 zcmZvaQBTxB5Xb-9_9)jY0_O>ch^L_5L7upWD$EWf^ zjmE?WKY$;~INR%y8f?;?PG{z~|DD<2e}4V~u!n6I7Q^}nJ`{UF#780+B`VV*&4T0J zyRlLt-F)f7VOTBY94dV_kZSm*&p%Qw!^|tGq<+m{x7z0n&VJGt9&A*7R4~IZ-<3+7 zj7JwDJ>wU#V5oPKkjLjdmBufAI(i^8hGw_4*MIbM7%Gv_M+XdzR-2Nqco1_H1*bZd zD(cK)k-?90^}S4U)u#eNt0BX3s|*)?8S0+ywBJ{82g@#&NLgv~BJN`acNuDh7O5^1 zYDgJWiV&`fd${jnjbW_>yKxd9>v+JhSSTGOS7Iu+@ee$Y80(V-I7o`W3P20fV{)Wa^tbRw+`E<>gNO%U%dY*HZ gCbPwN%024g*W81JuSy>&yw9Om%f4b zV&VgsaG?gH@xll2p^S633ogM;_RP-C%r`UN%=!K2=Pv+@Ship=Oupf5vFNmTM>ri% z1)=Z*XM6u;S1I97FIg}d#uGjpD%?Ggs{Opd56PFIZ$&B@t}>)bjguhR3_&m z?zmjFoSo2@s#WR7Rfb$Es(!yI8{|t7gss{PBc&v|XvliFA6Ck*Gq{cs3&T`eB71DN zF^VyUfw&l{njSHd1WH&4E`uAmX<>q4Gy!(O$HpXXF<4wSUEZRu*;W>}F=gQn!(cC} z8%o!y%9@R7%n-{yR}HTdvAo&0_UTwZA2KLo&cZCi#N}N7#%SXn=Bc@umX3EM&bcXE z=p-`rdT?yq*HHuYuI~#KY7>n&5N?yWPez>)NyP7jyx!jChw)IeJ6_kXi%qG=o;%yB z1wA!dj15(Hy?~~+Ey4q@!C-IcrCWD-5QqRpP`9+Hh)&ui(k;>+l4K;)v)|GGg+2^q z>CBRZu?&-p1EkwMCz3hRh*u2JsR8CmYJgP!%4ZV2aE%V*X(BXr9-7CsI5Z%5N`slX zQxr}yZoWN6+C2Gz;=2OwzW<1vHhe|t8y3tHog=Dkn63hh3T$HqgT^zA8LOBw)}my? nJ-|2_LE`~kPDX7)CmSpf#-pgrB|MJ)mFav!ZMrK^A~_^Y`L%)R^RZU*bX8-62T}@nHFgl z9Q0m}l@jU36BiD{aw%s|>7#*E!{>c|M!5`APoRNnd!dQT0*56vJ#+ zD)DMOIuYp+KZylHy_2yQRJUqo>1AiG<$YWoWe8lzh&En5!r_ z)TvZaXByWTYEiDf_m;;)$|tfSyVxqTMPG)xr#tP}RouX$ivu5_=@H4XgZ%R850Q~;8`DY i&cYlju4W(^LDJg9sX`zAiz##|;m4YHATvGMGCE7Y0$HZAzw$mej z00O~0c4pqZotYm$zkLT#$F2d5Vf7gwih9lABT*aq zGK@qJ*4o|2V<|e0Xr8Op6xt^e?8Fk~GOH6Jp}SE>|z z!fPIvPOTFKu5=pHm}4-Vn0+@GOA04oIb>L@q@hL6wWDs-s6Nf%5*7_C5U*6}#BX5< zC5D-Vi7Wd)wIdCb@(^4OmvP0w3d2$g>|Bh6Ra|8-xZC%*Ltkdi9M-UI;2Oiqzgd5# zVPONC40FlvM*fNDh7p%N>cu%qv1dZ&hJ}hsnz6@0AY`Oms@#@^ZS`JAgT?*QL*e!R zLOkmhL%tJnd)Vg3$=J+}KMrj1$W?>QpY6?#nhSyNOWX59noC+g}D7*#U#52{AY ztw^k(y@I8^MoD{vb?t3jXkh}D6e3vMjM?o_rVg!?qx@P-@iy+nZ)+s$bj;)rbo~V= CUd~ql literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner$8.class b/bin/jake2/game/monsters/M_Gunner$8.class new file mode 100644 index 0000000000000000000000000000000000000000..85209736ad38f20dfb0177cc6660c78a61821b36 GIT binary patch literal 850 zcmZuv!EVz)5Pcgvb>p}cLTF1VZGZwvE3i~9NI^)bEvQn;rBx4HBG=wJOPpO~ulqwF zxNrajLgK&&@KK0a$E{oyOWyH#=Dm44Gk^a6`VC+Un+|FWt8arb-}2*N!u^SondWKc z?+;()Qu1{DsRNr~xstOh_2Ed!@rx*UN4X3$&x92EIfK>h9WmJ3D&j6IG(6NX!!SP( zlE2O;$2>g@juXz%8mKTxj)GJezx-+Ik;oW2gG#Oc=;<@mW3Kmh7~0()C7%X<63Ey; z(5aAde-_uMKwPLFrnwAcl#P_q1fv3S%&^$4mf(>H^-%YFZyLCPMF$H6uSh849+q&E zp;;;t@k1I$g4;y@yS~Ci&hp ziR>JC3|BBury+Pm)(}{&t6#`W;f5Wx4;83&4sGFj3EiP=Dg$rxJKEo{`~w~P^Et;< o!biBZPX*7yG`Hk2lJ4UHFIcUhKg#gJWcE7D$(o~7??r4iIEpJ8Yz zmTH%BrWq176%-a2`bS2|cwOdf>C|$?z_Xm%bT@h#(zUSo(i+uC6-8ovBpzB-tx8Y| zrgzij3!^JZ4B&1PcTu&mg4$jJ`!PtJ*Ojz`Is+?c^MeA1v^v$4ua%-Ftv)PpFNVm7 zx;xmB&IzpGddUxDps120?!&N&qn&804kLkMI)mvqEXQdzlXw85CPo#NzO@M z2^_~5!DXv;W$(xx>PohrgCFJ|N6y5F&fJ|w0uNz=&%_8 zZ8;TchD?l^86bs6Kn!}6VQ*AmE3oX`l2sOX3^Yo^lTI~cPEq&rxWHLF!N6-4!+|(f znw=%9x#oI$Xi3as-ozZkp;+JlV~fB-I1itys)l4pA&)0boMYG@bL&5zpvA4a+9@`{M0X)}zycK=GF@qT9??@fY9NSjtGlKmIA&27uy%dbl=79mx}%=k-zOp926eq> zjD}Td&_`F5O<5xbW{QEVG?wLBdx4~iZp*8vyrox6=Joy0SeVl8D@Obnq`@u3dLrv*?RlS)KwU$Y*103;pyvkg(rJnhy6E z+c>g``?v5Q-6r3D55}#r=$<`Q-p1r7c-VOT2KqN~W-PIZ86naiVeuw<+lr?m#U?In z;ZpY0TkleU0i!4N0eUFlvzvHf8>O2#Lb|~_x@xG)LF)s{B_d{u^xmJFfFT@CN@AZ}PwJ z4*xsE=48}=8yi9b*U$*z+<;9d8UpE>m&zz=Pr(a`Z<%IURo literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Gunner.class b/bin/jake2/game/monsters/M_Gunner.class new file mode 100644 index 0000000000000000000000000000000000000000..3258cf75d96a9b2e53f369b1243229f5383920c3 GIT binary patch literal 18873 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 NfF=6r6r^5A-#?<$1hD`B literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Hover$10.class b/bin/jake2/game/monsters/M_Hover$10.class new file mode 100644 index 0000000000000000000000000000000000000000..cfe99104fc86624d179bcc6ccea566f5f26f165b GIT binary patch literal 1271 zcmZ`&SyR(c6#i}+NLzzIL3R-lr3ImEu7FyWvIw|M~O*+Yifj57LzrhD( zKph_(d3EqFIiA}V42~v~oSdBPJLi1&$FHy70F2~i?zIIZzZxuk$f4dCrsNE_ZR}vSc*ZNcCtK-075#dP|Z-g zWZHaXyRgaKHDlA_43Q-#V^}G}HKktpsfxVmF?22YYW)MxI73yAi-j46#%PS3cZ|4Y z*tz(sa7{Zm9z;DuI4{wsv)ss%J0-Ta7@DL0)I4iuL|Tl;)< zbYE$`!{7N|3mlh4M|4Cm6v7y8YPiAB;Hxr6%$PDfuHzPN(>N`@!z}{h&sqAHw&Yqp z8fpl4F`6ok#~rt`hsn9ciJ*M zk9))(I!;6gl-_iVNY_XkCCNxu^?gS0BYh}DLrF!2KG&g=@f_)T*@gsA9MYm@KAk!il7@oLhu4L%1g8=*C(5o02Q#O%M pGMHDgC3HsK#HC)*<`zP{RYY67)byC literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Hover$11.class b/bin/jake2/game/monsters/M_Hover$11.class new file mode 100644 index 0000000000000000000000000000000000000000..7788e6e5f3bf70bc4514fcebfa5e44303a1cd470 GIT binary patch literal 1898 zcma)6TT>iG6#lyRzB>e2KtqTK1`V*n2vNL15`nO=%AyfMR1(+Ooo07nE@WmFVvJUq z@=_W}`C^r2`Jkn#_$VofDIfd+{tEwsua>2rp50i>h6kr=`gET@xBkxMx4(b+6~GwG z7&t@Ey0#(4)Usv?)pBgl7p|w~3-ivFaQjC`V+b=GZjhO^{WFG`(zQ*JWQa~0w&9;* z2n`IbFob6uT_h1gLO}#khSmkc7K>G@DBNYOXbOh(f>YAW70or|xy}sx6~klbU1;!h zKr|B!k+Se}XBavL21$5JQ%%h-t4qFX*yV{h+87cQ8GAuD$XO^@rw1DC3f(CA1%KlI z@^Y)$!IcC$@lXs8Qv3}e)=eomj4r~WA~e&lFtD5y?^bYBvXf<_Sg2hk(1YF>9${#2 zurf#3Pivk~(1%AEc-de$(iojgPQkD?9aqL3M?c|e8D2@P>O%7?Biq_m5|3jbhU5E_ zwNFvOAciO$&#BtFVe8^DL#ITh3BpoVT=&ofjGm_12N3yvROhWjwc!VEXuv< zsZMcSlzdO6XM1YVv4u*>@kT6tEJ;=OR17EXe}0}`qu^wJDVec2!K$yBS~-aqFdf4b!=YNf zs=i^W3r11F45$dBu4e0w6;yvVdir++5BIUXs3)0N+B8$Wf`8 zSFqT8F(#vXMZwvio_y+9U9+^ZknAM|%Q(l7syi_3HK(b58g8h5q?7XsUc>7QZM9yp zsAK9OP-iuko)uh4rBz&v;llp<+Gkk7o6=;eRCQfp`%;kxf+x(iCY$#fkl?3aP3lI6 zCP`fLeXX<+43*mJsQ5M=!}h5qRy3Dh-6v5Bx}^rY^068x5+V|5Vdxuc@*h$bd9)GxHNV z=s)ru&fUhtnFuZEV|VbFqNMI16B>`+LTe_ic7{WDG5SH2bw(rK{`1E@{xePdOuEK- zE)&_qVT>A>ulU!$Y$Wv=Gn7TW5Jg&HGJ%!K#wGAX}$8!LNwLt+yO zu(^R_^f(78zKKKp656?oF7Bb5_C4H3Kd<6A-@*{lVLFfVZA|jZILY6}6u*LL+RqYi zk-vkp{3@1-p6Bo40)Gz|`TG$38rJxSxWqrg75*`<61~Ph!FB#Ac8Gq?uj32;8NT8> z_@3VgK%TDwSqGUQMFDRGdASLVc9c!x6=@d=b|rLCZY58LpmONLB-V%*MVYv*i2p@% hH-83n^8I&0%1jXqb8m*q}d2E@blQ`xle5zGDCY literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Hover$12.class b/bin/jake2/game/monsters/M_Hover$12.class new file mode 100644 index 0000000000000000000000000000000000000000..8da3afa64e786d0436f7f2b455e440dc5633d63e GIT binary patch literal 883 zcmZuvU2oGc6g^JUrA@vdybFq_3uAFe*tJ=*MY^b@s__6t!BVSqB)8qrA4Be z2fdf^nMk%Dwj9_D>zSPWNc#~b@xFdK;HNZWn0qWEsh=?9YV{)qdoLac7daF?K{<^nw>gP~?9$f;$9MlCBZ2C}bvx;<;Heq6*g+;DK6VKHOr1(oU< zSHiBc zOr@!r`%yoP6;=8`=wUpd1V4&IvKMltghCbc4(Nd)9jX5mI}|-4WQ6&hA1HjIi3OKN zmk`!_*tA)q*qbB~UZIF#9t$)Yfn7o)kgJrx5=`hu9oB~oHFrs^U~x)4CIREAe2%3? z{v0cwSNe{s{pC`pLIz-cMA7<$65+h{In}IAcvDSMz+K!+ZIn@?nMM2cRAmPZLYuk` M+^65AEMu3xzuKL<#Q*>R literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Hover$13.class b/bin/jake2/game/monsters/M_Hover$13.class new file mode 100644 index 0000000000000000000000000000000000000000..c3b80f6f5c052c6ec5e0c9a86378127c08bafe78 GIT binary patch literal 992 zcmZuwOK;Oa5dPLl>(q5AO+#BsD5VdY^kv%el8QjkHV`T0(y9k8(KcCsFl~P%K05b*W@{gCSKY?lGh{yt=TE zLZ6Ku^fC-qq!RZ!?S0|z@_kn@WGh~cyL;T1+K!#+uqgwE$w~t2n10q7dKw}uZ!+Wx zMG8LTj>}cU*$I8A8tWMhG1yJreKio=uQe%wN~;#bXdzi#)MYKKhU>-q7EWQ*#0bNQ zE_f%Du2YfwHpXz8CiJ^vkmF)x1*Wi7a#;l1MhBJvG|ITgW0_GS704*N_%%_I zdf#?@otE{s=t69%n(GC$t!)uDy*dSyl@k7j%Y#4!L>w_4QLH81A+k++TO-Z1XZ|xX zAL+$_MbaV-<0;bgv7c_Y#Q8DG!*S{( zDnKw;{DR!$9LAqKNA3vug`Oi!*>?XY6y9Mdb}V-t>Gv8cYHPlv9kL^vI-Dtf@ z=@a4sBqW}A6FAfrvS@p&b<5tEt(aR3 z6$qcUY|EPw2o5Lm0@}P&kx>K@F%UvnVE>Y3%jNCOl5|(iQbP*#FF9qikvCmS*&V0m z)vcz$;8NFK|1M`*AXJlHW0K3c-W#|daRI>s5ARC1JMWS+^S>DK+TkQ*=tAmRAB&IEOON`DP zJfVi1OfTByhSTJbXQfwnDmvEw_aNJMmk1f#mhLZ?g z`hvG&GXr`HY3(D$K%2Q`wg+(wG4U-1lB%;Be@d{!m$j-smis?^5CfV zF1?i5=B^7zV5O9Dp!CTwR--rl@FP(>Hyt9>fq?4^C_!A8wT1yzChZmi_{ z$@pAmC*gS_1sdHn3X{_?i;Z9Wbo4OJ1=hQzy>80s2vi1AAMOh@TW#iEhCvdlL2#_I zSPeRJxFb*>8tuJYhpNwfg4IZ1sZ~bHejMqZ?zGQpxQ8Vdi_}%xx`_K&#(feCC9%3l z*^V-(6d|sLRjj#qAh243{eKQ053w$=Fw;4v+AFcmf6&v2fj+_$7mo#&Z$gcvp7yb6 zi1lcaWm0KV$Wi1nxnQHp%&T(?c*p4^i{#tbjKnVn{?c@mGdoaGlIHB_k<`PKUGxu? zlG$Do=DEzV0gjt@2-B5grti|*r4_W5tsj{C!Ve1`SC1B!1&6^peSeljdyAgHZOn5u zfETm|U^f;%)6B{Z9hO}xwXaJXxLcI&Gn?DM-~NW?SFC);hV$u~F_Tb%XH}=1#aV8_ cF_NC*8A&#tPitCe(>fd{u*KJ7%n0N27xU<`ng9R* literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Hover$4.class b/bin/jake2/game/monsters/M_Hover$4.class new file mode 100644 index 0000000000000000000000000000000000000000..5045da84181bd027b198b97377f77619fce20ec0 GIT binary patch literal 940 zcmZWnK~vLE5dL185|XA+Dgp%&5YQHsYVlUb83%FfOv|MV2QQsR`r5{(FHDkh^ndsZ zym(Lt#~Ba)0DqL@z9ce14sZAE+ud)!eY?N^{QL!=fkOit!}@zZ7LEFlPegs<%PwSj~hS%jk6E%JHi{zo1ZtnHR2fqn8Z1YVC|cKl1y+LJp>lJZ2c? z+pZKR)5*CAPWibf7|Lzm;ocb!TxF+^dNguFhK+Wn)@?dXhWt=Ot=9~T)f&ZK^18?6 zu-=UVR}P!ASYR+mihD1ZN{S{}Ic8X{W`RZDb)sI>ti3aF7t02gh*hR=>bJ3i3PT~~ z;mUzepOFR1cnHqK8rBWmV_3<6-H5Sq9~%q?cLyFHQp2oeVhh^_9x$xk&bl6jjUDVV zl#<>i)L}1-xa`wM+#nQt5-N{uR8>yFnFfK7k#ebGdp7pf`&_*%fclbp*F{|rO14q1Z)lBVlV-D0vXz0h%@%)fR(h?qsC{u@4F)6>7f@3N&|2{TnbP`XKK)wpiLfm}aPs}`N>`(Sd{-!cE0KT2?TI*ceS!D6w-+|5LcH<$_B!~#zP zc+6-3<@&8p3|YIOqtq<4makgtxSh8iP|a)L?tVq%3s%2j)B1SD$SkzrlvZY(W~R+K c#?k{kB&m!?vz|6Oj25>E?C|TbW{mOk2fI+Q5&!@I literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Hover$6.class b/bin/jake2/game/monsters/M_Hover$6.class new file mode 100644 index 0000000000000000000000000000000000000000..9f8943cff9fda1936d7c8d06ae4c7ab04f9ed4e9 GIT binary patch literal 846 zcmZWnQBTuQ7(I9EDC?@ooPgk9DCh>!C7Ad!V`2a!$?yfjgD=aayKHsct!eN0RX(WE znE2oi@JAWX-72Zjr1$jecfRwTeqVq8`S}aL9(G+61nM8;NbR);a;)0pSf@rMY5TbM zHojEJ)(aPoz-o?isLkmx)T7sZ`H@tCxtF01%`1Uovvnrm?8klOp@_1N66ORJx}jF@ zCgXFJoXYb^2~@jrAfq#xgf`AzI%XKA0vp|2ubXx{0;Pd6M+XA6W{ccQ*^ZOp57i_{-l@4eK>#Pp;wG8nOp`kJ`h%y&@zFfcvSX}vGw9+q7!u{`G>%llZteSu15 zDAX4*r;-=SWhht18tN_{2(0DAu78e?b!^bl%OI} zXMAi~;Yu(`5~YnTI9#>_$kUSV^p hvozyoI@Z!Q9#g4^C)1iHT11Ci1$KCQ%voc+{sJtcx9|V} literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Hover$7.class b/bin/jake2/game/monsters/M_Hover$7.class new file mode 100644 index 0000000000000000000000000000000000000000..df407803ad964cecc608b9ecf60cc8f61f5d0c8c GIT binary patch literal 835 zcmZXSUr!T36vfZ9Tb6ED(Tac|g36yQL>uwJhZ++D7)c5*5FUJKhV9TU-OifbDWA#* zH5wBi`~ZF^PDgIm{#LM756dkVvfcNd*^u{3wR(<%dJHE zJmGy5L4^!)RV-oI#Y2Im0_^%hd_2Mm_nR0U(r)hd1<&;#e4Mk`$9U@EiNL~5tToj! zKGrO=7LL+XX=58XjZDSo*O>oKF5n#}qcl|SB0Cj7pZRlpsT|wB4&x-_r5-BNPr58P z&|0OtvCJ}+VHKP>KO>A+PMWdH=p|K9D_cJ>{e^!@@VI(Zl-A)eS!3)^im1033EajE zR||MXwSaQ{&S%P`-O^FoD72QZTI;x%x9+i;+rZ!chS{%J{Ek)U(-mW4A%ItEj5%|Y e+MHu8tz(0vGB(FO0UA_?0|mDD^O&>7`1}P&{j(kb literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Hover$8.class b/bin/jake2/game/monsters/M_Hover$8.class new file mode 100644 index 0000000000000000000000000000000000000000..b4001c6751d985141b9bbd818ada6ae644d18b62 GIT binary patch literal 1829 zcmZuxYf~Fl7=F$nVViJhX@F8nZ(39+g_KK?3gub?sZdc6ZL5tZ$syThFSxtO*gxPm z$8knGj?=L-`oXW30d@S~5Aav`OB~;`8=VcZGrR9O@AY{v`~La&?|%T8K*IoMxb#HU z)I_!-ZI!iM#}Aa}XEzJ$ZbNy4GX@e2{V|nQC)kpvvs9M*q{+}eXF6su&(JnByvvYS zamy-=HlzfSXlFRHVLIx5-7YF`M;0x`klAoc(%O}tsqal@BB+`^!x~icU_6a57iOA?s+_5T~rJxYZp2W-Lhj&xx zMW2Clgf#}IX(ezT{giiANh_!_u)J0u5V)w>XOt;k`m=M&=SrG%;0Ik z4`iSSNeZuG(7?6UTB{Z%f!A~d!>^f+Q@2xi1H%S}7`kI1*Qkxl(pLi4F+$a{R6|+E zVu!qfrMuvVu}6_LFxDEoRY~9`#;KZtX;TMTPUki$Fr}FpUE)Gn72Ud1qGU)VvA76m zfNu)S;5OkP&=%q7j@O{nkX{&n7IzHHF`SJh5(x$7b%Q0whg?;a6V?(;#^<{@9RovD~5|FPGmlx%jKd0{6OGC zJfJYm@TRlp9s?hfG{HX-_y`{}bVdJwO@BfNaFTwQc-nR-(FqqI4SdpyyTz|SQG4tt z)jf{}QXA?rl?BwXDokj8MWA{Tf>8KGpmvf_kCv~jy<;f<{ZFZCZcx?RCQ&m>HR^O( z+Ok5E*ts3ZQf*W2H`hpd+pT*gl{59C5zQ?&ruPJGqE)A4xjyZQO%+sK>Ve2Rj`CJ4 z>HEsZRnX*wBcs2xyy$MwX_6?@oa?{h)Jr;Wr0JU`3OWc>EKlo1#)&v=@p7PO>sdq^r^vR^=hiQCc_A$;Z*lCvlBWVUSN_oX_A6 zzm0i5i&Z{{Eq(_N_&gpFeash7<4XwmG8#mm@)dl}bNG_4;VYtF^L2dB?}eqBiptR} z6%_^+Y+Xt^Idr0)(81wXNBA_z*-61B*KFU_($wrjVu&F(-j{tuu0 z2|TF5XngS1#Nb~t-q~)c*bVcjFV|6H$q4$m}TzQWnl`m{F=&QcNGe{wAq6fVU z0~J^B&E57654Nlwk27Q|zHNEiR^Tc>zSL#Y4H>2@39jRE$_zaXE;k-94Cf0JyJwX= zOEgL~8MvZR?!zf!Y%1+_hg%MTiWcR>b}XNS=Z0>Yi#$NRrYx zhw}zz8O9Spe+HSz;Q}>Wx@~GITUSL~GLcu8X>}P&tKHG>9v%HqPel`#qbI@lWz>%h z7I4Kt>A2de8`>rovBWUA!fn6J*Y-P}AG*F+WcW`P)$l{^y6`IxEvVtqu-1gFkVT`)Wz%;IEK_R|MgP47gs>q54^}-Z40(td(CX1XBRXm2 z$T!HlN|urBnfrvk_w=D5LuZC8v?_FZJVCzM4IYlt(5V3C$tr+UcJLjUZn{E; zwwXvx{Z7qdC{BG%T8IX7#X}5#!^{Uv9Abu?i*Mc{TkN{o!p=v`=?BHnnAZ;!Q6zAJ zDuDJFhV}#_+EdJGHRQBs$ZOjX>u47_W+e`)bewpvMF=cMFxMlwH*k}zj$3rzrhkTl IR6X?j1^Qy(1ONa4 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Hover.class b/bin/jake2/game/monsters/M_Hover.class new file mode 100644 index 0000000000000000000000000000000000000000..4e852fe15990f4ac1c3a978d9d9c34311933a76e GIT binary patch literal 19682 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$1.class b/bin/jake2/game/monsters/M_Infantry$1.class new file mode 100644 index 0000000000000000000000000000000000000000..080a6ee6404907527f4d0b583254370ed2baed3e GIT binary patch literal 850 zcmZva!EVz)5QhJ)ow{)hfi$$GKnbNl(h4HVF$f8@MT(SiY1IRlXq#*k6K9R=O(oum z10WC*2OfZjLj0S!sS&m89gk<`+ka>L`_Io`0CutCVL_nwUXIjmb0Ej6IgWK|RFXCi zyKQ|YwMjm1J@?=Wtmm>0v^gGzdi1(4KQLQh@nxt(^Gd*}H%-sT{jg`crqy^?#4W6PSfRR{fGi$h4YvhK znI5uZHYE?rMTjfn4(@rlE3lD+U2&QK8@Mm9JXbr8&(($G>OUJyBNqJt4?S!Oto@I+ z!n!8FmW7sjlO$2v*g}paRnZwcmS`yi)5Or6g6=A{HrisId%FTy%)5Cwy^yJOJDf10H3Q*Yj2mq68&J7M0<@M zhles(3wTOv0Z!${XPQ~LrQ3h^vecQERQ}6PN6q~-XUrrx@E6=E hXJwX~ajc|AcubOmC)1ib8niCw3T*T78MDH8{RLLexk>;4 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$10.class b/bin/jake2/game/monsters/M_Infantry$10.class new file mode 100644 index 0000000000000000000000000000000000000000..23eab67c01f1df238dfbb654b79914f5653d231b GIT binary patch literal 1229 zcmZ`&=}r?-6#gzVW!f@q1zD9{ZK+Te_ae&DVhxxW2#HJ5T-w_*b~@8^rYO-MZV%x< zAAlc9KofuX06vuQ+_vgquu134*}n6gWq$np_8q_s?rCUX7=FqNVkVa7MG-67mg9=D z6I)BCtQ@!8^6uF5lm?Zd&l8rg+>LF+DlBAqiNYBg=M2km=NXi6WRpQ%va=!x1pysC zG%~cV8kV?UDQ=1K2H!FTLul2`aC4KF4XM|Ss=IAC45O=_TBlQrGx+ktO)WEYh9eZe z!(%45^09TdY*_iYAMI4bsP~Z0Rx*Wj)_!JD8r8504BcUG6_GVEZrY7U9tCg)-5R$yAcCldafS|0ofTT?B6oz2OPHX}O|c_P zhJG*Ksx58GWjIyBF-&WiV(9e%oea|HbY_W}YZPgbEGe73qT{MG21>l*2yBJIuWDeHttZ*CM{1`uHo+fcZKo*9bx9^G`yYu zUNJ-Sy2~?#HD0QpU2xs5lrth}$ir;?d-{{|tjLnEGN$d&S*;0o+s&nYL$ zpr(qz{7O+UYcLU5N*=Ad+*$P&Y64fkDuSZ11R9Oi3r2O6W$bsT%ET> zuH{NU5T2jgDHmmp%fNfOn9rMtGR$acTQb;d*s^)A%G;FA(09j{c5s)$NN4sLq8n~i zBw!$JA%;GN;gT)I!%pi!czgW75e&(aTj9<=_iW{d!D!I1eTGy?PAsHWlpb>}|!g@q|h6Nn=Yg~KqbWAtKWN4?7@s5oYE!NhrnX$|OXl7%^3q<#f< zi+aMg<5)n-#3j2nJ|A_F9r^X_=nJy%kvxsy_?RNm4~nuUHAy02 zyu^s{3Mu0?3dWlr@5Bjq$V)89;TkdLsWOU4YKZC!J;iHur(!qgyhZ;6WvM68?>9*} BI}>L=a39FfkAkFG(}B!!mX|OLnJ5Ui=jr zZ-2oDHK2(P{s8}wZ|WJSxES1I=j@qt&i9?$e*gLP8-N+iIcQ-RdctdBrr`0qDAWTL zX%R++m2ydKa;3wak?9!+HbXY%wy5;lmQ=OdRlZH`46SogNqvjK%H`J??1i8zQm~M8 zkw7a$dRZ!QuTkF+;TqrY1w&>zsBnLshtlZHOIvTrh+%j+#&vv3MTUeYbmx< zPkF)T$}6nuP%5w3hE9eK*{q>lZB%OI#x?~JgQ_v~=HeWpDl59Ii}{C1oIo#ddNjHnC;s+6paz*H^pz7czLw~HgW7dMfEh#0!1)oQeh%gA+N9r2(PufG$ z9nxk=GLnh0FKGKnA1z4HnIZ}61#B|5lkOfkkvu^f!%3v+GyoGM4S<#D_(0+y+@QmH z84I-zLo?`VhWZ3gG{}wbqWi%vvYkJEJ>Nr?)WO8#sm#d6{qe*eE_@=7&zQ8|AL94W zp9Jd_($;Hatv493-eS~xx6jvefZ60DbX>+2Vzh8|KmHo7leBSz&LX`jvY7(t`3=16 B=e+;` literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$13.class b/bin/jake2/game/monsters/M_Infantry$13.class new file mode 100644 index 0000000000000000000000000000000000000000..4c4a0e88c7124c0c7d50d5b9e3d0ae1ffa790cdd GIT binary patch literal 1050 zcmZuw%}*0S6#q?kVN1J+0xA+jOHo?BR={tJ#sE!7iWdymX4oCdN_Up*PD%I^Jb3oz zU850DqVeF>#FKxK@y&LF8|@~Y_vX!ezxR6|{rUUbcL0lcXd%Z?dcpU^qSNGoaDq_A zN<^`<(O8!|T&n1Ba$(7W$uOF6Ta#)v^qS(S$M?ydq4$w5ef5~Zs8qKY%$3j+1sLeF z(Su%wfx0invv#m8qUU_OB^U3UFAS2}YrRi?QETbz!&O|fFiw?bib+%1xQ-Ih5mE$)R6)1Q8lY@r z5;qu%X%ncPkS39J&%96xeV9VkLWN;GleJ3=ZA@c^xSe$<2oFTVYrA{@&$#mOO`e1w!)akyCKwW=rP#qQi^D$#p77S)Kdaany*jVJGxt>Es?tW#@G+!XJ$_^M*74FZk}RRGcyuqqeLCXdlZciu#Jxx zGLA4}oM6KEl%$*PK&I&k91AEV49oPdF6p|+wuIY+cZYNnIlD;uUD9*7hx>_bip~f0 KD^R4aj=nzyyyjZ~ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$14.class b/bin/jake2/game/monsters/M_Infantry$14.class new file mode 100644 index 0000000000000000000000000000000000000000..e790b39523682f73213ceda291230d369e4fd2d4 GIT binary patch literal 1201 zcmZuwTT|0e5dIDcgtn1F0fB;Y66)pFqPFeYhA1wyqJyEssMnCqTlrG9SQQjSDMX2(ClO4-3r60}x(mq{A#|fh!F7ht z0EtZ!XH|E&ieB_FG!+dJBnaTCmo>^2%l2SG=*JBO0}M9vmVdxE@G-OgShFesWAI~swWl`yLDwRs^hH)E71qp_>8eG*iOf6&N zR7_x!F3r|O!N0-n5T>9hn5JtAWUh;(;x1+wBK2}eW9vUL0)Kolx-q9>9`}f-$&a|n z&>z&!Kg*h4KRCYs13XgjkfAS-ywOR;V^9mou2H65Vkvp);^J2b%Xq5bNuyp3WK^tp zaiNM{b$BgUcDT7uT@+;Ww;c$YS|+@0RqZ@a8D8H;|4qiU*L8HVA@Zi>P}gm7_rM|v z)wB@YUNd#a;SPpCqSCy)+TW9@g?s3b&H|y*WoQhY_0YEj;BnH9(KRU_Bd)5EQw)8=czg79 z%U-*(w={WzJI9zk!To_ZvBksOM=Z(jF4K&lmC}4cNcxHh**57L;?g9erx@jKmYZ*IzLuRHVZj`lq zSN;GuE|gSFT)5I0iT)+^P8o18#!2SgdH3CW&UyFVIsEzY6M#7^t7u~wf6QxQ&ZzRb zFzU8+J>j@UzL=90E-oLuAD+ zi#QZ$I-+Q2NNku=+;7ykg|o@GEy0l7uuI(9;*RO>182nBFh0SSvvE5eYD=DH%?Lh_2~HxKCb&6 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$16.class b/bin/jake2/game/monsters/M_Infantry$16.class new file mode 100644 index 0000000000000000000000000000000000000000..a5a7a7f0a9555f090130fe56531b7d8670425826 GIT binary patch literal 860 zcmZuvT~8B16g{`QW$AXMP!JFiK~P&z8!_>v#zc{tO^Pvr@Zd``v_m^~JKOARHU1|b zlm|_G@CW!mG*SP9@ormiO}fd>*?Z@nbHDc6pD$kl?Bb4t3}NH7=*rznTl8e57itsB z$W#s*zCIN?j^1tEf9Sv_tfa#Bb$rxOy8EOh`W#M}dZe_99}}!n`Iunug)QmALe4`L zQ-nfYY58K%JCV_mI0+=7SPz>bI2Msg?6K31JIW9?>#1CmOR5sGZ5jK|2n(e$$G;Jk zK%8s;rKnZo+IOIRwUGsu=|#*MgIewD*zEIC*t%%>`N&Xaj6 zjP$UKD}+p2@ifu`$>ekWW~h*p%DJW|3!qqgPCZwbWc&LZ=&>m^eHoIFBe~J$# z{s1482PMY%1N<`@&o3OOLe$hF6?i4bZRz=~o4Q+;4#W7Suhz+wQVeY+;ilIZ zdSh{lf5a0Nu1bllYfDv11<}QDO165)J5^pdq!hweWcy?O3Zf_rZr)ABclDKLKp3Yn zV4$C&t4X8o%1R=`-SYgJi8B~v2<1eDv zl$#V;I*bKeHE@Mtz=!cq9TSVVMvG`b!l>^$apZ4!<(ImO7Qe%4? z3>{gQ7M$U=hL8*_F@&>L-7bg?>8Y*rubyW;tgNjBMNFYXo1?p8yHQ6HS03KR~C45%SGu5ZMm$ND}Czs|PSc z)&tPGqc6xb(>-)(AAPCXpVV&jv{IiEfXC^2``h*%EwZ(v)7ci;%1n3nMk2@Po0<+D zV<=dA5KSIq>SLiwTMtz`rRNZQN)qL5>dZNctNlqpijgtioV@w=nj_2>Le&&h0ZYLcpcO63&NiK AlmGw# literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$18.class b/bin/jake2/game/monsters/M_Infantry$18.class new file mode 100644 index 0000000000000000000000000000000000000000..8a6ca77a1a8b2e8c19bf2e23843f635026634dae GIT binary patch literal 1054 zcmZ`&T~8B16g@+?ly0{c%U3}~KDDJn1^h}dCI-s{HukSwqY~WD_Ljv<}+>YF+wcW0)bpsV? z8Ai3eMqM4dN{1Iq>kP95W)fjLN*|nfs`Iqvo-$lu__3!v{X`&Dt{e(j+d)g(NFnPW zjbVYpuBYV7v+j`$58NYP3KVyPrt2TNp=bPf)6yqiB(S)f;2JDxOCa5ry8cXHyj)@Y zxm)vH)voR9&{OTL5nLs!7uV2mwRW2w=8!|kW@(zNqaSb;zxGpf30C>UPzS5rWU=}xt5K<|7P#vgZ5NxGxl+8O>z@k7d z?g`5acrnR@#0d+^Vi~tHxFs-~P&1&T4$7zqOk6gs8=T9yYa4%++U=bg@G4d_xFb;d z7u-l|Xa{QsHrG50L#eb$G?MN*SpP5GI>#rH{;@!Q-(1?Bdm2xNy&s%~P5In2^HcaU zp=;*$xwE61eh~5Y_oO}vS^`d8DH(42ZWPG~bKrP#?$KL0mh?09HfaTIdgUudKJsG- zHdmV#Ru&cybM&2l5N)2Gz!em@8h}+=1CT0?exT{68+2H9A~kiHTEtkKsu)cgELE$Y zG5!rRZ!yZRxldU7f|Ym3_njIY>%F1qNh?wmEC)F&kCIiuf;HOXne1c5JVfO`K24@g cW?C33Wto4kr|>==^!ApyKICgN%9Oz8H(D?3*8l(j literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$2.class b/bin/jake2/game/monsters/M_Infantry$2.class new file mode 100644 index 0000000000000000000000000000000000000000..75a27c7c7f4b36f0b8c295134e78647be0567172 GIT binary patch literal 1053 zcmZuwT~pIg5Ir|d2~C4lK1xNzil{9J)#7&@94OT3Oz{PV2OrFY=2EV-H%yW; zJC(iA7qU|u#}yJ4aR>I1a4DNG#4k@6W=ly0?uvG3hqdyX3}!HEAW!8bDv0A23b@LU zjSC`jk8UMNl!y>r2G?-iz&yi3f^0-P78Y=W8X1<`^UnCN=IILxQAly$#4Q7h42A!> zRb_T)VM(!O+kM~XGE~3}?x1AgF2hs;^@`@cNBq;4S`1tCPCZ}Ul4|Ro zg;lIEn1R=qt}R?OQPwnZAG9nFE>?8`Zebk{X%G>RVSeNwn$1R|5$#dHyGL|0$t(CX zEmGg}`hJ@?gi_D_UD!3X4)kV6w!2#)niW6x!pALAT@dUBbfnQu|s>A zfTo7fNleAiw?sfPm|OXb>2u6|LGc{7SJLNLu_m%#QPDpP8T0gMLED6>ZDC5QV}@)& l+m00S1D05U`0xmiNh5_P5&kKjk=1FGz;pVW6jLSB?>9Fn?HvFB literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$3.class b/bin/jake2/game/monsters/M_Infantry$3.class new file mode 100644 index 0000000000000000000000000000000000000000..6516f0fed114887ee2d36df646915b8f9838d089 GIT binary patch literal 848 zcmZvaQBM;=5Xb*}cjf5yuvjY~Dpo*jA$kcsmY5j8q)G7wLITk=%XMj&UiZx17UOsF zL5;@52S0!xia6Vz^^9C{J2yKszxnUZ{ks0~6TmjMTv!aXOFj_WL5~kbFpO2IMUn=G zotC=bN+%!IcU(9O%ekxrrH}hk4PJKnJIZF5*_BG_7Yug2al+v2#a-dSM$tzBGYsXn zRO0n$crKD-ejW*iN;?jDbixy9{A|wsXC1RMccB^n`BhGgRvhO26Vk#8odi z(uq{P<}7YA%*pHoo%cK%PzBKy*~NOEFS;_+9o=l46>%4fE*3~!u74Kyv4ndJrA!W? zW4e<(C>J4I5%=-X#RGxNkhM@b@-Hia~lR74kaUwP)A!!vkC@hAz!D`|#P{yY8W=5A@{K!s79(%l{k-H*Er zeoHBl>_t3HMT#0|_ViC-ywc3ccgfo!%g7cszhm|@eOT~l^~l0Hg+sv-`Tit{>>POv zw@{|l0G^RG0J}2(iOi(j&|#hBO6_TB1$VO2eafab@VCCA`UT71P;)*`850R_;8}0S ioP|kl#xatfV1r0Do{nqkXpnVitiUF{9>t6>dVT|s*tyyO literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$4.class b/bin/jake2/game/monsters/M_Infantry$4.class new file mode 100644 index 0000000000000000000000000000000000000000..9f2ad5d0302d6c642126e690185c161fba14604d GIT binary patch literal 961 zcmZuvO>fgc5Pj=7b(1)xO-tJpDCrj@Ei{mF3qnGrNRbjQse0fNZJkYG;;f6ksl`1$QSfI1E>7!2iCd?f0%0UwLn*q5Oa zL0D^do3hWP3f}BIvS2c-C$f&EIvKih^t8v%DVt&Lu`6BmgdtU_o-&w6eothPLdHfK za}0%+E5(b+_)G*R{LB*!#g^}I@016w_Tx)a4c(AotCgtrUquau^gyWQGlu0#mC`SG z&Es-V>!`q$gT_1-8EiLxK{uF40uZ?zF|1aS^rGiFs;e5+ml<5gs)ZHOmM9;`ZLFch zkc-t2vrk`=BuYexE`uAmW#J~nT7qmQ$HoS3Gg#d1dwf98X3Y#Xv29_CVdGy^vL`ln zu*Ln#(XgB|2?8ON4(XD6Hum-X;w)YCYi20C{$HHG z|BNBuQQR4|`FY&HY{#Djj(G0s78m}^(1Gp{-5g8D^F!)TTd1K=TJ5HkA~^DR7>W>O z&;-$BBHC$k$hXKlB+JOA_r7BO6CDg>Y0r{{Az@N5N4`BxBAX|V;Tj6GYl8b^H9@Ml z@R7_EuGwMu325pHTEtQe^(mXmV0Zr#%a>R;-@e0wK7U5}3+}u}e(F@oF+b=Uk+veK yg7F%*5uju!Y#WoP(8`o7E=07r7pXfSqzR*xA$%>8_y7;1yG`2bw6gIV==ck1dDE!? literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$5.class b/bin/jake2/game/monsters/M_Infantry$5.class new file mode 100644 index 0000000000000000000000000000000000000000..2c849b4e38fd6444b6db5ff1c0623889f1e11949 GIT binary patch literal 1776 zcmZ`(ds7=#6#v~zmMzJp*Z{VaTCv3nMTn$Qt+Yssqz0i@L44Nrl3bE)HoI|m!?e!G zw@^DBb$pC(N81dj;~#ziKa=Bl?rv;1h=1&!d(ZQC9{2qD_wRoI$ip|m8Ah(ln#$)Y zvaWJ<&kaK52e}oi=x$0k^ly&Nm`E`UCA1dZ@T#=ki)Gm$WrptawrhuT3|(X6>kO#{ zudLGOLXUufZic>P+f`SZ^$q2($qh#_WS6~?bk?PB>wBA-3afU&aAG+TYF|LJ3`RwT z#pf6X#>Po~OXeKuR&uMMZ@ZP*131LcYqt}y8ibWl#bk0U>0XuXQfP&<`|%3J@%0`I z;;@Ma32_2c+e+XFhA8{0l1^AA$+!4+V?eL}* zgfdiwqz5N3YT{&P#Z`xrz@s{X8PsgoZPt767{*PEG4v-uUZ#Ftl7SL9jR`84qqdZ@ zCw9cM9Nmi`iam*(iK))mok{{vV4A8K+I8w9E9l(L2t28oSzThQtTw!+TcTu0B{e?} zXn;=%JdJaNgFrikqd!@L(w6k2__MfR;ylBlL?W?JU`~fHwxrXf;hM)K6Bii{#){3* zc5=)1hQI=7DpJ05%h5QlYJ3HO%Xpq4)1D@p43FVx5bth2H=AQEW`w%I(7gqIBN!9F9jb2w-)@4PH8olA( z)limdE3(nv80l57>6cW&);p!|{?3}xD}gwRZprZiS_vyEta_A@D7vol7aSP`D!>S6 zMracv`qQeSyGge*L>W=z^shK@mku0h`lpG4e}ohXGjtcR6473|(JZ2m{@TGLQSG2B z`@kI{vAOmRek)W6GjWK36c2)Z+?T} zSS0U@%CSf%-4!Lhge;-{1ik!I4D!!#l7Eg-{w1dQSGd5x#vK0^i~Kt*@$a$5f50{V zBP^nd{{)Z!j2rw8-Xr=xZ$+8U#o4tpr#w+XH7eFNY&ubiiFX~-QBSr}!w?mG5$E90 k$v~atX&8eChyKDTc9^tW;&6Cq5KYn00q;gSaSQ194@1SKp#T5? literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$6.class b/bin/jake2/game/monsters/M_Infantry$6.class new file mode 100644 index 0000000000000000000000000000000000000000..4ae9cd9e78efba76279bdfeef4fae0676e0c952f GIT binary patch literal 1924 zcma)6+fN)-82_EKvpeiEEti(og<7z!mgTku6kDiOpe(Mkw79U9f-b}E+1-IZo$VDL1D5)8_ql@l){{6*xOv5M5K+BlXUt*XZ@(dUKM-Dy$nR@xrX}?WMG7`VUxS*7|wFC;OLH^ zD1J2Heii!|g5@zb8EM#$MuL;EsqGXpDxDtCZ~zCXom5I*P!>KF3E)8-R`C!+jT>yy zG4kP8(BM3iBt>lk00b!RhBsW{EBfBV+m+c*u+$nN=dW5FF|0OLrgnAp5lG55AJKCjzpdPI}Yk;bzm zQnWAbFwNq9q*28kJvATG&lPW>D!U$V#~3l>RjvB(UC<$K8fk{iRNgAkO^XR9XHfzz zYMR0xq$Mec0-8Xn=naG7NpAp>Rg$`iGNRs=cTn**F&qIp14O|;fI<%|N!DB=qB}^U zsiBHa8K9l04B)A)ev63fE~A65mAQI0Tx+q*b>(xYpf6aT?|t8-r*dpkp})6sEVe}+ z-6HoYTNU1|3Sa9AcCVnm23KCga&>)=>MELoO3=$zamW>0E~C9p?UKs2Rdkc`(Q7y= zNzuKfw$J5{x3A*ycJK5NR~&q4cC5WEsH`F)kEhODLYAIT!j1TsFj3v$>IlTe^vwT8 zAfsHyXq{T!knRflWDZ|YVMWlC)2G(3wi@<(ow|y+@}}&3abmCFAhrBMH1Urxz^@?A zKgJBdhBW^K1^y{6@Xzo9zm6A)f0^IFtNbP|^3U-)(Kq-PSm9sdJ^mH0@~?4=-@>>2 z8{8qf&cDMS{5J0L@0r4XU@E`O0{lm|hyTR(5pCo@vu1vWb?{$UC;yf85PyuX7e_x0 zzZ`FA^pcxIFAcw%wc;${f&Nqy zC~oifJbfaxiQa8IvXLjOW}habS$G+;y93m+FsZf!J&v$;!ij8W~gGq`d;R`nW8#`f-jBtoUqtva`;=( z4utmG2PRV5?-X&FFt4VM=*7w(8bVP`brV{R>>YBT`le?(v-X-tC0xNZ8&?Sn8C@^9 zV$Vb@T`b``!SWShIZKd~w5LX=VU$ppa09D0RtReuk{OS4v4)$3avYBJ;9NO*4sPML zjdj9OCjY-XTx{SD7beXltjv6(=XJZ?v`4WFPPlwo$>()olF$s3#ySV#IO@x;N_tlL zHy00*lJm~4?gwGaCEu537!C-or?rfB0ujeDMjbp7JZ(r<9tHMo_8u}4V`1|%iXYjq z;PC1&!upOpAC}p7Cqayt*yE0(!fQgX#h4J}YSj-6lk|ig){jhT?jp5@g=y*$6C|3d zXIO06XIOUK@+Z{u?=N_2ECAL|l&oJUGtOJTQ_lJ%Z_3FGxQlzKj4B#zS$y71SvJvP Q%yZ9y`}{i`mB{7qFMLtM^#A|> literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$8.class b/bin/jake2/game/monsters/M_Infantry$8.class new file mode 100644 index 0000000000000000000000000000000000000000..fbe48d609e3bba7560a41a1b714c53950f01c984 GIT binary patch literal 1146 zcmZ`%TT|0e5dKb@8d`%uK|n-AL~W@M0WV+?g+j3o^#!Jm^3VzGp*@l&Ombl4jW_>{ z56XZ#J~;B~|IzU_=%%e09ZV)?vuAg|{r2+l@ZEa=V|buJVd#HquJbXYY*x8Zb!<;^ z*E4d3ti5L1(%l}M(4aE(1ia>Lxm*$U`b^2(Aa8~fQ^FQ~g9JZ4Aw#Q9+@^%@Rcry1mZO6%XR`k|@f8OeLN~a2j12I*D8$f5Wb$ z8)vAps<4TnvXW5`b^!I@0}#bIoY&CD&{mJzl)^G{rmT$5>FCD=hDe?lrQF7_8%(&pdUe21%pwO>rFw43U4;+2V40gPO*&zTv8lVc(#6TWgkC_98Ga zs^J<#dw}->jdRxYxK48(C&pz#GYl5)&$}S18;TpF%P>hk&F^#(fk}G7a?R13~X&}8pTL0`85es2PM-1)M zeUDpfH1eST@A(ntlC$X+c}DpA)$(V7NBs4mn|ZrvIUcP?j?0Qu(r}-lFHr0;o5rAL zZJWDk%k(_%(J*PnX+Ef(wA!R=q>YngB*Q~*(DaIa6xs@ZGZgy$1eJ^@N!RO6B%4X2 z-k^m}A7GfI4-ksAz9dl(_tBwz4upn|La85((B}kCX^=|pp(EBq@7cHLC1oIXiQdb; z(yHy_O7ig@lHr|wBzG~Ae2we7xJ}~TBlX2m%08cs@&(PxSM(^~(64;Qkn#hg${{9| lpEW9-^>hs?lo+!}6PXa^YB=-AkW{fiXO_Mw+5Fn*`31`H{R#j8 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry$9.class b/bin/jake2/game/monsters/M_Infantry$9.class new file mode 100644 index 0000000000000000000000000000000000000000..b1e816bebad36344adfefbe1612b7a799f2f3b79 GIT binary patch literal 2091 zcma)7TTfh76#h1Q?sHm{i!G%hRJ6bdBUI4}t#a>FK)JVEIz2OIGjrfvrstf2n)qmZ zH9nb`nAG?{;!`0~i4Q*bs4nB|S?Vn|a9q{|Q*)Ggh+ z$-p~07a0O0wkBfWh$;vo#85k_TVlFsW`r}ZW(>hlH)&^8V^MWpUS4+@u1r?k zR5hLfhG0&3sZoZ8j!shFQj>;i<&txrqg%Ow2wrAT^m6=ZO{W{VzYcd)Iv1Lr_0rzJ z|K+7t#yc0IXvBpuUZF=+#94Nw;3AqRA$g%1UY>!aq6vs%6h#YK!+4FM zzQW4{m0(zPg@QI*VW`RJ43{dSlQl}~X2Eu3+!3@>a!uXMCX1R-y?oEMx)sBl=m_KL z>582)RM3eo3dgmJmZn>pc*xKwGjk@7ohj+;Ed|}^p_KdT4413sFqIk~r|d-VHba|9 z05II7o!Jms&rQ;^-DJkLM3U;`_Ly2V`2)gfY%=zEtj_ryI#hJ)__jQq(ezYH5D|%t;R) zE11L-L%a-sg0g)E2^A7TLKL51CX7!RS}NdFrFj(0VvgG8xH(LFOQe19^b)%gYo;%f zz8A0*1~qo&2sm}Wf;-Y{JX>@eVR_O}MzpM8#ZQEf9NC9`lD($j-iw0p749ogPuulM zJHmzbB0EA-z!k>&nKvADIMt0_Y*4$~G_NA6=c(CEe{_}VL+CEpy5&*Ntx%De#c*y; z>P)GH@^p&L*+nNS#&tQrYEQ;vk8B&_j9FR3c4_=f2`_I`F_n~M31`GmU01kh1(lbE zF8r0oBAvr@x<-@{4R-yE$S!Sa5Ti9l6g-6h3FCBDN=ih}(TQM$T3V%pZlclwuY2h+ zk&?Oe4t~4BlpmYcp}u6wo{mL(=eGDC7G*svh zHHN-L3yE*i!B;TES20ZcG2%`0HO%mPm?yf# z(^%#AvBt9yT*ErgVUy=k;2YTHoA{g?_>!CWid*=a=r`QPcf5cd{s51;gFT`L+{16Y zh(Gui{v`Srf9Mx$771*4DK^Vjf xVH?Zkok{X~M4!^vA|8+bgNDdcn$oQo$c06s8rUch4N!{#59lAG3nirJ_aCZ)_Dui) literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Infantry.class b/bin/jake2/game/monsters/M_Infantry.class new file mode 100644 index 0000000000000000000000000000000000000000..12333ab2092cc8b1854dd78f4319f1d5ac803e21 GIT binary patch literal 18984 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$1.class b/bin/jake2/game/monsters/M_Insane$1.class new file mode 100644 index 0000000000000000000000000000000000000000..09846aff5ce940a43a0c2ac49c127c802d95d4c0 GIT binary patch literal 840 zcmZuv-%ry}7(HLtQPy>U0|60nD(VL6B0kQTC^FMz7!wE&zATsZvR&8SlHSh0$_M2^ z6CeBo{G*ItyFqHCN$=^`e&>8YPJjRT`3t}vo;a`wTc5;O?zM*^lI#Qd_Rd! zWpXS|LrJLj;(-WHM53~I_R>yA$`Bg8Lal51=@808nfh-DE6o-se-`af=wbUPO_UyX z=5d2iReAUQGi6fFXJtJmtTl_;GEjrGpLSXwE4Ya@2djkTLhX0FkT=3e59_!^u!f5F zP!z~E)>qMaoMbW;+{PUTn}p4R$bSQP*uq_cYvPFxX8n=x;vOD2xKCIwkpC&*VH*#5 zmYm2%uARmAyWMVXf|21FZ>ZSs<-lD1D4rw(*;SbtwM(y`WxHg%4)h?54e#<$rlU9@ zc)r#$*$;&=(x3r$n*SfwAuDLqp%`{m7kMNjPOK9fY7IqkIHW%3C+vRUrlYIRJ$}_J2 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$10.class b/bin/jake2/game/monsters/M_Insane$10.class new file mode 100644 index 0000000000000000000000000000000000000000..e32bd99406336aba2a8b6b13220e7e3d3051bf3e GIT binary patch literal 1064 zcmZuvOHUI~6#nk?MTeOd+wQY&Ue21-ShtU+jjsKa5DvkVQkN6 z@&&zaw7A}Kgy(bD(>JPR;TeKY%+I9|XBdtotqFgtVTtDLn$f0YhUBs(EdLfmtWex$ zh_5;|t|ErCh6IufeHBaayPeh!cejikn=|xR9MiD34cC%>_h;O1SRTXqN~G8S2$dKT zb?%q%FysnF%HB70+Yohq(|0XVFZJLgL)HrTSIq`Dn>FV^P!ZvaCc|JM+JV(1lvz)%d{_)ta^)lGPfK>3)Nlb88G5@{wZyJNdPgZnB1ANeBBoQAVi<|gJSLQe zOPC>rx;nI+eO~RfeJ9i+_YZy$l*l^fQ?jJrHqLeD7?b#Q)EJCk(~IU>>My2m28wRP?fLHly4YRzGGbZ0bTit vCFNH@Wgu+Vr9zEy71xN&bwWuXrj4fwY$>?K4GMzz6=`3lPo*?@O?^QhSK}_@*pIWv&u3jq;C)ls8}d7%w*J^amT?TmdKX$@}2Nd)EnWERH3$@ z^cQ||sF7FTT3BV6I*Y7z)s=&r8gJ9-~ar5A)T^=@0JR@h*0s#1z*GvIM7V$6XoOuW-0Jt7B(d82CVw9BdkGipZV7q{AUvJN+bzMOsm_FifKcSfQu^jM0(z6#C^F9l2kbQsYnQ zD8|y#mjq8VSYG;slJ)8>hV^7*gl2j3_$#JgmoWF{9g4Jl^&@V4#=sS=43bPE_c zj2Q;T4HI)l9*agH;hgB>rkuopHTthIx-B&4c!@A>Cu;BDZnC#P<30M>l%=mj-*0A{ B*3|$2 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$12.class b/bin/jake2/game/monsters/M_Insane$12.class new file mode 100644 index 0000000000000000000000000000000000000000..a32ae0c468657a36ffbeabd38605085d507c9fd7 GIT binary patch literal 1192 zcmZ`%T~8B16g|ThO1E1nP@o_PXu%eQ3TRM^Ao7tkDf$2*(U>$tJ8jo)XUXms-i&|1 zcTIff#RoMIjSoH>e}%uqcxPM8D!R$eosVt=pR+uV%UolZ8O7e+kMlbXJ9z-(*On zGlV|kS&PeRcGq)ESRrmWa>S-~2C6RH%!I3~lGU>FV5xzMG7 ztGLF{+is#^ABkegv0W;h_=DU(QM6OI9>z37@*=GgRrCy`6=k&4bQ~c)m8i0249u$L z!rb&bQv&A<%qwg>SiWo@OC2{sepq0*)GE{TOetu*qME3C?2mvH`y46$90m+CwGu#~BcF8e2!mHV25+g6Aa5gONy28Z-s1LsZHIk8O9j4h5MW%LU zKB4;qO*){{s8fWdBSeQ$S{p48#Tc#V#?V8fBABD72(-TVdkU>|#SSeRNY#F)_MyL> z`iZqp tKiJaP)=z42AFI^C8nJaDlo}t35bFb4bzmJ2DTe6vferd~!l}!l?-wzP2M7QF literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$13.class b/bin/jake2/game/monsters/M_Insane$13.class new file mode 100644 index 0000000000000000000000000000000000000000..e39def453ee7375759103b202ad88879e258fd74 GIT binary patch literal 1175 zcmZ`%T~pIQ6g^8)Qc4gg2#9>jS4)KosHh;ySFuXn!FO!I5M6h3+}`9BOW8H2F83^tVQ@WA>tBTC7(xXh(<=<^u{cE^ z@TAS1LNY5WmQ$Duqm`l2^7(J)110BRHP`q|- zq6=3TB3_xla&~QAAd)PtQm&flQAZ))t2})s`Y}K~C{cZex~-Icb`0oeKY$2^F=}9h zp|x6MUs`rD!{y%0iit7A7#cQ3PP&z>kPPA2R*IhZrotUJk*MPGLr-7yA!&x{C~4w` zA`vdR2SOf|g>p`tm{Cr{JGkI>%fxNWQV~ZS%34EMssVQ~XW$+~Tj1(zq=qH#2@~_U zPxmNTq=8`Xlw7v0QrWGj4o2_*iv}JtbOk{Eh%vE*W$L0$gAk6iw)07%-@ZTKrmnrwrt8QK}`q46&Wf25x}nz5R59Yyv+r^80F&1w+s zO=K}#LNl!jV1jl9pha6g&{j=X=+OECsoF(q6m7NC_XJO6@GNnH_LlJLH)u&bKS8&C ze2VV37$SFXbdcU_UwtDUy-x3hGFpsNOse3i5Cu;q8c%Wa6YeBFV?lqX*!Z^?C2>I; zKtvlvr#6IPZ5UJ92xhf0ENU^Nv^X-_xKFdAN~K1VNMQx5L^MTcM6FxUJGK0?~} PJ*IV?z6eFB4$$)(2WIsS literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$14.class b/bin/jake2/game/monsters/M_Insane$14.class new file mode 100644 index 0000000000000000000000000000000000000000..c6bdfc7f81f8418e18d53ca464762c9d0a4329ad GIT binary patch literal 2504 zcma)7+jA3D82@cg(%iPRgjOh2ZdPfD?Mi`iX(_a&ErGUzEv?)Po9t<_bh8_GH?4R< zQN$aH^5Qt-s0@z0S_TTEGyVbkXXu+xyh=y?&L-(>FV2{m?03$0zT5eIm-Fl2Km7ur z1Ghq`lCb5HI?X$jteWRa-ZCAR+m14lN}7&p^5$K8LI_CM;1e1!-J?41)zkusN~rGE zP2KI0z*<@-Bn0{`jYq){kr70-gxX=<Ew=i-@X>VWv=NN zH|2KyUtaRuVCzH#4Okz-Q*;AgkY!UcHlUHv$Z^$ha}uPa5Z@%DNwA|?J)J5YMX(uL zL)ao=ozKb;!QZDkT*fwRmr#|}C2aIZC-Rfh^99Qmafi`N$mVq?qZBo+y1DjQbta1E z&=SIqrRiFtD5DiSDICWtnwoBE{51&;0-0qfwkCzK=Vi2^odEa5B{Z#yVKO;5Na%#| z0;Mlc**6@;N?+m`*HP%&j*_-au26QI_Po{+rNX0{+P(7nBXk=Xd(kN&Jf5?y*&#hG zA+f5@l@TYCB82@CnpX?K$*1xJ(_$219F(wqHAza6*0CrjqV1M(NCXw}f;vX$BD05O z91)of6a3ngp=Lwqldyg{l6^(p(6}82)$7`Vp;l2;9`cv*|07lWcthW;ZB6Hz2_ zB81}-)|9HH=<0?ttfyrRV}#nxR!z<8y)j|zMHwe?ipo$e6u3BOYDunal5$W~MPp>4 zR64ylEp(}a+g7WG6@XW42(K^8ID=Zk!nI0WC;&PqSk&7zs5bc>bJNw`%PGfIT~6H@!K-jWpyAl)^Se|? zhAUtQPTADh!uX7gSx`I1$`{woDRQ-B2KY`qFDhP_@dn*m{>^MM?L*F-ofd6csdcJPyCsAJS*44=8<5X)pt>wh${^N_6WPKRZ9)k!Q1~l zuJHHy_#xsa;s-oVS0eZTJ#%EZC-@x#a~0D+qxVd_{~-n*;aI2;xHyl|_)GH`pU32) zPfs-wc!0B{exWXWmyQtYMv4$M&I-?Z+lsZ)OM3%no7)>%vZ= zZM5%X-RNeAaESGwmmNkQtp|uV%8uX^>%}U0|60nD(VL6lKD7eqR32>VN4)A__AEq>vmmti@hCxl@H2; zCO-HF_(vJPb{naYCcUR$`Uidd!b?4_Lyl_Au+xmwrs(Gs2C{ATcxQ#mwwh7xgk^d&}u!FmVvWX@-m^Vnii+gzB;67n9$Nr~+hh046 zVKOFHxpo-e?{qqu4Mv6^c}Mw%=Mxj$<7g81Wk;oUROW6!OSj2}9qN7<8Q$iROomaw z`}DPz@j)nzkp?xe*Zc<|JK1B79gdze5@T`i2Nu8ag9VpQml4)y*!;1~u{TX(tZ+nF z!ZM$!z*ELlpio`;$}pv;>agM*wQxnPVs%D+&jMTqE0U0|60nD(VL65_p_3QDmmcFeVTld|58rb-S*;CB2;w8ucIY zL3z-`2mb*7DC5^|kQ!;yd-}ECIp2@d-+zAo0syfo3NJ4+1JU@Q0dXrzBuJv!pvi(Rq}*Ts5g!Y_FmMNE($1lC}M^%-%(n= z9ET?|J`yK^Bvd<5PXxyzR%twaX(vNv2(?bG)+PP42*rU+{O5$FdV`bSiDn@5pm~_Y zN)KAIxI!qatov>l3C;PetVe{EdR|-hRWIo#t;XvTu42W(GGQ@S`vouLnK07BDy|W% zf#N;n1=5XmRd^c3sZ0sial^qnVLd1E-vAyqaFgJgXsr9w{>XQ63wIpcCamVj{}k}B ziMu>YM&u%w&f@#+b~`h{$lwicDBth-z+C+>8pl1^R;d}4bFUwzyJWlebuWkv@A5z< z!>CX2e63}?7YJjdK@IFQ|3Ao1c9>&_qg_T~EN=b4>^FX};PUA*!g>#zKbAT6CP|DH zjtFy@=Q9;}$e0QgstaEkCiGMt)`uLma6zqNaY}u~0$c_QXIR=Uo?*?al)s~9f4R`9 was#kFqGWwSnQ_kgoM|pkcvDSQz&+e&)dK1nw}CB2o6QBb`F8nR+9Y3p0oEI@SpWb4 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$4.class b/bin/jake2/game/monsters/M_Insane$4.class new file mode 100644 index 0000000000000000000000000000000000000000..67f58c79dff09b99c3b416baa5d51d40b86f9236 GIT binary patch literal 895 zcmZuvO>fgc5Pj=7b>cd-q#r4zv;hhvEyNJG1tCFcP^6Sgsv^N5+9XS|#92pPhd%%U zehdfb0T2g%06z*bcGAd*9=y+E&%Al_c7Ff)`3pc5RSO2g_8UGFRkzPa!X5caha%AK zQM;iuS7P^p1(RVjk#nfR36wz!UGw_vyWytkeZ>`O!PWOPmLkn7h&Tm!)mEa$#1#qan*NQ zVIWn%mcd1aoQ&1CbvF=vL>0uXh75&Ll3nyK7uSlD9NN|5|Ff`e`BFgV(usNP(m@v33tDz00&#&BU; zKMAGhHf6`bE^d&q0av})<(7?GC|f8oY$RI!BgerW_G$9C4M{q8@mMiHc$_6_k# z8$q!}(S1TjnBM!2%vX9bVAE+6!gvRhelAk%Op^$66p=SrqBA16Ll_aH^2=WcrsWYk zjQ5Gs)Vws0m09TvBA_-XoMLr9eTvN=C@yEl6(_g&4L8ltbGkg~fbjuo<0JBfYsROT gdVN|xqb4HUj`gHaiECZlB{XRxfP3`VGp+Rc7mFdgzyJUM literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$5.class b/bin/jake2/game/monsters/M_Insane$5.class new file mode 100644 index 0000000000000000000000000000000000000000..072692d5528093b89377b67ccfd1ec269d2fc44f GIT binary patch literal 989 zcmZuvPfrs;6#vb(Wof$=s1+(fL_lppSOw7oMq>~XlHvuz!Amo2hcb3MOLnJx3W-K9 zYP@^#phlzd;0N%V_$7>QwhLKbnftwV)*m$RO_^ zhXID6hE(Elue&G09lqxahH@kDxWCIoY3$@Os}E$vFx5zL{U@JQhFn|d%|{HCTAiGa zxa)J(cDHpXReN<1BMgp=vu}D~5D{jMpjC%qtd<5BE$Qi|UadbV-~z^Mj53_-llQdr z-G6FyyKgbmIy)1|Ix=W6s+=F5$9`NvbE6a)Rn$3Rf74Nd;2v2h_$ied>jh z$YTaqZOk%Eq`=P9@8BA)GmIqlb%P^uQe@>H@c6~R)-i8mj-h%M)+E)`4sIC8qSp&U zp|lA!$t*f>&HZ?qD$-%E-S$s8vyt%kX%K1ZleRLHwl()UTl_GYaA7;>g`U`uW(P_q zE4FAxNL#Y5JU@tNgj+%%1T7lkrcxqY^LZ4Bh}uc*r?o{aX|c$*$yz4ONayChVek|E zSSXMzkcRaPS$Zsz?ev{Um&l?)V~C^ySRicxGUefqr263o9oBIwG;v5j@dg z_B$%a6^y@rhvE4znD~t8uc*C8sc$Thk^NvO;?&9%1?xGA)(cdvmzcI*#XO^Ztb~V9 iaTB+QX^A38>`hN;VtkbM=*5Ex&`hma?jR&BN$c7w$IQv8>+R9o>7LTvQW7x zhR$?`z-v6~a9PgIE6OPg+1tEi2EzNCQA-4lSY=)Dcu%&u#Y^7bZ=pn%2xOCzT!$yff)AVfQdeat}y); zkcES~N>joUi%dqEvR;?+oES%7ct%X(36H@8K7}7Xt;gpWIhbt94UUT9& zgL5X%GVG{xt}5Hf&e}^B&f@~jlgDMztp@Wn(>(r@W|bbzIc8y8bEd+a`i}F`^{U*_ zmRyI<}ffM<`pkg=J-luEaUU;s#g#*wjSKX=6`Wa&mE2Sv@AHT zPjfdX)UsP-uyRrgZ_?quFMRZYP7%o0EBy`RoAh;(EYp#p&uIBT9|q#I#>v8Xh$wBg zl5f>PWE133ztBdjCOAq~6GS?a@5$8DH9L&;P-^6FY6o^UQoj>DmBF3i4Rj`x_aC8$ zzV>dQw;jJ;ppBgVk2w4ZN2BjF#3V$r9vq?ITMT}|=?9${U4OP2zZAq1b&( zG^AJKG2+G(q>QIHU_3*=@f=5t7dUUc#FX(0H;vc0ZM+GD@2-n$2q&4C#1u)NCdOt& c`*)>c#5@xm`YNuGjnb_HIeO!S(_NwG51e=(761SM literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$7.class b/bin/jake2/game/monsters/M_Insane$7.class new file mode 100644 index 0000000000000000000000000000000000000000..bbcff0b5a819175f46604b7458ed92af9982593c GIT binary patch literal 1253 zcmZuwT~8B16g{()E-i}`tbB_oqAeg*P!UlS`Oq3LF&G~-rWx9ytZZk=?iAvS|G;;B zF!9Z3@B>6KKA8CGukc6sY`n8AW)U{oxqI)Nd+wP#cYpr*_8q`5ZksR|x*ziuF`Oy# zlE{=?=_}#+nfY8+`do^Wqb4E@9U;t&RQHx`xiVSctAu5UUa_UECKzf`>H7?kDYqcv zs6os^EusvKbG8(B%B4l&-Q$anU}&Cm^W3@5JzM+LU_>q3K10u3sMY~`#u;jhLS?5J zlBqO-*LcR^vY1&=o-K>xb!cLU+kyI=SC#}PV!6W5nhH~kf}K}6HJ*MD!x6NaXdzvp z($#$nZD=P#f0eJxC5IPDBFpNOP77T)N*+Zz_b^Lkt0y^MaV4lg499TXL=QuIn0^n) z!Uexni6Mnx!BRRcWIQ;8{4>Re8EFwClKCJ5myyXGBJf|l0HL>QAB!= aw8n^eHaPT6+#(yHO9!&_#tEmpLeF2cSRgk5 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$8.class b/bin/jake2/game/monsters/M_Insane$8.class new file mode 100644 index 0000000000000000000000000000000000000000..fa1a40427f2449d5f414b8683f99314993188627 GIT binary patch literal 2273 zcmZ`*U2qds6#njQ(rwc%4WR`J1&UH>sWe)kq6LIPi;)(QLbd*do8%^4y4l3tO$z?t zFQUGSqvPnH&hVfQ(kaCe#}^$&@n;lAXVe*SI<0TE8Vf9flF1w={k(JSG&T?F7JJF$d%yNV!*KO4hU}*Nq^jq!$VOYCTB2S_W z)!PiqaCb0NwRem#1a{|AGK4DB>IkBmp<&RlO`U@j@l5n&sOE;9q} znBg$A4*FbOC!Ah}U`D#JJq(TQ9VA>7QBzo%=&)-WR;ITGiy7(+FZg(#;-rX5$HsQQ zX_+#TZrts?9&aGlF;a^rEYq-*VTmuGy;P(=;Yc0J(M*w;vM5c4m3}K8FK((79db~M zl~|>rrLu^XLONDs4F&2NSt<`3sKr{`sNn`GmCt!OWF702a71MlPsv2CU?pW-sRnlL z1VUJk4h`)Li%Pl$*D#}lMncC1bdnQWSShbr!^+J@9bJf07ssS9-7)eWQ>ovo6FxRE z@QlH*!k?bPN!-ZhbG9mtM%-lGvtWI|x+OBA=Hk;Fk8-!giM(QP+1;KT?L3lE?lhy_hm~K*zl} zNC@)8Rd)Uw&w?`+8yFZUVeycT!=UjBI^%{(kXz!HPZovkLG6A#pkb6@u`kNfqmBm^ zYJx>!7NlzY!#W;OjSo3_F=3@mk#Q9Jhz@}SjZk^^3@e?RhXCJ;=QM@12EuKN&*_56 z)sX?AYeji7v$>*-JFZ>GWK0=P+Bt`2ztNvl))P_la}=hA@ygOy#GoUqY}X|Vwk<7J zDXLU*I`Vjwa6zUkCX{3h_c*y1E)5QOa8S_TR!(T8kdC4%RxoW7{A-cIF&)R1)204| zlD3#Iy{)4}9@p{20ugd*rDhkCBhB=@v}apSzH;uE+OL6eBT3m;r$km{)Ow)qGve0| zyCOM0B=Y428XC?O?4%qp)QYX2UEp16zGw;eTS+tL(1sk6?pTiINsn2Uw0E1raioJ* z&`O{$1$dvdw~5w>+C(R#Gq~XbYR=Jx(}Gb;hST*T0`yo%v|bXTvz{ngJ!qg$Wnd$n z%0N{l`~e*$b!8p=W1ni(oN5G1N~*k(3@8&blW3g6iq0vto_+&?bDbqR(v~=n*1(6j zDRAOQPc=Q?9BzIap>T6g@GRDQbho0r6}`-(_bGaxqP1|UCpd{)I@QNTY#xpDT)@_* z;52$8cTQthQ?!xwfB!;JOU!?7o*Hs)-cqm+R;x#OyTYM79^Dq?C znu5I;*Ulh3NBr?FTFOK?aR#gA9^QJ#lOpX2(msoNdLiO5WlB}et9BaARIX34h<}C# zehDr7bF}d<(8Vuf3;z;3_*dxXUt>T228a2#80FtV@GCgUzsD)Mzs!HYY5pT#@fHH$; z5G53J6ZI_Jg6NyO9h|$3;?44F8?N9vlB>q^WM>oV8va2WG!0C{TKc7bM+g}W#I35} iGU9G;Y+kO{(!)to<#++7=nT-D0WZ>Dh%^<@=;vSJb1(S- literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane$9.class b/bin/jake2/game/monsters/M_Insane$9.class new file mode 100644 index 0000000000000000000000000000000000000000..b67bcd1bc3b406490127d3c0ac5a7e1e0cc35c92 GIT binary patch literal 840 zcmZva!EVz)5QhJ?ow{*cT0&_{DJ4LGq!m~yClrK)+9E|txwPtmOXS*HXNj|m>`i$o z4uC*N9C!d81OyL(n04IBP%LF9Xj z3&~$h#>YH643AUJ(Cn)yOpn4$7{7e!=%L6NTK!6||LEy5)Do_Hy9|r%4ke$4K^n>= zIMA7pNp}{Psii2?50p$YHIXsZ5M7QKmfKZ6k42;hy4!hK$5kx5SR!$i{$L;|Ex95zh ogrD%NUj=7rnp<*=q`SCBBpdgOnl?IQ9a<=`Nk5NbMi@PR00<_yN&o-= literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Insane.class b/bin/jake2/game/monsters/M_Insane.class new file mode 100644 index 0000000000000000000000000000000000000000..ec93a80e0bd6ca2b700e4e3d82cee616358f1e42 GIT binary patch literal 23488 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 WZNnl;Bt!IIfHHk?I)TzFfByo5-NZEj literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$11.class b/bin/jake2/game/monsters/M_Medic$11.class new file mode 100644 index 0000000000000000000000000000000000000000..3a68de1c176555b2eda7e01a10777a126cb63bf9 GIT binary patch literal 1214 zcmZ`&Sx*yD6#gzVW!f@q1z8mkQCljM#l48Kv{*w;41~lbX)f(;89SY6I#bja2UNNNJxK!O8!(kX(_vHEqpE!fBAl%d{LvJ`j z&bvHja;p&Aa4UvYi2Kn^DNB-lCRfcCGdcT-MKOeK6&d=&UVQ20X54t>K>#Pvuc42~ zdGa^xItDPv(AJ=1Sb3Xz;sx?p2rhtOoYHWTVZZ~{f9`HQZ=!Q0LOxrY1fzax~Z=Lj=Td*QA0 z&xje?H(Z`Arg^!saKR0`TFHu}Ay-mwZ2YubC|aO|l{IaL7Ah^=9XqGtHg(X`o8y~F z2r0`Fl@*gaj&Lvr`X6X=sGam5kgkz7Pm+=JO}>Nw4SlpANN12Fl#fu!*hacucOuzN z8bb#<>68FdBqe|n>UvG09xl`Fm0I5ND-%AK?Q`>)VI8xQ{E*w}`8Il0}XEIQ;ba86CWq6MR2RNni5EoRLKEI(HkTuSu{Pr E0bHCB2mk;8 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$12.class b/bin/jake2/game/monsters/M_Medic$12.class new file mode 100644 index 0000000000000000000000000000000000000000..93c890992bb39e3e83c8750f93a0429f18f3acde GIT binary patch literal 1007 zcmZuvO-~b16g{s~7+MC9@(qgBqO>4XieCxFL=g-LbyGs3o959z+Og9a(wVYE{)8)k zfEyQTYD`@C16*k|`ft?p%1DOjB=hdv`|dsG%)R&XuaBPq6mZ8xOknnzY^XxMCYvhX z^jtqsEk9o@7gg1+%&inm#091!IU8=UQ@7p5{i-}*u0Zcy+qHvx0!B8sD-d7zswxQs z2@5^w6&TvKUG=!#+*7R`x#uW>)V5cV&aQ0P+7E;AplFo&DfAp*g^wdW7$#*?t1nmEl}5SlIaSsW-E9a=WTW^xD<}tRxu*$?VZy|? zz(|Du5u5Tr`pUv2rU>GwL*)p}L@~OtvZMdVCsYD6xM1SEz*Ge2Y?6gpTx6#LyUA{d z%>*tXW8yM96R8QsS(w8Wf&Q=;w!80fAW;R8o34O)^Hax5%p{=|W7`$~&Q zU>?^jEMZx|l=i+OYaE5xqDEgi`)qZT?{C)x21Y;doME!$wObXnY3nIl;Sw$D z8F3~XZpHC@&Zww@x>q%Ei=F&e;_31cVas(@Yu%B)uY9Dz731QfdvdktoAg#`1#Qp5 z2lTz=M+`}xNm>|R5a(q-ed{ENc7UG1AclBqfF)WDV5H8yp*bnn=rF!UN{!Rf6h^|* zBWfWHZoI>22h)okq&v9!;w8rP=aUW=hkrjmdXL3dNS#J-e9TDvwWjP!O;IF_Zx}Yd wBV+tP!T8zb9Y4VidC7u2u9JC%m2t!}gRC!f6|eG6$8Pex%{R#`{Y!lQ0Q5oMu>b%7 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$13.class b/bin/jake2/game/monsters/M_Medic$13.class new file mode 100644 index 0000000000000000000000000000000000000000..535f15628bc2edf9f87745c8a98371d4a62d1cfc GIT binary patch literal 1022 zcmZ`&TTc@~6#k~WWocQg6f9U2P!U@Y%Efz$i69sfFfkAkFG(}B!!mYvw%OepeeoCh zpawMY!5`pX(0Kb3zA0y*k}c6qcFvwT=X~e#o&EIt!$$zKn75E%7<$Uut(pqIr)MRyZX3m1ikdOH+sc2(Is`{N8Z;&rT$GlWBy3Jq|ikl4PqF)nf7)aSj zqJtr`DwVk3^tME>!M9w&kX`kw+}-4X)OzdEjCN$mFtQrU^^bbW3`s{sD|Z?C3Po~$ z#!D_&PH8;~q;krg=waygboG^5vs$k-8x%pAf~iw%*G`hl8%V28uz#(QYd1=!Z<^3EYCgSae;@z#$`+rh9i#^tBI~i zui*!}_cThFu`u0UY@3fwt1?HKT^gZKk&IsacaWO?P`KN~O?*Co2TdUBelw_wWvSP| zZf)6=CXx1JNmX4xBofy|wBy$-++rAvwRU_P2w_Dj5iGhq3`K|$&<@hPaB$M@k#3PT zN0O0Dj=x9e8~R8fO=p@UjL$I1*hRX1=tQ!cG=>w%(5V3?NooKid-64j!*Gob<4Y{m zI10_8w-xFVJf%TlVi$c6caiV;_2=at@}!O=pG;>*w;oI+_i*todA!4v`RWKiM}H5D yugDnRkT0x)jYQLP%X7~k*!|aDd8%vTe!w>sY|G%{J?4W zyEaB}gQ||X^rA4Wy59Tz7j=}rKHS1>3*%H{u8b^|jR{nUj*udJL-a4otO2HMOyiEO zqB{;>?nN|%ynF71O6bE3Y8I*tH*;CfHqXW^=4c$<-h|PSXn7s?;0%#4J+e(t$MoL}0kBW((`A9>`kC8dbh1D+%zp;i)d+H<|qMWek%+6qagEwf)x zJSL@p60IeYFn+_N!!qsdt`o_A+R>0PK&u8=AgKY2!OI^>bi*||j6by zj1&(er&h1=hVT|wZ<{a}rcyOqQtcfJ*?Q7&PpFome?v&29x-H!rF{ltGiY!N84TLU zqMu>7DkOi|@eg^p=N`5>L%te#ZhPMih0c?YhB_7zL!p}D>Y=B?kZp3c^NeA%Sfb)n z*J-=5>Flad$Yx~#ml!ViT7BIMq!O}2j9CJgEr#)88eSKvx~h~825}kVCdNoxiay!5 zF@Z_K;F9}iMB59(!Zc<~TwxeV0X(OnzEYxXV-{B#%u^AGcmm~~I(h+@4lK-J!Nfcr zs|(#BM5ihaZ7kv%%|CQyBk<$-Z}&g`bre7PL?s(bC^O`eISP3c&}F7+Qadz=K`g^D zvBEH&I>o=YVB;oM8D_de_JdPica?Iz){C`2MOO%fRK2nEo{=#PMSC96_yQnpT!QOquV!@wtc>4Qb9MG?jf4BE_5Zg-0) z4pByzgJD`Vz%oS*kjY>CNTJ)V(P7M{S~GuJ^B755TLe!um@k*VVDubQ?=W$W!kbZC zfBPOo^s)FEH@;%c_@D`5VR`C-Q9#a^!@jCGL`7Q)0`OcKw%xRVvA{XV_+ T;Q=ZX4bly4(9fbGt)HGh@w@Jn literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$16.class b/bin/jake2/game/monsters/M_Medic$16.class new file mode 100644 index 0000000000000000000000000000000000000000..864d9bfe7d8d21a951ebc9bf487d4b166d4700f5 GIT binary patch literal 851 zcmZuvT~8BH5Ixi0vUI!hQ4kOis-m`_He%vS4F)PTo3zFR!h+vGT*AyNZFF)#$d)T-1W^yW%0(7=4>`;b=9}86 zccbCCicaNupa{ig*pb1RjI@oXFGbSVF`?8<)w;n?jgaf9#D7CrE>}4Dv#bWv^r|OG zq)o3ji$%iX(7JE;!*I|JMJ8PHL48dECaTgB8M3%E4P6%aM$g zhc(K_XlRb@k0hKpDrWB0R(?6 zaO_Qz7;kYzn8Q4uR^Tb4704DBzA{YcRvqGXikiKm7O^y?zGne0gM~{h?}1w6uIR?VV3=2o!FD0sub9^Wp1vnKia3!tO1 A!T=_&pqed z^Zf3f|IZ6A0a%5<>(B%i_ZtJ|s@kNHHfz(4opsGjwzfUeZpN+H)hn;pAq5r{$!xIQ zu0G2iXp9?!Br8y|&ay4{CV@azb+>?QcH(9T0hB2OQ6ey>&9co+xpdUbbQ#f#lcw9cUf{B-Y7!nYYEy=ttnG9&mYr-UMFm}u zX73|0HXkuu*N6>}8eL!$U079o1q-?nx1oA_8Rlc5js>J%QK zCfL9g3RmJIBxu>WEQKmOvsWoB!AEIF0bVgp)pjj+IFfY@*CZ#(uoTzmxLP1w?7}o5 zg^%M}$~wiIGRdCS+Y&-Gmg%@opu$(nxmK#S-EjNr*DEYXjeu%o@oqEbIvG+buj*~_ z|EjyoP>Yp1>d3XCOJ}BDQNz>=%qz~UlSpJum&^rvdt2D|PbjRx^%Q*~L+wQIwz6xV zR9FkDTgbn@*%_n^>YfLD`%>JfaFZ94ld+PP%{sRzG@^-`XJce@#_1=&JDpr6MmA?n zx!&7S-OaKT;|8<{%=Ybf=Av%Kh`9n~1yNt@Qwpv4G^N59YcuVn+ef~VP<4xJJ_xX} zc7;vsZ21u9%1^RO6ibQY_W-y%Fu&e9os2! zMY-Kb$!RjOros-~P8CdAG-AbV!NVA_(t}QhTQg7s1VY$}s18Hm@*+#q1QlY4Q$QR& zC8~ZZQN^Y|?DtllovFe1RJ;aEpif6~`V16K6)f}%lu~hHuI1QNU#fZnDTOo-N5HgQ zZYD=zkh@@Z*2&rNNT1^jMEWe3BgiOZL6r%5M*>$~au!=#TUw~LJWoRkyRnDLQRqj@ zPB=4?RdnJ-uowGv?3uPqFV(xEuG-u(?Kt zK!=g*V%ZCT!|L}ce2(QpzMM_vWAWs z2KC@kg~#w^DpSfFGE*}!%i~2-4B=TX;a|ZMI!32s)^s6-uX5)|*YXqdHHD{`QD&Qa zTo0D{!8pzC&Exz$t?*6GL#dOBdx*=-GYa3rx2YJhltrB;u%I}Mq|YUXLO6>t9nb#n z%-u$?sPG(Tt-OVMv#U^%T8t}9a0ARK?pf1F$wqoA85h2*@B+R^F8S!u-bmG^0rODQ zZ`JQByyPQuG@G_;cKL@2KVp{5T6^hD+=*8devF?`;9E16Yc>tLG^etv)i>}{g`cqx z^mfF}JuH4+;TJ3(^29s)2oIS3D}`U1*0M_aR7-WZa^|(zr#Mwg<|c z{KmE$gWhAVbIc(huv;vC@m1jm#R?uD%JK#~mLj+9WV`A1IdrRPwW;HqQ${vxX6dn{ zJ1Fsld-S1S5wzE7RZmnf=ep-n`YbIpstwmiBYfTjNr&aMSH2L@S+pY{!W{Z$12sh1 zK%jE&St7nVTZg>0NHs8}N)73&N}CLjaqU#eizPjQ@{S%!pI~`M`;7gj8T++zCL=hL zQ8JTJI+IbhERW0bSab?Od4|@D^Y~ae7%mZ$s2alxpR>9GZ^c(FpTrIRe%*2wshPyh zHNHA&tqYe~r zo;-#tZo$EE44=ju#3WBi<=s&{>M(v-YcTObc>OXU%*O5UffAi7dMpske;YpwDTEh>*{mOQ5I zlE<}u@`QGmJgFU#r?eCDQEzew{pl=BF3l<4M3`oGu66{!#kDl+OSHZC9jyXbsag0v ztt6VXZTJJNg6PyX;*Yc{5%a|%yoC!i?{RGn-X>lta@sZgyPJN{ofog+Pw1ySzeD-n zhR_EXK}d(tF<-}@i~o}a-UI)_7A-vc1Jt4Xl7c!Cz9`|?s`s&fwYG@7{ELTBf5p2* SCH<}f{zjh=#l#Rs|Naa6+Gmsi literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$18.class b/bin/jake2/game/monsters/M_Medic$18.class new file mode 100644 index 0000000000000000000000000000000000000000..df6c60e942960c523041b3434b4db93f53dfbaef GIT binary patch literal 1020 zcmZuwTTc@~6#j+|ENxeiiv0EhsPf|4rUlM06Uy1u!G2xo#-oZjqFjcd2TH5pAwwjUK49QGZbilrLDa?| zh8RW*O3SCM=ArcV#i1h^#tUv)I0wR0#_zr4L0$O_$wG+hjDEHl25U0NKW3Orr78KP z$T~vTvU`E2bZu)GV?@w2-IwaF+bDT5@I*PFG9u6ohN)DT!XyTzU@QGRiVK*skYJby zweW;=*%rREF^!8112si*gaM3jCDlA~Jp&WPEG}7?W0(zr^v_{q9+#<2-)-qiUz;o+ z!xdb$u)r`K!Z^iaV-eSAqz(YX+?gZg^SN9ueGtVBq%EX~F9g?{+r|BL6#xj8%61=+b2XQ(h*_}8y4124{<8T#x0|QB~;ZBHM)E5OQ*^Z+jCo9 zS>}}46}z{JE9RzYnRa#Aaecb!q73S8g%a{wOK-;!zAt?wL3>Esjm}B?N4`bg23baS zaOpdSztEon#OREX1%Crh!8rMLH;L>y@)$-iN~Zx>CTjp96ROG@VBAT$Vurq zCMar3t8@|#7LGBQ;m4Syw*ef<@y{L=|?g1#N_cZl-$h?5=R oACTl9J4}f#T91ivaT^)pir`MC{w_Aja@s`T9{pkzGp*C}4fgc5Ph3Cb(1*#2q6s(v?;VSX`!L%2?ZfRC{m?_OR65YL|bQ*m^kZVJ3aD0 z_yt@z04hS_zz-+_!5>1*+NN?<4&L$X%zN{8X3qb7{RW_cJsk;#l~;T$8ucNci2B5l zo-bUl-syEj-!j*CAL`H;mSZ{l(mxzoa{Q#vPbimR=8+{W|1m?dT03IUT25bNkVM)* z3NsAzZA*$5)5)=L5Baez81ik$pyy$45^{;51ug;sx?YJ z<#n6OVZH0SmK-)`vB+Rdl=>d`eQu5kK-7}#QZ-JlQv9CZti4R*I+k=4Nm;CT6gN=9 z4Tfx_#gYSu8WJapMTjnqGH&U($xw=sUCJ@Af>j2cTLYU9>Cx;UjWyiSahsuh6?HKW z1MApeD2C6QIHw|dV=HWI;gYN%9tzqtP*upRIdxqjeHBtAw+w8n`_dK0r#4rsK=bs3 zJ)maCssFW(A=gzc?(manikYr6bxrZyQgb$U)2RsV zlT`%C{K5w^AzZOT`yPWPFQ9o`i=eM5o62Bw`wWFMEH75@<}DVK_X(BHxcd&d(5aE5 zy;oHNb$QYS?FZ(xpD1g;u%Z19N)kQx%@G~w%k$OqUB?$+pR(3go` HLBD?i0Rz+T literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$2.class b/bin/jake2/game/monsters/M_Medic$2.class new file mode 100644 index 0000000000000000000000000000000000000000..a00d1102630fdbcb1fc6253abfe8a208a6d3044f GIT binary patch literal 1308 zcmZ`&TTc@~6#iz~vb0@5Zi3uZM9Kn1z#AaSZLvV{0%G)q4DC=>w!36^(fH;M@<9ox zG0{g&{7WXrGi@cy#U|Y|XXaeK^UXKE{(SuoU=%AFI78kJC?IMlNWmw%1||BIaV;u5a~~CFhu9vyi6d1xQ-aA80uCm zN3QM{x1_f&wrt7Ju;S)~y&*hH`IXIRuw(fQ-7BG9XW>jT#0oOV%ri9grzrNdNZZ0G zq}Kw^atf2xsAtfN3j3xng_ql*1gh-pGPLxEYpal8Gnh=hjH4MX8ZI(4hI%g&AG5-j zI$Cjwffp>|AzVNawrLgjTu+sWqaB?ZIvCnRMNSW(qYK>x(0BKp{4qe5N#HWBYPiDC z8p=M=K}RpH(J-Y{hK_TG$z)8^Ol`z*9Vrd{M0KcKWnvuzFc_*`J1-qsd`nD*$NI-h zf(9DWF^n`rbD2=na`N+1>S)tByw%t?2hfYewPvV}2sgu;5h|w{vSl5KLZHt1Rzyr)`m^pjj&jQQV zF$Ypt(o|QpE<94(f2E`3?n`@{v@abBt62*~ZZ|9TDw=}Rw(e2u&@vW#qO;4`W}(t;yF-vn9k z1w`pENxohVB3nZqLoMp)s|pN}RRtmq7e0_Fr>pAVW+*jsoZ5iKO6oT%pfEi=K$8(W zK$~8Z{DdCk5Pd%}ZhXODcJK!bgEmHv&}R%DVMMKsBaD%~_2Li{^*wlZgb511AAPT2 zl;Dq2H}ECI`7)AZYk3yUd=+i{5xV$e^zkP!_*0DWHO%sLnEZJOYfl+Z1uG%L0t`ai khC!IL;#i~}F|gm{M(9`#oWT;=C+ zJSZWW_}~xlU85%c72}+_^jFo_p@ce*X3G6M!o2TbN>4dntypTIq|Ctc*Mz zgwhWxtxijJm9t*mw!j&dW0+kX?hTY4?sUZ=VHu_$D6PVW42e>CpMlrCu1q6=l#L{& z8RnZx%cn=91L^OH16MNSnw}%vec>zPM<01OPys`+8O!w_JvD}8UxtlG42z{QfnSM= zD|Elo4t=HjwHag?vLmCu;|!!T6k#ZwAw?0tCc9LMXE3<16V}QvQn-jE3we?kQxLt| zDBu#qY$QnOo=07Y6UAPLE`=3bwy?@jh>`t)v9X3L43hodxMd@Ug%rxzw6MXj5KHldhW{*7u8rG9%*|JMytIqqd_>+A@QpUD(x*>jgBZmJA18mjDf| zrC)bN5Xb;U&>GQlVtms2kZ+N9k1Qjb-1vZ*cXXLTn$9#?@Gs!>I7_}g0g=s+$1sO^ zIt{@cvW6g$yYQCGB;2rre~pDE&O@nJQK%v`r9pA?6pN==&KB|d4KgS6;XQ6X=f@`~ zncK0UAIr*-Anfgc5Pj=7b>f&dqyi2k@g1vrbyMsKS!>?d;AxKfjsZe}4V~u!C&}7Q_0-@Dtzhqj1dqaUzxGsq%aM z9v_Oq=B@+#a>~Bcfux*ppq~%JQ`#}iJrz>uXAFf#^N7LTONQJ<0c8(G%rPuU z60S2;#zuZ$iD;x5N@Av%q1DKlak4MQr%7t4%UH#_gEfZL9Lc{%d$@xQlC6@79G=T&fs4Di@8BN8a<2H&2Rv-z z0a=n&GOS(se?idcbh6ec9)BR?@_NrrAd*CnOh4VjWRebeN0?T5vsrjzoTgsx%R!td za=OR$C>c^hASF-t;!r8BPzQ|xjTf?&+E1}V(Jmn)EN=Zk=^JeKb zG>PyUMGW&;pw$p;6B>d-t@@Q za=}w00kGboZ1qtgoVVU*ob_qljFTAf5RWn$RWxX4(S0*x*+PrZrfvg|>2)c~$ff5m DPl360 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$4.class b/bin/jake2/game/monsters/M_Medic$4.class new file mode 100644 index 0000000000000000000000000000000000000000..79677a4309fd6c74aac210b99907fa51008ed093 GIT binary patch literal 832 zcmZXS(NEJ*6vn^Xc9eBhU`{{~K?U3(+5~-@F)@G%$>s}$2Va&;ciAp$Z%up0U*&@u zjfoGwXdv;AGM>8@Qf0~R+1dHd?|wa}zyEyy0bmE)E-Z$XGd>bK!GOmih!d4*k!C@+ z*A;ykuD@{MFf5fM`$``Tr5e5N^Y?>3Z@ulI#P+Z z3RNBkrb4E0VD^5~eS(&WXTjvmU4VYO4b>!zJHLuDZJ!5%}S*&^*Z4XV+pYQ(V6ETfG=_jJ4Uu8O-@a4}E5N>>+kAB(tWi1}coI!$OC zWl*U?xGI*h;^IETatZeTbNG0GRfgHzXPlgiE3=J%(36URKEz`ej~EtjLXD-K_OWh= zwQ!uKLTS@TtH?xjN`ophub!L1J50uDDBei362DmZGc!@z*}e*+B%_ITg&rm}MgKr4 zk?ux3%S47X(7Ndz!sMhiQ|?msoFb!G+4_d*PxQlrN2f;-)=xN8tWoagB8s;tW4MhO zIt}0{MFX(wvmYts?S>BPSE<#$Zmr`^(Yi-!x(5FC7c@R&=_}Tp57&&`!Ua6*a>AL< fwFSpm+Q24}Y&@CtG|{5y&^m!F`g&9|#_01Gu;R1S literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$5.class b/bin/jake2/game/monsters/M_Medic$5.class new file mode 100644 index 0000000000000000000000000000000000000000..7f2b91ba9ee29a98ff3f5bd1ef29a640d3b2f8b2 GIT binary patch literal 830 zcmZXSQBTuQ6vzK}>nQ80$ee&6f{MC9bP2|%850ATkZis{c;ICz-DN9lZ%uoLU&;qH z8WSJ<0DcCIeiGyVu9Z|-vU_%R{^xi9J*VG(fB6bv8(TI?0;^}~4Ea9d=EjJRV z)0opJf(jMls#w9QjavdM1=#&dIGD_46rao7YvUjCv|yNbaL>kFfu+k#5b6b~ra zS4t*3p_isI#X7ibzCoCtTrzW;*%L;=SlRrH+4uZWg2U5cMCm&$7HiDiOvHGFnZQ-d z@ic%(j0RAyUwg-pwHrE0KMJkoi`F`>=dHU`^BTBYAJO=L=3qRqMeoZ+G fnKtJbOZV}Bq%s~(dzxr5THGeE$*;qjF~-jye#^6B literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$6.class b/bin/jake2/game/monsters/M_Medic$6.class new file mode 100644 index 0000000000000000000000000000000000000000..d9cc59f21c9e2bb01544e9ad2eec1327aebf75da GIT binary patch literal 1271 zcmZ`&T~8B16g{)Mu(T}SAP6F;h?D|VQ2Z!@2$YaeUqBLhAxn2CE8AJJyT$lI{2TfQ zeBnV2jm8HbeehrS3p6HvVvKjXm8>F7x_9o}bI+W6=gzxduipR|#k>xMq5HnM#Ya+zP+$JbP^@J_#V3I){NUShuGp@zs zP!Tgwg=&U|MO*MY#lkxGmd$mCGc+%{In!A&JzM&fO)c28eTJUJ$XQ3_q#3I6JXn}z zXdOrpcE?OPrpTw30?!utbPbvqVg;#v%_|B*6Rp@{Xdj3Y%XqLBq!X(#w4q(c2~rg~ zxDq$efs+ii6&<$NaH$zlqDX}3V(3D*j#CUB5wgE922P`gK{xFU$IMf~Y$1*_IH%(* zL)X!)!>cgRhw}_=VQm>(ShL);vf+g>4F12qsMbG4%aSh`7(jyB!v!xqq-GumOd1%H zz#7-F%2=5_Vjxw{b{`1t#c>H^Iz|~n3`wp@15HFMAFNl?17s_9H0OafBjge(!s|H`9<~c1C#OWI+3*`ee3f7WugdnnYq?K*y-JU_o#*;IA2HgUs1f?+hKvf%^|r0J~Hg$6&=CwTc+c*?G)ZX&cGzYPz>ZfYU5q$D}gCYQ?)F$r>vgXA+KWT zF8E>W8RQMjcE|2k61a*vs%Bu?)InC%xy=h))6A?caiy-RZriC*GNh7NT?I728v-|R zi*OKVi*O9ZYf#&hUKoE7O9t*R48{_PgaXStL~>7BZ5pdp+%>Sqa57SC2d0%Tn^l2z z&`9)q(y6<4IEuyomA`1n>CsT%7AWBzhD>LqOlQYsI2Q*KlZ2ScxNl&SDi_1lJCFkJ z;Q_ooYyxK;T2|F;i=M9(7+E>N0*L@G(AN z=xdlgu=Q_SG3{N~(*vDC8J`I}(sPpWsUP(SP#TZ%g@H8dm{)!aY4VrqPBwA*zMa`^BTQ+Fe2DSoO zYi-Ki&ZbCjxoxkeil*KrqO+)G^(vrcv*FY%*QZsmse-0Ud5DtZC~w`8zOQ^-0u4tv z75Yp2iS7oS=7}=RnfetcUeKWrY5Jy#g6EJRVTSG^QX)D)HyT5nqOW!^LsUE9+0#E0 ziOjWk@Tr(7|Iajwp~#etlY=DL>`xzJnBH?q>qlhha6WN_R}b*|A>O20;rr)EyqJ#e z*@fy63J17;h}+qP?|vZ3Z&>+u7#q)?;{s{lJHWd~c>e&~)5!yTDn#ZNeEt*0B2n#s z(M}}NIrA{*A_nO=g8@E^5q=ey`5Y$rJm&ZUmiTon^P4E~TiD{a@rWHq)$ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$8.class b/bin/jake2/game/monsters/M_Medic$8.class new file mode 100644 index 0000000000000000000000000000000000000000..c26ea8ec4763e8089626d1e207419a3f40eb054d GIT binary patch literal 1738 zcmZ`)OK%%h6#j0mXC}6%)Cmp6DIqCsA<(7c?w#A#dy)5L%o+js0~?3pm0 zwCa)#Oa1_hu!BVBG{dr3oxVK5M~Vtbo4%idY27`qh8 zpw3&i<-NqfM-zF5(2`RT5paZcC{P)WuUWQO-)oeFyJ?i_f}wxSDI4{?;abw}I742| zYBCJ31xNxT<~-N3t8=~RBm9P}y=YplD3Vi(`DWoDehi5cA&CutA?Ri!`nK8WD z^sbWF1;JeqOAFYH+z&tZm!yIS0Eotsoa&e?Oz)X=eR5rvd2V*r(uV*CcDgCW}`rd0m8Q5?w@8&NIq88DqD70W>+Nh)-h5lD9jjU;sjHEL5 z8G1h@r3VpuMo5A$BSb$&$=3ZKlE=s*vT>ZA5@3>~1mOL#Pe}Ob5*>UckjlHM{dm+* z?HMG1UP6ni57aFl&2EM0t3*!&dvCR&&#-}CJn z#^Oo~b8$s^{etg%`Q1`Bu1v($78b`zD1H2w*!+OjLMn7uGTEMhi8!gNi1919$kSNl zSCQixyv5hi;Md^s4ZOp%c#mJl`#gt__$EH)c^vQ?_>yno8@`S2c>zC={v&?_Kl3;7 z8!zH_Zm=F+Vk*fnFSkcz$`e_%Ga{+2VU~sz!ym}t3=MSzzha#gZuI&Go5Fby literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic$9.class b/bin/jake2/game/monsters/M_Medic$9.class new file mode 100644 index 0000000000000000000000000000000000000000..3705c0f998376aebcb745f49d8f722ef34e560cf GIT binary patch literal 1070 zcmZ`%TT|0e5dKb+5?X>lK|qj;irP{k3W{P8I+O~l!s1e4{d02(n$^syz$`A z@j)F>#|KAV{ZWp4+R8*7lgZia+1+n1-~Rad^&5aWSIZL%v70<=UcZ zZOgzB)m$g~7?Pf~O)ES1-QDo&HOEQ;vlfYFB85pFpBAMHE6T`ShJ$a6x z+G4wT{o)kRFTMjwjA6pSI7446?oc|eRj_4ke%-_*ZZIT@ye$1-n@fhy^lqM>Oi|^# zWn!v@YafUDN)wV8QKqzs45rE7^N+YZY0$XXrZU_!F{2Ddc(m`@)ll78Chp?_B@+Bt zw)h~@RVUV0`iBC zi6uOvX}dIEE~Fz*{ySy07a@1|iM43T-z*TwwtpCudEQa`VYat#R?$lfv?0o_9}>L< zE^B_p0I@$Bsp{`FA%smKc(CT$VaP)wgO-!#i{?p7NxDJWJV{0}KK&V;ALu7WtSV+> zl2*EwcCVlMj$PxN<}`NmZ#+5x(?Iz}`X wlbVNVO~BH8ENG2p9fPf0?K&tcmhqe_(eR>)vw~HUI@ajipf5=_)fhd$0DKb%7 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Medic.class b/bin/jake2/game/monsters/M_Medic.class new file mode 100644 index 0000000000000000000000000000000000000000..e6fc39b3c5aa200b5432ebc3542d725b55299d4a GIT binary patch literal 21447 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$11.class b/bin/jake2/game/monsters/M_Mutant$11.class new file mode 100644 index 0000000000000000000000000000000000000000..fbb6372e07174fa46256aa9d7a5eaf04c7e787fe GIT binary patch literal 1241 zcmZuwOH&g;5dLPfuq0VD1Q5jsqNoWEgW@~B!Xp?=w5U*6z#$CDkPJz7Q@a!WE#AC& z@t~Halx2DF=x?$tdlIx(Wvh02XQun>ue-nf{`2!!09TQ>U@(mB@w&L0s`92tHC@M7 z!t+ywQlYK5qb9Cgv0yTc2Aq~0wN{f(JyYQ=a%SkgD;=rsGlUY!bp~_6t%wLh2;1mE zFT>Hibi|W(b4PeI@@^U;lFpj z=u2#6=}E3fa2^*dOfVb?#O39Vjf=QMX*}*!Iz25$ki?XQNrvG7t7V$lGr?P~V`CaK z1idRgp(|!Md1#Sa*<3EU8Ab{;)metYf6(T+FKiOV99379H1%Mov_ML-*>XMIuQ0CT zriB{}rvf1VjmyR@+@=QjZriDJsj*xHY234Lm*IFI_Ah)J_wj&c)`_DWhnADebsDLu zWNggqMA2>{{{;zwTIh?$E~z9~#_xesXSr-L^cNK`*9*MWQK6*=94WeOuPm}sOSS*^ zuW(rljfA!2lpC&3_ywVAE=|bJIgaoa8r=7VPXi}pk_9>|>7Vu%?dHfbvOSZZ(D#l$ z3{s9(k3pX$m~3T3k$s%&Yi-9W`$)XR(0g2-GT-Bx zZAU-i&T9-D96anEm~S+nP92kaHFgj)DmY^Z%o@A6ZB&san=vF-j6LMZJ~iqcvS+)5 x4#*NUEMSr7#*o1hMyb3kVTWP-K*qvyKe<1m0|Pm%kTq%Mz+-wN6r|fi&o2=b3XcE) literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$12.class b/bin/jake2/game/monsters/M_Mutant$12.class new file mode 100644 index 0000000000000000000000000000000000000000..0919d7ec5f93570347aa24f6cac099862c743215 GIT binary patch literal 1243 zcmZuwOK;Oa5dPM2>&9^*4dqqdP#|dwDJ}2tN*{rg1XKkTK@VY@EXmTuj_eK3U&4(W z7Y=|BR0wh4$ZtZ3StlR^wd5V|dghyNX1@LY^Yd2#GbmXw7!Ew*>tZI`;BAp@dv2hF zA7snba#wLzjh~vaU^0wFoEBYmrzzd_e4Tg5nPKpfbfvn&5KCuP7|eOEE^NdQcQAlK zhOH&(id)_Gn(*)NwU%H=mAo2nt#DuJegDu@O&Ks8Dn)W_MkvQH&=9J)z%ZK5koRMr zZE?4ettel*joc7M7?SOff3+!9)t8N?q9DR|*BN%EqZve9)>KvHGWX57S3n#)u*)%0So&XMtUJ#C0p4tSIyZ42M2M8A-*DN%JVCN zXbh!S3-n}GY#hN+3*!u1B5@_T=HM8PQyQPU^{}ZG8yQSmm|)l*VRfBGc31F@=Q^0e z34(qoeW6Qc*t2PotA%1Qb3cwOPFa{{*!B&m1UkMys!BrYs7)VJrt*2NF zJE^(k9n9%WiC(7Q2}yx^7>L$G(n++A-xH_Sa@l4Wt|(qxFY`{QLrYKCu6SL)CJIuE zb@=yXIH{#Za$a<6EiWMavQSNrM&uM-SNQWS9t0wwi4!vE0^v$Gfc6&cX2~+L0~4Px z^o~9Zl8%;-L7yH>`kA1;({my_Ogj<>w$iErPLS0Au~hOcnO?X?htY|I#{Pt+u&p2Z zjQ}*K<-sq5_hO0VdnUaDiRJQCYIO1gw#TMZdp59law=(W;P6oAL9)Jq^h=Ds$H__a zJx)7L;v+7;#z_C*TJOMoqxpn&Oz73{ku((c8(mBrk8#0xf*jer@eE7GbCk&5HeQ5e z5B3Q4$r3fpV}a-6&ns5O*c%ho4lZ=^ksF?|+CoQ#H4j!#i zEKgoJsD&lv!J`L%g}=n|brNwbn5yZ1-TmJ8ef{3+pTEC-2QYzk9U4RbJ)RR2kqpm^ zNWLH)SJ+M@v7IQoT)KnflRA71T^^?u>279CnOjKlU2u4i|9ubvu10Coj3?W7S0db!Op#ZuK^q`j)oSOYU)-1P3sTu#ORiMh`&w(7+{(QurRX zib_P(H$M*qaTyaj#u@6$5k=RuB5`xaz$B(foy}#ckS~=oT0QrR`h>n9uHlA`>nDZY zp>PA!m?0(#%@9-g)ZBX2ALpAg(27|DbC_qSt<>6-=>j#JH^6gJy7eNKbu2M-cy9fl zkAW4H>wpyZ-Ly>!rLJ^@m1YQSxICFl@ZCz&1vd&sJ1L^3YRk~ywjWbXMUA^6lUBi@ zrb-AmTS)1MGxVG!{r6rNjF^5I#DrrL|FZqB%q>DjMo(Q~;wiD}bt|hL1Fr!xcKTN1o8CKQbw`N2YQdE^?@$+3K1aB^4}+|m4K-h| z;5$%4N*Cx;;dY(C?g$+qLZ|(5{eFgH){*l Y5ZqenS}{5X3BFBZg8m>ms(aJ-2d7L8W&i*H literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$14.class b/bin/jake2/game/monsters/M_Mutant$14.class new file mode 100644 index 0000000000000000000000000000000000000000..2ba1e751b85c3711095cd50a91592511f7e08b6b GIT binary patch literal 841 zcmZva!EVz)5QhJ?ow{*cN<(N%DYS(al2%|*xCJ4hwn&u{F0FdtVr`vmvcz5^d((FT z!5eS@1VZA#1MpCY*~F;~#gcbCo|$ic&-mBxA3p)?V#kHWu=bh{#ct5&i3pNZk570ejbFTU^g!ke8=X?G{|Ra{RQf_6?lUx+Ey_OULCjS@ zIMSI^{q`&t82n_cKTJd{s9}ZJYRItEEYn3#Mmp5()~hP6W68xLNh@_P;y#vfgP~T4 zk?Jg^iIhR52;r)@iCZpK8CFZMOP}K7HrA-&RB3uHLasHBNN3|OdSXI`yMend?l3H0 z<{DL@_OWT0wP=)OLTOV-3&}-%_78LV=?vacI?5vPLYl?QO&9;rjFnb*prSa+~~WeA2ebcgcH9mXWP&f5+@+da&Tp>5+x?77hh#^7!FBlUE n@8MY=#+=1TZox58{^4}RyUG$+iD8KX(n@pTuW${IC<{8f*`|?PiWQ>OLj}IPL;F<2{VK* znU*OoGXzHCd4^!hE*TL7(5)hbFhgI~w2Zk{y=XW~TCrv@M66j455l4GBXVQqj8en(2_OHsw5YMV_KETE*xe!TzCC1thMTmf{^Z#R);Q+ z`b`)mQx^p>`CmM}K}L)Nf_k&%lr>$lY`B1TwM4Xq}~8J3aa zM^!{|jNzEy`T>9^rQic9j!XTBplp@2x>hkHdql;9IKj}hVbpBh6mKx_)pP_8;SmK7 z6AYdsEn(J@IZae2W>kzK&YhsabbXpo@hHwygp|yq{pV2m;TQ9Bm`yDY+`04NeaO!6{lI zn8g(ZX@+}zpk&RWif51^8;)j`?7CaUgy3_?DabMm_1-u-(El;I z6Koel+haSp{{ys$H{8a_=&AQVK{fnicqPy?zY?T3)H8oEbdV92;<0cW3ArSf={UZF z3q&RZXJg@5sEy0f>1e8rnYH4(7nHF?!qo`H!UM{H5(u>MY@&@9KExpL^S5z`$kpI3 zUiF;vRvD%XPo63g{3|H@YpDDi^zv`f&#z;IZ)2Q)hZNsMmVb{0egkFRhQoirTl^;8 zCi)J)h4=VRxW<3RNBkFj%74XY{5HPizqxoVc$jqXB6Of*#f5kaCE8J9h-aYeW^xM^ zR4Gm4)Pg2X(EnPBervP~!$CjR5u-HKNT&8VR4!sewB2!7v E-*!#R(f|Me literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$16.class b/bin/jake2/game/monsters/M_Mutant$16.class new file mode 100644 index 0000000000000000000000000000000000000000..fbe626636154ae6e6df2d8b642c265ef783d825f GIT binary patch literal 1620 zcmZuxZFAd15PnXUBgejy#4T;pls1Jz?K-KO1VSODi6ox+cxXAU`UtThG|z#&r9q4((zBfQQUVhU$9qBkwY`3Czb1*H+iH;?g>bqIr!vtXqG>f` zO)h2cjN)0GGH{aoBS~yhX;w{NaGb^@gVwgFAW;BSyPDP8cRd9&iYYv2;4H)02+04K zaGb+=hLrF2oo3Cq+8xQjib-6+3kIHNI34jGiokIZFA|x+lcGG8OtDxf6tdM(Tte1B zhH4&x8!+a$j2s1}s!v7v2uE7-%rFtU^`&L!%ckrstaB{lRR+GI%&VdyU5}hnncYJ8sKjUS8prDas_R*8%hA_Q z0*cTZ95>W@;=Zum2BoS(Epx13l|VwcEgCSIv;;vCX11!YeG)ova1^jfvD==ie8`nX zX{Z2$iBQ3c95?Yc;SM@zIW6~z{zrC#a+Pu0z^&m94%u+Lqk3x4kh+_wL=rBsFM`d6IeR)~&FXKawdunIQl+tW; zYb`pwen&Lb*nY%eqD~DPIz4W`(V;Pm7D(LzYI$%6(9B;#lS3%yxC|Y1U)Xf!jF#&? zFuf*2a?9;|4NR%C-32tGr&BNiUIp{UP2|BA#BWxPArqKPIhUHBt3J`;_u-Kpme)l8L1=AL`+d41=*=e+*;{3U=XT-Bg34Bs}Yd@5Bo zYCKhQY)^34OXc#px-e`pGC8e5W!M`qTC~MV#k8w)MPrSO8FtK=wkggtgyM-+26f&k z@(4l*>uAFchFwdh&9BvKx464v+_E@BY{@AY)~ex}^4z>sMaA?O4lD(7Z3igL&{pOm zyTH&DPmuK;BV`$OIkhZY(=Mmmv4=D@AAi13;e~3R)J0N}BjvEG488GS7G5+9A}`X3 zn_+aLS3?g$44`Q0b@ZX1K`*;b-7a!lnBpE~+AdNU0~pdU$j}*xbBQ>mFzu4_PXPgqU%(`eYnW=q&|;(G1Wrd&TPBYAsWt2V1>scLX%n)vi-{BU+K#)QIE^o>9@_Yp6 zaY4f@Lw|sURwEsA5`rqs8kafebu7r7VVmC-C6}IrlpeQA3?0i7WzJY@wrphCsk;T9 zF=bPC{27|0Y)PtV(JokyM}3#$qT*0Zde*kNJ8v1D$35%^O$-ep{FNq!&KjMLlVl{@ zMxUYm32hWaXpNAB@&+m?qjc7{j7WCSiD4&p(JBLslav8MvE7eJY`M$mP~HYyLw{Xk z=xn;apa7HxD`O3Gy~5}Q_Kv9=*str+r#M2F$D*5Q9w}dAlis8Bxg(vU_x@|3xo$>E=zB@Tdv)bcFU*o zL5;@52S0!x3YqN{QiDyp)9K9o_P;ax=jzvQ06W-rP+?d-=VP(s4|yc~C|0Q!N$U6d zy-ahZH(&2Muo;$1Ne4_mDKMTtXBJk!QP7p!i9yJhbpERX1h{} zk6Cmol4E`v3Wi2E4tRLN6KVY7r>#daWmxZ)_WGZo4nuV)^x-~3v(={TOYVnU4gDjX zNHy$CW1gWN<@)>QS#&}9gjQpQ#a0fgc6r8P{x^=!FEiEmDQYerRK}0#BAS6@@ij;6k=z&YLb(X}$URU-8iNC^c z=m8`o5C?t$KMFB+0h>tO``S zzE-bi;hBmD@+?pSwQl6e;8ezbS}$JOX5uFT2i@GPWrErQg|RZ77Xq902D?AVRv`7b z)i<%P$L%#-=7ccQKlCQbn+`)2D2^>~f}RR&*Yh*f$oI_9v>R{NaRu8Bwg}H@Se%z| z6+7fmT7@4udKra_Yq;)UPhcZQ@QT*HF@8|O4eXO4rdX*FNw$Y)hi3;8cl>0_{ z)1EwEnCAAQS?sBoerjv^@7f-wrqK8k?FCUnQ+mowqLG8U0(&`S|Jf^0>S(Rv<3J{f zN^le0Dt{Jak=tbLuzJiam<#v6VeJbaR^T$a%&=V8JS?&<&6}9ZtOP2kGNuF%m{S6) zcIh+I9G9~zUW*c`H@9}oolnUkb2aO!7hX4Qo literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$2.class b/bin/jake2/game/monsters/M_Mutant$2.class new file mode 100644 index 0000000000000000000000000000000000000000..0a798d47ca09b5b877b66aaa0049168804b66961 GIT binary patch literal 886 zcmZuv(QXn!6g?M~E-c#?Y1LZWidq$ll>{F#CR&RjfxguAp)X_#<1)I;HoJq58ufR4 z&^~D5gCF2W8SgI8tdUK2&fJ-M&zw1Te*gLT3qTY5HZp{rH{z{qHaszwjd7qOBg3fC z>-Q!`XtUe2VG*`dIfvSGG$)CHc{UX1JR>YUQCgX&glx5TLa+{kp>&W%!9@;Bgw?Ln z@@O(Xli@3I=1W4k8w`YhB0?3%vqj5{R79wBQ^zfk)FR|OX*w?m>(v@3zY`5#Xs>Z> zLZ!V{9#;tNIJrPSQr^fA@@l4;P_L%>Ep z;07V%DZ*x&AU3nF#^*s8Qx|X(+cvfcTPc$NF6Lqfw+O{3nCRhLH+3A`#$6kC2pg&D ze@<|*i+gNJQpu+*ykMu(Znu-}MACoF)};l{U0{;HjN+C$$H62V$hL~RwLE_hk7BdA zpND$j2N9dylV%hQ+3t?kGCc4_6v+q`@KfM7hGgU?z_HEIV@6`k?fpRh8&5KDcyt&+ z?_u#~kz;q7#JJ26VFjx^#svF}F+sLm`pPgZkJ&*VQl;6;(lXX&rKd~~Ybsq}y`HhXk7h(vQ#tNMZ=JD@8$(fJ)Y6J=lxw*=To+ zO8*0WsMMwpRn({Ug@+bJEkaeFtE!dw89eY45aP~mpi9e0Gk4~Go_ps0_43Id0A^6J zkzyFVD_U}<*bp6A?D#6wG6;*+TD7Z%(&IBF8y3USgwu-BH=3SmU9O8Qa%RX}^pvL; z72grWg^BLoHUuN(ECyv#khlsH>t%JnZ>97Iu{&F;tT^LVus&Jt+c1_*Fr6{B=EhM zM$yJuhM^?%x11c5qB4HqH9VE20XT1CmZ*v&y4q_Ot3o$tmmOTd9D}nVUF`=IsT#UT zE#_~R3uWudpFkELVcy2a4Eqwn6>rnQMSMam1wz&RPBana%;NLE&HBgmEZcXen|lmB zb&tR+m!^T08T!|?a9dTe6%B)JfM(bIZs5wYXC|iq^+cXE|4lQsqTIG0(tlT_Zu)f_ z*BM3GsChuFj zY0*yityRzLB9|^bAaOLl<#0THoFH|}-QGc(KP1hm|9G8FdVTl3@tWeK%kN@}mttdl zzq2-F?HR0u!77n~AWS{Rx$?x|2j50H=<>}D1|H+X2RSUnd98=0>4>ZaA_M#g2KX?} z^AXJPvBTfT4?K^bcma?2BzF09#L{HU#2!n;2`=Fn z@ic%RaT!Cz>o!Jl1xr+OnJVvt^#XG?RwiCxDRq#v<%s>OxJJ^#DxIIw&QcEZJ+xi{ D>?{(* literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$21.class b/bin/jake2/game/monsters/M_Mutant$21.class new file mode 100644 index 0000000000000000000000000000000000000000..d52c897d554f4681cd2370b8be90f66df61993e4 GIT binary patch literal 1042 zcmZuwTTc@~6#j?S=OZ7U0_x+bgJ zNjp+PNnOQ^Q+>#H|F$V*ls!UjjIszz8N$o(LYtzAz;RbWYkX(oNFVNHUU%rSItfOdown)0rj- zUV=fF1EgDBCz2V`817(@PMu(dq)xzx?tUWC4cFPh%dt@YKa`r?3%ww3g2DFk6^4Hy zqs0{_E|B1tU+`f08|FTCtP9DnSTe{~jM>bNjbCc)4(A1==yM%ezJVOy#1!AcJb#Ww zzKs&!!4`js3g7LJ8tDS}ND&44tH+7f8f8nu$g*6HvOet;w2lpu1`Q2(MsJ$@bj9@i E1?@iI4FCWD literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$22.class b/bin/jake2/game/monsters/M_Mutant$22.class new file mode 100644 index 0000000000000000000000000000000000000000..3ab8c4a8910c3e6de5cf1ae4f13746ad2128981b GIT binary patch literal 1875 zcmZuxU2_vv7=BJqlBLNhNZMLTu?4BxQcG+qiWb^JY%rQ2Sga^Y+$7s%$$o_0O>Bq3 z!4K3?@lJ+OuAH&nN~cxE3x9z3{sgc53y$M^c2j3llbP(h=ly)n^S=B3{?D(!0Z3zA zK@Y>&HMOp#Q&rW}Ql@RWp60lzLb1^FRLdJrrxipPhC@zEmUltbtuqz1LB0&JQ@W*l z^9+1qa)lw1u`5~}9K8Zj#2EJFbxS+nG)tOuNi7)~Lo#odRbxeUba`$oBVJ8+8II&b zrMlsnV~AEYFZU9|z{DhZx73uOTGiCD=jc{-ZV&b|BupQEu|YryQXr-$!nw7IUiOOK zTsK`dH@VV_K@2H)l;DOCwW9g5< z;25TeE<6-~(-1IH- z%0;LO-s=S3kyxN4Qzpty$Dxswfw6@@ci7EiRiL_ykF;b`7r53Hi*Gdq%&yj1nlo23 zR(Ap3`Dlqj+pEd#6RGRvI<>u`nrc;!CF%N>J+)jfsEzh&i7(qtr>tdlxqSL|cH42e zI%qvDS!Kg^X>}AduVzzIM9#7_Cu69ttGPG~nkCwo@Sn8N=&aCbmLww?J@yOsJfN2z z#OWC)3En`2j0rl6z=>oZooH&YkDfBYG)b9&Cm;EVL=Y~sgI^DY^8Z4U=nq0!of5<- zW@Bm#1N1)_HNHoJULK2VBaZ zS20AdP4w{=2KgF}@^y^!8<^oYahiXCd43BS{vitdBdqX`ahc>5{t0UQHXQybZt%}= zljJS_IqvW;aF>6HdnCW(U*QM-wa?moz)YJp;s_ROpXd!V=#AP#y6c$n`?&!J!_=${ r%5X^+g-7-TVuO2!|Hfp`_z<}@N!5cE-X|HMnFiMAAE%_UfAsqopbEmQ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$23.class b/bin/jake2/game/monsters/M_Mutant$23.class new file mode 100644 index 0000000000000000000000000000000000000000..30fa8c7c6494fb05cb5f55f898c43d45df68a0d4 GIT binary patch literal 1138 zcmZ`%TT|0e5dKb+5?X>lK|n+dPX-*k={IB zbv(f;U}d1cjHw>d*(+0C1F)~s04Z+uim$?_P6mwmndMJT}#EOL=vVCag* zD0|y9Y||+kE23gK#Y8hY7+T6T{<#7-3zSdL&L%@o)DO-JR$k;pBK9bRljzaVP0W1F z8*v@II7QbgTMp3+tfkb$T|hnj4uo+AgBk`HI_h;*VcAB;6s4&J9YYvq2xWO*xRn(y z7@DJNDSBdA+3%c=kvgvV#8c;LkhB&Vit31Al=92&HWxcvG%=QzflE5ZWI*$_H*B-$ zgzq~Iax3!sVO+&^4c8cYeIUQ(=(vGt zhOkXj}fv_HaJajTU)Pgzo2tw-V=m(n2lEjoGI^+*~SE=q1e!(D3ZyXs#e zW6;x%!z)SK^gQm-B1zk{8`MtHH2E5NQ)C(0;OJ*Gf22PFQiN1RfHI#!rCh$lCDQ(ZOuby9LwW8iRgOz(7LC%U1W#>{i0`8-(ns& z7o^j!9pGa8;XdNQ-2=q;FdqMeD|@&}=FS84{c+0y$wqmBR^=u7lvfy1USm{wg9+s= nrj>U!D&6&V4Jy>j3G)?2$9#oD1$}_u_STqnZC?4Om~y%J76}h zEEiU}aOc9Zv|J?YBqcHBLf!a^??;uEuZpFAz^!Ge=k^R#^H?}leIMtZd+s^kcg~p` z|Ge`qfIh5-P{VL!QC|{$iM(!!gyq<-6eTy2&ZNsyw`E7)y&(h`4)~PDZ8>I&VMAXg zRfgc8X`6D0fp>PzF$6{(Lqx$5(NK#ZL;aL#i|MkJ6{T4{TNDfpQ%+7V&gmsn?W@9o zESN4s+m!F6z1$gKsLczR8e?ec>>}+IJyF!{d}2nHOgldi#w`p{%kw^CnDiX?#*t3H zWnq{(nUMqkSC*PjcFjf5jN3xEl_KytSv95M09pu*g3ybyz`#;Uy;Z{@C64CJY^HJ) z!C@Q?;Rr*c&&mYBKcc%rLmS!|YVsz-LBDs3pNwfOJ0<0J7#)PHWxBaU*$}!c^seeF zQQU>j5RPr9YuiN)UFarvT&HXsrfrC47@8F_J5cOODPwnQ=s_<5?x`~z+7rW6Dw!m7 z!nlX%vxxnon{cv=A}8Ghh3zJ?jx7?zj@xS)eNjq0%Bd5(!%tH*8ty|sLwL4Oa#knI zEJJ+HH+OrSN+}oaXXx0=1=q@01k;umVLZstzLzGEWb|$6DQ^cgoKj9jJf|kjH_!g57LasoiaC}VbV(!N!4iRmYx?%{IG^c zFh$u!rP1n72VqN7Udp&qmxA&kf@wS!!lMi=zQ?yKX*i=^2)Rq9ZI`VmW^guyS%!U; zD`jaG6H{hZ!yL|0CYN;Ea4fH`lflzBsb$blIW@20JT6cS)!{rW`~F#`bjHW?936vKh;jOC<_cT~ss_G?;t8)kh7= z6~%=ePj0pYBAJ3IQg3jmvxRjj_1u!zk40yk zaw#X0rs{Ncn|-ubRTx$5xScCHF7>IjkOhZA(^9rAN~1;Hb%l$gAhVb(D%X{D@b`UJ z`PS72G*+&%D`Y^KSc|`fCi)J(fwNa}d%Tv0hC8m|PECtlL!9>qFQY!*kZ2C@>p1>g zkTnNuU;p>dP5DWmJVf$%!vmgVAYQwHp>;AmRQnnN>s8ak6|3H1Jg|WzDWqslU&rGw zHsOhvU%`G7J$V&RZ6JFYb(Kw?HVPl^;qwC8Y54(S{6p;HAEA+dj28Y0T4{Zl-#`cd z6vy~y=%%@c_Wk^G4Dv5xHV>2Dwwi~WVB@W}{Wa!FhRi89RrDgDR H$fw_bF=6^J literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$25.class b/bin/jake2/game/monsters/M_Mutant$25.class new file mode 100644 index 0000000000000000000000000000000000000000..977dd4f29b3904320b33907499deb3721826d91e GIT binary patch literal 3444 zcmZ`*378y375;0xX6M+-v77r40tDG*AR{{}Vn9i<*|3_$=!T6F&Dfb~W;#35Gfwwx z5s`?mgi_1<5vUcL9a zZa+M86M#W6H;yiWV|SSo)?lV+R;)~=>bRa&cQd28(S~O_-s-{U#32QiN0c@?-qw=s zOsp%IHBuJnKGSw=?*#%z|G>C_+)yo8DHup9#Lz7;Z?o-K=Qb)kt@>7TXW0_y+g#0? z<#Dra^E?zvuVlLd$8C=6^;8b66^IorZ)8YdVgCSWPnwys=@c_#Ufp(zYZK@d=pEaV z3ypIXeH5~y4V(#qCH>JYtb(2Qa^Bj3^OIPFC2=ekSP*ex69s0y=~@a)u}mOUuuQL1 zF}-|=^rA%hNwZEoNvyy#;#f&OL|B4Fg=26mIWlRM8x#gHoWgN9A&%pZ-ts)pE-S3Y zi2^;Fa>I4Y+Q^PRt@q>X{YeV_7!c?x+H_}8=lFVacBNLW^H~!}(~d!0GCX+siPP5X zHYZa!6`45J2rP{_-)5}vESyGhaH|ccU^@kCkH8|1XvZ}Sj3ki-rO&ekRz}EAMb z;&eKtCd|3J=?*D0BMF>wl#he#Bh#)`IFpT%flmRHgtVET;;!x5kKl_zjcn}J;@TP=eZDZDtc0k0)6+NNJKZKtLG5``_14fI+9 zFFVShb>OWE=XDs+5w^7%xW$s!+Tj%n=SK`&n-&vzWxGK=KYQjK3OP1V;XPO;ttMa! z%nuWVT0^bHpI0bE`FSmY3);0??w1to4sCLuYB9>)x~__X)1jSBpf;=Rl^TVXCv^pv zwZqHhwImwY9mgbfnn>n_m9DUd)f1KKq~-0cS*(1a!fRO=bE{=ro4;P+4Y-IBky_G< zXeC*WXM1~dE)|WXOX*G2Lo3ws%I<9c3?oJj$z4+^402h$Md7WwaI~&2oFv|ki{p5Q zz_O^DZ5y!F>FnYq3h%E=@BxJn2E67TSFUHu^=AXT^bv)Ra#XrYmRa^n zEc&>@Cv>oj_Rid__>&5sVzI24uFDnl8HKCyS*q$F5;@NBjzH3PWD7~d&j|I+20pLw z1-6o`&NN?C*pDyK-G(#;o7!euVZaiF-Vz7rxdQoL3Snhy4lVJ)ee%# zitgZ9Oe@@gLsSjn#&q3Iff`vf6FNSGbb=XtHIA>eH_tY1g|9JdOw;iJzpijIOPX=o zZI&mP=T?Ppuv`X$EWV|18w;9|s5dA;Gx(0ecUf$N^Y1BqA3vZS3e`f9V%6#J5Q}G{ zmBo(~ejIgRSEEv6;-4zq!SZg?^UOT?l*P{#e!-$!8g;*%b;x`Jv z#qVZSb^D<@=?LG5Lk|cu@69?igFh(T#ilWB!~6b8;m=Gzr+F8;HSxxORrs5B(hWsf z{9WN6ENTXnTQRHtOX1%vmw_OQdlc?vL0`z4FIoAC=3!^>UxoWMPejgT{Gh@^{83Jo z=`9iT0`~D?g-7rx)nCZQ&4qgeC(Xj>sVjPgp9wQ~T;T~e>d80ib>iYBmLFC)qTdNF zy^^e?5WmI$oM7Kg87SNGht4xi#&5h=(hoU;h z_d9CV!e>}&tlFsOtznxVYIB+o!8QDSr>ERTCtt3*^obs&?`4$^r$!vds&6P$-CHhJ zfl`rL2=sq?{n0#5vn-8*#@NX>AaQ^|7xgUeTV14iFC;DY&|C#dG|r)!z+B9u|4eWy zjZ9$l&A*O@z?|7(+!rx5TBdaJz_cqz^t6q*a0&|#VtLQLE0Ihe!YX6`6rS04@-$Al z9)k>@r{VJ%o~7Xn8LroGh~Xv;M;LC_@LYy3)o_gAxP~uhxLw0nF?_X#I~iIU78&l+ zu*|Tk;cLoW`4dyp5*s?0XOWEU<$sE8v}Hck6QxtO&{N8Bz)W+NPg(!Cjt7Ik6#Ap zP9MJy&>wyLB|vxk_-BCrS@$JjO`*cydZ0JuPC}#koF({w&fucq literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$3.class b/bin/jake2/game/monsters/M_Mutant$3.class new file mode 100644 index 0000000000000000000000000000000000000000..a248cbeddcd859778af4ce77a29cb2c3a5f7e40e GIT binary patch literal 844 zcmZuvT~8B16g{`yvUIxzEC`5*RZ&||o4{j@i6S*kT4Ms?!Ix%e$9C*?mh4RZ3mWyO z_@F#!;)6fHA7#9|EzKI)WasSNz31GIv%mlR`~_eS4_ssjTW`fs?$!EYBx|Ek8!IDI zYj@gXE41C-ci|8=QaOj(9uJfrKJAG!&Lzw}R$AF7glwgHLU0bkp7fAK-bW5|gvFN9 z^5uARDx+g@8c0H^6?R2%A|e&X)0d7NC_^Z>QnfDWr%uTArENYZtW>I;{7%#Yq5HKX z8!6qd&*KWAI7+(j7%8IefElc5eZ(CU{5TIO@uViVZ1V`28r}CtG%?yFqAp zpKWOeVUOEwYAvIKKo}zp%3!zoA3}1n%N)BL?K2W%Zs!N)zwtu`9-kf~=sg_%Sm4;7 zBrz5_A}nB$&sg9gV=Ry@Eq!H}&|`JbhZHqCqn5BdrM_YTE`z0WtnB8_vEloL?c(*&q@^vTlmG>i7Kl{X1tCFcP^6?nYSjgsXqpVk5NBL@Ch!{| z;4fG}7a+0V1NbP!wUbmv)ROPBY@U$yVIhHWWVWDQ0JuX#r4f~Or5yu)x5b!1(|>zJEv`$0TSUf90w1fk*4 zwWRHbU7lw{YZ>hY!Wd~#0`HptAS9M|%)ZOsLq=lEZU4aRH~z@LW9u=3-oxR`0{i|r zh;fcR!aNq(#sc>lV}WdO@hiia9;<^sq^Q|*Y7t8l>Pr^jG*~>t@=opy>%L$3j*|1` xT&KtdfIcEmpHN_&r_YJz%9uCNWCh&8T~^JaoNz1HW^{PFzz)A2-^E4p^B41^v0DHD literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$5.class b/bin/jake2/game/monsters/M_Mutant$5.class new file mode 100644 index 0000000000000000000000000000000000000000..4feda78e0d43c339fa8ec487e8bc201e17633f48 GIT binary patch literal 838 zcmZva!EVz)5QhJ$ow{*cN<(N%DJ4LGq!m~y;uM60+9Fj-xU}klOSE;iiHW^N_NGt8 z0T2j@0}sGUfZ#n4vyM|46-(ancxJx+cV@r;`T7mOE_NKu5jNk5vE22CB9?xfs7%W= z^Lzc?L<^<2o;t7z>!q9nrH@CU8owBbx139ue-^4xKPOnN_6fn>O9s+~g{p@N<_SyP zP{~)5_*ACH;xv+kdN&C~bRyEw_{C3KkHU=5?3VWWkDd;pGL-sopU`NvIr&`pkx)bb zNT;D1b{4Qq@Zwy3KjSkDxPZ}WOjvD|;c^fLy01I!*Hv7{s)H3)R@%IXdsxE_Laope zsY?NS^PU2w`w+YLI(l|MnGr5g_;CaMg@8F(;yM(pNSR<;h zJ!~0dEtsUKRN55sI5HWXaj(kE*~tm+Q8Gyb`7$(PS)5J%vFR!g?mz`ml5tmiQjZdD zq<5&4O!p#@Wimq(JafKD$XA{<`wn|g*b>{y_7^OC;Ey@Dyt-^bKVWmP#=bXAV!Oy5 z;R=>`HGoHK4Zx~jea~iEZs?$&rBdsnw2o^<={{%kHt=>nq45#xpV746T`;B+e!->R iIcH^>TX2k|`*^@43lH;}7TRoWo+z-*ugftbjGw<|FSpVF literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$6.class b/bin/jake2/game/monsters/M_Mutant$6.class new file mode 100644 index 0000000000000000000000000000000000000000..713cc0fe01b4c42f27e875d28aee2d49cd8ef72b GIT binary patch literal 884 zcmZuv(QXn!6g{_4w!qRNBCSoWRjWd)U9E{P7>%iILIQoE>4QFy0R|XZX36eg{0ZNE z@DqH{M5FP+5AaJ&H0l=^?=Do==p;LL?#{jEo_p?m`uX7_fL+|QFh^K_EQWH|>5Gwc zMxG9g^aH2SYD|pKX7jd%Bw;lcv#-t3Kpy&|g!#TSwFiV^xx&Fu zgyRa`cbdjmx?f$uDMEe}v2UraD_gGTjX82R=GfzLV2Sq-;5yq7AW_J_Vlzz- z(LrBhsfpjI1)QFxK4N$-gVK8xpB1tC`~~doH(1M?x44*m8G=S+7DMLr4O#k*BK?R^ mOVi95Dr2CG3gd1?Sybed?TF4bW(Y2{!}|^XG8`20<@F22_q}BR literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$7.class b/bin/jake2/game/monsters/M_Mutant$7.class new file mode 100644 index 0000000000000000000000000000000000000000..e2017e48a33f3682044aa344dc95adc8d31f2b4a GIT binary patch literal 1037 zcmZuwU2hUm5IuK+E-Xu1DWw%_MXd_O7Nu%cjESwqkbp03`rw0P3%B$N+--I*{Z&3_ z<459yKfoVloV#qBt?eel09l6q1-1DpL zPJ65zsa7^k#2E^aoE@q5j)WY%={d)g%P{pyNTFUc#7gCThWNJI;}&8_*+^iDVWuS{ ze?J}_aBt5!7;=Ve%k4VDea92p4`0UBk?jMS6#E8;iKE5htS& z^3bJuM1dj^f=l5BZkkwPSc-sMx`>Ts++vswiH_V89tvpG2I<|9+yfNrf?r66Au{XB318b(_4G|jjJ+!fg zbq33K$Fdg^Wlal@P&4uPBC8AKHa75tRuB}@Os-r(v)O1g0`2&Gcu0$lj^J!h)P2_- zdtKfTda0Q+iLPr2kji#scj)>gfi_o1ZjZrkO3A(Lq2v49M-e1Yl0AZxgh{?h-UeAl zHnI8>$*=UsfJLW87Df_r3Z}`oCrM;80^SChGp28GcuSbyJ$=Y9r6>D fumj=YDV|Y}7&e3Y=XgOjPKyLy($AuprcBR2I$7lh literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant$8.class b/bin/jake2/game/monsters/M_Mutant$8.class new file mode 100644 index 0000000000000000000000000000000000000000..69804d093745bd210c51af76f97ab913f9e0ae66 GIT binary patch literal 841 zcmZvaQBTuQ6vzL!?I`Pt;6y+~n2OSE(I)s}GGk%@6Ozpr2oJtAm+rFFwYQ|b!!PB7 z8jXn$egHp|@!YOp6`Smyot|@k_kZudKYxAy0bmzh8wSJXJ3bM+{)i{SPg0pHk>&m% z7)%wHYWukji($Reb0F36IFgfBLw-)Z40A6c8L5{Hrq@1Uu=diSaA2bDqJ}w!#eO8k zn`v??vSWT43x;Mt4S9URvqFPK{-{mT3sFd>qy5D$3YvN!4{bbPSi4Tu zngZowTN4}MG|PlkdXOB+MSS)T^YY*f&QUteLh(A%&MaIS|5RTrd3PYgIL+x|2SSb0 zA%lA;rO5VTp64P*3uHTeOej{en{u17XA~L5TIU<)KhYlp4y_JF7(1}2*r42WF|1Z{j-)!BgmU_N#6M6j!`yx-L-mTm?DozWtb=4E9GIxPs9}y_aS%%J zb{3zD^pu}Rf}uG`0v?_5G}M0i(o&N!W9SSjz5b)8&rll+b$rOs>h>u4l6w)CWA8+z zp&a+;vBc1bbM^j59!)8q$dc@Gx5^fyFi^hg_ukcU7t1!Bz1@$qu{Qv*} literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Mutant.class b/bin/jake2/game/monsters/M_Mutant.class new file mode 100644 index 0000000000000000000000000000000000000000..6e613603541a86b70b58adf3db77f8b0a93584d0 GIT binary patch literal 13757 zcmd6uca#;yw#Iu`pV-sDfg$H8L0}SDK!%(_KyUyZ4#R;Nn1B;dF#vj1L{Y@-RWV@z zMLb7EIA)9(QPF!bUKOw6RTMFySKrsWx@W2jm-E+q>*-pv`}cK){Z)5Wcl8W=e&6+k zVHmk$LD&#vv|SosmdMRo5-&?+l~t5iRVON|vZfSHsi}^aSBH%N8L_4D74fXnc=?j7 zX$zMoimJ(IICe(gssWvg{l(XaX4xMmg0{Yj(V}CSjrvLob=@sHCfTj*3+L zt@d+NQ&;;tDw6V-9pI=zT^;DCAzdBhs9{|l?5Gh<&B=DusIKNXs->&!Ekjq?o2{$t zt%0txw}!RqqC~v9I47HXYox2(TTEBEx5m24y*1HQ?k!VSc_f?aDvx9{UFDH%uB$wf zE&OV(bkR~**+nZ|Wf!e=m0h&aRd&%%sfpZCFHPi*j@LvUzTQ4D zPhP=3n#jHP)kN++OB1>GY)$0ev3w}wnU~GI=V~HfyF5+gOV>{m`O5Y8i}Jz^&_teD z1IfscSF^IFJeyM=LwR#W8=kJD8ineMjqO0s}s;;uPX}ZeZrfX_0KL<|IRrWSRSJ~T4U1e{xbd|lGtgGy8 zwyv_bIl9W;PSI8NR-miwZLX%~vA21;%HHPdDtkLsSJ~TXy2{=Pb(Os>&{g&p*H!km zP*>Sok*>10MVi`=y(M&&y)D*N_O?V<*;}!$vbPdlWp7J$mAx&~RrXe@tL&{zSJ_*+ zruJuV6}rmamg_2eJ6%`VTcxhDw<=v_Z*^~ea>n*&Z#8;Z_O?P-+1nYq%HGb@)B)`6 zEL~-9D|MB%N75Ocq!gqowvF3{2I5p%CB*YtNj|cx5lsWNS*K3 zc$_ZqYdlJS^J_dt7y30Gp^JQ)Tx&1(YwTmKUt=Ga_%-&i&abhLOZ^)AxXiDykM(|y zeO&I>*vA!qjeTtJX>wh?(yy_Pjed=NT;$*Cz9Pc&?DHU-JZ!>Nx)x|Yfx-!am&sB&m7$$Jr$;!rTOnLRJ;*#=Z z`HSMqu|dOohV2!W8FbJ}Pbf#Rcu{p-g$7;)H_6%tR#q3v(#_Qd)Dzy-k;Od!?r`DNk&H%aRaPul@twv!SXi1^ zjN8Ub)=?_ub@VPnQE{SZSz%>jaY-fa#HRjy<+i(S1bB!%(HrivL}>z5y+oJRlr1l; zuBdVD&tq;aN3Oe5yc}c|d>yD*jEAL{gUk$H0~Ybb(ypCTr_LBBCM9q9Bzd)DV_K?G z{F8#7MK3{j@ZAaOIpt1W?N3T#4jxky+Mkrf{5+;4G|!3C1sQGBn;z42I@G$M^vYs+ z!EEw|(9K)!@3qV5iGNlWX?g?4Cb=v`?>1Xhf(zbSOK5aSqAs7tGp852A9)JpJw--j zXi;fNc}X=kAZCxAct1cqCc53}9h1V`M8ANd`fAJZLt$~ju?{8)}}cwS<#FUa0swrK{944_eN>ouEZ%C_FHX_nL0oAtFd*rL6%t$j9~ zESwnmE8Zr`8Z=L>@Fu0Bg*i=Xh z!Xi{}odK2z$~sY-;!Zyq_0}0^2}{;#XwyQT5F%z%5qlI(Y+3}5qG`SD46;O~Y^Q}y z38(K?_0}0|iI%cXTbmX;b=ucgCpX&??PQ%!HZ5`Lbg8#ajwL$FI>*^m%vV?RutiUA zwmQpKV8m+N-%pLekEad3$wgnAO5`wP+q9G>2A<|AkS)*lvuT+;JHVz==j?WQVz5nR z^27-?l{=${PiucYH*#|=F;r$a!lnvZ9v1jOR!^NgOXSNsV{AHIUb%5LRm#5cY^b7% zxMRg6o2sQY#ikl3AADY_r|o{0m@3KcT!lQ8}tKUR9N-GCErov6Z%@l49ZlQ2Xa4UsdgW4$E7TiwZ_TUZ*cLaA*xHGtm!d=1L z6h02zUEv1g2yR59y~$eiQq{JPX

cq(|B!qdSgDLex_Q{h?Q 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$1.class b/bin/jake2/game/monsters/M_Parasite$1.class new file mode 100644 index 0000000000000000000000000000000000000000..86e0c3cb96de6f2b3ddf5f2eb383261623eb75c8 GIT binary patch literal 854 zcmZuv-*3`T6#fn^>nL?hHn%zF#5oljHiHD6PomVJ@=mPJHPtt_m7_dYIx)zLnwU|eOaq^#XwdEp*FFMO!cIF zDk5Q2EO(zeunC)~s3RSp_mu9x?ua2r6Bb@7t>RY%t6aGt*oR?9y0DP*ki`O_&{A5y z8x1aHbS^FfNhr2LUj!E-Qi(r3wBw#Kgq>C@*W8Ngglt#F&9{Wra)rY`iE1Epw|W*w zN_XpvxXww3(+=8!7-_%99M;!;!g@KKL3WfMx8r){eGWIU?qH3ulB(dC2lGZ4>0tvm z37M|qX`}^`$+gvB7)FUq4!3aI!4_dVB{HWC58Jpy@Ju+;omq|4ba5B=9PAJ_QUd=a z@vw{g+|QUw*qYlf_oN@B40LCvX;WXy+28&$|pzK4?@FJ zJ&|!Q>~O(Ntz~o=2xFu{3A}awn=rP#ZT21Z4j73syZ0T7U-=^gm#xbPs=?;VJp0}x zi18YGge4T%CIXKc69KEZ{DomcPt-vNDXKN27O^s=p0WU^!SWSW_w6fedS3n;O7`cO wPLT@$JwuM3BhR=*FUFc{6W&yl74QHLS=B;$%&lOL(dHEc`~13mmlVm*ACy(ImH+?% literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$10.class b/bin/jake2/game/monsters/M_Parasite$10.class new file mode 100644 index 0000000000000000000000000000000000000000..63f061c425e366007a890f97c33148fd89d2c07f GIT binary patch literal 862 zcmZuvQBM;=5dMZYz||c8kwZc zgU&0Fh*TN5@%WJohp?PW+tcQ#uk_$~C{8(@F#A+#Wu6fV^~N#5*@;8xp@5Q)B4!Dd zw$k$DXm}!%BXJT*LbV+SB03g{vVL~xn7&F0>+M{vizT%P#hx_#yM$W3!TD#R842BM z9-2hyUTY3l3G=7f9Xe8novsQQ!8k6W2ZY6XzKjf2U^=GNcwNFZEV@`=jX4=v+{Y5G z6Uvz?rMoe=CQp=$FkJ~ZaLdI_!b*h z|NK^6$N1Q=%;jK|BvKm-~Cf4hjCg)-u_NM4HMJtKdQ43B!2h0bt){?+IICTipDPxzD_rfyb-I7W5Vl2g~gH zlO(p6*dtsswnc9KupAZC{(?zS4u|p*Z7o!t7I}m3c-e)Eg%RXEzR|hXP7IikKx- z+Dglpqv5Gcj>Tyt3DtJo5z&cAl=ZVi$MjW7SZn8MT`s9bDE6c|*dx^H4bDFo%}D58 z^T;Gh_gZtf&Na@m9)d6qx+-J?yco?6{spi^06~-aUy^1v#_X&&t zb6aJB@v&}M%bih@NNp^Thm*>v%cb(1f7&N_NAW1>$QQ~Esq*(3Jh4~IC;Pe+#VKF$ zp)~zCB=`qf%VakaX)05!fZqT=E{s>6J^L6k5fN47$hJTn7H;SJb{>=^Iv@k5i6` og!l01!+oQK4gNijSz-MB2DZYzO8@`> literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$12.class b/bin/jake2/game/monsters/M_Parasite$12.class new file mode 100644 index 0000000000000000000000000000000000000000..24bdfadff8fab5d7abb16335280b5628a6668a11 GIT binary patch literal 1005 zcmZuvT~8B16g@**mbQyPtx$=gK-Ct6mEy+(Mq>~XlGd0&c<`kex+@{|PT4G(A z=P>f`!7Z9$(#e`?d45R4YzV#QyA1Y*QX*LOco>S1dP*~(XN+j4S4O@?-ZEK6HZ%7P zL!anp06E%oWWk;zO_zD{?S2s1Ve)9&7@^$|ERZz>slw<-GJUvV2YZo#rjDTnoQpk+AGnQJB_Xw$i^VnsgX(A zI0{~fM5M~djYqpK9Kv!g>_D57p3?oNp*ZJo!t`UMm3cxa)as`MXD<$=hXP7IikK!; zT1w03!@-$MPQ+Ox3Ds8I7SX9ll(n-%$MjT6Sa0QOT`s9fD0Zbe+$YS}>KuO|8j;Z5 z#<5A1?lxyIN0>d&dI(f#YZjSa_X&%&d;uA%wh2tL{<4JYSah+#>T&`yzmFx{Ae1vb zN_S!&N}ed^VY(7-;2ErX%qLDset>VoEqwk4qq>@#lOcsD~!Ki+gZLM literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$14.class b/bin/jake2/game/monsters/M_Parasite$14.class new file mode 100644 index 0000000000000000000000000000000000000000..2397d063e146136cd08c38eb1594ec2d82bc0849 GIT binary patch literal 975 zcmZuvT~8BH5Ixf_EN!=f1^H5uTF@4h3iyUGF^CCCYfKIv1U?&-i)ovkrkmSw*(orf%r1%F7I{VaCQZ!xJjv zxPw{D5puC8SG9e9nIusn!gLv2$4whI2(t;Y3poxJaEo9Ix9y1zcTc++6j8Eqo3L;h zm7I-(B`gyr&-?8A$I>*bTKp~-WJQsopt}yr29|3Mf}sbBXTk?W|CG z?SGihUXGC8)1uj{i=%j&**$*{H03kb%zOOrMy;7?@y(8EdVa{$s!QGVS+TRLlnk~# z5r#6vB6yv6PZ6EGM(o?{ZL%e{BP-uA_Jw~^$nu$G3wjHSgE{t{VG`RsdxR?(=hG0} zXKM)3g^AB>hH%3UdY6Ev&!GiO#!#QLxeS(9Pce0hdF%BXOql<#Sp0@NC&&+-3Om*( zQzOz=U{#(O12&kg>vaS#0a E2R*pi^8f$< literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$15.class b/bin/jake2/game/monsters/M_Parasite$15.class new file mode 100644 index 0000000000000000000000000000000000000000..3dd646aaad572c40ba35295b1d494ea6efe0c031 GIT binary patch literal 963 zcmZuvT~8B16g{_HSlVs{3i72Q2xtq+N{LT3CI&HS(h?I0556?Rb|`DNvt)P5qyNKS z;ERcfpotIu0DqM6?smnk`Y?0n&b{Z{Gjs2cpWnU%sAAhhhOqobbY<12)K#v2M#z>chXiBCZ_7Ng$XOV{ zC}F(eD!JG19m(K89C?yZYWR-u4n^QbesXE(6E`HRG*Y$xFR4Zt=}29FL6|OAIR8x8 zo=_coUk9%0)W$GLuuhXVw1U230JEzuVYZy+mu=V4EnTa;&fz9zP0X;kRQ)7wVGi?z zLL$di$3Fi_nkW@vx*Trdj)~iZxfIz@j)g_sC78lJ_C$x@P4yg>v0~yLVewy7x+@k| zu|}A>eqql)ldVt-)#e`=k`+e=f*x2XN3ep^4+5!l6pBi&TiA&1Cx_|cUo%4K9skAo z`_Bl)eJz}BQ=BFp%zQAsK?`frf4(j5Z~-7$MZw(P*ds?pS4=ABYocD;}5!;9$ zTbej$Gk{0zpz{tx5-EYnfV;!?O5VtY{hrWyjOYUlQ;137ngt4 A5dZ)H literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$16.class b/bin/jake2/game/monsters/M_Parasite$16.class new file mode 100644 index 0000000000000000000000000000000000000000..da7c7abe03fc89bbcbd4622cf61b6b4c089528d3 GIT binary patch literal 1721 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 Ssm6a8fKT~NvZJcq`1v2&N>~j5 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$18.class b/bin/jake2/game/monsters/M_Parasite$18.class new file mode 100644 index 0000000000000000000000000000000000000000..9a11cf3ebb0c4c6e7506980cae0efbc651ef7fee GIT binary patch literal 853 zcmZuv!EVz)5PfSqb>kQUX=zJ=($WG+E3haRq#z{J7O7H-kXrS?#oF52WQnt`>`lLl z10WC*hkigWaDmT3%qAuns3q^)*_nCsW@pcTemMiMi47MP!^#`p7n?zs4@59XRjx&r z2YcZwp7C62vG(YR3x{E`6t<)EK~Jjw^O&DdIK$Lasic0!U^iQb49->>3lBD`J}Q`E zsCT3iFNcF8ksa`(L@+cuX~dI5o=IaDhmP*aoME+7s&%oXHbbQ=^zJspY_mo2r#wiw z>IVBdld9XE##O3%QuGjVt$Ea^94ep)=bPmcB9@U3b-VStiffp6F-Q7J5(>YM1zcyS z6^f)fPU%|8L?sW=RdEBiT-;<>Dv@2#kB=qXW|*1C9i*osj5973wf9$nk;hQ4VAaJP zhK2vBjj&MrSTm%xXqaU}X_H8U$whMf59jah8NB^;m__1+Gy|&tc>)j3_0q|Xijp*^ z>)jK&m&OeKu2Le~N_d`&9Lu2j)5F4OrMZ*slJ%I75mweeWBNU9EO@kfgs{HCA!m(j ze;h=3i7bZ8sMBf)9uOJ=yK&_m!8qNp!}?ZAwI`_!%oM5H6isE|Z+yh;2P}TVvh#Mr qF_!Qhp7mqIGdGScc#NdGxJOJj?vHYsXc0OzS74ofk9D%0qK#5ADi!x7j@qc;msJ z7q|AcReF{{YS!YX@i zAcY@TE4hc<=YcK7;OLYAouMb>w&=>WlI?EI7I=l+8BR^xt}SO6B8g;{L7(>uB8CW} zCK_;xp=H^2#e?nghVa+;h9el_%U+&4S?=3PuV3o2WCsib%b{E+my~8`Cz|fIM zlK&339PSpaRq5MqG2MtZhUQAWhg?DM0!0wKyT#Cz2qzE)J1=uGoqQa{8FU%wr0PNi z)a@p^ah6&u+b)%;t!MP3eLz2Y55#Z*7Y+0>wAJFarR`WNT$aWcO!T3jA(|C=>G`Wd zGBhUEGxQ|0D&K&K!5S{#4fNS6B$1;`2@^>Sk$>6S5pu6WQ)5fYaLvT9G8nJP;-(aEp2=+C*=7Bx)COcDdsDYA`WO zA#LC`Lw5+|A0HFbxWf>0XuiUgw%q&gl+}6!!r3I^!YTi-Kp?B$wx1UnTdhgU-$fiz zB-72Jn|Hi`NL~@Lpc#Iu*b$Nd*vzw>~FP3s>mSK7~Rf$Dwhw z*F&EYJf*>8>Hr<_9(vEc!Ff_H#V^x)MJcVuA+Dw#9U#@Pe~477=@26?F_wCTN&VSz zzFt*|_8HCE7xZXf(WiaGkoFyx_5%~z&uSf=wOsW&C@W@gmnwfgc5Pg$4b>o;Oq@^vTw4oG8TEJ2`rhJsrphzjI)T#$A(KcClDtbZ4R%;go>nP|+2U+A@}ww0Fe zCZkIko{LLg63XqMEBp%)syLo)TG2om!cIGtYp$aPA=j5t>kVP0TI1`Vgy#$0_s*hF z>3(AoHwmTjtb$G`rQcDSNt{3r32W7K3fWWLs1r46@AJ5YH5;ph<&=fD+?m(HNEhq4 zO~~{Ww<9eOx2~f`;~

^0+o4@lAk~Bt+Y4* literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$20.class b/bin/jake2/game/monsters/M_Parasite$20.class new file mode 100644 index 0000000000000000000000000000000000000000..ffb5e05a2b386480ddb52a0cebeb3e15e9223b7b GIT binary patch literal 1827 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$5.class b/bin/jake2/game/monsters/M_Parasite$5.class new file mode 100644 index 0000000000000000000000000000000000000000..fe2972782dc81567ae9d6c9a17bb282c0ec65cc6 GIT binary patch literal 856 zcmZuvT~8B16g{`yvUIzpwICoORzz(WCpn6Xsqht)iENbftPiu=awEbdW~YMFw+(LQ84+ zZZx=%;jy^zC85*`JmH^+P{scA(29D>5H?$hTr(@G6Ea;HHQx}HDpd~uENZ^c-P%zU zD&4Km;|8HPoOaMQUMM23$0Sam`-GKBGKK6YFKS2i>RA>yv0`JHu$U;}El=jPFw(^; zZV^&l#p6f{#G`Ag!7vD8nJjMOj*WG~MnYspA1*dVu$oZ# zFN=#UJm7}LT*CUyhMLVrqcL8Hk^V=XRkG-RT@#$6U=(_?q2k39t~dWQo-3d1YtIi1 z&-Fk?y`V#In_A0o&lko>gEDyU{6ArAdEe~Y>^);7#?1B)%zxvL6dbk=Bj`OWzRa=j zPJ$To>=71FU>gfOVT=XRrQ%nH2|ZQ^ohGR1D{2XgQ|ciLa2gaZv9x1dV$IFxzN2h? yxzZ_d0iZKv=^Q!61^O`7T%Pcznyi3_c*Lq{RL0yYwizwnF|fn0!*_9!{QL!qBDGZj literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$6.class b/bin/jake2/game/monsters/M_Parasite$6.class new file mode 100644 index 0000000000000000000000000000000000000000..1e11885e4ad3967157c0e95ba43eec7f5f48b88a GIT binary patch literal 854 zcmZuv-%ry}6#mZEQPvfP0|60nBI*X}5=?xVF;Qe@$si;U9(nNLZK()_8Y=lt$?AHr5HNnF`+WU|tI&U2NhO zA=gtpjjTX2xvmNVh48#t_jE5pVdfh2lsH_#x7wqBk*4m z7khZX{iIaF_S}Bj?N+OmuEWUS15YYj^WUZk&UrYFJlRsoTFU?S{xq2?pB!s12n|p5 zM8^Hl=Yrc>%jhT&#z=!Ic%x7?(+=n(GtZRFf6(5RX_jk6OyDW1rFD6$1zSI((ND$kQUX=qD<5=w!j6<8_<4nat$EmEZvA+_p(i?wyO$u`cqvNz?Y zH~<16ao_{^D8y`Hf-7pt`#hd`Z{E)Cuirm@0@%iui#bB`Obq3A&=(^aj1rw0nP$O3 z_)erEQ$}vQaN!VE3srmC91WBnzV3;0t|rXCR9cx=gi@=0OmKFRp7c;c#YY+Qgj!c= z`F1=yk?D~*i6x=lO(GE=i&WV-|LK^4$_VS-La!?wbqM9YH2b@RMyt)`7b1v-?gxh^ zRl46-za-fwSPC^nVmEL+0#*+WIX2s zX$DD;;O}cK)16pknat1x-vhp1n5=yM9J?GnXC%h*=65W7=8rjeyn2iv1&5PWj{Rv7 z<28;5*HPou3Or@B0;T$mPYhGKRR^6FsHGXTj>Vk1%hlWl{?=DCzF_qmn$E|W#?(R# lk46)nrD<)hV=XcBn~_P4~3XbOfaIByyMxK`R3mp|NQm+2Y?-Hdzd3M-io2z3HxFs!%?C$BhxHA z?7kMM$dr+rPd&JV)k4<3Hpc^{hc9~KoU;k@&y-f?Il*bRP6+O9(vvY zsnY%S0--~$26-?J`mzzbt?5W6fO}q7`j2l??u*BjD{quN$72G6Layd$$ zC447EP$9y&GH&6Hhueg;0_>8*1X#m5x15O`B^NSRT>pnZ30U%7-1D$OSoxo9b#+aE zP0OrA<204p*g_skCgU@{uOjo$;R*gxGEO7;QrY2D|4#q0y<6Vd*HN5ge7A?v43Zup zIM7)mA9L_|_1S{n!R26u{a~8Jc9A{8 z6;ye(fJbaCz^PsR$Yxq@>7cYw>dZ=OxSp5paW=O>u>A$~&shD6hWla0m`X74X*}U9 gO>=XOm2@8unB?H$q^5}$TbIWQZ1L-J%nIY@H}amj)Bpeg literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Parasite$9.class b/bin/jake2/game/monsters/M_Parasite$9.class new file mode 100644 index 0000000000000000000000000000000000000000..3286fff0315d014e8c95fd902f60f63d8cefcc21 GIT binary patch literal 850 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 E7aZu$SpWb4 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$1.class b/bin/jake2/game/monsters/M_Soldier$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3514116dc57f795e6c1c57bd6a51f642cb000217 GIT binary patch literal 1080 zcmZ`&-A~g{6#w1z&azPi1_GjdDeA_A3MisOl&={Q@MUC)^01WcvR&y~(q0I>@!+51 zgBnodgOOMNC5?J6o1{i<(|dY)&iS3MU%&qN^clbu@+M*oLob~jF=bbsy0GiM7b+2i z_Ijz{yA>&d(Mc1Wp+DlZ;;D_A^mZ01&MrAKT$q!dRPzi*I#XoeOMXQpVIW~4jtdO! zYtj?X_Uc%Z^)g0;%=pN3LozWEfeCj!!;NjyN##6yO@ z2*@8k7UuAXA?eb5g{P!C{O^=CH$vfV)83*fe{X?63jSVD7I~>Ta`Bvl6MDr&qZP00 z`XQ}&U8tI0F+mI%h}88rS%?R#o+pAO*9k)r(n5%&G-I5dL{8F8(xyo=lJT(*Xn9L7 zG1{!&Zj3y?fs?V7bgSV+vW+w<5$$wpfN_!bBS3cq@Dc4dr=)S3y4)X-Jvd@o^jUSyLn{7S8#5+u7-(!})KF>F(OEG?; zjRXDk(+=|(#<&5SbIkDgSsgu%T+KQtE9UW-Dlzcn3}*q0BsrGoT%jjPHr*IqzW}5J BodU53@u^2yms28de21ddBK^ z7t=GHpQy7`3p9G!P^G6TH$^`GDgD?ufd{>c*V2wU0=1F$-8TZ8tv1U)sW?@36!(2@ z?5MMb8v^UDoM3Qna=lLm)$K%JyH(ZKi5dEV@3h}XxP|QyTLOFk^{-T-oKDZ#=`ve^sGnWrL;cniYq_@A`_p15Ztlnq)68+GW9`RTLf@{nIzLR6bK0Q^ zE}fT&S>&>rhs>T61+n(%2iCswV+9doM1=eT$-}G6>tzvfof-YH!B_}9Ar=BbLw* z1XREW^rH~tIEs9Tu;e#>-ZwMvy}kW=^9Mi+bstLt^-pT7Tj5YmbT~<@%XI3((|#|B zBcs#jhlf6-z)q>^#AatBW5;hJb;W9d z?6AFpb%9k^OwhkHscw-$bvqW=YLxYLWCmG3Yd1dzc!(_@n*zK4^{-+Zj|8e^d4cVP zs-5XNoQ^Nq=^|T!pqE^y1O49QYq>Yy`^$VNZtlbm;>2;NQ=N^Hh`t?bb$T2t=d?o| zTskik)5v8r_nEyS3SwpdJ668&V+jFcK!p4W$-}$Mt3?rUl^Ol9#+VDdAm##I?fzFn zLC@78Z%R~ePOag=jQWPvw1Iyhe_%s?nbQmRU#Q66Q;E%@Y$ibhcJP=Y9-d4&yLd{J Pycb}PZ@{y>CqDlG6t=ezd+CUM(94a2}Ak&~10tjNoF-gP`* z7QFasI_27yl7*p(NdugrC*YNE{IxCRdB$;MNDK{?s!IEW)p*C%irQX@HhH%Qn zAWqXD^Wq6z);vh^dD@sZoi%YzheUkZnkDigE5nFk#K15^TcFMo?Q>pu(!_a;Qs=hZ zkv2nb5O3)&ZR=HdCBSh^7#L^h4kW5}GKn`+gv?iYS|dy9CNG+}q%XtUqUcF&(U7i~ zxQc6pKCAv1lcri)<+t5}o_Yi`m^E;{dQ4S5CT`#+^=#Afq~k09>3>(K>E}s%lb8|g z^!JJx8dAQ<;dWTP$Q`QfXQ?9`SxmlZu#|a5A>*5vf+CzvWs6ZZY%)rt>#H z8O&wJk%a|Yc%Jky0QxUzdnldsKag&aHbs(=3=O|U-D~=&L4?i-N$?NgWUMFMEIW~G zAdMiRiB6qhl%!5j+uHn!L^)h%2mcrdtvw2DMO!8GC8eh_SQ^hSCZLVQ>2 z_sSQ~570yEK(J)i5q^L(+PsJ8KE}+A161IsQf21^3Q1I zU(nCLVwitJoPWnGKSYB6C_(Eem#;u0Aeh5Efmfgc5Pef`n$$QAO-ox!3vDS?LIoDhF$f8jB1NQJQWdF}$hEi05@(HU2mTZX z-~fmNKY&Xs;P)VA^Cb&aSn@uPcix-XH~Ztyx9r1yE=_HkL z;vThIQ5Yy0?>wsIAqZ=ktV5k1ca`ov4ZJs;O_+VGv`U{4tV;ESAP%BH+ORO^Act8( zsj0MlIq09s_}DuOC86Amd@nrlVrAm-Pmy+2LfCF*YF*h;osjFuwDF9vRH<_MTh9$W z-EmuKtaPVdzyhI|j84!#SFx-ygVlA9uu{qD%Ru>QJFQnw=Wqinc`Oq){#)O{DsB=M zCi20+@3n*IohGbjmH%<6ZVb8Qpo~SED{VNqjXMNqB4fHFtX|n%W9Vuk!*f1xw#KA; zg58P+u`i!1-)d=HH`Jb**(hf%`b9LcmB1zfkGwTur!FG*yAP4MjaPGGq5%s9?- zRAVH@-2E>oeB_TA*u2_|5El@XaubC^$!dqx>1L?%uuZ< zmF*c*UvM^;LFp5g_C90n)n4u^*2Vj&%)Dt<{6su@C(Y9F7!uF7N T7dwoC2LRmT*XBLbA3uKq8Gxq9 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$14.class b/bin/jake2/game/monsters/M_Soldier$14.class new file mode 100644 index 0000000000000000000000000000000000000000..db620a0a1cbaec8738ac09b9b3a80ccebac1ab7d GIT binary patch literal 708 zcmaJ;!EVz)6r8O$aWN^Sp|qt?h!BSaR4htwK_FC$6e;DBss}ES8*h_soOR{h@>Lw* z)QSTiz$bt>@*9Y897R4vSn?Y`@0*$T-v0Re?K^-yG<+-xG|r>3+6#x#M1_;oSf?@@ z9`$=^5^I$`d9m+93T&6E4vjk=X)}HsM;ELXsJ_xhyVn96b>0cAH(M#vSQA*W#RUB`ovD2?sBXpro6WMmiuJ(tUAy%$z+G(m*bvzHuYV0&xF=96 z%L{BRRP9XHVO4U*P8Zn<1ikb!8>sg>U(2oe-k;|~adU@ekffGF9Vs_TWBPWCQQ1Kf zS*t7>;L>@Sm_{y}xzFq+Q4lLnudw`;A4>=r10v*4NFLr~UMq@-E6nJRRmNOkmzWE9 z_1j+v1wB`X{8gfQb7~!TX4E&VrVadO)oZNF&vSa={u>qfXDYE#l+7eaz&7qv#KVIr TX9o|7lJ^2U;v4WR?}^VpWCoE} literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$15.class b/bin/jake2/game/monsters/M_Soldier$15.class new file mode 100644 index 0000000000000000000000000000000000000000..dfa7a543b7223dacfb02cab3115b5443f700572c GIT binary patch literal 708 zcmaJ;!EVz)6r8P{I+&C|C~YYeqN;}k1Qtbb2?C)~q(~{3R6THsw(Μ;fN(%U5xL z6Nm#Jz`uanA3%)bDDok~lHd4w-^{%C_SfGZKLPBc8DK@A`9V(9el(I(6-`rPoyu%< zH0Y;EtW~!6I-eOdnw?x+9v}3K^m(N9!BOCPWyd`Ti6V+A+Ymb{~ES%TcB2! z7uZ^=+MTV#s^pBFF0&N~`{{W$RBv^@mTQZ>KhB5Z<_^s;NiByuQf{2a^z9m>vV%lg zt1Oz}(s`MfMJ}6p!0ahe5GxP9q572{D+n1wBK+U*d3cq1ttcX{F{3}~jJd!gVlLn{ zu74pE^jsbOpAywuP#d^8r@mq}Z4f-He#g51c|kASFHrF>XA&Dl*<6AIY~v0^Jlvge Tc5sjA^Im}ad_$h)J@NSmjbf3a literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$16.class b/bin/jake2/game/monsters/M_Soldier$16.class new file mode 100644 index 0000000000000000000000000000000000000000..638aa3e8d5a57c5609c48d2af669ce59129a03db GIT binary patch literal 709 zcmaJ;O>fgc6r8O$ADEQ3p|qt?h!BUQ6<9429D)$26e&{5B~=f-MB8|qEOFMA*X39B z04ER!egOXm1Q*0Ojv^l-EcuO}_sz_EZ-4y#_8q_h8Wk)FG(M=YJ_v?tqJv3nU8)lo z9QS*16dIj8-hWG*11Riw@UJE;F3zUXB?YtFOZ?;(eQ3a8* z!=RTY#tz$6tO+c;e1iUkN%RXcsBXsso6VxW4$UC#r|s66k2~0`U_)T%zy39B;jTcf zC@-+JP_;8%httsoJ6&We;P>LIWT4-fY%RCudw-e@#mybrK@>XhZC&8c5=3nl`BJt(L!HU0%=mx&3dH<)5j>MqW45AOqXDM->nE Vr<@%;AWB{g@Q|<1v#cpT{{S_uk=OtL literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$17.class b/bin/jake2/game/monsters/M_Soldier$17.class new file mode 100644 index 0000000000000000000000000000000000000000..7affadc884f9b97adfb016a1fc02a80b7a11070a GIT binary patch literal 941 zcmZuv!BW#u6g{s^2n_+G)It#y5w!&&f;uj6bQG!6nbu7i7H&GP&9i+rePNQ+zi{p7 z!Y^>4EYxw~2lyv`gpBv4m5C#n3ED78QSXv94kF|5^7T<2D_$6$6vTzkq;C|4-_ zHFtfkx^6QLrRwfYVvfOyMjf=Irx{HGSAB+savENEvJ$2@&5hdy|wOL@xMJZl!+fgfXQbs59tj7lxXO^}N)j+ltHo}~ z!Eq33@*J+=x`lOyl@!STojbUJn+$do43#%-i`8sYuxVj~VKJ5c4}*hS*dhs%M26*a zC8*V^)oL=nNcb;F*>u5wbz+!q#=O&S@Z<5&>}D_wJEAJJ$TMeqv#p0hlRr=$KZs~3 z4H5SOkH%6{N`(79k0KF~J|rkDBa)Mrg?x*=J7gJIbK@%}KhsMFHk~$E7{6iA&nfbq zQ4rZ_@`xX^bZUStvKkZm@x$bVjC`z+)lDti6C~8+IFd5 RDvZ_uxJ!>sLArRl{s3(P$O-@e literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$18.class b/bin/jake2/game/monsters/M_Soldier$18.class new file mode 100644 index 0000000000000000000000000000000000000000..69326fe6c2ff92799271b3622d50ed571421b7a3 GIT binary patch literal 1009 zcmZ`&-A)rh6#j;GyL7uP2(?rcEeP5|U@i48!DtLZLQ=db;ldlTY=?I2c9!f;x%LIT zSL3bm#tS7FjTb(EZ{kZB&u$m8__N8(*)wy_cYeMzKYo4t4qz4cbc`@mp4&aXYIW>B zxB8w86!!ybd#~lWZNdHd`h6W~hUtXWhEzLUA$yP8_90m_WF819)I)|;wYJNUUiaGE zKnhtC8Zr!HO(FTyL4Tk7JNCZI877*ZW4pVyFG4*&OslR480MOZSpUpujX~>hwe^Id zSgn!yk!`uQ>{u=33)xv4#RZ0ZFsxuNP_}H72cgRz!&Ehi&)dRLdupxrEQ^bn(ov%1 z67l1E6J=at$i?XhdEik`l0bGe4k6z_l~G9#dDD1 zSp+tV>pJEbX8s0CaAjgXM4UV=JaUh!Zy30Ns*alsg(1X13D;_heG@e-5`#YV$m>T8 zZe||+d>wvovY5q+3F|+ob)q`p?!g~vpSF}JXerz2ZQF-2!A8p)_zvF`;RqDYW^5%S zkfvlqI<6NGf!kblJ)+Fql9K!Dt{ntCKn0W@4KAXc28(o^v<68=Qd|6j(NFX<0)uvg zBs3acy3CPo4vk3WNu&4}qdf#zCK&>xCdNOK7`lh(&_)xksWaCJOvbJ+2%f^AzI1}( z38s%xd56MREW9jY>D60|hv&yw{*3AO$PbkYDd`VkyeQ8Sy%A^z@>&jM&BTIMfTfK^ qflEX1I5365En1A;F1a98HnRlMh;qJ-J0#P@7;u-CL1tl5^!)~K*xp3| literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$19.class b/bin/jake2/game/monsters/M_Soldier$19.class new file mode 100644 index 0000000000000000000000000000000000000000..362d2aa072f303e8428945aecf1cd8053100fd34 GIT binary patch literal 895 zcmZuv&2G~`5dOA_hS3>Y?=v0DFC)L<}%LLWY2C{$~d z{+v55S3{?*eW`|xMJ&@vFz=xAg1h5-$LFf=O$bOu)R>`Mjh7L9+0z}}s6DYzMA<}% zAvc#X)zWpEvTI`ntJLc$5%qeIdhqQ{_`FSH4VO(^qRwLCBUT&hxWbT$dXZ}2(Lm$n zV<#jcjjOn3Vv}JdM)p^ZjqA9Td!9r-OA$%L64{X87Wt4Mkw5o= z+#DXV!zjm~i8E*(=OgG-qNg$_e?{R{0hQP9klp@-i_7@+85_y>A?r*{E);F7B4bog qG%n0&OLJ&MOC+eGM#Nh)6e|*Bd#2|mNd#5eA$yx%i;_aY^!x$LgTPz> literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$2.class b/bin/jake2/game/monsters/M_Soldier$2.class new file mode 100644 index 0000000000000000000000000000000000000000..bef4729aaa3a4a31062159c8e9e1eaa22826fdf6 GIT binary patch literal 2540 zcma)8-E&h#6#s3z`Q8>98fYm6iUpd6HV~kEv=%6BXtb$Hv4}Our7~ewON|V z;2zKo-5zA9?+Q;c@S|o{`cV&`fD3MhRb#p#$IHdEES=EO1<4Q`Gc#IYQY-0dTm`wE z*DZ#Qv6`Kh3#XsKm6LX2n4!5VOta^-XhAb_(Fwbx8@YZjniv9BCHfQ{fdX^BLtVA5 zWmeDFDZBswVu`7Ec+!Uu)_Jg&j!+Y2)s;XCS}7fQsTJ%z152psZ2}tO>D5V!?&60}Si%v>yQMWSDa#m_~zIR@m z^J5#jJlMXpUP~4VgwajmSZ3MC>PA++zz|ZIxi5|3gmSh+pa;E_ac4TihGlb@NW|lm z9WQn=bQY=n1uJT%&&Z5zMd{d9)GDTm6l0VsWc3!aF+Y)Sj|aOS%s`S3B(N8K4Biv@ zk~x1&PcuZ8-S)wt6A2Z?eugc}MUlx%>s}0A99&@@RVf==66=7#!zv`76VfQzRcQ|i z99E_EQvS2k1udt*A%UY#y=}TxS*@t$q=H8T;y6a6Ad0uuR#h6dZl6tAwq{Ezs}Bi0 z>cJxntu@?OI!Rzm?clLybi*hYeHh2%9z4d-UbE!Et0VA)TGr&0GUae4RnT*JTRE5z zIH9a`aflZctHLJ*PAa^y22WX*3iFh})0iT{nT&=BWf&8>c%l6 zP(YDrb?5#U%{f^)4Uw(6Ht|Krq%v;ec@Jin-kBw?1xm_kAX6@ts1$0UA2#MZC_5)o z?Xzs_h3J@`7MKTJDPGbHb+E4Rgi7O!0xzu)*Dhs$Mc~yH>@j6OCvbiR`yOR~L*T*+ z_Pxq}QQ)l=>_lsB$-?w~>ABM%iS(5D0yRsMdc9Y(Z7nn7wEYUXsW;4;x?vNwi2@B1 z%AC|@t4-ZMVU|l78P`?YZ@l}c^ePrm`x-Ga1=FIgos@Roq7|16rN@NE9vbZ?$w<1oe}s2|lsfq7>n92B11DpE#-cKbWCM+8f2^Xfa?nFkIj9e= z{((egx$+L~uUT4ucWDr7Dog7wkpptU4n(e@nSSfPMf@t-BQE*`AG(gMLIkcOQs3vk zf>n`VG{oy~VAlmV3%T9j{QE~FxUYglf(IO>KjK=%-~xFXbX^8taE1}Sh$93IpSp%o zer^$?YM}JXXs+&-tZZ}zJyo0gp6&P@TT^xNlNF#c^C{O(Qchn?x4K+Ar*9w?lwW*> zM#84A;>;q9g&VNEvwiN6`%A2@z-I}*f_TVH5mcd<9cXvRO>tMD*Bodw9rZ5sx&t*- zyu3*RRj+!dUN`9#0AGy&Z$cxd6!SG`<;`d#eIpN{ldr{Az7ApDf^O1#2dpz6;;;7#2ug<9qN6@58TrAAaKpaf|okcRqkW`NQ~|4>B)5#2Wcw*2a&p4nD+s z`7qnhM;y`|hgT7!N*blTjdv8ONV`NDv6HlSNh4B|_8wY^t4ezxQ}n-52l4U)!rZup z$*T4tWosQ8ZqsWY_zUgcSX;yP+h}3IV9-ZyJ|c4+KE@{`Io)&MQ~LR7Q`%Pj{Rb>N BVblNs literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$20.class b/bin/jake2/game/monsters/M_Soldier$20.class new file mode 100644 index 0000000000000000000000000000000000000000..f2d9bcaea5803ce9d89fb849c99138132b222e2d GIT binary patch literal 988 zcmZuvO-~a+7=DI!S=ufiR)k7KYFn@cVWIeOz-SCYLehFE;ozm2wnG`aoh7?d{1x6k zc=zH#jYi|aAKml)sK7P1PP?7Z{NywCHzAM@+akDmalcw}RYA^(c^MAhx`zHs}# z3bhDAx87{{UPp?cRNb_ZWLStr?J0eDB318Mho4e3!}w#Vq<+GXC|8aclDmFKq>(_% zfrW8~>6%pH#h~93!69#Xf+1V;+uS?ifi(W;FsV;u$WW-ow64r(hr#L!eej%Nwp^j` zGwym^b=`&zr0VWW;2MJy4l8KB=3b8gM6Srrm*e!JBip*EcPcN_xPf^aa|}~M`GJ<6 zTazsZIozZg1FkxLKdNzm{OND%Ablw;V#&sBswkH9h}A(JcNj9G8l*b*sgZH{*bOC- zLJ`Y0N(_rJvdbNCu!6g!cwS)NKNC@vThxz#=%X7$T)~=+RfgPUVv|-=JGf^!GwneT z2&E0sq_g3`y;`eEa}I@f{Ga4`Lm4I;nzws(ema_Ny5SFkw%C_u{!LhhOYPnhIRgrJgZksGKC#&Bu@rgELNYk1o3u_5U zy3CO841>r{l1KWOrqvLvlQjg1?94|pL%3mwm5)Ia7tk!OkD!X^Nd~3wn0+&gg}3i8 zv-SnIKBMpz<@cBzI_u;lKNyK9wJf1v6_Bxt$XUxMSSyjv+>mReL#)`u7AaK;NjkX{ X;kTm<@8dyqR;2YI{b`CaCD8X5BpTL4 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$21.class b/bin/jake2/game/monsters/M_Soldier$21.class new file mode 100644 index 0000000000000000000000000000000000000000..4b7f83260570930cf242ec1885f4dbbef20ea765 GIT binary patch literal 1147 zcmZuvT~8BH5IvXfrL-)91)-uyMZgw>wabS{L1Pe;M&PA{7+#u7dns$TyJUBZZ~hN| z0Q%yC5{!utJ{y0Oac;LXTct_w?97}w_srb+{pZI|046r$=wZmb6?JJEHPMhp!*%>X zdcLt+F1dEqlHRnLk3(Y^kD#`lVE@E&>MyF|l+X;l8wb( z!mx!?GfIJHIkiF`ZZh=yVFzWe=@6c{ojSu?_PT2Ll zN-yYGygqHJ^kW@)l^*S?CNW;1=B^-1I+hh=s0-416wR0R@jsfco`fbM7zRp#sML4G zX?sPICAaBS^(*2s^PcTW!*ND3pT6*?If?`iwy|1G{R->l}Ht3(E3N;-1{RNwM{R#j8 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$22.class b/bin/jake2/game/monsters/M_Soldier$22.class new file mode 100644 index 0000000000000000000000000000000000000000..f080a438b70257f68eaa685f03b418bbc06d7af0 GIT binary patch literal 2190 zcmZuz+jA3D82_C%C)?gc(+)byGW9DQ7i%Qq39~Lo99ORAWlDb$PCW zA-AYI3|rCxQ_DKk&%g_sn;Kzg?d~D*Sv78`W+6V|+PYcjZ$LAHaQpx=Gvq2c<&*8* zLG4;z&$$`5e>p6f>Y0k54XYKjlfwa@s<#BzU@Zk-)KtSQGO&~s?+{oo;b>WXBjd9q zyg^_iHjxko*imE7banS~#&K0wBTpjOf-VKm)Fxc35fXS-T2P#lZkm;H1Y6Ogpqrs3 z;N&4H=Krv56c*`6pm+mJK_p<)Y`5U64;4dlucJJQyE!O#woSP!TeIYBYmG{YdCEp{NI{aJ^Z&{M&p=>I zYK$#5m3LjnyDNfG92PjTJUb!T;{r#QXYZEm;{qp^XZMAMhGdquVp8A~=xx;%^rw;| z-)%-O&setXWU22Jfito}nj9)b-s}I2p%;p76z6b3!TH+E)hH0Shzzxhca>rNvd<-z zN+y%?b&Nt4$a?L*WJ|(%0ZqbYFu-RR-Q&w$}~0mprJaB=3o=ZPnyf{RvMgiR_L^w zC?m?Z-ABVc+SDORYm_MX07ArEL1*C$5pARs*~cncrGo85rGolc)3-$Y>ry-TVBl)~ zldCbb_*d%&NCBx}>wD+XO22j7_zF$5={z%!&7rFc*gS{l=J7m1iBE50nCJ_9XKde% zTj-&T|k2HPS41ma9cR^C0ge& z(aYy>T8I_j;p|;>w}rz?@T-e(b5$;}iIZPvR4zH~1-h!Kd&wKaD#?zu{-Fz|Z17(TDsze&84IGrx#m zxQgF+7Qgd69`R}X#S8eG7g>nwteKZs2RFQ$j`?+~)|4uU%Xm}PoOW-~j+%#dZ)2D2 zHrl;|wbV+Fun$)VtmEzk2vF;xXMerCqpeSGp+UQIF9!O(*W4m~ajvAae cXpfNY_q>jKA0H46(PRLw(JxB(NJ4)80~~w^;Q#;t literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$23.class b/bin/jake2/game/monsters/M_Soldier$23.class new file mode 100644 index 0000000000000000000000000000000000000000..4bb5118b0cb80546b1eb26803219be73d1ea9f06 GIT binary patch literal 1032 zcmZ`&ZBNrs6n-viDH~N}Am9{1MBG3ag6|_Hf?!C%#6U=VNtVlYDc5x^X*&cz_>26Y z1~l=5KfpiaH}xqSr1;XL_w?Lz&hwnNe*gLP8-N+iS!fd&el2Tirs&AJD%O23j8qU7 zSIcX@Th%HUotd>@2;>r8i(a(8t-ac#s@$QsK>M8bbo5Xll`m`v7z=(?WspMJhKY88 zt`+U6r;Yli3fASOs|2zuenq+)GSIQ!x-_C~9SV%BB)I;WQAxmbRJ8n9pf_Kj`>rgy z(sPPyQJ_7i)PZi2hRq7f)kdXOZtO6I_+Cw*Kc8e!Rb7e7QK|4Ejq~WY(8u%=8MN#+ z25>>3vz3tcwtRLa36!u9E{%&Av~WpaAOUvD$Hrw030P8Zxzb_fVmVIXij5ImWgF{q zkC$yPmyCJND>jYUxE_aOBF?NT>(Wta6fj|7T%aex^Muo!m!Yz81CzvX^dHH_<1Xv^ zjvvIeXHdjV3)82QJ>_F_VP?tfvW3cvbhQ89M#d`;DtC+1N%rTs(F9rZ8$m@a>39{+ zp6uFGJV*|1(W|(A$U&~EXxpz^cpxyCDDLl_5U`g$PX!CE3_}%S7~Dnn3`Zw-kh(=} zmQqlf<6qG6ksocy@XS!c3}MjNN!@NbQJ$g36w$>q2AHIb0aDp>A1IpPF*=tk5t=#) z&7!9j>Jpwb$WI)g_xS;G-9LW4J4BA^u=#2_JG%L7!aT&aPxSbVDdYVKejooLn7imQ u-ymo1VaVLanECdIudj*O;v+h4;WimlxN{VL7xyR)+~-;1o1rZ(fX{C@8{~!n literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$24.class b/bin/jake2/game/monsters/M_Soldier$24.class new file mode 100644 index 0000000000000000000000000000000000000000..35f1a3e9577905ee8f5fac1d9f8bebbbcd2d2d35 GIT binary patch literal 1483 zcmb7D%We}%6g?HY(}`UM5)1?sAV7dP1`Os+cmzTW28Wly1Xx%VyKsuMyQA)QBsL&G zGnxUhM6f_etk|%Ch?zmN-~*8O2fhSxtKFbZ$cC1>Zawbfocs9v?f*{z^0;N9gJIx~ zn34HhLo{Ws>DZnxT`xCLEjw0SNp~>6&qSPIeMD>A_KP;DiJE`1E@o-R(0NqZ%0JE! z8_HA|;$u!-CJ;k6hk;IpbI zveaGXW&*3Q#>8rdWo=k3Us<`5n&RlgTH@{syY4gt?uE`1Un#ltbz?m?n%KawGD7AI zrTLWbB*y?YF?2K(!@6i#U5Bb_&N{9J)Qv6JYGQC<0e;O0$2M$d;GWa6>utJw7+5iZ z46-JM8Tuk17R2D#ft{4iz?7kX$;1?kg+d`y(QtAcyBEjGYqEKcz1XKc%_z$v+EH4y zIpGF;4&ac9gA6?pJncu0!#G0bbHZv-f3QL~j^en9W7I1V<*-&9CooFd(w5D;)CAFB zKgyZFDV#Pj_G<~QQ3W~1Q6LXgy#~emjgBa4WM?^wILD9-tD)@M&Z1gIUcy?II3{p` z;Qr{$rZXq2!uLgO=D;Er&EQSaC(}OLxo?o+mx( zUTXKC&-F?pPG^&Ldr2~VGyEUA-qWT730e~*VcbKU9+PzDZ6%T^I#GNqr&T-HNm4tA z^{#kFqHV6d!?+(Yjr}z3#mdn13pvneCO;zmG>vsHULrk@{;V;N&73Fy#n2n{gcrNo z7xUQj0sE8BUSTks{eY2=IBC2_U+CcZE2QZ5%skHjgNyOE8dg9jPtjpKK+<@KwDAb5 zN%k9mV5{*bwv!w-{=$CaZ*uk+CF2Py#?t`%KpS6(osi-xMgzK&xJJ7UR49glSbr)@ Ys@H=AOyUN~IE@}~ll}x5=nT>K9hB)=LI3~& literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$25.class b/bin/jake2/game/monsters/M_Soldier$25.class new file mode 100644 index 0000000000000000000000000000000000000000..008a3874b39f4e8a92e53ad030fdeda33c7dee0a GIT binary patch literal 2402 zcmZ`)>30)V6#q>-k0j+mp-^@N5wxY!NTQ;GV4)PNEh2@YAjTniBts`NH8UwxQE|gv zaRF`FWD!C3LJG$Z9{A)re)Xfrf5qdyGijORXmXNw-+k|Hzq`CY{`vJc014cTphm;O zJw~5O#Ir_T#q*BsdaB^YyHh=ml`&OeapJKEbPaPtx7ORntL_q>zs_LLoH$w0uwaUcbT@@Sj_KIg)PP|OKE86a?*y?YZOf0mzlbkGhGdf zxL@RK`quDQ{)-_81y5GlCi9W5|v2xx_5Y)}WD>b1TGc&-4aUu4j0Pw8StM^COt2 zVOmJX210nP;VOyyus}mi)+AWNS~vwMGvDtN*p(>mr{v@bO3S^Mm~td>3e;`QXA*UI z081iRtYKEjRD~vq2l0@GI$xD(XB45($kA7!*4!CGGg=~8s$q6WnW_kmwLMG_(B($7 zO2qMqhKXgMO?$Uf6;$Yig3{Lv4GqVT1Xb0el|ENolz1E~C|NF536+c1!PcIXcnXwz zJ#X5Sftnp1`rQM7e)kSghc#%6;28~51J{e5X~nw@FPChWSc`QUV!bNuIfWkOX^1xM z=%7z?FY8?|(Glo1_PKf+t6WPB!bi_ZJkQ}q^Ui?s2KyB=yCpU67MLXl8AH!B`i+~zsehB4q_@UO5c!{ml`I0F!W2q>%SDJFO zInOu6I$x34$pSJEa7{jpB2^_)Naw~y42fOUB8ez6R3MZ}!}bb;aVETUUy>tYGrJ|S zA-~d2x{pCICH62|&l|4G_biD#Y~LM!lBD_#leQIoLz83^am#~*`lb>660ftE&evIw zE8(F?HCBc=MPsR|#z;-OslrD$ekqK zmUxE+g)hLW-j#TdIRtYM*IvUS1d{kb;zK^r1IAW-B=Ipb#yu|-DWW7kmH3SLwf=r9 zzL5A5Uxl2@IGHTPSnXUpv+qTj#Mctvu%Pe-*tzc{4zudXW6l|#XK;d&_+H`%KALck zH7s$ISt742<>Pc*;sj2HT=A<&!-6WDI&B*KM%oK|b4ubg%L-qHi~p>|PdG;oE;-d=t%&Pz04S`5G7QUn*rd)a@Rczm{XN?c}-r!vOnmf^8mpq|!UW$mV754$=x z*U5(-r&vg<4wL7}Qcq^^cgsyoAHkf4g`-$hLKAJ5H7qY7LBtactLXdmZLFqE zd&36$KFgbE37svXgf5nQVH7Xkz!oN7_Q@SgzUq^&F`4#B)iNbhLat>5eI+=w6iOIi zV(L zSN+mBD0?u6Kp8?r3`5ddFOFiCIEE$SI1=InR)~{WB~D?3IE~HX40ejM$cb~X#d#FP z1?(3WaZp^sA#oYQ;tI}+tGFVrVN_hl9dQG{6C8hvTlh=d_JN-ffLjKhV8#_(CFpAr WBHiW zRO}Y-3cDKyu@X^i*PTY_ds0L*m3b3chC?Z>r9iE|*GN0y4;3Ffhz8x+(*4uGejfXpJ|0!7#oWy4+vqk<{mbFss@!W;nWB8jq}dH+KKzgIKFJP6&X{Ypu=!rHXTZM(p8SC zmagQn4+l)_XV{y9vO*O)!((CLASM|Kp5Ut8<;rc7UfPkn$s_WU$6-vFIKog&dFfwT zcpA?TkWKFQs2ps$fM@ZXiKCB)yr`saVFu4LjI21zkq}E7=>MW$&*MduOw2M&rQ$wb zNDIeMrV2ixPM`E1ZwOb#G;4h2%>w3Y|?logm7H8ppmt?rUO( zP@r#tD2(rrrOOdITYV*>d+0>*F-l+U;5bq3ATvJp6_LKV_73CwlxgOnDGmI<^Z{v8 z7+l-J#2p+O`Ql6D%XcxIy|slG$~$=J(iY~%D?51gHr~|i>4bepvx_@eO0M4{S;Cyv zO!*F0GuyaO9-G+4rSjO{+qjawrQs!M&1?9^4;V3i#HjHTipI~FH11=@_yxA{D^3~@ zuweX#v&QeZVElp0#-F%q{FUUfzmIj02cgENxJsEgiFa0{5Z8zu0!Nc*mev4p>0clv IT_O7Y3zzhSvH$=8 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$27.class b/bin/jake2/game/monsters/M_Soldier$27.class new file mode 100644 index 0000000000000000000000000000000000000000..dcd1a52a6c7b73e4163a4c7b4ac95d68416994b0 GIT binary patch literal 1862 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 NxIurMkfsjw{RRAYC!+uW literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$30.class b/bin/jake2/game/monsters/M_Soldier$30.class new file mode 100644 index 0000000000000000000000000000000000000000..281e04f7de6bb663b90469750079aae473f435a0 GIT binary patch literal 1017 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 z%0A|KpR0Plq(iCdg?^l2n25Ui%Uo+-X{?n)QIjE2$B9KX7}8mrM^t4+mvtfcEQzy7 zyO>}YvvfS6?mXg=@Gyxf0`bMM@EK-ojLu!zH(wSJR1!0ob#abi$^tr_RPo;;;xWX{dYmQX4fF@*1vEFo)GI;|K8y)#Xu3K)< z;k2yM*h%Rq#(Jf7f+rfxf5CVg)2(r2Dobt5w~=kV{Q%FLM>1cr?0hr?9brR8zw-)d v=QT3Un-0T77p2EQc(_h~Tt?q!s#u214LbJWCT@{;uuk?4{Zf=otK%9& zZ%A3AXkZQ|jUNiTM!MJ*UtI;%78eXG;s!%!^AlN4(IuaR@k5n5%@W8=w-|;(H2?J& zxT8)j>d0q7(W9dwGx^dkGIV9tSKJW?O|QhVZq3WfElauS+^JjVlo`lyn@-+#eKNz2 z49adn$120XyzAt@Dfb2|v3F<4^m~x%6MT(4~HuD1=U+JL@FYH*h#t3XrkCf8A(JptqNe4q5_D-d%jR;j4O2Tm!Z+f>1Z5%&CwUsO*EKKouK~& zBk!T{)P*Og(Am&TG!}~QJdNvUH<_5fBJ6# literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Soldier$9.class b/bin/jake2/game/monsters/M_Soldier$9.class new file mode 100644 index 0000000000000000000000000000000000000000..7027391b3f07b4ca76485a6631472575f0e68b06 GIT binary patch literal 707 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 R-_wtM{W!>v!~E#y{VyZZd?Ek< literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$1.class b/bin/jake2/game/monsters/M_Supertank$1.class new file mode 100644 index 0000000000000000000000000000000000000000..6fbc88ad8e07b64ec840efd3b43852d255543b8e GIT binary patch literal 852 zcmZuv!EVz)5PfSqb>o;eq@^vT(3TcRTEL=QKq*L28e}O&NQrvj5^dupS>miCd&5_8 zfF3~Nzz6VAh}k4mMv5ix^VltngwT_ z)_5dR&DCK4i3^8eGnaO%bh|Ir;8ny&l+LhlES1zR8SHB9oWVIsBH_VC(MJIb49iWa z#JlnELZoee5etS&GwJg9oTt*nvzLzU%Zy>Knd>!wq&h>PCv^CRVYOPL{Legyx#|Ti zol4cKFXB3b*G>hGTFF>Nluq1gz_4D;vx`V}bw}50ABwnvbr)+4E4l7(NtM?;6FxR@ zlfmjqQX)@aWb4S`C`k=X5w~#L#TLVMj%3~nKJH+fp`^`-ooqTI3q9;&&&6GajU2&$ zO?>R*9_=%$*_yjg7&aP>i4~cMKaxoKng1YtyZG=Y144&91`g@==$jdmuD_SGvnBul literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$10.class b/bin/jake2/game/monsters/M_Supertank$10.class new file mode 100644 index 0000000000000000000000000000000000000000..c86fbd498416dbb961d1af1febc7cdb995c36508 GIT binary patch literal 1355 zcmZ`&OLG%P5dKE9)*@*ggmEy2BsgG$Bp$*x&lqgLX2BpCj9jWB9F);&kT#ZPUArS! z@gulW9N^3)hd?<6MN#|!t{nL-Q1nPjvgRSxPS5o8zuXWTWY3Vi;45FxGw@u# z%3v)94VeZ<%E1tl3_DA{k}KU#U50C--j)m_rN9&IstA2^9w;r{@*{@HQY_bZFwHRx zHKkr&Vi?Wk$zf9z+d?&q6&?DjIkyA57_!m7Rn&ym!doXNN}))O<>EC);M^;2;hW!$IgbeZ`Qt=cX}*BQ_2*?CQI9wcjq5g>KC*ImjW;@IzI4ItVM> zx(8B)1>uKDMy#`~y)V>r&>^vz0AHFb*$Bcr@)ElvQYjFS$gF~g7<^uSm50~&;Q zL9v@&J*RNS#%YEFv3kDMK?i4Xj$zOL4eA7&a?qveFR1PG?hIYO;erin{ob#`8*nx4 z;G&6}@w#Csl{SuPEa0+@OGHYHt&(4Na0QFRY$#MC==5gSO)k8j?fp_Xg=-G3e;*|g zV@0xkpBy)(N90kQCQUYT8HOun+R9?1H`ummV7d}?Lr=QCnf`3-ft@h3OHbsg^4dW} zvs;$B6*Q`u`QxVMwkF4qIZklO0SB}Hl1ckGLl1um)P-~HVLF@O_Ky)fJK)X zIy-$MlEZW&F0hkU6W};W6M&Co|0dCQH_^c_#a#J+t|Qn@x5o7Yg||r7lW&rDd1m#l zMc+_nwS067qg&Xwg86pEQumAu6 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$11.class b/bin/jake2/game/monsters/M_Supertank$11.class new file mode 100644 index 0000000000000000000000000000000000000000..5a77cd486a28f5e419b15bcb12931fa236c081c1 GIT binary patch literal 1158 zcmZ`&TTc@~6#j+|UD_^!fCcIWHkhXb=oZ@ukQEFU`^pWop>$nqia9D>F2x7C}Uz8S%yTbppHCn zsjFd{&$xXv*2FT564 zR3>g}+(fD2c|s~3s72j2aYyf`{^Ap|e8$OrQ9EGhF6gFj+efVlix=F6R}!0!p26PG zn9u16qCwq|rJC#01Z@j-=$0AGEh&Y!UbB5)_!tG1mi`_DE6q0f26;r+Yd{dVT>> CS_}jL literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$12.class b/bin/jake2/game/monsters/M_Supertank$12.class new file mode 100644 index 0000000000000000000000000000000000000000..80ba210d9fe4a743af4a36b696724a1874657018 GIT binary patch literal 1985 zcmZ`(>rWh26#os}Wnj4!x_~W(J}9VAq$^Nc75k!P>nhL(6kBS$y}Nta9d;hunc20~ zel;d0eyopbOcayG#1EE$uMd7OCPu%>A7ngtX3<#!o9vu>&-?t&x#zEce)$!^I3DU~ z&~S7`l;n7_AS{`*9NY7y>m_G1^Odr6ePNdd$HsLq4LuRPY1_Xd4Euaulu2Df(`$xp z_-8aU4h=7AU>BUcjH3}P95FO$XrD1`Iajf=(p?Z)Q))=eI5}Z13fEBg8k6}&!_zQ0 z6A86TN|PF51?i_RYUmmoCWER-n!+w5=Y7|(3zN;*t6`6~RYayt=~7}L86Ap7ka;8L zXZ*>Xc&YU8Vhg&lPscNqbR@5u6~}(`5CBCfOuwi>ODpwWjy}bXTjG8u6e;#0j>9-Y zN>pTTT{zn}{0AA&7rvxST5uGDItJ=Nmvu@U&#DNzS2Aq7VzuCT4C@%u&>2bc5;b*7 zc#`87MhG!eR;9TucEHP+svTYsdlX3>$LnL)D{;JtF+$TfENZ2eQngKRoKVb!f;f|x zS*K#>s2Ea-<0M|zaf%ue=2r0yGdW{qIbOl51fDDGykiB^lWIEq=V$8oSXFd}<1Efm z;#8$ciFZap%Tu`La!jk7VpU;Qq(b!)$Lk8V*s@E|uyf}C73WQk z8O&;EC>RZs$6BIp>M}IO{Y_-R5+GP9JlZ`g{h@r*vrng0wR)H0e3huxJ&Qm|JPwT zRT(Bp>}dH`AW?;9k=K!{&%Mq!hg4o$a~0R6QB{Ttt^!AK8xj+Wzrs=4EsJrbU~$;n z3XD&U8H5G_%q#I@Bwkwr%NNFoowy4@W@LOiLEQmv$iCb-GOu z)riK9{fOqLbZ9`FzHy>pb6_NFr8^Imh_=y<-VNI6s~n6HRSp^x9p4iP&6Rhs%MsJY z|4b9;3{ACf$U%&3Hb>UcMgIda^J}!y;UL>U{~DfK#|v~D|M&~Ar`@chXBF)~;iZqd zF!`xst>N@K&bK}K9DT}Y9jT74uh6k|?q4OHk~#_)Mb03V6thc%K>gfar&81)s1IzGNnz zFbm%j{f^oAnU(PyyNBP2{=r=Q&HMoQ6Ct`aUeI&b2oCZ9=yF?j11mL|uCu}?&{{?;B;LiX6 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$13.class b/bin/jake2/game/monsters/M_Supertank$13.class new file mode 100644 index 0000000000000000000000000000000000000000..fdc0a8559bf8caf4fca214551cacc0653cacb3cd GIT binary patch literal 1270 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$15.class b/bin/jake2/game/monsters/M_Supertank$15.class new file mode 100644 index 0000000000000000000000000000000000000000..3ed3361b5f9c951879e9d38e6d550be48403e383 GIT binary patch literal 2282 zcmai0X>1gA6#xCZZ#&!V0NVwmTyn_KvW10K5G`j*3)L2=Erqsdncbc44xOD@XQt2! z9*M>eYW$#yA5Hk6jfM|GTC9c`j3yu!uXqwqqDF}aryAw(&F+f39C4EOe|_)&-uu6M zd-T$4uLG#WZV3efGq)=}YGpXCB-L=zG;Bw;>~K?8OK(cG9L4CFwP>*f5}1@DS7$h_ z3C-wP9aB;)FHpElGc;#~fTygyO@M06nCgcIMKZi76d2Q}8S47pWJI-Em58ni1RKq$ zqPHoQ=F(XvISI`cnAMo`)(w2B7VySZr(uo2xUzCq*r9}V#fXPn97{9e)jpI66xW!x zUDub=*&UW=>qd{jgtA=wYD|kdT~2j*M-j$jf`pp{rv1LR`nzmLaa8uM2s1HD!Yu+5bFJkG$(W5f zTnp3E;+i2)&{^+C8RkhS7bwZ7^*Wj!Zc>~?)fyQgR0#On)Tm=xwPvbcKq~93@2oFx z^J4)PN(c*#&e3bsA~F`Ck_&7pMl4h!(M_c0%qbB&W+6WtD*k?s7x9gb@eJ8UPrlB(i_xrFwDWUSJUl~^rdmB84XsMm6< zHfeTLMh$8Oe60z~+__eZ2!yU%*=w7lp`pCZhdP1TH}t|$^eb-ou$JfKdZN*UYX9f1 z4-En{t|u2)73+#QH>$g2G`h|grJY}=Dls>Y>t$?k^W=*$qgz+vMQBEgguAazK#gLn zGFq{T>m1j3Jae1J9p)}AnKCW6v;EkNb_rVqN^`Q9CnKW+o$SqKOLNqkeut-p$~Z}` z>OC^(bq2V5j?BLyv^*`F)-*Btu7%9dxuL`zh*a`N+sIH+?A?_qjJkhT7+3hn;Ly z@8%tmo1TA1o*US-*fGJ;jB0U|Xit-pO0Ocx9VCB?*=t4Bdd=Neft;1Nz}+^y)as0= z&gn4XO{$YHc^>2j!%(eSU9oM|#&qxlylIg>c@HuzF;&G_F!s)S1-^a!M*;kN`Wb@` zf%vkRX*narcob7Si5SDDYhXTO*MKJ&c$rZ~-L(#SBS+P9MKy@A8P$R#>;*hQAgVfO+YqW= z;#VQ2x+i}=hAM`7hIR&>;UR{n8J=etW_YK`A@}*qGO>V%RA>8g+F@QiQxU58+^9*Cf zqaHC;+H?7Imc54Alw}8edoG^}1?#htq2RjA<((n#5SnQ3erzl}fHp?H45~PQtxRQ8 z>pg&Nob1>j5yoxlnD4kzh* zoS`3Zo_@qd`bl`{r0~(tB0#^0@${>hOuvaKjHfX@mrjWaIxWIt?V8UQne#JYY;Iw#GI9*Q# zq3{Feq*m?sgdcL%Su2=GGAzWxj#YTtma4Pg@QY0u_Yq(0M& z0gHBvER205>Ek$^?LiRP2|CeiF-f~FutQcCNX$%qA~Q(W)nOdOQWJkuXD~ZVeM1EZ z2HW3|ew)U^yZ1<+BfB+njuqP;|AO2HOb;Eq14r_shKgETL5eVrFm4C(d x-6&&&?56Q7!p{sahWLbrJ^FJQF$d8zvJ+JAPSp8b+>3mxwBM)4q9{#`)*m6l)x`h+ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$3.class b/bin/jake2/game/monsters/M_Supertank$3.class new file mode 100644 index 0000000000000000000000000000000000000000..05f3ff4193ba6a88186269a73ad41b3a6d1c356c GIT binary patch literal 856 zcmZuv+iuf95It)kRXLTF35w51o4R$!@p3_?O}kt(IUr0N4N(bm}}OPqD(-SkI5 z@Dn@$0wM9h2k=pd*~BSE)ROmjJTqs`%1!VZ-==}R?u(d8Eu&M@;#DrufGxb?;GbY*NhrrCI1#vLsBSRj1`3AsPS67Dio zaz#>|r!h~7w10-6osP0typ(oD^MyBB)lXFv$&Ej)5o$POn# zgg3}yxQRJBEx{8)OW;=LKM_pQEjyfdg;e({wTjz$>H$Sl8H77uQTu}BZ&>v{UU5t$ nyhq@C81pPlVsjoVX%kz-+4=?%zdh0*f|PvpK# literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$4.class b/bin/jake2/game/monsters/M_Supertank$4.class new file mode 100644 index 0000000000000000000000000000000000000000..36bfb737a56c6f433530c071b24f661d7f99a103 GIT binary patch literal 860 zcmZuv-%k@k5dOAz<>>VksI?&e00gy#=q2b|jfnwFNQy5dJn+&i*KND@x<~f5_)qzu zMq}cGe}IWb{~_aSd%zjFo)+~*z!7a2b|!X?w~X4x}2s?DA7eXP9{|l{7CHoOWms?JYF#a<$x!SIv%kwwtv4wDjE6B- z{jhDcRQ={G78n-N^E-5UiGIs#&HQZvFM>j3UeZ|cz`9` zVkl>tr0ONqm^@J~LUbkE#$6A07*=v*SKTPUJ*+U)E)|cGGjS=q`cIKb%+jx6-NSu` zrT^)zxQ+?1VR_5ZSZkq-1=4s@5%;KZdCv0=F!=3ctRwMC+A+=N7U7BQGR<;NMRAf+ zmk)#)B-GPjUn!w?VxFcV#VTkGXumKyY5e4S?r)qL7fX|1vfJ2E@e|01Y4g_{fOnySasiB qa7-oqf?xPO;i*k?Gaf7H0Ui>QgGUog9SyQB4Hwv?*Qb~jM$cc+Ex_;q literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$5.class b/bin/jake2/game/monsters/M_Supertank$5.class new file mode 100644 index 0000000000000000000000000000000000000000..27678be5d8779789b804817080895629bc466e17 GIT binary patch literal 857 zcmZuvO>fgc5PfSqb>kRXLP<;cXiEzut-w+drywNM7O7IoB~=f-SX*b4m^kZdy=ngx z2S6Ys4*US_p!UxoW)rs~DyB-B1XN(4i-l}0={;3_tD{?pO@IAd6C6>42AsmW043B9|`FjsF-{0R>d zE_*>+t627$)40KKJ-fI=c*>Ijr4YX)oUa!vh)x{oP&XTgW!%ENiyFx*D9HUj7I2%P zk_(DuH>Iu=i3%Q~E8`CCxwy-)R3N+RIzH}WiJ|sK?l3(OVK-H$Ty^M%e-#<~4E+jL zT|8h|_@Ca03$>3m!&`|)N(re=BF!cfN%tSliw-b&?R2Cf@j5m$nk{U>Q`2G^5ndyUCWsk24Z#yaLts~D-xEyI4Lhu#g;e`8wThd0>NZ7F8TcEYF!vFQpRw$` ryX2TiID==Mk9lg7*qp~mdWc8FWaIHTr;Y}pL&F8u>GjBGgwgXG_=CU6 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$6.class b/bin/jake2/game/monsters/M_Supertank$6.class new file mode 100644 index 0000000000000000000000000000000000000000..0f6384eaead736e8b77bdeecce95ac0430cf0c1c GIT binary patch literal 968 zcmZuv&2G~`5dPM2>Lzh$2&HYxPaD!g(n1ZX#3cv`l_EuIxTNZVOSE-1iHWn0>`jln z2T#C-1E3-#4m<$w00O~tAjXahPT}Ak&(3_`e6us3e|`J}ppIPw8bkRxABwuw=ObZ_ zJQ*nA2Ue@oo{WXBxEyZWH=r}DCerq$IvhB1_^8Xrl+G~sz>$u6$dIbmju`YkuPd@h zA!8zqIfjJ;M~bJD(XsFk`LQb)iU*#}-6QThp&wuBYTyJ6m4igB|4V8xr29fOA2Tdg zYm|S&Etku_)mFYE`;B>AWXK0+J#_quBm~jRA;WStSwM6hTXj^U_AGJkFt zxQP{%7;>>5NA^5=lq69iLUb8i!8HR{8CDWxGdU)%V~xS!PS53iYMeDQD5GNF2E*FF zsF|^t*uW-r|F_4HcOp6gjjT)8Gs2?CRMIUI)ex7nC%!MF3PWMhEfd?}eeoP$^l*A0 z+}=6TvuC4cZYypNTYMZ(G28YgzAc_O;hYPJP1*^^M9Z)*ZPyEEOf8`X9;r2(QVM_1 zGE;cS4()3Kn)(AR;!+ItD4WV)bNdvFr&!fryhI`Ve~0z=xcLhCsZ%3I ze;w9{v=vDev~MuA?C47F G(C=^gr`c=( literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$7.class b/bin/jake2/game/monsters/M_Supertank$7.class new file mode 100644 index 0000000000000000000000000000000000000000..f42082fd3717c14b17dc2f261c7dcfd1516d165e GIT binary patch literal 1084 zcmZ`&OHUI~6#njX>d-O@6y&Ay5Y(0mRS;2&C4iuzSqWcX(3~R)AXKu=A84L$9Lw_pZ6aCOk>4>#xVMXSH*Oy%xfZ5 za~)p_&rhuva*ew1BzLOga|U#V!GPO}BR49RQ(Y|aI=M5PnztNFE--}Ri9Cb8at?_3}b77Tql>5W(b#sTwP}9 zi6_W^ho@}rlv6qBSx!0KhAxIP{!tHwlHer@A$+IG&=(J85GAW93o@N}9Kl)i8R(_* z0u{9ECi*czz11v-YScEf`o}sD#d!=FxWLfW3~5NqPOWoUnOQb5j1h)NUKFM4<%DEt zi*IJ>N#s?kizddJkbKwIGlZsRo&(Bs#Y7wl@~^o&LhjXRVr*3zk|wSygW>ON+q~?n zcT*-(xJHQ_u`63GvTTGHzF}a7p*zsb1EM*@ePLo2H>r)XMbrkTq4uC))#|RNW)j6M z+%a&Qp+5lfkB^Bo<{6?kjaE3)l6(Ihuv!gY*xN)}Fy#>e1d?+bUQuK%wIZE?C7e;dLP^ZppwB!*HOoleUGyTy-4bE!o`ng^v-?p3(<^!;|)tbc3`Rl8j_{ z;w{=<(M2P66~h``KSL*DJLzWAiR5Y0Xv@$+rvjKHsQ^N;&X**b;R+qvmq2LfI5dXt zR_HT=r!<&L?xQC*7#nPVhjVlvjg8aql2SU216)o%+Q&rr=>aB^?FX2AjqAxbnA2Yz zryEk0XkTG!-!Pzk$FTMT3GFAQv|pIjejk?6+f3CegOcJd7O0RA?j7RX$0A7`89JBg KA0?aWi=Mw>qwBT+ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$8.class b/bin/jake2/game/monsters/M_Supertank$8.class new file mode 100644 index 0000000000000000000000000000000000000000..a39b4cea9fb3994dd021ce670cf876a6b05daeb7 GIT binary patch literal 1730 zcmZux-ESL35dW?B?2DaiX z2LR(J>IgBMyKUCRc)DtCiS(9Zds4VwI#Xta)+<%jz|%NSWKtdtLAQi9GBG@Z=X5;F&=~~Vkyay}Gi7aJ z-oOx2491KyFNl(KTykn3+Q!bzG}z*->1?B^_zXp#@zF$(e@f)eKz5 zI8ocw7b{9xbSf23vB)<9V9y(P0h7e@V)44`+$IEhXU8p3LZ=QvY-ALS1g;o(2~(7^ zu*KFMg+9Vyvj8gFs|H>Mby6(IXwKOtYu%3*M0(A@j3O_#Yl%BGVO48V`OO)a#{$FY zz%ReEDP6NfXroOmse&?FG;j@B!W@__JMNa*u-+rgVX{jR;cpHaAX0!fOc%o6ETq=%x$8^hdBUPlPx{_MQRlJrhnkBv~N>tT= za@(I7A~Y|}QaxvG`;(%pg2n=}GnN{sc+0?ERMS8iF4(1pnx(CE*0l8wNK z_ERKLanM1l3NS{y3c$PKU(*)2tLO;*-Qvm*UAu55aAkiGiZ=3j5IKmf@%EK9jh=A( zO757vd`zCwjw`~)6_Jtq=)RBMc;9D;#WR!o=jeT`>Q|~orPAZqCiOr)I6B7maUl?f zzr|QWA0Hh{YWtWV-HU#-;bdeV)5%Eq)}=uA>ie53$w*R5hW9b6mdwo&CB?@(*`Eo0 zAFpd)Dr$U6*U>|q{DZ;JLtGC1i`md47qe8^+?h_~ZoZr~oB zKjo+K74N_SkK;$)iJy5le&q@LM*Hu)$LG1?-}0czGqH;6m?Ea*_ysFCPn8+O0dCNV z(@WtCeRG{l%IubhGZv6pW c4?&4>toaSGjt$y1+@keedSV1hbqsy}2Zhdiod5s; literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Supertank$9.class b/bin/jake2/game/monsters/M_Supertank$9.class new file mode 100644 index 0000000000000000000000000000000000000000..fa059458d9c341cc1ea5ef72266d0a8d3bcc025e GIT binary patch literal 1794 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 Wb~)ZIC)?#TyPRp4v+Z)ORsIj@z7gU8 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$1.class b/bin/jake2/game/monsters/M_Tank$1.class new file mode 100644 index 0000000000000000000000000000000000000000..974911640c6fe1ec0b8334e4f20a7832cc6300cc GIT binary patch literal 876 zcmZva!EVz)5QhJCoH}t#8`1)$v?V}+q@hHVV-OOQ23bnEwCbUkXqzm~QfFOxw>$?3 zcnc2D14tZr03Hf4>!g)|TJruo_RQzsGyCiJkDmZGvEjjCSboEg#AZ9TbN*j^t z_D+9~tE06?9$bc%T*kICp`sK%Fwchkn05>^Po$FODMO*r+-GpNlA-WXKsi7WGYoS* zsl=<3@u5if_+cy{|t2)ijgqk3xDFn!ax=vniij4Qb2;VQ#?&d*Eg(sQmw zfJIzqa3aaDln2;0_T~6ENiDjJ8(8tMOi4M&KR*><6*n0wIyq6pGuJHiaSL}m+-6wJ z)&9i~u!g(TkgSp>dExJcVYl1O=AuRXn%b7Pd)5PjBxYoX>F*{d=|FU)ol|9U4j$Sz z(;THKq3$5ZQ zmV%)24R!bPIj2Sj;Cw*Y`G^YXtn(>j)+cpSCJ}HC_cI$+G-&70`({R2M~l>@SpyH~ K_9@HSrRxu5HMs@= literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$10.class b/bin/jake2/game/monsters/M_Tank$10.class new file mode 100644 index 0000000000000000000000000000000000000000..f45f2ec39e3ba18e4cafea61b2e94056cf3f536a GIT binary patch literal 1663 zcmZuy-ESL35dUrV&KKKPnuMCxEo}lVVCSQ55(tnKXuezmacFQbq(-vN_S(M2xeMn_ zqxO*pc;f{LA@R}&BqYQGt%@+Hd{rtSKC703_+Jn(d*?=%fbHAanVb3T%x`ApAO8OQ zO8{di8t7s;e9l@EW0|_OE;8$`(~`n#Wpbqz%UL@%dcuIla4_UD@5q&g?W|2#tqpQz zh@7+?TRzReQ|SVOHtSYJ3>;AtIwA~v7i~u@ZLXJvw_=r>f}wBGtys;1<=IN_7&Y0j zTMYe+p|k#*&J=@Q7jj{aVP7guzUQq>({k#Wy!33RKGlt0hPcXorfI2C$e)0nHHQ7E zFtn)J69bKJu;0Lalvn8J&U+IFkYr$#*`XcbjaM-~849PIY z4kr^w&`;^qJYt$47gW##CLY95B9Urn3Oc2$n2q5fJYwKshTZ^dQ`*f;&XSGsITImc;ViaRUYsX%y zDPzg4)mlPQbBjS@kD7Q46V%nyr8Ay;jxxx*n_h(q+OwTRF{{!@;0Y5?VvEW+*FG)8@8z;#~ z>Vu!6`!a315Ti9l68su8dKo9(44g>rA&m&fURo8v2uTIN`+7bm5rivr@GnB4d^@xc z_XeTt76Eiq%$>-!$SRL7uWIz@@#WkueQB3IsqHrCyA6?{tJrrH2YXIkLR6bDKEQ#y zmRYjs$`Xl87=dwMc!afaEKmloU?gFT4UZ(XHpa>JxDPd$)Z3U!>iVlE0^2ihl$Vow zQcFhKm>E*C=SVLfNEkicZDh5N6em8H1-c2~UtxfMjZyv$X83jF`3;o#w-Ee0yvD!B z7XJ|!`OkQh|AM#puXu;w#JjYAkKe+F{5C%0zu`Ln9Y66uaFgV1{-;lF%|GEzhg_l( zi_4E`l<7yoi2kiQL{@M6qMb tQ#FL~4+IPY%s|4xO85u#{-yp*I9~Fnpn#W2YIud#v-HF$DK#ea`4?f9a3%l% literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$11.class b/bin/jake2/game/monsters/M_Tank$11.class new file mode 100644 index 0000000000000000000000000000000000000000..3ca94c28a77e47661d04bb4e23fb8e59531e361c GIT binary patch literal 835 zcmZuv!EVz)5Pcgvb>o<}q@^vTr3DHkEnu}AgOH#!C{kJ>HR^#&w2c>Mv9qqc4qwFq zdH{(7AHY9=K>P<{)(MphSn@v4?#!FFZ~W!gr_TU(anC`CVeK`K#I7Imq40-^(wRuL zf6(i46>aY9IItO33Mu<4>kg!fo&@}qQW>TmNhPz#3|75y%wX>&fpB4=;-QQwhS`o( z;&3!P5owp7#DbyLN%}lK=BYICWYf+DQZuY~3cdc7(_|=zB5OZmSg1EB_YL=Bu0sDP zOQi~%)40sw8trByqGn~{RT0Bdy~r#A+0S}ev+=TmD_C-{$S_~%{G8l)%C+#YjH?W# zP?8Hp0%KQC4o{QR&{S{@YYtW~TJ@KF57)8I;OS(ff}Wn}V{I2VaLd6>hUJ2S3k^JM z;x^qSFJ)N$?_JvMR;!hdK#TYl8C2B!=fdR9Q8G&Vq9x5Js^dXFFhlcwY4bHte_O xJT(#k>pLpe4^#`9y{b&|TN8`=a~N}NyKI1nHypZr`5acJt`lB8fJ_Om^;GZT$p zQVNUiSnye~q?Nj31LC7fSO{f{galiJgvt`cN8%$PzAg97SdksDJ@37HeeZqeo_p_n zdh4Sd014!Dv@smHXjVibUNSdCe8aJ8Qnn? z$&?{@+OjSA2m>FCWf`@7yZ#GjiXl)EGBw9=U@%6u+h)9K+NF3#x|Usdxg(7s&|Ye@wof(H#egh@(S z*ka={g>GT6Q2>?gX#)>~8YtvvH0x}VweH39BRytdT9Fspw#22fuu5gA{ALZzVV>a* z-!HSZE?qNEXgeBMVp(N&#=zr95oX_P(Q!A-s`Vma4v<}p2!9f39Sf};koHHxz#^Vv z=-H*kaz)N<^w!b;?I~4?R4U~SLrqkRluOZZFPUzEZlsEoRaa8$xQf?;MI*$wMV_ka zQ*L{sLWE|dnXjbHO>aPSRnU-6cG6N))alRYNi_qM+`OHyIyIVsw2)<|pyS!rxoxVq z8V|ZIW!u7?r83t<4Fez;^j3hk(%_P;lQd2{qdhS6A==-kLmNW0hG+->1{(d@NwVP^ z(Y}u)Dhc+}ssfDCt^)Ax@O!lR?kYO?w@t2m*R>lxzAO8hP_&cJ&EUtu72dhDqR|uR zTuSee7x&1M+FnIquOc{n0|##4a2H;=j!?LFLVpW=ySmqv?vT>y;pl|!>jy?gSsllH zVdw*lM)btUXjH3XoOBO(@rI(oI;Nt*z=c!3?$MXmm!iR_77f%fqn70PVI_qVU2P{K zdL2(_Z!2;k9c^DMr0d#&NFSI+%NABEoh=nKV}ELXQ2}ST*rl>z*oB5}?5|d}LsDh% zUDFNSex1P+ix(OAnpqVAc;Hvzg^!_sTQ|f``=BhWf>v${hQV#KqBV<}rAxjey!bJO2?gT} z;cg$NlvG?ogu)$P%v*w@8!`^(KBq?*rQOAV6z?D7YV-4uiz2t`gBc;;0blr&T&g z5tR-+gP|XYxaQJ3c%aMFb7DG(A=k8L3BB}yC4E2nc0Iw|E~nQU%w^B;J7@T1epcW; zEAS~Zk1+fQ7YFct_2a7@E*kcRee4)h?qT8~QX|TO6o&aR7D@W@uUL}AF;1k8v6AxM zo^vH{+%M-+VNSy9DOxf~Ps%fw`vyvqVs|~#b&tQsWRkmVl+T5FPfi|I8~1CZA9?=q z6FM&El9Yck>}5`rVIKB|hLr)99AJNqD9701-$|&Q5*=ZJFz!Q$pF@=QW1feQ=R+v) zVU&oL`FVW8NAW4YfX{dspVR&eK87#(IKJW&_?BP710KO+9>r5WiC_2>e&bj0C!c0P z9%KDH!A5zKMRw=b`vjkJYI@VHTc@T}LA;A)s%nUh;|4BM7etwg9PK>xvH2S} zX~%ILe;`jgFRj0$Ksz7Gc!u{7p;jtVW|QFm;wgF+Fa;wD-tYcXOL=C-$m0i2pY7rn RQI0)YKcqK6_sd44-+#z+db0ok literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$14.class b/bin/jake2/game/monsters/M_Tank$14.class new file mode 100644 index 0000000000000000000000000000000000000000..aaf18c3a550c57a423b9fd37fa8651f43444d860 GIT binary patch literal 1288 zcmZuw+foxj5IsW{mL!YF9YN$GXhMX@P3|B>g3$!60(tNyHA#kK&1RR{-K5Ho@X;zQ zFJIt;Qdm+x_yPWg|6$p)iMoPYwbOIyK7FS9%=e#PzX6!VV--ydL(h0w%*KnnBH|Ux zbX;LO@l5uBo8|GDc@+x7fX`*ebPr0pS>7t}V{&C^S<_A3-CzhrqK6Dh!YYUm0tjko zMhioGS~taBwUQI|0nZtNp)+mexpByCU9KCOid)hhhT*g?*F`$349!L1rtUFxN226g z<8gzV#rVE!>t=Da6&(ycE^*J=g1auym$Ny8%S%xtr7+73eGz{WQPA^l)?JN04Wb8q zDtZ~Zd?a?MFx%V_8v1dCK%BB}806x|$k(_{5J3!LNX1o#4j(}MP{TD0Q+SOVRjL6? z1~H23D#oZDKIaA-4da*~Z()kcbGoZP*>A!j+(cAG5lGIJ@(&Q z{|{JJViZ#vrV*$9mIOE45>ZZtFoQW2vkaH&l&h2|p4M|3=CMGoHa81a#gjs^W%I|J z_erp24J)ALg&Qr^%_EC+<c literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$15.class b/bin/jake2/game/monsters/M_Tank$15.class new file mode 100644 index 0000000000000000000000000000000000000000..38d0324a91044177275f3a424b8bb7b12e2964f9 GIT binary patch literal 762 zcmZuu(M}UV6g@+C*>+i|Rs=y1RMb|Y8!9%_Sa_kq#Fu7h$9CQAEZLc2{3jpO zL`{6~1NIF)L7QMOqz> zh9@d(%acS2)LLm*CdV?1@_c&e*g<3jHd=*V|H^3!xP4{!UkEJL8>~H(VIp-uJhEA& z`^_>gv!kW<&S`3_;c3i{F3EK)uv{JuFdMq5bqez%{IpLuobq zz`p;ZsNg!*J*@rh)dl?lZeT;8JeHS@w7^=C>w>e*+{Bv!YPdpIjY{4M_($m|>#CPg zZsXi!NDp%p_~<>|O;SS>4wN0FJ%M0fYnAOL(imm12~LP($9Uyrn0w3~GYUrc{&$o= zb29^6T<|avr}{dS~`dFK~v}}RkRHLugBBX@M4!RuEAnEj47iq=r8%!o8= zodjL3;_b&zT{sMD1;~*y-GNl`i-^A=D8u|Ssib+%P--;K7@Pwg2@fSye3UWIu-K7G zyc!KJMB3#SiD0O8bjXu4o=ThNe>!F$GltDhq1XR*+6?8sFvo`s^+uDhm%Np5)o-1e zRH}Y^0ZUXdfgaV z7k3#}3ub3L_}I4U)o_%iLK#b>^<*OH(TIwge@DRJo$65 zbVfry5oVwx2LD(oksc&G%S47P&<&t#h4D$7r`)CN2}MS+y!#yspXp@|9-SUVIB(%l zu}Zl=0a3g{8N*d9(rE=AQnUi4+OLDAO>N-seMS8X*1loO s`8d^>Sa=W5`7qX5o?vqwYiS4fNvVVfV@?B2iViIn*rms#nl(nhKfM3Cp8x;= literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$17.class b/bin/jake2/game/monsters/M_Tank$17.class new file mode 100644 index 0000000000000000000000000000000000000000..ae0b746855fcce069b1a57d93c7d27e2388ec9ba GIT binary patch literal 1290 zcmZuwTTc@~6#j-TENvH&J0b`oD5b&*h^T-F2v{v>0`kC1GqeL;yWJ(b(|MK?z3UgFnE3;GZ#`-Bz*)lkA*1JLi1on{)Z~=f_U~!?>%Wf}!I+&xv7uljnt= zw=Gu+$JG~8E8NQU42`K!7}^3RbCz7m8dh#P!?(zkp=!dg40(+q)E8T2P-g9nh#-Wp zhDua1)Fur}EEV$W!dc<#reLT~+G%dCa>wxW@=rx(4VR%a8Hjb5&NxHmrjUsn42^v; zvMqAmRz=h?HZeb3&3E;afR|mcC#FkulOTCC6iHVKkvd zMKeP~fWZP~Wrn*#Ln}@Yh?_G^lT3mb=^}RsB8-#hP|?m%7XT<-YB+^XaxZeTKnY;; zVVuSp72QNOU|eRSp$ENWEi93LKo1QD`$yOVIH#cxF{(gTa8qUpHxWS`11ioRe#Jd$ zm>LG5GpI$wHT+7%k4(l<@nUNc3}HmYFvGDD5ZMT`;)hg%st@Atuc)zt58 zZ@u$)UeRzBRJmxmo`$tyQ&R=Q1aACPPGU+0^;EF){_6$}*D=k|?iV|67e$Io$$;6^PItAqnLn6uOL(u9b{P){sUeL@n(ezyL`PAXI<+ z3yG4uhYsaYz%{h*T91aZ>j#3TFqqvz<1X52-n@q%-$mCh&VE8~+&k`}e;aLkxbU(O zm)?FvE&aT_gNbjLQ9hT>3;x+-;4|+=HHChRsPY6&%2RYH&k$FhV^n#8G36DemDfJ4 n=2GY~Eh2$i=p|yeeIzzUa7q6?i&!G5Q1O5}^hL7%Q6#mxP@z&0Urf!-v32A{QG;W)?ZJIW1+UDO)(l{l=ShRtf^?G7&z1|JG z;zKu6E!2eD9n0zBe;J z{qx-q08ZmA4G{%Bw~Puuohlhso~pWzFSzHYGWo3GRC-U1Xiyb&g&;GI$d)aqGEp?v z2&y1@(Q+(tSwT~OGN(YDa*I5UCd70wL>25^upGWvs}{JIH3~LYkXUd{!_FC=CHq^0 zswi8&g2M};wRVRys(_Wan44D6)}JKox{HA_h6rbW>dMP7_1Z^Uo_9U9sxuF%q3^EwWqlQ_7;tG8**r%_0PZXM5}hr}pz!xm)) z%A6cNtm8R6PZ4cpVmYfW$r)w|%}_Wo96_Ik-tC(2&_TzGI7$fxX;$5JzLjgF*}idfY^niFk?+zb^Rwwy_u9T^>kbZ4>(G6?@Bsa?b-j*( zeUJZr=K%)PdkxUZI?hl_niHG2K;L+J6VoGVUt<2_4IJ%IKWxL*Pwt?#L6sq@yLhkB zc`4}leTn5K(Ckj=D`DttK$qKzITZ}QO2a)3^bHyCeY{?WnXn2EaO*Bw{^wEeNxcG{ zZ=!>QI*C?x23>3zz3eQ8*f|Wd3z%o4xW+Ca%f_(6#=+SHJT`@Q*)%?2Gx&(5vB75X zC7VZ`UB!=V0Y9@09m0N+H{{RjmyoLY( literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$19.class b/bin/jake2/game/monsters/M_Tank$19.class new file mode 100644 index 0000000000000000000000000000000000000000..b93f462e4cb38df2c1446cb0a941d17ba0429954 GIT binary patch literal 1056 zcmZ`%TTc@~6#k~&Wof$z6y&B{RMeIV6%bKDlv@o6_yTF7MC;HU+O^wRvO5rXBk}L} zpa#_VVB)Jk%6NuWvS{4R&e=2PobOz|^YhoY?*OK-Vj;#b_?FkiRKCLNB477qs6-Iv zH%ePv)CEo*{_qeR& zH&x)u%3Lct84`+WFFArc*Y7Ns!p%i7{&-yP!wh52b)4Mv}U#o^kj=V)pZ*; z8j$=jG!_X>-`=uu8yRw~`v*cD?a_?bnl_Bt$Z3NW9_)I&66(8g8xzP=4k->*vpZHu zU=q_7rWm>+eLN#lmv|^_+`|lYP;rUO=pZ!fCAYrk2YMVy%z_wyz|a=~x!_~t5r~AO zM^hD2x$5Y@v(?KG3U8OFil+QCdji??_k*%1xOyp4jg_0wl+x0y%ChH&MCpc5Ro}6& zba4&;S`7w!O-d0gdprz9h!M~}(vsusq&+0vB5j%^BWaF(LF-5Qi4mQe(iq*nf2|}3WE*J=m(Wh91{f!)0pjV74xui=sSX^G?>kupgTRF->`}1@|x)SpZ+Dwjqa|gp_nF1V4 qm;y8A?pYZqo{}`MNar$rNwVp_==lv3dfQU~ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$2.class b/bin/jake2/game/monsters/M_Tank$2.class new file mode 100644 index 0000000000000000000000000000000000000000..0663d5808a0aa54fb4c7d4347cfb28f1c71dfc1c GIT binary patch literal 834 zcmZuv&2G~`7@T#Sx^djUw6vv^QfPss1tNuG5E7IIMM@D;qaL_K+hm(8an_OT@Gco>X1vXL{hbC_JwCO+T$RRTYW*%vyMFu$!SLi}NwBw$R1hyKfTK{xY707l~Tz@98QYR{D>9i)@iMorM*l}=6U_Dj; zlDvmq+~y=>A|3nhB=vf&RvTLoDgTTcN_YEbTvk60MqyjkbYew*;`4)KleFs4wEZCB zCXZCy3pxT`-53=f_%e!Agl*7e{y7+*beFNi=pj)MvwPn#`-Kk{T%Ilw)?3*8m}l%w zl8AGR1m>~8GZDB?OawB8#m|HZJyD1CE=A2;PzzX|QeRSlWw3aTm3`+N8=jZ{if#MT xg-(GDzrY%o6#or-XP=j%OVQGnwzQxuD{Q5T4`?l~g;hW+NVV8*XZH@fx7-KWd!dbq zUyO<0v|^&RK5NyQXkuv!8bA04_}}=|81>BE1(%13o7_1wXU;kEo8LKe_P4)&`4vDP zWCRTiZCAvi?8}sdEi<<3c)qN7nW_A&a27lIPDY?H9H=uHbNo?L4jE#J3>m_MrepeN z7(!jCIR1zDLD1xqp{C*7j3=0wF*>zY#Y%cjS0bh7TG z-Czb7cuD%XQHK3pDY9J=8A~{&%#2?#ozg%Q4>Cl3LY_BFIw};5!(H`JrC}ERyg%@N zb-DR$YA%KrJRHG8guV`7EtHM}XeB1fQdoYOf#sC>AsvU6I$kmh`RY~-M{q2HqYTY; zQO1e*Vc|&~?KsZRP%;?~)}vFI$(#0)TT!^9=pa^Y(<^3{4JrI`?^Ur9$0O*9;L+`= z+UBSug>Hi5xyz1WI)=Q)(4v^x!C@+=f<30A2fajhV9s!OPY!drY?j!G;v_?dO_{g6 zj9a)Oi@ukkYkL{b&fA1BL+SB)ZKE$vRrf>$r*<E|Vv*n6=b=)j4r1v~_ zH|ShWp?I31^FLAe!rFon#j^~@_cAS(rS~t~CZ4SF|M3q0r#qsRj8bf=Yx9k>A4!h7NtNv zsbdP$42fC{(^+tL)KA?G)sI5(l8$qDnaU`5Dz>{K^Fb-mv#KvVJJ?Y!vzUwEmF?BF zEv%07Dqy0xT&YOMSB}&SJZUZLh`IUv=z0XzqPOT$7l{hr7sbV(p;YfirMKjoj!zF_ zK1*-PVQ8FDHdA7$)-&QW?sBClv!?1QiE78{RrO348*_@5>rqdbl787W81$Uu$jXQ% zJWqN!25Jt}0}+hWsAwIb)hUvUB=7zS(KVVhAWmbPB=~#KXfr`;y=p|VkyZ@*&_tsO z&_hxM2qho5OQPzoqJv+ra}8~|Ced7VWgk!g6=F4gAN%P$cpI1Qp)Jj6NS@e0r>-Y9 zkPh{S@1QB2%(Q5spYizHVb&7XZvFlHrv9lGP21E*NS{tVQ?*Pd2ZF8BX}*rLYjna{ z{w1`v+8HC&@WEzUTgL<$yl@XMu46_K5ekTS7boZ@A0oj&!an{nn)wa1@|!qB^CSEd zbns8n$v;Die~xaN_mHlie}O?d=`_EEA^sJHX+B1}X?`2$_}7>vd7giR3;bJLBzc+N zf#ly|fqxH&{{WZ&h->^V-XQrVU&C8O$UFQ#-sc+uqZ3uuYK#(pconY&Nm#`Nno;UV zH%~K_@m0KzR!XFrUBo5&lWNBp@}vvnGHDwT{*yXvB9Zt5ZBcR&q-;O|MUoo59l)S3 KP6wzw)9)WoIKz|x literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$21.class b/bin/jake2/game/monsters/M_Tank$21.class new file mode 100644 index 0000000000000000000000000000000000000000..d1f908eceb16c48f93aa5b5a7803faebd9b5a58d GIT binary patch literal 3429 zcmZ`*3wT^b75*o?lYLDs8`4rJwH1LRtnJbi6exmi)6_@;)s&#AxZdnecQ3npH}1Wg zw&J6{5Cs*Ks$i{8#79L4-L_IisDiZ0tMabAr4^L&Do`m<&$)Lux!G#=`*P3xbLO9O z&YW{*cD!}tO#nJYAcQ7?85bCN-I>f9MV%~`EZfm#JK2|7W?1=SJLiTF6gbMKveAvb6Zk@NS6c0aw&m}w{F%>kIJu(X zq;sU_CrXbPW#WloI%b4$v_Ra);!P^N9W%+05u;F{5Qy$5-hp?9aLl1wp6i$eg=2A? zKx|2>yR7wMHuV2mKM+A1Iznit$olrJd8cp!60{-3cDmnYZ8@g1I%PYCqg~slV79^> zBn6tXCY`xonUf=B7Kck^j#n6SDQ${$&INlsWjNAFIt6=9G1D2vJe(ZDNdnV+CQYDG zcsJfdQFVDtE2CElOyTosIMR-u2u{WP5Ka>~(nmJY0cJa$+$7~ToS|?g-bcAuG%fPG zX?b^W8)ba(mNh^WUFZ&B@z^0%DBQ_DI@x($3QO>QfyjVPJEd~JrkID@mv_@&ha2P% zD4gZ-8msK!LZ)1J8Ngefqp*|>2p3Bu+F3oU8T^n!KZDXP70gT+=hCKLn5_J;VOpJY zRvIH5s`C^+>;}UwRjiB~j0gtt(GZqTtiFbdP&l9Yqwca4Q-+c9ZIaPW&fSFB422<| zwv(%nNg1EEnJMVGY!Yj)P{{hUc`gjfi?_KBxTR26%_|gGHR73(F-g-BnB;0wKN+qo z4l8`Z$H`M+&;gAFg=#B*QeC^EFv8l(qg_d1sgORU$prnA>-wKmxX`C>Q!eJol221Z z@GLR2IcLnj&nm28?U=`I^JEyGZyTiRobg5W0sL;w$d>h{l z;X8DiUO~Av&}$AUT#2iwrBm$E#bJTA|51;JZp9VahIICiCWZ5YelJn#5dzM%|UEd*n;1Z zkM6eAPAw{_qy5d3Hum3`Wc^nBK7`**?2Qwc6>efq>C&-tH!Ix2h!>%iMj_8Ee^mGr zqd^ZC#BB2itP$J7!1_Le^s~xcM^N1l*v+*8jbB@csx#nxLe^KCWyH% z8jfS6-R=LTa4+M{_y?mw2Dq8-R@lRrXS6_fzILxUUj2;1v-nr78PNM+ zMDyjxr`75|t)e@_m-$var?8io#L|^=nV5Kr@fQ?cbZ>K;-Z6x{j8{U~M+NJ}X4(HqLb%g_55g|KoT2`e<-q^aZqQSKKdxctSKc7LL zF2cIYmqCf#RXvua%Zs>sXdAOYnL#%h z-2e1qqj88v^XMz+D^J*r@bx4#(bdV z4!e#%-g0J#yv?^XFt(Ip;Vo@iPxQ2nSU-x^jW{Z{_DVz&TQDoQA+Zt1kK$b|CvHM# z6{pbfy)6sqw{Qy<(V(ZLmwtUb2v>1-LRRrXR$sOW12^C!EPl)tKh9#>6*Y@FSG<75 zqAQkIEW4t^;!0Os&EltA@iQ!bj>Pj=_(EOyQeF6RUHD2}xTG$8jRmsy8!g}3g0)wn zH4zW|vx@H};s<9|vHlvw6Y-|K9&ic)iMZHT#g7uB_-PeCr_Zmd_zkTe9mS?9ZuF!- zRI$yIZmr^WmP8eQ@sPW!*jYpF^NhO#L1Gi0_5iZv-z=#ro*%_aH1V3> z*ciASN_C_|gpR*pA)KlHI8vq)}gd zP#!e#!4L4GjAz?Q7Il-Ivv=p-bMKrpKYxAy0bm>VJvaiZuVr6tSG#hcs)NWRR>ev6 zpw*P7zp>-N6>1naY14nwk*CZQn0lm*wvPpJ<;t;uyBl?sj~ogC@|Y5s-PcAP z4hJVHZpxET36%DuwhWJDtkZb%)3rUF2(0aAdi^s^O(5S@w((40pq76s-reV1t|_B}lbu>A`6fr!)mz!*vg<7lrz3_yB9TA>b#`&~zr#iH47xxb5MVz;dSl1^NIR zxWki-3hCB=Pts`A>-CZRi3(p)o$R!Kj?3;x(J*eSx=w8wlO$i+tV93+ literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$4.class b/bin/jake2/game/monsters/M_Tank$4.class new file mode 100644 index 0000000000000000000000000000000000000000..032f426df8d98ac1c91ba55c60bcc0e09e1e2397 GIT binary patch literal 834 zcmZuv(M}UV6g{)uvUIxw76e2@RMZyKCg@v@i6S*kz?jhR;7c=f$9C*?w%Oh4M@bZU z(8LEnz>hMXZELfro9vvuJNKS@=AQZa>-!G?ySVSb5?FsHduq4Zk$qL|hbB%`6ju*h zO=)^tj~&0z)XReC)()bsX(q=ITo<@LSMPaq2M8p8G-o&ZPcq_ z|3pPic@ijr(m~jk!Lf{V8c%-ONms`L8wZ(Q|EQ@6A# zO1hy>u?=HXv=_)YRxvg~mw9tATInuhhtVUVAm+EfVfG6@EVx`oilEo0gWaI4ONi0=B`zIhJHs* zF^vTVH>b|KGSsDPQdI+nm0DR>gtC`+^G5x(iz`@hu*|Sns{4Yhc*Zl~V-;5!j7X9P zWdZF~R}N2;RLi)yhU*U2FB|n&^FB6kgTc#^kqRf>v6hFM*m7`-VYO8MlDv;?+@_Nh zM4HxrPts~No6W-hOvG=kRXLTF1VrO*OND~MDiEw&O5}PJ%?)c>2>Z1C|Oo6`1JPFOt@Sgz-RWlx2sYg&!hW!%8BizTwk4W8zGtl*|VWy(Y8 zvzTJ!fpQtbm2nHVU98P2_RlGNtm6)4$yko!b9q6vHUpexEaY8my0|B>lH)fs*2k6w ztc2qvk=ocst|67t8CA+-UYwc|9mnG&lrNQCM`g0>$5u`9I?!Phr&RMunn6qn{X?x~ zvKIwuDpPELo9697X1QU;E~6*(g1)r<1@j;HQGiG5(WCGK4wDte{-lWh3L}B5SfI54 zkLWExvAX!4ZqjbiQTUl_Enc=(aedml&uWf=zw-&Tk68VT4d>k@#)QHzc!l2?&eEiI dieo9=#{(i2@i6PDqe1U*m%uh(k2y<>&tKOkvR(iH literal 0 HcmV?d00001 diff --git a/bin/jake2/game/monsters/M_Tank$7.class b/bin/jake2/game/monsters/M_Tank$7.class new file mode 100644 index 0000000000000000000000000000000000000000..9af998cc15c21479bb30bd020e623f117a74284b GIT binary patch literal 1174 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 jc(1xMG0?rgvol6ghj>kJ;Sr6{yaQ!= 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/game/moveinfo_t.class b/bin/jake2/game/moveinfo_t.class new file mode 100644 index 0000000000000000000000000000000000000000..44ae0317fe25fdfc76c370ecc80a0627b7954f4b GIT binary patch literal 2132 zcmZ{k-%}e^6vw|85(4D5R7$D+VJ(zm2-+zAs?uMSk~Z=)1=7+K!?IamA=yng8^9kA zKKkgRk2*5GJ0m#bIF8T$QI6kx_Y$bo$z(t0o^yYk`#op(?|**(6Tk?*PM}5L+@`hV zjAYiWs*|bu+m7q4`K2&{n82A$Yun0HEN?wCySnMvp@6K1RuGo_z+HDeftF&n>EpDD zQy1uTymE7b9vnuJb-%%w-apIoNngh?-ZAQ8Sr)s&L>#diL_B^eR zIp#<(qqT--3tXN$Cf9@)E^N5o)>zr9g-$Rk&~}S^g?E@oYN){E#{II>iB|MUyn!nn z5V$50N1L*)OC%!eEs6HX8j|RUtYL|BXcOp~ay@6JQC)R{1#4A_)IH_fR;6GCt{NL> zEZlIZ{rThR9aWQ=#diW%33MT4rZhsglF2t%{H$AXMpe3<6T7xk3tiu|s+b)rs5{@1=tNTOaYy1V?g_N( znK_R&jHPnXtosrYNj3k0#Hq;2N}NWQTKPyKhtHU;UYV`;}#Lq&`{jOkSkiEZq#J}TBs_fl%;c;CE~ZvtNkT>Ss0XMXd3Bd~QB zv0aav?uP0f^sy4H{M_{L&&KBys_iw|^qOpWO}2(6i?7MjYqIc~EUYHWs>z~ivZR_U zs3u<=O_o)YMb%_UHCa$imQ$0(BwLv&Us68bU*^ z`{+OE8aU}1Jn2fEbftgcIW2gb&nwhMJ!81aR_sF>{kV;5nB(W#rvDvAWt10gAj6Ts zyLgYQM`*`5dS7KPuG7;(&yU0DU(tVn4;2Rt2Mtq(qX)RH;$w#6h7$*PsQi{s%AzsRe zx0fD1z=o=I!~w%W!<1rWAESn2hU1F0eM}fm8crL|8s-(beqNF1q>X>k@QLA)VbO3| zG5ia=`zZZazh~61Nd2Buzh&xIqJAsX&!T=d^(#|7hia`+zYRt<`P`y@RqE$aKcD*5 bsNW0f7vLwdn!*I1l literal 0 HcmV?d00001 diff --git a/bin/jake2/game/player_state_t.class b/bin/jake2/game/player_state_t.class new file mode 100644 index 0000000000000000000000000000000000000000..cef6ccc5018ef82d152df005d980895a39ee3581 GIT binary patch literal 3896 zcmbVOU2q%K75>(eC0X7CqYxn2P?r=}UMrF?4xw=fBo0nY>;%WDgE6UDOKV5Aq*c~y zCx$lQHb6-Vv``3y-;k0N3V{$LyEvu4(`J~ok39CV(-~g+(zg!jckiy&^2AAJIv(qs zd%yd0&iT$ccfa`hv(EvvVm^o}1*^vNaicXcs^^SEA*)Xt*3g8l+s2R`gkM43m_DT^ zvU+|rv2%FLNZAUi3psPjP;gUsCTuVBNGPCs2$Iw z#)ryy&FEylQZKIxaXynz8wV9AT?)i-#G;|JVK{5#(+Yee<`h95AGFdVS$&kZRSWy& zt$hk=3YKY`_H==p>K7Tj$X8k%+K|d-@)>(0PmMPBEAV%iX(J2;4JvNNDg}WJ60hOZ zH&k4Y8x&mAoyi+JCUe7vwOgl63L@QRO3(J|Rz{5FWEeg)1o15eH(n`XVXQ`jIQZKt zsu2)cvx*=>LTgb`<7jJCgdHuRqSn!FSD`xE9V+S^ZLNyyu#zs=`!XUTsjQ(}!jhWGqwcLq2O94 zOp|sdo9NN)eRph8aUVnu^)mxatHUfzlkw7EV^as(2m!40XxlO5*F)`7Z$r|lqb@;x6DWhO#%=|_OOb6 z>co6s{M=z4T?w9wo0}S)Z+^#(VUFoA=cRtc=ZaS&jWFOvmgA6*ea6u*6);{84fy z3^<_TAjo4#qS7{hl;ITEV=BHcFlVQ0oj*O9D~KB&SMdX^3LzNA4{O&eAS&(WH4 zKU&`y#!>uK^o5@(Sh>XE!i}SNQN_>k67A3n1=+6}=wL+>ExMvz>^P?46}-xz*ro$2 zxK7qrITc;w!*~sE1o668Ec;VtE@$Qw9VWB+O<`8>0pWZ$AHv&?>9TjOZw#R>gp=$F z?46Dy?+Pz(7A|puvXxQXCWGP}QsW)60e5q&i0z&3A*vf&jR$?qc_+95c|mu@8LD>% zA4%s7Wd%bl!hTZw6iqGsFJU7^l*8y8Hc{26YK|JC8gtY*)wrW3sV1pvT)ef2twMGc z(Z%UjAN5vWvRCMSq5B=ZTIkh|9uRtfI_35vwhP%)L=Q!qj~m;3b&Ye_sV%s+nI8f` zFFz4>G3ol~;%>zFn5@GdKC%P29}f|En2mNX#`rshA$C$7M=*>Rkj4p&$go`RxbB99 zLBMy(6dwTbFcEu@xA-|45aCuzEF@7%muOQ{O9_LNQ6H7P!o8^9)2hpw=AoL0Y91Q% z(3pqDJT&g1aSx4qXwpNI9-4Gf-ky>)Na@nxT1gVhns-)fz?l=jGW>F1kMHi&s1xCD zATZj0xJqfLYdmr3Um{a|vV1KxP#Kmv{z$=Y#PNJd3aJ9R5xDHJ+EW zH99nSv|XYNS<>`RCPR)rsfxCMU9Rds_(~Dw!}t1svRP=6bS6u%q~`au>awQ!Jk3Kj z4~=7hvvO?v3o5~hSrU9Mz7xmL2A%9^*DrR2_ScV!RvNjAkH zZ4GNnc=U>FzDPD-BAYLh&0}QqRkC@UY`#V|-yoZBlFhfs<_Sjp9kO|nY`#l2Pm#^j zMBk(KKH2<$Y<@^K&ydZJ$mUtHd5&xr$!3Xc7Rl!9|Hmf3jmW8}$W5$H(Y!9uuci_X zMV=5G&S56N_cq=$K~u> z&Mf2Y&PGmfQEPeAI}Xh7{-R>jX=j$fb~pJpoCe$bd-BK+iPjT}d{n|&9@bV*8pOg9 zK0T}`^`f-CTqv!Ld|!ZhCh>3B>prK)zvXN5JH9KwM;rdg4)-TKfr+%^82`Pn>n`gt?}(-XTE;HPvY=*wCg2UlOD?V{A{~|k95}mYSq>;_O6H~P zVmZ}xnQ8Vz(T2lTPOq7VHC%{2Yq_nf_iV#9Er+xuMJ-}AiB{{GLezX52% zhXIrcRE_FmMpJZHPZ`ln%APX%Cmh`|`kerL0xL%KDLrcG>EY;!fl(vr2m~^zerGyk z2#79$C3e;vHq!!Sy>WrylwsLP)0rmAV?&lcJi&7vo|l=TS711+PpKn<9@?N`IeI@6 zSO$+)WU{tnyWuxYf4!uLnue3^xCW;fS}}RG*r0U77fc0WHx8S zWV!yNW$0O%b(@A)P{(2>3}UpYZt>c~2^lh?!H*>&yo!bZwhOFu?>gz2R`i(ej5P1p z5JjUvC_&WiY^R+esDZlPcyHW|(4--Rr83qI4VugC(y$CKu)LwHogxIr_@r*J&ga&1 zj?K$72`q~{dUEWTp7F5pS++jt`Em$MJ9*Apto*&(6j9@n6iE4(Fu&@PH(oUu9bhOh>X~@X30w-C%W2J-03M_SBdT(Q2OHB}LLS7M5im9Ta zNhvOIqVns&bGlrra^0?$s$9ow3MI8WWTqKjC6jWvJEU}jMsI;g@g`T4+92E22J!OT zUZ8bTy}v*!v$3^tdor6euB`4AQ5GgOq1 zP*Ls*(vaLfq(T0z!fN`hp%g_KzrfPR5NGGH_93c%qF9Cv{Dzcq2WbsnR9cyid(Ct1 zpqO9EHA+4|-MJXAF7Cj!6A42+tx+vMIvw8mx; zleBpj&64h%#ZHo19;xM#V)iWx(l&ngu-3iUj5n|i`_O=P?Bd&ON2jW)(#`Bu#TxJ$ z@5s%7-K<-+Ks2zivc7p{k+p?$_)(TuE>rWH!*^2jDbYvqo)rB`^i!OnSgj88o5Q#i z)nR^f7?5J|aGYX{abr0gCfiK5Ifp%Dcgp`9nn-F@G=6i~Dn%8I-yGIRu^7$odr zrI)L5*~?!g;2_(3i1J}Jx{KF5Lg^?H=!U^HnZa>f!3o^PNqm7f@jXuAA>x?D=@P)^ z3xLg|MFG~z$bN{wc~GE@sFx9SaGC^>mxKJ5hvH16eh%&IGArFwPX16ra=rrR&vVrU zYjwd|?OA!|sG0>uISY&EpCtz((|QMsze{fR{>Q zKLP3HUhTm!&cmc-jDHp;xe~9#E`ejF0LKiWJIOl>LiZdD>RDrW4yPpL1kE9#IA4MD z=Q)myXXUiyxq>w|hqKbN*`w-2xp$27k>?7ooDJ$0V&D*iDPnMu7+fL-mx;j@VsMoh zTq6e8iNOppxIqkV5`$aB;5M~){s)8e`8^@-vHRRaBK8=4XIJ&lLw6AvoWsZ?SV}wY zY84)(`iVvKlZ)stx_X6NX`E?KFTp6)U-9%3no|8cuAUf|YOlLmB3`O}*VQhF@Sdwx zjVL{RYZ3jOr}f2FwWwce9e={1{gjRSjNEv;8yE2$ANFi~BQsBbRhw2pi+(^q zD!OkRXi>^L7&Ba>yq0lq`b~2ZNArvo_R_2P3Yqdv&d@q_x4>^>|D4cWS)CR0=1C=l_VAx^E(n#SjTvMy35C|U-ySfhb%HbQ6TJIq6$i4f z?B;TI;F&#xq94$Y zitZbQgcdPy&pmU`dGFl!_5JY)powD}2H|ufo@LV=i%`1LFrLeSs&y0L$=i{bDw)_Y z3FV2H3pWta*nJpIq^Ah^Yd`YU4Ix)=^ay4v9!Uo|6pFBrCzLvVB=2Y8P$pe53?!k_ zi9HeYMB;0{{AsEuKP6N<|HQZ=SW3qtoYed6#n)JMWz&Ju!c>WbBO3iS2Mhg(FEB&# z!jO~Eh~PZNv&55aU&ksgx4zIjGQEo;nY03trZTm0$hrSUW7+B(p$a~l9~CgT1YOaxHB1dGq#6)Mu+u;101371CdH+U;qFB literal 0 HcmV?d00001 diff --git a/bin/jake2/game/pmove_t.class b/bin/jake2/game/pmove_t.class new file mode 100644 index 0000000000000000000000000000000000000000..26745307fb8f55621e9dcf9ef9ec4aea5822a497 GIT binary patch literal 1867 zcmZ`&e^(Pn6umf#j0%;sx6RKgJ5k1RMI49G$a867SP6JGbD?fO}g1&`853u z?J?@H)eq1Q)zdqZsLO%=v3uXIdGqGo_x}0!%{u_I@FM6F7~MCY$=O8Jtjk2R-Z+qD zKZ3Bp@Vxj-bg*nq?w3*w$=4FO{XnG zq)X7KA|7n46wCKBxwJBpK5Z=I%lFm_8+mOcccUt@lwHY`A0fCztGo z4-1TZ2rp%FnPOqBq@u@rj(nk9T+5`hsZzF(SB@otfkj2*9Wp*Oy~$3e8WkBu2r~x0 z!_^381r=?=(P4`LZ!N6;1oVl z(vpGG7*^6x20radX#;1#cb?AKuFSXVyV5I}yADYm%{463*)%;{={;lEui2cNBZJZ- zoE-OCjx;@W!9xRMIIE-;1E0ZAQo+EvuC!|4JT55Px`EH}MHCx&6al+6(tT{(x1Gd_ z>DT61-_O_*h;4Gs8eU3Wz>B7KmZvvWf*k`R7>(iy$`SnXel_*^r01E3Edx(sl7>Co z;lxf&snt2UybH%I-Q1ReShrwlUs3`fyFk~xB=z@-y%1Q(6>231V3MQSd`h#V+NLd}atzDOhA zsF72mku#!^ebvZG(a1T`NMbdTR*fW8BPrELLW$?`CG7$iDfi(L_3?l{LH($-^%8r88!u7&SmV5=x6H;oWsN4+ewR(ONJ|BikZj%_E3aY! oHCAmSgMH-i4C`1$ z67N(C1s8MAz30Bpov-irPXKM~WnmF&Q*kfb{#eYU|FD=(WH{7WIE2bnJPJP&@z}o} zO=X}7wv5@YOG>{b=TpD`yx3fS6U7S~ z>+)6?vA)7hvPc8jQD#7Cl{ht5;*hu5{3#A&1}=MKL@bddEU|#%63GbV{02vYtBLWX z^@eiG{cs0%u{Ut|Ws1F5Z2qTeFI;Y+!M4ilfF|30Y~uhe_P3bven&F5!x3SZt%c?f Dm77zi literal 0 HcmV?d00001 diff --git a/bin/jake2/game/spawn_t.class b/bin/jake2/game/spawn_t.class new file mode 100644 index 0000000000000000000000000000000000000000..a67de09da4ffdadd9817833bd2ec7cb1664e255e GIT binary patch literal 465 zcmaJ--AV#M7(KJDnzm_~{gFl8sYOfP7C}T^NnI#HS260Kv+5}8TF=#m1YPt1JydjN zlL~?u=J5TT^PO+z{p0lwKn*)-I0A)04phzW$&vD>6ZvEwqBLBA)j&QoJL##(_Ao8R-UP1NjbGq~)^Nu)y3Qs>&}=tAJM{CCQK(n^c| zSL3eAB7qeT8RP^KiIYdonC9UwwgB xJ(@E(o@4EqB?s%o0$k!Qu|(M(a@a?am4h!CHn7Qz17aHyN7l%p!4@+I+n*~rVIcqj literal 0 HcmV?d00001 diff --git a/bin/jake2/game/spawn_temp_t.class b/bin/jake2/game/spawn_temp_t.class new file mode 100644 index 0000000000000000000000000000000000000000..59494deb1716bbba7844c3057a272f7eeff1421d GIT binary patch literal 1801 zcmZ{kO;B4^6vzKJ3CSZ|zQUKaP-tm^Ky4HYwWZQpJ}MYM3Z(^V@g_WyM?OhjfZEQu zaJqHr=+dPl8)rnFPN!RE+&FGsI&NJ$?i~O31}8*nW^&Itzx&>~=bn%E)8Eft02szj z03LykZI!ZzBMFtUBgMSh%Wk-KCcohZ;1g)tR=X;aR@p>kA+~MDT>)<~^++HTt?Vqh z1t*&r6R71@A?GUB77)_{0orQcDGGSjwVAc|-Hgi9N7~^kW(2HFr|7C|oNxG(wv$Nm zgqm#5DH7D?RjFvZPKLVAVN`UHD5zb>WdQz+lYON2w4(NnVv*z>H=d+dvLn@h-N`!c zIL{miuh7p#Zqp9Ji%yAGaLU3N0n|dEN1_IPt(}tuL9Lyas4KHRiKenPAQ38SgAy(9 z3p7TZtUX`K#O%VdilrHBD4L6_^olAt+CG9lH>opmiivw^zL`HSZ!6G0a5A?iNqEhI z4B}0U1aP^kP~~z+jN%HjWABtyn&-A1_gb#ySa>ans~8L5nm|K2tdi@bBT*+NaUE|n zUCPZl|9SbS+~FCWq8kzt^%femaZ92>8;#nSl4#UMQxNZBHUJj8_1M*Kv)`65<8_7f%$#yo9&1@tuWF+rmB(Gs4Z$Rnci5wiRuhM$LC^$eE z9sC}r2SZ(l=pOVx_pf^E7FT`z*VHW@;;h-|HR}bl_M0{Qjqx|c^_=nD2_Mez7Cq=9 z>BRuT7(xUWF@jF6V6U0e@ER`B65M;e9EoRukufu(dnokAcNqQx^@A6Gz*~nH_ZyB%Q!5Okx&Oh;o$gVuk}Uiw(>niFxF)fCBE|F_!QNmhlw#@G0)& zGpyosJiwQH`YSxd*HHKtF+4{cFR+Clk-*RN@C#D-6>0p241TA#Kd^&8>G3a=SnFM3 zVNV3{k!ZnVaT-rV7d|$v&{Hn=Q7f?U^x@a-K`leggDh{^jK-Ew)sK(lxZy$mAN*Nm Ay#N3J literal 0 HcmV?d00001 diff --git a/bin/jake2/game/trace_t.class b/bin/jake2/game/trace_t.class new file mode 100644 index 0000000000000000000000000000000000000000..8737bf68552329f882f373d86294ed9a44160377 GIT binary patch literal 1137 zcmZuwYflqF6g|_HwzQ)_d9;Y2h(fzi%0np6`T%Q8P(w6LDj&$QU0`wPlI>RGZ}C@{ zSTJh*0sbiCneB=t`eEnXd*|+)Gw1I9{Ppz*fCW5>AtaDG(chX2g(LmcEO@SNnEPG~ z5rN(l{heO0_4-la<-v(*cmi?Vwi}LZ)da*Ffkea8T`wra5BaWVId$%p1)^rXcIGq$ zLVL`*&UlU~Fu2n}X86T@Z(ShPXu5}_7D!*|2+Dp>+;HliS@(FRcqR~LC@|33Zq_Wr z^LwKkR^9SS?8@dU0+B7JW+o6uMq&Vi-4M7Tkw7wrn*#m+(UialGOF*Egv2$0o*k=h zzG$8vnC@%+z^2mFj$`O{MRzTg2gQhYY*FA9S%Im%X1HNeb2{58`p<5zqUfe1x)4=S zP9oNhrX}L&P9Tp$46_1#ZM{v;vJ203?|5-rVh;11M}<>z+%4zq11-(&mG{cIin__7 z#9iDM$XsE*^uJBLEO8w@ih4z&7kw&PlSrYT1|GW3DaUBortT^wC5Z=kD3A;&Rh|3f zY%@NV*uWqqy>gnaVU{iBm<;YZtG+CZ^ZYQs!#I(5W<=2e^1gn~5&6gw_(*|1Ql5_# zM-1~#j+N^Wvno#$#0l*JX)XFaS`8<6s}Vk3$=w!)wQm@yUSPC^u}^FZ;WpP4B3wtg zjw6i;++jSTLHkVi3CXD@#c z<$fUaJ$sZNc`d9|a>;5*>T7G;RNBt*NE1pFH;XFzN6s=$E%J|9;Q&@?^BVnGC+!BN Sut}k%4!81`Zf%h^gzev$A6r3u7@ z7=M8AHyO{g4Qvd4w9TD!W-|BAJ!jgVzb}3OSinLC34#72>sT!mYL=@C&4%(TZgoG% zASuvuWSv?C$Ew!~Tje8F;c8l-?`n0!@#@MdJ4ztwHdIAGtP5ny%^>jV4S_UM9YvDZ z-4^IP@chq~Uv<4xCJ3&yHSDU2rs?KML^8H}(sUZ!(c##&!@yCe$`MFa9A)_eMt-Wq z(>A=SYKOp}#7(qmc1xlsVz(vQBQ_$DiP#;9ZrsrO?n-n;Y(hdt?4CpiIt99mc3r)1 zx@G0>M6!B|Ud3`smT&8MyqF9QZHgK!Ugz9%%3iVScCgw31Je>y=o1*uU%xpNbKrX} zl{Hi#F#E5K*XPrvZLjH9)TXU(q3iMjXZ0;%oPrHT3T+(e1@B#GcS5A*5a~jQ^d&?( z6(ao%kq#4+%co@0P9#298|8KaD`bBvp3$QgP_>LF$9mUc^} zuS`zhKF2P$2;`BYRZn5!0cSEQj!CZTmT6*q@G7(P!P5K&(@cMFKS%EGS~F~Rg5n;w z)RHZ=X5w1ExG%w4hb^_t=`&>6zs6x|37aR+8H=S*gXYPIr!-HI6UVhsA_b3W9HoAZ zL-a)B0R6e@b1AgA5cfGpb@Rybmz=~SzK^knMZColw(tZW=*m8pQNy!P&tTMZtcTrG zXP%1q@t_bZyNH$T>7)Ob9PPya~~c6YQd~bo zH?yTka)ypB(o*qkY|d52z(x$+g|u1zn`US&lreMCG6XJMaV6&r&2y<`e!);bI-W9k zv6+hib#y`mSfff~sl|1X&V;?=GbI@MW0P<-2DZDsDR_C(0EFL()XV ojJR>~hV@qpYUmO+UGfS&io+iPHqdwPn+~_IO&qxII~bt-4Gy1L!2kdN literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/CM$cbrush_t.class b/bin/jake2/qcommon/CM$cbrush_t.class new file mode 100644 index 0000000000000000000000000000000000000000..be3ecfc5d741bc499e8223854bec809080b7edeb GIT binary patch literal 429 zcmZ`#Jx{|h5PfdbrVXJj<+EZ!VgLprbp;`$NJy1h7(iW-;~MHVaYXF!znG91_yPPV z#KmM`VDNi)=X*ZC`}+R)1TeVbsnYVc%o15V@FXSqaGDFA&UvA#ye@insc6>W^xuzP(BS*LEQGvK z)iZuPJFjdogcGf05vSZ3X?*NEe}C;){^|wb2=rOnl}D$AHX-2G+^Mq@hFHT4t_y9f% zu`xN61F}5!?2gyF^Y#7l31EOd4-JNcm_N%w@FMaw&9fjJ9g9epW^U9}P6`hWLoep9 zJVih`lFASxNQhriEfJe7g4!AWt+;F(fCaY2gxWkt#tb;7FLE0w9@nxT1e zI%aUfd@4I=V$DYz9fs~uW%8~}BdH&Glu)()Fc&--bFC^~2c2TB48vjl(?6q7SDlBv z)I#2#8{M#&(I!w4R(sHs80ni7h&-GGsD#(f$GBgkswO literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/CM$cleaf_t.class b/bin/jake2/qcommon/CM$cleaf_t.class new file mode 100644 index 0000000000000000000000000000000000000000..a424d13829a20b731dee958d21b2f9f78c69bdf9 GIT binary patch literal 448 zcmZ`#Jx{|h6g>AUZ3t~CU!_b)43vRLT|q37kSet>6m>;TaH&h;2;1R*F(EPV1Nc#h z7q>!UVDR1Z`Q4N6eSLp?0vO@gLxrKg;?H6fz9e~;5{YGKCb_agS;N4_3|^8J#tO|)<63Zr_Cji7%NemQ%#ylhB&s6&l>}KES5irP z%}_lX&dD3)kHSY4-2ef$89EcG#BGtqLf`W^6%4&ep73_M3#BO3~%4OneU&EF91EX9ax0cQaq}j|19Guij5zPPNj)wYLYpy3H7CT5q>Dl z+`pYJmCOj`CoUDCIb8poi%9vhXilcO3!M_$oB98pvkCVuUL{gp z>s-YNMi==W1aDxBN`g?NsY)HRiUt3!&-Bd!aKhe7d@75hj0z)iqm0Cl%`$Ip?Z`BOIgl3l1<=jQ{`u literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/CM.class b/bin/jake2/qcommon/CM.class new file mode 100644 index 0000000000000000000000000000000000000000..a01059fc44128e4a02f4de912abaccff401c5c2f GIT binary patch literal 32196 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 L@mC|Qp}_wEiQs4% literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/CRC.class b/bin/jake2/qcommon/CRC.class new file mode 100644 index 0000000000000000000000000000000000000000..154cbaf9d10cb02f353b69b8e1a2e099bc6a8392 GIT binary patch literal 4119 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/Cbuf.class b/bin/jake2/qcommon/Cbuf.class new file mode 100644 index 0000000000000000000000000000000000000000..80b0b3b4637b93db5eed66dc2c73d0cfade1b15f GIT binary patch literal 4053 zcmZ`*YfxNg8GgRqJ$vJjz~(}@B*i2WAP{QO+;#~q&|EMiq(YO1Xvx{#11#AKS$0W? z(Ka=$*VZ<+Rj@V?Yqv?G=F$?Hn`y08JI>S@9j6_gI@Mp*>NunR&_VI}zO#hIvI~YpDVu^TNb1>cQffE^GI_dY(JnocXM>O;1rnK zO6i^HSkO#%7{MqN`C1bpBf8s2M&xsL(OIt)dSS;r9fj~vX{t9eATYo6R#yYuZJ`4m zEJBG3#RB=(p{>zG(1;G`C`B3l48_7-Df2LcDE>b!1Cb*pW9~`?q>d#zZj;XH(*j-G z^WtMz=E711N-kLKojMj`xxj6eAE|X;Q;P(~+Y%ozlc^5n!vcAH8r}9(G7|3zRPFYl z64fqL2^7r^^rnkCR-#706-p=Nnt*7LLaTJtNv9oQBV~B;39NBp^{foG4-KTun2tNJ zR={Hz8aErs=uk6> zYsAAOh@-MoTHT5k7q$r$&PI{vbbJ!qd9E?pGbpg2vZd-)n{MpjiIoE;eQm=%F6^3( zq{^0#PoZ7FX&y|IWKva*qAX@roi5y~aydKGP3cH9Y$n~z!veLrx~IvKW6oO2Y7My2MOu`*VesOW3PU==Ak6Mm!aB-Is{D|^C2&1D zdJ!Q-RDLa(9E3@sdO$}MF$=zsD)<&AF=R18bkZIr1<{zx)U+BYb0#xv4xJLtw2nck z!pW5Oq}g1E2|FN#Kd<8fJV>pfUL)Bk8x>t{ zmOBsW_yUeIo`H05KxIx~VP(sQ<(;ngF{q>|<&9(yBh-R2RkFgqqT{Qo@?yqeS$S?e z%FN1M*_9=>zdSK$CcC4FLj-**zOLhO$$RH67I%sr)b*SCuX6+d7_+zU3Lwh%wL=N~GhY z?g>1r<0MAu0(Gkj(kk~gRkcW1PD!?XmzuajFqqx%A>+dHH{I(oVrE@)EUe=N8AX29 zqUDJ+dPc{KNMsx9AtOT2oCnhh<-A>4v$KQJsjQ^c_Xz#18MGS31sxwpg&QxinJQd! z1pVbfBV2AW>aIh*W?bSsuHzEUF-4n`$pjmb=jJYLHnX*LBzuH61^e_2VFaNL_DxBApDGTOx9Td8DhW zWG`peC3`qmZ77kGk9Q?pP*UZok}xS(c*)H61DVx6@9KnKIhA{6CRl-YL>A)%}AwVYwh*a^b%Iomkwi*x~;WeK)$_n z0=M&V0_&6}!*&AIih0;U_;)hCHUxNW#4b8`4_Y`!+R%=B`F9`B2eC&*S#G(EI1(z#{peRw zdMSI5(l!-uA+$+oViE-|v^D%2HX9>PV!(>rwwhUVku~}DP4)(QxX$4SWKgiUM8%of z-*6nFWPxLB>TiojpxMv*4*4~CqF!QBtW98uuvmvB0)CB$9pRHG&fQmNsoiO9uTziH zPCfm_TFE#*SFmyvLAgo%of52KZ5*jnC@$7Y)%Hou$==qEPQ9m;J1yf>z$3@34EUY7 zTfS^w{LWHGI3U$4wPRC{7CWha7%oQ!4*RCEVYrK_&M*9$@H@-S5>JbDgILV_E@BxZ zP$4oe%&eJg7-7Do^pNJgtiL|Kavi|!oP665W7gv6=5s>9Jb=SUaloYU2oB-<7{bqR z1n=S~{=g*s6%S$($5^Bf35`R@jfX`ZzNqrMjfu$3(fBOH{fp^q!6SMpw?_7O@ovOp#8TQGNuu50WFg68zRNw~>~wXB9YyiUOf7k7l< z1OHhzOQu**E_MFq+Wfm{(j#BjvXyg`#$|O^Ruj-{ftT)A)&1o$czj=*z+>n6$kKjd zc0re@zV{d%eVnv^g74rbSkO-r&ZlyUxH4PB8kXUkDts9XJJ_UrW%uA){Hi`9u2GZ5 zy?4Y73~#qz#7G8jC`W3y+w1L{GN`RCTT`%f)FPPHKY}@OA;5(UO69Fr-4-0Ti83X) zVr=TIYWAo+dztD{d1dyF?9Qm_QuddzB7=<-;Q77mZDnDuRP#(e#bmQna`|?tCHq)y z-Pt>+cLLvOxPrF5(!}CR81p-d9TRx&0!|OZ%Meaypj*dBrq<7Njw4vYK%Zf_&ocZ` z=s3mh@f=%th6CjV_Qca<<{9?A7uikDqJg|?DkV$L_m0ftP2HvZlswNUXQ%(K{s3Z%MGSXfXnt( z$}n;i$}l}<$X2#48LX;m3kO*gT;wpqFwqF5IPb(Qp)YtV5)9J~<@4y0>(Io5q?KNW z3Bz1t*s0gTA%iWt!tbQSc4}Q;+@+zCiH#|S@-QJ%GPsHFen1XpFlS?yVZ09vcr3hX z+;%aK1?u-i2M^?1sc(_>1NR~>1FxCtPzHw%N?5Y7$S^hRLT$NN#tK8OrnS-x^OgF4 zz8Q$qR2}V$)6hIUPsAN#LvyJ~KT-+VoQd>WwHe&HltNb{o+Ki{8fc{SZ-5Lf8YRUx z-S+8ZCbRv7{9~`|(C+kL@35#iO0nAq(K$vDy`BUzn4r5sO!lM>C}X4wS?d|o&nW(t g`#>I_zvK!7xh%>=%V3qdG=e4C*J(K$ zK-{v|<#_?IAP`$OJySqisS6}p(%$r%oXlIc9Ppfa({!JAUGrTwE|pj6 zYI`w*I1&Q6Ma!0FcG_#weZyR9NrA$m(=c1hrfaEnSd4j1t1B={-229Hnl>$4H5l+D zkX`c3#`Y^_Cu|rmt<=lQX_7pmEKV{MRu+``gtM{Hl^%Tx7@N{-5Z_OL5hiVUJ}e|V zuG|go#jWm(&W8WYn*!wqQNgW=Jtx7Bb}B&N>##nddb;w8}cPf1(4(+ zPbmumnFZUHZoOr8yRvKGDIUN;0PGaK5g4Z-ov)A1k@<2)4@h#<)NyfCmeV-EYlf?@ zSl2k7s@y`h`Wx~Uag!JQCJH?qs#Jf$A+@gDK>iME>c)}ld|t;e#Pd>-+W z>(Hmm6uTILNB$i)-u1=Dg0_+P$xxh9{3Ix=oE}t8$D#X9O9E^sP(~%Bd!3K5h{NPj zOoi_VNi?;by`o>?tswOwU+q1f;rk5i1D_xhYz+yN8sC6n7OPSJRaN4R@yc0tjI9RF z|5d3#MBpPv_%W3};pu(ar#8M{?Kr!iiqy`9YNHDOB2D?C>tWmjo&u%M`L2G!oW4X6 z7y6V&_bU~t^eCoyRj=?1VQx9ql;6T-#AE$=C4Ado_w~!|@0aBRwTS#flB-v4TA%On z1nv=*I-%fL&d%q@zK2o#=I)=xy#pHIPY<}rE|)m_7CDYnxaO%Qu4f{i&qAKL`|_xa`+2g(eEO14^~V6!52Wgm>PJ%bFpHo1sOBQ7*?Uk; xkm~V>>VKvb@(iZ*GkLC(=NfsgGL7qfJpYxFMt=2w@C4>Ksy{Y?C-F2={{RCHAl3i? literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/Com$RD_Flusher.class b/bin/jake2/qcommon/Com$RD_Flusher.class new file mode 100644 index 0000000000000000000000000000000000000000..391014dac2a43951a49993e810c6677612bae0d5 GIT binary patch literal 401 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/Cvar$2.class b/bin/jake2/qcommon/Cvar$2.class new file mode 100644 index 0000000000000000000000000000000000000000..99221c22d6aabb2c5c556849162cfde03d3b10da GIT binary patch literal 1302 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 K0_yCBq4NXOtX6vf literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/FS$2.class b/bin/jake2/qcommon/FS$2.class new file mode 100644 index 0000000000000000000000000000000000000000..2511485e4a4132fa2caca8d73405125e35fbd7b9 GIT binary patch literal 471 zcmZ8dO-}+b5PfAUtLrL=sOZUq2lXJydenF!l8~Sm3|CT?DuvxP?uWsP(Vyf=>LCxI74kdKCyYB2fd7; zc&@a{E*PA{qb>t)n1S@*V8zE0iVUT;((*cw`!cx^{Ya8X+k_(OibPpF3-WBJQif`K zUdc{y#^B0{4D*Z{mr-%C!BAeT^Ra2=iX=Dg-7sZ6mC+K>JTDA1+72)pE+l4Uk>{D$S% zY1*ULvt`Z`I3-sJ`@cnG*9ei?UxQ$Z0sfBCBL5kV^YV|+XM6`$VimB3ZL*xcWCy$C KdDPhsL+1zGH&%@R literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/FS$3.class b/bin/jake2/qcommon/FS$3.class new file mode 100644 index 0000000000000000000000000000000000000000..9d43bf3aadac3dac4b110fb774513fbcda4ccf25 GIT binary patch literal 470 zcmZ8d!A=4(5PfAAR@YS!QPGnJ59&dZ<*4z3l8~Sm3|CT?D#hJ4ZWn`RqyOVc5KH5_hUgKZ5{Er%TsCbEa+xKX&5T) zc_ll+34QC2Ph literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/FS$dpackheader_t.class b/bin/jake2/qcommon/FS$dpackheader_t.class new file mode 100644 index 0000000000000000000000000000000000000000..a43f6744866366ffaf6738b8232527745386af94 GIT binary patch literal 410 zcmaJ-O;5r=6r2ZzA{IgXJQ)ri)Pqg9YP^s%At8FG;cAxlDGOyQZSjA3GV$OK@E3V9 zzAaq1c-WcQ*_X+i{r>&@0?@~)iwfavrsmxDmr=S{q{a`z^Y~Ro^C_#Cv!}v^L+H%Z zoAMK7Ui^p2jH7~3(=i)i8WQTU&eG?6EfO{&Zne?H9ie)0IVL!RH0CC%XnEK{lh7V% z!}qJjgtJFANtnk?X9h0%koEgxi04Rt}l-EgC15=Uyt+^#5J*gCbV4|wk)D%caOTa$j! Z7VWJE(7}HB-YxL}hr%|7aD)>y{s0**RssM3 literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/FS$filelink_t.class b/bin/jake2/qcommon/FS$filelink_t.class new file mode 100644 index 0000000000000000000000000000000000000000..c012464dfcef6b3d821fb00725cc658c86a5fbae GIT binary patch literal 421 zcmZ`#yH3L}6g{`E&=6=TZy^RG24EmkR}f33N|h=Yg1RsuH@L0a#1@Ime=#93@Bw@j z;@Th(1B1`GFJGVI_m9^%0A1_{s1Oe3Vj;WnV`}o;=(wL8PgEu|r5E=$K#kCzizg9h zLQmtH@m!{sP@5DcCv=9tt;7~ePcI0e>t#|;?TkPJLd6O)9dHD3r^;i#0n_CE<`C{#UfqkeFqW%03$*1pVaP z=_Eu0t!2^6L|Mu*z^?c9caPKmV;@Ig!TeY5)X`uB0<3s$`kXB~1B?+@V`gHmpS@u1 inS%;ij16DBL!0C1YXBSQ`2MEHEo?J~{`wB~(EJ2!R9Jri literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/FS$pack_t.class b/bin/jake2/qcommon/FS$pack_t.class new file mode 100644 index 0000000000000000000000000000000000000000..78cf1b73a65eb0d0c5171649f89eb2c25dd930ef GIT binary patch literal 529 zcmZuuO-sW-5PfSu(#B|Owbs@T5Im>{1HCGOEfxz!!AP&NNw@8`$wu=b__I6-9{d6R zC~>kah~Q!0?7W%TnR)y5{qYH)jRONK42>C|i?;pjg+UN1yXPD|ac};Z7|1hJXZ(fR zK35a_&YcM_VJMBIFBA_1Lv8RIc9KY{$vH!D%GJoHXloIbp?yzG7+iUth~pkrQos>a3oCRuxX)!Dnn%;mAFjEw3X@ImglXi7 zY!?Qj=bU9aFj#%1MAY?p9E;e%p4RX08>G)dUL1l3rGF^sQzQfol(a3w)OHn?wrf}? xODbfG5N?oXYoF>*-%)!bVg*}-MWTUg)CnzpFJK!D9pBN|M2oDc%XhJl@(*NLb-w@r literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/FS$packfile_t.class b/bin/jake2/qcommon/FS$packfile_t.class new file mode 100644 index 0000000000000000000000000000000000000000..5f5d6369cbb186e7d343e8cb86b925dcd529237d GIT binary patch literal 968 zcmZ`%YflqF6g{`EZObB9K@?CIMQp3ES|4DG0yZ>hg7BfH2^vGD?NGLCck6b`@6yB+ zqlrJjA7#ALt)U2hxsRDS=iJBq`u+VUfE+e8ga~sjaV&G@r@Gs2yN+3^EOtcw_|UTD zfv+J#m~4p?VcNoJntQdDtowvWrTl)IKxM*s(RI4MaQv#Udos+#n}o#f*4ym^^++A8 zF~AXRNl5LSaaDZJa+(E#rnEY4cNp2yA;i`#$MRnj!s$$v;YGJ0lL+IQjtNW>CUz`G z?)KU>>Ae#*dqC~hg0kg${mg~aicr%;W0epxJ}R1*I&R=5Az5*IUR{=W={%59Wkt=EpqCv- zdPQ4wyRxf+SI__M{L&bE_BFA{rZx!|hWn xrXKW>;dHqVGnEVCXDWWdaUW}+84|*o%+`pEIg|+@KX_HZI{PHc5ME&ei9Z~Z%v%5e literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/FS$searchpath_t.class b/bin/jake2/qcommon/FS$searchpath_t.class new file mode 100644 index 0000000000000000000000000000000000000000..6d296793d4ab075f413ed437626eb5485383ed30 GIT binary patch literal 497 zcmZ`#O;5r=5PegS0-_*(0Di=ncu)^E;i~asLSjPnP{Wlhb%BL;i|u0kTb@ij_yhb= z#@T8jYRqQe?3;Nrd9!ctFRuXF*mdC$_9kK~+unT;M^UW3j(?a+kp$zJFyp>)ktft9 z;z4+!&?E0=Fp+^F6o)F5T11ji?|zqklPEnpBjjfym=aoC`!(Gb`o>DMeB?>{eyA%u*bPuqP5_`ByS;#wsP0 z{dk@PvcvufZpS~h?g^DEtz~i`Q*`#Wp`T<57$LaR4^X|84IQ z3XFh@Virp%b0j{z2;&MfFXOB|dB*A!Cmhrm3!DaqSYxzOJFK3yJ6LDtU;~>R>-^e6 N6Wb`Us)-$xJ^;NZZukHI literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/FS.class b/bin/jake2/qcommon/FS.class new file mode 100644 index 0000000000000000000000000000000000000000..8d875d13254fe8144a26310b61164891379a6f04 GIT binary patch literal 15672 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 SaBP_DyON@L(0wD=XpfyO0v4v%KfK6Z*mn8v> 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 E9~OxDmjD0& literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/PMove$pml_t.class b/bin/jake2/qcommon/PMove$pml_t.class new file mode 100644 index 0000000000000000000000000000000000000000..ad99e8435f2588b946c76dbc246d05862051d4e4 GIT binary patch literal 780 zcmZuuU2oGc6g_U!WKF#fHlU2bU@*p3V3Ecnh?hx|CY6r~G-)7Fxry7kByn**CVmzV z2!RkkfFFgpamrJtC_cyMUfcKF`{(b^-vAB}cxW)JPsAsA5PS}GlIS#e^HP^`dz!?9 z+=IigG7+T+Vv&x6*Tabna|Tx%HC8D@-Oss#*`I=GkK6dV_2#)L!IU_%`-ZF%&+AyqaxtEY$2S zN4sYCIQ*Jzb6kN-Pxnyp-zH~+0J zOel|3b&YS^zF+m4fgh)-G>5UsGMRaJ!mxJ9jHtRjgTLRnO?Y>$Lkpw==?v-gk6+?l1SO**Q6L=x=pSzF~b{ z+L)Ja&r5garLB4C{#Sasfd{m1l06V}u!Amk(WCDp9wEe2l%(%al-H%=A;qh6dv@(n MR^2Fu$Jj^vA3MI6CjbBd literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/PMove.class b/bin/jake2/qcommon/PMove.class new file mode 100644 index 0000000000000000000000000000000000000000..ab9e22c1da6c543335f370fe775f2ec09232ed8a GIT binary patch literal 16494 zcmb_@d3=?{_4he5&s}o!03jiSB!B_JmIR1wM)nX0h-@JWVol6}48aT6e6rwzak{Z3WHmduE<{vuOLr`*{Q8ndi)z?d<2w z!?WK${7WJl&z}WIF{Rao*G0yUJG&~{&=74Lw{%f-LnJ^BQ%YTULwH<$xN*(6C6#rN zsum^{YhdcP(2iIWZitMFH2{5e%Ty*EYp7?+_By*wmy0fg6S5PWI8`0SfD3jJS)mF9CMjP!Y zgVG6-i4DkGC{$P5f;lQ{Tbgmoij$c9(VCj(2+r(}fdmnNbwvgC8=O{EU)xyQG6R57 zqn9%|CDCdSY#>wS_fXOvJw(|w*rnqr6Z1_o!;^?yI*M~_M}bSdY{yuadfQf^OMQSc>!3xM;8Ke1nB-DlnbcdO$fZ=L=4rb19wr1t>#aX1dg$GMM@-tZj@eUf)m|X*wlbSr6i;E{s-%>z9X{YUSMkL!@ai zNYJvj76eNFKHftz`Yc_vx}?4~wmecFt*UJ~mnk%=qE!Brj$R(3`LrNFpm<+PzV$7& z_2U+WTh>mP5r5ZH5~ElZoCkPEOQV1|w^bsl^E`NPh1`~t&j!DS`f@i#`B8p4o6 z9bFIP5QMX-GP=I83i}UKhO5?rtH7#S3#kT(Yw-_D_bP8e-=c8LoGL&|u^ViH+W}}?XPy}EDB?_E~Bbks-_TAQcV+d zrlqzaBG4L_*2rA`XjAQ)+D0LMtxG=gC($};2oO$@`dv+Psga^gz7_~PPB7$qlri@d z=_{@d#~{*EWwx_jYLca#hT6tv0kpWZ-U6U{A=*gi2Iw57-8~8o~8$1}ahwGhjBgj;?ZP8(j@P zn1R3*p{?k8gih>h>G}X&2hp%3nO7gJ4A(cibc5_Cc|)XX!s%T#JBF*Mo0yVKPjW;j+}~`bZ7tPwAe^;Z99SP)ZCh%64C*3XAS#wC^}I=l4%3SPdV#5Tr+XA@ z<{eCb4R>1|O9Url{@4HPAt-gW6c(KLU3xVk#hB%Arbr6YnA zGOn*a0`h~r=C{vtgu%whMz0yDiZ-@1MS%jHjQdijx+x0E^a4qWyEtaCc4Eyz!i}}f zYYo$rq~*=!GcFr5VJ~r)Ye3$MTeZHaNfgos2EyRt+NRDGoZ`<2JT{Xz#~=>91*5vU z#2bc#V+W!Ohw0xg{fEBB!NQdgKxb4boJGle@r&!|8<)Nn1rBYfjckMusE;%|PsB_g zv&)J###J?7f&N|ju)aCc1gNlqeH;j|AJW=|4T*l2gPa73sfjji3^!Fva0J;dcZ#uw zb4WIU@x5H`Em;2bM)jO0;G3Od^A@qa?$lmUCkfO~;5}3An$@8T3^`$xG@Z z;U-NE!3hWDSBm^XjG$?j{JOx7I?m-B9s<%^)3B%*r?+;&T83;M=5nqq+1rYuu-)25 zLvAA;3`KE4@)Z(ki8q9V@o1OxgqQ*Ev;r$|d5pk(@M&vXAkJ(M z0~*T+Qof|Gu+rtk*npo}kd>7Vo$Q5wrAU$cD%I|I^mOkEOg z39o^%KQFR0+FUC!r85J>bxJ0R;B4Z>E-w*P4tUxsurimI2~C4>YWin>RAYXmce%?e zL^ngmLK#2k9P$LbLhNGs zRkBC0o#t2+>nDS^EuQFE87QqkS4N7`pFVoIQ~YzQ0h?U@p-7i&rE6iNaZSrwXXZhf z3vK}MJS>_>x7orRq#w=`W=X=5PXNuCEiE)KK%BvxNVr-Sa*B5eNaEXh(P(vCI$%OZ zjYd$jhY^>o;maj9Eq7*^;euP<7>>np1#26EO1|7L82sK8)~ELo4rs(M&2wV5n`D56C;IOwQJzT9Gl!YmEmTjEBykp zum0H0Nl0cu@~)ebdG3^X?(%j3%Npdn5faP}SLb}+fDqry_XYT8i6}mv|CK}=T)v+l zz(jMFHbE*8ey5Lu%*Ip8@)khXOqGo?B2Y%?%m^{XzL(TPz>1BL7DLkJ@&Vbj-`Z`V z+(Rz63&^dG)VG9J+YZ_N!!AFoY$D4-@1IIh5gRu3n&wgieGj4HL(!M%@7tz7{MYL z^}5S?tAf7UE(ga7363^AcT zV+Wu{<sq%kh_ z`295A-A@x!C-0{dQi6|$Ryu(tD}BzAm44rnl>z^fmBHYWl_~xdv{C{ofhGItM89Au zgSDTg2K~RL>1sdC*o$=)&BE^~po9Dl(R3v3GqK-d?68CeBjg`S^JpZUL{WH@vRM(UbkHG$B9TUzp+475NI%{dv;%)s&%Gn7ZitTPfAF7T<6)1<^__ z+wA9bzkhefVOiaTA2b515R&C2T8%@V1tx@P7**03s-hE+4o?GoF4dR=&9^(CB{;17 zlu9aOc3g_1F9q2IRt|z`%r~7*LCe96Bk5GMd?=1gq2;s!f^`}&XOQl|l7RrNw11V7 zxjI18t}ta_svFF#nIw6HrH(Tdb0&jt8U9E8D|K?&N(cXZ$z_Xryif7<1SAEf?W3GF zs>t-U)0uj*W8Nx@LV9W|KVWD)Br_@9Z@>{DaLD4LSy!2$=)3!9Z5!2DEYpse-_4mx z57LGy!OUPA{a^?6vSYEcy#o1hGMLm)TAS@iy9LwbUcZz4tz2lP*_x7bJB=3jrBBfi z1G>_77+5*lE8A$RbJhXcni0wfnHlP8ibCm5a5tsyqigKKn7@_YmfjoN=%#%%Bi$Jf z*k*^#Nl&#{0{4%%?bO@aX_uZHXrG%eln-PUtEi?N)>YBQYi1?_ZuL42q4N(+X^+jrT9@CXau(sPRB&BR&R zyT27Ww9&n7^uP}4o#~5@KC@HYKc%S1X5aNA4 z1olS|{tGCIXAJM>(uH&xDj(P4xt%ViT_||mLtE)yx|G_`^CSuzzox6`MN}?c2G$?x zI{Ft~&ziPFb#LPSC?^c1TX{I`=E-zBpNLYyOuCCtrdBS;b2;73t56xJqI-EG{fy7U z`(~5@E~5wFbnfKsw3lzA1AHev#Cxfo+vs6_k{;p1^eDehPx7DW5Pw0x;(wu>(?QRu zWcrQj4~J5W)5f403;8+ha|PZe@)0_K7SeMSpa(^5F-tN%WYl&xze?@sb!Z5GMZZ9= zkCyS>R&9AD716`!4d7Ijs4+bPt396oNRI+9i56g<$1qFCsQ2B}zXPO9W`=f?`9&DG z5=No}lXiha!7Y4H2TktY5ui=BE6Xh$lG#B6yLDqyuX~X4Cw0L7belEN>(3rGxJNGt zVJCL_W9P_DtRYeV!Pa09`DZ=s#K}G07xsAXX=oPr=${hk2?!eLjO0Q6tenEGpV>~2 zTQD@i1CK!~FEfDOnE~Ib!qg`!%Z!xQWd_VMZf62wXPivO*coT9^unw~FfQNDk5*#( z%%IE{H1pMX^I80Ea|S!-+(~_9?oK;p(apvRbYY$@tnnUo1x{g}gID{gt1R+m1}sMW ziM`v-_!CI}3}1%-`dcVXmJ#dZD@=V7wq<}d2y&1yiG%F5E#DYlVOghgUqiXz>#LMQ zufc)82`}~*RQ+wJ_`6Wx_o2QY&=vHdQO}#{V~G5p=yCcp9i+cPRsM#Nf2Y@xY967_ z0r>(Yh%ebsUvM(A`84_$4?(%2fWG0W^etk#Z+H=PAoC)Q;@O0v#HA=pT*nUIim>uF zB(e8$$SB|{h*S#SM2DazL^)9EU!lcR$UlJ55WhK#*U?jGY3%6>qgW1RKa-vozsXH> zB0{1Nd|VlyE^#nqw~|kyXVD58Wt&Y-2ab^hneOs;lM!+Nh>p@(9SBW&A}E*u89@kc zk|h4LYQP`D07&@vhNbh#U@!jGfvxykSDEK4#NWEgE86M#ZF7dXV3V5%x0?sIyEnNA zh8Je|<)=Jf@#<65*Ua;38@=H>e+Rkd?VTMoY9Ea+a)#}rVVEHak5+Pqm1g*cBcd@l zl_EW6w)c0C^#;r4m*h*Hn>(y=Zl1=zbL+4(Y+Rl` zY#h%{p{c>4iPI^7qD?Ljpghi`v780FmQ53QFii&A=fid{=V7#(bEz6OyoE>5X3nD< zI3JcUANIKbS!kV*h0Vbe(z{DvlgXQ~5Hs9zd@;$N_XQseIk zrDzrqQsMwX$m>7^W(ME|f5CASXgrP&Fk2&nF@V{qfLWSX70ppG`=EQ6W~#jsKO6fFhsJ;-<`jnmJB0t>}P zP(FQTC?@6kf1qVU&IzI>StgVOh2#%>QAXljsMdku5`HShO5W2zB@~}LDlNlAk`9H3 z6$LT^sh-Uw$>wBMxZ;@hQ;Oc|BY%U3*l2qqZF0Qr%@kx;cS?Jp(sC%M$C}M zXFx{Jq#3-LW^v0Lo2LfiJ27#fVduYJq%FOBd-Mrc|H1~x@hUESAqISK-It=-g2Q4 zFIbGjR?d8d?ewqIqY%qSjS)De3sXDr1~FXQ27O}ZR!YwEr5-J7rBmV6F3*c~P%jr&-mhX%%{8BhwuAt_I%aSH5B0>z1= z2*{!Ulw!Ot_f6w|u!y_!+d18=2fzRTLiu`Cp=({eAY~eu(+!rDz_Tt~@Ujzlov?uh z24CN0zCj6?;GHnn(CB?<7p0gMYERvZRWJ`(4O10u3j_e)z@+vU&p7R1Q_8PxSqFjjCb%wypy-`%^0zZZ{*#4 z6W@WV+)sHA--%+^U8rBR@=JjHp6}rg5heTu1-XCoecZwKE0-ToY5a4Qjrx&eJ-DV>v#SApQk};}L{hkJE5INK^O;T8!rsyszLxxS;

Tls0ak$;0c?K#@T&%>X;fZXdvEl7%}7xCBLji%|o?^Wp?A z0;0*Jd8PwPfzWJJE1?E50zS;i@ChsOBm`(goN!l$PtXxHyt9L@9Fu`Im^TIHw-6K$Uf3h9vOt6-xA0?7fI>p7h@biGB12VRjo|3c%m!*#T?@QH`CEHFdr|RpyIP&7`HS0~^M`Mz&-$8xitITbs z5ZW$?@xSKnCbjoMf{5RS)V>R;Jwo{i#V7MeklK%_hW|`;{1^XAS#%x zj!}j>N~fvgedDvUd};o{&=1tnJ^k1Y{qP}9SlUxRtmIQf7ka`@5eH45VL-$Ob8~X1 zq^0pfh>i7b_pWT?nJGulzxn{rgmmx$dbyQPFmht$Ct}($^Se0@iSZ)LSiV3ky}g{bm{t#8Y>grDSF^N!Jxy=@!6baH3bX6NK({-QLsj?V-q} z56}a49$*H}-$@mnvj#4($FRDA5CAmV%}Ej?Y*VOS1}dH zk@k2wrt?bkd#ixD)gJ-I-rhG4HnZ|dgBtS{)?7B(K@G5eMkhz&U6t|ZWL4gSeAcw= zlp-9y3BB0|%q$M({GL&R;45Sb?mBELAinR%Pj|j=KnMf;7|`iHoM@^zr)nr<&is)>0BAtWhCN+h&sHwC~O{W{x4BDe+(t~OiJ*#HZD{2lM zQFG}FHIKek3)oeQc%WLs`D!VYZyBGg%6X+am8;e1yg^m)R<(++RaLxGRr79D!~4}5 zZdbMZf~w;;R6W0^8u(+?$e*gH@~N0gQD>_R)uaZiW;I#0sA9EV%~u=L5_O(&RTH5n zDQXr+B!1vGXd~B{;@>8uyHdbY+>R7>4Pcu0BQjcxmSddOL<%0G)lf<)<7x3xD5w!- zO*l%YhdOAiSJUgjB%->Epu~7F+-D_X42dv^z7z(DwV#=i0;W294Z{!|xGACA$;7>$ zV18o+-1HlKsTNptd9Cy9iod<@+f6Gljn$^OoHv*})y&>ECC3D_rYm(Q{D=)h`lh7p z5?MF!G;Tx(WZipYORorNYpNuY5>dKz-DO zV8z8WSZ$$kYAY40%V>tWoMx&kX`#A`7OAUgg}R2$RM%01x}F->of%yBAO$$2fW)$IjW5c&^<;y zL=)A+;N2s%Ks`!})niny9*0>t2($16%)&vKg(vA^bqHqRS1=1t({A+)-L9U6d3cW6 z)$?>n9Y&S@1(=DK=y&S3^p1L&K2X1dxpVDWRT#UOfSbrPikLc?ZPc3ys_P2evwx+WiJ~y)&Tj zl9!}sLTE>1^lr=y+0>-Svjl>SI$B0=DG8xsWD98skj)V)>oR)R6$LYb839a!?xLXC zop;5So`h;zFtZnS)n!i~W$mD_K^vag#~y+rK(RAg(sUp32P5T{rrn~L%sx`zPsvQ_ zTGwxth(olu>x349N4y!O*;I!JHnB>GZ^=s$RVt%Iy} zGWXNHI9vDTp}H?pnN%)9jb*y-&kJ-0m+1j~n$F~vI*ZrpY>w%H+@c5bdHOiM63-j; z5WYzd<=uK1AH?%FdN}_{kL3U8Jk?JZ7|puR3Oq^y7eKR0k@?xW>>0S(m&&W62>QftwHa;) z{Giu~Wxvyz)!C_fbo%=D88RsgRtjI;c(KLn@Lq^F*oL(+2*i)AHIJdV<~5rEZL!d1 zK)t2}68>G@EqV+d%cw^)3Va43jW2}#+G~I@057urUii`9z)e)(7>ChH7YT?Znz@;B zZMTWYchL7BFHayyUOnHu$%sZI^riYs!?c9q`sN zWwT6~#uwu>rate1%}UltcPg{F1kn>ISx=(=`UD!Hi>N?Pp%e8~nyshNB0Zg!>lw5{ z7gMD!p{Sli7wWlmvo57QdOkg-7tk~MWcoxeq<`o|taKTt=w(paavrHqD8H&O8cwtDzP!B+NbspG!_M*?CBps%ZuBLuELRq>7!Oa>Ryp|^GIx5xm zi4FIICgwpS?S_M-L&s={%EV^zt)Ja2F8llvP|-O(+~RlciY*5rhR!bXIrqu^$)Nl} z1=zR^lP?`KX-gVkQCCq`w%OjId}zAr;5LBa<)8&|nb<)Ajf*qqKCG>27Jd(vn!k?W zG|epP6yvZ6)ZW;PW2j)^THeGHautuiVAm{s7A>F3S-L1cR29iOb>NFD1eZxu9F6h} zYAyD(SD_{-EX_tlePP{Y*Dl}8oDJvufnc3x#Xq|+8KwJBUbeHOl>&L$YDs+brFL{A zF}ky3($;=_^}6^3SKPQ$M(QQr^!FqXGo5z6R!?sgbv$w4*cq7!Xgx+q2X>J&$jLqj z%H^dhZG36=s!4g-W6w%#_WgFgK?2RqiU+0ycXzbQvb?>^L^pK`U!8o>r7t2!Ukm~K z3H8>O&`3PT>C3>T%c)pjLG$%hv`}wDCF5#n+BLKVeOK!1pm8_SZoQpa^$t3qchbZ9 zCb-X==@qo!(zntF`ZhWOoWJTj=v#fK5n#yy9XiVR)(C7!#wCt?g~fC$zV(vNITW?h zOuh{*`EKhgRIM)uzSNaZrd}QJLcRd1*zh8JJ5hF0nm!Q@B*Q}S!KgqxpwI>jpL@uA zrb?DCE-c8RKql}>q?HNOU2XaKUC6`Y1eH+hHHGjFz4(8DrRTrj-GtEFN36)h`%G33NKy?R0}9zVz^Y3AhKa+->Kd?)B>3 z7kg4wB?189El%UscD|>R=cXL3?*q>tpuYO&u(Eq8A3G}4`)RIjqXo#SR_h1B?}zAz zx}C1qzo7f|!w8Qap-1t2Tt7+&f%go?yoB+u>nG_QeaP@v)Oa3lIQD>pgoytx{<-0A z8aT5L z%$*sO-8m?G(plF^eFu|fXUTAn@~>H#T+Ka(Xxi4Oa4(1=U!uBo3<1Gon7yDA_m}9j zhS%c4%pi7`*@62@Z%c;V_*eldZ6bGmyq%xu zOg0&sSI$5$_q9kU+U204@+uwxTE7|j|DiTw-xKp()lK~>66$wVH}$JXsNYrpUH!08 zIhV-DGkvM!e7Mc$>JCt4J3nvED^Z)X3t>$=ztGMv?M(oEyKMl-goAp*iPl&<8(PR6 zt(4XUr0CSnrfAEr>>z(T|Gu5^WsKMF!?%v@{D*da+XG3V2{4_W! zGlCwFoqFqgb+4X<-BvQU&vb9MG1=8u$IG!enCRC|deX!2s>M>22CcoU^?%&3Ajy;6 zm@u;E>gGD5ww>Q?XDQ?28yk=-shy9sQhCqV#`GVPZ`W|gWDDxO^0jIIv8GIJvD5gY z#xkomJyockKL#a*F%V!Ax*(sKh2}@FlYa)=K0#pi7s}RurJ?$7G+KWOo%)PU(Eq?E zqwr$-OKQ|#!8iV!Zq@&Rt^Ar^(BIH|_^|lj4%1ObbI@_vb$r~%@pFok#Dkm=k93mx zc*o_bP9L7{r0_{d4i-A;e5%u*PjfQ4!pY{f&Ol!04CY2>2%qN+=Pk|%zSJ4Xmph~Q z7H2d+;Nbp|QT28vsch#2Rp6YcCOgyAG-rmI>C95Io!M%kQ=*nR zb5*4?Pt`josSVBob%C=`UE(ZOw>eAI?ary{PG`Bg+gV|3Ko00Z>KM>~U*sp28Q40IgkI@)JVqYUaRs0Fi6t0;6if0yz YykY#Wg}=egZ^ZLcJhNf=|4vE&2YT>BG5`Po literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/Qcommon.class b/bin/jake2/qcommon/Qcommon.class new file mode 100644 index 0000000000000000000000000000000000000000..8cde98c41b4c9c2f036c91a57b4d25476db0f228 GIT binary patch literal 5417 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 R(IE#BC(H2ACcn$1=YKSgi(UW# literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/SZ.class b/bin/jake2/qcommon/SZ.class new file mode 100644 index 0000000000000000000000000000000000000000..dd63d0adcb7425b7ab6a8784d1850aa793d3a7d3 GIT binary patch literal 2480 zcmaJ?YgZFj6y293B%~w8;G;s2Xw@bYB|iEB1QmRxB0hpB!3UFM0wY5vP9`eyOYG;a z<(GcxS_N6{TK<6c7xhECy6?;+Bx1UcP^a#XWXlwd~ z?8}n1zHU{s`9c^$*ZNA!np$-wd$;&PFF69emyD|6ObG;1=>>t{j8)d72%t|v2)zRP zXN{^p*H|y=_Pka!b%FS-Rnp7_%{Jt_ZwxxCMqRFbns-7VG-K+TEs#ikvRXIZ>cvLo zxigVoh~fYS!iWnT>4a!GDL5z#3Y9#x03!vCc7-ID9GMA>bWgi9ol7tDG4r5;AtVI) zY+WmttVWe_A}3dlDHuVLU}eqG1bUXHrS*h@ucUu?U3()7l(tg}PP?{J!*1GA3er#o zqShJrqZVpb~ zv5o2qI~K;c+pNxo>4ssJbvuGfq}EYW6l0i@Q*~M3kR;R@=+3|xt}2+u3}w)2HN8r; z5~*BzkF%d;B7*CzFKN`1Q^`uhG?N^Pif$*R{xaW9iFQli?C0`zMU|01D!7eVcEPbc z#sUXZdkbL&bF83)XjA;C)cBr)`;u|*J<8@(q7cX{=*NBzk7br+p;9PEE3MtpYW{8t zJ+cjl1Oy%{$l_cS1w093sbdG{H|mbgUOmM#4z6a~+D6H$Z3w9CWW9Yp(cZzPiL)<| z>^@rD9j;5SRjF`d1djcmuLKLZBn3vhJMIykeUE?|DEY!@O=^@%k6(&lh5KYm3TP;J zAq9+--Bq(1g^6ky>z!h_Q>kDSmV1=tqIijV7#!bzZ@wFjVP6TjA@u_yzw)66QC{UTZ~|ZOs(22(@8esaoD^DQ@I~Ie;BCZqgQEliP9ezCrybxB z4!ZzH@TCv%l0LGk5jC)dqiSXg!)js+$K~ruRSguj@bwllyU>HI3^+pqqpUN_O3v{N zK96Jk%*a$p4-Q@`0?VV)t#O1A2^Q8Tr`J#am!H0%{)Ur7%e)@{8JBs>{Di(h{QM3s z4td5z;17%~#wR{ta%dY@;@7ruV;ea-#P96juDXK8IZYZ9RDVACEKrivR!s literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/cmd_function_t.class b/bin/jake2/qcommon/cmd_function_t.class new file mode 100644 index 0000000000000000000000000000000000000000..dc3a4bd2b63074e06a7783cbbe16a382826a663e GIT binary patch literal 436 zcmaJ-yH3ME5S+D5UYIx}yoGplkOGUeAQ}W!1VvC<>wG!Fh4?JY1?9IW5E2C+z(*nW zqNIR=W@mS9cV={7-yfdL>U!A)YV4aOtMrJcOo6nBIHtx`=Zcpo|A!n z(9eWgFP{`rU2C`4`uzhZE;&wF+viX78QF?Eaz-<(qBcWvahPA>=?WfqK-7Lmy-jau lxYB%O%EKDhCIYVeTn|viA?n<(GvfsK3>$NkO`be#{Qy5(T;Koz literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/longjmpException.class b/bin/jake2/qcommon/longjmpException.class new file mode 100644 index 0000000000000000000000000000000000000000..fafd5a5674709b93568f5eb67582b6c658f2eb95 GIT binary patch literal 316 zcmaKnF-rqM5QX1d?s9rYBZ955R0|i=DmJ1Z95#{kn{zn#+}n-kM)J3;1PgzFKT4bp zVv)k;y?Hak@Xgov$0vX>c5@_zgGN8`SUp$1ZM{?0ySi!T*UO6M!FZP=C5#&Vs+HBQ zR=3u2t?eY}z<*1G{)KTSToQUm$5TRjTf|4`?IV&WHF#WyD2+Fz$WjlejA@W`tWr^q3iOH!*0WGC;~c#}qg XLNtzn5w=7Jt2z_kmPFVQO)&fcqLoUC literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/lump_t.class b/bin/jake2/qcommon/lump_t.class new file mode 100644 index 0000000000000000000000000000000000000000..825da3901468a36f4c06726de90aa87dbd3bb0a1 GIT binary patch literal 396 zcmZvY&rZTX5XQf03stCqi1?2v-k=AYaMgG*F(Dy(&@}O6wsot8ZC6Y2y*v;T4?cho zWtwhz zstX5mCR%slBF&I*NhL1EL03fAyz9rRLy!9%9!ZnWKuZrKF;{4#{|-TWIqh&9dE!i( z8M)sJ9hwVZhX|8&&I~wf9bb{`&p{z!>IKgaq2RjBRsFe_e1&CCAon z(=&?h3r~e2(7a{5G4vh7-qfFNY?%d5K=JmdR8DZW7(EBD-cem z*63ewie?O9G--&Tp&kU(P=|=LS~aMM#L$Lz6_*9t{7{Up=Qzw4i>_IzXt;t7f%;9; z%kHfhB?e9>m(NJ8dah+}PN#yce=bi;@GcGA=n;q!q6$i4$<%sQlIYbCMZJoCfy8P2 z=k~VkytN-W6>srf!7O{0V++KWE!$k#Ep3=?-q_e7lh$RYVC<|Jt|iyiO~rd3pB2JMq&GjQLf%-BC{IFyqmm04^^BJszi|{sj*CEwC0hDhc%2~R6z5ScB;86 zxt_fcH(W7U$Znb1b6NY?AuS=B(4W}{oE7e{RXJ*0y+??Dpf~*ujp^_a;&Nz7i(_2+iq0b>_Mt2v@^lkA z(StrB5Ab}Kk2y%RBvDiJ4%0h=1aw@bU*ip;;u@}VzQLy%q2D|rRC+k{NoF@O$mmIW zC96K4(Ff`0PA2^Y@y|5)(}T%pD$#rR47R4o@jwzi;L*e}h7QC59Rb01%9me&eoQdT zB!)1BaZJ~c%hZsIK{j8Q;9 x?U}!ZPbK~d(bkE5sOe+eIn&?dw?U3d9y3&~Mt4h%ZhjuM1r;;IoAp^f_yd971X2J1 literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/netchan_t.class b/bin/jake2/qcommon/netchan_t.class new file mode 100644 index 0000000000000000000000000000000000000000..88c00f7dc1dd2a01902f3ad518457969c6d48416 GIT binary patch literal 1299 zcmZuxYg5xe6g}G(Qp)lu%3FCVLItY$76b(a(E=*SjPRju)1^(DCXl8$W8D`Y+ z2l%5LZ#FeNN@i}(+0D(p=ia-?pT9qT1DL}*4H1Ukk|@i$^pS2?Dz=rjq^lQ&m31}5 z7&=ShSfov171CR|lGI&>)&t=RGbquQ1 z$NsuSt*g?a5bchv*sjcqeBP1ODnnnUL4?RVS$CeH>FCgQ=$)itkwU{NWUKP1CM{hu zbccIFFI)B(Q|1ePuAy+>k)|PXCZ#&(Fwp358Z~Lx+=6{RQ!)&6>eo}Ru%6-cfmWfS zM1chMU#P2Ue3iM{fhw%E?vmfXuua65uP%C!n!GiivE9|84`+D_k17hw~ciP3RKTp=k`NSYN=6$+`-3Mr35%B+yIC?s_X zNv}exKq1wnkg8NjQ&31VP)KSO(j*8Yq=d##_aR!9NhKqkNu6Lg^%J9?PB8A_2GI$k zlOCp0$)@73xQE;S$;@{ZCQbJNRoWn8n50H6(0U2uSj9Ar{SH0nL2%rqABf+Adtu^l zG%`PNDMeRw&%=GPhh&dEJUuJKe@>V0vOu;-_MB{)>?PSM*=rAPE)^X0khw(lm}*Fd i4#Nh9v57To;RD`dAKUnh9T@m{Mtvz%ze#!{*!lECBq%#QZjrehSJ`=Z!yHif&9tI}bc&Yp-N zh=c|W#~FgzTr~=Y6BBj~wbZ)LF&fdcJKkHF&!*2p6oFmRQqb+CYI^w$OGxlZu_Zr~=ZG0HLA I!W~3^113$*>;M1& literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$darea_t.class b/bin/jake2/qcommon/qfiles$darea_t.class new file mode 100644 index 0000000000000000000000000000000000000000..e15458b9a1a7634303818ecccf872da92e58ac67 GIT binary patch literal 814 zcmZ{i+iuf95QhKR9GtkO4Q(0ad2#EJ4iea zLI}hK2T>$0cmN&>F`HPbf{G>Y?2Ko>`8~70|NQ&~pn-+~K`4*pOVzMX`@wh|`1a}0 z^;EPykfD;tv4J$9Fp{sO?MeT{KJ1NDKPD{tld;Zt6@;<$A_6&trJ)-}@p+h#K60M7 z2)W(9=lX8^h>)sOyByyS1}YE2B?~!Z`Dokq)xl)kQ(;H;JVjV;2Yu;vW$0=@31)W_ z%vz;A73I5uz4sRX7*RgJ(Ojwx%&1zcMz$PIRXe^=rkFXh{I?qkiYVekYo47^Do~YRI zxwG6LM|bA7g$%NKch`cUdz6k}xZLRtX8nI)O@iq42&)%XB$!9RBScY}h;c zw+NQw`zqY`WE82$zyof_MU@CfayhWY>Qa1_^vhy-g_g=|UXPWnV4H`@c?;~-*y<-+ z$bEzLg?9pryqatwJ|iREVrd!$XBKcdIVbr$XJEbd1IzWVD4yZkvs(QOH@;&#v3JgK xB^Cqm4r%comiU08_=vLjG)0$YAXHFgAR}2+oy!Q^V^82dcGzmc1RD>L{|l%;umu1B literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$dareaportal_t.class b/bin/jake2/qcommon/qfiles$dareaportal_t.class new file mode 100644 index 0000000000000000000000000000000000000000..0966f82d6216f70d1f757697448aefa797c2ce11 GIT binary patch literal 886 zcmah{+iDY06kYq|GMVXUW1GgRt=bwj7wu?#Oc892Fc8v*h6uitljNkGIGM4NiQsRD z;_by>P_cp!et;h(?vn&0rQpEqefDAPwf5!w{`2z}fGVm61YvU^pR1~K+zp4rFmR6h zp07rQo{W@y5k|4}4`KsJLUtfuO2?PMp|jT+sBTO!r+{EQB#_H-7$2!fXA+Y8?z1`} zv)%Q*z>6Oe62(%R?{~wVGC??JBZD+yvEc=(IUaUY)RG-v5tbTZSNd%kc{-k5rne_F z77|#pk%h%n@sT$o6dM2Uphj3NGLAb4ywKTs6|0?bzptWNscqsSE*V&5;W@xw)Kig- z%ecbDHr!ULQ9r0RAG?p5gxoyW1X{DOj%x<45|-zPrb;%hV}p+ejg;PbC|Mo~Y<_2rFkY5v=`i9Cg(b-ZEify6r7p zF2Qz#Kt;R09F5e-z&&pBtjY2;=3WOjSUbTlO8;C6Tj)aAntH|T6YNb`j9cKS%wB)# zY~~y6FMJX>&(>lO@fj)c8jF)#Fp^h2%X`3HXQs+OaN%^?8zjZsNt!(cVHr6FYl0QF zT3E6GOJH3SRK6mAg0-jR$_X~VLP|Joc!qd!+iG(X|-3<1lPoTb!YI7R*9dzNL9H zl+w8$=o2ysODP$i_;wV@$iQ>z%yp$`vVZOg_Q`36u2q&S(nyIxA0R=ppCFkh@{5W8(_9-!+<7 z*#Ang6d%p8{#SNeTi_#P`51zGsPGAP_ywxmPs(hjqG;kViIY5@;DAbUn6%<}if4pH LiZJ?vUZC(BGU>6o literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$dbrushside_t.class b/bin/jake2/qcommon/qfiles$dbrushside_t.class new file mode 100644 index 0000000000000000000000000000000000000000..d91796a072b3341256f379baa773be57fbb7abb1 GIT binary patch literal 828 zcmaiyT~E_s6vzMP*-Keh1O^Ozg$cr5lgycCECX(Hp;$ z8Zhy~58#IqPrD^LLt>LY=Ow4V^Y1y&&tKnv0I1@b0zoJY&9}0upLe~{$aD4czU|0h zyJz|1U=Y|nc^WE65*CN%dsBBz_e?*shO!$H=H78A-SLP(4T2KN54PL)I5G%Hqj6H_ zn*FY0yLR}TkSLZqoImt>G6TX54H={f3r*XVt?|f`e%rJhNys(5uIY44-;UyGGQB^= ztQVWH6xa6jgO8y+829_qua!C~5?Il&glqBuW-P%y`{3kP;U*ka^=R#qbj%Ob2^+nt~q-q`QTSG;RN zcCz!m=oblE!*!*9=$Jtu0|iwc&2{a#@b5c<0_$Yy@yoK=LnNBdOtfdVf+H1KuG2Uw zv5lUT@)h%+*%4UaQ)SE2krZt###wOT5^~eedfb33uvz|w<;oYVUgGv~xpIj@?!l)E z?8NQ`ihqcCo+3ntiO0~yYpjVAY=}28JwIWgj0!WEiidc_odotc643FOt;!j~6Ff!c EH{@@!#sB~S literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$dedge_t.class b/bin/jake2/qcommon/qfiles$dedge_t.class new file mode 100644 index 0000000000000000000000000000000000000000..3205902295655bfca6b095f907036b28a2241e3a GIT binary patch literal 396 zcmaKo%Syvg5QhKBrD-m(bfI+PLQaxnP0WQRY2V9*2qHd! z4<%00F2%)}IrIN>hHuXI&&L;lF^&u~JG~qPxd{m6j%`t@sCWTEOT088`cP97c`(!VOc|Wc$jsEpi{Iie zm{?4V@dNxQam}=k^<~ysXZBuu?{)T{zdwHi*uql-Qef`H{Ghi=rwy;&_T18`Wji`p zZCYkSzYh&01V&HHPiDz6-B#&!{X{oHfkd_P?wNq72n-*1ZV;MoSTmiD9-{JuKn=SGbe@3T3zzFqc+qFD_WDuUQx_~??GsLl5$DwDDCwFbv z4)+A6^M`RauI-h|XQ3{4EKB=4g&GSTcuk$b5T+Eya8+O^U#O)aFrzSn(G0F(-oTu| z_y7fk92QuzrNip6=W|46S2@kaMI^DTkVY~(ttw=Yjl|X!t|QOhm{W0k8I>rcsGxem zHx!1EjqWxTF89)IDcr^u^_j-r@<-*uz>%V?y9!s36c{9CI%JagZ8%vOPnFvh!kdU2}v@8Op^B zO^|)1x+K0V{=j6>_?7Bny0~$U*|EhhT`a}NE>!Q%-8-2XFQT&eSbCllp1MYmI zmc%`Ni|h+>9tk;%tju9bE+8itu`ZXeDVMP=SFkTv@j|X)oAFbqG1$g3E_fKE*F+7%f*MrLXjc++c+xC zhcJe56-fr}1L`)ZVFKrwtRrCw*<(z)5Sf159z6*>so?@H@+j7YXUG{cJwuY1)-Zs8 zJk4rQ5eOlIj2wZ^m!%Cu&St1!*`nBKRfStNt4+aF3r@{!u9~hT{a(=TZCI>B>X;12 z)n!3^)hZ!=VzaC+YZ@+jW^MC{xz&RXm7I=S6OVXL2!mb3IXNYQX4tlHmzrj~E!rw> z{U=zrnh^ZAUzlXN3h$%Bmf7=(7piAj(j%XE27?^e*gN2ytT*(1g!M@5CnCFuX1`)& z59glh**&CoG1ap(%DvAR)4w5_{DH_bnUv2y(xsO^N=9Oz4u5}PFa=qD&&ccO6>t1U zgy}Wn^akVf7Sr^OC3ueqY#-AHT;kePw+URv9DCdja=5}R&N88^+@gu29hR=5Z literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$dleaf_t.class b/bin/jake2/qcommon/qfiles$dleaf_t.class new file mode 100644 index 0000000000000000000000000000000000000000..79320c609547e1f29fbddd482de33d135286d5bb GIT binary patch literal 1370 zcmZ`&ZBr9h6n^eaNJz3EMzp@5R;!f+HHsiA2m*qxreFWDgy;}7VMQlGmU!_dLWWY2T%dCu!S_rH(tJ^&cSFKI}Dp-uHzkCwLTUaRG~ zrLBh3)WMncrdEx$FpZ?Zz@~btN=@ZHDlOMGbv+bFR_tFF1cWWnH}APYsNArsnr)q6 zz?UP-hqw=+)XgMxza@8EQ)StwC4aW~cleVGiTEKGKtuGqQ z{atg-ZwDJZ=-4AwlaZQoTqm4n#^KdD+b&cYdfr>tSscdEG>!-yh#GMnuQc~8)N}1d zL;DtvnSzsl`09zkvDme|2XQik6ZkfblLGl&=4F4~ggJ%NY@%$htdtkl7M5plhHylpy1XF!|4<-dN^_I83R#O23$<;Ytr^Ekd771K2#f%9g zh6~jUi@R!}5B&yRv#<~Srr{eFCNafZdZa_!kT(eJ~jA~mLK+2%|7WT*J2MhTaEn7H%6zi?k1P<;wOo430Yx{M* z$h{ZH#ruEJ+%R|0c3thyH&qbmAPo+6aIYzGs$6}&5@*3B-ans0|ZOnJ%Lh%*G6XvXHP_m19zMzS&b)svX=vWOWf9J1l+>OFT z@ZJtA@4%&@@sd3gy(G*j^E@BG~^Vv tzTMO7V%1VxHP72Kr_Xfvd(Q0N|NQwEfEA=A6a+H|-l1Np z9@XPkD~_s1jUd$Ng5UDP-K>N@!RUea$g754)U4j#JJ9t^&>#3ZBBdrMJ<>@U#F3z! z9tP15fuHRQDn{??pt;YmawG9tIt`v^>Zsk?H4jrxHTwAR6G745W$1trSrYJR#mHt@ zZ~2`;o`yN%M%u|ywA#!x!p$_Y6I?NaPMVS#=*V}A-89P*jPGo8_qfFzQS$??F3q-e zlJWUD^Ssv~r5QJ$?PiQFbJ~rl$+Huje^ESRc#NU8Gm6b{&F-zR!($xu!oW+{?Li4H zyeNZ>vRkt`MlyYzwG+J-$BDn%ZV0CGtwcdwT@Pa~f=niS1)Y~`qpA!S8xKa zDJ7WIA4Q`+QYhu>hQdIu))dOQx~Wjf)h7yrxvD9sTz#f6l&jAbhI4gW zVI)^yD2(Q6OW|a$zET*=)z=E+x%x(7B3C;Klezj{VG2dT$VL$9&30=~CwINQkS#K{ z5!bzN+hehC>~8jD`=%*oUr>p*U3m<$N27Y$z=qn2+euxov%y(!d81!8Cn`|2DALJV z=%uOVXMqho-@D?UufGxw1QWgDSUmpok+i4tLE(2|uGf?Wztc?YrT=sZM}o7xvbkI_mlbn)bNS-$c>5WyI$m?U?zrmsvE#bqEyqtCHyk$|?>K(xc-L{;@t)(i zj^F*pMHXBAN2XRjA=T?TMV%D5vH+>=2( z5XHhA!b2Isv5ewJIf*vPH(^Loz}6Ux9s+H~;_u literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$dmodel_t.class b/bin/jake2/qcommon/qfiles$dmodel_t.class new file mode 100644 index 0000000000000000000000000000000000000000..9eecae22a448918522106c0b4f47d63565e00228 GIT binary patch literal 1206 zcmaJ=+fEZv6kWSl+742I3J8cOB5jo-;B-3^ZQ`#Aswgz8~Pd@sn z(TEs{_o#r0F@Au5;}3}YObbbc*rr`;_Bm(ov)9`5>(BR}0QwPe!a``z%1cUrXgQ_l z^STyV&Zs%1(3Q^XX(cybbizjPX61WwC?{(Rp{Zn6NfimUys8xlmRnK5)zsoJ!P?`W<@gw%bb(MW zp%!jJU0l_a$x=S47zsI<<1F=YJtgO6WkVIum7rs=lBT&QZr)c@_0Z`3qB2^_WE3Op zpLN5EW(hvjiS&mh*x?YYO@gz`j!38x>?n>o(aD9X5=|Lt#gK3uU4+_rERl#u<|C8i zv5`qaV|7h)YuJr$^f+;n&`_1Ad?N{d1PFFrq$LFZxpp~)zdCQF7m@gsgwyC{0T+~F zG^fjK3JVw&OMMc~pr0M#rI=P;h>1=IB)H%f?7Rd|nO&4137KuhMU`#o;DY~|hcJ7d zOcH$i-ir;-vNkhCIkj|MzFTp|J)@V5loI8^B6!LJ)++=dNHI-QjIo?tC@2Ld##qSx z%5#@H1Bp()y_M(J$;bvWBVnJ3Y@UhSq>0?3iQFKgOUx6ag-t$yIzH#+rvRh)IJ|vd zaqu%U3mW*}%?R3not~o6jEYJ=94eoq1XmaLSPOhZQ^4`VF=zEm&)N8A_e^i1WpAi; zZ>T-^1sz*Bal<;a4sT!sEp5Rq1g9TbsLipu{d*_ex_`L6Ivn7$p-r5v;JFH35KURl zrY2C&T|DEL`U9HiBhTL_4AFB$=mjQd6$!@Mv<8`8VTrLoudzbwc)<9G-rzC4#S?mm zm-OBgWq?Is32+IQ83hYtkOjKNLJgS`-q~fPT{g@+eQ<1J0#>%siEg$)a`Bfnzru?a PT*U~Zn^O@+F%H*X8GQPh literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$dnode_t.class b/bin/jake2/qcommon/qfiles$dnode_t.class new file mode 100644 index 0000000000000000000000000000000000000000..b4a032ebb6ab60fc6356424da67e016d83fa2a2f GIT binary patch literal 1166 zcmZ`&TW=Ck5dMbS7P_@aFSZq{wbd5TqSQOBwe(_0uzi4F)Q4tSmUbyD?E;Oym}vYX zKKbm0nwZ8P;7>3{qtR$ICSINu=PanfR37-gnKNh3d^5Apem;2$AcBh$Yy^K^S<@on z4YgD(mW=R5PA_QXk*rb5YReS~4uUtYY%1Y`VyuLhGI>p{5Zcz+)QoD8KyfzJRlSfk zHG^Qg#k{j>bO z8-y+yyWk>pCUiqvtQIqxnNl(Z&f-gyRHcwsOkLPbr)#pArf)1^m2K#yaO_4!i&b+u z&5Q=p9@x<@qZeM0eygH0r@90ushpOG~0gMKXd25u7EFmJs@<>_&<}Yu=_7k@%>LafAu3 z6|E9Ccrx6+xDat%h7&FkG9lvxPI8YqB)M8L8$n4sP_K)~Gcshj1Uo0AL-g8FS=D(q zgZ%3MS0l>v&148YJJ!Z~k>~y-D~h^yNm*}B$CE5oO;uaq6(h7aR&87~g&@ZbLo;U! zO1Z3+CGbvk@ANuBYOW@aht={TON=a)86Tp}LY}0BJVy&zpoJ`t(JfYr(ZAHzFo(tLQ}^Iy)9+_9lD=ajzw2)O>u>j9t6OA> z_)gud;q+g6R@7{_YF-eE=mmehU(in9;G^&8r#Kl_Xt|BvZhs3w@k4}0g_$=ow@W@bPCe)j>u3ht;-2=g7|xmd~VHl1$Qv2(j^ z(-PidYsWHdvE{1>5+*yw3nRyl?c92!Bbq)TY&&k(un5Z25+T?!J$90W{@#vYs59Kq zpA-q>1;_S$!}jZj)e`|uo#6L(P22SE6J}H80lRHFxwSoCto7P$;pWqIeqV4}B8mXw z8jfL#5J;u#5fDyj2q7H74CYkK65=Ba>uyW98cyOA=Pv8DTDiDYtUS~oR0xUDWP{Lr z6!S=`I765kAsUvV;Vc#iAxF{@vj5aOq)3nQ9*U5}=QS+i0%2@h_$A9RxJ@jhBxPLG zpkho0r8Q)b<*sm$ZVy9r8FE=e1X037*|bHa*KG*5W;85raJ=j^4XbXrro10IgZ?wq zBP6++|I9ScQ)@K1jYk$uh;BGNw<$`z2!z;hA(mxl2%2u&!Yx>a=Lt{6E$--1saWox z1;PT$kV6l$<*6|uDSKd98{0X=*fKd|1>=l}=RLvaBzs=+D}`+(^A^W5;rHRqK&-kM zk literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$dsprframe_t.class b/bin/jake2/qcommon/qfiles$dsprframe_t.class new file mode 100644 index 0000000000000000000000000000000000000000..a562a106b6fdae8a36bda38341ab4c2d5200efd8 GIT binary patch literal 881 zcmaJ=+fEZv6kWR)rX5D9P!tulV8u>b87Rm_5KKu-nxH;lY77r#+Mc$jwlgv_Rrwe{ z!UsyC#t-nLjC(E#k~Gf4tbNX$wf5fY?D_rY`!4_$JXa7SkaL^FWTeHy*9JHHeziv9xUq_n>uPa@`BG>o-n`F1CL6{xe2to00 ziCrhej;jRq$R0XP@sj6(Fd5FpvhOrOt67$C4*I6+3ReN^X2<1b+COuI1#T_Qlb2-V zJK%_OM#%mLYj!_C?ms}zg=>87I;{Ax)sqe*H3<5N^nB$ygrqaF`<}3+Pe}X~ z*55WStugl54|dr7k#bb>$m*!ym)=gXO^Daro;09g-oz|Y1g%hP z8%QIgW09~pCCDJ@g?e-u58f$eD1SLGWA2$1>JXNu^1(Jm zm}>>1d-y^eMVXD3JMy}+&O;>3PKLQ1(n2sBjw8L=Q24&|by$SVv`2DSIQ(cZJko!w zfHi)z#;X%&Wb#Qhm5=Uskyjmn~q+8@7mm6_SD+)qJ!v?~Ex1&Kpm=JH8wz!#& zJHov)I+h?Ln@-oT+JPk0JW2w* z;wy;HrGJ$1wxf-U#?74j`tCXR%+FuvUx01aZ7gB6=f5!9-bp*|_v6Sr=?0-m*E?Af z_|Z{l4l|pgQ0e(EeJ|9KchKsYb|#dAsAEnKPtRTn*7JrioflH=l^zCBkUbJsHtVC8 zQ4o8(XPMa@bh{?m*=h>Ky|`l>3b-!QToMYKTg@`UoXZrYVKnbzQ*u~f$!1Yln6S%b znafIkWU|I_oG7{OQ8jb*ATs-de#<1!{8ng$YCUfIVbj;kH2+g9X2(G)tf|cZ+pr@@ zOIVtCkKi=oLDDu))IDJ)ck$j(uHZh6B9rWeewv!pW=&X}M5fRFah=F|Vr-%~pkt(0K&IKEM=00C}z&9TAoqc|AMdz1uIb7wMW-3glZ>U&{o0?hN OVpY-6is+GdDE|iEZsHsI9R1$%?w!hb@d zAkjkM%8x?*91y3d2d`(=yEF5RpI`1C0IcD&3yUz_6hGyfe_GeAmRA00BM4=@cz7lw zBhL?v3y09(6lcN@g*x)T*P60!2+mGv?;C+igx-Qyu@TBtMc9@$YkP#$i4GK>v-XRG z^k$#}^OZ2ZRPIQrK>J%4MsBqm4H<1LS6Q&24`miM`aI;&Pq3Gks~HdmJ!Fv0Vi=msa*C`kC*reltSm@v!X z{@29@&s!smbe(~a-O=r+E{j|sA@^G3Y7&;e1_RCQXVgFx{{)Z-!TRWjZ7CLE=sg z8WVqoE7vBXi3=AdZu}Mg67f!pyP8Sn-t*r5IOn`yf4+SO&_ct4AT0Ogv1+*|el!?F zp?lKPfl6uzr#g9-S}+NvzC4v~Aj3m<*Xt`kB}|9ezz?z{RdGU~Heu4!Y1Ct2?C+RA!86>m1X1amt&P(>J+u~EPkZf!KX7N!ay%-P_qh%y!} zED*|LhS<1@C0=!?(sszCxV@eCUb8WQNy2PLhw4c-@KpR%dVwO$cOqW~T^Z{fUmlw2 zk!Id2%=5oKY!Za$5f;aaVFxr}W-pcg@s50cIk&hMWwEawvz=_%$kw~L41(PbLltia zGD%cop-xyBx16<&o&h&lmcef(II=d*DEDU=iOnlAo@VretMa-X=PPWdG&S)Pv*H{j z=gt?*pQGY9pHcaDXgv6cRX!+HTSk7rJIc*rekQ1z7k{|;{fP$}xX%ANuY!09Q@rQ7 zudpOuqbAPK6mM`(yu~BVJK`OdxpsX-1XZjsVoF%W8q=)vx6Tp-ivs2#F3^Nwfh?2> Vyhh+AUkKbnjbpBiuz}ks`~|IOlI8#a literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$miptex_t.class b/bin/jake2/qcommon/qfiles$miptex_t.class new file mode 100644 index 0000000000000000000000000000000000000000..72fc7d83ccea1edd7559d6070641fd8c2eb71915 GIT binary patch literal 1414 zcmaJ>TXz#>6x}DcNzy?orI@NfQPea6qV!W#x& z7fghmUB@ex9|x*DXt$Mb;!T`ojV)-SK4AaaC>5 zTUY+Fz1|J+dQH3Auzg3{LuVq`a5(sR*7+a)Nld0?2ezIzWTKo!9C4xW$#TgXQvI$cCjuzA|wFDXrZx@k*psO}q+I`)VdmMZUWxCL-+{ z6Q_~lC9ex6M;VDugljPL?a>ls>)ya`s#|<0g0bkqT+xgROv`nZztFY&ebqPcfIyC0 zFHiUH2ZjrrNk5M)a!4XY%b*oQns(+Nw!S_h=WpC1{aO-SD7pMl5@IL`FqDKBN`j+| zF@tRL`x>oz+A+#Zq4*nehdB3h7;=H%to}h-NQ=T-w9iC=cpDdKF$M47U6#@1rlWE) zi9`tFY2gs>6^v)ueH4nn;L-tRSH`EGr5B4-KUpdKfvfi~9b)bP*Y`1BC>~&8AGe3n zD*TEF-^mN?RqM_MY>jw|-{u*l+2E)C_qm%#3D^^gw#n;v3J98Aa-a?-;&adBBZ z-upJL%MNafk9*R`ssvCnz?SUdiR|GAd4wP3F@BOKAu-bt7Gud*Y< literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles$pcx_t.class b/bin/jake2/qcommon/qfiles$pcx_t.class new file mode 100644 index 0000000000000000000000000000000000000000..f63ff3e25673dcc367eaee86eeb7db56d7dbc0e9 GIT binary patch literal 1678 zcmZ`&TUQ%Z7~LnNgwRupK(E$bELupkLA(}fmC&Hk6p%z{p=~;uoWRh@OqiJB){p?Qw(`cuV5IDbWJyz4X9oug< zeJ{7ua9kCRx9q)YltNNqc-z{wa<1iV=9X&P%8mr&@?5D?v0uxz}{)lH8ABuW9WW%fMEkLRz~9QZ36>QKSSC8%#gImnzs*br!dM z*Jnl!qy2|!`;m%^xQ<7E*@>)1`z@ONl)}|rChJyY37je!DLlu|m9SMgQ~;{u~S!X)0tHF|y*SS^8bI_kr& zUGZdz11z?iH5F8>n#<-#O1^Emt5)D>yYn&`Z8;qL0`t7;pL3qH9#>Bo4x$h5>FU!0 zeG`+bX?%c>QuvVRUz%wtsH;HYV|>C*C>1M}QlVN{yj`4I6c~HCY2!Mp#hHu7=O|Hg|wUnR>`+>-bVpR=(|#hqk(`837KOB{#P?6$;-m@P;Q#q3LolaRXlR}x>N z#PwiwdCL#t6lJdI^XEExNn#lNntdbjTFlB4BQg6{Vl-xJ5@RvDCvhrf8xp5+Mpt>D zd%UKzR3*;FJy;UwVrEO6k0X@C>oMDuxDdxW65Du8eL~l<`A5%8^wvUWZ%Vv@i@c|r zz+l;L2ew+^9rFa^d%muJ7Z<$fc`BH9tuRz!3S5P;UYo$0=KgVosrBKGviD=?rb5-@!r$ztC75x%0yT7Q1x0OINzI(xt0i zdN-RHp88{8{Q&ESxc{QwL+!x2kGhVvF0C_W#>6yU#B3eF?T){~tp!#%P=&g#(YnjM zyN7YCQ;rRu@_pp-0C(_^U#hV22p%kaj~afY^%Ls&84ACkfnVX^DR;Fi`7 U)o*4l%x-+ z2qDozuSoDlenXMCh==}w{wTtk*)%rD$kLuO4K2<-Y(1;KUIV*got0pawG6 zOMb29dztGq+Ew*EVZ|wgakL9;n00=1GOpuQGULTrRSE?Xx?FITR|%^EA}6q}Y7tgD~t83e`>F+76iIhH~z2D$gk_4n7?MB;0L;*J<`Qh+HpgdO~=lv z(v>R5NY3d6_l#8OrYn@$!+MMap;i5VGPhZ-((A< z-_jUGzRR0ld?N8FKI32&#Utc+*#sT?LZSnmhJ7UwkJwR(HRv=wk4t=wZ+ID)Gg0+} zC~=|0W literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/qfiles.class b/bin/jake2/qcommon/qfiles.class new file mode 100644 index 0000000000000000000000000000000000000000..16d723ebbbe8549a678f9081da5a323309824722 GIT binary patch literal 2059 zcmaKs+ji4N6o&WUIAbTy0Sckvm~d!08(e6i9G%z!f#bNAF=xWqGjMd!pzHuV38gY^!d_XvV6PYgXBQRxMYmO-9Uuw>tEKPDQ`%T-me)7a7gf98cAE2OZ_NM8{Q(j?{)-;kJeEXdRmq;g%CHTBwaXy8Gy$J>2!XY7Hle zWke@>Lmwu#Zh4;aS6vYV`jl@mIyY{T3sSg_2ztI4s7-zD-)K&^8J$WQ=PRK{a4Ag0 z>6i2x$QTX%P`Gi8gy!@sqtoMSbo||5OApD(IOOz@(enRf2aYrwDMTY8$@NE*vJWNu zW&oE_#A!7(wbNZN`AMPnXj5;2~F(>>BDQgPxuX%mfRG5|rijz#Op)080 zqZ<1$r+(^5?Ky!?o|Goww4K(^fisFH&h3Ys28>RO?dPa#){r&iG)l`0`{p0b8qzYZ zNqynX(IRDO5{m0P5ts2I$6LzkxQ`0^8s#@D2DDd=GvAH^EO}2ke3h?15XL1AYcw&;y6y4&}cB DrEBEc literal 0 HcmV?d00001 diff --git a/bin/jake2/qcommon/sizebuf_t.class b/bin/jake2/qcommon/sizebuf_t.class new file mode 100644 index 0000000000000000000000000000000000000000..43d9eda8ffec0a29841775918e283830f689c4fe GIT binary patch literal 706 zcmZ`$OK;Oa7@UpMm^e;b`brZh&#VqEk5Lj|CgNk7*F6;?gb#V<< zbJlXXmkjRP5;%0wGo9G26!dMwcF{%05W z1!jU!$;823?AX|zZYE20=s!vl`DyH;ja@!}pu>=%+Gm}PiBmsLWpMsXzALPp<2XwK z^+cP;%wBE#&@3AF7{cP;RESJW#-$a=w7F*19GNsn<|LMQliOmQr_#9wHob4S?pc>u zG-cTnmuMK)H06dVYhUu_+pHU0D6oz)SrwZcw}nOKUBx!mu*1`J+~EzECLB$*K@?=~B~B6#j0vK#2&r0D_7OT3VzmE+7ipN;O)FSgaPtVbT&HSP~5>F7Mz^fBMTO z(2->nd;lNH@w*8lQ>Wu}l5_4o=R3=HPWtQj_n!cUF|QyX(7vX>G=`I}%l7)ZZ6#gf zt!XXWi>`u@K+BrGsV6JCwUV4Etr=xkAe7hUrv!v1a3pP88?J7-1-()=f()9aebXp! z2m}`vG6Lb{ioU{AcvE@^C=Bmb9cpda!_axxF|CzxfhLRQg9-#9w@k})Cy0tIq%^Is zz~E_n$%x`OPAWJdaLkKgnRYVu&NWiiTB(T)y!zH#(d0$o1TPgd(V-iTA^R?x*_ zYU0c|OES!9oMDSuZEh|*wK$c#r`^p79IuV!xsJ<%dQ_ald3I_`v_K+O&$F-g(yy3! zfr~0y&@0gK5AMK4Hh(m0T1KwAUNW3Hy;Si?w99&>pgX2KA6$mqRg;u=GF9EdlIOzizM^v*XLoSni|2ZY?I}WF;omHdy!(WX|@>R6Xp|X zn#~tO^=`K?5^uY z=)yW1W`x1<$&!#>`W5FGU~`NiMueiYju(Afad)Guh6#J6H@aEs&c^7t`$rP>dItS1;uAQQ>CekdU`2IDM9^oXY7Mgrww zkejm{<(83w$>s>_@SBz+=xn%o5+Eqa%-Z>3q`x(RID)r`idKQVs=(OQkP$%If(`-N zMftFS*jZkdUUF1x>TAr0_#9mM?AB}N>Z}^M&N4oR!R_4cVnzp5|0hf zaXdG7#ItlwT@`66(g#UesW*z|Q@ymx-5{xslu=<%Qs@EpmNfR!lcH*BM&atDWyxAq zK39$IF}UYFJ1XE?xQH7qXe5(eZ>*Sd$(B{#26zxB7gTl2lfHQuYHfw=4P>&B!E&{n zTbP++D@Cv38wxpvw80Z?@d`HsdY)h%zXW>eC}#9Fj8EYyhgo1wjQ>XIpRtHhFUD^D za+vzC?hOyn8S2Lqnk)@qWbk{KyD-PPe&DeIIi``9!rchTCkAOqv&HBvRxzy4)ul{m zc33zq<8p%x)MO;%JPk)Ou505hfa4l?9(GuF2;|iT8o`Lv(K8s?leaMQshIdllO4z4 zY6C~C&Jm-F5yu!k+mYi&2ae~SfMcoy$0eO)_N9Pd9KWVG&TESCaI@|TK3m!q4$KSm zVic^)^pdWampi9tLDPm+Qj4;nS11$3rEPj1Hn>y+vWhH?V-z$&uSOKN;SLvClS_{@ zMObHz6tB@0K$(o4<2uXH)rhQZd^Xy|=k=&)1^$O{(bj1BM!i9AMzkAv-`z^1p=qbW z&4#eIqP-3S+EG;GP?RY4AORyc=P-Z{al+mUAMP&SL1v17{64jgnprc%i-p~Na(cI$W=6hm980@r8#tELGzT4Le%!! ze5uVhceOj9;A?Xi9U$y#Z7IHLL-9WDKT|Apj^5WTqqj)+I@$iFjqUsNK-*rThY`gs z%zWDt6Ti~(@kb%8Uw(_*@m&K|qMnEZJ)#da)km}zQE?;Te$f1-`o6)BT7MU`P9L8} XHhmd>Y>C{UPdXxhX^Grqee~(y$h+7j literal 0 HcmV?d00001 diff --git a/bin/jake2/render/LWJGLRenderer.class b/bin/jake2/render/LWJGLRenderer.class new file mode 100644 index 0000000000000000000000000000000000000000..7a47bffd0f7185097dab98c1acc8de3d79b7f5f2 GIT binary patch literal 4566 zcmb_eTX!2*75+x|$P-&~?W9g@>fWd=Cv`~5tqulX6E(JLq~K78BF56#o>;ez#<5*4 zZK1TZ&~i&@8z`5STT2QFv`T28Ji!ACo?tB=dEkMy_zf%;-#KR_OJkXq1@X$7nRE93 z_P4*i_c{9gzutHgz)}1<44;Mr=ZrP;=&)@TbEZ8!bLO5CGb#CQ+F=AV>~Gr7Z=74n z56@baY#1R8H>%BS-ZG00F_z8Ea>;fwP8bmlu_o7)xvaszwv^M*HKTSaTNM@Y)cE9x zhPKI6a$zc!nH!s(($Gnx^Tu%AD6R~r9os6d&}8pKsaSE0qO)M+*UbnzGz29l4Uyxd zQM8;nse)gCDT4_Eago>x|B8Y3x;ipZ@CzSA6;Seb8~0bQQU;CJ>+<+ zjy;Hyw6kheH1swHY$^+72qc*(Qy)ks2Ny+(gE|tpgDIvmVoNL?(s3AfY6z>Pqf(Z| z2##nNVgV}@w7;;PcdWyXx#_G6f%}(BcE60(uQE05Xq26DR~X0Y<#da^ket-ikX4ns+ZK=kA+E8tu z9yxQF$tohtI#$55Vy{S745sVmTjt_^w+dcYsw0v3Jh>I-;F}12xR===d&P5CbZjzHSgM*G!}G%y2s}FyPM04|Mzx zFG;t?{dkuBZ5x@2SvG11Q-s4H-G#ER==h1qzWv0ERVa%&agp1`%H^@FW1W}d78qDm zDgR8zWxUFnQua+o5u6r^b0>{rE-x<0c-==_>*_|2rc3K~)?_bG@6M)M z>`rmC;t1vN!-pXFV}yUa1Nqye2W`-~vzPBaw4)ah#1Q97Cs&5KCjPZuhj!mp+;9#1 zuJF@GGtgaZ9^rEkeR5Uo@cMV1#~DuJdMt4j??_z7O+>i)b=h#DJIXjh!BAqTiU}{m0{Nej2>X;(oo$Gj2$kYE z!F&|f-Hlku%S2T*3Q3Ch?}9Vq;>=>M70$h0oZMUBq*~*oy*O)cfwREORbHp5qo{c# zF?8GEDn9B}=>gWpmT0P`k-AC|sO;#Av-p_QFoOH>an>}BOv^HU!VAC2;9C-2wdHmh zv&gv=o62Z<5guY0AKoS1RanG`;~dsptR%^akq9S-4pou&f<1;19+zPK%B-Gk7$uYm zB6?Ni?IY|1RK}~~!CtCZ@!~#3ucvoW@w_`35p2lG5PFITLd8vrqax(VEX3$KXS1(6 z&=aiUL2r}`oW*Bklu>0{XRo6cMXyKE@oB~rV(9n`-$WPaGIEfSAEKx`bL*?(5pUFQ zGPiI27r8wuqsH<1|CHNf-Y73Jx0n7;xjlg=TdUelRln$s{4yiI@;^p?nmG$qzs&zi z)yBi^E8dWoS&S<(q<1R5jtefpqimB1OBPcN(H-m#^@OW<#*1~82mdvRl~VTgrij&> zB35sTSiLD?^`?m7IZ0n!8qf1hv|$VvAqpR7>0fXeHO=X_y*%Ee0Kbtub{@CiBbJ!c z7g=H@&o20-9hGH6+iVN{E1}# zybGBtyx|0ypW_!U)*(K{DdG!>o3!x``AY)}pIf9jUc>9I=V8~=-`Vax?*H20>aV+2 z-;V3wTDo3k%cw%s`6j$U|K8xa&G(mh!}T0?`34iO;TEs+KN_5CXTFB(Qj%Z&8$;z1 A+yDRo literal 0 HcmV?d00001 diff --git a/bin/jake2/render/Ref.class b/bin/jake2/render/Ref.class new file mode 100644 index 0000000000000000000000000000000000000000..184f3f362440800afb7cbb647ec05be1ad2989c3 GIT binary patch literal 192 zcmXwzO%B087>3^|I#nABO9x; z^te^l9o<|&X5_Z|N&=&{_`iys%}vIIFs|-4p=DljC*apvp=<362z1yD@YtaTAB~Gd Kz=Q=Fj_?aV(=G1+ literal 0 HcmV?d00001 diff --git a/bin/jake2/render/Renderer.class b/bin/jake2/render/Renderer.class new file mode 100644 index 0000000000000000000000000000000000000000..11e329f6803ef00c0a7383c9aefed9639940b6c7 GIT binary patch literal 2410 zcma)8Yf}?f7=BI?*qAH`QBe?V(4t)0P^tHbR^?J8q7sCPt#(NcVR6}wn~mCj_D|SP z^%I{uqwS2gb$a>Mnf`=M|3LqQ_Bm%05;`(dW_I_S^WL84y`1ppo1cFLFos74A_Du? zt^0Cp)R%5i`lIvuBYgugfsS?Sp*8AQZfW%T%DOBB0!GodA4kjiOkHL#u0Man!s zD-b_laBSBOE(k;ihZY55SG=M$kgPjvQcoa(HWTgGEzo+tW)&Np8Cu*0fld=GXpLi! zK$k0nj0%=1SsSvFS@%j#W;&O^KI}KpC9u1J^NM3tDkct~n^;#pe~uOc1A`%0O(h@r zwp+>$H63ZIY#av#x^+4-VLCEb8LFO=IQp0^&o5=1N9#o3m8GkJ96uh%djdV%EOSd& zr*jR{eu2Ji@+qqlG<#3r2nGziFR-V4v`MG3NzSUezs5J}$^|V0$j@a<(hysv9fPUr_E;^}K@RELy&;_O(Mn!M>)nY=viK z+jP`xR$1#N5XGpf9YMu{HJkmgpN8*fB-IqYEZLPn`t+^}u}y0=JG5xvq`=_@jTy(0 zCCjQ?3BvgZf)f~*QOZQ@hRFhs@vn#JG@&8Xv96FFStp57JCndauLAvJJa z57~A|NzCDJH9NMP24`n7kQ}kQqgR13Jl+R@ockns+ zPRoD=xpae|d$rdc*a;-Ut0P2EyFHo*lKw*tftCUrm`nw|3R|FEWmT?PRYwz0Dd9-0 zqC`@5Wpbk&e5I46i)EWw$9(~F)%GjFWY{MH+d0>g#?heb8>$SxEGlTqw`;;v9+JFF z8V)oFU0S85`(@}()3nsmNc3(f-}4Ts0U9RqUezziDO*iqTm6#IR~-6z_eFUPPHdO7*DsCStRxUcEoGwGZX#aBt3TB0f9( z5{F+Ph9vf*2gh)b&oG}6oW?nRlgQ!%@1!V(80{3=_*SPMpc5a`B14NYqWzdwCunsB z$8naH=V&#Ki+o?f0A+wlycZd1gtnk9(1rN2L2q+gugeCG#Hhy$rN(oVU&XU!_!TlQ zxQJ*Vt@^OxmSw^*($1w|Kq<pLM|g^V24BMBNs@XiTt#)#O+??I-N2j>ha%J}&{vqP8GhAY zuLfRx3PWt7Q*YJ?T*GeQ3oCF}V~Eg76_o!-v|Td@au=Nc<91^ww<|ljE#pBA?YHEu z2INc~ZHsuWms8oEUvMiI9pA)(5yho9OuWXQe-aVBJgtx`9FhyMa-EDE*& literal 0 HcmV?d00001 diff --git a/bin/jake2/render/glconfig_t.class b/bin/jake2/render/glconfig_t.class new file mode 100644 index 0000000000000000000000000000000000000000..8d9c57cc22b214898d90f5bb1936facc30b3d76e GIT binary patch literal 834 zcmZuv%Wl&^6g?9sapJmpK?5z%LZOZewbU(-E|7vEMRZY=MK{sJ8H|ImtFaUK2)+dg ziI-UL0SJBxac7b`jml>3oa1}Xz4wfN{r&M1zyUlH1%@jV{ze>lQp95+y&&?F_*EDT zGZRII#)Qwf7x6gojz$yVXAG5jrjQJ*$520m!!(m&95A%{%c5h=Jz`j&k$xicq}oi# zG)&^0Xo~llh!vIQT$M*r@^0vlQ|fiXU@nRXbs5T!!#K>IG8j&0z)*aajD-aQmu)oA zEFOON{ih1r&qfV(8nhqA;>GmsNXVCb6bUtG;`3<0WvK9iEM~7mYPU&C{MQ!RrFF_> zDvnM?{JcMyub~>nItm9-VebEh-3-#rb@2h6mrd5J&(jHABgAk$mpY_8CDnA@&$wZfzv9+++*=W}s2i|L{hf1S&0K5`4@g4I d$md3 znE2oa@Ix8T&@th`hrM@xXYQOkbF;ty{QL!=g=Ymg0vi)~u3F7h=~I<9!}v0ZZ$?=G zuE6RV!kXBZbb>vO#^VS+ zi$#TmDn5XZLfmm}=z@*!x##%4=hyEaKLPAvw*gO}JC&blZ)iwIWQLPCv(i#v8>kDc zPUTzZ6(w20l>{kJCAkg}h$8i=KBF)4{f#%H6JV?@r*nchH zN5PY)HhpI0IA+Q_-sfbonw;1~&H_tcY;GtMSP65(&Dej8cg*3ficWHl3uQt^1{uwy zkyfQ#vz=Kolm?_-fk>R{olb&6|) zj=;< BmZ1Ou literal 0 HcmV?d00001 diff --git a/bin/jake2/render/image_t.class b/bin/jake2/render/image_t.class new file mode 100644 index 0000000000000000000000000000000000000000..9f366b55c4a66dada7feaa88ffff0d53691091ac GIT binary patch literal 1560 zcmaJ=ZFdtz6n-XYl9EoP23o{o1%aBZLbQM{O*3BkvHmLu| z4}Q>dOyS5m`~ZHG$7g0&2*@!xJI^zB=H9t??laH+{_81#Ik*`l1Wq2RAM{)?(0)S) zMYpY*x)x?IA~12N9;%|J{AO`y|4`RMf$^=C`?c+rt@YY&d2d}nlxbV*_`Oj1VO4p3 zon+``frQ%-81YqG3*;&<0_}!@>o-eW3xDZyE%lSz2wMW_mUf#ho*?^OucI2Z*ghUl z|6QI8bkpsHfePJ@U+d`~``WKFjtuqBVL#CImU4Z8(>!vhs&=m*9H=@A1m_4{q+ z*z;Jy21!Vg=rN6i$tBgR2dc}ZJ%M8_)vGD5+fo9fUFGR8)T}JM;QDU3#4_^bLY1)A zY3MAHcu!&m=LM4aLUj}u1#k=k?@MGcW>`VekQO*zaeckrZ}02iuG;tPEp_V3tE#{? z^Vm2Nw%ne;)XU|>O=2ynx~ElO0)HeSkv42j;*E%1l^BoMClV78`%L0^#O5X5jM#!i z4kwK7lElf#wk&ZPQ^vL`@m9ocNSun;hQwsVHYMK1wAuHC#F>ayB;LU^vuommoNNR6B*nQIQ6PjR{O3;VPvq{=9q#8&J=3nQ1ty1GVvU*xeoGb1n~gPz??DZuRkzERB5>(-9z*9wLE`L7CPdwY zpywG%=6^RHNbKO2Kz6s&59)fuHS&;g(=VF~!a3fzd1*N|DTOp=8O{4KyvWS2Ql!`L0WDLJA3nq-&KSYg$F|@y z&d1SzWu|;-xD!WC4p4NQqQl=9H(lqq!f$PWb+d5O z3}rKX`69nLJ}+RNCzW`w3zYvNt6RbaTt@-R%w`3v{NKbHD!9RZuiN}(lv$j=z!tXS ztcygGb;|h@`QJ#Qi-=0u9CA)Qccv_2=S{ZXIL|!6?FS4n`xv{A@F4fi5x(Pe@d*1z T(7(SDwK5cS=6Ten-PQUBn&2Em literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Anorms.class b/bin/jake2/render/lwjgl/Anorms.class new file mode 100644 index 0000000000000000000000000000000000000000..9247973614b3b3c865b070f0a84fb119f73af602 GIT binary patch literal 30542 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 a@#G(jXoXJjoawj6sY$1hq86TG)czNyd}tK_ literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Draw.class b/bin/jake2/render/lwjgl/Draw.class new file mode 100644 index 0000000000000000000000000000000000000000..4218f9efe0d66900e4a5545269b05cf449b88533 GIT binary patch literal 7194 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Image$floodfill_t.class b/bin/jake2/render/lwjgl/Image$floodfill_t.class new file mode 100644 index 0000000000000000000000000000000000000000..8d33ff916421187ed2f6578532f9daba63dcda00 GIT binary patch literal 405 zcma)2yH3ME5S(=!J2-}f@GL1J1Qa>F&>&Il?A+|#YUbWQU*7A)<1{??mbw;Natq*K4_rEWo Uhki5PY;b@r?q2hJ8@uRy0nt@hH~;_u literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Image$glmode_t.class b/bin/jake2/render/lwjgl/Image$glmode_t.class new file mode 100644 index 0000000000000000000000000000000000000000..c8c5d55d6ed807b20f734f4441e7ea0e4ed6a5d5 GIT binary patch literal 573 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%0DC1V3>Z zjo`7OUykAlT}hs5V4#;WsH+)L&Zuq}dlp=WRi*w>JUs-XAwc#l7Qb6Cia+VO&lUF< zimMXhzfn|yCvi_3y zAklL@k-DGBN776S|Dy5RpT%|A4oHJ)Kb3&4t9EM<0@kJp7i9yB~0eOT76_l4Kpbe8`k_=2TaWdg$ ztEefhqShBa@WI1JtYWJWF!hC2tG86`wY}C_dt0l$R_#k~y?yu~_rLa;Ng#;r{oU{P zeP3W^@3Z&XYwx|@Yn|DD;L#_EsEVJnNimIB8Cw;vnvjmSH^tKvl51ABBqz*Gw6tby zGMOTuF?((--N6(}*Eb~vt~niRi#Mja+A~Z%hbg~y?wm7bFRq_?&f>G{>hL@>)!vzj zwP%*Zl3j5FTTcVvY9_TDvw@COqCL}?N~Y3y&cRTVX-s(< zsIw!5{S2HMJ9O4JBvXy6ya^^>qOBv=i0QnRR3^13lS*gNt&U9q?v@FQThpmEv4&(E z=)%XxIy>X(OaiB@O?1jAQ1UV+|K!GGqCJtBihah6UBYC}Of|&=bQG1@RLWGaGL}O) zGYKRPeSwZ<8r~G|Or+yY({pGSWn!7GPK{()9x)x`kW0g{er}>YepXjoLp;4$wgpY+ zrW#|(C9!lup0k7bSl_s6UaTYg?3=6)6(EDY=+Fr?LU4|CC_q8!jdRHHdgC1`@Ol#* zD)f3MIaK8JCOQddLT zCr*@=vmC0UAXuGBCt4Eia?sfh&58jjz6ZZ4tvS*>m6Dl ztBlnh?E>E5P@{kcT9Qj3p7FI4o6YGPhuCgT z)RLSf3TI{68#w}Zu|YZ}T9m+NB|b4o`=PSYDf?dTP&a)I3fz*cZ-xrBLh1#7_z=}! z9ZN%E^62Yyg-zcW;HGC6^rS;qimX_x#li^Us~ozTd`wQde$YJ0#5WzX$S3r@&Y|n+ z2Bu(3vNqn4X`L7ATqPt~=COXWLpKS3!L6)SkVUsRbgPUyEy+c#v8MPu7=)xu+~&~j zGT|2riSo+eoepiKZF-9ta}f%J3?>>aWE2ws*B>gQr(AEx$Wc7PD?XjtssrV2dl7(<+uWagXOo@JHAP&2! z&!O+qFi=Pv`#gG#p0Me0ZJ)$N9pVTadQ!`Kdn(-)0}IZiryP2kz6XV=O=ae%Q%zms z0c@?$W9tOjvkrY<#Kde$bY{#M8$@$<)4w?M1KKYqX-y=Xa1C%EN4O!E61u(M&_ndF zh|)_A{fPcm%h;M!I@#1FvHE>8t926fp z^bpx8jcYgk%%Rt`gf}PBotf-h9=%R|HvM9#-)>i8*fN>eEO|J?`UvH%;13yOoO;00Ebf{D;7Z2*^x|SvM%0~)l4Nr zNH%alH(G=I1^B307@9J!=^}Ku@{h0pKp+5`jEWr+vF~}cY7;o%KcP3WHwdl^5 z=z^&%C%!{Cs!jbI;p^WV`Y-xRfIgy6Z2EYBOWI|?Nlcs>Yix}>^eG*HachaoO~;H~ zUWWyc0EV*RsOfkz9_xhapUH;9CR@0!=U`^0I^e&u!YJmRZHMw{7>LYy4hI;9--eA( zv^S>?r$=@|IM4Z9U^8^&(7>#10L0-!F2dnf#~VQrWBGE3{_7lexR_n&IN&l}>3CbB z9kXirBAJXhJVGXI%z3K#I*)YtC`OE9cgET}l0sYw#}MwcCsGq;tjok_bTv1}(>Tx< zc$Ccud-6RkKO>oHh$TB6K1S3th+|C5x?|WHKF;Ce`2>u6Ow6p)s7rIAo(%y8C$+G@ z&R=wR43CAo?98rE%V*^AI390v1;}+s{BZDMhfmaQE#1-}G_Q2{Byl$|`SsA&u4F6| z5AZ~uWb?_nDCp4pf#Dn#R?itb!#r)nhD#xAh-K4YztxB3wCqBArir*Ie2%t0u< z7DI47u=hq=LR=xj+dL8M>?Di4V!3J(Ml_*kfH$xJ`uuG%MA#<2F`1tm$*%NuB1Vi? z3N@s2Qm#{F%Uxl&=ZekNf^Rco90d5eFm)g#os~|f(tch50o5GJjB4m=3Gi9G2oWVO z2De3Fa?8$cScxzRF`J(e1>2yefI|cMJcpMGW4xHWDVB+uvk;M(`?PUozQExxb3N_= zorLO%c!DzwS32Dmdy=AeOwMeRIAD1IKyfF0s3zDHBh~~Cnn{>D#OMp_ zr#Cg#u4|9AB^ouU!K2cl_GQq7NjTBQYaCw7Fabua0pR8s92LkrfmUVkWi^XW@N-|6P>!s;j48pwWc+Z0YR{MMi)GzzACbigJOZ4F&(_@ zppBT*p2?aB33fQ2e(C4ynaYP?8--&d;TqMPN{?z!wU38y7?njA;2ZfSn>P;xd>1yR z+S*d>6K1Bsx|{hH5JSr`yv-O1LvrG}D3eaKw`g(Qg1H&7rcs9^h@(0a>*MCkOCTtG z2XD3cPNqV=TwD9;>2z!z4A?f_E(}Q|Aps&4bLQx*fcY*5irXayz{7^5Kxd2qm#fvbZlf*->w1|!H6XodUG4Q!k3kc$a zh#cP|$VLlVqpuK}g(RazpCq5vEgYt9k=3FNNlvSuktJSzU2@^m2@1w6+Xw~W07*EfgqA^<6AI& z4}$`@w)_zqUG96_x6}wOSZd;91sCk0F^3P8A3juZ_|S>vMfq1f?%P9^htE}&KSn1n zeT1TW=oC4y(gz+5YRQ33nueRcLgn--P2n%me7=~L@}-pISCP+o7jnEa)2UR0H6%%Z zcOTvjItd^CJg%3fgl4Xsg|@c5m(IXvOdoxz(AP)vF}B303@u$L9W&Rlq|-;sjHx|z zlz^AX+OkS?zg$*%{L1D9-3FKWw)ej+lZK3sG4;1q*+;QpFo?y4g;;%I*~U;)`_;u1 zUsX&ktFEoKj3_uXSys5FV0F#PtMQbOHey}fN6A&kU%jdkL+OE`EL4+`NU%hs*J_$y~9At}*)P+M@hl_tA|-W!y(M7X{z!qb;V{M|T*LdnhcB+k5Gr zqpJ4O1KrHRNjyKez5gA@alj$H;6{yNOOc_93}Czi%dZ`zUmeOzL~*EWGveD;&~PQ{ zWvl2IO41imSr||4RD~MEDU_yKvp9HK7k{ zTKLJx|AfYJ0d_+^=83SH21P4|_AKL(etbbo;=Rsi%ynzlSoQ%Zt7AGFH6m`d3ud_(U#C ze7*GZ>=s_v+aP!93aCXnK4Q~<95F|UR8Uk?$x zfu_)Ai1f`6-CIETJ3;vEl%gKGg6_lUw@{F{A2or8XczwVAw7N?qWuEkeuk&tAU%Jd z9@We_-y`&ZK!1=GXb_*?1)D?=KcM#@-UiO_CjB0^+r-M3BnJnZQmA(Qf&K`{o2eSA z;)C^H4pk5q`!$O@DUkOmO|d=pJbk+LP<@)xL&soFbf&awZuvN~bS)ks8Xssu z>Q-FpO+$r#KByzd;(`RiI&dNR^elAbdDxkMq0z7)r=UNJeyB-2%G*6l;?b~7A8MOX zLKT`!N|UJ&n$Qp88X%8cTxANl;Lf4j`!TF` zmIOfSiau85CFUL$m3%eo7*V%}U+|dnvg=gU-j1hHbsYJC(MBfvr11CxWi;=$e6U9TigQOHz(~7oaYTpHAM>trkbKfZlQn; zHzwW1C%Z+uZ%(>fmYg6DCC`&(>~st5^;lMfZw*pX6E>p5cX1i+P>#!$grB1i+~K|~ z0%MZB-dxe@7OrSr5gl$si+kv4EpmLU;2iB1Pb{MTi>rFMye3lK%M;)hN+L$(%IXmV zPbQv92A(WDjg-xd^D9fj?r>wpUak@x8zUoDhWQk*Pi9ST)*PHIIcV1MX05^5k=a=s zJxc|B@GKQ{9~bCGk)qh%L7Jd)c(tv6BDibr>~^`^Vb=v)-`;-UBrP4L>u;(m35d)^ z5kQD&K=wT|_z~U_5X_FB-a;7p4otzj@Imjv_xz5g!5Gbj>A3)AXBCW87rgX(RFbZO ze%%S(d5Hc-Pto6Ds6K*Lehh6qK)-;g`4zP5*KE>zY|;DdqrV`l`GgDDkAh2>Lp&Tc zmNI-tIfA^q1OfC&)T4a5dV;5^eVnge;#&0v z&r)x3o!Aa8^t3)_p4Hph6ypNwZLUU04D*RG37`!sR6muvE6npT>ic}EHqTY6mut}T z(KK~0pN2phFH+PNo~+Gtm%5OrU^b7|t0YeamH<7aM)T>I4T3K3^EC7vQ0573m1vm@THi^DEl& zxuBQg*%%wH47!I=<)MfwqMLaRPBlUuO;;fNok1mPJYB?RqBl}(C0|1$0tX0%lE;*q z#-AYnlWzy#p#xN}Y@W-3X`I&&@Zs9q?8cD%mj%ok05tUe(CLSbJu;wpqJu!^e?F)< zCL0nZHeB`7gntB$5@HS-2cAKZBOX|LJq>Q7*d_aXOi%P9Q2QsBAkmepnxB87gRg3R z4rmrmu8F(OgDz=Lr7Y;GjiFC>(Wos{Jnl)~RvPvgpS3j1^B>`b`@G?bgNDzMVHl$q zd->ewsj$MRFe@x)`GVyO7CemM6OD03r5LLd&2gsJvBp`IVP4j}Ktf&5PmdD-Sdfi% zCxm%9BIbM;TX7>j6vR}ybd4yYwX^Xgp5FCU)tE4s=lAjoahZ}Lorv^E`crhD8+CXY z=9ZNbW(E;p7F0wm0ayZbt=&F$CC>9=>jx^bwii>$!60FoS5bqNxiJdYJSaeF1nSe%nmTf!&9H zk{-_{e`NUZPpDSe5~|rEi&}GFXSDEOyTLI;aY~P>gGV(azEE57M8e#qm7e&iaoTT+ zmx$&|-_&j|It+b(O@R>&_3-uZ3~!lkXzj&Y#HDV?aVu0+lUI@l)>K>4)B-FUrF%UD z=_bMzvyWGUYoX_=5%)xV2z-F#G#$rO`;2I~hmHfrDmSc=xZ%ny9`qun!w!iy>dLPr$>VG2YMAS!DD*cItUu-fUN2O>ogr+L%V zG90TcGu4RN!RlZST^=cn1e-TaDaCMUW=d(<-88JU%v`@>V>NQ-U|FfxjhOmEvr7VQ z*jRCXrChgJ?tx5RM`Lc-JY*OVfdpx8*g9kwp+UofZkr>)P*X#7usdwHwwu4b|0~E) zB94qXuHPNDy?=3ch}{rwp(Xr4>!4KcLg*@H*x_&Djmfo;rW@#Z-b|Hz6HVk>@N0lu zsgAeMIeZ(PkG7s~rvz_B0d*U7@pef24!VTzhGgE0ceg#X9qkT0Kfw3Xi~Ioni65l@ z;&0R6P(5RQ7!GI`J8-fEsEv)_N8p6N3+MYN9Pi_BxKF?>?c=HZG#t${d;vcT+50|k z0_;{@eY*j(`*kS(Z>S|f4s+Uqp5!jfN7Fj!6S5ul<181UXW+~W_$$y66E|7OlH6N3 z|4h_k;PyBKCnb&$FPUhMc7%T1`a-Q=c?dop<4d4@0e0y|mefCp;A0nRI5UtgINZyZ zVQoHWcOPGl-Y`(mbC?D6BE7}kfGb2;^E7`Ay&^gWwN25|5M4%Nwd)Kcxas4K7z=Bc zcor4*qZ8KNBj>N6(YRdBzYOa~sy+aq6m%LIdr~9KLiNtH6}svS(xCO_0-`&1@^}@w;#029qfpZk}l?e=*R~H-EvnHD(SyL zQi-|ydd_|!`}PvZiH2l~(C=?}`5+&Q{^-(NXufHIWQz6<65EDh1ie2URGAP2iTGu* z_$M?9Z53i5M0n(7hZA!mNfSMhgyF8#(UO-P;#WeSU}@P$5EUpM)J}WbVL!vsA}DL_ z$CmzHzP4~OGNOPP=Ii?S28)n0$MUURFr1{uupMl`Pn zH51Icd11b7L3bXzd2WHPb$kCGFnY>9BMQUi>khIT#Er#*k9LD{n=i}-AjrV{LhB7)JcGTa(xYi4W}Q;nhM=Ll_e5a zHrKzgy*lig8*yiBv- zghBlPt!qb3V`D7!u752C7YyRwh;vVd}{Vkv8-PjwW6l1x3TV@BkX}6 z97@;&yQKy`+vqe_)5%^9M5XbQG(z^A&+j7deh=C8yZ9mJ@8L!MKo$H)1YCcj>HI#; z<`3~($iE`!`Wu3mztSqW?hfUn)yk%IXfHu~r3%osDo8gV%f3|=(^fT{?okoCPnFVs zRYt#8U*KVC6ql-F_&9Yek5$K^GI2bgt4`o{JYS^7@TF=j->k}c3)O;wJXsluvOjYE5)nx!VGIyDdN ze07F8SIt%_v}ufNP-m&HtFzVBnCVdq)YEFAdL7U2sB_dG)e^&}&NcGT2Gx1SacZeC z8toXh%$TN@8#B?)Qs)?FtI5Vfb((P=+D6rAw5uj#wQ4ces#V5URnoXzwHX^#%D6#Y zXxyYajXPAvxJ#`uzNOX~y=uL&PhDi}R~H*UQkNJ%RvV00)uqPI)n&%7)aAyT>Kn$p z>I&n1waNHUU1fZ%t~UDBji#Ztm_c=$S*-3b%ha9bXtmXxpthOS>MnDMT4SzI8M9OM znCsO2<|S&Ud8K;L+^oKBZc`7N_o!XweQLM)pz1XrQhUrjYOmR+9y9l;$Ia)|ljeT4 z&wN=uWxk@GH(ygPn!i>rneVB8HUF$$Ha}56wk-7%YnXc7nyh|lO;f+J>eL(79QBs9 zRQ<+kQ2$}AQg2%s^;_$!>K$u?`ki%!`n`3Xdf)nvy5IV)>al*HKGe0Rzo5#7$RZb+ zpr?an8AAx(C$%T^zKamlFpyB|s*!14iAtE%k4$49ZQ)1Jv&_w?2kD-%pT5bDVa$in zAe8MHw1hTb%r;-cZ{c*$_yZaIIL7?OhZOgE<}-36{f=6^F=HFv>uET1H80MN-Am8tH+2E?E2z84JG%gN8V0IfQU|+-PhtE> zksOtWN|)|IX3p?>G|IX^8_ZW&cV>h6iPp`$4{HmcYj5l7S0Oa+EnVpSGvM#J}P2T^9u7YB>htJDuxAk!|T!Q_)(A4&|JEYPeS@4l{4Z-Z%jEz zPxKh%xmNcIA=Rhw(|{|2Y@f{ELoZ|&BUzgvdzkO#dR7BckY{8}(g|||)fD$57A^FG zWE=SxET#9SOHUGu51kYcJ?ThxFmzTHXO~)^G0EPfLK;(?Ejzt_(6)M7>Ry6H(vK^$ zWv@XXfFMi376PUd38|2s(U0<`S0Nh&1&+f&rQk6X?z2(O|A>6@=E*A=9)eXaF?dSc zMN#N55*~Dyex!8&5Y0b-+4=wHFT3=gy{sf&pL^E=p~jJ<0-52-c-2>)OUnjW4`zF; z8jziA;x-6@-?C}GXCcNMj6;thVLb@Kw(+9P7z!kS2La*LV)YOZKpX0>wTPxR^2$atB`huq~V9sW_=$3OJ`>C-P}u86jD-ul1I^l`L~l`#~5h-8`b? zDr~rzHw4Z}{e+s_Op$n|#|Cj$*B<$L zhI{{0Gh(oxjKF~Pjy%UM_ZV~(1-1fX$n{t@*_vEt^#RTk#{Y3xAF!>@KOC7JhlOeG UN?``GY}353IV`Z}^!V8Q2HiY*Q~&?~ literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Main$2.class b/bin/jake2/render/lwjgl/Main$2.class new file mode 100644 index 0000000000000000000000000000000000000000..e03cced677563549a95176298f97b59116c337bd GIT binary patch literal 594 zcmZ`$$xZ@65Pi*{1LG)&3%GmW;F5^pU`#Y#h#C{{AjT_chY}ixo;Wiozh&Z*c<=-K z9ivBMwQ?{f9J;IO)vMQ4)o))fuK>zev5^p%>&R;=mqOA_3QPW7r{$MwQt4vZMpB^g zo4)aaZa2`SzOhm_8?nG>+*VO>no@Q^CV}m#wn~!`w z!@d9EWDNF`5g4)Fk>%Ls8iP(E$5vnp69bhUwkDU_c!2YS>3sVPTG| U5}3yV+azyn5zFj313h-X0muV-=l}o! literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Main$3.class b/bin/jake2/render/lwjgl/Main$3.class new file mode 100644 index 0000000000000000000000000000000000000000..bbfec63a26144f1161466fa1fb689946b7dd6a8f GIT binary patch literal 594 zcmZ`$O-sW-5PjQJ)5h4=`c=O@^q>{2D2SkVDGEaCLB(rXld*11H<+aA-xB-)5B>mu zktm3>wFeP;*qxa-Z{E(#zJI^I0ocTnjg-JlTVB&ZeCD47=WjnHrMp&(Fk(!3OKPQz~G(V;S(WX;0X+wxX2^+0<;7%SasP;wRe zE*6Y}bJ9Ga78g?_;2vpBQ7w>hOfi;uYKwnF6bfc^_ELOoWEjt~x5KePoXXl0UoUVU zdYrt$dKrNs>jMRjU9K_c7>aBK#*yo*Y_m1FOyv>IGba9NSf8-1uRj`@zJ`Svu1aAR Rb8OSRv3V@A=k)d1{Q(jYdo=(6 literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Main$4.class b/bin/jake2/render/lwjgl/Main$4.class new file mode 100644 index 0000000000000000000000000000000000000000..205955e7d28dc9e73510398151ea2604d437060b GIT binary patch literal 591 zcmZ`$%SyvQ6g|^K)5fT^K5Bh0y6^!;N)bVEBPv4bLd9(v)3HuXCzzz#-x7R)3qQbr z@^PnTAwm|Dd+)jDo}4@L@%8o&poV1&IfhDy--?q2=a@A@k48zHdjH_ED;bmy-5@}B=nd~zxtY)&-E*Z>&uq6s$7;!L!VH*ZU z9atD+Fjh5T+>=V2_PSRhy5LuVU?_Q^&x1=INnNL)sZBA=XZ@^NCsUT_3%{2L8`CIT zm|-YqY~Wy4TX2rO=6MoH)sCCj4EA~0i+ph;wT*(lt<4U<=VbCw`9T;HuOX6~u;pM; zkK1R>GtriDA|lc{QA$Jy0gq!5V}({W=s8%isQ0EUN5?{*@B(E!RBOau-*~3aE1bsx zXIx{04#SY~i6Yew&1iH2C5jA_7)w>QDe7K+{R#F9rv7Od->^*l(a5J71}Zd_!yM)* Pnsi+YSfb2M^(g%TZ?Jgu literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Main.class b/bin/jake2/render/lwjgl/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..2ad31a93acf719bcfd83521de881af2a65fdd274 GIT binary patch literal 26718 zcmcJ%2Yi&p7B_sRJlRb$K*CajfCdDCfDi!@X_5dDlnx?A4Vz>W7B<Cn6Qmn%YFTHX5%g zu8Evj7pW>mUs)$s#3saJ@x)y2d(!;5=wl&zM{z-EZL~fz*L6`ayAYkAbY?tSRXa1B z2vSRK#3`?Ij4jn%ZzJNRYE9nk~0jnTg`6xKG5rrWCCVS41pYcA~gCoT!bK z#y}HGaY5}$>k`=KTKpfaU5VZGM=6a(Q8dIA+t$X%^cNl|Pt?`a)>UG>MShzK5PL{z zbu3)v#_N#ay)WlID2>-u)mq}U2HTYum!Ov=#ntiHO6)%1a4Z_GNy35pV(fNR8S@e- zsOsyg`MVkvO{-5ZI|&LVisQ&KmD~GUQ(PIYO+-Ou-kkdIkg8~WNKq^vt}U!9FOMX! zIiW;x30T(cWD1?h7+Ic(l$S-y_o9R=wv=ec>xwKdje!7>gdMjPJQUoDImOCal?ejv z+ZF-MZX5aq=P$vW+EB4RoUmhIO=XGja=Q;vJ|Sqt1(pZx>T9Yakup?(G0W>>u@avy z0p)uGh?>{=T*gP>PjsCU;%)` zu~>Y0aZS9uc6m6#rxIoLkp!5jIBd_9piU@CGFdTrzqls43Ycw+!z=t^?jVKjFnOF* zQMk6YIPAu5Q&zH%vQm%`ZNb>ZH8{{X{`NqF3;fdRF!;VUQkLTVBzk3C49uTA5h-+* zAQ;t25Kya!-%n}0vN{@zl(ktpI1<&dIL>n>G9}Skd-@$6dBaL9@41s-mVm?p<1l7Y zDp~ZpUtHPC0tgwSEu8Oy`;y!>_7qdcw30EmoJZ2MVUQW5Rik z&ritl+4WB;k60cH*DUd2!_~3y%1FWv#PqHSL(*fab^*~Ukc*epcEj4E#NQ4_0&eIR zgk#l9!h4n0fFM>PJ95P!@Z9Tqp9f1Y%0q!M6;C5;tgsI#j;pE#>^iIN%?LO4d)ZJ*b$3Db|6R$Mr# zU|R8#sFl)7lrCkODU#cijjbmFM0SBa) zMH3OIyg0_{R25HDLSn80Gqx&Dhoni$#I$54)F)h1gR_c;H4~#XtVY2j!7&i@RngjU z7`6X^d4lu=FkJ?nL+1wQ@7NqGKq1j9hD^Z5))+dE{(&P^7OBBB$_kQQ&Vi1qlbiHpd)XwFuGSuGXt})cX=LG+dOY5?xy*op=y_V+0cnD_o|_U%e`)>#^wHFsFs4<_ANto zuIz0?^)C0Wq2-hoppzNl14Add+((8^ak)n#+A{=x;Ot zoL#$w<=YPJg6Ydi@to;R9v38bYJ0qQ7|M)KBQ!@l6i&h6whO@0gFF%!U|VO~%uL@L z^d}F2IlGu?P{3B0ou#1t`ul_KX%h14eEdST;(Yw}mWVuzJ>Q_f?Bc0xtJyU|=wfw? zinwvR*~K%_ZlaZ&?Qg%is_gnDb~xVaq5);0(~yLh&}kEGB;$+l%bK3Nt9L|54QEkmY6 z?4(2@o(PI=&JK=a#8fyW2Q4omO@KlrZ_%ge?#MFWV*-|y#t~b zsM1<4SxeK11E~uX8g4*!kqpsS^b3fCQiyesE4TpGE*Un_i2eeHsXgXAqiQCb`g5X8 zrXF@zeNJg3@J0{7WlzHt#18Aq@Cqa%imtJrapu#acw&;he58vZ^mRbw?g_TPCeuhBMucKz(p0YxruO94I4x_Olkd#iok8?T#Pj0aFzsV zP-n474fi+Nh%sU;cA_HYW`h<1ZebZzU}2aiGxVJ51WZKU&KOg)z)&yhlrAQSNdYkt znz-$`bjQ`;+IJ-ShGa;DvHP$%I<{gae~SWq8Q$NuKM}TNWxQ(0iRCabYx0Xvevj5$%z~6snAf z^SrQ+zH!5)CmNC9QW&g-@GDetS*;Ou0tcPhB(h>cJf0{Uim^RxI&;Yiu__>N56=C| z4e?24#7R7_ptG-vSMs4b#fa77R20s`*^4Kp72vGmTtM8hz~jzOGvaTpo2}p}onge8 z%(-wG%(J(tVIbfNakdfX*rhLtu=wPnbB#EUi@fF0vf3rwcC8WT)0rr#h)rUnzqfw` z|Hoc~9@UPqu*|R4%U^)ar$sKZI5Ofku^C2ZX`E$C|A_-8GU^>h+-ZwpkL!Xp+Ta~3D%Q6nDXUDdTKt6_T!0ZVK*dO+?eBZSL6 zZNw3ng?JWvvoKtiYx}Vc#B<_>fOtM7t&>|nAzo?3i{d2=YIO%p*Zxyl$)A)m<7K{L z#H&09gF{xFTq+apbtB#o|FMLd$o{Np;Tqfwb^nD{{X?-ab0qDE8hylergvZQwh`}$ zchSrpg*mYFAxwkrG&rsFzM=i8XS(=Md>jxTrHpW&sHyut4(um11U)%VgLU3g++f+Ah8kw}j| zy<{3w17h@T+2E$g-Em>d4$noMC*{bt1PVi#uQbN28$_$dPY3-LE#o*oNM)JL2{ z;Ei@nunF zBQYzPVPvK>z)DINYlpG>p?m)+K0oZ~Asa9cx1=@o+`NO4Su8_w2X_*Gg7pkq6Ej16 zC_5S%l3?skAfKINK~3Sx+K9W5U{m|Ix^c8rjOMPp7}-_kV9h?gT2E|YtC_WGW;sXh zXXr?`xE@CKl>7U~8n@>;*4w1}v$&-lGS`UR6y&jb8+oAYV+9k_%DI5qI+!vAHXvgh zWMn^HC|p&(3TeGkkaU0%Z!$tA%vSh33fVKsq#k6b)XiqFkwaL>U_n#k;j$@Z&UDca zH(=`v`Kut8b5G*yVSK@Uo)fL8g0rXwR*LA2lhe^`V!U={0uHKD%+oh=ix_>Tk+Zl1 zT?Uy8StsWhd8i!0RmT`Pk9!K%_|!=*p{}}!{c%k71%~?a?Qw@(WaM#d*1?+-fm;+d zabJ0Yk;Ot|bT|76@oG$QhYTB8!l)UHnzRD@$}%G(5=MY2V8hTg0ogMB6LrXlR7X;aVP|PQ1)IL%-5*>2kST8IUmi z+gd&TmCndjb|l}&%-AOzc?y>W@jSrpdJMlqo@yj6ybud8#T+;O&Co$^$TJM}qo5wQ ze*FgK@3W0OhpjZI<_YY_vxk-YIM+yPREQP4ptVMxFE0RN!8ZnW@EOY&$|!?xob5$< zkvKabFW%EuPa>dSaW;2;nUR*NONWFfVO<{TlRPEeW~F z$eXQs054oRZI-thc^mU#b}2Y35yqnvB(r^g;>q4_CcpbIx#KJ1lK{mR%C;rMp~)nd>nlua`G)qbH1fk{huyg6UR-+c6jK zF!E{nj4g(r!+MAKir-4ww(=O^`Uu@A|83-R6844X`+q}iWV(A(Vb+1;r-VkrZ@OYA zzE-7SG;GaD|O-7 ze_-T?Rs=&vvoTUsS5?a89~=3J{M1s&me0o7hPmNkqj-}rUJ<*cnL=L}nP)B3q(6Zv zy|FIJeXbC6MVKg!*VJGxz-EdTH5;3>DEH_${TLoGN<@bVmwndwM%+#s5Ef0sh ztRD@HhTcH#XCpl8*_6K;TI_Vm??&$8dBX2r1Q)2A{GUc1OJ|~qA|uDToHX)2m(xb1 zxm=nN0hbFJ(cp3!Mg(2X80q7+HzM7YWf}Pyof%Xe1@-AWJemvUi>=J%T*T#~xwwJl z_KoJo_z5>7prG@!+$G7n2jIu8sL4|qNKBPKC=6&rNL+r zLiI3|Zbg=Yqapx(t#VcGfa;YRz?VMrrc5;IK-C9FZ6+LQwU7q=lbqYyJ>yG=R--Tz z$Z|}=owp;W4xPvn?A)~NzeK;`(~~yd&w!iM!A1?{GmmTIj705{xV5lwOsyAdDnF0$ ztPe3%KqK{pF4m$;?zYuWyg`Q=`KA1dbB7rPtAKNd8+8!xDeeZd?K^iQ5maL!6Zi!# zsNjSb`59`wDhw!G9bs`Yu~Ozd95qHwP>?hVM_16OeR!s@^gVo4*5k|lINQK_do0z9 z42=g%(_ujx!|OT9&=`gf52|UH$RR-*#ln_hVrU@)ix|M` z#3BZcV_?0Z;}|%efvXH1&%g-`Tx;kA28x5UI7s0jl?16YNNh-|O@_+2j_n(DtDy)3 z^BK6^(0m5w1l3)9U9e8CVV0ct7@EUXOMRRyQ~+1%l$p~CW)^dP(j2=i zyfZ9e)M!xM5AKF0XJ;|@|A3(=*DPfK&kRc$SjND^hL$lfk%7kyO=RF`2A(u@Gy_u^ zc-qiZ2BtB9M}cV!Ob^lwhM^Z`Fg!b`UctDSVqw7q+sA8$W^+viqd^l?Fi_6Ge+`v0 zV2>K!0%8Ev`!KEf$&TN-okn5Q4~=@CQ7eP$6TAJEL+~h2$)#06^(8cc_470KPD54P z*EbLb*2Tnr_<;HjF9Ytp`G!Ty!$6-yGSs)~2Z%NGBRe|V8XzrrtS!~g>eqn!1@m;B z*+Vy>vdpO8)bBX>1!ZNpmRH&b_aXZ}zpc;w3ibyA85Y+7aO)rF!L1wbwU{)V1b;c{ zp&9B=^+Qlgtke1m>^imnA5Dg3XvIwe);vJmiG8&Q==A^5W_X4UsvnYql?@ZPnRPp( z@fZhA#mLd}XrwHlvyxZn@bcOr6Qh-psv0~+X6O#OBPgpwtgWpDNJ4iux{HPz91j@L z%4)WdxMR%1r&yaVMo(EdUSRz1TNbc7yCo zOwJ4HTnJU@^Wuuws8QB1<6-*`$UQi>h2wJTsvu&ccvFr=a-&tb{HkP~F&R)>x;GS* zcqyo%qYm76Pthv)*rU#WlM&Ph2^zj{M1;)5%5o9c0~3Q?AGx*h+?sHC#0`cmYMB$b zzAOr%>3cugk_VNM1Vm?=d-Cz=yf9r4*7*TF1UCLY`2N^%qT1*~_-di%Oqm|k!(bpI z=%X4wwcJ{}cDz0W^`Q_sZu+^HBk$;_+#{#vvhdD;#?yxx`p)V;4c#}&WEU8=8-D(Rmuz`H?S5&jB&t_NJEKECY32x8Tg+@=XCeyS?RUMZ?nd?bL z7ioCm;rN5rbUv??F|voQOs7qHiqS{uqrrRixKPCt{wVWA>=r3_VrPV%sQ-b90QItB>JJLp6jsER%!x!IZx1q?K*scRrfC zIF`GZ&k||E|3+MB^dfy6$W|LquD?^#gm2Y1tb$GY1fz?2`5l}Xj3fyV)M0xbi)Ujw zlV(rCf*8Hj=rTrc@9(}(uAt`Iv|aq{Ia6j#cgRbOjxusK9z@*nuSwxA!;rv7(A}iz z++q$0hW;y!uHr52h&x$LWCloe^!@py)=*2|4vp>c5w;2|)wVg{zW&xgJ#L46X85q{p}<(^{nYI_GyQYWa_ z;DppvL>0k~4C>QCWrS)}M#`e$pvJ`EmxrYq)MsP#irA`XX<1PJ9Zf3AqDsK<4C;TN z|LW2eLxcK!o?(RFnH2RPQfpAp()41ZFJZc+If=~Ezs%^%{Usg)2C_@!@+*v9uQvb{ z?tqF~+`JHwF@-CxGWu$L4Jt~PgcAj@9@)`3A*eUP04iWPdA-p$=zsEYXWR1deQ@L6 z2Y}gbPt!7}Z^Gqg@ZiC95ET`<2*AOERw`a8w_ms)q~6Wg94Imy$%ddZChe_8-^MB< z-36JImemCH?buuNWJ|cS2@~g_F)Z_Jl)`NUIn+{oH%@}%AVgN~BSI^v?{ye+j-2vW z7>y7~=sLnrTio;i>JKy7A}9~&{|n0s@N$mA0{(pv(Z~AO9P-2=ptXs3EU35QUfFu! zePN*kye#wv+P-Sr4D=x6l0Qy02Nkii*^grj>WAD|Zh!s)3u8Tkn;^!52M$kMEwtFP zKVUv4sBa4y_C#niu_szh%n!#)Ms@}DQ(&AVb-<+vYQmM1AJ{Q{8;=pxPYddYq1wzH zAzS;v#k`(%+q35i{u2K=K?7UXv2V0Ct9ikN0U+qOxOEI+P`}jr2w+KjVqkKwxLw#s zWvd}rg~CSu-6_sD48bM9Wp5h#!{uNn|LJn?7$K2^%6re~_gM(Q^#hgX;s*4G(9|t3 zH0{{j{1tsyWTf}4$$&PY%W-4ZpWw!>KNWP)K8}C#u(!Haw^kF$_{OB(Ov0x1@yDE? z)ctr27|VL6(O(OghV5oYD&zGL-!|qYerrUATiEwTWV+msM*qax08u&CF7!Kss+nDE zA9$0uZ~d#$zwxUT;xQQ0yHMH0F5X3Us4V@7UOv~)>rZbhUfQoD*B*Pbw*cpl5O z_8co5iQ{dJt*5e}2P->>-7lIwWBOc3XfNG(8D1uOLC||RRx^dqU4&KFU#O;q*lMqx z@$drf9A9|WaIY>rrz|5nz|ugjqY>FI*U5;EF4x6~kR_>?W8~{h2n9>b(h=gnbqo_; zuGDVmA?^v@nIGvV=uH1O;`Y9%FyQ6leUrX|*WK%5yuRK+;0otLpPr0PWSbLC^diRT zZ@dBQnGeBJ%a%{H6rrmL*FYCm+t)*Hkns-o216ORa@?Ab_r39Weh@>veB&L$nmEAG z1$a)=qt~oC4Y~}5uBgC=-3|3%w>kDXtq9>1=z)L3FqrK%taM6M71SojG)8Iy-sqGc zKIv|8AsEn89E4HM(z6(PF+CNMp?kq6jaM?5jkS#l}+K!vT25&B3jYHh*h*H zE=M*+oT5z;rD#)xC)yNoi8jTPflc8JwJF@7HbpF=O%Z5l(;n2*rg%@a=>e2$(_Vgi z1R7enkKZp|PArU<0-NHUz@`X8v?+oRZHf>?n<4o$dF$)@mw+7u2bo5IOtQ$#J<6iz0a!eM1oINoduPm@jI zWU?u|6E=l|$)@lr*%YsZHiak2rtlrv6mBD%!jWN9_%Lh=_k~UIglbc`FKh}Ql1<@0 zvMHPwHiZYqrtlis6b>Vs!lh(W_>61{Cyq_wn6fF{M>d7$$fj@_*%baFo5EFOQ+UX2 z3g56z;U~8#-0e2S`=d?aKC&r1M>d5E#isD9*c9#`o5I;+Q}}so3Kx$};bpNYJSR4V zrvzz7j_kB4;yP`Ls7{+ArqiZ~=tN2!&uL*qb6Oa&oHj)yC(;~RfqFqJk(aaz-w5io z^$6)i+K~e~ZHjPCo8oQDrU>P2-J)Q+${R3q^eeu~ z+d`M+sYY7IU+eknO8&Zk}mRL)D~(vrDGYRC&bkhVZ&&RU@H@$gB@oYhE8d1-Bn8>xBkqWkwQ zdSLIOZFyN)&9uFd9!KVZv_^Uo)7^pDJ<~|f?v4K3-bF9$UG&o4MX&5#^coZGjlIj? z%;UYnRQ_u-8IAN#URGM#WAvVEr1x90AMV}s<%Pt$8<0@9eoe2-9Y;d+?KYH(g$rzyO!E- z6 z_Yi~7o3er>lhQh7wA+QBPi9H1=3tg6R%oq3M=X8D3~UgCRX%@f`|ag7i$ee&rt>p1 zO|uxqd6i$EX)=Al%dafg>G+; zQXd0yr)Our-z*jyWBN3UXe4tgK%4a~^ZzkR8OqpaKXK_De|KIvy za{nLu`8&_a4)8zcWd2X<`hVF^v-pRjR$li0f=Ssz_e#(mqa4pX;aGYD!a+#vhoANK zruL!_*zzFiC;HPNVgQW*vyK6q7K*_%MdZ_QVkni0;j~m7N;TpzT8Vh+)nYWAF2>Lm zVl00BG7i5x8Bb4$0(w^z(vJvU%n*}s(%=Uv2~o*+h`FLc9D{JmW5q*azU9l|j^mPiDIWIuQi|;yd6%#1ju(w!}FHI5&jtzF>3OPEuG;M6|glNS_!Y5wvu z7tLBUYnIK1#AUNKQAcK3pbzGni z*U}PEN7Z6E)rl2!HPRc!D*Qs~WbFMZ)F@Wd{o+)5AL(b}H2PAULEnip!3Ss2@8axM za%Pvmp9wnGib0VSgM-`eqQgX9w>(S+feCJ_9`TZr)L|) zmhM9v#U;s|WSNt;iPrdVHmyNHdw-v{ZlVf*6Sp;r@xU4X1ZCtkiHA1PbcPzlBe#Mt z@HZA8mf8xRe)tTqkJFfM3wPWBRYzhi z92Mt-LoTL{;u1PQTuOt)Wr)392Tr*HTyiDN5m(VdoU9YXH53*b=?rl_{X^V97l<2a zow$iMh@0tpaSOQSHrkAS?icsaHgPXKg3W$jz_5dD{;p_-9dsZ4Djt9%V4KJk4?==$ zhi~FxF@%ldS_&0q{$F+y=)HaL>Q;fc;7(!WTIpRHmx}%-a>+t_+KOsIOr9Ium|rs z<;A<~6r8WdSYO>EJ{Sd??bA_dYDBskk+Df+bn`l=pOFsX{N<#UY*9;gq-H_1P34y( zxnJck?aQEcpw3@f(v`*2HqRA!C>R;&8VHH+F29NbW)o!^hQ8=|b@% zZA5yV_>OK6KZE;z1?TNT;Nc(iviOtUMl|q;;&=K)O8Q1B`dNDLVWlBnG$;nkbo^@O zOL3gc6veWgh{*OLCOe2~gg-Br*_Pv~9j~Nx)e4R-1}80~UHDlC>#7KSi{FKGfj~Kt zK7vH+0$o)g4#Ok-5O7)%Le-@B0$0i#=w6K91rDP}=n|>X3nE-ZNP0-qX)0WzY&>RI zsX3MOZUj(d24IHcya&Wr0j$#kyJ@j2mlArA%cU(pQtrmZV_z+Bv0+=?S)V&GJMQx2 zyapNY&E*Pg?Un0kahd{KH_P;pY}YK?2efLI+0C+Z%K=DgL)i^2n`L*!TJ_lmiF_~H zsINUJtvB82q)k>*Thu1mzl8$|aUUm{Lm}Cny2~EaOZKEZc>oQTxinn%qEWIpO_Y6T zraXw|$pLg60{KeiK&p^~s9NUJNph&&C3`o5L&3=fwiMDx{!Y~y=pCVdZtda-><6#? zUaTFqCawysa*_kJTf8COs<-sAD?`-doJj9vj+|XJDP1Y)C^4Jtb zSFpvbO&gL!Lvk4Y=VQeA;cfH7ljXqSeCo_NnmIFhFXQe61V)k^iD1CPshu26IdTkj zljGrPNA?on#$!gO33N7TF#(zOM5sC?~rdzPGs?rq?WwZj>|p3YRp= z*%vj+xz<#?Zug@tMrjB~D5=4e^Bv$1uXpr;u;zl_iQv%HvBH7j~k9W{w zB=_UPL}_l8rLMHXTfKp{KzquijWWh*Rims%%Bz)$CRsZ*FK=LjtY6s3HA|5_X#*9x zdV0_k3%-Q!N}k4Fr@K0=ay=cFZL)EX4aqaz|E5{;eG^Upj@kXA zL0;&fOUhh&sh_U%i<{*Y*#*=ruQHh-c`g1&d)sAY%Vt|&lsuC%?fabGXj(ck11bb(w?H^>cOgsbU3c?~@#uca5|M*3J@M?2+> z^u4@ENO_~kKumlGd5h>IH;Y_(yEsVRA%@Aj;Geo%%#!zr`SM<9#XCibY!FLiqo|Qh zVx?@hOqJ_6#Am8wX`S4N-UZ#=` zSQryWuOoLBvO9_Yxdx*7IbJ_|kCOk4H_Mxr9iE<(zWngaoXi2s4sVx}j_(dR?b?Bk zcQ(jdme#M$@#3YZ=&)xIuyQ)&WagyjcsYS)xtR&;oP5^nBOjq``6zXfk3*_FffMx< z9V&OwWcdsT`>b8)aZt^ePf8-qmv_m#?Y!s9dywN>1PFy3oG8dOAQ!+Ij+Bkar9<5p z$|mG85#2FHZb7ac^~Mdh8MzLa48pkG+T}1{!;>x!ckJ=^F@EZjb&DZES~1n7W#ihy z4(*b~Wg~Qt?qwsqo}G2sh_vpVb!V@0TC?Pn3eH^TbLb^!RgDZ}cNNX@Ur=p)%uqRL zZP&osPI7xE`EZkbG+XOt`FM6$a46&KQ~jaQ;*?Lyb+S0+u<~II2bT3_Id~!J{Tyoi z9QuIkD?9Thz>hb}r#NYn&mM~LYwfG%W;`em3`~fTf zk)D)4(d+VO`c?ial>AL(%H5)?B9W`4I7n$RNO=e!PZJ}-+w60j?KaV8n4ma>e`td( z&Jn%jOUOy;FS7afF<_kn`bEBsoJJt@_wp6wJouWwlCL6{hUnbq z|K^3{JB{+)YzeFHeU_)j6<%u#!9pm6gCy0Ral(t;c*6E;J3%AA3!wgYExz7e+bln7 zk!aK5ODBa#P?b$Nsw3^MI#Ykug$_|&X@tt5v8o#tsUCE+>PfTJ{2{+(1_vl^6=X}*Qe zf~B=QVMlh-q3X27P>hI>KMJW@P^ON0sCqg~EeEr%pz&%YsI!Wus*}L5C)0d&3Kgr> ztr%%>a&-#73Gvr}cLBSG4Ji&;&sPx#v7z-Q{E(d33&xu||FUanbPMb;jICAqAvM$$ zFKrYDY@(^H%HTqTVe!5`;g^%u|}bs>#W z7l9uxp)z$j)v9%Lj#^La)s?MQzQJF4ayNgc!Yp}U79X_ak;0>zv`4Ca-oPd`91J}I zpOGzxvm+=)>N>pXTu|=N!#3$BxRn)KOVY$qT8`AvHFwSsl@+ zCILDUkYY&g1T;AbSqZQke4q%}>_J9{?># z)#U?Pn5j2sDFMZwiL7(&>bOlr(4n8fbI>c1_w0(Y7VLU9JCeCzf#aPK-*KjJOtz;tyx06mkcdlt}hNk|3&J)eXWujr+adfD=zdKJ*?sa}{aZ>C0n z3((uCcJBasFNOI5ppQc8V>kMzfIbhYFC6q$NPWFkeY+rUi~7D<{S;EWwyHk?X<|r= zty(eUStxC*4lT@O47b;7ArS@0ft3m1)HA?-VCTrOu+@KJhw@LF)8=SzwJBoX$hUYYfPr-kyznp zod=`Xd3~}dEo(enyGM(F?jVNb?uTfIfqIbJ0{XQ9EW&%2@jVKb`5W zhf}UTl!hQZT#uyjdK696V`wsd&puNZ(y{ol$_aWRE!IV?R$h|QVI_JTR>`(a30m-F zp=TR^S0?H198r+{8-fkA9-rj9w4-2`;x?fBHEVWh-I{#>HS39uda~N8r!ENT>09(n zE^pA2oAm6gj3zy=NiX0*$OZ!N{xWLtbHiqB|OEM4&u6ra_qILj5!Lh(5*#UXvJ?PL^+&$Gp_!|B$n zTwB@)rE6OwUto*bJ%L$W2mr@+bA!I9Nnbks;3mD!yN=o&tefpCu5=; zsVnO&eQmS8?pSc%jo7kH1bf#aWL4w#mgSThBW$8}EkIiwy$Na}iNnBH27DYWW+P=l z;c6=y+~6Guo#S0dz2o0WEX^UgZrNn-HB5eFGr14Wy1s5%4+AZvH`{q~c=;VZlQrmy zkiH8vxr#y#74SWlMh5|{!J?_;Z9g+lBhC&HJRCKKv;$C@7=^)9^Jd$;Bja8Rg!}EF z9TQ3Au-Dj%WR-Yl~==X{pg3w_UI!7n_60KWX8E zL7^Q!g*u|;4sMAVtlNZ}LP$T;0&>6qcKx~zp0^$BkKz}(7^_&{I;aq@&Zv6XwOGG_ zgPI_MUd88ieEx&aTll=)tlu4>JL~l@$wT@BzWjN({B_p2I%_WFA)dms2HS|iV=F5n4n`~nywTJb(JX7adD!q7AN7y zTW9NpxJcKCYw-K5oAq*WuU;V@!w<7w)T_i>`0drl`V{fKUJYmeX);5fExYP-WFLK= z9IP*pqxFTdP+uZv>PzKu`Z8Ie*U5z5AXn+D58}&`HQE!qD=v(BI z`d0b8-Yj3&cguJ5J@P}{D1XpR@>jh@DSe*`>ibm({V&jEn;NLMt9<>i8l@jo6ZKQ- zX#K95t>056`hAtqAE?#(Lv^P9NUhbMs!R1}>MH$}x^`girV{zJX5cdL&*QlESHIkG3!cb-;1d!E|m1=Js25HVQky0@36`+AvH zGuRLr=s{;=0+&?ofO{V=$1(`A}FDuGGWpM!DYp z)Wr>mfoQJsT#w$7E=- z-E?6xAbU}h2koSq{Kao=sYDi)*{Iy=S8i*mL>85h)@qxrZ1OtiHF;fI90N9j#KR8? zyn)!-A=J;yr$OE@8sQD6qrF3EjyIBuy~C;08&8#90o8dE=rnI8o#V}=wcY~S=q;q1 zyhU`2cN{(H9Zx&F6X;p5m|pT0(;Hrx-tkK4Bd?Uc^p?<1UX=dymWfVY48fe0;$SZ> zhI#d3thZcD_Ew0Q-brGice03hr-({#4I*k!LqzT0#JS!%;(TwdxY#@2vRtlXtE9;# zF5!O(2u#E}Uy-b%x7D*!%a$F55IXYK zlk~2{>BL*DcQv*5uEF+QO9y)!X`FW*P4uqE_FYZ$y_@KGZxh9k)_b?oYHu^0>D^A} zd3Vs|-kp}5qvXkVbb>0D9E{Kvz(*(aWN(4%b^>Y&MlN|P-;GUgfUvZtp8bE1( zA_hbVyb-072Au<5FZ4nDWaNV!29b@S_#awyG>5Y>fd5FQWAR_Afel`7mCsRqUuw>4 zm-jgD+5Ar6aKJ6&>;w*n-P$~G#9)W>ISx2|%3ohv$J$q6K&o$TZ*O%6nwiAIn zevQX9{Pm@c0N9BL9>1p9J1`Yv@G%fRZ}!-B`xpZr<;D0d=3~SfSyn;*{T}Sf`FUw1SIY;IIua3kWcT8E`Ovoi(X- zi61m{R#BTm7e90s!j(ea(4~|5@^?{J%?Zj7LxkBMix`I>!l2ZMv`tjaGwPf+bd=Z4 zQ~BLIjgJk;<@x!3thDOCYV;SCXQYYFX}r=4I9P&XGZ(stAdSVgaQVZC;3jW7 zbk9T3I}bzOJWBcAV>HHloF;ouQi=Bzo$TS?GxwgM>%C{`2Jbn#!+V~#doR*s-pll~ z_X<7dy$V6}8U)cx^p^JqeeL~6Nbg0F>HSw^dvA-b-aDeZ_Z|e%`=ZeMK+N|(5+`^c zi!$#M5%WHS0Qy3lz7yAb-;2AwAH;*+kK*6nPvR}_XYmDae)N77 zzaW_PPj8ph-XAjPxtMeNm?YDarwidqE`a-C1PpsKgkcd-kPw6fq-h$;62hu%AuJ-+FeH;?!Xy(XlK^Uw zN>r>Htt;-hMXPm%G_@|RR;~NiYHM9vtG3!|m1+ew|L?hPCMLkup6HZ&%g z0*jU}Trqp;ve_prTD){&#e!-kp3jt38E4=XSUZf4P4L^?g$sRMB~MCV)1Yi!1_pH3ey0WuYH)= z;4;~si0p%8MBC;>W3fmbc6cI_C)wP(B2vrbb@|51c5}QVf|2?}yd~Me?d4sUO0d3q2(?MP1lr5 zdD5%Ul<)Q`H3i+?Y)u2HKt|_k8bsRb?&3I2A(y)ang+YDMVf}Vy(OB4y1k{EhPl0E znvQULD>MyvdnafbAri=55N(MpYHwZ}Nh}Mmjo}D$7sPABu@&J&RNhlSJJ}e;xrMNo zLz)WINY7nRvmlayVkATr2Ncd9)QAJGZBM{nllYA$H^PKdjMc`X02RC7n&cE8HBrn<>u_`~=LaEZY9||lM)yUaPzzIT*vl8L;6|rczZB8QG91*E9jVw&<@s!$l zb920<_>}r+EYdcruDLFTokGSw+Cpb}sgr4lyV*lxYC4x8topcxMqC!CKbVxcgHP1DQo9G@*_tJfE`m^H6 zC5d=lyAbypq_J~Eyt_1Yn;l@`mbMr?j8N~<^h@E(=Mt`{s}tN`X?j3#oi>;-4rdEJ zr0HQ1vA3nYxn{%0Q~fZa-)Q;)oh(v)RMT(iF?fN7n3!#3!xHh<5d@+kh4be_B@PiV z#Fnq1Cp7(zo-{(QlsGdP5yo3M2R~z1AVzKO5Ts``Ju4@Z*AScCA_r4x%o92Fpb#fhf{h`v2^Cb_86Rj z8@e?8Q5GHq!e+^e+GMmNvMd$Xmd=#bU(@twSv{vAhJng>JWEHCJ5uUh4k(M zFmLo?jS)9%bfC;)#-235Zvd%%J4Q(%ouxIE?Xg&eM1qCbH>5r|9c2y*lvBo@2(#p) zHILy!IJH##6=`9X%vJm`&{>AV{oIz zi`O>6=OTn};S$Xg#T)p=iw)Wb_5oS|{!C69hHq+3)9H{^P3A;Hl;Hiq2VzWyirI+%kE+s)xN_=K!*Lqj6cfcWLUGlo?i9x$c8r0sv25+W#bo93fHHKPaF9(FQ3|%r|dVV`E-*tb;zYtB)v)V8N3;;GbQO* zBn*e(AhVDNt%&UD*(Z&)rx*CA+SA^vueT6&0jsaCx2GR_?6Jb)xtf10hozU+m@BUd zkHYc!nlBKJH8>WB6T<~IW>*d*T)LRIY5s|fBCDuDq8c|S&EZxbZ{&+LUn0ikX*2ff z=gasCFJEp{?m%nQyq&KEVr^qMQIU#-mG;zUo_W?Y{g>OfUyqBhEOwpd>v;#ZnW$-r ztWQMh>moR=gYE+^*huh3zS+w+!Tt|W@icJ3TKU-Wlvx5%(Fhek?+=gkIA_bb*Xy=Z6?q3TYeK8_?uXPT{)S^ zGs8D>@3L9r2MPUOYQEpls*OwL$PZ|KkRO8l+>={m3I-+^n$ts8$oy-~zmYYvYHLh9 zt$`|Ulq`iG)%;r-$q-)&Ap^+#xaKEhV~8nrk=A4*ZsVTmFXNc;BjZnNe&&Gj@CFG* z&uM<1U%)vdF_39X;g?}RPT{OsZY+99^UD&yfB>N+q8mi_W#%6=zal{j154W58r?w| z_@m}O$pCV`1@Um*{5topWF3t(pVlT{}YW|E*F#%<1Tyobr@x*L%@kHv+|Iz$8e*qn6TPLb; zP$-NxhZ|B?C;n3N9-|k6iPMo_^OfeW`5Wv*U`SXB(#|ebjoLS#6=}t?lBjw-m4o_} zr5vxa4-T=Zd0Kg7MGvsCAU2~iwDOsZ1KG_?Jg z-s-A{5E-V`5ylt7cStcSzP`<#j)RohBQ;?gHA_9VKY5RKcd&^O!}A|R$R_Oq`ifFJCDWx5=6HR zh)Iuv{)t#cyZS?`=_I_7)DK+UvZg}UvY=brpdvHMy&>-qXTy-XZmL-cKx8LHb6YlT zrx&f#OsiCP(Zl0|dP1oWW8;Fpz@XD}sCUz(a{n;`%?NpenIYRM31$fR?2yMQX<8ff zxi5~qg#1=XZoFx2H?^)5Y-jk zyVGxVW^ynSTt-DtETbnU8_%*7=Twbq_Dbl0^qbUa$`SJH|{cJci=DoLYGcox*2RlrN&B(T_Vo89I>G5A>482MMel zx`=cWz4hq9pQ0yT%{D#pYmVuOXOn34V`yp~JZ&Xi4}JB(ckQJMQ@!!f+*1Mbft#&v z5B%RE$v*tvNO~H&?SVCnqQ~fm=xOZWdIR&*r*w^hWzr_d<}C8`LIhb}1b8oh zEgHX*&MUX~fwoO5cS4Q;Jt+$djDUq@yDt})dArD?%e<*EV|~7ytap0oay_cPEW?Fg z<2Ki$S=d82x^K6knQu*!r){3jq#n8hug6<>EObYE=!M0|3HnC4O-WNh1~#}e=!3xtjfFvY^F|OG9=rYeLFhm6Z8IzMwAf3q3d`W2XSvYg`aKP8#H-KyW8% zkY`PS*VwAIJF_^L70lexE64C+5B=T|K4$jNpCBnP@p`$R%QFR3uJQU-d6rc=z$(oS z`5!9HwMz54XluwH%$rae2nMbsPZw=@R-5D*hF8 zInAOgsS3sXm9W&4V7I5x4q)Dh-c7WVZl)*TpI)Wg;Gu3u!SW9F(a(7>-Nr}Jy*!0> z@hs}$D!QN7(L>xy5A#O)EuTS;^I7x+Z>8Vyh4d8fpr`p>dWIjPXZerx9KTD?^ZOY4 zH@(dNrQa*2SCvhFRDOC*Wzp*@kKRxrdP@zZx7Bd^s~Sb`sv>${O{5Q0Dg9l2k3Lj0 z>7Qyg{YxE3A0yZLL{-zLY88E^PNLmvE&WF|)9308`a)fT_iJg7x|#N>J3yzKdex)I zVxMHCo?}ZqDfTl|TtM2BqW2~3k?4yavS@hHEcFOJ!F&Zznx`Is6g%KaN2)vVDdj7; znnKlOJgx`XfF)m2;8bR*^HRN&R2zK_SO&dD^Nlz3K|%@o2It{}Z01uhM*WZ&s(Ru{ zA-AaUpPJ7@#vwj63-Wmy&JA7|QhH3vUOL~nZg~;}pj7VHbe7`jduU-V65s)cz*CsD22R^J_|?52?K>nEK^SF}f5zZcp6w?fAq#-NA3CA#7DD;mI)dlAgP)e++lsl=Kpm+f}FWivz40C%+|^sr=ZNsZZm>v&av+!C zoJFH~0FC1SP2e1w$RU~nGn~Ogs1lX-d2m|`c{nZSBWV>MjnC9$@L9MJpIOJ!r92KU z=ooxO8V`3ef&RiJ_y{zK{>hW+6COyPaj8j8@qL4oQ73*9E zlO2w)Tw>lfjfQI)4&!oY96q&;z^I2Nz@3dm>qV;nC^(YzNL-&7l8-)vUb#IC;`E5O_K(b#r)8r3e1 zZT)FrKAkD#CoM|#kO$f0L-s8+)hczmXaba`I_Q{W!YL7rSRNGJ0;~kU`_bg_awHj@ z4hJ2i5HEGnh0yFSI@8SYx>#NptIP@6l9qT&q`e=lnOx>c;ig9~yPERNBHq+MRTt&D zfHX=~0W|c|YfXZ-Jm@WOfT9h1UT7{XD(D3_o2*g<@F?IbgC1mfL6423E)X&)LA6za zNm=g8a=ZjRjyo#mRBfk56`gB9M3T$p+siIcAw(a;_A7ZG9%rLkGQf(6eE4sn-zm z?&y6om=W}DD$Ov-qwM^yV8(WG>^rPGU?uJ)=~G;yiDw|-&7@&mNyj0XSj=w zLY_w#^YL^IFTf}FD!P-G(oU{Mz*|PIqyGV)fG@MF*y7bZ7~d|&^T|97A0`&^T3*hz z9L7h7CVcj2<7QOATlh?l^SStPa2Y31yH0W!xARUEy&l5oW2o-G#HaJ?zU_RbUBs8GOZf_QJ71|D zR+Q?FqBZN5SMjc-)%qtGoE`)-t&VDM?rr2ftkT>DU$Q*Rm{rRW;9fa~Ef zEV@-yaD(wo_t0dM3OES(P2332h47&q3UWw3)&1G!=0fn582IOH9Dtji__nYL9({Di5 zaI=v8(9IG<`@wOq#E35s|74XzPn*&Y?oQiFYkDc0{0DJ>L2St^m~p5<`+ymJKzkoB03eSPN{+7T;)2u)fea8BY)yktl(AvDs?*|O@W8vf=rgHvf(`LY z#ofF$HATGXW&x$IknrYH_PskLcn5htFOM&D!A-k(Ll-UB4~83{ft3kD`VxB3JX{d;L zbqO^yL?ioM$(x>8faD1jCgmRReL{&at4UVtf$v5P2 zSJMSOeCxVxWwtCZF}=W@O=S`diie$4Qec~#Kh`a9(i<6uFqvBW1((!aatcRdimN8~ z;%$%+u*``UqlztWC}hhSPImEbvr8_>=lj-O7|7maiq~c~pn1Hj1tZ`0xDyag8NF`HK4$K4vC<$e%-R2^ta?2E5q?d=IE9qrw z%KxIPa&b(VI3}^HNaijTEIP(aRl#mmP?U27W2ZU82;1&aA(to|=5`~%^brqA9kB|f z&&5=#uzXqf1Xg2cIq4sfHR(w$r>c)+qSpDL8p^*luah6?0~0W}X_3 z!d8k`B;#s?LHNudTn<(>et^+;7g9&lxrig(xc>LxQt(U4y1qRJGNmR#-n% zE3IFs6RZc+D(gvAW4)}_SZ}FX>qAv%eW@C3ziPCzRn#7=V)k&=Y>!qg_5_u%C#$4A zMYY@W)Ovf7I?X;woo?5wP4;E#4EtKO*}g?>v3IIY`yq9<{V#Qn{khs|f1}QG{OWus zS6%2Fp|&}r)lZyp>SAYty40DYE_W8FE1bn@yR%$f>8w`QIF0H$r$yc1oThGcwyK+* z9jeQ@N!{w)rfzfYQa^KcsoR~0)E&-K>gUc2>Q3hsb(ixeb&vD5y4Pfjosup%@1(Ou z=bcoxc&u}0DqDO96>Q1rEZ&WKsp+ZZRGNa_LNnBn$lq*~$jb1is?w{YBh^vpIgtDp zC;$Owy^i_#s7{XcdAeu&`BfKY%J=8c_}t)EG#BaJ@cjIIB^O%X9`f#`MFDkGpchx> zeJLAKF3OY2iPe`w$rU)j*~;ES!@q`}gFunmL+VSiC-l;`gC_5#)!z+$g%nd+{=$Ok o1=I8P(!AWzURr{J(`cm83W_xbZ7!BNUlpQ4h(E$`|KgVbtdx%%C=gt-FMON1vNmNVy3JH={J_3wymm`09WmhkfI~Cg zEAV$GEz2CT22!TLwP#PgU{?F44WXMFH*9Qd4Yf7zZWKtfU`9hSk+#AKt0NpAFkR$a zEby+4C1Tb(Vpdgm2;2?HZqpAJW+@aw83+mr_S6?bP@>?0m&99Q33KZ}-(EA-9^M-# z)8dw7BpmMur($~TY`U%9SXxll@&Q`a2})Z-&1AkkoU&pOB4(BFVV+=SO-)U|v(HCA z`IjqH;8N7ezHrnGS#?^I zN`=dCxgeMd<#>!6aL)8-J}e?UB}s)6Ne7rKP3=mB#hO}C-VqHx#J__yXm{8O)Ansv zIC9&TaKB@nSyZAek}}OiTW`_|^%z(tm@`$C`hlJvGi6}8?f=PY)(^zuj1xarVwHib z1%a%g_eYX_eaS>^Q=7sySS>I%h5O9zSV}OvN*iS|nL0nN!x{tE+XN<`Db!&t2@L9Z z+15i<^R2yY?>;kP)lEyX7VC8Utf!CjQ5*+VclfY@0acrhq|#KsR!hEo`7$dS_M;XJ z3LC+g^@jWVnG1rY)6uv{6UQJ_s1}W)I(je8B;Be=pg&Iif6h)KGIMNr`=j#1fGmeJ78 z*5-CbYc~1pW_!v%-Z~p)zwydhTK9AreQXki(KEYHSCpB@b89k=(IG$jh z^(WIYE0#>?B4d|cRuV1VxKO9?2L_&`XOpR@)7z5FZnn5hEh|P6zoH0#Vce8IqI&dRh}^R~vJh}o|V zs_>#NWIE@zFo)U1bbY&^OXL^X6RR2=*X1?9Tp{$~C8oyC6#G@BM*0hl^vaZS`hitE zM}_4gy_Xf`qN?DymU{KDu&`xkAt=5sG;Hre4|0ZwnP)GPr6n={TvLjr#rc^^Rp5(k>R5kHO zhw>@>x5EG6=QWH>af2r^*ed>$G8xwj6bg!>D@~+1Fjl#QlkEV>q zH^lpU!%YJTj&1Cc4&DD(cwb{Ou{Xxj8kJa-L_`b3U0aq_J$l!r#GNY>$@sx&GNB8# zKJh9sG!>?3TW`4A)cbMP4JlOOmm*q_b;B9k`gq1%qsw#;igGxrjSPlUy8p-wnPtdK z8t|e+B>`<&Z`S3UN2ORvi5?#t|b#(!&-UGTBFWYQl?Q$CQxnT zTp?F7dZKa4 z%*mVT^Oz%pm*tE;(c)Jrsh)}+9&$G=a_eZ3tCTF&ZlFu+ITCeimujtQl`OYinboQ> zF{p{HRC2YfV%F_vaZhq|nPAHBWk&Ay%WApKkZUJ3hirA(Va4KUCD+Ru`h;T=gSIK2 z3|rY#yLaWauDl~Xb;w#JH)t~kX@=aO9|~JmD6BobUdfHZG1Oy^w-ltwFAdUY$VN7? z@qU*_lU-AqSi^MePL!KG0GsJeig&H)nC{gg-K?Z#+S3Tz&D~dOkZnq~YmnLbQqz5* zbnKAnmsV*vq>WSCMU9l^oNQoPZimi2Qks0wLr~3cvF5i+N$17JD9JC0DMpvX{?-J)FfwZc`GMKI)n+b525T&(hKbXOCT~M3PGSb@MGH z;EsOY&djz0;r`|Xvw(p>Zg+8xJSDW9rGuIJW-D5QJ&4 z<$hlHZa3tRpz-oDKYY^gfI*PSO;szWbY$-9cCX^p@ za0$PGxjEhB4eI9R&X4#8=7MjlYwc;YyKXp*rlsY9%HH`#Zxa+Q)D)L34NyyWpfZE`FJOV@wo7x{JkG$C zCF4D^vfO*bAvJ#J?s83t;>lllDN2rGCdctva$IP0^f(-^(57@jo3hpZY@n-eqN_I} zfEK>^*@7D0sjtO0nsPHbdA66gatpg~5W9Khy9H0;Ry>OjbF>cO74ChFXWu5&4|#9a zrq+(3IUQ5`IEPi);WL9Y+3py0x07P_$&0thFGz`&5T_l!F^b|gm^h5b05C?^*h`Kb zT)v0;G3~AifbxqVnx;UI?o~NwyM{^D&$#!U$I{O8sO=oZicws94mT9vm_dC8P3O?u zvLu7eqqzAzwsz{rbJ)JcwT@383V6F$yH8{3l2Ug?z#k7R?|LMI9bCD)xbAn>`FK}l z&^ZiManvP&?q|kctq62K4Zo}S)=`Aco`>0aRdMtjVrx8Qo($q^yn$i{QU3_6?AO6w zZ*SLXqs&uk9LwO2GVk-atI&SFZ;h|a=W=E6pqn3$>@4$nNZ~<#2b4pCVR+=Evp2)p z3-}J@wq`mk^1)^~dwF1iz+8t$aR!g>bm$oU!|(@Zc-*5H=GIdge7g9#N1sHc%jG~g zl#2f}I9tkmqxj5eY@2!*EHiSaf#P+iQB~%v$l%Xc7xJ6`JY8I5ne(}{P(L1ZxhhJH zXU1M9bA!ywycvA{G%DA4T-u-7jG3%Q1O5!o)1$PseN_As%fd1FhJ2HE z!)#WZu_N&?GvNpp;Z7{)>x??wgLSx<`Eiu-e+<1`58*f=?&r<}+&O`hcnDA6VVvQW zKf~1pJc5__{bf9gZ{jiDXCB8-^c5b%GMjyGF)!&WINe>(+jb*9EiHIXI`J79F z&dTGw&pw6E%NdNw7r1_f7uQ$uA|*X9-@*m?DPAft@Uoq8{Y)ChG_u95Lf*k&k}qG{ z%Io+me1#deQeMMfGjm+1ldt1%bPn;w#Ep0rUuCvFK`Fk5zhxyjBMb3$o*MYF%wXC7 zJGS1ZXp6t64u#}9AOC=F5kqI|78H%qEFLDKfu#nvGHFpgOO26ZVcw5ntVLbbmrIjPNUl(P50rH7!e+&Qdob>oQWmbBUXaO}T}Ki_Oj=SQMZ(C9;KkTe&wX zA1aX!E_UV?yO)g09&Ut&QO>Wu+%I}`7=aQoiCOc!^kigTO-2$WvVT-k1Q{5Wp%OXF z#YE3~3|BBv7>kU;Sqzv`yvCUP4i+-Ms_|XEeEA-Sg735Wzkx=)iJS2@I`9L8dB2ad zLmgsYx}SIVPtZ?Kxu=J!TL`a* zk_zg2*NEIZj8gsNdO_~x_kAPskyCI@sIJ2a5`>?(;bNAMa+#kOfE5l~&CCTU=l^p( V%*O)x7^{hX`5>%g$K??e{uYgp>01B* literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Model.class b/bin/jake2/render/lwjgl/Model.class new file mode 100644 index 0000000000000000000000000000000000000000..93dbed06358c37e4ccb5e4ce49c767009250930d GIT binary patch literal 25225 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 R9nX1qo&h#F7taz(`hO=eFv$P_ literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Polygon.class b/bin/jake2/render/lwjgl/Polygon.class new file mode 100644 index 0000000000000000000000000000000000000000..167cbecc1e3846f7090ce8b1e3f8eae2a9939fa2 GIT binary patch literal 3303 zcma);+fx%)9LK*Wn+wDhxkinkAYwyM5l~ypMFojPk*h|LDr~|Mf^oxy1gsD3Oo!T; zKD0B{PG@ST9iM#bv{1Fvi{o?OI@8Dg0e$G7(AIv>?ixa84KTymbN!vq?{|Ke{QB>Y z&j7R|>4QrkIIrE*+gmfbF{5W%Q_J&-RO?7O^-dyf_}~_(*|45SEpTlrD^Pmz%+;xp z;lYV<0Wl!3y)SJnW;G)l)lxZK0fy=Ys^q5L%aKU`*i^KC?9xDA|F{D2`*Q*BV%tfxzIrwxqQh$#iQZmDaMo=6t8XHfzTKF>mvBiP4wN8Ir{8YwYNh6u<5l}+SQ2}>fdPXmWz)lt0pej&*JMBjhwLa_-D6@p+vdL8I zU^1qn4tqIk=*tCg0=q*4&Cc9Xa=nV}D3iVYDt5ptdk0jMTfKuSDp2X?Tu4PTs%eWZ zn{dZq($I%;w_c7nVn0T_~%r-1^TGl&~KAy=SJ|nL8PV^R1C_kp7@-WG~~>Xieag{XEvoJsJ)>3 zxoOpi1RYm#38OR&mE;x@N$>Q81|rQ-xqel}1g=TL<+#qrh`d5;9$J!tL-`B`LGy|` zjE%)MHd)y$w#y!yvY4Jo8sqUyIz?AbNEluw1InBdP#MYv%l`3nE)&-yN$Ei9h!xsL zq-oJc^%$w}(cwMta^&O4g%XZS3&wu_4f~WeH1NN%VyONXh&41RosUqtil*RC5ED=F+V~1YkmF|$ zU;OnQ1tUgGuf z$XQdQ1TEn;-8OvKKJH(|z9;B;j#KM+@-cyP`ExFrTkLZk{K{2N_$kh=U+FiA&-2O) zc@uII`pFII$V6ca80JnXpe8IHBO;sgVTIO`&Bb+r0Ul-@U^`658R46aQp8w+@ETiq z1y@IH;Sp*sHKjl7+Y|mCC#K7NbDrrZ82g5^mUS%cu9=c7Ls#08BWwlFJi(PK>%5i$ZqTo$Ov&}unY`p`TQcQf5^s~G0@sUkd!4vrn{Zz*&h4Fc z5$|saq9{h@(P-^}s)G;zYX1@5Ofc$0FV*<@*l$v}-iDSmjT3<7Bx|y|( z%Phzw*sb(D!v4lp1nPKgEi>ZeXzZ-)Hp)b{qKFljua28L9=`ZPrZuZ zg=aX2)rw=}eXl%IaU8p{Cu{tmA-NPqsUpfSSmlqo;c&NNY?i9Rk_>U%mBMqmQ!LlL z8m9=$GK^WiM@41vXO*H9Po(b&hC~=@5D>RSgJFEf>>^TY|0>EQh8TC8x*8I&C= z9uF&&{Bl`%3`2CBh`Dy%$hvZ^8KslG%eHIF+YFJp^cF*Oy}m0nM3B@mfVhewhS9&^ z#=tP5qYtrQH>N|wsTjsFsbYd58N#hSm15JQ=INNi8HRo{TPT}sxyS(v({ z;T)z_oM#wl!TZv74AU;@xPTc3-4%!7Js9TavYq>Ns-!!?FnK9pJF7!SzlIc&)GX6> zMb594gje7thXhEP)JlMwUWI{a%OsK3mn3+E-b_V4q9cA;U*5!^G| z!xPL>OJXfw_dQG8wF3&VAifYZkuIBcUE!@eywMO171w{)q{D$`=Z~?ZPLjMd(LK$t zmsUVU%aVFcpR{XQ>IzwfPLTYx4wCm0QHlVonPVg}2|W9R)Deb*-AC;RqnX4C-r)2* zoIS$D$nqO+_M@qjj3b2FO$4djw=+6b~?i0@8Sh zTVz+TMSEbR1&j>l$(yC=x=h3wu8=nX<%E(H6^x-tb|Iu(ZBw55KRQWD2ezq0J4lk9 l#G_x}r`qsJ7d$-<-_XP2#L%F_3a;WBS&i5+dOU8R?+2Fo`+ooc literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Surf.class b/bin/jake2/render/lwjgl/Surf.class new file mode 100644 index 0000000000000000000000000000000000000000..fdd4ce3f9cbd39b2cef1f7ef66f0a31d45799dc8 GIT binary patch literal 20462 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/render/lwjgl/Warp.class b/bin/jake2/render/lwjgl/Warp.class new file mode 100644 index 0000000000000000000000000000000000000000..387b6475c270f102ce2a1595a9123519b92ff329 GIT binary patch literal 15166 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 TQIdtdI%H`i9qLgkwe0@^{@uUH literal 0 HcmV?d00001 diff --git a/bin/jake2/render/medge_t.class b/bin/jake2/render/medge_t.class new file mode 100644 index 0000000000000000000000000000000000000000..735a970b9293f58bb712bd1f8a628d1af701024a GIT binary patch literal 582 zcmZutTTc^V6r8hNC|y>mrIz9iR4{Ex*o0S%4_r(di#)99gFcY2+tYSy*-f@v5?=UE zB%p~g{s4cJFuTFTL|(oxb1pM;=J%f;zX0rDvj|I29hY4dt(h!LFu6Fe>m~mpAQAn7ChLGqiJfQv}-0aEs&Ob3rB}X`Amjg4xS0D zFPtt1CKzcylZXd{sgiL1Z5V~=J3+nC$>pLj_V&(G-J1;tn(Q{a0((F1tAhe6E*@f8 zP-rx}B?un7ScL0f1*=8W10&5dBG6Gr-RcG}bAlj%)V zQ0c^hnRHDOX85jXr=xHxsL|p7QSI`;9=+UaU*P!hED7{|n6bNe@or~E@scOxkzo~c zm?tVSFbfOBrGK!)4)0`-fwP|d!X%dXmWjr&xdpsweaEBL+)w8k)z%fNg{^O>Ri0fO vXTbgoE;(u8Io}#pfd;oX$lpXAEo@>7FY;c_h&8Mek(+K`<+`tlENt8YkUw-% literal 0 HcmV?d00001 diff --git a/bin/jake2/render/mleaf_t.class b/bin/jake2/render/mleaf_t.class new file mode 100644 index 0000000000000000000000000000000000000000..0fa8cb4eb78a0172d085f0fe3ec2e3ab325dc981 GIT binary patch literal 1384 zcmZ`&Sx*yD6#j0v=`w5u3R2WjK-;oZ3(C@>>{2(yFbc!?sRCOXq&mqoO8bKJInn3^W!Ig1fEK8F!b%K2Rsqid8NShc)7&Yyyo8XE%05FLCTkEhRJmXmS%9NI#(IGDz$Q1)enrCzNhB7!Qd0uG=aWjki|LEG!4Dl zyhv(C?V3r3-ci*sxNd6Iim|2{YOcf!M76`kA)4<2#4CBu&Zp%mLth9l`{8)d7qA~Gh!3y*{eO1f37W?|NKy{b!? zVi;&yGp4RpiYqm(MDyXr9R|f3k_F{lQJPH@I@j^= z1gpQSfDh;)(-=J?;nxW&75hxEjXL=)idiHvZ%GU_D4P;9*sy9T>gR(i80lY<@Q4(q J>4gJN{sLlVCaC}b literal 0 HcmV?d00001 diff --git a/bin/jake2/render/mmodel_t.class b/bin/jake2/render/mmodel_t.class new file mode 100644 index 0000000000000000000000000000000000000000..cf704fff7c1d3f0c30ed3f6a52523f5ec5124eef GIT binary patch literal 528 zcmZut%T5A85Uhb^c`fo#L=hj{l!KdaRk@gum=F!okPr`MfB^<~mt?9J#`K2iLeCr}hpZ-t+MfkO z*=H%?&E1fNHkaDdK|>&Vde))&HQ%NX#g2s>@<|BnT8P06*`9^?ij^%SUh-JXifXl=}2FP`C2rBv1YGQ>)%gb2&C?(bHA^eI<(0AZR0##1gh*D<>nGZ z4niivF_y?7mY76piD_6%%&c*1joCGFxybW31Xx6j_sQHX?COOcGuvErQ2^P oZc3$1Y5$cD5gafUU@(>$E2!ZRSL78c)~XAYBW41}j1ipt0%2TWJOBUy literal 0 HcmV?d00001 diff --git a/bin/jake2/render/mnode_t.class b/bin/jake2/render/mnode_t.class new file mode 100644 index 0000000000000000000000000000000000000000..746de193d591a98375fa500c85203ba6c1c47b6e GIT binary patch literal 564 zcmZ`#%T5A85Uk<-SOpPK0Uy9cIJgN{jTaLV6QT!|3kNbR0}QeQncXG+mIq>D)DQ5Z zjJ?Yq^)gk}kLsTO{(1ib&_Oea2t#qspGC*iLXCwsZM7VWp_@dEAwTD9ZZ5c*n)jo* zuv~_ewN$Q9uEW4?Nv@?c(cBgcF;_1i1h^O07eZwI56GuP z*(XGZ0oC>!%I(BQVuQmiRNC=RunlUjl#bwp-ZHHK)DS}hSu{~V3l-9*6g9RsI187k H2VIR{96xR^ literal 0 HcmV?d00001 diff --git a/bin/jake2/render/model_t.class b/bin/jake2/render/model_t.class new file mode 100644 index 0000000000000000000000000000000000000000..c0dbbda0a817f4c9494fdd78d199dbcd34cc04be GIT binary patch literal 3011 zcmZuy>3>wbUvIzl1K;-8qzW7D{9rfJz(iU2NZQeO^-a7Z5`{w??H}3$Lf_q_vEDT*~w>eWP zeaCBd{K{mi*-118VH8>zxYAx_S0-$)rE*czN+(9O*usz=bxtDXId)URu~6vQNy6aj zp5EHPcfFSB7KZswi<=32J8)B8W5#LEI$n%}t@)f6bf!s5y=*e>bBTZG zj}U685^i^p7yEXznThswWJJyM89nFO|vqaa*<>$h{s` zxLirXZD|dXcG`ksZzkJh2Jm1H@sSODyN6?y4;Eih&Yxza}XnC#AMA7xc2#>~dxn4ZQbab=Py$_b}>3*GjD&%!~XrEd6EM2d|&gL1)X9jJrmh-2MD$HJA!w@{4D^+747$9t+!a&0oDGW1giNbIU2&1-lDd*29^FC0Rfj1eZ zYS(jWvdJdLuQPQ!xH=WH6ZN+5%5z>U3|b{x!+Y7C2j$hkS15|noxUvmvEo@H!j>zP z8MZ<}8P=rG50MC(5f6j08Dz>Q8@P$eg?7+7b*@4SS}l~-^L9!3b7WaAU*1qvQ7?}BH96kSB-W^;Wabvh{EfbCcVcL-oW$-j^kt)C%W!u z9nD$3Z+B)Ce!?kQimpyrC@+^feDnsN-d8b^KBF+x?0in)ExgTDVySeeg^}eIkGFw% z_JYDiT+)W%mw*P;gL`cm!LPU)#uW?wAIg8VOLtsEjs+p+Emt$IaMrdUgr55dXg;5$N8S; z&}DWe<7C3PV_}Rr(PQs}Fz$Aj)T0A+N=tdUOENFQsYi#5{28tGt-^sh#`S0nEtjdYww`i&@Y z4+o9ZK4gzF=fOu<$|noUy3T4Hv zvpoSiu5FTJm^|L~?few^{0LRZR8uV=zHFsU1{0GqG~n^A`?4BIv= z$9BZ91FhJJBzAFy-B^u1Sc|=!v5zzMV=E4@_Yl>?WJmdT3@3T(oy7@U;1zcTr*H#j za2w}vkIH>q!r#1P{$Wo~q8@Z7>Sz4I^oXg>Gt~ve8CErIb^b1_>WL;ZmuV)U%nqqm znHSO;QJEXk#ivoYaN;Gd72-8L4cEAq7-zgL`|DJ1(m1~}Cb#%;xy=v49gg~wm-b)! xT*Ennd*{y;qJD!hvG5z!Aqf4)!J#lL{!4RBe0h^yAuf4~7@>X}e{jLl{{g@@nZy79 literal 0 HcmV?d00001 diff --git a/bin/jake2/render/msurface_t.class b/bin/jake2/render/msurface_t.class new file mode 100644 index 0000000000000000000000000000000000000000..9668734321928f557a4d430d15f353d8e39d583f GIT binary patch literal 1611 zcmZuwTW=dh6#mAStS@6yQqoWYrCghA)0!q+3JqxW-<&x+bIy0p{Px$+PXWxLX(1sn zv8lG)*<#@ObvGz>`h%dM9Jd-;NC_O;R1Z|Kt^8*3Ms3q|LV?T!uipq%#}yD)1=2n4 zl8-M(=QO!fbd0kap5uO_t(tv-Y{Lusp<8bx(#yPNjfsuZ=-PRH$DvJWrQBKRPS52h$ zEwTK*>hw&A7MFeSy>4-FJ9HNZjfNXA(~)`4_rmi6$*JkGKS2&-801VC8Iid588GYXvn(u|Ij7VoT3*5-;%d1)QY+UGB>0 ze7qND&5?=j7WbHEf)S7GjQ%LQHD<^x@yX@A~H^ z^J}qxPW!ok?^onC?BLVey8a||{WZQoV2Pc-%sQ`dkgu`I>zvFLOkT$K+hM%ui)StxcHX%9h&$7Eu-OaGh>fp4FlfcP&q+vD1rz9p(tZgDE%;Qv)g*RB!w)U^JfVb zMbsbQj}lMPxhd#}`@H4cbIyJ8ZDu9Ly|D6?S- z%#Gxk^dp%J{n!1G3Nr!oOogWcMz0qLSc6Co*@>3|m1GhRQW-1uW}?oCU2Xq|{0Xn> zSPqrI&A&0l^e7{s{8T48dq%0I+acwP@v*AHz=DGtsM}Z)DD{F0Na4UjS)kt5iF!4O z`zn1S`w__(+T&109hvI9zZja?TTPEv7%7=nv5tm~JHOvL$#mpDPgD8+)WHTeDLl|o zL_5u15V)OO@2&$I*Yaw|L1k9mcThzwpEVsgxGqpV98c0v1v)oUzgp~mzEf-wY4A5# z%rwtRkKrUx$eXtu!dQL3^8c#MRv5cV{Mq)eAdomnKdMQ-JGz#In(`fYJ}KjeSo2KZM;&VYjgC{Q_jyc=P}O literal 0 HcmV?d00001 diff --git a/bin/jake2/render/mvertex_t.class b/bin/jake2/render/mvertex_t.class new file mode 100644 index 0000000000000000000000000000000000000000..8464407e60feae87d3aa1406c11be50a6934301c GIT binary patch literal 578 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$1.class b/bin/jake2/server/SV_CCMDS$1.class new file mode 100644 index 0000000000000000000000000000000000000000..21f05ac36976007dcb105b3bac10d633aacc6e08 GIT binary patch literal 509 zcmZ`#O-}+b5PgNp>biU?0-ij0P!AIEsPVFDBtbo3xRSC|SzNZ-Erh@2N#nsE;Eys+ z0gW-*q@BLbo9TP={_*+-pn**XDTc~W+{;Eik$NI^z1`{h{^ey?~N~B18F4vWGSMagID(NTE$n3e&x1aNBCE19=`= z5!o+?`$I7iB=al|B9(;k-K8`G)%Q@fO)5ldlE3Q*sfAJ6pBpEoUNerR_9KxbGQk#T z05nY?MVpKhcIb9Uk=d8MXDmO>(k`8@rSTj%C07Z1a}vcYA=3WcpfSTlenI|seF14+ d{87&r^=YhARSIQnP~l2YVVhR8N literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$10.class b/bin/jake2/server/SV_CCMDS$10.class new file mode 100644 index 0000000000000000000000000000000000000000..de05e8583b7124282fc46e282be562dc920d2645 GIT binary patch literal 508 zcmZ`#!A`_58E6UF zZ-e`NKH?*fa7RWw* zCXk{{wh3F59Z_WZX72@y&y%uEr>$vb4JH*cgqBC}4x4Nq<$uCS^8F)?#RV0eZ_}wg3PC literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$11.class b/bin/jake2/server/SV_CCMDS$11.class new file mode 100644 index 0000000000000000000000000000000000000000..75233b4ec3355bd79f94f42de6458314b42386ad GIT binary patch literal 514 zcmZ`#!A`x0n|{okYXqe`GcrcVxcBNRlH8ub=!4szgo3mF0)U*9F1gD znd-=+em7xAp9N8noHG~)haCpfm3?8uz?y>O zUObw~Acz^tt^ahKGFW0N{Bc6olWCC^zJBEMn|| zhCm|)QnblDVT*1j6q$ZGdco@REN#&YVOsLx^Ex*`PMVM1Do~cYOnf edHJK>T+|!brm7SQ*r90B#ERIZn@ydy7+PPv)nr)! literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$12.class b/bin/jake2/server/SV_CCMDS$12.class new file mode 100644 index 0000000000000000000000000000000000000000..0bbbf5728bb269db0cd1ae2ee81cc0dfb03ed4f6 GIT binary patch literal 512 zcmZ`#!A`+d>B^ zo360J!NZ%0y#L}_PcowQobD3aOvQF5b+X+RMz8t<_`8i9QbebuRH^C{nO4yo_C>9AZtSuVY87A^8O26x`k>~D@ cdOokuV~eVCs9>8Sr+HPeLpPH;r($S*0eneguK)l5 literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$13.class b/bin/jake2/server/SV_CCMDS$13.class new file mode 100644 index 0000000000000000000000000000000000000000..ca6b0d31ab088fde121f0d9a84cb63ee398c1a1b GIT binary patch literal 510 zcmZ`#!A`qsB|sgajm7!<8&$g<`wawh(^Hlg5J|;71u} zfe>SKlik_3^JezF`TTnS08m54M24X}5|6T0O=LWganeI;+kVNb^Qq8CVpLNoG2&=Ik( z@#2xELqB1tH2>3a#$d{+^u{T*-$cR07DMq*wvBE5bB43l-&mg%Zu+K3 eyC3y@QEy;}sxl~Imm;TWm9R%Qi#lsDw7voUz+%k+ literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$14.class b/bin/jake2/server/SV_CCMDS$14.class new file mode 100644 index 0000000000000000000000000000000000000000..03efee2a443294464ade3ac8a385f5a02702ac64 GIT binary patch literal 510 zcmZ`#!A`ZwS^BB{6hj_clBw)T!sEtre!bD-i_ z$@)Y`E_361KUGKv% e?|;;r^LhhYRFy*++Z0WjRs}nBv#GNdL+cy%K4Q-R literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$15.class b/bin/jake2/server/SV_CCMDS$15.class new file mode 100644 index 0000000000000000000000000000000000000000..9b7e6ef55ad21cd460a46b1cbc9fb0ef485ca4e4 GIT binary patch literal 512 zcmZ`#!A`p5+mUcVrsvHyoF_k!k=shE9uYV;#>xSmwIa5G1y)>(7rg6 ziHz*G$=x0wauRx~{2+{^x^IZM8+II&k}gG})yU!HqtHAKwL7*>TAi9wLc0NvA`xK& zGy)nZkfBZ130rjAr^u3*ofphKr)ir`JE57^Fe$k}*cp>3W(hGYP8(EHOypPOe%If? fFmHd zXmEDP(|(vRRGa_#IA*ZrLrU`E!X<_|rUIX7`rC@%1PUA9P(;-!6ZuXur|1@no^mPo4-+)tdk+AzkqFNxturw2>Pce~SQ2agLg~fv( c^E{ikutrlktYd>Jr9X>__h-*2CFc0C)Mp|&hO1bQ;j zsxeQaP=j8=kUa@in4B_Ld;47m?(2bcU?JyX1zCndD^&7oI_XPuBl?kKD7JJUqOLGu zia#%TG7Mvedh4Gtju~t@m%%il?i(oD*kmaGNp?|6AI_17%P<)CZW)}8o|-^jgz5YF zFLQ?@F%vZ5xe6j3hw82^lc65CsHOTU(VArK`d%85XyY$E(~xdcDQWyj#IcOA1M*HE z31n!KXTmmRM-*9lbMS=K$3@wp(@AN(1Wv^@!tRnpF;9qL{kws;z(jsV;kUjFi&uW= b`KR8(7O65Qqe79>PgPN;%%RTdFtk1ZE1qBo literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$3.class b/bin/jake2/server/SV_CCMDS$3.class new file mode 100644 index 0000000000000000000000000000000000000000..935529f83f4b17ad375de8baa178a8cea069aba2 GIT binary patch literal 506 zcmZ`#O-}+b5PfA=R+mK-MLxWE@Sq+ffuqLDstF0`0mGG)rOM*cYPU=HTb?u?`~m(b z<1C;tMw_%Vuk&X5Uf(}n-vBgFbC6*ukNLf5)MKHiLf5;!zVCO=yZcQCHbZ4md<@iN zqGWxRMlOea!;n1#RWca}eZvQlU?{d#z@r}5 zVTzZRwi$&nL$&>nj1vY&%tVkFn!bUegH49gpJWeP>BBkl&^6p7asQUV?W#lv;xbGX zeIaJ(&?r&y8@evIl|t8L@`f@Vf}kRV~&aZg2M0q8Z3MF dN58%7x3EoJ8I-U?(WbvDqe_`elT$IYJ^{o?VI2Sf literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$4.class b/bin/jake2/server/SV_CCMDS$4.class new file mode 100644 index 0000000000000000000000000000000000000000..543ef3141cee99e8b0f0bd0ff8b74ecc40309924 GIT binary patch literal 510 zcmZ`#!A=4(5PfAUtLq|)B4A?V;6Xh|g5ES)V)_yK;D zaduH-j5cYfuk&X5-n_lPyaK3W%SMKwG!l2RUW=reN>gihx}MiMZ|@%4;0)z?^1;{R zu~xNN5{2q_V}|T$pn~{}!P?vJFmO-zr2`8~E*6kw$TtHeuO{Q3G&iCbN`^vH`y%WJ z6D0Wak;lUzVyHC#k#WLc%bD~iF?C->!NwXx@lUdg_4H%%&`#Y1YM{FV2B)nj#+R2t zq9XTY@o*%jf^=ReKh#m6Zd)=Q>b{F|(xpVS1{u7*mqx_ecys3@)omyxjTee2k`bz) z3D7u!3~h2w*rwYNMV7oAJYn%MO*?ct35{=qQ*xQGJ10@h5n@>RZctA#k)M(OUB3g1 eSAW#=&w2|RRFy#yn-n?CtAq;O9O|5iq4fcV?qbmZ literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$5.class b/bin/jake2/server/SV_CCMDS$5.class new file mode 100644 index 0000000000000000000000000000000000000000..b5cdd16b3f71f7ac60822e0073f7d0f383867b52 GIT binary patch literal 508 zcmZ`#O-}+b5PfA=R@X%oMZl9Wn5YLyFrGAC7EMS%4=7hsmMV+8E$#>5Z+X&q@CW## zj8h=S7;Vzdyw02Hd;R!)dk0X*j)e?EX~Z8zy%vjTBBENS+jHG^qfqEF8BA9Vgbf2L4wjH*$hUkcuG6qDqFde%1Vf>vJRWp; zJ%im*Y2=A3 zUu)3CnZe@`pKwxnDZN0&zI&sX=|Ff2a}4cgq=BwVvZ2Q+V_C^3={bk`QQCj g80P+uesj@pV2ipkC}NwUNxxM>g)*BaYcaIG01tCv@&Et; literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$6.class b/bin/jake2/server/SV_CCMDS$6.class new file mode 100644 index 0000000000000000000000000000000000000000..45d3022ce23bf6b6558902f88621987738296835 GIT binary patch literal 503 zcmZ`#!A=4(5PfA=7S}}-MZl8>4~U5*n0V26Sv4U6Jz%(!vQ$}ITI?=_-}0pK;0O3o z#wnmNMw_%Vuk+q?Uf(}n-vHFH>mbEY9P$TIuf;-7g|4+bUEgnAwD(UO*bJpb@i9=N zk&?BUiCp%(2}AlUlwoqtU{ww}47RWO!i9xZ4=YGBg^ z4h>#j+Q}e{8OqIn#yDkg#7qQ}gt~7a?_iUm@F&^BmU%cs9$I|dy<>3OYN7*i6`JR> zU*3*}e9CFSOBqBe4&{AIBm>p=P%`o&(Hi9JW-K&Ml=c^vX-2OhrObSlF_B-8`>n6SvJZdg b?WNwrHmOo5V27ejA5}z|GM74=VQ75QUdB7h;%}azH3+=T#UEgoj+dC&VEQZRg_!y`- zR??f8$YsBqGUU!e8K&n9+1(P%bQ@9%?MFOGM1pOQ zefmovLz`?9wkbQN$jr_DGZvqwWrt43(5wSkR9q(P&PWvVgcw%72h^sR$S)}T?)Q+j ej(+r8^ZqP0s4IgKHYr;4S!Glyb7-;=L+cYm^bi)c2zc_~K|M&aYGR`CvVMdF^nl??%2H)6&ycSNN?s46j?}lJ6H10cJ@!S| z5;`z=cFEITkT6v0|HwFDu;f_!!<444pkQH@q4+1+!J2v4ArDs~k_|Cv-!a(Dc&L4O z85jw65jf>Uvcurno5%n@Q({vO~?Fp*!7|J{Fx fEI<0u&u9HvtW#G8MQl*y^jRfTD6?s@5ku<}Ki*-A literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS$9.class b/bin/jake2/server/SV_CCMDS$9.class new file mode 100644 index 0000000000000000000000000000000000000000..6dea28fa1b7869e547ab1881ad74bca61671f44b GIT binary patch literal 509 zcmZ`#!A=4(5PfA=R@X%oMZl8>59&b@JQ&n?Sv4U6J*?qM%2H)FRh9P?z$;g~BSi5^|2HRIX;ljd_hXrIA^36z!tI@D4^bPOEf}zk*f=$U~!rqKTF-M5Be>bR2F_B-8|6N~) fWgq{jx99a1HmE9tA~q@7G_DdVbaSb5Du&i4*$85t literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_CCMDS.class b/bin/jake2/server/SV_CCMDS.class new file mode 100644 index 0000000000000000000000000000000000000000..718282cc9ef62f4ec9f13fef442c772f0e093013 GIT binary patch literal 18328 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_ENTS.class b/bin/jake2/server/SV_ENTS.class new file mode 100644 index 0000000000000000000000000000000000000000..16cb969c928bec3b88e5fd59fd7e73f72dac2c57 GIT binary patch literal 11261 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 Mp@opGWrpbaFHz~q1poj5 literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_INIT.class b/bin/jake2/server/SV_INIT.class new file mode 100644 index 0000000000000000000000000000000000000000..82e5197febb9d03c2417518af868c9e9b5659233 GIT binary patch literal 9710 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 B?|=XR literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_SEND.class b/bin/jake2/server/SV_SEND.class new file mode 100644 index 0000000000000000000000000000000000000000..00e78c94c6b47591a83eef6fcbdbd2daeb9e09b8 GIT binary patch literal 9224 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 Sut}cNN`NYvO_|eX=zIb}3S7wm literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_USER$2.class b/bin/jake2/server/SV_USER$2.class new file mode 100644 index 0000000000000000000000000000000000000000..405146f65ce0f6d7e7945d3da712ed20e4e1c72f GIT binary patch literal 482 zcmZutO;5r=5PeG*inWR&B6{-RK|R={9yMMNj0s`_%9Si-g~hr}wk`fHPZ|&Y0DqKm z3Pg=zliAs~^WJ=Ye!YJH@Udqj$55S!N9lX9G*fB3Zm)meZFCNN8=PTdBBsI%g&ujg zgNY0h8wG~)?{6p7S`0$TP&ijwB^M0V;Zcu)*Q23yU}4pTjUq#-rL=6PPXlT0=8AGF z3PjiwMrC;M$&;~)8EUQNU7b;WlWGTLRBUW9RF?5vY-c5lG)!AQ_a7LXZj_opHdWTD zyBP8$n}a%Q=pc+@rAIe18An4RTx%^&Jrr>)W9);9lI3Y>IWiiD&!bDv@`sdD~$_3z>hNC z0iwpx zy|D}v2TKh8?{6#BTJ$2xuym%hO3oSbhesU-UXT0IMINgj94s>wn@Y>O^tmU^!%X2f z<4{B$VN{0apF9~U%TQ@9?&_5Cn^e2-QF5@wP+G+Eu$`6kX_$Jf2Wn^&qx8^r2MlgI zPE9B;RMxaNANM4ihq|T3?Qg1|zgWuNrwq zzHs~s_hlOP=ys>HOK=LV5%y*ztfNSX_WP5dI>i8g!{&eeH5I-2qvvyd9%WMHu!9PD PPCEg1$y~~uHACkcAPZcW literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_USER$4.class b/bin/jake2/server/SV_USER$4.class new file mode 100644 index 0000000000000000000000000000000000000000..81a34d32bd3aaa67241d175dcc687e07be345261 GIT binary patch literal 488 zcmZutO-}+b5PgNh>bim=B6{-RK|Qz$deeB2U}CaD0?L(?r9yG-Chac&%ag`~KfoVl zoJFF>&}2G&o%iPJE%;-JV-`TgytT8m*M8HyK5tK^a)e|Xeq;LUg>UF5Om!NCecIZ#@*)2E>{ci)Oi z5Qie_3!^f;_~gk%S%!MBysLA{Z&K}|f~tcphUzk&hwZFniH5lnRz_6W4jvfXUYwdx zUaPEOZ!zjgHVyUH(qR-^rN_52nZzR^+-NOLGZNNHi+xaOvI4CxM@B;tTBX-1c}Bi) z`~vrR9`@*V=d=Kvg6o96ZxTu<6QbSzBxuYrz+bWXU*D#poj-cM(C1MjRSr9-ljpP# NV3*9L%vm#Zz5r;VTG#*p literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_USER$5.class b/bin/jake2/server/SV_USER$5.class new file mode 100644 index 0000000000000000000000000000000000000000..34a1ea2018af2a1e30d1c4bafb247834806c0592 GIT binary patch literal 484 zcmZutO;5r=5Pb`a)mlXn5j}bEpdM_3@ucw}!NdeV0?L&vWrW4LO|~un%ag`~KfoVl zoB~l}*kpG0?YuW%pI`4E0BYEAkQ1nk)DzYGnCzIW-|loD+KtxUi32IHHd15dhsq56 z+un$R#KD3<>G!vl8l!q42`rpxqmy%i{Qf~lK-Qx^xyWPLgM&qZVpAKsNuPUU@284V zGYVALQC4So_9>I0js>dC`CXlIew!K>C6pa(2$bjXJZxqqT^{Cw2HJEVGZ3XVpi7-K z>&?bI$|m978YT#%SewB$CBvxCgezmn)vB$uh;YixZW6gnu6^2qjN#)RhE$s(kr1bbk#*=VF3D;Un(+oru$p{Ca-ed*ZU5<=Y5n83!DS1Y| zP=AH}l7$_*?JTViPQi7;&O8YlC=sIN{uF3r7~pT%`p@^M>HQx*U-0v&5-W#Y)W~yM N2(U+HQ{{9RI^R(eTa^F+ literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_USER$7.class b/bin/jake2/server/SV_USER$7.class new file mode 100644 index 0000000000000000000000000000000000000000..7c97ef3ef8c4f5ce05744e5139e9032452621832 GIT binary patch literal 489 zcmZut!A=4(5PgN>>bi;|B6{-RK|Qz$9z1BgASNcL2`DjoAZ4jgT)RoT%YS*&c<=-K zDC6ux)EJsfr>`?_=FNP5y?+3xVaq{|p)wLrvgTW9#?tuhPWQImXzd(1;0!AxF&2I( z^uWLFjbsozm}4mY{Lb0>{PyVqgh^{6jh7(91_^jK^R%32bVG)Mtw@SAfl;csTexnEfHIH literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_USER$8.class b/bin/jake2/server/SV_USER$8.class new file mode 100644 index 0000000000000000000000000000000000000000..a1ca879807d71404a062de433c7a75a48377eac7 GIT binary patch literal 493 zcmZut!A`?44YFv<6gwo z*t-j+B1~+Q8LGd(y;Lb4M1rAwA(c!n8H$HTeFm$ohr&S-Yc6c8FjTryiQDuk5axc) zsCIS8qdqq>!;4QVnaG%-*In_6*a!^IxMvbAqEYHPu*0M%o{E2?{b7@kI^kBr` z_&PPAxRTk_?n3WLCW(gZs4&v8RO1_wO!SZvu9Xs|9q~98G4?_I$x5`p0vRbIv`Vj2 z@{D}x_!Z7e9(L(=^0Wag3a%4&=SkQ=g%B RByZ7DfL$_&Drdvc`3C1AT}%J~ literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_USER$9.class b/bin/jake2/server/SV_USER$9.class new file mode 100644 index 0000000000000000000000000000000000000000..534c538b69097302dfc23f1acae9c9a4397d46db GIT binary patch literal 492 zcmZutO-}+b5PgN>>bi=qi0H|K2le14crqFfA|@uN2`E=mmIB4KO}e}IyF6(;_yhb= z##tb03{9rf*LiQgKEK{S093K#AjeQ1iAPxtVrj?H2Ca7Ip;d40ojBkOYa=lhK_v7b zxa*E&m^fHq@PB`ssn((!Nrr_prB!mykl#OOGw_<}Nf&u6dvLJGP;4kIZ_}r)wD(hm z-!P$w+QO;~&pvrFR53%PF~6%*%5PKc!bi!$2198c&%TkvRz({r2&6zuXeC#@*qB~n9{#Tu613y73^{i=2lwFjMMXd^DL)RQCW z_NDH+cdedkhXQde2TCAY{Y}+F-_zZ50pSbeW)ihXYuV~6rVYz{b2lrs`>R8x2~@zc-X-!(m(Y8`AfT zKMlsiCod4llks2WMu-+j)rXPaR@a^x=1h-sY*f>|(OUVHz6=5t*w~@$zXnqF*p6Fnbe8Mr|qL0=-98n7T~q6;A1JOyg*b!cCimLanEY|yi?i7kE&A%6hmk^BOKu5QNw literal 0 HcmV?d00001 diff --git a/bin/jake2/server/SV_USER.class b/bin/jake2/server/SV_USER.class new file mode 100644 index 0000000000000000000000000000000000000000..0b1d937c3623cae7066c578874fdb81cb4499f86 GIT binary patch literal 12648 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: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 literal 0 HcmV?d00001 diff --git a/bin/jake2/server/areanode_t.class b/bin/jake2/server/areanode_t.class new file mode 100644 index 0000000000000000000000000000000000000000..6e911b79ffb3d03ac3d4ab23bc1cddff8d6b18eb GIT binary patch literal 681 zcmaJ;+iuf95IvhXmnKWo3#AvJ5NJzcBrNrXhaz5(DghCw0!51Y5N+&Lx~bzxYq#o8 z@G(3@NZdYvk3v1`M9>PAhn;g~Jf1l-^XvE5p8)ppw1R@b`beGX{UFu$T-!idt&&Nk z`&k8^z|u&as~}d%FnB*0=`a)U)P+d}#B0*Xq>P9|fogbS;>hYmVC%SZL&*by#mt)F zP}{zaOqj9G>O6U<#yW^ia@xD8UlbGzKK(W>C zQqn7muc3%FiDj%TfCEY_pjN@A!17Gkm0mS$;I2!(C$QF{mh0mlw7agvwnQD$v4;}3 zX6%u~A{s8XBe8^rK%-+4{qAf$(DtJm#9CmbGYM7PRn|Cv9`v#kx4_N+Y^nBPa%Mw) zXk3xT-wm#* zzw`rQiaY){Z1fn|n&SQy{=hGPFZYV|qn^iCsvk|!{5SOYGs_jQOS_%RY{J71rR;Lu bdt_}qhmSWLWsf;>)*esLq9^#({q0`@+B}L( literal 0 HcmV?d00001 diff --git a/bin/jake2/server/challenge_t.class b/bin/jake2/server/challenge_t.class new file mode 100644 index 0000000000000000000000000000000000000000..09d35a0c79aa37b91c4a2c3adb6681c0f3132097 GIT binary patch literal 426 zcmZutO-sX25S(pdV`6M#)vCQ&JZKLFdR06q2tv?(?|PaJ}`al|MDOO1%H4) zO5CKS7d`AQJM7NR?Dx;d7l0nx7HWjUSiHzyFqOqz7C|%-Ng}hc9B2zB!H>mU1c}JT z!NV|?ktP^oRPb83+3Os!H$s9&l~=_@8UJ?k@ilaHhW z0}U4rwk-IB*8iLiJTz<&c3o_sPVhpN$@^J4l*N-6CQRN8^GGCpQK+(Cfu^3QDWScR z`qv_hbsqCs5y@LsviNJ|1ASgP$1z_u_*-T0Y0iL!&8pf}WsjwP&Mu?ZJV{*r?gHE0 oPk7G@?7XA-##jw|oEsHa2PRI~RtNixxyv22aKIfux0*is1%NYI@Bjb+ literal 0 HcmV?d00001 diff --git a/bin/jake2/server/client_frame_t.class b/bin/jake2/server/client_frame_t.class new file mode 100644 index 0000000000000000000000000000000000000000..482b95489744998ad626a8226fd2ce2da8aca908 GIT binary patch literal 536 zcmZ`#T}uK%6g{(=AKR9;W@=_xP?QfX_*(Q(5Cmcmg%CZ+xQ#Zpt};6c{;VEEsOSgu zqoTX3FF`%bxpVH^IrrZ4_5Jn8xkpmY$m3I?+JWYpbk7(p ze>`YYE2(9uVs)ho^dd1O!GNB$90-QQx%8#JV2B-`v>4)7!zW=P2HV0qGHEbuT1X<5 z#1=#8-iud-a`Pn&2R z^KLj+uDF(=Q0}*jr=fw^r`|F0JwazBLWE-zLpV?rSC@Hf8P}pn9*3(EW~r)4DvV;W zHpfOSTm4AQkgL5T|1d{khT2jJ5cW9aM-h>=GK-`vDgC Bb0+`* literal 0 HcmV?d00001 diff --git a/bin/jake2/server/client_t.class b/bin/jake2/server/client_t.class new file mode 100644 index 0000000000000000000000000000000000000000..c20177e5433e2c0ca3a90ebd1aa34974450a4db5 GIT binary patch literal 1458 zcmZuwU3U{j7=9*6NxI#%p+IY?q6i2?ZKNU!RItQ;P}5dPsc^W+nQo?G%VxG_Hx<41 zk9g&^=a|Deg8l&iipReoJ~KN}JndfWJI_1s$MZfj^T*%6{tjRs4~obMoZ6F5)O;;b zy#v*&1yQJU+DeNk2vqjufviPRcWRqEdn!l;#v6-UOB?lvt@`Hujjg7DxGPYu$2v)+ zPPb*$S9un%(0PxMt@Wj5b8%&@v1!)AwL^c+RG_z&GJGtEyIrZ<>xl~3*(SCkcGAIj0=Y-zSlDM}0l%w~ zM0Qjw3BPCULeJ7EC;i@jk303auQ}z2YKLapldm?kKHILKEwN#(NFAt%Gqq(ZJLD`d zHk-|8rqRKp)Gvr)=J z7-Tby8QI*lRLF`LYi&<)GD|SF4mzA7C_ERy|^O?YOR_2hf9&Trq>ONk_8zz6r#~Hj?#EQV|QFq*lYC`Y&cnfEX_~KB5e>L#1 zmNnS$aS4|_ETbkc(FnEL=y!KiZ%gh(lykBX2Qu20z0hFiEToS^p6>LKhii^iQ2uf= zmBEvBx$ly^X58-uYB@Az%fp8`XI=}=lC*hJr!j*O93v_cZl z!xY@&;|^1Hi%&XC@hzTmc-q<5*u#805^HCjpR!v_(XFMT*1qlVITv@{*$d9TOH6 z2Ha-A;sAH5$48#NC=KvABY(s40IS?w<7Q)k_58w5I8prttFzCsOy6en2O(xFl^19;u`Jqc8J@||ZUtx3@!XUB zD2)U||B*NowkP}p`&HveIuS#<5uCSNzs(SiI%RCswy%hRjIHYiICRg z(r;1~g~E{xgB8PmAX?Jaz5S@f(03x*ZP|1c-+v>zr$@3*;78JrTB3c-z@9Utwp`zh zwuz!JUnM!aK~rWB#|XzDZuEiSCPxw}m5p%U7M|f2cx~lFr6Vahd=8Sd^?Xj7zO*)~Bc@vz5jx4+ClHBDpSWqv3cF9(HG+Fw{LW)oZY9wlnM68kQ z)JSG(Byx=;MUFxuN1 z>upW+wkECbn5tc1x`UZdn)NQlAz}ljk-#h&G>6v|>r~HCmm3`@V4fMu7lMM)@gX=3pOp*LCK1D@aR&_f_B*^e;4VcEfHT4 h<5(s=E5yD^aSbJ`V+R{}hRuIemj9}JOuAy&`2&IevGD)^ literal 0 HcmV?d00001 diff --git a/bin/jake2/server/server_static_t.class b/bin/jake2/server/server_static_t.class new file mode 100644 index 0000000000000000000000000000000000000000..78d189faad18fa7961db45ed67f759444da0d874 GIT binary patch literal 1039 zcmZWo+fEZv6kVq+w3gCBL2gA$u_BB@6|YfZ;*G=vHL-?7d6=9|4`pC3I5S1`*&p%A zCm&2~NJRYrzr}A5*GvZ#dFa_)`>egsUhACs`TOe+0E@VlMnYh6Q*Nonnyj{blY^K|bW^cAF*{JWXIc7W>+8ZQFHfKFw^j*Q2Jz z<7AzAfyCN<8oLx)e^($mJGUy3df+xy7D<$IC}A>#iU3YQ;9QO&o5p$Cdfe1QWqJ_u zF61zT;WXw1M!UQd^JFoLa>%`u!zjkWe+xN`V4lmAv);Y8Jv5h6=|@ z@?H1y*MnZJKpL4S(upYc#W)wSfP9P#aU8&4#4E;_&P4b$MxsddQKWW8jv9K-^$gJ` zq>x~Ir0wCXR-Ec!S{qE^JE|SbX#1Fbxd*L-i`rn%?zc<_^U0-;7}CCArnHYLH*59x zLX=qY;o#S2HcH|$*BM?TFvaE?Mcn2<4^hT4ucU%`Ofyqqriv?MjdTa#r+t-35KY9)G6aWAK literal 0 HcmV?d00001 diff --git a/bin/jake2/server/server_t.class b/bin/jake2/server/server_t.class new file mode 100644 index 0000000000000000000000000000000000000000..2312ec73570a85c37a37f3ccc93d684ee42b585b GIT binary patch literal 1139 zcmZWpYflqF6g|@xT1pXGUhlYzf4Qo-FK2hk}T*HNR&I{B#UcoB*0v+3=bv-&u#tgzaMMab8xjXi*ADp1DRSVCn zyU5d!m%dfBU5kp|E2%73+3I~RC_hNp;FOEXHl@$5x@wocH9g1i+>CF3u=3@d>ctnj z976)3?Pa!AupDp4F0#Y!Y8|$hc_H0`=Pa3~<@-;_vFez1L2KD!)^=^RAP`QEZ_teu zb{t0-{R#A-H-XN`F2HEtyT=8k*ynMt>Y>Jk$-$@sjlA(OCuC zR5Vcc+Pun%td*U-ReCA&+O*WFXUgJ+EZKTr3r5r%n{(@|rTOPY(oNy=9jq&9?mv?U zwL|fBuUs-M?KjElnVg!`Zv%rYHq58q#9tlixdKtd0&J*ZycTb)A-xZHb{HVN4vpJT#8bXQT!y7&4NvffI~WaMMUeaDsFNhH;FE z%_B@!kTH^V@4m+>xN9T@+35;q!r9MgHNIk|=NQwJ-CzGGL=WjtXTLSqM$RCY-V{f8 zP$eTIe|_Q2Va#)#YxQf9@fJkRm?jj3;8SjHY@uR_@er2(09Q-+ssI20 literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/DummyDriver.class b/bin/jake2/sound/DummyDriver.class new file mode 100644 index 0000000000000000000000000000000000000000..1a668e17b53075c110ebc2248ef97289e022cfbd GIT binary patch literal 1905 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/WaveLoader$wavinfo_t.class b/bin/jake2/sound/WaveLoader$wavinfo_t.class new file mode 100644 index 0000000000000000000000000000000000000000..efd437928f0cd3d14bb1be60ef62e560ccaf379f GIT binary patch literal 480 zcmah_Jx{|h6g<<9v?0(^pnNSAVgLprbp^3hLaG$O04gKACN6bx<0^66-^GN)zz^U@ zAznfR3lf9hozL%`eg61-dk4_PfrAx+&V-(2*H6tnj{JLC$iPq}lcOaqR6H^d)56{u@tW~rrwJDrrKGc8$lBC=#g z%&HeER`yb$bbK;kv!02hixQe1Jgf;c0u{^a`E)3gI~r=fs1=xy^nenT?F+GN$BNw! zga1;T3%Ivto`mvBWp0h%sApL=0k6+bPkNftRHhF01loU_a=4$*K?fXxzq87#l2^bf zuvTEbK)1lv90gBsRGwdF<}+qW<@6Pe7bYv%;9AW@@rV|4@4Eq;*vikh^V-G^qnnTK HVjs0H*lA`o literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/WaveLoader.class b/bin/jake2/sound/WaveLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..c92f15e37f933f6ff54024dc4583f468fa0e0c4c GIT binary patch literal 5824 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/lwjgl/Channel.class b/bin/jake2/sound/lwjgl/Channel.class new file mode 100644 index 0000000000000000000000000000000000000000..25ea7ef022227db625bc96d179655f8f22f194a7 GIT binary patch literal 9541 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 WF6P>4M1=@&M+FHI?jm7w;{O1u?RJF# literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/lwjgl/LWJGLSoundImpl$1.class b/bin/jake2/sound/lwjgl/LWJGLSoundImpl$1.class new file mode 100644 index 0000000000000000000000000000000000000000..de878aff297ef7ee4317164c1b9517733a759d0d GIT binary patch literal 638 zcmah`T}uK%6g{I`tJ|h#U-m6wU!54vY`JUM&kFj09{K_O zsOXOQP`&stbMHNK@0l}aKEK{S02Gnd5n@s>E^A=%87NZfO6;7 z%@lNK45^>KJKO7YJelvS$YtX?U>FZtj-S~fE^8FoK6M{B(g_Y3HnOAJH){-9$!mxx z7$!`NVcb9%lO}Y;7{XcA5VssDPJ5lY=w9%;D;ScNXLGm4yN;@dpr&LpWJcbaDUeKE z^o89Egn?Pi>zHFmk9wSmloF+#x%`pAAP2j)IChkv>A#+CxA{FM;YZSTJ>QYdst8(M z!^8?!iJ(jd4IX#JV3ws6-IB|FU-(Fq4Pp8{mPjZsC=1cj5g|NE*&fvjF>+fkw7tQ6 z8uY{!HaKB4S3!bmlV%h;g(OANh}e*2m!dk0cxkdbIv#CeCM2RKEK{S02GnY5MWqsS$Dix@Z6rP7sO+$AqwX8$+1~cK)Kx! z*`kIJL;5H0-getS`8Je_-^Mwh=GFCP$#Er^CL%1Hu+cF&6f3G(FTXo7Ov;W z#wqukZr#8VmTB`cDK*&ghQTOH$-5zWAw7chjVzf|qL3G$qai|gl)N2^6{6=i zUg&y*@ifRuC~WY;sO}s|iVdn!=mb(^X-33{EZbz&TO|Js{S{OHIWDN<s znA9a&HgoZw`)CEr2a(Mo*%fPeZj+y z@90>=I&EDem!b`?8T6VEykGUKAm9P=A(X}FQ;{S*McDz>648n~FLb;? ze~Nn25{qsa&DD{iTBjL_&LB&XG-7(hvQJUoC5z9{UNQHdqd_k=e{m#79C0ksR1C{l Qp{S63tJt7S8}U*44PRG@PXGV_ literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/lwjgl/LWJGLSoundImpl$4.class b/bin/jake2/sound/lwjgl/LWJGLSoundImpl$4.class new file mode 100644 index 0000000000000000000000000000000000000000..9ae555cf9a3951ae86bea221e516050ce4c81059 GIT binary patch literal 645 zcmah`+fKqj5IqY>p;SP;;hmV8ASPl6F(w*ch#E}wMT7B@kWv;XmaWpF{FaHA#0NjX zk220859$jK-I+N%bN0;X=hyoOfC4fK0t~Bd^OhI#p4$`kyz|&@I(g&b_{cbuK)G}0 z=tTt~hV)P0z2$Z~uE_UgG)2AYGlcz??de;@WsD-*rS3gj*#17lT6T2%dW9iWa_c+_ zhM0yigjEDFu0cVZA()j73BwlrwAZQe?zvfWI77;CEz_x(U0c>eFeGI%=p$d%izHLw zeQx!9u3{Rq3T7BGqn6W!^duxUxM4JRi6qq;%}8_tDT<^K@gd7LMR^y=JwtuP)PIg^dhzBLM`Xwm#2ifp TFpmX_Au@0gE0n22K1#m<0W69a literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/lwjgl/LWJGLSoundImpl.class b/bin/jake2/sound/lwjgl/LWJGLSoundImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7eb0ba8102b14131762cbfadf60d148b359c8912 GIT binary patch literal 13099 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/lwjgl/PlaySound.class b/bin/jake2/sound/lwjgl/PlaySound.class new file mode 100644 index 0000000000000000000000000000000000000000..c4f46f27cdf2e8ee9532330ca9581272c7468362 GIT binary patch literal 2806 zcmai0ZBr9h6n-`dSrS%MENVmnwJL^cRMb|%D#fBmP!vTG6_>cc;*!P9#`hN6+IDR1 zOsC`Y)v?+a=|_uFnZEeZ56<+Lv_HYAea_t&I;~@sU~1XHTS@GsA;Us?#ygb;({wM8m9M^R$_A%+W=45|*EQA9nISWqwH$&7+_atGh10H+AK^`{ zRYRHS`&Kq@`nH?pBiFMBZ7xE+d=~4sxY=*3ySp?*Mm_5^P1ZWgTuPfVj-9prS2cv| zR(A8e#XVugprOWqff;eG78_WCh4kB`ZpyMV{h7K`sS1}ZUER_hEb2;!|b zkO<;!H1M*DmvJnU)JFUvJ13Vn8<>TtteOnW3|6lim>sOP87L1{uNjz!`EqZ&ffq1` zgpKAj%ob)uIRa9thh)^Pd~V%hXhXXW(mNy2#tz5rH=Ue;G&<-v!{R-a4GCvWQ-SHD z(0r@UZ;W9N_Uh;?>iC)04D3TxQe`=X^Zf=6fK}5yizMX8ac$jmfl7(PgHoQbd4e*E zu>&k8kan!&;>=1Z;298VgnCRQ`D9@%g zZ#$_D(;sRer4|OL-)=UV>$SL}=LnO&d+Ap=A2LvZIg#z>0SR-`z#;I#2wWZ1?mwEf z>s-#aMhuMN6k%H)YhB4C*~_+@>h$ca-{pIjInr1PmTz9M>2tMi-mi5BYSZ?J?Z=VF z86A}VoM(L2z*z{uQE}%mex>mEbX?HCogHix^5R0hJ20Rm9;ZCKjMZw3y331!SIZ}{ zm|4m2D93!1Aj+N2T?nPjm(9aMzT3jug!ipd1AdDp6m(V$|ia}C@y@vgn!ZI}QeLXf|BbvCY=M95F%lPyqmBK2X za9Te`xmHfxoGS%%$H|ePTb{g+)ye3u(VlSG-ku0wC1rajkxC}D!;@G$i3VQSATUA- z#$0|5*vZ_sk%cz0zKem|i=pWeuM}9}xF|$p7pZ8qN&XAb@g}|+`Pwpxt;uBU=p>r2 zOrm8vPPwY(ZqA8L)UXSmrUuj&{Flo3EBJpzJR#ybGJ&PRAAL6v{{)r=e}#RxX1F;$i0>#%ag2rN zBQwXzkV)jd{GUhQYaW(i9s1=3hhDOu5Kw+v#nj%h^{5OPCl%Gez=Ezo_-Eo@wI8%h6 z6Vx<>QfQAcix7x_!>NGadZD)40tV9KD6MDQbiHC?CfCiv#>pW@?BInE&l-GdlcIH9647gvk%yQA7U-8QvM$m2?T)! z5KD2GVpF3>Yi5(mv>2PhkqCiHo{I!MFkEeXA#zj@ILd-$r!4o>J(7#>I21e^-* zC-~EhxANBj@CjjEBV(U3rOznI&#@F=u#3OM23$uYZlD=oQ+YShfm_&*ZdA8LY($+sRABxf?kWqOU_JXcY!&nxou ULKl_<4NzIKSu}WoH$%AiH*aha7ytkO literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/sfx_t.class b/bin/jake2/sound/sfx_t.class new file mode 100644 index 0000000000000000000000000000000000000000..04349061684468cd3e76378880ee0e8609ef14d3 GIT binary patch literal 637 zcmZutO-~d-6s+EFmez#@5l~q`1s#-0xN5i%O-P6yFdRt8rgye?>2;ZjJw3+1iz_3Kyls{7Z~kDmbcu-!yOV1A-L>%BP7igXy~qi=oJL``6BqQ0tl zs?u@%aWK(|6R4%?LJM?{{#+e9Ytr!>fd^KPP4296CQJLd{!-{P;jlOqs3$5pCts%U zpH-pXca*oBr6Ab12E}Nk?ctDJlOK2~sW=sAyfvwD`vTP$FHacfARFp7s#uWdU~UFX zAtBN7?4iUx+!yE^nN)u$E(Y3uQiExTpCxK~qO9@f-_4pkH@U#V{|Q65dNS3@de=3H zSu{Lbm#E*cO^F$_eean>6D@)EaaPzwzc+qeJACP`|1xZFsLHQz5UC~;UJ;NU0qGx* z?+D0O5G$PI8(HUhdKb<>C%Qy8s+3raswI}bhrwmmE^4ej)-8tHrbQ1c>_{3=hE+Tw z3Ov5GJmajt>qU_`E%Brz6D2mh@zc9jtcIKsQ}5956&CTDD|WGl_^(yH+f~nLUcuHi DcFAoe literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/sfxcache_t.class b/bin/jake2/sound/sfxcache_t.class new file mode 100644 index 0000000000000000000000000000000000000000..184184bc15c5914204a18f33dd89ee3d7496ae1f GIT binary patch literal 438 zcmZut%SyvQ6g@XhpT@RUt<}2Gx@fyF(5>P^K`azqDBZY_X)?A`V^T6x75~bG2qJ!f zA0^(@fEyXOhjZ?0&i(p+{{+y(b{-a?J{5Pe=jv!4`mVlx@`N{$Hzp68P@Reg;RYfc zyBDLW^b8>v$Z%{X1nLutK@`oj5iuvSdM2gM_^A9OpVLOhG9uW%FoIxRAG3IFv zZ1+1uhLgybC1kMTU>P++rrjA9L0EIJ1cy)=s8F8I??*De5~Dy8YJ-#rN8uH#FU&2hb1W}*?7~KiP41!2TK%^k8)z`&PHgggzB0C$ HS!n(M9lKFZ literal 0 HcmV?d00001 diff --git a/bin/jake2/sound/soundinfo_t.class b/bin/jake2/sound/soundinfo_t.class new file mode 100644 index 0000000000000000000000000000000000000000..20ddfafc4b280c0d0209007a2a177e88c96492ea GIT binary patch literal 407 zcmZ`#yH3ME5S-1+Nif8OM?^^n6j(|NqCrAJvY-H^jn4Lg&#~{UoXvlwLZaXU_$b8s z(Nf&Z&febM&i?#`_Ex2qmnR= z5}~!sEP);gjum;4Nmib%!dzLaj9y1cr8k60ds!I1p0;tQN)|&~NEs7Gw@Rz>j?llj zToDHMCYDq5;kj_JPnZQt%cm+2<@QyCnIy~u6NzjkwyM@$a!@9UyPgIAc)8*4Ure=) zAY<1#NLN89)7?qcVes1l$bXgD3Cdop{5onHe3IxWg)O+A&r@t?p2qL z0L`{yp@LO`!hmjG%3#-*uOsO?7x4sp`qr9-3}!XBZsCpw&nMs=FLFcaYf!^N7CCKF zx$;Fc?o0p3?vLndq31dF=-Bp^u9K!24pbme?M;_;eVyD;(TRLtx}o0Wz8Z~GkbW1> z4r-bqy8`JGISOsA;$RMSGlwJC~E0xhg2a&L*(_ZkUhca6!q+^%Qee?YcgLfhW1U$R#nUVS9a yz*OrtZ7d@nD^>Wf##*)5ZX?l}<@4XCO}-rGdBDuTCV4Utzp!GOJm|1Y;o%=!9g}0;uD_L5^XgF9xz+GcTs*heziQI74;rdye#Qs8wxhQK)V^ zV<=q3D$cGM^2aAF2HwzJ=^~G!hZPhUN5=l#>vE>UV&w8<8 zCHpOP3_25QN6odPqM`PkqBd?!69fcS`Lt-O9K&i$hsh8)^qxX z)z?|rrPrOMW#ANCBks+U2-k_xZhs5ZXB^<~DE-%uspVuz&lmbUwn>%44t5DS?PCx7 LWVuw?eumBu^RrP~ literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/IN$2.class b/bin/jake2/sys/IN$2.class new file mode 100644 index 0000000000000000000000000000000000000000..eb4d92ce4f06b0750b47589beea31956fa70d6d6 GIT binary patch literal 458 zcmZ8dO-}+b5PgN}>beTz7kcvGK|M&a9yMNwCYvmK@PjKUOCyD))!oHF^iO%xc<=}K zql{A^25r*5c{B57I`j4Y@d?1ko`V9zT2J()U(3c>Er{+9Lac?Q_(Ui4%QjG`5X@$wvE#Wjp^S#Ft|5nn8xx-*bz?yl2#D40-AzoptVfviO4dUVIMRWtp+I2rE!QmWStT+>p6bI z((5Gb((6vr#^4lOA?{6+2v>>GW`7I#6Atiql>Y0VspZR@p3n3}Y?7*gEo>8V+Qtrc L$#SW({S2KSzduly literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/IN$3.class b/bin/jake2/sys/IN$3.class new file mode 100644 index 0000000000000000000000000000000000000000..7be3c8fd83837f6f8993e87877585e9c96346a46 GIT binary patch literal 469 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/InputListener.class b/bin/jake2/sys/InputListener.class new file mode 100644 index 0000000000000000000000000000000000000000..c01f60e993855b8c5a92175a30dc12372ba1b929 GIT binary patch literal 3263 zcmb7FTUQfT6#h;?CWLSi185aN@j}2FFSQphtqM_*#2bjkR@)&t!bmcq$poYi{U7b> zyRWsbg{lR(UJv6z{2&feet_P6)h`RBji{{V0XD+VG0Lr=|B zc_vlatfXe_wW^b`Dvq>e*+9EM-&1qlOchLfIdyyKsmwVBIs`t@yXJ=v%U+dvWq3g#dNEh9Y|Hsvplv+4AkaQl%1Z+S0*RemVn|>p zj=ks?=(wmoJ3)cs=tZAEFTv%lYH>-H=gp-8Bll-YIkT`}mMyi`n=!Ouh>@HXt0J(E z)OM_gVrS;_X{ETp!SRsYP357Br%x{=7Zk6tIF8_`fI+W}S)tQ_a;mQIXw~T+BeYc zJT4lb*1Q(P*=`iaC9pesmZg&|<*g@{ELYOcG_jc&lDMq8;R^l7XI!xr#FYp0K?H%R zI7V?uK(HZHy>|>m4qfDZPZp%9iATAb-&|8U#Ea@iO%<#hTi0ubIuLyWY9Za)HaoAO zrEN!+6}I=xlE?Z=JK+#j_KnpE5b!@u6A2*SoyrPdF{7p?_cPE z>`0>`4K@_t2lgWM`5X6S#rj?a4{YXEN*i_zU*e&GMSp}?2&Xsz^^^3oXFCQnw?S(^m< zj0SL0kKaZkmSL_`E$4VE^vJ0j>nBzEyjAR2?Bbt+PIRH0>zJBZ{9)LGD0ZWtJA1fF zA;Krn^%{xAR~USWeJ{9-U_YNReRz!T!#JRKK{rlA-A`R30TJnJCiep>W%AgFhnCe@F2ekXZ4 z!Mu_fzzI#xjWmd3IL`BN{tqDXmW~kvNrMo=z~sM#jp9R`^ho^dkvQ&?*h1NcI#U;e?c?i4P$L{v91+M#$ zMGx{wjs1_lEl8aMeAm~9O)+X5of8sb(9h^!A$SC)<@Wx30;+zUb0m&Hx&*3OVd6Uh67 zTxbD#duPa9O&}Ku`LG4#o%e%$M99Z2An#HdckDH73Nr*z-xPDYDdv5MYhFwDsNU^s zR*yVqlni0^_>I=XMsqRmzbEDjF|8Ju3qIx@k7t5c@4-tvQgox+>f#QK0!LAizYBH< iJ>fG>_>6PNdqUQ$(5!{NBja)ivt9+Mm3^Y`>GJ<`5@ogk literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/JOGLKBD.class b/bin/jake2/sys/JOGLKBD.class new file mode 100644 index 0000000000000000000000000000000000000000..e1c8d5f5b2b60c26b046c3d159b33881b8313fb0 GIT binary patch literal 5059 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 EAH>^J(EtDd literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/Jake2InputEvent.class b/bin/jake2/sys/Jake2InputEvent.class new file mode 100644 index 0000000000000000000000000000000000000000..69cfa10f7b6f5a8192fb75af2fa6622b77196531 GIT binary patch literal 731 zcmZ{h-EPxB5QWb=Y0{={Q_@07!%z56BB)VsK}ZmR6i8bHRVpqw>9ln)c4e=F@>pC{ zNL=s$JQU)ri^K}Sg~$8N?w&I<`{U=g?*MkttHM)gPW4CG39@+>ytb=Be3qM+Gl@+V zWrek=p6MXc@ky{hp31~1EWVNX+f=elK@AjE`bnG_9h;Gkaw$<73N@a2Cz0r^$S4JW zH!)!n?=c?F?J0UMzsQYA;zG=(N>sZ@Id@rv-%mvw`Ez$cp-$W5@FY*2bcM!;ry|jA zGLs{#SXC&S`I#tqGE-O|7VYTICU|~$P;~i3q4G40L-R~wvorX|f$oSR{p3h$DB*^W zE!?x~{sM$Cg5dxF literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/KBD.class b/bin/jake2/sys/KBD.class new file mode 100644 index 0000000000000000000000000000000000000000..b4ec5664bf6dcddc835a62a1c0bbf13ff62d697e GIT binary patch literal 573 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 W{}s5tMZsUG;BVimfYn1w&ioGzQK@bK literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/NET$loopback_t.class b/bin/jake2/sys/NET$loopback_t.class new file mode 100644 index 0000000000000000000000000000000000000000..ed9efd0a30f9201e31e5d36e74538d204e9231c8 GIT binary patch literal 584 zcmZ`#%}(235S+C`9Gj5e(ojP9kx+kfAX1Jcr3X|bqyUE?B*X!I37>)!W24wX;!Izp zr=BadLZT`Uz{BteO~(eQLbS5H_`Hg-SluX;gn z-c`NfabzJSC=AqvYIw@;H}<*%-HQaNv#=iu=8xLXCrKSg>jJZ{*(uxX4z+(GNViW^ke%n8;<}VA?`KQ2CFX4M8c3DWo0bkrU+GuCI5;XI(woS6xq&ZU;T( z9jK8T=a0oybn3=?{$tID1G%U8f|*Xldw10NlA9Ch!0pKzQ#w)l7IOi qORO-u0?Q9<&Dotv5x)qEHC+VClt!Y}=)#rio-z(Vyi(1QCCL zKT3QXMeyKZ=j|Kb8)kMtK40Gfw6SHwAZ*OUt!xMCQ3d_8!A_i}cXKtp&TUwP+DzPw zAQs6qxERgkI44*Wkqd%xbxN@HJ(dZ9dW7;(ltlS4!Q9;&@?bZeNDn3|K3sS%2+KZ7 zD02;?MD`c+k<12S6iY%QOvfS~iY(Io4{7B$ks>t1e=HsnyvuZvjpccyMH~*WuN@Qo zUXsYH8w;hRvaw01{1G9zze%yp)=Yj9gAe;-1Z+5r987y>T;lG8Cx~mc^#Z?DFFm|D p&!|2zW1yz_LZt%>2dJQfI&=Q_1{zo?=2i<_!#Y>3%O8Ly+%Ew~PGSH6 literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/NET.class b/bin/jake2/sys/NET.class new file mode 100644 index 0000000000000000000000000000000000000000..a6a0799cdb21cda70d07559cd3477dcd441840ae GIT binary patch literal 7920 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/NanoTimer.class b/bin/jake2/sys/NanoTimer.class new file mode 100644 index 0000000000000000000000000000000000000000..3ffbe5e51a9e9e6bcb0d00953f82b0b70e16e8b6 GIT binary patch literal 569 zcmYLFJxjw-6g{^|8(U+)O#MK##z{L^a8-&ZI7oG=xWCqiKAWbJq=HV)g19(3_y+_9 zMR9O+@V_`aDc%=@29kI0J?EWsZr;CNUI8p&&O(YXdMLVbsUDt$^=;wzcT`UX7ED6n zABcwpvn@hNpiM$%Mfoaf5RCbST}IaXdol+D!!|4o5nD2_$l6aId^brMFh zXQPM`VaQLsVuj5tIEaljGVI$_zT6)4+A`P?ZI2Dh&3;FCyCP7!Pljf6ph7~W`5*Hy z|1zP}83cj!BOQH9d7cW>XS}t3GL5^p&zr}O3(g%eOi1rZFA{{2RwO#zEpe21a%O|&2q_($s}#SyJx{V+H5es6?b;J^wP)CmDBs5{hrjvwZXPBI z80LRc(ac{y#xTwuVFIN@>y&wEo>f_9wOV^XS+2R+t7~Lk2a{sWJ$EqGy}V_L0WCik v(?|K5!}1jt(xMZw&1`I4O>9g|VVdI;^Bl}@WuVFm7U&D(rpdr8w<)+k@EvE% literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/StandardTimer.class b/bin/jake2/sys/StandardTimer.class new file mode 100644 index 0000000000000000000000000000000000000000..8e9024b94f094505a27af0a7ca776e2e34f42daa GIT binary patch literal 555 zcmY+A%}&BV6ot>wVg)PziuecYl!YX0HO6S-f}k6W`vE3eDaEwKgq;uJ(pPX{qS3hU z0emNoXGRi3leTy6J@-5J&ezY!Cx8~J4iW<88#z?1W;BhO-B<<#84fPIkqRBy0@?qf zNeb9K87TqL7Fam&0xv!kuy%GYSveUGR2mkRTsT-vV;NZo8G+o5ypv5|23O7QG>X;8 zMGkp^e18&#Du^}t%=3LOGN^V60!0@|EO3C17pU{esHegU+4JdK=#2Z)zm%b;&$FZ* zU+eBl=YQV0W%iTzTvb=*pk_=fGXtBsbq+45 X%V2|%g-sG1h;Ni_n}sbN6WIO*bV6bk literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/Sys$FileFilter.class b/bin/jake2/sys/Sys$FileFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..c109549ecc5c46f8c99aa6bc46cae4d74d212659 GIT binary patch literal 2501 zcmZ`*?Qc_69DYuF+uM~p*a~~;#%7T@*KVvbap0zdF+qj{ro&AT(Yx-hyQ919+S|GL zjuMG)@jW{Hphl%J5CbBGsNtg@_~a)OLt;!!_$!R_Ik%;}bX)Sf=bYa;zqjZ2oYP(X z@8>H3x^P^DOQ3#QKW21AGYgsM$U>%Nx0x^~wvkq$2vkk$b9ywPTk+_D@o6JwtMCfc zI$ARsm8UIzrf4Ccrj58UpGpe^hHhGp*lE*>_X_xCvKf0ypECr+AeS-SDlWYbnU-ny z3DmWf8x9VJM+KCDge8&w)KR13J4{N2ZOU~~sn}CyMxcQK zmPeEbteP~fiIi>=UrWHN$6`jx7T8!!v>7j&LxL_4o7_$;IP4mT^zPckB@5D19Hi$r&5MBA<(g0>1B8pQtFi+ z9+Mu1*zLA~a&DB)wP3%70~lr`Qa)}^Is6-x4xZ33f`g>9oh;NVu&%A#6@!i9DHUTR zn{zj^wwZ`JT#XJF7@^@1h`1VKZ+No=HmzJtxpl7(M`&VNb9%y@2u;#Ms7SR?TPV^Q z37MHtHe*bLOe

`a~$~_v0v@Q}HYbQDE&XW6vb5DCwa=$2jX9=Iym7S0L4>3WDCc zLO~-7maWh4nwKm$lVrSF;=U_G-}NgshV6|}*ln+oiRmd~A&878lO4~HF~X!!SA?e= zi#q}n`&ndEkjUDtZNa&f2!O*YruH5!8&{En^_!uC>yXmHQ_=S9m_=S9k zoRQBEM}?xHlBZU4mf}gNsgGR3nn^9);V)SX+$xItNB0r%vkBy6{j_eAa!I+ioX;)y~mbzNTpe3Aqd$Dwvl7H)0byoxqKVG6fgzbL>Ts1K;;TT-OLU zBsSN7!RAAkaQ{Acx8m;h=5V3C#+%2MKGEZ8I>Q6}J4un1Z=j4)B9twZPRcIIc1oOb zgfd^FoPsZ~EeB7ar^l1So`T{bspyl6tp&vnsn{tMtp!D&R6HUTH8sj2RCf-F(yip+ zWokjsZ>Z`Bdh*yk#$^r_9Zh-c9XsI_HD0!C-`7ifJMwtE#~bus#*SceJO03*h!vqsJAf__gO>>Baa7}VcIpi@;sl2ACa?2JUfZ{j#M=b>UA%_( zxcfdn#0U5UAK@!}jBoHMPUAD2!RPo9i@1z0aD~3E;!8&RmeIb$HJ$DeT1b9-dCCWi znW|2!7f`pva#R&UMT^RZm3JIiLf0&j@|1Subm*7dxD-IA9aQ%x0r%o4MWGXK9`elyt_gml<_SE-3*8mQI literal 0 HcmV?d00001 diff --git a/bin/jake2/sys/Sys.class b/bin/jake2/sys/Sys.class new file mode 100644 index 0000000000000000000000000000000000000000..3e5b5da1df7b24c30e3cce2e3b71857586e9187c GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git a/bin/jake2/util/Math3D.class b/bin/jake2/util/Math3D.class new file mode 100644 index 0000000000000000000000000000000000000000..70b39550f6dac9cfcf1745e44df5e1c6e0220866 GIT binary patch literal 11032 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 WTrmPk4%k&-jB$-8<`N7Ip7wuZmdGXm literal 0 HcmV?d00001 diff --git a/bin/jake2/util/PrintfFormat$ConversionSpecification.class b/bin/jake2/util/PrintfFormat$ConversionSpecification.class new file mode 100644 index 0000000000000000000000000000000000000000..e81795053485ae2edeb9a9aeefb6c873adc87480 GIT binary patch literal 32634 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 L?C}K|_;B+#oyWzG literal 0 HcmV?d00001 diff --git a/bin/jake2/util/Vargs.class b/bin/jake2/util/Vargs.class new file mode 100644 index 0000000000000000000000000000000000000000..da0162bb1a84197f48dd0018272444d47dc61005 GIT binary patch literal 2568 zcma*n?{gYO7zgn01`^0Ynv^zaO>Lt_Tc9pIpGp|*MUo% z`ZxJPXEe;TGmfwNqJNb7Jj+4=m(j`09e3INJkLJ2&%XWZ)gJ&>@gjr?fw?_v-(F1} z_)arbvRd_a2toPw&`LEex1QRr?%6e8AZQjU8v>#rFq8G%wr{z9$!Z?h0n#SvABO_5 z%{`0ebupUdwbBAp>yGRAw*><6M2VcNw`&^^n2jQWIeHN<@cY?K$F;W(o>%SGj#X{i zta&x7Nl7{UtX>BFhSTmw8qPayAbdVSumww zvQW?pxuLQZT;Hy97Fqrr^YNl~&KEGep?JD?qE;2|C}QD!1130mI8!Ov{^Eyt~=HDLl?-=q;#c}Lfs=GK=nh;a;|gN*i^tO_oWg0k zv%n4uhX~5COUVxAlfU828yI{$!aK>=SS+9G;KJ`X!*oE>3xt9?FNhQ|SBbxd3v{@0 zn1wE-!T?M3$BTH6{x<{hHw~HyL2xdD*7||Up{R0*ap2cj=Aa)PA^s@&3ymCH(HiA_ zV<1$lA1X$xy+R(lAM4!}cCTvPTjZw4x}PZby53!5_omjpL+;(N?k(k}_3k>mx3zAL z+>NpBJ>_QfZkF8*ty>_sIM(G)$@R_m-ATDy)pxsJUh1Hrb+^df9_wx@_d(z7?n&it zm6tpCO6!{B?u>O!pmv8Jl3r!_la_|v`4w$BD{YuYr&_~zRw20 zNPpu-XybmXz^DHotP)ro3qF(Jd3>k9oAQ~?kX~z#HddVunug@MN5ypisQ4b1Le>-_ zmwANhpIAI*cy9pS0MT2b;G<9xtBMGB^Jt9DZx755_fw!VQ$N4?bN_tk#{W?}-<6}h Fe*nU8oDBc~ literal 0 HcmV?d00001 diff --git a/bin/jake2/util/Vec3Cache.class b/bin/jake2/util/Vec3Cache.class new file mode 100644 index 0000000000000000000000000000000000000000..413a7bdc40fedf9de49ff352f8501702557a6579 GIT binary patch literal 1131 zcmZ`%ZBNrs6n^g3ty`&MmUjd#3bLWBGE|fyAQ%!7q9&LngfDdM%_w#)=~|-yN+B7E zCVumaKgxJ+yNn(k@*{!yF#@bmKh5A89kUE zwDqXX?TTP|Ay{5AEcVm6l}#XDsd$Z5dfm`Zd{NhwZW^d5Si`!EH}tH1>Z4*qq$!_@ zlDQs(vhPQM#djR>+=X6gDguioYK}CuX&RHFYiOm2o{4Ab7@D&*Dj1-9D(yCqq7fJ> zZf1YuPU-@M^aYCaYu_oH!Z3{*qHTKC0hh8DSz}8Se>CV7e!~*v%qOK*=WDmADcg zO;OU**P!>ivMY2hJPYV#Kd4U7nHZXQ&*MQ{#|h{?{dZmO`Z;EPV*WrYU*gF*H0h{= bidOC5c?T;U)c&_MOI&k3TMV0Vwr~Fdn$F9b literal 0 HcmV?d00001 diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..7a84342 --- /dev/null +++ b/build.xml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/LICENSE b/doc/LICENSE new file mode 100644 index 0000000..5b6e7c6 --- /dev/null +++ b/doc/LICENSE @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/doc/README b/doc/README new file mode 100644 index 0000000..c8f8e74 --- /dev/null +++ b/doc/README @@ -0,0 +1,58 @@ +LWJake2 README +LWJake2 Website: https://github.com/flibitijibibo/LWJake2 +============== + +LWJake2 is a fork of Jake2, a port of the GPL'd Quake 2 engine from id Software +to Java. + +LWJake2 is distributed under the terms of the GPLv2 (see LICENSE). + +The port was done completely in Java. No native libraries are used for the +game functionality. + +This version of Jake2 uses the Lightweight Java Game Library (LWJGL) for +OpenGL/OpenAL bindings, rather than JOGL/JOAL. + +LWJGL Website - http://www.lwjgl.org/ + +LWJake2 is still under development. Send bug reports and feedback to +flibitijibibo@flibitijibibo.com. + +Currently LWJake2 supports Linux, Windows and Mac OSX. The LWJake2 dedicated +server runs on every Java supported platform. + +System Requirements: +- A computer from the last 5 or so years. +- The latest version of Java. + +Installation +============ + +- Extract the archive that this is in (SO META). +- Install Quake 2 data (see below). +- Run your respective executable (LWJake2.sh, for example) +- Play! + +Installation of Quake 2 data: +By default, LWJake2 looks in its own directory for baseq2/, so by default you +need to move your baseq2/ to that folder. However, you can change this by +modifying the "cddir" cvar in your config.cfg. For example, if I wanted to +host my data in ~/.quake2, I would add the following to my config.cfg: + +set cddir "/home/flibitijibibo/.quake2/baseq2" + +Be sure to check for "set cddir" first! LWJake2 adds this in the default config. + +Credits +======= + +Bytonic Software - Original Jake2 authors +------------ +Holger Zickner +Carsten Weisse +Rene Stoeckel +David Sanders - Original LWJGL implementation + +12characters Games - LWJake2 authors +---------------- +Ethan Lee \ No newline at end of file diff --git a/doc/readme.id b/doc/readme.id new file mode 100644 index 0000000..ff05cab --- /dev/null +++ b/doc/readme.id @@ -0,0 +1,29 @@ + +This is the complete source code for Quake 2, version 3.21, buildable with +visual C++ 6.0. The linux version should be buildable, but we haven't +tested it for the release. + +The code is all licensed under the terms of the GPL (gnu public license). +You should read the entire license, but the gist of it is that you can do +anything you want with the code, including sell your new version. The catch +is that if you distribute new binary versions, you are required to make the +entire source code available for free to everyone. + +The primary intent of this release is for entertainment and educational +purposes, but the GPL does allow commercial exploitation if you obey the +full license. If you want to do something commercial and you just can't bear +to have your source changes released, we could still negotiate a separate +license agreement (for $$$), but I would encourage you to just live with the +GPL. + +All of the Q2 data files remain copyrighted and licensed under the +original terms, so you cannot redistribute data from the original game, but if +you do a true total conversion, you can create a standalone game based on +this code. + +Thanks to Robert Duffy for doing the grunt work of building this release. + +John Carmack +Id Software + + diff --git a/executables/LWJake2.bat b/executables/LWJake2.bat new file mode 100755 index 0000000..311a266 --- /dev/null +++ b/executables/LWJake2.bat @@ -0,0 +1,2 @@ +@echo off +start javaw -Xmx100M -jar lwjake2.jar \ No newline at end of file diff --git a/executables/LWJake2.sh b/executables/LWJake2.sh new file mode 100755 index 0000000..bfb23b3 --- /dev/null +++ b/executables/LWJake2.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd `dirname $0` +java -jar lwjake2.jar diff --git a/executables/LWJake2_Server.bat b/executables/LWJake2_Server.bat new file mode 100755 index 0000000..f767dbb --- /dev/null +++ b/executables/LWJake2_Server.bat @@ -0,0 +1,2 @@ +@echo off +java -jar lwjake2.jar +set dedicated 1 \ No newline at end of file diff --git a/executables/LWJake2_Server.sh b/executables/LWJake2_Server.sh new file mode 100755 index 0000000..00993a4 --- /dev/null +++ b/executables/LWJake2_Server.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd `dirname $0` +java -jar lwjgl.jar +set dedicated 1 \ No newline at end of file diff --git a/findbugs/LWJake2.fbf b/findbugs/LWJake2.fbf new file mode 100644 index 0000000..43bc332 --- /dev/null +++ b/findbugs/LWJake2.fbf @@ -0,0 +1,2 @@ + + diff --git a/findbugs/LWJake2.fbp b/findbugs/LWJake2.fbp new file mode 100644 index 0000000..ddbd721 --- /dev/null +++ b/findbugs/LWJake2.fbp @@ -0,0 +1,6 @@ + + ../built/jar/lwjake2.jar + ../lib/lwjgl.jar + ../lib/lwjgl_util.jar + ../src + diff --git a/findbugs/findbugs-2.0.0/README.txt b/findbugs/findbugs-2.0.0/README.txt new file mode 100644 index 0000000..4ddbe73 --- /dev/null +++ b/findbugs/findbugs-2.0.0/README.txt @@ -0,0 +1,20 @@ +To get started, see doc/index.html and doc/manual/index.html + +The FindBugs source license is in the file LICENSE.txt + +Both the name FindBugs and the FindBugs bug mark are +trademarked by the University of Maryland. + +The Apache BCEL license is in the file LICENSE-bcel.txt + +The ASM license is in the file LICENSE-ASM.txt + +The dom4j license is in the file LICENSE-dom4j.txt + +The AppleJavaExtensions license is in the file LICENSE-AppleJavaExtensions.txt + +The Docbook 4.2 XML DTD license is in the file LICENSE-docbook.txt + +The JSR-305 reference implementation license is in LICENSE-jsr305.txt + +The Jaxen license is in LICENSE-jaxen.txt diff --git a/findbugs/findbugs-2.0.0/bin/addMessages b/findbugs/findbugs-2.0.0/bin/addMessages new file mode 100755 index 0000000..5b9e5be --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/addMessages @@ -0,0 +1,73 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.AddMessages + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs diff --git a/findbugs/findbugs-2.0.0/bin/computeBugHistory b/findbugs/findbugs-2.0.0/bin/computeBugHistory new file mode 100755 index 0000000..24ce26c --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/computeBugHistory @@ -0,0 +1,78 @@ +#! /bin/sh + +# Merge a historical bug collection and a bug collection, producing an updated +# historical bug collection + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.Update + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/convertXmlToText b/findbugs/findbugs-2.0.0/bin/convertXmlToText new file mode 100755 index 0000000..e8493d6 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/convertXmlToText @@ -0,0 +1,73 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.PrintingBugReporter + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs diff --git a/findbugs/findbugs-2.0.0/bin/copyBuggySource b/findbugs/findbugs-2.0.0/bin/copyBuggySource new file mode 100755 index 0000000..355819b --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/copyBuggySource @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.CopyBuggySource + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/defectDensity b/findbugs/findbugs-2.0.0/bin/defectDensity new file mode 100755 index 0000000..a297a03 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/defectDensity @@ -0,0 +1,77 @@ +#! /bin/sh + +# Generate a defect density table from a bug collection + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.DefectDensity + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/deprecated/bugHistory b/findbugs/findbugs-2.0.0/bin/deprecated/bugHistory new file mode 100755 index 0000000..5f5599b --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/deprecated/bugHistory @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.BugHistory + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/deprecated/unionBugs b/findbugs/findbugs-2.0.0/bin/deprecated/unionBugs new file mode 100755 index 0000000..9da0b84 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/deprecated/unionBugs @@ -0,0 +1,78 @@ +#! /bin/sh + +# Create the union of two results files, preserving +# annotations in both files in the result. + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.UnionResults + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/deprecated/unionResults b/findbugs/findbugs-2.0.0/bin/deprecated/unionResults new file mode 100755 index 0000000..01d2126 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/deprecated/unionResults @@ -0,0 +1,80 @@ +#! /bin/sh + +# Deprecated + +# Create the union of two results files, preserving +# annotations in both files in the result. + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.UnionResults + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/deprecated/updateBugs b/findbugs/findbugs-2.0.0/bin/deprecated/updateBugs new file mode 100755 index 0000000..24ce26c --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/deprecated/updateBugs @@ -0,0 +1,78 @@ +#! /bin/sh + +# Merge a historical bug collection and a bug collection, producing an updated +# historical bug collection + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.Update + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/experimental/backdateHistoryUsingSource b/findbugs/findbugs-2.0.0/bin/experimental/backdateHistoryUsingSource new file mode 100755 index 0000000..55030fa --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/experimental/backdateHistoryUsingSource @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.BackdateHistoryUsingSource + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/experimental/churn b/findbugs/findbugs-2.0.0/bin/experimental/churn new file mode 100755 index 0000000..998de6a --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/experimental/churn @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.Churn + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/experimental/obfuscate b/findbugs/findbugs-2.0.0/bin/experimental/obfuscate new file mode 100755 index 0000000..ead5619 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/experimental/obfuscate @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.ObfuscateBugs + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/experimental/treemapVisualization b/findbugs/findbugs-2.0.0/bin/experimental/treemapVisualization new file mode 100755 index 0000000..9795ff8 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/experimental/treemapVisualization @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.TreemapVisualization + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/fb b/findbugs/findbugs-2.0.0/bin/fb new file mode 100755 index 0000000..4b96508 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/fb @@ -0,0 +1,192 @@ +#! /bin/sh + +# Launch FindBugs from the command line. + +escape_arg() { + echo "$1" | sed -e "s,\\([\\\"' ]\\),\\\\\\1,g" +} + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + + +fb_appjar="$findbugs_home/lib/findbugs.jar" + +ShowHelpAndExit() { + fb_mainclass="edu.umd.cs.findbugs.ShowHelp" + fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + exit 0 +} + +# Set defaults +fb_mainclass="edu.umd.cs.findbugs.workflow.FB" +user_jvmargs='' +ea_arg='' +debug_arg='' +conservespace_arg='' +workhard_arg='' +user_props='' + +# Handle command line arguments. +while [ $# -gt 0 ]; do + case $1 in + -textui) + fb_mainclass="edu.umd.cs.findbugs.FindBugs2" + ;; + + -jvmArgs) + shift + user_jvmargs="$1" + ;; + + -ea) + ea_arg='-ea' + ;; + + -maxHeap) + shift + fb_maxheap="-Xmx$1m" + ;; + + -javahome) + shift + fb_javacmd="$1/bin/java" + ;; + + -debug) + debug_arg="-Dfindbugs.debug=true" + ;; + + -conserveSpace) + conservespace_arg="-Dfindbugs.conserveSpace=true" + ;; + + -property) + shift + user_props="-D$1 $user_props" + ;; + + -D*=*) + user_props="$1 $user_props" + ;; + + -version) + fb_mainclass=edu.umd.cs.findbugs.Version + fb_appargs="-release" + while [ $# -gt 0 ]; do + shift + done + fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + exit 0 + ;; + + -help) + ShowHelpAndExit + ;; + + # All unrecognized arguments will be accumulated and + # passed to the application. + *) + fb_appargs="$fb_appargs `escape_arg "$1"`" + ;; + esac + + shift +done + +fb_jvmargs="$user_jvmargs $debug_arg $conservespace_arg $workhard_arg $user_props $ea_arg" +if [ $maxheap ]; then + fb_maxheap="-Xmx${maxheap}m" +fi + +# Extra JVM args for MacOSX. +if [ $fb_osname = "Darwin" ]; then + fb_jvmargs="$fb_jvmargs \ + -Xdock:name=FindBugs -Xdock:icon=${findbugs_home}/lib/buggy.icns \ + -Dapple.laf.useScreenMenuBar=true" +fi + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/fbwrap b/findbugs/findbugs-2.0.0/bin/fbwrap new file mode 100755 index 0000000..85aba91 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/fbwrap @@ -0,0 +1,84 @@ +#! /bin/sh + +# A convenient way to call the main() method of a class +# in findbugs.jar. + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +if [ $# -eq 0 ]; then + echo "Usage: fbwrap

" + exit 1 +fi + +fb_mainclass="$1" +shift + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/filterBugs b/findbugs/findbugs-2.0.0/bin/filterBugs new file mode 100755 index 0000000..9116229 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/filterBugs @@ -0,0 +1,78 @@ +#! /bin/sh + +# General purpose utility for filtering/transforming +# bug collection and/or historical bug collections + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.Filter + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/findbugs b/findbugs/findbugs-2.0.0/bin/findbugs new file mode 100755 index 0000000..471cf31 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/findbugs @@ -0,0 +1,199 @@ +#! /bin/sh + +# Launch FindBugs from the command line. + +escape_arg() { + echo "$1" | sed -e "s,\\([\\\"' ]\\),\\\\\\1,g" +} + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_appjar="$findbugs_home/lib/findbugs.jar" + +ShowHelpAndExit() { + fb_mainclass="edu.umd.cs.findbugs.ShowHelp" + fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + exit 0 +} + +# Set defaults +fb_mainclass="edu.umd.cs.findbugs.LaunchAppropriateUI" +user_jvmargs='' +ea_arg='' +debug_arg='' +conservespace_arg='' +workhard_arg='' +user_props='' + +# Handle command line arguments. +while [ $# -gt 0 ]; do + case $1 in + -gui) + # this is the default + ;; + + -gui1) + user_props="-Dfindbugs.launchUI=1 $user_props" + ;; + + -textui) + fb_mainclass="edu.umd.cs.findbugs.FindBugs2" + ;; + + -jvmArgs) + shift + user_jvmargs="$1" + ;; + + -ea) + ea_arg='-ea' + ;; + + -maxHeap) + shift + fb_maxheap="-Xmx$1m" + ;; + + -javahome) + shift + fb_javacmd="$1/bin/java" + ;; + + -debug) + debug_arg="-Dfindbugs.debug=true" + ;; + + -conserveSpace) + conservespace_arg="-Dfindbugs.conserveSpace=true" + ;; + + -property) + shift + user_props="-D$1 $user_props" + ;; + + -D*=*) + user_props="$1 $user_props" + ;; + + -version) + fb_mainclass=edu.umd.cs.findbugs.Version + fb_appargs="-release" + while [ $# -gt 0 ]; do + shift + done + fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + exit 0 + ;; + + -help) + ShowHelpAndExit + ;; + + # All unrecognized arguments will be accumulated and + # passed to the application. + *) + fb_appargs="$fb_appargs `escape_arg "$1"`" + ;; + esac + + shift +done + +fb_jvmargs="$user_jvmargs $debug_arg $conservespace_arg $workhard_arg $user_props $ea_arg" +if [ $maxheap ]; then + fb_maxheap="-Xmx${maxheap}m" +fi + +# Extra JVM args for MacOSX. +if [ $fb_osname = "Darwin" ]; then + fb_jvmargs="$fb_jvmargs \ + -Xdock:name=FindBugs -Xdock:icon=${findbugs_home}/lib/buggy.icns \ + -Dapple.laf.useScreenMenuBar=true" +fi + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/findbugs-csr b/findbugs/findbugs-2.0.0/bin/findbugs-csr new file mode 100755 index 0000000..374d602 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/findbugs-csr @@ -0,0 +1,76 @@ +#! /bin/sh + + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.CloudSyncAndReport + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/findbugs-dbStats b/findbugs/findbugs-2.0.0/bin/findbugs-dbStats new file mode 100755 index 0000000..1ada8ee --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/findbugs-dbStats @@ -0,0 +1,76 @@ +#! /bin/sh + + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.cloud.db.DBStats + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/findbugs-msv b/findbugs/findbugs-2.0.0/bin/findbugs-msv new file mode 100755 index 0000000..ab00dd2 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/findbugs-msv @@ -0,0 +1,76 @@ +#! /bin/sh + + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.MergeSummarizeAndView + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/findbugs.bat b/findbugs/findbugs-2.0.0/bin/findbugs.bat new file mode 100644 index 0000000..0cc4621 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/findbugs.bat @@ -0,0 +1,240 @@ +@echo off +:: Launch FindBugs on a Windows system. +:: Adapted from scripts found at http://www.ericphelps.com/batch/ +:: This will only work on Windows NT or later! + +:: Don't affect environment outside of this invocation +setlocal + +:: ---------------------------------------------------------------------- +:: Set up default values +:: ---------------------------------------------------------------------- +set appjar=findbugs.jar +set javahome= +set launcher=java.exe +set start=start "FindBugs" +set jvmargs= +set debugArg= +set conserveSpaceArg= +set workHardArg= +set args= +set javaProps= +set maxheap=768 + +REM default UI is gui2 +set launchUI=2 + +:: Try finding the default FINDBUGS_HOME directory +:: from the directory path of this script +set default_findbugs_home=%~dp0.. + +:: Honor JAVA_HOME environment variable if it is set +if "%JAVA_HOME%"=="" goto nojavahome +if not exist "%JAVA_HOME%\bin\javaw.exe" goto nojavahome +set javahome=%JAVA_HOME%\bin\ +:nojavahome + +goto loop + +:: ---------------------------------------------------------------------- +:: Process command-line arguments +:: ---------------------------------------------------------------------- + +:shift2 +shift +:shift1 +shift + +:loop + +:: Remove surrounding quotes from %1 and %2 +set firstArg=%~1 +set secondArg=%~2 + +if "%firstArg%"=="" goto launch + +:: AddMessages +if not "%firstArg%"=="-addMessages" goto notAddMessages +set fb_mainclass=edu.umd.cs.findbugs.AddMessages +goto shift1 +:notAddMessages + +:: computeBugHistory +if not "%firstArg%"=="-computeBugHistory" goto notUpdate +set fb_mainclass=edu.umd.cs.findbugs.workflow.Update +goto shift1 +:notUpdate + +:: convertXmlToText +if not "%firstArg%"=="-xmltotext" goto notXmlToText +set fb_mainclass=edu.umd.cs.findbugs.PrintingBugReporter +goto shift1 +:notXmlToText + +:: copyBuggySource +if not "%firstArg%"=="-copyBS" goto notCopyBS +set fb_mainclass=edu.umd.cs.findbugs.workflow.CopyBuggySource +goto shift1 +:notCopyBS + +:: defectDensity +if not "%firstArg%"=="-defectDensity" goto notDefectDensity +set fb_mainclass=edu.umd.cs.findbugs.workflow.DefectDensity +goto shift1 +:notDefectDensity + +:: filterBugs +if not "%firstArg%"=="-filterBugs" goto notFilterBugs +set fb_mainclass=edu.umd.cs.findbugs.workflow.Filter +goto shift1 +:notFilterBugs + +:: listBugDatabaseInfo +if not "%firstArg%"=="-listBugDatabaseInfo" goto notListBugDatabaseInfo +set fb_mainclass=edu.umd.cs.findbugs.workflow.ListBugDatabaseInfo +goto shift1 +:notListBugDatabaseInfo + +:: mineBugHistory +if not "%firstArg%"=="-mineBugHistory" goto notMineBugHistory +set fb_mainclass=edu.umd.cs.findbugs.workflow.MineBugHistory +goto shift1 +:notMineBugHistory + +:: printAppVersion +if not "%firstArg%"=="-printAppVersion" goto notPrintAppVersion +set fb_mainclass=edu.umd.cs.findbugs.workflow.PrintAppVersion +goto shift1 +:notPrintAppVersion + +:: printClass +if not "%firstArg%"=="-printClass" goto notPrintClass +set fb_mainclass=edu.umd.cs.findbugs.workflow.PrintClass +goto shift1 +:notPrintClass + +:: rejarForAnalysis +if not "%firstArg%"=="-rejar" goto notRejar +set fb_mainclass=edu.umd.cs.findbugs.workflow.RejarClassesForAnalysis +goto shift1 +:notRejar + +:: setBugDatabaseInfo +if not "%firstArg%"=="-setInfo" goto notSetBugDatabaseInfo +set fb_mainclass=edu.umd.cs.findbugs.workflow.SetBugDatabaseInfo +goto shift1 +:notSetBugDatabaseInfo + +:: unionBugs +if not "%firstArg%"=="-unionBugs" goto notUnionBugs +set fb_mainclass=edu.umd.cs.findbugs.workflow.UnionResults +goto shift1 +:notUnionBugs + +:: xpathFind +if not "%firstArg%"=="-xpathFind" goto notXPathFind +set fb_mainclass=edu.umd.cs.findbugs.workflow.XPathFind +goto shift1 +:notXPathFind + +if not "%firstArg%"=="-gui" goto notGui +set launchUI=2 +set launcher=javaw.exe +goto shift1 +:notGui + +if not "%firstArg%"=="-gui1" goto notGui1 +set launchUI=1 +set javaProps=-Dfindbugs.launchUI=1 %javaProps% +set launcher=javaw.exe +goto shift1 +:notGui1 + +if not "%firstArg%"=="-textui" goto notTextui +set launchUI=0 +set launcher=java.exe +set start= +goto shift1 +:notTextui + +if not "%firstArg%"=="-debug" goto notDebug +set launcher=java.exe +set start= +set debugArg=-Dfindbugs.debug=true +goto shift1 +:notDebug + +if not "%firstArg%"=="-help" goto notHelp +set launchUI=help +set launcher=java.exe +set start= +goto shift1 +:notHelp + +if not "%firstArg%"=="-version" goto notVersion +set launchUI=version +set launcher=java.exe +set start= +goto shift1 +:notVersion + +if "%firstArg%"=="-home" set FINDBUGS_HOME=%secondArg% +if "%firstArg%"=="-home" goto shift2 + +if "%firstArg%"=="-jvmArgs" set jvmargs=%secondArg% +if "%firstArg%"=="-jvmArgs" goto shift2 + +if "%firstArg%"=="-maxHeap" set maxheap=%secondArg% +if "%firstArg%"=="-maxHeap" goto shift2 + +if "%firstArg%"=="-conserveSpace" set conserveSpaceArg=-Dfindbugs.conserveSpace=true +if "%firstArg%"=="-conserveSpace" goto shift1 + +if "%firstArg%"=="-workHard" set workHardArg=-Dfindbugs.workHard=true +if "%firstArg%"=="-workHard" goto shift1 + +if "%firstArg%"=="-javahome" set javahome=%secondArg%\bin\ +if "%firstArg%"=="-javahome" goto shift2 + +if "%firstArg%"=="-property" set javaProps=-D%secondArg% %javaProps% +if "%firstArg%"=="-property" goto shift2 + +if "%firstArg%"=="" goto launch + +set args=%args% "%firstArg%" +goto shift1 + +:: ---------------------------------------------------------------------- +:: Launch FindBugs +:: ---------------------------------------------------------------------- +:launch +:: Make sure FINDBUGS_HOME is set. +:: If it isn't, try using the default value based on the +:: directory path of the invoked script. +:: Note that this will fail miserably if the value of FINDBUGS_HOME +:: has quote characters in it. +if not "%FINDBUGS_HOME%"=="" goto checkHomeValid +set FINDBUGS_HOME=%default_findbugs_home% + +:checkHomeValid +if not exist "%FINDBUGS_HOME%\lib\%appjar%" goto homeNotSet + +:found_home +:: Launch FindBugs! +if "%fb_mainclass%"=="" goto runJar +"%javahome%%launcher%" %debugArg% %conserveSpaceArg% %workHardArg% %javaProps% "-Dfindbugs.home=%FINDBUGS_HOME%" -Xmx%maxheap%m %jvmargs% "-Dfindbugs.launchUI=%launchUI%" -cp "%FINDBUGS_HOME%\lib\%appjar%" %fb_mainclass% %args% +goto end +:runjar +%start% "%javahome%%launcher%" %debugArg% %conserveSpaceArg% %workHardArg% %javaProps% "-Dfindbugs.home=%FINDBUGS_HOME%" -Xmx%maxheap%m %jvmargs% "-Dfindbugs.launchUI=%launchUI%" -jar "%FINDBUGS_HOME%\lib\%appjar%" %args% +goto end + +:: ---------------------------------------------------------------------- +:: Report that FINDBUGS_HOME is not set (and was not specified) +:: ---------------------------------------------------------------------- +:homeNotSet +echo Could not find FindBugs home directory. There may be a problem +echo with the FindBugs installation. Try setting FINDBUGS_HOME, or +echo re-installing. +goto end + +:end diff --git a/findbugs/findbugs-2.0.0/bin/findbugs2 b/findbugs/findbugs-2.0.0/bin/findbugs2 new file mode 100755 index 0000000..1367e3d --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/findbugs2 @@ -0,0 +1,177 @@ +#! /bin/sh + +# +# Simplified findbugs startup script. +# This is an experiment. +# + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +# Default UI is GUI2 +fb_launchui="2" + +# +# Stuff we're going to pass to the JVM as JVM arguments. +# +jvm_debug="" +jvm_maxheap="-Xmx768m" +jvm_ea="" +jvm_conservespace="" +jvm_user_props="" + +# +# Process command line args until we hit one we don't recognize. +# +finishedArgs=false +while [ $# -gt 0 ] && [ "$finishedArgs" = "false" ]; do + + arg=$1 + + case $arg in + -textui) + shift + fb_launchui="0" + ;; + + -gui) + shift + fb_launchui="2" + ;; + + -gui1) + shift + fb_launchui="1" + ;; + + -maxHeap) + shift + jvm_maxheap="-Xmx$1m" + shift + ;; + + -ea) + shift + jvm_ea="-ea" + ;; + + -javahome) + shift + fb_javacmd="$1/bin/java" + shift + ;; + + -debug) + shift + jvm_debug="-Dfindbugs.debug=true" + ;; + + -conserveSpace) + shift + jvm_conservespace="-Dfindbugs.conserveSpace=true" + ;; + + -property) + shift + jvm_user_props="-D$1 $jvm_user_props" + shift + ;; + + -D*=*) + jvm_user_props="$1 $user_props" + shift + ;; + + -version) + shift + fb_launchui="version" + ;; + + -help) + shift + fb_launchui="help" + ;; + + # All arguments starting from the first unrecognized arguments + # are passed on to the Java app. + *) + finishedArgs=true + ;; + esac + +done + +# Extra JVM args for MacOSX. +if [ $fb_osname = "Darwin" ]; then + fb_jvmargs="$fb_jvmargs \ + -Xdock:name=FindBugs -Xdock:icon=${findbugs_home}/lib/buggy.icns \ + -Dapple.laf.useScreenMenuBar=true" +fi + +# +# Launch JVM +# +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home" \ + $jvm_debug $jvm_maxheap $jvm_ea $jvm_conservespace $jvm_user_props \ + -Dfindbugs.launchUI=$fb_launchui \ + -jar $findbugs_home/lib/findbugs.jar \ + ${@:+"$@"} diff --git a/findbugs/findbugs-2.0.0/bin/listBugDatabaseInfo b/findbugs/findbugs-2.0.0/bin/listBugDatabaseInfo new file mode 100755 index 0000000..891f455 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/listBugDatabaseInfo @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.ListBugDatabaseInfo + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/mineBugHistory b/findbugs/findbugs-2.0.0/bin/mineBugHistory new file mode 100755 index 0000000..520aa83 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/mineBugHistory @@ -0,0 +1,73 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.MineBugHistory + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs diff --git a/findbugs/findbugs-2.0.0/bin/printAppVersion b/findbugs/findbugs-2.0.0/bin/printAppVersion new file mode 100755 index 0000000..7994b8c --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/printAppVersion @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.PrintAppVersion + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/printClass b/findbugs/findbugs-2.0.0/bin/printClass new file mode 100755 index 0000000..0b76853 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/printClass @@ -0,0 +1,73 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.visitclass.PrintClass + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs diff --git a/findbugs/findbugs-2.0.0/bin/rejarForAnalysis b/findbugs/findbugs-2.0.0/bin/rejarForAnalysis new file mode 100755 index 0000000..20877ee --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/rejarForAnalysis @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.RejarClassesForAnalysis + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/setBugDatabaseInfo b/findbugs/findbugs-2.0.0/bin/setBugDatabaseInfo new file mode 100755 index 0000000..b1e8ec7 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/setBugDatabaseInfo @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.SetBugDatabaseInfo + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/unionBugs b/findbugs/findbugs-2.0.0/bin/unionBugs new file mode 100755 index 0000000..01d2126 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/unionBugs @@ -0,0 +1,80 @@ +#! /bin/sh + +# Deprecated + +# Create the union of two results files, preserving +# annotations in both files in the result. + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.workflow.UnionResults + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/bin/xpathFind b/findbugs/findbugs-2.0.0/bin/xpathFind new file mode 100755 index 0000000..c0bd5e9 --- /dev/null +++ b/findbugs/findbugs-2.0.0/bin/xpathFind @@ -0,0 +1,75 @@ +#! /bin/sh + +program="$0" + +# Follow symlinks until we get to the actual file. +while [ -h "$program" ]; do + link=`ls -ld "$program"` + link=`expr "$link" : '.*-> \(.*\)'` + if [ "`expr "$link" : '/.*'`" = 0 ]; then + # Relative + dir=`dirname "$program"` + program="$dir/$link" + else + # Absolute + program="$link" + fi +done + +# Assume findbugs home directory is the parent +# of the directory containing the script (which should +# normally be "$findbugs_home/bin"). +dir=`dirname "$program"` +findbugs_home="$dir/.." + +# Handle FHS-compliant installations (e.g., Fink) +if [ -d "$findbugs_home/share/findbugs" ]; then + findbugs_home="$findbugs_home/share/findbugs" +fi + +# Make absolute +findbugs_home=`cd "$findbugs_home" && pwd` + +fb_pathsep=':' + +# Handle cygwin, courtesy of Peter D. Stout +fb_osname=`uname` +if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + findbugs_home=`cygpath --mixed "$findbugs_home"` + fb_pathsep=';' +fi +# Handle MKS, courtesy of Kelly O'Hair +if [ "${fb_osname}" = "Windows_NT" ]; then + fb_pathsep=';' +fi + +if [ ! -d "$findbugs_home" ]; then + echo "The path $findbugs_home," + echo "which is where I think FindBugs is located," + echo "does not seem to be a directory." + exit 1 +fi + +# Choose default java binary +fb_javacmd=java +if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then + fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java + else + fb_javacmd="$JAVA_HOME/bin/java" + fi +fi + +fb_mainclass=edu.umd.cs.findbugs.xml.XPathFind + +fb_javacmd=${fb_javacmd:-"java"} +fb_maxheap=${fb_maxheap:-"-Xmx768m"} +fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"} +set -f +#echo command: \ +exec "$fb_javacmd" \ + -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \ + -Dfindbugs.home="$findbugs_home"\ + $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs + +# vim:ts=3 diff --git a/findbugs/findbugs-2.0.0/doc/AddingDetectors.txt b/findbugs/findbugs-2.0.0/doc/AddingDetectors.txt new file mode 100644 index 0000000..131e690 --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/AddingDetectors.txt @@ -0,0 +1,237 @@ +Adding Detectors to FindBugs +May 12, 2003 +Updated June 6, 2003 (detector meta-information, cleanups) + +=============== +1. Introduction +=============== + +FindBugs uses a plugin-based approach to adding detectors. +This makes it easy for users to add their own detectors alongside +the ones that come built in. + +Basic idea: FindBugs has some Jar files in a "plugins" directory. +At startup, each of those jar files is checked for a "findbugs.xml" +file. That XML file registers instances of Detectors, as well +as particular "bug patterns" that the detector reports. + +Additionally to the findbugs.xml, bugrank.txt and messages.xml files are +required for each FindBugs detector plugin. + +At startup, FindBugs loads all plugin Jar files. At analysis time, +all detectors named in the findbugs.xml files from those plugins +are instantiated and applied to analyzed class files. + +In order to format reported BugInstances as text for display, +a messages file is loaded from the plugin. In order to support multiple +language translations, a locale search is performed in a manner +similar to the handling of resource bundles. For example, if the +locale is "pt_BR", then the files + + messages_pt_BR.xml + messages_pt.xml + messages.xml + +are tried, in that order. + +The "findbugs.xml" and "messages.xml" files used by the standard FindBugs +bug pattern detectors (coreplugin.jar) can be found in the "etc" directory +of the findbugs source distribution. Both files must be UTF-8 encoded. + + +============================ +2. Example findbugs.xml file +============================ + + + + + + + + + + + + + + + +====================================== +3. Meaning of elements in findbugs.xml +====================================== + + a collection of and elements. + Each plugin Jar file can (and usually will) provide multiple detectors + and define multiple bug patterns. + + specifies a class which implements the edu.umd.cs.findbugs.Detector + interface and has a constructor that takes a single parameter of type + edu.umd.cs.findbugs.BugReporter. This element has three possible attributes: + + 1. The required "class" attribute specifies the Detector class. + + 2. The optional "disabled" attribute, if set to "true", means + that by default, the detector will be disabled at runtime. + This is useful for detectors that aren't quite ready for prime time. + + 3. The required "speed" attribute supplies a value to be shown in the + "Settings->Configure Detectors" dialog. It gives the user an idea of + how expensive the analysis will be to perform. The value of this + attribute should be one of "fast", "moderate", or "slow". + + specifies a kind of bug that will be reported. + It has three required attributes: + + 1. "type" is a unique code identifying the bug. Only one BugPattern + can have a a particular type. + + 2. "abbrev" is a short alphanumeric code for the bug. + Note that multiple BugPatterns can use the same abbreviation + if they are related. (See the BugCode element in messages.xml). + + 3. "category" can be one of categories defined in the core plugin's messages.xml: + + CORRECTNESS - code that was probably not what the developer intended + BAD_PRACTICE - violations of recommended and essential coding practice + STYLE - code that is confusing, anomalous, or written in a way that that leads itself to errors + MT_CORRECTNESS - multithreaded correctness issues + MALICIOUS_CODE - a potential vulnerability if exposed to malicious code + PERFORMANCE - a performance issue + I18N - internationalization and locale + + or you may create your own category, in which case you should define + it in a element in _your_ messages.xml file. + +============================ +4. Example messages.xml file +============================ + + + + +
+ This detector looks for JSR-166 locks that are not released on all paths + out of a method. Because it performs dataflow analysis, it is fairly slow. + ]]> +
+
+ + + + + Lock not released on all paths out of method + + {1} does not release lock on all paths out of method + +
+ A JSR-166 lock acquired in this method is not released on all paths + out of the method. This could result in a deadlock if another thread + tries to acquire the lock. Generally, you should use a finally + block to ensure that acquired locks are always released. + ]]> +
+
+ + + + Unreleased locks + + + +
+ + +====================================== +5. Meaning of elements in messages.xml +====================================== + + is the top level element + + elements optionally describe any categories you + may have created for your bug patterns. You can skip these if + you are using only the categories defined by the core plugin. + + The child element has a brief (a word or three) + description of the category. The child element + is typically a single capital latter. The optional
+ child element may describe it in more detail (but no markup). + + holds meta-information about a Detector in the plugin. + The required "class" attribute specifies the Detector class. + Detector elements much have the following child elements: + + The
child element has a brief HTML description of the Detector. + It should have HTML markup that would be valid in a BODY element. + It should be specified in a CDATA section so that the HTML + tags are not misinterpreted as XML. + + holds all of the human-readable messages for the bug pattern + identified by the "type" attribute. The type corresponds to the + type attribute of the BugPattern elements described in findbugs.xml. + BugPattern elements must have the following child elements: + + this is used for when "View->Full Descriptions" + is turned off in the GUI, and it's also used as the title for + descriptions in the Details window. + + this is used for when "View->Full Descriptions" + is turned on in the GUI, and for output using the command line UI. + The placeholders in the long description ({0}, {1}, etc.) + refer to BugAnnotations attached to the BugInstances reported by + the detector for this bug pattern. You may also use constructs + like {1.name} or {1.returnType}. + +
this is the descriptive text to be used in the Details + window. It consists of HTML markup to appear in the BODY element of an HTML + document. It should be specified in a CDATA section so that the HTML + tags are not misinterpreted as XML. + + is the text which describes the common characteristic of all + of the BugPatterns which share an abbreviation. In the example above, + the abbreviation "UL" is for bugs in which a lock is not released. + The text of a BugCode element is shown for tree nodes in the GUI + which group bug instances by "bug type". + +====================================== +6. Meaning of elements in bugrank.txt +====================================== + +For the detailed and up to date information, please read the javadoc of the +edu.umd.cs.findbugs.BugRanker class. + +============================================ +7. Using 3rd party libraries in the detector +============================================ + +FindBugs plugins may extend the default FindBugs classpath and use custom 3rd party +libraries during the analysis. This libraries must be part of standard jar class path +specified via "ClassPath" attribute in the META-INF/MANIFEST.MF file. + +====================================== +8. Adding detectors to Eclipse plugin +====================================== + +Since version 2.0.0 Eclipse plugin allows to configure or contribute custom detectors. + +7.1. It is possible to contribute custom detectors via standard Eclipse extensions mechanism. +Please check the documentation of the "findBugsEclipsePlugin/schema/detectorPlugins.exsd" +extension point how to update the plugin.xml. Existing FindBugs detector plugins can +be easily "extended" to be full featured FindBugs & Eclipse detector plugins. +Usually you only need to add META-INF/MANIFEST.MF and plugin.xml to the jar and +update your build scripts to not to override the MANIFEST.MF during the build. + +7.2 It is possible to configure custom detectors via Eclipse workspace preferences. +Go to "Window->Preferences->Java->FindBugs->Misc. Settings->Custom Detectors" +and specify there locations of any additional plugin libraries. + +7.3 Plugins contributed via standard Eclipse extensions mechanism (see 7.1) +may extend the default FindBugs classpath and use custom libraries during the analysis. +This libraries must be part of standard Eclipse plugin dependencies specified via +either "Require-Bundle" or "Bundle-ClassPath" attributes in the MANIFEST.MF file. +In case custom detectors need access to this custom libraries at runtime, an +extra line must be added to the MANIFEST.MF (without quotation marks): +"Eclipse-RegisterBuddy: edu.umd.cs.findbugs.plugin.eclipse". + diff --git a/findbugs/findbugs-2.0.0/doc/Changes.html b/findbugs/findbugs-2.0.0/doc/Changes.html new file mode 100644 index 0000000..3a0bebd --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/Changes.html @@ -0,0 +1,3505 @@ + + + FindBugs Change Log + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+ + +

+ FindBugs Change Log, Version 2.0.0 +

+ +

Changes since version 1.3.8

+ + + + +

Changes since version 1.3.8

+ +

Changes since version 1.3.7

+
    +
  • Primarily another small bugfix release.
  • +
  • FindBugs base:
  • +
      +
    • New Reports:
    • +
        +
      • SF_SWITCH_NO_DEFAULT: missing default case in switch statement.
      • +
      • SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW: value ignored when switch fallthrough leads to + thrown exception.
      • +
      • INT_VACUOUS_BIT_OPERATION: bit operations that don't do any meaningful work.
      • +
      • FB_UNEXPECTED_WARNING: warning generated that conflicts with @NoWarning FindBugs annotation.
      • +
      • FB_MISSING_EXPECTED_WARNING: warning not generated despite presence of @ExpectedWarning FindBugs annotation.
      • +
      • NOISE category: intended for use in data mining experiments.
      • +
          +
        • NOISE_NULL_DEREFERENCE: fake null point dereference warning.
        • +
        • NOISE_METHOD_CALL: fake method call warning.
        • +
        • NOISE_FIELD_REFERENCE: fake field dereference warning.
        • +
        • NOISE_OPERATION: fake operation warning.
        • +
        +
      +
    • Other:
    • + +
    • Fixes:
    • +
        +
      • [ 2317842 ] Highlighting broken in Windows
      • +
      • [ 2515908 ] check for oddness should track sign of argument
      • +
      • [ 2487936 ] "L B GC" false pos cast from Map.Entry.getKey() to Map.get()
      • +
      • [ 2528264 ] Ant tasks not compatible with Ant 1.7.1
      • +
      • [ 2539590 ] SF_SWITCH_FALLTHROUGH wrong message reported
      • +
      • [ 2020066 ] Bug history displayed in fancy-hist.xsl is incorrect
      • +
      • [ 2545098 ] Invalid character in analysis results file
      • +
      • [ 2492673 ] Plugin sites should specify 'requires Eclipse 3.3 or newer'
      • +
      • [ 2588044 ] a tiny typing error
      • +
      • [ 2589048 ] Documentation for convertXmlToText insufficient
      • +
      • [ 2638739 ] NullPointerException when building
      • +
      +
    • Patches:
    • +
        +
      • [ 2538184 ] Make BugCollection implement Iterable<BugInstance> (thanks to Tomas Pollak)
      • +
      • [ 2249771 ] Add Maven2 Findbugs plugin link to the Links page (thanks to Garvin Leclaire)
      • +
      • [ 2609526 ] Japanese manual update (thanks to K. Hashimoto)
      • +
      • [ 2119482 ] CheckBcel checks for nonexistent classes (thanks to Jerry James)
      • +
      +
    +
  • FindBugs Eclipse plugin:
  • +
      +
    • Major feature enhancements (thanks to Andrey Loskutov). + See this overview for more information.
    • +
    • Major test improvements (thanks to Tomas Pollak).
    • +
    • Fixes:
    • +
        +
      • [ 2532365 ] Compiler warning
      • +
      • [ 2522989 ] Fix filter files selection
      • +
      • [ 2504068 ] NullPointerException
      • +
      • [ 2640849 ] NPE in Eclipse plugin 1.3.7 and Eclipse 3.5 M5
      • +
      +
    • Patches:
    • +
        +
      • [ 2143140 ] Unchecked conversion fixes for Eclipse plugin (thanks to Jerry James) +
      +
    +
+ + +

Changes since version 1.3.6

+
    +
  • Overall, a small bugfix release. +
  • New detection of accidental vacuous/useless calls to EasyMock methods, + and of generic signatures that proclaim the use of unhashable classes + in ways that require that they be hashed. +
  • Eliminate some false positives where we were warning about + a useless call (e.g., comparing two incompatible types for equality), + but the only thing the code was doing with the result was + passing it to assertFalse. +
  • Japanese localization and manual by K.Hashimoto. (Thanks!) +
  • Added -exclude and -outputDir command line options to rejarForAnalysis +
  • Extended -adjustPriorities option to FindBugs analysis textui so that you + can modify the priorities of individual bug patterns as well as visitors, + and also completely suppress individual bug patterns or visitors. +
      +
    • e.g., -adjustPriority MS_SHOULD_BE_FINAL=suppress,MS_PKGPROTECT=suppress,EI_EXPOSE_REP=suppress,EI_EXPOSE_REP2=suppress,PZLA_PREFER_ZERO_LENGTH_ARRAYS=raise +
    +
+ + +

Changes since version 1.3.5

+
    +
  • Added fairly exhaustive static analysis + of uses of format strings, checking for missing or + extra arguements, invalid format specifiers, + or mismatched format specifiers and arguments (e.g, + passing a String value for a %d format specifier). + The logic for doing so is derived from Sun's java.util.Formatter class, + and available separately from FindBugs as part of the + jFormatString project. + +
  • More tuning of the unsatisfied obligation detector. Since this + detector is still rather noisy and an unfinished research project, + I've moved the generated issues to a new category: EXPERIMENTAL. + +
  • Added check for BIT_ADD_OF_SIGNED_BYTE; similar to BIT_IOR_OF_SIGNED_BYTE, except that + addition is being used to combine shifted signed bytes. + +
  • Changed detection of EI_EXPOSE_REP2, so we only report it if the value stored + is guaranteed to be the same value that was passed in as a parameter. + +
  • Added EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS, a warning when + an equals method checks to see if an operand is an instance of a class not + compatible with itself. For example, if the Foo class checks to see if the argument + is an instance of String. This is either a questionable design decision or a coding mistake. +
  • Added DMI_INVOKING_HASHCODE_ON_ARRAY, + which checks for invoking hashCode() on an array, which returns a hash code that ignores the contents of the array. +
  • Added checks for using x.removeAll(x) to rather than x.clear() + to clear an array. +
  • Add checks for calls such as x.contains(x), x.remove(x) and x.containsAll(x). +
  • Improvements to Eclipse plugin (thanks to Andrey Loskutov): +
      +
    • Report separate markers for each occurrence of an issue that appears multiple times in a method +
    • fine tuning for reported markers: add only one marker for fields, add marker on right position +
    • link bugs selected in bug explorer view to the opened editor and vice versa +
    • select bugs selected in editor ruler in the opened bug explorer view +
    • consistent abbreviations used in both bug explorer and bug details view +
    • added "Expand All" button to the bug explorer view +
    • added "Go Into/Go Up" buttons to the bug explorer view +
    • added "Copy to clipboard" menu/functionality to the details view list widget +
    • fix for CNF exception if loading the backup solution for broken browser widget + +
+ + + +

Changes since version 1.3.4

+
    +
  • Analysis about 15% faster +
  • 38 bugs closed
  • +
  • New defect warnings: +
      +
    • calls to methods that always throw + UnsupportedOperationException (DMI_UNSUPPORTED_METHOD) +
    • repeated conditional tests (e.g., + if (x < 0 || x < 0) ...) + (RpC_REPEATED_CONDITIONAL_TEST) +
    • Complete rewrite of detector for format string problems. + More accurate, finds more problems, generates + more descriptive reports, several different + bug pattern + (VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED, + VA_FORMAT_STRING_ILLEGAL, + VA_FORMAT_STRING_MISSING_ARGUMENT, + VA_FORMAT_STRING_BAD_ARGUMENT, + VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT) + +
    • Fairly complete implementation of JSR-305 custom type qualifier + analysis (no support for custom validators yet). + (TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK + TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK + TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK) +
    • New detector for unsatisfied obligations such forgetting to + close a file (OBL_UNSATISFIED_OBLIGATION). +
    • Warning when a parameter is marked as nullable, but is + always dereferenced. + (NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE) +
    • Separate warning for dereference the result of readLine (NP_DEREFERENCE_OF_READLINE_VALUE) +
    +
  • When XML is generated with messages, the project stats now + include <FileStat> elements. + For each source file, this gives the path for the file, + the total number of warnings for that file, and a bugHash + for the file. While the instanceHash for a bug is intended + to be version invariant (ignoring line numbers, etc), the + bugHash for a file is intended to reflect all the information + about the warnings in that file. The intended use case is that + if the bugHash for a file is the same in two analysis runs, + then nothing has changed about any of the warnings + reported for that file between the two analysis runs. +
  • More merging of similar issues within a method. For example, + if the result of readLine() is dereferences multiple times + within a method, it will be reported as a single warning + with occurrences at multiple source lines. +
+

Changes since version 1.3.3

+ +
    +
  • FindBugs base +
      +
    • New Reports:
    • +
        +
      • EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC: + equals method overrides equals in superclass and may not be symmetric
      • +
      • EQ_ALWAYS_TRUE: + equals method always returns true
      • +
      • EQ_ALWAYS_FALSE: + equals method always returns false
      • +
      • EQ_COMPARING_CLASS_NAMES: + equals method compares class names rather than class objects
      • +
      • EQ_UNUSUAL: Unusual equals method
      • +
      • EQ_GETCLASS_AND_CLASS_CONSTANT: + equals method fails for subtypes
      • +
      • SE_READ_RESOLVE_IS_STATIC: + The readResolve method must not be declared as a static method.
      • +
      • SE_PRIVATE_READ_RESOLVE_NOT_INHERITED: + private readResolve method not inherited by subclasses
      • +
      • MSF_MUTABLE_SERVLET_FIELD: Mutable servlet field
      • +
      • XSS_REQUEST_PARAMETER_TO_SEND_ERROR: + Servlet reflected cross site scripting vulnerability
      • +
      • SKIPPED_CLASS_TOO_BIG: Class too big for analysis
      • +
      +
    • Other:
    • +
        +
      • Value-number analysis now more space-efficient
      • +
      • Enhancements to reduce memory overhead when + analyzing very large classes
      • +
      • Now skips very large classes that would otherwise + take too much time and memory to analyze
      • +
      • Infrastructure for tracking effectively-constant/ + effectively-final fields
      • +
      • Added more cweids
      • +
      • Enhanced taint tracking for taint-based detectors
      • +
      • Ignore doomed calls to equals if result is used + as an argument to assertFalse
      • +
      • EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC handles compareTo
      • +
      • Priority tweak for ICAST_INTEGER_MULTIPLY_CAST_TO_LONG + (only low priority if multiplying by 1000)
      • +
      • Improved tracking of fields across method calls
      • +
      +
    • Fixes:
    • +
        +
      • [ 1941450 ] DLS_DEAD_LOCAL_STORE not reported
      • +
      • [ 1953323 ] Omitted break statement in SynchronizeAndNullCheckField
      • +
      • [ 1942620 ] Source Directories selection dialog interface confusion (partial)
      • +
      • [ 1948275 ] Unhelpful "Load of known null"
      • +
      • [ 1933922 ] MWM error in findbugs
      • +
      • [ 1934772 ] 1.3.3 appears to rely on JDK 1.6, JNLP still specifies 1.5
      • +
      • [ 1933945 ] -loadbugs doesn't work
      • +
      • Fixed problems for class names starting with '$'
      • +
      • Fixed bugs and incomplete handling of annotations in + VersionInsensitiveBugComparator
      • +
      +
    • Patches:
    • +
        +
      • [ 1955106 ] Javadoc fixes
      • +
      • [ 1951930 ] Superfluous import statements (thanks to Jerry James)
      • +
      • [ 1951907 ] Missing @Deprecated annotations (thanks to Jerry James)
      • +
      • [ 1951876 ] Infonode Docking Windows compile fix (thanks to Jerry James)
      • +
      • [ 1936055 ] bugfix for findbugs.de.comment not working (thanks to Peter Fokkinga) +
      +
    +
  • FindBugs BlueJ plugin
  • +
      +
    • Updated to use FindBugs 1.3.4 (first new release since 1.1.3)
    • +
    +
+ +

Changes since version 1.3.2

+ +
    +
  • FindBugs base
  • +
      +
    • New Detectors:
    • +
        +
      • FieldItemSummary: Produces summary information + for what is stored into fields
      • +
      • SynchronizeOnClassLiteralNotGetClass: Look for + code that synchronizes on the results of getClass + rather than on class literals
      • +
      • SynchronizingOnContentsOfFieldToProtectField: This + detector looks for code that seems to be + synchronizing on a field in order to guard updates + of that field
      • +
      +
    • New BugCode:
    • +
        +
      • HRS: HTTP Response splitting vulnerability
      • +
      • WL: Possible locking on wrong object
      • +
      +
    • New Reports:
    • +
        +
      • DMI_CONSTANT_DB_PASSWORD: + This code creates a database connect using a hard coded, constant password
      • +
      • HRS_REQUEST_PARAMETER_TO_COOKIE: + HTTP cookie formed from untrusted input
      • +
      • HRS_REQUEST_PARAMETER_TO_HTTP_HEADER: + HTTP parameter directly written to HTTP header output
      • +
      • CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE: + Class defines clone() but doesn't implement Cloneable
      • +
      • DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE: + Synchronization on boxed primitive could lead to deadlock
      • +
      • DL_SYNCHRONIZATION_ON_BOOLEAN: + Synchronization on Boolean could lead to deadlock
      • +
      • ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: + Synchronization on field in futile attempt to guard that field
      • +
      • DLS_DEAD_LOCAL_STORE_IN_RETURN: + Useless assignment in return statement
      • +
      • WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL: + Synchronization on getClass rather than class literal
      • +
      +
    • Other:
    • +
        +
      • Many enhancements to cross-site scripting detector and its documentation
      • +
      • Enhanced switch fall through handling
      • +
      • Enhanced unread field handling (look for IF_ACMPEQ and IF_ACMPNE)
      • +
      • Clarified documentation for @Nullable in manual
      • +
      • Fewer DeadLocalStore false positives
      • +
      • Fewer UnreadField false positives
      • +
      • Fewer StaticCalendarDetector false positives
      • +
      • Performance fix for slow file system IO e.g. Clearcase repositories (thanks, Andrei!)
      • +
      • Other, general performance enhancements (thanks, Andrei!)
      • +
      • Enhancements for using FindBugs scripts with MKS on Windows (thanks, Kelly O'Hair!)
      • +
      • Noted in the manual that jsr305.jar must be present for annotations to compile
      • +
      • Added and fine-tuned default-nullness annotations
      • +
      • More CWE IDs added
      • +
      • Check and warning for unexpected BCEL version in classpath
      • +
      +
    • Fixes:
    • +
        +
      • Bug fix to handling of local variable tables in BCEL
      • +
      • Refined documentation for MTIA_SUSPECT_STRUTS_INSTANCE_FIELD
      • +
      • [ 1927295 ] NPE when called on project root
      • +
      • [ 1926405 ] Incorrect dead store warning
      • +
      • [ 1926409 ] Incorrect redundant nullcheck warning
      • +
      • [ 1926389 ] Wrong line number printed/highlighted in bug
      • +
      • [ 1927040 ] typo in bug description
      • +
      • [ 1926263 ] Minor glitch in HTML output
      • +
      • [ 1926240 ] Minor error in standard options in manual
      • +
      • [ 1926236 ] Minor bug in installation section of manual
      • +
      • [ 1925539 ] ZIP is default file system code base
      • +
      • [ 1894701 ] Livelock / memory leak in ObjectTypeFactory (thanks, Andrei!)
      • +
      • [ 1867491 ] Doesn't reload annotations after code changes in IDE (thanks, Andrei!)
      • +
      • [ 1921399 ] -project option not supported
      • +
      • [ 1913834 ] "Dead" store to variable with method call
      • +
      • [ 1917352 ] H B se:...field in serializable class
      • +
      • [ 1911617 ] CloneIdiom relies on getNameConstantOperand for INSTANCEOF
      • +
      • [ 1911620 ] False +: DLS predecrement before return
      • +
      • [ 1871376 ] False negative: non-serializable Map field
      • +
      • [ 1871051 ] non standard clone() method
      • +
      • [ 1908854 ] Error in TestASM
      • +
      • [ 1907539 ] 22 minor errors in bug checker documentation
      • +
      • [ 1897323 ] EJB implementation class false positives
      • +
      • [ 1899648 ] Crash on startup on Vista with Java 1.6.0_04
      • +
      +
    +
  • FindBugs Eclipse plugin (change log by Andrey Loskutov)
  • +
      +
    • new feature: export basic FindBugs numbers for projects via File->Export->Java->BugCounts (Andrey Loskutov)
    • +
    • new feature: jobs for different projects will be run in parallel per default if running on a + multi-core PC ("fb.allowParallelBuild" system property not used anymore) (Andrey Loskutov)
    • +
    • fixed performance slowdown in the multi-threaded build, caused by workspace operation locks during + assigning marker attributes (Andrey Loskutov)
    • +
    +
+ +

Changes since version 1.3.1

+ +
    +
  • FindBugs base
  • +
      +
    • New Bug Category:
    • +
        +
      • SECURITY (Abbrev: S), A use of untrusted input in + a way that could create a remotely exploitable + security vulnerability
      • +
      +
    • New Detectors:
    • +
        +
      • CrossSiteScripting: This detector looks for + obvious/blatant cases of cross site scripting + vulnerabilities
      • +
      +
    • New BugCode:
    • +
        +
      • XSS: Cross site scripting
      • +
      +
    • New Reports:
    • +
        +
      • XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER: HTTP + parameter directly written to Servlet output, + giving XSS vulnerability
      • +
      • XSS_REQUEST_PARAMETER_TO_JSP_WRITER: HTTP + parameter directly written to JSP output, giving + XSS vulnerability
      • +
      • EQ_OTHER_USE_OBJECT: equals() method defined that + doesn't override Object.equals(Object)
      • +
      • EQ_OTHER_NO_OBJECT: equals() method inherits + rather than overrides equals(Object)
      • +
      • NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE: + Possible null pointer dereference on path that + might be infeasible
      • +
      +
    • Other:
    • +
        +
      • Added -noClassOk command-line parameter to + command-line and ant interfaces; when -noClassOk + is specified and no classfiles are given, FindBugs + will print a warning message and output a well- + formed file with no warnings
      • +
      • Fewer false positives for null pointer bugs
      • +
      • Suppress dead-local-store false positives in .jsp + code
      • +
      • Type fixes in warning messages
      • +
      • Better warning message for + NP_NULL_ON_SOME_PATH
      • +
      • "WMI" bug code description renamed from "Wrong + Map Iterator" to "Inefficient Map Iterator"
      • +
      +
    • Fixes:
    • +
        +
      • [ 1893048 ] FindBugs confused by a findbugs.xml file
      • +
      • [ 1878528 ] XSL xforms don't support history features
      • +
      • [ 1876584 ] two default.xsl flaws
      • +
      • [ 1874856 ] Format string bug detector doesn't handle special operators
      • +
      • [ 1872645 ] computeBugHistory - java.lang.IllegalArgumentException
      • +
      • [ 1872237 ] Ant task fails when no .class files
      • +
      • [ 1868670 ] Filters: include AND exclude don't allowed
      • +
      • [ 1868666 ] check-for-oddness reported, but array length can never be negative
      • +
      • [ 1866108 ] SetBugDatabaseInfoTask strips dir from output filename
      • +
      • [ 1866021 ] MineBugHistoryTask strips dir of output filename
      • +
      • [ 1865265 ] code doesn't handle StringBuffer.append([CII) right
      • +
      • [ 1864793 ] Warning when casting a null reference compared to a String
      • +
      • [ 1863376 ] Typo in manual chap 8: Filter Files
      • +
      • [ 1862705 ] Transient fields that default to null
      • +
      • [ 1842545 ] DLS on catch variable (with priority tweaking)
      • +
      • [ 1816258 ] false positive BC_IMPOSSIBLE_CAST
      • +
      • [ 1551732 ] Get erroneous DLS with while loop
      • +
      +
    +
  • FindBugs Eclipse plugin (change log by Andrey Loskutov)
  • +
      +
    • new feature: added Bug explorer view (replacing Bug tree view), based on Common Navigator framework (Andrey Loskutov)
    • +
    • bug 1873860 fixed: empty projects are no longer shown in Bug tree view (Andrey Loskutov)
    • +
    • new feature: bug counts decorators for projects, folders and files (has to be activated + via Preferences -> general -> appearance -> label decorations)(Andrey Loskutov)
    • +
    • patch 1746499: better icons (Alessandro Nistico)
    • +
    • patch 1893685: Find bug actions on change sets bug (Alessandro Nistico)
    • +
    • fixed bug 1855384: Bug configuration is broken in Eclipse (Andrey Loskutov)
    • +
    • refactored FindBugs properties page (Andrey Loskutov)
    • +
    • refactored FindBugs worker/builder/run action (Andrey Loskutov)
    • +
    • FB detects now only bugs from classes on project's classpath (no double work on + duplicated class files) (Andrey Loskutov)
    • +
    • fixed bug introduced by the bad patch for 1867951: FB cannot be executed incrementally + on a folder of file (Andrey Loskutov)
    • +
    • fixed job rule: now jobs for different projects may run in parallel if running on a + multi-core PC and "fb.allowParallelBuild" system property is set to true (Andrey Loskutov)
    • +
    • fixed FB auto-build not started if .fbprefs or .classpath was changed (Andrey Loskutov)
    • +
    • fixed not reporting bugs on secondary types (classes defined in java files with + different name) (Andrey Loskutov)
    • +
    +
+ +

Changes since version 1.3.0

+
    +
  • New Reports
  • +
      +
    • VA_FORMAT_STRING_ARG_MISMATCH: + A format-string method with a variable number of arguments is called, + but the number of arguments passed does not match with the number of + % placeholders in the format string. This is probably not what the + author intended. +
    • IO_APPENDING_TO_OBJECT_OUTPUT_STREAM: + This code opens a file in append mode and that wraps the result in an object output stream. + This won't allow you to append to an existing object output stream stored in a file. If you want to be + able to append to an object output stream, you need to keep the object output stream open. + The only situation in which opening a file in append mode and the writing an object output stream + could work is if on reading the file you plan to open it in random access mode and seek to the byte offset + where the append started. +
    • NP_BOOLEAN_RETURN_NULL: + A method that returns either Boolean.TRUE, Boolean.FALSE or null is an accident waiting to happen. + This method can be invoked as though it returned a value of type boolean, and + the compiler will insert automatic unboxing of the Boolean value. If a null value is returned, + this will result in a NullPointerException. +
    +
  • Changes to Existing Reports
  • +
      +
    • RV_DONT_JUST_NULL_CHECK_READLINE: CORRECTNESS -> STYLE
    • +
    • DMI_INVOKING_TOSTRING_ON_ARRAY: Long description mentions array name whenever possible
    • +
    +
  • Fixes:
  • +
      +
    • Updated manual to mention that Java 1.5 is now a requirement for running FindBugs +
    • Applied patch 1840206 fixing issue "Ant task does not work when presetdef is used" - thanks to phejl +
    • Applied patch 1778690 fixing issue "Ant task: tolerate but complain about invalid auxClasspath" - thanks to David Schmidt +
    • Applied patch 1852125 adding a Chinese-language GUI bundle props file - thanks to fifi +
    • Applied patch 1845903 adding ability to load XML results with the Eclipse plugin - thanks to Alex Mont +
    • Fixed issue 1844671 - "FP for "reversed" null check in catch for stream close" +
    • Fixed issue 1836050 - "-onlyAnalyze broken" +
    • Fixed issue 1853011 - "Typo: Field names should start with aN lower case letter" +
    • Fixed issue 1844181 - "JNLP file does not contain all necessary JARs" +
    • Fixed issue 1840245 - "xxxException class does not derive from Exception" +
    • Fixed issue 1840277 - "[M D EC] Typo in bug documentation" +
    • Fixed issue 1782447 - "OutOfMemoryError if i activate Findbugs on my project" +
    • Fixed issue 1830576 - "[regression] keySet/entrySet false positive" +
    +
  • Other:
  • +
      +
    • New bug code: "IO" (for IO_APPENDING_TO_OBJECT_OUTPUT_STREAM)
    • +
    • Added "-onlyMostRecent" option for computeBugHistory script/ant task +
    • More explicit language in RV_RETURN_VALUE_IGNORED_BAD_PRACTICE messages +
    • Modified ResourceValueAnalysis to correctly identify null == X or null != X as a null check (for issue 1844671) +
    • Modified DMI_HARDCODED_ABSOLUTE_FILENAME logic in DumbMethodInvocations to ignore files from /etc or /dev and increase priority of files from /home +
    • Better bug details for infinite loop warnings +
    • Modified unread-fields detector to reduce false positives from reflective fields +
    • build.xml "classes" target now builds all sources in one step +
    +
+ +

Changes since version 1.2.1

+
    +
  • New Detectors and Reports
  • +
      +
    • SynchronizationOnSharedBuiltinConstant
    • +
        +
      • DL_SYNCHRONIZATION_ON_SHARED_CONSTANT: + The code synchronizes on a shared primitive + constant, such as an interned String. Such + constants are interned and shared across all other + classes loaded by the JVM. Thus, this could be + locking on something that other code might also be + locking. This could result in very strange and hard + to diagnose blocking and deadlock behavior. See + http://www.javalobby.org/java/forums/t96352.html + and + http://jira.codehaus.org/browse/JETTY-352. +
      +
    • OverridingEqualsNotSymmetrical
    • +
        +
      • EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC: + Looks for equals methods that override equals + methods in a superclass where the equivalence + relationship might not be symmetrical. +
      +
    • CheckTypeQualifiers
    • +
        +
      • TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED: + A value specified as carrying a type qualifier + annotation is consumed in a location or locations + requiring that the value not carry that annotation. + More precisely, a value annotated with a type + qualifier specifying when=ALWAYS is guaranteed to reach + a use or uses where the same type qualifier specifies + when=NEVER. +
      • +
      • TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED: + A value specified as not carrying a type qualifier + annotation is guaranteed to be consumed in a location + or locations requiring that the value does carry that + annotation. More precisely, a value annotated with a + type qualifier specifying when=NEVER is guaranteed to + reach a use or uses where the same type qualifier + specifies when=ALWAYS. +
      • +
      • TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK: + A value that might not carry a type qualifier + annotation reaches a use which requires that + annotation. +
      • +
      • TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK: + A value which might carry a type qualifier annotation + reaches a use which forbids values carrying that + annotation. +
      • +
      +
    +
  • New Reports (existing detectors)
  • +
      +
    • FindHEmismatch
    • +
        +
      • EQ_DOESNT_OVERRIDE_EQUALS: + This class extends a class that defines an equals + method and adds fields, but doesn't define an equals + method itself. Thus, equality on instances of this + class will ignore the identity of the subclass and the + added fields. Be sure this is what is intended, and + that you don't need to override the equals method. Even + if you don't need to override the equals method, + consider overriding it anyway to document the fact that + the equals method for the subclass just return the + result of invoking super.equals(o). +
      • +
      +
    • Naming +
        +
      • NM_WRONG_PACKAGE, NM_WRONG_PACKAGE_INTENTIONAL: + The method in the subclass doesn't override a similar + method in a superclass because the type of a parameter + doesn't exactly match the type of the corresponding + parameter in the superclass. +
      • +
      • NM_SAME_SIMPLE_NAME_AS_SUPERCLASS: + This class has a simple name that is identical to that + of its superclass, except that its superclass is in a + different package (e.g., alpha.Foo + extends beta.Foo). This can be + exceptionally confusing, create lots of situations in + which you have to look at import statements to resolve + references and creates many opportunities to + accidently define methods that do not override methods + in their superclasses. +
      • +
      • NM_SAME_SIMPLE_NAME_AS_INTERFACE: + This class/interface has a simple name that is + identical to that of an implemented/extended + interface, except that the interface is in a different + package (e.g., alpha.Foo extends + beta.Foo). This can be exceptionally + confusing, create lots of situations in which you have + to look at import statements to resolve references and + creates many opportunities to accidently define methods + that do not override methods in their superclasses. +
      • +
      +
    • FindRefComparison
    • +
        +
      • EC_UNRELATED_TYPES_USING_POINTER_EQUALITY: + This method uses using pointer equality to compare two + references that seem to be of different types. The + result of this comparison will always be false at + runtime. +
      • +
      +
    • IncompatMask
    • +
        +
      • BIT_SIGNED_CHECK, BIT_SIGNED_CHECK_HIGH_BIT: + This method compares an expression such as + ((event.detail & SWT.SELECTED) > 0). Using + bit arithmetic and then comparing with the greater than + operator can lead to unexpected results (of course + depending on the value of SWT.SELECTED). If + SWT.SELECTED is a negative number, this is a candidate + for a bug. Even when SWT.SELECTED is not negative, it + seems good practice to use '!= 0' instead of '> 0'. +
      • +
      +
    • LazyInit
    • +
        +
      • LI_LAZY_INIT_UPDATE_STATIC: + This method contains an unsynchronized lazy + initialization of a static field. After the field is + set, the object stored into that location is further + accessed. The setting of the field is visible to other + threads as soon as it is set. If the further accesses in + the method that set the field serve to initialize the + object, then you have a very serious + multithreading bug, unless something else prevents any + other thread from accessing the stored object until it + is fully initialized. +
      • +
      +
    • FindDeadLocalStores
    • +
        +
      • DLS_DEAD_STORE_OF_CLASS_LITERAL: + This instruction assigns a class literal to a variable + and then never uses it. + The behavior of this differs in Java 1.4 and in Java 5. + In Java 1.4 and earlier, a reference to + Foo.class would force the static + initializer for Foo to be executed, if it + has not been executed already. In Java 5 and later, it + does not. See Sun's + article on Java SE compatibility + for more details and examples, and suggestions on how + to force class initialization in Java 5. +
      • +
      +
    • MethodReturnCheck
    • +
        +
      • RV_RETURN_VALUE_IGNORED_BAD_PRACTICE: + This method returns a value that is not checked. The + return value should be checked since it can indication + an unusual or unexpected function execution. For + example, the File.delete() method returns + false if the file could not be successfully deleted + (rather than throwing an Exception). If you don't + check the result, you won't notice if the method + invocation signals unexpected behavior by returning an + atypical return value. +
      • +
      • RV_EXCEPTION_NOT_THROWN: + This code creates an exception (or error) object, but + doesn't do anything with it. +
      • +
      +
    +
  • Changes to Existing Reports
  • +
      +
    • NS_NON_SHORT_CIRCUIT: BAD_PRACTICE -> STYLE
    • +
    • NS_DANGEROUS_NON_SHORT_CIRCUIT: CORRECTNESS -> STYLE
    • +
    • RC_REF_COMPARISON: CORRECTNESS -> BAD_PRACTICE
    • +
    +
  • GUI Changes
  • +
      +
    • Added importing and exporting of bug filters
    • +
    • Better handling of failed analysis runs
    • +
    • Added "-look" parameter for selecting look-and-feel
    • +
    • Fixed incorrect package filtering
    • +
    • Fixed issue where "synchronized" was not syntax-highlighted
    • +
    +
  • Ant-task Changes
  • +
      +
    • Refactored common ant-task code to AbstractFindBugsTask
    • +
    • Added tasks for computeBugHistory, convertXmlToText, filterBugs, mineBugHistory, setBugDatabaseInfo
    • +
    +
  • Manual
  • +
      +
    • Updates to GUI section, including new screenshots
    • +
    • Added description of rejarForAnalysis
    • +
    • Revamp of data-mining section
    • +
    +
  • Other Major
  • +
      +
    • Internal restructuring for lower memory overhead
    • +
    +
  • Other Minor
  • +
      +
    • Fixed typo: was STCAL_STATIC_SIMPLE_DATA_FORMAT_INSTANCE now STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE
    • +
    • -outputFile parameter became -output
    • +
    • More sensitivity and specificity inLazyInit detector
    • +
    • More sensitivity and specificity in Naming detector
    • +
    • More sensitivity and specificity in UnreadFields detector
    • +
    • More sensitivity in FindNullDeref detector
    • +
    • More sensitivity in FindBadCast2 detector
    • +
    • More specificity in FindReturnRef detector
    • +
    • Many other tweaks and bug fixes
    • +
    +
+ +

Changes since version 1.2.0

+
    +
  • Bug fixes: +
      +
    • Fix bug with detectors that were requested to be disabled but were enabled due to requirements of other detectors.
    • +
    • Fix bugs in incremental analysis within Eclipse plugin
    • +
    • Fix some analysis errors
    • +
    • Fix some threading bugs in GUI2
    • +
    • Report version as version when it was compiled, not when it was run
    • +
    • Copy analysis time stamp when filtering or transforming analysis files.
    • +
    +
  • Enabled StaticCalendarDetector +
  • +
  • Reworked GUI2 to use standard FindBugs filters +
  • +
      +
    • Allow a suppression filter to be stored in a project and persisted to the XML representation of a project. +
    • +
    + +
  • Move away from old GUI2 save format (a directory containing an xml file and another file containing serialized filters). +
  • +
  • Support/recommend use of two new file extensions/formats: +
    .fba - FindBugs Analysis File
    +
    Exactly the same as an existing bug collection file stored in XML format, but using a distinct file extension + to make it easier to figure out which xml files contain FindBugs results.
    +
    .fbp - FindBugs Project File
    Contains just the information needed to run FindBugs and display the results (e.g., the files to be analyzed, the auxiliary class path and the location of source files)
  • +
+

Changes since version 1.1.3

+
    +
  • Added -xml:withAbridgedMessages option to generate xml containing shorter messages. + The messages will be shorted by doing things like eliding package names, and leaving off + the source line from the LongMessage. + These messages are appropriate if being used in a context where + the non-message components of the bug annotations will be used to provide more information + (e.g., clicking on the message for a MethodAnnotation will display the source for the method). +
    • FindBugsDisplayFeatures.setAbridgedMessages(true) can be used to generate abridged messages + when FindBugs is being accessed directly (not via generated XML) from a GUI or IDE. +
    • +
    +
  • In null pointer analysis, try to be better about always showing two locations: where it is known null and + where it is dereferenced. +
  • Interprocedural analysis of which methods return nonnull values +
  • Use method calls to select order in which classes are analyzed, and order in which methods + are analyzed, to improve interprocedural analysis results. +
  • Significant improvements in memory footprint, memory allocation and CPU utilization + (20-30% reduction in all three) +
  • Added a project name, to provide better descriptions in the HTML output. +
  • Added new bug pattern: Casting to char, or bit masking with nonnegative value, and then checking to see + if the result is negative. +
  • Stopped reporting transient fields + of classes not marked as serializable. Transient is used by other persistence frameworks. +
  • Improvements to detector for SQL injection (Thanks to Matt Hargett for + his contributions +
  • Changed open/save options in GUI2 to not distinguish between FindBugs projects + and saved FindBugs analysis results. +
  • Improvements to detection of serious non-short-circuit evaluation. +
  • Updated Japanese localization (thanks to Ruimo Uno) + +
  • Eclipse plugin changes: +
      +
    • Created Bug User Annotations and Bug Tree Views +
    • Use different icons for different bug priorities +
    • Provide more information in Bug Details view +
    +
+ +

+ Changes since version 1.1.2: +

+
    +
  • Fixed broken Ant task +
  • Added running ant task to smoke test +
  • Added validating xml and html output to smoke test +
  • Fixed some (but not all) issues with html output validation +
  • Added check for x.equals(x) and x.compareTo(x) +
  • Various bug fixes +
+

+ Changes since version 1.1.1: +

+
    +
  • + Added check for infinite iterative loops +
  • +
  • + Added check for use of incompatible types in a collection (e.g., + checking to see if a Set<String> contains a StringBuffer). +
  • +
  • + Added check for invocations of equals or hashCode on a URL, + which, + surprising + many people, requires DNS resolution. +
  • +
  • + Added check for classes that define compareTo but not equals; + such classes can exhibit some anomalous behavior (e.g., they are + treated differently by PriorityQueues in Java 5 and Java 6). +
  • +
  • + Added a check for useless self operations (e.g., x < x or x ^ x). +
  • +
  • + Fixed a data race that could cause the GUI to fail on startup +
  • +
  • + Partial internationalization of the new GUI +
  • +
  • + Fix bug in "Redo analysis" option of new GUI +
  • +
  • + Tuning to reduce false positives +
  • +
  • + Fixed a bug in null pointer analysis that was generating false + positive null pointer warnings on exception paths. Fixing this + bug eliminates about 1/4 of the warnings on null pointer + exceptions on exception paths. +
  • +
  • + Fixed a bug in the processing of phi nodes for fields in the null + pointer analysis +
  • +
  • + Applied contributed patch that provides more quick fixes in + Eclipse plugin. +
  • +
  • + Fixed a number of bugs in the Eclipse auto update sites, and in the way + date qualifiers were being used in the Eclipse plugin. You may need to manually + disable your existing version of the plugin and download the 1.1.2 from the update + site to get the automatic update function working correctly. + The Eclipse update sites are described at http://findbugs.cs.umd.edu/eclipse/. + +
  • +
  • + Fixed progress bar in Eclipse plugin +
  • +
  • + A number of other bug fixes. +
  • +
+ +

+ Changes since version 1.1.0: +

+
    +
  • + less scanning of classes not on the analysis path (This was + causing some performance problems.) +
  • +
  • + no unread field warnings for fields annotated with + javax.persistent or javax.ejb3 +
  • +
  • + Eclipse plugin +
      +
    • + bug annotation info displayed in Bug Details tab +
    • +
    • + .fbwarnings data file now stored in .metadata (not in the + project itself) +
    • +
    +
  • +
  • + new SE_BAD_FIELD_INNER_CLASS pattern +
  • +
  • + updates to Japanese translation (ruimo) +
  • +
  • + fix some internal slashed/dotted path confusion +
  • +
  • + other minor improvements +
  • +
+ +

+ Changes since version 1.0.0: +

+ +
    +
  • + Overall, the change from FindBugs 1.0.0 to FindBugs 1.1.0 has + been a big change. We've done a lot of work in a lot of areas, + and aren't even going to try to enumerate all the changes. +
  • +
  • + We spent a lot of time reviewing the results generated by + FindBugs for open source and commercial code bases, and made a + number of changes, small and large, to minimize the number of + false positives. Our primary focus for this was warnings reported + as high and medium priority correctness warnings. Our internal + evaluation is that we produce very few high/medium priority + correctness warnings where the analysis is actually wrong, and + that more than 75% of the high/medium priority correctness + warnings correspond to real coding defects that need addressing + in the source code. The remaining 25% are largely cases such as a + branch or statement that if taken would lead to an error, but in + fact is a dead branch or statement that can never be taken. Such + coding is confusing and hard to maintain, so it should arguably + be fixed, but it is unlikely to actually result in an error + during execution. Thus, some might classify those warnings as + false positives. + +
  • +
  • + We've substantially improved the analysis for errors that could + result in null pointer dereferences. Overall, our experience has + been that these changes have roughly doubled the number of null + pointer errors we detect, without increasing the number of false + positives (in fact, our false positive rate has gone down). The + improvements are due to four factors: +
      +
    • + By default, we now do some interprocedural analysis to + determine methods that unconditionally dereference their + parameters. +
    • +
    • + FindBugs also comes with a model of which JDK methods + unconditionally dereference their parameters. +
    • +
    • + We do limited tracking of fields, so that we can detect null + values stored in fields that lead to exceptions. +
    • +
    • + We implemented a new analysis technique to find guaranteed + dereferences. Consider the following example: + + +
      public int f(Object x, boolean b) {
      +  int result = 0;
      +  if (x == null) result++;
      +  else result--;
      +  // at this point, we know x is null on a simple path
      +  if (b) {
      +    // at this point, x is only null on a complex path
      +    // we don't know if the path in which x is null and b is true is feasible
      +    return result + x.hashCode();
      +    }
      +  else {
      +    // at this point, x is only null on a complex path
      +    // we don't know if the path in which x is null and b is false is feasible
      +    return result - x.hashCode();
      +    }
      +
      +
      + +

      + FindBugs 1.0 used forward dataflow analysis to determine + whether each value is definitely null, null on a simple path, + possible null on a complex path, or definitely nonnull. Thus, + at the statement where + + result + + is decremented, we know that + + x + + is definitely null, and at the point before + + if (b) + + , we know that + + x + + is null on a simple path. If + + x + + were to be dereferenced here, we would generate a warning, + because if the else branch of the + + if (x == null) + + were ever taken, a null pointer exception would result. +

      + +

      + However, in both the then and else branches of the + + if (b) + + statement, + + x + + is only null on a complex path that may be infeasible. It + might be that the program logic is such that if + + x + + is null, then + + b + + is never true, so generating a warning about the dereference + in the then clause might be a false positive. We could try to + analyze the program to determine whether it is possible for + + x + + to be null and + + b + + to be true, but that can be a hard analysis problem. +

      + +

      + However, + + x + + is dereferenced in both the then + and else branches of the + + if (b) + + statement. So at the point immediately before + + if (b) + + , we know that + + x + + is null on a simple path + and that + + x + + is guaranteed to be dereferenced on all paths from this point + forward. FindBugs 1.1 performs a backwards data flow analysis + to determine the values that are guaranteed to be + dereferenced, and will generate a warning in this case. +

      +
    • +
    +

    + The following screen shot of our new GUI shows an example of + this analysis, as well as showing off our new GUI and points out + a limitation of our current plugins for Eclipse and NetBeans. + The screen shot shows a null pointer bug in HelpDisplay.java. + The test for + + href!=null + + on line 78 suggests that + + href + + could be null. If it is, then + + href + + will be dereferenced on either line 87 or on line 90, generating + a NPE. Note that our analysis here also understands that passing + + href + + to + + URLEncoder.encode + + will deference it, and thus treats line 87 as a dereference, + even though + + href + + is not actually dereferenced at that line. Within our new GUI, + all of these locations are highlighted and listed in the summary + panel. In the original GUI (and in HTML output) we list all of + the locations, but only the primary location is highlighted by + the original GUI. In the Eclipse and NetBeans plugins, only the + primary location is displayed; fixing this is on our todo list + (contributions welcome). +

    +

    + + + +

    + +
  • +
  • + Preliminary support for detectors using the frameworks other than + BCEL, such as the + ASM bytecode framework. + You may experiment with writing ASM-based detectors, but beware + the API may still change (which could possibly also affect + BCEL-based detectors). In general, we've started trying to move + away from a deep dependence on BCEL, but that change is only + partially complete. Probably best to just avoid this until we + complete more work on this. This change is only visible to + FindBugs plugin developers, and shouldn't be visible to FindBugs + users. +
  • +
  • +

    + Bug categories (CORRECTNESS, MT_CORRECTNESS, etc.) are no longer + hard-coded, but rather defined in xml files associated with + plugins, including the core plugin which defines the standard + categories. Third-party plugins can define their own categories. +

    +
  • +
  • +

    + Several bug patterns have been moved from CORRECTNESS and STYLE + into a new category, BAD_PRACTICE. The English localization of + STYLE has changed from "Style" to "Dodgy." +

    +

    + In general, we've worked very hard to limit CORRECTNESS bugs to + be real programming errors and sins of commission. We have + reclassified as BAD_PRACTICE a number of bad design practices + that result in overly fragile code, such as defining an equals + method that doesn't accept null or defining class with a equals + method that inherits hashCode from class Object. +

    +

    + In general, our guidelines for deciding whether a bug should be + classified as CORRECTNESS, BAD_PRACTICE or STYLE are: +

    +
    +
    + CORRECTNESS +
    +
    + A problem that we can recognize with high confidence and is an + issue that we believe almost all developers would want to + examine and address. We recommend that software teams review + all high and medium priority warnings in their entire code + base. +
    +
    + BAD_PRACTICE +
    +
    + A problem that we can recognize with high confidence and + represents a clear violation of recommended and standard coding + practice. We believe each software team should decide which bad + practices identified by FindBugs it wants to prohibit in the + team's coding standard, and take action to remedy violations of + those coding standards. +
    +
    + STYLE +
    +
    + These are places where something strange or dodgy is going on, + such as a dead store to a local variable. Typically, less than + half of these represent actionable programming defects. + Reviewing these warnings in any code under active development + is probably a good idea, but reviewing all such warnings in + your entire code base might be appropriate only in some + situations. Individual or team programming styles can + substantially influence the effectiveness of each of these + warnings (e.g., you might have a coding practice or style in + your group that confuses one of the detectors into generating a + lot of STYLE warnings); you will likely want to selectively + suppress or report the STYLE warnings that are effective for + your group. +
    +
    +
  • +
  • + Released a preliminary version of a new GUI (known internally as + GUI2 -- not very creative, huh?) +
  • +
  • + Provided standard ways to mark user designations of bug warnings + (e.g., as NOT_A_BUG or SHOULD_FIX). The internal logic now + records this, it is represented in the XML file, and GUI2 allows + the designations to be applied (along with free-form user + annotations about each warning). The user designations and + annotations are not yet supported by the Eclipse plugin, but we + clearly want to support it in Eclipse shortly. +
  • +
  • + Added a check for a bad comparison with a signed byte with a + value not in the range -128..127. For example: + +
    boolean find200(byte b[]) {
    +  for(int i = 0; i < b.length; i++) if (b[i] == 200) return i;
    +  return -1;
    +}
    +
    +
    +
  • +
  • + Added a checking for testing if a value is equal to Double.NaN + (no value is equal to NaN, not even NaN). +
  • +
  • + Added a check for using a class with an equals method but no + hashCode method in a hashed data structure. +
  • +
  • + Added check for uncallable method of an anonymous inner class. + For example, in the following code, it is impossible to invoke + the initalValue method (because the name is misspelled and as a + result is doesn't override a method in ThreadLocal). + +
    private static ThreadLocal serialNum = new ThreadLocal() {
    +         protected synchronized Object initalValue() {
    +             return new Integer(nextSerialNum++);
    +         }
    +     };
    +
    +
    +
  • +
  • + Added check for a dead local store caused by a switch statement + fall through +
  • +
  • + Added check for computing the absolute value of a random 32 bit + integer or of a hashcode. This is broken because + + Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE + + , and thus result of calling Math.abs, which is expected to be + nonnegative, will in fact be negative one time out of 2 + + 32 + + , which will invariably be the time your boss is demoing the + software to your customers. + +
  • +
  • + More careful resolution of inherited methods and fields. Some of + the shortcuts we were taking in FindBugs 1.0.0 were leading to + inaccurate results, and it was fairly easy to address this by + making the analysis more accurate. +
  • +
  • + Overall, analysis times are about 1.6 times longer in FindBugs + 1.1.0 than in FindBugs 1.0.0. This is because we have enabled + substantial additional analysis at the default effort level (the + actual analysis engine is significantly faster than in FindBugs + 1.0). On a recent AMD Athlon processor, analyzing JDK1.6.0 (about + 1 million lines of code) requires about 15 minutes of wall clock + time. +
  • +
  • + Provided class and script (printClass) to print classfile in the + human readable format produced by BCEL +
  • +
  • + Provided -findSource option to setBugDatabaseInfo +
  • +
+ + +

+ Changes since version 0.9.7: +

+ +
    +
  • + fix ObjectTypeFactory bug that was suppressing some bugs +
  • +
  • + opcode stack may determine definite zeros on some paths +
  • +
  • + opcode stack can track some constant string concatenations + (dbrosius) +
  • +
  • + default effort performs iterative opcode analysis (but min effort + does not) +
  • +
  • + default heap size upped to 384m +
  • +
  • + schema for XML output available: bugcollection.xsd +
  • +
  • + fixed some internal confusion between dotted and slashed class + names +
  • +
  • + New detectors +
      +
    • + CheckImmutableAnnotation.java: checks JCIP annotations +
    • +
    +
  • +
  • + Updated detectors +
      +
    • + BadRegEx.java: understands Pattern.LITERAL, warns about "." +
    • +
    • + FindUnreleasedLock.java: fewer false positives +
    • +
    • + DumbMethods.java: check for vacuous comparisons to MAX_INTEGER + or MIN_INTEGER, fix bugs detecting DM_NEXTINT_VIA_NEXTDOUBLE +
    • +
    • + FindPuzzlers.java: detect + n%2==1, detect toString() on array types +
    • +
    • + FindInconsistentSync2.java: detects IS_FIELD_NOT_GUARDED +
    • +
    • + MethodReturnCheck.java: add check for discarded newly + constructed values, increase priority of some ignored + constructed exceptions, better handling of bytecode compiled by + Eclipse +
    • +
    • + FindEmptySynchronizedBlock.java: better handling of bytecode + compiled by Eclipse +
    • +
    • + DoInsideDoPrivileged.java: warn if call to setAccessible isn't + in doPriviledged, don't report private methods +
    • +
    • + LoadOfKnownNullValue.java: fix bug that was reporting false + positives on + + finally + + blocks +
    • +
    • + CheckReturnAnnotationDatabase.java: better checks for unstarted + threads +
    • +
    • + ConfusionBetweenInheritedAndOuterMethod.java: fewer false + positives, fixed a package-handling bug +
    • +
    • + BadResultSetAccess.java: separate bug pattern for + PreparedStatements, + + BRZA + + category folded into + + SQL + + category +
    • +
    • + FindDeadLocalStores.java, FindBadCast2.java, DumbMethods.java, + RuntimeExceptionCapture.java: coalesce similar bugs within a + method into a single bug instance with multiple source lines +
    • +
    +
  • +
  • + Eclipse plugin +
      +
    • + plugin ID changed from + de.tobject.findbugs to + edu.umd.cs.findbugs.plugin.eclipse +
    • +
    • + support for findbugs eclipse auto-update site +
    • +
    +
  • +
  • + Updated test case files +
      +
    • + BadRegEx.java +
    • +
    • + JSR166.java +
    • +
    • + ConcurrentModificationBug.java +
    • +
    • + DeadStore.java +
    • +
    • + InstanceOf.java +
    • +
    • + LoadKnownNull.java +
    • +
    • + NeedsToCheckReturnValue.java +
    • +
    • + BadResultSetAccessTest.java +
    • +
    • + DeadStore.java +
    • +
    • + TestNonNull2.java +
    • +
    • + TestImmutable.java +
    • +
    • + TestGuardedBy.java +
    • +
    • + BadRandomInt.java +
    • +
    • + six test cases added to new + + TigerTraps + + directory +
    • +
    +
  • +
  • + fix bug that was generating duplicate uids +
  • +
  • + fix bug with + + -onlyAnalyze some.package.* + + on jdk1.4 +
  • +
  • + fix regression bug in DismantleByteCode.getRefConstantOperand() +
  • +
  • + fix some minor bugs with the Swing GUI +
  • +
  • + reordered some bugInstances so that source line annotations come + last +
  • +
  • + removed references to unused java system properties +
  • +
  • + French translation updates (David Cotton) +
  • +
  • + Japanese translation updates (Hanai Shisei) +
  • +
  • + content cleanup for findbugs.xml and messages.xml +
  • +
  • + references to cvs hostname updated to + findbugs.cvs.sourceforge.net +
  • +
  • + documented xdoc output options, new + mineBugHistory/computeBugHistory options +
  • +
+ +

+ Changes since version 0.9.6: +

+ +
    +
  • + performance improvements +
  • +
  • + ObjectType instances are cached to reduce memory footprint +
  • +
  • + for performance and memory reasons stateless detectors are no + longer cloned, must clear their own state between .class files +
  • +
  • + fixed bug in bytecode-set lookup for methods (was causing bad + results for IS2, perhaps others) +
  • +
  • + fix some OpcodeStack bugs with integer and long operations, + perform iterative analysis when effort is + max +
  • +
  • + HTML output includes LongMessage text again (regression in 0.95 - + 0.96) +
  • +
  • + New detectors +
      +
    • + CalledMethods.java: builds a list of invoked methods for other + detectors to consult (non-reporting) +
    • +
    • + UncallableMethodOfAnonymousClass.java: detect anonymous inner + classes that define methods that are probably intended to but + do not override methods in a superclass. +
    • +
    +
  • +
  • + Updated detectors +
      +
    • + FindFieldSelfAssignment.java: recognize separate fields with + the same name (one from superclass) +
    • +
    • + FindLocalSelfAssignment2.java: handles backward branches better + (Dave Brosius) +
    • +
    • + FindBadCast2.java: BC_NULL_INSTANCEOF changed to + NP_NULL_INSTANCEOF +
    • +
    • + FindPuzzlers.java: eliminate false positive on setDate() (Dave + Brosius) +
    • +
    +
  • +
  • + Eclipse plugin +
      +
    • + fix serious threading bug +
    • +
    • + preferences for Filters and effort (Peter Hendriks) +
    • +
    • + French localization (David Cotton) +
    • +
    • + fix bug when reporting inner classes (Peter Friese) +
    • +
    +
  • +
  • + Updated test case files +
      +
    • + Mwn.java (Carl Burke/Dave Brosius) +
    • +
    • + DumbMethodInvocations.java (Anto paul/Dave Brosius) +
    • + +
    +
  • +
  • + XML output includes garbage collection duration +
  • +
  • + French messages updated (David Cotton) +
  • +
  • + Swing GUI shows file name after Load Bugs command +
  • +
  • + Ant task to launch the findbugs frame (Mark McKay) +
  • +
  • + miscellaneous code cleanup +
  • +
+ +

+ Changes since version 0.9.5: +

+ +
    +
  • + Updated detectors +
      +
    • + FindNullDeref.java: respect NonNull and CheckForNull field + annotations +
    • +
    • + SerializableIdiom.java: detect non-private readObject and + writeObject methods +
    • +
    • + FindRefComparison.java: smarter array comparison detection +
    • +
    • + IsNullValueAnalysis.java: detect + null instanceof +
    • +
    • + FindLocalSelfAssignment2.java: suppress some false positives + (Dave Brosius) +
    • +
    • + FindUnreleasedLock.java: don't waste time processing classes + that don't refer to java.util.concurrent.locks +
    • +
    • + MutableStaticFields.java: report the source line (Dave Brosius) +
    • +
    • + SwitchFallthrough.java: better handling of System.exit() (Dave + Brosius) +
    • +
    • + MultithreadedInstanceAccess.java: better handling of + Servlet.init() (Dave Brosius) +
    • +
    • + ConfusionBetweenInheritedAndOuterMethod.java: now enabled +
    • +
    +
  • +
  • + Eclipse plugin +
      +
    • + background processing (Peter Friese) +
    • +
    • + internationalization, Japanese localization (Takashi Okamoto) +
    • +
    +
  • +
  • + findbugs + -onlyAnalyze option now works on windows platforms +
  • +
  • + mineBugHistory + -noTabs option for better alignment of output columns +
  • +
  • + filterBugs + -fixed option (also: will now recognize the most recent + version string) +
  • +
  • + XML output includes running time and memory usage data +
  • +
  • + miscellaneous minor corrections to the manual +
  • +
  • + better bytecode analysis of the + iinc instruction +
  • +
  • + fix bug in null pointer analysis +
  • +
  • + improved catch block heuristics +
  • +
  • + some type analysis tweaks +
  • +
  • + Bug priority changes +
      +
    • + DumbMethodInvocations.java: decrease priority of hard-coded + /tmp filenames +
    • +
    • + ComparatorIdiom.java: decrease priority of non-serializable + anonymous comparators +
    • +
    • + FindSqlInjection.java: decrease priority of appending a + constant or a static +
    • +
    +
  • +
  • + Updated bug explanations +
      +
    • + NM_VERY_CONFUSING (Dave Brosius) +
    • +
    +
  • +
  • + Updated test case files +
      +
    • + BadStoreOfNonSerializableObject.java +
    • +
    • + BadRandomInt.java +
    • +
    • + TestFieldAnnotations.java +
    • +
    • + UseInitCause.java +
    • +
    • + SqlInjection.java +
    • +
    • + ArrayEquality.java +
    • +
    • + BadIntegerOperations.java +
    • +
    • + Pilhuhn.java +
    • +
    • + InstanceOf.java +
    • +
    • + SwitchFallthrough.java (Dave Brosius) +
    • +
    +
  • +
  • + fix URL decoding bug when running under Java Web Start (Dave + Brosius) +
  • +
  • + distribution includes + project.xml file for NetBeans +
  • +
+ +

+ Changes since version 0.9.4: +

+
    +
  • + New detectors +
      +
    • + VarArgsProblems.java +
    • +
    • + FindSqlInjection.java: now enabled +
    • +
    • + ComparatorIdiom.java: comparators usually implement + serializable +
    • +
    • + Naming.java: detect methods not overridden due to eponymously + typed args from different packages +
    • +
    +
  • +
  • + Updated detectors +
      +
    • + SwitchFallthrough.java: surpress some false positives +
    • +
    • + DuplicateBranches.java: surpress some false positives +
    • +
    • + IteratorIdioms.java: surpress some false positives +
    • +
    • + FindHEmismatch.java: surpress some false positives +
    • +
    • + QuestionableBooleanAssignment.java: finds more cases of + if (b=true) ilk +
    • +
    • + DumbMethods.java: detect int remainder by 1, delayed gc errors +
    • +
    • + SerializableIdiom.java: detect store of nonserializable object + into field of serializable class +
    • +
    • + FindNullDeref.java: fix potential exception +
    • +
    • + IsNullValue.java: fix potential exception +
    • +
    • + MultithreadedInstanceAccess.java: fix potential exception +
    • +
    • + PreferZeroLengthArrays.java: flag the method, not the line +
    • +
    +
  • +
  • + Remove some inadvertent dependencies on JDK 1.5 +
  • +
  • + Sort order should be more consistent +
  • +
  • + XML output changes +
      +
    • + Option to sort XML bug output +
    • +
    • + Now contains instance IDs +
    • +
    • + uid no longer missing (was causing problems with fancy HTML + output) +
    • +
    • + Typo fixed +
    • +
    +
  • +
  • + Internal changes to track source files, + -sourceInfo option +
  • +
  • + Bug matching: first try exact bug pattern matching, option to + compare priorities, option to disable package moves +
  • +
  • + Architecture documentation in + design/architecture +
  • +
  • + Test cases move into their own CVS project +
  • +
  • + Don't report warnings that occur outside the analyzed classes +
  • +
  • + Fixes to the build.xml files +
  • +
  • + Better handling of @CheckReturnValue and @CheckForNull + annotations (also, some additional methods searched for check + return value and check for null) +
  • +
  • + Fixed some stream-closing bugs (one by + z-fb-user/Dave Brosius) +
  • +
  • + Bug priority changes +
      +
    • + increase priority of ignoring return value of + java.sql.Connection methods +
    • +
    • + increase priority of comparing classes like Integer using + == +
    • +
    • + decrease priority of IT_NO_SUCH_ELEMENT if we see any call to + next() +
    • +
    • + tweak priority of NM_METHOD_CONSTRUCTOR_CONFUSION +
    • +
    • + decrease priority of RV_RETURN_VALUE_IGNORED for an inherited + annotation that doesn't return same type as class +
    • +
    +
  • +
  • + Updated bug explanations +
      +
    • + RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE +
    • +
    • + DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED +
    • +
    • + IMA_INEFFICIENT_MEMBER_ACCESS (Dave Brosius) +
    • +
    • + some Japanese improvements to messages_ja.xml ( + ruimo) +
    • +
    • + some German improvements to findbugs_de.properties (Dave + Brosius, + dvholten) +
    • +
    +
  • +
  • + Updated test case files +
      +
    • + BadIntegerOperations.java +
    • +
    • + SecondKaboom.java +
    • +
    • + OpenDatabase.java (Dave Brosius) +
    • +
    • + FindOpenStream.java (Dave Brosius) +
    • +
    • + BadRandomInt.java +
    • +
    +
  • +
  • + Source-lines info maintained for methods (handy for abstract and + native methods) +
  • +
  • + Remove surrounding opcodes from source line annotations +
  • +
  • + Better error when can't read file +
  • +
  • + Swing GUI: removed console pane from FindBugsFrame, fix missing + classes bug +
  • +
  • + Fixes to OpcodeStack.java +
  • +
  • + Detectors may attach a custom value to an OpcodeStack.Item (Dave + Brosius) +
  • +
  • + Filter.java: ability to add text messages to XML output, fix bug + with + -withMessages +
  • +
  • + SourceInfoMap supports ranges of source lines +
  • +
  • + Ant task supports the + timestampNow attribute +
  • +
+ +

+ Changes since version 0.9.3: +

+
    +
  • + Substantial rework of datamining code +
  • +
  • + Removed bogus warnings about await on things other than Condition + not being in a loop +
  • +
  • + Fixed bug in OpcodeStack handling of dup2 of long/double values +
  • +
  • + Don't report array types as missing classes +
  • +
  • + Adjustment of some warnings on ignored return values +
  • +
  • + Added thread safety annotations from Java Concurrency in Practice + (no detectors written for these yet) +
  • +
  • + Added annotation for methods that, if overridden, should be + invoked by overriding methods via a call to super +
  • +
  • + Updated -html:fancy.xsl (Etienne Giraudy) +
  • +
+ +

+ Note: there was no version 0.9.2 +

+ +

+ Changes since version 0.9.1: +

+
    + +
  • + Embellish USM to find abstract methods that implement an + interface method (Dave Brosius) +
  • +
  • + New detector to find stores of literal booleans inside if or + while expressions (Dave Brosius) +
  • +
  • + New style detector to find final classes that declare protected + fields (Dave Brosius) +
  • +
  • + New detector to find subclass methods that simply forward, + verbatim, to the super class (Dave Brosius) +
  • +
  • + Detector to find instances where code is attempting to write an + object out via an implementation of DataOutput, but the object is + not guaranteed to be Serializable (Jon Christiansen, Bill Pugh) +
  • + + +
  • + Large (35%) analysis speedup (Bill Pugh) +
  • +
  • + Add line numbers to Swing GUI code panel (Dave Brosius) +
  • +
  • + Added effort options to Swing GUI (Dave Brosius) +
  • +
  • + Add ability to specify bugs file to open from command line for + GUI version, through -loadbugs (Phillip Martin) +
  • +
  • + New stylesheet for generating HTML: use option + -html:plain.xsl (Chris Nappin) +
  • +
  • + New stylesheet for generating HTML: use option + -html:fancy.xsl (Etienne Giraudy) +
  • +
  • + Updated Japanese bug message translations (Shisei Hanai) +
  • + + +
  • + XHTML compliance fixes for bug details (Etienne Giraudy) +
  • +
  • + Various detector fixes (Shisei Hanai) +
  • +
  • + Fixed bugs in the project preferences dialog int the Eclipse + plugin (Takashi Okamoto, Thomas Einwaller) +
  • +
  • + Lowered priority of analysis thread in Swing GUI (David + Hovemeyer, suggested by Shisei Hanai and Jeffrey W. Badorek) +
  • +
  • + Fixed EclipsePlugin to correctly pick up auxclasspath entries + (Jon Christiansen) +
  • +
+ +

+ Changes since version 0.9.0: +

+
    +
  • + Fixed dependence on JRE 1.5: all features should work on JRE 1.4 + again +
  • +
  • + Fixed -effort command line option handling for Swing GUI +
  • +
  • + Fixed conserveSpace and workHard attributes int Ant task +
  • +
  • + Added support for effort attribute in Ant task +
  • +
+ +

+ Changes since version 0.8.8: +

+
    + +
  • + XMLFactoryBypass detector to find direct allocation of xml class + implementations (Dave Brosius) +
  • +
  • + InefficientMemberAccess detector to find accesses to owning class + private members (Dave Brosius) +
  • +
  • + DuplicateBranches detector checks switch statements too (Dave + Brosius) +
  • + + +
  • + FindBugs available from findbugs.sourceforge.net as Java Web + Start application (Dave Brosius) +
  • +
  • + Updated Japanese bug message translations (Shisei Hanai) +
  • +
  • + Improved bug detail message for covariant equals() (Shisei Hanai) +
  • +
  • + Modeling of instanceof checks is now enabled by default, making + the bad cast detector much more useful (Bill Pugh, David + Hovemeyer) +
  • +
  • + Support for detector ordering constraints in plugin descriptor + (David Hovemeyer) +
  • +
  • + Simpler option to control analysis effort: -effort: + value, where + value is one of + + min + + , + + default + + , or + + max + + (David Hovemeyer) +
  • +
  • + Using -effort:max, FindNullDeref checks for null arguments passed + to methods which dereference them unconditionally (David + Hovemeyer) +
  • +
  • + FindNullDeref checks @Null and @NonNull annotations for + parameters and return values (David Hovemeyer) +
  • + + +
+ +

+ Changes since version 0.8.7: +

+ +
    + +
  • + New detector to find duplicate code in if/else statements (Dave + Brosius) +
  • +
  • + Look for calls to wait() on Condition objects (David Hovemeyer) +
  • +
  • + Look for java.util.concurrent.Lock objects not released on every + path out of method (David Hovemeyer) +
  • +
  • + Look for calls to Thread.sleep() with a lock held (David + Hovemeyer) +
  • +
  • + More accurate detection of impossible casts (Bill Pugh, David + Hovemeyer) +
  • + + +
  • + Saved XML now contains project statistics (Jay Dunning) +
  • +
  • + Filter files can select by bug pattern type and warning priority + (David Hovemeyer) +
  • + + +
  • + Restored some files inadvertently omitted from previous release + (Rohan Lloyd, David Hovemeyer) +
  • +
  • + Make sure detectors requiring JDK 1.5 runtime classes are only + executed if those classes are available (David Hovemeyer) +
  • +
  • + Don't display analysis error dialog unless there is really an + error (David Hovemeyer) +
  • +
  • + Updated and expanded French translations of bug patterns and + Swing GUI (Olivier Parent) +
  • +
  • + Fixed invalid character encoding in German Swing GUI translation + (Olivier Parent) +
  • +
  • + Fix locale used for date format in project stats (K. Hashimoto) +
  • +
  • + Fixed LongDescription elements in xml:withMessages output format + (K. Hashimoto) +
  • +
+ +

+ Changes since version 0.8.6: +

+ +
    + +
  • + Extend Naming detector to look for classes that are named + XXXException but that are not Exceptions (Dave Brosius) +
  • +
  • + New detector to find classes that expose semaphores in the public + implementation through the 'this' reference. (Dave Brosius) +
  • +
  • + New Style detector to find Struts Action/Servlet derived classes + that reference instance member variable not in synchronized + blocks. (Dave Brosius) +
  • +
  • + New Style detector to find classes that declare implementation of + interfaces that are already implemented by super classes (Dave + Brosius) +
  • +
  • + New Style detector to find circular dependencies between classes + (Dave Brosius) +
  • +
  • + New Style detector to find unnecessary math on constants (Dave + Brosius) +
  • +
  • + New detector to find equality comparisons using floating point + math (Jay Dunning) +
  • +
  • + New faster detector to find local self assignments (Bill Pugh) +
  • +
  • + New detector to find infinite recursive loops (Bill Pugh) +
  • +
  • + New detector to find for loops with an incorrect increment (Bill + Pugh) +
  • +
  • + New detector to find suspicious uses of BufferedReader.readLine() + and String.indexOf() (Bill Pugh) +
  • +
  • + New detector to find suspicious integer to double casts (David + Hovemeyer, Bill Pugh) +
  • +
  • + New detector to find invalid regular expression patterns (Bill + Pugh) +
  • +
  • + New detector to find Bloch/Gafter Java puzzlers (Bill Pugh) +
  • + + +
  • + New system property to suppress reporting of DLS based on local + variable name (Glenn Boysko) +
  • +
  • + Enhancements to configuration dialog in Eclipse plugin, allow for + saving enabled detectors in Eclipse projects (Phil Crosby) +
  • +
  • + Sortable columns in detector dialog (Dave Brosius) +
  • +
  • + New tab in gui for showing bugs grouped by category (Dave + Brosius) +
  • +
  • + Improved German translation of Swing GUI (Thomas Kuehne) +
  • +
  • + Improved source file reporting in Emacs output format (Len Trigg) +
  • +
  • + Improvements to redundant null comparison detector (Bill Pugh) +
  • +
  • + Localization of run analysis and analysis error dialogs in Swing + GUI (K. Hashimoto) +
  • + + +
  • + Don't scan equals methods in FindHEMismatch if code is native + (Greg Bentz) +
  • +
  • + French translation fixes (David Cotton) +
  • +
  • + Internationalization report fixes (K. Hashimoto) +
  • +
  • + Japanese translations updates (SHISEI Hanai) +
  • +
+ +

+ Changes since version 0.8.5: + +

+
    + +
  • + New detector to find catch blocks that may inadvertently catch + runtime exceptions (Brian Goetz) +
  • +
  • + New detector to find objects that are instantiated based on + classes that only have static methods and fields, using the + synthesized constructor (Dave Brosius) +
  • +
  • + New detector to find calls to Thread.interrupted() in a non + static context, and especially with non currentThread() threads + (Dave Brosius) +
  • +
  • + New detector to find calls to equals() methods that use Object's + version. (Dave Brosius) +
  • +
  • + New detector to find Applets that call methods in the constructor + refering to the AppletStub (Dave Brosius) +
  • +
  • + New detector to find some cases of infinite recursion (Bill Pugh) +
  • +
  • + New detector to find dead stores to local variables (David + Hovemeyer, Bill Pugh) +
  • +
  • + Extend Dumb Method detector for toUpperCase(), toLowerCase() + without a locale, new Integer(1).toString(), new + XXX().getClass(), and new Thread() without a run implementation + (Dave Brosius) + +
  • +
  • + Ant task supports "errorProperty" attribute, which sets an Ant + property to "true" if an error occurs running FindBugs (Michael + Tamm) +
  • +
  • + Eclipse plugin allows filtering of warnings by bug category, + priority (David Hovemeyer) +
  • +
  • + Swing GUI allows filtering of warnings by bug category (David + Hovemeyer) +
  • +
  • + Ability to annotate methods using Java 1.5 annotations that + suppress FindBugs warnings (Bill Pugh) +
  • +
  • + New -adjustExperimental for lowering priority of BugPatterns that + are experimental (Dave Brosius) +
  • +
  • + Allow for command line options 'files' using the @ symbol (David + Hovemeyer) +
  • +
  • + New -adjustPriority command line option to for adjusting bug + priorites (David Hovemeyer) +
  • +
  • + Added an Edit menu (cut/copy/paste) to Swing GUI (Dave Brosius) +
  • +
  • + French translation supplied (David Cotton) + +
  • +
+ +

+ Changes since version 0.8.4: + +

+
    + +
  • + New detector for volatile references to arrays (Bill Pugh) +
  • +
  • + New detector to find instanceof usage where inheritance can be + determined statically (Dave Brosius) +
  • +
  • + New detector to find ResultSet.getXXX updateXXX calls using index + 0 (Dave Brosius) +
  • +
  • + New detector to find empty zip or jar entries (Bill Pugh) + + +
  • +
  • + HTML output generation using built-in XSLT stylesheet or + user-defined stylesheet (David Hovemeyer) +
  • +
  • + Allow URLs to be specified to analyze zip/jar files, local + directories, and single classfiles (David Hovemeyer) +
  • +
  • + New command line option -onlyAnalyze restricts analysis to + selected classes and packages without reducing accuracy (David + Hovemeyer) +
  • +
  • + Allow Swing GUI to show source code in jar files on Windows + systems (Dave Brosius) + + +
  • +
  • + Fix the Switch Fall Thru detector (Dave Brosius, David Hovemeyer, + Bill Pugh) +
  • +
  • + MacOS GUI fixes (Rohan Lloyd) +
  • +
  • + Fix false positive in BOA in case where method is correctly and + 'incorrectly' overridden (Dave Brosius) +
  • +
  • + Fixed memory blowup when analyzing methods which access a large + number of fields (David Hovemeyer) +
  • +
+ +

+ Changes since version 0.8.3: +

+
    +
  • + Initial and preliminary localization of the Swing GUI.  + Translations by: +
      +
    • + German - Peter D. Stout, Holger Stenzhorn +
    • +
    • + Finnish - Juha Knuutila +
    • +
    • + Estonian - Tanel Lebedev +
    • +
    • + Japanese - Hanai Shisei +
    • +
    +
  • +
  • + Eliminated debug print statements inadvertently left enabled +
  • +
  • + Reverted some changes in the open stream detector: this should + fix some false positives that were introduced in the previous + release +
  • +
  • + Fixed a couple missing class reports +
  • +
+ +

+ Changes since version 0.8.2: +

+
    + + +
  • + New detector to find improperly overridden GUI Adapter classes + (Dave Brosius) +
  • +
  • + New detector to find improperly setup JUnit TestCases (Dave + Brosius) +
  • +
  • + New detector to find variables that mask class level fields (Dave + Brosius) +
  • +
  • + New detector to find comparisons of values computed with bitwise + operators that always yield the same result (Tom Truscott) +
  • +
  • + New detector to find unsafe getClass().getResource() calls (Bill + Pugh) +
  • +
  • + New detector to find GUI changes not in GUI thread but in static + main (Bill Pugh) +
  • +
  • + New detector to find calls to Collection.toArray() with + zero-length array argument; it is more efficient to pass an array + the size of the collection, which can be populated and returned + as the result (Dave Brosius) + + +
  • +
  • + Better suppression of false warnings in various detectors (Bill + Pugh, David Hovemeyer) +
  • +
  • + Enhancement to ReadReturnShouldBeChecked detector for skip() + (Dave Brosius) +
  • +
  • + Enhancement to DumbMethods detector (Dave Brosius) +
  • +
  • + Open stream detector does not report wrappers of streams passed + as method parameters (David Hovemeyer) + + +
  • +
  • + Cancel confirmation dialog in Swing GUI (Pete Angstadt) +
  • +
  • + Better relative path saving in Project file (Dave Brosius) +
  • +
  • + Detector Priority in GUI is now saved in prefs file (Dave + Brosius) +
  • +
  • + Controls in GUI to reorder source and classpath entries, and + ability to flip between Project details and bugs pages (Dave + Brosius) +
  • +
  • + In Swing GUI, analysis error dialog supports "Select All" and + "Copy" operations for easy generation of error reports (Dave + Brosius) +
  • +
  • + Complete translation of bug descriptions and messages into + Japanese (Hanai Shisei) + + +
  • +
  • + Fixed bug in DroppedException detector (Dave Brosius) + + +
  • +
  • + The source distribution defaults to using JDK 1.5 javac to + compile, but support for compiling with JSR-14 prototype is still + supported +
  • +
+ +

+ Changes since version 0.8.1: +

+
    +
  • + Fixed a critical ClassCastException bug (triggered if the + -workHard option was used, and an exception type was merged with + an array type during type inference) +
  • +
+ +

+ Changes since version 0.8.0: + +

+
    +
  • + Disabled SwitchFallthrough detector to work around + NullPointerExceptions +
  • +
  • + Added some additional false positive suppression heuristics +
  • +
+ +

+ Also, two contributors to the 0.8.0 release were inadvertently + left out of the credits: + +

+
    +
  • + Pete Angstadt fixed several problems in the Swing GUI +
  • +
  • + Francis Lalonde provided a task resource file for the FindBugs + Ant task +
  • +
+ +

+ Changes since version 0.7.4: + +

+
    +
  • + New detector to look for uses of "+" operator to concatenate + String objects in a loop (Dave Brosius) +
  • +
  • + Reference comparison detector looks for places where the argument + passed to the equals(Object) method isn't the same type as the + receiver object +
  • +
  • + Better suppression of false warnings in many detectors +
  • +
  • + Many improvements to Eclipse plugin (Andrey Loskutov, Peter + Friese) +
  • +
  • + Fixed problem with building Eclipse plugin on Windows (Thomas + Klaeger) +
  • +
  • + Open stream detector looks for unclosed PreparedStatement objects + (Thomas Klaeger, Rohan Lloyd) +
  • +
  • + Fix for open stream detector: it wasn't detecting close() methods + called through an invokeinterface instruction (Thomas Klaeger) +
  • +
  • + Refactoring of visitor classes to enforce use of accessors for + visited class features (Brian Goetz) +
  • +
+ +

+ Changes since version 0.7.3: + +

+
    +
  • + Experimental modification of open stream detector to look for + non-escaping JDBC resources (connections and statements) that + aren't closed on all paths out of method +
  • +
  • + Eclipse plugin fixed so it compiles and runs on Eclipse 2.1.x + (Peter Friese) +
  • +
  • + Option to Swing GUI and command line to generate project file + using relative paths for archives, source directories, and aux + classpath entries (Dave Brosius) +
  • +
  • + Improvements to findbugs.bat script for launching FindBugs on + Windows (Dave Brosius) +
  • +
  • + Updated Japanese message translations (Hiroshi Okugawa) +
  • +
  • + Uncalled private methods are now reported as low priority, unless + they have the same name as another method in the class (which is + more likely to indicate an actual bug) +
  • +
  • + Added some missing data in the bug messages XML files +
  • +
  • + Fixed some problems building from source on Windows systems +
  • +
  • + Various minor bug fixes +
  • +
+ +

+ Changes since version 0.7.2: + +

+
    +
  • + Enhanced Eclipse plugin, which displays the detailed bug + description in a view (Phil Crosby) +
  • +
  • + Various tweaks to existing detectors to reduce false warnings +
  • +
  • + New command line option + + -workHard + + enables pruning of infeasible or unlikely exception edges, which + results in better accuracy in the open stream detector, at the + expense of a 30%-100% slowdown +
  • +
  • + New website and HTML documentation design +
  • +
  • + Documentation includes an HTML document with descriptions of all + bug patterns reported by FindBugs +
  • +
  • + Web page has a link to a + Japanese + translation of the FindBugs manual, contributed by Hiroshi + Okugawa +
  • +
  • + Changed the Inconsistent Synchronization detector so that fields + synchronized 50% of the time (or more) are reported as medium + priority bugs (previously they were reported as low) +
  • +
  • + New detector to find code that catches + IllegalMonitorStateException +
  • +
  • + New detector to find private methods that are never called +
  • +
  • + New detector to find suspicious uses of non-short-circuiting + boolean operators ( + + & + + and + + | + + , rather than + + && + + and + + || + + ) +
  • +
+ +

+ Changes since version 0.7.1: + +

+
    +
  • + Incorporated patched version of BCEL, which allows classes + compiled with JDK 1.5.0 beta to be analyzed +
  • +
  • + Fixed some bugs related to lookups of array classes +
  • +
  • + Fixed bug that prevented GUI from loading XML result files when + running under JDK 1.5.0 beta +
  • +
  • + Added new experimental bug detector, LazyInit, which looks for + potentially buggy lazy initializations of static fields +
  • +
  • + Because of long filenames, switched to distributing the source + archive as a zip file rather than a tar file +
  • +
  • + The 0.7.1 source tarfile was botched - 0.7.2 has a valid source + archive +
  • +
  • + Fixed some problems in the Ant build script +
  • +
  • + Fixed NullPointerException when checking Class-Path attribute for + Jar files without manifests +
  • +
  • + Generate version numbers for the core and UI Eclipse plugins + using the Version class; all version numbers are now in a common + location +
  • +
+ +

+ Changes since version 0.7.0: + +

+
    +
  • + Eclipse plugin (contributed by Peter Friese) +
  • +
  • + Source package structure rearranged: all source (other than + Eclipse plugin UI) is in the edu.umd.cs.findbugs package, or a + subpackage +
  • +
  • + Class-Path attributes of manifests of analyzed jar files are used + to set the aux classpath automatically (Peter D. Stout) +
  • +
  • + GUI starts in directory specified by user.home property (Peter D. + Stout) +
  • +
  • + Added -project option to GUI (Mikko T.) +
  • +
  • + Added -look:{plastic,gtk,native} option to GUI, for setting look + and feel (Mikko T.) +
  • +
  • + Fixed DataflowAnalysisException in inconsistent synchronization + detector +
  • +
  • + Ant task supports failOnError parameter (Rohan Lloyd) +
  • +
  • + Serializable class warnings are downgraded to low priority for + GUI classes +
  • +
  • + MWN detector will only report calls to wait(), notify(), and + notifyAll() methods that have the correct signature +
  • +
  • + FindBugs works with latest CVS version of BCEL +
  • +
  • + Zip and Jar files may be added to the source path +
  • +
  • + The GUI will automatically find source files residing in analyzed + Zip or Jar files +
  • +
+ +

+ Note that the version number jumped from 0.6.6 to 0.6.9; there + were no 0.6.7 or 0.6.8 releases. + +

+

+ Changes since version 0.6.9: +

+
    +
  • + Added -conserveSpace option to reduce memory use at the expense + of analysis precision +
  • +
  • + Bug fixes in findbugs.bat script: JAVA_HOME handling, + autodetection of FINDBUGS_HOME, missing output with -textui +
  • +
  • + Fixed NullPointerException when a missing class is encountered +
  • +
+ +

+ Changes since version 0.6.6: + +

+
    +
  • + The null pointer dereference detector is more powerful +
  • +
  • + Significantly improved heuristics and bug fixes in inconsistent + synchronization detector +
  • +
  • + Improved heuristics in open stream and dropped exception + detectors; fewer false positives should be reported +
  • +
  • + Save HTML summary in XML results files, rather than recomputing; + this makes loading results in GUI much faster +
  • +
  • + Report at most one String comparison using == or != per method +
  • +
  • + The findbugs.bat script on Windows autodetects FINDBUGS_HOME, and + doesn't open a DOS window when launching the GUI (contributed by + TJSB) +
  • +
  • + Emacs reporting format (contributed by David Li) +
  • +
  • + Various bug fixes +
  • +
+ +

+ Changes since 0.6.5: + +

+
    +
  • + Rewritten inconsistent synchronization detector; accuracy is + significantly improved, and bug reports are prioritized +
  • +
  • + New detector to find self assignment (x=x) of local variables + (suggested by Jeff Martin) +
  • +
  • + New detector to find calls to wait(), notify(), and notifyAll() + on an object which is not obviously locked +
  • +
  • + Open stream detector now reports Readers and Writers +
  • +
  • + Fixed bug in finalizer idioms detector which caused spurious + warnings about failure to call super.finalize() (reported by Jim + Menard) +
  • +
  • + Fixed bug where output stream was not closed using non-XML output + (reported by Sigiswald Madou) +
  • +
  • + Fixed corrupted HTML bug detail message (reported by Trevor + Harmon) +
  • +
+ +

+ Changes since version 0.6.4: + +

+
    +
  • + For redundant comparison of reference values, fixed false + positives resulting from duplication of code in finally blocks +
  • +
  • + Fixed false positives resulting from wrapped byte array streams + left open +
  • +
  • + Fixed bug in Ant task preventing output file from working + properly if a relative path was used +
  • +
+ +

+ Changes since version 0.6.3: + +

+
    +
  • + Fixed bug in Ant task where output would be corrupted, and added + a + + timeout + + attribute +
  • +
  • + Added -outputFile option to text UI, for explicitly specifying an + output file +
  • +
  • + GUI has a summary window, for statistics about overall bug + densities (contributed by Mike Fagan) +
  • +
  • + Find redundant comparisons of reference values +
  • +
  • + More accurate detection of Strings compared with == and != + operators +
  • +
  • + Detection of other reference types which should generally not be + compared with == and != operators; Boolean, Integer, etc. +
  • +
  • + Find non-transient non-serializable instance fields in + Serializable classes +
  • +
  • + Source code may be compiled with latest early access + generics-enabled javac (version 2.2) +
  • +
+ +

+ Changes since version 0.6.2: + +

+
    +
  • + GUI supports filtering bugs by priority +
  • +
  • + Ant task rewritten; supports all functionality offered by Text UI + (contributed by Mike Fagan) +
  • +
  • + Ant task is fully documented in the manual +
  • +
  • + Classes in nested archives are analyzed; this allows full support + for analyzing .ear and .war files (contributed by Mike Fagan) +
  • +
  • + DepthFirstSearch changed to use non-recursive implementation; + this should fix the StackOverflowErrors that several users + reported +
  • +
  • + Various minor bugfixes and improvements +
  • +
+ +

+ Changes since version 0.6.1: + +

+
    +
  • + New detector to look for useless control flow (suggested by + Richard P. King and Mike Fagan) +
  • +
  • + Look for places where return value of + java.io.File.createNewFile() is ignored (suggested by Richard P. + King) +
  • +
  • + Fixed bug in resolution of source files (only the first source + directory was searched) +
  • +
  • + Fixed a NullPointerException in the bytecode pattern matching + code +
  • +
  • + Ant task supports project files (contributed by Mike Fagan) +
  • +
  • + Unix findbugs script honors the + + JAVA_HOME + + environment variable (contributed by Pedro Morais) +
  • +
  • + Allow .war and .ear files to be analyzed +
  • +
+ +

+ Changes since version 0.6.0: + +

+
    +
  • + New bug pattern detector which looks for places where a null + pointer might be dereferenced +
  • +
  • + New bug pattern detector which looks for IO streams that are + opened, do not escape the method, and are not closed on all paths + out of the method +
  • +
  • + New bug pattern detector to find methods that can return null + instead of a zero-length array +
  • +
  • + New bug pattern detector to find places where the == or != + operators are used to compare String objects +
  • +
  • + Command line interface can save bugs as XML +
  • +
  • + GUI can save bugs to and load bugs from XML +
  • +
  • + An "Annotations" window in the GUI allows the user to add textual + annotations to bug reports; these annotations are preserved when + bugs are saved as XML +
  • +
  • + In this release, the Japanese bug summary translations by Germano + Leichsenring are really included (they were inadvertently omitted + in the previous release) +
  • +
  • + Completely rewrote the control flow graph builder, hopefully for + the last time +
  • +
  • + Simplified implementation of control flow graphs, which should + reduce memory use and possibly improve performance +
  • +
  • + Improvements to command line interface (list bug priorities, + filter by priority, specify aux classpath, specify project to + analyze) +
  • +
  • + Various bug fixes and enhancements +
  • +
+ +

+ Changes since version 0.5.4 + +

+
    +
  • + Added an + Ant task for FindBugs, + contributed by Mike Fagan. +
  • +
  • + Added a GUI dialog which allows individual bug pattern detectors + to be enabled or disabled.  Disabling certain slow detectors + can greatly speed up analysis of large programs, at the expense + of reducing the number of potential bugs found. +
  • +
  • + Added a new detector for finding improperly ignored return values + for methods such as + + String.trim() + + .  Suggested by Andreas Mandel. +
  • +
  • + Japanese translations of the bug summaries, contributed by + Germano Leichsenring. +
  • +
  • + Filtering of results is supported in command line interface. See + the + FindBugs manual for details. +
  • +
  • + Added "byte code patterns", a general pattern matching + infrastructure for bytecode instructions.  This feature + significantly reduces the complexity of implementing new bug + pattern detectors. +
  • +
  • + Enabled a new general dataflow analysis to track values in + methods. +
  • +
  • + Switched to new control-flow graph builder implementation. +
  • +
+ +

+ Changes since version 0.5.3 + +

+
    +
  • + Fixed a bug in the script used to launch FindBugs on Windows + platforms. +
  • +
  • + Fixed crashes when analyzing class files without source line + information. +
  • +
  • + All major errors are reported using an error dialog; file not + found errors are more informative. +
  • +
  • + Minor GUI improvements. +
  • +
+ +

+ Changes since version 0.5.2 + +

+
    +
  • + All of the source code and related files are in a single + directory tree. +
  • +
  • + Updated some of the detectors to produce source line information. +
  • +
  • + Ant build script and several + GUI enhancements and fixes contributed by Mike Fagan. +
  • +
  • + Converted to use a + plugin architecture for loading + bug detectors. +
  • +
  • + Eliminated generics-related compiler warnings. +
  • +
  • + More complete documentation has been added. +
  • +
+ +

+ Changes since version 0.5.1: +

+
    +
  • + Fixed a large number of bugs in the BCEL Repository and + FindBugs's use of the Repository.  With these changes, + FindBugs should + never crash or otherwise misbehave because of Repository + lookup failures.  Because of these changes, you must use a + modified version of + + bcel.jar + + with FindBugs.  This jar file is included in the FindBugs + 0.5.2 binary release.  A complete patch containing the + modifications + against the BCEL CVS main branch as of April 30, 2003 is also + available. +
  • +
  • + Implemented the "auxiliary classpath entry list".  Aux + classpath entries can be added to a project to provide classes + that are referenced by the analyzed application, but should not + themselves be analyzed.  Having all referenced classes + available allows FindBugs to produce more accurate results. +
  • +
+ +

+ Changes since version 0.5.0: +

+
    +
  • + Many user interface bugs have been fixed. +
  • +
  • + Upgraded to a recent CVS version of BCEL, with some bug + fixes.  This should prevent FindBugs from crashing when + there is a failure to find a class on the classpath. +
  • +
  • + Added support for Plastic look and feel from + jgoodies.com. +
  • +
  • + Major overhaul of infrastructure for doing dataflow analysis. +
  • +
+ + +

+ +

Send comments to findbugs@cs.umd.edu +

+SourceForge.net Logo + +

+ + + + diff --git a/findbugs/findbugs-2.0.0/doc/FAQ.html b/findbugs/findbugs-2.0.0/doc/FAQ.html new file mode 100644 index 0000000..463c8cc --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/FAQ.html @@ -0,0 +1,275 @@ + + +FindBugs FAQ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+

FindBugs FAQ

+ +

This document contains answers to frequently asked questions about +FindBugs.  If you just want general +information about FindBugs, have a look at the +fact sheet and the +manual. + +

Contents

+
    +
  1. I'm getting java.lang.UnsupportedClassVersionError when I try to run FindBugs +
  2. When I click the "Find Bugs!" button, I get a NoSuchMethodError or VerifyError +
  3. FindBugs is running out of memory, or is taking a long time to finish +
  4. What is the "auxiliary classpath"? Why should I specify it? +
  5. The Eclipse plugin doesn't load +
  6. I'm getting a lot of false "OS" and "ODR" warnings +
  7. The Eclipse plugin loads, but doesn't work correctly +
  8. Where is the Maven plugin for FindBugs? +
  9. Where is the NetBeans plugin for FindBugs? +
+ +

Q1: I'm getting java.lang.UnsupportedClassVersionError when I try to run FindBugs

+ +

FindBugs requires JRE 1.5.0 or later to run.  If you use an earlier version, +you will see an exception error message similar to the following: +

+Exception in thread "main" java.lang.UnsupportedClassVersionError:
+edu/umd/cs/findbugs/gui/FindBugsFrame (Unsupported major.minor version 48.0)
+
+The solution is to upgrade to JRE 1.5.0 or later. + +

Q2: When I click the "Find Bugs!" button, I get a NoSuchMethodError or VerifyError

+ +

The symptom of this bug is that when you start the FindBugs analysis, +you see an exception similar to the following: +

+java.lang.NoSuchMethodError: org.apache.bcel.Repository.setRepository(Lorg/apache/bcel/util/Repository;)V
+        at edu.umd.cs.findbugs.FindBugs.clearRepository(FindBugs.java:483)
+        ...
+
+ +or + +
+java.lang.VerifyError: Cannot inherit from final class
+	at java.lang.ClassLoader.defineClass0(Native Method)
+	at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
+	...
+
+ +

The problem here is that the wrong version of the +Apache BCEL +library is being found.  FindBugs requires its own +version of BCEL, which normally will be used automatically +when you invoke the findbugs or findbugs.bat +scripts used to launch FindBugs.  If an old version of BCEL is installed +in a location, such as "lib/endorsed" in the JRE installation, +where it overrides classes on the application classpath, +FindBugs will not execute properly.  +We know of several reasons this could happen + +

    +
  • If you install the +Java(TM) Web Services +Developer Pack 1.2 +in the lib/endorsed directory of your Java Runtime Environment (JRE).  +The file xsltc.jar contains an old version of BCEL that is incompatible with +FindBugs.  + +
  • Another possibility is that you are using the IBM JDK.  +Some versions include a version of BCEL which conflicts with the +one required by FindBugs.  This problem is fixed in version 1.4.1 SP1, +so upgrading your JDK should allow FindBugs to run correctly. + +
  • Some versions of the Apache Xalan XSLT processor include +an old version of BCEL in xalan.jar. + +
+ +

In all of these cases, you should be able to run FindBugs +by either removing the offending version of BCEL from your JRE, +or installing a clean JRE or JDK and using that to run FindBugs. + +

Many thanks to Peter Meulmeester, Michael Levi, and Thomas Klaeger +for providing information on this problem. + +

Q3: FindBugs is running out of memory, or is taking a long time to finish

+ +

In general, FindBugs requires lots of memory and a relatively +fast CPU. For large applications, 512M or more of heap space may be +required. By default, FindBugs allocates 256M of heap space. +You can increase this using the -maxHeap n option, +where n is the number of megabytes of heap space to allocate. + + +

Q4: What is the "auxiliary classpath"? Why should I specify it?

+ +

Many important facts about a Java class require information about +the classes that it references.  For example: +

    +
  • What other classes and interfaces the class inherits from +
  • What exceptions can be thrown by methods in external classes +and interfaces +
+ +

The "auxiliary classpath" is a list of Jar files, directories, and +class files containing classes that are used by the code you +want FindBugs to analyze, but should not themselves be analyzed +by FindBugs. + +

If FindBugs doesn't have complete information about referenced classes, +it will not be able to produce results that are as accurate as possible.  +For example, having a complete repository of referenced classes allows +FindBugs to prune control flow information so it can concentrate on +paths through methods that are most likely to be feasible at runtime.  +Also, some bug detectors (such as the suspicious reference comparison detector) +rely on being able to perform type inference, which requires complete +type hierarchy information. + +

For these reasons, we strongly recommend that you completely specify +the auxiliary classpath when you run FindBugs.  You can do this +by using the -auxclasspath command line option, or the +"Classpath entries" list in the GUI project editor dialog. + +

If FindBugs cannot find a class referenced by your application, it +will print out a message when the analysis completes, specifying the +classes that were missing.  You should modify the auxiliary classpath +to specify how to find the missing classes, and then run FindBugs again. + +

Q5: The Eclipse plugin doesn't load

+ +

The symptom of this problem is that Eclipse fails to load +the FindBugs UI plugin with the message: +

+Plug-in "edu.umd.cs.findbugs.plugin.eclipse" was disabled due to missing or disabled +prerequisite plug-in "org.eclipse.ui.ide" +
+ +

The reason for this problem is that the Eclipse +plugin distributed with FindBugs +does not work with 2.x versions of Eclipse. +Please use Eclipse version 3.3 (June 2007) or newer. + +

Q6: I'm getting a lot of false "OS" and "ODR" warnings

+ +

By default, FindBugs assumes that any method invocation can +throw an unchecked runtime exception.  As a result, +it may assume that an unchecked exception thrown out of the +method could bypass a call to a close() method +for a stream or database resource. + +

You can use the -workHard command line argument +or the findbugs.workHard boolean analysis property +to make FindBugs work harder to prune unlikely exception +edges.  This generally reduces the number of +false warnings, at the expense of slowing down the +analysis. + +

Q7: The Eclipse plugin loads, but doesn't work correctly

+ +

In versions 0.0.6 and 0.0.7 of the FindBugs Eclipse plugin, +which correspond to the 0.7.4 and 0.8.0 releases, +bugs in the experimental SwitchFallthrough detector can prevent +FindBugs from running properly within Eclipse. + +

To work around the problem, make sure that SwitchFallthrough +is disabled in the FindBugs Properties of your project.  +Right click on your project, and choose "Properties".  +In the Properties dialog, choose "FindBugs", +and disable the checkbox next to SwitchFallthrough. + +

Another common problem with the Eclipse plugin is that +the FindBugs warnings do not appear in the "Problems" view.  +Make sure that FindBugs warnings are enabled in the filters +for this view.  The Filters menu is accessible by +clicking on the icon that looks like this: +

+ +
+Make sure the "FindBugs Problem" checkbox is enabled. + +

Q8: Where is the Maven plugin for FindBugs?

+ +

+The Maven Plugin for FindBugs +may be found here.  +Please note that the Maven plugin is not maintained by the FindBugs developers, +so we can't answer questions about it. +

+ +

Q9: Where is the NetBeans plugin for FindBugs?

+ +

We recommend SQE: Software Quality Environment +which bundles FindBugs, PMD and CheckStyle. Use the following +update site: +http://deadlock.netbeans.org/hudson/job/sqe/lastStableBuild/artifact/build/full-sqe-updatecenter/updates.xmla> +

Pease note that the SQE plugin is not maintained by the FindBugs developers, +so we can't answer questions about it. +

+ + +

+ +

Send comments to findbugs@cs.umd.edu +

+SourceForge.net Logo + +

+ + + + diff --git a/findbugs/findbugs-2.0.0/doc/FilterFile.txt b/findbugs/findbugs-2.0.0/doc/FilterFile.txt new file mode 100644 index 0000000..1fed032 --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/FilterFile.txt @@ -0,0 +1,125 @@ +============= +How it works: +============= + +A filter file is an XML file with a top-level "FindBugsFilter" element +which has some number of "Match" elements as children. Each Match +element represents a predicate which is applied to generated bug instances. +Usually, a filter will be used to exclude bug instances. For example: + + findbugs -textui -exclude myExcludeFilter.xml myApp.jar + +However, a filter could also be used to select bug instances to specifically +report: + + findbugs -textui -include myIncludeFilter.xml myApp.jar + +Match has "class" and "classregex" attributes specifying what class or classes +the predicate applies to. + +Match contains children, which are conjuncts of the predicate. +(I.e., each of the children must be true for the predicate to be true.) + +======================= +Types of Match clauses: +======================= + + specifies abbreviations of bugs. + The "name" attribute is a comma-seperated list of abbreviations. + + specifies a method. The "name" attribute is the name + of the method. The "params" attribute is a comma separated list + of the types of the method's parameters. The "returns" attribute is + the method's return type. In "params" and "returns", class names + must be fully qualified. (E.g., "java.lang.String" instead of just + "String".) Note that "params" and "returns" are optional; you can + just specify "name", and the clause will match all methods with + that name. However, if you specify either "params" or "returns", + you must specify both of them. + + combines Match clauses as disjuncts. I.e., you can put two + "Method" elements in an Or clause in order match either method. + +======== +Caveats: +======== + +Match clauses can only match information that is actually contained in the +bug instances. Every bug instance has a class, so in general, excluding +bugs by class will work. + +Some bug instances have two classes. For example, the DE (dropped exception) +bugs report both the class containing the method where the dropped exception +happens, and the class which represents the type of the dropped exception. +Only the FIRST (primary) class is matched against Match clauses. +So, for example, if you want to suppress IC (initialization circularity) +reports for classes "com.foobar.A" and "com.foobar.B", you would use +two Match clauses: + + + + + + + + + +Many kinds of bugs report what method they occur in. For those bug instances, +you can put Method clauses in the Match element and they should work +as expected. + +========= +Examples: +========= + + 1. Match all bug reports for a class. + + + + 2. Match certain tests from a class. + + + + + 3. Match certain tests from all classes. + + + + + + 4. Match bug types from specified methods of a class. + + + + + + + + + +================= +Complete Example: +================= + + + + + + + + + + + + + + + + + + + + + + + diff --git a/findbugs/findbugs-2.0.0/doc/allBugDescriptions.html b/findbugs/findbugs-2.0.0/doc/allBugDescriptions.html new file mode 100644 index 0000000..b948b14 --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/allBugDescriptions.html @@ -0,0 +1,5185 @@ +FindBugs Bug Descriptions (Unabridged) + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+

FindBugs Bug Descriptions (Unabridged)

+

This document lists all of the bug patterns reported by the +latest development version of +FindBugs.  Note that this may include +bug patterns not available in any released version of FindBugs, +as well as bug patterns that are not enabled by default. +

Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DescriptionCategory
AM: Creates an empty jar file entryBad practice
AM: Creates an empty zip file entryBad practice
BC: Equals method should not assume anything about the type of its argumentBad practice
BIT: Check for sign of bitwise operationBad practice
CN: Class implements Cloneable but does not define or use clone methodBad practice
CN: clone method does not call super.clone()Bad practice
CN: Class defines clone() but doesn't implement CloneableBad practice
Co: Abstract class defines covariant compareTo() methodBad practice
Co: Covariant compareTo() method definedBad practice
DE: Method might drop exceptionBad practice
DE: Method might ignore exceptionBad practice
DMI: Adding elements of an entry set may fail due to reuse of Entry objectsBad practice
DMI: Random object created and used only onceBad practice
DMI: Don't use removeAll to clear a collectionBad practice
Dm: Method invokes System.exit(...)Bad practice
Dm: Method invokes dangerous method runFinalizersOnExitBad practice
ES: Comparison of String parameter using == or !=Bad practice
ES: Comparison of String objects using == or !=Bad practice
Eq: Abstract class defines covariant equals() methodBad practice
Eq: Equals checks for incompatible operandBad practice
Eq: Class defines compareTo(...) and uses Object.equals()Bad practice
Eq: equals method fails for subtypesBad practice
Eq: Covariant equals() method definedBad practice
FI: Empty finalizer should be deletedBad practice
FI: Explicit invocation of finalizerBad practice
FI: Finalizer nulls fieldsBad practice
FI: Finalizer only nulls fieldsBad practice
FI: Finalizer does not call superclass finalizerBad practice
FI: Finalizer nullifies superclass finalizerBad practice
FI: Finalizer does nothing but call superclass finalizerBad practice
FS: Format string should use %n rather than \nBad practice
GC: Unchecked type in generic callBad practice
HE: Class defines equals() but not hashCode()Bad practice
HE: Class defines equals() and uses Object.hashCode()Bad practice
HE: Class defines hashCode() but not equals()Bad practice
HE: Class defines hashCode() and uses Object.equals()Bad practice
HE: Class inherits equals() and uses Object.hashCode()Bad practice
IC: Superclass uses subclass during initializationBad practice
IMSE: Dubious catching of IllegalMonitorStateExceptionBad practice
ISC: Needless instantiation of class that only supplies static methodsBad practice
It: Iterator next() method can't throw NoSuchElementExceptionBad practice
J2EE: Store of non serializable object into HttpSessionBad practice
JCIP: Fields of immutable classes should be finalBad practice
NP: Method with Boolean return type returns explicit nullBad practice
NP: Clone method may return nullBad practice
NP: equals() method does not check for null argumentBad practice
NP: toString method may return nullBad practice
Nm: Class names should start with an upper case letterBad practice
Nm: Class is not derived from an Exception, even though it is named as suchBad practice
Nm: Confusing method namesBad practice
Nm: Field names should start with a lower case letterBad practice
Nm: Use of identifier that is a keyword in later versions of JavaBad practice
Nm: Use of identifier that is a keyword in later versions of JavaBad practice
Nm: Method names should start with a lower case letterBad practice
Nm: Class names shouldn't shadow simple name of implemented interfaceBad practice
Nm: Class names shouldn't shadow simple name of superclassBad practice
Nm: Very confusing method names (but perhaps intentional)Bad practice
Nm: Method doesn't override method in superclass due to wrong package for parameterBad practice
ODR: Method may fail to close database resourceBad practice
ODR: Method may fail to close database resource on exceptionBad practice
OS: Method may fail to close streamBad practice
OS: Method may fail to close stream on exceptionBad practice
PZ: Don't reuse entry objects in iteratorsBad practice
RC: Suspicious reference comparison to constantBad practice
RC: Suspicious reference comparison of Boolean valuesBad practice
RR: Method ignores results of InputStream.read()Bad practice
RR: Method ignores results of InputStream.skip()Bad practice
RV: Negating the result of compareTo()/compare()Bad practice
RV: Method ignores exceptional return valueBad practice
SI: Static initializer creates instance before all static final fields assignedBad practice
SW: Certain swing methods needs to be invoked in Swing threadBad practice
Se: Non-transient non-serializable instance field in serializable classBad practice
Se: Non-serializable class has a serializable inner classBad practice
Se: Non-serializable value stored into instance field of a serializable classBad practice
Se: Comparator doesn't implement SerializableBad practice
Se: Serializable inner classBad practice
Se: serialVersionUID isn't finalBad practice
Se: serialVersionUID isn't longBad practice
Se: serialVersionUID isn't staticBad practice
Se: Class is Serializable but its superclass doesn't define a void constructorBad practice
Se: Class is Externalizable but doesn't define a void constructorBad practice
Se: The readResolve method must be declared with a return type of Object. Bad practice
Se: Transient field that isn't set by deserialization. Bad practice
SnVI: Class is Serializable, but doesn't define serialVersionUIDBad practice
UI: Usage of GetResource may be unsafe if class is extendedBad practice
BC: Impossible castCorrectness
BC: Impossible downcastCorrectness
BC: Impossible downcast of toArray() resultCorrectness
BC: instanceof will always return falseCorrectness
BIT: Bitwise add of signed byte valueCorrectness
BIT: Incompatible bit masksCorrectness
BIT: Check to see if ((...) & 0) == 0Correctness
BIT: Incompatible bit masksCorrectness
BIT: Bitwise OR of signed byte valueCorrectness
BIT: Check for sign of bitwise operationCorrectness
BOA: Class overrides a method implemented in super class Adapter wronglyCorrectness
BSHIFT: 32 bit int shifted by an amount not in the range 0..31Correctness
Bx: Primitive value is unboxed and coerced for ternary operatorCorrectness
Co: compareTo()/compare() returns Integer.MIN_VALUECorrectness
DLS: Dead store of class literalCorrectness
DLS: Overwritten incrementCorrectness
DMI: Reversed method argumentsCorrectness
DMI: Bad constant value for monthCorrectness
DMI: BigDecimal constructed from double that isn't represented preciselyCorrectness
DMI: hasNext method invokes nextCorrectness
DMI: Collections should not contain themselvesCorrectness
DMI: D'oh! A nonsensical method invocationCorrectness
DMI: Invocation of hashCode on an arrayCorrectness
DMI: Double.longBitsToDouble invoked on an intCorrectness
DMI: Vacuous call to collectionsCorrectness
Dm: Can't use reflection to check for presence of annotation without runtime retentionCorrectness
Dm: Futile attempt to change max pool size of ScheduledThreadPoolExecutorCorrectness
Dm: Creation of ScheduledThreadPoolExecutor with zero core threadsCorrectness
Dm: Useless/vacuous call to EasyMock methodCorrectness
EC: equals() used to compare array and nonarrayCorrectness
EC: Invocation of equals() on an array, which is equivalent to ==Correctness
EC: equals(...) used to compare incompatible arraysCorrectness
EC: Call to equals(null)Correctness
EC: Call to equals() comparing unrelated class and interfaceCorrectness
EC: Call to equals() comparing different interface typesCorrectness
EC: Call to equals() comparing different typesCorrectness
EC: Using pointer equality to compare different typesCorrectness
Eq: equals method always returns falseCorrectness
Eq: equals method always returns trueCorrectness
Eq: equals method compares class names rather than class objectsCorrectness
Eq: Covariant equals() method defined for enumCorrectness
Eq: equals() method defined that doesn't override equals(Object)Correctness
Eq: equals() method defined that doesn't override Object.equals(Object)Correctness
Eq: equals method overrides equals in superclass and may not be symmetricCorrectness
Eq: Covariant equals() method defined, Object.equals(Object) inheritedCorrectness
FE: Doomed test for equality to NaNCorrectness
FS: Format string placeholder incompatible with passed argumentCorrectness
FS: The type of a supplied argument doesn't match format specifierCorrectness
FS: MessageFormat supplied where printf style format expectedCorrectness
FS: More arguments are passed than are actually used in the format stringCorrectness
FS: Illegal format stringCorrectness
FS: Format string references missing argumentCorrectness
FS: No previous argument for format stringCorrectness
GC: No relationship between generic parameter and method argumentCorrectness
HE: Signature declares use of unhashable class in hashed constructCorrectness
HE: Use of class without a hashCode() method in a hashed data structureCorrectness
ICAST: int value converted to long and used as absolute timeCorrectness
ICAST: integral value cast to double and then passed to Math.ceilCorrectness
ICAST: int value cast to float and then passed to Math.roundCorrectness
IJU: JUnit assertion in run method will not be noticed by JUnitCorrectness
IJU: TestCase declares a bad suite method Correctness
IJU: TestCase has no testsCorrectness
IJU: TestCase defines setUp that doesn't call super.setUp()Correctness
IJU: TestCase implements a non-static suite method Correctness
IJU: TestCase defines tearDown that doesn't call super.tearDown()Correctness
IL: A collection is added to itselfCorrectness
IL: An apparent infinite loopCorrectness
IL: An apparent infinite recursive loopCorrectness
IM: Integer multiply of result of integer remainderCorrectness
INT: Bad comparison of int value with long constantCorrectness
INT: Bad comparison of nonnegative value with negative constantCorrectness
INT: Bad comparison of signed byteCorrectness
IO: Doomed attempt to append to an object output streamCorrectness
IP: A parameter is dead upon entry to a method but overwrittenCorrectness
MF: Class defines field that masks a superclass fieldCorrectness
MF: Method defines a variable that obscures a fieldCorrectness
NP: Null pointer dereferenceCorrectness
NP: Null pointer dereference in method on exception pathCorrectness
NP: Method does not check for null argumentCorrectness
NP: close() invoked on a value that is always nullCorrectness
NP: Null value is guaranteed to be dereferencedCorrectness
NP: Value is null and guaranteed to be dereferenced on exception pathCorrectness
NP: Method call passes null to a nonnull parameter Correctness
NP: Method may return null, but is declared @NonNullCorrectness
NP: A known null value is checked to see if it is an instance of a typeCorrectness
NP: Possible null pointer dereferenceCorrectness
NP: Possible null pointer dereference in method on exception pathCorrectness
NP: Method call passes null for nonnull parameterCorrectness
NP: Method call passes null for nonnull parameterCorrectness
NP: Non-virtual method call passes null for nonnull parameterCorrectness
NP: Store of null value into field annotated NonNullCorrectness
NP: Read of unwritten fieldCorrectness
Nm: Class defines equal(Object); should it be equals(Object)?Correctness
Nm: Class defines hashcode(); should it be hashCode()?Correctness
Nm: Class defines tostring(); should it be toString()?Correctness
Nm: Apparent method/constructor confusionCorrectness
Nm: Very confusing method namesCorrectness
Nm: Method doesn't override method in superclass due to wrong package for parameterCorrectness
QBA: Method assigns boolean literal in boolean expressionCorrectness
RC: Suspicious reference comparisonCorrectness
RCN: Nullcheck of value previously dereferencedCorrectness
RE: Invalid syntax for regular expressionCorrectness
RE: File.separator used for regular expressionCorrectness
RE: "." used for regular expressionCorrectness
RV: Random value from 0 to 1 is coerced to the integer 0Correctness
RV: Bad attempt to compute absolute value of signed 32-bit hashcode Correctness
RV: Bad attempt to compute absolute value of signed random integerCorrectness
RV: Code checks for specific values returned by compareToCorrectness
RV: Exception created and dropped rather than thrownCorrectness
RV: Method ignores return valueCorrectness
RpC: Repeated conditional testsCorrectness
SA: Self assignment of fieldCorrectness
SA: Self comparison of field with itselfCorrectness
SA: Nonsensical self computation involving a field (e.g., x & x)Correctness
SA: Self assignment of local rather than assignment to fieldCorrectness
SA: Self comparison of value with itselfCorrectness
SA: Nonsensical self computation involving a variable (e.g., x & x)Correctness
SF: Dead store due to switch statement fall throughCorrectness
SF: Dead store due to switch statement fall through to throwCorrectness
SIC: Deadly embrace of non-static inner class and thread localCorrectness
SIO: Unnecessary type check done using instanceof operatorCorrectness
SQL: Method attempts to access a prepared statement parameter with index 0Correctness
SQL: Method attempts to access a result set field with index 0Correctness
STI: Unneeded use of currentThread() call, to call interrupted() Correctness
STI: Static Thread.interrupted() method invoked on thread instanceCorrectness
Se: Method must be private in order for serialization to workCorrectness
Se: The readResolve method must not be declared as a static method. Correctness
TQ: Value annotated as carrying a type qualifier used where a value that must not carry that qualifier is requiredCorrectness
TQ: Value that might not carry a type qualifier is always used in a way requires that type qualifierCorrectness
TQ: Value that might carry a type qualifier is always used in a way prohibits it from having that type qualifierCorrectness
TQ: Value annotated as never carrying a type qualifier used where value carrying that qualifier is requiredCorrectness
UMAC: Uncallable method defined in anonymous classCorrectness
UR: Uninitialized read of field in constructorCorrectness
UR: Uninitialized read of field method called from constructor of superclassCorrectness
USELESS_STRING: Invocation of toString on an arrayCorrectness
USELESS_STRING: Invocation of toString on an arrayCorrectness
USELESS_STRING: Array formatted in useless way using format stringCorrectness
UwF: Field only ever set to nullCorrectness
UwF: Unwritten fieldCorrectness
VA: Primitive array passed to function expecting a variable number of object argumentsCorrectness
LG: Potential lost logger changes due to weak reference in OpenJDKExperimental
OBL: Method may fail to clean up stream or resourceExperimental
OBL: Method may fail to clean up stream or resource on checked exceptionExperimental
Dm: Consider using Locale parameterized version of invoked methodInternationalization
Dm: Reliance on default encodingInternationalization
DP: Classloaders should only be created inside doPrivileged blockMalicious code vulnerability
DP: Method invoked that should be only be invoked inside a doPrivileged blockMalicious code vulnerability
EI: May expose internal representation by returning reference to mutable objectMalicious code vulnerability
EI2: May expose internal representation by incorporating reference to mutable objectMalicious code vulnerability
FI: Finalizer should be protected, not publicMalicious code vulnerability
MS: May expose internal static state by storing a mutable object into a static fieldMalicious code vulnerability
MS: Field isn't final and can't be protected from malicious codeMalicious code vulnerability
MS: Public static method may expose internal representation by returning arrayMalicious code vulnerability
MS: Field should be both final and package protectedMalicious code vulnerability
MS: Field is a mutable arrayMalicious code vulnerability
MS: Field is a mutable HashtableMalicious code vulnerability
MS: Field should be moved out of an interface and made package protectedMalicious code vulnerability
MS: Field should be package protectedMalicious code vulnerability
MS: Field isn't final but should beMalicious code vulnerability
AT: Sequence of calls to concurrent abstraction may not be atomicMultithreaded correctness
DC: Possible double check of fieldMultithreaded correctness
DL: Synchronization on BooleanMultithreaded correctness
DL: Synchronization on boxed primitiveMultithreaded correctness
DL: Synchronization on interned String Multithreaded correctness
DL: Synchronization on boxed primitive valuesMultithreaded correctness
Dm: Monitor wait() called on ConditionMultithreaded correctness
Dm: A thread was created using the default empty run methodMultithreaded correctness
ESync: Empty synchronized blockMultithreaded correctness
IS: Inconsistent synchronizationMultithreaded correctness
IS: Field not guarded against concurrent accessMultithreaded correctness
JLM: Synchronization performed on LockMultithreaded correctness
JLM: Synchronization performed on util.concurrent instanceMultithreaded correctness
JLM: Using monitor style wait methods on util.concurrent abstractionMultithreaded correctness
LI: Incorrect lazy initialization of static fieldMultithreaded correctness
LI: Incorrect lazy initialization and update of static fieldMultithreaded correctness
ML: Synchronization on field in futile attempt to guard that fieldMultithreaded correctness
ML: Method synchronizes on an updated fieldMultithreaded correctness
MSF: Mutable servlet fieldMultithreaded correctness
MWN: Mismatched notify()Multithreaded correctness
MWN: Mismatched wait()Multithreaded correctness
NN: Naked notifyMultithreaded correctness
NP: Synchronize and null check on the same field.Multithreaded correctness
No: Using notify() rather than notifyAll()Multithreaded correctness
RS: Class's readObject() method is synchronizedMultithreaded correctness
RV: Return value of putIfAbsent ignored, value passed to putIfAbsent reusedMultithreaded correctness
Ru: Invokes run on a thread (did you mean to start it instead?)Multithreaded correctness
SC: Constructor invokes Thread.start()Multithreaded correctness
SP: Method spins on fieldMultithreaded correctness
STCAL: Call to static CalendarMultithreaded correctness
STCAL: Call to static DateFormatMultithreaded correctness
STCAL: Static Calendar fieldMultithreaded correctness
STCAL: Static DateFormatMultithreaded correctness
SWL: Method calls Thread.sleep() with a lock heldMultithreaded correctness
TLW: Wait with two locks heldMultithreaded correctness
UG: Unsynchronized get method, synchronized set methodMultithreaded correctness
UL: Method does not release lock on all pathsMultithreaded correctness
UL: Method does not release lock on all exception pathsMultithreaded correctness
UW: Unconditional waitMultithreaded correctness
VO: An increment to a volatile field isn't atomicMultithreaded correctness
VO: A volatile reference to an array doesn't treat the array elements as volatileMultithreaded correctness
WL: Synchronization on getClass rather than class literalMultithreaded correctness
WS: Class's writeObject() method is synchronized but nothing else isMultithreaded correctness
Wa: Condition.await() not in loop Multithreaded correctness
Wa: Wait not in loop Multithreaded correctness
Bx: Primitive value is boxed and then immediately unboxedPerformance
Bx: Primitive value is boxed then unboxed to perform primitive coercionPerformance
Bx: Boxed value is unboxed and then immediately reboxedPerformance
Bx: Method allocates a boxed primitive just to call toStringPerformance
Bx: Method invokes inefficient floating-point Number constructor; use static valueOf insteadPerformance
Bx: Method invokes inefficient Number constructor; use static valueOf insteadPerformance
Dm: The equals and hashCode methods of URL are blockingPerformance
Dm: Maps and sets of URLs can be performance hogsPerformance
Dm: Method invokes inefficient Boolean constructor; use Boolean.valueOf(...) insteadPerformance
Dm: Explicit garbage collection; extremely dubious except in benchmarking codePerformance
Dm: Method allocates an object, only to get the class objectPerformance
Dm: Use the nextInt method of Random rather than nextDouble to generate a random integerPerformance
Dm: Method invokes inefficient new String(String) constructorPerformance
Dm: Method invokes toString() method on a StringPerformance
Dm: Method invokes inefficient new String() constructorPerformance
HSC: Huge string constants is duplicated across multiple class filesPerformance
ITA: Method uses toArray() with zero-length array argumentPerformance
SBSC: Method concatenates strings using + in a loopPerformance
SIC: Should be a static inner classPerformance
SIC: Could be refactored into a named static inner classPerformance
SIC: Could be refactored into a static inner classPerformance
SS: Unread field: should this field be static?Performance
UM: Method calls static Math class method on a constant valuePerformance
UPM: Private method is never calledPerformance
UrF: Unread fieldPerformance
UuF: Unused fieldPerformance
WMI: Inefficient use of keySet iterator instead of entrySet iteratorPerformance
Dm: Hardcoded constant database passwordSecurity
Dm: Empty database passwordSecurity
HRS: HTTP cookie formed from untrusted inputSecurity
HRS: HTTP Response splitting vulnerabilitySecurity
SQL: Nonconstant string passed to execute method on an SQL statementSecurity
SQL: A prepared statement is generated from a nonconstant StringSecurity
XSS: JSP reflected cross site scripting vulnerabilitySecurity
XSS: Servlet reflected cross site scripting vulnerability in error pageSecurity
XSS: Servlet reflected cross site scripting vulnerabilitySecurity
BC: Questionable cast to abstract collection Dodgy code
BC: Questionable cast to concrete collectionDodgy code
BC: Unchecked/unconfirmed castDodgy code
BC: instanceof will always return trueDodgy code
BSHIFT: Unsigned right shift cast to short/byteDodgy code
CI: Class is final but declares protected fieldDodgy code
DB: Method uses the same code for two branchesDodgy code
DB: Method uses the same code for two switch clausesDodgy code
DLS: Dead store to local variableDodgy code
DLS: Useless assignment in return statementDodgy code
DLS: Dead store of null to local variableDodgy code
DLS: Dead store to local variable that shadows fieldDodgy code
DMI: Code contains a hard coded reference to an absolute pathnameDodgy code
DMI: Non serializable object written to ObjectOutputDodgy code
DMI: Invocation of substring(0), which returns the original valueDodgy code
Dm: Thread passed where Runnable expectedDodgy code
Eq: Class doesn't override equals in superclassDodgy code
Eq: Unusual equals method Dodgy code
FE: Test for floating point equalityDodgy code
FS: Non-Boolean argument formatted using %b format specifierDodgy code
IA: Ambiguous invocation of either an inherited or outer methodDodgy code
IC: Initialization circularityDodgy code
ICAST: integral division result cast to double or floatDodgy code
ICAST: Result of integer multiplication cast to longDodgy code
IM: Computation of average could overflowDodgy code
IM: Check for oddness that won't work for negative numbers Dodgy code
INT: Integer remainder modulo 1Dodgy code
INT: Vacuous bit mask operation on integer valueDodgy code
INT: Vacuous comparison of integer valueDodgy code
MTIA: Class extends Servlet class and uses instance variablesDodgy code
MTIA: Class extends Struts Action class and uses instance variablesDodgy code
NP: Dereference of the result of readLine() without nullcheckDodgy code
NP: Immediate dereference of the result of readLine()Dodgy code
NP: Load of known null valueDodgy code
NP: Possible null pointer dereference due to return value of called methodDodgy code
NP: Possible null pointer dereference on branch that might be infeasibleDodgy code
NP: Parameter must be nonnull but is marked as nullableDodgy code
NP: Read of unwritten public or protected fieldDodgy code
NS: Potentially dangerous use of non-short-circuit logicDodgy code
NS: Questionable use of non-short-circuit logicDodgy code
PZLA: Consider returning a zero length array rather than nullDodgy code
QF: Complicated, subtle or wrong increment in for-loop Dodgy code
RCN: Redundant comparison of non-null value to nullDodgy code
RCN: Redundant comparison of two null valuesDodgy code
RCN: Redundant nullcheck of value known to be non-nullDodgy code
RCN: Redundant nullcheck of value known to be nullDodgy code
REC: Exception is caught when Exception is not thrownDodgy code
RI: Class implements same interface as superclassDodgy code
RV: Method checks to see if result of String.indexOf is positiveDodgy code
RV: Method discards result of readLine after checking if it is nonnullDodgy code
RV: Remainder of hashCode could be negativeDodgy code
RV: Remainder of 32-bit signed random integerDodgy code
RV: Method ignores return value, is this OK?Dodgy code
SA: Double assignment of fieldDodgy code
SA: Double assignment of local variable Dodgy code
SA: Self assignment of local variableDodgy code
SF: Switch statement found where one case falls through to the next caseDodgy code
SF: Switch statement found where default case is missingDodgy code
ST: Write to static field from instance methodDodgy code
Se: private readResolve method not inherited by subclassesDodgy code
Se: Transient field of class that isn't Serializable. Dodgy code
TQ: Value required to have type qualifier, but marked as unknownDodgy code
TQ: Value required to not have type qualifier, but marked as unknownDodgy code
UCF: Useless control flowDodgy code
UCF: Useless control flow to next lineDodgy code
UrF: Unread public/protected fieldDodgy code
UuF: Unused public or protected fieldDodgy code
UwF: Field not initialized in constructor but dereferenced without null checkDodgy code
UwF: Unwritten public or protected fieldDodgy code
XFB: Method directly allocates a specific implementation of xml interfacesDodgy code
+

Descriptions

+

AM: Creates an empty jar file entry (AM_CREATES_EMPTY_JAR_FILE_ENTRY)

+ + +

The code calls putNextEntry(), immediately +followed by a call to closeEntry(). This results +in an empty JarFile entry. The contents of the entry +should be written to the JarFile between the calls to +putNextEntry() and +closeEntry().

+ + +

AM: Creates an empty zip file entry (AM_CREATES_EMPTY_ZIP_FILE_ENTRY)

+ + +

The code calls putNextEntry(), immediately +followed by a call to closeEntry(). This results +in an empty ZipFile entry. The contents of the entry +should be written to the ZipFile between the calls to +putNextEntry() and +closeEntry().

+ + +

BC: Equals method should not assume anything about the type of its argument (BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS)

+ + +

+The equals(Object o) method shouldn't make any assumptions +about the type of o. It should simply return +false if o is not the same type as this. +

+ + +

BIT: Check for sign of bitwise operation (BIT_SIGNED_CHECK)

+ + +

This method compares an expression such as +

((event.detail & SWT.SELECTED) > 0)
. +Using bit arithmetic and then comparing with the greater than operator can +lead to unexpected results (of course depending on the value of +SWT.SELECTED). If SWT.SELECTED is a negative number, this is a candidate +for a bug. Even when SWT.SELECTED is not negative, it seems good practice +to use '!= 0' instead of '> 0'. +

+

+Boris Bokowski +

+ + +

CN: Class implements Cloneable but does not define or use clone method (CN_IDIOM)

+ + +

+ Class implements Cloneable but does not define or + use the clone method.

+ + +

CN: clone method does not call super.clone() (CN_IDIOM_NO_SUPER_CALL)

+ + +

This non-final class defines a clone() method that does not call super.clone(). +If this class ("A") is extended by a subclass ("B"), +and the subclass B calls super.clone(), then it is likely that +B's clone() method will return an object of type A, +which violates the standard contract for clone().

+ +

If all clone() methods call super.clone(), then they are guaranteed +to use Object.clone(), which always returns an object of the correct type.

+ + +

CN: Class defines clone() but doesn't implement Cloneable (CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE)

+ + +

This class defines a clone() method but the class doesn't implement Cloneable. +There are some situations in which this is OK (e.g., you want to control how subclasses +can clone themselves), but just make sure that this is what you intended. +

+ + +

Co: Abstract class defines covariant compareTo() method (CO_ABSTRACT_SELF)

+ + +

This class defines a covariant version of compareTo().  + To correctly override the compareTo() method in the + Comparable interface, the parameter of compareTo() + must have type java.lang.Object.

+ + +

Co: Covariant compareTo() method defined (CO_SELF_NO_OBJECT)

+ + +

This class defines a covariant version of compareTo().  + To correctly override the compareTo() method in the + Comparable interface, the parameter of compareTo() + must have type java.lang.Object.

+ + +

DE: Method might drop exception (DE_MIGHT_DROP)

+ + +

This method might drop an exception.  In general, exceptions + should be handled or reported in some way, or they should be thrown + out of the method.

+ + +

DE: Method might ignore exception (DE_MIGHT_IGNORE)

+ + +

This method might ignore an exception.  In general, exceptions + should be handled or reported in some way, or they should be thrown + out of the method.

+ + +

DMI: Adding elements of an entry set may fail due to reuse of Entry objects (DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS)

+ + +

The entrySet() method is allowed to return a view of the + underlying Map in which a single Entry object is reused and returned + during the iteration. As of Java 1.6, both IdentityHashMap + and EnumMap did so. When iterating through such a Map, + the Entry value is only valid until you advance to the next iteration. + If, for example, you try to pass such an entrySet to an addAll method, + things will go badly wrong. +

+ + +

DMI: Random object created and used only once (DMI_RANDOM_USED_ONLY_ONCE)

+ + +

This code creates a java.util.Random object, uses it to generate one random number, and then discards +the Random object. This produces mediocre quality random numbers and is inefficient. +If possible, rewrite the code so that the Random object is created once and saved, and each time a new random number +is required invoke a method on the existing Random object to obtain it. +

+ +

If it is important that the generated Random numbers not be guessable, you must not create a new Random for each random +number; the values are too easily guessable. You should strongly consider using a java.security.SecureRandom instead +(and avoid allocating a new SecureRandom for each random number needed). +

+ + +

DMI: Don't use removeAll to clear a collection (DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION)

+ + +

If you want to remove all elements from a collection c, use c.clear, +not c.removeAll(c). Calling c.removeAll(c) to clear a collection +is less clear, susceptible to errors from typos, less efficient and +for some collections, might throw a ConcurrentModificationException. +

+ + +

Dm: Method invokes System.exit(...) (DM_EXIT)

+ + +

Invoking System.exit shuts down the entire Java virtual machine. This + should only been done when it is appropriate. Such calls make it + hard or impossible for your code to be invoked by other code. + Consider throwing a RuntimeException instead.

+ + +

Dm: Method invokes dangerous method runFinalizersOnExit (DM_RUN_FINALIZERS_ON_EXIT)

+ + +

Never call System.runFinalizersOnExit +or Runtime.runFinalizersOnExit for any reason: they are among the most +dangerous methods in the Java libraries. -- Joshua Bloch

+ + +

ES: Comparison of String parameter using == or != (ES_COMPARING_PARAMETER_STRING_WITH_EQ)

+ + +

This code compares a java.lang.String parameter for reference +equality using the == or != operators. Requiring callers to +pass only String constants or interned strings to a method is unnecessarily +fragile, and rarely leads to measurable performance gains. Consider +using the equals(Object) method instead.

+ + +

ES: Comparison of String objects using == or != (ES_COMPARING_STRINGS_WITH_EQ)

+ + +

This code compares java.lang.String objects for reference +equality using the == or != operators. +Unless both strings are either constants in a source file, or have been +interned using the String.intern() method, the same string +value may be represented by two different String objects. Consider +using the equals(Object) method instead.

+ + +

Eq: Abstract class defines covariant equals() method (EQ_ABSTRACT_SELF)

+ + +

This class defines a covariant version of equals().  + To correctly override the equals() method in + java.lang.Object, the parameter of equals() + must have type java.lang.Object.

+ + +

Eq: Equals checks for incompatible operand (EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS)

+ + +

This equals method is checking to see if the argument is some incompatible type +(i.e., a class that is neither a supertype nor subtype of the class that defines +the equals method). For example, the Foo class might have an equals method +that looks like: + +

+public boolean equals(Object o) {
+  if (o instanceof Foo)
+    return name.equals(((Foo)o).name);
+  else if (o instanceof String)
+    return name.equals(o);
+  else return false;
+

+ +

This is considered bad practice, as it makes it very hard to implement an equals method that +is symmetric and transitive. Without those properties, very unexpected behavoirs are possible. +

+ + +

Eq: Class defines compareTo(...) and uses Object.equals() (EQ_COMPARETO_USE_OBJECT_EQUALS)

+ + +

This class defines a compareTo(...) method but inherits its + equals() method from java.lang.Object. + Generally, the value of compareTo should return zero if and only if + equals returns true. If this is violated, weird and unpredictable + failures will occur in classes such as PriorityQueue. + In Java 5 the PriorityQueue.remove method uses the compareTo method, + while in Java 6 it uses the equals method. + +

From the JavaDoc for the compareTo method in the Comparable interface: +

+It is strongly recommended, but not strictly required that (x.compareTo(y)==0) == (x.equals(y)). +Generally speaking, any class that implements the Comparable interface and violates this condition +should clearly indicate this fact. The recommended language +is "Note: this class has a natural ordering that is inconsistent with equals." +
+ + +

Eq: equals method fails for subtypes (EQ_GETCLASS_AND_CLASS_CONSTANT)

+ + +

This class has an equals method that will be broken if it is inherited by subclasses. +It compares a class literal with the class of the argument (e.g., in class Foo +it might check if Foo.class == o.getClass()). +It is better to check if this.getClass() == o.getClass(). +

+ + +

Eq: Covariant equals() method defined (EQ_SELF_NO_OBJECT)

+ + +

This class defines a covariant version of equals().  + To correctly override the equals() method in + java.lang.Object, the parameter of equals() + must have type java.lang.Object.

+ + +

FI: Empty finalizer should be deleted (FI_EMPTY)

+ + +

Empty finalize() methods are useless, so they should + be deleted.

+ + +

FI: Explicit invocation of finalizer (FI_EXPLICIT_INVOCATION)

+ + +

This method contains an explicit invocation of the finalize() + method on an object.  Because finalizer methods are supposed to be + executed once, and only by the VM, this is a bad idea.

+

If a connected set of objects beings finalizable, then the VM will invoke the +finalize method on all the finalizable object, possibly at the same time in different threads. +Thus, it is a particularly bad idea, in the finalize method for a class X, invoke finalize +on objects referenced by X, because they may already be getting finalized in a separate thread. + + +

FI: Finalizer nulls fields (FI_FINALIZER_NULLS_FIELDS)

+ + +

This finalizer nulls out fields. This is usually an error, as it does not aid garbage collection, + and the object is going to be garbage collected anyway. + + +

FI: Finalizer only nulls fields (FI_FINALIZER_ONLY_NULLS_FIELDS)

+ + +

This finalizer does nothing except null out fields. This is completely pointless, and requires that +the object be garbage collected, finalized, and then garbage collected again. You should just remove the finalize +method. + + +

FI: Finalizer does not call superclass finalizer (FI_MISSING_SUPER_CALL)

+ + +

This finalize() method does not make a call to its + superclass's finalize() method.  So, any finalizer + actions defined for the superclass will not be performed.  + Add a call to super.finalize().

+ + +

FI: Finalizer nullifies superclass finalizer (FI_NULLIFY_SUPER)

+ + +

This empty finalize() method explicitly negates the + effect of any finalizer defined by its superclass.  Any finalizer + actions defined for the superclass will not be performed.  + Unless this is intended, delete this method.

+ + +

FI: Finalizer does nothing but call superclass finalizer (FI_USELESS)

+ + +

The only thing this finalize() method does is call + the superclass's finalize() method, making it + redundant.  Delete it.

+ + +

FS: Format string should use %n rather than \n (VA_FORMAT_STRING_USES_NEWLINE)

+ + +

+This format string include a newline character (\n). In format strings, it is generally + preferable better to use %n, which will produce the platform-specific line separator. +

+ + +

GC: Unchecked type in generic call (GC_UNCHECKED_TYPE_IN_GENERIC_CALL)

+ + +

This call to a generic collection method passes an argument + while compile type Object where a specific type from + the generic type parameters is expected. + Thus, neither the standard Java type system nor static analysis + can provide useful information on whether the + object being passed as a parameter is of an appropriate type. +

+ + +

HE: Class defines equals() but not hashCode() (HE_EQUALS_NO_HASHCODE)

+ + +

This class overrides equals(Object), but does not + override hashCode().  Therefore, the class may violate the + invariant that equal objects must have equal hashcodes.

+ + +

HE: Class defines equals() and uses Object.hashCode() (HE_EQUALS_USE_HASHCODE)

+ + +

This class overrides equals(Object), but does not + override hashCode(), and inherits the implementation of + hashCode() from java.lang.Object (which returns + the identity hash code, an arbitrary value assigned to the object + by the VM).  Therefore, the class is very likely to violate the + invariant that equal objects must have equal hashcodes.

+ +

If you don't think instances of this class will ever be inserted into a HashMap/HashTable, +the recommended hashCode implementation to use is:

+
public int hashCode() {
+  assert false : "hashCode not designed";
+  return 42; // any arbitrary constant will do
+  }
+ + +

HE: Class defines hashCode() but not equals() (HE_HASHCODE_NO_EQUALS)

+ + +

This class defines a hashCode() method but not an + equals() method.  Therefore, the class may + violate the invariant that equal objects must have equal hashcodes.

+ + +

HE: Class defines hashCode() and uses Object.equals() (HE_HASHCODE_USE_OBJECT_EQUALS)

+ + +

This class defines a hashCode() method but inherits its + equals() method from java.lang.Object + (which defines equality by comparing object references).  Although + this will probably satisfy the contract that equal objects must have + equal hashcodes, it is probably not what was intended by overriding + the hashCode() method.  (Overriding hashCode() + implies that the object's identity is based on criteria more complicated + than simple reference equality.)

+

If you don't think instances of this class will ever be inserted into a HashMap/HashTable, +the recommended hashCode implementation to use is:

+

public int hashCode() {
+  assert false : "hashCode not designed";
+  return 42; // any arbitrary constant will do
+  }

+ + +

HE: Class inherits equals() and uses Object.hashCode() (HE_INHERITS_EQUALS_USE_HASHCODE)

+ + +

This class inherits equals(Object) from an abstract + superclass, and hashCode() from +java.lang.Object (which returns + the identity hash code, an arbitrary value assigned to the object + by the VM).  Therefore, the class is very likely to violate the + invariant that equal objects must have equal hashcodes.

+ +

If you don't want to define a hashCode method, and/or don't + believe the object will ever be put into a HashMap/Hashtable, + define the hashCode() method + to throw UnsupportedOperationException.

+ + +

IC: Superclass uses subclass during initialization (IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION)

+ + +

During the initialization of a class, the class makes an active use of a subclass. +That subclass will not yet be initialized at the time of this use. +For example, in the following code, foo will be null.

+ +
+public class CircularClassInitialization {
+    static class InnerClassSingleton extends CircularClassInitialization {
+        static InnerClassSingleton singleton = new InnerClassSingleton();
+    }
+
+    static CircularClassInitialization foo = InnerClassSingleton.singleton;
+}
+
+ + + +

IMSE: Dubious catching of IllegalMonitorStateException (IMSE_DONT_CATCH_IMSE)

+ + +

IllegalMonitorStateException is generally only + thrown in case of a design flaw in your code (calling wait or + notify on an object you do not hold a lock on).

+ + +

ISC: Needless instantiation of class that only supplies static methods (ISC_INSTANTIATE_STATIC_CLASS)

+ + +

This class allocates an object that is based on a class that only supplies static methods. This object +does not need to be created, just access the static methods directly using the class name as a qualifier.

+ + +

It: Iterator next() method can't throw NoSuchElementException (IT_NO_SUCH_ELEMENT)

+ + +

This class implements the java.util.Iterator interface.  + However, its next() method is not capable of throwing + java.util.NoSuchElementException.  The next() + method should be changed so it throws NoSuchElementException + if is called when there are no more elements to return.

+ + +

J2EE: Store of non serializable object into HttpSession (J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION)

+ + +

+This code seems to be storing a non-serializable object into an HttpSession. +If this session is passivated or migrated, an error will result. +

+ + +

JCIP: Fields of immutable classes should be final (JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS)

+ + +

The class is annotated with net.jcip.annotations.Immutable, and the rules for that annotation require +that all fields are final. + .

+ + +

NP: Method with Boolean return type returns explicit null (NP_BOOLEAN_RETURN_NULL)

+ + +

+ A method that returns either Boolean.TRUE, Boolean.FALSE or null is an accident waiting to happen. + This method can be invoked as though it returned a value of type boolean, and + the compiler will insert automatic unboxing of the Boolean value. If a null value is returned, + this will result in a NullPointerException. +

+ + +

NP: Clone method may return null (NP_CLONE_COULD_RETURN_NULL)

+ + +

+ This clone method seems to return null in some circumstances, but clone is never + allowed to return a null value. If you are convinced this path is unreachable, throw an AssertionError + instead. +

+ + +

NP: equals() method does not check for null argument (NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT)

+ + +

+ This implementation of equals(Object) violates the contract defined + by java.lang.Object.equals() because it does not check for null + being passed as the argument. All equals() methods should return + false if passed a null value. +

+ + +

NP: toString method may return null (NP_TOSTRING_COULD_RETURN_NULL)

+ + +

+ This toString method seems to return null in some circumstances. A liberal reading of the + spec could be interpreted as allowing this, but it is probably a bad idea and could cause + other code to break. Return the empty string or some other appropriate string rather than null. +

+ + +

Nm: Class names should start with an upper case letter (NM_CLASS_NAMING_CONVENTION)

+ + +

Class names should be nouns, in mixed case with the first letter of each internal word capitalized. Try to keep your class names simple and descriptive. Use whole words-avoid acronyms and abbreviations (unless the abbreviation is much more widely used than the long form, such as URL or HTML). +

+ + +

Nm: Class is not derived from an Exception, even though it is named as such (NM_CLASS_NOT_EXCEPTION)

+ + +

This class is not derived from another exception, but ends with 'Exception'. This will +be confusing to users of this class.

+ + +

Nm: Confusing method names (NM_CONFUSING)

+ + +

The referenced methods have names that differ only by capitalization.

+ + +

Nm: Field names should start with a lower case letter (NM_FIELD_NAMING_CONVENTION)

+ + +

+Names of fields that are not final should be in mixed case with a lowercase first letter and the first letters of subsequent words capitalized. +

+ + +

Nm: Use of identifier that is a keyword in later versions of Java (NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER)

+ + +

The identifier is a word that is reserved as a keyword in later versions of Java, and your code will need to be changed +in order to compile it in later versions of Java.

+ + + +

Nm: Use of identifier that is a keyword in later versions of Java (NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER)

+ + +

This identifier is used as a keyword in later versions of Java. This code, and +any code that references this API, +will need to be changed in order to compile it in later versions of Java.

+ + + +

Nm: Method names should start with a lower case letter (NM_METHOD_NAMING_CONVENTION)

+ + +

+Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized. +

+ + +

Nm: Class names shouldn't shadow simple name of implemented interface (NM_SAME_SIMPLE_NAME_AS_INTERFACE)

+ + +

This class/interface has a simple name that is identical to that of an implemented/extended interface, except +that the interface is in a different package (e.g., alpha.Foo extends beta.Foo). +This can be exceptionally confusing, create lots of situations in which you have to look at import statements +to resolve references and creates many +opportunities to accidently define methods that do not override methods in their superclasses. +

+ + +

Nm: Class names shouldn't shadow simple name of superclass (NM_SAME_SIMPLE_NAME_AS_SUPERCLASS)

+ + +

This class has a simple name that is identical to that of its superclass, except +that its superclass is in a different package (e.g., alpha.Foo extends beta.Foo). +This can be exceptionally confusing, create lots of situations in which you have to look at import statements +to resolve references and creates many +opportunities to accidently define methods that do not override methods in their superclasses. +

+ + +

Nm: Very confusing method names (but perhaps intentional) (NM_VERY_CONFUSING_INTENTIONAL)

+ + +

The referenced methods have names that differ only by capitalization. +This is very confusing because if the capitalization were +identical then one of the methods would override the other. From the existence of other methods, it +seems that the existence of both of these methods is intentional, but is sure is confusing. +You should try hard to eliminate one of them, unless you are forced to have both due to frozen APIs. +

+ + +

Nm: Method doesn't override method in superclass due to wrong package for parameter (NM_WRONG_PACKAGE_INTENTIONAL)

+ + +

The method in the subclass doesn't override a similar method in a superclass because the type of a parameter doesn't exactly match +the type of the corresponding parameter in the superclass. For example, if you have:

+ +
+
+import alpha.Foo;
+public class A {
+  public int f(Foo x) { return 17; }
+}
+----
+import beta.Foo;
+public class B extends A {
+  public int f(Foo x) { return 42; }
+  public int f(alpha.Foo x) { return 27; }
+}
+
+
+ +

The f(Foo) method defined in class B doesn't +override the +f(Foo) method defined in class A, because the argument +types are Foo's from different packages. +

+ +

In this case, the subclass does define a method with a signature identical to the method in the superclass, +so this is presumably understood. However, such methods are exceptionally confusing. You should strongly consider +removing or deprecating the method with the similar but not identical signature. +

+ + +

ODR: Method may fail to close database resource (ODR_OPEN_DATABASE_RESOURCE)

+ + +

The method creates a database resource (such as a database connection +or row set), does not assign it to any +fields, pass it to other methods, or return it, and does not appear to close +the object on all paths out of the method.  Failure to +close database resources on all paths out of a method may +result in poor performance, and could cause the application to +have problems communicating with the database. +

+ + +

ODR: Method may fail to close database resource on exception (ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH)

+ + +

The method creates a database resource (such as a database connection +or row set), does not assign it to any +fields, pass it to other methods, or return it, and does not appear to close +the object on all exception paths out of the method.  Failure to +close database resources on all paths out of a method may +result in poor performance, and could cause the application to +have problems communicating with the database.

+ + +

OS: Method may fail to close stream (OS_OPEN_STREAM)

+ + +

The method creates an IO stream object, does not assign it to any +fields, pass it to other methods that might close it, +or return it, and does not appear to close +the stream on all paths out of the method.  This may result in +a file descriptor leak.  It is generally a good +idea to use a finally block to ensure that streams are +closed.

+ + +

OS: Method may fail to close stream on exception (OS_OPEN_STREAM_EXCEPTION_PATH)

+ + +

The method creates an IO stream object, does not assign it to any +fields, pass it to other methods, or return it, and does not appear to close +it on all possible exception paths out of the method.  +This may result in a file descriptor leak.  It is generally a good +idea to use a finally block to ensure that streams are +closed.

+ + +

PZ: Don't reuse entry objects in iterators (PZ_DONT_REUSE_ENTRY_OBJECTS_IN_ITERATORS)

+ + +

The entrySet() method is allowed to return a view of the + underlying Map in which an Iterator and Map.Entry. This clever + idea was used in several Map implementations, but introduces the possibility + of nasty coding mistakes. If a map m returns + such an iterator for an entrySet, then + c.addAll(m.entrySet()) will go badly wrong. All of + the Map implementations in OpenJDK 1.7 have been rewritten to avoid this, + you should to. +

+ + +

RC: Suspicious reference comparison to constant (RC_REF_COMPARISON_BAD_PRACTICE)

+ + +

This method compares a reference value to a constant using the == or != operator, +where the correct way to compare instances of this type is generally +with the equals() method. +It is possible to create distinct instances that are equal but do not compare as == since +they are different objects. +Examples of classes which should generally +not be compared by reference are java.lang.Integer, java.lang.Float, etc.

+ + +

RC: Suspicious reference comparison of Boolean values (RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN)

+ + +

This method compares two Boolean values using the == or != operator. +Normally, there are only two Boolean values (Boolean.TRUE and Boolean.FALSE), +but it is possible to create other Boolean objects using the new Boolean(b) +constructor. It is best to avoid such objects, but if they do exist, +then checking Boolean objects for equality using == or != will give results +than are different than you would get using .equals(...) +

+ + +

RR: Method ignores results of InputStream.read() (RR_NOT_CHECKED)

+ + +

This method ignores the return value of one of the variants of + java.io.InputStream.read() which can return multiple bytes.  + If the return value is not checked, the caller will not be able to correctly + handle the case where fewer bytes were read than the caller requested.  + This is a particularly insidious kind of bug, because in many programs, + reads from input streams usually do read the full amount of data requested, + causing the program to fail only sporadically.

+ + +

RR: Method ignores results of InputStream.skip() (SR_NOT_CHECKED)

+ + +

This method ignores the return value of + java.io.InputStream.skip() which can skip multiple bytes.  + If the return value is not checked, the caller will not be able to correctly + handle the case where fewer bytes were skipped than the caller requested.  + This is a particularly insidious kind of bug, because in many programs, + skips from input streams usually do skip the full amount of data requested, + causing the program to fail only sporadically. With Buffered streams, however, + skip() will only skip data in the buffer, and will routinely fail to skip the + requested number of bytes.

+ + +

RV: Negating the result of compareTo()/compare() (RV_NEGATING_RESULT_OF_COMPARETO)

+ + +

This code negatives the return value of a compareTo or compare method. +This is a questionable or bad programming practice, since if the return +value is Integer.MIN_VALUE, negating the return value won't +negate the sign of the result. You can achieve the same intended result +by reversing the order of the operands rather than by negating the results. +

+ + +

RV: Method ignores exceptional return value (RV_RETURN_VALUE_IGNORED_BAD_PRACTICE)

+ + +

This method returns a value that is not checked. The return value should be checked +since it can indicate an unusual or unexpected function execution. For +example, the File.delete() method returns false +if the file could not be successfully deleted (rather than +throwing an Exception). +If you don't check the result, you won't notice if the method invocation +signals unexpected behavior by returning an atypical return value. +

+ + +

SI: Static initializer creates instance before all static final fields assigned (SI_INSTANCE_BEFORE_FINALS_ASSIGNED)

+ + +

The class's static initializer creates an instance of the class +before all of the static final fields are assigned.

+ + +

SW: Certain swing methods needs to be invoked in Swing thread (SW_SWING_METHODS_INVOKED_IN_SWING_THREAD)

+ + +

(From JDC Tech Tip): The Swing methods +show(), setVisible(), and pack() will create the associated peer for the frame. +With the creation of the peer, the system creates the event dispatch thread. +This makes things problematic because the event dispatch thread could be notifying +listeners while pack and validate are still processing. This situation could result in +two threads going through the Swing component-based GUI -- it's a serious flaw that +could result in deadlocks or other related threading issues. A pack call causes +components to be realized. As they are being realized (that is, not necessarily +visible), they could trigger listener notification on the event dispatch thread.

+ + + +

Se: Non-transient non-serializable instance field in serializable class (SE_BAD_FIELD)

+ + +

This Serializable class defines a non-primitive instance field which is neither transient, +Serializable, or java.lang.Object, and does not appear to implement +the Externalizable interface or the +readObject() and writeObject() methods.  +Objects of this class will not be deserialized correctly if a non-Serializable +object is stored in this field.

+ + +

Se: Non-serializable class has a serializable inner class (SE_BAD_FIELD_INNER_CLASS)

+ + +

This Serializable class is an inner class of a non-serializable class. +Thus, attempts to serialize it will also attempt to associate instance of the outer +class with which it is associated, leading to a runtime error. +

+

If possible, making the inner class a static inner class should solve the +problem. Making the outer class serializable might also work, but that would +mean serializing an instance of the inner class would always also serialize the instance +of the outer class, which it often not what you really want. + + +

Se: Non-serializable value stored into instance field of a serializable class (SE_BAD_FIELD_STORE)

+ + +

A non-serializable value is stored into a non-transient field +of a serializable class.

+ + +

Se: Comparator doesn't implement Serializable (SE_COMPARATOR_SHOULD_BE_SERIALIZABLE)

+ + +

This class implements the Comparator interface. You +should consider whether or not it should also implement the Serializable +interface. If a comparator is used to construct an ordered collection +such as a TreeMap, then the TreeMap +will be serializable only if the comparator is also serializable. +As most comparators have little or no state, making them serializable +is generally easy and good defensive programming. +

+ + +

Se: Serializable inner class (SE_INNER_CLASS)

+ + +

This Serializable class is an inner class. Any attempt to serialize +it will also serialize the associated outer instance. The outer instance is serializable, +so this won't fail, but it might serialize a lot more data than intended. +If possible, making the inner class a static inner class (also known as a nested class) should solve the +problem. + + +

Se: serialVersionUID isn't final (SE_NONFINAL_SERIALVERSIONID)

+ + +

This class defines a serialVersionUID field that is not final.  + The field should be made final + if it is intended to specify + the version UID for purposes of serialization.

+ + +

Se: serialVersionUID isn't long (SE_NONLONG_SERIALVERSIONID)

+ + +

This class defines a serialVersionUID field that is not long.  + The field should be made long + if it is intended to specify + the version UID for purposes of serialization.

+ + +

Se: serialVersionUID isn't static (SE_NONSTATIC_SERIALVERSIONID)

+ + +

This class defines a serialVersionUID field that is not static.  + The field should be made static + if it is intended to specify + the version UID for purposes of serialization.

+ + +

Se: Class is Serializable but its superclass doesn't define a void constructor (SE_NO_SUITABLE_CONSTRUCTOR)

+ + +

This class implements the Serializable interface + and its superclass does not. When such an object is deserialized, + the fields of the superclass need to be initialized by + invoking the void constructor of the superclass. + Since the superclass does not have one, + serialization and deserialization will fail at runtime.

+ + +

Se: Class is Externalizable but doesn't define a void constructor (SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION)

+ + +

This class implements the Externalizable interface, but does + not define a void constructor. When Externalizable objects are deserialized, + they first need to be constructed by invoking the void + constructor. Since this class does not have one, + serialization and deserialization will fail at runtime.

+ + +

Se: The readResolve method must be declared with a return type of Object. (SE_READ_RESOLVE_MUST_RETURN_OBJECT)

+ + +

In order for the readResolve method to be recognized by the serialization +mechanism, it must be declared to have a return type of Object. +

+ + +

Se: Transient field that isn't set by deserialization. (SE_TRANSIENT_FIELD_NOT_RESTORED)

+ + +

This class contains a field that is updated at multiple places in the class, thus it seems to be part of the state of the class. However, since the field is marked as transient and not set in readObject or readResolve, it will contain the default value in any +deserialized instance of the class. +

+ + +

SnVI: Class is Serializable, but doesn't define serialVersionUID (SE_NO_SERIALVERSIONID)

+ + +

This class implements the Serializable interface, but does + not define a serialVersionUID field.  + A change as simple as adding a reference to a .class object + will add synthetic fields to the class, + which will unfortunately change the implicit + serialVersionUID (e.g., adding a reference to String.class + will generate a static field class$java$lang$String). + Also, different source code to bytecode compilers may use different + naming conventions for synthetic variables generated for + references to class objects or inner classes. + To ensure interoperability of Serializable across versions, + consider adding an explicit serialVersionUID.

+ + +

UI: Usage of GetResource may be unsafe if class is extended (UI_INHERITANCE_UNSAFE_GETRESOURCE)

+ + +

Calling this.getClass().getResource(...) could give +results other than expected if this class is extended by a class in +another package.

+ + +

BC: Impossible cast (BC_IMPOSSIBLE_CAST)

+ + +

+This cast will always throw a ClassCastException. +FindBugs tracks type information from instanceof checks, +and also uses more precise information about the types +of values returned from methods and loaded from fields. +Thus, it may have more precise information that just +the declared type of a variable, and can use this to determine +that a cast will always throw an exception at runtime. + +

+ + +

BC: Impossible downcast (BC_IMPOSSIBLE_DOWNCAST)

+ + +

+This cast will always throw a ClassCastException. +The analysis believes it knows +the precise type of the value being cast, and the attempt to +downcast it to a subtype will always fail by throwing a ClassCastException. +

+ + +

BC: Impossible downcast of toArray() result (BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY)

+ + +

+This code is casting the result of calling toArray() on a collection +to a type more specific than Object[], as in: +

+String[] getAsArray(Collection<String> c) {
+  return (String[]) c.toArray();
+  }
+
+

This will usually fail by throwing a ClassCastException. The toArray() +of almost all collections return an Object[]. They can't really do anything else, +since the Collection object has no reference to the declared generic type of the collection. +

The correct way to do get an array of a specific type from a collection is to use + c.toArray(new String[]); + or c.toArray(new String[c.size()]); (the latter is slightly more efficient). +

There is one common/known exception exception to this. The toArray() +method of lists returned by Arrays.asList(...) will return a covariantly +typed array. For example, Arrays.asArray(new String[] { "a" }).toArray() +will return a String []. FindBugs attempts to detect and suppress +such cases, but may miss some. +

+ + +

BC: instanceof will always return false (BC_IMPOSSIBLE_INSTANCEOF)

+ + +

+This instanceof test will always return false. Although this is safe, make sure it isn't +an indication of some misunderstanding or some other logic error. +

+ + +

BIT: Bitwise add of signed byte value (BIT_ADD_OF_SIGNED_BYTE)

+ + +

Adds a byte value and a value which is known to have the 8 lower bits clear. +Values loaded from a byte array are sign extended to 32 bits +before any any bitwise operations are performed on the value. +Thus, if b[0] contains the value 0xff, and +x is initially 0, then the code +((x << 8) + b[0]) will sign extend 0xff +to get 0xffffffff, and thus give the value +0xffffffff as the result. +

+ +

In particular, the following code for packing a byte array into an int is badly wrong:

+
+int result = 0;
+for(int i = 0; i < 4; i++)
+  result = ((result << 8) + b[i]);
+
+ +

The following idiom will work instead:

+
+int result = 0;
+for(int i = 0; i < 4; i++)
+  result = ((result << 8) + (b[i] & 0xff));
+
+ + + +

BIT: Incompatible bit masks (BIT_AND)

+ + +

This method compares an expression of the form (e & C) to D, +which will always compare unequal +due to the specific values of constants C and D. +This may indicate a logic error or typo.

+ + +

BIT: Check to see if ((...) & 0) == 0 (BIT_AND_ZZ)

+ + +

This method compares an expression of the form (e & 0) to 0, +which will always compare equal. +This may indicate a logic error or typo.

+ + +

BIT: Incompatible bit masks (BIT_IOR)

+ + +

This method compares an expression of the form (e | C) to D. +which will always compare unequal +due to the specific values of constants C and D. +This may indicate a logic error or typo.

+ +

Typically, this bug occurs because the code wants to perform +a membership test in a bit set, but uses the bitwise OR +operator ("|") instead of bitwise AND ("&").

+ + +

BIT: Bitwise OR of signed byte value (BIT_IOR_OF_SIGNED_BYTE)

+ + +

Loads a byte value (e.g., a value loaded from a byte array or returned by a method +with return type byte) and performs a bitwise OR with +that value. Byte values are sign extended to 32 bits +before any any bitwise operations are performed on the value. +Thus, if b[0] contains the value 0xff, and +x is initially 0, then the code +((x << 8) | b[0]) will sign extend 0xff +to get 0xffffffff, and thus give the value +0xffffffff as the result. +

+ +

In particular, the following code for packing a byte array into an int is badly wrong:

+
+int result = 0;
+for(int i = 0; i < 4; i++)
+  result = ((result << 8) | b[i]);
+
+ +

The following idiom will work instead:

+
+int result = 0;
+for(int i = 0; i < 4; i++)
+  result = ((result << 8) | (b[i] & 0xff));
+
+ + + +

BIT: Check for sign of bitwise operation (BIT_SIGNED_CHECK_HIGH_BIT)

+ + +

This method compares an expression such as +

((event.detail & SWT.SELECTED) > 0)
. +Using bit arithmetic and then comparing with the greater than operator can +lead to unexpected results (of course depending on the value of +SWT.SELECTED). If SWT.SELECTED is a negative number, this is a candidate +for a bug. Even when SWT.SELECTED is not negative, it seems good practice +to use '!= 0' instead of '> 0'. +

+

+Boris Bokowski +

+ + +

BOA: Class overrides a method implemented in super class Adapter wrongly (BOA_BADLY_OVERRIDDEN_ADAPTER)

+ + +

This method overrides a method found in a parent class, where that class is an Adapter that implements +a listener defined in the java.awt.event or javax.swing.event package. As a result, this method will not +get called when the event occurs.

+ + +

BSHIFT: 32 bit int shifted by an amount not in the range 0..31 (ICAST_BAD_SHIFT_AMOUNT)

+ + +

+The code performs shift of a 32 bit int by a constant amount outside +the range 0..31. +The effect of this is to use the lower 5 bits of the integer +value to decide how much to shift by (e.g., shifting by 40 bits is the same as shifting by 8 bits, +and shifting by 32 bits is the same as shifting by zero bits). This probably isn't what was expected, +and it is at least confusing. +

+ + +

Bx: Primitive value is unboxed and coerced for ternary operator (BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR)

+ + +

A wrapped primitive value is unboxed and converted to another primitive type as part of the +evaluation of a conditional ternary operator (the b ? e1 : e2 operator). The +semantics of Java mandate that if e1 and e2 are wrapped +numeric values, the values are unboxed and converted/coerced to their common type (e.g, +if e1 is of type Integer +and e2 is of type Float, then e1 is unboxed, +converted to a floating point value, and boxed. See JLS Section 15.25. +

+ + +

Co: compareTo()/compare() returns Integer.MIN_VALUE (CO_COMPARETO_RESULTS_MIN_VALUE)

+ + +

In some situation, this compareTo or compare method returns +the constant Integer.MIN_VALUE, which is an exceptionally bad practice. + The only thing that matters about the return value of compareTo is the sign of the result. + But people will sometimes negate the return value of compareTo, expecting that this will negate + the sign of the result. And it will, except in the case where the value returned is Integer.MIN_VALUE. + So just return -1 rather than Integer.MIN_VALUE. + + +

DLS: Dead store of class literal (DLS_DEAD_STORE_OF_CLASS_LITERAL)

+ + +

+This instruction assigns a class literal to a variable and then never uses it. +The behavior of this differs in Java 1.4 and in Java 5. +In Java 1.4 and earlier, a reference to Foo.class would force the static initializer +for Foo to be executed, if it has not been executed already. +In Java 5 and later, it does not. +

+

See Sun's article on Java SE compatibility +for more details and examples, and suggestions on how to force class initialization in Java 5. +

+ + +

DLS: Overwritten increment (DLS_OVERWRITTEN_INCREMENT)

+ + +

+The code performs an increment operation (e.g., i++) and then +immediately overwrites it. For example, i = i++ immediately +overwrites the incremented value with the original value. +

+ + +

DMI: Reversed method arguments (DMI_ARGUMENTS_WRONG_ORDER)

+ + +

The arguments to this method call seem to be in the wrong order. +For example, a call Preconditions.checkNotNull("message", message) +has reserved arguments: the value to be checked is the first argument. +

+ + +

DMI: Bad constant value for month (DMI_BAD_MONTH)

+ + +

+This code passes a constant month +value outside the expected range of 0..11 to a method. +

+ + +

DMI: BigDecimal constructed from double that isn't represented precisely (DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE)

+ + +

+This code creates a BigDecimal from a double value that doesn't translate well to a +decimal number. +For example, one might assume that writing new BigDecimal(0.1) in Java creates a BigDecimal which is exactly equal to 0.1 (an unscaled value of 1, with a scale of 1), but it is actually equal to 0.1000000000000000055511151231257827021181583404541015625. +You probably want to use the BigDecimal.valueOf(double d) method, which uses the String representation +of the double to create the BigDecimal (e.g., BigDecimal.valueOf(0.1) gives 0.1). +

+ + + +

DMI: hasNext method invokes next (DMI_CALLING_NEXT_FROM_HASNEXT)

+ + +

+The hasNext() method invokes the next() method. This is almost certainly wrong, +since the hasNext() method is not supposed to change the state of the iterator, +and the next method is supposed to change the state of the iterator. +

+ + +

DMI: Collections should not contain themselves (DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES)

+ + +

This call to a generic collection's method would only make sense if a collection contained +itself (e.g., if s.contains(s) were true). This is unlikely to be true and would cause +problems if it were true (such as the computation of the hash code resulting in infinite recursion). +It is likely that the wrong value is being passed as a parameter. +

+ + +

DMI: D'oh! A nonsensical method invocation (DMI_DOH)

+ + +

+This partical method invocation doesn't make sense, for reasons that should be apparent from inspection. +

+ + + +

DMI: Invocation of hashCode on an array (DMI_INVOKING_HASHCODE_ON_ARRAY)

+ + +

+The code invokes hashCode on an array. Calling hashCode on +an array returns the same value as System.identityHashCode, and ingores +the contents and length of the array. If you need a hashCode that +depends on the contents of an array a, +use java.util.Arrays.hashCode(a). + +

+ + +

DMI: Double.longBitsToDouble invoked on an int (DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT)

+ + +

The Double.longBitsToDouble method is invoked, but a 32 bit int value is passed + as an argument. This almostly certainly is not intended and is unlikely + to give the intended result. +

+ + +

DMI: Vacuous call to collections (DMI_VACUOUS_SELF_COLLECTION_CALL)

+ + +

This call doesn't make sense. For any collection c, calling c.containsAll(c) should +always be true, and c.retainAll(c) should have no effect. +

+ + +

Dm: Can't use reflection to check for presence of annotation without runtime retention (DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION)

+ + +

Unless an annotation has itself been annotated with @Retention(RetentionPolicy.RUNTIME), the annotation can't be observed using reflection +(e.g., by using the isAnnotationPresent method). + .

+ + +

Dm: Futile attempt to change max pool size of ScheduledThreadPoolExecutor (DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR)

+ + +

(Javadoc) +While ScheduledThreadPoolExecutor inherits from ThreadPoolExecutor, a few of the inherited tuning methods are not useful for it. In particular, because it acts as a fixed-sized pool using corePoolSize threads and an unbounded queue, adjustments to maximumPoolSize have no useful effect. +

+ + + +

Dm: Creation of ScheduledThreadPoolExecutor with zero core threads (DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS)

+ + +

(Javadoc) +A ScheduledThreadPoolExecutor with zero core threads will never execute anything; changes to the max pool size are ignored. +

+ + + +

Dm: Useless/vacuous call to EasyMock method (DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD)

+ + +

This call doesn't pass any objects to the EasyMock method, so the call doesn't do anything. +

+ + + +

EC: equals() used to compare array and nonarray (EC_ARRAY_AND_NONARRAY)

+ + +

+This method invokes the .equals(Object o) to compare an array and a reference that doesn't seem +to be an array. If things being compared are of different types, they are guaranteed to be unequal +and the comparison is almost certainly an error. Even if they are both arrays, the equals method +on arrays only determines of the two arrays are the same object. +To compare the +contents of the arrays, use java.util.Arrays.equals(Object[], Object[]). +

+ + +

EC: Invocation of equals() on an array, which is equivalent to == (EC_BAD_ARRAY_COMPARE)

+ + +

+This method invokes the .equals(Object o) method on an array. Since arrays do not override the equals +method of Object, calling equals on an array is the same as comparing their addresses. To compare the +contents of the arrays, use java.util.Arrays.equals(Object[], Object[]). +To compare the addresses of the arrays, it would be +less confusing to explicitly check pointer equality using ==. +

+ + +

EC: equals(...) used to compare incompatible arrays (EC_INCOMPATIBLE_ARRAY_COMPARE)

+ + +

+This method invokes the .equals(Object o) to compare two arrays, but the arrays of +of incompatible types (e.g., String[] and StringBuffer[], or String[] and int[]). +They will never be equal. In addition, when equals(...) is used to compare arrays it +only checks to see if they are the same array, and ignores the contents of the arrays. +

+ + +

EC: Call to equals(null) (EC_NULL_ARG)

+ + +

This method calls equals(Object), passing a null value as +the argument. According to the contract of the equals() method, +this call should always return false.

+ + +

EC: Call to equals() comparing unrelated class and interface (EC_UNRELATED_CLASS_AND_INTERFACE)

+ + +

+This method calls equals(Object) on two references, one of which is a class +and the other an interface, where neither the class nor any of its +non-abstract subclasses implement the interface. +Therefore, the objects being compared +are unlikely to be members of the same class at runtime +(unless some application classes were not analyzed, or dynamic class +loading can occur at runtime). +According to the contract of equals(), +objects of different +classes should always compare as unequal; therefore, according to the +contract defined by java.lang.Object.equals(Object), +the result of this comparison will always be false at runtime. +

+ + +

EC: Call to equals() comparing different interface types (EC_UNRELATED_INTERFACES)

+ + +

This method calls equals(Object) on two references of unrelated +interface types, where neither is a subtype of the other, +and there are no known non-abstract classes which implement both interfaces. +Therefore, the objects being compared +are unlikely to be members of the same class at runtime +(unless some application classes were not analyzed, or dynamic class +loading can occur at runtime). +According to the contract of equals(), +objects of different +classes should always compare as unequal; therefore, according to the +contract defined by java.lang.Object.equals(Object), +the result of this comparison will always be false at runtime. +

+ + +

EC: Call to equals() comparing different types (EC_UNRELATED_TYPES)

+ + +

This method calls equals(Object) on two references of different +class types with no common subclasses. +Therefore, the objects being compared +are unlikely to be members of the same class at runtime +(unless some application classes were not analyzed, or dynamic class +loading can occur at runtime). +According to the contract of equals(), +objects of different +classes should always compare as unequal; therefore, according to the +contract defined by java.lang.Object.equals(Object), +the result of this comparison will always be false at runtime. +

+ + +

EC: Using pointer equality to compare different types (EC_UNRELATED_TYPES_USING_POINTER_EQUALITY)

+ + +

This method uses using pointer equality to compare two references that seem to be of +different types. The result of this comparison will always be false at runtime. +

+ + +

Eq: equals method always returns false (EQ_ALWAYS_FALSE)

+ + +

This class defines an equals method that always returns false. This means that an object is not equal to itself, and it is impossible to create useful Maps or Sets of this class. More fundamentally, it means +that equals is not reflexive, one of the requirements of the equals method.

+

The likely intended semantics are object identity: that an object is equal to itself. This is the behavior inherited from class Object. If you need to override an equals inherited from a different +superclass, you can use use: +

+public boolean equals(Object o) { return this == o; }
+
+

+ + +

Eq: equals method always returns true (EQ_ALWAYS_TRUE)

+ + +

This class defines an equals method that always returns true. This is imaginative, but not very smart. +Plus, it means that the equals method is not symmetric. +

+ + +

Eq: equals method compares class names rather than class objects (EQ_COMPARING_CLASS_NAMES)

+ + +

This method checks to see if two objects are the same class by checking to see if the names +of their classes are equal. You can have different classes with the same name if they are loaded by +different class loaders. Just check to see if the class objects are the same. +

+ + +

Eq: Covariant equals() method defined for enum (EQ_DONT_DEFINE_EQUALS_FOR_ENUM)

+ + +

This class defines an enumeration, and equality on enumerations are defined +using object identity. Defining a covariant equals method for an enumeration +value is exceptionally bad practice, since it would likely result +in having two different enumeration values that compare as equals using +the covariant enum method, and as not equal when compared normally. +Don't do it. +

+ + +

Eq: equals() method defined that doesn't override equals(Object) (EQ_OTHER_NO_OBJECT)

+ + +

This class defines an equals() + method, that doesn't override the normal equals(Object) method + defined in the base java.lang.Object class.  Instead, it + inherits an equals(Object) method from a superclass. + The class should probably define a boolean equals(Object) method. +

+ + +

Eq: equals() method defined that doesn't override Object.equals(Object) (EQ_OTHER_USE_OBJECT)

+ + +

This class defines an equals() + method, that doesn't override the normal equals(Object) method + defined in the base java.lang.Object class.  + The class should probably define a boolean equals(Object) method. +

+ + +

Eq: equals method overrides equals in superclass and may not be symmetric (EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC)

+ + +

This class defines an equals method that overrides an equals method in a superclass. Both equals methods +methods use instanceof in the determination of whether two objects are equal. This is fraught with peril, +since it is important that the equals method is symmetrical (in other words, a.equals(b) == b.equals(a)). +If B is a subtype of A, and A's equals method checks that the argument is an instanceof A, and B's equals method +checks that the argument is an instanceof B, it is quite likely that the equivalence relation defined by these +methods is not symmetric. +

+ + +

Eq: Covariant equals() method defined, Object.equals(Object) inherited (EQ_SELF_USE_OBJECT)

+ + +

This class defines a covariant version of the equals() + method, but inherits the normal equals(Object) method + defined in the base java.lang.Object class.  + The class should probably define a boolean equals(Object) method. +

+ + +

FE: Doomed test for equality to NaN (FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER)

+ + +

+ This code checks to see if a floating point value is equal to the special + Not A Number value (e.g., if (x == Double.NaN)). However, + because of the special semantics of NaN, no value + is equal to Nan, including NaN. Thus, + x == Double.NaN always evaluates to false. + + To check to see if a value contained in x + is the special Not A Number value, use + Double.isNaN(x) (or Float.isNaN(x) if + x is floating point precision). +

+ + +

FS: Format string placeholder incompatible with passed argument (VA_FORMAT_STRING_BAD_ARGUMENT)

+ + +

+The format string placeholder is incompatible with the corresponding +argument. For example, + + System.out.println("%d\n", "hello"); + +

The %d placeholder requires a numeric argument, but a string value is +passed instead. +A runtime exception will occur when +this statement is executed. +

+ + +

FS: The type of a supplied argument doesn't match format specifier (VA_FORMAT_STRING_BAD_CONVERSION)

+ + +

+One of the arguments is uncompatible with the corresponding format string specifier. +As a result, this will generate a runtime exception when executed. +For example, String.format("%d", "1") will generate an exception, since +the String "1" is incompatible with the format specifier %d. +

+ + +

FS: MessageFormat supplied where printf style format expected (VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED)

+ + +

+A method is called that expects a Java printf format string and a list of arguments. +However, the format string doesn't contain any format specifiers (e.g., %s) but +does contain message format elements (e.g., {0}). It is likely +that the code is supplying a MessageFormat string when a printf-style format string +is required. At runtime, all of the arguments will be ignored +and the format string will be returned exactly as provided without any formatting. +

+

+ + +

FS: More arguments are passed than are actually used in the format string (VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED)

+ + +

+A format-string method with a variable number of arguments is called, +but more arguments are passed than are actually used by the format string. +This won't cause a runtime exception, but the code may be silently omitting +information that was intended to be included in the formatted string. +

+ + +

FS: Illegal format string (VA_FORMAT_STRING_ILLEGAL)

+ + +

+The format string is syntactically invalid, +and a runtime exception will occur when +this statement is executed. +

+ + +

FS: Format string references missing argument (VA_FORMAT_STRING_MISSING_ARGUMENT)

+ + +

+Not enough arguments are passed to satisfy a placeholder in the format string. +A runtime exception will occur when +this statement is executed. +

+ + +

FS: No previous argument for format string (VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT)

+ + +

+The format string specifies a relative index to request that the argument for the previous format specifier +be reused. However, there is no previous argument. +For example, +

+

formatter.format("%<s %s", "a", "b") +

+

would throw a MissingFormatArgumentException when executed. +

+ + +

GC: No relationship between generic parameter and method argument (GC_UNRELATED_TYPES)

+ + +

This call to a generic collection method contains an argument + with an incompatible class from that of the collection's parameter + (i.e., the type of the argument is neither a supertype nor a subtype + of the corresponding generic type argument). + Therefore, it is unlikely that the collection contains any objects + that are equal to the method argument used here. + Most likely, the wrong value is being passed to the method.

+

In general, instances of two unrelated classes are not equal. + For example, if the Foo and Bar classes + are not related by subtyping, then an instance of Foo + should not be equal to an instance of Bar. + Among other issues, doing so will likely result in an equals method + that is not symmetrical. For example, if you define the Foo class + so that a Foo can be equal to a String, + your equals method isn't symmetrical since a String can only be equal + to a String. +

+

In rare cases, people do define nonsymmetrical equals methods and still manage to make + their code work. Although none of the APIs document or guarantee it, it is typically + the case that if you check if a Collection<String> contains + a Foo, the equals method of argument (e.g., the equals method of the + Foo class) used to perform the equality checks. +

+ + +

HE: Signature declares use of unhashable class in hashed construct (HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS)

+ + +

A method, field or class declares a generic signature where a non-hashable class +is used in context where a hashable class is required. +A class that declares an equals method but inherits a hashCode() method +from Object is unhashable, since it doesn't fulfill the requirement that +equal objects have equal hashCodes. +

+ + +

HE: Use of class without a hashCode() method in a hashed data structure (HE_USE_OF_UNHASHABLE_CLASS)

+ + +

A class defines an equals(Object) method but not a hashCode() method, +and thus doesn't fulfill the requirement that equal objects have equal hashCodes. +An instance of this class is used in a hash data structure, making the need to +fix this problem of highest importance. + + +

ICAST: int value converted to long and used as absolute time (ICAST_INT_2_LONG_AS_INSTANT)

+ + +

+This code converts a 32-bit int value to a 64-bit long value, and then +passes that value for a method parameter that requires an absolute time value. +An absolute time value is the number +of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT. +For example, the following method, intended to convert seconds since the epoc into a Date, is badly +broken:

+
+Date getDate(int seconds) { return new Date(seconds * 1000); }
+
+

The multiplication is done using 32-bit arithmetic, and then converted to a 64-bit value. +When a 32-bit value is converted to 64-bits and used to express an absolute time +value, only dates in December 1969 and January 1970 can be represented.

+ +

Correct implementations for the above method are:

+ +
+// Fails for dates after 2037
+Date getDate(int seconds) { return new Date(seconds * 1000L); }
+
+// better, works for all dates
+Date getDate(long seconds) { return new Date(seconds * 1000); }
+
+ + +

ICAST: integral value cast to double and then passed to Math.ceil (ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL)

+ + +

+This code converts an integral value (e.g., int or long) +to a double precision +floating point number and then +passing the result to the Math.ceil() function, which rounds a double to +the next higher integer value. This operation should always be a no-op, +since the converting an integer to a double should give a number with no fractional part. +It is likely that the operation that generated the value to be passed +to Math.ceil was intended to be performed using double precision +floating point arithmetic. +

+ + + +

ICAST: int value cast to float and then passed to Math.round (ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND)

+ + +

+This code converts an int value to a float precision +floating point number and then +passing the result to the Math.round() function, which returns the int/long closest +to the argument. This operation should always be a no-op, +since the converting an integer to a float should give a number with no fractional part. +It is likely that the operation that generated the value to be passed +to Math.round was intended to be performed using +floating point arithmetic. +

+ + + +

IJU: JUnit assertion in run method will not be noticed by JUnit (IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD)

+ + +

A JUnit assertion is performed in a run method. Failed JUnit assertions +just result in exceptions being thrown. +Thus, if this exception occurs in a thread other than the thread that invokes +the test method, the exception will terminate the thread but not result +in the test failing. +

+ + +

IJU: TestCase declares a bad suite method (IJU_BAD_SUITE_METHOD)

+ + +

Class is a JUnit TestCase and defines a suite() method. +However, the suite method needs to be declared as either +

public static junit.framework.Test suite()
+or +
public static junit.framework.TestSuite suite()
+

+ + +

IJU: TestCase has no tests (IJU_NO_TESTS)

+ + +

Class is a JUnit TestCase but has not implemented any test methods

+ + +

IJU: TestCase defines setUp that doesn't call super.setUp() (IJU_SETUP_NO_SUPER)

+ + +

Class is a JUnit TestCase and implements the setUp method. The setUp method should call +super.setUp(), but doesn't.

+ + +

IJU: TestCase implements a non-static suite method (IJU_SUITE_NOT_STATIC)

+ + +

Class is a JUnit TestCase and implements the suite() method. + The suite method should be declared as being static, but isn't.

+ + +

IJU: TestCase defines tearDown that doesn't call super.tearDown() (IJU_TEARDOWN_NO_SUPER)

+ + +

Class is a JUnit TestCase and implements the tearDown method. The tearDown method should call +super.tearDown(), but doesn't.

+ + +

IL: A collection is added to itself (IL_CONTAINER_ADDED_TO_ITSELF)

+ + +

A collection is added to itself. As a result, computing the hashCode of this +set will throw a StackOverflowException. +

+ + +

IL: An apparent infinite loop (IL_INFINITE_LOOP)

+ + +

This loop doesn't seem to have a way to terminate (other than by perhaps +throwing an exception).

+ + +

IL: An apparent infinite recursive loop (IL_INFINITE_RECURSIVE_LOOP)

+ + +

This method unconditionally invokes itself. This would seem to indicate +an infinite recursive loop that will result in a stack overflow.

+ + +

IM: Integer multiply of result of integer remainder (IM_MULTIPLYING_RESULT_OF_IREM)

+ + +

+The code multiplies the result of an integer remaining by an integer constant. +Be sure you don't have your operator precedence confused. For example +i % 60 * 1000 is (i % 60) * 1000, not i % (60 * 1000). +

+ + +

INT: Bad comparison of int value with long constant (INT_BAD_COMPARISON_WITH_INT_VALUE)

+ + +

This code compares an int value with a long constant that is outside +the range of values that can be represented as an int value. +This comparison is vacuous and possibily to be incorrect. +

+ + +

INT: Bad comparison of nonnegative value with negative constant (INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE)

+ + +

This code compares a value that is guaranteed to be non-negative with a negative constant. +

+ + +

INT: Bad comparison of signed byte (INT_BAD_COMPARISON_WITH_SIGNED_BYTE)

+ + +

Signed bytes can only have a value in the range -128 to 127. Comparing +a signed byte with a value outside that range is vacuous and likely to be incorrect. +To convert a signed byte b to an unsigned value in the range 0..255, +use 0xff & b +

+ + +

IO: Doomed attempt to append to an object output stream (IO_APPENDING_TO_OBJECT_OUTPUT_STREAM)

+ + +

+ This code opens a file in append mode and then wraps the result in an object output stream. + This won't allow you to append to an existing object output stream stored in a file. If you want to be + able to append to an object output stream, you need to keep the object output stream open. +

+

The only situation in which opening a file in append mode and the writing an object output stream + could work is if on reading the file you plan to open it in random access mode and seek to the byte offset + where the append started. +

+ +

+ TODO: example. +

+ + +

IP: A parameter is dead upon entry to a method but overwritten (IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN)

+ + +

+The initial value of this parameter is ignored, and the parameter +is overwritten here. This often indicates a mistaken belief that +the write to the parameter will be conveyed back to +the caller. +

+ + +

MF: Class defines field that masks a superclass field (MF_CLASS_MASKS_FIELD)

+ + +

This class defines a field with the same name as a visible +instance field in a superclass. This is confusing, and +may indicate an error if methods update or access one of +the fields when they wanted the other.

+ + +

MF: Method defines a variable that obscures a field (MF_METHOD_MASKS_FIELD)

+ + +

This method defines a local variable with the same name as a field +in this class or a superclass. This may cause the method to +read an uninitialized value from the field, leave the field uninitialized, +or both.

+ + +

NP: Null pointer dereference (NP_ALWAYS_NULL)

+ + +

A null pointer is dereferenced here.  This will lead to a +NullPointerException when the code is executed.

+ + +

NP: Null pointer dereference in method on exception path (NP_ALWAYS_NULL_EXCEPTION)

+ + +

A pointer which is null on an exception path is dereferenced here.  +This will lead to a NullPointerException when the code is executed.  +Note that because FindBugs currently does not prune infeasible exception paths, +this may be a false warning.

+ +

Also note that FindBugs considers the default case of a switch statement to +be an exception path, since the default case is often infeasible.

+ + +

NP: Method does not check for null argument (NP_ARGUMENT_MIGHT_BE_NULL)

+ + +

+ A parameter to this method has been identified as a value that should + always be checked to see whether or not it is null, but it is being dereferenced + without a preceding null check. +

+ + +

NP: close() invoked on a value that is always null (NP_CLOSING_NULL)

+ + +

close() is being invoked on a value that is always null. If this statement is executed, +a null pointer exception will occur. But the big risk here you never close +something that should be closed. + + +

NP: Null value is guaranteed to be dereferenced (NP_GUARANTEED_DEREF)

+ + +

+ There is a statement or branch that if executed guarantees that + a value is null at this point, and that + value that is guaranteed to be dereferenced + (except on forward paths involving runtime exceptions). +

+

Note that a check such as + if (x == null) throw new NullPointerException();x. + + +

NP: Value is null and guaranteed to be dereferenced on exception path (NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH)

+ + +

+ There is a statement or branch on an exception path + that if executed guarantees that + a value is null at this point, and that + value that is guaranteed to be dereferenced + (except on forward paths involving runtime exceptions). +

+ + +

NP: Method call passes null to a nonnull parameter (NP_NONNULL_PARAM_VIOLATION)

+ + +

+ This method passes a null value as the parameter of a method which + must be nonnull. Either this parameter has been explicitly marked + as @Nonnull, or analysis has determined that this parameter is + always dereferenced. +

+ + +

NP: Method may return null, but is declared @NonNull (NP_NONNULL_RETURN_VIOLATION)

+ + +

+ This method may return a null value, but the method (or a superclass method + which it overrides) is declared to return @NonNull. +

+ + +

NP: A known null value is checked to see if it is an instance of a type (NP_NULL_INSTANCEOF)

+ + +

+This instanceof test will always return false, since the value being checked is guaranteed to be null. +Although this is safe, make sure it isn't +an indication of some misunderstanding or some other logic error. +

+ + +

NP: Possible null pointer dereference (NP_NULL_ON_SOME_PATH)

+ + +

There is a branch of statement that, if executed, guarantees that +a null value will be dereferenced, which +would generate a NullPointerException when the code is executed. +Of course, the problem might be that the branch or statement is infeasible and that +the null pointer exception can't ever be executed; deciding that is beyond the ability of FindBugs. +

+ + +

NP: Possible null pointer dereference in method on exception path (NP_NULL_ON_SOME_PATH_EXCEPTION)

+ + +

A reference value which is null on some exception control path is +dereferenced here.  This may lead to a NullPointerException +when the code is executed.  +Note that because FindBugs currently does not prune infeasible exception paths, +this may be a false warning.

+ +

Also note that FindBugs considers the default case of a switch statement to +be an exception path, since the default case is often infeasible.

+ + +

NP: Method call passes null for nonnull parameter (NP_NULL_PARAM_DEREF)

+ + +

+ This method call passes a null value for a nonnull method parameter. + Either the parameter is annotated as a parameter that should + always be nonnull, or analysis has shown that it will always be + dereferenced. +

+ + +

NP: Method call passes null for nonnull parameter (NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS)

+ + +

+ A possibly-null value is passed at a call site where all known + target methods require the parameter to be nonnull. + Either the parameter is annotated as a parameter that should + always be nonnull, or analysis has shown that it will always be + dereferenced. +

+ + +

NP: Non-virtual method call passes null for nonnull parameter (NP_NULL_PARAM_DEREF_NONVIRTUAL)

+ + +

+ A possibly-null value is passed to a nonnull method parameter. + Either the parameter is annotated as a parameter that should + always be nonnull, or analysis has shown that it will always be + dereferenced. +

+ + +

NP: Store of null value into field annotated NonNull (NP_STORE_INTO_NONNULL_FIELD)

+ + +

A value that could be null is stored into a field that has been annotated as NonNull.

+ + +

NP: Read of unwritten field (NP_UNWRITTEN_FIELD)

+ + +

The program is dereferencing a field that does not seem to ever have a non-null value written to it. +Unless the field is initialized via some mechanism not seen by the analysis, +dereferencing this value will generate a null pointer exception. +

+ + +

Nm: Class defines equal(Object); should it be equals(Object)? (NM_BAD_EQUAL)

+ + +

This class defines a method equal(Object).  This method does +not override the equals(Object) method in java.lang.Object, +which is probably what was intended.

+ + +

Nm: Class defines hashcode(); should it be hashCode()? (NM_LCASE_HASHCODE)

+ + +

This class defines a method called hashcode().  This method + does not override the hashCode() method in java.lang.Object, + which is probably what was intended.

+ + +

Nm: Class defines tostring(); should it be toString()? (NM_LCASE_TOSTRING)

+ + +

This class defines a method called tostring().  This method + does not override the toString() method in java.lang.Object, + which is probably what was intended.

+ + +

Nm: Apparent method/constructor confusion (NM_METHOD_CONSTRUCTOR_CONFUSION)

+ + +

This regular method has the same name as the class it is defined in. It is likely that this was intended to be a constructor. + If it was intended to be a constructor, remove the declaration of a void return value. + If you had accidently defined this method, realized the mistake, defined a proper constructor + but can't get rid of this method due to backwards compatibility, deprecate the method. +

+ + +

Nm: Very confusing method names (NM_VERY_CONFUSING)

+ + +

The referenced methods have names that differ only by capitalization. +This is very confusing because if the capitalization were +identical then one of the methods would override the other. +

+ + +

Nm: Method doesn't override method in superclass due to wrong package for parameter (NM_WRONG_PACKAGE)

+ + +

The method in the subclass doesn't override a similar method in a superclass because the type of a parameter doesn't exactly match +the type of the corresponding parameter in the superclass. For example, if you have:

+ +
+
+import alpha.Foo;
+public class A {
+  public int f(Foo x) { return 17; }
+}
+----
+import beta.Foo;
+public class B extends A {
+  public int f(Foo x) { return 42; }
+}
+
+
+ +

The f(Foo) method defined in class B doesn't +override the +f(Foo) method defined in class A, because the argument +types are Foo's from different packages. +

+ + +

QBA: Method assigns boolean literal in boolean expression (QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT)

+ + +

+ This method assigns a literal boolean value (true or false) to a boolean variable inside + an if or while expression. Most probably this was supposed to be a boolean comparison using + ==, not an assignment using =. +

+ + +

RC: Suspicious reference comparison (RC_REF_COMPARISON)

+ + +

This method compares two reference values using the == or != operator, +where the correct way to compare instances of this type is generally +with the equals() method. +It is possible to create distinct instances that are equal but do not compare as == since +they are different objects. +Examples of classes which should generally +not be compared by reference are java.lang.Integer, java.lang.Float, etc.

+ + +

RCN: Nullcheck of value previously dereferenced (RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE)

+ + +

A value is checked here to see whether it is null, but this value can't +be null because it was previously dereferenced and if it were null a null pointer +exception would have occurred at the earlier dereference. +Essentially, this code and the previous dereference +disagree as to whether this value is allowed to be null. Either the check is redundant +or the previous dereference is erroneous.

+ + +

RE: Invalid syntax for regular expression (RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION)

+ + +

+The code here uses a regular expression that is invalid according to the syntax +for regular expressions. This statement will throw a PatternSyntaxException when +executed. +

+ + +

RE: File.separator used for regular expression (RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION)

+ + +

+The code here uses File.separator +where a regular expression is required. This will fail on Windows +platforms, where the File.separator is a backslash, which is interpreted in a +regular expression as an escape character. Amoung other options, you can just use +File.separatorChar=='\\' ? "\\\\" : File.separator instead of +File.separator + +

+ + +

RE: "." used for regular expression (RE_POSSIBLE_UNINTENDED_PATTERN)

+ + +

+A String function is being invoked and "." is being passed +to a parameter that takes a regular expression as an argument. Is this what you intended? +For example +s.replaceAll(".", "/") will return a String in which every +character has been replaced by a / character, +and s.split(".") always returns a zero length array of String. +

+ + +

RV: Random value from 0 to 1 is coerced to the integer 0 (RV_01_TO_INT)

+ + +

A random value from 0 to 1 is being coerced to the integer value 0. You probably +want to multiple the random value by something else before coercing it to an integer, or use the Random.nextInt(n) method. +

+ + +

RV: Bad attempt to compute absolute value of signed 32-bit hashcode (RV_ABSOLUTE_VALUE_OF_HASHCODE)

+ + +

This code generates a hashcode and then computes +the absolute value of that hashcode. If the hashcode +is Integer.MIN_VALUE, then the result will be negative as well (since +Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE). +

+

One out of 2^32 strings have a hashCode of Integer.MIN_VALUE, +including "polygenelubricants" "GydZG_" and ""DESIGNING WORKHOUSES". +

+ + +

RV: Bad attempt to compute absolute value of signed random integer (RV_ABSOLUTE_VALUE_OF_RANDOM_INT)

+ + +

This code generates a random signed integer and then computes +the absolute value of that random integer. If the number returned by the random number +generator is Integer.MIN_VALUE, then the result will be negative as well (since +Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE). (Same problem arised for long values as well). +

+ + +

RV: Code checks for specific values returned by compareTo (RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE)

+ + +

This code invoked a compareTo or compare method, and checks to see if the return value is a specific value, +such as 1 or -1. When invoking these methods, you should only check the sign of the result, not for any specific +non-zero value. While many or most compareTo and compare methods only return -1, 0 or 1, some of them +will return other values. + + +

RV: Exception created and dropped rather than thrown (RV_EXCEPTION_NOT_THROWN)

+ + +

This code creates an exception (or error) object, but doesn't do anything with it. For example, +something like

+
+
+if (x < 0)
+  new IllegalArgumentException("x must be nonnegative");
+
+
+

It was probably the intent of the programmer to throw the created exception:

+
+
+if (x < 0)
+  throw new IllegalArgumentException("x must be nonnegative");
+
+
+ + +

RV: Method ignores return value (RV_RETURN_VALUE_IGNORED)

+ + +

The return value of this method should be checked. One common +cause of this warning is to invoke a method on an immutable object, +thinking that it updates the object. For example, in the following code +fragment,

+
+
+String dateString = getHeaderField(name);
+dateString.trim();
+
+
+

the programmer seems to be thinking that the trim() method will update +the String referenced by dateString. But since Strings are immutable, the trim() +function returns a new String value, which is being ignored here. The code +should be corrected to:

+
+
+String dateString = getHeaderField(name);
+dateString = dateString.trim();
+
+
+ + +

RpC: Repeated conditional tests (RpC_REPEATED_CONDITIONAL_TEST)

+ + +

The code contains a conditional test is performed twice, one right after the other +(e.g., x == 0 || x == 0). Perhaps the second occurrence is intended to be something else +(e.g., x == 0 || y == 0). +

+ + +

SA: Self assignment of field (SA_FIELD_SELF_ASSIGNMENT)

+ + +

This method contains a self assignment of a field; e.g. +

+
+  int x;
+  public void foo() {
+    x = x;
+  }
+
+

Such assignments are useless, and may indicate a logic error or typo.

+ + +

SA: Self comparison of field with itself (SA_FIELD_SELF_COMPARISON)

+ + +

This method compares a field with itself, and may indicate a typo or +a logic error. Make sure that you are comparing the right things. +

+ + +

SA: Nonsensical self computation involving a field (e.g., x & x) (SA_FIELD_SELF_COMPUTATION)

+ + +

This method performs a nonsensical computation of a field with another +reference to the same field (e.g., x&x or x-x). Because of the nature +of the computation, this operation doesn't seem to make sense, +and may indicate a typo or +a logic error. Double check the computation. +

+ + +

SA: Self assignment of local rather than assignment to field (SA_LOCAL_SELF_ASSIGNMENT_INSTEAD_OF_FIELD)

+ + +

This method contains a self assignment of a local variable, and there +is a field with an identical name. +assignment appears to have been ; e.g.

+
+  int foo;
+  public void setFoo(int foo) {
+    foo = foo;
+  }
+
+

The assignment is useless. Did you mean to assign to the field instead?

+ + +

SA: Self comparison of value with itself (SA_LOCAL_SELF_COMPARISON)

+ + +

This method compares a local variable with itself, and may indicate a typo or +a logic error. Make sure that you are comparing the right things. +

+ + +

SA: Nonsensical self computation involving a variable (e.g., x & x) (SA_LOCAL_SELF_COMPUTATION)

+ + +

This method performs a nonsensical computation of a local variable with another +reference to the same variable (e.g., x&x or x-x). Because of the nature +of the computation, this operation doesn't seem to make sense, +and may indicate a typo or +a logic error. Double check the computation. +

+ + +

SF: Dead store due to switch statement fall through (SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH)

+ + +

A value stored in the previous switch case is overwritten here due to a switch fall through. It is likely that + you forgot to put a break or return at the end of the previous case. +

+ + +

SF: Dead store due to switch statement fall through to throw (SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW)

+ + +

A value stored in the previous switch case is ignored here due to a switch fall through to a place where + an exception is thrown. It is likely that + you forgot to put a break or return at the end of the previous case. +

+ + +

SIC: Deadly embrace of non-static inner class and thread local (SIC_THREADLOCAL_DEADLY_EMBRACE)

+ + +

This class is an inner class, but should probably be a static inner class. + As it is, there is a serious danger of a deadly embrace between the inner class + and the thread local in the outer class. Because the inner class isn't static, + it retains a reference to the outer class. + If the thread local contains a reference to an instance of the inner + class, the inner and outer instance will both be reachable + and not eligible for garbage collection. +

+ + +

SIO: Unnecessary type check done using instanceof operator (SIO_SUPERFLUOUS_INSTANCEOF)

+ + +

Type check performed using the instanceof operator where it can be statically determined whether the object +is of the type requested.

+ + +

SQL: Method attempts to access a prepared statement parameter with index 0 (SQL_BAD_PREPARED_STATEMENT_ACCESS)

+ + +

A call to a setXXX method of a prepared statement was made where the +parameter index is 0. As parameter indexes start at index 1, this is always a mistake.

+ + +

SQL: Method attempts to access a result set field with index 0 (SQL_BAD_RESULTSET_ACCESS)

+ + +

A call to getXXX or updateXXX methods of a result set was made where the +field index is 0. As ResultSet fields start at index 1, this is always a mistake.

+ + +

STI: Unneeded use of currentThread() call, to call interrupted() (STI_INTERRUPTED_ON_CURRENTTHREAD)

+ + +

+This method invokes the Thread.currentThread() call, just to call the interrupted() method. As interrupted() is a +static method, is more simple and clear to use Thread.interrupted(). +

+ + +

STI: Static Thread.interrupted() method invoked on thread instance (STI_INTERRUPTED_ON_UNKNOWNTHREAD)

+ + +

+This method invokes the Thread.interrupted() method on a Thread object that appears to be a Thread object that is +not the current thread. As the interrupted() method is static, the interrupted method will be called on a different +object than the one the author intended. +

+ + +

Se: Method must be private in order for serialization to work (SE_METHOD_MUST_BE_PRIVATE)

+ + +

This class implements the Serializable interface, and defines a method + for custom serialization/deserialization. But since that method isn't declared private, + it will be silently ignored by the serialization/deserialization API.

+ + +

Se: The readResolve method must not be declared as a static method. (SE_READ_RESOLVE_IS_STATIC)

+ + +

In order for the readResolve method to be recognized by the serialization +mechanism, it must not be declared as a static method. +

+ + +

TQ: Value annotated as carrying a type qualifier used where a value that must not carry that qualifier is required (TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED)

+ + +

+ A value specified as carrying a type qualifier annotation is + consumed in a location or locations requiring that the value not + carry that annotation. +

+ +

+ More precisely, a value annotated with a type qualifier specifying when=ALWAYS + is guaranteed to reach a use or uses where the same type qualifier specifies when=NEVER. +

+ +

+ For example, say that @NonNegative is a nickname for + the type qualifier annotation @Negative(when=When.NEVER). + The following code will generate this warning because + the return statement requires a @NonNegative value, + but receives one that is marked as @Negative. +

+
+
+public @NonNegative Integer example(@Negative Integer value) {
+    return value;
+}
+
+
+ + +

TQ: Value that might not carry a type qualifier is always used in a way requires that type qualifier (TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK)

+ + +

+ A value that is annotated as possibility not being an instance of + the values denoted by the type qualifier, and the value is guaranteed to be used + in a way that requires values denoted by that type qualifier. +

+ + +

TQ: Value that might carry a type qualifier is always used in a way prohibits it from having that type qualifier (TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK)

+ + +

+ A value that is annotated as possibility being an instance of + the values denoted by the type qualifier, and the value is guaranteed to be used + in a way that prohibits values denoted by that type qualifier. +

+ + +

TQ: Value annotated as never carrying a type qualifier used where value carrying that qualifier is required (TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED)

+ + +

+ A value specified as not carrying a type qualifier annotation is guaranteed + to be consumed in a location or locations requiring that the value does + carry that annotation. +

+ +

+ More precisely, a value annotated with a type qualifier specifying when=NEVER + is guaranteed to reach a use or uses where the same type qualifier specifies when=ALWAYS. +

+ +

+ TODO: example +

+ + +

UMAC: Uncallable method defined in anonymous class (UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS)

+ + +

This anonymous class defined a method that is not directly invoked and does not override +a method in a superclass. Since methods in other classes cannot directly invoke methods +declared in an anonymous class, it seems that this method is uncallable. The method +might simply be dead code, but it is also possible that the method is intended to +override a method declared in a superclass, and due to an typo or other error the method does not, +in fact, override the method it is intended to. +

+ + +

UR: Uninitialized read of field in constructor (UR_UNINIT_READ)

+ + +

This constructor reads a field which has not yet been assigned a value.  + This is often caused when the programmer mistakenly uses the field instead + of one of the constructor's parameters.

+ + +

UR: Uninitialized read of field method called from constructor of superclass (UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR)

+ + +

This method is invoked in the constructor of of the superclass. At this point, + the fields of the class have not yet initialized.

+

To make this more concrete, consider the following classes:

+
abstract class A {
+  int hashCode;
+  abstract Object getValue();
+  A() {
+    hashCode = getValue().hashCode();
+    }
+  }
+class B extends A {
+  Object value;
+  B(Object v) {
+    this.value = v;
+    }
+  Object getValue() {
+    return value;
+  }
+  }
+

When a B is constructed, +the constructor for the A class is invoked +before the constructor for B sets value. +Thus, when the constructor for A invokes getValue, +an uninitialized value is read for value +

+ + +

USELESS_STRING: Invocation of toString on an array (DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY)

+ + +

+The code invokes toString on an (anonymous) array. Calling toString on an array generates a fairly useless result +such as [C@16f0472. Consider using Arrays.toString to convert the array into a readable +String that gives the contents of the array. See Programming Puzzlers, chapter 3, puzzle 12. +

+ + +

USELESS_STRING: Invocation of toString on an array (DMI_INVOKING_TOSTRING_ON_ARRAY)

+ + +

+The code invokes toString on an array, which will generate a fairly useless result +such as [C@16f0472. Consider using Arrays.toString to convert the array into a readable +String that gives the contents of the array. See Programming Puzzlers, chapter 3, puzzle 12. +

+ + +

USELESS_STRING: Array formatted in useless way using format string (VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY)

+ + +

+One of the arguments being formatted with a format string is an array. This will be formatted +using a fairly useless format, such as [I@304282, which doesn't actually show the contents +of the array. +Consider wrapping the array using Arrays.asList(...) before handling it off to a formatted. +

+ + +

UwF: Field only ever set to null (UWF_NULL_FIELD)

+ + +

All writes to this field are of the constant value null, and thus +all reads of the field will return null. +Check for errors, or remove it if it is useless.

+ + +

UwF: Unwritten field (UWF_UNWRITTEN_FIELD)

+ + +

This field is never written.  All reads of it will return the default +value. Check for errors (should it have been initialized?), or remove it if it is useless.

+ + +

VA: Primitive array passed to function expecting a variable number of object arguments (VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG)

+ + +

+This code passes a primitive array to a function that takes a variable number of object arguments. +This creates an array of length one to hold the primitive array and passes it to the function. +

+ + +

LG: Potential lost logger changes due to weak reference in OpenJDK (LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE)

+ + +

OpenJDK introduces a potential incompatibility. + In particular, the java.util.logging.Logger behavior has + changed. Instead of using strong references, it now uses weak references + internally. That's a reasonable change, but unfortunately some code relies on + the old behavior - when changing logger configuration, it simply drops the + logger reference. That means that the garbage collector is free to reclaim + that memory, which means that the logger configuration is lost. For example, +consider: +

+ +

public static void initLogging() throws Exception {
+ Logger logger = Logger.getLogger("edu.umd.cs");
+ logger.addHandler(new FileHandler()); // call to change logger configuration
+ logger.setUseParentHandlers(false); // another call to change logger configuration
+}

+ +

The logger reference is lost at the end of the method (it doesn't +escape the method), so if you have a garbage collection cycle just +after the call to initLogging, the logger configuration is lost +(because Logger only keeps weak references).

+ +

public static void main(String[] args) throws Exception {
+ initLogging(); // adds a file handler to the logger
+ System.gc(); // logger configuration lost
+ Logger.getLogger("edu.umd.cs").info("Some message"); // this isn't logged to the file as expected
+}

+

Ulf Ochsenfahrt and Eric Fellheimer

+ + +

OBL: Method may fail to clean up stream or resource (OBL_UNSATISFIED_OBLIGATION)

+ + +

+ This method may fail to clean up (close, dispose of) a stream, + database object, or other + resource requiring an explicit cleanup operation. +

+ +

+ In general, if a method opens a stream or other resource, + the method should use a try/finally block to ensure that + the stream or resource is cleaned up before the method + returns. +

+ +

+ This bug pattern is essentially the same as the + OS_OPEN_STREAM and ODR_OPEN_DATABASE_RESOURCE + bug patterns, but is based on a different + (and hopefully better) static analysis technique. + We are interested is getting feedback about the + usefulness of this bug pattern. + To send feedback, either: +

+ + +

+ In particular, + the false-positive suppression heuristics for this + bug pattern have not been extensively tuned, so + reports about false positives are helpful to us. +

+ +

+ See Weimer and Necula, Finding and Preventing Run-Time Error Handling Mistakes, for + a description of the analysis technique. +

+ + +

OBL: Method may fail to clean up stream or resource on checked exception (OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE)

+ + +

+ This method may fail to clean up (close, dispose of) a stream, + database object, or other + resource requiring an explicit cleanup operation. +

+ +

+ In general, if a method opens a stream or other resource, + the method should use a try/finally block to ensure that + the stream or resource is cleaned up before the method + returns. +

+ +

+ This bug pattern is essentially the same as the + OS_OPEN_STREAM and ODR_OPEN_DATABASE_RESOURCE + bug patterns, but is based on a different + (and hopefully better) static analysis technique. + We are interested is getting feedback about the + usefulness of this bug pattern. + To send feedback, either: +

+ + +

+ In particular, + the false-positive suppression heuristics for this + bug pattern have not been extensively tuned, so + reports about false positives are helpful to us. +

+ +

+ See Weimer and Necula, Finding and Preventing Run-Time Error Handling Mistakes, for + a description of the analysis technique. +

+ + +

Dm: Consider using Locale parameterized version of invoked method (DM_CONVERT_CASE)

+ + +

A String is being converted to upper or lowercase, using the platform's default encoding. This may + result in improper conversions when used with international characters. Use the

+
    +
  • String.toUpperCase( Locale l )
  • +
  • String.toLowerCase( Locale l )
  • +
+

versions instead.

+ + +

Dm: Reliance on default encoding (DM_DEFAULT_ENCODING)

+ + +

Found a call to a method which will perform a byte to String (or String to byte) conversion, and will assume that the default platform encoding is suitable. This will cause the application behaviour to vary between platforms. Use an alternative API and specify a charset name or Charset object explicitly.

+ + +

DP: Classloaders should only be created inside doPrivileged block (DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED)

+ + +

This code creates a classloader, which needs permission if a security manage is installed. + If this code might be invoked by code that does not + have security permissions, then the classloader creation needs to occur inside a doPrivileged block.

+ + +

DP: Method invoked that should be only be invoked inside a doPrivileged block (DP_DO_INSIDE_DO_PRIVILEGED)

+ + +

This code invokes a method that requires a security permission check. + If this code will be granted security permissions, but might be invoked by code that does not + have security permissions, then the invocation needs to occur inside a doPrivileged block.

+ + +

EI: May expose internal representation by returning reference to mutable object (EI_EXPOSE_REP)

+ + +

Returning a reference to a mutable object value stored in one of the object's fields + exposes the internal representation of the object.  + If instances + are accessed by untrusted code, and unchecked changes to + the mutable object would compromise security or other + important properties, you will need to do something different. + Returning a new copy of the object is better approach in many situations.

+ + +

EI2: May expose internal representation by incorporating reference to mutable object (EI_EXPOSE_REP2)

+ + +

This code stores a reference to an externally mutable object into the + internal representation of the object.  + If instances + are accessed by untrusted code, and unchecked changes to + the mutable object would compromise security or other + important properties, you will need to do something different. + Storing a copy of the object is better approach in many situations.

+ + +

FI: Finalizer should be protected, not public (FI_PUBLIC_SHOULD_BE_PROTECTED)

+ + +

A class's finalize() method should have protected access, + not public.

+ + +

MS: May expose internal static state by storing a mutable object into a static field (EI_EXPOSE_STATIC_REP2)

+ + +

This code stores a reference to an externally mutable object into a static + field. + If unchecked changes to + the mutable object would compromise security or other + important properties, you will need to do something different. + Storing a copy of the object is better approach in many situations.

+ + +

MS: Field isn't final and can't be protected from malicious code (MS_CANNOT_BE_FINAL)

+ + +

+ A mutable static field could be changed by malicious code or + by accident from another package. + Unfortunately, the way the field is used doesn't allow + any easy fix to this problem.

+ + +

MS: Public static method may expose internal representation by returning array (MS_EXPOSE_REP)

+ + +

A public static method returns a reference to + an array that is part of the static state of the class. + Any code that calls this method can freely modify + the underlying array. + One fix is to return a copy of the array.

+ + +

MS: Field should be both final and package protected (MS_FINAL_PKGPROTECT)

+ + +

+ A mutable static field could be changed by malicious code or + by accident from another package. + The field could be made package protected and/or made final + to avoid + this vulnerability.

+ + +

MS: Field is a mutable array (MS_MUTABLE_ARRAY)

+ + +

A final static field references an array + and can be accessed by malicious code or + by accident from another package. + This code can freely modify the contents of the array.

+ + +

MS: Field is a mutable Hashtable (MS_MUTABLE_HASHTABLE)

+ + +

A final static field references a Hashtable + and can be accessed by malicious code or + by accident from another package. + This code can freely modify the contents of the Hashtable.

+ + +

MS: Field should be moved out of an interface and made package protected (MS_OOI_PKGPROTECT)

+ + +

+ A final static field that is +defined in an interface references a mutable + object such as an array or hashtable. + This mutable object could + be changed by malicious code or + by accident from another package. + To solve this, the field needs to be moved to a class + and made package protected + to avoid + this vulnerability.

+ + +

MS: Field should be package protected (MS_PKGPROTECT)

+ + +

A mutable static field could be changed by malicious code or + by accident. + The field could be made package protected to avoid + this vulnerability.

+ + +

MS: Field isn't final but should be (MS_SHOULD_BE_FINAL)

+ + +

+ A mutable static field could be changed by malicious code or + by accident from another package. + The field could be made final to avoid + this vulnerability.

+ + +

AT: Sequence of calls to concurrent abstraction may not be atomic (AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION)

+ + +

This code contains a sequence of calls to a concurrent abstraction + (such as a concurrent hash map). + These calls will not be executed atomically. + + +

DC: Possible double check of field (DC_DOUBLECHECK)

+ + +

This method may contain an instance of double-checked locking.  + This idiom is not correct according to the semantics of the Java memory + model.  For more information, see the web page + http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html.

+ + +

DL: Synchronization on Boolean (DL_SYNCHRONIZATION_ON_BOOLEAN)

+ + +

The code synchronizes on a boxed primitive constant, such as an Boolean. +

+private static Boolean inited = Boolean.FALSE;
+...
+  synchronized(inited) {
+    if (!inited) {
+       init();
+       inited = Boolean.TRUE;
+       }
+     }
+...
+
+

+

Since there normally exist only two Boolean objects, this code could be synchronizing on the same object as other, unrelated code, leading to unresponsiveness +and possible deadlock

+

See CERT CON08-J. Do not synchronize on objects that may be reused for more information.

+ + +

DL: Synchronization on boxed primitive (DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE)

+ + +

The code synchronizes on a boxed primitive constant, such as an Integer. +

+private static Integer count = 0;
+...
+  synchronized(count) {
+     count++;
+     }
+...
+
+

+

Since Integer objects can be cached and shared, +this code could be synchronizing on the same object as other, unrelated code, leading to unresponsiveness +and possible deadlock

+

See CERT CON08-J. Do not synchronize on objects that may be reused for more information.

+ + +

DL: Synchronization on interned String (DL_SYNCHRONIZATION_ON_SHARED_CONSTANT)

+ + +

The code synchronizes on interned String. +

+private static String LOCK = "LOCK";
+...
+  synchronized(LOCK) { ...}
+...
+
+

+

Constant Strings are interned and shared across all other classes loaded by the JVM. Thus, this could +is locking on something that other code might also be locking. This could result in very strange and hard to diagnose +blocking and deadlock behavior. See http://www.javalobby.org/java/forums/t96352.html and http://jira.codehaus.org/browse/JETTY-352. +

See CERT CON08-J. Do not synchronize on objects that may be reused for more information.

+

+ + +

DL: Synchronization on boxed primitive values (DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE)

+ + +

The code synchronizes on an apparently unshared boxed primitive, +such as an Integer. +

+private static final Integer fileLock = new Integer(1);
+...
+  synchronized(fileLock) {
+     .. do something ..
+     }
+...
+
+

+

It would be much better, in this code, to redeclare fileLock as +

+private static final Object fileLock = new Object();
+
+The existing code might be OK, but it is confusing and a +future refactoring, such as the "Remove Boxing" refactoring in IntelliJ, +might replace this with the use of an interned Integer object shared +throughout the JVM, leading to very confusing behavior and potential deadlock. +

+ + +

Dm: Monitor wait() called on Condition (DM_MONITOR_WAIT_ON_CONDITION)

+ + +

+ This method calls wait() on a + java.util.concurrent.locks.Condition object.  + Waiting for a Condition should be done using one of the await() + methods defined by the Condition interface. +

+ + +

Dm: A thread was created using the default empty run method (DM_USELESS_THREAD)

+ + +

This method creates a thread without specifying a run method either by deriving from the Thread class, or + by passing a Runnable object. This thread, then, does nothing but waste time. +

+ + +

ESync: Empty synchronized block (ESync_EMPTY_SYNC)

+ + +

The code contains an empty synchronized block:

+
+synchronized() {}
+
+

Empty synchronized blocks are far more subtle and hard to use correctly +than most people recognize, and empty synchronized blocks +are almost never a better solution +than less contrived solutions. +

+ + +

IS: Inconsistent synchronization (IS2_INCONSISTENT_SYNC)

+ + +

The fields of this class appear to be accessed inconsistently with respect + to synchronization.  This bug report indicates that the bug pattern detector + judged that +

+
    +
  • The class contains a mix of locked and unlocked accesses,
  • +
  • At least one locked access was performed by one of the class's own methods, and
  • +
  • The number of unsynchronized field accesses (reads and writes) was no more than + one third of all accesses, with writes being weighed twice as high as reads
  • +
+ +

A typical bug matching this bug pattern is forgetting to synchronize + one of the methods in a class that is intended to be thread-safe.

+ +

You can select the nodes labeled "Unsynchronized access" to show the + code locations where the detector believed that a field was accessed + without synchronization.

+ +

Note that there are various sources of inaccuracy in this detector; + for example, the detector cannot statically detect all situations in which + a lock is held.  Also, even when the detector is accurate in + distinguishing locked vs. unlocked accesses, the code in question may still + be correct.

+ + + +

IS: Field not guarded against concurrent access (IS_FIELD_NOT_GUARDED)

+ + +

This field is annotated with net.jcip.annotations.GuardedBy, +but can be accessed in a way that seems to violate the annotation.

+ + +

JLM: Synchronization performed on Lock (JLM_JSR166_LOCK_MONITORENTER)

+ + +

This method performs synchronization an object that implements +java.util.concurrent.locks.Lock. Such an object is locked/unlocked +using +acquire()/release() rather +than using the synchronized (...) construct. +

+ + +

JLM: Synchronization performed on util.concurrent instance (JLM_JSR166_UTILCONCURRENT_MONITORENTER)

+ + +

This method performs synchronization an object that is an instance of +a class from the java.util.concurrent package (or its subclasses). Instances +of these classes have their own concurrency control mechanisms that are orthogonal to +the synchronization provided by the Java keyword synchronized. For example, +synchronizing on an AtomicBoolean will not prevent other threads +from modifying the AtomicBoolean.

+

Such code may be correct, but should be carefully reviewed and documented, +and may confuse people who have to maintain the code at a later date. +

+ + +

JLM: Using monitor style wait methods on util.concurrent abstraction (JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT)

+ + +

This method calls +wait(), +notify() or +notifyAll()() +on an object that also provides an +await(), +signal(), +signalAll() method (such as util.concurrent Condition objects). +This probably isn't what you want, and even if you do want it, you should consider changing +your design, as other developers will find it exceptionally confusing. +

+ + +

LI: Incorrect lazy initialization of static field (LI_LAZY_INIT_STATIC)

+ + +

This method contains an unsynchronized lazy initialization of a non-volatile static field. +Because the compiler or processor may reorder instructions, +threads are not guaranteed to see a completely initialized object, +if the method can be called by multiple threads. +You can make the field volatile to correct the problem. +For more information, see the +Java Memory Model web site. +

+ + +

LI: Incorrect lazy initialization and update of static field (LI_LAZY_INIT_UPDATE_STATIC)

+ + +

This method contains an unsynchronized lazy initialization of a static field. +After the field is set, the object stored into that location is further updated or accessed. +The setting of the field is visible to other threads as soon as it is set. If the +futher accesses in the method that set the field serve to initialize the object, then +you have a very serious multithreading bug, unless something else prevents +any other thread from accessing the stored object until it is fully initialized. +

+

Even if you feel confident that the method is never called by multiple +threads, it might be better to not set the static field until the value +you are setting it to is fully populated/initialized. + + +

ML: Synchronization on field in futile attempt to guard that field (ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD)

+ + +

This method synchronizes on a field in what appears to be an attempt +to guard against simultaneous updates to that field. But guarding a field +gets a lock on the referenced object, not on the field. This may not +provide the mutual exclusion you need, and other threads might +be obtaining locks on the referenced objects (for other purposes). An example +of this pattern would be: + +

+private Long myNtfSeqNbrCounter = new Long(0);
+private Long getNotificationSequenceNumber() {
+     Long result = null;
+     synchronized(myNtfSeqNbrCounter) {
+         result = new Long(myNtfSeqNbrCounter.longValue() + 1);
+         myNtfSeqNbrCounter = new Long(result.longValue());
+     }
+     return result;
+ }
+
+ + +

+ + +

ML: Method synchronizes on an updated field (ML_SYNC_ON_UPDATED_FIELD)

+ + +

This method synchronizes on an object + referenced from a mutable field. + This is unlikely to have useful semantics, since different +threads may be synchronizing on different objects.

+ + +

MSF: Mutable servlet field (MSF_MUTABLE_SERVLET_FIELD)

+ + +

A web server generally only creates one instance of servlet or jsp class (i.e., treats +the class as a Singleton), +and will +have multiple threads invoke methods on that instance to service multiple +simultaneous requests. +Thus, having a mutable instance field generally creates race conditions. + + +

MWN: Mismatched notify() (MWN_MISMATCHED_NOTIFY)

+ + +

This method calls Object.notify() or Object.notifyAll() without obviously holding a lock +on the object.  Calling notify() or notifyAll() without a lock held will result in +an IllegalMonitorStateException being thrown.

+ + +

MWN: Mismatched wait() (MWN_MISMATCHED_WAIT)

+ + +

This method calls Object.wait() without obviously holding a lock +on the object.  Calling wait() without a lock held will result in +an IllegalMonitorStateException being thrown.

+ + +

NN: Naked notify (NN_NAKED_NOTIFY)

+ + +

A call to notify() or notifyAll() + was made without any (apparent) accompanying + modification to mutable object state.  In general, calling a notify + method on a monitor is done because some condition another thread is + waiting for has become true.  However, for the condition to be meaningful, + it must involve a heap object that is visible to both threads.

+ +

This bug does not necessarily indicate an error, since the change to + mutable object state may have taken place in a method which then called + the method containing the notification.

+ + +

NP: Synchronize and null check on the same field. (NP_SYNC_AND_NULL_CHECK_FIELD)

+ + +

Since the field is synchronized on, it seems not likely to be null. +If it is null and then synchronized on a NullPointerException will be +thrown and the check would be pointless. Better to synchronize on +another field.

+ + + +

No: Using notify() rather than notifyAll() (NO_NOTIFY_NOT_NOTIFYALL)

+ + +

This method calls notify() rather than notifyAll().  + Java monitors are often used for multiple conditions.  Calling notify() + only wakes up one thread, meaning that the thread woken up might not be the + one waiting for the condition that the caller just satisfied.

+ + +

RS: Class's readObject() method is synchronized (RS_READOBJECT_SYNC)

+ + +

This serializable class defines a readObject() which is + synchronized.  By definition, an object created by deserialization + is only reachable by one thread, and thus there is no need for + readObject() to be synchronized.  If the readObject() + method itself is causing the object to become visible to another thread, + that is an example of very dubious coding style.

+ + +

RV: Return value of putIfAbsent ignored, value passed to putIfAbsent reused (RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED)

+ + + The putIfAbsent method is typically used to ensure that a + single value is associated with a given key (the first value for which put + if absent succeeds). + If you ignore the return value and retain a reference to the value passed in, + you run the risk of retaining a value that is not the one that is associated with the key in the map. + If it matters which one you use and you use the one that isn't stored in the map, + your program will behave incorrectly. + + +

Ru: Invokes run on a thread (did you mean to start it instead?) (RU_INVOKE_RUN)

+ + +

This method explicitly invokes run() on an object.  + In general, classes implement the Runnable interface because + they are going to have their run() method invoked in a new thread, + in which case Thread.start() is the right method to call.

+ + +

SC: Constructor invokes Thread.start() (SC_START_IN_CTOR)

+ + +

The constructor starts a thread. This is likely to be wrong if + the class is ever extended/subclassed, since the thread will be started + before the subclass constructor is started.

+ + +

SP: Method spins on field (SP_SPIN_ON_FIELD)

+ + +

This method spins in a loop which reads a field.  The compiler + may legally hoist the read out of the loop, turning the code into an + infinite loop.  The class should be changed so it uses proper + synchronization (including wait and notify calls).

+ + +

STCAL: Call to static Calendar (STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE)

+ + +

Even though the JavaDoc does not contain a hint about it, Calendars are inherently unsafe for multihtreaded use. +The detector has found a call to an instance of Calendar that has been obtained via a static +field. This looks suspicous.

+

For more information on this see Sun Bug #6231579 +and Sun Bug #6178997.

+ + +

STCAL: Call to static DateFormat (STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE)

+ + +

As the JavaDoc states, DateFormats are inherently unsafe for multithreaded use. +The detector has found a call to an instance of DateFormat that has been obtained via a static +field. This looks suspicous.

+

For more information on this see Sun Bug #6231579 +and Sun Bug #6178997.

+ + +

STCAL: Static Calendar field (STCAL_STATIC_CALENDAR_INSTANCE)

+ + +

Even though the JavaDoc does not contain a hint about it, Calendars are inherently unsafe for multihtreaded use. +Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the +application. Under 1.4 problems seem to surface less often than under Java 5 where you will probably see +random ArrayIndexOutOfBoundsExceptions or IndexOutOfBoundsExceptions in sun.util.calendar.BaseCalendar.getCalendarDateFromFixedDate().

+

You may also experience serialization problems.

+

Using an instance field is recommended.

+

For more information on this see Sun Bug #6231579 +and Sun Bug #6178997.

+ + +

STCAL: Static DateFormat (STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE)

+ + +

As the JavaDoc states, DateFormats are inherently unsafe for multithreaded use. +Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the +application.

+

You may also experience serialization problems.

+

Using an instance field is recommended.

+

For more information on this see Sun Bug #6231579 +and Sun Bug #6178997.

+ + +

SWL: Method calls Thread.sleep() with a lock held (SWL_SLEEP_WITH_LOCK_HELD)

+ + +

+ This method calls Thread.sleep() with a lock held. This may result + in very poor performance and scalability, or a deadlock, since other threads may + be waiting to acquire the lock. It is a much better idea to call + wait() on the lock, which releases the lock and allows other threads + to run. +

+ + +

TLW: Wait with two locks held (TLW_TWO_LOCK_WAIT)

+ + +

Waiting on a monitor while two locks are held may cause + deadlock. +   + Performing a wait only releases the lock on the object + being waited on, not any other locks. +   +This not necessarily a bug, but is worth examining + closely.

+ + +

UG: Unsynchronized get method, synchronized set method (UG_SYNC_SET_UNSYNC_GET)

+ + +

This class contains similarly-named get and set + methods where the set method is synchronized and the get method is not.  + This may result in incorrect behavior at runtime, as callers of the get + method will not necessarily see a consistent state for the object.  + The get method should be made synchronized.

+ + +

UL: Method does not release lock on all paths (UL_UNRELEASED_LOCK)

+ + +

This method acquires a JSR-166 (java.util.concurrent) lock, +but does not release it on all paths out of the method. In general, the correct idiom +for using a JSR-166 lock is: +

+
+    Lock l = ...;
+    l.lock();
+    try {
+        // do something
+    } finally {
+        l.unlock();
+    }
+
+ + +

UL: Method does not release lock on all exception paths (UL_UNRELEASED_LOCK_EXCEPTION_PATH)

+ + +

This method acquires a JSR-166 (java.util.concurrent) lock, +but does not release it on all exception paths out of the method. In general, the correct idiom +for using a JSR-166 lock is: +

+
+    Lock l = ...;
+    l.lock();
+    try {
+        // do something
+    } finally {
+        l.unlock();
+    }
+
+ + +

UW: Unconditional wait (UW_UNCOND_WAIT)

+ + +

This method contains a call to java.lang.Object.wait() which + is not guarded by conditional control flow.  The code should + verify that condition it intends to wait for is not already satisfied + before calling wait; any previous notifications will be ignored. +

+ + +

VO: An increment to a volatile field isn't atomic (VO_VOLATILE_INCREMENT)

+ + +

This code increments a volatile field. Increments of volatile fields aren't +atomic. If more than one thread is incrementing the field at the same time, +increments could be lost. +

+ + +

VO: A volatile reference to an array doesn't treat the array elements as volatile (VO_VOLATILE_REFERENCE_TO_ARRAY)

+ + +

This declares a volatile reference to an array, which might not be what +you want. With a volatile reference to an array, reads and writes of +the reference to the array are treated as volatile, but the array elements +are non-volatile. To get volatile array elements, you will need to use +one of the atomic array classes in java.util.concurrent (provided +in Java 5.0).

+ + +

WL: Synchronization on getClass rather than class literal (WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL)

+ + +

+ This instance method synchronizes on this.getClass(). If this class is subclassed, + subclasses will synchronize on the class object for the subclass, which isn't likely what was intended. + For example, consider this code from java.awt.Label: +

+     private static final String base = "label";
+     private static int nameCounter = 0;
+     String constructComponentName() {
+        synchronized (getClass()) {
+            return base + nameCounter++;
+        }
+     }
+     

+

Subclasses of Label won't synchronize on the same subclass, giving rise to a datarace. + Instead, this code should be synchronizing on Label.class +

+     private static final String base = "label";
+     private static int nameCounter = 0;
+     String constructComponentName() {
+        synchronized (Label.class) {
+            return base + nameCounter++;
+        }
+     }
+     

+

Bug pattern contributed by Jason Mehrens

+ + +

WS: Class's writeObject() method is synchronized but nothing else is (WS_WRITEOBJECT_SYNC)

+ + +

This class has a writeObject() method which is synchronized; + however, no other method of the class is synchronized.

+ + +

Wa: Condition.await() not in loop (WA_AWAIT_NOT_IN_LOOP)

+ + +

This method contains a call to java.util.concurrent.await() + (or variants) + which is not in a loop.  If the object is used for multiple conditions, + the condition the caller intended to wait for might not be the one + that actually occurred.

+ + +

Wa: Wait not in loop (WA_NOT_IN_LOOP)

+ + +

This method contains a call to java.lang.Object.wait() + which is not in a loop.  If the monitor is used for multiple conditions, + the condition the caller intended to wait for might not be the one + that actually occurred.

+ + +

Bx: Primitive value is boxed and then immediately unboxed (BX_BOXING_IMMEDIATELY_UNBOXED)

+ + +

A primitive is boxed, and then immediately unboxed. This probably is due to a manual + boxing in a place where an unboxed value is required, thus forcing the compiler +to immediately undo the work of the boxing. +

+ + +

Bx: Primitive value is boxed then unboxed to perform primitive coercion (BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION)

+ + +

A primitive boxed value constructed and then immediately converted into a different primitive type +(e.g., new Double(d).intValue()). Just perform direct primitive coercion (e.g., (int) d).

+ + +

Bx: Boxed value is unboxed and then immediately reboxed (BX_UNBOXING_IMMEDIATELY_REBOXED)

+ + +

A boxed value is unboxed and then immediately reboxed. +

+ + +

Bx: Method allocates a boxed primitive just to call toString (DM_BOXED_PRIMITIVE_TOSTRING)

+ + +

A boxed primitive is allocated just to call toString(). It is more effective to just use the static + form of toString which takes the primitive value. So,

+ + + + + + + + + +
Replace...With this...
new Integer(1).toString()Integer.toString(1)
new Long(1).toString()Long.toString(1)
new Float(1.0).toString()Float.toString(1.0)
new Double(1.0).toString()Double.toString(1.0)
new Byte(1).toString()Byte.toString(1)
new Short(1).toString()Short.toString(1)
new Boolean(true).toString()Boolean.toString(true)
+ + +

Bx: Method invokes inefficient floating-point Number constructor; use static valueOf instead (DM_FP_NUMBER_CTOR)

+ + +

+ Using new Double(double) is guaranteed to always result in a new object whereas + Double.valueOf(double) allows caching of values to be done by the compiler, class library, or JVM. + Using of cached values avoids object allocation and the code will be faster. +

+

+ Unless the class must be compatible with JVMs predating Java 1.5, + use either autoboxing or the valueOf() method when creating instances of Double and Float. +

+ + +

Bx: Method invokes inefficient Number constructor; use static valueOf instead (DM_NUMBER_CTOR)

+ + +

+ Using new Integer(int) is guaranteed to always result in a new object whereas + Integer.valueOf(int) allows caching of values to be done by the compiler, class library, or JVM. + Using of cached values avoids object allocation and the code will be faster. +

+

+ Values between -128 and 127 are guaranteed to have corresponding cached instances + and using valueOf is approximately 3.5 times faster than using constructor. + For values outside the constant range the performance of both styles is the same. +

+

+ Unless the class must be compatible with JVMs predating Java 1.5, + use either autoboxing or the valueOf() method when creating instances of + Long, Integer, Short, Character, and Byte. +

+ + +

Dm: The equals and hashCode methods of URL are blocking (DMI_BLOCKING_METHODS_ON_URL)

+ + +

The equals and hashCode +method of URL perform domain name resolution, this can result in a big performance hit. +See http://michaelscharf.blogspot.com/2006/11/javaneturlequals-and-hashcode-make.html for more information. +Consider using java.net.URI instead. +

+ + +

Dm: Maps and sets of URLs can be performance hogs (DMI_COLLECTION_OF_URLS)

+ + +

This method or field is or uses a Map or Set of URLs. Since both the equals and hashCode +method of URL perform domain name resolution, this can result in a big performance hit. +See http://michaelscharf.blogspot.com/2006/11/javaneturlequals-and-hashcode-make.html for more information. +Consider using java.net.URI instead. +

+ + +

Dm: Method invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead (DM_BOOLEAN_CTOR)

+ + +

Creating new instances of java.lang.Boolean wastes + memory, since Boolean objects are immutable and there are + only two useful values of this type.  Use the Boolean.valueOf() + method (or Java 1.5 autoboxing) to create Boolean objects instead.

+ + +

Dm: Explicit garbage collection; extremely dubious except in benchmarking code (DM_GC)

+ + +

Code explicitly invokes garbage collection. + Except for specific use in benchmarking, this is very dubious.

+

In the past, situations where people have explicitly invoked + the garbage collector in routines such as close or finalize methods + has led to huge performance black holes. Garbage collection + can be expensive. Any situation that forces hundreds or thousands + of garbage collections will bring the machine to a crawl.

+ + +

Dm: Method allocates an object, only to get the class object (DM_NEW_FOR_GETCLASS)

+ + +

This method allocates an object just to call getClass() on it, in order to + retrieve the Class object for it. It is simpler to just access the .class property of the class.

+ + +

Dm: Use the nextInt method of Random rather than nextDouble to generate a random integer (DM_NEXTINT_VIA_NEXTDOUBLE)

+ + +

If r is a java.util.Random, you can generate a random number from 0 to n-1 +using r.nextInt(n), rather than using (int)(r.nextDouble() * n). +

+

The argument to nextInt must be positive. If, for example, you want to generate a random +value from -99 to 0, use -r.nextInt(100). +

+ + +

Dm: Method invokes inefficient new String(String) constructor (DM_STRING_CTOR)

+ + +

Using the java.lang.String(String) constructor wastes memory + because the object so constructed will be functionally indistinguishable + from the String passed as a parameter.  Just use the + argument String directly.

+ + +

Dm: Method invokes toString() method on a String (DM_STRING_TOSTRING)

+ + +

Calling String.toString() is just a redundant operation. + Just use the String.

+ + +

Dm: Method invokes inefficient new String() constructor (DM_STRING_VOID_CTOR)

+ + +

Creating a new java.lang.String object using the + no-argument constructor wastes memory because the object so created will + be functionally indistinguishable from the empty string constant + "".  Java guarantees that identical string constants + will be represented by the same String object.  Therefore, + you should just use the empty string constant directly.

+ + +

HSC: Huge string constants is duplicated across multiple class files (HSC_HUGE_SHARED_STRING_CONSTANT)

+ + +

+ A large String constant is duplicated across multiple class files. + This is likely because a final field is initialized to a String constant, and the Java language + mandates that all references to a final field from other classes be inlined into +that classfile. See JDK bug 6447475 + for a description of an occurrence of this bug in the JDK and how resolving it reduced + the size of the JDK by 1 megabyte. +

+ + +

ITA: Method uses toArray() with zero-length array argument (ITA_INEFFICIENT_TO_ARRAY)

+ + +

This method uses the toArray() method of a collection derived class, and passes +in a zero-length prototype array argument. It is more efficient to use +myCollection.toArray(new Foo[myCollection.size()]) +If the array passed in is big enough to store all of the +elements of the collection, then it is populated and returned +directly. This avoids the need to create a second array +(by reflection) to return as the result.

+ + +

SBSC: Method concatenates strings using + in a loop (SBSC_USE_STRINGBUFFER_CONCATENATION)

+ + +

The method seems to be building a String using concatenation in a loop. +In each iteration, the String is converted to a StringBuffer/StringBuilder, + appended to, and converted back to a String. + This can lead to a cost quadratic in the number of iterations, + as the growing string is recopied in each iteration.

+ +

Better performance can be obtained by using +a StringBuffer (or StringBuilder in Java 1.5) explicitly.

+ +

For example:

+
+  // This is bad
+  String s = "";
+  for (int i = 0; i < field.length; ++i) {
+    s = s + field[i];
+  }
+
+  // This is better
+  StringBuffer buf = new StringBuffer();
+  for (int i = 0; i < field.length; ++i) {
+    buf.append(field[i]);
+  }
+  String s = buf.toString();
+
+ + +

SIC: Should be a static inner class (SIC_INNER_SHOULD_BE_STATIC)

+ + +

This class is an inner class, but does not use its embedded reference + to the object which created it.  This reference makes the instances + of the class larger, and may keep the reference to the creator object + alive longer than necessary.  If possible, the class should be + made static. +

+ + +

SIC: Could be refactored into a named static inner class (SIC_INNER_SHOULD_BE_STATIC_ANON)

+ + +

This class is an inner class, but does not use its embedded reference + to the object which created it.  This reference makes the instances + of the class larger, and may keep the reference to the creator object + alive longer than necessary.  If possible, the class should be + made into a static inner class. Since anonymous inner +classes cannot be marked as static, doing this will require refactoring +the inner class so that it is a named inner class.

+ + +

SIC: Could be refactored into a static inner class (SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS)

+ + +

This class is an inner class, but does not use its embedded reference + to the object which created it except during construction of the +inner object.  This reference makes the instances + of the class larger, and may keep the reference to the creator object + alive longer than necessary.  If possible, the class should be + made into a static inner class. Since the reference to the + outer object is required during construction of the inner instance, + the inner class will need to be refactored so as to + pass a reference to the outer instance to the constructor + for the inner class.

+ + +

SS: Unread field: should this field be static? (SS_SHOULD_BE_STATIC)

+ + +

This class contains an instance final field that + is initialized to a compile-time static value. + Consider making the field static.

+ + +

UM: Method calls static Math class method on a constant value (UM_UNNECESSARY_MATH)

+ + +

This method uses a static method from java.lang.Math on a constant value. This method's +result in this case, can be determined statically, and is faster and sometimes more accurate to +just use the constant. Methods detected are: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Method Parameter
abs -any-
acos 0.0 or 1.0
asin 0.0 or 1.0
atan 0.0 or 1.0
atan2 0.0
cbrt 0.0 or 1.0
ceil -any-
cos 0.0
cosh 0.0
exp 0.0 or 1.0
expm1 0.0
floor -any-
log 0.0 or 1.0
log10 0.0 or 1.0
rint -any-
round -any-
sin 0.0
sinh 0.0
sqrt 0.0 or 1.0
tan 0.0
tanh 0.0
toDegrees 0.0 or 1.0
toRadians 0.0
+ + +

UPM: Private method is never called (UPM_UNCALLED_PRIVATE_METHOD)

+ + +

This private method is never called. Although it is +possible that the method will be invoked through reflection, +it is more likely that the method is never used, and should be +removed. +

+ + +

UrF: Unread field (URF_UNREAD_FIELD)

+ + +

This field is never read.  Consider removing it from the class.

+ + +

UuF: Unused field (UUF_UNUSED_FIELD)

+ + +

This field is never used.  Consider removing it from the class.

+ + +

WMI: Inefficient use of keySet iterator instead of entrySet iterator (WMI_WRONG_MAP_ITERATOR)

+ + +

This method accesses the value of a Map entry, using a key that was retrieved from +a keySet iterator. It is more efficient to use an iterator on the entrySet of the map, to avoid the +Map.get(key) lookup.

+ + +

Dm: Hardcoded constant database password (DMI_CONSTANT_DB_PASSWORD)

+ + +

This code creates a database connect using a hardcoded, constant password. Anyone with access to either the source code or the compiled code can + easily learn the password. +

+ + + +

Dm: Empty database password (DMI_EMPTY_DB_PASSWORD)

+ + +

This code creates a database connect using a blank or empty password. This indicates that the database is not protected by a password. +

+ + + +

HRS: HTTP cookie formed from untrusted input (HRS_REQUEST_PARAMETER_TO_COOKIE)

+ + +

This code constructs an HTTP Cookie using an untrusted HTTP parameter. If this cookie is added to an HTTP response, it will allow a HTTP response splitting +vulnerability. See http://en.wikipedia.org/wiki/HTTP_response_splitting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of HTTP response splitting. +If FindBugs found any, you almost certainly have more +vulnerabilities that FindBugs doesn't report. If you are concerned about HTTP response splitting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + + +

HRS: HTTP Response splitting vulnerability (HRS_REQUEST_PARAMETER_TO_HTTP_HEADER)

+ + +

This code directly writes an HTTP parameter to an HTTP header, which allows for a HTTP response splitting +vulnerability. See http://en.wikipedia.org/wiki/HTTP_response_splitting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of HTTP response splitting. +If FindBugs found any, you almost certainly have more +vulnerabilities that FindBugs doesn't report. If you are concerned about HTTP response splitting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + + +

SQL: Nonconstant string passed to execute method on an SQL statement (SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE)

+ + +

The method invokes the execute method on an SQL statement with a String that seems +to be dynamically generated. Consider using +a prepared statement instead. It is more efficient and less vulnerable to +SQL injection attacks. +

+ + +

SQL: A prepared statement is generated from a nonconstant String (SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING)

+ + +

The code creates an SQL prepared statement from a nonconstant String. +If unchecked, tainted data from a user is used in building this String, SQL injection could +be used to make the prepared statement do something unexpected and undesirable. +

+ + +

XSS: JSP reflected cross site scripting vulnerability (XSS_REQUEST_PARAMETER_TO_JSP_WRITER)

+ + +

This code directly writes an HTTP parameter to JSP output, which allows for a cross site scripting +vulnerability. See http://en.wikipedia.org/wiki/Cross-site_scripting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of cross site scripting. +If FindBugs found any, you almost certainly have more cross site scripting +vulnerabilities that FindBugs doesn't report. If you are concerned about cross site scripting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + +

XSS: Servlet reflected cross site scripting vulnerability in error page (XSS_REQUEST_PARAMETER_TO_SEND_ERROR)

+ + +

This code directly writes an HTTP parameter to a Server error page (using HttpServletResponse.sendError). Echoing this untrusted input allows +for a reflected cross site scripting +vulnerability. See http://en.wikipedia.org/wiki/Cross-site_scripting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of cross site scripting. +If FindBugs found any, you almost certainly have more cross site scripting +vulnerabilities that FindBugs doesn't report. If you are concerned about cross site scripting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + + +

XSS: Servlet reflected cross site scripting vulnerability (XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER)

+ + +

This code directly writes an HTTP parameter to Servlet output, which allows for a reflected cross site scripting +vulnerability. See http://en.wikipedia.org/wiki/Cross-site_scripting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of cross site scripting. +If FindBugs found any, you almost certainly have more cross site scripting +vulnerabilities that FindBugs doesn't report. If you are concerned about cross site scripting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + + +

BC: Questionable cast to abstract collection (BC_BAD_CAST_TO_ABSTRACT_COLLECTION)

+ + +

+This code casts a Collection to an abstract collection +(such as List, Set, or Map). +Ensure that you are guaranteed that the object is of the type +you are casting to. If all you need is to be able +to iterate through a collection, you don't need to cast it to a Set or List. +

+ + +

BC: Questionable cast to concrete collection (BC_BAD_CAST_TO_CONCRETE_COLLECTION)

+ + +

+This code casts an abstract collection (such as a Collection, List, or Set) +to a specific concrete implementation (such as an ArrayList or HashSet). +This might not be correct, and it may make your code fragile, since +it makes it harder to switch to other concrete implementations at a future +point. Unless you have a particular reason to do so, just use the abstract +collection class. +

+ + +

BC: Unchecked/unconfirmed cast (BC_UNCONFIRMED_CAST)

+ + +

+This cast is unchecked, and not all instances of the type casted from can be cast to +the type it is being cast to. Ensure that your program logic ensures that this +cast will not fail. +

+ + +

BC: instanceof will always return true (BC_VACUOUS_INSTANCEOF)

+ + +

+This instanceof test will always return true (unless the value being tested is null). +Although this is safe, make sure it isn't +an indication of some misunderstanding or some other logic error. +If you really want to test the value for being null, perhaps it would be clearer to do +better to do a null test rather than an instanceof test. +

+ + +

BSHIFT: Unsigned right shift cast to short/byte (ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT)

+ + +

+The code performs an unsigned right shift, whose result is then +cast to a short or byte, which discards the upper bits of the result. +Since the upper bits are discarded, there may be no difference between +a signed and unsigned right shift (depending upon the size of the shift). +

+ + +

CI: Class is final but declares protected field (CI_CONFUSED_INHERITANCE)

+ + +

+ This class is declared to be final, but declares fields to be protected. Since the class + is final, it can not be derived from, and the use of protected is confusing. The access + modifier for the field should be changed to private or public to represent the true + use for the field. +

+ + +

DB: Method uses the same code for two branches (DB_DUPLICATE_BRANCHES)

+ + +

+ This method uses the same code to implement two branches of a conditional branch. + Check to ensure that this isn't a coding mistake. +

+ + +

DB: Method uses the same code for two switch clauses (DB_DUPLICATE_SWITCH_CLAUSES)

+ + +

+ This method uses the same code to implement two clauses of a switch statement. + This could be a case of duplicate code, but it might also indicate + a coding mistake. +

+ + +

DLS: Dead store to local variable (DLS_DEAD_LOCAL_STORE)

+ + +

+This instruction assigns a value to a local variable, +but the value is not read or used in any subsequent instruction. +Often, this indicates an error, because the value computed is never +used. +

+

+Note that Sun's javac compiler often generates dead stores for +final local variables. Because FindBugs is a bytecode-based tool, +there is no easy way to eliminate these false positives. +

+ + +

DLS: Useless assignment in return statement (DLS_DEAD_LOCAL_STORE_IN_RETURN)

+ + +

+This statement assigns to a local variable in a return statement. This assignment +has effect. Please verify that this statement does the right thing. +

+ + +

DLS: Dead store of null to local variable (DLS_DEAD_LOCAL_STORE_OF_NULL)

+ + +

The code stores null into a local variable, and the stored value is not +read. This store may have been introduced to assist the garbage collector, but +as of Java SE 6.0, this is no longer needed or useful. +

+ + +

DLS: Dead store to local variable that shadows field (DLS_DEAD_LOCAL_STORE_SHADOWS_FIELD)

+ + +

+This instruction assigns a value to a local variable, +but the value is not read or used in any subsequent instruction. +Often, this indicates an error, because the value computed is never +used. There is a field with the same name as the local variable. Did you +mean to assign to that variable instead? +

+ + +

DMI: Code contains a hard coded reference to an absolute pathname (DMI_HARDCODED_ABSOLUTE_FILENAME)

+ + +

This code constructs a File object using a hard coded to an absolute pathname +(e.g., new File("/home/dannyc/workspace/j2ee/src/share/com/sun/enterprise/deployment"); +

+ + +

DMI: Non serializable object written to ObjectOutput (DMI_NONSERIALIZABLE_OBJECT_WRITTEN)

+ + +

+This code seems to be passing a non-serializable object to the ObjectOutput.writeObject method. +If the object is, indeed, non-serializable, an error will result. +

+ + +

DMI: Invocation of substring(0), which returns the original value (DMI_USELESS_SUBSTRING)

+ + +

+This code invokes substring(0) on a String, which returns the original value. +

+ + +

Dm: Thread passed where Runnable expected (DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED)

+ + +

A Thread object is passed as a parameter to a method where +a Runnable is expected. This is rather unusual, and may indicate a logic error +or cause unexpected behavior. +

+ + +

Eq: Class doesn't override equals in superclass (EQ_DOESNT_OVERRIDE_EQUALS)

+ + +

This class extends a class that defines an equals method and adds fields, but doesn't +define an equals method itself. Thus, equality on instances of this class will +ignore the identity of the subclass and the added fields. Be sure this is what is intended, +and that you don't need to override the equals method. Even if you don't need to override +the equals method, consider overriding it anyway to document the fact +that the equals method for the subclass just return the result of +invoking super.equals(o). +

+ + +

Eq: Unusual equals method (EQ_UNUSUAL)

+ + +

This class doesn't do any of the patterns we recognize for checking that the type of the argument +is compatible with the type of the this object. There might not be anything wrong with +this code, but it is worth reviewing. +

+ + +

FE: Test for floating point equality (FE_FLOATING_POINT_EQUALITY)

+ + +

+ This operation compares two floating point values for equality. + Because floating point calculations may involve rounding, + calculated float and double values may not be accurate. + For values that must be precise, such as monetary values, + consider using a fixed-precision type such as BigDecimal. + For values that need not be precise, consider comparing for equality + within some range, for example: + if ( Math.abs(x - y) < .0000001 ). + See the Java Language Specification, section 4.2.4. +

+ + +

FS: Non-Boolean argument formatted using %b format specifier (VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN)

+ + +

+An argument not of type Boolean is being formatted with a %b format specifier. This won't throw an +exception; instead, it will print true for any nonnull value, and false for null. +This feature of format strings is strange, and may not be what you intended. +

+ + +

IA: Ambiguous invocation of either an inherited or outer method (IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD)

+ + +

An inner class is invoking a method that could be resolved to either a inherited method or a method defined in an outer class. By the Java semantics, +it will be resolved to invoke the inherited method, but this may not be want +you intend. If you really intend to invoke the inherited method, +invoke it by invoking the method on super (e.g., invoke super.foo(17)), and +thus it will be clear to other readers of your code and to FindBugs +that you want to invoke the inherited method, not the method in the outer class. +

+ + +

IC: Initialization circularity (IC_INIT_CIRCULARITY)

+ + +

A circularity was detected in the static initializers of the two + classes referenced by the bug instance.  Many kinds of unexpected + behavior may arise from such circularity.

+ + +

ICAST: integral division result cast to double or float (ICAST_IDIV_CAST_TO_DOUBLE)

+ + +

+This code casts the result of an integral division (e.g., int or long division) +operation to double or +float. +Doing division on integers truncates the result +to the integer value closest to zero. The fact that the result +was cast to double suggests that this precision should have been retained. +What was probably meant was to cast one or both of the operands to +double before performing the division. Here is an example: +

+
+
+int x = 2;
+int y = 5;
+// Wrong: yields result 0.0
+double value1 =  x / y;
+
+// Right: yields result 0.4
+double value2 =  x / (double) y;
+
+
+ + +

ICAST: Result of integer multiplication cast to long (ICAST_INTEGER_MULTIPLY_CAST_TO_LONG)

+ + +

+This code performs integer multiply and then converts the result to a long, +as in: + +

+    long convertDaysToMilliseconds(int days) { return 1000*3600*24*days; }
+
+If the multiplication is done using long arithmetic, you can avoid +the possibility that the result will overflow. For example, you +could fix the above code to: + +
+    long convertDaysToMilliseconds(int days) { return 1000L*3600*24*days; }
+
+or + +
+    static final long MILLISECONDS_PER_DAY = 24L*3600*1000;
+    long convertDaysToMilliseconds(int days) { return days * MILLISECONDS_PER_DAY; }
+
+

+ + + +

IM: Computation of average could overflow (IM_AVERAGE_COMPUTATION_COULD_OVERFLOW)

+ + +

The code computes the average of two integers using either division or signed right shift, +and then uses the result as the index of an array. +If the values being averaged are very large, this can overflow (resulting in the computation +of a negative average). Assuming that the result is intended to be nonnegative, you +can use an unsigned right shift instead. In other words, rather that using (low+high)/2, +use (low+high) >>> 1 +

+

This bug exists in many earlier implementations of binary search and merge sort. +Martin Buchholz found and fixed it +in the JDK libraries, and Joshua Bloch +widely +publicized the bug pattern. +

+ + +

IM: Check for oddness that won't work for negative numbers (IM_BAD_CHECK_FOR_ODD)

+ + +

+The code uses x % 2 == 1 to check to see if a value is odd, but this won't work +for negative numbers (e.g., (-5) % 2 == -1). If this code is intending to check +for oddness, consider using x & 1 == 1, or x % 2 != 0. +

+ + +

INT: Integer remainder modulo 1 (INT_BAD_REM_BY_1)

+ + +

Any expression (exp % 1) is guaranteed to always return zero. +Did you mean (exp & 1) or (exp % 2) instead? +

+ + +

INT: Vacuous bit mask operation on integer value (INT_VACUOUS_BIT_OPERATION)

+ + +

This is an integer bit operation (and, or, or exclusive or) that doesn't do any useful work +(e.g., v & 0xffffffff). + +

+ + +

INT: Vacuous comparison of integer value (INT_VACUOUS_COMPARISON)

+ + +

There is an integer comparison that always returns +the same value (e.g., x <= Integer.MAX_VALUE). +

+ + +

MTIA: Class extends Servlet class and uses instance variables (MTIA_SUSPECT_SERVLET_INSTANCE_FIELD)

+ + +

+ This class extends from a Servlet class, and uses an instance member variable. Since only + one instance of a Servlet class is created by the J2EE framework, and used in a + multithreaded way, this paradigm is highly discouraged and most likely problematic. Consider + only using method local variables. +

+ + +

MTIA: Class extends Struts Action class and uses instance variables (MTIA_SUSPECT_STRUTS_INSTANCE_FIELD)

+ + +

+ This class extends from a Struts Action class, and uses an instance member variable. Since only + one instance of a struts Action class is created by the Struts framework, and used in a + multithreaded way, this paradigm is highly discouraged and most likely problematic. Consider + only using method local variables. Only instance fields that are written outside of a monitor + are reported. +

+ + +

NP: Dereference of the result of readLine() without nullcheck (NP_DEREFERENCE_OF_READLINE_VALUE)

+ + +

The result of invoking readLine() is dereferenced without checking to see if the result is null. If there are no more lines of text +to read, readLine() will return null and dereferencing that will generate a null pointer exception. +

+ + +

NP: Immediate dereference of the result of readLine() (NP_IMMEDIATE_DEREFERENCE_OF_READLINE)

+ + +

The result of invoking readLine() is immediately dereferenced. If there are no more lines of text +to read, readLine() will return null and dereferencing that will generate a null pointer exception. +

+ + +

NP: Load of known null value (NP_LOAD_OF_KNOWN_NULL_VALUE)

+ + +

The variable referenced at this point is known to be null due to an earlier + check against null. Although this is valid, it might be a mistake (perhaps you +intended to refer to a different variable, or perhaps the earlier check to see if the +variable is null should have been a check to see if it was nonnull). +

+ + +

NP: Possible null pointer dereference due to return value of called method (NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE)

+ + +

The return value from a method is dereferenced without a null check, +and the return value of that method is one that should generally be checked +for null. This may lead to a NullPointerException when the code is executed. +

+ + +

NP: Possible null pointer dereference on branch that might be infeasible (NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE)

+ + +

There is a branch of statement that, if executed, guarantees that +a null value will be dereferenced, which +would generate a NullPointerException when the code is executed. +Of course, the problem might be that the branch or statement is infeasible and that +the null pointer exception can't ever be executed; deciding that is beyond the ability of FindBugs. +Due to the fact that this value had been previously tested for nullness, +this is a definite possibility. +

+ + +

NP: Parameter must be nonnull but is marked as nullable (NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE)

+ + +

This parameter is always used in a way that requires it to be nonnull, +but the parameter is explicitly annotated as being Nullable. Either the use +of the parameter or the annotation is wrong. +

+ + +

NP: Read of unwritten public or protected field (NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD)

+ + +

The program is dereferencing a public or protected +field that does not seem to ever have a non-null value written to it. +Unless the field is initialized via some mechanism not seen by the analysis, +dereferencing this value will generate a null pointer exception. +

+ + +

NS: Potentially dangerous use of non-short-circuit logic (NS_DANGEROUS_NON_SHORT_CIRCUIT)

+ + +

This code seems to be using non-short-circuit logic (e.g., & +or |) +rather than short-circuit logic (&& or ||). In addition, +it seem possible that, depending on the value of the left hand side, you might not +want to evaluate the right hand side (because it would have side effects, could cause an exception +or could be expensive.

+

+Non-short-circuit logic causes both sides of the expression +to be evaluated even when the result can be inferred from +knowing the left-hand side. This can be less efficient and +can result in errors if the left-hand side guards cases +when evaluating the right-hand side can generate an error. +

+ +

See the Java +Language Specification for details + +

+ + +

NS: Questionable use of non-short-circuit logic (NS_NON_SHORT_CIRCUIT)

+ + +

This code seems to be using non-short-circuit logic (e.g., & +or |) +rather than short-circuit logic (&& or ||). +Non-short-circuit logic causes both sides of the expression +to be evaluated even when the result can be inferred from +knowing the left-hand side. This can be less efficient and +can result in errors if the left-hand side guards cases +when evaluating the right-hand side can generate an error. + +

See the Java +Language Specification for details + +

+ + +

PZLA: Consider returning a zero length array rather than null (PZLA_PREFER_ZERO_LENGTH_ARRAYS)

+ + +

It is often a better design to +return a length zero array rather than a null reference to indicate that there +are no results (i.e., an empty list of results). +This way, no explicit check for null is needed by clients of the method.

+ +

On the other hand, using null to indicate +"there is no answer to this question" is probably appropriate. +For example, File.listFiles() returns an empty list +if given a directory containing no files, and returns null if the file +is not a directory.

+ + +

QF: Complicated, subtle or wrong increment in for-loop (QF_QUESTIONABLE_FOR_LOOP)

+ + +

Are you sure this for loop is incrementing the correct variable? + It appears that another variable is being initialized and checked + by the for loop. +

+ + +

RCN: Redundant comparison of non-null value to null (RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE)

+ + +

This method contains a reference known to be non-null with another reference +known to be null.

+ + +

RCN: Redundant comparison of two null values (RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES)

+ + +

This method contains a redundant comparison of two references known to +both be definitely null.

+ + +

RCN: Redundant nullcheck of value known to be non-null (RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE)

+ + +

This method contains a redundant check of a known non-null value against +the constant null.

+ + +

RCN: Redundant nullcheck of value known to be null (RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE)

+ + +

This method contains a redundant check of a known null value against +the constant null.

+ + +

REC: Exception is caught when Exception is not thrown (REC_CATCH_EXCEPTION)

+ + +

+ This method uses a try-catch block that catches Exception objects, but Exception is not + thrown within the try block, and RuntimeException is not explicitly caught. It is a common bug pattern to + say try { ... } catch (Exception e) { something } as a shorthand for catching a number of types of exception + each of whose catch blocks is identical, but this construct also accidentally catches RuntimeException as well, + masking potential bugs. +

+ + +

RI: Class implements same interface as superclass (RI_REDUNDANT_INTERFACES)

+ + +

+ This class declares that it implements an interface that is also implemented by a superclass. + This is redundant because once a superclass implements an interface, all subclasses by default also + implement this interface. It may point out that the inheritance hierarchy has changed since + this class was created, and consideration should be given to the ownership of + the interface's implementation. +

+ + +

RV: Method checks to see if result of String.indexOf is positive (RV_CHECK_FOR_POSITIVE_INDEXOF)

+ + +

The method invokes String.indexOf and checks to see if the result is positive or non-positive. + It is much more typical to check to see if the result is negative or non-negative. It is + positive only if the substring checked for occurs at some place other than at the beginning of + the String.

+ + +

RV: Method discards result of readLine after checking if it is nonnull (RV_DONT_JUST_NULL_CHECK_READLINE)

+ + +

The value returned by readLine is discarded after checking to see if the return +value is non-null. In almost all situations, if the result is non-null, you will want +to use that non-null value. Calling readLine again will give you a different line.

+ + +

RV: Remainder of hashCode could be negative (RV_REM_OF_HASHCODE)

+ + +

This code computes a hashCode, and then computes +the remainder of that value modulo another value. Since the hashCode +can be negative, the result of the remainder operation +can also be negative.

+

Assuming you want to ensure that the result of your computation is nonnegative, +you may need to change your code. +If you know the divisor is a power of 2, +you can use a bitwise and operator instead (i.e., instead of +using x.hashCode()%n, use x.hashCode()&(n-1). +This is probably faster than computing the remainder as well. +If you don't know that the divisor is a power of 2, take the absolute +value of the result of the remainder operation (i.e., use +Math.abs(x.hashCode()%n) +

+ + +

RV: Remainder of 32-bit signed random integer (RV_REM_OF_RANDOM_INT)

+ + +

This code generates a random signed integer and then computes +the remainder of that value modulo another value. Since the random +number can be negative, the result of the remainder operation +can also be negative. Be sure this is intended, and strongly +consider using the Random.nextInt(int) method instead. +

+ + +

RV: Method ignores return value, is this OK? (RV_RETURN_VALUE_IGNORED_INFERRED)

+ + +

This code calls a method and ignores the return value. The return value +is the same type as the type the method is invoked on, and from our analysis it looks +like the return value might be important (e.g., like ignoring the +return value of String.toLowerCase()). +

+

We are guessing that ignoring the return value might be a bad idea just from +a simple analysis of the body of the method. You can use a @CheckReturnValue annotation +to instruct FindBugs as to whether ignoring the return value of this method +is important or acceptable. +

+

Please investigate this closely to decide whether it is OK to ignore the return value. +

+ + +

SA: Double assignment of field (SA_FIELD_DOUBLE_ASSIGNMENT)

+ + +

This method contains a double assignment of a field; e.g. +

+
+  int x,y;
+  public void foo() {
+    x = x = 17;
+  }
+
+

Assigning to a field twice is useless, and may indicate a logic error or typo.

+ + +

SA: Double assignment of local variable (SA_LOCAL_DOUBLE_ASSIGNMENT)

+ + +

This method contains a double assignment of a local variable; e.g. +

+
+  public void foo() {
+    int x,y;
+    x = x = 17;
+  }
+
+

Assigning the same value to a variable twice is useless, and may indicate a logic error or typo.

+ + +

SA: Self assignment of local variable (SA_LOCAL_SELF_ASSIGNMENT)

+ + +

This method contains a self assignment of a local variable; e.g.

+
+  public void foo() {
+    int x = 3;
+    x = x;
+  }
+
+

+Such assignments are useless, and may indicate a logic error or typo. +

+ + +

SF: Switch statement found where one case falls through to the next case (SF_SWITCH_FALLTHROUGH)

+ + +

This method contains a switch statement where one case branch will fall through to the next case. + Usually you need to end this case with a break or return.

+ + +

SF: Switch statement found where default case is missing (SF_SWITCH_NO_DEFAULT)

+ + +

This method contains a switch statement where default case is missing. + Usually you need to provide a default case.

+ + +

ST: Write to static field from instance method (ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD)

+ + +

This instance method writes to a static field. This is tricky to get +correct if multiple instances are being manipulated, +and generally bad practice. +

+ + +

Se: private readResolve method not inherited by subclasses (SE_PRIVATE_READ_RESOLVE_NOT_INHERITED)

+ + +

This class defines a private readResolve method. Since it is private, it won't be inherited by subclasses. +This might be intentional and OK, but should be reviewed to ensure it is what is intended. +

+ + +

Se: Transient field of class that isn't Serializable. (SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS)

+ + +

The field is marked as transient, but the class isn't Serializable, so marking it as transient +has absolutely no effect. +This may be leftover marking from a previous version of the code in which the class was transient, or +it may indicate a misunderstanding of how serialization works. +

+ + +

TQ: Value required to have type qualifier, but marked as unknown (TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK)

+ + +

+ A value is used in a way that requires it to be always be a value denoted by a type qualifier, but + there is an explicit annotation stating that it is not known where the value is required to have that type qualifier. + Either the usage or the annotation is incorrect. +

+ + +

TQ: Value required to not have type qualifier, but marked as unknown (TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK)

+ + +

+ A value is used in a way that requires it to be never be a value denoted by a type qualifier, but + there is an explicit annotation stating that it is not known where the value is prohibited from having that type qualifier. + Either the usage or the annotation is incorrect. +

+ + +

UCF: Useless control flow (UCF_USELESS_CONTROL_FLOW)

+ + +

This method contains a useless control flow statement, where +control flow continues onto the same place regardless of whether or not +the branch is taken. For example, +this is caused by having an empty statement +block for an if statement:

+
+    if (argv.length == 0) {
+    // TODO: handle this case
+    }
+
+ + +

UCF: Useless control flow to next line (UCF_USELESS_CONTROL_FLOW_NEXT_LINE)

+ + +

This method contains a useless control flow statement in which control +flow follows to the same or following line regardless of whether or not +the branch is taken. +Often, this is caused by inadvertently using an empty statement as the +body of an if statement, e.g.:

+
+    if (argv.length == 1);
+        System.out.println("Hello, " + argv[0]);
+
+ + +

UrF: Unread public/protected field (URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD)

+ + +

This field is never read.  +The field is public or protected, so perhaps + it is intended to be used with classes not seen as part of the analysis. If not, +consider removing it from the class.

+ + +

UuF: Unused public or protected field (UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD)

+ + +

This field is never used.  +The field is public or protected, so perhaps + it is intended to be used with classes not seen as part of the analysis. If not, +consider removing it from the class.

+ + +

UwF: Field not initialized in constructor but dereferenced without null check (UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR)

+ + +

This field is never initialized within any constructor, and is therefore could be null after +the object is constructed. Elsewhere, it is loaded and dereferenced without a null check. +This could be a either an error or a questionable design, since +it means a null pointer exception will be generated if that field is dereferenced +before being initialized. +

+ + +

UwF: Unwritten public or protected field (UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD)

+ + +

No writes were seen to this public/protected field.  All reads of it will return the default +value. Check for errors (should it have been initialized?), or remove it if it is useless.

+ + +

XFB: Method directly allocates a specific implementation of xml interfaces (XFB_XML_FACTORY_BYPASS)

+ + +

+ This method allocates a specific implementation of an xml interface. It is preferable to use + the supplied factory classes to create these objects so that the implementation can be + changed at runtime. See +

+
    +
  • javax.xml.parsers.DocumentBuilderFactory
  • +
  • javax.xml.parsers.SAXParserFactory
  • +
  • javax.xml.transform.TransformerFactory
  • +
  • org.w3c.dom.Document.createXXXX
  • +
+

for details.

+ + + + +

+ +

Send comments to findbugs@cs.umd.edu +

+SourceForge.net Logo +

+ diff --git a/findbugs/findbugs-2.0.0/doc/bug-logo.png b/findbugs/findbugs-2.0.0/doc/bug-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8d719d081a13fb12fcb3495a6e5722cebcbfe759 GIT binary patch literal 3887 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 PZ6OnkrQs_B_xS$-6#`X; literal 0 HcmV?d00001 diff --git a/findbugs/findbugs-2.0.0/doc/bugDescriptions.html b/findbugs/findbugs-2.0.0/doc/bugDescriptions.html new file mode 100644 index 0000000..6b2e3da --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/bugDescriptions.html @@ -0,0 +1,5182 @@ +FindBugs Bug Descriptions + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+

FindBugs Bug Descriptions

+

This document lists the standard bug patterns reported by +FindBugs version 2.0.0.

+

Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DescriptionCategory
AM: Creates an empty jar file entryBad practice
AM: Creates an empty zip file entryBad practice
BC: Equals method should not assume anything about the type of its argumentBad practice
BIT: Check for sign of bitwise operationBad practice
CN: Class implements Cloneable but does not define or use clone methodBad practice
CN: clone method does not call super.clone()Bad practice
CN: Class defines clone() but doesn't implement CloneableBad practice
Co: Abstract class defines covariant compareTo() methodBad practice
Co: Covariant compareTo() method definedBad practice
DE: Method might drop exceptionBad practice
DE: Method might ignore exceptionBad practice
DMI: Adding elements of an entry set may fail due to reuse of Entry objectsBad practice
DMI: Random object created and used only onceBad practice
DMI: Don't use removeAll to clear a collectionBad practice
Dm: Method invokes System.exit(...)Bad practice
Dm: Method invokes dangerous method runFinalizersOnExitBad practice
ES: Comparison of String parameter using == or !=Bad practice
ES: Comparison of String objects using == or !=Bad practice
Eq: Abstract class defines covariant equals() methodBad practice
Eq: Equals checks for incompatible operandBad practice
Eq: Class defines compareTo(...) and uses Object.equals()Bad practice
Eq: equals method fails for subtypesBad practice
Eq: Covariant equals() method definedBad practice
FI: Empty finalizer should be deletedBad practice
FI: Explicit invocation of finalizerBad practice
FI: Finalizer nulls fieldsBad practice
FI: Finalizer only nulls fieldsBad practice
FI: Finalizer does not call superclass finalizerBad practice
FI: Finalizer nullifies superclass finalizerBad practice
FI: Finalizer does nothing but call superclass finalizerBad practice
FS: Format string should use %n rather than \nBad practice
GC: Unchecked type in generic callBad practice
HE: Class defines equals() but not hashCode()Bad practice
HE: Class defines equals() and uses Object.hashCode()Bad practice
HE: Class defines hashCode() but not equals()Bad practice
HE: Class defines hashCode() and uses Object.equals()Bad practice
HE: Class inherits equals() and uses Object.hashCode()Bad practice
IC: Superclass uses subclass during initializationBad practice
IMSE: Dubious catching of IllegalMonitorStateExceptionBad practice
ISC: Needless instantiation of class that only supplies static methodsBad practice
It: Iterator next() method can't throw NoSuchElementExceptionBad practice
J2EE: Store of non serializable object into HttpSessionBad practice
JCIP: Fields of immutable classes should be finalBad practice
NP: Method with Boolean return type returns explicit nullBad practice
NP: Clone method may return nullBad practice
NP: equals() method does not check for null argumentBad practice
NP: toString method may return nullBad practice
Nm: Class names should start with an upper case letterBad practice
Nm: Class is not derived from an Exception, even though it is named as suchBad practice
Nm: Confusing method namesBad practice
Nm: Field names should start with a lower case letterBad practice
Nm: Use of identifier that is a keyword in later versions of JavaBad practice
Nm: Use of identifier that is a keyword in later versions of JavaBad practice
Nm: Method names should start with a lower case letterBad practice
Nm: Class names shouldn't shadow simple name of implemented interfaceBad practice
Nm: Class names shouldn't shadow simple name of superclassBad practice
Nm: Very confusing method names (but perhaps intentional)Bad practice
Nm: Method doesn't override method in superclass due to wrong package for parameterBad practice
ODR: Method may fail to close database resourceBad practice
ODR: Method may fail to close database resource on exceptionBad practice
OS: Method may fail to close streamBad practice
OS: Method may fail to close stream on exceptionBad practice
PZ: Don't reuse entry objects in iteratorsBad practice
RC: Suspicious reference comparison to constantBad practice
RC: Suspicious reference comparison of Boolean valuesBad practice
RR: Method ignores results of InputStream.read()Bad practice
RR: Method ignores results of InputStream.skip()Bad practice
RV: Negating the result of compareTo()/compare()Bad practice
RV: Method ignores exceptional return valueBad practice
SI: Static initializer creates instance before all static final fields assignedBad practice
SW: Certain swing methods needs to be invoked in Swing threadBad practice
Se: Non-transient non-serializable instance field in serializable classBad practice
Se: Non-serializable class has a serializable inner classBad practice
Se: Non-serializable value stored into instance field of a serializable classBad practice
Se: Comparator doesn't implement SerializableBad practice
Se: Serializable inner classBad practice
Se: serialVersionUID isn't finalBad practice
Se: serialVersionUID isn't longBad practice
Se: serialVersionUID isn't staticBad practice
Se: Class is Serializable but its superclass doesn't define a void constructorBad practice
Se: Class is Externalizable but doesn't define a void constructorBad practice
Se: The readResolve method must be declared with a return type of Object. Bad practice
Se: Transient field that isn't set by deserialization. Bad practice
SnVI: Class is Serializable, but doesn't define serialVersionUIDBad practice
UI: Usage of GetResource may be unsafe if class is extendedBad practice
BC: Impossible castCorrectness
BC: Impossible downcastCorrectness
BC: Impossible downcast of toArray() resultCorrectness
BC: instanceof will always return falseCorrectness
BIT: Bitwise add of signed byte valueCorrectness
BIT: Incompatible bit masksCorrectness
BIT: Check to see if ((...) & 0) == 0Correctness
BIT: Incompatible bit masksCorrectness
BIT: Bitwise OR of signed byte valueCorrectness
BIT: Check for sign of bitwise operationCorrectness
BOA: Class overrides a method implemented in super class Adapter wronglyCorrectness
BSHIFT: 32 bit int shifted by an amount not in the range 0..31Correctness
Bx: Primitive value is unboxed and coerced for ternary operatorCorrectness
Co: compareTo()/compare() returns Integer.MIN_VALUECorrectness
DLS: Dead store of class literalCorrectness
DLS: Overwritten incrementCorrectness
DMI: Reversed method argumentsCorrectness
DMI: Bad constant value for monthCorrectness
DMI: BigDecimal constructed from double that isn't represented preciselyCorrectness
DMI: hasNext method invokes nextCorrectness
DMI: Collections should not contain themselvesCorrectness
DMI: D'oh! A nonsensical method invocationCorrectness
DMI: Invocation of hashCode on an arrayCorrectness
DMI: Double.longBitsToDouble invoked on an intCorrectness
DMI: Vacuous call to collectionsCorrectness
Dm: Can't use reflection to check for presence of annotation without runtime retentionCorrectness
Dm: Futile attempt to change max pool size of ScheduledThreadPoolExecutorCorrectness
Dm: Creation of ScheduledThreadPoolExecutor with zero core threadsCorrectness
Dm: Useless/vacuous call to EasyMock methodCorrectness
EC: equals() used to compare array and nonarrayCorrectness
EC: Invocation of equals() on an array, which is equivalent to ==Correctness
EC: equals(...) used to compare incompatible arraysCorrectness
EC: Call to equals(null)Correctness
EC: Call to equals() comparing unrelated class and interfaceCorrectness
EC: Call to equals() comparing different interface typesCorrectness
EC: Call to equals() comparing different typesCorrectness
EC: Using pointer equality to compare different typesCorrectness
Eq: equals method always returns falseCorrectness
Eq: equals method always returns trueCorrectness
Eq: equals method compares class names rather than class objectsCorrectness
Eq: Covariant equals() method defined for enumCorrectness
Eq: equals() method defined that doesn't override equals(Object)Correctness
Eq: equals() method defined that doesn't override Object.equals(Object)Correctness
Eq: equals method overrides equals in superclass and may not be symmetricCorrectness
Eq: Covariant equals() method defined, Object.equals(Object) inheritedCorrectness
FE: Doomed test for equality to NaNCorrectness
FS: Format string placeholder incompatible with passed argumentCorrectness
FS: The type of a supplied argument doesn't match format specifierCorrectness
FS: MessageFormat supplied where printf style format expectedCorrectness
FS: More arguments are passed than are actually used in the format stringCorrectness
FS: Illegal format stringCorrectness
FS: Format string references missing argumentCorrectness
FS: No previous argument for format stringCorrectness
GC: No relationship between generic parameter and method argumentCorrectness
HE: Signature declares use of unhashable class in hashed constructCorrectness
HE: Use of class without a hashCode() method in a hashed data structureCorrectness
ICAST: int value converted to long and used as absolute timeCorrectness
ICAST: integral value cast to double and then passed to Math.ceilCorrectness
ICAST: int value cast to float and then passed to Math.roundCorrectness
IJU: JUnit assertion in run method will not be noticed by JUnitCorrectness
IJU: TestCase declares a bad suite method Correctness
IJU: TestCase has no testsCorrectness
IJU: TestCase defines setUp that doesn't call super.setUp()Correctness
IJU: TestCase implements a non-static suite method Correctness
IJU: TestCase defines tearDown that doesn't call super.tearDown()Correctness
IL: A collection is added to itselfCorrectness
IL: An apparent infinite loopCorrectness
IL: An apparent infinite recursive loopCorrectness
IM: Integer multiply of result of integer remainderCorrectness
INT: Bad comparison of int value with long constantCorrectness
INT: Bad comparison of nonnegative value with negative constantCorrectness
INT: Bad comparison of signed byteCorrectness
IO: Doomed attempt to append to an object output streamCorrectness
IP: A parameter is dead upon entry to a method but overwrittenCorrectness
MF: Class defines field that masks a superclass fieldCorrectness
MF: Method defines a variable that obscures a fieldCorrectness
NP: Null pointer dereferenceCorrectness
NP: Null pointer dereference in method on exception pathCorrectness
NP: Method does not check for null argumentCorrectness
NP: close() invoked on a value that is always nullCorrectness
NP: Null value is guaranteed to be dereferencedCorrectness
NP: Value is null and guaranteed to be dereferenced on exception pathCorrectness
NP: Method call passes null to a nonnull parameter Correctness
NP: Method may return null, but is declared @NonNullCorrectness
NP: A known null value is checked to see if it is an instance of a typeCorrectness
NP: Possible null pointer dereferenceCorrectness
NP: Possible null pointer dereference in method on exception pathCorrectness
NP: Method call passes null for nonnull parameterCorrectness
NP: Method call passes null for nonnull parameterCorrectness
NP: Non-virtual method call passes null for nonnull parameterCorrectness
NP: Store of null value into field annotated NonNullCorrectness
NP: Read of unwritten fieldCorrectness
Nm: Class defines equal(Object); should it be equals(Object)?Correctness
Nm: Class defines hashcode(); should it be hashCode()?Correctness
Nm: Class defines tostring(); should it be toString()?Correctness
Nm: Apparent method/constructor confusionCorrectness
Nm: Very confusing method namesCorrectness
Nm: Method doesn't override method in superclass due to wrong package for parameterCorrectness
QBA: Method assigns boolean literal in boolean expressionCorrectness
RC: Suspicious reference comparisonCorrectness
RCN: Nullcheck of value previously dereferencedCorrectness
RE: Invalid syntax for regular expressionCorrectness
RE: File.separator used for regular expressionCorrectness
RE: "." used for regular expressionCorrectness
RV: Random value from 0 to 1 is coerced to the integer 0Correctness
RV: Bad attempt to compute absolute value of signed 32-bit hashcode Correctness
RV: Bad attempt to compute absolute value of signed random integerCorrectness
RV: Code checks for specific values returned by compareToCorrectness
RV: Exception created and dropped rather than thrownCorrectness
RV: Method ignores return valueCorrectness
RpC: Repeated conditional testsCorrectness
SA: Self assignment of fieldCorrectness
SA: Self comparison of field with itselfCorrectness
SA: Nonsensical self computation involving a field (e.g., x & x)Correctness
SA: Self assignment of local rather than assignment to fieldCorrectness
SA: Self comparison of value with itselfCorrectness
SA: Nonsensical self computation involving a variable (e.g., x & x)Correctness
SF: Dead store due to switch statement fall throughCorrectness
SF: Dead store due to switch statement fall through to throwCorrectness
SIC: Deadly embrace of non-static inner class and thread localCorrectness
SIO: Unnecessary type check done using instanceof operatorCorrectness
SQL: Method attempts to access a prepared statement parameter with index 0Correctness
SQL: Method attempts to access a result set field with index 0Correctness
STI: Unneeded use of currentThread() call, to call interrupted() Correctness
STI: Static Thread.interrupted() method invoked on thread instanceCorrectness
Se: Method must be private in order for serialization to workCorrectness
Se: The readResolve method must not be declared as a static method. Correctness
TQ: Value annotated as carrying a type qualifier used where a value that must not carry that qualifier is requiredCorrectness
TQ: Value that might not carry a type qualifier is always used in a way requires that type qualifierCorrectness
TQ: Value that might carry a type qualifier is always used in a way prohibits it from having that type qualifierCorrectness
TQ: Value annotated as never carrying a type qualifier used where value carrying that qualifier is requiredCorrectness
UMAC: Uncallable method defined in anonymous classCorrectness
UR: Uninitialized read of field in constructorCorrectness
UR: Uninitialized read of field method called from constructor of superclassCorrectness
USELESS_STRING: Invocation of toString on an arrayCorrectness
USELESS_STRING: Invocation of toString on an arrayCorrectness
USELESS_STRING: Array formatted in useless way using format stringCorrectness
UwF: Field only ever set to nullCorrectness
UwF: Unwritten fieldCorrectness
VA: Primitive array passed to function expecting a variable number of object argumentsCorrectness
LG: Potential lost logger changes due to weak reference in OpenJDKExperimental
OBL: Method may fail to clean up stream or resourceExperimental
OBL: Method may fail to clean up stream or resource on checked exceptionExperimental
Dm: Consider using Locale parameterized version of invoked methodInternationalization
Dm: Reliance on default encodingInternationalization
DP: Classloaders should only be created inside doPrivileged blockMalicious code vulnerability
DP: Method invoked that should be only be invoked inside a doPrivileged blockMalicious code vulnerability
EI: May expose internal representation by returning reference to mutable objectMalicious code vulnerability
EI2: May expose internal representation by incorporating reference to mutable objectMalicious code vulnerability
FI: Finalizer should be protected, not publicMalicious code vulnerability
MS: May expose internal static state by storing a mutable object into a static fieldMalicious code vulnerability
MS: Field isn't final and can't be protected from malicious codeMalicious code vulnerability
MS: Public static method may expose internal representation by returning arrayMalicious code vulnerability
MS: Field should be both final and package protectedMalicious code vulnerability
MS: Field is a mutable arrayMalicious code vulnerability
MS: Field is a mutable HashtableMalicious code vulnerability
MS: Field should be moved out of an interface and made package protectedMalicious code vulnerability
MS: Field should be package protectedMalicious code vulnerability
MS: Field isn't final but should beMalicious code vulnerability
AT: Sequence of calls to concurrent abstraction may not be atomicMultithreaded correctness
DC: Possible double check of fieldMultithreaded correctness
DL: Synchronization on BooleanMultithreaded correctness
DL: Synchronization on boxed primitiveMultithreaded correctness
DL: Synchronization on interned String Multithreaded correctness
DL: Synchronization on boxed primitive valuesMultithreaded correctness
Dm: Monitor wait() called on ConditionMultithreaded correctness
Dm: A thread was created using the default empty run methodMultithreaded correctness
ESync: Empty synchronized blockMultithreaded correctness
IS: Inconsistent synchronizationMultithreaded correctness
IS: Field not guarded against concurrent accessMultithreaded correctness
JLM: Synchronization performed on LockMultithreaded correctness
JLM: Synchronization performed on util.concurrent instanceMultithreaded correctness
JLM: Using monitor style wait methods on util.concurrent abstractionMultithreaded correctness
LI: Incorrect lazy initialization of static fieldMultithreaded correctness
LI: Incorrect lazy initialization and update of static fieldMultithreaded correctness
ML: Synchronization on field in futile attempt to guard that fieldMultithreaded correctness
ML: Method synchronizes on an updated fieldMultithreaded correctness
MSF: Mutable servlet fieldMultithreaded correctness
MWN: Mismatched notify()Multithreaded correctness
MWN: Mismatched wait()Multithreaded correctness
NN: Naked notifyMultithreaded correctness
NP: Synchronize and null check on the same field.Multithreaded correctness
No: Using notify() rather than notifyAll()Multithreaded correctness
RS: Class's readObject() method is synchronizedMultithreaded correctness
RV: Return value of putIfAbsent ignored, value passed to putIfAbsent reusedMultithreaded correctness
Ru: Invokes run on a thread (did you mean to start it instead?)Multithreaded correctness
SC: Constructor invokes Thread.start()Multithreaded correctness
SP: Method spins on fieldMultithreaded correctness
STCAL: Call to static CalendarMultithreaded correctness
STCAL: Call to static DateFormatMultithreaded correctness
STCAL: Static Calendar fieldMultithreaded correctness
STCAL: Static DateFormatMultithreaded correctness
SWL: Method calls Thread.sleep() with a lock heldMultithreaded correctness
TLW: Wait with two locks heldMultithreaded correctness
UG: Unsynchronized get method, synchronized set methodMultithreaded correctness
UL: Method does not release lock on all pathsMultithreaded correctness
UL: Method does not release lock on all exception pathsMultithreaded correctness
UW: Unconditional waitMultithreaded correctness
VO: An increment to a volatile field isn't atomicMultithreaded correctness
VO: A volatile reference to an array doesn't treat the array elements as volatileMultithreaded correctness
WL: Synchronization on getClass rather than class literalMultithreaded correctness
WS: Class's writeObject() method is synchronized but nothing else isMultithreaded correctness
Wa: Condition.await() not in loop Multithreaded correctness
Wa: Wait not in loop Multithreaded correctness
Bx: Primitive value is boxed and then immediately unboxedPerformance
Bx: Primitive value is boxed then unboxed to perform primitive coercionPerformance
Bx: Boxed value is unboxed and then immediately reboxedPerformance
Bx: Method allocates a boxed primitive just to call toStringPerformance
Bx: Method invokes inefficient floating-point Number constructor; use static valueOf insteadPerformance
Bx: Method invokes inefficient Number constructor; use static valueOf insteadPerformance
Dm: The equals and hashCode methods of URL are blockingPerformance
Dm: Maps and sets of URLs can be performance hogsPerformance
Dm: Method invokes inefficient Boolean constructor; use Boolean.valueOf(...) insteadPerformance
Dm: Explicit garbage collection; extremely dubious except in benchmarking codePerformance
Dm: Method allocates an object, only to get the class objectPerformance
Dm: Use the nextInt method of Random rather than nextDouble to generate a random integerPerformance
Dm: Method invokes inefficient new String(String) constructorPerformance
Dm: Method invokes toString() method on a StringPerformance
Dm: Method invokes inefficient new String() constructorPerformance
HSC: Huge string constants is duplicated across multiple class filesPerformance
ITA: Method uses toArray() with zero-length array argumentPerformance
SBSC: Method concatenates strings using + in a loopPerformance
SIC: Should be a static inner classPerformance
SIC: Could be refactored into a named static inner classPerformance
SIC: Could be refactored into a static inner classPerformance
SS: Unread field: should this field be static?Performance
UM: Method calls static Math class method on a constant valuePerformance
UPM: Private method is never calledPerformance
UrF: Unread fieldPerformance
UuF: Unused fieldPerformance
WMI: Inefficient use of keySet iterator instead of entrySet iteratorPerformance
Dm: Hardcoded constant database passwordSecurity
Dm: Empty database passwordSecurity
HRS: HTTP cookie formed from untrusted inputSecurity
HRS: HTTP Response splitting vulnerabilitySecurity
SQL: Nonconstant string passed to execute method on an SQL statementSecurity
SQL: A prepared statement is generated from a nonconstant StringSecurity
XSS: JSP reflected cross site scripting vulnerabilitySecurity
XSS: Servlet reflected cross site scripting vulnerability in error pageSecurity
XSS: Servlet reflected cross site scripting vulnerabilitySecurity
BC: Questionable cast to abstract collection Dodgy code
BC: Questionable cast to concrete collectionDodgy code
BC: Unchecked/unconfirmed castDodgy code
BC: instanceof will always return trueDodgy code
BSHIFT: Unsigned right shift cast to short/byteDodgy code
CI: Class is final but declares protected fieldDodgy code
DB: Method uses the same code for two branchesDodgy code
DB: Method uses the same code for two switch clausesDodgy code
DLS: Dead store to local variableDodgy code
DLS: Useless assignment in return statementDodgy code
DLS: Dead store of null to local variableDodgy code
DLS: Dead store to local variable that shadows fieldDodgy code
DMI: Code contains a hard coded reference to an absolute pathnameDodgy code
DMI: Non serializable object written to ObjectOutputDodgy code
DMI: Invocation of substring(0), which returns the original valueDodgy code
Dm: Thread passed where Runnable expectedDodgy code
Eq: Class doesn't override equals in superclassDodgy code
Eq: Unusual equals method Dodgy code
FE: Test for floating point equalityDodgy code
FS: Non-Boolean argument formatted using %b format specifierDodgy code
IA: Ambiguous invocation of either an inherited or outer methodDodgy code
IC: Initialization circularityDodgy code
ICAST: integral division result cast to double or floatDodgy code
ICAST: Result of integer multiplication cast to longDodgy code
IM: Computation of average could overflowDodgy code
IM: Check for oddness that won't work for negative numbers Dodgy code
INT: Integer remainder modulo 1Dodgy code
INT: Vacuous bit mask operation on integer valueDodgy code
INT: Vacuous comparison of integer valueDodgy code
MTIA: Class extends Servlet class and uses instance variablesDodgy code
MTIA: Class extends Struts Action class and uses instance variablesDodgy code
NP: Dereference of the result of readLine() without nullcheckDodgy code
NP: Immediate dereference of the result of readLine()Dodgy code
NP: Load of known null valueDodgy code
NP: Possible null pointer dereference due to return value of called methodDodgy code
NP: Possible null pointer dereference on branch that might be infeasibleDodgy code
NP: Parameter must be nonnull but is marked as nullableDodgy code
NP: Read of unwritten public or protected fieldDodgy code
NS: Potentially dangerous use of non-short-circuit logicDodgy code
NS: Questionable use of non-short-circuit logicDodgy code
PZLA: Consider returning a zero length array rather than nullDodgy code
QF: Complicated, subtle or wrong increment in for-loop Dodgy code
RCN: Redundant comparison of non-null value to nullDodgy code
RCN: Redundant comparison of two null valuesDodgy code
RCN: Redundant nullcheck of value known to be non-nullDodgy code
RCN: Redundant nullcheck of value known to be nullDodgy code
REC: Exception is caught when Exception is not thrownDodgy code
RI: Class implements same interface as superclassDodgy code
RV: Method checks to see if result of String.indexOf is positiveDodgy code
RV: Method discards result of readLine after checking if it is nonnullDodgy code
RV: Remainder of hashCode could be negativeDodgy code
RV: Remainder of 32-bit signed random integerDodgy code
RV: Method ignores return value, is this OK?Dodgy code
SA: Double assignment of fieldDodgy code
SA: Double assignment of local variable Dodgy code
SA: Self assignment of local variableDodgy code
SF: Switch statement found where one case falls through to the next caseDodgy code
SF: Switch statement found where default case is missingDodgy code
ST: Write to static field from instance methodDodgy code
Se: private readResolve method not inherited by subclassesDodgy code
Se: Transient field of class that isn't Serializable. Dodgy code
TQ: Value required to have type qualifier, but marked as unknownDodgy code
TQ: Value required to not have type qualifier, but marked as unknownDodgy code
UCF: Useless control flowDodgy code
UCF: Useless control flow to next lineDodgy code
UrF: Unread public/protected fieldDodgy code
UuF: Unused public or protected fieldDodgy code
UwF: Field not initialized in constructor but dereferenced without null checkDodgy code
UwF: Unwritten public or protected fieldDodgy code
XFB: Method directly allocates a specific implementation of xml interfacesDodgy code
+

Descriptions

+

AM: Creates an empty jar file entry (AM_CREATES_EMPTY_JAR_FILE_ENTRY)

+ + +

The code calls putNextEntry(), immediately +followed by a call to closeEntry(). This results +in an empty JarFile entry. The contents of the entry +should be written to the JarFile between the calls to +putNextEntry() and +closeEntry().

+ + +

AM: Creates an empty zip file entry (AM_CREATES_EMPTY_ZIP_FILE_ENTRY)

+ + +

The code calls putNextEntry(), immediately +followed by a call to closeEntry(). This results +in an empty ZipFile entry. The contents of the entry +should be written to the ZipFile between the calls to +putNextEntry() and +closeEntry().

+ + +

BC: Equals method should not assume anything about the type of its argument (BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS)

+ + +

+The equals(Object o) method shouldn't make any assumptions +about the type of o. It should simply return +false if o is not the same type as this. +

+ + +

BIT: Check for sign of bitwise operation (BIT_SIGNED_CHECK)

+ + +

This method compares an expression such as +

((event.detail & SWT.SELECTED) > 0)
. +Using bit arithmetic and then comparing with the greater than operator can +lead to unexpected results (of course depending on the value of +SWT.SELECTED). If SWT.SELECTED is a negative number, this is a candidate +for a bug. Even when SWT.SELECTED is not negative, it seems good practice +to use '!= 0' instead of '> 0'. +

+

+Boris Bokowski +

+ + +

CN: Class implements Cloneable but does not define or use clone method (CN_IDIOM)

+ + +

+ Class implements Cloneable but does not define or + use the clone method.

+ + +

CN: clone method does not call super.clone() (CN_IDIOM_NO_SUPER_CALL)

+ + +

This non-final class defines a clone() method that does not call super.clone(). +If this class ("A") is extended by a subclass ("B"), +and the subclass B calls super.clone(), then it is likely that +B's clone() method will return an object of type A, +which violates the standard contract for clone().

+ +

If all clone() methods call super.clone(), then they are guaranteed +to use Object.clone(), which always returns an object of the correct type.

+ + +

CN: Class defines clone() but doesn't implement Cloneable (CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE)

+ + +

This class defines a clone() method but the class doesn't implement Cloneable. +There are some situations in which this is OK (e.g., you want to control how subclasses +can clone themselves), but just make sure that this is what you intended. +

+ + +

Co: Abstract class defines covariant compareTo() method (CO_ABSTRACT_SELF)

+ + +

This class defines a covariant version of compareTo().  + To correctly override the compareTo() method in the + Comparable interface, the parameter of compareTo() + must have type java.lang.Object.

+ + +

Co: Covariant compareTo() method defined (CO_SELF_NO_OBJECT)

+ + +

This class defines a covariant version of compareTo().  + To correctly override the compareTo() method in the + Comparable interface, the parameter of compareTo() + must have type java.lang.Object.

+ + +

DE: Method might drop exception (DE_MIGHT_DROP)

+ + +

This method might drop an exception.  In general, exceptions + should be handled or reported in some way, or they should be thrown + out of the method.

+ + +

DE: Method might ignore exception (DE_MIGHT_IGNORE)

+ + +

This method might ignore an exception.  In general, exceptions + should be handled or reported in some way, or they should be thrown + out of the method.

+ + +

DMI: Adding elements of an entry set may fail due to reuse of Entry objects (DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS)

+ + +

The entrySet() method is allowed to return a view of the + underlying Map in which a single Entry object is reused and returned + during the iteration. As of Java 1.6, both IdentityHashMap + and EnumMap did so. When iterating through such a Map, + the Entry value is only valid until you advance to the next iteration. + If, for example, you try to pass such an entrySet to an addAll method, + things will go badly wrong. +

+ + +

DMI: Random object created and used only once (DMI_RANDOM_USED_ONLY_ONCE)

+ + +

This code creates a java.util.Random object, uses it to generate one random number, and then discards +the Random object. This produces mediocre quality random numbers and is inefficient. +If possible, rewrite the code so that the Random object is created once and saved, and each time a new random number +is required invoke a method on the existing Random object to obtain it. +

+ +

If it is important that the generated Random numbers not be guessable, you must not create a new Random for each random +number; the values are too easily guessable. You should strongly consider using a java.security.SecureRandom instead +(and avoid allocating a new SecureRandom for each random number needed). +

+ + +

DMI: Don't use removeAll to clear a collection (DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION)

+ + +

If you want to remove all elements from a collection c, use c.clear, +not c.removeAll(c). Calling c.removeAll(c) to clear a collection +is less clear, susceptible to errors from typos, less efficient and +for some collections, might throw a ConcurrentModificationException. +

+ + +

Dm: Method invokes System.exit(...) (DM_EXIT)

+ + +

Invoking System.exit shuts down the entire Java virtual machine. This + should only been done when it is appropriate. Such calls make it + hard or impossible for your code to be invoked by other code. + Consider throwing a RuntimeException instead.

+ + +

Dm: Method invokes dangerous method runFinalizersOnExit (DM_RUN_FINALIZERS_ON_EXIT)

+ + +

Never call System.runFinalizersOnExit +or Runtime.runFinalizersOnExit for any reason: they are among the most +dangerous methods in the Java libraries. -- Joshua Bloch

+ + +

ES: Comparison of String parameter using == or != (ES_COMPARING_PARAMETER_STRING_WITH_EQ)

+ + +

This code compares a java.lang.String parameter for reference +equality using the == or != operators. Requiring callers to +pass only String constants or interned strings to a method is unnecessarily +fragile, and rarely leads to measurable performance gains. Consider +using the equals(Object) method instead.

+ + +

ES: Comparison of String objects using == or != (ES_COMPARING_STRINGS_WITH_EQ)

+ + +

This code compares java.lang.String objects for reference +equality using the == or != operators. +Unless both strings are either constants in a source file, or have been +interned using the String.intern() method, the same string +value may be represented by two different String objects. Consider +using the equals(Object) method instead.

+ + +

Eq: Abstract class defines covariant equals() method (EQ_ABSTRACT_SELF)

+ + +

This class defines a covariant version of equals().  + To correctly override the equals() method in + java.lang.Object, the parameter of equals() + must have type java.lang.Object.

+ + +

Eq: Equals checks for incompatible operand (EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS)

+ + +

This equals method is checking to see if the argument is some incompatible type +(i.e., a class that is neither a supertype nor subtype of the class that defines +the equals method). For example, the Foo class might have an equals method +that looks like: + +

+public boolean equals(Object o) {
+  if (o instanceof Foo)
+    return name.equals(((Foo)o).name);
+  else if (o instanceof String)
+    return name.equals(o);
+  else return false;
+

+ +

This is considered bad practice, as it makes it very hard to implement an equals method that +is symmetric and transitive. Without those properties, very unexpected behavoirs are possible. +

+ + +

Eq: Class defines compareTo(...) and uses Object.equals() (EQ_COMPARETO_USE_OBJECT_EQUALS)

+ + +

This class defines a compareTo(...) method but inherits its + equals() method from java.lang.Object. + Generally, the value of compareTo should return zero if and only if + equals returns true. If this is violated, weird and unpredictable + failures will occur in classes such as PriorityQueue. + In Java 5 the PriorityQueue.remove method uses the compareTo method, + while in Java 6 it uses the equals method. + +

From the JavaDoc for the compareTo method in the Comparable interface: +

+It is strongly recommended, but not strictly required that (x.compareTo(y)==0) == (x.equals(y)). +Generally speaking, any class that implements the Comparable interface and violates this condition +should clearly indicate this fact. The recommended language +is "Note: this class has a natural ordering that is inconsistent with equals." +
+ + +

Eq: equals method fails for subtypes (EQ_GETCLASS_AND_CLASS_CONSTANT)

+ + +

This class has an equals method that will be broken if it is inherited by subclasses. +It compares a class literal with the class of the argument (e.g., in class Foo +it might check if Foo.class == o.getClass()). +It is better to check if this.getClass() == o.getClass(). +

+ + +

Eq: Covariant equals() method defined (EQ_SELF_NO_OBJECT)

+ + +

This class defines a covariant version of equals().  + To correctly override the equals() method in + java.lang.Object, the parameter of equals() + must have type java.lang.Object.

+ + +

FI: Empty finalizer should be deleted (FI_EMPTY)

+ + +

Empty finalize() methods are useless, so they should + be deleted.

+ + +

FI: Explicit invocation of finalizer (FI_EXPLICIT_INVOCATION)

+ + +

This method contains an explicit invocation of the finalize() + method on an object.  Because finalizer methods are supposed to be + executed once, and only by the VM, this is a bad idea.

+

If a connected set of objects beings finalizable, then the VM will invoke the +finalize method on all the finalizable object, possibly at the same time in different threads. +Thus, it is a particularly bad idea, in the finalize method for a class X, invoke finalize +on objects referenced by X, because they may already be getting finalized in a separate thread. + + +

FI: Finalizer nulls fields (FI_FINALIZER_NULLS_FIELDS)

+ + +

This finalizer nulls out fields. This is usually an error, as it does not aid garbage collection, + and the object is going to be garbage collected anyway. + + +

FI: Finalizer only nulls fields (FI_FINALIZER_ONLY_NULLS_FIELDS)

+ + +

This finalizer does nothing except null out fields. This is completely pointless, and requires that +the object be garbage collected, finalized, and then garbage collected again. You should just remove the finalize +method. + + +

FI: Finalizer does not call superclass finalizer (FI_MISSING_SUPER_CALL)

+ + +

This finalize() method does not make a call to its + superclass's finalize() method.  So, any finalizer + actions defined for the superclass will not be performed.  + Add a call to super.finalize().

+ + +

FI: Finalizer nullifies superclass finalizer (FI_NULLIFY_SUPER)

+ + +

This empty finalize() method explicitly negates the + effect of any finalizer defined by its superclass.  Any finalizer + actions defined for the superclass will not be performed.  + Unless this is intended, delete this method.

+ + +

FI: Finalizer does nothing but call superclass finalizer (FI_USELESS)

+ + +

The only thing this finalize() method does is call + the superclass's finalize() method, making it + redundant.  Delete it.

+ + +

FS: Format string should use %n rather than \n (VA_FORMAT_STRING_USES_NEWLINE)

+ + +

+This format string include a newline character (\n). In format strings, it is generally + preferable better to use %n, which will produce the platform-specific line separator. +

+ + +

GC: Unchecked type in generic call (GC_UNCHECKED_TYPE_IN_GENERIC_CALL)

+ + +

This call to a generic collection method passes an argument + while compile type Object where a specific type from + the generic type parameters is expected. + Thus, neither the standard Java type system nor static analysis + can provide useful information on whether the + object being passed as a parameter is of an appropriate type. +

+ + +

HE: Class defines equals() but not hashCode() (HE_EQUALS_NO_HASHCODE)

+ + +

This class overrides equals(Object), but does not + override hashCode().  Therefore, the class may violate the + invariant that equal objects must have equal hashcodes.

+ + +

HE: Class defines equals() and uses Object.hashCode() (HE_EQUALS_USE_HASHCODE)

+ + +

This class overrides equals(Object), but does not + override hashCode(), and inherits the implementation of + hashCode() from java.lang.Object (which returns + the identity hash code, an arbitrary value assigned to the object + by the VM).  Therefore, the class is very likely to violate the + invariant that equal objects must have equal hashcodes.

+ +

If you don't think instances of this class will ever be inserted into a HashMap/HashTable, +the recommended hashCode implementation to use is:

+
public int hashCode() {
+  assert false : "hashCode not designed";
+  return 42; // any arbitrary constant will do
+  }
+ + +

HE: Class defines hashCode() but not equals() (HE_HASHCODE_NO_EQUALS)

+ + +

This class defines a hashCode() method but not an + equals() method.  Therefore, the class may + violate the invariant that equal objects must have equal hashcodes.

+ + +

HE: Class defines hashCode() and uses Object.equals() (HE_HASHCODE_USE_OBJECT_EQUALS)

+ + +

This class defines a hashCode() method but inherits its + equals() method from java.lang.Object + (which defines equality by comparing object references).  Although + this will probably satisfy the contract that equal objects must have + equal hashcodes, it is probably not what was intended by overriding + the hashCode() method.  (Overriding hashCode() + implies that the object's identity is based on criteria more complicated + than simple reference equality.)

+

If you don't think instances of this class will ever be inserted into a HashMap/HashTable, +the recommended hashCode implementation to use is:

+

public int hashCode() {
+  assert false : "hashCode not designed";
+  return 42; // any arbitrary constant will do
+  }

+ + +

HE: Class inherits equals() and uses Object.hashCode() (HE_INHERITS_EQUALS_USE_HASHCODE)

+ + +

This class inherits equals(Object) from an abstract + superclass, and hashCode() from +java.lang.Object (which returns + the identity hash code, an arbitrary value assigned to the object + by the VM).  Therefore, the class is very likely to violate the + invariant that equal objects must have equal hashcodes.

+ +

If you don't want to define a hashCode method, and/or don't + believe the object will ever be put into a HashMap/Hashtable, + define the hashCode() method + to throw UnsupportedOperationException.

+ + +

IC: Superclass uses subclass during initialization (IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION)

+ + +

During the initialization of a class, the class makes an active use of a subclass. +That subclass will not yet be initialized at the time of this use. +For example, in the following code, foo will be null.

+ +
+public class CircularClassInitialization {
+    static class InnerClassSingleton extends CircularClassInitialization {
+        static InnerClassSingleton singleton = new InnerClassSingleton();
+    }
+
+    static CircularClassInitialization foo = InnerClassSingleton.singleton;
+}
+
+ + + +

IMSE: Dubious catching of IllegalMonitorStateException (IMSE_DONT_CATCH_IMSE)

+ + +

IllegalMonitorStateException is generally only + thrown in case of a design flaw in your code (calling wait or + notify on an object you do not hold a lock on).

+ + +

ISC: Needless instantiation of class that only supplies static methods (ISC_INSTANTIATE_STATIC_CLASS)

+ + +

This class allocates an object that is based on a class that only supplies static methods. This object +does not need to be created, just access the static methods directly using the class name as a qualifier.

+ + +

It: Iterator next() method can't throw NoSuchElementException (IT_NO_SUCH_ELEMENT)

+ + +

This class implements the java.util.Iterator interface.  + However, its next() method is not capable of throwing + java.util.NoSuchElementException.  The next() + method should be changed so it throws NoSuchElementException + if is called when there are no more elements to return.

+ + +

J2EE: Store of non serializable object into HttpSession (J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION)

+ + +

+This code seems to be storing a non-serializable object into an HttpSession. +If this session is passivated or migrated, an error will result. +

+ + +

JCIP: Fields of immutable classes should be final (JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS)

+ + +

The class is annotated with net.jcip.annotations.Immutable, and the rules for that annotation require +that all fields are final. + .

+ + +

NP: Method with Boolean return type returns explicit null (NP_BOOLEAN_RETURN_NULL)

+ + +

+ A method that returns either Boolean.TRUE, Boolean.FALSE or null is an accident waiting to happen. + This method can be invoked as though it returned a value of type boolean, and + the compiler will insert automatic unboxing of the Boolean value. If a null value is returned, + this will result in a NullPointerException. +

+ + +

NP: Clone method may return null (NP_CLONE_COULD_RETURN_NULL)

+ + +

+ This clone method seems to return null in some circumstances, but clone is never + allowed to return a null value. If you are convinced this path is unreachable, throw an AssertionError + instead. +

+ + +

NP: equals() method does not check for null argument (NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT)

+ + +

+ This implementation of equals(Object) violates the contract defined + by java.lang.Object.equals() because it does not check for null + being passed as the argument. All equals() methods should return + false if passed a null value. +

+ + +

NP: toString method may return null (NP_TOSTRING_COULD_RETURN_NULL)

+ + +

+ This toString method seems to return null in some circumstances. A liberal reading of the + spec could be interpreted as allowing this, but it is probably a bad idea and could cause + other code to break. Return the empty string or some other appropriate string rather than null. +

+ + +

Nm: Class names should start with an upper case letter (NM_CLASS_NAMING_CONVENTION)

+ + +

Class names should be nouns, in mixed case with the first letter of each internal word capitalized. Try to keep your class names simple and descriptive. Use whole words-avoid acronyms and abbreviations (unless the abbreviation is much more widely used than the long form, such as URL or HTML). +

+ + +

Nm: Class is not derived from an Exception, even though it is named as such (NM_CLASS_NOT_EXCEPTION)

+ + +

This class is not derived from another exception, but ends with 'Exception'. This will +be confusing to users of this class.

+ + +

Nm: Confusing method names (NM_CONFUSING)

+ + +

The referenced methods have names that differ only by capitalization.

+ + +

Nm: Field names should start with a lower case letter (NM_FIELD_NAMING_CONVENTION)

+ + +

+Names of fields that are not final should be in mixed case with a lowercase first letter and the first letters of subsequent words capitalized. +

+ + +

Nm: Use of identifier that is a keyword in later versions of Java (NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER)

+ + +

The identifier is a word that is reserved as a keyword in later versions of Java, and your code will need to be changed +in order to compile it in later versions of Java.

+ + + +

Nm: Use of identifier that is a keyword in later versions of Java (NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER)

+ + +

This identifier is used as a keyword in later versions of Java. This code, and +any code that references this API, +will need to be changed in order to compile it in later versions of Java.

+ + + +

Nm: Method names should start with a lower case letter (NM_METHOD_NAMING_CONVENTION)

+ + +

+Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized. +

+ + +

Nm: Class names shouldn't shadow simple name of implemented interface (NM_SAME_SIMPLE_NAME_AS_INTERFACE)

+ + +

This class/interface has a simple name that is identical to that of an implemented/extended interface, except +that the interface is in a different package (e.g., alpha.Foo extends beta.Foo). +This can be exceptionally confusing, create lots of situations in which you have to look at import statements +to resolve references and creates many +opportunities to accidently define methods that do not override methods in their superclasses. +

+ + +

Nm: Class names shouldn't shadow simple name of superclass (NM_SAME_SIMPLE_NAME_AS_SUPERCLASS)

+ + +

This class has a simple name that is identical to that of its superclass, except +that its superclass is in a different package (e.g., alpha.Foo extends beta.Foo). +This can be exceptionally confusing, create lots of situations in which you have to look at import statements +to resolve references and creates many +opportunities to accidently define methods that do not override methods in their superclasses. +

+ + +

Nm: Very confusing method names (but perhaps intentional) (NM_VERY_CONFUSING_INTENTIONAL)

+ + +

The referenced methods have names that differ only by capitalization. +This is very confusing because if the capitalization were +identical then one of the methods would override the other. From the existence of other methods, it +seems that the existence of both of these methods is intentional, but is sure is confusing. +You should try hard to eliminate one of them, unless you are forced to have both due to frozen APIs. +

+ + +

Nm: Method doesn't override method in superclass due to wrong package for parameter (NM_WRONG_PACKAGE_INTENTIONAL)

+ + +

The method in the subclass doesn't override a similar method in a superclass because the type of a parameter doesn't exactly match +the type of the corresponding parameter in the superclass. For example, if you have:

+ +
+
+import alpha.Foo;
+public class A {
+  public int f(Foo x) { return 17; }
+}
+----
+import beta.Foo;
+public class B extends A {
+  public int f(Foo x) { return 42; }
+  public int f(alpha.Foo x) { return 27; }
+}
+
+
+ +

The f(Foo) method defined in class B doesn't +override the +f(Foo) method defined in class A, because the argument +types are Foo's from different packages. +

+ +

In this case, the subclass does define a method with a signature identical to the method in the superclass, +so this is presumably understood. However, such methods are exceptionally confusing. You should strongly consider +removing or deprecating the method with the similar but not identical signature. +

+ + +

ODR: Method may fail to close database resource (ODR_OPEN_DATABASE_RESOURCE)

+ + +

The method creates a database resource (such as a database connection +or row set), does not assign it to any +fields, pass it to other methods, or return it, and does not appear to close +the object on all paths out of the method.  Failure to +close database resources on all paths out of a method may +result in poor performance, and could cause the application to +have problems communicating with the database. +

+ + +

ODR: Method may fail to close database resource on exception (ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH)

+ + +

The method creates a database resource (such as a database connection +or row set), does not assign it to any +fields, pass it to other methods, or return it, and does not appear to close +the object on all exception paths out of the method.  Failure to +close database resources on all paths out of a method may +result in poor performance, and could cause the application to +have problems communicating with the database.

+ + +

OS: Method may fail to close stream (OS_OPEN_STREAM)

+ + +

The method creates an IO stream object, does not assign it to any +fields, pass it to other methods that might close it, +or return it, and does not appear to close +the stream on all paths out of the method.  This may result in +a file descriptor leak.  It is generally a good +idea to use a finally block to ensure that streams are +closed.

+ + +

OS: Method may fail to close stream on exception (OS_OPEN_STREAM_EXCEPTION_PATH)

+ + +

The method creates an IO stream object, does not assign it to any +fields, pass it to other methods, or return it, and does not appear to close +it on all possible exception paths out of the method.  +This may result in a file descriptor leak.  It is generally a good +idea to use a finally block to ensure that streams are +closed.

+ + +

PZ: Don't reuse entry objects in iterators (PZ_DONT_REUSE_ENTRY_OBJECTS_IN_ITERATORS)

+ + +

The entrySet() method is allowed to return a view of the + underlying Map in which an Iterator and Map.Entry. This clever + idea was used in several Map implementations, but introduces the possibility + of nasty coding mistakes. If a map m returns + such an iterator for an entrySet, then + c.addAll(m.entrySet()) will go badly wrong. All of + the Map implementations in OpenJDK 1.7 have been rewritten to avoid this, + you should to. +

+ + +

RC: Suspicious reference comparison to constant (RC_REF_COMPARISON_BAD_PRACTICE)

+ + +

This method compares a reference value to a constant using the == or != operator, +where the correct way to compare instances of this type is generally +with the equals() method. +It is possible to create distinct instances that are equal but do not compare as == since +they are different objects. +Examples of classes which should generally +not be compared by reference are java.lang.Integer, java.lang.Float, etc.

+ + +

RC: Suspicious reference comparison of Boolean values (RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN)

+ + +

This method compares two Boolean values using the == or != operator. +Normally, there are only two Boolean values (Boolean.TRUE and Boolean.FALSE), +but it is possible to create other Boolean objects using the new Boolean(b) +constructor. It is best to avoid such objects, but if they do exist, +then checking Boolean objects for equality using == or != will give results +than are different than you would get using .equals(...) +

+ + +

RR: Method ignores results of InputStream.read() (RR_NOT_CHECKED)

+ + +

This method ignores the return value of one of the variants of + java.io.InputStream.read() which can return multiple bytes.  + If the return value is not checked, the caller will not be able to correctly + handle the case where fewer bytes were read than the caller requested.  + This is a particularly insidious kind of bug, because in many programs, + reads from input streams usually do read the full amount of data requested, + causing the program to fail only sporadically.

+ + +

RR: Method ignores results of InputStream.skip() (SR_NOT_CHECKED)

+ + +

This method ignores the return value of + java.io.InputStream.skip() which can skip multiple bytes.  + If the return value is not checked, the caller will not be able to correctly + handle the case where fewer bytes were skipped than the caller requested.  + This is a particularly insidious kind of bug, because in many programs, + skips from input streams usually do skip the full amount of data requested, + causing the program to fail only sporadically. With Buffered streams, however, + skip() will only skip data in the buffer, and will routinely fail to skip the + requested number of bytes.

+ + +

RV: Negating the result of compareTo()/compare() (RV_NEGATING_RESULT_OF_COMPARETO)

+ + +

This code negatives the return value of a compareTo or compare method. +This is a questionable or bad programming practice, since if the return +value is Integer.MIN_VALUE, negating the return value won't +negate the sign of the result. You can achieve the same intended result +by reversing the order of the operands rather than by negating the results. +

+ + +

RV: Method ignores exceptional return value (RV_RETURN_VALUE_IGNORED_BAD_PRACTICE)

+ + +

This method returns a value that is not checked. The return value should be checked +since it can indicate an unusual or unexpected function execution. For +example, the File.delete() method returns false +if the file could not be successfully deleted (rather than +throwing an Exception). +If you don't check the result, you won't notice if the method invocation +signals unexpected behavior by returning an atypical return value. +

+ + +

SI: Static initializer creates instance before all static final fields assigned (SI_INSTANCE_BEFORE_FINALS_ASSIGNED)

+ + +

The class's static initializer creates an instance of the class +before all of the static final fields are assigned.

+ + +

SW: Certain swing methods needs to be invoked in Swing thread (SW_SWING_METHODS_INVOKED_IN_SWING_THREAD)

+ + +

(From JDC Tech Tip): The Swing methods +show(), setVisible(), and pack() will create the associated peer for the frame. +With the creation of the peer, the system creates the event dispatch thread. +This makes things problematic because the event dispatch thread could be notifying +listeners while pack and validate are still processing. This situation could result in +two threads going through the Swing component-based GUI -- it's a serious flaw that +could result in deadlocks or other related threading issues. A pack call causes +components to be realized. As they are being realized (that is, not necessarily +visible), they could trigger listener notification on the event dispatch thread.

+ + + +

Se: Non-transient non-serializable instance field in serializable class (SE_BAD_FIELD)

+ + +

This Serializable class defines a non-primitive instance field which is neither transient, +Serializable, or java.lang.Object, and does not appear to implement +the Externalizable interface or the +readObject() and writeObject() methods.  +Objects of this class will not be deserialized correctly if a non-Serializable +object is stored in this field.

+ + +

Se: Non-serializable class has a serializable inner class (SE_BAD_FIELD_INNER_CLASS)

+ + +

This Serializable class is an inner class of a non-serializable class. +Thus, attempts to serialize it will also attempt to associate instance of the outer +class with which it is associated, leading to a runtime error. +

+

If possible, making the inner class a static inner class should solve the +problem. Making the outer class serializable might also work, but that would +mean serializing an instance of the inner class would always also serialize the instance +of the outer class, which it often not what you really want. + + +

Se: Non-serializable value stored into instance field of a serializable class (SE_BAD_FIELD_STORE)

+ + +

A non-serializable value is stored into a non-transient field +of a serializable class.

+ + +

Se: Comparator doesn't implement Serializable (SE_COMPARATOR_SHOULD_BE_SERIALIZABLE)

+ + +

This class implements the Comparator interface. You +should consider whether or not it should also implement the Serializable +interface. If a comparator is used to construct an ordered collection +such as a TreeMap, then the TreeMap +will be serializable only if the comparator is also serializable. +As most comparators have little or no state, making them serializable +is generally easy and good defensive programming. +

+ + +

Se: Serializable inner class (SE_INNER_CLASS)

+ + +

This Serializable class is an inner class. Any attempt to serialize +it will also serialize the associated outer instance. The outer instance is serializable, +so this won't fail, but it might serialize a lot more data than intended. +If possible, making the inner class a static inner class (also known as a nested class) should solve the +problem. + + +

Se: serialVersionUID isn't final (SE_NONFINAL_SERIALVERSIONID)

+ + +

This class defines a serialVersionUID field that is not final.  + The field should be made final + if it is intended to specify + the version UID for purposes of serialization.

+ + +

Se: serialVersionUID isn't long (SE_NONLONG_SERIALVERSIONID)

+ + +

This class defines a serialVersionUID field that is not long.  + The field should be made long + if it is intended to specify + the version UID for purposes of serialization.

+ + +

Se: serialVersionUID isn't static (SE_NONSTATIC_SERIALVERSIONID)

+ + +

This class defines a serialVersionUID field that is not static.  + The field should be made static + if it is intended to specify + the version UID for purposes of serialization.

+ + +

Se: Class is Serializable but its superclass doesn't define a void constructor (SE_NO_SUITABLE_CONSTRUCTOR)

+ + +

This class implements the Serializable interface + and its superclass does not. When such an object is deserialized, + the fields of the superclass need to be initialized by + invoking the void constructor of the superclass. + Since the superclass does not have one, + serialization and deserialization will fail at runtime.

+ + +

Se: Class is Externalizable but doesn't define a void constructor (SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION)

+ + +

This class implements the Externalizable interface, but does + not define a void constructor. When Externalizable objects are deserialized, + they first need to be constructed by invoking the void + constructor. Since this class does not have one, + serialization and deserialization will fail at runtime.

+ + +

Se: The readResolve method must be declared with a return type of Object. (SE_READ_RESOLVE_MUST_RETURN_OBJECT)

+ + +

In order for the readResolve method to be recognized by the serialization +mechanism, it must be declared to have a return type of Object. +

+ + +

Se: Transient field that isn't set by deserialization. (SE_TRANSIENT_FIELD_NOT_RESTORED)

+ + +

This class contains a field that is updated at multiple places in the class, thus it seems to be part of the state of the class. However, since the field is marked as transient and not set in readObject or readResolve, it will contain the default value in any +deserialized instance of the class. +

+ + +

SnVI: Class is Serializable, but doesn't define serialVersionUID (SE_NO_SERIALVERSIONID)

+ + +

This class implements the Serializable interface, but does + not define a serialVersionUID field.  + A change as simple as adding a reference to a .class object + will add synthetic fields to the class, + which will unfortunately change the implicit + serialVersionUID (e.g., adding a reference to String.class + will generate a static field class$java$lang$String). + Also, different source code to bytecode compilers may use different + naming conventions for synthetic variables generated for + references to class objects or inner classes. + To ensure interoperability of Serializable across versions, + consider adding an explicit serialVersionUID.

+ + +

UI: Usage of GetResource may be unsafe if class is extended (UI_INHERITANCE_UNSAFE_GETRESOURCE)

+ + +

Calling this.getClass().getResource(...) could give +results other than expected if this class is extended by a class in +another package.

+ + +

BC: Impossible cast (BC_IMPOSSIBLE_CAST)

+ + +

+This cast will always throw a ClassCastException. +FindBugs tracks type information from instanceof checks, +and also uses more precise information about the types +of values returned from methods and loaded from fields. +Thus, it may have more precise information that just +the declared type of a variable, and can use this to determine +that a cast will always throw an exception at runtime. + +

+ + +

BC: Impossible downcast (BC_IMPOSSIBLE_DOWNCAST)

+ + +

+This cast will always throw a ClassCastException. +The analysis believes it knows +the precise type of the value being cast, and the attempt to +downcast it to a subtype will always fail by throwing a ClassCastException. +

+ + +

BC: Impossible downcast of toArray() result (BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY)

+ + +

+This code is casting the result of calling toArray() on a collection +to a type more specific than Object[], as in: +

+String[] getAsArray(Collection<String> c) {
+  return (String[]) c.toArray();
+  }
+
+

This will usually fail by throwing a ClassCastException. The toArray() +of almost all collections return an Object[]. They can't really do anything else, +since the Collection object has no reference to the declared generic type of the collection. +

The correct way to do get an array of a specific type from a collection is to use + c.toArray(new String[]); + or c.toArray(new String[c.size()]); (the latter is slightly more efficient). +

There is one common/known exception exception to this. The toArray() +method of lists returned by Arrays.asList(...) will return a covariantly +typed array. For example, Arrays.asArray(new String[] { "a" }).toArray() +will return a String []. FindBugs attempts to detect and suppress +such cases, but may miss some. +

+ + +

BC: instanceof will always return false (BC_IMPOSSIBLE_INSTANCEOF)

+ + +

+This instanceof test will always return false. Although this is safe, make sure it isn't +an indication of some misunderstanding or some other logic error. +

+ + +

BIT: Bitwise add of signed byte value (BIT_ADD_OF_SIGNED_BYTE)

+ + +

Adds a byte value and a value which is known to have the 8 lower bits clear. +Values loaded from a byte array are sign extended to 32 bits +before any any bitwise operations are performed on the value. +Thus, if b[0] contains the value 0xff, and +x is initially 0, then the code +((x << 8) + b[0]) will sign extend 0xff +to get 0xffffffff, and thus give the value +0xffffffff as the result. +

+ +

In particular, the following code for packing a byte array into an int is badly wrong:

+
+int result = 0;
+for(int i = 0; i < 4; i++)
+  result = ((result << 8) + b[i]);
+
+ +

The following idiom will work instead:

+
+int result = 0;
+for(int i = 0; i < 4; i++)
+  result = ((result << 8) + (b[i] & 0xff));
+
+ + + +

BIT: Incompatible bit masks (BIT_AND)

+ + +

This method compares an expression of the form (e & C) to D, +which will always compare unequal +due to the specific values of constants C and D. +This may indicate a logic error or typo.

+ + +

BIT: Check to see if ((...) & 0) == 0 (BIT_AND_ZZ)

+ + +

This method compares an expression of the form (e & 0) to 0, +which will always compare equal. +This may indicate a logic error or typo.

+ + +

BIT: Incompatible bit masks (BIT_IOR)

+ + +

This method compares an expression of the form (e | C) to D. +which will always compare unequal +due to the specific values of constants C and D. +This may indicate a logic error or typo.

+ +

Typically, this bug occurs because the code wants to perform +a membership test in a bit set, but uses the bitwise OR +operator ("|") instead of bitwise AND ("&").

+ + +

BIT: Bitwise OR of signed byte value (BIT_IOR_OF_SIGNED_BYTE)

+ + +

Loads a byte value (e.g., a value loaded from a byte array or returned by a method +with return type byte) and performs a bitwise OR with +that value. Byte values are sign extended to 32 bits +before any any bitwise operations are performed on the value. +Thus, if b[0] contains the value 0xff, and +x is initially 0, then the code +((x << 8) | b[0]) will sign extend 0xff +to get 0xffffffff, and thus give the value +0xffffffff as the result. +

+ +

In particular, the following code for packing a byte array into an int is badly wrong:

+
+int result = 0;
+for(int i = 0; i < 4; i++)
+  result = ((result << 8) | b[i]);
+
+ +

The following idiom will work instead:

+
+int result = 0;
+for(int i = 0; i < 4; i++)
+  result = ((result << 8) | (b[i] & 0xff));
+
+ + + +

BIT: Check for sign of bitwise operation (BIT_SIGNED_CHECK_HIGH_BIT)

+ + +

This method compares an expression such as +

((event.detail & SWT.SELECTED) > 0)
. +Using bit arithmetic and then comparing with the greater than operator can +lead to unexpected results (of course depending on the value of +SWT.SELECTED). If SWT.SELECTED is a negative number, this is a candidate +for a bug. Even when SWT.SELECTED is not negative, it seems good practice +to use '!= 0' instead of '> 0'. +

+

+Boris Bokowski +

+ + +

BOA: Class overrides a method implemented in super class Adapter wrongly (BOA_BADLY_OVERRIDDEN_ADAPTER)

+ + +

This method overrides a method found in a parent class, where that class is an Adapter that implements +a listener defined in the java.awt.event or javax.swing.event package. As a result, this method will not +get called when the event occurs.

+ + +

BSHIFT: 32 bit int shifted by an amount not in the range 0..31 (ICAST_BAD_SHIFT_AMOUNT)

+ + +

+The code performs shift of a 32 bit int by a constant amount outside +the range 0..31. +The effect of this is to use the lower 5 bits of the integer +value to decide how much to shift by (e.g., shifting by 40 bits is the same as shifting by 8 bits, +and shifting by 32 bits is the same as shifting by zero bits). This probably isn't what was expected, +and it is at least confusing. +

+ + +

Bx: Primitive value is unboxed and coerced for ternary operator (BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR)

+ + +

A wrapped primitive value is unboxed and converted to another primitive type as part of the +evaluation of a conditional ternary operator (the b ? e1 : e2 operator). The +semantics of Java mandate that if e1 and e2 are wrapped +numeric values, the values are unboxed and converted/coerced to their common type (e.g, +if e1 is of type Integer +and e2 is of type Float, then e1 is unboxed, +converted to a floating point value, and boxed. See JLS Section 15.25. +

+ + +

Co: compareTo()/compare() returns Integer.MIN_VALUE (CO_COMPARETO_RESULTS_MIN_VALUE)

+ + +

In some situation, this compareTo or compare method returns +the constant Integer.MIN_VALUE, which is an exceptionally bad practice. + The only thing that matters about the return value of compareTo is the sign of the result. + But people will sometimes negate the return value of compareTo, expecting that this will negate + the sign of the result. And it will, except in the case where the value returned is Integer.MIN_VALUE. + So just return -1 rather than Integer.MIN_VALUE. + + +

DLS: Dead store of class literal (DLS_DEAD_STORE_OF_CLASS_LITERAL)

+ + +

+This instruction assigns a class literal to a variable and then never uses it. +The behavior of this differs in Java 1.4 and in Java 5. +In Java 1.4 and earlier, a reference to Foo.class would force the static initializer +for Foo to be executed, if it has not been executed already. +In Java 5 and later, it does not. +

+

See Sun's article on Java SE compatibility +for more details and examples, and suggestions on how to force class initialization in Java 5. +

+ + +

DLS: Overwritten increment (DLS_OVERWRITTEN_INCREMENT)

+ + +

+The code performs an increment operation (e.g., i++) and then +immediately overwrites it. For example, i = i++ immediately +overwrites the incremented value with the original value. +

+ + +

DMI: Reversed method arguments (DMI_ARGUMENTS_WRONG_ORDER)

+ + +

The arguments to this method call seem to be in the wrong order. +For example, a call Preconditions.checkNotNull("message", message) +has reserved arguments: the value to be checked is the first argument. +

+ + +

DMI: Bad constant value for month (DMI_BAD_MONTH)

+ + +

+This code passes a constant month +value outside the expected range of 0..11 to a method. +

+ + +

DMI: BigDecimal constructed from double that isn't represented precisely (DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE)

+ + +

+This code creates a BigDecimal from a double value that doesn't translate well to a +decimal number. +For example, one might assume that writing new BigDecimal(0.1) in Java creates a BigDecimal which is exactly equal to 0.1 (an unscaled value of 1, with a scale of 1), but it is actually equal to 0.1000000000000000055511151231257827021181583404541015625. +You probably want to use the BigDecimal.valueOf(double d) method, which uses the String representation +of the double to create the BigDecimal (e.g., BigDecimal.valueOf(0.1) gives 0.1). +

+ + + +

DMI: hasNext method invokes next (DMI_CALLING_NEXT_FROM_HASNEXT)

+ + +

+The hasNext() method invokes the next() method. This is almost certainly wrong, +since the hasNext() method is not supposed to change the state of the iterator, +and the next method is supposed to change the state of the iterator. +

+ + +

DMI: Collections should not contain themselves (DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES)

+ + +

This call to a generic collection's method would only make sense if a collection contained +itself (e.g., if s.contains(s) were true). This is unlikely to be true and would cause +problems if it were true (such as the computation of the hash code resulting in infinite recursion). +It is likely that the wrong value is being passed as a parameter. +

+ + +

DMI: D'oh! A nonsensical method invocation (DMI_DOH)

+ + +

+This partical method invocation doesn't make sense, for reasons that should be apparent from inspection. +

+ + + +

DMI: Invocation of hashCode on an array (DMI_INVOKING_HASHCODE_ON_ARRAY)

+ + +

+The code invokes hashCode on an array. Calling hashCode on +an array returns the same value as System.identityHashCode, and ingores +the contents and length of the array. If you need a hashCode that +depends on the contents of an array a, +use java.util.Arrays.hashCode(a). + +

+ + +

DMI: Double.longBitsToDouble invoked on an int (DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT)

+ + +

The Double.longBitsToDouble method is invoked, but a 32 bit int value is passed + as an argument. This almostly certainly is not intended and is unlikely + to give the intended result. +

+ + +

DMI: Vacuous call to collections (DMI_VACUOUS_SELF_COLLECTION_CALL)

+ + +

This call doesn't make sense. For any collection c, calling c.containsAll(c) should +always be true, and c.retainAll(c) should have no effect. +

+ + +

Dm: Can't use reflection to check for presence of annotation without runtime retention (DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION)

+ + +

Unless an annotation has itself been annotated with @Retention(RetentionPolicy.RUNTIME), the annotation can't be observed using reflection +(e.g., by using the isAnnotationPresent method). + .

+ + +

Dm: Futile attempt to change max pool size of ScheduledThreadPoolExecutor (DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR)

+ + +

(Javadoc) +While ScheduledThreadPoolExecutor inherits from ThreadPoolExecutor, a few of the inherited tuning methods are not useful for it. In particular, because it acts as a fixed-sized pool using corePoolSize threads and an unbounded queue, adjustments to maximumPoolSize have no useful effect. +

+ + + +

Dm: Creation of ScheduledThreadPoolExecutor with zero core threads (DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS)

+ + +

(Javadoc) +A ScheduledThreadPoolExecutor with zero core threads will never execute anything; changes to the max pool size are ignored. +

+ + + +

Dm: Useless/vacuous call to EasyMock method (DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD)

+ + +

This call doesn't pass any objects to the EasyMock method, so the call doesn't do anything. +

+ + + +

EC: equals() used to compare array and nonarray (EC_ARRAY_AND_NONARRAY)

+ + +

+This method invokes the .equals(Object o) to compare an array and a reference that doesn't seem +to be an array. If things being compared are of different types, they are guaranteed to be unequal +and the comparison is almost certainly an error. Even if they are both arrays, the equals method +on arrays only determines of the two arrays are the same object. +To compare the +contents of the arrays, use java.util.Arrays.equals(Object[], Object[]). +

+ + +

EC: Invocation of equals() on an array, which is equivalent to == (EC_BAD_ARRAY_COMPARE)

+ + +

+This method invokes the .equals(Object o) method on an array. Since arrays do not override the equals +method of Object, calling equals on an array is the same as comparing their addresses. To compare the +contents of the arrays, use java.util.Arrays.equals(Object[], Object[]). +To compare the addresses of the arrays, it would be +less confusing to explicitly check pointer equality using ==. +

+ + +

EC: equals(...) used to compare incompatible arrays (EC_INCOMPATIBLE_ARRAY_COMPARE)

+ + +

+This method invokes the .equals(Object o) to compare two arrays, but the arrays of +of incompatible types (e.g., String[] and StringBuffer[], or String[] and int[]). +They will never be equal. In addition, when equals(...) is used to compare arrays it +only checks to see if they are the same array, and ignores the contents of the arrays. +

+ + +

EC: Call to equals(null) (EC_NULL_ARG)

+ + +

This method calls equals(Object), passing a null value as +the argument. According to the contract of the equals() method, +this call should always return false.

+ + +

EC: Call to equals() comparing unrelated class and interface (EC_UNRELATED_CLASS_AND_INTERFACE)

+ + +

+This method calls equals(Object) on two references, one of which is a class +and the other an interface, where neither the class nor any of its +non-abstract subclasses implement the interface. +Therefore, the objects being compared +are unlikely to be members of the same class at runtime +(unless some application classes were not analyzed, or dynamic class +loading can occur at runtime). +According to the contract of equals(), +objects of different +classes should always compare as unequal; therefore, according to the +contract defined by java.lang.Object.equals(Object), +the result of this comparison will always be false at runtime. +

+ + +

EC: Call to equals() comparing different interface types (EC_UNRELATED_INTERFACES)

+ + +

This method calls equals(Object) on two references of unrelated +interface types, where neither is a subtype of the other, +and there are no known non-abstract classes which implement both interfaces. +Therefore, the objects being compared +are unlikely to be members of the same class at runtime +(unless some application classes were not analyzed, or dynamic class +loading can occur at runtime). +According to the contract of equals(), +objects of different +classes should always compare as unequal; therefore, according to the +contract defined by java.lang.Object.equals(Object), +the result of this comparison will always be false at runtime. +

+ + +

EC: Call to equals() comparing different types (EC_UNRELATED_TYPES)

+ + +

This method calls equals(Object) on two references of different +class types with no common subclasses. +Therefore, the objects being compared +are unlikely to be members of the same class at runtime +(unless some application classes were not analyzed, or dynamic class +loading can occur at runtime). +According to the contract of equals(), +objects of different +classes should always compare as unequal; therefore, according to the +contract defined by java.lang.Object.equals(Object), +the result of this comparison will always be false at runtime. +

+ + +

EC: Using pointer equality to compare different types (EC_UNRELATED_TYPES_USING_POINTER_EQUALITY)

+ + +

This method uses using pointer equality to compare two references that seem to be of +different types. The result of this comparison will always be false at runtime. +

+ + +

Eq: equals method always returns false (EQ_ALWAYS_FALSE)

+ + +

This class defines an equals method that always returns false. This means that an object is not equal to itself, and it is impossible to create useful Maps or Sets of this class. More fundamentally, it means +that equals is not reflexive, one of the requirements of the equals method.

+

The likely intended semantics are object identity: that an object is equal to itself. This is the behavior inherited from class Object. If you need to override an equals inherited from a different +superclass, you can use use: +

+public boolean equals(Object o) { return this == o; }
+
+

+ + +

Eq: equals method always returns true (EQ_ALWAYS_TRUE)

+ + +

This class defines an equals method that always returns true. This is imaginative, but not very smart. +Plus, it means that the equals method is not symmetric. +

+ + +

Eq: equals method compares class names rather than class objects (EQ_COMPARING_CLASS_NAMES)

+ + +

This method checks to see if two objects are the same class by checking to see if the names +of their classes are equal. You can have different classes with the same name if they are loaded by +different class loaders. Just check to see if the class objects are the same. +

+ + +

Eq: Covariant equals() method defined for enum (EQ_DONT_DEFINE_EQUALS_FOR_ENUM)

+ + +

This class defines an enumeration, and equality on enumerations are defined +using object identity. Defining a covariant equals method for an enumeration +value is exceptionally bad practice, since it would likely result +in having two different enumeration values that compare as equals using +the covariant enum method, and as not equal when compared normally. +Don't do it. +

+ + +

Eq: equals() method defined that doesn't override equals(Object) (EQ_OTHER_NO_OBJECT)

+ + +

This class defines an equals() + method, that doesn't override the normal equals(Object) method + defined in the base java.lang.Object class.  Instead, it + inherits an equals(Object) method from a superclass. + The class should probably define a boolean equals(Object) method. +

+ + +

Eq: equals() method defined that doesn't override Object.equals(Object) (EQ_OTHER_USE_OBJECT)

+ + +

This class defines an equals() + method, that doesn't override the normal equals(Object) method + defined in the base java.lang.Object class.  + The class should probably define a boolean equals(Object) method. +

+ + +

Eq: equals method overrides equals in superclass and may not be symmetric (EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC)

+ + +

This class defines an equals method that overrides an equals method in a superclass. Both equals methods +methods use instanceof in the determination of whether two objects are equal. This is fraught with peril, +since it is important that the equals method is symmetrical (in other words, a.equals(b) == b.equals(a)). +If B is a subtype of A, and A's equals method checks that the argument is an instanceof A, and B's equals method +checks that the argument is an instanceof B, it is quite likely that the equivalence relation defined by these +methods is not symmetric. +

+ + +

Eq: Covariant equals() method defined, Object.equals(Object) inherited (EQ_SELF_USE_OBJECT)

+ + +

This class defines a covariant version of the equals() + method, but inherits the normal equals(Object) method + defined in the base java.lang.Object class.  + The class should probably define a boolean equals(Object) method. +

+ + +

FE: Doomed test for equality to NaN (FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER)

+ + +

+ This code checks to see if a floating point value is equal to the special + Not A Number value (e.g., if (x == Double.NaN)). However, + because of the special semantics of NaN, no value + is equal to Nan, including NaN. Thus, + x == Double.NaN always evaluates to false. + + To check to see if a value contained in x + is the special Not A Number value, use + Double.isNaN(x) (or Float.isNaN(x) if + x is floating point precision). +

+ + +

FS: Format string placeholder incompatible with passed argument (VA_FORMAT_STRING_BAD_ARGUMENT)

+ + +

+The format string placeholder is incompatible with the corresponding +argument. For example, + + System.out.println("%d\n", "hello"); + +

The %d placeholder requires a numeric argument, but a string value is +passed instead. +A runtime exception will occur when +this statement is executed. +

+ + +

FS: The type of a supplied argument doesn't match format specifier (VA_FORMAT_STRING_BAD_CONVERSION)

+ + +

+One of the arguments is uncompatible with the corresponding format string specifier. +As a result, this will generate a runtime exception when executed. +For example, String.format("%d", "1") will generate an exception, since +the String "1" is incompatible with the format specifier %d. +

+ + +

FS: MessageFormat supplied where printf style format expected (VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED)

+ + +

+A method is called that expects a Java printf format string and a list of arguments. +However, the format string doesn't contain any format specifiers (e.g., %s) but +does contain message format elements (e.g., {0}). It is likely +that the code is supplying a MessageFormat string when a printf-style format string +is required. At runtime, all of the arguments will be ignored +and the format string will be returned exactly as provided without any formatting. +

+

+ + +

FS: More arguments are passed than are actually used in the format string (VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED)

+ + +

+A format-string method with a variable number of arguments is called, +but more arguments are passed than are actually used by the format string. +This won't cause a runtime exception, but the code may be silently omitting +information that was intended to be included in the formatted string. +

+ + +

FS: Illegal format string (VA_FORMAT_STRING_ILLEGAL)

+ + +

+The format string is syntactically invalid, +and a runtime exception will occur when +this statement is executed. +

+ + +

FS: Format string references missing argument (VA_FORMAT_STRING_MISSING_ARGUMENT)

+ + +

+Not enough arguments are passed to satisfy a placeholder in the format string. +A runtime exception will occur when +this statement is executed. +

+ + +

FS: No previous argument for format string (VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT)

+ + +

+The format string specifies a relative index to request that the argument for the previous format specifier +be reused. However, there is no previous argument. +For example, +

+

formatter.format("%<s %s", "a", "b") +

+

would throw a MissingFormatArgumentException when executed. +

+ + +

GC: No relationship between generic parameter and method argument (GC_UNRELATED_TYPES)

+ + +

This call to a generic collection method contains an argument + with an incompatible class from that of the collection's parameter + (i.e., the type of the argument is neither a supertype nor a subtype + of the corresponding generic type argument). + Therefore, it is unlikely that the collection contains any objects + that are equal to the method argument used here. + Most likely, the wrong value is being passed to the method.

+

In general, instances of two unrelated classes are not equal. + For example, if the Foo and Bar classes + are not related by subtyping, then an instance of Foo + should not be equal to an instance of Bar. + Among other issues, doing so will likely result in an equals method + that is not symmetrical. For example, if you define the Foo class + so that a Foo can be equal to a String, + your equals method isn't symmetrical since a String can only be equal + to a String. +

+

In rare cases, people do define nonsymmetrical equals methods and still manage to make + their code work. Although none of the APIs document or guarantee it, it is typically + the case that if you check if a Collection<String> contains + a Foo, the equals method of argument (e.g., the equals method of the + Foo class) used to perform the equality checks. +

+ + +

HE: Signature declares use of unhashable class in hashed construct (HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS)

+ + +

A method, field or class declares a generic signature where a non-hashable class +is used in context where a hashable class is required. +A class that declares an equals method but inherits a hashCode() method +from Object is unhashable, since it doesn't fulfill the requirement that +equal objects have equal hashCodes. +

+ + +

HE: Use of class without a hashCode() method in a hashed data structure (HE_USE_OF_UNHASHABLE_CLASS)

+ + +

A class defines an equals(Object) method but not a hashCode() method, +and thus doesn't fulfill the requirement that equal objects have equal hashCodes. +An instance of this class is used in a hash data structure, making the need to +fix this problem of highest importance. + + +

ICAST: int value converted to long and used as absolute time (ICAST_INT_2_LONG_AS_INSTANT)

+ + +

+This code converts a 32-bit int value to a 64-bit long value, and then +passes that value for a method parameter that requires an absolute time value. +An absolute time value is the number +of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT. +For example, the following method, intended to convert seconds since the epoc into a Date, is badly +broken:

+
+Date getDate(int seconds) { return new Date(seconds * 1000); }
+
+

The multiplication is done using 32-bit arithmetic, and then converted to a 64-bit value. +When a 32-bit value is converted to 64-bits and used to express an absolute time +value, only dates in December 1969 and January 1970 can be represented.

+ +

Correct implementations for the above method are:

+ +
+// Fails for dates after 2037
+Date getDate(int seconds) { return new Date(seconds * 1000L); }
+
+// better, works for all dates
+Date getDate(long seconds) { return new Date(seconds * 1000); }
+
+ + +

ICAST: integral value cast to double and then passed to Math.ceil (ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL)

+ + +

+This code converts an integral value (e.g., int or long) +to a double precision +floating point number and then +passing the result to the Math.ceil() function, which rounds a double to +the next higher integer value. This operation should always be a no-op, +since the converting an integer to a double should give a number with no fractional part. +It is likely that the operation that generated the value to be passed +to Math.ceil was intended to be performed using double precision +floating point arithmetic. +

+ + + +

ICAST: int value cast to float and then passed to Math.round (ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND)

+ + +

+This code converts an int value to a float precision +floating point number and then +passing the result to the Math.round() function, which returns the int/long closest +to the argument. This operation should always be a no-op, +since the converting an integer to a float should give a number with no fractional part. +It is likely that the operation that generated the value to be passed +to Math.round was intended to be performed using +floating point arithmetic. +

+ + + +

IJU: JUnit assertion in run method will not be noticed by JUnit (IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD)

+ + +

A JUnit assertion is performed in a run method. Failed JUnit assertions +just result in exceptions being thrown. +Thus, if this exception occurs in a thread other than the thread that invokes +the test method, the exception will terminate the thread but not result +in the test failing. +

+ + +

IJU: TestCase declares a bad suite method (IJU_BAD_SUITE_METHOD)

+ + +

Class is a JUnit TestCase and defines a suite() method. +However, the suite method needs to be declared as either +

public static junit.framework.Test suite()
+or +
public static junit.framework.TestSuite suite()
+

+ + +

IJU: TestCase has no tests (IJU_NO_TESTS)

+ + +

Class is a JUnit TestCase but has not implemented any test methods

+ + +

IJU: TestCase defines setUp that doesn't call super.setUp() (IJU_SETUP_NO_SUPER)

+ + +

Class is a JUnit TestCase and implements the setUp method. The setUp method should call +super.setUp(), but doesn't.

+ + +

IJU: TestCase implements a non-static suite method (IJU_SUITE_NOT_STATIC)

+ + +

Class is a JUnit TestCase and implements the suite() method. + The suite method should be declared as being static, but isn't.

+ + +

IJU: TestCase defines tearDown that doesn't call super.tearDown() (IJU_TEARDOWN_NO_SUPER)

+ + +

Class is a JUnit TestCase and implements the tearDown method. The tearDown method should call +super.tearDown(), but doesn't.

+ + +

IL: A collection is added to itself (IL_CONTAINER_ADDED_TO_ITSELF)

+ + +

A collection is added to itself. As a result, computing the hashCode of this +set will throw a StackOverflowException. +

+ + +

IL: An apparent infinite loop (IL_INFINITE_LOOP)

+ + +

This loop doesn't seem to have a way to terminate (other than by perhaps +throwing an exception).

+ + +

IL: An apparent infinite recursive loop (IL_INFINITE_RECURSIVE_LOOP)

+ + +

This method unconditionally invokes itself. This would seem to indicate +an infinite recursive loop that will result in a stack overflow.

+ + +

IM: Integer multiply of result of integer remainder (IM_MULTIPLYING_RESULT_OF_IREM)

+ + +

+The code multiplies the result of an integer remaining by an integer constant. +Be sure you don't have your operator precedence confused. For example +i % 60 * 1000 is (i % 60) * 1000, not i % (60 * 1000). +

+ + +

INT: Bad comparison of int value with long constant (INT_BAD_COMPARISON_WITH_INT_VALUE)

+ + +

This code compares an int value with a long constant that is outside +the range of values that can be represented as an int value. +This comparison is vacuous and possibily to be incorrect. +

+ + +

INT: Bad comparison of nonnegative value with negative constant (INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE)

+ + +

This code compares a value that is guaranteed to be non-negative with a negative constant. +

+ + +

INT: Bad comparison of signed byte (INT_BAD_COMPARISON_WITH_SIGNED_BYTE)

+ + +

Signed bytes can only have a value in the range -128 to 127. Comparing +a signed byte with a value outside that range is vacuous and likely to be incorrect. +To convert a signed byte b to an unsigned value in the range 0..255, +use 0xff & b +

+ + +

IO: Doomed attempt to append to an object output stream (IO_APPENDING_TO_OBJECT_OUTPUT_STREAM)

+ + +

+ This code opens a file in append mode and then wraps the result in an object output stream. + This won't allow you to append to an existing object output stream stored in a file. If you want to be + able to append to an object output stream, you need to keep the object output stream open. +

+

The only situation in which opening a file in append mode and the writing an object output stream + could work is if on reading the file you plan to open it in random access mode and seek to the byte offset + where the append started. +

+ +

+ TODO: example. +

+ + +

IP: A parameter is dead upon entry to a method but overwritten (IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN)

+ + +

+The initial value of this parameter is ignored, and the parameter +is overwritten here. This often indicates a mistaken belief that +the write to the parameter will be conveyed back to +the caller. +

+ + +

MF: Class defines field that masks a superclass field (MF_CLASS_MASKS_FIELD)

+ + +

This class defines a field with the same name as a visible +instance field in a superclass. This is confusing, and +may indicate an error if methods update or access one of +the fields when they wanted the other.

+ + +

MF: Method defines a variable that obscures a field (MF_METHOD_MASKS_FIELD)

+ + +

This method defines a local variable with the same name as a field +in this class or a superclass. This may cause the method to +read an uninitialized value from the field, leave the field uninitialized, +or both.

+ + +

NP: Null pointer dereference (NP_ALWAYS_NULL)

+ + +

A null pointer is dereferenced here.  This will lead to a +NullPointerException when the code is executed.

+ + +

NP: Null pointer dereference in method on exception path (NP_ALWAYS_NULL_EXCEPTION)

+ + +

A pointer which is null on an exception path is dereferenced here.  +This will lead to a NullPointerException when the code is executed.  +Note that because FindBugs currently does not prune infeasible exception paths, +this may be a false warning.

+ +

Also note that FindBugs considers the default case of a switch statement to +be an exception path, since the default case is often infeasible.

+ + +

NP: Method does not check for null argument (NP_ARGUMENT_MIGHT_BE_NULL)

+ + +

+ A parameter to this method has been identified as a value that should + always be checked to see whether or not it is null, but it is being dereferenced + without a preceding null check. +

+ + +

NP: close() invoked on a value that is always null (NP_CLOSING_NULL)

+ + +

close() is being invoked on a value that is always null. If this statement is executed, +a null pointer exception will occur. But the big risk here you never close +something that should be closed. + + +

NP: Null value is guaranteed to be dereferenced (NP_GUARANTEED_DEREF)

+ + +

+ There is a statement or branch that if executed guarantees that + a value is null at this point, and that + value that is guaranteed to be dereferenced + (except on forward paths involving runtime exceptions). +

+

Note that a check such as + if (x == null) throw new NullPointerException();x. + + +

NP: Value is null and guaranteed to be dereferenced on exception path (NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH)

+ + +

+ There is a statement or branch on an exception path + that if executed guarantees that + a value is null at this point, and that + value that is guaranteed to be dereferenced + (except on forward paths involving runtime exceptions). +

+ + +

NP: Method call passes null to a nonnull parameter (NP_NONNULL_PARAM_VIOLATION)

+ + +

+ This method passes a null value as the parameter of a method which + must be nonnull. Either this parameter has been explicitly marked + as @Nonnull, or analysis has determined that this parameter is + always dereferenced. +

+ + +

NP: Method may return null, but is declared @NonNull (NP_NONNULL_RETURN_VIOLATION)

+ + +

+ This method may return a null value, but the method (or a superclass method + which it overrides) is declared to return @NonNull. +

+ + +

NP: A known null value is checked to see if it is an instance of a type (NP_NULL_INSTANCEOF)

+ + +

+This instanceof test will always return false, since the value being checked is guaranteed to be null. +Although this is safe, make sure it isn't +an indication of some misunderstanding or some other logic error. +

+ + +

NP: Possible null pointer dereference (NP_NULL_ON_SOME_PATH)

+ + +

There is a branch of statement that, if executed, guarantees that +a null value will be dereferenced, which +would generate a NullPointerException when the code is executed. +Of course, the problem might be that the branch or statement is infeasible and that +the null pointer exception can't ever be executed; deciding that is beyond the ability of FindBugs. +

+ + +

NP: Possible null pointer dereference in method on exception path (NP_NULL_ON_SOME_PATH_EXCEPTION)

+ + +

A reference value which is null on some exception control path is +dereferenced here.  This may lead to a NullPointerException +when the code is executed.  +Note that because FindBugs currently does not prune infeasible exception paths, +this may be a false warning.

+ +

Also note that FindBugs considers the default case of a switch statement to +be an exception path, since the default case is often infeasible.

+ + +

NP: Method call passes null for nonnull parameter (NP_NULL_PARAM_DEREF)

+ + +

+ This method call passes a null value for a nonnull method parameter. + Either the parameter is annotated as a parameter that should + always be nonnull, or analysis has shown that it will always be + dereferenced. +

+ + +

NP: Method call passes null for nonnull parameter (NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS)

+ + +

+ A possibly-null value is passed at a call site where all known + target methods require the parameter to be nonnull. + Either the parameter is annotated as a parameter that should + always be nonnull, or analysis has shown that it will always be + dereferenced. +

+ + +

NP: Non-virtual method call passes null for nonnull parameter (NP_NULL_PARAM_DEREF_NONVIRTUAL)

+ + +

+ A possibly-null value is passed to a nonnull method parameter. + Either the parameter is annotated as a parameter that should + always be nonnull, or analysis has shown that it will always be + dereferenced. +

+ + +

NP: Store of null value into field annotated NonNull (NP_STORE_INTO_NONNULL_FIELD)

+ + +

A value that could be null is stored into a field that has been annotated as NonNull.

+ + +

NP: Read of unwritten field (NP_UNWRITTEN_FIELD)

+ + +

The program is dereferencing a field that does not seem to ever have a non-null value written to it. +Unless the field is initialized via some mechanism not seen by the analysis, +dereferencing this value will generate a null pointer exception. +

+ + +

Nm: Class defines equal(Object); should it be equals(Object)? (NM_BAD_EQUAL)

+ + +

This class defines a method equal(Object).  This method does +not override the equals(Object) method in java.lang.Object, +which is probably what was intended.

+ + +

Nm: Class defines hashcode(); should it be hashCode()? (NM_LCASE_HASHCODE)

+ + +

This class defines a method called hashcode().  This method + does not override the hashCode() method in java.lang.Object, + which is probably what was intended.

+ + +

Nm: Class defines tostring(); should it be toString()? (NM_LCASE_TOSTRING)

+ + +

This class defines a method called tostring().  This method + does not override the toString() method in java.lang.Object, + which is probably what was intended.

+ + +

Nm: Apparent method/constructor confusion (NM_METHOD_CONSTRUCTOR_CONFUSION)

+ + +

This regular method has the same name as the class it is defined in. It is likely that this was intended to be a constructor. + If it was intended to be a constructor, remove the declaration of a void return value. + If you had accidently defined this method, realized the mistake, defined a proper constructor + but can't get rid of this method due to backwards compatibility, deprecate the method. +

+ + +

Nm: Very confusing method names (NM_VERY_CONFUSING)

+ + +

The referenced methods have names that differ only by capitalization. +This is very confusing because if the capitalization were +identical then one of the methods would override the other. +

+ + +

Nm: Method doesn't override method in superclass due to wrong package for parameter (NM_WRONG_PACKAGE)

+ + +

The method in the subclass doesn't override a similar method in a superclass because the type of a parameter doesn't exactly match +the type of the corresponding parameter in the superclass. For example, if you have:

+ +
+
+import alpha.Foo;
+public class A {
+  public int f(Foo x) { return 17; }
+}
+----
+import beta.Foo;
+public class B extends A {
+  public int f(Foo x) { return 42; }
+}
+
+
+ +

The f(Foo) method defined in class B doesn't +override the +f(Foo) method defined in class A, because the argument +types are Foo's from different packages. +

+ + +

QBA: Method assigns boolean literal in boolean expression (QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT)

+ + +

+ This method assigns a literal boolean value (true or false) to a boolean variable inside + an if or while expression. Most probably this was supposed to be a boolean comparison using + ==, not an assignment using =. +

+ + +

RC: Suspicious reference comparison (RC_REF_COMPARISON)

+ + +

This method compares two reference values using the == or != operator, +where the correct way to compare instances of this type is generally +with the equals() method. +It is possible to create distinct instances that are equal but do not compare as == since +they are different objects. +Examples of classes which should generally +not be compared by reference are java.lang.Integer, java.lang.Float, etc.

+ + +

RCN: Nullcheck of value previously dereferenced (RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE)

+ + +

A value is checked here to see whether it is null, but this value can't +be null because it was previously dereferenced and if it were null a null pointer +exception would have occurred at the earlier dereference. +Essentially, this code and the previous dereference +disagree as to whether this value is allowed to be null. Either the check is redundant +or the previous dereference is erroneous.

+ + +

RE: Invalid syntax for regular expression (RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION)

+ + +

+The code here uses a regular expression that is invalid according to the syntax +for regular expressions. This statement will throw a PatternSyntaxException when +executed. +

+ + +

RE: File.separator used for regular expression (RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION)

+ + +

+The code here uses File.separator +where a regular expression is required. This will fail on Windows +platforms, where the File.separator is a backslash, which is interpreted in a +regular expression as an escape character. Amoung other options, you can just use +File.separatorChar=='\\' ? "\\\\" : File.separator instead of +File.separator + +

+ + +

RE: "." used for regular expression (RE_POSSIBLE_UNINTENDED_PATTERN)

+ + +

+A String function is being invoked and "." is being passed +to a parameter that takes a regular expression as an argument. Is this what you intended? +For example +s.replaceAll(".", "/") will return a String in which every +character has been replaced by a / character, +and s.split(".") always returns a zero length array of String. +

+ + +

RV: Random value from 0 to 1 is coerced to the integer 0 (RV_01_TO_INT)

+ + +

A random value from 0 to 1 is being coerced to the integer value 0. You probably +want to multiple the random value by something else before coercing it to an integer, or use the Random.nextInt(n) method. +

+ + +

RV: Bad attempt to compute absolute value of signed 32-bit hashcode (RV_ABSOLUTE_VALUE_OF_HASHCODE)

+ + +

This code generates a hashcode and then computes +the absolute value of that hashcode. If the hashcode +is Integer.MIN_VALUE, then the result will be negative as well (since +Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE). +

+

One out of 2^32 strings have a hashCode of Integer.MIN_VALUE, +including "polygenelubricants" "GydZG_" and ""DESIGNING WORKHOUSES". +

+ + +

RV: Bad attempt to compute absolute value of signed random integer (RV_ABSOLUTE_VALUE_OF_RANDOM_INT)

+ + +

This code generates a random signed integer and then computes +the absolute value of that random integer. If the number returned by the random number +generator is Integer.MIN_VALUE, then the result will be negative as well (since +Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE). (Same problem arised for long values as well). +

+ + +

RV: Code checks for specific values returned by compareTo (RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE)

+ + +

This code invoked a compareTo or compare method, and checks to see if the return value is a specific value, +such as 1 or -1. When invoking these methods, you should only check the sign of the result, not for any specific +non-zero value. While many or most compareTo and compare methods only return -1, 0 or 1, some of them +will return other values. + + +

RV: Exception created and dropped rather than thrown (RV_EXCEPTION_NOT_THROWN)

+ + +

This code creates an exception (or error) object, but doesn't do anything with it. For example, +something like

+
+
+if (x < 0)
+  new IllegalArgumentException("x must be nonnegative");
+
+
+

It was probably the intent of the programmer to throw the created exception:

+
+
+if (x < 0)
+  throw new IllegalArgumentException("x must be nonnegative");
+
+
+ + +

RV: Method ignores return value (RV_RETURN_VALUE_IGNORED)

+ + +

The return value of this method should be checked. One common +cause of this warning is to invoke a method on an immutable object, +thinking that it updates the object. For example, in the following code +fragment,

+
+
+String dateString = getHeaderField(name);
+dateString.trim();
+
+
+

the programmer seems to be thinking that the trim() method will update +the String referenced by dateString. But since Strings are immutable, the trim() +function returns a new String value, which is being ignored here. The code +should be corrected to:

+
+
+String dateString = getHeaderField(name);
+dateString = dateString.trim();
+
+
+ + +

RpC: Repeated conditional tests (RpC_REPEATED_CONDITIONAL_TEST)

+ + +

The code contains a conditional test is performed twice, one right after the other +(e.g., x == 0 || x == 0). Perhaps the second occurrence is intended to be something else +(e.g., x == 0 || y == 0). +

+ + +

SA: Self assignment of field (SA_FIELD_SELF_ASSIGNMENT)

+ + +

This method contains a self assignment of a field; e.g. +

+
+  int x;
+  public void foo() {
+    x = x;
+  }
+
+

Such assignments are useless, and may indicate a logic error or typo.

+ + +

SA: Self comparison of field with itself (SA_FIELD_SELF_COMPARISON)

+ + +

This method compares a field with itself, and may indicate a typo or +a logic error. Make sure that you are comparing the right things. +

+ + +

SA: Nonsensical self computation involving a field (e.g., x & x) (SA_FIELD_SELF_COMPUTATION)

+ + +

This method performs a nonsensical computation of a field with another +reference to the same field (e.g., x&x or x-x). Because of the nature +of the computation, this operation doesn't seem to make sense, +and may indicate a typo or +a logic error. Double check the computation. +

+ + +

SA: Self assignment of local rather than assignment to field (SA_LOCAL_SELF_ASSIGNMENT_INSTEAD_OF_FIELD)

+ + +

This method contains a self assignment of a local variable, and there +is a field with an identical name. +assignment appears to have been ; e.g.

+
+  int foo;
+  public void setFoo(int foo) {
+    foo = foo;
+  }
+
+

The assignment is useless. Did you mean to assign to the field instead?

+ + +

SA: Self comparison of value with itself (SA_LOCAL_SELF_COMPARISON)

+ + +

This method compares a local variable with itself, and may indicate a typo or +a logic error. Make sure that you are comparing the right things. +

+ + +

SA: Nonsensical self computation involving a variable (e.g., x & x) (SA_LOCAL_SELF_COMPUTATION)

+ + +

This method performs a nonsensical computation of a local variable with another +reference to the same variable (e.g., x&x or x-x). Because of the nature +of the computation, this operation doesn't seem to make sense, +and may indicate a typo or +a logic error. Double check the computation. +

+ + +

SF: Dead store due to switch statement fall through (SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH)

+ + +

A value stored in the previous switch case is overwritten here due to a switch fall through. It is likely that + you forgot to put a break or return at the end of the previous case. +

+ + +

SF: Dead store due to switch statement fall through to throw (SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW)

+ + +

A value stored in the previous switch case is ignored here due to a switch fall through to a place where + an exception is thrown. It is likely that + you forgot to put a break or return at the end of the previous case. +

+ + +

SIC: Deadly embrace of non-static inner class and thread local (SIC_THREADLOCAL_DEADLY_EMBRACE)

+ + +

This class is an inner class, but should probably be a static inner class. + As it is, there is a serious danger of a deadly embrace between the inner class + and the thread local in the outer class. Because the inner class isn't static, + it retains a reference to the outer class. + If the thread local contains a reference to an instance of the inner + class, the inner and outer instance will both be reachable + and not eligible for garbage collection. +

+ + +

SIO: Unnecessary type check done using instanceof operator (SIO_SUPERFLUOUS_INSTANCEOF)

+ + +

Type check performed using the instanceof operator where it can be statically determined whether the object +is of the type requested.

+ + +

SQL: Method attempts to access a prepared statement parameter with index 0 (SQL_BAD_PREPARED_STATEMENT_ACCESS)

+ + +

A call to a setXXX method of a prepared statement was made where the +parameter index is 0. As parameter indexes start at index 1, this is always a mistake.

+ + +

SQL: Method attempts to access a result set field with index 0 (SQL_BAD_RESULTSET_ACCESS)

+ + +

A call to getXXX or updateXXX methods of a result set was made where the +field index is 0. As ResultSet fields start at index 1, this is always a mistake.

+ + +

STI: Unneeded use of currentThread() call, to call interrupted() (STI_INTERRUPTED_ON_CURRENTTHREAD)

+ + +

+This method invokes the Thread.currentThread() call, just to call the interrupted() method. As interrupted() is a +static method, is more simple and clear to use Thread.interrupted(). +

+ + +

STI: Static Thread.interrupted() method invoked on thread instance (STI_INTERRUPTED_ON_UNKNOWNTHREAD)

+ + +

+This method invokes the Thread.interrupted() method on a Thread object that appears to be a Thread object that is +not the current thread. As the interrupted() method is static, the interrupted method will be called on a different +object than the one the author intended. +

+ + +

Se: Method must be private in order for serialization to work (SE_METHOD_MUST_BE_PRIVATE)

+ + +

This class implements the Serializable interface, and defines a method + for custom serialization/deserialization. But since that method isn't declared private, + it will be silently ignored by the serialization/deserialization API.

+ + +

Se: The readResolve method must not be declared as a static method. (SE_READ_RESOLVE_IS_STATIC)

+ + +

In order for the readResolve method to be recognized by the serialization +mechanism, it must not be declared as a static method. +

+ + +

TQ: Value annotated as carrying a type qualifier used where a value that must not carry that qualifier is required (TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED)

+ + +

+ A value specified as carrying a type qualifier annotation is + consumed in a location or locations requiring that the value not + carry that annotation. +

+ +

+ More precisely, a value annotated with a type qualifier specifying when=ALWAYS + is guaranteed to reach a use or uses where the same type qualifier specifies when=NEVER. +

+ +

+ For example, say that @NonNegative is a nickname for + the type qualifier annotation @Negative(when=When.NEVER). + The following code will generate this warning because + the return statement requires a @NonNegative value, + but receives one that is marked as @Negative. +

+
+
+public @NonNegative Integer example(@Negative Integer value) {
+    return value;
+}
+
+
+ + +

TQ: Value that might not carry a type qualifier is always used in a way requires that type qualifier (TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK)

+ + +

+ A value that is annotated as possibility not being an instance of + the values denoted by the type qualifier, and the value is guaranteed to be used + in a way that requires values denoted by that type qualifier. +

+ + +

TQ: Value that might carry a type qualifier is always used in a way prohibits it from having that type qualifier (TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK)

+ + +

+ A value that is annotated as possibility being an instance of + the values denoted by the type qualifier, and the value is guaranteed to be used + in a way that prohibits values denoted by that type qualifier. +

+ + +

TQ: Value annotated as never carrying a type qualifier used where value carrying that qualifier is required (TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED)

+ + +

+ A value specified as not carrying a type qualifier annotation is guaranteed + to be consumed in a location or locations requiring that the value does + carry that annotation. +

+ +

+ More precisely, a value annotated with a type qualifier specifying when=NEVER + is guaranteed to reach a use or uses where the same type qualifier specifies when=ALWAYS. +

+ +

+ TODO: example +

+ + +

UMAC: Uncallable method defined in anonymous class (UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS)

+ + +

This anonymous class defined a method that is not directly invoked and does not override +a method in a superclass. Since methods in other classes cannot directly invoke methods +declared in an anonymous class, it seems that this method is uncallable. The method +might simply be dead code, but it is also possible that the method is intended to +override a method declared in a superclass, and due to an typo or other error the method does not, +in fact, override the method it is intended to. +

+ + +

UR: Uninitialized read of field in constructor (UR_UNINIT_READ)

+ + +

This constructor reads a field which has not yet been assigned a value.  + This is often caused when the programmer mistakenly uses the field instead + of one of the constructor's parameters.

+ + +

UR: Uninitialized read of field method called from constructor of superclass (UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR)

+ + +

This method is invoked in the constructor of of the superclass. At this point, + the fields of the class have not yet initialized.

+

To make this more concrete, consider the following classes:

+
abstract class A {
+  int hashCode;
+  abstract Object getValue();
+  A() {
+    hashCode = getValue().hashCode();
+    }
+  }
+class B extends A {
+  Object value;
+  B(Object v) {
+    this.value = v;
+    }
+  Object getValue() {
+    return value;
+  }
+  }
+

When a B is constructed, +the constructor for the A class is invoked +before the constructor for B sets value. +Thus, when the constructor for A invokes getValue, +an uninitialized value is read for value +

+ + +

USELESS_STRING: Invocation of toString on an array (DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY)

+ + +

+The code invokes toString on an (anonymous) array. Calling toString on an array generates a fairly useless result +such as [C@16f0472. Consider using Arrays.toString to convert the array into a readable +String that gives the contents of the array. See Programming Puzzlers, chapter 3, puzzle 12. +

+ + +

USELESS_STRING: Invocation of toString on an array (DMI_INVOKING_TOSTRING_ON_ARRAY)

+ + +

+The code invokes toString on an array, which will generate a fairly useless result +such as [C@16f0472. Consider using Arrays.toString to convert the array into a readable +String that gives the contents of the array. See Programming Puzzlers, chapter 3, puzzle 12. +

+ + +

USELESS_STRING: Array formatted in useless way using format string (VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY)

+ + +

+One of the arguments being formatted with a format string is an array. This will be formatted +using a fairly useless format, such as [I@304282, which doesn't actually show the contents +of the array. +Consider wrapping the array using Arrays.asList(...) before handling it off to a formatted. +

+ + +

UwF: Field only ever set to null (UWF_NULL_FIELD)

+ + +

All writes to this field are of the constant value null, and thus +all reads of the field will return null. +Check for errors, or remove it if it is useless.

+ + +

UwF: Unwritten field (UWF_UNWRITTEN_FIELD)

+ + +

This field is never written.  All reads of it will return the default +value. Check for errors (should it have been initialized?), or remove it if it is useless.

+ + +

VA: Primitive array passed to function expecting a variable number of object arguments (VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG)

+ + +

+This code passes a primitive array to a function that takes a variable number of object arguments. +This creates an array of length one to hold the primitive array and passes it to the function. +

+ + +

LG: Potential lost logger changes due to weak reference in OpenJDK (LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE)

+ + +

OpenJDK introduces a potential incompatibility. + In particular, the java.util.logging.Logger behavior has + changed. Instead of using strong references, it now uses weak references + internally. That's a reasonable change, but unfortunately some code relies on + the old behavior - when changing logger configuration, it simply drops the + logger reference. That means that the garbage collector is free to reclaim + that memory, which means that the logger configuration is lost. For example, +consider: +

+ +

public static void initLogging() throws Exception {
+ Logger logger = Logger.getLogger("edu.umd.cs");
+ logger.addHandler(new FileHandler()); // call to change logger configuration
+ logger.setUseParentHandlers(false); // another call to change logger configuration
+}

+ +

The logger reference is lost at the end of the method (it doesn't +escape the method), so if you have a garbage collection cycle just +after the call to initLogging, the logger configuration is lost +(because Logger only keeps weak references).

+ +

public static void main(String[] args) throws Exception {
+ initLogging(); // adds a file handler to the logger
+ System.gc(); // logger configuration lost
+ Logger.getLogger("edu.umd.cs").info("Some message"); // this isn't logged to the file as expected
+}

+

Ulf Ochsenfahrt and Eric Fellheimer

+ + +

OBL: Method may fail to clean up stream or resource (OBL_UNSATISFIED_OBLIGATION)

+ + +

+ This method may fail to clean up (close, dispose of) a stream, + database object, or other + resource requiring an explicit cleanup operation. +

+ +

+ In general, if a method opens a stream or other resource, + the method should use a try/finally block to ensure that + the stream or resource is cleaned up before the method + returns. +

+ +

+ This bug pattern is essentially the same as the + OS_OPEN_STREAM and ODR_OPEN_DATABASE_RESOURCE + bug patterns, but is based on a different + (and hopefully better) static analysis technique. + We are interested is getting feedback about the + usefulness of this bug pattern. + To send feedback, either: +

+ + +

+ In particular, + the false-positive suppression heuristics for this + bug pattern have not been extensively tuned, so + reports about false positives are helpful to us. +

+ +

+ See Weimer and Necula, Finding and Preventing Run-Time Error Handling Mistakes, for + a description of the analysis technique. +

+ + +

OBL: Method may fail to clean up stream or resource on checked exception (OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE)

+ + +

+ This method may fail to clean up (close, dispose of) a stream, + database object, or other + resource requiring an explicit cleanup operation. +

+ +

+ In general, if a method opens a stream or other resource, + the method should use a try/finally block to ensure that + the stream or resource is cleaned up before the method + returns. +

+ +

+ This bug pattern is essentially the same as the + OS_OPEN_STREAM and ODR_OPEN_DATABASE_RESOURCE + bug patterns, but is based on a different + (and hopefully better) static analysis technique. + We are interested is getting feedback about the + usefulness of this bug pattern. + To send feedback, either: +

+ + +

+ In particular, + the false-positive suppression heuristics for this + bug pattern have not been extensively tuned, so + reports about false positives are helpful to us. +

+ +

+ See Weimer and Necula, Finding and Preventing Run-Time Error Handling Mistakes, for + a description of the analysis technique. +

+ + +

Dm: Consider using Locale parameterized version of invoked method (DM_CONVERT_CASE)

+ + +

A String is being converted to upper or lowercase, using the platform's default encoding. This may + result in improper conversions when used with international characters. Use the

+
    +
  • String.toUpperCase( Locale l )
  • +
  • String.toLowerCase( Locale l )
  • +
+

versions instead.

+ + +

Dm: Reliance on default encoding (DM_DEFAULT_ENCODING)

+ + +

Found a call to a method which will perform a byte to String (or String to byte) conversion, and will assume that the default platform encoding is suitable. This will cause the application behaviour to vary between platforms. Use an alternative API and specify a charset name or Charset object explicitly.

+ + +

DP: Classloaders should only be created inside doPrivileged block (DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED)

+ + +

This code creates a classloader, which needs permission if a security manage is installed. + If this code might be invoked by code that does not + have security permissions, then the classloader creation needs to occur inside a doPrivileged block.

+ + +

DP: Method invoked that should be only be invoked inside a doPrivileged block (DP_DO_INSIDE_DO_PRIVILEGED)

+ + +

This code invokes a method that requires a security permission check. + If this code will be granted security permissions, but might be invoked by code that does not + have security permissions, then the invocation needs to occur inside a doPrivileged block.

+ + +

EI: May expose internal representation by returning reference to mutable object (EI_EXPOSE_REP)

+ + +

Returning a reference to a mutable object value stored in one of the object's fields + exposes the internal representation of the object.  + If instances + are accessed by untrusted code, and unchecked changes to + the mutable object would compromise security or other + important properties, you will need to do something different. + Returning a new copy of the object is better approach in many situations.

+ + +

EI2: May expose internal representation by incorporating reference to mutable object (EI_EXPOSE_REP2)

+ + +

This code stores a reference to an externally mutable object into the + internal representation of the object.  + If instances + are accessed by untrusted code, and unchecked changes to + the mutable object would compromise security or other + important properties, you will need to do something different. + Storing a copy of the object is better approach in many situations.

+ + +

FI: Finalizer should be protected, not public (FI_PUBLIC_SHOULD_BE_PROTECTED)

+ + +

A class's finalize() method should have protected access, + not public.

+ + +

MS: May expose internal static state by storing a mutable object into a static field (EI_EXPOSE_STATIC_REP2)

+ + +

This code stores a reference to an externally mutable object into a static + field. + If unchecked changes to + the mutable object would compromise security or other + important properties, you will need to do something different. + Storing a copy of the object is better approach in many situations.

+ + +

MS: Field isn't final and can't be protected from malicious code (MS_CANNOT_BE_FINAL)

+ + +

+ A mutable static field could be changed by malicious code or + by accident from another package. + Unfortunately, the way the field is used doesn't allow + any easy fix to this problem.

+ + +

MS: Public static method may expose internal representation by returning array (MS_EXPOSE_REP)

+ + +

A public static method returns a reference to + an array that is part of the static state of the class. + Any code that calls this method can freely modify + the underlying array. + One fix is to return a copy of the array.

+ + +

MS: Field should be both final and package protected (MS_FINAL_PKGPROTECT)

+ + +

+ A mutable static field could be changed by malicious code or + by accident from another package. + The field could be made package protected and/or made final + to avoid + this vulnerability.

+ + +

MS: Field is a mutable array (MS_MUTABLE_ARRAY)

+ + +

A final static field references an array + and can be accessed by malicious code or + by accident from another package. + This code can freely modify the contents of the array.

+ + +

MS: Field is a mutable Hashtable (MS_MUTABLE_HASHTABLE)

+ + +

A final static field references a Hashtable + and can be accessed by malicious code or + by accident from another package. + This code can freely modify the contents of the Hashtable.

+ + +

MS: Field should be moved out of an interface and made package protected (MS_OOI_PKGPROTECT)

+ + +

+ A final static field that is +defined in an interface references a mutable + object such as an array or hashtable. + This mutable object could + be changed by malicious code or + by accident from another package. + To solve this, the field needs to be moved to a class + and made package protected + to avoid + this vulnerability.

+ + +

MS: Field should be package protected (MS_PKGPROTECT)

+ + +

A mutable static field could be changed by malicious code or + by accident. + The field could be made package protected to avoid + this vulnerability.

+ + +

MS: Field isn't final but should be (MS_SHOULD_BE_FINAL)

+ + +

+ A mutable static field could be changed by malicious code or + by accident from another package. + The field could be made final to avoid + this vulnerability.

+ + +

AT: Sequence of calls to concurrent abstraction may not be atomic (AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION)

+ + +

This code contains a sequence of calls to a concurrent abstraction + (such as a concurrent hash map). + These calls will not be executed atomically. + + +

DC: Possible double check of field (DC_DOUBLECHECK)

+ + +

This method may contain an instance of double-checked locking.  + This idiom is not correct according to the semantics of the Java memory + model.  For more information, see the web page + http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html.

+ + +

DL: Synchronization on Boolean (DL_SYNCHRONIZATION_ON_BOOLEAN)

+ + +

The code synchronizes on a boxed primitive constant, such as an Boolean. +

+private static Boolean inited = Boolean.FALSE;
+...
+  synchronized(inited) {
+    if (!inited) {
+       init();
+       inited = Boolean.TRUE;
+       }
+     }
+...
+
+

+

Since there normally exist only two Boolean objects, this code could be synchronizing on the same object as other, unrelated code, leading to unresponsiveness +and possible deadlock

+

See CERT CON08-J. Do not synchronize on objects that may be reused for more information.

+ + +

DL: Synchronization on boxed primitive (DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE)

+ + +

The code synchronizes on a boxed primitive constant, such as an Integer. +

+private static Integer count = 0;
+...
+  synchronized(count) {
+     count++;
+     }
+...
+
+

+

Since Integer objects can be cached and shared, +this code could be synchronizing on the same object as other, unrelated code, leading to unresponsiveness +and possible deadlock

+

See CERT CON08-J. Do not synchronize on objects that may be reused for more information.

+ + +

DL: Synchronization on interned String (DL_SYNCHRONIZATION_ON_SHARED_CONSTANT)

+ + +

The code synchronizes on interned String. +

+private static String LOCK = "LOCK";
+...
+  synchronized(LOCK) { ...}
+...
+
+

+

Constant Strings are interned and shared across all other classes loaded by the JVM. Thus, this could +is locking on something that other code might also be locking. This could result in very strange and hard to diagnose +blocking and deadlock behavior. See http://www.javalobby.org/java/forums/t96352.html and http://jira.codehaus.org/browse/JETTY-352. +

See CERT CON08-J. Do not synchronize on objects that may be reused for more information.

+

+ + +

DL: Synchronization on boxed primitive values (DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE)

+ + +

The code synchronizes on an apparently unshared boxed primitive, +such as an Integer. +

+private static final Integer fileLock = new Integer(1);
+...
+  synchronized(fileLock) {
+     .. do something ..
+     }
+...
+
+

+

It would be much better, in this code, to redeclare fileLock as +

+private static final Object fileLock = new Object();
+
+The existing code might be OK, but it is confusing and a +future refactoring, such as the "Remove Boxing" refactoring in IntelliJ, +might replace this with the use of an interned Integer object shared +throughout the JVM, leading to very confusing behavior and potential deadlock. +

+ + +

Dm: Monitor wait() called on Condition (DM_MONITOR_WAIT_ON_CONDITION)

+ + +

+ This method calls wait() on a + java.util.concurrent.locks.Condition object.  + Waiting for a Condition should be done using one of the await() + methods defined by the Condition interface. +

+ + +

Dm: A thread was created using the default empty run method (DM_USELESS_THREAD)

+ + +

This method creates a thread without specifying a run method either by deriving from the Thread class, or + by passing a Runnable object. This thread, then, does nothing but waste time. +

+ + +

ESync: Empty synchronized block (ESync_EMPTY_SYNC)

+ + +

The code contains an empty synchronized block:

+
+synchronized() {}
+
+

Empty synchronized blocks are far more subtle and hard to use correctly +than most people recognize, and empty synchronized blocks +are almost never a better solution +than less contrived solutions. +

+ + +

IS: Inconsistent synchronization (IS2_INCONSISTENT_SYNC)

+ + +

The fields of this class appear to be accessed inconsistently with respect + to synchronization.  This bug report indicates that the bug pattern detector + judged that +

+
    +
  • The class contains a mix of locked and unlocked accesses,
  • +
  • At least one locked access was performed by one of the class's own methods, and
  • +
  • The number of unsynchronized field accesses (reads and writes) was no more than + one third of all accesses, with writes being weighed twice as high as reads
  • +
+ +

A typical bug matching this bug pattern is forgetting to synchronize + one of the methods in a class that is intended to be thread-safe.

+ +

You can select the nodes labeled "Unsynchronized access" to show the + code locations where the detector believed that a field was accessed + without synchronization.

+ +

Note that there are various sources of inaccuracy in this detector; + for example, the detector cannot statically detect all situations in which + a lock is held.  Also, even when the detector is accurate in + distinguishing locked vs. unlocked accesses, the code in question may still + be correct.

+ + + +

IS: Field not guarded against concurrent access (IS_FIELD_NOT_GUARDED)

+ + +

This field is annotated with net.jcip.annotations.GuardedBy, +but can be accessed in a way that seems to violate the annotation.

+ + +

JLM: Synchronization performed on Lock (JLM_JSR166_LOCK_MONITORENTER)

+ + +

This method performs synchronization an object that implements +java.util.concurrent.locks.Lock. Such an object is locked/unlocked +using +acquire()/release() rather +than using the synchronized (...) construct. +

+ + +

JLM: Synchronization performed on util.concurrent instance (JLM_JSR166_UTILCONCURRENT_MONITORENTER)

+ + +

This method performs synchronization an object that is an instance of +a class from the java.util.concurrent package (or its subclasses). Instances +of these classes have their own concurrency control mechanisms that are orthogonal to +the synchronization provided by the Java keyword synchronized. For example, +synchronizing on an AtomicBoolean will not prevent other threads +from modifying the AtomicBoolean.

+

Such code may be correct, but should be carefully reviewed and documented, +and may confuse people who have to maintain the code at a later date. +

+ + +

JLM: Using monitor style wait methods on util.concurrent abstraction (JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT)

+ + +

This method calls +wait(), +notify() or +notifyAll()() +on an object that also provides an +await(), +signal(), +signalAll() method (such as util.concurrent Condition objects). +This probably isn't what you want, and even if you do want it, you should consider changing +your design, as other developers will find it exceptionally confusing. +

+ + +

LI: Incorrect lazy initialization of static field (LI_LAZY_INIT_STATIC)

+ + +

This method contains an unsynchronized lazy initialization of a non-volatile static field. +Because the compiler or processor may reorder instructions, +threads are not guaranteed to see a completely initialized object, +if the method can be called by multiple threads. +You can make the field volatile to correct the problem. +For more information, see the +Java Memory Model web site. +

+ + +

LI: Incorrect lazy initialization and update of static field (LI_LAZY_INIT_UPDATE_STATIC)

+ + +

This method contains an unsynchronized lazy initialization of a static field. +After the field is set, the object stored into that location is further updated or accessed. +The setting of the field is visible to other threads as soon as it is set. If the +futher accesses in the method that set the field serve to initialize the object, then +you have a very serious multithreading bug, unless something else prevents +any other thread from accessing the stored object until it is fully initialized. +

+

Even if you feel confident that the method is never called by multiple +threads, it might be better to not set the static field until the value +you are setting it to is fully populated/initialized. + + +

ML: Synchronization on field in futile attempt to guard that field (ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD)

+ + +

This method synchronizes on a field in what appears to be an attempt +to guard against simultaneous updates to that field. But guarding a field +gets a lock on the referenced object, not on the field. This may not +provide the mutual exclusion you need, and other threads might +be obtaining locks on the referenced objects (for other purposes). An example +of this pattern would be: + +

+private Long myNtfSeqNbrCounter = new Long(0);
+private Long getNotificationSequenceNumber() {
+     Long result = null;
+     synchronized(myNtfSeqNbrCounter) {
+         result = new Long(myNtfSeqNbrCounter.longValue() + 1);
+         myNtfSeqNbrCounter = new Long(result.longValue());
+     }
+     return result;
+ }
+
+ + +

+ + +

ML: Method synchronizes on an updated field (ML_SYNC_ON_UPDATED_FIELD)

+ + +

This method synchronizes on an object + referenced from a mutable field. + This is unlikely to have useful semantics, since different +threads may be synchronizing on different objects.

+ + +

MSF: Mutable servlet field (MSF_MUTABLE_SERVLET_FIELD)

+ + +

A web server generally only creates one instance of servlet or jsp class (i.e., treats +the class as a Singleton), +and will +have multiple threads invoke methods on that instance to service multiple +simultaneous requests. +Thus, having a mutable instance field generally creates race conditions. + + +

MWN: Mismatched notify() (MWN_MISMATCHED_NOTIFY)

+ + +

This method calls Object.notify() or Object.notifyAll() without obviously holding a lock +on the object.  Calling notify() or notifyAll() without a lock held will result in +an IllegalMonitorStateException being thrown.

+ + +

MWN: Mismatched wait() (MWN_MISMATCHED_WAIT)

+ + +

This method calls Object.wait() without obviously holding a lock +on the object.  Calling wait() without a lock held will result in +an IllegalMonitorStateException being thrown.

+ + +

NN: Naked notify (NN_NAKED_NOTIFY)

+ + +

A call to notify() or notifyAll() + was made without any (apparent) accompanying + modification to mutable object state.  In general, calling a notify + method on a monitor is done because some condition another thread is + waiting for has become true.  However, for the condition to be meaningful, + it must involve a heap object that is visible to both threads.

+ +

This bug does not necessarily indicate an error, since the change to + mutable object state may have taken place in a method which then called + the method containing the notification.

+ + +

NP: Synchronize and null check on the same field. (NP_SYNC_AND_NULL_CHECK_FIELD)

+ + +

Since the field is synchronized on, it seems not likely to be null. +If it is null and then synchronized on a NullPointerException will be +thrown and the check would be pointless. Better to synchronize on +another field.

+ + + +

No: Using notify() rather than notifyAll() (NO_NOTIFY_NOT_NOTIFYALL)

+ + +

This method calls notify() rather than notifyAll().  + Java monitors are often used for multiple conditions.  Calling notify() + only wakes up one thread, meaning that the thread woken up might not be the + one waiting for the condition that the caller just satisfied.

+ + +

RS: Class's readObject() method is synchronized (RS_READOBJECT_SYNC)

+ + +

This serializable class defines a readObject() which is + synchronized.  By definition, an object created by deserialization + is only reachable by one thread, and thus there is no need for + readObject() to be synchronized.  If the readObject() + method itself is causing the object to become visible to another thread, + that is an example of very dubious coding style.

+ + +

RV: Return value of putIfAbsent ignored, value passed to putIfAbsent reused (RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED)

+ + + The putIfAbsent method is typically used to ensure that a + single value is associated with a given key (the first value for which put + if absent succeeds). + If you ignore the return value and retain a reference to the value passed in, + you run the risk of retaining a value that is not the one that is associated with the key in the map. + If it matters which one you use and you use the one that isn't stored in the map, + your program will behave incorrectly. + + +

Ru: Invokes run on a thread (did you mean to start it instead?) (RU_INVOKE_RUN)

+ + +

This method explicitly invokes run() on an object.  + In general, classes implement the Runnable interface because + they are going to have their run() method invoked in a new thread, + in which case Thread.start() is the right method to call.

+ + +

SC: Constructor invokes Thread.start() (SC_START_IN_CTOR)

+ + +

The constructor starts a thread. This is likely to be wrong if + the class is ever extended/subclassed, since the thread will be started + before the subclass constructor is started.

+ + +

SP: Method spins on field (SP_SPIN_ON_FIELD)

+ + +

This method spins in a loop which reads a field.  The compiler + may legally hoist the read out of the loop, turning the code into an + infinite loop.  The class should be changed so it uses proper + synchronization (including wait and notify calls).

+ + +

STCAL: Call to static Calendar (STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE)

+ + +

Even though the JavaDoc does not contain a hint about it, Calendars are inherently unsafe for multihtreaded use. +The detector has found a call to an instance of Calendar that has been obtained via a static +field. This looks suspicous.

+

For more information on this see Sun Bug #6231579 +and Sun Bug #6178997.

+ + +

STCAL: Call to static DateFormat (STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE)

+ + +

As the JavaDoc states, DateFormats are inherently unsafe for multithreaded use. +The detector has found a call to an instance of DateFormat that has been obtained via a static +field. This looks suspicous.

+

For more information on this see Sun Bug #6231579 +and Sun Bug #6178997.

+ + +

STCAL: Static Calendar field (STCAL_STATIC_CALENDAR_INSTANCE)

+ + +

Even though the JavaDoc does not contain a hint about it, Calendars are inherently unsafe for multihtreaded use. +Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the +application. Under 1.4 problems seem to surface less often than under Java 5 where you will probably see +random ArrayIndexOutOfBoundsExceptions or IndexOutOfBoundsExceptions in sun.util.calendar.BaseCalendar.getCalendarDateFromFixedDate().

+

You may also experience serialization problems.

+

Using an instance field is recommended.

+

For more information on this see Sun Bug #6231579 +and Sun Bug #6178997.

+ + +

STCAL: Static DateFormat (STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE)

+ + +

As the JavaDoc states, DateFormats are inherently unsafe for multithreaded use. +Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the +application.

+

You may also experience serialization problems.

+

Using an instance field is recommended.

+

For more information on this see Sun Bug #6231579 +and Sun Bug #6178997.

+ + +

SWL: Method calls Thread.sleep() with a lock held (SWL_SLEEP_WITH_LOCK_HELD)

+ + +

+ This method calls Thread.sleep() with a lock held. This may result + in very poor performance and scalability, or a deadlock, since other threads may + be waiting to acquire the lock. It is a much better idea to call + wait() on the lock, which releases the lock and allows other threads + to run. +

+ + +

TLW: Wait with two locks held (TLW_TWO_LOCK_WAIT)

+ + +

Waiting on a monitor while two locks are held may cause + deadlock. +   + Performing a wait only releases the lock on the object + being waited on, not any other locks. +   +This not necessarily a bug, but is worth examining + closely.

+ + +

UG: Unsynchronized get method, synchronized set method (UG_SYNC_SET_UNSYNC_GET)

+ + +

This class contains similarly-named get and set + methods where the set method is synchronized and the get method is not.  + This may result in incorrect behavior at runtime, as callers of the get + method will not necessarily see a consistent state for the object.  + The get method should be made synchronized.

+ + +

UL: Method does not release lock on all paths (UL_UNRELEASED_LOCK)

+ + +

This method acquires a JSR-166 (java.util.concurrent) lock, +but does not release it on all paths out of the method. In general, the correct idiom +for using a JSR-166 lock is: +

+
+    Lock l = ...;
+    l.lock();
+    try {
+        // do something
+    } finally {
+        l.unlock();
+    }
+
+ + +

UL: Method does not release lock on all exception paths (UL_UNRELEASED_LOCK_EXCEPTION_PATH)

+ + +

This method acquires a JSR-166 (java.util.concurrent) lock, +but does not release it on all exception paths out of the method. In general, the correct idiom +for using a JSR-166 lock is: +

+
+    Lock l = ...;
+    l.lock();
+    try {
+        // do something
+    } finally {
+        l.unlock();
+    }
+
+ + +

UW: Unconditional wait (UW_UNCOND_WAIT)

+ + +

This method contains a call to java.lang.Object.wait() which + is not guarded by conditional control flow.  The code should + verify that condition it intends to wait for is not already satisfied + before calling wait; any previous notifications will be ignored. +

+ + +

VO: An increment to a volatile field isn't atomic (VO_VOLATILE_INCREMENT)

+ + +

This code increments a volatile field. Increments of volatile fields aren't +atomic. If more than one thread is incrementing the field at the same time, +increments could be lost. +

+ + +

VO: A volatile reference to an array doesn't treat the array elements as volatile (VO_VOLATILE_REFERENCE_TO_ARRAY)

+ + +

This declares a volatile reference to an array, which might not be what +you want. With a volatile reference to an array, reads and writes of +the reference to the array are treated as volatile, but the array elements +are non-volatile. To get volatile array elements, you will need to use +one of the atomic array classes in java.util.concurrent (provided +in Java 5.0).

+ + +

WL: Synchronization on getClass rather than class literal (WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL)

+ + +

+ This instance method synchronizes on this.getClass(). If this class is subclassed, + subclasses will synchronize on the class object for the subclass, which isn't likely what was intended. + For example, consider this code from java.awt.Label: +

+     private static final String base = "label";
+     private static int nameCounter = 0;
+     String constructComponentName() {
+        synchronized (getClass()) {
+            return base + nameCounter++;
+        }
+     }
+     

+

Subclasses of Label won't synchronize on the same subclass, giving rise to a datarace. + Instead, this code should be synchronizing on Label.class +

+     private static final String base = "label";
+     private static int nameCounter = 0;
+     String constructComponentName() {
+        synchronized (Label.class) {
+            return base + nameCounter++;
+        }
+     }
+     

+

Bug pattern contributed by Jason Mehrens

+ + +

WS: Class's writeObject() method is synchronized but nothing else is (WS_WRITEOBJECT_SYNC)

+ + +

This class has a writeObject() method which is synchronized; + however, no other method of the class is synchronized.

+ + +

Wa: Condition.await() not in loop (WA_AWAIT_NOT_IN_LOOP)

+ + +

This method contains a call to java.util.concurrent.await() + (or variants) + which is not in a loop.  If the object is used for multiple conditions, + the condition the caller intended to wait for might not be the one + that actually occurred.

+ + +

Wa: Wait not in loop (WA_NOT_IN_LOOP)

+ + +

This method contains a call to java.lang.Object.wait() + which is not in a loop.  If the monitor is used for multiple conditions, + the condition the caller intended to wait for might not be the one + that actually occurred.

+ + +

Bx: Primitive value is boxed and then immediately unboxed (BX_BOXING_IMMEDIATELY_UNBOXED)

+ + +

A primitive is boxed, and then immediately unboxed. This probably is due to a manual + boxing in a place where an unboxed value is required, thus forcing the compiler +to immediately undo the work of the boxing. +

+ + +

Bx: Primitive value is boxed then unboxed to perform primitive coercion (BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION)

+ + +

A primitive boxed value constructed and then immediately converted into a different primitive type +(e.g., new Double(d).intValue()). Just perform direct primitive coercion (e.g., (int) d).

+ + +

Bx: Boxed value is unboxed and then immediately reboxed (BX_UNBOXING_IMMEDIATELY_REBOXED)

+ + +

A boxed value is unboxed and then immediately reboxed. +

+ + +

Bx: Method allocates a boxed primitive just to call toString (DM_BOXED_PRIMITIVE_TOSTRING)

+ + +

A boxed primitive is allocated just to call toString(). It is more effective to just use the static + form of toString which takes the primitive value. So,

+ + + + + + + + + +
Replace...With this...
new Integer(1).toString()Integer.toString(1)
new Long(1).toString()Long.toString(1)
new Float(1.0).toString()Float.toString(1.0)
new Double(1.0).toString()Double.toString(1.0)
new Byte(1).toString()Byte.toString(1)
new Short(1).toString()Short.toString(1)
new Boolean(true).toString()Boolean.toString(true)
+ + +

Bx: Method invokes inefficient floating-point Number constructor; use static valueOf instead (DM_FP_NUMBER_CTOR)

+ + +

+ Using new Double(double) is guaranteed to always result in a new object whereas + Double.valueOf(double) allows caching of values to be done by the compiler, class library, or JVM. + Using of cached values avoids object allocation and the code will be faster. +

+

+ Unless the class must be compatible with JVMs predating Java 1.5, + use either autoboxing or the valueOf() method when creating instances of Double and Float. +

+ + +

Bx: Method invokes inefficient Number constructor; use static valueOf instead (DM_NUMBER_CTOR)

+ + +

+ Using new Integer(int) is guaranteed to always result in a new object whereas + Integer.valueOf(int) allows caching of values to be done by the compiler, class library, or JVM. + Using of cached values avoids object allocation and the code will be faster. +

+

+ Values between -128 and 127 are guaranteed to have corresponding cached instances + and using valueOf is approximately 3.5 times faster than using constructor. + For values outside the constant range the performance of both styles is the same. +

+

+ Unless the class must be compatible with JVMs predating Java 1.5, + use either autoboxing or the valueOf() method when creating instances of + Long, Integer, Short, Character, and Byte. +

+ + +

Dm: The equals and hashCode methods of URL are blocking (DMI_BLOCKING_METHODS_ON_URL)

+ + +

The equals and hashCode +method of URL perform domain name resolution, this can result in a big performance hit. +See http://michaelscharf.blogspot.com/2006/11/javaneturlequals-and-hashcode-make.html for more information. +Consider using java.net.URI instead. +

+ + +

Dm: Maps and sets of URLs can be performance hogs (DMI_COLLECTION_OF_URLS)

+ + +

This method or field is or uses a Map or Set of URLs. Since both the equals and hashCode +method of URL perform domain name resolution, this can result in a big performance hit. +See http://michaelscharf.blogspot.com/2006/11/javaneturlequals-and-hashcode-make.html for more information. +Consider using java.net.URI instead. +

+ + +

Dm: Method invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead (DM_BOOLEAN_CTOR)

+ + +

Creating new instances of java.lang.Boolean wastes + memory, since Boolean objects are immutable and there are + only two useful values of this type.  Use the Boolean.valueOf() + method (or Java 1.5 autoboxing) to create Boolean objects instead.

+ + +

Dm: Explicit garbage collection; extremely dubious except in benchmarking code (DM_GC)

+ + +

Code explicitly invokes garbage collection. + Except for specific use in benchmarking, this is very dubious.

+

In the past, situations where people have explicitly invoked + the garbage collector in routines such as close or finalize methods + has led to huge performance black holes. Garbage collection + can be expensive. Any situation that forces hundreds or thousands + of garbage collections will bring the machine to a crawl.

+ + +

Dm: Method allocates an object, only to get the class object (DM_NEW_FOR_GETCLASS)

+ + +

This method allocates an object just to call getClass() on it, in order to + retrieve the Class object for it. It is simpler to just access the .class property of the class.

+ + +

Dm: Use the nextInt method of Random rather than nextDouble to generate a random integer (DM_NEXTINT_VIA_NEXTDOUBLE)

+ + +

If r is a java.util.Random, you can generate a random number from 0 to n-1 +using r.nextInt(n), rather than using (int)(r.nextDouble() * n). +

+

The argument to nextInt must be positive. If, for example, you want to generate a random +value from -99 to 0, use -r.nextInt(100). +

+ + +

Dm: Method invokes inefficient new String(String) constructor (DM_STRING_CTOR)

+ + +

Using the java.lang.String(String) constructor wastes memory + because the object so constructed will be functionally indistinguishable + from the String passed as a parameter.  Just use the + argument String directly.

+ + +

Dm: Method invokes toString() method on a String (DM_STRING_TOSTRING)

+ + +

Calling String.toString() is just a redundant operation. + Just use the String.

+ + +

Dm: Method invokes inefficient new String() constructor (DM_STRING_VOID_CTOR)

+ + +

Creating a new java.lang.String object using the + no-argument constructor wastes memory because the object so created will + be functionally indistinguishable from the empty string constant + "".  Java guarantees that identical string constants + will be represented by the same String object.  Therefore, + you should just use the empty string constant directly.

+ + +

HSC: Huge string constants is duplicated across multiple class files (HSC_HUGE_SHARED_STRING_CONSTANT)

+ + +

+ A large String constant is duplicated across multiple class files. + This is likely because a final field is initialized to a String constant, and the Java language + mandates that all references to a final field from other classes be inlined into +that classfile. See JDK bug 6447475 + for a description of an occurrence of this bug in the JDK and how resolving it reduced + the size of the JDK by 1 megabyte. +

+ + +

ITA: Method uses toArray() with zero-length array argument (ITA_INEFFICIENT_TO_ARRAY)

+ + +

This method uses the toArray() method of a collection derived class, and passes +in a zero-length prototype array argument. It is more efficient to use +myCollection.toArray(new Foo[myCollection.size()]) +If the array passed in is big enough to store all of the +elements of the collection, then it is populated and returned +directly. This avoids the need to create a second array +(by reflection) to return as the result.

+ + +

SBSC: Method concatenates strings using + in a loop (SBSC_USE_STRINGBUFFER_CONCATENATION)

+ + +

The method seems to be building a String using concatenation in a loop. +In each iteration, the String is converted to a StringBuffer/StringBuilder, + appended to, and converted back to a String. + This can lead to a cost quadratic in the number of iterations, + as the growing string is recopied in each iteration.

+ +

Better performance can be obtained by using +a StringBuffer (or StringBuilder in Java 1.5) explicitly.

+ +

For example:

+
+  // This is bad
+  String s = "";
+  for (int i = 0; i < field.length; ++i) {
+    s = s + field[i];
+  }
+
+  // This is better
+  StringBuffer buf = new StringBuffer();
+  for (int i = 0; i < field.length; ++i) {
+    buf.append(field[i]);
+  }
+  String s = buf.toString();
+
+ + +

SIC: Should be a static inner class (SIC_INNER_SHOULD_BE_STATIC)

+ + +

This class is an inner class, but does not use its embedded reference + to the object which created it.  This reference makes the instances + of the class larger, and may keep the reference to the creator object + alive longer than necessary.  If possible, the class should be + made static. +

+ + +

SIC: Could be refactored into a named static inner class (SIC_INNER_SHOULD_BE_STATIC_ANON)

+ + +

This class is an inner class, but does not use its embedded reference + to the object which created it.  This reference makes the instances + of the class larger, and may keep the reference to the creator object + alive longer than necessary.  If possible, the class should be + made into a static inner class. Since anonymous inner +classes cannot be marked as static, doing this will require refactoring +the inner class so that it is a named inner class.

+ + +

SIC: Could be refactored into a static inner class (SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS)

+ + +

This class is an inner class, but does not use its embedded reference + to the object which created it except during construction of the +inner object.  This reference makes the instances + of the class larger, and may keep the reference to the creator object + alive longer than necessary.  If possible, the class should be + made into a static inner class. Since the reference to the + outer object is required during construction of the inner instance, + the inner class will need to be refactored so as to + pass a reference to the outer instance to the constructor + for the inner class.

+ + +

SS: Unread field: should this field be static? (SS_SHOULD_BE_STATIC)

+ + +

This class contains an instance final field that + is initialized to a compile-time static value. + Consider making the field static.

+ + +

UM: Method calls static Math class method on a constant value (UM_UNNECESSARY_MATH)

+ + +

This method uses a static method from java.lang.Math on a constant value. This method's +result in this case, can be determined statically, and is faster and sometimes more accurate to +just use the constant. Methods detected are: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Method Parameter
abs -any-
acos 0.0 or 1.0
asin 0.0 or 1.0
atan 0.0 or 1.0
atan2 0.0
cbrt 0.0 or 1.0
ceil -any-
cos 0.0
cosh 0.0
exp 0.0 or 1.0
expm1 0.0
floor -any-
log 0.0 or 1.0
log10 0.0 or 1.0
rint -any-
round -any-
sin 0.0
sinh 0.0
sqrt 0.0 or 1.0
tan 0.0
tanh 0.0
toDegrees 0.0 or 1.0
toRadians 0.0
+ + +

UPM: Private method is never called (UPM_UNCALLED_PRIVATE_METHOD)

+ + +

This private method is never called. Although it is +possible that the method will be invoked through reflection, +it is more likely that the method is never used, and should be +removed. +

+ + +

UrF: Unread field (URF_UNREAD_FIELD)

+ + +

This field is never read.  Consider removing it from the class.

+ + +

UuF: Unused field (UUF_UNUSED_FIELD)

+ + +

This field is never used.  Consider removing it from the class.

+ + +

WMI: Inefficient use of keySet iterator instead of entrySet iterator (WMI_WRONG_MAP_ITERATOR)

+ + +

This method accesses the value of a Map entry, using a key that was retrieved from +a keySet iterator. It is more efficient to use an iterator on the entrySet of the map, to avoid the +Map.get(key) lookup.

+ + +

Dm: Hardcoded constant database password (DMI_CONSTANT_DB_PASSWORD)

+ + +

This code creates a database connect using a hardcoded, constant password. Anyone with access to either the source code or the compiled code can + easily learn the password. +

+ + + +

Dm: Empty database password (DMI_EMPTY_DB_PASSWORD)

+ + +

This code creates a database connect using a blank or empty password. This indicates that the database is not protected by a password. +

+ + + +

HRS: HTTP cookie formed from untrusted input (HRS_REQUEST_PARAMETER_TO_COOKIE)

+ + +

This code constructs an HTTP Cookie using an untrusted HTTP parameter. If this cookie is added to an HTTP response, it will allow a HTTP response splitting +vulnerability. See http://en.wikipedia.org/wiki/HTTP_response_splitting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of HTTP response splitting. +If FindBugs found any, you almost certainly have more +vulnerabilities that FindBugs doesn't report. If you are concerned about HTTP response splitting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + + +

HRS: HTTP Response splitting vulnerability (HRS_REQUEST_PARAMETER_TO_HTTP_HEADER)

+ + +

This code directly writes an HTTP parameter to an HTTP header, which allows for a HTTP response splitting +vulnerability. See http://en.wikipedia.org/wiki/HTTP_response_splitting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of HTTP response splitting. +If FindBugs found any, you almost certainly have more +vulnerabilities that FindBugs doesn't report. If you are concerned about HTTP response splitting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + + +

SQL: Nonconstant string passed to execute method on an SQL statement (SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE)

+ + +

The method invokes the execute method on an SQL statement with a String that seems +to be dynamically generated. Consider using +a prepared statement instead. It is more efficient and less vulnerable to +SQL injection attacks. +

+ + +

SQL: A prepared statement is generated from a nonconstant String (SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING)

+ + +

The code creates an SQL prepared statement from a nonconstant String. +If unchecked, tainted data from a user is used in building this String, SQL injection could +be used to make the prepared statement do something unexpected and undesirable. +

+ + +

XSS: JSP reflected cross site scripting vulnerability (XSS_REQUEST_PARAMETER_TO_JSP_WRITER)

+ + +

This code directly writes an HTTP parameter to JSP output, which allows for a cross site scripting +vulnerability. See http://en.wikipedia.org/wiki/Cross-site_scripting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of cross site scripting. +If FindBugs found any, you almost certainly have more cross site scripting +vulnerabilities that FindBugs doesn't report. If you are concerned about cross site scripting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + +

XSS: Servlet reflected cross site scripting vulnerability in error page (XSS_REQUEST_PARAMETER_TO_SEND_ERROR)

+ + +

This code directly writes an HTTP parameter to a Server error page (using HttpServletResponse.sendError). Echoing this untrusted input allows +for a reflected cross site scripting +vulnerability. See http://en.wikipedia.org/wiki/Cross-site_scripting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of cross site scripting. +If FindBugs found any, you almost certainly have more cross site scripting +vulnerabilities that FindBugs doesn't report. If you are concerned about cross site scripting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + + +

XSS: Servlet reflected cross site scripting vulnerability (XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER)

+ + +

This code directly writes an HTTP parameter to Servlet output, which allows for a reflected cross site scripting +vulnerability. See http://en.wikipedia.org/wiki/Cross-site_scripting +for more information.

+

FindBugs looks only for the most blatant, obvious cases of cross site scripting. +If FindBugs found any, you almost certainly have more cross site scripting +vulnerabilities that FindBugs doesn't report. If you are concerned about cross site scripting, you should seriously +consider using a commercial static analysis or pen-testing tool. +

+ + + +

BC: Questionable cast to abstract collection (BC_BAD_CAST_TO_ABSTRACT_COLLECTION)

+ + +

+This code casts a Collection to an abstract collection +(such as List, Set, or Map). +Ensure that you are guaranteed that the object is of the type +you are casting to. If all you need is to be able +to iterate through a collection, you don't need to cast it to a Set or List. +

+ + +

BC: Questionable cast to concrete collection (BC_BAD_CAST_TO_CONCRETE_COLLECTION)

+ + +

+This code casts an abstract collection (such as a Collection, List, or Set) +to a specific concrete implementation (such as an ArrayList or HashSet). +This might not be correct, and it may make your code fragile, since +it makes it harder to switch to other concrete implementations at a future +point. Unless you have a particular reason to do so, just use the abstract +collection class. +

+ + +

BC: Unchecked/unconfirmed cast (BC_UNCONFIRMED_CAST)

+ + +

+This cast is unchecked, and not all instances of the type casted from can be cast to +the type it is being cast to. Ensure that your program logic ensures that this +cast will not fail. +

+ + +

BC: instanceof will always return true (BC_VACUOUS_INSTANCEOF)

+ + +

+This instanceof test will always return true (unless the value being tested is null). +Although this is safe, make sure it isn't +an indication of some misunderstanding or some other logic error. +If you really want to test the value for being null, perhaps it would be clearer to do +better to do a null test rather than an instanceof test. +

+ + +

BSHIFT: Unsigned right shift cast to short/byte (ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT)

+ + +

+The code performs an unsigned right shift, whose result is then +cast to a short or byte, which discards the upper bits of the result. +Since the upper bits are discarded, there may be no difference between +a signed and unsigned right shift (depending upon the size of the shift). +

+ + +

CI: Class is final but declares protected field (CI_CONFUSED_INHERITANCE)

+ + +

+ This class is declared to be final, but declares fields to be protected. Since the class + is final, it can not be derived from, and the use of protected is confusing. The access + modifier for the field should be changed to private or public to represent the true + use for the field. +

+ + +

DB: Method uses the same code for two branches (DB_DUPLICATE_BRANCHES)

+ + +

+ This method uses the same code to implement two branches of a conditional branch. + Check to ensure that this isn't a coding mistake. +

+ + +

DB: Method uses the same code for two switch clauses (DB_DUPLICATE_SWITCH_CLAUSES)

+ + +

+ This method uses the same code to implement two clauses of a switch statement. + This could be a case of duplicate code, but it might also indicate + a coding mistake. +

+ + +

DLS: Dead store to local variable (DLS_DEAD_LOCAL_STORE)

+ + +

+This instruction assigns a value to a local variable, +but the value is not read or used in any subsequent instruction. +Often, this indicates an error, because the value computed is never +used. +

+

+Note that Sun's javac compiler often generates dead stores for +final local variables. Because FindBugs is a bytecode-based tool, +there is no easy way to eliminate these false positives. +

+ + +

DLS: Useless assignment in return statement (DLS_DEAD_LOCAL_STORE_IN_RETURN)

+ + +

+This statement assigns to a local variable in a return statement. This assignment +has effect. Please verify that this statement does the right thing. +

+ + +

DLS: Dead store of null to local variable (DLS_DEAD_LOCAL_STORE_OF_NULL)

+ + +

The code stores null into a local variable, and the stored value is not +read. This store may have been introduced to assist the garbage collector, but +as of Java SE 6.0, this is no longer needed or useful. +

+ + +

DLS: Dead store to local variable that shadows field (DLS_DEAD_LOCAL_STORE_SHADOWS_FIELD)

+ + +

+This instruction assigns a value to a local variable, +but the value is not read or used in any subsequent instruction. +Often, this indicates an error, because the value computed is never +used. There is a field with the same name as the local variable. Did you +mean to assign to that variable instead? +

+ + +

DMI: Code contains a hard coded reference to an absolute pathname (DMI_HARDCODED_ABSOLUTE_FILENAME)

+ + +

This code constructs a File object using a hard coded to an absolute pathname +(e.g., new File("/home/dannyc/workspace/j2ee/src/share/com/sun/enterprise/deployment"); +

+ + +

DMI: Non serializable object written to ObjectOutput (DMI_NONSERIALIZABLE_OBJECT_WRITTEN)

+ + +

+This code seems to be passing a non-serializable object to the ObjectOutput.writeObject method. +If the object is, indeed, non-serializable, an error will result. +

+ + +

DMI: Invocation of substring(0), which returns the original value (DMI_USELESS_SUBSTRING)

+ + +

+This code invokes substring(0) on a String, which returns the original value. +

+ + +

Dm: Thread passed where Runnable expected (DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED)

+ + +

A Thread object is passed as a parameter to a method where +a Runnable is expected. This is rather unusual, and may indicate a logic error +or cause unexpected behavior. +

+ + +

Eq: Class doesn't override equals in superclass (EQ_DOESNT_OVERRIDE_EQUALS)

+ + +

This class extends a class that defines an equals method and adds fields, but doesn't +define an equals method itself. Thus, equality on instances of this class will +ignore the identity of the subclass and the added fields. Be sure this is what is intended, +and that you don't need to override the equals method. Even if you don't need to override +the equals method, consider overriding it anyway to document the fact +that the equals method for the subclass just return the result of +invoking super.equals(o). +

+ + +

Eq: Unusual equals method (EQ_UNUSUAL)

+ + +

This class doesn't do any of the patterns we recognize for checking that the type of the argument +is compatible with the type of the this object. There might not be anything wrong with +this code, but it is worth reviewing. +

+ + +

FE: Test for floating point equality (FE_FLOATING_POINT_EQUALITY)

+ + +

+ This operation compares two floating point values for equality. + Because floating point calculations may involve rounding, + calculated float and double values may not be accurate. + For values that must be precise, such as monetary values, + consider using a fixed-precision type such as BigDecimal. + For values that need not be precise, consider comparing for equality + within some range, for example: + if ( Math.abs(x - y) < .0000001 ). + See the Java Language Specification, section 4.2.4. +

+ + +

FS: Non-Boolean argument formatted using %b format specifier (VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN)

+ + +

+An argument not of type Boolean is being formatted with a %b format specifier. This won't throw an +exception; instead, it will print true for any nonnull value, and false for null. +This feature of format strings is strange, and may not be what you intended. +

+ + +

IA: Ambiguous invocation of either an inherited or outer method (IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD)

+ + +

An inner class is invoking a method that could be resolved to either a inherited method or a method defined in an outer class. By the Java semantics, +it will be resolved to invoke the inherited method, but this may not be want +you intend. If you really intend to invoke the inherited method, +invoke it by invoking the method on super (e.g., invoke super.foo(17)), and +thus it will be clear to other readers of your code and to FindBugs +that you want to invoke the inherited method, not the method in the outer class. +

+ + +

IC: Initialization circularity (IC_INIT_CIRCULARITY)

+ + +

A circularity was detected in the static initializers of the two + classes referenced by the bug instance.  Many kinds of unexpected + behavior may arise from such circularity.

+ + +

ICAST: integral division result cast to double or float (ICAST_IDIV_CAST_TO_DOUBLE)

+ + +

+This code casts the result of an integral division (e.g., int or long division) +operation to double or +float. +Doing division on integers truncates the result +to the integer value closest to zero. The fact that the result +was cast to double suggests that this precision should have been retained. +What was probably meant was to cast one or both of the operands to +double before performing the division. Here is an example: +

+
+
+int x = 2;
+int y = 5;
+// Wrong: yields result 0.0
+double value1 =  x / y;
+
+// Right: yields result 0.4
+double value2 =  x / (double) y;
+
+
+ + +

ICAST: Result of integer multiplication cast to long (ICAST_INTEGER_MULTIPLY_CAST_TO_LONG)

+ + +

+This code performs integer multiply and then converts the result to a long, +as in: + +

+    long convertDaysToMilliseconds(int days) { return 1000*3600*24*days; }
+
+If the multiplication is done using long arithmetic, you can avoid +the possibility that the result will overflow. For example, you +could fix the above code to: + +
+    long convertDaysToMilliseconds(int days) { return 1000L*3600*24*days; }
+
+or + +
+    static final long MILLISECONDS_PER_DAY = 24L*3600*1000;
+    long convertDaysToMilliseconds(int days) { return days * MILLISECONDS_PER_DAY; }
+
+

+ + + +

IM: Computation of average could overflow (IM_AVERAGE_COMPUTATION_COULD_OVERFLOW)

+ + +

The code computes the average of two integers using either division or signed right shift, +and then uses the result as the index of an array. +If the values being averaged are very large, this can overflow (resulting in the computation +of a negative average). Assuming that the result is intended to be nonnegative, you +can use an unsigned right shift instead. In other words, rather that using (low+high)/2, +use (low+high) >>> 1 +

+

This bug exists in many earlier implementations of binary search and merge sort. +Martin Buchholz found and fixed it +in the JDK libraries, and Joshua Bloch +widely +publicized the bug pattern. +

+ + +

IM: Check for oddness that won't work for negative numbers (IM_BAD_CHECK_FOR_ODD)

+ + +

+The code uses x % 2 == 1 to check to see if a value is odd, but this won't work +for negative numbers (e.g., (-5) % 2 == -1). If this code is intending to check +for oddness, consider using x & 1 == 1, or x % 2 != 0. +

+ + +

INT: Integer remainder modulo 1 (INT_BAD_REM_BY_1)

+ + +

Any expression (exp % 1) is guaranteed to always return zero. +Did you mean (exp & 1) or (exp % 2) instead? +

+ + +

INT: Vacuous bit mask operation on integer value (INT_VACUOUS_BIT_OPERATION)

+ + +

This is an integer bit operation (and, or, or exclusive or) that doesn't do any useful work +(e.g., v & 0xffffffff). + +

+ + +

INT: Vacuous comparison of integer value (INT_VACUOUS_COMPARISON)

+ + +

There is an integer comparison that always returns +the same value (e.g., x <= Integer.MAX_VALUE). +

+ + +

MTIA: Class extends Servlet class and uses instance variables (MTIA_SUSPECT_SERVLET_INSTANCE_FIELD)

+ + +

+ This class extends from a Servlet class, and uses an instance member variable. Since only + one instance of a Servlet class is created by the J2EE framework, and used in a + multithreaded way, this paradigm is highly discouraged and most likely problematic. Consider + only using method local variables. +

+ + +

MTIA: Class extends Struts Action class and uses instance variables (MTIA_SUSPECT_STRUTS_INSTANCE_FIELD)

+ + +

+ This class extends from a Struts Action class, and uses an instance member variable. Since only + one instance of a struts Action class is created by the Struts framework, and used in a + multithreaded way, this paradigm is highly discouraged and most likely problematic. Consider + only using method local variables. Only instance fields that are written outside of a monitor + are reported. +

+ + +

NP: Dereference of the result of readLine() without nullcheck (NP_DEREFERENCE_OF_READLINE_VALUE)

+ + +

The result of invoking readLine() is dereferenced without checking to see if the result is null. If there are no more lines of text +to read, readLine() will return null and dereferencing that will generate a null pointer exception. +

+ + +

NP: Immediate dereference of the result of readLine() (NP_IMMEDIATE_DEREFERENCE_OF_READLINE)

+ + +

The result of invoking readLine() is immediately dereferenced. If there are no more lines of text +to read, readLine() will return null and dereferencing that will generate a null pointer exception. +

+ + +

NP: Load of known null value (NP_LOAD_OF_KNOWN_NULL_VALUE)

+ + +

The variable referenced at this point is known to be null due to an earlier + check against null. Although this is valid, it might be a mistake (perhaps you +intended to refer to a different variable, or perhaps the earlier check to see if the +variable is null should have been a check to see if it was nonnull). +

+ + +

NP: Possible null pointer dereference due to return value of called method (NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE)

+ + +

The return value from a method is dereferenced without a null check, +and the return value of that method is one that should generally be checked +for null. This may lead to a NullPointerException when the code is executed. +

+ + +

NP: Possible null pointer dereference on branch that might be infeasible (NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE)

+ + +

There is a branch of statement that, if executed, guarantees that +a null value will be dereferenced, which +would generate a NullPointerException when the code is executed. +Of course, the problem might be that the branch or statement is infeasible and that +the null pointer exception can't ever be executed; deciding that is beyond the ability of FindBugs. +Due to the fact that this value had been previously tested for nullness, +this is a definite possibility. +

+ + +

NP: Parameter must be nonnull but is marked as nullable (NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE)

+ + +

This parameter is always used in a way that requires it to be nonnull, +but the parameter is explicitly annotated as being Nullable. Either the use +of the parameter or the annotation is wrong. +

+ + +

NP: Read of unwritten public or protected field (NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD)

+ + +

The program is dereferencing a public or protected +field that does not seem to ever have a non-null value written to it. +Unless the field is initialized via some mechanism not seen by the analysis, +dereferencing this value will generate a null pointer exception. +

+ + +

NS: Potentially dangerous use of non-short-circuit logic (NS_DANGEROUS_NON_SHORT_CIRCUIT)

+ + +

This code seems to be using non-short-circuit logic (e.g., & +or |) +rather than short-circuit logic (&& or ||). In addition, +it seem possible that, depending on the value of the left hand side, you might not +want to evaluate the right hand side (because it would have side effects, could cause an exception +or could be expensive.

+

+Non-short-circuit logic causes both sides of the expression +to be evaluated even when the result can be inferred from +knowing the left-hand side. This can be less efficient and +can result in errors if the left-hand side guards cases +when evaluating the right-hand side can generate an error. +

+ +

See the Java +Language Specification for details + +

+ + +

NS: Questionable use of non-short-circuit logic (NS_NON_SHORT_CIRCUIT)

+ + +

This code seems to be using non-short-circuit logic (e.g., & +or |) +rather than short-circuit logic (&& or ||). +Non-short-circuit logic causes both sides of the expression +to be evaluated even when the result can be inferred from +knowing the left-hand side. This can be less efficient and +can result in errors if the left-hand side guards cases +when evaluating the right-hand side can generate an error. + +

See the Java +Language Specification for details + +

+ + +

PZLA: Consider returning a zero length array rather than null (PZLA_PREFER_ZERO_LENGTH_ARRAYS)

+ + +

It is often a better design to +return a length zero array rather than a null reference to indicate that there +are no results (i.e., an empty list of results). +This way, no explicit check for null is needed by clients of the method.

+ +

On the other hand, using null to indicate +"there is no answer to this question" is probably appropriate. +For example, File.listFiles() returns an empty list +if given a directory containing no files, and returns null if the file +is not a directory.

+ + +

QF: Complicated, subtle or wrong increment in for-loop (QF_QUESTIONABLE_FOR_LOOP)

+ + +

Are you sure this for loop is incrementing the correct variable? + It appears that another variable is being initialized and checked + by the for loop. +

+ + +

RCN: Redundant comparison of non-null value to null (RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE)

+ + +

This method contains a reference known to be non-null with another reference +known to be null.

+ + +

RCN: Redundant comparison of two null values (RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES)

+ + +

This method contains a redundant comparison of two references known to +both be definitely null.

+ + +

RCN: Redundant nullcheck of value known to be non-null (RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE)

+ + +

This method contains a redundant check of a known non-null value against +the constant null.

+ + +

RCN: Redundant nullcheck of value known to be null (RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE)

+ + +

This method contains a redundant check of a known null value against +the constant null.

+ + +

REC: Exception is caught when Exception is not thrown (REC_CATCH_EXCEPTION)

+ + +

+ This method uses a try-catch block that catches Exception objects, but Exception is not + thrown within the try block, and RuntimeException is not explicitly caught. It is a common bug pattern to + say try { ... } catch (Exception e) { something } as a shorthand for catching a number of types of exception + each of whose catch blocks is identical, but this construct also accidentally catches RuntimeException as well, + masking potential bugs. +

+ + +

RI: Class implements same interface as superclass (RI_REDUNDANT_INTERFACES)

+ + +

+ This class declares that it implements an interface that is also implemented by a superclass. + This is redundant because once a superclass implements an interface, all subclasses by default also + implement this interface. It may point out that the inheritance hierarchy has changed since + this class was created, and consideration should be given to the ownership of + the interface's implementation. +

+ + +

RV: Method checks to see if result of String.indexOf is positive (RV_CHECK_FOR_POSITIVE_INDEXOF)

+ + +

The method invokes String.indexOf and checks to see if the result is positive or non-positive. + It is much more typical to check to see if the result is negative or non-negative. It is + positive only if the substring checked for occurs at some place other than at the beginning of + the String.

+ + +

RV: Method discards result of readLine after checking if it is nonnull (RV_DONT_JUST_NULL_CHECK_READLINE)

+ + +

The value returned by readLine is discarded after checking to see if the return +value is non-null. In almost all situations, if the result is non-null, you will want +to use that non-null value. Calling readLine again will give you a different line.

+ + +

RV: Remainder of hashCode could be negative (RV_REM_OF_HASHCODE)

+ + +

This code computes a hashCode, and then computes +the remainder of that value modulo another value. Since the hashCode +can be negative, the result of the remainder operation +can also be negative.

+

Assuming you want to ensure that the result of your computation is nonnegative, +you may need to change your code. +If you know the divisor is a power of 2, +you can use a bitwise and operator instead (i.e., instead of +using x.hashCode()%n, use x.hashCode()&(n-1). +This is probably faster than computing the remainder as well. +If you don't know that the divisor is a power of 2, take the absolute +value of the result of the remainder operation (i.e., use +Math.abs(x.hashCode()%n) +

+ + +

RV: Remainder of 32-bit signed random integer (RV_REM_OF_RANDOM_INT)

+ + +

This code generates a random signed integer and then computes +the remainder of that value modulo another value. Since the random +number can be negative, the result of the remainder operation +can also be negative. Be sure this is intended, and strongly +consider using the Random.nextInt(int) method instead. +

+ + +

RV: Method ignores return value, is this OK? (RV_RETURN_VALUE_IGNORED_INFERRED)

+ + +

This code calls a method and ignores the return value. The return value +is the same type as the type the method is invoked on, and from our analysis it looks +like the return value might be important (e.g., like ignoring the +return value of String.toLowerCase()). +

+

We are guessing that ignoring the return value might be a bad idea just from +a simple analysis of the body of the method. You can use a @CheckReturnValue annotation +to instruct FindBugs as to whether ignoring the return value of this method +is important or acceptable. +

+

Please investigate this closely to decide whether it is OK to ignore the return value. +

+ + +

SA: Double assignment of field (SA_FIELD_DOUBLE_ASSIGNMENT)

+ + +

This method contains a double assignment of a field; e.g. +

+
+  int x,y;
+  public void foo() {
+    x = x = 17;
+  }
+
+

Assigning to a field twice is useless, and may indicate a logic error or typo.

+ + +

SA: Double assignment of local variable (SA_LOCAL_DOUBLE_ASSIGNMENT)

+ + +

This method contains a double assignment of a local variable; e.g. +

+
+  public void foo() {
+    int x,y;
+    x = x = 17;
+  }
+
+

Assigning the same value to a variable twice is useless, and may indicate a logic error or typo.

+ + +

SA: Self assignment of local variable (SA_LOCAL_SELF_ASSIGNMENT)

+ + +

This method contains a self assignment of a local variable; e.g.

+
+  public void foo() {
+    int x = 3;
+    x = x;
+  }
+
+

+Such assignments are useless, and may indicate a logic error or typo. +

+ + +

SF: Switch statement found where one case falls through to the next case (SF_SWITCH_FALLTHROUGH)

+ + +

This method contains a switch statement where one case branch will fall through to the next case. + Usually you need to end this case with a break or return.

+ + +

SF: Switch statement found where default case is missing (SF_SWITCH_NO_DEFAULT)

+ + +

This method contains a switch statement where default case is missing. + Usually you need to provide a default case.

+ + +

ST: Write to static field from instance method (ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD)

+ + +

This instance method writes to a static field. This is tricky to get +correct if multiple instances are being manipulated, +and generally bad practice. +

+ + +

Se: private readResolve method not inherited by subclasses (SE_PRIVATE_READ_RESOLVE_NOT_INHERITED)

+ + +

This class defines a private readResolve method. Since it is private, it won't be inherited by subclasses. +This might be intentional and OK, but should be reviewed to ensure it is what is intended. +

+ + +

Se: Transient field of class that isn't Serializable. (SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS)

+ + +

The field is marked as transient, but the class isn't Serializable, so marking it as transient +has absolutely no effect. +This may be leftover marking from a previous version of the code in which the class was transient, or +it may indicate a misunderstanding of how serialization works. +

+ + +

TQ: Value required to have type qualifier, but marked as unknown (TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK)

+ + +

+ A value is used in a way that requires it to be always be a value denoted by a type qualifier, but + there is an explicit annotation stating that it is not known where the value is required to have that type qualifier. + Either the usage or the annotation is incorrect. +

+ + +

TQ: Value required to not have type qualifier, but marked as unknown (TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK)

+ + +

+ A value is used in a way that requires it to be never be a value denoted by a type qualifier, but + there is an explicit annotation stating that it is not known where the value is prohibited from having that type qualifier. + Either the usage or the annotation is incorrect. +

+ + +

UCF: Useless control flow (UCF_USELESS_CONTROL_FLOW)

+ + +

This method contains a useless control flow statement, where +control flow continues onto the same place regardless of whether or not +the branch is taken. For example, +this is caused by having an empty statement +block for an if statement:

+
+    if (argv.length == 0) {
+    // TODO: handle this case
+    }
+
+ + +

UCF: Useless control flow to next line (UCF_USELESS_CONTROL_FLOW_NEXT_LINE)

+ + +

This method contains a useless control flow statement in which control +flow follows to the same or following line regardless of whether or not +the branch is taken. +Often, this is caused by inadvertently using an empty statement as the +body of an if statement, e.g.:

+
+    if (argv.length == 1);
+        System.out.println("Hello, " + argv[0]);
+
+ + +

UrF: Unread public/protected field (URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD)

+ + +

This field is never read.  +The field is public or protected, so perhaps + it is intended to be used with classes not seen as part of the analysis. If not, +consider removing it from the class.

+ + +

UuF: Unused public or protected field (UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD)

+ + +

This field is never used.  +The field is public or protected, so perhaps + it is intended to be used with classes not seen as part of the analysis. If not, +consider removing it from the class.

+ + +

UwF: Field not initialized in constructor but dereferenced without null check (UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR)

+ + +

This field is never initialized within any constructor, and is therefore could be null after +the object is constructed. Elsewhere, it is loaded and dereferenced without a null check. +This could be a either an error or a questionable design, since +it means a null pointer exception will be generated if that field is dereferenced +before being initialized. +

+ + +

UwF: Unwritten public or protected field (UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD)

+ + +

No writes were seen to this public/protected field.  All reads of it will return the default +value. Check for errors (should it have been initialized?), or remove it if it is useless.

+ + +

XFB: Method directly allocates a specific implementation of xml interfaces (XFB_XML_FACTORY_BYPASS)

+ + +

+ This method allocates a specific implementation of an xml interface. It is preferable to use + the supplied factory classes to create these objects so that the implementation can be + changed at runtime. See +

+
    +
  • javax.xml.parsers.DocumentBuilderFactory
  • +
  • javax.xml.parsers.SAXParserFactory
  • +
  • javax.xml.transform.TransformerFactory
  • +
  • org.w3c.dom.Document.createXXXX
  • +
+

for details.

+ + + + +

+ +

Send comments to findbugs@cs.umd.edu +

+SourceForge.net Logo +

+ diff --git a/findbugs/findbugs-2.0.0/doc/buggy-sm.png b/findbugs/findbugs-2.0.0/doc/buggy-sm.png new file mode 100644 index 0000000000000000000000000000000000000000..7f5fc501469144258ac19852198456526b2b9ee7 GIT binary patch literal 9803 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 + +Contributing to FindBugs + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+ +

Contributing to FindBugs

+ +

If you have a bug fix or feature enhancement you would like to contribute, +we would be happy to consider it for inclusion.

+ +

Import FindBugs code as Eclipse projects

+ +

The preferred way to get the FindBugs source code and create the patch is to use Eclipse + SVN. +You can easily import FindBugs code into Eclipse by following the steps described +here: Import Eclipse projects +. +

+ +

Preparing a patch

+ +

The best way to +send an enhancement is to create a patch against the latest code +in the FindBugs Subversion repository +at http://findbugs.googlecode.com/svn/trunk/ +(those people who have been given commit priviledges should use +https://findbugs.googlecode.com/svn/trunk/). +

+ +

To create a patch from Eclipse, please right click the [findbugs] or [findBugsEclipsePlugin] project +and choose [Team | Create Patch...] context menu. +

+ +

Please follow these guidelines when preparing your patch:

+
    +
  • Use the same indentation style as the source file(s) you + are modifying.  In particular, please use tabs (not spaces) + to indent your code; one tab per indent level. +
  • If at all possible, avoid making whitespace modifications. +
  • Small patches are appreciated. +
  • If you are submitting a new bug detector, please submit a small + standalone source file that contains an instance of the + kind of bug the detector looks for. +
+ +

Following these guidelines makes it much easier for us +to incorporate new code. + +

How to submit a patch

+ +

Patches may be submitted through the +Patches tracker on the +sourceforge project page. + + +


+ +

Send comments to findbugs@cs.umd.edu +

+SourceForge.net Logo + +

+ + + diff --git a/findbugs/findbugs-2.0.0/doc/customers/ITAsoftware.png b/findbugs/findbugs-2.0.0/doc/customers/ITAsoftware.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec79c09c33255ca6fe20e8af7c3b27749c3da07 GIT binary patch literal 2701 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 literal 0 HcmV?d00001 diff --git a/findbugs/findbugs-2.0.0/doc/customers/geoLocation.png b/findbugs/findbugs-2.0.0/doc/customers/geoLocation.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe6ba8a65f95e9525e1e06b2d7832e22b0008f9 GIT binary patch literal 28724 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 z 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

9k1}WdWpi z?+pS)Y^{WEfW4$t4Ab+36qT1r%k8;gX4YGqq7Gk0{a!GEVfs#Os)^7`AWzOz+4g|; zn++^y-1o!F#-m-fs~uTKh?bkysns#?moPK`3TN27;b#2w-(TWib}e5LF#h}-FNnbY zGxu=pSKt-y>^yF`I*fi%dstq5O^?_rw+a4m5iTE2PZ4-6t8f(y(s zzl?_@AphNmZwOt{#wYDN09?YUdN~1|d%waZpu-6-qf=BCx>iYJ5nfipG{%GOmDcZI zPdKr_JTlte)J2m`PlvCU0QWrAl`g;dUyR3WQ%*eD3-lG2^1Xuxmd%AsaD$pb;S8R6Xp_z3-qG*_KnPdyTjN=u%*WlpOnI z6TXpNTpfh#l4B=EQ<-D(vtWPA8$r=xM-1m}=Uz}Q70S?G%LpfJi2cojY|VWTBi@kF z>9(kkJijFPOnHbS$OVD{voI#xCDZ~h+m?u2MP+&p^O$9~JEt?AWPH}|;80^iRV?`xDBohR5Iz9OPCuOAKtskg!mO1uT%W}u~kfB5z{ z9WCJKp-YX1?*Cobb*}|Q?K_+=FnRUuTUaY@I(t9{Kc}B1M6s6blCz?)lmL`=DQgN> z^4t?Wo(_D~66n~KPj;(Vc0dL=8cfzQ2=p~YH_TTG0zZVWY=jgQoy$@XH1Rd*0`UBm z^~xkLYY>N5?`{u}wS5R|5sNfPVxy{2_WzyC0|NtychDFSsNfn){7(rP{kat#Gev&V zXK;j*%nxtoUEgBYG0(ux-|Ya0octW}>bfB1+0pI5ulEP;@gzt7wnLAI-?je2k;qU- z4!81n&4v07yWkAD$sc7P$Jmc(o?=B&Ts`Yz4P(Xfk&{289(hKF@sQG^A=zJ1PxpHd z#Vp*VF-tV?7tBBJU(wTCv|p*)gJ};|$>(wh6A^=Z1f+ATH7RqSInU;DKDZ94 za3g#V2xe@(h+;INPNP=LiA5BgUGmP&-U)4u)p+c%t88$%X{?*h_hu#B)yws&dH|3b zMv1c|#I za*Yz!_QO8tH4Sq;0K@njJk2;J>?{}azJWz20JhV(=0Ik2)A9IU7La7n zDx266kOw)!(OI+zdz9}nM9TTin{ALdJ zmlXUmBY*RL{&u;vbaU$|Y!%pKpGOwi)?n0D?Z?)pC7j&`d$dg&)N1O%cU{p{5`Meg zyW5vr%5}_OjJDA|%N3zqeDHbD7t)3JsTR%F17i2N0a?qC<_8>dce~s~X<_nA=6SYGJRO!rB zNlJ3EzT?7N)wjDJA{=iR?lIk^eDN{1Lm$~pN#ozPD$ z&8EaRc185_zP%mI7rbop5%k%peeqVF!71y8=AiF*CgY@)Y4pu7DFQgPbFI}my zmWN6Dx*3&Ra^~%1R6jtrz;$Z#DwA5`WpSKsxpD!-Vd%k7_vVS%gSK%mZ=5~d3uc;` zX?#Ac<|l*A(!s$gBk;9h&!-OAhea%AdOFO`ug$q@bGS7J!(PWcpKa=A)EcW{g}L7c z@18(NMC2N_48?&h5n`>T@hl8qWMJ|)JEC8#N_cfG<#HgWR#->T;?R5V01szB*vnd& z1w}+H@qovTD?$eITwhd4{pP1x%UIy0_VsL7MV27&zqUsX%}7rpmJ5V#Z^4bcQ%v{y zu0F$jfz@+du8pMJahDAtOrDhyf+*A#N2E~A+0%o(556V&`W^bi7o7QF1tD46cYv>H zTv!)t4E-520-X}!c(g6|LI)oq{(iT{nHE}z`aF}~DN&oS&F3cgMi80i2|GYiG_**M zvbhLgZa|gn==40&`zJfG86PBOC9x|I!>XVEQX|G+a?hd|HWf{fBV~t;$NbfIS{&f# Nq>1$j@^Ng;{{!FovrYg2 literal 0 HcmV?d00001 diff --git a/findbugs/findbugs-2.0.0/doc/customers/geoMap.png b/findbugs/findbugs-2.0.0/doc/customers/geoMap.png new file mode 100644 index 0000000000000000000000000000000000000000..0d58eef4f6b0168093c5c02fe9ed009c12ccae3e GIT binary patch literal 58866 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

|msKYmUdEB*AZAmp-t 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 literal 0 HcmV?d00001 diff --git a/findbugs/findbugs-2.0.0/doc/customers/nsf.png b/findbugs/findbugs-2.0.0/doc/customers/nsf.png new file mode 100644 index 0000000000000000000000000000000000000000..98531a03305dc972af91508e1791e3c5905610ba GIT binary patch literal 5793 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 literal 0 HcmV?d00001 diff --git a/findbugs/findbugs-2.0.0/doc/customers/sleepycat.png b/findbugs/findbugs-2.0.0/doc/customers/sleepycat.png new file mode 100644 index 0000000000000000000000000000000000000000..23911f32ee23dc64344daa42cb0556522516316d GIT binary patch literal 1886 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 + +FindBugs™ 1.2 Demo and Results + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+

+FindBugs 1.2 demo and results +

+ +

If you just want to try running FindBugs against your +own code, you can +run FindBugs using Java Webstart. +This will use our new gui under Java 1.5+ and our old gui under Java 1.4. +The new gui provides a number of new features, but requires Java 1.5+. +Both use exactly the same analysis engine. + +

This web page provides results of running FindBugs 1.2.0 +against several open source applications. We provide a summary +of the number of bugs we found, as well as a generated HTML listing +of the bugs and +a Java +WebStart demo of the new GUI we've introduced in FindBugs version 1.1, +displaying the warnings and the relevant source. + + +

The applications and versions of them we report on +are somewhat arbitrary. In some cases, they are release versions, +in other cases nightly builds. We find lots of bugs in every large code +base we examine; these applications are certainly not the worst we have seen. +I have been allowed to confidentially examine the results of running FindBugs +against several closed commercial code bases by well respected companies; +the results I've seen there are not significantly different from +what I've observed in open source code bases. + + +

Experimental details: These results are from running +FindBugs 1.2.0 at standard effort level. Our results do not include +any low priority warnings or any warnings about vulnerabilities to +malicious code. Although we have (repeatedly) manually audited the results, +we haven't manually filtered out false positives from these warnings, +so that you can get a feeling for the quality of the warnings generated +by FindBugs. +

Some of the bugs contain audit comments: they are marked as to whether +we thought the warning indicated a bug that should or must be fixed, or whether it was not, in fact, a bug. +

In the webstart versions, we've only included the bugs for which +we were able to identify source files. The number of lines of non-commenting source +statements in the table below (KNCSS) is derived from the same files +that we analyzed and in which we report bugs; we actually compute +KNCSS from the classfiles, not the source files. + +

Vulnerability disclosure: Thankfully, Java isn't C or C++. Dereferencing +a null pointer or accessing outside the bounds of an array generates a runtime +exception rather than a shell exploit. We do not believe that any of the +warnings here represents a security vulnerability, although we have not audited +them to verify that. These projects are all aware of the existence of +FindBugs, and FindBugs is already open source and available +for use both by developers and attackers, we don't believe that making +these results available constitutes a reckless disclosure. + + +

Recommendations: First, review the correctness warnings. + We feel confident that developers +would want to fix most of the high and medium priority correctness warnings we report. +Once you've reviewed those, +you might want to look at some of the other categories. +

+In other categories, +such as Bad practice and Dodgy code, we accept more false positives. You +might decide that a pattern bug pattern isn't relevant for your code +base (e.g., you never use Serialization for persistent storage, +so you never care about the fact that you didn't define a serializationUID), +and even for the bug patterns relevant to your code base, +perhaps only a minority will reflect problems serious enough to +convince you to change your code. + +

Please be patient The Web start versions not only have to download the applications, + they need to download about 10 megabytes of data and source files. Please + be patient. Sorry we don't have a progress bar for the data and source download; + the ability to remotely download a data and source archive is a little bit of + a hack. We've provided small versions of some of the data sets that include + only the correctness bugs and the source files containing those warnings. The small + datasets are about a quarter of the sizes of the full datasets. +

+

+

+
ApplicationDetailsCorrectness bugsBad PracticeDodgyKNCSS +
HTMLWebStartNP bugsOther +
Sun JDK 1.7.0-b12 + All + + All + Small + 68180954654597 + +
eclipse-SDK-3.3M7-solaris-gtk + All + + All + Small + 1462591,0796431,447 + +
netbeans-6_0-m8 + All + + All + Small + 1893053,0101,1121,022 + +
glassfish-v2-b43 + All + + All + Small + 1461549641,2222,176 + +
jboss-4.0.5 + All + + All + Small + 3057263214178 + +
+

KNCSS - Thousands of lines of non-commenting source statements + +

Bug categories

+
+
Correctness bug +
Probable bug - an apparent coding mistake + resulting in code that was probably not what the + developer intended. We strive for a low false positive rate. +
Bad Practice +
+Violations of recommended and essential + coding practice. Examples include hash code and equals + problems, cloneable idiom, dropped exceptions, + serializable problems, and misuse of finalize. + We strive to make this analysis accurate, + although some groups may + not care about some of the bad practices. +
Dodgy +
+Code that is confusing, anomalous, or + written in a way that leads itself to errors. + Examples include dead local stores, switch fall through, + unconfirmed casts, and redundant null check of value + known to be null. + More false positives accepted. + In previous versions of FindBugs, this category was known as Style. +
+ + +

+ +

Send comments to findbugs@cs.umd.edu +

+SourceForge.net Logo

+ + + + + + + diff --git a/findbugs/findbugs-2.0.0/doc/downloads.html b/findbugs/findbugs-2.0.0/doc/downloads.html new file mode 100644 index 0000000..a56a806 --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/downloads.html @@ -0,0 +1,118 @@ + + +FindBugs Downloads + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+ +

FindBugs downloads

+ +

This page contains links to downloads +of Findbugs version 2.0.0, +released on 21:17:55 EST, 20 December, 2011. Download links +for all FindBugs versions and files +are available +on the sourceforge download page. + +

+ + + diff --git a/findbugs/findbugs-2.0.0/doc/eclipse-filters-icon.png b/findbugs/findbugs-2.0.0/doc/eclipse-filters-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea024796702a7c0960ede2e21bcc950a527294a GIT binary patch literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6kiEpy*OmPWo1~zT+}n*iD;XFVbv<1iLn`JZ*L-;)$Go$lGiR>J zciuQXAt5E<$N3WnKFn`yoH+5}|9UncIDTq&^{lHVll&fS`FY95`1~hd zf#r^-hDJsPf7&IFZrFR-U;nX)U;6x+Ifuad8b8`Ay9hHgH|GcPGczAv_D^W?9pfK! zcqh8C9k1?{l#sYqDi$p=zqLbP>Y+oEUI7LE{rkCp)mDym!t>MEmWZgWS2%y*Ktgcc zxn+N3HZd& + +FindBugs™ Fact Sheet + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+ +

FindBugs™ Fact Sheet

+ +

FindBugs looks for bugs in Java programs.  It is based +on the concept of bug patterns.  A bug pattern is a code +idiom that is often an error.  Bug patterns arise for a variety +of reasons: +

+ +
    +
  • Difficult language features +
  • Misunderstood API methods +
  • Misunderstood invariants when code is modified during maintenance +
  • Garden variety mistakes: typos, use of the wrong boolean operator +
+ +

FindBugs uses static analysis to inspect Java bytecode +for occurrences of bug patterns.  +Static analysis means that FindBugs can find bugs by simply inspecting +a program's code: executing the program is not necessary.  +This makes FindBugs very easy to use: in general, you should be +able to use it to look for bugs in your code within a few minutes of downloading it.  +FindBugs works by analyzing Java bytecode (compiled class files), +so you don't even need the program's source code to use it.  +Because its analysis is +sometimes imprecise, FindBugs can report false warnings, +which are warnings that do not indicate real errors.  +In practice, the rate of false warnings reported by FindBugs +is less than 50%. +

+ +

+FindBugs supports a plugin architecture allowing anyone to add new +bug detectors.  The publications page +contains links to articles describing how to write a new detector +for FindBugs.  If you are familiar with Java bytecode +you can write a new FindBugs detector in as little as a few minutes. +

+ +

FindBugs is free software, available under the terms of the +Lesser GNU Public License.  +It is written in Java, and can be run with any virtual machine compatible +with Sun's JDK 1.5.  It can analyze programs written for any version +of Java.  FindBugs was originally developed by Bill Pugh and David Hovemeyer.  +It is maintained by Bill Pugh, and +a team of volunteers. +

+ +

FindBugs uses BCEL to +analyze Java bytecode.  +As of version 1.1, FindBugs also supports bug detectors written using +the ASM bytecode framework.  +FindBugs uses dom4j +for XML manipulation. +

+ + +

+ +

Send comments to findbugs@cs.umd.edu +

+SourceForge.net Logo + +

+ + + diff --git a/findbugs/findbugs-2.0.0/doc/findbugs.css b/findbugs/findbugs-2.0.0/doc/findbugs.css new file mode 100644 index 0000000..e201695 --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/findbugs.css @@ -0,0 +1,15 @@ +BODY { + background: white; +} + +A.plain { + text-decoration: none; +} + +A.sidebar { + text-decoration: none; +} + +A.sidebar:hover, A.sidebar:active { + text-decoration: underline; +} diff --git a/findbugs/findbugs-2.0.0/doc/findbugs2.html b/findbugs/findbugs-2.0.0/doc/findbugs2.html new file mode 100644 index 0000000..26d2a46 --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/findbugs2.html @@ -0,0 +1,285 @@ + + +FindBugs 2™ - Find Bugs in Java Programs + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+ +

+ + + + + +
FindBugs logo UMD logo
+ +

FindBugs 2

+ +

This page describes the major changes in FindBugs 2. We are well aware that the documentation on + the new features in FindBugs 2.0 have not kept up with the implementation. We will be working to + improve the documentation, but don't want to hold up the release any longer to improve the + documentation.

+

Anyone currently using FindBugs 1.3.9 should find FindBugs 2.0 to largely be a drop-in + replacement that offers better accuracy and performance.

+ + +

+ Also check out http://code.google.com/p/findbugs/w/list + for more information about some recent features/changes in FindBugs. +

+ +

The major new features in FindBug 2 are as follows:

+
    +
  • Bug Rank - bugs are given a rank 1-20, and grouped into the categories scariest (rank 1-4), + scary (rank 5-9), troubling (rank 10-14), and of concern (rank 15-20). +
      +
    • priority renamed confidence - many people were confused by the priority reported by + FindBugs, and considered all HIGH priority issues to be important. To reflect the + actually meaning of this attribute of issues, it has been renamed confidence. Issues of + different bug patterns should be compared by there rank, not their confidence.
    • +
    + +
  • +
  • Cloud storage - having a convent way for developers to share + information about when an issue was first seen, and whether it is believed to be a serious + problem, is important to successful and cost-effective deployment of static analysis in a large + software project.
  • +
  • update checks - FindBugs will check for releases of new + versions of FindBugs. Note: we leverage this capability to count the number of FindBugs users. + These update checks can easily be disabled.
  • +
  • Plugins - FindBugs 2.0 makes it much easier to define plugins that + provide various capabilities, and install these plugins either on a per user or per installation + basis.
  • +
  • fb command - rather than using the rather haphazard collection of command line + scripts developed over the years for running various FindBugs commands, you can now use just + one: fb>. +
      +
    • fb analyze - invokes the FindBugs analysis
    • +
    • + fb gui/code> - launches the FindBugs GUI +
    • fb list - lists the issues from a FindBugs analysis file
    • +
    • - lists the command available.
    • +
      +

      + Plugins can be used to extend the commands that can be invoked via + fb + . + +

      +
  • +
  • New bug patterns and detectors, + and improved accuracy
  • +
  • Improved performance: overall, we've seen an average 10% + performance improvement over a large range of benchmarks, although a few users have experienced + performance regressions we are still trying to understand.
  • +
  • Guava support - working with Kevin Bourrillion, we have provided additional support for the + Guava library, recognizing many common + misuse patterns. +
  • +
  • JSR-305 support - improved detection of problems identified by JSR-305 annotations. In + particular, we've significantly improved both the accuracy and performance of the analysis of + type qualifiers.
  • +
+ +

Cloud storage of issue evaluations

+

For many years, you could store evaluations of FindBugs issues within the XML containing the + analysis results. However, this approach did not work well for a team of distributed developers. + Instead, we now provide a cloud based mechanism for storing this information. We are providing a + free communal cloud (hostied by Google appengine) for storing evaluations of FindBugs issues. You + can set up your own private cloud for storing issues, but at the moment this checking out a copy of + FindBugs, making some modifications and building the cloud storage plugin from source. We hope to + make it easier to have your own private cloud in FindBugs 2.0.1.

+

We have analyzed several large open source projects, and provide Java web start links to allow + you to view the results. We'd be happy to work with projects to make the results available from a + continuous build:

+ + +

FindBugs update checks

+

+ FindBugs now checks to see if a new version of FindBugs or a plugin has been released. We make use + of this check to collect statistics on the operating system, java version, locale and FindBugs entry + point (e.g., ant, command line, GUI). More information is + available, including information about how to disable update checks if your organization has a + policy against allowing the collection of such information. No information about the code being + analyzed is reported. + +

+ +

Plugins

+

FindBugs 2.0 makes it much easier to customize FindBugs with plugins.

+

FindBugs looks for plugins in two places: your personal home directory, and in FindBugs home + (plugins installed in your home directory take precedence). In both places, it looks in two places: + the plugin directory, which contains plugins that are enabled by default, and the optionalPlugin + directory, which contains plugins that are disabled by default but can be enabled for a particular + project.

+

The FindBugs project includes several plugins:

+
    +
  • Cloud plugins: These plugins provide ways to persist and share information about + issues seen in an analysis (e.g., when was this issue first seen, and any evaluations as to + whether this is harmless or a must fix issue, as well as comments about the issue from + developers) +
      +
    • bugCollectionCloud - stores issue evaluations in the XML. The way + issue evaluations were always stored before FindBugs 2.0. Distributed in the + optionalPlugin directory.
    • +
    • findbugsCommunalCloud Stores issue evaluations in the communal cloud + hosted at findbugs.appspot.com. Distributed in the plugin directory.
    • +
    • jdbcCloudClient an older, deprecated cloud that stored information in + an SQL database. Not distributed, most be built from source.
    • +
  • +
  • noUpdateChecks - Disables checks for updated versions and usage counting. + Distributed in the optionalPlugin directory.
  • +
  • poweruser - provides a number of additional commands for the fb + command. It is believed most of these commands are used by few people outside of the FindBugs + development team. Distributed in the optionalPlugin directory.
  • +
  • Bug filing plugins: these plugins assist in the filing of FindBugs issues in built + trackers. The bug filing framework is designed to be extensible to other bug filing systems. At + the moment, these plugins are not supported, and must be built from source. +
      +
    • jira
    • +
    • google code
    • +
  • +
+

Performance Improvements/regressions

+

+ In our own testing, we've seen an overall improvement of 9% in + FindBugs performance from 1.3.9 to 2.0.0, with the majority of benchmarks seeing improvements. A + few users have reported significant performance regressions and we are asking + for more information from anyone seeing significant performance regressions. + +

+

New Bug patterns

+ + +
+ + + diff --git a/findbugs/findbugs-2.0.0/doc/guaranteedDereference.png b/findbugs/findbugs-2.0.0/doc/guaranteedDereference.png new file mode 100644 index 0000000000000000000000000000000000000000..d0676f003c49dc4a0efb280c0d02d2249f3ef8f0 GIT binary patch literal 40771 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 literal 0 HcmV?d00001 diff --git a/findbugs/findbugs-2.0.0/doc/index.html b/findbugs/findbugs-2.0.0/doc/index.html new file mode 100644 index 0000000..103f1d5 --- /dev/null +++ b/findbugs/findbugs-2.0.0/doc/index.html @@ -0,0 +1,311 @@ + + +FindBugs™ - Find Bugs in Java Programs + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FindBugs
 
Docs and Info
FindBugs 2.0
Demo and data
Users and supporters
FindBugs blog
Fact sheet
Manual
Manual(ja/日本語)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Open bugs
Reporting bugs
Contributing
Dev team
API [no frames]
Change log
SF project page
Browse source
Latest code changes
+
+ +

+ + + + + +
FindBugs logo UMD logo
+ +

FindBugs™ - Find Bugs in Java Programs

+ +

+ This is the web page for FindBugs, a program which uses static analysis to look for bugs in Java + code.  It is free software, distributed under the terms of the Lesser GNU Public License. The name + FindBugs™ and the FindBugs logo are trademarked by The University of Maryland. FindBugs has been downloaded more than + a million times. +

+ +

The current version of FindBugs is 2.0.0.

+ +

+ FindBugs requires JRE (or JDK) 1.5.0 or later to run.  However, it can analyze programs + compiled for any version of Java, from 1.0 to 1.8. The current version of FindBugs is 2.0.0, + released on 21:17:55 EST, 20 December, 2011. We are very interested in getting + feedback on how to improve FindBugs. File bug reports on our + sourceforge bug tracker +

+ +

+ Changes | Talks | Papers | Sponsors | Support +

+

FindBugs 2.0 Release

+

After many delays, we have released FindBugs 2.0. We are pretty happy and confident about the + functionality, although we know the documentation of the changes in 2.0 is lacking. We decided that + releasing 2.0 took precedence over fixing the documentation. Anyone currently using FindBugs 1.3.9 + should find FindBugs 2.0 to largely be a drop-in replacement that offers better accuracy and + performance.

+ +

+ Also check out http://code.google.com/p/findbugs/w/list + for more information about some recent features/changes in FindBugs. +

+ + +

+ Major changes in FindBugs 2.0 +

+ + + +

Ways to run FindBugs

+

Here are various ways to run FindBugs. For plugins not supported by the FindBugs team, check to + see what version of FindBugs they provide; it might take a little while for the plugins to update to + FindBugs 2.0.

+
+
Command line, ant, GUI
+
Provided in FindBugs download
+
+ Eclipse +
+
+ Update site for Eclipse plugin: http://findbugs.cs.umd.edu/eclipse. + Supported by the FindBugs project. +
+
+ Maven +
+
+ http://maven-plugins.sourceforge.net/maven-findbugs-plugin/index.html +
+
+ Netbeans +
+
+ SQE: Software Quality Environment +
+
+ Hudson +
+
+ http://wiki.hudson-ci.org/display/HUDSON/FindBugs+Plugin +
+
+ IntelliJ +
+
+ Several plugins, see http://code.google.com/p/findbugs/wiki/IntellijFindBugsPlugins + for a descrption. + +
+
+ + +

New

+
    +
  • We've released FindBugs 2.0 +
  • +
  • FindBugs communal cloud and Java web start links:. We have analyzed several large open + source projects, and provide Java web start links to allow you to view the results. We'd be + happy to work with projects to make the results available from a continuous build: +

    + +
  • +
+ + + +

Experience with FindBugs

+
  • Google FindBugs Fixit: Google has a tradition of engineering fixits, special days where + they try to get all of their engineers focused on some specific problem or technique for improving + the systems at Google. A fixit might work to improve web accessibility, internal testing, removing + TODO's from internal software, etc. + +

    On May 13-14, Google held a global fixit for UMD's FindBugs tool a static analysis tool for + finding coding mistakes in Java software. The focus of the fixit was to get feedback on the + 4,000 highest confidence issues found by FindBugs at Google, and let Google engineers decide + which issues, if any, needed fixing.

    +

    More than 700 engineers ran FindBugs from dozens of offices. More than 250 of them entered + more than 8,000 reviews of the issues. A review is a classification of an issue as must-fix, + should-fix, mostly-harmless, not-a-bug, and several other categories. More than 75% of the + reviews classified issues as must fix, should fix or I will fix. Many of the scariest issues + received more than 10 reviews each.

    +

    Engineers have already submitted changes that made more than 1,100 of the 3,800 issues go + away. Engineers filed more than 1,700 bug reports, of which 600 have already been marked as + fixed Work continues on addressing the issues raised by the fixit, and on supporting the + integration of FindBugs into the software development process at Google.

    +

    The fixit at Google showcased new capabilities of FindBugs that provide a cloud computing / + social networking backdrop. Reviews of issues are immediately persisted into a central store, + where they can be seen by other developers, and FindBugs is integrated into the internal Google + tools for filing and viewing bug reports and for viewing the version control history of source + files. For the Fixit, FindBugs was configured in a mode where engineers could not see reviews + from other engineers until they had entered their own; after the fixit, the configuration will + be changed to a more open configuration where engineers can see reviews from others without + having to provide their own review first. These capabilities have all been contributed to UMD's + open source FindBugs tool, although a fair bit of engineering remains to prepare the + capabilities for general release and make sure they can integrate into systems outside of + Google. The new capabilities are expected to be ready for general release in Fall 2009.

  • +
      + +

      + Talks about FindBugs +

      + +

      + Papers about FindBugs +

      + + +

      + Contributors and Sponsors +

      +

      + The current development team consists of Bill Pugh and Andrey Loskutov. +

      +

      Current funding for FindBugs comes from a Google Faculty Research Awards. We'd be interested in + any offers of support or sponsorship.

      +

      + Additional Support +

      +

      + Numerous people have made significant contributions to the FindBugs + project, including founding work by David Hovemeyer + and the web cloud infrastructure by Keith Lea. +

      +

      + YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC + is creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look + at YourKit's leading software products: YourKit + Java Profiler and YourKit .NET + Profiler. +

      +

      + The FindBugs project also uses FishEye and + Clover, which are generously provided by Cenqua/Atlassian. +

      +

      + Additional financial support for the FindBugs project was provided by National + Science Foundation grants ASC9720199 and CCR-0098162, +

      +

      Any opinions, findings and conclusions or recommendations expressed in this material are those of + the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF). + +


      + +

      Send comments to findbugs@cs.umd.edu +

      +SourceForge.net Logo

      +
      + + + diff --git a/findbugs/findbugs-2.0.0/doc/infiniteRecursiveLoops.png b/findbugs/findbugs-2.0.0/doc/infiniteRecursiveLoops.png new file mode 100644 index 0000000000000000000000000000000000000000..7cacd6b73d11b5997022adf7af1741ec96b92f30 GIT binary patch literal 31862 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 E4?8iWZvX%Q literal 0 HcmV?d00001 diff --git a/findbugs/findbugs-2.0.0/doc/informal.png b/findbugs/findbugs-2.0.0/doc/informal.png new file mode 100644 index 0000000000000000000000000000000000000000..c8ba6b3c49bbbf47054cdead5ec7c400c106998f GIT binary patch literal 9914 zcmWk!1ymGm6dg*I5SEgV7AcjI2I=ltLb^k`J0zvM8>B_LOGLW6ySuyo`FD4A_RKl6 z`|bDYzI$JYf}HqkR3cOW0A5Q6L-BxCrp_|1-O_Fb=$e zVk`000RYgj{y*S+jC5nbi^z_WvZBZnh{UfU7|}o4QUQP*kQ5Pwxuzd!nd;$+C;pC% zyP!2iQ2-Es5Pz&fd1WZWvg)92Xh~dwS-k_uq3!q{u~|4^5LljOa^+g(h6q8Z1hN4M zAvlU0-gmN@dzqOSPW&3-VsO!j%`W`c4{Q_KX9sHKI<4+1kO1f-T88hlF30K%-E)`p z%q>2nHo^UEJ^19uf zZ~gp9#oVe*y@k+vuWq%1|r2xw*k$@v5a$W~>mu z#|@&FsP({|yD)sl=d&I%92&WFHj6g_(K~K_17yj<<)>z+2w9ad})H-kxos_yOS02*(;(Ssm3`EsRf0;9z6t=H}cdOdA%QRyTb78T9$$dnGOCOl(&2Djpr*D z%7w_IqM-$&6H-27U}BPS*>6Tu2v=2CtI$scqTz!d$Xp*p^~gL=I}qp~LcMm2jSf2) zB;2e{`!Ga7M{ez}U+1<4l3I0abaZq)JzJEDMW8?H>JoE{b}~JF+pM%5%#`CJQgCvr zQ^ss=Z7JeTmFw~gLW$nK6%Qv^vu_0d$n|;{V=NU4XcJta2J?x6?+D1lDW7TR=|hd@ zR#)}n`Zk@L@ld-E;xmxR8KHmg@9#D1t=BmDydPa_H9qZ2;EMJ{k?F!<;F2c6r342C z;^E^v5Yxolk_ z3ayn77*wWn+8HdjxIz4iU?rQIMwPks%kHIBRp)T?$2X
      WN=mju(@3y&Fx2QfFt? z0YEZVwUmvP76L@4rj{tsezULuZNi}46rYeV)$a3BY1ngpFeA^9^bP{LP;7E?Z`DW1 zSm7Y_9NK=9>i5*t-&lzt`Z6+u;e?+p+0*0-aY}i7o;?i=3~X(g06*H`9Q)4 zHM7)Xb3EP=G(Ym^HqX2B{)7*hWPFPh5ir=z3ed1T=o;O7}su9y>pBh@W2l!iwug z#84UsawJCN#`En))ZpMC@_2)XpMG*xRn^_aP8Oe6>dqaqy8TEu)<6}9^&$ilbH4z8LxiBWo74zXcDw^Z{$$#`2h5qq%E+@-hzD*W|;LwE1 z+dDYaTh3L1ulV?Qk6{SB_{<7@ljmB^Oe|T>&Aeq~-dsdTjHfovl1QP~#rfOJiIj%1 zB7)DT6J|xyZf*12bH2D;4P(h-2*-M90+1n->JGhKJ<4So_inV2i;n}OysiqRQ;|e$ zQu#_Kezu#vF&jNmHnSCiHH$pLr(d-ar5v{U!VO;xVG3)nR?jPV*r*%`M z$Vicokcjbq%w>MBTD6t^z@x4?*-`sRdh0*~uEvRS&K?0kkiydwx`T_xO&JJ}?|tvHRV7#ci?#w<(+ zi4xca1*YBb(3S&0v;>ubHLMsWC!*qG`OCvgFyu*r{hXq z2c4>fr_+V+IH)K+cD9`u7Us1!mLOTLU@2P zY|81J)z7d*5{D^6mB*!S)v>91*nEc{15sj2$K);1Ua4rRI2jxSp1dWFFR{4>2q?G6r3gt4Y<}7n3ewJ3Eet*((=(r!L-)=Vl?UQcQ z$v91flg6k1yy%7|O;ca)@qj-bWwW>A_Pm@D zJSWV{$F`46E2odufasSUMh*5CT36otF0}85k-8EfR=9G91ndlFfCWj{MFP%6 zSHAkA$NpsTTMp|V4yr~*n_y)N3kz$1dG-j>=Pr2Dl5K9f(Z!MFPV=Bw7e^I6l{Q$P zI?IQ(Sy!8r<34!cpZ74JQ~p9A=Ya=lEkGu908>z@}S4iAHuSNh%JQ@NjUHH8l?$xexaD z+g_d@KL+(L-mta2E*f7W*YMJ>n)yx8ecpLSZu)pm_& zbSkYCAv@@6^p(g5Q2mnN{8syUrMpFf+g>7zRLMs?qz78n%I9t#3%re*u0!t3d~?WS zB-S@Jq@|?#`};xYFl2HePUeM61me(D&d43NcCiCyM*4*P5Sq+WS6(nK+rgX<`W`Ym z0hE+XxiFRu(QxM~RjhbkPCo7Yb$^w~Vo3hxUA^j@B_sVd2Q{mM&Hi`%w7wGB_RL2$di zmWikrecPvkGBs`4-;L%7Td^YtVFz=kO_0W-16`%Ht)!GxE`h%%ipEhWKp@cA6 zp^AYGUonT7hV0-#{&Lv+