gst-atom-xcuitest-driver
Version:
ATOM driver for iOS using XCUITest for backend
102 lines (84 loc) • 14.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("source-map-support/register");
var _lodash = _interopRequireDefault(require("lodash"));
var _gstAtomIosDriver = require("gst-atom-ios-driver");
var _gstAtomBaseDriver = require("gst-atom-base-driver");
let extensions = {};
Object.assign(extensions, _gstAtomIosDriver.iosCommands.execute);
const iosExecute = extensions.execute;
extensions.execute = async function execute(script, args) {
if (!script.match(/^mobile:/) && !this.isWebContext()) {
throw new _gstAtomBaseDriver.errors.NotImplementedError();
}
return await iosExecute.call(this, script, args);
};
extensions.executeAsync = async function executeAsync(script, args) {
if (!this.isWebContext()) {
throw new _gstAtomBaseDriver.errors.NotImplementedError();
}
args = this.convertElementsForAtoms(args);
this.asyncWaitMs = this.asyncWaitMs || 0;
const promise = this.remote.executeAtomAsync('execute_async_script', [script, args, this.asyncWaitMs], this.curWebFrames);
return await this.waitForAtom(promise);
};
extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}) {
const commandMap = {
tap: 'mobileTap',
scroll: 'mobileScroll',
selectPickerWheelValue: 'mobileSelectPickerWheelValue',
swipe: 'mobileSwipe',
pinch: 'mobilePinch',
doubleTap: 'mobileDoubleTap',
twoFingerTap: 'mobileTwoFingerTap',
tapWithNumberOfTaps: 'mobileTapWithNumberOfTaps',
touchAndHold: 'mobileTouchAndHold',
dragFromToForDuration: 'mobileDragFromToForDuration',
rotateElement: 'mobileRotateElement',
alert: 'mobileHandleAlert',
setPasteboard: 'mobileSetPasteboard',
getPasteboard: 'mobileGetPasteboard',
source: 'mobileGetSource',
getContexts: 'mobileGetContexts',
installApp: 'mobileInstallApp',
isAppInstalled: 'mobileIsAppInstalled',
removeApp: 'mobileRemoveApp',
launchApp: 'mobileLaunchApp',
terminateApp: 'mobileTerminateApp',
queryAppState: 'mobileQueryAppState',
activateApp: 'mobileActivateApp',
viewportScreenshot: 'getViewportScreenshot',
startPerfRecord: 'mobileStartPerfRecord',
stopPerfRecord: 'mobileStopPerfRecord',
installCertificate: 'mobileInstallCertificate',
startLogsBroadcast: 'mobileStartLogsBroadcast',
stopLogsBroadcast: 'mobileStopLogsBroadcast',
batteryInfo: 'mobileGetBatteryInfo',
deviceInfo: 'mobileGetDeviceInfo',
getDeviceTime: 'mobileGetDeviceTime',
activeAppInfo: 'mobileGetActiveAppInfo',
pressButton: 'mobilePressButton',
enrollBiometric: 'mobileEnrollBiometric',
sendBiometricMatch: 'mobileSendBiometricMatch',
isBiometricEnrolled: 'mobileIsBiometricEnrolled',
clearKeychains: 'mobileClearKeychains',
getPermission: 'mobileGetPermission',
setPermission: 'mobileSetPermissions',
getAppearance: 'mobileGetAppearance',
setAppearance: 'mobileSetAppearance',
siriCommand: 'mobileSiriCommand',
deleteFile: 'mobileDeleteFile',
deleteFolder: 'mobileDeleteFolder'
};
if (!_lodash.default.has(commandMap, mobileCommand)) {
throw new _gstAtomBaseDriver.errors.UnknownCommandError(`Unknown mobile command '${mobileCommand}'. Only ${_lodash.default.keys(commandMap).join(', ')} commands are supported.`);
}
return await this[commandMap[mobileCommand]](opts);
};
var _default = extensions;
exports.default = _default;require('source-map-support').install();
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sIm5hbWVzIjpbImV4dGVuc2lvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJpb3NDb21tYW5kcyIsImV4ZWN1dGUiLCJpb3NFeGVjdXRlIiwic2NyaXB0IiwiYXJncyIsIm1hdGNoIiwiaXNXZWJDb250ZXh0IiwiZXJyb3JzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImNhbGwiLCJleGVjdXRlQXN5bmMiLCJjb252ZXJ0RWxlbWVudHNGb3JBdG9tcyIsImFzeW5jV2FpdE1zIiwicHJvbWlzZSIsInJlbW90ZSIsImV4ZWN1dGVBdG9tQXN5bmMiLCJjdXJXZWJGcmFtZXMiLCJ3YWl0Rm9yQXRvbSIsImV4ZWN1dGVNb2JpbGUiLCJtb2JpbGVDb21tYW5kIiwib3B0cyIsImNvbW1hbmRNYXAiLCJ0YXAiLCJzY3JvbGwiLCJzZWxlY3RQaWNrZXJXaGVlbFZhbHVlIiwic3dpcGUiLCJwaW5jaCIsImRvdWJsZVRhcCIsInR3b0ZpbmdlclRhcCIsInRhcFdpdGhOdW1iZXJPZlRhcHMiLCJ0b3VjaEFuZEhvbGQiLCJkcmFnRnJvbVRvRm9yRHVyYXRpb24iLCJyb3RhdGVFbGVtZW50IiwiYWxlcnQiLCJzZXRQYXN0ZWJvYXJkIiwiZ2V0UGFzdGVib2FyZCIsInNvdXJjZSIsImdldENvbnRleHRzIiwiaW5zdGFsbEFwcCIsImlzQXBwSW5zdGFsbGVkIiwicmVtb3ZlQXBwIiwibGF1bmNoQXBwIiwidGVybWluYXRlQXBwIiwicXVlcnlBcHBTdGF0ZSIsImFjdGl2YXRlQXBwIiwidmlld3BvcnRTY3JlZW5zaG90Iiwic3RhcnRQZXJmUmVjb3JkIiwic3RvcFBlcmZSZWNvcmQiLCJpbnN0YWxsQ2VydGlmaWNhdGUiLCJzdGFydExvZ3NCcm9hZGNhc3QiLCJzdG9wTG9nc0Jyb2FkY2FzdCIsImJhdHRlcnlJbmZvIiwiZGV2aWNlSW5mbyIsImdldERldmljZVRpbWUiLCJhY3RpdmVBcHBJbmZvIiwicHJlc3NCdXR0b24iLCJlbnJvbGxCaW9tZXRyaWMiLCJzZW5kQmlvbWV0cmljTWF0Y2giLCJpc0Jpb21ldHJpY0Vucm9sbGVkIiwiY2xlYXJLZXljaGFpbnMiLCJnZXRQZXJtaXNzaW9uIiwic2V0UGVybWlzc2lvbiIsImdldEFwcGVhcmFuY2UiLCJzZXRBcHBlYXJhbmNlIiwic2lyaUNvbW1hbmQiLCJkZWxldGVGaWxlIiwiZGVsZXRlRm9sZGVyIiwiXyIsImhhcyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxJQUFJQSxVQUFVLEdBQUcsRUFBakI7QUFFQUMsTUFBTSxDQUFDQyxNQUFQLENBQWNGLFVBQWQsRUFBMEJHLDhCQUFZQyxPQUF0QztBQUVBLE1BQU1DLFVBQVUsR0FBR0wsVUFBVSxDQUFDSSxPQUE5Qjs7QUFDQUosVUFBVSxDQUFDSSxPQUFYLEdBQXFCLGVBQWVBLE9BQWYsQ0FBd0JFLE1BQXhCLEVBQWdDQyxJQUFoQyxFQUFzQztBQUN6RCxNQUFJLENBQUNELE1BQU0sQ0FBQ0UsS0FBUCxDQUFhLFVBQWIsQ0FBRCxJQUE2QixDQUFDLEtBQUtDLFlBQUwsRUFBbEMsRUFBdUQ7QUFDckQsVUFBTSxJQUFJQywwQkFBT0MsbUJBQVgsRUFBTjtBQUNEOztBQUVELFNBQU8sTUFBTU4sVUFBVSxDQUFDTyxJQUFYLENBQWdCLElBQWhCLEVBQXNCTixNQUF0QixFQUE4QkMsSUFBOUIsQ0FBYjtBQUNELENBTkQ7O0FBUUFQLFVBQVUsQ0FBQ2EsWUFBWCxHQUEwQixlQUFlQSxZQUFmLENBQTZCUCxNQUE3QixFQUFxQ0MsSUFBckMsRUFBMkM7QUFDbkUsTUFBSSxDQUFDLEtBQUtFLFlBQUwsRUFBTCxFQUEwQjtBQUN4QixVQUFNLElBQUlDLDBCQUFPQyxtQkFBWCxFQUFOO0FBQ0Q7O0FBRURKLEVBQUFBLElBQUksR0FBRyxLQUFLTyx1QkFBTCxDQUE2QlAsSUFBN0IsQ0FBUDtBQUNBLE9BQUtRLFdBQUwsR0FBbUIsS0FBS0EsV0FBTCxJ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Q0FBZ0MsMkJBQTBCbEQsYUFBYyxXQUFVZ0QsZ0JBQUVHLElBQUYsQ0FBT2pELFVBQVAsRUFBbUJrRCxJQUFuQixDQUF3QixJQUF4QixDQUE4QiwwQkFBaEgsQ0FBTjtBQUNEOztBQUNELFNBQU8sTUFBTSxLQUFLbEQsVUFBVSxDQUFDRixhQUFELENBQWYsRUFBZ0NDLElBQWhDLENBQWI7QUFDRCxDQXBGRDs7ZUFzRmV2QixVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGlvc0NvbW1hbmRzIH0gZnJvbSAnZ3N0LWF0b20taW9zLWRyaXZlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdnc3QtYXRvbS1iYXNlLWRyaXZlcic7XG5cblxubGV0IGV4dGVuc2lvbnMgPSB7fTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBpb3NDb21tYW5kcy5leGVjdXRlKTtcblxuY29uc3QgaW9zRXhlY3V0ZSA9IGV4dGVuc2lvbnMuZXhlY3V0ZTtcbmV4dGVuc2lvbnMuZXhlY3V0ZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUgKHNjcmlwdCwgYXJncykge1xuICBpZiAoIXNjcmlwdC5tYXRjaCgvXm1vYmlsZTovKSAmJiAhdGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGlvc0V4ZWN1dGUuY2FsbCh0aGlzLCBzY3JpcHQsIGFyZ3MpO1xufTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlQXN5bmMgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlQXN5bmMgKHNjcmlwdCwgYXJncykge1xuICBpZiAoIXRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxuXG4gIGFyZ3MgPSB0aGlzLmNvbnZlcnRFbGVtZW50c0ZvckF0b21zKGFyZ3MpO1xuICB0aGlzLmFzeW5jV2FpdE1zID0gdGhpcy5hc3luY1dhaXRNcyB8fCAwO1xuICBjb25zdCBwcm9taXNlID0gdGhpcy5yZW1vdGUuZXhlY3V0ZUF0b21Bc3luYygnZXhlY3V0ZV9hc3luY19zY3JpcHQnLCBbc2NyaXB0LCBhcmdzLCB0aGlzLmFzeW5jV2FpdE1zXSwgdGhpcy5jdXJXZWJGcmFtZXMpO1xuICByZXR1cm4gYXdhaXQgdGhpcy53YWl0Rm9yQXRvbShwcm9taXNlKTtcbn07XG5cbi8vIE92ZXJyaWRlcyB0aGUgJ2V4ZWN1dGVNb2JpbGUnIGZ1bmN0aW9uIGRlZmluZWQgaW4gZ3N0LWF0b20taW9zLWRyaXZlclxuZXh0ZW5zaW9ucy5leGVjdXRlTW9iaWxlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZU1vYmlsZSAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGNvbW1hbmRNYXAgPSB7XG4gICAgLy9yZWdpb24gZ2VzdHVyZXMgc3VwcG9ydFxuICAgIHRhcDogJ21vYmlsZVRhcCcsXG4gICAgc2Nyb2xsOiAnbW9iaWxlU2Nyb2xsJyxcbiAgICBzZWxlY3RQaWNrZXJXaGVlbFZhbHVlOiAnbW9iaWxlU2VsZWN0UGlja2VyV2hlZWxWYWx1ZScsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2Njgtc3dpcGVsZWZ0P2xhbmd1YWdlPW9iamNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3NC1zd2lwZXJpZ2h0P2xhbmd1YWdlPW9iamNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2Ny1zd2lwZXVwP2xhbmd1YWdlPW9iamNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2NC1zd2lwZWRvd24/bGFuZ3VhZ2U9b2JqY1xuICAgIHN3aXBlOiAnbW9iaWxlU3dpcGUnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY5LXBpbmNod2l0aHNjYWxlP2xhbmd1YWdlPW9iamNcbiAgICBwaW5jaDogJ21vYmlsZVBpbmNoJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3My1kb3VibGV0YXA/bGFuZ3VhZ2U9b2JqY1xuICAgIGRvdWJsZVRhcDogJ21vYmlsZURvdWJsZVRhcCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzUtdHdvZmluZ2VydGFwP2xhbmd1YWdlPW9iamNcbiAgICB0d29GaW5nZXJUYXA6ICdtb2JpbGVUd29GaW5nZXJUYXAnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjcxLXRhcHdpdGhudW1iZXJvZnRhcHM/bGFuZ3VhZ2U9b2JqY1xuICAgIHRhcFdpdGhOdW1iZXJPZlRhcHM6ICdtb2JpbGVUYXBXaXRoTnVtYmVyT2ZUYXBzJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2My1wcmVzc2ZvcmR1cmF0aW9uP2xhbmd1YWdlPW9iamNcbiAgICB0b3VjaEFuZEhvbGQ6ICdtb2JpbGVUb3VjaEFuZEhvbGQnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjcwLXByZXNzZm9yZHVyYXRpb24/bGFuZ3VhZ2U9b2JqY1xuICAgIGRyYWdGcm9tVG9Gb3JEdXJhdGlvbjogJ21vYmlsZURyYWdGcm9tVG9Gb3JEdXJhdGlvbicsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjUtcm90YXRlP2xhbmd1YWdlPW9iamNcbiAgICByb3RhdGVFbGVtZW50OiAnbW9iaWxlUm90YXRlRWxlbWVudCcsXG5cbiAgICAvL2VuZHJlZ2lvbiBnZXN0dXJlcyBzdXBwb3J0XG4gICAgYWxlcnQ6ICdtb2JpbGVIYW5kbGVBbGVydCcsXG5cbiAgICBzZXRQYXN0ZWJvYXJkOiAnbW9iaWxlU2V0UGFzdGVib2FyZCcsXG4gICAgZ2V0UGFzdGVib2FyZDogJ21vYmlsZUdldFBhc3RlYm9hcmQnLFxuXG4gICAgc291cmNlOiAnbW9iaWxlR2V0U291cmNlJyxcbiAgICBnZXRDb250ZXh0czogJ21vYmlsZUdldENvbnRleHRzJyxcblxuICAgIC8vcmVnaW9uIG11bHRpcGxlIGFwcHMgbWFuYWdlbWVudFxuICAgIGluc3RhbGxBcHA6ICdtb2JpbGVJbnN0YWxsQXBwJyxcbiAgICBpc0FwcEluc3RhbGxlZDogJ21vYmlsZUlzQXBwSW5zdGFsbGVkJyxcbiAgICByZW1vdmVBcHA6ICdtb2JpbGVSZW1vdmVBcHAnLFxuICAgIGxhdW5jaEFwcDogJ21vYmlsZUxhdW5jaEFwcCcsXG4gICAgdGVybWluYXRlQXBwOiAnbW9iaWxlVGVybWluYXRlQXBwJyxcbiAgICBxdWVyeUFwcFN0YXRlOiAnbW9iaWxlUXVlcnlBcHBTdGF0ZScsXG4gICAgYWN0aXZhdGVBcHA6ICdtb2JpbGVBY3RpdmF0ZUFwcCcsXG4gICAgLy9lbmRyZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG5cbiAgICB2aWV3cG9ydFNjcmVlbnNob3Q6ICdnZXRWaWV3cG9ydFNjcmVlbnNob3QnLFxuXG4gICAgc3RhcnRQZXJmUmVjb3JkOiAnbW9iaWxlU3RhcnRQZXJmUmVjb3JkJyxcbiAgICBzdG9wUGVyZlJlY29yZDogJ21vYmlsZVN0b3BQZXJmUmVjb3JkJyxcblxuICAgIGluc3RhbGxDZXJ0aWZpY2F0ZTogJ21vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZScsXG5cbiAgICBzdGFydExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdGFydExvZ3NCcm9hZGNhc3QnLFxuICAgIHN0b3BMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RvcExvZ3NCcm9hZGNhc3QnLFxuXG4gICAgYmF0dGVyeUluZm86ICdtb2JpbGVHZXRCYXR0ZXJ5SW5mbycsXG4gICAgZGV2aWNlSW5mbzogJ21vYmlsZUdldERldmljZUluZm8nLFxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcbiAgICBhY3RpdmVBcHBJbmZvOiAnbW9iaWxlR2V0QWN0aXZlQXBwSW5mbycsXG5cbiAgICBwcmVzc0J1dHRvbjogJ21vYmlsZVByZXNzQnV0dG9uJyxcblxuICAgIGVucm9sbEJpb21ldHJpYzogJ21vYmlsZUVucm9sbEJpb21ldHJpYycsXG4gICAgc2VuZEJpb21ldHJpY01hdGNoOiAnbW9iaWxlU2VuZEJpb21ldHJpY01hdGNoJyxcbiAgICBpc0Jpb21ldHJpY0Vucm9sbGVkOiAnbW9iaWxlSXNCaW9tZXRyaWNFbnJvbGxlZCcsXG5cbiAgICBjbGVhcktleWNoYWluczogJ21vYmlsZUNsZWFyS2V5Y2hhaW5zJyxcblxuICAgIGdldFBlcm1pc3Npb246ICdtb2JpbGVHZXRQZXJtaXNzaW9uJyxcbiAgICBzZXRQZXJtaXNzaW9uOiAnbW9iaWxlU2V0UGVybWlzc2lvbnMnLFxuXG4gICAgZ2V0QXBwZWFyYW5jZTogJ21vYmlsZUdldEFwcGVhcmFuY2UnLFxuICAgIHNldEFwcGVhcmFuY2U6ICdtb2JpbGVTZXRBcHBlYXJhbmNlJyxcblxuICAgIHNpcmlDb21tYW5kOiAnbW9iaWxlU2lyaUNvbW1hbmQnLFxuXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuICAgIGRlbGV0ZUZvbGRlcjogJ21vYmlsZURlbGV0ZUZvbGRlcicsXG4gIH07XG5cbiAgaWYgKCFfLmhhcyhjb21tYW5kTWFwLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCAnJHttb2JpbGVDb21tYW5kfScuIE9ubHkgJHtfLmtleXMoY29tbWFuZE1hcCkuam9pbignLCAnKX0gY29tbWFuZHMgYXJlIHN1cHBvcnRlZC5gKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpc1tjb21tYW5kTWFwW21vYmlsZUNvbW1hbmRdXShvcHRzKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=