From 043d61633ef592b59b92f9e5f4bfed6036f9571e Mon Sep 17 00:00:00 2001 From: "alexey.min" Date: Mon, 6 Feb 2012 09:14:22 +0000 Subject: [PATCH] Docs --- docs/Forsian_GS_Decrypt.cpp | 57 + docs/GameGuardKey.txt | 1226 ++++++++++ docs/corrector-2.fsc | 197 ++ docs/corrector-gracia1.fsc | 190 ++ docs/demo_la2endecGS4m2.fsc | 373 +++ docs/exp_percent.txt | 24 + docs/experience.txt | 78 + docs/exploring_c_prng.cpp | 38 + docs/gamepackets/AbnormalStatusUpdate.txt | 22 + docs/gamepackets/Action.txt | 18 + docs/gamepackets/Appearing.txt | 3 + docs/gamepackets/AskJoinParty.txt | 11 + docs/gamepackets/Attack.txt | 38 + docs/gamepackets/AuthLogin.txt | 9 + docs/gamepackets/BuyList.txt | 76 + docs/gamepackets/ChangeMoveType.txt | 11 + docs/gamepackets/CharSelected_hellbound.txt | 46 + docs/gamepackets/CharSelectionInfo.txt | 75 + docs/gamepackets/CharacterCreate.txt | 16 + .../gamepackets/CharacterSelect_hellbound.txt | 8 + .../CharacterSelectionInfo_final.txt | 72 + docs/gamepackets/CreatureSay.txt | 71 + docs/gamepackets/Die.txt | 13 + docs/gamepackets/EnterWorld.txt | 78 + docs/gamepackets/EtcStatusUpdate.txt | 11 + docs/gamepackets/GameGuard.txt | 9 + docs/gamepackets/JoinParty.txt | 10 + docs/gamepackets/KeyPacket.txt | 22 + docs/gamepackets/Logout.txt | 8 + docs/gamepackets/MagicSkillUse.txt | 15 + docs/gamepackets/MoveToPawn.txt | 11 + docs/gamepackets/NewCharacter.txt | 3 + docs/gamepackets/NewCharacterSuccess.txt | 28 + docs/gamepackets/NpcHtmlMessage.txt | 117 + docs/gamepackets/PartySmallWindowAll.txt | 51 + docs/gamepackets/PrivateStoreListBuy.txt | 49 + docs/gamepackets/PrivateStoreListSell.txt | 67 + .../gamepackets/PrivateStoreManageListBuy.txt | 4 + .../PrivateStoreManageListSell.txt | 59 + docs/gamepackets/PrivateStoreMsgBuy.txt | 13 + .../ProtocolVersion-l2emu_client_t1.txt | 21 + .../ProtocolVersion_GraciaEpilogue.txt | 20 + .../ProtocolVersion_GraciaPart2.txt | 20 + .../ProtocolVersion_HellboundClient.txt | 21 + docs/gamepackets/RecipeShopMsg.txt | 4 + docs/gamepackets/RequestAutoSoulShot.txt | 6 + docs/gamepackets/RequestBuyItem.txt | 8 + docs/gamepackets/RequestBypassToServer.txt | 8 + docs/gamepackets/RequestCrystallizeItem.txt | 5 + docs/gamepackets/RequestDestroyItem.txt | 5 + docs/gamepackets/RequestDispel.txt | 5 + docs/gamepackets/RequestDropItem.txt | 14 + docs/gamepackets/RequestJoinParty.txt | 5 + docs/gamepackets/RequestOustPartyMember.txt | 9 + docs/gamepackets/RequestPrivateStoreBuy.txt | 9 + .../RequestPrivateStoreQuitBuy.txt | 1 + .../RequestPrivateStoreQuitSell.txt | 1 + docs/gamepackets/RequestPrivateStoreSell.txt | 11 + docs/gamepackets/RequestRestart.txt | 6 + docs/gamepackets/RequestRestartPoint.txt | 15 + .../gamepackets/RequestSaveInventoryOrder.txt | 7 + docs/gamepackets/RequestSellItem.txt | 13 + docs/gamepackets/RequestSkillCoolTime.txt | 3 + docs/gamepackets/RequestTargetCanceld.txt | 4 + docs/gamepackets/RequestUserCommand.txt | 24 + docs/gamepackets/Revive.txt | 4 + docs/gamepackets/SellList.txt | 56 + docs/gamepackets/Selling.txt | 26 + docs/gamepackets/SendBypassBuildCmd.txt | 5 + docs/gamepackets/SendWarehouseDepositList.txt | 1 + .../SendWarehouseWithdrawalList.txt | 4 + docs/gamepackets/SetPrivateStoreListSell.txt | 9 + docs/gamepackets/SetupGauge.txt | 6 + docs/gamepackets/ShortBuffStatusUpdate.txt | 13 + docs/gamepackets/Siiting_on_Craft.txt | 81 + docs/gamepackets/StopMove.txt | 18 + docs/gamepackets/TeleportToLocation.txt | 13 + docs/gamepackets/TradeRequest.txt | 81 + docs/gamepackets/UseItem.txt | 4 + docs/gamepackets/ValidateLocation.txt | 18 + docs/gamepackets/ValidatePosition.txt | 32 + docs/gamepackets/WarehouseDepositList.txt | 1 + docs/gamepackets/WarehouseWithdrawalList.txt | 1 + .../gamepackets/action_useitem_1230567729.txt | 506 ++++ docs/gamepackets/client_Logout_fromAUTHED.txt | 4 + .../compare_gs_login_gracia_hack.txt | 24 + .../compare_gs_login_gracia_hb.txt | 25 + .../compare_gs_login_gracia_hbb.txt | 19 + docs/hide.txt | 9 + docs/interlude_map_coords.txt | 27 + docs/l2_launcher.c | 467 ++++ docs/l2_races_classes.ini | 163 ++ docs/l2client_internal_hooks.html | 1703 ++++++++++++++ docs/l2client_internal_hooks_files/Thumbs.db | Bin 0 -> 22528 bytes docs/l2client_internal_hooks_files/a.htm | 9 + docs/l2client_internal_hooks_files/angel.gif | Bin 0 -> 1668 bytes .../l2client_internal_hooks_files/biggrin.gif | Bin 0 -> 514 bytes docs/l2client_internal_hooks_files/blum3.gif | Bin 0 -> 2247 bytes docs/l2client_internal_hooks_files/crazy.gif | Bin 0 -> 6513 bytes docs/l2client_internal_hooks_files/dance3.gif | Bin 0 -> 4690 bytes docs/l2client_internal_hooks_files/dash1.gif | Bin 0 -> 17671 bytes docs/l2client_internal_hooks_files/good.gif | Bin 0 -> 4164 bytes docs/l2client_internal_hooks_files/nea.gif | Bin 0 -> 3591 bytes .../offtopic.gif | Bin 0 -> 1096 bytes docs/l2client_internal_hooks_files/smile.gif | Bin 0 -> 1065 bytes docs/l2client_internal_hooks_files/wacko.gif | Bin 0 -> 1010 bytes docs/l2client_internal_hooks_files/wizard.gif | Bin 0 -> 13644 bytes docs/l2client_internal_hooks_files/yes3.gif | Bin 0 -> 2993 bytes docs/l2ct2_KeyPacket.rawbytes | Bin 0 -> 25 bytes docs/l2ct2_gameserver.pcap | Bin 0 -> 1599 bytes docs/la2_client_emu.rar | Bin 0 -> 217330 bytes docs/loginpackets/AntiXOR_Init00.txt | 51 + .../GGAuthResponse_HellboundServer.txt | 4 + docs/loginpackets/Init.txt | 63 + docs/loginpackets/Init2.txt | 60 + docs/loginpackets/Init_L2J.cpp | 60 + docs/loginpackets/LoginOK_HellboundServer.txt | 10 + docs/loginpackets/PlayOK_HellboundServer.txt | 5 + .../RequestAuthLogin_HellboundClient.txt | 34 + .../RequestGGAuth_HellboundClient.txt | 12 + .../RequestServerList_HellboundClient.txt | 14 + .../RequestServerLogin_HellboundClient.txt | 11 + .../ServerList_HellboundServer.txt | 196 ++ docs/loginpackets/bugogo.txt | 37 + docs/m00-la2shit.txt | 1592 +++++++++++++ docs/map.jpg | Bin 0 -> 448687 bytes docs/map_geodata_regions.txt | Bin 0 -> 19396 bytes docs/mfyyre_diy.txt | 79 + docs/mfyyre_patching_engine.jpg | Bin 0 -> 313650 bytes docs/packets_client.txt | 220 ++ docs/packets_client_final_l2wh.txt | 261 +++ docs/packets_server.txt | 341 +++ docs/packets_server_t23_l2wh.txt | 430 ++++ docs/pure_client.txt | 463 ++++ docs/radar_developmemt.htm | 2045 +++++++++++++++++ .../radar_developmemt_files/11x11progress.gif | Bin 0 -> 537 bytes docs/radar_developmemt_files/biggrin.gif | Bin 0 -> 1052 bytes docs/radar_developmemt_files/bold.gif | Bin 0 -> 77 bytes docs/radar_developmemt_files/clear.gif | Bin 0 -> 43 bytes .../radar_developmemt_files/collapse_tcat.gif | Bin 0 -> 642 bytes .../collapse_thead.gif | Bin 0 -> 580 bytes docs/radar_developmemt_files/color.gif | Bin 0 -> 89 bytes .../radar_developmemt_files/connection-min.js | 8 + docs/radar_developmemt_files/createlink.gif | Bin 0 -> 195 bytes .../radar_developmemt_files/helpfulanswers.js | 44 + docs/radar_developmemt_files/icon1.gif | Bin 0 -> 1032 bytes docs/radar_developmemt_files/insertimage.gif | Bin 0 -> 149 bytes docs/radar_developmemt_files/italic.gif | Bin 0 -> 79 bytes docs/radar_developmemt_files/menu_open.gif | Bin 0 -> 279 bytes docs/radar_developmemt_files/menupop.gif | Bin 0 -> 56 bytes docs/radar_developmemt_files/mode_hybrid.gif | Bin 0 -> 588 bytes docs/radar_developmemt_files/mode_linear.gif | Bin 0 -> 609 bytes .../radar_developmemt_files/mode_threaded.gif | Bin 0 -> 562 bytes .../modsystem_miscactions.js | 141 ++ .../multiquote_off.gif | Bin 0 -> 1355 bytes .../navbits_finallink_ltr.gif | Bin 0 -> 1035 bytes .../radar_developmemt_files/navbits_start.gif | Bin 0 -> 1004 bytes docs/radar_developmemt_files/post_old.gif | Bin 0 -> 522 bytes docs/radar_developmemt_files/pplogo.png | Bin 0 -> 32037 bytes docs/radar_developmemt_files/printer.gif | Bin 0 -> 1072 bytes docs/radar_developmemt_files/progress.gif | Bin 0 -> 701 bytes docs/radar_developmemt_files/quickreply.gif | Bin 0 -> 1407 bytes docs/radar_developmemt_files/quote.gif | Bin 0 -> 122 bytes docs/radar_developmemt_files/quote_002.gif | Bin 0 -> 2182 bytes docs/radar_developmemt_files/rating_1.gif | Bin 0 -> 541 bytes docs/radar_developmemt_files/rating_2.gif | Bin 0 -> 595 bytes docs/radar_developmemt_files/rating_3.gif | Bin 0 -> 1089 bytes docs/radar_developmemt_files/rating_4.gif | Bin 0 -> 1190 bytes docs/radar_developmemt_files/rating_5.gif | Bin 0 -> 1280 bytes docs/radar_developmemt_files/removeformat.gif | Bin 0 -> 114 bytes docs/radar_developmemt_files/reply.gif | Bin 0 -> 3226 bytes docs/radar_developmemt_files/report.gif | Bin 0 -> 1014 bytes docs/radar_developmemt_files/reputation.gif | Bin 0 -> 1089 bytes .../reputation_pos.gif | Bin 0 -> 501 bytes docs/radar_developmemt_files/resize_0.gif | Bin 0 -> 61 bytes docs/radar_developmemt_files/resize_1.gif | Bin 0 -> 61 bytes docs/radar_developmemt_files/sendtofriend.gif | Bin 0 -> 1125 bytes docs/radar_developmemt_files/separator.gif | Bin 0 -> 59 bytes docs/radar_developmemt_files/smile.gif | Bin 0 -> 1061 bytes docs/radar_developmemt_files/subscribe.gif | Bin 0 -> 1102 bytes docs/radar_developmemt_files/switchmode.gif | Bin 0 -> 127 bytes docs/radar_developmemt_files/underline.gif | Bin 0 -> 88 bytes docs/radar_developmemt_files/user_offline.gif | Bin 0 -> 1026 bytes .../vbulletin_ajax_reputation.js | 11 + .../vbulletin_ajax_taglist.js | 11 + .../vbulletin_ajax_tagsugg.js | 11 + .../vbulletin_ajax_threadrate.js | 11 + .../vbulletin_global.js | 11 + .../vbulletin_important.css | 62 + .../vbulletin_lightbox.js | 11 + .../radar_developmemt_files/vbulletin_menu.js | 11 + .../vbulletin_multi_quote.js | 11 + .../vbulletin_post_loader.js | 11 + .../vbulletin_quick_edit.js | 11 + .../vbulletin_quick_reply.js | 11 + .../vbulletin_textedit.js | 11 + docs/radar_developmemt_files/viewpost.gif | Bin 0 -> 964 bytes .../yahoo-dom-event.js | 13 + 198 files changed, 13189 insertions(+) create mode 100644 docs/Forsian_GS_Decrypt.cpp create mode 100644 docs/GameGuardKey.txt create mode 100644 docs/corrector-2.fsc create mode 100644 docs/corrector-gracia1.fsc create mode 100644 docs/demo_la2endecGS4m2.fsc create mode 100644 docs/exp_percent.txt create mode 100644 docs/experience.txt create mode 100644 docs/exploring_c_prng.cpp create mode 100644 docs/gamepackets/AbnormalStatusUpdate.txt create mode 100644 docs/gamepackets/Action.txt create mode 100644 docs/gamepackets/Appearing.txt create mode 100644 docs/gamepackets/AskJoinParty.txt create mode 100644 docs/gamepackets/Attack.txt create mode 100644 docs/gamepackets/AuthLogin.txt create mode 100644 docs/gamepackets/BuyList.txt create mode 100644 docs/gamepackets/ChangeMoveType.txt create mode 100644 docs/gamepackets/CharSelected_hellbound.txt create mode 100644 docs/gamepackets/CharSelectionInfo.txt create mode 100644 docs/gamepackets/CharacterCreate.txt create mode 100644 docs/gamepackets/CharacterSelect_hellbound.txt create mode 100644 docs/gamepackets/CharacterSelectionInfo_final.txt create mode 100644 docs/gamepackets/CreatureSay.txt create mode 100644 docs/gamepackets/Die.txt create mode 100644 docs/gamepackets/EnterWorld.txt create mode 100644 docs/gamepackets/EtcStatusUpdate.txt create mode 100644 docs/gamepackets/GameGuard.txt create mode 100644 docs/gamepackets/JoinParty.txt create mode 100644 docs/gamepackets/KeyPacket.txt create mode 100644 docs/gamepackets/Logout.txt create mode 100644 docs/gamepackets/MagicSkillUse.txt create mode 100644 docs/gamepackets/MoveToPawn.txt create mode 100644 docs/gamepackets/NewCharacter.txt create mode 100644 docs/gamepackets/NewCharacterSuccess.txt create mode 100644 docs/gamepackets/NpcHtmlMessage.txt create mode 100644 docs/gamepackets/PartySmallWindowAll.txt create mode 100644 docs/gamepackets/PrivateStoreListBuy.txt create mode 100644 docs/gamepackets/PrivateStoreListSell.txt create mode 100644 docs/gamepackets/PrivateStoreManageListBuy.txt create mode 100644 docs/gamepackets/PrivateStoreManageListSell.txt create mode 100644 docs/gamepackets/PrivateStoreMsgBuy.txt create mode 100644 docs/gamepackets/ProtocolVersion-l2emu_client_t1.txt create mode 100644 docs/gamepackets/ProtocolVersion_GraciaEpilogue.txt create mode 100644 docs/gamepackets/ProtocolVersion_GraciaPart2.txt create mode 100644 docs/gamepackets/ProtocolVersion_HellboundClient.txt create mode 100644 docs/gamepackets/RecipeShopMsg.txt create mode 100644 docs/gamepackets/RequestAutoSoulShot.txt create mode 100644 docs/gamepackets/RequestBuyItem.txt create mode 100644 docs/gamepackets/RequestBypassToServer.txt create mode 100644 docs/gamepackets/RequestCrystallizeItem.txt create mode 100644 docs/gamepackets/RequestDestroyItem.txt create mode 100644 docs/gamepackets/RequestDispel.txt create mode 100644 docs/gamepackets/RequestDropItem.txt create mode 100644 docs/gamepackets/RequestJoinParty.txt create mode 100644 docs/gamepackets/RequestOustPartyMember.txt create mode 100644 docs/gamepackets/RequestPrivateStoreBuy.txt create mode 100644 docs/gamepackets/RequestPrivateStoreQuitBuy.txt create mode 100644 docs/gamepackets/RequestPrivateStoreQuitSell.txt create mode 100644 docs/gamepackets/RequestPrivateStoreSell.txt create mode 100644 docs/gamepackets/RequestRestart.txt create mode 100644 docs/gamepackets/RequestRestartPoint.txt create mode 100644 docs/gamepackets/RequestSaveInventoryOrder.txt create mode 100644 docs/gamepackets/RequestSellItem.txt create mode 100644 docs/gamepackets/RequestSkillCoolTime.txt create mode 100644 docs/gamepackets/RequestTargetCanceld.txt create mode 100644 docs/gamepackets/RequestUserCommand.txt create mode 100644 docs/gamepackets/Revive.txt create mode 100644 docs/gamepackets/SellList.txt create mode 100644 docs/gamepackets/Selling.txt create mode 100644 docs/gamepackets/SendBypassBuildCmd.txt create mode 100644 docs/gamepackets/SendWarehouseDepositList.txt create mode 100644 docs/gamepackets/SendWarehouseWithdrawalList.txt create mode 100644 docs/gamepackets/SetPrivateStoreListSell.txt create mode 100644 docs/gamepackets/SetupGauge.txt create mode 100644 docs/gamepackets/ShortBuffStatusUpdate.txt create mode 100644 docs/gamepackets/Siiting_on_Craft.txt create mode 100644 docs/gamepackets/StopMove.txt create mode 100644 docs/gamepackets/TeleportToLocation.txt create mode 100644 docs/gamepackets/TradeRequest.txt create mode 100644 docs/gamepackets/UseItem.txt create mode 100644 docs/gamepackets/ValidateLocation.txt create mode 100644 docs/gamepackets/ValidatePosition.txt create mode 100644 docs/gamepackets/WarehouseDepositList.txt create mode 100644 docs/gamepackets/WarehouseWithdrawalList.txt create mode 100644 docs/gamepackets/action_useitem_1230567729.txt create mode 100644 docs/gamepackets/client_Logout_fromAUTHED.txt create mode 100644 docs/gamepackets/compare_gs_login_gracia_hack.txt create mode 100644 docs/gamepackets/compare_gs_login_gracia_hb.txt create mode 100644 docs/gamepackets/compare_gs_login_gracia_hbb.txt create mode 100644 docs/hide.txt create mode 100644 docs/interlude_map_coords.txt create mode 100644 docs/l2_launcher.c create mode 100644 docs/l2_races_classes.ini create mode 100644 docs/l2client_internal_hooks.html create mode 100644 docs/l2client_internal_hooks_files/Thumbs.db create mode 100644 docs/l2client_internal_hooks_files/a.htm create mode 100644 docs/l2client_internal_hooks_files/angel.gif create mode 100644 docs/l2client_internal_hooks_files/biggrin.gif create mode 100644 docs/l2client_internal_hooks_files/blum3.gif create mode 100644 docs/l2client_internal_hooks_files/crazy.gif create mode 100644 docs/l2client_internal_hooks_files/dance3.gif create mode 100644 docs/l2client_internal_hooks_files/dash1.gif create mode 100644 docs/l2client_internal_hooks_files/good.gif create mode 100644 docs/l2client_internal_hooks_files/nea.gif create mode 100644 docs/l2client_internal_hooks_files/offtopic.gif create mode 100644 docs/l2client_internal_hooks_files/smile.gif create mode 100644 docs/l2client_internal_hooks_files/wacko.gif create mode 100644 docs/l2client_internal_hooks_files/wizard.gif create mode 100644 docs/l2client_internal_hooks_files/yes3.gif create mode 100644 docs/l2ct2_KeyPacket.rawbytes create mode 100644 docs/l2ct2_gameserver.pcap create mode 100644 docs/la2_client_emu.rar create mode 100644 docs/loginpackets/AntiXOR_Init00.txt create mode 100644 docs/loginpackets/GGAuthResponse_HellboundServer.txt create mode 100644 docs/loginpackets/Init.txt create mode 100644 docs/loginpackets/Init2.txt create mode 100644 docs/loginpackets/Init_L2J.cpp create mode 100644 docs/loginpackets/LoginOK_HellboundServer.txt create mode 100644 docs/loginpackets/PlayOK_HellboundServer.txt create mode 100644 docs/loginpackets/RequestAuthLogin_HellboundClient.txt create mode 100644 docs/loginpackets/RequestGGAuth_HellboundClient.txt create mode 100644 docs/loginpackets/RequestServerList_HellboundClient.txt create mode 100644 docs/loginpackets/RequestServerLogin_HellboundClient.txt create mode 100644 docs/loginpackets/ServerList_HellboundServer.txt create mode 100644 docs/loginpackets/bugogo.txt create mode 100644 docs/m00-la2shit.txt create mode 100644 docs/map.jpg create mode 100644 docs/map_geodata_regions.txt create mode 100644 docs/mfyyre_diy.txt create mode 100644 docs/mfyyre_patching_engine.jpg create mode 100644 docs/packets_client.txt create mode 100644 docs/packets_client_final_l2wh.txt create mode 100644 docs/packets_server.txt create mode 100644 docs/packets_server_t23_l2wh.txt create mode 100644 docs/pure_client.txt create mode 100644 docs/radar_developmemt.htm create mode 100644 docs/radar_developmemt_files/11x11progress.gif create mode 100644 docs/radar_developmemt_files/biggrin.gif create mode 100644 docs/radar_developmemt_files/bold.gif create mode 100644 docs/radar_developmemt_files/clear.gif create mode 100644 docs/radar_developmemt_files/collapse_tcat.gif create mode 100644 docs/radar_developmemt_files/collapse_thead.gif create mode 100644 docs/radar_developmemt_files/color.gif create mode 100644 docs/radar_developmemt_files/connection-min.js create mode 100644 docs/radar_developmemt_files/createlink.gif create mode 100644 docs/radar_developmemt_files/helpfulanswers.js create mode 100644 docs/radar_developmemt_files/icon1.gif create mode 100644 docs/radar_developmemt_files/insertimage.gif create mode 100644 docs/radar_developmemt_files/italic.gif create mode 100644 docs/radar_developmemt_files/menu_open.gif create mode 100644 docs/radar_developmemt_files/menupop.gif create mode 100644 docs/radar_developmemt_files/mode_hybrid.gif create mode 100644 docs/radar_developmemt_files/mode_linear.gif create mode 100644 docs/radar_developmemt_files/mode_threaded.gif create mode 100644 docs/radar_developmemt_files/modsystem_miscactions.js create mode 100644 docs/radar_developmemt_files/multiquote_off.gif create mode 100644 docs/radar_developmemt_files/navbits_finallink_ltr.gif create mode 100644 docs/radar_developmemt_files/navbits_start.gif create mode 100644 docs/radar_developmemt_files/post_old.gif create mode 100644 docs/radar_developmemt_files/pplogo.png create mode 100644 docs/radar_developmemt_files/printer.gif create mode 100644 docs/radar_developmemt_files/progress.gif create mode 100644 docs/radar_developmemt_files/quickreply.gif create mode 100644 docs/radar_developmemt_files/quote.gif create mode 100644 docs/radar_developmemt_files/quote_002.gif create mode 100644 docs/radar_developmemt_files/rating_1.gif create mode 100644 docs/radar_developmemt_files/rating_2.gif create mode 100644 docs/radar_developmemt_files/rating_3.gif create mode 100644 docs/radar_developmemt_files/rating_4.gif create mode 100644 docs/radar_developmemt_files/rating_5.gif create mode 100644 docs/radar_developmemt_files/removeformat.gif create mode 100644 docs/radar_developmemt_files/reply.gif create mode 100644 docs/radar_developmemt_files/report.gif create mode 100644 docs/radar_developmemt_files/reputation.gif create mode 100644 docs/radar_developmemt_files/reputation_pos.gif create mode 100644 docs/radar_developmemt_files/resize_0.gif create mode 100644 docs/radar_developmemt_files/resize_1.gif create mode 100644 docs/radar_developmemt_files/sendtofriend.gif create mode 100644 docs/radar_developmemt_files/separator.gif create mode 100644 docs/radar_developmemt_files/smile.gif create mode 100644 docs/radar_developmemt_files/subscribe.gif create mode 100644 docs/radar_developmemt_files/switchmode.gif create mode 100644 docs/radar_developmemt_files/underline.gif create mode 100644 docs/radar_developmemt_files/user_offline.gif create mode 100644 docs/radar_developmemt_files/vbulletin_ajax_reputation.js create mode 100644 docs/radar_developmemt_files/vbulletin_ajax_taglist.js create mode 100644 docs/radar_developmemt_files/vbulletin_ajax_tagsugg.js create mode 100644 docs/radar_developmemt_files/vbulletin_ajax_threadrate.js create mode 100644 docs/radar_developmemt_files/vbulletin_global.js create mode 100644 docs/radar_developmemt_files/vbulletin_important.css create mode 100644 docs/radar_developmemt_files/vbulletin_lightbox.js create mode 100644 docs/radar_developmemt_files/vbulletin_menu.js create mode 100644 docs/radar_developmemt_files/vbulletin_multi_quote.js create mode 100644 docs/radar_developmemt_files/vbulletin_post_loader.js create mode 100644 docs/radar_developmemt_files/vbulletin_quick_edit.js create mode 100644 docs/radar_developmemt_files/vbulletin_quick_reply.js create mode 100644 docs/radar_developmemt_files/vbulletin_textedit.js create mode 100644 docs/radar_developmemt_files/viewpost.gif create mode 100644 docs/radar_developmemt_files/yahoo-dom-event.js diff --git a/docs/Forsian_GS_Decrypt.cpp b/docs/Forsian_GS_Decrypt.cpp new file mode 100644 index 0000000..91442fc --- /dev/null +++ b/docs/Forsian_GS_Decrypt.cpp @@ -0,0 +1,57 @@ +// [17:13:24] + +void Decrypt(unsigned char *Data, int size_data){ + if (!Crypt) return; + if (Settings.DebugLogFileLineage) { + fprintf(LogLineagePacket, "=======================================? %d (TCP: ~? %d)=============================================\nPacket:\n", NumberLineage2Packet, NumberIPPacket); + PrintData(Data, size_data, LogLineagePacket); + } + int i; + int j=0; + int Temp; + int Temp2 = 0; + for (i=0; i < size_data; i++){ + Temp = Data[i] & 0xFF; + Data[i] = (byte)(Temp ^ (CryptKey[j++] & 0xFF) ^ Temp2); + Temp2 = Temp; + if (j == 16) j = 0; + } + if (Settings.DebugLogFileLineage) { + fprintf(LogLineagePacket, "\nOld Key: "); + for (i = 0; i < 16; i++){ + fprintf(LogLineagePacket, "%02X ", CryptKey[i]); + } + } + long old = 0; + old |= CryptKey[8] & 0xFF; + old |= CryptKey[9] << 0x08 & 0xFF00; + old |= CryptKey[10] << 0x10 & 0xFF0000; + old |= CryptKey[11] << 0x18 & 0xFF000000; + if (Settings.DebugLogFileLineage) { + fprintf(LogLineagePacket, "\nLong Old = 0x%08X\n", old); + fprintf(LogLineagePacket, "Size: %d(dec) %04X(hex)\n", size_data, size_data); + } + old += size_data; + if (Settings.DebugLogFileLineage) { + fprintf(LogLineagePacket, "Old+Size: 0x%08X\n", old); + } + CryptKey[8] = (byte)(old & 0xFF); + CryptKey[9] = (byte)(old >> 0x08 & 0xFF); + CryptKey[10] = (byte)(old >> 0x10 & 0xFF); + CryptKey[11] = (byte)(old >> 0x18 & 0xFF); + if (Settings.DebugLogFileLineage) { + fprintf(LogLineagePacket, "New Crypt Key: "); + for (i = 0; i < 16; i++){ + fprintf(LogLineagePacket, "%02X ", CryptKey[i]); + } + fprintf(LogLineagePacket, "\nPacket After Decrypt:\n"); + PrintData(Data, size_data, LogLineagePacket); + fprintf(LogLineagePacket, "New Crypt Key: "); + for (i = 0; i < 16; i++){ + fprintf(LogLineagePacket, "%02X ", CryptKey[i]); + } + fprintf(LogLineagePacket, "\n"); + fflush(LogLineagePacket); + } + return; +} diff --git a/docs/GameGuardKey.txt b/docs/GameGuardKey.txt new file mode 100644 index 0000000..0b4ae90 --- /dev/null +++ b/docs/GameGuardKey.txt @@ -0,0 +1,1226 @@ +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = 02D92807, dwKeys[1] = C61A2F8D, dwKeys[2] = 473753F6, dwKeys[3] = B78510FC;-[0]=E0A2C512,[1]=CFBB190C,[2]=0716B523,[3]=F7026369; +SETKEY:dwKeys[0] = 4621A57D, dwKeys[1] = 34BC2330, dwKeys[2] = DE106146, dwKeys[3] = 436ACE8F;-[0]=0E2AC8E1,[1]=213314FF,[2]=E99EB8D0,[3]=198A6E9A; +SETKEY:dwKeys[0] = E5E9A4AD, dwKeys[1] = 202BD860, dwKeys[2] = 4A47FE37, dwKeys[3] = 0D4541C4;-[0]=F21458ED,[1]=DD0D84F3,[2]=15A028DC,[3]=E5B4FE96; +SETKEY:dwKeys[0] = A1D2BE7D, dwKeys[1] = F4BF9D98, dwKeys[2] = F575ED0B, dwKeys[3] = BB210BC3;-[0]=15BD3117,[1]=3AA4ED09,[2]=F2094126,[3]=021D976C; +SETKEY:dwKeys[0] = D99DCBE2, dwKeys[1] = A5C11292, dwKeys[2] = E6BA22D8, dwKeys[3] = 6E6153C0;-[0]=77BE0F66,[1]=58A7D378,[2]=900A7F57,[3]=601EA91D; +SETKEY:dwKeys[0] = D89503D1, dwKeys[1] = 56AF56EB, dwKeys[2] = 1CD03C0E, dwKeys[3] = 7BF03590;-[0]=10D8440E,[1]=3FC19810,[2]=F76C343F,[3]=0778E275; +SETKEY:dwKeys[0] = 88C6982F, dwKeys[1] = 73F3443E, dwKeys[2] = F351D3A7, dwKeys[3] = 1D8A1CC2;-[0]=0DFBDEA4,[1]=22E202BA,[2]=EA4FAE95,[3]=1A5B78DF; +SETKEY:dwKeys[0] = 18402D27, dwKeys[1] = D7BB0F9D, dwKeys[2] = C7300CAA, dwKeys[3] = 97A1DAE6;-[0]=C09313B0,[1]=EF8ACFAE,[2]=27276381,[3]=D733B5CB; +SETKEY:dwKeys[0] = 128B00B3, dwKeys[1] = 2673841D, dwKeys[2] = B7C3D667, dwKeys[3] = 50095290;-[0]=754C1AC2,[1]=5A55C6DC,[2]=92F86AF3,[3]=62ECBCB9; +SETKEY:dwKeys[0] = 367B5F66, dwKeys[1] = 3FD170CC, dwKeys[2] = EA221914, dwKeys[3] = 07931922;-[0]=9495CC80,[1]=BB8C109E,[2]=7321BCB1,[3]=83356AFB; +SETKEY:dwKeys[0] = F23AF5A8, dwKeys[1] = 8A118E1F, dwKeys[2] = AFADA12E, dwKeys[3] = 2766C1A4;-[0]=93EA3B75,[1]=BCF3E76B,[2]=745E4B44,[3]=844A9D0E; +SETKEY:dwKeys[0] = 5DC656AB, dwKeys[1] = 086CF5F8, dwKeys[2] = F0BE186F, dwKeys[3] = 98EEE13C;-[0]=6724EB4E,[1]=483D3750,[2]=80909B7F,[3]=70844D35; +SETKEY:dwKeys[0] = C81035B2, dwKeys[1] = 8F56F565, dwKeys[2] = 3FF935D1, dwKeys[3] = A3D2DC1C;-[0]=E7FA76FB,[1]=C8E3AAE5,[2]=004E06CA,[3]=F05AD080; +SETKEY:dwKeys[0] = 9A6CFD08, dwKeys[1] = A052E57A, dwKeys[2] = 1A0908DC, dwKeys[3] = B9A4582A;-[0]=223D1749,[1]=0D24CB57,[2]=C5896778,[3]=359DB132; +SETKEY:dwKeys[0] = 87F37923, dwKeys[1] = 8B2D9617, dwKeys[2] = ECBE929E, dwKeys[3] = A4D2BDF4;-[0]=C7A29996,[1]=E8BB4588,[2]=2016E9A7,[3]=D0023FED; +SETKEY:dwKeys[0] = 2BF1784D, dwKeys[1] = A4F3B6E3, dwKeys[2] = 7ECB4201, dwKeys[3] = ADDF61B8;-[0]=5103E573,[1]=7E1A396D,[2]=B6B79542,[3]=46A34308; +SETKEY:dwKeys[0] = 74393618, dwKeys[1] = 368852D1, dwKeys[2] = 868AEA12, dwKeys[3] = BB5878AE;-[0]=98B2721C,[1]=B7ABAE02,[2]=7F06022D,[3]=8F12D467; +SETKEY:dwKeys[0] = 9CB5EB74, dwKeys[1] = A01688C8, dwKeys[2] = 4D865CF8, dwKeys[3] = C0839936;-[0]=26A6D738,[1]=09BF0B26,[2]=C112A709,[3]=31067143; +SETKEY:dwKeys[0] = 05FBBE40, dwKeys[1] = C0B5DF5F, dwKeys[2] = 91892471, dwKeys[3] = B6671F53;-[0]=335DE7A4,[1]=1C443BBA,[2]=D4E99795,[3]=24FD41DF; +SETKEY:dwKeys[0] = FA9EC36B, dwKeys[1] = 4C7CDFE6, dwKeys[2] = EC00BFFC, dwKeys[3] = 75A3B231;-[0]=69B1B39E,[1]=46A86F80,[2]=8E05C3AF,[3]=7E1115E5; +SETKEY:dwKeys[0] = D873C553, dwKeys[1] = B5068FEC, dwKeys[2] = B7391DA5, dwKeys[3] = 70ACBE40;-[0]=9E4D32BA,[1]=B154EEA4,[2]=79F9428B,[3]=89ED94C1; +SETKEY:dwKeys[0] = 518F21EB, dwKeys[1] = C0CF3E9C, dwKeys[2] = BEBBF795, dwKeys[3] = 23F7C4D1;-[0]=0273773B,[1]=2D6AAB25,[2]=E5C7070A,[3]=15D3D140; +SETKEY:dwKeys[0] = E9D02D9B, dwKeys[1] = F27FB0AE, dwKeys[2] = 32B8BC31, dwKeys[3] = F28A63C6;-[0]=C3533CFD,[1]=EC4AE0E3,[2]=24E74CCC,[3]=D4F39A86; +SETKEY:dwKeys[0] = C7FE284B, dwKeys[1] = D8BC484D, dwKeys[2] = D8384CBD, dwKeys[3] = 5858FCDB;-[0]=E359DA5F,[1]=CC400641,[2]=04EDAA6E,[3]=F4F97C24; +SETKEY:dwKeys[0] = E81E48F3, dwKeys[1] = 1F070653, dwKeys[2] = D1C313E4, dwKeys[3] = C7341E5E;-[0]=4931903D,[1]=66284C23,[2]=AE85E00C,[3]=5E913646; +SETKEY:dwKeys[0] = 39CF889C, dwKeys[1] = 55AE57CA, dwKeys[2] = AAD8443D, dwKeys[3] = 83F6AF83;-[0]=B7942CD1,[1]=988DF0CF,[2]=50205CE0,[3]=A0348AAA; +SETKEY:dwKeys[0] = 7F8BE796, dwKeys[1] = B732F737, dwKeys[2] = 57AA8FC0, dwKeys[3] = B08AAE57;-[0]=A340C93D,[1]=8C591523,[2]=44F4B90C,[3]=B4E06F46; +SETKEY:dwKeys[0] = 92BBB315, dwKeys[1] = E3BF2BCE, dwKeys[2] = A478F579, dwKeys[3] = 89B4BD9F;-[0]=0D31CC0B,[1]=22281015,[2]=EA85BC3A,[3]=1A916A70; +SETKEY:dwKeys[0] = 17051999, dwKeys[1] = 30365A3D, dwKeys[2] = 59F11351, dwKeys[3] = 5700857F;-[0]=072C01CC,[1]=2835DDD2,[2]=E09871FD,[3]=108CA7B7; +SETKEY:dwKeys[0] = 0C1FA45D, dwKeys[1] = 912A5DF0, dwKeys[2] = FA5FF25A, dwKeys[3] = D0A05A54;-[0]=B6CBFA63,[1]=99D2267D,[2]=517F8A52,[3]=A16B5C18; +SETKEY:dwKeys[0] = 22557B6C, dwKeys[1] = 8E9F740E, dwKeys[2] = 2592530D, dwKeys[3] = 7BCAA52C;-[0]=411CF0B7,[1]=6E052CA9,[2]=A6A88086,[3]=56BC56CC; +SETKEY:dwKeys[0] = 6A009A14, dwKeys[1] = F8A08F5C, dwKeys[2] = 1EDC8C50, dwKeys[3] = 0181BF1E;-[0]=CFBF6C76,[1]=E0A6B068,[2]=280B1C47,[3]=D81FCA0D; +SETKEY:dwKeys[0] = 5496F2BF, dwKeys[1] = 0DBEA0D6, dwKeys[2] = B0E6FA9E, dwKeys[3] = F21A6764;-[0]=6F877166,[1]=409EAD78,[2]=88330157,[3]=7827D71D; +SETKEY:dwKeys[0] = 2041237E, dwKeys[1] = B3DF6012, dwKeys[2] = 0C55716F, dwKeys[3] = 6C7F8822;-[0]=0DA6CE30,[1]=22BF122E,[2]=EA12BE01,[3]=1A06684B; +SETKEY:dwKeys[0] = F7653F79, dwKeys[1] = 664A1966, dwKeys[2] = 3FCCCEDA, dwKeys[3] = 38DA1EEF;-[0]=892C0973,[1]=A635D56D,[2]=6E987942,[3]=9E8CAF08; +SETKEY:dwKeys[0] = 069A6795, dwKeys[1] = 2003F212, dwKeys[2] = 59E7D6D9, dwKeys[3] = 7BB53845;-[0]=1FDCA77A,[1]=30C57B64,[2]=F868D74B,[3]=087C0101; +SETKEY:dwKeys[0] = 471DC2F5, dwKeys[1] = 498928BD, dwKeys[2] = 2A528DB2, dwKeys[3] = 39327AB8;-[0]=D67EB07B,[1]=F9676C65,[2]=31CAC04A,[3]=C1DE1600; +SETKEY:dwKeys[0] = 5A14A647, dwKeys[1] = 65B55353, dwKeys[2] = 19D6E63D, dwKeys[3] = 903F406B;-[0]=607B4F22,[1]=4F62933C,[2]=87CF3F13,[3]=77DBE959; +SETKEY:dwKeys[0] = 6BBF43CF, dwKeys[1] = 20F0ECE9, dwKeys[2] = C46B0604, dwKeys[3] = 5FE5B269;-[0]=3E4169B8,[1]=1158B5A6,[2]=D9F51989,[3]=29E1CFC3; +SETKEY:dwKeys[0] = 9E55E895, dwKeys[1] = CB7D17BB, dwKeys[2] = D024E268, dwKeys[3] = 5DAAC8BF;-[0]=D2532C66,[1]=FD4AF078,[2]=35E75C57,[3]=C5F38A1D; +SETKEY:dwKeys[0] = B0AACE7C, dwKeys[1] = BC38856B, dwKeys[2] = F607F688, dwKeys[3] = 3D86952F;-[0]=794D9A2B,[1]=56544635,[2]=9EF9EA1A,[3]=6EED3C50; +SETKEY:dwKeys[0] = 35B7BE26, dwKeys[1] = 9364B85F, dwKeys[2] = BFCB0DAE, dwKeys[3] = 6640482C;-[0]=4B1248CC,[1]=640B94D2,[2]=ACA638FD,[3]=5CB2EEB7; +SETKEY:dwKeys[0] = 85EED0DE, dwKeys[1] = 9EFD37B8, dwKeys[2] = 28FB733F, dwKeys[3] = 798DC857;-[0]=DA7E3EC7,[1]=F567E2D9,[2]=3DCA4EF6,[3]=CDDE98BC; +SETKEY:dwKeys[0] = EBD21097, dwKeys[1] = F71D6BDF, dwKeys[2] = 2D3C636F, dwKeys[3] = DC0359F0;-[0]=DC816920,[1]=F398B53E,[2]=3B351911,[3]=CB21CF5B; +SETKEY:dwKeys[0] = 2A3F1F9F, dwKeys[1] = F7242BB6, dwKeys[2] = 86C46EA5, dwKeys[3] = CD69A706;-[0]=32C055F9,[1]=1DD989E7,[2]=D57425C8,[3]=2560F382; +SETKEY:dwKeys[0] = 5ECEA150, dwKeys[1] = B67C4AD0, dwKeys[2] = B736D07E, dwKeys[3] = FC811415;-[0]=C47E8B88,[1]=EB675796,[2]=23CAFBB9,[3]=D3DE2DF3; +SETKEY:dwKeys[0] = 11136E70, dwKeys[1] = EB419196, dwKeys[2] = 37156ED0, dwKeys[3] = 311F1F87;-[0]=53AE5DA8,[1]=7CB781B6,[2]=B41A2D99,[3]=440EFBD3; +SETKEY:dwKeys[0] = 48365FF2, dwKeys[1] = CDD0DD64, dwKeys[2] = 6502D186, dwKeys[3] = 3E2A5C4A;-[0]=C46DBB05,[1]=EB74671B,[2]=23D9CB34,[3]=D3CD1D7E; +SETKEY:dwKeys[0] = CE8CB49F, dwKeys[1] = F8067144, dwKeys[2] = 7A989899, dwKeys[3] = 0EA375E0;-[0]=A354CDB9,[1]=8C4D11A7,[2]=44E0BD88,[3]=B4F46BC2; +SETKEY:dwKeys[0] = A54B9246, dwKeys[1] = 82788E44, dwKeys[2] = D49002D3, dwKeys[3] = 66523374;-[0]=C108A1F5,[1]=EE117DEB,[2]=26BCD1C4,[3]=D6A8078E; +SETKEY:dwKeys[0] = 433A5032, dwKeys[1] = 3AC521BE, dwKeys[2] = 853882FA, dwKeys[3] = 55C0ED44;-[0]=B27E257B,[1]=9D67F965,[2]=55CA554A,[3]=A5DE8300; +SETKEY:dwKeys[0] = 3D60C2B8, dwKeys[1] = D06156AB, dwKeys[2] = E0654B42, dwKeys[3] = D3BFB817;-[0]=D70B6C6C,[1]=F812B072,[2]=30BF1C5D,[3]=C0ABCA17; +SETKEY:dwKeys[0] = 97A92BD9, dwKeys[1] = 15C474B4, dwKeys[2] = FB553DE2, dwKeys[3] = 82F10F80;-[0]=C5970921,[1]=EA8ED53F,[2]=22237910,[3]=D237AF5A; +SETKEY:dwKeys[0] = E1C63957, dwKeys[1] = 5FF908FE, dwKeys[2] = 705D35BE, dwKeys[3] = 5AAF571E;-[0]=8F762FE8,[1]=A06FF3F6,[2]=68C25FD9,[3]=98D68993; +SETKEY:dwKeys[0] = C00B9DD3, dwKeys[1] = BFCC7E27, dwKeys[2] = B685DEF4, dwKeys[3] = E7149670;-[0]=3F3D4DAF,[1]=102491B1,[2]=D8893D9E,[3]=289DEBD4; +SETKEY:dwKeys[0] = 50292E8D, dwKeys[1] = 82AF0F2B, dwKeys[2] = C90E6AE6, dwKeys[3] = B0729CD6;-[0]=20B621C1,[1]=0FAFFDDF,[2]=C70251F0,[3]=371687BA; +SETKEY:dwKeys[0] = 384E958B, dwKeys[1] = 325261AA, dwKeys[2] = A16E9B5B, dwKeys[3] = 664E96CF;-[0]=A88C298C,[1]=8795F592,[2]=4F3859BD,[3]=BF2C8FF7; +SETKEY:dwKeys[0] = 5DE61193, dwKeys[1] = ABB54E17, dwKeys[2] = DF051979, dwKeys[3] = F8073BB2;-[0]=AC66015E,[1]=837FDD40,[2]=4BD2716F,[3]=BBC6A725; +SETKEY:dwKeys[0] = F83A61F6, dwKeys[1] = AA2618B2, dwKeys[2] = 3ADC4480, dwKeys[3] = D60A3E96;-[0]=84B6B876,[1]=ABAF6468,[2]=6302C847,[3]=93161E0D; +SETKEY:dwKeys[0] = C80B11EB, dwKeys[1] = 0D84B59B, dwKeys[2] = D7FB9954, dwKeys[3] = 2E6C5D48;-[0]=B1B07D98,[1]=9EA9A186,[2]=56040DA9,[3]=A610DBE3; +SETKEY:dwKeys[0] = 44C009DC, dwKeys[1] = AF06B3FA, dwKeys[2] = 6FB2ABBC, dwKeys[3] = DA654381;-[0]=8405E385,[1]=AB1C3F9B,[2]=63B193B4,[3]=93A545FE; +SETKEY:dwKeys[0] = 5B5A2606, dwKeys[1] = DFC0D801, dwKeys[2] = A404AE9E, dwKeys[3] = 5A3B7A24;-[0]=0DDC9D37,[1]=22C54129,[2]=EA68ED06,[3]=1A7C3B4C; +SETKEY:dwKeys[0] = 8E873BB2, dwKeys[1] = 8E15EB74, dwKeys[2] = 80A9B5F9, dwKeys[3] = 456AA8EB;-[0]=68B96D21,[1]=47A0B13F,[2]=8F0D1D10,[3]=7F19CB5A; +SETKEY:dwKeys[0] = E457CEFD, dwKeys[1] = 76C41143, dwKeys[2] = D6E7E016, dwKeys[3] = EAA957C1;-[0]=6C8BF10B,[1]=43922D15,[2]=8B3F813A,[3]=7B2B5770; +SETKEY:dwKeys[0] = 22C8A4DB, dwKeys[1] = 13ED2165, dwKeys[2] = C4A44458, dwKeys[3] = AAD3BA60;-[0]=E50DD7E3,[1]=CA140BFD,[2]=02B9A7D2,[3]=F2AD7198; +SETKEY:dwKeys[0] = 7D49D3D9, dwKeys[1] = 4F171C1F, dwKeys[2] = 707957FD, dwKeys[3] = 0B93C33A;-[0]=14A5C344,[1]=3BBC1F5A,[2]=F311B375,[3]=0305653F; +SETKEY:dwKeys[0] = 426201D9, dwKeys[1] = AC4EF300, dwKeys[2] = 4E8EA3D7, dwKeys[3] = B651BBCE;-[0]=B8779CF5,[1]=976E40EB,[2]=5FC3ECC4,[3]=AFD73A8E; +SETKEY:dwKeys[0] = 3EECE66F, dwKeys[1] = D4BC9D6A, dwKeys[2] = 081D10E8, dwKeys[3] = 3310BCDC;-[0]=3749BBDA,[1]=185067C4,[2]=D0FDCBEB,[3]=20E91DA1; +SETKEY:dwKeys[0] = AEA33F3B, dwKeys[1] = B8DE9B59, dwKeys[2] = B48E0F93, dwKeys[3] = 5E0B3FEC;-[0]=C81D3032,[1]=E704EC2C,[2]=2FA94003,[3]=DFBD9649; +SETKEY:dwKeys[0] = DEC4D94E, dwKeys[1] = EBDD1F3B, dwKeys[2] = B550D62E, dwKeys[3] = 0BA78EF1;-[0]=B3F59266,[1]=9CEC4E78,[2]=5441E257,[3]=A455341D; +SETKEY:dwKeys[0] = 6E6421DD, dwKeys[1] = D4142840, dwKeys[2] = 1A080213, dwKeys[3] = 1D960579;-[0]=332A8BBF,[1]=1C3357A1,[2]=D49EFB8E,[3]=248A2DC4; +SETKEY:dwKeys[0] = 9FBCF102, dwKeys[1] = 4ED407A6, dwKeys[2] = 65800F33, dwKeys[3] = 0F28EB38;-[0]=9A097178,[1]=B510AD66,[2]=7DBD0149,[3]=8DA9D703; +SETKEY:dwKeys[0] = 44FC756D, dwKeys[1] = EEEAB4EB, dwKeys[2] = B89A20CC, dwKeys[3] = ECCCAA57;-[0]=B91410B3,[1]=960DCCAD,[2]=5EA06082,[3]=AEB4B6C8; +SETKEY:dwKeys[0] = 98FD1991, dwKeys[1] = B53EA90E, dwKeys[2] = 026D4689, dwKeys[3] = 5E83CEF1;-[0]=111EFFC9,[1]=3E0723D7,[2]=F6AA8FF8,[3]=06BE59B2; +SETKEY:dwKeys[0] = F95FAD97, dwKeys[1] = 77ACCAEC, dwKeys[2] = 29696065, dwKeys[3] = CBFFBEBD;-[0]=55970472,[1]=7A8ED86C,[2]=B2237443,[3]=4237A209; +SETKEY:dwKeys[0] = 43D976ED, dwKeys[1] = 5B8FC89D, dwKeys[2] = 7AFB8216, dwKeys[3] = 893614AA;-[0]=8BB28266,[1]=A4AB5E78,[2]=6C06F257,[3]=9C12241D; +SETKEY:dwKeys[0] = 0BEC438B, dwKeys[1] = AF398EDF, dwKeys[2] = 2BB3E53B, dwKeys[3] = ECA6D21A;-[0]=ED549F16,[1]=C24D4308,[2]=0AE0EF27,[3]=FAF4396D; +SETKEY:dwKeys[0] = CA412C19, dwKeys[1] = 8DE7EB3D, dwKeys[2] = 148F81B7, dwKeys[3] = 82022486;-[0]=05B11939,[1]=2AA8C527,[2]=E2056908,[3]=1211BF42; +SETKEY:dwKeys[0] = 82135F21, dwKeys[1] = FBDC66AA, dwKeys[2] = 1582E43C, dwKeys[3] = 9829A700;-[0]=626067CE,[1]=4D79BBD0,[2]=85D417FF,[3]=75C0C1B5; +SETKEY:dwKeys[0] = 7E8E83D4, dwKeys[1] = 014AB934, dwKeys[2] = DF40C23F, dwKeys[3] = AF189614;-[0]=A4ECD85F,[1]=8BF50441,[2]=4358A86E,[3]=B34C7E24; +SETKEY:dwKeys[0] = 0EF5A474, dwKeys[1] = EF021335, dwKeys[2] = 1399BE49, dwKeys[3] = 2E9C4C80;-[0]=A40C20B5,[1]=8B15FCAB,[2]=43B85084,[3]=B3AC86CE; +SETKEY:dwKeys[0] = 56C82538, dwKeys[1] = B3A19F75, dwKeys[2] = 104ECD67, dwKeys[3] = 3C35E949;-[0]=CF786223,[1]=E061BE3D,[2]=28CC1212,[3]=D8D8C458; +SETKEY:dwKeys[0] = 2F5DFC5B, dwKeys[1] = B65468E0, dwKeys[2] = 63CCA751, dwKeys[3] = 4F16A24F;-[0]=8301BB7A,[1]=AC186764,[2]=64B5CB4B,[3]=94A11D01; +SETKEY:dwKeys[0] = A4C5BDEF, dwKeys[1] = 7A0A2700, dwKeys[2] = B660D14E, dwKeys[3] = BD1A30AA;-[0]=206308F4,[1]=0F7AD4EA,[2]=C7D778C5,[3]=37C3AE8F; +SETKEY:dwKeys[0] = F919FD65, dwKeys[1] = F6EC283F, dwKeys[2] = E944C7E6, dwKeys[3] = C6EF3A34;-[0]=16B6305F,[1]=39AFEC41,[2]=F102406E,[3]=01169624; +SETKEY:dwKeys[0] = DF6984EF, dwKeys[1] = 91E710C2, dwKeys[2] = E9947BF1, dwKeys[3] = E475A68C;-[0]=965E1540,[1]=B947C95E,[2]=71EA6571,[3]=81FEB33B; +SETKEY:dwKeys[0] = 5F96A0F4, dwKeys[1] = 1EC5851F, dwKeys[2] = 33E3B10C, dwKeys[3] = 094050B4;-[0]=AC3CFE51,[1]=8325224F,[2]=4B888E60,[3]=BB9C582A; +SETKEY:dwKeys[0] = 2A00B86F, dwKeys[1] = FFFC2246, dwKeys[2] = AA8198DE, dwKeys[3] = 3AD7A7CB;-[0]=FBC34068,[1]=D4DA9C76,[2]=1C773059,[3]=EC63E613; +SETKEY:dwKeys[0] = 2ADFD460, dwKeys[1] = 31117AB1, dwKeys[2] = 5AEC207E, dwKeys[3] = 1B3AB76A;-[0]=BE020EAF,[1]=911BD2B1,[2]=59B67E9E,[3]=A9A2A8D4; +SETKEY:dwKeys[0] = E82FEC0D, dwKeys[1] = AA7126F0, dwKeys[2] = 982A8580, dwKeys[3] = F87D00C5;-[0]=E826656C,[1]=C73FB972,[2]=0F92155D,[3]=FF86C317; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = 619FED52, dwKeys[1] = AC5B404D, dwKeys[2] = 63D637B8, dwKeys[3] = F20D832F;-[0]=EAE2B4D5,[1]=C5FB68CB,[2]=0D56C4E4,[3]=FD4212AE; +SETKEY:dwKeys[0] = 661A9358, dwKeys[1] = A8669629, dwKeys[2] = B4E1E4ED, dwKeys[3] = 4AAD11C7;-[0]=F6C03B5B,[1]=D9D9E745,[2]=11744B6A,[3]=E1609D20; +SETKEY:dwKeys[0] = F0CE78A6, dwKeys[1] = 3A345ADA, dwKeys[2] = 1772ABC6, dwKeys[3] = 3E890926;-[0]=EFBD6515,[1]=C0A4B90B,[2]=08091524,[3]=F81DC36E; +SETKEY:dwKeys[0] = 4CD2668B, dwKeys[1] = EF1DF838, dwKeys[2] = F6E75534, dwKeys[3] = 6E55E129;-[0]=7D9CAF02,[1]=5285731C,[2]=9A28DF33,[3]=6A3C0979; +SETKEY:dwKeys[0] = 92405B8C, dwKeys[1] = 7E0B67EC, dwKeys[2] = C85FF3F2, dwKeys[3] = 65090C51;-[0]=BF45E0CD,[1]=905C3CD3,[2]=58F190FC,[3]=A8E546B6; +SETKEY:dwKeys[0] = 18662CD6, dwKeys[1] = 98EDEFAD, dwKeys[2] = CCB6AA8C, dwKeys[3] = F71E289F;-[0]=9DBCC635,[1]=B2A51A2B,[2]=7A08B604,[3]=8A1C604E; +SETKEY:dwKeys[0] = 5BE43CF4, dwKeys[1] = 7D1BE8BD, dwKeys[2] = 0481A808, dwKeys[3] = F047583F;-[0]=8659194F,[1]=A940C551,[2]=61ED697E,[3]=91F9BF34; +SETKEY:dwKeys[0] = F9C84210, dwKeys[1] = 27CC90C5, dwKeys[2] = 8F8E251C, dwKeys[3] = BDEFBA11;-[0]=8CC47733,[1]=A3DDAB2D,[2]=6B700702,[3]=9B64D148; +SETKEY:dwKeys[0] = 9E69B86D, dwKeys[1] = BFE7AB96, dwKeys[2] = 61A70E56, dwKeys[3] = CB302122;-[0]=206AACAA,[1]=0F7370B4,[2]=C7DEDC9B,[3]=37CA0AD1; +SETKEY:dwKeys[0] = DFD22F9D, dwKeys[1] = 73157DDE, dwKeys[2] = D5B744A3, dwKeys[3] = FE6D4BED;-[0]=772EE0C2,[1]=58373CDC,[2]=909A90F3,[3]=608E46B9; +SETKEY:dwKeys[0] = 351F50A2, dwKeys[1] = 1B4360DE, dwKeys[2] = 62724060, dwKeys[3] = 6EB0866D;-[0]=FE2CD957,[1]=D1350549,[2]=1998A966,[3]=E98C7F2C; +SETKEY:dwKeys[0] = C6A8580F, dwKeys[1] = D75679FD, dwKeys[2] = 4C37372B, dwKeys[3] = FED0E1E4;-[0]=702D1E9A,[1]=5F34C284,[2]=97996EAB,[3]=678DB8E1; +SETKEY:dwKeys[0] = 04000A29, dwKeys[1] = 756DAF2F, dwKeys[2] = 5758C6A4, dwKeys[3] = 552960B7;-[0]=67FFE161,[1]=48E63D7F,[2]=804B9150,[3]=705F471A; +SETKEY:dwKeys[0] = 814BBF11, dwKeys[1] = FEA2CDB0, dwKeys[2] = E527AD8C, dwKeys[3] = 4262D995;-[0]=58965780,[1]=778F8B9E,[2]=BF2227B1,[3]=4F36F1FB; +SETKEY:dwKeys[0] = A6EB630B, dwKeys[1] = BAEE12C1, dwKeys[2] = 9E46B0FF, dwKeys[3] = E8686E1C;-[0]=7694A23E,[1]=598D7E20,[2]=9120D20F,[3]=61340445; +SETKEY:dwKeys[0] = 2E1A78B4, dwKeys[1] = D07CB2BA, dwKeys[2] = AEA77565, dwKeys[3] = D62B6292;-[0]=19C10EFC,[1]=36D8D2E2,[2]=FE757ECD,[3]=0E61A887; +SETKEY:dwKeys[0] = 1C242CB8, dwKeys[1] = E8C96F96, dwKeys[2] = 5A163570, dwKeys[3] = A3361B42;-[0]=AF8DD44B,[1]=80940855,[2]=4839A47A,[3]=B82D7230; +SETKEY:dwKeys[0] = EFC4CA8E, dwKeys[1] = B2E02436, dwKeys[2] = 7ECC3406, dwKeys[3] = BBC8FC65;-[0]=54F9322E,[1]=7BE0EE30,[2]=B34D421F,[3]=43599455; +SETKEY:dwKeys[0] = 24D46A7E, dwKeys[1] = 9F41D2FF, dwKeys[2] = 939D1FA8, dwKeys[3] = 3C3355AF;-[0]=266E401D,[1]=09779C03,[2]=C1DA302C,[3]=31CEE666; +SETKEY:dwKeys[0] = A7588337, dwKeys[1] = 363C1FEB, dwKeys[2] = 1A077292, dwKeys[3] = A28460F2;-[0]=2F592CBC,[1]=0040F0A2,[2]=C8ED5C8D,[3]=38F98AC7; +SETKEY:dwKeys[0] = 27502829, dwKeys[1] = 0C69A39F, dwKeys[2] = 73C4CEBE, dwKeys[3] = 584F5C0E;-[0]=C22BE308,[1]=ED323F16,[2]=259F9339,[3]=D58B4573; +SETKEY:dwKeys[0] = A3F4CEFE, dwKeys[1] = 6B281E29, dwKeys[2] = 935CC1FE, dwKeys[3] = 651D82B4;-[0]=9C9D1CD4,[1]=B384C0CA,[2]=7B296CE5,[3]=8B3DBAAF; +SETKEY:dwKeys[0] = 05003277, dwKeys[1] = 03ED5373, dwKeys[2] = E48EAFA9, dwKeys[3] = 914279F5;-[0]=AAF7EE86,[1]=85EE3298,[2]=4D439EB7,[3]=BD5748FD; +SETKEY:dwKeys[0] = B5DF0DCF, dwKeys[1] = 0DF7C0D6, dwKeys[2] = 172C8185, dwKeys[3] = 55B0185C;-[0]=998C9758,[1]=B6954B46,[2]=7E38E769,[3]=8E2C3123; +SETKEY:dwKeys[0] = 0D0F9260, dwKeys[1] = A16E3181, dwKeys[2] = 57FF7210, dwKeys[3] = 53C1CB0A;-[0]=DD75B10E,[1]=F26C6D10,[2]=3AC1C13F,[3]=CAD51775; +SETKEY:dwKeys[0] = EEFAE103, dwKeys[1] = 9C5ADE4E, dwKeys[2] = 58A94461, dwKeys[3] = 464FB26A;-[0]=746659C7,[1]=5B7F85D9,[2]=93D229F6,[3]=63C6FFBC; +SETKEY:dwKeys[0] = 47358188, dwKeys[1] = B778CBD0, dwKeys[2] = BB0E045D, dwKeys[3] = 5449115E;-[0]=0161D3CF,[1]=2E780FD1,[2]=E6D5A3FE,[3]=16C175B4; +SETKEY:dwKeys[0] = DFC3DE4F, dwKeys[1] = 6947E832, dwKeys[2] = C93EA723, dwKeys[3] = 7D63837D;-[0]=23B3554C,[1]=0CAA8952,[2]=C407257D,[3]=3413F337; +SETKEY:dwKeys[0] = 49D3E8C9, dwKeys[1] = 6431BC73, dwKeys[2] = E5B41752, dwKeys[3] = 58BE2F59;-[0]=162FEADC,[1]=393636C2,[2]=F19B9AED,[3]=018F4CA7; +SETKEY:dwKeys[0] = 723611F8, dwKeys[1] = 93F5FDDC, dwKeys[2] = F96ADE4D, dwKeys[3] = 7C87F76E;-[0]=0EEB1A1B,[1]=21F2C605,[2]=E95F6A2A,[3]=194BBC60; +SETKEY:dwKeys[0] = 6CAD13B2, dwKeys[1] = EA17D458, dwKeys[2] = 430923D5, dwKeys[3] = 3A4DEE71;-[0]=4D6B8879,[1]=62725467,[2]=AADFF848,[3]=5ACB2E02; +SETKEY:dwKeys[0] = 58A9F0B6, dwKeys[1] = 0C929FD2, dwKeys[2] = 3ED2E546, dwKeys[3] = 445A5F01;-[0]=910DEF6E,[1]=BE143370,[2]=76B99F5F,[3]=86AD4915; +SETKEY:dwKeys[0] = 6D2567EE, dwKeys[1] = B15A4247, dwKeys[2] = 972E0DB7, dwKeys[3] = 73679259;-[0]=62D0D003,[1]=4DC90C1D,[2]=8564A032,[3]=75707678; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = FAEE7394, dwKeys[1] = 98DA2D03, dwKeys[2] = A78D14D3, dwKeys[3] = 10200DD8;-[0]=2A508C28,[1]=05495036,[2]=CDE4FC19,[3]=3DF02A53; +SETKEY:dwKeys[0] = A3FC2EB1, dwKeys[1] = 383A220D, dwKeys[2] = D1D64604, dwKeys[3] = 412C4AAF;-[0]=2F740B63,[1]=006DD77D,[2]=C8C07B52,[3]=38D4AD18; +SETKEY:dwKeys[0] = 4DB20154, dwKeys[1] = 9888952C, dwKeys[2] = 96F0FB5F, dwKeys[3] = ACEC602C;-[0]=F5B85A84,[1]=DAA1869A,[2]=120C2AB5,[3]=E218FCFF; +SETKEY:dwKeys[0] = 1CD8F6EB, dwKeys[1] = FD214AEC, dwKeys[2] = 07ED70E1, dwKeys[3] = 26EC354F;-[0]=E55BD9D4,[1]=CA4205CA,[2]=02EFA9E5,[3]=F2FB7FAF; +SETKEY:dwKeys[0] = B73F3980, dwKeys[1] = FEDB205C, dwKeys[2] = 389ECF69, dwKeys[3] = 17AEB6B7;-[0]=4FE7020C,[1]=60FEDE12,[2]=A853723D,[3]=5847A477; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = A696ACF3, dwKeys[1] = 45524C7C, dwKeys[2] = 330604A9, dwKeys[3] = 2A92E680;-[0]=001D4590,[1]=2F04998E,[2]=E7A935A1,[3]=17BDE3EB; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = 81D443D7, dwKeys[1] = A0D686CE, dwKeys[2] = 5867ABF3, dwKeys[3] = B0DACB6F;-[0]=598F986F,[1]=76964471,[2]=BE3BE85E,[3]=4E2F3E14; +SETKEY:dwKeys[0] = AAA4331D, dwKeys[1] = 121662DA, dwKeys[2] = FAC71750, dwKeys[3] = 4151DD12;-[0]=E425CD56,[1]=CB3C1148,[2]=0391BD67,[3]=F3856B2D; +SETKEY:dwKeys[0] = 358F3B9E, dwKeys[1] = BDBF3348, dwKeys[2] = B9F092EB, dwKeys[3] = 3D3B610B;-[0]=9F98A19F,[1]=B0817D81,[2]=782CD1AE,[3]=883807E4; +SETKEY:dwKeys[0] = 75D30504, dwKeys[1] = B2FC8540, dwKeys[2] = 1E2A0A71, dwKeys[3] = AEF0A4CB;-[0]=090F0EB3,[1]=2616D2AD,[2]=EEBB7E82,[3]=1EAFA8C8; +SETKEY:dwKeys[0] = A508E44B, dwKeys[1] = 6F2B44BF, dwKeys[2] = 878EE7DB, dwKeys[3] = 57A36D0C;-[0]=C76B9534,[1]=E872492A,[2]=20DFE505,[3]=D0CB334F; +SETKEY:dwKeys[0] = 82EB5731, dwKeys[1] = 972FB974, dwKeys[2] = A29ED20F, dwKeys[3] = 3AB4700E;-[0]=A1A3ECB4,[1]=8EBA30AA,[2]=46179C85,[3]=B6034ACF; +SETKEY:dwKeys[0] = A6C844D3, dwKeys[1] = 2E053413, dwKeys[2] = 61891270, dwKeys[3] = CA850744;-[0]=88122096,[1]=A70BFC88,[2]=6FA650A7,[3]=9FB286ED; +SETKEY:dwKeys[0] = DDFAB30E, dwKeys[1] = 3805EEC8, dwKeys[2] = 2FC710C6, dwKeys[3] = E57122A2;-[0]=E84B35CB,[1]=C752E9D5,[2]=0FFF45FA,[3]=FFEB93B0; +SETKEY:dwKeys[0] = F502CFBC, dwKeys[1] = BC08C97F, dwKeys[2] = DE7C4269, dwKeys[3] = 8A5362D8;-[0]=691ABC2E,[1]=46036030,[2]=8EAECC1F,[3]=7EBA1A55; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = 46EC8BB0, dwKeys[1] = 780D0061, dwKeys[2] = EA7084B0, dwKeys[3] = 879A501B;-[0]=EBE1401E,[1]=C4F89C00,[2]=0C55302F,[3]=FC41E665; +SETKEY:dwKeys[0] = 322BB57F, dwKeys[1] = A6C27636, dwKeys[2] = 84603FC4, dwKeys[3] = 5755D5F3;-[0]=68007758,[1]=4719AB46,[2]=8FB40769,[3]=7FA0D123; +SETKEY:dwKeys[0] = CF78B7A2, dwKeys[1] = 76A49850, dwKeys[2] = CE1BBD84, dwKeys[3] = 6FC2DB20;-[0]=7240DFFA,[1]=5D5903E4,[2]=95F4AFCB,[3]=65E07981; +SETKEY:dwKeys[0] = E918CA26, dwKeys[1] = B9A05F08, dwKeys[2] = 885B2CB3, dwKeys[3] = 4653B2C1;-[0]=D9F60395,[1]=F6EFDF8B,[2]=3E4273A4,[3]=CE56A5EE; +SETKEY:dwKeys[0] = D5E149E0, dwKeys[1] = E7F4A848, dwKeys[2] = 16014904, dwKeys[3] = 23DC2288;-[0]=DAE87B51,[1]=F5F1A74F,[2]=3D5C0B60,[3]=CD48DD2A; +SETKEY:dwKeys[0] = DBD76543, dwKeys[1] = 3FB9D43A, dwKeys[2] = C1FA1B8C, dwKeys[3] = 8B6E496D;-[0]=C890D0B8,[1]=E7890CA6,[2]=2F24A089,[3]=DF3076C3; +SETKEY:dwKeys[0] = A0F6B009, dwKeys[1] = 56975CFA, dwKeys[2] = 8A57802F, dwKeys[3] = 2CC4C88E;-[0]=95B143F0,[1]=BAA89FEE,[2]=720533C1,[3]=8211E58B; +SETKEY:dwKeys[0] = 58E41167, dwKeys[1] = 32CE80E8, dwKeys[2] = D9A1699C, dwKeys[3] = 57BF8254;-[0]=FBE21105,[1]=D4FBCD1B,[2]=1C566134,[3]=EC42B77E; +SETKEY:dwKeys[0] = 0DF16B80, dwKeys[1] = 53B0CD80, dwKeys[2] = 78CD6EB0, dwKeys[3] = 1A90DE21;-[0]=9E5B1741,[1]=B142CB5F,[2]=79EF6770,[3]=89FBB13A; +SETKEY:dwKeys[0] = 4698C562, dwKeys[1] = 6CB9E741, dwKeys[2] = F98D5377, dwKeys[3] = 3674C112;-[0]=CDEF10BD,[1]=E2F6CCA3,[2]=2A5B608C,[3]=DA4FB6C6; +SETKEY:dwKeys[0] = 82CD441F, dwKeys[1] = CA805ACC, dwKeys[2] = A1E92F71, dwKeys[3] = 23E8605E;-[0]=7A73FB57,[1]=556A2749,[2]=9DC78B66,[3]=6DD35D2C; +SETKEY:dwKeys[0] = B612A044, dwKeys[1] = 349253F6, dwKeys[2] = DEC9BDB3, dwKeys[3] = E4E8E6C1;-[0]=977722F2,[1]=B86EFEEC,[2]=70C352C3,[3]=80D78489; +SETKEY:dwKeys[0] = 5F468EC0, dwKeys[1] = 8BEBADF2, dwKeys[2] = 5D495C9F, dwKeys[3] = 461CEC82;-[0]=7F076CC8,[1]=501EB0D6,[2]=98B31CF9,[3]=68A7CAB3; +SETKEY:dwKeys[0] = 3D681AD6, dwKeys[1] = 09EECF86, dwKeys[2] = BF61D31D, dwKeys[3] = 6F332E5F;-[0]=6E774D8A,[1]=416E9194,[2]=89C33DBB,[3]=79D7EBF1; +SETKEY:dwKeys[0] = 6004155C, dwKeys[1] = 740745D9, dwKeys[2] = 617E2E0A, dwKeys[3] = EDD4FEA2;-[0]=5DEFAB93,[1]=72F6778D,[2]=BA5BDBA2,[3]=4A4F0DE8; +SETKEY:dwKeys[0] = 03D777BE, dwKeys[1] = 7D212896, dwKeys[2] = 6944A1AE, dwKeys[3] = 162F1727;-[0]=9B860F24,[1]=B49FD33A,[2]=7C327F15,[3]=8C26A95F; +SETKEY:dwKeys[0] = D686BC74, dwKeys[1] = 0B8887A3, dwKeys[2] = AA733AD1, dwKeys[3] = 23FD40F5;-[0]=F3D86BE1,[1]=DCC1B7FF,[2]=146C1BD0,[3]=E478CD9A; +SETKEY:dwKeys[0] = BD251065, dwKeys[1] = 9069A5C2, dwKeys[2] = 2DE47C90, dwKeys[3] = 07C9F4F0;-[0]=F9B38718,[1]=D6AA5B06,[2]=1E07F729,[3]=EE132163; +SETKEY:dwKeys[0] = C7D0EDFF, dwKeys[1] = 7FE61107, dwKeys[2] = A55B225A, dwKeys[3] = 3B2D76A2;-[0]=6E8CA8AE,[1]=419574B0,[2]=8938D89F,[3]=792C0ED5; +SETKEY:dwKeys[0] = 7FA2DA37, dwKeys[1] = E54C2CA1, dwKeys[2] = BA902F1E, dwKeys[3] = 1D501C4C;-[0]=8134D024,[1]=AE2D0C3A,[2]=6680A015,[3]=9694765F; +SETKEY:dwKeys[0] = B731DDD2, dwKeys[1] = 165B00D4, dwKeys[2] = 221C66A8, dwKeys[3] = 1A847AAE;-[0]=896FD649,[1]=A6760A57,[2]=6EDBA678,[3]=9ECF7032; +SETKEY:dwKeys[0] = 7C6E01B2, dwKeys[1] = 30368C2E, dwKeys[2] = 1403A5BF, dwKeys[3] = 42CC1829;-[0]=702FFC7E,[1]=5F362060,[2]=979B8C4F,[3]=678F5A05; +SETKEY:dwKeys[0] = A9373C95, dwKeys[1] = 11AACB2C, dwKeys[2] = F2818045, dwKeys[3] = A2A94ABE;-[0]=90889C9F,[1]=BF914081,[2]=773CECAE,[3]=87283AE4; +SETKEY:dwKeys[0] = 1397BC87, dwKeys[1] = FCD4C772, dwKeys[2] = 11362714, dwKeys[3] = 5D75A807;-[0]=5DB2B453,[1]=72AB684D,[2]=BA06C462,[3]=4A121228; +SETKEY:dwKeys[0] = C4AA6434, dwKeys[1] = 3995370D, dwKeys[2] = E07FBB4D, dwKeys[3] = CC4C92CF;-[0]=57B28B76,[1]=78AB5768,[2]=B006FB47,[3]=40122D0D; +SETKEY:dwKeys[0] = 5DBBE717, dwKeys[1] = F6F5209F, dwKeys[2] = 461E4911, dwKeys[3] = 8A85EAB6;-[0]=74EAA347,[1]=5BF37F59,[2]=935ED376,[3]=634A053C; +SETKEY:dwKeys[0] = BD1D5FA1, dwKeys[1] = 5CE2B791, dwKeys[2] = 307137F1, dwKeys[3] = D35D9BD5;-[0]=C504A311,[1]=EA1D7F0F,[2]=22B0D320,[3]=D2A4056A; +SETKEY:dwKeys[0] = 28808CAA, dwKeys[1] = 1F8D7B3D, dwKeys[2] = 8E4665B6, dwKeys[3] = EB182EF7;-[0]=91E945BA,[1]=BEF099A4,[2]=765D358B,[3]=8649E3C1; +SETKEY:dwKeys[0] = 4DE485E5, dwKeys[1] = 2B52D216, dwKeys[2] = A9A8DE98, dwKeys[3] = 23AD701C;-[0]=B6DFF3B3,[1]=99C62FAD,[2]=516B8382,[3]=A17F55C8; +SETKEY:dwKeys[0] = 26C9C6EC, dwKeys[1] = E753D5D4, dwKeys[2] = 789DF3F2, dwKeys[3] = F06E34C2;-[0]=40910F43,[1]=6F88D35D,[2]=A7257F72,[3]=5731A938; +SETKEY:dwKeys[0] = 4C518929, dwKeys[1] = E91673A5, dwKeys[2] = B2C48039, dwKeys[3] = FAB48DC0;-[0]=3E2D6328,[1]=1134BF36,[2]=D9991319,[3]=298DC553; +SETKEY:dwKeys[0] = DE03E3FF, dwKeys[1] = 9BC58C5B, dwKeys[2] = 2B0D266F, dwKeys[3] = BB45956A;-[0]=9863B1C7,[1]=B77A6DD9,[2]=7FD7C1F6,[3]=8FC317BC; +SETKEY:dwKeys[0] = 4C5B50FB, dwKeys[1] = D190A7BD, dwKeys[2] = 5DB891A9, dwKeys[3] = C77B540B;-[0]=9D564B2B,[1]=B24F9735,[2]=7AE23B1A,[3]=8AF6ED50; +SETKEY:dwKeys[0] = BB088326, dwKeys[1] = D939CB10, dwKeys[2] = 05BCFF2C, dwKeys[3] = 4030C893;-[0]=A64C5267,[1]=89558E79,[2]=41F82256,[3]=B1ECF41C; +SETKEY:dwKeys[0] = 211D0690, dwKeys[1] = A83EC479, dwKeys[2] = 83B986FA, dwKeys[3] = C984AEB6;-[0]=4F4D93BF,[1]=60544FA1,[2]=A8F9E38E,[3]=58ED35C4; +SETKEY:dwKeys[0] = DD070AAD, dwKeys[1] = A0EAF605, dwKeys[2] = 3291E88F, dwKeys[3] = D635027A;-[0]=139DE699,[1]=3C843A87,[2]=F42996A8,[3]=043D40E2; +SETKEY:dwKeys[0] = 9ABCADF3, dwKeys[1] = ED1E97AC, dwKeys[2] = 02C656DC, dwKeys[3] = 7C9AB741;-[0]=145C6CBA,[1]=3B45B0A4,[2]=F3E81C8B,[3]=03FCCAC1; +SETKEY:dwKeys[0] = D00AD77F, dwKeys[1] = 0BEEE767, dwKeys[2] = 2F8B9E24, dwKeys[3] = 8FF2B41F;-[0]=5A432BCE,[1]=755AF7D0,[2]=BDF75BFF,[3]=4DE38DB5; +SETKEY:dwKeys[0] = 163ACDF7, dwKeys[1] = CC890F89, dwKeys[2] = 35236F8A, dwKeys[3] = 83D1FF97;-[0]=2890DCD2,[1]=078900CC,[2]=CF24ACE3,[3]=3F307AA9; +SETKEY:dwKeys[0] = 602ECC61, dwKeys[1] = 9F92D491, dwKeys[2] = 6B224CFF, dwKeys[3] = 78C12A57;-[0]=0B6E1C1C,[1]=2477C002,[2]=ECDA6C2D,[3]=1CCEBA67; +SETKEY:dwKeys[0] = 9B89A716, dwKeys[1] = EF89B893, dwKeys[2] = 1EE16CF9, dwKeys[3] = 81A9F25E;-[0]=CFE95D75,[1]=E0F0816B,[2]=285D2D44,[3]=D849FB0E; +SETKEY:dwKeys[0] = 19DFCBDE, dwKeys[1] = D84888CA, dwKeys[2] = 9FC4CA55, dwKeys[3] = ED45628D;-[0]=7203591B,[1]=5D1A8505,[2]=95B7292A,[3]=65A3FF60; +SETKEY:dwKeys[0] = 1B557B45, dwKeys[1] = FD178EF6, dwKeys[2] = 25EB3A76, dwKeys[3] = 12C5718D;-[0]=04173D15,[1]=2B0EE10B,[2]=E3A34D24,[3]=13B79B6E; +SETKEY:dwKeys[0] = 9982D882, dwKeys[1] = 54F83063, dwKeys[2] = 0BFE588E, dwKeys[3] = 31A75D17;-[0]=66CA87C4,[1]=49D35BDA,[2]=817EF7F5,[3]=716A21BF; +SETKEY:dwKeys[0] = DAAEABD9, dwKeys[1] = 184A1B18, dwKeys[2] = 8F2DFD83, dwKeys[3] = 1E6E3B6E;-[0]=3F313E84,[1]=1028E29A,[2]=D8854EB5,[3]=289198FF; +SETKEY:dwKeys[0] = B6D11C91, dwKeys[1] = 1AD7C0BF, dwKeys[2] = F5FDE4B0, dwKeys[3] = 10AA840A;-[0]=643B054A,[1]=4B22D954,[2]=838F757B,[3]=739BA331; +SETKEY:dwKeys[0] = 1FB5918D, dwKeys[1] = 3125D763, dwKeys[2] = 0997438D, dwKeys[3] = 0DD0F91F;-[0]=61DDAA04,[1]=4EC4761A,[2]=8669DA35,[3]=767D0C7F; +SETKEY:dwKeys[0] = 6646A921, dwKeys[1] = 2291B7C4, dwKeys[2] = 94F91590, dwKeys[3] = 88AE3591;-[0]=DD1428B0,[1]=F20DF4AE,[2]=3AA05881,[3]=CAB48ECB; +SETKEY:dwKeys[0] = BD271C49, dwKeys[1] = 0765DB95, dwKeys[2] = D9305F72, dwKeys[3] = 465D858A;-[0]=30BD112C,[1]=1FA4CD32,[2]=D709611D,[3]=271DB757; +SETKEY:dwKeys[0] = 4A53746E, dwKeys[1] = 843BDF55, dwKeys[2] = 33CECB69, dwKeys[3] = 644D7933;-[0]=55663D8B,[1]=7A7FE195,[2]=B2D24DBA,[3]=42C69BF0; +SETKEY:dwKeys[0] = A5D1A81E, dwKeys[1] = 81ECF8EA, dwKeys[2] = 5DB09EE1, dwKeys[3] = 13AAEBFE;-[0]=EC15B408,[1]=C30C6816,[2]=0BA1C439,[3]=FBB51273; +SETKEY:dwKeys[0] = AFA36476, dwKeys[1] = 992D5089, dwKeys[2] = 7CE67E2A, dwKeys[3] = F37BAD40;-[0]=8E04984F,[1]=A11D4451,[2]=69B0E87E,[3]=99A43E34; +SETKEY:dwKeys[0] = E52B0363, dwKeys[1] = 7DFB4AC4, dwKeys[2] = 941F9B22, dwKeys[3] = A801BAD0;-[0]=64D2CAF2,[1]=4BCB16EC,[2]=8366BAC3,[3]=73726C89; +SETKEY:dwKeys[0] = D8B25D32, dwKeys[1] = A07CB17C, dwKeys[2] = 3D122E50, dwKeys[3] = 7215A938;-[0]=7FD7C0FB,[1]=50CE1CE5,[2]=9863B0CA,[3]=68776680; +SETKEY:dwKeys[0] = F4C7DAD5, dwKeys[1] = 48FD4ABA, dwKeys[2] = 0722CA52, dwKeys[3] = 1DC00255;-[0]=9BE402E7,[1]=B4FDDEF9,[2]=7C5072D6,[3]=8C44A49C; +SETKEY:dwKeys[0] = 70BA2ED7, dwKeys[1] = 596E0BE2, dwKeys[2] = 7E92FD0D, dwKeys[3] = 5691A082;-[0]=3F6DD5F3,[1]=107409ED,[2]=D8D9A5C2,[3]=28CD7388; +SETKEY:dwKeys[0] = 3FC6AFD8, dwKeys[1] = 33534DA5, dwKeys[2] = 7AC4DA84, dwKeys[3] = 56057029;-[0]=ECBB6B96,[1]=C3A2B788,[2]=0B0F1BA7,[3]=FB1BCDED; +SETKEY:dwKeys[0] = 2ACEB416, dwKeys[1] = 1E46EDB7, dwKeys[2] = 75D4EF3A, dwKeys[3] = 182E13AC;-[0]=13A05A7C,[1]=3CB98662,[2]=F4142A4D,[3]=0400FC07; +SETKEY:dwKeys[0] = B0872F12, dwKeys[1] = D051C6D4, dwKeys[2] = 9F59A54D, dwKeys[3] = 0F06A10C;-[0]=E6BDC80B,[1]=C9A41415,[2]=0109B83A,[3]=F11D6E70; +SETKEY:dwKeys[0] = 0346EAB3, dwKeys[1] = D083D810, dwKeys[2] = D4E4151C, dwKeys[3] = 0102F74A;-[0]=43E0B1DC,[1]=6CF96DC2,[2]=A454C1ED,[3]=544017A7; +SETKEY:dwKeys[0] = 574EDB37, dwKeys[1] = 09A95CF0, dwKeys[2] = 813F139D, dwKeys[3] = 597A67CC;-[0]=47848797,[1]=689D5B89,[2]=A030F7A6,[3]=502421EC; +SETKEY:dwKeys[0] = ED053BA9, dwKeys[1] = D72211EC, dwKeys[2] = B1FA6BB2, dwKeys[3] = 9C18BCAB;-[0]=CD63AC91,[1]=E27A708F,[2]=2AD7DCA0,[3]=DAC30AEA; +SETKEY:dwKeys[0] = 5D6ECC6A, dwKeys[1] = E0DFB295, dwKeys[2] = 295E1870, dwKeys[3] = 134CF704;-[0]=01131FF8,[1]=2E0AC3E6,[2]=E6A76FC9,[3]=16B3B983; +SETKEY:dwKeys[0] = 21C2E1C9, dwKeys[1] = 3A6DF9BC, dwKeys[2] = 4B54A176, dwKeys[3] = A49B6AFB;-[0]=6011F6DB,[1]=4F082AC5,[2]=87A586EA,[3]=77B150A0; +SETKEY:dwKeys[0] = 0A5DEF5E, dwKeys[1] = C58CB7B3, dwKeys[2] = 742E8CAF, dwKeys[3] = 9E9DA34A;-[0]=3E491934,[1]=1150C52A,[2]=D9FD6905,[3]=29E9BF4F; +SETKEY:dwKeys[0] = 0D1035E9, dwKeys[1] = 99363333, dwKeys[2] = 4F9AA080, dwKeys[3] = 2D71F9F3;-[0]=8444968A,[1]=AB5D4A94,[2]=63F0E6BB,[3]=93E430F1; +SETKEY:dwKeys[0] = B8B9B04E, dwKeys[1] = A057A957, dwKeys[2] = 395AD1F8, dwKeys[3] = 07ED9901;-[0]=8CD13C15,[1]=A3C8E00B,[2]=6B654C24,[3]=9B719A6E; +SETKEY:dwKeys[0] = 4DFF58A0, dwKeys[1] = 7612803A, dwKeys[2] = 10CDE656, dwKeys[3] = C42067B5;-[0]=DC2C1D77,[1]=F335C169,[2]=3B986D46,[3]=CB8CBB0C; +SETKEY:dwKeys[0] = EDFF5EAB, dwKeys[1] = 0B4277BD, dwKeys[2] = B48BB8A2, dwKeys[3] = C6C162B3;-[0]=B3477636,[1]=9C5EAA28,[2]=54F30607,[3]=A4E7D04D; +SETKEY:dwKeys[0] = E64B2E72, dwKeys[1] = CADA71C8, dwKeys[2] = 7196BF47, dwKeys[3] = 7D179586;-[0]=ADFF3206,[1]=82E6EE18,[2]=4A4B4237,[3]=BA5F947D; +SETKEY:dwKeys[0] = C099C24D, dwKeys[1] = 50D5D7E0, dwKeys[2] = F9106937, dwKeys[3] = 1DEF8960;-[0]=8CA9E462,[1]=A3B0387C,[2]=6B1D9453,[3]=9B094219; +SETKEY:dwKeys[0] = 13B503CB, dwKeys[1] = 87A43C6F, dwKeys[2] = 3F38AB2D, dwKeys[3] = 0AE8C796;-[0]=E893A294,[1]=C78A7E8A,[2]=0F27D2A5,[3]=FF3304EF; +SETKEY:dwKeys[0] = A261AD2E, dwKeys[1] = 47541231, dwKeys[2] = EEF6F690, dwKeys[3] = C250201C;-[0]=72AC28EE,[1]=5DB5F4F0,[2]=951858DF,[3]=650C8E95; +SETKEY:dwKeys[0] = 7E9AB88C, dwKeys[1] = F941C313, dwKeys[2] = A15C496C, dwKeys[3] = 746A326D;-[0]=11766D81,[1]=3E6FB19F,[2]=F6C21DB0,[3]=06D6CBFA; +SETKEY:dwKeys[0] = 625AD799, dwKeys[1] = 3BEC6C14, dwKeys[2] = 99AB755E, dwKeys[3] = 9E85C5F5;-[0]=B2EE18EA,[1]=9DF7C4F4,[2]=555A68DB,[3]=A54EBE91; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = D4E2BC59, dwKeys[1] = A2DD8A72, dwKeys[2] = 4930F009, dwKeys[3] = B8EB873A;-[0]=D76CC130,[1]=F8751D2E,[2]=30D8B101,[3]=C0CC674B; +SETKEY:dwKeys[0] = 7799DDBB, dwKeys[1] = 9EAD329E, dwKeys[2] = E9138A3C, dwKeys[3] = 17970973;-[0]=6BE210CD,[1]=44FBCCD3,[2]=8C5660FC,[3]=7C42B6B6; +SETKEY:dwKeys[0] = 3BBE31FE, dwKeys[1] = 3897ADD1, dwKeys[2] = D124385C, dwKeys[3] = 1AC3D105;-[0]=3021044B,[1]=1F38D855,[2]=D795747A,[3]=2781A230; +SETKEY:dwKeys[0] = B7A8F55A, dwKeys[1] = E6B801A4, dwKeys[2] = C0B5D7CE, dwKeys[3] = 5A4AA35C;-[0]=4A4922AE,[1]=6550FEB0,[2]=ADFD529F,[3]=5DE984D5; +SETKEY:dwKeys[0] = 5839ED2C, dwKeys[1] = 464D40D7, dwKeys[2] = 96509DBD, dwKeys[3] = 5AFB38EB;-[0]=2A32CE2D,[1]=052B1233,[2]=CD86BE1C,[3]=3D926856; +SETKEY:dwKeys[0] = 75021FE2, dwKeys[1] = 8FD9EBF1, dwKeys[2] = 0548BDF8, dwKeys[3] = 4AD1FCD8;-[0]=8A9991B1,[1]=A5804DAF,[2]=6D2DE180,[3]=9D3937CA; +SETKEY:dwKeys[0] = 0C4C36DE, dwKeys[1] = 720ABF43, dwKeys[2] = 41375D9F, dwKeys[3] = 3A73EE3D;-[0]=DA91EBAB,[1]=F58837B5,[2]=3D259B9A,[3]=CD314DD0; +SETKEY:dwKeys[0] = E3E0D911, dwKeys[1] = 792064AA, dwKeys[2] = 564B003E, dwKeys[3] = 493BB573;-[0]=4DBC970A,[1]=62A54B14,[2]=AA08E73B,[3]=5A1C3171; +SETKEY:dwKeys[0] = D8506C64, dwKeys[1] = C66FF024, dwKeys[2] = 12642528, dwKeys[3] = D03A9EF4;-[0]=C1905341,[1]=EE898F5F,[2]=26242370,[3]=D630F53A; +SETKEY:dwKeys[0] = A75FD7B2, dwKeys[1] = 53ADE39B, dwKeys[2] = 521A634D, dwKeys[3] = F8FA9F28;-[0]=7103A677,[1]=5E1A7A69,[2]=96B7D646,[3]=66A3000C; +SETKEY:dwKeys[0] = AF3AE973, dwKeys[1] = 1F42D74E, dwKeys[2] = 276C6236, dwKeys[3] = 4DFC875F;-[0]=BD4F9885,[1]=9256449B,[2]=5AFBE8B4,[3]=AAEF3EFE; +SETKEY:dwKeys[0] = AACA12D2, dwKeys[1] = ECE2E935, dwKeys[2] = 9DD6F9D6, dwKeys[3] = 6E875685;-[0]=D00839A8,[1]=FF11E5B6,[2]=37BC4999,[3]=C7A89FD3; +SETKEY:dwKeys[0] = EBE6A060, dwKeys[1] = D60C3457, dwKeys[2] = 26A2FB87, dwKeys[3] = 3434401E;-[0]=0EC41456,[1]=21DDC848,[2]=E9706467,[3]=1964B22D; +SETKEY:dwKeys[0] = D662619A, dwKeys[1] = E43C3CDF, dwKeys[2] = CFC4D608, dwKeys[3] = A817C99C;-[0]=4BDED503,[1]=64C7091D,[2]=AC6AA532,[3]=5C7E7378; +SETKEY:dwKeys[0] = 8DD54920, dwKeys[1] = CF3B8D30, dwKeys[2] = 96A626C3, dwKeys[3] = DC79FB0C;-[0]=5BF43F39,[1]=74EDE327,[2]=BC404F08,[3]=4C549942; +SETKEY:dwKeys[0] = B1251BB0, dwKeys[1] = D97C12F8, dwKeys[2] = 262E1F32, dwKeys[3] = 00433764;-[0]=90D5B765,[1]=BFCC6B7B,[2]=7761C754,[3]=8775111E; +SETKEY:dwKeys[0] = 69952C5E, dwKeys[1] = 31AC9512, dwKeys[2] = 04FA659A, dwKeys[3] = D1D18903;-[0]=86BBDF53,[1]=A9A2034D,[2]=610FAF62,[3]=911B7928; +SETKEY:dwKeys[0] = 123BD780, dwKeys[1] = 72F7CBB4, dwKeys[2] = 5B043536, dwKeys[3] = 0B38C8B3;-[0]=8C5FF7EE,[1]=A3462BF0,[2]=6BEB87DF,[3]=9BFF5195; +SETKEY:dwKeys[0] = 46B16E1E, dwKeys[1] = 9781A4A6, dwKeys[2] = 3864C596, dwKeys[3] = 0405CAED;-[0]=56A75443,[1]=79BE885D,[2]=B1132472,[3]=4107F238; +SETKEY:dwKeys[0] = 740771D8, dwKeys[1] = 1CBB1CB5, dwKeys[2] = 3F898371, dwKeys[3] = 8E25CA24;-[0]=7A32CD5C,[1]=552B1142,[2]=9D86BD6D,[3]=6D926B27; +SETKEY:dwKeys[0] = C72BCFE1, dwKeys[1] = 26F0CB29, dwKeys[2] = 46CB5723, dwKeys[3] = 8DCA5F38;-[0]=F05E499F,[1]=DF479581,[2]=17EA39AE,[3]=E7FEEFE4; +SETKEY:dwKeys[0] = C79334C1, dwKeys[1] = E096B3B3, dwKeys[2] = 591E31B6, dwKeys[3] = AA4A6785;-[0]=949C9422,[1]=BB85483C,[2]=7328E413,[3]=833C3259; +SETKEY:dwKeys[0] = AE100E6F, dwKeys[1] = 458D2190, dwKeys[2] = 94FEFB9B, dwKeys[3] = 4701050B;-[0]=FF8A9828,[1]=D0934436,[2]=183EE819,[3]=E82A3E53; +SETKEY:dwKeys[0] = 5DAECEDB, dwKeys[1] = 8E6CB679, dwKeys[2] = 6491CBEE, dwKeys[3] = 53627D14;-[0]=FEBBC246,[1]=D1A21E58,[2]=190FB277,[3]=E91B643D; +SETKEY:dwKeys[0] = 72B73D8A, dwKeys[1] = 64212874, dwKeys[2] = ECE81F52, dwKeys[3] = 2D6495FD;-[0]=68863A42,[1]=479FE65C,[2]=8F324A73,[3]=7F269C39; +SETKEY:dwKeys[0] = 8FAC70D6, dwKeys[1] = 3A85F4DA, dwKeys[2] = 7D54BE71, dwKeys[3] = 67FDF833;-[0]=A1C99B63,[1]=8ED0477D,[2]=467DEB52,[3]=B6693D18; +SETKEY:dwKeys[0] = 5A2F1D6B, dwKeys[1] = 7FAA0E4C, dwKeys[2] = BC0FA465, dwKeys[3] = 4E791520;-[0]=7D4C6A3F,[1]=5255B621,[2]=9AF81A0E,[3]=6AECCC44; +SETKEY:dwKeys[0] = 849C74CC, dwKeys[1] = 5A0B539D, dwKeys[2] = 12128FDF, dwKeys[3] = 441C6BA1;-[0]=123A3323,[1]=3D23EF3D,[2]=F58E4312,[3]=059A9558; +SETKEY:dwKeys[0] = E58C32EF, dwKeys[1] = 60C174E0, dwKeys[2] = 9186F73B, dwKeys[3] = E7F20595;-[0]=A1A57F92,[1]=8EBCA38C,[2]=46110FA3,[3]=B605D9E9; +SETKEY:dwKeys[0] = 716FB637, dwKeys[1] = 0865D645, dwKeys[2] = 4B7F919F, dwKeys[3] = 934DAE33;-[0]=8DFB80AF,[1]=A2E25CB1,[2]=6A4FF09E,[3]=9A5B26D4; +SETKEY:dwKeys[0] = D15E2466, dwKeys[1] = 63446C1E, dwKeys[2] = ACAABB29, dwKeys[3] = 148EF9E1;-[0]=286334DF,[1]=077AE8C1,[2]=CFD744EE,[3]=3FC392A4; +SETKEY:dwKeys[0] = 45177CBF, dwKeys[1] = AE82FE37, dwKeys[2] = F68AF51B, dwKeys[3] = AE6EE1D2;-[0]=774750EE,[1]=585E8CF0,[2]=90F320DF,[3]=60E7F695; +SETKEY:dwKeys[0] = 0B70BEA2, dwKeys[1] = FCB669EB, dwKeys[2] = EB1D03BF, dwKeys[3] = DC289BAE;-[0]=3D0AD067,[1]=12130C79,[2]=DABEA056,[3]=2AAA761C; +SETKEY:dwKeys[0] = 26A75B6B, dwKeys[1] = FB81D4B7, dwKeys[2] = 660532FD, dwKeys[3] = DDDF6FC0;-[0]=B3D83658,[1]=9CC1EA46,[2]=546C4669,[3]=A4789023; +SETKEY:dwKeys[0] = 38AD8FE7, dwKeys[1] = 7FED2A1B, dwKeys[2] = 55E98BCB, dwKeys[3] = D15A6F37;-[0]=C5691BED,[1]=EA70C7F3,[2]=22DD6BDC,[3]=D2C9BD96; +SETKEY:dwKeys[0] = 37BF984E, dwKeys[1] = E62D1FD2, dwKeys[2] = 1D60E649, dwKeys[3] = 9E6D95B1;-[0]=70B9F47A,[1]=5FA02864,[2]=970D844B,[3]=67195201; +SETKEY:dwKeys[0] = 11882DFE, dwKeys[1] = F137EFED, dwKeys[2] = 07881532, dwKeys[3] = 32E7B206;-[0]=A9AF6CA4,[1]=86B6B0BA,[2]=4E1B1C95,[3]=BE0FCADF; +SETKEY:dwKeys[0] = 259229E6, dwKeys[1] = DF05D6C9, dwKeys[2] = E8E23C1E, dwKeys[3] = 3B3EA87F;-[0]=E5594E35,[1]=CA40922B,[2]=02ED3E04,[3]=F2F9E84E; +SETKEY:dwKeys[0] = 9E995867, dwKeys[1] = 4FED74AC, dwKeys[2] = 3B0D5D7A, dwKeys[3] = 0AC9EB83;-[0]=1399D28C,[1]=3C800E92,[2]=F42DA2BD,[3]=043974F7; +SETKEY:dwKeys[0] = 67E74ACD, dwKeys[1] = FFB37362, dwKeys[2] = D75CEB0D, dwKeys[3] = 8FB1FE40;-[0]=3C3B076A,[1]=1322DB74,[2]=DB8F775B,[3]=2B9BA111; +SETKEY:dwKeys[0] = 8DBE466F, dwKeys[1] = B07775F3, dwKeys[2] = 61211F72, dwKeys[3] = 6DB32C07;-[0]=F4338A79,[1]=DB2A5667,[2]=1387FA48,[3]=E3932C02; +SETKEY:dwKeys[0] = 3AA44E10, dwKeys[1] = 0B975C85, dwKeys[2] = ADEE8655, dwKeys[3] = 8EC745E0;-[0]=827682BB,[1]=AD6F5EA5,[2]=65C2F28A,[3]=95D624C0; +SETKEY:dwKeys[0] = 9D9AEDEC, dwKeys[1] = AD70E363, dwKeys[2] = 6203C433, dwKeys[3] = E40B4E15;-[0]=22CA06F2,[1]=0DD3DAEC,[2]=C57E76C3,[3]=356AA089; +SETKEY:dwKeys[0] = 343F69F6, dwKeys[1] = 48FAE40C, dwKeys[2] = D5D99D2B, dwKeys[3] = 992874EE;-[0]=823BFEC7,[1]=AD2222D9,[2]=658F8EF6,[3]=959B58BC; +SETKEY:dwKeys[0] = 977006B0, dwKeys[1] = 4B559E80, dwKeys[2] = CD848DC3, dwKeys[3] = CAD11153;-[0]=BB80F6E4,[1]=94992AFA,[2]=5C3486D5,[3]=AC20509F; +SETKEY:dwKeys[0] = 51755564, dwKeys[1] = B52995BE, dwKeys[2] = C889B1E7, dwKeys[3] = E2518DFC;-[0]=9A24B871,[1]=B53D646F,[2]=7D90C840,[3]=8D841E0A; +SETKEY:dwKeys[0] = F2A0F04A, dwKeys[1] = 64BF1106, dwKeys[2] = B6417ED1, dwKeys[3] = E181CF55;-[0]=9B267B37,[1]=B43FA729,[2]=7C920B06,[3]=8C86DD4C; +SETKEY:dwKeys[0] = AF0BDA54, dwKeys[1] = 298FA302, dwKeys[2] = 53AA0D51, dwKeys[3] = 10B47C7F;-[0]=2314CA14,[1]=0C0D160A,[2]=C4A0BA25,[3]=34B46C6F; +SETKEY:dwKeys[0] = 4AB2BF1B, dwKeys[1] = F0B9A5DF, dwKeys[2] = CBC376BA, dwKeys[3] = 3B0951F0;-[0]=1222B6C5,[1]=3D3B6ADB,[2]=F596C6F4,[3]=058210BE; +SETKEY:dwKeys[0] = 344DC8C8, dwKeys[1] = 9E84D9E9, dwKeys[2] = F9ACBF52, dwKeys[3] = C5EFFAA7;-[0]=16E7D8F0,[1]=39FE04EE,[2]=F153A8C1,[3]=01477E8B; +SETKEY:dwKeys[0] = 9C722C02, dwKeys[1] = 5212DE10, dwKeys[2] = A39E031E, dwKeys[3] = CFD1FA96;-[0]=7FF9A2F5,[1]=50E07EEB,[2]=984DD2C4,[3]=6859048E; +SETKEY:dwKeys[0] = 77F58CDE, dwKeys[1] = 8AEBF2A9, dwKeys[2] = 06892577, dwKeys[3] = 94BE9E83;-[0]=E85630C9,[1]=C74FECD7,[2]=0FE240F8,[3]=FFF696B2; +SETKEY:dwKeys[0] = 676ADCFB, dwKeys[1] = BB6D9D2A, dwKeys[2] = 8D274A3F, dwKeys[3] = 70389E4F;-[0]=047A8C69,[1]=2B635077,[2]=E3CEFC58,[3]=13DA2A12; +SETKEY:dwKeys[0] = D603534F, dwKeys[1] = DB4D7095, dwKeys[2] = 24CADCFD, dwKeys[3] = 6751E664;-[0]=342B9A5D,[1]=1B324643,[2]=D39FEA6C,[3]=238B3C26; +SETKEY:dwKeys[0] = 22EAE34C, dwKeys[1] = 60DD0669, dwKeys[2] = EFD5D12D, dwKeys[3] = 7213627C;-[0]=F553EF3C,[1]=DA4A3322,[2]=12E79F0D,[3]=E2F34947; +SETKEY:dwKeys[0] = 982AAC0C, dwKeys[1] = 1F060D10, dwKeys[2] = FD6F4E02, dwKeys[3] = B6BCB137;-[0]=EA0786B5,[1]=C51E5AAB,[2]=0DB3F684,[3]=FDA720CE; +SETKEY:dwKeys[0] = FC21F382, dwKeys[1] = FBF813E9, dwKeys[2] = BAF918DC, dwKeys[3] = 642FF7FF;-[0]=254A9B5A,[1]=0A534744,[2]=C2FEEB6B,[3]=32EA3D21; +SETKEY:dwKeys[0] = E08121F1, dwKeys[1] = ED0D9C4E, dwKeys[2] = 2DB221DE, dwKeys[3] = E272BE6A;-[0]=054F6F59,[1]=2A56B347,[2]=E2FB1F68,[3]=12EFC922; +SETKEY:dwKeys[0] = F33F8710, dwKeys[1] = B9034C26, dwKeys[2] = D59A64A1, dwKeys[3] = 3CC06978;-[0]=799B2D94,[1]=5682F18A,[2]=9E2F5DA5,[3]=6E3B8BEF; +SETKEY:dwKeys[0] = 44E200C2, dwKeys[1] = 2C9B76FA, dwKeys[2] = 92889464, dwKeys[3] = A8171228;-[0]=1F6B8FD5,[1]=307253CB,[2]=F8DFFFE4,[3]=08CB29AE; +SETKEY:dwKeys[0] = B9F37B57, dwKeys[1] = 2CC4DA40, dwKeys[2] = 2DBD8393, dwKeys[3] = 18B338BC;-[0]=BFD60DB3,[1]=90CFD1AD,[2]=58627D82,[3]=A876ABC8; +SETKEY:dwKeys[0] = A3DDBC3A, dwKeys[1] = 6DC990D4, dwKeys[2] = A71F164E, dwKeys[3] = 449DC035;-[0]=037E6859,[1]=2C67B447,[2]=E4CA1868,[3]=14DECE22; +SETKEY:dwKeys[0] = 70D68DDF, dwKeys[1] = 7CF5F96E, dwKeys[2] = 43944394, dwKeys[3] = 8A66BF9B;-[0]=5F13B9F6,[1]=700A65E8,[2]=B8A7C9C7,[3]=48B31F8D; +SETKEY:dwKeys[0] = 99620BE7, dwKeys[1] = A32F9937, dwKeys[2] = 866DEF98, dwKeys[3] = 873BA374;-[0]=0BAF4A91,[1]=24B6968F,[2]=EC1B3AA0,[3]=1C0FECEA; +SETKEY:dwKeys[0] = 18071FB7, dwKeys[1] = E4C7D497, dwKeys[2] = F4723227, dwKeys[3] = 7D430BD6;-[0]=06653302,[1]=297CEF1C,[2]=E1D14333,[3]=11C59579; +SETKEY:dwKeys[0] = C22B48B7, dwKeys[1] = EF7E2ADD, dwKeys[2] = 40B1ADC5, dwKeys[3] = 3598D64E;-[0]=449EEE94,[1]=6B87328A,[2]=A32A9EA5,[3]=533E48EF; +SETKEY:dwKeys[0] = 3A96220A, dwKeys[1] = FA185C6E, dwKeys[2] = 504FA247, dwKeys[3] = 9B2E02D1;-[0]=5D1E9786,[1]=72074B98,[2]=BAAAE7B7,[3]=4ABE31FD; +SETKEY:dwKeys[0] = 8A86496E, dwKeys[1] = 403405B2, dwKeys[2] = 5820C5E2, dwKeys[3] = 5195FA34;-[0]=AE359FF8,[1]=812C43E6,[2]=4981EFC9,[3]=B9953983; +SETKEY:dwKeys[0] = 5EEE87E2, dwKeys[1] = 32124837, dwKeys[2] = E09B3436, dwKeys[3] = 508E2B13;-[0]=21C84FE6,[1]=0ED193F8,[2]=C67C3FD7,[3]=3668E99D; +SETKEY:dwKeys[0] = 44EDEA87, dwKeys[1] = 7166FA7C, dwKeys[2] = 03C9973A, dwKeys[3] = 5B5CF4B0;-[0]=0E366C37,[1]=212FB029,[2]=E9821C06,[3]=1996CA4C; +SETKEY:dwKeys[0] = E18FF407, dwKeys[1] = 9416B4F8, dwKeys[2] = BB30D0CB, dwKeys[3] = F5C0ACC8;-[0]=5956B7E0,[1]=764F6BFE,[2]=BEE2C7D1,[3]=4EF6119B; +SETKEY:dwKeys[0] = FDA3412E, dwKeys[1] = A3DE1E25, dwKeys[2] = 21FC3D19, dwKeys[3] = FD887C2A;-[0]=0566026D,[1]=2A7FDE73,[2]=E2D2725C,[3]=12C6A416; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = DA8E7BF2, dwKeys[1] = A5F2E177, dwKeys[2] = F46A0E32, dwKeys[3] = F964DAC2;-[0]=8996D881,[1]=A68F049F,[2]=6E22A8B0,[3]=9E367EFA; +SETKEY:dwKeys[0] = EA40775F, dwKeys[1] = 320AC102, dwKeys[2] = E152F5C5, dwKeys[3] = E7E9EB22;-[0]=F86000F5,[1]=D779DCEB,[2]=1FD470C4,[3]=EFC0A68E; +SETKEY:dwKeys[0] = 646D59E9, dwKeys[1] = 4D8C96A4, dwKeys[2] = 2B4BFA61, dwKeys[3] = 960F74E4;-[0]=0F97D498,[1]=208E0886,[2]=E823A4A9,[3]=183772E3; +SETKEY:dwKeys[0] = 228694A1, dwKeys[1] = 4A746DDC, dwKeys[2] = D1C24B79, dwKeys[3] = AFAC8A6E;-[0]=A625E823,[1]=893C343D,[2]=41919812,[3]=B1854E58; +SETKEY:dwKeys[0] = F817768E, dwKeys[1] = 0E3445ED, dwKeys[2] = FE85A698, dwKeys[3] = 539DC82C;-[0]=D4ADF385,[1]=FBB42F9B,[2]=331983B4,[3]=C30D55FE; +SETKEY:dwKeys[0] = C5BEA734, dwKeys[1] = 71C2A134, dwKeys[2] = 95922437, dwKeys[3] = 0ADB6D5E;-[0]=5CF54BE6,[1]=73EC97F8,[2]=BB413BD7,[3]=4B55ED9D; +SETKEY:dwKeys[0] = 03D016D1, dwKeys[1] = 5EC91AF7, dwKeys[2] = 71C76345, dwKeys[3] = BB3E03BF;-[0]=2DB53F2C,[1]=02ACE332,[2]=CA014F1D,[3]=3A159957; +SETKEY:dwKeys[0] = 9CFD738F, dwKeys[1] = 5E9BB557, dwKeys[2] = 730B7D1A, dwKeys[3] = A8E71C21;-[0]=35CB01D9,[1]=1AD2DDC7,[2]=D27F71E8,[3]=226BA7A2; +SETKEY:dwKeys[0] = F0C5192F, dwKeys[1] = E5C858EE, dwKeys[2] = E2567276, dwKeys[3] = 6F3A90E3;-[0]=34EA9270,[1]=1BF34E6E,[2]=D35EE241,[3]=234A340B; +SETKEY:dwKeys[0] = 4C38F4BD, dwKeys[1] = D6D843E8, dwKeys[2] = A3BDC121, dwKeys[3] = 35414185;-[0]=EB2F63EC,[1]=C436BFF2,[2]=0C9B13DD,[3]=FC8FC597; +SETKEY:dwKeys[0] = A41065FD, dwKeys[1] = B26D37AE, dwKeys[2] = 5DDA7DBC, dwKeys[3] = 656B8787;-[0]=590C3770,[1]=7615EB6E,[2]=BEB84741,[3]=4EAC910B; +SETKEY:dwKeys[0] = 015692D4, dwKeys[1] = 8A86DF3E, dwKeys[2] = B93CF702, dwKeys[3] = 47C8157A;-[0]=BE024FEB,[1]=911B93F5,[2]=59B63FDA,[3]=A9A2E990; +SETKEY:dwKeys[0] = 76E9D254, dwKeys[1] = AF81557A, dwKeys[2] = 05BFD27F, dwKeys[3] = 2B14CB9E;-[0]=4934DC0C,[1]=662D0012,[2]=AE80AC3D,[3]=5E947A77; +SETKEY:dwKeys[0] = CAB1186F, dwKeys[1] = AD079D46, dwKeys[2] = A4E9C4D0, dwKeys[3] = 28883D83;-[0]=7CBFABF6,[1]=53A677E8,[2]=9B0BDBC7,[3]=6B1F0D8D; +SETKEY:dwKeys[0] = C818F84D, dwKeys[1] = 65AD779D, dwKeys[2] = D65360A2, dwKeys[3] = B3A7EA91;-[0]=86AEC09A,[1]=A9B71C84,[2]=611AB0AB,[3]=910E66E1; +SETKEY:dwKeys[0] = 351AD262, dwKeys[1] = 2BAD515D, dwKeys[2] = 629970FA, dwKeys[3] = D4C6ED3D;-[0]=5EFA5641,[1]=71E38A5F,[2]=B94E2670,[3]=495AF03A; +SETKEY:dwKeys[0] = 621F58F9, dwKeys[1] = 067BEC5D, dwKeys[2] = 99CE17AE, dwKeys[3] = 2A822DAC;-[0]=05EAFB8D,[1]=2AF32793,[2]=E25E8BBC,[3]=124A5DF6; +SETKEY:dwKeys[0] = 6FC93B29, dwKeys[1] = B6DE5C0C, dwKeys[2] = 9279726B, dwKeys[3] = 3BDC4FC5;-[0]=CF15133A,[1]=E00CCF24,[2]=28A1630B,[3]=D8B5B541; +SETKEY:dwKeys[0] = D1E095EB, dwKeys[1] = B72650E9, dwKeys[2] = 7AB7186E, dwKeys[3] = E1141045;-[0]=602B9D28,[1]=4F324136,[2]=879FED19,[3]=778B3B53; +SETKEY:dwKeys[0] = 990ACEE4, dwKeys[1] = C654543A, dwKeys[2] = 86174816, dwKeys[3] = 453EB1E1;-[0]=E23657E9,[1]=CD2F8BF7,[2]=058227D8,[3]=F596F192; +SETKEY:dwKeys[0] = 80E66C61, dwKeys[1] = 2845DD9D, dwKeys[2] = CA30318D, dwKeys[3] = 29ACC412;-[0]=977B3EC5,[1]=B862E2DB,[2]=70CF4EF4,[3]=80DB98BE; +SETKEY:dwKeys[0] = BBA659F1, dwKeys[1] = 9C7DE94A, dwKeys[2] = 0B2CC04E, dwKeys[3] = 0366D196;-[0]=10F0BA41,[1]=3FE9665F,[2]=F744CA70,[3]=07501C3A; +SETKEY:dwKeys[0] = F88457CA, dwKeys[1] = 09EDB183, dwKeys[2] = 76E2B663, dwKeys[3] = 8193A6DD;-[0]=C2A791A8,[1]=EDBE4DB6,[2]=2513E199,[3]=D50737D3; +SETKEY:dwKeys[0] = EDD4B74F, dwKeys[1] = 4D3481BA, dwKeys[2] = 2A3CD318, dwKeys[3] = E8D7863F;-[0]=16FEF7F5,[1]=39E72BEB,[2]=F14A87C4,[3]=015E518E; +SETKEY:dwKeys[0] = 60773C08, dwKeys[1] = E8ED96CE, dwKeys[2] = 6502D218, dwKeys[3] = 07AA5719;-[0]=AE4FB05E,[1]=81566C40,[2]=49FBC06F,[3]=B9EF1625; +SETKEY:dwKeys[0] = 7E0DD81A, dwKeys[1] = 4645FECE, dwKeys[2] = B9248CD7, dwKeys[3] = 5B80FC5E;-[0]=C543FBE0,[1]=EA5A27FE,[2]=22F78BD1,[3]=D2E35D9B; +SETKEY:dwKeys[0] = 531960AF, dwKeys[1] = EB48BAA2, dwKeys[2] = A9AEF790, dwKeys[3] = 2E18E900;-[0]=73B94780,[1]=5CA09B9E,[2]=940D37B1,[3]=6419E1FB; +SETKEY:dwKeys[0] = 59DD48EA, dwKeys[1] = B18F836D, dwKeys[2] = 436B5091, dwKeys[3] = 7DA62621;-[0]=B768411C,[1]=98719D02,[2]=50DC312D,[3]=A0C8E767; +SETKEY:dwKeys[0] = A526C5C5, dwKeys[1] = 53678105, dwKeys[2] = 2411FE49, dwKeys[3] = 50779BF2;-[0]=461E972E,[1]=69074B30,[2]=A1AAE71F,[3]=51BE3155; +SETKEY:dwKeys[0] = B8DA0E1F, dwKeys[1] = 2C968879, dwKeys[2] = B6DEE931, dwKeys[3] = D0E1C49D;-[0]=1776655E,[1]=386FB940,[2]=F0C2156F,[3]=00D6C325; +SETKEY:dwKeys[0] = 5CE9FDE3, dwKeys[1] = 424EFCFF, dwKeys[2] = 427748E4, dwKeys[3] = C6C3B006;-[0]=7018DDC5,[1]=5F0101DB,[2]=97ACADF4,[3]=67B87BBE; +SETKEY:dwKeys[0] = 6A9490A7, dwKeys[1] = 5BDA9A7F, dwKeys[2] = 7CF1C840, dwKeys[3] = FD198A6B;-[0]=1410C79E,[1]=3B091B80,[2]=F3A4B7AF,[3]=03B061E5; +SETKEY:dwKeys[0] = 5411432F, dwKeys[1] = 2E15BB79, dwKeys[2] = F1C9890C, dwKeys[3] = 63145B77;-[0]=F226416B,[1]=DD3F9D75,[2]=1592315A,[3]=E586E710; +SETKEY:dwKeys[0] = 262FCE6C, dwKeys[1] = E35F0D0B, dwKeys[2] = A407EF40, dwKeys[3] = 5ABCCF02;-[0]=A33B71F8,[1]=8C22ADE6,[2]=448F01C9,[3]=B49BD783; +SETKEY:dwKeys[0] = 2775A883, dwKeys[1] = 9C78E763, dwKeys[2] = FDE8DFD4, dwKeys[3] = 15AC35EA;-[0]=A34E861A,[1]=8C575A04,[2]=44FAF62B,[3]=B4EE2061; +SETKEY:dwKeys[0] = 14EB2E16, dwKeys[1] = 0302546F, dwKeys[2] = 6A779328, dwKeys[3] = 09754269;-[0]=2C24D63D,[1]=033D0A23,[2]=CB90A60C,[3]=3B847046; +SETKEY:dwKeys[0] = 7A3BCD02, dwKeys[1] = 03D056A3, dwKeys[2] = B9965DA3, dwKeys[3] = DA5D0C2F;-[0]=B4A4418E,[1]=9BBD9D90,[2]=531031BF,[3]=A304E7F5; +SETKEY:dwKeys[0] = EF12B69C, dwKeys[1] = D506CEAD, dwKeys[2] = 3751EADE, dwKeys[3] = 9AADB5C7;-[0]=5CE11BB3,[1]=73F8C7AD,[2]=BB556B82,[3]=4B41BDC8; +SETKEY:dwKeys[0] = 8120D9FE, dwKeys[1] = 399FB4BF, dwKeys[2] = 9972546A, dwKeys[3] = E00E79F2;-[0]=65BE6AB7,[1]=4AA7B6A9,[2]=820A1A86,[3]=721ECCCC; +SETKEY:dwKeys[0] = 7508711B, dwKeys[1] = B2FED31B, dwKeys[2] = 2C250E8A, dwKeys[3] = A3785D34;-[0]=8567635B,[1]=AA7EBF45,[2]=62D3136A,[3]=92C7C520; +SETKEY:dwKeys[0] = A5AA07A2, dwKeys[1] = 4DC7F8A9, dwKeys[2] = 4922EFE8, dwKeys[3] = 5179CB05;-[0]=A32A05E2,[1]=8C33D9FC,[2]=449E75D3,[3]=B48AA399; +SETKEY:dwKeys[0] = 1C1377F9, dwKeys[1] = 1D2CFD7D, dwKeys[2] = 1210FDF9, dwKeys[3] = 272AFB06;-[0]=6BAAD4A8,[1]=44B308B6,[2]=8C1EA499,[3]=7C0A72D3; +SETKEY:dwKeys[0] = C8251BD1, dwKeys[1] = 4EB56CCD, dwKeys[2] = 2952573A, dwKeys[3] = 1A438E82;-[0]=56EDF36B,[1]=79F42F75,[2]=B159835A,[3]=414D5510; +SETKEY:dwKeys[0] = 651AB96C, dwKeys[1] = FFE11E53, dwKeys[2] = 2A634EA9, dwKeys[3] = 0B481137;-[0]=B04B2391,[1]=9F52FF8F,[2]=57FF53A0,[3]=A7EB85EA; +SETKEY:dwKeys[0] = D42441E0, dwKeys[1] = D279D115, dwKeys[2] = 534505C9, dwKeys[3] = 55929F63;-[0]=BD5B9708,[1]=92424B16,[2]=5AEFE739,[3]=AAFB3173; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = C12E7F51, dwKeys[1] = 5A208C9D, dwKeys[2] = A837FC7F, dwKeys[3] = 7C260B61;-[0]=4240E2F2,[1]=7D59B06A,[2]=8E06EECE,[3]=22995B8C; +SETKEY:dwKeys[0] = A83B325A, dwKeys[1] = 415F0003, dwKeys[2] = D4699DDD, dwKeys[3] = AC7350C8;-[0]=C9BF7022,[1]=F6A622BA,[2]=05F97C1E,[3]=A966C95C; +SETKEY:dwKeys[0] = 639BEC3A, dwKeys[1] = E0B0856D, dwKeys[2] = F2162A9B, dwKeys[3] = C14338E7;-[0]=B882C9E4,[1]=879B9B7C,[2]=74C4C5D8,[3]=D85B709A; +SETKEY:dwKeys[0] = 14C233F3, dwKeys[1] = 39676030, dwKeys[2] = 1CD19C0E, dwKeys[3] = A77B74FF;-[0]=903E9B6A,[1]=AF27C9F2,[2]=5C789756,[3]=F0E72214; +SETKEY:dwKeys[0] = C6E5B0C2, dwKeys[1] = 84C420C1, dwKeys[2] = 6D9EDF88, dwKeys[3] = 3B4A6A7A;-[0]=84C062F5,[1]=BBD9306D,[2]=48866EC9,[3]=E419DB8B; +SETKEY:dwKeys[0] = BC1BAD0F, dwKeys[1] = CB7EBA13, dwKeys[2] = F2AE8BA9, dwKeys[3] = B5440B3C;-[0]=74831118,[1]=4B9A4380,[2]=B8C51D24,[3]=145AA866; +SETKEY:dwKeys[0] = B2133E50, dwKeys[1] = 5FDCDEFA, dwKeys[2] = 1C92D541, dwKeys[3] = 23684DAA;-[0]=9518EE4A,[1]=AA01BCD2,[2]=595EE276,[3]=F5C15734; +SETKEY:dwKeys[0] = FAE881A9, dwKeys[1] = 8F96E741, dwKeys[2] = 1A7314C3, dwKeys[3] = 6D4BEC23;-[0]=A1B5E6C3,[1]=9EACB45B,[2]=6DF3EAFF,[3]=C16C5FBD; +SETKEY:dwKeys[0] = DDE171DF, dwKeys[1] = A20775F1, dwKeys[2] = 74BCD220, dwKeys[3] = 343A3B6A;-[0]=919E9F4B,[1]=AE87CDD3,[2]=5DD89377,[3]=F1472635; +SETKEY:dwKeys[0] = 7C8902FA, dwKeys[1] = 2A34F878, dwKeys[2] = D9A8AB73, dwKeys[3] = FEE081B4;-[0]=4D83DFA5,[1]=729A8D3D,[2]=81C5D399,[3]=2D5A66DB; +SETKEY:dwKeys[0] = 0E622CD4, dwKeys[1] = 7E4D9274, dwKeys[2] = D436EFD8, dwKeys[3] = 00D420BC;-[0]=06425D27,[1]=395B0FBF,[2]=CA04511B,[3]=669BE459; +SETKEY:dwKeys[0] = 5FFE120C, dwKeys[1] = 619D96CB, dwKeys[2] = B5B78A9F, dwKeys[3] = 09E9216E;-[0]=D01FB5F5,[1]=EF06E76D,[2]=1C59B9C9,[3]=B0C60C8B; +SETKEY:dwKeys[0] = 9F217AFC, dwKeys[1] = 14935F48, dwKeys[2] = B53775C0, dwKeys[3] = 75E04F73;-[0]=D0A0CE67,[1]=EFB99CFF,[2]=1CE6C25B,[3]=B0797719; +SETKEY:dwKeys[0] = 101AC716, dwKeys[1] = 94DF3B33, dwKeys[2] = 544D2809, dwKeys[3] = 10419521;-[0]=BED873C5,[1]=81C1215D,[2]=729E7FF9,[3]=DE01CABB; +SETKEY:dwKeys[0] = 4ECC3CC7, dwKeys[1] = B4BF84DD, dwKeys[2] = 687BB960, dwKeys[3] = EEDAF72F;-[0]=8821E67C,[1]=B738B4E4,[2]=4467EA40,[3]=E8F85F02; +SETKEY:dwKeys[0] = 7773EADE, dwKeys[1] = 158D94E6, dwKeys[2] = 0D25B185, dwKeys[3] = 4C0E1C46;-[0]=188FEF5C,[1]=2796BDC4,[2]=D4C9E360,[3]=78565622; +SETKEY:dwKeys[0] = 76110458, dwKeys[1] = 4924C5D3, dwKeys[2] = D6CF3042, dwKeys[3] = CB7CDD02;-[0]=7BF9B881,[1]=44E0EA19,[2]=B7BFB4BD,[3]=1B2001FF; +SETKEY:dwKeys[0] = 632FD30A, dwKeys[1] = 22DD4B78, dwKeys[2] = 372AE34C, dwKeys[3] = 1EFEE122;-[0]=E62FAE08,[1]=D936FC90,[2]=2A69A234,[3]=86F61776; +SETKEY:dwKeys[0] = 5D5245A2, dwKeys[1] = 407DAB1E, dwKeys[2] = B22250F4, dwKeys[3] = 0C696860;-[0]=94A025F5,[1]=ABB9776D,[2]=58E629C9,[3]=F4799C8B; +SETKEY:dwKeys[0] = 34C863C2, dwKeys[1] = 030BA2FA, dwKeys[2] = 7FF48A80, dwKeys[3] = 1080ABC7;-[0]=F0ED1D33,[1]=CFF44FAB,[2]=3CAB110F,[3]=9034A44D; +SETKEY:dwKeys[0] = 97DB7152, dwKeys[1] = E4DE6602, dwKeys[2] = 6BFBEC9B, dwKeys[3] = 34BCE6B5;-[0]=58147454,[1]=670D26CC,[2]=94527868,[3]=38CDCD2A; +SETKEY:dwKeys[0] = A19749DC, dwKeys[1] = FCD351C6, dwKeys[2] = 354DC089, dwKeys[3] = 10B1F064;-[0]=A9E96C40,[1]=96F03ED8,[2]=65AF607C,[3]=C930D53E; +SETKEY:dwKeys[0] = 488E899F, dwKeys[1] = 4E1F00FE, dwKeys[2] = 69DBDDC4, dwKeys[3] = CADAB91D;-[0]=0E110473,[1]=310856EB,[2]=C257084F,[3]=6EC8BD0D; +SETKEY:dwKeys[0] = 378A9E24, dwKeys[1] = B52B1F40, dwKeys[2] = EA1A22C2, dwKeys[3] = 4D0244E1;-[0]=3D73E859,[1]=026ABAC1,[2]=F135E465,[3]=5DAA5127; +SETKEY:dwKeys[0] = FFA1F017, dwKeys[1] = 77C87BAA, dwKeys[2] = 8E195757, dwKeys[3] = C5C06075;-[0]=DBB8B5CD,[1]=E4A1E755,[2]=17FEB9F1,[3]=BB610CB3; +SETKEY:dwKeys[0] = 4A3B8576, dwKeys[1] = 62342756, dwKeys[2] = 6FB1A108, dwKeys[3] = 55B78000;-[0]=C9768F31,[1]=F66FDDA9,[2]=0530830D,[3]=A9AF364F; +SETKEY:dwKeys[0] = 08B8332B, dwKeys[1] = D13DF4F7, dwKeys[2] = F33EAB88, dwKeys[3] = E9B5B1C3;-[0]=05744A9B,[1]=3A6D1803,[2]=C93246A7,[3]=65ADF3E5; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = 2026BA10, dwKeys[1] = 8638A5BC, dwKeys[2] = 2C3D2C7F, dwKeys[3] = D3AA5612;-[0]=B5EF026D,[1]=8AF650F5,[2]=79A90E51,[3]=D536BB13; +SETKEY:dwKeys[0] = 02D3EAC1, dwKeys[1] = 12FDA032, dwKeys[2] = 096652C1, dwKeys[3] = 970BBE3F;-[0]=DD30901F,[1]=E229C287,[2]=11769C23,[3]=BDE92961; +SETKEY:dwKeys[0] = DB655C1B, dwKeys[1] = 1B54D295, dwKeys[2] = 900BFDAA, dwKeys[3] = 40A7819F;-[0]=F191459B,[1]=CE881703,[2]=3DD749A7,[3]=9148FCE5; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = 0C78308E, dwKeys[1] = 63FBEFE8, dwKeys[2] = 4C1DF93F, dwKeys[3] = D9BE089B;-[0]=F08DD667,[1]=CF9484FF,[2]=3CCBDA5B,[3]=90546F19; +SETKEY:dwKeys[0] = 492A0EF7, dwKeys[1] = 16371403, dwKeys[2] = 0C2822CA, dwKeys[3] = 750BEB12;-[0]=796839A8,[1]=46716B30,[2]=B52E3594,[3]=19B180D6; +SETKEY:dwKeys[0] = 432F5CA2, dwKeys[1] = DDA19749, dwKeys[2] = D3D51CD5, dwKeys[3] = 20473C15;-[0]=0EEF15BE,[1]=31F64726,[2]=C2A91982,[3]=6E36ACC0; +SETKEY:dwKeys[0] = 065CAD16, dwKeys[1] = 2BE04262, dwKeys[2] = BBCCD8B4, dwKeys[3] = ACA19983;-[0]=B86A581C,[1]=87730A84,[2]=742C5420,[3]=D8B3E162; +SETKEY:dwKeys[0] = 4A00AE08, dwKeys[1] = 769EE31B, dwKeys[2] = ACCE0BD1, dwKeys[3] = 6A9F6E80;-[0]=39EFE682,[1]=06F6B41A,[2]=F5A9EABE,[3]=59365FFC; +SETKEY:dwKeys[0] = 3F0D5475, dwKeys[1] = 8D89DCF4, dwKeys[2] = 21FAF7EE, dwKeys[3] = 9E50988A;-[0]=CCE5D3B0,[1]=F3FC8128,[2]=00A3DF8C,[3]=AC3C6ACE; +SETKEY:dwKeys[0] = D7086F7A, dwKeys[1] = DED45803, dwKeys[2] = 2473F748, dwKeys[3] = F94270B8;-[0]=ADB2AA06,[1]=92ABF89E,[2]=61F4A63A,[3]=CD6B1378; +SETKEY:dwKeys[0] = 368C1582, dwKeys[1] = EC5B0472, dwKeys[2] = 88279231, dwKeys[3] = 8A38A019;-[0]=C254B2FD,[1]=FD4DE065,[2]=0E12BEC1,[3]=A28D0B83; +SETKEY:dwKeys[0] = 7C4B4294, dwKeys[1] = 9018F4E1, dwKeys[2] = A4921F2E, dwKeys[3] = 6E47259F;-[0]=5360DB3A,[1]=6C7989A2,[2]=9F26D706,[3]=33B96244; +SETKEY:dwKeys[0] = 059E7EC6, dwKeys[1] = CCC19A3D, dwKeys[2] = 9332D29A, dwKeys[3] = 7097C3AC;-[0]=DA31D35B,[1]=E52881C3,[2]=1677DF67,[3]=BAE86A25; +SETKEY:dwKeys[0] = 78847D6E, dwKeys[1] = 7E92D4B0, dwKeys[2] = FCB1C7EA, dwKeys[3] = BBD334E0;-[0]=846C27FF,[1]=BB757567,[2]=482A2BC3,[3]=E4B59E81; +SETKEY:dwKeys[0] = D34A1CE4, dwKeys[1] = 706C26E0, dwKeys[2] = 305F73AA, dwKeys[3] = 81DA84D3;-[0]=084B0F6D,[1]=37525DF5,[2]=C40D0351,[3]=6892B613; +SETKEY:dwKeys[0] = 4697C4F7, dwKeys[1] = 1317F00E, dwKeys[2] = BBFC519B, dwKeys[3] = 33CEF5FD;-[0]=BAEE2791,[1]=85F77509,[2]=76A82BAD,[3]=DA379EEF; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 605C21CE, dwKeys[1] = 78B303F4, dwKeys[2] = 4BC7097F, dwKeys[3] = 030C119C;-[0]=710A408B,[1]=4E131213,[2]=BD4C4CB7,[3]=11D3F9F5; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = A0C6FA20, dwKeys[1] = 5737DF5A, dwKeys[2] = 493E36B8, dwKeys[3] = 41A159B5;-[0]=D654FAA6,[1]=E94DA83E,[2]=1A12F69A,[3]=B68D43D8; +SETKEY:dwKeys[0] = D90B468E, dwKeys[1] = 8250FE76, dwKeys[2] = 61F91220, dwKeys[3] = 6E22330C;-[0]=7D7BB44A,[1]=4262E6D2,[2]=B13DB876,[3]=1DA20D34; +SETKEY:dwKeys[0] = 36E46751, dwKeys[1] = FA24870F, dwKeys[2] = 65288117, dwKeys[3] = F64205EB;-[0]=F791335A,[1]=C88861C2,[2]=3BD73F66,[3]=97488A24; +SETKEY:dwKeys[0] = 42B0B108, dwKeys[1] = C102598C, dwKeys[2] = A0B00CC2, dwKeys[3] = FBD0ABE4;-[0]=D8D2BB10,[1]=E7CBE988,[2]=1494B72C,[3]=B80B026E; +SETKEY:dwKeys[0] = 05534BAB, dwKeys[1] = 61598E40, dwKeys[2] = DF75BCB6, dwKeys[3] = 98D2BAAE;-[0]=30B19AF0,[1]=0FA8C868,[2]=FCF796CC,[3]=5068238E; +SETKEY:dwKeys[0] = A989D935, dwKeys[1] = 969092E8, dwKeys[2] = 912792E8, dwKeys[3] = 53D18AC9;-[0]=26649711,[1]=197DC589,[2]=EA229B2D,[3]=46BD2E6F; +SETKEY:dwKeys[0] = BDC89DA6, dwKeys[1] = 2D00C623, dwKeys[2] = A11B54A6, dwKeys[3] = D2AAD853;-[0]=982D295C,[1]=A7347BC4,[2]=546B2560,[3]=F8F49022; +SETKEY:dwKeys[0] = 7DC9E144, dwKeys[1] = D6F4288D, dwKeys[2] = 5492B4D1, dwKeys[3] = 5332EDE6;-[0]=D13E4783,[1]=EE27151B,[2]=1D784BBF,[3]=B1E7FEFD; +SETKEY:dwKeys[0] = B7E7CDBA, dwKeys[1] = 476EE4A5, dwKeys[2] = 8B229F6F, dwKeys[3] = 00F35116;-[0]=01CCA59E,[1]=3ED5F706,[2]=CD8AA9A2,[3]=61151CE0; +SETKEY:dwKeys[0] = 67080160, dwKeys[1] = C1E626F2, dwKeys[2] = 5D1C1A5B, dwKeys[3] = EB26FB0B;-[0]=BCAE60DF,[1]=83B73247,[2]=70E86CE3,[3]=DC77D9A1; +SETKEY:dwKeys[0] = 4FE9F364, dwKeys[1] = 2683D8D5, dwKeys[2] = 5D63407F, dwKeys[3] = B94E7C68;-[0]=BB4E778F,[1]=84572517,[2]=77087BB3,[3]=DB97CEF1; +SETKEY:dwKeys[0] = 222DB194, dwKeys[1] = 866CF3EC, dwKeys[2] = E1363B88, dwKeys[3] = 023F5E5D;-[0]=C3E88D95,[1]=FCF1DF0D,[2]=0FAE81A9,[3]=A33134EB; +SETKEY:dwKeys[0] = 98AABFEA, dwKeys[1] = 1A8AC130, dwKeys[2] = 35949F22, dwKeys[3] = 2177E027;-[0]=0E992BCD,[1]=31807955,[2]=C2DF27F1,[3]=6E4092B3; +SETKEY:dwKeys[0] = DAE54A73, dwKeys[1] = 3D654CE7, dwKeys[2] = 91D6BD1F, dwKeys[3] = E839905C;-[0]=EB96AF5C,[1]=D48FFDC4,[2]=27D0A360,[3]=8B4F1622; +SETKEY:dwKeys[0] = 62ADD7D1, dwKeys[1] = 79715023, dwKeys[2] = BC305409, dwKeys[3] = E6C14BA5;-[0]=3C64EA03,[1]=037DB89B,[2]=F022E63F,[3]=5CBD537D; +SETKEY:dwKeys[0] = 979DBA17, dwKeys[1] = 86938FBA, dwKeys[2] = 32823468, dwKeys[3] = ECC0ABA0;-[0]=B0F53049,[1]=8FEC62D1,[2]=7CB33C75,[3]=D02C8937; +SETKEY:dwKeys[0] = 806E86BA, dwKeys[1] = AD7CEC6C, dwKeys[2] = 1D18B34F, dwKeys[3] = FD0BE5EA;-[0]=E17E294E,[1]=DE677BD6,[2]=2D382572,[3]=81A79030; +SETKEY:dwKeys[0] = 92A1E82E, dwKeys[1] = E8BFE737, dwKeys[2] = 71941E58, dwKeys[3] = 0E7A8F07;-[0]=269780D9,[1]=198ED241,[2]=EAD18CE5,[3]=464E39A7; +SETKEY:dwKeys[0] = 0EFC353A, dwKeys[1] = FABD7A67, dwKeys[2] = B7D4EB78, dwKeys[3] = 58D09261;-[0]=4BBBCADF,[1]=74A29847,[2]=87FDC6E3,[3]=2B6273A1; +SETKEY:dwKeys[0] = 239EDA7B, dwKeys[1] = 5D0B8D90, dwKeys[2] = 2DD4C920, dwKeys[3] = A5663195;-[0]=EFCE190B,[1]=D0D74B93,[2]=23881537,[3]=8F17A075; +SETKEY:dwKeys[0] = A90019E2, dwKeys[1] = 64B5613A, dwKeys[2] = 0901C947, dwKeys[3] = 76A1C381;-[0]=3A61C845,[1]=05789ADD,[2]=F627C479,[3]=5AB8713B; +SETKEY:dwKeys[0] = E7FE8D7C, dwKeys[1] = 9D3C9776, dwKeys[2] = 14F7894A, dwKeys[3] = 9341C309;-[0]=2F4FB67C,[1]=1056E4E4,[2]=E309BA40,[3]=4F960F02; +SETKEY:dwKeys[0] = 267F059B, dwKeys[1] = BF2DBE71, dwKeys[2] = CE817F82, dwKeys[3] = 87F075B5;-[0]=83223AD8,[1]=BC3B6840,[2]=4F6436E4,[3]=E3FB83A6; +SETKEY:dwKeys[0] = 852EC832, dwKeys[1] = 9107A3FF, dwKeys[2] = AC26FA1A, dwKeys[3] = 1AA9E5BC;-[0]=F03B876C,[1]=CF22D5F4,[2]=3C7D8B50,[3]=90E23E12; +SETKEY:dwKeys[0] = 1299B4D5, dwKeys[1] = 0DC1DFC3, dwKeys[2] = F191485F, dwKeys[3] = 3C16D424;-[0]=CC130567,[1]=F30A57FF,[2]=0055095B,[3]=ACCABC19; +SETKEY:dwKeys[0] = 8614743D, dwKeys[1] = 9D0EED89, dwKeys[2] = 8B1563FE, dwKeys[3] = 5E7CA993;-[0]=1E14E44C,[1]=210DB6D4,[2]=D252E870,[3]=7ECD5D32; +SETKEY:dwKeys[0] = 4D3F7F01, dwKeys[1] = B8B408FC, dwKeys[2] = C1D30746, dwKeys[3] = 8B05FFBE;-[0]=CDEE9424,[1]=F2F7C6BC,[2]=01A89818,[3]=AD372D5A; +SETKEY:dwKeys[0] = D10C46D5, dwKeys[1] = 4B76C44D, dwKeys[2] = 150AE356, dwKeys[3] = 7D67516C;-[0]=FDA7A072,[1]=C2BEF2EA,[2]=31E1AC4E,[3]=9D7E190C; +SETKEY:dwKeys[0] = FD6D745B, dwKeys[1] = 72BC0CFC, dwKeys[2] = 461ABD5A, dwKeys[3] = 0C896823;-[0]=85FB7581,[1]=BAE22719,[2]=49BD79BD,[3]=E522CCFF; +SETKEY:dwKeys[0] = D8E976C2, dwKeys[1] = 1745CFE6, dwKeys[2] = 8661ADBA, dwKeys[3] = F8672111;-[0]=51B8C41F,[1]=6EA19687,[2]=9DFEC823,[3]=31617D61; +SETKEY:dwKeys[0] = 71152D22, dwKeys[1] = 91065E81, dwKeys[2] = 9AE70C70, dwKeys[3] = BA628073;-[0]=9791CDE6,[1]=A8889F7E,[2]=5BD7C1DA,[3]=F7487498; +SETKEY:dwKeys[0] = B2ECDFD4, dwKeys[1] = C2B6A80D, dwKeys[2] = 68D96C52, dwKeys[3] = 700923DD;-[0]=F908F412,[1]=C611A68A,[2]=354EF82E,[3]=99D14D6C; +SETKEY:dwKeys[0] = 110D2876, dwKeys[1] = 355AE8EC, dwKeys[2] = 0590C9F5, dwKeys[3] = A25C7324;-[0]=E9FD65EE,[1]=D6E43776,[2]=25BB69D2,[3]=8924DC90; +SETKEY:dwKeys[0] = 4ABFEE5C, dwKeys[1] = 1318BF95, dwKeys[2] = ADE82443, dwKeys[3] = 10BCB3E9;-[0]=3246BA8E,[1]=0D5FE816,[2]=FE00B6B2,[3]=529F03F0; +SETKEY:dwKeys[0] = 2D1D24A3, dwKeys[1] = EC2F890F, dwKeys[2] = 16DBA2DC, dwKeys[3] = 63D26EF2;-[0]=62D2E721,[1]=5DCBB5B9,[2]=AE94EB1D,[3]=020B5E5F; +SETKEY:dwKeys[0] = 9C94C4E7, dwKeys[1] = EFF9DA65, dwKeys[2] = 7A76DB11, dwKeys[3] = FD8A52E4;-[0]=0CD30DA8,[1]=33CA5F30,[2]=C0950194,[3]=6C0AB4D6; +SETKEY:dwKeys[0] = 75AF1F19, dwKeys[1] = FCC3EE5E, dwKeys[2] = 712A4314, dwKeys[3] = 6AB63FA8;-[0]=05878882,[1]=3A9EDA1A,[2]=C9C184BE,[3]=655E31FC; +SETKEY:dwKeys[0] = 74174A96, dwKeys[1] = 5FD0D878, dwKeys[2] = E09D3913, dwKeys[3] = AA7F4B9D;-[0]=5DC4D581,[1]=62DD8719,[2]=9182D9BD,[3]=3D1D6CFF; +SETKEY:dwKeys[0] = 20A64E33, dwKeys[1] = DEA1214A, dwKeys[2] = 32296644, dwKeys[3] = 57293BC9;-[0]=8822E524,[1]=B73BB7BC,[2]=4464E918,[3]=E8FB5C5A; +SETKEY:dwKeys[0] = 852CF60B, dwKeys[1] = 3F112314, dwKeys[2] = 5B45123C, dwKeys[3] = 8591D278;-[0]=2DC43C54,[1]=12DD6ECC,[2]=E1823068,[3]=4D1D852A; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = CC20F756, dwKeys[1] = 52F9907D, dwKeys[2] = 48F0D346, dwKeys[3] = EE78F1B2;-[0]=07E65011,[1]=38FF0289,[2]=CBA05C2D,[3]=673FE96F; +SETKEY:dwKeys[0] = 1F780990, dwKeys[1] = DD7A2081, dwKeys[2] = FCE96EFF, dwKeys[3] = 1E4CDB68;-[0]=3B9D96F1,[1]=0484C469,[2]=F7DB9ACD,[3]=5B442F8F; +SETKEY:dwKeys[0] = 5920AB13, dwKeys[1] = 20F96B19, dwKeys[2] = C561F4A6, dwKeys[3] = 98FDCAE6;-[0]=D1AFE279,[1]=EEB6B0E1,[2]=1DE9EE45,[3]=B1765B07; +SETKEY:dwKeys[0] = 620D48F8, dwKeys[1] = 0A5A8A0F, dwKeys[2] = 9AD98F87, dwKeys[3] = FB362EFF;-[0]=3500B523,[1]=0A19E7BB,[2]=F946B91F,[3]=55D90C5D; +SETKEY:dwKeys[0] = 93925E94, dwKeys[1] = 45F67F38, dwKeys[2] = A497ECCC, dwKeys[3] = F59D36E5;-[0]=E06D3B5E,[1]=DF7469C6,[2]=2C2B3762,[3]=80B48220; +SETKEY:dwKeys[0] = 1C8683A4, dwKeys[1] = 64305DB1, dwKeys[2] = 42002C8D, dwKeys[3] = F98523AC;-[0]=C1CFD13B,[1]=FED683A3,[2]=0D89DD07,[3]=A1166845; +SETKEY:dwKeys[0] = EC525F71, dwKeys[1] = 79DAFF3B, dwKeys[2] = 50879FB7, dwKeys[3] = A5D4077A;-[0]=D7D263DB,[1]=E8CB3143,[2]=1B946FE7,[3]=B70BDAA5; +SETKEY:dwKeys[0] = 281DAD2C, dwKeys[1] = 17CDE3EF, dwKeys[2] = E6952C0A, dwKeys[3] = 8A75B3F3;-[0]=D87CF6CC,[1]=E765A454,[2]=143AFAF0,[3]=B8A54FB2; +SETKEY:dwKeys[0] = 48CC62F3, dwKeys[1] = 13045D38, dwKeys[2] = C437FB48, dwKeys[3] = 05CB2CB2;-[0]=E61A43BD,[1]=D9031125,[2]=2A5C4F81,[3]=86C3FAC3; +SETKEY:dwKeys[0] = B1237F2F, dwKeys[1] = 225FCA56, dwKeys[2] = 8696100D, dwKeys[3] = 25235F38;-[0]=5D7CFBF0,[1]=6265A968,[2]=913AF7CC,[3]=3DA5428E; +SETKEY:dwKeys[0] = 12D87C74, dwKeys[1] = 38D9EF30, dwKeys[2] = B83B4496, dwKeys[3] = 170C051E;-[0]=2B184165,[1]=140113FD,[2]=E75E4D59,[3]=4BC1F81B; +SETKEY:dwKeys[0] = FC16EAA6, dwKeys[1] = 62C49696, dwKeys[2] = EC46F78B, dwKeys[3] = 5F0D6352;-[0]=745A4E0D,[1]=4B431C95,[2]=B81C4231,[3]=1483F773; +SETKEY:dwKeys[0] = 44261C6F, dwKeys[1] = 4FAAD0FC, dwKeys[2] = E33D35FE, dwKeys[3] = DBDAA8AE;-[0]=C2D34F66,[1]=FDCA1DFE,[2]=0E95435A,[3]=A20AF618; +SETKEY:dwKeys[0] = 320947A3, dwKeys[1] = 26F1DEC6, dwKeys[2] = 144872B7, dwKeys[3] = A3DB252E;-[0]=0B435100,[1]=345A0398,[2]=C7055D3C,[3]=6B9AE87E; +SETKEY:dwKeys[0] = A48BE6BA, dwKeys[1] = B842E247, dwKeys[2] = 996B2183, dwKeys[3] = 1F694C3F;-[0]=F26BA91D,[1]=CD72FB85,[2]=3E2DA521,[3]=92B21063; +SETKEY:dwKeys[0] = A1E67E81, dwKeys[1] = F7EEC403, dwKeys[2] = 0F451507, dwKeys[3] = F838951E;-[0]=A67EAD27,[1]=9967FFBF,[2]=6A38A11B,[3]=C6A71459; +SETKEY:dwKeys[0] = 90907C0D, dwKeys[1] = 566D6E69, dwKeys[2] = F8CA290B, dwKeys[3] = 90E9FC40;-[0]=F2990E52,[1]=CD805CCA,[2]=3EDF026E,[3]=9240B72C; +SETKEY:dwKeys[0] = 6DFE0514, dwKeys[1] = 49711916, dwKeys[2] = 62428AB0, dwKeys[3] = 50627F4F;-[0]=28858F8B,[1]=179CDD13,[2]=E4C383B7,[3]=485C36F5; +SETKEY:dwKeys[0] = 456ED181, dwKeys[1] = 7BD99D4F, dwKeys[2] = E435DD87, dwKeys[3] = 7023F030;-[0]=245010FD,[1]=1B494265,[2]=E8161CC1,[3]=4489A983; +SETKEY:dwKeys[0] = 2D5E2790, dwKeys[1] = D5057D91, dwKeys[2] = F9E43AB2, dwKeys[3] = D42747D2;-[0]=92E839C5,[1]=ADF16B5D,[2]=5EAE35F9,[3]=F23180BB; +SETKEY:dwKeys[0] = 3E3C6822, dwKeys[1] = 4A89D179, dwKeys[2] = 7926A2B3, dwKeys[3] = BAE5E613;-[0]=7472E3B3,[1]=4B6BB12B,[2]=B834EF8F,[3]=14AB5ACD; +SETKEY:dwKeys[0] = D4350E63, dwKeys[1] = 7AC19353, dwKeys[2] = D652380C, dwKeys[3] = 2689C626;-[0]=B1C8FD97,[1]=8ED1AF0F,[2]=7D8EF1AB,[3]=D11144E9; +SETKEY:dwKeys[0] = 8FFA1AF2, dwKeys[1] = 3CBF2009, dwKeys[2] = C6189EFC, dwKeys[3] = 235489E0;-[0]=D8C8F26D,[1]=E7D1A0F5,[2]=148EFE51,[3]=B8114B13; +SETKEY:dwKeys[0] = C9679D29, dwKeys[1] = 06C57EE1, dwKeys[2] = 18B13FCD, dwKeys[3] = 06E60FBF;-[0]=93165955,[1]=AC0F0BCD,[2]=5F505569,[3]=F3CFE02B; +SETKEY:dwKeys[0] = 100FD774, dwKeys[1] = 7D35081B, dwKeys[2] = DE21E77B, dwKeys[3] = BD8D0613;-[0]=D14D8FEE,[1]=EE54DD76,[2]=1D0B83D2,[3]=B1943690; +SETKEY:dwKeys[0] = 4995CCBF, dwKeys[1] = C0EE97BD, dwKeys[2] = 39377EFD, dwKeys[3] = 1F12605F;-[0]=26FF1D70,[1]=19E64FE8,[2]=EAB9114C,[3]=4626A40E; +SETKEY:dwKeys[0] = 229A7782, dwKeys[1] = 4C739257, dwKeys[2] = 850F557E, dwKeys[3] = E9915614;-[0]=65C036D9,[1]=5AD96441,[2]=A9863AE5,[3]=05198FA7; +SETKEY:dwKeys[0] = D0ECDD97, dwKeys[1] = DD743C56, dwKeys[2] = EB687799, dwKeys[3] = 8EE63289;-[0]=0A7E96C8,[1]=3567C450,[2]=C6389AF4,[3]=6AA72FB6; +SETKEY:dwKeys[0] = 03C1018E, dwKeys[1] = 571F2312, dwKeys[2] = C16847AC, dwKeys[3] = 5407FC06;-[0]=A1A97BA4,[1]=9EB0293C,[2]=6DEF7798,[3]=C170C2DA; +SETKEY:dwKeys[0] = 8921F34E, dwKeys[1] = C6D743DA, dwKeys[2] = D35A9AA2, dwKeys[3] = 6F8713C5;-[0]=7782FF58,[1]=489BADC0,[2]=BBC4F364,[3]=175B4626; +SETKEY:dwKeys[0] = BEB042D1, dwKeys[1] = 17AD6796, dwKeys[2] = 181DB94D, dwKeys[3] = 6C9D0E11;-[0]=B92D4960,[1]=86341BF8,[2]=756B455C,[3]=D9F4F01E; +SETKEY:dwKeys[0] = AB987FE5, dwKeys[1] = 9D71A207, dwKeys[2] = AFB2F9DA, dwKeys[3] = C105C3AE;-[0]=44A385E7,[1]=7BBAD77F,[2]=88E589DB,[3]=247A3C99; +SETKEY:dwKeys[0] = FF5D4EA6, dwKeys[1] = E96C14BD, dwKeys[2] = B7722333, dwKeys[3] = 39E54FDD;-[0]=604CCBAF,[1]=5F559937,[2]=AC0AC793,[3]=009572D1; +SETKEY:dwKeys[0] = DBF7EB8C, dwKeys[1] = FF4CF99A, dwKeys[2] = 44D76700, dwKeys[3] = 49B995BA;-[0]=B1AF8EB0,[1]=8EB6DC28,[2]=7DE9828C,[3]=D17637CE; +SETKEY:dwKeys[0] = 387875B7, dwKeys[1] = 036373C0, dwKeys[2] = 0CDA0FA3, dwKeys[3] = BD7C88F3;-[0]=76004241,[1]=491910D9,[2]=BA464E7D,[3]=16D9FB3F; +SETKEY:dwKeys[0] = 7EF243CD, dwKeys[1] = BB114A6D, dwKeys[2] = 6C5FD249, dwKeys[3] = A7DF5772;-[0]=7EA848ED,[1]=41B11A75,[2]=B2EE44D1,[3]=1E71F193; +SETKEY:dwKeys[0] = CE584112, dwKeys[1] = 20A81BC6, dwKeys[2] = A5956DD0, dwKeys[3] = C8EC1E0F;-[0]=59651553,[1]=667C47CB,[2]=9523196F,[3]=39BCAC2D; +SETKEY:dwKeys[0] = 084E3776, dwKeys[1] = 70C55919, dwKeys[2] = 6370BB5D, dwKeys[3] = C6A1DCEC;-[0]=0FDC2004,[1]=30C5729C,[2]=C39A2C38,[3]=6F05997A; +SETKEY:dwKeys[0] = 9BB1B4B1, dwKeys[1] = 58C33289, dwKeys[2] = 619C4203, dwKeys[3] = 097239D4;-[0]=A6FFA935,[1]=99E6FBAD,[2]=6AB9A509,[3]=C626104B; +SETKEY:dwKeys[0] = 1044FE45, dwKeys[1] = FECFF3AB, dwKeys[2] = EF101F2C, dwKeys[3] = DA92E7EE;-[0]=428F63DD,[1]=7D963145,[2]=8EC96FE1,[3]=2256DAA3; +SETKEY:dwKeys[0] = EF6391FC, dwKeys[1] = 552CFF4F, dwKeys[2] = 2461B296, dwKeys[3] = 1AF84EA6;-[0]=0782EBB3,[1]=389BB92B,[2]=CBC4E78F,[3]=675B52CD; +SETKEY:dwKeys[0] = 12984184, dwKeys[1] = 51A88B93, dwKeys[2] = 1004B367, dwKeys[3] = 3696F8DF;-[0]=36DAA67F,[1]=09C3F4E7,[2]=FA9CAA43,[3]=56031F01; +SETKEY:dwKeys[0] = 617A9634, dwKeys[1] = 3CD9AE88, dwKeys[2] = 62CC800B, dwKeys[3] = F8B3E078;-[0]=91F13EA9,[1]=AEE86C31,[2]=5DB73295,[3]=F12887D7; +SETKEY:dwKeys[0] = FA3098F3, dwKeys[1] = 7372E88B, dwKeys[2] = 2F67706A, dwKeys[3] = EDAA85EA;-[0]=D8CE8712,[1]=E7D7D58A,[2]=14888B2E,[3]=B8173E6C; +SETKEY:dwKeys[0] = A622B0EB, dwKeys[1] = BDA54267, dwKeys[2] = 730932DF, dwKeys[3] = EBCE722D;-[0]=A8CED5BF,[1]=97D78727,[2]=6488D983,[3]=C8176CC1; +SETKEY:dwKeys[0] = 87D8E023, dwKeys[1] = 338FF713, dwKeys[2] = 47E0ACA4, dwKeys[3] = A25E6EC2;-[0]=C6FEF892,[1]=F9E7AA0A,[2]=0AB8F4AE,[3]=A62741EC; +SETKEY:dwKeys[0] = 45034561, dwKeys[1] = 9DA101DE, dwKeys[2] = E7389991, dwKeys[3] = D4AACB62;-[0]=1D8EC2E8,[1]=22979070,[2]=D1C8CED4,[3]=7D577B96; +SETKEY:dwKeys[0] = BF2A0D64, dwKeys[1] = D227F846, dwKeys[2] = 7B314197, dwKeys[3] = 60FE8A5F;-[0]=F13A7281,[1]=CE232019,[2]=3D7C7EBD,[3]=91E3CBFF; +SETKEY:dwKeys[0] = BC0BF332, dwKeys[1] = 77D05354, dwKeys[2] = 92DD4192, dwKeys[3] = 7293606F;-[0]=EE10C852,[1]=D1099ACA,[2]=2256C46E,[3]=8EC9712C; +SETKEY:dwKeys[0] = 96FC9B0E, dwKeys[1] = 6A4BD0D2, dwKeys[2] = 0BCF6EA9, dwKeys[3] = EF8B8D9B;-[0]=17429F0E,[1]=285BCD96,[2]=DB049332,[3]=779B2670; +SETKEY:dwKeys[0] = D498933D, dwKeys[1] = 3525A594, dwKeys[2] = BC8D1188, dwKeys[3] = FF503456;-[0]=362B8DA5,[1]=0932DF3D,[2]=FA6D8199,[3]=56F234DB; +SETKEY:dwKeys[0] = CFD7098C, dwKeys[1] = 3E7D66D3, dwKeys[2] = F31FB494, dwKeys[3] = 2ABCA0C0;-[0]=3035ABE2,[1]=0F2CF97A,[2]=FC73A7DE,[3]=50EC129C; +SETKEY:dwKeys[0] = 81D17CDD, dwKeys[1] = 73F96036, dwKeys[2] = 92BB6494, dwKeys[3] = 074CFEF3;-[0]=B2AF4991,[1]=8DB61B09,[2]=7EE945AD,[3]=D276F0EF; +SETKEY:dwKeys[0] = 28F4383A, dwKeys[1] = 78C10291, dwKeys[2] = 68262283, dwKeys[3] = 71E610EE;-[0]=DBDE2E40,[1]=E4C77CD8,[2]=1798227C,[3]=BB07973E; +SETKEY:dwKeys[0] = DE795093, dwKeys[1] = 131F0D78, dwKeys[2] = 47635266, dwKeys[3] = 668FC01A;-[0]=106A0B88,[1]=2F735910,[2]=DC2C07B4,[3]=70B3B2F6; +SETKEY:dwKeys[0] = 4E1B9ED8, dwKeys[1] = BB894A81, dwKeys[2] = 03DC9A23, dwKeys[3] = 71678087;-[0]=E01AD09D,[1]=DF038205,[2]=2C5CDCA1,[3]=80C369E3; +SETKEY:dwKeys[0] = 47B7E118, dwKeys[1] = 34AD8FAA, dwKeys[2] = 02F2CA44, dwKeys[3] = F7E7E6C3;-[0]=9B924EEE,[1]=A48B1C76,[2]=57D442D2,[3]=FB4BF790; +SETKEY:dwKeys[0] = CA5990D5, dwKeys[1] = 8DED4F40, dwKeys[2] = 5ABD22E0, dwKeys[3] = 14E01FDF;-[0]=F0DD18A4,[1]=CFC44A3C,[2]=3C9B1498,[3]=9004A1DA; +SETKEY:dwKeys[0] = E0B6C692, dwKeys[1] = 06E1F7ED, dwKeys[2] = 09565A0E, dwKeys[3] = 80BE8D63;-[0]=7F21AA74,[1]=4038F8EC,[2]=B367A648,[3]=1FF8130A; +SETKEY:dwKeys[0] = B9159A7B, dwKeys[1] = 408D5C4F, dwKeys[2] = 92B923FC, dwKeys[3] = 48C09053;-[0]=BD2C9925,[1]=8235CBBD,[2]=716A9519,[3]=DDF5205B; +SETKEY:dwKeys[0] = CB699169, dwKeys[1] = A8D1810E, dwKeys[2] = BDD2717B, dwKeys[3] = E1614174;-[0]=0905C897,[1]=361C9A0F,[2]=C543C4AB,[3]=69DC71E9; +SETKEY:dwKeys[0] = 8A0CAA80, dwKeys[1] = DA2619D7, dwKeys[2] = 7A1AC00B, dwKeys[3] = D5975352;-[0]=39DCF0C8,[1]=06C5A250,[2]=F59AFCF4,[3]=590549B6; +SETKEY:dwKeys[0] = 0589C1B7, dwKeys[1] = 033608C6, dwKeys[2] = 56544729, dwKeys[3] = F7017F49;-[0]=4B708562,[1]=7469D7FA,[2]=8736895E,[3]=2BA93C1C; +SETKEY:dwKeys[0] = 586D7EA6, dwKeys[1] = BE3B240D, dwKeys[2] = 63FDC417, dwKeys[3] = 99CDA273;-[0]=1605E186,[1]=291CB31E,[2]=DA43EDBA,[3]=76DC58F8; +SETKEY:dwKeys[0] = A310E9A3, dwKeys[1] = DE6EF766, dwKeys[2] = 2DD848CF, dwKeys[3] = 67F4B458;-[0]=4A527549,[1]=754B27D1,[2]=86147975,[3]=2A8BCC37; +SETKEY:dwKeys[0] = 0AE58CA7, dwKeys[1] = 937C9281, dwKeys[2] = 282F16FE, dwKeys[3] = EABD18A3;-[0]=F4169AA2,[1]=CB0FC83A,[2]=3850969E,[3]=94CF23DC; +SETKEY:dwKeys[0] = 8677D49E, dwKeys[1] = 3E659308, dwKeys[2] = 39A87292, dwKeys[3] = A5478012;-[0]=FD4A406A,[1]=C25312F2,[2]=310C4C56,[3]=9D93F914; +SETKEY:dwKeys[0] = A8FEDA6E, dwKeys[1] = 90A5D6EA, dwKeys[2] = 2CDD8FF2, dwKeys[3] = 88458F28;-[0]=B66C51F5,[1]=8975036D,[2]=7A2A5DC9,[3]=D6B5E88B; +SETKEY:dwKeys[0] = 33D52724, dwKeys[1] = AAA6B932, dwKeys[2] = 49C1567D, dwKeys[3] = AE23DBA0;-[0]=CBD75631,[1]=F4CE04A9,[2]=07915A0D,[3]=AB0EEF4F; +SETKEY:dwKeys[0] = 6DC0B40C, dwKeys[1] = 583C4A9B, dwKeys[2] = D1184550, dwKeys[3] = BC4A57E8;-[0]=5D0B165E,[1]=621244C6,[2]=914D1A62,[3]=3DD2AF20; +SETKEY:dwKeys[0] = E08F9509, dwKeys[1] = CE8DC1BD, dwKeys[2] = 8A0D52BC, dwKeys[3] = 63E5B3D9;-[0]=08877503,[1]=379E279B,[2]=C4C1793F,[3]=685ECC7D; +SETKEY:dwKeys[0] = D6A776AC, dwKeys[1] = 17EA2892, dwKeys[2] = C2FBE7AC, dwKeys[3] = 1E7E9AD2;-[0]=33EBFE5E,[1]=0CF2ACC6,[2]=FFADF262,[3]=53324720; +SETKEY:dwKeys[0] = 031032ED, dwKeys[1] = D2083CDF, dwKeys[2] = C2386535, dwKeys[3] = 4682DC78;-[0]=C7C37B2A,[1]=F8DA29B2,[2]=0B857716,[3]=A71AC254; +SETKEY:dwKeys[0] = 4985776E, dwKeys[1] = 8E205E7A, dwKeys[2] = 660935B8, dwKeys[3] = 8A214B19;-[0]=108AEF2D,[1]=2F93BDB5,[2]=DCCCE311,[3]=70535653; +SETKEY:dwKeys[0] = F08B425B, dwKeys[1] = 8B1AFC1F, dwKeys[2] = B93C1515, dwKeys[3] = 2435742D;-[0]=0324CBB4,[1]=3C3D992C,[2]=CF62C788,[3]=63FD72CA; +SETKEY:dwKeys[0] = DFA9F6B0, dwKeys[1] = 5D5C7E75, dwKeys[2] = ABCC0EBC, dwKeys[3] = E7EB647A;-[0]=CC0AEEAA,[1]=F313BC32,[2]=004CE296,[3]=ACD357D4; +SETKEY:dwKeys[0] = D0EABA8B, dwKeys[1] = 24EBA0EA, dwKeys[2] = 04C3B57C, dwKeys[3] = 7B779733;-[0]=A49275BB,[1]=9B8B2723,[2]=68D47987,[3]=C44BCCC5; +SETKEY:dwKeys[0] = AD072E96, dwKeys[1] = B0D7C20A, dwKeys[2] = ED5C9B4D, dwKeys[3] = 673A5BFD;-[0]=72F60883,[1]=4DEF5A1B,[2]=BEB004BF,[3]=122FB1FD; +SETKEY:dwKeys[0] = EFCBC026, dwKeys[1] = F6ACF1B7, dwKeys[2] = 129B016A, dwKeys[3] = 5979BB97;-[0]=1BF4300A,[1]=24ED6292,[2]=D7B23C36,[3]=7B2D8974; +SETKEY:dwKeys[0] = 76812F8E, dwKeys[1] = BEE7ECBC, dwKeys[2] = B936202E, dwKeys[3] = 9E8440D5;-[0]=0C7BF0A8,[1]=3362A230,[2]=C03DFC94,[3]=6CA249D6; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 8A2FE5F7, dwKeys[1] = EDD7A2BC, dwKeys[2] = F9D6417D, dwKeys[3] = BFCA0182;-[0]=5745AAE8,[1]=685CF870,[2]=9B03A6D4,[3]=379C1396; +SETKEY:dwKeys[0] = 2EAD6342, dwKeys[1] = 13B49BE2, dwKeys[2] = E9104ADA, dwKeys[3] = 991B3256;-[0]=A4F8A757,[1]=9BE1F5CF,[2]=68BEAB6B,[3]=C4211E29; +SETKEY:dwKeys[0] = 354483CA, dwKeys[1] = 27693ECA, dwKeys[2] = 92D60EDB, dwKeys[3] = 41A986F0;-[0]=C12A3ED9,[1]=FE336C41,[2]=0D6C32E5,[3]=A1F387A7; +SETKEY:dwKeys[0] = 1D598FA0, dwKeys[1] = 7958F877, dwKeys[2] = 52F53D44, dwKeys[3] = FF6EFC05;-[0]=AEB1865B,[1]=91A8D4C3,[2]=62F78A67,[3]=CE683F25; +SETKEY:dwKeys[0] = 6DA213FB, dwKeys[1] = 2F70448B, dwKeys[2] = 2E6DB007, dwKeys[3] = 049EDD59;-[0]=E3C01791,[1]=DCD94509,[2]=2F861BAD,[3]=8319AEEF; +SETKEY:dwKeys[0] = 8C9C73D4, dwKeys[1] = 7A8568D6, dwKeys[2] = 1DF8D8CA, dwKeys[3] = F861D42D;-[0]=9574B219,[1]=AA6DE081,[2]=5932BE25,[3]=F5AD0B67; +SETKEY:dwKeys[0] = DADBA480, dwKeys[1] = AC2EF6F6, dwKeys[2] = 186459C3, dwKeys[3] = 9CCAE07B;-[0]=5A0ABFF9,[1]=6513ED61,[2]=964CB3C5,[3]=3AD30687; +SETKEY:dwKeys[0] = A22810FC, dwKeys[1] = 5E0CAB9E, dwKeys[2] = 65CE7065, dwKeys[3] = E2F85031;-[0]=936C4EAD,[1]=AC751C35,[2]=5F2A4291,[3]=F3B5F7D3; +SETKEY:dwKeys[0] = DA291421, dwKeys[1] = 8B4134ED, dwKeys[2] = 842F2197, dwKeys[3] = ADC0C68D;-[0]=3530938D,[1]=0A29C115,[2]=F9769FB1,[3]=55E92AF3; +SETKEY:dwKeys[0] = 0945B427, dwKeys[1] = FB78ABE6, dwKeys[2] = 209D1A99, dwKeys[3] = 296C87CB;-[0]=CC1FC01E,[1]=F3069286,[2]=0059CC22,[3]=ACC67960; +SETKEY:dwKeys[0] = 95E280F4, dwKeys[1] = EBD1DAE8, dwKeys[2] = 0367B983, dwKeys[3] = 368C6F41;-[0]=C784D089,[1]=F89D8211,[2]=0BC2DCB5,[3]=A75D69F7; +SETKEY:dwKeys[0] = F3B3B5DC, dwKeys[1] = 191EBD3E, dwKeys[2] = 06A43A5B, dwKeys[3] = BB3315C5;-[0]=264FA693,[1]=1956F40B,[2]=EA09AAAF,[3]=46961FED; +SETKEY:dwKeys[0] = 65D6C26F, dwKeys[1] = E64BA8CB, dwKeys[2] = 418253AD, dwKeys[3] = CAB3EF1C;-[0]=FDAB032D,[1]=C2B251B5,[2]=31ED0F11,[3]=9D72BA53; +SETKEY:dwKeys[0] = 0A1DF89C, dwKeys[1] = 0EE838F2, dwKeys[2] = A938B715, dwKeys[3] = E66454DF;-[0]=8C4C20B8,[1]=B3557220,[2]=400A2C84,[3]=EC9599C6; +SETKEY:dwKeys[0] = 67FC0826, dwKeys[1] = F9F66283, dwKeys[2] = 1D642CC2, dwKeys[3] = D0740B50;-[0]=9234D582,[1]=AD2D871A,[2]=5E72D9BE,[3]=F2ED6CFC; +SETKEY:dwKeys[0] = E58CE46D, dwKeys[1] = 4B8EF5F0, dwKeys[2] = 6D2E37C0, dwKeys[3] = E584A453;-[0]=FD1EE17C,[1]=C207B3E4,[2]=3158ED40,[3]=9DC75802; +SETKEY:dwKeys[0] = 121479CE, dwKeys[1] = 124D9EFA, dwKeys[2] = D82CE8E8, dwKeys[3] = 523ACAF7;-[0]=1A2F9EC6,[1]=2536CC5E,[2]=D66992FA,[3]=7AF627B8; +SETKEY:dwKeys[0] = 66D4570B, dwKeys[1] = 3FE90CDB, dwKeys[2] = 76EC8136, dwKeys[3] = BE968CB0;-[0]=0C01754A,[1]=331827D2,[2]=C0477976,[3]=6CD8CC34; +SETKEY:dwKeys[0] = 26C8E067, dwKeys[1] = FAEE0AD4, dwKeys[2] = B71679D8, dwKeys[3] = CDFFAC6D;-[0]=F37D62EE,[1]=CC643076,[2]=3F3B6ED2,[3]=93A4DB90; +SETKEY:dwKeys[0] = EEF8EE52, dwKeys[1] = 0D767CD3, dwKeys[2] = 40CDD373, dwKeys[3] = 0591AE89;-[0]=20EBEF4F,[1]=1FF2BDD7,[2]=ECADE373,[3]=40325631; +SETKEY:dwKeys[0] = 0E9A922D, dwKeys[1] = 451828A8, dwKeys[2] = 73C0EE2B, dwKeys[3] = 06489140;-[0]=65013554,[1]=5A1867CC,[2]=A9473968,[3]=05D88C2A; +SETKEY:dwKeys[0] = 87C33AA5, dwKeys[1] = 01BE8AE0, dwKeys[2] = EA07B71D, dwKeys[3] = DE4E51A3;-[0]=3D583C8E,[1]=02416E16,[2]=F11E30B2,[3]=5D8185F0; +SETKEY:dwKeys[0] = E0E822F6, dwKeys[1] = 8486C275, dwKeys[2] = 9BCF16DF, dwKeys[3] = 225CEED9;-[0]=DBC50BFF,[1]=E4DC5967,[2]=178307C3,[3]=BB1CB281; +SETKEY:dwKeys[0] = 8B95E32E, dwKeys[1] = 234FA844, dwKeys[2] = EF6A7307, dwKeys[3] = 1CB693D1;-[0]=7C9F6054,[1]=438632CC,[2]=B0D96C68,[3]=1C46D92A; +SETKEY:dwKeys[0] = 9B5547A5, dwKeys[1] = EF9AC73E, dwKeys[2] = 52A7B1DA, dwKeys[3] = 5E06E042;-[0]=7D30DA23,[1]=422988BB,[2]=B176D61F,[3]=1DE9635D; +SETKEY:dwKeys[0] = F0B60B98, dwKeys[1] = 53AFB1CE, dwKeys[2] = 87E7A254, dwKeys[3] = BEDF89EA;-[0]=2A1FF65D,[1]=1506A4C5,[2]=E659FA61,[3]=4AC64F23; +SETKEY:dwKeys[0] = DCA4FC1D, dwKeys[1] = B7C0130A, dwKeys[2] = 3106828F, dwKeys[3] = EE56ADD9;-[0]=30B9F33E,[1]=0FA0A1A6,[2]=FCFFFF02,[3]=50604A40; +SETKEY:dwKeys[0] = B8B16363, dwKeys[1] = 27BF7374, dwKeys[2] = 65C92531, dwKeys[3] = 84884A07;-[0]=94774BC6,[1]=AB6E195E,[2]=583147FA,[3]=F4AEF2B8; +SETKEY:dwKeys[0] = C977A092, dwKeys[1] = 57BF8204, dwKeys[2] = B390C4C3, dwKeys[3] = 93954466;-[0]=FD76A084,[1]=C26FF21C,[2]=3130ACB8,[3]=9DAF19FA; +SETKEY:dwKeys[0] = 7DE20C2D, dwKeys[1] = 256AA350, dwKeys[2] = 4C015330, dwKeys[3] = C851343D;-[0]=A1FCDF6A,[1]=9EE58DF2,[2]=6DBAD356,[3]=C1256614; +SETKEY:dwKeys[0] = D3291FEA, dwKeys[1] = FC211DE0, dwKeys[2] = 8D7448CE, dwKeys[3] = 68574A42;-[0]=FB1B187B,[1]=C4024AE3,[2]=375D1447,[3]=9BC2A105; +SETKEY:dwKeys[0] = 0919C6BF, dwKeys[1] = D66AD6A3, dwKeys[2] = C18A79F2, dwKeys[3] = 98E7C085;-[0]=714F57A4,[1]=4E56053C,[2]=BD095B98,[3]=1196EEDA; +SETKEY:dwKeys[0] = 60352E5A, dwKeys[1] = 3D4B691B, dwKeys[2] = 794A1517, dwKeys[3] = 7E8F914D;-[0]=BDE95658,[1]=82F004C0,[2]=71AF5A64,[3]=DD30EF26; +SETKEY:dwKeys[0] = B6FA6BB7, dwKeys[1] = B4A07F51, dwKeys[2] = BEAF23F2, dwKeys[3] = 466E8DFA;-[0]=9008A265,[1]=AF11F0FD,[2]=5C4EAE59,[3]=F0D11B1B; +SETKEY:dwKeys[0] = 2C6A5F9A, dwKeys[1] = 2DB95DAB, dwKeys[2] = F03B3916, dwKeys[3] = 17D0BB11;-[0]=2CF3D77D,[1]=13EA85E5,[2]=E0B5DB41,[3]=4C2A6E03; +SETKEY:dwKeys[0] = F62853FB, dwKeys[1] = B23C7F4F, dwKeys[2] = E9AB19E7, dwKeys[3] = CE1208AD;-[0]=FE1EAF68,[1]=C107FDF0,[2]=3258A354,[3]=9EC71616; +SETKEY:dwKeys[0] = 7E31DD61, dwKeys[1] = 15A5347D, dwKeys[2] = AD758B73, dwKeys[3] = F822FCA0;-[0]=1BE31126,[1]=24FA43BE,[2]=D7A51D1A,[3]=7B3AA858; +SETKEY:dwKeys[0] = 9116C567, dwKeys[1] = C68D105F, dwKeys[2] = 7CCE6424, dwKeys[3] = 133AEEBF;-[0]=DA9707C3,[1]=E58E555B,[2]=16D10BFF,[3]=BA4EBEBD; +SETKEY:dwKeys[0] = F86B96A4, dwKeys[1] = BB2D614F, dwKeys[2] = 282574DB, dwKeys[3] = 4B3F627C;-[0]=DA61D17A,[1]=E57883E2,[2]=1627DD46,[3]=BAB86804; +SETKEY:dwKeys[0] = 7F83D717, dwKeys[1] = 41DE8500, dwKeys[2] = 52F73DFC, dwKeys[3] = C6BAE12D;-[0]=84609A06,[1]=BB79C89E,[2]=4826963A,[3]=E4B92378; +SETKEY:dwKeys[0] = 559FA69F, dwKeys[1] = 46E1CD9A, dwKeys[2] = 062A4A8E, dwKeys[3] = 7617BCF4;-[0]=CCF3609D,[1]=F3EA3205,[2]=00B56CA1,[3]=AC2AD9E3; +SETKEY:dwKeys[0] = 4534037C, dwKeys[1] = EC178C67, dwKeys[2] = C5997222, dwKeys[3] = 8C097AD7;-[0]=FF58E604,[1]=C041B49C,[2]=331EEA38,[3]=9F815F7A; +SETKEY:dwKeys[0] = 8E2964B2, dwKeys[1] = 3A1E8DB1, dwKeys[2] = 2C1113BD, dwKeys[3] = 214D4EED;-[0]=5852052A,[1]=674B57B2,[2]=94140916,[3]=388BBC54; +SETKEY:dwKeys[0] = 6920D19C, dwKeys[1] = ED32276A, dwKeys[2] = 5D0A4119, dwKeys[3] = 0B212F0C;-[0]=1BC4DBD4,[1]=24DD894C,[2]=D782D7E8,[3]=7B1D62AA; +SETKEY:dwKeys[0] = B2680DD0, dwKeys[1] = F78E698E, dwKeys[2] = 891AE0ED, dwKeys[3] = 48DB583F;-[0]=969D2509,[1]=A9847791,[2]=5ADB2935,[3]=F6449C77; +SETKEY:dwKeys[0] = 608218A1, dwKeys[1] = 1064E2FD, dwKeys[2] = B153F06C, dwKeys[3] = FBE94E68;-[0]=0F3D30F2,[1]=3024626A,[2]=C37B3CCE,[3]=6FE4898C; +SETKEY:dwKeys[0] = 67162E29, dwKeys[1] = 54A63645, dwKeys[2] = FB39FC5B, dwKeys[3] = 31403BE4;-[0]=C6EA35EC,[1]=F9F36774,[2]=0AAC39D0,[3]=A6338C92; +SETKEY:dwKeys[0] = 51615155, dwKeys[1] = 9A44EE8E, dwKeys[2] = 99E3780C, dwKeys[3] = 5EF67821;-[0]=E8935BB7,[1]=D78A092F,[2]=24D5578B,[3]=884AE2C9; +SETKEY:dwKeys[0] = 4451F4D5, dwKeys[1] = 0F15A01F, dwKeys[2] = 064FBA7B, dwKeys[3] = 1143B485;-[0]=4453B3EA,[1]=7B4AE172,[2]=8815BFD6,[3]=248A0A94; +SETKEY:dwKeys[0] = E084CC62, dwKeys[1] = 1873EB92, dwKeys[2] = 57E93168, dwKeys[3] = 40833BB9;-[0]=51B5D48F,[1]=6EAC8617,[2]=9DF3D8B3,[3]=316C6DF1; +SETKEY:dwKeys[0] = C7D95BF9, dwKeys[1] = DD80838E, dwKeys[2] = 1380E56A, dwKeys[3] = 20970CEC;-[0]=59E02411,[1]=66F97689,[2]=95A6282D,[3]=39399D6F; +SETKEY:dwKeys[0] = D6F91F2B, dwKeys[1] = 0BF8943D, dwKeys[2] = 5D8B820C, dwKeys[3] = 092B494B;-[0]=157DCFF2,[1]=2A649D6A,[2]=D93BC3CE,[3]=75A4768C; +SETKEY:dwKeys[0] = 9249417A, dwKeys[1] = EB8E7812, dwKeys[2] = C6C73409, dwKeys[3] = A7A81B93;-[0]=CC85E045,[1]=F39CB2DD,[2]=00C3EC79,[3]=AC5C593B; +SETKEY:dwKeys[0] = 1F36EBC1, dwKeys[1] = A392B66F, dwKeys[2] = 77B6FEA3, dwKeys[3] = 307539AC;-[0]=893E4777,[1]=B62715EF,[2]=45784B4B,[3]=E9E7FE09; +SETKEY:dwKeys[0] = D77A5599, dwKeys[1] = DF989EEA, dwKeys[2] = 77666162, dwKeys[3] = D4AFB46C;-[0]=BFB33A45,[1]=80AA68DD,[2]=73F53679,[3]=DF6A833B; +SETKEY:dwKeys[0] = A69FE021, dwKeys[1] = 9EB91EA5, dwKeys[2] = 5A242368, dwKeys[3] = 2D7792C2;-[0]=5A98CD20,[1]=65819FB8,[2]=96DEC11C,[3]=3A41745E; +SETKEY:dwKeys[0] = 5B1C2D64, dwKeys[1] = E97C02E2, dwKeys[2] = B8867679, dwKeys[3] = DCC09005;-[0]=1C619BD9,[1]=2378C941,[2]=D02797E5,[3]=7CB822A7; +SETKEY:dwKeys[0] = 4FCDFFF5, dwKeys[1] = 58894C82, dwKeys[2] = 45865B92, dwKeys[3] = A7ED1031;-[0]=59084927,[1]=66111BBF,[2]=954E451B,[3]=39D1F059; +SETKEY:dwKeys[0] = 67B3F0B8, dwKeys[1] = 990D6CAE, dwKeys[2] = E2146785, dwKeys[3] = E4867C5A;-[0]=37341989,[1]=082D4B11,[2]=FB7215B5,[3]=57EDA0F7; +SETKEY:dwKeys[0] = 9EA91F3B, dwKeys[1] = 2B61255F, dwKeys[2] = 957824DA, dwKeys[3] = 2C4EE42E;-[0]=C95EF23C,[1]=F647A0A4,[2]=0518FE00,[3]=A9874B42; +SETKEY:dwKeys[0] = BD28B715, dwKeys[1] = A8CD995B, dwKeys[2] = 32B2B310, dwKeys[3] = 1E71FBDE;-[0]=BF778DF2,[1]=806EDF6A,[2]=733181CE,[3]=DFAE348C; +SETKEY:dwKeys[0] = F8414DDB, dwKeys[1] = 81339357, dwKeys[2] = C6209F9F, dwKeys[3] = 89DDBCBB;-[0]=DA46AC28,[1]=E55FFEB0,[2]=1600A014,[3]=BA9F1556; +SETKEY:dwKeys[0] = 0BD86D40, dwKeys[1] = B4A301A2, dwKeys[2] = DDEA6FB9, dwKeys[3] = B1EB0831;-[0]=574EAD6F,[1]=6857FFF7,[2]=9B08A153,[3]=37971411; +SETKEY:dwKeys[0] = 1BDBCBE0, dwKeys[1] = D31D2702, dwKeys[2] = 891F62FC, dwKeys[3] = CD70A8E6;-[0]=9347FC70,[1]=AC5EAEE8,[2]=5F01F04C,[3]=F39E450E; +SETKEY:dwKeys[0] = 6F5ACC25, dwKeys[1] = F224A0B7, dwKeys[2] = FFE11163, dwKeys[3] = 5F590529;-[0]=ECDFEDDF,[1]=D3C6BF47,[2]=2099E1E3,[3]=8C0654A1; +SETKEY:dwKeys[0] = D8A2A518, dwKeys[1] = D8076037, dwKeys[2] = E863D6BF, dwKeys[3] = 1B42E897;-[0]=9D44FEBF,[1]=A25DAC27,[2]=5102F283,[3]=FD9D47C1; +SETKEY:dwKeys[0] = 5A228B60, dwKeys[1] = 2CFA4E65, dwKeys[2] = 9E74F025, dwKeys[3] = DB1C0058;-[0]=0E157E87,[1]=310C2C1F,[2]=C25372BB,[3]=6ECCC7F9; +SETKEY:dwKeys[0] = AD4DFE9C, dwKeys[1] = 33BA6FEB, dwKeys[2] = F3DC61B2, dwKeys[3] = 89B59ACD;-[0]=E7A0BD77,[1]=D8B9EFEF,[2]=2BE6B14B,[3]=87790409; +SETKEY:dwKeys[0] = 07DDB0E7, dwKeys[1] = B0F572CE, dwKeys[2] = E4516D4B, dwKeys[3] = D0114CED;-[0]=0B440338,[1]=345D51A0,[2]=C7020F04,[3]=6B9DBA46; +SETKEY:dwKeys[0] = C670837F, dwKeys[1] = 6ED7B292, dwKeys[2] = A1A8448F, dwKeys[3] = DDA29DDB;-[0]=1A5F510D,[1]=25460395,[2]=D6195D31,[3]=7A86E873; +SETKEY:dwKeys[0] = 7BC28273, dwKeys[1] = 9B25D65C, dwKeys[2] = 11BAE56A, dwKeys[3] = 710ECBA5;-[0]=E3147335,[1]=DC0D21AD,[2]=2F527F09,[3]=83CDCA4B; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = 2150F39E, dwKeys[1] = 4EA49784, dwKeys[2] = EACEACAB, dwKeys[3] = C7BF7314;-[0]=DBF1C5C2,[1]=E4E8975A,[2]=17B7C9FE,[3]=BB287CBC; +SETKEY:dwKeys[0] = D7E93B6D, dwKeys[1] = A70B3E85, dwKeys[2] = 3905624D, dwKeys[3] = 638A87E6;-[0]=F6699D53,[1]=C970CFCB,[2]=3A2F916F,[3]=96B0242D; +SETKEY:dwKeys[0] = F582D16E, dwKeys[1] = B71B5D84, dwKeys[2] = 3A93DF6D, dwKeys[3] = 8280CB2E;-[0]=EE2CC87C,[1]=D1359AE4,[2]=226AC440,[3]=8EF57102; +SETKEY:dwKeys[0] = 7C844E97, dwKeys[1] = B6604D5B, dwKeys[2] = 7174793F, dwKeys[3] = 03A1E38E;-[0]=85E291F3,[1]=BAFBC36B,[2]=49A49DCF,[3]=E53B288D; +SETKEY:dwKeys[0] = 6CCFE3E8, dwKeys[1] = 942DDD82, dwKeys[2] = F7FEE73A, dwKeys[3] = B732151E;-[0]=ABF07983,[1]=94E92B1B,[2]=67B675BF,[3]=CB29C0FD; +SETKEY:dwKeys[0] = 2D53BA11, dwKeys[1] = 64AEAE16, dwKeys[2] = 0A888795, dwKeys[3] = 8DA864E9;-[0]=4D89A44B,[1]=7290F6D3,[2]=81CFA877,[3]=2D501D35; +SETKEY:dwKeys[0] = 794111F9, dwKeys[1] = AB0C2BB3, dwKeys[2] = 1A0CABAE, dwKeys[3] = 439BD60A;-[0]=07B2325D,[1]=38AB60C5,[2]=CBF43E61,[3]=676B8B23; +SETKEY:dwKeys[0] = 031C44AD, dwKeys[1] = B8ABC65B, dwKeys[2] = 35D659B6, dwKeys[3] = 8CA02998;-[0]=E96E3092,[1]=D677620A,[2]=25283CAE,[3]=89B789EC; +SETKEY:dwKeys[0] = 0A484CE6, dwKeys[1] = B16C4D71, dwKeys[2] = 01BC6463, dwKeys[3] = E38E1AFB;-[0]=637EB204,[1]=5C67E09C,[2]=AF38BE38,[3]=03A70B7A; +SETKEY:dwKeys[0] = 760A9291, dwKeys[1] = 5D190D68, dwKeys[2] = FC63A29E, dwKeys[3] = FD34FB26;-[0]=AD4F2AEE,[1]=92567876,[2]=610926D2,[3]=CD969390; +SETKEY:dwKeys[0] = 1C531563, dwKeys[1] = 2928B107, dwKeys[2] = 7AA2419F, dwKeys[3] = 7E90CE4C;-[0]=6A6229E5,[1]=557B7B7D,[2]=A62425D9,[3]=0ABB909B; +SETKEY:dwKeys[0] = 170E7CA2, dwKeys[1] = A70F2B81, dwKeys[2] = ABF60F92, dwKeys[3] = D9E2F1BE;-[0]=9E580787,[1]=A141551F,[2]=521E0BBB,[3]=FE81BEF9; +SETKEY:dwKeys[0] = 5DD3D750, dwKeys[1] = 5C273A25, dwKeys[2] = 05D49F90, dwKeys[3] = 079D0043;-[0]=803B4295,[1]=BF22100D,[2]=4C7D4EA9,[3]=E0E2FBEB; +SETKEY:dwKeys[0] = 2D5ADEF0, dwKeys[1] = DC76CB20, dwKeys[2] = 0DC403D4, dwKeys[3] = 4D5B8BC4;-[0]=38D450D7,[1]=07CD024F,[2]=F4925CEB,[3]=580DE9A9; +SETKEY:dwKeys[0] = AC3DCE93, dwKeys[1] = 6FB4CEDA, dwKeys[2] = DCDAA221, dwKeys[3] = F0068824;-[0]=FAE6A57E,[1]=C5FFF7E6,[2]=36A0A942,[3]=9A3F1C00; +SETKEY:dwKeys[0] = AD9E29C0, dwKeys[1] = A462B0AE, dwKeys[2] = 111B4D86, dwKeys[3] = 58F4A5B3;-[0]=97BC5E5A,[1]=A8A50CC2,[2]=5BFA5266,[3]=F765E724; +SETKEY:dwKeys[0] = 370BFC8B, dwKeys[1] = E4EE98FF, dwKeys[2] = B32C7884, dwKeys[3] = 961667FE;-[0]=5EC71673,[1]=61DE44EB,[2]=92811A4F,[3]=3E1EAF0D; +SETKEY:dwKeys[0] = B7040F5A, dwKeys[1] = C1AB19E4, dwKeys[2] = 77096B40, dwKeys[3] = 837E10A6;-[0]=DBEA7A07,[1]=E4F3289F,[2]=17AC763B,[3]=BB33C379; +SETKEY:dwKeys[0] = E6F72F8D, dwKeys[1] = 9A2ED829, dwKeys[2] = C2474A1A, dwKeys[3] = 90FAF7BF;-[0]=3D678AE5,[1]=027ED87D,[2]=F12186D9,[3]=5DBE339B; +SETKEY:dwKeys[0] = A7B05D5A, dwKeys[1] = 5CD2C4ED, dwKeys[2] = 18A40FFB, dwKeys[3] = FE5E6311;-[0]=9D1AE39B,[1]=A203B103,[2]=515CEFA7,[3]=FDC35AE5; +SETKEY:dwKeys[0] = 0BB3EF44, dwKeys[1] = 1968D568, dwKeys[2] = 0B79DED2, dwKeys[3] = 2313EFA8;-[0]=91A51B5C,[1]=AEBC49C4,[2]=5DE31760,[3]=F17CA222; +SETKEY:dwKeys[0] = CC07BC7B, dwKeys[1] = 30B3C3C3, dwKeys[2] = 85209441, dwKeys[3] = BB3F1E05;-[0]=3908B4CB,[1]=0611E653,[2]=F54EB8F7,[3]=59D10DB5; +SETKEY:dwKeys[0] = DE93B7D3, dwKeys[1] = 5B1151A7, dwKeys[2] = 0311F5B0, dwKeys[3] = C7B070C6;-[0]=B584D8A8,[1]=8A9D8A30,[2]=79C2D494,[3]=D55D61D6; +SETKEY:dwKeys[0] = AB09ECB7, dwKeys[1] = E8F02488, dwKeys[2] = 863A18A3, dwKeys[3] = 5AC4017F;-[0]=4BC7366D,[1]=74DE64F5,[2]=87813A51,[3]=2B1E8F13; +SETKEY:dwKeys[0] = 9797465A, dwKeys[1] = 789F9E5E, dwKeys[2] = 2634BF85, dwKeys[3] = EA923F18;-[0]=EFA982A3,[1]=D0B0D03B,[2]=23EF8E9F,[3]=8F703BDD; +SETKEY:dwKeys[0] = D3F74C23, dwKeys[1] = 52951E8C, dwKeys[2] = 348369AD, dwKeys[3] = 0A869435;-[0]=9DC9A034,[1]=A2D0F2AC,[2]=518FAC08,[3]=FD10194A; +SETKEY:dwKeys[0] = 035979EA, dwKeys[1] = BAC96196, dwKeys[2] = 077790E2, dwKeys[3] = E8E50FC5;-[0]=3BEAC49E,[1]=04F39606,[2]=F7ACC8A2,[3]=5B337DE0; +SETKEY:dwKeys[0] = 9D8D43DF, dwKeys[1] = A74A0941, dwKeys[2] = DD6D218D, dwKeys[3] = 6E1F04BF;-[0]=4AF2F8E6,[1]=75EBAA7E,[2]=86B4F4DA,[3]=2A2B4198; +SETKEY:dwKeys[0] = F22E53AA, dwKeys[1] = 129C5A6D, dwKeys[2] = A6DFAB77, dwKeys[3] = 75C653FB;-[0]=1C3C70EF,[1]=23252277,[2]=D07A7CD3,[3]=7CE5C991; +SETKEY:dwKeys[0] = 02EAD774, dwKeys[1] = EDB2CA26, dwKeys[2] = 28D092D7, dwKeys[3] = 0E510894;-[0]=AFF21A08,[1]=90EB4890,[2]=63B41634,[3]=CF2BA376; +SETKEY:dwKeys[0] = 70105D1B, dwKeys[1] = 255182AB, dwKeys[2] = 8FD1445E, dwKeys[3] = 5280C768;-[0]=2C218490,[1]=1338D608,[2]=E06788AC,[3]=4CF83DEE; +SETKEY:dwKeys[0] = F757B0B3, dwKeys[1] = F2DF024C, dwKeys[2] = F6DFB074, dwKeys[3] = 65D8E8C3;-[0]=B5E7ABDE,[1]=8AFEF946,[2]=79A1A7E2,[3]=D53E12A0; +SETKEY:dwKeys[0] = 00A18EE5, dwKeys[1] = 8C4BB29D, dwKeys[2] = 24440BDB, dwKeys[3] = C5A5B410;-[0]=0C838E2E,[1]=339ADCB6,[2]=C0C58212,[3]=6C5A3750; +SETKEY:dwKeys[0] = D2352E73, dwKeys[1] = 9BC3B245, dwKeys[2] = E359B4F7, dwKeys[3] = 1995D7F2;-[0]=B2456A04,[1]=8D5C389C,[2]=7E036638,[3]=D29CD37A; +SETKEY:dwKeys[0] = 69BF6F01, dwKeys[1] = 8938722B, dwKeys[2] = 8F58A160, dwKeys[3] = 5EBA8465;-[0]=C0D06C19,[1]=FFC93E81,[2]=0C966025,[3]=A009D567; +SETKEY:dwKeys[0] = 7203B85C, dwKeys[1] = FE08858D, dwKeys[2] = A6C947DC, dwKeys[3] = 4E1348C6;-[0]=6C301146,[1]=532943DE,[2]=A0761D7A,[3]=0CE9A838; +SETKEY:dwKeys[0] = CFAD57BE, dwKeys[1] = 401A180C, dwKeys[2] = 720485EF, dwKeys[3] = 6304F00A;-[0]=54DA8992,[1]=6BC3DB0A,[2]=989C85AE,[3]=340330EC; +SETKEY:dwKeys[0] = 48436EB4, dwKeys[1] = D7FDE79F, dwKeys[2] = 60CBB60B, dwKeys[3] = 2EC0202E;-[0]=14DE15F8,[1]=2BC74760,[2]=D89819C4,[3]=7407AC86; +SETKEY:dwKeys[0] = E34355D8, dwKeys[1] = D467E769, dwKeys[2] = 2594800C, dwKeys[3] = 53C62605;-[0]=54E83CB2,[1]=6BF16E2A,[2]=98AE308E,[3]=343185CC; +SETKEY:dwKeys[0] = E1903C65, dwKeys[1] = D675A037, dwKeys[2] = 7B1F66A8, dwKeys[3] = DC7471D9;-[0]=ED8A2C04,[1]=D2937E9C,[2]=21CC2038,[3]=8D53957A; +SETKEY:dwKeys[0] = 59634CBC, dwKeys[1] = B9C53D21, dwKeys[2] = 44EE7F57, dwKeys[3] = B467D351;-[0]=39D770B8,[1]=06CE2220,[2]=F5917C84,[3]=590EC9C6; +SETKEY:dwKeys[0] = 27A600CA, dwKeys[1] = 357FA0C8, dwKeys[2] = 0BBD8C5E, dwKeys[3] = B99B7A69;-[0]=23EDD550,[1]=1CF487C8,[2]=EFABD96C,[3]=43346C2E; +SETKEY:dwKeys[0] = E31FBED7, dwKeys[1] = 1E64FADC, dwKeys[2] = C6908EAC, dwKeys[3] = 66A6032C;-[0]=51C5F3CD,[1]=6EDCA155,[2]=9D83FFF1,[3]=311C4AB3; +SETKEY:dwKeys[0] = 308F618E, dwKeys[1] = DC95F0A8, dwKeys[2] = FB4285E8, dwKeys[3] = E260399F;-[0]=45CC0095,[1]=7AD5520D,[2]=898A0CA9,[3]=2515B9EB; +SETKEY:dwKeys[0] = 95EC5BD5, dwKeys[1] = 5A6F3800, dwKeys[2] = 7B6768A8, dwKeys[3] = 104CC8EC;-[0]=02382872,[1]=3D217AEA,[2]=CE7E244E,[3]=62E1910C; +SETKEY:dwKeys[0] = 13069C3B, dwKeys[1] = 7B3E23C7, dwKeys[2] = B7B27F5F, dwKeys[3] = 7E5A3447;-[0]=91A4032D,[1]=AEBD51B5,[2]=5DE20F11,[3]=F17DBA53; +SETKEY:dwKeys[0] = F3874B50, dwKeys[1] = 807F1835, dwKeys[2] = 21AF8AC6, dwKeys[3] = CA9FC610;-[0]=4BDD88D6,[1]=74C4DA4E,[2]=879B84EA,[3]=2B0431A8; +SETKEY:dwKeys[0] = D482085D, dwKeys[1] = 4A8CCB8E, dwKeys[2] = FC5F1B4B, dwKeys[3] = 230ADC09;-[0]=824028C3,[1]=BD597A5B,[2]=4E0624FF,[3]=E29991BD; +SETKEY:dwKeys[0] = 9644766E, dwKeys[1] = E7E7C13A, dwKeys[2] = FD88B190, dwKeys[3] = 221E078E;-[0]=53BD99E1,[1]=6CA4CB79,[2]=9FFB95DD,[3]=3364209F; +SETKEY:dwKeys[0] = 1F9CFE72, dwKeys[1] = A87F323E, dwKeys[2] = F3DA897E, dwKeys[3] = CBED2CDC;-[0]=054017D7,[1]=3A59454F,[2]=C9061BEB,[3]=6599AEA9; +SETKEY:dwKeys[0] = 52F04339, dwKeys[1] = FDD1CA46, dwKeys[2] = 03609CA8, dwKeys[3] = AD7BD9C9;-[0]=BAC99950,[1]=85D0CBC8,[2]=768F956C,[3]=DA10202E; +SETKEY:dwKeys[0] = 4170E712, dwKeys[1] = 2882492C, dwKeys[2] = 55FB054E, dwKeys[3] = 856A91BE;-[0]=E4635013,[1]=DB7A028B,[2]=28255C2F,[3]=84BAE96D; +SETKEY:dwKeys[0] = 1B71FAB8, dwKeys[1] = DCEA89B2, dwKeys[2] = 79C4180F, dwKeys[3] = 43C94375;-[0]=0487FFE7,[1]=3B9EAD7F,[2]=C8C1F3DB,[3]=645E4699; +SETKEY:dwKeys[0] = 4143FCAD, dwKeys[1] = E3157A67, dwKeys[2] = 82E9EB78, dwKeys[3] = CDCA3029;-[0]=18D7D77E,[1]=27CE85E6,[2]=D491DB42,[3]=780E6E00; +SETKEY:dwKeys[0] = 4E7305E3, dwKeys[1] = C4CA23C9, dwKeys[2] = 39DF83F8, dwKeys[3] = 5A4D48FA;-[0]=C7C17F92,[1]=F8D82D0A,[2]=0B8773AE,[3]=A718C6EC; +SETKEY:dwKeys[0] = 29E7F574, dwKeys[1] = DBCFA69E, dwKeys[2] = BA0408D6, dwKeys[3] = 17210622;-[0]=4DA1C945,[1]=72B89BDD,[2]=81E7C579,[3]=2D78703B; +SETKEY:dwKeys[0] = F2FB0655, dwKeys[1] = 791B3236, dwKeys[2] = 9DAD24EA, dwKeys[3] = 18088599;-[0]=24D94C1E,[1]=1BC01E86,[2]=E89F4022,[3]=4400F560; +SETKEY:dwKeys[0] = 8F4E8BB2, dwKeys[1] = 79B4E6FC, dwKeys[2] = 77B498A6, dwKeys[3] = 5D248526;-[0]=BB548099,[1]=844DD201,[2]=77128CA5,[3]=DB8D39E7; +SETKEY:dwKeys[0] = D312E1EB, dwKeys[1] = C7DC76A9, dwKeys[2] = 219F6234, dwKeys[3] = 84B018CE;-[0]=D2623648,[1]=ED7B64D0,[2]=1E243A74,[3]=B2BB8F36; +SETKEY:dwKeys[0] = 8870C8C6, dwKeys[1] = 2FCB20BC, dwKeys[2] = 47518E7F, dwKeys[3] = 717BC506;-[0]=93D601FC,[1]=ACCF5364,[2]=5F900DC0,[3]=F30FB882; +SETKEY:dwKeys[0] = 4B1B8F51, dwKeys[1] = 776A1059, dwKeys[2] = EF7D02B3, dwKeys[3] = CBE3016D;-[0]=F14DC7A8,[1]=CE549530,[2]=3D0BCB94,[3]=91947ED6; +SETKEY:dwKeys[0] = 854AE21A, dwKeys[1] = 9FD3CF05, dwKeys[2] = E9986E39, dwKeys[3] = C69E9CC3;-[0]=4B22D432,[1]=743B86AA,[2]=8764D80E,[3]=2BFB6D4C; +SETKEY:dwKeys[0] = 2C32ADF1, dwKeys[1] = A1A57881, dwKeys[2] = B726D016, dwKeys[3] = 8DB470EE;-[0]=10ADAE32,[1]=2FB4FCAA,[2]=DCEBA20E,[3]=7074174C; +SETKEY:dwKeys[0] = B4BD0711, dwKeys[1] = CCD7FBCB, dwKeys[2] = E86BA468, dwKeys[3] = 9A8F9AE6;-[0]=2A681511,[1]=15714789,[2]=E62E192D,[3]=4AB1AC6F; +SETKEY:dwKeys[0] = 81415924, dwKeys[1] = D3683B4B, dwKeys[2] = 411BE798, dwKeys[3] = 12CCD7CA;-[0]=463DFDF5,[1]=7924AF6D,[2]=8A7BF1C9,[3]=26E4448B; +SETKEY:dwKeys[0] = 3A6C25BC, dwKeys[1] = A27A2C62, dwKeys[2] = AA7D456B, dwKeys[3] = 4DF90281;-[0]=9E6DA92C,[1]=A174FBB4,[2]=522BA510,[3]=FEB41052; +SETKEY:dwKeys[0] = F25A1674, dwKeys[1] = 1EED86B0, dwKeys[2] = 540BDFFD, dwKeys[3] = 64ACDCF9;-[0]=FE711726,[1]=C16845BE,[2]=32371B1A,[3]=9EA8AE58; +SETKEY:dwKeys[0] = 6D007D5C, dwKeys[1] = A3AD6315, dwKeys[2] = 3F8A9C5F, dwKeys[3] = 95EE215D;-[0]=63D3D7F6,[1]=5CCA856E,[2]=AF95DBCA,[3]=030A6E88; +SETKEY:dwKeys[0] = DCA69DBD, dwKeys[1] = ACC04F14, dwKeys[2] = 8976F2C9, dwKeys[3] = 06B82117;-[0]=5933AC73,[1]=662AFEEB,[2]=9575A04F,[3]=39EA150D; +SETKEY:dwKeys[0] = 885B0B30, dwKeys[1] = 9526D1E4, dwKeys[2] = CE70E2D8, dwKeys[3] = D3047017;-[0]=68FBF7F4,[1]=57E2A56C,[2]=A4BDFBC8,[3]=08224E8A; +SETKEY:dwKeys[0] = 6090BAAA, dwKeys[1] = DB3AA279, dwKeys[2] = F5579910, dwKeys[3] = AB43AD88;-[0]=E69C8D86,[1]=D985DF1E,[2]=2ADA81BA,[3]=864534F8; +SETKEY:dwKeys[0] = 6A28504C, dwKeys[1] = 78DD659E, dwKeys[2] = 2275022B, dwKeys[3] = 421CE112;-[0]=22D37550,[1]=1DCA27C8,[2]=EE95796C,[3]=420ACC2E; +SETKEY:dwKeys[0] = 6953808F, dwKeys[1] = 5527DEC9, dwKeys[2] = D8850DF9, dwKeys[3] = 099BCFA0;-[0]=C0FCFC52,[1]=FFE5AECA,[2]=0CBAF06E,[3]=A025452C; +SETKEY:dwKeys[0] = 8290D6C3, dwKeys[1] = 373C7CB5, dwKeys[2] = 1601C791, dwKeys[3] = 7D695B66;-[0]=3BE0B8D6,[1]=04F9EA4E,[2]=F7A6B4EA,[3]=5B3901A8; +SETKEY:dwKeys[0] = 2ABF8737, dwKeys[1] = 3631E493, dwKeys[2] = 50482113, dwKeys[3] = 914EFDBC;-[0]=DD96854F,[1]=E28FD7D7,[2]=11D08973,[3]=BD4F3C31; +SETKEY:dwKeys[0] = 72B2C917, dwKeys[1] = CAF08E08, dwKeys[2] = E9D896BB, dwKeys[3] = 0EEBB2CB;-[0]=D29D3823,[1]=ED846ABB,[2]=1EDB341F,[3]=B244815D; +SETKEY:dwKeys[0] = CA282AD9, dwKeys[1] = D5E4A1D6, dwKeys[2] = 404783F2, dwKeys[3] = 136D4AC8;-[0]=04143CF4,[1]=3B0D6E6C,[2]=C85230C8,[3]=64CD858A; +SETKEY:dwKeys[0] = 2156E143, dwKeys[1] = 003F9160, dwKeys[2] = B4B8CEEA, dwKeys[3] = E0624DBC;-[0]=E8AA0B63,[1]=D7B359FB,[2]=24EC075F,[3]=8873B21D; +SETKEY:dwKeys[0] = 78EC4DDA, dwKeys[1] = 29AED4B5, dwKeys[2] = 8960E972, dwKeys[3] = 36616FEA;-[0]=C546AFDF,[1]=FA5FFD47,[2]=0900A3E3,[3]=A59F16A1; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = CEF6EC72, dwKeys[1] = 7550F4BF, dwKeys[2] = B4A8F71E, dwKeys[3] = FB9275E8;-[0]=EFC6B824,[1]=D0DFEABC,[2]=2380B418,[3]=8F1F015A; +SETKEY:dwKeys[0] = B66EC94F, dwKeys[1] = 257ABD46, dwKeys[2] = C3B72AD5, dwKeys[3] = D1CEA8A5;-[0]=E4F3B07A,[1]=DBEAE2E2,[2]=28B5BC46,[3]=842A0904; +SETKEY:dwKeys[0] = 934D5D6B, dwKeys[1] = 5787684A, dwKeys[2] = E7E9BB5B, dwKeys[3] = D14E0CEB;-[0]=B34AF1F6,[1]=8C53A36E,[2]=7F0CFDCA,[3]=D3934888; +SETKEY:dwKeys[0] = 8172C059, dwKeys[1] = 28AD2F96, dwKeys[2] = 89B56D5D, dwKeys[3] = D8BAB609;-[0]=E3A25438,[1]=DCBB06A0,[2]=2FE45804,[3]=837BED46; +SETKEY:dwKeys[0] = 2A8A8A7B, dwKeys[1] = 6A10156C, dwKeys[2] = 2F260F56, dwKeys[3] = F3F83845;-[0]=CBB8D41D,[1]=F4A18685,[2]=07FED821,[3]=AB616D63; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = EC895343, dwKeys[1] = A2EE7A75, dwKeys[2] = BD97CF3C, dwKeys[3] = CC629FB8;-[0]=4CE2E0B2,[1]=73FBB22A,[2]=80A4EC8E,[3]=2C3B59CC; +SETKEY:dwKeys[0] = 6D00D1AA, dwKeys[1] = EAD076D4, dwKeys[2] = 6FFAFEDF, dwKeys[3] = 9809AAA0;-[0]=81F5EE0B,[1]=BEECBC93,[2]=4DB3E237,[3]=E12C5775; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = 6DCA5610, dwKeys[1] = 532BC748, dwKeys[2] = D6D9E801, dwKeys[3] = AE7B21E4;-[0]=A294B5C9,[1]=9D8DE751,[2]=6ED2B9F5,[3]=C24D0CB7; +SETKEY:dwKeys[0] = 3465DE93, dwKeys[1] = 10687959, dwKeys[2] = D7CF071D, dwKeys[3] = 817A6385;-[0]=99C97681,[1]=A6D02419,[2]=558F7ABD,[3]=F910CFFF; +SETKEY:dwKeys[0] = 984D46B5, dwKeys[1] = BE6D42BA, dwKeys[2] = EACB7A29, dwKeys[3] = ADEEDA67;-[0]=09EE5145,[1]=36F703DD,[2]=C5A85D79,[3]=6937E83B; +SETKEY:dwKeys[0] = C698B903, dwKeys[1] = 30F164B0, dwKeys[2] = 354DF3EB, dwKeys[3] = 98440110;-[0]=9C73C761,[1]=A36A95F9,[2]=5035CB5D,[3]=FCAA7E1F; +SETKEY:dwKeys[0] = B6158B5F, dwKeys[1] = B4DBAD4B, dwKeys[2] = A928994D, dwKeys[3] = 62156FEF;-[0]=AB297EA2,[1]=94302C3A,[2]=676F729E,[3]=CBF0C7DC; +SETKEY:dwKeys[0] = 271E25B1, dwKeys[1] = 4FD1B750, dwKeys[2] = 6B7AA9F2, dwKeys[3] = 8BBF5A46;-[0]=D880AE1E,[1]=E799FC86,[2]=14C6A222,[3]=B8591760; +SETKEY:dwKeys[0] = 914F9531, dwKeys[1] = 35E83A8B, dwKeys[2] = 7091C3D7, dwKeys[3] = FDF3AB47;-[0]=E525974A,[1]=DA3CC5D2,[2]=29639B76,[3]=85FC2E34; +SETKEY:dwKeys[0] = 9468649E, dwKeys[1] = 31327233, dwKeys[2] = 3A4B99E7, dwKeys[3] = 44AED01A;-[0]=CC81049F,[1]=F3985607,[2]=00C708A3,[3]=AC58BDE1; +SETKEY:dwKeys[0] = C9CECBB5, dwKeys[1] = 855C3BA5, dwKeys[2] = 2C0C7030, dwKeys[3] = F123AE7F;-[0]=59CB20C1,[1]=66D27259,[2]=958D2CFD,[3]=391299BF; +SETKEY:dwKeys[0] = 8EDBFCE6, dwKeys[1] = E739EF4A, dwKeys[2] = 010F0998, dwKeys[3] = 0D9F9D08;-[0]=0CF73320,[1]=33EE61B8,[2]=C0B13F1C,[3]=6C2E8A5E; +SETKEY:dwKeys[0] = 6B7B9F23, dwKeys[1] = F76628D1, dwKeys[2] = 7958EF28, dwKeys[3] = 27208BDE;-[0]=EE2AB301,[1]=D133E199,[2]=226CBF3D,[3]=8EF30A7F; +SETKEY:dwKeys[0] = F13F58EB, dwKeys[1] = 3B2BA83A, dwKeys[2] = 143E8035, dwKeys[3] = 48FED461;-[0]=0A25D913,[1]=353C8B8B,[2]=C663D52F,[3]=6AFC606D; +SETKEY:dwKeys[0] = 18C74CB5, dwKeys[1] = 57902929, dwKeys[2] = 08FF54AE, dwKeys[3] = 5D3161C0;-[0]=2CCDFE14,[1]=13D4AC8C,[2]=E08BF228,[3]=4C14476A; +SETKEY:dwKeys[0] = 8D300D05, dwKeys[1] = 98CBD7F2, dwKeys[2] = 9D6B2A22, dwKeys[3] = A1C03961;-[0]=5A093C71,[1]=65106EE9,[2]=964F304D,[3]=3AD0850F; +SETKEY:dwKeys[0] = 1CFA3F82, dwKeys[1] = 6F9E275A, dwKeys[2] = A1AE8030, dwKeys[3] = 598916FD;-[0]=BC9CE7E0,[1]=8385B578,[2]=70DAEBDC,[3]=DC455E9E; +SETKEY:dwKeys[0] = 1EE647CB, dwKeys[1] = 69365FC1, dwKeys[2] = EDAE881D, dwKeys[3] = 45F0B3FE;-[0]=4A40CE6C,[1]=75599CF4,[2]=8606C250,[3]=2A997712; +SETKEY:dwKeys[0] = 63DF3D7F, dwKeys[1] = 2A943569, dwKeys[2] = C7D904EC, dwKeys[3] = B8AB2931;-[0]=3067C0FB,[1]=0F7E9263,[2]=FC21CCC7,[3]=50BE7985; +SETKEY:dwKeys[0] = 1D0F2B52, dwKeys[1] = 35BFA4B5, dwKeys[2] = 8EF3B04C, dwKeys[3] = 88B14E6C;-[0]=536183C2,[1]=6C78D15A,[2]=9F278FFE,[3]=33B83ABC; +SETKEY:dwKeys[0] = 181D2C69, dwKeys[1] = E0073281, dwKeys[2] = 428163B6, dwKeys[3] = 0B840FFA;-[0]=C6D82591,[1]=F9C17709,[2]=0A9E29AD,[3]=A6019CEF; +SETKEY:dwKeys[0] = 01A67847, dwKeys[1] = 41453BC0, dwKeys[2] = B678D3ED, dwKeys[3] = 7B8BDA52;-[0]=AD796775,[1]=926035ED,[2]=613F6B49,[3]=CDA0DE0B; +SETKEY:dwKeys[0] = F6D84F74, dwKeys[1] = FBD3BAEB, dwKeys[2] = A2366CBB, dwKeys[3] = AA3B1AEA;-[0]=98121B46,[1]=A70B49DE,[2]=5454177A,[3]=F8CBA238; +SETKEY:dwKeys[0] = 8B43A9A0, dwKeys[1] = 96DAE17F, dwKeys[2] = CAC54357, dwKeys[3] = 6B2D99ED;-[0]=C0ECAF72,[1]=FFF5FDEA,[2]=0CAAA34E,[3]=A035160C; +SETKEY:dwKeys[0] = 4A69EF87, dwKeys[1] = 4A687311, dwKeys[2] = FD352085, dwKeys[3] = D856CA51;-[0]=6662347D,[1]=597B66E5,[2]=AA243841,[3]=06BB8D03; +SETKEY:dwKeys[0] = 8B798DB9, dwKeys[1] = 22547622, dwKeys[2] = F9CF3F8D, dwKeys[3] = 49BFFA8C;-[0]=CC24BC45,[1]=F33DEEDD,[2]=0062B079,[3]=ACFD053B; +SETKEY:dwKeys[0] = 6DF75274, dwKeys[1] = 3BF9CED2, dwKeys[2] = 4C381950, dwKeys[3] = C4FC1C0E;-[0]=79167EF3,[1]=460F2C6B,[2]=B55072CF,[3]=19CFC78D; +SETKEY:dwKeys[0] = F83A1999, dwKeys[1] = 00D3042F, dwKeys[2] = E5C81CFB, dwKeys[3] = 58137610;-[0]=A05A7CD1,[1]=9F432E49,[2]=6C1C70ED,[3]=C083C5AF; +SETKEY:dwKeys[0] = 74641699, dwKeys[1] = 25B1CD94, dwKeys[2] = E61955CE, dwKeys[3] = 0DE557C8;-[0]=77152A57,[1]=480C78CF,[2]=BB53266B,[3]=17CC9329; +SETKEY:dwKeys[0] = ACC7F606, dwKeys[1] = 1FD4A550, dwKeys[2] = 0381A1D8, dwKeys[3] = 6246D0BE;-[0]=84221657,[1]=BB3B44CF,[2]=48641A6B,[3]=E4FBAF29; +SETKEY:dwKeys[0] = 09C7D9A8, dwKeys[1] = 24DB2875, dwKeys[2] = BE55ACE9, dwKeys[3] = 2A5BE021;-[0]=457F1478,[1]=7A6646E0,[2]=89391844,[3]=25A6AD06; +SETKEY:dwKeys[0] = 17A2BC4F, dwKeys[1] = 1FD4067B, dwKeys[2] = 993AC1E1, dwKeys[3] = 39266F57;-[0]=3BBFE773,[1]=04A6B5EB,[2]=F7F9EB4F,[3]=5B665E0D; +SETKEY:dwKeys[0] = BCB8FB1D, dwKeys[1] = 3AE1713E, dwKeys[2] = 23FF5B3C, dwKeys[3] = A156376A;-[0]=3F422076,[1]=005B72EE,[2]=F3042C4A,[3]=5F9B9908; +SETKEY:dwKeys[0] = 180A88FA, dwKeys[1] = CDBC8A02, dwKeys[2] = EE79F942, dwKeys[3] = B4090BEE;-[0]=D6B23711,[1]=E9AB6589,[2]=1AF43B2D,[3]=B66B8E6F; +SETKEY:dwKeys[0] = C3203642, dwKeys[1] = E66F6680, dwKeys[2] = 90A2EB17, dwKeys[3] = 374FAA71;-[0]=3CC46352,[1]=03DD31CA,[2]=F0826F6E,[3]=5C1DDA2C; +SETKEY:dwKeys[0] = C869BEB9, dwKeys[1] = E1C77102, dwKeys[2] = 2F0FD7B5, dwKeys[3] = 4E56C24C;-[0]=B405E7C9,[1]=8B1CB551,[2]=7843EBF5,[3]=D4DC5EB7; +SETKEY:dwKeys[0] = 8C32FF57, dwKeys[1] = 043C12BB, dwKeys[2] = 861C9565, dwKeys[3] = E7EF0FD3;-[0]=811CED8F,[1]=BE05BF17,[2]=4D5AE1B3,[3]=E1C554F1; +SETKEY:dwKeys[0] = 46B2A2C6, dwKeys[1] = 8A699008, dwKeys[2] = 2C0C7729, dwKeys[3] = 7768281C;-[0]=7ACEB4AC,[1]=45D7E634,[2]=B688B890,[3]=1A170DD2; +SETKEY:dwKeys[0] = E0ECEF60, dwKeys[1] = 187D49A7, dwKeys[2] = 73E9C20F, dwKeys[3] = 305644E6;-[0]=475E82DD,[1]=7847D045,[2]=8B188EE1,[3]=27873BA3; +SETKEY:dwKeys[0] = 4799DC5E, dwKeys[1] = B9BE68CC, dwKeys[2] = 4113B749, dwKeys[3] = 5536E987;-[0]=ED4A459A,[1]=D2531702,[2]=210C49A6,[3]=8D93FCE4; +SETKEY:dwKeys[0] = CF924CD8, dwKeys[1] = 05F22009, dwKeys[2] = 921D4898, dwKeys[3] = BAE9BE35;-[0]=0FDC05B7,[1]=30C5572F,[2]=C39A098B,[3]=6F05BCC9; +SETKEY:dwKeys[0] = 70DC2DD5, dwKeys[1] = B7A7A4A7, dwKeys[2] = 5689ABB8, dwKeys[3] = 479C5517;-[0]=D213AFA6,[1]=ED0AFD3E,[2]=1E55A39A,[3]=B2CA16D8; +SETKEY:dwKeys[0] = 74353368, dwKeys[1] = B45CCA92, dwKeys[2] = 46ECCE0F, dwKeys[3] = 31A66BE9;-[0]=5F07D1F9,[1]=601E8361,[2]=9341DDC5,[3]=3FDE6887; +SETKEY:dwKeys[0] = 6E0A0FCB, dwKeys[1] = 90C5D67E, dwKeys[2] = 7297CA4B, dwKeys[3] = 97F3300C;-[0]=6E0C3ACD,[1]=51156855,[2]=A24A36F1,[3]=0ED583B3; +SETKEY:dwKeys[0] = F26F8159, dwKeys[1] = 17B1EB38, dwKeys[2] = 7778324E, dwKeys[3] = 81995EF9;-[0]=0F0AD574,[1]=301387EC,[2]=C34CD948,[3]=6FD36C0A; +SETKEY:dwKeys[0] = 67DDC7F8, dwKeys[1] = CDDE4B5A, dwKeys[2] = C909DA6E, dwKeys[3] = DBE32EE7;-[0]=1F6E055D,[1]=207757C5,[2]=D3280961,[3]=7FB7BC23; +SETKEY:dwKeys[0] = 5D8C34F7, dwKeys[1] = 7E85464E, dwKeys[2] = 56DFF984, dwKeys[3] = 9B863CF0;-[0]=FEFAE04C,[1]=C1E3B2D4,[2]=32BCEC70,[3]=9E235932; +SETKEY:dwKeys[0] = 43F3F53A, dwKeys[1] = 0DFE001C, dwKeys[2] = 007A3D3E, dwKeys[3] = 5C720C9E;-[0]=9667F497,[1]=A97EA60F,[2]=5A21F8AB,[3]=F6BE4DE9; +SETKEY:dwKeys[0] = E483272C, dwKeys[1] = CC632855, dwKeys[2] = 8AED229D, dwKeys[3] = EE1F7325;-[0]=D8EC1484,[1]=E7F5461C,[2]=14AA18B8,[3]=B835ADFA; +SETKEY:dwKeys[0] = B412C9FD, dwKeys[1] = C6EDC4E0, dwKeys[2] = C60036C0, dwKeys[3] = 69A1B22D;-[0]=2B3517F2,[1]=142C456A,[2]=E7731BCE,[3]=4BECAE8C; +SETKEY:dwKeys[0] = 70863747, dwKeys[1] = BA415537, dwKeys[2] = 12155EFF, dwKeys[3] = FD6B1A6B;-[0]=AC6168E7,[1]=93783A7F,[2]=602764DB,[3]=CCB8D199; +SETKEY:dwKeys[0] = 3409E323, dwKeys[1] = 3678F2FE, dwKeys[2] = 34B764B0, dwKeys[3] = E2EEE522;-[0]=6DC0DC8A,[1]=52D98E12,[2]=A186D0B6,[3]=0D1965F4; +SETKEY:dwKeys[0] = E9737A2E, dwKeys[1] = 0ED9065E, dwKeys[2] = 79CF0987, dwKeys[3] = 6CA92B8C;-[0]=2EB4CADF,[1]=11AD9847,[2]=E2F2C6E3,[3]=4E6D73A1; +SETKEY:dwKeys[0] = 4407D535, dwKeys[1] = E0BC7239, dwKeys[2] = 41F8D5B7, dwKeys[3] = 10AB6EB7;-[0]=944CDA3E,[1]=AB5588A6,[2]=580AD602,[3]=F4956340; +SETKEY:dwKeys[0] = 5207EA29, dwKeys[1] = 07406DDE, dwKeys[2] = A4045C2C, dwKeys[3] = 085DA6E2;-[0]=61F9A6FA,[1]=5EE0F462,[2]=ADBFAAC6,[3]=01201F84; +SETKEY:dwKeys[0] = 6967F315, dwKeys[1] = 16A065B6, dwKeys[2] = A8424464, dwKeys[3] = BFF9AD73;-[0]=D1999ECD,[1]=EE80CC55,[2]=1DDF92F1,[3]=B14027B3; +SETKEY:dwKeys[0] = B96017C4, dwKeys[1] = 768E756D, dwKeys[2] = A51396D8, dwKeys[3] = 0CE37F02;-[0]=2B4AC49C,[1]=14539604,[2]=E70CC8A0,[3]=4B937DE2; +SETKEY:dwKeys[0] = B4C9493A, dwKeys[1] = 7FA84EFE, dwKeys[2] = 72C38B39, dwKeys[3] = 76ED9C51;-[0]=D69FB349,[1]=E986E1D1,[2]=1AD9BF75,[3]=B6460A37; +SETKEY:dwKeys[0] = C65849B5, dwKeys[1] = 1205D3B4, dwKeys[2] = 8D08EEB4, dwKeys[3] = B3C7AA2E;-[0]=9F050399,[1]=A01C5101,[2]=53430FA5,[3]=FFDCBAE7; +SETKEY:dwKeys[0] = 936B9290, dwKeys[1] = B0F19555, dwKeys[2] = 25D8A573, dwKeys[3] = A6D51F37;-[0]=C70FA888,[1]=F816FA10,[2]=0B49A4B4,[3]=A7D611F6; +SETKEY:dwKeys[0] = 92333323, dwKeys[1] = E403C76C, dwKeys[2] = 1EAE2C16, dwKeys[3] = 1A74E0F7;-[0]=6B85E933,[1]=549CBBAB,[2]=A7C3E50F,[3]=0B5C504D; +SETKEY:dwKeys[0] = 58BDDED7, dwKeys[1] = 370A694F, dwKeys[2] = 811A1CC7, dwKeys[3] = 8F8F5559;-[0]=96E4DEEF,[1]=A9FD8C77,[2]=5AA2D2D3,[3]=F63D6791; +SETKEY:dwKeys[0] = B81D2D90, dwKeys[1] = 1F1ED39B, dwKeys[2] = 750EAB64, dwKeys[3] = 151EF6F5;-[0]=AD84CEDE,[1]=929D9C46,[2]=61C2C2E2,[3]=CD5D77A0; +SETKEY:dwKeys[0] = 534731E5, dwKeys[1] = 3ADB09C3, dwKeys[2] = FD60C1E9, dwKeys[3] = 4E61DC4E;-[0]=65D065FC,[1]=5AC93764,[2]=A99669C0,[3]=0509DC82; +SETKEY:dwKeys[0] = 21E99392, dwKeys[1] = 76F493C7, dwKeys[2] = 2B098542, dwKeys[3] = F7252985;-[0]=F4FE57AC,[1]=CBE70534,[2]=38B85B90,[3]=9427EED2; +SETKEY:dwKeys[0] = 26F298CB, dwKeys[1] = E9664F08, dwKeys[2] = E87F1976, dwKeys[3] = BE63A7BF;-[0]=7B4BD32E,[1]=445281B6,[2]=B70DDF12,[3]=1B926A50; +SETKEY:dwKeys[0] = F89F71C1, dwKeys[1] = C7296524, dwKeys[2] = 8EC66502, dwKeys[3] = F98818B9;-[0]=76EA2FBE,[1]=49F37D26,[2]=BAAC2382,[3]=163396C0; +SETKEY:dwKeys[0] = B1972B8D, dwKeys[1] = A4F47486, dwKeys[2] = A07361AB, dwKeys[3] = 4BB1A44E;-[0]=195E28D1,[1]=26477A49,[2]=D51824ED,[3]=798791AF; +SETKEY:dwKeys[0] = 56FCA444, dwKeys[1] = 7C3AD687, dwKeys[2] = E21EA555, dwKeys[3] = 866310F2;-[0]=0EF01D84,[1]=31E94F1C,[2]=C2B611B8,[3]=6E29A4FA; +SETKEY:dwKeys[0] = CC8A88EA, dwKeys[1] = B154A2CA, dwKeys[2] = C53F1B9D, dwKeys[3] = 81E37248;-[0]=E4DD18FE,[1]=DBC44A66,[2]=289B14C2,[3]=8404A180; +SETKEY:dwKeys[0] = 5D21D8C1, dwKeys[1] = 38AFD440, dwKeys[2] = 0E17602E, dwKeys[3] = AF9CBEAD;-[0]=8E8CC184,[1]=B195931C,[2]=42CACDB8,[3]=EE5578FA; +SETKEY:dwKeys[0] = E3853710, dwKeys[1] = D4BFA86E, dwKeys[2] = 9911EAC6, dwKeys[3] = 8CA9482B;-[0]=FBBF77F3,[1]=C4A6256B,[2]=37F97BCF,[3]=9B66CE8D; +SETKEY:dwKeys[0] = 8793FF1C, dwKeys[1] = 55323F0E, dwKeys[2] = C31710CA, dwKeys[3] = 23EB9BF9;-[0]=04460794,[1]=3B5F550C,[2]=C8000BA8,[3]=649FBEEA; +SETKEY:dwKeys[0] = 4305797B, dwKeys[1] = 18DAF3FF, dwKeys[2] = 42C11410, dwKeys[3] = 0E7B4CE5;-[0]=9AED46C8,[1]=A5F41450,[2]=56AB4AF4,[3]=FA34FFB6; +SETKEY:dwKeys[0] = EC993895, dwKeys[1] = 6B9FA535, dwKeys[2] = F3D09977, dwKeys[3] = 69D8B620;-[0]=FC6DAA75,[1]=C374F8ED,[2]=302BA649,[3]=9CB4130B; +SETKEY:dwKeys[0] = DB4BD687, dwKeys[1] = 58F166B9, dwKeys[2] = F3AEA052, dwKeys[3] = D3677A5D;-[0]=AFE45B54,[1]=90FD09CC,[2]=63A25768,[3]=CF3DE22A; +SETKEY:dwKeys[0] = E1B7CBDD, dwKeys[1] = A2A127DB, dwKeys[2] = 6F6D2F6A, dwKeys[3] = 7781866E;-[0]=0C48EA7D,[1]=3351B8E5,[2]=C00EE641,[3]=6C915303; +SETKEY:dwKeys[0] = 242C6A68, dwKeys[1] = 8D6AB4F7, dwKeys[2] = A8D0539D, dwKeys[3] = 6BB82E69;-[0]=0D8897A8,[1]=3291C530,[2]=C1CE9B94,[3]=6D512ED6; +SETKEY:dwKeys[0] = D28E82E7, dwKeys[1] = 964D69ED, dwKeys[2] = 49B7FC7F, dwKeys[3] = 8651EC05;-[0]=06335BC8,[1]=392A0950,[2]=CA7557F4,[3]=66EAE2B6; +SETKEY:dwKeys[0] = 4110E47B, dwKeys[1] = 41592104, dwKeys[2] = B4905EEA, dwKeys[3] = CBEBC4DE;-[0]=F2A43B0A,[1]=CDBD6992,[2]=3EE23736,[3]=927D8274; +SETKEY:dwKeys[0] = 30698CB1, dwKeys[1] = CCDC9E17, dwKeys[2] = C8564E34, dwKeys[3] = 52F12D65;-[0]=83CC8BB0,[1]=BCD5D928,[2]=4F8A878C,[3]=E31532CE; +SETKEY:dwKeys[0] = 8E1243E0, dwKeys[1] = 89209ADE, dwKeys[2] = 84B1AAD7, dwKeys[3] = 73D21E7D;-[0]=E1127F8B,[1]=DE0B2D13,[2]=2D5473B7,[3]=81CBC6F5; +SETKEY:dwKeys[0] = F6A0F0D1, dwKeys[1] = BFE21C1B, dwKeys[2] = 0791B70B, dwKeys[3] = 9A4E04A4;-[0]=E589C74D,[1]=DA9095D5,[2]=29CFCB71,[3]=85507E33; +SETKEY:dwKeys[0] = 2B96DF52, dwKeys[1] = ADCB1324, dwKeys[2] = FAE81CDB, dwKeys[3] = F4FF1FB0;-[0]=3BB7F4B1,[1]=04AEA629,[2]=F7F1F88D,[3]=5B6E4DCF; +SETKEY:dwKeys[0] = DE21DCB5, dwKeys[1] = 070E0129, dwKeys[2] = B8956559, dwKeys[3] = 8EFAFF0B;-[0]=A7C848EB,[1]=98D11A73,[2]=6B8E44D7,[3]=C711F195; +SETKEY:dwKeys[0] = 95381EB7, dwKeys[1] = A6EC97B5, dwKeys[2] = C0B93E2C, dwKeys[3] = 9D46C22D;-[0]=19E57D9A,[1]=26FC2F02,[2]=D5A371A6,[3]=793CC4E4; +SETKEY:dwKeys[0] = B69AA7F5, dwKeys[1] = 0F864DB3, dwKeys[2] = 7F43EC75, dwKeys[3] = EB2E360D;-[0]=60260FBB,[1]=5F3F5D23,[2]=AC600387,[3]=00FFB6C5; +SETKEY:dwKeys[0] = 4334DED4, dwKeys[1] = AE790D3B, dwKeys[2] = 18C480B6, dwKeys[3] = 2206E528;-[0]=CEE464D3,[1]=F1FD364B,[2]=02A268EF,[3]=AE3DDDAD; +SETKEY:dwKeys[0] = 1C4BB2B9, dwKeys[1] = C32CCE21, dwKeys[2] = B3E93387, dwKeys[3] = 4902A6B3;-[0]=AC51C496,[1]=9348960E,[2]=6017C8AA,[3]=CC887DE8; +SETKEY:dwKeys[0] = 79B3609E, dwKeys[1] = E5976881, dwKeys[2] = 47DB7C02, dwKeys[3] = C115219F;-[0]=2296C50F,[1]=1D8F9797,[2]=EED0C933,[3]=424F7C71; +SETKEY:dwKeys[0] = A831E854, dwKeys[1] = 840FA5F9, dwKeys[2] = 101E0EC2, dwKeys[3] = 3F8C9A1D;-[0]=6245922A,[1]=5D5CC0B2,[2]=AE039E16,[3]=029C2B54; +SETKEY:dwKeys[0] = 421FD041, dwKeys[1] = 3DB23544, dwKeys[2] = 6EE9760B, dwKeys[3] = 1F2E6073;-[0]=A2F08A21,[1]=9DE9D8B9,[2]=6EB6861D,[3]=C229335F; +SETKEY:dwKeys[0] = 3F62C0F1, dwKeys[1] = 29ECC19D, dwKeys[2] = 3BEB0A53, dwKeys[3] = B585A2A9;-[0]=45E0093A,[1]=7AF95BA2,[2]=89A60506,[3]=2539B044; +SETKEY:dwKeys[0] = FB4A981D, dwKeys[1] = E1C3EC8F, dwKeys[2] = 3E4DDA3A, dwKeys[3] = 2F72DE05;-[0]=53033093,[1]=6C1A620B,[2]=9F453CAF,[3]=33DA89ED; +SETKEY:dwKeys[0] = 28288F3F, dwKeys[1] = 800A83A4, dwKeys[2] = EEC8A34B, dwKeys[3] = EE7974B2;-[0]=3A685943,[1]=05710BDB,[2]=F62E557F,[3]=5AB1E03D; +SETKEY:dwKeys[0] = 08381D50, dwKeys[1] = 7993CADA, dwKeys[2] = E9D67B8D, dwKeys[3] = 7CC2E721;-[0]=AA42D5A9,[1]=955B8731,[2]=6604D995,[3]=CA9B6CD7; +SETKEY:dwKeys[0] = A85F294E, dwKeys[1] = 76AD8E9F, dwKeys[2] = B3F15F17, dwKeys[3] = 1E5A7756;-[0]=6F417D6D,[1]=50582FF5,[2]=A3077151,[3]=0F98C413; +SETKEY:dwKeys[0] = 372C10D5, dwKeys[1] = E71F0FA9, dwKeys[2] = 21D112D6, dwKeys[3] = FE867BC7;-[0]=A6742DA2,[1]=996D7F3A,[2]=6A32219E,[3]=C6AD94DC; +SETKEY:dwKeys[0] = 3F1382FA, dwKeys[1] = DB03E714, dwKeys[2] = 7ECC7B39, dwKeys[3] = 20E28ADC;-[0]=59E41236,[1]=66FD40AE,[2]=95A21E0A,[3]=393DAB48; +SETKEY:dwKeys[0] = 42E4607D, dwKeys[1] = C9E459D3, dwKeys[2] = B8079992, dwKeys[3] = 90C782C6;-[0]=D5FC4A67,[1]=EAE518FF,[2]=19BA465B,[3]=B525F319; +SETKEY:dwKeys[0] = 5F05C454, dwKeys[1] = 2944B300, dwKeys[2] = 83CE030E, dwKeys[3] = 389A1CB5;-[0]=FED5576D,[1]=C1CC05F5,[2]=32935B51,[3]=9E0CEE13; +SETKEY:dwKeys[0] = E568220F, dwKeys[1] = 25956149, dwKeys[2] = 4BB03B0B, dwKeys[3] = C48FEA4F;-[0]=54C1B4A4,[1]=6BD8E63C,[2]=9887B898,[3]=34180DDA; +SETKEY:dwKeys[0] = 186941EB, dwKeys[1] = 17734B2C, dwKeys[2] = 471D32E0, dwKeys[3] = E352BDD4;-[0]=65010FF9,[1]=5A185D61,[2]=A94703C5,[3]=05D8B687; +SETKEY:dwKeys[0] = C8A34E08, dwKeys[1] = AB02D0B2, dwKeys[2] = 916FF34B, dwKeys[3] = 8C14E68C;-[0]=6B1768BE,[1]=540E3A26,[2]=A7516482,[3]=0BCED1C0; +SETKEY:dwKeys[0] = B8637079, dwKeys[1] = 85645F75, dwKeys[2] = E17FEAC8, dwKeys[3] = 2F3955CB;-[0]=B551A935,[1]=8A48FBAD,[2]=7917A509,[3]=D588104B; +SETKEY:dwKeys[0] = D57D1081, dwKeys[1] = 3597F1B8, dwKeys[2] = E7CCD718, dwKeys[3] = D31890B8;-[0]=A3CE2BB0,[1]=9CD77928,[2]=6F88278C,[3]=C31792CE; +SETKEY:dwKeys[0] = 11E9AC49, dwKeys[1] = 34BB379E, dwKeys[2] = F22C3DD2, dwKeys[3] = 796DD2B4;-[0]=020D2D75,[1]=3D147FED,[2]=CE4B2149,[3]=62D4940B; +SETKEY:dwKeys[0] = D47EEECB, dwKeys[1] = 0D8DA35E, dwKeys[2] = CCE1D225, dwKeys[3] = 40BDBD28;-[0]=EFD35C61,[1]=D0CA0EF9,[2]=2395505D,[3]=8F0AE51F; +SETKEY:dwKeys[0] = 444C29CC, dwKeys[1] = EE79B4F6, dwKeys[2] = 0171ABD1, dwKeys[3] = 2C8AD268;-[0]=691BBE73,[1]=5602ECEB,[2]=A55DB24F,[3]=09C2070D; +SETKEY:dwKeys[0] = 4645C66E, dwKeys[1] = 696A02BC, dwKeys[2] = 8598AEFE, dwKeys[3] = 8A86C2FB;-[0]=31B76928,[1]=0EAE3BB0,[2]=FDF16514,[3]=516ED056; +SETKEY:dwKeys[0] = DBCA80E0, dwKeys[1] = 8D81CC6A, dwKeys[2] = 25780A1A, dwKeys[3] = 7F6A8CBC;-[0]=E5FFC5B4,[1]=DAE6972C,[2]=29B9C988,[3]=85267CCA; +SETKEY:dwKeys[0] = 91AE2D3E, dwKeys[1] = AEB37159, dwKeys[2] = E13395E5, dwKeys[3] = A3D762BC;-[0]=11E3C96A,[1]=2EFA9BF2,[2]=DDA5C556,[3]=713A7014; +SETKEY:dwKeys[0] = 37D90A36, dwKeys[1] = 8925CE04, dwKeys[2] = 06D4920C, dwKeys[3] = EFF8D734;-[0]=3D315856,[1]=02280ACE,[2]=F177546A,[3]=5DE8E128; +SETKEY:dwKeys[0] = 718AEFCE, dwKeys[1] = 3B56A223, dwKeys[2] = C5E2D1A3, dwKeys[3] = 218CCA73;-[0]=90486CF7,[1]=AF513E6F,[2]=5C0E60CB,[3]=F091D589; +SETKEY:dwKeys[0] = 7C71D211, dwKeys[1] = 3DDA6E3D, dwKeys[2] = 1C41BE8D, dwKeys[3] = CCA6B5CF;-[0]=A9FB0184,[1]=96E2531C,[2]=65BD0DB8,[3]=C922B8FA; +SETKEY:dwKeys[0] = 1D4B8E02, dwKeys[1] = 5B0B266D, dwKeys[2] = 53CC42FD, dwKeys[3] = 002A8E85;-[0]=0456F182,[1]=3B4FA31A,[2]=C810FDBE,[3]=648F48FC; +SETKEY:dwKeys[0] = 762D9E76, dwKeys[1] = 005935D1, dwKeys[2] = 7C2F0F58, dwKeys[3] = A314DFFC;-[0]=5771A234,[1]=6868F0AC,[2]=9B37AE08,[3]=37A81B4A; +SETKEY:dwKeys[0] = E107BEB8, dwKeys[1] = 810A3027, dwKeys[2] = 037DF116, dwKeys[3] = 3FCAD83D;-[0]=2CC67AC3,[1]=13DF285B,[2]=E08076FF,[3]=4C1FC3BD; +SETKEY:dwKeys[0] = E7A742B9, dwKeys[1] = 2FAA0523, dwKeys[2] = F586DD4E, dwKeys[3] = 8F7A332D;-[0]=342BBE02,[1]=0B32EC9A,[2]=F86DB23E,[3]=54F2077C; +SETKEY:dwKeys[0] = A53711BC, dwKeys[1] = A8AC7987, dwKeys[2] = 45BBE496, dwKeys[3] = 8592F1CA;-[0]=A0A07ED4,[1]=9FB92C4C,[2]=6CE672E8,[3]=C079C7AA; +SETKEY:dwKeys[0] = CB3A88BB, dwKeys[1] = D2663162, dwKeys[2] = 162C64BC, dwKeys[3] = A8A7A37E;-[0]=A99817F3,[1]=9681456B,[2]=65DE1BCF,[3]=C941AE8D; +SETKEY:dwKeys[0] = 6E80A437, dwKeys[1] = 9BBBFF08, dwKeys[2] = 8209F9A3, dwKeys[3] = FBA4F1B0;-[0]=FDFC7ED0,[1]=C2E52C48,[2]=31BA72EC,[3]=9D25C7AE; +SETKEY:dwKeys[0] = 5D8B84F1, dwKeys[1] = F3899EDE, dwKeys[2] = 4C75AE33, dwKeys[3] = 25BF0C5E;-[0]=8FF84DD2,[1]=B0E11F4A,[2]=43BE41EE,[3]=EF21F4AC; +SETKEY:dwKeys[0] = 2DDDEDE3, dwKeys[1] = 68220B41, dwKeys[2] = D3686142, dwKeys[3] = A850817C;-[0]=F545F65E,[1]=CA5CA4C6,[2]=3903FA62,[3]=959C4F20; +SETKEY:dwKeys[0] = FE99B76E, dwKeys[1] = 07DC0EF5, dwKeys[2] = 0F8ADCFA, dwKeys[3] = C6159F7F;-[0]=6E034F26,[1]=511A1DBE,[2]=A245431A,[3]=0EDAF658; +SETKEY:dwKeys[0] = AE32BF38, dwKeys[1] = 0D5EF397, dwKeys[2] = F48D98C6, dwKeys[3] = 12A9B9FC;-[0]=791C7496,[1]=4605260E,[2]=B55A78AA,[3]=19C5CDE8; +SETKEY:dwKeys[0] = C65D8273, dwKeys[1] = ADAED451, dwKeys[2] = A63A0276, dwKeys[3] = FBFD50C4;-[0]=14141D92,[1]=2B0D4F0A,[2]=D85211AE,[3]=74CDA4EC; +SETKEY:dwKeys[0] = 0A307F7A, dwKeys[1] = DDAC937A, dwKeys[2] = 20BCB1D2, dwKeys[3] = B5C3E4BA;-[0]=273D3EFB,[1]=18246C63,[2]=EB7B32C7,[3]=47E48785; +SETKEY:dwKeys[0] = B6EDA970, dwKeys[1] = 9C81C1E1, dwKeys[2] = 156052A7, dwKeys[3] = 0EC08E28;-[0]=C4554433,[1]=FB4C16AB,[2]=0813480F,[3]=A48CFD4D; +SETKEY:dwKeys[0] = CB7DB195, dwKeys[1] = 8AD4DF7C, dwKeys[2] = 35D2FEA3, dwKeys[3] = CF271968;-[0]=FD8CC2CA,[1]=C2959052,[2]=31CACEF6,[3]=9D557BB4; +SETKEY:dwKeys[0] = EFEB400C, dwKeys[1] = 2705FFC2, dwKeys[2] = 9B614500, dwKeys[3] = 61ADEC60;-[0]=FFECD53C,[1]=C0F587A4,[2]=33AAD900,[3]=9F356C42; +SETKEY:dwKeys[0] = 4B943C52, dwKeys[1] = 7628FCF3, dwKeys[2] = AC20769E, dwKeys[3] = AE89F12D;-[0]=D6BF6CA8,[1]=E9A63E30,[2]=1AF96094,[3]=B666D5D6; +SETKEY:dwKeys[0] = F4455E09, dwKeys[1] = 9C12C6EB, dwKeys[2] = B7B9502E, dwKeys[3] = 173CFD72;-[0]=AE289396,[1]=9131C10E,[2]=626E9FAA,[3]=CEF12AE8; +SETKEY:dwKeys[0] = 96513EB9, dwKeys[1] = C073F0EE, dwKeys[2] = A90BA722, dwKeys[3] = C3714B73;-[0]=FE8455AA,[1]=C19D0732,[2]=32C25996,[3]=9E5DECD4; +SETKEY:dwKeys[0] = 1FE635C4, dwKeys[1] = D67CE6E7, dwKeys[2] = A314D5AA, dwKeys[3] = E21490B2;-[0]=AAEFEBA8,[1]=95F6B930,[2]=66A9E794,[3]=CA3652D6; +SETKEY:dwKeys[0] = AEA9F87F, dwKeys[1] = 978DAA51, dwKeys[2] = CE9814E4, dwKeys[3] = 00E130B4;-[0]=077AE68E,[1]=3863B416,[2]=CB3CEAB2,[3]=67A35FF0; +SETKEY:dwKeys[0] = B7FB0C0E, dwKeys[1] = 911DDB92, dwKeys[2] = CA39FDD9, dwKeys[3] = CF908F4F;-[0]=7325043E,[1]=4C3C56A6,[2]=BF630802,[3]=13FCBD40; +SETKEY:dwKeys[0] = E9D106BA, dwKeys[1] = 75454A98, dwKeys[2] = C517DF2D, dwKeys[3] = D8D1C3C5;-[0]=669540FF,[1]=598C1267,[2]=AAD34CC3,[3]=064CF981; +SETKEY:dwKeys[0] = 881907C4, dwKeys[1] = B97F1B05, dwKeys[2] = 61FF4878, dwKeys[3] = 0527D4B0;-[0]=0136569A,[1]=3E2F0402,[2]=CD705AA6,[3]=61EFEFE4; +SETKEY:dwKeys[0] = 3C521EBF, dwKeys[1] = ED657F77, dwKeys[2] = 9E81E5A0, dwKeys[3] = 6B68C68E;-[0]=079E764E,[1]=388724D6,[2]=CBD87A72,[3]=6747CF30; +SETKEY:dwKeys[0] = F48BCAEC, dwKeys[1] = 52959015, dwKeys[2] = 1A566E4C, dwKeys[3] = D72578A7;-[0]=2291FC63,[1]=1D88AEFB,[2]=EED7F05F,[3]=4248451D; +SETKEY:dwKeys[0] = 1196CE84, dwKeys[1] = 12F2585D, dwKeys[2] = EB7BEB92, dwKeys[3] = E16F3943;-[0]=8B0B6673,[1]=B41234EB,[2]=474D6A4F,[3]=EBD2DF0D; +SETKEY:dwKeys[0] = 21D53213, dwKeys[1] = 90F6B92C, dwKeys[2] = 4DEB775C, dwKeys[3] = D090FB28;-[0]=C99131A9,[1]=F6886331,[2]=05D73D95,[3]=A94888D7; +SETKEY:dwKeys[0] = 4B39E8FB, dwKeys[1] = 8B3B054C, dwKeys[2] = C352F33B, dwKeys[3] = 34244C06;-[0]=7EA4A710,[1]=41BDF588,[2]=B2E2AB2C,[3]=1E7D1E6E; +SETKEY:dwKeys[0] = BBF9220A, dwKeys[1] = 3060BFC9, dwKeys[2] = 85CB339D, dwKeys[3] = 42392A09;-[0]=01E74E59,[1]=3EFE1CC1,[2]=CDA14265,[3]=613EF727; +SETKEY:dwKeys[0] = CF04D404, dwKeys[1] = 71F034CC, dwKeys[2] = 3A8BEA40, dwKeys[3] = 7397FA4D;-[0]=D566E87B,[1]=EA7FBAE3,[2]=1920E447,[3]=B5BF5105; +SETKEY:dwKeys[0] = 4E569C57, dwKeys[1] = CE7E7813, dwKeys[2] = 962F4B3D, dwKeys[3] = FF153A87;-[0]=06A291A6,[1]=39BBC33E,[2]=CAE49D9A,[3]=667B28D8; +SETKEY:dwKeys[0] = EF1D7C7F, dwKeys[1] = 1EE70C4C, dwKeys[2] = 01ABA340, dwKeys[3] = 292336DC;-[0]=2F4AD3EA,[1]=10538172,[2]=E30CDFD6,[3]=4F936A94; +SETKEY:dwKeys[0] = 56BE5913, dwKeys[1] = 62571730, dwKeys[2] = 2B8DA722, dwKeys[3] = B639E2C2;-[0]=1926EE54,[1]=263FBCCC,[2]=D560E268,[3]=79FF572A; +SETKEY:dwKeys[0] = 95D137C8, dwKeys[1] = 4B698C7E, dwKeys[2] = 87B4F270, dwKeys[3] = 5A0D4C6F;-[0]=63566BE4,[1]=5C4F397C,[2]=AF1067D8,[3]=038FD29A; +SETKEY:dwKeys[0] = 74DB01E5, dwKeys[1] = E7462C64, dwKeys[2] = 13ED11CE, dwKeys[3] = 147FCF5A;-[0]=6546F4F3,[1]=5A5FA66B,[2]=A900F8CF,[3]=059F4D8D; +SETKEY:dwKeys[0] = 15F2D91D, dwKeys[1] = DDADD270, dwKeys[2] = 07714004, dwKeys[3] = 4E2A3996;-[0]=07AB8BF3,[1]=38B2D96B,[2]=CBED87CF,[3]=6772328D; +SETKEY:dwKeys[0] = F3168056, dwKeys[1] = 7429AD6C, dwKeys[2] = 097C9147, dwKeys[3] = 345BDB05;-[0]=65DB8881,[1]=5AC2DA19,[2]=A99D84BD,[3]=050231FF; +SETKEY:dwKeys[0] = C952C1C9, dwKeys[1] = 66811EBA, dwKeys[2] = 7400D1A3, dwKeys[3] = 552A063F;-[0]=2719F922,[1]=1800ABBA,[2]=EB5FF51E,[3]=47C0405C; +SETKEY:dwKeys[0] = 0CCE8322, dwKeys[1] = B151484C, dwKeys[2] = D6404C6D, dwKeys[3] = 8603C5D6;-[0]=692A7AF5,[1]=5633286D,[2]=A56C76C9,[3]=09F3C38B; +SETKEY:dwKeys[0] = C59F6775, dwKeys[1] = E4C101FC, dwKeys[2] = 2315BAF2, dwKeys[3] = 32E93EFB;-[0]=B5395BA9,[1]=8A200931,[2]=797F5795,[3]=D5E0E2D7; +SETKEY:dwKeys[0] = D30CBD3D, dwKeys[1] = 91FE7E34, dwKeys[2] = B15943CC, dwKeys[3] = D30821F2;-[0]=60BD5AD1,[1]=5FA40849,[2]=ACFB56ED,[3]=0064E3AF; +SETKEY:dwKeys[0] = DA4A6745, dwKeys[1] = 2F75D0A2, dwKeys[2] = 76BD6A39, dwKeys[3] = 75271B69;-[0]=0A236B01,[1]=353A3999,[2]=C665673D,[3]=6AFAD27F; +SETKEY:dwKeys[0] = 26F44275, dwKeys[1] = A44FFD94, dwKeys[2] = A69C4B7A, dwKeys[3] = 5CA3974D;-[0]=EBEA922D,[1]=D4F3C0B5,[2]=27AC9E11,[3]=8B332B53; +SETKEY:dwKeys[0] = 7A0A3884, dwKeys[1] = 0DF6BE19, dwKeys[2] = D1724189, dwKeys[3] = BA04F931;-[0]=08C50E5F,[1]=37DC5CC7,[2]=C4830263,[3]=681CB721; +SETKEY:dwKeys[0] = B0A8B21B, dwKeys[1] = 3C95C918, dwKeys[2] = 75FFD066, dwKeys[3] = B66A82C9;-[0]=57864EBE,[1]=689F1C26,[2]=9BC04282,[3]=375FF7C0; +SETKEY:dwKeys[0] = CDD79230, dwKeys[1] = 347ADE67, dwKeys[2] = 8B56FCAA, dwKeys[3] = 489C63F6;-[0]=A900FE0B,[1]=9619AC93,[2]=6546F237,[3]=C9D94775; +SETKEY:dwKeys[0] = C1E3F92E, dwKeys[1] = F78D8913, dwKeys[2] = F2C3227B, dwKeys[3] = 42C818A7;-[0]=92700348,[1]=AD6951D0,[2]=5E360F74,[3]=F2A9BA36; +SETKEY:dwKeys[0] = 07B1EE3A, dwKeys[1] = 498CA346, dwKeys[2] = AD4E2090, dwKeys[3] = 3FA8EF10;-[0]=893B80B5,[1]=B622D22D,[2]=457D8C89,[3]=E9E239CB; +SETKEY:dwKeys[0] = 0CDD2D56, dwKeys[1] = 312341C5, dwKeys[2] = 6FE71382, dwKeys[3] = E85F0F11;-[0]=6C4E96B3,[1]=5357C42B,[2]=A0089A8F,[3]=0C972FCD; +SETKEY:dwKeys[0] = 3A921CB9, dwKeys[1] = 460A0544, dwKeys[2] = B9DCCFF6, dwKeys[3] = 608FEFB0;-[0]=372DF3FC,[1]=0834A164,[2]=FB6BFFC0,[3]=57F44A82; +SETKEY:dwKeys[0] = E7BE0933, dwKeys[1] = DF64FB59, dwKeys[2] = 86DB4D10, dwKeys[3] = F69BEE25;-[0]=4D413818,[1]=72586A80,[2]=81073424,[3]=2D988166; +SETKEY:dwKeys[0] = AA2F8BA1, dwKeys[1] = E4C39B91, dwKeys[2] = 97893E1D, dwKeys[3] = 6DF85462;-[0]=5DF4406E,[1]=62ED12F6,[2]=91B24C52,[3]=3D2DF910; +SETKEY:dwKeys[0] = 77CA38DC, dwKeys[1] = 72E6FC05, dwKeys[2] = 8F889F2F, dwKeys[3] = 7D5F6ABF;-[0]=4ADFDF3F,[1]=75C68DA7,[2]=8699D303,[3]=2A066641; +SETKEY:dwKeys[0] = C6EF0F10, dwKeys[1] = 35BBF18C, dwKeys[2] = 9D56F82F, dwKeys[3] = 851554C6;-[0]=86B15B9B,[1]=B9A80903,[2]=4AF757A7,[3]=E668E2E5; +SETKEY:dwKeys[0] = F9DE371D, dwKeys[1] = 95460AF4, dwKeys[2] = B2FC06AC, dwKeys[3] = 9AE53899;-[0]=BE6DCCC5,[1]=81749E5D,[2]=722BC0F9,[3]=DEB475BB; +SETKEY:dwKeys[0] = 53011F33, dwKeys[1] = D9A2B73B, dwKeys[2] = 74897BC9, dwKeys[3] = 02C0A080;-[0]=9AF6C7A4,[1]=A5EF953C,[2]=56B0CB98,[3]=FA2F7EDA; +SETKEY:dwKeys[0] = 50634D0F, dwKeys[1] = 7B33E856, dwKeys[2] = 3943DC1E, dwKeys[3] = DBF9E4DD;-[0]=E83A222D,[1]=D72370B5,[2]=247C2E11,[3]=88E39B53; +SETKEY:dwKeys[0] = 8335FCAD, dwKeys[1] = B2145254, dwKeys[2] = 9433FC6F, dwKeys[3] = 4C596566;-[0]=3E93002D,[1]=018A52B5,[2]=F2D50C11,[3]=5E4AB953; +SETKEY:dwKeys[0] = 1AEB661E, dwKeys[1] = 781349DD, dwKeys[2] = 98A6B377, dwKeys[3] = 603A8BAF;-[0]=AE324958,[1]=912B1BC0,[2]=62744564,[3]=CEEBF026; +SETKEY:dwKeys[0] = 3F71CD89, dwKeys[1] = 76486326, dwKeys[2] = 0AD80F46, dwKeys[3] = 03410C13;-[0]=CB3B04B1,[1]=F4225629,[2]=077D088D,[3]=ABE2BDCF; +SETKEY:dwKeys[0] = 9BEEB889, dwKeys[1] = FE9AF6DC, dwKeys[2] = 606AAB92, dwKeys[3] = 1DADE4DB;-[0]=3D5C546B,[1]=024506F3,[2]=F11A5857,[3]=5D85ED15; +SETKEY:dwKeys[0] = DC429ACD, dwKeys[1] = 9DB38543, dwKeys[2] = 9CBBE717, dwKeys[3] = A2D53699;-[0]=36320790,[1]=092B5508,[2]=FA740BAC,[3]=56EBBEEE; +SETKEY:dwKeys[0] = 577DAE32, dwKeys[1] = DE8EEF7D, dwKeys[2] = 038E65D6, dwKeys[3] = DE03800E;-[0]=9E646FEF,[1]=A17D3D77,[2]=522263D3,[3]=FEBDD691; +SETKEY:dwKeys[0] = 93E50EB4, dwKeys[1] = 7428F08C, dwKeys[2] = 3AACA052, dwKeys[3] = 56CB7058;-[0]=CBDAD238,[1]=F4C380A0,[2]=079CDE04,[3]=AB036B46; +SETKEY:dwKeys[0] = 757911EE, dwKeys[1] = 4BA2E49E, dwKeys[2] = C0C7D09D, dwKeys[3] = 1E06F91C;-[0]=327E6A3A,[1]=0D6738A2,[2]=FE386606,[3]=52A7D344; +SETKEY:dwKeys[0] = 2BFCC498, dwKeys[1] = 7455E498, dwKeys[2] = 5B8F7895, dwKeys[3] = 8EA090D0;-[0]=DECD6928,[1]=E1D43BB0,[2]=128B6514,[3]=BE14D056; +SETKEY:dwKeys[0] = 936F1B1A, dwKeys[1] = AEA8C075, dwKeys[2] = 5EF0AFD4, dwKeys[3] = 06CAC34B;-[0]=3225AD08,[1]=0D3CFF90,[2]=FE63A134,[3]=52FC1476; +SETKEY:dwKeys[0] = 1D7D989C, dwKeys[1] = 660D8117, dwKeys[2] = C77E5FDD, dwKeys[3] = BC5D7A11;-[0]=36158E1C,[1]=090CDC84,[2]=FA538220,[3]=56CC3762; +SETKEY:dwKeys[0] = 5641CED4, dwKeys[1] = 6017F6DF, dwKeys[2] = 854E2209, dwKeys[3] = C2E14B08;-[0]=92CBCE08,[1]=ADD29C90,[2]=5E8DC234,[3]=F2127776; +SETKEY:dwKeys[0] = 8EEEE759, dwKeys[1] = 692CDCC2, dwKeys[2] = 869E56E0, dwKeys[3] = 34F5B336;-[0]=ABE0A64F,[1]=94F9F4D7,[2]=67A6AA73,[3]=CB391F31; +SETKEY:dwKeys[0] = 8F9D1995, dwKeys[1] = E13A9C63, dwKeys[2] = 9BD2F6CD, dwKeys[3] = 27ED9195;-[0]=B52F5807,[1]=8A360A9F,[2]=7969543B,[3]=D5F6E179; +SETKEY:dwKeys[0] = 4ECF57A3, dwKeys[1] = 57E1B2BA, dwKeys[2] = B1D6F470, dwKeys[3] = 8B7047F8;-[0]=9B539F15,[1]=A44ACD8D,[2]=57159329,[3]=FB8A266B; +SETKEY:dwKeys[0] = 29A457D0, dwKeys[1] = A6A84E9E, dwKeys[2] = 40A76264, dwKeys[3] = 52116253;-[0]=362D8B8D,[1]=0934D915,[2]=FA6B87B1,[3]=56F432F3; +SETKEY:dwKeys[0] = 41163938, dwKeys[1] = 6562B947, dwKeys[2] = 1AE3AAC6, dwKeys[3] = 2869E5A4;-[0]=EE63CE27,[1]=D17A9CBF,[2]=2225C21B,[3]=8EBA7759; +SETKEY:dwKeys[0] = 7EBBCDA4, dwKeys[1] = 39B63903, dwKeys[2] = 3D29C3AF, dwKeys[3] = F55DE0F3;-[0]=C06BAA93,[1]=FF72F80B,[2]=0C2DA6AF,[3]=A0B213ED; +SETKEY:dwKeys[0] = 412B69FA, dwKeys[1] = 391DA224, dwKeys[2] = B5633A50, dwKeys[3] = 34FEA2E7;-[0]=3722760B,[1]=083B2493,[2]=FB647A37,[3]=57FBCF75; +SETKEY:dwKeys[0] = 49EA7933, dwKeys[1] = EBFE132F, dwKeys[2] = CA18FC5F, dwKeys[3] = 9FF8F8A0;-[0]=69BFD947,[1]=56A68BDF,[2]=A5F9D57B,[3]=09666039; +SETKEY:dwKeys[0] = 9479DB91, dwKeys[1] = 40EDD06D, dwKeys[2] = 8D16EE22, dwKeys[3] = 11D22DBB;-[0]=35C09BF8,[1]=0AD9C960,[2]=F98697C4,[3]=55192286; +SETKEY:dwKeys[0] = 1DFFCE59, dwKeys[1] = 7E561D41, dwKeys[2] = 13C5DC05, dwKeys[3] = B57AA06B;-[0]=0DE04925,[1]=32F91BBD,[2]=C1A64519,[3]=6D39F05B; +SETKEY:dwKeys[0] = FDBDC2D1, dwKeys[1] = E54D16C1, dwKeys[2] = 270EA8B4, dwKeys[3] = 6A54DFC4;-[0]=07293D1E,[1]=38306F86,[2]=CB6F3122,[3]=67F08460; +SETKEY:dwKeys[0] = 05C882E6, dwKeys[1] = 401D7AC6, dwKeys[2] = 205F8C8E, dwKeys[3] = E8A47F8B;-[0]=30D87BD3,[1]=0FC1294B,[2]=FC9E77EF,[3]=5001C2AD; +SETKEY:dwKeys[0] = 272972C8, dwKeys[1] = 88260AF7, dwKeys[2] = BD18818B, dwKeys[3] = A7CD4AFD;-[0]=2F88299A,[1]=10917B02,[2]=E3CE25A6,[3]=4F5190E4; +SETKEY:dwKeys[0] = F3EAFD2A, dwKeys[1] = 5F34B2C4, dwKeys[2] = FFABC24D, dwKeys[3] = 2F6B302E;-[0]=DD9FCC3E,[1]=E2869EA6,[2]=11D9C002,[3]=BD467540; +SETKEY:dwKeys[0] = 52E11FC5, dwKeys[1] = 59CD8EA5, dwKeys[2] = A29BFAA1, dwKeys[3] = A39B61FD;-[0]=F8423508,[1]=C75B6790,[2]=34043934,[3]=989B8C76; +SETKEY:dwKeys[0] = 18DB9D21, dwKeys[1] = 062BBA96, dwKeys[2] = 770888A8, dwKeys[3] = 46BC1B5C;-[0]=C5ADA6D4,[1]=FAB4F44C,[2]=09EBAAE8,[3]=A5741FAA; +SETKEY:dwKeys[0] = D1FC92B2, dwKeys[1] = D18E4B8A, dwKeys[2] = 062C1539, dwKeys[3] = C8BBCCBB;-[0]=FBF49866,[1]=C4EDCAFE,[2]=37B2945A,[3]=9B2D2118; +SETKEY:dwKeys[0] = 961E9540, dwKeys[1] = 8AD446DF, dwKeys[2] = 54ACCE8E, dwKeys[3] = FE7F0866;-[0]=A7FF801C,[1]=98E6D284,[2]=6BB98C20,[3]=C7263962; +SETKEY:dwKeys[0] = 4DA76652, dwKeys[1] = ABC3A1FA, dwKeys[2] = 6426BA0F, dwKeys[3] = 3EC20C02;-[0]=C24C6254,[1]=FD5530CC,[2]=0E0A6E68,[3]=A295DB2A; +SETKEY:dwKeys[0] = B6F98715, dwKeys[1] = E18E6DEE, dwKeys[2] = 2DC17F37, dwKeys[3] = A031E4C5;-[0]=D7D47277,[1]=E8CD20EF,[2]=1B927E4B,[3]=B70DCB09; +SETKEY:dwKeys[0] = 70CFCC68, dwKeys[1] = 9218C917, dwKeys[2] = 91015848, dwKeys[3] = 03481BEE;-[0]=1B8E09C4,[1]=24975B5C,[2]=D7C805F8,[3]=7B57B0BA; +SETKEY:dwKeys[0] = 0A034884, dwKeys[1] = 73C55BC1, dwKeys[2] = 20F89A06, dwKeys[3] = 79AD79A6;-[0]=DF6126F2,[1]=E078746A,[2]=13272ACE,[3]=BFB89F8C; +SETKEY:dwKeys[0] = D8224EAB, dwKeys[1] = 08A70529, dwKeys[2] = 1E9AA295, dwKeys[3] = 9141F718;-[0]=F9AAF2CA,[1]=C6B3A052,[2]=35ECFEF6,[3]=99734BB4; +SETKEY:dwKeys[0] = 372612ED, dwKeys[1] = 932DFDB0, dwKeys[2] = 7BB42930, dwKeys[3] = C4044681;-[0]=35F2CC9D,[1]=0AEB9E05,[2]=F9B4C0A1,[3]=552B75E3; +SETKEY:dwKeys[0] = 618D5376, dwKeys[1] = B4EFC4F4, dwKeys[2] = 84D4E9A9, dwKeys[3] = 8B670893;-[0]=EE59B6AB,[1]=D140E433,[2]=221FBA97,[3]=8E800FD5; +SETKEY:dwKeys[0] = 217580FE, dwKeys[1] = 824362E1, dwKeys[2] = D9797C88, dwKeys[3] = 3E237306;-[0]=2A68E4F7,[1]=1571B66F,[2]=E62EE8CB,[3]=4AB15D89; +SETKEY:dwKeys[0] = 8BD89AEE, dwKeys[1] = 28A6A323, dwKeys[2] = 15C16ECF, dwKeys[3] = D681D72F;-[0]=12CE64CF,[1]=2DD73657,[2]=DE8868F3,[3]=7217DDB1; +SETKEY:dwKeys[0] = 0455EE66, dwKeys[1] = 35310FA9, dwKeys[2] = BDA22364, dwKeys[3] = C9204081;-[0]=9741047B,[1]=A85856E3,[2]=5B070847,[3]=F798BD05; +SETKEY:dwKeys[0] = 7B8A1E45, dwKeys[1] = 10172804, dwKeys[2] = 99FE4BFD, dwKeys[3] = 1DE211F1;-[0]=EB65F537,[1]=D47CA7AF,[2]=2723F90B,[3]=8BBC4C49; +SETKEY:dwKeys[0] = 2A5E16B3, dwKeys[1] = A743B756, dwKeys[2] = 036BEAF2, dwKeys[3] = D6D2C2DB;-[0]=E6C72D22,[1]=D9DE7FBA,[2]=2A81211E,[3]=861E945C; +SETKEY:dwKeys[0] = C30478E2, dwKeys[1] = 787443EF, dwKeys[2] = 99DCD00D, dwKeys[3] = C091F0A5;-[0]=0ECF9ECA,[1]=31D6CC52,[2]=C28992F6,[3]=6E1627B4; +SETKEY:dwKeys[0] = BB5D82B7, dwKeys[1] = 2D4517A2, dwKeys[2] = 52CACC06, dwKeys[3] = F1C282CC;-[0]=5AF52E94,[1]=65EC7C0C,[2]=96B322A8,[3]=3A2C97EA; +SETKEY:dwKeys[0] = FFDFC7D0, dwKeys[1] = 1FD8A740, dwKeys[2] = 817D29A6, dwKeys[3] = AA04708F;-[0]=4CA3A19B,[1]=73BAF303,[2]=80E5ADA7,[3]=2C7A18E5; +SETKEY:dwKeys[0] = 126F7D7E, dwKeys[1] = FC3DC5A8, dwKeys[2] = 2DD76B16, dwKeys[3] = 82000B3C;-[0]=ABE06553,[1]=94F937CB,[2]=67A6696F,[3]=CB39DC2D; +SETKEY:dwKeys[0] = 50F2A53A, dwKeys[1] = BCB39337, dwKeys[2] = 0E148053, dwKeys[3] = 6E534862;-[0]=A6BF8EC0,[1]=99A6DC58,[2]=6AF982FC,[3]=C66637BE; +SETKEY:dwKeys[0] = 8BFF5093, dwKeys[1] = AC1589EE, dwKeys[2] = E85836C5, dwKeys[3] = 06A7BF7E;-[0]=FB358035,[1]=C42CD2AD,[2]=37738C09,[3]=9BEC394B; +SETKEY:dwKeys[0] = 82267029, dwKeys[1] = 2249F43A, dwKeys[2] = 03A31C76, dwKeys[3] = 4AB59933;-[0]=45DF3866,[1]=7AC66AFE,[2]=8999345A,[3]=25068118; +SETKEY:dwKeys[0] = E13CD9B9, dwKeys[1] = 91189495, dwKeys[2] = F9EAC634, dwKeys[3] = 42FDB1A1;-[0]=AB5EBD5A,[1]=9447EFC2,[2]=6718B166,[3]=CB870424; +SETKEY:dwKeys[0] = 302931AE, dwKeys[1] = 0084CE6D, dwKeys[2] = 0A92D3F3, dwKeys[3] = 1519F0A5;-[0]=9234EA5F,[1]=AD2DB8C7,[2]=5E72E663,[3]=F2ED5321; +SETKEY:dwKeys[0] = D582E0FF, dwKeys[1] = FA4C7522, dwKeys[2] = 0ECAC8AE, dwKeys[3] = 9832854A;-[0]=F8CC9555,[1]=C7D5C7CD,[2]=348A9969,[3]=98152C2B; +SETKEY:dwKeys[0] = 9002FC27, dwKeys[1] = A6B77373, dwKeys[2] = 74826123, dwKeys[3] = 73C42C45;-[0]=EF919C57,[1]=D088CECF,[2]=23D7906B,[3]=8F482529; +SETKEY:dwKeys[0] = 7D549281, dwKeys[1] = 6DD0C1F2, dwKeys[2] = CF55EA3A, dwKeys[3] = 0DE24518;-[0]=2347EFF9,[1]=1C5EBD61,[2]=EF01E3C5,[3]=439E5687; +SETKEY:dwKeys[0] = E5E0800B, dwKeys[1] = 9D7C3A13, dwKeys[2] = 37F20EA1, dwKeys[3] = FAB7805B;-[0]=A17551C4,[1]=9E6C035C,[2]=6D335DF8,[3]=C1ACE8BA; +SETKEY:dwKeys[0] = A1584A46, dwKeys[1] = 85A482DF, dwKeys[2] = C15B70EA, dwKeys[3] = 6C24A685;-[0]=1CFC0857,[1]=23E55ACF,[2]=D0BA046B,[3]=7C25B129; +SETKEY:dwKeys[0] = B5960458, dwKeys[1] = 0D121A84, dwKeys[2] = F9B92495, dwKeys[3] = FB6FDD23;-[0]=11CBF490,[1]=2ED2A608,[2]=DD8DF8AC,[3]=71124DEE; +SETKEY:dwKeys[0] = 33299432, dwKeys[1] = 0D1FF954, dwKeys[2] = BBDB1048, dwKeys[3] = A4BDA9B5;-[0]=929255DF,[1]=AD8B0747,[2]=5ED459E3,[3]=F24BECA1; +SETKEY:dwKeys[0] = FCB74A61, dwKeys[1] = 6E111C14, dwKeys[2] = 938EC8C1, dwKeys[3] = 8CAFA792;-[0]=0D37F40D,[1]=322EA695,[2]=C171F831,[3]=6DEE4D73; +SETKEY:dwKeys[0] = B235A62B, dwKeys[1] = E022D227, dwKeys[2] = 8FDE9864, dwKeys[3] = A422DD41;-[0]=DD9335F4,[1]=E28A676C,[2]=11D539C8,[3]=BD4A8C8A; +SETKEY:dwKeys[0] = 40E24707, dwKeys[1] = 33F4135C, dwKeys[2] = 9967DC24, dwKeys[3] = A992D20D;-[0]=FEA42C2F,[1]=C1BD7EB7,[2]=32E22013,[3]=9E7D9551; +SETKEY:dwKeys[0] = A0736181, dwKeys[1] = 7DF43BC9, dwKeys[2] = FCD12D22, dwKeys[3] = 29B67FD3;-[0]=C8F20F37,[1]=F7EB5DAF,[2]=04B4030B,[3]=A82BB649; +SETKEY:dwKeys[0] = DDAC057E, dwKeys[1] = B728AB97, dwKeys[2] = 7E08BC44, dwKeys[3] = 8BDAA42E;-[0]=C98A51A2,[1]=F693033A,[2]=05CC5D9E,[3]=A953E8DC; +SETKEY:dwKeys[0] = C12F1A49, dwKeys[1] = 14611AA6, dwKeys[2] = 8E42B89A, dwKeys[3] = F5CC002A;-[0]=50DC78B2,[1]=6FC52A2A,[2]=9C9A748E,[3]=3005C1CC; +SETKEY:dwKeys[0] = EDD7B7A7, dwKeys[1] = 75E0D2E2, dwKeys[2] = 39446212, dwKeys[3] = C37C60B1;-[0]=D4D345DA,[1]=EBCA1742,[2]=189549E6,[3]=B40AFCA4; +SETKEY:dwKeys[0] = 34B75521, dwKeys[1] = C5B18E30, dwKeys[2] = 6E185847, dwKeys[3] = 1A46B916;-[0]=D19E97BB,[1]=EE87C523,[2]=1DD89B87,[3]=B1472EC5; +SETKEY:dwKeys[0] = 7002CD73, dwKeys[1] = 89E0DEFF, dwKeys[2] = 654190CE, dwKeys[3] = 98555A5E;-[0]=57318659,[1]=6828D4C1,[2]=9B778A65,[3]=37E83F27; +SETKEY:dwKeys[0] = 1B1A3BD2, dwKeys[1] = 4F8507CE, dwKeys[2] = 3F37B92A, dwKeys[3] = 55D1886C;-[0]=CF438201,[1]=F05AD099,[2]=03058E3D,[3]=AF9A3B7F; +SETKEY:dwKeys[0] = 8EB8263D, dwKeys[1] = 9C2DECCD, dwKeys[2] = AB45A914, dwKeys[3] = D4205E8A;-[0]=7335E7BB,[1]=4C2CB523,[2]=BF73EB87,[3]=13EC5EC5; +SETKEY:dwKeys[0] = 6BEC39ED, dwKeys[1] = 3BD63A52, dwKeys[2] = 52D66AE6, dwKeys[3] = EEE13615;-[0]=B86B1E23,[1]=87724CBB,[2]=742D121F,[3]=D8B2A75D; +SETKEY:dwKeys[0] = 039144C8, dwKeys[1] = BBFDA5FB, dwKeys[2] = 1B062BB7, dwKeys[3] = 2DDEAA7F;-[0]=CB7E7CCE,[1]=F4672E56,[2]=073870F2,[3]=ABA7C5B0; +SETKEY:dwKeys[0] = 211932D7, dwKeys[1] = BF78DF71, dwKeys[2] = 3E76CC11, dwKeys[3] = 75564AD4;-[0]=6D256F0A,[1]=523C3D92,[2]=A1636336,[3]=0DFCD674; +SETKEY:dwKeys[0] = 62C83BBF, dwKeys[1] = EF0563A0, dwKeys[2] = 9E2EBF56, dwKeys[3] = 5FE59725;-[0]=33EB2CBC,[1]=0CF27E24,[2]=FFAD2080,[3]=533295C2; +SETKEY:dwKeys[0] = 68484EFF, dwKeys[1] = 384E337C, dwKeys[2] = F9DC2157, dwKeys[3] = 262DD131;-[0]=A0EA1ED7,[1]=9FF34C4F,[2]=6CAC12EB,[3]=C033A7A9; +SETKEY:dwKeys[0] = A386C7F7, dwKeys[1] = 08E0576B, dwKeys[2] = D9EDF423, dwKeys[3] = D5DDCCC9;-[0]=FE1BAA5F,[1]=C102F8C7,[2]=325DA663,[3]=9EC21321; +SETKEY:dwKeys[0] = B77D6C8E, dwKeys[1] = 032ADF7D, dwKeys[2] = 497EFE65, dwKeys[3] = 0848ED2F;-[0]=B4FED101,[1]=8BE78399,[2]=78B8DD3D,[3]=D427687F; +SETKEY:dwKeys[0] = AF4C8CE8, dwKeys[1] = 8845F47D, dwKeys[2] = 72FBC279, dwKeys[3] = 1EF50A04;-[0]=79CCDE4B,[1]=46D58CD3,[2]=B58AD277,[3]=19156735; +SETKEY:dwKeys[0] = 94973E02, dwKeys[1] = 8386D86B, dwKeys[2] = 070A1E6C, dwKeys[3] = 90EE093D;-[0]=05C6170D,[1]=3ADF4595,[2]=C9801B31,[3]=651FAE73; +SETKEY:dwKeys[0] = 670647A1, dwKeys[1] = 54B3005B, dwKeys[2] = 3E33B6D1, dwKeys[3] = D0F7EDBD;-[0]=8F1ECABE,[1]=B0079826,[2]=4358C682,[3]=EFC773C0; +SETKEY:dwKeys[0] = 68051AE0, dwKeys[1] = 394A3A92, dwKeys[2] = 9F723DB8, dwKeys[3] = DBC26622;-[0]=B05071B1,[1]=8F492329,[2]=7C167D8D,[3]=D089C8CF; +SETKEY:dwKeys[0] = 4A96AD58, dwKeys[1] = 13608608, dwKeys[2] = 56A0D30E, dwKeys[3] = 72D0CB29;-[0]=A2299147,[1]=9D30C3DF,[2]=6E6F9D7B,[3]=C2F02839; +SETKEY:dwKeys[0] = AAAEF665, dwKeys[1] = 9AC5AD76, dwKeys[2] = CE7A3932, dwKeys[3] = B5BB7A6A;-[0]=110BF1D6,[1]=2E12A34E,[2]=DD4DFDEA,[3]=71D248A8; +SETKEY:dwKeys[0] = 5FF61AE4, dwKeys[1] = 57030BB8, dwKeys[2] = E1B728FC, dwKeys[3] = 2CB60D09;-[0]=CDC04C0E,[1]=F2D91E96,[2]=01864032,[3]=AD19F570; +SETKEY:dwKeys[0] = CEBCFFF7, dwKeys[1] = 3DB48C39, dwKeys[2] = 54341B79, dwKeys[3] = E0A67CBF;-[0]=A0E77D64,[1]=9FFE2FFC,[2]=6CA17158,[3]=C03EC41A; +SETKEY:dwKeys[0] = 3738D781, dwKeys[1] = 0DE7006A, dwKeys[2] = 16A5F0D8, dwKeys[3] = CD680D62;-[0]=38D9F64A,[1]=07C0A4D2,[2]=F49FFA76,[3]=58004F34; +SETKEY:dwKeys[0] = 8CBC2B54, dwKeys[1] = 87F2FBE5, dwKeys[2] = 1BA70556, dwKeys[3] = 59B50C39;-[0]=2FF51074,[1]=10EC42EC,[2]=E3B31C48,[3]=4F2CA90A; +SETKEY:dwKeys[0] = 76F35F90, dwKeys[1] = 813ACE66, dwKeys[2] = A8123A89, dwKeys[3] = 7997A87E;-[0]=87A7CAC2,[1]=B8BE985A,[2]=4BE1C6FE,[3]=E77E73BC; +SETKEY:dwKeys[0] = A24EE643, dwKeys[1] = 50F971FA, dwKeys[2] = 4CC34BB4, dwKeys[3] = B99B7059;-[0]=487224A8,[1]=776B7630,[2]=84342894,[3]=28AB9DD6; +SETKEY:dwKeys[0] = 906B2ACC, dwKeys[1] = 7182D35D, dwKeys[2] = 5808BB8B, dwKeys[3] = D5296280;-[0]=7F9BF900,[1]=4082AB98,[2]=B3DDF53C,[3]=1F42407E; +SETKEY:dwKeys[0] = 1C24A079, dwKeys[1] = 2DE63EE1, dwKeys[2] = 4A2A5E7C, dwKeys[3] = E15B05D8;-[0]=1427D0AA,[1]=2B3E8232,[2]=D861DC96,[3]=74FE69D4; +SETKEY:dwKeys[0] = 2A7F061C, dwKeys[1] = D7D16CE0, dwKeys[2] = A2853FE2, dwKeys[3] = 6A785946;-[0]=A4140CBD,[1]=9B0D5E25,[2]=68520081,[3]=C4CDB5C3; +SETKEY:dwKeys[0] = 53982596, dwKeys[1] = 627CC0E0, dwKeys[2] = 0DF197B8, dwKeys[3] = 12218AA0;-[0]=8CC4814E,[1]=B3DDD3D6,[2]=40828D72,[3]=EC1D3830; +SETKEY:dwKeys[0] = 6D88D610, dwKeys[1] = 35ACE8D2, dwKeys[2] = 6F2C7A34, dwKeys[3] = 072D752C;-[0]=C551422E,[1]=FA4810B6,[2]=09174E12,[3]=A588FB50; +SETKEY:dwKeys[0] = 11A77891, dwKeys[1] = E3293F20, dwKeys[2] = B7AD1BCD, dwKeys[3] = 63C65026;-[0]=340E424D,[1]=0B1710D5,[2]=F8484E71,[3]=54D7FB33; +SETKEY:dwKeys[0] = 315FAA9B, dwKeys[1] = DD2F2BC6, dwKeys[2] = 611B075A, dwKeys[3] = AA8687E1;-[0]=0F7745FC,[1]=306E1764,[2]=C33149C0,[3]=6FAEFC82; +SETKEY:dwKeys[0] = 70ADE58B, dwKeys[1] = 7372261A, dwKeys[2] = 5CC8F046, dwKeys[3] = C4EAA9C7;-[0]=8E7C90AD,[1]=B165C235,[2]=423A9C91,[3]=EEA529D3; +SETKEY:dwKeys[0] = BBA58E7D, dwKeys[1] = 95247FE5, dwKeys[2] = A222AC6F, dwKeys[3] = 4DF11415;-[0]=85136180,[1]=BA0A3318,[2]=49556DBC,[3]=E5CAD8FE; +SETKEY:dwKeys[0] = 8479254D, dwKeys[1] = D6484CC4, dwKeys[2] = 3F75B6BC, dwKeys[3] = 9C955FEB;-[0]=C4B4A874,[1]=FBADFAEC,[2]=08F2A448,[3]=A46D110A; +SETKEY:dwKeys[0] = 7E39EC50, dwKeys[1] = 32ED65D7, dwKeys[2] = 8CFEA73D, dwKeys[3] = 2DFD0A6C;-[0]=405C7145,[1]=7F4523DD,[2]=8C1A7D79,[3]=2085C83B; +SETKEY:dwKeys[0] = C6D3E8A2, dwKeys[1] = 44403385, dwKeys[2] = D736CC44, dwKeys[3] = 5E79ABCB;-[0]=985483EC,[1]=A74DD174,[2]=54128FD0,[3]=F88D3A92; +SETKEY:dwKeys[0] = 0AE42F69, dwKeys[1] = 4222D3CB, dwKeys[2] = 22A1CFBB, dwKeys[3] = 80E20C00;-[0]=7590D854,[1]=4A898ACC,[2]=B9D6D468,[3]=1549612A; +SETKEY:dwKeys[0] = 6B3A6EFB, dwKeys[1] = D0D10D09, dwKeys[2] = A641BF00, dwKeys[3] = 311557C1;-[0]=886033AB,[1]=B7796133,[2]=44263F97,[3]=E8B98AD5; +SETKEY:dwKeys[0] = 6449BB2F, dwKeys[1] = AD09B915, dwKeys[2] = 67344958, dwKeys[3] = 987EA083;-[0]=276C1BDF,[1]=18754947,[2]=EB2A17E3,[3]=47B5A2A1; +SETKEY:dwKeys[0] = B94948BD, dwKeys[1] = C06C3019, dwKeys[2] = 69887A96, dwKeys[3] = BBE497B8;-[0]=6F154604,[1]=500C149C,[2]=A3534A38,[3]=0FCCFF7A; +SETKEY:dwKeys[0] = 02298535, dwKeys[1] = 2E065ABE, dwKeys[2] = 7084D5E4, dwKeys[3] = 5434837B;-[0]=9F91F845,[1]=A088AADD,[2]=53D7F479,[3]=FF48413B; +SETKEY:dwKeys[0] = D15D2851, dwKeys[1] = C14FB83A, dwKeys[2] = B0475C1C, dwKeys[3] = 52F44F6B;-[0]=5CABE931,[1]=63B2BBA9,[2]=90EDE50D,[3]=3C72504F; +SETKEY:dwKeys[0] = 969D96DC, dwKeys[1] = 2FBA80C6, dwKeys[2] = B4ADE583, dwKeys[3] = 1F2F26FA;-[0]=DAA65731,[1]=E5BF05A9,[2]=16E05B0D,[3]=BA7FEE4F; +SETKEY:dwKeys[0] = AFB8A993, dwKeys[1] = E0EFC0B2, dwKeys[2] = 8D2ECA68, dwKeys[3] = 7A5FBD8A;-[0]=46762DBF,[1]=796F7F27,[2]=8A302183,[3]=26AF94C1; +SETKEY:dwKeys[0] = 6726740B, dwKeys[1] = 8B1D9946, dwKeys[2] = 65B30B0E, dwKeys[3] = 74D6B53C;-[0]=872F6853,[1]=B8363ACB,[2]=4B69646F,[3]=E7F6D12D; +SETKEY:dwKeys[0] = 65CB9D0F, dwKeys[1] = 7768CAAF, dwKeys[2] = CD80769D, dwKeys[3] = A8B75B6A;-[0]=87BD1C86,[1]=B8A44E1E,[2]=4BFB10BA,[3]=E764A5F8; +SETKEY:dwKeys[0] = 2EB72203, dwKeys[1] = 877CE943, dwKeys[2] = 4D6EDE20, dwKeys[3] = 4166A331;-[0]=56A33DCC,[1]=69BA6F54,[2]=9AE531F0,[3]=367A84B2; +SETKEY:dwKeys[0] = 4D89D6CF, dwKeys[1] = 0EEFF5CE, dwKeys[2] = 8980DE38, dwKeys[3] = D8440189;-[0]=11C359D4,[1]=2EDA0B4C,[2]=DD8555E8,[3]=711AE0AA; +SETKEY:dwKeys[0] = 52F04339, dwKeys[1] = FDD1CA46, dwKeys[2] = 03609CA8, dwKeys[3] = AD7BD9C9;-[0]=BAC99950,[1]=85D0CBC8,[2]=768F956C,[3]=DA10202E; +SETKEY:dwKeys[0] = 3F19A217, dwKeys[1] = 812B38F1, dwKeys[2] = 4BA8662D, dwKeys[3] = BBF366B8;-[0]=5CE8B2E0,[1]=63F1E078,[2]=90AEBEDC,[3]=3C310B9E; +SETKEY:dwKeys[0] = CD9F8CC4, dwKeys[1] = 09D78D14, dwKeys[2] = 227843D8, dwKeys[3] = 16EE1A08;-[0]=71AF58AD,[1]=4EB60A35,[2]=BDE95491,[3]=1176E1D3; +SETKEY:dwKeys[0] = 2E08F113, dwKeys[1] = 8CBDFBFA, dwKeys[2] = ADF01F71, dwKeys[3] = 839C6DDC;-[0]=772962A0,[1]=48303038,[2]=BB6F6E9C,[3]=17F0DBDE; +SETKEY:dwKeys[0] = 904BD6E7, dwKeys[1] = EE52B1F4, dwKeys[2] = 49F64FAB, dwKeys[3] = 88BB95F5;-[0]=23BC651B,[1]=1CA53783,[2]=EFFA6927,[3]=4365DC65; +SETKEY:dwKeys[0] = FA363D3E, dwKeys[1] = E6908B3D, dwKeys[2] = 1A30124A, dwKeys[3] = 80F597C2;-[0]=BEC38AEB,[1]=81DAD873,[2]=728586D7,[3]=DE1A3395; +SETKEY:dwKeys[0] = 1F005C5E, dwKeys[1] = EBAE24EC, dwKeys[2] = AF2D6369, dwKeys[3] = C0EE172E;-[0]=F565A785,[1]=CA7CF51D,[2]=3923ABB9,[3]=95BC1EFB; +SETKEY:dwKeys[0] = D7CB9404, dwKeys[1] = 58BEC9F2, dwKeys[2] = C1F3DAEA, dwKeys[3] = 7FDE3482;-[0]=4B2DA6FC,[1]=7434F464,[2]=876BAAC0,[3]=2BF41F82; +SETKEY:dwKeys[0] = 7302295F, dwKeys[1] = 5C6C81B3, dwKeys[2] = 799B9C5F, dwKeys[3] = 473C3D54;-[0]=B57A5E7D,[1]=8A630CE5,[2]=793C5241,[3]=D5A3E703; +SETKEY:dwKeys[0] = 9FB2F598, dwKeys[1] = 9947E1C4, dwKeys[2] = 0E69C536, dwKeys[3] = D583C39E;-[0]=DB26A08F,[1]=E43FF217,[2]=1760ACB3,[3]=BBFF19F1; +SETKEY:dwKeys[0] = E42F54B9, dwKeys[1] = 6FEDB942, dwKeys[2] = 0797D28E, dwKeys[3] = 4BBD13C6;-[0]=3091BCC8,[1]=0F88EE50,[2]=FCD7B0F4,[3]=504805B6; +SETKEY:dwKeys[0] = 9151CF38, dwKeys[1] = 8AB2EB30, dwKeys[2] = FB44EC48, dwKeys[3] = 1E18D823;-[0]=748238A4,[1]=4B9B6A3C,[2]=B8C43498,[3]=145B81DA; +SETKEY:dwKeys[0] = 121D6EAC, dwKeys[1] = 2D9613C8, dwKeys[2] = 9D24792C, dwKeys[3] = 4B1518C9;-[0]=A923F98F,[1]=963AAB17,[2]=6565F5B3,[3]=C9FA40F1; +SETKEY:dwKeys[0] = 8AC06796, dwKeys[1] = EE9CA8D4, dwKeys[2] = 2646C1D8, dwKeys[3] = FD3C58CD;-[0]=FA5BEEE3,[1]=C542BC7B,[2]=361DE2DF,[3]=9A82579D; +SETKEY:dwKeys[0] = 8B7032EF, dwKeys[1] = 0A3018ED, dwKeys[2] = 440A1237, dwKeys[3] = 48290D3F;-[0]=8FBEAC10,[1]=B0A7FE88,[2]=43F8A02C,[3]=EF67156E; +SETKEY:dwKeys[0] = 38D40214, dwKeys[1] = AC802B02, dwKeys[2] = DAF5DFF8, dwKeys[3] = A42C2180;-[0]=FAB92CEF,[1]=C5A07E77,[2]=36FF20D3,[3]=9A609591; +SETKEY:dwKeys[0] = C626747A, dwKeys[1] = F9A67165, dwKeys[2] = 6A178B76, dwKeys[3] = 04942689;-[0]=9D861477,[1]=A29F46EF,[2]=51C0184B,[3]=FD5FAD09; +SETKEY:dwKeys[0] = 3696F2D6, dwKeys[1] = F6099D6C, dwKeys[2] = 37D84599, dwKeys[3] = B0E58853;-[0]=07E8DECD,[1]=38F18C55,[2]=CBAED2F1,[3]=673167B3; +SETKEY:dwKeys[0] = A869DCAF, dwKeys[1] = 2B3C6B0F, dwKeys[2] = 25436BA3, dwKeys[3] = 7EACF20C;-[0]=8CBA99E7,[1]=B3A3CB7F,[2]=40FC95DB,[3]=EC632099; +SETKEY:dwKeys[0] = 5903BA97, dwKeys[1] = E5413029, dwKeys[2] = 89C1273A, dwKeys[3] = 64A3D906;-[0]=F76066C6,[1]=C879345E,[2]=3B266AFA,[3]=97B9DFB8; +SETKEY:dwKeys[0] = 82B89376, dwKeys[1] = C42CB488, dwKeys[2] = D896C005, dwKeys[3] = 50281F97;-[0]=ECACA12D,[1]=D3B5F3B5,[2]=20EAAD11,[3]=8C751853; +SETKEY:dwKeys[0] = 7A97D0CB, dwKeys[1] = C4707841, dwKeys[2] = D9625087, dwKeys[3] = BD595B2F;-[0]=0554BD69,[1]=3A4DEFF1,[2]=C912B155,[3]=658D0417; +SETKEY:dwKeys[0] = 4461A847, dwKeys[1] = 1BB2610D, dwKeys[2] = F5052644, dwKeys[3] = 6B63F82A;-[0]=D6141DEC,[1]=E90D4F74,[2]=1A5211D0,[3]=B6CDA492; +SETKEY:dwKeys[0] = C0B65D54, dwKeys[1] = 8929E321, dwKeys[2] = 74582A29, dwKeys[3] = 6C353921;-[0]=5152D094,[1]=6E4B820C,[2]=9D14DCA8,[3]=318B69EA; +SETKEY:dwKeys[0] = 0491DA54, dwKeys[1] = B3340636, dwKeys[2] = 965095D4, dwKeys[3] = 7144433B;-[0]=E5E4A713,[1]=DAFDF58B,[2]=29A2AB2F,[3]=853D1E6D; +SETKEY:dwKeys[0] = 5508AA67, dwKeys[1] = B1CF829F, dwKeys[2] = ECA517FE, dwKeys[3] = 8E058AF0;-[0]=717FCB38,[1]=4E6699A0,[2]=BD39C704,[3]=11A67246; +SETKEY:dwKeys[0] = D97C08DB, dwKeys[1] = 4EA35EFE, dwKeys[2] = 3D7E9C6D, dwKeys[3] = 4E0F5347;-[0]=5879E7B0,[1]=6760B528,[2]=943FEB8C,[3]=38A05ECE; +SETKEY:dwKeys[0] = BA2D69E9, dwKeys[1] = DC89217C, dwKeys[2] = 407B06A5, dwKeys[3] = 81907FE7;-[0]=45BEFB63,[1]=7AA7A9FB,[2]=89F8F75F,[3]=2567421D; +SETKEY:dwKeys[0] = FC9B70AC, dwKeys[1] = 8E8EAEB4, dwKeys[2] = 74889D95, dwKeys[3] = ACBD7CFF;-[0]=4D912D9B,[1]=72887F03,[2]=81D721A7,[3]=2D4894E5; +SETKEY:dwKeys[0] = 6C5E4DC4, dwKeys[1] = 62663D3E, dwKeys[2] = B2EBA20F, dwKeys[3] = ECB97FB5;-[0]=133E8F42,[1]=2C27DDDA,[2]=DF78837E,[3]=73E7363C; +SETKEY:dwKeys[0] = E1AE2B42, dwKeys[1] = 4DEEF1F2, dwKeys[2] = 3D41D406, dwKeys[3] = 9F531358;-[0]=C3F6B416,[1]=FCEFE68E,[2]=0FB0B82A,[3]=A32F0D68; +SETKEY:dwKeys[0] = 6C98648D, dwKeys[1] = 228BE904, dwKeys[2] = 9FF5509D, dwKeys[3] = 0E5B1DF5;-[0]=2C7086AA,[1]=1369D432,[2]=E0368A96,[3]=4CA93FD4; +SETKEY:dwKeys[0] = 20EAF346, dwKeys[1] = C028B2E4, dwKeys[2] = 9CB2C2AA, dwKeys[3] = E24DF6EF;-[0]=D4E20A7E,[1]=EBFB58E6,[2]=18A40642,[3]=B43BB300; +SETKEY:dwKeys[0] = 5963C157, dwKeys[1] = 3F69BD68, dwKeys[2] = 3F253778, dwKeys[3] = 94EB9C40;-[0]=4991E4A3,[1]=7688B63B,[2]=85D7E89F,[3]=29485DDD; +SETKEY:dwKeys[0] = 284B5C43, dwKeys[1] = 35E93C01, dwKeys[2] = A70EC115, dwKeys[3] = D354442B;-[0]=B3EE4155,[1]=8CF713CD,[2]=7FA84D69,[3]=D337F82B; +SETKEY:dwKeys[0] = D2DD45BB, dwKeys[1] = 522638D6, dwKeys[2] = 6EEBE040, dwKeys[3] = 459A9225;-[0]=A5923602,[1]=9A8B649A,[2]=69D43A3E,[3]=C54B8F7C; +SETKEY:dwKeys[0] = 35DD3415, dwKeys[1] = 40C63C96, dwKeys[2] = 80A0F199, dwKeys[3] = BEDA84B7;-[0]=FDE02FE8,[1]=C2F97D70,[2]=31A623D4,[3]=9D399696; +SETKEY:dwKeys[0] = 45886FCC, dwKeys[1] = B4372504, dwKeys[2] = C5901D5B, dwKeys[3] = 16F5F0A3;-[0]=F2651ECB,[1]=CD7C4C53,[2]=3E2312F7,[3]=92BCA7B5; +SETKEY:dwKeys[0] = BA025822, dwKeys[1] = 5A214A76, dwKeys[2] = 429533DB, dwKeys[3] = A4CAE763;-[0]=359FAB70,[1]=0A86F9E8,[2]=F9D9A74C,[3]=5546120E; +SETKEY:dwKeys[0] = EE8AD4BF, dwKeys[1] = 7F6DBB3B, dwKeys[2] = 26DF98CD, dwKeys[3] = 07B3A7BA;-[0]=2C549C7A,[1]=134DCEE2,[2]=E0129046,[3]=4C8D2504; +SETKEY:dwKeys[0] = 015E7253, dwKeys[1] = F822B8F5, dwKeys[2] = E9A9DE23, dwKeys[3] = 9C11796A;-[0]=3F04025E,[1]=001D50C6,[2]=F3420E62,[3]=5FDDBB20; +SETKEY:dwKeys[0] = 6886FF40, dwKeys[1] = E2FB6937, dwKeys[2] = 28B0C208, dwKeys[3] = 1B18C1AC;-[0]=38EE1198,[1]=07F74300,[2]=F4A81DA4,[3]=5837A8E6; +SETKEY:dwKeys[0] = 59760FF9, dwKeys[1] = 9DA91911, dwKeys[2] = FF896FA3, dwKeys[3] = 5BC2BE29;-[0]=30458DF0,[1]=0F5CDF68,[2]=FC0381CC,[3]=509C348E; +SETKEY:dwKeys[0] = 7C60C0C8, dwKeys[1] = 3425AD7F, dwKeys[2] = B3EB20D6, dwKeys[3] = 5305B986;-[0]=4941D906,[1]=76588B9E,[2]=8507D53A,[3]=29986078; +SETKEY:dwKeys[0] = 3155C0E2, dwKeys[1] = D3D59F42, dwKeys[2] = ADA6CA86, dwKeys[3] = 2B061CA9;-[0]=0CC41C99,[1]=33DD4E01,[2]=C08210A5,[3]=6C1DA5E7; +SETKEY:dwKeys[0] = 0A51C8EA, dwKeys[1] = 9F91C772, dwKeys[2] = A7D18AAC, dwKeys[3] = 7CD980D6;-[0]=6617C4D4,[1]=590E964C,[2]=AA51C8E8,[3]=06CE7DAA; +SETKEY:dwKeys[0] = ECD0A9BE, dwKeys[1] = 12D45B02, dwKeys[2] = 64AF4CDC, dwKeys[3] = 2C414DB0;-[0]=40CA057C,[1]=7FD357E4,[2]=8C8C0940,[3]=2013BC02; +SETKEY:dwKeys[0] = 8C302212, dwKeys[1] = 0849E603, dwKeys[2] = E01ED10F, dwKeys[3] = 029EBDB4;-[0]=45FD4289,[1]=7AE41011,[2]=89BB4EB5,[3]=2524FBF7; +SETKEY:dwKeys[0] = 49B9E984, dwKeys[1] = 5AA4E3D1, dwKeys[2] = 0B63ADAF, dwKeys[3] = 4D6AC4D6;-[0]=B79574EE,[1]=888C2676,[2]=7BD378D2,[3]=D74CCD90; +SETKEY:dwKeys[0] = 5B0875E4, dwKeys[1] = D03E8117, dwKeys[2] = D5894E2F, dwKeys[3] = 92CB0A7F;-[0]=7AE39F72,[1]=45FACDEA,[2]=B6A5934E,[3]=1A3A260C; +SETKEY:dwKeys[0] = 5AB59403, dwKeys[1] = EDE63BAB, dwKeys[2] = 31A80DC2, dwKeys[3] = C448CCFE;-[0]=BFAC8D08,[1]=80B5DF90,[2]=73EA8134,[3]=DF753476; +SETKEY:dwKeys[0] = 12E3CB5E, dwKeys[1] = 30DC8DFF, dwKeys[2] = E2EE2FB5, dwKeys[3] = FE396757;-[0]=FD6B8CD1,[1]=C272DE49,[2]=312D80ED,[3]=9DB235AF; +SETKEY:dwKeys[0] = 08A715B5, dwKeys[1] = 8389F2E6, dwKeys[2] = 345F00EE, dwKeys[3] = D9473628;-[0]=71C9ECB4,[1]=4ED0BE2C,[2]=BD8FE088,[3]=111055CA; +SETKEY:dwKeys[0] = E3CA2649, dwKeys[1] = FEBF4CD8, dwKeys[2] = 3EC19812, dwKeys[3] = F252F77A;-[0]=41C07EC5,[1]=7ED92C5D,[2]=8D8672F9,[3]=2119C7BB; +SETKEY:dwKeys[0] = 5F32F898, dwKeys[1] = 883B8543, dwKeys[2] = C25C25C8, dwKeys[3] = E16598CE;-[0]=F66E9774,[1]=C977C5EC,[2]=3A289B48,[3]=96B72E0A; +SETKEY:dwKeys[0] = D280915F, dwKeys[1] = F36EE491, dwKeys[2] = 4901B897, dwKeys[3] = D8B2BA99;-[0]=FCD41BD7,[1]=C3CD494F,[2]=309217EB,[3]=9C0DA2A9; +SETKEY:dwKeys[0] = 61CD9FB3, dwKeys[1] = 23D10A4C, dwKeys[2] = F53AFC4A, dwKeys[3] = 6E399FAF;-[0]=988DB621,[1]=A794E4B9,[2]=54CBBA1D,[3]=F8540F5F; +SETKEY:dwKeys[0] = 5BA724F9, dwKeys[1] = 1CC1667E, dwKeys[2] = 1B7337EE, dwKeys[3] = AEF158AA;-[0]=ECAB0BE7,[1]=D3B2597F,[2]=20ED07DB,[3]=8C72B299; +SETKEY:dwKeys[0] = C0F3F124, dwKeys[1] = 418A0FB9, dwKeys[2] = 541CCA51, dwKeys[3] = AA19A31E;-[0]=4A9B8353,[1]=7582D1CB,[2]=86DD8F6F,[3]=2A423A2D; +SETKEY:dwKeys[0] = A193F910, dwKeys[1] = 74EBAF9F, dwKeys[2] = F2B3804E, dwKeys[3] = 1F4118C3;-[0]=837B931F,[1]=BC62C187,[2]=4F3D9F23,[3]=E3A22A61; +SETKEY:dwKeys[0] = 447F2643, dwKeys[1] = 51DA3C87, dwKeys[2] = BD6AAFDC, dwKeys[3] = D3FC4F42;-[0]=626A39BC,[1]=5D736B24,[2]=AE2C3580,[3]=02B380C2; +SETKEY:dwKeys[0] = 9C3169D4, dwKeys[1] = 88BD9258, dwKeys[2] = 89EECA5C, dwKeys[3] = 6C22E38A;-[0]=6343634C,[1]=5C5A31D4,[2]=AF056F70,[3]=039ADA32; +SETKEY:dwKeys[0] = 7F9B92D6, dwKeys[1] = B5E10323, dwKeys[2] = 2FD77F57, dwKeys[3] = E27B8A31;-[0]=28D154D5,[1]=17C8064D,[2]=E49758E9,[3]=4808EDAB; +SETKEY:dwKeys[0] = E41C00AF, dwKeys[1] = 20C0B871, dwKeys[2] = 5A6A2934, dwKeys[3] = CA954FFF;-[0]=4633FBBE,[1]=792AA926,[2]=8A75F782,[3]=26EA42C0; +SETKEY:dwKeys[0] = 88A4987D, dwKeys[1] = BBD49377, dwKeys[2] = 47B90855, dwKeys[3] = 75C90B1D;-[0]=37354A93,[1]=082C180B,[2]=FB7346AF,[3]=57ECF3ED; +SETKEY:dwKeys[0] = 3CF9DFE9, dwKeys[1] = 6FEA0073, dwKeys[2] = F179B318, dwKeys[3] = AAF3F191;-[0]=EC6B6B1C,[1]=D3723984,[2]=202D6720,[3]=8CB2D262; +SETKEY:dwKeys[0] = 33C9A486, dwKeys[1] = 51EAF1FF, dwKeys[2] = 7DAE3719, dwKeys[3] = 2105EC00;-[0]=E551DE5F,[1]=DA488CC7,[2]=2917D263,[3]=85886721; +SETKEY:dwKeys[0] = A7B3A94E, dwKeys[1] = 03160BEF, dwKeys[2] = FCEAAA45, dwKeys[3] = 59D4C052;-[0]=402A2956,[1]=7F337BCE,[2]=8C6C256A,[3]=20F39028; +SETKEY:dwKeys[0] = BA5F3041, dwKeys[1] = D8AED492, dwKeys[2] = 233AA30B, dwKeys[3] = 9147F23F;-[0]=0EEBDC0F,[1]=31F28E97,[2]=C2ADD033,[3]=6E326571; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 00000000, dwKeys[1] = 00000000, dwKeys[2] = 00000000, dwKeys[3] = 00000000;-[0]=0D46614F,[1]=843AE38F,[2]=393DAE7D,[3]=5B58EEA3; +SETKEY:dwKeys[0] = 010C1C01, dwKeys[1] = C983C012, dwKeys[2] = 32D9DB50, dwKeys[3] = EE430E31;-[0]=6E767706,[1]=516F259E,[2]=A2307B3A,[3]=0EAFCE78; +SETKEY:dwKeys[0] = 29DD954E, dwKeys[1] = 77C39CFC, dwKeys[2] = 97ADB620, dwKeys[3] = 07BDE0F7;-[0]=00000000,[1]=00000000,[2]=00000000,[3]=00010053; +SETKEY:dwKeys[0] = DA0D3B72, dwKeys[1] = F732E9EF, dwKeys[2] = 1F39482E, dwKeys[3] = EA3CDDC8;-[0]=C08F64FD,[1]=FF963665,[2]=0CC968C1,[3]=A056DD83; +SETKEY:dwKeys[0] = 71B6409B, dwKeys[1] = 400EC1F4, dwKeys[2] = 01625222, dwKeys[3] = 880324FA;-[0]=6B0BDA64,[1]=541288FC,[2]=A74DD658,[3]=0BD2631A; +SETKEY:dwKeys[0] = C7547FD3, dwKeys[1] = 690BFD7F, dwKeys[2] = A5825A1E, dwKeys[3] = 402CE330;-[0]=A8416D97,[1]=97583F0F,[2]=640761AB,[3]=C898D4E9; +SETKEY:dwKeys[0] = A9B2F690, dwKeys[1] = C4AAE77B, dwKeys[2] = 44CE6CAE, dwKeys[3] = CA3CB8D0;-[0]=E9BF38C8,[1]=D6A66A50,[2]=25F934F4,[3]=896681B6; +SETKEY:dwKeys[0] = E32EBE48, dwKeys[1] = 20565D22, dwKeys[2] = 9E530496, dwKeys[3] = 8242E651;-[0]=761AD64D,[1]=490384D5,[2]=BA5CDA71,[3]=16C36F33; +SETKEY:dwKeys[0] = 96C4A97E, dwKeys[1] = 21CBED08, dwKeys[2] = 59E795DF, dwKeys[3] = B0EE234C;-[0]=40B33299,[1]=7FAA6001,[2]=8CF53EA5,[3]=206A8BE7; +SETKEY:dwKeys[0] = 34B8267B, dwKeys[1] = 94604877, dwKeys[2] = C8F97357, dwKeys[3] = CC245AA6;-[0]=BB9095CC,[1]=8489C754,[2]=77D699F0,[3]=DB492CB2; +SETKEY:dwKeys[0] = 5AFB20F3, dwKeys[1] = EE244847, dwKeys[2] = A62D3836, dwKeys[3] = 4E45360D;-[0]=A22385D1,[1]=9D3AD749,[2]=6E6589ED,[3]=C2FA3CAF; +SETKEY:dwKeys[0] = 40237D76, dwKeys[1] = A929254F, dwKeys[2] = 7D3DC26F, dwKeys[3] = 9BEB7E7F;-[0]=DBEFEB77,[1]=E4F6B9EF,[2]=17A9E74B,[3]=BB365209; +SETKEY:dwKeys[0] = 5D27E65F, dwKeys[1] = 362BBF26, dwKeys[2] = D426E9E6, dwKeys[3] = 568BD5BB;-[0]=6DE020BC,[1]=52F97224,[2]=A1A62C80,[3]=0D3999C2; +SETKEY:dwKeys[0] = 3070C8DF, dwKeys[1] = 7EC467EF, dwKeys[2] = 8F20BBAF, dwKeys[3] = 8444CF26;-[0]=465BB5CB,[1]=7942E753,[2]=8A1DB9F7,[3]=26820CB5; +SETKEY:dwKeys[0] = 779F0EBE, dwKeys[1] = 4212B052, dwKeys[2] = 3E5F5314, dwKeys[3] = 446FAB69;-[0]=2E2A8E56,[1]=1133DCCE,[2]=E26C826A,[3]=4EF33728; +SETKEY:dwKeys[0] = B89D1B47, dwKeys[1] = F7929FF7, dwKeys[2] = DA37E044, dwKeys[3] = 01065175;-[0]=BF4B421B,[1]=80521083,[2]=730D4E27,[3]=DF92FB65; +SETKEY:dwKeys[0] = E4505992, dwKeys[1] = E3CCF808, dwKeys[2] = 111193B7, dwKeys[3] = 2E3B0AA1;-[0]=86ED88EB,[1]=B9F4DA73,[2]=4AAB84D7,[3]=E6343195; +SETKEY:dwKeys[0] = 449A807E, dwKeys[1] = F9734E4C, dwKeys[2] = 82B51E8C, dwKeys[3] = A7742FE7;-[0]=8C814DA6,[1]=B3981F3E,[2]=40C7419A,[3]=EC58F4D8; +SETKEY:dwKeys[0] = DFA9F6B0, dwKeys[1] = 5D5C7E75, dwKeys[2] = ABCC0EBC, dwKeys[3] = E7EB647A;-[0]=CC0AEEAA,[1]=F313BC32,[2]=004CE296,[3]=ACD357D4; +SETKEY:dwKeys[0] = 536406BE, dwKeys[1] = EFB63A31, dwKeys[2] = 50BA3FE8, dwKeys[3] = 87CB27D1;-[0]=EAEC464F,[1]=D5F514D7,[2]=26AA4A73,[3]=8A35FF31; +SETKEY:dwKeys[0] = 591753E8, dwKeys[1] = F7F9BA9C, dwKeys[2] = C3EDDA4B, dwKeys[3] = E041E01F;-[0]=49A25362,[1]=76BB01FA,[2]=85E45F5E,[3]=297BEA1C; +SETKEY:dwKeys[0] = E1C6D9F0, dwKeys[1] = 453289DD, dwKeys[2] = E581ECBD, dwKeys[3] = 2A9C699E;-[0]=5A326009,[1]=652B3291,[2]=96746C35,[3]=3AEBD977; +SETKEY:dwKeys[0] = 01A79C1D, dwKeys[1] = 90C1035F, dwKeys[2] = 1798F5CC, dwKeys[3] = EE08C3F9;-[0]=8F454C0D,[1]=B05C1E95,[2]=43034031,[3]=EF9CF573; +SETKEY:dwKeys[0] = AD681A20, dwKeys[1] = F6AAAE22, dwKeys[2] = 8ADF82A5, dwKeys[3] = A8CCBC0D;-[0]=517BB3AA,[1]=6E62E132,[2]=9D3DBF96,[3]=31A20AD4; +SETKEY:dwKeys[0] = 9D8C1580, dwKeys[1] = 5DDC6536, dwKeys[2] = 6B1DD267, dwKeys[3] = 599AEFE2;-[0]=889B459E,[1]=B7821706,[2]=44DD49A2,[3]=E842FCE0; +SETKEY:dwKeys[0] = 815DFDCB, dwKeys[1] = 3C7A78F2, dwKeys[2] = 7E221009, dwKeys[3] = 1E0E7F58;-[0]=24DD293D,[1]=1BC47BA5,[2]=E89B2501,[3]=44049043; +SETKEY:dwKeys[0] = 456A4388, dwKeys[1] = B737B242, dwKeys[2] = 04851906, dwKeys[3] = CB12B3B8;-[0]=A9A00E49,[1]=96B95CD1,[2]=65E60275,[3]=C979B737; +SETKEY:dwKeys[0] = 09D2F75E, dwKeys[1] = BC121BB1, dwKeys[2] = F209B807, dwKeys[3] = C8DEDDF6;-[0]=701A9F2F,[1]=4F03CDB7,[2]=BC5C9313,[3]=10C32651; +SETKEY:dwKeys[0] = ECA010CB, dwKeys[1] = 2F869580, dwKeys[2] = EE46294A, dwKeys[3] = 3324D58E;-[0]=EEB24044,[1]=D1AB12DC,[2]=22F44C78,[3]=8E6BF93A; +SETKEY:dwKeys[0] = 6BE0231E, dwKeys[1] = AE251EE7, dwKeys[2] = 78CE77EF, dwKeys[3] = B971883B;-[0]=BD2D370E,[1]=82346596,[2]=716B3B32,[3]=DDF48E70; +SETKEY:dwKeys[0] = BEC118A1, dwKeys[1] = 6D365C37, dwKeys[2] = A7FFB2F4, dwKeys[3] = C134B508;-[0]=C7FFA85C,[1]=F8E6FAC4,[2]=0BB9A460,[3]=A7261122; +SETKEY:dwKeys[0] = 3A1EC1BD, dwKeys[1] = 26CE03D4, dwKeys[2] = 022E386A, dwKeys[3] = D6FE7486;-[0]=7359E1FF,[1]=4C40B367,[2]=BF1FEDC3,[3]=13805881; +SETKEY:dwKeys[0] = D9255ACF, dwKeys[1] = 2856AC37, dwKeys[2] = 3D43A324, dwKeys[3] = BD281497;-[0]=B6DADFEF,[1]=89C38D77,[2]=7A9CD3D3,[3]=D6036691; +SETKEY:dwKeys[0] = 3BC267E4, dwKeys[1] = 952DB272, dwKeys[2] = AFA37FC8, dwKeys[3] = 767B3528;-[0]=C30512ED,[1]=FC1C4075,[2]=0F431ED1,[3]=A3DCAB93; +SETKEY:dwKeys[0] = 16E9E2C3, dwKeys[1] = 84E2C8D5, dwKeys[2] = 68AE91F1, dwKeys[3] = 3A33EF81;-[0]=95438BB1,[1]=AA5AD929,[2]=5905878D,[3]=F59A32CF; +SETKEY:dwKeys[0] = 38148D75, dwKeys[1] = F48C56D7, dwKeys[2] = 5D44D78B, dwKeys[3] = CAFBCCFA;-[0]=F0C911E2,[1]=CFD0437A,[2]=3C8F1DDE,[3]=9010A89C; +SETKEY:dwKeys[0] = 0559AEE6, dwKeys[1] = 20D11C03, dwKeys[2] = 331596CD, dwKeys[3] = A82558BD;-[0]=7FA7AA4D,[1]=40BEF8D5,[2]=B3E1A671,[3]=1F7E1333; +SETKEY:dwKeys[0] = BB6408E8, dwKeys[1] = AF51347F, dwKeys[2] = EB251851, dwKeys[3] = 692C8AD6;-[0]=1D0CD64B,[1]=221584D3,[2]=D14ADA77,[3]=7DD56F35; +SETKEY:dwKeys[0] = FCB836B9, dwKeys[1] = 5636D2F4, dwKeys[2] = 433A9B0D, dwKeys[3] = 442FF05B;-[0]=C376B894,[1]=FC6FEA0C,[2]=0F30B4A8,[3]=A3AF01EA; +SETKEY:dwKeys[0] = 4CD9C280, dwKeys[1] = 696005E9, dwKeys[2] = 4A7C9A8F, dwKeys[3] = 5DAC642E;-[0]=9E3B0FD0,[1]=A1225D48,[2]=527D03EC,[3]=FEE2B6AE; +SETKEY:dwKeys[0] = 591580FA, dwKeys[1] = 2B0E0E59, dwKeys[2] = DDFCDEDD, dwKeys[3] = F5D070CC;-[0]=D0390D35,[1]=EF205FAD,[2]=1C7F0109,[3]=B0E0B44B; +SETKEY:dwKeys[0] = CA50873F, dwKeys[1] = A39FFAAF, dwKeys[2] = 0A0E7F79, dwKeys[3] = 29F2C457;-[0]=4BC4BDCD,[1]=74DDEF55,[2]=8782B1F1,[3]=2B1D04B3; +SETKEY:dwKeys[0] = 287C2A69, dwKeys[1] = 70771142, dwKeys[2] = B4774666, dwKeys[3] = 59EE68E6;-[0]=717DC2B1,[1]=4E649029,[2]=BD3BCE8D,[3]=11A47BCF; +SETKEY:dwKeys[0] = 4F37A5DE, dwKeys[1] = 02AD686F, dwKeys[2] = BAA1A7D8, dwKeys[3] = F36CFD5A;-[0]=759721EC,[1]=4A8E7374,[2]=B9D12DD0,[3]=154E9892; +SETKEY:dwKeys[0] = A0EB54FB, dwKeys[1] = CDF4756E, dwKeys[2] = 63C248FB, dwKeys[3] = B1015801;-[0]=AD31C4F0,[1]=92289668,[2]=6177C8CC,[3]=CDE87D8E; +SETKEY:dwKeys[0] = 9BD3561E, dwKeys[1] = 48FF4C9C, dwKeys[2] = EA6C94E4, dwKeys[3] = 6BA27C18;-[0]=EFF79FFE,[1]=D0EECD66,[2]=23B193C2,[3]=8F2E2680; +SETKEY:dwKeys[0] = 7D90BA6B, dwKeys[1] = AB0FD351, dwKeys[2] = D5D1D936, dwKeys[3] = 31CCB5E6;-[0]=0DBE1B0A,[1]=32A74992,[2]=C1F81736,[3]=6D67A274; +SETKEY:dwKeys[0] = 8B9E7FBD, dwKeys[1] = AF8884D7, dwKeys[2] = CCF83D1C, dwKeys[3] = 27B5A61C;-[0]=C9CAC089,[1]=F6D39211,[2]=058CCCB5,[3]=A91379F7; +SETKEY:dwKeys[0] = BEAE6781, dwKeys[1] = DE15F6D4, dwKeys[2] = 7404077A, dwKeys[3] = 7C1AD20F;-[0]=86A884ED,[1]=B9B1D675,[2]=4AEE88D1,[3]=E6713D93; +SETKEY:dwKeys[0] = 20CC9642, dwKeys[1] = 5FE38593, dwKeys[2] = 0473B47A, dwKeys[3] = A8789CB3;-[0]=6EA1F642,[1]=51B8A4DA,[2]=A2E7FA7E,[3]=0E784F3C; +SETKEY:dwKeys[0] = 995186A3, dwKeys[1] = 21B9FFB2, dwKeys[2] = B01AA6A9, dwKeys[3] = F524C935;-[0]=F14456C3,[1]=CE5D045B,[2]=3D025AFF,[3]=919DEFBD; +SETKEY:dwKeys[0] = A64DBBAA, dwKeys[1] = B8DB1066, dwKeys[2] = 85FC8C25, dwKeys[3] = DC27B9BD;-[0]=E211A73D,[1]=DD08F5A5,[2]=2E57AB01,[3]=82C81E43; +SETKEY:dwKeys[0] = A334CF36, dwKeys[1] = C4ABF0B8, dwKeys[2] = C86A281D, dwKeys[3] = FF7B8FA0;-[0]=E7CFDD6D,[1]=D8D68FF5,[2]=2B89D151,[3]=87166413; +SETKEY:dwKeys[0] = 88D7E1DD, dwKeys[1] = 0B1C2C2B, dwKeys[2] = 255CCC61, dwKeys[3] = D08949E1;-[0]=767B22C6,[1]=4962705E,[2]=BA3D2EFA,[3]=16A29BB8; +SETKEY:dwKeys[0] = D13F89FE, dwKeys[1] = A0AA0B6C, dwKeys[2] = EA108CF8, dwKeys[3] = D2D7728F;-[0]=65E0A6C2,[1]=5AF9F45A,[2]=A9A6AAFE,[3]=05391FBC; +SETKEY:dwKeys[0] = 1C9440F4, dwKeys[1] = 1F79AD77, dwKeys[2] = 37019363, dwKeys[3] = 35A04906;-[0]=29FAA82E,[1]=16E3FAB6,[2]=E5BCA412,[3]=49231150; +SETKEY:dwKeys[0] = F4963029, dwKeys[1] = 8EC62B2C, dwKeys[2] = 988E26D9, dwKeys[3] = E48D0681;-[0]=293F4DA2,[1]=16261F3A,[2]=E579419E,[3]=49E6F4DC; +SETKEY:dwKeys[0] = 395E10D0, dwKeys[1] = 4F52EF52, dwKeys[2] = AB1EBBC3, dwKeys[3] = 75A269E2;-[0]=D8F94DE1,[1]=E7E01F79,[2]=14BF41DD,[3]=B820F49F; +SETKEY:dwKeys[0] = F30CE6BB, dwKeys[1] = 3AFBEB99, dwKeys[2] = EE710487, dwKeys[3] = 0B9BEAF5;-[0]=7878DF0C,[1]=47618D94,[2]=B43ED330,[3]=18A16672; +SETKEY:dwKeys[0] = 294C1F01, dwKeys[1] = D654498F, dwKeys[2] = 2509F144, dwKeys[3] = 51368111;-[0]=7E0CC07F,[1]=411592E7,[2]=B24ACC43,[3]=1ED57901; +SETKEY:dwKeys[0] = C6217780, dwKeys[1] = 27A69091, dwKeys[2] = 7052C66D, dwKeys[3] = 6A298E89;-[0]=D311095A,[1]=EC085BC2,[2]=1F570566,[3]=B3C8B024; +SETKEY:dwKeys[0] = F9620EE0, dwKeys[1] = 91A83C7D, dwKeys[2] = D72AE54A, dwKeys[3] = 0159F309;-[0]=B82A6665,[1]=873334FD,[2]=746C6A59,[3]=D8F3DF1B; +SETKEY:dwKeys[0] = 23B4AED1, dwKeys[1] = 8DBB5B90, dwKeys[2] = 63366F35, dwKeys[3] = B3AFF5AA;-[0]=A8135D1D,[1]=970A0F85,[2]=64555121,[3]=C8CAE463; +SETKEY:dwKeys[0] = 9DEC2DC1, dwKeys[1] = AFCD22D4, dwKeys[2] = 68E712AE, dwKeys[3] = CA21DBBC;-[0]=3D09C4AC,[1]=02109634,[2]=F14FC890,[3]=5DD07DD2; +SETKEY:dwKeys[0] = 492FA3E0, dwKeys[1] = CEE637D4, dwKeys[2] = 9D4C7E47, dwKeys[3] = 54C88FCF;-[0]=596DF2E4,[1]=6674A07C,[2]=952BFED8,[3]=39B44B9A; +SETKEY:dwKeys[0] = F5AE3D48, dwKeys[1] = 021B7B40, dwKeys[2] = 40EC0A36, dwKeys[3] = 56022CE3;-[0]=C68A86C4,[1]=F993D45C,[2]=0ACC8AF8,[3]=A6533FBA; +SETKEY:dwKeys[0] = DAFF06D3, dwKeys[1] = 9AA03D87, dwKeys[2] = BFA49528, dwKeys[3] = CC40DEBD;-[0]=79C0C39B,[1]=46D99103,[2]=B586CFA7,[3]=19197AE5; +SETKEY:dwKeys[0] = A01A0828, dwKeys[1] = 60FA1A09, dwKeys[2] = 5071AEFA, dwKeys[3] = FC91BAA1;-[0]=448F4214,[1]=7B96108C,[2]=88C94E28,[3]=2456FB6A; +SETKEY:dwKeys[0] = 982ED023, dwKeys[1] = 5F299695, dwKeys[2] = C07EA4B6, dwKeys[3] = 3611ABFC;-[0]=921EEE0A,[1]=AD07BC92,[2]=5E58E236,[3]=F2C75774; +SETKEY:dwKeys[0] = 024867D9, dwKeys[1] = EB385C63, dwKeys[2] = EB4FCC4D, dwKeys[3] = F35416E6;-[0]=16BB851B,[1]=29A2D783,[2]=DAFD8927,[3]=76623C65; +SETKEY:dwKeys[0] = 6F0DD270, dwKeys[1] = D18D19FE, dwKeys[2] = D918408F, dwKeys[3] = 8443314E;-[0]=9132420D,[1]=AE2B1095,[2]=5D744E31,[3]=F1EBFB73; +SETKEY:dwKeys[0] = E4E386DB, dwKeys[1] = C359482D, dwKeys[2] = 3AFE8CD4, dwKeys[3] = E1A78FBC;-[0]=407A4733,[1]=7F6315AB,[2]=8C3C4B0F,[3]=20A3FE4D; +SETKEY:dwKeys[0] = 6F7F6554, dwKeys[1] = DE90DAE0, dwKeys[2] = A40951E7, dwKeys[3] = AF101F51;-[0]=ED13FA8B,[1]=D20AA813,[2]=2155F6B7,[3]=8DCA43F5; +SETKEY:dwKeys[0] = B609CE50, dwKeys[1] = ECF723E4, dwKeys[2] = E7F6039B, dwKeys[3] = 7DDD135E;-[0]=C6F68CCE,[1]=F9EFDE56,[2]=0AB080F2,[3]=A62F35B0; +SETKEY:dwKeys[0] = FC418EAC, dwKeys[1] = 16BAEB5D, dwKeys[2] = 4BF9E3E6, dwKeys[3] = 78347096;-[0]=DFCBE15E,[1]=E0D2B3C6,[2]=138DED62,[3]=BF125820; +SETKEY:dwKeys[0] = 037763E1, dwKeys[1] = 1570FE55, dwKeys[2] = 87244678, dwKeys[3] = 4A50F9F8;-[0]=53FEA6EB,[1]=6CE7F473,[2]=9FB8AAD7,[3]=33271F95; +SETKEY:dwKeys[0] = 97E7D13B, dwKeys[1] = EFAC3E28, dwKeys[2] = DDEF2261, dwKeys[3] = B05D3A45;-[0]=01BD6B9C,[1]=3EA43904,[2]=CDFB67A0,[3]=6164D2E2; +SETKEY:dwKeys[0] = F4F5BF26, dwKeys[1] = 04F358CE, dwKeys[2] = 335BFA84, dwKeys[3] = F0537EB8;-[0]=5949842D,[1]=6650D6B5,[2]=950F8811,[3]=39903D53; +SETKEY:dwKeys[0] = EB9BD955, dwKeys[1] = EFB6BAD6, dwKeys[2] = 0C7F434A, dwKeys[3] = 3F55CDF9;-[0]=673C1F3D,[1]=58254DA5,[2]=AB7A1301,[3]=07E5A643; +SETKEY:dwKeys[0] = 7674F4D9, dwKeys[1] = BDD9D76B, dwKeys[2] = 65ECC738, dwKeys[3] = 330274D2;-[0]=616D26D3,[1]=5E74744B,[2]=AD2B2AEF,[3]=01B49FAD; +SETKEY:dwKeys[0] = A571A90A, dwKeys[1] = 54867FE1, dwKeys[2] = D48C82E0, dwKeys[3] = D2E8E37C;-[0]=CE4C1236,[1]=F15540AE,[2]=020A1E0A,[3]=AE95AB48; +SETKEY:dwKeys[0] = 2110F9C5, dwKeys[1] = 3F37C453, dwKeys[2] = A09245C5, dwKeys[3] = 5D52A609;-[0]=F6BE036D,[1]=C9A751F5,[2]=3AF80F51,[3]=9667BA13; +SETKEY:dwKeys[0] = 1ED2DC07, dwKeys[1] = 759FE0F9, dwKeys[2] = F57AFFCE, dwKeys[3] = F52ECE54;-[0]=B014E4F2,[1]=8F0DB66A,[2]=7C52E8CE,[3]=D0CD5D8C; +SETKEY:dwKeys[0] = 0F3A5EB3, dwKeys[1] = 34DFEA1C, dwKeys[2] = 8B1E0B01, dwKeys[3] = A1A042AF;-[0]=B1C85139,[1]=8ED103A1,[2]=7D8E5D05,[3]=D111E847; +SETKEY:dwKeys[0] = 1E760082, dwKeys[1] = CCD0F9FF, dwKeys[2] = FE25A996, dwKeys[3] = D5096CAD;-[0]=20C9CC3F,[1]=1FD09EA7,[2]=EC8FC003,[3]=40107541; +SETKEY:dwKeys[0] = EA00748C, dwKeys[1] = DCAFCD75, dwKeys[2] = 2CC27E88, dwKeys[3] = F16523F5;-[0]=EC7A6B06,[1]=D363399E,[2]=203C673A,[3]=8CA3D278; +SETKEY:dwKeys[0] = D7DD957E, dwKeys[1] = 59E2C1CE, dwKeys[2] = CC2293A5, dwKeys[3] = 7EE64535;-[0]=42077F96,[1]=7D1E2D0E,[2]=8E4173AA,[3]=22DEC6E8; +SETKEY:dwKeys[0] = 0FB6CA01, dwKeys[1] = 89EAD7AB, dwKeys[2] = 4C76EA96, dwKeys[3] = 7ADF34F7;-[0]=CE9CB6D1,[1]=F185E449,[2]=02DABAED,[3]=AE450FAF; +SETKEY:dwKeys[0] = 180C3997, dwKeys[1] = B57B72A0, dwKeys[2] = E6967401, dwKeys[3] = 69B0B47F;-[0]=5A6F758A,[1]=65762712,[2]=962979B6,[3]=3AB6CCF4; +SETKEY:dwKeys[0] = 9FF80C5D, dwKeys[1] = B070765A, dwKeys[2] = 82B57161, dwKeys[3] = AB91FE73;-[0]=7CB4AC30,[1]=43ADFEA8,[2]=B0F2A00C,[3]=1C6D154E; +SETKEY:dwKeys[0] = B90B998C, dwKeys[1] = 1DC14CB7, dwKeys[2] = 31F7EDB9, dwKeys[3] = 090DF00D;-[0]=02C6B7F7,[1]=3DDFE56F,[2]=CE80BBCB,[3]=621F0E89; +SETKEY:dwKeys[0] = ABD8AD44, dwKeys[1] = 0460A40A, dwKeys[2] = 9E82CC01, dwKeys[3] = C0167457;-[0]=5FA26E35,[1]=60BB3CAD,[2]=93E46209,[3]=3F7BD74B; +SETKEY:dwKeys[0] = 5D531A3C, dwKeys[1] = 216AE745, dwKeys[2] = 3B275E58, dwKeys[3] = EB226ED6;-[0]=C36CE09C,[1]=FC75B204,[2]=0F2AECA0,[3]=A3B559E2; +SETKEY:dwKeys[0] = AFEBB553, dwKeys[1] = ACC90216, dwKeys[2] = E720D14D, dwKeys[3] = F183B507;-[0]=46C40AA7,[1]=79DD583F,[2]=8A82069B,[3]=261DB3D9; +SETKEY:dwKeys[0] = 80E1CB48, dwKeys[1] = C8AAB900, dwKeys[2] = 4D8BA7B5, dwKeys[3] = 43010A3A;-[0]=91079C46,[1]=AE1ECEDE,[2]=5D41907A,[3]=F1DE2538; +SETKEY:dwKeys[0] = A18A253C, dwKeys[1] = F83199FA, dwKeys[2] = 8AAF320A, dwKeys[3] = 2422F777;-[0]=B8377014,[1]=872E228C,[2]=74717C28,[3]=D8EEC96A; +SETKEY:dwKeys[0] = 075E65E2, dwKeys[1] = 0C8F31ED, dwKeys[2] = 17511ABD, dwKeys[3] = E3F3DE81;-[0]=0B29D54E,[1]=343087D6,[2]=C76FD972,[3]=6BF06C30; +SETKEY:dwKeys[0] = 1939AD60, dwKeys[1] = CAD1323A, dwKeys[2] = BA6F1A91, dwKeys[3] = 2893B5FF;-[0]=600DD718,[1]=5F148580,[2]=AC4BDB24,[3]=00D46E66; +SETKEY:dwKeys[0] = 812B9592, dwKeys[1] = 2387E00D, dwKeys[2] = 3CEF59A0, dwKeys[3] = 5FF8B6FB;-[0]=9EE39705,[1]=A1FAC59D,[2]=52A59B39,[3]=FE3A2E7B; +SETKEY:dwKeys[0] = CDDDF62D, dwKeys[1] = 657957AF, dwKeys[2] = 5FE043CD, dwKeys[3] = 6FDD8737;-[0]=A6FF8188,[1]=99E6D310,[2]=6AB98DB4,[3]=C62638F6; +SETKEY:dwKeys[0] = BE7D3FC0, dwKeys[1] = ED7E1A65, dwKeys[2] = 160FD753, dwKeys[3] = 6E432787;-[0]=08971773,[1]=378E45EB,[2]=C4D11B4F,[3]=684EAE0D; +SETKEY:dwKeys[0] = 6C685042, dwKeys[1] = 5C3856F4, dwKeys[2] = F8AAFAE1, dwKeys[3] = 1E612CCE;-[0]=5A698408,[1]=6570D690,[2]=962F8834,[3]=3AB03D76; +SETKEY:dwKeys[0] = 35594516, dwKeys[1] = 39FA6B9B, dwKeys[2] = 94831C4C, dwKeys[3] = A23C3A7D;-[0]=AE7E5410,[1]=91670688,[2]=6238582C,[3]=CEA7ED6E; +SETKEY:dwKeys[0] = 17F7BDD2, dwKeys[1] = 38675459, dwKeys[2] = F511B356, dwKeys[3] = 4F820DA6;-[0]=00E073A6,[1]=3FF9213E,[2]=CCA67F9A,[3]=6039CAD8; +SETKEY:dwKeys[0] = B1643C3F, dwKeys[1] = 00EC1FBD, dwKeys[2] = D68C172A, dwKeys[3] = 83A53D9B;-[0]=5E0DC057,[1]=611492CF,[2]=924BCC6B,[3]=3ED47929; +SETKEY:dwKeys[0] = D964DDBD, dwKeys[1] = ED1FDAC6, dwKeys[2] = 2B02DED2, dwKeys[3] = 02C8A1B4;-[0]=0C839E30,[1]=339ACCA8,[2]=C0C5920C,[3]=6C5A274E; +SETKEY:dwKeys[0] = 83A44AE0, dwKeys[1] = 7FC9401B, dwKeys[2] = 66311D62, dwKeys[3] = A6E5A7BF;-[0]=5A711860,[1]=65684AF8,[2]=9637145C,[3]=3AA8A11E; +SETKEY:dwKeys[0] = 0139EE6B, dwKeys[1] = 8059A24A, dwKeys[2] = 55DF9700, dwKeys[3] = 7F9175D8;-[0]=17F59AAE,[1]=28ECC836,[2]=DBB39692,[3]=772C23D0; +SETKEY:dwKeys[0] = A3AA6ADC, dwKeys[1] = C091D4DB, dwKeys[2] = 7F4AFBFF, dwKeys[3] = AE376D10;-[0]=C9C8BEB9,[1]=F6D1EC21,[2]=058EB285,[3]=A91107C7; +SETKEY:dwKeys[0] = 0565B779, dwKeys[1] = EB383A5B, dwKeys[2] = 648E1F0C, dwKeys[3] = 02ABAE8F;-[0]=1C9492E2,[1]=238DC07A,[2]=D0D29EDE,[3]=7C4D2B9C; +SETKEY:dwKeys[0] = BA5FBEB1, dwKeys[1] = 77091B6B, dwKeys[2] = 10FB9A73, dwKeys[3] = 41EDA171;-[0]=9C04E79F,[1]=A31DB507,[2]=5042EBA3,[3]=FCDD5EE1; +SETKEY:dwKeys[0] = 921CFC4D, dwKeys[1] = 22A30F6E, dwKeys[2] = 0855431D, dwKeys[3] = 45F3E45F;-[0]=C3E0F37E,[1]=FCF9A1E6,[2]=0FA6FF42,[3]=A3394A00; +SETKEY:dwKeys[0] = 847EDB0D, dwKeys[1] = FE57DD96, dwKeys[2] = 2CEC4224, dwKeys[3] = 5CFEA1AB;-[0]=D94CC675,[1]=E65594ED,[2]=150ACA49,[3]=B9957F0B; +SETKEY:dwKeys[0] = 0000F86F, dwKeys[1] = 9C7792B2, dwKeys[2] = 4BA09236, dwKeys[3] = E8F04C4C;-[0]=07524B2F,[1]=384B19B7,[2]=CB144713,[3]=678BF251; +SETKEY:dwKeys[0] = EEAC32D9, dwKeys[1] = D129E770, dwKeys[2] = 5D21ACF7, dwKeys[3] = 6BCF54C8;-[0]=77070907,[1]=481E5B9F,[2]=BB41053B,[3]=17DEB079; +SETKEY:dwKeys[0] = ACDDDD9E, dwKeys[1] = B5167D04, dwKeys[2] = F07C6B7C, dwKeys[3] = 76E5C5B5;-[0]=99AA3C1A,[1]=A6B36E82,[2]=55EC3026,[3]=F9738564; +SETKEY:dwKeys[0] = 8F50A410, dwKeys[1] = 70E79E27, dwKeys[2] = 52EC246A, dwKeys[3] = D33FFDF7;-[0]=CE1DAFC7,[1]=F104FD5F,[2]=025BA3FB,[3]=AEC416B9; +SETKEY:dwKeys[0] = 3E15F0B1, dwKeys[1] = 92B7332A, dwKeys[2] = 25CEE3D3, dwKeys[3] = 18DA89BF;-[0]=44C9200E,[1]=7BD07296,[2]=888F2C32,[3]=24109970; +SETKEY:dwKeys[0] = D4CBB0B1, dwKeys[1] = 7AF7A14C, dwKeys[2] = 9852F88F, dwKeys[3] = DA1A8701;-[0]=1F30DD7A,[1]=20298FE2,[2]=D376D146,[3]=7FE96404; +SETKEY:dwKeys[0] = 9976B91D, dwKeys[1] = 789679A5, dwKeys[2] = D7F827F7, dwKeys[3] = 3744AB3D;-[0]=C17ADFAF,[1]=FE638D37,[2]=0D3CD393,[3]=A1A366D1; +SETKEY:dwKeys[0] = F1D4DD6E, dwKeys[1] = 3EA22346, dwKeys[2] = A14F54CC, dwKeys[3] = 83C40674;-[0]=5B6A5916,[1]=64730B8E,[2]=972C552A,[3]=3BB3E068; +SETKEY:dwKeys[0] = C724A9F3, dwKeys[1] = B96725B5, dwKeys[2] = 7B1BE518, dwKeys[3] = 21F406AB;-[0]=E2CE3E24,[1]=DDD76CBC,[2]=2E883218,[3]=8217875A; +SETKEY:dwKeys[0] = D0294EFF, dwKeys[1] = 97443B52, dwKeys[2] = D94E588E, dwKeys[3] = 1B52E6EE;-[0]=81454B24,[1]=BE5C19BC,[2]=4D034718,[3]=E19CF25A; +SETKEY:dwKeys[0] = E1B284AE, dwKeys[1] = 10F273D1, dwKeys[2] = EA692EE0, dwKeys[3] = FE1F8F47;-[0]=E02C297C,[1]=DF357BE4,[2]=2C6A2540,[3]=80F59002; +SETKEY:dwKeys[0] = 3759607E, dwKeys[1] = D75F425F, dwKeys[2] = F402846A, dwKeys[3] = 7380C265;-[0]=C504A69C,[1]=FA1DF404,[2]=0942AAA0,[3]=A5DD1FE2; +SETKEY:dwKeys[0] = 927CCB24, dwKeys[1] = 68BFB02E, dwKeys[2] = C03109F8, dwKeys[3] = BC3DDD6D;-[0]=70045EF2,[1]=4F1D0C6A,[2]=BC4252CE,[3]=10DDE78C; +SETKEY:dwKeys[0] = 6D561FDE, dwKeys[1] = 63E86DEC, dwKeys[2] = 3FBCF285, dwKeys[3] = D088D3BD;-[0]=3D03A68E,[1]=021AF416,[2]=F145AAB2,[3]=5DDA1FF0; +SETKEY:dwKeys[0] = C3263DDA, dwKeys[1] = 49EED966, dwKeys[2] = EC4FD8C7, dwKeys[3] = DA666E6F;-[0]=45A98B5F,[1]=7AB0D9C7,[2]=89EF8763,[3]=25703221; +SETKEY:dwKeys[0] = B8320B6B, dwKeys[1] = 66CF8DF9, dwKeys[2] = 0A46348D, dwKeys[3] = ABAF8B7C;-[0]=9F9A6993,[1]=A0833B0B,[2]=53DC65AF,[3]=FF43D0ED; +SETKEY:dwKeys[0] = 956CF067, dwKeys[1] = 189DB176, dwKeys[2] = 3A8A565A, dwKeys[3] = 69C47259;-[0]=3BCCD5C2,[1]=04D5875A,[2]=F78AD9FE,[3]=5B156CBC; +SETKEY:dwKeys[0] = 039D0298, dwKeys[1] = A71D8995, dwKeys[2] = E22650C7, dwKeys[3] = 3302D68B;-[0]=59926940,[1]=668B3BD8,[2]=95D4657C,[3]=394BD03E; +SETKEY:dwKeys[0] = 691E1D70, dwKeys[1] = 7FA6C59A, dwKeys[2] = 35E78BE6, dwKeys[3] = 699C380D;-[0]=3CB87C69,[1]=03A12EF1,[2]=F0FE7055,[3]=5C61C517; +SETKEY:dwKeys[0] = 905E787B, dwKeys[1] = F090E42E, dwKeys[2] = 847DE640, dwKeys[3] = A6D273ED;-[0]=C6059D83,[1]=F91CCF1B,[2]=0A4391BF,[3]=A6DC24FD; +SETKEY:dwKeys[0] = B25A9F9A, dwKeys[1] = E74EECD3, dwKeys[2] = 321B831E, dwKeys[3] = 1AE384E3;-[0]=F4464E41,[1]=CB5F1CD9,[2]=3800427D,[3]=949FF73F; +SETKEY:dwKeys[0] = 79CE9CFE, dwKeys[1] = EDC6A313, dwKeys[2] = 1D0D7C1F, dwKeys[3] = A21BB623;-[0]=B42F56D0,[1]=8B360448,[2]=78695AEC,[3]=D4F6EFAE; +SETKEY:dwKeys[0] = D865C19B, dwKeys[1] = E0970903, dwKeys[2] = DB27E95C, dwKeys[3] = AE032B83;-[0]=DD47C65B,[1]=E25E94C3,[2]=1101CA67,[3]=BD9E7F25; +SETKEY:dwKeys[0] = E1D45259, dwKeys[1] = 83CFE345, dwKeys[2] = D1D2A229, dwKeys[3] = 059E0632;-[0]=F2B801D1,[1]=CDA15349,[2]=3EFE0DED,[3]=9261B8AF; +SETKEY:dwKeys[0] = B36062B9, dwKeys[1] = 94336867, dwKeys[2] = A10EA31E, dwKeys[3] = 48580180;-[0]=717491F1,[1]=4E6DC369,[2]=BD329DCD,[3]=11AD288F; +SETKEY:dwKeys[0] = A68607E0, dwKeys[1] = 3B689B3B, dwKeys[2] = FBB698B2, dwKeys[3] = E97FCBDD;-[0]=980C598C,[1]=A7150B14,[2]=544A55B0,[3]=F8D5E0F2; +SETKEY:dwKeys[0] = 2699188B, dwKeys[1] = 1EAA6F7E, dwKeys[2] = 4A9D6CC7, dwKeys[3] = AB62DF21;-[0]=57CA617E,[1]=68D333E6,[2]=9B8C6D42,[3]=3713D800; +SETKEY:dwKeys[0] = 5103CD44, dwKeys[1] = ECAF9219, dwKeys[2] = E8DE800E, dwKeys[3] = 21716BFF;-[0]=B2D183EE,[1]=8DC8D176,[2]=7E978FD2,[3]=D2083A90; +SETKEY:dwKeys[0] = E77832A4, dwKeys[1] = FA7010EF, dwKeys[2] = 3D2A0B0F, dwKeys[3] = 8627046E;-[0]=D7050BC5,[1]=E81C595D,[2]=1B4307F9,[3]=B7DCB2BB; +SETKEY:dwKeys[0] = B545C76D, dwKeys[1] = EE5F4CFC, dwKeys[2] = 38C50CE6, dwKeys[3] = 46136CA7;-[0]=97355211,[1]=A82C0089,[2]=5B735E2D,[3]=F7ECEB6F; +SETKEY:dwKeys[0] = B6AF7CED, dwKeys[1] = 2F4C7D6F, dwKeys[2] = 160D8A07, dwKeys[3] = 49114AEC;-[0]=B2C4F290,[1]=8DDDA008,[2]=7E82FEAC,[3]=D21D4BEE; +SETKEY:dwKeys[0] = 61CA617C, dwKeys[1] = E32F7D71, dwKeys[2] = 4379EFEC, dwKeys[3] = C79022AC;-[0]=F80CCC55,[1]=C7159ECD,[2]=344AC069,[3]=98D5752B; +SETKEY:dwKeys[0] = 7597FB64, dwKeys[1] = CF1C9F6F, dwKeys[2] = F87F4FD9, dwKeys[3] = B3D4F933;-[0]=7BEE350F,[1]=44F76797,[2]=B7A83933,[3]=1B378C71; +SETKEY:dwKeys[0] = BC2B09E4, dwKeys[1] = 256ABD2E, dwKeys[2] = 578D0A56, dwKeys[3] = DC856DAF;-[0]=6527A491,[1]=5A3EF609,[2]=A961A8AD,[3]=05FE1DEF; diff --git a/docs/corrector-2.fsc b/docs/corrector-2.fsc new file mode 100644 index 0000000..61c3561 --- /dev/null +++ b/docs/corrector-2.fsc @@ -0,0 +1,197 @@ +// corrector-3.fsc CT2.2 version +// ne?eio aey aiiieieoaeuiiai [aa]eiae?iaaiey ID enoiayueo iaeaoia aaeina?aa?a +// a ianoiyuaa a?aiy, ii aeaeiiio, io?ai oieuei aey ioa. +// Aaoiii?aaaeaiea LA2 aie?ii auou AEE??AII. +// + +var + +_seed : integer; // random generator seed for mixing id tables +_1_byte_table : string; +_2_byte_table : string; +_2_byte_table_size: integer; +_id_mix : boolean; + + +temp_seed : integer; +CharName : string; + +Procedure OnCreate; +begin + + _id_mix := false; + +end; + +procedure _pseudo_srand(seed : integer); +begin + _seed := seed; +end; + +function _pseudo_rand: integer; +var + a : integer; +begin + a := (Int64(_seed) * $343fd + $269EC3) and $FFFFFFFF; + _seed := a; + result := (_seed shr $10) and $7FFF; +// writelogln(format('rand = %x; seed = %x',[result, _seed])); +end; + +procedure _init_tables(seed: integer; _2_byte_size: integer); +var + i : integer; + x : byte; + rand_pos : integer; + cur_pos : integer; +begin + + _1_byte_table := ''; + _2_byte_table := ''; + + _2_byte_table_size := _2_byte_size; + + for i := 0 to $D0 do begin + _1_byte_table := _1_byte_table + chr(i); + end; + for i := 0 to _2_byte_size do begin + _2_byte_table := _2_byte_table + chr(i) + #$0; + end; + _pseudo_srand(seed); + for i := 2 to $D1 do begin + rand_pos := (_pseudo_rand mod i) + 1; + x := GInt(_1_byte_table, rand_pos, 1); + PInt(_1_byte_table, GInt(_1_byte_table, i, 1), rand_pos, 1); + PInt(_1_byte_table, x, i, 1); + end; + + cur_pos := 3; + for i := 2 to _2_byte_size+1 do begin + rand_pos := _pseudo_rand mod i; + x := GInt(_2_byte_table, rand_pos * 2 + 1 , 2); + PInt(_2_byte_table, GInt(_2_byte_table, cur_pos, 2), rand_pos * 2 + 1, 2); + PInt(_2_byte_table, x, cur_pos, 2); + cur_pos := cur_pos + 2; + end; + + cur_pos := Pos(#$12, _1_byte_table); + x := GInt(_1_byte_table, $13, 1); + PInt(_1_byte_table, $12, $13, 1); + PInt(_1_byte_table, x, cur_pos, 1); + + cur_pos := Pos(#$B1, _1_byte_table); + x := GInt(_1_byte_table, $B2, 1); + PInt(_1_byte_table, $B1, $B2, 1); + PInt(_1_byte_table, x, cur_pos, 1); + + writelogln('one byte table'); + writeloghexB(_1_byte_table); + writelogln('two byte table'); + writeloghexB(_2_byte_table); + + _id_mix := true; +end; + +procedure _decode_ID(var buff:string); +var + p: integer; +begin +// writelogln(format('changing %x -> %x',[GInt(buff, 3, 1),GInt(_1_byte_table, GInt(buff, 3, 1)+1, 1) ])); + writelogln(format('id changed %x -> %x',[GInt(buff, 3, 1), GInt(_1_byte_table, GInt(buff, 3, 1) + 1, 1)])); + PInt(buff, GInt(_1_byte_table, GInt(buff, 3, 1) + 1, 1) , 3, 1); + if GInt(buff, 3, 1) = $D0 then begin + if GInt(buff, 4, 1) > _2_byte_table_size then begin + writelogln(format('incompatible subID %x detected',[GInt(buff, 4, 1)])); + writelogln('packet - blocked, terminating....'); + gBlockPacket; + gSys.Killself; + end; + writelogln(format('sub id changed %x -> %x',[GInt(buff, 4, 1), GInt(_2_byte_table, GInt(buff, 4, 1) * 2 + 1, 1)] )); + PInt(buff, GInt(_2_byte_table, GInt(buff, 4, 1) * 2 + 1, 1) , 4, 1); + end; +end; + +procedure _encode_ID(var buff:string); +var + p: integer; +begin + if GInt(buff, 3, 1) = $D0 then begin + p:= pos(Chr(GInt(buff, 4, 1)), _2_byte_table); + writelogln(format('changing back subID %x -> %x', [ GInt(buff, 4, 1), ((p + 1) shr 1) - 1 ])); + PInt(buff, ((p + 1) shr 1) - 1, 4, 1); + + end; + p := pos(Chr(GInt(buff, 3, 1)), _1_byte_table); + writelogln(format('changing back ID %x -> %x',[GInt(buff, 3, 1), p-1])); + + PInt(buff, p-1, 3, 1); + + +end; + + + +Procedure OnDeCodeAlt; +begin + if _id_mix and (not _dFromServ) then begin + + _dOutBuff := _dBuff; + _Decode_ID(_dOutBuff); + + end; + +end; + +Procedure OnEnCodeAlt; +begin + + if _id_mix and (not _dFromServ) then begin + + _dOutBuff := _dBuff; + _Encode_ID(_dOutBuff); + + end; + +end; + + + +begin + // CT2.2 einoueu + + if (gSys.TrafType = 2) and (gSys.Protocol = 12) then begin + gSys.Protocol := 871; + if gSys.isGS > 0 then gSys.isGS := 3; + end; + + + // ii?aaaeaiea o?aoeea e onoaiiaea oaaeeo + // ?anoeay i?eaycea e eniieucoaiiio aa?eaioo i?ioieiea + + if _gAbsNumPkt = 2 then begin + + if (gSys.TrafType = 2) and (gSys.isGS = 3) and (Length(_gBuff) = $19) then begin + if gSys.Protocol = 871 then _init_tables(GInt(_dBuff, $16, 4), $58); // CT2.2 + if gSys.Protocol = 851 then _init_tables(GInt(_dBuff, $16, 4), $55); // CT2 + if gSys.Protocol = 831 then _init_tables(GInt(_dBuff, $16, 4), $4E); // CT1.5+ + + + end; +// writelogln(format('TrafType = %d, isGS= %d, Protocol = %d',[gSys.TrafType, gSys.isGS, gSys.Protocol])); + + + end; + + + if _id_mix and (GInt(_gBuff, 3, 1) = $0B) then begin + + ScanPck5(_gBuff, 4, 's-99-99-04d' ,CharName, temp_seed, null, null, null); + writelogln(format('reseting id tables on CharSelected; Seed = %x',[temp_seed])); + _init_tables(temp_seed,_2_byte_table_size); + + end; + + + + +end. \ No newline at end of file diff --git a/docs/corrector-gracia1.fsc b/docs/corrector-gracia1.fsc new file mode 100644 index 0000000..cc9cbcb --- /dev/null +++ b/docs/corrector-gracia1.fsc @@ -0,0 +1,190 @@ +// corrector-3.fsc ñêðèïò äëÿ äîïîëíèòåëüíîãî [äå]êîäèðîâàíèÿ ID èñõîäÿùèõ ïàêåòîâ ãåéìñåðâåðà +// â íàñòîÿùåå âðåìÿ, ïî âèäèìîìó, íóæåí òîëüêî äëÿ îôà. +// Àâòîîïðåäåëåíèå LA2 äîëæíî áûòü ÂÊËÞ×ÅÍÎ. +// + +var + +_seed : integer; // random generator seed for mixing id tables +_1_byte_table : string; +_2_byte_table : string; +_2_byte_table_size: integer; +_id_mix : boolean; + + +temp_seed : integer; +CharName : string; + +Procedure OnCreate; +begin + + _id_mix := false; + +end; + +procedure _pseudo_srand(seed : integer); +begin + _seed := seed; +end; + +function _pseudo_rand: integer; +var + a : integer; +begin + a := (Int64(_seed) * $343fd + $269EC3) and $FFFFFFFF; + _seed := a; + result := (_seed shr $10) and $7FFF; +// writelogln(format('rand = %x; seed = %x',[result, _seed])); +end; + +procedure _init_tables(seed: integer; _2_byte_size: integer); +var + i : integer; + x : byte; + rand_pos : integer; + cur_pos : integer; +begin + + _1_byte_table := ''; + _2_byte_table := ''; + + _2_byte_table_size := _2_byte_size; + + for i := 0 to $D0 do begin + _1_byte_table := _1_byte_table + chr(i); + end; + for i := 0 to _2_byte_size do begin + _2_byte_table := _2_byte_table + chr(i) + #$0; + end; + _pseudo_srand(seed); + for i := 2 to $D1 do begin + rand_pos := (_pseudo_rand mod i) + 1; + x := GInt(_1_byte_table, rand_pos, 1); + PInt(_1_byte_table, GInt(_1_byte_table, i, 1), rand_pos, 1); + PInt(_1_byte_table, x, i, 1); + end; + + cur_pos := 3; + for i := 2 to _2_byte_size+1 do begin + rand_pos := _pseudo_rand mod i; + x := GInt(_2_byte_table, rand_pos * 2 + 1 , 2); + PInt(_2_byte_table, GInt(_2_byte_table, cur_pos, 2), rand_pos * 2 + 1, 2); + PInt(_2_byte_table, x, cur_pos, 2); + cur_pos := cur_pos + 2; + end; + + cur_pos := Pos(#$12, _1_byte_table); + x := GInt(_1_byte_table, $13, 1); + PInt(_1_byte_table, $12, $13, 1); + PInt(_1_byte_table, x, cur_pos, 1); + + cur_pos := Pos(#$B1, _1_byte_table); + x := GInt(_1_byte_table, $B2, 1); + PInt(_1_byte_table, $B1, $B2, 1); + PInt(_1_byte_table, x, cur_pos, 1); + + writelogln('one byte table'); + writeloghexB(_1_byte_table); + writelogln('two byte table'); + writeloghexB(_2_byte_table); + + _id_mix := true; +end; + +procedure _decode_ID(var buff:string); +var + p: integer; +begin +// writelogln(format('changing %x -> %x',[GInt(buff, 3, 1),GInt(_1_byte_table, GInt(buff, 3, 1)+1, 1) ])); + writelogln(format('id changed %x -> %x',[GInt(buff, 3, 1), GInt(_1_byte_table, GInt(buff, 3, 1) + 1, 1)])); + PInt(buff, GInt(_1_byte_table, GInt(buff, 3, 1) + 1, 1) , 3, 1); + if GInt(buff, 3, 1) = $D0 then begin + if GInt(buff, 4, 1) > _2_byte_table_size then begin + writelogln(format('incompatible subID %x detected',[GInt(buff, 4, 1)])); + writelogln('packet - blocked, terminating....'); + gBlockPacket; + gSys.Killself; + end; + writelogln(format('sub id changed %x -> %x',[GInt(buff, 4, 1), GInt(_2_byte_table, GInt(buff, 4, 1) * 2 + 1, 1)] )); + PInt(buff, GInt(_2_byte_table, GInt(buff, 4, 1) * 2 + 1, 1) , 4, 1); + end; +end; + +procedure _encode_ID(var buff:string); +var + p: integer; +begin + if GInt(buff, 3, 1) = $D0 then begin + p:= pos(Chr(GInt(buff, 4, 1)), _2_byte_table); + writelogln(format('changing back subID %x -> %x', [ GInt(buff, 4, 1), ((p + 1) shr 1) - 1 ])); + PInt(buff, ((p + 1) shr 1) - 1, 4, 1); + + end; + p := pos(Chr(GInt(buff, 3, 1)), _1_byte_table); + writelogln(format('changing back ID %x -> %x',[GInt(buff, 3, 1), p-1])); + + PInt(buff, p-1, 3, 1); + + +end; + + + +Procedure OnDeCodeAlt; +begin + if _id_mix and (not _dFromServ) then begin + + _dOutBuff := _dBuff; + _Decode_ID(_dOutBuff); + + end; + +end; + +Procedure OnEnCodeAlt; +begin + + if _id_mix and (not _dFromServ) then begin + + _dOutBuff := _dBuff; + _Encode_ID(_dOutBuff); + + end; + +end; + + + +begin + + // îïðåäåëåíèå òðàôèêà è óñòàíîâêà òàáëèö + // æåñòêàÿ ïðèâÿçêà ê èñïîëüçóåìîìó âàðèàíòó ïðîòîêîëà + + if _gAbsNumPkt = 2 then begin + + if (gSys.TrafType = 2) and (gSys.isGS = 3) and (Length(_gBuff) = $19) then begin + if gSys.Protocol = 851 then _init_tables(GInt(_dBuff, $16, 4), $55); // CT2 + if gSys.Protocol = 831 then _init_tables(GInt(_dBuff, $16, 4), $4E); // CT1.5+ + + + end; +// writelogln(format('TrafType = %d, isGS= %d, Protocol = %d',[gSys.TrafType, gSys.isGS, gSys.Protocol])); + + + end; + + + if _id_mix and (GInt(_gBuff, 3, 1) = $0B) then begin + + ScanPck5(_gBuff, 4, 's-99-99-04d' ,CharName, temp_seed, null, null, null); + writelogln(format('reseting id tables on CharSelected; Seed = %x',[temp_seed])); + _init_tables(temp_seed,_2_byte_table_size); + + end; + + + + +end. + + diff --git a/docs/demo_la2endecGS4m2.fsc b/docs/demo_la2endecGS4m2.fsc new file mode 100644 index 0000000..7a9ad05 --- /dev/null +++ b/docs/demo_la2endecGS4m2.fsc @@ -0,0 +1,373 @@ +// 'demo_la2-endecGS-4m.fsc' Ïðèìåð ðó÷íîãî äåêîäèðîâàíèÿ LA2 GS ïàêåòîâ. Ñòàíäàðòíûé àëãîðèòì. +// âíóòðåííåå àâòîîïðåäåëåíèå è àâòîäåêîäèðîâàíèå ÍÅ ÈÑÏÎËÜÇÓÅÒÑß, îíî îòêëþ÷àåòñÿ (â ñêðèïòå). +// +// îïðåäåëåíèå òðàôèêà è äå/êîäèðîâàíèå GS ïîëíîñòüþ íà ñêðèïòå. +// +// èñïîëüçóþòñÿ ñîáûòèÿ-ôóíêöèè 'OnDeCode' è 'OnEnCode' +// +// (äëÿ ðàáîòû ñêðèïòà íåîáõîäèì WP507F èëè âûøå) +// â ïðèìåðå èñïîëüçóåòñÿ ðó÷íàÿ äå/êîäèðîâêà GS ïàêåòîâ C4/C5/Interlude ñòàíäàðòíûì àëãîðèòìîì. +// ñêðèïò FS +// +// 'demo_la2-endecGS-4m.fsc' ýòî ìîäèôèêàöèÿ ñêðèïòà 'demo_la2-endecGS-4.fsc' +// äîáàâëåíî îïðåäåëåíèå Êàìàýëü â GS3 (äëÿ WP507F íàäî ñêà÷àòü ôàéëû îïðåäåëåíèÿ) +// + +var // áóäåì èñïîëüçîâàòü ëîêàëüíûå êëþ÷è, à íå âíóòðåííèå (õîòÿ ìîæíî ëþáûå, áåç ðàçíèöû) + Kci : string;// - äëÿ ïàêåòîâ ïðèøåäøèõ ñ êëèåíòà. + Kco : string;// - äëÿ ïàêåòîâ óõîäÿùèõ íà êëèåíò. + Ksi : string;// - äëÿ ïàêåòîâ ïðèøåäøèõ ñ ñåðâåðà. + Kso : string;// - äëÿ ïàêåòîâ óõîäÿùèõ íà ñåðâåð. + s,s1 : string; + scode : boolean; + le : integer; + ID : integer; + CharName : string; + + _seed : integer; // random generator seed for mixing id tables + _1_byte_table : string; + _2_byte_table : string; + _id_mix : boolean; + + temp_seed : integer; + +Procedure OnCreate; // ôóíêöèÿ-ñîáûòèå íà ñòàðò ñêðèïòà. +// ýòà ô-öèÿ âûçûâàåòñÿ àâòîìàòè÷åñêè ïðè ñòàðòå ñêðèïòà (åùå äî ïåðâîãî ïàêåòà) +// ô-öèÿ íå îáÿçàòåëüíà è ìîæåò îòñóòñòâîâàòü â ñêðèïòàõ ... +begin + // + // Ïîîòêëþ÷àåì âñå ÀÂÒÎîïðåäåëåíèÿ è ÀÂÒÎäåêîäèðîâàíèÿ: + // + gSys.TrafType := 0; // îòêëþ÷èì âíóòðåííåå àâòîîïðåäåëåíèå òðàôèêà + gSys.tPDecode := 0; // îòêëþ÷èì âíóòðåííåå àâòîäåêîäèðîâàíèå + gSys.tKeyType := 0; // îòêëþ÷èì íà÷àëüíîå àâòîîïðåäåëåíèå êëþ÷à + gSys.Protocol := -1; // ïðîòîêîë ñîåäèíåíèÿ (ó LS è GS ðàçíûå ! îáû÷íî ãîâîðÿò î ïðîòîêîëå GS) + gSys.isGS := 0; + gSys.isLS := 0; + gSys.tParse := 2; // òèï ïàðñèíãà ïàêåòîâ (äâóõáàéòîâûé ðàçìåð â íà÷àëå ïàêåòà) + // + scode := false; // ôëàã äå/êîäèðîâàíèÿ GS + Kci := ''; Kco := ''; Ksi := ''; Kso := ''; + // + CharName := ''; + _id_mix := false; +end; + +Procedure OnDestroy; // ôóíêöèÿ-ñîáûòèå íà çàêðûòèå ñêðèïòà è ñîåäèíåíèÿ. +// ýòà ô-öèÿ âûçûâàåòñÿ àâòîìàòè÷åñêè ïðè çàêðûòèå ñîåäèíåíèÿ +// ô-öèÿ íå îáÿçàòåëüíà è ìîæåò îòñóòñòâîâàòü â ñêðèïòàõ ... +begin +end; + +procedure _DecGS(var bf : string;var ke : string; tk : integer); // äåêîäèðóåì ïàêåò GS, ýòî îáû÷íàÿ ô-öèÿ +var i,j,b,i1,sz,sk : integer; +begin + // ñòàíäàðòíûé àëãîðèòì XOR äåêîäèðîâàíèÿ GS la2 + sz := length(bf); + sk := length(ke); + if sk = 0 then exit; + b := 0; j := 1; + for i := 3 to sz do begin + i1 := ord(bf[i]); + bf[i] := chr(i1 xor ord(ke[j]) xor b); + b := i1; + Inc(j,1); + if j > sk then j := 1; + end; + case tk of + 1: PInt(ke,GInt(ke,1,4)+sz-2,1,4); + 2: PInt(ke,GInt(ke,1,8)+sz-2,1,8); + 3: PInt(ke,GInt(ke,9,8)+sz-2,9,8); + 4: PInt(ke,GInt(ke,9,8)+sz-2,9,8); + end; +end; + +procedure _EncGS(var bf : string;var ke : string; tk : integer); // êîäèðóåì ïàêåò GS, ýòî îáû÷íàÿ ô-öèÿ +var i,j,b,i1,sz,sk : integer; +begin + // ñòàíäàðòíûé àëãîðèòì XOR êîäèðîâàíèÿ GS la2 + sz := length(bf); + sk := length(ke); + if sk = 0 then exit; + i1 := 0; j := 1; + for i := 3 to sz do begin + bf[i] := chr(ord(bf[i]) xor ord(ke[j]) xor i1); + i1 := ord(bf[i]); + Inc(j,1); + if j > sk then j := 1; + end; + case tk of + 1: PInt(ke,GInt(ke,1,4)+sz-2,1,4); + 2: PInt(ke,GInt(ke,1,8)+sz-2,1,8); + 3: PInt(ke,GInt(ke,9,8)+sz-2,9,8); + 4: PInt(ke,GInt(ke,9,8)+sz-2,9,8); + end; +end; + +procedure _pseudo_srand(seed : integer); +begin + _seed := seed; +end; + +function _pseudo_rand: integer; +var + a : integer; +begin + a := (Int64(_seed) * $343fd + $269EC3) and $FFFFFFFF; + _seed := a; + result := (_seed shr $10) and $7FFF; +// writelogln(format('rand = %x; seed = %x',[result, _seed])); +end; + +procedure _init_tables(seed: integer); +var + i : integer; + x : byte; + rand_pos : integer; + cur_pos : integer; +begin + _1_byte_table := ''; + _2_byte_table := ''; + + for i := 0 to $D0 do begin + _1_byte_table := _1_byte_table + chr(i); + end; + for i := 0 to $4D do begin + _2_byte_table := _2_byte_table + chr(i) + #$0; + end; + _pseudo_srand(seed); + for i := 2 to $D1 do begin + rand_pos := (_pseudo_rand mod i) + 1; + x := GInt(_1_byte_table, rand_pos, 1); + PInt(_1_byte_table, GInt(_1_byte_table, i, 1), rand_pos, 1); + PInt(_1_byte_table, x, i, 1); + end; + + cur_pos := 3; + for i := 2 to $4E do begin + rand_pos := _pseudo_rand mod i; + x := GInt(_2_byte_table, rand_pos * 2 + 1 , 2); + PInt(_2_byte_table, GInt(_2_byte_table, cur_pos, 2), rand_pos * 2 + 1, 2); + PInt(_2_byte_table, x, cur_pos, 2); + cur_pos := cur_pos + 2; + end; + + cur_pos := Pos(#$12, _1_byte_table); + x := GInt(_1_byte_table, $13, 1); + PInt(_1_byte_table, $12, $13, 1); + PInt(_1_byte_table, x, cur_pos, 1); + + cur_pos := Pos(#$B1, _1_byte_table); + x := GInt(_1_byte_table, $B2, 1); + PInt(_1_byte_table, $B1, $B2, 1); + PInt(_1_byte_table, x, cur_pos, 1); + + +end; + +procedure _decode_ID(var buff:string); +var + p: integer; +begin +// writelogln(format('changing %x -> %x',[GInt(buff, 3, 1),GInt(_1_byte_table, GInt(buff, 3, 1)+1, 1) ])); + PInt(buff, GInt(_1_byte_table, GInt(buff, 3, 1) + 1, 1) , 3, 1); + if GInt(buff, 3, 1) = $D0 then begin + + PInt(buff, GInt(_2_byte_table, GInt(buff, 4, 1) * 2 + 1, 1) , 4, 1); + + end; +end; + +procedure _encode_ID(var buff:string); +var + p: integer; +begin + if GInt(buff, 3, 1) = $D0 then begin + p:= pos(Chr(GInt(buff, 4, 1)), _2_byte_table); + PInt(buff, ((p + 1) shr 1) - 1, 4, 1); + end; + p := pos(Chr(GInt(buff, 3, 1)), _1_byte_table); +// writelogln(format('changing %x -> %x',[GInt(buff, 3, 1), p-1])); + + PInt(buff, p-1, 3, 1); + + +end; + + +Procedure Trafic_Detector; +var _s : string; +begin + // Îïðåäåëèì òèï òðàôèêà è òèï ñåðâåðà. + // Âíèìàíèå! ïðè íåîáõîäèìîñòè, îïðåäåëåíèå òðàôèêà ìîæíî äîïîëíèòü íîâûìè âàðèàíòàìè =) + // + le := length(_dBuff); // _dBuff - âõîäíîé ïàêåò (òàê êàê ýòà ô-öèÿ âûçâàíà èç OnDeCode) + // + // Îïðåäåëèì òèï òðàôèêà (â ýòîì ïðèìåðå íàñ èíòåðåñóåò òîëüêî LA2) + // + if (gSys.TrafType = 0) and (_gAbsNumPkt = 1) then begin + case le of + $0B,$9B,$AB,$BA: begin + gSys.TrafType := 2; // LA2 + gSys.isLS := 1; // LS + if le = $0B then gSys.tKeyType := 1 else gSys.tKeyType := 2; // ýòî äëÿ LS, ïîêà íå ïîòðåáóåòñÿ + end; + $107: begin + gSys.TrafType := 2; // LA2 + gSys.isGS := 1; // GS + end; + $07: begin + gSys.TrafType := 2; // LA2 + gSys.isGS := 2; // GS + end; + else if le >= $107 then begin // áîëåå íàäåæíûé ñïîñîá îïðåäåëèòü LA2 GS + if pos(HStr('05 52 05 54 07 51 51 55 07 02 53 53 00 52 05 52'),_dBuff) <> 0 then begin + // åñëè íàéäåíà ñòðî÷êà '.R.T.QQU..SS.R.R' (äðåâíèé ðèì åïòü =) òîãäà ýòî ãåéì ñåðâåð ëà2. + gSys.TrafType := 2; // LA2 + gSys.isGS := 2; // GS + end; + + if StrCmp(copy(_dBuff, 3, 5), HStr('0E 3C 03 00 00')) then begin + writelogln('CT1 traffic detected'); + gSys.TrafType := 2; // LA2 + gSys.isGS := 3; // GS CT1 + end; + + end; + end; + // + if gSys.TrafType = 2 then gSys.SetIDposlen(3,1); // ID â ïàêåòàõ LA2 íàõîäèòñÿ â òðåòüåì áàéòå, ðàçìåð 1 áàéò. + if gSys.isGS > 0 then gSys.Protocol := gInt(_dBuff,4,4); // áåðåì íîìåð ïðîòîêîëà GS + + // ïðîäóáëèì ïðîòîêîëû CT1 + if gSys.Protocol >= 828 then gSys.isGS := 3; // GS CT1 + // GS CT1+ ïîêà òàêîé æå + end; + // + // îïðåäåëèì êëþ÷ GS: + // + if (_gAbsNumPkt = 2) then + + if (gSys.TrafType = 2) and (gSys.isGS > 0) and _dFromServ then begin + if (le = 12) then gSys.tKeyType := 1; // 12 áàéòíûé ïàêåò - òèï 1. GSDecodeJ (90% l2j) + if (le = 16) then gSys.tKeyType := 2; // 16 áàéòíûé ïàêåò - òèï 2. GSDecode (sub-off servers) + if (le = $1A) then gSys.tKeyType := 3; // ÷àñòü ôðè ñåðâåðîâ Interlude + if (le = $1C) then gSys.tKeyType := 3; // ÷àñòü ôðè ñåðâåðîâ Interlude + if (le = $15) then gSys.tKeyType := 3; // îôèöèàëüíûå ñåðâåðà Interlude (íà äàííûé ìîìåíò) + if (le = $19) then gSys.tKeyType := 4; // îôèöèàëüíûå ñåðâåðà CT1+ + if gSys.tKeyType > 0 then begin + s := copy(_dBuff,5,16); + if gSys.tKeyType < 3 then s := copy(s,1,4)+Hstr('A1 6C 54 87'); // C4/C5/ïñåâäî èíòåðëþä. + if gSys.tKeyType = 3 then s := copy(s,1,8)+Hstr('C8 27 93 01 A1 6C 31 97'); // èíòåðëþä. + if gSys.tKeyType = 4 then begin + s := copy(s,1,8)+Hstr('C8 27 93 01 A1 6C 31 97'); + _id_mix := true; +// ScriptTimeOut(30000); + _init_tables(GInt(_dBuff, $16, 4)); + writelogln('kamael+ trafic detected'); +// writelog('one byte table'); +// writelogHexB(_1_byte_table); +// writelog('two byte table'); +// writelogHexB(_2_byte_table); + +// gSys.sleep(10000); +// ScriptTimeOut(1000); + end; + Kci := s; Kco := s; Ksi := s; Kso := s; + scode := true; // çàïóñòèì äå/êîäèðîâàíèå GS + writelogln('key:');writeloghexb(s); + end else writelogln('íåîïîçíàííûé êëþ÷åâîé ïàêåò GS LA2 ïðîòîêîëà') + end; + // +end; + +Procedure OnDeCode; // ôóíêöèÿ-ñîáûòèå íà äåêîäèðîâàíèå ïàêåòà. +// ýòà ô-öèÿ âûçûâàåòñÿ ïðè ïîëó÷åíèè ïàêåòà, ÄÎ àâòîìàòè÷åñêîãî äåêîäèðîâàíèÿ (åñëè âêëþ÷åíî) è ÄÎ çàïèñåé â àâòîëîããåð îñíîâíûõ ïàêåòîâ +// ô-öèÿ íå îáÿçàòåëüíà è ìîæåò îòñóòñòâîâàòü â ñêðèïòàõ ... +// âõîäíîé áóôåð '_dBuff', âûõîäíîé '_dOutBuff', ôëàã íàïðàâëåíèÿ '_dFromServ' (íå ïåðåïóòàéòå) +begin + //writelogln('OnDeCode ..'); + + // _dBuff - âõîäíîé ïàêåò äëÿ äåêîäèðîâàíèÿ + if _gAbsNumPkt < 6 then Trafic_Detector; // îïðåäåëèì òðàôèê è òèï ñåðâåðà (â ïðåäåëàõ 5 ïåðâûõ ïàêåòîâ, äëÿ LA2 ýòîãî õâàòèò) + // + if scode and (_gAbsNumPkt > 2) then begin + // äåêîäèðóåì ïàêåò, ðó÷íàÿ ðåàëèçàöèÿ ñòàíäàðòíîãî àëãîðèòìà. + if _dFromServ then + _DecGS(_dBuff,Ksi,gSys.tKeyType) + else begin + _DecGS(_dBuff,Kci,gSys.tKeyType); + writelogHexB(_dBuff); + if _id_mix then _decode_id(_dBuff); + end; + _dOutBuff := _dBuff; + end; +end; + +Procedure OnEnCode; // ôóíêöèÿ-ñîáûòèå íà êîäèðîâàíèå ïàêåòà. +// ýòà ô-öèÿ âûçûâàåòñÿ ïåðåä îòñûëêîé ïàêåòà, ïîñëå çàïèñè â àâòîëîããåð îñíîâíûõ ïàêåòîâ è ïîñëå àâòîìàòè÷åñêîãî êîäèðîâàíèÿ (åñëè âêëþ÷åíî) +// òàê æå ô-öèÿ âûçûâàåòñÿ àâòîìàòè÷åñêè ïðè èñïîëüçîâàíèè gSys.EnSendC è gSys.EnSendS +// !! Âíèìàíèå !! +// â OnEnCode çàïðåùåíî èñïîëüçîâàòü ô-öèè gSys.EnSendC è gSys.EnSendS âî èçáåæàíèå çàìêíóòîé ðåêóðñèè +// ô-öèÿ íå îáÿçàòåëüíà è ìîæåò îòñóòñòâîâàòü â ñêðèïòàõ ... +// âõîäíîé áóôåð '_dBuff', âûõîäíîé '_dOutBuff', ôëàã íàïðàâëåíèÿ '_dFromServ' (íå ïåðåïóòàéòå) +begin + //writelogln('OnEnCode ..'); + + if scode and (_gAbsNumPkt > 2) then begin + // êîäèðóåì ïàêåò, ðó÷íàÿ ðåàëèçàöèÿ ñòàíäàðòíîãî àëãîðèòìà + if _dFromServ then + _EncGS(_dBuff,Kco,gSys.tKeyType) + else begin + if _id_mix then _encode_id(_dBuff); + _EncGS(_dBuff,Kso,gSys.tKeyType); + end; + _dOutBuff := _dBuff; + + //if _dFromServ then gSys.EnSendC(_dBuff) else gSys.EnSendS(_dBuff); + //gBlockPacket; + end; +end; + +procedure SendMsg(msg : string); // ô-öèÿ äëÿ âûâîäà ëþáîãî ñîîáùåíèÿ â ÷àò êëèåíòà (äðóãèì íå âèäíî) +begin + if (gSys.isGS > 0) and (gSys.TrafType = 2) then // ïðîâåðêà íà òðàôèê LA2 GS + gSys.EnSendC(FormatPck('%cddss',[#$4A,0,10,#0,msg+#0])); +end; + +BEGIN + // Òåëî ñêðèïòà + // âûçûâàåòñÿ ïðè ïîëó÷åíèè ïàêåòà ïðîøåäøåãî âñå äåêîäèðîâîêè è àâòîäåêîäèðîâêè + // êàê îáû÷íî, çäåñü ïàêåò ïðèõîäèò â _gBuff è åñëè åãî íàäî èçìåíèòü, òî ïèøåì â _gOutBuff + // ... + + if length(_gBuff) < 3 then exit; + ID := gInt(_gBuff,3,1); + //if (ID = $FE) or (ID = $D0) then ID := gInt(_gBuff,3,2); + // + // â êà÷åñòâå ïðèìåðà + if ID = $15 then begin // âîçüìåì èìÿ âûáðàííîãî ïåðñîíàæà + //GetAnsiStr(copy(_gBuff,4, + ScanPck5(_gBuff,4,'s',CharName, null, null, null, null); + CharName := trim(CharName); + Writelogln('Âûáðàííûé ïåðñ: '+CharName); + end; + // + + // CT1+ table reset on char selected + if ID = $0B then begin + + ScanPck5(_gBuff, 4, 's-99-99-04d' ,CharName, temp_seed, null, null, null); + writelogln(format('reseting id tables on CharSelected; Seed = %x',[temp_seed])); + _init_tables(temp_seed); + + end; + + + + + // ... äàëåå ïàêåò ëîãèðóåòñÿ è óõîäèò íà àâòîêîäèðîâêó çàòåì íà êîäèðîâêó (OnEnCode) è îòïðàâëÿåòñÿ. +END. + + + diff --git a/docs/exp_percent.txt b/docs/exp_percent.txt new file mode 100644 index 0000000..870c938 --- /dev/null +++ b/docs/exp_percent.txt @@ -0,0 +1,24 @@ + exp_table: array[0..85] of integer = + ( + 0, // level 0 + 1, 69, 364, 1169, 2885, 6039, 11288, 19424, 31379, 48230, //level 10 + 71203, 101678, 141194, 191455, 254331, 331868, 426289, 540001, 675597, 835863, //level 20 + 1023785, 1242547, 1495544, 1786380, 2118877, 2497078, 2925251, 3407898, 3949755, 4555797, //level 30 + 5231247, 5981577, 6812514, 7730045, 8740423, 9850167, 11066073, 12395216, 13844952, 15422930, //level 40 + 17137088, 18995666, 21007204, 23180551, 25524869, 28049636, 30764655, 33680053, 36806290, 40154163, //level 50 + 45525134, 51262491, 57383989, 63907912, 70853090, 80700832, 91162655, 102265882, 114038596, 126509653, //level 60 + 146308200, 167244337, 189364894, 212717908, 237352644, 271975263, 308443198, 346827154, 387199547, 429634523, //level 70 + 474207979, 532694979, 606322775, 696381369, 800225364, 900275364, 1000571463, 1100482881, 1200687304, 1300321654, //level 80 + 1400123456, 1550789123, 1680156789, 1850164821, 2099305232 //level 85 + ); + + +function PercentExp(lvl, Exp:integer):double; +var + Result:double; +begin + Result:=0; + if((lvl>=1)AND(lvl<=85))then Result:= (Exp-exp_table[lvl])/(exp_table[lvl+1]-exp_table[lvl])*100; + if(Result<0)then Result:=0; + PercentExp:=Result; +end; \ No newline at end of file diff --git a/docs/experience.txt b/docs/experience.txt new file mode 100644 index 0000000..ff66e32 --- /dev/null +++ b/docs/experience.txt @@ -0,0 +1,78 @@ +2 67 +3 362 +4 1,167 +5 2,883 +6 6,037 +7 11,286 +8 19,422 +9 31,377 +10 48,228 +11 71,201 +12 101,676 +13 141,192 +14 191,453 +15 254,329 +16 331,866 +17 426,287 +18 539,999 +19 675,595 +20 835,861 +21 1,023,783 +22 1,242,545 +23 1,301,364 +24 1,447,733 +25 2,118,875 +26 2,497,076 +27 2,925,249 +28 3,407,896 +29 3,949,754 +30 4,555,795 +31 5,231,244 +32 5,981,575 +33 6,812,513 +34 7,730,043 +35 8,740,421 +36 9,850,165 +37 11,066,071 +38 12,395,215 +39 13,844,951 +40 15,422,928 +41 17,137,086 +42 18,995,665 +43 21,007,200 +44 23,180,550 +45 25,524,869 +46 28,049,631 +47 30,764,650 +48 33,680,051 +49 36,806,285 +50 40,154,161 +51 45,525,133 +52 51,262,487 +53 57,383,992 +54 63,907,914 +55 70,853,088 +56 80,700,825 +57 91,162,660 +58 102,265,882 +59 114,038,590 +60 126,509,653 +61 146,308,201 +62 167,244,335 +63 189,364,888 +64 212,717,913 +65 237,352,657 +66 271,975,264 +67 308,443,191 +68 346,827,140 +69 387,199,535 +70 429,634,523 +71 474,207,980 +72 532,694,971 +73 606,322,751 +74 696,381,374 +75 804,225,311 +76 931,275,813 +77 1,151,275,702 +78 1,511,275,832 +79 2,099,275,897 \ No newline at end of file diff --git a/docs/exploring_c_prng.cpp b/docs/exploring_c_prng.cpp new file mode 100644 index 0000000..e93a83b --- /dev/null +++ b/docs/exploring_c_prng.cpp @@ -0,0 +1,38 @@ +void __cdecl srand( unsigned int seed ) +{ + _getptd()->_holdrand = (unsigned long)seed; +} + +int __cdecl rand( void ) +{ + _ptiddata ptd = _getptd(); + return( ((ptd->_holdrand = ptd->_holdrand * 214013L + 2531011L) >> 16) & 0x7fff ); +} + +public rand +rand proc near +call sub_77C29F25 // _getptd()? +mov ecx, [eax+14h] // offset of _holdrand? +imul ecx, 343FDh // 214013 +add ecx, 269EC3h // 2531011 +mov [eax+14h], ecx +mov eax, ecx +shr eax, 10h // >> 16 +and eax, 7FFFh +retn +rand endp + +public srand +srand proc near + +arg_0= dword ptr 8 + +mov edi, edi // 3 lines - BP-based frame +push ebp +mov ebp, esp +call sub_77C29F25 // _getptd()? +mov ecx, [ebp+arg_0] // ecx = seed (argument 0) +mov [eax+14h], ecx // _getptd()->_holdrand = seed +pop ebp +retn +srand endp diff --git a/docs/gamepackets/AbnormalStatusUpdate.txt b/docs/gamepackets/AbnormalStatusUpdate.txt new file mode 100644 index 0000000..1e969b2 --- /dev/null +++ b/docs/gamepackets/AbnormalStatusUpdate.txt @@ -0,0 +1,22 @@ +Server: 85 AbnormalStatusUpdate: len 25 +19 00 +85 +02 00 // nEffects = 2 +3E 14 00 00 // skillID 5182 \ +01 00 // level 1 > 1 +BF 1E 00 00 // duration 7871 / +E2 10 00 00 // skillID \ +01 00 // level 1 > 2 +42 0F 00 00 // duration 3906 / + +19 00 +85 +02 00 +3E 14 00 00 // skill +01 00 +C5 1E 00 00 // 7877 +E2 10 00 00 +01 00 +47 0F 00 00 // 3911 + +duration in seconds...? \ No newline at end of file diff --git a/docs/gamepackets/Action.txt b/docs/gamepackets/Action.txt new file mode 100644 index 0000000..b1607fd --- /dev/null +++ b/docs/gamepackets/Action.txt @@ -0,0 +1,18 @@ +14 00 // len - 20 +1F // ptype - Action +39 A4 00 10 // objectID 268477497 of a target +9A CB 00 00 // originX 52122 +3D 2B FF FF // originY -544657 +A9 F3 FF FF // originZ -3159 +00 // use shift? 00 - false, 01 - true + + +client sends its own coordinates + +(52136,-54431,-3184) + +[PACKET] Client: 1F Action [268477497] +[PACKET] Server: 23 TargetSelected [268636209] -> [268477497] + my_obj_ID -> targ_obj_ID +[PACKET] Server: B9 MyTargetSelected [268477497] + targ_obj_ID \ No newline at end of file diff --git a/docs/gamepackets/Appearing.txt b/docs/gamepackets/Appearing.txt new file mode 100644 index 0000000..9d326b7 --- /dev/null +++ b/docs/gamepackets/Appearing.txt @@ -0,0 +1,3 @@ +Client Len 3 [Appearing] +03 00 +3A // pcode Appearing \ No newline at end of file diff --git a/docs/gamepackets/AskJoinParty.txt b/docs/gamepackets/AskJoinParty.txt new file mode 100644 index 0000000..e769641 --- /dev/null +++ b/docs/gamepackets/AskJoinParty.txt @@ -0,0 +1,11 @@ +Server: 39 AskJoinParty: len 23 +17 00 +39 +41 00 6C 00 65 00 78 00 78 00 69 00 61 00 00 00 // inviter A l e x x i a +04 00 00 00 // loot type + +// 0 - Finders Keepers +// 1 - Random +// 2 - Random including spoil +// 3 - by turn +// 4 - by turn including spoil \ No newline at end of file diff --git a/docs/gamepackets/Attack.txt b/docs/gamepackets/Attack.txt new file mode 100644 index 0000000..d7037f0 --- /dev/null +++ b/docs/gamepackets/Attack.txt @@ -0,0 +1,38 @@ +Server: Len 39 [Attack] +27 00 +33 +6C 08 00 10 // attacker +B2 16 00 10 // target +A6 00 00 00 // damage +00 // flags +9A AC 00 00 // x +F9 A4 00 00 // y coords of attacker +5D F2 FF FF // z +00 00 // count-1 +B2 16 00 10 // attacker (same) +A6 00 00 00 // damage (same) +00 // flags (same) + +Flags: +if (soulshot) _flags |= 0x10 | _grade; +if (crit) _flags |= 0x20; +if (shld > 0) _flags |= 0x40; +if (miss) _flags |= 0x80; + + + writeC(0x33); + + writeD(_attackerObjId); + writeD(_hits[0]._targetId); + writeD(_hits[0]._damage); + writeC(_hits[0]._flags); + writeD(_x); + writeD(_y); + writeD(_z); + writeH(_hits.length-1); + for (Hit temp: _hits) + { + writeD(temp._targetId); + writeD(temp._damage); + writeC(temp._flags); + } diff --git a/docs/gamepackets/AuthLogin.txt b/docs/gamepackets/AuthLogin.txt new file mode 100644 index 0000000..ced220b --- /dev/null +++ b/docs/gamepackets/AuthLogin.txt @@ -0,0 +1,9 @@ +21 00 // 33 b +2B // on L2J if obfuscator (last 4 bytes) in KeyPacket are 00 00 00 00 + // pcode may vary on retail! +6C 00 65 00 78 00 78 00 00 00 // account login (Unicode string) +BC C4 1C 61 // sessionKey2 part2 +6A 92 28 32 // sessionKey2 part1 +62 05 8C 1A // sessionKey1 part1 +A7 0D 32 D9 // sessionKey1 part2 +01 00 00 00 // hz \ No newline at end of file diff --git a/docs/gamepackets/BuyList.txt b/docs/gamepackets/BuyList.txt new file mode 100644 index 0000000..982b41f --- /dev/null +++ b/docs/gamepackets/BuyList.txt @@ -0,0 +1,76 @@ +Server: Len 2765 [BuyList] | +CD 0A +07 +C7 55 35 00 // money 3495367 +90 00 00 00 // list ID 144 +2B 00 // items count 43 + +04 00 // item type 1 0-weapon/ring/earring/necklace 1-armor/shield 4-item/questitem/adena +00 00 00 00 // objectID +2B 07 00 00 // itemID 1835 Soulshot no grade +00 00 00 00 // current count +05 00 // item type2 0-weapon 1-shield/armor 2-ring/earring/necklace 3-questitem 4-adena 5-item +00 00 // ?? +00 00 00 00 // bodypart (for armor) +00 00 // enchant level +00 00 00 00 // ?? +07 00 00 00 // price (=7) +FE FF FF FF // atk attribute type (-2) \\ +00 00 00 00 // atk attribute value \\ +00 00 00 00 // fire def \\ +00 00 00 00 // water def || element attributes +00 00 00 00 // wind def || +00 00 00 00 // earth def // +00 00 00 00 // holy def // +00 00 00 00 // unholy def // + + + + +protected final void writeImpl() + { + writeC(0x07); + writeD(_money); // current money + writeD(_listId); + + writeH(_list.size()); + + for (L2TradeItem item : _list) + { + if (item.getCurrentCount() > 0 || !item.hasLimitedStock()) + { + writeH(item.getTemplate().getType1()); // item type1 + writeD(0x00); //objectId + writeD(item.getItemId()); + writeD(item.getCurrentCount() <0 ? 0 : item.getCurrentCount()); + writeH(item.getTemplate().getType2()); // item type2 + writeH(0x00); // ? + + if (item.getTemplate().getType1() != L2Item.TYPE1_ITEM_QUESTITEM_ADENA) + { + writeD(item.getTemplate().getBodyPart()); + writeH(0x00); // item enchant level + writeH(0x00); // ? + writeH(0x00); + } + else + { + writeD(0x00); + writeH(0x00); + writeH(0x00); + writeH(0x00); + } + + if (item.getItemId() >= 3960 && item.getItemId() <= 4026)//Config.RATE_SIEGE_GUARDS_PRICE-//' + writeD((int)(item.getPrice() * Config.RATE_SIEGE_GUARDS_PRICE * (1 + _taxRate))); + else + writeD((int)(item.getPrice() * (1 + _taxRate))); + + // T1 + for (byte i = 0; i < 8; i++) + { + writeD(0x00); + } + } + } + } \ No newline at end of file diff --git a/docs/gamepackets/ChangeMoveType.txt b/docs/gamepackets/ChangeMoveType.txt new file mode 100644 index 0000000..8133f43 --- /dev/null +++ b/docs/gamepackets/ChangeMoveType.txt @@ -0,0 +1,11 @@ +Server: Len 15 [ChangeMoveType] +0F 00 +28 +B2 16 00 10 // object id +00 00 00 00 // 0 - walk, 1 - run +00 00 00 00 // ?? + +writeC(0x28); +writeD(_charObjId); +writeD(_running ? RUN : WALK); +writeD(0); //c2 diff --git a/docs/gamepackets/CharSelected_hellbound.txt b/docs/gamepackets/CharSelected_hellbound.txt new file mode 100644 index 0000000..92357c5 --- /dev/null +++ b/docs/gamepackets/CharSelected_hellbound.txt @@ -0,0 +1,46 @@ +Server: Len 284 +1C 01 +0B // CharSelected +4E 00 69 00 72 00 61 00 65 00 6C 00 00 00 // char name +7A 0B 03 00 // char id? +00 00 // title +FA B6 BA AF // session id +00 00 00 00 // clan id +00 00 00 00 // always 0 +01 00 00 00 // sex +01 00 00 00 // race +17 00 00 00 // class id +01 00 00 00 // 1 - active? +F4 40 02 00 // x +7F 31 FF FF // y +3A F5 FF FF // z +00 00 00 00 00 0A A8 40 // cur Hp +58 A8 35 CD 3B EC 99 40 // cur mp +FF CA 53 00 // sp +5A B6 E2 31 00 00 00 00 // exp +4B 00 00 00 // level +00 00 00 00 // karma +00 00 00 00 // const 0x00 +17 00 00 00 // int +28 00 00 00 // str +1E 00 00 00 // con +1A 00 00 00 // men +24 00 00 00 // dex +0E 00 00 00 // wit +00 00 00 00 00 00 00 00 // const +00 00 00 00 // class id...? O_o +00 00 00 00 // 00 1 +00 00 00 00 // 00 +00 00 00 00 // 00 +00 00 00 00 // 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 E1 1A 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 + +wtf dunno end of packet \ No newline at end of file diff --git a/docs/gamepackets/CharSelectionInfo.txt b/docs/gamepackets/CharSelectionInfo.txt new file mode 100644 index 0000000..212a2c8 --- /dev/null +++ b/docs/gamepackets/CharSelectionInfo.txt @@ -0,0 +1,75 @@ +S->C Len 317 +3D 01 // length (example 317) +09 // packet code +01 00 00 00 // number of chars +07 00 00 00 // max chars on server? +00 // always 0x00 + +// repeated block unknown length, because of var-length strings +// minimum length must be 281 bytes (not sure) +46 00 6C 00 61 00 6D 00 65 00 64 00 53 00 6F 00 75 00 6C 00 00 00 // char name (Unicode) +37 0B 0E 00 // char ID +6C 00 65 00 78 00 78 00 68 00 75 00 6C 00 65 00 00 00 // login name +0D FE 0F 00 // sessionID (playOkId1) +4E 2A 00 00 // clanID +00 00 00 00 // L2J says it's always 00 00 00 00; as I saw, on retail also +01 00 00 00 // sex +00 00 00 00 // race +0A 00 00 00 // character base class ID +01 00 00 00 // active? (c) L2J // useless >_< +9F B1 FF FF \ +32 E4 01 00 | (( x ,y ,z )) ? +00 F3 FF FF / +B8 1E 85 EB 51 F8 79 40 // HP cur +C2 F5 28 5C 8F 92 78 40 // MP cur +85 51 00 00 // SP +0C BA 0D 00 00 00 00 00 // Exp +14 00 00 00 // Level +00 00 00 00 // karma +00 00 00 00 // PK kills +00 00 00 00 // PVP kills +00 00 00 00 \ +00 00 00 00 \ +00 00 00 00 | some 7 zero dwords +00 00 00 00 | +00 00 00 00 / +00 00 00 00 / +00 00 00 00 / +00 00 00 00 // itemID hair all +4E 03 00 00 // itemID r ear +4E 03 00 00 // itemID l ear +8D 03 00 00 // necklace +6E 03 00 00 // r finger +6E 03 00 00 // l finger +2C 00 00 00 // head +37 01 00 00 // r hand +71 02 00 00 // l hand +33 00 00 00 // gloves +4D 04 00 00 // chest +50 04 00 00 // legs +27 00 00 00 // feet +00 00 00 00 // back +00 00 00 00 // LR hand +00 00 00 00 // hair +00 00 00 00 // hair 2 +00 00 00 00 // R bracelet +00 00 00 00 // L bracelet +00 00 00 00 \ +00 00 00 00 \ +00 00 00 00 | some 6 null dwords +00 00 00 00 | +00 00 00 00 / +00 00 00 00 / +02 00 00 00 // hair style +03 00 00 00 // hair color +00 00 00 00 // face +B8 1E 85 EB 51 F8 79 40 // HP max +C2 F5 28 5C 8F 92 78 40 // MP max +00 00 00 00 // deleteDays; if != 0 then char is inactive +0A 00 00 00 // classID +01 00 00 00 // 0x00000001 if last used char, 0x00000000 otherwise +00 // enchantEffect (<=127) +00 00 // Augmentation ID +00 00 // something also for augment +00 00 00 00 // transformation ID + // (but on retail you cannot see transform on char select screen) diff --git a/docs/gamepackets/CharacterCreate.txt b/docs/gamepackets/CharacterCreate.txt new file mode 100644 index 0000000..8286c52 --- /dev/null +++ b/docs/gamepackets/CharacterCreate.txt @@ -0,0 +1,16 @@ +Client: Len 63 [CharacterCreate] +3F 00 +0C // opcode +41 00 65 00 72 00 69 00 6E 00 00 00 // name +01 00 00 00 // race +01 00 00 00 // sex +19 00 00 00 // class id +1C 00 00 00 // INT +27 00 00 00 // STR +1E 00 00 00 // CON +1B 00 00 00 // MEN +23 00 00 00 // DEX +0B 00 00 00 // WIT +00 00 00 00 // hair style +00 00 00 00 // hair color +00 00 00 00 // face \ No newline at end of file diff --git a/docs/gamepackets/CharacterSelect_hellbound.txt b/docs/gamepackets/CharacterSelect_hellbound.txt new file mode 100644 index 0000000..c9b40ec --- /dev/null +++ b/docs/gamepackets/CharacterSelect_hellbound.txt @@ -0,0 +1,8 @@ +Client: Len 21 +15 00 +12 +00 00 00 00 // charslot +00 00 00 00 // rest are constant +00 00 00 00 +00 00 00 00 +00 00 \ No newline at end of file diff --git a/docs/gamepackets/CharacterSelectionInfo_final.txt b/docs/gamepackets/CharacterSelectionInfo_final.txt new file mode 100644 index 0000000..bd07aa7 --- /dev/null +++ b/docs/gamepackets/CharacterSelectionInfo_final.txt @@ -0,0 +1,72 @@ +Server: Len 313 [CharacterSelectionInfo] +39 01 +09 +01 00 00 00 // num chars +07 00 00 00 // server max chars +00 // 00 + +41 00 6C 00 65 00 78 00 78 00 69 00 61 00 00 00 // name +7A 0B 03 00 // oid +6D 00 69 00 6E 00 6C 00 65 00 78 00 78 00 00 00 // acc +46 8D 2A 54 /// play ok 1 +00 00 00 00 /// clan id +00 00 00 00 // 0x00 +01 00 00 00 // sex +00 00 00 00 // race +10 00 00 00 // base cls +01 00 00 00 // 0x01 - active +E8 AA 00 00 \ +58 42 FF FF > x,y,z +E8 FC FF FF / +00 00 00 00 00 06 A6 40 // hp cur +00 00 00 00 00 98 AC 40 // mp cur +39 B9 56 00 // sp +A6 8E F5 0B 00 00 00 00 // exp +3F 00 00 00 // level 63 +00 00 00 00 // karma +00 00 00 00 // pk +02 00 00 00 // pvp +00 00 00 00 \ +00 00 00 00 +00 00 00 00 +00 00 00 00 > 7 zero dwords +00 00 00 00 +00 00 00 00 +00 00 00 00 / +70 25 00 00 \ HAIRALL +39 30 00 00 REAR +32 30 00 00 LEAR +30 30 00 00 NECK +31 30 00 00 RFINGER +31 30 00 00 LFINGER +00 02 00 00 HEAD +C2 2E 00 00 RHAND +00 00 00 00 LHAND +87 16 00 00 GLOVES +67 09 00 00 CHEST +00 00 00 00 LEGS +93 16 00 00 FEET +00 00 00 00 BACK +00 00 00 00 LRHAND +F4 22 00 00 HAIR +00 00 00 00 HAIR2 +75 25 00 00 RBRACELET +00 00 00 00 LBRACELET +00 00 00 00 DECO1 +00 00 00 00 2 +00 00 00 00 3 +00 00 00 00 4 +00 00 00 00 5 +00 00 00 00 6 +00 00 00 00 BELT +02 00 00 00 hStyle +03 00 00 00 hColor +00 00 00 00 face +00 00 00 00 00 06 A6 40 HP max +00 00 00 00 00 98 AC 40 MP max +00 00 00 00 del secs +10 00 00 00 classId +01 00 00 00 1 - last used char +00 enchantEffect +00 00 00 00 aug Id +00 00 00 00 transform id diff --git a/docs/gamepackets/CreatureSay.txt b/docs/gamepackets/CreatureSay.txt new file mode 100644 index 0000000..a18f0e1 --- /dev/null +++ b/docs/gamepackets/CreatureSay.txt @@ -0,0 +1,71 @@ +Server: 4A CreatureSay: len 255 +FF 00 +4A +00 00 00 00 0A 00 00 00 00 00 1D 04 30 04 47 04 J 0 G +30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 0 A O M 2 5 +3D 04 42 04 20 00 27 00 43 00 6F 00 66 00 66 00 B C o f f +65 00 72 00 20 00 6F 00 66 00 20 00 53 00 68 00 e r o f S h +61 00 64 00 6F 00 77 00 73 00 27 00 2E 00 20 00 a d o w s +1F 04 3E 04 34 04 40 04 3E 04 31 04 3D 04 3E 04 4 1 +41 04 42 04 38 04 20 00 3C 04 3E 04 36 04 3D 04 A B 8 6 +3E 04 20 00 43 04 37 04 3D 04 30 04 42 04 4C 04 C 7 0 B L +20 00 43 04 20 00 4F 00 6D 00 65 00 67 00 61 00 C O m e g a +27 00 73 00 20 00 43 00 61 00 74 00 2C 00 20 00 s C a t +3A 04 3E 04 42 04 3E 04 40 04 3E 04 33 04 3E 04 B 3 +20 00 12 04 4B 04 20 00 41 04 3C 04 3E 04 36 04 K A 6 +35 04 42 04 35 04 20 00 3D 04 30 04 39 04 42 04 5 B 5 0 9 B +38 04 20 00 32 04 20 00 31 04 3B 04 38 04 36 04 8 2 1 8 6 +30 04 39 04 48 04 35 04 3C 04 20 00 33 04 3E 04 0 9 H 5 3 +40 04 3E 04 34 04 35 04 2E 00 00 00 + +FF 00 // len 255 +4A +00 00 00 00 // objectID +0A 00 00 00 // text Type +00 00 // char name - empty here +1D 04 30 04 47 04 +30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 0 A O M 2 5 +3D 04 42 04 20 00 27 00 43 00 6F 00 66 00 66 00 B C o f f +65 00 72 00 20 00 6F 00 66 00 20 00 53 00 68 00 e r o f S h +61 00 64 00 6F 00 77 00 73 00 27 00 2E 00 20 00 a d o w s +1F 04 3E 04 34 04 40 04 3E 04 31 04 3D 04 3E 04 4 1 +41 04 42 04 38 04 20 00 3C 04 3E 04 36 04 3D 04 A B 8 6 +3E 04 20 00 43 04 37 04 3D 04 30 04 42 04 4C 04 C 7 0 B L +20 00 43 04 20 00 4F 00 6D 00 65 00 67 00 61 00 C O m e g a +27 00 73 00 20 00 43 00 61 00 74 00 2C 00 20 00 s C a t +3A 04 3E 04 42 04 3E 04 40 04 3E 04 33 04 3E 04 B 3 +20 00 12 04 4B 04 20 00 41 04 3C 04 3E 04 36 04 K A 6 +35 04 42 04 35 04 20 00 3D 04 30 04 39 04 42 04 5 B 5 0 9 B +38 04 20 00 32 04 20 00 31 04 3B 04 38 04 36 04 8 2 1 8 6 +30 04 39 04 48 04 35 04 3C 04 20 00 33 04 3E 04 0 9 H 5 3 +40 04 3E 04 34 04 35 04 2E 00 00 00 + +[++] Server: 4A CreatureSay: len 93 +5D 00 +4A +00 00 00 00 0A 00 00 00 54 00 58 00 77 00 6B 00 J T X w k +61 00 00 00 14 04 3E 04 31 04 40 04 3E 04 20 00 a 1 +3F 04 3E 04 36 04 30 04 3B 04 3E 04 32 04 30 04 6 0 2 0 +42 04 4C 04 20 00 3D 04 30 04 20 00 41 04 35 04 B L 0 A 5 +40 04 32 04 35 04 40 04 20 00 4E 00 4C 00 20 00 2 5 N L +78 00 31 00 30 00 2E 00 00 00 + +[++] Server: 4A CreatureSay: len 81 +51 00 +4A +00 00 00 00 0A 00 00 00 00 00 1D 04 30 04 47 04 J 0 G +30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 0 A O M 2 5 +3D 04 42 04 20 00 27 00 54 00 68 00 65 00 20 00 B T h e +46 00 61 00 6C 00 6C 00 20 00 48 00 61 00 72 00 F a l l H a r +76 00 65 00 73 00 74 00 27 00 2E 00 00 00 + +[++] Server: 4A CreatureSay: len 99 +63 00 +4A +00 00 00 00 0A 00 00 00 00 00 1D 04 30 04 47 04 J 0 G +30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 0 A O M 2 5 +3D 04 42 04 20 00 27 00 4C 00 32 00 20 00 4D 00 B L 2 M +65 00 64 00 61 00 6C 00 20 00 43 00 6F 00 6C 00 e d a l C o l +6C 00 65 00 63 00 74 00 69 00 6F 00 6E 00 20 00 l e c t i o n +45 00 76 00 65 00 6E 00 74 00 27 00 2E 00 00 00 E v e n t + diff --git a/docs/gamepackets/Die.txt b/docs/gamepackets/Die.txt new file mode 100644 index 0000000..90920b5 --- /dev/null +++ b/docs/gamepackets/Die.txt @@ -0,0 +1,13 @@ +Server: Len 35 [Die] +23 00 +00 +3F 8E 05 10 // objectID? +01 00 00 00 // 1 - can resurrect to nearest village +00 00 00 00 // 1 - can res to CH +01 00 00 00 // 1 - can res to castle +00 00 00 00 // 1 - can res to siege HQ + +also possible that next will follow: +00 00 00 00 // sweepable (blue glow) +00 00 00 00 // allow fixed res +00 00 00 00 // to fortress diff --git a/docs/gamepackets/EnterWorld.txt b/docs/gamepackets/EnterWorld.txt new file mode 100644 index 0000000..bbf66fa --- /dev/null +++ b/docs/gamepackets/EnterWorld.txt @@ -0,0 +1,78 @@ +Java server ignores all EnterWorld content, parsing unknown :( + +Client: Len 107 +6B 00 +11 +00 00 00 00 +00 00 00 00 +00 00 00 00 +00 00 00 00 +C9 BC F2 A7 +66 5A 0B 98 +36 A5 BD 89 +ED 7F E4 D7 +6B 49 E2 9F +EF 76 EB CE +A3 FA F4 BF +0C 64 A3 B4 +A4 CE DC C6 +08 3E 6E EA +45 CA D3 FE +88 13 87 B8 +06 2C 96 F0 +9B 1E 8E BC +C6 9B 98 C8 +63 16 CF D0 +29 00 00 00 +0A E1 74 17 +0A 08 00 08 +5C 32 BD E1 +5C 32 BE 01 +5C 32 BE 22 + +same char as above: + +Client: Len 107 +6B 00 +11 +00 00 00 00 +00 00 00 00 +00 00 00 00 +00 00 00 00 +C9 BC F2 A7 +66 5A 0B 98 +36 A5 BD 89 +ED 7F E4 D7 +6B 49 E2 9F +EF 76 EB CE +A3 FA F4 BF +0C 64 A3 B4 +A4 CE DC C6 +08 3E 6E EA +45 CA D3 FE +88 13 87 B8 +06 2C 96 F0 +9B 1E 8E BC +C6 9B 98 C8 +63 16 CF D0 +29 00 00 00 +0A E1 74 17 +0A 08 00 08 +5C 32 BD E1 +5C 32 BE 01 +5C 32 BE 22 + +different acc, different char: + +Client: Len 107 +6B 00 +11 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +C9 BC F2 A7 66 5A 0B 98 36 A5 BD 89 ED 7F E4 D7 +6B 49 E2 9F EF 76 EB CE A3 FA F4 BF 0C 64 A3 B4 +A4 CE DC C6 08 3E 6E EA 45 CA D3 FE 88 13 87 B8 +06 2C 96 F0 9B 1E 8E BC C6 9B 98 C8 63 16 CF D0 +29 00 00 00 0A E1 74 17 0A 08 00 08 5C 32 BD E1 +5C 32 BE 22 5E 19 03 41 + +last 2 D's are different, depend on char and/or account \ No newline at end of file diff --git a/docs/gamepackets/EtcStatusUpdate.txt b/docs/gamepackets/EtcStatusUpdate.txt new file mode 100644 index 0000000..c65cc72 --- /dev/null +++ b/docs/gamepackets/EtcStatusUpdate.txt @@ -0,0 +1,11 @@ +Server: F9 EtcStatusUpdate: len 35 +23 00 +F9 +00 00 00 00 // 1-7 increase force, lvl +00 00 00 00 // 1-4 weight penalty, lvl (1=50%, 2=66.6%, 3=80%, 4=100%) +00 00 00 00 // 1 = block all chat +00 00 00 00 // 1 = danger area +00 00 00 00 // 1 = grade penalty +00 00 00 00 // 1 = charm of courage (allows resurrection on the same spot upon death on the siege battlefield) +00 00 00 00 // 1-15 death penalty, lvl (combat ability decreased due to death) +00 00 00 00 // _activeChar.getSouls() diff --git a/docs/gamepackets/GameGuard.txt b/docs/gamepackets/GameGuard.txt new file mode 100644 index 0000000..f3e64e0 --- /dev/null +++ b/docs/gamepackets/GameGuard.txt @@ -0,0 +1,9 @@ +Server: Len 19 [GameGuardQuery] +13 00 +74 +D9 3D 53 27 1D A5 72 2E 8B 03 17 20 A3 1E 5B C3 + +Client: Len 19 [GameGuardReply] +13 00 +CB +7F 97 F0 78 04 3C E6 D6 71 0C F6 89 DD 9E 06 70 diff --git a/docs/gamepackets/JoinParty.txt b/docs/gamepackets/JoinParty.txt new file mode 100644 index 0000000..fbe0b23 --- /dev/null +++ b/docs/gamepackets/JoinParty.txt @@ -0,0 +1,10 @@ +Server: Len 7 +07 00 +3A +00 00 00 00 // response + +protected final void writeImpl() +{ + writeC(0x3a); + writeD(_response); +} diff --git a/docs/gamepackets/KeyPacket.txt b/docs/gamepackets/KeyPacket.txt new file mode 100644 index 0000000..8e4873a --- /dev/null +++ b/docs/gamepackets/KeyPacket.txt @@ -0,0 +1,22 @@ +=================================== +L2J +19 00 // p.len 25 +2E // pcode +01 // always const +42 55 77 8F C3 05 69 87 // xorkey first part +01 00 00 00 // always const +01 // possible Game Server ID // on L2J always 01 +00 00 00 00 // always NULLs +00 00 00 00 // in L2J always NULLs - no obfuscation + +========================================== +Retail NCSoft +19 00 // p.len 25 +2E // pcode +01 // always const +42 55 77 8F C3 05 69 87 // xorkey first part +01 00 00 00 // always const +01 // possible Game Server ID - depends on game server ID +00 00 00 00 // always NULLs +XX XX XX XX // always different, non-nulls: opcode obfuscator + \ No newline at end of file diff --git a/docs/gamepackets/Logout.txt b/docs/gamepackets/Logout.txt new file mode 100644 index 0000000..08aa7ee --- /dev/null +++ b/docs/gamepackets/Logout.txt @@ -0,0 +1,8 @@ +Client: Len 3 +03 00 +00 + +send when IN_GAME mode, to disconnect and close client +if restart possible server responds with 0x84 LeaveWorld from IN_GAME mode + +from character selection screen, whe client sends this packet, server just disconencts... TODO: check... \ No newline at end of file diff --git a/docs/gamepackets/MagicSkillUse.txt b/docs/gamepackets/MagicSkillUse.txt new file mode 100644 index 0000000..1611092 --- /dev/null +++ b/docs/gamepackets/MagicSkillUse.txt @@ -0,0 +1,15 @@ +Server: Len 49 [MagicSkillUse] +31 00 +48 +6C 08 00 10 // objectId +AC 16 00 10 // targetObjectId +79 05 00 00 // skillID 1401 - Major HEal +0A 00 00 00 // skillLevel level 10 +57 07 00 00 // hitTime cast time 1879 ms +CF 08 00 00 // reuseDelay 2255 reuse delay +5B AD 00 00 // x +E5 A4 00 00 // y +5D F2 FF FF // z +00 00 00 00 // ?? +00 00 00 00 // ?? +00 00 // ?? diff --git a/docs/gamepackets/MoveToPawn.txt b/docs/gamepackets/MoveToPawn.txt new file mode 100644 index 0000000..8ec8a8a --- /dev/null +++ b/docs/gamepackets/MoveToPawn.txt @@ -0,0 +1,11 @@ +Server: Len 27 [MoveToPawn] +1B 00 +72 // MoveToPawn +6C 08 00 10 // _charObjId // 6C080010 objectID who is moving (can be user at least) +B2 16 00 10 // _targetId // B2160010 is target object id, to which he moves to +39 00 00 00 // _distance wtf is 57?.. +C7 AC 00 00 // x +0A A6 00 00 // y dunno if it is user coordinates or mob coordinates +5D F2 FF FF // z + +possible these are target's coordinates diff --git a/docs/gamepackets/NewCharacter.txt b/docs/gamepackets/NewCharacter.txt new file mode 100644 index 0000000..4b9637b --- /dev/null +++ b/docs/gamepackets/NewCharacter.txt @@ -0,0 +1,3 @@ +Client: Len 3 [NewCharacter] +03 00 // packet length - 3 bytes +13 // opcode \ No newline at end of file diff --git a/docs/gamepackets/NewCharacterSuccess.txt b/docs/gamepackets/NewCharacterSuccess.txt new file mode 100644 index 0000000..f3c4dc7 --- /dev/null +++ b/docs/gamepackets/NewCharacterSuccess.txt @@ -0,0 +1,28 @@ +Server: Len 967 [NewCharacterSuccess] +C7 03 +0D // opcode +0C 00 00 00 // number of templates + +// [ for each template ] + +00 00 00 00 // race +00 00 00 00 // class id +46 00 00 00 // 0x46 +28 00 00 00 // base STR +0A 00 00 00 // 0x0A +46 00 00 00 // 0x46 +1E 00 00 00 // base DEX +0A 00 00 00 +46 00 00 00 +2B 00 00 00 // base CON +0A 00 00 00 +46 00 00 00 +15 00 00 00 // base INT +0A 00 00 00 +46 00 00 00 +0B 00 00 00 // base WIT +0A 00 00 00 +46 00 00 00 +19 00 00 00 // base MEN +0A 00 00 00 + diff --git a/docs/gamepackets/NpcHtmlMessage.txt b/docs/gamepackets/NpcHtmlMessage.txt new file mode 100644 index 0000000..d209106 --- /dev/null +++ b/docs/gamepackets/NpcHtmlMessage.txt @@ -0,0 +1,117 @@ +Server: Len 1503 [NpcHtmlMessage] +DF 05 +19 +AC 16 00 10 // npcObjectID +3C 00 68 00 ... 3E 00 00 00 // html +00 00 00 00 // itemID + +writeC(0x19); +writeD(_npcObjId); +writeS(_html); +writeD(_itemId); + +/** + * + * the HTML parser in the client knowns these standard and non-standard tags and attributes + * VOLUMN + * UNKNOWN + * UL + * U + * TT + * TR + * TITLE + * TEXTCODE + * TEXTAREA + * TD + * TABLE + * SUP + * SUB + * STRIKE + * SPIN + * SELECT + * RIGHT + * PRE + * P + * OPTION + * OL + * MULTIEDIT + * LI + * LEFT + * INPUT + * IMG + * I + * HTML + * H7 + * H6 + * H5 + * H4 + * H3 + * H2 + * H1 + * FONT + * EXTEND + * EDIT + * COMMENT + * COMBOBOX + * CENTER + * BUTTON + * BR + * BODY + * BAR + * ADDRESS + * A + * SEL + * LIST + * VAR + * FORE + * READONL + * ROWS + * VALIGN + * FIXWIDTH + * BORDERCOLORLI + * BORDERCOLORDA + * BORDERCOLOR + * BORDER + * BGCOLOR + * BACKGROUND + * ALIGN + * VALU + * READONLY + * MULTIPLE + * SELECTED + * TYP + * TYPE + * MAXLENGTH + * CHECKED + * SRC + * Y + * X + * QUERYDELAY + * NOSCROLLBAR + * IMGSRC + * B + * FG + * SIZE + * FACE + * COLOR + * DEFFON + * DEFFIXEDFONT + * WIDTH + * VALUE + * TOOLTIP + * NAME + * MIN + * MAX + * HEIGHT + * DISABLED + * ALIGN + * MSG + * LINK + * HREF + * ACTION + * + * + * @version $Revision: 1.3.2.1.2.3 $ $Date: 2005/03/27 15:29:57 $ + */ + +// html code must not exceed 8192 bytes \ No newline at end of file diff --git a/docs/gamepackets/PartySmallWindowAll.txt b/docs/gamepackets/PartySmallWindowAll.txt new file mode 100644 index 0000000..ca04a9a --- /dev/null +++ b/docs/gamepackets/PartySmallWindowAll.txt @@ -0,0 +1,51 @@ +Server: Len 75 +4B 00 +4E +6C 08 00 10 // party leader object id +00 00 00 00 // party loot type +01 00 00 00 // number of members (except you) + +6C 08 00 10 // member oobject id +41 00 65 00 72 00 69 00 6E 00 00 00 // member name +CD 06 00 00 // current cp +CD 06 00 00 // max cp +61 0D 00 00 // current hp +61 0D 00 00 // max hp +7B 0A 00 00 // current mp +7B 0A 00 00 // max mp +50 00 00 00 // level +1E 00 00 00 // class id +00 00 00 00 // constant 00 00 00 00 +01 00 00 00 // race +00 00 00 00 // constant 00 00 00 00 + + + protected final void writeImpl() + { + writeC(0x4e); + writeD(_partyMembers.get(0).getObjectId()); // c3 party leader id + writeD(_partyMembers.get(0).getParty().getLootDistribution());//c3 party loot type (0,1,2,....) + writeD(_partyMembers.size()-1); + + for(L2PcInstance member: _partyMembers) + { + if (member != _exclude) + { + writeD(member.getObjectId()); + writeS(member.getName()); + + writeD((int) member.getCurrentCp()); //c4 + writeD(member.getMaxCp()); //c4 + + writeD((int) member.getCurrentHp()); + writeD(member.getMaxHp()); + writeD((int) member.getCurrentMp()); + writeD(member.getMaxMp()); + writeD(member.getLevel()); + writeD(member.getClassId().getId()); + writeD(0);//writeD(0x01); ?? + writeD(member.getRace().ordinal()); + writeD(0); + } + } + } \ No newline at end of file diff --git a/docs/gamepackets/PrivateStoreListBuy.txt b/docs/gamepackets/PrivateStoreListBuy.txt new file mode 100644 index 0000000..26e0b4e --- /dev/null +++ b/docs/gamepackets/PrivateStoreListBuy.txt @@ -0,0 +1,49 @@ +Server: Len 81 [PrivateStoreListBuy] +51 00 +BE +CE 09 00 10 // buyer oid +EA B0 0B 00 // cur.user adena +01 00 00 00 // sell items count + // for each item +C7 09 00 10 // item oid +F4 25 00 00 // item itemID +00 00 // enchant +02 00 00 00 // count +00 00 00 00 // reference price +00 00 // 00 +00 00 00 00 // body part +05 00 // type2 +01 00 00 00 // buyers price +02 00 00 00 // ma buy amount +FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // attributes + +writeC(0xbe); +writeD(_objId); // buyer +writeD(_playerAdena); + +writeD(_items.length); + +for (TradeList.TradeItem item : _items) +{ + writeD(item.getObjectId()); + writeD(item.getItem().getItemId()); + writeH(item.getEnchant()); + writeD(item.getCount()); //give max possible sell amount + + writeD(item.getItem().getReferencePrice()); + writeH(0); + + writeD(item.getItem().getBodyPart()); + writeH(item.getItem().getType2()); + writeD(item.getPrice());//buyers price + + writeD(item.getCount()); // maximum possible tradecount + + // T1 + writeD(item.getAttackElementType()); + writeD(item.getAttackElementPower()); + for (byte i = 0; i < 6; i++) + { + writeD(item.getElementDefAttr(i)); + } +} diff --git a/docs/gamepackets/PrivateStoreListSell.txt b/docs/gamepackets/PrivateStoreListSell.txt new file mode 100644 index 0000000..8a4552f --- /dev/null +++ b/docs/gamepackets/PrivateStoreListSell.txt @@ -0,0 +1,67 @@ +Server: Len 85 [PrivateStoreListSell] +55 00 +A1 +CE 09 00 10 // seller oid +00 00 00 00 // is package sale +EB B0 0B 00 // cur.user adena +01 00 00 00 // sell items count + /// for each item +05 00 00 00 // type2 +D0 09 00 10 // item oid +F4 25 00 00 // item itemID +01 00 00 00 // item count +00 00 // 00 +00 00 // enchant +00 00 // 00 +00 00 00 00 // body part +01 00 00 00 // sell price +00 00 00 00 // reference price (original price) +FE FF FF FF // atk attr type +00 00 00 00 // atk attr val +00 00 00 00 // def fire +00 00 00 00 // def water +00 00 00 00 // def wind +00 00 00 00 // def earth +00 00 00 00 // def holy +00 00 00 00 // def dark + + // player's private shop + public PrivateStoreListSell(L2PcInstance player, L2PcInstance storePlayer) + { + _objId = storePlayer.getObjectId(); + _playerAdena = player.getAdena(); + _items = storePlayer.getSellList().getItems(); + _packageSale = storePlayer.getSellList().isPackaged(); + } + + @Override + protected final void writeImpl() + { + writeC(0xa1); + writeD(_objId); + writeD(_packageSale ? 1 : 0); + writeD(_playerAdena); + + writeD(_items.length); + for (TradeList.TradeItem item : _items) + { + writeD(item.getItem().getType2()); + writeD(item.getObjectId()); + writeD(item.getItem().getItemId()); + writeD(item.getCount()); + writeH(0x00); + writeH(item.getEnchant()); + writeH(0x00); + writeD(item.getItem().getBodyPart()); + writeD(item.getPrice()); //your price + writeD(item.getItem().getReferencePrice()); //store price + + // T1 + writeD(item.getAttackElementType()); + writeD(item.getAttackElementPower()); + for (byte i = 0; i < 6; i++) + { + writeD(item.getElementDefAttr(i)); + } + } + } diff --git a/docs/gamepackets/PrivateStoreManageListBuy.txt b/docs/gamepackets/PrivateStoreManageListBuy.txt new file mode 100644 index 0000000..45121a8 --- /dev/null +++ b/docs/gamepackets/PrivateStoreManageListBuy.txt @@ -0,0 +1,4 @@ +Server: Len 451 [PrivateStoreManageListBuy] +C3 01 +BD // pcode +D1 73 02 10 C5 97 06 00 08 00 00 00 E0 02 00 00 00 00 01 00 00 00 90 01 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 27 00 00 00 00 01 00 00 00 74 0E 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 25 04 00 00 00 00 6E 00 00 00 4A 01 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6D 0F 00 00 00 00 E8 01 00 00 5A 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 07 00 00 00 00 04 00 00 00 B4 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B8 05 00 00 00 00 BC 0E 00 00 0F 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F4 25 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3A 11 00 00 00 00 41 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \ No newline at end of file diff --git a/docs/gamepackets/PrivateStoreManageListSell.txt b/docs/gamepackets/PrivateStoreManageListSell.txt new file mode 100644 index 0000000..a0485e5 --- /dev/null +++ b/docs/gamepackets/PrivateStoreManageListSell.txt @@ -0,0 +1,59 @@ +/** + * 3 section to this packet + * 1)playerinfo which is always sent + * 2)list of items which can be added to sell + * 3)list of items which have already been setup + */ + +Server: Len 2255 [PrivateStoreManageListSell] +CF 08 +A0 // pcode + +// section 1 + +09 A5 04 10 // player (user) objectID +00 00 00 00 // is package sale +87 C1 00 00 // player (user) adena + +// section 2 + +24 00 00 00 // items count in section 2 + [[ for each item ]] +05 00 00 00 // type2 +39 D6 05 10 // objectID +B2 05 00 00 // itemID +2E 00 00 00 // count +00 00 // 00 +00 00 // enchant +00 00 // 00 +00 00 00 00 // body part +8A 02 00 00 // store price +FE FF FF FF // atk attr type +00 00 00 00 // atk attr val +00 00 00 00 // fire def +00 00 00 00 // water def +00 00 00 00 // wind def +00 00 00 00 // earth def +00 00 00 00 // holy def +00 00 00 00 // dark def + +// section 2 +00 00 00 00 // items count in section 3 +D // type2 +D // oid +D // itemID +D // cnt +H // 0 +H // ench +H // 0 +D // b.part +D // your price +D // referencePrice (store price) +FE FF FF FF // atk attr type +00 00 00 00 // atk attr val +00 00 00 00 // fire def +00 00 00 00 // water def +00 00 00 00 // wind def +00 00 00 00 // earth def +00 00 00 00 // holy def +00 00 00 00 // dark def diff --git a/docs/gamepackets/PrivateStoreMsgBuy.txt b/docs/gamepackets/PrivateStoreMsgBuy.txt new file mode 100644 index 0000000..2bbf494 --- /dev/null +++ b/docs/gamepackets/PrivateStoreMsgBuy.txt @@ -0,0 +1,13 @@ +Server: Len 45 [PrivateStoreMsgBuy] +2D 00 +BF +99 73 06 10 // objectID +6B 00 61 00 ... 00 00 // store msg + + +protected final void writeImpl() +{ + writeC(0xbf); + writeD(_objId); + writeS(_storeMsg); +} diff --git a/docs/gamepackets/ProtocolVersion-l2emu_client_t1.txt b/docs/gamepackets/ProtocolVersion-l2emu_client_t1.txt new file mode 100644 index 0000000..5f1143b --- /dev/null +++ b/docs/gamepackets/ProtocolVersion-l2emu_client_t1.txt @@ -0,0 +1,21 @@ +C->S +0B 01 // len +0E // p.code ProtocolVersion +3C 03 00 00 // protocol - 828 +09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02 +55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53 +00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04 +54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56 +56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04 +07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05 +52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02 +04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51 +55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05 +08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07 +53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02 +53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01 +05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06 +01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01 +04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D +01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06 +8D 71 5F 08 \ No newline at end of file diff --git a/docs/gamepackets/ProtocolVersion_GraciaEpilogue.txt b/docs/gamepackets/ProtocolVersion_GraciaEpilogue.txt new file mode 100644 index 0000000..52b595f --- /dev/null +++ b/docs/gamepackets/ProtocolVersion_GraciaEpilogue.txt @@ -0,0 +1,20 @@ +0B 01 // len +0E +92 00 00 00 +09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02 +55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53 +00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04 +54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56 +56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04 +07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05 +52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02 +04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51 +55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05 +08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07 +53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02 +53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01 +05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06 +01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01 +04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D +01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06 +A6 23 F4 FE \ No newline at end of file diff --git a/docs/gamepackets/ProtocolVersion_GraciaPart2.txt b/docs/gamepackets/ProtocolVersion_GraciaPart2.txt new file mode 100644 index 0000000..28ea342 --- /dev/null +++ b/docs/gamepackets/ProtocolVersion_GraciaPart2.txt @@ -0,0 +1,20 @@ +0B 01 +0E +0C 00 00 00 +09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02 +55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53 +00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04 +54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56 +56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04 +07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05 +52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02 +04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51 +55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05 +08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07 +53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02 +53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01 +05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06 +01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01 +04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D +01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06 +EB EF 3D E6 \ No newline at end of file diff --git a/docs/gamepackets/ProtocolVersion_HellboundClient.txt b/docs/gamepackets/ProtocolVersion_HellboundClient.txt new file mode 100644 index 0000000..1e24597 --- /dev/null +++ b/docs/gamepackets/ProtocolVersion_HellboundClient.txt @@ -0,0 +1,21 @@ +C->S Len 267 +0B 01 // len +0E // p. code +3F 03 00 00 // protocol - 831 (Hellbound?) +09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02 +55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53 +00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04 +54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56 +56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04 +07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05 +52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02 +04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51 +55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05 +08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07 +53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02 +53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01 +05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06 +01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01 +04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D +01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06 +FB 87 B9 4A \ No newline at end of file diff --git a/docs/gamepackets/RecipeShopMsg.txt b/docs/gamepackets/RecipeShopMsg.txt new file mode 100644 index 0000000..a51a942 --- /dev/null +++ b/docs/gamepackets/RecipeShopMsg.txt @@ -0,0 +1,4 @@ +Server: Len 43 [RecipeShopMsg] +2B 00 +E1 +86 C5 01 10 2D 00 3D 00 3D 00 3D 00 44 00 45 00 4C 00 41 00 79 00 20 00 43 00 41 00 4D 00 3D 00 3D 00 3D 00 2D 00 00 00 \ No newline at end of file diff --git a/docs/gamepackets/RequestAutoSoulShot.txt b/docs/gamepackets/RequestAutoSoulShot.txt new file mode 100644 index 0000000..b7dbe9b --- /dev/null +++ b/docs/gamepackets/RequestAutoSoulShot.txt @@ -0,0 +1,6 @@ +Client Len 13 [RequestAutoSoulShot] +0D 00 +D0 +0D 00 +6F 0F 00 00 // itemID +01 00 00 00 // 1 - on, 0 - off diff --git a/docs/gamepackets/RequestBuyItem.txt b/docs/gamepackets/RequestBuyItem.txt new file mode 100644 index 0000000..a2c62ce --- /dev/null +++ b/docs/gamepackets/RequestBuyItem.txt @@ -0,0 +1,8 @@ +Client: Len 19 [RequestBuyItem] +13 00 +40 +90 00 00 00 // list ID +01 00 00 00 // count + [[ for each item ]] +25 04 00 00 // itemID +64 00 00 00 // count \ No newline at end of file diff --git a/docs/gamepackets/RequestBypassToServer.txt b/docs/gamepackets/RequestBypassToServer.txt new file mode 100644 index 0000000..9478db0 --- /dev/null +++ b/docs/gamepackets/RequestBypassToServer.txt @@ -0,0 +1,8 @@ +Client: Len 45 [RequestBypassToServer] +2D 00 +23 +6E 00 70 00 63 00 5F 00 32 00 36 00 38 00 34 00 +33 00 37 00 39 00 39 00 30 00 5F 00 43 00 68 00 +61 00 74 00 20 00 31 00 00 00 + +_command = readS() diff --git a/docs/gamepackets/RequestCrystallizeItem.txt b/docs/gamepackets/RequestCrystallizeItem.txt new file mode 100644 index 0000000..b47d5a0 --- /dev/null +++ b/docs/gamepackets/RequestCrystallizeItem.txt @@ -0,0 +1,5 @@ +Client: Len 11 +0B 00 +2F +13 14 04 10 // objectID 268702739 +01 00 00 00 // count 1 diff --git a/docs/gamepackets/RequestDestroyItem.txt b/docs/gamepackets/RequestDestroyItem.txt new file mode 100644 index 0000000..4464135 --- /dev/null +++ b/docs/gamepackets/RequestDestroyItem.txt @@ -0,0 +1,5 @@ +Client: Len 11 [RequestDestroyItem] +0B 00 +60 +71 08 00 10 // objectID +01 00 00 00 // count diff --git a/docs/gamepackets/RequestDispel.txt b/docs/gamepackets/RequestDispel.txt new file mode 100644 index 0000000..7771aa2 --- /dev/null +++ b/docs/gamepackets/RequestDispel.txt @@ -0,0 +1,5 @@ +Client: Len 13 [RequestDispel] +0D 00 +D0 4E 00 // D0:004E RequestDispel +4B 05 00 00 // skillID 1355 (PoWater?) +01 00 00 00 // skillLvl lvl 1 diff --git a/docs/gamepackets/RequestDropItem.txt b/docs/gamepackets/RequestDropItem.txt new file mode 100644 index 0000000..2c9981e --- /dev/null +++ b/docs/gamepackets/RequestDropItem.txt @@ -0,0 +1,14 @@ +Client: Len 23 [RequestDropItem] +17 00 +17 +E4 09 00 10 // objectID +01 00 00 00 // count +F4 AA 00 00 // x +2F A4 00 00 // y +43 F2 FF FF // z + +_objectId = readD(); +_count = readD(); +_x = readD(); +_y = readD(); +_z = readD(); diff --git a/docs/gamepackets/RequestJoinParty.txt b/docs/gamepackets/RequestJoinParty.txt new file mode 100644 index 0000000..207c798 --- /dev/null +++ b/docs/gamepackets/RequestJoinParty.txt @@ -0,0 +1,5 @@ +Client: Len 15 +0F 00 +42 +6C 00 6F 00 6C 00 00 00 // target char name +00 00 00 00 // loot type, item distribution \ No newline at end of file diff --git a/docs/gamepackets/RequestOustPartyMember.txt b/docs/gamepackets/RequestOustPartyMember.txt new file mode 100644 index 0000000..93b997c --- /dev/null +++ b/docs/gamepackets/RequestOustPartyMember.txt @@ -0,0 +1,9 @@ +protected void readImpl() +{ + _name = readS(); +} + +Client: Len 13 +0D 00 +45 +4C 00 65 00 78 00 78 00 00 00 diff --git a/docs/gamepackets/RequestPrivateStoreBuy.txt b/docs/gamepackets/RequestPrivateStoreBuy.txt new file mode 100644 index 0000000..41e2277 --- /dev/null +++ b/docs/gamepackets/RequestPrivateStoreBuy.txt @@ -0,0 +1,9 @@ +Client: Len 23 [RequestPrivateStoreBuy] +17 00 +83 // pcode +CE 09 00 10 // seller player oid +01 00 00 00 // count + // for each item +D0 09 00 10 // item oid +01 00 00 00 // count +01 00 00 00 // price \ No newline at end of file diff --git a/docs/gamepackets/RequestPrivateStoreQuitBuy.txt b/docs/gamepackets/RequestPrivateStoreQuitBuy.txt new file mode 100644 index 0000000..7902fd3 --- /dev/null +++ b/docs/gamepackets/RequestPrivateStoreQuitBuy.txt @@ -0,0 +1 @@ +Client: Len 3 [RequestPrivateStoreQuitBuy] | 03 00 / 9C / \ No newline at end of file diff --git a/docs/gamepackets/RequestPrivateStoreQuitSell.txt b/docs/gamepackets/RequestPrivateStoreQuitSell.txt new file mode 100644 index 0000000..15bb96e --- /dev/null +++ b/docs/gamepackets/RequestPrivateStoreQuitSell.txt @@ -0,0 +1 @@ +Client: Len 3 [RequestPrivateStoreQuitSell] | 03 00 / 96 / \ No newline at end of file diff --git a/docs/gamepackets/RequestPrivateStoreSell.txt b/docs/gamepackets/RequestPrivateStoreSell.txt new file mode 100644 index 0000000..a1f6d3e --- /dev/null +++ b/docs/gamepackets/RequestPrivateStoreSell.txt @@ -0,0 +1,11 @@ +Client: Len 31 [RequestPrivateStoreSell] +1F 00 +9F // pcode +CE 09 00 10 // seller oid +01 00 00 00 // count + +C7 09 00 10 // oid +F4 25 00 00 // iid +00 00 00 00 // ?? 0x00000000 +02 00 00 00 // cnt +01 00 00 00 // price \ No newline at end of file diff --git a/docs/gamepackets/RequestRestart.txt b/docs/gamepackets/RequestRestart.txt new file mode 100644 index 0000000..93ad1e2 --- /dev/null +++ b/docs/gamepackets/RequestRestart.txt @@ -0,0 +1,6 @@ +Client: Len 3 +03 00 +57 + +send when IN_GAME mode, to character select screen. +if restart possible server responds with 0x57 RestartResponse \ No newline at end of file diff --git a/docs/gamepackets/RequestRestartPoint.txt b/docs/gamepackets/RequestRestartPoint.txt new file mode 100644 index 0000000..64ed889 --- /dev/null +++ b/docs/gamepackets/RequestRestartPoint.txt @@ -0,0 +1,15 @@ +Client: Len 7 [RequestRestartPoint] +07 00 +7D +00 00 00 00 // 00 - to village + + +case 1: // to clanhall +case 2: // to castle +case 3: // to fortress +case 4: // to siege HQ +case 5: // Fixed or Player is a festival participant + +after successful restart point server sends TeleportToLocation +then client send Appearing +then server sends Revive \ No newline at end of file diff --git a/docs/gamepackets/RequestSaveInventoryOrder.txt b/docs/gamepackets/RequestSaveInventoryOrder.txt new file mode 100644 index 0000000..3e8ce09 --- /dev/null +++ b/docs/gamepackets/RequestSaveInventoryOrder.txt @@ -0,0 +1,7 @@ +Client Len 49 [RequestSaveInventoryOrder] +31 00 +D0 +24 00 +05 00 00 00 6E 08 00 10 00 00 00 00 6F 08 00 10 01 00 +00 00 70 08 00 10 02 00 00 00 EC 09 00 10 03 00 +00 00 F5 0C 00 10 04 00 00 00 diff --git a/docs/gamepackets/RequestSellItem.txt b/docs/gamepackets/RequestSellItem.txt new file mode 100644 index 0000000..c215132 --- /dev/null +++ b/docs/gamepackets/RequestSellItem.txt @@ -0,0 +1,13 @@ +Client: Len 59 [RequestSellItem] +3B 00 +37 // pcode +00 00 00 00 // list ID (0 - to NPC?) +04 00 00 00 // count + [[ for each item ]] +1D 21 01 10 // objectID +F0 0F 00 00 // itemID +01 00 00 00 // count + +B4 20 01 10 F9 0F 00 00 01 00 00 00 +A5 1C 01 10 03 10 00 00 02 00 00 00 +05 23 01 10 F8 0F 00 00 01 00 00 00 \ No newline at end of file diff --git a/docs/gamepackets/RequestSkillCoolTime.txt b/docs/gamepackets/RequestSkillCoolTime.txt new file mode 100644 index 0000000..70a7862 --- /dev/null +++ b/docs/gamepackets/RequestSkillCoolTime.txt @@ -0,0 +1,3 @@ +Client: Len 3 +03 00 +A6 \ No newline at end of file diff --git a/docs/gamepackets/RequestTargetCanceld.txt b/docs/gamepackets/RequestTargetCanceld.txt new file mode 100644 index 0000000..621e17f --- /dev/null +++ b/docs/gamepackets/RequestTargetCanceld.txt @@ -0,0 +1,4 @@ +Client Len 5 [ RequestTargetCanceld] +05 00 +48 +00 00 \ No newline at end of file diff --git a/docs/gamepackets/RequestUserCommand.txt b/docs/gamepackets/RequestUserCommand.txt new file mode 100644 index 0000000..9f82366 --- /dev/null +++ b/docs/gamepackets/RequestUserCommand.txt @@ -0,0 +1,24 @@ +Client Len 7 [ RequestUserCommand] +07 00 +B3 +00 00 00 00 // command ID + +================================ + +Decimal command numbers: + +0 - /loc +52 - /unstuck (Escape) +61 - /Mount +62 - /DisMount +77 - /time +81 - /partyinfo +88 - /AttackList +89 - /underattacklist +90 - /warlist +93 - /ChannelDelete +96 - /ChannelLeave +97 - /ChannelListUpdate +100 - /ClanPenalty +109 - /OlympiadStat +114 - /InstanceZone \ No newline at end of file diff --git a/docs/gamepackets/Revive.txt b/docs/gamepackets/Revive.txt new file mode 100644 index 0000000..6255d76 --- /dev/null +++ b/docs/gamepackets/Revive.txt @@ -0,0 +1,4 @@ +Server: Len 7 [Revive] +07 00 +01 +3F 8E 05 10 // objectID? \ No newline at end of file diff --git a/docs/gamepackets/SellList.txt b/docs/gamepackets/SellList.txt new file mode 100644 index 0000000..5362c13 --- /dev/null +++ b/docs/gamepackets/SellList.txt @@ -0,0 +1,56 @@ +Server: Len 1357 [SellList] +4D 05 +06 +6F A5 34 00 // cur money +00 00 00 00 // lease npcID ? O_o wtf +15 00 // items count + + [ for each item ] + +04 00 // type1 +C4 40 07 10 // objectID +E0 02 00 00 // itemID +0B 00 00 00 // count +05 00 // type2 +00 00 // ?? +00 00 00 00 // body part +00 00 // enchant level +00 00 00 00 // ?? +C8 00 00 00 // sell price +FE FF FF FF // atk attrib type +00 00 00 00 // atk attrib val +00 00 00 00 // def attr fire +00 00 00 00 // -- water +00 00 00 00 // -- wind +00 00 00 00 // -- earth +00 00 00 00 // -- holy +00 00 00 00 // -- unholy + + +L2J WriteImpl + + writeC(0x06); + writeD(_money); + writeD(_lease == null ? 0x00 : 1000000 + _lease.getTemplate().npcId); + writeH(_selllist.size()); + for (L2ItemInstance item : _selllist) + { + writeH(item.getItem().getType1()); + writeD(item.getObjectId()); + writeD(item.getItemId()); + writeD(item.getCount()); + writeH(item.getItem().getType2()); + writeH(0x00); + writeD(item.getItem().getBodyPart()); + writeH(item.getEnchantLevel()); + writeH(0x00); + writeH(0x00); + writeD(item.getItem().getReferencePrice()/2); + // T1 + writeD(item.getAttackElementType()); + writeD(item.getAttackElementPower()); + for (byte i = 0; i < 6; i++) + { + writeD(item.getElementDefAttr(i)); + } + } \ No newline at end of file diff --git a/docs/gamepackets/Selling.txt b/docs/gamepackets/Selling.txt new file mode 100644 index 0000000..1b75d83 --- /dev/null +++ b/docs/gamepackets/Selling.txt @@ -0,0 +1,26 @@ +Client Requests action "Sell" +Client: Len 12 [RequestActionUse] +0C 00 +56 +0A 00 00 00 // sell? +00 00 00 00 +00 + +Server send list of items which can be sold +Server: Len 2255 [PrivateStoreManageListSell] +CF 08 +A0 +09 A5 04 10 +00 00 00 00 +87 C1 00 00 +24 00 00 00 05 00 00 00 39 D6 05 10 B2 05 00 00 2E 00 00 00 00 00 00 00 00 00 00 00 00 00 8A 02 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 0E 30 05 10 49 07 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 B7 3B 05 10 DE 02 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 04 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 BC A2 05 10 E0 02 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 90 01 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 AC 36 05 10 4E 07 00 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 6B 2B 07 10 E2 07 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 CA 3A 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 CC 48 05 10 5C 08 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 03 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 CC 36 05 10 4F 07 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 14 2A 07 10 5D 07 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 60 09 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 FB 3B 07 10 59 07 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 DC 05 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 D6 2F 05 10 5F 08 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 03 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 E7 2D 07 10 5C 07 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 45 01 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 BE 36 07 10 6C 07 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 24 07 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 56 94 05 10 29 07 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 4B 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 1F 72 05 10 58 07 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 D0 07 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 AC C7 05 10 66 08 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 AA 01 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 75 44 05 10 5A 07 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 84 03 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 BE 39 07 10 ED 2E 00 00 01 00 00 00 00 00 00 00 00 00 00 01 00 00 A7 03 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 FA D6 05 10 F9 06 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 FA 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 4B 2F 07 10 87 01 00 00 01 00 00 00 00 00 00 00 00 00 00 04 00 00 48 BC 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 85 BC 04 10 4D 07 00 00 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 0B A5 04 10 F4 25 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 0C A5 04 10 9A 29 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 6D 3C 05 10 50 07 00 00 0E 00 00 00 00 00 00 00 00 00 00 00 00 00 96 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 BD A2 05 10 24 04 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 5A 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 94 FD 04 10 48 07 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 A5 72 05 10 6A 07 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 9B 07 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 BE 3C 07 10 6B 07 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 4E 14 05 10 4B 07 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 96 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 01 16 05 10 4C 07 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 0A 17 05 10 4A 07 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 2C 01 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 E7 17 05 10 51 07 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 F4 01 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 33 C5 05 10 2B 07 00 00 14 03 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 AE C9 05 10 26 14 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 88 13 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 1A CB 05 10 64 14 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 88 13 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 2D 9A 06 10 B7 05 00 00 DC 13 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +Client sets sell message "S S D" +Client: Len 11 [SetPrivateStoreMsgSell] | 0B 00 / 97 / 53 00 53 00 44 00 00 00 +Server: Len 15 [PrivateStoreMsgSell] | 0F 00 / A2 / 09 A5 04 10 53 00 53 00 44 00 00 00 + +Then client sets its sell list +Client: Len 23 [SetPrivateStoreListSell] | 17 00 / 31 / 00 00 00 00 01 00 00 00 2D 9A 06 10 DC 13 00 00 0E 00 00 00 + +Server makes client sit down +Server: Len 23 [ChangeWaitType] | 17 00 / 29 / 09 A5 04 10 00 00 00 00 B3 C4 FE FF 46 49 02 00 18 F4 FF FF \ No newline at end of file diff --git a/docs/gamepackets/SendBypassBuildCmd.txt b/docs/gamepackets/SendBypassBuildCmd.txt new file mode 100644 index 0000000..26abe8b --- /dev/null +++ b/docs/gamepackets/SendBypassBuildCmd.txt @@ -0,0 +1,5 @@ +Client: Len 13 [SendBypassBuildCmd] +0D 00 +74 +68 00 65 00 61 00 6C 00 00 00 _command = readS(); + diff --git a/docs/gamepackets/SendWarehouseDepositList.txt b/docs/gamepackets/SendWarehouseDepositList.txt new file mode 100644 index 0000000..2957665 --- /dev/null +++ b/docs/gamepackets/SendWarehouseDepositList.txt @@ -0,0 +1 @@ +Client: Len 111 [ SendWareHouseDepositList] | 6F 00 / 3B / 0D 00 00 00 53 20 01 10 02 00 00 00 D2 0C 02 10 10 00 00 00 26 1E 01 10 1F 00 00 00 8B 1D 01 10 37 00 00 00 29 1D 01 10 06 00 00 00 9A 1B 01 10 04 00 00 00 83 1B 01 10 0F 00 00 00 70 FC 00 10 18 00 00 00 F9 0C 08 10 02 00 00 00 E2 51 06 10 02 00 00 00 41 53 07 10 0E 00 00 00 94 4D 07 10 07 00 00 00 45 4D 07 10 27 00 00 00 \ No newline at end of file diff --git a/docs/gamepackets/SendWarehouseWithdrawalList.txt b/docs/gamepackets/SendWarehouseWithdrawalList.txt new file mode 100644 index 0000000..514e0f5 --- /dev/null +++ b/docs/gamepackets/SendWarehouseWithdrawalList.txt @@ -0,0 +1,4 @@ +Client: Len 103 [SendWareHouseWithDrawList] +67 00 +3C +0C 00 00 00 60 72 08 10 01 00 00 00 5E 72 08 10 01 00 00 00 61 72 08 10 01 00 00 00 5C 72 08 10 01 00 00 00 5D 72 08 10 01 00 00 00 E5 6E 07 10 01 00 00 00 E1 6E 07 10 01 00 00 00 F9 6E 07 10 01 00 00 00 03 6F 07 10 01 00 00 00 E2 6E 07 10 01 00 00 00 D0 60 07 10 01 00 00 00 B5 BB 07 10 7E 05 00 00 \ No newline at end of file diff --git a/docs/gamepackets/SetPrivateStoreListSell.txt b/docs/gamepackets/SetPrivateStoreListSell.txt new file mode 100644 index 0000000..33f37d1 --- /dev/null +++ b/docs/gamepackets/SetPrivateStoreListSell.txt @@ -0,0 +1,9 @@ +Client: Len 23 [SetPrivateStoreListSell] +17 00 +31 // pcode +00 00 00 00 // package? +01 00 00 00 // count + +2D 9A 06 10 // obj ID +DC 13 00 00 // count +0E 00 00 00 // price diff --git a/docs/gamepackets/SetupGauge.txt b/docs/gamepackets/SetupGauge.txt new file mode 100644 index 0000000..a86d47e --- /dev/null +++ b/docs/gamepackets/SetupGauge.txt @@ -0,0 +1,6 @@ +Server: Len 15 [SetupGauge] +0F 00 +6B +00 00 00 00 // color 0-blue 1-red 2-cyan 3- +57 07 00 00 // skill cast time 1879, ms +57 07 00 00 diff --git a/docs/gamepackets/ShortBuffStatusUpdate.txt b/docs/gamepackets/ShortBuffStatusUpdate.txt new file mode 100644 index 0000000..c0ef726 --- /dev/null +++ b/docs/gamepackets/ShortBuffStatusUpdate.txt @@ -0,0 +1,13 @@ +protected final void writeImpl() +{ + writeC(0xfa); + writeD(_skillId); + writeD(_skillLvl); + writeD(_duration); // in seconds! +} + +0D 00 +FA +XX XX XX XX +XX XX XX XX +XX XX XX XX // in seconds! diff --git a/docs/gamepackets/Siiting_on_Craft.txt b/docs/gamepackets/Siiting_on_Craft.txt new file mode 100644 index 0000000..90022cf --- /dev/null +++ b/docs/gamepackets/Siiting_on_Craft.txt @@ -0,0 +1,81 @@ +Client: Len 12 [RequestActionUse] | 0C 00 / 56 / 25 00 00 00 00 00 00 00 00 + +Server: Len 183 [RecipeShopManageList] +B7 00 +DE // pcode +09 A5 04 10 // seller oid +D4 A1 1E 00 // seller adena +00 00 00 00 // isCommonCraft; 0 - dwarven, 1 - common +14 00 00 00 // section 2 count +14 00 00 00 // recipe ID +01 00 00 00 // seq.number +15 00 00 00 02 00 00 00 +19 00 00 00 03 00 00 00 +1A 00 00 00 04 00 00 00 +1B 00 00 00 05 00 00 00 +1C 00 00 00 06 00 00 00 +1D 00 00 00 07 00 00 00 +1E 00 00 00 08 00 00 00 +1F 00 00 00 09 00 00 00 +20 00 00 00 0A 00 00 00 +21 00 00 00 0B 00 00 00 +22 00 00 00 0C 00 00 00 +23 00 00 00 0D 00 00 00 +24 00 00 00 0E 00 00 00 +25 00 00 00 0F 00 00 00 +26 00 00 00 10 00 00 00 +27 00 00 00 11 00 00 00 +43 01 00 00 12 00 00 00 +44 01 00 00 13 00 00 00 +60 02 00 00 14 00 00 00 +00 00 00 00 // section 3 count +XX XX XX XX // recipe id +00 00 00 00 // 0x00 +XX XX XX XX // cost + +Client: Len 25 [RequestRecipeShopMessageSet] +19 00 +BA // pcode +63 00 72 00 61 00 66 00 74 00 20 00 66 00 72 00 65 00 65 00 00 00 // unicode str + +Client: Len 31 [RequestRecipeShopListSet] +1F 00 +BB // pcode +03 00 00 00 // count + [ for each recipe ] +44 01 00 00 // recipe ID +01 00 00 00 // price + +// server makes client sit down +Server: Len 23 [ChangeWaitType] | 17 00 / 29 / 09 A5 04 10 00 00 00 00 F2 40 01 00 F5 D2 00 00 24 FA FF FF + +// +Server: Len 29 [RecipeShopMsg] +1D 00 +E1 +09 A5 04 10 // oid? +63 00 72 00 61 00 66 00 74 00 20 00 66 00 72 00 65 00 65 00 00 00 // message str + +......... + +Client: Len 3 [RequestRecipeShopManageQuit] | 03 00 / BC / + + + + +Recipe ID ==>> item ID conversion from sql table.... or some other + +Client: Len 31 [RequestRecipeShopListSet] +1F 00 +BB +03 00 00 00 + +14 00 00 00 // ssd (20) +01 00 00 00 + +15 00 00 00 // ssc (21) +02 00 00 00 + +44 01 00 00 // bssc (324) +03 00 00 00 + diff --git a/docs/gamepackets/StopMove.txt b/docs/gamepackets/StopMove.txt new file mode 100644 index 0000000..92eb38c --- /dev/null +++ b/docs/gamepackets/StopMove.txt @@ -0,0 +1,18 @@ +Server: Len 23 [StopMove] +17 00 +47 // StopMove +6C 08 00 10 // objectID of char who stopped +9A AC 00 00 // x +F9 A4 00 00 // y +5D F2 FF FF // z +45 B9 00 00 // heading + +protected final void writeImpl() +{ + writeC(0x47); + writeD(_objectId); + writeD(_x); + writeD(_y); + writeD(_z); + writeD(_heading); +} diff --git a/docs/gamepackets/TeleportToLocation.txt b/docs/gamepackets/TeleportToLocation.txt new file mode 100644 index 0000000..44199e1 --- /dev/null +++ b/docs/gamepackets/TeleportToLocation.txt @@ -0,0 +1,13 @@ +Server: Len 19 [TeleportToLocation] +13 00 +22 +6D 08 00 10 // oid 268437613 +3F 1D 01 00 // x 73023 +DC CE 01 00 // y 118492 +9D F1 FF FF // z -3683 + +writeC(0x22); +writeD(_targetObjId); +writeD(_x); +writeD(_y); +writeD(_z); \ No newline at end of file diff --git a/docs/gamepackets/TradeRequest.txt b/docs/gamepackets/TradeRequest.txt new file mode 100644 index 0000000..279336b --- /dev/null +++ b/docs/gamepackets/TradeRequest.txt @@ -0,0 +1,81 @@ +Trading (requester sends): +Client: Len 7 [TradeRequest] | 07 00 +1A // pcode +C5 09 00 10 // objectID of partner + +Trade receiver recieves: +Server: Len 7 [SendTradeRequest] +07 00 +70 // pcode +CE 09 00 10 // object ID of person who wants to trade to you + +Trade receiver responds: +Client: Len 7 [AnswerTradeRequest] +07 00 +55 // pcode +01 00 00 00 // 1 - ok, 0 - cancel + +// then both (requester and receiver) receive +Server: Len 189 [TradeStart] +BD 00 +14 // pcode +C5 09 00 10 // partner objectID +03 00 // items count (your inv) + /// for each item +04 00 // item type1 +CF 09 00 10 // item oid +D4 15 00 00 // item iid +01 00 00 00 // item count +05 00 // item type2 +00 00 // 00 +00 00 00 00 // body part +00 00 // enchant +00 00 00 00 // 0000 +FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // attribs + +Server: Len 65 [TradeOtherAdd] +41 00 +1B // pcode +01 00 // item cnt +04 00 // type1 +C0 09 00 10 // oid +39 00 00 00 // iid +0D 00 00 00 // cnt +04 00 // type2 +00 00 // 00 +00 00 00 00 // b.part +00 00 // enchatnt +00 00 00 00 // 00 ?? +FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // attribs + +Client: Len 15 [AddTradeItem] +0F 00 +1B // pcode +01 00 00 00 // tradeId? O_o wtf L2J ignores this +D1 09 00 10 // objectID +01 00 00 00 // count + +Server: Len 65 [TradeOwnAdd] +41 00 +1A // pcode +01 00 // count +04 00 // type1 +D1 09 00 10 // oid +9A 29 00 00 // iid +01 00 00 00 // cnt +05 00 // type2 +00 00 // 00 +00 00 00 00 // b.part +00 00 // enchant +00 00 00 00 // 00 +FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // attribs + +Client: Len 7 [TradeDone] +07 00 +1C // pcode +01 00 00 00 // num; 1 - confirm, 0 - cancel trade + +Server: Len 7 [TradeDone] +07 00 +1C // pcode +01 00 00 00 // num; 1 - confirm, 0 - cancel trade diff --git a/docs/gamepackets/UseItem.txt b/docs/gamepackets/UseItem.txt new file mode 100644 index 0000000..e0c3a40 --- /dev/null +++ b/docs/gamepackets/UseItem.txt @@ -0,0 +1,4 @@ +0B 00 // len 11 +19 // ptype - UseItem +57 EA 03 10 // objectID? 268692055 +00 00 00 00 // wtf nulls? \ No newline at end of file diff --git a/docs/gamepackets/ValidateLocation.txt b/docs/gamepackets/ValidateLocation.txt new file mode 100644 index 0000000..38ec4d3 --- /dev/null +++ b/docs/gamepackets/ValidateLocation.txt @@ -0,0 +1,18 @@ +Server: Len 23 [ValidateLocation] +17 00 +79 +B2 16 00 10 // mob/npc objectID +91 AC 00 00 // x +C5 A4 00 00 // y +5D F2 FF FF // z +FA C5 00 00 // heading + +protected final void writeImpl() +{ + writeC(0x79); + writeD(_charObjId); + writeD(_x); + writeD(_y); + writeD(_z); + writeD(_heading); +} diff --git a/docs/gamepackets/ValidatePosition.txt b/docs/gamepackets/ValidatePosition.txt new file mode 100644 index 0000000..ed10168 --- /dev/null +++ b/docs/gamepackets/ValidatePosition.txt @@ -0,0 +1,32 @@ +Client: Len 23 [ValidatePosition] +17 00 +59 +B3 A5 00 00 // x 42419 +39 A4 00 00 // y 42041 +5B F2 FF FF // z -3493 +E2 24 00 00 // heading 9442 +00 00 00 00 // wtf data? L2J ignores + +After TeleportToLocation client sends ValidatePosition twice. +First is above +Second below: +Both coordinates x,y,z are coords BEFORE teleport. + +Client: Len 23 [ValidatePosition] +17 00 +59 +B3 A5 00 00 // x,y,z are the same +39 A4 00 00 +5B F2 FF FF +00 00 00 00 // client changes heading to 0 +00 00 00 00 + +Then client sends Appearing (trigger). +After that server sends UserInfo with all info, icluding new coords. + +ValidatePosition L2J: +_x = readD(); +_y = readD(); +_z = readD(); +_heading = readD(); +_data = readD(); diff --git a/docs/gamepackets/WarehouseDepositList.txt b/docs/gamepackets/WarehouseDepositList.txt new file mode 100644 index 0000000..5072fbf --- /dev/null +++ b/docs/gamepackets/WarehouseDepositList.txt @@ -0,0 +1 @@ +Server: Len 2519 [ WareHouseDepositList] | D7 09 / 41 / 02 00 7F DE 34 00 21 00 04 00 FB 0B 08 10 24 0F 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 FB 0B 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 E7 56 07 10 25 0F 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 E7 56 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 1C 4D 07 10 30 0F 00 00 03 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 1C 4D 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 C4 40 07 10 E0 02 00 00 0B 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C4 40 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 AA 39 07 10 23 0F 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 AA 39 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 9F 39 07 10 27 0F 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 9F 39 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 41 8E 05 10 39 00 00 00 7F DE 34 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 41 8E 05 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 17 7A 02 10 2B 0F 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 17 7A 02 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 25 75 02 10 26 0F 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 25 75 02 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 56 1C 02 10 2E 0F 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 56 1C 02 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 19 15 02 10 0D 1A 00 00 07 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 19 15 02 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 D2 0C 02 10 4E 07 00 00 10 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 D2 0C 02 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 07 FC 01 10 2C 0F 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 07 FC 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 1A FA 01 10 2F 0F 00 00 03 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 1A FA 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 D6 2C 01 10 6D 0F 00 00 A3 0D 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 D6 2C 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 7C 24 01 10 93 17 00 00 0A 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 7C 24 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 53 20 01 10 61 07 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 53 20 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 DF 1F 01 10 26 07 00 00 06 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 DF 1F 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 3F 1E 01 10 D4 27 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 3F 1E 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 26 1E 01 10 50 07 00 00 1F 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 26 1E 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 8B 1D 01 10 4C 07 00 00 37 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 8B 1D 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 29 1D 01 10 4F 07 00 00 06 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 29 1D 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 9A 1B 01 10 57 07 00 00 04 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 9A 1B 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 83 1B 01 10 49 07 00 00 0F 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 83 1B 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 94 01 01 10 A7 21 00 00 05 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 94 01 01 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 70 FC 00 10 4B 07 00 00 18 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 70 FC 00 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 B5 BB 07 10 6B 0F 00 00 76 05 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 B5 BB 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 A8 50 02 10 25 04 00 00 64 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 A8 50 02 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 E2 51 06 10 59 07 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 E2 51 06 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 41 53 07 10 4D 07 00 00 0E 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 41 53 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 94 4D 07 10 51 07 00 00 07 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 94 4D 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 45 4D 07 10 48 07 00 00 27 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 45 4D 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 F9 0C 08 10 4A 07 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 F9 0C 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF diff --git a/docs/gamepackets/WarehouseWithdrawalList.txt b/docs/gamepackets/WarehouseWithdrawalList.txt new file mode 100644 index 0000000..2074245 --- /dev/null +++ b/docs/gamepackets/WarehouseWithdrawalList.txt @@ -0,0 +1 @@ +Server: Len 1911 [ WareHouseWithdrawalList] | 77 07 / 42 / 01 00 2B 56 35 00 19 00 04 00 F6 0A 08 10 50 07 00 00 1B 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 F6 0A 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 58 0A 08 10 4B 07 00 00 12 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 58 0A 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 D0 60 07 10 88 1E 00 00 01 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 D0 60 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 B5 BB 07 10 6B 0F 00 00 7E 05 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 B5 BB 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 01 00 F9 6E 07 10 27 00 00 00 01 00 00 00 01 00 00 00 00 10 00 00 00 00 00 00 00 00 F9 6E 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 01 00 03 6F 07 10 33 00 00 00 01 00 00 00 01 00 00 00 00 02 00 00 00 00 00 00 00 00 03 6F 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 5C 4F 07 10 4E 07 00 00 06 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 5C 4F 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 E2 51 06 10 59 07 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 E2 51 06 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 60 72 08 10 52 03 00 00 01 00 00 00 02 00 00 00 06 00 00 00 00 00 00 00 00 00 60 72 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 5E 72 08 10 52 03 00 00 01 00 00 00 02 00 00 00 06 00 00 00 00 00 00 00 00 00 5E 72 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 61 72 08 10 91 03 00 00 01 00 00 00 02 00 00 00 08 00 00 00 00 00 00 00 00 00 61 72 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 5C 72 08 10 71 03 00 00 01 00 00 00 02 00 00 00 30 00 00 00 00 00 00 00 00 00 5C 72 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 5D 72 08 10 71 03 00 00 01 00 00 00 02 00 00 00 30 00 00 00 00 00 00 00 00 00 5D 72 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 41 53 07 10 4D 07 00 00 0E 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 41 53 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 01 00 E5 6E 07 10 2C 00 00 00 01 00 00 00 01 00 00 00 40 00 00 00 00 00 00 00 00 00 E5 6E 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 57 01 08 10 57 08 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 57 01 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 CE 01 08 10 58 08 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 CE 01 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 EE 11 08 10 5F 08 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 EE 11 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 94 4D 07 10 51 07 00 00 07 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 94 4D 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 45 4D 07 10 48 07 00 00 27 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 45 4D 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 01 00 E1 6E 07 10 50 04 00 00 01 00 00 00 01 00 00 00 00 08 00 00 00 00 00 00 00 00 E1 6E 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 F9 0C 08 10 4A 07 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 F9 0C 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 F0 01 08 10 4C 07 00 00 35 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 01 08 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 01 00 E2 6E 07 10 4D 04 00 00 01 00 00 00 01 00 00 00 00 04 00 00 00 00 00 00 00 00 E2 6E 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 04 00 44 51 07 10 49 07 00 00 05 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 44 51 07 10 00 00 00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF \ No newline at end of file diff --git a/docs/gamepackets/action_useitem_1230567729.txt b/docs/gamepackets/action_useitem_1230567729.txt new file mode 100644 index 0000000..4b857d0 --- /dev/null +++ b/docs/gamepackets/action_useitem_1230567729.txt @@ -0,0 +1,506 @@ +[PACKET] Client: 0e ProtocolVersion 12 +[++] UserAIThread(): started, created message queue +[PACKET] Server: 2e KeyPacket +[PACKET] Client: 2b AuthLogin: Login: "eowing" +[PACKET] Server: 09 CharacterSelectionInfo: 2 chars +[PACKET] Client: 12 CharacterSelect: #0 +[PACKET] Server: 73 SSQInfo +[PACKET] Client: Unknown packet 12 in state: IN_GAME +[PACKET] Server: 0b CharSelected: "Eowing" +[PACKET] Server: Unknown packet 6C in state: IN_GAME +[PACKET] Server: 31 CharInfo [Angama] +[PACKET] Server: 31 CharInfo [Angama] +[PACKET] Server: 08 DeleteObject 268710478 +[PACKET] Client: D0:01 RequestManorList +[PACKET] Client: D0:21 RequestKeyMapping +[PACKET] Server: FE:22 ExSendManorList +[WARN] Server: Unknown opcode2 0070 for IN_GAME packet 0xFE +[PACKET] Client: 11 EnterWorld +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 08 DeleteObject 268526765 +[PACKET] Server: 08 DeleteObject 268715414 +[PACKET] Server: 08 DeleteObject 268545447 +[PACKET] Server: 08 DeleteObject 268549721 +[PACKET] Server: 08 DeleteObject 268527581 +[PACKET] Server: 08 DeleteObject 268593763 +[PACKET] Server: 08 DeleteObject 268524741 +[PACKET] Server: 08 DeleteObject 268549721 +[PACKET] Server: 08 DeleteObject 268565552 +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21555, oid [268692774] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21549, oid [268692442] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21549, oid [268692441] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21555, oid [268692773] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21549, oid [268692443] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21560, oid [268692386] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21564, oid [268692649] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21564, oid [268692650] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21551, oid [268692761] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21568, oid [268692792] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 31522, oid [268477497] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 31523, oid [268477498] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21568, oid [268692791] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 31526, oid [268477499] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21564, oid [268692828] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21564, oid [268692827] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21551, oid [268692498] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21560, oid [268692387] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21551, oid [268692760] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21573, oid [268692314] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21573, oid [268692316] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21564, oid [268692394] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21569, oid [268692527] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21568, oid [268692423] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21569, oid [268692526] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21566, oid [268692547] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21566, oid [268692548] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21568, oid [268692425] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21573, oid [268692315] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21564, oid [268692393] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21568, oid [268692424] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21564, oid [268692397] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21566, oid [268692549] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21569, oid [268692528] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21566, oid [268692545] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21551, oid [268692497] [] +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21560, oid [268711500] [] +[PACKET] Server: E5 HennaInfo +[PACKET] Server: 11 ItemList +[PACKET] Server: 45 ShortCutInit +[PACKET] Server: E8 SendMacroList +[PACKET] Server: F2 ClientSetTime +[PACKET] Server: Unknown packet 13 in state: IN_GAME +[PACKET] Server: 5F SkillList +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 4A CreatureSay +[PACKET] Client: A6 RequestSkillCoolTime +[PACKET] Server: 4A CreatureSay +[PACKET] Client: A6 RequestSkillCoolTime +[PACKET] Server: 4A CreatureSay +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 32 UserInfo [Eowing] (52093,-54337,-3184) +[PACKET] Client: 65 RequestPledgeInfo +[PACKET] Server: 5A PledgeShowMemberListAll +[PACKET] Server: Unknown packet 8E in state: IN_GAME +[PACKET] Server: FE:3A PledgeSkillList +[PACKET] Server: Unknown packet 75 in state: IN_GAME +[PACKET] Server: 86 QuestList +[PACKET] Server: FE:2F ExStorageMaxCount +[PACKET] Server: 86 QuestList +[PACKET] Server: FE:5F ExBasicActionList +[PACKET] Server: 85 AbnormalStatusUpdate +[PACKET] Server: 32 UserInfo [Eowing] (52093,-54337,-3184) +[PACKET] Server: 85 AbnormalStatusUpdate +[PACKET] Server: F9 EtcStatusUpdate +[WARN] Server: Unknown opcode2 0032 for IN_GAME packet 0xFE +[PACKET] Server: 19 NpcHtmlMessage +[PACKET] Server: 1F ActionFailed +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: C7 SkillCoolTime +[PACKET] Server: C7 SkillCoolTime +[PACKET] Server: 89 PledgeInfo 268624712 [NOOBS] Ally: [] +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Server: 4A CreatureSay +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Server: 27 SocialAction +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21555, oid [268692774] [] +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21573, oid [268692315] [] +[PACKET] Server: 27 SocialAction +[PACKET] Client: D0:0D RequestAutoSoulShot +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Server: FE:0C ExAutoSoulShot +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 21 InventoryUpdate +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21573, oid [268692314] [] +[PACKET] Server: 27 SocialAction +[PACKET] Server: Unknown packet 6C in state: IN_GAME +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Client: 0f MoveBackwardToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Client: 59 ValidatePosition +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21573, oid [268692316] [] +[PACKET] Client: 59 ValidatePosition +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Client: 1F Action [268477497] +[PACKET] Server: 23 TargetSelected [268636209] -> [268477497] +[PACKET] Server: B9 MyTargetSelected [268477497] +[PACKET] Server: 79 ValidateLocation +[PACKET] Server: 1F ActionFailed +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 54 MagicSkillLaunched +[PACKET] Client: Unknown packet 01 in state: IN_GAME +[PACKET] Server: B9 MyTargetSelected [268477497] +[PACKET] Server: 18 StatusUpdate +[PACKET] Server: 21 InventoryUpdate +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 6B SetupGauge +[PACKET] Server: Unknown packet 33 in state: IN_GAME +[PACKET] Client: 59 ValidatePosition +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Client: 0f MoveBackwardToLocation +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 25 AutoAttackStart +[PACKET] Server: 25 AutoAttackStart +[PACKET] Server: 21 InventoryUpdate +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 0c NpcInfo (mob/morphed char?): template 21555, oid [268692773] [] +[PACKET] Client: 59 ValidatePosition +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 18 StatusUpdate +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 2f MoveToLocation +[PACKET] Client: 14 RequestItemList +[PACKET] Server: 11 ItemList +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 18 StatusUpdate +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Client: 19 UseItem oid 268692055 +[PACKET] Server: 21 InventoryUpdate +[PACKET] Server: 48 MagicSkillUse +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 54 MagicSkillLaunched +[WARN] Server: Unknown opcode2 0001 for IN_GAME packet 0xFE +[PACKET] Server: 62 SystemMessage +[PACKET] Server: 32 UserInfo [Eowing] (52136,-54431,-3184) +[PACKET] Server: Unknown packet FA in state: IN_GAME +[PACKET] Server: 85 AbnormalStatusUpdate +[PACKET] Server: 18 StatusUpdate +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 18 StatusUpdate +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 18 StatusUpdate +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 27 SocialAction +[PACKET] Server: 18 StatusUpdate +[PACKET] Server: 2f MoveToLocation +[PACKET] Server: 27 SocialAction +[PACKET] Server: 18 StatusUpdate +[PACKET] Server: 26 AutoAttackStop +[PACKET] Server: 26 AutoAttackStop +[PACKET] Server: 2f MoveToLocation +[PACKET] Client: D0:24 RequestSaveInventoryOrder +[PACKET] Client: 00 LogoutRequest +[PACKET] Server: Unknown packet FA in state: IN_GAME +[PACKET] Server: 85 AbnormalStatusUpdate +[PACKET] Server: 84 LeaveWorld + +C: Len 267 | 0B 01 / 0E / 0C 00 00 00 09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02 55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07 53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02 53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06 01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D 01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06 82 A5 5B C7 +S: Len 24 | 18 00 / 2E / 01 7E 8A 25 2B EF 3B 53 57 C8 27 93 01 A1 6C 31 97 01 00 00 00 +C: Len 45 | 2D 00 / 2B / 65 00 6F 00 77 00 69 00 6E 00 67 00 00 00 36 43 A5 E9 DB 11 99 E0 68 B3 DF 0D 30 DF AB 19 01 00 00 00 01 D2 21 F0 1C 00 00 00 +S: Len 596 | 54 02 / 09 / 02 00 00 00 00 00 00 00 01 45 00 6F 00 77 00 69 00 6E 00 67 00 00 00 7A 0B 03 00 65 00 6F 00 77 00 69 00 6E 00 67 00 00 00 DB 11 99 E0 48 E3 02 10 00 00 00 00 01 00 00 00 00 00 00 00 5C 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D9 B3 40 00 00 00 00 00 DA A6 40 E0 35 94 4A CD 2C 7D B3 02 00 00 00 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AC 02 00 00 EF 24 00 00 EF 24 00 00 F0 24 00 00 04 1A 00 00 F1 24 00 00 CE 24 00 00 89 26 00 00 41 05 00 00 CF 24 00 00 CA 24 00 00 CD 24 00 00 D0 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D9 B3 40 00 00 00 00 00 DA A6 40 00 00 00 00 5C 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 00 54 00 65 00 73 00 74 00 66 00 00 00 7A 0B 03 00 65 00 6F 00 77 00 69 00 6E 00 67 00 00 00 DB 11 99 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 5F 40 00 00 00 00 00 00 43 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 09 00 00 00 00 00 00 00 00 00 00 7A 04 00 00 7B 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 5F 40 00 00 00 00 00 00 43 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +C: Len 21 | 15 00 / 12 / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 5 | 05 00 / 73 / 00 01 +C: Len 21 | 15 00 / 12 / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 296 | 28 01 / 0B / 45 00 6F 00 77 00 69 00 6E 00 67 00 00 00 7A 0B 03 00 3E 00 3E 00 2D 00 2D 00 2D 00 3E 00 00 00 DB 11 99 E0 48 E3 02 10 00 00 00 00 01 00 00 00 00 00 00 00 5C 00 00 00 01 00 00 00 7D CB 00 00 BF 2B FF FF 90 F3 FF FF 00 00 00 00 00 D9 B3 40 00 00 00 00 00 DA A6 40 E0 35 94 4A CD 2C 7D B3 02 00 00 00 52 00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 2F 00 00 00 20 00 00 00 19 00 00 00 22 00 00 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 27 | 1B 00 / 6C / F7 AF 00 10 96 00 00 00 20 03 00 00 89 A2 00 00 67 FC 02 00 E6 F1 FF FF +S: Len 421 | A5 01 / 31 / 00 00 00 00 00 00 00 00 00 00 00 00 82 C0 00 00 30 FC 01 10 41 00 6E 00 67 00 61 00 6D 00 61 00 00 00 00 00 00 00 01 00 00 00 5C 00 00 00 00 00 00 00 23 02 00 00 99 1D 00 00 41 05 00 00 88 16 00 00 4E 09 00 00 00 00 00 00 94 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5B 23 A3 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2B 01 00 00 A4 02 00 00 00 00 00 00 00 00 00 00 73 00 00 00 5C 00 00 00 7F 00 00 00 7F 00 00 00 73 00 00 00 5C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 DC AF FB 3F 00 00 00 A0 D3 06 02 40 00 00 00 00 00 00 20 40 00 00 00 00 00 00 37 40 05 00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 00 00 00 5C 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF 00 82 C0 00 00 00 00 00 00 00 00 00 00 77 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 421 | A5 01 / 31 / FE 40 02 00 31 2A FF FF 38 F5 FF FF 82 C0 00 00 30 FC 01 10 41 00 6E 00 67 00 61 00 6D 00 61 00 00 00 00 00 00 00 01 00 00 00 5C 00 00 00 00 00 00 00 23 02 00 00 99 1D 00 00 41 05 00 00 88 16 00 00 4E 09 00 00 00 00 00 00 94 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5B 23 A3 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2B 01 00 00 A4 02 00 00 00 00 00 00 00 00 00 00 73 00 00 00 5C 00 00 00 7F 00 00 00 7F 00 00 00 73 00 00 00 5C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 DC AF FB 3F 00 00 00 A0 D3 06 02 40 00 00 00 00 00 00 20 40 00 00 00 00 00 00 37 40 05 00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 00 00 00 5C 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF 00 82 C0 00 00 00 00 00 00 00 00 00 00 77 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 11 | 0B 00 / 08 / 4E 32 04 10 00 00 00 00 +C: Len 5 | 05 00 / D0 / 01 00 +C: Len 5 | 05 00 / D0 / 21 00 +S: Len 167 | A7 00 / FE / 22 00 09 00 00 00 01 00 00 00 67 00 6C 00 75 00 64 00 69 00 6F 00 00 00 02 00 00 00 64 00 69 00 6F 00 6E 00 00 00 03 00 00 00 67 00 69 00 72 00 61 00 6E 00 00 00 04 00 00 00 6F 00 72 00 65 00 6E 00 00 00 05 00 00 00 61 00 64 00 65 00 6E 00 00 00 06 00 00 00 69 00 6E 00 6E 00 61 00 64 00 72 00 69 00 6C 00 00 00 07 00 00 00 67 00 6F 00 64 00 64 00 61 00 72 00 64 00 00 00 08 00 00 00 72 00 75 00 6E 00 65 00 00 00 09 00 00 00 73 00 63 00 68 00 75 00 74 00 74 00 67 00 61 00 72 00 74 00 00 00 +S: Len 9 | 09 00 / FE / 70 00 00 00 00 00 +C: Len 107 | 6B 00 / 11 / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C9 BC F2 A7 66 5A 0B 98 36 A5 BD 89 ED 7F E4 D7 6B 49 E2 9F EF 76 EB CE A3 FA F4 BF 0C 64 A3 B4 A4 CE DC C6 08 3E 6E EA 45 CA D3 FE 88 13 87 B8 06 2C 96 F0 9B 1E 8E BC C6 9B 98 C8 63 16 CF D0 29 00 00 00 0A E1 74 17 0A 08 00 08 5C 32 BD E1 5C 32 BE 6D 5C 32 BE 22 +S: Len 67 | 43 00 / 62 / DA 07 00 00 01 00 00 00 00 00 00 00 44 00 65 00 76 00 65 00 6C 00 6F 00 70 00 65 00 64 00 20 00 62 00 79 00 20 00 4C 00 32 00 44 00 72 00 65 00 61 00 6D 00 20 00 54 00 65 00 61 00 6D 00 00 00 +S: Len 11 | 0B 00 / 08 / AD 64 01 10 00 00 00 00 +S: Len 11 | 0B 00 / 08 / 96 45 04 10 00 00 00 00 +S: Len 11 | 0B 00 / 08 / A7 AD 01 10 00 00 00 00 +S: Len 11 | 0B 00 / 08 / 59 BE 01 10 00 00 00 00 +S: Len 11 | 0B 00 / 08 / DD 67 01 10 00 00 00 00 +S: Len 11 | 0B 00 / 08 / 63 6A 02 10 00 00 00 00 +S: Len 11 | 0B 00 / 08 / C5 5C 01 10 00 00 00 00 +S: Len 11 | 0B 00 / 08 / 59 BE 01 10 00 00 00 00 +S: Len 11 | 0B 00 / 08 / 30 FC 01 10 00 00 00 00 +S: Len 206 | CE 00 / 0C / 26 ED 03 10 73 96 0F 00 01 00 00 00 BC C5 00 00 F1 27 FF FF F8 F4 FF FF C2 F6 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 34 40 00 00 00 00 00 80 41 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 35 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 34 40 00 00 00 00 00 80 41 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 206 | CE 00 / 0C / DA EB 03 10 6D 96 0F 00 01 00 00 00 AC C3 00 00 B4 23 FF FF D0 F5 FF FF BD 9D 00 00 00 00 00 00 21 01 00 00 3D 01 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 B2 03 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 34 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 206 | CE 00 / 0C / D9 EB 03 10 6D 96 0F 00 01 00 00 00 58 C2 00 00 B6 27 FF FF 90 F5 FF FF 6D D3 00 00 00 00 00 00 21 01 00 00 3D 01 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 B2 03 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 34 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 206 | CE 00 / 0C / 25 ED 03 10 73 96 0F 00 01 00 00 00 68 C2 00 00 C9 29 FF FF E0 F5 FF FF CB 93 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 34 40 00 00 00 00 00 80 41 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 35 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 34 40 00 00 00 00 00 80 41 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 206 | CE 00 / 0C / DB EB 03 10 6D 96 0F 00 01 00 00 00 CE C2 00 00 2B 29 FF FF D8 F5 FF FF BD 42 00 00 00 00 00 00 21 01 00 00 3D 01 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 B2 03 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 34 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / A2 EB 03 10 78 96 0F 00 01 00 00 00 CD C4 00 00 53 2F FF FF E0 F4 FF FF 6E E7 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 36 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / A9 EC 03 10 7C 96 0F 00 01 00 00 00 C0 C6 00 00 F7 32 FF FF B0 F4 FF FF 0D B1 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 37 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / AA EC 03 10 7C 96 0F 00 01 00 00 00 82 C7 00 00 72 35 FF FF 60 F4 FF FF 59 08 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 37 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 206 | CE 00 / 0C / 19 ED 03 10 6F 96 0F 00 01 00 00 00 B8 C7 00 00 34 31 FF FF F8 F4 FF FF F5 D7 00 00 00 00 00 00 21 01 00 00 3D 01 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 DD 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 36 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 38 ED 03 10 80 96 0F 00 01 00 00 00 51 C4 00 00 22 32 FF FF F8 F4 FF FF EA 59 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 194 | C2 00 / 0C / 39 A4 00 10 62 BD 0F 00 00 00 00 00 A6 CA 00 00 F4 29 FF FF A1 F3 FF FF 80 59 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 78 00 00 00 32 00 00 00 78 00 00 00 32 00 00 00 78 00 00 00 32 00 00 00 78 00 00 00 32 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 36 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 36 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 194 | C2 00 / 0C / 3A A4 00 10 63 BD 0F 00 00 00 00 00 13 C9 00 00 BC 2A FF FF AD F3 FF FF 20 2B 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 78 00 00 00 32 00 00 00 78 00 00 00 32 00 00 00 78 00 00 00 32 00 00 00 78 00 00 00 32 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 34 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 34 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 37 ED 03 10 80 96 0F 00 01 00 00 00 30 CA 00 00 76 2E FF FF 80 F4 FF FF 41 7A 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 194 | C2 00 / 0C / 3B A4 00 10 66 BD 0F 00 00 00 00 00 1B CB 00 00 BF 37 FF FF E0 F3 FF FF F0 F7 FF FF 00 00 00 00 FD 00 00 00 16 01 00 00 78 00 00 00 32 00 00 00 78 00 00 00 32 00 00 00 78 00 00 00 32 00 00 00 78 00 00 00 32 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 2E 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2E 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 5C ED 03 10 7C 96 0F 00 01 00 00 00 27 CB 00 00 74 34 FF FF F0 F3 FF FF 19 C8 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 37 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 5B ED 03 10 7C 96 0F 00 01 00 00 00 A9 C9 00 00 F5 35 FF FF E0 F3 FF FF 13 5F 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 37 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 206 | CE 00 / 0C / 12 EC 03 10 6F 96 0F 00 01 00 00 00 2C CB 00 00 EA 36 FF FF E0 F3 FF FF 39 0B 00 00 00 00 00 00 21 01 00 00 3D 01 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 DD 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 36 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / A3 EB 03 10 78 96 0F 00 01 00 00 00 69 CA 00 00 4A 34 FF FF 10 F4 FF FF BC 6E 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 36 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 206 | CE 00 / 0C / 18 ED 03 10 6F 96 0F 00 01 00 00 00 16 C9 00 00 E7 31 FF FF D0 F4 FF FF 58 94 00 00 00 00 00 00 21 01 00 00 3D 01 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 DD 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 36 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 5A EB 03 10 85 96 0F 00 01 00 00 00 25 D5 00 00 70 26 FF FF 58 F3 FF FF D9 55 00 00 00 00 00 00 B6 00 00 00 C8 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 80 4C 40 00 00 00 00 00 80 43 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 39 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 4C 40 00 00 00 00 00 80 43 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 5C EB 03 10 85 96 0F 00 01 00 00 00 D9 D5 00 00 2D 21 FF FF 10 F3 FF FF 33 AC 00 00 00 00 00 00 B6 00 00 00 C8 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 80 4C 40 00 00 00 00 00 80 43 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 39 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 4C 40 00 00 00 00 00 80 43 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / AA EB 03 10 7C 96 0F 00 01 00 00 00 E0 D4 00 00 10 25 FF FF 08 F3 FF FF 59 70 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 37 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 2F EC 03 10 81 96 0F 00 01 00 00 00 67 D2 00 00 AB 22 FF FF E0 F2 FF FF F3 0F 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / C7 EB 03 10 80 96 0F 00 01 00 00 00 81 D0 00 00 3E 23 FF FF A0 F3 FF FF D7 27 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 2E EC 03 10 81 96 0F 00 01 00 00 00 85 D1 00 00 C3 21 FF FF D0 F2 FF FF 0D A9 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 43 EC 03 10 7E 96 0F 00 01 00 00 00 BE D5 00 00 E8 27 FF FF 80 F3 FF FF E5 E7 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 44 EC 03 10 7E 96 0F 00 01 00 00 00 0F D1 00 00 43 27 FF FF 00 F4 FF FF 3E 0D 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / C9 EB 03 10 80 96 0F 00 01 00 00 00 9F D2 00 00 6D 24 FF FF 20 F4 FF FF F5 F7 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 5B EB 03 10 85 96 0F 00 01 00 00 00 12 D0 00 00 1C 26 FF FF 00 F4 FF FF 71 F0 00 00 00 00 00 00 B6 00 00 00 C8 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 80 4C 40 00 00 00 00 00 80 43 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 39 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 4C 40 00 00 00 00 00 80 43 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / A9 EB 03 10 7C 96 0F 00 01 00 00 00 CB D6 00 00 3B 2B FF FF 80 F3 FF FF 88 EA 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 37 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / C8 EB 03 10 80 96 0F 00 01 00 00 00 02 D6 00 00 00 2F FF FF F0 F3 FF FF F7 8A 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / AD EB 03 10 7C 96 0F 00 01 00 00 00 32 D4 00 00 58 29 FF FF E0 F3 FF FF 26 EB 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 37 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 45 EC 03 10 7E 96 0F 00 01 00 00 00 B8 D0 00 00 A7 2A FF FF 50 F4 FF FF E2 82 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 30 EC 03 10 81 96 0F 00 01 00 00 00 5B D0 00 00 EF 28 FF FF 70 F4 FF FF 9C 52 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 AA 00 00 00 3C 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 40 00 00 00 00 00 80 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 41 EC 03 10 7E 96 0F 00 01 00 00 00 35 D2 00 00 2F 2C FF FF 30 F4 FF FF 87 61 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 38 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 206 | CE 00 / 0C / 11 EC 03 10 6F 96 0F 00 01 00 00 00 5B D1 00 00 74 35 FF FF 10 F4 FF FF 7F 80 00 00 00 00 00 00 21 01 00 00 3D 01 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 AF 00 00 00 50 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 DD 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 36 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 40 00 00 00 00 00 00 3C 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 4C 36 04 10 78 96 0F 00 01 00 00 00 7F D1 00 00 D1 35 FF FF 10 F4 FF FF 48 33 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 B4 00 00 00 13 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 B2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 36 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 3E 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 41 | 29 00 / E5 / 00 05 F7 00 04 00 03 00 00 00 03 00 00 00 A9 00 00 00 A9 00 00 00 6D 00 00 00 6D 00 00 00 AE 00 00 00 AE 00 00 00 +S: Len 6087 | C7 17 / 11 / 00 00 50 00 04 00 38 B4 04 10 B3 21 00 00 00 00 00 00 30 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D2 B3 04 10 5F 05 00 00 01 00 00 00 0A 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 AF B3 04 10 D8 15 00 00 02 00 00 00 F5 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70 A4 04 10 F1 24 00 00 0F 00 00 00 01 00 00 00 02 00 00 00 01 00 20 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A4 04 10 F0 24 00 00 04 00 00 00 01 00 00 00 02 00 00 00 01 00 08 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E4 A3 04 10 EF 24 00 00 09 00 00 00 01 00 00 00 02 00 00 00 01 00 04 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DB A3 04 10 EF 24 00 00 08 00 00 00 01 00 00 00 02 00 00 00 01 00 02 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 57 20 04 10 D0 24 00 00 0C 00 00 00 01 00 00 00 01 00 00 00 01 00 00 10 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 51 20 04 10 CF 24 00 00 0A 00 00 00 01 00 00 00 01 00 00 00 01 00 00 02 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 4E 20 04 10 CE 24 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 40 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 4C 20 04 10 CD 24 00 00 0B 00 00 00 01 00 00 00 01 00 00 00 01 00 00 08 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 4B 20 04 10 CA 24 00 00 06 00 00 00 01 00 00 00 01 00 00 00 01 00 00 04 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D1 14 04 10 D8 02 00 00 03 00 00 00 73 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D2 ED 03 10 46 11 00 00 04 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 37 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 E4 EB 03 10 02 06 00 00 05 00 00 00 0F 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 57 EA 03 10 25 04 00 00 06 00 00 00 FA 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 FC E9 03 10 B3 05 00 00 07 00 00 00 D0 07 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 EE E9 03 10 B2 05 00 00 08 00 00 00 5C 07 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 DC E9 03 10 6F 0F 00 00 09 00 00 00 7C 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 8C E8 03 10 AC 02 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 01 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 93 2F 03 10 2E 22 00 00 0A 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 89 2E 03 10 24 22 00 00 0B 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 39 10 03 10 D1 31 00 00 0C 00 00 00 07 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 32 10 03 10 39 00 00 00 0D 00 00 00 A7 72 33 70 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 0A 0B 03 10 C2 03 00 00 0E 00 00 00 3F 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 02 CB 02 10 C8 18 00 00 0F 00 00 00 14 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 9C B6 01 10 4E 07 00 00 10 00 00 00 DF 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 4C 8B 01 10 B5 15 00 00 11 00 00 00 97 06 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 4B 8B 01 10 B4 15 00 00 12 00 00 00 98 06 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 DB 7A 01 10 41 05 00 00 07 00 00 00 87 08 00 00 05 00 00 00 01 00 00 01 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D0 7A 01 10 BB 05 00 00 13 00 00 00 69 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 B2 6C 01 10 53 08 00 00 14 00 00 00 90 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 9D 3F 01 10 97 21 00 00 15 00 00 00 14 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 9C 3F 01 10 BF 21 00 00 16 00 00 00 62 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 5E 2F 01 10 CA 0F 00 00 17 00 00 00 09 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 E0 2C 01 10 CB 0F 00 00 18 00 00 00 09 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 9F 29 01 10 97 15 00 00 19 00 00 00 06 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 8C 29 01 10 49 07 00 00 1A 00 00 00 80 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 5A 28 01 10 C8 0F 00 00 1B 00 00 00 24 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 1A 28 01 10 61 07 00 00 1C 00 00 00 48 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 39 26 01 10 98 15 00 00 1D 00 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 B5 24 01 10 93 15 00 00 1E 00 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 97 24 01 10 ED 1E 00 00 1F 00 00 00 03 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 31 24 01 10 7F 15 00 00 20 00 00 00 0B 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 21 24 01 10 7E 15 00 00 21 00 00 00 06 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D3 23 01 10 4C 07 00 00 22 00 00 00 80 11 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 81 23 01 10 CA 18 00 00 23 00 00 00 13 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 53 23 01 10 C6 18 00 00 24 00 00 00 13 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 52 23 01 10 51 07 00 00 25 00 00 00 F2 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 2D 23 01 10 92 15 00 00 26 00 00 00 07 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 2C 23 01 10 AD 15 00 00 27 00 00 00 6C 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 AF 22 01 10 8B 15 00 00 28 00 00 00 0B 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 70 22 01 10 8A 15 00 00 29 00 00 00 08 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 6F 22 01 10 57 07 00 00 2A 00 00 00 B4 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 60 22 01 10 77 15 00 00 2B 00 00 00 04 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 5F 22 01 10 67 07 00 00 2C 00 00 00 50 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 22 01 10 04 1A 00 00 0E 00 00 00 01 00 00 00 02 00 00 00 01 00 10 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 F3 1F 01 10 23 02 00 00 2D 00 00 00 01 00 00 00 01 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 ED 1F 01 10 94 16 00 00 2E 00 00 00 01 00 00 00 01 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 EC 1F 01 10 88 16 00 00 2F 00 00 00 01 00 00 00 01 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E4 1F 01 10 C0 19 00 00 30 00 00 00 01 00 00 00 00 00 00 00 00 00 80 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 D6 1F 01 10 4E 09 00 00 31 00 00 00 01 00 00 00 01 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 8A 1F 01 10 C9 0F 00 00 32 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 F7 19 01 10 66 07 00 00 33 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 EC 17 01 10 1B 22 00 00 34 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 58 15 01 10 CC 0F 00 00 35 00 00 00 37 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 E8 12 01 10 53 07 00 00 36 00 00 00 49 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 41 0F 01 10 A3 15 00 00 37 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 EF 0B 01 10 4A 07 00 00 38 00 00 00 42 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 48 0B 01 10 54 07 00 00 39 00 00 00 7A 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 3D 0B 01 10 4F 07 00 00 3A 00 00 00 83 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 8B 01 01 10 C1 09 00 00 3B 00 00 00 01 00 00 00 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E 00 01 10 E4 00 00 00 3C 00 00 00 01 00 00 00 00 00 00 00 00 00 80 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 CD EA 00 10 DE 19 00 00 3D 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 89 EA 00 10 DE 19 00 00 3E 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 88 EA 00 10 DE 19 00 00 3F 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 77 EA 00 10 DE 19 00 00 40 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 71 EA 00 10 DE 19 00 00 41 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 64 EA 00 10 DE 19 00 00 42 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B2 BD 00 10 89 26 00 00 05 00 00 00 01 00 00 00 00 00 00 00 01 00 00 40 00 00 08 00 00 00 57 2A 2B 1C FF FF FF FF 00 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 642 | 82 02 / 45 / 1A 00 00 00 02 00 00 00 16 00 00 00 4E 01 00 00 01 00 00 00 00 01 00 00 00 02 00 00 00 0C 00 00 00 83 00 00 00 03 00 00 00 00 01 00 00 00 02 00 00 00 14 00 00 00 38 01 00 00 14 00 00 00 00 01 00 00 00 01 00 00 00 06 00 00 00 57 EA 03 10 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 0D 00 00 00 63 00 00 00 02 00 00 00 00 01 00 00 00 01 00 00 00 22 00 00 00 D2 B3 04 10 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 00 00 00 D1 14 04 10 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 12 00 00 00 9C 3F 01 10 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 19 00 00 00 9F 01 00 00 03 00 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 08 00 00 00 B2 BD 00 10 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 23 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 11 00 00 00 38 B4 04 10 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 09 00 00 00 04 00 00 00 01 00 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 13 00 00 00 25 00 00 00 00 01 00 00 00 01 00 00 00 17 00 00 00 D0 7A 01 10 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 0A 00 00 00 6F 00 00 00 01 00 00 00 00 01 00 00 00 01 00 00 00 10 00 00 00 E4 EB 03 10 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 0F 00 00 00 62 01 00 00 01 00 00 00 00 01 00 00 00 02 00 00 00 01 00 00 00 65 00 00 00 70 00 00 00 00 01 00 00 00 02 00 00 00 18 00 00 00 A0 01 00 00 02 00 00 00 00 01 00 00 00 02 00 00 00 15 00 00 00 00 01 00 00 01 00 00 00 00 01 00 00 00 02 00 00 00 0E 00 00 00 39 01 00 00 08 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 03 03 00 00 01 00 00 00 00 01 00 00 00 01 00 00 00 0B 00 00 00 AF B3 04 10 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 57 01 00 00 01 00 00 00 00 01 00 00 00 +S: Len 65 | 41 00 / E8 / 02 00 00 00 00 01 01 E8 03 00 00 74 00 61 00 72 00 67 00 00 00 00 00 00 00 00 01 01 03 00 00 00 00 00 2F 00 74 00 61 00 72 00 67 00 65 00 74 00 20 00 7A 00 61 00 6B 00 65 00 6E 00 00 00 +S: Len 11 | 0B 00 / F2 / 24 11 00 00 06 00 00 00 +S: Len 3 | 03 00 / 13 / +S: Len 878 | 6E 03 / 5F / 43 00 00 00 01 00 00 00 01 00 00 00 89 00 00 00 00 00 00 00 00 09 00 00 00 03 00 00 00 00 01 00 00 00 03 00 00 00 8D 00 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 00 03 00 00 00 9F 01 00 00 00 01 00 00 00 05 00 00 00 8E 00 00 00 00 00 00 00 00 03 00 00 00 83 00 00 00 00 00 00 00 00 18 00 00 00 10 00 00 00 00 01 00 00 00 01 00 00 00 BE 0B 00 00 00 00 00 00 00 25 00 00 00 13 00 00 00 00 00 00 00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 1F 00 00 00 18 00 00 00 00 00 00 00 00 05 00 00 00 1B 00 00 00 00 01 00 00 00 08 00 00 00 94 00 00 00 00 00 00 00 00 01 00 00 00 33 08 00 00 00 01 00 00 00 04 00 00 00 7D 05 00 00 00 01 00 00 00 08 00 00 00 AB 00 00 00 00 01 00 00 00 02 00 00 00 A9 00 00 00 00 01 00 00 00 01 00 00 00 A8 00 00 00 00 01 00 00 00 01 00 00 00 AD 00 00 00 00 00 00 00 00 08 00 00 00 39 01 00 00 00 00 00 00 00 14 00 00 00 38 01 00 00 00 01 00 00 00 01 00 00 00 EA 0D 00 00 00 01 00 00 00 01 00 00 00 17 02 00 00 00 00 00 00 00 01 00 00 00 AA 01 00 00 00 01 00 00 00 01 00 00 00 16 02 00 00 00 00 00 00 00 01 00 00 00 03 03 00 00 00 01 00 00 00 01 00 00 00 AF 01 00 00 00 00 00 00 00 05 00 00 00 A1 01 00 00 00 00 00 00 00 03 00 00 00 A0 01 00 00 00 00 00 00 00 18 00 00 00 38 00 00 00 00 01 00 00 00 03 00 00 00 A2 01 00 00 00 00 00 00 00 01 00 00 00 92 02 00 00 00 00 00 00 00 04 00 00 00 2F 01 00 00 00 00 00 00 00 01 00 00 00 57 01 00 00 00 01 00 00 00 01 00 00 00 C6 00 00 00 00 01 00 00 00 02 00 00 00 C1 00 00 00 00 01 00 00 00 01 00 00 00 C3 00 00 00 00 01 00 00 00 01 00 00 00 C2 00 00 00 00 00 00 00 00 01 00 00 00 44 01 00 00 00 00 00 00 00 01 00 00 00 CB 01 00 00 00 00 00 00 00 01 00 00 00 43 01 00 00 00 00 00 00 00 01 00 00 00 4E 01 00 00 00 01 00 00 00 01 00 00 00 27 0E 00 00 00 01 00 00 00 01 00 00 00 F3 02 00 00 00 01 00 00 00 01 00 00 00 F6 02 00 00 00 01 00 00 00 34 00 00 00 D0 00 00 00 00 01 00 00 00 01 00 00 00 4A 01 00 00 00 01 00 00 00 01 00 00 00 F7 02 00 00 00 01 00 00 00 08 00 00 00 D1 00 00 00 00 01 00 00 00 01 00 00 00 15 0D 00 00 00 01 00 00 00 01 00 00 00 F4 02 00 00 00 01 00 00 00 01 00 00 00 48 01 00 00 00 01 00 00 00 01 00 00 00 F5 02 00 00 00 01 00 00 00 06 00 00 00 EF 00 00 00 00 00 00 00 00 70 00 00 00 65 00 00 00 00 00 00 00 00 02 00 00 00 63 00 00 00 00 00 00 00 00 02 00 00 00 60 00 00 00 00 01 00 00 00 2F 00 00 00 E9 00 00 00 00 01 00 00 00 06 00 00 00 C3 0B 00 00 00 00 00 00 00 01 00 00 00 6F 00 00 00 00 00 00 00 00 01 00 00 00 E2 00 00 00 00 01 00 00 00 03 00 00 00 E1 00 00 00 00 01 00 00 00 09 00 00 00 28 05 00 00 00 00 00 00 00 01 00 00 00 2A 05 00 00 00 01 00 00 00 02 00 00 00 71 00 00 00 00 00 00 00 00 01 00 00 00 62 01 00 00 00 +S: Len 11 | 0B 00 / 62 / 22 00 00 00 00 00 00 00 +S: Len 51 | 33 00 / 4A / 00 00 00 00 0A 00 00 00 45 00 6F 00 77 00 69 00 6E 00 67 00 00 00 4E 00 65 00 77 00 4C 00 61 00 6E 00 64 00 73 00 20 00 50 00 76 00 50 00 00 00 +C: Len 3 | 03 00 / A6 / +S: Len 67 | 43 00 / 4A / 00 00 00 00 0A 00 00 00 00 00 1D 04 30 04 47 04 30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 3D 04 42 04 20 00 27 00 43 00 68 00 72 00 69 00 73 00 74 00 6D 00 61 00 73 00 27 00 2E 00 00 00 +C: Len 3 | 03 00 / A6 / +S: Len 255 | FF 00 / 4A / 00 00 00 00 0A 00 00 00 00 00 1D 04 30 04 47 04 30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 3D 04 42 04 20 00 27 00 43 00 6F 00 66 00 66 00 65 00 72 00 20 00 6F 00 66 00 20 00 53 00 68 00 61 00 64 00 6F 00 77 00 73 00 27 00 2E 00 20 00 1F 04 3E 04 34 04 40 04 3E 04 31 04 3D 04 3E 04 41 04 42 04 38 04 20 00 3C 04 3E 04 36 04 3D 04 3E 04 20 00 43 04 37 04 3D 04 30 04 42 04 4C 04 20 00 43 04 20 00 4F 00 6D 00 65 00 67 00 61 00 27 00 73 00 20 00 43 00 61 00 74 00 2C 00 20 00 3A 04 3E 04 42 04 3E 04 40 04 3E 04 33 04 3E 04 20 00 12 04 4B 04 20 00 41 04 3C 04 3E 04 36 04 35 04 42 04 35 04 20 00 3D 04 30 04 39 04 42 04 38 04 20 00 32 04 20 00 31 04 3B 04 38 04 36 04 30 04 39 04 48 04 35 04 3C 04 20 00 33 04 3E 04 40 04 3E 04 34 04 35 04 2E 00 00 00 +S: Len 11 | 0B 00 / 62 / EC 04 00 00 00 00 00 00 +S: Len 722 | D2 02 / 32 / 7D CB 00 00 BF 2B FF FF 90 F3 FF FF 88 39 00 00 31 10 03 10 45 00 6F 00 77 00 69 00 6E 00 67 00 00 00 00 00 00 00 01 00 00 00 5C 00 00 00 52 00 00 00 CD 2C 7D B3 02 00 00 00 2F 00 00 00 22 00 00 00 20 00 00 00 15 00 00 00 0B 00 00 00 19 00 00 00 D9 13 00 00 D9 13 00 00 6D 0B 00 00 6D 0B 00 00 E0 35 94 4A 0D DC 01 00 6F 26 06 00 28 00 00 00 8C E8 03 10 DB A3 04 10 E4 A3 04 10 00 A4 04 10 13 22 01 10 70 A4 04 10 4E 20 04 10 B2 BD 00 10 DB 7A 01 10 51 20 04 10 4B 20 04 10 4C 20 04 10 57 20 04 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AC 02 00 00 EF 24 00 00 EF 24 00 00 F0 24 00 00 04 1A 00 00 F1 24 00 00 CE 24 00 00 89 26 00 00 41 05 00 00 CF 24 00 00 CA 24 00 00 CD 24 00 00 D0 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57 2A 2B 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 0E 00 00 93 01 00 00 1B 06 00 00 76 00 00 00 76 00 00 00 46 01 00 00 70 01 00 00 D5 00 00 00 93 01 00 00 F0 05 00 00 00 00 00 00 00 00 00 00 73 00 00 00 58 00 00 00 65 00 00 00 65 00 00 00 73 00 00 00 58 00 00 00 73 00 00 00 58 00 00 00 00 00 00 20 0B 59 F8 3F 00 00 00 20 4B 7E F5 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 37 40 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 00 3E 00 2D 00 2D 00 2D 00 3E 00 00 00 48 E3 02 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 09 00 00 00 00 00 00 00 00 00 00 11 FE FF 7F 00 09 00 00 00 00 00 00 00 50 00 5C 00 00 00 00 00 00 00 94 09 00 00 94 09 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF 00 01 01 00 00 00 00 00 00 00 77 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 96 00 00 00 0A 00 00 00 0A 00 00 00 0A 00 00 00 0A 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 +C: Len 7 | 07 00 / 65 / 48 E3 02 10 +S: Len 743 | E7 02 / 5A / 00 00 00 00 48 E3 02 10 00 00 00 00 4E 00 4F 00 4F 00 42 00 53 00 00 00 4E 00 79 00 61 00 6B 00 6F 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 00 00 00 41 00 73 00 74 00 72 00 61 00 4C 00 45 00 76 00 69 00 4C 00 00 00 51 00 00 00 6E 00 00 00 00 00 00 00 6F 55 03 10 00 00 00 00 00 00 00 00 4B 00 61 00 67 00 6F 00 6E 00 00 00 4E 00 00 00 6B 00 00 00 00 00 00 00 CA 11 03 10 01 00 00 00 00 00 00 00 54 00 61 00 72 00 69 00 65 00 6C 00 00 00 55 00 00 00 67 00 00 00 00 00 00 00 DD 41 04 10 00 00 00 00 00 00 00 00 45 00 6F 00 77 00 69 00 6E 00 67 00 00 00 52 00 00 00 5C 00 00 00 01 00 00 00 31 10 03 10 01 00 00 00 00 00 00 00 41 00 73 00 74 00 72 00 61 00 4C 00 00 00 55 00 00 00 5F 00 00 00 00 00 00 00 2E B7 00 10 00 00 00 00 00 00 00 00 53 00 63 00 68 00 6F 00 6B 00 6B 00 00 00 52 00 00 00 5E 00 00 00 00 00 00 00 F5 D1 00 10 01 00 00 00 00 00 00 00 4E 00 79 00 61 00 6B 00 6F 00 00 00 52 00 00 00 61 00 00 00 01 00 00 00 ED E0 01 10 01 00 00 00 00 00 00 00 57 00 69 00 6E 00 64 00 4D 00 69 00 6C 00 6C 00 00 00 4F 00 00 00 6E 00 00 00 00 00 00 00 08 72 01 10 00 00 00 00 00 00 00 00 46 00 6C 00 61 00 6D 00 65 00 49 00 6E 00 73 00 61 00 6E 00 65 00 00 00 4F 00 00 00 74 00 00 00 00 00 00 00 A3 E7 01 10 01 00 00 00 00 00 00 00 4E 00 69 00 61 00 6B 00 72 00 69 00 73 00 00 00 4B 00 00 00 81 00 00 00 00 00 00 00 64 97 03 10 00 00 00 00 00 00 00 00 6E 00 6F 00 6F 00 62 00 36 00 00 00 01 00 00 00 12 00 00 00 00 00 00 00 EA 4D 05 10 00 00 00 00 00 00 00 00 6E 00 6F 00 6F 00 62 00 00 00 01 00 00 00 12 00 00 00 00 00 00 00 43 46 05 10 00 00 00 00 00 00 00 00 6E 00 6F 00 6F 00 62 00 34 00 00 00 01 00 00 00 19 00 00 00 00 00 00 00 75 45 05 10 00 00 00 00 00 00 00 00 6E 00 6F 00 6F 00 62 00 33 00 00 00 01 00 00 00 12 00 00 00 00 00 00 00 F5 44 05 10 00 00 00 00 00 00 00 00 6E 00 6F 00 6F 00 62 00 32 00 00 00 01 00 00 00 19 00 00 00 00 00 00 00 7E 44 05 10 00 00 00 00 00 00 00 00 6E 00 6F 00 6F 00 62 00 35 00 00 00 01 00 00 00 12 00 00 00 00 00 00 00 D3 46 05 10 00 00 00 00 00 00 00 00 6E 00 6F 00 6F 00 62 00 31 00 00 00 01 00 00 00 12 00 00 00 00 00 00 00 B0 43 05 10 00 00 00 00 00 00 00 00 +S: Len 57 | 39 00 / 8E / 48 E3 02 10 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 13 | 0D 00 / FE / 3A 00 00 00 00 00 00 00 00 00 +S: Len 7 | 07 00 / 75 / 00 00 00 00 +S: Len 7 | 07 00 / 86 / 00 00 00 00 +S: Len 33 | 21 00 / FE / 2F 00 50 00 00 00 64 00 00 00 64 00 00 00 04 00 00 00 04 00 00 00 32 00 00 00 32 00 00 00 +S: Len 7 | 07 00 / 86 / 00 00 00 00 +S: Len 493 | ED 01 / FE / 5F 00 79 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0A 00 00 00 0B 00 00 00 0C 00 00 00 0D 00 00 00 0E 00 00 00 0F 00 00 00 10 00 00 00 11 00 00 00 12 00 00 00 13 00 00 00 15 00 00 00 16 00 00 00 17 00 00 00 18 00 00 00 19 00 00 00 1A 00 00 00 1C 00 00 00 1D 00 00 00 1E 00 00 00 1F 00 00 00 20 00 00 00 21 00 00 00 22 00 00 00 23 00 00 00 24 00 00 00 25 00 00 00 26 00 00 00 27 00 00 00 28 00 00 00 29 00 00 00 2A 00 00 00 2B 00 00 00 2C 00 00 00 2D 00 00 00 2E 00 00 00 2F 00 00 00 30 00 00 00 32 00 00 00 33 00 00 00 34 00 00 00 35 00 00 00 36 00 00 00 37 00 00 00 38 00 00 00 39 00 00 00 3A 00 00 00 3B 00 00 00 3C 00 00 00 3D 00 00 00 3E 00 00 00 3F 00 00 00 40 00 00 00 41 00 00 00 42 00 00 00 E8 03 00 00 EB 03 00 00 EC 03 00 00 ED 03 00 00 EE 03 00 00 EF 03 00 00 F0 03 00 00 F1 03 00 00 F2 03 00 00 F3 03 00 00 F4 03 00 00 F5 03 00 00 F6 03 00 00 F7 03 00 00 F8 03 00 00 F9 03 00 00 07 04 00 00 08 04 00 00 09 04 00 00 0A 04 00 00 0B 04 00 00 0C 04 00 00 0D 04 00 00 0E 04 00 00 0F 04 00 00 10 04 00 00 11 04 00 00 12 04 00 00 13 04 00 00 14 04 00 00 15 04 00 00 16 04 00 00 17 04 00 00 18 04 00 00 19 04 00 00 1A 04 00 00 1B 04 00 00 1C 04 00 00 1D 04 00 00 1E 04 00 00 1F 04 00 00 20 04 00 00 21 04 00 00 22 04 00 00 23 04 00 00 24 04 00 00 25 04 00 00 26 04 00 00 27 04 00 00 28 04 00 00 29 04 00 00 2A 04 00 00 2B 04 00 00 2C 04 00 00 2D 04 00 00 2E 04 00 00 2F 04 00 00 +S: Len 125 | 7D 00 / 85 / 0C 00 F9 10 00 00 02 00 B9 17 00 00 F8 10 00 00 02 00 B9 17 00 00 FD 10 00 00 01 00 B9 17 00 00 F6 10 00 00 02 00 BA 17 00 00 FB 10 00 00 04 00 BA 17 00 00 FC 10 00 00 04 00 BA 17 00 00 05 11 00 00 01 00 BA 17 00 00 07 11 00 00 02 00 BA 17 00 00 06 11 00 00 02 00 BB 17 00 00 02 11 00 00 02 00 BB 17 00 00 FA 10 00 00 02 00 BB 17 00 00 2F 01 00 00 04 00 0A 04 00 00 +S: Len 722 | D2 02 / 32 / 7D CB 00 00 BF 2B FF FF 90 F3 FF FF 88 39 00 00 31 10 03 10 45 00 6F 00 77 00 69 00 6E 00 67 00 00 00 00 00 00 00 01 00 00 00 5C 00 00 00 52 00 00 00 CD 2C 7D B3 02 00 00 00 2F 00 00 00 22 00 00 00 20 00 00 00 15 00 00 00 0B 00 00 00 19 00 00 00 D9 13 00 00 D9 13 00 00 6D 0B 00 00 6D 0B 00 00 E0 35 94 4A 0D DC 01 00 6F 26 06 00 28 00 00 00 8C E8 03 10 DB A3 04 10 E4 A3 04 10 00 A4 04 10 13 22 01 10 70 A4 04 10 4E 20 04 10 B2 BD 00 10 DB 7A 01 10 51 20 04 10 4B 20 04 10 4C 20 04 10 57 20 04 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AC 02 00 00 EF 24 00 00 EF 24 00 00 F0 24 00 00 04 1A 00 00 F1 24 00 00 CE 24 00 00 89 26 00 00 41 05 00 00 CF 24 00 00 CA 24 00 00 CD 24 00 00 D0 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57 2A 2B 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 0E 00 00 93 01 00 00 1B 06 00 00 76 00 00 00 76 00 00 00 46 01 00 00 70 01 00 00 D5 00 00 00 93 01 00 00 F0 05 00 00 00 00 00 00 00 00 00 00 73 00 00 00 58 00 00 00 65 00 00 00 65 00 00 00 73 00 00 00 58 00 00 00 73 00 00 00 58 00 00 00 00 00 00 20 0B 59 F8 3F 00 00 00 20 4B 7E F5 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 37 40 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 00 3E 00 2D 00 2D 00 2D 00 3E 00 00 00 48 E3 02 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 09 00 00 00 00 00 00 00 00 00 00 11 FE FF 7F 00 09 00 00 00 00 00 00 00 50 00 5C 00 00 00 00 00 00 00 94 09 00 00 94 09 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF 00 01 01 00 00 00 00 00 00 00 77 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 96 00 00 00 0A 00 00 00 0A 00 00 00 0A 00 00 00 0A 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 +S: Len 125 | 7D 00 / 85 / 0C 00 F9 10 00 00 02 00 B9 17 00 00 F8 10 00 00 02 00 B9 17 00 00 FD 10 00 00 01 00 B9 17 00 00 F6 10 00 00 02 00 BA 17 00 00 FB 10 00 00 04 00 BA 17 00 00 FC 10 00 00 04 00 BA 17 00 00 05 11 00 00 01 00 BA 17 00 00 07 11 00 00 02 00 BA 17 00 00 06 11 00 00 02 00 BB 17 00 00 02 11 00 00 02 00 BB 17 00 00 FA 10 00 00 02 00 BB 17 00 00 2F 01 00 00 04 00 0A 04 00 00 +S: Len 35 | 23 00 / F9 / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 19 | 13 00 / FE / 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 3057 | F1 0B / 19 / 01 00 00 00 3C 00 68 00 74 00 6D 00 6C 00 3E 00 3C 00 62 00 6F 00 64 00 79 00 3E 00 3C 00 63 00 65 00 6E 00 74 00 65 00 72 00 3E 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 39 00 39 00 30 00 30 00 22 00 3E 00 14 04 3E 04 31 04 40 04 3E 04 20 00 3F 04 3E 04 36 04 30 04 3B 04 3E 04 32 04 30 04 42 04 4C 04 20 00 3D 04 30 04 3C 00 62 00 72 00 3E 00 0A 00 4E 00 65 00 77 00 6C 00 61 00 6E 00 64 00 73 00 20 00 50 00 76 00 50 00 3C 00 62 00 72 00 3E 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 3C 00 2F 00 63 00 65 00 6E 00 74 00 65 00 72 00 3E 00 3C 00 62 00 72 00 3E 00 52 00 61 00 74 00 65 00 20 00 58 00 50 00 20 00 3D 00 20 00 35 00 30 00 30 00 3C 00 62 00 72 00 3E 00 0A 00 52 00 61 00 74 00 65 00 20 00 53 00 50 00 20 00 3D 00 20 00 35 00 30 00 30 00 3C 00 62 00 72 00 3E 00 0A 00 52 00 61 00 74 00 65 00 44 00 72 00 6F 00 70 00 41 00 64 00 65 00 6E 00 61 00 20 00 3D 00 20 00 37 00 37 00 37 00 3C 00 62 00 72 00 3E 00 0A 00 50 00 61 00 72 00 74 00 79 00 20 00 52 00 61 00 74 00 65 00 20 00 58 00 50 00 2F 00 53 00 50 00 20 00 3D 00 20 00 31 00 2E 00 32 00 3C 00 62 00 72 00 3E 00 0A 00 52 00 61 00 74 00 65 00 20 00 44 00 72 00 6F 00 70 00 20 00 49 00 74 00 65 00 6D 00 73 00 20 00 3D 00 20 00 35 00 30 00 3C 00 62 00 72 00 3E 00 0A 00 52 00 61 00 74 00 65 00 20 00 44 00 72 00 6F 00 70 00 20 00 53 00 70 00 6F 00 69 00 6C 00 20 00 3D 00 20 00 35 00 30 00 3E 00 0A 00 52 00 61 00 74 00 65 00 20 00 51 00 75 00 65 00 73 00 74 00 73 00 20 00 52 00 65 00 77 00 61 00 72 00 64 00 20 00 3D 00 20 00 32 00 30 00 30 00 3C 00 62 00 72 00 3E 00 0A 00 52 00 61 00 74 00 65 00 20 00 51 00 75 00 65 00 73 00 74 00 73 00 20 00 44 00 72 00 6F 00 70 00 20 00 3D 00 20 00 32 00 30 00 30 00 3C 00 62 00 72 00 3E 00 0A 00 52 00 61 00 74 00 65 00 20 00 52 00 61 00 69 00 64 00 42 00 6F 00 73 00 73 00 20 00 3D 00 20 00 31 00 30 00 3C 00 62 00 72 00 3E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 1A 04 3D 04 38 04 33 04 38 04 20 00 34 04 3B 04 4F 04 20 00 41 04 3A 04 38 04 3B 04 3E 04 32 04 20 00 3D 04 35 04 20 00 3D 04 43 04 36 04 3D 04 4B 04 2E 00 20 00 10 04 32 04 42 04 3E 04 38 04 37 04 43 04 47 04 35 04 3D 04 38 04 35 04 20 00 41 04 3A 04 38 04 3B 04 3E 04 32 04 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 53 00 75 00 62 00 43 00 6C 00 61 00 73 00 73 00 20 00 31 04 35 04 37 04 20 00 3A 04 32 04 35 04 41 04 42 04 30 04 2E 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 1F 04 3E 04 3B 04 43 04 47 04 35 04 3D 04 38 04 35 04 20 00 34 04 32 04 3E 04 40 04 4F 04 3D 04 41 04 42 04 32 04 30 04 20 00 42 04 3E 04 3B 04 4C 04 3A 04 3E 04 20 00 3F 04 3E 04 20 00 3A 04 32 04 35 04 41 04 42 04 43 04 2E 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 1C 04 30 04 3A 04 41 04 38 04 3C 04 30 04 3B 04 4C 04 3D 04 3E 04 35 04 20 00 3A 04 3E 04 3B 04 38 04 47 04 35 04 41 04 42 04 32 04 3E 04 20 00 41 04 30 04 31 04 2D 00 3A 04 3B 04 30 04 41 04 41 04 3E 04 32 04 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 20 00 3D 00 20 00 35 00 2E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 21 04 42 04 3E 04 38 04 42 04 20 00 4E 00 50 00 43 00 20 00 42 00 75 00 66 00 66 00 65 00 72 00 20 00 28 00 34 04 3E 04 41 04 42 04 43 04 3F 04 35 04 3D 04 20 00 3F 04 40 04 38 04 20 00 3E 04 41 04 30 04 34 04 30 04 45 04 29 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 20 00 3D 00 20 00 32 00 38 00 2E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 1A 04 3E 04 3B 04 38 04 47 04 35 04 41 04 42 04 32 04 3E 04 20 00 31 04 30 04 44 04 44 04 20 00 41 04 3B 04 3E 04 42 04 3E 04 32 04 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 20 00 3D 00 20 00 32 00 38 00 2E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 12 04 40 04 35 04 3C 04 4F 04 20 00 31 04 30 04 44 04 44 04 3E 04 32 04 20 00 28 00 1F 04 1F 04 2C 00 20 00 28 04 15 04 20 00 38 04 20 00 34 04 40 04 29 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 20 00 3D 00 20 00 36 00 30 00 20 00 3C 04 38 04 3D 04 2E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 12 04 40 04 35 04 3C 04 4F 04 20 00 3F 04 35 04 41 04 35 04 3D 04 2F 00 42 04 30 04 3D 04 46 04 35 04 32 04 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 20 00 3D 00 20 00 33 00 30 00 20 00 3C 04 38 04 3D 04 2E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 11 04 35 04 37 04 3E 04 3F 04 30 04 41 04 42 04 3D 04 30 04 4F 04 20 00 37 04 30 04 42 04 3E 04 47 04 3A 04 30 04 20 00 3F 04 40 04 35 04 34 04 3C 04 35 04 42 04 3E 04 32 04 20 00 2B 00 38 00 2E 00 20 00 1C 04 30 04 3A 04 41 04 2E 00 20 00 2B 00 38 00 2E 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 27 04 42 04 3E 04 31 04 4B 04 20 00 3F 04 3E 04 41 04 3C 04 3E 04 42 04 40 04 35 04 42 04 4C 04 20 00 3F 04 3E 04 3B 04 4C 04 37 04 3E 04 32 04 30 04 42 04 35 04 3B 04 4C 04 41 04 3A 04 38 04 35 04 20 00 3A 04 3E 04 3C 04 30 04 3D 04 34 04 4B 04 20 00 3D 04 30 04 31 04 35 04 40 04 38 04 42 04 35 04 20 00 32 04 20 00 3E 04 3A 04 3D 04 35 04 20 00 47 04 30 04 42 04 30 04 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 20 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 30 00 30 00 30 00 30 00 22 00 3E 00 2E 00 68 00 65 00 6C 00 70 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 2E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 14 04 3B 04 4F 04 20 00 3F 04 40 04 3E 04 41 04 3C 04 3E 04 42 04 40 04 30 04 20 00 41 04 42 04 30 04 42 04 43 04 41 04 30 04 20 00 41 04 35 04 40 04 32 04 35 04 40 04 30 04 20 00 32 04 32 04 35 04 34 04 38 04 42 04 35 04 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 20 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 30 00 30 00 30 00 30 00 22 00 3E 00 2E 00 73 00 74 00 61 00 74 00 75 00 73 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 2E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 14 04 3B 04 4F 04 20 00 3F 04 40 04 38 04 3D 04 4F 04 42 04 38 04 4F 04 20 00 43 04 47 04 30 04 41 04 42 04 38 04 4F 04 20 00 32 04 20 00 33 04 3E 04 3B 04 3E 04 41 04 3E 04 32 04 30 04 3D 04 38 04 38 04 20 00 32 04 32 04 35 04 34 04 38 04 42 04 35 04 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 20 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 30 00 30 00 30 00 30 00 22 00 3E 00 2E 00 76 00 6F 00 74 00 65 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 2E 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 46 00 32 00 30 00 30 00 22 00 3E 00 27 04 42 04 3E 04 31 04 4B 04 20 00 3F 04 3E 04 47 04 38 04 42 04 30 04 42 04 4C 04 20 00 62 00 61 00 73 00 68 00 2E 00 6F 00 72 00 67 00 2E 00 72 00 75 00 20 00 3F 04 3E 04 33 04 3E 04 32 04 3E 04 40 04 38 04 42 04 35 04 20 00 41 04 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 20 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 46 00 46 00 30 00 30 00 30 00 30 00 22 00 3E 00 54 00 61 00 75 00 72 00 69 00 6E 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 2E 00 3C 00 62 00 72 00 3E 00 3C 00 62 00 72 00 3E 00 11 04 3E 04 3B 04 35 04 35 04 20 00 3F 04 3E 04 34 04 40 04 3E 04 31 04 3D 04 43 04 4E 04 20 00 38 04 3D 04 44 04 3E 04 40 04 3C 04 30 04 46 04 38 04 4E 04 20 00 3C 04 3E 04 36 04 35 04 42 04 35 04 20 00 3F 04 3E 04 3B 04 43 04 47 04 38 04 42 04 4C 04 20 00 3D 04 30 04 20 00 3D 04 30 04 48 04 35 04 3C 04 20 00 41 04 30 04 39 04 42 04 35 04 3A 00 3C 00 62 00 72 00 3E 00 0A 00 3C 00 66 00 6F 00 6E 00 74 00 20 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00 22 00 30 00 30 00 41 00 36 00 35 00 30 00 22 00 3E 00 6E 00 65 00 77 00 6C 00 61 00 6E 00 64 00 73 00 2D 00 73 00 65 00 72 00 76 00 65 00 72 00 73 00 2E 00 63 00 6F 00 6D 00 3C 00 2F 00 66 00 6F 00 6E 00 74 00 3E 00 0A 00 3C 00 2F 00 62 00 6F 00 64 00 79 00 3E 00 3C 00 2F 00 68 00 74 00 6D 00 6C 00 3E 00 00 00 00 00 00 00 +S: Len 3 | 03 00 / 1F / +S: Len 11 | 0B 00 / 27 / 5A EB 03 10 02 00 00 00 +S: Len 11 | 0B 00 / 27 / 45 EC 03 10 01 00 00 00 +S: Len 11 | 0B 00 / 27 / 25 ED 03 10 01 00 00 00 +S: Len 31 | 1F 00 / 2F / 44 EC 03 10 7B D0 00 00 EA 27 FF FF 50 F4 FF FF 0F D1 00 00 43 27 FF FF 00 F4 FF FF +S: Len 11 | 0B 00 / 27 / AA EB 03 10 02 00 00 00 +S: Len 11 | 0B 00 / 27 / 2E EC 03 10 03 00 00 00 +S: Len 11 | 0B 00 / 27 / DB EB 03 10 03 00 00 00 +S: Len 31 | 1F 00 / 2F / DA EB 03 10 BD C3 00 00 49 23 FF FF D0 F5 FF FF AC C3 00 00 B4 23 FF FF D0 F5 FF FF +S: Len 11 | 0B 00 / 27 / AA EB 03 10 03 00 00 00 +S: Len 11 | 0B 00 / 27 / 3B A4 00 10 02 00 00 00 +S: Len 31 | 1F 00 / 2F / 5B EB 03 10 51 D0 00 00 FD 25 FF FF 10 F4 FF FF 12 D0 00 00 1C 26 FF FF 00 F4 FF FF +S: Len 7 | 07 00 / C7 / 00 00 00 00 +S: Len 7 | 07 00 / C7 / 00 00 00 00 +S: Len 21 | 15 00 / 89 / 48 E3 02 10 4E 00 4F 00 4F 00 42 00 53 00 00 00 00 00 +S: Len 11 | 0B 00 / 27 / DB EB 03 10 03 00 00 00 +S: Len 11 | 0B 00 / 27 / 12 EC 03 10 02 00 00 00 +S: Len 11 | 0B 00 / 27 / 5B EB 03 10 01 00 00 00 +S: Len 43 | 2B 00 / 48 / C9 EB 03 10 C9 EB 03 10 BD 0F 00 00 03 00 00 00 6C 08 00 00 6E 25 00 00 9F D2 00 00 6D 24 FF FF 20 F4 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / C9 EB 03 10 BD 0F 00 00 03 00 00 00 01 00 00 00 C9 EB 03 10 +S: Len 49 | 31 00 / 4A / 7E C8 03 10 01 00 00 00 4D 00 65 00 67 00 42 00 65 00 67 00 00 00 1A 04 38 04 3D 04 4C 04 42 04 35 04 20 00 3D 04 43 04 31 04 3B 04 00 00 +S: Len 31 | 1F 00 / 2F / AA EC 03 10 5A C6 00 00 F6 34 FF FF A0 F4 FF FF 82 C7 00 00 72 35 FF FF 60 F4 FF FF +S: Len 11 | 0B 00 / 27 / 43 EC 03 10 03 00 00 00 +S: Len 43 | 2B 00 / 48 / 37 ED 03 10 37 ED 03 10 BD 0F 00 00 03 00 00 00 6C 08 00 00 6E 25 00 00 30 CA 00 00 76 2E FF FF 80 F4 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / 37 ED 03 10 BD 0F 00 00 03 00 00 00 01 00 00 00 37 ED 03 10 +S: Len 43 | 2B 00 / 48 / 26 ED 03 10 26 ED 03 10 BC 0F 00 00 03 00 00 00 6C 08 00 00 6E 25 00 00 BC C5 00 00 F1 27 FF FF F8 F4 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / 26 ED 03 10 BC 0F 00 00 03 00 00 00 01 00 00 00 26 ED 03 10 +S: Len 43 | 2B 00 / 48 / 5B EB 03 10 5B EB 03 10 BC 0F 00 00 03 00 00 00 B5 0B 00 00 08 34 00 00 51 D0 00 00 FD 25 FF FF 10 F4 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / 5B EB 03 10 BC 0F 00 00 03 00 00 00 01 00 00 00 5B EB 03 10 +S: Len 43 | 2B 00 / 48 / C8 EB 03 10 C8 EB 03 10 BD 0F 00 00 03 00 00 00 6C 08 00 00 6E 25 00 00 02 D6 00 00 00 2F FF FF F0 F3 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / C8 EB 03 10 BD 0F 00 00 03 00 00 00 01 00 00 00 C8 EB 03 10 +S: Len 11 | 0B 00 / 27 / 18 ED 03 10 01 00 00 00 +S: Len 43 | 2B 00 / 48 / 5A EB 03 10 5A EB 03 10 BC 0F 00 00 03 00 00 00 B5 0B 00 00 08 34 00 00 25 D5 00 00 70 26 FF FF 58 F3 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / 5A EB 03 10 BC 0F 00 00 03 00 00 00 01 00 00 00 5A EB 03 10 +S: Len 206 | CE 00 / 0C / 26 ED 03 10 73 96 0F 00 01 00 00 00 BC C5 00 00 F1 27 FF FF F8 F4 FF FF C2 F6 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 C0 CC CC 37 40 00 00 00 40 33 B3 45 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 35 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 CC CC 37 40 00 00 00 40 33 B3 45 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 43 | 2B 00 / 48 / 38 ED 03 10 38 ED 03 10 BD 0F 00 00 03 00 00 00 6C 08 00 00 6E 25 00 00 51 C4 00 00 22 32 FF FF F8 F4 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / 38 ED 03 10 BD 0F 00 00 03 00 00 00 01 00 00 00 38 ED 03 10 +S: Len 31 | 1F 00 / 2F / AA EB 03 10 C0 D4 00 00 C0 24 FF FF F8 F2 FF FF E0 D4 00 00 10 25 FF FF 08 F3 FF FF +S: Len 11 | 0B 00 / 27 / A9 EC 03 10 03 00 00 00 +S: Len 208 | D0 00 / 0C / 5B EB 03 10 85 96 0F 00 01 00 00 00 51 D0 00 00 FD 25 FF FF 10 F4 FF FF 5E ED 00 00 00 00 00 00 B6 00 00 00 C8 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 C0 1E F5 50 40 00 00 00 80 14 2E 48 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 39 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 1E F5 50 40 00 00 00 80 14 2E 48 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 11 | 0B 00 / 27 / 5B EB 03 10 02 00 00 00 +C: Len 13 | 0D 00 / D0 / 0D 00 BB 05 00 00 01 00 00 00 +S: Len 43 | 2B 00 / 48 / 5C EB 03 10 5C EB 03 10 BC 0F 00 00 03 00 00 00 B5 0B 00 00 08 34 00 00 D9 D5 00 00 2D 21 FF FF 10 F3 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / 5C EB 03 10 BC 0F 00 00 03 00 00 00 01 00 00 00 5C EB 03 10 +S: Len 13 | 0D 00 / FE / 0C 00 BB 05 00 00 01 00 00 00 +S: Len 51 | 33 00 / 62 / 99 05 00 00 01 00 00 00 00 00 00 00 53 00 6F 00 75 00 6C 00 73 00 68 00 6F 00 74 00 3A 00 20 00 53 00 2D 00 67 00 72 00 61 00 64 00 65 00 00 00 +S: Len 83 | 53 00 / 21 / 01 00 02 00 04 00 D0 7A 01 10 BB 05 00 00 13 00 00 00 68 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 11 | 0B 00 / 62 / 56 01 00 00 00 00 00 00 +S: Len 43 | 2B 00 / 48 / 31 10 03 10 31 10 03 10 6A 08 00 00 01 00 00 00 00 00 00 00 00 00 00 00 7D CB 00 00 BF 2B FF FF 90 F3 FF FF 00 00 00 00 +S: Len 43 | 2B 00 / 48 / C7 EB 03 10 C7 EB 03 10 BD 0F 00 00 03 00 00 00 6C 08 00 00 6E 25 00 00 81 D0 00 00 3E 23 FF FF A0 F3 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / C7 EB 03 10 BD 0F 00 00 03 00 00 00 01 00 00 00 C7 EB 03 10 +S: Len 208 | D0 00 / 0C / 5A EB 03 10 85 96 0F 00 01 00 00 00 25 D5 00 00 70 26 FF FF 58 F3 FF FF D9 55 00 00 00 00 00 00 B6 00 00 00 C8 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 C0 1E F5 50 40 00 00 00 80 14 2E 48 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 39 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 1E F5 50 40 00 00 00 80 14 2E 48 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 11 | 0B 00 / 27 / DB EB 03 10 02 00 00 00 +S: Len 27 | 1B 00 / 6C / F5 AF 00 10 C8 00 00 00 20 03 00 00 9D F4 FE FF 78 F7 03 00 E6 F1 FF FF +S: Len 31 | 1F 00 / 2F / 19 ED 03 10 C0 C7 00 00 30 31 FF FF 08 F5 FF FF B8 C7 00 00 34 31 FF FF F8 F4 FF FF +S: Len 31 | 1F 00 / 2F / 19 ED 03 10 CD C7 00 00 07 31 FF FF F0 F4 FF FF C0 C7 00 00 30 31 FF FF 08 F5 FF FF +S: Len 11 | 0B 00 / 27 / 25 ED 03 10 01 00 00 00 +C: Len 31 | 1F 00 / 0F / 9C CB 00 00 37 2B FF FF 90 F3 FF FF 7D CB 00 00 BF 2B FF FF AA F3 FF FF 01 00 00 00 +S: Len 31 | 1F 00 / 2F / 31 10 03 10 9C CB 00 00 37 2B FF FF 90 F3 FF FF 7D CB 00 00 BF 2B FF FF 90 F3 FF FF +C: Len 23 | 17 00 / 59 / 7E CB 00 00 BB 2B FF FF AA F3 FF FF 43 F7 00 00 00 00 00 00 +S: Len 208 | D0 00 / 0C / 5C EB 03 10 85 96 0F 00 01 00 00 00 D9 D5 00 00 2D 21 FF FF 10 F3 FF FF 33 AC 00 00 00 00 00 00 B6 00 00 00 C8 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 B9 00 00 00 69 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 C0 1E F5 50 40 00 00 00 80 14 2E 48 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 39 00 20 00 41 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 1E F5 50 40 00 00 00 80 14 2E 48 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +C: Len 23 | 17 00 / 59 / 9A CB 00 00 3D 2B FF FF A9 F3 FF FF 22 C9 00 00 00 00 00 00 +S: Len 31 | 1F 00 / 2F / AA EB 03 10 40 D4 00 00 F0 24 FF FF 20 F3 FF FF C0 D4 00 00 C0 24 FF FF F8 F2 FF FF +S: Len 11 | 0B 00 / 27 / A9 EC 03 10 01 00 00 00 +C: Len 20 | 14 00 / 1F / 39 A4 00 10 9A CB 00 00 3D 2B FF FF A9 F3 FF FF 00 +S: Len 27 | 1B 00 / 23 / 31 10 03 10 39 A4 00 10 9C CB 00 00 37 2B FF FF 90 F3 FF FF 00 00 00 00 +S: Len 13 | 0D 00 / B9 / 39 A4 00 10 0C 00 00 00 00 00 +S: Len 23 | 17 00 / 79 / 39 A4 00 10 A6 CA 00 00 F4 29 FF FF A1 F3 FF FF 80 59 00 00 +S: Len 3 | 03 00 / 1F / +S: Len 11 | 0B 00 / 27 / 3A A4 00 10 02 00 00 00 +S: Len 11 | 0B 00 / 27 / A2 EB 03 10 01 00 00 00 +S: Len 11 | 0B 00 / 27 / 11 EC 03 10 01 00 00 00 +S: Len 31 | 1F 00 / 2F / A9 EB 03 10 35 D6 00 00 FF 2A FF FF 90 F3 FF FF CB D6 00 00 3B 2B FF FF 80 F3 FF FF +S: Len 31 | 1F 00 / 2F / 4C 36 04 10 50 D1 00 00 05 35 FF FF 10 F4 FF FF 7F D1 00 00 D1 35 FF FF 10 F4 FF FF +S: Len 11 | 0B 00 / 27 / 39 A4 00 10 02 00 00 00 +S: Len 11 | 0B 00 / 27 / C7 EB 03 10 02 00 00 00 +S: Len 31 | 1F 00 / 2F / 26 ED 03 10 E9 C6 00 00 48 27 FF FF 78 F5 FF FF BC C5 00 00 F1 27 FF FF F8 F4 FF FF +S: Len 31 | 1F 00 / 2F / AD EB 03 10 B1 D3 00 00 7D 29 FF FF 00 F4 FF FF 32 D4 00 00 58 29 FF FF E0 F3 FF FF +S: Len 11 | 0B 00 / 27 / 5C ED 03 10 02 00 00 00 +S: Len 43 | 2B 00 / 48 / 25 ED 03 10 25 ED 03 10 BC 0F 00 00 03 00 00 00 6C 08 00 00 6E 25 00 00 68 C2 00 00 C9 29 FF FF E0 F5 FF FF 00 00 00 00 +S: Len 23 | 17 00 / 54 / 25 ED 03 10 BC 0F 00 00 03 00 00 00 01 00 00 00 25 ED 03 10 +C: Len 20 | 14 00 / 01 / 39 A4 00 10 9A CB 00 00 3D 2B FF FF A9 F3 FF FF 00 +S: Len 13 | 0D 00 / B9 / 39 A4 00 10 0C 00 00 00 00 00 +S: Len 35 | 23 00 / 18 / 31 10 03 10 03 00 00 00 09 00 00 00 D9 13 00 00 0B 00 00 00 61 0B 00 00 21 00 00 00 94 09 00 00 +S: Len 83 | 53 00 / 21 / 01 00 02 00 04 00 DB 7A 01 10 41 05 00 00 07 00 00 00 86 08 00 00 05 00 00 00 01 00 00 01 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 11 | 0B 00 / 62 / 29 00 00 00 00 00 00 00 +S: Len 15 | 0F 00 / 6B / 01 00 00 00 64 07 00 00 64 07 00 00 +S: Len 30 | 1E 00 / 33 / 31 10 03 10 39 A4 00 10 6C 07 00 00 10 9C CB 00 00 37 2B FF FF 90 F3 FF FF 00 00 +C: Len 23 | 17 00 / 59 / 9A CB 00 00 3D 2B FF FF A9 F3 FF FF 22 C9 00 00 00 00 00 00 +S: Len 31 | 1F 00 / 2F / 43 EC 03 10 DC D5 00 00 4F 27 FF FF 70 F3 FF FF BE D5 00 00 E8 27 FF FF 80 F3 FF FF +S: Len 11 | 0B 00 / 27 / 30 EC 03 10 02 00 00 00 +C: Len 31 | 1F 00 / 0F / A8 CB 00 00 61 2B FF FF 90 F3 FF FF 9A CB 00 00 3D 2B FF FF A9 F3 FF FF 01 00 00 00 +S: Len 19 | 13 00 / 62 / 23 00 00 00 01 00 00 00 01 00 00 00 6C 07 00 00 +S: Len 7 | 07 00 / 25 / 39 A4 00 10 +S: Len 7 | 07 00 / 25 / 31 10 03 10 +S: Len 83 | 53 00 / 21 / 01 00 02 00 04 00 D0 7A 01 10 BB 05 00 00 13 00 00 00 67 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 11 | 0B 00 / 62 / 56 01 00 00 00 00 00 00 +S: Len 43 | 2B 00 / 48 / 31 10 03 10 31 10 03 10 6A 08 00 00 01 00 00 00 00 00 00 00 00 00 00 00 9C CB 00 00 37 2B FF FF 90 F3 FF FF 00 00 00 00 +S: Len 31 | 1F 00 / 2F / 31 10 03 10 A8 CB 00 00 61 2B FF FF 90 F3 FF FF 9C CB 00 00 37 2B FF FF 90 F3 FF FF +S: Len 11 | 0B 00 / 27 / A3 EB 03 10 02 00 00 00 +S: Len 11 | 0B 00 / 27 / DB EB 03 10 02 00 00 00 +S: Len 206 | CE 00 / 0C / 25 ED 03 10 73 96 0F 00 01 00 00 00 68 C2 00 00 C9 29 FF FF E0 F5 FF FF CB 93 00 00 00 00 00 00 FD 00 00 00 16 01 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 A0 00 00 00 64 00 00 00 9A 99 99 99 99 99 F1 3F 00 00 00 00 00 00 F0 3F 00 00 00 C0 CC CC 37 40 00 00 00 40 33 B3 45 40 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 4C 00 36 00 35 00 20 00 53 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 CC CC 37 40 00 00 00 40 33 B3 45 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +C: Len 23 | 17 00 / 59 / A6 CB 00 00 5D 2B FF FF A9 F3 FF FF 51 62 00 00 00 00 00 00 +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 B0 CA 00 00 C0 36 FF FF E8 F3 FF FF 2C CB 00 00 EA 36 FF FF E0 F3 FF FF +S: Len 31 | 1F 00 / 2F / AA EB 03 10 0D D4 00 00 EB 24 FF FF 38 F3 FF FF 40 D4 00 00 F0 24 FF FF 20 F3 FF FF +S: Len 35 | 23 00 / 18 / 31 10 03 10 03 00 00 00 09 00 00 00 D9 13 00 00 0B 00 00 00 6B 0B 00 00 21 00 00 00 94 09 00 00 +S: Len 31 | 1F 00 / 2F / DB EB 03 10 CB C1 00 00 9A 28 FF FF C0 F5 FF FF CE C2 00 00 2B 29 FF FF D8 F5 FF FF +S: Len 11 | 0B 00 / 27 / 19 ED 03 10 03 00 00 00 +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 D0 CA 00 00 60 36 FF FF E8 F3 FF FF B0 CA 00 00 C0 36 FF FF E8 F3 FF FF +C: Len 3 | 03 00 / 14 / +S: Len 6087 | C7 17 / 11 / 01 00 50 00 04 00 38 B4 04 10 B3 21 00 00 00 00 00 00 30 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D2 B3 04 10 5F 05 00 00 01 00 00 00 0A 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 AF B3 04 10 D8 15 00 00 02 00 00 00 F5 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70 A4 04 10 F1 24 00 00 0F 00 00 00 01 00 00 00 02 00 00 00 01 00 20 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A4 04 10 F0 24 00 00 04 00 00 00 01 00 00 00 02 00 00 00 01 00 08 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E4 A3 04 10 EF 24 00 00 09 00 00 00 01 00 00 00 02 00 00 00 01 00 04 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DB A3 04 10 EF 24 00 00 08 00 00 00 01 00 00 00 02 00 00 00 01 00 02 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 57 20 04 10 D0 24 00 00 0C 00 00 00 01 00 00 00 01 00 00 00 01 00 00 10 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 51 20 04 10 CF 24 00 00 0A 00 00 00 01 00 00 00 01 00 00 00 01 00 00 02 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 4E 20 04 10 CE 24 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 40 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 4C 20 04 10 CD 24 00 00 0B 00 00 00 01 00 00 00 01 00 00 00 01 00 00 08 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 4B 20 04 10 CA 24 00 00 06 00 00 00 01 00 00 00 01 00 00 00 01 00 00 04 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D1 14 04 10 D8 02 00 00 03 00 00 00 73 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D2 ED 03 10 46 11 00 00 04 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 37 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 E4 EB 03 10 02 06 00 00 05 00 00 00 0F 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 57 EA 03 10 25 04 00 00 06 00 00 00 FA 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 FC E9 03 10 B3 05 00 00 07 00 00 00 D0 07 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 EE E9 03 10 B2 05 00 00 08 00 00 00 5C 07 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 DC E9 03 10 6F 0F 00 00 09 00 00 00 7C 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 8C E8 03 10 AC 02 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 01 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 93 2F 03 10 2E 22 00 00 0A 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 89 2E 03 10 24 22 00 00 0B 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 39 10 03 10 D1 31 00 00 0C 00 00 00 07 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 32 10 03 10 39 00 00 00 0D 00 00 00 A7 72 33 70 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 0A 0B 03 10 C2 03 00 00 0E 00 00 00 3F 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 02 CB 02 10 C8 18 00 00 0F 00 00 00 14 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 9C B6 01 10 4E 07 00 00 10 00 00 00 DF 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 4C 8B 01 10 B5 15 00 00 11 00 00 00 97 06 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 4B 8B 01 10 B4 15 00 00 12 00 00 00 98 06 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 DB 7A 01 10 41 05 00 00 07 00 00 00 86 08 00 00 05 00 00 00 01 00 00 01 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D0 7A 01 10 BB 05 00 00 13 00 00 00 67 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 B2 6C 01 10 53 08 00 00 14 00 00 00 90 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 9D 3F 01 10 97 21 00 00 15 00 00 00 14 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 9C 3F 01 10 BF 21 00 00 16 00 00 00 62 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 5E 2F 01 10 CA 0F 00 00 17 00 00 00 09 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 E0 2C 01 10 CB 0F 00 00 18 00 00 00 09 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 9F 29 01 10 97 15 00 00 19 00 00 00 06 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 8C 29 01 10 49 07 00 00 1A 00 00 00 80 03 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 5A 28 01 10 C8 0F 00 00 1B 00 00 00 24 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 1A 28 01 10 61 07 00 00 1C 00 00 00 48 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 39 26 01 10 98 15 00 00 1D 00 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 B5 24 01 10 93 15 00 00 1E 00 00 00 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 97 24 01 10 ED 1E 00 00 1F 00 00 00 03 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 31 24 01 10 7F 15 00 00 20 00 00 00 0B 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 21 24 01 10 7E 15 00 00 21 00 00 00 06 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 D3 23 01 10 4C 07 00 00 22 00 00 00 80 11 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 81 23 01 10 CA 18 00 00 23 00 00 00 13 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 53 23 01 10 C6 18 00 00 24 00 00 00 13 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 52 23 01 10 51 07 00 00 25 00 00 00 F2 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 2D 23 01 10 92 15 00 00 26 00 00 00 07 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 2C 23 01 10 AD 15 00 00 27 00 00 00 6C 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 AF 22 01 10 8B 15 00 00 28 00 00 00 0B 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 70 22 01 10 8A 15 00 00 29 00 00 00 08 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 6F 22 01 10 57 07 00 00 2A 00 00 00 B4 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 60 22 01 10 77 15 00 00 2B 00 00 00 04 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 5F 22 01 10 67 07 00 00 2C 00 00 00 50 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 22 01 10 04 1A 00 00 0E 00 00 00 01 00 00 00 02 00 00 00 01 00 10 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 F3 1F 01 10 23 02 00 00 2D 00 00 00 01 00 00 00 01 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 ED 1F 01 10 94 16 00 00 2E 00 00 00 01 00 00 00 01 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 EC 1F 01 10 88 16 00 00 2F 00 00 00 01 00 00 00 01 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E4 1F 01 10 C0 19 00 00 30 00 00 00 01 00 00 00 00 00 00 00 00 00 80 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 D6 1F 01 10 4E 09 00 00 31 00 00 00 01 00 00 00 01 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 8A 1F 01 10 C9 0F 00 00 32 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 F7 19 01 10 66 07 00 00 33 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 EC 17 01 10 1B 22 00 00 34 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 58 15 01 10 CC 0F 00 00 35 00 00 00 37 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 E8 12 01 10 53 07 00 00 36 00 00 00 49 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 41 0F 01 10 A3 15 00 00 37 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 EF 0B 01 10 4A 07 00 00 38 00 00 00 42 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 48 0B 01 10 54 07 00 00 39 00 00 00 7A 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 3D 0B 01 10 4F 07 00 00 3A 00 00 00 83 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 8B 01 01 10 C1 09 00 00 3B 00 00 00 01 00 00 00 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E 00 01 10 E4 00 00 00 3C 00 00 00 01 00 00 00 00 00 00 00 00 00 80 00 00 00 08 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 CD EA 00 10 DE 19 00 00 3D 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 89 EA 00 10 DE 19 00 00 3E 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 88 EA 00 10 DE 19 00 00 3F 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 77 EA 00 10 DE 19 00 00 40 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 71 EA 00 10 DE 19 00 00 41 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 64 EA 00 10 DE 19 00 00 42 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B2 BD 00 10 89 26 00 00 05 00 00 00 01 00 00 00 00 00 00 00 01 00 00 40 00 00 08 00 00 00 57 2A 2B 1C FF FF FF FF 00 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 70 CB 00 00 70 36 FF FF E8 F3 FF FF D0 CA 00 00 60 36 FF FF E8 F3 FF FF +S: Len 31 | 1F 00 / 2F / 5A EB 03 10 62 D5 00 00 70 26 FF FF 58 F3 FF FF 25 D5 00 00 70 26 FF FF 58 F3 FF FF +S: Len 35 | 23 00 / 18 / 31 10 03 10 03 00 00 00 09 00 00 00 D9 13 00 00 0B 00 00 00 6D 0B 00 00 21 00 00 00 94 09 00 00 +S: Len 31 | 1F 00 / 2F / 37 ED 03 10 60 C9 00 00 10 2F FF FF 20 F5 FF FF 30 CA 00 00 76 2E FF FF 80 F4 FF FF +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 D0 CB 00 00 A0 36 FF FF E8 F3 FF FF 70 CB 00 00 70 36 FF FF E8 F3 FF FF +S: Len 31 | 1F 00 / 2F / A9 EC 03 10 1D C6 00 00 3C 34 FF FF A0 F4 FF FF C0 C6 00 00 F7 32 FF FF B0 F4 FF FF +C: Len 11 | 0B 00 / 19 / 57 EA 03 10 00 00 00 00 +S: Len 83 | 53 00 / 21 / 01 00 02 00 04 00 57 EA 03 10 25 04 00 00 06 00 00 00 F9 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +S: Len 43 | 2B 00 / 48 / 31 10 03 10 31 10 03 10 F0 07 00 00 01 00 00 00 00 00 00 00 10 27 00 00 A8 CB 00 00 61 2B FF FF 90 F3 FF FF 00 00 00 00 +S: Len 19 | 13 00 / 62 / 2E 00 00 00 01 00 00 00 03 00 00 00 25 04 00 00 +S: Len 23 | 17 00 / 54 / 31 10 03 10 F0 07 00 00 01 00 00 00 01 00 00 00 31 10 03 10 +S: Len 25 | 19 00 / FE / 01 00 01 00 00 00 0F 00 00 00 01 00 00 00 00 00 00 00 00 00 48 40 +S: Len 23 | 17 00 / 62 / 6E 00 00 00 01 00 00 00 04 00 00 00 F0 07 00 00 01 00 00 00 +S: Len 722 | D2 02 / 32 / A8 CB 00 00 61 2B FF FF 90 F3 FF FF AA 34 00 00 31 10 03 10 45 00 6F 00 77 00 69 00 6E 00 67 00 00 00 00 00 00 00 01 00 00 00 5C 00 00 00 52 00 00 00 CD 2C 7D B3 02 00 00 00 2F 00 00 00 22 00 00 00 20 00 00 00 15 00 00 00 0B 00 00 00 19 00 00 00 D9 13 00 00 D9 13 00 00 6D 0B 00 00 6D 0B 00 00 E0 35 94 4A 01 DC 01 00 6F 26 06 00 28 00 00 00 8C E8 03 10 DB A3 04 10 E4 A3 04 10 00 A4 04 10 13 22 01 10 70 A4 04 10 4E 20 04 10 B2 BD 00 10 DB 7A 01 10 51 20 04 10 4B 20 04 10 4C 20 04 10 57 20 04 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AC 02 00 00 EF 24 00 00 EF 24 00 00 F0 24 00 00 04 1A 00 00 F1 24 00 00 CE 24 00 00 89 26 00 00 41 05 00 00 CF 24 00 00 CA 24 00 00 CD 24 00 00 D0 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57 2A 2B 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 0E 00 00 93 01 00 00 1B 06 00 00 76 00 00 00 76 00 00 00 46 01 00 00 70 01 00 00 D5 00 00 00 93 01 00 00 F0 05 00 00 00 00 00 00 00 00 00 00 73 00 00 00 58 00 00 00 65 00 00 00 65 00 00 00 73 00 00 00 58 00 00 00 73 00 00 00 58 00 00 00 00 00 00 20 0B 59 F8 3F 00 00 00 20 4B 7E F5 3F 00 00 00 00 00 00 20 40 00 00 00 00 00 00 37 40 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 00 3E 00 2D 00 2D 00 2D 00 3E 00 00 00 48 E3 02 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 09 00 00 00 00 00 00 00 00 00 00 11 FE FF 7F 00 09 00 00 00 00 00 00 00 50 00 5C 00 00 00 00 00 00 00 94 09 00 00 94 09 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF 00 01 01 00 00 00 00 00 00 00 77 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 96 00 00 00 0A 00 00 00 0A 00 00 00 0A 00 00 00 0A 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 +S: Len 15 | 0F 00 / FA / F0 07 00 00 01 00 00 00 0E 00 00 00 +S: Len 125 | 7D 00 / 85 / 0C 00 F9 10 00 00 02 00 9F 17 00 00 F8 10 00 00 02 00 9F 17 00 00 FD 10 00 00 01 00 9F 17 00 00 F6 10 00 00 02 00 9F 17 00 00 FB 10 00 00 04 00 9F 17 00 00 FC 10 00 00 04 00 A0 17 00 00 05 11 00 00 01 00 A0 17 00 00 07 11 00 00 02 00 A0 17 00 00 06 11 00 00 02 00 A0 17 00 00 02 11 00 00 02 00 A0 17 00 00 FA 10 00 00 02 00 A1 17 00 00 2F 01 00 00 04 00 F0 03 00 00 +S: Len 35 | 23 00 / 18 / 31 10 03 10 03 00 00 00 09 00 00 00 D9 13 00 00 0B 00 00 00 6D 0B 00 00 21 00 00 00 94 09 00 00 +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 90 CB 00 00 F0 36 FF FF E8 F3 FF FF D0 CB 00 00 A0 36 FF FF E8 F3 FF FF +S: Len 11 | 0B 00 / 27 / AA EC 03 10 02 00 00 00 +S: Len 31 | 1F 00 / 2F / 19 ED 03 10 DD C6 00 00 2C 31 FF FF E0 F4 FF FF CD C7 00 00 07 31 FF FF F0 F4 FF FF +S: Len 11 | 0B 00 / 27 / AA EC 03 10 03 00 00 00 +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 60 CB 00 00 00 37 FF FF E8 F3 FF FF 90 CB 00 00 F0 36 FF FF E8 F3 FF FF +S: Len 35 | 23 00 / 18 / 31 10 03 10 03 00 00 00 09 00 00 00 D9 13 00 00 0B 00 00 00 6D 0B 00 00 21 00 00 00 94 09 00 00 +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 50 CB 00 00 00 37 FF FF E8 F3 FF FF 60 CB 00 00 00 37 FF FF E8 F3 FF FF +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 59 CB 00 00 0E 37 FF FF E8 F3 FF FF 50 CB 00 00 00 37 FF FF E8 F3 FF FF +S: Len 31 | 1F 00 / 2F / 37 ED 03 10 AB C9 00 00 4F 2F FF FF 10 F5 FF FF 60 C9 00 00 10 2F FF FF 20 F5 FF FF +S: Len 11 | 0B 00 / 27 / 2E EC 03 10 02 00 00 00 +S: Len 11 | 0B 00 / 27 / DA EB 03 10 01 00 00 00 +S: Len 31 | 1F 00 / 2F / AA EB 03 10 83 D4 00 00 6B 24 FF FF D0 F2 FF FF 0D D4 00 00 EB 24 FF FF 38 F3 FF FF +S: Len 11 | 0B 00 / 27 / D9 EB 03 10 01 00 00 00 +S: Len 11 | 0B 00 / 27 / A3 EB 03 10 03 00 00 00 +S: Len 35 | 23 00 / 18 / 31 10 03 10 03 00 00 00 09 00 00 00 D9 13 00 00 0B 00 00 00 6D 0B 00 00 21 00 00 00 94 09 00 00 +S: Len 11 | 0B 00 / 27 / A2 EB 03 10 02 00 00 00 +S: Len 11 | 0B 00 / 27 / 45 EC 03 10 02 00 00 00 +S: Len 11 | 0B 00 / 27 / A2 EB 03 10 03 00 00 00 +S: Len 35 | 23 00 / 18 / 31 10 03 10 03 00 00 00 09 00 00 00 D9 13 00 00 0B 00 00 00 6D 0B 00 00 21 00 00 00 94 09 00 00 +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 A0 CB 00 00 F0 36 FF FF E8 F3 FF FF 59 CB 00 00 0E 37 FF FF E8 F3 FF FF +S: Len 11 | 0B 00 / 27 / AA EC 03 10 01 00 00 00 +S: Len 35 | 23 00 / 18 / 31 10 03 10 03 00 00 00 09 00 00 00 D9 13 00 00 0B 00 00 00 6D 0B 00 00 21 00 00 00 94 09 00 00 +S: Len 7 | 07 00 / 26 / 31 10 03 10 +S: Len 7 | 07 00 / 26 / 39 A4 00 10 +S: Len 31 | 1F 00 / 2F / 12 EC 03 10 D0 CB 00 00 A0 36 FF FF E8 F3 FF FF A0 CB 00 00 F0 36 FF FF E8 F3 FF FF +C: Len 545 | 21 02 / D0 / 24 00 43 00 00 00 38 B4 04 10 00 00 00 00 D2 B3 04 10 01 00 00 00 AF B3 04 10 02 00 00 00 D1 14 04 10 03 00 00 00 D2 ED 03 10 04 00 00 00 E4 EB 03 10 05 00 00 00 57 EA 03 10 06 00 00 00 FC E9 03 10 07 00 00 00 EE E9 03 10 08 00 00 00 DC E9 03 10 09 00 00 00 93 2F 03 10 0A 00 00 00 89 2E 03 10 0B 00 00 00 39 10 03 10 0C 00 00 00 32 10 03 10 0D 00 00 00 0A 0B 03 10 0E 00 00 00 02 CB 02 10 0F 00 00 00 9C B6 01 10 10 00 00 00 4C 8B 01 10 11 00 00 00 4B 8B 01 10 12 00 00 00 D0 7A 01 10 13 00 00 00 B2 6C 01 10 14 00 00 00 9D 3F 01 10 15 00 00 00 9C 3F 01 10 16 00 00 00 5E 2F 01 10 17 00 00 00 E0 2C 01 10 18 00 00 00 9F 29 01 10 19 00 00 00 8C 29 01 10 1A 00 00 00 5A 28 01 10 1B 00 00 00 1A 28 01 10 1C 00 00 00 39 26 01 10 1D 00 00 00 B5 24 01 10 1E 00 00 00 97 24 01 10 1F 00 00 00 31 24 01 10 20 00 00 00 21 24 01 10 21 00 00 00 D3 23 01 10 22 00 00 00 81 23 01 10 23 00 00 00 53 23 01 10 24 00 00 00 52 23 01 10 25 00 00 00 2D 23 01 10 26 00 00 00 2C 23 01 10 27 00 00 00 AF 22 01 10 28 00 00 00 70 22 01 10 29 00 00 00 6F 22 01 10 2A 00 00 00 60 22 01 10 2B 00 00 00 5F 22 01 10 2C 00 00 00 F3 1F 01 10 2D 00 00 00 ED 1F 01 10 2E 00 00 00 EC 1F 01 10 2F 00 00 00 E4 1F 01 10 30 00 00 00 D6 1F 01 10 31 00 00 00 8A 1F 01 10 32 00 00 00 F7 19 01 10 33 00 00 00 EC 17 01 10 34 00 00 00 58 15 01 10 35 00 00 00 E8 12 01 10 36 00 00 00 41 0F 01 10 37 00 00 00 EF 0B 01 10 38 00 00 00 48 0B 01 10 39 00 00 00 3D 0B 01 10 3A 00 00 00 8B 01 01 10 3B 00 00 00 4E 00 01 10 3C 00 00 00 CD EA 00 10 3D 00 00 00 89 EA 00 10 3E 00 00 00 88 EA 00 10 3F 00 00 00 77 EA 00 10 40 00 00 00 71 EA 00 10 41 00 00 00 64 EA 00 10 42 00 00 00 +C: Len 3 | 03 00 / 00 / +S: Len 15 | 0F 00 / FA / F0 07 00 00 01 00 00 00 FE FF FF FF +S: Len 125 | 7D 00 / 85 / 0C 00 F9 10 00 00 02 00 97 17 00 00 F8 10 00 00 02 00 97 17 00 00 FD 10 00 00 01 00 97 17 00 00 F6 10 00 00 02 00 97 17 00 00 FB 10 00 00 04 00 97 17 00 00 FC 10 00 00 04 00 98 17 00 00 05 11 00 00 01 00 98 17 00 00 07 11 00 00 02 00 98 17 00 00 06 11 00 00 02 00 98 17 00 00 02 11 00 00 02 00 98 17 00 00 FA 10 00 00 02 00 99 17 00 00 2F 01 00 00 04 00 E8 03 00 00 +S: Len 3 | 03 00 / 84 / diff --git a/docs/gamepackets/client_Logout_fromAUTHED.txt b/docs/gamepackets/client_Logout_fromAUTHED.txt new file mode 100644 index 0000000..68c439f --- /dev/null +++ b/docs/gamepackets/client_Logout_fromAUTHED.txt @@ -0,0 +1,4 @@ +Client: Len 3 + +03 00 +00 \ No newline at end of file diff --git a/docs/gamepackets/compare_gs_login_gracia_hack.txt b/docs/gamepackets/compare_gs_login_gracia_hack.txt new file mode 100644 index 0000000..51f2d0f --- /dev/null +++ b/docs/gamepackets/compare_gs_login_gracia_hack.txt @@ -0,0 +1,24 @@ +ProtocolVersion - MyChanged +0030 0b 01 0e 53 03 00 00 09 07 54 ..B.....S.....TV +0040 56 03 09 0b 01 07 02 54 54 56 07 00 02 55 56 00 ......TTV...UV.Q +0050 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 .SW..U.T...S.VUV +0060 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 ....Q..Q.QV.T.U. +0070 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 ..QV.S.U.S.VVS.. +0080 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 ...QTQ.UV.....U. +0090 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 .U....Q.....R... +00a0 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 .T..RU.UUQ...T.U +00b0 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 T.WQU.R.T.QQU..S +00c0 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 S.R.R..T........ +00d0 05 06 03 00 0d 08 01 07 09 03 51 03 07 53 09 51 .........Q..S.Q. +00e0 06 07 54 0a 50 56 02 52 04 05 55 51 02 53 00 08 .T.PV.R..UQ.S..T +00f0 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 .RV......SV...U. +0100 06 08 56 04 0d 06 07 52 06 07 04 0a 06 01 04 54 .V....R.......T. +0110 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 ....T..RS....... +0120 01 52 51 52 0d 06 51 08 09 54 53 00 0d 01 02 03 RQR..Q..TS.....T +0130 54 53 01 05 03 08 56 54 07 02 54 0b 06 df b8 3b S....VT..T....;T +0140 54 + +RequestGSAuthLogin - MyChanged +0030 00 bc 6c 00 65 00 78 00 78 00 ........l.e.x.x. +0040 68 00 75 00 6c 00 65 00 00 00 0d fe 0f 00 12 eb h.u.l.e......... +0050 01 00 0d fe 0f 00 30 28 fc 55 01 00 00 00 ......0(.U.... diff --git a/docs/gamepackets/compare_gs_login_gracia_hb.txt b/docs/gamepackets/compare_gs_login_gracia_hb.txt new file mode 100644 index 0000000..366bbb8 --- /dev/null +++ b/docs/gamepackets/compare_gs_login_gracia_hb.txt @@ -0,0 +1,25 @@ +ProtocolVersion - Gracia +0030 0b 01 0e 53 03 00 00 09 07 54 ...b.....S.....T +0040 56 03 09 0b 01 07 02 54 54 56 07 00 02 55 56 00 V......TTV...UV. +0050 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 Q.SW..U.T...S.VU +0060 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 V....Q..Q.QV.T.U +0070 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 ...QV.S.U.S.VVS. +0080 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 ....QTQ.UV.....U +0090 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 ..U....Q.....R.. +00a0 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 ..T..RU.UUQ...T. +00b0 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 UT.WQU.R.T.QQU.. +00c0 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 SS.R.R..T....... +00d0 05 06 03 00 0d 08 01 07 09 03 51 03 07 53 09 51 ..........Q..S.Q +00e0 06 07 54 0a 50 56 02 52 04 05 55 51 02 53 00 08 ..T.PV.R..UQ.S.. +00f0 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 T.RV......SV...U +0100 06 08 56 04 0d 06 07 52 06 07 04 0a 06 01 04 54 ..V....R.......T +0110 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 .....T..RS...... +0120 01 52 51 52 0d 06 51 08 09 54 53 00 0d 01 02 03 .RQR..Q..TS..... +0130 54 53 01 05 03 08 56 54 07 02 54 0b 06 df b8 3b TS....VT..T....; +0140 54 T + +RequestGSAuthLogin - Gracia +0030 31 00 3e c0 a3 ab da ed 20 49 ..>g..1.>..... I +0040 81 ce 5d 29 88 88 b9 4b e4 76 15 75 fa ba 77 00 ..])...K.v.u..w. +0050 21 07 94 98 c7 a4 95 4d cc 2d 00 6c 1d 52 9f be !......M.-.l.R.. +0060 ab f1 0c 01 a0 cc fd ....... diff --git a/docs/gamepackets/compare_gs_login_gracia_hbb.txt b/docs/gamepackets/compare_gs_login_gracia_hbb.txt new file mode 100644 index 0000000..3c96bcc --- /dev/null +++ b/docs/gamepackets/compare_gs_login_gracia_hbb.txt @@ -0,0 +1,19 @@ +ProtocolVersion - Hellbound +0030 0b 01 0e 3f 03 00 00 09 07 54 .........?.....T +0040 56 03 09 0b 01 07 02 54 54 56 07 00 02 55 56 00 V......TTV...UV. +0050 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 Q.SW..U.T...S.VU +0060 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 V....Q..Q.QV.T.U +0070 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 ...QV.S.U.S.VVS. +0080 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 ....QTQ.UV.....U +0090 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 ..U....Q.....R.. +00a0 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 ..T..RU.UUQ...T. +00b0 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 UT.WQU.R.T.QQU.. +00c0 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 SS.R.R..T....... +00d0 05 06 03 00 0d 08 01 07 09 03 51 03 07 53 09 51 ..........Q..S.Q +00e0 06 07 54 0a 50 56 02 52 04 05 55 51 02 53 00 08 ..T.PV.R..UQ.S.. +00f0 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 T.RV......SV...U +0100 06 08 56 04 0d 06 07 52 06 07 04 0a 06 01 04 54 ..V....R.......T +0110 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 .....T..RS...... +0120 01 52 51 52 0d 06 51 08 09 54 53 00 0d 01 02 03 .RQR..Q..TS..... +0130 54 53 01 05 03 08 56 54 07 02 54 0b 06 fb 87 b9 TS....VT..T..... +0140 4a J diff --git a/docs/hide.txt b/docs/hide.txt new file mode 100644 index 0000000..5ee844a --- /dev/null +++ b/docs/hide.txt @@ -0,0 +1,9 @@ +This "hide" as it's called here, is actually nothing but a standard setting inside the L2 client. + +It's been part of an invisible options menu since the birth of L2, under CPU settings. There, you could set some extraordinary values which would cause the client to "lag" in the same fashion as regular zone lag, and cause the infamous "teleport". A key bind into the actual L2 client could be set there as well. + +The built-in teleport is actually better utilized than this programmed version. Since it allows you to literally click a location on the floor (even at the opposite side of a room/dungeon/field) and teleport right to it. + +Back in the day, the few who knew about it simply called it a "teleport hack". + +I've used it 2 times to personally test, but never after that. it's way to sketchy to risk getting banned for that, imo. \ No newline at end of file diff --git a/docs/interlude_map_coords.txt b/docs/interlude_map_coords.txt new file mode 100644 index 0000000..cef637c --- /dev/null +++ b/docs/interlude_map_coords.txt @@ -0,0 +1,27 @@ +0,0-655,1310 + +line 22: x = -94 344 [ix = 182] +line 45: x = 185 823 +dline = 23; dx = 280 167 +x per line = 12181 + +line 24: y = -213 611 +line 62: y = 249 634 +dline = 38 +y per line = 12190 + +-94344 - [3*12185 = 36555] = -130899; kx = -130899 +-213611 - [4*12185 = 48740] = -262351; ky = -262351 + +line num starts with x: 19; y: 20 ... why?.. +dline on img = 61px; dline on game map ~= 12185 +dc = dlm / dli = 199.75 ~= 200 + +=================================================== +Constants: dc = 200; kx = -130899; ky = -262351 +Input: mx, my - coords of point in game +Output: ix, iy - coords of point on image +--------------------------------------------------- +ix = (mx - kx) / dc +iy = (my - ky) / dc +=================================================== \ No newline at end of file diff --git a/docs/l2_launcher.c b/docs/l2_launcher.c new file mode 100644 index 0000000..11dccf4 --- /dev/null +++ b/docs/l2_launcher.c @@ -0,0 +1,467 @@ +#include +#define LAUNCHER_DAT_LINES 446 + +char *launcher_dat [ LAUNCHER_DAT_LINES ] = { + "[URL]", + "Protocol=unreal", + "ProtocolDescription=Unreal Protocol", + "Name=Player", + "Map=Index.unr", + "LocalMap=Entry.unr", + "Host=", + "Portal=", + "MapExt=unr", + "EXEName=l2.exe", + "SaveExt=usa", + "Port=7777", + "Class=LineageWarrior.MFighter", + "ServerAddr=94.23.90.121", + "IsL2NetLogin=True", + "IsL2Console=True", + "IsL2Seamless=True", + "IsL2Projector=True", + "ISL2Mark=2", + "ForceAspectRatio=False", + "AspectRatio=1.334", + "IsDefaultShaodw=False", + "IsUnderWaterEffect=False", + "IsUseCommand=True", + "L2VersionCheck=false", + "IsL2MemLog=False", + "L2ThreadFilter=1", + "L2TestServer=false", + "EnablePurgeLevel=True", + "SharedSky=True", + "L2MaxPawnResourceLoad=1.0", + "L2UseKeyCrypt=true", + "L2UseReplayManager=true", + "L2SaveLog=true", + "EnableSecondWindow=true", + "IsUseXMLUI=True", + "L2ShaderPath=..\\system\\", + "", + "[L2WaterEffect]", + "ColorReference=(A=180,R=38,G=56,B=64,RR=150)", + "EffectResolution=512", + "", + "[LanguageSet]", + "Language=0", + "", + "[FontSet]", + ";Font=L2Font.Japan", + ";Glyph=Japan.gly", + "Font=L2Font.gulim", + "Glyph=gulim.gly", + "", + "[CharacterDisplay]", + "Name=true", + "Dist=1000", + "", + "[ClippingRange]", + "PawnMax=3.0", + "PawnMin=1.5", + "AntiPortal=1.5", + "Terrain=8.0", + "StaticMesh=4.0", + "Projector=0.2", + "StaticMeshLod=5.0", + "Pawn=2.0", + "Actor=4.0", + "", + "[AutoLogOn]", + "IsL2AutoLogOn=Ture", + "L2ID=zodiac", + "L2Passwd=zodiac", + "L2Slot=7", + "", + "[FirstRun]", + "FirstRun=2110", + "", + "[Engine.Engine]", + "RenderDevice=D3DDrv.D3DRenderDevice", + ";RenderDevice=Engine.NullRenderDevice", + ";RenderDevice=OpenGLDrv.OpenGLRenderDevice", + "AudioDevice=ALAudio.ALAudioSubsystem", + ";AudioDevice=XboxAudio.XboxAudioSubsystem", + "NetworkDevice=IpDrv.TcpNetDriver", + "DemoRecordingDevice=Engine.DemoRecDriver", + "Console=Engine.Console", + "DefaultPlayerMenu=UDebugMenu.UDebugRootWindow", + "Language=int", + "GameEngine=Engine.GameEngine", + "EditorEngine=Editor.EditorEngine", + "GUIController=Engine.BaseGUIController", + ";DefaultGame=WarfareGame.WarfareTeamGame", + ";DefaultServerGame=WarfareGame.WarfareTeamGame", + "DefaultGame=Engine.GameInfo", + "DefaultServerGame=Engine.GameInfo", + "ViewportManager=WinDrv.WindowsClient", + ";ViewportManager=XboxDrv.XboxClient", + ";ViewportManager=SDLDrv.SDLClient", + "Render=Render.Render", + "Input=Engine.Input", + "Canvas=Engine.Canvas", + "DefaultPlayerController=Engine.LineagePlayerController", + "L2NetHandler=Engine.NetHandler", + "L2Console=NWindow.ConsoleWnd", + "L2Font=NWindow.L2Font", + "", + "[Core.System]", + "PurgeCacheDays=30", + "SavePath=../Save", + "CachePath=../Cache", + "CacheExt=.uxx", + "Paths=../System/*.u", + "Paths=../StaticMeshes/*.usx", + "Paths=../Textures/*.utx", + "Paths=../Sounds/*.uax", + "Paths=../Voice/*.uax", + "Paths=../Maps/*.unr", + ";Paths=../Music/*.umx", + "Paths=../Animations/*.ukx", + "Paths=../Animations/*.uix", + "Paths=../SysTextures/*.utx", + "Paths=../Animations/*.usk", + "Paths=../Saves/*.uvx", + "Suppress=DevLoad", + "Suppress=DevSave", + "Suppress=DevNetTraffic", + "Suppress=DevGarbage", + "Suppress=DevKill", + "Suppress=DevReplace", + "Suppress=DevCompile", + "Suppress=DevBind", + "Suppress=DevBsp", + "", + "[Engine.GameEngine]", + "CacheSizeMegs=32", + "UseSound=True", + ";ServerActors=IpDrv.UdpBeacon", + ";ServerActors=IpServer.UdpServerQuery", + ";ServerActors=IpServer.UdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900", + ";ServerActors=UWeb.WebServer", + "ServerPackages=AmbientCreatures", + ";ServerPackages=WarEffects", + ";ServerPackages=Decorations", + "ServerPackages=GamePlay", + "ServerPackages=UnrealGame", + ";ServerPackages=WarfareGame", + ";ServerPackages=WarClassLight", + ";ServerPackages=WarClassHeavy", + ";ServerPackages=WarClassMisc", + ";ServerPackages=Pickups", + "", + "[WinDrv.WindowsClient]", + "WindowedViewportX=640", + "WindowedViewportY=480", + "FullscreenViewportX=1024", + "FullscreenViewportY=768", + "MenuViewportX=640", + "MenuViewportY=480", + "Brightness=0.800000", + "Contrast=0.700000", + "Gamma=0.800000", + "UseJoystick=True", + "CaptureMouse=True", + "StartupFullscreen=True", + "UseWindowFrame=True", + "ScreenFlashes=True", + "NoLighting=False", + "MinDesiredFrameRate=35.000000", + "Decals=True", + "Coronas=True", + "DecoLayers=True", + "Projectors=True", + "NoDynamicLights=False", + "ReportDynamicUploads=False", + "TextureDetailInterface=Higher", + "TextureDetailTerrain=Higher", + "TextureDetailWeaponSkin=Higher", + "TextureDetailPlayerSkin=Higher", + "TextureDetailWorld=Higher", + "TextureDetailRenderMap=Higher", + "TextureDetailLightmap=Higher", + "NoFractalAnim=False", + "ScaleHUDX=0.0", + "", + "[SDLDrv.SDLClient]", + "WindowedViewportX=640", + "WindowedViewportY=480", + "FullscreenViewportX=800", + "FullscreenViewportY=600", + "MenuViewportX=640", + "MenuViewportY=480", + "Brightness=0.800000", + "Contrast=0.700000", + "Gamma=0.800000", + "UseJoystick=True", + "JoystickNumber=0", + "IgnoreHat=False", + "JoystickHatNumber=0", + "CaptureMouse=True", + "StartupFullscreen=True", + "ScreenFlashes=True", + "NoLighting=False", + "MinDesiredFrameRate=35.000000", + "Decals=True", + "Coronas=True", + "DecoLayers=True", + "Projectors=True", + "NoDynamicLights=False", + "ReportDynamicUploads=False", + "TextureDetailInterface=Normal", + "TextureDetailTerrain=Normal", + "TextureDetailWeaponSkin=Normal", + "TextureDetailPlayerSkin=Normal", + "TextureDetailWorld=Normal", + "TextureDetailRenderMap=Normal", + "TextureDetailLightmap=UltraHigh", + "NoFractalAnim=False", + "", + "[Engine.Player]", + "ConfiguredInternetSpeed=10000", + "ConfiguredLanSpeed=20000", + "", + "[ALAudio.ALAudioSubsystem]", + "UseEAX=False", + "Use3DSound=False", + "UseDefaultDriver=False", + "CompatibilityMode=False", + "UsePrecache=True", + "ReverseStereo=false", + "Channels=32", + "MusicVolume=0.1", + "AmbientVolume=1.0", + "SoundVolume=1.0", + "DopplerFactor=1.0", + "Rolloff=0.5", + "TimeBetweenHWUpdates=15", + "DisablePitch=False", + "LowQualitySound=False", + "", + "[IpDrv.TcpNetDriver]", + "AllowDownloads=True", + "ConnectionTimeout=15.0", + "InitialConnectTimeout=500.0", + "AckTimeout=1.0", + "KeepAliveTime=0.2", + "MaxClientRate=20000", + "SimLatency=0", + "RelevantTimeout=5.0", + "SpawnPrioritySeconds=1.0", + "ServerTravelPause=4.0", + "NetServerMaxTickRate=20", + "LanServerMaxTickRate=35", + "DownloadManagers=IpDrv.HTTPDownload", + "DownloadManagers=Engine.ChannelDownload", + "", + "[IpDrv.HTTPDownload]", + "RedirectToURL=", + "ProxyServerHost=", + "ProxyServerPort=3128", + "UseCompression=True", + "", + "[Engine.DemoRecDriver]", + "DemoSpectatorClass=Warriors.CHSpectator", + "MaxClientRate=25000", + "ConnectionTimeout=15.0", + "InitialConnectTimeout=500.0", + "AckTimeout=1.0", + "KeepAliveTime=1.0", + "SimLatency=0", + "RelevantTimeout=5.0", + "SpawnPrioritySeconds=1.0", + "ServerTravelPause=4.0", + "NetServerMaxTickRate=60", + "LanServerMaxTickRate=60", + "", + "[Engine.GameReplicationInfo]", + "ServerName=Another Unreal Server", + "ShortName=Unreal Server", + "", + "[IpDrv.TcpipConnection]", + "SimPacketLoss=0", + "SimLatency=0", + "", + "[IpServer.UdpServerQuery]", + "GameName=ut", + "", + "[IpDrv.UdpBeacon]", + "DoBeacon=True", + "BeaconTime=0.50", + "BeaconTimeout=5.0", + "BeaconProduct=ut", + "", + "[XboxDrv.XboxClient]", + "TextureDetail=Medium", + "SkinDetail=Medium", + "LightmapDetail=High", + "TextureMinLOD=6", + "TextureMaxLOD=9", + "Brightness=0.8", + "Contrast=0.7", + "Gamma=0.8", + "NoFractalAnim=True", + "", + "[XBoxAudio.XBoxAudioSubsystem]", + "ReverseStereo=False", + "Channels=32", + "MusicVolume=1.0", + "SoundVolume=1.0", + "AmbientFactor=1.0", + "UsePrecache=True", + "", + "[D3DDrv.D3DRenderDevice]", + "DetailTextures=True", + "HighDetailActors=True", + "SuperHighDetailActors=True", + "UsePrecaching=True", + "UseTrilinear=True", + "AdapterNumber=-1", + "ReduceMouseLag=True", + "UseTripleBuffering=False", + "UseHardwareTL=True", + "UseHardwareVS=True", + "UseCubemaps=True", + "DesiredRefreshRate=60", + "UseCompressedLightmaps=True", + "UseStencil=True", + "Use16bit=False", + "Use16bitTextures=False", + "MaxPixelShaderVersion=255", + "UseVSync=False", + "LevelOfAnisotropy=1", + "DetailTexMipBias=0.8", + "DefaultTexMipBias=-0.5", + "UseNPatches=False", + "TesselationFactor=1.0", + "CheckForOverflow=False", + "", + "[OpenGLDrv.OpenGLRenderDevice]", + "DetailTextures=True", + "HighDetailActors=True", + "SuperHighDetailActors=True", + "UsePrecaching=True", + "UseCompressedLightmaps=True", + "UseTrilinear=True", + "UseStencil=False", + "MaxTextureUnits=8", + "VARSize=32", + "ReduceMouseLag=False", + "", + "[Engine.NullRenderDevice]", + "DetailTextures=True", + "HighDetailActors=True", + "SuperHighDetailActors=True", + "UsePrecaching=True", + "UseCompressedLightmaps=True", + "UseStencil=False", + "", + "[Editor.EditorEngine]", + "UseSound=True", + "CacheSizeMegs=32", + "GridEnabled=True", + "SnapVertices=False", + "SnapDistance=10.000000", + "GridSize=(X=16.000000,Y=16.000000,Z=16.000000)", + "RotGridEnabled=True", + "RotGridSize=(Pitch=1024,Yaw=1024,Roll=1024)", + "GameCommandLine=-log", + "FovAngleDegrees=90.000000", + "GodMode=True", + "AutoSave=True", + "AutoSaveTimeMinutes=5", + "AutoSaveIndex=6", + "UseAxisIndicator=True", + "MatineeCurveDetail=0.1", + "LoadEntirePackageWhenSaving=0", + "EditPackages=Core", + "EditPackages=Engine", + "EditPackages=Fire", + "EditPackages=Editor", + "EditPackages=UWindow", + "EditPackages=UnrealEd", + "EditPackages=IpDrv", + "EditPackages=GamePlay", + "EditPackages=LineageEffect", + "EditPackages=LineageWarrior", + "EditPackages=LineageNpc", + "EditPackages=LineageNpc2", + "EditPackages=LineageNpcEv", + "EditPackages=LineageMonster", + "EditPackages=LineageMonster2", + "EditPackages=LineageMonster3", + "EditPackages=LineageMonster4", + "EditPackages=LineageVehicle", + "EditPackages=LineageDeco", + "EditPackages=LineageCreature", + "EditPackages=LineageSceneInfo", + "EditPackages=UDebugMenu", + "EditPackages=NWindow", + "EditPackages=LineageSkillEffect", + ";EditPackages=WarEffects", + ";EditPackages=Decorations", + ";EditPackages=WarfareGame", + ";EditPackages=IHVDemoContent", + ";EditPackages=Pickups", + ";EditPackages=WarClassLight", + ";EditPackages=WarClassHeavy", + ";EditPackages=WarClassMisc", + ";EditPackages=AmbientCreatures", + ";EditPackages=Vehicles", + ";EditPackages=UPreview", + "", + "[UMenu.UnrealConsole]", + "RootWindow=UMenu.UMenuRootWindow", + "UWindowKey=IK_Esc", + "ShowDesktop=True", + "", + "[UMenu.UMenuMenuBar]", + "ShowHelp=True", + "GameUMenuDefault=UTMenu.UTGameMenu", + "MultiplayerUMenuDefault=UTMenu.UTMultiplayerMenu", + "OptionsUMenuDefault=UTMenu.UTOptionsMenu", + "", + "[Engine.GameInfo]", + "bLowGore=False", + "bVeryLowGore=False", + "", + "[UWeb.WebServer]", + ";Applications[0]=UTServerAdmin.UTServerAdmin", + ";ApplicationPaths[0]=/ServerAdmin", + ";Applications[1]=UTServerAdmin.UTImageServer", + ";ApplicationPaths[1]=/images", + "DefaultApplication=0", + "bEnabled=False", + "", + "[Engine.LevelInfo]", + "PhysicsDetailLevel=PDL_Medium", + "", + "[Engine.Console]", + "ConsoleKey=9", + "", + "[WindowPositions]", + "GameLog=(X=0,Y=0,XL=512,YL=256)", + "", + "[Secure]", + "SecureModule=False", + "", + "[PrimeShop]", + "UsePrimeShop=false" +}; + +int main() { + FILE *f = fopen("launcher.dat", "w"); + int i; + if (f==NULL) { + perror("Error! Nie mogę pisać do 'launcher.dat'"); + printf("%s\n", "Wszyscy zginiemy! Aaaaa!"); + system("PAUSE"); + return 1; + } + for (i = 0; i < LAUNCHER_DAT_LINES; i++) + fprintf(f, "%s\n", launcher_dat[i]); + fclose(f); + i = execlp("L2.bin", "L2.bin", "-INI=launcher.dat", (char *)0); + return i; +} \ No newline at end of file diff --git a/docs/l2_races_classes.ini b/docs/l2_races_classes.ini new file mode 100644 index 0000000..55bf25c --- /dev/null +++ b/docs/l2_races_classes.ini @@ -0,0 +1,163 @@ +// Lineage II races +L2MaxRaces = 6; +L2Race[0] = "Human"; +L2Race[1] = "Elf"; +L2Race[2] = "Dark Elf"; +L2Race[3] = "Orc"; +L2Race[4] = "Dwarf"; +L2Race[5] = "Kamael"; + +// Lineage II classes +L2MaxClasses = 137; +L2Class[0] = "Human Fighter"; +L2Class[1] = "Warrior"; +L2Class[2] = "Gladiator"; +L2Class[3] = "Warlord"; +L2Class[4] = "Knight"; +L2Class[5] = "Paladin"; +L2Class[6] = "Dark Avenger"; +L2Class[7] = "Rogue"; +L2Class[8] = "Treasure Hunter"; +L2Class[9] = "Hawkeye"; +L2Class[10] = "Human Mystic"; +L2Class[11] = "Human Wizard"; +L2Class[12] = "Sorceror"; +L2Class[13] = "Necromancer"; +L2Class[14] = "Warlock"; +L2Class[15] = "Cleric"; +L2Class[16] = "Bishop"; +L2Class[17] = "Prophet"; +L2Class[18] = "Elven Fighter"; +L2Class[19] = "Elven Knight"; +L2Class[20] = "Temple Knight"; +L2Class[21] = "Sword Singer"; +L2Class[22] = "Elven Scout"; +L2Class[23] = "Plains Walker"; +L2Class[24] = "Silver Ranger"; +L2Class[25] = "Elven Mystic"; +L2Class[26] = "Elven Wizard"; +L2Class[27] = "SpellSinger"; +L2Class[28] = "Elemental Summoner"; +L2Class[29] = "Elven Oracle"; +L2Class[30] = "Elven Elder"; +L2Class[31] = "Dark Fighter"; +L2Class[32] = "Paulus Knight"; +L2Class[33] = "Shillien Knight"; +L2Class[34] = "BladeDancer"; +L2Class[35] = "Assassin"; +L2Class[36] = "Abyss Walker"; +L2Class[37] = "Phantom Ranger"; +L2Class[38] = "Dark Mystic"; +L2Class[39] = "Dark Wizard"; +L2Class[40] = "Spellhowler"; +L2Class[41] = "Phantom Summoner"; +L2Class[42] = "Shillien Oracle"; +L2Class[43] = "Shillien Elder"; +L2Class[44] = "Orc Fighter"; +L2Class[45] = "Orc Raider"; +L2Class[46] = "Destroyer"; +L2Class[47] = "Orc Monk"; +L2Class[48] = "Tyrant"; +L2Class[49] = "Orc Mystic"; +L2Class[50] = "Orc Shaman"; +L2Class[51] = "Overlord"; +L2Class[52] = "Warcryer"; +L2Class[53] = "Dwarven Fighter"; +L2Class[54] = "Scavenger"; +L2Class[55] = "Bounty Hunter"; +L2Class[56] = "Artisan"; +L2Class[57] = "Warsmith"; +L2Class[88] = "Duelist"; +L2Class[89] = "Dreadnought"; +L2Class[90] = "Phoenix Knight"; +L2Class[91] = "HellKnight"; +L2Class[92] = "Sagittarius"; +L2Class[93] = "Adventurer"; +L2Class[94] = "Archmage"; +L2Class[95] = "Soultaker"; +L2Class[96] = "Arcana Lord"; +L2Class[97] = "Cardinal"; +L2Class[98] = "Hierophant"; +L2Class[99] = "Eva's Templar"; +L2Class[100] = "Sword Muse"; +L2Class[101] = "Wind Rider"; +L2Class[102] = "Moonlight Sentinel"; +L2Class[103] = "Mystic Muse"; +L2Class[104] = "Elemental Master"; +L2Class[105] = "Eva's Saint"; +L2Class[106] = "Shillien Templar"; +L2Class[107] = "Spectral Dancer"; +L2Class[108] = "Ghost Hunter"; +L2Class[109] = "Ghost Sentinel"; +L2Class[110] = "Storm Screamer"; +L2Class[111] = "Spectral Master"; +L2Class[112] = "Shillien Saint"; +L2Class[113] = "Titan"; +L2Class[114] = "Grand Khauatari"; +L2Class[115] = "Dominator"; +L2Class[116] = "Doomcryer"; +L2Class[117] = "Fortune Seeker"; +L2Class[118] = "Maestro"; +L2Class[123] = "Kamael Male Soldier"; +L2Class[124] = "Kamael Female Soldier"; +L2Class[125] = "Trooper"; +L2Class[126] = "Warder"; +L2Class[127] = "Berserker"; +L2Class[128] = "Soulbreaker (Male)"; //"Male Soulbreaker"; +L2Class[129] = "Soulbreaker (Female)"; //"Female Soulbreaker"; +L2Class[130] = "Arbalester"; +L2Class[131] = "Doombringer"; +L2Class[132] = "Soulhound (Male)"; // male +L2Class[133] = "Soulhound (Female)"; // female +L2Class[134] = "Trickster"; // female +L2Class[135] = "Inspector"; +L2Class[136] = "Judicator"; + +// Sex :) +L2MaxSexes = 2; +L2Sex[0] = "Male"; +L2Sex[1] = "Female"; + +// Races pictures depending on sex +// L2MaxRacePics = L2MaxRaces * L2MaxSexes; +L2RacePic[0] = "human_male.png"; +L2RacePic[1] = "human_female.png"; +L2RacePic[2] = "elf_male.png"; +L2RacePic[3] = "elf_female.png"; +L2RacePic[4] = "darkelf_male.png"; +L2RacePic[5] = "darkelf_female.png"; +L2RacePic[6] = "orc_male.png"; +L2RacePic[7] = "orc_female.png"; +L2RacePic[8] = "dwarf_male.png"; +L2RacePic[9] = "dwarf_female.png"; +L2RacePic[10] = "kamael_male.png"; +L2RacePic[11] = "kamael_female.png"; + +// NPC races/classes +// index is level of skill id = 4416 +L2MaxNPCRaces = 25; +L2NPCRace[0] = "NPC race index 0 not used"; +L2NPCRace[1] = "Undead"; +L2NPCRace[2] = "Magic Creatures"; +L2NPCRace[3] = "Beasts"; +L2NPCRace[4] = "Animals"; +L2NPCRace[5] = "Plants"; +L2NPCRace[6] = "Humanoids"; +L2NPCRace[7] = "Spirits"; +L2NPCRace[8] = "Angels"; +L2NPCRace[9] = "Demons"; +L2NPCRace[10] = "Dragons"; +L2NPCRace[11] = "Giants"; +L2NPCRace[12] = "Bugs"; +L2NPCRace[13] = "Fairies"; +L2NPCRace[14] = "Humans"; +L2NPCRace[15] = "Elves"; +L2NPCRace[16] = "Dark Elves"; +L2NPCRace[17] = "Orcs"; +L2NPCRace[18] = "Dwarves"; +L2NPCRace[19] = "Others"; +L2NPCRace[20] = "Non-living Beings"; +L2NPCRace[21] = "Siege Weapons"; +L2NPCRace[22] = "Defending Army"; +L2NPCRace[23] = "Mercenaries"; +L2NPCRace[24] = "Unknown Creature"; diff --git a/docs/l2client_internal_hooks.html b/docs/l2client_internal_hooks.html new file mode 100644 index 0000000..bec005b --- /dev/null +++ b/docs/l2client_internal_hooks.html @@ -0,0 +1,1703 @@ + + + + + +Форум программиÑтов [Powered by Invision Power Board] + + + + + + + + +
ВерÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ темы +
Ðажмите Ñюда Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñтой темы в оригинальном формате +
Форум программиÑтов > C/C++: Ð”Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ‡ÐºÐ¾Ð² > msvc2008 bug???
+
+
+ + + + + + +
Ðвтор: GoldFinch 6.12.2008, 19:14
Код

#include "stdafx.h"

__declspec(naked) int Foo(int arg)
{__asm{
    _emit 0xCC
    mov eax,[arg]
    ret
}};

int _tmain(int argc, _TCHAR* argv[])
{
    return Foo(1);
}

Код

00401000  /$  CC            INT3
00401001  |.  8B45 +08       MOV EAX,DWORD +PTR [EBP+8]                ;<<<<< ebp +o_O
00401004  \.  C3            RETN
00401005      CC            INT3
...
0040100F      CC            INT3
00401010  /$  6A 01         PUSH 1
00401012  |.  E8 E9FFFFFF   CALL cpp_asm_.00401000
00401017  |.  83C4 04       ADD ESP,4
0040101A  \.  C3            RETN

Ñто баг или "фича"? о_О
+
+ + + + + + +
Ðвтор: Kallikanzarid 6.12.2008, 19:23
Рчто ты ожидал? Ð’ ebp хранитÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÑŒ на фрейм:
http://en.wikipedia.org/wiki/Frame_pointer
+
+ + + + + + +
Ðвтор: GoldFinch 6.12.2008, 19:33
Kallikanzarid, фрейма нету, какбÑ
читай код в 1м поÑте полноÑтью
+
+ + + + + + +
Ðвтор: MAKCim 6.12.2008, 19:44
GoldFinch
хм, реально баг получаетÑÑ
+
+ + + + + + +
Ðвтор: Kallikanzarid 6.12.2008, 20:03
Точно, должно быть esp  smile 
Попробуй поÑтавить ÑÐµÑ€Ð²Ð¸Ñ Ð¿Ð°Ðº, может, поможет.
+
+ + + + + + +
Ðвтор: J0ker 7.12.2008, 01:01
вÑе верно
в прологе esp ÑохранÑетÑÑ Ð² ebp, и от ebp ÑчитаютÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ‹
так что вÑе правильно
неправильно в naked иÑпользовать аргумент - Ñ‚.к. компайлер плюет, что вы отказалиÑÑŒ от пролога и Ñпилога
+
+ + + + + + +
Ðвтор: dumb 7.12.2008, 04:46
хм. http://msdn.microsoft.com/en-us/library/4d12973a(VS.80).aspx Ð¿Ñ€Ð¾ +аргументы ничего такого не Ñказано, однако упомÑнуто авто-отключение +Frame pointer optimization Ð´Ð»Ñ naked функций. Ñ‚.е. компилер +раÑÑчитывает на то, что руками фрÑйм таки будет Ñоздан, что он и +демонÑтрирует.
+
+ + + + + + +
Ðвтор: Kallikanzarid 7.12.2008, 08:54
GoldFinch, ЕÑли +нет Ð¶ÐµÐ»Ð°Ð½Ð¸Ñ Ð¸Ñпользовать фрейм, попробуй __fastcall. ЕМÐИП, два двойных +Ñлова ты Ñ ÐµÐ³Ð¾ помощью без проблем передашь даже без фрейма. Ð’ принципе +можно одним из них передавать указатель на объект, в котором хранÑÑ‚ÑÑ +оÑтальные параметры.
+
+ + + + + + +
Ðвтор: J0ker 7.12.2008, 09:04
ну прÑм лень фрейм выÑтавить - 2 инÑтрукции в начале и 2 в конце
+
+ + + + + + +
Ðвтор: GoldFinch 7.12.2008, 10:29
Kallikanzarid, в +msdn Ñказано что при __fastcall компилÑтор не гарантирует очередноÑть +параметров, Ñ‚.е. неизвеÑтно какой окажетÑÑ Ð² eax а какой edx. Кроме +того, в большинÑтве Ñлучаев аргументы лежат в Ñтеке.

J0ker, +Ñ Ð¿Ñ€Ð¸Ð²Ñ‹Ðº к тому что когда Ñ Ð¿Ð¸ÑˆÑƒ на аÑме, Ñ Ð¿Ð¸ÑˆÑƒ как Ñ Ñ…Ð¾Ñ‡Ñƒ, а не так +как того хочет конпилÑтор. может у Ð¼ÐµÐ½Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð½Ð° длину кода, мне +тогда Ñтот фрейм впихнуть некуда, более того, он в Ñ€Ñде Ñлучаев проÑто +не нужен.
+
+ + + + + + +
Ðвтор: Kallikanzarid 7.12.2008, 14:26
GoldFinch, ЕÑли +бы ты пиÑал под мобильники, то юзал бы Ñвно не Ñтудию. Уменьшение +размера кода даже на килобайт абÑолютно незаметно. Теоретик, блин smile

ЗЫ: Зачем тебе нужны naked функции?

КÑтати, еÑли тебе так противен фрейм, можешь Ñпокойно выÑчитывать раÑположение параметров Ñам.
+
+ + + + + + +
Ðвтор: GoldFinch 7.12.2008, 15:20
Kallikanzarid, еÑли бы ты пиÑал на аÑме, ты бы знал зачем надо уменьшать код, зачем нужны naked функции
выÑчитывать раÑположение параметров Ñамому глупо, Ñтим должен заниматьÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñтор, тем более что Ñто аÑм вÑтроенный в ЯВУ
+
+ + + + + + +
Ðвтор: Kallikanzarid 7.12.2008, 15:45
Цитата

еÑли бы ты пиÑал на аÑме, ты бы знал зачем надо уменьшать код, зачем нужны naked функции

О да, Ñ Ñ‚Ð°ÐºÐ¾Ð¹ глупый, проÑто оторопь берет!  smile Ðе желаю Ñкономить 10 байт на функцию - проÑто кошмар!

Ты хоть профилировщик запуÑкал прежде, чем прибегать к таким мерам? Или тебе 4мб L2-кÑша заранее мало?

Цитата

выÑчитывать раÑположение параметров Ñамому глупо, Ñтим должен заниматьÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñтор

ПиÑать пролог Ñамому глупо, Ñтим должен заниматьÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñтор.

ЗЫ:
Цитата

при __fastcall компилÑтор не гарантирует очередноÑть параметров, Ñ‚.е. неизвеÑтно какой окажетÑÑ Ð² eax а какой edx.

Ртебе зачем Ñто знать? ОбращайÑÑ Ðº параметрам по имени.
+
+ + + + + + +
Ðвтор: GoldFinch 7.12.2008, 16:37
Kallikanzarid, вот еÑть у Ð¼ÐµÐ½Ñ Ð½Ð°Ð¿Ñ€Ð¸Ð¼ÐµÑ€ такой код:
Код

__declspec(naked) ttt func(...) {__asm jmp $+5 __asm nop __asm push rva __asm call imp_core }

__declspec(naked) void imp_core(int rva)
//make import
{ __asm{
    //_emit 0xCC
    pop eax // =func+0x10
    pop edx // =rva
    add edx,[g_hCore] // = VA
    push edx
    sub edx,eax //=org_func-(func+0x10)
    add edx,0x10-5 //=org_func-(func+5)
    mov [eax-0x10+1],edx
    ret
}}

куда здеÑÑŒ воткнуть ebp фреймы?
+
+ + + + + + +
Ðвтор: Kallikanzarid 7.12.2008, 16:45
БоюÑÑŒ даже предÑтавить smile Ð что делает Ñтот код?
+
+ + + + + + +
Ðвтор: dumb 7.12.2008, 16:53
чем бы не тешилоÑÑŒ...
Ñам же запутаешьÑÑ Ð² Ñтом г..не(иных Ñлов не подбираетÑÑ) через неделю.
оÑтаетÑÑ Ð½Ð°Ð´ÐµÑтьÑÑ, что Ñти Ð¸Ð·Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð½Ðµ имеют Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ðº чему-то, чем будут пользоватьÑÑ Ð»ÑŽÐ´Ð¸.
+
+ + + + + + +
Ðвтор: GoldFinch 7.12.2008, 17:01
реализует "ленивые" Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ñ‹
да там же вÑе понÑтно, что он делает, вÑего-то деÑÑток Ñтрочек
+
+ + + + + + +
Ðвтор: GoldFinch 7.12.2008, 17:46
dumb, Ñто +хорошо, что ты не понÑл Ñтого кода. Он призван вызывать ÑвÑщенный +трепет, а то и ужаÑ, перед аÑмом у тех ламеров, кто полезет Ñ Ð˜Ð”Ð +узнавать какие импорты юзаютÑÑ Ð² моей проге. Ð¥Ð¾Ñ‚Ñ ÐºÐ¾Ð´ крайне тривиален, +Ñ Ð´ÑƒÐ¼Ð°ÑŽ найдетÑÑ Ð½ÐµÐ¼Ð°Ð»Ð¾ людей которые иÑпугаютÑÑ ÑƒÐ²Ð¸Ð´ÐµÐ² Ñто, и не +Ñтанут копать мою прогу.
=)
+
+ + + + + + +
Ðвтор: Kallikanzarid 7.12.2008, 17:51
Цитата

Ð¥Ð¾Ñ‚Ñ ÐºÐ¾Ð´ крайне тривиален, Ñ Ð´ÑƒÐ¼Ð°ÑŽ найдетÑÑ Ð½ÐµÐ¼Ð°Ð»Ð¾ людей которые иÑпугаютÑÑ ÑƒÐ²Ð¸Ð´ÐµÐ² Ñто, и не Ñтанут копать мою прогу.

Главное, чтобы боÑÑ Ð±Ñ‹Ð» не в их чиÑле  smile 
+
+ + + + + + +
Ðвтор: J0ker 7.12.2008, 19:06
Цитата(GoldFinch @  7.12.2008,  10:29 Ðайти цитируемый поÑÑ‚)
J0ker, +Ñ Ð¿Ñ€Ð¸Ð²Ñ‹Ðº к тому что когда Ñ Ð¿Ð¸ÑˆÑƒ на аÑме, Ñ Ð¿Ð¸ÑˆÑƒ как Ñ Ñ…Ð¾Ñ‡Ñƒ, а не так +как того хочет конпилÑтор. может у Ð¼ÐµÐ½Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð½Ð° длину кода, мне +тогда Ñтот фрейм впихнуть некуда, более того, он в Ñ€Ñде Ñлучаев проÑто +не нужен.

в документации оговорена ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ naked - во-первых
во-вторых +- как ты хочешь, что-бы компилÑтор поÑчитал аргументы? он же не знает +твои манипулÑции Ñо Ñтеком до иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð² - ИМХО вполне +оправдано что раÑчет аргументов опираетÑÑ Ð½Ð° предположение, что фрейм +уÑтановлен - иначе никак
еÑли не нужен фрейм - Ñчитай аргументы Ñам - компилÑтор Ñто Ñделать иначе не может

Добавлено через 3 минуты и 10 Ñекунд
Цитата(GoldFinch @  7.12.2008,  17:46 Ðайти цитируемый поÑÑ‚)
перед аÑмом у тех ламеров, кто полезет Ñ Ð˜Ð”Ð 

неÑколько противоречивое выÑказывание  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 7.12.2008, 19:34
J0ker, впринципе логично, что компилÑтор не разбирает аÑм-код
Ñ…Ð¾Ñ‚Ñ Ð¼Ð¾Ð³Ð»Ð¸ бы Ñто и Ñделать... не бином ньютона =\
+
+ + + + + + +
Ðвтор: J0ker 7.12.2008, 19:38
Цитата(GoldFinch @  7.12.2008,  19:34 Ðайти цитируемый поÑÑ‚)
Ñ…Ð¾Ñ‚Ñ Ð¼Ð¾Ð³Ð»Ð¸ бы Ñто и Ñделать... не бином ньютона =\ 

бином
предположим, ты выделÑешь на Ñтеке маÑÑив Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð¾Ð¼, взÑтым из одного из параметров - в Ñтиле C99
+
+ + + + + + +
Ðвтор: GoldFinch 7.12.2008, 19:45
J0ker, хм... ну тогда Ñтоило бы выдавать ошибку компилÑции, или хотÑбы Ñвно напиÑать об Ñтой "фиче" Ð² документации %)
+
+ + + + + + +
Ðвтор: J0ker 7.12.2008, 20:23
Цитата(GoldFinch @ 7.12.2008,  19:45)
J0ker, хм... ну тогда Ñтоило бы выдавать ошибку компилÑции, или хотÑбы Ñвно напиÑать об Ñтой "фиче" Ð² документации %)

http://msdn.microsoft.com/en-us/library/5ekezyy2(VS.80).aspx
http://msdn.microsoft.com/en-us/library/4d12973a(VS.80).aspx
Цитата

Frame +pointer optimization (the /Oy compiler option) is not recommended, but +it is automatically suppressed for a naked function.
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 00:46
раз уж речь пошла о пользе naked, подÑкажите как тут избавитьÑÑ Ð¾Ñ‚ аÑма:

Код

//hook #1
void __stdcall OnRenderHook(FPlayerSceneNode *PlayerSceneNode,FRenderInterface *RenderInterface) ;
void __thiscall FPlayerSceneNode::Render(FRenderInterface *);
__declspec(naked) void __stdcall Hook_FPlayerSceneNode_Render(FRenderInterface *) 
{_asm{
    push dword ptr [esp+4]//arg1
    push ecx
    push dword ptr [esp+4]//arg1
    call FPlayerSceneNode::Render
    call OnRenderHook
    ret 4
}}

//hook #2
void __thiscall ALineagePlayerController::PlayerCalcView(class AActor *, class FVector *, class FRotator *);
__declspec(naked) void +__stdcall Hook_ALineagePlayerController_PlayerCalcView(class AActor *, +class FVector *, class FRotator *) 
{_asm{
    mov eax,dword ptr [esp+0xC]//arg3
    mov eax,dword ptr [eax+4]//2nd field
    mov dword ptr [g_Direction],eax
    jmp ALineagePlayerController::PlayerCalcView
}}
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 10:52
 smile Ð² +упор не понимаю, почему не Ñделать делегацию ÑредÑтвами Ñзыка (cpp), a +нужно прибегать к низкоуровневым непереноÑимым ÑредÑтвам ... smile 
+
+ + + + + + +
Ðвтор: Kallikanzarid 8.12.2008, 11:07
GoldFinch, ur crazy  smile 
ПожалуйÑта, +Ñкажи, что Ñто профайлер показал, что необходимо вручную передавать +параметр через региÑтр. Или иÑпользовать глобальную переменную. Или +вручную раÑчитывать Ñмещение Ð¿Ð¾Ð»Ñ Ð² объекте (ничего, кÑтати, что Ñто +нарушает инкапÑулÑцию?). Ðе Ð³Ð¾Ð²Ð¾Ñ€Ñ ÑƒÐ¶Ðµ о том, что рекомендуетÑÑ +передавать объекты по ÑÑылкам, а не по указателÑм. Я начинаю боÑÑ‚ÑÑ Ð·Ð° +будущее Земли. 

ЗЫ: твой код неÑффективен. Ты два раза +заноÑишь в Ñтек один и тот же параметр. ÐаÑтоÑщий ПрограммиÑÑ‚ бы Ñделал +так, чтобы Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Render поÑле вызова оÑтавлÑла его в Ñтеке, а Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ +OnRender - иÑпользовала повторно. Ты неÑффективен!
+
+ + + + + + +
Ðвтор: dumb 8.12.2008, 11:40
тьфу ты. неужели вмеÑто +того, чтобы нормально опиÑать Ñитуевину, мол "развешиваю хуки в +игрушке", надо было "выеживатьÑÑ" Ð² потугах ÑамоутверждениÑ? +Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ñ€Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ‡ÐµÑкий.

в данном Ñлучае избавлÑтьÑÑ Ð¾Ñ‚ аÑма +imho оÑобого ÑмыÑла нет - тебе нужно Ñделать Ñовершенно определенные +низкоуровневые трики, и еÑли их пытатьÑÑ Ð¿ÐµÑ€ÐµÐ¿Ð¸Ñать на С, получишь кучу +неоднозначноÑтей и уÑловноÑтей, не Ð³Ð¾Ð²Ð¾Ñ€Ñ ÑƒÐ¶Ðµ о том, что код получитÑÑ, +Ñкорее вÑего, гораздо менее "прозрачным".
так же как и нет +ÑмыÑла вкрÑчивать в выÑокоуровневый код примитивную защиту извращаÑÑÑŒ Ñ +дефайнами и вÑтавками - Ð´Ð»Ñ ÑнÑÑ‚Ð¸Ñ Ð¾Ð½Ð¾Ð¹ вовÑе не обÑзательно, чтобы +механизм понимал любой "ламер" - доÑтаточно одного немного +продвинутого заинтереÑованного человека.

mesKallikanzarid, +вы не учитываете того, что работа идет Ñ Ð³Ð¾Ñ‚Ð¾Ð²Ñ‹Ð¼ бинарным кодом. +товарищ путем предоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ñ€Ñ‹Ð²ÐºÐ¾Ð² информации по Ñути провоцирует +Ð½Ð°Ñ Ð½Ð° такие беÑÑмыÑленные(в конечном Ñчете) комментарии.
+
+ + + + + + +
Ðвтор: Kallikanzarid 8.12.2008, 12:10
Чьорт, Ð¼ÐµÐ½Ñ Ð·Ð°Ñ‚Ñ€Ð¾Ð»Ð»Ð¸Ð» закомплекÑованный труъ-аÑÑемблерщег  smile *ушел пить йад*
+
+ + + + + + +
Ðвтор: ksili 8.12.2008, 12:26
Цитата(Kallikanzarid @  7.12.2008,  18:26 Ðайти цитируемый поÑÑ‚)
ЕÑли бы ты пиÑал под мобильники, то юзал бы Ñвно не Ñтудию

Прикинь, Ñ Ð¿Ð¸ÑˆÑƒ под WinMobile и иÑпользую-таки Ñтудию
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 12:42
Цитата(dumb @  8.12.2008,  11:40 Ðайти цитируемый поÑÑ‚)
вы не учитываете того, что работа идет Ñ Ð³Ð¾Ñ‚Ð¾Ð²Ñ‹Ð¼ бинарным кодом. 

ВмеÑто +того чтоб учитывать вÑе возможные предположениÑ, которых в +дейÑтвительноÑти может и не быть (так как в другом топике Ñтого же +автора вроде (может и ошибаюÑÑŒ) подразумевалоÑÑŒ о том что иÑходники на +руках) лучше было бы еÑли бы автор опиÑал бы Ñвою Ñитуацию. Без Ñтого +будет имхо затруднительно ответить на вопроÑ:
Цитата(GoldFinch @  8.12.2008,  00:46 Ðайти цитируемый поÑÑ‚)
подÑкажите как тут избавитьÑÑ Ð¾Ñ‚ аÑма:

+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 13:06
Kallikanzarid, "рекомендуетÑÑ +передавать объекты по ÑÑылкам, а не по указателÑм" Ñ кнешно не +Ñилен в С++, но ÐºÐ°ÐºÐ°Ñ Ð¼ÐµÐ¶Ð´Ñƒ ними разница? о_О

dumb, ÐºÐ°ÐºÐ°Ñ Ñ€Ð°Ð·Ð½Ð¸Ñ†Ð°, Ð´Ð»Ñ Ñ‡ÐµÐ³Ð¾ нужен код? хуки они и еÑть хуки... а иÑпользование ЯВУ вмеÑто Ñ‚акого Ð°Ñма позволит значительно повыÑить читаемоÑть:

Код

void __thiscall ALineagePlayerController::PlayerCalcView(class AActor *, class FVector *, class FRotator *);
__declspec(naked,noreturn) void __stdcall Hook_ALineagePlayerController_PlayerCalcView(
    class AActor *, class FVector *, class FRotator *Rotator) 

    __asm enter 0,0
    g_Direction=Rotator->Pitch
    __asm leave __asm jmp ALineagePlayerController::PlayerCalcView
}


ЗЫ: +а та "Ð¿Ñ€Ð¸Ð¼Ð¸Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ð°" Ð½Ðµ хуже, чем популÑрное криптование +Ñимвольных имен или импорты по хешам. К тому же ей гораздо удобнее +пользоватьÑÑ, Ñ‚.к. функции(методы) вызываютÑÑ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¾, а не по +указателÑм.
+
+ + + + + + +
Ðвтор: Kallikanzarid 8.12.2008, 13:09
Цитата(ksili @ 8.12.2008,  12:26)
Цитата(Kallikanzarid @  7.12.2008,  18:26 Ðайти цитируемый поÑÑ‚)
ЕÑли бы ты пиÑал под мобильники, то юзал бы Ñвно не Ñтудию

Прикинь, Ñ Ð¿Ð¸ÑˆÑƒ под WinMobile и иÑпользую-таки Ñтудию

Поди еще .NET иÑпользуешь smile Ð¯ имел ввиду наÑтоÑщие мобильники, Ñ Ð½Ð¸Ð·ÐºÐ¸Ð¼Ð¸ вычиÑлительными мощноÑÑ‚Ñми.

Добавлено через 7 минут и 25 Ñекунд
GoldFinch, +ÑÑылка на протÑжении Ñвоей жизни гарантированно указывает на один и тот +же объект, то позволÑет компилÑтору включить множеÑтво оптимизаций, +которые он (Ñправедливо) боитÑÑ Ð¿Ñ€Ð¸Ð¼ÐµÐ½Ñть к указателÑм.
http://www.tantalon.com/pete/cppopt/main.htm - уÑтаревший реÑурÑ, но многое вÑе еще Ñправедливо.

Защита дефайнами и вÑтавками Ñлементарно ломаетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ препроцеÑÑора.
+
+ + + + + + +
Ðвтор: ksili 8.12.2008, 13:16
Цитата(Kallikanzarid @  8.12.2008,  17:09 Ðайти цитируемый поÑÑ‚)
Поди еще .NET иÑпользуешь

Ðе, чиÑто на С++.
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 13:27
Цитата(Kallikanzarid @  8.12.2008,  13:09 Ðайти цитируемый поÑÑ‚)
Защита дефайнами и вÑтавками Ñлементарно ломаетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ препроцеÑÑора. 

как Ñто? какого препроцеÑÑора? о_О
+
+ + + + + + +
Ðвтор: Kallikanzarid 8.12.2008, 13:31
GoldFinch, ПрепроцеÑÑора С/С++. ПрогонÑешь через него файлы, и дефайны Ñо вÑтавками волшебным образом иÑчезают smile 

ksili, +как Ñ Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÑŽ, речь идет о Ñмартфонах? Я имел ввиду, что Ñкономить 10 +байт может иметь ÑмыÑл лишь Ñ Ð¾Ñ‡ÐµÐ½ÑŒ ограниченными платформами, вроде +Ñтарых мобильников.
+
+ + + + + + +
Ðвтор: ksili 8.12.2008, 13:37
Цитата(Kallikanzarid @  8.12.2008,  17:31 Ðайти цитируемый поÑÑ‚)
ksili, как Ñ Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÑŽ, речь идет о Ñмартфонах?

Да, Ñмартфоны, КПК, ... Ñто наш клиент ))

Цитата(Kallikanzarid @  8.12.2008,  17:31 Ðайти цитируемый поÑÑ‚)
ПрепроцеÑÑора С/С++. ПрогонÑешь через него файлы, и дефайны Ñо вÑтавками волшебным образом иÑчезают

Ðе понÑл. Ломают обычно бинарник. Как ты его прогонÑешь через препроцеÑÑор?
+
+ + + + + + +
Ðвтор: Kallikanzarid 8.12.2008, 13:42
Цитата

Ðе понÑл. Ломают обычно бинарник. Как ты его прогонÑешь через препроцеÑÑор? 

Тогда Ñ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ не понимаю smile ÐœÐ¾Ð¶ÐµÑ‚, Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾ иÑтолковал Ñлово "дифайны"?
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 13:42
Цитата(ksili @  8.12.2008,  13:37 Ðайти цитируемый поÑÑ‚)
Ломают обычно бинарник.

имелоÑÑŒ ввиду неÑколько другое :
Цитата(dumb @  8.12.2008,  11:40 Ðайти цитируемый поÑÑ‚)
так +же как и нет ÑмыÑла вкрÑчивать в выÑокоуровневый код примитивную защиту +извращаÑÑÑŒ Ñ Ð´ÐµÑ„Ð°Ð¹Ð½Ð°Ð¼Ð¸ и вÑтавками - Ð´Ð»Ñ ÑнÑÑ‚Ð¸Ñ Ð¾Ð½Ð¾Ð¹ вовÑе не +обÑзательно, чтобы механизм понимал любой "ламер" - +доÑтаточно одного немного продвинутого заинтереÑованного человека.

+
+ + + + + + +
Ðвтор: ksili 8.12.2008, 13:48
Ðе, ну вы вÑе-таки +объÑÑните. Ðа С и аÑме пишетÑÑ Ð¿Ñ€Ð¾Ð³Ð°. Я так понимаю Ñ Ñ€Ð°Ñчётом на то, +что её будет Ñложно взломать, ну или проÑто разобратьÑÑ Ð² ее коде в +дизаÑÑемблере. Ð’ÑÑ‘ Ñто предполагает то, что у злоумышленника будет +бинарник, и не будет иÑходников. 
Что тогда такое "дефайн" Ð² иÑполнÑемом файле? 
Что иÑчезнет в таком файле, поÑле его прогона через препроцеÑÑор?
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 14:04
Цитата(ksili @  8.12.2008,  13:48 Ðайти цитируемый поÑÑ‚)
Ðе, +ну вы вÑе-таки объÑÑните. Ðа С и аÑме пишетÑÑ Ð¿Ñ€Ð¾Ð³Ð°. Я так понимаю Ñ +раÑчётом на то, что её будет Ñложно взломать, ну или проÑто разобратьÑÑ +в ее коде в дизаÑÑемблере. 

по +контекÑту речь идет о некоторых программиÑтах, +которые "портÑÑ‚" (Ñ ÐºÐ°ÐºÐ¾Ð¹ целью можно только предполагать) +иÑходный код : 
Цитата
так же как и нет ÑмыÑла вкрÑчивать в выÑокоуровневый код примитивную защиту извращаÑÑÑŒ Ñ Ð´ÐµÑ„Ð°Ð¹Ð½Ð°Ð¼Ð¸ 

+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 14:10
Kallikanzarid, речь шла от такой защите дефайнами и аÑм вÑтавками
Код

#define RVA(rva) ;
#define IMPORT_THUNK //nothing

class ALineagePlayerController
{
public:
    IMPORT_THUNK +void ALineagePlayerController::PlayerCalcView(class AActor *, class +FVector *, class FRotator *) RVA(0xF1EB)
};


__declspec(naked) void imp_engine()
//make import
{ __asm{
    //_emit 0xCC
    pop eax // =func+0x10
    pop edx // =rva
    add edx,[g_hEngine] // = VA
    push edx
    sub edx,eax //=org_func-(func+0x10)
    add edx,0x10-5 //=org_func-(func+5)
    mov [eax-0x10+1],edx
    ret
}}
//==================== THUNCKS ===================================
#define IMPORT_THUNK __declspec(naked)
#define RVA(rva) {__asm jmp $+5 __asm nop __asm push rva __asm call imp_engine }
...
    IMPORT_THUNK +void ALineagePlayerController::PlayerCalcView(class AActor *, class +FVector *, class FRotator *) RVA(0xF1EB)

поÑле +автоанализа в ИДРбинарник выглÑдит веÑьма неплохо, на 1й взглÑд, да и +на 2й взглÑд там будет немало возни Ñ Ð²Ð¾ÑÑтановлением импортов. и Ñто +еще Ñамый проÑтейший вариант)
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 14:23
Цитата(GoldFinch @  8.12.2008,  14:10 Ðайти цитируемый поÑÑ‚)
поÑле +автоанализа в ИДРбинарник выглÑдит веÑьма неплохо, на 1й взглÑд, да и +на 2й взглÑд там будет немало возни Ñ Ð²Ð¾ÑÑтановлением импортов. и Ñто +еще Ñамый проÑтейший вариант) 

 smile Ð° +Ñколько возни автору коду Ñ Ð¿Ð¾Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ вÑей Ñтой ..ммм.. защитой. +)  Ð¸Ð½Ñ‚ереÑно в чем прелеÑть такой овчинки и Ñтоит ли она +выделки ?
только ради (мнимой) надежды что код не взломают +?  Ð’ принципе могут и не взломать.. Ñто еÑли как в анекдоте +про неуловимого Джо... ;)
+
+ + + + + + +
Ðвтор: ksili 8.12.2008, 14:23
Короче мы (GoldFinchKallikanzaridmes Ð¸ Ñ) Ð² Ñтой теме - лебедь, рак и щука, и ёщё кто-то четвёртый  smile  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 14:35
mes, возни мало, зато куча преимущеÑтв.
ÑтатичеÑкий +импорт не работает, Ñ‚.к. Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ надо иметь заголовочные (.h) файлы +идентичные тем что были иÑпользованы при компилÑции длл, иначе +возникает неÑоответÑтвие таблиц методов.
динамичеÑкие импорты через getprocaddress неудобны изза иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÐµÐ¹ на методы (obj->*met)() вмеÑто obj->met()
а такими приÑтно пользоватьÑÑ Ð² коде + их можно генерить Ñкриптом
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 14:55
Цитата(GoldFinch @  8.12.2008,  14:35 Ðайти цитируемый поÑÑ‚)
динамичеÑкие импорты через getprocaddress неудобны изза иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÐµÐ¹ на методы (obj->*met)() вмеÑто obj->met()

забываете о прокÑи-клаÑÑах типа умного указателÑ. 

Цитата(GoldFinch @  8.12.2008,  14:35 Ðайти цитируемый поÑÑ‚)
а такими приÑтно пользоватьÑÑ Ð² коде + их можно генерить Ñкриптом 

под одну платформу, определенный тип компилÑтора и небольшой плÑÑочки, чтоб привеÑти целевой бинарник к удобному виду. )
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 16:05
Цитата(mes @  8.12.2008,  14:55 Ðайти цитируемый поÑÑ‚)
под одну платформу, определенный тип компилÑтора

кроÑÑплатформенноÑть С++ зачаÑтую приводит к очень плохой кодогенерации.
лучше уж генерить хороший код под одну платформу чем *плохой* но чтоб можно было под любую.
когда Ñ Ð¿Ð¸ÑˆÑƒ код который будет работать внутри готового win32 приложениÑ, мне Ñта кроÑÑплатформенноÑть *не нужна*
+
+ + + + + + +
Ðвтор: Kallikanzarid 8.12.2008, 16:25
GoldFinch, [citation needed]
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 16:34
Цитата(Kallikanzarid @  8.12.2008,  16:25 Ðайти цитируемый поÑÑ‚)
GoldFinch, [citation needed] 

???
+
+ + + + + + +
Ðвтор: Kallikanzarid 8.12.2008, 16:50
Мне не кажетÑÑ Ð¾Ñ‡ÐµÐ²Ð¸Ð´Ð½Ñ‹Ð¼, что кроÑÑплатформенный иÑходный код приводит к генерации "плохого" Ð±Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð³Ð¾ кода.
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 17:15
Kallikanzarid, +из-за "кроÑÑплатформенноÑти", в С(++) нет ÑпоÑоба ÑредÑтвами Ñзыка +Ñгенерить некоторые x86-87 команды, например загрузку конÑтант в +FPU. 
Т.е. в некроÑÑплатформенном паÑкале еÑть +оператор(функциÑ) Pi который генерит fldpi, а в кроÑÑплатформенном +С(++) оператора Pi() нет, и ÑпоÑоба Ñгенерить fldpi (и другие +конÑтанты) тоже нет.
Впрочем код C++ Ð´Ð»Ñ FPU меÑтами ужаÑен %) Ðи один нормальный программиÑÑ‚ такого бы не пиÑал.
+
+ + + + + + +
Ðвтор: Kallikanzarid 8.12.2008, 19:33
Троллинг перераÑтает в холивар...  smile 
1) Чем плохи заранее обÑчитанные конÑтанты?
2) ПаÑкаль - не кроÑÑплатформенный?  smile Ð”а что ви говогите!
3) ÐœÐµÐ½Ñ Ñ‚Ñ‹ продавишь только цифрами, так как плевать Ñ Ñ…Ð¾Ñ‚ÐµÐ» на краÑоту бинарного кода smile Ð¥Ð¾Ñ‡Ñƒ бенчмарк, в котором те или иные мат. раÑчеты выполнÑÑŽÑ‚ÑÑ Ñначала в С++, а потом - в аÑме.
4) Рты можешь вручную оптимизировать раÑположение инÑтрукций, чтобы минимизировать проÑтой конвеера?
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 19:35
Цитата(GoldFinch @  8.12.2008,  17:15 Ðайти цитируемый поÑÑ‚)
из-за "кроÑÑплатформенноÑти", в С(++) нет ÑпоÑоба ÑредÑтвами Ñзыка Ñгенерить некоторые x86-87 команды

бред
никакой ÑвÑзи тут нет
Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð»Ð¸ÑˆÑŒ в поддержке компилÑтора

Цитата(GoldFinch @  8.12.2008,  17:15 Ðайти цитируемый поÑÑ‚)
Впрочем код C++ Ð´Ð»Ñ FPU меÑтами ужаÑен

не ÑущеÑтвует "кода C++ Ð´Ð»Ñ FPU"
качеÑтво кода, Ñгенерированного компилÑтором завиÑит от качеÑтва компилÑтора
оценка +качеÑтва оптимизированного кода неподготовленными Ñубъектами обычно +неадекватна, Ñ‚.к. понÑть что оптимально а что нет на уже 2-Ñ… +процеÑÑорных платформах ÑпоÑобен только ÑпециалиÑÑ‚

и вообще на 2-Ñ… поÑледних Ñтраницах Ñтолько бреда, что ужаÑть  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 20:05
Kallikanzarid,
1) тем что аппаратные конÑтанты много лучше программных
2) паÑкаль - Ñ Ð¸Ð¼ÐµÐ» ввиду турбопаÑкаль, дельфи
3) цифры: 
   fldpi - 2байта
   pi dt 3.14.... / fld [pi] - 10+6 байт
4) еÑли бы ты видел код который те генерит твой компилÑтор, ты бы не говорил о "минимизации проÑÑ‚Ð¾Ñ ÐºÐ¾Ð½Ð²ÐµÐµÑ€Ð°"
ÐºÐ°ÐºÐ±Ñ Ð²Ð¾Ñ‚ такой код при конфигурации "релиз" - Ñто реальноÑть
.text:1000122F                 mov     eax, +dword ptr [g_hEngine]
.text:10001234                 mov     dword +ptr [eax+56F5D8h], offset +Hook_ALineagePlayerController_PlayerCalcView(AActor *,FVector +*,FRotator *)
.text:1000123E                 mov     ecx, +dword ptr [g_hEngine]
.text:10001244                 mov     dword +ptr [ecx+57B968h], offset loc_10001190
.text:1000124E                 mov     edx, +dword ptr [g_hEngine]


J0ker, ок, будет говорить иÑключительно о компилÑторе MSVC. так вот у него кодогенератор - гуан*

наÑчет кода Ð´Ð»Ñ FPU - вот так вот в MSVC передаютÑÑ 32-разрÑдные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ float
.text:10001344                 fld     [esp+18h+arg_4]
.text:10001348                 fstp    [esp+18h+var_14]
.text:1000134C                 fld     dword +ptr [eax+4]
.text:1000134F                 fstp    [esp+18h+var_18]
.text:10001352                 call    FCanvasUtil::DrawLine(float,float,float,float,FColor,int)
видимо те кто пиÑали кодогенератор малоÑть не учли, что dword'Ñ‹ в Ñтек можно запихивать командой push, а не через Ñтек FPU %)
+
+ + + + + + +
Ðвтор: Kallikanzarid 8.12.2008, 20:15
GoldFinch, +объÑÑнÑÑŽ еще раз Ð´Ð»Ñ Ñамых одаренных. Мне. Плевать. Ðа. КраÑоту. +ÐÑÑемблерного. Кода. ЕÑли бахвалишьÑÑ Ñвоей труъ-аÑÑемблерноÑтью, +подтверди Ñвое превоÑходÑтво, предÑтавив реализацию какого-нибудь +чиÑленного алгоритма на С++ и на аÑме. И времÑ, за которое Ñти +реализации выполнÑÑŽÑ‚ÑÑ.
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 20:24
Kallikanzarid, +вот тебе ÐºÐ°ÐºÐ±Ñ Ð°Ð»Ð³Ð¾Ñ€Ð¸Ñ‚Ð¼ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ 80-разрÑдной конÑтанты Pi, разница в +размере - в 8 раз, разница в быÑтродейÑтвии в единицы - деÑÑтки раз, в +завиÑимоÑти от раÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñтанты в кеше или нет.
Ðе нравитÑÑ - +выбери другой алгоритм, метод, уÑÐ»Ð¾Ð²Ð¸Ñ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ Ð¸ предÑтавь Ñвой труъ +С++ код, ато Ñ Ð½Ð° С++ меньше меÑÑца пишу, могу true Ñ false через +strlen() Ñравнивать.
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 20:42
Цитата(GoldFinch @  8.12.2008,  20:05 Ðайти цитируемый поÑÑ‚)
0ker, ок, будет говорить иÑключительно о компилÑторе MSVC. так вот у него кодогенератор - гуан*

наÑчет кода Ð´Ð»Ñ FPU - вот так вот в MSVC передаютÑÑ 32-разрÑдные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ float
.text:10001344                 fld     [esp+18h+arg_4]
.text:10001348                 fstp    [esp+18h+var_14]
.text:1000134C                 fld     dword +ptr [eax+4]
.text:1000134F                 fstp    [esp+18h+var_18]
.text:10001352                 call    FCanvasUtil::DrawLine(float,float,float,float,FColor,int)
видимо те кто пиÑали кодогенератор малоÑть не учли, что dword'Ñ‹ в Ñтек можно запихивать командой push, а не через Ñтек FPU %)

видимо +тот, кто критикует то, что не понимает, не знает того, что +преобразование типов в плавающую точку ÑвлÑетÑÑ Ñ€ÐµÐ°Ð»ÑŒÐ½Ð¾Ð¹ операцией, а +не каÑтом на уровне Ð¿ÐµÑ€ÐµÐ½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð°
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 20:46
J0ker, и где же ты там преобразование увидел? Ñ Ñ‚Ð¾Ð»ÑŒÐº увидел преобразование m32real->m80real->m32real. там ÐºÐ°ÐºÐ±Ñ fld а не fild
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 20:50
Цитата(GoldFinch @ 8.12.2008,  20:46)
J0ker, и где же ты там преобразование увидел? Ñ Ñ‚Ð¾Ð»ÑŒÐº увидел преобразование 32разрÑда->80Ñ€ÑзрÑдов->32разрÑда

именно
в +функции операнды передаютÑÑ Ñ‡ÐµÑ€ÐµÐ· Ñтек, и при передаче тип должен быть +проверен и еÑли он не может быть преобразован то в точке передачи +обÑзан быть выÑтавлен флаг иÑключениÑ
еÑли данную функцию перепиÑать как инлайн, то вÑе будет оптимизированно на Ñтеке FPU
других решений тут нет и быть не может
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 20:56
Цитата(J0ker @  8.12.2008,  20:50 Ðайти цитируемый поÑÑ‚)
других решений тут нет и быть не может 

а Ñто не решение? о_О
pushd     [esp+18h+arg_4]
pushd     [eax+4]
call    FCanvasUtil::DrawLine(float,float,float,float,FColor,int)
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 21:08
Цитата(GoldFinch @  8.12.2008,  20:56 Ðайти цитируемый поÑÑ‚)

а Ñто не решение? о_О
pushd     [esp+18h+arg_4]
pushd     [eax+4]


битовое +предÑтавление floata равного n не  Ð½Ðµ ÑоответÑтвует битовому +предÑтавлению Ñтого чиÑла в dword/int (дополненого нулÑми)
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 21:20
Цитата(GoldFinch @ 8.12.2008,  20:56)
Цитата(J0ker @  8.12.2008,  20:50 Ðайти цитируемый поÑÑ‚)
других решений тут нет и быть не может 

а Ñто не решение? о_О
pushd     [esp+18h+arg_4]
pushd     [eax+4]
call    FCanvasUtil::DrawLine(float,float,float,float,FColor,int)

нет
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 21:21
mes, Ñ Ñтрудом догадываюÑÑŒ что такое битовое предÑтавление, тем более дополненное нулÑми О_о, и причем тут Ñто
команда push [mem32] ÐºÐ¾Ð¿Ð¸Ñ€ÑƒÐµÑ‚ 4 байта по адреÑу mem32 в Ñтек, и она не обращает Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° "битовое предÑтавление" Ñтих байт.
J0ker, и в каком же меÑте Ñто не решение?
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 21:29
Цитата(GoldFinch @  8.12.2008,  21:21 Ðайти цитируемый поÑÑ‚)
J0ker, и в каком же меÑте Ñто не решение?

в +меÑте Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð° - размещение значений Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой в +памÑти и Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ ÑопрÑжено Ñ Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ типов
Ð½ÐµÐ»ÑŒÐ·Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾ положить на Ñтек чиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой иначе чем через Ñтек FPU
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 21:30
Цитата(GoldFinch @  8.12.2008,  21:21 Ðайти цитируемый поÑÑ‚)
mes, Ñ Ñтрудом догадываюÑÑŒ что такое битовое предÑтавление,

ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°Ð±Ñ€Ð¾Ñаю пример почему не ÑвлетÑÑ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ :

Цитата(GoldFinch @  8.12.2008,  21:21 Ðайти цитируемый поÑÑ‚)
копирует 4 байта по адреÑу mem32 в Ñтек, и она Ð½Ðµ обращает Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° "битовое предÑтавление" Ñтих байт.


Добавлено @ 21:33
вот примерно что получитÑÑ Ð² результате вашго Ñ€ÐµÑˆÐµÐ½Ð¸Ñ :
Код

#include <iostream>

union convert
{
    float f;
    int i;
};

int main()
{
   convert c;
   c.i =5;
   std::cout<<c.i<<std::endl;
   ++c.f;
   std::cout<<c.i<<std::endl;

  system("pause");
  return 0;
}

+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 21:39
J0kermes, жжоте... какие громкие заÑвлениÑ) ÐºÐ°ÐºÐ°Ñ ÑƒÐ²ÐµÑ€ÐµÐ½Ð½Ð¾Ñть в правоте Ñвоих Ñлов... вы не правы. 
Потому +что черное Ñто черное, а белое Ñто белое. ЕÑть много ÑпоÑобов премещать +Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² памÑти, и еÑли вы Ñтого не знаете Ñто не значит что Ñти +ÑпоÑобы неверны) Курите документацию к процу и вам откроетÑÑ Ð¸Ñтина)

Ðо +какие замечательные выÑÐºÐ°Ð·Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚ вроде бы малоÑть разбирающихÑÑ Ð² +программировании людей... ЗапиÑал бы, да бред не коллекционирую.

upd:
mes, нет, Ваш код ниразу не ÑоответÑтвует той Ñитуации.
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 21:49
Цитата(GoldFinch @  8.12.2008,  21:39 Ðайти цитируемый поÑÑ‚)
какие громкие заÑвлениÑ)

никакой +громкоÑти.. Вам был предÑтавлен пример, который показывает что учаÑток +памÑти трактованный как int, чиÑлено не равен Ñтому же учаÑтку памÑти +но трактованному как float.
жаль что Ð’Ñ‹ даже не захотели Ñтого понÑть ;)

Цитата(GoldFinch @  8.12.2008,  21:39 Ðайти цитируемый поÑÑ‚)
Потому что черное Ñто черное, а белое Ñто белое.

И ночью тоже ?

Цитата(GoldFinch @  8.12.2008,  21:39 Ðайти цитируемый поÑÑ‚)
ЕÑть много ÑпоÑобов премещать Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² памÑти, и еÑли вы Ñтого не знаете Ñто не значит что Ñти ÑпоÑобы неверны) 

а кто нибудь оÑпаривал ? речь не о перемещении а о трактовке значениÑ.

Цитата(GoldFinch @  8.12.2008,  21:39 Ðайти цитируемый поÑÑ‚)
ЗапиÑал бы, да бред не коллекционирую. 

Рвот Ñто дейÑтвительно громко. ЗапиÑал бы, но .... Ñ Ð´ÑƒÐ¼Ð°ÑŽ Ð’Ñ‹ догадалиÑÑŒ )


+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 21:56
так..... тут было потерто обкидывание оппонента какашками  smile 
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 22:12
Цитата(GoldFinch @  8.12.2008,  21:39 Ðайти цитируемый поÑÑ‚)
mes, нет, Ваш код ниразу не ÑоответÑтвует той Ñитуации.


Цитата(J0ker @  8.12.2008,  21:20 Ðайти цитируемый поÑÑ‚)
pushd     [esp+18h+arg_4]
pushd     [eax+4]
call    FCanvasUtil::DrawLine(float,float,float,float,FColor,int)

вот немного изменил код, чтоб легче было понимать что проиÑходит .. желаю приÑтных ÑкÑперементов :
Код


#include <iostream>

union convert
{
    float f;
    int i;
};

float mycast_int2float(int i) // преобразование без учета типа
{
    convert c;
    c.i = i;
    return c.f;
}

void myfunc (float f)
{
    std::cout<< "argument for myfunc = " << f << std::endl;
}

int main()
{
// передача аргумента Ñ  ÐºÐ¾Ð½Ð²ÐµÑ€Ñ‚ацией типа
  myfunc ('a'); // char
  myfunc (int(5)); // int
  myfunc (6);    // int
  myfunc (7.0); // double
// передача аргумента по битовому предÑтавлению
  myfunc (mycast_int2float('a'));
  myfunc (mycast_int2float(5));

  system("pause");
  return 0;
}

+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 22:17
mes, что за бредовый пруфкод вы пишете? то что мы обÑуждаем выглÑдит так:
Код

#include <windows.h>
#pragma comment(linker,"/ENTRY:main")

int __stdcall Foo(float arg)
{
    return arg == 8/7;
};

int Bar(float arg)
{__asm{
    push dword ptr [arg]
    call Foo
}};

void main()
{    
    if ( Bar(8/7)) 
        MessageBoxA(0,"8//7==8//7","ok",0);
    else
        MessageBoxA(0,"8//7!=8//7",0,0);
}

в Ñтрочке "push dword ptr [arg]" float значение передаетÑÑ Ð² Ñтек через push а не через пару fld/fstp
что характерно прога выводит "8/7==8/7"
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 22:25
GoldFinch, Ñ Ð²Ð°Ð¼ объÑÑнÑÑŽ... Ñовершенно Ñпокойно, вот...
преобразование из дабл во флоат - Ñто ОПЕРÐЦИЯ - она не может быть выполнена без Ð¿Ñ€Ð¸Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ FPU либо его ÑмулÑтора
еÑли вы в Ñвоих примерах замените float на double вы Ñразу Ñто поймете
+
+ + + + + + +
Ðвтор: mes 8.12.2008, 22:28
Цитата(GoldFinch @  8.12.2008,  22:17 Ðайти цитируемый поÑÑ‚)
int Bar(float arg)

A Ð’Ñ‹ Ñхитрили .. перепешите код изменив Ñту Ñрочку на
int Bar(int arg)

вот Вам ÐºÐ°Ñ€ÐºÐ°Ñ Ñ‚ÐµÑта :
Код


#include <iostream>

int __stdcall Foo(float arg)
{
    return int(arg)+1;
};
int Bar( int arg)
{
    Foo (arg); // вот вмеÑто Ñтого  Ð¿ÐµÑ€ÐµÐ´Ð°Ð¹Ñ‚е параметр через Ñтек  )
};
int main()
{
 std::cout << "Foo(5) = " << Bar(5)<<std::endl;

  system("pause");
  return 0;
}


потом еше можете изменить int на double и поÑмотреть результат ) 
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 22:39
GoldFinch, вот, разберитеÑÑŒ уже наконец
Код

__declspec(noinline) float foo(float x, float x1)
{
    return x * x1;
00401650  fld         dword ptr [esp+4] 
00401654  fmul        dword ptr [esp+8] 
00401658  fstp        dword ptr [esp+4] 
0040165C  fld         dword ptr [esp+4] 
}
00401660  ret              

..............

__declspec(noinline) double foo1(double x, double x1)
{
    return x * x1;
00401670  fld         qword ptr [esp+4] 
00401674  fmul        qword ptr [esp+0Ch] 
}
00401678  ret              

..................

int _tmain(int argc, _TCHAR* argv[])
{
00401680  push        ebp  
00401681  mov         ebp,esp 
00401683  and         esp,0FFFFFFC0h 
00401686  push        0FFFFFFFFh 
00401688  push        403A20h 
0040168D  mov         eax,dword ptr fs:[00000000h] 
00401693  push        eax  
00401694  sub         esp,70h 
00401697  mov         eax,dword ptr ds:[00406018h] 
0040169C  xor         eax,esp 
0040169E  mov         dword ptr [esp+38h],eax 
004016A2  push        esi  
004016A3  mov         eax,dword ptr ds:[00406018h] 
004016A8  xor         eax,esp 
004016AA  push        eax  
004016AB  lea         eax,[esp+78h] 
004016AF  mov         dword ptr fs:[00000000h],eax 
004016B5  mov         esi,dword ptr [ebp+0Ch] 
    float a = (float)atof(argv[1]);
004016B8  mov         eax,dword ptr [esi+4] 
004016BB  push        eax  
004016BC  call        dword ptr ds:[00404108h] 
004016C2  fstp        dword ptr [esp+34h] 
    float b = (float)atof(argv[2]);
004016C6  mov         ecx,dword ptr [esi+8] 
004016C9  add         esp,4 
004016CC  push        ecx  
004016CD  call        dword ptr ds:[00404108h] 
    
    float y = foo(a, b) * 4.7f;
004016D3  fstp        dword ptr [esp+38h] 
004016D7  fld         dword ptr [esp+38h] 
004016DB  fstp        dword ptr [esp] 
004016DE  push        ecx  
004016DF  fld         dword ptr [esp+38h] 
004016E3  fstp        dword ptr [esp] 
004016E6  call        00401650 
004016EB  fmul        qword ptr ds:[00404650h] 

    double a1 = atof(argv[1]);
004016F1  mov         edx,dword ptr [esi+4] 
004016F4  push        edx  
004016F5  fstp        dword ptr [esp+3Ch] 
004016F9  call        dword ptr ds:[00404108h] 
    double b1 = atof(argv[2]);
004016FF  mov         eax,dword ptr [esi+8] 
00401702  fstp        qword ptr [esp+40h] 
00401706  add         esp,0Ch 
00401709  push        eax  
0040170A  call        dword ptr ds:[00404108h] 

    double y1 = foo1(a1, b1) * 4.7;
00401710  sub         esp,0Ch 
00401713  fstp        qword ptr [esp+8] 
00401717  fld         qword ptr [esp+44h] 
0040171B  fstp        qword ptr [esp] 
0040171E  call        00401670 
00401723  fmul        qword ptr ds:[00404648h] 
00401729  add         esp,10h 

    return (int)(y + y1);
0040172C  fadd        dword ptr [esp+30h] 
00401730  call        00403500 
}
00401735  mov         ecx,dword ptr [esp+78h] 
00401739  mov         dword ptr fs:[00000000h],ecx 
00401740  pop         ecx  
00401741  pop         esi  
00401742  mov         ecx,dword ptr [esp+38h] 
00401746  xor         ecx,esp 
00401748  call        00401F58 
0040174D  mov         esp,ebp 
0040174F  pop         ebp  
00401750  ret              
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 22:39
J0ker
Код

.text:10001344                 fld     [esp+18h+arg_4]
.text:10001348                 fstp    [esp+18h+var_14]
.text:1000134C                 fld     dword +ptr [eax+4]
.text:1000134F                 fstp    [esp+18h+var_18]
.text:10001352                 call    FCanvasUtil::DrawLine(float,float,float,float,FColor,int)

где +Ð’Ñ‹ тут увидели double??? тот Ñамый 64-разрÑдный double, а не +32-разрÑдный float?? надеюÑÑŒ Ð’Ñ‹ понимаете что мы говорим о +32(тридцатидвух)-разрÑдных значениÑÑ…??

но Ñпециально Ð´Ð»Ñ Ð’Ð°Ñ, Ñ Ð¿ÐµÑ€ÐµÐ¿Ð¸ÑˆÑƒ код Ð´Ð»Ñ double, и даже уберу там баги которых Ð’Ñ‹ не заметили)))
Код

#include <windows.h>
#pragma comment(linker,"/ENTRY:main")

__declspec(noinline) int __stdcall Foo(double arg)
{
    return arg == 8.0/7.0;
};
 
__declspec(noinline) int __stdcall Bar(double arg)
{__asm{
    push dword ptr [arg+4]
    push dword ptr [arg]
    call Foo
}};

void main()
{    
    if ( Bar(8.0/7.0)) 
        MessageBoxA(0,"8/7==8/7","ok",0);
    else
        MessageBoxA(0,"8/7!=8/7",0,0);
}

ÐºÐ°ÐºÐ±Ñ 64-разрÑдные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñ…Ð¸Ð²Ð°ÑŽÑ‚ÑÑ Ð² Ñтек Ð´Ð²ÑƒÐ¼Ñ push [mem32]

более того, пиши Ñ Ð¿Ð¾Ð´ x64, там был бы один push [mem64]

Добавлено @ 22:44
J0ker, Ð’Ð°Ñ Ð² вашем коде Ñтрочки
00401658  fstp        dword ptr [esp+4] 
0040165C  fld         dword ptr [esp+4] 
не Ñмущают?
и вообще, как Ñта муть отноÑитÑÑ Ðº теме?


mes, медленно, вдумчиво, прочитайте еще раз Ñтот код, и Ð’Ñ‹ поймете что Ð’Ñ‹ пишите не по теме.
.text:10001344                 fld     [esp+18h+arg_4]
.text:10001348                 fstp    [esp+18h+var_14]
.text:1000134C                 fld     dword +ptr [eax+4]
.text:1000134F                 fstp    [esp+18h+var_18]
.text:10001352                 call    FCanvasUtil::DrawLine(float,float,float,float,FColor,int)
ну нету в Ñтом коде ничего ÑвÑзанного Ñ int, не-ту
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 23:04
Цитата(GoldFinch @  8.12.2008,  22:39 Ðайти цитируемый поÑÑ‚)
о Ñпециально Ð´Ð»Ñ Ð’Ð°Ñ, Ñ Ð¿ÐµÑ€ÐµÐ¿Ð¸ÑˆÑƒ код Ð´Ð»Ñ double, и даже уберу там баги которых Ð’Ñ‹ не заметили)))

да Ñ ÑобÑтна не про Ñтот код  smile 
Ñ ÐµÐ³Ð¾ даже не читал

Цитата(GoldFinch @  8.12.2008,  22:39 Ðайти цитируемый поÑÑ‚)
J0ker, Ð’Ð°Ñ Ð² вашем коде Ñтрочки
00401658  fstp        dword ptr [esp+4] 
0040165C  fld         dword ptr [esp+4] 
не Ñмущают?

а Ð²Ð°Ñ Ñмущает? а что Ð²Ð°Ñ Ñмущает?  smile 

Цитата(GoldFinch @  8.12.2008,  22:39 Ðайти цитируемый поÑÑ‚)
и вообще, как Ñта муть отноÑитÑÑ Ðº теме?

когда вы Ñто поймете, диÑкуÑÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ окончена  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 23:09
J0ker, Ñти +Ñтрочки - nop. они ничего не делают. И таких Ñтрочек в том коде много. +Ð’Ñ‹ вообще Ñмотрели тот код который выложили? Да там оптимизацией и не +пахнет.

Добавлено через 6 минут
По оптимизации - вот Ñто вот
004016DE  push        ecx  
004016DF  fld         dword ptr [esp+38h] 
004016E3  fstp        dword ptr [esp] 
004016E6  call        00401650 
заменÑетÑÑ Ð½Ð°
push dword ptr [esp+38h]  
call 00401650
и т.д. и т.п.

не верите? проверьте в ольке 
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 23:23
Цитата(GoldFinch @  8.12.2008,  23:09 Ðайти цитируемый поÑÑ‚)
J0ker, Ñти Ñтрочки - nop. они ничего не делают.

да неужели?
а давайте проверим - вот конкретно Ñти Ñтрочки
Код

// здеÑÑŒ ST0 = +7.5899997329711936e+0000
00401658  fstp        dword ptr [esp+4] 
0040165C  fld         dword ptr [esp+4]
// а здеÑÑŒ ST0 = +7.5899996757507324e+0000

вы мыÑль улавливаете, да?  smile

Добавлено через 1 минуту и 32 Ñекунды
Цитата(GoldFinch @  8.12.2008,  23:09 Ðайти цитируемый поÑÑ‚)
По оптимизации - вот Ñто вот
004016DE  push        ecx  
004016DF  fld         dword ptr [esp+38h] 
004016E3  fstp        dword ptr [esp] 
004016E6  call        00401650 
заменÑетÑÑ Ð½Ð°
push dword ptr [esp+38h]  
call 00401650
и т.д. и т.п.

не верите? проверьте в ольке 

только еÑли нет Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð¾Ð²
ага  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 23:30
J0ker, уловил. +Только в чем ÑмыÑл Ð¾ÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð¸Ñ 80-разрÑдного Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² Ñтеке +ÑопроцеÑÑора до 32-разрÑдного? Я чтото не предÑтавлÑÑŽ Ñебе жизненных +Ñлучаев где Ñто может пригодитьÑÑ.

Добавлено @ 23:33
мм... развечто при Ñравнении... так тогда и надо округлÑть перед Ñравнением, а не вÑегда и везде, иначе ÐºÐ°ÐºÐ°Ñ Ñто Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ %)


так или иначе, разговор началÑÑ Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ float в Ñтек, *уже округленного* float в Ñтек.
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 23:36
в том, что вы не можете проÑто так отрезать лишние биты при транÑфере чиÑел Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой
Ñ +Ñовершенно ÑоглаÑен, что можно, и даже иногда нужно оптимизировать +вычиÑÐ»ÐµÐ½Ð¸Ñ Ð½Ð° FPU на аÑÑемблере, Ñ‚.к. Ñтандартные типы пока не вмещают +полноразмерные чиÑла Ñ ÐŸÐ¢
но Ñовершенно безоÑновательно возводить поклеп на умных людей напиÑавших грамотный компилÑтор

Добавлено через 10 минут
Цитата(GoldFinch @  8.12.2008,  23:30 Ðайти цитируемый поÑÑ‚)
так или иначе, разговор началÑÑ Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ float в Ñтек, *уже округленного* float в Ñтек.

Ñто вы знаете, что у Ð²Ð°Ñ Ñ‚Ð°Ð¼ float, а процеÑÑору Ñто нужно доказать  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 23:47
Цитата(J0ker @  8.12.2008,  23:36 Ðайти цитируемый поÑÑ‚)
в том, что вы не можете проÑто так отрезать лишние биты при транÑфере чиÑел Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой

Так Ñ Ð¸ не понÑл Ñ Ñтими отрезаниÑми.....
У +Ð¼ÐµÐ½Ñ Ð² памÑти еÑть 32-разрÑдный float. Готовый, правильный, безо вÑÑких +подвохов float. Почему компилÑтор не копирует его в Ñтек командой push +[mem32], а генерит fld [mem32] / fstp [mem32] ?? Ð’ Ñтеке же оказываетÑÑ +одно и тоже значение...
Цитата(J0ker @  8.12.2008,  23:36 Ðайти цитируемый поÑÑ‚)

Ñ +Ñовершенно ÑоглаÑен, что можно, и даже иногда нужно оптимизировать +вычиÑÐ»ÐµÐ½Ð¸Ñ Ð½Ð° FPU на аÑÑемблере, Ñ‚.к. Ñтандартные типы пока не вмещают +полноразмерные чиÑла Ñ ÐŸÐ¢

кто невмещает? в С++ нет 10-байтового вещеÑтвенного чтоли?

Добавлено через 2 минуты и 56 Ñекунд
дейÑтвительно нет.... везде еÑть, а в С++ нет.... как же так %)
+
+ + + + + + +
Ðвтор: J0ker 8.12.2008, 23:53
c'est la vie
+
+ + + + + + +
Ðвтор: GoldFinch 8.12.2008, 23:53
Цитата(J0ker @  8.12.2008,  23:36 Ðайти цитируемый поÑÑ‚)
Ñто вы знаете, что у Ð²Ð°Ñ Ñ‚Ð°Ð¼ float, а процеÑÑору Ñто нужно доказать 

что доказать????
004016DE  push        ecx  ; sub esp,SizeOf(dword)
004016DF  fld         dword ptr [esp+38h] 
004016E3  fstp        dword ptr [esp] 
004016E6  call        00401650 
float и dword Ñто одно и то же, что тут доказывать процеÑÑору?
+
+ + + + + + +
Ðвтор: J0ker 9.12.2008, 00:00
опа, вот и Ñ Ð½Ðµ прав
long double в Ñтандарте оказываетÑÑ... проморгал smile

Добавлено через 2 минуты и 34 Ñекунды
Цитата(GoldFinch @  8.12.2008,  23:53 Ðайти цитируемый поÑÑ‚)
004016DF  fld         dword ptr [esp+38h] 
004016E3  fstp        dword ptr [esp] 
004016E6  call        00401650 
float и dword Ñто одно и то же, что тут доказывать процеÑÑору? 

Ñ Ð¶ вам уже Ñказал - что у Ð²Ð°Ñ Ñ‚Ð°Ð¼ лежит в памÑти извеÑтно только вам
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 00:27
Итак, it's a showdown!!!

Ðлгоритм +- интегрирование методом трапеций. ИнтегрируетÑÑ ÐºÐ¾ÑинуÑ, при Ñтом +Ñпециально не иÑпользуетÑÑ ÐµÐ³Ð¾ ÑвойÑтво периодичноÑти. Ð’ общем, Ñмотри +код:
Код

#include <cstdlib>
#include <cmath>
#include <iostream>
using namespace std;

const float pi = static_cast<float>( M_PI );

float cosint( float a, float b, int N ) {
    float sum = 0.0f;
    float h = (b - a) / N;
    for( float cur = a + h; cur < b; cur += h )
        sum += cos( cur );
    return ( sum + ( cos(a) + cos(b) ) * 0.5f ) * h;
}

int main() {
    clock_t before = clock();
    float result = cosint( 0.0f, 1000.0f * pi, 10000000 );
    clock_t after = clock();
    
    cout << result << " -- " << (after +- before) / +1000.0 << " seconds." << endl;
}



Код, кÑтати, кроÑÑплатформенней некуда. Компилировал Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ MinGW Ñо Ñледующими параметрами=:

g++ +-msse3 -mfancy-math-387 -m80387 -mhard-float -mtune=pentium4 +-march=pentium4 -mthreads -mfp-ret-in-387 -mieee-fp -O3 +-funroll-loops  -o showdown.exe showdown.cpp

ПоÑле Ñтого прогнал через strip:
strip -s showdown.exe

Прикладываю Ñкзешник. Удачи, чувак  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 14:44
Kallikanzarid, ты бы перед тем как выкладывать код Ñ Ð±Ð¸Ð½Ð°Ñ€Ð½Ð¸ÐºÐ¾Ð¼, убедилÑÑ Ð±Ñ‹ в их качеÑтве
код - неудобный, хз как у Ð²Ð°Ñ Ð° Ð¼ÐµÐ½Ñ ÐµÑ‰Ðµ в школе учили в конце конÑольной программы вÑтавлÑть паузу.
Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ - неоптимизирована, про иÑпользование for Ñ Ð²Ð¾Ð¾Ð±Ñ‰Ðµ промолчу... 

а Ñамое главное, в бинарнике видно что компилÑтор заинлайнил cosint() и заменил ее аргументы конÑтантами.
получилоÑÑŒ както так:
Код

    clock_t before = clock();
    float sum = 0.0f;
    float h = 1000.0f * pi / 10000000;
    for( float cur = h; cur < 1000.0f * pi; cur += h )
        sum += cos( cur );
    result =  ( sum + cos(1000.0f * pi) * 0.5f ) * h;
    clock_t after = clock();

так и было задумано?) а что Ñразу так не напиÑал?)))
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 15:09
GoldFinch,

1) За годы практики Ñ ÑƒÐ±ÐµÐ´Ð¸Ð»ÑÑ, вÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð² Ñаму программу пауза - Ñто зло. Ðамного лучше Ñоздавать Ð´Ð»Ñ Ñтой цели .bat-файл.
2) +Я Ñпециально ничего не оптимизировал, чтобы Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑлаÑÑŒ +доÑтаточно долго, и чтобы компилÑтор мог проÑвить ÑÐµÐ±Ñ Ð² раÑкрутке +циклов и Ñ‚. д.
3) for и правда не Ñамый оптимальный (и, к тому же, +накапливающий погрешноÑть), но мы ведь Ñпорили об оптимизации FPU-кода, +так? Вот Ñ Ð¸ ÑтараюÑÑŒ загрузить его по макÑимуму.
4) Инлайн еÑть гут smile ÐžÐ¿Ñ‚имизирующий +компилÑтор ведь должен оптимизировать, так? Ðо в любом Ñлучае Ñ +ÑомневаюÑÑŒ, что один дополнительный вызов бы Ñделал погоду.
5) Да, так и было задумано smile

Добавлено через 3 минуты и 8 Ñекунд
float +вмеÑто double Ñ Ñ‚Ð¾Ð¶Ðµ иÑпользовал в Ñвоих корыÑтных целÑÑ…, дабы +Ð²ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð´Ð°Ð»Ð° прироÑÑ‚ x4, а не x2. Ð¥Ð¾Ñ‚Ñ Ñтот алгоритм не оÑобенно +хорош Ð´Ð»Ñ SSE, так что, может быть, код там иÑпользует только FPU. Хз, +Ñ Ñ‡ÐµÑ€ÐµÐ· BIEW не прогонÑл.
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 17:10
Решение "в лоб", без FPU-оптимизации, бинарник (2кб) в архиве
Код

include 'win32a.inc'
include 'hll.inc'
format PE GUI 4.0
;=====================================================
section '.data' data readable writeable
;------------------------
IMPORTS KERNEL32.DLL, <ExitProcess,GetTickCount,Sleep>,\
        USER32.DLL,   <wsprintfA,MessageBoxA>
;------------------------
m dd 100000000 ;8digits=32/4
gRealBuf: dt ?
gMsgBuf db 1024 dup ?
;=====================================================
section '.code' code readable executable
entry $
; float result = cosint( 0.0f, 1000.0f * pi, 10000000 );
      GetTickCount()
      push eax
;A=0
;B=1000.0f * pi
      ;-----------------------------------------------------
      jmp @f
      b_pi dd 1e+3 ;b/pi
      h_pi dd 1e-4 ;h/pi=(b/pi)/N
      _0.5 dd 0.5
@@:
      fldpi ;pi
      fmul [h_pi] ;h

      fldpi ;pi,h
      fmul [b_pi] ;b,h
      fcos ;cos(b),h
      fmul [_0.5] ;sum,h

      fld st1 ;cur,sum,h
      mov ecx,10000000
      dec ecx ;N-1
.loo:               ;cur,sum,h
      fld st0       ;cur,cur,sum,h
      fcos          ;cos(cur),cur,sum,h
      faddp st2,st0 ;cur,sum',h
      fadd st0,st2  ;cur',sum',h
      loop .loo
      fxch st2      ;h,sum,cur
      fmul st0,st1  ;result
      ;-----------------------------------------------------
      GetTickCount()
      pop edx
      sub eax,edx
      fimul [m]
      fbstp tword [gRealBuf]
      wsprintfA(gMsgBuf,"Result = %x.%08x, Time = %dms",[gRealBuf+4],[gRealBuf],eax)
      MessageBoxA(0,gMsgBuf,"Result",0)
      ExitProcess()
;=====================================================
section '.reloc' fixups data discardable


на моем компе код Kallikanzarid'а работает 704мÑ, мой код работает 563мÑ, 20% разница
P4 3ГГц, WinXPSp2
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 18:51
Хорошо... но недоÑтаточно!
Я +немного подправил код, Ñделав цикл целочиÑленным. Это ÑкоÑтило ÑовÑем +немного, зато точноÑть возраÑла до твоей. Зато потом Ñ Ð´Ð¾Ñ€Ð²Ð°Ð»ÑÑ Ð´Ð¾ +документации GCC, хехе. Ð’ общем, качай.
+
+ + + + + + +
Ðвтор: J0ker 9.12.2008, 19:34
Kallikanzarid, Ñ Ñ‚Ðµ Ñоветую воÑпользоватьÑÑ OpenMP
и пуÑть GoldFinch, попробует угнатьÑÑ  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 19:35
Kallikanzarid, оÑталоÑÑŒ Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¼ÐµÑ€Ñть не +-10%
ÐºÐ°ÐºÐ±Ñ +clock() вызывает GetSystemTimeAsFileTime, а Ñто очень плохой метод +измерениÑ, да и увеличивать Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡Ð¸Ð²Ð°Ñ Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ +теÑтируемого алгоритма не Ñамый лучший подход

кÑтати, что Ñто у +Ñ‚Ñ Ð¿Ñ€Ð¾Ð³Ð° веÑит 275кб и требует неÑиÑтемную дллку msvcrt.dll? а зачем у +Ñ‚Ñ Ð² архиве дллка mingwm10.dll, Ð´Ð»Ñ Ð²ÐµÑу?

ЗЫ: между прочим, мы начинали разговор именно о MSVC
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 19:58
J0ker, у него один проц, Ñкажет, что ничего не заметил  smile 

GoldFinch,

Цитата

кÑтати, что Ñто у Ñ‚Ñ Ð¿Ñ€Ð¾Ð³Ð° веÑит 275кб и требует неÑиÑтемную дллку msvcrt.dll

Пошли +отговорки? ;-) Прога веÑти 275 кб, потому что иÑпользует ÑтатичеÑкий +билд libc++. msvcrt.dll еÑть в каждом диÑтрибутиве Windows, Ñто +Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ€Ð°Ð½Ñ‚Ð°Ð¹Ð¼Ð° С. ЕÑли подумать, иÑпользование в качеÑтве бÑкÑнда +Ð´Ð»Ñ libc++ родной Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ платформы реализации C runtime - логичный +ход Ñо Ñтороны GNU.

Цитата

а зачем у Ñ‚Ñ Ð² архиве дллка mingwm10.dll, Ð´Ð»Ñ Ð²ÐµÑу?

ХЗ, но билд ее требует.

Цитата

ЗЫ: между прочим, мы начинали разговор именно о MSVC

Ðет уж, теперь ты не отвертишьÑÑ  smile ÐšÑтати, ÑчитаетÑÑ, что у MSVC генерируемый код лучше, чем у гнуÑа.

Цитата

ÐºÐ°ÐºÐ±Ñ clock() вызывает GetSystemTimeAsFileTime, а Ñто очень плохой метод измерениÑ

Ð’ интереÑах науки заменил clock() на GetTickCount(). Результат практичеÑки не изменилÑÑ. Ðрхив прилагаетÑÑ.

Цитата

да и увеличивать Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡Ð¸Ð²Ð°Ñ Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ теÑтируемого алгоритма не Ñамый лучший подход

Почему? +Тут менÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ чиÑло итераций. С тем же уÑпехом можно взÑть +компактный алгоритм, прогнать его неÑколько тыÑÑч раз и взÑть Ñреднее +арифметичеÑкое времÑ. Ðа протÑжении почти вÑех итераций код и данные +будут в кÑше, и Ñто может ÑказатьÑÑ, но Ð´Ð»Ñ ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ ÑффективноÑти +кода той или иной реализации Ñто не так важно.
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 20:12
Kallikanzarid, у Ð¼ÐµÐ½Ñ ÐºÐ¾Ð´ 2кб, в 137 раз меньше, еÑли Ñлить Ñекции в 1 - будет веÑить 1кб, в 275 раз меньше
еÑли Ñ Ð³Ð¾Ð²Ð¾Ñ€Ð¸Ð» что у MSVC кодогенератор гуан* то зачем выкладывать код Ñгенереный gcc?
и GetTickCount() тоже Ð¿Ð»Ð¾Ñ…Ð°Ñ Ð¸Ð´ÐµÑ, Ñ ÐµÐ³Ð¾ юзал только чтобы получать результат в Ñекундах, мерить производительноÑть лучше rdtsc
мерÑть +лучше так - Ñделать небольшую длительноÑть 1 Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ (в идеале меньше +1 кванта времени), выполнить Sleep чтобы измерение началоÑÑŒ в начале +кванта, замерить, выполнить Sleep, замерить и Ñ‚.д., а вÑе замеры +проÑуммировать
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 20:19
Цитата

мерить производительноÑть лучше rdtsc
мерÑть +лучше так - Ñделать небольшую длительноÑть 1 Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ (в идеале меньше +1 кванта времени), выполнить Sleep чтобы измерение началоÑÑŒ в начале +кванта, замерить, выполнить Sleep, замерить и Ñ‚.д., а вÑе замеры +проÑуммировать 

Рзачем? ИМХО, картина и так ÑÑна.

Цитата

еÑли Ñ Ð³Ð¾Ð²Ð¾Ñ€Ð¸Ð» что у MSVC кодогенератор гуан* то зачем выкладывать код Ñгенереный gcc?

Ты +хаил портируемый код и С++ вообще. Можешь поигратьÑÑ Ñ Ð½Ð°Ñтройками MSVC +в качеÑтве домашнего заданиÑ. Бенчмарки показывают, что его код +быÑтрее, чем у GCC.

Цитата

у Ð¼ÐµÐ½Ñ ÐºÐ¾Ð´ 2кб, в 137 раз меньше, еÑли Ñлить Ñекции в 1 - будет веÑить 1кб, в 275 раз меньше

ДопуÑтим. И что?  smile 

Предлагаю +начать новый раунд ÑпичеÑкого противоÑтоÑниÑ. Ðа Ñтот раз проверим +работу Ñ Ð¿Ð°Ð¼Ñтью, в чаÑтноÑти, Ñ Ð¼Ð°ÑÑивами. Выбирай задачу smile
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 20:20
Цитата(Kallikanzarid @  9.12.2008,  20:19 Ðайти цитируемый поÑÑ‚)
Ты хаил портируемый код и С++ вообще. 

цитату
+
+ + + + + + +
Ðвтор: J0ker 9.12.2008, 20:22
Цитата(GoldFinch @  9.12.2008,  20:12 Ðайти цитируемый поÑÑ‚)
еÑли Ñ Ð³Ð¾Ð²Ð¾Ñ€Ð¸Ð» что у MSVC кодогенератор гуан*

мыж уже вроде решили что гуан* не компилÑтор, а ваше понимание?  smile 
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 20:25
Цитата:
Цитата

Kallikanzarid, +из-за "кроÑÑплатформенноÑти", в С(++) нет ÑпоÑоба ÑредÑтвами Ñзыка +Ñгенерить некоторые x86-87 команды, например загрузку конÑтант в +FPU. 
Т.е. в некроÑÑплатформенном паÑкале еÑть +оператор(функциÑ) Pi который генерит fldpi, а в кроÑÑплатформенном +С(++) оператора Pi() нет, и ÑпоÑоба Ñгенерить fldpi (и другие +конÑтанты) тоже нет.
Впрочем код C++ Ð´Ð»Ñ FPU меÑтами ужаÑен %) Ðи один нормальный программиÑÑ‚ такого бы не пиÑал. 

Как наиболее характерный образчик.
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 20:31
Цитата(GoldFinch @  8.12.2008,  20:05 Ðайти цитируемый поÑÑ‚)
ок, будет говорить иÑключительно о компилÑторе MSVC. так вот у него кодогенератор - гуан*

наÑчет кода Ð´Ð»Ñ FPU - вот так вот в MSVC передаютÑÑ 32-разрÑдные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ float
.text:10001344                 fld     [esp+18h+arg_4]
.text:10001348                 fstp    [esp+18h+var_14]
.text:1000134C                 fld     dword +ptr [eax+4]
.text:1000134F                 fstp    [esp+18h+var_18]
.text:10001352                 call    FCanvasUtil::DrawLine(float,float,float,float,FColor,int)

только в Ñледующем же поÑте Ñ ÑƒÑ‚Ð¾Ñ‡Ð½Ð¸Ð» что речь идет о MSVC и начал приводить примеры его кодогенерации


Хочешь ÑпичеÑкого противоÑтоÑниÑ? по размеру оптимизировать будем?
+
+ + + + + + +
Ðвтор: J0ker 9.12.2008, 20:36
Цитата(GoldFinch @  9.12.2008,  20:31 Ðайти цитируемый поÑÑ‚)
только в Ñледующем же поÑте Ñ ÑƒÑ‚Ð¾Ñ‡Ð½Ð¸Ð» что речь идет о MSVC и начал приводить примеры его кодогенерации

вы игнорируете мой вопроÑ?  smile 

Цитата(GoldFinch @  9.12.2008,  20:31 Ðайти цитируемый поÑÑ‚)
Хочешь ÑпичеÑкого противоÑтоÑниÑ? по размеру оптимизировать будем? 


Kallikanzarid, +ÑоглашайтеÑÑŒ - придумайте задачу, иÑпользующую как можно больше функций +CRT - printf например - пуÑть затрахаетÑÑ Ð¸ заодно поÑоревнуетÑÑ Ð² +оптимизации на реальных программах  smile 
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 20:36
Оптимизируем по времени выполнениÑ.
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 20:43
Kallikanzarid, а что не по размеру? Там в компилÑторе даже Ð¾Ð¿Ñ†Ð¸Ñ ÐµÑть, "оптимизировать по размеру", в MSVC по крайней мере
+
+ + + + + + +
Ðвтор: J0ker 9.12.2008, 20:46
GoldFinch, передергиваете, да?  smile Ð°Ñ€Ð³Ð£Ð¼ÐµÐ½Ñ‚Ñ‹ кончаютÑÑ?  smile 
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 20:50
GoldFinch, по +той проÑтой причине, что вÑе ЯВУ поÑтоÑнно держат в памÑти ÑобÑтвенный +рантайм, так что тут им конкурировать Ñ Ð»Ð¸ÑˆÐµÐ½Ð½Ñ‹Ð¼ оного аÑÑемблером +беÑÑмыÑленно. Тем более, что размер Ñкзешника в наши дни не оÑобенно +важен, тем более, еÑли Ñчет идет на килобайты.
+
+ + + + + + +
Ðвтор: J0ker 9.12.2008, 20:51
Kallikanzarid, можете ÑоглашатьÑÑ - ÑущеÑтвуют Ñпециальные ужатые верÑии CRT - http://www.microsoft.com/msj/archive/S569.aspx
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 20:52
J0ker, ну у ваÑ-то они уже давно закончилиÑÑŒ
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 20:54
J0ker, да ну, +зачем мне такие извращениÑ? У Ð¼ÐµÐ½Ñ 1 гиг памÑти, полгига видеопамÑти, 2 +мега кÑш второго уровнÑ, 150 гигов диÑкового проÑтранÑтва и безлимитный +интернет на 1 мегабит - а Ñ Ð±ÑƒÐ´Ñƒ боротьÑÑ Ñ Ð»Ð¸ÑˆÐ½Ð¸Ð¼Ð¸ килобайтами +Ñкзешника?
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 20:55
Kallikanzarid, Ñто ÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð² какой Ñфере объем не критичен, кое где четверть метра Ñто очень много

Добавлено через 55 Ñекунд
Цитата(Kallikanzarid @  9.12.2008,  20:54 Ðайти цитируемый поÑÑ‚)
J0ker, +да ну, зачем мне такие извращениÑ? У Ð¼ÐµÐ½Ñ 1 гиг памÑти, полгига +видеопамÑти, 2 мега кÑш второго уровнÑ, 150 гигов диÑкового +проÑтранÑтва и безлимитный интернет на 1 мегабит - а Ñ Ð±ÑƒÐ´Ñƒ боротьÑÑ Ñ +лишними килобайтами Ñкзешника? 

поменьше бы таких программиÑтов...
+
+ + + + + + +
Ðвтор: J0ker 9.12.2008, 20:56
Цитата(Kallikanzarid @ 9.12.2008,  20:54)
J0ker, +да ну, зачем мне такие извращениÑ? У Ð¼ÐµÐ½Ñ 1 гиг памÑти, полгига +видеопамÑти, 2 мега кÑш второго уровнÑ, 150 гигов диÑкового +проÑтранÑтва и безлимитный интернет на 1 мегабит - а Ñ Ð±ÑƒÐ´Ñƒ боротьÑÑ Ñ +лишними килобайтами Ñкзешника?

так Ñ Ð¿Ñ€ÐµÐ´Ð»Ð°Ð³Ð°ÑŽ взÑть и задачу поÑложнее - чтоб функций из CRT было побольше задейÑтвовано
чел +же не понимает, что как только понадобитÑÑ Ð¸Ñпользовать что-то +поÑложней - то придетÑÑ Ð»Ð¸Ð±Ð¾ Ñамому вÑе ручками пиÑать (пуÑть +затрахаетÑÑ), либо подключать ту-же CRT - а результат по размеру буде +ÑтремитьÑÑ Ðº общему - может тогда въедет, что такое мазохизм  smile

Добавлено через 1 минуту и 44 Ñекунды
Цитата(GoldFinch @  9.12.2008,  20:55 Ðайти цитируемый поÑÑ‚)
Kallikanzarid, Ñто ÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð² какой Ñфере объем не критичен, кое где четверть метра Ñто очень много

а, проÑтите мое любопытÑтво, ГДЕ?
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 21:02
Цитата

так Ñ Ð¿Ñ€ÐµÐ´Ð»Ð°Ð³Ð°ÑŽ взÑть и задачу поÑложнее - чтоб функций из CRT было побольше задейÑтвовано

Ðе, +Ñто уже ниже поÑÑа. Лучше взÑть вычиÑлительную задачу, но Ñ +иÑпользованием маÑÑивов. Рто Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð½Ðµ дала развернутьÑÑ Ñ€Ð°Ñкрутке +циклов и автоматичеÑкой векторизации :-(

Добавлено через 1 минуту и 51 Ñекунду
Цитата

поменьше бы таких программиÑтов... 

Как +Ñказать. Я хотел плакать, когда узнал, как разработчики ОС Minuet +гордÑÑ‚ÑÑ Ñвоим TCP-Ñтеком. Именно тем фактом, что им удалоÑÑŒ Ñделать +TCP-Ñтек. Ðа аÑÑемблере.
+
+ + + + + + +
Ðвтор: GoldFinch 9.12.2008, 21:16
J0ker, вы когданить видели например графичеÑкую ОС ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ð»ÐµÐ·Ð°ÐµÑ‚ на диÑкету?

Kallikanzarid, а ты Ñделал Ñвой TCP-Ñтек чтобы так говорить? Или знаеш как его Ñделать?
+
+ + + + + + +
Ðвтор: Kallikanzarid 9.12.2008, 21:22
Цитата

J0ker, вы когданить видели например графичеÑкую ОС ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ð»ÐµÐ·Ð°ÐµÑ‚ на диÑкету?

Kallikanzarid, а ты Ñделал Ñвой TCP-Ñтек чтобы так говорить? Или знаеш как его Ñделать? 

1) Я уже давно не видел ни одной Ð´Ð¸Ñкеты.
2) Ðет. ÐœÐµÐ½Ñ Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð½Ðµ интереÑовал. Однако Ñ Ð·Ð½Ð°ÑŽ, что в никÑах Ñти Ñтеки были, еще когда Ð¼ÐµÐ½Ñ Ð½Ð° Ñвете не было.

ЗЫ: так новый раунд будет? Ты уже выбрал задачу?
+
+ + + + + + +
Ðвтор: J0ker 9.12.2008, 21:23
Цитата(GoldFinch @  9.12.2008,  21:16 Ðайти цитируемый поÑÑ‚)
J0ker, вы когданить видели например графичеÑкую ОС ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ð»ÐµÐ·Ð°ÐµÑ‚ на диÑкету?

а зачем? у Ð¼ÐµÐ½Ñ Ð¸ флоповода-то нету  smile 
зато еÑть Ñтааааарый флеш-драйв купленный лет 5-6 назад размером 512 метров  smile 
и, +еÑли мне не изменÑет памÑть, размер даже 5-ти дюймового диÑка был 360кБ +в пору моей молодоÑти (извините, перфокарты зацепил только чуть-чуть) - +так размер CRT вÑе равно меньше значительно, а вÑÑŽ функциональноÑть +иначе вам придетÑÑ Ñ€ÑƒÑ‡ÐºÐ°Ð¼Ð¸ пиÑать и вы вÑе равно придете к тому-же +размеру   smile

Добавлено через 1 минуту и 57 Ñекунд
Цитата(GoldFinch @  9.12.2008,  21:16 Ðайти цитируемый поÑÑ‚)
а ты Ñделал Ñвой TCP-Ñтек чтобы так говорить? Или знаеш как его Ñделать? 

Ñ Ð½Ðµ пиÑал
но знаю как
не вижу здеÑÑŒ никакого геройÑтва кроме гемороÑ
задача-то тривиальнаÑ, вÑе Ñтандарты еÑть
+
+ + + + + + +
Ðвтор: Mayk 10.12.2008, 08:25
клйовый тред, в избранное!

Цитата(GoldFinch @  10.12.2008,  00:55 Ðайти цитируемый поÑÑ‚)

поменьше бы таких программиÑтов... 

ДейÑтвительно кому нужны программеры которые вмеÑто того чтобы пиÑать 2 чаÑа на аÑме будут пиÑать пÑть минут на Ñи?

Цитата(GoldFinch @  10.12.2008,  01:16 Ðайти цитируемый поÑÑ‚)
вы когданить Ð²Ð¸Ð´ÐµÐ»Ð¸ Ð½Ð°Ð¿Ñ€Ð¸Ð¼ÐµÑ€ графичеÑкую ОС ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ð»ÐµÐ·Ð°ÐµÑ‚ на диÑкету?

Ðу Ñ Ð²Ð¸Ð´ÐµÐ»  MenuetOS.  Ðе  Ð·Ð½Ð°ÑŽ что Ñ Ð½Ð¸Ð¼ еще можно Ñделать кроме как "увидеть". 
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 13:07
Цитата(Kallikanzarid @  9.12.2008,  21:22 Ðайти цитируемый поÑÑ‚)
так новый раунд будет? Ты уже выбрал задачу? 

близкую +к реальной задачу значит... допуÑтим так... надо разработать программу +Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ SFX архивов, размер раÑпаковщика определÑетÑÑ Ñледующими +требованиÑми:
архивы хранÑÑ‚ÑÑ Ð² библиотеке архивов на хоÑтинге Ñ Ð¼Ð°ÐºÑимально доÑтупным диÑковым проÑтранÑтвом 100Мб,
файлов примерно 500-550,
размер 1 файла в диапазоне от 10 до 350кБ, 
раÑпаковщик должен быть не более 20% от размера файла

Ñ†ÐµÐ»ÐµÐ²Ð°Ñ +ОС - 32разрÑÐ´Ð½Ð°Ñ WinXP, Ñ‚.к. задача теÑÑ‚Ð¾Ð²Ð°Ñ - никакой реальной +упаковки не требуетÑÑ, при запуÑке раÑпаковщик извлекает файл в +указанную пользователем папку.
+
+ + + + + + +
Ðвтор: Kallikanzarid 10.12.2008, 14:06
Что, на производительноÑть аÑма ты забил? Зачем опÑть гнешь Ñвои 2кб? Блин, будь мужчиной уже  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 15:01
Kallikanzarid, +так или иначе, каким бы производительным твой код не был, Ñ Ð²Ñегда могу +извлечь код из твоего бинарника, оптимизировть и заÑунуть в Ñвой. Там +вÑегда будет что оптимизировать, и Ñ Ñ…Ð· о каком Ñоревновании тут может +идти речь.
+
+ + + + + + +
Ðвтор: Kallikanzarid 10.12.2008, 15:06
Слив заÑчитан  smile 
+
+ + + + + + +
Ðвтор: Mayk 10.12.2008, 15:21
Цитата(GoldFinch @  10.12.2008,  19:01 Ðайти цитируемый поÑÑ‚)
Ñ Ð²Ñегда могу извлечь код из твоего бинарника, оптимизировть и заÑунуть в Ñвой.

Ñто равноÑильно заÑвлению "компилÑтор пишет аÑмовÑкий код лучше чем Ñ" ÐºÑтати
+
+ + + + + + +
Ðвтор: mes 10.12.2008, 15:44
Цитата(GoldFinch @  10.12.2008,  15:01 Ðайти цитируемый поÑÑ‚)
Kallikanzarid, +так или иначе, каким бы производительным твой код не был, Ñ Ð²Ñегда могу +извлечь код из твоего бинарника, оптимизировть и заÑунуть в Ñвой. Там +вÑегда будет что оптимизировать, и Ñ Ñ…Ð· о каком Ñоревновании тут может +идти речь. 

Да неблагодарное +Ñто дело, Ñравнивать Ñзыки без ориентировки на определенную задачу. Так +же как например взÑть руÑÑкий и английÑкий. Имхо, у руÑÑкого больше +форм и возможноÑтей выражениÑ
- но Ñто его преимущеÑтво ÑвлÑетÑÑ Ð½ÐµÐ´Ð¾Ñтатком, при техничеÑком применение. ÐнглийÑкий же в данном аÑпекте более удобен.

Также +cpp, c, asm разнÑтьÑÑ Ð¾Ñ‚ абÑтрактноÑти мыÑли к ее точному применению. +Да на аÑме можно заточить алгоритм под конкретную архитектуру .. +Ñ€ÐµÑˆÐµÐ½Ð½Ð°Ñ Ñта же задача на Ñи будет переноÑима, 
а на cpp к тому +же даÑÑ‚ гарантию проверки типов. Т.е отдалÑÑÑÑŒ от точноÑти разъÑÑÐ½ÐµÐ½Ð¸Ñ +алгоритма конкретной машины, мы приходим к тому что машина (компилÑтор) +Ñама подгонÑет и контролирует 
код, а результативный код +удовлетворÑет выдвинутым задачей требованиÑм (в одних ÑлучаÑÑ… критичен +размер, в других ÑкороÑть, в третьих безопаÑноÑть кода и Ð´Ð»Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ +поддержа и раÑширение)

ТеÑты показывают что c/cpp не отÑтает от +аÑма по ÑкороÑти. Да по размеру бинарника аÑм +выигрывает,  Ð·Ð°Ñ‚о проигрывает в ых Ñферах Ñ Ñ‡ÐµÐ»Ð¾Ð²ÐµÑ‡ÐµÑким +фактором..  
Ðу а  ÑкороÑть и размер длѠ"потребительÑких" Ð·Ð°Ð´Ð°Ñ‡ уже давно переÑтали быть решающим требованиÑми..

Я +Ñчитаю что макÑимальный Ñффект можно добитьÑÑ ÐµÑли правильно подобрать +инÑтрумент/Ñ‹ к текущей задаче (прокопать  Ñ‚унель под +Ла-Маншем лопатой конечно геройÑтво, но задача Ñ‚Ñ€ÑƒÐ´Ð½Ð¾Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ð¼Ð°Ñ Ð¸ не +Ð¸Ð¼ÐµÑŽÑ‰Ð°Ñ ÑмыÑла), но также не надо забывать, что Ñзыки вÑего лишь +инÑтрумент, и оÑновное завиÑит от того наÑколько им хорошо умеет +пользоватьÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸ÑÑ‚  Ðµ



+
+ + + + + + +
Ðвтор: Kallikanzarid 10.12.2008, 15:47
mes, Ñ‚ÑÑÑ! Ðе порть знатный Ñрачег.
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 16:37
Цитата(mes @  10.12.2008,  15:44 Ðайти цитируемый поÑÑ‚)
Ñзыки вÑего лишь инÑтрумент, и оÑновное завиÑит от того наÑколько им хорошо умеет пользоватьÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸ÑÑ‚

ага, +так или иначе, подобное Ñравнение упираетÑÑ Ð½Ðµ в Ñравнение +производительноÑти программы вручную напиÑанной на аÑме против +производительноÑти программы напиÑанной на ЯВУ, а в маÑтерÑтво одно и +другого программиÑта.
в конце концов компилÑтор ЯВУ  - +инÑтрумент и ничто не мешает взÑть автоматичеÑки Ñгенерированный им код +и вручную доработать его до идеала.
+
+ + + + + + +
Ðвтор: mes 10.12.2008, 17:10
Цитата(GoldFinch @  10.12.2008,  16:37 Ðайти цитируемый поÑÑ‚)
инÑтрумент и ничто не мешает взÑть автоматичеÑки Ñгенерированный им код и вручную доработать его до идеала. 

такой ÑпоÑоб (еÑли конечно Ñ€ÑƒÑ‡Ð½Ð°Ñ Ð´Ð¾Ð²Ð¾Ð´ÐºÐ° необходимa) также приÑутÑтвует в данной цитате :

Цитата(mes @  10.12.2008,  15:44 Ðайти цитируемый поÑÑ‚)
макÑимальный Ñффект можно добитьÑÑ ÐµÑли правильно подобрать инÑтрумент/Ñ‹

 smile 
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 17:17
а вÑетаки +программирование на аÑме ничуть не медленнее Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° С++, +даже быÑтрее Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ времени ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ проекта и компилÑции. +опÑть же на .ехешку в 1кб Ñмотреть приÑтно
Код

include 'win32a.inc'
include 'hll.inc'
format PE GUI 4.0
section 'AllInOne' code readable writeable executable
IMPORTS KERNEL32.DLL, <ExitProcess,GetLastError,FormatMessageA>,\
        USER32.DLL,   <SetWindowPos,FindWindowA,MessageBoxA>
        psMsg dd ?
entry $
      FindWindowA("GcxPropertyPageSite.Window.1",0)
            test eax,eax
            jz .err
      SetWindowPos(eax,HWND_TOPMOST,0,0,0,0,SWP_SHOWWINDOW+SWP_NOSIZE)
            test eax,eax
            jz .err
      ExitProcess()
.err:
      GetLastError()
      FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM+FORMAT_MESSAGE_IGNORE_INSERTS,\
                        0,eax,0,psMsg,0,0)
      MessageBoxA(0,[psMsg],0,0)
      ExitProcess()
+
+ + + + + + +
Ðвтор: J0ker 10.12.2008, 17:19
Цитата(mes @  10.12.2008,  15:44 Ðайти цитируемый поÑÑ‚)
ТеÑты показывают что c/cpp не отÑтает от аÑма по ÑкороÑти.

теÑты +показывают, что как только задача ÑталкиваетÑÑ Ñ Ñ€ÐµÐ°Ð»ÑŒÐ½Ð¾Ñтью +многоÑдерного процеÑÑора, то только гений может оптимизировать код +лучше компилÑтора

Добавлено через 1 минуту и 24 Ñекунды
Цитата(GoldFinch @  10.12.2008,  16:37 Ðайти цитируемый поÑÑ‚)
ничто не мешает взÑть автоматичеÑки Ñгенерированный им код и вручную доработать его до идеала

мешает, мешает
Ñм. выше
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 17:23
J0ker, здравый +ÑмыÑл подÑказывает что кодогенератор твоего компилÑтора тоже люди +пиÑали, напиÑать менее универÑальный но более Ñффективный не проблема
+
+ + + + + + +
Ðвтор: mes 10.12.2008, 17:23
Цитата(GoldFinch @  10.12.2008,  17:17 Ðайти цитируемый поÑÑ‚)
а +вÑетаки программирование на аÑме ничуть не медленнее Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ +на С++, даже быÑтрее Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ времени ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ проекта и +компилÑции. опÑть же на .ехешку в 1кб Ñмотреть приÑтно

еÑли +программа длѠ Ñ€ÐµÑˆÐµÐ½Ð¸Ñ мелкой задачи то трудно оценить.. Ð +вот например ÑоÑтавить браузер или тот же Ñамый компилÑтор ? думаю мало +кто из программиÑтов отважитÑÑ Ð·Ð°Ñ‚ÐµÑть такой проект на аÑме , +хотѠ"герои" Ð±ÐµÐ·ÑƒÑловно еÑть )
+
+ + + + + + +
Ðвтор: J0ker 10.12.2008, 17:24
Цитата(GoldFinch @  10.12.2008,  17:17 Ðайти цитируемый поÑÑ‚)
а +вÑетаки программирование на аÑме ничуть не медленнее Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ +на С++, даже быÑтрее Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ времени ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ проекта и +компилÑции

издеваешьÑÑ, да?  smile 
+
+ + + + + + +
Ðвтор: mes 10.12.2008, 17:28
Цитата(GoldFinch @  10.12.2008,  17:23 Ðайти цитируемый поÑÑ‚)
напиÑать менее универÑальный но более Ñффективный не проблема 

Да +ÑущеÑтвует куча компилÑторов, некоторые заточны под универÑальноÑть, +другие под конкретную архитектуру и можно выбрать тот, который больше +подходит smile 
+
+ + + + + + +
Ðвтор: J0ker 10.12.2008, 17:30
Цитата(GoldFinch @ 10.12.2008,  17:23)
J0ker, здравый ÑмыÑл подÑказывает что кодогенератор твоего компилÑтора тоже люди пиÑали

только не в пример нам лучше знающие оÑобенноÑти процеÑÑоров - Ñто во-первых
во-вторых, +логика раÑÐ¿Ð°Ñ€Ð°Ð»Ð»ÐµÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ð½Ð°Ñтолько Ñложна, что даже люди из во-первых +не в ÑоÑтоÑнии оптимизировать более-менее Ñложный код - они Ð´Ð»Ñ Ñтого +напиÑали умную программу, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñто делает - она называетÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñтор

Добавлено через 1 минуту и 18 Ñекунд
Цитата(GoldFinch @  10.12.2008,  17:23 Ðайти цитируемый поÑÑ‚)
напиÑать менее универÑальный но более Ñффективный не проблема 

Ñ Ð¿ÐµÑ€Ð²Ñ‹Ð¼ ÑоглаÑен
Ñо вторым нет - Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ-менее Ñложного кода - Ñм.выше

Добавлено через 9 минут и 18 Ñекунд
Ñ Ð¼Ð½Ð¾Ð³Ð¾ раз ÑталкивалÑÑ Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñ‹Ð¼Ð¸ Ñпорами
и +еÑли лет 10 назад еще можно было показать, что программа, напиÑÐ°Ð½Ð½Ð°Ñ Ð½Ð° +аÑÑемблере более производительна, то как только поÑвилиÑÑŒ многоÑдерные +процеÑÑоры, Ñто Ñтало практичеÑки невозможно - разборы полетов +показали, что компилÑтор может раÑкидать инÑтрукции так, что они хорошо +параллелÑÑ‚ÑÑ - при Ñтом логика оказываетÑÑ Ð½Ð°Ñтолько Ñложна, что ни +один человек не в ÑоÑтоÑнии такое напиÑать, а Ñкобы беÑÑмыÑленные Ñ +Ñ‚.з. человека операции (например замена одного оператора парой других, +выполнÑющихÑÑ Ð·Ð°Ð²ÐµÐ´Ð¾Ð¼Ð¾ медленней) приводит к повышению +производительноÑти - что обуÑловлено опÑть-таки раÑпараллеливанием
+
+ + + + + + +
Ðвтор: Kallikanzarid 10.12.2008, 17:47
Цитата

Ñ Ð¼Ð½Ð¾Ð³Ð¾ раз ÑталкивалÑÑ Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñ‹Ð¼Ð¸ Ñпорами
и +еÑли лет 10 назад еще можно было показать, что программа, напиÑÐ°Ð½Ð½Ð°Ñ Ð½Ð° +аÑÑемблере более производительна, то как только поÑвилиÑÑŒ многоÑдерные +процеÑÑоры, Ñто Ñтало практичеÑки невозможно - разборы полетов +показали, что компилÑтор может раÑкидать инÑтрукции так, что они хорошо +параллелÑÑ‚ÑÑ - при Ñтом логика оказываетÑÑ Ð½Ð°Ñтолько Ñложна, что ни +один человек не в ÑоÑтоÑнии такое напиÑать, а Ñкобы беÑÑмыÑленные Ñ +Ñ‚.з. человека операции (например замена одного оператора парой других, +выполнÑющихÑÑ Ð·Ð°Ð²ÐµÐ´Ð¾Ð¼Ð¾ медленней) приводит к повышению +производительноÑти - что обуÑловлено опÑть-таки раÑпараллеливанием

Ты имел ввиду конвеерные ÑуперÑкалÑрные процеÑÑоры? Рто применительно к мультиÑдерноÑти ты напиÑал хню smile
+
+ + + + + + +
Ðвтор: J0ker 10.12.2008, 19:50
Цитата(Kallikanzarid @  10.12.2008,  17:47 Ðайти цитируемый поÑÑ‚)
Ты имел ввиду конвеерные ÑуперÑкалÑрные процеÑÑоры? Рто применительно к мультиÑдерноÑти ты напиÑал хню

о млÑ, точно, переклинило  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 20:10
J0ker, береш +Ñправочник Ðгнера Фога, и пишешь код не хуже того что генерит +компилÑтор. КомпилÑтор хорош тем что избавлÑет от рутины за Ñчет +неидеальной кодогенерации и отÑутÑÑ‚Ð²Ð¸Ñ ÑредÑтв ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð¾Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸ÐµÐ¹
Может там и будет офигенное раÑпараллеливание, но вот идиотÑкие неоптимальноÑти типа 
push reg32 / fld dword [m32real] / fstp dword [esp]
вмеÑто
push dword [m32real]
вÑеравно оÑтанутÑÑ
+
+ + + + + + +
Ðвтор: Kallikanzarid 10.12.2008, 20:15
GoldFinch, +пользуÑÑÑŒ Ñлучаем, еще раз предлагаю тебе второй раунд. Докажи, что +аÑм-код Ð´Ð»Ñ FP или целочиÑленных вычиÑлительных методов и правда +выполнÑетÑÑ Ð±Ñ‹Ñтрее компилируемого. Ð’Ñе, что тебе нужно Ñделать - Ñто +выбрать адекватный алгоритм и напиÑать ее реализацию, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð»Ð° +бы быÑтрее моей на С++.
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 20:34
Kallikanzarid, выложи Ñвой бинарник Ñ ÐµÐ³Ð¾ оптимизирую и "мой" ÐºÐ¾Ð´ будет работать быÑтрее.
ЕÑли +говорить о Ñравнении различных реализаций, то вÑе упретÑÑ Ð² то чье +программерÑкое маÑтерÑтво лучше, так Ñ Ð¸ на С++ напишу код быÑтрее +твоего ^^
+
+ + + + + + +
Ðвтор: mes 10.12.2008, 20:36
Цитата(GoldFinch @  10.12.2008,  20:34 Ðайти цитируемый поÑÑ‚)
так Ñ Ð¸ на С++ напишу код быÑтрее твоего

заочно оценили ?  Ñ‡ÑƒÐ´ÐµÑа  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 20:41
mes, ага, Ñ Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ вероÑтноÑтью 95%
+
+ + + + + + +
Ðвтор: Kallikanzarid 10.12.2008, 20:41
GoldFinch, нет +уж - назвалÑÑ Ð³Ñ€ÑƒÐ·Ð´ÐµÐ¼ - полезай в кузов. Либо чиÑто на аÑÑемблере - ты +ведь его Ñторонник - либо чиÑто на С++. Во втором Ñлучае, ÑÑное дело, +будут беÑприÑтраÑтные Ñудьи, которые будут получать иÑходники и +батники, запуÑкающие компилÑтор, и выдавать результаты; Ð¸Ñходники +друг от друга будем хранить в тайне. Ð’ любом Ñлучае, Ñ ÑƒÐ¶Ðµ Ñутки жду от +Ñ‚ÐµÐ±Ñ Ð·Ð°Ð´Ð°Ñ‡Ñƒ.
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 21:14
Kallikanzarid, так мы что теÑтировать будем? "С++ vs аÑм" Ð¸Ð»Ð¸ "Kallikanzarid vs GoldFinch"?
+
+ + + + + + +
Ðвтор: Kallikanzarid 10.12.2008, 21:16
Давай второе.
+
+ + + + + + +
Ðвтор: GoldFinch 10.12.2008, 21:39
Ñ Ñ‚Ð¾Ð¶Ðµ Ñуп както не очень.

вобщем Ñ Ð·Ð°Ð²Ñ‚Ñ€Ð° вечером те теÑтовый алгоритм и методику Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ Ð½Ð°Ð¿Ð¸ÑˆÑƒ

деÑÑÑ‚Ð°Ñ Ñтраничка однако....
+
+ + + + + + +
Ðвтор: J0ker 10.12.2008, 22:13
Цитата(GoldFinch @  10.12.2008,  20:10 Ðайти цитируемый поÑÑ‚)
J0ker, береш Ñправочник Ðгнера Фога, и пишешь код не хуже того что генерит компилÑтор.

yуууу
"береш Ñправочник по шахматам и обыгрываеш КаÑпарова"  smile 

Цитата(GoldFinch @  10.12.2008,  20:10 Ðайти цитируемый поÑÑ‚)
КомпилÑтор хорош тем что избавлÑет от рутины за Ñчет неидеальной кодогенерации и отÑутÑÑ‚Ð²Ð¸Ñ ÑредÑтв ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð¾Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸ÐµÐ¹

Ñ Ð²Ð°Ð¼ уже показал, что "неидеальноÑть" Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾ вызвана непониманием - вы упорно игнорируете Ñтот факт  smile 

Цитата(GoldFinch @  10.12.2008,  20:10 Ðайти цитируемый поÑÑ‚)
Может там и будет офигенное раÑпараллеливание, но вот идиотÑкие неоптимальноÑти типа 
push reg32 / fld dword [m32real] / fstp dword [esp]
вмеÑто
push dword [m32real]
вÑеравно оÑтанутÑÑ 

упрÑмÑтво - доÑтоинÑтво Ñами знаете кого  smile 
Ñ Ð²Ð°Ð¼ знаете что Ñоветую
напишите-ка +на аÑÑемблере вычиÑлительный модуль BIONIC'а и запуÑтите - а мы +поÑмотрим, примет ли Ñервер +ваши "оптимизированные" Ð²Ñ‹Ñ‡Ð¸ÑлениѠ smile 
+
+ + + + + + +
Ðвтор: GoldFinch 11.12.2008, 21:13
Kallikanzarid, +вобщем Ñ Ð¿Ð¾Ð´ÑƒÐ¼Ð°Ð»-подумал, даже на форуме поÑпрашивал на каком алгоритме +может загнутьÑÑ Ð¡++ в отличие от аÑма, да только подходÑщего ответа не +получил, да и Ñам ничего толкового не придумал... Что попроще и 100% +Ñработает - неинтереÑно, а то что Ñложно  - Ñамому долго +пиÑать. ПришлоÑÑŒ придумать нормальную задачу, близкую к реальной.

Ðужно напиÑать функцию bool __stdcall Tick(float x);
Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ð¸Ð¼Ð°ÐµÑ‚ на вход некореллированную поÑледовательноÑть равномерно раÑпределенных вещеÑтвенных чиÑел Xi, 0<=Xi<A<=1
ДлѠi Ð¾Ñ‚ 0 до N-1 параметр раÑпределениѠA Ñ€Ð°Ð²ÐµÐ½ 1, Ð´Ð»Ñ Ñ‡Ð¸Ñел Ñ i от N Ð´Ð¾ 2*N-1 параметр раÑпределениѠA Ñ€Ð°Ð²ÐµÐ½ 0.5
Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° возвращать 1 при i<N+D Ð¸ 0 при i>=N+D, где D - задержка ÑÑ€Ð°Ð±Ð°Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸.
ПроизводительноÑть функции оцениваетÑÑ Ð¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ времени работы функции T Ð·Ð° одну итерацию на задержку ÑÑ€Ð°Ð±Ð°Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ D, либо Ñуммой времени выполнениѠD Ð¸Ñ‚ераций, Ñто значение должно быть минимально.
ДопуÑкаетÑÑ Ð½Ðµ более 5% ложных Ñрабатываний (возврата 0 при i<N), причем N>100, первые 100 тактов ложные ÑÑ€Ð°Ð±Ð°Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ ÑчитаютÑÑ.

Код функции Ñледует оформить в виде DLL и Ñделать Ñту функцию ÑкÑпортируемой, Ð¸Ð¼Ñ Ð½Ðµ важно, импортировать будем по ординалу.
Ð’ DllMain() можно инициализировать переменные, выделить памÑть и проч.

Программа теÑтированиÑ, одна и та же Ð´Ð»Ñ Ð²Ñех длл, будет загружать длл, вызывать Ñту функцию и замерÑть ее Ð²Ñ€ÐµÐ¼Ñ Ð¸ÑполнениÑ.

Примерный код программы теÑтированиÑ:
Код

int main()
{
//переменные
bool (__stdcall *Tick)(float x); //указатель на функцию

unsigned int RandSeed = GetTickCount(); //Ñдро ГПСЧ
float x; //входное данное функции
bool y; //выходное данное функции
int i; //Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñ†Ð¸ÐºÐ»Ð°
int N=10000; //длительноÑть Ñтапов измерениÑ

__int64 /*long long*/ Start; //Ñчетчик тактов до вызова
__int64 /*long long*/ Fin; //Ñчетчик тактов поÑле вызова
int Latency=0; //иÑÐºÐ¾Ð¼Ð°Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ° ÑрабатываниÑ, в тактах

(FARPROC &) Tick = GetProcAddressA(
    LoadLibraryA("showdown.dll"), //Ð¸Ð¼Ñ Ð´Ð»Ð» можно брать и из командной Ñтроки
    0x80000001 //Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ Ð¾Ñ€Ð´Ð¸Ð½Ð°Ð»Ð¾Ð¼ 1
    );
//менÑем приоритет процеÑÑа
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);

//начинаем 1й Ñтап измерений - разгон функции
for (i=0;i<100;i++) //первые 100 итераций
{
    RandSeed = 134775813 * RandSeed + 1; //получаем новое чиÑло ГПСЧ
    x=RandSeed/4294967295.0; //Ñлучайное чиÑло от 0<=x<1
    (*Tick)(x);
};
//начинаем 2й Ñтап измерений - отлов ложных Ñрабатываний
for (i=0;i<N-100;i++) //итерации от 100 до N
{
    RandSeed = 134775813 * RandSeed + 1; //получаем новое чиÑло ГПСЧ
    x=RandSeed/4294967295.0; //Ñлучайное чиÑло от 0<=x<1
    y=(*Tick)(x);
    if(0==y)return -1; //возврат ошибки - ложное Ñрабатывание
};
//начинаем 3й Ñтап измерений - замер производительноÑти
for (i=0;i<N;i++) //итерации от N до 2*N, или пока Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ðµ Ñработает (вернет 0)
{
    RandSeed = 134775813 * RandSeed + 1; //получаем новое чиÑло ГПСЧ
    x=(RandSeed/2)/4294967295.0; //Ñлучайное чиÑло от 0<=x<0.5
    Sleep(1); //ждем Ñледующего кванта времени
    __asm {
        cpuid //"чиÑтим трубы" (U&V pipes ;))
        rdtsc //читаем Ñчетчик тактов ЦПУ
        mov dword ptr [Start],eax //ÑохранÑем в переменную младший dword
        mov dword ptr [Start+4],edx //ÑохранÑем в переменную Ñтарший dword
    };
    y=(*Tick)(x);
    __asm {
        cpuid //"чиÑтим трубы" (U&V pipes ;))
        rdtsc //читаем Ñчетчик тактов ЦПУ
        mov dword ptr [Fin],eax //ÑохранÑем в переменную младший dword
        mov dword ptr [Fin+4],edx //ÑохранÑем в переменную Ñтарший dword
    };
    Latency = Latency + (Fin-Start);
    if(0==y)
    { //Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñработала
        return Latency; //возврат времени задержки
    };
};
return -2; //возврат ошибки - пропуÑк ÑрабатываниÑ
};
//Программа возвращает результат в ÑиÑтемной переменной ERRORLEVEL (в тактах ЦПУ)

Размер бинарника, иÑпользуемой виртуальной памÑти неограничен, но будем Ñчитать что прога будет работать на компе Ñ 512-1Гб ОЗУ


Что-то может Ñледует откорректировать, чтото уточнить, в целом думаю задача получилаÑÑŒ Ð½ÐµÐ¿Ð»Ð¾Ñ…Ð°Ñ =)
+
+ + + + + + +
Ðвтор: Kallikanzarid 11.12.2008, 21:50
Уточни парочку моментов:
1) Речь идет о нормальном раÑпределении Ñлучайных чиÑел?
2) +Что именно должна делать функциÑ? Как Ñ Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÑŽ, ее выходное значение +завиÑит от того, какой по Ñчету раз ее вызвали и Ñовершенно не завиÑит +от передаваемого аргумента? Или Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾ понÑл?
3) Как Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ значение N?
+
+ + + + + + +
Ðвтор: GoldFinch 11.12.2008, 22:22
1) о равномерном, но можно Ñделать и нормальным. 
Цитата(GoldFinch @  11.12.2008,  21:13 Ðайти цитируемый поÑÑ‚)
некореллированную поÑледовательноÑть равномерно раÑпределенных вещеÑтвенных чиÑел Xi

2) Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° определить что параметры входной поÑледовательноÑти изменилиÑÑŒ и вмеÑто 1 вернуть 0
например она должна вычиÑлÑть матожидание или диÑперÑию
фактичеÑки ее выходное значение должно както завиÑеть от предидущих значений
Как +именно завиÑеть - решать тебе. Чтобы хранить Ñти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ +иÑпользовать глобальные переменные, маÑÑивы, буферы, что захочешь.
3) N и i ей знать не надо, только принимать входные чиÑла Xi, както накапливать их и возвращать

ВыглÑдит Ñто так
Код

i   N-5  N-4  N-3  N-2  N-1  N    N+1  N+2  N+3  N+4  N+5
A   1    1    1    1    1    0.5  0.5  0.5  0.5  0.5  0.5
Xi  0.9  0.2  0.6  0.7  0.1  0.3  0.4  0.1  0.2  0    0.1
y   1    1    1    1    1    1    ?    ?    ?    0    0
                                  <--- +D --->

+
+ + + + + + +
Ðвтор: J0ker 11.12.2008, 22:31
что-то мне мнитÑÑ, что производительноÑть в данной задаче будет упиратьÑÑ Ð² алгоритм, а не в то, на чем он напиÑан  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 11.12.2008, 22:33
J0ker, ну Kallikanzarid же Ñказал что ему интереÑнее "Kallikanzarid vs GoldFinch" Ñ‡ÐµÐ¼ "С++ vs аÑм"...
+
+ + + + + + +
Ðвтор: J0ker 11.12.2008, 22:56
ну в таком Ñлучае мне +не ÑÑно, зачем вы нивелировали задачу 5-ÑŽ процентами - ИМХО ÑкороÑть и +качеÑтво Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ входить в оценку +результата умÑтвенного онанизма оппонентов  smile 
+
+ + + + + + +
Ðвтор: GoldFinch 11.12.2008, 23:00
J0ker, а как +тогда оценку раÑÑчитывать? тем более что еÑли не задавать PлÑ, то +возможно будут Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñ Ð¼Ð°ÐºÑимальным быÑтродейÑтвием и +принципом "угадал\неугадал"
+
+ + + + + + +
Ðвтор: J0ker 11.12.2008, 23:06
Цитата(GoldFinch @  11.12.2008,  23:00 Ðайти цитируемый поÑÑ‚)
J0ker, а как тогда оценку раÑÑчитывать?

ну так об Ñтом надо и договариватьÑÑ

Цитата(GoldFinch @  11.12.2008,  23:00 Ðайти цитируемый поÑÑ‚)
тем +более что еÑли не задавать PлÑ, то возможно будут Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñ +макÑимальным быÑтродейÑтвием и принципом "угадал\неугадал" 

да, +но качеÑтво тогда ÑнизитÑÑ Ð²Ð´Ð²Ð¾Ðµ, при Ñтом в формуле должна учаÑтвовать +задержка D - в Ñтом Ñлучае такой алгоритм Ñтанет заведомо проигрышным
+
+ + + + + + +
Ðвтор: GoldFinch 11.12.2008, 23:19
J0ker, проще задать вероÑтноÑть не менее 95% чем выдумывать Ñомнительные интегральные критерии
+
+ + + + + + +
Ðвтор: Kallikanzarid 12.12.2008, 07:30
GoldFinch, лучше взÑть нормальное раÑпределение. И иÑпользовать не Ñамодельную ÑвриÑтику, а boost::random.

Рвообще задача очень интереÑнаѠ smile 
+
+ + + + + + +
Ðвтор: GoldFinch 12.12.2008, 08:59
Kallikanzarid, ок, а какие Ð¼Ð°Ñ‚Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¸ диÑперÑии?
и по какому алгоритму нормальное раÑпределение получать будем?
+
+ + + + + + +
Ðвтор: Kallikanzarid 12.12.2008, 12:29
Предлагаю матожидание - 0.70 и 0.25, а диÑперÑию - 0.3 и 0.15.
Ð”Ð»Ñ +гененрации предлагаю взÑть хорошо извеÑтную библиотеку boost::random +- http://www.boost.org/doc/libs/1_37_0/libs/random/index.html
+
+ + + + + + +
Ðвтор: GoldFinch 12.12.2008, 20:18
Цитата(Kallikanzarid @  12.12.2008,  12:29 Ðайти цитируемый поÑÑ‚)
Предлагаю матожидание - 0.70 и 0.25, а диÑперÑию - 0.3 и 0.15.

мм.... а почему именно такие чиÑла? выглÑдит Ñто неÑколько неудобно:
http://spreadsheets.google.com/pub?key=pneb3GWHrZ5iTmapONJT2ew&oid=1&output=image

впрочем, чтобы и нет...

мне библиотека boost::random, но еÑли она дейÑтвительно удобнаÑ, можно и ее применить

вот +еще какое предложение... еÑли учитывать что чиÑло итараций (N) до +момента Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð»Ð¾, то возникает Ñоблазн +Ñделать в программе буфер чиÑел Ñтак на 10000000 и пиÑать вÑÑŽ входную +поÑледовательноÑть в него, не заботÑÑÑŒ о том что буфер может +закончитьÑÑ. Вот чтобы такого небыло, предлагаю Ñчитать N значительно +большим размера любого буфера.
+
+ + + + + + +
Ðвтор: Kallikanzarid 12.12.2008, 20:37
boost::random можешь +оценить Ñам - по ÑÑылке еÑть туториал. Ð Ð¼Ð°Ñ‚Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¸ диÑперÑии лучше +и правда Ñделать подальше друг от друга  smile

Добавлено через 2 минуты и 53 Ñекунды
ÐаÑчет N ÑоглаÑен, давай и правда Ñделаем его доÑтаточно большим.
+
+ + + + + + +
Ðвтор: Ln78 12.12.2008, 20:48
Цитата(J0ker @  11.12.2008,  22:31 Ðайти цитируемый поÑÑ‚)
что-то мне мнитÑÑ, что производительноÑть в данной задаче будет упиратьÑÑ Ð² алгоритм, а не в то, на чем он напиÑан  


Цитата(GoldFinch @  11.12.2008,  22:33 Ðайти цитируемый поÑÑ‚)
J0ker, ну Kallikanzarid же Ñказал что ему интереÑнее "Kallikanzarid vs GoldFinch" Ñ‡ÐµÐ¼ "С++ vs аÑм"... 


Давно на форум не заходил, тут такие бойкие новички поÑвилиÑÑŒ.

GoldFinch, +а почему ты Ñам задачу Ñтавишь? Это вÑÑ‘ равно, как еÑли бы, например, Ñ +предложил тебе такой вариант: давай Ñ Ð·Ð°Ð³Ð°Ð´Ð°ÑŽ чиÑло, а потом Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ +поÑоревнуемÑÑ, кто его отгадает за меньшее чиÑло попыток. smile ÐŸÑ€Ð¾Ñите J0ker'а, чтобы он вам незавиÑимо от Ð²Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡Ñƒ поÑтавил.
+
+ + + + + + +
Ðвтор: Kallikanzarid 12.12.2008, 21:11
Ln78, еÑли что, еще один раунд проведем. Рвот ÑудьÑ, который будет принимать длл-ки и говорить результаты, нам не помешает.
+
+ + + + + + +
Ðвтор: J0ker 12.12.2008, 21:12
Цитата(Ln78 @  12.12.2008,  20:48 Ðайти цитируемый поÑÑ‚)
ПроÑите J0ker'а, чтобы он вам незавиÑимо от Ð²Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡Ñƒ поÑтавил. 

не, ÑпаÑибо
у Ð¼ÐµÐ½Ñ Ð½ÐµÑ‚ Ñпециального математичеÑкого образованиѠ smile 

Цитата(GoldFinch @  12.12.2008,  20:18 Ðайти цитируемый поÑÑ‚)
то возникает Ñоблазн Ñделать в программе буфер чиÑел Ñтак на 10000000 и пиÑать вÑÑŽ входную поÑледовательноÑть в него

какой в Ñтом ÑмыÑл, еÑли допуÑÑ‚Ð¸Ð¼Ð°Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ° 5%
предлагаю +Ñделать раÑширÑемый буфер, равный 10% от текущего i - ИМХО единÑтвенное +логичное решение - раÑпределение-то заранее извеÑтно
+
+ + + + + + +
Ðвтор: Kallikanzarid 12.12.2008, 21:13
GoldFinch, предлагаю также вÑтроить в теÑтирующую программу опциональный индикатор прогреÑÑа.
+
+ + + + + + +
Ðвтор: GoldFinch 12.12.2008, 21:14
Ln78, а Ñ Ð²Ð¾Ð¾Ð±Ñ‰Ðµ на Ñтот форум не заходил, а тут зашел - а тут вот как интереÑно))))
Kallikanzarid +Ñам попроÑил чтобы Ñ Ð¿Ð¾Ñтавил задачу, Ñ ÐµÐµ и поÑтавил. Впринципе Ñ Ð½Ðµ +против того чтобы задачу Ñтавила 3Ñ Ñторона, еÑли конечно задача будет +интереÑнаÑ.

К Ñлову Ð´Ð»Ñ Ð¼ÐµÐ½Ñ Ñта задача доÑтаточно ÑложнаÑ, Ñ‚.к. Ñ ÑƒÐ¶Ðµ уÑпел благополучно забыть ÑтатиÑтику (еÑли было что забывать %))

Kallikanzarid, да не вопроÑ, можно еще Ñразу Ñделать 100 запуÑков алгорима, циклом:
for(int nTests=0; nTests<100; nTests++)
{
hDll=LoadLibrary("showdown.dll");
... //i-й теÑÑ‚
FreeLibrary(hDll);
};
+
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)
\ No newline at end of file diff --git a/docs/l2client_internal_hooks_files/Thumbs.db b/docs/l2client_internal_hooks_files/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..44dd0753663108a69cea58d24be0e5b114a174f1 GIT binary patch literal 22528 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 + +404 Not Found + +

Not Found

+

The requested URL /< was not found on this server.

+
+
Apache/2.2.3 (Debian) PHP/5.2.0-8+etch13 Server at forum.vingrad.ru Port 8080
+ diff --git a/docs/l2client_internal_hooks_files/angel.gif b/docs/l2client_internal_hooks_files/angel.gif new file mode 100644 index 0000000000000000000000000000000000000000..913732e8e1907a8adf31c179909b6d8af8aa36b1 GIT binary patch literal 1668 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 Wos8olt&G?zZf6d>u>k`DZ~g;d9bi@f literal 0 HcmV?d00001 diff --git a/docs/l2client_internal_hooks_files/dash1.gif b/docs/l2client_internal_hooks_files/dash1.gif new file mode 100644 index 0000000000000000000000000000000000000000..831019e6d0e2fd624dfb4b948dabd09829b4e20e GIT binary patch literal 17671 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 literal 0 HcmV?d00001 diff --git a/docs/l2client_internal_hooks_files/good.gif b/docs/l2client_internal_hooks_files/good.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c45cc24f2e1edf8232862c7077796a39e59dce4 GIT binary patch literal 4164 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 literal 0 HcmV?d00001 diff --git a/docs/l2client_internal_hooks_files/nea.gif b/docs/l2client_internal_hooks_files/nea.gif new file mode 100644 index 0000000000000000000000000000000000000000..a55908452e884d59763167e797c6bad789106ff6 GIT binary patch literal 3591 zcmeH}drVVj7{lU5FnaPZsa0-aT%nFzg!W`BntD6_ZnwjY`-6{2g#$_>Cmi@tZ{`>Og zP$dHsfCmLnJyLnR;PIg3DSg~huTyNR+gqHQ_^@B%X(b*HNpdqJ zx4Oi`PI14D=WY=Udmj#ay`FP~$K&qryEHU3*yrrJ)lTGPN^Ld8R=vtuhv#SFbp_ba zX@R#-oVOD1?{}_GBl=Dgs+HmvGjFh2&`^jM=g9}{y!;H@uHg+1_6;=)3Ud>N`y`$& zvAs@1=3=Lq>tAp8-=hyzLx?fWyIoPhO2 zt<>sD^ai7eEG;WHS5%syrJ_n(v(H>rf1tJ$Ha3(Bh}1}#EOIU(u<3)DlKE5l@#(YP zWd@(rM#m)0K{y-)XRzOki9Q)3UW8zv7huSg&}rh3hM>jst~5g6Lb{eu2&xrH5;2J0 z8y>-V(`SlmnaPM7bv6EpOh`h(fE7E9*X-xBqamBmI_ePj{5L{)}ki9aU+Q>Vh7@ zv9#2TJ6aZNlCv=T;|Qo@GTxh;*3%BHjKL)RDOG1D%APKqygTh{#nKAFcL%>m3fv}? zrC6lyu36m^iLz2m30Ya0H!f;u!ZbO;M~)A;fDITlIgwfkbXtJvb)-QFmD&n(X_cv3 zGg_MSYH64ngF2vt2t-TCGSZ+!EtM7e5(Ds8b9~hT5CS0m02Zo-qxbC5`7WAbKG;EHUZ~+ESCrP+4v! zp|$Fz#OARI8($Sz=NGu+xxh+VU3?Fzlz-Txj&*4BFJqvmo zPKmzKY#H{inC|PWX5;|ptvT6>N^G!$h)#vcwTfwys{bkI7=M=cTcW&s+wr=C@gX;J?UAriVS^W@1v@mK7u6Vn_DHm~UR@C27`L4R^9+ zSGT8gHHq;i5RpAeR7&*gi0>u$L%PIlyN%AsR0t~SD?*2yn@RN PFbN7MYDN;BffxS;mdRS< literal 0 HcmV?d00001 diff --git a/docs/l2client_internal_hooks_files/offtopic.gif b/docs/l2client_internal_hooks_files/offtopic.gif new file mode 100644 index 0000000000000000000000000000000000000000..d84d692c81fc0554b76e612d15e87f0daf7881db GIT binary patch literal 1096 zcmV-O1h@M~Nk%w1VJ-kO0OkMy|NsC0{{a60|Nj600RR60{{R30{{R30|Ns8~??d|C zAN=7U{^TM3;vxU#BLC(h{^cV7%|xA#ux9*8Rx_p(y|uu&l>Q~8t%**?8zDF#~IkS7s8|!=DZZ;yAB1J~ zzZT@Y7R{;@)36n=lM=0u5~qq0ntl-8un^v{5Z$j3+pZAVtPtO_5#qNJ;WkYI(TL~cxOC%X+L{vKx|G2XiErYP#n{P zQ@3YBr&l|dOEc^1>)YGgJ3Bi80RjL2{{R30000000000000000A^8LW004RbEC2ui z04@MC06+)-fO>+1goTEOh>3!E2#t=92mq3k0FaG#n0K0aii3=el#-y72$*)7sHvNs zi=YRhub2mSv#PVTw5gn|yn1ygKu!w3tv~0k)eOCa?&CmikTo8Au2d{2ob_V2NgGz zV2R@^g9HhM4NI@rd%Cz^!L0l0&Aq$#@69AKjigqoQ@jP4{-gR2-@o&2p)QTP&+AqA zTE!~`tB^lFwyH$u30n5KHx*d2v?X9Gqoh^IB>4R$9$g2mx6eNhX@a4K=y4SmRbBx^ zRxY{VlHr2B=!1|XbIm1?U8&51;wSZm$Pb5i(Q+e)Gme6lUw+L9-jGCwXB~E$X_pM8 zVt`pO0|+CK@PZFjOqW@bf|zkaO$%FcD$|1~!3K5;nEr;6-51 zywe*VCQ$QPHrPDCjWO=Llb!9vDV~|}C1`9eUk%cb_Y#_m?hM_S<4m+ff!VWb6aYPqqcw(fI Of~Wxo7;3N*2mm|4?(3!i literal 0 HcmV?d00001 diff --git a/docs/l2client_internal_hooks_files/smile.gif b/docs/l2client_internal_hooks_files/smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ce5a4fe4e505c2d6b03438657e544b5e7c472da GIT binary patch literal 1065 zcmZ?wbhEHb6k(8Hc*exwU?TAUnZkb{c%<;_mdvkvGVjhwe7h#|>72y7PoFANZ8Ad@ zp6wG^IJ5TIE|FKqBwig7Sva*aH#)L!>g(VQwkMt#tyoZe99xNuo5>;?gFOL?4N5 zy*#-A9G$5wg|P;i9vr(mIo@58IkZ&d);5u)b6eN-3e2n(SUR(DX{W%%*3^lGJnL#% z7S?j~=5mxKnw(oDa&MEsrilWpT6q|TAW;0z?dKX2?CcoeYNTht%n0;?;y+oZ(#)I^ zh4Rdj3z`ElZEjFgA0QWC{RF=&A|Sz!KJCWrM0cSg`uOZtEsoUwQExUgg%BT-JJ5K zD%#pA7Sf#E!n{J3T5N0%NurmI*e1AGC2cH5L zi*7{$|NMi^e`O*f6jm^^l(O^kDKMOOVz1KTt6&x|Jg|XXf?=L?lY^{#Cxd_i$HT;V zW}G|$GkDsWnAo^=&j@-RaAaX&X6N9rEjYl?q9AIMApNDAwV9nwK*8Wc17jPPjg^7& zmxt~A!s0R(I~o*QSjF}2WM&C0bmbHf6V*EMf#GrJGG1Ph9*Knu8drEVu(C3NLy8|1 zQfv(D44e#Xz>rdJaB*Q}bzx^~a$#m3{8_K^|&;G z^@^bCl?Cc$U}$b_0tQuQcXM}3OMm}_-mdOx9W8CG5FM1*ro)KhQo^>el53ka073X1 AjsO4v literal 0 HcmV?d00001 diff --git a/docs/l2client_internal_hooks_files/wacko.gif b/docs/l2client_internal_hooks_files/wacko.gif new file mode 100644 index 0000000000000000000000000000000000000000..057e7edbd4a1900f6e5be4860accf69ae5833a55 GIT binary patch literal 1010 zcmZ?wbhEHb6lIWPc*e-!U?T7z2%afSWMTPrOXe2~%ezmX7#JA-KT@bnwaN71SU9ux z(>aM}`$SR$WE?~U?j73n?V8N9T_UdziQKz)>)Jw|OXrT|hH^}7P5iWrp)}Ft+O>1f zo;_MPwerz6fy_{aPnRTK9g}#)!g6jV$Gvp|u^u9cJ`%s~$y8=Kjk$MU}whwS0g$;iSbjQHERG)5zG?QrCf7rbAE4#GFN4okfs`*IP=jO+?}QoxUqix)hAvi4uPGh|+Zy8cGwbm- zF*v@9IXIDt5fNhS3|tJXK*+!@*ucQR#K73p%GlY}+1}Q|(1=jQ3RJ}jRwWEn#pu`C z*2LJ-*4@+F+0@sBq>crsjvK5_qJe?2nSrUPg`u6XtE0KEx4)}%Qd=Lgp)5e9+ziZM zs~H*nT3Y=W7}~m8I=cO^8z~No(k2FmmX3DD?vAEzM!)vn)=9l!>si6kk8q|aNG$^+ UBT#*7dq+oGS8so>Un7Gx03@~};{X5v literal 0 HcmV?d00001 diff --git a/docs/l2client_internal_hooks_files/wizard.gif b/docs/l2client_internal_hooks_files/wizard.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a6d11ea424c59caab6d6179957570989fb0e54a GIT binary patch literal 13644 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 i#wZ1FK?*; literal 0 HcmV?d00001 diff --git a/docs/l2ct2_KeyPacket.rawbytes b/docs/l2ct2_KeyPacket.rawbytes new file mode 100644 index 0000000000000000000000000000000000000000..6cb48e093f42b1304d5b278d74466954c4083dd0 GIT binary patch literal 25 ecmb1S&||z6F{f*u_rx2F3=9k)%y4_=$vOaErU$S9 literal 0 HcmV?d00001 diff --git a/docs/l2ct2_gameserver.pcap b/docs/l2ct2_gameserver.pcap new file mode 100644 index 0000000000000000000000000000000000000000..854f5e0e12e473c78fc6e1a621fc74ea63138d2a GIT binary patch literal 1599 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

-T_r1!j_Ogu(<+2{ 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 GKnDN?AbFPn literal 0 HcmV?d00001 diff --git a/docs/loginpackets/AntiXOR_Init00.txt b/docs/loginpackets/AntiXOR_Init00.txt new file mode 100644 index 0000000..5d91266 --- /dev/null +++ b/docs/loginpackets/AntiXOR_Init00.txt @@ -0,0 +1,51 @@ +Âîññòàíîâëåíèå 0x00 ïàêåòà (ïîñëå ñíÿòèÿ blowfish): + +function AntiXOR(s:string):string; +var +i,key,b:integer; +begin +i:=length(s)-7; +move(s[i],key,4); +while i>7 do + begin + i:=i-4; + move(s[i],b,4); + b:=b xor key; + key:=key-b; + move(b,s[i],4); + end; +result:=s; +end; + +procedure Move ( const SourcePointer; var DestinationPointer; CopyCount : Integer ) ; + +============= XOR ----------------------- +public static void encXORPass(byte[] raw, final int offset, final int size, int key) + { + int stop = size-8; + int pos = 4 + offset; + int edx; + int ecx = key; // Initial xor key + + while (pos < stop) + { + edx = (raw[pos] & 0xFF); + edx |= (raw[pos+1] & 0xFF) << 8; + edx |= (raw[pos+2] & 0xFF) << 16; + edx |= (raw[pos+3] & 0xFF) << 24; + + ecx += edx; + + edx ^= ecx; + + raw[pos++] = (byte) (edx & 0xFF); + raw[pos++] = (byte) (edx >> 8 & 0xFF); + raw[pos++] = (byte) (edx >> 16 & 0xFF); + raw[pos++] = (byte) (edx >> 24 & 0xFF); + } + + raw[pos++] = (byte) (ecx & 0xFF); + raw[pos++] = (byte) (ecx >> 8 & 0xFF); + raw[pos++] = (byte) (ecx >> 16 & 0xFF); + raw[pos++] = (byte) (ecx >> 24 & 0xFF); + } \ No newline at end of file diff --git a/docs/loginpackets/GGAuthResponse_HellboundServer.txt b/docs/loginpackets/GGAuthResponse_HellboundServer.txt new file mode 100644 index 0000000..1ea1e89 --- /dev/null +++ b/docs/loginpackets/GGAuthResponse_HellboundServer.txt @@ -0,0 +1,4 @@ +2A // packet len - 42 bytes +0B +XX XX XX XX - SessionID (same from Init packet) +// rest is trash.... \ No newline at end of file diff --git a/docs/loginpackets/Init.txt b/docs/loginpackets/Init.txt new file mode 100644 index 0000000..25f33d2 --- /dev/null +++ b/docs/loginpackets/Init.txt @@ -0,0 +1,63 @@ +Êàæäûé ïàêåò ñîñòîèò èç ðàçìåðà ïàêåòà(2 áàéòà), òèïà ïàêåòà(1 áàéò) +è áëîêà ïàðàìåòðîâ(ïåðåìåííàÿ äëèíà).  äîïîëíåíèå ê ýòîìó, â ïàêåòàõ ñåðâåðà +àâòîðèçàöèè, â êîíöå äîáàâëÿåòñÿ êîíòðîëüíàÿ ñóììà è äîïîëíÿåòñÿ íóëÿìè òàê, +÷òîáû ðàçìåð ïàêåòà áûë êðàòåí 8-ìè áàéòàì. Êîíòðîëüíàÿ ñóììà ìîæåò +áûòü ðàññ÷èòàíà ñëåäóþùåé ôóíêöèåé: + +unsigned long checksum( unsigned char *packet, int count ) +{ + long chksum = 0L; + for( int i = 0; i < count; i += 4 ) chksum ^= *((unsigned long *)&raw[i]); + return chksum; +}; + + +Ïðîòîêîë lineage èñïîëüçóåò 6 ðàçíûõ òèïîâ äàííûõ: + +char – ìîæåò ïðèíèìàòü çíà÷åíèå îò -128 äî 127. Èìååò äëèíó 1 áàéò +short – ìîæåò ïðèíèìàòü çíà÷åíèå îò -32768 äî 32767. Èìååò äëèíó 2 áàéòà +int – ìîæåò ïðèíèìàòü çíà÷åíèå îò -2147483648 äî 2147483647. Èìååò äëèíó 4 áàéòà +int64 – ìîæåò ïðèíèìàòü çíà÷åíèå îò -9223372036854775808 äî 9223372036854775807. Èìååò äëèíó 8 áàéò. +float – ìîæåò ïðèíèìàòü çíà÷åíèå îò 2.22507e-308 äî 1.79769e+308. Èìååò äëèíó 8 áàéò +string – òåêñòîâàÿ ñòðîêà â þíèêîäå(UTF8). Êàæäàÿ áóêâà ïðåäñòàâëåíà äâóìÿ áàéòàìè, ïåðâûé áàéòîì êîä áóêâû, à âòîðîé – + íîìåð êîäîâîé òàáëèöû. Èíäèêàòîðîì êîíöà ñòðîêè ñëóæèò ñèìâîë ñ êîäîì 0. + + +00 - ðàçìåð ïàêåòà +00 - òèï ïàêåòà +07 82 67 5b - session ID +21 c6 00 00 - âåðñèÿ ïðîòîêîëà + +6a cf 4c f1 f1 9d 49 aa d0 06 +49 74 41 26 70 c5 3f 26 56 11 +f6 97 58 c3 df 98 0c 9e 98 7a +35 f8 b5 14 e2 60 5d b6 b4 92 +37 0c 31 59 09 df ff a6 3d bc +9b 09 db 88 50 9f 05 1f cb aa +52 40 13 9d a8 fc da 74 8f 99 +41 f0 19 4e ca 0b 40 b6 b9 ab +4a 45 85 ea 0a cf 5d 7c 03 e9 +06 fb cf ca be f7 a9 aa f8 3f +ec ef d5 da ec 9b dd 94 8b 7c +7c 57 9f 03 b7 45 86 21 ff 42 +b4 91 c3 c9 cc 7f 76 96 + - RSA êëþ÷ + +4e 95 dd 29 - +fc 9c c3 77 - +20 b6 ad 97 - +f7 e0 bd 07 - â êîììåíòàðèÿõ ðàçðàáîò÷èêîâ l2j ïðåäïîëàãàåòñÿ, + ÷òî ýòè ÷åòûðå ÷èñëà ñâÿçàíû ñ ÃÃ, âî + âñÿêîì ñëó÷àå îíè âñåãäà ïîñòîÿííû + +0a 6f cd 13 +40 ef 06 70 +d2 bd d 91 +f1 39 5c 11 - íîâûé êëþ÷ Blowfish, êîòîðûì íàì è ïðåäñòîèò + ïîëüçîâàòüñÿ äàëüøå ïðè îáùåíèè ñ + ëîãèíñåðâåðîì + +00 - êîíåö ïàêåòà + +79 50 92 10 5f d5 b7 f 4a 95 +df 7a fd 47 \ No newline at end of file diff --git a/docs/loginpackets/Init2.txt b/docs/loginpackets/Init2.txt new file mode 100644 index 0000000..1e9218a --- /dev/null +++ b/docs/loginpackets/Init2.txt @@ -0,0 +1,60 @@ + 1: 00 [0] + 4: AA BB CC DD [4-7] SessionID + 4: 21 C6 00 00 [8-11] ProtoVer +128: RSA public key Modulus [12-139] + 16: GG shit? [140-155] + 16: BF key [156-171] + 1: 00 [172] ? end of packet? + 10: some trash?? [173-182] + 4: XOR key [183-186] // invalid, XOR key is not last 4 bytes, it is previous dword + +ba 00 - ðàçìåð ïàêåòà +00 - òèï ïàêåòà +07 82 67 5b - session ID +21 c6 00 00 - âåðñèÿ ïðîòîêîëà + +6a cf 4c f1 f1 9d 49 aa d0 06 +49 74 41 26 70 c5 3f 26 56 11 +f6 97 58 c3 df 98 0c 9e 98 7a +35 f8 b5 14 e2 60 5d b6 b4 92 +37 0c 31 59 09 df ff a6 3d bc +9b 09 db 88 50 9f 05 1f cb aa +52 40 13 9d a8 fc da 74 8f 99 +41 f0 19 4e ca 0b 40 b6 b9 ab +4a 45 85 ea 0a cf 5d 7c 03 e9 +06 fb cf ca be f7 a9 aa f8 3f +ec ef d5 da ec 9b dd 94 8b 7c +7c 57 9f 03 b7 45 86 21 ff 42 +b4 91 c3 c9 cc 7f 76 96 + - RSA êëþ÷ + +4e 95 dd 29 - +fc 9c c3 77 - +20 b6 ad 97 - +f7 e0 bd 07 - â êîììåíòàðèÿõ ðàçðàáîò÷èêîâ l2j ïðåäïîëàãàåòñÿ, + ÷òî ýòè ÷åòûðå ÷èñëà ñâÿçàíû ñ ÃÃ, âî + âñÿêîì ñëó÷àå îíè âñåãäà ïîñòîÿííû +0a 6f cd 13 +40 ef 06 70 +d2 bd d 91 +f1 39 5c 11 - íîâûé êëþ÷ Blowfish, êîòîðûì íàì è ïðåäñòîèò + ïîëüçîâàòüñÿ äàëüøå ïðè îáùåíèè ñ + ëîãèíñåðâåðîì + +00 - êîíåö ïàêåòà +79 50 92 10 5f d5 b7 f 4a 95 +df 7a fd 47 + + + + + 1: 00 [0] + 4: AA BB CC DD [4-7] SessionID + 4: 21 C6 00 00 [8-11] ProtoVer +128: RSA public key Modulus [12-139] + 16: GG shit? [140-155] + 16: BF key [156-171] + 1: 00 [172] ? end of packet? + 4: xx xx xx xx [173,174,175,176] - padding to 8-byte len + 10: xxx xxx XOR XOR XOR XOR xxx xxx xxx xxx + [177 178 179 180 181 182 183 184 185 186] \ No newline at end of file diff --git a/docs/loginpackets/Init_L2J.cpp b/docs/loginpackets/Init_L2J.cpp new file mode 100644 index 0000000..9045788 --- /dev/null +++ b/docs/loginpackets/Init_L2J.cpp @@ -0,0 +1,60 @@ +/** + * Format: dd b dddd s + * d: session id + * d: protocol revision + * b: 0x90 bytes : 0x80 bytes for the scrambled RSA public key + * 0x10 bytes at 0x00 + * d: unknow + * d: unknow + * d: unknow + * d: unknow + * s: blowfish key + * + */ + +class Init: public L2LoginServerPacket +{ +private: + int _sessionId; + byte *_publicKey; + byte *_blowfishKey; + +public: + Init( L2LoginClient &client ) + { + this( client.getScrambledModulus(), client.getBlowfishKey(), client.getSessionId() ); + } + + Init( byte *publickey, byte *blowfishkey, int sessionId ) + { + _sessionId = sessionId; + _publicKey = publickey; + _blowfishKey = blowfishkey; + } + +protected: + /** + * @see com.l2jserver.mmocore.network.SendablePacket#write() + */ + @Override + void write() + { + writeC(0x00); // init packet id // 1 + + writeD(_sessionId); // session id // 1+4=5 + writeD(0x0000c621); // protocol revision // 5+4=9 + + writeB(_publicKey); // RSA Public Key // 9+128=137 + + // here must be unknown 16 bytes?? + + // unk GG related? + writeD(0x29DD954E); + writeD(0x77C39CFC); + writeD(0x97ADB620); + writeD(0x07BDE0F7); // // 137+16=153 + + writeB(_blowfishKey); // BlowFish key // 153+16=169 + writeC(0x00); // null termination ;) // 170? :\ + } +} diff --git a/docs/loginpackets/LoginOK_HellboundServer.txt b/docs/loginpackets/LoginOK_HellboundServer.txt new file mode 100644 index 0000000..90e7db0 --- /dev/null +++ b/docs/loginpackets/LoginOK_HellboundServer.txt @@ -0,0 +1,10 @@ +42 00 +03 +C7 41 0B 00 A4 01 B8 2A +00 00 00 00 00 00 00 00 +DA 07 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 +00 03 D8 6B F4 88 61 42 +4D CC 0A 01 4B 04 70 diff --git a/docs/loginpackets/PlayOK_HellboundServer.txt b/docs/loginpackets/PlayOK_HellboundServer.txt new file mode 100644 index 0000000..ca4b5d6 --- /dev/null +++ b/docs/loginpackets/PlayOK_HellboundServer.txt @@ -0,0 +1,5 @@ +1A 00 // packet size - 26 bytes +07 // packet code - LoginOK +8C BF 00 00 C7 41 0B 00 // Session Key #2 +09 2E 5C 18 41 04 00 // padding?? +1F 03 D4 57 00 44 B7 82 // checksum?? \ No newline at end of file diff --git a/docs/loginpackets/RequestAuthLogin_HellboundClient.txt b/docs/loginpackets/RequestAuthLogin_HellboundClient.txt new file mode 100644 index 0000000..b2c3a5f --- /dev/null +++ b/docs/loginpackets/RequestAuthLogin_HellboundClient.txt @@ -0,0 +1,34 @@ +ReceiveL2Packet(): Received plen byte 2; plen is: 00B2 (178) +ReceiveL2Packet(): Received full packet len 178 +ProcessClient(): rcvd 178 bytes of RequestAuthLogin packet from client. +SendL2Packet(): Sending 178 len packet (0xB2) +SendL2Packet(): All 178 (0xB2) bytes sent +ProcessClient(): resent 178 bytes of RequestAuthLogin packet to server. +L2LoginPacket::setDynamicBFKey(): set dynamic BF key of len = 16 +L2LoginPacket::decodeBlowfish(): using DYNAMIC BF KEY +L2LoginPacket::decodeBlowfish(): Decode2: 22 passes, 22 8-byte blocks +L2BasePacket::dumpToFile() begin +-- read_ptr : 2 +-- write_ptr : 178 +-- buffer_size : 256 +-- real_size : 178 +-- Packet size : 178 (B2 00) +-- Packet type : 0 (00) +-- ByteArray b : +B2 00 // packet len; 0xB2 = 178 +00 // RequestAuthLogin packet code (0) +43 66 40 9D EF 8D 54 50 6D 22 F7 C4 86 AA 98 08 \\ +AD BC F5 15 CC 7D DF C8 60 A8 1A 49 7E D9 1D A5 \\ +E7 D1 14 A6 9A B1 42 85 B1 C8 91 94 00 44 AF F7 \\ +18 F2 25 3C BD D6 D5 7C BE 63 CF 8A D6 B7 9A 18 |\ 128-bytes block with +8D EA D8 99 73 98 82 72 AF 53 D3 B8 0C E4 D6 54 |/ login/password [1..128] +95 E1 AF B1 F3 A1 A8 04 EF 55 1C B7 8E 4E BB 0F // +51 D0 49 90 39 E2 79 06 11 60 64 1E 67 88 6E 67 // +55 6A D8 DB 77 11 C4 44 39 48 2D E3 F8 A0 47 30 // +8D 30 12 00 // sessionID? maybe, from GGAuthResponse [129..132] +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 16 NULLs... [133..148] +08 00 00 00 00 00 00 00 00 00 00 // some 11 bytes... O_o [149..159] +0B 1B 28 3A 00 00 00 00 // checksum + 4 0x00 bytes padding ? [160..167] +00 00 00 00 00 00 00 00 // more 8 bytes padding [168..175] +L2BasePacket::dumpToFile() end +176 bytes data len + 2 bytes for packet size = 178 bytes \ No newline at end of file diff --git a/docs/loginpackets/RequestGGAuth_HellboundClient.txt b/docs/loginpackets/RequestGGAuth_HellboundClient.txt new file mode 100644 index 0000000..356f780 --- /dev/null +++ b/docs/loginpackets/RequestGGAuth_HellboundClient.txt @@ -0,0 +1,12 @@ +2a 00 // length .... 0x2A = 42 bytes... data length must be 40 bytes +07 // packet ID - RequestGGAuth // 1 // byte count +e2 76 b8 e3 // wtf? SessionID? // 5 +00 00 00 00 // 9 +00 00 00 00 // 13 +00 00 00 00 // 17 +00 00 00 00 // 21 +00 00 00 // 3 bytes - padding? // 24 // padded to 8-byte border +e4 e2 76 b8 // checksum? // 28 +00 00 00 00 // 32 // pad must end here!... why more 16 bytes?.. +00 00 00 00 // 36 +00 00 00 00 // 40 \ No newline at end of file diff --git a/docs/loginpackets/RequestServerList_HellboundClient.txt b/docs/loginpackets/RequestServerList_HellboundClient.txt new file mode 100644 index 0000000..e23d2f7 --- /dev/null +++ b/docs/loginpackets/RequestServerList_HellboundClient.txt @@ -0,0 +1,14 @@ +22 00 // packet size - 34 bytes +05 // packet type - RequestServerList +e0 43 ef 46 8e dc 83 f2 // sessionKey #1 +04 00 00 00 00 00 00 // some 7 bytes +b1 6a 9f 6c 00 00 00 00 // checksum and 4 0x00 bytes of checksum padding +00 00 00 00 00 00 00 00 // 8 0x00 bytes padding + +// logining to official server.... +22 00 +05 +C7 41 0B 00 F8 71 7D 00 +04 00 00 00 00 00 00 +05 3B 30 76 00 00 00 00 +00 00 00 00 00 00 00 00 diff --git a/docs/loginpackets/RequestServerLogin_HellboundClient.txt b/docs/loginpackets/RequestServerLogin_HellboundClient.txt new file mode 100644 index 0000000..049d915 --- /dev/null +++ b/docs/loginpackets/RequestServerLogin_HellboundClient.txt @@ -0,0 +1,11 @@ +-- Packet size : 34 (22 00) +-- Packet type : 2 (02) + +22 00 // packet size: 34 bytes (0x0022) +02 // packet type: RequestServerLogin +C7 41 0B 00 4B 34 ED 26 // sessionKey1 +09 // game server ID +00 00 00 00 00 00 // 6 0x00 bytes padding to 8-byte border +24 85 75 E6 00 00 00 00 // checksum + 4 0x00 bytes padding +00 00 00 00 00 00 00 00 // 8 0x00 bytes padding + diff --git a/docs/loginpackets/ServerList_HellboundServer.txt b/docs/loginpackets/ServerList_HellboundServer.txt new file mode 100644 index 0000000..efde844 --- /dev/null +++ b/docs/loginpackets/ServerList_HellboundServer.txt @@ -0,0 +1,196 @@ +L2BasePacket::dumpToFile() begin +-- Packet size : 250 (FA 00) +-- Packet type : 4 (04) + +FA 00 // packet size - 250 bytes +04 // packet type (ServerList) +0B // game servers count - 11 +09 // lastServer ? :) + +// repeated block for each server +01 // game server ID +D8 6B F4 82 // game server IP +61 1E 00 00 // game server port +00 // age limit? +01 // is_pvp? +6E 09 // players online (2414) +70 17 // max players (6000) +01 // is_up? 01 - up, 00 - down +00 00 00 00 00 + +// so, each server info is 1+4+4+1+1+2+2+1+5 = 21 bytes long + +// server #2.... +02 +D8 6B F4 85 +61 1E 00 00 +00 +01 +3F 02 +70 17 +01 +00 00 00 00 00 + +// server #3... +03 +D8 6B F4 88 +61 1E 00 00 +00 +01 +53 04 +70 17 +01 +00 00 00 00 00 + +// server #4... +04 +D8 6B F4 8B +61 1E 00 00 +00 +01 +56 03 +70 17 +01 +00 00 00 00 00 + +// server #5... +05 +D8 6B F4 8E +61 1E 00 00 +00 +01 +2D 03 +70 17 +01 +00 00 00 00 00 + +// server #6... +06 +CE 7F 9B 82 +61 1E 00 00 +00 +01 +73 03 +70 17 +01 +00 00 00 00 00 + +// server #7 +07 +CE 7F 9B 83 +61 1E 00 00 +00 +01 +19 05 +70 17 +01 +00 00 00 00 00 + +// server #8 +08 +CE 7F 9B 84 +61 1E 00 00 +00 +01 +96 05 +70 17 +01 +00 00 00 00 00 + +// server #9 (Teon?) +09 +CE 7F 91 A2 +61 1E 00 00 +00 +01 +77 12 // cur online: 4727 :) +70 17 // max online: 6000 +01 +00 00 00 00 00 + +// server #10 (Franz) +0A +CE 7F 91 A3 +61 1E 00 00 +00 +01 +22 0D // 3362 online +70 17 // 6000 max online +01 +00 00 00 00 00 + +// server #11 (Luna) +0B +CE 7F 91 A5 +61 1E 00 00 +00 +01 +75 0E +70 17 +01 +00 00 00 00 00 + +00 00 00 00 00 DA A9 B4 02 85 1A E1 26 E0 // where here is checksum...? + +L2BasePacket::dumpToFile() end + +======================================= +====== ServerList L2J ================= +======================================= + +3A 00 +04 +02 +01 + +01 +C1 54 1F 05 +61 1E 00 00 +00 +01 +02 00 +C8 00 +01 +00 00 00 00 00 + +02 +7F 00 00 01 +00 00 00 00 +00 +01 +00 00 +00 00 +00 +00 00 00 00 00 + +F7 07 49 // possibly padding +1C FD 67 F0 // wtf is here? padding O_o +73 3C 7C BD // here's checksum + +============================================== +L2J 1 server at 127.0.0.1:0000, now offline (online: 0/0) +22 00 +04 01 01 +01 +7F 00 00 01 +00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 55 E0 40 EB 2E E0 41 EB +========================================================================== +L2J 1 server at 127.0.0.1:7777, now online (online: 0/10) +22 00 +04 01 01 +01 +7F 00 00 01 +61 1E 00 00 +00 01 00 00 0A 00 01 +00 00 00 00 00 +A5 4A AA CE +B5 54 AA CE + +22 00 +04 01 01 +01 +7F 00 00 01 +61 1E 00 00 +00 01 00 00 0A 00 01 +00 00 00 00 00 +6A 46 BB C7 7A 58 BB C7 \ No newline at end of file diff --git a/docs/loginpackets/bugogo.txt b/docs/loginpackets/bugogo.txt new file mode 100644 index 0000000..bf4f713 --- /dev/null +++ b/docs/loginpackets/bugogo.txt @@ -0,0 +1,37 @@ +Login Server ready on 127.0.0.1:2106 +packet dump :o +1e 00 fa 57 88 8a 32 85 6b 5f d7 ed 27 f5 7d 1f a5 eb d7 ed 27 f5 7d 1f a5 eb 00 00 packet dump end :o +Wrong checksum from client: [127.0.0.1] + +packet dump :o (RequestGGAuth) +2a 00 // packet size - 42 bytes +07 1 / 1 +f2 d0 fd 1c 4 / 5 // must be sessionID +00 00 00 00 4 / 9 // \ +00 00 00 00 4 / 13 // | 16 bytes +00 00 00 00 4 / 17 // | of some shit :\ +00 00 00 00 4 / 21 // / +00 00 00 3 / 24 // 3 bytes, padded data to 8-byte border maybe? +1b f2 d0 fd 4 / 28 // 4 bytes checksum? +00 00 00 00 4 / 32 // here also pdded at 8byte-border, wtf is next? +00 00 00 00 4 / 36 // %( +00 00 2 / 38 // %( +packet dump end :o + +packet dump :o (RequestAuthLogin) +b2 00 00 19 89 27 f1 8f cc b9 8c 6f 2a 59 22 4a 11 cb a7 b3 ed fd fd 53 a8 1b f5 67 0c 2f 61 30 b5 03 76 df 48 b6 24 64 +34 45 a4 13 a4 83 72 53 cb 35 a8 4c 51 74 db c3 42 f6 90 b4 5d cb 59 ea ed e5 a4 9e 11 84 4f 07 ce 05 b0 91 23 c8 d3 8e +85 00 2a da d8 e3 d5 eb 76 42 0d 5b 93 88 8b 22 30 71 b8 3b 70 f1 d0 d1 19 62 71 06 90 7e e8 2f 1c 60 d6 11 94 65 7a 1e +d4 00 60 3e 96 fe 35 7b 74 0d 13 f2 d0 fd 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 +00 00 59 93 d1 d8 00 00 00 00 00 00 00 00 00 00 packet dump end :o + +RequestGGAuth +LoginCrypt::decrypt( offset 2, size 40 ) +packet dump: offset = 2; size = 40 +2a 00 +07 +2e 55 ae df +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 +d8 2e 55 ae +00 00 00 00 00 00 00 00 00 00 00 00 \ No newline at end of file diff --git a/docs/m00-la2shit.txt b/docs/m00-la2shit.txt new file mode 100644 index 0000000..2f3d769 --- /dev/null +++ b/docs/m00-la2shit.txt @@ -0,0 +1,1592 @@ +// LineAge II: breaking the laws +// publishing date: 17.07.06 +// darkgrey / d4rk@securitylab.ru +// m00.blackhat.ru + +I. Ââåäåíèå + +II. Login-ñåðâåð + + 1. Øèôðîâàíèå ïàêåòîâ + 2. Ñòðóêòóðà ïàêåòîâ + 3. Êîíñòðóêòîð RequestAuthLogin-ïàêåòîâ íà Ñè + +III. Game-ñåðâåð. + + 1. Ïðîöåññ àâòîðèçàöèè íà ñåðâåðå + 2. Øèôðîâàíèå ïàêåòîâ + 3. Ïðîòîêîë + 4. xID è ObjectID + 5. Ïðèìåðû ïàêåòîâ: + a) ñêóïêà/ïðîäàæà + b) ëè÷êà + c) OID è IID + d) ãîâîðèì ñ NPC íà ïðèìåðå ðàçó÷èâàíèÿ ñêèëëîâ + +IV. Ïðîáëåìû è êàê ìîæíî èõ èñïîëüçîâàòü + + 1. îòñóòñòâèå ëèìèòà íà êîë-âî ïîïûòîê àâòîðèçàöèè + 2. øèôðîâàíèå ïàêåòîâ + 3. Óäàë¸ííîå îïðåäåëåíèå âåðñèè lineage2 ñåðâåðà + 4. Óäàë¸ííîå "ïîäâåøèâàíèå" login-ñåðâåðà + 5. Êëîíèðîâàíèå + 6. Ñîçäàíèå "ìóòàíòîâ" è ñìåøåíèå ñêèëëîâ + 7. Áåññìåðòèå + 8. 'remote DoS' è ÷òî ýòî äà¸ò + 9. integer overflow â ñåòåâîì äâèæêå l2j + 10. SQL-injection + 11. Çàòî÷êà (èëè ñêàçêà î 100%-îì enchant'å) + 12. Ãåîäàòà (õîæäåíèå ñêâîçü ñòåíû) + 13. Ïðèêîë ñ SocialAction (0x1b) + 14. Áàã â Ride (0x6a) + 15. Âûêèäûâàåì èç èãðû ÷àðîâ + 16. Áàã ñ RequestRestartPoint (îæèâëåíèå è ïîáåã èç òþðüìû) + 17. Ðàçäåòü ÷óæîãî ïåðñîíàæà íå çíàÿ íè ëîãèíà, íè ïàðîëÿ - ðàçâå ýòî ðåàëüíî? + 18. Èòîã + +V. Áàãè íîâîãî ïîêîëåíèÿ + +VI. Ïàðà ñëîâ î Ñ4 + +VII. Ïîñëåñëîâèå + +VIII. Ññûëêè + +IX. Ïðèëîæåíèÿ ê ñòàòüå + + + +I. Ââåäåíèå. + +×òî æå òàêîå lineage? Ýòî ïðåäñòàâèòåëü íîâîìîäíîãî æàíðà (êëàññà?) èãðóøåê - MMORPG +(Massively Multiplayer Online Role-Playing Game). ß áû äàæå ñêàçàë îäèí èç ñàìûõ +óäà÷íûõ è ïîïóëÿðíûõ, åñëè íå ñàìûé =). Êîíå÷íî, òðóäíî ãîâîðèòü î ïîïóëÿðíîñòè ýòîé +èãðû, ò.ê. ïîñ÷èòàòü òî÷íîå êîëè÷åñòâî "âòÿíóâøèõñÿ" â lineage, íàâåðíîå, íåâîçìîæíî, +íî òàêèå ñåðâåðû êàê www.lineageii.ru (ñ ìàêñèìàëüíî çàðåãèñòðèðîâàííûì îíëàéíîì â +10 000 ÷åëîâåê) è îôôèöèàëüíûé www.lineage2.com (ñî âñåìè 100 000, ïðè òîì, ÷òî îí ïëàòíûé) +äàþò ïîíÿòü, ÷òî öèôðà äîëæíà áûòü âíóøèòåëüíîé. +Ñóòü èãðû çàêëþ÷àåòñÿ â òîì, ÷òî (êàê è â ëþáîé äðóãîé RPG) ó âàñ åñòü ñâîé ïåðñîíàæ è +îãðîìíûé ìèð, â êîòîðîì íóæíî äîáûâàòü äåíüãè, îäåæäó, îðóæèå, îïûò. Äëÿ òîãî, ÷òîáû â êîíå÷íîì +èòîãå äðàòüñÿ ñ òàêèìè æå êàê òû èãðîêàìè è òåøèòü ñâî¸ ñàìîëþáèå ïîáåäàìè. Íåêîòîðûì ëþäÿì, +ó êîòîðûõ íó íèêàê íå ëàäèòñÿ ðåàëüíàÿ æèçíü, îíà ïîçâîëÿåò ñàìîðåàëèçîâàòüñÿ â âèðòóàëüíîì ìèðå - +ñòàòü èçâåñòíûì âîèíîì è äàæå íàéòè íåâåñòó (äà, äåâóøåê â lineage èãðàåò òîæå íåìàëî). +Ñðåäè âñåõ îñòàëüíûõ online (äà è íå òîëüêî online) èãð, lineage ïîäêóïàåò ñâîåé +ãðàôèêîé. Ìíå ëè÷íî ïîíà÷àëó êàçàëîñü íåâåðîÿòíûì, ÷òî êòî-òî ñìîã ñîçäàòü òàêèå +÷óäåñíûå òð¸õìåðíûå êðàñîòû äëÿ ïðîñòîé èãðû. +Íî åñòü ó èãðû è ò¸ìíûå ñòîðîíû. Âî-ïåðâûõ, îíà èìååò ñâîéñòâî çàòÿãèâàòü. Ïðè÷¸ì íå +ïðîñòî çàòÿãèâàòü, à âûçûâàòü çàâèñèìîñòü, ñ êîòîðîé êðàéíå ñëîæíî áîðîòüñÿ. Âî-âòîðûõ, +ñàìè ïîíèìàåòå, â èíäóñòðèè, â êîòîðîé êðóòÿòñÿ ñîòíè òûñÿ÷ èãðîìàíîâ èç ïðàêòè÷åñêè +âñåõ ñëî¸â îáùåñòâà, äåëî áåç äåíåã íå îáîéä¸òñÿ (êàê è âñ¸ â íàøåé æèçíè). Âåäü ó +íåêîòîðûõ ëþäåé, èìåþùèõ ñåìüþ, ðàáîòó, ïðîñòî íåò âðåìåíè íà òî, ÷òîáû ìåñÿöàìè +ïðîêà÷èâàòü ñâîåãî ïåðñîíàæà äî íóæíîãî óðîâíÿ. Òàêàÿ ãåéìåðñêàÿ ïðîñëîéêà ïîðîäèëà +íà ñâåò ëè÷íîñòåé, êîòîðûå íà÷àëè ïðîäàâàòü èãðîâûå óðîâíè è âåùè çà ðåàëüíûå äåíüãè, +ñîçäàâ òåì ñàìûì íîâóþ íèøó â ìèðå lineage. Íà äàííûé ìîìåíò, â çàâèñèìîñòè îò âåëè÷èíû +ñåðâåðà (è ðåéòîâ), ñòîèìîñòü õîðîøî îäåòîãî ïåðñîíàæà âûñîêîãî óðîâíÿ ìîæåò âàðüèðîâàòüñÿ +îò 300$ (íà óìèðàþùåì www.antaras.ru) äî 5 000$ íà îôèöèàëüíîì ñåðâåðå. Ñàìîå ñìåøíîå- +ýòî ïîêóïêà âåùåé ó àäìèíèñòðàöèè òîãî èëè èíîãî ñåðâåðà. Âäóìàéòåñü, ãåéìåð ïëàòèò +N-íîå êîëè÷åñòâî óáèòûõ åíîòîâ çà òî, ÷òîáû àäìèí äîáàâèë 1 çàïèñü â áàçó äàííûõ èãðû. +Âîò êàê äåëàþò äåíüãè èç âîçäóõà. +×òî æå, ÿ ÷òî-òî óâë¸êñÿ îïèñàíèåì èãðû ) Ñêàçûâàåòñÿ ãîä ,íà íå¸ ïîòðà÷åííûé. +Áåçóñëîâíî, â ïîäîáíîé èíäóñòðèè (ãäå çàêðó÷åíû äåíüãè è òó÷è íàèâíûõ è, ïîðîé ãëóïûõ +ãåéìåðîâ) äåëî áåç íàñ - ïûòëèâûõ óìîâ - îáîéòèñü íå ìîæåò. Êòî-òî ïîêóïàåò ïåðñîíàæåé, +êòî-òî ñîçäà¸ò è ïðîêà÷èâàåò ñàì, ìû æå âûáèðàåì òðåòèé, íåïðîòîð¸ííûé ïóòü. +Äåëî â òîì, ÷òî çà íåñêîëüêî ëåò ñóùåñòâîâàíèÿ ýòîé èãðû, â íåé íå áûëî íàéäåíî íå îäíîé +óÿçâèìîñòè (çà èñêëþ÷åíèåì ñóãóáî èãðîâûõ áàãîâ), äëÿ íå¸ íå áûëî íàïèñàíî íå îäíîé ïðîãðàììû, +êîòîðàÿ ìîãëà áû îòêðûòü çëîóìûøëåííèêàì äîñòóï â ÷óæèå àêêàóíòû. À çíàåòå ïî÷åìó? +Ìíå êàæåòñÿ, ìîëîäûõ, íåîïûòíûõ áàãîèñêàòåëåé (ïîñòàìè êîòîðûõ ïåñòðèò bugtraq) îòòàëêèâàëî çëîå +øèôðîâàíèå ïàêåòîâ â lineage. Ïðè÷¸ì, äàæå â ðàñøèôðîâàííîì âèäå, îíè ïðåäñòàâëÿþò ñîáîé +áåñïîðÿäî÷íûé íàáîð ñèìâîëîâ. +Ìîæåò áûòü, ñòàðè÷êè ïîìíÿò ìîþ ñòàòüþ ïðî ïðîòîêîë êëèåíò-ñåðâåðíîãî âçàèìîäåéñòâèÿ è +óÿçâèìîñòè Half-Life (www.securitylab.ru/analytics/216301.php). Öåëüþ òîé ñòàòüè áûëî +îïèñàòü èãðó è ïðåäîñòàâèòü íà áëþäå÷êå ïî÷òè âñ¸, ÷åãî ÿ äîñòèã â å¸ èçó÷åíèè.  ýòîé æå ñòàòüå +ÿ ïîâåäàþ êàê æå ðàñøèôðîâûâàòü òðàôôèê lineage2, ðàññêàæó íåìíîãî îá îñîáåííîñòÿõ +ïðîòîêîëà, íó è ïðåäîñòàâëþ íåñêîëüêî íàðàáîòîê (êàê ñâîèõ òàê è ÷óæèõ), âñå îñòàëüíîå +ïóáëèêîâàòü íå áóäó, òàê êàê ïîâàëüíîå èñïîëüçîâàíèå îíîãî ìîæåò ïðèâåñòè ê õàîñó â ýòîì +ïðåêðàñíîì, ñáàëàíñèðîâàííîì è âïîëíå ñôîðìèðîâàâøåìñÿ âèðòóàëüíîì ìèðå =) + +ÂÍÈÌÀÍÈÅ. +1. ñðàçó ïðåäóïðåæäàþ, ÿ èíîãäà áóäó âîçâðàùàòüñÿ ê ñòàòüå ïðî half-life, èáî àíàëîãèè ïîìîãóò +âàì ëåã÷å ïîíÿòü íàïèñàííîå. Äà è ìíå ïèñàòü ïðîùå. +2. ñòàòüÿ ïèñàëàñü íà îñíîâå àíàëèçà ðàñøèôðîâàííûõ ïàêåòîâ è èçó÷åíèÿ èñõîäíîãî +êîäà "ñàìîïàëüíîãî" lineage2 ñåðâåðà l2j, íàïèñàííîãî íà ÿâå. Ñîîòâåòñòâåííî, ñòàòüÿ 100% +äåéñòâèòåëüíà äëÿ l2j, à äëÿ îôèöèàëüíîãî íàñòîëüêî, íàñêîëüêî l2j äåéñòâèòåëåí äëÿ íåãî =) +3. âñå èñõîäíèêè íàïèñàíû ïîä linux. Äëÿ êîìïèëÿöèè íóæíà ëèáëà blowfish. Ëèáëû èç openssl +package ïîäîéäóò ïðè ìàëåíüêîé ìîäèôèêàöèè êîäà. +4. êñòàòè î ìîäèôèêàöèè êîäà.  èñõîäíèêàõ, ïðåäîñòàâëåííûõ â ñòàòüå, åñòü íåáîëüøèå îøèáêè +â ëîãèêå, äàáû èñêëþ÷èòü èõ áåçäóìíîå èñïîëüçîâàíèå. Åñëè âû âíèêíåòå â ñòàòüþ, òî è ïîôèêñèòü +èõ íå áóäåò ïðîáëåìîé. +5. è ïîñëåäíåå. Ïîëíàÿ âåðñèÿ ñòàòüè áûëà äîñòóïíà äîëãîå âðåìÿ (ïîë ãîäà) òîëüêî îãðàíè÷åííîìó +÷èñëó ëþäåé è ñ âûõîäîì ñ4 âåðñèè lineage2 è ôèêñàìè áîëüøèíñòâà áàãîâ ðåçêî óñòàðåëà. +Ïðî Ñ4 ÿ ðàññêàæó íåìíîãî â êîíöå. + + +II. Login-ñåðâåð. + +Ââåäåíèå. +Íà÷í¸ì ñ òîãî, ÷òî ðàçðàáîò÷èêè lineage2 îòäåëèëè ëîãèí ñåðâåð îò èãðîâîãî, äàáû áîëåå ìåíåå +ðàçãðóçèòü è áåç òîãî çàáèòûé êàíàë èãðîâîãî ñåðâåðà. Êðîìå òîãî, ëîãèí ñåðâåð èìååò ñâîéñòâî +ïîâèñàòü (ïðè÷¸ì, ýòî íà÷àëîñü ñ ñ3 âåðñèè lineage è ïðîäîëæàåòñÿ ïî ñåé äåíü) è íå ïóñêàòü +ïîëüçîâàòåëåé íà ñåðâåð. Çàòî òå, êòî óæå èãðàþò, íå èñïûòûâàþò ñîâåðøåííî íèêàêîãî äèñêîìôîðòà =) +À âñëåäñòâèå îòñóòñâèÿ âñ¸ òåõ æå áàãîèñêàòåëåé, êîòîðûå ìîãëè áû íàéòè è âíÿòíî îáúÿñíèòü äåâåëîïåðàì, +ãäå æå âñ¸-òàêè çàêðàëñÿ áàã, îí îñòà¸òñÿ äî ñèõ ïîð íåïîôèêñàííûì. Òàê âîò, íå ñìîòðÿ íà âñþ ïðåëåñòü +èäåè ñ ðàçãðóçêîé èãðîâîãî êàíàëà, íàøè îòå÷åñòâåííûå àäìèíû óïîðíî ëåïÿò ëîãèí ñåðâåð íà îäíó ìàøèíó +âìåñòå ñ èãðîâûì. + +1. Øèôðîâàíèå ïàêåòîâ. +Äëÿ øèôðîâàíèÿ ïàêåòîâ, êîòîðûìè login-ñåðâåð îáìåíèâàåòñÿ ñ êëèåíòîì, lineage èñïîëüçóåò blowfish. +Äà, òîò ñàìûé àëãîðèòì, êîòîðûé áûë ðàçðàáîòàí Áðþñîì Øíåéåðîì â 1993 ãîäó. Ïðî blowfish âàæíî çíàòü, +÷òî ýòî ñèììåòðè÷íûé áëî÷íûé øèôð. Ñèììåòðè÷íûé - îçíà÷àåò, ÷òî àëãîðèòì èñïîëüçóåò 1 ñåêðåòíûé +êëþ÷, êîòîðûì è øèôðóþòñÿ/äåøèôðóþòñÿ äàííûå. À åñëè ãîâîðèòü êîíêðåòíî î blowfish, òî íà îñíîâå +ýòîãî êëþ÷à ãåíåðèðóþòñÿ 18 32-áèòíûõ ïîäêëþ÷åé è 4 ìàòðèöû ðàçìåðîì 256 32-áèòîâûõ ñëîâ êàæäàÿ. +Êîòîðûìè, â ñâîþ î÷åðåäü, øèôðóþòñÿ/äåøèôðóþòñÿ äàííûå. +Áëî÷íûé øèôð - îçíà÷àåò, ÷òî blowfish îáðàáàòûâàåò äàííûå áëîêàìè (ïî 8 áàéò). À åù¸ ýòî îçíà÷àåò, +÷òî åñëè öåëîñòíîñòü øèôðîòåêñòà áûëà íàðóøåíà, òî ÷àñòü ìû ïî-ëþáîìó ñìîæåì âîññòàíîâèòü. +Ïðèìåíèòåëüíî ê lineage, íóæíî ñêàçàòü, ÷òî êëþ÷, íà îñíîâå êîòîðîãî ãåíåðèðóþòñÿ ïîäêëþ÷è, +ÿâëÿåòñÿ êîíñòàíòîé è ÷¸òêî ïðîïèñàí â èñõîäíèêàõ l2j (âîò íà ÷¸ì ñûïàëèñü 99% èññëåäîâàòåëåé +lineage, êîòîðûå ïðåäïîëàãàëè, ÷òî êëþ÷ äîëæåí ïåðåäàâàòüñÿ â îäíîì èç ïàêåòîâ - ñì. ññûëêè â +êîíöå). Åù¸ âàæíî îòìåòèòü òî, ÷òî ïåðâûå 2 áàéòà äàííûõ ïàêåòà _íå_øèôðóþòñÿ_. +×òîæ, ñ øèôðîâàíèåì, ÿ äóìàþ, ìû ðàçîáðàëèñü. Èä¸ì äàëüøå. + +2. Ñòðóêòóðà ïàêåòîâ. +Ïåðâûå äâà áàéòà ïàêåòà (òå, êîòîðûå íå øèôðóþòñÿ) ñîäåðæàò äëèíó äàííûõ ïàêåòà (êàê è â halflife). +Ñëåäóþùèé áàéò íåñ¸ò â ñåáå èíôîðìàöèþ î òèïå ïàêåòà. Ëîãèí-ñåðâåð îáðàáàòûâàåò ïàêåòû: +0x00 - RequestAuthLogin (çàïðîñ íà àâòîðèçàöèþ - ñîäåðæèò ëîãèí è ïàðîëü) +0x02 - RequestServerLogin (çàïðîñ íà çàõîä íà ñåðâåð) +0x05 - RequestServerList (çàïðîñ íà ñïèñîê ñåðâåðîâ) +Íà îñòàëüíûå îí ïîïðîñòó íå îòâå÷àåò, îñòàâëÿÿ ëèøü çàïèñü â ëîãàõ. Êëèåíòîì æå îáðàáàòûâàþòñÿ +ïàêåòû ñëåäóþùèõ òèïîâ: +0x01 - àâòîðèçàöèÿ íå ïðîøëà +0x03 - âû óñïåøíî àâòîðèçîâàíû +0x04 - îòâåò íà RequestServerLogin +0x06 - îòâåò íà RequestServerList +À òàêæå íåñêîëüêî äîïîëíèòåëüíûå ïàêåòîâ î áàíå àêêàóíòà, ïðîâåðêè âåðñèè è òä - îíè ïðåäñòàâëåíû íèæå. +Ñëåäóþùèé áàéò ÿâëÿåòñÿ äîïîëíèòåëüíûì ê âûøåîïèñàííûì çàïðîñàì. Íàïðèìåð, åñëè ñåðâåð îòâåòèë +íàì íà çàïðîñ àâòîðèçàöèè ïàêåòîì òèïà 0x01, òî ñëåäóþùèé áàéò áóäåò ñîäåðæàòü ïðè÷èíó, ïî +êîòîðîé àâòîðèçàöèÿ íå ïðîøëà (äëÿ íàñ âàæíû: 0x03 - íåâåðíûé ëîãèí èëè ïàðîëü, 0x07 - êòî-òî óæå +þçàåò àêêàóíò, 0x11 - óñòàíîâëåí âðåìåííûé ïàðîëü). Íî íà ñàìîì äåëå ýòîò áàéò óæå íå ñîâñåì ñëóæåáíûé. +Íàïðèìåð, â RequestAuthLogin ïàêåòàõ ñ ýòîãî áàéòà íà÷èíàåòñÿ ëîãèí. +Äàëåå èä¸ò Í-íîå ÷èñëî áàéò, êîòîðûå óæå íå ÿâëÿþòñÿ óïðàâëÿþùèìè, à íåñóò èíôîðìàöèþ, îïðåäåëÿåìóþ +òèïîì ïàêåòà. Íó, íàïðèìåð, äëÿ "RequestAuthLogin" ýòî ïîëå ñîäåðæèò ëîãèí è ïàðîëü. +Âàæíîå ïðåäíàçíà÷åíèå èìåþò ïîñëåäíèå 8 áàéò ïàêåòà. Îíè ñîäåðæàò ÷åêñóìó âñåãî òîãî, ÷òî èä¸ò äî +íèõ, çà èñêëþ÷åíèåì îïÿòü æå ïåðâûõ äâóõ áàéò ïàêåòà. Êàêèì æå îáðàçîì âû÷èñëÿåòñÿ ýòà ñàìàÿ ÷åêñóììà? +Èç äàííûõ ïîî÷åð¸äíî îòäåëÿþòñÿ 32-áèòíûå ñëîâà. Ïåðâîå XOR'èòñÿ ñî âòîðûì. Ðåçóëüòàò ýòîé îïåðàöèè +XOR'èòñÿ ñî ñëåäóþùèì ñëîâîì è òàê äàëåå. Ïðèìåð âû÷èñëåíèÿ ÷åêñóììû áóäåò ïðîäåìîíñòðèðîâàí íèæå. + +3. Êîíñòðóêòîð ïàêåòîâ íà Ñè +×òîæ, ñî ñòðóêòóðîé ïàêåòîâ ìû ðàçîáðàëèñü, òåïåðü ìîæíî ðåàëèçîâàòü ïðîãðàììíî âñ¸, ÷òî áûëî +îïèñàííî âûøå. + +/* + + la2-example.c ~ LineAge2 c3 RequestAuthLogin packet constructor + + Helps to understand lineage2 authentification. + + darkgrey / m00.blackhat.ru + + ~broken +*/ + +#include "/usr/local/include/blowfish.h" + +// äëèíà êëþ÷à +#define KEY_LEN 20 +// äëèíà RequestAuthLogin ïàêåòà ïîñòîÿííà è ðàâíà AUTH_PKT_LEN + 2 +#define AUTH_PKT_LEN 0x30 + +// êëþ÷, íà îñíîâå êîòîðîãî ãåíåðèðóþòñÿ sub-keys (ïîäêëþ÷è) +char key[] = "[;'.]94-31==-&%@!^+]"; + +// ñòðóêòóðà bfkey, êîòîðàÿ ïîñëå ãåíåðàöèè ïîäêëþ÷åé áóäåò ñîäåðæàòü +// 18 P ïîäêëþ÷åé è 4 S ìàòðèöû +BF_KEY bfkey; + +// ôóíêöèÿ, êîòîðàÿ âû÷èñëÿåò ÷åêñóììó è âñòàâëÿåò å¸ â ïàêåò +int add_ckecksum(char *raw, int count) { + long chksum = 0L; + int i = 0; + long ecx; + for(i = 0; i < count; i += 4) { + ecx = raw[i]; + ecx |= raw[i + 1]; + ecx |= raw[i + 2]; + ecx |= raw[i + 3]; + chksum ^= ecx; + } + + printf("checksum: 0x%x\n",chksum); + memcpy(raw+count, (char *)&chksum, 4); +} + +// äîáàâëÿåò ëîãèí è ïàðîëü â ïàêåò (îòäåëåíî îò îñíîâíîé ôóíêöèè +// èç ñîîáðàæåíèé ÷èòàáåëüíîñòè) +int add_lp(char *raw, char *l, char *p) { + l[15] = '\0'; + p[17] = '\0'; + + memcpy(raw+3,l,strlen(l)); + memcpy(raw+17,p,strlen(p)); +} + +// âûâîäèò íà ýêðàí ïàêåò â ÷èòàáåëüíîì âèäå (äëÿ îòëàäêè) +int print_packet(char *raw, int len) { + int i, c = 0; + + for(i=0;i<54;i++) printf("_"); + + for(i=0;i la2_plugin.plug <==== +/* + + Sniffit 0.3.7.beta LineAge2 c3 plugin + Allows to catch and decode la2 RequestAuthLogin packets *on the fly* + and dump login/passwords. + + by darkgrey / m00.blackhat.ru + + ~broken +*/ + +#include "/usr/local/include/blowfish.h" +#define KEY_LEN 20 + +BF_KEY bfkey; + +char key[] = "[;'.]94-31==-&%@!^+]"; + +void init_la2_plugin() { + + printf("LineAge2 C3 plugin enabled\n\n"); + BF_set_key(&bfkey, KEY_LEN, key); + +} + +void PL_la2_plugin (struct Plugin_data *PLD) { + int i = 0; + int count = (PLD->PL_info.DATA_len - 2) / 8; + char *ptr = PLD->PL_data; + unsigned char *ls_ip; + + if(PLD->PL_info.DATA_len == 0x32 && PLD->PL_info.UDP_len == 0) { + ls_ip=(unsigned char *)&(PLD->PL_iphead.destination); + printf("Login Server ip: %u.%u.%u.%u\n",ls_ip[0],ls_ip[1],ls_ip[2],ls_ip[3]); + + for(i = 0; i < count; i++) + BF_encrypt((BF_LONG *)((short*)ptr+1+i*4), &bfkey, BF_DECRYPT); + + i = 2; printf("Login: "); + while(PLD->PL_data[i++] != '\x00' || i != 16) + printf("%c",PLD->PL_data[i]); + + printf("\nPassword: "); + while(PLD->PL_data[i++] != '\x00' || PLD->PL_data[i] != '\x08') + printf("%c",PLD->PL_data[i]); + + printf("\n"); + } +} +/* eof */ + +====> sn_plugins.h <==== +#define PLUGIN2_NAME "LineAge2 c3 Plugin" +#define PLUGIN2(x) PL_la2_plugin(x) +#define PLUGIN2_INIT() init_la2_plugin() +#include "la2_plugin.plug" +/* eof */ + +Äëÿ òîãî, ÷òîáû åãî èñïîëüçîâàòü, âàì íóæíî ñêîïèðîâàòü îáà ôàéëà â êàòàëîã ñî sniffit. Íó è äëÿ +êîìïèëÿöèè âàì ïîíàäîáèòñÿ âñ¸ òà æå áèáëèîòåêà blowfish è ñîîòâåòñòâóþùàÿ çàïèñü â make-ôàéëå. +m00.blackhat.ru/m00-la2sniff.jpg - äåìîíñòðèðóåò ðàáîòó ïåðåáîðùèêà ïàðîëåé ê lineage2 ñåðâåðàì +è ïàðàëëåëüíî çàïóùåííûé sniffit ñ óñòàíîâëåííûì ïëàãèíîì íà ïðèìåðå www.antaras.ru (217.107.212.212 - +èï ëîãèí-ñåðâåðà). + + +3. Óäàë¸ííîå îïðåäåëåíèå âåðñèè lineage2 ñåðâåðà +Ïîìíèòå ÿ ãîâîðèë, ÷òî ïîñëåäíèå 8 áàéò â ïàêåòàõ ëîãèí-ñåðâåðà îòâîäÿòñÿ ïîä ÷åêñóììó? Òî÷íåå, èç íèõ +ïðåäïîñëåäíèå 4 :> À åñëè âäðóã îñòàâèòü ïàêåò áåç ÷åêñóììû, îôô âåðñèÿ lineage ñåðâåðà íàñ ïðîñòî- +íàïðîñòî äèñêîííåêòèò.  l2j ôóíêöèÿ, êîòîðàÿ ïðîâåðÿåò ÷åêñóììó âîçâðàùàåò true èëè false, +íî ïî÷åìó-òî âîçâðàùàåìîå çíà÷åíèå íå ïðîâåðÿåòñÿ. Òî åñòü, ôàêòè÷åñêè l2j íå ïðîâåðÿåò ÷åêñóììó. +Ñîîòâåòñòâåííî, åñëè äèñêîííåêò, òî îôô, åñëè íåò, òî l2j. + + +4. Óäàë¸ííîå "ïîäâåøèâàíèå" login-ñåðâåðà +Áûëî çàìå÷åíî, ÷òî íåêîòîðûå ñåðâåðû íà ïàêåòû, íå ñîäåðæàùèå ëîãèíà/ïàðîëÿ îòâå÷àþò ïàêåòîì òèïà 0x03 +(êîòîðûé îçíà÷àåò, ÷òî âû óñïåøíî àâòîðèçîâàíû). Ïîñëå ÷åãî íà÷èíàþò âåñòè ñåáÿ êðàéíå íåñòàáèëüíî. +ß ïðîâåðèë ýòî íà 10-òè êðóïíûõ Ñ3 ñåðâåðàõ, ïîëîâèíà íèêàê íå îòâå÷àëà íà òàêîé ïàêåò, äðóãàÿ +îòâå÷àëà ïàêåòîì 0x01 (àâòîðèçàöèÿ íå ïðîøëà), íî òîëüêî www.la2.ru ïîñûëàë 0x03 è íà âðåìÿ ïðåêðàùàë +ïðèíèìàòü âõîäÿùèå ñîåäèíåíèÿ (âèäèìî, ó íèõ óñòàíîâëåíà ñèñòåìà "àâòî-ïîäú¸ìà"). +Äëÿ ðåàëèçàöèè ïðîãðàììû, êîòîðàÿ áû ïîäâåøèâàëà la2.ru, âàì íóæíî âñåãî-ëèøü ñìåøàòü âûøå-ïðåäîñòàâëåííûé +ãåíåðàòîð ïàêåòîâ ñ ïðîñòûì tcp-êëèåíòîì. +Áåñêîíå÷íûé öèêë ïîñûëà ïîäîáíûõ ïàêåòîâ ïðèâåä¸ò ê íåâîçìîæíîñòè çàéòè íà èãðîâîé ñåðâåð. + + +5. Êëîíèðîâàíèå +Óÿçâèìîñòü î êîòîðîé ñåé÷àñ ïîéä¸ò ðå÷ü èìåëà ìåñòî áûòü â Ñ1 âåðñèè ËÀ2, ïîýòîìó îñîáî çàîñòðÿòü âíèìàíèå +íà íåé íå áóäó. +Ñóòü çàêëþ÷àëàñü â òîì, ÷òî ìû, àâòîðèçîâàâøèñü íà login-ñåðâåðå 1 ðàç ïîä îäíèì àêêàóíòîì, ìîãëè çàõîäèòü +íà game-ñåðâåð ïîä ýòèì æå àêêàóíòîì ïàðàëëåëüíî íåîãðàíè÷åííîå ÷èñëî ðàç. Ñîîòâåòñòâåííî, ìîæíî áûëî âõîäèòü +â èãðó ïîä îäíèì è òåì æå ïåðñîíàæåì ñêîëüêî óãîäíî. +Âòîðàÿ âîçìîæíîñòü êëîíèðîâàíèÿ áûëà îïèñàíà â ïàðàãðàôå ïðî IID è OID. +Êëîíèðîâàíèå ïðåäìåòîâ ÷åðåç WH, ïèòîìöåâ è òä ðàññìàòðèâàòü íå áóäó, ìíå íå êàæåòñÿ ýòà òåìà èíòåðåñíîé, ò.ê. +íà íîðìàëüíûõ ñåðâåðàõ ýòî óæå äàâíî íå ðàáîòàåò. + + +6. Ñîçäàíèå "ìóòàíòîâ" è ñìåøåíèå ñêèëëîâ +Î÷åíü èíòåðåñíàÿ òåìà. Ïåðâûì êòî ðåàëèçîâàë ïðîãðàììíî ýòè èäåè (â ðóíåòå) áûë hint. +Äëÿ íà÷àëà, íà ñêîëüêî âàì èçâåñòíî, â lineage ñóùåñòâóåò íåñêîëüêî ðàññ. Çà êàæäîé èç íèõ çàêðåïëåíû ñâîè +êëàññû (ìàã è âîéí). Íî êëàññ îäíîé ðàññû åñòåññòâåííî îòëè÷àåòñÿ îò àíàëîãè÷íîãî êëàññà äðóãîé ðàññû (ñêèëëàìè). +À ó ðàññû ãíîìîâ íåò êëàññà ìàãîâ âîîáùå. Ýòî áûëî íåîáõîäèìîå ïðåäèñëîâèå, ÷òîáû ïîíÿòü ñìûñë âñåãî íèæåîïèñàííîãî. +À òåïåðü ðàññìîòðèì çàïðîñ íà ñîçäàíèå ïåðñîíàæà: +0B // òèï ïàêåòà +45 00 6D 00 30 00 30 00 00 00 // íèê ïåðñà +04 00 00 00 // ðàññà +00 00 00 00 // ïîë +35 00 00 00 // íà÷àëüíàÿ ïðîôåññèÿ (êëàññ) +14 00 00 00 // 6 ïîñòîÿííûõ çíà÷åíèé, ÿ çàòðóäíÿþñü ñêàçàòü, ÷òî îíè çíà÷àò +27 00 00 00 // +2D 00 00 00 // +1B 00 00 00 // +1D 00 00 00 // +0A 00 00 00 // +00 00 00 00 // òèï âîëîñ +00 00 00 00 // öâåò âîëîñ +00 00 00 00 // òèï ëèöà +Ýòîò ïàêåò ñîçäàñò Ãíîìà âîéíà ñ íèêîì "m00" ìóæñêîãî ïîëà. +Îêàçàëîñü, ÷òî ñåðâåð (äàæå îôôèöèàëüíûé) íå ïðîâåðÿåò ñîîòâåòñòâèå ðàññû ñ âûáðàíûì êëàññîì. Ýòî ïîçâîëÿåò íàì +ñîçäàâàòü ÷àðîâ îäíîé ðàññû ñ êëàññîì ñîâåðøåííî äðóãîé (ÿ èõ íàçûâàþ ìóòàíòàìè =)). Çâó÷èò, êîíå÷íî, èíòåðåñíî, íî +íà ñàìîì äåëå ìû èìååì îáû÷íîãî ÷àðà ñî ñâîèìè ñòàòàìè è ñêèëëàìè, íî ñ íåñâîéñòâåííûìè åìó òåêñòóðàìè. Ïî èäåå +áàã êðîìå ôàíà íàì íè÷åãî äàòü íå ìîæåò (ôàíà ââèäå ñâåòëîãî ýëüôà ñïîéëÿùåãî ìîáîâ :)), íî îêàçàëîñü, ÷òî èç ýòîãî, +íà ïåðâûé âçãëÿä, íåèíòåðåñíîãî áàãà ïðîèñòåêàþò åù¸ äâà. +Íàñêîëüêî âû çíàåòå, ó êàæäîé ðàññû åñòü ñâîè NPC ó êîòîðûõ áåðóòñÿ êâåñòû íà ïðîôåññèþ è ó÷àòñÿ ñêèëëû. Òàê +âîò, ìóòàíòû ó÷àò ñêèëëû êëàññà îäíîé ðàññû ó NPC äðóãîé ðàññû. Ê ïðèìåðó, ÿ, èãðàÿ ñâåòëûì ýëüôîì, ó÷èë ñêèëë +ãíîìîâ "Spoil" ó NPC ýëüôîâ. È òóò âñòàë âîïðîñ, à êòî ìíå òîãäà áóäåò äàâàòü ïðîôåññèþ è êàêóþ? +Äåëî â òîì, ÷òî ñêèëëû äàþòñÿ â çàâèñèìîñòè îò ïðîôåññèè (â äàíîì êîíòåêñòå "êëàññà"), à âîò êâåñòû â +çàâèñèìîñòè îò ðàññû. Òî åñòü, ìîæåò ïîëó÷èòñÿ òàêîå, ÷òî ïî äîñòèæåíèþ 20-ãî óðîâíÿ è áóäó÷è ãíîìîì-ñïîéëåðîì, +âû ñìîæåòå ïîëó÷èòü ïðîôåññèþ "Elven Knight" (ïåðâàÿ ïðîôåññèÿ ñâåòëûõ ýëüôîâ). +Íî ýòà èíôîðìàöèÿ íå ïîäòâåðæäåíà íà ïðàêòèêå. +Êñòàòè ãîâîðÿ, ñ÷èòàííîå êîëè÷åñòâî ìóòàíòîâ ìîãóò âîîáùå ó÷èòü ñêèëëû. +À âîîáùå, åñëè ãîâîðèòü î ñêèëëàõ, òî â ëà2 åñòü åù¸ îäèí áàã. LA2 îôô êëèåíò íå ïðîâåðÿåò ñîîòâåòñòâèå óðîâíÿ ÷àðà è +óðîâíÿ äîñòóïíîãî äëÿ èçó÷åíèÿ ñêèëëà. Òî åñòü, ê ïðèìåðó, áóäó÷è íà 5-îì ëâëå human fighter'îì âû ìîæåòå ó÷èòü +mortal blow ìàêñèìàëüíîãî óðîâíÿ (ïðè óñëîâèè, ÷òî õâàòèò SP). Ýòî ëåãêî ðåàëèçóåòñÿ íà ïàêåòíîì óðîâíå. +Åù¸ õî÷åòñÿ äîáàâèòü, ÷òî íà l2j ñåðâåðå êàêèå-ëèáî ïðîâåðêè âîîáùå îòñóòñòâóþò. Òî åñòü âû ìîæåòå ó÷èòü äàæå òå +ñêèëëû, êîòîðûå äîñòóïíû òîëüêî GM-àì. + + +7. Áåññìåðòèå. +Âîò ìû è äîøëè äî ñàìîé èíòåðåñíîé òåìû, èìåíóåìîé â ïðîñòîíàðîäüå - god mode. +Ñîãëàñèòåñü, íà ñåðâåðå, ãäå îíëàéí áîëüøå 1000 ÷åëîâåê, áûòü áåññìåðòíûì - îäíî óäîâîëüñòâèå =) +Äëÿ íà÷àëà, êîãäà íàñòóïàåò áåññìåðòèå? Íà ýòîò âîïðîñ áûë äàí áàíàëüíûé, íî êàê îêàçàëîñü òî÷íûé îòâåò: +êîãäà ÷àð óæå ì¸ðòâ. +Êàçàëîñü áû áðåä, íî êîãäà ó ïåðñîíàæà 0 HP è îí æèâ, åãî äåéñòâèòåëüíî íåâîçìîæíî óáèòü (íó íå ñàâñåì íåâîçìîæíî :) - +îá ýòîì íèæå). Íî êàê ñäåëàòü, ÷òîáû ó ÷àðà áûë àáñîëþòíûé 0 HP, îí áûë æèâ è ïðè ýòîì åù¸ HP íå âîññòàíàâëèâàëèñü? +Äëÿ íà÷àëà ðàññìîòðèì âîïðîñ ñ 0 HP.  la2 åñòü òàêîé áàã: åñëè ïîñëå ñìåðòè íàæàòü íà "return to the nearest village" +è ñðàçó æå çàâåðøèòü ïðîöåññ l2.exe, ÷àð ïîÿâèòñÿ â ãîðîäå ñ àáñîëþòíûì 0 HP è äàæå ñ áàôôàìè (åñëè îíè äî ýòîãî áûëè). +Ýòî ñâåçàíî ñ òåì, ÷òî ïîñëå RequestRestartPoint-ïàêåòà êëèåíò äîëæåí ïîñûëàòü ïàêåò Apearing, ïîñëå êîòîðîãî +ñîáñòâåííî ñåðâåð è âîññòàíàâëèâàåò ÷àðó HP è óáèðàåò áàôôû. À òàê êàê êëèåíò ìû çàêðûâàåì, îí ýòîò ïàêåò +ïîñëàòü íå óñïåâàåò. +Êñòàòè, ïî÷åìó ÿ âñ¸ âðåìÿ ãîâîðþ "àáñîëþòíûé" 0? Äåëî â òîì, ÷òî íà ñåðâåðå HP õðàíÿòñÿ â ïåðåìåííîé òèïà float +(÷òî ñàìîå èíòåðåñíîå, êëèåíòó ïåðåñûëàåòñÿ îíî â âèäå öåëîãî ÷èñëà). Òî åñòü, åñëè âû áóäåòå ïîñòåïåííî ñíèæàòü +HP äî 0 ñ ïîìîùüþ bleed èëè poison, òî âû íå ïîëó÷èòå àáñîëþòíûé 0, à åñëè HP íå íîëü, çíà÷èò âû æèâû. +Ïîýòîìó åäèíñòâåííûé ñïîñîá ïîëó÷èòü àáñîëþòíûé 0 - ýòî óìåðåòü. +Âîò, äåëàòü 0 HP ìû íàó÷èëèñü, òåïåðü ïîãîâîðèì î òîì, êàê çàìîðîçèòü èõ íà íóëå. +1) Ïåðâûì øàãîì â ýòîì íàïðàâëåíèè áûëî ñîçäàíèå ãíîìà-ìàãà (êàê áûëî îïèñàíî â ïðåäûäóùåì ïàðàãðàôå). Ñêîðåå âñåãî, +â ñëåäñòâèå òîãî, ÷òî ó ãíîìîâ íåò òàêîãî êëàññà êàê ìàã âîîáùå, ó íåãî íå ðåãåíåðèðóþòñÿ HP/MP. Ñîîòâåòñòâåííî, +ïðîäåëàâ ñ òàêèì ãíîìîì âûøå-óïîìÿíóòûå äåéñòâèÿ, ïîëó÷èì áåññìåðòíîãî ïåðñîíàæà. Ýòîò áàã ïîôèêñèëè ïðàêòè÷åñêè âåçäå. +2) Âòîðîé ñïîñîá áûë îòêðûò íåñêîëüêî ïîçäíåå ãíîìîâ-ìàãîâ. Îêàçàëîñü, ÷òî ïðè âûáîðå íåñóùåñòâóþùåé ðàññû, ñîçäàþòñÿ +áåññìåðòíûå human'û ñ ëþáûì êëàññîì. È ñàìîå èíòåðåñíîå, ÷òî åñëè òàêèì ñïîñîáîì ñîçäàâàòü êëàññ human mage, âñ¸ ðàâíî +ïîëó÷èòñÿ human fighter, íî ñ ìàãè÷åñêèìè ñêèëëàìè. +Ó ýòèõ äâóõ ñïîñîáîâ åñòü äâà î÷åíü âåñîìûõ íåäîñòàòêà: + a) ñîçäàííûå ïåðñîíàæè íå ìîãóò ó÷èòü ñêèëëû è ïîëó÷àòü ïðîôåññèþ. + b) êàê âû ïîíèìàåòå, ðåãåí HP íå ðàáîòàåò âîîáùå, ñîîòâåòñòâåííî âàì ïðèä¸òñÿ áåãàòü áåññìåðòíûì âñ¸ âðåìÿ. +3) À òåïåðü, âíèìàíèå, áàã - êîòîðûé ìíå ïîìîã íàéòè âñ¸ òîò æå hint. +Íàñêîëüêî âû çíàåòå, â ëèíåéêå åñòü òàêàÿ øòóêà êàê ïåðåâåñ. Êîãäà âû çàãðóæåíû íà 65%+, ó âàñ ïàäàåò ñêîðîñòü +áåãà, àòàêè è ðåãåíåðàöèè. Íî ìàëî êòî çíàåò, ÷òî åñëè ó âàñ 90%+, òî ïîìèìî òîãî, ÷òî âû íå ìîæåòå äâèãàòüñÿ, ó âàñ +íå ðåãåíåðèðóåòñÿ HP! Íî ÷òî òîëêó îò òîãî, ÷òî, ïîÿâèâøèñü ïîñëå ñìåðòè â ãîðîäå, âû áóäåòå ñòîÿòü íà ìåñòå áåññìåðòíûì? +À òóò íàì ïîìîæåò ñòðàéäåð! Ñåâ íà íåãî, âû ñìîæåòå áåãàòü ñ åãî ñêîðîñòüþ ïðè òîì, ÷òî HP âñ¸ ðàâíî íå +ðåãåíåðèðóåòñÿ! Íî òóò åñòü òîæå ìàëåíüêèé ïîäâîäíûé êàìåíü - íà íåêîòîðûõ ñåðâåðàõ (reborn.ru - C4) íåëüçÿ àòàêîâàòü +áóäó÷è íà ñòðàéäåðå. Òóò óæ íè÷åãî íå ïîäåëàåøü, ìîãó ïîñîâåòîâàòü òîëüêî ïîëüçîâàòüñÿ áàôôîì blazing skin/freazing skin. +4) íó è ïîñëåäíèé áàã ñ áåññìåðòèåì - ýòî demon's set. Ýòî ïîæàëóé ñàìûé ñòàðûé áàã íà áåññìåðòèå è î í¸ì â ïðèíöèïå âñå +çíàþò. Çàâÿçàí îí íà òîì, ÷òî ó âàñ ïîëó÷àåòñÿ îòðèöàòåëüíûå õï è âàñ ñîîòâåòñòâåííî îïÿòü æå íåëüçÿ óáèòü. + +Âñå âûøåîïèñàííûå òèïû áåññìåðòèÿ îáúåäèíÿåò îäèí ñåðü¸çíûé íåäîñòàòîê. Ïåðñîíàæ ïåðåñòà¸ò áûòü áåññìåðòíûì êàê òîëüêî +ó íåãî êàêèì-ëèáî îáðàçîì ïðèáàâèòñÿ HP - â ñëåäñòâèå lvlup'à èëè áàíàëüíîãî heal'à. Òàêæå îí óìèðàåò îò bleed, poison, +íåêîòîðûõ âàìïèðèçìîâ. + +Åù¸ òóò âñïîìíèëñÿ áàã ñ "fake death". Íà íåêîòîðûõ êðèâûõ ÿâàõ ïîñëå FD ÷àðû êàê áû òàê è îñòàþòñÿ ì¸ðòâûìè è èõ íåëüçÿ +àòàêîâàòü ïîêà îíè íå ñäåëàþò ðåñòàðò. Íó ýòî òàê, ê ñëîâó. + + +8. 'remote DoS' è ÷òî ýòî äà¸ò +Îáû÷íî óÿçâèìîñòè ïîäîáíîãî ðîäà îñîáî íå öåíÿòñÿ, òàê êàê áîëåå ÷åì ïðîñòî "ïîïðèêàëûâàòüñÿ" èç íèõ íè÷åãî +ïîëó÷èòü íåëüçÿ. LA2 æå ïîñòîÿííî ñîõðàíÿåò ñîñòîÿíèå ìèðà (÷åðåç êàæäûå Í-ñåêóíä - ýòîò âîïðîñ åù¸ òî÷íî íå +èçó÷åí, äà îí è íå òàê âàæåí), ÷òîáû ïîñëå âíåçàïíîãî ïàäåíèÿ ñäåëàòü îòêàò. Òî åñòü, óìåÿ ïðîãíîçèðîâàòü +(èëè ïðîâîöèðîâàòü) ïàäåíèå game-ñåðâåðà, ìû ïîëó÷àåì "âëàñòü íàä îòêàòàìè". ×òî ýòî çíà÷èò? À òî, ÷òî, +âàñ óáèëè? Îòêàò! Âàñ ðàçäåëè? Îòêàò!! Ó âàñ íå ïîëó÷èëîñü çàòî÷èòü øìîòêó? Îòêàò!!! +Êðîìå òîãî, åñòü î÷åíü öåííûå ìîíñòðû, êîòîðûå èìåþò î÷åíü áîëüøîå resp time (fairy queen timinel - ðåñï +5 ÷àñîâ, íàïðèìåð) è ïðèñóòñòâóþò â åäèíè÷íîì ýêçåìïëÿðå. Óáèëè, ïîâàëèëè ñåðâåð, ñåðâåð ïîäíÿëñÿ, ìîá ñíîâà +ïîÿâèëñÿ.  èòîãå âðåìÿ ðåñïà ñîêðàùàåòñÿ ñ 5 ÷àñîâ äî 3-¸õ ìèíóò. +Êàê æå ïåðåãðóæàòü ñåðâåð? +Äëÿ l2j 100% ðàáî÷èé ñïîñîá - ýòî êðèñòàëèçàöèÿ. +72 // RequestCrystallizeItem +00 00 00 00 // OID ïðåäìåòà +FF FF FF FF // êîëè÷åñòâî +Ïîäñòàâëÿåì â ýòîò ïàêåò ðåàëüíûé OID ïðåäìåòà è îòñûëàåì. Íà ÷òî ñåðâåð ìîìåíòàëüíî ïàäàåò. +Äëÿ ïðîäæåêòîâ òóò âñ¸ ñëîæíåå. Ïðè øèôðîâàíèè ïàêåòîâ íåïðàâèëüíûì êëþ÷¸ì, ñåðâåð èíîãäà ïàäàåò. ÏÎ÷åìó? Åñëè +êëþ÷è íå ñîâïàäàþò, çíà÷èò ñåðâåð ïðè ðàñøèôðîâêå ïîëó÷àåò ñîâåðøåííî ðàíäîìíûå çíà÷åíèÿ (òî åñòü íè òî, ÷òî ìû +çàøèôðîâûâàëè). È âûñëåäèòü êàê ðàç òó ïîñëåäîâàòåëüíîñòü çíà÷åíèé, ïðè êîòîðîé ñåðâåð ïàäàåò, ó ìåíÿ ïîêà ÷òî +íå ïîëó÷èëîñü. + + +9. integer overflow â ñåòåâîì äâèæêå l2j +Íó è òàê, ÷òîáû îêîí÷àòåëüíî îïðîâåðãíóòü ìíåíèå î òîì, ÷òî â lineage2 íåò ñåðü¸çíûõ áàãîâ, +ïðîäåìîíñòðèðóþ âàì öåëî÷èñëåííîå ïåðåïîëíåíèå â ñåðâåðå l2j â ïðîöåäóðå îáðàáîòêè êëèåíòñêèõ +ïàêåòîâ: +public void run() +{ + _log.fine("loginserver thread[C] started"); + int lengthHi = 0; + int lengthLo = 0; + int length = 0; + boolean checksumOk = false; + int sessionKey = -1; + String account = null; + String gameServerIp = null; + try + { + InetAddress adr = InetAddress.getByName(_gameServerHost); + gameServerIp = adr.getHostAddress(); + Init startPacket = new Init(); + _out.write(startPacket.getLength() & 0xff); + _out.write(startPacket.getLength() >> 8 & 0xff); + _out.write(startPacket.getContent()); + _out.flush(); + do + { + lengthLo = _in.read(); + lengthHi = _in.read(); + length = lengthHi * 256 + lengthLo; + if(lengthHi < 0) + { + _log.warning("Client terminated the connection."); + break; + } + byte incoming[] = new byte[length]; + incoming[0] = (byte)lengthLo; + incoming[1] = (byte)lengthHi; +................. +Ýòî êîíå÷íî íå ñàâñåì 'integer overflow' â êëàññè÷åñêîì ïîíèìàíèè ýòîãî ñëîâîñî÷åòàíèÿ, +íî ïðèâîäèò îíî ñíà÷àëà ê äâóõ-áàéòíîìó ïåðåïîëíåíèþ (off-by-two overflow), à çàòåì ê ... +Ïîõîæàÿ óÿçâèìîñòü èìååòñÿ â ëà2 êëèåíòå è l2walker'å. Îíè âèñíóò, ñæèðàÿ 100% ïðîöåññîðíîãî âðåìåíè. +Íî èõ èñõîäíèêîâ ó ìåíÿ íåò, íî åñòü îñíîâàíèå ïîëàãàòü, ÷òî òàì êîä íåñêîëüêî èíîé. +Êñòàòè ãîâîðÿ, ñåðâåð L2J ïðîñòî îò è äî çàïîëíåí ïîäîáíûìè áàãàìè. Ìíîãèå èç íèõ îïèñàíû íà ÷èòåðñêèõ ôîðóìàõ. + + +10. SQL-injection +Äà, ÷åðåç ýòîò áàã â ôîðóìàõ áûëî âçëîìàíî, íàâåðíîå, åù¸ áîëüøå ñåðâåðîâ ÷åì êîãäà-òî ñ ïîìîùüþ unicode-áàãà â +iis. Êàêîâî áûëî ìî¸ óäèâëåíèå, êîãäà ÿ óçíàë, ÷òî îí åñòü è â lineage. À îíî â ïðèíöèïå è ïîíÿòíî, +ìíîãîå èç òîãî, ÷òî ìû ïåðåäà¸ì la2-ñåðâåðó (òàéòëû äëÿ ÷ëåíîâ êëàíà, íèê äëÿ èãíîðà, ñïèñîê äðóçåé è òä) ñðàçó æå +äîáàâëÿåòñÿ â ñåðâåðíóþ sql-áàçó. Ñîîòâåòñòâåííî, ïðîñòîé êîìàíäîé: /block 'SHUTDOWN-- ìû ìîæåì âûêëþ÷èòü sql-ñåðâåð. +Áîëüøå âñåãî ïîðàæàåò òî, ÷òî àäìèíû, áðàâøèåñÿ ôèêñèòü ýòîò áàã, â ïåðâóþ î÷åðåäü ôèëüòðîâàëè äàííûå íà ñëîâî +"SHUTDOWN--" è òîëüêî ïîòîì äîãàäàëèñü, ÷òî ðåñòàðò ñåðâåðà - ýòî ñàìîå ìèíèìàëüíîå èç òîãî, ÷òî ìîæíî ñäåëàòü +èñïîëüçóÿ ýòîò áàã. +Áîëåå ïîäðîáíî íà ýòîì áàãå ÿ îñòàíàâëèâàòüñÿ íå áóäó, òàê êàê îí, ïîæàëóé, ñàìûé ñåðü¸çíûé èç òîãî, ÷òî âîîáùå +åñòü â ëèíåéêå. Ñêàæó ëèøü, ÷òî ôèêñÿò åãî êðàéíå êðèâî :) + + +11. Çàòî÷êà +Ìíå êàæåòñÿ, áàã ñ çàòî÷êîé ñòîèò íà âòîðîì ìåñòå ïî âîñòðåáîâàííîñòè ïîñëå "äþïà". +×òî òàêîå çàòî÷êà âîîáùå? Ýòî òàêîé ñâèòîê, êîòîðûé ïîçâîëÿåò óëó÷øèòü õàðàêòåðèñòèêè òîé èëè èíîé øìîòêè, ïîñëå +÷åãî óäàëÿåòñÿ. Íî óëó÷øàòü ìîæíî îòíþäü íå äî áåñêîíå÷íîñòè. Ïîñëå +3 ïîÿâëÿåòñÿ âåðîÿòíîñòü òîãî, ÷òî øìîòêà ñëîìàåòñÿ. +Ïðè÷¸ì, ÷åì âûøå ñòåïåíü "çàòî÷åííîñòè" âåùè, òåì áîëüøå âåðîÿòíîñòü å¸ ïîëîìêè (êñòàòè, íå ôàêò, îá ýòîì íèæå). +Êàê ðàç íàëè÷èå âîò ýòîé ïåðåìåííîé "âåðîÿòíîñòè" ïðèâåëî ê ïîÿâëåíèþ áåñ÷èñëåííîãî ìíîæåñòâà ñïîñîáîâ çàòî÷êè. +Ê ïðèìåðó, ó êîãî-òî âäðóã êàêèì-òî ÷óäîì ïîëó÷èëîñü çàòî÷èòü íà +6, êîãäà îí ... áåæàë! È òåïåðü ýòîò ÷åëîâåê ïèøåò +íà ôîðóìàõ, ÷òî ýòî íîâûé 100% ñïîñîá òî÷êè. Òàêæå íåêîòîðûå ïèøóò, ÷òî ëó÷øå òî÷èòü 1 ðàç íà 1-îì óðîâíå, ëó÷øå +òî÷èòü ãíîìîì, òàêæå ÷òî âåðîÿòíîñòü çàâèñèò îò "ðåêîìåíäàöèé", îò èíòåëëåêòà (êñòàòè, ïðî INT ìíå ñêàçàë äîñòàòî÷íî +ïðîñâåù¸ííûé ÷åëîâåê), ëó÷øå òî÷èòü íî÷üþ, èñïîëüçîâàòü soulshots, áèòü â ýòîò ìîìåíò ìîáà, çàìåðÿòü âðåìÿ ìåæäó +òî÷êàìè è òàê äàëåå è òîìó ïîäîáíîå. ß, êîíå÷íî, íå ìîãó ñïîðèòü ñ ýòèìè âûñêàçûâàíèÿìè, òàê êàê ÿ ñàì íå îïðîáîâàë +âñ¸, ÷òî ïèøóò íà ôîðóìàõ, íî çíàþ òî÷íî - çà 100% ñïîñîá çàòî÷êè ìíîãèå ëþäè ãîòîâû âûïëàòèòü íåïëîõèå äåíüãè. +Ñëåäîâàòåëüíî, òàêîãî ñïîñîáà íà ïóáëèêå ê ñîæàëåíèþ íåò. À åñòü ëè îí âîîáùå? Ïîïðîáóåì âìåñòå â ýòîì ðàçîáðàòüñÿ. +Äëÿ íà÷àëà, äàâàéòå ðàçáåð¸ì òî, êàê íà ïàêåòíîì óðîâíå òî÷èòñÿ øìîòêà: +1-ûé ïàêåò - ýòî êîãäà â èãðå ìû íàæèìàåì ïðàâîé êíîïêîé íà çàòî÷êå, òî åñòü àêòèâèðóåì å¸. + +14 // òèï ïàêåòà (UseItem) +86 a4 13 40 // OID çàòî÷êè +00 00 00 00 + +Ïîñëå àêòèâàöèè çàòî÷êè ìû âûáèðàåì òîò ïðåäìåò, êîòîðûé õîòèì òî÷èòü: + +58 // òèï ïàêåòà (RequestEnchantItem) +74 a4 13 40 // OID ïðåäìåòà + +Âñ¸ ïðåäåëüíî ïðîñòî. +Êñòàòè ãîâîðÿ, íàðÿäó ñ ìíîãî÷èñëåííûìè ñïîñîáàìè çàòî÷êè, ñóùåñòâîâàëà òàêàÿ òåîðèÿ, ÷òî âåðîÿòíîñòü òî÷êè +ïðîñ÷èòûâàåòñÿ íà êëèåíòå è êàê áû ìû ãîâîðèì ñåðâåðó, ñëîìàëñÿ ïðåäìåò èëè íåò. È áóäòî áû ïðîñòûì artmoney +ìîæíî 100% òî÷èòü. Ýòî íå ïðàâäà, âû òîëüêî ÷òî â ýòîì óáåäèëèñü. +Äåéñòâèòåëüíî, íà ïàêåòíîì óðîâíå òî÷êà âûãëÿäèòü ïðåäåëüíî ïðîñòî. Êàê ìîæíî îáìàíóòü ýòó ñèñòåìó? +ß ìîãó ïðåäëîæèòü âàì âîò òàêèå âàðèàíòû: +1. àêòèâèðîâàòü îäíó è òó æå çàòî÷êó íåñêîëüêî ðàç +2. ïîñëàòü RequestEnchantItem-ïàêåò íåñêîëüêî ðàç +3. drop'íóòü çàòî÷êó ïîñëå àêòèâàöèè (ïîçâîëèò òî÷èòü îäíîé çàòî÷êîé ñêîëüêî óãîäíî), ëèáî ïîçâîëèò äåëàòü ëîæíóþ (fake) +Çàòî÷êó. +4. äðîïíóòü øìîòêó ñðàçó æå ïîñëå RequestEnchantItem-ïàêåòà. Åñëè óñïååòå, øìîòêà ìîæåò íå ñëîìàòüñÿ. Íî çàòî÷åòñÿ ëè? +Âñå ýòè ñïîñîáû ÿ îïðîáîâàë íà antaras.ru, ê ñîæàëåíèþ íà í¸ì îíè íå ñðàáîòàëè, íî, óâåðÿþ, îäèí èç íèõ 100% +ðàáîòàåò íà íåêîòîðûõ êðóïíåéøèõ Ðîññèéñêèõ ñåðâåðàõ. Ïî ïðîñüáå òîãî ÷åëîâåêà, êòî ìíå ñ ýòèì ïîìîãàë, ÿ íå ìîãó +íàçâàòü ýòè ñåðâåðû è îïèñàòü ñïîñîá ïîäðîáíåå. + +Ïîìèìî âûøå-îïèñàííûõ ñïîñîáîâ òî÷êè, åñòü åù¸ ìåòîä fake-çàòî÷êè. Îí êàê ðàç îñíîâàí íà òîì, ÷òî ïîñëå àêòèâàöèè +çàòî÷êè, ìû êóäà-íèáóäü å¸ ïðÿ÷åì. Ñåðâåð ïðîñ÷èòûâàåò çàòî÷èëñÿ ïðåäìåò èëè íåò è âûâîäèò ðåçóëüòàò, êîòîðûé èç-çà +ñïðÿòàííîé çàòî÷êè íå ââîäèòñÿ â ñèëó. Òî åñòü ïðåäìåò è íå ëîìàåòñÿ è íå òî÷èòñÿ, íî ìû âèäèì ðåçóëüòàò. +Íà îñíîâå ýòîãî ìåòîäà, íàðîä ïûòàëñÿ èñêàòü êàêèå-òî çàêîíîìåðíîñòè â òî÷êå è ïðîñ÷èòûâàòü å¸ âåðîÿòíîñòü. +×òî êàñàåòñÿ çàêîíîìåðíîñòåé, êàê ýòî íå óäèâèòåëüíî, îíè èõ íàõîäèëè. Íî íàëè÷èå çàêîíîìåðíîñòè ñòàâèò ïîä +âîïðîñ ñàìî ñóùåñòâîâàíèå ðàíäîìà â òî÷êå. Ïî êðàéíåé ìåðå ñòåïåíü åãî "ðàíäîìíîñòè". +Âîò íàðàáîòêè âçÿòûå ñ ôîðóìà cheaters.net.ua, à òî÷íåå èç ïîñòà F4llen'a (ïðÿìóþ ññûëêó èùèòå â êîíöå): ++1 100% ++2 100% ++3 100% ++4 -+-+-+ (+-+-+-) èëè æå (----++++----+++) ++5 ++---++-++----+++--- ++6 +++++----+--++-- ++7 +++++++++------ ++8 +++-+-+++----+++ ++9 ++-++--++---++-- ++10 ++--+--++--+ +"+" îçíà÷àåò óñïåøíóþ çàòî÷êó, "-" ñîîòâåòñòâåííî êðèñòàëëû. +Èñõîäÿ èç ýòîé "òàáëèöû" îí âûäâèíóë òåîðèþ, ÷òî íà êàæäîì ýòàïå çàòî÷êè åñòü ñâîé "òèï ðàíäîìàéçåðà": +à) ìíîãî ïëþñîâ ïîäðÿä â íà÷àëå +++++--+----+ +á) 2 ïëþñà è ìèíóñû ++--++-----++-++--- +â) ïëþñ-ìèíóñ +-+-+-+ 4 ëîæíûå çàòî÷êè äîëæíû äàòü îòâåò. +Ñîîòâåòñòâåííî, îïðåäåëèâ êàêîé âû èìååòå òèï íà äàííîì ýòàïå, ìîæíî áûëî ïðåäñêàçûâàòü óñïåõ/íåóäà÷ó òî÷êè. +Ñ îäíîé ñòîðîíû, ìíå êàæåòñÿ áðåäîì ðàçäåëåíèå ðàíäîìàéçà íà òèïû, ñ äðóãîé æå ÿ çíàþ ëþäåé, êîòîðûå ñìîãëè çàòî÷èòü +òàêèì ñïîñîáîì àæ äî +15-òè. +Äàâàéòå ïîïðîáóåì ñ òî÷êè çðåíèÿ òåð/âåðà ðàññìîòðåòü ýòó ñòàòèñòèêó: +Çàòî÷êà Âñåãî/Óñïåõ Âåð. óñïåõà + +4 15/7 0.466 + +5 20/9 0.45 + +6 16/8 0.50 + +7 15/9 0.60 + +8 16/10 0.625 + +9 16/8 0.50 + +10 12/6 0.50 +Ïîëó÷èâøèåñÿ äàííûå âåðíû ðîâíî íà ñòîëüêî, íà ñêîëüêî âåðíà òàáëèöà F4llen'à. Ïîñ÷èòàâ ñðåäíåå çíà÷åíèå âåðîÿòíîñòåé +óñïåøíîé çàòî÷êè, ïîëó÷èì ÷èñëî 0.52, ÷òî îçíà÷àåò, ÷òî óñïåøíàÿ è ëîæíàÿ çàòî÷êà â öåëîì ðàâíîâåðîÿòíû. Äëÿ êàæäîãî +æå êîíêðåòíîãî ýòàïà çàòî÷êè, ìîæíî ñêàçàòü òî æå ñàìîå è ñåé÷àñ îáúÿñíþ ïî÷åìó. +Íàïèøåì ìàëåíüêóþ ïðîãðàììó, êîòîðàÿ áóäåò ãåíåðèðîâàòü ðàâíîâåðîÿòíî öèôðó 1 èëè 0. Äåëàòü îíà ýòî áóäåò 240 ðàç, +äëÿ êàæäûõ 60-òè ÷èñåë (ìîæíî ñ÷èòàòü èõ ýòàïàìè çàòî÷êè) áóäåò ñ÷åòàòü âåðîÿòíîñòü âûïàäåíèÿ åäèíèöû (â äàëüíåéøåì + "óñïåõ") è â èòîãå ñ÷åòàòü îáùóþ âåðîÿòíîñòü óñïåõà äëÿ âñåõ 240 ÷èñåë (çà âåðîÿòíîñòü óñïåõà ïðèíèìàåì ïðîöåíòíîå +ñîîòíîøåíèå åäèíèö è íóëåé ê 240): + +#include +#include +#include + +int main () { + int O = 0, I = 0, Ot = 0, It = 0, total = 241, r = 0; + srand(time(0)); + for(int i = 0;i < total;i++) { + r = rand()%2; + printf("%i ",r); + if(r) I++; else O++; + if(!(i%60)) { + printf("\n%i/%i\nÂåðîÿòíîñòü óñïåõà: %.2f\n",I,O,I/0.60); + Ot+=O; It+=I; + I = 0; O = 0; + } + + } + printf("Âåðîÿòíîñòü óñïåõà â öåëîì: %.2f\n",It/2.40); + return 0; +} + +Âîò, ÷òî ïðîãðàììà âûâåëà íà ýêðàí: +----------------------- +0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 +1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 1 +29/31 +Âåðîÿòíîñòü óñïåõà: 48.33 +0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 +0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 +32/28 +Âåðîÿòíîñòü óñïåõà: 53.33 +1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 +0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 +31/29 +Âåðîÿòíîñòü óñïåõà: 51.67 +1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 +1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 1 +27/33 +Âåðîÿòíîñòü óñïåõà: 45.00 +Âåðîÿòíîñòü óñïåõà â öåëîì: 50.00 +----------------------- +Êàê âèäèòå, òóò ïðîñëåæèâàþòñÿ òå "òèïû ðàíäîìà" î êîòîðûõ ïèñàë f4llen ïðè òîì, ÷òî âûïàäåíèå 0 è 1 ðàâíîâåðîÿòíî è +íèêàêîé çàêîíîìåðíîñòè òóò íåò. Ïëþñ êî âñåìó ïðè ïðîìåæóòî÷íûõ èçìåðåíèÿõ âåðîÿòíîñòåé (äëÿ êàæäûõ 60-òè ÷èñåë), +âåðîÿòíîñòü óñïåõà íåñêîëüêî îòêëîíÿëàñü îò 50%, íî îáùàÿ âñ¸ ðàâíî áûëà ìàêñèìàëüíî áëèçêà ê äåéñòâèòåëüíîé +âåðîÿòíîñòè âûïàäåíèÿ 0 èëè 1. +Òàêèì îáðàçîì, ñòàòèñòèêà f4llen'à íè ÷òî èíîå, êàê ïîïûòêà ñèñòåìàòèçèðîâàòü îáû÷íûé ðàíäîì. + +Íó è ïîñëåäíèé êàìåíü â ñòîðîíó òåõ, êòî ñ÷èòàåò, ÷òî íà âåðîÿòíîñòü çàòî÷êè âëèÿåò äàæå ïîãîäà çà îêíîì: + L2j íåò ñâîåãî ãåíåðàòîðà ñëó÷àéíûõ ÷èñåë, â í¸ì òàêîé æå áèáëèîòå÷íûé ðàíäîìàéçåð, ÷òî áûë èñïîëüçîâàí âûøå. Ñ òîé +ëèøü ðàçíèöåé, ÷òî íà âåðîÿòíîñòü çàòî÷êè âëèÿåò îäíî åäèíñòâåííîå ÷èñëî, êîòîðîå âûñòàâëÿåòñÿ àäìèíèñòðàöèåé. +Áóäòå óâåðåíû, â lineage2 off òî æå ñàìîå. + + èòîãå, õî÷ó ñêàçàòü, ÷òî íå ñòîèò ïûòàòüñÿ îáìàíóòü rand(), ñêîðåå îí îáìàíåò âàñ =) Ñòîèò èñêàòü áàãè â ñàìîì +ïðîöåññå òî÷êè, íî îïÿòü æå, êàê áûëî ïðîäåìîíñòðèðîâàíî âûøå, ýòî ñëèøêîì ïðîñòîé ïðîöåññ, ÷òîáû áûòü áàæíûì. + + +À âîîáùå, "ñëó÷àéíîñòåé íå áûâàåò, à áûâàþò òîëüêî íåèçâåñòíûå íàì çàêîíîìåðíîñòè" (c) Êòî-òî. + + + +12. Ãåîäàòà (õîæäåíèå ñêâîçü ñòåíû). +Ñåãîäíÿ ïîñòó÷àëñÿ ÷åëîâåê â àñþ è íà÷àë ñïîðèòü, ÷òî l2j íè÷åì íå îòëè÷àåòñÿ îò îôôà.  ñâÿçè ñ ýòèì ÿ ðåøèë +äîáàâèòü â ñòàòüþ ïàðó ñëîâ ïðî ãåîäàòó â l2j è off. +Ïðîöåññ ïåðåäâèæåíèÿ ïî ìèðó â la2 ðåàëèçîâàí äîâîëüíî èíòåðåñíî. Îêàçûâàåòñÿ, çà òåì, êóäà èäòè ñëåäèò è ñåðâåð è +êëèåíò ïàðàëëåëüíî. Òî÷íåå, âû êëèêàåòå â òó òî÷êó, êóäà õîòèòå ïîïàñòü, êëèåíò â ñîîòâåòñòâèè ñ èìåþùåéñÿ ó íåãî +ãåîäàòîé ñìîòðèò ìîæíî ëè òóäà ïðîéòè, åñëè äà, òî ïîñûëàåò çàïðîñ íà ñåðâåð. Òîò óæå â ñîîòâåòñòâèè ñî ñâîåé +ãåîäàòîé ðàçðåøàåò èëè âîçâðàùàåò âàñ â èñõîäíîå ïîëîæåíèå. Ýòèì êàê ðàç è îáúÿñíÿåòñÿ ôåíîìåí ïîä íàçâàíèåì +"íèâèäèìûå ñòåíû", êîòîðûé, êñòàòè, ïðèñóùü íàøèì ôðèøàðäíûì ïðîäæåêòàì ñ êðèâûìè ëîêàöèÿìè. + l2j æå íåò ãåîäàòû, îíà ïðèêðó÷åâàåòñÿ ê íåìó äîïîëíèòåëüíî. ×òî ýòî çíà÷èò? À òî, ÷òî çà ïåðåäâèæåíèåì ÷àðà +ñëåäèò òîëüêî êëèåíò ïî èìåþùåéñÿ ó íåãî ãåîäàòå. Ïîýòîìó, âîñïîëüçîâàâøèñü áîòîì (â êîòîðîì ïîíÿòíîå äåëî òàêæå +íåò ãåîäàòû), âû ìîæåòå õîäèòü ñêâîçü ñòåíû, ïîòîìó ÷òî íè ñåðâåð, íè êëèåíò (â ëèöå áîòà) ïðîñòî íå çíàþò ïðî íèõ. +Ýòà ïðîáëåìà êñòàòè íå òîëüêî l2j. Íà Ñ1ÎÔÔ êàê ïðàâèëî Ñ3/C4 ëîêàöèè òàêæå áåç ãåîäàòû, òî åñòü òàì òî÷íî òàêæå +îòâåòñòâåííîñòü çà ïåðåäâèæåíèå âîçëàãàåòñÿ òîëüêî íà êëèåíòà. + +Åñëè ðàçáèðàòü ïåðåäâèæåíèå áîëåå ïîäðîáíî, òî îíî ðåàëèçóåòñÿ ïàêåòîì "0x01 MoveBackwardToLocation".  í¸ì +ïðèñóòñòâóåò äâà íàáîðà êîîðäèíàò - ãäå ñòîèì è êóäà õîòèì ïîïàñòü. Ïîñëå ýòîãî ïàêåòà ñåðâåð íà÷èíàåò íàñ +øàã çà øàãîì äâèãàòü â æåëàåìóþ íàìè òî÷êó. Ïðè÷¸ì, ñ êàæäûì øàãîì îí íå ïîñûëàåò íàì íîâûå êîîðäèíàòû! Äëÿ +òîãî, ÷òîáû êëèåíòó óçíàòü â êàêîé òî÷êå â äàííûé ìîìåíò îí íàõîäèòñÿ, ïîñûëàåòñÿ ïàêåò "0x48 ValidatePosition". +Òî åñòü, â öåëîì, ìû ïîñûëàåì ïàêåò ñ êîîðäèíàòàìè êóäà õîòèì ïîïàñòü, à ïîòîì ïðîñòî ïåðèîäè÷åñêè ïðîâåðÿåì, +ãðóáî ãîâîðÿ, íà ñêîëüêî ìû ïðîäâèíóëèñü. +Íî ýòî òàê, äëÿ îáùåãî ðàçâèòèÿ, òàê ñêàçàòü =) + + + +13. Ïðèêîë ñ SocialAction (0x1b) +×òî òàêîå SocialAction, äóìàþ, îáúÿñíÿòü íå íàäî. Îêàçàëîñü, ÷òî ïîìèìî ñìåõà, ïðèâåòñòâèÿ, ïîáåäû è òä, àíèìàöèÿ +ïðè LVL UP'å ÿâëÿåòñÿ òàêèì æå SocialAction'îì. À, íàñêîëüêî âàì èçâåñòíî, çàïðîñ íà ïðîèçâåäåíèå SocialAction +îòïðàâëÿåò êëèåíò, òî åñòü ìû ñàìè ìîæåì â ëþáîé ìîìåíò ñäåëàòü ñåáå lvlup =) Òîëüêî àíèìàöèþ, ðàçóìååòñÿ. +Âîò ôîðìàò SocialAction-ïàêåòà: + +1b // Òèï ïàêåòà (SocialAction) +0f 00 00 00 // íîìåð action'à (0f - lvlup) + + + +14. Áàã c Ride (0x6a) +Çàïðîñ "Ride" ïîñûëàåò êëèåíò, êîãäà õî÷åò çàáðàòüñÿ íà ñòðàéäåðà èëè âèâåðåíà. +Ôîðìàò: + +6a // òèï ïàêåòà +00 00 00 00 // 0/1 ñëåçòü/çàëåçòü +00 00 00 00 // íîìåð ïèòîìöà: 1 - ñòðàéäåð, 2 âèâèðåí + +Êîãäà ó âàñ âûçâàí ñòðàéäåð è âû ïîñûëàåòå çàïðîñ "Ride", íà ñàìîì äåëå, ñòðàéäåð èñ÷åçàåò (òî åñòü âûõîäèò èç èãðû +è òåðÿåò ñâîé OID - ýòèì êàê ðàç îáúÿñíÿåòñÿ òî, ÷òî êîãäà âû ñ íåãî ñëåçàåòå, îí ïðîïàäàåò), à ñàäèòåñü âû óæå íå +êîíêðåòíî íà ñâîåãî ñòðàéäåðà, à íà íåêèé ýòàëîí ñòðàéäåðîâ :) Íåìíîãî íåêîððåêòíî âûðàçèëñÿ, íó äà ëàäíî. +Îêàçàëîñü, ÷òî íà íåêîòîðûõ ëà2-ñåðâåðàõ îòñóòñòâóåò ïðîâåðêà íà òî, à âûçûâàëè ëè âû âîîáùå ñòðàéäåðà, ïåðåä òåì +êàê íà íåãî ñåñòü. Òî åñòü íè ñ òîãî, íè ñ ñåãî, ïîñëàâ ïàêåò: +6a 01 00 00 00 01 00 00 00 +Âû ñÿäåòå íà ñòðàéäåðà, õîòü è íå âûçûâàëè åãî. Ïðè÷¸ì, äàæå åñëè ó âàñ íåò äóäêè. Òàêèì æå îáðàçîì ìîæíî ñàäèòñÿ è +íà âèâåðåí. +Ýòîò áàã, òàêæå êàê è ïðèêîë ñ SocialAction áûë íàéäåí ÷åëîâåêîì ïîä íèêîì Maddaemon. Ãðàòç åìó. + + + +15. Âûêèäûâàåì èç èãðû ÷àðîâ +Ýòîò áàã ÿ îòêðûë ñëó÷àéíî, èçó÷àÿ âñ¸ òåõ æå ìóòàíòîâ. Ìåíÿ ìó÷àë âîïðîñ, ïî÷åìó êîãäà ïðè ñîçäàíèè ÷àðà óêàçûâàåøü +íåñóùåñòâóþùóþ ðàññó (÷èñëî áîëüøå 4-¸õ), âñåãäà ñîçäà¸òñÿ ÷àð ñ òåêñòóðàìè human'à? Ïðè÷¸ì, ýòîò human íå ìîæåò ó÷èòü +ñêèëëû ó NPC human'îâ, òî åñòü íè÷åãî êðîìå òåêñòóð åãî ñ ëþäüìè íå îáúåäèíÿëî. Òàê âîò, îêàçàëîñü, ÷òî â âèäå human'à +òàêèõ ÷àðîâ âîñïðèíèìàåò _òîëüêî_ Ñ1/C3 êëèåíòû. Ñ4 æå äëÿ òàêèõ ÷àðîâ òåêñòóðû ïðîñòî íå íàõîäèò è âûëåòàåò ñ îøèáêîé. +Òî åñòü, êàê òîëüêî â çîíó âèäèìîñòè la2 C4 êëèåíòà ïîïàäàåò òàêîé ÷àð, îí ïàäàåò. Ïîä çîíîé âèäèìîñòè ÿ ïîäðàçóìåâàþ +íå òî, ÷òî âû âèäèòå íà ýêðàíå, à ïðèáëèçèòåëüíî çîíó âèäèìîñòè êîìàíäû "/target". +Òàê, íàïðèìåð, ïîñòàâèâ òàêîãî ïåðñîíàæà ðÿäîì ñ çàìêîì íà âðåìÿ îñàäû, ó íàïàäàþùèõ íå áóäåò øàíñà, ò.ê. áîòàìè +çàõâàòûâàòü çàìîê êðàéíå ïðîáëåìàòè÷íî, à êëèåíòîì çàéòè â èãðó îíè ïðîñòî íå ñìîãóò. + +ß èñïûòàë ýòî íà òð¸õ êðóïíûõ îòå÷åñòâåííûõ Ñ4 ñåðâåðàõ (íå l2j), âåçäå ðàáîòàëî. +Òàêèìè ÷àðàìè, êñòàòè, ìîæíî ïðîâåðÿòü ïåðñîíàæåé íà áîòîâ ) Åñëè íå óïàë, çíà÷èò áîò. Íî ýòî ñïîñîá äëÿ ÃÌîâ-ñàäèñòîâ +èìõî. + +http://m00.void.ru/nuke.rar - âèäåî çàïèñü ñ îäíîãî èç Ðîññèéñêèõ Ñ4 ñåðâåðîâ. Íà íåé ïîêàçàíî, êàêîé ýôôåêò îêàçûâàþò +òàêèå ÷àðû íà äðóãèõ èãðîêîâ. + + + +16. Áàã ñ RequestRestartPoint (îæèâëåíèå è ïîáåã èç òþðüìû) +Ýòîò áàã áûë íàéäåí íàøèì ñîîòå÷åñòâåííèêîì èç ïîäïîëüÿ www.allcheats.ru ïîä íèêîì sshd. +Êîãäà âû óìèðàåòå, ó âàñ ïîÿâëÿåòñÿ îêíî ñ âûáîðîì ìåñòà, ãäå êàê áû âàñ îæèâèòü. Ïðè îáû÷íûõ óñëîâèÿõ òàì âñåãî îäíà +êíîïêà: "return to the nearest village". Ïîñëå íàæàòèÿ íà êîòîðóþ èãðà ïîñûëàåò ïàêåò: + +6d // òèï ïàêåòà (RequestRestartPoint) +00 00 00 00 // àðãóìåíò, êîòîðûé ñîáñòâåííî ãîâîðèò ñåðâåðó î òîì, êóäà íàñ âåðíóòü + +Áàã çàêëþ÷àåòñÿ â òîì, ÷òî êàê ðàç êëèåíò ãîâîðèò ñåðâåðó êóäà âåðíóòü ÷àðà ïîñëå ñìåðòè. Òî åñòü, íå êëèåíò, à ìû. +LA2 Ñ3/C4 ñåðâåðû ïîääåðæèâàþò ñëåäóþùèå çíà÷åíèÿ àðãóìåíòà (ìåñòà âîçâðàòà): + +0 – return to town (â ãîðîä) +1 – hide PK (åñëè âû ÏÊ, âîçâðàùàåò â ãîðîä ÏÊ èëè â îêðåñòíîñòè òîãî ãîðîäà, ãäå âàñ óáèëè) +2 – to castle (â çàìîê) +3 – to siege HQ (ê ôëàãó âî âðåìÿ îñàäû) +4 – fixed, festival (âî âðåìÿ ôåñòèâàëÿ òüìû îæèâëÿåò âàñ íà ìåñòå). + +Òàêèì îáðàçîì, ïîñëàâ âìåñòå "00 00 00 00", "04 00 00 00" íàø ÷àð îæèâèòñÿ íà òîì ìåñòå, ãäå ñîáñòâåííî áûë óáèò. + ñâÿçè ñ ýòèì áàãîì, ó ìåíÿ âîçíèêëà ìûñëü î òîì, êàê ìîæíî âûçâîëèòü èç òþðüìû ïåðñîíàæà. +Äëÿ ýòîãî ÷àð, íàõîäÿùèéñÿ â òþðüìå, äîëæåí áûòü â êëàíå. Ýòîò êëàí çàïèñûâàåòñÿ íà îñàäó è ñòàâèò ôëàã, ïðè ýòîì +÷àðà, êîòîðûé â òþðüìå íàäî êàêèì-íèáóäü îáðàçîì óáèòü. Íà antaras.ru, ê ïðèìåðó, ýòî íå ñëîæíî, òàì âîêðóã òþðüìû +àããðû, áüþùèå ÷åðåç ñòåíó. Äàëåå âû ïðîñòî ïîñûëàåòå "RequestRestartPoint" ïàêåò ñ àðãóìåíòîì "03 00 00 00" è ÷àð +ïîÿâëÿåòñÿ (äîëæåí ïîÿâèòñÿ :)) æèâîé ó ôëàãà. + + + +17. Ðàçäåòü ÷óæîãî ïåðñîíàæà íå çíàÿ íè ëîãèíà, íè ïàðîëÿ - ðàçâå ýòî ðåàëüíî? +Äà, ê ñîæàëåíèþ ýòî ðåàëüíî. ß ðåøèë óáðàòü ýòîò ïàðàãðàô èç ñòàòüè, òàê êàê ýòî î÷åíü ñåðü¸çíàÿ áðåøü â lineage2, +êîòîðàÿ íàäåëàåò åù¸ íå ìàëî øóìó. Íå õî÷ó, ÷òîáû ýòî áûëî íà ìîåé ñîâåñòè :) +Ñêàæó ëèøü, ÷òî ñóùåñòâóåò âîçìîæíîñòü âõîäèòü ïîä ðàíäîìíûìè ïåðñîíàæàìè (òî åñòü ñàìè ìû êîíêðåòíîãî ïåðñîíàæà +âûáðàòü íå ìîæåì, ýòî äåëàåò ñåðâåð). Ïîêà ÷òî ýòî áûëî îïðîáîâàíî òîëüêî íà èçâåñòíîì ñåðâåðå www.l2extreme.com, +íî ÿ óâåðåí, ÷òî ýòî ðàáîòàåò è íà äðóãèõ. +Òàê ÷òî íå óäèâëÿéòåñü, åñëè âàøåãî ÷àðà ñ ïàðîëåì àëÿ "6IlZk9qR[!]" âäðóã ðàçäåíóò. + + + +18. Èòîã +×òîæ, ÿ îïèñàë äîñòàòî÷íîå êîë-âî áàãîâ. Ê ñîæàëåíèþ, ê ìîìåíòó ïóáëèêàöèè ñòàòüè áîëüøèíñòâî èç íèõ ñòàëè óæå íå +òàê àêòóàëüíû. Òî, ÷òî àêòóëüíî ñåé÷àñ èëè íàõîäèòñÿ â äàííûé ìîìåíò â ðàçðàáîòêå, âîçìîæíî áóäåò âûëîæåíî ïîçäíåå +íà ôîðóìå la2brute.5bb.ru. + + +V. Áàãè íîâîãî ïîêîëåíèÿ +[âûðåçàíî] +Ìîãó ëèøü ñêàçàòü, ÷òî èõ áóäåò èñïîëüçîâàòü ìîé íîâûé èíãåéì áîò LA2Monster. + + +VI. Ïàðà ñëîâ î C4 +Âîîáùå Ñ4 âñ¸ åù¸ íèêàê íå ìîæåò óñòàêàíèòüñÿ. Òî÷íåå ïîøëî íåêîå ðàçâåòâëåíèå â ðåàëèçàöèè àâòîðèçàöèè. +L2J C4 ñåðâåðû ñòàëè ïðèìåíÿòü äëÿ øèôðîâàíèÿ àâòîðèçàöèîííîãî ïàêåòà RSA (âïðî÷åì êàê è ÎÔÔ îò NCSoft). +Ïðè÷¸ì, ïàðà private/public-êëþ÷åé ãåíåðèðóåòñÿ äëÿ êàæäîãî ñîåäèíåíèÿ. Êëèåíòó â ïåðâîì ïàêåòå ñåðâåð +ïåðåäà¸ò 1024-áèòíûé ïóáëè÷íûé êëþ÷, êîòîðûì êëèåíò _ïîâåðõ_ blowfish øèôðóåò ïàêåò ñ ëîãèíîì/ïàðîëåì. +Ýòîò ñïîñîá ãàðàíòèðóåò òî, ÷òî íèêòî èçâíå íå ñìîæåò ïîëó÷èòü êëèåíòñêèé ëîãèí è ïàðîëü. Õîòÿ, åñëè +âñïîìíèòü âçëîì Rc5-64, òî ðàñêðûòèå 128-áàéòíîãî êëþ÷à íå êàæåòñÿ òàêèì óæ çàîáëî÷íûì. +Õî÷åòñÿ îòìåòèòü, ÷òî ãåíåðàöèÿ key-pair â RSA äîñòàòî÷íî òðóäî¸ìêîå çàíÿòèå. Ó ìåíÿ íà ãåíåðàöèþ ïàðû êëþ÷åé +ñ ïîìîùüþ áèáëèîòåê openssl óõîäèëî ~1.5-2 ñåêóíäû, ÷òî äëÿ ñåðâåðà ñ îíëàéíîì, ñêàæåì, â 1000 ÷åëîâåê - +íåïîçâîëèòåëüíàÿ ðîñêîøü. Õîòÿ îïÿòü æå, login-ñåðâåð ïî çàäóìêàì NCSoft äîëæåí áûòü íà äðóãîé ìàøèíå íåæåëè +game-ñåðâåð, íî, êàê ÿ óæå ïèñàë âûøå, ýòî íå âñåãäà âûïîëíÿåòñÿ ó íàñ â Ðîññèè. +×òî æå êàñàåòñÿ Ñ1ÎÔÔ ïåðåäåëàííûõ â Ñ4, RSA â íèõ íå èñïîëüçóåòñÿ. Õîòÿ èçìåíåíà ðàáîòà ñ âíóòðåííèìè +èäåíòèôèêàòîðàìè, êîòîðûå èñïîëüçóþòñÿ äëÿ àâòîðèçàöèè íà game-ñåðâåðå. Ïðè ýòîì è äëÿ l2j è äëÿ ñ1îôô-ñ4 +èñïîëüçóåòñÿ îäèí è òîò æå Ñ4 êëèåíò. + + + +VII. Ïîñëåñëîâèå. +Êîíå÷íî, ïî ýòîé ñòàòüå íåëüçÿ ñîçäàòü RFC ïî lineage, èáî, åñòåñòâåííî, íåêîòîðûå ìîìåíòû +ÿ ïðîïóñêàë, òàê êàê îíè áûëè íå âàæíû èëè ÿ äî êîíöà íå ïîíèìàë èõ ñàì. Òàê èëè èíà÷å, ÿ ñ÷èòàþ, ÷òî +äàë âàì óéìó ïèùè äëÿ ðàçìûøëåíèé. +Åñëè âû ñ ÷åì-òî íå ñîãëàñíû èëè çíàåòå (äóìàåòå, ÷òî çíàåòå :D) ÷åãî ÿ íå çíàþ, ïèøèòå íà d4rk@securitylab.ru, +ëèáî â ËÑ íà www.allcheats.ru íà íèê "nop". +Áóäó ðàä ïîîáùàòüñÿ. + + +VIII. Ññûëêè. + +http://72.14.203.104/search?q=cache:Dt3J-o9GNJcJ:gamehaqs.com/forums/ +index.php%3Fshowtopic%3D5041+blowfish+lineage2&hl=ru&gl=ru&ct=clnk&cd=1 - +ñîõðàí¸ííàÿ â êýøý ãóãëà bbs'êà, íà êîòîðîé îáñóæäàëîñü êëèåíò-ñåðâåðíîå âçàèìîäåéñòâèå lineage. +Ñóäÿ ïî ïîñòàì, íàðîä óïîðíî íå õî÷åò ñìîòðåòü èñõîäíèêè l2j è ïûòàåòñÿ ìåòîäîì òûêà íàéòè ñïîñîá +àâòîðèçîâàòüñÿ íà ñåðâåðå. +http://forum.ragezone.com/server-help-extra/lin1-server-emulator-incomplete-cant-even-login-26438.html - Òî æå ñàìîå +http://allcheats.ru/forums/showthread.php?t=1844 - òî æå ñàìîå, òîëüêî íàøè Ðóññêèå.  îòëè÷èå îò +àìåðèêîñîâ, äàëåêî ïðîäâèíóëèñü. +http://cheaters.net.ua/forum/index.php?s=083fef4f61997fc4be2ad3b0a98ba8a2&showtopic=254&pid=2254&st=0&#entry2254 - +ñòàòüÿ F4llen'à ïðî fake-ýí÷àíò è ïðî òèïû ðàíäîìà (îíà óïîìèíàëàñü â ýòîé ñòàòüå â ïàðàãðàôå ïðî çàòî÷êè). +http://www.javable.com/columns/crypto/algorythms/01/ - îòëè÷íûé ðàçäåë ïðî blowfish. +http://arbuz.uz/z_pihns.html - èíòåðåñíàÿ ñòàòüÿ ïðî ðàñ÷¸ò ÷èñëà Ïè èñõîäÿ èç òåîðèè âåðîÿòíîñòè. Òàê, äëÿ ðàñøèðåíèÿ +êðóãîçîðà. +http://www.securitylab.ru/analytics/216301.php - ìîÿ ïðåäûäóùàÿ ñòàòüÿ ïîäîáíîé òåìàòèêè. Îíà +áîëåå ïðîñòàÿ çà ñ÷¸ò èíòóèòèâíî-ïîíÿòíîãî ïðîòîêîëà HalfLife, ðåêîìåíäóþ íîâè÷êàì íà÷àòü ñ íå¸. +http://la2brute.5bb.ru - êîììåð÷åñêèé ïðîåêò. +http://m00.void.ru/nuke.rar - âèäåî çàïèñü - ïðèëîæåíèå ê ïàðàãðàôó 13 (Âûêèäûâàåì èç èãðû ÷àðîâ) +http://la2brute.5bb.ru/viewtopic.php?id=52 - ïîêàçàíî, êàê ñ ïîìîùüþ LA2Fun ó÷èòü ñêèëëû ëþáîãî óðîâíÿ íà ïðîäæåêòàõ +è ñìåøèâàòü ïðîôôåññèè íà l2j. +http://la2brute.5bb.ru/viewtopic.php?id=53 - ïîêàçàíî, êàê ñîçäàâàòü ìóòàíòîâ (íà ïðèìåðå áåññìåðòíûõ) íà ïðîäæåêòàõ +ñ ïîìîùüþ LA2Fun. + + +IX. Ïðèëîæåíèÿ ê ñòàòüå. +Ïðèëîæåíèå ê ñòàòüå íàõîäèòñÿ ïî àäðåñó: m00.blackhat.ru/la2shit.rar +Ñîäåðæèìîå: +game-serv-encryption.txt - èñõîäíèê íà àñìå øèôðîâàíèÿ ïàêåòîâ game-ñåðâåðîì (âûêëàäûâàë sauron íà allcheats.ru). +grabber.c - ñòàðûé ïðèìåð ñêà÷èâàíèÿ íèêîâ ñ ñàéòà íà ïðèìåðå www.antaras.ru. Êñòàòè, íà antaras.ru óæå äàâíî +ââåëè cookie, òàê ÷òî ýòîò ïðèìåð óæå íà í¸ì íå ðàáîòàåò. Ýòîò êîä óïîìèíàëñÿ â ðàçäåëå ïðî ïåðåáîð ïàðîëåé. +ID.rar - ñïèñîê ïðåäìåòîâ è ñîîòâåòñòâóþùèõ èì ID +la2brute_1.1.OLD.rar - ñòàðàÿ òåñòîâàÿ âåðñèÿ la2brute. Áûëà íàïèñàíà â ôåâðàëå-ìàðòå ýòîãî ãîäà. Âèñíåò, ïàäàåò, òàê +÷òî ñ÷èòàéòå ýòî PoC'îì =) +la2reklamer.rar - ïðîãðàììà äëÿ ìàññîâîé ðàññûëêè ñîîáùåíèé. Ñàìà ñêà÷èâàåò íèêè èãðîêîâ, êîòîðûå îíëàéí è â òå÷åíèå +ìèíóòû êàæäîìó èç íèõ ïåðñîíàëüíî ïèøåò ïðèâàòíîå ñîîáùåíèå. +raid.jpg - ïðèìåð òîãî, êàê ìîæíî èñïîëüçîâàòü áåññìåðòíûõ ìóòàíòîâ =) àâòîð Hint +screenshot1.jpg - ñêðèí ãåíåðàòîðà auth-ïàêåòîâ +screenshot2.jpg - ñêðèí ñîâìåñòíîé ðàáîòû ìîåãî ïàò÷à äëÿ sniffit è ïåðåáîðùèêà ïàðîëåé ê ëà2 ñåðâåðàì. +shot1.JPG, shot2.JPG, shot3.JPG - ñêðèíû ìóòàíòîâ, ñîçäàííûõ ñ ïîìîùüþ la2fun +sniff.exe - ýõ îò ñåðäöà îòðûâàþ.. ñíèôôåð, êîòîðûé ïåðåõâàòûâàòü è ðàñøèôðîâûâàåò âõîäÿùèé/èñõîäÿùèé la2-òðàôôèê. +Ïðè÷¸ì è login-ñåðâåðà è game-ñåðâåðà. Íàñòðîåí íà ìîé ñåòåâîé èíòåðôåéñ, òàê ÷òî äëÿ èñïîëüçîâàíèÿ âàì ïðèä¸òñÿ +ïîêîïàòüñÿ â áèíàðíîì êîäå =) +mass.nuke.avi - çàïèñü òîãî, êàê èç-çà ìîåãî ÷àðà ñ ñåðâåðà ïàäàþò ñîòíè ÷åëîâåê. +la2-example.c - ïðèìåð êîíñòðóèðîâàíèÿ RequestAuthLogin-ïàêåòà +Sniffit.LA2C3.plug.rar - ïëàãèí äëÿ sniffit, êîòîðûé ïîçâîëÿåò ïåðåõâàòûâàòü ÷óæèå RequestAuthLogin-ïàêåòû è +âûòàñêèâàòü èç íèõ ëîãèí/ïàðîëü +l2.crash.ini - Çàøèôðîâàííûé ôàéë ñ íàñòðîéêàìè äëÿ L2C3 êëèåíòà îò êîòîðîãî îí ïàäàåò. Ïðè óäà÷íîé ýêñïëóàòàöèè +ìîæåò ïîçâîëèòü ïîëó÷èòü ïîëíûé äîñòóï ê êîìïüþòåðó, íà êîòîðîì ýòîò l2.ini áûë èñïîëüçîâàí. +la2fun_1.2.demo.rar - óðåçàííûé LA2Fun 1.2. Ìîæåò ñîçäàâàòü ìóòàíòîâ, áåññìåðòíûõ ÷àðîâ, ÷àðîâ áåç ãîëîâû, ó÷èòü ñêèëëû ëþáûõ óðîâíåé. +Ïîñëåäíèå âåðñèè LA2Fun è LA2Bute 1.5 (Ñ3/C4) ÿ ðåøèë íå âûêëàäûâàòü èç óâàæåíèÿ ê òåì, êòî èõ ïîêóïàë çà äåíüãè.. +Òàêæå õîòåë âûëîæèòü linux-âåðñèþ la2brute, íî ÷òî-òî íå ñìîã íàéòè :\ + + +Îñîáîå ñïàñèáî h0snp, sshd è hint =) +À òàêæå ïðèâåòû Silence/EF ;) è êàíàëó #m00 íà irc.blackhat.ru + + +(c) darkgrey / m00.blackhat.ru + + diff --git a/docs/map.jpg b/docs/map.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1dcaf4972a033f67c58ed45e54dcd205503bf3c2 GIT binary patch literal 448687 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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 literal 0 HcmV?d00001 diff --git a/docs/map_geodata_regions.txt b/docs/map_geodata_regions.txt new file mode 100644 index 0000000000000000000000000000000000000000..1bcc21b16965da9d7c1169807aa789eb52362dc7 GIT binary patch literal 19396 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 JQC@MW|JkvPcD?`r literal 0 HcmV?d00001 diff --git a/docs/mfyyre_diy.txt b/docs/mfyyre_diy.txt new file mode 100644 index 0000000..793e2a5 --- /dev/null +++ b/docs/mfyyre_diy.txt @@ -0,0 +1,79 @@ +;-+- +;Fyyre's babblings... +; +;-+- + + +Disabling GameGuard in the L2 client is fairly trivial, since revision 746 (Interlude client). + +core.dll exports ?GL2UseGameGuard@@3HA .. to put it simply, this toggles GameGuard on/off depending on whether or not +this dword is a 0 or 1 ... you can very easily import this function, and overwrite the default value of 1 in your own dll, or just +use a hex editor, like I do... and change the 01 to 00. + +the next step involves engine.dll ... there's a non-exported function, called ExRestartClient (yes, its also a packet). You can +locate it by searching the strings for either GameGuard or ExRestartClient.. The sole purpose of ExRestartClient is to cause your +game to exit with the message "GameGuard Fail! Please restart Lineage II!", when GG is disabled. So in order to continue playing, +we need to ignore this function - the only thing that makes it slightly tricky, Themida. + +The developer who added these two lines of code to engine.dll knew exactly what s/he was doing: + +mov eax, 1 +ret + +Why? I'll tell you: + +because by doing so, allowed patching the Themida'd engine.dll ... ExRestartClient without any problems resulting from editing the what +would have normally otherwise turned into a soup of garbage opcodes, now valid x86 instructions - writing mov eax, 1 retn to the start +of ExRestartClient =) + +'..and? Your point?' - I you (the reader) are thinking. + +Those two lines aren't present in engine.dll versions 744 and below. The first Revision 746 Korean client (thanks for the correction smeli =) +is when they started using Themida. I draw my own conclusions from this observation. Or perhaps I'm reading too much into things. + +Anyways... back to the point. + +this screenshot -->> http://mfyyre.narod.ru/images/patching_engine.jpg + +00371260 8EAF FAF616F2 MOV GS, WORD PTR DS:[EDI+F216F6FA] <<-- here (might be different depending on your engine, so just think - +what I'm saying is pretty straight forward...) + +Open engine.dll with WinHex, and go to this offset (alt g) (yes hex... never decimal). + +press shift end to select the whole line, and ctrl shift C to copy it as hex. now tab back into OllyDbg, and scroll up to the start +of ExRestartClient function... highlight the function start: + +int 3 +int 3 +push ebp <<-- click once here, right click, view -> exe file .. now go to this offset in WinHex. +mov ebp, esp + +...follow me? Okay, now ctrl B .. to write what we copied to this line. Ignore the 'files larger than 20MB message'. Exit from +OllyDbg, now save engine.dll in WinHex. + +All done? Great! That's all there is to it. + +--- + + +This file is a brief DIY (Do-It-Yourself) to give those of you who play these other games hints on how to continue this process yourself... +if none of this makes any sense to you, and you want to disable anti-cheat for MMORPGs - I have three pieces of advise for you: + +1). learn assembly language -->> http://webster.cs.ucr.edu/ & http://win32assembly.online.fr/tutorials.html + +2). learn to use OllyDbg -->> http://www.ollydbg.de/ + +3). if you get stuck, google it. don't depend on others to answer/solve your questions - as you will not learn anything by doing this, google +and think of the solution until it makes you crazy - it may take some time, but every problem you solve, you are learning and what you learn +can be applied to future projects. + +examples of disable anti-cheat: + +note: for games using hackshield, after you patch the around its code, zero out any strings detailing hsupdate.exe, or ehsvc.dll. + +disabling gameguard is the same across many game clients (even length of certain jxx, etc are the same, hehe). I suggest you start looking +at the trademark two calls to CreateProcessA + +[removed the below, as is no longer current] + +//Fyyre \ No newline at end of file diff --git a/docs/mfyyre_patching_engine.jpg b/docs/mfyyre_patching_engine.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e85e4354e371c9be505cfaa14473f09226443679 GIT binary patch literal 313650 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

&P3`gl55x4vyNFKI)a`VM`l^rjmC%;&R*RHw zMnuabZeQYsEjl4=O-xf*(-)#cehf8chMzRJ^3;|lNpE7Cag@LX^_;H>(+4+eleegP zd|v-m?TEdZR+s2UXk|syGk#ZHKoLAv2P!@ z&DSY~l!I#)Bd5+hr&6DmGC>U+XUCF5uMi@ykm5H!Z2p^(Pgq|tyIGqF4k`~N=e|A$ zRg$|?IOMl-78k>5a|KZ9Lfab1{IouT%~Hppqog3q64F~OOcw==Q#FbYeNUgUy%2Bb zq(5b1C8MN4DzvhC?G;|j#$? z%#ykYj=sI;&=>n_tmvUJt+q3Yy_()gis-~gu!EWwdia^Dg|pu-KQ=G*>RAY+ zD-M(@+(Ri>FV}wF>JhrD@|3B}!I#vYsd`RH^#7B}p`n{#BQ2grAdQ(68Rt(|4I=0XPK)C#ybF8hkfbwIL{Q+6IRe zDuc;Xo+@&^4j5bKJJFShZ(z{ya4mYVI52eHW6W-W9$%vGpaqv{;Dka`x>M)aP`=?~ zy7&-ncK+2T7N6&&#?(cOz6&7)?{PTCxC5L`$m$_iL9dIYfU0hlxAX$tU%l(=tJfqs z-zYYR*G(l}Ol4fTavU+IX|w(OyYAU>{xjJPX#bwa{UbxA?l-7M=OWl^v`Ww7qb``v zIA3a_tRF-=WOX}ZoU?>L5#D-6+OM$B2`J|dGb1s4U+ZZ7WDnwC|7asWc8N;G2399^ zB4uP9dD4Lxkvjwc(2T9~7|;Ki<@_mfT4I^elK#F&nj|hE&uC5AJ@dIN)I7WkA!j$T zr<>oQHEA=5Kkc>EDtO_fbE|`nDTqHlNdLhEy9#@DV(+1dYg`LnOfRy`Y;$1WI!}V6 z(7Gi4|ELFmztQ1wKKpMv{H%&T|5&MjRF=X>_Lk=mt_^ zm~O&id#_lQ)lUkGd=*Hja`yQ2XHcJ65#h_S%7dWyWBBjt1T}@3=xoR(n4gul{53T# zxXUe5=6$RnKA@3FC2s#AZYtPC^t&;_TsR+9*{yS+YPN#B=MG#VI_pm-IKk;FY;z=1 zrQHZQRCi4X-_f zXQcq=#Qg}wdJ-lgN8u}L6>ZdOwuEpMHr3Kb^@K;esG22`V6y3b7_2|%P>C}7_Uh{D zWHdbD^Y{#tT~*v!VX#%{&IIShCJ|%%zm$N5YJX(nS6L_jhWBh1`)i#Z2n66_YY=I@ zdCeiRaKXsiLg%N8j;@}ncd8?a-=d3fXjR1bh$B)q@sR7L&%xk7^wfh5tH!fMU1 zSNtDSV%0JI?Q`pEm}K!k%E^R3>HKF&#O^IKv-HRbXQhb+|F-h~@F~`@y307pJdYUh z-of3bpM7tWOo*B<{%0%l{qdUJZs{JW#y&^;ao{7r^GmRf$t(H~XzZ!-LC-R(CS zev{$P6!-r{GQ1*Om$sjC)2fqN{yZ%6Pse6j^Cz)J zMESjD78!46uuk>0%Gh6dB%K;RA2tD2=epHj)?fJtpEb}f3r6LbE-7>Oiu;IzR~U@m9C2U!eC*nq7+t@p&UI{bbVsNL#(Ib(xjj zmKHH-W!YicD%C&y1!+MTm708xNaC%glu`UCh6Vv;1ZAR@FwyYiN_^jT)!>?)!$Jxu zE42P;bAxcb@6kAAEG#gy_dDhpl2RhBsUXz-_*JgGTMui6#e9U1>$8B*I3g~T`Gf%p ze4>6Ix;O1 zWKGv@)kNv5UGJZLG-Iqt)2CUVD35b<0L|g}#T~!cf8W}B_0cXgvDU=cFG;;hyuZ@f zlK)V$YoeCol6KXui12qmzj6D`gWvJLcF!WVtgD6d~!jQ9nRJUoaLzr$0{ zGLCQte)F%aI2@nZ+=v_u0c%WhmbuAObxW`@$dIV(9@c5DoBiADZJ1MOinvQ*w?j~k zelHvOf^PI{S~uIRmpHJp*C?rb7zn}2hE7w^TLkm##_B1}jUuY3OiX)rp0#gN4a3~= zq29S#Bthb_T4>?9+4i0qiisWv?G4(NHG5IEB3MlFLX2@jR5wNCDA_n13|>IrDqJx> zdfj-I)bI)63OgMb=bL_e2v>Ak1t;!8rB@8&1dfCOYXS~EC|IkS&we8ePaHUvO>68i zotxyB>o9((5cAd7@IB_pMrbtREDaltZ>h85NP}&&AGbL$rM+QL>x!e)&s*>b_FCuc z$7|?zb4pWx37G)$>~JdrPFO3o67qQwNp!BH$CRw9-AIjGm;7n;)|noPhV={V9`{Aj zZ@LllSkOyPg{EAx$f=9#ANTr^^)y?7nedGjqj1ha^#lhU!D5fSi;b2d6K!rIt^5*v zG<@*k76a`FUrhh7w?%$r=i<^HC12bFK(6wq!UYtPQe^$PVR*G83$|KsuM7-55vHLN zMqusViawRFsPl8hpGL#Vl=`u_*E2v|(1Z)R|;dN?A+%Ac)^M4UPL&b=OXPGUxca1zRp^qYXICz>C5eCbvS<=FHdi76v2j3$U5Uw zMSS9GXQc|F>g%mfN|Z^-3&Bl5;7Od1RQ+&w ze8pe?Yp{^(&pWS@b41ww)cl{hWJzTJOk>#P8^0%8Tfo4Nr5`INSg_^5pdTQuy_A&WF_CVb$Nb&)wthcW5H3FY%*m* zkDy=Buc};{UYpoXM?PM23NSsoQj=t85I5S_f+*@7SzPY3{wTYyWX@;X_r&P!G$Xa% z_fbt$bpuhTlJdZ&(d2MyCk~Z@#~+8DlLCdQ56W<3#Y8(Tct;~5MuhMw-1iENS91O0 zv~!*RrlW(Ncg)XA>!cD1t|x@8haLR1%(6r-PgP*|2Hw+3&bd7R7PF{ELTpaLCS1vm z4&E9RJ-w%{9wZr_`25YH>6~R^XvdG?R4bhL$o_^?Mr7<%^?g=XMPawliB@vLP#7LQ zLgJ<3t1pXDd}PHHB6iKjVX1Q;TctU;S9|sgxyVJ856j~vyCude&Z<{V?@~rS+?u{> z`my?a1%CTQRsL4=RVq92rMx&2kB|AlMN+MxM||)acbeZvT2~}5oz$W1E^pl-ywzM= z*!;ML)Qqt9Q;| z&)>kS=q(AC{n3B+yy9_((t`G+?B}2B*JRV~4}e2f*thV}3-!PGKk+aA^X$@(U7iGB z?Fm1g_a;8a-}d_@5qAE#BlG6NKluZ>`ajv94PU-|u86cei0EYi>QHmo1)~S+v4p+1 zgjt!)bWH{Z2J(w<<~)f2z#9Yk?aK>Ek%&7BC8O7(Y#tFjh8e!;6N%Jj=iD`L)tr01 z9D}VeW;&vO2CwPaKacE}eGl0&kMP7n3SQV=`RakpbE4!zmsI>iK*FebAF#Ebj*7y> zmwsDh3Zef}jodB-r^1ys=}p$WZ9l*Y7!T;D3lt{adDXdf!z};y`SV4`{~G-Nj+~Ll zFYgq;eYyVS#J6IHrGXS%q^0Ydv2<6n?lsNB7@S50mPWf;a`G?J^5wmY8`uLqO1{3% znrGIlA{sn2XUf2XoWtSm#axR<;U0Mr{i9#^{o}8q1}{Mse+w7Z|Kgi@MKJ zFB4|V#$K60doQL#hd$tUK+&6BGEVc2z*ekOM3T+1}X!VcD`?L z5gJL*;0Jp2m*3Yh=(Gz1@pAXGNv>MHdH$=m#yNjpdT-p+SC1QK=4xP8Jn3g@cGyr% zD4M5!eDkp}Imo{&{!=>kndc4lkFS!x)}2LJb-f1QosvnyL7a+%4xQyB2+fHP(XH9R zKa;%vUlgL_+j!dkTZ^v^*A5zW@bvw=%bk$QEhizvq`i!VEbwS8&1|)vFY7k>&ESQe zM|Q$sfd?8*Xw(Ai##Yp&P=N6esU^oU@QI)KzbItYKgUrGfr!Xm?CI05Tuk9=O0l;E zop#f8$aVDnnB>?6kwRSf(il|tz?gNxeQ&k9O!g+zzRAd!7QoQr=e4lNhyW+1n*KdQ zmyK`S_aZ!56aNGk>|X*Z%sp=@B%^8Jwepx|{)Go=v2ws(#X9f%EbZ@v`OK+8Sj<8I zi`-adzOhl6(S{qSakX&!+DxwLinr%kK$?fApRCS51%A?TI%E zqfPD%AR0FexLK%?jkW9eK?L4MfYbo4k+Q;}LQzmIFa!pNB@Z{al1-MEkTagk>;+kdDd{Q9{rlwcebYuYn?9I@UxMe&ZOI+DcK6r*^(_)w^OOs1)Zg( z<+@}-C`5gLY)Au7!tfVJsFV6r{zbjF$@=GCv-$rDGyhekm?iuLEdB)&UeR);|B5p+ z{sq?=+y2E`{{<3WsX6@QYRxnL0v4}A+$*>N`s`}wIa~$5c~=qc|1<}G)nxzodneny z;7KHJd`;XfHZia0-dcCkr$Em<1s=eR`|pp1ggfYT1(M)RUsk(OMp4zwy--ly2N;q7R_Lf zm9=;r{_JOq(TE7Y)yQel_R)lsU!VO*T=q_j)n{utlYmng#nmxn3;H2aka+|%iz_{d zPV$b9O0*TeBwTqrlx&!aM$0qAUVA2OwbMCQ{Z7f7(W7+$(^BpvHa*MzCQ?{*q1>dkFlEWn#_0TnKWoP)H z-yn&ipxURzI{w1PjB+#lEC5oLkGTxv;6~*vbNB@x0vpW%X=i=$fH7$ zm;)ft)9?&4$lf&ZZVR^D@hKi6UY{Y7#keWsu?tb zy^bEAH$Lii|2_RTAq8F)QVsHV%EzTlefG*i^74Gptya9g&vAIBP?(g_BJ(}Xj|6T@ z1D~%G{ZN{+Akk@*@s22@{&`;~j8d31#h}L!(`TTmZW!#lZs0#aWNjXQ!~7!Y*P-qw z++|GbL(oOnN7JjdA6g8M{20Hv`4u{@j|(6|t0v-7wzmXH!IMaCYNc$L%N==gf;B}A znqTTa1iwX*?~|^$>jVw_{#yDC@dv?TF8!}Hi>uDBK+1GN(YwgRx3#%nzg&@w^f}kX zV*c7CHL0^V>^#ixYI`emA@b3`IhB5N`QfInyuO1^ICg#!zVfSl!hM-;`D*W$%l%oM zt8eEcA9a-fW`6OtRQ26clYh6LuDt#Ka$}&QHryHRYGN>TpGNk?x?wKHvI6za<Dp$Hmq2r7D1Z#zWg`eVM|2bo(IL6FV&3X&=#6`ly8y=+Gi72!H zBpQ;+ua1o1zO`-mFOyFXX|KIzVSOBkdt3X+{)zLeKFy;RUS<)&ur4L@Wz?r>V=;f4 zRGK{H^o=*S{%KdA%Wbr`Dkani4?zYlz| zl26q?68sWoInLr6`qxf^+?k~UC7)j0-LUP?lbt#L$M>!Z2J)3-KWgSW8P_oS z1?QKJ5ngY<2D;OAbCh-)rdpy~c z#*}QX$>9vN!fd~A!O*nK5TI7WsFO3ebj|Hyt=YcMWZ#x7b;>w-a_F4R7iT)_Ut2E# zoQOz360aAp%96}EYu*oJi*M?8UYz%-!~=CWyIp)rX7zcty9SkvD6TlScnNnbPxMA(@v%uu`edX`mv;wr?nQSqj>amCfiC;&+* zY^{`owhaqV!KvJ#v;n($J@U&Ge9=-SQKF$0ZklQgwlr+@za)F zlP*5(BiR-sc~DsK;5!GVqBRfoo-4%b+|A5VSZMj=(#9`kC(IiR$4IvOJUVyS_)1rS zcK$f~H6_0dIrQDr;XJ{w@22{3WL|MMV;q|!-8AA*~<^}FB&{A$o&5-uF@J}a9 zN?dS1q_A#ggG`4Gb4u{a0?t&IYw71h{|#`Q%phH2H-dRP9(9MVg4e+f)H;Z}%xFof zCk%8xF6=4;Nmf@eJ$mvG+S1cfvCsH%^6)Uby>z<7hG&MO6lPDwm&7`bdM(TYREM+g zZEKH#7shh&g?&x$T`~LV2;F|9mpI=iZ;SV!0Rs~TM-EbOwmw28--oYVgQFo4fN9w( zKcokKB^`Os6eX!~NyFRcr)l2B0=Vr#dB1>3Mv2bDOpqX@sXGJrVsfU&bxEO=3EKvA zZsKS|UPupWYULhns`<0xyzq-7>5|+(Ci<%c5% ziQm;S-o8mQ>(O+(8-WR)x2`o#EoA=e!F~sIr(UHJB=;f)u>bJnsl``B7mT8hmp8tp z-yU?o)G&TMac!w(N343D%Zb1$#sA8<*%5*7Kf6$}Z-6^|JKA(-F0~v2WzNTrF zQMo3pnfa7QS0X2mnOM6J$bHEVId@Y-$;oVeVKR?*VB)op!`BnK#?B8h=86$g&d2Ok zXq7S=GY8@tQNde%^sy+Be`ivS3S(JKI8S_yYG}){!bFz(%@P>3r3J*R!Fv@*WHRcF zb2=rcKH?SyJJ5V0TsGCA`7pr#oh~L$>PuNnwu=PcV(8>I1HEkykK``}VZvn5(Q=+n zH@!5}80SWrm(gS3J+>Jplh81 zhyhrRo=bSzWN0YL&BkZ8yJGW+@K9q{DvcicqIq9*16azV=2LEAq@x3Yq#i=n&{(~- zwNPTgtb5&ARA+g}z;w+k^Y*G1Fz+ySiJvQheYsGdN&rW;U>j_L%Ctqo9#GjZkcxmw zAgg6%ujlB4{qCczGv+{&WfwepCS-xV#ycscJZ%W!!PrmfAT6HSv}O;oY$W{-Ez=qr zQ^>)?oZ+RooU>WeaHU)SqFX9iFIB_Dhou(#XIGSx?v=hVu0Z`=$!+IyxG-zQP&nWs zE-9_n=j+XvcVX+D7q zybyqQqC)vgl!676I@wv+Y_LJR&(ArZeZQoZ_DnF7M|tCM?H%qMp-%{nli?X3!-I9J9^YPlT51ochNywzgB z1oZ}fbMaS5rLToReoX4=c@5`B-q)Yq2yip1gC>|VEC*3>z^6>=7a>WbJerW=*w1{n z9~qTonuTx5i)1+<*2E8~58e8w8+e{DH=E~$Z#emqk7}tH))v_|2cRX+2-XQQYrHVHVt9l;Ik4pzsdcPTZ5(E>Gw$mkn9K%Pyc370UoeHcH$7Np`rkLm9V?|*I9e#z`fCEt+s|A&t>Qt z<8Um2FYgIIA-hWgv{ux#I~GursTjDloUY(T2%C?j7Dxoi z$Z5{v*8-@r!XDv9H=%YqIYJb+O(FwdFUUWc#sz(jURNn)0KP{bt0HY{xK6$i_s7(5 zQ`N4AGrUX*4JmrPdBESUIYnW9T-LO5=lO&8=)d8wH5mcePUtEDhoU%bFq*@bpR8Xj zE7faCYguGGb1KXCK1ja2ZqO#^Wsi#H$2gDm=H`kun#AV8btEzDhM_)2$#+Oul9y+< zrN&Y_O4Rj3$@CsBN?Od3LhUJg2j}}8M+2g6XO|2T{uP@<$OAVk}r+TNbEn$ zD)U=NJi@Br*qY=@gyTGE!{i~FyLKoZ#k1lyqIeZHQ~6e^GeEyvT3f?n{g!w0kT|bw zho~f}B_$=Abb*c_6gvf9YLtl-=<-7_y-ntNC-S;OlU|VO5y!q($s!y>2XYoFBPyn{ zyJWJg$}1cfdi?R&uphYu&*j(;tc)PTIZ-@Dd=dMoTrJwtJxlsza#flG6ntYjz-;h- z4xvcQk?EaDUl7ATH`@LCAm;i%2#_fbwJ_6{?)5#Z=oqzKlC$qFeq~b0*Dn=}yAGhL zsxkNNgVtS6na@9Drt55KH$Jmrh7cv$ijdi&pDSI1}I_&pYvsLNaUY? zt+4ImH*EDim__{nZA+Qw34DsX*N2cCOvB5`YLE<|tyi0|7X(!j^6QsNm>i2bIt^&4 zwZIBw=0eLxV19iN0I9tWu-832`ChU3NU4X@hW$gfOu*cCKd{%FoAKL!u5bmyEn0f< zKh)@l4byyt`poGUcEhnK%pK9h&?0?xg|p4Pqn{zk9{04>Ch7MBMbC(0QeQD44MfSR z5vHsv-s)5`9iU#J2-Yqwn ze+aR!*;!;D7w~F~-_)t;HrJ6?=RXGVvm`tX_RPZWK9r5hW!j5Oy5p-7aqt-jFG)0P zqA$5TmVZ-BgPlO2?fZi`VZteLma|DB{@?$+je^umMPnU;9L-;QHX01Vc@~-VXR>Z9W<={sRg0{3wFG z1?}q|;om9cm8BiW1Wa8tiHuh_{=?geI#X$S2Aj=aYIz}8KPx?Vvn+%;|HIj# z*^6@f)>Qqd4f%^K;LpOa)BkXG_+|i0C+^S}zFR+NuM~#(H)lt;f~ReL8T0#a_zUn# zVYq)dJEr-6*4*IF!sxL7kU^dNpEWQ2voOI+Qow&5kTyYo)?D|`!u}76VW?Dbuek{~ zX(Q@1O+6jKC1oN%`O|m+Fn@>4lbz1%(@CfNjQQK=))uZjn3e|&`PJ0UqVR04f zwz6~0Ryn8FrCG=09P(nLka%lnsMzvm^-VIRWK6jLn`;<>|0Z&q(ur|OTcmGS<}w~h z^sCQJ1H|>$g0@fgy48irF9aC89@T|!FRg1r9E!{dPUBuX8`f|PUjKvOdp^r8LWbg) zw1inE%xF7YTi?4$Y~L}Y%aocnA6 zDIv@OW?2gj^C<~GS_fzlf?397`qRUK4NCsIENh~q3*7MctHMLsQI@Xh9k;H z=p&$3l=i*wSAz(03a)JJ=4)BdVc=lNNY+Nyw_L` zmXsy)=VxBJMf&Zux-!K*W8_lS2!0Qi&bW?x+m0o+R)fwya6A*_nO-T|N23c#om`MZ zlY?q_DwArLX;r$De_>auq#>7XC8 z2{dfBnmChkkoQ`thlRcqcHI=r&@x)?4}_*PG7n0R^=^Y^gVcn5HqbNSY7q-<{o=I<1_0*dp+abnv6*jw4R{(d42I(15J$tJj?A#UXtz1u|m>Q?P1$R9mwZbqGC(-R;A=*mbckg ztp(IMRJkiBmmH^UcHFclh2rP!_if`wgn;L1ld$+qP=)bics4O0O2O11+U!)2s{5tm zGzm5W)+jxT3z_n3E)tAw0`{oKqSGxvM`=yenSrR_)x{!I7~PRi1#|q0C3e4xLh8{7 zv+Pgg@esnMSl3T^w0Y6+{PB73;$f2gz0t-1(AmAzw;O`OJUkucT%m7>PS@FN^GwLw z;gXrcMJtuK#?j`!mf=|M*j{ER^~e~5>EVMg>43v)83 z#3Uw`IdJMN*ca4>lMoksDmR0}b?bRlVKbGLs85uE%28oMJvMOyVIe2`zf2y~?Opg_ zwPzs*0TVk%Ua?K;Q-Dd-8g@|$B0)2V%^u{-YN7^^sAK-3v+l*DqZ4X8%-t~DAuiS6C`uvYigrRQc@0gNGh6K7yMr`Tt?4LaGCFX ztC-m^as69z3A{YzfZ806r}Gl6Io$4y_?L|ehptVN|0T0(O!L}a!T8-=-`owvTLz)KE#w~#jO2obZ5{ewW-8~x{H%@SLIdA~!=;ze zj)A#e#J7zHy&KymaX&q=EYjW6vr!BcR^5kJMp)03gBOjK)O8G%7}78Qn zmADrdP+d%5j!#>c*=~*?hU-g9Jb{qZP&BCc%?Rs{M|{}AE{Qu+wwcQxhvZMb`rV14 z8!}Sb@kw!8Q)?LrF!-fSqqns7YinyXIwX_8t4T^}Ntd{~oA`30z9?tEkuyGPV)nem zBB$Y@yGP8LUpfy@PbNRPdmKCQ!5T40LkEvAM&{zm@@AL{ptkavb8I{l86WB))0P(G z>2!^Eq*=0oiG@+7mi}*~yqGfUMP`>oZkRZk8*t!yBsO_Jj@Z9tL~0^{wYF=RO+lHq zelo74_gW_p6{k1vQ_5nZa;j${Z%o|~yG>H8+l=i8W3!QOWCBL>pkW=l?AI`@@0DM& z4U`qj#BN$QBCfy7p-lc{ghsfVoly+-?sMs^m@LL?tjb$N-rI=T2xHN>=?6M_~x6pKm1a+zyxR*jwO-wlD1q~J70kNtFZ6@?9;Y~ zC=f)-Ph5g0Ji1j)7qG49&Sk9@xMoyXL;vWa`<=3kcy2?^;ppWVQbU!$2mSx$M>XT> z!g&KL;MX1|VZ`H|LiE%$@JuP?M=z3p4qgfyvNy>*8~~ISL2QPRTC*EGw?0KzqXiJ* zeY2YG#UP!;F@p%vld^L&q)1ly4q@0>i#YLj(k2dwrUP-Fb(x6JgYqc2`3Xzw z63EZb&0c>#fdhL~9y14EF&N~|cohPb75+H(sko)BRX^)}s~+F*+))+HYo83~EgNyJ zBDbnk03M{j)F4Cl`)6L=16_3hWN45#AhEdiG8f^t80u5s=ahGIxA5y9D-W_cEsQ3z zy(2hoWUULeGwZuM-}7Ug?|lCuoYH)<>Omq&YC)@3&0W{_bce)hg?%XSyS|ZtvfrE~ zb(8r0@=`YzBU^!_ue5qcXXaAZ%uz~gJ66P|>jd!K&jt{P(?3#cPJ&ojJ zt3lzgH^?F^H7xIQ2ZB>3cN$f2J7Ub+;>v4ASy^snUNDU&)7)lM9U}IEA1)eD@x*hG zbR>DFChY?yBgJ_wUA&#)M{CyTz$_MK0!C@ayA_LbPQgL0riU(NHIz=@XTPN{sJ~Ur zeUT(A1DWP|9Ld<6aRg#NR#x_ggt72t%RDoHjzu{#B98_VX*8{Wl$bDGV4h>6Qvs^EVM>{nMtNibL@tni};yV_*#)#NensCzY3*5lM3Ajhf@Lk zPo-mXm4mSO!*P0%hT;}E!jFK(5T5GPzO(}6IFQhRpcS=PYRKYeb%-j=k<*x{O$&=BB0_?$z@li!a&m(6Lxiw?3t_JeJqHOy_Z|Qc63wFSkh;hxow3x&B}r$ALMDTl)O}N)bn60yM2I= zMD(Q{Q8}u8VE|&p+O?kT8bQ-Kk-VupRi&LOU7jG{WL&>UrY!CAq%H(i33|Ti$0NW~ zZ-}a72e!J>vMp8QY2gx6xqE!ZTEm9Gnd=Pn5WpH-u?kfvn?-Oq6y5Q9W!!9z*j(Q| zXR{<+Omoj4X!3|S+5elp^wz+tBX3`-E_txe&E53fXODe{4{)jVTw>8fbnTMK|w7TRb>@ z3z`L;Y<|xdInDzn)a+94BTLA_<~O*16W@FBZS4<&N{5DkZNzSehEo$Xw>^9%0(73_ zq9rd7;}VZbw)azdeA_%iHfft~>O%b2zQbejqK7q$ytJM;*%zu*3u2QU;C=T!U}O-$ zmUCd(gn>n@FpW{B+e|Mp45S+-TU-`Q>sK01o5{rH@|h2&&$}l2v2VH&YP=?$&m3qq z5ZE5%&G#}kH0L4uX|;9(>)>3oA35svi%g!%praL6EfX`_@O^hqCgVmFmf@WkePN@9 zI)~iSYk2L%xl34=x9R62%4QrjU4(L=>ijV{02ee42&TEro?>~XZ}zzDDtI$ z##e{sfiabB;lN=hfuodCUg4s8v7g^gY^4D%w z2%I~pJSwMg=iG8{>-FD8C|7WNy=JD_U_7~KukM$e76M`A5fD&HO^cx9l&!3q)rbP&fC_5{=VvEbK_+op|LFE3x0_ zoW;%E(J8k}11dG#J(X0@uIrwLjU3$9^4vyjF2@eH1yv^OoW6u(mm{4?%SYXKwy-&L zz$>%_rVf}jhQ!0DQ4Dk!Rk>eH=&)s&Z9jm8#DEqnP6@MYWF=m4eN}y)DE4!R--_%u zPwPq9N((NPft;)C%@qTe%aq^!`=lx=Wjrv$axknyaRC#0ssoL|q0jN)IkKJBtK^;#N`kHtT2 zfMwsNiMDE=4jXXAn88)~gY3#z(`om>gWC`_Y62x6pUiRbqsffco^}TEPkf)KOHqq? zpz`o1y0lnSQ@f{!FXd|j`=`s*4~(8O&Kp#CW-N+z^!O=l*$C`AGrXkP|8;pXQWgHU zQ;~lGNdNxb6_2B)!9453`Nl5Sk1CNbjSHLkYc?;~{~!>{nt_!W^ZpYe5ThS*3YGr_ z9+3Z3L{qD-Mtz2_c75joxnaKp$F3+Y-<{@Z&3%|U0vkOpnRp^I6s)9IU&SY&6Tn+* za~y=-BQiY%Coit5dEQ|6HTT`Z4pR9P6@MD16Dr`ci5_Cc67nQO#lO{_I(bcmGPTXOMk77};^5ULPi7bH(*5;cf&htXM7`2+1Ir^F6 zOU&=#h*NoLe;TG67w9P|AtB=?6Za^nx|%LH_aClCw!B?v#-0EefXYn4yRIX+HCxuzSLZnLKFfr=9eZ51%~o=RmW@-?d4s`3&*5Drfej z00l`p4={OXVUg6t+qUf_V_HR+tngbJX+3QYjUeYn4gboJY_ha4i4FDnRNL0LHO2wkJf382U@f4wQBNG8L@FykI(rpXuOF8TC!D%{@h zyV!LQ=v#H@35(jtUV)&ncxu_jo9u-*FsmZk1=k!OJ9Vri2`AA@;2mz*PhuK7E{xC; zJGP4%%7S`Mu-6#}<$N89v$_;V0z|}uQcIWYF$fpA!Wd9b{>`#8jl^w_lHYiw#i)6TZjO^vy*d zo^ylcH5ll)Z+~sNR8ziZuCyS%bp5BumzM2)_{2bq8DC_F>J0afPvg1 zz8xuqIr=Vjf+w%}aZID#E{M4w)e#1gkZNdL7qv=3Oh2sn+#|!Ak-RU0ha#7_3?8m0 z7fWrB`RI`g!1Dy6@R-=cAiE<$J>!_y+_F)A;Y$sePB^08jkIH+C6ipk6eep%0{%2{ zN>KppC+O-9b}9)fyr}*_|EL}ZK~;iV|0yaN@y@)!N1bk!{_2x6c6K?Ny@5@knxc~V zz>8xXUqpzsAM^qT356<@Xm7JhKjx7lgP23w2`lAO9t9@JKf_#};q9*&)vmDF{e|Eu zR%{Z69M9)HQ>9H{aSAUQl%LJqGm*uK$hl4vs_ zG|_LN_TIb<#1f2QKcS%xlTPU(y+skm-JC-inpt0Lnhj_0^TtPYAh(dAW$Hoh1!+kl zk=TvO*>CaT^p_In+1h$6utYZTbSjY&yCp4AG+9%KT1qK5l1odUv7@HFXf}qBO?By! zuv!7R%gU%$OIZ5jU~!RA%;cdC0WBoVViIKJ_JwXFt)_GjnyY)2c1FQ4WirQP`-h2W z4vW=BTVy>U-Y8L4Fn8Wo)VE`gJex^VODm)M+|WlK&0;;+#_As&KjCRk2V90-lqRQ< zY!*G_4a;_KHl-7ro^Y5A_`y@>{&k|f?)4M!2wOI2k(7s-i z{_T8{#B{YSaE?{eB}h0Ow5Mnf^m+CPN#M7H1 z+`sWU+u>!&olIM6Kc@km?B}?~&dDxRSve_ zwk^&=Kf4!Y5JNK9x0NcG$;Z8!GS(8e)ckdcu^KdIA=#e^n8tq}`K}52-9(XIJ7*46 z9_%Ong8+(ac(<`1)31ZU90VGwv8naLtVy5&Lz@Uabs|sWYxqkpVFkLUc@CA3Q2{$N z1XaC%Y3}~B*!k~I8rv3Gb{Hppk7xLJ8yYa;t$AKC`AD?u*ENBgRhJOYVJoY8NE<>F=D(7vbl1NJn68X=<+e){FVLUeg0)EWB;vRum=gdikC?* z7pf-_Y2{AH`=zf^?w>Z zKv_bA+nf%!nfIq8_e=mjJ!9(VUQuelHIGJyApMOhC)RW80(ZLY35g7Kvr@5=HF5?a$> z-G^#^B+21j2I;AdfthBcf(jqrsGbkopVkMUvG@;$4F^%v!qJ)2nI<=d)Q1eZJr3NR zWTMujM-Va{YM^j5rNhg6v-ppPM0Tu6;>_+c1cr3|>L&q9SaD6~Q6SI31FE3XHv-B% ztWj{D*)GEyKT`(y1TLMXIDM#{`O(8~C0k5AG1YahedghqgNQK-<0WrShfirQgp4CsMETr4*OYG6Oo6OLSl_X zuuW4F`mAQnh+bg32E4a@Uv!Ax2CE5100YE~(fky-&H6y{4ZW>ra%2v15C;-^dhWOj zk`Hdff~eX%(N(u>?e2y|l^%)nz!{FUl%_`I0{1|pa41y8`(cYaHjJ*??In=?;c?yO zC37_k-69kg6vx0hQJP9mJ_&vmV6j^TbaE3cH}Hg-fsh%shTw36oVah*FsH)AHhZ(WvV$N#WLDjRixKLlKy-!@SH7zkIS*=>W zmi@*{^-#6%(qss^KL~7W%ej(?pRjbibQ#`*6LQCp(o@2-&CL}V8B@sbw>-LS*v-th zE~)eDG8@{nHJ9+^0GvavN8?D8Yw{jw1xuYt>g3to+ui9}p#g?=O;=aG?>m#!b)Ol} ze#!a5c6YmQkKZZrXCcx3ZfDQ0Or8LGlM9!KIk84-%$A^zQgpYUM_%~vW_q*&hSQtx zHFp2jp2=`Rwb1Xa-$zseE3ML>Ze=&ZT360 zVGEM_6ls@vs~qvL1i66*3mP+DUl1f93Q8l{Re|pe-J#EPkvO<^#_5bMV`iQdcM!MPJz`% ztzkB9|3;YdCv}SD>uIuv1{1`;@ud_so@+dM(Did>y5jq};ETW)5d$KcFMnSTLVzKu zW5$!0Yb_9+f!1S$&lGoeUlK+j5({jqa*69B?RMP zz`9EcM|UX==VMU?@ihgv@oWN@imdvUx@VDZYTmYk$C0R1k<5+7pI@3oV30IZYYnq` z>>`KVr3=Hy98K~8R`t+L=YP`!}hrIC+w+_nI>DQ`(oGNDpW$0PJn9@}2I0Z1LVA02bdzlP2rtfcBTN>W1 zqTa?^y?TpjZH2f&1K3;prX{F&*15EKP-;GtJB-9={&+#St28EAU0O~0h}2je`lU9E zTeA&&NuKXj-}A|6p-wdHCadg^AJfH!EDn7Wv$R#zt90nM!XsakUXqRS%4bH4+=j*C z+XP3#+V3itA+WbdEq1PH=neG!K|n#rXYbo!rWL&ZNNi4FSkMs@2hiw1(-lwmcoh#j z>^2!{JJ0YSYSZ**XeT@iwzp7jf&yzSJmw)cJm^;5D;>PxIm~$>^zO6A#r3#psh?~O zG>+ts)xURVBt5@xbbmYR$fDlSNE=Pha0-esOh)vHp*}Cd;@tcq>95`Ra-RSw-JS6v z`rhoY3iH?02!QIZrXuK}RtZZ>fSZ<+b2P3l7m_C;#4%pT`pyPJiFPCkyn_tPn7!AW zcq2BK0eU>deD_jKl8VI?It`48-Y}@QUNTMR)bLeKr|TDyF9>B9irfPQ147veXb!~G zbhHokog@-x(<94{7IQ*>T>o_O5MOr5WkYC733O&pzD!o15bl+|csk$xVCe+^IH~!Y z>)?L_aC#)`0+idu2{KJhJXjXER{+G}wB&V8xzq!3fE}X{$yVW^qY`zwr-Gxl0`*M`H5XGn9 z%zsYWp~Q^6jF1uxHD8s0>KSC;e1Kq-Vi^;KF@08iq6pk&Sr9| zwT2!(xj4t3JA|~;a?L5K)xK;t#tTcohBp9aR7?RDoMFTEebcWP`Qb=Kr2d|Tz8I}i8osSCU**pSg`eK;AD+TN z>C=9^#t!nQ)fW`yCQZ-#ScOUXW1mArNhTt~NN$E>nt{Gp z#otEY8Y;P*i2clpHUglDy9e`NaW$4Rs{FFY_l^=5as6cvdE%+CByD-EW|USK_kA=w zkG%#sN|$ovWu56*wqHq1li;GU&%-I*jClDcd5hzirWsbOhDu{9G3`NoNp~d?M>nb< zR$}dgr>R^uW(rihSK3VuCv0)QN@Mrx0d{6 zi)a<*lWR1TqqP$>@;e6d<)JU|wlfUsI`Fi-+1TX=S}<4xrc!G_xf)P*;GP!zL+vqx z;0w2&(*gAp&j;l*Y@;9=fPCrpHGC%t%|6eKU7soJ+>SY~WI1KB;2fU~{p=7|g$;9J zxnf8dueuj$X2_bRKiT5rYNiQTwZxf=YNNoKPxBK{wOUR&L>Wj9hi43HTVuGbWr_vo zU!|6|D|8Mo-I@I55Y&1Rw7xqag5OCC6jPFH-A4xCEIinlagd*Hpm2_!gKZ6jKMvlU zw6;f{0;w6pAD0N(a?I2-bMnL1rMeWeCO@Wxa$xy|ih!tb;YhUG%kz`Ytas4G;au=yJxER(~JyrZ6TFyOOZ&hpklQ2Jm zki~z;Q=N#XCTP-P-wXO6>#iO^`|GlorP$Uj%+nEhUbLJ`*7Y1BF<0J6Q};|FDDl@f zu$+uzoEui~HB+DJ=bux?JLffc-aBZ3ad2|18VLuWPq)VYGD$&Q((8mtZuOHGXY8^= zlY2N@%c!LZt0|8gW<8fs17BPrgL}oVCli=SxY6CIikzFL);&+@5QOroV~#Si&qYnOFZhz!K^OQnxHON zsC7$PobSic1lhR0Eu|ZF4VB{xH(xEl7N8GVW?rVe99eHL@rORhB@DuL#&1Q_MvgV| z2$|+1v^=4Zr~6hCsjgjg`=La+p>6|P^w#j(Gv8|-^ZlyX3cxIye_pq^afjsk0)F|_ zn%7n+KHO5BG<<&`v&3C=ik`{g12mmciCF+vPWEI@!-UtkN`l@q-b|{RcP!-F1XL!46?e`Qi zd!D=^C*t$qXu*NgqSgTyr#NiuO9}z-jCa__Gt#qlwD(Jz?|XI6?OA&AmtcNFKd)}` zvE`$K*!_U>OYiItf*+O13-c2a7sE7ew!xNCMA#)lV%oP~k{3Q9wo z8u8Z>{J6aCYVUqLxAjf1ZWQ+vGzf=sVAG>hbBC619OUHWoDP<~BUiDLca8vF4%mmn z;YMDnt67M*u+Cw4-0Y&ZOBqCHqDCLoL`s$}`q9(Il~R5`4%k^2L8c@vw%)eIN7^Sz zoptJN*%|QR5-MRwGOs;DsfyHY2x$4yel{fx`u%BLkU4vqYEqGlXd@jSB@Wh#{qlFR2O zi3Q%X65bUvY+BBXj6|FjekXq_fsQR#lu6EW%X@r~m2lR_ebS zOY?I7*4+tpAMn&9s=VwU;bZ^7UiIaAn_wKrxsm0>-BY@z7}G1)=I!og-X6I|1MeJG zJ~>_<8$Rj&gTQ#y;cV;=0w9Q0d5CR#5Bbd^_3|IjmAg^zs{Mk}$(jAX&8GZycl!~V z#CXA^O+1A{a>ea_!L$a{XTRP!xkOTmdV-jko89eEC}*psgMw6 zx7PQz_1V7o@~z}@(QHllN?KY03Aqc0BHz0Kq|^s-H|!f&$&SD-g=RW0cZA(*-S&}i zR*HI5-7KmoV{J5Qn2K^s1ogCvrtstJjU0^P^Fh1lMF$-9h)fO&M@Kv0L$ZnHFTP27 z^97G!^7}Db(l7H9D%MulwC*p|5I{-a`A4-!UK2ND*in~LY)RWK#oYD|ABmU`U@#)L zks`TORbf)iBfCg+A^)tcZ7<|*QmpxEo9p3?YCv97t#Ld_{FhMd;##5V2OL=MF`)ui zv#inOX06E*dw-;`L`+h8ceCnxqS>Et>o0&Hd-Mw}a?tRl1p)Yk>|5;-1zwGbye zrQ#;vVFUblDV!1iC=8QEPNG$ucimiv!bZ=aW#skE_SqHApHu>`F$-F0JEF~sKiIaG zy4F1o3z*Imt&UgZ&6>Q>&rx9kgaSZQQ48*k|>&o=Fdm5)^qv`dXu+<$(2)D{VrvO6T(X@kpFTn@Lo07TP{nfqt& zi@H0iSf1hX7M8+Z>>Yc`Lc4O6v=GDJz8hInsWgsm#tDulL#@XV5^ElbQ*}oqA;ytw zo{I=dpMvDj)L>dvDtBdUA|alvd=>V^;31>0lo%{@-?OONYraW_(O|Y~9Ohr2n5s_Z z^t7B*Pf&wvaDFPt4A<}+CQ&9%6HcFzOBrGHwdg|ZW|u^@h}y?GamP&hUh;CD zn3#2Q8z%hlp79xbT9o2qDhC(Qp*mP&NS!HQ^vm-eiNoaF7>*{E0Ch2DH?lQ!7)KgT z+2-MAY%l^lHp3R!^uO49@1Ums|IZf?R6vlfR6&T;pdf~h^b&gLgd$C9Lhqn}^iBw% zG${!XnzR&}BE2X|3y{#86alFg)X(zU``h{MZ}0BiduMiM?%cV5rTlSD&N-8F=KXv< zpN}WwF5)TzXIAyg@G|fYk_-XvV{FDfUy)Bfbzd6rXI%e3A%me#i`e7!a1L(9*oT}* zWrl6McuZnHssrjUAm8ko-XuMDC2UyO17cO0QaOingmna8Y}SH%R}3Oc2!1UsfbQ37@W_!p%ng`sK`S~T6Lg=8;LkYJ$|?5P1w z2%c`Dk)aveX?eu?mp>?gsU0lWqG2v70iMR)vu=}=2!C_;v=#3&$YGJGzNG7z z*qQUE@=J`CUO4xGmZPPewc}C2cz(ZmyI@?!%Yi(&_yHmlWCCXGTB+fhi#BWOz!TJN z;E>T@MpC-muS%$4bG$o1#y8b$1cN(+-qtZN6TS%@%>~BGMIyRxeDRga)DbL|4tiAj z`E&I^itsp5Mt_ z+PKtiEm;0ty8RC?9RH(vmbkG=^$eZy9((-M)CJ@BfT@F}(_W|EXKqC2Jiib9GADIW zNw<4$plMEj?bybGb%K=)DsG7Uiddak5S=`mzG}s2CVlX|C~ABB!RfbnQ~}2^$2_H% zPq~=xd~->xA`^{D?Ic&lD&v`VhA(nm2aD2z`RXu*jy#2!SSxl6@oK9s@hLHP{~=J; zM}VhDqnbo4y}^>gw2kTb&Z3qTpe_HYOcTl0)_GOgN0i1@Jd~|oj)m;?Msk$n2j}Pu zuFnHiSMzXE_4VpM&NA6VPL#?69=`B&q#?faWiav(9k}{=jg=rs2l-yot#4<$;V5Hq zKEe#UtJS-BR~#Ia9p5lGoo%iv%qb{$wH*l)#ylYf^X8O1R^IRuS8TqW-Cj=+0Pcid zqd=fL`%TpW*lu0Mjf9mqIm)vCldYi*cv%FrE>p2KdbLvxJ9D-#40a=3w?p(XNc@3q z!cZk*@_&~oio(3{6e&}o$^B3{d+*|JA6SYZV_q<+;(qPit%j>%PSHe1jyAZ%W(V8J!gik_!hbHBuQh4GDBygh(k6F-)( zPsJ}&){BU5$PDaXC0*Mp^O!Q`8Tsd+f0$yl zM#n!*aYTL`|LGZNwKFLoc?g7D=-t$dnMUeqd=z^?djpg(CI(Fy5OqV*Jn>-&mxtrK z8El7l|46a_?dGj^^o9sk1U9q+#TktlgmAm$myLTcx9e^KEin+=w&_A|bNkc!KT6}J z$g$=xj!#i~yD{wh)r*|rK1GXA0BqzbIDtDbi=fL=;L1;qPefT?Evq<} zalbIcb3_;iU#_Vdj!lr?>0kLTE`E+HQMeayb^$E3{4{&e+7gseLN*99#oo&W?HjUh zOAKgzWEk|E(MPOVaMG&nCFB{1s7p_Vf)be6Oncjk%GZ~$?6U^#H9mXD$pZ+c4jTa3S@hg6<09fmpX&55;=NAw!hxeTT zXf|Zrl?EeGt`&KmUl`cA=REl}* z6$RGtpNK^&bPi^{u`*ON_;u#SKAw4YWzr%_av&{qeF)ls4fLxGWoU;r!1Zqc3^ATB zQNPIc{VhnG37x)aRgkft1x~9y^TV#JuH-=O4W+6|@^m{(sYXUQkgxUqp4WBtG|@3V z2dY$h`^3CXlYwfx4YVkfh`N00+GPIMo{Q-4>h(n)qER5s$ke*o|d zZ?J6yf4}HNkdnfi%qq$dFqPCrgE_|;Bt1HR*)R98u056^B`vu7qJ(HmY8NunfRGU! zJWjfOqU!Ff1L7u%EMV=w2V}$d*~GGT<4)t4v(4@1m%+*5U}j$IyI#Lb5Xvn!eBOtZ zC;aRj(`!ew(RU)cp#`X=#IGVdgvBkfUGvE~XdrhX63|9-M4z&kJPa{;4Rv6PL_>LH zuWog#1x(9YH>gIKTYru>S03zf@~vrqcLjm`g-gGJ6@}n1T5ZlR9~RV{ayY;W2ZAaH zU%eDR$cOF&Va^w>Pw5laLk&D{@QZ=%-dE&W3>b;7TNi%$B6tC9ZEBV_nQ4p4V zu7oQ^ph4TnvZe>Seo(=A@lw@ZCHi_rx4{p8Q@nm~1Jxo~B{M!B0YUF}aZeYE z6Bsq<(%YH#zgvaXI58M$z^_5_i3q$9b2?>W-jXF)C-!qkIiWz&%#c)^5{M0fwk+f~ z{bJ!ohV2^PNGgE{0lY_Z+CTp8k*_P|tDL}%wY|jY1l#vi(77lHaV+MWzh!wTW?Ky5 zb_evJd0;_#>=FvQ-_NjJX!E()t=iWuw?Q#9I@`&ycdup)EfztQRt)Mn>Rx%g_57$` zUG7DH-;rb9P$j|G_xz1tIXH+4%!1Hf(-F(6m9R{EmN|{vI*=+K&V!j5>vh<(t->VH zu-1P68H}E9xV7%L5r?aKAETEIyu=q%jfyyu`122Ly%H$_oOg7NAYavZ2q$9YZtho2 zhw?uGJd3)rL-)Scb{e>wlK)dWkIN(Y!LKne0+;21L<96!f05i<;^=yKZcznf&)YXd z(aS}gt<;)c(8N@HCR)}|JY*pkxqn^euk^YIuKH5rn7au?V+s__Wo+*@9`(V!UcA8w z5E1n%eO;P@w=E%dwD08=zT6}EdJ*RM7kygY(FM?FcT3?qH-Druws6quno{b?9Sv%G z3vM`|p;kZd;B4SQ0HEcx+~EA`NGnQ`yN(}&L}4Cupg$VF z6MIabJgR_-cfAHd6=OV%K)DI-`O-?Sr^XV`3!W|&+guE))& zi(vJc7`G&nNu_@0ij$I)Evq!~E4q}-n zZd710BS?Fr1|UyI`HbhJVv6MTo$iFnXV!HzxoBowH4ZDCzv^#?s6v(NQF@PZm_RQ_ z<=O{_H`zlQUJ-&Dl>P7|)WU_zR`s&8Vg}%2YKlO8rr77)1i4I`adF|>8a>Q(=6?rQ zL}Q5E=f6#xWS?+fOLV5|CAEDlebmd7p%#I|6t#hDV|hC}vQy%Rvv;#qA)5Vb`g%)E z6{}*97;*X8v59(>4SbID1@BLhU?uH0(hny5#q=QDW(jRM1mt%=1SQ22%ixdlH7;7g zCi@W0&T8BH{EF;zqxvlyDrDB8Al5$JZ1wbDQSid{7i>!d{B>HeH*_~#dcOVMl|N<} z;6(FSG*YJACuwsn6}duPIHyr+L$1A%-dvNF#yCSgNU z=e!!>IIl?H(gG$uk@wj;XL3DtQy~kjU=mXDFKx3O#b1#qB)&y17gzn1T zQ2Nx!#^+_iJ)NGO@PrFB(_wqzlNIW1sNH^Lc%cMo@{7m_E<1pJE36Fa)95Ys`RBXtOA1LM%qO*W4_V4?{uiK*D_ZOtI(4LzSe z>iT+^#5B2>Rz8s3PiO$AUic1$Qx2BEoOEqN{cmo1NTMGwGH(Z=Kb>U24I}-SV+)M|Aoh; z-vg)B@%Lq+-n^91SOELZY^ho_U5JuJt0<0;3c1*YF}CDoqic{gajhRVCOj@iDwl9G zCgasp#x_e`4{KnOQ0vR`h2+9{H!M%6c~i)XCF8r#)0I1V$EUbP_Y^JEOF&@gYq~&Y zUP->1HG4XJhMHS5crUheq&5s%q5t6|yPZ*O@@u*qB_?fDm)v1XHA zS=mC}ovVdu>0PN?bh)!4VC6=VXZ#c0!MEO=-&1^?5rM;#!gjeg`GdRmhv+xQV;-&ztQzVS8@7ePvB@ER=_7QK^|c5B7Xj|V~L_;dz|W@5^C(# zTt8D&-N^pY&y-3|*LqN?oY%Ly*9f5QQN8)O}FYwd#RFFqbXe(}MqzR<>+vc&KFJ~TK$xtBm zX1C>JqjHAh7}ePK><<3Grzg#;pV&U_fgYLHd7Hqmd)7tGDC|!EZbN(MzlY925Lebk zf+!m1142q$cjab7XYaa=7 z3;P-NU=GH*P6eE>FJzc+J#N&pi9VH9jFcT^G+nb2jxa84AE+hQO;l5RHc5_V7R7|< zGc4pU>`3GzOEMY)c~|4x-#ci=!)g6scYfi9@s3lhdW!diUcuG76;6ilmm3YG;@m*9 z%wWf8!*U{|g$>J+$7C5^TnM}qE)z){G*7&%6=GgZc2*RTRM<hxm{pDF2d)}93!?jGc=XHloUl~CaQo^xh~$rTf$ndcECy!&Wuq0h z(0^dJ1UMY9jy z77arW^#xTSZ=@c zam5?WeD^)Mrwk{?Iwiuffa%`1a@B05T;^@JD~TJ2FrjPHOl1lD@xMrVgbClHV8%M$ zkdK1VBa+`%jn_NIIW-g=v?uzk>fJe&Mw5;LycS+WzVd6=0@3Ca5*+rw%ZvtZ$-zLQ z0vHc#{e;L9UQcca3SqWH3Z-8Zn?8S2STd47!pxZ)pnp{24--*}<;@SE;;4{sF=C_a z&HXaWm&CFgk)+02am|{w$RMiUXF}N1oZU*V*;=#6ZOi<^OzM@!=cTj&!gU|8J{tSg ztcXK*>CycL| zH|2~(85$Ar_NCpVgOKy5y6MxNQUELstOA_9`^tI_&!cXl>>5`F?y(A@3atcsOcZ8P zIoY7D@un{n*|l|ZPFG1=aT01mQ^7ClgtSf6H6o?g%qxuOEt}X$3*y=Y&>(Ri+VB1& zc4AmvB;=0>X+_twLH{YM%!Z7X-PXbN;05Um#>#a1NM``AK}@;=B{WrWn#1nYqHvjx zo~zhCX!40+u7Kn~z;_&5_L^Y1o;enTRsokET8q-SdDDwgs`bNo>msF>@<1!EU1L62 zP9JBxynCO^Jbis1z2xF!v1yc##LA^3g()%Vp50m;+rA!Y;r_3D^;jya^sla&?3qmJ z1*YZ~EfCU1V47%pU3HUiY}A?!>N%dXq%y>;Rd?Y|dv?5ozf2^@*goFqT@+T&+Kx8o z^Y5mG#2I#+2^xFLbIH!Y;1+#JKgLNA@gsZxmnpU$3ru?iw{u>d z+Z^ZpV1-wdw}YtgY@sz0?a~vKk9eqiTQ9M0ob8}?&xnT@1J}lf{w9ZPdDkp;)63!$ z&)xbln#CNIgA*itD{#jQPJ6CdR6f^rxdShCdqyaG~i&q!7<|4;zr7p8G>7G&IS^FS7@J1Q`m~^2Y18%fCD#jj?rsZWrkteFU z5m#ATKOT!Sz&8iyJYwax?|p6yzSngL8@G0Au@eDMR(T z#^Sd&MsuSf{S^>o?d9rAB<26!ts(C}dSaipKYD#QG^ulD?YQIJI`X);|F7C#w@0;j zlluQYA*1dzBGxj*YyVA$-p|HcTa9RQ%eOniTLj0#jyy+|P2WS`Z$D{v{2urCHekSz z_EFNmM+Gdb3}3(BI{M@Jdg_rS)?&*2TX@%VTldqC7Qe5ZJQgr-emC~}eUQWd239ua ze+zWu^sUisAZWW^?bAuL&tV_6TF0hH-~Vb*cFrxu`l3*}N8=ikuXjBP6Ay15-k0<- zXB)m!(%#Fl8wP~mmdyIY_Qf8<7DUX%cT0cWd^Hsr??~U(E-EQBq6&@jq`2>XUDOL4 zvhLN2JXloHuPa2pH1ZvWJ$OjwF5}kD+hj+5Lk87(hUpOMf=i+F!4h3H+hV~9W$aII z2~6a6dFs{6@FJ7dqt^MCIyww}mZh0RWlu?WXeSVb*6Kn{j{2jIf4-qGN3!Kni>!~A z=BccadBsSu(XRbHP`DSznNkeh!WO?1P6ni8F1CfBlJ?OHM)dcT7eM2Yeqh zE>+w6n&=_$m4tO|@Th|*T!9dod0I!HOSV-HwahfeKuYd82wUB{b-v8`^@lMvv@vTw zX5d8<)s3*QaIICo(fww6N6Bw)JXb)219jkxeDaN@sZMQ6VJR6`RA;-3CPp|~vm{Xbh~%{2dev$p?vM$NCm z(WOJB+vp|H)5y-=`LN&260ccpIMN`N+qH8~FETDX&9`p~*&GJH~R8zRYWj-0{wJcV=SOnY}7NgW7g z>Vb(o>q;TnQ!btklxhNk{$e#m?08Fy-3qx@T$2+t7@@35_&z(s@l&a#vF1qMq*xR6 zpt{JD5*OJxs0&79-WJon4z|2z-KaIiyL7~AVvt4`+2ktg4mZs3D#n?d_Tay_kwt6` zhVsqW1<*9*iY+=}po5mNAkS#YU48j?!RWg)l&7j@+sYQujccH?C+TscNQ>OP4*x-mt$z(xfWwv?@Y%ihDeClOJ_Kn%Q#6Mt ziyLWa&s{}Y{1g{@jr|AE5##^0fSaMu_%mqsdp&~BT;;KxwNKNMy6#=PxpDfwD#BDY=@g&ACEDngsjBu1bs|L3R zXa(uURKu#u$@f`5kj+5X$b}ZcU@&XVQVGpMU%vSZQNseN!G4S(8%FR(&65W0H~4HX ziZ7mS!hUVBfp3NUAKdlZjZbzgJfEjM$g=>QxTL8pz)Z5)h4pkh4@ti(*0}uZ6D_d1 z<16(CYD1F2xjx^GS~dswD;1{YWuaqMq9)V3jkzn|zFeL2r$m)9(>eiv?eG#ovB>=$ zd%lq(aUw|`|D(>jd%c<0*Ru?84kFT{SA{NgxU>1iul5m{GndjQrTxS zvguOa^)L$mo>as>FgS7B>sK{*0mqM&$5kKqTpVVySnct_sY7&noT}lxTPqNe{b$76$F`m?)1C zixD4yX^Y6)y;q0Nwi+wkB+}OAmZOjFo1*p2z z1`9p*)t8!RudrL`qP@Rqy_gN+(|CkJyPb{oGw+&oSg~qV+`)vTrra?MepdG=H^kYp zAV)yS-#3`ve{KY9d0=T$%0ImLA~)TFY470wk^iC5>wkHMvU+YgL@BQ!zO17u5xQJbZln-T!xI)`Q5-NXm9q|2 z#)A?~e(_MOcT!#&l@Ew_r~aWR^8WR~@yuWb*W#8WsSC|1@=I)PH`RD~D4rit`7SN= zZ(slMH#U1r%UaVgcT7t zQ);x(@VWV^Z)3|vmp6I}BU8%k0i#=e6OeUFZgb=w=CNB0`GTu)hm2?0U+4DE{CV=k z<>=-XAA9}Vxx9dO4Z={D9W0=t<%HHwbrdhqOG2{o!dwPWPtxyjy&L|O=xjvLcj@wx z$~#GT!{XK;{O;7jt8w@M6T3i+YbNst$QY9c6k=E1QWpkFN2n$^;lO06qV&mP{u=aU&2Kiv__ddGdn#2- zru@p#X$U_sEa~yo%KZMR{$h@>>16QG4 zSm26dGNFfXo2WW{CFC?=Gz6a1z(%sSPy~4tEFzV+WBL6nW(*@&{()Uztz^N=!9R)DUk@rN@a4Krbbmv<2%JVJ z&rOKOoM%B-So3#xRQ}fE++i-5plHg`2hyLxC96xL2niP=d;~o34-G9F+mqlC$=oY4 z>+E|i@FHjH<1^j%Z&)Gm$5)iScv6(?{|?3D%<#9rl!5|Fp;13KFI=&B@5@#LvNT{A z@tw<{;QTN+5)z}U4#|lZpgllE@)RTVeiwMbwf@q4Y0&lDHh9|u;|3`tg|O3X3LOLa z;}E$ypZIg^Z-BB+LirxJNd7qZW;aUWa@V-;@HX}BP>q|>yWuti{7~kJ&rzy%p^&89 z!M!@}HW9qo`9Pi! zF6Nmpz#fcCkPAqPzaaGAT>V);1q9xkUkC>JcQbb{0 zr66eU4E;4~SxS2|II01Bq^Fl1+e%%>U(GKEZT7aZ=7oJ>ebkdU(XU>>Ih{f)Moaeu znJFg*p#Z{1{3+Zc0(S(B)Stic4N=|0i_G47P(Cs!$4#;M)!0f~=ix_d!F=(;&*vKt z$n>xMg9-KMG!NS%-qLsiIhkSg%Ci~ik+ClIOAk8@6qlJ5c@^1~{F3Y>KR&#7}&ZOFHA8nOdoDD}uh7ElgCKK;e$me!{PjDXD#&OMV2y|u%0 zB|u9FVMytywfLC)<&(tecouA`!q_W%>Exc~UuoCTHQZF4MuQBg=&TJOpwcwjE-X|@ zjl_6bCfZ}#Z~eGciWR6Xm%gBE^O@V_oio3M%pGovqXQf1D8*^1H}%9V+Q@S*N_jNN zD)+6>+N|O&`PpPi-h=rhe(2rM=7kLvd2}V^$K|z^-Zi(3X^S!Y)P;!V-;<+F zV87@}3ycm-B^*HSghU05Y0>)6bmb%RC-Wp|M6JP5yGQ+z&vin)gB#sC$agh4T$MSu zW_Xi_p;r~l2b;=>cJHqgb*ZZ!jR<`xKykh1Ja5F;HN5v#EuiSwcB0dVT!HqiwjnqC zVyRzz%_}}0h?9T7z+|A;eOjrhRjJeP@NYaD@r;LN7k~QMd3~1C4UhZ+32IJA$k{7b z)H!f}#m~A(T_bW6^e8xX6J{{W1SZ1-=Em{e`u+^m)dAXT1w85;SHrw4XZDq9UGkG_ z-&LLRWG}>w+Sr=xfO%<`TfPIU(LneQ;bHqT;&pXBta9^)^Ds^7*m+9m?gER6g{qDXeAXA@i6lqm>;PWiP2s zuV?3OGD)V!HH}86iW4xe|Ee{k&H&^4krC7A)11+ST zZ%61uHq`ZWXugx?`}{RggnzqviGz)AxboD64DlKBKcKoBjcGqmw_UIM_I9H1zMgF= zHK;M`W1u(aXNIOD4c@^9n(SJx$daDNa;!?b@IXgt)NpQQ2=&59RCTHmpI@)vTgg>Py!`!%`A@bgy#-SnXJw75V zQH-FCiH|^E`))#%XEKBFvp_iRe28g%EZB$w6&nLNsTn?`sE=c#iogAUpFvdE=b2;T zP`E3zK}q1Q?7iFhLySBb4cPn7Abi4<*z{0YHvzg4I!j1MO_}6ixgy+YuT}OIalI}x zUB^??Z{Bp+EampOn=pL6SXe+Y^nMTtZPLPBS?oCb26GuTZ~JeMPyesQIuSlB1~*>$ zC{27bttSpn7A15R$0_LvQGWQ@wR~~AAt<47ac+Bt6hl!Jhmd59ce;F9>WyZ_o&^4U zUjArVn?%LlyXc-!wHAD7;5rdF8$mdjX`vFKJ}S%McJ}1aUX%Q3i}+2wPpVT9RGZQ_ z&SipB=R=l0B*$qM@VQBoo%F(uj}T1R7y$vEN1|@noLB+g*#IwlJ~TT62S#Uudl_Ay(!P*qi@8xJ*im- z2-00EeSopJ5FYiJD8L=0FP6N!;V=6^*V>(=V&Eav+}}?xtNioVShwGdcL`h=x14|L zfUD4yOuFgLUtJm+h2`Mum<1=^iL~`{g{vD``I%A|M>6HPs}Q4`hi6aIOH+fW9xZS? zO-kLc+HVm``mh5y5QIyY5SHVsZ@SA1<^Hw{ZB=+&nE`k=8d};-%hSWIvE7 zctGiT7-FJd16Ch2Q9TzMm*-{s`{DQn#+yNv=8dF00wi-lK7rmjFG4IF@0;Oz5(j!x z&O0-qvwSHH*iSc(up#B+k)4f3@S(8;mmw8CA1i!5>C<}fKNNey-C}=ZCrTK%XMu3V zkjW!%Nfit37>p_S6{%Qs5P3YxX0#p`h=;G_!F4;&xVM+rzWn~0)mCfqlb&ldp`*ve z|FM>H0qL!-H-(J-AK>HKzb?mQo8Rzve_X$#je*$LgM0r_5RD@&{>bmjPP`lV^mG1> zr?KhVjK7l4$A>S#GoJ~|VREl4=Kr1_KPEh$T>gK$fgnlQB}U=x*N47>7cc$*f4$jy z{I9*5|LeCnPL)_3rVnM!~i5TJ@P2oIy)w0_cRPW@mvma#Fp2iDz zu*Z1f)^?3WRS6PxJMafSO9WXVh6E+(I1 zNuxC^zROziI+cR@H}agAsjAV_)rK<}J!$wpc=bJN<7b{*SE-&f)iiv7f?+`XP#{th zGjj-u_SaJfw{XTjo2_YousCtSP#WE5tQE4B=w@r)em@a4>^a2A2o#IE2BC)(^ovU3 z(nUSNcDvu{UBx2{fI6O2*#Iw^0c(17ZnvLqqTF0&{jO9dv3agHZhE!Qh6B*fS11_i z*|{ye#C05FC6&+3Uz56+{qT4(1J%Pj_dC)8z-&YHPPE2R?d{?s>eGqhE4E;Njz{7qu}O;kg;LiQrg28^|TiYpG*PUCnVi<_m5;i)zUzq2y|9(=NN zV>VSDObzqUi2pkc6AqZkM*kcZJ;|xXYAW_LN!p(g@4aI;*{Br?3<7pcZ&Gltp!4yP zEDw0qL^RUOQhkn}iWl}SS0Bzs>%k|_g{A)xCD0l%`9h$tuEUWx^%ufYBWu~e^@XeY z(?PnEZjIa`yV3`h+^qxU8segA#-6%_Fk}O+K@n{Y4-mU~{CR3~2{b5zWn4T)R4tUt zF>Us6qfmLN+uvTXvM6JG2hH{D*!JOko+S4u3>uflV(%(0AWEG*Clt@mqDQOStDQ>t zRO>dr>;g5}XX5X6!OQ(lgWNr^OPtFAB(W?Fso%xL-au41fWvCkLu>dID_XrfH0mL8Q7FRCKt|F2LC6n1A2vXLo=B)%=e$i5b%POV2M}}_Q0TrK z_5Wx3=WwK z(uVPC;Nt_S-86^Yy3M#9%wnrGESI6vs8t?fAB1ZY55iJxUA6PLY7vi0ps8onv&~=n zpd$Lxz5T!=xZ$pL;4zI4gCxaGoBN*sYYEMkUJQnk!yi9Ewc2+6N)$-upFj7=5s_qt zAUVFqyt7wNzq8P58q@YYbNqa8fN!4O+IZ@lM1GCQie`$xOP!X!tI9953^ri1BpoeJ z!6T}QV7#W)g^m~Kf!r#2@lg2E9cxP)i&TH_L}mVw-v3o_lbGwN9C<5>NPtt*fbusL z;`zS0OYQ7gzNWdQDi1`v>4rB7X8%aBhUE9SIOk6y=#4tw z9_#ryjq~yz{|rrd!;b!%`5vz$B{)iV9AdtLM?L13Xz-DXmzJJ0g&ZN!Jjai&v>i$x zJe2I6s@NEx4uls*qZQrec3)8G`Zhei8o&|*FUO2`M1F?R~12^&f}_bscw3fy40 zkIOA00%O0vctCk;lql^|8PoVdF68B_jMuz-;r_(lMc2ap-ae0{fY>0z7U$Olzx`%n z%{HQdC*O74&|iuPUAS;J6>5y^+i`Z@Bamw9tIjEI_dS!SvEEdoxu6 zDcuBxO#CEMoK0t8RehLbGt?#5^PoZcLjeA+?(UR5f+-K^9ini8PZR`*(H)|N;&4b( zUf9Qug~bkrZp$B8L-=8qwG;`!nJhm`qsnGn#nI)UcNO3UHWfnXeY^6f=$KqX>eLwd zWMiH@akmHGrpDX%DC)TCHh0^%I~KH=*%eJ`AL_=7p32;oI%HXw6kPr8_;g+{=BF)N z{8eIwiAgp(j;;l@0&kw|z{zypxEQQ!)tF*hCB)a7x9l-bv&UR@Yv%1yPu13sWIT;; z052f}>oRfEAZ~+h-36EeD#dCzo6BpqH#kAYO$FWX@k>~+NpC(9&5bOp-&Fcbv%7fL zAcMBLZM-nS+C_xw5Q2Oncgw;4EL^)37->xM}ucclCOOXS(g&=jczrE8S-4 z6RxDTl>=;UxW6gf+6;O(Xg@gX^cpm(16kiW8!>BDI8E+(BnV&%OG_or+z**-Ms&Yw zxLVR}$6Rka?fZTzPHT5x;UiJdR^uTgdGk+dfEpyNtcpubd-_CF{@}^H?}gljhW?G) zyKSd2cY}7_@8teNf!w;;>Q@o2!|<>o>}Kt8QqYXqBRfNp_Kw8qz5?B^iYh@+vt0Fp ztC0r}=&uLJQAjaIg2T!b^b{>qj|g7fdee=@Qlc~AkNKck%6vi&9Jh-=3XX&%RzeF( z1DqUx^UyB@{JTuTy_FX-(K}dAGxt2+7)9CmV)YBJl_1ybYl7P z&Z{HO+-YIbqRI$sRJxAHYGv)^p>#cmf&)?CzaBJ6aNzbs9k?1Th5OVl^(R)TStQfE zi)T*J2oxrinw5a(}qh^0N}byIs5j{Kiz{gl**Zpz~vi zC9*gJ6%ZtU&_r$m zz7xH*g0NSh*lZd{KD`>Qgib8QtfGJj`#!I}xDb&`b*dxD7V%6f2m@ z*F6BvC%DxwL?X%6)=lX)j8P%JgOgT$Nel=OQ)h%qx;^W8!K*=(0WVIrOT0x&IxpYV zv_3-q!LhaqX_?DjY0aKa0m`A!`fAD9ck@IDJfimnZbNz@TRT?ttz3VV(O=5tVXu61 z0LZ)2h!e1z|3rcW0n!vUs+3*)B& z6C!R^ygVwIo8A)CL6npo`q(Z9F}f5)xACO&S$`9<(yR~FvD}L$mtSfm9cpPR+&DQU z-D6w*j5jxM+K@7}_Z0t7$gwx{6kI<;6a_rodzAXR{;baOkGC{WBKnah-oU@juSma{ z_-giEQ8@Lg_;rJ)aoJ^|0Dx*9RZ`He(zA$`C2ZR{96p@oIR&(

rr4To1SR7DA%r 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%0DD2Xhq1-JwMepYBwy-hBg&113G6F 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®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℞p?R_REV`xek~-c!G$l={!h~i7<-ei%4pESXd`bCf%KRO6Ao1sRnmq6?CjQf#XTU0x)(BhV2XFU> z5>4NRup<8)J$yAy@%ptH;-3x=g^ics2NLgp%uJVmyA*mF{4}cnuJ*HE*Fq5ZYjf0e z@;|VAd8_-cn^H*!I=?c@8-I6xs9AfE`Hcdb@ay3YWzm;x#^+$1wS#`+eO8PD)yF2G z(8%thR=9PKOr3pvt=RmvfPQ{ws99djt9jf*M62)Bb~)tznoeTWcI1|1X;pm$sI*P* zbi?*hv*j^Bo17!Pd-@>Gci~{Ade_6zK6*ss1s&YLbdk4=x-2yz4%H2~HmfB_TuI`u z#2+L!o4{JS#>beYgqj~2XdKd>$c5MeP}#9j0Y#;<^=b~pyi%`401)1_#xFV~eoYh; z)l_wjZKfxzzwY>W(X>FM>s5_`!jNekpLv6ba9|Dhm)A}1y-X&FDyv#HU~Ld57NXU^ zerLA$xYVDMlQoy$uhB9i$v0a2^pg-uE(Oq}>ToEF1wpPWfj_T`uF-k-PX?uaG_Wa) zNf~LOwUgXfi8tclvo|U2>V;%MSfFp+Bc%PrNx`0+daoNtO|zObU3o_|B>}U%MXhzL zH+dz$TS89*oXH+RNyo{T3Ac=0&10umpvicL+)+PP%U@d>N;I^ZZ8D(MWV_Cs^H^>8 zk{>a%hqleyJl>cymYwT70_zHf;z}aXxv><6Q8#smrjYymi0^G8lyo%jk16ehrI`V? zs@ovy<82^(23=?^xUAF@F{;pOT4C(}W^0H)!Io-?4e(FU+EYP5#!-wN4WFowEq$$z{NdwO8v{Z za^x%6b%#pji>Pk#I5epJXaaPRBN<_lAqk}2f{$)24J-6&N1;{=+jI8?myHX-f&;uc zGYMwq(`O@EX+K}q=Oka8F3v9ITGL=Yc}GJ0{XOqt{h^7EE{*K0pS(Sx`msCgbh3yC z%#C>PT=>_vzhNKk%ks$wqVIna3F-eS8f2g0dja^TZHoeW1R&L+jm>U0PZjfb0WI&7 zVOv51bFucAPBv_{94%n3}HbC6nDK64Yl5v7;t~7DrxQ z@V`)LFSPKLexor%he(eZ3I|3oIkk~XF^^}Q!GQSdFQE&9#e$cMD!*TVyTB4lcjAK1 zdpzzbzpb%kEUs@*@M`Xx#tFq=-*7iS$!z62YqhkohLa1#- zJ#twgxk1fuZySy2Xy>*bu&LZeq*HKYz9;WxgUl|f+7ap@35yNTbPPg67JDGw$F2(~ zT$4NQGru}!1^e~carr0fn{q-yoCpqRcseOlplsywc@Ge7g>p-IJYlxPtKJa9Oz9I{ z1)Nl&Yhs5g8xrK$$FH&FMPm95C!@n!+EA}XC+qLJO-u4uCG(4Kf=@@`!+pV#n{E$X z>}4m@GN}?-At}!v-Do$?ocw|~J#&xaswkq2<%fq8X|>4Ha@IGQE+$T=cq2gVnCJcP z&E5+>XlucjyRxcvM~(~*g}S_BH#|6;3tdeY`LJ%Wi@9F+5gSI%*HN0yw+x5cEFUV3 z`+f6Uxi=hm6M-L6pZgOHhTTgjEbMh*;hC$Z6!A;ww2+H@ z)~4-siA(@hIN)|-_5v@C#fr$D7qwx|rNAy|4j*YtM4+L2C{4OCrYB~iqu1e7V)YnT z*jlC|Bj45f#$Ib(Gb>RvIdZ{_7LxY-5I^9 zHcRH8T(K#1q#b)VQ$iL{?-`~ZIV$sMk<=FdjMX^)W#m2S^vR2VEbZkb%X#h|kM90K zWe2Q+VomDSb}=lJJ>_VMeW+dz{eqaPppcAg9 zp*b~uYpf5z-kyd#LZbUZd#em)_1`d!g$Z z_a^maN#@jKrl0)5;jFzJ_XARxgOtLJf{tp&h+DXYPgnxt3jRCSTBn4Uv91->1=%jC zF0MK($=OMuUd)M+h!!mUKpRG+&w0oHHKyXu4Z0GGwRg1m$%Jz#1%Bv9l+V^D-HWk$ zRW-Zcpfl?D^UU{qu9U z%fQu~2kHX1S{C(8EY_f}H%_jN;{PwfWB#YY#7c=E}ZOj55Q(As>G z)qq2Lu6l!WZ!`hgQQFQ|O4wFS^s*(&UhHH1 zhO{au7y#mrGK0NV>dvhYMpxCdn&6!^#4<$W*(E=x&u+{yYR8{0;f=wPSuAZsyOf0p z1=b%gZ!9;Y=50P{(rh^pI{OI|gC}q5G#}Wklxo0SKm`JKW$O#$*DAbl&zkHkC7-^2 zqD!6YYw>m!IZis89V+bTjkX_|^J+wd2L3e8R{v#tjyMMNuG^Z_5k|lkW3BGfNd}!H z-}Ir{mXrLJr0AP5-Rf}PCv}5CiW}0rf}{+BRVSXm5l7+Ohz2d6$d$TWr+}b85O(vt z!6XdcojcSrqV?6d$hjc_n2R({y#C=W3CsD&?$dkKpCmTFHU?W(>;FOEkb@yFD={ge zb#W$ByZ+Ml6sb4Kt32eOXI?2xApfKSvxKLpP@GX-O?wMoRJk+-A0DEOe`bbw1xFj- z%NPK-H~e@^96dnN03f;JFKj+eCz9}xyFc7+%C%YN4a$QS9Q61CP!3~5d;v62v)pX> zNV0uqQwx1D@+J=Q$@mWfr}n&4tqKGBV5a$QbLYP2YO8z)O53hokIueVHjY7L%Fo@| zf7OJSm~hhZ6q{58zsNwP@hsCt9HX9-2)D`b+bEG!At`vD$0jHjo;O^Hn~O?d3$T{r z?b=L*UiO+rE%-Fho!Lz!9oh@u%b#}Uv+*(AEG`cDg5cpgtaLB&t zdsf?#rY|%rNA_~Y=pa~pX?nyl8j2W*D;3W|+-N?l#v;JV=}lhO>^=K2cZX=Auex-}p0pD#res$#?<9@`x=mg@2*jcF?M^thJo*K`bT}u_?w*^sQHSeL z`qi}6m!=(=1tf1R1t$z0+~`iDJQn|m5@mgOjLuaF>&kSaLKo4+p3lmXn2|OLBV@{~ z>${rw8ej{F^N{Y6OC8t@5Lv(Z90*kw;Zp8ll*Q6jvdv8vK3%BccazA%EB}YCH)y!a zI7jEybU0xT)SQzZln=Qc38C6Lr|EbsLD$#Y_g|qu0;Q6C)9B+@BfYRgEbUu3Lp!%IO` zV}QNHhS~!V<8Wt|N?aRdti5!{py%PVnntBf70h5eA-k%xB_uQGAhGqMT>3N|6`?u5 zgy6E{5;R|Cswy{%Gi=5>)?A5gWxW?PF7=RUYWu8a4!hHxtUK=2gG#>j)P$`+eZICY zoO=O@E0;?|xH4Qil0?|3_p~19R_Os99MmEh>6=Sa*OE699+tUn@xXH)-e3n%Tt~cSY z)9fX9vx9a&a~j&?HtevJ%RAHUm@4pM!dA|1WP2lSsElNCKDzworohd-+k#L9PaGeAM)>}rHdgU&a#Q1tcUyzS{qbep1w)45>JlS4o%@%&Q zh`|Fl9Q`9u_~{1s1mH4HS|yAXjY-?ATZ@Qahp!Uz0NlnbD`9UeD~6b}-DO0^)U#tx zO%MAAp&}H55SWoO2X8*Q_s^uxWmaBWGr!cjd!Z^SvsX|kJ>#TT5mrmF zbKH|oc}o4VQTmgUGA%1C3Dns! z*ttkYE-2HN{SG!8{0h8+o!H6Ca`f%vz}58zv~>%5-XS?Q)iY*bpbp&PIIE%xtTYdH zYd02K)A`|mml~M;ZFxmK<74_KlcFbf5#NbT^ZrDqP6N+XUVQICWjD{nw^Zb+cP#i1 z&>|D=1LCxgATca}8MSqtWw;M#-8-A)RFY=X>hBzaGhh7Onqd+qr}wjv3nfQ`;pFZb zjnddIICg-mC%n@c1yNNt2g^ZM^+Q>;-@I;D@iv15_Pz*6V*0qu_iA}|vleC}QWcdK zT0|_l7_MayqTU14$C1)(KocHndI6fsYtka#y;&-#BV|Z?WwjfVgyQgmnAYyHZZ$chv?*zw|k`Tlx}r_k|ur9LTxUYa=PP+Sr1azAX;EXNZn) zKs9N>Ql8@^a}s$#GS2P%MYDVgg!5D8?fS+G*TZTZlsvVB%l2ZGv^<}NA@4rS?F%~2bEf=IV!2CMfm}cz;|9m^-kl?=Bf^= zCovV}<$po%!hQdu?q)QwlSv=WfAmc+OS0&e^EhXmx3^wFHU{8I3M)IBnzo{w|8#qch(MU4z&;e__xLJumPese13o91o= z0+<)8*IetU7Z5F(xB?qoS5rYnxzzz;-d-jCrcqkzaby!+zQ#@;3y{m9oB!oaM$xN= zIhgGf+c&PbF6OujG~At4j7MWZDs*ErzDze^B9=~rF)j2&R~2W?pNT7Wzu6>SzK_B1 z8+OQ2wnPb+kwUXYND^Y8SwN@;t3f9$A&5rkqaqK_=aISlwLh1;eQ}H=IJ}Gfd@IU* z*(k;etKi0k9=G005&!`Wc>zih)J`cJV+jH8;sjiYWpTz!{g@M9n-}SDyj~okTk=A^#ASM}#CO{B z*Dz;ZtVTT$5H*)db6}StBBIzm{+Q`Y*pP=p~hXYHx$8c+NQPj&tV+b@hFLazY#MNwBVXf;#$dg%p2z zF?LfcWX9}^Cf@yNW0vP%Xckw;gZ0wwST+{vaTH zgTn$LyFxDiafVE+B%hLH_nj9%)tQ0eQ{DgRm}K_(_VAAgXzw2cch5+seS3Nj<5sE% zT!QRGMiKy9g52!OmIxgzmm8{yX35;w6^cvshtj9gL~K{FjTx@cQ|zNRXksLB4)`p$ z=*KdM9zi)ws&tb-*m@dk1JrgAIwSK@;2X4AkQ};J3o_!&h$`wshP3N$G*2M7aEn4p ztE%0f1PRGi25WQ5WIkqf#&ujQmD1WZ3TnGOW9?>nwt!knTjG_OjeXIjWLzJb5Gy3$ z%|hbvw(yaF1YSs}<(n|yG@X95 z<>g+i5(%&g*=b)Nc6IE33-@VfwJJdAM0wCGC1<}9P5bIF0BR`iOp2UJt~~z4A&{s^ zBEwaB!yM|=TW_BEWT&})87iFU&vBncONL^kyXcK^y2ZQY=P!R6<5g0JF|8WJ*~63) z=S?-VFoA4mKLLlP+o~kWQL)pO>@#5y4aU4jHs0M(!s*_!eC7+JI|xH~B6UE?V9HF+ zobC&=Xjtae(!ML6DGW$clRipD=bz4`8=ok{(Cl|^yzb!Q_c~j2JbEnY7;O73&~;B_ zG0Ng*oa;Qguo&H_Ze*^vQDPAJwR};#6d=?|)cce4ZhBo&aaT!+j?wU44~KL|VteY^ z7E5&RNQD68na~&j_ROtBv?tsDNQhG!%q$9}XtDf{`H5WC|(q!k6dwagY zvldqv^tuQyr!i1sn&1Yhs^Z7YH%rm0TH&UdA(_e5aBm zaeoTtx^5TB5=Fo>H00DJn$n8DS<3Mh-@o4AasTDkzogV?KZ5@}b~|lowqzfc^#=jp zZh)ggoxktBmIM_^?DbFbODQ#csU0p5oP9KuMT!!PS zYNCbYYLIjDW>$t`B&Wt2;=ghnKMwPXz0XAN8NV-THC^y_p&dulG;lZ()2GPFWreMm z^GYE*#)4KlE&y6O0sS$|^tI)@y zxbr}dZiI(KqdIu8UMxodeJ_wc>ogAQ(+XXGy|su1va5|-mPOF%7h zF>);x{ig&N4)k@3RR8pfwax|rePg-3r3a^p;i`Jh&^jM)6xbOnPeYNM^U3s35*2@m z8=PoWF#6Ce1Tl{v;Lwu~_i&5;L_@Q)jTl&F$glhw!SQvbYhv@wCUtw4o`~#Fe3>&b zu0EBwjQ1;NIn+yjkZ05xDCcsfYT!;G^3v5v(!4aA`*92jdyeH=|6@k)#Ww_0+cHbb zEZZB8b-qKJ2r2P^_3xEXWz%z%uUg;iQRQk>aLDP_i=Xb|J!9)Pwn$Ky@t-GIz{kMX z5qCQdA&6F;pT}z7PN#lt-YRhWD)7|Uc{@8K5gfE%to`C>M|IdH>h|jU%aX{N#Vhad zVeG@6_l0wj@-LQKdY&gu6LE(fGn zpFq3PCb=|eEz*i}T(%`5S~5mbd7JB2y_@e5$!ff6)sG37GTa=1v1fb3>FE1EDMbO^ z$$a%+Qtt2EP9ky>i7PxtcGf*822pXZKW$S@;OcixVbnt0pTw5Q=*`7ue=2%usagS) z$6NNeOrcT>tHrkVs;G;vOy;*~#a~rNes74{Jkjx6#tRXmSqNT5a##o&uo!2?5czFy z-nCLR%UAA5&gqQkP+QN!DJZiB9LPmnk7@z~i6!zjA>iP2D8p;d}| zon~`QW!X)MZm-+4LKM*X8}86Ws50JqXcY{Km+A6xFWsN0?bh~T_Xbs6pt~hiLH@U3 zkZ@}dBaJc4EU;0az-lY2C1}AVXj69UJZ*gIAl{qFCsoP54S*)nMhYQK!{|~PEm*W} zxt`p1e>1xA&1b@owX;>$=x%UOPu&c2t;}{azFgR^=fQ82tc2M&oQJm^s5NMNFBrDiV^l9TBJNk~Q zgH-U=l22sGSlV1#_2HrnwK$^H31a^na~@dFsTp~)85O%CflBT(!L#Cp1kxM9 z-OWSMUqj{=a9V4MrV(6(jind{Uf?6V5xq2frB8KLf=HL*N%`UUmu_h!mtd-JYqu}S zBf?B~O;4J_6!dCW2foj}347~g2=!7e`lL|oRCn8lf#Uh(D%d@-lC+JQ&58C;8G==6KV7&CdAP7$G@wNUXYTQx zfJS*_=w*bzRI}Fy+$=BHdusRr!JNG*8`5M@LH!bWk(M1l9{+hopcNp!sm(>8p<=M4 zPA%O0=ChW_eM9fLrX{tqpj3n0Y!}=0pm1*X!-j76_pWXUe4^_p<3>I@?Zh%y1YiaL zH0-y_x3W`d(+QV6Ks4#6dU(f?@7-JUMWthMN6NqeG9b9WukP0PE7}6hw_0!O5KR*P z=y{iKA0sF2WuG;X8$FZ5$VG4IpJ+A+Zr`kxZyp5M?cYnjapim0c}(Rg!wyw7gFbLQ zCVA>zh$+0G23kD-r8_(KbRal808-6iF1dDq%88KZ?II++Ko9tFzoRrt42>WW2uo#) zi>#Q=g>0SC<(j=X*=|0Y*ic`$iFs{@y^2Q3#R;m3mqsher0|gISuoa~I%)e!*?t3- z1mCaptu9#*{mOx83&@s4d}wNGW9<`6=U#A0SqQNmat^M$xN!V>qoNG4)D({SzADMX zj!G!Ih|mcM+a6!@9e(g5_rn8!_jmM%@5BxhW%a2R@K=t(3Nov3tQsEY$t`S=s0S?q z<8_7i*2TN3rFa2CYPAMx_N^txY|95RBytPfoV^F72+@2gN$UdF3BOh;Ci%<5iPd)E z=*gF`r6kS>Udieko^%KD#t~Yp7#kAV^WNu8NMtp>yFA@-a%RAhU2RweYCw0gbP&pm z39UTk4KUUQBzD^Q$T>{m6iVvJANo~<(TuEPloekR5nP=83-0+(8>l}~;|IU(qe^epp8RBpGOkhp zLb782ipTydG}AnJ+t=hL?H>f9@PNkX-=7Tio~LV)&sfG?An?HwA$Tf=|Sxlt^yOvyq7$xL0Dy@m>Rg}(SJ z1{4o@iXR}J#*gt_DX5bg(R*F)K)V9Vw_Q?5S&2}6v|-IHK53!mWF>-1hC%THzO=4v zFmE`y_&VM7&avvxF>5n%bdBYp|J#D2%a(oeP53ee8$zNpD}lAcDd*We+J5L zj&?TfV^;}ytWt=ki$J3ZKIBcA$w_qS47E!+y_R9n)(714fL?Z;6*68V3#$H#; zDBu7uQ2T@6(Nu0`h}6wrqB7elwHKky#5F1GqQ*1% z%~i9?cupx1I`y?yx7)SWa%A*C-m*uIw@>lmq8tamjJ|RGK@j7cw0!j-=3vG9^7fMTQ01?KgW!%R zMJkss{8m3(7W0hGk9UHdDt_&*E_Lm{soQ)jeLiOQwymp5=OF0(GyEa?A7v*>mA{?C zhJ7-xmSfJgOMdn$sLzdHgI;Pd!euv7eW9%WjUQrWEN@7!dq*xptj}?|dd$yOmkv$q z0e^bWl6=WT_Lcur*NO_irzUGB0n|=Oy`PTO&XbnEZTg=y`(nSnyqUE)9F;U+s66eL z&cAqM@Z}Tf?l$M#>#P?NT8KUa{uADUM?zl4wHr)fNsC*mGBOa< z)zB9x=vg}!kZKEo8%Qr>A_N#(A_`HNSYGZa$64GZZ9rP-fsNC0P~|5WrN`%eqk82`^tH)k|CU-x~%gS07Q{EGXZILUwWxbW{2dSUVFM+omzlZanw zts`D;4?ZLnCGFR~ot$&}e>c=?uj7AnHzVQ`xXxTH+hND}%1AU*b$m6>tNFS+L>t?9 zXq3&QHFOOWDit5*7Xb+Tn57WsaIsYK@C~e}QiQnw;}dhFs%z|$0CX{~;gbj-A7#Yo zhH-7mz+?TwN4H36UmM4<6G+PHjpTaVwjW6cYBF^QbAjoOkJ{)TTOQWQGy1vf*eLhu zE52z23TU#{HTXsd5lfS}c*MO{D0-yw8k|&Y8`o{RDJ3#^#^pgazR!*be{UA}4s9$Z z`nHP%JVMDUp@QzN(zbPoQ`zXtI=!nc=QnKQV7>*~ie$jlPb?Z2#V68Hxgz(YP!kiG zlm2cd1JRe}&)@XPNp!`^Ldvd)1f)hCe`JNy zmCKfE9^LjJl+BzyKcB}v02E?@rcC%&?!OAh|I`l`SCa#gP>iQ&IhWwu$JWo;Ke$^Z zZH}t{K-)Fo156J2LOGlT)`;eOVUpuofPNkxd?!c61?UlM`!MKG+j;= zfJ@!_R!gTc!6$Wfos|a{6i;8BI}`{##`(W^&!uG~ zm-;+{cQEM@4vt;8ds;o~$4vAGfnV~EytX=OvDcmtuYUy~C3+0G9=04kC3b+fzgn(R zR9aqaavc#BEf%SF7)DimFT_O_4F}Gm%XByoh2A6v7#KoQ;)Oh??<6~e00UDVZj0a(6lF-HaMf}5iqMPDb9p#{FH_KcEbYl!10IR$hIo44g z2a)Cy=(RU@9|=>7wT;r4R-YzV&!qXPj2{j{F=YaH7Ul0H$A7!O_>UJ&e{bCg`c0fH zNLDHTRGn)^NFM?%F8p7iwSN`AtHq;MOrEMe9X4GB+5R^6I_Yqjc<*b*{WJS%=S!nM z2>NdRgiFZg{~CF_HikE{+>H8Fm35IR$)M1Iv<$d9Yl>adI}F%VROEg=fKQ<7IycxR zBMr5D^t3Pq@(tna+t9o?*&s{;0Lu{HCZghiv1=K{K?u3-lx}89ojHwU__;R}pU?L`W5ZlLq`2WT-g$*aT7sRA#; zW{oR=yfM=g@4(TIbW?|jwKOEHOo;{1w&H4&Sh5NSyNWqTmIXst-5DSN!gnRcuXjvueSg5;n*Uz%)`VR~NA4Rx_S|=? zbCy_9HhpLZ#SIBjF_|WAVaH{7U98>n;n+r&fB_@0DuvlmatU>B=zz$zvRS{D!70;^ zM{1d+JKe3_m~>MfuC2%q+OgL9R0M|@ zbn;^Or!qaV4uqBxxr%a^B|NpcCv1}iM>=xQ5ELUKS{x!$uB%NwO1@cVJN45DOP{)>6FI-Y46iHO%}N1XJ#diWI@)fmYLso~0y}&T{cdUWe}F2aq=%T=+VEzg+);NzrF^96Fpr7+&k&}* zt$(Nn-cSBM5B-y0eEqv&rmp?Sz>0E_Rk%y4M0C1If7*ebIHqt}Fy^2s;BA<6h$igSlnDbD!=jpA0lX7MP)_o$Mf&$cR2xg#~=IYq}n14^>U+!rY> z?JAR$E^R(oef86I5LVUF2o$-R&gJZzC~YK%S<0s=MAK~MToSxcM@})5=)Y#wfuy*< zD6bJ2YZ^){fkQZ$844!a=EWO81Vv#HsRiIgoM zIQ=2K#oI+-BlnxRrl)Wz&-F#Yi`O0OeJS*ss-GN;Dd_jM`ppxA$QLats+2s^ zTj>UcPiZ91{x)c<@igw*Qla12$FiIRFVjNmvcBg!VPOl$ST6a=g7#~vPIxLslY+%y z8wY%*@UCn9?N$P+X9&UO#J3>bi8 ze2vKGTR1dWQ#-rk9fJF=`78cG;PaGSF=Tl}3*CL@Bczn>h4yB>q013r$>svabbn5%@Uh7_F z8Joz+)C|>d8*XsZQ_tHaBg*yM+J0ZSVGI#PIY}=J1T?ag2%?@DD7V@jTf&M2qJpN?l<#@?*fXj?IcFbiFurLc;(-S3}><*!5XHi^Eb4jaX-0)}7z%Z&d&GmdL2 zMDO)hXlAKk{AwWtIvUa9X+=j8<47<;rYjR&>~=!;dD{2`X8{3dDhsoQ=DfsZf?`|h zowsUSB7Q_mv`}K*q|LOvr;9QnU}S}7%`ICcP;i;x@xKQ;?0M?Yak+PLjKtzjP^(yK zdw707N1tz|e#@%kO0z+&FDvXfo}ucj^s^Vi!G88drH`49$0?c&-@ALi_kXchCU>m) zrWA$Cp5QKm?4`!e!qmcuLv5J1u#ZE?_p2X&T z3S}wt#3TIXH#9kClI7_u#An=hUG=sZ&0D&`>644w)~bqFll5ff=@|VUT@##VezPr3 zJp63O?^_8@<_ZUw{C_8N#l3f6>n2O_c0tlTE7VNX-RZoumdWW?x$&J76<1#E0KmH_ zTIh#hD=_ooo(Af$!`n4qh5w99o^-YXb*Yc2w%AT@D_Dt!Sl{4hf`CDe_cwcFQ*E>`LJqobhy0@-`DH5 zhgc$XGoJTgyd0njnr3Ep9H3`A)7SelX!PqZ^v}|UkgfTmX(6RHP*iVQ<>rWM=`#3< zhg$eY8k18Pr<&*xrPp|`g~;UXx7yt7oE(|mN)TXxeU5ilFS$ep++$k2)l18r2&)* zc9~JvjKW0oe(FXlbsa4E9eY24_r&_n2AS~|GGJaMp#}?J5~ylkTCRra$&Wx%Vm>qa zkxooJW86OQZcF7S>e8-faH5!8=d~OG)nG9ulGF||bT98yA*ZpQ^Vnq=lz5hNA#%}W zAz|jL7l&#G3)y#(*6#w(q&DWQu#>@d9kr}p(seuz!=L2xYbi(vYiJFg%153mO|Lp05bBMMTYG0C@ z3afH55jh-)Lj@JJcodZ-q?{5&CV(=a_zKB}ZE{~qGoGRb+bv3l+9!PCs>jlf)~aRf zRLGk#*f3glm5xYS0P0l~;akJX4>_#8XIYoI&Ol2@F$hfcrll8wZ0OvjiBz!*pKge# zHLr%d9^6{?{JNG#qcz3`?(W_>cXh>9cNs3m`c>8tODI6nVhJw z^rI-H!3g}s^x&yFX+CIx@l>*EV(89n&wd8uBPX(PAPjyZ40xxyf(y0eGg?47n6d-% z4K(Gnww5O~?n5t^0ks_!j);%T6`z9hApELO-K9Xt(QRR; zl-I|}1u;4{+(Aa;I-hdB%GkOJ;mvzguuMMJPu>?sl_~v`;y>fA*MdDpJ(jSPek#*< z<^^Xwp*u@DHK=kVAs?ERu?69YI-7ZdDc*0WnUP-i z7>*>h2uI@~s&VN{nC2Fm0MA7IxS}5E*1Pd^&O@vqzVPd!*x3sAUgIj7bB=RpywUUE zXX?T;X6camUs7W$^*!sGS>kOEJ&gNC`*bh{xtvvfcdFYj=^K00$+x`-X>1)&2q`zy z!LAnf4G<`lD*i^$_PN@qL{uAM ze7@wFyCARh)aNiAQi3(-vlZf3(OT_#roV;9>Sq&J4^_rG_Cc;S9QT-VxdduYJ@-g@TN<)jwz611zgX!pjR?2+~9Fs!g*09LMh`r zjI~n#rZ&z2!c%EuRRZB#fL;>0;_+U&u>dQCG|_Z|7f*+uJ5-MtRh2-y_2b4B?!~H@ zlk~V@k;Pmzl&I)ic)rd&TB;G;fyt4&tA+9$OW=m8IVfHAYMn~MAapb+tv3f>I62YK z)sOA-h`h21G)OKwl#S|5o$$kg*`Ux)L}QJQLvJIt`jn>+#O1@{@0HwR7=bBZjI>sq zt#II17@yP*k!$wMh$5bDVNl{&!V)Apfxs32&CdCM=9GC-&bS#6XlTH=0;dqV1zu*LJAO@8M7Ipc*?I z(wzm*?haz-`Hg2zTh%#|E3URuYGZ3Iay;14;{?oi3ZZa*=CU$|it}xXTk2m- znJhIWdRRuuN;i8nw2|XD7H|BcBw}Z;Zh%Y%Xpg99KY;EE(sC+XQX^QZ{gWFE4fPsi zM08Xb5MSeIcaCr-V}0%2-|VN$N@Gr`=dIvFlot?lTufRWZ1b9IL)2(k92^)!wksH# zmLQRPU-<;3#YVT3VJ!d@x8+F-TCCYExXH+}TVHpL9SbKL`<`twp5`!Y+-eAF(RI0G z0kW5s%E3^Phu)T^Wb?UtcjJt}%1q{bd?W%B(xFps)9~Em5KWOD}10KPFaR1 zCNbBgU8+GUk#k8$<4u!jxp@F&Wque?xV1jyaY=AqAHf z;EW4L!9vY0%-w(XMaTHz;Kvq17Na8_;Imnlc>6$~=euOOOcuxEe9g!c*2BbMp-1Vo z_?ntTY?*n0Owt*D{cFLC%n~8Y5?PE4SSi}kcdA3z3rL!e3n2$JqnLa@w-64JE5zTb=u{!Qb&vHi_#TivLK)m7HL+LXgn8mhtfLk_ z>)i||h7WiiwPtj=E4oh7wa|kTZHVszRB~hLYb%x&OaipAG@j|_+XK3*E^1BEwA(8} znyqb=2D5)R7K^(BAhA6OPwKmpK@ zF6H<`JbW{j4c)-fwaZeEg&bgpchbQ;1*5k#U_PC_4oHU6hy(0g51+`;6kPSo4-bVn zk8ba*2Zo5h9c=ES*e?Dq+}u;0v`&=C+mzz=S?|lj$z0yy!9^-va9o15yDd zEmX$|hMxws1qLy#ob4+$BNkdduZDe&hhs`7m8Y$Q5ykwPz(B$AOt0h>gaVtIb3o^MjO1^$e*d)ps7joCicO8LcjwosB z>kg56w?+_P=|K@aDR+YAGL{8&zSY%Dp1lvaK5&&Kup$4Wosa~ zBbH_tNN0A6vkwzqL_YlC-`$?*ULrr%ibW%u=oQLXvE^F!1)BS zBGZcUp)~6Octp()GVx=X=|5Eoh1*PRynY>?{yt<+es<&{$9erBk5M*!OFg_+h5W(Q zlEFK0q^~7T%Iw{^v;b4`iH;ijalCs3mR`s^+lz|;cTlg2qfi@g;m#cSaR7J&E+~*2 zG4sR}^{n)dG5AS~#L(Me!+-T}^IGW8>EC60viFt0hzZS~Tw8$pLQL`-qywY*ebv9| zRe)(sN2!}A4U?n!*C-Sd5|(HD;ePEY#O+=MHdWl z{KjKlu{V<1wP9*feE?%l78W-&svz|jxxGPuastwiwmbVE0|+H&zMWFszR!ROb-0N6 z*q2v+q7H%{z8!>F2>?&3+J{Zo^ZQhxdV(hKc2U21Qyz#^hn#ayrVKa7xxj%>8Iw^7|~#$ER4{*^cE-SJ}Q9Jff9M1Au}?Zj@>dKhW~cqx_j zqqaVGgQJq;J(lUU4OqOynuV{ehag<{a#+Ul%lNP)rgXX6%O7eOr={rFR@g;7W6Jj# z1C3_6nm3Q5G9PSE^tj%6!}M9U;2E%&(EpWB{&VZfnSdE#EI_vq67S{%I;3Pt$zi%5 z4)o5HKx!~(LI`hVM6+~UyE6-rw{0|DI47lxBa*o z%;7_&?K~51>5+tE9-$MaIO;7pT5zd#ty2H znk9?J!`d89Xt?o63P5+&A*IKfDnbo32>7=?fT!mok|!4Jam04nHUczsgSbs@%?Fu2 z9U-rXeh65WuT*6X8@n0R=|JJ_nfBt^SoW1NqFm9gvgKCUI=j`Qv zGDUPc;?xBG)}t$NJ=`MfKXxV-`FEcA1v;34t$)HIn<(AM-gF)c`~i_{5_R{?$Q$y> zB%@e(eEWZ498uN&rwXRtzraQsyUleb%ZtCnZ|QqVRs&}c;fX1s+DLTBE#~Dnz2j%I z`sQ`ConuAQ*LL|Q_KO8gqJY(5-R!h$4;ca@82{RX!`u1+eV$y&6*!&Vc}*sW+mVUH zXp^(*p>}c(&>O`Ba3u-QC5HeSqv0A--J}B&3Ed+(&TjAVH>t4Qg~8|C2Q@}#2CMz= ziiC-Y7HF#3+0icxYTt@$@^lU9aHp{&u1(@5G};pr`^V1GM6~QT56HrfGA$*h!sA6@ zIXe5h&hT5tPRBz9q?WhZl}YeEvTbJ5R?L{X_l{t*p;vk3W5sF%CF%i~jn+*3cjVQu zA%%I;Ny<8uG89^ro`sQz_&t&LeCZkM1|7|Q@10r6nsAEga|+hxR(@@!@=P6{&y+aQ zXS_N@&KRS3d}u^GF2Sj8=;~CXeE$BybToh+z5-74S^Z1`0{whdBtY`Xtbc|ap&Q@G zgtwPXnHQ_=xzafg=tT0_*!|^blt0%KbK=o=5L>yF0Jht)@C9Vc{kzwwSc;6W=@^h%NuY=tqw&p0OM@6CiweZm39 zvxtuY-;-3EqtJ9=$iZg~&@)$ai_j4RunouvUw`bUpD*=d&^yk35$&R z+2jd@w55cN?*PC!V`Mfv8xrkESd>W5!a{dTa-eGN+wr%fPio{RCz-9IO_&;r?eouV z*-jC?_F3P+`dB!rwGZ!b{<3mQ`Bs6su@KyvofF(v&b|+4v7C00s=CU48nJmK#sCTu zNlHV=4L_j36ObKvwve~?no8_gr(Zhzc;NV+eP1Joy?4m4+_Cou{CChXV`psAcjFl$sq)lvU-^w20D!l+gT9B2{`zzn?>PDtox$t&RU%>-x~ z*v#Du!l{>(fPx8#tAKa+%dgsH%1Xt31hhOWGJ)F42T-c0cEdwvFf<}#Yu`hUk-GW>a?8T3qy~7)r@RP zX@(!%drd}2fyn=c!DRJ%;&OAJ^Qv0pD|+7jFEHvhg^VA9dRzB*3@xexNPAa1cNRO{ zz0Tku>whkFX_V8tIM*)!vt)vr`w8^9d-V6J3gfdAlV2CV@$RPCz;FDxd9{qwdC05z zJNVDof9VIS*ZujNpW?>uf0a^r^6rKBDXkXMkFHTVjeWjE??U%xTC3OXkDax?ARbf7 zq;J|0C=VmAh7HGxjEA1d+;X*cVN;!~_nc%!N)%q8RT;PW&5|$0OxX$XnPJ15lPWTQ+(|}p2Xl4A!+GlddHtMz|5aMx zw{K=n4Iai1gDhVRsX&rtMwvour7OAmTq$Wwm(1e`O5*EDDc)DXd@Es<|O{S#7%AlmkVVDL33d6iu0=&gLp!lADB+({|0udh+xEkLn z9B5WR+9t*QplGwK@QDQs#+kIZEZ3bG$xMK1>RT$9e!y;y7?=@N+Ys={g*yeOHNDyk zAj7<07ij+o0?$e4{x3A=bSzR%P+{0(9s(d6wFp$>E zQY*i}(4LUynpe%!rUek}W&q<-+A_y0)4u#1?H=Si-+zqxL6qsOh{7Z>ppa zB2k$)6`zKzKq4q#Mv#1>r4DM^uI~C*8qWCoSmi2bx;&8HQHU?#8$a~=E|T9RB=rM* z4thIU9vC+4*ShjcYu9T;r%NatoHrcnGFtY>t8@nbK&_lE%<=tu+$1z5_TqYOU--qZ z8-EBi6?%=B*Tz3Tx6s&;c~Ye2dLa1TK!~tur{Tz0U$YRpQ`6-V%YQ61#8~?<$1dpB zy)%%qoz#_9sRh*RCx+Mzs^m9+c}*V1*fD8ftz8w>mcbY=?Lsl)+4f8oa$pDOUe>q2 z8p79lwt1=4*0CxyAAE5v9JrGOuL`Lx$Xr(Y^g~vA+sg+IUtwJzSd5B(6CF*( zDZ?v|c^moNuq+rWo#~;Vz(tUmQIiegde8czHMd^! zasBDfEcidQW|JR3OQ9J0?EgdyPust^!p2Yh#_Rc02-fti5a!n^B!^PuZbv26T!l!F zAU=u5tq+ioR{CI*v@$DFO_STeccja-kiTdu(LIrYxrNiy`W?9G%xO8*4nBWk;a#`s z)XC{a;xfM)U~Z!k6jZPLeuPi#Rbn=$hTX_99CyI|9gAtA4%!`k31I5)QM>|6P|!K>YV zbdg-|rKMY!p3*#K^ybGp#=xZb`Bz#{vo$(rZVpJwpymZDNc7pkh2mKe<{$(HjGs5!ze}0#<95;?ujN6vPh5I}2 zuEz6yO8jQtlZ}oS4gcK{iE-hDSu3QVaMNHo3`Ip8vbz! z_UB|W{!e$wW|B|j=>C_!$#U;Y;@`XgeeSiaz72kciM4W1z?g$`P38z|E+(t*i*~1q zj+!hX%;uXYW^?!rL5m-C-cRdS6WLyVXXa%NRSgZ$qSir;ClWL%zbTN&Gkx$cSq2S- zjpp8S*UTrr$9|4-qp=%o1(>E>AGAVrq%?0T4OgVX(i!92{1ILxjyLDlpOgBhMFQ{- ziv%^}$`AI6@w@j!9Jp#QOGc7}?KXz-T0kX5T<(994lCPz-BtzokTL^NJsql1;@d5R zMg>R=2J@-#g6HY34S*yELqwgQKjZXQYUYrsJkH$OrJE8cLRwj7P0;CMvaEVI!4UCc z!D$l&NXnLUJME}Pr;%3dcv@Q9r^hV_)P8-3mmLrG_*PQ?B)F!}5}1ahcve0Tl)*Ry zy1wQ*8hkh6$^?Od1ej=^dW+<-$o;BFb=R6Q0F=HN5M4A&>1J~6ZGXklIERvSd9vE7@K#S5!0ffY9E<3_I%L?%9X=bPHWKxCeCu$N*^)y-%O<8*? z?DlGoQRlss24a|A#T}&f9(6?4oC(mv(!$zzjM9pmW;9&0gwks*)M;mQguYF3q9xSo z31xPa)^k)_5v})NEiLq*ICFMQEJ=%{X%%31Ic8@;H$^q$#xrUZ3)2u6W?sH3$OQ3x zE}dM}w3*65bEzZq2=op>3MSV_3Gf-vn~)Q;naw+o_I0USSlVwsWFqkRD$!%GdH!ra zV60q4Ta2b8LKCa57pyDzkvds2_(+R!Aw#dySGx0CAvPJYgG0ZB=f0{;@0%w57w7Tz6@0u-_xxy4uQ+FqOqOmN4Jx$-CZqVJEt+S+nfO)Hk_y$|@N(a-7 zX{ciNxUHLjcQ6ZL>G>vI$d<5C6mU6f#nQI?<~)$_4p&;l-2kV_Gsr>UvT%A|v^cw_ z(;MbW@Ku#4G&}8A3|)7Adau}Q35{fo2|-ne4=_Fs%bpMVy(-w|@sD?erSx)ju=LlAA_wH=zRki*YYc_08CMKQ_-<{S@1YTOuwhRq#Xi4m(J)qOooPPA9DP5=)_QZdP8?J>htjfMD; z8?w*Nwm-V*IHKaXoN=9{?(b{a{{)NJpCa}1as+MSZJzr&e*G`bEhOi+!W6Z2T=Wru zaYFp|>>KjV<(q>~OZA=#$4`5hP;xH?XFi-Ab=LnXU4pG8V4{NVLqchG`k-R(Mr_G8 z+475lHX+=p_DkWI{e@3i6#}VE$fLqQ~OCd1(N@hd?gjAMFSlJ|Bj;c3b6>HzTcfQRc+&t^-H~@>8 zv3*LgNem&Q4cUDL5RzV%B`l&M*|n*6hyu2$J=oa}7euR>KO_E2ya zK-=`4XW|9*K=)A3cag{Y9tuo1d{;$P93R%9YJmJEv!AC8>y+wd8M_ z)I+9RM2GX+WO>=w=mmiRO-dBgX_*2s`9th3y;6Da;8R^dv0Mw*{qP26=xmwP{?iJ9 z03^FkjVdpd5~SCQDEazIWD)IlJovUB?EM zzvT%@XrkqXf*OE4k`7j-JQ}OKYR@gdTsbXn4ZJ$Nn<1KV9y7V9FgMb=eDmfl5s%mD zTTir}jOhIop_{I?w&CX@a^ebzPL=`E&n^CGrz%KyMr^i%}-cDw8sJaOM}ursSG ztMJN31Zi=ea&%v$^3TtoSO#uMO%E4(A@t~L`x8)s+E?@soUg|8mvDY}mc@rpj3&LF z2LGhfMf%<6xU%?V@nZj3XQo2pzWaCA-+0K4E2DY&y0FfQzf~gZVeE~{{EK-{G+y|^{cP8 z&;J*7)NyFLHFEHp?D+1Zl9{i6F~6}Yn3>uI&gU9wS$CD{-jVU(Pzd~ylT?#j%+ANa z&-D?16zXRBj|Qn*XqF(mv3+jtX91MM#a@Rt33cvlI8$TjOt~t;$|hJ7W>c`t%{PE& zq)**LYy`U;o@?d`GVCQ{48I$mUTzO8sCXUlZQslZwRCdRm#R*zqzQwwN9Sy5Y)d*Z z`Aj{&?GLQoHheM2n zC@PUd&MwrvH=QnBLBh`mly7(}V18q)`P#W?`g2Ix$N}PGw_MM}UTgmUs0C|Y4+P$Y z&#C;M`5gPRwGRLInq~iJ>%YB~1k*C>3$>XFtAT$+tlmFjPx9XyyY~ta6Kh*~g+h-` zL=S{J)4OM{9t2#|c(Tmtd7sd+)}DR08@#4h@AEOfc90p|p(@Ugq+y8$yR+;}fzEm;(*^&Q) zBj>;NsP}&x>+e&?k*zwnm*iAS5K3Lk2u} za z?X0q9y0>(=J8xp!P!sIztg<)W2^Oe+?}mjPkPalXOfRa$u}Ip=9tfN`x%f zI5rB62kL5J!L-w#PItu*ZidU%7^H@lseTVPx$<kG-UcKp8zk55ec5&RO zPGr`KUZe))lcbE%jL`z;R<#$3Uq2w^R8yy-SFeBLfhL|n_C9{GlXr5hYwuhn6y$}a zdHc$Kr2MG!LfQB=y~XTOt)E@(1F^9>T@B~7jbiI#zsEQIaB55~CVy@!Rhg??1=@P| zfS4W!gR(YqA?$>L&<#yPRmh;fpGQO;IhI)vhFOEh24;rT%TxMVtC}*;o-&XDl-Mw< zeGi*I^Sio%X$l-)rZMOSS=2J_niV)Tk81`9Kz1f)Dj@GLSkN?rmH>)^MFRv*_#P8c zKy@73#PtECCvGo;wNJ!{wBr&Za^qc}I#OI2$u*poKE}Rk;f1`M5O!!8N_BT7dB!?F z!=zB=-pD`#rBudHJ1mT&AL*NwSvd|RF>f63a44YZs~bve0RW_s8o-tC44X#$j${5k za(Dl_NC3Ml}j4pj=0tazGv7tMqjykW8=4E9me|RcvU$wIM(Nl2X0( zUDI%jh)=hgYaOWTO+}Cfi$Zpk?r>LWF%zi|ISAP^E8WA6v2;K5Hk4dBGn>kq@yjhM z9;arP2MlG5nj!o1RED+O!A80pQ+SklRAGzq{DTK{=-X2@RGhBgle9v_k_K#BD3=}p z$;#`ZA0mpPdHu{t>D?E%fnW(K-cjX-$FYn|Y1#JT5J`rXKH0(nf6JztdDaE|%a${Yl;Gc}Zc zb98!Npk%I>qW08XvF44{)&-BVq>o?pvy`KPGDT5LgS4lx=dFYfF_!fF+Y^}ioq!mH@PAt;}w1@>Nr0E#FhiLs;}_?0ra|;}@9KYKNPa8c^4-Tah&nX*_Y~ zW+_ZB`gC;sH0U_+Y0Hr!wO>M8tHW(S!45G63_%v0B@M%c-07)BMhQA{Awk}QCZ=sZ ze5O?5S8^wg7KGQV1+!t~^S&BZPe|oVxh=h<5J;WYqMEjt2ai9I?Pl#iIDXv{y*l~Q zCzvmX<>JG0bFBvbSy;_eh@xHp0A*cWXnh7W%>Y%v?6TperiqdcMjtTbwwW*8vG5%B zkTMoRYmBs;C_@>+kzh@kUu^GJ79b(7efd%G-|nxcE7}Gn^=$+aY6&N_4Rp$FWn*>= zJRNzc%dLYhuFIVj9Gj`qpn=U6KBOZ>>wQof#k9T96%*I`5>aP+A50~OQ}H=6hy>DqU@^HjLH6z1VcvF;TTO3#Euc@ z6jwd~r`LRvd1>b<7KOg-z}G@jt{)% zoT3g6)-UDPFw6)ED6`N?pI=f6zRfRhWnpAwgeLr=O!|_n5O{A@cNfTE33a}${a=;U@1x zwB4yi&~E80OCArkM=BH3htdwTTxEyFN=$ZWPQ?5&I;+W3Q8qbqbuO!H)+$F92#rE1 zop%bo@dCcG*q$)sdy^$A3GY;F$=*DDcO%?L*7z#GLhDtM$G3vBFJA^7aT{YT<^RML z&HR_f$IgG%@M#=+)ZP0_>6epaWs`oj&dLcSaR+x&ChL#yy{#??n6FkKTFJRN(%0c=?}pu#IeBzrF-LI@I}<*_vq(VtCz$ z{f$>6ePwbu`xB=rpJec3>^ELZRqpVM9FA8q%~>Fr=#TS(GOiep8QlXo~){{{KcSgHv1b70|oGbw*T1X=dZDtW}Rtd@)d{b zBgn>zk@D&3(9&r{#q3>LDRPrEL`2Ps?!BqytVKT8#sJh(0rYhGXX!AaoR>W!N}3GP z+I-A=9$AFQt6{q2lA{W;K+lSoIpY*FIN5ob@>D9_Z*a2f0{9IzACh|CDF%Ru;~<2Ybw+CkZD>bSDd0{4w@<+BT$ESTx`5SEuv_aST+*s zCP9oD)>%;f%Y%fsAlJhcMhp3NrX&}l;a)D4fatVMh`1*fh1j%DL&&x`WKp5YsbDZG z?k_cr5l)z~9gi4uH??_=nmwqC&E;%F*-|COd95~HVd%w_Ji;4|;&_LCLC*asG7JJ~n;DIX8B~&A1uN5ll}-7v$tL;Wp$HPHpqH{_f)_zc_pUPI z(<^J&DmZn}tW1JLI7odo2F``CxNTSi{p?3F3?(r00q9VeEQWMEkgkfxrfVkJ)s5ROs=n#|lHu*9oHv1--Q-{&B9oj}<>$EB%6ok+W|>dmhq zeOE@=n@+<5V81&t(*~ zn1kod%b};A=pmgPXNPY0(b(Zw#cbvrGw9834dUN;zhc(uq|_R48Apa+@?w7WabKs< zhCDbVk8lV(wAw7&oI?Ga!P~J6E*xY&4vpe(+p3Cw`-i;ezj5uO~s)NS>J5eds5WQ^ip)33+^HB*dQWy z$#Rm)e71KW#M$j&H>$~Hiik|U(y0z!K5!ESu?_h3 zp7Dgo^6&+~$5RBsM6Yy1r5}(*smJJ<+R&=So zTyTEDl0U$aIP8@v&i)S0xLcvB*<_3)m!!;c8c8Yd1?b`|p7G*Ig^~xAmAyA&s90E7 zTY6V@$_ru%9B+42RY(R{nbX}9s?|&uZKSWc4dL_8^U-v0Gbt%ke#{14+B+{Wbbmd6 z3r{?bZUPd0(LXfQ!m(R-64HWRUGc{{RZ0vVig2@QDZz&HScIgSk1H%+uYqC0O5NUc z%|$H?*T?5zp*ySG2TURs$1YZGEHzYIc(a(vZX;O39toMq5|^FzO!F2sH!G&)Q(F`7 z3hXOM`sAsZvXz?vH^?%rj78;;)1DMYb3iYnoY_cXrjfCHU|F(=v=KD9$1S{nZGXt% zN~jLYvQY1nTLKN!7!?I?^Q3)dF`0Z`_}P*=yX$o5DE)qDrKeB_U4GVOCGrW2vsGe( zXVPfY$b5ehK%Yr@v)?LzB4(VXfb&38#1V$$)Zwdy%#E6tj6YENW9c}JVd`J~as&h1;xuef^z2q#~ z27P310t$wGFGzE)ch2=s=N|oJim42X8w4sJkF)D++=-^U`&PCCf>h&W*D3!zH^!lH zSHBrwsVi`PTXxOY9YAS1 z>P(pm_ErE7W5o*PK0y0J*-m^V%Y_t}A2cxp*HVCo2W_L?zM$k3W9pw}WsK!fI44># zQfpe`5e;b!FfHYMBqiB0M5gKFGhYg0(#p+%OBDeG3@l*tb3x56)9RINA&6wD*=HVg zI0a0qd&^ePrKdu=7_IlCJp7s@cDeuOBANyk2J=FlER%BcZG%vP4DbECnUST^ zETR!rKCkbYo_hX-=B;Oi_?q~`l&(45zZZ;Jkk8+LG)@i|p4@16wOIwbv^$5hyr|6o zdm(SS%l0$hTjVmcX|ljdrS@gg#GAM0hW}i6ZFA;XCE-hX2j9<)lNa;3KLrBp z=D0)qU8WYUD(`{@E#$~r0lh+K5}j=UAdt2BL-qplnq9f(p=pWDv|{PbBMPfu29*Q# z#R#UV zFAknPJ>NJQ zVreUOJY)4TpJ}DuB)4>H z>|jHt#2Hks#$8{12qdwJ*S{85MpRhx z*E;t(y1f1Daj|o)p@?HPlB4r><6nLl-wqYL<~*LqitkCV__^?IKIfcNEBN2Y(qAda zoC%UP^WC&>(mwcMKh0_1&G&TCg) z9})2JVOpn?iRZ;9KME$|C358_q($JB%m$5|*B?qWRZDSmwE(^~+|TsEIp|T&e>e2H z*#x*1DNS1}BedyCC?ml?6B3{^4l!W@r+b_Ex@k*&0Vt^{>D~z%G~nS;7SJ{xh3H_nUEVh_@iJ(=jhDWq#t}euO!~4V>)7Kjb-c zA{RBJ%mY&KKpcg!B&?ZzOTx})LP57%hGtp&R3Uh1W%fnzQa~a83pk!x z!=lJUGb0>7UYbXML)oiN_JO4Uz*8JTWS_{hopDOC`b15l<@fqNJ!8xJMQAa_ zvRCa2GL^&y>R(ma|GIdrUigdkVqh@OH?zXQN28@^lLOlLw(zm~u=x+W!mxiXWj;^U z=N})lQNRDK_B5?-u7KkrJx!M;{aeDz_h0%2He>nSCj>PLg`VoGq;Sip_$`x5)H4G#*^zpoyUb38q~zXSycplAkAq|{bH5|avI`C*RQO~uDLa;gf*5~ zO>2g-o#znvTrq3*zwwB&j`j<0T6IQ!dSfFb!3<<4=W&BY-iyp6fGQDE5bu!b?2VW_ z*|qulLu+BnpUbFlHK6X9LPN!JkzVaAG5gqT&*&(&U; z{6%aA`{NW1&MbEw{*5>O{ZIDSs(if!94a>pqxvK<9+69I*J^E{?-v{LEq~*^(XIK7 zH&t6-feMpmP|;^ojTSPER(7u%vK+gY%2hFK)R8!m%eJYwW~|;pCMteEMc8DHxWWS2 zn%Qh{-}OcZc8DvFtk^ilzM@^b`&_Tgpj6!K;UAAIGx?3Thf^qtXnhnQ_4Uzx-yD@= zIheu*3*(07>>)UHu0;a)YEY4OXT2><#RCoLo7Nlw(*F3{GbmQT5y zWGDBobhK=`hg}R=UE#)dC#w3RV}z0SO?Az&FdI3sy~yc9A>BHeX!%i(=MFDP28rDH z49JS8#E^EJD>dV9Q=h@T+!PB0Z!OF-2K4Y-ERo=lei2fb_FYef#V@<-`d$}R*o(D0 z>P<*f`Df9O{O3}t<-Z%MO2S2ZpQMZ)>&57bt7Q7r-Vy0j(4M%6ZR=d|8y9+weroPB z<)Z5ReX-=-8<_`Bc&U)ED1uv(pO)`F3-ZgO@JR`v;?d|J8*XKClla=dbqn@RCF*GTBn5@$DO0& zJq(xCOt%G5&y%k1r~5p=aqpIu@57I06(O#6L=T4m$JhtOyShiIZta|3LnnJKzKhQ| z1l;Lg>D_3PMCW7Ez|p*Xb{bHS5~)H)#xUxl1DA>%CdpFG+5+uW6l^8~rayXLK60;6 zkV?Sk|6hoLW#3w;zShr9(JKgS4ogWOpyp^K`;#GI`P_L_aEh<|uYc zNs^P&&1zabx&Q#EPVV)x_W_}#InN!)s%dJ18I)&bBhZc(?eY<=>X*JOKp>r(gxpFvV5_~pZesr-~xKOgdu;UdvJ5NfS0{|YYq-)%*47l zd;};Cf|s5tK*G8T`06x8XxV7ebVSar)%LjOjAj|sh!T2N6UWbq#~Z1OH?HO(sZ+Wy zx%9LNw<%*)9KfLU9JFjmJbb-JqTG}xQ>$9`&Tn_*bn|ITTR=c5QygR(IgovQ2t&0m z=LqFjc(6s^=++afKT73H39UG-bv%`0Db-{a1*_vauC; zvK(u^u&UVw;0tFY63(R!A=Q)tr=fWPy{`sg(3|Q$>DCqv5567`%_lKM+SgM_qObi; z>7h-`0puP`^U$a$3MM@^<1vlw0Y&=fX8j$tlA^|h&&5x3k4D0d%<&-RRXl1xDQzeY zid=UyyE%QWLmc?uGk_vZia>e_ypGJw)URwVb>l<$Fe*kZAwI4i6lqKuLVe{K5mZrv z6{^>dsV!L^Q5^_V)tbhz4}{M%q-2#0TMjNS`B=t-DI>L_9B$!}yC@*s=o{}l3nqqo z$P05toasFL;)=dBiX@FR(g0)(@nqA&eLH1LC+T0mmilG43LABC9a0tc<9SmMOOMuQ z;eXHWp~)qYWh%P>WWdS*4b1r7V@X4s**2;d_qF?}&_E-1TKDFOl_s{)ts{gF6TD4@%ImZ}l%x64L zzSU8!_~_fdZUek_Mo7{E)?;s5+pBL?V^mMa8|7LriSi7^TrVUqU?BQ~hlN~Kz8$*d zvbb`Mf=`+yKOSC*xn>x>%*0F{a<>W7jry0_f@io-#`T#yjGv{!y^}Rc?8Wyev~aPMio(wy zt0p5;$<2>sx4nI)=gTR|URVe44`6FuntxciO~sJ)L&7qsA0R0TF)X%=r32(*2j9c7 z!8{r{<+kPiAyu{_1(y}KODmym4(1%atwiCe%Sq$*2koW$jF5#6Et*g@&c0z*i+(T3 zJt)Z--N7t8n5$%}o83KNO=4L28sb4A>t+(@rzA_g%A%S_sZ{~r70)zQ(V z!z2r9>^h>a%6SyaONw*eJ9nn7g~YNVKd9ho5#lJGkVk5RkMr9Y#9u7Z6eK>ncuFax z0^={M9MKywg``MOlupZY%hbPHJ-PkOaP*bU3`V{+g6L&(Y~clG$t&C<{5V^3!y>MR zLS>F^(l2+&jNw8vX%Br{0m;;49l!gEgQGUNcuP#Ebb+j}nrupDIr*VlAV`-$Rb)dK z@Y5MRZ&ds`{>}C5tJ!LMr>B zzM}BqSu|#n(b7-###+L)#Sngfi2#frI|)>P0Uo%+ND6HBS8OepHMC0WS?Y=XnvMJi zWzVl{tGl;X)k6w3PXSo8=~Dr>?3u4Lr5!t!3#caD*x@zxtI^~dBhdIDUcI0L3Z0ZN zT(w=oj`C}|gN}!)I1&!)O1leEzuz@kIlGO%)w}D_zxX4`mp#3|!7>nrE%c3ASU+*I zUyt*4Ff(~ebt#;OYY!8%PEw?xCZ9y^VkH5LDB;5_un|1+;r&j7KkQ94T4K+vg7{#I zVe^o5ffke#AqxdI5G#cg`&*^{N}btbL2$DBnSq(o3~g=o5S^t+TYT@@sk{-_L%_S1 zx+kM|UmM@VRft^>{LE|nq#&4T7rMYq_uV;9i15Ur0U1lH?!`D>!E);BA|Mr(UI&!c zZ%&beXuTuYbMQYLD_Zjt)DO?4sC@G}XIn}xa>r6e8#8cmN#cB^}#!M%Ct4+C$- zk~;HwM?=t&j^Mn`#x1bE90yJ{ZfLIm6T;>N@tl&cc15eJFIqe!=j{Z3@;Pa+^Id%8 zBwY8{?w}~Zo+{vh?7eeo(6VVTc>Z3JQENG&ZX;uXhv8LM#*6jDw@;m~auiMl0m|}t z(WNwq#=I|t-h9@EDg6KaZX{88xywJG8_@%rvN%c6LG{wBT(D zaUQ7lkQq{P1V!E!yCh4MlU7DU%w9qu?sE~LcD%o_95w&O(hk*G>CpHG@!^fHR{Srv zZq^04xhcK~mEF$og9c%u>3B7A$b5gD;g>JDA2rwilK>(u`wtv_wc(zbp6T|ufg1gL zN57xLJ)IrY2pXxQ86joyVdqRCEdhZr3S3XS_7(~c9G%E?o&rZ4XR7?9w@lUxPj{>E zA{$szW=+fv%sCu9wm6k7%N~0G&o{&44p*Z1hnC~n*3qP6u`Duk+TEtGpaqt&kLlzi zwpVKV`1=3I-Iwd^x!PnAH5hOOZ84HQw3@B_9wCfPiuxrO6t!Wa%{rJ1GNsABB7lH~ zSuQ0L^yx9nRi5T_q2?Yp7I8i;{4gMns6Hd|;Ik%-`Ao=?79y5v{&e7R6Mu?8x59xz z0$O@95Dj@0@Hf^Ay?^59A5jI^FdQe54(QL&GmDD<$orZwsgBE;^52G$$TBJJ!z;}V z12NHFBAWXmIvcS!AXpQjSc$DrLC`>M?%lndO~5}1Bc%VOr!Tjbv|(CFARf>UFKE^J zJ>;_^f>@g7__fkFBPDg{tPjxp&>)jx9a83BI{^y>jp`$T^6G?tfFM>SGEwK=wV5Z% zegxzPN^_NF0VJqJWQ8XJtS<^6G-l7t3USeeC1N)2eP%WIEZZfSvrY%y0^{uDTLhrU zEk`PZnM@e`Rr;5T&X5=^+g!_llisbF zzZ5+vsUiGv7>rEo;&^P*N0yzhR3$tS>{%D(5f3fXLNm2_o}7a-Pnoj$SqI}GB^41= zLQdSCP?KREZGL~s$%@i{5(RiXYk?C^!Mr887+LLC5kwm@VdK0Px)uq41l~`9?!h(x z?LZ&fqzu^am_y+|tgrt~m-Q10iTr!;~Uy7K#)M?Z-31JPV`2)_NDX!E@NF z#iYNhkg>MC5v4=oii|61A7VV^F=}$LSD%)d=gv?En zgg@K3(?)hJh1F`_UHx=^R1xvO{Dh>!OoVkp*)8Q5>QMvGYcn(hf@APP3_?7_lCifm z-tg_vD|P1cVv-hayDN#LMOEuG)n=+U{~oP>XXb{-kbTZYJVQF47NI8D0be^XEy*8A%} zQ+>UE=ND}tvp!izC^11OR^jxeAoW2O4?097DKIIh5HyxmwhQ1FMyu%%1KZ-}n|HEx zfQ(x2K3DyGm_N$b{~Ig&Ul-;VDz8&{PxIG7Nf1g_`K{Pp%imbC>}R|eYJd5sxpbNt zNcsT?+coT;o8Y&a*zu1BG;;u3e}q7gyHx>uV^czU7el@?Gi>hw=OWw-#C;vfm?mGZ?jZY&)#?Q6p`k0G5)W zk8bG2A!G#C<5n{7@l6~YfX%8#)44>nX}D|8G9{m$)yF0O+erCEJ@gNze`DpR-llgZ zbi@VAA^J#~)3JJU{A<*;B-3#)BqZa6e-%u;Nu`z4cv%52e*Vog+|lVqfLHrcO;-WL zJt+)7`!FBikpB2ThNJEmOgZX?`fzId>%;ft=CXgA(DBCh9`#r8$;2FSUx!L7C`g9- zG6fwA1FPYyF@~`Cm%M+Wois7Z{fWYor4j)?X>_bdoy-@NRqO<>Rj)I`g*lmu0!hs1*JU_%sFWUN79aZ62t5@q zSeien+!@g}dw1cgfIMXSI`(OWROJc3KLziPf19)Rrr;u3>EZ6+-g{+kvGwWzIPy2v z`J3Nvzbcr*4*u&Wt&Id{YIznsUjR31Ltzf{>BoS`yE~F z@MOTDaEJWu)YJC`bc1K#;bvWsh4iQ^?%yW z1lFM#VNI_-)!JUf-Y;q?;ipYsJwSQYif&K!8_v@!DoBMoNk@~N`R8AyrbS#0?)fP@ z{eDfe!FIehrfXGllO2m_|8f@(UU#?+qb8_mK?!Fj7QN~hosq_obys&g%ow29tdS-) zM8O!$H7sDY;sUD<1wL9#D7%p2iHNeVhS)$53n$=3X^(cZcj#Q5Zo}(wX(CmZZg_5O z{YtZn%?R9)!Fh^JY4*yYKb2y&L&)^mUkb2AB!{XK=Q7wYw7qm>F|E9bgSmKFwqLoo3-kWH8c|Q-9%JA6sgRQ8tf1iF2A4 zr$W{Mml)Z7X`?BM$lE!5hNQS!G#fN5tMtGPDo+Ns`-2&3wPWHS{#wBc;8mAEX{ai7 z@IcbGLXcbS%*zo7Es)o>J?0Ftt$z{^l$m96-3`O4 zGNQbV%9EIX8JB{=X|;%d(qS&hzu}rM0<|HIUlsjkc=vxf*Qoj5^haZ+b)r@#uGd9q z){%5pd@&v4mC=kbuvZOP8(<5OlDayYG%*qBH&N7q@dU=jl|LAE95!4!eYW^QIbBkY zlExBWnz=hFszF#gk!1S@^<=3hku(9%kO2V;Og;-w#S=w+H^i0^EaRb#hUP}3%F&47 zsp%eOrxDS!UvXnDzF=K?U0W{KEDZr|+RqAO$<-_zs-|&2n8G7U%CS1T#1m%PhF}7p zo6t)q88MJmC|po1b@3^*9F7kI0ql76j4uk9mu2UYA|2;FPV1)HiZ+zHyuwX*&5 zw3qZ>u%8I*ayAc9P_>!y*>YfQgX4>_kP&qTehY>?$327X%Rg4m^Zdb^YNoqVHjO)4 zw2Uicv-&Y^C_Kq@S3HilTgrir)u9jp&$IR}<*Z09lliolJgnJD=~@uQ3NYDtGZMwC zpkE|Ou|M(r@?E}>7b zV2-Gs+v==Y08kyMccjM)F(zF3xQ(y?gGNbDVr3Z*jeXZsxJjhYqYd3nfHuzIm6V)! ze!W^>u~}+dUP&G#Y!aKxR=AQl9o6xUa2}pR-}Y=#x``Tax}uI81w?7mUv7uGnRY#} zAz{2cSl@0w1mi)|hu)w|+Xmu!PcxpXZ08Ldv@+<63aiM=3`rG_nxRJLd1tv$h9Ntz zR~SQ!Kp_`Nwo5T0R$TMNk5m!6LWezU5zogA3C_>kix~EOVbefDk^BHnpI5KxDp-lD zf_;%aTdQ2Pg0d7#42JniEMJsre&Lf1Md3#2z&a!o0^;mTn4^WBKYC8X%aL6&U3WBeF%&(u^rPj;rY%9lR@{DIQ+= zik}r@KX!_V-Vn4qN@m=Nzo?d#^rNL&K}6+v=au_cQ)EhDH~)|uA>_oZLvJdF^k&6u zkhI90?7DID!3SP8O`#!3_@>xcx~k`Zqpxd45_$(y*ife+oTg%u$Ks*NH{V3!Gug=# zJZ1&p=1MwXh+9z$$Bs|yZj(~ap7cL9RNmDZko6&;xiZ@xnTb~MqZeiUtEd!eKcv8H z=A^gEyH#DzYT5d0E)42ny7{!P1N_BmI|?F4z-Q;tWG{8S^*@9 z2Ye7la4*zElG72}gyVn%(RPH^AP{fYEpDf4;jg7IVjUtP)FWwmS zNH>{GCf?qzL{68z#14o;O%T|d@P>17aS)kwV9=(5_-x(_k!auE#Q^Jx3@J}|_9;Lk zm%Dt0O{mjx-}i?08g5f|rF5Gb0oAP==Z;>^(bT|$ko~Q7qfSFxPy?F7ti>0v7&)NtNxBw9?RaY>!=BBvV_t09xO9~y^EBa+J(^%FxvH=jCW~`^% za2y3Q54>~qhVGzR1;OmC?L>dJMpWZ$ z?un8>ufJ^xho5M1lb4l6+IJyUQ%{Yq;G)KrH3U*c-vp4uMMV z#IgnC#S&`%mob$)2i}VByP-R;{NtF+Cpe3zB(>oH=2d@(p*;RY^`NpiYc6nZAoftn zsIOurU~>M#2W&W#PL{h#%@d07V!e$=lCZ3#S5mNZXH4m@hP!w33likSYT5znugpj% zil4(S(dr)jx3^MzMO1AxtLh26KG7M+O!80&hUuSbQTkxWSKE8L@1Muiuhd1S&sy$y z+6Rs?$|f87ooY6VrfYrRb~h5VA0NJn%#>7ps!b~>-Y4!mY<#WFXZMooW!DFF)qKzV zZ3^l3Z&S%q8%Aeb&kadYrlrxgUEQ$kQQxJ(5h5HEUHg@p+dq!kwfQ%wW|Ep{1CNH~ zGf!4@=g&lO+tRg;lJ+Y|2Bd7ZRKKL2x3#JRlP{)~9v;WFXh=9jJGiCo#iPqK)PJHzrWvRnJW%0P{ zJmA>IwZZFtzXjOWt+oKcfdBou-ep4XCots)@(um}bL#)G!2j z?Bnv(qt9Q&p-ZK7kGQp0=r(&pqKuuS=Zid6u8J`Fl#<-}q5+ncMn$GDAe-d!J+dv*xc!bKrj-@fE9<(*l=kKE=4imp`SO`UAieAiIpz6Yezk zH`pdTQfXYeGnw~OJMc4RJ^W*J_S2udFmO~QGU{*(0cgh2V__hx!!AN0{TPc6=)$O;QJj2CCN#n{`REaNdOSvMF&iY_z{Qvm?E-jP{G96jv0S19qM76U%T(+*QM|!u9DQclQ?(brq&KYLX-SGKvQy=dh zOr;0j(7gftb>n~U?DM}4zE0NHD?NPm*lMsHf7b)!yQJ+c8Ftn;5jBMm=BiSdK)$%Y zB!q;n0yt7b$8)Vq@*v;f>r5oo!&wzin$1Ve!6_7_Q$kND3-Ki4&xL=lPP{CCKa;%;NVvNIJz$>KmC4#Kl$1<3Va%3 zEsqPj%e8CVFr~A-1b~bIquoOTk^}ImpvO@FBS_zXx9_(Gp1q?ahe#cbY zVZYeBvSJvSEhZAHzIFi3R4}N73oRLCFQH|s6^6sfKT&IX6%@r=&hAz+%YOv5UNidz zk1rPe(f>$id(`&c(fzK5F3upQ$btp5*5M6P_RMs3=4<%K1z|$Y2?4dE`aq_$iG8WO zk~+N}*arxi%NLx#lxv3GHa|kWAeAu7ZR7YBuVH&Fw^DP`OXG`3UE44GkdA>xb`LsB zxm}-)D8_nZRoJE@%Yl;H;(y_DJT?C5rF(Abp{=OqdkL4{B)FQ7s3%_hJ(lgB;aRtO z8;DWF?RWIDq;pnTKJil;N>KGagERvPJ4Ut2oEI%Qlze&Dm5S~#a!(+9RxE!jn{JRK zo(lCJbBI#E}~o6%y({1f@0xiHb< zaU2Z5biWXBnDt_#~I6+h*wO|m%x|3^{)P|0golK5SfIyKr}IZ($uKUfDwm{s^JE<#)lOo1y;H)14; z2plSi63?{st`>0p-WGe6{cUEw(dhUERo3NRn|JFYH{JOaT?W1f+hIXl3Cx{kKswTh zye@rhZ?_j8Iz7+dKAM8Vk@X!C>U@0F>^va=-hx_No~WgA_5Kyx9XDOo!Citdzf1nSj$ zVfyRc-37BZFXp9<7W407y0u0&d@_8(I_5KvXxf;Mrx}p*FV{RhSJQe0MA9a3o!jaN zOjf|EejlQoA+?@q6)P=S0CMKIwp5-^5){z1fn@_f_e)| znSZOA6_*pxVEG6;T-Np0&MEsm;k@3;+|Ze(+%%)D?2FrTZdPe2#+u>nmnQN@XB(7{fgv6tM7 zm6_`TlANYxX+tHLMFvszGGe#4yrrYY?d(zATCYOzKWBtc+Il#1 zDupP=SjwTjw3ZZ9Aw8_P!-{tW2U48->MSR!*!u?l)e=s5Ng zBd}SiQdq!6tn1b?7`%T~pqRS$0qWG)d*}A+P$3rEAGaMa%)y;6SVNiJu~KAKyekHb zkO_gOq;rtxdQM4I`)QFDQpdE#CrFBn#huhVQlF$HJ&p_fbp&9awQJgO+9;7p z=cF#{c99(tR?^K}%_HzOi>Q#V_y>$Eh0dJ#0gSqvAEm?Dhq(9!S^{WEr$4mn9Irc* zlRRSZv5e%m!nVyDyVPag8S7)j?me{gznFaG^*7d_^mK2fNteO)wN`i5! zSQIZEmkz=k=et5%i8F9B&jA2ejsFB!-1;Pe5yA3s`=P7nVZtv1NV%AnFYs3{vbq%4Ru)Zh)^UA-gj;%Fu7LTKTU$03^>@{+o5QgSF zM6RzSm6NcoK4h{sa997@E`aeuLS5W&f?%Ji+jC3&JiOGI|0vzZYk)%L{jb?;HGAeq z*4s=K5CBs`mA;c07Mxn8-7w*xrTW%|T{CF~=VisJfO4hhbWRIlR1FdM2tT0#CBI}L zV*Xp2vnGvHj~q@On5K%|=Cm81vkoW0QUpS}f_b|*A}LsM^*VA!Scv)OMz3dH_TWGo zt)7rrpw#N_$C&_26iF*}+uQk%NbXmz6><&}I|c;vl;aZg=8ZhvY?hG=dcqm%k@bf% z7IZq=#OK`ho&;D|T>D2Pv;?I6@PSquZ1osSvkUNFAT4%!0#gV7YaY=;ix(@bfWxmaP@CQv*4k0AH85>cg&GPt_oWa6v@7lsSYrAGl zddnBYs>kB8fNfqppF#}NyflitJK)a7oIUzLOYrI7_*GixPrD5Y6zqxl*qM=}+WeX6 zI9^QB0CX7nh7s8e#42HVLd@?M`do!PGr6cIamnl&(e6>p=|lKs zgkfsZdXaW5VZy4ckxW@u-3FCf!^6jV9i4(=v6d-Ac^nfaW>A{O_ z$WeTt`{b)+8}JDyfe@GkACFyH2iH*!Q#BmH`;nv_X;SUcDL75Loc}v*E%$76*v9(% zC+)YyzDl6sG(p9}th1L#FhWDZq`inLM*uj<+=*%0Dib&zwtrs1o7T`Tbp(=A3l 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�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�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 P6ae^1IhT^?=j8tY?bBMX literal 0 HcmV?d00001 diff --git a/docs/packets_client.txt b/docs/packets_client.txt new file mode 100644 index 0000000..7859f47 --- /dev/null +++ b/docs/packets_client.txt @@ -0,0 +1,220 @@ +00 Logout +01 AttackRequest +03 RequestStartPledgeWar +04 RequestReplyStartPledgeWar +05 RequestStopPledgeWar +06 RequestReplyStopPledgeWar +07 RequestSurrenderPledgeWar +08 RequestReplySurrenderPledgeWar +09 RequestSetPledgeCrest +0b RequestGiveNickName +0f MoveBackwardToLocation +11 EnterWorld +12 RequestItemList +16 RequestUnEquipItem +17 RequestDropItem +19 UseItem +1a TradeRequest +1b AddTradeItem +1c TradeDone +1f Action +22 RequestLinkHtml +23 RequestBypassToServer +24 RequestBBSwrite +26 RequestJoinPledge +27 RequestAnswerJoinPledge +28 RequestWithdrawalPledge +29 RequestOustPledgeMember +2c RequestGetItemFromPet +2e RequestAllyInfo +2f RequestCrystallizeItem +30 RequestPrivateStoreManageSell +31 SetPrivateStoreListSell +34 RequestSocialAction +35 ChangeMoveType2 +36 ChangeWaitType2 +37 RequestSellItem +39 RequestMagicSkillUse +3a Appearing +3b SendWareHouseDepositList +3c SendWareHouseWithDrawList +3d RequestShortCutReg +3f RequestShortCutDel +40 RequestBuyItem +42 RequestJoinParty +43 RequestAnswerJoinParty +44 RequestWithDrawalParty +45 RequestOustPartyMember +46 RequestDismissParty +47 CannotMoveAnymore +48 RequestTargetCanceld +49 Say2 +4d RequestPledgeMemberList +4f DummyPacket +50 RequestSkillList +52 MoveWithDelta +53 RequestGetOnVehicle +54 RequestGetOffVehicle +55 AnswerTradeRequest +56 RequestActionUse +57 RequestRestart +58 RequestSiegeInfo +59 ValidatePosition +5b StartRotating +5c FinishRotating +5e RequestShowBoard +5f RequestEnchantItem +60 RequestDestroyItem +62 RequestQuestList +63 RequestQuestAbort +65 RequestPledgeInfo +66 RequestPledgeExtendedInfo +67 RequestPledgeCrest +6f RequestHennaEquip +73 RequestAquireSkillInfo +74 SendBypassBuildCmd +75 RequestMoveToLocationInVehicle +76 CannotMoveAnymoreInVehicle +77 RequestFriendInvite +78 RequestAnswerFriendInvite +79 RequestFriendList +7a RequestFriendDel +7c RequestAquireSkill +7d RequestRestartPoint +7e RequestGMCommand +7f RequestPartyMatchConfig +80 RequestPartyMatchList +81 RequestPartyMatchDetail +83 RequestPrivateStoreBuy +85 RequestTutorialLinkHtml +86 RequestTutorialPassCmdToServer +87 RequestTutorialQuestionMark +88 RequestTutorialClientEvent +89 RequestPetition +8a RequestPetitionCancel +8b RequestGmList +8c RequestJoinAlly +8d RequestAnswerJoinAlly +8e AllyLeave +8f AllyDismiss +90 RequestDismissAlly +91 RequestSetAllyCrest +92 RequestAllyCrest +93 RequestChangePetName +94 RequestPetUseItem +95 RequestGiveItemToPet +96 RequestPrivateStoreQuitSell +97 SetPrivateStoreMsgSell +98 RequestPetGetItem +99 RequestPrivateStoreManageBuy +9a SetPrivateStoreListBuy +9c RequestPrivateStoreQuitBuy +9d SetPrivateStoreMsgBuy +9f RequestPrivateStoreSell +a6 RequestSkillCoolTime +a7 RequestPackageSendableItemList +a8 RequestPackageSend +a9 RequestBlock +aa RequestCastleSiegeInfo +ab RequestSiegeAttackerList +ac RequestSiegeDefenderList +ad RequestJoinSiege +ae RequestConfirmSiegeWaitingList +b0 MultiSellChoose +b1 NetPing +b3 RequestUserCommand +b4 SnoopQuit +b5 RequestRecipeBookOpen +b6 RequestRecipeBookDestroy +b7 RequestRecipeItemMakeInfo +b8 RequestRecipeItemMakeSelf +ba RequestRecipeShopMessageSet +bb RequestRecipeShopListSet +bc RequestRecipeShopManageQuit +be RequestRecipeShopMakeInfo +bf RequestRecipeShopMakeItem +c0 RequestRecipeShopManagePrev +c1 ObserverReturn +c2 RequestEvaluate +c3 RequestHennaList +c4 RequestHennaItemInfo +cc RequestPledgePower +cd RequestMakeMacro +ce RequestDeleteMacro +cf RequestBuyProcure +c5 RequestBuySeed +c6 DlgAnswer +c7 RequestWearItem +c8 RequestSSQStatus +cb GameGuardReply +6b RequestSendFriendMsg +6c RequestShowMiniMap +6e RequestRecordInfo + +D0:01 RequestManorList +D0:02 RequestProcureCropList +D0:03 RequestSetSeed +D0:04 RequestSetCrop +D0:05 RequestWriteHeroWords +D0:06 RequestExAskJoinMPCC +D0:07 RequestExAcceptJoinMPCC +D0:08 RequestExOustFromMPCC +D0:09 RequestOustFromPartyRoom +D0:0a RequestDismissPartyRoom +D0:0b RequestWithdrawPartyRoom +D0:0c RequestChangePartyLeader +D0:0d RequestAutoSoulShot +D0:0e RequestExEnchantSkillInfo +D0:0f RequestExEnchantSkill +D0:10 RequestExPledgeCrestLarge +D0:11 RequestExSetPledgeCrestLarge +D0:12 RequestPledgeSetAcademyMaster +D0:13 RequestPledgePowerGradeList +D0:14 RequestPledgeMemberPowerInfo +D0:15 RequestPledgeSetMemberPowerGrade +D0:16 RequestPledgeMemberInfo +D0:17 RequestPledgeWarList +D0:18 RequestExFishRanking +D0:19 RequestPCCafeCouponUse +D0:1b RequestDuelStart +D0:1c RequestDuelAnswerStart +D0:1e RequestExRqItemLink +D0:21 RequestKeyMapping +D0:24 RequestSaveInventoryOrder +D0:25 RequestExitPartyMatchingWaitingRoom +D0:26 RequestConfirmTargetItem +D0:27 RequestConfirmRefinerItem +D0:28 RequestConfirmGemStone +D0:29 RequestOlympiadObserverEnd +D0:2a RequestCursedWeaponList +D0:2b RequestCursedWeaponLocation +D0:2c RequestPledgeReorganizeMember +D0:2e RequestExMPCCShowPartyMembersInfo +D0:2f RequestOlympiadMatchList +D0:30 RequestAskJoinPartyRoom +D0:31 AnswerJoinPartyRoom +D0:32 RequestListPartyMatchingWaitingRoom +D0:33 RequestExEnchantSkillSafe +D0:34 RequestExEnchantSkillUntrain +D0:35 RequestExEnchantSkillRouteChange +D0:36 ExGetOnAirShip +D0:38 RequestExEnchantItemAttribute +D0:3f RequestAllCastleInfo +D0:40 RequestAllFortressInfo +D0:41 RequestAllAgitInfo +D0:42 RequestFortressSiegeInfo +D0:43 RequestGetBossRecord +D0:44 RequestRefine +D0:45 RequestConfirmCancelItem +D0:46 RequestRefineCancel +D0:47 RequestExMagicSkillUseGround +D0:48 RequestDuelSurrender +D0:49 RequestExEnchantSkillInfoDetail +D0:4b RequestFortressMapInfo +D0:4d SetPrivateStoreWholeMsg +D0:4e RequestDispel +D0:4f RequestExTryToPutEnchantTargetItem +D0:50 RequestExTryToPutEnchantSupportItem +D0:51 RequestExCancelEnchantItem +D0:52 RequestChangeNicknameColor +D0:53 RequestResetNickname \ No newline at end of file diff --git a/docs/packets_client_final_l2wh.txt b/docs/packets_client_final_l2wh.txt new file mode 100644 index 0000000..bcc383d --- /dev/null +++ b/docs/packets_client_final_l2wh.txt @@ -0,0 +1,261 @@ +00 LogoutPacket +01 Attack cddddc +02 UnknownPacket0x02 cddc +03 RequestStartPledgeWar cS +05 RequestStopPledgeWar cS +07 ResponseAuthGameGuard cddddd +09 RequestSetPledgeCrest cdb lub cd +0B RequestGiveNickName cSS +0C NewCharacter cSdddddddddddd +0D CharacterDeletePacket cd +0F MoveBackwardToLocation cdddddd +10 Say cS +11 EnterWorldPacket cbddddbdcccccccccccccccccccc +12 CharacterSelect cdhddd +13 NewCharacterPacket +14 ItemList +15 RequestEquipItem cdd +16 RequestUnEquipItem cd +17 RequestDraopItemPacket cdQddd +19 UseItemPacket cdd +1A TradeRequestPacket cd +1b AddTradeItemPacket cddQ +1C TradeDonePacket cd +1F Action cddddc +22 RequestLinkHtml cS +23 RequestBypassToServer cS +24 RequestBBSWrite cSSSSSS +25 RequestCreatePledge cS +26 RequestJoinPledge cdd +27 RequestAnswerJoinPledge cd +28 RequestWithDrawalPledge +29 RequestOustPledgeMember cS +2C RequestGetItemFromPet? cdQd +2E RequestAllyInfo +2F RequestCrystallizeItem cdQ +30 UnknownPacket1 +32 UnknownPacket2 +33 RequestTeleportPacket cddddd lub cdddd +34 SocialAction cd +35 ChangeMoveType cd +36 ChangeWaitType cd +38 RequestMagicSkillList ddd +39 RequestMagicSkillUse cddc +3A SendApperingPacket +3D RequestShortCutReg cddddd +3E RequestShortCutUse cddc +3F RequestShortCutDel cd +41 RequestDismissPledge +42 RequestJoinParty cSd +43 RequestAnswerJoinParty cd +44 RequestWithDrawalParty +45 RequestOustPartyMember cS +46 RequestDismissParty +48 RequestTargetCancel ch +49 Say2 cSd lub cSdS +4D RequestPledgeMemberList +4F RequestMagicList +50 RequestSkillList +52 MoveWithDelta cddd +53 GetOnVehicle cdddd +54 GetOffVehicle cdddd +55 AnswerTradeRequest cd +56 RequestActionUse cddc +57 RequestRestart +58 RequestSiegeInfo +59 ValidatePosition? cddddd +5a RequestSEKCustom cdd +5B StartRotating cdd +5C FinishRotating cdd +5e RequestShowboard cd +5F RequestEnchantItem cdd +60 RequestDestroyItem cdQ +62 RequestQuestList +63 RequestDestroyQuest cd +66 RequestPledgeExtendedInfo cS +67 RequestPledgeCrest cd +6b RequestSendL2FriendSay cSS +6C RequestOpenMinimap +6d RequestSendMsnChatLog cSSd +6e RequestReload +6F RequestHennaEquip cd +70 RequestHennaUnequipList cd +71 RequestHennaUnequipInfo cd +72 RequestHennaUnequip cd +73 RequestAcquireSkillInfo cddd +74 SendBypassBuildCmd cS +77 RequestFriendInvite cS +78 RequestFriendAddReply cd +79 RequestFriendList +7A RequestFriendDel cS +7B CharacterRestorePacket cd +7C RequestAcquireSkill cdddd lub cddd +7D RequestRestartPoint cd +7E RequestGMCommand cSdd +7F RequestPartyMatchConfig cddd +80 RequestPartyMatchList cdddddS +81 RequestPartyMatchDetail cdddd +82 UnknownPacket3 cd +84 ReviveReply cd +85 RequestTutorialLinkHtml cS +86 RequestTutorialPassCmdToServer cS +87 RequestTutorialQuestionMarkPressed cd +88 RequestTutorialClientEvent cd +89 RequestPetition cSd +8A RequestPetitionCancel cS +8B RequestGMList +8C RequestJoinAlly cd +8D RequestAnswerJoinAlly cd +8E RequestWithdrawAlly +8F RequestOustAlly cS +90 RequestDismissAlly +91 RequestSetAllyCrest cdb +92 RequestAllyCrest cd +93 RequestChangePetName cS +94 RequestPetUseItem cd +95 RequestGiveItemToPet cdQ +96 RequestPrivateStoreQuitSell +97 SetPrivateStoreMsgSell cS +98 RequestPetGetItem cd +99 RequestPrivateStoreBuyManage? +9b UnknownPacket4 +9c UnknownPacket5 +9d UnknownPacket6 cS +9e UnknownPacket7 cd +A0 SendTimeCheckPacket cdd +a6 RequestSkillCoolTime +a7 RequestPackageSendableItemList cd +A9 RequestBlock cdS lub cd +aa RequestCastleSiegeInfo cd +ab RequestCastleSiegeAttackerList cd +ac RequestCastleSiegeInfo cd +AD RequestJoinCastleSiege cddd +AE RequestConfirmCastleSiegeWaitingList cddd +af RequestSetCastleSiegeTime cdd +b1 NetPing cddd +b2 RequestRemainTime +b3 BypassUserCmd cd +b4 Snoop_quit cd +B5 RequestRecipeBookOpen cd +B6 RequestRecipeItemDelete cd +B7 RequestRecipeItemMakeInfo cd +B8 RequestRecipeItemMakeSelf cd +B9 RequestRecipeShopManageList +BA RequestRecipeShopMessageSet cS +BC RequestRecipeShopManageQuit +BD RequestRecipeShopManageCancel +BE RequestRecipeShopMakeInfo cdd +BF RequestRecipeShopMakeDo cddQ +C0 RequestRecipeShopSellList cd +c1 RequestObserverEndPacket +c2 VoteSociality cd +c3 RequestHennaItemList cd +c4 RequestHennaItemInfo cd +c6 ConfirmDlg cddd +c8 RequestSSQStatus cc +c9 PetitionVote cddS +cb ReplyGameGuardQuery cdddd +cc RequestPledgePower cddd +CE RequestDeleteMacro cd + + + +D001 RequestManorList ch +D005 RequestWriteHeroWords chS +D006 RequestExAskJoinMPCC chS +D007 RequestExAcceptJoinMPCC chdd +D008 RequestExOustFromMPCC chS +D009 RequestOustFromPartyRoom chd +D00A RequestDismissPartyRoom chdd +D00B RequestWithdrawPartyRoom chdd +D00C RequestHandOverPartyMaster chS +D00D RequestAutoSoulShot chdd +d00E RequestExEnchantSkillInfo chddd +d00f RequestExEnchantSkill chdd +D010 RequestExPledgeCrestLarge chd +D011 RequestExSetPledgeCrestLarge chdb lub chd +D012 RequestPledgeSetAcademyMaster chdSS +D013 RequestPledgePowerGradeList chch +D014 RequestPledgeMemberPowerInfo chdS +D015 RequestPledgeSetMemberPowerGrade chSd +D016 RequestPledgeMemberInfo chdS +D017 RequestPledgeWarList chdd +D018 RequestExFishRanking ch +D019 RequestPCCafeCouponUse chS +D01b RequestDuelStart chSd +D01c RequestDuelAnswerStart chddd +D01d RequestExSetTutorial chd +D01e RequestExRqItemLink chd +D021 RequestKeyMapping ch +D022 RequestSaveKeyMapping chdb +D023 RequestExRemoveItemAttribute chd +D025 RequestExitPartyMatchingWaitingRoom ch +D026 RequestConfirmTargetItem chd +D027 RequestConfirmRefinerItem chdd +D028 RequestConfirmGemStone chdddQ +D029 RequestOlympiadObserverEnd ch +D02A RequestCursedWeaponList ch +D02b RequestCursedWeaponLocation ch +D02C RequestPledgeReorganizeMember chdSdS +D02D RequestExMPCCShowPartyMembersInfo chd +D02E RequestOlympiadMatchList ch +D02f RequestAskJoinPartyRoom chS +D030 AnswerJoinPartyRoom chd +D031 RequestListPartyMatchingWaitingRoom chdddd +d032 RequestExEnchantSkill chdd +d033 RequestExEnchantSkill chdd +d034 RequestExEnchantSkill chdd +D035 RequestEnchantItemAttribute chd +D036 NieMaNazwyAleLeciPoUtworzeniuPostaci ch +D039 RequestBidItemAuction chdQ +D03a RequestInfoItemAuction chd +D03b RequestExChangeName chdSd +D03c RequestAllCastleInfo ch +D03d RequestAllFortressInfo ch +D03e RequestAllAgitInfo ch +D03f RequestFortressSiegeInfo ch +D040 RequestGetBossRecord chd +D041 RequestRefine chdddQ +D042 RequestConfirmCancelItem chd +D043 RequestConfirmCancelItem chd +D044 RequestExMagicSkillUseGround chdddddc +D045 RequestDuelSurrender ch +d046 RequestExEnchantSkillInfoDetail chddd +D048 RequestFortressMapInfo chd +D049 RequestPVPMatchRecord ch +D04a SetPrivateStoreWholeMsg chS +D04b RequestDispel chdd +D04c RequestExTryToPutEnchantTargetItem chd +D04d RequestExTryToPutEnchantSupportItem chdd +D04e RequestExCancelEnchantItem ch +D04f RequestChangeNicknameColor chdSd +D050 RequestResetNickname ch +D052 RequestWithDrawPremiumItem chQQ +D053 RequestJump ch +D054 RequestStartShowCrataeCubeRank ch +D055 RequestStopShowCrataeCubeRank ch +D056 NotifyStartMiniGame ch +D057 RequestJoinDominionWar chddd +D058 RequestDominionInfo ch +D059 RequestExCleftEnter chd +D05a RequestExBlockGameEnter chdd +D05b EndScenePlayer chd +D05c RequestExBlockGameVote chdd +D063 RequestSeedPhase ch +D065 BR_GamePoint ch +D066 BR_ProductList ch +D067 BR_ProductInfo chd +DO68 BR_BuyProduct chdd + +D05100 RequestBookMarkSlotInfo chd +D05101 RequestSaveBookMarkSlot chdSdS +D05102 RequestModifyBookMarkSlot chddSdS +D05103 RequestDeleteBookMarkSlot chdd +D05104 RequestTeleportBookMark chdd +D05105 RequestChangeBookMarkSlot chddd + + +4A00 SuperCmdCharacterInfo ccS +4A01 SuperCmdSummonCmd ccS +4A02 SuperCmdServerStatus cc +4A03 SendL2ParamSetting ccdd \ No newline at end of file diff --git a/docs/packets_server.txt b/docs/packets_server.txt new file mode 100644 index 0000000..e6e2380 --- /dev/null +++ b/docs/packets_server.txt @@ -0,0 +1,341 @@ +00 Die +01 Revive +02 ... +03 ... +04 ... +05 SpawnItem +06 SellList +07 BuyList +08 DeleteObject +09 CharSelectionInfo +0A LoginFail +0B CharSelected +0C CharInfo +0D NewCharacterSuccess +0E ObservationReturn +0F CharCreateOk +10 CharCreateFail +11 ItemList +12 SunRise +13 SunSet +14 TradeStart +15 ... +16 DropItem +17 GetItem +18 StatusUpdate +19 NpcHtmlMessage +1A TradeOwnAdd +1B TradeOtherAdd +1C TradeDone +1D CharDeleteSuccess +1E CharDeleteFail +1F ActionFailed +20 ServerClose +21 InventoryUpdate +22 TeleportToLocation +23 TargetSelected +24 TargetUnselected +25 AutoAttackStart +26 AutoAttackStop +27 SocialAction +28 ChangeMoveType +29 ChangeWaitType +2A ManagePledgePower +2B ... +2C AskJoinPledge +2D JoinPledge +2E KeyPacket +2F MoveToLocation +30 NpcSay +31 NpcInfo +32 UserInfo +33 Attack +34 ... +35 ... +36 ... +37 ... +38 ... +39 AskJoinParty +3A JoinParty +3B ... +3C ... +3D ... +3E ... +3F ... +40 ... +41 WareHouseDepositList +42 WareHouseWithdrawalList +43 ... +44 ShortCutRegister +45 ShortCutInit +46 ... +47 StopMove +48 MagicSkillUse +49 MagicSkillCanceld +4A CreatureSay +4B EquipUpdate +4C DoorInfo +4D DoorStatusUpdate +4E PartySmallWindowAll +4F PartySmallWindowAdd +50 PartySmallWindowDeleteAll +51 PartySmallWindowDelete +52 PartySmallWindowUpdate +53 ... +54 MagicSkillLaunched +55 ... +56 ... +57 ... +58 ... +59 ... +5A PledgeShowMemberListAll +5B PledgeShowMemberListUpdate +5C PledgeShowMemberListAdd +5D PledgeShowMemberListDelete +5E ... +5F SkillList +60 VehicleInfo +61 StopRotation +62 SystemMessage +63 StartPledgeWar +64 ... +65 StopPledgeWar +66 ... +67 SurrenderPledgeWar +68 ... +69 ... +6A PledgeCrest +6B SetupGauge +6C VehicleDeparture +6D VehicleCheckLocation +6E GetOnVehicle +6F GetOffVehicle +70 SendTradeRequest +71 RestartResponse +72 MoveToPawn +73 SSQInfo +74 GameGuardQuery +75 FriendList +76 ... +77 ... +78 L2FriendSay +79 ValidateLocation +7A StartRotation +7B ShowBoard +7C ChooseInventoryItem +7D ... +7E MoveToLocationInVehicle +7F StopMoveInVehicle +80 ValidateLocationInVehicle +81 ... +82 ... +83 FriendAddRequest +84 LeaveWorld +85 AbnormalStatusUpdate +86 QuestList +87 EnchantResult +88 PledgeShowMemberListDeleteAll +89 PledgeInfo +8A ... +8B ... +8C Ride +8D ... +8E PledgeShowInfoUpdate +8F ... +90 AcquireSkillList +91 AcquireSkillInfo +92 ... +93 GMHide +94 AcquireSkillDone +95 GMViewCharacterInfo +96 GMViewPledgeInfo +97 GMViewSkillInfo +98 ... +99 GmViewQuestInfo +9A GMViewItemList +9B GMViewWarehouseWithdrawList +9C ListPartyWating +9D PartyMatchDetail +9E PlaySound +9F StaticObject +A0 PrivateStoreManageListSell +A1 PrivateStoreListSell +A2 PrivateStoreMsgSell +A3 ShowMiniMap +A4 ... +A5 ... +A6 TutorialShowHtml +A7 TutorialShowQuestionMark +A8 TutorialEnableClientEvent +A9 TutorialCloseHtml +AA ... +AB ... +AC ... +AD ... +AE ... +AF AllyCrest +B0 ... +B1 PetStatusShow +B2 PetInfo +B3 PetItemList +B4 PetInventoryUpdate +B5 ... +B6 PetStatusUpdate +B7 PetDelete +B8 ... +B9 MyTargetSelected +BA PartyMemberPosition +BB AskJoinAlly +BC ... +BD PrivateStoreManageListBuy +BE PrivateStoreListBuy +BF PrivateStoreMsgBuy +C0 VehicleStarted +C1 ... +C2 ... +C3 ... +C4 ... +C5 ... +C6 ... +C7 SkillCoolTime +C8 PackageToList +C9 FortressSiegeInfo +CA SiegeAttackerList +CB SiegeDefenderList +CC NicknameChanged +CD PledgeStatusChanged +CE RelationChanged +CF ... +D0 MultiSellList +D1 SetSummonRemainTime +D2 PackageSendableList +D3 Earthquake +D4 FlyToLocation +D5 ... +D6 SpecialCamera +D7 NormalCamera +D8 ... +D9 ... +DA Dice +DB Snoop +DC RecipeBookItemList +DD RecipeItemMakeInfo +DE RecipeShopManageList +DF RecipeShopSellList +E0 RecipeShopItemInfo +E1 RecipeShopMsg +E2 ShowCalculator +E3 MonRaceInfo +E4 HennaItemInfo +E5 HennaInfo +E6 ... +E7 ... +E8 SendMacroList +E9 BuyListSeed +EA ShowTownMap +EB ObservationMode +EC ... +ED ChairSit +EE HennaEquipList +EF SellListProcure +F0 GMHennaInfo +F1 RadarControl +F2 ClientSetTime +F3 ConfirmDlg +F4 PartySpelled +F5 ShopPreviewList +F6 ... +F7 CameraMode +F8 ShowXMasSeal +F9 EtcStatusUpdate +FA ShortBuffStatusUpdate +FB SSQStatus +FC ... +FD AgitDecoInfo +FE ... +FF ... + +2-byte packets: +FE:01 ExRegMax +FE:0C ExAutoSoulShot +FE:12 ExOpenMPCC +FE:13 ExCloseMPCC +FE:14 ExShowCastleInfo +FE:15 ExShowFortressInfo +FE:16 ExShowAgitInfo +FE:17 ExShowFortressSiegeInfo +FE:18 ExPartyPetWindowAdd +FE:19 ExPartyPetWindowUpdate +FE:1A ExAskJoinMPCC +FE:1B ExPledgeCrestLarge +FE:1E ExFishingStart +FE:1F ExFishingEnd +FE:20 ExShowQuestInfo +FE:21 ExShowQuestMark +FE:22 ExSendManorList +FE:23 ExShowSeedInfo +FE:24 ExShowCropInfo +FE:25 ExShowManorDefaultInfo +FE:26 ExShowSeedSetting +FE:27 ExFishingStartCombat +FE:28 ExFishingHpRegen +FE:29 ExEnchantSkillList +FE:2A ExEnchantSkillInfo +FE:2B ExShowCropSetting +FE:2C ExShowSellCropList +FE:2E ExMailArrived +FE:2F ExStorageMaxCount +FE:31 ExMultiPartyCommandChannelInfo +FE:32 ExPCCafePointInfo +FE:33 ExSetCompassZoneCode +FE:34 ExGetBossRecord +FE:35 ExAskJoinPartyRoom +FE:38 ExShowAdventurerGuideBook +FE:39 ExShowScreenMessage +FE:3A PledgeSkillList +FE:3B PledgeSkillListAdd +FE:3C PledgePowerGradeList +FE:3D PledgeReceivePowerInfo +FE:3E PledgeReceiveMemberInfo +FE:3F PledgeReceiveWarList +FE:40 PledgeReceiveSubPledgeCreated +FE:41 ExRedSky +FE:44 ShowPCCafeCouponShowUI +FE:45 ExSearchOrc +FE:46 ExCursedWeaponList +FE:47 ExCursedWeaponLocation +FE:48 ExRestartClient +FE:49 ExRequestHackShield +FE:4A ExUseSharedGroupItem +FE:4B ExMPCCShowPartyMemberInfo +FE:4C ExDuelAskStart +FE:4D ExDuelReady +FE:4E ExDuelStart +FE:4F ExDuelEnd +FE:50 ExDuelUpdateUserInfo +FE:51 ExShowVariationMakeWindow +FE:52 ExShowVariationCancelWindow +FE:53 ExPutItemResultForVariationMake +FE:54 ExPutIntensiveResultForVariationMake +FE:55 ExPutCommissionResultForVariationMake +FE:56 ExVariationResult +FE:57 ExPutItemResultForVariationCancel +FE:58 ExVariationCancelResult +FE:5B ExMPCCPartyInfoUpdate +FE:5C ExPlayScene +FE:5D ExSpawnEmitter +FE:5E ExEnchantSkillInfoDetail +FE:5F ExBasicActionList +FE:61 ExAttributeEnchantResult +FE:62 ExChooseInventoryAttributeItem +FE:67 ExShowTrace +FE:6A ExPartyPetWindowDelete +FE:6C ExRpItemLink +FE:78 ExShowProcureCropDetail +FE:79 ExHeroList +FE:7A ExOlympiadUserInfoSpectator +FE:7B ExOlympiadSpelledInfo +FE:7C ExOlympiadMode +FE:7D ExShowFortressMapInfo +FE:80 ExPrivateStoreSetWholeMsg +FE:81 RequestEnchant diff --git a/docs/packets_server_t23_l2wh.txt b/docs/packets_server_t23_l2wh.txt new file mode 100644 index 0000000..13503f0 --- /dev/null +++ b/docs/packets_server_t23_l2wh.txt @@ -0,0 +1,430 @@ +0 DiePacket +1 RevivePacket +2 AttackOutofRangePacket +3 AttackinCoolTimePacket +4 AttackDeadTargetPacket +5 SpawnItemPacket +6 SellListPacket +7 BuyListPacket +8 DeleteObjectPacket +9 CharacterSelectionInfoPacket +a LoginFailPacket +b CharacterSelectedPacket +c NpcInfoPacket +d NewCharacterSuccessPacket +e NewCharacterFailPacket +f CharacterCreateSuccessPacket +10 CharacterCreateFailPacket +11 ItemListPacket +12 SunRisePacket +13 SunSetPacket +14 TradeStartPacket +15 TradeStartOkPacket +16 DropItemPacket +17 GetItemPacket +18 StatusUpdatePacket +19 NpcHtmlMessagePacket +1a TradeOwnAddPacket +1b TradeOtherAddPacket +1c TradeDonePacket +1d CharacterDeleteSuccessPacket +1e CharacterDeleteFailPacket +1f ActionFailPacket +20 SeverClosePacket +21 InventoryUpdatePacket +22 TeleportToLocationPacket +23 TargetSelectedPacket +24 TargetUnselectedPacket +25 AutoAttackStartPacket +26 AutoAttackStopPacket +27 SocialActionPacket +28 ChangeMoveTypePacket +29 ChangeWaitTypePacket +2a ManagePledgePowerPacket +2b CreatePledgePacket +2c AskJoinPledgePacket +2d JoinPledgePacket +2e VersionCheckPacket +2f MTLPacket +30 NSPacket +31 CIPacket +32 UIPacket +33 AttackPacket +34 WithdrawalPledgePacket +35 OustPledgeMemberPacket +36 SetOustPledgeMemberPacket +37 DismissPledgePacket +38 SetDismissPledgePacket +39 AskJoinPartyPacket +3a JoinPartyPacket +3b WithdrawalPartyPacket +3c OustPartyMemberPacket +3d SetOustPartyMemberPacket +3e DismissPartyPacket +3f SetDismissPartyPacket +40 MagicAndSkillList +41 WareHouseDepositListPacket +42 WareHouseWithdrawListPacket +43 WareHouseDonePacket +44 ShortCutRegisterPacket +45 ShortCutInitPacket +46 ShortCutDeletePacket +47 StopMovePacket +48 MagicSkillUse +49 MagicSkillCanceled +4a SayPacket2 +4b EquipUpdatePacket +4c DoorInfoPacket +4d DoorStatusUpdatePacket +4e PartySmallWindowAllPacket +4f PartySmallWindowAddPacket +50 PartySmallWindowDeleteAllPacket +51 PartySmallWindowDeletePacket +52 PartySmallWindowUpdatePacket +53 TradePressOwnOkPacket +54 MagicSkillLaunchedPacket +55 FriendAddRequestResult +56 FriendAdd +57 FriendRemove +58 FriendList +59 FriendStatus +5a PledgeShowMemberListAllPacket +5b PledgeShowMemberListUpdatePacket +5c PledgeShowMemberListAddPacket +5d PledgeShowMemberListDeletePacket +5e MagicListPacket +5f SkillListPacket +60 VehicleInfoPacket +61 FinishRotatingPacket +62 SystemMessagePacket +63 StartPledgeWarPacket +64 ReplyStartPledgeWarPacket +65 StopPledgeWarPacket +66 ReplyStopPledgeWarPacket +67 SurrenderPledgeWarPacket +68 ReplySurrenderPledgeWarPacket +69 SetPledgeCrestPacket +6a PledgeCrestPacket +6b SetupGaugePacket +6c VehicleDeparturePacket +6d VehicleCheckLocationPacket +6e GetOnVehiclePacket +6f GetOffVehiclePacket +70 TradeRequestPacket +71 RestartResponsePacket +72 MoveToPawnPacket +73 SSQInfoPacket +74 GameGuardQueryPacket +75 L2FriendListPacket +76 L2FriendPacket +77 L2FriendStatusPacket +78 L2FriendSayPacket +79 ValidateLocationPacket +7a StartRotatingPacket +7b ShowBoardPacket +7c ChooseInventoryItemPacket +7d DummyPacket +7e MoveToLocationInVehiclePacket +7f StopMoveInVehiclePacket +80 ValidateLocationInVehiclePacket +81 TradeUpdatePacket +82 TradePressOtherOkPacket +83 FriendAddRequest +84 LogOutOkPacket +85 AbnormalStatusUpdatePacket +86 QuestListPacket +87 EnchantResultPacket +88 PledgeShowMemberListDeleteAllPacket +89 PledgeInfoPacket +8a PledgeExtendedInfoPacket +8b SurrenderPersonallyPacket +8c RidePacket +8d DummyPacket +8e PledgeShowInfoUpdatePacket +8f ClientActionPacket +90 AcquireSkillListPacket +91 AcquireSkillInfoPacket +92 ServerObjectInfoPacket +93 GMHidePacket +94 AcquireSkillDonePacket +95 GMViewCharacterInfoPacket +96 GMViewPledgeInfoPacket +97 GMViewSkillInfoPacket +98 GMViewMagicInfoPacket +99 GMViewQuestInfoPacket +9a GMViewItemListPacket +9b GMViewWarehouseWithdrawListPacket +9c ListPartyWatingPacket +9d PartyRoomInfoPacket +9e PlaySoundPacket +9f StaticObjectPacket +a0 PrivateStoreManageList +a1 PrivateStoreList +a2 PrivateStoreMsg +a3 ShowMinimapPacket +a4 ReviveRequestPacket +a5 AbnormalVisualEffectPacket +a6 TutorialShowHtmlPacket +a7 TutorialShowQuestionMarkPacket +a8 TutorialEnableClientEventPacket +a9 TutorialCloseHtmlPacket +aa ShowRadarPacket +ab WithdrawAlliancePacket +ac OustAllianceMemberPledgePacket +ad DismissAlliancePacket +ae SetAllianceCrestPacket +af AllianceCrestPacket +b0 ServerCloseSocketPacket +b1 PetStatusShowPacket +b2 PetInfoPacket +b3 PetItemListPacket +b4 PetInventoryUpdatePacket +b5 AllianceInfoPacket +b6 PetStatusUpdatePacket +b7 PetDeletePacket +b8 DeleteRadarPacket +b9 MyTargetSelectedPacket +ba PartyMemberPositionPacket +bb AskJoinAlliancePacket +bc JoinAlliancePacket +bd PrivateStoreBuyManageList +be PrivateStoreBuyList +bf PrivateStoreBuyMsg +c0 VehicleStartPacket +c1 RequestTimeCheckPacket +c2 StartAllianceWarPacket +c3 ReplyStartAllianceWarPacket +c4 StopAllianceWarPacket +c5 ReplyStopAllianceWarPacket +c6 SurrenderAllianceWarPacket +c7 SkillCoolTimePacket +c8 PackageToListPacket +c9 CastleSiegeInfoPacket +ca CastleSiegeAttackerListPacket +cb CastleSiegeDefenderListPacket +cc NickNameChangedPacket +cd PledgeStatusChangedPacket +ce RelationChangedPacket +cf EventTriggerPacket +d0 MultiSellListPacket +d1 SetSummonRemainTimePacket +d2 PackageSendableListPacket +d3 EarthQuakePacket +d4 FlyToLoactionPacket +d5 BlockListPacket +d6 SpecialCameraPacket +d7 NormalCameraPacket +d8 SkillRemainSecPacket +d9 NetPingPacket +da DicePacket +db SnoopPacket +dc RecipeBookItemListPacket +dd RecipeItemMakeInfoPacket +de RecipeShopManageListPacket +df RecipeShopSellListPacket +e0 RecipeShopItemInfoPacket +e1 RecipeShopMsgPacket +e2 ShowCalcPacket +e3 MonRaceInfoPacket +e4 HennaItemInfoPacket +e5 HennaInfoPacket +e6 HennaUnequipListPacket +e7 HennaUnequipInfoPacket +e8 MacroListPacket +e9 BuyListSeedPacket +ea ShowTownMapPacket +eb ObserverStartPacket +ec ObserverEndPacket +ed ChairSitPacket +ee HennaEquipListPacket +ef SellListProcurePacket +f0 GMHennaInfoPacket +f1 RadarControlPacket +f2 ClientSetTimePacket +f3 ConfirmDlgPacket +f4 PartySpelledPacket +f5 ShopPreviewListPacket +f6 ShopPreviewInfoPacket +f7 CameraModePacket +f8 ShowXMasSealPacket +f9 EtcStatusUpdatePacket +fa ShortBuffStatusUpdatePacket +fb SSQStatusPacket +fc PetitionVotePacket +fd AgitDecoInfoPacket +fe DummyPacket + +fe00 ExDummyPacket +fe01 ExRegenMaxPacket +fe02 ExEventMatchUserInfoPacket +fe03 ExColosseumFenceInfoPacket +fe04 ExEventMatchSpelledInfoPacket +fe05 ExEventMatchFirecrackerPacket +fe06 ExEventMatchTeamUnlockedPacket +fe07 ExEventMatchGMTestPacket +fe08 ExPartyRoomMemberPacket +fe09 ExClosePartyRoomPacket +fe0a ExManagePartyRoomMemberPacket +fe0b ExEventMatchLockResult +fe0c ExAutoSoulShot +fe0d ExEventMatchListPacket +fe0e ExEventMatchObserverPacket +fe0f ExEventMatchMessagePacket +fe10 ExEventMatchScorePacket +fe11 ExServerPrimitivePacket +fe12 ExOpenMPCCPacket +fe13 ExCloseMPCCPacket +fe14 ExShowCastleInfo +fe15 ExShowFortressInfo +fe16 ExShowAgitInfo +fe17 ExShowFortressSiegeInfo +fe18 ExPartyPetWindowAdd +fe19 ExPartyPetWindowUpdate +fe1a ExAskJoinMPCCPacket +fe1b ExPledgeCrestLargePacket +fe1c ExEventMatchTeamInfoPacket +fe1d ExEventMatchCreatePacket +fe1e ExFishingStartPacket +fe1f ExFishingEndPacket +fe20 ExShowQuestInfoPacket +fe21 ExShowQuestMarkPacket +fe22 ExSendManorListPacket +fe23 ExShowSeedInfoPacket +fe24 ExShowCropInfoPacket +fe25 ExShowManorDefaultInfoPacket +fe26 ExShowSeedSettingPacket +fe27 ExFishingStartCombatPacket +fe28 ExFishingHpRegenPacket +fe29 ExEnchantSkillListPacket +fe2a ExEnchantSkillInfoPacket +fe2b ExShowCropSettingPacket +fe2c ExShowSellCropListPacket +fe2d ExOlympiadMatchEndPacket +fe2e ExMailArrivedPacket +fe2f ExStorageMaxCountPacket +fe30 ExEventMatchManagePacket +fe31 ExMultiPartyCommandChannelInfoPacket +fe32 ExPCCafePointInfoPacket +fe33 ExSetCompassZoneCode +fe34 ExGetBossRecord +fe35 ExAskJoinPartyRoom +fe36 ExListPartyMatchingWaitingRoom +fe37 ExSetMpccRouting +fe38 ExShowAdventurerGuideBook +fe39 ExShowScreenMessage +fe3a PledgeSkillListPacket +fe3b PledgeSkillListAddPacket +fe3c PledgePowerGradeList +fe3d PledgeReceivePowerInfo +fe3e PledgeReceiveMemberInfo +fe3f PledgeReceiveWarList +fe40 PledgeReceiveSubPledgeCreated +fe41 ExRedSkyPacket +fe42 PledgeReceiveUpdatePower +fe43 FlySelfDestinationPacket +fe44 ShowPCCafeCouponShowUI +fe45 ExSearchOrc +fe46 ExCursedWeaponList +fe47 ExCursedWeaponLocation +fe48 ExRestartClient +fe49 ExRequestHackShield +fe4a ExUseSharedGroupItem +fe4b ExMPCCShowPartyMemberInfo +fe4c ExDuelAskStart +fe4d ExDuelReady +fe4e ExDuelStart +fe4f ExDuelEnd +fe50 ExDuelUpdateUserInfo +fe51 ExShowVariationMakeWindow +fe52 ExShowVariationCancelWindow +fe53 ExPutItemResultForVariationMake +fe54 ExPutIntensiveResultForVariationMake +fe55 ExPutCommissionResultForVariationMake +fe56 ExVariationResult +fe57 ExPutItemResultForVariationCancel +fe58 ExVariationCancelResult +fe59 ExDuelEnemyRelation +fe5a ExPlayAnimation +fe5b ExMPCCPartyInfoUpdate +fe5c ExPlayScene +fe5d ExSpawnEmitterPacket +fe5e ExEnchantSkillInfoDetailPacket +fe5f ExBasicActionList +fe60 ExAirShipInfo +fe61 ExAttributeEnchantResultPacket +fe62 ExChooseInventoryAttributeItemPacket +fe63 ExGetOnAirShipPacket +fe64 ExGetOffAirShipPacket +fe65 ExMoveToLocationAirShipPacket +fe66 ExStopMoveAirShipPacket +fe67 ExShowTracePacket +fe68 ExItemAuctionInfoPacket +fe69 ExNeedToChangeName +fe6a ExPartyPetWindowDelete +fe6b ExTutorialList +fe6c ExRpItemLink +fe6d ExMoveToLocationInAirShipPacket +fe6e ExStopMoveInAirShipPacket +fe6f ExValidateLocationInAirShipPacket +fe70 ExUISettingPacket +fe71 ExMoveToTargetInAirShipPacket +fe72 ExAttackInAirShipPacket +fe73 ExMagicSkillUseInAirShipPacket +fe74 ExShowBaseAttributeCancelWindow +fe75 ExBaseAttributeCancelResult +fe76 ExSubPledgetSkillAdd +fe77 ExResponseFreeServer +fe78 ExShowProcureCropDetailPacket +fe79 ExHeroListPacket +fe7a ExOlympiadUserInfoPacket +fe7b ExOlympiadSpelledInfoPacket +fe7c ExOlympiadModePacket +fe7d ExShowFortressMapInfo +fe7e ExPVPMatchRecord +fe7f ExPVPMatchUserDie +fe80 ExPrivateStoreWholeMsg + +fe81 ExPutEnchantTargetItemResult +fe82 ExPutEnchantSupportItemResult +fe83 ExChangeNicknameNColor +fe84 ExGetBookMarkInfoPacket +fe85 ExNotifyPremiumItem +fe86 ExGetPremiumItemListPacket +fe87 ExPeriodicItemList +fe88 ExJumpToLocation +fe89 ExPVPMatchCCRecord +fe8a ExPVPMatchCCMyRecord +fe8b ExPVPMatchCCRetire +fe8c ExShowTerritory +fe8d ExNpcQuestHtmlMessage +fe8e ExSendUIEventPacket +fe8f ExNotifyBirthDay +fe90 ExShowDominionRegistry +fe91 ExReplyRegisterDominion +fe92 ExReplyDominionInfo +fe93 ExShowOwnthingPos +fe94 ExCleftList +fe95 ExCleftState +fe96 ExDominionChannelSet +fe97 ExBlockUpSetList +fe98 ExBlockUpSetState +fe99 ExStartScenePlayer +fe9a ExAirShipTeleportList +fe9b ExMpccRoomInfo +fe9c ExListMpccWaiting +fe9d ExDissmissMpccRoom +fe9e ExManageMpccRoomMember +fe9f ExMpccRoomMember +fea0 ExVitalityPointInfo +fea1 ExShowSeedMapInfo +fea2 ExMpccPartymasterList +fea3 ExDominionWarStart +fea4 ExDominionWarEnd +fea5 ExDummyPacket +fea6 ExBR_GamePointPacket +fea7 ExBR_ProductListPacket +fea8 ExBR_ProductInfoPacket +fea9 ExBR_BuyProductPacket +feaa ExBR_PremiumStatePacket +feab ExBrBroadcastEventState +feac ExBrExtraUserInfo \ No newline at end of file diff --git a/docs/pure_client.txt b/docs/pure_client.txt new file mode 100644 index 0000000..0b0961d --- /dev/null +++ b/docs/pure_client.txt @@ -0,0 +1,463 @@ +upper line is pure client (with GG killed) +lower line is client with INGAME L2Walker injected + +[+] ProtocolVersion +Client: Len 267 | 0B 01 / 0E / 0C 00 00 00 09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02 55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07 53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02 53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06 01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D 01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06 EB EF 3D E6 +Client: Len 267 | 0B 01 / 0E / 0C 00 00 00 09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02 55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07 53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02 53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06 01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D 01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06 EB EF 3D E6 + +[+] RequestAuthLogin differens sessionIDs, its normal... +Client: Len 41 | 29 00 / 2B / 6C 00 65 00 78 00 78 00 00 00 23 CB E3 2E 8B FD FD 8C 2C 50 08 11 3D 34 B6 F0 01 00 00 00 01 D2 21 F0 1C 00 00 00 +Client: Len 41 | 29 00 / 2B / 6C 00 65 00 78 00 78 00 00 00 B8 37 51 15 54 A5 05 D6 F1 48 FC ED 66 B2 16 80 01 00 00 00 01 D2 21 F0 1C 00 00 00 + +[+] CharacterSelect +Client: Len 21 | 15 00 / 12 / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Client: Len 21 | 15 00 / 12 / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +[+] RequestManorList +Client: Len 5 | 05 00 / D0 / 01 00 +Client: Len 5 | 05 00 / D0 / 01 00 + +[+] RequestKeyMapping +Client: Len 5 | 05 00 / D0 / 21 00 +Client: Len 5 | 05 00 / D0 / 21 00 + +[+] EnterWorld +Client: Len 107 | 6B 00 / 11 / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C9 BC F2 A7 66 5A 0B 98 36 A5 BD 89 ED 7F E4 D7 6B 49 E2 9F EF 76 EB CE A3 FA F4 BF 0C 64 A3 B4 A4 CE DC C6 08 3E 6E EA 45 CA D3 FE 88 13 87 B8 06 2C 96 F0 9B 1E 8E BC C6 9B 98 C8 63 16 CF D0 29 00 00 00 0A E1 74 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Client: Len 107 | 6B 00 / 11 / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C9 BC F2 A7 66 5A 0B 98 36 A5 BD 89 ED 7F E4 D7 6B 49 E2 9F EF 76 EB CE A3 FA F4 BF 0C 64 A3 B4 A4 CE DC C6 08 3E 6E EA 45 CA D3 FE 88 13 87 B8 06 2C 96 F0 9B 1E 8E BC C6 9B 98 C8 63 16 CF D0 29 00 00 00 0A E1 74 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +[+] GameGuardReply (empty reply :( ) +Client: Len 19 | 13 00 / CB / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Client: Len 19 | 13 00 / CB / 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +[+] RequestSkillCoolTime (twice...? both client and bot...) +Client: Len 3 | 03 00 / A6 / +Client: Len 3 | 03 00 / A6 / + +Client: Len 3 | 03 00 / A6 / +Client: Len 3 | 03 00 / A6 / + +!!Warn!! Client did not send these!.. +* RequestSkillList +Client: Len 3 | 03 00 / 50 / +* RequestSkillCoolTime... +Client: Len 3 | 03 00 / A6 / +* RequestGMList +Client: Len 3 | 03 00 / 8B / +but seems that l2r does not ban for RequestGMList +it bans for MoveBackwardToLocation + +[?] Action different objectIDs, but same coords...? +Client: Len 20 | 14 00 / 1F / 2D 0F 00 10 A1 B0 FE FF 1F DA 03 00 B9 F1 FF FF 00 +Client: Len 20 | 14 00 / 1F / 4B 0F 00 10 A1 B0 FE FF 1F DA 03 00 B9 F1 FF FF 00 + +[?] RequestMagicSkillUse (L2Walker "presses" control) + c d d(ctrlPressed) c(shiftPresed) +Client: Len 12 | 0C 00 / 39 / 99 04 00 00 00 00 00 00 00 +Client: Len 12 | 0C 00 / 39 / 94 04 00 00 08 00 00 00 00 +seems there is no ban for RequestMagicSkillUse + +ValidatePosition +Client: Len 23 | 17 00 / 59 / A1 B0 FE FF 1F DA 03 00 B9 F1 FF FF 00 00 00 00 00 00 00 00 +Client: Len 23 | 17 00 / 59 / A1 B0 FE FF 1F DA 03 00 B9 F1 FF FF 00 00 00 00 00 00 00 00 + +client did not send these... +RequestMagicSkillUse again?... +Client: Len 12 | 0C 00 / 39 / 94 04 00 00 08 00 00 00 00 +ValidatePosition several times... +Client: Len 23 | 17 00 / 59 / A2 B0 FE FF 21 DA 03 00 B9 F1 FF FF 70 F7 00 00 00 00 00 00 +Client: Len 23 | 17 00 / 59 / AA B0 FE FF 37 DA 03 00 B8 F1 FF FF E3 32 00 00 00 00 00 00 +Client: Len 23 | 17 00 / 59 / AA B0 FE FF 37 DA 03 00 B8 F1 FF FF E3 32 00 00 00 00 00 00 +Client: Len 23 | 17 00 / 59 / AA B0 FE FF 37 DA 03 00 B8 F1 FF FF E3 32 00 00 00 00 00 00 +Client: Len 23 | 17 00 / 59 / AA B0 FE FF 37 DA 03 00 B8 F1 FF FF E3 32 00 00 00 00 00 00 +but seems there is no ban for this packet... + +[+] RequestInventorySaveOrder +Client: Len 33 | 21 00 / D0 / 24 00 03 00 00 00 6E 08 00 10 00 00 00 00 6F 08 00 10 01 00 00 00 70 08 00 10 02 00 00 00 +Client: Len 33 | 21 00 / D0 / 24 00 03 00 00 00 6E 08 00 10 00 00 00 00 6F 08 00 10 01 00 00 00 70 08 00 10 02 00 00 00 + +[+] LogoutRequest +Client: Len 3 | 03 00 / 00 / +Client: Len 3 | 03 00 / 00 / + + +================================ +Test MoveBackwardtoLocation +Client: Len 31 | 1F 00 / 0F / 5D AF FE FF E4 D7 03 00 C7 F1 FF FF AB B0 FE FF 3D DA 03 00 B7 F1 FF FF 01 00 00 00 +Walker: Len 27 | 1B 00 / 0F / 16 AF FE FF E4 D7 03 00 DF F1 FF FF 5D AF FE FF E4 D7 03 00 DF F1 FF FF + +Walker does not send last 4 bytes... we can fix it by adding them!... + + + + + + + + +MoveBackwardToLocation +package l2r.gameserver.clientpackets; + +import java.util.logging.Logger; + +import l2r.Config; +import l2r.Config.L2WalkerAllowed; +import l2r.gameserver.geodata.network.GeoConfig; +import l2r.gameserver.loginservercon.LSConnection; +import l2r.gameserver.loginservercon.gspackets.ChangeAccessLevel; +import l2r.gameserver.model.L2Player; +import l2r.gameserver.network.L2GameClient; +import l2r.util.Location; +import l2r.util.Log; + +// cdddddd(d) +public class MoveBackwardToLocation extends L2GameClientPacket +{ + private static Logger _log = Logger.getLogger(MoveBackwardToLocation.class.getName()); + private static String _C__0F_MOVEBACKWARDTOLOC = "[C] 0F MoveBackwardToLoc"; + private Location _targetLoc = new Location(0, 0, 0); + private Location _originLoc = new Location(0, 0, 0); + private int _moveMovement; + + /** + * packet type id 0x0f + */ + @Override + public void readImpl() + { + _targetLoc.x = readD(); + _targetLoc.y = readD(); + _targetLoc.z = readD(); + _originLoc.x = readD(); + _originLoc.y = readD(); + _originLoc.z = readD(); + L2GameClient client = getClient(); + L2Player activeChar = client.getActiveChar(); + if(activeChar == null) + return; + + if(_buf.hasRemaining()) + _moveMovement = readD(); + else if(Config.allowL2Walker(activeChar)) + { + activeChar.setIsBot(2); + _moveMovement = 1; + if(Config.ALLOW_L2WALKER_CLIENT == L2WalkerAllowed.Peace) + activeChar.startBotCheck(); + } + else + { + _log.warning("Incompatible client found: L2Walker? " + client.getLoginName() + "/" + client.getIpAddr()); + + if(Config.L2WALKER_PUNISHMENT != 0) + { + Log.LogChar(activeChar, Log.L2WalkerFound, client.getLoginName()); + if(Config.L2WALKER_PUNISHMENT == 2) + { + LSConnection.getInstance().sendPacket(new ChangeAccessLevel(client.getLoginName(), -66, "Walker Autoban", -1)); + activeChar.setAccessLevel(-66); + } + activeChar.logout(false, false, true); + } + } + } + + @Override + public void runImpl() + { + L2Player activeChar = getClient().getActiveChar(); + + if(activeChar == null) + return; + + /*if(_targetLoc.x == 0 || _targetLoc.y == 0 || _targetLoc.x == Integer.MAX_VALUE || _targetLoc.y == Integer.MAX_VALUE) + { + System.out.println("MoveBackwardToLocation: zero coords"); + return; + }*/ + + if(System.currentTimeMillis() - activeChar.getLastPacket() < 100) + { + activeChar.sendActionFailed(); + return; + } + + activeChar.setLastPacket(); + + /*if(Math.abs(_originLoc.z) > 0xFFFF || Math.abs(_targetLoc.y) > 0x40000) + { + System.out.println("MTL: too big range: " + _originLoc.toString() + " -> " + _targetLoc.toString()); + System.out.println(" " + activeChar.getName() + " server position: " + activeChar.getLoc().toString()); + return; + }*/ + + if(activeChar.inObserverMode() && activeChar.getOlympiadGameId() == -1) + { + activeChar.sendActionFailed(); + return; + } + + if(activeChar.isOutOfControl() && activeChar.getOlympiadGameId() == -1) + { + activeChar.sendActionFailed(); + return; + } + + if(activeChar.isInBoat()) + activeChar.setInBoat(false); + + if(activeChar.getTeleMode() > 0) + { + if(activeChar.getTeleMode() == 1) + activeChar.setTeleMode(0); + activeChar.sendActionFailed(); + activeChar.teleToLocation(_targetLoc); + return; + } + + if(_moveMovement == 0 && GeoConfig.GEODATA_MODE == 0) + { + activeChar.sendActionFailed(); + return; + } + + activeChar.moveToLocation(_targetLoc, 0, (_moveMovement != 0)); + } + + @Override + public String getType() + { + return _C__0F_MOVEBACKWARDTOLOC; + } +} + + + + + +L2Player.java +/** + * Óñòàíàâëèâàåò àêòèâíûé ñàáêëàññ + * + *

  • Retrieve from the database all skills of this L2Player and add them to _skills
  • + *
  • Retrieve from the database all macroses of this L2Player and add them to _macroses
  • + *
  • Retrieve from the database all shortCuts of this L2Player and add them to _shortCuts


  • + */ + public void setActiveSubClass(final Short subId, final boolean store) + { + storeEffects(); + storeDisableSkills(); + + if(QuestManager.getQuest(422) != null) + { + String qn = QuestManager.getQuest(422).getName(); + if(qn != null) + { + QuestState qs = getQuestState(qn); + if(qs != null) + qs.exitCurrentQuest(true); + } + } + + if(store && _classlist.containsKey(_activeClass)) + { + final L2SubClass oldsub = _classlist.get(_activeClass); + oldsub.setCp(getCurrentCp()); + oldsub.setExp(getExp()); + oldsub.setHp(getCurrentHp()); + oldsub.setLevel(getLevel()); + oldsub.setMp(getCurrentMp()); + oldsub.setSp(getSp()); + oldsub.setActive(false); + _classlist.put(_activeClass, oldsub); + } + + final L2SubClass sub = _classlist.get(subId); + sub.setActive(true); + _activeClass = sub.getClassId(); + _classlist.put(_activeClass, sub); + _level = sub.getLevel(); + _exp = sub.getExp(); + _sp = sub.getSp(); + + setClassId(subId, false); + + removeAllSkills(); + + stopAllEffects(); + + if(getPet() != null && getPet().isSummon) + getPet().unSummon(); + if(!_cubics.isEmpty()) + { + for(final L2CubicInstance cubic : _cubics.values()) + { + cubic.stopAction(); + cubic.cancelDisappear(); + } + _cubics.clear(); + } + setAgathion(0); + + checkRecom(); + restoreSkills(); + rewardSkills(); + sendPacket(new SkillList(this)); + + getInventory().refreshListeners(); + + for(int i = 0; i < 3; i++) + _henna[i] = null; + + restoreHenna(); + sendPacket(new HennaInfo(this)); + + restoreEffects(); + if(isInWorld()) + restoreDisableSkills(); + + _currentHp = sub.getHp(); + setCurrentHpMp(sub.getHp(), sub.getMp()); + setCurrentCp(sub.getCp()); + broadcastUserInfo(); + updateStats(); + + _shortCuts.restore(); + sendPacket(new ShortCutInit(this)); + if(!isBot() || Config.KILL_BOTS_WITH_SKILLCOOLTIME) + sendPacket(new SkillCoolTime(this)); + + broadcastPacket(new SocialAction(getObjectId(), 15)); + + getDeathPenalty().restore(); + + setIncreasedForce(0); + } + + public void setIsBot(final int isBot) + { + _isBot = isBot; + } + + public int isBotLevel() + { + return _isBot; + } + + public boolean isBot() + { + return _isBot > 0; + } + + public void startBotCheck() + { + if(_botCheck == null && _isBot > 0) + _botCheck = ThreadPoolManager.getInstance().scheduleGeneral(new BotCheck(this, _isBot), Rnd.get(30, 90) * 1000); + } + + public void stopBotCheck() + { + if(_botCheck != null) + { + _botCheck.cancel(true); + _botCheck = null; + } + } + + class BotCheck implements Runnable + { + L2Player _player; + int _isBot; + + BotCheck(final L2Player player, final int isBot) + { + _player = player; + _isBot = isBot; + } + + public void run() + { + if(!_player.isBot()) + { + _player.stopBotCheck(); + return; + } + if(Config.ALLOW_L2WALKER_CLIENT == Config.L2WalkerAllowed.True || _player.getPlayerAccess().AllowWalker || Config.ALLOW_L2WALKER_CLIENT == L2WalkerAllowed.Peace && isInZone(ZoneType.peace_zone)) + { + setNameColor(Config.BOT_NAME_COLOUR); + return; + } + _log.warning("Bot detected. Char: " + _player.getName() + ", Account: " + _player.getAccountName() + ", Ip: " + _player.getIP()); + if(Config.L2WALKER_PUNISHMENT == 1) + _player.logout(false, false, true); + else if(Config.L2WALKER_PUNISHMENT == 2) + { + _player.setAccountAccesslevel(-66, "botcheck", -1); + _player.logout(false, false, true); + } + } + } + + + +L2GamePacketHandler +EnterWorld: +case 0x11: + activeChar = client.getActiveChar(); + if(activeChar != null && activeChar.isBotLevel() > 0) + activeChar.setIsBot(1); + msg = new EnterWorld(); + break; +RequestSkillCoolTime: +case 0xa6: + activeChar = client.getActiveChar(); + if(activeChar != null) + activeChar.startBotCheck(); + msg = !Config.KILL_BOTS_WITH_SKILLCOOLTIME && activeChar != null && activeChar.isBot() ? null : new RequestSkillCoolTime(); + break; + +D0:01 RequestManorList +case 0xd0: // 824 protocol + if(!data.hasRemaining()) + { + handleIncompletePacket(client); + break; + } + id3 = data.getShort() & 0xffff; + switch(id3) + { + case 0x00: + // msg = new ?(); + break; + case 0x01: + activeChar = client.getActiveChar(); + if(activeChar != null) + if(activeChar.isBotLevel() == 2) + activeChar.setIsBot(0); + else if(activeChar.isBotLevel() == 1) + activeChar.setIsBot(2); + msg = new RequestManorList(); + break; + +L2Player:restore() setIsBot(2) + +so, client send CharSelect. _isBot = 2 +client send RequestManorList. + if(activeChar.isBotLevel() == 2) activeChar.setIsBot(0); <- executes + _isBot = 0 +... +client send EnterWorld. + if(activeChar != null && activeChar.isBotLevel() > 0) activeChar.setIsBot(1); <- NOT executes + _isBot = 0; +client send RequestSkillCoolTime first time + activeChar.startBotCheck(); // start bot check + bot check not starts, because _isBot == 0 + msg = !Config.KILL_BOTS_WITH_SKILLCOOLTIME && activeChar.isBot() ? null : new RequestSkillCoolTime(); + msg = RequestSkillCoolTime(); + SkillCoolTIme is sent on l2r (l2j does not send) + +client send RequestSkillCoolTime 2nd time + the same, _isBot == 0, check not starts, SkillCoolTime is sent on l2r (l2j does not send) + +client send RequestSkillCoolTime 3rd time, al the same + the same, _isBot == 0, check not starts, SkillCoolTime is sent on l2r (l2j does not send) + diff --git a/docs/radar_developmemt.htm b/docs/radar_developmemt.htm new file mode 100644 index 0000000..1c459cd --- /dev/null +++ b/docs/radar_developmemt.htm @@ -0,0 +1,2045 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Радар своими руками - PostPacific + + + + +
    + + + + + +
    PostPacific +   +
    + + + + + +
    +
    +
    + + + + + +
    + + + + + + + + + +
    + + + + + + + + + + +
    Go Back PostPacific + > Lineage II Русский + + + > Stickies + +
    + +
    +
    + Welcome, minlexx.
    + You last visited: Today at 05:45 PM + + +
    Private Messages: Unread 0, Total 0.
    + + + +
    +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    User CPFAQCommunity CalendarNew PostsSearch Quick Links chat @ dairc!Log Out
    +
    + + +
    + + +
    + + + + + + + + + + + +
    Notices
    + +
    +
    +
    + + + + + + + +
    Stickies В раздел для готовых скриптов, программ, ваших разработок и всего остального, чем вы хотите поделиться.
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Reply
    + + + + + + + + + + + + + + + + + + + + +
    +
    + +   +
    +
    + Thread Tools + + + Search this Thread + + + Rate Thread + + + Display Modes + +
    + + + + + + +
    +
    +
    + + + + + + + + + + +
    + + + +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + +
    + + Old + 06-10-2009, 09:56 PM + + + +   + #2 + +
    + +
    + + Argot + + +
    + +
    Junior Member
    + + + + + +
    +  
    +
    Join Date: May 2009
    + + +
    + Posts: 1 +
    + + + Rep Power: 0
    Argot is on a distinguished road
    + +
    +
    + +
    + + + + +
    + Default + +
    +
    + + + + +
    + +
    +
    Quote:
    + + + + +
    + +
    + Originally Posted by mr_green + View Post +
    +
    Радар своими руками /16.12.2008/
    +color - цвет, dword 0x??rrggbb (назначение старшего байта неизвестно),
    + +
    +
    старший байт это прозрачность +
    + + + + + + + + + + + + + +
    + Argot is offline + + + + Add to Argot's Reputation + + + + Report Post + +   + + + + + + + + Reply With Quote + + + Multi-Quote This Message + + + Quick reply to this message + + + + + + + + + +
    + + + + + + + +
    + +
    +
    +
    + + + + + + + +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + +
    + + Old + 05-28-2009, 10:10 PM + + + +   + #1 + +
    + +
    + + Mr_Green + + +
    + +
    Junior Member
    + + + + + +
    +  
    +
    Join Date: May 2009
    + + +
    + Posts: 8 +
    + + + Rep Power: 0
    Mr_Green is on a distinguished road
    + +
    +
    + +
    + + + + +
    + Default + Радар своими руками +
    +
    + + + + +
    + + Радар своими руками /16.12.2008/
    +
    +Введение
    +
    В этой статье описывается создание "радара" - кода отображающего +других игроков внутри клиента ла2. В ней рассмотрены следующие вопросы: +рисование в окне клиента, получение информации об нпс и игроках +хранящейся клиенте, перехват входящего пакета, перехват исходящего +пакета, отправка пакета клиенту.
    +В свое время, когда я начинал разбираться с клиентом, я искал подобную +статью, так и не нашел. Ну а раз ее нет - значит ее надо написать чтобы +она была. Для понимания этой статьи необходимы базовые знания по работе +клиента ла2, реверсированию и программированию. Все примеры относятся к +клиенту C6, но я думаю клиенты ла2 принципиально не отличаются друг от +друга.
    +
    +
    +1. Общая информация о клиенте ла2
    +
    +Для начала небольшая вводная об устройстве клиента ла2. Он состоит из 1 +.exe модуля и нескольких длл выполняющих строго определенные функции - +GUI (nwindow.dll), движок (engine.dll), общие вспомогательные функции +(core.dll). Клиент сделан на основе движка unreal engine, написан на +VC++ с применением ООП. Длл экспортируют практически все методы +основных классов, имена декорированы (mangling), также экспортируются +таблицы методов (vftable).
    +
    +
    +2. Рисование
    +
    +Основная функция радара - рисовать цели в окне клиента. Для этого нужны +функции рисования, и перехват нужного участка кода клиента для вызова +кода рисования радара.
    +Клиент для рисования как правило использует класс FCanvasUtil. Для его +использования надо создать экземпляр объекта, после рисования - +уничтожить его. Примерный размер объекта не более 256 байт (точное +значение неизвестно). В классе FCanvasUtil есть одна нормальная функция +рисования
    +void __thiscall FCanvasUtil:rawLine(float x1, float y1, float x2,float y2,class FColor color,int unk) ,
    +где x1..y2 - четыре экранные координаты в пикселах,
    +color - цвет, dword 0x??RRGGBB (назначение старшего байта неизвестно),
    +unk - неизвестный параметр, обычно равнен нулю.
    +Точки можно рисовать короткими штрихами, окружности аппроксимировать отрезками (или пунктиром).
    +Рисовать надо вместе с клиентом, в одном из методов xxx::Render(), так +чтобы картинка радара рисовалась последней (верхней), порядок вызова +методов клиентом неизвестен, но рисование после +FPlayerSceneNode::Render() позволяет нарисовать радар правильно.
    +
    +
    +3. Получение информации о целях
    +
    +Все объекты на карте поделены в клиенте на категории ("живые",лут,...) +и хранятся в нектором списке. Для получения "живых" объектов +(игроки,НПС) используется метод
    +struct User * __thiscall UNetworkHandler::GetNextCreature(float Radius,int PrevID) ,
    +где Radius - радиус поиска, PrevID - ИД предыдущей цели.
    +Метод возвращает указатель на структуру содержащую информацию о цели +(см. приложение). Метод может возвращать ноль, видимо при отсутствии +целей вообще. Метод можно вызывать бесконечное число раз, видимо список +объектов цикличен, для того чтобы определить конец списка надо +проверять повторы ИД возвращаемых целей. Перебор целей можно начинать +как с PrevID=0 так и PrevID=-1 .
    +
    +
    +4. Получение информации о своем персонаже - перехват S->C пакета
    +
    +Для получения структуры User по ID объекта надо вызвать метод
    +struct User * __thiscall UNetworkHandler::GetUser(int ID) .
    +ИД своего персонажа можно получить перехватив S->C пакет +UserInfoPacket (#4). Теоретически этот ID можно получить в клиенте по +статическому адресу, но перехват пакета очевиднее.
    +S->C пакеты обрабатываются в клиенте следующим образом:
    +В отдельном потоке, в цикле, клиент принимает пакеты вызывая +ws2_32.recv(), расшифровывает их, добавляет в очередь пакетов методом
    +UNetworkHandler::AddNetworkQueue(NetworkPacket *) .
    +Структура NetworkPacket содержит отдельно ID пакета, размер данных пакета (без ID), данные пакета (без ID).
    +В методе UNetworkHandler::Tick(float) клиент достает пакеты из очереди методом
    +UNetworkHandler:ispatchNetworkQueue(NetworkPacke t * *) .
    +Затем по ID пакета вызывается обработчик пакета, по указателю таблицы +обработчиков пакетов. Размер элемента таблицы равен 0x104 байтам - +указатель на обработчик и UNICODE-имя пакета. Прототип обработчика +пакета:
    +typedef void (__cdecl TPacketHandler)(UNetworkHandler *,char *data);
    +где data - указатель на данные пакета, без его ID.
    +Обработчик пакета дизассемблирует пакет согласно его формату, вызывает +соответствующий метод UGameEngine::OnXXX() и записывает информацию о +пакете во внутренний лог клиента.
    +Метод UGameEngine::OnXXX вызывает события в GUI или в движке клиента.
    +Очевидно, что перехватывать одиночный пакет удобно подменяя указатель +на обработчик пакета или указатель на метод UGameEngine в его таблице +методов.
    +
    +
    +5. Управление настройками радара - перехват C->S пакета и отправка пакета клиенту
    +
    +Внутри клиента можно организовать достаточно удобный интерфейс используя HTML встроенный в клиент.
    +Для показа диалогового окна пользователю, надо отправить клиенту пакет с HTML-кодом, методом
    +int __thiscall UGameEngine::OnNpcHtmlMessage(struct User *npc,unsigned short *html,int unk) ,
    +где npc - указатель на структуру User НПС отправившего сообщение, может быть равен нулю,
    +html - указатель на UNICIDE-строку с HTML-кодом,
    +unk - неизвестный параметр, обычно равен нулю.
    +Если ввод данных производится кнопками, то для перехвата ввода +необходимо перехватить пакет RequestBypassToServer. Клиент отправляет +пакеты следующим образом:
    +GUI или движок клиента вызывают соответствующий метод UNetworkHandler, например
    +int __thiscall UNetworkHandler::RequestBypassToServer(class L2ParamStack &) .
    +Этот метод передает формат пакета и его данные в неэкспортируемую функцию отправки пакета
    +void __cdecl SendPacket(UNetworkHandler*,char*,...) .
    +Функция отправки пакета ассемблирует пакет в буфер согласно его формату, шифрует и отправляет на сервер через ws2_32.send() .
    +Для перехвата одиночного отправляемого пакета удобно перехватить указатель на метод в таблице методов UNetworkHandler.
    +
    +
    +Заключение
    +
    +Я не выкладываю сам исходник радара, в его коде нет ничего сложного, и +имея информацию изложенную в этой статье его можно достаточно быстро +собрать.
    +Эта статья больше посвящена частям клиента относящимся к пакетной части +клиента. Графическая часть рассмотрена вскользь без какого-либо +разбора, движок клиента только упоминается, совсем не рассмотрены GUI и +остальные части клиента. Буду рад если кто-нибудь дополнит эту статью +или выложит что-то новое. Возможно есть смысл перевести ее на +английский.
    +
    +
    +Приложение. Структуры клиента (С6)
    +
    +
    Code:
    +
    struct User
    +{
    +int _zunk1_12[2];
    +int user_type; //ZERO for player
    +int _zunk1_34[2];
    +int unk_npc_spec;
    +int id;
    +unsigned short name[0x30/2];
    +int race;
    +int _zunk2;
    +int _xunk3;
    +int lvl;
    +int _xunk4;
    +int _zunk5;
    +int states[6];
    +int hp_max;
    +int hp;
    +int mp_max;
    +int mp;
    +int _xunk68[3];
    +int wear[14];
    +char _zunk9[0xC0];
    +int Color;
    +char _unk10[0x70];
    +APawn *Pawn;
    +int _zunk11[3];
    +int _xunk12;
    +int sp;
    +int accuracy_;
    +int critical;
    +int _xunk13;
    +int _xunk14;
    +int patk;
    +int evasion_;
    +int matk;
    +int mdef;
    +int castspd;
    +char _unk15[0x6C];
    +int atkspd;
    +char _unk16[0x14];
    +int cp_max;
    +int cp;
    +//current size=0x2CC, real size = 0x380
    +};
    +
    +class APawn
    +{
    +char _unk[0x1BC]; //...
    +public:
    +FVector Location;
    +//...
    +};
    +
    +class FVector
    +{
    +public:
    +    float X,Y,Z;
    +};
    +
    ----------------------------------------------------
    +[C] GoldFinch
    +
    +Спасибо
    +Arrowdoger за помощь в написании и тестировании радара
    +Разработчикам BSFG (Abyss) за их радар и его кривую защиту. Кстати код у binkw32.dll тоже хреновый +
    + + + + + + + + + + + + + +
    + Mr_Green is offline + + + + Add to Mr_Green's Reputation + + + + Report Post + +   + + + + + + + + Reply With Quote + + + Multi-Quote This Message + + + Quick reply to this message + + + + + + + + + +
    + + + + + + + +
    + +
    +
    +
    + + + +
    + + + + +
    +
    +
    + + + + + + + + + + + +
    Reply
    + + + + + + + + +
    + + + + + + + +
    +
    + Edit Tags +
    + + Tags +
    None
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    + + Quick Reply +
    +
    +
    +
    Message:
    +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Remove Text Formatting
    Bold
    Italic
    Underline
    + + + + + +

    +
    Insert Image
    Wrap [QUOTE] tags around selected text
      +
    Decrease Size
    +
    Increase Size
    +
    Switch Editor Mode
    +
    + +
    +
    + + + +
    + +
    + + + + + +
    + +
    + Options +
    + + +
    +
    +
    +
    + +
    + + + + + + + + + + + +
    + + +
    +
    + + + +
    + + + + + + + + +
    +
    + « + Previous Thread + | + Next Thread + » +
    + + + + + +
    + + + + + + + +
    + Currently Active Users Viewing This Thread: 1 (1 members and 0 guests) +
    + minlexx +
    + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + +
    + + Posting Rules +
    + +
    You may not post new threads
    +
    You may post replies
    +
    You may post attachments
    +
    You may edit your posts
    +
    + +
    BB code is On
    +
    Smilies are On
    +
    [IMG] code is On
    +
    HTML code is Off
    +
    + +
    +
    + + + + + +
    +
    +
    + + + Forum Jump
    + +
    +
    +
    +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + Similar Threads +
    ThreadThread StarterForumRepliesLast Post
    + + Справочник по функциям АИ + Mr_GreenStickies16Today 11:30 AM
    + + Разыскивается клиент c1... + MagisterКлиент1106-01-2009 01:20 AM
    + + Прошу совета у гуру аи) + KaristonПомощь205-29-2009 12:00 AM
    + +
    + + + +
    +
    All times are GMT +6. The time now is 05:47 PM.
    +
    + + +
    +
    +
    + + + + +
    + + + + + + + + + +
    + + +
    + + Contact Us - + PostPacific - + + + Archive - + + + + Top + +
    +
    + +
    + +
    +
    + + Powered by vBulletin® Version 3.8.2
    Copyright ©2000 - 2009, Jelsoft Enterprises Ltd. + +
    + +
    + + + + + +
    +
    + +
    + + + + + + + +
    + + + + + +
    + + \ No newline at end of file diff --git a/docs/radar_developmemt_files/11x11progress.gif b/docs/radar_developmemt_files/11x11progress.gif new file mode 100644 index 0000000000000000000000000000000000000000..1f474198cafe06dceb3dd1d18c8bd68625531fc6 GIT binary patch literal 537 zcmZ?wbhEHbE5k~J2#C3hepX~EStSx8aY=O$i7LO#bTtuN>C%`Gm*`w3ZOO$Y8XncNu0$T zq`*#4qvkV}&0a8#ye|w`a}s8;7Ade1)adz4X0ulz)JD+^Lq?s1S?oy)j081WKGWIk zRRq;2`@)cOO~NcTAq5748Y7?CY(53EQF4W$pibf}MkWO&f*LEInQT4=NC`ML6QOrm->VNL*_g|SR1?S#c#E{1s@jq?L zi9PoJJvHl11VUs)GZe%A7ux>!5t0;+`d?69T+QIfaO=WtyLRv1?bEYY=HI+^D|2zq z{r4{z3OKqudsSKt7Vcdh_CH_vfRON3!E4X%o89!Ss*)`uk;q(~Db!wx9^WMO1r*vX&+@);;kIB@)ADCQK2 z(CX$AGi=}y;m|tXC%x)e%f&@6I9Rkd1*JMoJbihBmJpAm!K5P-n{3L>x^1V^;tLAVa~BWhkbue!U1DOUTyUdzP(l#Ry2wjE7*xx8n+5Fuun(|nkD?X zQHVj*?`an6GnR?#;u#GD4nIAAK#Ij}0h7UNRtA+qkDndd0SDHydRxSFNDDAn0|0w; BY61WN literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/bold.gif b/docs/radar_developmemt_files/bold.gif new file mode 100644 index 0000000000000000000000000000000000000000..c8c4bd31defe0300dd5680dde451d8dd2f7b6102 GIT binary patch literal 77 zcmZ?wbhEHb6lD-$XkcUjg8TRHEB<5wG8q|kKzxu41CvTm|H{*E`4{^vxTUrB;)Ku7 c6Yr|_9SE~}n7L?;*Rsn#*T3~Dvocr%08HE)HUIzs literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/clear.gif b/docs/radar_developmemt_files/clear.gif new file mode 100644 index 0000000000000000000000000000000000000000..13acffe535d0accaae36bbbfce41477361081654 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcJCaNqy~1B2pE7Dgb&paUX6G7L;iE{qJ;0JA{`JOBUy literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/collapse_tcat.gif b/docs/radar_developmemt_files/collapse_tcat.gif new file mode 100644 index 0000000000000000000000000000000000000000..a218216d5cf61a54a8100634d4d2c9ee52a2692d GIT binary patch literal 642 zcmV-|0)72QNk%w1VGjTg0OkMydy=|hfwgswxK3`RbBwo1XP#z-xj$QtV}GzvZ>NQt zzcx;HWP!0?eXmt?t5b2QGf8pB(c<#-_%lj!&)4Oft;$busAht(W`eSOle^8<<(;m} zf|$L7n7)LWzG#E8X@s(Un#r20%1LUZc#ygL{r&Ot_r}oSftS5KSchqYvwf7iX@jy+ zaH!1Ho~y~y;@#uzNok>QkH9fWcYl_=u)*CUJa>49s&ay&?C|#Q^Z7zvks&u~Cp>L@ zm&H+XsxL`;D@K5Slep*W^6BmLUVgNdsLJv5`MAmBHBW(xrqF1EvtN9yMq-geVwh@# zvS5F)J5+*lk-{`cdWE6ODL-y6Nr5<1glL4bX@s+Gh_yOXiU0rqA^8LV00000EC2ui z01p5U000NyfKC<(77Z}~3IH(;34~5HEe-+|8YX`x6dM8#Eiw;3C=qIFPa$_oToEWb z4>%boQ*9wte{XXEOD6(J7b0CkK>>fma05nXA{ZntSaoQ_6T=5_HZCL_5@80=6FI|r zMG_n^B?dkPbPIo8DGOFWB?=u9NMclR!+$9UJ2T<{8q$my0c{u?GB-2;=u^Q=fng9J z^cV()Nd+PZu0)XH2M>)gdA>l2(gXkk27Ee1V6w$dmLXbr94YgG0R{{pGHjsm;?Ijr c8RT5Jz(R!zHw0FAfZ<^UfjuBTum}VIJEXK8M*si- literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/collapse_thead.gif b/docs/radar_developmemt_files/collapse_thead.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9a1c7be63709b2ee51856bbbbaf73832cb3f317 GIT binary patch literal 580 zcmZ?wbhEHb?)?7q*F2!vBCuxXu{%)}Ydzw7BXg%O z-*n>B=kM{=Yi2AzkWsZ@_106j@4xu__utyxm#l(XLNX_>-+R5Ze|K=kWT&`^K^c=H zawfzU&g__XB(-Mwr1`sNuQ)hm;m((@-XxXI^-k=oo3`IQw#P24Jvx8J+_k4JUVr2q z-Q|(cn^wQ(=H2IUMYDo4ri5fpdHm#QZvB$JIXhY=Z(6hGnoH6&yRbH|gns9!uDL4@ zSp+tl2R3^q^i@sT>y)5F<@1Vrce%&)1f)*7_vrQJgEu`Bdi_%;g=9>*dh4mN zSCLm@pKrLo~WXjQioEiELIu(Q(0|0p|q81$B&F;>;ZlVpQ}! s?Btz|oK}4~F^TC!i*_PY3&TdIW;WG0hMLL?4i3%i@eCC!1vwb30sLam`~Uy| literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/color.gif b/docs/radar_developmemt_files/color.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc58d8084a9e5d09a5c79f3e8d637a65c702544c GIT binary patch literal 89 zcmZ?wbhEHb6lD-#n8?7;(9i%RW*RfxzkgrxCkrD312cmT0}z1Z8JM)@^shWU_n{Pr q!n%gsSv#^Or`~4?l5gu0tSp&kRiNEcaIbZn=HIXX=4&u8SOWlngdPe2 literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/connection-min.js b/docs/radar_developmemt_files/connection-min.js new file mode 100644 index 0000000..a5ed764 --- /dev/null +++ b/docs/radar_developmemt_files/connection-min.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2009, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.7.0 +*/ +YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function(){if(YAHOO.util.Event){YAHOO.util.Event.addListener(document,"click",function(C){var B=YAHOO.util.Event.getTarget(C),A=B.nodeName.toLowerCase();if((A==="input"||A==="button")&&(B.type&&B.type.toLowerCase()=="submit")){YAHOO.util.Connect._submitElementValue=encodeURIComponent(B.name)+"="+encodeURIComponent(B.value);}});return true;}return false;})(),startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),uploadEvent:new YAHOO.util.CustomEvent("upload"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A){this._msxml_progid.unshift(A);},setDefaultPostHeader:function(A){if(typeof A=="string"){this._default_post_header=A;}else{if(typeof A=="boolean"){this._use_default_post_header=A;}}},setDefaultXhrHeader:function(A){if(typeof A=="string"){this._default_xhr_header=A;}else{this._use_default_xhr_header=A;}},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A;}},createXhrObject:function(F){var E,A;try{A=new XMLHttpRequest();E={conn:A,tId:F};}catch(D){for(var B=0;B=200&&D<300||D===1223){C=this.createResponseObject(F,B);if(G&&G.success){if(!G.scope){G.success(C);}else{G.success.apply(G.scope,[C]);}}this.successEvent.fire(C);if(F.successEvent){F.successEvent.fire(C);}}else{switch(D){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:C=this.createExceptionObject(F.tId,B,(A?A:false));if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}break;default:C=this.createResponseObject(F,B);if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}}this.failureEvent.fire(C);if(F.failureEvent){F.failureEvent.fire(C);}}this.releaseObject(F);C=null;},createResponseObject:function(A,G){var D={};var I={};try{var C=A.conn.getAllResponseHeaders();var F=C.split("\n");for(var E=0;E-1){A=B.options[B.selectedIndex];F[O++]=K+encodeURIComponent((A.attributes.value&&A.attributes.value.specified)?A.value:A.text);}break;case"select-multiple":if(B.selectedIndex>-1){for(D=B.selectedIndex,N=B.options.length;D');if(typeof A=="boolean"){C.src="javascript:false";}}else{C=document.createElement("iframe");C.id=B;C.name=B;}C.style.position="absolute";C.style.top="-1000px";C.style.left="-1000px";document.body.appendChild(C);},appendPostData:function(A){var D=[],B=A.split("&"),C,E;for(C=0;C0){for(H=0;H_^y$-=R6DZ>gU#$7&-rfH}%q~$)Hldw@}_0(CH{BCm= jbJ_%E2!E($ujDE%ORGrAYbxxJ%4|u~m^4{Jkii-NYWG6} literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/helpfulanswers.js b/docs/radar_developmemt_files/helpfulanswers.js new file mode 100644 index 0000000..7b86b79 --- /dev/null +++ b/docs/radar_developmemt_files/helpfulanswers.js @@ -0,0 +1,44 @@ +/*=================================================================*\ +// Hepful Answers AJAX Code -- Version 1.7.0 +// Base AJAX Copyright vBulletin 2008 +// Thanks developers for the AJAX samples over the years! +\*=================================================================*/ +var helpfulanswers_handleSuccess = function(o) +{ + if(o.responseText !== undefined) + { + if (helpfulanswers_callback.object_name[o.tId] !== undefined) + { + fetch_object(helpfulanswers_callback.object_name[o.tId]).innerHTML = o.responseText; + } + } +} +var helpfulanswers_handleFailure = function(o) +{ + if(o.responseText !== undefined) + { + alert(o.responseText); + } +} +var helpfulanswers_callback = +{ + success: helpfulanswers_handleSuccess, + failure: helpfulanswers_handleFailure, + timeout: vB_Default_Timeout, + cache: false, + object_name: new Array() +} +function helpfulanswers_rate(postid, rank) +{ + var sUrl = 'helpfulanswers.php'; + var postData = 'do=helpfulanswer&using_ajax=1&p=' + postid + '&rank=' + rank + '&securitytoken=' + SECURITYTOKEN; + + var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, helpfulanswers_callback, postData); + + helpfulanswers_callback.object_name[request.tId] = 'helpfulanswers_box_' + postid; + + return false; +} +/*=================================================================*\ +// That's all folks! +\*=================================================================*/ \ No newline at end of file diff --git a/docs/radar_developmemt_files/icon1.gif b/docs/radar_developmemt_files/icon1.gif new file mode 100644 index 0000000000000000000000000000000000000000..8bde179ee3598a62aa62439586ad5ec84e604593 GIT binary patch literal 1032 zcmeH`?MoAJ0LOpM=_-1$mCR{c%d%BkX=tpHbgP_&MK3}kh@LdE2#pFd3UpYyl47GM zgebDjGA)IO1kuUbcI|fC-EF(w&ON!OT{h)JQFa% z;xmv;CZo|sSZ`4(wOTD|M6Cvs4K>^Ewus+$cN=h<4mJ@sXEYiO1}CpJG~N@pP)=VW z5x0&_7%&&CH+6L@5X_Ddo>3K~Qo)a&NOzZ(N*+C}Idx`a1d1*#d3_TYW+BGB?s5Or z)XcbVlDBPJ2AiFipC1VR)MGX)=~O6sfBc+UTKrX2ee9do>~I8N1W`j!C^Um079DJ^ zyL8Q9q;#;2zpu=Qy9YiiahwV)cP7KPn(oZcMNFjA>-QoEUS594N>L=`gY{@2FrB?F zx2NxGLE)~CeP4!#A%Rd72nJEJV;N}7yD+;NWPvK!~Dvm%KkKC)e$r zi^Y--hsSC6CgKSVWRc5zP@I5tNC|&0ZX!(NvcSX}`KQ4lXklT&Y@u{ITn`h3ZDIpA zk8%aw-XFCp+_;=&)C%_6nD9GAZD?Zw~kx^MCd!wwDw>2;UsYUp|*g>w5TpJr{(9n)H{V=H18pWN8(-9W}I=(!@~GALmlwUD4s@W?o(E2^#Z3 z*Q>SQo1J4;x3O7S8TpW<; eJ1n9#Wn>CZb8?elj}pC+-nMB=h9aE~_WuFxN~8Gz literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/insertimage.gif b/docs/radar_developmemt_files/insertimage.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e6ad9338f97638e7aa55f2e79c3959d0a9f147d GIT binary patch literal 149 zcmZ?wbhEHb6lD-$Sj5I~;J|@~28M=)hX4N={sS=s!~OgBfu!P37DfgJHU=Fan*pSj zfjKH;*PVX`ry^JFy)o5s$NL8X8HpMpOonFBCq*4Mto30f#JE&t-2 fh1W8*4lu>6D~vn9sc1HBc}nC{?&F_iL>a6BDJ2(> literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/menu_open.gif b/docs/radar_developmemt_files/menu_open.gif new file mode 100644 index 0000000000000000000000000000000000000000..f20639b9b0584e5df9fc46b08831c3dff9b15328 GIT binary patch literal 279 zcmZ?wbhEHbEBZQ{BEyHDP2pL4W#$%W59|8F{ZAt9&W z@BjZF|NnpS{^!jnpR2l8t>1I8pn37bS6@5l9^P~6e#4BFr$7HMnXv!H-~Y2V-VRJE ztDUrC*S&Wo(-z+T|G%tr&87p_^6O?a%{-D)-`2Bi-{EujV+zaHUwOQ2+sWeo{R|WX z#h)yU3=EnKIv|rkeqvxVIpEwG#NZgf5~Mnb(PBQ&dC%fP8%A!P<0>AVD(4$gw|LIv YF F8UR}I4dDO) literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/mode_hybrid.gif b/docs/radar_developmemt_files/mode_hybrid.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa818ac2f593e724f0b3f48ba24e9a4164f149a4 GIT binary patch literal 588 zcmZ?wbhEHb6krfwc*el+|NsAwU%r0+`fd4&l~GYqfB*iSI(_=TfB(|b(xRerw{HEv zW5@r5gyJdFrlq8$?ArCev9WX8w!evq#b3UCZ)xd^j?Qmt>U#0wWm{W+R8-#1o&UFO z`xhCR-P+o}b;pi%>((VEmNYl_w72(v{QR}3sPggSCs9#_6DLmGzyE)2ZPU`_%b!1g zF=fh>rl#%-H*dGMPuzR*Y(hfGs#V+D+q?Je``^^mF=^7&&aUo;hK?OOj>g9qTH4y} z-u=I%q~zei|9kgdTe)&)Uf$L1+yAawwdK#BKU=nJS+QzWYisY8E&o4!`katZl$=}^ z6H{1HQX3Hwap1u1mX_|7D_4bwhc`8K{`mQ;va){0%vmc|uFB25vT@`8`1rEjyZ?1` zbgWyqe&>-BGiS|apfOPV$pW@P2SkG6#DRTfgMp_oQ)^p0Q-~h3xS17?7Y~n+kbU)hoX;gCMMZto91b5@$n5H`!Ow3aCB^;6 z&cpG;qf()(hdCRYIRw2P3OzWbA;u@*;qu^tOM|TWK9d_63l_UGhlNydvM^W!0KyFI AGXMYp literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/mode_linear.gif b/docs/radar_developmemt_files/mode_linear.gif new file mode 100644 index 0000000000000000000000000000000000000000..420edc10e539b611c5f0f3305f1cfd312395e58c GIT binary patch literal 609 zcmZ?wbhEHb6krfwc*el+|NsAwU%r0+`fd4&m4E;KojQH`zkmM@9{k_b)YaJ785NZ~ zW!khIJN_pm6mQ-7KQb~aGBPJIvACtB`}y-1yLSEGx$}QpTmOp}FPoaWzkK_C=+OU` zmcHod{K&}crlyXlsJw04{vAL5f7`ad?d{!BQ8{~0o{f($TfKU9LPAMrSNDn)o7>wb zR#w(OfBt;s%2hj$oH%gc_WJeffBgKlckln*yZ^<+~igrcgdh64xwmz31*+xLIny7iMLO+9}6(Z-GY zR;}7{`0)RzsKW5@jP2Y1Mn>ju-1vXXmj8KqH)3K6^YX6l-Fxlv<0rd!|8HpMXl?D^ zzyJT%9XnR7+TPUE`SJ7D#Ke-;*53B^eoI@s zc{a$4v zK?|9ho7tB|+&r#-rGZo3=FNl&&N58JE(I$%7A!tGQ=Q+*Nn&M#ORt7E(*)0l$&II( P43fnjG(K}xV6X-Np~x0b literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/mode_threaded.gif b/docs/radar_developmemt_files/mode_threaded.gif new file mode 100644 index 0000000000000000000000000000000000000000..b28923a2b7e19e7776f8374f98c6fddff9eb8389 GIT binary patch literal 562 zcmZ?wbhEHb6krfwc*el+|NsAwU%r0+`fd4&m41GHQBhHU|NfmiefqzD{~R41)6&wW zOq;fK>;I^z+^DF$rlzjQ$n5Co{FIcG#>UQV+x~s|_I=y7zbjX+`t#?{)*U<6ty>op zQ~2T2=aQ0=rOTIBRaG@Lb?@DKZOW7>9UUDrX3lD9>9(`8yKwV%LqkVYRAG5}xvj13 zs#RN7tXk#c;}a1PVQFi(Z{PpjyZ=p`IC1;-zmFe32@en7d-CkZ&tG>QIZ;_zUsP1N za^+5MZ|@&Jf6bgVyP=`s`STYmR<6p;y^@uc)zsA4+10&qugy7$Q%#Gpr*GyghUv5C&0&^OG%^tr6A|HA zW$5la*F}$I)8@^#4s++vV$_vj+qa*M1!De=kiW7ny G4Auaqe7PO~ literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/modsystem_miscactions.js b/docs/radar_developmemt_files/modsystem_miscactions.js new file mode 100644 index 0000000..db18467 --- /dev/null +++ b/docs/radar_developmemt_files/modsystem_miscactions.js @@ -0,0 +1,141 @@ +var xmlhttp; +var nombottomDiv; + +function XHCon(sURL, sMethod, sVars) +{ + xmlhttp = false; + if(window.XMLHttpRequest) + { + try { + xmlhttp = new XMLHttpRequest(); + } catch(e) { + xmlhttp = false; + } + } + else if(window.ActiveXObject) + { + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch(e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch(e) { + xmlhttp = false; + } + } + } + + if (xmlhttp) + { + sMethod = sMethod.toUpperCase(); + xmlhttp.onreadystatechange = processReqChange; + if (sMethod == "GET") + { + xmlhttp.open(sMethod, sURL + "?" + sVars, true); + sVars = ""; + } + else + { + xmlhttp.open(sMethod, sURL, true); + xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + } + xmlhttp.send(sVars); + return true; + } + return false; +} + +function processReqChange() +{ + if (xmlhttp.readyState == 4) + { + if (xmlhttp.status == 200) + { + if (xmlhttp.responseText) + { + switch(xmlhttp.responseText) + { + case 'installed': + if (script == 'showthread') + { + bottomDiv.innerHTML = nombottomDiv_nominate_a + ' ' + bottomdiv_uninstalled + '.'; + sideDiv.innerHTML = ' ' + bottomdiv_uninstalled + ' '; + installDiv.innerHTML = parseFloat(installDiv.innerHTML) + 1; + } + else + { + threadInstalled.innerHTML = '' + threadInstalled_installed + ':'; + threadInstallCount.className = 'highlight'; + threadInstallCount.innerHTML = parseFloat(threadInstallCount.innerHTML) + 1; + } + break; + case 'uninstalled': + if (script == 'showthread') + { + bottomDiv.innerHTML = bottomdiv_to_receive + ' ' + bottomdiv_installed + '.'; + sideDiv.innerHTML = ' ' + bottomdiv_installed + ' ' ; + installDiv.innerHTML = parseFloat(installDiv.innerHTML) - 1; + } + else + { + threadInstalled.innerHTML = '' + threadInstalled_uninstalled + ':'; + threadInstallCount.className = 'smallfont'; + threadInstallCount.innerHTML = parseFloat(threadInstallCount.innerHTML) - 1; + } + break; + case 'nominated': + nombottomDiv.innerHTML = nombottomDiv_nominate_a + ' ' + nombottomDiv_nominate_b; + nomsideDiv.innerHTML = '' + nomsideDiv_nominate_clear + '' ; + break; + case 'unnominated': + nombottomDiv.innerHTML = nombottomDiv_unnominate_a + ' ' + nombottomDiv_unnominate_b; + nomsideDiv.innerHTML = '' + nomsideDiv_nominate + '' ; + break; + default: + break; + } + } + } + else + { + } + } +} + +// Sends request to install a modification +function mods_install(threadid, install) +{ + threadid = PHP.urlencode(threadid); + threadSave = threadid; + + if (script == 'showthread') + { + bottomDiv = fetch_object('mods_install_div'); + sideDiv = fetch_object('mods_install_sidebar'); + installDiv = fetch_object('mods_install_count'); + } + else + { + threadInstalled = fetch_object('thread_installed_' + threadid); + threadInstallCount = fetch_object('thread_installcount_' + threadid); + } + + //send the request to php script... + dostring = (install) ? 'installmod' : 'uninstallmod'; + XHCon("modsystem_miscactions.php", "POST", SESSIONURL + '&securitytoken=' + SECURITYTOKEN + '&do=' + dostring + '&ajax=1&threadid=' + threadid); +} + +// Sends request to nominate a modification +function mods_nominate(threadid, type, nominate) +{ + type = PHP.urlencode(type); + threadid = PHP.urlencode(threadid); + + nombottomDiv = fetch_object('mods_nominate_div'); + nomsideDiv = fetch_object('mods_nominate_sidebar'); + + //send the request to php script... + dostring = (nominate) ? 'nominate' : 'unnominate'; + XHCon("modsystem_miscactions.php", "POST", SESSIONURL + '&securitytoken=' + SECURITYTOKEN + '&do=' + dostring + '&ajax=1&type=' + type + '&threadid=' + threadid); +} + diff --git a/docs/radar_developmemt_files/multiquote_off.gif b/docs/radar_developmemt_files/multiquote_off.gif new file mode 100644 index 0000000000000000000000000000000000000000..60aa69c47d55bf0f3f06bc571efbd12ac1b19ee7 GIT binary patch literal 1355 zcmV-R1+@A{Nk%w1VHp4x0Qdg@go%{7y1cl$!ZSx}Vs@ESQ&L=ctiHa%o20X2bdhp| zrAkUlN=;Mw`TJO2Xy)kb(9+g@ilo=p){dmhuCcey(Aeqf?rMLew8`$s$jZjZ)AsiN z^Y!(&xx!v^m285lwYIsasjlkj>%+#*#l^Bh*1 zjHYCQw_}64@$vI6E-q<>wdUvPYl5xE*6}7jXU)&r_4WS%008px@|T#MJ5hG&=jnlu zsA6Jb(9_w@&(&#xrxO$u#l_3N!^}ilg1)}RyS>K!|Nk2t8{gmM+}+~U+2+;O-_q0D zUv!u(L1whO&7`HO3kwT0H8@&ul_Mh~|NsB^`2W|~-;Sfl*4N$6&(i<@{@K~x-{9i% z^7hZw-Nwt>yS%}{!o}6r;xzd z#qRC$dx@l=skz$O-hYsddL#^aEoz0c6q&gTD|pQh2$+J~IMR##kYfSzc6qK%WDx4gyn_W6p3 zgOaAnn5Mv;t;@*J+u-5iYjlKyg^Awk{E3Q-{rvsf+vBpfzwrJ4>FV|V{rv0g_3iHW zdWxg3!r{5W&))L?zQD+dlA(Z|(P?XL`uh4_eY5!a`n$^I`uh2@y3Vq`&&bBgdyuzj zfT?YJmf76gU1Di#io`%dMShdGpS0DQv)<6r*vQS(yTH-E#@Ba)ozBbAe~6mL$IijU z(T$Ik#KzPmCMYQ=DUX}7-rwkrp1gUIzG8Tul%BH4%F)Wp(y_bJYkZrmt*_G6+sw_^ z)z;e3*52FO-&=R7Zi%`-RC(Xw=QTP)TW^wQdYqxGzQo!3UteGH^YrrZ_BBgzZGxp> zdZ=W5srB{$A^8LW00930EC2ui02u%l06+-;0RR2Fw5$t>0|x?tDDwrvmm`X9ZOD>k zgFu0UWEgnhP>+%fk?230MlcR&lp2<{3sMPhZ-FJ&WTF)4GS;}4^%t=MJ84UcUUAi7?$hQvqbz7 z{EJ}3hMb>2Imj#03(bHiHugcG7mtVGHv%tVX|-e9jyPBf3`K;cOVo501-=L-Y>l}N zCCYVBw?yBn9Ht~W!Z52!j!exS6{FEl7ZywcWOaCwgh7rBcoCSaF(DBRba+sF2!+MM zh&>wCEs+L+g@7qP7v%r|?ShpPvt^4Ur2`f-Y{5tl&fFu8 zKMDjQgg^FRL5X?Z2QnY%0f=(AV37hGo;<-s5>9aOQZt46siW)Ckms6qfW5KqmlTlSc~?_+WwwJ`hVs N1TC1L%|8JF06Sa7@IC+l literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/navbits_finallink_ltr.gif b/docs/radar_developmemt_files/navbits_finallink_ltr.gif new file mode 100644 index 0000000000000000000000000000000000000000..351005f1c2c665c540fd67de09e54702e8130e1d GIT binary patch literal 1035 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 Ck8KM8 literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/printer.gif b/docs/radar_developmemt_files/printer.gif new file mode 100644 index 0000000000000000000000000000000000000000..569b2700e2527faf41f36f27b96e9cb328fbd113 GIT binary patch literal 1072 zcmd6m3r|}G07mZ&VSvnRV>mZuZX*(w$P&TKOa1r}g>#uF1)8D0-_? z*JrXeG&GHxjFHu?SnSUp`LM!ZR1OSJ&EMPHdfeJ_qn#zvL7yB%MB z<>%@;8#;xrs%J6vf_wp+p{zt~Xs~cxD#9-h79{mR(Ndkw}c&-n%rah)xsU zf3Rd5F-w)2eiO=ugdVpWB+!?AzJ9Ia>CR3py1C%-s8zo{3a!f|1_{!`WC*wZe!>^a zA(nV05M(iV6lMqh$J)U`%TTZ85w;dsj=5cP5Ofn3Bd%u@NT?pR&yT=+%`FeMX6*yhb^7CySV5N{ANHG<{vIT^i#+JiCTw+H?-Yy-Kd?(;5D_9 zR{j2XA`y?r^=4b;_tk-=C8!;i@L?&UuB~aNklEhZIgkLgv&8T(3M{<-tO)SG-?4v^ zb^(ABc=NgG^G_6}B!G_83pvuv?2r4#UmF zCR~ literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/progress.gif b/docs/radar_developmemt_files/progress.gif new file mode 100644 index 0000000000000000000000000000000000000000..5dafb9cb7bb3b04b206f7449c885f68c78d6e067 GIT binary patch literal 701 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC>r|SVQ=(9wS(2gP?&+rBn_rfhs^FfQSfpU0X8=?n>YJF7s*qHv;Fy(I z;gg@3qL-PMmd~L0lZBHDXo3z91FaQcU|=@p*mdWh!70yd;baag4#_#}elyZIT{jvY z+9fjc;5NO4BZmqv=tfIe-d)CSDZ#_;mHpfU=mJc0OhD%N^(ZPxxA5%V@T|+F&?zt^ z!BA2m!N)aPYDJCA*3$cL6D8Oi6s}7=YIBy{q^hDNgv}r`j$KB|+NT^(OgJ+oOrNba zS%&Y6q~AwRr^Fen3uHcUo!Pus=GY2trpUMAe;At&^Bb*9k($4s1)EVoza^<^pE7Ej z_-0O6d~5eI&Q?Vp7DJczL>a+VZcQ65$}=Yg#eTMxH?Yu=>OZlh$kGR^-;6kR6{%}` zJx>w&Ao1C!kw>lUa6(K{$duNWopKqGPMYUWIS4Szy|j@(tOhnGXcAUqfX-1kG{I8* zamn*Nx8@m09+!EbsOPk8?y2xKiwt?#xJ8N+cW*HLK9#Z2U;}68?)kZzURccmI_J*6 z51fKG=Y+=2VtjY2uwZIJ$KAv^cTJ|XI=US-5SfrLdmAG!%OMAW*@g{=uAQ5R+ZbTX zuTFKkGDq{e90$i?g}&p3d@P0rD^G1$7a(y67+qnvmNF@nCP_5Six!-~z+eqZIA8z( D?eE$f literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/quickreply.gif b/docs/radar_developmemt_files/quickreply.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8e661520b65e0d097d7ce589bbfcdbae98bdef5 GIT binary patch literal 1407 zcmV-_1%UcTNk%w1VHp4x0Qdg@z`)79zQ(Alth&6sx3;o6g^{aheW6=& znp|y*sf&2hwVXXtb>`>mi;|mQb(!Jf>2r;|qNAg(v9oH1w33>l#iE6mlakTV-OQ+p zmXeKSdY*fOlwos{ZGoip^!CZf(7(mUwz#|E;^kLumHyMJ?8KYY)Z284tZRFm{r&w~ zXMB5+wsnP}-QD8K&d~Al^m2TTK~;IIpONqG@pzEBjF+(DNL z&d}Ay#?Ezuo9E`|yqt!9mA*+{f^UYd@A2~P?(S7;j^5thc!r~*p`EXicsWdK$;!=n zj+J5()7FrdpUlkEyuQK8%h{5iwbj<((9YK7 z=kx#m|LW}c?#80~`})m|l3Kc!7?*zQe}J(Yw6HesFJhjIds9gzD<_ z{{8=EfUMZu>t}3spoDJIu$7CIq44nf_V@Xvti4B6YDHRpnVFoz!pwb$pV`~zXm*jr z!_3{?=ETFxXJKA%dx>Cij_c~|mVIfEeRt5&&}n&>kd>gBoT8$osbg4GTx){kz@J4{ za)64IafYgsm6)2OxRsZju#IlS#?6$KnzWXDYk#9_fThdJ(sX)*Yl5q7gQ&lug7EP0 z?CkdN^YZfZ^S76PR%nK1gSgt;-`d>YVt1Ru$k>36sm9FQF-B@PNM)<5u~BATQlb%7l$J&D7w!z6MYJ$w>p|rl2s9IryzrKQoDMu8l4yvOq1%utc!CCP zK`+7{Emn~IV@D0ovl3Hm*l-hKO(vnRu5CbpVH~eF01(gt(F_kTP@q&nnZw~tt3vBo z%uu07k&7_tbo^T}>ImHo;1?7h z7!L3N7erS)6L?A`1Mufa0005Z0g%UvfvX~RoY8xQBovM-9WLMjFsqmu7%+AWKy;#4 zja?s9RH2)hlm!6_KeB8N z>WhgL8jmgUj|2kXAp;(P;E~6EK|Mkd96oqa0|fy5qeL5cu%QnzaSZXz8P&uhlo7J@ zv%vxCcmd5F|CFP^W}M`aNeE+L@xT~sFhd0j8}PsYHd-9xi3JL@6M`J(1RzHtB^)8b z9|A;k!XX>HBgG99pt6J{7SLk^9wMlc!Xr@}K?EZ~^k7OaqZILh3uxSs%QOgFk-#>1 zun^ROc(@Zy16>TzgdKFHk%kNDEPwzAPXK{O3IH6@2PvBvP{$UTh=IoiPlORhEh=;% z2o5#fq(mQZOfm-{;(+0XB|(K;us}KFbP&Nl3#idS0y?Y%hz6fLa0)+L=($-Z3uxgV z4N_DRK?It7iAN4y{E&kXLE#bu1TAO-;A8lx@ed#O1mnm&7kDtk3?7JLOab;3PyiQP Nyg;u#iTo1~06Wwo`G!KtdpS1}5)0{VPw~GA`!P?ciQ_ zV!Gbx+^DqLyD6MYnfl(%S~5Y3VN*ieuCC2dF0a2NDV@pgm=HN_`<&Ap-gezKY+juq U8Fky%JZAVAcI3&X#S9GA08P~`nE(I) literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/quote_002.gif b/docs/radar_developmemt_files/quote_002.gif new file mode 100644 index 0000000000000000000000000000000000000000..5c37f2d9316142796c71800ab79d9d671500516e GIT binary patch literal 2182 zcmV;12zmEMNk%w1VMYKJ0Qdg@i>ckLvAe6Fl3aGC+}-0wT!D;+Ip-lv_oTBCC>Se?y<=^Bbd}I#a*Vyd&6Jy~ox1Fjptw zvTB91d6BzwgQ3L5%VKz(X@aZ9$If7Vvj5Vld6vjvbeF@$%~D=%dvb63{QLR$`0(=b zm!Y*$Vt-m{gJO4^W`VBj?f80zo9yiNZ-c1o?Dzlv{qpwq@a^zIRd)OQ{P_3xh>@ah zjKOY@%ip?`n4hbTs@N+(W5mhW{r&vIp@{zd{LHqX$;#Bs%-7G;;NRfmYlpjmpVWVt z#m~>$($(Pc@$`I-uD83zvAD`{kHOmA>1=p|c$w3Am(=3r<6C2HO;o9XKC>+AKQ zl!&^*)AjZLA^8LW00930EC2ui07d{706+-;0RIX6MaM!GItT|vx)Fp%kVu1m3H+C3 z6O?uwCTiTsv7^V20)6mGSAbJDFiTRTkkz4qgbB3pEz=MUQHcj?bg1FQ0GGWPsRrcK z24sOzbx7~rX~r~4vjrFyL`g$6MwC11U|~3AX25_t&;D&#rH=$U33IA#17Tpx4kQxd zO5lXz%8?_$fUT;sM6QG>DoRk0>q5e{d;$ChKrzp+m1BNoRgj~i0+kbuG;WbFiVGJz z#OxgF<9FPbCxN0lz;h0i5)bs~DVa?>P8=n+bH^dWySHyLwrSJb0}h17Jr`bFxgbcw zEiYUepeY5xK#?qv7s-&qT?&c57A`dZk>M-uqPU)RO_7j=g#;rgP#BTGLJa#8=Ow{_ zu|q|n8Ec?02??hFk%%aw006)cY}Qai3~t8xCY*4_IfR;` zB$7xH*#H3qEa8Nc3@Plmg2O)`Fkl8Haxl0_2!volz!H!spvNm^^fQYOSD?}aDi2f< z*Ebck5myI36f%Mg4|s#a2$aPCa>xub9CCp^n@C`T6F6LO1_gWkK>{W3JV1#V3>0vN z8$Rgs0tstKzzsDiYy*V>UF<-^CNxOENGztvAnpt6Nr1u&CG;l&3~@bz!W$A8f`$Y; zl#s3j4cKP^3NuK+1tO0;VuckKL=cM)Drg}iE+pu)iV)Dq^}`KIz{R5zvAm$M#ys$l z!z3-pg+s?Y*mc(xz<9h$1Uc+N!UZKzMp*$WUP6V6FKY3DMsrLc0ckw)NPs|w_~C#6 z3Zwu@Moc#C^gsM`D@Y`QKv9VxsuaOsT#8_F8j-72vP}XUludR5XeZE1+Gz*V%iD0r zy*ArScjV6ix&&23 zIp&lfpbR!EOq2=}u2dj_3n{dMNeEdGkU~7wz=Ovt2xy|mBxZ~Oi=VKJ5zZJuB#}g# zY{p=G8lS)c2NukS;k@(AV*$q}F#wPRpxBW9)jz>7z{@EraDjw8HcWsp3j+5% zp#dUtQ1WRLW;DX14Xa?Fe-k>O;;A;;P{RWr&;+Oq<{GS6fI1e?1PtV)2?9(<1d??K za4WVgt#E%j4e2U5aJR5KmcL}OHcvKR8W8uxI-+v(8n$| zDT!_DV+jVx!VLX_jvSDzW4q{qF4n^ZKp^7`a+rrNdVqq!tfBVR*Hj`j^L$yh-pk$K+~G8AOkqfsZMjcf)Rvb58@CA I2Lb{BJ4qQbr~m)} literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/rating_1.gif b/docs/radar_developmemt_files/rating_1.gif new file mode 100644 index 0000000000000000000000000000000000000000..56974eb0ea880c85bf4e697465841ea9837a72c8 GIT binary patch literal 541 zcmZ?wbhEHbv|-?3c;?0M|NrU#|C7ol9w?u5uxrMif3JM1rylH{y{l^Sf&XuMzupS@ z|9|`EYvKR@&v`UI@zsU0S6kCx?oN7lJp0;_-kEck-#VQC|No(B)0W(wEq``@^V2iw z3mg3Z|KEIS^Q4IjcK*MexUGVBV?O`?|2tRaa^2eEvAR~NcItuuJ3Q;A?D_w~@Bjav z%1Qg)-Ai_@KFC3pfJJ0q1qj?jju9&xE!^0!pUoN&SEtdZOzq)41!T#yX z|NlSr|NpZ8|JVP2Wj}k_ju)GQmaf?H|6%m}CF}nGSlc+`KxtL?#;&;A{rdm^cNF*U zXBgZ-@h1x-1A`ZX4#=6HIB{UFYVc}mZfR|6@96B1v+C;WpU}y{s%0i*t*0?@_MBD& z9VrzaUMEFeb7kqdtLHLlDyXg5G+TsAiQ9&gPki&eXH$2#~`kDqRHW|VL{ wbDUYyf`LKCQ(oP}o$b;-QGHu67sCg~?Ck_tv;~cfU+gtuZ*g^OYGkkm07wwUJpcdz literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/rating_2.gif b/docs/radar_developmemt_files/rating_2.gif new file mode 100644 index 0000000000000000000000000000000000000000..c22b1530c1f4ffc06b9651da9d3716291fdad675 GIT binary patch literal 595 zcmZ?wbhEHbv|-?3c;>_K|NrULwMyla4*vgts(bdX+NlTrzv4>^ zcEA4YWjiKLU9ohzc8rw5t36|2hA6cs`n+ z`0z+~&6I=F(nSCNU;k=rdfk*g8@u9eZSgp@dD54QZU0}{zdN4&|NrKN4gPi04=t(p zsGfSTxPL#xUC{<4g|%C1N(*spQh%P*0%PJRt3pUpYGlX6MF?YbzIz- z4INshOq(%l(!vSCDk4ri783HdN*Z2EmaSN|M#E##_D*dMcGiwvdv+Xb*W(gbGi9?9 zYdLc4#Hm9UeT)@tnysB%u3T%nap}G?WADTJPc`|q%sZaHe7b|lM4f@bU01+T+R^jF zr!U`rI8NIktm@dtFQKm`p;ck<@IbUo*Pjg=4>Y#%wJ7-j z=%MvMOX~sZg>q>@Kn6VpEfxfH34?YjqAa!9NDXd|8GWaJ!Oy-w;Q8=8dE>a-Bfm-B zO866RNCFrFnsa34`mE(0c>#7)Ja8MRA&)IRuP_%>F|xWYHQh2dz7J>sEJCIEY^C{c zd*aRWp+HK$ycaO$${DJmbJlSbo!ol83DfGC;p4N`bo|={*lb4md)JQZKQ3&Q9C5WD zcT_~EY8&zF5O9t<75nl|%7v<)$JCc_BtIJ{$Dh)%+M__Vy+7mi!(y3250sWu-4bQb zn6*0lZ292^Yt_OXhit0w-5?tF{V>wRaZVhdas7zv2uPk#9T+#0y z^77?52yu3+(U&Isx7+Glo!qEFGu-Gt--G10|NY|HOO<| z-dR@D`_EH8U9ZP)N9IN{a*MQcgU2ww`@adLb10|br)9tcotknO1TSo<0PVI3fmVRZ zud<*$4(QiijG4TbJL@>1E#&oIIXFL^R7n|?X-kW)GWrt%H<}GXrA5=&1&E)Fin3+q zLPbxDK?ig+q`rEFDailA`oHb@2 zAuF*dCEIQa&~VG95~m-PO!@gm`9~JMx>j<)baJwL=Gz~n%RM{;?w*d$ED7@VN)kKY zZgKOw!&Scv_X|8zt)*0`%k#d!Wz~{{&d!?rEP?p4d*cnyFd}4Awyr>%6%xOYAi^gy zwG69leN&QEeVB@&M}688WU1EjMWW3DR-T*VeP(93)@xgE8kbyKGD2%(*j}bA$ahmGhizFf|Juj?MKGKA?tfVgu>$}A literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/rating_4.gif b/docs/radar_developmemt_files/rating_4.gif new file mode 100644 index 0000000000000000000000000000000000000000..43b3bf515b35932669e72ca260eaea5022f104d0 GIT binary patch literal 1190 zcmcgr`7_)H9R1o6SCCytL+Dh^REIxa{r}9tq{ru*=H}B2!^6_+biF8HukvA#?U@V<3 z11JP&R!Qz;GWx09K3J||vqihJL2&p4pc|G#0V+y4^#H|Ns+hVI3xGjb_g`-dtQ)$bZ#0(z0j^?cOcaFzE7u%@TD-ECBt-`+6I_QOe2~fS(HZvYINs zkd{ziT?TL`ho#saBfOq?kin3_^mQ@r6afEdHF~ufM_~1l**)uH=~79}?qt%&RKx-= z0@PImjzW~@y+4_k!59E|E~;zTABz`>>VJ_2bUhZ#Kg$599WOL~HANQ1q5;S&qtW7Q zNBAwQkkvjw3j&ycb&pJ@q9*TJb$z#bE&*N(VaE?vuL4k@!)xzFO8z5xHcJ6eKw|f2 zG6sq&`nf`h2#1+1xxkGxU1`SAD*HK!A7|tXsl0aaeaz8vc#E_SAO_Zo0EWx?ZM{uZ zi%JrJWOwB5t05e|uo2W(8sZJ$&uiPGM1bloReVF@nPJjN!j{3ZkTkmNU@@A?Zj~_7 z|CtUTaurN|D*&&W=m#^Qjm;ayh`%4-Z0SOB~4Dle$DTg;DhHuq2+MQrxqt3?;D#V2ui` z9`n5LW_oH7uk-C3cWEpkrE~!KAMxRlrUrtj5c_wY?>^zC1ISZdOK+(_7BQ!9bj!(S z$qi#@sYkJGsWEo*NyYdU{Gl(u(#yE1QSODcCYe)QPfLWjFuaFIyr% z8sk=Yr`fs}MN=mo!oMvjN*+2*yJ(8GNBbxVa)b9VOeWEe)rf8KO`Nyaxqz-k3?nyO z^2Z|yx}W)W<)6<;klTi2rQylXL+nWbc9%Ak#gEMVG%p_pM_3Qht#phW5|5o*ZxgXP z!IaR8=SKDGU{4(m^Ow;Xf8+^<+KL_R5WeJ4*H=88(CqmTfHqFGD zVJT4}QH9BCld4;< zJ0niF@C?86n%FXwk(P;cNaG7pR}{_RnX~HLI9k)kNwbc4+MT-RjyAl6rl7R1zUQK( KqfTiepZ^Ek*I+9E literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/rating_5.gif b/docs/radar_developmemt_files/rating_5.gif new file mode 100644 index 0000000000000000000000000000000000000000..33bbc5f104d07f2b8d6b60af46a7d5e3ce5ebd8a GIT binary patch literal 1280 zcmV+b1^@a-Nk%w1VLSi~0Qdg@|NqJV|D*r^ga7|!cap(*lD_TEamRxYt+1@+uWO5) zzJ{B?ftbRAmcNLWwAPI+rfm{-k--1|%X*W*|NplC|HJ?PumAsupQNt;;-2cYXUemZ z;-6u$Zx89aV*mfjo2Izh!*Aili=}fLscj0~n;)cW5!S?w|KVHcvr_-%L-f&x_1aX> z$Cv)qLQ=z>1i>|Ll$b|CyU^MgRYi>dHW)+#8r-PWk|Nor-|IVeTw2Pa%|Noc&|GC?bFaOa?|LQ;g z|EB-{!vFub|NpN4_^pYVwtkenv5H>q+hwbLBLDxs|NmnD=86CR&Hw+M|Lmau|Ipjc zh5!G|mYcBJ!EB_ZsG^>myR4p=Xchneo0o1U`Q>ALmcsx4iTBTa_|=&I)mws@!vE%q z|I$zY|C9gITiTgm;md4=n!&1|jMj}W(5zCTe?*v}u9TayuaR{B|6`_f8rhj&!;o5_ zWDwrOYp8Ay)38t2vqtvcW4NoJ^T=lZ|Hq+#Pj`~PgOe3im~m%-@EcBX3u^Us5ka8>{RpQoRY^UiOvk#6jSFr|Gpik7l~m%{(>P4dlw_0E64i&vkgxs`4#q<=_xl)`(J!F!d$ zq-PNS>70q2zRZXdzKT@;|AhblhTNNAc!;W>flZ%+PhxahG0#)lkdV$Q62Gv_}!!|E`y zmLyxHbKf8YTb0ZbCQV5QvD@PfLcdkYjAgo}=NGX&l3tl=k!FYvA6QUys4{{CI8kPK;2IzBLpAw3$ce;4D6nB~N;E@D3_| z6uJ#Mr0t*;7G1`KLBhd?Y1FD&yB=s@*FAv~{y;lu-~|DJH^^-|=<3Dae?a`43`5Tqsy1uaMBDo2Y~>F21gX&K?YQ``DUDR q);SOkR~)2(69@6>C!hn_ki>cjYd7bV1 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 literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/reputation.gif b/docs/radar_developmemt_files/reputation.gif new file mode 100644 index 0000000000000000000000000000000000000000..1526f746374af8789a5aebf751669975fefeda35 GIT binary patch literal 1089 zcmdth=}($>0KoAFMdPt%Vz#Vy?P8~Iny|$zHgVay&d#DBZP1~yb$t+zYSss()+uXM zj_NoB1&>-!P%6{t0`*{4u>+B@sZbQLS~{x+uZq^A^_Yd<(tl&$|KRiD8;!?Bd`bNf z!a(~P2mmm(3LM)YmMS7pcmrUC+SED=j+ms@TE$Y0xT&v4znMn6YZ#xQ-jpE4(jRhaN^8_tkgBUWwMPIHm34IW zkB?2wXE3Bsp1pFcyWrf$mWNjDB!Cfac|%{f#+Y@d#kK^xH5SY4>XOr$&uypV-Xo@p zrtFJEnB!P}`9Niqs_Z*^`)fylRnZl7nMz0z_GxYA7hq#|??!&LX53lV_V~WSyt?`N zLGS!cW^-!ZefU;Aj0oeis*>rANoj=_ua%i?b3+q*`JAQ|0Oq#A+!{a%<#N?nL&pd{ zMPy%cW#&~f%X`?B4-F=JdN$wXa_;~jZhS13KFYp*?`jt3$0B*5NV%{9y7gNVONW11 z>;?Qz99(vZ%2N%PH@6RZwRT>0%hL_uc=PYN3urBF<V z@Oz%k5IHO~>exrH@?d8Er(r@66if*SJ-%G2NXpGM1mRWwzv0ln4oe7q_%ry7_W&b> zZ9E+X6HRNoXqK-Z*4K@yik$oaZpBVud_1Pbr$U%p!xy&5C%oHuEC=0info=RKEe+Q z)SiNK&{#~nE}9>L_Zk>&V!Z literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/reputation_pos.gif b/docs/radar_developmemt_files/reputation_pos.gif new file mode 100644 index 0000000000000000000000000000000000000000..1033cb4a7cf5f6a84d0b9347ea6f58f27347fda8 GIT binary patch literal 501 zcmZ?wbhEHbcgR$4p|Qacv$Wje)ZF6OuzaJrwgzX+4UU?{#%0FGXN5$i z7@RdP&TclEW2bl6ROhIH!7;P+#8QK!rU|#w^v_zPMwjXxH?ltCsIy34@1Tj!K@+_b zMrPNojAq$ixcI>EkVRQuYkYdH?h2Er#0-l|wuV>CI~o_qMdU^Y<>qA6ShWTi%rMPJ ztTbL^7Z#CXbjCd9ZlcKyd*gE!DbW>)QKjMWX?l64_7wr97p$xcocHZNtAEHeHat&v zk@30nkCLN{BcsxMuZ0-QFwtFXtbfELJ|WBCu$jSh)9Aq5y6>_H7)iVn7{ro7fd=FU1EMpn8?PL{&%42+!2hO#o^0+L*23I>8q{4V-h u+Inn!auymaBC4)7QjBgY62=@%40ev((rP^HqRKw<-eQ`bChGQ$4Aua{BXDB? literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/resize_0.gif b/docs/radar_developmemt_files/resize_0.gif new file mode 100644 index 0000000000000000000000000000000000000000..b960a46fb747ffb63dd226d9eb11eb314552de52 GIT binary patch literal 61 zcmZ?wbhEHb6lLIKXkcXU_4Q?7U{L(Y!pOkD$e;scGk|0mm_&N|S5_a$Z)ow3iYlDD NEAo1)QV;`!H2`Dz4om<5 literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/resize_1.gif b/docs/radar_developmemt_files/resize_1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3f39eb49e1db889bbe86372ac50c39e5f87b30b GIT binary patch literal 61 zcmZ?wbhEHb6lLIKXkcXU_4Q?7U{L(Y!pOkD$e;scGk|0mm_&N|SDv2BurRvNC?Ryp N&ntZi3K0wp)&OC{4lw`# literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/sendtofriend.gif b/docs/radar_developmemt_files/sendtofriend.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a5c5cad72b6faebed2d5e6092c790b5c9c75f1a GIT binary patch literal 1125 zcmd6m`%hbS0L3p*vZ9Mq8Hp?-=@1Pu%wT+hx}mcHM;x3}$m@hZ3hZJ}S;f8qJ{oRiP_vLBz~I}Q!NNERFcPeFcU7M{_eidpP-(?RbTtG-a`mVbCa5ij0V87NLI~(gl*SvG zP|nQR-A0EOlxEIayn0{M8UR`>9BHZ6`Jy+w`$6%`FcwjGR_!P=i$!ei#d5)Mk;H8A z(0VLtbOtaYW^j>42gxt|c)_!zwk>jbeD1*loio_iKQ@NAq_cDO0MKlAaiGS+OH1L( zx-YgG^KE``r*}wYL6ymWn>UE z>cR-b^;l!DI`NIOE#DOtA3+Il_S+5wi;OF^3N)-lH-@HU0TNUktuf)7e=9UAD>1c^ zI(n=|XLTcHdU*+GtoWbPa;bY`)*cvF>k)6nL2MHr%RCzt1z*uE?_Vc?^E+j;1JseNHq90Vay*3)%QKfz@K=x);9g5hq~ z?!s%o+eMTqO{i(DJ$XaA^Cst)YgM0>KymS}9Bxh9!;aSswr3tbF>yZ;g0lPa#?R&U z*1uj~CSc#oRthdB+$uYe`(~2;hgYw&ECQl|^ZbdFJwG;cs!H1as7TF*-cHC*5jHik zU*d4NP$G++A-N*uUn*;?Pf0H5+tnW5ws(-1%p#b-4$0s?gwahrqo!`2L8+f07*m+y>Tz@@pwB}(} zdEztUl8N*~*uAvI{{J7=1Di_+f`2@mZrzufi{OVo_#bB=#A MQdGxEWI^x$2WgLQ@Bjb+ literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/separator.gif b/docs/radar_developmemt_files/separator.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2f3876f1077dfbc46616a814acefc1cf9e4da72 GIT binary patch literal 59 zcmZ?wbhEHbWMdFvXkcJCdT7V}`}Y-pvM@3*Ff!;c00Bsbfl0_Gp|kSNo+;gJcAU%4 M$^70`$;x020PMjL$^ZZW literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/smile.gif b/docs/radar_developmemt_files/smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce9424bf804a4d4932aa8aec169094df0768f439 GIT binary patch literal 1061 zcmds${ZrEg0LH(}ox!!$EIic1HI$D~6ri+7c0HfQH~U2H^nR#yH11 z1O^kqN9lsHBZ(G&g~JwH4@KKFUhQr%22gA6`}%HkCeYv? z==*Y90$eG`Ja|EPWY^C3o=lpjr)^4!uOORsr{M%3J^I=Hr6~^FFM5Y# z-q4i`cQMdq>|u8|#~a#N(+{KqVPr<)o>R$TK(+qYBvJZ0WQ#06ac0Igrq7Y(Mq#mX zZcMRaN$PG45vBSF_#v268hdj}rH6-p>-c+Bi`4@Bo3XT9IAU54|337ifc&iBHQO1d zNhT38ZeQbB`eMvx@v=3pv#q{HqXcd*n&bbpivC%xz+y>NX(p5TVZ)Dk#@-CK8|$_HIs2>RmfHXO=Z~+F z4v}oztWD9x_O1lRrqe;x`hc@%4ZOhF-_%k!Z1vUF?KW+XlkMKi4WbzXwn+=}&dfJ$ z{-Ic$$O=wUNt3BDwEe-4>&E<|8^0a)^wSf2-}U&z)y0qLe`AZcT+Hy(5pr?~@kxqC zaY_AE-1}M&BF!M(@V37E^fMAW#5aL+UchHi74fN4(!2iYeoFRbK zYk|s9j&TVTel5LE=uK;BOAEA|MWjFhSw@6niw?fS|6$L&&zmQoH&0l2=*3HkJ}57g z!-irSKsW;_Sqj+_s9%6~3w|%stpn6_ywKYL{b+6mfHo`_EP&=8V2?vakv_9nhi_s% z-GW1=4uET3DX1`i8(ApdfO_gns!-NJmr^BKjs>;>hOEGP28d94zl7Yw7WZ<+`4t_# z>>-{RcvHYMt!iEYnRU?02E+_iEova-(RNcCRk{U(TUyf43489M_@MDBdM}EaL za~v=vtHcWBO&mlhZ(u_q&e9`=*hH2E4$nIb`yg3_T)hF5SWmu3dgZNs2gDVl@$WQx%V45_M@tt_ou?G!Diq0K)gG_j{PQ*zW9 z`HYkY@`t5dntU)PArIwQ)v7gGNevO6XceO=3nne#@41}kP`3xS=YuL z-2%h}_X_pmbw^PZjnplXZ-MkVq&^hz7q)sN4(^<-mA1w(*c%4ci;2sKNY*jDJ^2Pi zYoJ<(pwM4%E%tV{zK=87&zEFlCMgPV0;CrZ)SJLpY6eu$!UU?!IJN`1cpFo$DJ5E4 zY36AFWO$a$HPePQE%e=~!zofK*Pyt1L9zmbu74?9F?&Qmxd-hGMREoW5lK=1A1C)* zT~H_+D&Vd1Z4<%nfYLXe3mLt7{Bls`XQ$LI?^Sr0-Ewb9{V?XpRTq?rXhjU}>2rkV z^eZ(0nl1sKGL^+9Ox*=R4(6 zgBt^=w3srFW5IcO*_4%UPEatOzQ)rrm4VvEYhQQCu7!VY$%%`orC@2n@m$vptj0IO zE8=E}0M$qIiSs5fK55+aa65nQ=*1*f*$?!OzhWBq;%e1j-tJJXCfc9MNa>zABhGAU zH~-R+crU+(V{t>-OTv{$TK`5E`-sQY(0Gc6u&bUzo|i6whV IR50rDe{2+8F0*)kyU|NnmmB%t_{g^_`Qg+T`-22#tw?BcQO&OZYo zg=B_>c3!c4bIc0f#JE&pPl pg=~rXYuerWGiP(yCA^%o$a7sL0|&#esLQ=6R_DIk#W65g0{{d(8w>yd literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/user_offline.gif b/docs/radar_developmemt_files/user_offline.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b1cc3d9cca86c7df7bcb0e069684eebeb809591 GIT binary patch literal 1026 zcmZ?wbhEHbh+K zA2&zS^77sZQ`SaTo{OnGwQA{9=kQ7AP9Jda%DZ^+{^4VnVym77rtS_ZIOUshw7I#< zBWXu$*~PZD{>;pr)2A;!fA#bA>rYA96C%qWzj*P7@~ zH}8M^_|5!-|J#>5arKGK%dVd`ZO(+*XDTbZ=FeZz)KKggwY0geE-5MN>a|z|KBchd(rg&F^O4w_MBOE z^tXS`sijL-+PUWj=U<<_c5`FHDl@mq&W<6MufDu@?@e3Vqz@myMW#-?_xStCleYqV zGM%C}9=Y@>G;u;|)lp{$XWy*jP9AAD@4UNn=S|U+{~I?R*446Ka{T}1&BtH9{1TEp zb?vIf#l`imvBzi5T<4Q{@YcK1EB}qt=4}g0o>*CyX&tmIG;P+im*4%ek7Z|-E?IrWDSGqi zGuO=wv>w0sIeqr(n>X)m-@Y#}@7Vl#%Pw8I9iBFI;Z!pOj|kwFLKV^E%O;JD9_%qjB2`TSf*F*dF{2Q?g| zmF8&W1TrsY6jk-nJ6aWZ%AqCPFD2*4fd(fbJLcaiMiU=RP_@>6_UGZkf{;1p5@DJN zmlXxrJ(%`B`Dw)1-61wL;zFS?+f_mKjSUi~njUkl3~N{-BQZIx%c(I`?5x1j$FC0r zSC}{`7CJVth;nUB5imL6wosAVuFzg$n*XRgM^ zW2c0|OkxfeOw>9e=Q~@2(^B||$FhKoMPEJ$a!;Hg-6A5|v9Rm3u!zSg4Hf3JN$MQ@ MuS6P64HOux0ZRs!iU0rr literal 0 HcmV?d00001 diff --git a/docs/radar_developmemt_files/vbulletin_ajax_reputation.js b/docs/radar_developmemt_files/vbulletin_ajax_reputation.js new file mode 100644 index 0000000..f0e6a40 --- /dev/null +++ b/docs/radar_developmemt_files/vbulletin_ajax_reputation.js @@ -0,0 +1,11 @@ +/*======================================================================*\ +|| #################################################################### || +|| # vBulletin 3.8.2 +|| # ---------------------------------------------------------------- # || +|| # Copyright ©2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. || +|| # This file may not be redistributed in whole or significant part. # || +|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || +|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || +|| #################################################################### || +\*======================================================================*/ +function vbrep_register(A){if(typeof vBrep=="object"&&typeof A!="undefined"){return vBrep.register(A)}}function vB_Reputation_Handler(){this.reps=new Array();this.ajax=new Array()}vB_Reputation_Handler.prototype.register=function(B){if(AJAX_Compatible&&(typeof vb_disable_ajax=="undefined"||vb_disable_ajax<2)){this.reps[B]=new vB_Reputation_Object(B);var A;if(A=fetch_object("reputation_"+B)){A.onclick=vB_Reputation_Object.prototype.reputation_click;return this.reps[B]}}};vBrep=new vB_Reputation_Handler();function vB_Reputation_Object(A){this.postid=A;this.divname="reputationmenu_"+A+"_menu";this.divobj=null;this.postobj=fetch_object("post"+A);this.vbmenuname="reputationmenu_"+A;this.vbmenu=null;this.xml_sender_populate=null;this.xml_sender_submit=null}vB_Reputation_Object.prototype.onreadystatechange_submit=function(I){if(I.responseXML){if(!this.vbmenu){this.vbmenu=vbmenu_register(this.vbmenuname,true);fetch_object(this.vbmenu.controlkey).onmouseover="";fetch_object(this.vbmenu.controlkey).onclick=""}var H=I.responseXML.getElementsByTagName("error");if(H.length){this.vbmenu.hide(fetch_object(this.vbmenuname));alert(H[0].firstChild.nodeValue)}else{this.vbmenu.hide(fetch_object(this.vbmenuname));var B=I.responseXML.getElementsByTagName("reputation")[0];var A=B.getAttribute("repdisplay");var G=B.getAttribute("reppower");var D=B.getAttribute("userid");var F=fetch_tags(document,"span");var E=null;for(var C=0;C=412))){this.menuobj=fetch_object(D+"_menu");this.textobj=fetch_object(A);this.textobj.setAttribute("autocomplete","off");this.textobj.onfocus=function(E){this.obj.active=true};this.textobj.onblur=function(E){this.obj.active=false};this.textobj.obj=this;this.varname=C;this.menukey=D;this.fragment="";this.donetags="";this.delimiters=new Array(",");this.selected=0;this.menuopen=false;this.timeout=null;this.tags=new Array();this.active=false;this.ajax_req=null;this.allow_multiple=false;this.min_chars=3;this.set_delimiters=function(G){this.delimiters=new Array(",");if(G){var E,F;if(E=PHP.match_all(G,"{([^}]*)}")){for(F=0;FF){F=this.textobj.value.lastIndexOf(this.delimiters[E]);G=this.delimiters[E].length}}if(F==-1){this.donetags=new String("");this.fragment=new String(this.textobj.value)}else{this.donetags=new String(this.textobj.value.substring(0,F+G));this.fragment=new String(this.textobj.value.substring(F+G))}}else{this.fragment=new String(this.textobj.value)}this.fragment=PHP.trim(this.fragment)};this.set_text=function(F){if(this.allow_multiple){var E=(this.donetags.substr(this.donetags.length-1)==" "?"":" ");this.textobj.value=PHP.ltrim(this.donetags+E+PHP.unhtmlspecialchars(this.tags[F])+", ")}else{this.textobj.value=PHP.unhtmlspecialchars(this.tags[F])}this.textobj.focus();this.menu_hide();return false};this.move_row_selection=function(E){var F=parseInt(this.selected,10)+parseInt(E,10);if(F<0){F=this.tags.length-1}else{if(F>=this.tags.length){F=0}}this.set_row_selection(F);return false};this.set_row_selection=function(E){var F=fetch_tags(this.menuobj,"td");F[this.selected].className="vbmenu_option";this.selected=E;F[this.selected].className="vbmenu_hilite"};this.key_event_handler=function(E){E=E?E:window.event;if(this.menuopen){switch(E.keyCode){case 38:this.move_row_selection(-1);return false;case 40:this.move_row_selection(1);return false;case 27:this.menu_hide();return false;case 13:this.set_text(this.selected);return false}}this.get_text();if(this.fragment.length>=this.min_chars){clearTimeout(this.timeout);this.timeout=setTimeout(this.varname+".tag_search();",500)}else{this.menu_hide()}};this.tag_search=function(){if(this.active){this.tags=new Array();this.ajax_req=YAHOO.util.Connect.asyncRequest("POST","ajax.php?do=tagsearch",{success:this.handle_ajax_response,failure:vBulletin_AJAX_Error_Handler,timeout:vB_Default_Timeout,scope:this},SESSIONURL+"securitytoken="+SECURITYTOKEN+"&do=tagsearch&fragment="+PHP.urlencode(this.fragment))}};this.handle_ajax_response=function(H){if(H.responseXML){var G=this.textobj;do{if(G.style.display=="none"){this.menu_hide();return }}while((G=G.parentNode)!=null&&G.style);var E=H.responseXML.getElementsByTagName("tag");if(E.length){for(var F=0;F'+this.tags[E].replace(F,"$1")+""}}this.menuobj.appendChild(G);if(this.vbmenu==null){if(typeof (vBmenu.menus[this.menukey])!="undefined"){this.vbmenu=vBmenu.menus[this.menukey]}else{this.vbmenu=vBmenu.register(this.menukey,true)}}else{this.vbmenu.init_menu_contents()}};this.menu_empty=function(){this.selected=0;while(this.menuobj.firstChild){this.menuobj.removeChild(this.menuobj.firstChild)}};this.menu_show=function(){if(this.active&&fetch_object(this.menukey)){this.vbmenu.show(fetch_object(this.menukey),this.menuopen);this.menuopen=true}};this.menu_hide=function(){try{this.vbmenu.hide()}catch(E){}this.menuopen=false};this.textobj.onkeyup=function(E){return this.obj.key_event_handler(E)};this.textobj.onkeypress=function(E){E=E?E:window.event;if(E.keyCode==13){return(this.obj.menuopen?false:true)}}}else{this.set_delimiters=function(E){}}}; \ No newline at end of file diff --git a/docs/radar_developmemt_files/vbulletin_ajax_threadrate.js b/docs/radar_developmemt_files/vbulletin_ajax_threadrate.js new file mode 100644 index 0000000..7afba5a --- /dev/null +++ b/docs/radar_developmemt_files/vbulletin_ajax_threadrate.js @@ -0,0 +1,11 @@ +/*======================================================================*\ +|| #################################################################### || +|| # vBulletin 3.8.2 +|| # ---------------------------------------------------------------- # || +|| # Copyright ©2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. || +|| # This file may not be redistributed in whole or significant part. # || +|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || +|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || +|| #################################################################### || +\*======================================================================*/ +function vB_AJAX_ThreadRate_Init(D){var C=fetch_object(D);if(AJAX_Compatible&&(typeof vb_disable_ajax=="undefined"||vb_disable_ajax<2)&&C){for(var B=0;B0);var is_saf=(YAHOO.env.ua.webkit>0);var is_webtv=(userAgent.indexOf("webtv")!=-1);var is_ie=((YAHOO.env.ua.ie>0)&&(!is_opera)&&(!is_saf)&&(!is_webtv));var is_ie4=(YAHOO.env.ua.ie==4);var is_ie7=(YAHOO.env.ua.ie>=7);var is_ps3=(userAgent.indexOf("playstation 3")!=-1);var is_moz=(YAHOO.env.ua.gecko>0);var is_kon=(userAgent.indexOf("konqueror")!=-1);var is_ns=((userAgent.indexOf("compatible")==-1)&&(userAgent.indexOf("mozilla")!=-1)&&(!is_opera)&&(!is_webtv)&&(!is_saf));var is_ns4=((is_ns)&&(parseInt(navigator.appVersion)==4));var is_mac=(userAgent.indexOf("mac")!=-1);var pointer_cursor=(is_ie?"hand":"pointer");String.prototype.vBlength=function(){return(is_ie&&this.indexOf("\n")!=-1)?this.replace(/\r?\n/g,"_").length:this.length};if("1234".substr(-2,2)=="12"){String.prototype.substr_orig=String.prototype.substr;String.prototype.substr=function(B,A){if(typeof (A)=="undefined"){return this.substr_orig((B<0?this.length+B:B))}else{return this.substr_orig((B<0?this.length+B:B),A)}}}if(typeof Array.prototype.shift==="undefined"){Array.prototype.shift=function(){for(var C=0,A=this[0],B=this.length-1;C2000){break}if((stopindex=PHP.stripos(F,"[/quote]"))!==false){fragment=F.substr(startindex,stopindex-startindex+8);F=F.replace(fragment,"")}else{break}F=PHP.trim(F)}}if(G){F=F.replace(/]+src="([^"]+)"[^>]*>/gi,"$1");var H=new RegExp("<(\\w+)[^>]*>","gi");var E=new RegExp("<\\/\\w+>","gi");F=F.replace(H,"");F=F.replace(E,"");var D=new RegExp("( )","gi");F=F.replace(D," ")}else{var A=new RegExp("\\[(\\w+)(=[^\\]]*)?\\]","gi");var I=new RegExp("\\[\\/(\\w+)\\]","gi");F=F.replace(A,"");F=F.replace(I,"")}return F}function vB_PHP_Emulator(){}vB_PHP_Emulator.prototype.stripos=function(A,B,C){if(typeof C=="undefined"){C=0}index=A.toLowerCase().indexOf(B.toLowerCase(),C);return(index==-1?false:index)};vB_PHP_Emulator.prototype.ltrim=function(A){return A.replace(/^\s+/g,"")};vB_PHP_Emulator.prototype.rtrim=function(A){return A.replace(/(\s+)$/g,"")};vB_PHP_Emulator.prototype.trim=function(A){return this.ltrim(this.rtrim(A))};vB_PHP_Emulator.prototype.preg_quote=function(A){return A.replace(/(\+|\{|\}|\(|\)|\[|\]|\||\/|\?|\^|\$|\\|\.|\=|\!|\<|\>|\:|\*)/g,"\\$1")};vB_PHP_Emulator.prototype.match_all=function(C,E){var A=C.match(RegExp(E,"gim"));if(A){var F=new Array();var B=new RegExp(E,"im");for(var D=0;D",'"',"&");for(var A in C){if(YAHOO.lang.hasOwnProperty(C,A)){D=D.replace(C[A],B[A])}}return D};vB_PHP_Emulator.prototype.unescape_cdata=function(C){var B=/<\=\!\=\[\=C\=D\=A\=T\=A\=\[/g;var A=/\]\=\]\=>/g;return C.replace(B,"")};vB_PHP_Emulator.prototype.htmlspecialchars=function(D){var C=new Array((is_mac&&is_ie?new RegExp("&","g"):new RegExp("&(?!#[0-9]+;)","g")),new RegExp("<","g"),new RegExp(">","g"),new RegExp('"',"g"));var B=new Array("&","<",">",""");for(var A=0;A=128){D=D.replace(B[C],"%u00"+A)}}}D=D.replace("%25","%u0025");return D};vB_PHP_Emulator.prototype.ucfirst=function(D,A){if(typeof A!="undefined"){var B=D.indexOf(A);if(B>0){D=D.substr(0,B)}}D=D.split(" ");for(var C=0;C %s",this.action);document.body.appendChild(this.form).submit()};vB_Hidden_Form.prototype.build_query_string=function(){var B="";for(var A=0;A overlay handler for '%s'.",this.overlay.id)}}vB_Select_Overlay_Handler.prototype.hide=function(){if(this.browser_affected){var C=YAHOO.util.Dom.getRegion(this.overlay);var B=document.getElementsByTagName("select");for(var A=0;A=65&&A<=90&&!C&&!B)||(A>=97&&A<=122&&C)}function log_out(B){var A=document.getElementsByTagName("html")[0];A.style.filter="progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)";if(confirm(B)){return true}else{A.style.filter="";return false}}function set_cookie(B,C,A){console.log("Set Cookie :: %s = '%s'",B,C);document.cookie=B+"="+escape(C)+"; path=/"+(typeof A!="undefined"?"; expires="+A.toGMTString():"")}function delete_cookie(A){console.log("Delete Cookie :: %s",A);document.cookie=A+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"}function fetch_cookie(A){cookie_name=A+"=";cookie_length=document.cookie.length;cookie_begin=0;while(cookie_beginA.right||B.rightA.bottom||B.bottom0){window.location=vBmenu.menus[vBmenu.activemenu].addr+"&page="+pagenum}return false};vBpagenav.prototype.ibtn_onclick=function(A){return this.form.gotopage()};vBpagenav.prototype.itxt_onkeypress=function(A){return((A?A:window.event).keyCode==13?this.form.gotopage():true)};function vbmenu_register(B,A,C){if(typeof (vBmenu)=="object"){return vBmenu.register(B,A)}else{return false}}function string_to_node(B){var A=document.createElement("div");A.innerHTML=B;var C=A.firstChild;while(C&&C.nodeType!=1){C=C.nextSibling}if(!C){return A.firstChild.cloneNode(true)}else{return C.cloneNode(true)}}function set_unselectable(B){B=YAHOO.util.Dom.get(B);if(!is_ie4&&typeof B.tagName!="undefined"){if(B.hasChildNodes()){for(var A=0;A=A){return true}else{console.warn("Checked status for %d, found %d",A,this.status);return false}};vB_Lightbox.prototype.countdown=function(A){if(!this.active){this.set_status(1,"countdown");this.cursor=YAHOO.util.Dom.getStyle(this.element,"cursor");this.element.style.cursor="wait";this.click_triggered=false;this.timeout=setTimeout("Lightboxes['"+this.uniqueid+"'].load_lightbox();",1500)}};vB_Lightbox.prototype.halt=function(A){if(this.status<2){this.set_status(0,"halt")}clearTimeout(this.timeout);this.element.style.cursor=this.cursor};vB_Lightbox.prototype.image_click=function(A){if(A.ctrlKey||A.shiftKey){return true}this.click_triggered=true;this.load_lightbox(A)};vB_Lightbox.prototype.load_lightbox=function(E){if(this.check_status(0)&&!YAHOO.util.Connect.isCallInProgress(this.ajax_req)){this.set_status(2,"load_lightbox 1");if(Lightbox_current&&Lightbox_current.loader_link){Lightbox_current.img.src=Lightbox_current.loader_link;Lightbox_current.img.width=Lightbox_current.loader_width;Lightbox_current.img.height=Lightbox_current.loader_height;center_element(Lightbox_current.lightbox)}if(E){YAHOO.util.Event.stopEvent(E)}if(this.timeout){clearTimeout(this.timeout);this.element.style.cursor=this.cursor}if(this.html==null){var A=this.element.getAttribute("href");var B=A.substr(A.indexOf("?")+1)+"&securitytoken="+SECURITYTOKEN+"&ajax=1&uniqueid="+this.uniqueid;if(Lightbox_map[this.containerid][this.uniqueid+1]==null){B=B+"&last=1"}if(Lightbox_map[this.containerid][this.uniqueid-1]==null){B=B+"&first=1"}B=B+"&total="+Lightbox_map[this.containerid].size();B=B+"¤t="+(Lightbox_map[this.containerid].find(this.uniqueid)+1);this.show_overlay();try{this.ajax_req=YAHOO.util.Connect.asyncRequest("POST",A,{success:this.handle_ajax_response,failure:this.handle_ajax_error,scope:this,timeout:vB_Default_Timeout},B)}catch(E){var D=A.substr(0,A.indexOf("?"));var C;if(C=D.match(/\/([^/]*attachment\.php)$/)){this.ajax_req=YAHOO.util.Connect.asyncRequest("POST",C[1],{success:this.handle_ajax_response,failure:this.handle_ajax_error,scope:this,timeout:vB_Default_Timeout},B)}else{if(this.click_triggered){window.location=A}}}}else{this.set_status(3,"load_lightbox 2");this.show_lightbox()}}};vB_Lightbox.prototype.handle_ajax_error=function(A){vBulletin_AJAX_Error_Handler(A);if(this.click_triggered){window.location=this.element.getAttribute("href")}};vB_Lightbox.prototype.handle_ajax_response=function(C){if(!this.check_status(2)){return }if(C.responseXML){var E=C.responseXML.getElementsByTagName("error");if(E.length){this.set_status(0,"handle_ajax_response - error");if(E[0].firstChild.nodeValue=="notimage"){console.warn("Attempted to load non-image (.%s) into lightbox. Aborted.",C.responseXML.getElementsByTagName("extension")[0].firstChild.nodeValue)}else{alert(E[0].firstChild.nodeValue.replace(/<(\/|[a-z]+)[^>]+>/g,""))}return false}var B=C.responseXML.getElementsByTagName("link");if(B.length){this.set_status(3,"handle_ajax_response - success");this.show_overlay();this.link=B[0].firstChild.nodeValue;this.imageloader=new Image();YAHOO.util.Event.on(this.imageloader,"load",this.show_lightbox,this,true);var D=new Array("date","time","name","html");for(var A=0;AC.w-this.minborder){A=C.w-this.minborder;A=(AC.h-this.minborder){B=C.h-this.minborder;B=(B=document.body.clientWidth&&(this.leftpx+A.offsetWidth-this.menuobj.offsetWidth)>0){this.leftpx=this.leftpx+A.offsetWidth-this.menuobj.offsetWidth;this.direction="right"}else{this.direction="left"}if(this.controlkey.match(/^pagenav\.\d+$/)){A.appendChild(this.menuobj)}this.menuobj.style.left=this.leftpx+"px";this.menuobj.style.top=this.toppx+"px"};vB_Popup_Menu.prototype.hide=function(A){if(A&&A.button&&A.button!=1){return true}console.log("vBmenu :: Hide '%s'",this.controlkey);this.stop_slide();this.menuobj.style.display="none";this.select_handler.show();if(this.controlobj.editorid){this.controlobj.state=false;vB_Editor[this.controlobj.editorid].menu_context(this.controlobj,"mouseout")}vBmenu.activemenu=null;vBulletin.events["vBmenuHide_"+this.controlkey].fire(this.controlkey);vBulletin.events.vBmenuHide.fire(this.controlkey)};vB_Popup_Menu.prototype.hover=function(A){if(vBmenu.activemenu!=null){if(vBmenu.menus[vBmenu.activemenu].controlkey!=this.id){this.show(A,true)}}};vB_Popup_Menu.prototype.slide=function(C,B,A){if(this.direction=="left"&&(C0||B-1?true:false))}}}function mq_click(F){var D=fetch_cookie("vbulletin_multiquote");var B=new Array();var E=false;if(D!=null&&D!=""){D=D.split(",");for(C in D){if(!YAHOO.lang.hasOwnProperty(D,C)){continue}if(D[C]==F){E=true}else{if(D[C]){B.push(D[C])}}}}change_mq_image(F,(E?false:true));if(!E){B.push(F);if(typeof mqlimit!="undefined"&&mqlimit>0){for(var C=0;C<(B.length-mqlimit);C++){var A=B.shift();change_mq_image(A,false)}}}set_cookie("vbulletin_multiquote",B.join(","));return false}function change_mq_image(C,B){var A=fetch_object("mq_"+C);if(A){if(B==true){A.src=A.src.replace(/\/multiquote_off\.([a-zA-Z0-9]+)$/,"/multiquote_on.$1")}else{A.src=A.src.replace(/\/multiquote_on\.([a-zA-Z0-9]+)$/,"/multiquote_off.$1")}}}mq_init(fetch_object("posts")); \ No newline at end of file diff --git a/docs/radar_developmemt_files/vbulletin_post_loader.js b/docs/radar_developmemt_files/vbulletin_post_loader.js new file mode 100644 index 0000000..40df979 --- /dev/null +++ b/docs/radar_developmemt_files/vbulletin_post_loader.js @@ -0,0 +1,11 @@ +/*======================================================================*\ +|| #################################################################### || +|| # vBulletin 3.8.2 +|| # ---------------------------------------------------------------- # || +|| # Copyright ©2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. || +|| # This file may not be redistributed in whole or significant part. # || +|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || +|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || +|| #################################################################### || +\*======================================================================*/ +function display_post(A){if(AJAX_Compatible){vB_PostLoader[A]=new vB_AJAX_PostLoader(A);vB_PostLoader[A].init()}else{pc_obj=fetch_object("postcount"+this.postid);openWindow("showpost.php?"+(SESSIONURL?"s="+SESSIONURL:"")+(pc_obj!=null?"&postcount="+PHP.urlencode(pc_obj.name):"")+"&p="+A)}return false}var vB_PostLoader=new Array();function vB_AJAX_PostLoader(A){this.postid=A;this.container=fetch_object("edit"+this.postid)}vB_AJAX_PostLoader.prototype.init=function(){if(this.container){postid=this.postid;pc_obj=fetch_object("postcount"+this.postid);YAHOO.util.Connect.asyncRequest("POST","showpost.php?p="+this.postid,{success:this.display,failure:this.handle_ajax_error,timeout:vB_Default_Timeout,scope:this},SESSIONURL+"securitytoken="+SECURITYTOKEN+"&ajax=1&postid="+this.postid+(pc_obj!=null?"&postcount="+PHP.urlencode(pc_obj.name):""))}};vB_AJAX_PostLoader.prototype.handle_ajax_error=function(A){vBulletin_AJAX_Error_Handler(A)};vB_AJAX_PostLoader.prototype.display=function(A){if(A.responseXML){var B=A.responseXML.getElementsByTagName("postbit");if(B.length){this.container.innerHTML=B[0].firstChild.nodeValue;PostBit_Init(fetch_object("post"+this.postid),this.postid)}else{openWindow("showpost.php?"+(SESSIONURL?"s="+SESSIONURL:"")+(pc_obj!=null?"&postcount="+PHP.urlencode(pc_obj.name):"")+"&p="+this.postid)}}}; \ No newline at end of file diff --git a/docs/radar_developmemt_files/vbulletin_quick_edit.js b/docs/radar_developmemt_files/vbulletin_quick_edit.js new file mode 100644 index 0000000..c6978d4 --- /dev/null +++ b/docs/radar_developmemt_files/vbulletin_quick_edit.js @@ -0,0 +1,11 @@ +/*======================================================================*\ +|| #################################################################### || +|| # vBulletin 3.8.2 +|| # ---------------------------------------------------------------- # || +|| # Copyright ©2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. || +|| # This file may not be redistributed in whole or significant part. # || +|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || +|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || +|| #################################################################### || +\*======================================================================*/ +function vB_AJAX_QuickEdit_Init(C){if(AJAX_Compatible){if(typeof C=="string"){C=fetch_object(C)}var B=fetch_tags(C,"a");for(var A=0;A0){return true}var B=A.substr(A.lastIndexOf("::")+2);if(YAHOO.util.Connect.isCallInProgress(this.ajax_req)){return false}else{if(!this.ready()){if(this.postid==B){this.full_edit();return false}this.abort()}}this.editorcounter++;this.editorid="vB_Editor_QE_"+this.editorcounter;this.postid=B;this.messageobj=fetch_object("post_message_"+this.postid);this.originalhtml=this.messageobj.innerHTML;this.unchanged=null;this.unchanged_reason=null;this.fetch_editor();this.editstate=true;return false};vB_AJAX_QuickEditor.prototype.fetch_editor=function(){if(fetch_object("progress_"+this.postid)){fetch_object("progress_"+this.postid).style.display=""}document.body.style.cursor="wait";YAHOO.util.Connect.asyncRequest("POST","ajax.php?do=quickedit&p="+this.postid,{success:this.display_editor,failure:this.error_opening_editor,timeout:vB_Default_Timeout,scope:this},SESSIONURL+"securitytoken="+SECURITYTOKEN+"&do=quickedit&p="+this.postid+"&editorid="+PHP.urlencode(this.editorid))};vB_AJAX_QuickEditor.prototype.error_opening_editor=function(A){vBulletin_AJAX_Error_Handler(A);window.location="editpost.php?"+SESSIONURL+"do=editpost&postid="+this.postid};vB_AJAX_QuickEditor.prototype.handle_save_error=function(A){vBulletin_AJAX_Error_Handler(A);this.show_advanced=false;this.full_edit()};vB_AJAX_QuickEditor.prototype.display_editor=function(C){if(C.responseXML){if(fetch_object("progress_"+vB_QuickEditor.postid)){fetch_object("progress_"+vB_QuickEditor.postid).style.display="none"}document.body.style.cursor="auto";if(fetch_tag_count(C.responseXML,"disabled")){window.location="editpost.php?"+SESSIONURL+"do=editpost&postid="+this.postid}else{if(fetch_tag_count(C.responseXML,"error")){}else{var B=fetch_tags(C.responseXML,"editor")[0];if(typeof B=="undefined"){window.location="editpost.php?"+SESSIONURL+"do=editpost&postid="+this.postid;return false}var D=B.getAttribute("reason");this.messageobj.innerHTML=B.firstChild.nodeValue;if(fetch_object(this.editorid+"_edit_reason")){this.unchanged_reason=PHP.unhtmlspecialchars(D);fetch_object(this.editorid+"_edit_reason").value=this.unchanged_reason;fetch_object(this.editorid+"_edit_reason").onkeypress=vB_AJAX_QuickEditor_Events.prototype.reason_key_trap}vB_Editor[this.editorid]=new vB_Text_Editor(this.editorid,B.getAttribute("mode"),B.getAttribute("parsetype"),B.getAttribute("parsesmilies"));if(fetch_object(this.editorid+"_editor")&&fetch_object(this.editorid+"_editor").scrollIntoView){fetch_object(this.editorid+"_editor").scrollIntoView(true)}vB_Editor[this.editorid].set_editor_width("100%",true);vB_Editor[this.editorid].check_focus();this.unchanged=vB_Editor[this.editorid].get_editor_contents();fetch_object(this.editorid+"_save").onclick=this.save;fetch_object(this.editorid+"_abort").onclick=this.abort;fetch_object(this.editorid+"_adv").onclick=this.full_edit;var A=fetch_object(this.editorid+"_delete");if(A){A.onclick=this.show_delete}}}}};vB_AJAX_QuickEditor.prototype.restore=function(B,A){this.hide_errors(true);if(this.editorid&&vB_Editor[this.editorid]&&vB_Editor[this.editorid].initialized){vB_Editor[this.editorid].destroy()}if(A=="tableobj"){fetch_object("edit"+this.postid).innerHTML=B}else{this.messageobj.innerHTML=B}this.editstate=false};vB_AJAX_QuickEditor.prototype.abort=function(A){if(fetch_object("progress_"+vB_QuickEditor.postid)){fetch_object("progress_"+vB_QuickEditor.postid).style.display="none"}document.body.style.cursor="auto";vB_QuickEditor.restore(vB_QuickEditor.originalhtml,"messageobj");PostBit_Init(fetch_object("post"+vB_QuickEditor.postid),vB_QuickEditor.postid)};vB_AJAX_QuickEditor.prototype.full_edit=function(B){var A=new vB_Hidden_Form("editpost.php?do=updatepost&postid="+vB_QuickEditor.postid);A.add_variable("do","updatepost");A.add_variable("s",fetch_sessionhash());A.add_variable("securitytoken",SECURITYTOKEN);if(vB_QuickEditor.show_advanced){A.add_variable("advanced",1)}else{A.add_variable("quickeditnoajax",1)}A.add_variable("postid",vB_QuickEditor.postid);A.add_variable("wysiwyg",vB_Editor[vB_QuickEditor.editorid].wysiwyg_mode);A.add_variable("message",vB_Editor[vB_QuickEditor.editorid].get_editor_contents());A.add_variable("reason",fetch_object(vB_QuickEditor.editorid+"_edit_reason").value);A.submit_form()};vB_AJAX_QuickEditor.prototype.save=function(B){var C=vB_Editor[vB_QuickEditor.editorid].get_editor_contents();var A=vB_Editor[vB_QuickEditor.editorid];if(C==vB_QuickEditor.unchanged&&A==vB_QuickEditor.unchanged_reason){vB_QuickEditor.abort(B)}else{fetch_object(vB_QuickEditor.editorid+"_posting_msg").style.display="";document.body.style.cursor="wait";pc_obj=fetch_object("postcount"+vB_QuickEditor.postid);this.ajax_req=YAHOO.util.Connect.asyncRequest("POST","editpost.php?do=updatepost&postid="+this.postid,{success:vB_QuickEditor.update,failure:vB_QuickEditor.handle_save_error,timeout:vB_Default_Timeout,scope:vB_QuickEditor},SESSIONURL+"securitytoken="+SECURITYTOKEN+"&do=updatepost&ajax=1&postid="+vB_QuickEditor.postid+"&wysiwyg="+vB_Editor[vB_QuickEditor.editorid].wysiwyg_mode+"&message="+PHP.urlencode(C)+"&reason="+PHP.urlencode(fetch_object(vB_QuickEditor.editorid+"_edit_reason").value)+(pc_obj!=null?"&postcount="+PHP.urlencode(pc_obj.name):""));vB_QuickEditor.pending=true}};vB_AJAX_QuickEditor.prototype.show_delete=function(){vB_QuickEditor.deletedialog=fetch_object("quickedit_delete");if(vB_QuickEditor.deletedialog&&vB_QuickEditor.deletedialog.style.display!=""){vB_QuickEditor.deletedialog.style.display="";vB_QuickEditor.deletebutton=fetch_object("quickedit_dodelete");vB_QuickEditor.deletebutton.onclick=vB_QuickEditor.delete_post;if(fetch_object("del_reason")){fetch_object("del_reason").onkeypress=vB_AJAX_QuickEditor_Events.prototype.delete_items_key_trap}if(!is_opera&&!is_saf){vB_QuickEditor.deletebutton.disabled=true;vB_QuickEditor.deleteoptions=new Array();vB_QuickEditor.deleteoptions.leave=fetch_object("rb_del_leave");vB_QuickEditor.deleteoptions.soft=fetch_object("rb_del_soft");vB_QuickEditor.deleteoptions.hard=fetch_object("rb_del_hard");for(var A in vB_QuickEditor.deleteoptions){if(YAHOO.lang.hasOwnProperty(vB_QuickEditor.deleteoptions,A)&&vB_QuickEditor.deleteoptions[A]){vB_QuickEditor.deleteoptions[A].onclick=vB_QuickEditor.deleteoptions[A].onchange=vB_AJAX_QuickEditor_Events.prototype.delete_button_handler;vB_QuickEditor.deleteoptions[A].onkeypress=vB_AJAX_QuickEditor_Events.prototype.delete_items_key_trap}}}}};vB_AJAX_QuickEditor.prototype.delete_post=function(){var A=fetch_object("rb_del_leave");if(A&&A.checked){vB_QuickEditor.abort();return }var B=new vB_Hidden_Form("editpost.php");B.add_variable("do","deletepost");B.add_variable("s",fetch_sessionhash());B.add_variable("securitytoken",SECURITYTOKEN);B.add_variable("postid",vB_QuickEditor.postid);B.add_variables_from_object(vB_QuickEditor.deletedialog);B.submit_form()};vB_AJAX_QuickEditor.prototype.update=function(C){if(C.responseXML){vB_QuickEditor.pending=false;document.body.style.cursor="auto";fetch_object(vB_QuickEditor.editorid+"_posting_msg").style.display="none";if(fetch_tag_count(C.responseXML,"error")){var D=fetch_tags(C.responseXML,"error");var A="
      ";for(var B=0;B"+D[B].firstChild.nodeValue+""}A+="
    ";vB_QuickEditor.show_errors("
      "+A+"
    ")}else{vB_QuickEditor.restore(C.responseXML.getElementsByTagName("postbit")[0].firstChild.nodeValue,"tableobj");PostBit_Init(fetch_object("post"+vB_QuickEditor.postid),vB_QuickEditor.postid)}}return false};vB_AJAX_QuickEditor.prototype.show_errors=function(A){set_unselectable("ajax_post_errors_closebtn");fetch_object("ajax_post_errors_message").innerHTML=A;var B=fetch_object("ajax_post_errors");B.style.width="400px";B.style.zIndex=500;var C=(is_saf?"body":"documentElement");B.style.left=(is_ie?document.documentElement.clientWidth:self.innerWidth)/2-200+document[C].scrollLeft+"px";B.style.top=(is_ie?document.documentElement.clientHeight:self.innerHeight)/2-150+document[C].scrollTop+"px";B.style.display=""};vB_AJAX_QuickEditor.prototype.hide_errors=function(A){this.errors=false;fetch_object("ajax_post_errors").style.display="none";if(A!=true){vB_Editor[this.editorid].check_focus()}};function vB_AJAX_QuickEditor_Events(){}vB_AJAX_QuickEditor_Events.prototype.editbutton_click=function(A){return vB_QuickEditor.edit(this.name)};vB_AJAX_QuickEditor_Events.prototype.delete_button_handler=function(A){if(this.id=="rb_del_leave"&&this.checked){vB_QuickEditor.deletebutton.disabled=true}else{vB_QuickEditor.deletebutton.disabled=false}};vB_AJAX_QuickEditor_Events.prototype.reason_key_trap=function(A){A=A?A:window.event;switch(A.keyCode){case 9:fetch_object(vB_QuickEditor.editorid+"_save").focus();return false;break;case 13:vB_QuickEditor.save();return false;break;default:return true}};vB_AJAX_QuickEditor_Events.prototype.delete_items_key_trap=function(A){A=A?A:window.event;if(A.keyCode==13){if(vB_QuickEditor.deletebutton.disabled==false){vB_QuickEditor.delete_post()}return false}return true};var vB_QuickEditor=new vB_AJAX_QuickEditor(); \ No newline at end of file diff --git a/docs/radar_developmemt_files/vbulletin_quick_reply.js b/docs/radar_developmemt_files/vbulletin_quick_reply.js new file mode 100644 index 0000000..c1935be --- /dev/null +++ b/docs/radar_developmemt_files/vbulletin_quick_reply.js @@ -0,0 +1,11 @@ +/*======================================================================*\ +|| #################################################################### || +|| # vBulletin 3.8.2 +|| # ---------------------------------------------------------------- # || +|| # Copyright ©2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. || +|| # This file may not be redistributed in whole or significant part. # || +|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || +|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || +|| #################################################################### || +\*======================================================================*/ +var qr_repost=false;var qr_errors_shown=false;var qr_active=false;var qr_ajax=null;var clickedelm=false;function qr_init(){qr_disable_controls();qr_init_buttons(fetch_object("posts"))}function qr_init_buttons(C){var B=fetch_tags(C,"a");for(var A=0;A0){return true}if(is_ie&&userAgent.indexOf("msie 5.")!=-1){if(PHP.urlencode(D.message.value).indexOf("%u")!=-1){return true}}if(YAHOO.util.Connect.isCallInProgress(qr_ajax)){return false}if(clickedelm==D.preview.value){return true}else{var E="ajax=1";if(typeof ajax_last_post!="undefined"){E+="&ajax_lastpost="+PHP.urlencode(ajax_last_post)}for(var C=0;C"+H[D].firstChild.nodeValue+""}F+="";qr_show_errors("
      "+F+"
    ");return false}}qr_resubmit()}}else{qr_resubmit()}}function qr_show_errors(A){qr_errors_shown=true;fetch_object("qr_error_td").innerHTML=A;fetch_object("qr_error_tbody").style.display="";vB_Editor[QR_EditorID].check_focus();return false}function qr_hide_errors(){if(qr_errors_shown){qr_errors_shown=true;fetch_object("qr_error_tbody").style.display="none";return false}}var vB_QuickReply=true; \ No newline at end of file diff --git a/docs/radar_developmemt_files/vbulletin_textedit.js b/docs/radar_developmemt_files/vbulletin_textedit.js new file mode 100644 index 0000000..aa3dc91 --- /dev/null +++ b/docs/radar_developmemt_files/vbulletin_textedit.js @@ -0,0 +1,11 @@ +/*======================================================================*\ +|| #################################################################### || +|| # vBulletin 3.8.2 +|| # ---------------------------------------------------------------- # || +|| # Copyright ©2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. || +|| # This file may not be redistributed in whole or significant part. # || +|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || +|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || +|| #################################################################### || +\*======================================================================*/ +function vB_Text_Editor(editorid,mode,parsetype,parsesmilies,initial_text,ajax_extra){this.editorid=editorid;this.wysiwyg_mode=parseInt(mode,10)?1:0;this.initialized=false;this.parsetype=(typeof parsetype=="undefined"?"nonforum":parsetype);this.ajax_extra=(typeof parsetype=="undefined"?"":ajax_extra);this.parsesmilies=(typeof parsesmilies=="undefined"?1:parsesmilies);this.popupmode=(typeof vBmenu=="undefined"?false:true);this.controlbar=fetch_object(this.editorid+"_controls");this.textobj=fetch_object(this.editorid+"_textarea");this.buttons=new Array();this.popups=new Array();this.prompt_popup=null;this.fontstate=null;this.sizestate=null;this.colorstate=null;this.clipboard="";this.disabled=false;this.history=new vB_History();this.influx=0;this.allowbasicbbcode=((typeof allowbasicbbcode!="undefined"&&allowbasicbbcode)?true:false);this.ltr=((typeof ltr!="undefined"&<r=="right")?"right":"left");this.init=function(){if(this.initialized){return }this.textobj.disabled=false;if(this.tempiframe){this.tempiframe.parentNode.removeChild(this.tempiframe)}this.set_editor_contents(initial_text);this.set_editor_functions();this.init_controls();this.init_smilies(fetch_object(this.editorid+"_smiliebox"));if(typeof smilie_window!="undefined"&&!smilie_window.closed){this.init_smilies(smilie_window.document.getElementById("smilietable"))}this.captcha=document.getElementById("imagestamp");if(this.captcha!=null){this.captcha.setAttribute("tabIndex",1)}this.initialized=true};this.check_focus=function(){if(!this.editwin.hasfocus||(is_moz&&is_mac)){this.editwin.focus();if(is_opera){this.editwin.focus()}}};this.init_controls=function(){var controls=new Array();var i,j,buttons,imgs,control;if(this.controlbar==null){return }buttons=fetch_tags(this.controlbar,"div");for(i=0;i10?(fontoptions[i].substr(0,10)+"..."):fontoptions[i]);sel.add(opt,is_ie?sel.options.length:null)}sel.onchange=vB_Text_Editor_Events.prototype.formatting_select_onchange;break;case"fontsize":for(i=0;i5?(coloroptions[i].substr(0,5)+"..."):coloroptions[i]).replace(new RegExp("([A-Z])","g")," $1"));opt.style.backgroundColor=i;sel.add(opt,is_ie?sel.options.length:null)}}sel.onchange=vB_Text_Editor_Events.prototype.formatting_select_onchange;break;case"smilie":for(var cat in smilieoptions){if(!YAHOO.lang.hasOwnProperty(smilieoptions,cat)){continue}for(var smilieid in smilieoptions[cat]){if(!YAHOO.lang.hasOwnProperty(smilieoptions[cat],smilieid)){continue}if(smilieid!="more"){opt=document.createElement("option");opt.value=smilieoptions[cat][smilieid][1];opt.text=smilieoptions[cat][smilieid][1];opt.smilieid=smilieid;opt.smiliepath=smilieoptions[cat][smilieid][0];opt.smilietitle=smilieoptions[cat][smilieid][2];sel.add(opt,is_ie?sel.options.length:null)}}}sel.onchange=vB_Text_Editor_Events.prototype.smilieselect_onchange;break;case"attach":sel.onmouseover=vB_Text_Editor_Events.prototype.attachselect_onmouseover;sel.onchange=vB_Text_Editor_Events.prototype.attachselect_onchange;break}while(obj.hasChildNodes()){obj.removeChild(obj.firstChild)}this.buttons[obj.cmd]=obj.appendChild(sel)};this.init_popup_menu=function(obj){if(this.disabled){return false}var menu;switch(obj.cmd){case"fontname":menu=this.init_menu_container("fontname","200px","250px","auto");this.build_fontname_popup(obj,menu);break;case"fontsize":menu=this.init_menu_container("fontsize","auto","auto","visible");this.build_fontsize_popup(obj,menu);break;case"forecolor":menu=this.init_menu_container("forecolor","auto","auto","visible");this.build_forecolor_popup(obj,menu);break;case"smilie":menu=this.init_menu_container("smilie","175px","250px","auto");this.build_smilie_popup(obj,menu);break;case"attach":if(typeof vB_Attachments!="undefined"&&vB_Attachments.has_attachments()){menu=this.init_menu_container("attach","auto","auto","visible");this.build_attachments_popup(menu,obj)}else{fetch_object("manage_attachments_button").onclick();return false}}this.popups[obj.cmd]=this.controlbar.appendChild(menu);set_unselectable(menu);return true};this.init_menu_container=function(cmd,width,height,overflow){var menu=document.createElement("div");menu.id=this.editorid+"_popup_"+cmd+"_menu";menu.className="vbmenu_popup";menu.style.display="none";menu.style.cursor="default";menu.style.padding="3px";menu.style.width=width;menu.style.height=height;menu.style.overflow=overflow;return menu};this.build_fontname_popup=function(obj,menu){for(var n in fontoptions){if(YAHOO.lang.hasOwnProperty(fontoptions,n)){var option=document.createElement("div");option.innerHTML=''+fontoptions[n]+"";option.className="ofont";option.style.textAlign="left";option.title=fontoptions[n];option.cmd=obj.cmd;option.controlkey=obj.id;option.editorid=this.editorid;option.onmouseover=option.onmouseout=option.onmouseup=option.onmousedown=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;option.onclick=vB_Text_Editor_Events.prototype.formatting_option_onclick;menu.appendChild(option)}}};this.build_fontsize_popup=function(obj,menu){for(var n in sizeoptions){if(YAHOO.lang.hasOwnProperty(sizeoptions,n)){var option=document.createElement("div");option.innerHTML=''+sizeoptions[n]+"";option.className="osize";option.style.textAlign="center";option.title=sizeoptions[n];option.cmd=obj.cmd;option.controlkey=obj.id;option.editorid=this.editorid;option.onmouseover=option.onmouseout=option.onmouseup=option.onmousedown=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;option.onclick=vB_Text_Editor_Events.prototype.formatting_option_onclick;menu.appendChild(option)}}};this.build_forecolor_popup=function(obj,menu){var colorout=fetch_object(this.editorid+"_color_out");colorout.editorid=this.editorid;colorout.onclick=vB_Text_Editor_Events.prototype.colorout_onclick;var table=document.createElement("table");table.cellPadding=0;table.cellSpacing=0;table.border=0;var i=0;for(var hex in coloroptions){if(!YAHOO.lang.hasOwnProperty(coloroptions,hex)){continue}if(i%8==0){var tr=table.insertRow(-1)}i++;var div=document.createElement("div");div.style.backgroundColor=coloroptions[hex];var option=tr.insertCell(-1);option.style.textAlign="center";option.className="ocolor";option.appendChild(div);option.cmd=obj.cmd;option.editorid=this.editorid;option.controlkey=obj.id;option.colorname=coloroptions[hex];option.id=this.editorid+"_color_"+coloroptions[hex];option.onmouseover=option.onmouseout=option.onmouseup=option.onmousedown=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;option.onclick=vB_Text_Editor_Events.prototype.coloroption_onclick}menu.appendChild(table)};this.build_smilie_popup=function(obj,menu){for(var cat in smilieoptions){if(!YAHOO.lang.hasOwnProperty(smilieoptions,cat)){continue}var option;var category=document.createElement("div");category.className="thead";category.innerHTML=cat;menu.appendChild(category);for(var smilieid in smilieoptions[cat]){if(!YAHOO.lang.hasOwnProperty(smilieoptions[cat],smilieid)){continue}if(smilieid=="more"){option=document.createElement("div");option.className="thead";option.innerHTML=smilieoptions[cat][smilieid];option.style.cursor=pointer_cursor;option.editorid=this.editorid;option.controlkey=obj.id;option.onclick=vB_Text_Editor_Events.prototype.smiliemore_onclick}else{option=document.createElement("div");option.editorid=this.editorid;option.controlkey=obj.id;option.smilieid=smilieid;option.smilietext=smilieoptions[cat][smilieid][1];option.smilietitle=smilieoptions[cat][smilieid][2];option.className="osmilie";option.innerHTML=''+PHP.htmlspecialchars(smilieoptions[cat][smilieid][2])+' '+PHP.htmlspecialchars(smilieoptions[cat][smilieid][2]);option.onmouseover=option.onmouseout=option.onmousedown=option.onmouseup=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;option.onclick=vB_Text_Editor_Events.prototype.smilieoption_onclick}menu.appendChild(option)}}};this.build_attachments_popup=function(menu,obj){var id,div;if(this.popupmode){while(menu.hasChildNodes()){menu.removeChild(menu.firstChild)}div=document.createElement("div");div.editorid=this.editorid;div.controlkey=obj.id;div.className="thead";div.style.cursor=pointer_cursor;div.style.whiteSpace="nowrap";div.innerHTML=fetch_object("manage_attachments_button").value;div.title=fetch_object("manage_attachments_button").title;div.onclick=vB_Text_Editor_Events.prototype.attachmanage_onclick;menu.appendChild(div);var attach_count=0;for(id in vB_Attachments.attachments){if(!YAHOO.lang.hasOwnProperty(vB_Attachments.attachments,id)){continue}div=document.createElement("div");div.editorid=this.editorid;div.controlkey=obj.id;div.className="osmilie";div.attachmentid=id;div.style.whiteSpace="nowrap";div.innerHTML=' '+vB_Attachments.attachments[id]["filename"];div.onmouseover=div.onmouseout=div.onmousedown=div.onmouseup=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;div.onclick=vB_Text_Editor_Events.prototype.attachoption_onclick;menu.appendChild(div);attach_count++}if(attach_count>1){div=document.createElement("div");div.editorid=this.editorid;div.controlkey=obj.id;div.className="osmilie";div.style.fontWeight="bold";div.style.paddingLeft="25px";div.style.whiteSpace="nowrap";div.innerHTML=vbphrase.insert_all;div.onmouseover=div.onmouseout=div.onmousedown=div.onmouseup=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;div.onclick=vB_Text_Editor_Events.prototype.attachinsertall_onclick;menu.appendChild(div)}}else{while(menu.options.length>2){menu.remove(menu.options.length-1)}for(id in vB_Attachments.attachments){if(!YAHOO.lang.hasOwnProperty(vB_Attachments.attachments,id)){continue}var opt=document.createElement("option");opt.value=id;opt.text=vB_Attachments.attachments[id]["filename"];menu.add(opt,is_ie?menu.options.length:null)}}set_unselectable(menu)};this.menu_context=function(obj,state){if(this.disabled){return }switch(obj.state){case true:this.set_control_style(obj,"button","down");break;default:switch(state){case"mouseout":this.set_control_style(obj,"button","normal");break;case"mousedown":this.set_control_style(obj,"popup","down");break;case"mouseup":case"mouseover":this.set_control_style(obj,"button","hover");break}}};this.button_context=function(obj,state,controltype){if(this.disabled){return }if(typeof controltype=="undefined"){controltype="button"}switch(obj.state){case true:switch(state){case"mouseover":case"mousedown":case"mouseup":this.set_control_style(obj,controltype,"down");break;case"mouseout":this.set_control_style(obj,controltype,"selected");break}break;default:switch(state){case"mouseover":case"mouseup":this.set_control_style(obj,controltype,"hover");break;case"mousedown":this.set_control_style(obj,controltype,"down");break;case"mouseout":this.set_control_style(obj,controltype,"normal");break}break}};this.set_control_style=function(obj,controltype,mode){if(obj.mode!=mode){obj.mode=mode;istyle="pi_"+controltype+"_"+obj.mode;if(typeof istyles!="undefined"&&typeof istyles[istyle]!="undefined"){obj.style.background=istyles[istyle][0];obj.style.color=istyles[istyle][1];if(controltype!="menu"){obj.style.padding=istyles[istyle][2]}obj.style.border=istyles[istyle][3];var tds=fetch_tags(obj,"td");for(var i=0;i=7){var base_tag=fetch_tags(document,"base");var modal_prefix;if(base_tag&&base_tag[0]&&base_tag[0].href){modal_prefix=base_tag[0].href}else{modal_prefix=""}returnvalue=window.showModalDialog(modal_prefix+"clientscript/ieprompt.html?",{value:defaultval,label:dialogtxt,dir:document.dir,title:document.title,forceltr:(typeof (forceltr)!="undefined"?forceltr:false)},"dialogWidth:320px; dialogHeight:150px; dialogTop:"+(parseInt(window.screenTop)+parseInt(window.event.clientY)+parseInt(document.body.scrollTop)-100)+"px; dialogLeft:"+(parseInt(window.screenLeft)+parseInt(window.event.clientX)+parseInt(document.body.scrollLeft)-160)+"px; resizable: No;")}else{returnvalue=prompt(dialogtxt,defaultval)}if(typeof (returnvalue)=="undefined"){return false}else{if(returnvalue==false||returnvalue==null){return returnvalue}else{return PHP.trim(new String(returnvalue))}}};this.verify_prompt=function(str){switch(str){case"http://":case"null":case"undefined":case"false":case"":case null:case false:return false;default:return str}};this.open_smilie_window=function(width,height){smilie_window=openWindow("misc.php?"+SESSIONURL+"do=getsmilies&editorid="+this.editorid,width,height,"smilie_window");window.onunload=vB_Text_Editor_Events.prototype.smiliewindow_onunload};this.resize_editor=function(change){var newheight=parseInt(this.editbox.style.height,10)+change;if(newheight>=60){this.editbox.style.height=newheight+"px";if(change%99!=0){set_cookie("editor_height",newheight)}}};this.destroy_popup=function(popupname){this.popups[popupname].parentNode.removeChild(this.popups[popupname]);this.popups[popupname]=null};this.destroy=function(){var i;for(i in this.buttons){if(YAHOO.lang.hasOwnProperty(this.buttons,i)){this.set_control_style(this.buttons[i],"button","normal")}}for(var menu in this.popups){if(YAHOO.lang.hasOwnProperty(this.popups,menu)){this.destroy_popup(menu)}}if(this.fontoptions){for(i in this.fontoptions){if(YAHOO.lang.hasOwnProperty(this.fontoptions,i)&&i!=""){this.fontoptions[i].parentNode.removeChild(this.fontoptions[i])}}this.fontoptions[""].style.display=""}if(this.sizeoptions){for(i in this.sizeoptions){if(YAHOO.lang.hasOwnProperty(this.sizeoptions,i)&&i!=""){this.sizeoptions[i].parentNode.removeChild(this.sizeoptions[i])}}this.sizeoptions[""].style.display=""}};this.collapse_selection_end=function(){var range;if(this.editdoc.selection){range=this.editdoc.selection.createRange();eval("range.move('character', -1);");range.collapse(false);range.select()}else{if(document.selection&&document.selection.createRange){range=document.selection.createRange();range.collapse(false);range.select()}else{if(typeof (this.editdoc.selectionStart)!="undefined"){var sel_text=this.editdoc.value.substr(this.editdoc.selectionStart,this.editdoc.selectionEnd-this.editdoc.selectionStart);this.editdoc.selectionStart=this.editdoc.selectionStart+sel_text.vBlength()}else{if(window.getSelection){}}}}};if(this.wysiwyg_mode){this.disable_editor=function(text){if(!this.disabled){this.disabled=true;var hider=fetch_object(this.editorid+"_hider");if(hider){hider.parentNode.removeChild(hider)}var div=document.createElement("div");div.id=this.editorid+"_hider";div.className="wysiwyg";div.style.border="2px inset";div.style.margin="0px";div.style.padding="0px";div.style.width=this.editbox.style.width;div.style.height=this.editbox.style.height;var childdiv=document.createElement("div");childdiv.style.margin="8px";childdiv.innerHTML=text;div.appendChild(childdiv);this.editbox.parentNode.appendChild(div);this.editbox.style.width="0px";this.editbox.style.height="0px";this.editbox.style.border="none"}};this.enable_editor=function(text){if(typeof text!="undefined"){this.set_editor_contents(text)}var hider=fetch_object(this.editorid+"_hider");if(hider){hider.parentNode.removeChild(hider)}this.disabled=false};this.write_editor_contents=function(text,doinit){if(text==""){if(is_ie){text="

    "}else{if(is_moz){text="
    "}}}if(this.editdoc&&this.editdoc.initialized){this.editdoc.body.innerHTML=text}else{this.editdoc=this.editwin.document;this.editdoc.open("text/html","replace");this.editdoc.write(text);this.editdoc.close();if(doinit){if(is_moz){this.editdoc.designMode="on"}else{this.editdoc.body.contentEditable=true}}this.editdoc.body.spellcheck=true;this.editdoc.initialized=true;this.set_editor_style()}this.set_direction()};this.set_editor_contents=function(initial_text){if(fetch_object(this.editorid+"_iframe")){this.editbox=fetch_object(this.editorid+"_iframe")}else{var iframe=document.createElement("iframe");if(is_ie&&window.location.protocol=="https:"){iframe.src="clientscript/index.html"}this.editbox=this.textobj.parentNode.appendChild(iframe);this.editbox.id=this.editorid+"_iframe";this.editbox.tabIndex=1}if(!is_ie){this.editbox.style.border="2px inset"}this.set_editor_width(typeof (this.textobj.style.oWidth)!="undefined"?this.textobj.style.oWidth:this.textobj.style.width);this.editbox.style.height=this.textobj.style.height;this.textobj.style.display="none";this.editwin=this.editbox.contentWindow;this.editdoc=this.editwin.document;this.write_editor_contents((typeof initial_text=="undefined"?this.textobj.value:initial_text),true);if(this.editdoc.dir=="rtl"){}this.spellobj=this.editdoc.body;this.editdoc.editorid=this.editorid;this.editwin.editorid=this.editorid};this.set_editor_width=function(width,overwrite_original){this.editbox.style.width=width};this.set_direction=function(){this.editdoc.dir=this.textobj.dir};this.set_editor_style=function(){var wysiwyg_csstext="";var have_usercss=false;var all_stylesheets=fetch_all_stylesheets(document.styleSheets);for(var ss=0;ss=0){var split_selectors=rules[i].selectorText.split(",");for(var selid=0;selid=0){selectors.push(split_selectors[selid])}if(split_selectors[selid].indexOf("#usercss")>=0){have_usercss=true}}process=true}if(process){var css_rules="{ "+rules[i].style.cssText+" }";if(is_moz){css_rules=css_rules.replace(/; /g," !important; ")}wysiwyg_csstext+=selectors.join(", ")+" "+css_rules+"\n"}}}wysiwyg_csstext+=" p { margin: 0px; } .inlineimg { vertical-align: middle; }";if(is_ie){this.editdoc.createStyleSheet().cssText=wysiwyg_csstext}else{var newss=this.editdoc.createElement("style");newss.type="text/css";newss.innerHTML=wysiwyg_csstext;this.editdoc.documentElement.childNodes[0].appendChild(newss)}if(have_usercss){this.editdoc.body.parentNode.id="usercss"}this.editdoc.body.className="wysiwyg"};this.set_editor_functions=function(){this.editdoc.onmouseup=vB_Text_Editor_Events.prototype.editdoc_onmouseup;this.editdoc.onkeyup=vB_Text_Editor_Events.prototype.editdoc_onkeyup;if(this.editdoc.attachEvent){this.editdoc.body.attachEvent("onresizestart",vB_Text_Editor_Events.prototype.editdoc_onresizestart)}this.editwin.onfocus=vB_Text_Editor_Events.prototype.editwin_onfocus;this.editwin.onblur=vB_Text_Editor_Events.prototype.editwin_onblur};this.set_context=function(cmd){for(var i in contextcontrols){if(!YAHOO.lang.hasOwnProperty(contextcontrols,i)){continue}var obj=fetch_object(this.editorid+"_cmd_"+contextcontrols[i]);if(obj!=null){var state=this.editdoc.queryCommandState(contextcontrols[i]);if(obj.state!=state){obj.state=state;this.button_context(obj,(obj.cmd==cmd?"mouseover":"mouseout"))}}}this.set_font_context();this.set_size_context();this.set_color_context()};this.set_font_context=function(fontstate){if(this.buttons.fontname){if(typeof fontstate=="undefined"){fontstate=this.editdoc.queryCommandValue("fontname")}switch(fontstate){case"":if(!is_ie&&window.getComputedStyle){fontstate=this.editdoc.body.style.fontFamily}break;case null:fontstate="";break}if(fontstate!=this.fontstate){this.fontstate=fontstate;var thingy=PHP.ucfirst(this.fontstate,",");var i;if(this.popupmode){for(i in this.fontoptions){if(YAHOO.lang.hasOwnProperty(this.fontoptions,i)){this.fontoptions[i].style.display=(i==thingy?"":"none")}}}else{for(i=0;i>8)&255).toString(16),((forecolor>>16)&255).toString(16))};this.translate_silly_hex=function(r,g,b){return coloroptions["#"+(PHP.str_pad(r,2,0)+PHP.str_pad(g,2,0)+PHP.str_pad(b,2,0)).toUpperCase()]};this.apply_format=function(cmd,dialog,argument){this.editdoc.execCommand(cmd,(typeof dialog=="undefined"?false:dialog),(typeof argument=="undefined"?true:argument));return false};this.createlink=function(e,url){return this.apply_format("createlink",is_ie,(typeof url=="undefined"?true:url))};this.email=function(e,email){if(typeof email=="undefined"){email=this.show_prompt(vbphrase.enter_email_link,"",true)}email=this.verify_prompt(email);if(email===false){return this.apply_format("unlink")}else{var selection=this.get_selection();return this.insert_text(''+(selection?selection:email)+"",(selection?true:false))}};this.insert_smilie=function(e,smilietext,smiliepath,smilieid){this.check_focus();return this.insert_text('0',false)};this.get_editor_contents=function(){return this.editdoc.body.innerHTML};this.get_selection=function(){var range=this.editdoc.selection.createRange();if(range.htmlText&&range.text){return range.htmlText}else{var do_not_steal_this_code_html="";for(var i=0;i'+url+"")}}return true};this.insert_smilie=function(e,smilietext,smiliepath,smilieid){this.check_focus();try{this.apply_format("InsertImage",false,smiliepath);var smilies=fetch_tags(this.editdoc.body,"img");for(var i=0;i":">"}for(i=root.firstChild;i;i=i.nextSibling){html+=this.read_nodes(i,true)}if(toptag&&!closed){html+=""}break;case Node.TEXT_NODE:html=PHP.htmlspecialchars(root.data);break}return html};this.insert_node_at_selection=function(text){this.check_focus();var sel=this.editwin.getSelection();var range=sel?sel.getRangeAt(0):this.editdoc.createRange();sel.removeAllRanges();range.deleteContents();var node=range.startContainer;var pos=range.startOffset;switch(node.nodeType){case Node.ELEMENT_NODE:if(text.nodeType==Node.DOCUMENT_FRAGMENT_NODE){selNode=text.firstChild}else{selNode=text}node.insertBefore(text,node.childNodes[pos]);this.add_range(selNode);break;case Node.TEXT_NODE:if(text.nodeType==Node.TEXT_NODE){var text_length=pos+text.length;node.insertData(pos,text.data);range=this.editdoc.createRange();range.setEnd(node,text_length);range.setStart(node,text_length);sel.addRange(range)}else{node=node.splitText(pos);var selNode;if(text.nodeType==Node.DOCUMENT_FRAGMENT_NODE){selNode=text.firstChild}else{selNode=text}node.parentNode.insertBefore(text,node);this.add_range(selNode)}break}}}else{if(is_opera){this._createlink=this.createlink;this.createlink=function(e,url){if(typeof url=="undefined"){url=this.show_prompt(vbphrase.enter_link_url,"http://",true)}if((url=this.verify_prompt(url))!==false){if(this.get_selection()){this.apply_format("unlink");this._createlink(e,url)}else{this.insert_text(''+url+"")}}return true};this.insert_smilie=function(e,smilietext,smiliepath,smilieid){this.check_focus();try{this.apply_format("InsertImage",false,smiliepath);var smilies=fetch_tags(this.editdoc.body,"img");for(var i=0;i0){this.textobj.style.width=orig_offset+"px";this.textobj.style.width=(orig_offset+orig_offset-this.textobj.offsetWidth)+"px"}}else{this.textobj.style.width=width}};this.set_editor_style=function(){};this.set_editor_functions=function(){if(this.editdoc.addEventListener){this.editdoc.addEventListener("keypress",vB_Text_Editor_Events.prototype.editdoc_onkeypress,false)}else{if(is_ie){this.editdoc.onkeydown=vB_Text_Editor_Events.prototype.editdoc_onkeypress}}this.editwin.onfocus=vB_Text_Editor_Events.prototype.editwin_onfocus;this.editwin.onblur=vB_Text_Editor_Events.prototype.editwin_onblur};this.set_context=function(){};this.apply_format=function(cmd,dialog,argument){switch(cmd){case"bold":case"italic":case"underline":this.wrap_tags(cmd.substr(0,1),false);return ;case"justifyleft":case"justifycenter":case"justifyright":this.wrap_tags(cmd.substr(7),false);return ;case"indent":this.wrap_tags(cmd,false);return ;case"fontname":this.wrap_tags("font",argument);return ;case"fontsize":this.wrap_tags("size",argument);return ;case"forecolor":this.wrap_tags("color",argument);return ;case"createlink":var sel=this.get_selection();if(sel){this.wrap_tags("url",argument)}else{this.wrap_tags("url",argument,argument)}return ;case"insertimage":this.wrap_tags("img",false,argument);return ;case"removeformat":return }};this.undo=function(){this.history.add_snapshot(this.get_editor_contents());this.history.move_cursor(-1);var str;if((str=this.history.get_snapshot())!==false){this.editdoc.value=str}};this.redo=function(){this.history.move_cursor(1);var str;if((str=this.history.get_snapshot())!==false){this.editdoc.value=str}};this.strip_simple=function(tag,str,iterations){var opentag="["+tag+"]";var closetag="[/"+tag+"]";if(typeof iterations=="undefined"){iterations=-1}while((startindex=PHP.stripos(str,opentag))!==false&&iterations!=0){iterations--;if((stopindex=PHP.stripos(str,closetag))!==false){var text=str.substr(startindex+opentag.length,stopindex-startindex-opentag.length);str=str.substr(0,startindex)+text+str.substr(stopindex+closetag.length)}else{break}}return str};this.strip_complex=function(tag,str,iterations){var opentag="["+tag+"=";var closetag="[/"+tag+"]";if(typeof iterations=="undefined"){iterations=-1}while((startindex=PHP.stripos(str,opentag))!==false&&iterations!=0){iterations--;if((stopindex=PHP.stripos(str,closetag))!==false){var openend=PHP.stripos(str,"]",startindex);if(openend!==false&&openend>startindex&&openend=7){var base_tag=fetch_tags(document,"base");var modal_prefix;if(base_tag&&base_tag[0]&&base_tag[0].href){modal_prefix=base_tag[0].href}else{modal_prefix=""}var listvalue=window.showModalDialog(modal_prefix+"clientscript/ieprompt.html?",{value:"",label:vbphrase.enter_list_item,dir:document.dir,title:document.title,listtype:listtype},"dialogWidth:320px; dialogHeight:232px; dialogTop:"+(parseInt(window.screenTop)+parseInt(window.event.clientY)+parseInt(document.body.scrollTop)-100)+"px; dialogLeft:"+(parseInt(window.screenLeft)+parseInt(window.event.clientX)+parseInt(document.body.scrollLeft)-160)+"px; resizable: No;");if(this.verify_prompt(listvalue)){this.insert_text(listvalue,listvalue.vBlength(),0)}}else{while(listvalue=this.show_prompt(vbphrase.enter_list_item,"",false)){listvalue="[*]"+listvalue+"\n";this.insert_text(listvalue,listvalue.vBlength(),0)}}}};this.outdent=function(e){var sel=this.get_selection();sel=this.strip_simple("indent",sel,1);this.insert_text(sel)};this.get_editor_contents=function(){return this.editdoc.value};this.get_selection=function(){if(typeof (this.editdoc.selectionStart)!="undefined"){return this.editdoc.value.substr(this.editdoc.selectionStart,this.editdoc.selectionEnd-this.editdoc.selectionStart)}else{if(document.selection&&document.selection.createRange){return document.selection.createRange().text}else{if(window.getSelection){return window.getSelection()+""}else{return false}}}};this.insert_text=function(text,movestart,moveend){var selection_changed=false;this.check_focus();if(typeof (this.editdoc.selectionStart)!="undefined"){var opn=this.editdoc.selectionStart+0;var scrollpos=this.editdoc.scrollTop;this.editdoc.value=this.editdoc.value.substr(0,this.editdoc.selectionStart)+text+this.editdoc.value.substr(this.editdoc.selectionEnd);if(movestart===false){}else{if(typeof movestart!="undefined"){this.editdoc.selectionStart=opn+movestart;this.editdoc.selectionEnd=opn+text.vBlength()-moveend}else{this.editdoc.selectionStart=opn;this.editdoc.selectionEnd=opn+text.vBlength()}}this.editdoc.scrollTop=scrollpos}else{if(document.selection&&document.selection.createRange){var sel=document.selection.createRange();sel.text=text.replace(/\r?\n/g,"\r\n");if(movestart===false){}else{if(typeof movestart!="undefined"){if((movestart-text.vBlength())!=0){sel.moveStart("character",movestart-text.vBlength());selection_changed=true}if(moveend!=0){sel.moveEnd("character",-moveend);selection_changed=true}}else{sel.moveStart("character",-text.vBlength());selection_changed=true}}if(selection_changed){sel.select()}}else{this.editdoc.value+=text}}};this.prepare_submit=function(subjecttext,minchars){var returnvalue=validatemessage(this.textobj.value,subjecttext,minchars);if(returnvalue){return returnvalue}else{if(this.captcha!=null&&this.captcha.failed){return returnvalue}else{this.check_focus();return false}}};if(is_saf||(is_opera&&(!opera.version||opera.version()<8))){this.insertlist=function(phrase,listtype){var opentag="[LIST"+(listtype?("="+listtype):"")+"]\n";var closetag="[/LIST]";var txt;if(txt=this.get_selection()){var regex=new RegExp("([\r\n]+|^[\r\n]*)(?!\\[\\*\\]|\\[\\/?list)(?=[^\r\n])","gi");txt=opentag+PHP.trim(txt).replace(regex,"$1[*]")+"\n"+closetag;this.insert_text(txt,txt.vBlength(),0)}else{this.insert_text(opentag,opentag.length,0);while(listvalue=prompt(vbphrase.enter_list_item,"")){listvalue="[*]"+listvalue+"\n";this.insert_text(listvalue,listvalue.vBlength(),0)}this.insert_text(closetag,closetag.length,0)}}}}this.init()}function vB_Text_Editor_Events(){}vB_Text_Editor_Events.prototype.smilie_onclick=function(A){vB_Editor[this.editorid].insert_smilie(A,this.alt,this.src,this.id.substr(this.id.lastIndexOf("_")+1));if(typeof smilie_window!="undefined"&&!smilie_window.closed){smilie_window.focus()}return false};vB_Text_Editor_Events.prototype.command_button_onmouseevent=function(A){A=do_an_e(A);if(A.type=="click"){vB_Editor[this.editorid].format(A,this.cmd,false,true)}vB_Editor[this.editorid].button_context(this,A.type)};vB_Text_Editor_Events.prototype.popup_button_onmouseevent=function(A){A=do_an_e(A);if(A.type=="click"){this._onclick(A);vB_Editor[this.editorid].menu_context(this,"mouseover")}else{vB_Editor[this.editorid].menu_context(this,A.type)}};vB_Text_Editor_Events.prototype.popup_button_show=function(C,B){var A=true;if(typeof vB_Editor[C.editorid].popups[C.cmd]=="undefined"||vB_Editor[C.editorid].popups[C.cmd]==null){A=vB_Editor[C.editorid].init_popup_menu(C)}else{if(C.cmd=="attach"&&(typeof vB_Attachments=="undefined"||!vB_Attachments.has_attachments())){fetch_object("manage_attachments_button").onclick();return }}if(A){this._show(C,B)}};vB_Text_Editor_Events.prototype.formatting_select_onchange=function(B){var A=this.options[this.selectedIndex].value;if(A!=""){vB_Editor[this.editorid].format(B,this.cmd,A)}this.selectedIndex=0};vB_Text_Editor_Events.prototype.smilieselect_onchange=function(A){if(this.options[this.selectedIndex].value!=""){vB_Editor[this.editorid].insert_smilie(A,this.options[this.selectedIndex].value,this.options[this.selectedIndex].smiliepath,this.options[this.selectedIndex].smilieid)}this.selectedIndex=0};vB_Text_Editor_Events.prototype.attachselect_onchange=function(B){var A=this.options[this.selectedIndex].value;if(A!=""){vB_Editor[this.editorid].wrap_tags("attach",false,A)}this.selectedIndex=0};vB_Text_Editor_Events.prototype.attachselect_onmouseover=function(A){if(this.options.length<=2){vB_Editor[this.editorid].build_attachments_popup(this);return true}};vB_Text_Editor_Events.prototype.menuoption_onmouseevent=function(A){A=do_an_e(A);vB_Editor[this.editorid].button_context(this,A.type,"menu")};vB_Text_Editor_Events.prototype.formatting_option_onclick=function(A){vB_Editor[this.editorid].format(A,this.cmd,this.firstChild.innerHTML);vBmenu.hide()};vB_Text_Editor_Events.prototype.coloroption_onclick=function(A){fetch_object(this.editorid+"_color_bar").style.backgroundColor=this.colorname;vB_Editor[this.editorid].format(A,this.cmd,this.colorname);vBmenu.hide()};vB_Text_Editor_Events.prototype.colorout_onclick=function(A){A=do_an_e(A);vB_Editor[this.editorid].format(A,"forecolor",fetch_object(this.editorid+"_color_bar").style.backgroundColor);return false};vB_Text_Editor_Events.prototype.smilieoption_onclick=function(A){vB_Editor[this.editorid].button_context(this,"mouseout","menu");vB_Editor[this.editorid].insert_smilie(A,this.smilietext,fetch_tags(this,"img")[0].src,this.smilieid);vBmenu.hide()};vB_Text_Editor_Events.prototype.smiliemore_onclick=function(A){vB_Editor[this.editorid].open_smilie_window(smiliewindow_x,smiliewindow_y);vBmenu.hide()};vB_Text_Editor_Events.prototype.attachmanage_onclick=function(A){vBmenu.hide();fetch_object("manage_attachments_button").onclick()};vB_Text_Editor_Events.prototype.attachoption_onclick=function(A){vB_Editor[this.editorid].button_context(this,"mouseout","menu");vB_Editor[this.editorid].wrap_tags("attach",false,this.attachmentid);vBmenu.hide()};vB_Text_Editor_Events.prototype.attachinsertall_onclick=function(C){var B="";var A=(vB_Editor[this.editorid].wysiwyg_mode?"

    ":"\r\n\r\n");for(var D in vB_Attachments.attachments){if(YAHOO.lang.hasOwnProperty(vB_Attachments.attachments,D)){B+=B!=""?A:"";B+="[ATTACH]"+D+"[/ATTACH]"}}vB_Editor[this.editorid].insert_text(B);vBmenu.hide()};vB_Text_Editor_Events.prototype.smiliewindow_onunload=function(A){if(typeof smilie_window!="undefined"&&!smilie_window.closed){smilie_window.close()}};vB_Text_Editor_Events.prototype.editwin_onfocus=function(A){this.hasfocus=true};vB_Text_Editor_Events.prototype.editwin_onblur=function(A){this.hasfocus=false};vB_Text_Editor_Events.prototype.editdoc_onmouseup=function(A){vB_Editor[this.editorid].set_context();if(vB_Editor[this.editorid].popupmode){vBmenu.hide()}};vB_Text_Editor_Events.prototype.editdoc_onkeyup=function(A){vB_Editor[this.editorid].set_context()};vB_Text_Editor_Events.prototype.editdoc_onkeypress=function(C){if(!C){C=window.event}if(C.ctrlKey){if(vB_Editor[this.editorid].allowbasicbbcode==false){return }var A=C.charCode?C.charCode:C.keyCode;var B;switch(String.fromCharCode(A).toLowerCase()){case"b":B="bold";break;case"i":B="italic";break;case"u":B="underline";break;default:return }C=do_an_e(C);vB_Editor[this.editorid].apply_format(B,false,null);return false}else{if(C.keyCode==9){if(C.shiftKey||(C.modifiers&&(C.modifiers&4))){return }if(is_opera){return }if(fetch_object("tag_add_input")!=null){fetch_object("tag_add_input").focus()}else{if(fetch_object("rb_iconid_0")!=null){fetch_object("rb_iconid_0").focus()}else{if(fetch_object(this.editorid+"_save")!=null){fetch_object(this.editorid+"_save").focus()}else{if(fetch_object("qr_submit")!=null){fetch_object("qr_submit").focus()}else{return }}}}C=do_an_e(C);return }}};vB_Text_Editor_Events.prototype.editdoc_onresizestart=function(A){if(A.srcElement.tagName=="IMG"){return false}};function save_iframe_to_textarea(){for(var A in vB_Editor){if(!YAHOO.lang.hasOwnProperty(vB_Editor,A)){continue}if(vB_Editor[A].wysiwyg_mode&&vB_Editor[A].initialized){vB_Editor[A].textobj.value=vB_Editor[A].get_editor_contents()}}}if(window.attachEvent){window.attachEvent("onbeforeunload",save_iframe_to_textarea)}else{if(window.addEventListener){window.addEventListener("unload",save_iframe_to_textarea,true)}}function switch_editor_mode(A){if(AJAX_Compatible){var B=(vB_Editor[A].wysiwyg_mode?0:1);if(vB_Editor[A].influx==1){return }else{vB_Editor[A].influx=1}if(typeof vBmenu!="undefined"){vBmenu.hide()}YAHOO.util.Connect.asyncRequest("POST","ajax.php?do=editorswitch",{success:do_switch_editor_mode,timeout:vB_Default_Timeout,argument:[A,B]},SESSIONURL+"securitytoken="+SECURITYTOKEN+"&do=editorswitch&towysiwyg="+B+"&parsetype="+vB_Editor[A].parsetype+"&allowsmilie="+vB_Editor[A].parsesmilies+"&message="+PHP.urlencode(vB_Editor[A].get_editor_contents())+(vB_Editor[A].ajax_extra?("&"+vB_Editor[A].ajax_extra):"")+(typeof vB_Editor[A].textobj.form["options[allowbbcode]"]!="undefined"?"&allowbbcode="+vB_Editor[A].textobj.form["options[allowbbcode]"].checked:""))}}function do_switch_editor_mode(H){if(H.responseXML){var C=vB_Editor[H.argument[0]].parsetype;var D=vB_Editor[H.argument[0]].parsesmilies;var G=vB_Editor[H.argument[0]].ajax_extra;vB_Editor[H.argument[0]].destroy();var A=H.responseXML.getElementsByTagName("message")[0];if(typeof A!="undefined"){A=A.firstChild}var F=(A?A.nodeValue:"");var E=F.match(/&#([0-9]+);/g);if(E){for(var B=0;typeof E[B]!="undefined";B++){if(submatch=E[B].match(/^&#([0-9]+);$/)){F=F.replace(submatch[0],String.fromCharCode(submatch[1]))}}}vB_Editor[H.argument[0]]=new vB_Text_Editor(H.argument[0],H.argument[1],C,D,F,G);vB_Editor[H.argument[0]].check_focus();fetch_object(H.argument[0]+"_mode").value=H.argument[1]}}var contextcontrols=new Array("bold","italic","underline","justifyleft","justifycenter","justifyright","insertorderedlist","insertunorderedlist");var coloroptions=new Array();coloroptions={"#000000":"Black","#A0522D":"Sienna","#556B2F":"DarkOliveGreen","#006400":"DarkGreen","#483D8B":"DarkSlateBlue","#000080":"Navy","#4B0082":"Indigo","#2F4F4F":"DarkSlateGray","#8B0000":"DarkRed","#FF8C00":"DarkOrange","#808000":"Olive","#008000":"Green","#008080":"Teal","#0000FF":"Blue","#708090":"SlateGray","#696969":"DimGray","#FF0000":"Red","#F4A460":"SandyBrown","#9ACD32":"YellowGreen","#2E8B57":"SeaGreen","#48D1CC":"MediumTurquoise","#4169E1":"RoyalBlue","#800080":"Purple","#808080":"Gray","#FF00FF":"Magenta","#FFA500":"Orange","#FFFF00":"Yellow","#00FF00":"Lime","#00FFFF":"Cyan","#00BFFF":"DeepSkyBlue","#9932CC":"DarkOrchid","#C0C0C0":"Silver","#FFC0CB":"Pink","#F5DEB3":"Wheat","#FFFACD":"LemonChiffon","#98FB98":"PaleGreen","#AFEEEE":"PaleTurquoise","#ADD8E6":"LightBlue","#DDA0DD":"Plum","#FFFFFF":"White"};function vB_History(){this.cursor=-1;this.stack=new Array()}vB_History.prototype.move_cursor=function(A){var B=this.cursor+A;if(B>=0&&this.stack[B]!=null&&typeof this.stack[B]!="undefined"){this.cursor+=A}};vB_History.prototype.add_snapshot=function(A){if(this.stack[this.cursor]==A){return }else{this.cursor++;this.stack[this.cursor]=A;if(typeof this.stack[this.cursor+1]!="undefined"){this.stack[this.cursor+1]=null}}};vB_History.prototype.get_snapshot=function(){if(typeof this.stack[this.cursor]!="undefined"&&this.stack[this.cursor]!=null){return this.stack[this.cursor]}else{return false}}; \ No newline at end of file diff --git a/docs/radar_developmemt_files/viewpost.gif b/docs/radar_developmemt_files/viewpost.gif new file mode 100644 index 0000000000000000000000000000000000000000..074396a44eb679d14fb2a303a17e9673c5b86a60 GIT binary patch literal 964 zcmZ?wbhEHbZ(spnB<%f6I>kUvut%|D<_6 z^Iio;_N+Vqf6nel)3%)1^Z0*Q;>5J9_SL5!)pcHKoBgV`=kA;>|J&xjt?sxNku+)A zh7a{UPpc*_@0k5FukvhW@!^e|&o)hcv1I@MmWl5VJpW%e;Ym&Jh10iQRJ5I}XgS_B zefyN{4?P1bBBM(inx`ZbPMW=NRo{{|(-v&lcAKyo3ioj z#KrGt%|Be#e(})b*O@ib<1_Y6Sn~Jc#m6&OpIdj~|Nev5CoMd@;>71U+rCYix2mS| zZh7mS?4mhE_17AwyqUN6@zxvv7an-DVC#)vzyEjj&tez_^bG;UpDbVtbwDI2PdIQa zWC)y6`N8#Uzk|&`iv-3a=bCf{<4PC0)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}if(N.length>1){N.pop();}N.push("]");}else{N.push("{");for(I in G){if(B.hasOwnProperty(G,I)){N.push(I+J);if(B.isObject(G[I])){N.push((L>0)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}}if(N.length>1){N.pop();}N.push("}");}return N.join("");},substitute:function(V,H,O){var L,K,J,R,S,U,Q=[],I,M="dump",P=" ",G="{",T="}",N;for(;;){L=V.lastIndexOf(G);if(L<0){break;}K=V.indexOf(T,L);if(L+1>=K){break;}I=V.substring(L+1,K);R=I;U=null;J=R.indexOf(P);if(J>-1){U=R.substring(J+1);R=R.substring(0,J);}S=H[R];if(O){S=O(R,S,U);}if(B.isObject(S)){if(B.isArray(S)){S=B.dump(S,parseInt(U,10));}else{U=U||"";N=U.indexOf(M);if(N>-1){U=U.substring(4);}if(S.toString===A.toString||N>-1){S=B.dump(S,parseInt(U,10));}else{S=S.toString();}}}else{if(!B.isString(S)&&!B.isNumber(S)){S="~-"+Q.length+"-~";Q[Q.length]=I;}}V=V.substring(0,L)+S+V.substring(K+1);}for(L=Q.length-1;L>=0;L=L-1){V=V.replace(new RegExp("~-"+L+"-~"),"{"+Q[L]+"}","g");}return V;},trim:function(G){try{return G.replace(/^\s+|\s+$/g,"");}catch(H){return G;}},merge:function(){var J={},H=arguments,G=H.length,I;for(I=0;I519)?true:false);while((G=G[u])){z[0]+=G[b];z[1]+=G[P];if(AC){z=E.Dom._calcBorders(G,z);}}if(E.Dom._getStyle(y,p)!==f){G=y;while((G=G[Z])&&G[C]){AA=G[i];AB=G[O];if(H&&(E.Dom._getStyle(G,"overflow")!=="visible")){z=E.Dom._calcBorders(G,z);}if(AA||AB){z[0]-=AB;z[1]-=AA;}}z[0]+=x;z[1]+=Y;}else{if(D){z[0]-=x;z[1]-=Y;}else{if(I||H){z[0]+=x;z[1]+=Y;}}}z[0]=Math.floor(z[0]);z[1]=Math.floor(z[1]);}else{}return z;};}}(),getX:function(G){var Y=function(x){return E.Dom.getXY(x)[0];};return E.Dom.batch(G,Y,E.Dom,true);},getY:function(G){var Y=function(x){return E.Dom.getXY(x)[1];};return E.Dom.batch(G,Y,E.Dom,true);},setXY:function(G,x,Y){E.Dom.batch(G,E.Dom._setXY,{pos:x,noRetry:Y});},_setXY:function(G,z){var AA=E.Dom._getStyle(G,p),y=E.Dom.setStyle,AD=z.pos,Y=z.noRetry,AB=[parseInt(E.Dom.getComputedStyle(G,j),10),parseInt(E.Dom.getComputedStyle(G,o),10)],AC,x;if(AA=="static"){AA=V;y(G,p,AA);}AC=E.Dom._getXY(G);if(!AD||AC===false){return false;}if(isNaN(AB[0])){AB[0]=(AA==V)?0:G[b];}if(isNaN(AB[1])){AB[1]=(AA==V)?0:G[P];}if(AD[0]!==null){y(G,j,AD[0]-AC[0]+AB[0]+"px");}if(AD[1]!==null){y(G,o,AD[1]-AC[1]+AB[1]+"px");}if(!Y){x=E.Dom._getXY(G);if((AD[0]!==null&&x[0]!=AD[0])||(AD[1]!==null&&x[1]!=AD[1])){E.Dom._setXY(G,{pos:AD,noRetry:true});}}},setX:function(Y,G){E.Dom.setXY(Y,[G,null]);},setY:function(G,Y){E.Dom.setXY(G,[null,Y]);},getRegion:function(G){var Y=function(x){var y=false;if(E.Dom._canPosition(x)){y=E.Region.getRegion(x);}else{}return y;};return E.Dom.batch(G,Y,E.Dom,true);},getClientWidth:function(){return E.Dom.getViewportWidth();},getClientHeight:function(){return E.Dom.getViewportHeight();},getElementsByClassName:function(AB,AF,AC,AE,x,AD){AB=L.trim(AB);AF=AF||"*";AC=(AC)?E.Dom.get(AC):null||K;if(!AC){return[];}var Y=[],G=AC.getElementsByTagName(AF),z=E.Dom.hasClass;for(var y=0,AA=G.length;y-1;}}else{}return G;},addClass:function(Y,G){return E.Dom.batch(Y,E.Dom._addClass,G);},_addClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom.getAttribute(x,F)||J;if(!E.Dom._hasClass(x,Y)){E.Dom.setAttribute(x,F,A(y+B+Y));G=true;}}else{}return G;},removeClass:function(Y,G){return E.Dom.batch(Y,E.Dom._removeClass,G);},_removeClass:function(y,x){var Y=false,AA,z,G;if(y&&x){AA=E.Dom.getAttribute(y,F)||J;E.Dom.setAttribute(y,F,AA.replace(E.Dom._getClassRegex(x),J));z=E.Dom.getAttribute(y,F);if(AA!==z){E.Dom.setAttribute(y,F,A(z));Y=true;if(E.Dom.getAttribute(y,F)===""){G=(y.hasAttribute&&y.hasAttribute(g))?g:F;y.removeAttribute(G);}}}else{}return Y;},replaceClass:function(x,Y,G){return E.Dom.batch(x,E.Dom._replaceClass,{from:Y,to:G}); +},_replaceClass:function(y,x){var Y,AB,AA,G=false,z;if(y&&x){AB=x.from;AA=x.to;if(!AA){G=false;}else{if(!AB){G=E.Dom._addClass(y,x.to);}else{if(AB!==AA){z=E.Dom.getAttribute(y,F)||J;Y=(B+z.replace(E.Dom._getClassRegex(AB),B+AA)).split(E.Dom._getClassRegex(AA));Y.splice(1,0,B+AA);E.Dom.setAttribute(y,F,A(Y.join(J)));G=true;}}}}else{}return G;},generateId:function(G,x){x=x||"yui-gen";var Y=function(y){if(y&&y.id){return y.id;}var z=x+YAHOO.env._id_counter++;if(y){if(y[e].getElementById(z)){return E.Dom.generateId(y,z+x);}y.id=z;}return z;};return E.Dom.batch(G,Y,E.Dom,true)||Y.apply(E.Dom,arguments);},isAncestor:function(Y,x){Y=E.Dom.get(Y);x=E.Dom.get(x);var G=false;if((Y&&x)&&(Y[l]&&x[l])){if(Y.contains&&Y!==x){G=Y.contains(x);}else{if(Y.compareDocumentPosition){G=!!(Y.compareDocumentPosition(x)&16);}}}else{}return G;},inDocument:function(G,Y){return E.Dom._inDoc(E.Dom.get(G),Y);},_inDoc:function(Y,x){var G=false;if(Y&&Y[C]){x=x||Y[e];G=E.Dom.isAncestor(x[v],Y);}else{}return G;},getElementsBy:function(Y,AF,AB,AD,y,AC,AE){AF=AF||"*";AB=(AB)?E.Dom.get(AB):null||K;if(!AB){return[];}var x=[],G=AB.getElementsByTagName(AF);for(var z=0,AA=G.length;z=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B); +}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.7.0",build:"1796"});YAHOO.util.CustomEvent=function(D,C,B,A){this.type=D;this.scope=C||window;this.silent=B;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(A,B,C){if(!A){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(A,B,C);}this.subscribers.push(new YAHOO.util.Subscriber(A,B,C));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B0){B=I[0];}try{G=M.fn.call(L,B,M.obj);}catch(F){this.lastError=F;if(A){throw F;}}}else{try{G=M.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=H;if(A){throw H;}}}if(false===G){if(!this.silent){}break;}}}return(G!==false);},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};var K=YAHOO.env.ua.ie?"focusin":"focus";var L=YAHOO.env.ua.ie?"focusout":"blur";return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){var M=this;var N=function(){M._tryPreloadAttach();};this._interval=setInterval(N,this.POLL_INTERVAL);}},onAvailable:function(S,O,Q,R,P){var M=(YAHOO.lang.isString(S))?[S]:S;for(var N=0;N-1;Q--){W=(this.removeListener(N[Q],M,V)&&W);}return W;}}if(!V||!V.call){return this.purgeElement(N,false,M);}if("unload"==M){for(Q=J.length-1;Q>-1;Q--){X=J[Q];if(X&&X[0]==N&&X[1]==M&&X[2]==V){J.splice(Q,1);return true;}}return false;}var R=null;var S=arguments[3];if("undefined"===typeof S){S=this._getCacheIndex(N,M,V);}if(S>=0){R=I[S];}if(!N||!R){return false;}if(this.useLegacyEvent(N,M)){var P=this.getLegacyIndex(N,M);var O=E[P];if(O){for(Q=0,T=O.length;Q0&&F.length>0);}var R=[];var T=function(V,W){var U=V;if(W.overrideContext){if(W.overrideContext===true){U=W.obj;}else{U=W.overrideContext;}}W.fn.call(U,W.obj);};var N,M,Q,P,O=[];for(N=0,M=F.length;N-1;N--){Q=F[N];if(!Q||!Q.id){F.splice(N,1);}}this.startInterval();}else{if(this._interval){clearInterval(this._interval);this._interval=null;}}this.locked=false;},purgeElement:function(Q,R,T){var O=(YAHOO.lang.isString(Q))?this.getEl(Q):Q;var S=this.getListeners(O,T),P,M;if(S){for(P=S.length-1;P>-1;P--){var N=S[P];this.removeListener(O,N.type,N.fn);}}if(R&&O&&O.childNodes){for(P=0,M=O.childNodes.length;P-1;P--){O=I[P];if(O){N.removeListener(O[N.EL],O[N.TYPE],O[N.FN],P);}}O=null;}G=null;N._simpleRemove(window,"unload",N._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var M=document.documentElement,N=document.body;if(M&&(M.scrollTop||M.scrollLeft)){return[M.scrollTop,M.scrollLeft];}else{if(N){return[N.scrollTop,N.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(O,P,N,M){O.addEventListener(P,N,(M));};}else{if(window.attachEvent){return function(O,P,N,M){O.attachEvent("on"+P,N);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(O,P,N,M){O.removeEventListener(P,N,(M));};}else{if(window.detachEvent){return function(N,O,M){N.detachEvent("on"+O,M);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener; +/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */ +if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E); +}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,overrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C