@bitgo/sdk-coin-bcha 2.5.7 → 2.6.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/sdk-coin-bcha",
3
- "version": "2.5.7",
3
+ "version": "2.6.0",
4
4
  "description": "BitGo SDK coin library for Bitcoin abc",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -11,9 +11,7 @@
11
11
  "clean": "rm -r ./dist",
12
12
  "lint": "eslint --quiet .",
13
13
  "prepare": "npm run build",
14
- "test": "npm run coverage",
15
- "coverage": "nyc -- npm run unit-test",
16
- "unit-test": "mocha"
14
+ "unit-test": "echo 'test in abstract-utxo'"
17
15
  },
18
16
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
19
17
  "license": "MIT",
@@ -40,16 +38,10 @@
40
38
  ]
41
39
  },
42
40
  "dependencies": {
43
- "@bitgo/abstract-utxo": "^10.0.1",
44
- "@bitgo/sdk-coin-bch": "^2.4.7",
45
- "@bitgo/sdk-core": "^36.15.0",
46
- "@bitgo/utxo-lib": "^11.13.0"
41
+ "@bitgo/abstract-utxo": "^10.1.0",
42
+ "@bitgo/sdk-core": "^36.16.0"
47
43
  },
48
- "devDependencies": {
49
- "@bitgo/sdk-api": "^1.70.4",
50
- "@bitgo/sdk-test": "^9.1.7"
51
- },
52
- "gitHead": "3960d34c7573ef1113b84887fd3b0e6c5aa690e1",
44
+ "gitHead": "bc1a75f3c1c7400da8cdc18a4d31f984f7881ad4",
53
45
  "files": [
54
46
  "dist"
55
47
  ]
@@ -1,9 +0,0 @@
1
- import { BitGoBase, BaseCoin } from '@bitgo/sdk-core';
2
- import { Bch } from '@bitgo/sdk-coin-bch';
3
- import { UtxoNetwork } from '@bitgo/abstract-utxo';
4
- export declare class Bcha extends Bch {
5
- constructor(bitgo: BitGoBase, network?: UtxoNetwork);
6
- static createInstance(bitgo: BitGoBase): BaseCoin;
7
- canonicalAddress(address: string, version?: unknown): string;
8
- }
9
- //# sourceMappingURL=bcha.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bcha.d.ts","sourceRoot":"","sources":["../../src/bcha.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,qBAAa,IAAK,SAAQ,GAAG;gBACf,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW;IAInD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAkB,GAAG,MAAM;CAYvE"}
package/dist/src/bcha.js DELETED
@@ -1,58 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Bcha = void 0;
37
- const sdk_coin_bch_1 = require("@bitgo/sdk-coin-bch");
38
- const utxolib = __importStar(require("@bitgo/utxo-lib"));
39
- class Bcha extends sdk_coin_bch_1.Bch {
40
- constructor(bitgo, network) {
41
- super(bitgo, network || utxolib.networks.ecash);
42
- }
43
- static createInstance(bitgo) {
44
- return new Bcha(bitgo);
45
- }
46
- canonicalAddress(address, version = 'base58') {
47
- if (version === 'base58') {
48
- return utxolib.addressFormat.toCanonicalFormat(address, this.network);
49
- }
50
- if (version === 'cashaddr') {
51
- const script = utxolib.addressFormat.toOutputScriptTryFormats(address, this.network);
52
- return utxolib.addressFormat.fromOutputScriptWithFormat(script, version, this.network);
53
- }
54
- throw new Error(`invalid version ${version}`);
55
- }
56
- }
57
- exports.Bcha = Bcha;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmNoYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iY2hhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHNEQUEwQztBQUMxQyx5REFBMkM7QUFHM0MsTUFBYSxJQUFLLFNBQVEsa0JBQUc7SUFDM0IsWUFBWSxLQUFnQixFQUFFLE9BQXFCO1FBQ2pELEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZSxFQUFFLFVBQW1CLFFBQVE7UUFDM0QsSUFBSSxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekIsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRixPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBckJELG9CQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSwgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmNoIH0gZnJvbSAnQGJpdGdvL3Nkay1jb2luLWJjaCc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBVdHhvTmV0d29yayB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC11dHhvJztcblxuZXhwb3J0IGNsYXNzIEJjaGEgZXh0ZW5kcyBCY2gge1xuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBuZXR3b3JrPzogVXR4b05ldHdvcmspIHtcbiAgICBzdXBlcihiaXRnbywgbmV0d29yayB8fCB1dHhvbGliLm5ldHdvcmtzLmVjYXNoKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlKTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgQmNoYShiaXRnbyk7XG4gIH1cblxuICBjYW5vbmljYWxBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgdmVyc2lvbjogdW5rbm93biA9ICdiYXNlNTgnKTogc3RyaW5nIHtcbiAgICBpZiAodmVyc2lvbiA9PT0gJ2Jhc2U1OCcpIHtcbiAgICAgIHJldHVybiB1dHhvbGliLmFkZHJlc3NGb3JtYXQudG9DYW5vbmljYWxGb3JtYXQoYWRkcmVzcywgdGhpcy5uZXR3b3JrKTtcbiAgICB9XG5cbiAgICBpZiAodmVyc2lvbiA9PT0gJ2Nhc2hhZGRyJykge1xuICAgICAgY29uc3Qgc2NyaXB0ID0gdXR4b2xpYi5hZGRyZXNzRm9ybWF0LnRvT3V0cHV0U2NyaXB0VHJ5Rm9ybWF0cyhhZGRyZXNzLCB0aGlzLm5ldHdvcmspO1xuICAgICAgcmV0dXJuIHV0eG9saWIuYWRkcmVzc0Zvcm1hdC5mcm9tT3V0cHV0U2NyaXB0V2l0aEZvcm1hdChzY3JpcHQsIHZlcnNpb24sIHRoaXMubmV0d29yayk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHZlcnNpb24gJHt2ZXJzaW9ufWApO1xuICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- import { BitGoBase } from '@bitgo/sdk-core';
2
- export declare const register: (sdk: BitGoBase) => void;
3
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAGzC,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.register = void 0;
4
- const bcha_1 = require("./bcha");
5
- const tbcha_1 = require("./tbcha");
6
- const register = (sdk) => {
7
- sdk.register('bcha', bcha_1.Bcha.createInstance);
8
- sdk.register('tbcha', tbcha_1.Tbcha.createInstance);
9
- };
10
- exports.register = register;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQThCO0FBQzlCLG1DQUFnQztBQUV6QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxRQUFRLFlBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJjaGEgfSBmcm9tICcuL2JjaGEnO1xuaW1wb3J0IHsgVGJjaGEgfSBmcm9tICcuL3RiY2hhJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKHNkazogQml0R29CYXNlKTogdm9pZCA9PiB7XG4gIHNkay5yZWdpc3RlcignYmNoYScsIEJjaGEuY3JlYXRlSW5zdGFuY2UpO1xuICBzZGsucmVnaXN0ZXIoJ3RiY2hhJywgVGJjaGEuY3JlYXRlSW5zdGFuY2UpO1xufTtcbiJdfQ==
@@ -1,10 +0,0 @@
1
- /**
2
- * @prettier
3
- */
4
- import { BitGoBase, BaseCoin } from '@bitgo/sdk-core';
5
- import { Bcha } from './bcha';
6
- export declare class Tbcha extends Bcha {
7
- constructor(bitgo: BitGoBase);
8
- static createInstance(bitgo: BitGoBase): BaseCoin;
9
- }
10
- //# sourceMappingURL=tbcha.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tbcha.d.ts","sourceRoot":"","sources":["../../src/tbcha.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,KAAM,SAAQ,IAAI;gBACjB,KAAK,EAAE,SAAS;IAI5B,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;CAGlD"}
package/dist/src/tbcha.js DELETED
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Tbcha = void 0;
37
- const utxolib = __importStar(require("@bitgo/utxo-lib"));
38
- const bcha_1 = require("./bcha");
39
- class Tbcha extends bcha_1.Bcha {
40
- constructor(bitgo) {
41
- super(bitgo, utxolib.networks.ecashTest);
42
- }
43
- static createInstance(bitgo) {
44
- return new Tbcha(bitgo);
45
- }
46
- }
47
- exports.Tbcha = Tbcha;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGJjaGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGJjaGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEseURBQTJDO0FBQzNDLGlDQUE4QjtBQUU5QixNQUFhLEtBQU0sU0FBUSxXQUFJO0lBQzdCLFlBQVksS0FBZ0I7UUFDMUIsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCO1FBQ3BDLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBUkQsc0JBUUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBCaXRHb0Jhc2UsIEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IEJjaGEgfSBmcm9tICcuL2JjaGEnO1xuXG5leHBvcnQgY2xhc3MgVGJjaGEgZXh0ZW5kcyBCY2hhIHtcbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSkge1xuICAgIHN1cGVyKGJpdGdvLCB1dHhvbGliLm5ldHdvcmtzLmVjYXNoVGVzdCk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSk6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRiY2hhKGJpdGdvKTtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":""}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const sdk_api_1 = require("@bitgo/sdk-api");
4
- const sdk_test_1 = require("@bitgo/sdk-test");
5
- const src_1 = require("../../src");
6
- describe('Bcha', function () {
7
- const coinName = 'tbcha';
8
- let bitgo;
9
- let basecoin;
10
- before(function () {
11
- bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, {
12
- env: 'mock',
13
- });
14
- bitgo.initializeTestVars();
15
- bitgo.safeRegister('bcha', src_1.Bcha.createInstance);
16
- bitgo.safeRegister('tbcha', src_1.Tbcha.createInstance);
17
- basecoin = bitgo.coin(coinName);
18
- });
19
- it('should instantiate the coin', function () {
20
- let localBasecoin = bitgo.coin('tbcha');
21
- localBasecoin.should.be.an.instanceof(src_1.Tbcha);
22
- localBasecoin = bitgo.coin('bcha');
23
- localBasecoin.should.be.an.instanceof(src_1.Bcha);
24
- });
25
- it('should return tbcha', function () {
26
- basecoin.getChain().should.equal('tbcha');
27
- });
28
- it('should return full name', function () {
29
- basecoin.getFullName().should.equal('Testnet Bitcoin ABC');
30
- });
31
- it('should convert addresses', function () {
32
- const mainnetBasecoin = bitgo.coin('bcha');
33
- mainnetBasecoin
34
- .canonicalAddress('38oymyUayu35QoLLKmc8CozbcHynH6Btkn', 'cashaddr')
35
- .should.equal('ecash:pp8pnl7k6y8g073cggczfh22xrprxut5hymhjkq3er');
36
- mainnetBasecoin
37
- .canonicalAddress('ecash:pp8pnl7k6y8g073cggczfh22xrprxut5hymhjkq3er')
38
- .should.equal('38oymyUayu35QoLLKmc8CozbcHynH6Btkn');
39
- basecoin
40
- .canonicalAddress('mzopZJiBCjeAHXkShhgxfRsALgrYt3kxNP', 'cashaddr')
41
- .should.equal('ectest:qrfekq9s0c8tcuh75wpcxqnyl5e7dhqk4gq6pjct44');
42
- basecoin
43
- .canonicalAddress('ectest:qrfekq9s0c8tcuh75wpcxqnyl5e7dhqk4gq6pjct44')
44
- .should.equal('mzopZJiBCjeAHXkShhgxfRsALgrYt3kxNP');
45
- });
46
- });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBMEM7QUFDMUMsOENBQTBEO0FBQzFELG1DQUF3QztBQUV4QyxRQUFRLENBQUMsTUFBTSxFQUFFO0lBQ2YsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQVEsQ0FBQztJQUViLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxNQUFNO1NBQ1osQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFdBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2QkFBNkIsRUFBRTtRQUNoQyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBSyxDQUFDLENBQUM7UUFFN0MsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxxQkFBcUIsRUFBRTtRQUN4QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5QkFBeUIsRUFBRTtRQUM1QixRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDBCQUEwQixFQUFFO1FBQzdCLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsZUFBZTthQUNaLGdCQUFnQixDQUFDLG9DQUFvQyxFQUFFLFVBQVUsQ0FBQzthQUNsRSxNQUFNLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDcEUsZUFBZTthQUNaLGdCQUFnQixDQUFDLGtEQUFrRCxDQUFDO2FBQ3BFLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN0RCxRQUFRO2FBQ0wsZ0JBQWdCLENBQUMsb0NBQW9DLEVBQUUsVUFBVSxDQUFDO2FBQ2xFLE1BQU0sQ0FBQyxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUNyRSxRQUFRO2FBQ0wsZ0JBQWdCLENBQUMsbURBQW1ELENBQUM7YUFDckUsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstYXBpJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IEJjaGEsIFRiY2hhIH0gZnJvbSAnLi4vLi4vc3JjJztcblxuZGVzY3JpYmUoJ0JjaGEnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGNvaW5OYW1lID0gJ3RiY2hhJztcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBiYXNlY29pbjtcblxuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7XG4gICAgICBlbnY6ICdtb2NrJyxcbiAgICB9KTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ2JjaGEnLCBCY2hhLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3RiY2hhJywgVGJjaGEuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJhc2Vjb2luID0gYml0Z28uY29pbihjb2luTmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5zdGFudGlhdGUgdGhlIGNvaW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGxvY2FsQmFzZWNvaW4gPSBiaXRnby5jb2luKCd0YmNoYScpO1xuICAgIGxvY2FsQmFzZWNvaW4uc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoVGJjaGEpO1xuXG4gICAgbG9jYWxCYXNlY29pbiA9IGJpdGdvLmNvaW4oJ2JjaGEnKTtcbiAgICBsb2NhbEJhc2Vjb2luLnNob3VsZC5iZS5hbi5pbnN0YW5jZW9mKEJjaGEpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0YmNoYScsIGZ1bmN0aW9uICgpIHtcbiAgICBiYXNlY29pbi5nZXRDaGFpbigpLnNob3VsZC5lcXVhbCgndGJjaGEnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gZnVsbCBuYW1lJywgZnVuY3Rpb24gKCkge1xuICAgIGJhc2Vjb2luLmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdUZXN0bmV0IEJpdGNvaW4gQUJDJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY29udmVydCBhZGRyZXNzZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgbWFpbm5ldEJhc2Vjb2luID0gYml0Z28uY29pbignYmNoYScpO1xuXG4gICAgbWFpbm5ldEJhc2Vjb2luXG4gICAgICAuY2Fub25pY2FsQWRkcmVzcygnMzhveW15VWF5dTM1UW9MTEttYzhDb3piY0h5bkg2QnRrbicsICdjYXNoYWRkcicpXG4gICAgICAuc2hvdWxkLmVxdWFsKCdlY2FzaDpwcDhwbmw3azZ5OGcwNzNjZ2djemZoMjJ4cnByeHV0NWh5bWhqa3EzZXInKTtcbiAgICBtYWlubmV0QmFzZWNvaW5cbiAgICAgIC5jYW5vbmljYWxBZGRyZXNzKCdlY2FzaDpwcDhwbmw3azZ5OGcwNzNjZ2djemZoMjJ4cnByeHV0NWh5bWhqa3EzZXInKVxuICAgICAgLnNob3VsZC5lcXVhbCgnMzhveW15VWF5dTM1UW9MTEttYzhDb3piY0h5bkg2QnRrbicpO1xuICAgIGJhc2Vjb2luXG4gICAgICAuY2Fub25pY2FsQWRkcmVzcygnbXpvcFpKaUJDamVBSFhrU2hoZ3hmUnNBTGdyWXQza3hOUCcsICdjYXNoYWRkcicpXG4gICAgICAuc2hvdWxkLmVxdWFsKCdlY3Rlc3Q6cXJmZWtxOXMwYzh0Y3VoNzV3cGN4cW55bDVlN2RocWs0Z3E2cGpjdDQ0Jyk7XG4gICAgYmFzZWNvaW5cbiAgICAgIC5jYW5vbmljYWxBZGRyZXNzKCdlY3Rlc3Q6cXJmZWtxOXMwYzh0Y3VoNzV3cGN4cW55bDVlN2RocWs0Z3E2cGpjdDQ0JylcbiAgICAgIC5zaG91bGQuZXF1YWwoJ216b3BaSmlCQ2plQUhYa1NoaGd4ZlJzQUxncll0M2t4TlAnKTtcbiAgfSk7XG59KTtcbiJdfQ==