UNPKG

ng-yunzai-mobile

Version:

1. 修改wechat.micro.ts

305 lines 21.6 kB
/** * @fileoverview added by tsickle * Generated from: devices/yunzai.im.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ 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"; export class YunzaiIm extends BaseDevice { /** * @param {?} tokenService * @param {?} http * @param {?} user * @param {?} title * @param {?} baseclient */ constructor(tokenService, http, user, title, baseclient) { super(); this.tokenService = tokenService; this.http = http; this.user = user; this.title = title; this.baseclient = baseclient; } /** * @return {?} */ auth() { if (this.baseclient.yunzaiIm && this.baseclient.yunzaiIm.auth === false) { return new Promise((/** * @param {?} resolve * @param {?} reject * @return {?} */ (resolve, reject) => { preloaderFinished(); resolve(true); })); } return new Promise((/** * @param {?} resolve * @param {?} reject * @return {?} */ (resolve, reject) => { UniJsBridge.callHandler("getToken", {}, (/** * @param {?} res * @return {?} */ res => { // res:就是上面的callbackFunction的参数 // 注意:如果uni-app不调用callbackFunction,那么这个回调函数是不会执行 console.log('getToken response:', JSON.stringify(res)); /** @type {?} */ const 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 {?} */ (response) => { // 设置user this.user.set(response.principal); // 加载结束 preloaderFinished(); resolve(true); })); })); })); } /** * @param {?} iwindow * @return {?} */ openWindow(iwindow) { window.open(iwindow.url, '_self'); } /** * @param {?} ititle * @return {?} */ setTitle(ititle) { this.title.setTitle(ititle.title); } /** * @param {?} navigationBar * @return {?} */ setNavigationBar(navigationBar) { alert("Yunzai_IM暂不支持放置按钮!"); } /** * @param {?} ishare * @return {?} */ share(ishare) { alert("Yunzai_IM暂不支持分享!"); } /** * @return {?} */ getToken() { return this.tokenService.get(); } /** * @return {?} */ scanCode() { /** @type {?} */ const p = new Promise((/** * @param {?} resolve * @return {?} */ resolve => { UniJsBridge.callHandler("clickScan", {}, (/** * @param {?} res * @return {?} */ res => { console.log('clickScan response:', JSON.stringify(res)); const { result } = res.data; resolve(result); })); })); return from(p); } /** * @return {?} */ userLocation() { /** @type {?} */ const p = new Promise((/** * @param {?} resolve * @return {?} */ resolve => { // type参数支持 wgs84和 gcj02 UniJsBridge.callHandler("userLocation", { type: 'wgs84', }, (/** * @param {?} res * @return {?} */ res => { console.log('userLocation response:', JSON.stringify(res)); const { latitude, longitude } = res.data; /** @type {?} */ const address = '暂无address'; resolve({ latitude, longitude, address }); })); })); return from(p); } /** * @param {?} bssids * @return {?} */ validateInWifi(bssids) { alert("Yunzai_IM暂不支持WIFI验证!"); return undefined; } /** * @return {?} */ getWifiMac() { alert("Yunzai_IM暂不支持获取MAC地址!"); return undefined; } /** * @param {?} count * @return {?} */ chooseContacts(count) { alert("Yunzai_IM暂不支持获取联系人!"); return undefined; } /** * @param {?} targetUserId * @return {?} */ contactDetails(targetUserId) { alert("Yunzai_IM暂不支持查询联系人详细信息!"); return undefined; } /** * @param {?} count * @param {?} sourceType * @return {?} */ uploadImage(count, sourceType) { alert("Yunzai_IM暂不支持图片上传!"); return undefined; } /** * @param {?} url * @param {?} openType * @param {?} title * @param {?} id * @param {?} type * @return {?} */ openReadWithTimer(url, openType, title, id, type) { alert("Yunzai_IM暂不支持读物时间统计!"); return undefined; } /** * @param {?} limitMinute * @return {?} */ uploadMovie(limitMinute) { alert("Yunzai_IM暂不支持视频上传!"); return undefined; } /** * @param {?} url * @param {?} title * @return {?} */ fileBrowser(url, title) { alert("Yunzai_IM暂不支持此功能!"); return undefined; } /** * @param {?} ticket * @param {?} callback * @return {?} */ startSearchBeacons(ticket, callback) { throw new Error("Method not implemented."); } /** * @param {?} callback * @return {?} */ stopSearchBeacons(callback) { throw new Error("Method not implemented."); } /** * @param {?} callback * @return {?} */ onSearchBeacons(callback) { throw new Error("Method not implemented."); } } YunzaiIm.decorators = [ { type: Injectable, args: [{ providedIn: "root", },] } ]; /** @nocollapse */ YunzaiIm.ctorParameters = () => [ { 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" }); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLmltLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmcteXVuemFpLW1vYmlsZS8iLCJzb3VyY2VzIjpbImRldmljZXMveXVuemFpLmltLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsV0FBVyxFQUFhLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFDLElBQUksRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFPaEQsTUFBTSxPQUFPLFFBQVMsU0FBUSxVQUFVOzs7Ozs7OztJQUN0QyxZQUNVLFlBQTBCLEVBQzFCLElBQWdCLEVBQ2hCLElBQWlCLEVBQ2pCLEtBQVksRUFDUyxVQUFzQjtRQUVuRCxLQUFLLEVBQUUsQ0FBQztRQU5BLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1MsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUdyRCxDQUFDOzs7O0lBRUQsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtZ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SUFFRCxpQkFBaUIsQ0FDZixHQUFRLEVBQ1IsUUFBYSxFQUNiLEtBQVUsRUFDVixFQUFPLEVBQ1AsSUFBUztRQUVULEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLFdBQW1CO1FBQzdCLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Ozs7OztJQUVELFdBQVcsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUNwQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzs7Ozs7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjLEVBQUUsUUFBNkI7UUFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Ozs7O0lBRUQsaUJBQWlCLENBQUMsUUFBNkI7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Ozs7O0lBRUQsZUFBZSxDQUFDLFFBQTZCO1FBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDOzs7WUFuSkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBZE8sWUFBWTtZQUNaLFVBQVU7WUFDVixXQUFXO1lBTVgsS0FBSzs0Q0FhUixNQUFNLFNBQUMsV0FBVzs7Ozs7Ozs7SUFKbkIsZ0NBQWtDOzs7OztJQUNsQyx3QkFBd0I7Ozs7O0lBQ3hCLHdCQUF5Qjs7Ozs7SUFDekIseUJBQW9COzs7OztJQUNwQiw4QkFBbUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Jhc2VEZXZpY2V9IGZyb20gXCIuL2Jhc2UuZGV2aWNlXCI7XHJcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1Rva2VuU2VydmljZX0gZnJvbSBcIi4uL3Rva2VuL3Rva2VuLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtVc2VyU2VydmljZX0gZnJvbSBcIi4uL3VzZXIvdXNlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QkFTRV9DTElFTlQsIEJhc2VDbGllbnR9IGZyb20gXCIuLi9jbGllbnQvYmFzZS5jbGllbnRcIjtcclxuaW1wb3J0IHtwcmVsb2FkZXJGaW5pc2hlZH0gZnJvbSBcIi4uL2F1dGgvcHJlbG9hZGVyXCI7XHJcbmltcG9ydCB7SXRva2VufSBmcm9tIFwiLi4vYXV0aC9pdG9rZW5cIjtcclxuaW1wb3J0IHtmcm9tLCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0lTaGFyZSwgSVRpdGxlLCBJV2luZG93LCBOYXZpZ2F0aW9uQmFyLCBVc2VyTG9jYXRpb259IGZyb20gXCIuL21vZGVsXCI7XHJcbmltcG9ydCB7VGl0bGV9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcblxyXG5kZWNsYXJlIHZhciBVbmlKc0JyaWRnZTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFl1bnphaUltIGV4dGVuZHMgQmFzZURldmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogVG9rZW5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSB1c2VyOiBVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgdGl0bGU6IFRpdGxlLFxyXG4gICAgQEluamVjdChCQVNFX0NMSUVOVCkgcHJpdmF0ZSBiYXNlY2xpZW50OiBCYXNlQ2xpZW50XHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgYXV0aCgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKHRoaXMuYmFzZWNsaWVudC55dW56YWlJbSAmJiB0aGlzLmJhc2VjbGllbnQueXVuemFpSW0uYXV0aCA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgIHByZWxvYWRlckZpbmlzaGVkKCk7XHJcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIFVuaUpzQnJpZGdlLmNhbGxIYW5kbGVyKFwiZ2V0VG9rZW5cIiwge30sIHJlcyA9PiB7XHJcbiAgICAgICAgLy8gcmVzOuWwseaYr+S4iumdoueahGNhbGxiYWNrRnVuY3Rpb27nmoTlj4LmlbBcclxuICAgICAgICAvLyDms6jmhI/vvJrlpoLmnpx1bmktYXBw5LiN6LCD55SoY2FsbGJhY2tGdW5jdGlvbizpgqPkuYjov5nkuKrlm57osIPlh73mlbDmmK/kuI3kvJrmiafooYxcclxuICAgICAgICBjb25zb2xlLmxvZygnZ2V0VG9rZW4gcmVzcG9uc2U6JywgSlNPTi5zdHJpbmdpZnkocmVzKSk7XHJcbiAgICAgICAgY29uc3QgdG9rZW46IGFueSA9IHt9O1xyXG4gICAgICAgIHRva2VuLnRva2VuVHlwZSA9IHJlcy5kYXRhLnRva2VuX3R5cGU7XHJcbiAgICAgICAgdG9rZW4uYWNjZXNzVG9rZW4gPSByZXMuZGF0YS5hY2Nlc3NfdG9rZW47XHJcbiAgICAgICAgdG9rZW4uc2NvcGUgPSByZXMuZGF0YS5zY29wZTtcclxuICAgICAgICB0b2tlbi50b2tlbkRhdGVMaW5lID0gcmVzLmRhdGEuZXhwaXJlc19pbjtcclxuICAgICAgICAvLyDorr7nva50b2tlblxyXG4gICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldCh0b2tlbik7XHJcbiAgICAgICAgLy8g5Y+R6YCBL3VzZXLor7fmsYJcclxuICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgIC5nZXQoYCR7dGhpcy5iYXNlY2xpZW50LmdhdGV3YXl9L2F1dGgvdXNlcmApXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOiuvue9rnVzZXJcclxuICAgICAgICAgICAgdGhpcy51c2VyLnNldChyZXNwb25zZS5wcmluY2lwYWwpO1xyXG4gICAgICAgICAgICAvLyDliqDovb3nu5PmnZ9cclxuICAgICAgICAgICAgcHJlbG9hZGVyRmluaXNoZWQoKTtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlbldpbmRvdyhpd2luZG93OiBJV2luZG93KTogdm9pZCB7XHJcbiAgICB3aW5kb3cub3Blbihpd2luZG93LnVybCwgJ19zZWxmJyk7XHJcbiAgfVxyXG5cclxuICBzZXRUaXRsZShpdGl0bGU6IElUaXRsZSk6IHZvaWQge1xyXG4gICAgdGhpcy50aXRsZS5zZXRUaXRsZShpdGl0bGUudGl0bGUpO1xyXG4gIH1cclxuXHJcbiAgc2V0TmF2aWdhdGlvbkJhcihuYXZpZ2F0aW9uQmFyOiBOYXZpZ2F0aW9uQmFyKTogdm9pZCB7XHJcbiAgICBhbGVydChcIll1bnphaV9JTeaaguS4jeaUr+aMgeaUvue9ruaMiemSriFcIik7XHJcbiAgfVxyXG5cclxuICBzaGFyZShpc2hhcmU6IElTaGFyZSk6IHZvaWQge1xyXG4gICAgYWxlcnQoXCJZdW56YWlfSU3mmoLkuI3mlK/mjIHliIbkuqshXCIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9rZW4oKTogSXRva2VuIHtcclxuICAgIHJldHVybiB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcclxuICB9XHJcblxyXG4gIHNjYW5Db2RlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBwID0gbmV3IFByb21pc2U8c3RyaW5nPihyZXNvbHZlID0+IHtcclxuICAgICAgVW5pSnNCcmlkZ2UuY2FsbEhhbmRsZXIoXCJjbGlja1NjYW5cIiwge30sIHJlcyA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2NsaWNrU2NhbiByZXNwb25zZTonLCBKU09OLnN0cmluZ2lmeShyZXMpKTtcclxuICAgICAgICBjb25zdCB7cmVzdWx0fSA9IHJlcy5kYXRhO1xyXG4gICAgICAgIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZyb20ocCk7XHJcbiAgfVxyXG5cclxuICB1c2VyTG9jYXRpb24oKTogT2JzZXJ2YWJsZTxVc2VyTG9jYXRpb24+IHtcclxuICAgIGNvbnN0IHAgPSBuZXcgUHJvbWlzZTxVc2VyTG9jYXRpb24+KHJlc29sdmUgPT4ge1xyXG4gICAgICAvLyB0eXBl5Y+C5pWw5pSv5oyBIHdnczg05ZKMIGdjajAyXHJcbiAgICAgIFVuaUpzQnJpZGdlLmNhbGxIYW5kbGVyKFwidXNlckxvY2F0aW9uXCIsIHt0eXBlOiAnd2dzODQnLH0sIHJlcyA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3VzZXJMb2NhdGlvbiByZXNwb25zZTonLCBKU09OLnN0cmluZ2lmeShyZXMpKTtcclxuICAgICAgICBjb25zdCB7bGF0aXR1ZGUsIGxvbmdpdHVkZX0gPSByZXMuZGF0YTtcclxuICAgICAgICBjb25zdCBhZGRyZXNzID0gJ+aaguaXoGFkZHJlc3MnO1xyXG4gICAgICAgIHJlc29sdmUoe2xhdGl0dWRlLCBsb25naXR1ZGUsIGFkZHJlc3N9KTtcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZyb20ocCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUluV2lmaShic3NpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICBhbGVydChcIll1bnphaV9JTeaaguS4jeaUr+aMgVdJRknpqozor4EhXCIpO1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGdldFdpZmlNYWMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB6I635Y+WTUFD5Zyw5Z2AIVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBjaG9vc2VDb250YWN0cyhjb3VudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB6I635Y+W6IGU57O75Lq6IVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBjb250YWN0RGV0YWlscyh0YXJnZXRVc2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBhbGVydChcIll1bnphaV9JTeaaguS4jeaUr+aMgeafpeivouiBlOezu+S6uuivpue7huS/oeaBryFcIik7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkSW1hZ2UoY291bnQ6IG51bWJlciwgc291cmNlVHlwZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB5Zu+54mH5LiK5LygIVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBvcGVuUmVhZFdpdGhUaW1lcihcclxuICAgIHVybDogYW55LFxyXG4gICAgb3BlblR5cGU6IGFueSxcclxuICAgIHRpdGxlOiBhbnksXHJcbiAgICBpZDogYW55LFxyXG4gICAgdHlwZTogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB6K+754mp5pe26Ze057uf6K6hIVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRNb3ZpZShsaW1pdE1pbnV0ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGFsZXJ0KFwiWXVuemFpX0lN5pqC5LiN5pSv5oyB6KeG6aKR5LiK5LygIVwiKTtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBmaWxlQnJvd3Nlcih1cmw6IHN0cmluZywgdGl0bGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBhbGVydChcIll1bnphaV9JTeaaguS4jeaUr+aMgeatpOWKn+iDvSFcIik7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRTZWFyY2hCZWFjb25zKHRpY2tldDogc3RyaW5nLCBjYWxsYmFjazogKGFyZ3Y6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XHJcbiAgfVxyXG5cclxuICBzdG9wU2VhcmNoQmVhY29ucyhjYWxsYmFjazogKGFyZ3Y6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaEJlYWNvbnMoY2FsbGJhY2s6IChhcmd2OiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xyXG4gIH1cclxufVxyXG4iXX0=