@open-flash/stream
Advanced tools
Comparing version 0.2.1 to 0.3.0-build.31
@@ -63,3 +63,3 @@ import { Incident } from "incident"; | ||
*/ | ||
readNulTerminatedUtf8(): string; | ||
readNulUtf8(): string; | ||
@@ -344,3 +344,3 @@ readUint8(): Uint8; | ||
readNulTerminatedUtf8(): string { | ||
readNulUtf8(): string { | ||
const endOfString: number = this.bytes.indexOf(0, this.bytePos); | ||
@@ -347,0 +347,0 @@ if (endOfString < 0) { |
@@ -47,3 +47,3 @@ import { Incident } from "incident"; | ||
writeNulTerminatedUtf8(value: string): void; | ||
writeNulUtf8(value: string): void; | ||
@@ -275,3 +275,3 @@ writeUint8(value: Uint8): void; | ||
writeNulTerminatedUtf8(value: string): void { | ||
writeNulUtf8(value: string): void { | ||
this.writeBytes(UTF8_ENCODER.encode(value)); | ||
@@ -278,0 +278,0 @@ this.writeUint8(0); |
@@ -0,1 +1,5 @@ | ||
# 0.3.0 (2020-01-16) | ||
- **[Breaking change]** Rename `readNulTerminatedUtf8` to `readNulUtf8` and `writeNulTerminatedUtf8` to `writeNulUtf8`. | ||
# 0.2.1 (2019-11-25) | ||
@@ -2,0 +6,0 @@ |
{ | ||
"name": "@open-flash/stream", | ||
"version": "0.2.1", | ||
"version": "0.3.0-build.31", | ||
"homepage": "https://github.com/open-flash/stream", | ||
@@ -55,3 +55,3 @@ "description": "Streams for Open Flash", | ||
}, | ||
"gitHead": "6f054ce8e531c97b58a7b97814774eaf8fe987d8" | ||
"gitHead": "897100f78d0b1b69aedb7c5e826dee3465d19b87" | ||
} |
@@ -40,3 +40,3 @@ import { Float16, Float32, Float64, Sint16, Sint32, Sint8, Uint16, Uint32, Uint8, UintSize } from "semantic-types"; | ||
*/ | ||
readNulTerminatedUtf8(): string; | ||
readNulUtf8(): string; | ||
readUint8(): Uint8; | ||
@@ -117,5 +117,5 @@ peekUint8(): Uint8; | ||
readUtf8(byteLength: number): string; | ||
readNulTerminatedUtf8(): string; | ||
readNulUtf8(): string; | ||
private readUintBits; | ||
private readIntBits; | ||
} |
@@ -204,3 +204,3 @@ "use strict"; | ||
} | ||
readNulTerminatedUtf8() { | ||
readNulUtf8() { | ||
const endOfString = this.bytes.indexOf(0, this.bytePos); | ||
@@ -271,2 +271,2 @@ if (endOfString < 0) { | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFXLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLG9DQUFvQztJQUNwRixNQUFNLFFBQVEsR0FBWSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsa0NBQWtDO0lBQzFFLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtRQUNsQixPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO0tBQ3BEO1NBQU0sSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLEVBQUUsZ0NBQWdDO1FBQzlELE9BQU8sUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0tBQy9DO1NBQU07UUFDTCxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNwRTtBQUNILENBQUMiLCJmaWxlIjoicmVhZGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNpZGVudCB9IGZyb20gXCJpbmNpZGVudFwiO1xuaW1wb3J0IHsgRmxvYXQxNiwgRmxvYXQzMiwgRmxvYXQ2NCwgU2ludDE2LCBTaW50MzIsIFNpbnQ4LCBVaW50MTYsIFVpbnQzMiwgVWludDgsIFVpbnRTaXplIH0gZnJvbSBcInNlbWFudGljLXR5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVJbmNvbXBsZXRlU3RyZWFtRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMvaW5jb21wbGV0ZS1zdHJlYW1cIjtcblxuY29uc3QgVVRGOF9ERUNPREVSOiBUZXh0RGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcihcIlVURi04XCIsIHtmYXRhbDogdHJ1ZX0pO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBub24tYnl0ZS1hbGlnbmVkIHN0cmVhbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRhYmxlQml0U3RyZWFtIHtcbiAgYnl0ZVBvczogVWludFNpemU7XG4gIGJpdFBvczogVWludFNpemU7XG5cbiAgYWxpZ24oKTogdm9pZDtcblxuICBhc0J5dGVTdHJlYW0oKTogUmVhZGFibGVCeXRlU3RyZWFtO1xuXG4gIHNraXBCaXRzKG46IFVpbnRTaXplKTogdm9pZDtcblxuICByZWFkQm9vbEJpdHMoKTogYm9vbGVhbjtcblxuICByZWFkU2ludDE2Qml0cyhuOiBVaW50U2l6ZSk6IFNpbnQxNjtcblxuICByZWFkU2ludDMyQml0cyhuOiBVaW50U2l6ZSk6IFNpbnQzMjtcblxuICByZWFkVWludDE2Qml0cyhuOiBVaW50U2l6ZSk6IFVpbnQxNjtcblxuICByZWFkVWludDMyQml0cyhuOiBVaW50U2l6ZSk6IFVpbnQzMjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgYnl0ZS1hbGlnbmVkIHN0cmVhbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRhYmxlQnl0ZVN0cmVhbSB7XG4gIGJ5dGVQb3M6IFVpbnRTaXplO1xuXG4gIHNraXAoc2l6ZTogVWludFNpemUpOiB2b2lkO1xuXG4gIGFsaWduKCk6IHZvaWQ7XG5cbiAgYXZhaWxhYmxlKCk6IFVpbnRTaXplO1xuXG4gIHRhaWxCeXRlcygpOiBVaW50OEFycmF5O1xuXG4gIGFzQml0U3RyZWFtKCk6IFJlYWRhYmxlQml0U3RyZWFtO1xuXG4gIHRha2UobGVuZ3RoOiBVaW50U2l6ZSk6IFJlYWRhYmxlQnl0ZVN0cmVhbTtcblxuICB0YWtlQnl0ZXMobGVuZ3RoOiBVaW50U2l6ZSk6IFVpbnQ4QXJyYXk7XG5cbiAgLyoqXG4gICAqIFJlYWQgdGhlIG5leHQgYGJ5dGVMZW5ndGhgIGJ5dGVzIGFzIGFuIFVURi04IHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIGJ5dGVMZW5ndGggTGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gYnl0ZXMuXG4gICAqL1xuICByZWFkVXRmOChieXRlTGVuZ3RoOiBVaW50U2l6ZSk6IHN0cmluZztcblxuICAvKipcbiAgICogUmVhZCB0aGUgbmV4dCBieXRlcyBhcyBhbiBVVEYtOCBzdHJpbmcsIHVwIHRvIE5VTC5cbiAgICpcbiAgICogVGhlIGBOVUxgIGJ5dGUgaXMgY29uc3VtZWQgYnV0IG5vdCBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0LlxuICAgKi9cbiAgcmVhZE51bFRlcm1pbmF0ZWRVdGY4KCk6IHN0cmluZztcblxuICByZWFkVWludDgoKTogVWludDg7XG5cbiAgcGVla1VpbnQ4KCk6IFVpbnQ4O1xuXG4gIHJlYWRVaW50MTZCRSgpOiBVaW50MTY7XG5cbiAgcmVhZFVpbnQxNkxFKCk6IFVpbnQxNjtcblxuICByZWFkVWludDMyQkUoKTogVWludDMyO1xuXG4gIHJlYWRVaW50MzJMRSgpOiBVaW50MzI7XG5cbiAgcmVhZFVpbnQzMkxlYjEyOCgpOiBVaW50MzI7XG5cbiAgcmVhZFNpbnQ4KCk6IFNpbnQ4O1xuXG4gIHJlYWRTaW50MTZMRSgpOiBTaW50MTY7XG5cbiAgcmVhZFNpbnQzMkxFKCk6IFNpbnQzMjtcblxuICAvKipcbiAgICogWW91IHByb2JhYmx5IGRvbid0IHdhbnQgdG8gdXNlIHRoaXMgYnV0IEZsb2F0MTZMRSBmb3IgU1dGIGZpbGVzLlxuICAgKi9cbiAgcmVhZEZsb2F0MTZCRSgpOiBGbG9hdDE2O1xuXG4gIHJlYWRGbG9hdDE2TEUoKTogRmxvYXQxNjtcblxuICAvKipcbiAgICogWW91IHByb2JhYmx5IGRvbid0IHdhbnQgdG8gdXNlIHRoaXMgYnV0IEZsb2F0MzJMRWZvciBTV0YgZmlsZXMuXG4gICAqL1xuICByZWFkRmxvYXQzMkJFKCk6IEZsb2F0MzI7XG5cbiAgcmVhZEZsb2F0MzJMRSgpOiBGbG9hdDMyO1xuXG4gIC8qKlxuICAgKiBZb3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byB1c2UgdGhpcyBidXQgRmxvYXQ2NExFZm9yIFNXRiBmaWxlcy5cbiAgICovXG4gIHJlYWRGbG9hdDY0QkUoKTogRmxvYXQ2NDtcblxuICByZWFkRmxvYXQ2NExFKCk6IEZsb2F0NjQ7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWFkYWJsZVN0cmVhbSBpbXBsZW1lbnRzIFJlYWRhYmxlQml0U3RyZWFtLCBSZWFkYWJsZUJ5dGVTdHJlYW0ge1xuICBieXRlczogVWludDhBcnJheTtcbiAgdmlldzogRGF0YVZpZXc7XG4gIGJ5dGVQb3M6IFVpbnRTaXplO1xuICBieXRlRW5kOiBVaW50U2l6ZTtcbiAgYml0UG9zOiBVaW50U2l6ZTtcblxuICBjb25zdHJ1Y3RvcihieXRlczogVWludDhBcnJheSwgX2J5dGVPZmZzZXQ6IFVpbnRTaXplID0gMCwgYml0T2Zmc2V0OiBVaW50U2l6ZSA9IDApIHtcbiAgICB0aGlzLmJ5dGVzID0gYnl0ZXM7XG4gICAgdGhpcy52aWV3ID0gbmV3IERhdGFWaWV3KGJ5dGVzLmJ1ZmZlciwgYnl0ZXMuYnl0ZU9mZnNldCwgYnl0ZXMubGVuZ3RoKTtcbiAgICB0aGlzLmJ5dGVQb3MgPSAwO1xuICAgIHRoaXMuYml0UG9zID0gYml0T2Zmc2V0O1xuICAgIHRoaXMuYnl0ZUVuZCA9IGJ5dGVzLmxlbmd0aDtcbiAgfVxuXG4gIHN0YXRpYyBlcXVhbHMobGVmdDogUmVhZGFibGVTdHJlYW0sIHJpZ2h0OiBSZWFkYWJsZVN0cmVhbSk6IGJvb2xlYW4ge1xuICAgIGlmIChsZWZ0LmJpdFBvcyAhPT0gcmlnaHQuYml0UG9zKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxlZnRMZW46IG51bWJlciA9IGxlZnQuYnl0ZUVuZCAtIGxlZnQuYnl0ZVBvcztcbiAgICBjb25zdCByaWdodExlbjogbnVtYmVyID0gcmlnaHQuYnl0ZUVuZCAtIHJpZ2h0LmJ5dGVQb3M7XG4gICAgaWYgKGxlZnRMZW4gIT09IHJpZ2h0TGVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChsZWZ0TGVuID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgbGV0IGk6IG51bWJlciA9IDA7XG4gICAgaWYgKGxlZnQuYml0UG9zICE9PSAwKSB7XG4gICAgICBpID0gMTtcbiAgICAgIGNvbnN0IGxlZnRQYXJ0aWFsQnl0ZTogVWludDggPSBsZWZ0LmJ5dGVzW2xlZnQuYnl0ZVBvc107XG4gICAgICBjb25zdCByaWdodFBhcnRpYWxCeXRlOiBVaW50OCA9IHJpZ2h0LmJ5dGVzW3JpZ2h0LmJ5dGVQb3NdO1xuICAgICAgY29uc3QgbWFzazogVWludDggPSAoMSA8PCAoOCAtIGxlZnQuYml0UG9zKSkgLSAxO1xuICAgICAgaWYgKChsZWZ0UGFydGlhbEJ5dGUgJiBtYXNrKSAhPT0gKHJpZ2h0UGFydGlhbEJ5dGUgJiBtYXNrKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoOyBpIDwgbGVmdExlbjsgaSsrKSB7XG4gICAgICBpZiAobGVmdC5ieXRlc1tsZWZ0LmJ5dGVQb3MgKyBpXSAhPT0gcmlnaHQuYnl0ZXNbcmlnaHQuYnl0ZVBvcyArIGldKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc0JpdFN0cmVhbSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFzQnl0ZVN0cmVhbSgpOiB0aGlzIHtcbiAgICB0aGlzLmFsaWduKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhbGlnbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iaXRQb3MgIT09IDApIHtcbiAgICAgIHRoaXMuYml0UG9zID0gMDtcbiAgICAgIHRoaXMuYnl0ZVBvcysrO1xuICAgIH1cbiAgfVxuXG4gIHRhaWwoKTogUmVhZGFibGVTdHJlYW0ge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0odGhpcy50YWlsQnl0ZXMoKSwgMCwgdGhpcy5iaXRQb3MpO1xuICB9XG5cbiAgdGFpbEJ5dGVzKCk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IHJlc3VsdDogVWludDhBcnJheSA9IHRoaXMuYnl0ZXMuc3ViYXJyYXkodGhpcy5ieXRlUG9zKTtcbiAgICB0aGlzLmJ5dGVQb3MgPSB0aGlzLmJ5dGVFbmQ7XG4gICAgdGhpcy5iaXRQb3MgPSAwO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhdmFpbGFibGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ieXRlRW5kIC0gdGhpcy5ieXRlUG9zO1xuICB9XG5cbiAgdGFrZShsZW5ndGg6IFVpbnRTaXplKTogUmVhZGFibGVTdHJlYW0ge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0odGhpcy50YWtlQnl0ZXMobGVuZ3RoKSwgMCwgMCk7XG4gIH1cblxuICB0YWtlQnl0ZXMobGVuZ3RoOiBVaW50U2l6ZSk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IHJlc3VsdDogVWludDhBcnJheSA9IHRoaXMuYnl0ZXMuc3ViYXJyYXkodGhpcy5ieXRlUG9zLCB0aGlzLmJ5dGVQb3MgKyBsZW5ndGgpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSBsZW5ndGg7XG4gICAgdGhpcy5iaXRQb3MgPSAwO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWFkU2ludDgoKTogU2ludDgge1xuICAgIHJldHVybiB0aGlzLnZpZXcuZ2V0SW50OCh0aGlzLmJ5dGVQb3MrKyk7XG4gIH1cblxuICByZWFkU2ludDE2TEUoKTogU2ludDE2IHtcbiAgICBjb25zdCByZXN1bHQ6IFNpbnQxNiA9IHRoaXMudmlldy5nZXRJbnQxNih0aGlzLmJ5dGVQb3MsIHRydWUpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSAyO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWFkU2ludDMyTEUoKTogU2ludDMyIHtcbiAgICBjb25zdCByZXN1bHQ6IFNpbnQzMiA9IHRoaXMudmlldy5nZXRJbnQzMih0aGlzLmJ5dGVQb3MsIHRydWUpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA0O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWFkVWludDgoKTogVWludDgge1xuICAgIHJldHVybiB0aGlzLnZpZXcuZ2V0VWludDgodGhpcy5ieXRlUG9zKyspO1xuICB9XG5cbiAgcGVla1VpbnQ4KCk6IFVpbnQ4IHtcbiAgICByZXR1cm4gdGhpcy52aWV3LmdldFVpbnQ4KHRoaXMuYnl0ZVBvcyk7XG4gIH1cblxuICByZWFkVWludDE2QkUoKTogVWludDE2IHtcbiAgICBjb25zdCByZXN1bHQ6IFVpbnQxNiA9IHRoaXMudmlldy5nZXRVaW50MTYodGhpcy5ieXRlUG9zLCBmYWxzZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDI7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRVaW50MTZMRSgpOiBVaW50MTYge1xuICAgIGNvbnN0IHJlc3VsdDogVWludDE2ID0gdGhpcy52aWV3LmdldFVpbnQxNih0aGlzLmJ5dGVQb3MsIHRydWUpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSAyO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWFkVWludDMyQkUoKTogVWludDMyIHtcbiAgICBjb25zdCByZXN1bHQ6IFVpbnQzMiA9IHRoaXMudmlldy5nZXRVaW50MzIodGhpcy5ieXRlUG9zLCBmYWxzZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRVaW50MzJMRSgpOiBVaW50MzIge1xuICAgIGNvbnN0IHJlc3VsdDogVWludDMyID0gdGhpcy52aWV3LmdldFVpbnQzMih0aGlzLmJ5dGVQb3MsIHRydWUpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA0O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWFkRmxvYXQxNkJFKCk6IEZsb2F0MTYge1xuICAgIGNvbnN0IHUxNjogVWludDE2ID0gdGhpcy52aWV3LmdldFVpbnQxNih0aGlzLmJ5dGVQb3MsIGZhbHNlKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gMjtcbiAgICByZXR1cm4gcmVpbnRlcnByZXRVaW50MTZBc0Zsb2F0MTYodTE2KTtcbiAgfVxuXG4gIHJlYWRGbG9hdDE2TEUoKTogRmxvYXQxNiB7XG4gICAgY29uc3QgdTE2OiBVaW50MTYgPSB0aGlzLnZpZXcuZ2V0VWludDE2KHRoaXMuYnl0ZVBvcywgdHJ1ZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDI7XG4gICAgcmV0dXJuIHJlaW50ZXJwcmV0VWludDE2QXNGbG9hdDE2KHUxNik7XG4gIH1cblxuICByZWFkRmxvYXQzMkJFKCk6IEZsb2F0MzIge1xuICAgIGNvbnN0IHJlc3VsdDogRmxvYXQzMiA9IHRoaXMudmlldy5nZXRGbG9hdDMyKHRoaXMuYnl0ZVBvcywgZmFsc2UpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA0O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWFkRmxvYXQzMkxFKCk6IEZsb2F0MzIge1xuICAgIGNvbnN0IHJlc3VsdDogRmxvYXQzMiA9IHRoaXMudmlldy5nZXRGbG9hdDMyKHRoaXMuYnl0ZVBvcywgdHJ1ZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRGbG9hdDY0QkUoKTogRmxvYXQ2NCB7XG4gICAgY29uc3QgcmVzdWx0OiBGbG9hdDY0ID0gdGhpcy52aWV3LmdldEZsb2F0NjQodGhpcy5ieXRlUG9zLCBmYWxzZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDg7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRGbG9hdDY0TEUoKTogRmxvYXQ2NCB7XG4gICAgY29uc3QgcmVzdWx0OiBGbG9hdDY0ID0gdGhpcy52aWV3LmdldEZsb2F0NjQodGhpcy5ieXRlUG9zLCB0cnVlKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gODtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2tpcChzaXplOiBVaW50U2l6ZSk6IHZvaWQge1xuICAgIHRoaXMuYnl0ZVBvcyArPSBzaXplO1xuICB9XG5cbiAgc2tpcEJpdHMobjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5yZWFkVWludEJpdHMobik7XG4gIH1cblxuICByZWFkQm9vbEJpdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVhZFVpbnRCaXRzKDEpID4gMDtcbiAgfVxuXG4gIHJlYWRTaW50MTZCaXRzKG46IG51bWJlcik6IFNpbnQxNiB7XG4gICAgcmV0dXJuIHRoaXMucmVhZEludEJpdHMobik7XG4gIH1cblxuICAvKipcbiAgICogU0Jbbl1cbiAgICovXG4gIHJlYWRTaW50MzJCaXRzKG46IFVpbnRTaXplKTogU2ludDMyIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkSW50Qml0cyhuKTtcbiAgfVxuXG4gIHJlYWRVaW50MTZCaXRzKG46IFVpbnRTaXplKTogVWludDE2IHtcbiAgICByZXR1cm4gdGhpcy5yZWFkVWludEJpdHMobik7XG4gIH1cblxuICAvKipcbiAgICogVUJbbl1cbiAgICovXG4gIHJlYWRVaW50MzJCaXRzKG46IFVpbnRTaXplKTogVWludDMyIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkVWludEJpdHMobik7XG4gIH1cblxuICAvKipcbiAgICogTEVCMTI4LWVuY29kZWQgVWludDMyICgxIHRvIDUgYnl0ZXMpXG4gICAqL1xuICByZWFkVWludDMyTGViMTI4KCk6IFVpbnQzMiB7XG4gICAgbGV0IHJlc3VsdDogVWludDMyID0gMDtcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgICBjb25zdCBuZXh0Qnl0ZTogVWludDggPSB0aGlzLmJ5dGVzW3RoaXMuYnl0ZVBvcysrXTtcbiAgICAgIGlmIChpIDwgNCkge1xuICAgICAgICAvLyBCaXQtc2hpZnQgaXMgc2FmZVxuICAgICAgICByZXN1bHQgKz0gKG5leHRCeXRlICYgMHg3ZikgPDwgKDcgKiBpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEJpdC1zaGlmdCBpcyB1bnNhZmUsIHVzZSBgKiBNYXRoLnBvd2BcbiAgICAgICAgcmVzdWx0ICs9IChuZXh0Qnl0ZSAmIDB4MGYpICogTWF0aC5wb3coMiwgMjgpO1xuICAgICAgfVxuICAgICAgaWYgKChuZXh0Qnl0ZSAmICgxIDw8IDcpKSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVhZFV0ZjgoYnl0ZUxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbmRPZlN0cmluZzogbnVtYmVyID0gdGhpcy5ieXRlUG9zICsgYnl0ZUxlbmd0aDtcbiAgICBpZiAoZW5kT2ZTdHJpbmcgPiB0aGlzLmJ5dGVzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgY3JlYXRlSW5jb21wbGV0ZVN0cmVhbUVycm9yKCk7XG4gICAgfVxuICAgIGNvbnN0IHNsaWNlOiBVaW50OEFycmF5ID0gdGhpcy5ieXRlcy5zdWJhcnJheSh0aGlzLmJ5dGVQb3MsIGVuZE9mU3RyaW5nKTtcbiAgICBjb25zdCByZXN1bHQ6IHN0cmluZyA9IFVURjhfREVDT0RFUi5kZWNvZGUoc2xpY2UpO1xuICAgIHRoaXMuYnl0ZVBvcyA9IGVuZE9mU3RyaW5nO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWFkTnVsVGVybWluYXRlZFV0ZjgoKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbmRPZlN0cmluZzogbnVtYmVyID0gdGhpcy5ieXRlcy5pbmRleE9mKDAsIHRoaXMuYnl0ZVBvcyk7XG4gICAgaWYgKGVuZE9mU3RyaW5nIDwgMCkge1xuICAgICAgdGhyb3cgY3JlYXRlSW5jb21wbGV0ZVN0cmVhbUVycm9yKCk7XG4gICAgfVxuICAgIGNvbnN0IHNsaWNlOiBVaW50OEFycmF5ID0gdGhpcy5ieXRlcy5zdWJhcnJheSh0aGlzLmJ5dGVQb3MsIGVuZE9mU3RyaW5nKTtcbiAgICBjb25zdCByZXN1bHQ6IHN0cmluZyA9IFVURjhfREVDT0RFUi5kZWNvZGUoc2xpY2UpO1xuICAgIHRoaXMuYnl0ZVBvcyA9IGVuZE9mU3RyaW5nICsgMTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkVWludEJpdHMobjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAobiA+IDMyKSB7XG4gICAgICAvLyBFdmVuIGlmIHdlIGNvdWxkIHJlYWQgdXAgdG8gNTMgYml0cywgd2UgcmVzdHJpY3QgaXQgdG8gMzIgYml0cyAod2hpY2ggaXMgYWxyZWFkeSB1bnNhZmVcbiAgICAgIC8vIGlmIHdlIGNvbnNpZGVyIHRoYXQgdGhlIG1heCBwb3NpdGl2ZSBudW1iZXIgc2FmZSByZWdhcmRpbmcgYml0IG9wZXJhdGlvbnMgaXMgMl4zMSAtIDEpXG4gICAgICB0aHJvdyBuZXcgSW5jaWRlbnQoXCJCaXRPdmVyZmxvd1wiLCBcIkNhbm5vdCByZWFkIGFib3ZlIDMyIGJpdHMgd2l0aG91dCBvdmVyZmxvd1wiKTtcbiAgICB9XG4gICAgbGV0IHJlc3VsdDogbnVtYmVyID0gMDtcbiAgICB3aGlsZSAobiA+IDApIHtcbiAgICAgIGlmICh0aGlzLmJpdFBvcyArIG4gPCA4KSB7XG4gICAgICAgIGNvbnN0IGVuZEJpdFBvczogbnVtYmVyID0gdGhpcy5iaXRQb3MgKyBuO1xuICAgICAgICBjb25zdCBzaGlmdDogbnVtYmVyID0gMSA8PCAoZW5kQml0UG9zIC0gdGhpcy5iaXRQb3MpO1xuICAgICAgICBjb25zdCBjdXI6IG51bWJlciA9ICh0aGlzLmJ5dGVzW3RoaXMuYnl0ZVBvc10gPj4+IDggLSBlbmRCaXRQb3MpICYgKHNoaWZ0IC0gMSk7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIHNoaWZ0ICsgY3VyO1xuICAgICAgICBuID0gMDtcbiAgICAgICAgdGhpcy5iaXRQb3MgPSBlbmRCaXRQb3M7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzaGlmdDogbnVtYmVyID0gMSA8PCAoOCAtIHRoaXMuYml0UG9zKTtcbiAgICAgICAgY29uc3QgY3VyOiBudW1iZXIgPSB0aGlzLmJ5dGVzW3RoaXMuYnl0ZVBvc10gJiAoc2hpZnQgLSAxKTtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogc2hpZnQgKyBjdXI7XG4gICAgICAgIG4gLT0gKDggLSB0aGlzLmJpdFBvcyk7XG4gICAgICAgIHRoaXMuYml0UG9zID0gMDtcbiAgICAgICAgdGhpcy5ieXRlUG9zKys7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlYWRJbnRCaXRzKG46IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKG4gPT09IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjb25zdCB1bnNpZ25lZDogbnVtYmVyID0gdGhpcy5yZWFkVWludEJpdHMobik7XG4gICAgaWYgKHVuc2lnbmVkIDwgTWF0aC5wb3coMiwgbiAtIDEpKSB7XG4gICAgICByZXR1cm4gdW5zaWduZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtTWF0aC5wb3coMiwgbikgKyB1bnNpZ25lZDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVpbnRlcnByZXRVaW50MTZBc0Zsb2F0MTYodTE2OiBVaW50MTYpOiBGbG9hdDE2IHtcbiAgY29uc3Qgc2lnbjogLTEgfCAxID0gKHUxNiAmICgxIDw8IDE1KSkgIT09IDAgPyAtMSA6IDE7XG4gIGNvbnN0IGV4cG9uZW50OiBTaW50MzIgPSAodTE2ICYgMHg3YzAwKSA+Pj4gMTA7IC8vIDB4N2MwMDogYml0cyAxMCB0byAxNCAoaW5jbHVzaXZlKVxuICBjb25zdCBmcmFjdGlvbjogRmxvYXQ2NCA9IHUxNiAmIDB4MDNmZjsgLy8gMHgwM2ZmOiBiaXRzIDAgdG8gOSAoaW5jbHVzaXZlKVxuICBpZiAoZXhwb25lbnQgPT09IDApIHtcbiAgICByZXR1cm4gc2lnbiAqIE1hdGgucG93KDIsIC0xNCkgKiAoZnJhY3Rpb24gLyAxMDI0KTtcbiAgfSBlbHNlIGlmIChleHBvbmVudCA9PT0gMHgxZikgeyAvLyAweDFmOiBiaXRzIDAgdG8gNCAoaW5jbHVzaXZlKVxuICAgIHJldHVybiBmcmFjdGlvbiA9PT0gMCA/IHNpZ24gKiBJbmZpbml0eSA6IE5hTjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc2lnbiAqIE1hdGgucG93KDIsIGV4cG9uZW50IC0gMTUpICogKDEgKyAoZnJhY3Rpb24gLyAxMDI0KSk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFXLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLG9DQUFvQztJQUNwRixNQUFNLFFBQVEsR0FBWSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsa0NBQWtDO0lBQzFFLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtRQUNsQixPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO0tBQ3BEO1NBQU0sSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLEVBQUUsZ0NBQWdDO1FBQzlELE9BQU8sUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0tBQy9DO1NBQU07UUFDTCxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNwRTtBQUNILENBQUMiLCJmaWxlIjoicmVhZGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNpZGVudCB9IGZyb20gXCJpbmNpZGVudFwiO1xuaW1wb3J0IHsgRmxvYXQxNiwgRmxvYXQzMiwgRmxvYXQ2NCwgU2ludDE2LCBTaW50MzIsIFNpbnQ4LCBVaW50MTYsIFVpbnQzMiwgVWludDgsIFVpbnRTaXplIH0gZnJvbSBcInNlbWFudGljLXR5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVJbmNvbXBsZXRlU3RyZWFtRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMvaW5jb21wbGV0ZS1zdHJlYW1cIjtcblxuY29uc3QgVVRGOF9ERUNPREVSOiBUZXh0RGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcihcIlVURi04XCIsIHtmYXRhbDogdHJ1ZX0pO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBub24tYnl0ZS1hbGlnbmVkIHN0cmVhbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRhYmxlQml0U3RyZWFtIHtcbiAgYnl0ZVBvczogVWludFNpemU7XG4gIGJpdFBvczogVWludFNpemU7XG5cbiAgYWxpZ24oKTogdm9pZDtcblxuICBhc0J5dGVTdHJlYW0oKTogUmVhZGFibGVCeXRlU3RyZWFtO1xuXG4gIHNraXBCaXRzKG46IFVpbnRTaXplKTogdm9pZDtcblxuICByZWFkQm9vbEJpdHMoKTogYm9vbGVhbjtcblxuICByZWFkU2ludDE2Qml0cyhuOiBVaW50U2l6ZSk6IFNpbnQxNjtcblxuICByZWFkU2ludDMyQml0cyhuOiBVaW50U2l6ZSk6IFNpbnQzMjtcblxuICByZWFkVWludDE2Qml0cyhuOiBVaW50U2l6ZSk6IFVpbnQxNjtcblxuICByZWFkVWludDMyQml0cyhuOiBVaW50U2l6ZSk6IFVpbnQzMjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgYnl0ZS1hbGlnbmVkIHN0cmVhbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRhYmxlQnl0ZVN0cmVhbSB7XG4gIGJ5dGVQb3M6IFVpbnRTaXplO1xuXG4gIHNraXAoc2l6ZTogVWludFNpemUpOiB2b2lkO1xuXG4gIGFsaWduKCk6IHZvaWQ7XG5cbiAgYXZhaWxhYmxlKCk6IFVpbnRTaXplO1xuXG4gIHRhaWxCeXRlcygpOiBVaW50OEFycmF5O1xuXG4gIGFzQml0U3RyZWFtKCk6IFJlYWRhYmxlQml0U3RyZWFtO1xuXG4gIHRha2UobGVuZ3RoOiBVaW50U2l6ZSk6IFJlYWRhYmxlQnl0ZVN0cmVhbTtcblxuICB0YWtlQnl0ZXMobGVuZ3RoOiBVaW50U2l6ZSk6IFVpbnQ4QXJyYXk7XG5cbiAgLyoqXG4gICAqIFJlYWQgdGhlIG5leHQgYGJ5dGVMZW5ndGhgIGJ5dGVzIGFzIGFuIFVURi04IHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIGJ5dGVMZW5ndGggTGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gYnl0ZXMuXG4gICAqL1xuICByZWFkVXRmOChieXRlTGVuZ3RoOiBVaW50U2l6ZSk6IHN0cmluZztcblxuICAvKipcbiAgICogUmVhZCB0aGUgbmV4dCBieXRlcyBhcyBhbiBVVEYtOCBzdHJpbmcsIHVwIHRvIE5VTC5cbiAgICpcbiAgICogVGhlIGBOVUxgIGJ5dGUgaXMgY29uc3VtZWQgYnV0IG5vdCBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0LlxuICAgKi9cbiAgcmVhZE51bFV0ZjgoKTogc3RyaW5nO1xuXG4gIHJlYWRVaW50OCgpOiBVaW50ODtcblxuICBwZWVrVWludDgoKTogVWludDg7XG5cbiAgcmVhZFVpbnQxNkJFKCk6IFVpbnQxNjtcblxuICByZWFkVWludDE2TEUoKTogVWludDE2O1xuXG4gIHJlYWRVaW50MzJCRSgpOiBVaW50MzI7XG5cbiAgcmVhZFVpbnQzMkxFKCk6IFVpbnQzMjtcblxuICByZWFkVWludDMyTGViMTI4KCk6IFVpbnQzMjtcblxuICByZWFkU2ludDgoKTogU2ludDg7XG5cbiAgcmVhZFNpbnQxNkxFKCk6IFNpbnQxNjtcblxuICByZWFkU2ludDMyTEUoKTogU2ludDMyO1xuXG4gIC8qKlxuICAgKiBZb3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byB1c2UgdGhpcyBidXQgRmxvYXQxNkxFIGZvciBTV0YgZmlsZXMuXG4gICAqL1xuICByZWFkRmxvYXQxNkJFKCk6IEZsb2F0MTY7XG5cbiAgcmVhZEZsb2F0MTZMRSgpOiBGbG9hdDE2O1xuXG4gIC8qKlxuICAgKiBZb3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byB1c2UgdGhpcyBidXQgRmxvYXQzMkxFZm9yIFNXRiBmaWxlcy5cbiAgICovXG4gIHJlYWRGbG9hdDMyQkUoKTogRmxvYXQzMjtcblxuICByZWFkRmxvYXQzMkxFKCk6IEZsb2F0MzI7XG5cbiAgLyoqXG4gICAqIFlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIHVzZSB0aGlzIGJ1dCBGbG9hdDY0TEVmb3IgU1dGIGZpbGVzLlxuICAgKi9cbiAgcmVhZEZsb2F0NjRCRSgpOiBGbG9hdDY0O1xuXG4gIHJlYWRGbG9hdDY0TEUoKTogRmxvYXQ2NDtcbn1cblxuZXhwb3J0IGNsYXNzIFJlYWRhYmxlU3RyZWFtIGltcGxlbWVudHMgUmVhZGFibGVCaXRTdHJlYW0sIFJlYWRhYmxlQnl0ZVN0cmVhbSB7XG4gIGJ5dGVzOiBVaW50OEFycmF5O1xuICB2aWV3OiBEYXRhVmlldztcbiAgYnl0ZVBvczogVWludFNpemU7XG4gIGJ5dGVFbmQ6IFVpbnRTaXplO1xuICBiaXRQb3M6IFVpbnRTaXplO1xuXG4gIGNvbnN0cnVjdG9yKGJ5dGVzOiBVaW50OEFycmF5LCBfYnl0ZU9mZnNldDogVWludFNpemUgPSAwLCBiaXRPZmZzZXQ6IFVpbnRTaXplID0gMCkge1xuICAgIHRoaXMuYnl0ZXMgPSBieXRlcztcbiAgICB0aGlzLnZpZXcgPSBuZXcgRGF0YVZpZXcoYnl0ZXMuYnVmZmVyLCBieXRlcy5ieXRlT2Zmc2V0LCBieXRlcy5sZW5ndGgpO1xuICAgIHRoaXMuYnl0ZVBvcyA9IDA7XG4gICAgdGhpcy5iaXRQb3MgPSBiaXRPZmZzZXQ7XG4gICAgdGhpcy5ieXRlRW5kID0gYnl0ZXMubGVuZ3RoO1xuICB9XG5cbiAgc3RhdGljIGVxdWFscyhsZWZ0OiBSZWFkYWJsZVN0cmVhbSwgcmlnaHQ6IFJlYWRhYmxlU3RyZWFtKTogYm9vbGVhbiB7XG4gICAgaWYgKGxlZnQuYml0UG9zICE9PSByaWdodC5iaXRQb3MpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbGVmdExlbjogbnVtYmVyID0gbGVmdC5ieXRlRW5kIC0gbGVmdC5ieXRlUG9zO1xuICAgIGNvbnN0IHJpZ2h0TGVuOiBudW1iZXIgPSByaWdodC5ieXRlRW5kIC0gcmlnaHQuYnl0ZVBvcztcbiAgICBpZiAobGVmdExlbiAhPT0gcmlnaHRMZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGxlZnRMZW4gPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBsZXQgaTogbnVtYmVyID0gMDtcbiAgICBpZiAobGVmdC5iaXRQb3MgIT09IDApIHtcbiAgICAgIGkgPSAxO1xuICAgICAgY29uc3QgbGVmdFBhcnRpYWxCeXRlOiBVaW50OCA9IGxlZnQuYnl0ZXNbbGVmdC5ieXRlUG9zXTtcbiAgICAgIGNvbnN0IHJpZ2h0UGFydGlhbEJ5dGU6IFVpbnQ4ID0gcmlnaHQuYnl0ZXNbcmlnaHQuYnl0ZVBvc107XG4gICAgICBjb25zdCBtYXNrOiBVaW50OCA9ICgxIDw8ICg4IC0gbGVmdC5iaXRQb3MpKSAtIDE7XG4gICAgICBpZiAoKGxlZnRQYXJ0aWFsQnl0ZSAmIG1hc2spICE9PSAocmlnaHRQYXJ0aWFsQnl0ZSAmIG1hc2spKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yICg7IGkgPCBsZWZ0TGVuOyBpKyspIHtcbiAgICAgIGlmIChsZWZ0LmJ5dGVzW2xlZnQuYnl0ZVBvcyArIGldICE9PSByaWdodC5ieXRlc1tyaWdodC5ieXRlUG9zICsgaV0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzQml0U3RyZWFtKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYXNCeXRlU3RyZWFtKCk6IHRoaXMge1xuICAgIHRoaXMuYWxpZ24oKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFsaWduKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJpdFBvcyAhPT0gMCkge1xuICAgICAgdGhpcy5iaXRQb3MgPSAwO1xuICAgICAgdGhpcy5ieXRlUG9zKys7XG4gICAgfVxuICB9XG5cbiAgdGFpbCgpOiBSZWFkYWJsZVN0cmVhbSB7XG4gICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh0aGlzLnRhaWxCeXRlcygpLCAwLCB0aGlzLmJpdFBvcyk7XG4gIH1cblxuICB0YWlsQnl0ZXMoKTogVWludDhBcnJheSB7XG4gICAgY29uc3QgcmVzdWx0OiBVaW50OEFycmF5ID0gdGhpcy5ieXRlcy5zdWJhcnJheSh0aGlzLmJ5dGVQb3MpO1xuICAgIHRoaXMuYnl0ZVBvcyA9IHRoaXMuYnl0ZUVuZDtcbiAgICB0aGlzLmJpdFBvcyA9IDA7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGF2YWlsYWJsZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmJ5dGVFbmQgLSB0aGlzLmJ5dGVQb3M7XG4gIH1cblxuICB0YWtlKGxlbmd0aDogVWludFNpemUpOiBSZWFkYWJsZVN0cmVhbSB7XG4gICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh0aGlzLnRha2VCeXRlcyhsZW5ndGgpLCAwLCAwKTtcbiAgfVxuXG4gIHRha2VCeXRlcyhsZW5ndGg6IFVpbnRTaXplKTogVWludDhBcnJheSB7XG4gICAgY29uc3QgcmVzdWx0OiBVaW50OEFycmF5ID0gdGhpcy5ieXRlcy5zdWJhcnJheSh0aGlzLmJ5dGVQb3MsIHRoaXMuYnl0ZVBvcyArIGxlbmd0aCk7XG4gICAgdGhpcy5ieXRlUG9zICs9IGxlbmd0aDtcbiAgICB0aGlzLmJpdFBvcyA9IDA7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRTaW50OCgpOiBTaW50OCB7XG4gICAgcmV0dXJuIHRoaXMudmlldy5nZXRJbnQ4KHRoaXMuYnl0ZVBvcysrKTtcbiAgfVxuXG4gIHJlYWRTaW50MTZMRSgpOiBTaW50MTYge1xuICAgIGNvbnN0IHJlc3VsdDogU2ludDE2ID0gdGhpcy52aWV3LmdldEludDE2KHRoaXMuYnl0ZVBvcywgdHJ1ZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDI7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRTaW50MzJMRSgpOiBTaW50MzIge1xuICAgIGNvbnN0IHJlc3VsdDogU2ludDMyID0gdGhpcy52aWV3LmdldEludDMyKHRoaXMuYnl0ZVBvcywgdHJ1ZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRVaW50OCgpOiBVaW50OCB7XG4gICAgcmV0dXJuIHRoaXMudmlldy5nZXRVaW50OCh0aGlzLmJ5dGVQb3MrKyk7XG4gIH1cblxuICBwZWVrVWludDgoKTogVWludDgge1xuICAgIHJldHVybiB0aGlzLnZpZXcuZ2V0VWludDgodGhpcy5ieXRlUG9zKTtcbiAgfVxuXG4gIHJlYWRVaW50MTZCRSgpOiBVaW50MTYge1xuICAgIGNvbnN0IHJlc3VsdDogVWludDE2ID0gdGhpcy52aWV3LmdldFVpbnQxNih0aGlzLmJ5dGVQb3MsIGZhbHNlKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gMjtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVhZFVpbnQxNkxFKCk6IFVpbnQxNiB7XG4gICAgY29uc3QgcmVzdWx0OiBVaW50MTYgPSB0aGlzLnZpZXcuZ2V0VWludDE2KHRoaXMuYnl0ZVBvcywgdHJ1ZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDI7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRVaW50MzJCRSgpOiBVaW50MzIge1xuICAgIGNvbnN0IHJlc3VsdDogVWludDMyID0gdGhpcy52aWV3LmdldFVpbnQzMih0aGlzLmJ5dGVQb3MsIGZhbHNlKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gNDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVhZFVpbnQzMkxFKCk6IFVpbnQzMiB7XG4gICAgY29uc3QgcmVzdWx0OiBVaW50MzIgPSB0aGlzLnZpZXcuZ2V0VWludDMyKHRoaXMuYnl0ZVBvcywgdHJ1ZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRGbG9hdDE2QkUoKTogRmxvYXQxNiB7XG4gICAgY29uc3QgdTE2OiBVaW50MTYgPSB0aGlzLnZpZXcuZ2V0VWludDE2KHRoaXMuYnl0ZVBvcywgZmFsc2UpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSAyO1xuICAgIHJldHVybiByZWludGVycHJldFVpbnQxNkFzRmxvYXQxNih1MTYpO1xuICB9XG5cbiAgcmVhZEZsb2F0MTZMRSgpOiBGbG9hdDE2IHtcbiAgICBjb25zdCB1MTY6IFVpbnQxNiA9IHRoaXMudmlldy5nZXRVaW50MTYodGhpcy5ieXRlUG9zLCB0cnVlKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gMjtcbiAgICByZXR1cm4gcmVpbnRlcnByZXRVaW50MTZBc0Zsb2F0MTYodTE2KTtcbiAgfVxuXG4gIHJlYWRGbG9hdDMyQkUoKTogRmxvYXQzMiB7XG4gICAgY29uc3QgcmVzdWx0OiBGbG9hdDMyID0gdGhpcy52aWV3LmdldEZsb2F0MzIodGhpcy5ieXRlUG9zLCBmYWxzZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWRGbG9hdDMyTEUoKTogRmxvYXQzMiB7XG4gICAgY29uc3QgcmVzdWx0OiBGbG9hdDMyID0gdGhpcy52aWV3LmdldEZsb2F0MzIodGhpcy5ieXRlUG9zLCB0cnVlKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gNDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVhZEZsb2F0NjRCRSgpOiBGbG9hdDY0IHtcbiAgICBjb25zdCByZXN1bHQ6IEZsb2F0NjQgPSB0aGlzLnZpZXcuZ2V0RmxvYXQ2NCh0aGlzLmJ5dGVQb3MsIGZhbHNlKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gODtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVhZEZsb2F0NjRMRSgpOiBGbG9hdDY0IHtcbiAgICBjb25zdCByZXN1bHQ6IEZsb2F0NjQgPSB0aGlzLnZpZXcuZ2V0RmxvYXQ2NCh0aGlzLmJ5dGVQb3MsIHRydWUpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA4O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBza2lwKHNpemU6IFVpbnRTaXplKTogdm9pZCB7XG4gICAgdGhpcy5ieXRlUG9zICs9IHNpemU7XG4gIH1cblxuICBza2lwQml0cyhuOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJlYWRVaW50Qml0cyhuKTtcbiAgfVxuXG4gIHJlYWRCb29sQml0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkVWludEJpdHMoMSkgPiAwO1xuICB9XG5cbiAgcmVhZFNpbnQxNkJpdHMobjogbnVtYmVyKTogU2ludDE2IHtcbiAgICByZXR1cm4gdGhpcy5yZWFkSW50Qml0cyhuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTQltuXVxuICAgKi9cbiAgcmVhZFNpbnQzMkJpdHMobjogVWludFNpemUpOiBTaW50MzIge1xuICAgIHJldHVybiB0aGlzLnJlYWRJbnRCaXRzKG4pO1xuICB9XG5cbiAgcmVhZFVpbnQxNkJpdHMobjogVWludFNpemUpOiBVaW50MTYge1xuICAgIHJldHVybiB0aGlzLnJlYWRVaW50Qml0cyhuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVQltuXVxuICAgKi9cbiAgcmVhZFVpbnQzMkJpdHMobjogVWludFNpemUpOiBVaW50MzIge1xuICAgIHJldHVybiB0aGlzLnJlYWRVaW50Qml0cyhuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMRUIxMjgtZW5jb2RlZCBVaW50MzIgKDEgdG8gNSBieXRlcylcbiAgICovXG4gIHJlYWRVaW50MzJMZWIxMjgoKTogVWludDMyIHtcbiAgICBsZXQgcmVzdWx0OiBVaW50MzIgPSAwO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCA1OyBpKyspIHtcbiAgICAgIGNvbnN0IG5leHRCeXRlOiBVaW50OCA9IHRoaXMuYnl0ZXNbdGhpcy5ieXRlUG9zKytdO1xuICAgICAgaWYgKGkgPCA0KSB7XG4gICAgICAgIC8vIEJpdC1zaGlmdCBpcyBzYWZlXG4gICAgICAgIHJlc3VsdCArPSAobmV4dEJ5dGUgJiAweDdmKSA8PCAoNyAqIGkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQml0LXNoaWZ0IGlzIHVuc2FmZSwgdXNlIGAqIE1hdGgucG93YFxuICAgICAgICByZXN1bHQgKz0gKG5leHRCeXRlICYgMHgwZikgKiBNYXRoLnBvdygyLCAyOCk7XG4gICAgICB9XG4gICAgICBpZiAoKG5leHRCeXRlICYgKDEgPDwgNykpID09PSAwKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWFkVXRmOChieXRlTGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVuZE9mU3RyaW5nOiBudW1iZXIgPSB0aGlzLmJ5dGVQb3MgKyBieXRlTGVuZ3RoO1xuICAgIGlmIChlbmRPZlN0cmluZyA+IHRoaXMuYnl0ZXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBjcmVhdGVJbmNvbXBsZXRlU3RyZWFtRXJyb3IoKTtcbiAgICB9XG4gICAgY29uc3Qgc2xpY2U6IFVpbnQ4QXJyYXkgPSB0aGlzLmJ5dGVzLnN1YmFycmF5KHRoaXMuYnl0ZVBvcywgZW5kT2ZTdHJpbmcpO1xuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nID0gVVRGOF9ERUNPREVSLmRlY29kZShzbGljZSk7XG4gICAgdGhpcy5ieXRlUG9zID0gZW5kT2ZTdHJpbmc7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlYWROdWxVdGY4KCk6IHN0cmluZyB7XG4gICAgY29uc3QgZW5kT2ZTdHJpbmc6IG51bWJlciA9IHRoaXMuYnl0ZXMuaW5kZXhPZigwLCB0aGlzLmJ5dGVQb3MpO1xuICAgIGlmIChlbmRPZlN0cmluZyA8IDApIHtcbiAgICAgIHRocm93IGNyZWF0ZUluY29tcGxldGVTdHJlYW1FcnJvcigpO1xuICAgIH1cbiAgICBjb25zdCBzbGljZTogVWludDhBcnJheSA9IHRoaXMuYnl0ZXMuc3ViYXJyYXkodGhpcy5ieXRlUG9zLCBlbmRPZlN0cmluZyk7XG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmcgPSBVVEY4X0RFQ09ERVIuZGVjb2RlKHNsaWNlKTtcbiAgICB0aGlzLmJ5dGVQb3MgPSBlbmRPZlN0cmluZyArIDE7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFVpbnRCaXRzKG46IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKG4gPiAzMikge1xuICAgICAgLy8gRXZlbiBpZiB3ZSBjb3VsZCByZWFkIHVwIHRvIDUzIGJpdHMsIHdlIHJlc3RyaWN0IGl0IHRvIDMyIGJpdHMgKHdoaWNoIGlzIGFscmVhZHkgdW5zYWZlXG4gICAgICAvLyBpZiB3ZSBjb25zaWRlciB0aGF0IHRoZSBtYXggcG9zaXRpdmUgbnVtYmVyIHNhZmUgcmVnYXJkaW5nIGJpdCBvcGVyYXRpb25zIGlzIDJeMzEgLSAxKVxuICAgICAgdGhyb3cgbmV3IEluY2lkZW50KFwiQml0T3ZlcmZsb3dcIiwgXCJDYW5ub3QgcmVhZCBhYm92ZSAzMiBiaXRzIHdpdGhvdXQgb3ZlcmZsb3dcIik7XG4gICAgfVxuICAgIGxldCByZXN1bHQ6IG51bWJlciA9IDA7XG4gICAgd2hpbGUgKG4gPiAwKSB7XG4gICAgICBpZiAodGhpcy5iaXRQb3MgKyBuIDwgOCkge1xuICAgICAgICBjb25zdCBlbmRCaXRQb3M6IG51bWJlciA9IHRoaXMuYml0UG9zICsgbjtcbiAgICAgICAgY29uc3Qgc2hpZnQ6IG51bWJlciA9IDEgPDwgKGVuZEJpdFBvcyAtIHRoaXMuYml0UG9zKTtcbiAgICAgICAgY29uc3QgY3VyOiBudW1iZXIgPSAodGhpcy5ieXRlc1t0aGlzLmJ5dGVQb3NdID4+PiA4IC0gZW5kQml0UG9zKSAmIChzaGlmdCAtIDEpO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQgKiBzaGlmdCArIGN1cjtcbiAgICAgICAgbiA9IDA7XG4gICAgICAgIHRoaXMuYml0UG9zID0gZW5kQml0UG9zO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2hpZnQ6IG51bWJlciA9IDEgPDwgKDggLSB0aGlzLmJpdFBvcyk7XG4gICAgICAgIGNvbnN0IGN1cjogbnVtYmVyID0gdGhpcy5ieXRlc1t0aGlzLmJ5dGVQb3NdICYgKHNoaWZ0IC0gMSk7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIHNoaWZ0ICsgY3VyO1xuICAgICAgICBuIC09ICg4IC0gdGhpcy5iaXRQb3MpO1xuICAgICAgICB0aGlzLmJpdFBvcyA9IDA7XG4gICAgICAgIHRoaXMuYnl0ZVBvcysrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkSW50Qml0cyhuOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChuID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3QgdW5zaWduZWQ6IG51bWJlciA9IHRoaXMucmVhZFVpbnRCaXRzKG4pO1xuICAgIGlmICh1bnNpZ25lZCA8IE1hdGgucG93KDIsIG4gLSAxKSkge1xuICAgICAgcmV0dXJuIHVuc2lnbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gLU1hdGgucG93KDIsIG4pICsgdW5zaWduZWQ7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlaW50ZXJwcmV0VWludDE2QXNGbG9hdDE2KHUxNjogVWludDE2KTogRmxvYXQxNiB7XG4gIGNvbnN0IHNpZ246IC0xIHwgMSA9ICh1MTYgJiAoMSA8PCAxNSkpICE9PSAwID8gLTEgOiAxO1xuICBjb25zdCBleHBvbmVudDogU2ludDMyID0gKHUxNiAmIDB4N2MwMCkgPj4+IDEwOyAvLyAweDdjMDA6IGJpdHMgMTAgdG8gMTQgKGluY2x1c2l2ZSlcbiAgY29uc3QgZnJhY3Rpb246IEZsb2F0NjQgPSB1MTYgJiAweDAzZmY7IC8vIDB4MDNmZjogYml0cyAwIHRvIDkgKGluY2x1c2l2ZSlcbiAgaWYgKGV4cG9uZW50ID09PSAwKSB7XG4gICAgcmV0dXJuIHNpZ24gKiBNYXRoLnBvdygyLCAtMTQpICogKGZyYWN0aW9uIC8gMTAyNCk7XG4gIH0gZWxzZSBpZiAoZXhwb25lbnQgPT09IDB4MWYpIHsgLy8gMHgxZjogYml0cyAwIHRvIDQgKGluY2x1c2l2ZSlcbiAgICByZXR1cm4gZnJhY3Rpb24gPT09IDAgPyBzaWduICogSW5maW5pdHkgOiBOYU47XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHNpZ24gKiBNYXRoLnBvdygyLCBleHBvbmVudCAtIDE1KSAqICgxICsgKGZyYWN0aW9uIC8gMTAyNCkpO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 |
@@ -27,3 +27,3 @@ import { Float16, Float32, Float64, Sint16, Sint32, Sint8, Uint16, Uint32, Uint8, UintSize } from "semantic-types"; | ||
writeUtf8(value: string): void; | ||
writeNulTerminatedUtf8(value: string): void; | ||
writeNulUtf8(value: string): void; | ||
writeUint8(value: Uint8): void; | ||
@@ -86,3 +86,3 @@ writeUint16BE(value: Uint16): void; | ||
writeUtf8(value: string): void; | ||
writeNulTerminatedUtf8(value: string): void; | ||
writeNulUtf8(value: string): void; | ||
getBytes(): Uint8Array; | ||
@@ -89,0 +89,0 @@ private writeUintBits; |
@@ -160,3 +160,3 @@ "use strict"; | ||
} | ||
writeNulTerminatedUtf8(value) { | ||
writeNulUtf8(value) { | ||
this.writeBytes(UTF8_ENCODER.encode(value)); | ||
@@ -232,2 +232,2 @@ this.writeUint8(0); | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFPLFFBQVEsR0FBRyxZQUFZLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRTtRQUNyRSxRQUFRLEVBQUUsQ0FBQztLQUNaO0lBQ0QsSUFBSSxRQUFRLEtBQUssWUFBWSxFQUFFO1FBQzdCLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXO0tBQzNEO1NBQU07UUFDTCxNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUM7S0FDakU7QUFDSCxDQUFDIiwiZmlsZSI6IndyaXRhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5jaWRlbnQgfSBmcm9tIFwiaW5jaWRlbnRcIjtcbmltcG9ydCB7IEZsb2F0MTYsIEZsb2F0MzIsIEZsb2F0NjQsIFNpbnQxNiwgU2ludDMyLCBTaW50OCwgVWludDE2LCBVaW50MzIsIFVpbnQ4LCBVaW50U2l6ZSB9IGZyb20gXCJzZW1hbnRpYy10eXBlc1wiO1xuaW1wb3J0IHsgY29uY2F0Qnl0ZXMgfSBmcm9tIFwiLi9jb25jYXQtYnl0ZXNcIjtcblxuY29uc3QgVVRGOF9FTkNPREVSOiBUZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBub24tYnl0ZS1hbGlnbmVkIHN0cmVhbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdyaXRhYmxlQml0U3RyZWFtIHtcbiAgYnl0ZVBvczogVWludFNpemU7XG4gIGJpdFBvczogVWludFNpemU7XG5cbiAgYWxpZ24oKTogdm9pZDtcblxuICBhc0J5dGVTdHJlYW0oKTogV3JpdGFibGVCeXRlU3RyZWFtO1xuXG4gIHdyaXRlWmVyb3NCaXRzKG46IFVpbnRTaXplKTogdm9pZDtcblxuICB3cml0ZUJvb2xCaXRzKHZhbHVlOiBib29sZWFuKTogdm9pZDtcblxuICB3cml0ZVNpbnQxNkJpdHMobjogVWludFNpemUsIHZhbHVlOiBTaW50MTYpOiB2b2lkO1xuXG4gIHdyaXRlU2ludDMyQml0cyhuOiBVaW50U2l6ZSwgdmFsdWU6IFNpbnQzMik6IHZvaWQ7XG5cbiAgd3JpdGVVaW50MTZCaXRzKG46IFVpbnRTaXplLCB2YWx1ZTogVWludDE2KTogdm9pZDtcblxuICB3cml0ZVVpbnQzMkJpdHMobjogVWludFNpemUsIHZhbHVlOiBVaW50MzIpOiB2b2lkO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBieXRlLWFsaWduZWQgc3RyZWFtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV3JpdGFibGVCeXRlU3RyZWFtIHtcbiAgYnl0ZVBvczogVWludFNpemU7XG5cbiAgd3JpdGVaZXJvcyhzaXplOiBVaW50U2l6ZSk6IHZvaWQ7XG5cbiAgYXNCaXRTdHJlYW0oKTogV3JpdGFibGVCaXRTdHJlYW07XG5cbiAgd3JpdGUodmFsdWU6IFdyaXRhYmxlQnl0ZVN0cmVhbSk6IHZvaWQ7XG5cbiAgd3JpdGVCeXRlcyh2YWx1ZTogVWludDhBcnJheSk6IHZvaWQ7XG5cbiAgd3JpdGVVdGY4KHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuXG4gIHdyaXRlTnVsVGVybWluYXRlZFV0ZjgodmFsdWU6IHN0cmluZyk6IHZvaWQ7XG5cbiAgd3JpdGVVaW50OCh2YWx1ZTogVWludDgpOiB2b2lkO1xuXG4gIHdyaXRlVWludDE2QkUodmFsdWU6IFVpbnQxNik6IHZvaWQ7XG5cbiAgd3JpdGVVaW50MTZMRSh2YWx1ZTogVWludDE2KTogdm9pZDtcblxuICB3cml0ZVVpbnQzMkJFKHZhbHVlOiBVaW50MzIpOiB2b2lkO1xuXG4gIHdyaXRlVWludDMyTEUodmFsdWU6IFVpbnQzMik6IHZvaWQ7XG5cbiAgd3JpdGVVaW50MzJMZWIxMjgodmFsdWU6IFVpbnQzMik6IHZvaWQ7XG5cbiAgd3JpdGVTaW50OCh2YWx1ZTogU2ludDgpOiB2b2lkO1xuXG4gIHdyaXRlU2ludDE2TEUodmFsdWU6IFNpbnQxNik6IHZvaWQ7XG5cbiAgd3JpdGVTaW50MzJMRSh2YWx1ZTogU2ludDMyKTogdm9pZDtcblxuICB3cml0ZUZsb2F0MTZCRSh2YWx1ZTogRmxvYXQxNik6IHZvaWQ7XG5cbiAgd3JpdGVGbG9hdDE2TEUodmFsdWU6IEZsb2F0MTYpOiB2b2lkO1xuXG4gIHdyaXRlRmxvYXQzMkJFKHZhbHVlOiBGbG9hdDMyKTogdm9pZDtcblxuICB3cml0ZUZsb2F0MzJMRSh2YWx1ZTogRmxvYXQzMik6IHZvaWQ7XG5cbiAgd3JpdGVGbG9hdDY0QkUodmFsdWU6IEZsb2F0NjQpOiB2b2lkO1xuXG4gIHdyaXRlRmxvYXQ2NExFKHZhbHVlOiBGbG9hdDY0KTogdm9pZDtcblxuICBnZXRCeXRlcygpOiBVaW50OEFycmF5O1xufVxuXG5jb25zdCBUTVBfQlVGRkVSOiBBcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig4KTtcbmNvbnN0IFRNUF9EQVRBX1ZJRVc6IERhdGFWaWV3ID0gbmV3IERhdGFWaWV3KFRNUF9CVUZGRVIpO1xuXG5leHBvcnQgY2xhc3MgV3JpdGFibGVTdHJlYW0gaW1wbGVtZW50cyBXcml0YWJsZUJpdFN0cmVhbSwgV3JpdGFibGVCeXRlU3RyZWFtIHtcbiAgYnl0ZVBvczogVWludFNpemU7XG4gIGJpdFBvczogVWludFNpemU7XG5cbiAgcHJpdmF0ZSBjaHVua3M6IFVpbnQ4QXJyYXlbXTtcbiAgcHJpdmF0ZSBiaXRzQnVmZmVyOiBVaW50ODtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmJ5dGVQb3MgPSAwO1xuICAgIHRoaXMuYml0UG9zID0gMDtcbiAgICB0aGlzLmJpdHNCdWZmZXIgPSAwO1xuICAgIHRoaXMuY2h1bmtzID0gW107XG4gIH1cblxuICBhc0JpdFN0cmVhbSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFzQnl0ZVN0cmVhbSgpOiB0aGlzIHtcbiAgICB0aGlzLmFsaWduKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhbGlnbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iaXRQb3MgIT09IDApIHtcbiAgICAgIHRoaXMud3JpdGVVaW50OCh0aGlzLmJpdHNCdWZmZXIpOyAvLyBJbmNyZW1lbnRzIGB0aGlzLmJ5dGVQb3NgXG4gICAgICB0aGlzLmJpdFBvcyA9IDA7XG4gICAgICB0aGlzLmJpdHNCdWZmZXIgPSAwO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlKHZhbHVlOiBXcml0YWJsZUJ5dGVTdHJlYW0pOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlQnl0ZXModmFsdWUuZ2V0Qnl0ZXMoKSk7XG4gIH1cblxuICB3cml0ZUJ5dGVzKHZhbHVlOiBVaW50OEFycmF5KTogdm9pZCB7XG4gICAgdGhpcy5jaHVua3MucHVzaCh2YWx1ZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIHdyaXRlWmVyb3Moc2l6ZTogVWludFNpemUpOiB2b2lkIHtcbiAgICB0aGlzLmNodW5rcy5wdXNoKG5ldyBVaW50OEFycmF5KHNpemUpKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gc2l6ZTtcbiAgfVxuXG4gIHdyaXRlWmVyb3NCaXRzKHNpemU6IFVpbnRTaXplKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYml0UG9zICsgc2l6ZSA8IDgpIHtcbiAgICAgIHRoaXMuYml0UG9zICs9IHNpemU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy53cml0ZVVpbnQ4KHRoaXMuYml0c0J1ZmZlcik7XG4gICAgdGhpcy5iaXRzQnVmZmVyID0gMDtcbiAgICBzaXplIC09IDggLSB0aGlzLmJpdFBvcztcblxuICAgIGNvbnN0IGJpdFBvczogVWludFNpemUgPSBzaXplICUgODtcbiAgICB0aGlzLndyaXRlWmVyb3MoKHNpemUgLSBiaXRQb3MpIC8gOCk7XG4gICAgdGhpcy5iaXRQb3MgPSBiaXRQb3M7XG4gIH1cblxuICB3cml0ZVNpbnQ4KHZhbHVlOiBTaW50OCk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVVaW50OCh2YWx1ZSA8IDAgPyAoMSA8PCA4KSArIHZhbHVlIDogdmFsdWUpO1xuICB9XG5cbiAgd3JpdGVTaW50MTZMRSh2YWx1ZTogU2ludDE2KTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVVpbnQxNkxFKHZhbHVlIDwgMCA/ICgxIDw8IDE2KSArIHZhbHVlIDogdmFsdWUpO1xuICB9XG5cbiAgd3JpdGVTaW50MzJMRSh2YWx1ZTogU2ludDMyKTogdm9pZCB7XG4gICAgdGhpcy5jaHVua3MucHVzaChCdWZmZXIuZnJvbShbXG4gICAgICAodmFsdWUgPj4+IDApICYgMHhmZixcbiAgICAgICh2YWx1ZSA+Pj4gOCkgJiAweGZmLFxuICAgICAgKHZhbHVlID4+PiAxNikgJiAweGZmLFxuICAgICAgKHZhbHVlID4+PiAyNCkgJiAweGZmLFxuICAgIF0pKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gNDtcbiAgfVxuXG4gIHdyaXRlVWludDgodmFsdWU6IFVpbnQ4KTogdm9pZCB7XG4gICAgdGhpcy5jaHVua3MucHVzaChCdWZmZXIuZnJvbShbdmFsdWUgJiAweGZmXSkpO1xuICAgIHRoaXMuYnl0ZVBvcysrO1xuICB9XG5cbiAgd3JpdGVVaW50MTZCRSh2YWx1ZTogVWludDE2KTogdm9pZCB7XG4gICAgdGhpcy5jaHVua3MucHVzaChCdWZmZXIuZnJvbShbXG4gICAgICAodmFsdWUgPj4+IDgpICYgMHhmZixcbiAgICAgICh2YWx1ZSA+Pj4gMCkgJiAweGZmLFxuICAgIF0pKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gMjtcbiAgfVxuXG4gIHdyaXRlVWludDE2TEUodmFsdWU6IFVpbnQxNik6IHZvaWQge1xuICAgIHRoaXMuY2h1bmtzLnB1c2goQnVmZmVyLmZyb20oW1xuICAgICAgKHZhbHVlID4+PiAwKSAmIDB4ZmYsXG4gICAgICAodmFsdWUgPj4+IDgpICYgMHhmZixcbiAgICBdKSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDI7XG4gIH1cblxuICB3cml0ZVVpbnQzMkJFKHZhbHVlOiBVaW50MzIpOiB2b2lkIHtcbiAgICB0aGlzLmNodW5rcy5wdXNoKEJ1ZmZlci5mcm9tKFtcbiAgICAgICh2YWx1ZSA+Pj4gMjQpICYgMHhmZixcbiAgICAgICh2YWx1ZSA+Pj4gMTYpICYgMHhmZixcbiAgICAgICh2YWx1ZSA+Pj4gOCkgJiAweGZmLFxuICAgICAgKHZhbHVlID4+PiAwKSAmIDB4ZmYsXG4gICAgXSkpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA0O1xuICB9XG5cbiAgd3JpdGVVaW50MzJMRSh2YWx1ZTogVWludDMyKTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVNpbnQzMkxFKHZhbHVlIHwgMCk7XG4gIH1cblxuICB3cml0ZUZsb2F0MTZCRSh2YWx1ZTogRmxvYXQxNik6IHZvaWQge1xuICAgIHRoaXMud3JpdGVVaW50MTZCRShyZWludGVycHJldEZsb2F0MTZBc1VpbnQxNih2YWx1ZSkpO1xuICB9XG5cbiAgd3JpdGVGbG9hdDE2TEUodmFsdWU6IEZsb2F0MTYpOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlVWludDE2TEUocmVpbnRlcnByZXRGbG9hdDE2QXNVaW50MTYodmFsdWUpKTtcbiAgfVxuXG4gIHdyaXRlRmxvYXQzMkJFKHZhbHVlOiBGbG9hdDMyKTogdm9pZCB7XG4gICAgVE1QX0RBVEFfVklFVy5zZXRGbG9hdDMyKDAsIHZhbHVlLCBmYWxzZSk7XG4gICAgdGhpcy5jaHVua3MucHVzaChuZXcgVWludDhBcnJheShUTVBfQlVGRkVSLnNsaWNlKDAsIDQpKSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDQ7XG4gIH1cblxuICB3cml0ZUZsb2F0MzJMRSh2YWx1ZTogRmxvYXQzMik6IHZvaWQge1xuICAgIFRNUF9EQVRBX1ZJRVcuc2V0RmxvYXQzMigwLCB2YWx1ZSwgdHJ1ZSk7XG4gICAgdGhpcy5jaHVua3MucHVzaChuZXcgVWludDhBcnJheShUTVBfQlVGRkVSLnNsaWNlKDAsIDQpKSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDQ7XG4gIH1cblxuICB3cml0ZUZsb2F0NjRCRSh2YWx1ZTogRmxvYXQ2NCk6IHZvaWQge1xuICAgIFRNUF9EQVRBX1ZJRVcuc2V0RmxvYXQ2NCgwLCB2YWx1ZSwgZmFsc2UpO1xuICAgIHRoaXMuY2h1bmtzLnB1c2gobmV3IFVpbnQ4QXJyYXkoVE1QX0JVRkZFUi5zbGljZSgwLCA4KSkpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA4O1xuICB9XG5cbiAgd3JpdGVGbG9hdDY0TEUodmFsdWU6IEZsb2F0NjQpOiB2b2lkIHtcbiAgICBUTVBfREFUQV9WSUVXLnNldEZsb2F0NjQoMCwgdmFsdWUsIHRydWUpO1xuICAgIHRoaXMuY2h1bmtzLnB1c2gobmV3IFVpbnQ4QXJyYXkoVE1QX0JVRkZFUi5zbGljZSgwLCA4KSkpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA4O1xuICB9XG5cbiAgd3JpdGVCb29sQml0cyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLndyaXRlVWludEJpdHMoMSwgdmFsdWUgPyAxIDogMCk7XG4gIH1cblxuICB3cml0ZVNpbnQxNkJpdHMobjogbnVtYmVyLCB2YWx1ZTogU2ludDE2KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMud3JpdGVTaW50Qml0cyhuLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogU0Jbbl1cbiAgICovXG4gIHdyaXRlU2ludDMyQml0cyhuOiBVaW50U2l6ZSwgdmFsdWU6IFNpbnQzMik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLndyaXRlU2ludEJpdHMobiwgdmFsdWUpO1xuICB9XG5cbiAgd3JpdGVVaW50MTZCaXRzKG46IFVpbnRTaXplLCB2YWx1ZTogVWludDE2KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMud3JpdGVVaW50Qml0cyhuLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVUJbbl1cbiAgICovXG4gIHdyaXRlVWludDMyQml0cyhuOiBVaW50U2l6ZSwgdmFsdWU6IFVpbnQzMik6IHZvaWQge1xuICAgIHRoaXMud3JpdGVVaW50Qml0cyhuLCB2YWx1ZSk7XG4gIH1cblxuICB3cml0ZVVpbnQzMkxlYjEyOCh2YWx1ZTogVWludDMyKTogdm9pZCB7XG4gICAgY29uc3QgY2h1bms6IFVpbnQ4W10gPSBbXTtcbiAgICB3aGlsZSAodmFsdWUgIT09IDAgfHwgY2h1bmsubGVuZ3RoID09PSAwKSB7XG4gICAgICBsZXQgbmV4dEJ5dGU6IFVpbnQ4ID0gdmFsdWUgJSAweDgwOyAvLyB2YWx1ZSAmIDB4N2ZcbiAgICAgIHZhbHVlID0gKHZhbHVlIC0gbmV4dEJ5dGUpIC8gMHg4MDsgLy8gdmFsdWUgPj4gN1xuICAgICAgaWYgKHZhbHVlICE9PSAwKSB7XG4gICAgICAgIG5leHRCeXRlIHw9IDB4ODA7XG4gICAgICB9XG4gICAgICBjaHVuay5wdXNoKG5leHRCeXRlKTtcbiAgICB9XG4gICAgdGhpcy5jaHVua3MucHVzaChuZXcgVWludDhBcnJheShjaHVuaykpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSBjaHVuay5sZW5ndGg7XG4gIH1cblxuICB3cml0ZVV0ZjgodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVCeXRlcyhVVEY4X0VOQ09ERVIuZW5jb2RlKHZhbHVlKSk7XG4gIH1cblxuICB3cml0ZU51bFRlcm1pbmF0ZWRVdGY4KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlQnl0ZXMoVVRGOF9FTkNPREVSLmVuY29kZSh2YWx1ZSkpO1xuICAgIHRoaXMud3JpdGVVaW50OCgwKTtcbiAgfVxuXG4gIGdldEJ5dGVzKCk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IGJ5dGVzOiBVaW50OEFycmF5ID0gY29uY2F0Qnl0ZXModGhpcy5jaHVua3MpO1xuICAgIHRoaXMuY2h1bmtzID0gW2J5dGVzXTtcbiAgICByZXR1cm4gYnl0ZXM7XG4gIH1cblxuICBwcml2YXRlIHdyaXRlVWludEJpdHMoYml0czogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGJpdHMgPiAzMikge1xuICAgICAgLy8gRXZlbiBpZiB3ZSBjb3VsZCByZWFkIHVwIHRvIDUzIGJpdHMsIHdlIHJlc3RyaWN0IGl0IHRvIDMyIGJpdHMgKHdoaWNoIGlzIGFscmVhZHkgdW5zYWZlXG4gICAgICAvLyBpZiB3ZSBjb25zaWRlciB0aGF0IHRoZSBtYXggcG9zaXRpdmUgbnVtYmVyIHNhZmUgcmVnYXJkaW5nIGJpdCBvcGVyYXRpb25zIGlzIDJeMzEgLSAxKVxuICAgICAgdGhyb3cgbmV3IEluY2lkZW50KFwiQml0T3ZlcmZsb3dcIiwgXCJDYW5ub3QgcmVhZCBhYm92ZSAzMiBiaXRzIHdpdGhvdXQgb3ZlcmZsb3dcIik7XG4gICAgfVxuICAgIHdoaWxlIChiaXRzID4gMCkge1xuICAgICAgY29uc3QgYXZhaWxhYmxlQml0czogbnVtYmVyID0gOCAtIHRoaXMuYml0UG9zO1xuXG4gICAgICBjb25zdCBjb25zdW1lZEJpdHM6IG51bWJlciA9IE1hdGgubWluKGF2YWlsYWJsZUJpdHMsIGJpdHMpO1xuICAgICAgY29uc3QgY2h1bms6IG51bWJlciA9ICh2YWx1ZSA+Pj4gKGJpdHMgLSBjb25zdW1lZEJpdHMpKSAmICgoMSA8PCBjb25zdW1lZEJpdHMpIC0gMSk7XG4gICAgICB0aGlzLmJpdHNCdWZmZXIgPSB0aGlzLmJpdHNCdWZmZXIgfCAoY2h1bmsgPDwgKGF2YWlsYWJsZUJpdHMgLSBjb25zdW1lZEJpdHMpKTtcbiAgICAgIGJpdHMgLT0gY29uc3VtZWRCaXRzO1xuICAgICAgdGhpcy5iaXRQb3MgKz0gY29uc3VtZWRCaXRzO1xuICAgICAgaWYgKHRoaXMuYml0UG9zID09PSA4KSB7XG4gICAgICAgIHRoaXMud3JpdGVVaW50OCh0aGlzLmJpdHNCdWZmZXIpO1xuICAgICAgICB0aGlzLmJpdHNCdWZmZXIgPSAwO1xuICAgICAgICB0aGlzLmJpdFBvcyA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZVNpbnRCaXRzKGJpdHM6IG51bWJlciwgdmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgIHRoaXMud3JpdGVVaW50Qml0cyhiaXRzLCAyICoqIGJpdHMgKyB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud3JpdGVVaW50Qml0cyhiaXRzLCB2YWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRmxvYXQxNjpcbiAqIDEgc2lnbiBiaXQgKFMpXG4gKiA1IGV4cG9uZW50IGJpdHMgKEUpXG4gKiAxMCBmcmFjdGlvbiBiaXRzIChGKVxuICpcbiAqIEZvcm1hdDogU0VFRUVFRkZGRkZGRkZGRlxuICovXG5mdW5jdGlvbiByZWludGVycHJldEZsb2F0MTZBc1VpbnQxNih2YWx1ZTogRmxvYXQxNik6IFVpbnQxNiB7XG4gIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICByZXR1cm4gMHhmZmZmO1xuICB9XG4gIGNvbnN0IHNpZ25CaXQ6IDAgfCAxID0gKHZhbHVlIDwgMCB8fCBPYmplY3QuaXModmFsdWUsIC0wKSkgPyAxIDogMDtcbiAgdmFsdWUgPSBNYXRoLmFicyh2YWx1ZSk7XG4gIGlmICh2YWx1ZSA8IE1hdGgucG93KDIsIC0xNCkpIHtcbiAgICBjb25zdCBmcmFjdGlvbjogVWludDE2ID0gTWF0aC5mbG9vcih2YWx1ZSAvIE1hdGgucG93KDIsIC0yNCkpO1xuICAgIHJldHVybiAoc2lnbkJpdCA8PCAxNSkgfCAoZnJhY3Rpb24gJiAweDAzZmYpO1xuICB9XG4gIGNvbnN0IE1BWF9FWFBPTkVOVDogbnVtYmVyID0gMHgxZjtcbiAgbGV0IGV4cG9uZW50OiBudW1iZXIgPSAxO1xuICB3aGlsZSAoZXhwb25lbnQgPCBNQVhfRVhQT05FTlQgJiYgdmFsdWUgPj0gTWF0aC5wb3coMiwgZXhwb25lbnQgLSAxNCkpIHtcbiAgICBleHBvbmVudCsrO1xuICB9XG4gIGlmIChleHBvbmVudCA9PT0gTUFYX0VYUE9ORU5UKSB7XG4gICAgcmV0dXJuIChzaWduQml0IDw8IDE1KSB8IChNQVhfRVhQT05FTlQgPDwgMTApOyAvLyBJbmZpbml0eVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGZyYWN0aW9uOiBudW1iZXIgPSBNYXRoLmZsb29yKCh2YWx1ZSAtIE1hdGgucG93KDIsIGV4cG9uZW50IC0gMTUpKSAvIE1hdGgucG93KDIsIGV4cG9uZW50IC0gMjUpKTtcbiAgICByZXR1cm4gKHNpZ25CaXQgPDwgMTUpIHwgKGV4cG9uZW50IDw8IDEwKSB8IChmcmFjdGlvbiAmIDB4MDNmZik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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TyxRQUFRLEdBQUcsWUFBWSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUU7UUFDckUsUUFBUSxFQUFFLENBQUM7S0FDWjtJQUNELElBQUksUUFBUSxLQUFLLFlBQVksRUFBRTtRQUM3QixPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVztLQUMzRDtTQUFNO1FBQ0wsTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0tBQ2pFO0FBQ0gsQ0FBQyIsImZpbGUiOiJ3cml0YWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluY2lkZW50IH0gZnJvbSBcImluY2lkZW50XCI7XG5pbXBvcnQgeyBGbG9hdDE2LCBGbG9hdDMyLCBGbG9hdDY0LCBTaW50MTYsIFNpbnQzMiwgU2ludDgsIFVpbnQxNiwgVWludDMyLCBVaW50OCwgVWludFNpemUgfSBmcm9tIFwic2VtYW50aWMtdHlwZXNcIjtcbmltcG9ydCB7IGNvbmNhdEJ5dGVzIH0gZnJvbSBcIi4vY29uY2F0LWJ5dGVzXCI7XG5cbmNvbnN0IFVURjhfRU5DT0RFUjogVGV4dEVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbm9uLWJ5dGUtYWxpZ25lZCBzdHJlYW1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXcml0YWJsZUJpdFN0cmVhbSB7XG4gIGJ5dGVQb3M6IFVpbnRTaXplO1xuICBiaXRQb3M6IFVpbnRTaXplO1xuXG4gIGFsaWduKCk6IHZvaWQ7XG5cbiAgYXNCeXRlU3RyZWFtKCk6IFdyaXRhYmxlQnl0ZVN0cmVhbTtcblxuICB3cml0ZVplcm9zQml0cyhuOiBVaW50U2l6ZSk6IHZvaWQ7XG5cbiAgd3JpdGVCb29sQml0cyh2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG5cbiAgd3JpdGVTaW50MTZCaXRzKG46IFVpbnRTaXplLCB2YWx1ZTogU2ludDE2KTogdm9pZDtcblxuICB3cml0ZVNpbnQzMkJpdHMobjogVWludFNpemUsIHZhbHVlOiBTaW50MzIpOiB2b2lkO1xuXG4gIHdyaXRlVWludDE2Qml0cyhuOiBVaW50U2l6ZSwgdmFsdWU6IFVpbnQxNik6IHZvaWQ7XG5cbiAgd3JpdGVVaW50MzJCaXRzKG46IFVpbnRTaXplLCB2YWx1ZTogVWludDMyKTogdm9pZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgYnl0ZS1hbGlnbmVkIHN0cmVhbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdyaXRhYmxlQnl0ZVN0cmVhbSB7XG4gIGJ5dGVQb3M6IFVpbnRTaXplO1xuXG4gIHdyaXRlWmVyb3Moc2l6ZTogVWludFNpemUpOiB2b2lkO1xuXG4gIGFzQml0U3RyZWFtKCk6IFdyaXRhYmxlQml0U3RyZWFtO1xuXG4gIHdyaXRlKHZhbHVlOiBXcml0YWJsZUJ5dGVTdHJlYW0pOiB2b2lkO1xuXG4gIHdyaXRlQnl0ZXModmFsdWU6IFVpbnQ4QXJyYXkpOiB2b2lkO1xuXG4gIHdyaXRlVXRmOCh2YWx1ZTogc3RyaW5nKTogdm9pZDtcblxuICB3cml0ZU51bFV0ZjgodmFsdWU6IHN0cmluZyk6IHZvaWQ7XG5cbiAgd3JpdGVVaW50OCh2YWx1ZTogVWludDgpOiB2b2lkO1xuXG4gIHdyaXRlVWludDE2QkUodmFsdWU6IFVpbnQxNik6IHZvaWQ7XG5cbiAgd3JpdGVVaW50MTZMRSh2YWx1ZTogVWludDE2KTogdm9pZDtcblxuICB3cml0ZVVpbnQzMkJFKHZhbHVlOiBVaW50MzIpOiB2b2lkO1xuXG4gIHdyaXRlVWludDMyTEUodmFsdWU6IFVpbnQzMik6IHZvaWQ7XG5cbiAgd3JpdGVVaW50MzJMZWIxMjgodmFsdWU6IFVpbnQzMik6IHZvaWQ7XG5cbiAgd3JpdGVTaW50OCh2YWx1ZTogU2ludDgpOiB2b2lkO1xuXG4gIHdyaXRlU2ludDE2TEUodmFsdWU6IFNpbnQxNik6IHZvaWQ7XG5cbiAgd3JpdGVTaW50MzJMRSh2YWx1ZTogU2ludDMyKTogdm9pZDtcblxuICB3cml0ZUZsb2F0MTZCRSh2YWx1ZTogRmxvYXQxNik6IHZvaWQ7XG5cbiAgd3JpdGVGbG9hdDE2TEUodmFsdWU6IEZsb2F0MTYpOiB2b2lkO1xuXG4gIHdyaXRlRmxvYXQzMkJFKHZhbHVlOiBGbG9hdDMyKTogdm9pZDtcblxuICB3cml0ZUZsb2F0MzJMRSh2YWx1ZTogRmxvYXQzMik6IHZvaWQ7XG5cbiAgd3JpdGVGbG9hdDY0QkUodmFsdWU6IEZsb2F0NjQpOiB2b2lkO1xuXG4gIHdyaXRlRmxvYXQ2NExFKHZhbHVlOiBGbG9hdDY0KTogdm9pZDtcblxuICBnZXRCeXRlcygpOiBVaW50OEFycmF5O1xufVxuXG5jb25zdCBUTVBfQlVGRkVSOiBBcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig4KTtcbmNvbnN0IFRNUF9EQVRBX1ZJRVc6IERhdGFWaWV3ID0gbmV3IERhdGFWaWV3KFRNUF9CVUZGRVIpO1xuXG5leHBvcnQgY2xhc3MgV3JpdGFibGVTdHJlYW0gaW1wbGVtZW50cyBXcml0YWJsZUJpdFN0cmVhbSwgV3JpdGFibGVCeXRlU3RyZWFtIHtcbiAgYnl0ZVBvczogVWludFNpemU7XG4gIGJpdFBvczogVWludFNpemU7XG5cbiAgcHJpdmF0ZSBjaHVua3M6IFVpbnQ4QXJyYXlbXTtcbiAgcHJpdmF0ZSBiaXRzQnVmZmVyOiBVaW50ODtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmJ5dGVQb3MgPSAwO1xuICAgIHRoaXMuYml0UG9zID0gMDtcbiAgICB0aGlzLmJpdHNCdWZmZXIgPSAwO1xuICAgIHRoaXMuY2h1bmtzID0gW107XG4gIH1cblxuICBhc0JpdFN0cmVhbSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFzQnl0ZVN0cmVhbSgpOiB0aGlzIHtcbiAgICB0aGlzLmFsaWduKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhbGlnbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iaXRQb3MgIT09IDApIHtcbiAgICAgIHRoaXMud3JpdGVVaW50OCh0aGlzLmJpdHNCdWZmZXIpOyAvLyBJbmNyZW1lbnRzIGB0aGlzLmJ5dGVQb3NgXG4gICAgICB0aGlzLmJpdFBvcyA9IDA7XG4gICAgICB0aGlzLmJpdHNCdWZmZXIgPSAwO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlKHZhbHVlOiBXcml0YWJsZUJ5dGVTdHJlYW0pOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlQnl0ZXModmFsdWUuZ2V0Qnl0ZXMoKSk7XG4gIH1cblxuICB3cml0ZUJ5dGVzKHZhbHVlOiBVaW50OEFycmF5KTogdm9pZCB7XG4gICAgdGhpcy5jaHVua3MucHVzaCh2YWx1ZSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIHdyaXRlWmVyb3Moc2l6ZTogVWludFNpemUpOiB2b2lkIHtcbiAgICB0aGlzLmNodW5rcy5wdXNoKG5ldyBVaW50OEFycmF5KHNpemUpKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gc2l6ZTtcbiAgfVxuXG4gIHdyaXRlWmVyb3NCaXRzKHNpemU6IFVpbnRTaXplKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYml0UG9zICsgc2l6ZSA8IDgpIHtcbiAgICAgIHRoaXMuYml0UG9zICs9IHNpemU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy53cml0ZVVpbnQ4KHRoaXMuYml0c0J1ZmZlcik7XG4gICAgdGhpcy5iaXRzQnVmZmVyID0gMDtcbiAgICBzaXplIC09IDggLSB0aGlzLmJpdFBvcztcblxuICAgIGNvbnN0IGJpdFBvczogVWludFNpemUgPSBzaXplICUgODtcbiAgICB0aGlzLndyaXRlWmVyb3MoKHNpemUgLSBiaXRQb3MpIC8gOCk7XG4gICAgdGhpcy5iaXRQb3MgPSBiaXRQb3M7XG4gIH1cblxuICB3cml0ZVNpbnQ4KHZhbHVlOiBTaW50OCk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVVaW50OCh2YWx1ZSA8IDAgPyAoMSA8PCA4KSArIHZhbHVlIDogdmFsdWUpO1xuICB9XG5cbiAgd3JpdGVTaW50MTZMRSh2YWx1ZTogU2ludDE2KTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVVpbnQxNkxFKHZhbHVlIDwgMCA/ICgxIDw8IDE2KSArIHZhbHVlIDogdmFsdWUpO1xuICB9XG5cbiAgd3JpdGVTaW50MzJMRSh2YWx1ZTogU2ludDMyKTogdm9pZCB7XG4gICAgdGhpcy5jaHVua3MucHVzaChCdWZmZXIuZnJvbShbXG4gICAgICAodmFsdWUgPj4+IDApICYgMHhmZixcbiAgICAgICh2YWx1ZSA+Pj4gOCkgJiAweGZmLFxuICAgICAgKHZhbHVlID4+PiAxNikgJiAweGZmLFxuICAgICAgKHZhbHVlID4+PiAyNCkgJiAweGZmLFxuICAgIF0pKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gNDtcbiAgfVxuXG4gIHdyaXRlVWludDgodmFsdWU6IFVpbnQ4KTogdm9pZCB7XG4gICAgdGhpcy5jaHVua3MucHVzaChCdWZmZXIuZnJvbShbdmFsdWUgJiAweGZmXSkpO1xuICAgIHRoaXMuYnl0ZVBvcysrO1xuICB9XG5cbiAgd3JpdGVVaW50MTZCRSh2YWx1ZTogVWludDE2KTogdm9pZCB7XG4gICAgdGhpcy5jaHVua3MucHVzaChCdWZmZXIuZnJvbShbXG4gICAgICAodmFsdWUgPj4+IDgpICYgMHhmZixcbiAgICAgICh2YWx1ZSA+Pj4gMCkgJiAweGZmLFxuICAgIF0pKTtcbiAgICB0aGlzLmJ5dGVQb3MgKz0gMjtcbiAgfVxuXG4gIHdyaXRlVWludDE2TEUodmFsdWU6IFVpbnQxNik6IHZvaWQge1xuICAgIHRoaXMuY2h1bmtzLnB1c2goQnVmZmVyLmZyb20oW1xuICAgICAgKHZhbHVlID4+PiAwKSAmIDB4ZmYsXG4gICAgICAodmFsdWUgPj4+IDgpICYgMHhmZixcbiAgICBdKSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDI7XG4gIH1cblxuICB3cml0ZVVpbnQzMkJFKHZhbHVlOiBVaW50MzIpOiB2b2lkIHtcbiAgICB0aGlzLmNodW5rcy5wdXNoKEJ1ZmZlci5mcm9tKFtcbiAgICAgICh2YWx1ZSA+Pj4gMjQpICYgMHhmZixcbiAgICAgICh2YWx1ZSA+Pj4gMTYpICYgMHhmZixcbiAgICAgICh2YWx1ZSA+Pj4gOCkgJiAweGZmLFxuICAgICAgKHZhbHVlID4+PiAwKSAmIDB4ZmYsXG4gICAgXSkpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA0O1xuICB9XG5cbiAgd3JpdGVVaW50MzJMRSh2YWx1ZTogVWludDMyKTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVNpbnQzMkxFKHZhbHVlIHwgMCk7XG4gIH1cblxuICB3cml0ZUZsb2F0MTZCRSh2YWx1ZTogRmxvYXQxNik6IHZvaWQge1xuICAgIHRoaXMud3JpdGVVaW50MTZCRShyZWludGVycHJldEZsb2F0MTZBc1VpbnQxNih2YWx1ZSkpO1xuICB9XG5cbiAgd3JpdGVGbG9hdDE2TEUodmFsdWU6IEZsb2F0MTYpOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlVWludDE2TEUocmVpbnRlcnByZXRGbG9hdDE2QXNVaW50MTYodmFsdWUpKTtcbiAgfVxuXG4gIHdyaXRlRmxvYXQzMkJFKHZhbHVlOiBGbG9hdDMyKTogdm9pZCB7XG4gICAgVE1QX0RBVEFfVklFVy5zZXRGbG9hdDMyKDAsIHZhbHVlLCBmYWxzZSk7XG4gICAgdGhpcy5jaHVua3MucHVzaChuZXcgVWludDhBcnJheShUTVBfQlVGRkVSLnNsaWNlKDAsIDQpKSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDQ7XG4gIH1cblxuICB3cml0ZUZsb2F0MzJMRSh2YWx1ZTogRmxvYXQzMik6IHZvaWQge1xuICAgIFRNUF9EQVRBX1ZJRVcuc2V0RmxvYXQzMigwLCB2YWx1ZSwgdHJ1ZSk7XG4gICAgdGhpcy5jaHVua3MucHVzaChuZXcgVWludDhBcnJheShUTVBfQlVGRkVSLnNsaWNlKDAsIDQpKSk7XG4gICAgdGhpcy5ieXRlUG9zICs9IDQ7XG4gIH1cblxuICB3cml0ZUZsb2F0NjRCRSh2YWx1ZTogRmxvYXQ2NCk6IHZvaWQge1xuICAgIFRNUF9EQVRBX1ZJRVcuc2V0RmxvYXQ2NCgwLCB2YWx1ZSwgZmFsc2UpO1xuICAgIHRoaXMuY2h1bmtzLnB1c2gobmV3IFVpbnQ4QXJyYXkoVE1QX0JVRkZFUi5zbGljZSgwLCA4KSkpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA4O1xuICB9XG5cbiAgd3JpdGVGbG9hdDY0TEUodmFsdWU6IEZsb2F0NjQpOiB2b2lkIHtcbiAgICBUTVBfREFUQV9WSUVXLnNldEZsb2F0NjQoMCwgdmFsdWUsIHRydWUpO1xuICAgIHRoaXMuY2h1bmtzLnB1c2gobmV3IFVpbnQ4QXJyYXkoVE1QX0JVRkZFUi5zbGljZSgwLCA4KSkpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSA4O1xuICB9XG5cbiAgd3JpdGVCb29sQml0cyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLndyaXRlVWludEJpdHMoMSwgdmFsdWUgPyAxIDogMCk7XG4gIH1cblxuICB3cml0ZVNpbnQxNkJpdHMobjogbnVtYmVyLCB2YWx1ZTogU2ludDE2KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMud3JpdGVTaW50Qml0cyhuLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogU0Jbbl1cbiAgICovXG4gIHdyaXRlU2ludDMyQml0cyhuOiBVaW50U2l6ZSwgdmFsdWU6IFNpbnQzMik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLndyaXRlU2ludEJpdHMobiwgdmFsdWUpO1xuICB9XG5cbiAgd3JpdGVVaW50MTZCaXRzKG46IFVpbnRTaXplLCB2YWx1ZTogVWludDE2KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMud3JpdGVVaW50Qml0cyhuLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVUJbbl1cbiAgICovXG4gIHdyaXRlVWludDMyQml0cyhuOiBVaW50U2l6ZSwgdmFsdWU6IFVpbnQzMik6IHZvaWQge1xuICAgIHRoaXMud3JpdGVVaW50Qml0cyhuLCB2YWx1ZSk7XG4gIH1cblxuICB3cml0ZVVpbnQzMkxlYjEyOCh2YWx1ZTogVWludDMyKTogdm9pZCB7XG4gICAgY29uc3QgY2h1bms6IFVpbnQ4W10gPSBbXTtcbiAgICB3aGlsZSAodmFsdWUgIT09IDAgfHwgY2h1bmsubGVuZ3RoID09PSAwKSB7XG4gICAgICBsZXQgbmV4dEJ5dGU6IFVpbnQ4ID0gdmFsdWUgJSAweDgwOyAvLyB2YWx1ZSAmIDB4N2ZcbiAgICAgIHZhbHVlID0gKHZhbHVlIC0gbmV4dEJ5dGUpIC8gMHg4MDsgLy8gdmFsdWUgPj4gN1xuICAgICAgaWYgKHZhbHVlICE9PSAwKSB7XG4gICAgICAgIG5leHRCeXRlIHw9IDB4ODA7XG4gICAgICB9XG4gICAgICBjaHVuay5wdXNoKG5leHRCeXRlKTtcbiAgICB9XG4gICAgdGhpcy5jaHVua3MucHVzaChuZXcgVWludDhBcnJheShjaHVuaykpO1xuICAgIHRoaXMuYnl0ZVBvcyArPSBjaHVuay5sZW5ndGg7XG4gIH1cblxuICB3cml0ZVV0ZjgodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVCeXRlcyhVVEY4X0VOQ09ERVIuZW5jb2RlKHZhbHVlKSk7XG4gIH1cblxuICB3cml0ZU51bFV0ZjgodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVCeXRlcyhVVEY4X0VOQ09ERVIuZW5jb2RlKHZhbHVlKSk7XG4gICAgdGhpcy53cml0ZVVpbnQ4KDApO1xuICB9XG5cbiAgZ2V0Qnl0ZXMoKTogVWludDhBcnJheSB7XG4gICAgY29uc3QgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBjb25jYXRCeXRlcyh0aGlzLmNodW5rcyk7XG4gICAgdGhpcy5jaHVua3MgPSBbYnl0ZXNdO1xuICAgIHJldHVybiBieXRlcztcbiAgfVxuXG4gIHByaXZhdGUgd3JpdGVVaW50Qml0cyhiaXRzOiBudW1iZXIsIHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoYml0cyA+IDMyKSB7XG4gICAgICAvLyBFdmVuIGlmIHdlIGNvdWxkIHJlYWQgdXAgdG8gNTMgYml0cywgd2UgcmVzdHJpY3QgaXQgdG8gMzIgYml0cyAod2hpY2ggaXMgYWxyZWFkeSB1bnNhZmVcbiAgICAgIC8vIGlmIHdlIGNvbnNpZGVyIHRoYXQgdGhlIG1heCBwb3NpdGl2ZSBudW1iZXIgc2FmZSByZWdhcmRpbmcgYml0IG9wZXJhdGlvbnMgaXMgMl4zMSAtIDEpXG4gICAgICB0aHJvdyBuZXcgSW5jaWRlbnQoXCJCaXRPdmVyZmxvd1wiLCBcIkNhbm5vdCByZWFkIGFib3ZlIDMyIGJpdHMgd2l0aG91dCBvdmVyZmxvd1wiKTtcbiAgICB9XG4gICAgd2hpbGUgKGJpdHMgPiAwKSB7XG4gICAgICBjb25zdCBhdmFpbGFibGVCaXRzOiBudW1iZXIgPSA4IC0gdGhpcy5iaXRQb3M7XG5cbiAgICAgIGNvbnN0IGNvbnN1bWVkQml0czogbnVtYmVyID0gTWF0aC5taW4oYXZhaWxhYmxlQml0cywgYml0cyk7XG4gICAgICBjb25zdCBjaHVuazogbnVtYmVyID0gKHZhbHVlID4+PiAoYml0cyAtIGNvbnN1bWVkQml0cykpICYgKCgxIDw8IGNvbnN1bWVkQml0cykgLSAxKTtcbiAgICAgIHRoaXMuYml0c0J1ZmZlciA9IHRoaXMuYml0c0J1ZmZlciB8IChjaHVuayA8PCAoYXZhaWxhYmxlQml0cyAtIGNvbnN1bWVkQml0cykpO1xuICAgICAgYml0cyAtPSBjb25zdW1lZEJpdHM7XG4gICAgICB0aGlzLmJpdFBvcyArPSBjb25zdW1lZEJpdHM7XG4gICAgICBpZiAodGhpcy5iaXRQb3MgPT09IDgpIHtcbiAgICAgICAgdGhpcy53cml0ZVVpbnQ4KHRoaXMuYml0c0J1ZmZlcik7XG4gICAgICAgIHRoaXMuYml0c0J1ZmZlciA9IDA7XG4gICAgICAgIHRoaXMuYml0UG9zID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHdyaXRlU2ludEJpdHMoYml0czogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgdGhpcy53cml0ZVVpbnRCaXRzKGJpdHMsIDIgKiogYml0cyArIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53cml0ZVVpbnRCaXRzKGJpdHMsIHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBGbG9hdDE2OlxuICogMSBzaWduIGJpdCAoUylcbiAqIDUgZXhwb25lbnQgYml0cyAoRSlcbiAqIDEwIGZyYWN0aW9uIGJpdHMgKEYpXG4gKlxuICogRm9ybWF0OiBTRUVFRUVGRkZGRkZGRkZGXG4gKi9cbmZ1bmN0aW9uIHJlaW50ZXJwcmV0RmxvYXQxNkFzVWludDE2KHZhbHVlOiBGbG9hdDE2KTogVWludDE2IHtcbiAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgIHJldHVybiAweGZmZmY7XG4gIH1cbiAgY29uc3Qgc2lnbkJpdDogMCB8IDEgPSAodmFsdWUgPCAwIHx8IE9iamVjdC5pcyh2YWx1ZSwgLTApKSA/IDEgOiAwO1xuICB2YWx1ZSA9IE1hdGguYWJzKHZhbHVlKTtcbiAgaWYgKHZhbHVlIDwgTWF0aC5wb3coMiwgLTE0KSkge1xuICAgIGNvbnN0IGZyYWN0aW9uOiBVaW50MTYgPSBNYXRoLmZsb29yKHZhbHVlIC8gTWF0aC5wb3coMiwgLTI0KSk7XG4gICAgcmV0dXJuIChzaWduQml0IDw8IDE1KSB8IChmcmFjdGlvbiAmIDB4MDNmZik7XG4gIH1cbiAgY29uc3QgTUFYX0VYUE9ORU5UOiBudW1iZXIgPSAweDFmO1xuICBsZXQgZXhwb25lbnQ6IG51bWJlciA9IDE7XG4gIHdoaWxlIChleHBvbmVudCA8IE1BWF9FWFBPTkVOVCAmJiB2YWx1ZSA+PSBNYXRoLnBvdygyLCBleHBvbmVudCAtIDE0KSkge1xuICAgIGV4cG9uZW50Kys7XG4gIH1cbiAgaWYgKGV4cG9uZW50ID09PSBNQVhfRVhQT05FTlQpIHtcbiAgICByZXR1cm4gKHNpZ25CaXQgPDwgMTUpIHwgKE1BWF9FWFBPTkVOVCA8PCAxMCk7IC8vIEluZmluaXR5XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZnJhY3Rpb246IG51bWJlciA9IE1hdGguZmxvb3IoKHZhbHVlIC0gTWF0aC5wb3coMiwgZXhwb25lbnQgLSAxNSkpIC8gTWF0aC5wb3coMiwgZXhwb25lbnQgLSAyNSkpO1xuICAgIHJldHVybiAoc2lnbkJpdCA8PCAxNSkgfCAoZXhwb25lbnQgPDwgMTApIHwgKGZyYWN0aW9uICYgMHgwM2ZmKTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
164137