buttplug 1.0.16 → 1.0.17

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.
@@ -58,7 +58,7 @@ webpackEmptyContext.id = "./src/buttplug-rs-ffi sync recursive";
58
58
  /*!************************************************!*\
59
59
  !*** ./src/buttplug-rs-ffi/buttplug_rs_ffi.js ***!
60
60
  \************************************************/
61
- /*! exports provided: buttplug_create_protobuf_client, buttplug_free_client, buttplug_client_protobuf_message, buttplug_create_device, buttplug_device_protobuf_message, buttplug_free_device, buttplug_activate_env_logger, __wbindgen_object_drop_ref, __wbindgen_string_new, __wbindgen_cb_drop, __wbg_log_35a94a6f9ba22278, __wbindgen_object_clone_ref, __wbg_new_59cb74e423758ede, __wbg_stack_558ba5917b466edd, __wbg_error_4bb6c2a97407129a, __wbg_log_b7dcb3facc73166d, __wbg_log_96295d68ab8338df, __wbg_mark_55c5ecfe509deb6a, __wbg_measure_608563106d70d48a, __wbg_Window_f826a1dec163bacb, __wbindgen_is_undefined, __wbg_WorkerGlobalScope_967d186155183d38, __wbg_instanceof_Window_fac4f1f8e3c61c1f, __wbg_navigator_f92994fb618b3c03, __wbg_clearTimeout_60252f615c569bcf, __wbg_setTimeout_56c7fbf887ce45de, __wbg_data_7cd3f124c3b5a69f, __wbg_value_03e8225239dbd7d8, __wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1, __wbg_readValue_69b87e4f58cc86cd, __wbg_startNotifications_9fa99b41b7caa34e, __wbg_writeValue_4aac2f49d8ed528b, __wbg_connect_a404ec0ee0473b28, __wbg_getPrimaryService_02f630a4fa89270e, __wbg_target_8eac1b471e53114d, __wbg_requestDevice_572ca20db5044981, __wbg_id_6a48553deb512e33, __wbg_name_de841b61e86e41a0, __wbg_gatt_948cc2b96fe1151a, __wbg_setongattserverdisconnected_dfb9d4668d265698, __wbg_clearTimeout_314f616ced084484, __wbg_setTimeout_7c4b174605b75e39, __wbg_bluetooth_6b5bab60cc8bb7c6, __wbg_setonopen_faba655bda608b5f, __wbg_setonerror_28e7c95e09d93ac7, __wbg_setonmessage_f64e20ef3929f315, __wbg_new_ef8bd7aae8c6ec3d, __wbg_close_5571385f58cb11b4, __wbg_send_d5d38801ffbb328e, __wbg_getCharacteristic_9f5a50aa9515729d, __wbg_getRandomValues_98117e9a7e993920, __wbg_randomFillSync_64cc7d048f228ca8, __wbg_process_2f24d6544ea7b200, __wbindgen_is_object, __wbg_versions_6164651e75405d4a, __wbg_node_4b517d861cbcb3bc, __wbg_crypto_98fc271021c7d2ad, __wbg_msCrypto_a2cdb043d2bfe57f, __wbg_modulerequire_3440a4bcf44437db, __wbg_new_ec75d0d5815be736, __wbg_newnoargs_1a11e7e8c906996c, __wbg_call_e91f71ddf1f45cff, __wbg_new_4b48f9f8159fea77, __wbg_push_0daae9343162dbe7, __wbg_buffer_04a22f1b4377e8b6, __wbg_byteLength_f539f83608347df8, __wbg_call_e3c72355d091d5d4, __wbg_resolve_7161ec6fd5b1cd29, __wbg_then_6d5072fec3fdb237, __wbg_then_4f3c7f6f3d36634a, __wbg_self_b4546ea7b590539e, __wbg_window_c279fea81f426a68, __wbg_globalThis_038a6ea0ff17789f, __wbg_global_4f93ce884bcee597, __wbg_buffer_79a3294266d4e783, __wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0, __wbg_new_945397fb09fec0b8, __wbg_set_223873223acf6d07, __wbg_length_68e13e7bbd918464, __wbg_newwithlength_b7722b5594f1dc21, __wbg_newwithbyteoffset_5abaa6f77edbdcec, __wbg_subarray_466613921b2fc6db, __wbg_set_d29a397c9cc5d746, __wbindgen_is_string, __wbindgen_string_get, __wbindgen_debug_string, __wbindgen_throw, __wbindgen_memory, __wbindgen_closure_wrapper195, __wbindgen_closure_wrapper197, __wbindgen_closure_wrapper199, __wbindgen_closure_wrapper201, __wbindgen_closure_wrapper2720, __wbindgen_closure_wrapper4521 */
61
+ /*! exports provided: buttplug_create_protobuf_client, buttplug_free_client, buttplug_client_protobuf_message, buttplug_create_device, buttplug_device_protobuf_message, buttplug_free_device, buttplug_activate_env_logger, __wbindgen_object_drop_ref, __wbindgen_cb_drop, __wbg_log_aedd6896ca471fe6, __wbindgen_string_new, __wbindgen_object_clone_ref, __wbindgen_is_string, __wbg_log_02e20a3c32305fb7, __wbg_log_5c7513aa8c164502, __wbg_mark_abc7631bdced64f0, __wbg_measure_c528ff64085b7146, __wbg_new_693216e109162396, __wbg_stack_0ddaca5d1abfb52f, __wbg_error_09919627ac0992f5, __wbg_Window_f826a1dec163bacb, __wbindgen_is_undefined, __wbg_WorkerGlobalScope_967d186155183d38, __wbg_instanceof_Window_c4b70662a0d2c5ec, __wbg_navigator_480e592af6ad365b, __wbg_clearTimeout_2c1ba0016d8bca41, __wbg_setTimeout_df66d951b1726b78, __wbg_data_9e55e7d79ab13ef1, __wbg_value_84cefeb2408dfe15, __wbg_setoncharacteristicvaluechanged_75ec7773e310719c, __wbg_readValue_eeee467eee29d9ab, __wbg_startNotifications_89d52c5da12f4a73, __wbg_writeValue_5045e53d65cf4416, __wbg_target_cc69dde6c2d9ec90, __wbindgen_string_get, __wbg_requestDevice_94797563349e93d8, __wbg_id_a762586fc34a710d, __wbg_name_48ead2aa58c91524, __wbg_gatt_bca8d85b97b18ec3, __wbg_setongattserverdisconnected_5e832e08b6b5f423, __wbg_clearTimeout_c1f246d6874c0679, __wbg_setTimeout_5314850184d61a44, __wbg_bluetooth_cc8e053613d8eeca, __wbg_setonopen_33b75427f7db7ce1, __wbg_setonerror_cb55f0521ac0da3a, __wbg_setonmessage_ca5f75e4a84134ef, __wbg_new_982fe22cd93d67f7, __wbg_close_f2a10c1de90df5f0, __wbg_send_503c2e7652e95bf5, __wbg_connect_e3ccb7d88e903a95, __wbg_getPrimaryService_e624e0982bcd83b1, __wbg_getCharacteristic_7d2869d1ad7151d2, __wbg_getRandomValues_98117e9a7e993920, __wbg_randomFillSync_64cc7d048f228ca8, __wbg_process_2f24d6544ea7b200, __wbindgen_is_object, __wbg_versions_6164651e75405d4a, __wbg_node_4b517d861cbcb3bc, __wbg_modulerequire_3440a4bcf44437db, __wbg_crypto_98fc271021c7d2ad, __wbg_msCrypto_a2cdb043d2bfe57f, __wbg_new_949bbc1147195c4e, __wbg_newnoargs_be86524d73f67598, __wbg_call_888d259a5fefc347, __wbg_new_0b83d3df67ecb33e, __wbg_push_284486ca27c6aa8b, __wbg_buffer_45280fecb82c83df, __wbg_byteLength_c9e4f1b2bae8fc4d, __wbg_call_346669c262382ad7, __wbg_resolve_d23068002f584f22, __wbg_then_2fcac196782070cc, __wbg_then_8c2d62e8ae5978f7, __wbg_self_c6fbdfc2918d5e58, __wbg_window_baec038b5ab35c54, __wbg_globalThis_3f735a5746d41fbd, __wbg_global_1bc0b39582740e95, __wbg_buffer_397eaa4d72ee94dd, __wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff, __wbg_new_a7ce447f15ff496f, __wbg_set_969ad0a60e51d320, __wbg_length_1eb8fc608a0d4cdb, __wbg_newwithlength_929232475839a482, __wbg_newwithbyteoffset_b638bad8cc090f32, __wbg_subarray_8b658422a224f479, __wbg_set_82a4e8a85e31ac42, __wbindgen_debug_string, __wbindgen_throw, __wbindgen_memory, __wbindgen_closure_wrapper256, __wbindgen_closure_wrapper258, __wbindgen_closure_wrapper260, __wbindgen_closure_wrapper262, __wbindgen_closure_wrapper2880, __wbindgen_closure_wrapper4637 */
62
62
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
63
63
 
64
64
  "use strict";
@@ -81,27 +81,29 @@ __webpack_require__.r(__webpack_exports__);
81
81
 
82
82
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_object_drop_ref", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_object_drop_ref"]; });
83
83
 
84
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_new", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_string_new"]; });
85
-
86
84
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_cb_drop", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_cb_drop"]; });
87
85
 
88
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_35a94a6f9ba22278", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_log_35a94a6f9ba22278"]; });
86
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_aedd6896ca471fe6", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_log_aedd6896ca471fe6"]; });
87
+
88
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_new", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_string_new"]; });
89
89
 
90
90
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_object_clone_ref", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_object_clone_ref"]; });
91
91
 
92
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_59cb74e423758ede", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_59cb74e423758ede"]; });
92
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_is_string", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_is_string"]; });
93
93
 
94
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_stack_558ba5917b466edd", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_stack_558ba5917b466edd"]; });
94
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_02e20a3c32305fb7", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_log_02e20a3c32305fb7"]; });
95
95
 
96
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_error_4bb6c2a97407129a", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_error_4bb6c2a97407129a"]; });
96
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_5c7513aa8c164502", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_log_5c7513aa8c164502"]; });
97
97
 
98
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_b7dcb3facc73166d", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_log_b7dcb3facc73166d"]; });
98
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_mark_abc7631bdced64f0", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_mark_abc7631bdced64f0"]; });
99
99
 
100
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_96295d68ab8338df", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_log_96295d68ab8338df"]; });
100
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_measure_c528ff64085b7146", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_measure_c528ff64085b7146"]; });
101
101
 
102
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_mark_55c5ecfe509deb6a", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_mark_55c5ecfe509deb6a"]; });
102
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_693216e109162396", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_693216e109162396"]; });
103
103
 
104
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_measure_608563106d70d48a", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_measure_608563106d70d48a"]; });
104
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_stack_0ddaca5d1abfb52f", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_stack_0ddaca5d1abfb52f"]; });
105
+
106
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_error_09919627ac0992f5", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_error_09919627ac0992f5"]; });
105
107
 
106
108
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_Window_f826a1dec163bacb", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_Window_f826a1dec163bacb"]; });
107
109
 
@@ -109,61 +111,63 @@ __webpack_require__.r(__webpack_exports__);
109
111
 
110
112
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_WorkerGlobalScope_967d186155183d38", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_WorkerGlobalScope_967d186155183d38"]; });
111
113
 
112
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_instanceof_Window_fac4f1f8e3c61c1f", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_instanceof_Window_fac4f1f8e3c61c1f"]; });
114
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_instanceof_Window_c4b70662a0d2c5ec", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_instanceof_Window_c4b70662a0d2c5ec"]; });
115
+
116
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_navigator_480e592af6ad365b", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_navigator_480e592af6ad365b"]; });
113
117
 
114
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_navigator_f92994fb618b3c03", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_navigator_f92994fb618b3c03"]; });
118
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_2c1ba0016d8bca41", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_clearTimeout_2c1ba0016d8bca41"]; });
115
119
 
116
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_60252f615c569bcf", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_clearTimeout_60252f615c569bcf"]; });
120
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_df66d951b1726b78", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setTimeout_df66d951b1726b78"]; });
117
121
 
118
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_56c7fbf887ce45de", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setTimeout_56c7fbf887ce45de"]; });
122
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_data_9e55e7d79ab13ef1", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_data_9e55e7d79ab13ef1"]; });
119
123
 
120
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_data_7cd3f124c3b5a69f", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_data_7cd3f124c3b5a69f"]; });
124
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_value_84cefeb2408dfe15", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_value_84cefeb2408dfe15"]; });
121
125
 
122
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_value_03e8225239dbd7d8", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_value_03e8225239dbd7d8"]; });
126
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setoncharacteristicvaluechanged_75ec7773e310719c", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setoncharacteristicvaluechanged_75ec7773e310719c"]; });
123
127
 
124
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1"]; });
128
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_readValue_eeee467eee29d9ab", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_readValue_eeee467eee29d9ab"]; });
125
129
 
126
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_readValue_69b87e4f58cc86cd", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_readValue_69b87e4f58cc86cd"]; });
130
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_startNotifications_89d52c5da12f4a73", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_startNotifications_89d52c5da12f4a73"]; });
127
131
 
128
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_startNotifications_9fa99b41b7caa34e", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_startNotifications_9fa99b41b7caa34e"]; });
132
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_writeValue_5045e53d65cf4416", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_writeValue_5045e53d65cf4416"]; });
129
133
 
130
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_writeValue_4aac2f49d8ed528b", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_writeValue_4aac2f49d8ed528b"]; });
134
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_target_cc69dde6c2d9ec90", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_target_cc69dde6c2d9ec90"]; });
131
135
 
132
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_connect_a404ec0ee0473b28", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_connect_a404ec0ee0473b28"]; });
136
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_get", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_string_get"]; });
133
137
 
134
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getPrimaryService_02f630a4fa89270e", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_getPrimaryService_02f630a4fa89270e"]; });
138
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_requestDevice_94797563349e93d8", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_requestDevice_94797563349e93d8"]; });
135
139
 
136
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_target_8eac1b471e53114d", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_target_8eac1b471e53114d"]; });
140
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_id_a762586fc34a710d", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_id_a762586fc34a710d"]; });
137
141
 
138
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_requestDevice_572ca20db5044981", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_requestDevice_572ca20db5044981"]; });
142
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_name_48ead2aa58c91524", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_name_48ead2aa58c91524"]; });
139
143
 
140
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_id_6a48553deb512e33", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_id_6a48553deb512e33"]; });
144
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_gatt_bca8d85b97b18ec3", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_gatt_bca8d85b97b18ec3"]; });
141
145
 
142
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_name_de841b61e86e41a0", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_name_de841b61e86e41a0"]; });
146
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setongattserverdisconnected_5e832e08b6b5f423", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setongattserverdisconnected_5e832e08b6b5f423"]; });
143
147
 
144
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_gatt_948cc2b96fe1151a", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_gatt_948cc2b96fe1151a"]; });
148
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_c1f246d6874c0679", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_clearTimeout_c1f246d6874c0679"]; });
145
149
 
146
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setongattserverdisconnected_dfb9d4668d265698", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setongattserverdisconnected_dfb9d4668d265698"]; });
150
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_5314850184d61a44", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setTimeout_5314850184d61a44"]; });
147
151
 
148
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_314f616ced084484", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_clearTimeout_314f616ced084484"]; });
152
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_bluetooth_cc8e053613d8eeca", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_bluetooth_cc8e053613d8eeca"]; });
149
153
 
150
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_7c4b174605b75e39", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setTimeout_7c4b174605b75e39"]; });
154
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonopen_33b75427f7db7ce1", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setonopen_33b75427f7db7ce1"]; });
151
155
 
152
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_bluetooth_6b5bab60cc8bb7c6", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_bluetooth_6b5bab60cc8bb7c6"]; });
156
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonerror_cb55f0521ac0da3a", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setonerror_cb55f0521ac0da3a"]; });
153
157
 
154
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonopen_faba655bda608b5f", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setonopen_faba655bda608b5f"]; });
158
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonmessage_ca5f75e4a84134ef", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setonmessage_ca5f75e4a84134ef"]; });
155
159
 
156
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonerror_28e7c95e09d93ac7", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setonerror_28e7c95e09d93ac7"]; });
160
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_982fe22cd93d67f7", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_982fe22cd93d67f7"]; });
157
161
 
158
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonmessage_f64e20ef3929f315", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_setonmessage_f64e20ef3929f315"]; });
162
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_close_f2a10c1de90df5f0", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_close_f2a10c1de90df5f0"]; });
159
163
 
160
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_ef8bd7aae8c6ec3d", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_ef8bd7aae8c6ec3d"]; });
164
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_send_503c2e7652e95bf5", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_send_503c2e7652e95bf5"]; });
161
165
 
162
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_close_5571385f58cb11b4", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_close_5571385f58cb11b4"]; });
166
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_connect_e3ccb7d88e903a95", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_connect_e3ccb7d88e903a95"]; });
163
167
 
164
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_send_d5d38801ffbb328e", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_send_d5d38801ffbb328e"]; });
168
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getPrimaryService_e624e0982bcd83b1", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_getPrimaryService_e624e0982bcd83b1"]; });
165
169
 
166
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getCharacteristic_9f5a50aa9515729d", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_getCharacteristic_9f5a50aa9515729d"]; });
170
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getCharacteristic_7d2869d1ad7151d2", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_getCharacteristic_7d2869d1ad7151d2"]; });
167
171
 
168
172
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getRandomValues_98117e9a7e993920", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_getRandomValues_98117e9a7e993920"]; });
169
173
 
@@ -177,63 +181,59 @@ __webpack_require__.r(__webpack_exports__);
177
181
 
178
182
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_node_4b517d861cbcb3bc", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_node_4b517d861cbcb3bc"]; });
179
183
 
180
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_crypto_98fc271021c7d2ad", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_crypto_98fc271021c7d2ad"]; });
181
-
182
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_msCrypto_a2cdb043d2bfe57f", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_msCrypto_a2cdb043d2bfe57f"]; });
183
-
184
184
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_modulerequire_3440a4bcf44437db", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_modulerequire_3440a4bcf44437db"]; });
185
185
 
186
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_ec75d0d5815be736", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_ec75d0d5815be736"]; });
186
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_crypto_98fc271021c7d2ad", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_crypto_98fc271021c7d2ad"]; });
187
187
 
188
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newnoargs_1a11e7e8c906996c", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_newnoargs_1a11e7e8c906996c"]; });
188
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_msCrypto_a2cdb043d2bfe57f", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_msCrypto_a2cdb043d2bfe57f"]; });
189
189
 
190
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_e91f71ddf1f45cff", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_call_e91f71ddf1f45cff"]; });
190
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_949bbc1147195c4e", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_949bbc1147195c4e"]; });
191
191
 
192
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_4b48f9f8159fea77", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_4b48f9f8159fea77"]; });
192
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newnoargs_be86524d73f67598", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_newnoargs_be86524d73f67598"]; });
193
193
 
194
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_push_0daae9343162dbe7", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_push_0daae9343162dbe7"]; });
194
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_888d259a5fefc347", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_call_888d259a5fefc347"]; });
195
195
 
196
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_04a22f1b4377e8b6", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_buffer_04a22f1b4377e8b6"]; });
196
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_0b83d3df67ecb33e", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_0b83d3df67ecb33e"]; });
197
197
 
198
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_byteLength_f539f83608347df8", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_byteLength_f539f83608347df8"]; });
198
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_push_284486ca27c6aa8b", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_push_284486ca27c6aa8b"]; });
199
199
 
200
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_e3c72355d091d5d4", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_call_e3c72355d091d5d4"]; });
200
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_45280fecb82c83df", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_buffer_45280fecb82c83df"]; });
201
201
 
202
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_resolve_7161ec6fd5b1cd29", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_resolve_7161ec6fd5b1cd29"]; });
202
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_byteLength_c9e4f1b2bae8fc4d", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_byteLength_c9e4f1b2bae8fc4d"]; });
203
203
 
204
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_6d5072fec3fdb237", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_then_6d5072fec3fdb237"]; });
204
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_346669c262382ad7", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_call_346669c262382ad7"]; });
205
205
 
206
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_4f3c7f6f3d36634a", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_then_4f3c7f6f3d36634a"]; });
206
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_resolve_d23068002f584f22", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_resolve_d23068002f584f22"]; });
207
207
 
208
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_self_b4546ea7b590539e", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_self_b4546ea7b590539e"]; });
208
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_2fcac196782070cc", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_then_2fcac196782070cc"]; });
209
209
 
210
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_window_c279fea81f426a68", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_window_c279fea81f426a68"]; });
210
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_8c2d62e8ae5978f7", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_then_8c2d62e8ae5978f7"]; });
211
211
 
212
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_globalThis_038a6ea0ff17789f", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_globalThis_038a6ea0ff17789f"]; });
212
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_self_c6fbdfc2918d5e58", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_self_c6fbdfc2918d5e58"]; });
213
213
 
214
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_global_4f93ce884bcee597", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_global_4f93ce884bcee597"]; });
214
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_window_baec038b5ab35c54", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_window_baec038b5ab35c54"]; });
215
215
 
216
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_79a3294266d4e783", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_buffer_79a3294266d4e783"]; });
216
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_globalThis_3f735a5746d41fbd", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_globalThis_3f735a5746d41fbd"]; });
217
217
 
218
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0"]; });
218
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_global_1bc0b39582740e95", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_global_1bc0b39582740e95"]; });
219
219
 
220
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_945397fb09fec0b8", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_945397fb09fec0b8"]; });
220
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_397eaa4d72ee94dd", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_buffer_397eaa4d72ee94dd"]; });
221
221
 
222
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_223873223acf6d07", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_set_223873223acf6d07"]; });
222
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff"]; });
223
223
 
224
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_length_68e13e7bbd918464", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_length_68e13e7bbd918464"]; });
224
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_a7ce447f15ff496f", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_new_a7ce447f15ff496f"]; });
225
225
 
226
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithlength_b7722b5594f1dc21", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_newwithlength_b7722b5594f1dc21"]; });
226
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_969ad0a60e51d320", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_set_969ad0a60e51d320"]; });
227
227
 
228
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffset_5abaa6f77edbdcec", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_newwithbyteoffset_5abaa6f77edbdcec"]; });
228
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_length_1eb8fc608a0d4cdb", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_length_1eb8fc608a0d4cdb"]; });
229
229
 
230
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_subarray_466613921b2fc6db", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_subarray_466613921b2fc6db"]; });
230
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithlength_929232475839a482", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_newwithlength_929232475839a482"]; });
231
231
 
232
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_d29a397c9cc5d746", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_set_d29a397c9cc5d746"]; });
232
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffset_b638bad8cc090f32", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_newwithbyteoffset_b638bad8cc090f32"]; });
233
233
 
234
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_is_string", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_is_string"]; });
234
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_subarray_8b658422a224f479", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_subarray_8b658422a224f479"]; });
235
235
 
236
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_get", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_string_get"]; });
236
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_82a4e8a85e31ac42", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbg_set_82a4e8a85e31ac42"]; });
237
237
 
238
238
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_debug_string", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_debug_string"]; });
239
239
 
@@ -241,17 +241,17 @@ __webpack_require__.r(__webpack_exports__);
241
241
 
242
242
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_memory", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_memory"]; });
243
243
 
244
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper195", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper195"]; });
244
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper256", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper256"]; });
245
245
 
246
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper197", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper197"]; });
246
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper258", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper258"]; });
247
247
 
248
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper199", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper199"]; });
248
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper260", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper260"]; });
249
249
 
250
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper201", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper201"]; });
250
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper262", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper262"]; });
251
251
 
252
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper2720", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper2720"]; });
252
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper2880", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper2880"]; });
253
253
 
254
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper4521", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper4521"]; });
254
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper4637", function() { return _buttplug_rs_ffi_bg_js__WEBPACK_IMPORTED_MODULE_1__["__wbindgen_closure_wrapper4637"]; });
255
255
 
256
256
 
257
257
 
@@ -262,7 +262,7 @@ __webpack_require__.r(__webpack_exports__);
262
262
  /*!***************************************************!*\
263
263
  !*** ./src/buttplug-rs-ffi/buttplug_rs_ffi_bg.js ***!
264
264
  \***************************************************/
265
- /*! exports provided: buttplug_create_protobuf_client, buttplug_free_client, buttplug_client_protobuf_message, buttplug_create_device, buttplug_device_protobuf_message, buttplug_free_device, buttplug_activate_env_logger, __wbindgen_object_drop_ref, __wbindgen_string_new, __wbindgen_cb_drop, __wbg_log_35a94a6f9ba22278, __wbindgen_object_clone_ref, __wbg_new_59cb74e423758ede, __wbg_stack_558ba5917b466edd, __wbg_error_4bb6c2a97407129a, __wbg_log_b7dcb3facc73166d, __wbg_log_96295d68ab8338df, __wbg_mark_55c5ecfe509deb6a, __wbg_measure_608563106d70d48a, __wbg_Window_f826a1dec163bacb, __wbindgen_is_undefined, __wbg_WorkerGlobalScope_967d186155183d38, __wbg_instanceof_Window_fac4f1f8e3c61c1f, __wbg_navigator_f92994fb618b3c03, __wbg_clearTimeout_60252f615c569bcf, __wbg_setTimeout_56c7fbf887ce45de, __wbg_data_7cd3f124c3b5a69f, __wbg_value_03e8225239dbd7d8, __wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1, __wbg_readValue_69b87e4f58cc86cd, __wbg_startNotifications_9fa99b41b7caa34e, __wbg_writeValue_4aac2f49d8ed528b, __wbg_connect_a404ec0ee0473b28, __wbg_getPrimaryService_02f630a4fa89270e, __wbg_target_8eac1b471e53114d, __wbg_requestDevice_572ca20db5044981, __wbg_id_6a48553deb512e33, __wbg_name_de841b61e86e41a0, __wbg_gatt_948cc2b96fe1151a, __wbg_setongattserverdisconnected_dfb9d4668d265698, __wbg_clearTimeout_314f616ced084484, __wbg_setTimeout_7c4b174605b75e39, __wbg_bluetooth_6b5bab60cc8bb7c6, __wbg_setonopen_faba655bda608b5f, __wbg_setonerror_28e7c95e09d93ac7, __wbg_setonmessage_f64e20ef3929f315, __wbg_new_ef8bd7aae8c6ec3d, __wbg_close_5571385f58cb11b4, __wbg_send_d5d38801ffbb328e, __wbg_getCharacteristic_9f5a50aa9515729d, __wbg_getRandomValues_98117e9a7e993920, __wbg_randomFillSync_64cc7d048f228ca8, __wbg_process_2f24d6544ea7b200, __wbindgen_is_object, __wbg_versions_6164651e75405d4a, __wbg_node_4b517d861cbcb3bc, __wbg_crypto_98fc271021c7d2ad, __wbg_msCrypto_a2cdb043d2bfe57f, __wbg_modulerequire_3440a4bcf44437db, __wbg_new_ec75d0d5815be736, __wbg_newnoargs_1a11e7e8c906996c, __wbg_call_e91f71ddf1f45cff, __wbg_new_4b48f9f8159fea77, __wbg_push_0daae9343162dbe7, __wbg_buffer_04a22f1b4377e8b6, __wbg_byteLength_f539f83608347df8, __wbg_call_e3c72355d091d5d4, __wbg_resolve_7161ec6fd5b1cd29, __wbg_then_6d5072fec3fdb237, __wbg_then_4f3c7f6f3d36634a, __wbg_self_b4546ea7b590539e, __wbg_window_c279fea81f426a68, __wbg_globalThis_038a6ea0ff17789f, __wbg_global_4f93ce884bcee597, __wbg_buffer_79a3294266d4e783, __wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0, __wbg_new_945397fb09fec0b8, __wbg_set_223873223acf6d07, __wbg_length_68e13e7bbd918464, __wbg_newwithlength_b7722b5594f1dc21, __wbg_newwithbyteoffset_5abaa6f77edbdcec, __wbg_subarray_466613921b2fc6db, __wbg_set_d29a397c9cc5d746, __wbindgen_is_string, __wbindgen_string_get, __wbindgen_debug_string, __wbindgen_throw, __wbindgen_memory, __wbindgen_closure_wrapper195, __wbindgen_closure_wrapper197, __wbindgen_closure_wrapper199, __wbindgen_closure_wrapper201, __wbindgen_closure_wrapper2720, __wbindgen_closure_wrapper4521 */
265
+ /*! exports provided: buttplug_create_protobuf_client, buttplug_free_client, buttplug_client_protobuf_message, buttplug_create_device, buttplug_device_protobuf_message, buttplug_free_device, buttplug_activate_env_logger, __wbindgen_object_drop_ref, __wbindgen_cb_drop, __wbg_log_aedd6896ca471fe6, __wbindgen_string_new, __wbindgen_object_clone_ref, __wbindgen_is_string, __wbg_log_02e20a3c32305fb7, __wbg_log_5c7513aa8c164502, __wbg_mark_abc7631bdced64f0, __wbg_measure_c528ff64085b7146, __wbg_new_693216e109162396, __wbg_stack_0ddaca5d1abfb52f, __wbg_error_09919627ac0992f5, __wbg_Window_f826a1dec163bacb, __wbindgen_is_undefined, __wbg_WorkerGlobalScope_967d186155183d38, __wbg_instanceof_Window_c4b70662a0d2c5ec, __wbg_navigator_480e592af6ad365b, __wbg_clearTimeout_2c1ba0016d8bca41, __wbg_setTimeout_df66d951b1726b78, __wbg_data_9e55e7d79ab13ef1, __wbg_value_84cefeb2408dfe15, __wbg_setoncharacteristicvaluechanged_75ec7773e310719c, __wbg_readValue_eeee467eee29d9ab, __wbg_startNotifications_89d52c5da12f4a73, __wbg_writeValue_5045e53d65cf4416, __wbg_target_cc69dde6c2d9ec90, __wbindgen_string_get, __wbg_requestDevice_94797563349e93d8, __wbg_id_a762586fc34a710d, __wbg_name_48ead2aa58c91524, __wbg_gatt_bca8d85b97b18ec3, __wbg_setongattserverdisconnected_5e832e08b6b5f423, __wbg_clearTimeout_c1f246d6874c0679, __wbg_setTimeout_5314850184d61a44, __wbg_bluetooth_cc8e053613d8eeca, __wbg_setonopen_33b75427f7db7ce1, __wbg_setonerror_cb55f0521ac0da3a, __wbg_setonmessage_ca5f75e4a84134ef, __wbg_new_982fe22cd93d67f7, __wbg_close_f2a10c1de90df5f0, __wbg_send_503c2e7652e95bf5, __wbg_connect_e3ccb7d88e903a95, __wbg_getPrimaryService_e624e0982bcd83b1, __wbg_getCharacteristic_7d2869d1ad7151d2, __wbg_getRandomValues_98117e9a7e993920, __wbg_randomFillSync_64cc7d048f228ca8, __wbg_process_2f24d6544ea7b200, __wbindgen_is_object, __wbg_versions_6164651e75405d4a, __wbg_node_4b517d861cbcb3bc, __wbg_modulerequire_3440a4bcf44437db, __wbg_crypto_98fc271021c7d2ad, __wbg_msCrypto_a2cdb043d2bfe57f, __wbg_new_949bbc1147195c4e, __wbg_newnoargs_be86524d73f67598, __wbg_call_888d259a5fefc347, __wbg_new_0b83d3df67ecb33e, __wbg_push_284486ca27c6aa8b, __wbg_buffer_45280fecb82c83df, __wbg_byteLength_c9e4f1b2bae8fc4d, __wbg_call_346669c262382ad7, __wbg_resolve_d23068002f584f22, __wbg_then_2fcac196782070cc, __wbg_then_8c2d62e8ae5978f7, __wbg_self_c6fbdfc2918d5e58, __wbg_window_baec038b5ab35c54, __wbg_globalThis_3f735a5746d41fbd, __wbg_global_1bc0b39582740e95, __wbg_buffer_397eaa4d72ee94dd, __wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff, __wbg_new_a7ce447f15ff496f, __wbg_set_969ad0a60e51d320, __wbg_length_1eb8fc608a0d4cdb, __wbg_newwithlength_929232475839a482, __wbg_newwithbyteoffset_b638bad8cc090f32, __wbg_subarray_8b658422a224f479, __wbg_set_82a4e8a85e31ac42, __wbindgen_debug_string, __wbindgen_throw, __wbindgen_memory, __wbindgen_closure_wrapper256, __wbindgen_closure_wrapper258, __wbindgen_closure_wrapper260, __wbindgen_closure_wrapper262, __wbindgen_closure_wrapper2880, __wbindgen_closure_wrapper4637 */
266
266
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
267
267
 
268
268
  "use strict";
@@ -284,27 +284,29 @@ __webpack_require__.r(__webpack_exports__);
284
284
 
285
285
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_object_drop_ref", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_object_drop_ref"]; });
286
286
 
287
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_new", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_string_new"]; });
288
-
289
287
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_cb_drop", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_cb_drop"]; });
290
288
 
291
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_35a94a6f9ba22278", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_log_35a94a6f9ba22278"]; });
289
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_aedd6896ca471fe6", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_log_aedd6896ca471fe6"]; });
290
+
291
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_new", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_string_new"]; });
292
292
 
293
293
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_object_clone_ref", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_object_clone_ref"]; });
294
294
 
295
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_59cb74e423758ede", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_59cb74e423758ede"]; });
295
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_is_string", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_is_string"]; });
296
+
297
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_02e20a3c32305fb7", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_log_02e20a3c32305fb7"]; });
296
298
 
297
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_stack_558ba5917b466edd", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_stack_558ba5917b466edd"]; });
299
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_5c7513aa8c164502", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_log_5c7513aa8c164502"]; });
298
300
 
299
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_error_4bb6c2a97407129a", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_error_4bb6c2a97407129a"]; });
301
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_mark_abc7631bdced64f0", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_mark_abc7631bdced64f0"]; });
300
302
 
301
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_b7dcb3facc73166d", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_log_b7dcb3facc73166d"]; });
303
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_measure_c528ff64085b7146", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_measure_c528ff64085b7146"]; });
302
304
 
303
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_96295d68ab8338df", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_log_96295d68ab8338df"]; });
305
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_693216e109162396", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_693216e109162396"]; });
304
306
 
305
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_mark_55c5ecfe509deb6a", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_mark_55c5ecfe509deb6a"]; });
307
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_stack_0ddaca5d1abfb52f", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_stack_0ddaca5d1abfb52f"]; });
306
308
 
307
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_measure_608563106d70d48a", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_measure_608563106d70d48a"]; });
309
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_error_09919627ac0992f5", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_error_09919627ac0992f5"]; });
308
310
 
309
311
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_Window_f826a1dec163bacb", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_Window_f826a1dec163bacb"]; });
310
312
 
@@ -312,61 +314,63 @@ __webpack_require__.r(__webpack_exports__);
312
314
 
313
315
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_WorkerGlobalScope_967d186155183d38", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_WorkerGlobalScope_967d186155183d38"]; });
314
316
 
315
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_instanceof_Window_fac4f1f8e3c61c1f", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_instanceof_Window_fac4f1f8e3c61c1f"]; });
317
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_instanceof_Window_c4b70662a0d2c5ec", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_instanceof_Window_c4b70662a0d2c5ec"]; });
316
318
 
317
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_navigator_f92994fb618b3c03", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_navigator_f92994fb618b3c03"]; });
319
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_navigator_480e592af6ad365b", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_navigator_480e592af6ad365b"]; });
318
320
 
319
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_60252f615c569bcf", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_clearTimeout_60252f615c569bcf"]; });
321
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_2c1ba0016d8bca41", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_clearTimeout_2c1ba0016d8bca41"]; });
320
322
 
321
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_56c7fbf887ce45de", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setTimeout_56c7fbf887ce45de"]; });
323
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_df66d951b1726b78", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setTimeout_df66d951b1726b78"]; });
322
324
 
323
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_data_7cd3f124c3b5a69f", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_data_7cd3f124c3b5a69f"]; });
325
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_data_9e55e7d79ab13ef1", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_data_9e55e7d79ab13ef1"]; });
324
326
 
325
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_value_03e8225239dbd7d8", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_value_03e8225239dbd7d8"]; });
327
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_value_84cefeb2408dfe15", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_value_84cefeb2408dfe15"]; });
326
328
 
327
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1"]; });
329
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setoncharacteristicvaluechanged_75ec7773e310719c", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setoncharacteristicvaluechanged_75ec7773e310719c"]; });
328
330
 
329
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_readValue_69b87e4f58cc86cd", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_readValue_69b87e4f58cc86cd"]; });
331
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_readValue_eeee467eee29d9ab", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_readValue_eeee467eee29d9ab"]; });
330
332
 
331
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_startNotifications_9fa99b41b7caa34e", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_startNotifications_9fa99b41b7caa34e"]; });
333
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_startNotifications_89d52c5da12f4a73", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_startNotifications_89d52c5da12f4a73"]; });
332
334
 
333
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_writeValue_4aac2f49d8ed528b", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_writeValue_4aac2f49d8ed528b"]; });
335
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_writeValue_5045e53d65cf4416", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_writeValue_5045e53d65cf4416"]; });
334
336
 
335
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_connect_a404ec0ee0473b28", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_connect_a404ec0ee0473b28"]; });
337
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_target_cc69dde6c2d9ec90", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_target_cc69dde6c2d9ec90"]; });
336
338
 
337
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getPrimaryService_02f630a4fa89270e", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_getPrimaryService_02f630a4fa89270e"]; });
339
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_get", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_string_get"]; });
340
+
341
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_requestDevice_94797563349e93d8", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_requestDevice_94797563349e93d8"]; });
338
342
 
339
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_target_8eac1b471e53114d", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_target_8eac1b471e53114d"]; });
343
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_id_a762586fc34a710d", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_id_a762586fc34a710d"]; });
340
344
 
341
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_requestDevice_572ca20db5044981", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_requestDevice_572ca20db5044981"]; });
345
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_name_48ead2aa58c91524", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_name_48ead2aa58c91524"]; });
342
346
 
343
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_id_6a48553deb512e33", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_id_6a48553deb512e33"]; });
347
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_gatt_bca8d85b97b18ec3", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_gatt_bca8d85b97b18ec3"]; });
344
348
 
345
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_name_de841b61e86e41a0", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_name_de841b61e86e41a0"]; });
349
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setongattserverdisconnected_5e832e08b6b5f423", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setongattserverdisconnected_5e832e08b6b5f423"]; });
346
350
 
347
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_gatt_948cc2b96fe1151a", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_gatt_948cc2b96fe1151a"]; });
351
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_c1f246d6874c0679", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_clearTimeout_c1f246d6874c0679"]; });
348
352
 
349
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setongattserverdisconnected_dfb9d4668d265698", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setongattserverdisconnected_dfb9d4668d265698"]; });
353
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_5314850184d61a44", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setTimeout_5314850184d61a44"]; });
350
354
 
351
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_314f616ced084484", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_clearTimeout_314f616ced084484"]; });
355
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_bluetooth_cc8e053613d8eeca", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_bluetooth_cc8e053613d8eeca"]; });
352
356
 
353
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_7c4b174605b75e39", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setTimeout_7c4b174605b75e39"]; });
357
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonopen_33b75427f7db7ce1", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setonopen_33b75427f7db7ce1"]; });
354
358
 
355
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_bluetooth_6b5bab60cc8bb7c6", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_bluetooth_6b5bab60cc8bb7c6"]; });
359
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonerror_cb55f0521ac0da3a", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setonerror_cb55f0521ac0da3a"]; });
356
360
 
357
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonopen_faba655bda608b5f", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setonopen_faba655bda608b5f"]; });
361
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonmessage_ca5f75e4a84134ef", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setonmessage_ca5f75e4a84134ef"]; });
358
362
 
359
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonerror_28e7c95e09d93ac7", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setonerror_28e7c95e09d93ac7"]; });
363
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_982fe22cd93d67f7", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_982fe22cd93d67f7"]; });
360
364
 
361
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonmessage_f64e20ef3929f315", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_setonmessage_f64e20ef3929f315"]; });
365
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_close_f2a10c1de90df5f0", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_close_f2a10c1de90df5f0"]; });
362
366
 
363
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_ef8bd7aae8c6ec3d", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_ef8bd7aae8c6ec3d"]; });
367
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_send_503c2e7652e95bf5", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_send_503c2e7652e95bf5"]; });
364
368
 
365
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_close_5571385f58cb11b4", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_close_5571385f58cb11b4"]; });
369
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_connect_e3ccb7d88e903a95", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_connect_e3ccb7d88e903a95"]; });
366
370
 
367
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_send_d5d38801ffbb328e", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_send_d5d38801ffbb328e"]; });
371
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getPrimaryService_e624e0982bcd83b1", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_getPrimaryService_e624e0982bcd83b1"]; });
368
372
 
369
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getCharacteristic_9f5a50aa9515729d", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_getCharacteristic_9f5a50aa9515729d"]; });
373
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getCharacteristic_7d2869d1ad7151d2", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_getCharacteristic_7d2869d1ad7151d2"]; });
370
374
 
371
375
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_getRandomValues_98117e9a7e993920", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_getRandomValues_98117e9a7e993920"]; });
372
376
 
@@ -380,63 +384,59 @@ __webpack_require__.r(__webpack_exports__);
380
384
 
381
385
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_node_4b517d861cbcb3bc", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_node_4b517d861cbcb3bc"]; });
382
386
 
383
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_crypto_98fc271021c7d2ad", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_crypto_98fc271021c7d2ad"]; });
384
-
385
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_msCrypto_a2cdb043d2bfe57f", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_msCrypto_a2cdb043d2bfe57f"]; });
386
-
387
387
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_modulerequire_3440a4bcf44437db", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_modulerequire_3440a4bcf44437db"]; });
388
388
 
389
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_ec75d0d5815be736", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_ec75d0d5815be736"]; });
389
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_crypto_98fc271021c7d2ad", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_crypto_98fc271021c7d2ad"]; });
390
390
 
391
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newnoargs_1a11e7e8c906996c", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_newnoargs_1a11e7e8c906996c"]; });
391
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_msCrypto_a2cdb043d2bfe57f", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_msCrypto_a2cdb043d2bfe57f"]; });
392
392
 
393
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_e91f71ddf1f45cff", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_call_e91f71ddf1f45cff"]; });
393
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_949bbc1147195c4e", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_949bbc1147195c4e"]; });
394
394
 
395
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_4b48f9f8159fea77", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_4b48f9f8159fea77"]; });
395
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newnoargs_be86524d73f67598", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_newnoargs_be86524d73f67598"]; });
396
396
 
397
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_push_0daae9343162dbe7", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_push_0daae9343162dbe7"]; });
397
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_888d259a5fefc347", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_call_888d259a5fefc347"]; });
398
398
 
399
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_04a22f1b4377e8b6", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_buffer_04a22f1b4377e8b6"]; });
399
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_0b83d3df67ecb33e", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_0b83d3df67ecb33e"]; });
400
400
 
401
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_byteLength_f539f83608347df8", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_byteLength_f539f83608347df8"]; });
401
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_push_284486ca27c6aa8b", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_push_284486ca27c6aa8b"]; });
402
402
 
403
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_e3c72355d091d5d4", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_call_e3c72355d091d5d4"]; });
403
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_45280fecb82c83df", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_buffer_45280fecb82c83df"]; });
404
404
 
405
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_resolve_7161ec6fd5b1cd29", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_resolve_7161ec6fd5b1cd29"]; });
405
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_byteLength_c9e4f1b2bae8fc4d", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_byteLength_c9e4f1b2bae8fc4d"]; });
406
406
 
407
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_6d5072fec3fdb237", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_then_6d5072fec3fdb237"]; });
407
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_346669c262382ad7", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_call_346669c262382ad7"]; });
408
408
 
409
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_4f3c7f6f3d36634a", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_then_4f3c7f6f3d36634a"]; });
409
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_resolve_d23068002f584f22", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_resolve_d23068002f584f22"]; });
410
410
 
411
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_self_b4546ea7b590539e", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_self_b4546ea7b590539e"]; });
411
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_2fcac196782070cc", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_then_2fcac196782070cc"]; });
412
412
 
413
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_window_c279fea81f426a68", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_window_c279fea81f426a68"]; });
413
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_8c2d62e8ae5978f7", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_then_8c2d62e8ae5978f7"]; });
414
414
 
415
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_globalThis_038a6ea0ff17789f", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_globalThis_038a6ea0ff17789f"]; });
415
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_self_c6fbdfc2918d5e58", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_self_c6fbdfc2918d5e58"]; });
416
416
 
417
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_global_4f93ce884bcee597", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_global_4f93ce884bcee597"]; });
417
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_window_baec038b5ab35c54", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_window_baec038b5ab35c54"]; });
418
418
 
419
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_79a3294266d4e783", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_buffer_79a3294266d4e783"]; });
419
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_globalThis_3f735a5746d41fbd", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_globalThis_3f735a5746d41fbd"]; });
420
420
 
421
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0"]; });
421
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_global_1bc0b39582740e95", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_global_1bc0b39582740e95"]; });
422
422
 
423
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_945397fb09fec0b8", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_945397fb09fec0b8"]; });
423
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_397eaa4d72ee94dd", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_buffer_397eaa4d72ee94dd"]; });
424
424
 
425
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_223873223acf6d07", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_set_223873223acf6d07"]; });
425
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff"]; });
426
426
 
427
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_length_68e13e7bbd918464", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_length_68e13e7bbd918464"]; });
427
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_a7ce447f15ff496f", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_new_a7ce447f15ff496f"]; });
428
428
 
429
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithlength_b7722b5594f1dc21", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_newwithlength_b7722b5594f1dc21"]; });
429
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_969ad0a60e51d320", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_set_969ad0a60e51d320"]; });
430
430
 
431
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffset_5abaa6f77edbdcec", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_newwithbyteoffset_5abaa6f77edbdcec"]; });
431
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_length_1eb8fc608a0d4cdb", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_length_1eb8fc608a0d4cdb"]; });
432
432
 
433
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_subarray_466613921b2fc6db", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_subarray_466613921b2fc6db"]; });
433
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithlength_929232475839a482", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_newwithlength_929232475839a482"]; });
434
434
 
435
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_d29a397c9cc5d746", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_set_d29a397c9cc5d746"]; });
435
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffset_b638bad8cc090f32", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_newwithbyteoffset_b638bad8cc090f32"]; });
436
436
 
437
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_is_string", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_is_string"]; });
437
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_subarray_8b658422a224f479", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_subarray_8b658422a224f479"]; });
438
438
 
439
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_get", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_string_get"]; });
439
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_82a4e8a85e31ac42", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbg_set_82a4e8a85e31ac42"]; });
440
440
 
441
441
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_debug_string", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_debug_string"]; });
442
442
 
@@ -444,17 +444,17 @@ __webpack_require__.r(__webpack_exports__);
444
444
 
445
445
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_memory", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_memory"]; });
446
446
 
447
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper195", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper195"]; });
447
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper256", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper256"]; });
448
448
 
449
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper197", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper197"]; });
449
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper258", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper258"]; });
450
450
 
451
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper199", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper199"]; });
451
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper260", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper260"]; });
452
452
 
453
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper201", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper201"]; });
453
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper262", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper262"]; });
454
454
 
455
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper2720", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper2720"]; });
455
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper2880", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper2880"]; });
456
456
 
457
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper4521", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper4521"]; });
457
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper4637", function() { return _buttplug_rs_ffi_bg__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_closure_wrapper4637"]; });
458
458
 
459
459
  // BEGIN_MODULARIZE
460
460
  // This file was modified by scripts/modularize.js to create Node ESM-compatible bindings.
@@ -470,7 +470,7 @@ __webpack_require__.r(__webpack_exports__);
470
470
  /*!*****************************************************!*\
471
471
  !*** ./src/buttplug-rs-ffi/buttplug_rs_ffi_bg.wasm ***!
472
472
  \*****************************************************/
473
- /*! exports provided: memory, buttplug_create_protobuf_client, buttplug_free_client, buttplug_client_protobuf_message, buttplug_create_device, buttplug_device_protobuf_message, buttplug_free_device, buttplug_activate_env_logger, __wbindgen_malloc, __wbindgen_realloc, __wbindgen_export_2, _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h55cd514d47359461, _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h156ece2f97a5dd4f, _dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h85292015a1bfaa36, __wbindgen_free, __wbindgen_exn_store */
473
+ /*! exports provided: memory, buttplug_create_protobuf_client, buttplug_free_client, buttplug_client_protobuf_message, buttplug_create_device, buttplug_device_protobuf_message, buttplug_free_device, buttplug_activate_env_logger, __wbindgen_malloc, __wbindgen_realloc, __wbindgen_export_2, _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h0801f0b68538ccb2, _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h6d5d487c79cfdf49, _dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha721fdbd23ca35f2, __wbindgen_free, __wbindgen_exn_store */
474
474
  /***/ (function(module, exports, __webpack_require__) {
475
475
 
476
476
  "use strict";
@@ -492,7 +492,7 @@ wasmExports["__webpack_init__"]()
492
492
  /*!*******************************************************!*\
493
493
  !*** ./src/buttplug-rs-ffi/buttplug_rs_ffi_bg_web.js ***!
494
494
  \*******************************************************/
495
- /*! exports provided: buttplug_create_protobuf_client, buttplug_free_client, buttplug_client_protobuf_message, buttplug_create_device, buttplug_device_protobuf_message, buttplug_free_device, buttplug_activate_env_logger, __wbindgen_object_drop_ref, __wbindgen_string_new, __wbindgen_cb_drop, __wbg_log_35a94a6f9ba22278, __wbindgen_object_clone_ref, __wbg_new_59cb74e423758ede, __wbg_stack_558ba5917b466edd, __wbg_error_4bb6c2a97407129a, __wbg_log_b7dcb3facc73166d, __wbg_log_96295d68ab8338df, __wbg_mark_55c5ecfe509deb6a, __wbg_measure_608563106d70d48a, __wbg_Window_f826a1dec163bacb, __wbindgen_is_undefined, __wbg_WorkerGlobalScope_967d186155183d38, __wbg_instanceof_Window_fac4f1f8e3c61c1f, __wbg_navigator_f92994fb618b3c03, __wbg_clearTimeout_60252f615c569bcf, __wbg_setTimeout_56c7fbf887ce45de, __wbg_data_7cd3f124c3b5a69f, __wbg_value_03e8225239dbd7d8, __wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1, __wbg_readValue_69b87e4f58cc86cd, __wbg_startNotifications_9fa99b41b7caa34e, __wbg_writeValue_4aac2f49d8ed528b, __wbg_connect_a404ec0ee0473b28, __wbg_getPrimaryService_02f630a4fa89270e, __wbg_target_8eac1b471e53114d, __wbg_requestDevice_572ca20db5044981, __wbg_id_6a48553deb512e33, __wbg_name_de841b61e86e41a0, __wbg_gatt_948cc2b96fe1151a, __wbg_setongattserverdisconnected_dfb9d4668d265698, __wbg_clearTimeout_314f616ced084484, __wbg_setTimeout_7c4b174605b75e39, __wbg_bluetooth_6b5bab60cc8bb7c6, __wbg_setonopen_faba655bda608b5f, __wbg_setonerror_28e7c95e09d93ac7, __wbg_setonmessage_f64e20ef3929f315, __wbg_new_ef8bd7aae8c6ec3d, __wbg_close_5571385f58cb11b4, __wbg_send_d5d38801ffbb328e, __wbg_getCharacteristic_9f5a50aa9515729d, __wbg_getRandomValues_98117e9a7e993920, __wbg_randomFillSync_64cc7d048f228ca8, __wbg_process_2f24d6544ea7b200, __wbindgen_is_object, __wbg_versions_6164651e75405d4a, __wbg_node_4b517d861cbcb3bc, __wbg_crypto_98fc271021c7d2ad, __wbg_msCrypto_a2cdb043d2bfe57f, __wbg_modulerequire_3440a4bcf44437db, __wbg_new_ec75d0d5815be736, __wbg_newnoargs_1a11e7e8c906996c, __wbg_call_e91f71ddf1f45cff, __wbg_new_4b48f9f8159fea77, __wbg_push_0daae9343162dbe7, __wbg_buffer_04a22f1b4377e8b6, __wbg_byteLength_f539f83608347df8, __wbg_call_e3c72355d091d5d4, __wbg_resolve_7161ec6fd5b1cd29, __wbg_then_6d5072fec3fdb237, __wbg_then_4f3c7f6f3d36634a, __wbg_self_b4546ea7b590539e, __wbg_window_c279fea81f426a68, __wbg_globalThis_038a6ea0ff17789f, __wbg_global_4f93ce884bcee597, __wbg_buffer_79a3294266d4e783, __wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0, __wbg_new_945397fb09fec0b8, __wbg_set_223873223acf6d07, __wbg_length_68e13e7bbd918464, __wbg_newwithlength_b7722b5594f1dc21, __wbg_newwithbyteoffset_5abaa6f77edbdcec, __wbg_subarray_466613921b2fc6db, __wbg_set_d29a397c9cc5d746, __wbindgen_is_string, __wbindgen_string_get, __wbindgen_debug_string, __wbindgen_throw, __wbindgen_memory, __wbindgen_closure_wrapper195, __wbindgen_closure_wrapper197, __wbindgen_closure_wrapper199, __wbindgen_closure_wrapper201, __wbindgen_closure_wrapper2720, __wbindgen_closure_wrapper4521 */
495
+ /*! exports provided: buttplug_create_protobuf_client, buttplug_free_client, buttplug_client_protobuf_message, buttplug_create_device, buttplug_device_protobuf_message, buttplug_free_device, buttplug_activate_env_logger, __wbindgen_object_drop_ref, __wbindgen_cb_drop, __wbg_log_aedd6896ca471fe6, __wbindgen_string_new, __wbindgen_object_clone_ref, __wbindgen_is_string, __wbg_log_02e20a3c32305fb7, __wbg_log_5c7513aa8c164502, __wbg_mark_abc7631bdced64f0, __wbg_measure_c528ff64085b7146, __wbg_new_693216e109162396, __wbg_stack_0ddaca5d1abfb52f, __wbg_error_09919627ac0992f5, __wbg_Window_f826a1dec163bacb, __wbindgen_is_undefined, __wbg_WorkerGlobalScope_967d186155183d38, __wbg_instanceof_Window_c4b70662a0d2c5ec, __wbg_navigator_480e592af6ad365b, __wbg_clearTimeout_2c1ba0016d8bca41, __wbg_setTimeout_df66d951b1726b78, __wbg_data_9e55e7d79ab13ef1, __wbg_value_84cefeb2408dfe15, __wbg_setoncharacteristicvaluechanged_75ec7773e310719c, __wbg_readValue_eeee467eee29d9ab, __wbg_startNotifications_89d52c5da12f4a73, __wbg_writeValue_5045e53d65cf4416, __wbg_target_cc69dde6c2d9ec90, __wbindgen_string_get, __wbg_requestDevice_94797563349e93d8, __wbg_id_a762586fc34a710d, __wbg_name_48ead2aa58c91524, __wbg_gatt_bca8d85b97b18ec3, __wbg_setongattserverdisconnected_5e832e08b6b5f423, __wbg_clearTimeout_c1f246d6874c0679, __wbg_setTimeout_5314850184d61a44, __wbg_bluetooth_cc8e053613d8eeca, __wbg_setonopen_33b75427f7db7ce1, __wbg_setonerror_cb55f0521ac0da3a, __wbg_setonmessage_ca5f75e4a84134ef, __wbg_new_982fe22cd93d67f7, __wbg_close_f2a10c1de90df5f0, __wbg_send_503c2e7652e95bf5, __wbg_connect_e3ccb7d88e903a95, __wbg_getPrimaryService_e624e0982bcd83b1, __wbg_getCharacteristic_7d2869d1ad7151d2, __wbg_getRandomValues_98117e9a7e993920, __wbg_randomFillSync_64cc7d048f228ca8, __wbg_process_2f24d6544ea7b200, __wbindgen_is_object, __wbg_versions_6164651e75405d4a, __wbg_node_4b517d861cbcb3bc, __wbg_modulerequire_3440a4bcf44437db, __wbg_crypto_98fc271021c7d2ad, __wbg_msCrypto_a2cdb043d2bfe57f, __wbg_new_949bbc1147195c4e, __wbg_newnoargs_be86524d73f67598, __wbg_call_888d259a5fefc347, __wbg_new_0b83d3df67ecb33e, __wbg_push_284486ca27c6aa8b, __wbg_buffer_45280fecb82c83df, __wbg_byteLength_c9e4f1b2bae8fc4d, __wbg_call_346669c262382ad7, __wbg_resolve_d23068002f584f22, __wbg_then_2fcac196782070cc, __wbg_then_8c2d62e8ae5978f7, __wbg_self_c6fbdfc2918d5e58, __wbg_window_baec038b5ab35c54, __wbg_globalThis_3f735a5746d41fbd, __wbg_global_1bc0b39582740e95, __wbg_buffer_397eaa4d72ee94dd, __wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff, __wbg_new_a7ce447f15ff496f, __wbg_set_969ad0a60e51d320, __wbg_length_1eb8fc608a0d4cdb, __wbg_newwithlength_929232475839a482, __wbg_newwithbyteoffset_b638bad8cc090f32, __wbg_subarray_8b658422a224f479, __wbg_set_82a4e8a85e31ac42, __wbindgen_debug_string, __wbindgen_throw, __wbindgen_memory, __wbindgen_closure_wrapper256, __wbindgen_closure_wrapper258, __wbindgen_closure_wrapper260, __wbindgen_closure_wrapper262, __wbindgen_closure_wrapper2880, __wbindgen_closure_wrapper4637 */
496
496
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
497
497
 
498
498
  "use strict";
@@ -505,92 +505,92 @@ __webpack_require__.r(__webpack_exports__);
505
505
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buttplug_free_device", function() { return buttplug_free_device; });
506
506
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buttplug_activate_env_logger", function() { return buttplug_activate_env_logger; });
507
507
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_object_drop_ref", function() { return __wbindgen_object_drop_ref; });
508
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_new", function() { return __wbindgen_string_new; });
509
508
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_cb_drop", function() { return __wbindgen_cb_drop; });
510
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_35a94a6f9ba22278", function() { return __wbg_log_35a94a6f9ba22278; });
509
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_aedd6896ca471fe6", function() { return __wbg_log_aedd6896ca471fe6; });
510
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_new", function() { return __wbindgen_string_new; });
511
511
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_object_clone_ref", function() { return __wbindgen_object_clone_ref; });
512
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_59cb74e423758ede", function() { return __wbg_new_59cb74e423758ede; });
513
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_stack_558ba5917b466edd", function() { return __wbg_stack_558ba5917b466edd; });
514
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_error_4bb6c2a97407129a", function() { return __wbg_error_4bb6c2a97407129a; });
515
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_b7dcb3facc73166d", function() { return __wbg_log_b7dcb3facc73166d; });
516
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_96295d68ab8338df", function() { return __wbg_log_96295d68ab8338df; });
517
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_mark_55c5ecfe509deb6a", function() { return __wbg_mark_55c5ecfe509deb6a; });
518
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_measure_608563106d70d48a", function() { return __wbg_measure_608563106d70d48a; });
512
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_is_string", function() { return __wbindgen_is_string; });
513
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_02e20a3c32305fb7", function() { return __wbg_log_02e20a3c32305fb7; });
514
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_log_5c7513aa8c164502", function() { return __wbg_log_5c7513aa8c164502; });
515
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_mark_abc7631bdced64f0", function() { return __wbg_mark_abc7631bdced64f0; });
516
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_measure_c528ff64085b7146", function() { return __wbg_measure_c528ff64085b7146; });
517
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_693216e109162396", function() { return __wbg_new_693216e109162396; });
518
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_stack_0ddaca5d1abfb52f", function() { return __wbg_stack_0ddaca5d1abfb52f; });
519
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_error_09919627ac0992f5", function() { return __wbg_error_09919627ac0992f5; });
519
520
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_Window_f826a1dec163bacb", function() { return __wbg_Window_f826a1dec163bacb; });
520
521
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_is_undefined", function() { return __wbindgen_is_undefined; });
521
522
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_WorkerGlobalScope_967d186155183d38", function() { return __wbg_WorkerGlobalScope_967d186155183d38; });
522
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_instanceof_Window_fac4f1f8e3c61c1f", function() { return __wbg_instanceof_Window_fac4f1f8e3c61c1f; });
523
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_navigator_f92994fb618b3c03", function() { return __wbg_navigator_f92994fb618b3c03; });
524
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_60252f615c569bcf", function() { return __wbg_clearTimeout_60252f615c569bcf; });
525
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_56c7fbf887ce45de", function() { return __wbg_setTimeout_56c7fbf887ce45de; });
526
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_data_7cd3f124c3b5a69f", function() { return __wbg_data_7cd3f124c3b5a69f; });
527
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_value_03e8225239dbd7d8", function() { return __wbg_value_03e8225239dbd7d8; });
528
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1", function() { return __wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1; });
529
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_readValue_69b87e4f58cc86cd", function() { return __wbg_readValue_69b87e4f58cc86cd; });
530
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_startNotifications_9fa99b41b7caa34e", function() { return __wbg_startNotifications_9fa99b41b7caa34e; });
531
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_writeValue_4aac2f49d8ed528b", function() { return __wbg_writeValue_4aac2f49d8ed528b; });
532
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_connect_a404ec0ee0473b28", function() { return __wbg_connect_a404ec0ee0473b28; });
533
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_getPrimaryService_02f630a4fa89270e", function() { return __wbg_getPrimaryService_02f630a4fa89270e; });
534
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_target_8eac1b471e53114d", function() { return __wbg_target_8eac1b471e53114d; });
535
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_requestDevice_572ca20db5044981", function() { return __wbg_requestDevice_572ca20db5044981; });
536
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_id_6a48553deb512e33", function() { return __wbg_id_6a48553deb512e33; });
537
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_name_de841b61e86e41a0", function() { return __wbg_name_de841b61e86e41a0; });
538
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_gatt_948cc2b96fe1151a", function() { return __wbg_gatt_948cc2b96fe1151a; });
539
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setongattserverdisconnected_dfb9d4668d265698", function() { return __wbg_setongattserverdisconnected_dfb9d4668d265698; });
540
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_314f616ced084484", function() { return __wbg_clearTimeout_314f616ced084484; });
541
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_7c4b174605b75e39", function() { return __wbg_setTimeout_7c4b174605b75e39; });
542
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_bluetooth_6b5bab60cc8bb7c6", function() { return __wbg_bluetooth_6b5bab60cc8bb7c6; });
543
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonopen_faba655bda608b5f", function() { return __wbg_setonopen_faba655bda608b5f; });
544
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonerror_28e7c95e09d93ac7", function() { return __wbg_setonerror_28e7c95e09d93ac7; });
545
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonmessage_f64e20ef3929f315", function() { return __wbg_setonmessage_f64e20ef3929f315; });
546
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_ef8bd7aae8c6ec3d", function() { return __wbg_new_ef8bd7aae8c6ec3d; });
547
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_close_5571385f58cb11b4", function() { return __wbg_close_5571385f58cb11b4; });
548
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_send_d5d38801ffbb328e", function() { return __wbg_send_d5d38801ffbb328e; });
549
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_getCharacteristic_9f5a50aa9515729d", function() { return __wbg_getCharacteristic_9f5a50aa9515729d; });
523
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_instanceof_Window_c4b70662a0d2c5ec", function() { return __wbg_instanceof_Window_c4b70662a0d2c5ec; });
524
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_navigator_480e592af6ad365b", function() { return __wbg_navigator_480e592af6ad365b; });
525
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_2c1ba0016d8bca41", function() { return __wbg_clearTimeout_2c1ba0016d8bca41; });
526
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_df66d951b1726b78", function() { return __wbg_setTimeout_df66d951b1726b78; });
527
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_data_9e55e7d79ab13ef1", function() { return __wbg_data_9e55e7d79ab13ef1; });
528
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_value_84cefeb2408dfe15", function() { return __wbg_value_84cefeb2408dfe15; });
529
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setoncharacteristicvaluechanged_75ec7773e310719c", function() { return __wbg_setoncharacteristicvaluechanged_75ec7773e310719c; });
530
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_readValue_eeee467eee29d9ab", function() { return __wbg_readValue_eeee467eee29d9ab; });
531
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_startNotifications_89d52c5da12f4a73", function() { return __wbg_startNotifications_89d52c5da12f4a73; });
532
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_writeValue_5045e53d65cf4416", function() { return __wbg_writeValue_5045e53d65cf4416; });
533
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_target_cc69dde6c2d9ec90", function() { return __wbg_target_cc69dde6c2d9ec90; });
534
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_get", function() { return __wbindgen_string_get; });
535
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_requestDevice_94797563349e93d8", function() { return __wbg_requestDevice_94797563349e93d8; });
536
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_id_a762586fc34a710d", function() { return __wbg_id_a762586fc34a710d; });
537
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_name_48ead2aa58c91524", function() { return __wbg_name_48ead2aa58c91524; });
538
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_gatt_bca8d85b97b18ec3", function() { return __wbg_gatt_bca8d85b97b18ec3; });
539
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setongattserverdisconnected_5e832e08b6b5f423", function() { return __wbg_setongattserverdisconnected_5e832e08b6b5f423; });
540
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_clearTimeout_c1f246d6874c0679", function() { return __wbg_clearTimeout_c1f246d6874c0679; });
541
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setTimeout_5314850184d61a44", function() { return __wbg_setTimeout_5314850184d61a44; });
542
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_bluetooth_cc8e053613d8eeca", function() { return __wbg_bluetooth_cc8e053613d8eeca; });
543
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonopen_33b75427f7db7ce1", function() { return __wbg_setonopen_33b75427f7db7ce1; });
544
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonerror_cb55f0521ac0da3a", function() { return __wbg_setonerror_cb55f0521ac0da3a; });
545
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_setonmessage_ca5f75e4a84134ef", function() { return __wbg_setonmessage_ca5f75e4a84134ef; });
546
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_982fe22cd93d67f7", function() { return __wbg_new_982fe22cd93d67f7; });
547
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_close_f2a10c1de90df5f0", function() { return __wbg_close_f2a10c1de90df5f0; });
548
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_send_503c2e7652e95bf5", function() { return __wbg_send_503c2e7652e95bf5; });
549
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_connect_e3ccb7d88e903a95", function() { return __wbg_connect_e3ccb7d88e903a95; });
550
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_getPrimaryService_e624e0982bcd83b1", function() { return __wbg_getPrimaryService_e624e0982bcd83b1; });
551
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_getCharacteristic_7d2869d1ad7151d2", function() { return __wbg_getCharacteristic_7d2869d1ad7151d2; });
550
552
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_getRandomValues_98117e9a7e993920", function() { return __wbg_getRandomValues_98117e9a7e993920; });
551
553
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_randomFillSync_64cc7d048f228ca8", function() { return __wbg_randomFillSync_64cc7d048f228ca8; });
552
554
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_process_2f24d6544ea7b200", function() { return __wbg_process_2f24d6544ea7b200; });
553
555
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_is_object", function() { return __wbindgen_is_object; });
554
556
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_versions_6164651e75405d4a", function() { return __wbg_versions_6164651e75405d4a; });
555
557
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_node_4b517d861cbcb3bc", function() { return __wbg_node_4b517d861cbcb3bc; });
558
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_modulerequire_3440a4bcf44437db", function() { return __wbg_modulerequire_3440a4bcf44437db; });
556
559
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_crypto_98fc271021c7d2ad", function() { return __wbg_crypto_98fc271021c7d2ad; });
557
560
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_msCrypto_a2cdb043d2bfe57f", function() { return __wbg_msCrypto_a2cdb043d2bfe57f; });
558
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_modulerequire_3440a4bcf44437db", function() { return __wbg_modulerequire_3440a4bcf44437db; });
559
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_ec75d0d5815be736", function() { return __wbg_new_ec75d0d5815be736; });
560
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_newnoargs_1a11e7e8c906996c", function() { return __wbg_newnoargs_1a11e7e8c906996c; });
561
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_e91f71ddf1f45cff", function() { return __wbg_call_e91f71ddf1f45cff; });
562
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_4b48f9f8159fea77", function() { return __wbg_new_4b48f9f8159fea77; });
563
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_push_0daae9343162dbe7", function() { return __wbg_push_0daae9343162dbe7; });
564
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_04a22f1b4377e8b6", function() { return __wbg_buffer_04a22f1b4377e8b6; });
565
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_byteLength_f539f83608347df8", function() { return __wbg_byteLength_f539f83608347df8; });
566
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_e3c72355d091d5d4", function() { return __wbg_call_e3c72355d091d5d4; });
567
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_resolve_7161ec6fd5b1cd29", function() { return __wbg_resolve_7161ec6fd5b1cd29; });
568
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_6d5072fec3fdb237", function() { return __wbg_then_6d5072fec3fdb237; });
569
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_4f3c7f6f3d36634a", function() { return __wbg_then_4f3c7f6f3d36634a; });
570
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_self_b4546ea7b590539e", function() { return __wbg_self_b4546ea7b590539e; });
571
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_window_c279fea81f426a68", function() { return __wbg_window_c279fea81f426a68; });
572
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_globalThis_038a6ea0ff17789f", function() { return __wbg_globalThis_038a6ea0ff17789f; });
573
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_global_4f93ce884bcee597", function() { return __wbg_global_4f93ce884bcee597; });
574
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_79a3294266d4e783", function() { return __wbg_buffer_79a3294266d4e783; });
575
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0", function() { return __wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0; });
576
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_945397fb09fec0b8", function() { return __wbg_new_945397fb09fec0b8; });
577
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_223873223acf6d07", function() { return __wbg_set_223873223acf6d07; });
578
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_length_68e13e7bbd918464", function() { return __wbg_length_68e13e7bbd918464; });
579
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithlength_b7722b5594f1dc21", function() { return __wbg_newwithlength_b7722b5594f1dc21; });
580
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffset_5abaa6f77edbdcec", function() { return __wbg_newwithbyteoffset_5abaa6f77edbdcec; });
581
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_subarray_466613921b2fc6db", function() { return __wbg_subarray_466613921b2fc6db; });
582
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_d29a397c9cc5d746", function() { return __wbg_set_d29a397c9cc5d746; });
583
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_is_string", function() { return __wbindgen_is_string; });
584
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_string_get", function() { return __wbindgen_string_get; });
561
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_949bbc1147195c4e", function() { return __wbg_new_949bbc1147195c4e; });
562
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_newnoargs_be86524d73f67598", function() { return __wbg_newnoargs_be86524d73f67598; });
563
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_888d259a5fefc347", function() { return __wbg_call_888d259a5fefc347; });
564
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_0b83d3df67ecb33e", function() { return __wbg_new_0b83d3df67ecb33e; });
565
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_push_284486ca27c6aa8b", function() { return __wbg_push_284486ca27c6aa8b; });
566
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_45280fecb82c83df", function() { return __wbg_buffer_45280fecb82c83df; });
567
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_byteLength_c9e4f1b2bae8fc4d", function() { return __wbg_byteLength_c9e4f1b2bae8fc4d; });
568
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_call_346669c262382ad7", function() { return __wbg_call_346669c262382ad7; });
569
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_resolve_d23068002f584f22", function() { return __wbg_resolve_d23068002f584f22; });
570
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_2fcac196782070cc", function() { return __wbg_then_2fcac196782070cc; });
571
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_then_8c2d62e8ae5978f7", function() { return __wbg_then_8c2d62e8ae5978f7; });
572
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_self_c6fbdfc2918d5e58", function() { return __wbg_self_c6fbdfc2918d5e58; });
573
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_window_baec038b5ab35c54", function() { return __wbg_window_baec038b5ab35c54; });
574
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_globalThis_3f735a5746d41fbd", function() { return __wbg_globalThis_3f735a5746d41fbd; });
575
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_global_1bc0b39582740e95", function() { return __wbg_global_1bc0b39582740e95; });
576
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_buffer_397eaa4d72ee94dd", function() { return __wbg_buffer_397eaa4d72ee94dd; });
577
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff", function() { return __wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff; });
578
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_new_a7ce447f15ff496f", function() { return __wbg_new_a7ce447f15ff496f; });
579
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_969ad0a60e51d320", function() { return __wbg_set_969ad0a60e51d320; });
580
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_length_1eb8fc608a0d4cdb", function() { return __wbg_length_1eb8fc608a0d4cdb; });
581
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithlength_929232475839a482", function() { return __wbg_newwithlength_929232475839a482; });
582
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_newwithbyteoffset_b638bad8cc090f32", function() { return __wbg_newwithbyteoffset_b638bad8cc090f32; });
583
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_subarray_8b658422a224f479", function() { return __wbg_subarray_8b658422a224f479; });
584
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbg_set_82a4e8a85e31ac42", function() { return __wbg_set_82a4e8a85e31ac42; });
585
585
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_debug_string", function() { return __wbindgen_debug_string; });
586
586
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_throw", function() { return __wbindgen_throw; });
587
587
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_memory", function() { return __wbindgen_memory; });
588
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper195", function() { return __wbindgen_closure_wrapper195; });
589
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper197", function() { return __wbindgen_closure_wrapper197; });
590
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper199", function() { return __wbindgen_closure_wrapper199; });
591
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper201", function() { return __wbindgen_closure_wrapper201; });
592
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper2720", function() { return __wbindgen_closure_wrapper2720; });
593
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper4521", function() { return __wbindgen_closure_wrapper4521; });
588
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper256", function() { return __wbindgen_closure_wrapper256; });
589
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper258", function() { return __wbindgen_closure_wrapper258; });
590
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper260", function() { return __wbindgen_closure_wrapper260; });
591
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper262", function() { return __wbindgen_closure_wrapper262; });
592
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper2880", function() { return __wbindgen_closure_wrapper2880; });
593
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__wbindgen_closure_wrapper4637", function() { return __wbindgen_closure_wrapper4637; });
594
594
  /* harmony import */ var _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./buttplug_rs_ffi_bg.wasm */ "./src/buttplug-rs-ffi/buttplug_rs_ffi_bg.wasm");
595
595
  // BEGIN_MODULARIZE
596
596
  // This file was modified by scripts/modularize.js to create Node ESM-compatible bindings.
@@ -804,27 +804,27 @@ function makeMutClosure(arg0, arg1, dtor, f) {
804
804
  return real;
805
805
  }
806
806
  function __wbg_adapter_24(arg0, arg1, arg2) {
807
- _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h55cd514d47359461"](arg0, arg1, addHeapObject(arg2));
807
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h0801f0b68538ccb2"](arg0, arg1, addHeapObject(arg2));
808
808
  }
809
809
 
810
810
  function __wbg_adapter_27(arg0, arg1, arg2) {
811
- _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h55cd514d47359461"](arg0, arg1, addHeapObject(arg2));
811
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h0801f0b68538ccb2"](arg0, arg1, addHeapObject(arg2));
812
812
  }
813
813
 
814
814
  function __wbg_adapter_30(arg0, arg1, arg2) {
815
- _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h55cd514d47359461"](arg0, arg1, addHeapObject(arg2));
815
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h0801f0b68538ccb2"](arg0, arg1, addHeapObject(arg2));
816
816
  }
817
817
 
818
818
  function __wbg_adapter_33(arg0, arg1, arg2) {
819
- _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h55cd514d47359461"](arg0, arg1, addHeapObject(arg2));
819
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h0801f0b68538ccb2"](arg0, arg1, addHeapObject(arg2));
820
820
  }
821
821
 
822
822
  function __wbg_adapter_36(arg0, arg1, arg2) {
823
- _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h156ece2f97a5dd4f"](arg0, arg1, addHeapObject(arg2));
823
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h6d5d487c79cfdf49"](arg0, arg1, addHeapObject(arg2));
824
824
  }
825
825
 
826
826
  function __wbg_adapter_39(arg0, arg1) {
827
- _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h85292015a1bfaa36"](arg0, arg1);
827
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["_dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha721fdbd23ca35f2"](arg0, arg1);
828
828
  }
829
829
 
830
830
  let stack_pointer = 32;
@@ -930,11 +930,6 @@ function __wbindgen_object_drop_ref(arg0) {
930
930
  takeObject(arg0);
931
931
  };
932
932
 
933
- function __wbindgen_string_new(arg0, arg1) {
934
- var ret = getStringFromWasm0(arg0, arg1);
935
- return addHeapObject(ret);
936
- };
937
-
938
933
  function __wbindgen_cb_drop(arg0) {
939
934
  const obj = takeObject(arg0).original;
940
935
  if (obj.cnt-- == 1) {
@@ -945,50 +940,73 @@ function __wbindgen_cb_drop(arg0) {
945
940
  return ret;
946
941
  };
947
942
 
948
- function __wbg_log_35a94a6f9ba22278(arg0, arg1) {
943
+ function __wbg_log_aedd6896ca471fe6(arg0, arg1) {
949
944
  console.log(getStringFromWasm0(arg0, arg1));
950
945
  };
951
946
 
947
+ function __wbindgen_string_new(arg0, arg1) {
948
+ var ret = getStringFromWasm0(arg0, arg1);
949
+ return addHeapObject(ret);
950
+ };
951
+
952
952
  function __wbindgen_object_clone_ref(arg0) {
953
953
  var ret = getObject(arg0);
954
954
  return addHeapObject(ret);
955
955
  };
956
956
 
957
- function __wbg_new_59cb74e423758ede() {
958
- var ret = new Error();
959
- return addHeapObject(ret);
957
+ function __wbindgen_is_string(arg0) {
958
+ var ret = typeof(getObject(arg0)) === 'string';
959
+ return ret;
960
960
  };
961
961
 
962
- function __wbg_stack_558ba5917b466edd(arg0, arg1) {
963
- var ret = getObject(arg1).stack;
964
- var ptr0 = passStringToWasm0(ret, _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_malloc"], _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_realloc"]);
965
- var len0 = WASM_VECTOR_LEN;
966
- getInt32Memory0()[arg0 / 4 + 1] = len0;
967
- getInt32Memory0()[arg0 / 4 + 0] = ptr0;
962
+ function __wbg_log_02e20a3c32305fb7(arg0, arg1) {
963
+ try {
964
+ console.log(getStringFromWasm0(arg0, arg1));
965
+ } finally {
966
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_free"](arg0, arg1);
967
+ }
968
968
  };
969
969
 
970
- function __wbg_error_4bb6c2a97407129a(arg0, arg1) {
970
+ function __wbg_log_5c7513aa8c164502(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
971
971
  try {
972
- console.error(getStringFromWasm0(arg0, arg1));
972
+ console.log(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3), getStringFromWasm0(arg4, arg5), getStringFromWasm0(arg6, arg7));
973
973
  } finally {
974
974
  _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_free"](arg0, arg1);
975
975
  }
976
976
  };
977
977
 
978
- function __wbg_log_b7dcb3facc73166d(arg0, arg1) {
979
- console.log(getStringFromWasm0(arg0, arg1));
978
+ function __wbg_mark_abc7631bdced64f0(arg0, arg1) {
979
+ performance.mark(getStringFromWasm0(arg0, arg1));
980
980
  };
981
981
 
982
- function __wbg_log_96295d68ab8338df(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
983
- console.log(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3), getStringFromWasm0(arg4, arg5), getStringFromWasm0(arg6, arg7));
982
+ function __wbg_measure_c528ff64085b7146() { return handleError(function (arg0, arg1, arg2, arg3) {
983
+ try {
984
+ performance.measure(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
985
+ } finally {
986
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_free"](arg0, arg1);
987
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_free"](arg2, arg3);
988
+ }
989
+ }, arguments) };
990
+
991
+ function __wbg_new_693216e109162396() {
992
+ var ret = new Error();
993
+ return addHeapObject(ret);
984
994
  };
985
995
 
986
- function __wbg_mark_55c5ecfe509deb6a(arg0, arg1) {
987
- performance.mark(getStringFromWasm0(arg0, arg1));
996
+ function __wbg_stack_0ddaca5d1abfb52f(arg0, arg1) {
997
+ var ret = getObject(arg1).stack;
998
+ var ptr0 = passStringToWasm0(ret, _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_malloc"], _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_realloc"]);
999
+ var len0 = WASM_VECTOR_LEN;
1000
+ getInt32Memory0()[arg0 / 4 + 1] = len0;
1001
+ getInt32Memory0()[arg0 / 4 + 0] = ptr0;
988
1002
  };
989
1003
 
990
- function __wbg_measure_608563106d70d48a(arg0, arg1, arg2, arg3) {
991
- performance.measure(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
1004
+ function __wbg_error_09919627ac0992f5(arg0, arg1) {
1005
+ try {
1006
+ console.error(getStringFromWasm0(arg0, arg1));
1007
+ } finally {
1008
+ _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_free"](arg0, arg1);
1009
+ }
992
1010
  };
993
1011
 
994
1012
  function __wbg_Window_f826a1dec163bacb(arg0) {
@@ -1006,75 +1024,74 @@ function __wbg_WorkerGlobalScope_967d186155183d38(arg0) {
1006
1024
  return addHeapObject(ret);
1007
1025
  };
1008
1026
 
1009
- function __wbg_instanceof_Window_fac4f1f8e3c61c1f(arg0) {
1027
+ function __wbg_instanceof_Window_c4b70662a0d2c5ec(arg0) {
1010
1028
  var ret = getObject(arg0) instanceof Window;
1011
1029
  return ret;
1012
1030
  };
1013
1031
 
1014
- function __wbg_navigator_f92994fb618b3c03(arg0) {
1032
+ function __wbg_navigator_480e592af6ad365b(arg0) {
1015
1033
  var ret = getObject(arg0).navigator;
1016
1034
  return addHeapObject(ret);
1017
1035
  };
1018
1036
 
1019
- function __wbg_clearTimeout_60252f615c569bcf(arg0, arg1) {
1037
+ function __wbg_clearTimeout_2c1ba0016d8bca41(arg0, arg1) {
1020
1038
  getObject(arg0).clearTimeout(arg1);
1021
1039
  };
1022
1040
 
1023
- function __wbg_setTimeout_56c7fbf887ce45de() { return handleError(function (arg0, arg1, arg2) {
1041
+ function __wbg_setTimeout_df66d951b1726b78() { return handleError(function (arg0, arg1, arg2) {
1024
1042
  var ret = getObject(arg0).setTimeout(getObject(arg1), arg2);
1025
1043
  return ret;
1026
1044
  }, arguments) };
1027
1045
 
1028
- function __wbg_data_7cd3f124c3b5a69f(arg0) {
1046
+ function __wbg_data_9e55e7d79ab13ef1(arg0) {
1029
1047
  var ret = getObject(arg0).data;
1030
1048
  return addHeapObject(ret);
1031
1049
  };
1032
1050
 
1033
- function __wbg_value_03e8225239dbd7d8(arg0) {
1051
+ function __wbg_value_84cefeb2408dfe15(arg0) {
1034
1052
  var ret = getObject(arg0).value;
1035
1053
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
1036
1054
  };
1037
1055
 
1038
- function __wbg_setoncharacteristicvaluechanged_0cee0979d99dc9d1(arg0, arg1) {
1056
+ function __wbg_setoncharacteristicvaluechanged_75ec7773e310719c(arg0, arg1) {
1039
1057
  getObject(arg0).oncharacteristicvaluechanged = getObject(arg1);
1040
1058
  };
1041
1059
 
1042
- function __wbg_readValue_69b87e4f58cc86cd(arg0) {
1060
+ function __wbg_readValue_eeee467eee29d9ab(arg0) {
1043
1061
  var ret = getObject(arg0).readValue();
1044
1062
  return addHeapObject(ret);
1045
1063
  };
1046
1064
 
1047
- function __wbg_startNotifications_9fa99b41b7caa34e(arg0) {
1065
+ function __wbg_startNotifications_89d52c5da12f4a73(arg0) {
1048
1066
  var ret = getObject(arg0).startNotifications();
1049
1067
  return addHeapObject(ret);
1050
1068
  };
1051
1069
 
1052
- function __wbg_writeValue_4aac2f49d8ed528b(arg0, arg1, arg2) {
1070
+ function __wbg_writeValue_5045e53d65cf4416(arg0, arg1, arg2) {
1053
1071
  var ret = getObject(arg0).writeValue(getArrayU8FromWasm0(arg1, arg2));
1054
1072
  return addHeapObject(ret);
1055
1073
  };
1056
1074
 
1057
- function __wbg_connect_a404ec0ee0473b28(arg0) {
1058
- var ret = getObject(arg0).connect();
1059
- return addHeapObject(ret);
1060
- };
1061
-
1062
- function __wbg_getPrimaryService_02f630a4fa89270e(arg0, arg1, arg2) {
1063
- var ret = getObject(arg0).getPrimaryService(getStringFromWasm0(arg1, arg2));
1064
- return addHeapObject(ret);
1065
- };
1066
-
1067
- function __wbg_target_8eac1b471e53114d(arg0) {
1075
+ function __wbg_target_cc69dde6c2d9ec90(arg0) {
1068
1076
  var ret = getObject(arg0).target;
1069
1077
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
1070
1078
  };
1071
1079
 
1072
- function __wbg_requestDevice_572ca20db5044981(arg0, arg1) {
1080
+ function __wbindgen_string_get(arg0, arg1) {
1081
+ const obj = getObject(arg1);
1082
+ var ret = typeof(obj) === 'string' ? obj : undefined;
1083
+ var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_malloc"], _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_realloc"]);
1084
+ var len0 = WASM_VECTOR_LEN;
1085
+ getInt32Memory0()[arg0 / 4 + 1] = len0;
1086
+ getInt32Memory0()[arg0 / 4 + 0] = ptr0;
1087
+ };
1088
+
1089
+ function __wbg_requestDevice_94797563349e93d8(arg0, arg1) {
1073
1090
  var ret = getObject(arg0).requestDevice(getObject(arg1));
1074
1091
  return addHeapObject(ret);
1075
1092
  };
1076
1093
 
1077
- function __wbg_id_6a48553deb512e33(arg0, arg1) {
1094
+ function __wbg_id_a762586fc34a710d(arg0, arg1) {
1078
1095
  var ret = getObject(arg1).id;
1079
1096
  var ptr0 = passStringToWasm0(ret, _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_malloc"], _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_realloc"]);
1080
1097
  var len0 = WASM_VECTOR_LEN;
@@ -1082,7 +1099,7 @@ function __wbg_id_6a48553deb512e33(arg0, arg1) {
1082
1099
  getInt32Memory0()[arg0 / 4 + 0] = ptr0;
1083
1100
  };
1084
1101
 
1085
- function __wbg_name_de841b61e86e41a0(arg0, arg1) {
1102
+ function __wbg_name_48ead2aa58c91524(arg0, arg1) {
1086
1103
  var ret = getObject(arg1).name;
1087
1104
  var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_malloc"], _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_realloc"]);
1088
1105
  var len0 = WASM_VECTOR_LEN;
@@ -1090,55 +1107,65 @@ function __wbg_name_de841b61e86e41a0(arg0, arg1) {
1090
1107
  getInt32Memory0()[arg0 / 4 + 0] = ptr0;
1091
1108
  };
1092
1109
 
1093
- function __wbg_gatt_948cc2b96fe1151a(arg0) {
1110
+ function __wbg_gatt_bca8d85b97b18ec3(arg0) {
1094
1111
  var ret = getObject(arg0).gatt;
1095
1112
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
1096
1113
  };
1097
1114
 
1098
- function __wbg_setongattserverdisconnected_dfb9d4668d265698(arg0, arg1) {
1115
+ function __wbg_setongattserverdisconnected_5e832e08b6b5f423(arg0, arg1) {
1099
1116
  getObject(arg0).ongattserverdisconnected = getObject(arg1);
1100
1117
  };
1101
1118
 
1102
- function __wbg_clearTimeout_314f616ced084484(arg0, arg1) {
1119
+ function __wbg_clearTimeout_c1f246d6874c0679(arg0, arg1) {
1103
1120
  getObject(arg0).clearTimeout(arg1);
1104
1121
  };
1105
1122
 
1106
- function __wbg_setTimeout_7c4b174605b75e39() { return handleError(function (arg0, arg1, arg2) {
1123
+ function __wbg_setTimeout_5314850184d61a44() { return handleError(function (arg0, arg1, arg2) {
1107
1124
  var ret = getObject(arg0).setTimeout(getObject(arg1), arg2);
1108
1125
  return ret;
1109
1126
  }, arguments) };
1110
1127
 
1111
- function __wbg_bluetooth_6b5bab60cc8bb7c6(arg0) {
1128
+ function __wbg_bluetooth_cc8e053613d8eeca(arg0) {
1112
1129
  var ret = getObject(arg0).bluetooth;
1113
1130
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
1114
1131
  };
1115
1132
 
1116
- function __wbg_setonopen_faba655bda608b5f(arg0, arg1) {
1133
+ function __wbg_setonopen_33b75427f7db7ce1(arg0, arg1) {
1117
1134
  getObject(arg0).onopen = getObject(arg1);
1118
1135
  };
1119
1136
 
1120
- function __wbg_setonerror_28e7c95e09d93ac7(arg0, arg1) {
1137
+ function __wbg_setonerror_cb55f0521ac0da3a(arg0, arg1) {
1121
1138
  getObject(arg0).onerror = getObject(arg1);
1122
1139
  };
1123
1140
 
1124
- function __wbg_setonmessage_f64e20ef3929f315(arg0, arg1) {
1141
+ function __wbg_setonmessage_ca5f75e4a84134ef(arg0, arg1) {
1125
1142
  getObject(arg0).onmessage = getObject(arg1);
1126
1143
  };
1127
1144
 
1128
- function __wbg_new_ef8bd7aae8c6ec3d() { return handleError(function (arg0, arg1) {
1145
+ function __wbg_new_982fe22cd93d67f7() { return handleError(function (arg0, arg1) {
1129
1146
  var ret = new WebSocket(getStringFromWasm0(arg0, arg1));
1130
1147
  return addHeapObject(ret);
1131
1148
  }, arguments) };
1132
1149
 
1133
- function __wbg_close_5571385f58cb11b4() { return handleError(function (arg0) {
1150
+ function __wbg_close_f2a10c1de90df5f0() { return handleError(function (arg0) {
1134
1151
  getObject(arg0).close();
1135
1152
  }, arguments) };
1136
1153
 
1137
- function __wbg_send_d5d38801ffbb328e() { return handleError(function (arg0, arg1, arg2) {
1154
+ function __wbg_send_503c2e7652e95bf5() { return handleError(function (arg0, arg1, arg2) {
1138
1155
  getObject(arg0).send(getStringFromWasm0(arg1, arg2));
1139
1156
  }, arguments) };
1140
1157
 
1141
- function __wbg_getCharacteristic_9f5a50aa9515729d(arg0, arg1, arg2) {
1158
+ function __wbg_connect_e3ccb7d88e903a95(arg0) {
1159
+ var ret = getObject(arg0).connect();
1160
+ return addHeapObject(ret);
1161
+ };
1162
+
1163
+ function __wbg_getPrimaryService_e624e0982bcd83b1(arg0, arg1, arg2) {
1164
+ var ret = getObject(arg0).getPrimaryService(getStringFromWasm0(arg1, arg2));
1165
+ return addHeapObject(ret);
1166
+ };
1167
+
1168
+ function __wbg_getCharacteristic_7d2869d1ad7151d2(arg0, arg1, arg2) {
1142
1169
  var ret = getObject(arg0).getCharacteristic(getStringFromWasm0(arg1, arg2));
1143
1170
  return addHeapObject(ret);
1144
1171
  };
@@ -1172,6 +1199,11 @@ function __wbg_node_4b517d861cbcb3bc(arg0) {
1172
1199
  return addHeapObject(ret);
1173
1200
  };
1174
1201
 
1202
+ function __wbg_modulerequire_3440a4bcf44437db() { return handleError(function (arg0, arg1) {
1203
+ var ret = __webpack_require__("./src/buttplug-rs-ffi sync recursive")(getStringFromWasm0(arg0, arg1));
1204
+ return addHeapObject(ret);
1205
+ }, arguments) };
1206
+
1175
1207
  function __wbg_crypto_98fc271021c7d2ad(arg0) {
1176
1208
  var ret = getObject(arg0).crypto;
1177
1209
  return addHeapObject(ret);
@@ -1182,144 +1214,125 @@ function __wbg_msCrypto_a2cdb043d2bfe57f(arg0) {
1182
1214
  return addHeapObject(ret);
1183
1215
  };
1184
1216
 
1185
- function __wbg_modulerequire_3440a4bcf44437db() { return handleError(function (arg0, arg1) {
1186
- var ret = __webpack_require__("./src/buttplug-rs-ffi sync recursive")(getStringFromWasm0(arg0, arg1));
1187
- return addHeapObject(ret);
1188
- }, arguments) };
1189
-
1190
- function __wbg_new_ec75d0d5815be736() {
1217
+ function __wbg_new_949bbc1147195c4e() {
1191
1218
  var ret = new Array();
1192
1219
  return addHeapObject(ret);
1193
1220
  };
1194
1221
 
1195
- function __wbg_newnoargs_1a11e7e8c906996c(arg0, arg1) {
1222
+ function __wbg_newnoargs_be86524d73f67598(arg0, arg1) {
1196
1223
  var ret = new Function(getStringFromWasm0(arg0, arg1));
1197
1224
  return addHeapObject(ret);
1198
1225
  };
1199
1226
 
1200
- function __wbg_call_e91f71ddf1f45cff() { return handleError(function (arg0, arg1) {
1227
+ function __wbg_call_888d259a5fefc347() { return handleError(function (arg0, arg1) {
1201
1228
  var ret = getObject(arg0).call(getObject(arg1));
1202
1229
  return addHeapObject(ret);
1203
1230
  }, arguments) };
1204
1231
 
1205
- function __wbg_new_4b48f9f8159fea77() {
1232
+ function __wbg_new_0b83d3df67ecb33e() {
1206
1233
  var ret = new Object();
1207
1234
  return addHeapObject(ret);
1208
1235
  };
1209
1236
 
1210
- function __wbg_push_0daae9343162dbe7(arg0, arg1) {
1237
+ function __wbg_push_284486ca27c6aa8b(arg0, arg1) {
1211
1238
  var ret = getObject(arg0).push(getObject(arg1));
1212
1239
  return ret;
1213
1240
  };
1214
1241
 
1215
- function __wbg_buffer_04a22f1b4377e8b6(arg0) {
1242
+ function __wbg_buffer_45280fecb82c83df(arg0) {
1216
1243
  var ret = getObject(arg0).buffer;
1217
1244
  return addHeapObject(ret);
1218
1245
  };
1219
1246
 
1220
- function __wbg_byteLength_f539f83608347df8(arg0) {
1247
+ function __wbg_byteLength_c9e4f1b2bae8fc4d(arg0) {
1221
1248
  var ret = getObject(arg0).byteLength;
1222
1249
  return ret;
1223
1250
  };
1224
1251
 
1225
- function __wbg_call_e3c72355d091d5d4() { return handleError(function (arg0, arg1, arg2) {
1252
+ function __wbg_call_346669c262382ad7() { return handleError(function (arg0, arg1, arg2) {
1226
1253
  var ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
1227
1254
  return addHeapObject(ret);
1228
1255
  }, arguments) };
1229
1256
 
1230
- function __wbg_resolve_7161ec6fd5b1cd29(arg0) {
1257
+ function __wbg_resolve_d23068002f584f22(arg0) {
1231
1258
  var ret = Promise.resolve(getObject(arg0));
1232
1259
  return addHeapObject(ret);
1233
1260
  };
1234
1261
 
1235
- function __wbg_then_6d5072fec3fdb237(arg0, arg1) {
1262
+ function __wbg_then_2fcac196782070cc(arg0, arg1) {
1236
1263
  var ret = getObject(arg0).then(getObject(arg1));
1237
1264
  return addHeapObject(ret);
1238
1265
  };
1239
1266
 
1240
- function __wbg_then_4f3c7f6f3d36634a(arg0, arg1, arg2) {
1267
+ function __wbg_then_8c2d62e8ae5978f7(arg0, arg1, arg2) {
1241
1268
  var ret = getObject(arg0).then(getObject(arg1), getObject(arg2));
1242
1269
  return addHeapObject(ret);
1243
1270
  };
1244
1271
 
1245
- function __wbg_self_b4546ea7b590539e() { return handleError(function () {
1272
+ function __wbg_self_c6fbdfc2918d5e58() { return handleError(function () {
1246
1273
  var ret = self.self;
1247
1274
  return addHeapObject(ret);
1248
1275
  }, arguments) };
1249
1276
 
1250
- function __wbg_window_c279fea81f426a68() { return handleError(function () {
1277
+ function __wbg_window_baec038b5ab35c54() { return handleError(function () {
1251
1278
  var ret = window.window;
1252
1279
  return addHeapObject(ret);
1253
1280
  }, arguments) };
1254
1281
 
1255
- function __wbg_globalThis_038a6ea0ff17789f() { return handleError(function () {
1282
+ function __wbg_globalThis_3f735a5746d41fbd() { return handleError(function () {
1256
1283
  var ret = globalThis.globalThis;
1257
1284
  return addHeapObject(ret);
1258
1285
  }, arguments) };
1259
1286
 
1260
- function __wbg_global_4f93ce884bcee597() { return handleError(function () {
1287
+ function __wbg_global_1bc0b39582740e95() { return handleError(function () {
1261
1288
  var ret = global.global;
1262
1289
  return addHeapObject(ret);
1263
1290
  }, arguments) };
1264
1291
 
1265
- function __wbg_buffer_79a3294266d4e783(arg0) {
1292
+ function __wbg_buffer_397eaa4d72ee94dd(arg0) {
1266
1293
  var ret = getObject(arg0).buffer;
1267
1294
  return addHeapObject(ret);
1268
1295
  };
1269
1296
 
1270
- function __wbg_newwithbyteoffsetandlength_22a36e6023ad3cd0(arg0, arg1, arg2) {
1297
+ function __wbg_newwithbyteoffsetandlength_4b9b8c4e3f5adbff(arg0, arg1, arg2) {
1271
1298
  var ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);
1272
1299
  return addHeapObject(ret);
1273
1300
  };
1274
1301
 
1275
- function __wbg_new_945397fb09fec0b8(arg0) {
1302
+ function __wbg_new_a7ce447f15ff496f(arg0) {
1276
1303
  var ret = new Uint8Array(getObject(arg0));
1277
1304
  return addHeapObject(ret);
1278
1305
  };
1279
1306
 
1280
- function __wbg_set_223873223acf6d07(arg0, arg1, arg2) {
1307
+ function __wbg_set_969ad0a60e51d320(arg0, arg1, arg2) {
1281
1308
  getObject(arg0).set(getObject(arg1), arg2 >>> 0);
1282
1309
  };
1283
1310
 
1284
- function __wbg_length_68e13e7bbd918464(arg0) {
1311
+ function __wbg_length_1eb8fc608a0d4cdb(arg0) {
1285
1312
  var ret = getObject(arg0).length;
1286
1313
  return ret;
1287
1314
  };
1288
1315
 
1289
- function __wbg_newwithlength_b7722b5594f1dc21(arg0) {
1316
+ function __wbg_newwithlength_929232475839a482(arg0) {
1290
1317
  var ret = new Uint8Array(arg0 >>> 0);
1291
1318
  return addHeapObject(ret);
1292
1319
  };
1293
1320
 
1294
- function __wbg_newwithbyteoffset_5abaa6f77edbdcec(arg0, arg1) {
1321
+ function __wbg_newwithbyteoffset_b638bad8cc090f32(arg0, arg1) {
1295
1322
  var ret = new Uint8Array(getObject(arg0), arg1 >>> 0);
1296
1323
  return addHeapObject(ret);
1297
1324
  };
1298
1325
 
1299
- function __wbg_subarray_466613921b2fc6db(arg0, arg1, arg2) {
1326
+ function __wbg_subarray_8b658422a224f479(arg0, arg1, arg2) {
1300
1327
  var ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);
1301
1328
  return addHeapObject(ret);
1302
1329
  };
1303
1330
 
1304
- function __wbg_set_d29a397c9cc5d746() { return handleError(function (arg0, arg1, arg2) {
1331
+ function __wbg_set_82a4e8a85e31ac42() { return handleError(function (arg0, arg1, arg2) {
1305
1332
  var ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));
1306
1333
  return ret;
1307
1334
  }, arguments) };
1308
1335
 
1309
- function __wbindgen_is_string(arg0) {
1310
- var ret = typeof(getObject(arg0)) === 'string';
1311
- return ret;
1312
- };
1313
-
1314
- function __wbindgen_string_get(arg0, arg1) {
1315
- const obj = getObject(arg1);
1316
- var ret = typeof(obj) === 'string' ? obj : undefined;
1317
- var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_malloc"], _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_realloc"]);
1318
- var len0 = WASM_VECTOR_LEN;
1319
- getInt32Memory0()[arg0 / 4 + 1] = len0;
1320
- getInt32Memory0()[arg0 / 4 + 0] = ptr0;
1321
- };
1322
-
1323
1336
  function __wbindgen_debug_string(arg0, arg1) {
1324
1337
  var ret = debugString(getObject(arg1));
1325
1338
  var ptr0 = passStringToWasm0(ret, _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_malloc"], _buttplug_rs_ffi_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["__wbindgen_realloc"]);
@@ -1337,33 +1350,33 @@ function __wbindgen_memory() {
1337
1350
  return addHeapObject(ret);
1338
1351
  };
1339
1352
 
1340
- function __wbindgen_closure_wrapper195(arg0, arg1, arg2) {
1341
- var ret = makeMutClosure(arg0, arg1, 20, __wbg_adapter_24);
1353
+ function __wbindgen_closure_wrapper256(arg0, arg1, arg2) {
1354
+ var ret = makeMutClosure(arg0, arg1, 60, __wbg_adapter_24);
1342
1355
  return addHeapObject(ret);
1343
1356
  };
1344
1357
 
1345
- function __wbindgen_closure_wrapper197(arg0, arg1, arg2) {
1346
- var ret = makeMutClosure(arg0, arg1, 20, __wbg_adapter_27);
1358
+ function __wbindgen_closure_wrapper258(arg0, arg1, arg2) {
1359
+ var ret = makeMutClosure(arg0, arg1, 60, __wbg_adapter_27);
1347
1360
  return addHeapObject(ret);
1348
1361
  };
1349
1362
 
1350
- function __wbindgen_closure_wrapper199(arg0, arg1, arg2) {
1351
- var ret = makeMutClosure(arg0, arg1, 20, __wbg_adapter_30);
1363
+ function __wbindgen_closure_wrapper260(arg0, arg1, arg2) {
1364
+ var ret = makeMutClosure(arg0, arg1, 60, __wbg_adapter_30);
1352
1365
  return addHeapObject(ret);
1353
1366
  };
1354
1367
 
1355
- function __wbindgen_closure_wrapper201(arg0, arg1, arg2) {
1356
- var ret = makeMutClosure(arg0, arg1, 20, __wbg_adapter_33);
1368
+ function __wbindgen_closure_wrapper262(arg0, arg1, arg2) {
1369
+ var ret = makeMutClosure(arg0, arg1, 60, __wbg_adapter_33);
1357
1370
  return addHeapObject(ret);
1358
1371
  };
1359
1372
 
1360
- function __wbindgen_closure_wrapper2720(arg0, arg1, arg2) {
1361
- var ret = makeMutClosure(arg0, arg1, 1414, __wbg_adapter_36);
1373
+ function __wbindgen_closure_wrapper2880(arg0, arg1, arg2) {
1374
+ var ret = makeMutClosure(arg0, arg1, 1529, __wbg_adapter_36);
1362
1375
  return addHeapObject(ret);
1363
1376
  };
1364
1377
 
1365
- function __wbindgen_closure_wrapper4521(arg0, arg1, arg2) {
1366
- var ret = makeMutClosure(arg0, arg1, 2179, __wbg_adapter_39);
1378
+ function __wbindgen_closure_wrapper4637(arg0, arg1, arg2) {
1379
+ var ret = makeMutClosure(arg0, arg1, 2283, __wbg_adapter_39);
1367
1380
  return addHeapObject(ret);
1368
1381
  };
1369
1382
 
@@ -1373,4 +1386,4 @@ function __wbindgen_closure_wrapper4521(arg0, arg1, arg2) {
1373
1386
  /***/ })
1374
1387
 
1375
1388
  }]);
1376
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9CdXR0cGx1Zy8od2VicGFjaykvYnVpbGRpbi9oYXJtb255LW1vZHVsZS5qcyIsIndlYnBhY2s6Ly9CdXR0cGx1Zy8uL3NyYy9idXR0cGx1Zy1ycy1mZmkgc3luYyIsIndlYnBhY2s6Ly9CdXR0cGx1Zy8uL3NyYy9idXR0cGx1Zy1ycy1mZmkvYnV0dHBsdWdfcnNfZmZpLmpzIiwid2VicGFjazovL0J1dHRwbHVnLy4vc3JjL2J1dHRwbHVnLXJzLWZmaS9idXR0cGx1Z19yc19mZmlfYmcuanMiLCJ3ZWJwYWNrOi8vQnV0dHBsdWcvLi9zcmMvYnV0dHBsdWctcnMtZmZpL2J1dHRwbHVnX3JzX2ZmaV9iZ193ZWIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxXQUFXO0FBQ2xEO0FBQ0E7QUFDQSxnRTs7Ozs7Ozs7Ozs7O0FDUkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFrRDs7Ozs7Ozs7Ozs7OztBQ0FsRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNMcEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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RCwwRUFBc0IsRUFBRSwyRUFBdUI7QUFDM0c7QUFDQTtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBLHNDQUFzQywwRUFBc0IsRUFBRSwyRUFBdUI7QUFDckY7QUFDQTtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBOztBQUVPO0FBQ1AsY0FBYywrREFBVztBQUN6QjtBQUNBOztBQUVPO0FBQ1A7QUFDQTtBQUNBOztBQUVPO0FBQ1A7QUFDQTtBQUNBOztBQUVPO0FBQ1A7QUFDQTtBQUNBOztBQUVPO0FBQ1A7QUFDQTtBQUNBOztBQUVPO0FBQ1A7QUFDQTtBQUNBOztBQUVPO0FBQ1A7QUFDQTtBQUNBIiwiZmlsZSI6IjAuYnV0dHBsdWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9yaWdpbmFsTW9kdWxlKSB7XG5cdGlmICghb3JpZ2luYWxNb2R1bGUud2VicGFja1BvbHlmaWxsKSB7XG5cdFx0dmFyIG1vZHVsZSA9IE9iamVjdC5jcmVhdGUob3JpZ2luYWxNb2R1bGUpO1xuXHRcdC8vIG1vZHVsZS5wYXJlbnQgPSB1bmRlZmluZWQgYnkgZGVmYXVsdFxuXHRcdGlmICghbW9kdWxlLmNoaWxkcmVuKSBtb2R1bGUuY2hpbGRyZW4gPSBbXTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImxvYWRlZFwiLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIG1vZHVsZS5sO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsIFwiaWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUuaTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImV4cG9ydHNcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZVxuXHRcdH0pO1xuXHRcdG1vZHVsZS53ZWJwYWNrUG9seWZpbGwgPSAxO1xuXHR9XG5cdHJldHVybiBtb2R1bGU7XG59O1xuIiwiZnVuY3Rpb24gd2VicGFja0VtcHR5Q29udGV4dChyZXEpIHtcblx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRlLmNvZGUgPSAnTU9EVUxFX05PVF9GT1VORCc7XG5cdHRocm93IGU7XG59XG53ZWJwYWNrRW1wdHlDb250ZXh0LmtleXMgPSBmdW5jdGlvbigpIHsgcmV0dXJuIFtdOyB9O1xud2VicGFja0VtcHR5Q29udGV4dC5yZXNvbHZlID0gd2VicGFja0VtcHR5Q29udGV4dDtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0VtcHR5Q29udGV4dDtcbndlYnBhY2tFbXB0eUNvbnRleHQuaWQgPSBcIi4vc3JjL2J1dHRwbHVnLXJzLWZmaSBzeW5jIHJlY3Vyc2l2ZVwiOyIsImltcG9ydCAqIGFzIHdhc20gZnJvbSBcIi4vYnV0dHBsdWdfcnNfZmZpX2JnLndhc21cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1dHRwbHVnX3JzX2ZmaV9iZy5qc1wiOyIsIi8vIEJFR0lOX01PRFVMQVJJWkVcbi8vIFRoaXMgZmlsZSB3YXMgbW9kaWZpZWQgYnkgc2NyaXB0cy9tb2R1bGFyaXplLmpzIHRvIGNyZWF0ZSBOb2RlIEVTTS1jb21wYXRpYmxlIGJpbmRpbmdzLlxuLy8gRG8gbm90IG1vZGlmeSB0aGlzIGZpbGUgZGlyZWN0bHkgYXMgeW91ciBjaGFuZ2VzIHdpbGwgYmUgb3ZlcndyaXR0ZW4uXG4vLyBFTkRfTU9EVUxBUklaRVxuXG5leHBvcnQgKiBmcm9tIFwiI2J1dHRwbHVnX3JzX2ZmaV9iZ1wiO1xuIiwiLy8gQkVHSU5fTU9EVUxBUklaRVxuLy8gVGhpcyBmaWxlIHdhcyBtb2RpZmllZCBieSBzY3JpcHRzL21vZHVsYXJpemUuanMgdG8gY3JlYXRlIE5vZGUgRVNNLWNvbXBhdGlibGUgYmluZGluZ3MuXG4vLyBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZSBkaXJlY3RseSBhcyB5b3VyIGNoYW5nZXMgd2lsbCBiZSBvdmVyd3JpdHRlbi5cbi8vIEVORF9NT0RVTEFSSVpFXG5pbXBvcnQgKiBhcyB3YXNtIGZyb20gJy4vYnV0dHBsdWdfcnNfZmZpX2JnLndhc20nO1xuXG5jb25zdCBoZWFwID0gbmV3IEFycmF5KDMyKS5maWxsKHVuZGVmaW5lZCk7XG5cbmhlYXAucHVzaCh1bmRlZmluZWQsIG51bGwsIHRydWUsIGZhbHNlKTtcblxuZnVuY3Rpb24gZ2V0T2JqZWN0KGlkeCkgeyByZXR1cm4gaGVhcFtpZHhdOyB9XG5cbmxldCBoZWFwX25leHQgPSBoZWFwLmxlbmd0aDtcblxuZnVuY3Rpb24gZHJvcE9iamVjdChpZHgpIHtcbiAgICBpZiAoaWR4IDwgMzYpIHJldHVybjtcbiAgICBoZWFwW2lkeF0gPSBoZWFwX25leHQ7XG4gICAgaGVhcF9uZXh0ID0gaWR4O1xufVxuXG5mdW5jdGlvbiB0YWtlT2JqZWN0KGlkeCkge1xuICAgIGNvbnN0IHJldCA9IGdldE9iamVjdChpZHgpO1xuICAgIGRyb3BPYmplY3QoaWR4KTtcbiAgICByZXR1cm4gcmV0O1xufVxuXG5jb25zdCBsVGV4dERlY29kZXIgPSB0eXBlb2YgVGV4dERlY29kZXIgPT09ICd1bmRlZmluZWQnID8gKDAsIG1vZHVsZS5yZXF1aXJlKSgndXRpbCcpLlRleHREZWNvZGVyIDogVGV4dERlY29kZXI7XG5cbmxldCBjYWNoZWRUZXh0RGVjb2RlciA9IG5ldyBsVGV4dERlY29kZXIoJ3V0Zi04JywgeyBpZ25vcmVCT006IHRydWUsIGZhdGFsOiB0cnVlIH0pO1xuXG5jYWNoZWRUZXh0RGVjb2Rlci5kZWNvZGUoKTtcblxubGV0IGNhY2hlZ2V0VWludDhNZW1vcnkwID0gbnVsbDtcbmZ1bmN0aW9uIGdldFVpbnQ4TWVtb3J5MCgpIHtcbiAgICBpZiAoY2FjaGVnZXRVaW50OE1lbW9yeTAgPT09IG51bGwgfHwgY2FjaGVnZXRVaW50OE1lbW9yeTAuYnVmZmVyICE9PSB3YXNtLm1lbW9yeS5idWZmZXIpIHtcbiAgICAgICAgY2FjaGVnZXRVaW50OE1lbW9yeTAgPSBuZXcgVWludDhBcnJheSh3YXNtLm1lbW9yeS5idWZmZXIpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVnZXRVaW50OE1lbW9yeTA7XG59XG5cbmZ1bmN0aW9uIGdldFN0cmluZ0Zyb21XYXNtMChwdHIsIGxlbikge1xuICAgIHJldHVybiBjYWNoZWRUZXh0RGVjb2Rlci5kZWNvZGUoZ2V0VWludDhNZW1vcnkwKCkuc3ViYXJyYXkocHRyLCBwdHIgKyBsZW4pKTtcbn1cblxuZnVuY3Rpb24gYWRkSGVhcE9iamVjdChvYmopIHtcbiAgICBpZiAoaGVhcF9uZXh0ID09PSBoZWFwLmxlbmd0aCkgaGVhcC5wdXNoKGhlYXAubGVuZ3RoICsgMSk7XG4gICAgY29uc3QgaWR4ID0gaGVhcF9uZXh0O1xuICAgIGhlYXBfbmV4dCA9IGhlYXBbaWR4XTtcblxuICAgIGhlYXBbaWR4XSA9IG9iajtcbiAgICByZXR1cm4gaWR4O1xufVxuXG5sZXQgV0FTTV9WRUNUT1JfTEVOID0gMDtcblxuY29uc3QgbFRleHRFbmNvZGVyID0gdHlwZW9mIFRleHRFbmNvZGVyID09PSAndW5kZWZpbmVkJyA/ICgwLCBtb2R1bGUucmVxdWlyZSkoJ3V0aWwnKS5UZXh0RW5jb2RlciA6IFRleHRFbmNvZGVyO1xuXG5sZXQgY2FjaGVkVGV4dEVuY29kZXIgPSBuZXcgbFRleHRFbmNvZGVyKCd1dGYtOCcpO1xuXG5jb25zdCBlbmNvZGVTdHJpbmcgPSAodHlwZW9mIGNhY2hlZFRleHRFbmNvZGVyLmVuY29kZUludG8gPT09ICdmdW5jdGlvbidcbiAgICA/IGZ1bmN0aW9uIChhcmcsIHZpZXcpIHtcbiAgICByZXR1cm4gY2FjaGVkVGV4dEVuY29kZXIuZW5jb2RlSW50byhhcmcsIHZpZXcpO1xufVxuICAgIDogZnVuY3Rpb24gKGFyZywgdmlldykge1xuICAgIGNvbnN0IGJ1ZiA9IGNhY2hlZFRleHRFbmNvZGVyLmVuY29kZShhcmcpO1xuICAgIHZpZXcuc2V0KGJ1Zik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVhZDogYXJnLmxlbmd0aCxcbiAgICAgICAgd3JpdHRlbjogYnVmLmxlbmd0aFxuICAgIH07XG59KTtcblxuZnVuY3Rpb24gcGFzc1N0cmluZ1RvV2FzbTAoYXJnLCBtYWxsb2MsIHJlYWxsb2MpIHtcblxuICAgIGlmIChyZWFsbG9jID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgYnVmID0gY2FjaGVkVGV4dEVuY29kZXIuZW5jb2RlKGFyZyk7XG4gICAgICAgIGNvbnN0IHB0ciA9IG1hbGxvYyhidWYubGVuZ3RoKTtcbiAgICAgICAgZ2V0VWludDhNZW1vcnkwKCkuc3ViYXJyYXkocHRyLCBwdHIgKyBidWYubGVuZ3RoKS5zZXQoYnVmKTtcbiAgICAgICAgV0FTTV9WRUNUT1JfTEVOID0gYnVmLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHB0cjtcbiAgICB9XG5cbiAgICBsZXQgbGVuID0gYXJnLmxlbmd0aDtcbiAgICBsZXQgcHRyID0gbWFsbG9jKGxlbik7XG5cbiAgICBjb25zdCBtZW0gPSBnZXRVaW50OE1lbW9yeTAoKTtcblxuICAgIGxldCBvZmZzZXQgPSAwO1xuXG4gICAgZm9yICg7IG9mZnNldCA8IGxlbjsgb2Zmc2V0KyspIHtcbiAgICAgICAgY29uc3QgY29kZSA9IGFyZy5jaGFyQ29kZUF0KG9mZnNldCk7XG4gICAgICAgIGlmIChjb2RlID4gMHg3RikgYnJlYWs7XG4gICAgICAgIG1lbVtwdHIgKyBvZmZzZXRdID0gY29kZTtcbiAgICB9XG5cbiAgICBpZiAob2Zmc2V0ICE9PSBsZW4pIHtcbiAgICAgICAgaWYgKG9mZnNldCAhPT0gMCkge1xuICAgICAgICAgICAgYXJnID0gYXJnLnNsaWNlKG9mZnNldCk7XG4gICAgICAgIH1cbiAgICAgICAgcHRyID0gcmVhbGxvYyhwdHIsIGxlbiwgbGVuID0gb2Zmc2V0ICsgYXJnLmxlbmd0aCAqIDMpO1xuICAgICAgICBjb25zdCB2aWV3ID0gZ2V0VWludDhNZW1vcnkwKCkuc3ViYXJyYXkocHRyICsgb2Zmc2V0LCBwdHIgKyBsZW4pO1xuICAgICAgICBjb25zdCByZXQgPSBlbmNvZGVTdHJpbmcoYXJnLCB2aWV3KTtcblxuICAgICAgICBvZmZzZXQgKz0gcmV0LndyaXR0ZW47XG4gICAgfVxuXG4gICAgV0FTTV9WRUNUT1JfTEVOID0gb2Zmc2V0O1xuICAgIHJldHVybiBwdHI7XG59XG5cbmZ1bmN0aW9uIGlzTGlrZU5vbmUoeCkge1xuICAgIHJldHVybiB4ID09PSB1bmRlZmluZWQgfHwgeCA9PT0gbnVsbDtcbn1cblxubGV0IGNhY2hlZ2V0SW50MzJNZW1vcnkwID0gbnVsbDtcbmZ1bmN0aW9uIGdldEludDMyTWVtb3J5MCgpIHtcbiAgICBpZiAoY2FjaGVnZXRJbnQzMk1lbW9yeTAgPT09IG51bGwgfHwgY2FjaGVnZXRJbnQzMk1lbW9yeTAuYnVmZmVyICE9PSB3YXNtLm1lbW9yeS5idWZmZXIpIHtcbiAgICAgICAgY2FjaGVnZXRJbnQzMk1lbW9yeTAgPSBuZXcgSW50MzJBcnJheSh3YXNtLm1lbW9yeS5idWZmZXIpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVnZXRJbnQzMk1lbW9yeTA7XG59XG5cbmZ1bmN0aW9uIGRlYnVnU3RyaW5nKHZhbCkge1xuICAgIC8vIHByaW1pdGl2ZSB0eXBlc1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsO1xuICAgIGlmICh0eXBlID09ICdudW1iZXInIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nIHx8IHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAgYCR7dmFsfWA7XG4gICAgfVxuICAgIGlmICh0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBgXCIke3ZhbH1cImA7XG4gICAgfVxuICAgIGlmICh0eXBlID09ICdzeW1ib2wnKSB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdmFsLmRlc2NyaXB0aW9uO1xuICAgICAgICBpZiAoZGVzY3JpcHRpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICdTeW1ib2wnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGBTeW1ib2woJHtkZXNjcmlwdGlvbn0pYDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB2YWwubmFtZTtcbiAgICAgICAgaWYgKHR5cGVvZiBuYW1lID09ICdzdHJpbmcnICYmIG5hbWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGBGdW5jdGlvbigke25hbWV9KWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ0Z1bmN0aW9uJztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBvYmplY3RzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICBjb25zdCBsZW5ndGggPSB2YWwubGVuZ3RoO1xuICAgICAgICBsZXQgZGVidWcgPSAnWyc7XG4gICAgICAgIGlmIChsZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBkZWJ1ZyArPSBkZWJ1Z1N0cmluZyh2YWxbMF0pO1xuICAgICAgICB9XG4gICAgICAgIGZvcihsZXQgaSA9IDE7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZGVidWcgKz0gJywgJyArIGRlYnVnU3RyaW5nKHZhbFtpXSk7XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcgKz0gJ10nO1xuICAgICAgICByZXR1cm4gZGVidWc7XG4gICAgfVxuICAgIC8vIFRlc3QgZm9yIGJ1aWx0LWluXG4gICAgY29uc3QgYnVpbHRJbk1hdGNoZXMgPSAvXFxbb2JqZWN0IChbXlxcXV0rKVxcXS8uZXhlYyh0b1N0cmluZy5jYWxsKHZhbCkpO1xuICAgIGxldCBjbGFzc05hbWU7XG4gICAgaWYgKGJ1aWx0SW5NYXRjaGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY2xhc3NOYW1lID0gYnVpbHRJbk1hdGNoZXNbMV07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRmFpbGVkIHRvIG1hdGNoIHRoZSBzdGFuZGFyZCAnW29iamVjdCBDbGFzc05hbWVdJ1xuICAgICAgICByZXR1cm4gdG9TdHJpbmcuY2FsbCh2YWwpO1xuICAgIH1cbiAgICBpZiAoY2xhc3NOYW1lID09ICdPYmplY3QnKSB7XG4gICAgICAgIC8vIHdlJ3JlIGEgdXNlciBkZWZpbmVkIGNsYXNzIG9yIE9iamVjdFxuICAgICAgICAvLyBKU09OLnN0cmluZ2lmeSBhdm9pZHMgcHJvYmxlbXMgd2l0aCBjeWNsZXMsIGFuZCBpcyBnZW5lcmFsbHkgbXVjaFxuICAgICAgICAvLyBlYXNpZXIgdGhhbiBsb29waW5nIHRocm91Z2ggb3duUHJvcGVydGllcyBvZiBgdmFsYC5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiAnT2JqZWN0KCcgKyBKU09OLnN0cmluZ2lmeSh2YWwpICsgJyknO1xuICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICByZXR1cm4gJ09iamVjdCc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gZXJyb3JzXG4gICAgaWYgKHZhbCBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHJldHVybiBgJHt2YWwubmFtZX06ICR7dmFsLm1lc3NhZ2V9XFxuJHt2YWwuc3RhY2t9YDtcbiAgICB9XG4gICAgLy8gVE9ETyB3ZSBjb3VsZCB0ZXN0IGZvciBtb3JlIHRoaW5ncyBoZXJlLCBsaWtlIGBTZXRgcyBhbmQgYE1hcGBzLlxuICAgIHJldHVybiBjbGFzc05hbWU7XG59XG5cbmZ1bmN0aW9uIG1ha2VNdXRDbG9zdXJlKGFyZzAsIGFyZzEsIGR0b3IsIGYpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHsgYTogYXJnMCwgYjogYXJnMSwgY250OiAxLCBkdG9yIH07XG4gICAgY29uc3QgcmVhbCA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgIC8vIEZpcnN0IHVwIHdpdGggYSBjbG9zdXJlIHdlIGluY3JlbWVudCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlXG4gICAgICAgIC8vIGNvdW50LiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgUnVzdCBjbG9zdXJlIGVudmlyb25tZW50IHdvbid0XG4gICAgICAgIC8vIGJlIGRlYWxsb2NhdGVkIHdoaWxlIHdlJ3JlIGludm9raW5nIGl0LlxuICAgICAgICBzdGF0ZS5jbnQrKztcbiAgICAgICAgY29uc3QgYSA9IHN0YXRlLmE7XG4gICAgICAgIHN0YXRlLmEgPSAwO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGYoYSwgc3RhdGUuYiwgLi4uYXJncyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBpZiAoLS1zdGF0ZS5jbnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICB3YXNtLl9fd2JpbmRnZW5fZXhwb3J0XzIuZ2V0KHN0YXRlLmR0b3IpKGEsIHN0YXRlLmIpO1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0YXRlLmEgPSBhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICByZWFsLm9yaWdpbmFsID0gc3RhdGU7XG5cbiAgICByZXR1cm4gcmVhbDtcbn1cbmZ1bmN0aW9uIF9fd2JnX2FkYXB0ZXJfMjQoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHdhc20uX2R5bl9jb3JlX19vcHNfX2Z1bmN0aW9uX19Gbk11dF9fQV9fX19PdXRwdXRfX19SX2FzX3dhc21fYmluZGdlbl9fY2xvc3VyZV9fV2FzbUNsb3N1cmVfX19kZXNjcmliZV9faW52b2tlX19oNTVjZDUxNGQ0NzM1OTQ2MShhcmcwLCBhcmcxLCBhZGRIZWFwT2JqZWN0KGFyZzIpKTtcbn1cblxuZnVuY3Rpb24gX193YmdfYWRhcHRlcl8yNyhhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgd2FzbS5fZHluX2NvcmVfX29wc19fZnVuY3Rpb25fX0ZuTXV0X19BX19fX091dHB1dF9fX1JfYXNfd2FzbV9iaW5kZ2VuX19jbG9zdXJlX19XYXNtQ2xvc3VyZV9fX2Rlc2NyaWJlX19pbnZva2VfX2g1NWNkNTE0ZDQ3MzU5NDYxKGFyZzAsIGFyZzEsIGFkZEhlYXBPYmplY3QoYXJnMikpO1xufVxuXG5mdW5jdGlvbiBfX3diZ19hZGFwdGVyXzMwKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB3YXNtLl9keW5fY29yZV9fb3BzX19mdW5jdGlvbl9fRm5NdXRfX0FfX19fT3V0cHV0X19fUl9hc193YXNtX2JpbmRnZW5fX2Nsb3N1cmVfX1dhc21DbG9zdXJlX19fZGVzY3JpYmVfX2ludm9rZV9faDU1Y2Q1MTRkNDczNTk0NjEoYXJnMCwgYXJnMSwgYWRkSGVhcE9iamVjdChhcmcyKSk7XG59XG5cbmZ1bmN0aW9uIF9fd2JnX2FkYXB0ZXJfMzMoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHdhc20uX2R5bl9jb3JlX19vcHNfX2Z1bmN0aW9uX19Gbk11dF9fQV9fX19PdXRwdXRfX19SX2FzX3dhc21fYmluZGdlbl9fY2xvc3VyZV9fV2FzbUNsb3N1cmVfX19kZXNjcmliZV9faW52b2tlX19oNTVjZDUxNGQ0NzM1OTQ2MShhcmcwLCBhcmcxLCBhZGRIZWFwT2JqZWN0KGFyZzIpKTtcbn1cblxuZnVuY3Rpb24gX193YmdfYWRhcHRlcl8zNihhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgd2FzbS5fZHluX2NvcmVfX29wc19fZnVuY3Rpb25fX0ZuTXV0X19BX19fX091dHB1dF9fX1JfYXNfd2FzbV9iaW5kZ2VuX19jbG9zdXJlX19XYXNtQ2xvc3VyZV9fX2Rlc2NyaWJlX19pbnZva2VfX2gxNTZlY2UyZjk3YTVkZDRmKGFyZzAsIGFyZzEsIGFkZEhlYXBPYmplY3QoYXJnMikpO1xufVxuXG5mdW5jdGlvbiBfX3diZ19hZGFwdGVyXzM5KGFyZzAsIGFyZzEpIHtcbiAgICB3YXNtLl9keW5fY29yZV9fb3BzX19mdW5jdGlvbl9fRm5NdXRfX19fX091dHB1dF9fX1JfYXNfd2FzbV9iaW5kZ2VuX19jbG9zdXJlX19XYXNtQ2xvc3VyZV9fX2Rlc2NyaWJlX19pbnZva2VfX2g4NTI5MjAxNWExYmZhYTM2KGFyZzAsIGFyZzEpO1xufVxuXG5sZXQgc3RhY2tfcG9pbnRlciA9IDMyO1xuXG5mdW5jdGlvbiBhZGRCb3Jyb3dlZE9iamVjdChvYmopIHtcbiAgICBpZiAoc3RhY2tfcG9pbnRlciA9PSAxKSB0aHJvdyBuZXcgRXJyb3IoJ291dCBvZiBqcyBzdGFjaycpO1xuICAgIGhlYXBbLS1zdGFja19wb2ludGVyXSA9IG9iajtcbiAgICByZXR1cm4gc3RhY2tfcG9pbnRlcjtcbn1cbi8qKlxuKiBAcGFyYW0ge3N0cmluZ30gY2xpZW50X25hbWVcbiogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiogQHBhcmFtIHtudW1iZXJ9IGNhbGxiYWNrX2NvbnRleHRcbiogQHJldHVybnMge251bWJlcn1cbiovXG5leHBvcnQgZnVuY3Rpb24gYnV0dHBsdWdfY3JlYXRlX3Byb3RvYnVmX2NsaWVudChjbGllbnRfbmFtZSwgY2FsbGJhY2ssIGNhbGxiYWNrX2NvbnRleHQpIHtcbiAgICB0cnkge1xuICAgICAgICB2YXIgcHRyMCA9IHBhc3NTdHJpbmdUb1dhc20wKGNsaWVudF9uYW1lLCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jLCB3YXNtLl9fd2JpbmRnZW5fcmVhbGxvYyk7XG4gICAgICAgIHZhciBsZW4wID0gV0FTTV9WRUNUT1JfTEVOO1xuICAgICAgICB2YXIgcmV0ID0gd2FzbS5idXR0cGx1Z19jcmVhdGVfcHJvdG9idWZfY2xpZW50KHB0cjAsIGxlbjAsIGFkZEJvcnJvd2VkT2JqZWN0KGNhbGxiYWNrKSwgY2FsbGJhY2tfY29udGV4dCk7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaGVhcFtzdGFja19wb2ludGVyKytdID0gdW5kZWZpbmVkO1xuICAgIH1cbn1cblxuLyoqXG4qIEBwYXJhbSB7bnVtYmVyfSBwdHJcbiovXG5leHBvcnQgZnVuY3Rpb24gYnV0dHBsdWdfZnJlZV9jbGllbnQocHRyKSB7XG4gICAgd2FzbS5idXR0cGx1Z19mcmVlX2NsaWVudChwdHIpO1xufVxuXG5mdW5jdGlvbiBwYXNzQXJyYXk4VG9XYXNtMChhcmcsIG1hbGxvYykge1xuICAgIGNvbnN0IHB0ciA9IG1hbGxvYyhhcmcubGVuZ3RoICogMSk7XG4gICAgZ2V0VWludDhNZW1vcnkwKCkuc2V0KGFyZywgcHRyIC8gMSk7XG4gICAgV0FTTV9WRUNUT1JfTEVOID0gYXJnLmxlbmd0aDtcbiAgICByZXR1cm4gcHRyO1xufVxuLyoqXG4qIEBwYXJhbSB7bnVtYmVyfSBjbGllbnRfcHRyXG4qIEBwYXJhbSB7VWludDhBcnJheX0gYnVmXG4qIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4qIEBwYXJhbSB7bnVtYmVyfSBjYWxsYmFja19jb250ZXh0XG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1dHRwbHVnX2NsaWVudF9wcm90b2J1Zl9tZXNzYWdlKGNsaWVudF9wdHIsIGJ1ZiwgY2FsbGJhY2ssIGNhbGxiYWNrX2NvbnRleHQpIHtcbiAgICB2YXIgcHRyMCA9IHBhc3NBcnJheThUb1dhc20wKGJ1Ziwgd2FzbS5fX3diaW5kZ2VuX21hbGxvYyk7XG4gICAgdmFyIGxlbjAgPSBXQVNNX1ZFQ1RPUl9MRU47XG4gICAgd2FzbS5idXR0cGx1Z19jbGllbnRfcHJvdG9idWZfbWVzc2FnZShjbGllbnRfcHRyLCBwdHIwLCBsZW4wLCBhZGRIZWFwT2JqZWN0KGNhbGxiYWNrKSwgY2FsbGJhY2tfY29udGV4dCk7XG59XG5cbi8qKlxuKiBAcGFyYW0ge251bWJlcn0gY2xpZW50X3B0clxuKiBAcGFyYW0ge251bWJlcn0gZGV2aWNlX2luZGV4XG4qIEByZXR1cm5zIHtudW1iZXJ9XG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1dHRwbHVnX2NyZWF0ZV9kZXZpY2UoY2xpZW50X3B0ciwgZGV2aWNlX2luZGV4KSB7XG4gICAgdmFyIHJldCA9IHdhc20uYnV0dHBsdWdfY3JlYXRlX2RldmljZShjbGllbnRfcHRyLCBkZXZpY2VfaW5kZXgpO1xuICAgIHJldHVybiByZXQ7XG59XG5cbi8qKlxuKiBAcGFyYW0ge251bWJlcn0gZGV2aWNlX3B0clxuKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ1ZlxuKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuKiBAcGFyYW0ge251bWJlcn0gY2FsbGJhY2tfY29udGV4dFxuKi9cbmV4cG9ydCBmdW5jdGlvbiBidXR0cGx1Z19kZXZpY2VfcHJvdG9idWZfbWVzc2FnZShkZXZpY2VfcHRyLCBidWYsIGNhbGxiYWNrLCBjYWxsYmFja19jb250ZXh0KSB7XG4gICAgdmFyIHB0cjAgPSBwYXNzQXJyYXk4VG9XYXNtMChidWYsIHdhc20uX193YmluZGdlbl9tYWxsb2MpO1xuICAgIHZhciBsZW4wID0gV0FTTV9WRUNUT1JfTEVOO1xuICAgIHdhc20uYnV0dHBsdWdfZGV2aWNlX3Byb3RvYnVmX21lc3NhZ2UoZGV2aWNlX3B0ciwgcHRyMCwgbGVuMCwgYWRkSGVhcE9iamVjdChjYWxsYmFjayksIGNhbGxiYWNrX2NvbnRleHQpO1xufVxuXG4vKipcbiogQHBhcmFtIHtudW1iZXJ9IHB0clxuKi9cbmV4cG9ydCBmdW5jdGlvbiBidXR0cGx1Z19mcmVlX2RldmljZShwdHIpIHtcbiAgICB3YXNtLmJ1dHRwbHVnX2ZyZWVfZGV2aWNlKHB0cik7XG59XG5cbi8qKlxuKiBAcGFyYW0ge3N0cmluZ30gbWF4X2xldmVsXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1dHRwbHVnX2FjdGl2YXRlX2Vudl9sb2dnZXIobWF4X2xldmVsKSB7XG4gICAgdmFyIHB0cjAgPSBwYXNzU3RyaW5nVG9XYXNtMChtYXhfbGV2ZWwsIHdhc20uX193YmluZGdlbl9tYWxsb2MsIHdhc20uX193YmluZGdlbl9yZWFsbG9jKTtcbiAgICB2YXIgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICB3YXNtLmJ1dHRwbHVnX2FjdGl2YXRlX2Vudl9sb2dnZXIocHRyMCwgbGVuMCk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUVycm9yKGYsIGFyZ3MpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gZi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHdhc20uX193YmluZGdlbl9leG5fc3RvcmUoYWRkSGVhcE9iamVjdChlKSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRBcnJheVU4RnJvbVdhc20wKHB0ciwgbGVuKSB7XG4gICAgcmV0dXJuIGdldFVpbnQ4TWVtb3J5MCgpLnN1YmFycmF5KHB0ciAvIDEsIHB0ciAvIDEgKyBsZW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9vYmplY3RfZHJvcF9yZWYoYXJnMCkge1xuICAgIHRha2VPYmplY3QoYXJnMCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9zdHJpbmdfbmV3KGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9jYl9kcm9wKGFyZzApIHtcbiAgICBjb25zdCBvYmogPSB0YWtlT2JqZWN0KGFyZzApLm9yaWdpbmFsO1xuICAgIGlmIChvYmouY250LS0gPT0gMSkge1xuICAgICAgICBvYmouYSA9IDA7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgcmV0ID0gZmFsc2U7XG4gICAgcmV0dXJuIHJldDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19sb2dfMzVhOTRhNmY5YmEyMjI3OChhcmcwLCBhcmcxKSB7XG4gICAgY29uc29sZS5sb2coZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX29iamVjdF9jbG9uZV9yZWYoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19uZXdfNTljYjc0ZTQyMzc1OGVkZSgpIHtcbiAgICB2YXIgcmV0ID0gbmV3IEVycm9yKCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zdGFja181NThiYTU5MTdiNDY2ZWRkKGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzEpLnN0YWNrO1xuICAgIHZhciBwdHIwID0gcGFzc1N0cmluZ1RvV2FzbTAocmV0LCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jLCB3YXNtLl9fd2JpbmRnZW5fcmVhbGxvYyk7XG4gICAgdmFyIGxlbjAgPSBXQVNNX1ZFQ1RPUl9MRU47XG4gICAgZ2V0SW50MzJNZW1vcnkwKClbYXJnMCAvIDQgKyAxXSA9IGxlbjA7XG4gICAgZ2V0SW50MzJNZW1vcnkwKClbYXJnMCAvIDQgKyAwXSA9IHB0cjA7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfZXJyb3JfNGJiNmMyYTk3NDA3MTI5YShhcmcwLCBhcmcxKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMCwgYXJnMSkpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAgIHdhc20uX193YmluZGdlbl9mcmVlKGFyZzAsIGFyZzEpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19sb2dfYjdkY2IzZmFjYzczMTY2ZChhcmcwLCBhcmcxKSB7XG4gICAgY29uc29sZS5sb2coZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19sb2dfOTYyOTVkNjhhYjgzMzhkZihhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1LCBhcmc2LCBhcmc3KSB7XG4gICAgY29uc29sZS5sb2coZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpLCBnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMiwgYXJnMyksIGdldFN0cmluZ0Zyb21XYXNtMChhcmc0LCBhcmc1KSwgZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzYsIGFyZzcpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19tYXJrXzU1YzVlY2ZlNTA5ZGViNmEoYXJnMCwgYXJnMSkge1xuICAgIHBlcmZvcm1hbmNlLm1hcmsoZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19tZWFzdXJlXzYwODU2MzEwNmQ3MGQ0OGEoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMykge1xuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpLCBnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMiwgYXJnMykpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX1dpbmRvd19mODI2YTFkZWMxNjNiYWNiKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLldpbmRvdztcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5faXNfdW5kZWZpbmVkKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApID09PSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJldDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19Xb3JrZXJHbG9iYWxTY29wZV85NjdkMTg2MTU1MTgzZDM4KGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLldvcmtlckdsb2JhbFNjb3BlO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfaW5zdGFuY2VvZl9XaW5kb3dfZmFjNGYxZjhlM2M2MWMxZihhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKSBpbnN0YW5jZW9mIFdpbmRvdztcbiAgICByZXR1cm4gcmV0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX25hdmlnYXRvcl9mOTI5OTRmYjYxOGIzYzAzKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLm5hdmlnYXRvcjtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2NsZWFyVGltZW91dF82MDI1MmY2MTVjNTY5YmNmKGFyZzAsIGFyZzEpIHtcbiAgICBnZXRPYmplY3QoYXJnMCkuY2xlYXJUaW1lb3V0KGFyZzEpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3NldFRpbWVvdXRfNTZjN2ZiZjg4N2NlNDVkZSgpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5zZXRUaW1lb3V0KGdldE9iamVjdChhcmcxKSwgYXJnMik7XG4gICAgcmV0dXJuIHJldDtcbn0sIGFyZ3VtZW50cykgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2RhdGFfN2NkM2YxMjRjM2I1YTY5ZihhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5kYXRhO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfdmFsdWVfMDNlODIyNTIzOWRiZDdkOChhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS52YWx1ZTtcbiAgICByZXR1cm4gaXNMaWtlTm9uZShyZXQpID8gMCA6IGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zZXRvbmNoYXJhY3RlcmlzdGljdmFsdWVjaGFuZ2VkXzBjZWUwOTc5ZDk5ZGM5ZDEoYXJnMCwgYXJnMSkge1xuICAgIGdldE9iamVjdChhcmcwKS5vbmNoYXJhY3RlcmlzdGljdmFsdWVjaGFuZ2VkID0gZ2V0T2JqZWN0KGFyZzEpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3JlYWRWYWx1ZV82OWI4N2U0ZjU4Y2M4NmNkKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnJlYWRWYWx1ZSgpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfc3RhcnROb3RpZmljYXRpb25zXzlmYTk5YjQxYjdjYWEzNGUoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuc3RhcnROb3RpZmljYXRpb25zKCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ193cml0ZVZhbHVlXzRhYWMyZjQ5ZDhlZDUyOGIoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkud3JpdGVWYWx1ZShnZXRBcnJheVU4RnJvbVdhc20wKGFyZzEsIGFyZzIpKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2Nvbm5lY3RfYTQwNGVjMGVlMDQ3M2IyOChhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5jb25uZWN0KCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19nZXRQcmltYXJ5U2VydmljZV8wMmY2MzBhNGZhODkyNzBlKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLmdldFByaW1hcnlTZXJ2aWNlKGdldFN0cmluZ0Zyb21XYXNtMChhcmcxLCBhcmcyKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ190YXJnZXRfOGVhYzFiNDcxZTUzMTE0ZChhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS50YXJnZXQ7XG4gICAgcmV0dXJuIGlzTGlrZU5vbmUocmV0KSA/IDAgOiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfcmVxdWVzdERldmljZV81NzJjYTIwZGI1MDQ0OTgxKGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnJlcXVlc3REZXZpY2UoZ2V0T2JqZWN0KGFyZzEpKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2lkXzZhNDg1NTNkZWI1MTJlMzMoYXJnMCwgYXJnMSkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMSkuaWQ7XG4gICAgdmFyIHB0cjAgPSBwYXNzU3RyaW5nVG9XYXNtMChyZXQsIHdhc20uX193YmluZGdlbl9tYWxsb2MsIHdhc20uX193YmluZGdlbl9yZWFsbG9jKTtcbiAgICB2YXIgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDFdID0gbGVuMDtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDBdID0gcHRyMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19uYW1lX2RlODQxYjYxZTg2ZTQxYTAoYXJnMCwgYXJnMSkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMSkubmFtZTtcbiAgICB2YXIgcHRyMCA9IGlzTGlrZU5vbmUocmV0KSA/IDAgOiBwYXNzU3RyaW5nVG9XYXNtMChyZXQsIHdhc20uX193YmluZGdlbl9tYWxsb2MsIHdhc20uX193YmluZGdlbl9yZWFsbG9jKTtcbiAgICB2YXIgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDFdID0gbGVuMDtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDBdID0gcHRyMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19nYXR0Xzk0OGNjMmI5NmZlMTE1MWEoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuZ2F0dDtcbiAgICByZXR1cm4gaXNMaWtlTm9uZShyZXQpID8gMCA6IGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zZXRvbmdhdHRzZXJ2ZXJkaXNjb25uZWN0ZWRfZGZiOWQ0NjY4ZDI2NTY5OChhcmcwLCBhcmcxKSB7XG4gICAgZ2V0T2JqZWN0KGFyZzApLm9uZ2F0dHNlcnZlcmRpc2Nvbm5lY3RlZCA9IGdldE9iamVjdChhcmcxKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19jbGVhclRpbWVvdXRfMzE0ZjYxNmNlZDA4NDQ4NChhcmcwLCBhcmcxKSB7XG4gICAgZ2V0T2JqZWN0KGFyZzApLmNsZWFyVGltZW91dChhcmcxKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zZXRUaW1lb3V0XzdjNGIxNzQ2MDViNzVlMzkoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuc2V0VGltZW91dChnZXRPYmplY3QoYXJnMSksIGFyZzIpO1xuICAgIHJldHVybiByZXQ7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19ibHVldG9vdGhfNmI1YmFiNjBjYzhiYjdjNihhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5ibHVldG9vdGg7XG4gICAgcmV0dXJuIGlzTGlrZU5vbmUocmV0KSA/IDAgOiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfc2V0b25vcGVuX2ZhYmE2NTViZGE2MDhiNWYoYXJnMCwgYXJnMSkge1xuICAgIGdldE9iamVjdChhcmcwKS5vbm9wZW4gPSBnZXRPYmplY3QoYXJnMSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfc2V0b25lcnJvcl8yOGU3Yzk1ZTA5ZDkzYWM3KGFyZzAsIGFyZzEpIHtcbiAgICBnZXRPYmplY3QoYXJnMCkub25lcnJvciA9IGdldE9iamVjdChhcmcxKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zZXRvbm1lc3NhZ2VfZjY0ZTIwZWYzOTI5ZjMxNShhcmcwLCBhcmcxKSB7XG4gICAgZ2V0T2JqZWN0KGFyZzApLm9ubWVzc2FnZSA9IGdldE9iamVjdChhcmcxKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19uZXdfZWY4YmQ3YWFlOGM2ZWMzZCgpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwLCBhcmcxKSB7XG4gICAgdmFyIHJldCA9IG5ldyBXZWJTb2NrZXQoZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfY2xvc2VfNTU3MTM4NWY1OGNiMTFiNCgpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwKSB7XG4gICAgZ2V0T2JqZWN0KGFyZzApLmNsb3NlKCk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zZW5kX2Q1ZDM4ODAxZmZiYjMyOGUoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIGdldE9iamVjdChhcmcwKS5zZW5kKGdldFN0cmluZ0Zyb21XYXNtMChhcmcxLCBhcmcyKSk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19nZXRDaGFyYWN0ZXJpc3RpY185ZjVhNTBhYTk1MTU3MjlkKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLmdldENoYXJhY3RlcmlzdGljKGdldFN0cmluZ0Zyb21XYXNtMChhcmcxLCBhcmcyKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19nZXRSYW5kb21WYWx1ZXNfOTgxMTdlOWE3ZTk5MzkyMCgpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwLCBhcmcxKSB7XG4gICAgZ2V0T2JqZWN0KGFyZzApLmdldFJhbmRvbVZhbHVlcyhnZXRPYmplY3QoYXJnMSkpO1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfcmFuZG9tRmlsbFN5bmNfNjRjYzdkMDQ4ZjIyOGNhOCgpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgZ2V0T2JqZWN0KGFyZzApLnJhbmRvbUZpbGxTeW5jKGdldEFycmF5VThGcm9tV2FzbTAoYXJnMSwgYXJnMikpO1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfcHJvY2Vzc18yZjI0ZDY1NDRlYTdiMjAwKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnByb2Nlc3M7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX2lzX29iamVjdChhcmcwKSB7XG4gICAgY29uc3QgdmFsID0gZ2V0T2JqZWN0KGFyZzApO1xuICAgIHZhciByZXQgPSB0eXBlb2YodmFsKSA9PT0gJ29iamVjdCcgJiYgdmFsICE9PSBudWxsO1xuICAgIHJldHVybiByZXQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfdmVyc2lvbnNfNjE2NDY1MWU3NTQwNWQ0YShhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS52ZXJzaW9ucztcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX25vZGVfNGI1MTdkODYxY2JjYjNiYyhhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5ub2RlO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfY3J5cHRvXzk4ZmMyNzEwMjFjN2QyYWQoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuY3J5cHRvO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbXNDcnlwdG9fYTJjZGIwNDNkMmJmZTU3ZihhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5tc0NyeXB0bztcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX21vZHVsZXJlcXVpcmVfMzQ0MGE0YmNmNDQ0MzdkYigpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwLCBhcmcxKSB7XG4gICAgdmFyIHJldCA9IG1vZHVsZS5yZXF1aXJlKGdldFN0cmluZ0Zyb21XYXNtMChhcmcwLCBhcmcxKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn0sIGFyZ3VtZW50cykgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX25ld19lYzc1ZDBkNTgxNWJlNzM2KCkge1xuICAgIHZhciByZXQgPSBuZXcgQXJyYXkoKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX25ld25vYXJnc18xYTExZTdlOGM5MDY5OTZjKGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gbmV3IEZ1bmN0aW9uKGdldFN0cmluZ0Zyb21XYXNtMChhcmcwLCBhcmcxKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19jYWxsX2U5MWY3MWRkZjFmNDVjZmYoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoYXJnMCwgYXJnMSkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuY2FsbChnZXRPYmplY3QoYXJnMSkpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19uZXdfNGI0OGY5ZjgxNTlmZWE3NygpIHtcbiAgICB2YXIgcmV0ID0gbmV3IE9iamVjdCgpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfcHVzaF8wZGFhZTkzNDMxNjJkYmU3KGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnB1c2goZ2V0T2JqZWN0KGFyZzEpKTtcbiAgICByZXR1cm4gcmV0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2J1ZmZlcl8wNGEyMmYxYjQzNzdlOGI2KGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLmJ1ZmZlcjtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2J5dGVMZW5ndGhfZjUzOWY4MzYwODM0N2RmOChhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5ieXRlTGVuZ3RoO1xuICAgIHJldHVybiByZXQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfY2FsbF9lM2M3MjM1NWQwOTFkNWQ0KCkgeyByZXR1cm4gaGFuZGxlRXJyb3IoZnVuY3Rpb24gKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLmNhbGwoZ2V0T2JqZWN0KGFyZzEpLCBnZXRPYmplY3QoYXJnMikpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19yZXNvbHZlXzcxNjFlYzZmZDViMWNkMjkoYXJnMCkge1xuICAgIHZhciByZXQgPSBQcm9taXNlLnJlc29sdmUoZ2V0T2JqZWN0KGFyZzApKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3RoZW5fNmQ1MDcyZmVjM2ZkYjIzNyhhcmcwLCBhcmcxKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS50aGVuKGdldE9iamVjdChhcmcxKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ190aGVuXzRmM2M3ZjZmM2QzNjYzNGEoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkudGhlbihnZXRPYmplY3QoYXJnMSksIGdldE9iamVjdChhcmcyKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zZWxmX2I0NTQ2ZWE3YjU5MDUzOWUoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJldCA9IHNlbGYuc2VsZjtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfd2luZG93X2MyNzlmZWE4MWY0MjZhNjgoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJldCA9IHdpbmRvdy53aW5kb3c7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn0sIGFyZ3VtZW50cykgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2dsb2JhbFRoaXNfMDM4YTZlYTBmZjE3Nzg5ZigpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmV0ID0gZ2xvYmFsVGhpcy5nbG9iYWxUaGlzO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19nbG9iYWxfNGY5M2NlODg0YmNlZTU5NygpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmV0ID0gZ2xvYmFsLmdsb2JhbDtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfYnVmZmVyXzc5YTMyOTQyNjZkNGU3ODMoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuYnVmZmVyO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbmV3d2l0aGJ5dGVvZmZzZXRhbmRsZW5ndGhfMjJhMzZlNjAyM2FkM2NkMChhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgdmFyIHJldCA9IG5ldyBVaW50OEFycmF5KGdldE9iamVjdChhcmcwKSwgYXJnMSA+Pj4gMCwgYXJnMiA+Pj4gMCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19uZXdfOTQ1Mzk3ZmIwOWZlYzBiOChhcmcwKSB7XG4gICAgdmFyIHJldCA9IG5ldyBVaW50OEFycmF5KGdldE9iamVjdChhcmcwKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zZXRfMjIzODczMjIzYWNmNmQwNyhhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgZ2V0T2JqZWN0KGFyZzApLnNldChnZXRPYmplY3QoYXJnMSksIGFyZzIgPj4+IDApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2xlbmd0aF82OGUxM2U3YmJkOTE4NDY0KGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLmxlbmd0aDtcbiAgICByZXR1cm4gcmV0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX25ld3dpdGhsZW5ndGhfYjc3MjJiNTU5NGYxZGMyMShhcmcwKSB7XG4gICAgdmFyIHJldCA9IG5ldyBVaW50OEFycmF5KGFyZzAgPj4+IDApO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbmV3d2l0aGJ5dGVvZmZzZXRfNWFiYWE2Zjc3ZWRiZGNlYyhhcmcwLCBhcmcxKSB7XG4gICAgdmFyIHJldCA9IG5ldyBVaW50OEFycmF5KGdldE9iamVjdChhcmcwKSwgYXJnMSA+Pj4gMCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zdWJhcnJheV80NjY2MTM5MjFiMmZjNmRiKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnN1YmFycmF5KGFyZzEgPj4+IDAsIGFyZzIgPj4+IDApO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfc2V0X2QyOWEzOTdjOWNjNWQ3NDYoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBSZWZsZWN0LnNldChnZXRPYmplY3QoYXJnMCksIGdldE9iamVjdChhcmcxKSwgZ2V0T2JqZWN0KGFyZzIpKTtcbiAgICByZXR1cm4gcmV0O1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9pc19zdHJpbmcoYXJnMCkge1xuICAgIHZhciByZXQgPSB0eXBlb2YoZ2V0T2JqZWN0KGFyZzApKSA9PT0gJ3N0cmluZyc7XG4gICAgcmV0dXJuIHJldDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX3N0cmluZ19nZXQoYXJnMCwgYXJnMSkge1xuICAgIGNvbnN0IG9iaiA9IGdldE9iamVjdChhcmcxKTtcbiAgICB2YXIgcmV0ID0gdHlwZW9mKG9iaikgPT09ICdzdHJpbmcnID8gb2JqIDogdW5kZWZpbmVkO1xuICAgIHZhciBwdHIwID0gaXNMaWtlTm9uZShyZXQpID8gMCA6IHBhc3NTdHJpbmdUb1dhc20wKHJldCwgd2FzbS5fX3diaW5kZ2VuX21hbGxvYywgd2FzbS5fX3diaW5kZ2VuX3JlYWxsb2MpO1xuICAgIHZhciBsZW4wID0gV0FTTV9WRUNUT1JfTEVOO1xuICAgIGdldEludDMyTWVtb3J5MCgpW2FyZzAgLyA0ICsgMV0gPSBsZW4wO1xuICAgIGdldEludDMyTWVtb3J5MCgpW2FyZzAgLyA0ICsgMF0gPSBwdHIwO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5fZGVidWdfc3RyaW5nKGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gZGVidWdTdHJpbmcoZ2V0T2JqZWN0KGFyZzEpKTtcbiAgICB2YXIgcHRyMCA9IHBhc3NTdHJpbmdUb1dhc20wKHJldCwgd2FzbS5fX3diaW5kZ2VuX21hbGxvYywgd2FzbS5fX3diaW5kZ2VuX3JlYWxsb2MpO1xuICAgIHZhciBsZW4wID0gV0FTTV9WRUNUT1JfTEVOO1xuICAgIGdldEludDMyTWVtb3J5MCgpW2FyZzAgLyA0ICsgMV0gPSBsZW4wO1xuICAgIGdldEludDMyTWVtb3J5MCgpW2FyZzAgLyA0ICsgMF0gPSBwdHIwO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5fdGhyb3coYXJnMCwgYXJnMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMCwgYXJnMSkpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5fbWVtb3J5KCkge1xuICAgIHZhciByZXQgPSB3YXNtLm1lbW9yeTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5fY2xvc3VyZV93cmFwcGVyMTk1KGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gbWFrZU11dENsb3N1cmUoYXJnMCwgYXJnMSwgMjAsIF9fd2JnX2FkYXB0ZXJfMjQpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9jbG9zdXJlX3dyYXBwZXIxOTcoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBtYWtlTXV0Q2xvc3VyZShhcmcwLCBhcmcxLCAyMCwgX193YmdfYWRhcHRlcl8yNyk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX2Nsb3N1cmVfd3JhcHBlcjE5OShhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgdmFyIHJldCA9IG1ha2VNdXRDbG9zdXJlKGFyZzAsIGFyZzEsIDIwLCBfX3diZ19hZGFwdGVyXzMwKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5fY2xvc3VyZV93cmFwcGVyMjAxKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gbWFrZU11dENsb3N1cmUoYXJnMCwgYXJnMSwgMjAsIF9fd2JnX2FkYXB0ZXJfMzMpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9jbG9zdXJlX3dyYXBwZXIyNzIwKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gbWFrZU11dENsb3N1cmUoYXJnMCwgYXJnMSwgMTQxNCwgX193YmdfYWRhcHRlcl8zNik7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX2Nsb3N1cmVfd3JhcHBlcjQ1MjEoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBtYWtlTXV0Q2xvc3VyZShhcmcwLCBhcmcxLCAyMTc5LCBfX3diZ19hZGFwdGVyXzM5KTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuIl0sInNvdXJjZVJvb3QiOiIifQ==
1389
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9CdXR0cGx1Zy8od2VicGFjaykvYnVpbGRpbi9oYXJtb255LW1vZHVsZS5qcyIsIndlYnBhY2s6Ly9CdXR0cGx1Zy8uL3NyYy9idXR0cGx1Zy1ycy1mZmkgc3luYyIsIndlYnBhY2s6Ly9CdXR0cGx1Zy8uL3NyYy9idXR0cGx1Zy1ycy1mZmkvYnV0dHBsdWdfcnNfZmZpLmpzIiwid2VicGFjazovL0J1dHRwbHVnLy4vc3JjL2J1dHRwbHVnLXJzLWZmaS9idXR0cGx1Z19yc19mZmlfYmcuanMiLCJ3ZWJwYWNrOi8vQnV0dHBsdWcvLi9zcmMvYnV0dHBsdWctcnMtZmZpL2J1dHRwbHVnX3JzX2ZmaV9iZ193ZWIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxXQUFXO0FBQ2xEO0FBQ0E7QUFDQSxnRTs7Ozs7Ozs7Ozs7O0FDUkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFrRDs7Ozs7Ozs7Ozs7OztBQ0FsRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNMcEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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O0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7O0FBRU8sdUNBQXVDO0FBQzlDO0FBQ0E7QUFDQSxDQUFDOztBQUVNO0FBQ1A7QUFDQSxzQ0FBc0MsMEVBQXNCLEVBQUUsMkVBQXVCO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBOztBQUVPO0FBQ1A7QUFDQTs7QUFFTztBQUNQLGNBQWMsK0RBQVc7QUFDekI7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQSIsImZpbGUiOiIwLmJ1dHRwbHVnLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvcmlnaW5hbE1vZHVsZSkge1xuXHRpZiAoIW9yaWdpbmFsTW9kdWxlLndlYnBhY2tQb2x5ZmlsbCkge1xuXHRcdHZhciBtb2R1bGUgPSBPYmplY3QuY3JlYXRlKG9yaWdpbmFsTW9kdWxlKTtcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcblx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJleHBvcnRzXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWVcblx0XHR9KTtcblx0XHRtb2R1bGUud2VicGFja1BvbHlmaWxsID0gMTtcblx0fVxuXHRyZXR1cm4gbW9kdWxlO1xufTtcbiIsImZ1bmN0aW9uIHdlYnBhY2tFbXB0eUNvbnRleHQocmVxKSB7XG5cdHZhciBlID0gbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIiArIHJlcSArIFwiJ1wiKTtcblx0ZS5jb2RlID0gJ01PRFVMRV9OT1RfRk9VTkQnO1xuXHR0aHJvdyBlO1xufVxud2VicGFja0VtcHR5Q29udGV4dC5rZXlzID0gZnVuY3Rpb24oKSB7IHJldHVybiBbXTsgfTtcbndlYnBhY2tFbXB0eUNvbnRleHQucmVzb2x2ZSA9IHdlYnBhY2tFbXB0eUNvbnRleHQ7XG5tb2R1bGUuZXhwb3J0cyA9IHdlYnBhY2tFbXB0eUNvbnRleHQ7XG53ZWJwYWNrRW1wdHlDb250ZXh0LmlkID0gXCIuL3NyYy9idXR0cGx1Zy1ycy1mZmkgc3luYyByZWN1cnNpdmVcIjsiLCJpbXBvcnQgKiBhcyB3YXNtIGZyb20gXCIuL2J1dHRwbHVnX3JzX2ZmaV9iZy53YXNtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9idXR0cGx1Z19yc19mZmlfYmcuanNcIjsiLCIvLyBCRUdJTl9NT0RVTEFSSVpFXG4vLyBUaGlzIGZpbGUgd2FzIG1vZGlmaWVkIGJ5IHNjcmlwdHMvbW9kdWxhcml6ZS5qcyB0byBjcmVhdGUgTm9kZSBFU00tY29tcGF0aWJsZSBiaW5kaW5ncy5cbi8vIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlIGRpcmVjdGx5IGFzIHlvdXIgY2hhbmdlcyB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuLy8gRU5EX01PRFVMQVJJWkVcblxuZXhwb3J0ICogZnJvbSBcIiNidXR0cGx1Z19yc19mZmlfYmdcIjtcbiIsIi8vIEJFR0lOX01PRFVMQVJJWkVcbi8vIFRoaXMgZmlsZSB3YXMgbW9kaWZpZWQgYnkgc2NyaXB0cy9tb2R1bGFyaXplLmpzIHRvIGNyZWF0ZSBOb2RlIEVTTS1jb21wYXRpYmxlIGJpbmRpbmdzLlxuLy8gRG8gbm90IG1vZGlmeSB0aGlzIGZpbGUgZGlyZWN0bHkgYXMgeW91ciBjaGFuZ2VzIHdpbGwgYmUgb3ZlcndyaXR0ZW4uXG4vLyBFTkRfTU9EVUxBUklaRVxuaW1wb3J0ICogYXMgd2FzbSBmcm9tICcuL2J1dHRwbHVnX3JzX2ZmaV9iZy53YXNtJztcblxuY29uc3QgaGVhcCA9IG5ldyBBcnJheSgzMikuZmlsbCh1bmRlZmluZWQpO1xuXG5oZWFwLnB1c2godW5kZWZpbmVkLCBudWxsLCB0cnVlLCBmYWxzZSk7XG5cbmZ1bmN0aW9uIGdldE9iamVjdChpZHgpIHsgcmV0dXJuIGhlYXBbaWR4XTsgfVxuXG5sZXQgaGVhcF9uZXh0ID0gaGVhcC5sZW5ndGg7XG5cbmZ1bmN0aW9uIGRyb3BPYmplY3QoaWR4KSB7XG4gICAgaWYgKGlkeCA8IDM2KSByZXR1cm47XG4gICAgaGVhcFtpZHhdID0gaGVhcF9uZXh0O1xuICAgIGhlYXBfbmV4dCA9IGlkeDtcbn1cblxuZnVuY3Rpb24gdGFrZU9iamVjdChpZHgpIHtcbiAgICBjb25zdCByZXQgPSBnZXRPYmplY3QoaWR4KTtcbiAgICBkcm9wT2JqZWN0KGlkeCk7XG4gICAgcmV0dXJuIHJldDtcbn1cblxuY29uc3QgbFRleHREZWNvZGVyID0gdHlwZW9mIFRleHREZWNvZGVyID09PSAndW5kZWZpbmVkJyA/ICgwLCBtb2R1bGUucmVxdWlyZSkoJ3V0aWwnKS5UZXh0RGVjb2RlciA6IFRleHREZWNvZGVyO1xuXG5sZXQgY2FjaGVkVGV4dERlY29kZXIgPSBuZXcgbFRleHREZWNvZGVyKCd1dGYtOCcsIHsgaWdub3JlQk9NOiB0cnVlLCBmYXRhbDogdHJ1ZSB9KTtcblxuY2FjaGVkVGV4dERlY29kZXIuZGVjb2RlKCk7XG5cbmxldCBjYWNoZWdldFVpbnQ4TWVtb3J5MCA9IG51bGw7XG5mdW5jdGlvbiBnZXRVaW50OE1lbW9yeTAoKSB7XG4gICAgaWYgKGNhY2hlZ2V0VWludDhNZW1vcnkwID09PSBudWxsIHx8IGNhY2hlZ2V0VWludDhNZW1vcnkwLmJ1ZmZlciAhPT0gd2FzbS5tZW1vcnkuYnVmZmVyKSB7XG4gICAgICAgIGNhY2hlZ2V0VWludDhNZW1vcnkwID0gbmV3IFVpbnQ4QXJyYXkod2FzbS5tZW1vcnkuYnVmZmVyKTtcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlZ2V0VWludDhNZW1vcnkwO1xufVxuXG5mdW5jdGlvbiBnZXRTdHJpbmdGcm9tV2FzbTAocHRyLCBsZW4pIHtcbiAgICByZXR1cm4gY2FjaGVkVGV4dERlY29kZXIuZGVjb2RlKGdldFVpbnQ4TWVtb3J5MCgpLnN1YmFycmF5KHB0ciwgcHRyICsgbGVuKSk7XG59XG5cbmZ1bmN0aW9uIGFkZEhlYXBPYmplY3Qob2JqKSB7XG4gICAgaWYgKGhlYXBfbmV4dCA9PT0gaGVhcC5sZW5ndGgpIGhlYXAucHVzaChoZWFwLmxlbmd0aCArIDEpO1xuICAgIGNvbnN0IGlkeCA9IGhlYXBfbmV4dDtcbiAgICBoZWFwX25leHQgPSBoZWFwW2lkeF07XG5cbiAgICBoZWFwW2lkeF0gPSBvYmo7XG4gICAgcmV0dXJuIGlkeDtcbn1cblxubGV0IFdBU01fVkVDVE9SX0xFTiA9IDA7XG5cbmNvbnN0IGxUZXh0RW5jb2RlciA9IHR5cGVvZiBUZXh0RW5jb2RlciA9PT0gJ3VuZGVmaW5lZCcgPyAoMCwgbW9kdWxlLnJlcXVpcmUpKCd1dGlsJykuVGV4dEVuY29kZXIgOiBUZXh0RW5jb2RlcjtcblxubGV0IGNhY2hlZFRleHRFbmNvZGVyID0gbmV3IGxUZXh0RW5jb2RlcigndXRmLTgnKTtcblxuY29uc3QgZW5jb2RlU3RyaW5nID0gKHR5cGVvZiBjYWNoZWRUZXh0RW5jb2Rlci5lbmNvZGVJbnRvID09PSAnZnVuY3Rpb24nXG4gICAgPyBmdW5jdGlvbiAoYXJnLCB2aWV3KSB7XG4gICAgcmV0dXJuIGNhY2hlZFRleHRFbmNvZGVyLmVuY29kZUludG8oYXJnLCB2aWV3KTtcbn1cbiAgICA6IGZ1bmN0aW9uIChhcmcsIHZpZXcpIHtcbiAgICBjb25zdCBidWYgPSBjYWNoZWRUZXh0RW5jb2Rlci5lbmNvZGUoYXJnKTtcbiAgICB2aWV3LnNldChidWYpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlYWQ6IGFyZy5sZW5ndGgsXG4gICAgICAgIHdyaXR0ZW46IGJ1Zi5sZW5ndGhcbiAgICB9O1xufSk7XG5cbmZ1bmN0aW9uIHBhc3NTdHJpbmdUb1dhc20wKGFyZywgbWFsbG9jLCByZWFsbG9jKSB7XG5cbiAgICBpZiAocmVhbGxvYyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGJ1ZiA9IGNhY2hlZFRleHRFbmNvZGVyLmVuY29kZShhcmcpO1xuICAgICAgICBjb25zdCBwdHIgPSBtYWxsb2MoYnVmLmxlbmd0aCk7XG4gICAgICAgIGdldFVpbnQ4TWVtb3J5MCgpLnN1YmFycmF5KHB0ciwgcHRyICsgYnVmLmxlbmd0aCkuc2V0KGJ1Zik7XG4gICAgICAgIFdBU01fVkVDVE9SX0xFTiA9IGJ1Zi5sZW5ndGg7XG4gICAgICAgIHJldHVybiBwdHI7XG4gICAgfVxuXG4gICAgbGV0IGxlbiA9IGFyZy5sZW5ndGg7XG4gICAgbGV0IHB0ciA9IG1hbGxvYyhsZW4pO1xuXG4gICAgY29uc3QgbWVtID0gZ2V0VWludDhNZW1vcnkwKCk7XG5cbiAgICBsZXQgb2Zmc2V0ID0gMDtcblxuICAgIGZvciAoOyBvZmZzZXQgPCBsZW47IG9mZnNldCsrKSB7XG4gICAgICAgIGNvbnN0IGNvZGUgPSBhcmcuY2hhckNvZGVBdChvZmZzZXQpO1xuICAgICAgICBpZiAoY29kZSA+IDB4N0YpIGJyZWFrO1xuICAgICAgICBtZW1bcHRyICsgb2Zmc2V0XSA9IGNvZGU7XG4gICAgfVxuXG4gICAgaWYgKG9mZnNldCAhPT0gbGVuKSB7XG4gICAgICAgIGlmIChvZmZzZXQgIT09IDApIHtcbiAgICAgICAgICAgIGFyZyA9IGFyZy5zbGljZShvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICAgIHB0ciA9IHJlYWxsb2MocHRyLCBsZW4sIGxlbiA9IG9mZnNldCArIGFyZy5sZW5ndGggKiAzKTtcbiAgICAgICAgY29uc3QgdmlldyA9IGdldFVpbnQ4TWVtb3J5MCgpLnN1YmFycmF5KHB0ciArIG9mZnNldCwgcHRyICsgbGVuKTtcbiAgICAgICAgY29uc3QgcmV0ID0gZW5jb2RlU3RyaW5nKGFyZywgdmlldyk7XG5cbiAgICAgICAgb2Zmc2V0ICs9IHJldC53cml0dGVuO1xuICAgIH1cblxuICAgIFdBU01fVkVDVE9SX0xFTiA9IG9mZnNldDtcbiAgICByZXR1cm4gcHRyO1xufVxuXG5mdW5jdGlvbiBpc0xpa2VOb25lKHgpIHtcbiAgICByZXR1cm4geCA9PT0gdW5kZWZpbmVkIHx8IHggPT09IG51bGw7XG59XG5cbmxldCBjYWNoZWdldEludDMyTWVtb3J5MCA9IG51bGw7XG5mdW5jdGlvbiBnZXRJbnQzMk1lbW9yeTAoKSB7XG4gICAgaWYgKGNhY2hlZ2V0SW50MzJNZW1vcnkwID09PSBudWxsIHx8IGNhY2hlZ2V0SW50MzJNZW1vcnkwLmJ1ZmZlciAhPT0gd2FzbS5tZW1vcnkuYnVmZmVyKSB7XG4gICAgICAgIGNhY2hlZ2V0SW50MzJNZW1vcnkwID0gbmV3IEludDMyQXJyYXkod2FzbS5tZW1vcnkuYnVmZmVyKTtcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlZ2V0SW50MzJNZW1vcnkwO1xufVxuXG5mdW5jdGlvbiBkZWJ1Z1N0cmluZyh2YWwpIHtcbiAgICAvLyBwcmltaXRpdmUgdHlwZXNcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbDtcbiAgICBpZiAodHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdib29sZWFuJyB8fCB2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gIGAke3ZhbH1gO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gYFwiJHt2YWx9XCJgO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PSAnc3ltYm9sJykge1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHZhbC5kZXNjcmlwdGlvbjtcbiAgICAgICAgaWYgKGRlc2NyaXB0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAnU3ltYm9sJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgU3ltYm9sKCR7ZGVzY3JpcHRpb259KWA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGUgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBuYW1lID0gdmFsLm5hbWU7XG4gICAgICAgIGlmICh0eXBlb2YgbmFtZSA9PSAnc3RyaW5nJyAmJiBuYW1lLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBgRnVuY3Rpb24oJHtuYW1lfSlgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdGdW5jdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gb2JqZWN0c1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gdmFsLmxlbmd0aDtcbiAgICAgICAgbGV0IGRlYnVnID0gJ1snO1xuICAgICAgICBpZiAobGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZGVidWcgKz0gZGVidWdTdHJpbmcodmFsWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IobGV0IGkgPSAxOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGRlYnVnICs9ICcsICcgKyBkZWJ1Z1N0cmluZyh2YWxbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGRlYnVnICs9ICddJztcbiAgICAgICAgcmV0dXJuIGRlYnVnO1xuICAgIH1cbiAgICAvLyBUZXN0IGZvciBidWlsdC1pblxuICAgIGNvbnN0IGJ1aWx0SW5NYXRjaGVzID0gL1xcW29iamVjdCAoW15cXF1dKylcXF0vLmV4ZWModG9TdHJpbmcuY2FsbCh2YWwpKTtcbiAgICBsZXQgY2xhc3NOYW1lO1xuICAgIGlmIChidWlsdEluTWF0Y2hlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNsYXNzTmFtZSA9IGJ1aWx0SW5NYXRjaGVzWzFdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZhaWxlZCB0byBtYXRjaCB0aGUgc3RhbmRhcmQgJ1tvYmplY3QgQ2xhc3NOYW1lXSdcbiAgICAgICAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKTtcbiAgICB9XG4gICAgaWYgKGNsYXNzTmFtZSA9PSAnT2JqZWN0Jykge1xuICAgICAgICAvLyB3ZSdyZSBhIHVzZXIgZGVmaW5lZCBjbGFzcyBvciBPYmplY3RcbiAgICAgICAgLy8gSlNPTi5zdHJpbmdpZnkgYXZvaWRzIHByb2JsZW1zIHdpdGggY3ljbGVzLCBhbmQgaXMgZ2VuZXJhbGx5IG11Y2hcbiAgICAgICAgLy8gZWFzaWVyIHRoYW4gbG9vcGluZyB0aHJvdWdoIG93blByb3BlcnRpZXMgb2YgYHZhbGAuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gJ09iamVjdCgnICsgSlNPTi5zdHJpbmdpZnkodmFsKSArICcpJztcbiAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuICdPYmplY3QnO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGVycm9yc1xuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICByZXR1cm4gYCR7dmFsLm5hbWV9OiAke3ZhbC5tZXNzYWdlfVxcbiR7dmFsLnN0YWNrfWA7XG4gICAgfVxuICAgIC8vIFRPRE8gd2UgY291bGQgdGVzdCBmb3IgbW9yZSB0aGluZ3MgaGVyZSwgbGlrZSBgU2V0YHMgYW5kIGBNYXBgcy5cbiAgICByZXR1cm4gY2xhc3NOYW1lO1xufVxuXG5mdW5jdGlvbiBtYWtlTXV0Q2xvc3VyZShhcmcwLCBhcmcxLCBkdG9yLCBmKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB7IGE6IGFyZzAsIGI6IGFyZzEsIGNudDogMSwgZHRvciB9O1xuICAgIGNvbnN0IHJlYWwgPSAoLi4uYXJncykgPT4ge1xuICAgICAgICAvLyBGaXJzdCB1cCB3aXRoIGEgY2xvc3VyZSB3ZSBpbmNyZW1lbnQgdGhlIGludGVybmFsIHJlZmVyZW5jZVxuICAgICAgICAvLyBjb3VudC4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIFJ1c3QgY2xvc3VyZSBlbnZpcm9ubWVudCB3b24ndFxuICAgICAgICAvLyBiZSBkZWFsbG9jYXRlZCB3aGlsZSB3ZSdyZSBpbnZva2luZyBpdC5cbiAgICAgICAgc3RhdGUuY250Kys7XG4gICAgICAgIGNvbnN0IGEgPSBzdGF0ZS5hO1xuICAgICAgICBzdGF0ZS5hID0gMDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBmKGEsIHN0YXRlLmIsIC4uLmFyZ3MpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgaWYgKC0tc3RhdGUuY250ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgd2FzbS5fX3diaW5kZ2VuX2V4cG9ydF8yLmdldChzdGF0ZS5kdG9yKShhLCBzdGF0ZS5iKTtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5hID0gYTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgcmVhbC5vcmlnaW5hbCA9IHN0YXRlO1xuXG4gICAgcmV0dXJuIHJlYWw7XG59XG5mdW5jdGlvbiBfX3diZ19hZGFwdGVyXzI0KGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB3YXNtLl9keW5fY29yZV9fb3BzX19mdW5jdGlvbl9fRm5NdXRfX0FfX19fT3V0cHV0X19fUl9hc193YXNtX2JpbmRnZW5fX2Nsb3N1cmVfX1dhc21DbG9zdXJlX19fZGVzY3JpYmVfX2ludm9rZV9faDA4MDFmMGI2ODUzOGNjYjIoYXJnMCwgYXJnMSwgYWRkSGVhcE9iamVjdChhcmcyKSk7XG59XG5cbmZ1bmN0aW9uIF9fd2JnX2FkYXB0ZXJfMjcoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHdhc20uX2R5bl9jb3JlX19vcHNfX2Z1bmN0aW9uX19Gbk11dF9fQV9fX19PdXRwdXRfX19SX2FzX3dhc21fYmluZGdlbl9fY2xvc3VyZV9fV2FzbUNsb3N1cmVfX19kZXNjcmliZV9faW52b2tlX19oMDgwMWYwYjY4NTM4Y2NiMihhcmcwLCBhcmcxLCBhZGRIZWFwT2JqZWN0KGFyZzIpKTtcbn1cblxuZnVuY3Rpb24gX193YmdfYWRhcHRlcl8zMChhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgd2FzbS5fZHluX2NvcmVfX29wc19fZnVuY3Rpb25fX0ZuTXV0X19BX19fX091dHB1dF9fX1JfYXNfd2FzbV9iaW5kZ2VuX19jbG9zdXJlX19XYXNtQ2xvc3VyZV9fX2Rlc2NyaWJlX19pbnZva2VfX2gwODAxZjBiNjg1MzhjY2IyKGFyZzAsIGFyZzEsIGFkZEhlYXBPYmplY3QoYXJnMikpO1xufVxuXG5mdW5jdGlvbiBfX3diZ19hZGFwdGVyXzMzKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB3YXNtLl9keW5fY29yZV9fb3BzX19mdW5jdGlvbl9fRm5NdXRfX0FfX19fT3V0cHV0X19fUl9hc193YXNtX2JpbmRnZW5fX2Nsb3N1cmVfX1dhc21DbG9zdXJlX19fZGVzY3JpYmVfX2ludm9rZV9faDA4MDFmMGI2ODUzOGNjYjIoYXJnMCwgYXJnMSwgYWRkSGVhcE9iamVjdChhcmcyKSk7XG59XG5cbmZ1bmN0aW9uIF9fd2JnX2FkYXB0ZXJfMzYoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHdhc20uX2R5bl9jb3JlX19vcHNfX2Z1bmN0aW9uX19Gbk11dF9fQV9fX19PdXRwdXRfX19SX2FzX3dhc21fYmluZGdlbl9fY2xvc3VyZV9fV2FzbUNsb3N1cmVfX19kZXNjcmliZV9faW52b2tlX19oNmQ1ZDQ4N2M3OWNmZGY0OShhcmcwLCBhcmcxLCBhZGRIZWFwT2JqZWN0KGFyZzIpKTtcbn1cblxuZnVuY3Rpb24gX193YmdfYWRhcHRlcl8zOShhcmcwLCBhcmcxKSB7XG4gICAgd2FzbS5fZHluX2NvcmVfX29wc19fZnVuY3Rpb25fX0ZuTXV0X19fX19PdXRwdXRfX19SX2FzX3dhc21fYmluZGdlbl9fY2xvc3VyZV9fV2FzbUNsb3N1cmVfX19kZXNjcmliZV9faW52b2tlX19oYTcyMWZkYmQyM2NhMzVmMihhcmcwLCBhcmcxKTtcbn1cblxubGV0IHN0YWNrX3BvaW50ZXIgPSAzMjtcblxuZnVuY3Rpb24gYWRkQm9ycm93ZWRPYmplY3Qob2JqKSB7XG4gICAgaWYgKHN0YWNrX3BvaW50ZXIgPT0gMSkgdGhyb3cgbmV3IEVycm9yKCdvdXQgb2YganMgc3RhY2snKTtcbiAgICBoZWFwWy0tc3RhY2tfcG9pbnRlcl0gPSBvYmo7XG4gICAgcmV0dXJuIHN0YWNrX3BvaW50ZXI7XG59XG4vKipcbiogQHBhcmFtIHtzdHJpbmd9IGNsaWVudF9uYW1lXG4qIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4qIEBwYXJhbSB7bnVtYmVyfSBjYWxsYmFja19jb250ZXh0XG4qIEByZXR1cm5zIHtudW1iZXJ9XG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1dHRwbHVnX2NyZWF0ZV9wcm90b2J1Zl9jbGllbnQoY2xpZW50X25hbWUsIGNhbGxiYWNrLCBjYWxsYmFja19jb250ZXh0KSB7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIHB0cjAgPSBwYXNzU3RyaW5nVG9XYXNtMChjbGllbnRfbmFtZSwgd2FzbS5fX3diaW5kZ2VuX21hbGxvYywgd2FzbS5fX3diaW5kZ2VuX3JlYWxsb2MpO1xuICAgICAgICB2YXIgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICAgICAgdmFyIHJldCA9IHdhc20uYnV0dHBsdWdfY3JlYXRlX3Byb3RvYnVmX2NsaWVudChwdHIwLCBsZW4wLCBhZGRCb3Jyb3dlZE9iamVjdChjYWxsYmFjayksIGNhbGxiYWNrX2NvbnRleHQpO1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH0gZmluYWxseSB7XG4gICAgICAgIGhlYXBbc3RhY2tfcG9pbnRlcisrXSA9IHVuZGVmaW5lZDtcbiAgICB9XG59XG5cbi8qKlxuKiBAcGFyYW0ge251bWJlcn0gcHRyXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1dHRwbHVnX2ZyZWVfY2xpZW50KHB0cikge1xuICAgIHdhc20uYnV0dHBsdWdfZnJlZV9jbGllbnQocHRyKTtcbn1cblxuZnVuY3Rpb24gcGFzc0FycmF5OFRvV2FzbTAoYXJnLCBtYWxsb2MpIHtcbiAgICBjb25zdCBwdHIgPSBtYWxsb2MoYXJnLmxlbmd0aCAqIDEpO1xuICAgIGdldFVpbnQ4TWVtb3J5MCgpLnNldChhcmcsIHB0ciAvIDEpO1xuICAgIFdBU01fVkVDVE9SX0xFTiA9IGFyZy5sZW5ndGg7XG4gICAgcmV0dXJuIHB0cjtcbn1cbi8qKlxuKiBAcGFyYW0ge251bWJlcn0gY2xpZW50X3B0clxuKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ1ZlxuKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuKiBAcGFyYW0ge251bWJlcn0gY2FsbGJhY2tfY29udGV4dFxuKi9cbmV4cG9ydCBmdW5jdGlvbiBidXR0cGx1Z19jbGllbnRfcHJvdG9idWZfbWVzc2FnZShjbGllbnRfcHRyLCBidWYsIGNhbGxiYWNrLCBjYWxsYmFja19jb250ZXh0KSB7XG4gICAgdmFyIHB0cjAgPSBwYXNzQXJyYXk4VG9XYXNtMChidWYsIHdhc20uX193YmluZGdlbl9tYWxsb2MpO1xuICAgIHZhciBsZW4wID0gV0FTTV9WRUNUT1JfTEVOO1xuICAgIHdhc20uYnV0dHBsdWdfY2xpZW50X3Byb3RvYnVmX21lc3NhZ2UoY2xpZW50X3B0ciwgcHRyMCwgbGVuMCwgYWRkSGVhcE9iamVjdChjYWxsYmFjayksIGNhbGxiYWNrX2NvbnRleHQpO1xufVxuXG4vKipcbiogQHBhcmFtIHtudW1iZXJ9IGNsaWVudF9wdHJcbiogQHBhcmFtIHtudW1iZXJ9IGRldmljZV9pbmRleFxuKiBAcmV0dXJucyB7bnVtYmVyfVxuKi9cbmV4cG9ydCBmdW5jdGlvbiBidXR0cGx1Z19jcmVhdGVfZGV2aWNlKGNsaWVudF9wdHIsIGRldmljZV9pbmRleCkge1xuICAgIHZhciByZXQgPSB3YXNtLmJ1dHRwbHVnX2NyZWF0ZV9kZXZpY2UoY2xpZW50X3B0ciwgZGV2aWNlX2luZGV4KTtcbiAgICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiogQHBhcmFtIHtudW1iZXJ9IGRldmljZV9wdHJcbiogQHBhcmFtIHtVaW50OEFycmF5fSBidWZcbiogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiogQHBhcmFtIHtudW1iZXJ9IGNhbGxiYWNrX2NvbnRleHRcbiovXG5leHBvcnQgZnVuY3Rpb24gYnV0dHBsdWdfZGV2aWNlX3Byb3RvYnVmX21lc3NhZ2UoZGV2aWNlX3B0ciwgYnVmLCBjYWxsYmFjaywgY2FsbGJhY2tfY29udGV4dCkge1xuICAgIHZhciBwdHIwID0gcGFzc0FycmF5OFRvV2FzbTAoYnVmLCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jKTtcbiAgICB2YXIgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICB3YXNtLmJ1dHRwbHVnX2RldmljZV9wcm90b2J1Zl9tZXNzYWdlKGRldmljZV9wdHIsIHB0cjAsIGxlbjAsIGFkZEhlYXBPYmplY3QoY2FsbGJhY2spLCBjYWxsYmFja19jb250ZXh0KTtcbn1cblxuLyoqXG4qIEBwYXJhbSB7bnVtYmVyfSBwdHJcbiovXG5leHBvcnQgZnVuY3Rpb24gYnV0dHBsdWdfZnJlZV9kZXZpY2UocHRyKSB7XG4gICAgd2FzbS5idXR0cGx1Z19mcmVlX2RldmljZShwdHIpO1xufVxuXG4vKipcbiogQHBhcmFtIHtzdHJpbmd9IG1heF9sZXZlbFxuKi9cbmV4cG9ydCBmdW5jdGlvbiBidXR0cGx1Z19hY3RpdmF0ZV9lbnZfbG9nZ2VyKG1heF9sZXZlbCkge1xuICAgIHZhciBwdHIwID0gcGFzc1N0cmluZ1RvV2FzbTAobWF4X2xldmVsLCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jLCB3YXNtLl9fd2JpbmRnZW5fcmVhbGxvYyk7XG4gICAgdmFyIGxlbjAgPSBXQVNNX1ZFQ1RPUl9MRU47XG4gICAgd2FzbS5idXR0cGx1Z19hY3RpdmF0ZV9lbnZfbG9nZ2VyKHB0cjAsIGxlbjApO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVFcnJvcihmLCBhcmdzKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGYuYXBwbHkodGhpcywgYXJncyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB3YXNtLl9fd2JpbmRnZW5fZXhuX3N0b3JlKGFkZEhlYXBPYmplY3QoZSkpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0QXJyYXlVOEZyb21XYXNtMChwdHIsIGxlbikge1xuICAgIHJldHVybiBnZXRVaW50OE1lbW9yeTAoKS5zdWJhcnJheShwdHIgLyAxLCBwdHIgLyAxICsgbGVuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5fb2JqZWN0X2Ryb3BfcmVmKGFyZzApIHtcbiAgICB0YWtlT2JqZWN0KGFyZzApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5fY2JfZHJvcChhcmcwKSB7XG4gICAgY29uc3Qgb2JqID0gdGFrZU9iamVjdChhcmcwKS5vcmlnaW5hbDtcbiAgICBpZiAob2JqLmNudC0tID09IDEpIHtcbiAgICAgICAgb2JqLmEgPSAwO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHJldCA9IGZhbHNlO1xuICAgIHJldHVybiByZXQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbG9nX2FlZGQ2ODk2Y2E0NzFmZTYoYXJnMCwgYXJnMSkge1xuICAgIGNvbnNvbGUubG9nKGdldFN0cmluZ0Zyb21XYXNtMChhcmcwLCBhcmcxKSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9zdHJpbmdfbmV3KGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9vYmplY3RfY2xvbmVfcmVmKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9pc19zdHJpbmcoYXJnMCkge1xuICAgIHZhciByZXQgPSB0eXBlb2YoZ2V0T2JqZWN0KGFyZzApKSA9PT0gJ3N0cmluZyc7XG4gICAgcmV0dXJuIHJldDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19sb2dfMDJlMjBhM2MzMjMwNWZiNyhhcmcwLCBhcmcxKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc29sZS5sb2coZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgICB3YXNtLl9fd2JpbmRnZW5fZnJlZShhcmcwLCBhcmcxKTtcbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbG9nXzVjNzUxM2FhOGMxNjQ1MDIoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSwgYXJnNiwgYXJnNykge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGdldFN0cmluZ0Zyb21XYXNtMChhcmcwLCBhcmcxKSwgZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzIsIGFyZzMpLCBnZXRTdHJpbmdGcm9tV2FzbTAoYXJnNCwgYXJnNSksIGdldFN0cmluZ0Zyb21XYXNtMChhcmc2LCBhcmc3KSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgd2FzbS5fX3diaW5kZ2VuX2ZyZWUoYXJnMCwgYXJnMSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX21hcmtfYWJjNzYzMWJkY2VkNjRmMChhcmcwLCBhcmcxKSB7XG4gICAgcGVyZm9ybWFuY2UubWFyayhnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMCwgYXJnMSkpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX21lYXN1cmVfYzUyOGZmNjQwODViNzE0NigpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwLCBhcmcxLCBhcmcyLCBhcmczKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZShnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMCwgYXJnMSksIGdldFN0cmluZ0Zyb21XYXNtMChhcmcyLCBhcmczKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgd2FzbS5fX3diaW5kZ2VuX2ZyZWUoYXJnMCwgYXJnMSk7XG4gICAgICAgIHdhc20uX193YmluZGdlbl9mcmVlKGFyZzIsIGFyZzMpO1xuICAgIH1cbn0sIGFyZ3VtZW50cykgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX25ld182OTMyMTZlMTA5MTYyMzk2KCkge1xuICAgIHZhciByZXQgPSBuZXcgRXJyb3IoKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3N0YWNrXzBkZGFjYTVkMWFiZmI1MmYoYXJnMCwgYXJnMSkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMSkuc3RhY2s7XG4gICAgdmFyIHB0cjAgPSBwYXNzU3RyaW5nVG9XYXNtMChyZXQsIHdhc20uX193YmluZGdlbl9tYWxsb2MsIHdhc20uX193YmluZGdlbl9yZWFsbG9jKTtcbiAgICB2YXIgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDFdID0gbGVuMDtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDBdID0gcHRyMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19lcnJvcl8wOTkxOTYyN2FjMDk5MmY1KGFyZzAsIGFyZzEpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGdldFN0cmluZ0Zyb21XYXNtMChhcmcwLCBhcmcxKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgd2FzbS5fX3diaW5kZ2VuX2ZyZWUoYXJnMCwgYXJnMSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX1dpbmRvd19mODI2YTFkZWMxNjNiYWNiKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLldpbmRvdztcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5faXNfdW5kZWZpbmVkKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApID09PSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJldDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19Xb3JrZXJHbG9iYWxTY29wZV85NjdkMTg2MTU1MTgzZDM4KGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLldvcmtlckdsb2JhbFNjb3BlO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfaW5zdGFuY2VvZl9XaW5kb3dfYzRiNzA2NjJhMGQyYzVlYyhhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKSBpbnN0YW5jZW9mIFdpbmRvdztcbiAgICByZXR1cm4gcmV0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX25hdmlnYXRvcl80ODBlNTkyYWY2YWQzNjViKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLm5hdmlnYXRvcjtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2NsZWFyVGltZW91dF8yYzFiYTAwMTZkOGJjYTQxKGFyZzAsIGFyZzEpIHtcbiAgICBnZXRPYmplY3QoYXJnMCkuY2xlYXJUaW1lb3V0KGFyZzEpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3NldFRpbWVvdXRfZGY2NmQ5NTFiMTcyNmI3OCgpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5zZXRUaW1lb3V0KGdldE9iamVjdChhcmcxKSwgYXJnMik7XG4gICAgcmV0dXJuIHJldDtcbn0sIGFyZ3VtZW50cykgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2RhdGFfOWU1NWU3ZDc5YWIxM2VmMShhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5kYXRhO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfdmFsdWVfODRjZWZlYjI0MDhkZmUxNShhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS52YWx1ZTtcbiAgICByZXR1cm4gaXNMaWtlTm9uZShyZXQpID8gMCA6IGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zZXRvbmNoYXJhY3RlcmlzdGljdmFsdWVjaGFuZ2VkXzc1ZWM3NzczZTMxMDcxOWMoYXJnMCwgYXJnMSkge1xuICAgIGdldE9iamVjdChhcmcwKS5vbmNoYXJhY3RlcmlzdGljdmFsdWVjaGFuZ2VkID0gZ2V0T2JqZWN0KGFyZzEpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3JlYWRWYWx1ZV9lZWVlNDY3ZWVlMjlkOWFiKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnJlYWRWYWx1ZSgpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfc3RhcnROb3RpZmljYXRpb25zXzg5ZDUyYzVkYTEyZjRhNzMoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuc3RhcnROb3RpZmljYXRpb25zKCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ193cml0ZVZhbHVlXzUwNDVlNTNkNjVjZjQ0MTYoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkud3JpdGVWYWx1ZShnZXRBcnJheVU4RnJvbVdhc20wKGFyZzEsIGFyZzIpKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3RhcmdldF9jYzY5ZGRlNmMyZDllYzkwKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnRhcmdldDtcbiAgICByZXR1cm4gaXNMaWtlTm9uZShyZXQpID8gMCA6IGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX3N0cmluZ19nZXQoYXJnMCwgYXJnMSkge1xuICAgIGNvbnN0IG9iaiA9IGdldE9iamVjdChhcmcxKTtcbiAgICB2YXIgcmV0ID0gdHlwZW9mKG9iaikgPT09ICdzdHJpbmcnID8gb2JqIDogdW5kZWZpbmVkO1xuICAgIHZhciBwdHIwID0gaXNMaWtlTm9uZShyZXQpID8gMCA6IHBhc3NTdHJpbmdUb1dhc20wKHJldCwgd2FzbS5fX3diaW5kZ2VuX21hbGxvYywgd2FzbS5fX3diaW5kZ2VuX3JlYWxsb2MpO1xuICAgIHZhciBsZW4wID0gV0FTTV9WRUNUT1JfTEVOO1xuICAgIGdldEludDMyTWVtb3J5MCgpW2FyZzAgLyA0ICsgMV0gPSBsZW4wO1xuICAgIGdldEludDMyTWVtb3J5MCgpW2FyZzAgLyA0ICsgMF0gPSBwdHIwO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3JlcXVlc3REZXZpY2VfOTQ3OTc1NjMzNDllOTNkOChhcmcwLCBhcmcxKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5yZXF1ZXN0RGV2aWNlKGdldE9iamVjdChhcmcxKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19pZF9hNzYyNTg2ZmMzNGE3MTBkKGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzEpLmlkO1xuICAgIHZhciBwdHIwID0gcGFzc1N0cmluZ1RvV2FzbTAocmV0LCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jLCB3YXNtLl9fd2JpbmRnZW5fcmVhbGxvYyk7XG4gICAgdmFyIGxlbjAgPSBXQVNNX1ZFQ1RPUl9MRU47XG4gICAgZ2V0SW50MzJNZW1vcnkwKClbYXJnMCAvIDQgKyAxXSA9IGxlbjA7XG4gICAgZ2V0SW50MzJNZW1vcnkwKClbYXJnMCAvIDQgKyAwXSA9IHB0cjA7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbmFtZV80OGVhZDJhYTU4YzkxNTI0KGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzEpLm5hbWU7XG4gICAgdmFyIHB0cjAgPSBpc0xpa2VOb25lKHJldCkgPyAwIDogcGFzc1N0cmluZ1RvV2FzbTAocmV0LCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jLCB3YXNtLl9fd2JpbmRnZW5fcmVhbGxvYyk7XG4gICAgdmFyIGxlbjAgPSBXQVNNX1ZFQ1RPUl9MRU47XG4gICAgZ2V0SW50MzJNZW1vcnkwKClbYXJnMCAvIDQgKyAxXSA9IGxlbjA7XG4gICAgZ2V0SW50MzJNZW1vcnkwKClbYXJnMCAvIDQgKyAwXSA9IHB0cjA7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfZ2F0dF9iY2E4ZDg1Yjk3YjE4ZWMzKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLmdhdHQ7XG4gICAgcmV0dXJuIGlzTGlrZU5vbmUocmV0KSA/IDAgOiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfc2V0b25nYXR0c2VydmVyZGlzY29ubmVjdGVkXzVlODMyZTA4YjZiNWY0MjMoYXJnMCwgYXJnMSkge1xuICAgIGdldE9iamVjdChhcmcwKS5vbmdhdHRzZXJ2ZXJkaXNjb25uZWN0ZWQgPSBnZXRPYmplY3QoYXJnMSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfY2xlYXJUaW1lb3V0X2MxZjI0NmQ2ODc0YzA2NzkoYXJnMCwgYXJnMSkge1xuICAgIGdldE9iamVjdChhcmcwKS5jbGVhclRpbWVvdXQoYXJnMSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfc2V0VGltZW91dF81MzE0ODUwMTg0ZDYxYTQ0KCkgeyByZXR1cm4gaGFuZGxlRXJyb3IoZnVuY3Rpb24gKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnNldFRpbWVvdXQoZ2V0T2JqZWN0KGFyZzEpLCBhcmcyKTtcbiAgICByZXR1cm4gcmV0O1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfYmx1ZXRvb3RoX2NjOGUwNTM2MTNkOGVlY2EoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuYmx1ZXRvb3RoO1xuICAgIHJldHVybiBpc0xpa2VOb25lKHJldCkgPyAwIDogYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3NldG9ub3Blbl8zM2I3NTQyN2Y3ZGI3Y2UxKGFyZzAsIGFyZzEpIHtcbiAgICBnZXRPYmplY3QoYXJnMCkub25vcGVuID0gZ2V0T2JqZWN0KGFyZzEpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3NldG9uZXJyb3JfY2I1NWYwNTIxYWMwZGEzYShhcmcwLCBhcmcxKSB7XG4gICAgZ2V0T2JqZWN0KGFyZzApLm9uZXJyb3IgPSBnZXRPYmplY3QoYXJnMSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfc2V0b25tZXNzYWdlX2NhNWY3NWU0YTg0MTM0ZWYoYXJnMCwgYXJnMSkge1xuICAgIGdldE9iamVjdChhcmcwKS5vbm1lc3NhZ2UgPSBnZXRPYmplY3QoYXJnMSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbmV3Xzk4MmZlMjJjZDkzZDY3ZjcoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoYXJnMCwgYXJnMSkge1xuICAgIHZhciByZXQgPSBuZXcgV2ViU29ja2V0KGdldFN0cmluZ0Zyb21XYXNtMChhcmcwLCBhcmcxKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn0sIGFyZ3VtZW50cykgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2Nsb3NlX2YyYTEwYzFkZTkwZGY1ZjAoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoYXJnMCkge1xuICAgIGdldE9iamVjdChhcmcwKS5jbG9zZSgpO1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfc2VuZF81MDNjMmU3NjUyZTk1YmY1KCkgeyByZXR1cm4gaGFuZGxlRXJyb3IoZnVuY3Rpb24gKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICBnZXRPYmplY3QoYXJnMCkuc2VuZChnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMSwgYXJnMikpO1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfY29ubmVjdF9lM2NjYjdkODhlOTAzYTk1KGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLmNvbm5lY3QoKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2dldFByaW1hcnlTZXJ2aWNlX2U2MjRlMDk4MmJjZDgzYjEoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuZ2V0UHJpbWFyeVNlcnZpY2UoZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzEsIGFyZzIpKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2dldENoYXJhY3RlcmlzdGljXzdkMjg2OWQxYWQ3MTUxZDIoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuZ2V0Q2hhcmFjdGVyaXN0aWMoZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzEsIGFyZzIpKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2dldFJhbmRvbVZhbHVlc185ODExN2U5YTdlOTkzOTIwKCkgeyByZXR1cm4gaGFuZGxlRXJyb3IoZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHtcbiAgICBnZXRPYmplY3QoYXJnMCkuZ2V0UmFuZG9tVmFsdWVzKGdldE9iamVjdChhcmcxKSk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19yYW5kb21GaWxsU3luY182NGNjN2QwNDhmMjI4Y2E4KCkgeyByZXR1cm4gaGFuZGxlRXJyb3IoZnVuY3Rpb24gKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICBnZXRPYmplY3QoYXJnMCkucmFuZG9tRmlsbFN5bmMoZ2V0QXJyYXlVOEZyb21XYXNtMChhcmcxLCBhcmcyKSk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19wcm9jZXNzXzJmMjRkNjU0NGVhN2IyMDAoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkucHJvY2VzcztcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5faXNfb2JqZWN0KGFyZzApIHtcbiAgICBjb25zdCB2YWwgPSBnZXRPYmplY3QoYXJnMCk7XG4gICAgdmFyIHJldCA9IHR5cGVvZih2YWwpID09PSAnb2JqZWN0JyAmJiB2YWwgIT09IG51bGw7XG4gICAgcmV0dXJuIHJldDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ192ZXJzaW9uc182MTY0NjUxZTc1NDA1ZDRhKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnZlcnNpb25zO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193Ymdfbm9kZV80YjUxN2Q4NjFjYmNiM2JjKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLm5vZGU7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19tb2R1bGVyZXF1aXJlXzM0NDBhNGJjZjQ0NDM3ZGIoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoYXJnMCwgYXJnMSkge1xuICAgIHZhciByZXQgPSBtb2R1bGUucmVxdWlyZShnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMCwgYXJnMSkpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19jcnlwdG9fOThmYzI3MTAyMWM3ZDJhZChhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5jcnlwdG87XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19tc0NyeXB0b19hMmNkYjA0M2QyYmZlNTdmKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLm1zQ3J5cHRvO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbmV3Xzk0OWJiYzExNDcxOTVjNGUoKSB7XG4gICAgdmFyIHJldCA9IG5ldyBBcnJheSgpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbmV3bm9hcmdzX2JlODY1MjRkNzNmNjc1OTgoYXJnMCwgYXJnMSkge1xuICAgIHZhciByZXQgPSBuZXcgRnVuY3Rpb24oZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2NhbGxfODg4ZDI1OWE1ZmVmYzM0NygpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwLCBhcmcxKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5jYWxsKGdldE9iamVjdChhcmcxKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn0sIGFyZ3VtZW50cykgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX25ld18wYjgzZDNkZjY3ZWNiMzNlKCkge1xuICAgIHZhciByZXQgPSBuZXcgT2JqZWN0KCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19wdXNoXzI4NDQ4NmNhMjdjNmFhOGIoYXJnMCwgYXJnMSkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkucHVzaChnZXRPYmplY3QoYXJnMSkpO1xuICAgIHJldHVybiByZXQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfYnVmZmVyXzQ1MjgwZmVjYjgyYzgzZGYoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuYnVmZmVyO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfYnl0ZUxlbmd0aF9jOWU0ZjFiMmJhZThmYzRkKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLmJ5dGVMZW5ndGg7XG4gICAgcmV0dXJuIHJldDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19jYWxsXzM0NjY2OWMyNjIzODJhZDcoKSB7IHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuY2FsbChnZXRPYmplY3QoYXJnMSksIGdldE9iamVjdChhcmcyKSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn0sIGFyZ3VtZW50cykgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3Jlc29sdmVfZDIzMDY4MDAyZjU4NGYyMihhcmcwKSB7XG4gICAgdmFyIHJldCA9IFByb21pc2UucmVzb2x2ZShnZXRPYmplY3QoYXJnMCkpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfdGhlbl8yZmNhYzE5Njc4MjA3MGNjKGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gZ2V0T2JqZWN0KGFyZzApLnRoZW4oZ2V0T2JqZWN0KGFyZzEpKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3RoZW5fOGMyZDYyZThhZTU5NzhmNyhhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS50aGVuKGdldE9iamVjdChhcmcxKSwgZ2V0T2JqZWN0KGFyZzIpKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3NlbGZfYzZmYmRmYzI5MThkNWU1OCgpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmV0ID0gc2VsZi5zZWxmO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ193aW5kb3dfYmFlYzAzOGI1YWIzNWM1NCgpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmV0ID0gd2luZG93LndpbmRvdztcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufSwgYXJndW1lbnRzKSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfZ2xvYmFsVGhpc18zZjczNWE1NzQ2ZDQxZmJkKCkgeyByZXR1cm4gaGFuZGxlRXJyb3IoZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXQgPSBnbG9iYWxUaGlzLmdsb2JhbFRoaXM7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn0sIGFyZ3VtZW50cykgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX2dsb2JhbF8xYmMwYjM5NTgyNzQwZTk1KCkgeyByZXR1cm4gaGFuZGxlRXJyb3IoZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXQgPSBnbG9iYWwuZ2xvYmFsO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19idWZmZXJfMzk3ZWFhNGQ3MmVlOTRkZChhcmcwKSB7XG4gICAgdmFyIHJldCA9IGdldE9iamVjdChhcmcwKS5idWZmZXI7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19uZXd3aXRoYnl0ZW9mZnNldGFuZGxlbmd0aF80YjliOGM0ZTNmNWFkYmZmKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gbmV3IFVpbnQ4QXJyYXkoZ2V0T2JqZWN0KGFyZzApLCBhcmcxID4+PiAwLCBhcmcyID4+PiAwKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX25ld19hN2NlNDQ3ZjE1ZmY0OTZmKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gbmV3IFVpbnQ4QXJyYXkoZ2V0T2JqZWN0KGFyZzApKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3NldF85NjlhZDBhNjBlNTFkMzIwKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICBnZXRPYmplY3QoYXJnMCkuc2V0KGdldE9iamVjdChhcmcxKSwgYXJnMiA+Pj4gMCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbGVuZ3RoXzFlYjhmYzYwOGEwZDRjZGIoYXJnMCkge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkubGVuZ3RoO1xuICAgIHJldHVybiByZXQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmdfbmV3d2l0aGxlbmd0aF85MjkyMzI0NzU4MzlhNDgyKGFyZzApIHtcbiAgICB2YXIgcmV0ID0gbmV3IFVpbnQ4QXJyYXkoYXJnMCA+Pj4gMCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19uZXd3aXRoYnl0ZW9mZnNldF9iNjM4YmFkOGNjMDkwZjMyKGFyZzAsIGFyZzEpIHtcbiAgICB2YXIgcmV0ID0gbmV3IFVpbnQ4QXJyYXkoZ2V0T2JqZWN0KGFyZzApLCBhcmcxID4+PiAwKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JnX3N1YmFycmF5XzhiNjU4NDIyYTIyNGY0NzkoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBnZXRPYmplY3QoYXJnMCkuc3ViYXJyYXkoYXJnMSA+Pj4gMCwgYXJnMiA+Pj4gMCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diZ19zZXRfODJhNGU4YTg1ZTMxYWM0MigpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgdmFyIHJldCA9IFJlZmxlY3Quc2V0KGdldE9iamVjdChhcmcwKSwgZ2V0T2JqZWN0KGFyZzEpLCBnZXRPYmplY3QoYXJnMikpO1xuICAgIHJldHVybiByZXQ7XG59LCBhcmd1bWVudHMpIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX2RlYnVnX3N0cmluZyhhcmcwLCBhcmcxKSB7XG4gICAgdmFyIHJldCA9IGRlYnVnU3RyaW5nKGdldE9iamVjdChhcmcxKSk7XG4gICAgdmFyIHB0cjAgPSBwYXNzU3RyaW5nVG9XYXNtMChyZXQsIHdhc20uX193YmluZGdlbl9tYWxsb2MsIHdhc20uX193YmluZGdlbl9yZWFsbG9jKTtcbiAgICB2YXIgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDFdID0gbGVuMDtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDBdID0gcHRyMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX3Rocm93KGFyZzAsIGFyZzEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX21lbW9yeSgpIHtcbiAgICB2YXIgcmV0ID0gd2FzbS5tZW1vcnk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX2Nsb3N1cmVfd3JhcHBlcjI1NihhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgdmFyIHJldCA9IG1ha2VNdXRDbG9zdXJlKGFyZzAsIGFyZzEsIDYwLCBfX3diZ19hZGFwdGVyXzI0KTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5fY2xvc3VyZV93cmFwcGVyMjU4KGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gbWFrZU11dENsb3N1cmUoYXJnMCwgYXJnMSwgNjAsIF9fd2JnX2FkYXB0ZXJfMjcpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9jbG9zdXJlX3dyYXBwZXIyNjAoYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIHZhciByZXQgPSBtYWtlTXV0Q2xvc3VyZShhcmcwLCBhcmcxLCA2MCwgX193YmdfYWRhcHRlcl8zMCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3diaW5kZ2VuX2Nsb3N1cmVfd3JhcHBlcjI2MihhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgdmFyIHJldCA9IG1ha2VNdXRDbG9zdXJlKGFyZzAsIGFyZzEsIDYwLCBfX3diZ19hZGFwdGVyXzMzKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fd2JpbmRnZW5fY2xvc3VyZV93cmFwcGVyMjg4MChhcmcwLCBhcmcxLCBhcmcyKSB7XG4gICAgdmFyIHJldCA9IG1ha2VNdXRDbG9zdXJlKGFyZzAsIGFyZzEsIDE1MjksIF9fd2JnX2FkYXB0ZXJfMzYpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX193YmluZGdlbl9jbG9zdXJlX3dyYXBwZXI0NjM3KGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICB2YXIgcmV0ID0gbWFrZU11dENsb3N1cmUoYXJnMCwgYXJnMSwgMjI4MywgX193YmdfYWRhcHRlcl8zOSk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbiJdLCJzb3VyY2VSb290IjoiIn0=