appium-uiautomator2-driver 2.4.9 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -596,6 +596,95 @@ Name | Type | Required | Description | Example
596
596
  --- | --- | --- | --- | ---
597
597
  remotePath | string | yes | The full path to the remote file or a file inside an application bundle | `/sdcard/myfile.txt` or `@my.app.id/path/in/bundle`
598
598
 
599
+ ### mobile: isAppInstalled
600
+
601
+ Verify whether an application is installed on the device under test.
602
+
603
+ #### Arguments
604
+
605
+ Name | Type | Required | Description | Example
606
+ --- | --- | --- | --- | ---
607
+ appId | string | yes | The identifier of the application package to be checked | `my.app.id`
608
+
609
+ #### Returned Result
610
+
611
+ True or false
612
+
613
+ ### mobile: queryAppState
614
+
615
+ Queries the current state of the app.
616
+
617
+ #### Arguments
618
+
619
+ Name | Type | Required | Description | Example
620
+ --- | --- | --- | --- | ---
621
+ appId | string | yes | The identifier of the application package to be checked | `my.app.id`
622
+
623
+ #### Returned Result
624
+
625
+ The following numbers could returned:
626
+ - The app is not installed: `0`
627
+ - The app is installed and is not running: `1`
628
+ - The app is running in background: `3`
629
+ - The app is running in foreground: `4`
630
+
631
+ ### mobile: activateApp
632
+
633
+ Activates the given application or launches it if necessary.
634
+ The action literally simulates
635
+ clicking the corresponding application icon on the dashboard.
636
+
637
+ #### Arguments
638
+
639
+ Name | Type | Required | Description | Example
640
+ --- | --- | --- | --- | ---
641
+ appId | string | yes | The identifier of the application package to be activated | `my.app.id`
642
+
643
+ ### mobile: removeApp
644
+
645
+ Remove the corresponding application if is installed.
646
+ The call is ignored if the app is not installed.
647
+
648
+ #### Arguments
649
+
650
+ Name | Type | Required | Description | Example
651
+ --- | --- | --- | --- | ---
652
+ appId | string | yes | The identifier of the application package to be removed | `my.app.id`
653
+
654
+ #### Returned Result
655
+
656
+ True is the app has been found on the device and successfully removed. Otherwise false.
657
+
658
+ ### mobile: terminateApp
659
+
660
+ Terminates the app if it is running.
661
+
662
+ #### Arguments
663
+
664
+ Name | Type | Required | Description | Example
665
+ --- | --- | --- | --- | ---
666
+ appId | string | yes | The identifier of the application package to be terminated | `my.app.id`
667
+ timeout | number | no | The count of milliseconds to wait until the app is terminated. 500ms by default. | 1500
668
+
669
+ #### Returned Result
670
+
671
+ True if the app has been successfully terminated.
672
+
673
+ ### mobile: installApp
674
+
675
+ Installs the given application package to the device under test.
676
+
677
+ #### Arguments
678
+
679
+ Name | Type | Required | Description | Example
680
+ --- | --- | --- | --- | ---
681
+ appPath | string | yes | The local .apk(s) path on the server filesystem or a remote url. | `/app/path.apk`
682
+ timeout | number | no | The count of milliseconds to wait until the app is installed.. 6000ms by default. | 120000
683
+ allowTestPackages | boolean | no | Set to true in order to allow test packages installation. false by default | true
684
+ useSdcard | boolean | no | Set to true to install the app on sdcard instead of the device memory. false by default | true
685
+ grantPermissions | boolean | no | Set to true in order to grant all the permissions requested in the application's manifest automatically after the installation is completed under Android 6+. false by default | true
686
+ replace | boolean | no | Set it to false if you don't want the application to be upgraded/reinstalled if it is already present on the device, but throw an error instead. true by default | false
687
+
599
688
  ### mobile: clearApp
600
689
 
601
690
  Deletes all data associated with a package. Calls `adb shell pm clear` under the hood.
@@ -154,6 +154,12 @@ extensions.executeMobile = async function (mobileCommand, opts = {}) {
154
154
  type: 'mobileType',
155
155
  sensorSet: 'sensorSet',
156
156
  deleteFile: 'mobileDeleteFile',
157
+ isAppInstalled: 'mobileIsAppInstalled',
158
+ queryAppState: 'mobileQueryAppState',
159
+ activateApp: 'mobileActivateApp',
160
+ removeApp: 'mobileRemoveApp',
161
+ terminateApp: 'mobileTerminateApp',
162
+ installApp: 'mobileInstallApp',
157
163
  clearApp: 'mobileClearApp',
158
164
  startActivity: 'mobileStartActivity',
159
165
  startService: 'mobileStartService',
@@ -256,4 +262,4 @@ commands.mobileInstallMultipleApks = async function (opts = {}) {
256
262
  Object.assign(extensions, commands, helpers);
257
263
  var _default = extensions;
258
264
  exports.default = _default;
259
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiY29tbWFuZHMiLCJoZWxwZXJzIiwiZ2V0UGFnZVNvdXJjZSIsInVpYXV0b21hdG9yMiIsImp3cHJveHkiLCJjb21tYW5kIiwiZ2V0Q2xpcGJvYXJkIiwiYWRiIiwiZ2V0QXBpTGV2ZWwiLCJkb1NlbmRLZXlzIiwicGFyYW1zIiwia2V5ZXZlbnQiLCJrZXljb2RlIiwibWV0YXN0YXRlIiwibG9nIiwiZGVidWciLCJiYWNrIiwiZ2V0U3RyaW5ncyIsImxhbmd1YWdlIiwiZ2V0RGV2aWNlTGFuZ3VhZ2UiLCJpbmZvIiwicHJlcHJvY2Vzc1N0cmluZ3NNYXAiLCJtYXBwaW5nIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJfIiwidG9QYWlycyIsImlzU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImFwa1N0cmluZ3MiLCJvcHRzIiwiYXBwIiwiYXBwUGFja2FnZSIsImVycm9yQW5kVGhyb3ciLCJ0bXBSb290IiwidGVtcERpciIsIm9wZW5EaXIiLCJwdWxsQXBrIiwiZXJyIiwibWVzc2FnZSIsImZzIiwiZXhpc3RzIiwiZXh0cmFjdFN0cmluZ3NGcm9tQXBrIiwicmltcmFmIiwiZ2V0RGlzcGxheURlbnNpdHkiLCJnZXRXaW5kb3dTaXplIiwiZ2V0V2luZG93UmVjdCIsIndpZHRoIiwiaGVpZ2h0IiwieCIsInkiLCJleGVjdXRlTW9iaWxlIiwibW9iaWxlQ29tbWFuZCIsIm1vYmlsZUNvbW1hbmRzTWFwcGluZyIsInNoZWxsIiwiZXhlY0VtdUNvbnNvbGVDb21tYW5kIiwiZHJhZ0dlc3R1cmUiLCJmbGluZ0dlc3R1cmUiLCJkb3VibGVDbGlja0dlc3R1cmUiLCJjbGlja0dlc3R1cmUiLCJsb25nQ2xpY2tHZXN0dXJlIiwicGluY2hDbG9zZUdlc3R1cmUiLCJwaW5jaE9wZW5HZXN0dXJlIiwic3dpcGVHZXN0dXJlIiwic2Nyb2xsR2VzdHVyZSIsInNjcm9sbEJhY2tUbyIsInNjcm9sbCIsInZpZXdwb3J0U2NyZWVuc2hvdCIsInZpZXdwb3J0UmVjdCIsImRlZXBMaW5rIiwic3RhcnRMb2dzQnJvYWRjYXN0Iiwic3RvcExvZ3NCcm9hZGNhc3QiLCJhY2NlcHRBbGVydCIsImRpc21pc3NBbGVydCIsImJhdHRlcnlJbmZvIiwiZGV2aWNlSW5mbyIsImdldERldmljZVRpbWUiLCJjaGFuZ2VQZXJtaXNzaW9ucyIsImdldFBlcm1pc3Npb25zIiwicGVyZm9ybUVkaXRvckFjdGlvbiIsInN0YXJ0U2NyZWVuU3RyZWFtaW5nIiwic3RvcFNjcmVlblN0cmVhbWluZyIsImdldE5vdGlmaWNhdGlvbnMiLCJsaXN0U21zIiwidHlwZSIsInNlbnNvclNldCIsImRlbGV0ZUZpbGUiLCJjbGVhckFwcCIsInN0YXJ0QWN0aXZpdHkiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsImJyb2FkY2FzdCIsImdldENvbnRleHRzIiwiaW5zdGFsbE11bHRpcGxlQXBrcyIsInVubG9jayIsInJlZnJlc2hHcHNDYWNoZSIsInN0YXJ0TWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nIiwiaXNNZWRpYVByb2plY3Rpb25SZWNvcmRpbmdSdW5uaW5nIiwic3RvcE1lZGlhUHJvamVjdGlvblJlY29yZGluZyIsImhhcyIsImVycm9ycyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIiwibW9iaWxlVmlld3BvcnRTY3JlZW5zaG90IiwiZ2V0Vmlld3BvcnRTY3JlZW5zaG90IiwibW9iaWxlVmlld1BvcnRSZWN0IiwiZ2V0Vmlld1BvcnRSZWN0Iiwic2V0VXJsIiwidXJsIiwic3RhcnRVcmkiLCJtb2JpbGVEZWVwTGluayIsInBhY2thZ2UiLCJwa2ciLCJ3YWl0Rm9yTGF1bmNoIiwib3Blbk5vdGlmaWNhdGlvbnMiLCJ1cGRhdGVTZXR0aW5ncyIsInNldHRpbmdzIiwidXBkYXRlIiwiZ2V0U2V0dGluZ3MiLCJkcml2ZXJTZXR0aW5ncyIsInNlcnZlclNldHRpbmdzIiwid3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QiLCJ3cmFwcGVkIiwic3VzcGVuZENocm9tZWRyaXZlclByb3h5IiwiY2hyb21lZHJpdmVyIiwicHJveHlSZXFSZXMiLCJiaW5kIiwicHJveHlDb21tYW5kIiwiandwUHJveHlBY3RpdmUiLCJtb2JpbGVHZXREZXZpY2VJbmZvIiwibW9iaWxlVHlwZSIsInRleHQiLCJpc1VuZGVmaW5lZCIsInR5cGVVbmljb2RlIiwibW9iaWxlSW5zdGFsbE11bHRpcGxlQXBrcyIsImlzQXJyYXkiLCJhcGtzIiwiaXNFbXB0eSIsIkludmFsaWRBcmd1bWVudEVycm9yIiwiQiIsImFsbCIsIm1hcCIsImNvbmZpZ3VyZUFwcCIsIkFQS19FWFRFTlNJT04iLCJvcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2dlbmVyYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHsgZnMsIHRlbXBEaXIgfSBmcm9tICdhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBBUEtfRVhURU5TSU9OIH0gZnJvbSAnLi4vZXh0ZW5zaW9ucyc7XG5cbmxldCBleHRlbnNpb25zID0ge30sXG4gICAgY29tbWFuZHMgPSB7fSxcbiAgICBoZWxwZXJzID0ge307XG5cbmNvbW1hbmRzLmdldFBhZ2VTb3VyY2UgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9zb3VyY2UnLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMuZ2V0Q2xpcGJvYXJkID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKGF3YWl0IHRoaXMuYWRiLmdldEFwaUxldmVsKCkgPCAyOSlcbiAgICA/IChhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2dldF9jbGlwYm9hcmQnLCAnUE9TVCcsIHt9KSlcbiAgICA6IChhd2FpdCB0aGlzLmFkYi5nZXRDbGlwYm9hcmQoKSk7XG59O1xuXG4vLyBOZWVkIHRvIG92ZXJyaWRlIHRoaXMgZm9yIGNvcnJlY3QgdW5pY29kZSBzdXBwb3J0XG5jb21tYW5kcy5kb1NlbmRLZXlzID0gYXN5bmMgZnVuY3Rpb24gKHBhcmFtcykge1xuICBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9rZXlzJywgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuLy8gdWlhdXRvbWF0b3IyIGRvZXNuJ3Qgc3VwcG9ydCBtZXRhc3RhdGUgZm9yIGtleWV2ZW50c1xuY29tbWFuZHMua2V5ZXZlbnQgPSBhc3luYyBmdW5jdGlvbiAoa2V5Y29kZSwgbWV0YXN0YXRlKSB7XG4gIHRoaXMubG9nLmRlYnVnKGBJZ25vcmluZyBtZXRhc3RhdGUgJHttZXRhc3RhdGV9YCk7XG4gIGF3YWl0IHRoaXMuYWRiLmtleWV2ZW50KGtleWNvZGUpO1xufTtcblxuLy8gVXNlIEFEQiBzaW5jZSB3ZSBkb24ndCBoYXZlIFVpQXV0b21hdG9yXG5jb21tYW5kcy5iYWNrID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICBhd2FpdCB0aGlzLmFkYi5rZXlldmVudCg0KTtcbn07XG5cbmNvbW1hbmRzLmdldFN0cmluZ3MgPSBhc3luYyBmdW5jdGlvbiAobGFuZ3VhZ2UpIHtcbiAgaWYgKCFsYW5ndWFnZSkge1xuICAgIGxhbmd1YWdlID0gYXdhaXQgdGhpcy5hZGIuZ2V0RGV2aWNlTGFuZ3VhZ2UoKTtcbiAgICB0aGlzLmxvZy5pbmZvKGBObyBsYW5ndWFnZSBzcGVjaWZpZWQsIHJldHVybmluZyBzdHJpbmdzIGZvcjogJHtsYW5ndWFnZX1gKTtcbiAgfVxuXG4gIC8vIENsaWVudHMgcmVxdWlyZSB0aGUgcmVzdWx0aW5nIG1hcHBpbmcgdG8gaGF2ZSBib3RoIGtleXNcbiAgLy8gYW5kIHZhbHVlcyBvZiB0eXBlIHN0cmluZ1xuICBjb25zdCBwcmVwcm9jZXNzU3RyaW5nc01hcCA9IGZ1bmN0aW9uIChtYXBwaW5nKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKG1hcHBpbmcpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IF8uaXNTdHJpbmcodmFsdWUpID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgaWYgKHRoaXMuYXBrU3RyaW5nc1tsYW5ndWFnZV0pIHtcbiAgICAvLyBSZXR1cm4gY2FjaGVkIHN0cmluZ3NcbiAgICByZXR1cm4gcHJlcHJvY2Vzc1N0cmluZ3NNYXAodGhpcy5hcGtTdHJpbmdzW2xhbmd1YWdlXSk7XG4gIH1cblxuICBpZiAoIXRoaXMub3B0cy5hcHAgJiYgIXRoaXMub3B0cy5hcHBQYWNrYWdlKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhcIk9uZSBvZiAnYXBwJyBvciAnYXBwUGFja2FnZScgY2FwYWJpbGl0aWVzIHNob3VsZCBtdXN0IGJlIHNwZWNpZmllZFwiKTtcbiAgfVxuXG4gIGxldCBhcHAgPSB0aGlzLm9wdHMuYXBwO1xuICBjb25zdCB0bXBSb290ID0gYXdhaXQgdGVtcERpci5vcGVuRGlyKCk7XG4gIHRyeSB7XG4gICAgaWYgKCFhcHApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGFwcCA9IGF3YWl0IHRoaXMuYWRiLnB1bGxBcGsodGhpcy5vcHRzLmFwcFBhY2thZ2UsIHRtcFJvb3QpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYEZhaWxlZCB0byBwdWxsIGFuIGFwayBmcm9tICcke3RoaXMub3B0cy5hcHBQYWNrYWdlfScuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghYXdhaXQgZnMuZXhpc3RzKGFwcCkpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYFRoZSBhcHAgYXQgJyR7YXBwfScgZG9lcyBub3QgZXhpc3RgKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qge2Fwa1N0cmluZ3N9ID0gYXdhaXQgdGhpcy5hZGIuZXh0cmFjdFN0cmluZ3NGcm9tQXBrKGFwcCwgbGFuZ3VhZ2UsIHRtcFJvb3QpO1xuICAgICAgdGhpcy5hcGtTdHJpbmdzW2xhbmd1YWdlXSA9IGFwa1N0cmluZ3M7XG4gICAgICByZXR1cm4gcHJlcHJvY2Vzc1N0cmluZ3NNYXAoYXBrU3RyaW5ncyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBDYW5ub3QgZXh0cmFjdCBzdHJpbmdzIGZyb20gJyR7YXBwfScuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBmcy5yaW1yYWYodG1wUm9vdCk7XG4gIH1cbn07XG5cbmNvbW1hbmRzLmdldERpc3BsYXlEZW5zaXR5ID0gYXN5bmMgZnVuY3Rpb24gZ2V0RGlzcGxheURlbnNpdHkgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9kaXNwbGF5X2RlbnNpdHknLCAnR0VUJywge30pO1xufTtcblxuLy8gbWVtb2l6ZWQgaW4gY29uc3RydWN0b3JcbmNvbW1hbmRzLmdldFdpbmRvd1NpemUgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy93aW5kb3cvY3VycmVudC9zaXplJywgJ0dFVCcsIHt9KTtcbn07XG5cbi8vIEZvciBXM0NcbmNvbW1hbmRzLmdldFdpbmRvd1JlY3QgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IGF3YWl0IHRoaXMuZ2V0V2luZG93U2l6ZSgpO1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gIH07XG59O1xuXG5leHRlbnNpb25zLmV4ZWN1dGVNb2JpbGUgPSBhc3luYyBmdW5jdGlvbiAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG1vYmlsZUNvbW1hbmRzTWFwcGluZyA9IHtcbiAgICBzaGVsbDogJ21vYmlsZVNoZWxsJyxcblxuICAgIGV4ZWNFbXVDb25zb2xlQ29tbWFuZDogJ21vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCcsXG5cbiAgICBkcmFnR2VzdHVyZTogJ21vYmlsZURyYWdHZXN0dXJlJyxcbiAgICBmbGluZ0dlc3R1cmU6ICdtb2JpbGVGbGluZ0dlc3R1cmUnLFxuICAgIGRvdWJsZUNsaWNrR2VzdHVyZTogJ21vYmlsZURvdWJsZUNsaWNrR2VzdHVyZScsXG4gICAgY2xpY2tHZXN0dXJlOiAnbW9iaWxlQ2xpY2tHZXN0dXJlJyxcbiAgICBsb25nQ2xpY2tHZXN0dXJlOiAnbW9iaWxlTG9uZ0NsaWNrR2VzdHVyZScsXG4gICAgcGluY2hDbG9zZUdlc3R1cmU6ICdtb2JpbGVQaW5jaENsb3NlR2VzdHVyZScsXG4gICAgcGluY2hPcGVuR2VzdHVyZTogJ21vYmlsZVBpbmNoT3Blbkdlc3R1cmUnLFxuICAgIHN3aXBlR2VzdHVyZTogJ21vYmlsZVN3aXBlR2VzdHVyZScsXG4gICAgc2Nyb2xsR2VzdHVyZTogJ21vYmlsZVNjcm9sbEdlc3R1cmUnLFxuICAgIHNjcm9sbEJhY2tUbzogJ21vYmlsZVNjcm9sbEJhY2tUbycsXG4gICAgc2Nyb2xsOiAnbW9iaWxlU2Nyb2xsJyxcbiAgICB2aWV3cG9ydFNjcmVlbnNob3Q6ICdtb2JpbGVWaWV3cG9ydFNjcmVlbnNob3QnLFxuICAgIHZpZXdwb3J0UmVjdDogJ21vYmlsZVZpZXdQb3J0UmVjdCcsXG5cbiAgICBkZWVwTGluazogJ21vYmlsZURlZXBMaW5rJyxcblxuICAgIHN0YXJ0TG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0YXJ0TG9nc0Jyb2FkY2FzdCcsXG4gICAgc3RvcExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdG9wTG9nc0Jyb2FkY2FzdCcsXG5cbiAgICBhY2NlcHRBbGVydDogJ21vYmlsZUFjY2VwdEFsZXJ0JyxcbiAgICBkaXNtaXNzQWxlcnQ6ICdtb2JpbGVEaXNtaXNzQWxlcnQnLFxuXG4gICAgYmF0dGVyeUluZm86ICdtb2JpbGVHZXRCYXR0ZXJ5SW5mbycsXG5cbiAgICBkZXZpY2VJbmZvOiAnbW9iaWxlR2V0RGV2aWNlSW5mbycsXG5cbiAgICBnZXREZXZpY2VUaW1lOiAnbW9iaWxlR2V0RGV2aWNlVGltZScsXG5cbiAgICBjaGFuZ2VQZXJtaXNzaW9uczogJ21vYmlsZUNoYW5nZVBlcm1pc3Npb25zJyxcbiAgICBnZXRQZXJtaXNzaW9uczogJ21vYmlsZUdldFBlcm1pc3Npb25zJyxcblxuICAgIHBlcmZvcm1FZGl0b3JBY3Rpb246ICdtb2JpbGVQZXJmb3JtRWRpdG9yQWN0aW9uJyxcblxuICAgIHN0YXJ0U2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcnLFxuICAgIHN0b3BTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nJyxcblxuICAgIGdldE5vdGlmaWNhdGlvbnM6ICdtb2JpbGVHZXROb3RpZmljYXRpb25zJyxcblxuICAgIGxpc3RTbXM6ICdtb2JpbGVMaXN0U21zJyxcblxuICAgIHR5cGU6ICdtb2JpbGVUeXBlJyxcbiAgICBzZW5zb3JTZXQ6ICdzZW5zb3JTZXQnLFxuXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuXG4gICAgY2xlYXJBcHA6ICdtb2JpbGVDbGVhckFwcCcsXG5cbiAgICBzdGFydEFjdGl2aXR5OiAnbW9iaWxlU3RhcnRBY3Rpdml0eScsXG4gICAgc3RhcnRTZXJ2aWNlOiAnbW9iaWxlU3RhcnRTZXJ2aWNlJyxcbiAgICBzdG9wU2VydmljZTogJ21vYmlsZVN0b3BTZXJ2aWNlJyxcbiAgICBicm9hZGNhc3Q6ICdtb2JpbGVCcm9hZGNhc3QnLFxuXG4gICAgZ2V0Q29udGV4dHM6ICdtb2JpbGVHZXRDb250ZXh0cycsXG5cbiAgICBpbnN0YWxsTXVsdGlwbGVBcGtzOiAnbW9iaWxlSW5zdGFsbE11bHRpcGxlQXBrcycsXG5cbiAgICB1bmxvY2s6ICdtb2JpbGVVbmxvY2snLFxuXG4gICAgcmVmcmVzaEdwc0NhY2hlOiAnbW9iaWxlUmVmcmVzaEdwc0NhY2hlJyxcblxuICAgIHN0YXJ0TWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nOiAnbW9iaWxlU3RhcnRNZWRpYVByb2plY3Rpb25SZWNvcmRpbmcnLFxuICAgIGlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZzogJ21vYmlsZUlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZycsXG4gICAgc3RvcE1lZGlhUHJvamVjdGlvblJlY29yZGluZzogJ21vYmlsZVN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmcnLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVWaWV3cG9ydFNjcmVlbnNob3QgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldFZpZXdwb3J0U2NyZWVuc2hvdCgpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBSZWN0YW5nbGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBsZWZ0IC0gVGhlIGxlZnQgY29vcmRpbmF0ZSBvZiB0aGUgUmVjdGFuZ2xlLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHRvcCAtIFRoZSB0b3AgY29vcmRpbmF0ZSBvZiB0aGUgUmVjdGFuZ2xlLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIFJlY3RhbmdsZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIFJlY3RhbmdsZS5cbiAqL1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHZpZXdwb3J0IGNvb3JkaW5hdGVzLlxuICogQHJldHVybnMge1JlY3RhbmdsZX0gVGhlIHZpZXdwb3J0IGNvb3JkaW5hdGVzLlxuICovXG5jb21tYW5kcy5tb2JpbGVWaWV3UG9ydFJlY3QgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVWaWV3UG9ydFJlY3QgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRWaWV3UG9ydFJlY3QoKTtcbn07XG5cbmNvbW1hbmRzLnNldFVybCA9IGFzeW5jIGZ1bmN0aW9uICh1cmwpIHtcbiAgYXdhaXQgdGhpcy5hZGIuc3RhcnRVcmkodXJsLCB0aGlzLm9wdHMuYXBwUGFja2FnZSk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IERlZXBMaW5rT3B0c1xuICogQHByb3BlcnR5IHshc3RyaW5nfSB1cmwgLSBUaGUgbmFtZSBvZiBVUkwgdG8gc3RhcnQuXG4gKiBAcHJvcGVydHkgeyFzdHJpbmd9IHBhY2thZ2UgLSBUaGUgbmFtZSBvZiB0aGUgcGFja2FnZSB0byBzdGFydCB0aGUgVVJJIHdpdGguXG4gKiBAcHJvcGVydHkgez9ib29sZWFufSB3YWl0Rm9yTGF1bmNoIFt0cnVlXSAtIGlmIGBmYWxzZWAgdGhlbiBhZGIgd29uJ3Qgd2FpdFxuICogZm9yIHRoZSBzdGFydGVkIGFjdGl2aXR5IHRvIHJldHVybiB0aGUgY29udHJvbFxuICovXG5cbi8qKlxuICogU3RhcnQgVVJMIHRoYXQgdGFrZSB1c2VycyBkaXJlY3RseSB0byBzcGVjaWZpYyBjb250ZW50IGluIHRoZSBhcHBcbiAqIEBwYXJhbSB7RGVlcExpbmtPcHRzfSBvcHRzXG4gKi9cbmNvbW1hbmRzLm1vYmlsZURlZXBMaW5rID0gYXN5bmMgZnVuY3Rpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgdXJsLFxuICAgIHBhY2thZ2U6IHBrZyxcbiAgICB3YWl0Rm9yTGF1bmNoLFxuICB9ID0gb3B0cztcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYWRiLnN0YXJ0VXJpKHVybCwgcGtnLCB7IHdhaXRGb3JMYXVuY2ggfSk7XG59O1xuXG5jb21tYW5kcy5vcGVuTm90aWZpY2F0aW9ucyA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9kZXZpY2Uvb3Blbl9ub3RpZmljYXRpb25zJywgJ1BPU1QnLCB7fSk7XG59O1xuXG5jb21tYW5kcy51cGRhdGVTZXR0aW5ncyA9IGFzeW5jIGZ1bmN0aW9uIChzZXR0aW5ncykge1xuICBhd2FpdCB0aGlzLnNldHRpbmdzLnVwZGF0ZShzZXR0aW5ncyk7XG4gIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9zZXR0aW5ncycsICdQT1NUJywge3NldHRpbmdzfSk7XG59O1xuXG5jb21tYW5kcy5nZXRTZXR0aW5ncyA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgZHJpdmVyU2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzLmdldFNldHRpbmdzKCk7XG4gIGNvbnN0IHNlcnZlclNldHRpbmdzID0gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYXBwaXVtL3NldHRpbmdzJywgJ0dFVCcpO1xuICByZXR1cm4gey4uLmRyaXZlclNldHRpbmdzLCAuLi5zZXJ2ZXJTZXR0aW5nc307XG59O1xuXG4vKipcbiAqIE92ZXJyaWRpbmcgYXBwaXVtLWFuZHJvaWQtZHJpdmVyJ3Mgd3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QsXG4gKiB1bmxpa2UgaW4gYXBwaXVtLWFuZHJvaWQtZHJpdmVyIGF2b2lkaW5nIGFkYiByZXN0YXJ0aW5nIGFzIGl0IGludGVyblxuICoga2lsbHMgVWlBdXRvbWF0b3IyIHNlcnZlciBydW5uaW5nIGluIHRoZSBkZXZpY2UuXG4gKiovXG5oZWxwZXJzLndyYXBCb290c3RyYXBEaXNjb25uZWN0ID0gYXN5bmMgZnVuY3Rpb24gKHdyYXBwZWQpIHtcbiAgYXdhaXQgd3JhcHBlZCgpO1xufTtcblxuLy8gU3RvcCBwcm94eWluZyB0byBhbnkgQ2hyb21lZHJpdmVyIGFuZCByZWRpcmVjdCB0byB1aWF1dG9tYXRvcjJcbmhlbHBlcnMuc3VzcGVuZENocm9tZWRyaXZlclByb3h5ID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmNocm9tZWRyaXZlciA9IG51bGw7XG4gIHRoaXMucHJveHlSZXFSZXMgPSB0aGlzLnVpYXV0b21hdG9yMi5wcm94eVJlcVJlcy5iaW5kKHRoaXMudWlhdXRvbWF0b3IyKTtcbiAgdGhpcy5wcm94eUNvbW1hbmQgPSB0aGlzLnVpYXV0b21hdG9yMi5wcm94eUNvbW1hbmQuYmluZCh0aGlzLnVpYXV0b21hdG9yMik7XG4gIHRoaXMuandwUHJveHlBY3RpdmUgPSB0cnVlO1xufTtcblxuLyoqXG4gKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgaW5mbyBlbnRyaWVzIGNhbiBiZSBmb3VuZCBhdFxuICogaHR0cHM6Ly9naXRodWIuY29tL2FwcGl1bS9hcHBpdW0tdWlhdXRvbWF0b3IyLXNlcnZlci9ibG9iL21hc3Rlci9hcHAvc3JjL21haW4vamF2YS9pby9hcHBpdW0vdWlhdXRvbWF0b3IyL2hhbmRsZXIvR2V0RGV2aWNlSW5mby5qYXZhXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUdldERldmljZUluZm8gPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2luZm8nLCAnR0VUJyk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFR5cGluZ09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7IXN0cmluZ3xudW1iZXJ8Ym9vbGVhbn0gdGV4dCAtIFRoZSB0ZXh0IHRvIHR5cGVcbiAqL1xuXG4vKipcbiAqIFR5cGVzIHRoZSBnaXZlbiBVbmljb2RlIHN0cmluZy5cbiAqIEl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlIGZvY3VzIGlzIGFscmVhZHkgcHV0XG4gKiB0byB0aGUgZGVzdGluYXRpb24gaW5wdXQgZmllbGQgYmVmb3JlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC5cbiAqXG4gKiBAcGFyYW0ge1R5cGluZ09wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIGlucHV0IHRleHQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHNlbnQgdG8gYWRiXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgYHRleHRgIHByb3BlcnR5IGhhcyBub3QgYmVlbiBwcm92aWRlZFxuICovXG5jb21tYW5kcy5tb2JpbGVUeXBlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVHlwZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB0ZXh0LFxuICB9ID0gb3B0cztcbiAgaWYgKF8uaXNVbmRlZmluZWQodGV4dCkpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBUaGUgJ3RleHQnIGFyZ3VtZW50IGlzIG1hbmRhdG9yeWApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi50eXBlVW5pY29kZSh0ZXh0KTtcbn07XG5cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBJbnN0YWxsT3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBhbGxvd1Rlc3RQYWNrYWdlcyBbZmFsc2VdIC0gU2V0IHRvIHRydWUgaW4gb3JkZXIgdG8gYWxsb3cgdGVzdFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZXMgaW5zdGFsbGF0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSB1c2VTZGNhcmQgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIGluc3RhbGwgdGhlIGFwcCBvbiBzZGNhcmRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0ZWFkIG9mIHRoZSBkZXZpY2UgbWVtb3J5LlxuICogQHByb3BlcnR5IHtib29sZWFufSBncmFudFBlcm1pc3Npb25zIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSBpbiBvcmRlciB0byBncmFudCBhbGwgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zIHJlcXVlc3RlZCBpbiB0aGUgYXBwbGljYXRpb24ncyBtYW5pZmVzdFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSBpbnN0YWxsYXRpb24gaXMgY29tcGxldGVkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVyIEFuZHJvaWQgNisuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHJlcGxhY2UgW3RydWVdIC0gU2V0IGl0IHRvIGZhbHNlIGlmIHlvdSBkb24ndCB3YW50XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFwcGxpY2F0aW9uIHRvIGJlIHVwZ3JhZGVkL3JlaW5zdGFsbGVkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXQgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBkZXZpY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHBhcnRpYWxJbnN0YWxsIFtmYWxzZV0gLSBJbnN0YWxsIGFwa3MgcGFydGlhbGx5LiBJdCBpcyB1c2VkIGZvciAnaW5zdGFsbC1tdWx0aXBsZScuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vYW5kcm9pZC5zdGFja2V4Y2hhbmdlLmNvbS9xdWVzdGlvbnMvMTExMDY0L3doYXQtaXMtYS1wYXJ0aWFsLWFwcGxpY2F0aW9uLWluc3RhbGwtdmlhLWFkYlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gSW5zdGFsbE11bHRpcGxlQXBrc09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gYXBrcyAtIFRoZSBsaXN0IG9mIEFQS3MgdG8gaW5zdGFsbC4gRWFjaCBBUEsgc2hvdWxkIGJlIGEgcGF0aCB0byBhIGFwa1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZG93bmxvYWRhYmxlIFVSTCBhcyBIVFRQL0hUVFBTLlxuICogQHByb3BlcnR5IHtJbnN0YWxsT3B0aW9uc30gb3B0aW9uc1xuICovXG5cbi8qKlxuICogSW5zdGFsbCBtdWx0aXBsZSBBUEtzIHdpdGggYGluc3RhbGwtbXVsdGlwbGVgIG9wdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0luc3RhbGxNdWx0aXBsZUFwa3NPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgYW4gZXJyb3Igb2NjdXJlZCB3aGlsZSBpbnN0YWxsaW5nIHRoZSBnaXZlbiBBUEtzLlxuICovXG5jb21tYW5kcy5tb2JpbGVJbnN0YWxsTXVsdGlwbGVBcGtzID0gYXN5bmMgZnVuY3Rpb24gKG9wdHMgPSB7fSkge1xuICBpZiAoIV8uaXNBcnJheShvcHRzLmFwa3MpIHx8IF8uaXNFbXB0eShvcHRzLmFwa3MpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcignTm8gYXBrcyBhcmUgZ2l2ZW4gdG8gaW5zdGFsbCcpO1xuICB9XG4gIGNvbnN0IGFwa3MgPSBhd2FpdCBCLmFsbChvcHRzLmFwa3NcbiAgICAubWFwKChhcHApID0+IHRoaXMuaGVscGVycy5jb25maWd1cmVBcHAoYXBwLCBbQVBLX0VYVEVOU0lPTl0pKSk7XG4gIGF3YWl0IHRoaXMuYWRiLmluc3RhbGxNdWx0aXBsZUFwa3MoYXBrcywgb3B0cy5vcHRpb25zKTtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjtBQUFBLElBQ0lDLFFBQVEsR0FBRyxFQURmO0FBQUEsSUFFSUMsT0FBTyxHQUFHLEVBRmQ7O0FBSUFELFFBQVEsQ0FBQ0UsYUFBVCxHQUF5QixrQkFBa0I7RUFDekMsT0FBTyxNQUFNLEtBQUtDLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxPQUExQixDQUFrQyxTQUFsQyxFQUE2QyxLQUE3QyxFQUFvRCxFQUFwRCxDQUFiO0FBQ0QsQ0FGRDs7QUFJQUwsUUFBUSxDQUFDTSxZQUFULEdBQXdCLGtCQUFrQjtFQUN4QyxPQUFRLE9BQU0sS0FBS0MsR0FBTCxDQUFTQyxXQUFULEVBQU4sSUFBK0IsRUFBaEMsR0FDRixNQUFNLEtBQUtMLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxPQUExQixDQUFrQyw4QkFBbEMsRUFBa0UsTUFBbEUsRUFBMEUsRUFBMUUsQ0FESixHQUVGLE1BQU0sS0FBS0UsR0FBTCxDQUFTRCxZQUFULEVBRlg7QUFHRCxDQUpEOztBQU9BTixRQUFRLENBQUNTLFVBQVQsR0FBc0IsZ0JBQWdCQyxNQUFoQixFQUF3QjtFQUM1QyxNQUFNLEtBQUtQLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxPQUExQixDQUFrQyxPQUFsQyxFQUEyQyxNQUEzQyxFQUFtREssTUFBbkQsQ0FBTjtBQUNELENBRkQ7O0FBS0FWLFFBQVEsQ0FBQ1csUUFBVCxHQUFvQixnQkFBZ0JDLE9BQWhCLEVBQXlCQyxTQUF6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
265
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiY29tbWFuZHMiLCJoZWxwZXJzIiwiZ2V0UGFnZVNvdXJjZSIsInVpYXV0b21hdG9yMiIsImp3cHJveHkiLCJjb21tYW5kIiwiZ2V0Q2xpcGJvYXJkIiwiYWRiIiwiZ2V0QXBpTGV2ZWwiLCJkb1NlbmRLZXlzIiwicGFyYW1zIiwia2V5ZXZlbnQiLCJrZXljb2RlIiwibWV0YXN0YXRlIiwibG9nIiwiZGVidWciLCJiYWNrIiwiZ2V0U3RyaW5ncyIsImxhbmd1YWdlIiwiZ2V0RGV2aWNlTGFuZ3VhZ2UiLCJpbmZvIiwicHJlcHJvY2Vzc1N0cmluZ3NNYXAiLCJtYXBwaW5nIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJfIiwidG9QYWlycyIsImlzU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImFwa1N0cmluZ3MiLCJvcHRzIiwiYXBwIiwiYXBwUGFja2FnZSIsImVycm9yQW5kVGhyb3ciLCJ0bXBSb290IiwidGVtcERpciIsIm9wZW5EaXIiLCJwdWxsQXBrIiwiZXJyIiwibWVzc2FnZSIsImZzIiwiZXhpc3RzIiwiZXh0cmFjdFN0cmluZ3NGcm9tQXBrIiwicmltcmFmIiwiZ2V0RGlzcGxheURlbnNpdHkiLCJnZXRXaW5kb3dTaXplIiwiZ2V0V2luZG93UmVjdCIsIndpZHRoIiwiaGVpZ2h0IiwieCIsInkiLCJleGVjdXRlTW9iaWxlIiwibW9iaWxlQ29tbWFuZCIsIm1vYmlsZUNvbW1hbmRzTWFwcGluZyIsInNoZWxsIiwiZXhlY0VtdUNvbnNvbGVDb21tYW5kIiwiZHJhZ0dlc3R1cmUiLCJmbGluZ0dlc3R1cmUiLCJkb3VibGVDbGlja0dlc3R1cmUiLCJjbGlja0dlc3R1cmUiLCJsb25nQ2xpY2tHZXN0dXJlIiwicGluY2hDbG9zZUdlc3R1cmUiLCJwaW5jaE9wZW5HZXN0dXJlIiwic3dpcGVHZXN0dXJlIiwic2Nyb2xsR2VzdHVyZSIsInNjcm9sbEJhY2tUbyIsInNjcm9sbCIsInZpZXdwb3J0U2NyZWVuc2hvdCIsInZpZXdwb3J0UmVjdCIsImRlZXBMaW5rIiwic3RhcnRMb2dzQnJvYWRjYXN0Iiwic3RvcExvZ3NCcm9hZGNhc3QiLCJhY2NlcHRBbGVydCIsImRpc21pc3NBbGVydCIsImJhdHRlcnlJbmZvIiwiZGV2aWNlSW5mbyIsImdldERldmljZVRpbWUiLCJjaGFuZ2VQZXJtaXNzaW9ucyIsImdldFBlcm1pc3Npb25zIiwicGVyZm9ybUVkaXRvckFjdGlvbiIsInN0YXJ0U2NyZWVuU3RyZWFtaW5nIiwic3RvcFNjcmVlblN0cmVhbWluZyIsImdldE5vdGlmaWNhdGlvbnMiLCJsaXN0U21zIiwidHlwZSIsInNlbnNvclNldCIsImRlbGV0ZUZpbGUiLCJpc0FwcEluc3RhbGxlZCIsInF1ZXJ5QXBwU3RhdGUiLCJhY3RpdmF0ZUFwcCIsInJlbW92ZUFwcCIsInRlcm1pbmF0ZUFwcCIsImluc3RhbGxBcHAiLCJjbGVhckFwcCIsInN0YXJ0QWN0aXZpdHkiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsImJyb2FkY2FzdCIsImdldENvbnRleHRzIiwiaW5zdGFsbE11bHRpcGxlQXBrcyIsInVubG9jayIsInJlZnJlc2hHcHNDYWNoZSIsInN0YXJ0TWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nIiwiaXNNZWRpYVByb2plY3Rpb25SZWNvcmRpbmdSdW5uaW5nIiwic3RvcE1lZGlhUHJvamVjdGlvblJlY29yZGluZyIsImhhcyIsImVycm9ycyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIiwibW9iaWxlVmlld3BvcnRTY3JlZW5zaG90IiwiZ2V0Vmlld3BvcnRTY3JlZW5zaG90IiwibW9iaWxlVmlld1BvcnRSZWN0IiwiZ2V0Vmlld1BvcnRSZWN0Iiwic2V0VXJsIiwidXJsIiwic3RhcnRVcmkiLCJtb2JpbGVEZWVwTGluayIsInBhY2thZ2UiLCJwa2ciLCJ3YWl0Rm9yTGF1bmNoIiwib3Blbk5vdGlmaWNhdGlvbnMiLCJ1cGRhdGVTZXR0aW5ncyIsInNldHRpbmdzIiwidXBkYXRlIiwiZ2V0U2V0dGluZ3MiLCJkcml2ZXJTZXR0aW5ncyIsInNlcnZlclNldHRpbmdzIiwid3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QiLCJ3cmFwcGVkIiwic3VzcGVuZENocm9tZWRyaXZlclByb3h5IiwiY2hyb21lZHJpdmVyIiwicHJveHlSZXFSZXMiLCJiaW5kIiwicHJveHlDb21tYW5kIiwiandwUHJveHlBY3RpdmUiLCJtb2JpbGVHZXREZXZpY2VJbmZvIiwibW9iaWxlVHlwZSIsInRleHQiLCJpc1VuZGVmaW5lZCIsInR5cGVVbmljb2RlIiwibW9iaWxlSW5zdGFsbE11bHRpcGxlQXBrcyIsImlzQXJyYXkiLCJhcGtzIiwiaXNFbXB0eSIsIkludmFsaWRBcmd1bWVudEVycm9yIiwiQiIsImFsbCIsIm1hcCIsImNvbmZpZ3VyZUFwcCIsIkFQS19FWFRFTlNJT04iLCJvcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2dlbmVyYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHsgZnMsIHRlbXBEaXIgfSBmcm9tICdhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBBUEtfRVhURU5TSU9OIH0gZnJvbSAnLi4vZXh0ZW5zaW9ucyc7XG5cbmxldCBleHRlbnNpb25zID0ge30sXG4gICAgY29tbWFuZHMgPSB7fSxcbiAgICBoZWxwZXJzID0ge307XG5cbmNvbW1hbmRzLmdldFBhZ2VTb3VyY2UgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9zb3VyY2UnLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMuZ2V0Q2xpcGJvYXJkID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKGF3YWl0IHRoaXMuYWRiLmdldEFwaUxldmVsKCkgPCAyOSlcbiAgICA/IChhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2dldF9jbGlwYm9hcmQnLCAnUE9TVCcsIHt9KSlcbiAgICA6IChhd2FpdCB0aGlzLmFkYi5nZXRDbGlwYm9hcmQoKSk7XG59O1xuXG4vLyBOZWVkIHRvIG92ZXJyaWRlIHRoaXMgZm9yIGNvcnJlY3QgdW5pY29kZSBzdXBwb3J0XG5jb21tYW5kcy5kb1NlbmRLZXlzID0gYXN5bmMgZnVuY3Rpb24gKHBhcmFtcykge1xuICBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9rZXlzJywgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuLy8gdWlhdXRvbWF0b3IyIGRvZXNuJ3Qgc3VwcG9ydCBtZXRhc3RhdGUgZm9yIGtleWV2ZW50c1xuY29tbWFuZHMua2V5ZXZlbnQgPSBhc3luYyBmdW5jdGlvbiAoa2V5Y29kZSwgbWV0YXN0YXRlKSB7XG4gIHRoaXMubG9nLmRlYnVnKGBJZ25vcmluZyBtZXRhc3RhdGUgJHttZXRhc3RhdGV9YCk7XG4gIGF3YWl0IHRoaXMuYWRiLmtleWV2ZW50KGtleWNvZGUpO1xufTtcblxuLy8gVXNlIEFEQiBzaW5jZSB3ZSBkb24ndCBoYXZlIFVpQXV0b21hdG9yXG5jb21tYW5kcy5iYWNrID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICBhd2FpdCB0aGlzLmFkYi5rZXlldmVudCg0KTtcbn07XG5cbmNvbW1hbmRzLmdldFN0cmluZ3MgPSBhc3luYyBmdW5jdGlvbiAobGFuZ3VhZ2UpIHtcbiAgaWYgKCFsYW5ndWFnZSkge1xuICAgIGxhbmd1YWdlID0gYXdhaXQgdGhpcy5hZGIuZ2V0RGV2aWNlTGFuZ3VhZ2UoKTtcbiAgICB0aGlzLmxvZy5pbmZvKGBObyBsYW5ndWFnZSBzcGVjaWZpZWQsIHJldHVybmluZyBzdHJpbmdzIGZvcjogJHtsYW5ndWFnZX1gKTtcbiAgfVxuXG4gIC8vIENsaWVudHMgcmVxdWlyZSB0aGUgcmVzdWx0aW5nIG1hcHBpbmcgdG8gaGF2ZSBib3RoIGtleXNcbiAgLy8gYW5kIHZhbHVlcyBvZiB0eXBlIHN0cmluZ1xuICBjb25zdCBwcmVwcm9jZXNzU3RyaW5nc01hcCA9IGZ1bmN0aW9uIChtYXBwaW5nKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKG1hcHBpbmcpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IF8uaXNTdHJpbmcodmFsdWUpID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgaWYgKHRoaXMuYXBrU3RyaW5nc1tsYW5ndWFnZV0pIHtcbiAgICAvLyBSZXR1cm4gY2FjaGVkIHN0cmluZ3NcbiAgICByZXR1cm4gcHJlcHJvY2Vzc1N0cmluZ3NNYXAodGhpcy5hcGtTdHJpbmdzW2xhbmd1YWdlXSk7XG4gIH1cblxuICBpZiAoIXRoaXMub3B0cy5hcHAgJiYgIXRoaXMub3B0cy5hcHBQYWNrYWdlKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhcIk9uZSBvZiAnYXBwJyBvciAnYXBwUGFja2FnZScgY2FwYWJpbGl0aWVzIHNob3VsZCBtdXN0IGJlIHNwZWNpZmllZFwiKTtcbiAgfVxuXG4gIGxldCBhcHAgPSB0aGlzLm9wdHMuYXBwO1xuICBjb25zdCB0bXBSb290ID0gYXdhaXQgdGVtcERpci5vcGVuRGlyKCk7XG4gIHRyeSB7XG4gICAgaWYgKCFhcHApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGFwcCA9IGF3YWl0IHRoaXMuYWRiLnB1bGxBcGsodGhpcy5vcHRzLmFwcFBhY2thZ2UsIHRtcFJvb3QpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYEZhaWxlZCB0byBwdWxsIGFuIGFwayBmcm9tICcke3RoaXMub3B0cy5hcHBQYWNrYWdlfScuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghYXdhaXQgZnMuZXhpc3RzKGFwcCkpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYFRoZSBhcHAgYXQgJyR7YXBwfScgZG9lcyBub3QgZXhpc3RgKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qge2Fwa1N0cmluZ3N9ID0gYXdhaXQgdGhpcy5hZGIuZXh0cmFjdFN0cmluZ3NGcm9tQXBrKGFwcCwgbGFuZ3VhZ2UsIHRtcFJvb3QpO1xuICAgICAgdGhpcy5hcGtTdHJpbmdzW2xhbmd1YWdlXSA9IGFwa1N0cmluZ3M7XG4gICAgICByZXR1cm4gcHJlcHJvY2Vzc1N0cmluZ3NNYXAoYXBrU3RyaW5ncyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBDYW5ub3QgZXh0cmFjdCBzdHJpbmdzIGZyb20gJyR7YXBwfScuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBmcy5yaW1yYWYodG1wUm9vdCk7XG4gIH1cbn07XG5cbmNvbW1hbmRzLmdldERpc3BsYXlEZW5zaXR5ID0gYXN5bmMgZnVuY3Rpb24gZ2V0RGlzcGxheURlbnNpdHkgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9kaXNwbGF5X2RlbnNpdHknLCAnR0VUJywge30pO1xufTtcblxuLy8gbWVtb2l6ZWQgaW4gY29uc3RydWN0b3JcbmNvbW1hbmRzLmdldFdpbmRvd1NpemUgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy93aW5kb3cvY3VycmVudC9zaXplJywgJ0dFVCcsIHt9KTtcbn07XG5cbi8vIEZvciBXM0NcbmNvbW1hbmRzLmdldFdpbmRvd1JlY3QgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IGF3YWl0IHRoaXMuZ2V0V2luZG93U2l6ZSgpO1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gIH07XG59O1xuXG5leHRlbnNpb25zLmV4ZWN1dGVNb2JpbGUgPSBhc3luYyBmdW5jdGlvbiAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG1vYmlsZUNvbW1hbmRzTWFwcGluZyA9IHtcbiAgICBzaGVsbDogJ21vYmlsZVNoZWxsJyxcblxuICAgIGV4ZWNFbXVDb25zb2xlQ29tbWFuZDogJ21vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCcsXG5cbiAgICBkcmFnR2VzdHVyZTogJ21vYmlsZURyYWdHZXN0dXJlJyxcbiAgICBmbGluZ0dlc3R1cmU6ICdtb2JpbGVGbGluZ0dlc3R1cmUnLFxuICAgIGRvdWJsZUNsaWNrR2VzdHVyZTogJ21vYmlsZURvdWJsZUNsaWNrR2VzdHVyZScsXG4gICAgY2xpY2tHZXN0dXJlOiAnbW9iaWxlQ2xpY2tHZXN0dXJlJyxcbiAgICBsb25nQ2xpY2tHZXN0dXJlOiAnbW9iaWxlTG9uZ0NsaWNrR2VzdHVyZScsXG4gICAgcGluY2hDbG9zZUdlc3R1cmU6ICdtb2JpbGVQaW5jaENsb3NlR2VzdHVyZScsXG4gICAgcGluY2hPcGVuR2VzdHVyZTogJ21vYmlsZVBpbmNoT3Blbkdlc3R1cmUnLFxuICAgIHN3aXBlR2VzdHVyZTogJ21vYmlsZVN3aXBlR2VzdHVyZScsXG4gICAgc2Nyb2xsR2VzdHVyZTogJ21vYmlsZVNjcm9sbEdlc3R1cmUnLFxuICAgIHNjcm9sbEJhY2tUbzogJ21vYmlsZVNjcm9sbEJhY2tUbycsXG4gICAgc2Nyb2xsOiAnbW9iaWxlU2Nyb2xsJyxcbiAgICB2aWV3cG9ydFNjcmVlbnNob3Q6ICdtb2JpbGVWaWV3cG9ydFNjcmVlbnNob3QnLFxuICAgIHZpZXdwb3J0UmVjdDogJ21vYmlsZVZpZXdQb3J0UmVjdCcsXG5cbiAgICBkZWVwTGluazogJ21vYmlsZURlZXBMaW5rJyxcblxuICAgIHN0YXJ0TG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0YXJ0TG9nc0Jyb2FkY2FzdCcsXG4gICAgc3RvcExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdG9wTG9nc0Jyb2FkY2FzdCcsXG5cbiAgICBhY2NlcHRBbGVydDogJ21vYmlsZUFjY2VwdEFsZXJ0JyxcbiAgICBkaXNtaXNzQWxlcnQ6ICdtb2JpbGVEaXNtaXNzQWxlcnQnLFxuXG4gICAgYmF0dGVyeUluZm86ICdtb2JpbGVHZXRCYXR0ZXJ5SW5mbycsXG5cbiAgICBkZXZpY2VJbmZvOiAnbW9iaWxlR2V0RGV2aWNlSW5mbycsXG5cbiAgICBnZXREZXZpY2VUaW1lOiAnbW9iaWxlR2V0RGV2aWNlVGltZScsXG5cbiAgICBjaGFuZ2VQZXJtaXNzaW9uczogJ21vYmlsZUNoYW5nZVBlcm1pc3Npb25zJyxcbiAgICBnZXRQZXJtaXNzaW9uczogJ21vYmlsZUdldFBlcm1pc3Npb25zJyxcblxuICAgIHBlcmZvcm1FZGl0b3JBY3Rpb246ICdtb2JpbGVQZXJmb3JtRWRpdG9yQWN0aW9uJyxcblxuICAgIHN0YXJ0U2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcnLFxuICAgIHN0b3BTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nJyxcblxuICAgIGdldE5vdGlmaWNhdGlvbnM6ICdtb2JpbGVHZXROb3RpZmljYXRpb25zJyxcblxuICAgIGxpc3RTbXM6ICdtb2JpbGVMaXN0U21zJyxcblxuICAgIHR5cGU6ICdtb2JpbGVUeXBlJyxcbiAgICBzZW5zb3JTZXQ6ICdzZW5zb3JTZXQnLFxuXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuXG4gICAgaXNBcHBJbnN0YWxsZWQ6ICdtb2JpbGVJc0FwcEluc3RhbGxlZCcsXG4gICAgcXVlcnlBcHBTdGF0ZTogJ21vYmlsZVF1ZXJ5QXBwU3RhdGUnLFxuICAgIGFjdGl2YXRlQXBwOiAnbW9iaWxlQWN0aXZhdGVBcHAnLFxuICAgIHJlbW92ZUFwcDogJ21vYmlsZVJlbW92ZUFwcCcsXG4gICAgdGVybWluYXRlQXBwOiAnbW9iaWxlVGVybWluYXRlQXBwJyxcbiAgICBpbnN0YWxsQXBwOiAnbW9iaWxlSW5zdGFsbEFwcCcsXG4gICAgY2xlYXJBcHA6ICdtb2JpbGVDbGVhckFwcCcsXG5cbiAgICBzdGFydEFjdGl2aXR5OiAnbW9iaWxlU3RhcnRBY3Rpdml0eScsXG4gICAgc3RhcnRTZXJ2aWNlOiAnbW9iaWxlU3RhcnRTZXJ2aWNlJyxcbiAgICBzdG9wU2VydmljZTogJ21vYmlsZVN0b3BTZXJ2aWNlJyxcbiAgICBicm9hZGNhc3Q6ICdtb2JpbGVCcm9hZGNhc3QnLFxuXG4gICAgZ2V0Q29udGV4dHM6ICdtb2JpbGVHZXRDb250ZXh0cycsXG5cbiAgICBpbnN0YWxsTXVsdGlwbGVBcGtzOiAnbW9iaWxlSW5zdGFsbE11bHRpcGxlQXBrcycsXG5cbiAgICB1bmxvY2s6ICdtb2JpbGVVbmxvY2snLFxuXG4gICAgcmVmcmVzaEdwc0NhY2hlOiAnbW9iaWxlUmVmcmVzaEdwc0NhY2hlJyxcblxuICAgIHN0YXJ0TWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nOiAnbW9iaWxlU3RhcnRNZWRpYVByb2plY3Rpb25SZWNvcmRpbmcnLFxuICAgIGlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZzogJ21vYmlsZUlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZycsXG4gICAgc3RvcE1lZGlhUHJvamVjdGlvblJlY29yZGluZzogJ21vYmlsZVN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmcnLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVWaWV3cG9ydFNjcmVlbnNob3QgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldFZpZXdwb3J0U2NyZWVuc2hvdCgpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBSZWN0YW5nbGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBsZWZ0IC0gVGhlIGxlZnQgY29vcmRpbmF0ZSBvZiB0aGUgUmVjdGFuZ2xlLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHRvcCAtIFRoZSB0b3AgY29vcmRpbmF0ZSBvZiB0aGUgUmVjdGFuZ2xlLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIFJlY3RhbmdsZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIFJlY3RhbmdsZS5cbiAqL1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHZpZXdwb3J0IGNvb3JkaW5hdGVzLlxuICogQHJldHVybnMge1JlY3RhbmdsZX0gVGhlIHZpZXdwb3J0IGNvb3JkaW5hdGVzLlxuICovXG5jb21tYW5kcy5tb2JpbGVWaWV3UG9ydFJlY3QgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVWaWV3UG9ydFJlY3QgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRWaWV3UG9ydFJlY3QoKTtcbn07XG5cbmNvbW1hbmRzLnNldFVybCA9IGFzeW5jIGZ1bmN0aW9uICh1cmwpIHtcbiAgYXdhaXQgdGhpcy5hZGIuc3RhcnRVcmkodXJsLCB0aGlzLm9wdHMuYXBwUGFja2FnZSk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IERlZXBMaW5rT3B0c1xuICogQHByb3BlcnR5IHshc3RyaW5nfSB1cmwgLSBUaGUgbmFtZSBvZiBVUkwgdG8gc3RhcnQuXG4gKiBAcHJvcGVydHkgeyFzdHJpbmd9IHBhY2thZ2UgLSBUaGUgbmFtZSBvZiB0aGUgcGFja2FnZSB0byBzdGFydCB0aGUgVVJJIHdpdGguXG4gKiBAcHJvcGVydHkgez9ib29sZWFufSB3YWl0Rm9yTGF1bmNoIFt0cnVlXSAtIGlmIGBmYWxzZWAgdGhlbiBhZGIgd29uJ3Qgd2FpdFxuICogZm9yIHRoZSBzdGFydGVkIGFjdGl2aXR5IHRvIHJldHVybiB0aGUgY29udHJvbFxuICovXG5cbi8qKlxuICogU3RhcnQgVVJMIHRoYXQgdGFrZSB1c2VycyBkaXJlY3RseSB0byBzcGVjaWZpYyBjb250ZW50IGluIHRoZSBhcHBcbiAqIEBwYXJhbSB7RGVlcExpbmtPcHRzfSBvcHRzXG4gKi9cbmNvbW1hbmRzLm1vYmlsZURlZXBMaW5rID0gYXN5bmMgZnVuY3Rpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgdXJsLFxuICAgIHBhY2thZ2U6IHBrZyxcbiAgICB3YWl0Rm9yTGF1bmNoLFxuICB9ID0gb3B0cztcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYWRiLnN0YXJ0VXJpKHVybCwgcGtnLCB7IHdhaXRGb3JMYXVuY2ggfSk7XG59O1xuXG5jb21tYW5kcy5vcGVuTm90aWZpY2F0aW9ucyA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9kZXZpY2Uvb3Blbl9ub3RpZmljYXRpb25zJywgJ1BPU1QnLCB7fSk7XG59O1xuXG5jb21tYW5kcy51cGRhdGVTZXR0aW5ncyA9IGFzeW5jIGZ1bmN0aW9uIChzZXR0aW5ncykge1xuICBhd2FpdCB0aGlzLnNldHRpbmdzLnVwZGF0ZShzZXR0aW5ncyk7XG4gIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9zZXR0aW5ncycsICdQT1NUJywge3NldHRpbmdzfSk7XG59O1xuXG5jb21tYW5kcy5nZXRTZXR0aW5ncyA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgZHJpdmVyU2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzLmdldFNldHRpbmdzKCk7XG4gIGNvbnN0IHNlcnZlclNldHRpbmdzID0gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYXBwaXVtL3NldHRpbmdzJywgJ0dFVCcpO1xuICByZXR1cm4gey4uLmRyaXZlclNldHRpbmdzLCAuLi5zZXJ2ZXJTZXR0aW5nc307XG59O1xuXG4vKipcbiAqIE92ZXJyaWRpbmcgYXBwaXVtLWFuZHJvaWQtZHJpdmVyJ3Mgd3JhcEJvb3RzdHJhcERpc2Nvbm5lY3QsXG4gKiB1bmxpa2UgaW4gYXBwaXVtLWFuZHJvaWQtZHJpdmVyIGF2b2lkaW5nIGFkYiByZXN0YXJ0aW5nIGFzIGl0IGludGVyblxuICoga2lsbHMgVWlBdXRvbWF0b3IyIHNlcnZlciBydW5uaW5nIGluIHRoZSBkZXZpY2UuXG4gKiovXG5oZWxwZXJzLndyYXBCb290c3RyYXBEaXNjb25uZWN0ID0gYXN5bmMgZnVuY3Rpb24gKHdyYXBwZWQpIHtcbiAgYXdhaXQgd3JhcHBlZCgpO1xufTtcblxuLy8gU3RvcCBwcm94eWluZyB0byBhbnkgQ2hyb21lZHJpdmVyIGFuZCByZWRpcmVjdCB0byB1aWF1dG9tYXRvcjJcbmhlbHBlcnMuc3VzcGVuZENocm9tZWRyaXZlclByb3h5ID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmNocm9tZWRyaXZlciA9IG51bGw7XG4gIHRoaXMucHJveHlSZXFSZXMgPSB0aGlzLnVpYXV0b21hdG9yMi5wcm94eVJlcVJlcy5iaW5kKHRoaXMudWlhdXRvbWF0b3IyKTtcbiAgdGhpcy5wcm94eUNvbW1hbmQgPSB0aGlzLnVpYXV0b21hdG9yMi5wcm94eUNvbW1hbmQuYmluZCh0aGlzLnVpYXV0b21hdG9yMik7XG4gIHRoaXMuandwUHJveHlBY3RpdmUgPSB0cnVlO1xufTtcblxuLyoqXG4gKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgaW5mbyBlbnRyaWVzIGNhbiBiZSBmb3VuZCBhdFxuICogaHR0cHM6Ly9naXRodWIuY29tL2FwcGl1bS9hcHBpdW0tdWlhdXRvbWF0b3IyLXNlcnZlci9ibG9iL21hc3Rlci9hcHAvc3JjL21haW4vamF2YS9pby9hcHBpdW0vdWlhdXRvbWF0b3IyL2hhbmRsZXIvR2V0RGV2aWNlSW5mby5qYXZhXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUdldERldmljZUluZm8gPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2luZm8nLCAnR0VUJyk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFR5cGluZ09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7IXN0cmluZ3xudW1iZXJ8Ym9vbGVhbn0gdGV4dCAtIFRoZSB0ZXh0IHRvIHR5cGVcbiAqL1xuXG4vKipcbiAqIFR5cGVzIHRoZSBnaXZlbiBVbmljb2RlIHN0cmluZy5cbiAqIEl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlIGZvY3VzIGlzIGFscmVhZHkgcHV0XG4gKiB0byB0aGUgZGVzdGluYXRpb24gaW5wdXQgZmllbGQgYmVmb3JlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC5cbiAqXG4gKiBAcGFyYW0ge1R5cGluZ09wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIGlucHV0IHRleHQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHNlbnQgdG8gYWRiXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgYHRleHRgIHByb3BlcnR5IGhhcyBub3QgYmVlbiBwcm92aWRlZFxuICovXG5jb21tYW5kcy5tb2JpbGVUeXBlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVHlwZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB0ZXh0LFxuICB9ID0gb3B0cztcbiAgaWYgKF8uaXNVbmRlZmluZWQodGV4dCkpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBUaGUgJ3RleHQnIGFyZ3VtZW50IGlzIG1hbmRhdG9yeWApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi50eXBlVW5pY29kZSh0ZXh0KTtcbn07XG5cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBJbnN0YWxsT3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBhbGxvd1Rlc3RQYWNrYWdlcyBbZmFsc2VdIC0gU2V0IHRvIHRydWUgaW4gb3JkZXIgdG8gYWxsb3cgdGVzdFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZXMgaW5zdGFsbGF0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSB1c2VTZGNhcmQgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIGluc3RhbGwgdGhlIGFwcCBvbiBzZGNhcmRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0ZWFkIG9mIHRoZSBkZXZpY2UgbWVtb3J5LlxuICogQHByb3BlcnR5IHtib29sZWFufSBncmFudFBlcm1pc3Npb25zIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSBpbiBvcmRlciB0byBncmFudCBhbGwgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zIHJlcXVlc3RlZCBpbiB0aGUgYXBwbGljYXRpb24ncyBtYW5pZmVzdFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSBpbnN0YWxsYXRpb24gaXMgY29tcGxldGVkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVyIEFuZHJvaWQgNisuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHJlcGxhY2UgW3RydWVdIC0gU2V0IGl0IHRvIGZhbHNlIGlmIHlvdSBkb24ndCB3YW50XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFwcGxpY2F0aW9uIHRvIGJlIHVwZ3JhZGVkL3JlaW5zdGFsbGVkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXQgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBkZXZpY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHBhcnRpYWxJbnN0YWxsIFtmYWxzZV0gLSBJbnN0YWxsIGFwa3MgcGFydGlhbGx5LiBJdCBpcyB1c2VkIGZvciAnaW5zdGFsbC1tdWx0aXBsZScuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vYW5kcm9pZC5zdGFja2V4Y2hhbmdlLmNvbS9xdWVzdGlvbnMvMTExMDY0L3doYXQtaXMtYS1wYXJ0aWFsLWFwcGxpY2F0aW9uLWluc3RhbGwtdmlhLWFkYlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gSW5zdGFsbE11bHRpcGxlQXBrc09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gYXBrcyAtIFRoZSBsaXN0IG9mIEFQS3MgdG8gaW5zdGFsbC4gRWFjaCBBUEsgc2hvdWxkIGJlIGEgcGF0aCB0byBhIGFwa1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZG93bmxvYWRhYmxlIFVSTCBhcyBIVFRQL0hUVFBTLlxuICogQHByb3BlcnR5IHtJbnN0YWxsT3B0aW9uc30gb3B0aW9uc1xuICovXG5cbi8qKlxuICogSW5zdGFsbCBtdWx0aXBsZSBBUEtzIHdpdGggYGluc3RhbGwtbXVsdGlwbGVgIG9wdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0luc3RhbGxNdWx0aXBsZUFwa3NPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgYW4gZXJyb3Igb2NjdXJlZCB3aGlsZSBpbnN0YWxsaW5nIHRoZSBnaXZlbiBBUEtzLlxuICovXG5jb21tYW5kcy5tb2JpbGVJbnN0YWxsTXVsdGlwbGVBcGtzID0gYXN5bmMgZnVuY3Rpb24gKG9wdHMgPSB7fSkge1xuICBpZiAoIV8uaXNBcnJheShvcHRzLmFwa3MpIHx8IF8uaXNFbXB0eShvcHRzLmFwa3MpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcignTm8gYXBrcyBhcmUgZ2l2ZW4gdG8gaW5zdGFsbCcpO1xuICB9XG4gIGNvbnN0IGFwa3MgPSBhd2FpdCBCLmFsbChvcHRzLmFwa3NcbiAgICAubWFwKChhcHApID0+IHRoaXMuaGVscGVycy5jb25maWd1cmVBcHAoYXBwLCBbQVBLX0VYVEVOU0lPTl0pKSk7XG4gIGF3YWl0IHRoaXMuYWRiLmluc3RhbGxNdWx0aXBsZUFwa3MoYXBrcywgb3B0cy5vcHRpb25zKTtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjtBQUFBLElBQ0lDLFFBQVEsR0FBRyxFQURmO0FBQUEsSUFFSUMsT0FBTyxHQUFHLEVBRmQ7O0FBSUFELFFBQVEsQ0FBQ0UsYUFBVCxHQUF5QixrQkFBa0I7RUFDekMsT0FBTyxNQUFNLEtBQUtDLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxPQUExQixDQUFrQyxTQUFsQyxFQUE2QyxLQUE3QyxFQUFvRCxFQUFwRCxDQUFiO0FBQ0QsQ0FGRDs7QUFJQUwsUUFBUSxDQUFDTSxZQUFULEdBQXdCLGtCQUFrQjtFQUN4QyxPQUFRLE9BQU0sS0FBS0MsR0FBTCxDQUFTQyxXQUFULEVBQU4sSUFBK0IsRUFBaEMsR0FDRixNQUFNLEtBQUtMLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxPQUExQixDQUFrQyw4QkFBbEMsRUFBa0UsTUFBbEUsRUFBMEUsRUFBMUUsQ0FESixHQUVGLE1BQU0sS0FBS0UsR0FBTCxDQUFTRCxZQUFULEVBRlg7QUFHRCxDQUpEOztBQU9BTixRQUFRLENBQUNTLFVBQVQsR0FBc0IsZ0JBQWdCQyxNQUFoQixFQUF3QjtFQUM1QyxNQUFNLEtBQUtQLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxPQUExQixDQUFrQyxPQUFsQyxFQUEyQyxNQUEzQyxFQUFtREssTUFBbkQsQ0FBTjtBQUNELENBRkQ7O0FBS0FWLFFBQVEsQ0FBQ1csUUFBVCxHQUFvQixnQkFBZ0JDLE9BQWhCLEVBQXlCQyxTQUF6QixFQUFvQztFQUN0RCxLQUFLQyxHQUFMLENBQVNDLEtBQVQsQ0FBZ0Isc0JBQXFCRixTQUFVLEVBQS9DO0VBQ0EsTUFBTSxLQUFLTixHQUFMLENBQVNJLFFBQVQsQ0FBa0JDLE9BQWxCLENBQU47QUFDRCxDQUhEOztBQU1BWixRQUFRLENBQUNnQixJQUFULEdBQWdCLGtCQUFrQjtFQUNoQyxNQUFNLEtBQUtULEdBQUwsQ0FBU0ksUUFBVCxDQUFrQixDQUFsQixDQUFOO0FBQ0QsQ0FGRDs7QUFJQVgsUUFBUSxDQUFDaUIsVUFBVCxHQUFzQixnQkFBZ0JDLFFBQWhCLEVBQTBCO0VBQzlDLElBQUksQ0FBQ0EsUUFBTCxFQUFlO0lBQ2JBLFFBQVEsR0FBRyxNQUFNLEtBQUtYLEdBQUwsQ0FBU1ksaUJBQVQsRUFBakI7SUFDQSxLQUFLTCxHQUFMLENBQVNNLElBQVQsQ0FBZSxpREFBZ0RGLFFBQVMsRUFBeEU7RUFDRDs7RUFJRCxNQUFNRyxvQkFBb0IsR0FBRyxVQUFVQyxPQUFWLEVBQW1CO0lBQzlDLE1BQU1DLE1BQU0sR0FBRyxFQUFmOztJQUNBLEtBQUssTUFBTSxDQUFDQyxHQUFELEVBQU1DLEtBQU4sQ0FBWCxJQUEyQkMsZUFBQSxDQUFFQyxPQUFGLENBQVVMLE9BQVYsQ0FBM0IsRUFBK0M7TUFDN0NDLE1BQU0sQ0FBQ0MsR0FBRCxDQUFOLEdBQWNFLGVBQUEsQ0FBRUUsUUFBRixDQUFXSCxLQUFYLElBQW9CQSxLQUFwQixHQUE0QkksSUFBSSxDQUFDQyxTQUFMLENBQWVMLEtBQWYsQ0FBMUM7SUFDRDs7SUFDRCxPQUFPRixNQUFQO0VBQ0QsQ0FORDs7RUFRQSxJQUFJLEtBQUtRLFVBQUwsQ0FBZ0JiLFFBQWhCLENBQUosRUFBK0I7SUFFN0IsT0FBT0csb0JBQW9CLENBQUMsS0FBS1UsVUFBTCxDQUFnQmIsUUFBaEIsQ0FBRCxDQUEzQjtFQUNEOztFQUVELElBQUksQ0FBQyxLQUFLYyxJQUFMLENBQVVDLEdBQVgsSUFBa0IsQ0FBQyxLQUFLRCxJQUFMLENBQVVFLFVBQWpDLEVBQTZDO0lBQzNDLEtBQUtwQixHQUFMLENBQVNxQixhQUFULENBQXVCLG9FQUF2QjtFQUNEOztFQUVELElBQUlGLEdBQUcsR0FBRyxLQUFLRCxJQUFMLENBQVVDLEdBQXBCO0VBQ0EsTUFBTUcsT0FBTyxHQUFHLE1BQU1DLGdCQUFBLENBQVFDLE9BQVIsRUFBdEI7O0VBQ0EsSUFBSTtJQUNGLElBQUksQ0FBQ0wsR0FBTCxFQUFVO01BQ1IsSUFBSTtRQUNGQSxHQUFHLEdBQUcsTUFBTSxLQUFLMUIsR0FBTCxDQUFTZ0MsT0FBVCxDQUFpQixLQUFLUCxJQUFMLENBQVVFLFVBQTNCLEVBQXVDRSxPQUF2QyxDQUFaO01BQ0QsQ0FGRCxDQUVFLE9BQU9JLEdBQVAsRUFBWTtRQUNaLEtBQUsxQixHQUFMLENBQVNxQixhQUFULENBQXdCLCtCQUE4QixLQUFLSCxJQUFMLENBQVVFLFVBQVcsc0JBQXFCTSxHQUFHLENBQUNDLE9BQVEsRUFBNUc7TUFDRDtJQUNGOztJQUVELElBQUksRUFBQyxNQUFNQyxXQUFBLENBQUdDLE1BQUgsQ0FBVVYsR0FBVixDQUFQLENBQUosRUFBMkI7TUFDekIsS0FBS25CLEdBQUwsQ0FBU3FCLGFBQVQsQ0FBd0IsZUFBY0YsR0FBSSxrQkFBMUM7SUFDRDs7SUFFRCxJQUFJO01BQ0YsTUFBTTtRQUFDRjtNQUFELElBQWUsTUFBTSxLQUFLeEIsR0FBTCxDQUFTcUMscUJBQVQsQ0FBK0JYLEdBQS9CLEVBQW9DZixRQUFwQyxFQUE4Q2tCLE9BQTlDLENBQTNCO01BQ0EsS0FBS0wsVUFBTCxDQUFnQmIsUUFBaEIsSUFBNEJhLFVBQTVCO01BQ0EsT0FBT1Ysb0JBQW9CLENBQUNVLFVBQUQsQ0FBM0I7SUFDRCxDQUpELENBSUUsT0FBT1MsR0FBUCxFQUFZO01BQ1osS0FBSzFCLEdBQUwsQ0FBU3FCLGFBQVQsQ0FBd0IsZ0NBQStCRixHQUFJLHNCQUFxQk8sR0FBRyxDQUFDQyxPQUFRLEVBQTVGO0lBQ0Q7RUFDRixDQXBCRCxTQW9CVTtJQUNSLE1BQU1DLFdBQUEsQ0FBR0csTUFBSCxDQUFVVCxPQUFWLENBQU47RUFDRDtBQUNGLENBbEREOztBQW9EQXBDLFFBQVEsQ0FBQzhDLGlCQUFULEdBQTZCLGVBQWVBLGlCQUFmLEdBQW9DO0VBQy9ELE9BQU8sTUFBTSxLQUFLM0MsWUFBTCxDQUFrQkMsT0FBbEIsQ0FBMEJDLE9BQTFCLENBQWtDLGdDQUFsQyxFQUFvRSxLQUFwRSxFQUEyRSxFQUEzRSxDQUFiO0FBQ0QsQ0FGRDs7QUFLQUwsUUFBUSxDQUFDK0MsYUFBVCxHQUF5QixrQkFBa0I7RUFDekMsT0FBTyxNQUFNLEtBQUs1QyxZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsT0FBMUIsQ0FBa0Msc0JBQWxDLEVBQTBELEtBQTFELEVBQWlFLEVBQWpFLENBQWI7QUFDRCxDQUZEOztBQUtBTCxRQUFRLENBQUNnRCxhQUFULEdBQXlCLGtCQUFrQjtFQUN6QyxNQUFNO0lBQUNDLEtBQUQ7SUFBUUM7RUFBUixJQUFrQixNQUFNLEtBQUtILGFBQUwsRUFBOUI7RUFDQSxPQUFPO0lBQ0xFLEtBREs7SUFFTEMsTUFGSztJQUdMQyxDQUFDLEVBQUUsQ0FIRTtJQUlMQyxDQUFDLEVBQUU7RUFKRSxDQUFQO0FBTUQsQ0FSRDs7QUFVQXJELFVBQVUsQ0FBQ3NELGFBQVgsR0FBMkIsZ0JBQWdCQyxhQUFoQixFQUErQnRCLElBQUksR0FBRyxFQUF0QyxFQUEwQztFQUNuRSxNQUFNdUIscUJBQXFCLEdBQUc7SUFDNUJDLEtBQUssRUFBRSxhQURxQjtJQUc1QkMscUJBQXFCLEVBQUUsNkJBSEs7SUFLNUJDLFdBQVcsRUFBRSxtQkFMZTtJQU01QkMsWUFBWSxFQUFFLG9CQU5jO0lBTzVCQyxrQkFBa0IsRUFBRSwwQkFQUTtJQVE1QkMsWUFBWSxFQUFFLG9CQVJjO0lBUzVCQyxnQkFBZ0IsRUFBRSx3QkFUVTtJQVU1QkMsaUJBQWlCLEVBQUUseUJBVlM7SUFXNUJDLGdCQUFnQixFQUFFLHdCQVhVO0lBWTVCQyxZQUFZLEVBQUUsb0JBWmM7SUFhNUJDLGFBQWEsRUFBRSxxQkFiYTtJQWM1QkMsWUFBWSxFQUFFLG9CQWRjO0lBZTVCQyxNQUFNLEVBQUUsY0Fmb0I7SUFnQjVCQyxrQkFBa0IsRUFBRSwwQkFoQlE7SUFpQjVCQyxZQUFZLEVBQUUsb0JBakJjO0lBbUI1QkMsUUFBUSxFQUFFLGdCQW5Ca0I7SUFxQjVCQyxrQkFBa0IsRUFBRSwwQkFyQlE7SUFzQjVCQyxpQkFBaUIsRUFBRSx5QkF0QlM7SUF3QjVCQyxXQUFXLEVBQUUsbUJBeEJlO0lBeUI1QkMsWUFBWSxFQUFFLG9CQXpCYztJQTJCNUJDLFdBQVcsRUFBRSxzQkEzQmU7SUE2QjVCQyxVQUFVLEVBQUUscUJBN0JnQjtJQStCNUJDLGFBQWEsRUFBRSxxQkEvQmE7SUFpQzVCQyxpQkFBaUIsRUFBRSx5QkFqQ1M7SUFrQzVCQyxjQUFjLEVBQUUsc0JBbENZO0lBb0M1QkMsbUJBQW1CLEVBQUUsMkJBcENPO0lBc0M1QkMsb0JBQW9CLEVBQUUsNEJBdENNO0lBdUM1QkMsbUJBQW1CLEVBQUUsMkJBdkNPO0lBeUM1QkMsZ0JBQWdCLEVBQUUsd0JBekNVO0lBMkM1QkMsT0FBTyxFQUFFLGVBM0NtQjtJQTZDNUJDLElBQUksRUFBRSxZQTdDc0I7SUE4QzVCQyxTQUFTLEVBQUUsV0E5Q2lCO0lBZ0Q1QkMsVUFBVSxFQUFFLGtCQWhEZ0I7SUFrRDVCQyxjQUFjLEVBQUUsc0JBbERZO0lBbUQ1QkMsYUFBYSxFQUFFLHFCQW5EYTtJQW9ENUJDLFdBQVcsRUFBRSxtQkFwRGU7SUFxRDVCQyxTQUFTLEVBQUUsaUJBckRpQjtJQXNENUJDLFlBQVksRUFBRSxvQkF0RGM7SUF1RDVCQyxVQUFVLEVBQUUsa0JBdkRnQjtJQXdENUJDLFFBQVEsRUFBRSxnQkF4RGtCO0lBMEQ1QkMsYUFBYSxFQUFFLHFCQTFEYTtJQTJENUJDLFlBQVksRUFBRSxvQkEzRGM7SUE0RDVCQyxXQUFXLEVBQUUsbUJBNURlO0lBNkQ1QkMsU0FBUyxFQUFFLGlCQTdEaUI7SUErRDVCQyxXQUFXLEVBQUUsbUJBL0RlO0lBaUU1QkMsbUJBQW1CLEVBQUUsMkJBakVPO0lBbUU1QkMsTUFBTSxFQUFFLGNBbkVvQjtJQXFFNUJDLGVBQWUsRUFBRSx1QkFyRVc7SUF1RTVCQyw2QkFBNkIsRUFBRSxxQ0F2RUg7SUF3RTVCQyxpQ0FBaUMsRUFBRSx5Q0F4RVA7SUF5RTVCQyw0QkFBNEIsRUFBRTtFQXpFRixDQUE5Qjs7RUE0RUEsSUFBSSxDQUFDaEYsZUFBQSxDQUFFaUYsR0FBRixDQUFNcEQscUJBQU4sRUFBNkJELGFBQTdCLENBQUwsRUFBa0Q7SUFDaEQsTUFBTSxJQUFJc0QsY0FBQSxDQUFPQyxtQkFBWCxDQUFnQywyQkFBMEJ2RCxhQUFjLEtBQXpDLEdBQ2xDLFFBQU81QixlQUFBLENBQUVvRixJQUFGLENBQU92RCxxQkFBUCxDQUE4QiwwQkFEbEMsQ0FBTjtFQUVEOztFQUNELE9BQU8sTUFBTSxLQUFLQSxxQkFBcUIsQ0FBQ0QsYUFBRCxDQUExQixFQUEyQ3RCLElBQTNDLENBQWI7QUFDRCxDQWxGRDs7QUFvRkFoQyxRQUFRLENBQUMrRyx3QkFBVCxHQUFvQyxrQkFBa0I7RUFDcEQsT0FBTyxNQUFNLEtBQUtDLHFCQUFMLEVBQWI7QUFDRCxDQUZEOztBQWdCQWhILFFBQVEsQ0FBQ2lILGtCQUFULEdBQThCLGVBQWVBLGtCQUFmLEdBQXFDO0VBQ2pFLE9BQU8sTUFBTSxLQUFLQyxlQUFMLEVBQWI7QUFDRCxDQUZEOztBQUlBbEgsUUFBUSxDQUFDbUgsTUFBVCxHQUFrQixnQkFBZ0JDLEdBQWhCLEVBQXFCO0VBQ3JDLE1BQU0sS0FBSzdHLEdBQUwsQ0FBUzhHLFFBQVQsQ0FBa0JELEdBQWxCLEVBQXVCLEtBQUtwRixJQUFMLENBQVVFLFVBQWpDLENBQU47QUFDRCxDQUZEOztBQWdCQWxDLFFBQVEsQ0FBQ3NILGNBQVQsR0FBMEIsZ0JBQWdCdEYsSUFBSSxHQUFHLEVBQXZCLEVBQTJCO0VBQ25ELE1BQU07SUFDSm9GLEdBREk7SUFFSkcsT0FBTyxFQUFFQyxHQUZMO0lBR0pDO0VBSEksSUFJRnpGLElBSko7RUFLQSxPQUFPLE1BQU0sS0FBS3pCLEdBQUwsQ0FBUzhHLFFBQVQsQ0FBa0JELEdBQWxCLEVBQXVCSSxHQUF2QixFQUE0QjtJQUFFQztFQUFGLENBQTVCLENBQWI7QUFDRCxDQVBEOztBQVNBekgsUUFBUSxDQUFDMEgsaUJBQVQsR0FBNkIsa0JBQWtCO0VBQzdDLE9BQU8sTUFBTSxLQUFLdkgsWUFBTCxDQUFrQkMsT0FBbEIsQ0FBMEJDLE9BQTFCLENBQWtDLG1DQUFsQyxFQUF1RSxNQUF2RSxFQUErRSxFQUEvRSxDQUFiO0FBQ0QsQ0FGRDs7QUFJQUwsUUFBUSxDQUFDMkgsY0FBVCxHQUEwQixnQkFBZ0JDLFFBQWhCLEVBQTBCO0VBQ2xELE1BQU0sS0FBS0EsUUFBTCxDQUFjQyxNQUFkLENBQXFCRCxRQUFyQixDQUFOO0VBQ0EsTUFBTSxLQUFLekgsWUFBTCxDQUFrQkMsT0FBbEIsQ0FBMEJDLE9BQTFCLENBQWtDLGtCQUFsQyxFQUFzRCxNQUF0RCxFQUE4RDtJQUFDdUg7RUFBRCxDQUE5RCxDQUFOO0FBQ0QsQ0FIRDs7QUFLQTVILFFBQVEsQ0FBQzhILFdBQVQsR0FBdUIsa0JBQWtCO0VBQ3ZDLE1BQU1DLGNBQWMsR0FBRyxLQUFLSCxRQUFMLENBQWNFLFdBQWQsRUFBdkI7RUFDQSxNQUFNRSxjQUFjLEdBQUcsTUFBTSxLQUFLN0gsWUFBTCxDQUFrQkMsT0FBbEIsQ0FBMEJDLE9BQTFCLENBQWtDLGtCQUFsQyxFQUFzRCxLQUF0RCxDQUE3QjtFQUNBLE9BQU8sRUFBQyxHQUFHMEgsY0FBSjtJQUFvQixHQUFHQztFQUF2QixDQUFQO0FBQ0QsQ0FKRDs7QUFXQS9ILE9BQU8sQ0FBQ2dJLHVCQUFSLEdBQWtDLGdCQUFnQkMsT0FBaEIsRUFBeUI7RUFDekQsTUFBTUEsT0FBTyxFQUFiO0FBQ0QsQ0FGRDs7QUFLQWpJLE9BQU8sQ0FBQ2tJLHdCQUFSLEdBQW1DLFlBQVk7RUFDN0MsS0FBS0MsWUFBTCxHQUFvQixJQUFwQjtFQUNBLEtBQUtDLFdBQUwsR0FBbUIsS0FBS2xJLFlBQUwsQ0FBa0JrSSxXQUFsQixDQUE4QkMsSUFBOUIsQ0FBbUMsS0FBS25JLFlBQXhDLENBQW5CO0VBQ0EsS0FBS29JLFlBQUwsR0FBb0IsS0FBS3BJLFlBQUwsQ0FBa0JvSSxZQUFsQixDQUErQkQsSUFBL0IsQ0FBb0MsS0FBS25JLFlBQXpDLENBQXBCO0VBQ0EsS0FBS3FJLGNBQUwsR0FBc0IsSUFBdEI7QUFDRCxDQUxEOztBQVdBeEksUUFBUSxDQUFDeUksbUJBQVQsR0FBK0Isa0JBQWtCO0VBQy9DLE9BQU8sTUFBTSxLQUFLdEksWUFBTCxDQUFrQkMsT0FBbEIsQ0FBMEJDLE9BQTFCLENBQWtDLHFCQUFsQyxFQUF5RCxLQUF6RCxDQUFiO0FBQ0QsQ0FGRDs7QUFrQkFMLFFBQVEsQ0FBQzBJLFVBQVQsR0FBc0IsZUFBZUEsVUFBZixDQUEyQjFHLElBQUksR0FBRyxFQUFsQyxFQUFzQztFQUMxRCxNQUFNO0lBQ0oyRztFQURJLElBRUYzRyxJQUZKOztFQUdBLElBQUlOLGVBQUEsQ0FBRWtILFdBQUYsQ0FBY0QsSUFBZCxDQUFKLEVBQXlCO0lBQ3ZCLEtBQUs3SCxHQUFMLENBQVNxQixhQUFULENBQXdCLGtDQUF4QjtFQUNEOztFQUNELE9BQU8sTUFBTSxLQUFLNUIsR0FBTCxDQUFTc0ksV0FBVCxDQUFxQkYsSUFBckIsQ0FBYjtBQUNELENBUkQ7O0FBeUNBM0ksUUFBUSxDQUFDOEkseUJBQVQsR0FBcUMsZ0JBQWdCOUcsSUFBSSxHQUFHLEVBQXZCLEVBQTJCO0VBQzlELElBQUksQ0FBQ04sZUFBQSxDQUFFcUgsT0FBRixDQUFVL0csSUFBSSxDQUFDZ0gsSUFBZixDQUFELElBQXlCdEgsZUFBQSxDQUFFdUgsT0FBRixDQUFVakgsSUFBSSxDQUFDZ0gsSUFBZixDQUE3QixFQUFtRDtJQUNqRCxNQUFNLElBQUlwQyxjQUFBLENBQU9zQyxvQkFBWCxDQUFnQyw4QkFBaEMsQ0FBTjtFQUNEOztFQUNELE1BQU1GLElBQUksR0FBRyxNQUFNRyxpQkFBQSxDQUFFQyxHQUFGLENBQU1wSCxJQUFJLENBQUNnSCxJQUFMLENBQ3RCSyxHQURzQixDQUNqQnBILEdBQUQsSUFBUyxLQUFLaEMsT0FBTCxDQUFhcUosWUFBYixDQUEwQnJILEdBQTFCLEVBQStCLENBQUNzSCx5QkFBRCxDQUEvQixDQURTLENBQU4sQ0FBbkI7RUFFQSxNQUFNLEtBQUtoSixHQUFMLENBQVM4RixtQkFBVCxDQUE2QjJDLElBQTdCLEVBQW1DaEgsSUFBSSxDQUFDd0gsT0FBeEMsQ0FBTjtBQUNELENBUEQ7O0FBU0FDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjM0osVUFBZCxFQUEwQkMsUUFBMUIsRUFBb0NDLE9BQXBDO2VBRWVGLFUifQ==
@@ -157,6 +157,12 @@ extensions.executeMobile = async function (mobileCommand, opts = {}) {
157
157
 
158
158
  deleteFile: 'mobileDeleteFile',
159
159
 
160
+ isAppInstalled: 'mobileIsAppInstalled',
161
+ queryAppState: 'mobileQueryAppState',
162
+ activateApp: 'mobileActivateApp',
163
+ removeApp: 'mobileRemoveApp',
164
+ terminateApp: 'mobileTerminateApp',
165
+ installApp: 'mobileInstallApp',
160
166
  clearApp: 'mobileClearApp',
161
167
 
162
168
  startActivity: 'mobileStartActivity',
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "appium-uiautomator2-driver",
3
- "version": "2.4.9",
3
+ "version": "2.5.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-uiautomator2-driver",
9
- "version": "2.4.9",
9
+ "version": "2.5.0",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@babel/runtime": "^7.0.0",
13
13
  "appium-adb": "^9.10.9",
14
- "appium-android-driver": "^5.2.12",
14
+ "appium-android-driver": "^5.3.0",
15
15
  "appium-chromedriver": "^5.2.1",
16
16
  "appium-uiautomator2-server": "^5.7.0",
17
17
  "asyncbox": "^2.3.1",
@@ -93,6 +93,17 @@
93
93
  "npm": ">=8"
94
94
  }
95
95
  },
96
+ "node_modules/@appium/base-driver/node_modules/@babel/runtime": {
97
+ "version": "7.18.9",
98
+ "extraneous": true,
99
+ "license": "MIT",
100
+ "dependencies": {
101
+ "regenerator-runtime": "^0.13.4"
102
+ },
103
+ "engines": {
104
+ "node": ">=6.9.0"
105
+ }
106
+ },
96
107
  "node_modules/@appium/base-plugin": {
97
108
  "version": "1.10.2",
98
109
  "extraneous": true,
@@ -123,6 +134,17 @@
123
134
  "npm": ">=8"
124
135
  }
125
136
  },
137
+ "node_modules/@appium/docutils/node_modules/@babel/runtime": {
138
+ "version": "7.18.9",
139
+ "extraneous": true,
140
+ "license": "MIT",
141
+ "dependencies": {
142
+ "regenerator-runtime": "^0.13.4"
143
+ },
144
+ "engines": {
145
+ "node": ">=6.9.0"
146
+ }
147
+ },
126
148
  "node_modules/@appium/docutils/node_modules/teen_process": {
127
149
  "version": "1.16.0",
128
150
  "engines": [
@@ -220,6 +242,16 @@
220
242
  "npm": ">=8"
221
243
  }
222
244
  },
245
+ "node_modules/@appium/support/node_modules/@babel/runtime": {
246
+ "version": "7.18.9",
247
+ "license": "MIT",
248
+ "dependencies": {
249
+ "regenerator-runtime": "^0.13.4"
250
+ },
251
+ "engines": {
252
+ "node": ">=6.9.0"
253
+ }
254
+ },
223
255
  "node_modules/@appium/support/node_modules/brace-expansion": {
224
256
  "version": "2.0.1",
225
257
  "license": "MIT",
@@ -321,6 +353,17 @@
321
353
  "appium": "^2.0.0-beta.35"
322
354
  }
323
355
  },
356
+ "node_modules/@appium/test-support/node_modules/@babel/runtime": {
357
+ "version": "7.18.9",
358
+ "dev": true,
359
+ "license": "MIT",
360
+ "dependencies": {
361
+ "regenerator-runtime": "^0.13.4"
362
+ },
363
+ "engines": {
364
+ "node": ">=6.9.0"
365
+ }
366
+ },
324
367
  "node_modules/@appium/test-support/node_modules/teen_process": {
325
368
  "version": "1.16.0",
326
369
  "dev": true,
@@ -382,7 +425,7 @@
382
425
  }
383
426
  },
384
427
  "node_modules/@babel/parser": {
385
- "version": "7.18.13",
428
+ "version": "7.19.0",
386
429
  "extraneous": true,
387
430
  "license": "MIT",
388
431
  "bin": {
@@ -393,7 +436,7 @@
393
436
  }
394
437
  },
395
438
  "node_modules/@babel/runtime": {
396
- "version": "7.18.9",
439
+ "version": "7.19.0",
397
440
  "license": "MIT",
398
441
  "dependencies": {
399
442
  "regenerator-runtime": "^0.13.4"
@@ -1039,10 +1082,6 @@
1039
1082
  "@types/node": "*"
1040
1083
  }
1041
1084
  },
1042
- "node_modules/@types/json-buffer": {
1043
- "version": "3.0.0",
1044
- "license": "MIT"
1045
- },
1046
1085
  "node_modules/@types/json-schema": {
1047
1086
  "version": "7.0.11",
1048
1087
  "license": "MIT"
@@ -1112,7 +1151,7 @@
1112
1151
  }
1113
1152
  },
1114
1153
  "node_modules/@types/node": {
1115
- "version": "18.7.14",
1154
+ "version": "18.7.15",
1116
1155
  "license": "MIT"
1117
1156
  },
1118
1157
  "node_modules/@types/normalize-package-data": {
@@ -1352,7 +1391,7 @@
1352
1391
  }
1353
1392
  },
1354
1393
  "node_modules/appium-android-driver": {
1355
- "version": "5.2.12",
1394
+ "version": "5.3.0",
1356
1395
  "license": "Apache-2.0",
1357
1396
  "dependencies": {
1358
1397
  "@babel/runtime": "^7.0.0",
@@ -1975,17 +2014,6 @@
1975
2014
  "version": "5.0.1",
1976
2015
  "license": "MIT"
1977
2016
  },
1978
- "node_modules/compress-brotli": {
1979
- "version": "1.3.8",
1980
- "license": "MIT",
1981
- "dependencies": {
1982
- "@types/json-buffer": "~3.0.0",
1983
- "json-buffer": "~3.0.1"
1984
- },
1985
- "engines": {
1986
- "node": ">= 12"
1987
- }
1988
- },
1989
2017
  "node_modules/compress-commons": {
1990
2018
  "version": "4.1.1",
1991
2019
  "license": "MIT",
@@ -2281,7 +2309,7 @@
2281
2309
  }
2282
2310
  },
2283
2311
  "node_modules/es-abstract": {
2284
- "version": "1.20.1",
2312
+ "version": "1.20.2",
2285
2313
  "extraneous": true,
2286
2314
  "license": "MIT",
2287
2315
  "dependencies": {
@@ -2289,7 +2317,7 @@
2289
2317
  "es-to-primitive": "^1.2.1",
2290
2318
  "function-bind": "^1.1.1",
2291
2319
  "function.prototype.name": "^1.1.5",
2292
- "get-intrinsic": "^1.1.1",
2320
+ "get-intrinsic": "^1.1.2",
2293
2321
  "get-symbol-description": "^1.0.0",
2294
2322
  "has": "^1.0.3",
2295
2323
  "has-property-descriptors": "^1.0.0",
@@ -2301,9 +2329,9 @@
2301
2329
  "is-shared-array-buffer": "^1.0.2",
2302
2330
  "is-string": "^1.0.7",
2303
2331
  "is-weakref": "^1.0.2",
2304
- "object-inspect": "^1.12.0",
2332
+ "object-inspect": "^1.12.2",
2305
2333
  "object-keys": "^1.1.1",
2306
- "object.assign": "^4.1.2",
2334
+ "object.assign": "^4.1.4",
2307
2335
  "regexp.prototype.flags": "^1.4.3",
2308
2336
  "string.prototype.trimend": "^1.0.5",
2309
2337
  "string.prototype.trimstart": "^1.0.5",
@@ -3319,10 +3347,9 @@
3319
3347
  "license": "MIT"
3320
3348
  },
3321
3349
  "node_modules/keyv": {
3322
- "version": "4.4.1",
3350
+ "version": "4.5.0",
3323
3351
  "license": "MIT",
3324
3352
  "dependencies": {
3325
- "compress-brotli": "^1.3.8",
3326
3353
  "json-buffer": "3.0.1"
3327
3354
  }
3328
3355
  },
@@ -5005,6 +5032,16 @@
5005
5032
  "npm": ">=6"
5006
5033
  }
5007
5034
  },
5035
+ "node_modules/teen_process/node_modules/@babel/runtime": {
5036
+ "version": "7.18.9",
5037
+ "license": "MIT",
5038
+ "dependencies": {
5039
+ "regenerator-runtime": "^0.13.4"
5040
+ },
5041
+ "engines": {
5042
+ "node": ">=6.9.0"
5043
+ }
5044
+ },
5008
5045
  "node_modules/text-hex": {
5009
5046
  "version": "1.0.0",
5010
5047
  "extraneous": true,
@@ -5522,6 +5559,15 @@
5522
5559
  "source-map-support": "0.5.21",
5523
5560
  "type-fest": "2.18.0",
5524
5561
  "validate.js": "0.13.1"
5562
+ },
5563
+ "dependencies": {
5564
+ "@babel/runtime": {
5565
+ "version": "7.18.9",
5566
+ "extraneous": true,
5567
+ "requires": {
5568
+ "regenerator-runtime": "^0.13.4"
5569
+ }
5570
+ }
5525
5571
  }
5526
5572
  },
5527
5573
  "@appium/base-plugin": {
@@ -5544,6 +5590,13 @@
5544
5590
  "teen_process": "1.16.0"
5545
5591
  },
5546
5592
  "dependencies": {
5593
+ "@babel/runtime": {
5594
+ "version": "7.18.9",
5595
+ "extraneous": true,
5596
+ "requires": {
5597
+ "regenerator-runtime": "^0.13.4"
5598
+ }
5599
+ },
5547
5600
  "teen_process": {
5548
5601
  "version": "1.16.0",
5549
5602
  "extraneous": true,
@@ -5629,6 +5682,12 @@
5629
5682
  "yauzl": "2.10.0"
5630
5683
  },
5631
5684
  "dependencies": {
5685
+ "@babel/runtime": {
5686
+ "version": "7.18.9",
5687
+ "requires": {
5688
+ "regenerator-runtime": "^0.13.4"
5689
+ }
5690
+ },
5632
5691
  "brace-expansion": {
5633
5692
  "version": "2.0.1",
5634
5693
  "requires": {
@@ -5693,6 +5752,13 @@
5693
5752
  "teen_process": "1.16.0"
5694
5753
  },
5695
5754
  "dependencies": {
5755
+ "@babel/runtime": {
5756
+ "version": "7.18.9",
5757
+ "dev": true,
5758
+ "requires": {
5759
+ "regenerator-runtime": "^0.13.4"
5760
+ }
5761
+ },
5696
5762
  "teen_process": {
5697
5763
  "version": "1.16.0",
5698
5764
  "dev": true,
@@ -5735,11 +5801,11 @@
5735
5801
  }
5736
5802
  },
5737
5803
  "@babel/parser": {
5738
- "version": "7.18.13",
5804
+ "version": "7.19.0",
5739
5805
  "extraneous": true
5740
5806
  },
5741
5807
  "@babel/runtime": {
5742
- "version": "7.18.9",
5808
+ "version": "7.19.0",
5743
5809
  "requires": {
5744
5810
  "regenerator-runtime": "^0.13.4"
5745
5811
  }
@@ -6185,9 +6251,6 @@
6185
6251
  "@types/node": "*"
6186
6252
  }
6187
6253
  },
6188
- "@types/json-buffer": {
6189
- "version": "3.0.0"
6190
- },
6191
6254
  "@types/json-schema": {
6192
6255
  "version": "7.0.11"
6193
6256
  },
@@ -6245,7 +6308,7 @@
6245
6308
  }
6246
6309
  },
6247
6310
  "@types/node": {
6248
- "version": "18.7.14"
6311
+ "version": "18.7.15"
6249
6312
  },
6250
6313
  "@types/normalize-package-data": {
6251
6314
  "version": "2.4.1"
@@ -6415,7 +6478,7 @@
6415
6478
  }
6416
6479
  },
6417
6480
  "appium-android-driver": {
6418
- "version": "5.2.12",
6481
+ "version": "5.3.0",
6419
6482
  "requires": {
6420
6483
  "@babel/runtime": "^7.0.0",
6421
6484
  "appium-adb": "^9.10.9",
@@ -6830,13 +6893,6 @@
6830
6893
  "compare-versions": {
6831
6894
  "version": "5.0.1"
6832
6895
  },
6833
- "compress-brotli": {
6834
- "version": "1.3.8",
6835
- "requires": {
6836
- "@types/json-buffer": "~3.0.0",
6837
- "json-buffer": "~3.0.1"
6838
- }
6839
- },
6840
6896
  "compress-commons": {
6841
6897
  "version": "4.1.1",
6842
6898
  "requires": {
@@ -7009,14 +7065,14 @@
7009
7065
  }
7010
7066
  },
7011
7067
  "es-abstract": {
7012
- "version": "1.20.1",
7068
+ "version": "1.20.2",
7013
7069
  "extraneous": true,
7014
7070
  "requires": {
7015
7071
  "call-bind": "^1.0.2",
7016
7072
  "es-to-primitive": "^1.2.1",
7017
7073
  "function-bind": "^1.1.1",
7018
7074
  "function.prototype.name": "^1.1.5",
7019
- "get-intrinsic": "^1.1.1",
7075
+ "get-intrinsic": "^1.1.2",
7020
7076
  "get-symbol-description": "^1.0.0",
7021
7077
  "has": "^1.0.3",
7022
7078
  "has-property-descriptors": "^1.0.0",
@@ -7028,9 +7084,9 @@
7028
7084
  "is-shared-array-buffer": "^1.0.2",
7029
7085
  "is-string": "^1.0.7",
7030
7086
  "is-weakref": "^1.0.2",
7031
- "object-inspect": "^1.12.0",
7087
+ "object-inspect": "^1.12.2",
7032
7088
  "object-keys": "^1.1.1",
7033
- "object.assign": "^4.1.2",
7089
+ "object.assign": "^4.1.4",
7034
7090
  "regexp.prototype.flags": "^1.4.3",
7035
7091
  "string.prototype.trimend": "^1.0.5",
7036
7092
  "string.prototype.trimstart": "^1.0.5",
@@ -7668,9 +7724,8 @@
7668
7724
  "dev": true
7669
7725
  },
7670
7726
  "keyv": {
7671
- "version": "4.4.1",
7727
+ "version": "4.5.0",
7672
7728
  "requires": {
7673
- "compress-brotli": "^1.3.8",
7674
7729
  "json-buffer": "3.0.1"
7675
7730
  }
7676
7731
  },
@@ -8789,6 +8844,14 @@
8789
8844
  "shell-quote": "1.7.3",
8790
8845
  "source-map-support": "0.5.21",
8791
8846
  "which": "2.0.2"
8847
+ },
8848
+ "dependencies": {
8849
+ "@babel/runtime": {
8850
+ "version": "7.18.9",
8851
+ "requires": {
8852
+ "regenerator-runtime": "^0.13.4"
8853
+ }
8854
+ }
8792
8855
  }
8793
8856
  },
8794
8857
  "text-hex": {
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "automated testing",
8
8
  "android"
9
9
  ],
10
- "version": "2.4.9",
10
+ "version": "2.5.0",
11
11
  "author": "Appium Contributors",
12
12
  "license": "Apache-2.0",
13
13
  "repository": {
@@ -53,7 +53,7 @@
53
53
  "dependencies": {
54
54
  "@babel/runtime": "^7.0.0",
55
55
  "appium-adb": "^9.10.9",
56
- "appium-android-driver": "^5.2.12",
56
+ "appium-android-driver": "^5.3.0",
57
57
  "appium-chromedriver": "^5.2.1",
58
58
  "appium-uiautomator2-server": "^5.7.0",
59
59
  "asyncbox": "^2.3.1",