devicely 2.1.4 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/devicely.js +105 -1
- package/lib/androidDeviceDetection.js +276 -1
- package/lib/appMappings.js +337 -1
- package/lib/deviceDetection.js +394 -1
- package/lib/devices.js +54 -1
- package/lib/doctor.js +94 -1
- package/lib/executor.js +104 -1
- package/lib/logger.js +35 -1
- package/lib/scriptLoader.js +75 -1
- package/lib/server.js +3485 -1
- package/package.json +3 -12
- package/scripts/compile-shell-scripts.js +208 -0
- package/scripts/encrypt-shell-simple.js +75 -0
- package/scripts/obfuscate-shell.js +160 -0
- package/scripts/shell/android_device_control +0 -0
- package/scripts/shell/apps_presets.conf +271 -0
- package/scripts/shell/connect_android_usb +0 -0
- package/scripts/shell/connect_android_usb_multi_final +0 -0
- package/scripts/shell/connect_android_wireless +0 -0
- package/scripts/shell/connect_android_wireless_multi_final +0 -0
- package/scripts/shell/connect_ios_usb +0 -0
- package/scripts/shell/connect_ios_usb_multi_final +0 -0
- package/scripts/shell/connect_ios_wireless_multi_final +0 -0
- package/scripts/shell/create_production_scripts +0 -0
- package/scripts/shell/devices.conf +24 -0
- package/scripts/shell/diagnose_wireless_ios +0 -0
- package/scripts/shell/find_element_coordinates +0 -0
- package/scripts/shell/find_wda +0 -0
- package/scripts/shell/install_uiautomator2 +0 -0
- package/scripts/shell/ios_device_control +0 -0
- package/scripts/shell/organize_project +0 -0
- package/scripts/shell/pre-publish-check +0 -0
- package/scripts/shell/publish +0 -0
- package/scripts/shell/publish-to-npm +0 -0
- package/scripts/shell/setup +0 -0
- package/scripts/shell/setup_android +0 -0
- package/scripts/shell/start +0 -0
- package/scripts/shell/sync-to-npm-package-final +0 -0
- package/scripts/shell/test_android_locators +0 -0
- package/scripts/shell/test_connect +0 -0
- package/scripts/shell/test_device_detection +0 -0
- package/scripts/shell/test_fixes +0 -0
- package/scripts/shell/test_getlocators_fix +0 -0
- package/scripts/shell/test_recording_feature +0 -0
- package/scripts/shell/verify-shell-protection +0 -0
- package/scripts/shell/verify_distribution +0 -0
- package/lib/package-lock.json +0 -1678
- package/lib/package.json +0 -30
- package/lib/screenshots/screenshot_ios_iPhone17_20260205_225900.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhone17_20260205_225942.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhone17_20260205_231101.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhone17_20260205_232911.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhone17_20260208_095103.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhone17_20260208_095720.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115040.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115047.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115118.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115125.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115143.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120107.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120118.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120137.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120201.png +0 -0
- package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_134529.png +0 -0
- package/scripts/shell/android_device_control.enc +0 -1
- package/scripts/shell/connect_android_usb_multi_final.enc +0 -1
- package/scripts/shell/connect_android_wireless.enc +0 -1
- package/scripts/shell/connect_android_wireless_multi_final.enc +0 -1
- package/scripts/shell/connect_ios_usb_multi_final.enc +0 -1
- package/scripts/shell/connect_ios_wireless_multi_final.enc +0 -1
- package/scripts/shell/ios_device_control.enc +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"iv":"cbb2bba009ad42cc7e5b18ddd90001e5","content":"b586ac319965ab026a282c03e3a3c52e581ba8b14dece0860faf26500ced5887848ad1ca0b4325c0e441dfbd08a8280c5991185178cdf4a4ac2a02170b83bb1838ff4d3eeb805fe6750f0176906a4e89c17aa00fe4364bf85dc58bf0e34f36547c504918b3371b3f51dfef694188f6ad7101b7380985035f6cc29e5cf2f4e31aba7f9b63bc18f3404a73ff392b25682c87c75fea09a7d5a7c68685a70d61ec6bceee2ae5188d736e7fbe8feede180f5b419a663b54828060f2223bd67576f46e026f518e11e61f312592f644390136094f5ebb1fafc1868b978941c34cfee5f61147cf5c670734a584ac9d75f5dc3c2dd261719f092577f25d839dd22739b33e499b550edf2895593d67837fd5daa573700089be63c94b64f536a27a31608e9fae77d8ad3611bf2b6661af8bc06e4583e5615cc778f219da7c11a942cfea8c3a7e5c8a3be28fbea1a137fc2ea5499a05f562fe8a7533d461e6590d2c758435b2cabd571e0e922096fae32e17b9d6f4884a41e059fc80b9cdb58fffde7fc496e5f6f2e9f6f3a7a07a797e0fab0d01ac4c7e271a95036c8e0dfd91201bd050cef9256550b3262f56af1ef7c666a4ce3190756f56a9f44f9755180cfc0c09c4f4b6c280122e9e1760e5d9e395cf24d082e5e9092aebb183eda66e34c629fc24c24ed6a78b8b1eee46ddf063a7874c9b48a2e8295342ca078c2fd6b36d340ca51c309492489b13922983c5ab9324a2488411451a4e5f81462bc66d4cae6c8d36bccc956dd5592ee4ed0876e9868821ca524e0f77e750e4aacaf3cd12486cbf273b29ad87c06552e4a92edf1a1115f2f6d872441894f0a25e9e8c0e8a0a0feb473c2a47673772247c2bcb8c3ef68ebed547ef7178c0b4ebb8c61fd634e225e9cf55b5a9f3c1add2461dd0683eecb713c32e92bf6d6c9ef834d53aac7e1239e9bd5298577e663817984c9b1736b8f4c6ef80b1c72259934140a665bd91ad0b4970fe89c07da205ea334d540b9ffc29eae1bc6a7b3cc17c57ae066362131bfc6c12a68d42be36b4d65d5ebebd8b1f53b251c6d0d910221f4ea8e540e0ddaaa59fa63d391ab4b6cf7d879495b440a7fe817d6619b027ced5945247938041b8c3c667f7acb5d6bebe6ebde1e7a4d33bb0d83b0d5bf2418f18d767b7f619755f0841d4cd1c167e1975bc07f30bb390b3e0a7517faf09d4b0e1b6a32a552b2cf4673ca7ecee039bd0758e8221c3a0e053f3474db30c88503e35244950a1816ecc8ded562f0f0e71068367771ea5427b8c9b576466c389c46385b7293887174952b5fa31c477bb64ad06d7b473e12d22e2633286980b88d9855a9aa81e24d96a0ba03c47168b4a0dcd6bcb07c0a105f960cd247893cfc0496c850382592eaf82b152afd7b1183865d5664808625fa2d7d481d34e29de19b8d340860d61a4db5402de7ecdd65af4b3fd5c06dcbba54c478a898eb42192e1f7323fd4e4d1db5abdc713965ac253f4f449560a20c481384e1b60adb5c33aaa114f775c5fabac15ea4e8c3d596b7bf39fb83648cbbb2e52dcf9f038146258755aa7291151bcd6449f4371dae7e1901f47f3ba8665f05b233320f7db2f18bf622bd97ea027052a9727913f2bb95c8939cdffbfcc2626f2d82b17d834b0b2de79b030178dd7d31cc984439ef292680033c1c7f7bb05ddb6342e7e282537657e08022d8c42e404fafca970773778242c7235f49278de11edada739a0a1a27d76d1aded5295679a495bdb9fdc1ef0cd6f03335d22c83364b95642a775548b17f710e43ac723a43a9c34aad4bca4af09183881d22136598b37921748a3ab37677e95b2cf9b7763f17c75fcf9a28ce431d21f6fff31bde6ece9e8d71678669dcd0a96fe0f3c783934b6df91970e98a72eacaa14417fb90daf1a9a4713b1130ef0dba593de8f12d8f37654b4d877236e5aa6b10bc57172ee50660edfafb10819505f249f1e4506f47ffead19c1187dd0e2a4d5fe9daca68825e3a26e6aca1cb1bfde459e2a0c0ca66a0d8925ab06900ee54784977127575dcf37ee306dd7c9bca01945aa4446ce4dbe661729ff456ceb36bc80adbe919f87fe984415b5d17bf05b34fc9c9f5dd80f2610ff4789adcebec63efe2c52d8362714b3379d5d53947f7adf717bd5a1753b234e0807f2e87fb152f091fdee5d79457e7fcbbf194e3158358c2cb927be2353a47588b0a8831c1cf69fc48a2dc4be68120b9122fa9210a45d9b8c0fceb6339d6876abfdde227e610ae354c21ab7d35909b6db6fd85262a58b9feecb257af053e8797284d907ab91599a2869e935a769a9337b2baf3c5f9b1bb97310152505e19ec3c607ebdc50e01cf91b14adb103eb6304935c2cd13805e5f57cb12a9c31b59667ccb769977e3b7128bdb75ba2e36bc389c5ce2ab436a3bd1fe48713f08cd84b8961ba82b1115dcba5620e36d2953ac0e94ec6fe38d9cd5ff1fdb10d866a99d4e69b96be5b95a7a39ab93752459b436196776ff18e51129748b9608c30b8ef5eb0e355b14335e3561aacd42fd8176836bc7031d51dd7692e369c0539e56728472acda00c55f55f1c901ea808d79a1520027e40745eceea562e76cd23058f89baf5a043f0dc459199bd2a4e55e50c1981f7bd266f6eff6a08ff92bfc9064ffccfa5ddc2adbce65f58b37642e6619c16ba32fdc7e8a83ca18ee5b6b6083ca6374532ee5945b65d3742e1a5fb71aad25295e84c89a83bb417eb5f2fcb9af9539e5a2f519901a59c3c6e67d564d975803ca2fcee12f97aa4ddcf630dc9f669c84229638ef35ea399c46157998531ff3f4605139991ec2c7ed4993b290ca0de2cf9a102366ebafa8c4eef61c5455ab439ce25438c16bf9da97d6351065b94af49512d4daa70ff7cbd072a5c70f7b2f7f0736bc593bb1ef220407057af406c5abe97dbc21cbb27564611aaadb454612beb2dc390f81470bae409ee61fe5edf575d82af41b30d202448cf2ad21498aa3e7064a7b5ee4220997ef39226cfae711e27a45f825cbf926dfc3c62bb14f3771d625242bdd6aebd85aff9c414209f8e98eb3c3b9db15fbecfb0712a6bcb305ff5052c5ab8dfd157bd6a4ede9e7826cb278db5c311a1f788825a5711e73bd3c4d03240036fd10d64bb7e8988e335f48dc8350cf8797f7f78bb683034a9be43ad3365dd4fe2de0d30f9952fb12f3243ca96292434dbc6e78d8da085b5d2b8e1cd9b603784a10fd9fc1948de8b393bc3b092c01a7f2082963cea4b324420dc5102ecf1e9fa09b6aa33799aaaf0358acdfc7f7d35664e5f5940f53111bd40c159f8e555f8d70253c88fb710f472d587e35e7977b166a936b79c0c049f8e91ceac03a14719bd5354d594f6313001f37b050b3555206816918ece63b3f2f2f4cce8c37d899c190d28a3cb768cced42870a24727415c0751d30a25335817620fcf99eb58ec91d75a9121fc49b64a8ecd163d40903b3af656a8404192d72788bd607da2a8e482dd7f42c5e55a0a427f9cb502b6c6bd8f0a3f80372c5b188230d4861d171947a786f8201cddede88514656ddd3bbc26c09af10cbb0113ef72a3634e64fc31356d7cdabe8aa651689627425aaf1dafd780f79dda338471ce984a723fe20fb2f9bfaafda563d4150a8731b1d18af7db4fcba737919e3b5b6d23c352b04b7d404202368e8c6b1e7b463c975e2c18caf54e656cddda0856bc23141eb505780471f95ffa5337a0bfef6fae4c7b0512a7b3ece32c8382cf51252c2506e00fb11cc19ffd2628a1d9e797ce3bf26b72686a039be179699777cb300e51c388ed504d3a5b291c60df0c3ea949ad19cfdbdaa2dadcf3cb1380dcee41fc8c5f176a4e6e402722a160e8fb7c111fb060e0f77d40da673293ca10645825d6b0574f0bc41e76b390a5b70e799ea92dde6c613f52261e0650cdec91c4a424578ded7f8f548f5613f8d29fb68c950dc0190221a55b18a8086478861f1acdcc1d712abe03b3b677ad14d5e06cba3ff202baba8c0f8f6ca9376be21cca46a3ac3b7ad178de75f46ca55b3b69218023ba67ad64a5fd39607bbb625f47e85c8ac99c89100f405dd1c3f7794f4554a6930886a65d6aa8c8489a82db913bb3f0eda2444b64552ad3cbae64f9311201d0ebe55b1981637e51f7f7779ee861d1f60a76c76744191dc8572684309e6081cec82e4b0f30e289db91d809e4c07d4a2aa4257df14a54f53e2380d809c5a3deb1570b97ce4cfc4c0ada2a818f17f2f0010bfc23a988be11db19ab67a059f04be178cbe9a8788b83754f34734b2a8f33de23a565dab8d4aeb4f80eb9cb1121f277b13fa955696c279e0add151db05ac9f8034e061383dd02058d1840ddfb9d2459323c95e2411a60e798f2e959138987b46d87e04b24afd6c118e7e05e3e3993e7f723866b837a20f9c074c96b2568b3e0851dd99ba0b051288259d796c4e74f8759b33e121e8a9a23635997bdd208b61a26656199f5d6b11ed08658638b3a8965272826f472cd7baa1711ac1b205b676974e850180d2b10937b0c3035734e1cdf809c16af6dca5e383dd139e1df862076e72e6c62da5d974347779238694eadbdfe6cac6b3137d6b9452afd81caf6845786fe24299193cf64dd8fa9e96e8d76df6c6068bbf120baa009ade50e621e9452f0ebb47132fea29d68089d083a3a66d977637130b829946cd9076ecedb6c59451a5991724ac354839b42d87a1624f9a65007568b56dbfb8ef9b17c719865443a161e5994bbfc6829ed58a97ed712752d61e277cc8b2c9c5c45e3778630246176ef2147093973ace08d7ed184d2f4af28305a0637653a5e5c2390f1f7e06526899b4b570cc56b78ca275433f4eaea574ab6c7f6d252fba77dc02feb2af158c8de9e4fd8b3259b29c9e2c1376d6ee8185096fd804ec5dee0783fe755ad48dc405bd6dc0437bc2e8bf44bd9e79e6c150fe92401d4ea3550953ffb50f4f209f086a72785e7dcd1a56c616a304cbb8294041ce93f7dcf0c477b6ff96a516c7f4584f6111991cb7542c727bab8ccd1855b4b6cf0a820dd6592fa90b3c63c0409dde08d2d78cc626f984519c908853283f699952de5df8d49e51159f0428a79944eda53d536afb2efb936614cb1c9ae7d8023bde0e8913c4e10c15b1d1d75f6529712f56ecef30b0bef7621480563a8250f89de4d714f3e8106ab6e79b7c7ee18d59bac0637007c408a67a106d2ce46abf352a423b433fb59ba9b56615cc46de84f315d4e2f4a42a2e6ceec5f1fdf1d8388ded50169be74a9131d699baf0858e7b8776f020884319d2549c30cad9053bf6b7e5435cd04baf5d1f9f433aeb0a5db422ec6dbc41e955450dda625d77c7a86cb3386cdf4fc5f969f0f90bf524c4a2ae1b9ec0f3b2a8213cb12058806465a4fa46262ec9ec0b7fadacfecc33702a649de37680d2b3e1aaf8295dac241f1ac4abdff4affce3678e9c20e41c2947136720b6012bf7e54227ced3897458d3e15fb180135d1a4b954754b4ae9147d5adcb1a5079d91525f6ca21d38593cf236a498a114890bedf410b2e280c333db72f25fd4a4f85f083772ef2702731da8f1c65552e719a4d08fcaa971f4e11f2cc20b6a340e32fe688c064869e256d0a6119e7b466b96ae1c6a2b4f3b2b7d362920a76c13bb6886001137dae3773ae5d42db2cc3e864b83212c3e0bd872f4ed2f755df8beaafa232cabfd269e7797da8cc2037453bb62b78755dc226546ce8b55d10f4f63f8752cf1c752aa0416d0a7d5a21afc50d334dd1cc33aa8c23b726a2b90d6e7cd44711ecebff632bd8504d910979d639df4013885c66c28dfc3a3937b961e89ded79de870f0bd4c13b0ba4322fa54016761c4fa10541555b61e7f461234b1e288467d8054387ad8a0972d5299447d96c375216bd0e645d5cb84ada3c45ed9d6efbc1d445816f1e2602e796b21b05f47700178f5b542d29cd5dfac400bc899bb89379e92df0735c41340a2e10d54eca394c9c8eb07c07e0bfd6ec1b9c0cadebff60c347f052daf2475c1eb3dc98291be6e400e757ae3c451a68c428d3123d5acd9515f0c0a3c9561e8571a32786c044e465152ebf6b1d2b8c9673b78c29c0811418d4869d58b7a0b60d62b2bad3d485e908a1d0502c920d7a4d82ab263b6857d6ad87a6bb763533eaf2eecb99b64d909f1e57d9bae93d77f91edcd11170cd57f5c02b44d413c66665c52b7b9b54e36b7a294c5f40c573dcb4d9f62e1fd58b4a940951db10c5410aa9de5d49464fcf97e29b15778daa9e63b2fd0b6d1f2a46cd427108b86607582dd20ced2a269e19d9e98af5e002cbfe6f5d3f5b8939ddfcb5af1048c2f1186fa736acde99cfed6f6f7892199f9c268167518a76ed2e20a22c5cfde17c48abbb3c25bea7fa4cab070f48e9fb34b361d66b53daf3e35b0c003275921ed07659340790ffbe68ce17505d1207c6ca3956655c5cab9133dbe765031b733c0a8de3ec0b26473772d682c50d9cdd4a1e3ece5603e7d021ff72d533a905aa9bbe31b780360bc91d73da045aa9830f94ab72f4c3f96cca0449f24b188eec4649da0ecc7c38160276a13fbe6e477528166afcf703f465c27a86369b3da2ff3d117169fe581a5966ffa9a82a65a261cfc3b1cae3769768c6eefa07cbe0b4ba58328557950d4e1677df9082b711b26bfa39bd40efef24bce25e2a2f07ab38d6297ddcad489341c47ce164fdb6eb28e3338fe24199e7c6f70641e7a6a54dff586096d923ba3d98ef972708defa22a5b421b8110da8950f20ba36313dfba4f1db8635e92158df881e9b34f7c7b7f81f7ed7ac57877f73abc689780a98e822c78a9f2a43fa31f065fca17cdcbe87344cbea6d230156e726de31bb388b3afe2e2d9bca24ecb4fc22fe63c0db283020b43dc049a932659ac6636e428004097cd8bbda87c6befc04cf3dec64502ae4f182f29df2be7688de3e385b419e69b64b6442d0b30d222ca5b15802b355102b3a399ad444f327334cb7207e840d0cb1626f369237e04a23c06dd9354309f96c795136870f2529a60a871b95a1e07ee9c3ae091f984206760b1d73b7bf48af8da8fc9fd9e1bfa1ea2ec6b9b2cd63b2d33b1bc056ce5be9d322d6303a987f63fa13600275b41b38e9f962e71833c9a1169c7b2d3dc7e66d1b5d353b8850a79007022085f480302ab2b467882233f053c37db1a5b6e0193db967b3fd123c16ef078e562555f76d96d207b31ef763a81c55b1dc47527ff920de5e8835d8f613e94155eeffcba7328a1b63e6879e4412cb4051ba82f3c56826fe0b91de1a573ae794c8aaf31440780ec32acfb780f7c33ae934ec76973baece50e74260c5885e884fc0ea3029183ae2745432d02dbdfe8b82231ab963dad954553221b1ebfb359ba55e92bd51ca972ad1f025210cdf7ef883724dfb5852f843b4aacf59189c9610e4a5802dd58d30abf1b95015c5d0a102d6458ea00e22ea45abf65b2220413ef044f16bb30eb774d4e6ce812ee5347243ca025586b7e29589f7a8a94c0a5075ff3545f5708fceef17ba98bea126e4b4196c8601d0c36e18167ec5e56b62944523fc7e66f515053528c0f15f2d8705ee2e12a25437dea3a22f09a918ad941e517b62697df35b7180be5ca4feb57c4184a6f3f8817029301a3c041d8952120e347b19ed5afe7a7a58a664e1fe3e026a9d02b07a1f1b208c945c450a4e7d1097243ea29952a6c597dbd55de24c543446da3088036c6d73c833de315ac61b98e097cf6b16dedf0fff59a84a8a9a07614e6c73c2dbcd93331ca406535b8c765648b071f47471c456e5fc6782faa88dbd85c718d1ad0041484489ae091581cd8e813a5bbcb2e4e590e1f8186042a6cfc6b0bcb0a1c6b59b62d99e1ac361f78df4dad981e353fcabca857a0b1afc518982c27268d511aa0d65ea000a5e9d02e3e3b6b39e60fa9b5da0495aed2c6a3d7512e65c1d48aa0d454e4934a45857456f2e232d26cec15cfcfa764a3bb562e27828100cfc482035b8374edbf7b7882f9a84702423db06af60bc12c6281a0507279aa9c733e1f3cd4828e90750e09a6c634dea0ca25950da5864c70688a8506db8f75d8612e585d9d1a48b28ebac753cf0d5985037e0d526e18fce17568b43296c39e07365abfdd47253761c20ba9372b9c83e00fda74e3d0db3668c829dbf99d53dd8f04caa9cd2d7d5d9ef793caf32ecfa5913a74ca0c6dcee0ad76626a0b5b87ad76b5000c8087ca2b770832108841de9bb1b83fad0c489665798fa2d6356de43bf1d0ee9c305b1465c305ea8ebec60d7f626fd6ef58d19492aaf6d0963f5c077da311cdb490b892ceede3242898bba3ca47deba336de77f0f8cde66d9a4f231fe240b14b72affaa95ceaab7304955191bed1997a1a023fa285a6e5779c81a3dfb88b1cb393256aaccfd4a917871d03b8bbb5453767715289d0e430d3e66822b3ae5daa40a6d5ada026907d2f888da02448dfb6b5f30043c96ef698bfe7e383f0661cb59195ed912d7bc043adce51c3cdc052625ed481ee4beec5b8230a4199614106a0e52d4cd99f6fe9b250fc9f112e47e5a76c223f067b8fd27384b61dfcc71cde8b8cd0a342d57626200f5487d9b1c4903287a6a42e24ddf6d8c6fbc5903a46b7d859fbd0912f1ca58ad3c0ebdd0f24c841ff40f2def1b224ae10e1b2d402c5c8b049a05c9881112fde0205df09a3fec1cd90f52f9a7a43b6f973e91535240e5bf3c49f86bdb38d6e1d1b99e7bce75cc96fd3e8a6cb21b55dc9cb53fb3996d2ea8da285d01896bbb62184b31edc2161182808a044e9389b18ef8927255d51f1e3dbefe3d9952e4e8b4dd4f1aa03c459a81e086028e48798470418b877ac2c310285eddf87a505351c46910b7df3b75559bf201da53817fa0d2b05b3ad21e1bb7b1fca3671e09d5743b98127d955a5adf6a26ec3edb4dd07a8732158554260cf5ecafa67075566f488f252e6c38ec2fb0934face6fc1cbae021136eb54d411d1e0694033e1f4da97fd7aa7ad82b95c3bf5533c8b901318a5056e85983ef4712048a99b6ac17eacb9b123c54f312accbe5c21c104432d451821e896426b695735a3ea2317418ce3eae29b202a910e937496c8925910103b2574f91273ba71da"}
|