UNPKG

ng-yunzai-mobile

Version:

1. 适配yunzai_uni_app_x

382 lines 24.1 kB
/** * @fileoverview added by tsickle * Generated from: devices/yunzai.im.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { BaseDevice } from "./base.device"; import { Inject, Injectable } from "@angular/core"; import { TokenService } from "../token/token.service"; import { HttpClient } from "@angular/common/http"; import { UserService } from "../user/user.service"; import { BASE_CLIENT } from "../client/base.client"; import { preloaderFinished } from "../auth/preloader"; import { from } from "rxjs"; import { Title } from "@angular/platform-browser"; import * as i0 from "@angular/core"; import * as i1 from "../token/token.service"; import * as i2 from "@angular/common/http"; import * as i3 from "../user/user.service"; import * as i4 from "@angular/platform-browser"; import * as i5 from "../client/base.client"; var YunzaiIm = /** @class */ (function (_super) { tslib_1.__extends(YunzaiIm, _super); function YunzaiIm(tokenService, http, user, title, baseclient) { var _this = _super.call(this) || this; _this.tokenService = tokenService; _this.http = http; _this.user = user; _this.title = title; _this.baseclient = baseclient; return _this; } /** * @return {?} */ YunzaiIm.prototype.auth = /** * @return {?} */ function () { var _this = this; if (this.baseclient.yunzaiIm && this.baseclient.yunzaiIm.auth === false) { return new Promise((/** * @param {?} resolve * @param {?} reject * @return {?} */ function (resolve, reject) { preloaderFinished(); resolve(true); })); } return new Promise((/** * @param {?} resolve * @param {?} reject * @return {?} */ function (resolve, reject) { UniJsBridge.callHandler("getToken", {}, (/** * @param {?} res * @return {?} */ function (res) { // res:就是上面的callbackFunction的参数 // 注意:如果uni-app不调用callbackFunction,那么这个回调函数是不会执行 console.log('getToken response:', JSON.stringify(res)); /** @type {?} */ var token = {}; token.tokenType = res.data.token_type; token.accessToken = res.data.access_token; token.scope = res.data.scope; token.tokenDateLine = res.data.expires_in; // 设置token _this.tokenService.set(token); // 发送/user请求 _this.http .get(_this.baseclient.gateway + "/auth/user") .subscribe((/** * @param {?} response * @return {?} */ function (response) { // 设置user _this.user.set(tslib_1.__assign({}, response.principal, { tenantId: response.tenantId })); // 加载结束 preloaderFinished(); resolve(true); })); })); })); }; /** * @param {?} iwindow * @return {?} */ YunzaiIm.prototype.openWindow = /** * @param {?} iwindow * @return {?} */ function (iwindow) { window.open(iwindow.url, '_self'); }; /** * @param {?} ititle * @return {?} */ YunzaiIm.prototype.setTitle = /** * @param {?} ititle * @return {?} */ function (ititle) { this.title.setTitle(ititle.title); }; /** * @param {?} navigationBar * @return {?} */ YunzaiIm.prototype.setNavigationBar = /** * @param {?} navigationBar * @return {?} */ function (navigationBar) { alert("Yunzai_IM暂不支持放置按钮!"); }; /** * @param {?} ishare * @return {?} */ YunzaiIm.prototype.share = /** * @param {?} ishare * @return {?} */ function (ishare) { alert("Yunzai_IM暂不支持分享!"); }; /** * @return {?} */ YunzaiIm.prototype.getToken = /** * @return {?} */ function () { return this.tokenService.get(); }; /** * @return {?} */ YunzaiIm.prototype.scanCode = /** * @return {?} */ function () { /** @type {?} */ var p = new Promise((/** * @param {?} resolve * @return {?} */ function (resolve) { UniJsBridge.callHandler("clickScan", {}, (/** * @param {?} res * @return {?} */ function (res) { console.log('clickScan response:', JSON.stringify(res)); var result = res.data.result; resolve(result); })); })); return from(p); }; /** * @return {?} */ YunzaiIm.prototype.userLocation = /** * @return {?} */ function () { /** @type {?} */ var p = new Promise((/** * @param {?} resolve * @return {?} */ function (resolve) { // type参数支持 wgs84和 gcj02 UniJsBridge.callHandler("userLocation", { type: 'wgs84', }, (/** * @param {?} res * @return {?} */ function (res) { console.log('userLocation response:', JSON.stringify(res)); var _a = res.data, latitude = _a.latitude, longitude = _a.longitude; /** @type {?} */ var address = '暂无address'; resolve({ latitude: latitude, longitude: longitude, address: address }); })); })); return from(p); }; /** * @param {?} bssids * @return {?} */ YunzaiIm.prototype.validateInWifi = /** * @param {?} bssids * @return {?} */ function (bssids) { alert("Yunzai_IM暂不支持WIFI验证!"); return undefined; }; /** * @return {?} */ YunzaiIm.prototype.getWifiMac = /** * @return {?} */ function () { alert("Yunzai_IM暂不支持获取MAC地址!"); return undefined; }; /** * @param {?} count * @return {?} */ YunzaiIm.prototype.chooseContacts = /** * @param {?} count * @return {?} */ function (count) { alert("Yunzai_IM暂不支持获取联系人!"); return undefined; }; /** * @param {?} targetUserId * @return {?} */ YunzaiIm.prototype.contactDetails = /** * @param {?} targetUserId * @return {?} */ function (targetUserId) { alert("Yunzai_IM暂不支持查询联系人详细信息!"); return undefined; }; /** * @param {?} count * @param {?} sourceType * @return {?} */ YunzaiIm.prototype.uploadImage = /** * @param {?} count * @param {?} sourceType * @return {?} */ function (count, sourceType) { alert("Yunzai_IM暂不支持图片上传!"); return undefined; }; /** * @param {?} url * @param {?} openType * @param {?} title * @param {?} id * @param {?} type * @return {?} */ YunzaiIm.prototype.openReadWithTimer = /** * @param {?} url * @param {?} openType * @param {?} title * @param {?} id * @param {?} type * @return {?} */ function (url, openType, title, id, type) { alert("Yunzai_IM暂不支持读物时间统计!"); return undefined; }; /** * @param {?} limitMinute * @return {?} */ YunzaiIm.prototype.uploadMovie = /** * @param {?} limitMinute * @return {?} */ function (limitMinute) { alert("Yunzai_IM暂不支持视频上传!"); return undefined; }; /** * @param {?} url * @param {?} title * @return {?} */ YunzaiIm.prototype.fileBrowser = /** * @param {?} url * @param {?} title * @return {?} */ function (url, title) { alert("Yunzai_IM暂不支持此功能!"); return undefined; }; /** * @param {?} ticket * @param {?} callback * @return {?} */ YunzaiIm.prototype.startSearchBeacons = /** * @param {?} ticket * @param {?} callback * @return {?} */ function (ticket, callback) { throw new Error("Method not implemented."); }; /** * @param {?} callback * @return {?} */ YunzaiIm.prototype.stopSearchBeacons = /** * @param {?} callback * @return {?} */ function (callback) { throw new Error("Method not implemented."); }; /** * @param {?} callback * @return {?} */ YunzaiIm.prototype.onSearchBeacons = /** * @param {?} callback * @return {?} */ function (callback) { throw new Error("Method not implemented."); }; YunzaiIm.decorators = [ { type: Injectable, args: [{ providedIn: "root", },] } ]; /** @nocollapse */ YunzaiIm.ctorParameters = function () { return [ { type: TokenService }, { type: HttpClient }, { type: UserService }, { type: Title }, { type: undefined, decorators: [{ type: Inject, args: [BASE_CLIENT,] }] } ]; }; /** @nocollapse */ YunzaiIm.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function YunzaiIm_Factory() { return new YunzaiIm(i0.ɵɵinject(i1.TokenService), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.UserService), i0.ɵɵinject(i4.Title), i0.ɵɵinject(i5.BASE_CLIENT)); }, token: YunzaiIm, providedIn: "root" }); return YunzaiIm; }(BaseDevice)); export { YunzaiIm }; if (false) { /** * @type {?} * @private */ YunzaiIm.prototype.tokenService; /** * @type {?} * @private */ YunzaiIm.prototype.http; /** * @type {?} * @private */ YunzaiIm.prototype.user; /** * @type {?} * @private */ YunzaiIm.prototype.title; /** * @type {?} * @private */ YunzaiIm.prototype.baseclient; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLmltLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmcteXVuemFpLW1vYmlsZS8iLCJzb3VyY2VzIjpbImRldmljZXMveXVuemFpLmltLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFDLFdBQVcsRUFBYSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBQyxJQUFJLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBSWhEO0lBRzhCLG9DQUFVO0lBQ3RDLGtCQUNVLFlBQTBCLEVBQzFCLElBQWdCLEVBQ2hCLElBQWlCLEVBQ2pCLEtBQVksRUFDUyxVQUFzQjtRQUxyRCxZQU9FLGlCQUFPLFNBQ1I7UUFQUyxrQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixVQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFVBQUksR0FBSixJQUFJLENBQWE7UUFDakIsV0FBSyxHQUFMLEtBQUssQ0FBTztRQUNTLGdCQUFVLEdBQVYsVUFBVSxDQUFZOztJQUdyRCxDQUFDOzs7O0lBRUQsdUJBQUk7OztJQUFKO1FBQUEsaUJBK0JDO1FBOUJDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLEtBQUss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Q3hCLHdCQUF5Qjs7Ozs7SUFDekIseUJBQW9COzs7OztJQUNwQiw4QkFBbUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Jhc2VEZXZpY2V9IGZyb20gXCIuL2Jhc2UuZGV2aWNlXCI7XHJcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1Rva2VuU2VydmljZX0gZnJvbSBcIi4uL3Rva2VuL3Rva2VuLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtVc2VyU2VydmljZX0gZnJvbSBcIi4uL3VzZXIvdXNlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QkFTRV9DTElFTlQsIEJhc2VDbGllbnR9IGZyb20gXCIuLi9jbGllbnQvYmFzZS5jbGllbnRcIjtcclxuaW1wb3J0IHtwcmVsb2FkZXJGaW5pc2hlZH0gZnJvbSBcIi4uL2F1dGgvcHJlbG9hZGVyXCI7XHJcbmltcG9ydCB7SXRva2VufSBmcm9tIFwiLi4vYXV0aC9pdG9rZW5cIjtcclxuaW1wb3J0IHtmcm9tLCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0lTaGFyZSwgSVRpdGxlLCBJV2luZG93LCBOYXZpZ2F0aW9uQmFyLCBVc2VyTG9jYXRpb259IGZyb20gXCIuL21vZGVsXCI7XHJcbmltcG9ydCB7VGl0bGV9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcblxyXG5kZWNsYXJlIHZhciBVbmlKc0JyaWRnZTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFl1bnphaUltIGV4dGVuZHMgQmFzZURldmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogVG9rZW5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSB1c2VyOiBVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgdGl0bGU6IFRpdGxlLFxyXG4gICAgQEluamVjdChCQVNFX0NMSUVOVCkgcHJpdmF0ZSBiYXNlY2xpZW50OiBCYXNlQ2xpZW50XHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgYXV0aCgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKHRoaXMuYmFzZWNsaWVudC55dW56YWlJbSAmJiB0aGlzLmJhc2VjbGllbnQueXVuemFpSW0uYXV0aCA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgIHByZWxvYWRlckZpbmlzaGVkKCk7XHJcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIFVuaUpzQnJpZGdlLmNhbGxIYW5kbGVyKFwiZ2V0VG9rZW5cIiwge30sIHJlcyA9PiB7XHJcbiAgICAgICAgLy8gcmVzOuWwseaYr+S4iumdoueahGNhbGxiYWNrRnVuY3Rpb27nmoTlj4LmlbBcclxuICAgICAgICAvLyDms6jmhI/vvJrlpoLmnpx1bmktYXBw5LiN6LCD55SoY2FsbGJhY2tGdW5jdGlvbizpgqPkuYjov5nkuKrlm57osIPlh73mlbDmmK/kuI3kvJrmiafooYxcclxuICAgICAgICBjb25zb2xlLmxvZygnZ2V0VG9rZW4gcmVzcG9uc2U6JywgSlNPTi5zdHJpbmdpZnkocmVzKSk7XHJcbiAgICAgICAgY29uc3QgdG9rZW46IGFueSA9IHt9O1xyXG4gICAgICAgIHRva2VuLnRva2VuVHlwZSA9IHJlcy5kYXRhLnRva2VuX3R5cGU7XHJcbiAgICAgICAgdG9rZW4uYWNjZXNzVG9rZW4gPSByZXMuZGF0YS5hY2Nlc3NfdG9rZW47XHJcbiAgICAgICAgdG9rZW4uc2NvcGUgPSByZXMuZGF0YS5zY29wZTtcclxuICAgICAgICB0b2tlbi50b2tlbkRhdGVMaW5lID0gcmVzLmRhdGEuZXhwaXJlc19pbjtcclxuICAgICAgICAvLyDorr7nva50b2tlblxyXG4gICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldCh0b2tlbik7XHJcbiAgICAgICAgLy8g5Y+R6YCBL3VzZXLor7fmsYJcclxuICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgIC5nZXQoYCR7dGhpcy5iYXNlY2xpZW50LmdhdGV3YXl9L2F1dGgvdXNlcmApXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOiuvue9rnVzZXJcclxuICAgICAgICAgICAgdGhpcy51c2VyLnNldCh7IC4uLnJlc3BvbnNlLnByaW5jaXBhbCwgdGVuYW50SWQ6IHJlc3BvbnNlLnRlbmFudElkIH0pO1xyXG4gICAgICAgICAgICAvLyDliqDovb3nu5PmnZ9cclxuICAgICAgICAgICAgcHJlbG9hZGVyRmluaXNoZWQoKTtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlbldpbmRvdyhpd2luZG93OiBJV2luZG93KTogdm9pZCB7XHJcbiAgICB3aW5kb3cub3Blbihpd2luZG93LnVybCwgJ19zZWxmJyk7XHJcbiAgfVxyXG5cclxuICBzZXRUaXRsZShpdGl0bGU6IElUaXRsZSk6IHZvaWQge1xyXG4gICAgdGhpcy50aXRsZS5zZXRUaXRsZShpdGl0bGUudGl0bGUpO1xyXG4gIH1cclxuXHJcbiAgc2V0TmF2aWdhdGlvbkJhcihuYXZpZ2F0aW9uQmFyOiBOYXZpZ2F0aW9uQmFyKTogdm9pZCB7XHJcbiAgICBhbGVydChcIll1bnphaV9JTeaaguS4jeaUr+aMgeaUvue9ruaMiemSriFcIik7XHJcbiAgfVxyXG5cclxuICBzaGFyZShpc2hhcmU6IElTaGFyZSk6IHZvaWQge1xyXG4gICAgYWxlcnQoXCJZdW56YWlfSU3mmoLkuI3mlK/mjIHliIbkuqshXCIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9rZW4oKTogSXRva2VuIHtcclxuICAgIHJldHVybiB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcclxuICB9XHJcblxyXG4gIHNjYW5Db2RlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBwID0gbmV3IFByb21pc2U8c3RyaW5nPihyZXNvbHZlID0+IHtcclxuICAgICAgVW5pSnNCcmlkZ2UuY2FsbEhhbmRsZXIoXCJjbGlja1NjYW5cIiwge30sIHJlcyA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2NsaWNrU2NhbiByZXNwb25zZTonLCBKU09OLnN0cmluZ2lmeShyZXMpKTtcclxuICAgICAgICBjb25zdCB7cmVzdWx0fSA9IHJlcy5kYXRhO1xyXG4gICAgICAgIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZyb20ocCk7XHJcbiAgfVxyXG5cclxuICB1c2VyTG9jYXRpb24oKTogT2JzZXJ2YWJsZTxVc2VyTG9jYXRpb24+IHtcclxuICAgIGNvbnN0IHAgPSBuZXcgUHJvbWlzZTxVc2VyTG9jYXRpb24+KHJlc29sdmUgPT4ge1xyXG4gICAgICAvLyB0eXBl5Y+C5pWw5pSv5oyBIHdnczg05ZKMIGdjajAyXHJcbiAgICAgIFVuaUpzQnJpZGdlLmNhbGxIYW5kbGVyKFwidXNlckxvY2F0aW9uXCIsIHt0eXBlOiAnd2dzODQnLH0sIHJlcyA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3VzZXJMb2NhdGlvbiByZXNwb25zZTonLCBKU09OLnN0cmluZ2lmeShyZXMpKTtcclxuICAgICAgICBjb25zdCB7bGF0aXR1ZGUsIGxvbmdpdHVkZX0gPSByZXMuZGF0YTtcclxuICAgICAgICBjb25zdCBhZGRyZXNzID0gJ+aaguaXoGFkZHJlc3MnO1xyXG4gICAgICAgIHJlc29sdmUoe2xhdGl0dWRlLCBsb25naXR1ZGUsIGFkZHJlc3N9KTtcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZyb20ocCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUluV2lmaShic3NpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICBhbGVydChcIll1bnphaV9JTeaaguS4jeaUr+aMgVdJRknpqozor4EhXCIpO1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGdldFdpZmlNYWMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB6I635Y+WTUFD5Zyw5Z2AIVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBjaG9vc2VDb250YWN0cyhjb3VudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB6I635Y+W6IGU57O75Lq6IVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBjb250YWN0RGV0YWlscyh0YXJnZXRVc2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBhbGVydChcIll1bnphaV9JTeaaguS4jeaUr+aMgeafpeivouiBlOezu+S6uuivpue7huS/oeaBryFcIik7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkSW1hZ2UoY291bnQ6IG51bWJlciwgc291cmNlVHlwZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB5Zu+54mH5LiK5LygIVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBvcGVuUmVhZFdpdGhUaW1lcihcclxuICAgIHVybDogYW55LFxyXG4gICAgb3BlblR5cGU6IGFueSxcclxuICAgIHRpdGxlOiBhbnksXHJcbiAgICBpZDogYW55LFxyXG4gICAgdHlwZTogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB6K+754mp5pe26Ze057uf6K6hIVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRNb3ZpZShsaW1pdE1pbnV0ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB6KeG6aKR5LiK5LygIVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBmaWxlQnJvd3Nlcih1cmw6IHN0cmluZywgdGl0bGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBhbGVydChcIll1bnphaV9JTeaaguS4jeaUr+aMgeatpOWKn+iDvSFcIik7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRTZWFyY2hCZWFjb25zKHRpY2tldDogc3RyaW5nLCBjYWxsYmFjazogKGFyZ3Y6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XHJcbiAgfVxyXG5cclxuICBzdG9wU2VhcmNoQmVhY29ucyhjYWxsYmFjazogKGFyZ3Y6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaEJlYWNvbnMoY2FsbGJhY2s6IChhcmd2OiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xyXG4gIH1cclxufVxyXG4iXX0=