You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@apple/app-store-server-library

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@apple/app-store-server-library - npm Package Compare versions

Comparing version

to
1.2.0

dist/models/ConsumptionRequestReason.d.ts

4

CHANGELOG.md
# Changelog
## Version 1.2.0
- Incorporate changes for App Store Server API v1.11 and App Store Server Notifications v2.11 [https://github.com/apple/app-store-server-library-node/pull/132]
- Various documentation and quality of life improvements, including contributions from @yidinghan
## Version 1.1.0

@@ -4,0 +8,0 @@ - Support App Store Server Notifications v2.10 [https://github.com/apple/app-store-server-library-node/pull/107]

@@ -79,2 +79,3 @@ /// <reference types="node" />

private static SANDBOX_URL;
private static LOCAL_TESTING_URL;
private static USER_AGENT;

@@ -166,3 +167,3 @@ private issuerId;

* @throws APIException If a response was returned indicating the request could not be processed
* {@link https://developer.apple.com/documentation/appstoreserverapi/get_notification_histor Get Notification History}
* {@link https://developer.apple.com/documentation/appstoreserverapi/get_notification_history Get Notification History}
*/

@@ -463,5 +464,13 @@ getNotificationHistory(paginationToken: string | null, notificationHistoryRequest: NotificationHistoryRequest): Promise<NotificationHistoryResponse>;

* {@link https://developer.apple.com/documentation/appstoreserverapi/invalidtransactionnotconsumableerror InvalidTransactionNotConsumableError}
*
* @deprecated
*/
INVALID_TRANSACTION_NOT_CONSUMABLE = 4000043,
/**
* An error that indicates the transaction identifier represents an unsupported in-app purchase type.
*
* {@link https://developer.apple.com/documentation/appstoreserverapi/invalidtransactiontypenotsupportederror InvalidTransactionTypeNotSupportedError}
*/
INVALID_TRANSACTION_TYPE_NOT_SUPPORTED = 4000047,
/**
* An error that indicates the subscription doesn't qualify for a renewal-date extension due to its subscription state.

@@ -468,0 +477,0 @@ *

@@ -46,2 +46,3 @@ /// <reference types="node" />

* Verifies and decodes a signedTransaction obtained from the App Store Server API, an App Store Server Notification, or from a device
* See {@link https://developer.apple.com/documentation/appstoreserverapi/jwstransaction JWSTransaction}
*

@@ -55,2 +56,3 @@ * @param signedTransaction The signedTransaction field

* Verifies and decodes a signedRenewalInfo obtained from the App Store Server API, an App Store Server Notification, or from a device
* See {@link https://developer.apple.com/documentation/appstoreserverapi/jwsrenewalinfo JWSRenewalInfo}
*

@@ -64,2 +66,3 @@ * @param signedRenewalInfo The signedRenewalInfo field

* Verifies and decodes an App Store Server Notification signedPayload
* See {@link https://developer.apple.com/documentation/appstoreservernotifications/signedpayload signedPayload}
*

@@ -74,2 +77,4 @@ * @param signedPayload The payload received by your server

* Verifies and decodes a signed AppTransaction
* See {@link https://developer.apple.com/documentation/storekit/apptransaction AppTransaction}
*
* @param signedAppTransaction The signed AppTransaction

@@ -76,0 +81,0 @@ * @returns The decoded AppTransaction after validation

@@ -56,2 +56,3 @@ "use strict";

* Verifies and decodes a signedTransaction obtained from the App Store Server API, an App Store Server Notification, or from a device
* See {@link https://developer.apple.com/documentation/appstoreserverapi/jwstransaction JWSTransaction}
*

@@ -74,2 +75,3 @@ * @param signedTransaction The signedTransaction field

* Verifies and decodes a signedRenewalInfo obtained from the App Store Server API, an App Store Server Notification, or from a device
* See {@link https://developer.apple.com/documentation/appstoreserverapi/jwsrenewalinfo JWSRenewalInfo}
*

@@ -90,2 +92,3 @@ * @param signedRenewalInfo The signedRenewalInfo field

* Verifies and decodes an App Store Server Notification signedPayload
* See {@link https://developer.apple.com/documentation/appstoreservernotifications/signedpayload signedPayload}
*

@@ -134,2 +137,4 @@ * @param signedPayload The payload received by your server

* Verifies and decodes a signed AppTransaction
* See {@link https://developer.apple.com/documentation/storekit/apptransaction AppTransaction}
*
* @param signedAppTransaction The signed AppTransaction

@@ -350,2 +355,2 @@ * @returns The decoded AppTransaction after validation

exports.VerificationException = VerificationException;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiandzX3ZlcmlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2p3c192ZXJpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDREQUE0RDs7O0FBRTVELDZDQUE4QztBQUU5Qyx5Q0FBa0M7QUFDbEMsbUNBQXdFO0FBQ3hFLHlDQUFnRDtBQUNoRCwyQ0FBNEM7QUFDNUMsc0RBQW1EO0FBQ25ELHdGQUE0SDtBQUM1SCx3RkFBNEg7QUFDNUgsd0ZBQTRIO0FBRzVILDREQUFrRjtBQUVsRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUE7QUFFdEI7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFhLGtCQUFrQjtJQVkzQjs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxxQkFBK0IsRUFBRSxrQkFBMkIsRUFBRSxXQUF3QixFQUFFLFFBQWdCLEVBQUUsVUFBbUI7UUFuQmpJLDBDQUFxQyxHQUFHLElBQUksb0VBQXFDLEVBQUUsQ0FBQTtRQUNuRiwwQ0FBcUMsR0FBRyxJQUFJLG9FQUFxQyxFQUFFLENBQUE7UUFDbkYsMENBQXFDLEdBQUcsSUFBSSxvRUFBcUMsRUFBRSxDQUFBO1FBQ25GLDRCQUF1QixHQUFHLElBQUksd0NBQXVCLEVBQUUsQ0FBQTtRQWlCN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksd0JBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3BGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQTtRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM1QixJQUFJLFdBQVcsS0FBSyx5QkFBVyxDQUFDLFVBQVUsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFD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S0FBSyxDQUFBO0lBQ3BCLENBQUM7Q0FDRjtBQVRELHNEQVNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIEFwcGxlIEluYy4gTGljZW5zZWQgdW5kZXIgTUlUIExpY2Vuc2UuXG5cbmltcG9ydCBqc29ud2VidG9rZW4gPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcblxuaW1wb3J0IGJhc2U2NHVybCBmcm9tICdiYXNlNjR1cmwnO1xuaW1wb3J0IHsgS2V5T2JqZWN0LCBYNTA5Q2VydGlmaWNhdGUsIGNyZWF0ZUhhc2gsIHZlcmlmeSB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBLSlVSLCBYNTA5LCBBU04xSEVYIH0gZnJvbSAnanNyc2FzaWduJztcbmltcG9ydCBmZXRjaCwgeyBIZWFkZXJzIH0gZnJvbSAnbm9kZS1mZXRjaCc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4vbW9kZWxzL0Vudmlyb25tZW50JztcbmltcG9ydCB7IEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWQsIEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IgfSBmcm9tICcuL21vZGVscy9KV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkJztcbmltcG9ydCB7IFJlc3BvbnNlQm9keVYyRGVjb2RlZFBheWxvYWQsIFJlc3BvbnNlQm9keVYyRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IgfSBmcm9tICcuL21vZGVscy9SZXNwb25zZUJvZHlWMkRlY29kZWRQYXlsb2FkJztcbmltcG9ydCB7IEpXU1JlbmV3YWxJbmZvRGVjb2RlZFBheWxvYWQsIEpXU1JlbmV3YWxJbmZvRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IgfSBmcm9tICcuL21vZGVscy9KV1NSZW5ld2FsSW5mb0RlY29kZWRQYXlsb2FkJztcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4vbW9kZWxzL1ZhbGlkYXRvcic7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkRGF0YSB9IGZyb20gJy4vbW9kZWxzL0RlY29kZWRTaWduZWREYXRhJztcbmltcG9ydCB7IEFwcFRyYW5zYWN0aW9uLCBBcHBUcmFuc2FjdGlvblZhbGlkYXRvciB9IGZyb20gJy4vbW9kZWxzL0FwcFRyYW5zYWN0aW9uJztcblxuY29uc3QgTUFYX1NLRVcgPSA2MDAwMFxuXG4vKipcbiAqIEEgY2xhc3MgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3IgdmVyaWZ5aW5nIGFuZCBkZWNvZGluZyBBcHAgU3RvcmUgc2lnbmVkIGRhdGEuXG4gKiBcbiAqIEV4YW1wbGUgVXNhZ2U6XG4gKiBgYGB0c1xuICogY29uc3QgdmVyaWZpZXIgPSBuZXcgU2lnbmVkRGF0YVZlcmlmaWVyKFthcHBsZVJvb3QsIGFwcGxlUm9vdDJdLCB0cnVlLCBFbnZpcm9ubWVudC5TQU5EQk9YLCBcImNvbS5leGFtcGxlXCIpXG4gKiBcbiAqIHRyeSB7XG4gKiAgICAgY29uc3QgZGVjb2RlZE5vdGlmaWNhdGlvbiA9IHZlcmlmaWVyLnZlcmlmeUFuZERlY29kZU5vdGlmaWNhdGlvbihcImV5Li4uXCIpXG4gKiAgICAgY29uc29sZS5sb2coZGVjb2RlZE5vdGlmaWNhdGlvbilcbiAqIH0gY2F0Y2ggKGUpIHtcbiAqICAgICBjb25zb2xlLmVycm9yKGUpXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFNpZ25lZERhdGFWZXJpZmllciB7XG4gICAgcHJpdmF0ZSBKV1NSZW5ld2FsSW5mb0RlY29kZWRQYXlsb2FkVmFsaWRhdG9yID0gbmV3IEpXU1JlbmV3YWxJbmZvRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IoKVxuICAgIHByaXZhdGUgSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZFZhbGlkYXRvciA9IG5ldyBKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yKClcbiAgICBwcml2YXRlIHJlc3BvbnNlQm9keVYyRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IgPSBuZXcgUmVzcG9uc2VCb2R5VjJEZWNvZGVkUGF5bG9hZFZhbGlkYXRvcigpXG4gICAgcHJpdmF0ZSBhcHBUcmFuc2FjdGlvblZhbGlkYXRvciA9IG5ldyBBcHBUcmFuc2FjdGlvblZhbGlkYXRvcigpXG5cbiAgICBwcm90ZWN0ZWQgcm9vdENlcnRpZmljYXRlczogWDUwOUNlcnRpZmljYXRlW11cbiAgICBwcm90ZWN0ZWQgZW5hYmxlT25saW5lQ2hlY2tzOiBib29sZWFuXG4gICAgcHJvdGVjdGVkIGJ1bmRsZUlkOiBzdHJpbmdcbiAgICBwcm90ZWN0ZWQgYXBwQXBwbGVJZD86IG51bWJlclxuICAgIHByb3RlY3RlZCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRcblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBhcHBsZVJvb3RDZXJ0aWZpY2F0ZXMgQSBsaXN0IG9mIERFUi1lbmNvZGVkIHJvb3QgY2VydGlmaWNhdGVzIFxuICAgICAqIEBwYXJhbSBlbmFibGVPbmxpbmVDaGVja3MgV2hldGhlciB0byBlbmFibGUgcmV2b2NhdGlvbiBjaGVja2luZyBhbmQgY2hlY2sgZXhwaXJhdGlvbiB1c2luZyB0aGUgY3VycmVudCBkYXRlXG4gICAgICogQHBhcmFtIGVudmlyb25tZW50IFRoZSBBcHAgU3RvcmUgZW52aXJvbm1lbnQgdG8gdGFyZ2V0IGZvciBjaGVja3NcbiAgICAgKiBAcGFyYW0gYnVuZGxlSWQgVGhlIGFwcCdzIGJ1bmRsZSBpZGVudGlmaWVyXG4gICAgICogQHBhcmFtIGFwcEFwcGxlSWQgVGhlIGFwcCdzIGlkZW50aWZpZXIsIG9tbWl0dGVkIGluIHRoZSBzYW5kYm94IGVudmlyb25tZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoYXBwbGVSb290Q2VydGlmaWNhdGVzOiBCdWZmZXJbXSwgZW5hYmxlT25saW5lQ2hlY2tzOiBib29sZWFuLCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsIGJ1bmRsZUlkOiBzdHJpbmcsIGFwcEFwcGxlSWQ/OiBudW1iZXIpIHtcbiAgICAgIHRoaXMucm9vdENlcnRpZmljYXRlcyA9IGFwcGxlUm9vdENlcnRpZmljYXRlcy5tYXAoY2VydCA9PiBuZXcgWDUwOUNlcnRpZmljYXRlKGNlcnQpKVxuICAgICAgdGhpcy5lbmFibGVPbmxpbmVDaGVja3MgPSBlbmFibGVPbmxpbmVDaGVja3NcbiAgICAgIHRoaXMuYnVuZGxlSWQgPSBidW5kbGVJZDtcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICAgICAgdGhpcy5hcHBBcHBsZUlkID0gYXBwQXBwbGVJZFxuICAgICAgaWYgKGVudmlyb25tZW50ID09PSBFbnZpcm9ubWVudC5QUk9EVUNUSU9OICYmIGFwcEFwcGxlSWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJhcHBBcHBsZUlkIGlzIHJlcXVpcmVkIHdoZW4gdGhlIGVudmlyb25tZW50IGlzIFByb2R1Y3Rpb25cIilcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyBhbmQgZGVjb2RlcyBhIHNpZ25lZFRyYW5zYWN0aW9uIG9idGFpbmVkIGZyb20gdGhlIEFwcCBTdG9yZSBTZXJ2ZXIgQVBJLCBhbiBBcHAgU3RvcmUgU2VydmVyIE5vdGlmaWNhdGlvbiwgb3IgZnJvbSBhIGRldmljZVxuICAgICAqXG4gICAgICogQHBhcmFtIHNpZ25lZFRyYW5zYWN0aW9uIFRoZSBzaWduZWRUcmFuc2FjdGlvbiBmaWVsZFxuICAgICAqIEByZXR1cm4gVGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gaW5mbyBhZnRlciB2ZXJpZmljYXRpb25cbiAgICAgKiBAdGhyb3dzIFZlcmlmaWNhdGlvbkV4Y2VwdGlvbiBUaHJvd24gaWYgdGhlIGRhdGEgY291bGQgbm90IGJlIHZlcmlmaWVkXG4gICAgICovXG4gICAgYXN5bmMgdmVyaWZ5QW5kRGVjb2RlVHJhbnNhY3Rpb24oc2lnbmVkVHJhbnNhY3Rpb25JbmZvOiBzdHJpbmcpOiBQcm9taXNlPEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWQ+IHtcbiAgICAgIGNvbnN0IGRlY29kZWRKV1Q6IEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWQgPSBhd2FpdCB0aGlzLnZlcmlmeUpXVChzaWduZWRUcmFuc2FjdGlvbkluZm8sIHRoaXMuSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZFZhbGlkYXRvciwgdGhpcy5leHRyYWN0U2lnbmVkRGF0ZSk7XG4gICAgICBpZiAoZGVjb2RlZEpXVC5idW5kbGVJZCAhPT0gdGhpcy5idW5kbGVJZCkge1xuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5JTlZBTElEX0FQUF9JREVOVElGSUVSKVxuICAgICAgfVxuICAgICAgaWYgKGRlY29kZWRKV1QuZW52aXJvbm1lbnQgIT09IHRoaXMuZW52aXJvbm1lbnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9FTlZJUk9OTUVOVClcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZWNvZGVkSldUO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIGFuZCBkZWNvZGVzIGEgc2lnbmVkUmVuZXdhbEluZm8gb2J0YWluZWQgZnJvbSB0aGUgQXBwIFN0b3JlIFNlcnZlciBBUEksIGFuIEFwcCBTdG9yZSBTZXJ2ZXIgTm90aWZpY2F0aW9uLCBvciBmcm9tIGEgZGV2aWNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2lnbmVkUmVuZXdhbEluZm8gVGhlIHNpZ25lZFJlbmV3YWxJbmZvIGZpZWxkXG4gICAgICogQHJldHVybiBUaGUgZGVjb2RlZCByZW5ld2FsIGluZm8gYWZ0ZXIgdmVyaWZpY2F0aW9uXG4gICAgICogQHRocm93cyBWZXJpZmljYXRpb25FeGNlcHRpb24gVGhyb3duIGlmIHRoZSBkYXRhIGNvdWxkIG5vdCBiZSB2ZXJpZmllZFxuICAgICAqL1xuICAgIGFzeW5jIHZlcmlmeUFuZERlY29kZVJlbmV3YWxJbmZvKHNpZ25lZFJlbmV3YWxJbmZvOiBzdHJpbmcpOiBQcm9taXNlPEpXU1JlbmV3YWxJbmZvRGVjb2RlZFBheWxvYWQ+IHtcbiAgICAgIGNvbnN0IGRlY29kZWRSZW5ld2FsSW5mbzogSldTUmVuZXdhbEluZm9EZWNvZGVkUGF5bG9hZCA9IGF3YWl0IHRoaXMudmVyaWZ5SldUKHNpZ25lZFJlbmV3YWxJbmZvLCB0aGlzLkpXU1JlbmV3YWxJbmZvRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IsIHRoaXMuZXh0cmFjdFNpZ25lZERhdGUpO1xuICAgICAgY29uc3QgZW52aXJvbm1lbnQgPSBkZWNvZGVkUmVuZXdhbEluZm8uZW52aXJvbm1lbnRcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICE9PSBlbnZpcm9ubWVudCkge1xuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5JTlZBTElEX0VOVklST05NRU5UKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGRlY29kZWRSZW5ld2FsSW5mb1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIGFuZCBkZWNvZGVzIGFuIEFwcCBTdG9yZSBTZXJ2ZXIgTm90aWZpY2F0aW9uIHNpZ25lZFBheWxvYWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaWduZWRQYXlsb2FkIFRoZSBwYXlsb2FkIHJlY2VpdmVkIGJ5IHlvdXIgc2VydmVyXG4gICAgICogQHJldHVybiBUaGUgZGVjb2RlZCBwYXlsb2FkIGFmdGVyIHZlcmlmaWNhdGlvblxuICAgICAqIEB0aHJvd3MgVmVyaWZpY2F0aW9uRXhjZXB0aW9uIFRocm93biBpZiB0aGUgZGF0YSBjb3VsZCBub3QgYmUgdmVyaWZpZWRcbiAgICAgKi9cbiAgICBhc3luYyB2ZXJpZnlBbmREZWNvZGVOb3RpZmljYXRpb24oc2lnbmVkUGF5bG9hZDogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZUJvZHlWMkRlY29kZWRQYXlsb2FkPiB7XG4gICAgICBjb25zdCBkZWNvZGVkSldUOiBSZXNwb25zZUJvZHlWMkRlY29kZWRQYXlsb2FkID0gYXdhaXQgdGhpcy52ZXJpZnlKV1Qoc2lnbmVkUGF5bG9hZCwgdGhpcy5yZXNwb25zZUJvZHlWMkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yLCB0aGlzLmV4dHJhY3RTaWduZWREYXRlKTtcbiAgICAgIGxldCBhcHBBcHBsZUlkOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgICAgIGxldCBidW5kbGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgICBsZXQgZW52aXJvbm1lbnQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgICAgaWYgKGRlY29kZWRKV1QuZGF0YSkge1xuICAgICAgICBhcHBBcHBsZUlkID0gZGVjb2RlZEpXVC5kYXRhLmFwcEFwcGxlSWRcbiAgICAgICAgYnVuZGxlSWQgPSBkZWNvZGVkSldULmRhdGEuYnVuZGxlSWRcbiAgICAgICAgZW52aXJvbm1lbnQgPSBkZWNvZGVkSldULmRhdGEuZW52aXJvbm1lbnRcbiAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZEpXVC5zdW1tYXJ5KSB7XG4gICAgICAgIGFwcEFwcGxlSWQgPSBkZWNvZGVkSldULnN1bW1hcnkuYXBwQXBwbGVJZFxuICAgICAgICBidW5kbGVJZCA9IGRlY29kZWRKV1Quc3VtbWFyeS5idW5kbGVJZFxuICAgICAgICBlbnZpcm9ubWVudCA9IGRlY29kZWRKV1Quc3VtbWFyeS5lbnZpcm9ubWVudFxuICAgICAgfSBlbHNlIGlmIChkZWNvZGVkSldULmV4dGVybmFsUHVyY2hhc2VUb2tlbikge1xuICAgICAgICBhcHBBcHBsZUlkID0gZGVjb2RlZEpXVC5leHRlcm5hbFB1cmNoYXNlVG9rZW4uYXBwQXBwbGVJZFxuICAgICAgICBidW5kbGVJZCA9IGRlY29kZWRKV1QuZXh0ZXJuYWxQdXJjaGFzZVRva2VuLmJ1bmRsZUlkXG4gICAgICAgIGlmIChkZWNvZGVkSldULmV4dGVybmFsUHVyY2hhc2VUb2tlbi5leHRlcm5hbFB1cmNoYXNlSWQgJiYgZGVjb2RlZEpXVC5leHRlcm5hbFB1cmNoYXNlVG9rZW4uZXh0ZXJuYWxQdXJjaGFzZUlkLnN0YXJ0c1dpdGgoXCJTQU5EQk9YXCIpKSB7XG4gICAgICAgICAgZW52aXJvbm1lbnQgPSBFbnZpcm9ubWVudC5TQU5EQk9YXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW52aXJvbm1lbnQgPSBFbnZpcm9ubWVudC5QUk9EVUNUSU9OXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMudmVyaWZ5Tm90aWZpY2F0aW9uKGJ1bmRsZUlkLCBhcHBBcHBsZUlkLCBlbnZpcm9ubWVudClcbiAgICAgIHJldHVybiBkZWNvZGVkSldUXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZlcmlmeU5vdGlmaWNhdGlvbihidW5kbGVJZD86IHN0cmluZywgYXBwQXBwbGVJZD86IG51bWJlciwgZW52aXJvbm1lbnQ/OiBzdHJpbmcpIHtcbiAgICAgIGlmICh0aGlzLmJ1bmRsZUlkICE9PSBidW5kbGVJZCB8fCAodGhpcy5lbnZpcm9ubWVudCA9PT0gRW52aXJvbm1lbnQuUFJPRFVDVElPTiAmJiB0aGlzLmFwcEFwcGxlSWQgIT09IGFwcEFwcGxlSWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLklOVkFMSURfQVBQX0lERU5USUZJRVIpXG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAhPT0gZW52aXJvbm1lbnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9FTlZJUk9OTUVOVClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyBhbmQgZGVjb2RlcyBhIHNpZ25lZCBBcHBUcmFuc2FjdGlvblxuICAgICAqIEBwYXJhbSBzaWduZWRBcHBUcmFuc2FjdGlvbiBUaGUgc2lnbmVkIEFwcFRyYW5zYWN0aW9uXG4gICAgICogQHJldHVybnMgVGhlIGRlY29kZWQgQXBwVHJhbnNhY3Rpb24gYWZ0ZXIgdmFsaWRhdGlvblxuICAgICAqIEB0aHJvd3MgVmVyaWZpY2F0aW9uRXhjZXB0aW9uIFRocm93biBpZiB0aGUgZGF0YSBjb3VsZCBub3QgYmUgdmVyaWZpZWRcbiAgICAgKi9cbiAgICBhc3luYyB2ZXJpZnlBbmREZWNvZGVBcHBUcmFuc2FjdGlvbihzaWduZWRBcHBUcmFuc2FjdGlvbjogc3RyaW5nKTogUHJvbWlzZTxBcHBUcmFuc2FjdGlvbj4ge1xuICAgICAgY29uc3QgZGVjb2RlZEFwcFRyYW5zYWN0aW9uOiBBcHBUcmFuc2FjdGlvbiA9IGF3YWl0IHRoaXMudmVyaWZ5SldUKHNpZ25lZEFwcFRyYW5zYWN0aW9uLCB0aGlzLmFwcFRyYW5zYWN0aW9uVmFsaWRhdG9yLCB0ID0+IHQucmVjZWlwdENyZWF0aW9uRGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUoKSA6IG5ldyBEYXRlKHQucmVjZWlwdENyZWF0aW9uRGF0ZSkpO1xuICAgICAgY29uc3QgZW52aXJvbm1lbnQgPSBkZWNvZGVkQXBwVHJhbnNhY3Rpb24ucmVjZWlwdFR5cGVcbiAgICAgIGlmICh0aGlzLmJ1bmRsZUlkICE9PSBkZWNvZGVkQXBwVHJhbnNhY3Rpb24uYnVuZGxlSWQgfHwgKHRoaXMuZW52aXJvbm1lbnQgPT09IEVudmlyb25tZW50LlBST0RVQ1RJT04gJiYgdGhpcy5hcHBBcHBsZUlkICE9PSBkZWNvZGVkQXBwVHJhbnNhY3Rpb24uYXBwQXBwbGVJZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9BUFBfSURFTlRJRklFUilcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICE9PSBlbnZpcm9ubWVudCkge1xuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5JTlZBTElEX0VOVklST05NRU5UKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGRlY29kZWRBcHBUcmFuc2FjdGlvblxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyB2ZXJpZnlKV1Q8VD4oand0OiBzdHJpbmcsIHZhbGlkYXRvcjogVmFsaWRhdG9yPFQ+LCBzaWduZWREYXRlRXh0cmFjdG9yOiAoZGVjb2RlZEpXVDogVCkgPT4gRGF0ZSk6IFByb21pc2U8VD4ge1xuICAgICAgbGV0IGNlcnRpZmljYXRlQ2hhaW47XG4gICAgICBsZXQgZGVjb2RlZEpXVFxuICAgICAgdHJ5IHtcbiAgICAgICAgZGVjb2RlZEpXVCA9IGpzb253ZWJ0b2tlbi5kZWNvZGUoand0KVxuICAgICAgICBpZiAoIXZhbGlkYXRvci52YWxpZGF0ZShkZWNvZGVkSldUKSkge1xuICAgICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLkZBSUxVUkUpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgPT09IEVudmlyb25tZW50LlhDT0RFIHx8IHRoaXMuZW52aXJvbm1lbnQgPT09IEVudmlyb25tZW50LkxPQ0FMX1RFU1RJTkcpIHtcbiAgICAgICAgICAvLyBEYXRhIGlzIG5vdCBzaWduZWQgYnkgdGhlIEFwcCBTdG9yZSwgYW5kIHZlcmlmaWNhdGlvbiBzaG91bGQgYmUgc2tpcHBlZFxuICAgICAgICAgIC8vIFRoZSBlbnZpcm9ubWVudCBNVVNUIGJlIGNoZWNrZWQgaW4gdGhlIHB1YmxpYyBtZXRob2QgY2FsbGluZyB0aGlzXG4gICAgICAgICAgcmV0dXJuIGRlY29kZWRKV1RcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGhlYWRlciA9IGp3dC5zcGxpdCgnLicpWzBdXG4gICAgICAgICAgY29uc3QgZGVjb2RlZEhlYWRlciA9IGJhc2U2NHVybC5kZWNvZGUoaGVhZGVyKVxuICAgICAgICAgIGNvbnN0IGhlYWRlck9iaiA9IEpTT04ucGFyc2UoZGVjb2RlZEhlYWRlcilcbiAgICAgICAgICBjb25zdCBjaGFpbjogc3RyaW5nW10gPSBoZWFkZXJPYmpbJ3g1YyddID8/IFtdXG4gICAgICAgICAgaWYgKGNoYWluLmxlbmd0aCAhPSAzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5JTlZBTElEX0NIQUlOX0xFTkdUSClcbiAgICAgICAgICB9XG4gICAgICAgICAgY2VydGlmaWNhdGVDaGFpbiA9IGNoYWluLnNsaWNlKDAsIDIpLm1hcChjZXJ0ID0+IG5ldyBYNTA5Q2VydGlmaWNhdGUoQnVmZmVyLmZyb20oY2VydCwgJ2Jhc2U2NCcpKSlcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9DRVJUSUZJQ0FURSwgZXJyb3IpXG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLklOVkFMSURfQ0VSVElGSUNBVEUpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWZmZWN0aXZlRGF0ZSA9IHRoaXMuZW5hYmxlT25saW5lQ2hlY2tzID8gbmV3IERhdGUoKSA6IHNpZ25lZERhdGVFeHRyYWN0b3IoZGVjb2RlZEpXVClcbiAgICAgICAgY29uc3QgcHVibGljS2V5ID0gYXdhaXQgdGhpcy52ZXJpZnlDZXJ0aWZpY2F0ZUNoYWluKHRoaXMucm9vdENlcnRpZmljYXRlcywgY2VydGlmaWNhdGVDaGFpblswXSwgY2VydGlmaWNhdGVDaGFpblsxXSwgZWZmZWN0aXZlRGF0ZSk7XG4gICAgICAgIGNvbnN0IGVuY29kZWRLZXkgPSBwdWJsaWNLZXkuZXhwb3J0KHtcbiAgICAgICAgICB0eXBlOiBcInNwa2lcIixcbiAgICAgICAgICBmb3JtYXQ6IFwicGVtXCJcbiAgICAgICAgfSk7XG4gICAgICAgIGpzb253ZWJ0b2tlbi52ZXJpZnkoand0LCBlbmNvZGVkS2V5KSBhcyBUXG4gICAgICAgIHJldHVybiBkZWNvZGVkSldUXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBWZXJpZmljYXRpb25FeGNlcHRpb24pIHtcbiAgICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5WRVJJRklDQVRJT05fRkFJTFVSRSwgZXJyb3IpXG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuVkVSSUZJQ0FUSU9OX0ZBSUxVUkUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIHZlcmlmeUNlcnRpZmljYXRlQ2hhaW4odHJ1c3RlZFJvb3RzOiBYNTA5Q2VydGlmaWNhdGVbXSwgbGVhZjogWDUwOUNlcnRpZmljYXRlLCBpbnRlcm1lZGlhdGU6IFg1MDlDZXJ0aWZpY2F0ZSwgZWZmZWN0aXZlRGF0ZTogRGF0ZSk6IFByb21pc2U8S2V5T2JqZWN0PiB7XG4gICAgICBsZXQgdmFsaWRpdHkgPSBmYWxzZVxuICAgICAgbGV0IHJvb3RDZXJ0XG4gICAgICBmb3IgKGNvbnN0IHJvb3Qgb2YgdHJ1c3RlZFJvb3RzKSB7XG4gICAgICAgIGlmIChpbnRlcm1lZGlhdGUudmVyaWZ5KHJvb3QucHVibGljS2V5KSAmJiBpbnRlcm1lZGlhdGUuaXNzdWVyID09PSByb290LnN1YmplY3QpIHtcbiAgICAgICAgICB2YWxpZGl0eSA9IHRydWVcbiAgICAgICAgICByb290Q2VydCA9IHJvb3RcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFsaWRpdHkgPSB2YWxpZGl0eSAmJiBsZWFmLnZlcmlmeShpbnRlcm1lZGlhdGUucHVibGljS2V5KSAmJiBsZWFmLmlzc3VlciA9PT0gaW50ZXJtZWRpYXRlLnN1YmplY3RcbiAgICAgIHZhbGlkaXR5ID0gdmFsaWRpdHkgJiYgaW50ZXJtZWRpYXRlLmNhXG4gICAgICBjb25zdCBqc3JzYXNzaWduWDUwOUxlYWYgPSBuZXcgWDUwOSgpXG4gICAgICBqc3JzYXNzaWduWDUwOUxlYWYucmVhZENlcnRIZXgobGVhZi5yYXcudG9TdHJpbmcoJ2hleCcpKVxuICAgICAgY29uc3QganNyYXNzaWduWDUwOUludGVybWVkaWF0ZSA9IG5ldyBYNTA5KClcbiAgICAgIGpzcmFzc2lnblg1MDlJbnRlcm1lZGlhdGUucmVhZENlcnRIZXgoaW50ZXJtZWRpYXRlLnJhdy50b1N0cmluZygnaGV4JykpXG4gICAgICB2YWxpZGl0eSA9IHZhbGlkaXR5ICYmIGpzcnNhc3NpZ25YNTA5TGVhZi5nZXRFeHRJbmZvKFwiMS4yLjg0MC4xMTM2MzUuMTAwLjYuMTEuMVwiKSAhPT0gdW5kZWZpbmVkXG4gICAgICB2YWxpZGl0eSA9IHZhbGlkaXR5ICYmIGpzcmFzc2lnblg1MDlJbnRlcm1lZGlhdGUuZ2V0RXh0SW5mbyhcIjEuMi44NDAuMTEzNjM1LjEwMC42LjIuMVwiKSAhPT0gdW5kZWZpbmVkXG4gICAgICBpZiAoIXZhbGlkaXR5KSB7XG4gICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLlZFUklGSUNBVElPTl9GQUlMVVJFKTtcbiAgICAgIH1cbiAgICAgIHJvb3RDZXJ0ID0gcm9vdENlcnQgYXMgWDUwOUNlcnRpZmljYXRlXG4gICAgICB0aGlzLmNoZWNrRGF0ZXMobGVhZiwgZWZmZWN0aXZlRGF0ZSlcbiAgICAgIHRoaXMuY2hlY2tEYXRlcyhpbnRlcm1lZGlhdGUsIGVmZmVjdGl2ZURhdGUpXG4gICAgICB0aGlzLmNoZWNrRGF0ZXMocm9vdENlcnQsIGVmZmVjdGl2ZURhdGUpXG4gICAgICBpZiAodGhpcy5lbmFibGVPbmxpbmVDaGVja3MpIHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuY2hlY2tPQ1NQU3RhdHVzKGxlYWYsIGludGVybWVkaWF0ZSksIHRoaXMuY2hlY2tPQ1NQU3RhdHVzKGludGVybWVkaWF0ZSwgcm9vdENlcnQpXSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBsZWFmLnB1YmxpY0tleVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgYXN5bmMgY2hlY2tPQ1NQU3RhdHVzKGNlcnQ6IFg1MDlDZXJ0aWZpY2F0ZSwgaXNzdWVyOiBYNTA5Q2VydGlmaWNhdGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGNvbnN0IGF1dGhvcml0eVJleCA9IC9eT0NTUCAtIFVSSTooLiopJC9tXG4gICAgICBjb25zdCBtYXRjaFJlc3VsdCA9IGNlcnQuaW5mb0FjY2VzcyA/IGF1dGhvcml0eVJleC5leGVjKGNlcnQuaW5mb0FjY2VzcykgOiBcIlwiXG4gICAgICBpZiAobWF0Y2hSZXN1bHQgPT09IG51bGwgfHwgbWF0Y2hSZXN1bHQubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLklOVkFMSURfQ0VSVElGSUNBVEUpXG4gICAgICB9XG4gICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEtKVVIuYXNuMS5vY3NwLk9DU1BSZXF1ZXN0KHtyZXFMaXN0OiBbe2lzc3VlckNlcnQ6IGlzc3Vlci50b1N0cmluZygpLCBzdWJqZWN0Q2VydDogY2VydC50b1N0cmluZygpICwgYWxnOiBcInNoYTI1NlwifV19KVxuICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKClcbiAgICAgIGhlYWRlcnMuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vb2NzcC1yZXF1ZXN0JylcbiAgICAgIFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChtYXRjaFJlc3VsdFsxXSwge1xuICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogQnVmZmVyLmZyb20ocmVxdWVzdC5nZXRFbmNvZGVkSGV4KCksICdoZXgnKVxuICAgICAgfSlcbiAgICAgIFxuICAgICAgY29uc3QgcmVzcG9uc2VCdWZmZXIgPSBhd2FpdCByZXNwb25zZS5idWZmZXIoKVxuICAgICAgY29uc3QgcGFyc2VkUmVzcG9uc2UgPSBuZXcgKEtKVVIuYXNuMS5vY3NwIGFzIGFueSkuT0NTUFBhcnNlcigpLmdldE9DU1BSZXNwb25zZShyZXNwb25zZUJ1ZmZlci50b1N0cmluZygnaGV4JykpXG4gICAgICAvLyBUaGUgaXNzdWVyIGNvdWxkIGFsc28gYmUgdGhlIHNpZ25lclxuICAgICAgY29uc3QganNyYXNzaWduWDUwOUlzc3VlciA9IG5ldyBYNTA5KClcbiAgICAgIGpzcmFzc2lnblg1MDlJc3N1ZXIucmVhZENlcnRIZXgoaXNzdWVyLnJhdy50b1N0cmluZygnaGV4JykpXG4gICAgICBjb25zdCBhbGxDZXJ0czogWDUwOVtdID0gW2pzcmFzc2lnblg1MDlJc3N1ZXJdXG4gICAgICBmb3IgKGNvbnN0IGNlcnRIZXggb2YgcGFyc2VkUmVzcG9uc2UuY2VydHMpIHtcbiAgICAgICAgY29uc3QgY2VydCA9IG5ldyBYNTA5KClcbiAgICAgICAgY2VydC5yZWFkQ2VydEhleChjZXJ0SGV4KVxuICAgICAgICBhbGxDZXJ0cy5wdXNoKGNlcnQpXG4gICAgICB9XG4gICAgICBsZXQgc2lnbmluZ0NlcnQ6IFg1MDlDZXJ0aWZpY2F0ZSB8IG51bGwgPSBudWxsXG4gICAgICBpZiAocGFyc2VkUmVzcG9uc2UucmVzcGlkLmtleSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNlcnQgb2YgYWxsQ2VydHMpIHtcbiAgICAgICAgICBjb25zdCBzaGFzdW0gPSBjcmVhdGVIYXNoKCdzaGExJylcbiAgICAgICAgICBzaGFzdW0udXBkYXRlKEJ1ZmZlci5mcm9tKGNlcnQuZ2V0U1BLSVZhbHVlKCksICdoZXgnKSlcbiAgICAgICAgICBjb25zdCBzcGtpSGFzaCA9IHNoYXN1bS5kaWdlc3QoJ2hleCcpXG4gICAgICAgICAgaWYgKHNwa2lIYXNoID09PSBwYXJzZWRSZXNwb25zZS5yZXNwaWQua2V5KSB7XG4gICAgICAgICAgICBzaWduaW5nQ2VydCA9IG5ldyBYNTA5Q2VydGlmaWNhdGUoQnVmZmVyLmZyb20oY2VydC5oZXgsICdoZXgnKSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGFyc2VkUmVzcG9uc2UucmVzcGlkLm5hbWUpIHtcbiAgICAgICAgZm9yIChjb25zdCBjZXJ0IG9mIGFsbENlcnRzKSB7XG4gICAgICAgICAgaWYgKGNlcnQuZ2V0U3ViamVjdCgpLnN0ciA9PT0gcGFyc2VkUmVzcG9uc2UucmVzcGlkLm5hbWUuc3RyKSB7XG4gICAgICAgICAgICBzaWduaW5nQ2VydCA9IG5ldyBYNTA5Q2VydGlmaWNhdGUoQnVmZmVyLmZyb20oY2VydC5oZXgsICdoZXgnKSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzaWduaW5nQ2VydCA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLkZBSUxVUkUpXG4gICAgICB9XG4gICAgICAvLyBWZXJpZnkgU2lnbmluZyBDZXJ0IGlzIGlzc3VlZCBieSBpc3N1ZXJcbiAgICAgIGlmIChzaWduaW5nQ2VydC5wdWJsaWNLZXkgPT09IGlzc3Vlci5wdWJsaWNLZXkgJiYgc2lnbmluZ0NlcnQuc3ViamVjdCA9PT0gaXNzdWVyLnN1YmplY3QpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBkaXJlY3RseSBzaWduZWQgYnkgdGhlIGlzc3VlclxuICAgICAgfSBlbHNlIGlmIChzaWduaW5nQ2VydC52ZXJpZnkoaXNzdWVyLnB1YmxpY0tleSkpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBpc3N1ZWQgYnkgdGhlIGlzc3VlciwgbGV0J3MgY2hlY2sgdGhlIGRhdGVzIGFuZCBwdXJwb3NlXG4gICAgICAgIGNvbnN0IHNpZ25pbmdDZXJ0QXNpZ24gPSBuZXcgWDUwOSgpXG4gICAgICAgIHNpZ25pbmdDZXJ0QXNpZ24ucmVhZENlcnRQRU0oc2lnbmluZ0NlcnQudG9TdHJpbmcoKSlcbiAgICAgICAgaWYgKCFzaWduaW5nQ2VydEFzaWduLmdldEV4dEV4dEtleVVzYWdlKCkuYXJyYXkuaW5jbHVkZXMoXCJvY3NwU2lnbmluZ1wiKSkge1xuICAgICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLklOVkFMSURfQ0VSVElGSUNBVEUpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0RhdGVzKHNpZ25pbmdDZXJ0LCBuZXcgRGF0ZSgpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9DRVJUSUZJQ0FURSlcbiAgICAgIH1cbiAgICBcbiAgICAgIC8vIEV4dHJhY3QgcmF3IHJlc3BvbnNlRGF0YVxuICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gQVNOMUhFWC5nZXRUTFZieUxpc3QocmVzcG9uc2VCdWZmZXIudG9TdHJpbmcoJ2hleCcpLCAwLCBbMSwgMCwgMSwgMCwgMF0pIGFzIHN0cmluZ1xuICAgICAgLy8gVmVyaWZ5IFBheWxvYWQgc2lnbmVkIGJ5IGNlcnRcbiAgICAgIGNvbnN0IHNob3J0QWxnID0gcGFyc2VkUmVzcG9uc2UuYWxnLnN1YnN0cmluZygwLCA2KS50b1VwcGVyQ2FzZSgpXG4gICAgICBpZiAoc2hvcnRBbGcgIT09IFwiU0hBMjU2XCIgJiYgc2hvcnRBbGcgIT09IFwiU0hBMzg0XCIgJiYgc2hvcnRBbGcgIT09IFwiU0hBNTEyXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuRkFJTFVSRSlcbiAgICAgIH1cblxuICAgICAgaWYgKCF2ZXJpZnkoc2hvcnRBbGcsIEJ1ZmZlci5mcm9tKHJlc3BvbnNlRGF0YSwgJ2hleCcpLCBzaWduaW5nQ2VydC5wdWJsaWNLZXksIEJ1ZmZlci5mcm9tKHBhcnNlZFJlc3BvbnNlLnNpZ2hleCwgJ2hleCcpKSkge1xuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5GQUlMVVJFKVxuICAgICAgfVxuICAgICAgXG4gICAgICBmb3IgKGNvbnN0IHNpbmdsZVJlc3BvbnNlIG9mIHBhcnNlZFJlc3BvbnNlLmFycmF5KSB7XG4gICAgICAgIC8vIENvbmZpcm0gZW50cnkgaXMgZm9yIHRoaXMgY2VydFxuICAgICAgICBjb25zdCBjZXJ0SWRCdWlsZGVyID0gbmV3IEtKVVIuYXNuMS5vY3NwLkNlcnRJRCgpIGFzIGFueVxuICAgICAgICBjb25zdCBjdXJyZW50Q2VydENlcnRJZCA9IGNlcnRJZEJ1aWxkZXIuZ2V0UGFyYW1CeUNlcnRzKGlzc3Vlci50b1N0cmluZygpLCBjZXJ0LnRvU3RyaW5nKCksICdzaGEyNTYnKVxuICAgICAgICBpZiAoIShjdXJyZW50Q2VydENlcnRJZC5hbGcgPT09IHNpbmdsZVJlc3BvbnNlLmNlcnRpZC5hbGcgJiYgY3VycmVudENlcnRDZXJ0SWQuaXNzbmFtZSA9PT0gc2luZ2xlUmVzcG9uc2UuY2VydGlkLmlzc25hbWUgJiZcbiAgICAgICAgICAgICAgY3VycmVudENlcnRDZXJ0SWQuaXNza2V5ID09PSBzaW5nbGVSZXNwb25zZS5jZXJ0aWQuaXNza2V5ICYmIGN1cnJlbnRDZXJ0Q2VydElkLnNianNuID09PSBzaW5nbGVSZXNwb25zZS5jZXJ0aWQuc2Jqc24pKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICAvLyBWYWxpZGF0ZSBjb250ZW50c1xuICAgICAgICBjb25zdCBpc3N1ZURhdGUgPSB0aGlzLnBhcnNlWDUwOURhdGUoc2luZ2xlUmVzcG9uc2UudGhpc3VwZGF0ZSlcbiAgICAgICAgY29uc3QgbmV4dERhdGUgPSB0aGlzLnBhcnNlWDUwOURhdGUoc2luZ2xlUmVzcG9uc2UubmV4dHVwZGF0ZSlcbiAgICAgICAgXG4gICAgICAgIGlmIChzaW5nbGVSZXNwb25zZS5zdGF0dXMuc3RhdHVzICE9PSAnZ29vZCcgfHwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBNQVhfU0tFVyA8IGlzc3VlRGF0ZS5nZXRUaW1lKCkgfHwgbmV4dERhdGUuZ2V0VGltZSgpIDwgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNQVhfU0tFVykge1xuICAgICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLkZBSUxVUkUpXG4gICAgICAgIH1cbiAgICAgICAgLy8gU3VjY2Vzc1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLkZBSUxVUkUpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0RhdGVzKGNlcnQ6IFg1MDlDZXJ0aWZpY2F0ZSwgZWZmZWN0aXZlRGF0ZTogRGF0ZSkge1xuICAgICAgaWYgKG5ldyBEYXRlKGNlcnQudmFsaWRGcm9tKS5nZXRUaW1lKCkgPiAoZWZmZWN0aXZlRGF0ZS5nZXRUaW1lKCkgKyBNQVhfU0tFVyl8fFxuICAgICAgICAgIG5ldyBEYXRlKGNlcnQudmFsaWRUbykuZ2V0VGltZSgpIDwgKGVmZmVjdGl2ZURhdGUuZ2V0VGltZSgpIC0gTUFYX1NLRVcpKSB7XG4gICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLklOVkFMSURfQ0VSVElGSUNBVEUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZVg1MDlEYXRlKGRhdGU6IHN0cmluZykge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUucmVwbGFjZShcbiAgICAgICAgL14oXFxkezR9KShcXGRcXGQpKFxcZFxcZCkoXFxkXFxkKShcXGRcXGQpKFxcZFxcZCkkLyxcbiAgICAgICAgJyQ0OiQ1OiQ2ICQyLyQzLyQxJ1xuICAgICAgKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRyYWN0U2lnbmVkRGF0ZShkZWNvZGVkSldUOiBEZWNvZGVkU2lnbmVkRGF0YSk6IERhdGUge1xuICAgICAgcmV0dXJuIGRlY29kZWRKV1Quc2lnbmVkRGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUoKSA6IG5ldyBEYXRlKGRlY29kZWRKV1Quc2lnbmVkRGF0ZSlcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIFZlcmlmaWNhdGlvblN0YXR1cyB7XG4gIE9LLFxuICBWRVJJRklDQVRJT05fRkFJTFVSRSxcbiAgSU5WQUxJRF9BUFBfSURFTlRJRklFUixcbiAgSU5WQUxJRF9FTlZJUk9OTUVOVCxcbiAgSU5WQUxJRF9DSEFJTl9MRU5HVEgsXG4gIElOVkFMSURfQ0VSVElGSUNBVEUsXG4gIEZBSUxVUkVcbn1cblxuZXhwb3J0IGNsYXNzIFZlcmlmaWNhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcbiAgc3RhdHVzOiBWZXJpZmljYXRpb25TdGF0dXNcbiAgY2F1c2U/OiBFcnJvclxuXG4gIGNvbnN0cnVjdG9yKHN0YXR1czogVmVyaWZpY2F0aW9uU3RhdHVzLCBjYXVzZT86IEVycm9yKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0YXR1cyA9IHN0YXR1c1xuICAgIHRoaXMuY2F1c2UgPSBjYXVzZVxuICB9XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiandzX3ZlcmlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2p3c192ZXJpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDREQUE0RDs7O0FBRTVELDZDQUE4QztBQUU5Qyx5Q0FBa0M7QUFDbEMsbUNBQXdFO0FBQ3hFLHlDQUFnRDtBQUNoRCwyQ0FBNEM7QUFDNUMsc0RBQW1EO0FBQ25ELHdGQUE0SDtBQUM1SCx3RkFBNEg7QUFDNUgsd0ZBQTRIO0FBRzVILDREQUFrRjtBQUVsRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUE7QUFFdEI7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFhLGtCQUFrQjtJQVkzQjs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxxQkFBK0IsRUFBRSxrQkFBMkIsRUFBRSxXQUF3QixFQUFFLFFBQWdCLEVBQUUsVUFBbUI7UUFuQmpJLDBDQUFxQyxHQUFHLElBQUksb0VBQXFDLEVBQUUsQ0FBQTtRQUNuRiwwQ0FBcUMsR0FBRyxJQUFJLG9FQUFxQyxFQUFFLENBQUE7UUFDbkYsMENBQXFDLEdBQUcsSUFBSSxvRUFBcUMsRUFBRSxDQUFBO1FBQ25GLDRCQUF1QixHQUFHLElBQUksd0NBQXVCLEVBQUUsQ0FBQTtRQWlCN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksd0JBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3BGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQTtRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM1QixJQUFJLFdBQVcsS0FBSyx5QkFBVyxDQUFDLFVBQVUsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFD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R0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztDQUNGO0FBVEQsc0RBU0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgQXBwbGUgSW5jLiBMaWNlbnNlZCB1bmRlciBNSVQgTGljZW5zZS5cblxuaW1wb3J0IGpzb253ZWJ0b2tlbiA9IHJlcXVpcmUoJ2pzb253ZWJ0b2tlbicpO1xuXG5pbXBvcnQgYmFzZTY0dXJsIGZyb20gJ2Jhc2U2NHVybCc7XG5pbXBvcnQgeyBLZXlPYmplY3QsIFg1MDlDZXJ0aWZpY2F0ZSwgY3JlYXRlSGFzaCwgdmVyaWZ5IH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IEtKVVIsIFg1MDksIEFTTjFIRVggfSBmcm9tICdqc3JzYXNpZ24nO1xuaW1wb3J0IGZldGNoLCB7IEhlYWRlcnMgfSBmcm9tICdub2RlLWZldGNoJztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi9tb2RlbHMvRW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZCwgSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZFZhbGlkYXRvciB9IGZyb20gJy4vbW9kZWxzL0pXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWQnO1xuaW1wb3J0IHsgUmVzcG9uc2VCb2R5VjJEZWNvZGVkUGF5bG9hZCwgUmVzcG9uc2VCb2R5VjJEZWNvZGVkUGF5bG9hZFZhbGlkYXRvciB9IGZyb20gJy4vbW9kZWxzL1Jlc3BvbnNlQm9keVYyRGVjb2RlZFBheWxvYWQnO1xuaW1wb3J0IHsgSldTUmVuZXdhbEluZm9EZWNvZGVkUGF5bG9hZCwgSldTUmVuZXdhbEluZm9EZWNvZGVkUGF5bG9hZFZhbGlkYXRvciB9IGZyb20gJy4vbW9kZWxzL0pXU1JlbmV3YWxJbmZvRGVjb2RlZFBheWxvYWQnO1xuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi9tb2RlbHMvVmFsaWRhdG9yJztcbmltcG9ydCB7IERlY29kZWRTaWduZWREYXRhIH0gZnJvbSAnLi9tb2RlbHMvRGVjb2RlZFNpZ25lZERhdGEnO1xuaW1wb3J0IHsgQXBwVHJhbnNhY3Rpb24sIEFwcFRyYW5zYWN0aW9uVmFsaWRhdG9yIH0gZnJvbSAnLi9tb2RlbHMvQXBwVHJhbnNhY3Rpb24nO1xuXG5jb25zdCBNQVhfU0tFVyA9IDYwMDAwXG5cbi8qKlxuICogQSBjbGFzcyBwcm92aWRpbmcgdXRpbGl0eSBtZXRob2RzIGZvciB2ZXJpZnlpbmcgYW5kIGRlY29kaW5nIEFwcCBTdG9yZSBzaWduZWQgZGF0YS5cbiAqIFxuICogRXhhbXBsZSBVc2FnZTpcbiAqIGBgYHRzXG4gKiBjb25zdCB2ZXJpZmllciA9IG5ldyBTaWduZWREYXRhVmVyaWZpZXIoW2FwcGxlUm9vdCwgYXBwbGVSb290Ml0sIHRydWUsIEVudmlyb25tZW50LlNBTkRCT1gsIFwiY29tLmV4YW1wbGVcIilcbiAqIFxuICogdHJ5IHtcbiAqICAgICBjb25zdCBkZWNvZGVkTm90aWZpY2F0aW9uID0gdmVyaWZpZXIudmVyaWZ5QW5kRGVjb2RlTm90aWZpY2F0aW9uKFwiZXkuLi5cIilcbiAqICAgICBjb25zb2xlLmxvZyhkZWNvZGVkTm90aWZpY2F0aW9uKVxuICogfSBjYXRjaCAoZSkge1xuICogICAgIGNvbnNvbGUuZXJyb3IoZSlcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU2lnbmVkRGF0YVZlcmlmaWVyIHtcbiAgICBwcml2YXRlIEpXU1JlbmV3YWxJbmZvRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IgPSBuZXcgSldTUmVuZXdhbEluZm9EZWNvZGVkUGF5bG9hZFZhbGlkYXRvcigpXG4gICAgcHJpdmF0ZSBKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yID0gbmV3IEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IoKVxuICAgIHByaXZhdGUgcmVzcG9uc2VCb2R5VjJEZWNvZGVkUGF5bG9hZFZhbGlkYXRvciA9IG5ldyBSZXNwb25zZUJvZHlWMkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yKClcbiAgICBwcml2YXRlIGFwcFRyYW5zYWN0aW9uVmFsaWRhdG9yID0gbmV3IEFwcFRyYW5zYWN0aW9uVmFsaWRhdG9yKClcblxuICAgIHByb3RlY3RlZCByb290Q2VydGlmaWNhdGVzOiBYNTA5Q2VydGlmaWNhdGVbXVxuICAgIHByb3RlY3RlZCBlbmFibGVPbmxpbmVDaGVja3M6IGJvb2xlYW5cbiAgICBwcm90ZWN0ZWQgYnVuZGxlSWQ6IHN0cmluZ1xuICAgIHByb3RlY3RlZCBhcHBBcHBsZUlkPzogbnVtYmVyXG4gICAgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogQHBhcmFtIGFwcGxlUm9vdENlcnRpZmljYXRlcyBBIGxpc3Qgb2YgREVSLWVuY29kZWQgcm9vdCBjZXJ0aWZpY2F0ZXMgXG4gICAgICogQHBhcmFtIGVuYWJsZU9ubGluZUNoZWNrcyBXaGV0aGVyIHRvIGVuYWJsZSByZXZvY2F0aW9uIGNoZWNraW5nIGFuZCBjaGVjayBleHBpcmF0aW9uIHVzaW5nIHRoZSBjdXJyZW50IGRhdGVcbiAgICAgKiBAcGFyYW0gZW52aXJvbm1lbnQgVGhlIEFwcCBTdG9yZSBlbnZpcm9ubWVudCB0byB0YXJnZXQgZm9yIGNoZWNrc1xuICAgICAqIEBwYXJhbSBidW5kbGVJZCBUaGUgYXBwJ3MgYnVuZGxlIGlkZW50aWZpZXJcbiAgICAgKiBAcGFyYW0gYXBwQXBwbGVJZCBUaGUgYXBwJ3MgaWRlbnRpZmllciwgb21taXR0ZWQgaW4gdGhlIHNhbmRib3ggZW52aXJvbm1lbnRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihhcHBsZVJvb3RDZXJ0aWZpY2F0ZXM6IEJ1ZmZlcltdLCBlbmFibGVPbmxpbmVDaGVja3M6IGJvb2xlYW4sIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCwgYnVuZGxlSWQ6IHN0cmluZywgYXBwQXBwbGVJZD86IG51bWJlcikge1xuICAgICAgdGhpcy5yb290Q2VydGlmaWNhdGVzID0gYXBwbGVSb290Q2VydGlmaWNhdGVzLm1hcChjZXJ0ID0+IG5ldyBYNTA5Q2VydGlmaWNhdGUoY2VydCkpXG4gICAgICB0aGlzLmVuYWJsZU9ubGluZUNoZWNrcyA9IGVuYWJsZU9ubGluZUNoZWNrc1xuICAgICAgdGhpcy5idW5kbGVJZCA9IGJ1bmRsZUlkO1xuICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50XG4gICAgICB0aGlzLmFwcEFwcGxlSWQgPSBhcHBBcHBsZUlkXG4gICAgICBpZiAoZW52aXJvbm1lbnQgPT09IEVudmlyb25tZW50LlBST0RVQ1RJT04gJiYgYXBwQXBwbGVJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImFwcEFwcGxlSWQgaXMgcmVxdWlyZWQgd2hlbiB0aGUgZW52aXJvbm1lbnQgaXMgUHJvZHVjdGlvblwiKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIGFuZCBkZWNvZGVzIGEgc2lnbmVkVHJhbnNhY3Rpb24gb2J0YWluZWQgZnJvbSB0aGUgQXBwIFN0b3JlIFNlcnZlciBBUEksIGFuIEFwcCBTdG9yZSBTZXJ2ZXIgTm90aWZpY2F0aW9uLCBvciBmcm9tIGEgZGV2aWNlXG4gICAgICogU2VlIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9qd3N0cmFuc2FjdGlvbiBKV1NUcmFuc2FjdGlvbn1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaWduZWRUcmFuc2FjdGlvbiBUaGUgc2lnbmVkVHJhbnNhY3Rpb24gZmllbGRcbiAgICAgKiBAcmV0dXJuIFRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGluZm8gYWZ0ZXIgdmVyaWZpY2F0aW9uXG4gICAgICogQHRocm93cyBWZXJpZmljYXRpb25FeGNlcHRpb24gVGhyb3duIGlmIHRoZSBkYXRhIGNvdWxkIG5vdCBiZSB2ZXJpZmllZFxuICAgICAqL1xuICAgIGFzeW5jIHZlcmlmeUFuZERlY29kZVRyYW5zYWN0aW9uKHNpZ25lZFRyYW5zYWN0aW9uSW5mbzogc3RyaW5nKTogUHJvbWlzZTxKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkPiB7XG4gICAgICBjb25zdCBkZWNvZGVkSldUOiBKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkID0gYXdhaXQgdGhpcy52ZXJpZnlKV1Qoc2lnbmVkVHJhbnNhY3Rpb25JbmZvLCB0aGlzLkpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IsIHRoaXMuZXh0cmFjdFNpZ25lZERhdGUpO1xuICAgICAgaWYgKGRlY29kZWRKV1QuYnVuZGxlSWQgIT09IHRoaXMuYnVuZGxlSWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9BUFBfSURFTlRJRklFUilcbiAgICAgIH1cbiAgICAgIGlmIChkZWNvZGVkSldULmVudmlyb25tZW50ICE9PSB0aGlzLmVudmlyb25tZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLklOVkFMSURfRU5WSVJPTk1FTlQpXG4gICAgICB9XG4gICAgICByZXR1cm4gZGVjb2RlZEpXVDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyBhbmQgZGVjb2RlcyBhIHNpZ25lZFJlbmV3YWxJbmZvIG9idGFpbmVkIGZyb20gdGhlIEFwcCBTdG9yZSBTZXJ2ZXIgQVBJLCBhbiBBcHAgU3RvcmUgU2VydmVyIE5vdGlmaWNhdGlvbiwgb3IgZnJvbSBhIGRldmljZVxuICAgICAqIFNlZSB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvandzcmVuZXdhbGluZm8gSldTUmVuZXdhbEluZm99XG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2lnbmVkUmVuZXdhbEluZm8gVGhlIHNpZ25lZFJlbmV3YWxJbmZvIGZpZWxkXG4gICAgICogQHJldHVybiBUaGUgZGVjb2RlZCByZW5ld2FsIGluZm8gYWZ0ZXIgdmVyaWZpY2F0aW9uXG4gICAgICogQHRocm93cyBWZXJpZmljYXRpb25FeGNlcHRpb24gVGhyb3duIGlmIHRoZSBkYXRhIGNvdWxkIG5vdCBiZSB2ZXJpZmllZFxuICAgICAqL1xuICAgIGFzeW5jIHZlcmlmeUFuZERlY29kZVJlbmV3YWxJbmZvKHNpZ25lZFJlbmV3YWxJbmZvOiBzdHJpbmcpOiBQcm9taXNlPEpXU1JlbmV3YWxJbmZvRGVjb2RlZFBheWxvYWQ+IHtcbiAgICAgIGNvbnN0IGRlY29kZWRSZW5ld2FsSW5mbzogSldTUmVuZXdhbEluZm9EZWNvZGVkUGF5bG9hZCA9IGF3YWl0IHRoaXMudmVyaWZ5SldUKHNpZ25lZFJlbmV3YWxJbmZvLCB0aGlzLkpXU1JlbmV3YWxJbmZvRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IsIHRoaXMuZXh0cmFjdFNpZ25lZERhdGUpO1xuICAgICAgY29uc3QgZW52aXJvbm1lbnQgPSBkZWNvZGVkUmVuZXdhbEluZm8uZW52aXJvbm1lbnRcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICE9PSBlbnZpcm9ubWVudCkge1xuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5JTlZBTElEX0VOVklST05NRU5UKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGRlY29kZWRSZW5ld2FsSW5mb1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIGFuZCBkZWNvZGVzIGFuIEFwcCBTdG9yZSBTZXJ2ZXIgTm90aWZpY2F0aW9uIHNpZ25lZFBheWxvYWRcbiAgICAgKiBTZWUge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVybm90aWZpY2F0aW9ucy9zaWduZWRwYXlsb2FkIHNpZ25lZFBheWxvYWR9XG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2lnbmVkUGF5bG9hZCBUaGUgcGF5bG9hZCByZWNlaXZlZCBieSB5b3VyIHNlcnZlclxuICAgICAqIEByZXR1cm4gVGhlIGRlY29kZWQgcGF5bG9hZCBhZnRlciB2ZXJpZmljYXRpb25cbiAgICAgKiBAdGhyb3dzIFZlcmlmaWNhdGlvbkV4Y2VwdGlvbiBUaHJvd24gaWYgdGhlIGRhdGEgY291bGQgbm90IGJlIHZlcmlmaWVkXG4gICAgICovXG4gICAgYXN5bmMgdmVyaWZ5QW5kRGVjb2RlTm90aWZpY2F0aW9uKHNpZ25lZFBheWxvYWQ6IHN0cmluZyk6IFByb21pc2U8UmVzcG9uc2VCb2R5VjJEZWNvZGVkUGF5bG9hZD4ge1xuICAgICAgY29uc3QgZGVjb2RlZEpXVDogUmVzcG9uc2VCb2R5VjJEZWNvZGVkUGF5bG9hZCA9IGF3YWl0IHRoaXMudmVyaWZ5SldUKHNpZ25lZFBheWxvYWQsIHRoaXMucmVzcG9uc2VCb2R5VjJEZWNvZGVkUGF5bG9hZFZhbGlkYXRvciwgdGhpcy5leHRyYWN0U2lnbmVkRGF0ZSk7XG4gICAgICBsZXQgYXBwQXBwbGVJZDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gICAgICBsZXQgYnVuZGxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgICAgbGV0IGVudmlyb25tZW50OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICAgIGlmIChkZWNvZGVkSldULmRhdGEpIHtcbiAgICAgICAgYXBwQXBwbGVJZCA9IGRlY29kZWRKV1QuZGF0YS5hcHBBcHBsZUlkXG4gICAgICAgIGJ1bmRsZUlkID0gZGVjb2RlZEpXVC5kYXRhLmJ1bmRsZUlkXG4gICAgICAgIGVudmlyb25tZW50ID0gZGVjb2RlZEpXVC5kYXRhLmVudmlyb25tZW50XG4gICAgICB9IGVsc2UgaWYgKGRlY29kZWRKV1Quc3VtbWFyeSkge1xuICAgICAgICBhcHBBcHBsZUlkID0gZGVjb2RlZEpXVC5zdW1tYXJ5LmFwcEFwcGxlSWRcbiAgICAgICAgYnVuZGxlSWQgPSBkZWNvZGVkSldULnN1bW1hcnkuYnVuZGxlSWRcbiAgICAgICAgZW52aXJvbm1lbnQgPSBkZWNvZGVkSldULnN1bW1hcnkuZW52aXJvbm1lbnRcbiAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZEpXVC5leHRlcm5hbFB1cmNoYXNlVG9rZW4pIHtcbiAgICAgICAgYXBwQXBwbGVJZCA9IGRlY29kZWRKV1QuZXh0ZXJuYWxQdXJjaGFzZVRva2VuLmFwcEFwcGxlSWRcbiAgICAgICAgYnVuZGxlSWQgPSBkZWNvZGVkSldULmV4dGVybmFsUHVyY2hhc2VUb2tlbi5idW5kbGVJZFxuICAgICAgICBpZiAoZGVjb2RlZEpXVC5leHRlcm5hbFB1cmNoYXNlVG9rZW4uZXh0ZXJuYWxQdXJjaGFzZUlkICYmIGRlY29kZWRKV1QuZXh0ZXJuYWxQdXJjaGFzZVRva2VuLmV4dGVybmFsUHVyY2hhc2VJZC5zdGFydHNXaXRoKFwiU0FOREJPWFwiKSkge1xuICAgICAgICAgIGVudmlyb25tZW50ID0gRW52aXJvbm1lbnQuU0FOREJPWFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVudmlyb25tZW50ID0gRW52aXJvbm1lbnQuUFJPRFVDVElPTlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnZlcmlmeU5vdGlmaWNhdGlvbihidW5kbGVJZCwgYXBwQXBwbGVJZCwgZW52aXJvbm1lbnQpXG4gICAgICByZXR1cm4gZGVjb2RlZEpXVFxuICAgIH1cblxuICAgIHByb3RlY3RlZCB2ZXJpZnlOb3RpZmljYXRpb24oYnVuZGxlSWQ/OiBzdHJpbmcsIGFwcEFwcGxlSWQ/OiBudW1iZXIsIGVudmlyb25tZW50Pzogc3RyaW5nKSB7XG4gICAgICBpZiAodGhpcy5idW5kbGVJZCAhPT0gYnVuZGxlSWQgfHwgKHRoaXMuZW52aXJvbm1lbnQgPT09IEVudmlyb25tZW50LlBST0RVQ1RJT04gJiYgdGhpcy5hcHBBcHBsZUlkICE9PSBhcHBBcHBsZUlkKSkge1xuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5JTlZBTElEX0FQUF9JREVOVElGSUVSKVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgIT09IGVudmlyb25tZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLklOVkFMSURfRU5WSVJPTk1FTlQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmVyaWZpZXMgYW5kIGRlY29kZXMgYSBzaWduZWQgQXBwVHJhbnNhY3Rpb25cbiAgICAgKiBTZWUge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3N0b3Jla2l0L2FwcHRyYW5zYWN0aW9uIEFwcFRyYW5zYWN0aW9ufVxuICAgICAqXG4gICAgICogQHBhcmFtIHNpZ25lZEFwcFRyYW5zYWN0aW9uIFRoZSBzaWduZWQgQXBwVHJhbnNhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBUaGUgZGVjb2RlZCBBcHBUcmFuc2FjdGlvbiBhZnRlciB2YWxpZGF0aW9uXG4gICAgICogQHRocm93cyBWZXJpZmljYXRpb25FeGNlcHRpb24gVGhyb3duIGlmIHRoZSBkYXRhIGNvdWxkIG5vdCBiZSB2ZXJpZmllZFxuICAgICAqL1xuICAgIGFzeW5jIHZlcmlmeUFuZERlY29kZUFwcFRyYW5zYWN0aW9uKHNpZ25lZEFwcFRyYW5zYWN0aW9uOiBzdHJpbmcpOiBQcm9taXNlPEFwcFRyYW5zYWN0aW9uPiB7XG4gICAgICBjb25zdCBkZWNvZGVkQXBwVHJhbnNhY3Rpb246IEFwcFRyYW5zYWN0aW9uID0gYXdhaXQgdGhpcy52ZXJpZnlKV1Qoc2lnbmVkQXBwVHJhbnNhY3Rpb24sIHRoaXMuYXBwVHJhbnNhY3Rpb25WYWxpZGF0b3IsIHQgPT4gdC5yZWNlaXB0Q3JlYXRpb25EYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSgpIDogbmV3IERhdGUodC5yZWNlaXB0Q3JlYXRpb25EYXRlKSk7XG4gICAgICBjb25zdCBlbnZpcm9ubWVudCA9IGRlY29kZWRBcHBUcmFuc2FjdGlvbi5yZWNlaXB0VHlwZVxuICAgICAgaWYgKHRoaXMuYnVuZGxlSWQgIT09IGRlY29kZWRBcHBUcmFuc2FjdGlvbi5idW5kbGVJZCB8fCAodGhpcy5lbnZpcm9ubWVudCA9PT0gRW52aXJvbm1lbnQuUFJPRFVDVElPTiAmJiB0aGlzLmFwcEFwcGxlSWQgIT09IGRlY29kZWRBcHBUcmFuc2FjdGlvbi5hcHBBcHBsZUlkKSkge1xuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5JTlZBTElEX0FQUF9JREVOVElGSUVSKVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgIT09IGVudmlyb25tZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLklOVkFMSURfRU5WSVJPTk1FTlQpXG4gICAgICB9XG4gICAgICByZXR1cm4gZGVjb2RlZEFwcFRyYW5zYWN0aW9uXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIHZlcmlmeUpXVDxUPihqd3Q6IHN0cmluZywgdmFsaWRhdG9yOiBWYWxpZGF0b3I8VD4sIHNpZ25lZERhdGVFeHRyYWN0b3I6IChkZWNvZGVkSldUOiBUKSA9PiBEYXRlKTogUHJvbWlzZTxUPiB7XG4gICAgICBsZXQgY2VydGlmaWNhdGVDaGFpbjtcbiAgICAgIGxldCBkZWNvZGVkSldUXG4gICAgICB0cnkge1xuICAgICAgICBkZWNvZGVkSldUID0ganNvbndlYnRva2VuLmRlY29kZShqd3QpXG4gICAgICAgIGlmICghdmFsaWRhdG9yLnZhbGlkYXRlKGRlY29kZWRKV1QpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuRkFJTFVSRSlcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCA9PT0gRW52aXJvbm1lbnQuWENPREUgfHwgdGhpcy5lbnZpcm9ubWVudCA9PT0gRW52aXJvbm1lbnQuTE9DQUxfVEVTVElORykge1xuICAgICAgICAgIC8vIERhdGEgaXMgbm90IHNpZ25lZCBieSB0aGUgQXBwIFN0b3JlLCBhbmQgdmVyaWZpY2F0aW9uIHNob3VsZCBiZSBza2lwcGVkXG4gICAgICAgICAgLy8gVGhlIGVudmlyb25tZW50IE1VU1QgYmUgY2hlY2tlZCBpbiB0aGUgcHVibGljIG1ldGhvZCBjYWxsaW5nIHRoaXNcbiAgICAgICAgICByZXR1cm4gZGVjb2RlZEpXVFxuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgaGVhZGVyID0gand0LnNwbGl0KCcuJylbMF1cbiAgICAgICAgICBjb25zdCBkZWNvZGVkSGVhZGVyID0gYmFzZTY0dXJsLmRlY29kZShoZWFkZXIpXG4gICAgICAgICAgY29uc3QgaGVhZGVyT2JqID0gSlNPTi5wYXJzZShkZWNvZGVkSGVhZGVyKVxuICAgICAgICAgIGNvbnN0IGNoYWluOiBzdHJpbmdbXSA9IGhlYWRlck9ialsneDVjJ10gPz8gW11cbiAgICAgICAgICBpZiAoY2hhaW4ubGVuZ3RoICE9IDMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLklOVkFMSURfQ0hBSU5fTEVOR1RIKVxuICAgICAgICAgIH1cbiAgICAgICAgICBjZXJ0aWZpY2F0ZUNoYWluID0gY2hhaW4uc2xpY2UoMCwgMikubWFwKGNlcnQgPT4gbmV3IFg1MDlDZXJ0aWZpY2F0ZShCdWZmZXIuZnJvbShjZXJ0LCAnYmFzZTY0JykpKVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5JTlZBTElEX0NFUlRJRklDQVRFLCBlcnJvcilcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9DRVJUSUZJQ0FURSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlZmZlY3RpdmVEYXRlID0gdGhpcy5lbmFibGVPbmxpbmVDaGVja3MgPyBuZXcgRGF0ZSgpIDogc2lnbmVkRGF0ZUV4dHJhY3RvcihkZWNvZGVkSldUKVxuICAgICAgICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCB0aGlzLnZlcmlmeUNlcnRpZmljYXRlQ2hhaW4odGhpcy5yb290Q2VydGlmaWNhdGVzLCBjZXJ0aWZpY2F0ZUNoYWluWzBdLCBjZXJ0aWZpY2F0ZUNoYWluWzFdLCBlZmZlY3RpdmVEYXRlKTtcbiAgICAgICAgY29uc3QgZW5jb2RlZEtleSA9IHB1YmxpY0tleS5leHBvcnQoe1xuICAgICAgICAgIHR5cGU6IFwic3BraVwiLFxuICAgICAgICAgIGZvcm1hdDogXCJwZW1cIlxuICAgICAgICB9KTtcbiAgICAgICAganNvbndlYnRva2VuLnZlcmlmeShqd3QsIGVuY29kZWRLZXkpIGFzIFRcbiAgICAgICAgcmV0dXJuIGRlY29kZWRKV1RcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFZlcmlmaWNhdGlvbkV4Y2VwdGlvbikge1xuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLlZFUklGSUNBVElPTl9GQUlMVVJFLCBlcnJvcilcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5WRVJJRklDQVRJT05fRkFJTFVSRSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgdmVyaWZ5Q2VydGlmaWNhdGVDaGFpbih0cnVzdGVkUm9vdHM6IFg1MDlDZXJ0aWZpY2F0ZVtdLCBsZWFmOiBYNTA5Q2VydGlmaWNhdGUsIGludGVybWVkaWF0ZTogWDUwOUNlcnRpZmljYXRlLCBlZmZlY3RpdmVEYXRlOiBEYXRlKTogUHJvbWlzZTxLZXlPYmplY3Q+IHtcbiAgICAgIGxldCB2YWxpZGl0eSA9IGZhbHNlXG4gICAgICBsZXQgcm9vdENlcnRcbiAgICAgIGZvciAoY29uc3Qgcm9vdCBvZiB0cnVzdGVkUm9vdHMpIHtcbiAgICAgICAgaWYgKGludGVybWVkaWF0ZS52ZXJpZnkocm9vdC5wdWJsaWNLZXkpICYmIGludGVybWVkaWF0ZS5pc3N1ZXIgPT09IHJvb3Quc3ViamVjdCkge1xuICAgICAgICAgIHZhbGlkaXR5ID0gdHJ1ZVxuICAgICAgICAgIHJvb3RDZXJ0ID0gcm9vdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YWxpZGl0eSA9IHZhbGlkaXR5ICYmIGxlYWYudmVyaWZ5KGludGVybWVkaWF0ZS5wdWJsaWNLZXkpICYmIGxlYWYuaXNzdWVyID09PSBpbnRlcm1lZGlhdGUuc3ViamVjdFxuICAgICAgdmFsaWRpdHkgPSB2YWxpZGl0eSAmJiBpbnRlcm1lZGlhdGUuY2FcbiAgICAgIGNvbnN0IGpzcnNhc3NpZ25YNTA5TGVhZiA9IG5ldyBYNTA5KClcbiAgICAgIGpzcnNhc3NpZ25YNTA5TGVhZi5yZWFkQ2VydEhleChsZWFmLnJhdy50b1N0cmluZygnaGV4JykpXG4gICAgICBjb25zdCBqc3Jhc3NpZ25YNTA5SW50ZXJtZWRpYXRlID0gbmV3IFg1MDkoKVxuICAgICAganNyYXNzaWduWDUwOUludGVybWVkaWF0ZS5yZWFkQ2VydEhleChpbnRlcm1lZGlhdGUucmF3LnRvU3RyaW5nKCdoZXgnKSlcbiAgICAgIHZhbGlkaXR5ID0gdmFsaWRpdHkgJiYganNyc2Fzc2lnblg1MDlMZWFmLmdldEV4dEluZm8oXCIxLjIuODQwLjExMzYzNS4xMDAuNi4xMS4xXCIpICE9PSB1bmRlZmluZWRcbiAgICAgIHZhbGlkaXR5ID0gdmFsaWRpdHkgJiYganNyYXNzaWduWDUwOUludGVybWVkaWF0ZS5nZXRFeHRJbmZvKFwiMS4yLjg0MC4xMTM2MzUuMTAwLjYuMi4xXCIpICE9PSB1bmRlZmluZWRcbiAgICAgIGlmICghdmFsaWRpdHkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuVkVSSUZJQ0FUSU9OX0ZBSUxVUkUpO1xuICAgICAgfVxuICAgICAgcm9vdENlcnQgPSByb290Q2VydCBhcyBYNTA5Q2VydGlmaWNhdGVcbiAgICAgIHRoaXMuY2hlY2tEYXRlcyhsZWFmLCBlZmZlY3RpdmVEYXRlKVxuICAgICAgdGhpcy5jaGVja0RhdGVzKGludGVybWVkaWF0ZSwgZWZmZWN0aXZlRGF0ZSlcbiAgICAgIHRoaXMuY2hlY2tEYXRlcyhyb290Q2VydCwgZWZmZWN0aXZlRGF0ZSlcbiAgICAgIGlmICh0aGlzLmVuYWJsZU9ubGluZUNoZWNrcykge1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbdGhpcy5jaGVja09DU1BTdGF0dXMobGVhZiwgaW50ZXJtZWRpYXRlKSwgdGhpcy5jaGVja09DU1BTdGF0dXMoaW50ZXJtZWRpYXRlLCByb290Q2VydCldKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGxlYWYucHVibGljS2V5XG4gICAgfVxuICAgIHByb3RlY3RlZCBhc3luYyBjaGVja09DU1BTdGF0dXMoY2VydDogWDUwOUNlcnRpZmljYXRlLCBpc3N1ZXI6IFg1MDlDZXJ0aWZpY2F0ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgY29uc3QgYXV0aG9yaXR5UmV4ID0gL15PQ1NQIC0gVVJJOiguKikkL21cbiAgICAgIGNvbnN0IG1hdGNoUmVzdWx0ID0gY2VydC5pbmZvQWNjZXNzID8gYXV0aG9yaXR5UmV4LmV4ZWMoY2VydC5pbmZvQWNjZXNzKSA6IFwiXCJcbiAgICAgIGlmIChtYXRjaFJlc3VsdCA9PT0gbnVsbCB8fCBtYXRjaFJlc3VsdC5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9DRVJUSUZJQ0FURSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgS0pVUi5hc24xLm9jc3AuT0NTUFJlcXVlc3Qoe3JlcUxpc3Q6IFt7aXNzdWVyQ2VydDogaXNzdWVyLnRvU3RyaW5nKCksIHN1YmplY3RDZXJ0OiBjZXJ0LnRvU3RyaW5nKCkgLCBhbGc6IFwic2hhMjU2XCJ9XX0pXG4gICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKVxuICAgICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9vY3NwLXJlcXVlc3QnKVxuICAgICAgXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKG1hdGNoUmVzdWx0WzFdLCB7XG4gICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBCdWZmZXIuZnJvbShyZXF1ZXN0LmdldEVuY29kZWRIZXgoKSwgJ2hleCcpXG4gICAgICB9KVxuICAgICAgXG4gICAgICBjb25zdCByZXNwb25zZUJ1ZmZlciA9IGF3YWl0IHJlc3BvbnNlLmJ1ZmZlcigpXG4gICAgICBjb25zdCBwYXJzZWRSZXNwb25zZSA9IG5ldyAoS0pVUi5hc24xLm9jc3AgYXMgYW55KS5PQ1NQUGFyc2VyKCkuZ2V0T0NTUFJlc3BvbnNlKHJlc3BvbnNlQnVmZmVyLnRvU3RyaW5nKCdoZXgnKSlcbiAgICAgIC8vIFRoZSBpc3N1ZXIgY291bGQgYWxzbyBiZSB0aGUgc2lnbmVyXG4gICAgICBjb25zdCBqc3Jhc3NpZ25YNTA5SXNzdWVyID0gbmV3IFg1MDkoKVxuICAgICAganNyYXNzaWduWDUwOUlzc3Vlci5yZWFkQ2VydEhleChpc3N1ZXIucmF3LnRvU3RyaW5nKCdoZXgnKSlcbiAgICAgIGNvbnN0IGFsbENlcnRzOiBYNTA5W10gPSBbanNyYXNzaWduWDUwOUlzc3Vlcl1cbiAgICAgIGZvciAoY29uc3QgY2VydEhleCBvZiBwYXJzZWRSZXNwb25zZS5jZXJ0cykge1xuICAgICAgICBjb25zdCBjZXJ0ID0gbmV3IFg1MDkoKVxuICAgICAgICBjZXJ0LnJlYWRDZXJ0SGV4KGNlcnRIZXgpXG4gICAgICAgIGFsbENlcnRzLnB1c2goY2VydClcbiAgICAgIH1cbiAgICAgIGxldCBzaWduaW5nQ2VydDogWDUwOUNlcnRpZmljYXRlIHwgbnVsbCA9IG51bGxcbiAgICAgIGlmIChwYXJzZWRSZXNwb25zZS5yZXNwaWQua2V5KSB7XG4gICAgICAgIGZvciAoY29uc3QgY2VydCBvZiBhbGxDZXJ0cykge1xuICAgICAgICAgIGNvbnN0IHNoYXN1bSA9IGNyZWF0ZUhhc2goJ3NoYTEnKVxuICAgICAgICAgIHNoYXN1bS51cGRhdGUoQnVmZmVyLmZyb20oY2VydC5nZXRTUEtJVmFsdWUoKSwgJ2hleCcpKVxuICAgICAgICAgIGNvbnN0IHNwa2lIYXNoID0gc2hhc3VtLmRpZ2VzdCgnaGV4JylcbiAgICAgICAgICBpZiAoc3BraUhhc2ggPT09IHBhcnNlZFJlc3BvbnNlLnJlc3BpZC5rZXkpIHtcbiAgICAgICAgICAgIHNpZ25pbmdDZXJ0ID0gbmV3IFg1MDlDZXJ0aWZpY2F0ZShCdWZmZXIuZnJvbShjZXJ0LmhleCwgJ2hleCcpKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwYXJzZWRSZXNwb25zZS5yZXNwaWQubmFtZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNlcnQgb2YgYWxsQ2VydHMpIHtcbiAgICAgICAgICBpZiAoY2VydC5nZXRTdWJqZWN0KCkuc3RyID09PSBwYXJzZWRSZXNwb25zZS5yZXNwaWQubmFtZS5zdHIpIHtcbiAgICAgICAgICAgIHNpZ25pbmdDZXJ0ID0gbmV3IFg1MDlDZXJ0aWZpY2F0ZShCdWZmZXIuZnJvbShjZXJ0LmhleCwgJ2hleCcpKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNpZ25pbmdDZXJ0ID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuRkFJTFVSRSlcbiAgICAgIH1cbiAgICAgIC8vIFZlcmlmeSBTaWduaW5nIENlcnQgaXMgaXNzdWVkIGJ5IGlzc3VlclxuICAgICAgaWYgKHNpZ25pbmdDZXJ0LnB1YmxpY0tleSA9PT0gaXNzdWVyLnB1YmxpY0tleSAmJiBzaWduaW5nQ2VydC5zdWJqZWN0ID09PSBpc3N1ZXIuc3ViamVjdCkge1xuICAgICAgICAvLyBUaGlzIGlzIGRpcmVjdGx5IHNpZ25lZCBieSB0aGUgaXNzdWVyXG4gICAgICB9IGVsc2UgaWYgKHNpZ25pbmdDZXJ0LnZlcmlmeShpc3N1ZXIucHVibGljS2V5KSkge1xuICAgICAgICAvLyBUaGlzIGlzIGlzc3VlZCBieSB0aGUgaXNzdWVyLCBsZXQncyBjaGVjayB0aGUgZGF0ZXMgYW5kIHB1cnBvc2VcbiAgICAgICAgY29uc3Qgc2lnbmluZ0NlcnRBc2lnbiA9IG5ldyBYNTA5KClcbiAgICAgICAgc2lnbmluZ0NlcnRBc2lnbi5yZWFkQ2VydFBFTShzaWduaW5nQ2VydC50b1N0cmluZygpKVxuICAgICAgICBpZiAoIXNpZ25pbmdDZXJ0QXNpZ24uZ2V0RXh0RXh0S2V5VXNhZ2UoKS5hcnJheS5pbmNsdWRlcyhcIm9jc3BTaWduaW5nXCIpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9DRVJUSUZJQ0FURSlcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrRGF0ZXMoc2lnbmluZ0NlcnQsIG5ldyBEYXRlKCkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5JTlZBTElEX0NFUlRJRklDQVRFKVxuICAgICAgfVxuICAgIFxuICAgICAgLy8gRXh0cmFjdCByYXcgcmVzcG9uc2VEYXRhXG4gICAgICBjb25zdCByZXNwb25zZURhdGEgPSBBU04xSEVYLmdldFRMVmJ5TGlzdChyZXNwb25zZUJ1ZmZlci50b1N0cmluZygnaGV4JyksIDAsIFsxLCAwLCAxLCAwLCAwXSkgYXMgc3RyaW5nXG4gICAgICAvLyBWZXJpZnkgUGF5bG9hZCBzaWduZWQgYnkgY2VydFxuICAgICAgY29uc3Qgc2hvcnRBbGcgPSBwYXJzZWRSZXNwb25zZS5hbGcuc3Vic3RyaW5nKDAsIDYpLnRvVXBwZXJDYXNlKClcbiAgICAgIGlmIChzaG9ydEFsZyAhPT0gXCJTSEEyNTZcIiAmJiBzaG9ydEFsZyAhPT0gXCJTSEEzODRcIiAmJiBzaG9ydEFsZyAhPT0gXCJTSEE1MTJcIikge1xuICAgICAgICB0aHJvdyBuZXcgVmVyaWZpY2F0aW9uRXhjZXB0aW9uKFZlcmlmaWNhdGlvblN0YXR1cy5GQUlMVVJFKVxuICAgICAgfVxuXG4gICAgICBpZiAoIXZlcmlmeShzaG9ydEFsZywgQnVmZmVyLmZyb20ocmVzcG9uc2VEYXRhLCAnaGV4JyksIHNpZ25pbmdDZXJ0LnB1YmxpY0tleSwgQnVmZmVyLmZyb20ocGFyc2VkUmVzcG9uc2Uuc2lnaGV4LCAnaGV4JykpKSB7XG4gICAgICAgIHRocm93IG5ldyBWZXJpZmljYXRpb25FeGNlcHRpb24oVmVyaWZpY2F0aW9uU3RhdHVzLkZBSUxVUkUpXG4gICAgICB9XG4gICAgICBcbiAgICAgIGZvciAoY29uc3Qgc2luZ2xlUmVzcG9uc2Ugb2YgcGFyc2VkUmVzcG9uc2UuYXJyYXkpIHtcbiAgICAgICAgLy8gQ29uZmlybSBlbnRyeSBpcyBmb3IgdGhpcyBjZXJ0XG4gICAgICAgIGNvbnN0IGNlcnRJZEJ1aWxkZXIgPSBuZXcgS0pVUi5hc24xLm9jc3AuQ2VydElEKCkgYXMgYW55XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDZXJ0Q2VydElkID0gY2VydElkQnVpbGRlci5nZXRQYXJhbUJ5Q2VydHMoaXNzdWVyLnRvU3RyaW5nKCksIGNlcnQudG9TdHJpbmcoKSwgJ3NoYTI1NicpXG4gICAgICAgIGlmICghKGN1cnJlbnRDZXJ0Q2VydElkLmFsZyA9PT0gc2luZ2xlUmVzcG9uc2UuY2VydGlkLmFsZyAmJiBjdXJyZW50Q2VydENlcnRJZC5pc3NuYW1lID09PSBzaW5nbGVSZXNwb25zZS5jZXJ0aWQuaXNzbmFtZSAmJlxuICAgICAgICAgICAgICBjdXJyZW50Q2VydENlcnRJZC5pc3NrZXkgPT09IHNpbmdsZVJlc3BvbnNlLmNlcnRpZC5pc3NrZXkgJiYgY3VycmVudENlcnRDZXJ0SWQuc2Jqc24gPT09IHNpbmdsZVJlc3BvbnNlLmNlcnRpZC5zYmpzbikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIC8vIFZhbGlkYXRlIGNvbnRlbnRzXG4gICAgICAgIGNvbnN0IGlzc3VlRGF0ZSA9IHRoaXMucGFyc2VYNTA5RGF0ZShzaW5nbGVSZXNwb25zZS50aGlzdXBkYXRlKVxuICAgICAgICBjb25zdCBuZXh0RGF0ZSA9IHRoaXMucGFyc2VYNTA5RGF0ZShzaW5nbGVSZXNwb25zZS5uZXh0dXBkYXRlKVxuICAgICAgICBcbiAgICAgICAgaWYgKHNpbmdsZVJlc3BvbnNlLnN0YXR1cy5zdGF0dXMgIT09ICdnb29kJyB8fCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIE1BWF9TS0VXIDwgaXNzdWVEYXRlLmdldFRpbWUoKSB8fCBuZXh0RGF0ZS5nZXRUaW1lKCkgPCBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIE1BWF9TS0VXKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuRkFJTFVSRSlcbiAgICAgICAgfVxuICAgICAgICAvLyBTdWNjZXNzXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuRkFJTFVSRSlcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrRGF0ZXMoY2VydDogWDUwOUNlcnRpZmljYXRlLCBlZmZlY3RpdmVEYXRlOiBEYXRlKSB7XG4gICAgICBpZiAobmV3IERhdGUoY2VydC52YWxpZEZyb20pLmdldFRpbWUoKSA+IChlZmZlY3RpdmVEYXRlLmdldFRpbWUoKSArIE1BWF9TS0VXKXx8XG4gICAgICAgICAgbmV3IERhdGUoY2VydC52YWxpZFRvKS5nZXRUaW1lKCkgPCAoZWZmZWN0aXZlRGF0ZS5nZXRUaW1lKCkgLSBNQVhfU0tFVykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZlcmlmaWNhdGlvbkV4Y2VwdGlvbihWZXJpZmljYXRpb25TdGF0dXMuSU5WQUxJRF9DRVJUSUZJQ0FURSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlWDUwOURhdGUoZGF0ZTogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5yZXBsYWNlKFxuICAgICAgICAvXihcXGR7NH0pKFxcZFxcZCkoXFxkXFxkKShcXGRcXGQpKFxcZFxcZCkoXFxkXFxkKSQvLFxuICAgICAgICAnJDQ6JDU6JDYgJDIvJDMvJDEnXG4gICAgICApKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RTaWduZWREYXRlKGRlY29kZWRKV1Q6IERlY29kZWRTaWduZWREYXRhKTogRGF0ZSB7XG4gICAgICByZXR1cm4gZGVjb2RlZEpXVC5zaWduZWREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSgpIDogbmV3IERhdGUoZGVjb2RlZEpXVC5zaWduZWREYXRlKVxuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gVmVyaWZpY2F0aW9uU3RhdHVzIHtcbiAgT0ssXG4gIFZFUklGSUNBVElPTl9GQUlMVVJFLFxuICBJTlZBTElEX0FQUF9JREVOVElGSUVSLFxuICBJTlZBTElEX0VOVklST05NRU5ULFxuICBJTlZBTElEX0NIQUlOX0xFTkdUSCxcbiAgSU5WQUxJRF9DRVJUSUZJQ0FURSxcbiAgRkFJTFVSRVxufVxuXG5leHBvcnQgY2xhc3MgVmVyaWZpY2F0aW9uRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuICBzdGF0dXM6IFZlcmlmaWNhdGlvblN0YXR1c1xuICBjYXVzZT86IEVycm9yXG5cbiAgY29uc3RydWN0b3Ioc3RhdHVzOiBWZXJpZmljYXRpb25TdGF0dXMsIGNhdXNlPzogRXJyb3IpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzXG4gICAgdGhpcy5jYXVzZSA9IGNhdXNlXG4gIH1cbn0iXX0=

@@ -8,2 +8,3 @@ import { AccountTenure } from "./AccountTenure";

import { PlayTime } from "./PlayTime";
import { RefundPreference } from "./RefundPreference";
import { UserStatus } from "./UserStatus";

@@ -82,2 +83,8 @@ /**

userStatus?: UserStatus | number;
/**
* A value that indicates your preference, based on your operational logic, as to whether Apple should grant the refund.
*
* {@link https://developer.apple.com/documentation/appstoreserverapi/refundpreference refundPreference}
**/
refundPreference?: RefundPreference | number;
}

2

dist/models/ConsumptionRequest.js
"use strict";
// Copyright (c) 2023 Apple Inc. Licensed under MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc3VtcHRpb25SZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL0NvbnN1bXB0aW9uUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIEFwcGxlIEluYy4gTGljZW5zZWQgdW5kZXIgTUlUIExpY2Vuc2UuXG5cbmltcG9ydCB7IEFjY291bnRUZW51cmUgfSBmcm9tIFwiLi9BY2NvdW50VGVudXJlXCJcbmltcG9ydCB7IENvbnN1bXB0aW9uU3RhdHVzIH0gZnJvbSBcIi4vQ29uc3VtcHRpb25TdGF0dXNcIlxuaW1wb3J0IHsgRGVsaXZlcnlTdGF0dXMgfSBmcm9tIFwiLi9EZWxpdmVyeVN0YXR1c1wiXG5pbXBvcnQgeyBMaWZldGltZURvbGxhcnNQdXJjaGFzZWQgfSBmcm9tIFwiLi9MaWZldGltZURvbGxhcnNQdXJjaGFzZWRcIlxuaW1wb3J0IHsgTGlmZXRpbWVEb2xsYXJzUmVmdW5kZWQgfSBmcm9tIFwiLi9MaWZldGltZURvbGxhcnNSZWZ1bmRlZFwiXG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gXCIuL1BsYXRmb3JtXCJcbmltcG9ydCB7IFBsYXlUaW1lIH0gZnJvbSBcIi4vUGxheVRpbWVcIlxuaW1wb3J0IHsgVXNlclN0YXR1cyB9IGZyb20gXCIuL1VzZXJTdGF0dXNcIlxuXG4vKipcbiAqIFRoZSByZXF1ZXN0IGJvZHkgY29udGFpbmluZyBjb25zdW1wdGlvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvY29uc3VtcHRpb25yZXF1ZXN0IENvbnN1bXB0aW9uUmVxdWVzdH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdW1wdGlvblJlcXVlc3Qge1xuXG4gICAgLyoqXG4gICAgICogQSBCb29sZWFuIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGN1c3RvbWVyIGNvbnNlbnRlZCB0byBwcm92aWRlIGNvbnN1bXB0aW9uIGRhdGEgdG8gdGhlIEFwcCBTdG9yZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9jdXN0b21lcmNvbnNlbnRlZCBjdXN0b21lckNvbnNlbnRlZH1cbiAgICAgKiovXG4gICAgY3VzdG9tZXJDb25zZW50ZWQ/OiBib29sZWFuXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgdGhlIGV4dGVudCB0byB3aGljaCB0aGUgY3VzdG9tZXIgY29uc3VtZWQgdGhlIGluLWFwcCBwdXJjaGFzZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9jb25zdW1wdGlvbnN0YXR1cyBjb25zdW1wdGlvblN0YXR1c31cbiAgICAgKiovXG4gICAgY29uc3VtcHRpb25TdGF0dXM/OiBDb25zdW1wdGlvblN0YXR1cyB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoZSBwbGF0Zm9ybSBvbiB3aGljaCB0aGUgY3VzdG9tZXIgY29uc3VtZWQgdGhlIGluLWFwcCBwdXJjaGFzZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9wbGF0Zm9ybSBwbGF0Zm9ybX1cbiAgICAgKiovXG4gICAgcGxhdGZvcm0/OiBQbGF0Zm9ybSB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIEJvb2xlYW4gdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB5b3UgcHJvdmlkZWQsIHByaW9yIHRvIGl0cyBwdXJjaGFzZSwgYSBmcmVlIHNhbXBsZSBvciB0cmlhbCBvZiB0aGUgY29udGVudCwgb3IgaW5mb3JtYXRpb24gYWJvdXQgaXRzIGZ1bmN0aW9uYWxpdHkuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvc2FtcGxlY29udGVudHByb3ZpZGVkIHNhbXBsZUNvbnRlbnRQcm92aWRlZH1cbiAgICAgKiovXG4gICAgc2FtcGxlQ29udGVudFByb3ZpZGVkPzogYm9vbGVhblxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGFwcCBzdWNjZXNzZnVsbHkgZGVsaXZlcmVkIGFuIGluLWFwcCBwdXJjaGFzZSB0aGF0IHdvcmtzIHByb3Blcmx5LlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL2RlbGl2ZXJ5c3RhdHVzIGRlbGl2ZXJ5U3RhdHVzfVxuICAgICAqKi9cbiAgICBkZWxpdmVyeVN0YXR1cz86IERlbGl2ZXJ5U3RhdHVzIHwgbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBVVUlEIHRoYXQgYW4gYXBwIG9wdGlvbmFsbHkgZ2VuZXJhdGVzIHRvIG1hcCBhIGN1c3RvbWVy4oCZcyBpbi1hcHAgcHVyY2hhc2Ugd2l0aCBpdHMgcmVzdWx0aW5nIEFwcCBTdG9yZSB0cmFuc2FjdGlvbi5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9hcHBhY2NvdW50dG9rZW4gYXBwQWNjb3VudFRva2VufVxuICAgICAqKi9cbiAgICBhcHBBY2NvdW50VG9rZW4/OiBzdHJpbmdcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogVGhlIGFnZSBvZiB0aGUgY3VzdG9tZXLigJlzIGFjY291bnQuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvYWNjb3VudHRlbnVyZSBhY2NvdW50VGVudXJlfVxuICAgICAqKi9cbiAgICBhY2NvdW50VGVudXJlPzogQWNjb3VudFRlbnVyZSB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoZSBhbW91bnQgb2YgdGltZSB0aGF0IHRoZSBjdXN0b21lciB1c2VkIHRoZSBhcHAuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvY29uc3VtcHRpb25yZXF1ZXN0IENvbnN1bXB0aW9uUmVxdWVzdH1cbiAgICAgKiovXG4gICAgcGxheVRpbWU/OiBQbGF5VGltZSB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoZSB0b3RhbCBhbW91bnQsIGluIFVTRCwgb2YgcmVmdW5kcyB0aGUgY3VzdG9tZXIgaGFzIHJlY2VpdmVkLCBpbiB5b3VyIGFwcCwgYWNyb3NzIGFsbCBwbGF0Zm9ybXMuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvbGlmZXRpbWVkb2xsYXJzcmVmdW5kZWQgbGlmZXRpbWVEb2xsYXJzUmVmdW5kZWR9XG4gICAgICoqL1xuICAgIGxpZmV0aW1lRG9sbGFyc1JlZnVuZGVkPzogTGlmZXRpbWVEb2xsYXJzUmVmdW5kZWQgfCBudW1iZXJcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB0aGUgdG90YWwgYW1vdW50LCBpbiBVU0QsIG9mIGluLWFwcCBwdXJjaGFzZXMgdGhlIGN1c3RvbWVyIGhhcyBtYWRlIGluIHlvdXIgYXBwLCBhY3Jvc3MgYWxsIHBsYXRmb3Jtcy5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9saWZldGltZWRvbGxhcnNwdXJjaGFzZWQgbGlmZXRpbWVEb2xsYXJzUHVyY2hhc2VkfVxuICAgICAqKi9cbiAgICBsaWZldGltZURvbGxhcnNQdXJjaGFzZWQ/OiBMaWZldGltZURvbGxhcnNQdXJjaGFzZWQgfCBudW1iZXJcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogVGhlIHN0YXR1cyBvZiB0aGUgY3VzdG9tZXLigJlzIGFjY291bnQuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvdXNlcnN0YXR1cyB1c2VyU3RhdHVzfVxuICAgICAqKi9cbiAgICB1c2VyU3RhdHVzPzogVXNlclN0YXR1cyB8IG51bWJlclxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc3VtcHRpb25SZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL0NvbnN1bXB0aW9uUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIEFwcGxlIEluYy4gTGljZW5zZWQgdW5kZXIgTUlUIExpY2Vuc2UuXG5cbmltcG9ydCB7IEFjY291bnRUZW51cmUgfSBmcm9tIFwiLi9BY2NvdW50VGVudXJlXCJcbmltcG9ydCB7IENvbnN1bXB0aW9uU3RhdHVzIH0gZnJvbSBcIi4vQ29uc3VtcHRpb25TdGF0dXNcIlxuaW1wb3J0IHsgRGVsaXZlcnlTdGF0dXMgfSBmcm9tIFwiLi9EZWxpdmVyeVN0YXR1c1wiXG5pbXBvcnQgeyBMaWZldGltZURvbGxhcnNQdXJjaGFzZWQgfSBmcm9tIFwiLi9MaWZldGltZURvbGxhcnNQdXJjaGFzZWRcIlxuaW1wb3J0IHsgTGlmZXRpbWVEb2xsYXJzUmVmdW5kZWQgfSBmcm9tIFwiLi9MaWZldGltZURvbGxhcnNSZWZ1bmRlZFwiXG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gXCIuL1BsYXRmb3JtXCJcbmltcG9ydCB7IFBsYXlUaW1lIH0gZnJvbSBcIi4vUGxheVRpbWVcIlxuaW1wb3J0IHsgUmVmdW5kUHJlZmVyZW5jZSB9IGZyb20gXCIuL1JlZnVuZFByZWZlcmVuY2VcIlxuaW1wb3J0IHsgVXNlclN0YXR1cyB9IGZyb20gXCIuL1VzZXJTdGF0dXNcIlxuXG4vKipcbiAqIFRoZSByZXF1ZXN0IGJvZHkgY29udGFpbmluZyBjb25zdW1wdGlvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvY29uc3VtcHRpb25yZXF1ZXN0IENvbnN1bXB0aW9uUmVxdWVzdH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdW1wdGlvblJlcXVlc3Qge1xuXG4gICAgLyoqXG4gICAgICogQSBCb29sZWFuIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGN1c3RvbWVyIGNvbnNlbnRlZCB0byBwcm92aWRlIGNvbnN1bXB0aW9uIGRhdGEgdG8gdGhlIEFwcCBTdG9yZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9jdXN0b21lcmNvbnNlbnRlZCBjdXN0b21lckNvbnNlbnRlZH1cbiAgICAgKiovXG4gICAgY3VzdG9tZXJDb25zZW50ZWQ/OiBib29sZWFuXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgdGhlIGV4dGVudCB0byB3aGljaCB0aGUgY3VzdG9tZXIgY29uc3VtZWQgdGhlIGluLWFwcCBwdXJjaGFzZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9jb25zdW1wdGlvbnN0YXR1cyBjb25zdW1wdGlvblN0YXR1c31cbiAgICAgKiovXG4gICAgY29uc3VtcHRpb25TdGF0dXM/OiBDb25zdW1wdGlvblN0YXR1cyB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoZSBwbGF0Zm9ybSBvbiB3aGljaCB0aGUgY3VzdG9tZXIgY29uc3VtZWQgdGhlIGluLWFwcCBwdXJjaGFzZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9wbGF0Zm9ybSBwbGF0Zm9ybX1cbiAgICAgKiovXG4gICAgcGxhdGZvcm0/OiBQbGF0Zm9ybSB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIEJvb2xlYW4gdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB5b3UgcHJvdmlkZWQsIHByaW9yIHRvIGl0cyBwdXJjaGFzZSwgYSBmcmVlIHNhbXBsZSBvciB0cmlhbCBvZiB0aGUgY29udGVudCwgb3IgaW5mb3JtYXRpb24gYWJvdXQgaXRzIGZ1bmN0aW9uYWxpdHkuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvc2FtcGxlY29udGVudHByb3ZpZGVkIHNhbXBsZUNvbnRlbnRQcm92aWRlZH1cbiAgICAgKiovXG4gICAgc2FtcGxlQ29udGVudFByb3ZpZGVkPzogYm9vbGVhblxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGFwcCBzdWNjZXNzZnVsbHkgZGVsaXZlcmVkIGFuIGluLWFwcCBwdXJjaGFzZSB0aGF0IHdvcmtzIHByb3Blcmx5LlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL2RlbGl2ZXJ5c3RhdHVzIGRlbGl2ZXJ5U3RhdHVzfVxuICAgICAqKi9cbiAgICBkZWxpdmVyeVN0YXR1cz86IERlbGl2ZXJ5U3RhdHVzIHwgbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBVVUlEIHRoYXQgYW4gYXBwIG9wdGlvbmFsbHkgZ2VuZXJhdGVzIHRvIG1hcCBhIGN1c3RvbWVy4oCZcyBpbi1hcHAgcHVyY2hhc2Ugd2l0aCBpdHMgcmVzdWx0aW5nIEFwcCBTdG9yZSB0cmFuc2FjdGlvbi5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9hcHBhY2NvdW50dG9rZW4gYXBwQWNjb3VudFRva2VufVxuICAgICAqKi9cbiAgICBhcHBBY2NvdW50VG9rZW4/OiBzdHJpbmdcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogVGhlIGFnZSBvZiB0aGUgY3VzdG9tZXLigJlzIGFjY291bnQuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvYWNjb3VudHRlbnVyZSBhY2NvdW50VGVudXJlfVxuICAgICAqKi9cbiAgICBhY2NvdW50VGVudXJlPzogQWNjb3VudFRlbnVyZSB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoZSBhbW91bnQgb2YgdGltZSB0aGF0IHRoZSBjdXN0b21lciB1c2VkIHRoZSBhcHAuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvY29uc3VtcHRpb25yZXF1ZXN0IENvbnN1bXB0aW9uUmVxdWVzdH1cbiAgICAgKiovXG4gICAgcGxheVRpbWU/OiBQbGF5VGltZSB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoZSB0b3RhbCBhbW91bnQsIGluIFVTRCwgb2YgcmVmdW5kcyB0aGUgY3VzdG9tZXIgaGFzIHJlY2VpdmVkLCBpbiB5b3VyIGFwcCwgYWNyb3NzIGFsbCBwbGF0Zm9ybXMuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvbGlmZXRpbWVkb2xsYXJzcmVmdW5kZWQgbGlmZXRpbWVEb2xsYXJzUmVmdW5kZWR9XG4gICAgICoqL1xuICAgIGxpZmV0aW1lRG9sbGFyc1JlZnVuZGVkPzogTGlmZXRpbWVEb2xsYXJzUmVmdW5kZWQgfCBudW1iZXJcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB0aGUgdG90YWwgYW1vdW50LCBpbiBVU0QsIG9mIGluLWFwcCBwdXJjaGFzZXMgdGhlIGN1c3RvbWVyIGhhcyBtYWRlIGluIHlvdXIgYXBwLCBhY3Jvc3MgYWxsIHBsYXRmb3Jtcy5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9saWZldGltZWRvbGxhcnNwdXJjaGFzZWQgbGlmZXRpbWVEb2xsYXJzUHVyY2hhc2VkfVxuICAgICAqKi9cbiAgICBsaWZldGltZURvbGxhcnNQdXJjaGFzZWQ/OiBMaWZldGltZURvbGxhcnNQdXJjaGFzZWQgfCBudW1iZXJcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogVGhlIHN0YXR1cyBvZiB0aGUgY3VzdG9tZXLigJlzIGFjY291bnQuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvdXNlcnN0YXR1cyB1c2VyU3RhdHVzfVxuICAgICAqKi9cbiAgICB1c2VyU3RhdHVzPzogVXNlclN0YXR1cyB8IG51bWJlclxuXG4gICAgLyoqXG4gICAgICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB5b3VyIHByZWZlcmVuY2UsIGJhc2VkIG9uIHlvdXIgb3BlcmF0aW9uYWwgbG9naWMsIGFzIHRvIHdoZXRoZXIgQXBwbGUgc2hvdWxkIGdyYW50IHRoZSByZWZ1bmQuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvcmVmdW5kcHJlZmVyZW5jZSByZWZ1bmRQcmVmZXJlbmNlfVxuICAgICAqKi9cbiAgICByZWZ1bmRQcmVmZXJlbmNlPzogUmVmdW5kUHJlZmVyZW5jZSB8IG51bWJlclxufSJdfQ==

@@ -0,1 +1,2 @@

import { ConsumptionRequestReason, ConsumptionRequestReasonValidator } from "./ConsumptionRequestReason";
import { Environment, EnvironmentValidator } from "./Environment";

@@ -52,2 +53,8 @@ import { Status, StatusValidator } from "./Status";

status?: Status | number;
/**
* The reason the customer requested the refund.
*
* {@link https://developer.apple.com/documentation/appstoreservernotifications/consumptionrequestreason consumptionRequestReason}
**/
consumptionRequestReason?: ConsumptionRequestReason | string;
}

@@ -57,3 +64,4 @@ export declare class DataValidator implements Validator<Data> {

static readonly statusValidator: StatusValidator;
static readonly consumptionRequestReasonValidator: ConsumptionRequestReasonValidator;
validate(obj: any): obj is Data;
}

@@ -5,2 +5,3 @@ "use strict";

exports.DataValidator = void 0;
const ConsumptionRequestReason_1 = require("./ConsumptionRequestReason");
const Environment_1 = require("./Environment");

@@ -31,2 +32,5 @@ const Status_1 = require("./Status");

}
if ((typeof obj['consumptionRequestReason'] !== 'undefined') && !(DataValidator.consumptionRequestReasonValidator.validate(obj['consumptionRequestReason']))) {
return false;
}
return true;

@@ -38,2 +42,3 @@ }

DataValidator.statusValidator = new Status_1.StatusValidator();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9EYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQUU1RCwrQ0FBaUU7QUFDakUscUNBQWtEO0FBNkRsRCxNQUFhLGFBQWE7SUFHdEIsUUFBUSxDQUFDLEdBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BILE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDekYsT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFILE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6SSxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLHVCQUF1QixDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLHVCQUF1QixDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDakssT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsbUJBQW1CLENBQUMsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JKLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRyxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDOztBQTFCTCxzQ0EyQkM7QUExQm1CLGtDQUFvQixHQUFHLElBQUksa0NBQW9CLEVBQUUsQ0FBQTtBQUNqRCw2QkFBZSxHQUFHLElBQUksd0JBQWUsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIEFwcGxlIEluYy4gTGljZW5zZWQgdW5kZXIgTUlUIExpY2Vuc2UuXG5cbmltcG9ydCB7IEVudmlyb25tZW50LCBFbnZpcm9ubWVudFZhbGlkYXRvciB9IGZyb20gXCIuL0Vudmlyb25tZW50XCJcbmltcG9ydCB7IFN0YXR1cywgU3RhdHVzVmFsaWRhdG9yIH0gZnJvbSBcIi4vU3RhdHVzXCJcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiXG5cbi8qKlxuICogVGhlIGFwcCBtZXRhZGF0YSBhbmQgdGhlIHNpZ25lZCByZW5ld2FsIGFuZCB0cmFuc2FjdGlvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJub3RpZmljYXRpb25zL2RhdGEgZGF0YX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhIHtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2ZXIgZW52aXJvbm1lbnQgdGhhdCB0aGUgbm90aWZpY2F0aW9uIGFwcGxpZXMgdG8sIGVpdGhlciBzYW5kYm94IG9yIHByb2R1Y3Rpb24uXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJub3RpZmljYXRpb25zL2Vudmlyb25tZW50IGVudmlyb25tZW50fVxuICAgICAqKi9cbiAgICBlbnZpcm9ubWVudD86IEVudmlyb25tZW50IHwgc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiBhbiBhcHAgaW4gdGhlIEFwcCBTdG9yZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcm5vdGlmaWNhdGlvbnMvYXBwYXBwbGVpZCBhcHBBcHBsZUlkfVxuICAgICAqKi9cbiAgICBhcHBBcHBsZUlkPzogbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgaWRlbnRpZmllciBvZiBhbiBhcHAuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvYnVuZGxlaWQgYnVuZGxlSWR9XG4gICAgICoqL1xuICAgIGJ1bmRsZUlkPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBidWlsZCB0aGF0IGlkZW50aWZpZXMgYW4gaXRlcmF0aW9uIG9mIHRoZSBidW5kbGUuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJub3RpZmljYXRpb25zL2J1bmRsZXZlcnNpb24gYnVuZGxlVmVyc2lvbn1cbiAgICAgKiovXG4gICAgYnVuZGxlVmVyc2lvbj86IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUcmFuc2FjdGlvbiBpbmZvcm1hdGlvbiBzaWduZWQgYnkgdGhlIEFwcCBTdG9yZSwgaW4gSlNPTiBXZWIgU2lnbmF0dXJlIChKV1MpIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9qd3N0cmFuc2FjdGlvbiBKV1NUcmFuc2FjdGlvbn1cbiAgICAgKiovXG4gICAgc2lnbmVkVHJhbnNhY3Rpb25JbmZvPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFN1YnNjcmlwdGlvbiByZW5ld2FsIGluZm9ybWF0aW9uLCBzaWduZWQgYnkgdGhlIEFwcCBTdG9yZSwgaW4gSlNPTiBXZWIgU2lnbmF0dXJlIChKV1MpIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9qd3NyZW5ld2FsaW5mbyBKV1NSZW5ld2FsSW5mb31cbiAgICAgKiovXG4gICAgc2lnbmVkUmVuZXdhbEluZm8/OiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIFRoZSBzdGF0dXMgb2YgYW4gYXV0by1yZW5ld2FibGUgc3Vic2NyaXB0aW9uIGFzIG9mIHRoZSBzaWduZWREYXRlIGluIHRoZSByZXNwb25zZUJvZHlWMkRlY29kZWRQYXlsb2FkLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVybm90aWZpY2F0aW9ucy9zdGF0dXMgc3RhdHVzfVxuICAgICAqKi9cbiAgICBzdGF0dXM/OiBTdGF0dXMgfCBudW1iZXJcbn1cblxuXG5leHBvcnQgY2xhc3MgRGF0YVZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvcjxEYXRhPiB7XG4gICAgc3RhdGljIHJlYWRvbmx5IGVudmlyb25tZW50VmFsaWRhdG9yID0gbmV3IEVudmlyb25tZW50VmFsaWRhdG9yKClcbiAgICBzdGF0aWMgcmVhZG9ubHkgc3RhdHVzVmFsaWRhdG9yID0gbmV3IFN0YXR1c1ZhbGlkYXRvcigpXG4gICAgdmFsaWRhdGUob2JqOiBhbnkpOiBvYmogaXMgRGF0YSB7XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnZW52aXJvbm1lbnQnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEoRGF0YVZhbGlkYXRvci5lbnZpcm9ubWVudFZhbGlkYXRvci52YWxpZGF0ZShvYmpbJ2Vudmlyb25tZW50J10pKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydhcHBBcHBsZUlkJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ2FwcEFwcGxlSWQnXSA9PT0gXCJudW1iZXJcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnYnVuZGxlSWQnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnYnVuZGxlSWQnXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ2J1bmRsZUlkJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2J1bmRsZVZlcnNpb24nXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnYnVuZGxlVmVyc2lvbiddID09PSBcInN0cmluZ1wiIHx8IG9ialsnYnVuZGxlVmVyc2lvbiddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydzaWduZWRUcmFuc2FjdGlvbkluZm8nXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnc2lnbmVkVHJhbnNhY3Rpb25JbmZvJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydzaWduZWRUcmFuc2FjdGlvbkluZm8nXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnc2lnbmVkUmVuZXdhbEluZm8nXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnc2lnbmVkUmVuZXdhbEluZm8nXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ3NpZ25lZFJlbmV3YWxJbmZvJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3N0YXR1cyddICE9PSAndW5kZWZpbmVkJykgJiYgIShEYXRhVmFsaWRhdG9yLnN0YXR1c1ZhbGlkYXRvci52YWxpZGF0ZShvYmpbJ3N0YXR1cyddKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxufVxuIl19
DataValidator.consumptionRequestReasonValidator = new ConsumptionRequestReason_1.ConsumptionRequestReasonValidator();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9EYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQUU1RCx5RUFBd0c7QUFDeEcsK0NBQWlFO0FBQ2pFLHFDQUFrRDtBQW9FbEQsTUFBYSxhQUFhO0lBSXRCLFFBQVEsQ0FBQyxHQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwSCxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3pGLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxSCxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDekksT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsdUJBQXVCLENBQUMsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2pLLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsbUJBQW1CLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsbUJBQW1CLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLG1CQUFtQixDQUFDLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNySixPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckcsT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsaUNBQWlDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNKLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7O0FBOUJMLHNDQStCQztBQTlCbUIsa0NBQW9CLEdBQUcsSUFBSSxrQ0FBb0IsRUFBRSxDQUFBO0FBQ2pELDZCQUFlLEdBQUcsSUFBSSx3QkFBZSxFQUFFLENBQUE7QUFDdkMsK0NBQWlDLEdBQUcsSUFBSSw0REFBaUMsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIEFwcGxlIEluYy4gTGljZW5zZWQgdW5kZXIgTUlUIExpY2Vuc2UuXG5cbmltcG9ydCB7IENvbnN1bXB0aW9uUmVxdWVzdFJlYXNvbiwgQ29uc3VtcHRpb25SZXF1ZXN0UmVhc29uVmFsaWRhdG9yIH0gZnJvbSBcIi4vQ29uc3VtcHRpb25SZXF1ZXN0UmVhc29uXCJcbmltcG9ydCB7IEVudmlyb25tZW50LCBFbnZpcm9ubWVudFZhbGlkYXRvciB9IGZyb20gXCIuL0Vudmlyb25tZW50XCJcbmltcG9ydCB7IFN0YXR1cywgU3RhdHVzVmFsaWRhdG9yIH0gZnJvbSBcIi4vU3RhdHVzXCJcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiXG5cbi8qKlxuICogVGhlIGFwcCBtZXRhZGF0YSBhbmQgdGhlIHNpZ25lZCByZW5ld2FsIGFuZCB0cmFuc2FjdGlvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJub3RpZmljYXRpb25zL2RhdGEgZGF0YX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhIHtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2ZXIgZW52aXJvbm1lbnQgdGhhdCB0aGUgbm90aWZpY2F0aW9uIGFwcGxpZXMgdG8sIGVpdGhlciBzYW5kYm94IG9yIHByb2R1Y3Rpb24uXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJub3RpZmljYXRpb25zL2Vudmlyb25tZW50IGVudmlyb25tZW50fVxuICAgICAqKi9cbiAgICBlbnZpcm9ubWVudD86IEVudmlyb25tZW50IHwgc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiBhbiBhcHAgaW4gdGhlIEFwcCBTdG9yZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcm5vdGlmaWNhdGlvbnMvYXBwYXBwbGVpZCBhcHBBcHBsZUlkfVxuICAgICAqKi9cbiAgICBhcHBBcHBsZUlkPzogbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgaWRlbnRpZmllciBvZiBhbiBhcHAuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvYnVuZGxlaWQgYnVuZGxlSWR9XG4gICAgICoqL1xuICAgIGJ1bmRsZUlkPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBidWlsZCB0aGF0IGlkZW50aWZpZXMgYW4gaXRlcmF0aW9uIG9mIHRoZSBidW5kbGUuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJub3RpZmljYXRpb25zL2J1bmRsZXZlcnNpb24gYnVuZGxlVmVyc2lvbn1cbiAgICAgKiovXG4gICAgYnVuZGxlVmVyc2lvbj86IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUcmFuc2FjdGlvbiBpbmZvcm1hdGlvbiBzaWduZWQgYnkgdGhlIEFwcCBTdG9yZSwgaW4gSlNPTiBXZWIgU2lnbmF0dXJlIChKV1MpIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9qd3N0cmFuc2FjdGlvbiBKV1NUcmFuc2FjdGlvbn1cbiAgICAgKiovXG4gICAgc2lnbmVkVHJhbnNhY3Rpb25JbmZvPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFN1YnNjcmlwdGlvbiByZW5ld2FsIGluZm9ybWF0aW9uLCBzaWduZWQgYnkgdGhlIEFwcCBTdG9yZSwgaW4gSlNPTiBXZWIgU2lnbmF0dXJlIChKV1MpIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9qd3NyZW5ld2FsaW5mbyBKV1NSZW5ld2FsSW5mb31cbiAgICAgKiovXG4gICAgc2lnbmVkUmVuZXdhbEluZm8/OiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIFRoZSBzdGF0dXMgb2YgYW4gYXV0by1yZW5ld2FibGUgc3Vic2NyaXB0aW9uIGFzIG9mIHRoZSBzaWduZWREYXRlIGluIHRoZSByZXNwb25zZUJvZHlWMkRlY29kZWRQYXlsb2FkLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVybm90aWZpY2F0aW9ucy9zdGF0dXMgc3RhdHVzfVxuICAgICAqKi9cbiAgICBzdGF0dXM/OiBTdGF0dXMgfCBudW1iZXJcblxuICAgIC8qKlxuICAgICAqIFRoZSByZWFzb24gdGhlIGN1c3RvbWVyIHJlcXVlc3RlZCB0aGUgcmVmdW5kLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVybm90aWZpY2F0aW9ucy9jb25zdW1wdGlvbnJlcXVlc3RyZWFzb24gY29uc3VtcHRpb25SZXF1ZXN0UmVhc29ufVxuICAgICAqKi9cbiAgICBjb25zdW1wdGlvblJlcXVlc3RSZWFzb24/OiBDb25zdW1wdGlvblJlcXVlc3RSZWFzb24gfCBzdHJpbmdcbn1cblxuXG5leHBvcnQgY2xhc3MgRGF0YVZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvcjxEYXRhPiB7XG4gICAgc3RhdGljIHJlYWRvbmx5IGVudmlyb25tZW50VmFsaWRhdG9yID0gbmV3IEVudmlyb25tZW50VmFsaWRhdG9yKClcbiAgICBzdGF0aWMgcmVhZG9ubHkgc3RhdHVzVmFsaWRhdG9yID0gbmV3IFN0YXR1c1ZhbGlkYXRvcigpXG4gICAgc3RhdGljIHJlYWRvbmx5IGNvbnN1bXB0aW9uUmVxdWVzdFJlYXNvblZhbGlkYXRvciA9IG5ldyBDb25zdW1wdGlvblJlcXVlc3RSZWFzb25WYWxpZGF0b3IoKVxuICAgIHZhbGlkYXRlKG9iajogYW55KTogb2JqIGlzIERhdGEge1xuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2Vudmlyb25tZW50J10gIT09ICd1bmRlZmluZWQnKSAmJiAhKERhdGFWYWxpZGF0b3IuZW52aXJvbm1lbnRWYWxpZGF0b3IudmFsaWRhdGUob2JqWydlbnZpcm9ubWVudCddKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnYXBwQXBwbGVJZCddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydhcHBBcHBsZUlkJ10gPT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2J1bmRsZUlkJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ2J1bmRsZUlkJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydidW5kbGVJZCddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydidW5kbGVWZXJzaW9uJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ2J1bmRsZVZlcnNpb24nXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ2J1bmRsZVZlcnNpb24nXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnc2lnbmVkVHJhbnNhY3Rpb25JbmZvJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ3NpZ25lZFRyYW5zYWN0aW9uSW5mbyddID09PSBcInN0cmluZ1wiIHx8IG9ialsnc2lnbmVkVHJhbnNhY3Rpb25JbmZvJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3NpZ25lZFJlbmV3YWxJbmZvJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ3NpZ25lZFJlbmV3YWxJbmZvJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydzaWduZWRSZW5ld2FsSW5mbyddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydzdGF0dXMnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEoRGF0YVZhbGlkYXRvci5zdGF0dXNWYWxpZGF0b3IudmFsaWRhdGUob2JqWydzdGF0dXMnXSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2NvbnN1bXB0aW9uUmVxdWVzdFJlYXNvbiddICE9PSAndW5kZWZpbmVkJykgJiYgIShEYXRhVmFsaWRhdG9yLmNvbnN1bXB0aW9uUmVxdWVzdFJlYXNvblZhbGlkYXRvci52YWxpZGF0ZShvYmpbJ2NvbnN1bXB0aW9uUmVxdWVzdFJlYXNvbiddKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxufVxuIl19

@@ -21,2 +21,2 @@ "use strict";

exports.EnvironmentValidator = EnvironmentValidator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9tb2RlbHMvRW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDREQUE0RDs7O0FBRTVELDJDQUE4QztBQUU5Qzs7OztHQUlHO0FBQ0gsSUFBWSxXQUtYO0FBTEQsV0FBWSxXQUFXO0lBQ25CLGtDQUFtQixDQUFBO0lBQ25CLHdDQUF5QixDQUFBO0lBQ3pCLDhCQUFlLENBQUE7SUFDZiw2Q0FBOEIsQ0FBQTtBQUNsQyxDQUFDLEVBTFcsV0FBVywyQkFBWCxXQUFXLFFBS3RCO0FBRUQsTUFBYSxvQkFBcUIsU0FBUSwyQkFBZTtDQUFHO0FBQTVELG9EQUE0RCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBBcHBsZSBJbmMuIExpY2Vuc2VkIHVuZGVyIE1JVCBMaWNlbnNlLlxuXG5pbXBvcnQgeyBTdHJpbmdWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBUaGUgc2VydmVyIGVudmlyb25tZW50LCBlaXRoZXIgc2FuZGJveCBvciBwcm9kdWN0aW9uLlxuICpcbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9lbnZpcm9ubWVudCBlbnZpcm9ubWVudH1cbiAqL1xuZXhwb3J0IGVudW0gRW52aXJvbm1lbnQge1xuICAgIFNBTkRCT1ggPSBcIlNhbmRib3hcIixcbiAgICBQUk9EVUNUSU9OID0gXCJQcm9kdWN0aW9uXCIsXG4gICAgWENPREUgPSBcIlhjb2RlXCIsXG4gICAgTE9DQUxfVEVTVElORyA9IFwiTG9jYWxUZXN0aW5nXCIsXG59XG5cbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudFZhbGlkYXRvciBleHRlbmRzIFN0cmluZ1ZhbGlkYXRvciB7fSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9tb2RlbHMvRW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDREQUE0RDs7O0FBRTVELDJDQUE4QztBQUU5Qzs7OztHQUlHO0FBQ0gsSUFBWSxXQUtYO0FBTEQsV0FBWSxXQUFXO0lBQ25CLGtDQUFtQixDQUFBO0lBQ25CLHdDQUF5QixDQUFBO0lBQ3pCLDhCQUFlLENBQUE7SUFDZiw2Q0FBOEIsQ0FBQTtBQUNsQyxDQUFDLEVBTFcsV0FBVywyQkFBWCxXQUFXLFFBS3RCO0FBRUQsTUFBYSxvQkFBcUIsU0FBUSwyQkFBZTtDQUFHO0FBQTVELG9EQUE0RCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBBcHBsZSBJbmMuIExpY2Vuc2VkIHVuZGVyIE1JVCBMaWNlbnNlLlxuXG5pbXBvcnQgeyBTdHJpbmdWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBUaGUgc2VydmVyIGVudmlyb25tZW50LCBlaXRoZXIgc2FuZGJveCBvciBwcm9kdWN0aW9uLlxuICpcbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9lbnZpcm9ubWVudCBlbnZpcm9ubWVudH1cbiAqL1xuZXhwb3J0IGVudW0gRW52aXJvbm1lbnQge1xuICAgIFNBTkRCT1ggPSBcIlNhbmRib3hcIixcbiAgICBQUk9EVUNUSU9OID0gXCJQcm9kdWN0aW9uXCIsXG4gICAgWENPREUgPSBcIlhjb2RlXCIsXG4gICAgTE9DQUxfVEVTVElORyA9IFwiTG9jYWxUZXN0aW5nXCIsIC8vIFVzZWQgZm9yIHVuaXQgdGVzdGluZ1xufVxuXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRWYWxpZGF0b3IgZXh0ZW5kcyBTdHJpbmdWYWxpZGF0b3Ige30iXX0=

@@ -161,3 +161,3 @@ import { DecodedSignedData } from "./DecodedSignedData";

/**
* The price of the in-app purchase or subscription offer that you configured in App Store Connect, as an integer.
* The price, in milliunits, of the in-app purchase or subscription offer that you configured in App Store Connect.
*

@@ -164,0 +164,0 @@ * {@link https://developer.apple.com/documentation/appstoreserverapi/price price}

@@ -103,2 +103,2 @@ "use strict";

JWSTransactionDecodedPayloadValidator.offerDiscountTypeValidator = new OfferDiscountType_1.OfferDiscountTypeValidator();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9KV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQUc1RCwrQ0FBaUU7QUFDakUsNkRBQXNGO0FBQ3RGLDJEQUFtRjtBQUNuRiwyQ0FBMkQ7QUFDM0QseURBQWdGO0FBQ2hGLDJEQUFtRjtBQUNuRixpQ0FBNEM7QUFrTTVDLE1BQWEscUNBQXFDO0lBUTlDLFFBQVEsQ0FBQyxHQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLHVCQUF1QixDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLHVCQUF1QixDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDakssT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3pJLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsb0JBQW9CLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsb0JBQW9CLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLG9CQUFvQixDQUFDLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN4SixPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFD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LFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxSCxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQy9FLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsbUJBQW1CLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMscUNBQXFDLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlKLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7O0FBeEZMLHNGQXlGQztBQXhGbUIsMERBQW9CLEdBQUcsSUFBSSxrQ0FBb0IsRUFBRSxDQUFBO0FBQ2pELHdEQUFrQixHQUFHLElBQUksOEJBQWtCLEVBQUUsQ0FBQTtBQUM3QywrREFBeUIsR0FBRyxJQUFJLDRDQUF5QixFQUFFLENBQUE7QUFDM0QsaUVBQTJCLEdBQUcsSUFBSSxnREFBMkIsRUFBRSxDQUFBO0FBQy9ELG1EQUFhLEdBQUcsSUFBSSxvQkFBYSxFQUFFLENBQUE7QUFDbkMsZ0VBQTBCLEdBQUcsSUFBSSw4Q0FBMEIsRUFBRSxDQUFBO0FBQzdELGdFQUEwQixHQUFHLElBQUksOENBQTBCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBBcHBsZSBJbmMuIExpY2Vuc2VkIHVuZGVyIE1JVCBMaWNlbnNlLlxuXG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkRGF0YSB9IGZyb20gXCIuL0RlY29kZWRTaWduZWREYXRhXCJcbmltcG9ydCB7IEVudmlyb25tZW50LCBFbnZpcm9ubWVudFZhbGlkYXRvciB9IGZyb20gXCIuL0Vudmlyb25tZW50XCJcbmltcG9ydCB7IEluQXBwT3duZXJzaGlwVHlwZSwgSW5BcHBPd25lcnNoaXBUeXBlVmFsaWRhdG9yIH0gZnJvbSBcIi4vSW5BcHBPd25lcnNoaXBUeXBlXCJcbmltcG9ydCB7IE9mZmVyRGlzY291bnRUeXBlLCBPZmZlckRpc2NvdW50VHlwZVZhbGlkYXRvciB9IGZyb20gXCIuL09mZmVyRGlzY291bnRUeXBlXCJcbmltcG9ydCB7IE9mZmVyVHlwZSwgT2ZmZXJUeXBlVmFsaWRhdG9yIH0gZnJvbSBcIi4vT2ZmZXJUeXBlXCJcbmltcG9ydCB7IFJldm9jYXRpb25SZWFzb24sIFJldm9jYXRpb25SZWFzb25WYWxpZGF0b3IgfSBmcm9tIFwiLi9SZXZvY2F0aW9uUmVhc29uXCJcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVhc29uLCBUcmFuc2FjdGlvblJlYXNvblZhbGlkYXRvciB9IGZyb20gXCIuL1RyYW5zYWN0aW9uUmVhc29uXCJcbmltcG9ydCB7IFR5cGUsIFR5cGVWYWxpZGF0b3IgfSBmcm9tIFwiLi9UeXBlXCJcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiXG5cbi8qKlxuICogQSBkZWNvZGVkIHBheWxvYWQgY29udGFpbmluZyB0cmFuc2FjdGlvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvandzdHJhbnNhY3Rpb25kZWNvZGVkcGF5bG9hZCBKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWQgZXh0ZW5kcyBEZWNvZGVkU2lnbmVkRGF0YSB7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3JpZ2luYWwgdHJhbnNhY3Rpb24gaWRlbnRpZmllciBvZiBhIHB1cmNoYXNlLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL29yaWdpbmFsdHJhbnNhY3Rpb25pZCBvcmlnaW5hbFRyYW5zYWN0aW9uSWR9XG4gICAgICoqL1xuICAgIG9yaWdpbmFsVHJhbnNhY3Rpb25JZD86IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgdHJhbnNhY3Rpb24gc3VjaCBhcyBhbiBpbi1hcHAgcHVyY2hhc2UsIHJlc3RvcmVkIGluLWFwcCBwdXJjaGFzZSwgb3Igc3Vic2NyaXB0aW9uIHJlbmV3YWwuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvdHJhbnNhY3Rpb25pZCB0cmFuc2FjdGlvbklkfVxuICAgICAqKi9cbiAgICB0cmFuc2FjdGlvbklkPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiBzdWJzY3JpcHRpb24tcHVyY2hhc2UgZXZlbnRzIGFjcm9zcyBkZXZpY2VzLCBpbmNsdWRpbmcgcmVuZXdhbHMuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvd2Vib3JkZXJsaW5laXRlbWlkIHdlYk9yZGVyTGluZUl0ZW1JZH1cbiAgICAgKiovXG4gICAgd2ViT3JkZXJMaW5lSXRlbUlkPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgaWRlbnRpZmllciBvZiBhbiBhcHAuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvYnVuZGxlaWQgYnVuZGxlSWR9XG4gICAgICoqL1xuICAgIGJ1bmRsZUlkPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb2R1Y3QsIHRoYXQgeW91IGNyZWF0ZSBpbiBBcHAgU3RvcmUgQ29ubmVjdC5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9wcm9kdWN0aWQgcHJvZHVjdElkfVxuICAgICAqKi9cbiAgICBwcm9kdWN0SWQ/OiBzdHJpbmdcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHN1YnNjcmlwdGlvbiBncm91cCB0aGF0IHRoZSBzdWJzY3JpcHRpb24gYmVsb25ncyB0by5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9zdWJzY3JpcHRpb25ncm91cGlkZW50aWZpZXIgc3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVyfVxuICAgICAqKi9cbiAgICBzdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXI/OiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIFRoZSB0aW1lIHRoYXQgdGhlIEFwcCBTdG9yZSBjaGFyZ2VkIHRoZSB1c2Vy4oCZcyBhY2NvdW50IGZvciBhbiBpbi1hcHAgcHVyY2hhc2UsIGEgcmVzdG9yZWQgaW4tYXBwIHB1cmNoYXNlLCBhIHN1YnNjcmlwdGlvbiwgb3IgYSBzdWJzY3JpcHRpb24gcmVuZXdhbCBhZnRlciBhIGxhcHNlLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL3B1cmNoYXNlZGF0ZSBwdXJjaGFzZURhdGV9XG4gICAgICoqL1xuICAgIHB1cmNoYXNlRGF0ZT86IG51bWJlclxuXG4gICAgLyoqXG4gICAgICogVGhlIHB1cmNoYXNlIGRhdGUgb2YgdGhlIHRyYW5zYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3JpZ2luYWwgdHJhbnNhY3Rpb24gaWRlbnRpZmllci5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9vcmlnaW5hbHB1cmNoYXNlZGF0ZSBvcmlnaW5hbFB1cmNoYXNlRGF0ZX1cbiAgICAgKiovXG4gICAgb3JpZ2luYWxQdXJjaGFzZURhdGU/OiBudW1iZXJcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogVGhlIFVOSVggdGltZSwgaW4gbWlsbGlzZWNvbmRzLCBhbiBhdXRvLXJlbmV3YWJsZSBzdWJzY3JpcHRpb24gZXhwaXJlcyBvciByZW5ld3MuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvZXhwaXJlc2RhdGUgZXhwaXJlc0RhdGV9XG4gICAgICoqL1xuICAgIGV4cGlyZXNEYXRlPzogbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2YgY29uc3VtYWJsZSBwcm9kdWN0cyBwdXJjaGFzZWQuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvcXVhbnRpdHkgcXVhbnRpdHl9XG4gICAgICoqL1xuICAgIHF1YW50aXR5PzogbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBpbi1hcHAgcHVyY2hhc2UuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvdHlwZSB0eXBlfVxuICAgICAqKi9cbiAgICB0eXBlPzogVHlwZSB8IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgVVVJRCB0aGF0IGFuIGFwcCBvcHRpb25hbGx5IGdlbmVyYXRlcyB0byBtYXAgYSBjdXN0b21lcuKAmXMgaW4tYXBwIHB1cmNoYXNlIHdpdGggaXRzIHJlc3VsdGluZyBBcHAgU3RvcmUgdHJhbnNhY3Rpb24uXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvYXBwYWNjb3VudHRva2VuIGFwcEFjY291bnRUb2tlbn1cbiAgICAgKiovXG4gICAgYXBwQWNjb3VudFRva2VuPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIEEgc3RyaW5nIHRoYXQgZGVzY3JpYmVzIHdoZXRoZXIgdGhlIHRyYW5zYWN0aW9uIHdhcyBwdXJjaGFzZWQgYnkgdGhlIHVzZXIsIG9yIGlzIGF2YWlsYWJsZSB0byB0aGVtIHRocm91Z2ggRmFtaWx5IFNoYXJpbmcuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvaW5hcHBvd25lcnNoaXB0eXBlIGluQXBwT3duZXJzaGlwVHlwZX1cbiAgICAgKiovXG4gICAgaW5BcHBPd25lcnNoaXBUeXBlPzogSW5BcHBPd25lcnNoaXBUeXBlIHwgc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBVTklYIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdGhhdCB0aGUgQXBwIFN0b3JlIHNpZ25lZCB0aGUgSlNPTiBXZWIgU2lnbmF0dXJlIGRhdGEuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvc2lnbmVkZGF0ZSBzaWduZWREYXRlfVxuICAgICAqKi9cbiAgICBzaWduZWREYXRlPzogbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSByZWFzb24gdGhhdCB0aGUgQXBwIFN0b3JlIHJlZnVuZGVkIHRoZSB0cmFuc2FjdGlvbiBvciByZXZva2VkIGl0IGZyb20gZmFtaWx5IHNoYXJpbmcuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvcmV2b2NhdGlvbnJlYXNvbiByZXZvY2F0aW9uUmVhc29ufVxuICAgICAqKi9cbiAgICByZXZvY2F0aW9uUmVhc29uPzogUmV2b2NhdGlvblJlYXNvbiB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgVU5JWCB0aW1lLCBpbiBtaWxsaXNlY29uZHMsIHRoYXQgQXBwbGUgU3VwcG9ydCByZWZ1bmRlZCBhIHRyYW5zYWN0aW9uLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL3Jldm9jYXRpb25kYXRlIHJldm9jYXRpb25EYXRlfVxuICAgICAqKi9cbiAgICByZXZvY2F0aW9uRGF0ZT86IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgQm9vbGVhbiB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSB1c2VyIHVwZ3JhZGVkIHRvIGFub3RoZXIgc3Vic2NyaXB0aW9uLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL2lzdXBncmFkZWQgaXNVcGdyYWRlZH1cbiAgICAgKiovXG4gICAgaXNVcGdyYWRlZD86IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIEEgdmFsdWUgdGhhdCByZXByZXNlbnRzIHRoZSBwcm9tb3Rpb25hbCBvZmZlciB0eXBlLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL29mZmVydHlwZSBvZmZlclR5cGV9XG4gICAgICoqL1xuICAgIG9mZmVyVHlwZT86IE9mZmVyVHlwZSB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciB0aGF0IGNvbnRhaW5zIHRoZSBwcm9tbyBjb2RlIG9yIHRoZSBwcm9tb3Rpb25hbCBvZmZlciBpZGVudGlmaWVyLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL29mZmVyaWRlbnRpZmllciBvZmZlcklkZW50aWZpZXJ9XG4gICAgICoqL1xuICAgIG9mZmVySWRlbnRpZmllcj86IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgc2VydmVyIGVudmlyb25tZW50LCBlaXRoZXIgc2FuZGJveCBvciBwcm9kdWN0aW9uLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL2Vudmlyb25tZW50IGVudmlyb25tZW50fVxuICAgICAqKi9cbiAgICBlbnZpcm9ubWVudD86IEVudmlyb25tZW50IHwgc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZWUtbGV0dGVyIGNvZGUgdGhhdCByZXByZXNlbnRzIHRoZSBjb3VudHJ5IG9yIHJlZ2lvbiBhc3NvY2lhdGVkIHdpdGggdGhlIEFwcCBTdG9yZSBzdG9yZWZyb250IGZvciB0aGUgcHVyY2hhc2UuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvc3RvcmVmcm9udCBzdG9yZWZyb250fVxuICAgICAqKi9cbiAgICBzdG9yZWZyb250Pzogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBBbiBBcHBsZS1kZWZpbmVkIHZhbHVlIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgQXBwIFN0b3JlIHN0b3JlZnJvbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdXJjaGFzZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9zdG9yZWZyb250aWQgc3RvcmVmcm9udElkfVxuICAgICAqKi9cbiAgICBzdG9yZWZyb250SWQ/OiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIFRoZSByZWFzb24gZm9yIHRoZSBwdXJjaGFzZSB0cmFuc2FjdGlvbiwgd2hpY2ggaW5kaWNhdGVzIHdoZXRoZXIgaXTigJlzIGEgY3VzdG9tZXLigJlzIHB1cmNoYXNlIG9yIGEgcmVuZXdhbCBmb3IgYW4gYXV0by1yZW5ld2FibGUgc3Vic2NyaXB0aW9uIHRoYXQgdGhlIHN5c3RlbSBpbml0YXRlcy5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS90cmFuc2FjdGlvbnJlYXNvbiB0cmFuc2FjdGlvblJlYXNvbn1cbiAgICAgKiovXG4gICAgdHJhbnNhY3Rpb25SZWFzb24/OiBUcmFuc2FjdGlvblJlYXNvbiB8IHN0cmluZ1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRocmVlLWxldHRlciBJU08gNDIxNyBjdXJyZW5jeSBjb2RlIGZvciB0aGUgcHJpY2Ugb2YgdGhlIHByb2R1Y3QuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvY3VycmVuY3kgY3VycmVuY3l9XG4gICAgICoqL1xuICAgIGN1cnJlbmN5Pzogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcHJpY2Ugb2YgdGhlIGluLWFwcCBwdXJjaGFzZSBvciBzdWJzY3JpcHRpb24gb2ZmZXIgdGhhdCB5b3UgY29uZmlndXJlZCBpbiBBcHAgU3RvcmUgQ29ubmVjdCwgYXMgYW4gaW50ZWdlci5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9wcmljZSBwcmljZX1cbiAgICAgKiovXG4gICAgcHJpY2U/OiBudW1iZXJcblxuICAgIC8qKlxuICAgICAqIFRoZSBwYXltZW50IG1vZGUgeW91IGNvbmZpZ3VyZSBmb3IgYW4gaW50cm9kdWN0b3J5IG9mZmVyLCBwcm9tb3Rpb25hbCBvZmZlciwgb3Igb2ZmZXIgY29kZSBvbiBhbiBhdXRvLXJlbmV3YWJsZSBzdWJzY3JpcHRpb24uXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvb2ZmZXJkaXNjb3VudHR5cGUgb2ZmZXJEaXNjb3VudFR5cGV9XG4gICAgICoqL1xuICAgIG9mZmVyRGlzY291bnRUeXBlPzogT2ZmZXJEaXNjb3VudFR5cGUgfCBzdHJpbmdcbn1cblxuXG5leHBvcnQgY2xhc3MgSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZFZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvcjxKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkPiB7XG4gICAgc3RhdGljIHJlYWRvbmx5IGVudmlyb25tZW50VmFsaWRhdG9yID0gbmV3IEVudmlyb25tZW50VmFsaWRhdG9yKClcbiAgICBzdGF0aWMgcmVhZG9ubHkgb2ZmZXJUeXBlVmFsaWRhdG9yID0gbmV3IE9mZmVyVHlwZVZhbGlkYXRvcigpXG4gICAgc3RhdGljIHJlYWRvbmx5IHJldm9jYXRpb25SZWFzb25WYWxpZGF0b3IgPSBuZXcgUmV2b2NhdGlvblJlYXNvblZhbGlkYXRvcigpXG4gICAgc3RhdGljIHJlYWRvbmx5IGluQXBwT3duZXJzaGlwVHlwZVZhbGlkYXRvciA9IG5ldyBJbkFwcE93bmVyc2hpcFR5cGVWYWxpZGF0b3IoKVxuICAgIHN0YXRpYyByZWFkb25seSB0eXBlVmFsaWRhdG9yID0gbmV3IFR5cGVWYWxpZGF0b3IoKVxuICAgIHN0YXRpYyByZWFkb25seSB0cmFuc2FjdGlvblJlYXNvblZhbGlkYXRvciA9IG5ldyBUcmFuc2FjdGlvblJlYXNvblZhbGlkYXRvcigpXG4gICAgc3RhdGljIHJlYWRvbmx5IG9mZmVyRGlzY291bnRUeXBlVmFsaWRhdG9yID0gbmV3IE9mZmVyRGlzY291bnRUeXBlVmFsaWRhdG9yKClcbiAgICB2YWxpZGF0ZShvYmo6IGFueSk6IG9iaiBpcyBKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkIHtcbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydvcmlnaW5hbFRyYW5zYWN0aW9uSWQnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnb3JpZ2luYWxUcmFuc2FjdGlvbklkJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydvcmlnaW5hbFRyYW5zYWN0aW9uSWQnXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsndHJhbnNhY3Rpb25JZCddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWyd0cmFuc2FjdGlvbklkJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWyd0cmFuc2FjdGlvbklkJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3dlYk9yZGVyTGluZUl0ZW1JZCddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWyd3ZWJPcmRlckxpbmVJdGVtSWQnXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ3dlYk9yZGVyTGluZUl0ZW1JZCddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydidW5kbGVJZCddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydidW5kbGVJZCddID09PSBcInN0cmluZ1wiIHx8IG9ialsnYnVuZGxlSWQnXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsncHJvZHVjdElkJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ3Byb2R1Y3RJZCddID09PSBcInN0cmluZ1wiIHx8IG9ialsncHJvZHVjdElkJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3N1YnNjcmlwdGlvbkdyb3VwSWRlbnRpZmllciddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydzdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXInXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ3N1YnNjcmlwdGlvbkdyb3VwSWRlbnRpZmllciddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydwdXJjaGFzZURhdGUnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsncHVyY2hhc2VEYXRlJ10gPT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ29yaWdpbmFsUHVyY2hhc2VEYXRlJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ29yaWdpbmFsUHVyY2hhc2VEYXRlJ10gPT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2V4cGlyZXNEYXRlJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ2V4cGlyZXNEYXRlJ10gPT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3F1YW50aXR5J10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ3F1YW50aXR5J10gPT09ICdudW1iZXInKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWyd0eXBlJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IudHlwZVZhbGlkYXRvci52YWxpZGF0ZShvYmpbJ3R5cGUnXSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2FwcEFjY291bnRUb2tlbiddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydhcHBBY2NvdW50VG9rZW4nXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ2FwcEFjY291bnRUb2tlbiddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydpbkFwcE93bmVyc2hpcFR5cGUnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEoSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZFZhbGlkYXRvci5pbkFwcE93bmVyc2hpcFR5cGVWYWxpZGF0b3IudmFsaWRhdGUob2JqWydpbkFwcE93bmVyc2hpcFR5cGUnXSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3NpZ25lZERhdGUnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnc2lnbmVkRGF0ZSddID09PSBcIm51bWJlclwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydyZXZvY2F0aW9uUmVhc29uJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IucmV2b2NhdGlvblJlYXNvblZhbGlkYXRvci52YWxpZGF0ZShvYmpbJ3Jldm9jYXRpb25SZWFzb24nXSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3Jldm9jYXRpb25EYXRlJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ3Jldm9jYXRpb25EYXRlJ10gPT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2lzVXBncmFkZWQnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnaXNVcGdyYWRlZCddID09PSBcImJvb2xlYW5cIiB8fCBvYmpbJ2lzVXBncmFkZWQnXSBpbnN0YW5jZW9mIEJvb2xlYW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ29mZmVyVHlwZSddICE9PSAndW5kZWZpbmVkJykgJiYgIShKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yLm9mZmVyVHlwZVZhbGlkYXRvci52YWxpZGF0ZShvYmpbJ29mZmVyVHlwZSddKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnb2ZmZXJJZGVudGlmaWVyJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ29mZmVySWRlbnRpZmllciddID09PSBcInN0cmluZ1wiIHx8IG9ialsnb2ZmZXJJZGVudGlmaWVyJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2Vudmlyb25tZW50J10gIT09ICd1bmRlZmluZWQnKSAmJiAhKEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IuZW52aXJvbm1lbnRWYWxpZGF0b3IudmFsaWRhdGUob2JqWydlbnZpcm9ubWVudCddKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnc3RvcmVmcm9udCddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydzdG9yZWZyb250J10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydzdG9yZWZyb250J10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3N0b3JlZnJvbnRJZCddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydzdG9yZWZyb250SWQnXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ3N0b3JlZnJvbnRJZCddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWyd0cmFuc2FjdGlvblJlYXNvbiddICE9PSAndW5kZWZpbmVkJykgJiYgIShKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yLnRyYW5zYWN0aW9uUmVhc29uVmFsaWRhdG9yLnZhbGlkYXRlKG9ialsndHJhbnNhY3Rpb25SZWFzb24nXSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2N1cnJlbmN5J10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ2N1cnJlbmN5J10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydjdXJyZW5jeSddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydwcmljZSddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydwcmljZSddID09PSBcIm51bWJlclwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydvZmZlckRpc2NvdW50VHlwZSddICE9PSAndW5kZWZpbmVkJykgJiYgIShKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yLm9mZmVyRGlzY291bnRUeXBlVmFsaWRhdG9yLnZhbGlkYXRlKG9ialsnb2ZmZXJEaXNjb3VudFR5cGUnXSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9KV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQUc1RCwrQ0FBaUU7QUFDakUsNkRBQXNGO0FBQ3RGLDJEQUFtRjtBQUNuRiwyQ0FBMkQ7QUFDM0QseURBQWdGO0FBQ2hGLDJEQUFtRjtBQUNuRixpQ0FBNEM7QUFrTTVDLE1BQWEscUNBQXFDO0lBUTlDLFFBQVEsQ0FBQyxHQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLHVCQUF1QixDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLHVCQUF1QixDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDakssT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3pJLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsb0JBQW9CLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsb0JBQW9CLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLG9CQUFvQixDQUFDLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN4SixPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFD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LFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxSCxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQy9FLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsbUJBQW1CLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMscUNBQXFDLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlKLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7O0FBeEZMLHNGQXlGQztBQXhGbUIsMERBQW9CLEdBQUcsSUFBSSxrQ0FBb0IsRUFBRSxDQUFBO0FBQ2pELHdEQUFrQixHQUFHLElBQUksOEJBQWtCLEVBQUUsQ0FBQTtBQUM3QywrREFBeUIsR0FBRyxJQUFJLDRDQUF5QixFQUFFLENBQUE7QUFDM0QsaUVBQTJCLEdBQUcsSUFBSSxnREFBMkIsRUFBRSxDQUFBO0FBQy9ELG1EQUFhLEdBQUcsSUFBSSxvQkFBYSxFQUFFLENBQUE7QUFDbkMsZ0VBQTBCLEdBQUcsSUFBSSw4Q0FBMEIsRUFBRSxDQUFBO0FBQzdELGdFQUEwQixHQUFHLElBQUksOENBQTBCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBBcHBsZSBJbmMuIExpY2Vuc2VkIHVuZGVyIE1JVCBMaWNlbnNlLlxuXG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkRGF0YSB9IGZyb20gXCIuL0RlY29kZWRTaWduZWREYXRhXCJcbmltcG9ydCB7IEVudmlyb25tZW50LCBFbnZpcm9ubWVudFZhbGlkYXRvciB9IGZyb20gXCIuL0Vudmlyb25tZW50XCJcbmltcG9ydCB7IEluQXBwT3duZXJzaGlwVHlwZSwgSW5BcHBPd25lcnNoaXBUeXBlVmFsaWRhdG9yIH0gZnJvbSBcIi4vSW5BcHBPd25lcnNoaXBUeXBlXCJcbmltcG9ydCB7IE9mZmVyRGlzY291bnRUeXBlLCBPZmZlckRpc2NvdW50VHlwZVZhbGlkYXRvciB9IGZyb20gXCIuL09mZmVyRGlzY291bnRUeXBlXCJcbmltcG9ydCB7IE9mZmVyVHlwZSwgT2ZmZXJUeXBlVmFsaWRhdG9yIH0gZnJvbSBcIi4vT2ZmZXJUeXBlXCJcbmltcG9ydCB7IFJldm9jYXRpb25SZWFzb24sIFJldm9jYXRpb25SZWFzb25WYWxpZGF0b3IgfSBmcm9tIFwiLi9SZXZvY2F0aW9uUmVhc29uXCJcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVhc29uLCBUcmFuc2FjdGlvblJlYXNvblZhbGlkYXRvciB9IGZyb20gXCIuL1RyYW5zYWN0aW9uUmVhc29uXCJcbmltcG9ydCB7IFR5cGUsIFR5cGVWYWxpZGF0b3IgfSBmcm9tIFwiLi9UeXBlXCJcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiXG5cbi8qKlxuICogQSBkZWNvZGVkIHBheWxvYWQgY29udGFpbmluZyB0cmFuc2FjdGlvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvandzdHJhbnNhY3Rpb25kZWNvZGVkcGF5bG9hZCBKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWQgZXh0ZW5kcyBEZWNvZGVkU2lnbmVkRGF0YSB7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3JpZ2luYWwgdHJhbnNhY3Rpb24gaWRlbnRpZmllciBvZiBhIHB1cmNoYXNlLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL29yaWdpbmFsdHJhbnNhY3Rpb25pZCBvcmlnaW5hbFRyYW5zYWN0aW9uSWR9XG4gICAgICoqL1xuICAgIG9yaWdpbmFsVHJhbnNhY3Rpb25JZD86IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgdHJhbnNhY3Rpb24gc3VjaCBhcyBhbiBpbi1hcHAgcHVyY2hhc2UsIHJlc3RvcmVkIGluLWFwcCBwdXJjaGFzZSwgb3Igc3Vic2NyaXB0aW9uIHJlbmV3YWwuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvdHJhbnNhY3Rpb25pZCB0cmFuc2FjdGlvbklkfVxuICAgICAqKi9cbiAgICB0cmFuc2FjdGlvbklkPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiBzdWJzY3JpcHRpb24tcHVyY2hhc2UgZXZlbnRzIGFjcm9zcyBkZXZpY2VzLCBpbmNsdWRpbmcgcmVuZXdhbHMuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvd2Vib3JkZXJsaW5laXRlbWlkIHdlYk9yZGVyTGluZUl0ZW1JZH1cbiAgICAgKiovXG4gICAgd2ViT3JkZXJMaW5lSXRlbUlkPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgaWRlbnRpZmllciBvZiBhbiBhcHAuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvYnVuZGxlaWQgYnVuZGxlSWR9XG4gICAgICoqL1xuICAgIGJ1bmRsZUlkPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb2R1Y3QsIHRoYXQgeW91IGNyZWF0ZSBpbiBBcHAgU3RvcmUgQ29ubmVjdC5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9wcm9kdWN0aWQgcHJvZHVjdElkfVxuICAgICAqKi9cbiAgICBwcm9kdWN0SWQ/OiBzdHJpbmdcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHN1YnNjcmlwdGlvbiBncm91cCB0aGF0IHRoZSBzdWJzY3JpcHRpb24gYmVsb25ncyB0by5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9zdWJzY3JpcHRpb25ncm91cGlkZW50aWZpZXIgc3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVyfVxuICAgICAqKi9cbiAgICBzdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXI/OiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIFRoZSB0aW1lIHRoYXQgdGhlIEFwcCBTdG9yZSBjaGFyZ2VkIHRoZSB1c2Vy4oCZcyBhY2NvdW50IGZvciBhbiBpbi1hcHAgcHVyY2hhc2UsIGEgcmVzdG9yZWQgaW4tYXBwIHB1cmNoYXNlLCBhIHN1YnNjcmlwdGlvbiwgb3IgYSBzdWJzY3JpcHRpb24gcmVuZXdhbCBhZnRlciBhIGxhcHNlLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL3B1cmNoYXNlZGF0ZSBwdXJjaGFzZURhdGV9XG4gICAgICoqL1xuICAgIHB1cmNoYXNlRGF0ZT86IG51bWJlclxuXG4gICAgLyoqXG4gICAgICogVGhlIHB1cmNoYXNlIGRhdGUgb2YgdGhlIHRyYW5zYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3JpZ2luYWwgdHJhbnNhY3Rpb24gaWRlbnRpZmllci5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9vcmlnaW5hbHB1cmNoYXNlZGF0ZSBvcmlnaW5hbFB1cmNoYXNlRGF0ZX1cbiAgICAgKiovXG4gICAgb3JpZ2luYWxQdXJjaGFzZURhdGU/OiBudW1iZXJcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogVGhlIFVOSVggdGltZSwgaW4gbWlsbGlzZWNvbmRzLCBhbiBhdXRvLXJlbmV3YWJsZSBzdWJzY3JpcHRpb24gZXhwaXJlcyBvciByZW5ld3MuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvZXhwaXJlc2RhdGUgZXhwaXJlc0RhdGV9XG4gICAgICoqL1xuICAgIGV4cGlyZXNEYXRlPzogbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2YgY29uc3VtYWJsZSBwcm9kdWN0cyBwdXJjaGFzZWQuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvcXVhbnRpdHkgcXVhbnRpdHl9XG4gICAgICoqL1xuICAgIHF1YW50aXR5PzogbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBpbi1hcHAgcHVyY2hhc2UuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvdHlwZSB0eXBlfVxuICAgICAqKi9cbiAgICB0eXBlPzogVHlwZSB8IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgVVVJRCB0aGF0IGFuIGFwcCBvcHRpb25hbGx5IGdlbmVyYXRlcyB0byBtYXAgYSBjdXN0b21lcuKAmXMgaW4tYXBwIHB1cmNoYXNlIHdpdGggaXRzIHJlc3VsdGluZyBBcHAgU3RvcmUgdHJhbnNhY3Rpb24uXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvYXBwYWNjb3VudHRva2VuIGFwcEFjY291bnRUb2tlbn1cbiAgICAgKiovXG4gICAgYXBwQWNjb3VudFRva2VuPzogc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIEEgc3RyaW5nIHRoYXQgZGVzY3JpYmVzIHdoZXRoZXIgdGhlIHRyYW5zYWN0aW9uIHdhcyBwdXJjaGFzZWQgYnkgdGhlIHVzZXIsIG9yIGlzIGF2YWlsYWJsZSB0byB0aGVtIHRocm91Z2ggRmFtaWx5IFNoYXJpbmcuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvaW5hcHBvd25lcnNoaXB0eXBlIGluQXBwT3duZXJzaGlwVHlwZX1cbiAgICAgKiovXG4gICAgaW5BcHBPd25lcnNoaXBUeXBlPzogSW5BcHBPd25lcnNoaXBUeXBlIHwgc3RyaW5nXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSBVTklYIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdGhhdCB0aGUgQXBwIFN0b3JlIHNpZ25lZCB0aGUgSlNPTiBXZWIgU2lnbmF0dXJlIGRhdGEuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvc2lnbmVkZGF0ZSBzaWduZWREYXRlfVxuICAgICAqKi9cbiAgICBzaWduZWREYXRlPzogbnVtYmVyXG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIFRoZSByZWFzb24gdGhhdCB0aGUgQXBwIFN0b3JlIHJlZnVuZGVkIHRoZSB0cmFuc2FjdGlvbiBvciByZXZva2VkIGl0IGZyb20gZmFtaWx5IHNoYXJpbmcuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvcmV2b2NhdGlvbnJlYXNvbiByZXZvY2F0aW9uUmVhc29ufVxuICAgICAqKi9cbiAgICByZXZvY2F0aW9uUmVhc29uPzogUmV2b2NhdGlvblJlYXNvbiB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgVU5JWCB0aW1lLCBpbiBtaWxsaXNlY29uZHMsIHRoYXQgQXBwbGUgU3VwcG9ydCByZWZ1bmRlZCBhIHRyYW5zYWN0aW9uLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL3Jldm9jYXRpb25kYXRlIHJldm9jYXRpb25EYXRlfVxuICAgICAqKi9cbiAgICByZXZvY2F0aW9uRGF0ZT86IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgQm9vbGVhbiB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSB1c2VyIHVwZ3JhZGVkIHRvIGFub3RoZXIgc3Vic2NyaXB0aW9uLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL2lzdXBncmFkZWQgaXNVcGdyYWRlZH1cbiAgICAgKiovXG4gICAgaXNVcGdyYWRlZD86IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIEEgdmFsdWUgdGhhdCByZXByZXNlbnRzIHRoZSBwcm9tb3Rpb25hbCBvZmZlciB0eXBlLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL29mZmVydHlwZSBvZmZlclR5cGV9XG4gICAgICoqL1xuICAgIG9mZmVyVHlwZT86IE9mZmVyVHlwZSB8IG51bWJlclxuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciB0aGF0IGNvbnRhaW5zIHRoZSBwcm9tbyBjb2RlIG9yIHRoZSBwcm9tb3Rpb25hbCBvZmZlciBpZGVudGlmaWVyLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL29mZmVyaWRlbnRpZmllciBvZmZlcklkZW50aWZpZXJ9XG4gICAgICoqL1xuICAgIG9mZmVySWRlbnRpZmllcj86IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgc2VydmVyIGVudmlyb25tZW50LCBlaXRoZXIgc2FuZGJveCBvciBwcm9kdWN0aW9uLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL2Vudmlyb25tZW50IGVudmlyb25tZW50fVxuICAgICAqKi9cbiAgICBlbnZpcm9ubWVudD86IEVudmlyb25tZW50IHwgc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZWUtbGV0dGVyIGNvZGUgdGhhdCByZXByZXNlbnRzIHRoZSBjb3VudHJ5IG9yIHJlZ2lvbiBhc3NvY2lhdGVkIHdpdGggdGhlIEFwcCBTdG9yZSBzdG9yZWZyb250IGZvciB0aGUgcHVyY2hhc2UuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvc3RvcmVmcm9udCBzdG9yZWZyb250fVxuICAgICAqKi9cbiAgICBzdG9yZWZyb250Pzogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBBbiBBcHBsZS1kZWZpbmVkIHZhbHVlIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgQXBwIFN0b3JlIHN0b3JlZnJvbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdXJjaGFzZS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9zdG9yZWZyb250aWQgc3RvcmVmcm9udElkfVxuICAgICAqKi9cbiAgICBzdG9yZWZyb250SWQ/OiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIFRoZSByZWFzb24gZm9yIHRoZSBwdXJjaGFzZSB0cmFuc2FjdGlvbiwgd2hpY2ggaW5kaWNhdGVzIHdoZXRoZXIgaXTigJlzIGEgY3VzdG9tZXLigJlzIHB1cmNoYXNlIG9yIGEgcmVuZXdhbCBmb3IgYW4gYXV0by1yZW5ld2FibGUgc3Vic2NyaXB0aW9uIHRoYXQgdGhlIHN5c3RlbSBpbml0YXRlcy5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS90cmFuc2FjdGlvbnJlYXNvbiB0cmFuc2FjdGlvblJlYXNvbn1cbiAgICAgKiovXG4gICAgdHJhbnNhY3Rpb25SZWFzb24/OiBUcmFuc2FjdGlvblJlYXNvbiB8IHN0cmluZ1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRocmVlLWxldHRlciBJU08gNDIxNyBjdXJyZW5jeSBjb2RlIGZvciB0aGUgcHJpY2Ugb2YgdGhlIHByb2R1Y3QuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvY3VycmVuY3kgY3VycmVuY3l9XG4gICAgICoqL1xuICAgIGN1cnJlbmN5Pzogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcHJpY2UsIGluIG1pbGxpdW5pdHMsIG9mIHRoZSBpbi1hcHAgcHVyY2hhc2Ugb3Igc3Vic2NyaXB0aW9uIG9mZmVyIHRoYXQgeW91IGNvbmZpZ3VyZWQgaW4gQXBwIFN0b3JlIENvbm5lY3QuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvcHJpY2UgcHJpY2V9XG4gICAgICoqL1xuICAgIHByaWNlPzogbnVtYmVyXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGF5bWVudCBtb2RlIHlvdSBjb25maWd1cmUgZm9yIGFuIGludHJvZHVjdG9yeSBvZmZlciwgcHJvbW90aW9uYWwgb2ZmZXIsIG9yIG9mZmVyIGNvZGUgb24gYW4gYXV0by1yZW5ld2FibGUgc3Vic2NyaXB0aW9uLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL29mZmVyZGlzY291bnR0eXBlIG9mZmVyRGlzY291bnRUeXBlfVxuICAgICAqKi9cbiAgICBvZmZlckRpc2NvdW50VHlwZT86IE9mZmVyRGlzY291bnRUeXBlIHwgc3RyaW5nXG59XG5cblxuZXhwb3J0IGNsYXNzIEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3I8SldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZD4ge1xuICAgIHN0YXRpYyByZWFkb25seSBlbnZpcm9ubWVudFZhbGlkYXRvciA9IG5ldyBFbnZpcm9ubWVudFZhbGlkYXRvcigpXG4gICAgc3RhdGljIHJlYWRvbmx5IG9mZmVyVHlwZVZhbGlkYXRvciA9IG5ldyBPZmZlclR5cGVWYWxpZGF0b3IoKVxuICAgIHN0YXRpYyByZWFkb25seSByZXZvY2F0aW9uUmVhc29uVmFsaWRhdG9yID0gbmV3IFJldm9jYXRpb25SZWFzb25WYWxpZGF0b3IoKVxuICAgIHN0YXRpYyByZWFkb25seSBpbkFwcE93bmVyc2hpcFR5cGVWYWxpZGF0b3IgPSBuZXcgSW5BcHBPd25lcnNoaXBUeXBlVmFsaWRhdG9yKClcbiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZVZhbGlkYXRvciA9IG5ldyBUeXBlVmFsaWRhdG9yKClcbiAgICBzdGF0aWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25SZWFzb25WYWxpZGF0b3IgPSBuZXcgVHJhbnNhY3Rpb25SZWFzb25WYWxpZGF0b3IoKVxuICAgIHN0YXRpYyByZWFkb25seSBvZmZlckRpc2NvdW50VHlwZVZhbGlkYXRvciA9IG5ldyBPZmZlckRpc2NvdW50VHlwZVZhbGlkYXRvcigpXG4gICAgdmFsaWRhdGUob2JqOiBhbnkpOiBvYmogaXMgSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZCB7XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnb3JpZ2luYWxUcmFuc2FjdGlvbklkJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ29yaWdpbmFsVHJhbnNhY3Rpb25JZCddID09PSBcInN0cmluZ1wiIHx8IG9ialsnb3JpZ2luYWxUcmFuc2FjdGlvbklkJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3RyYW5zYWN0aW9uSWQnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsndHJhbnNhY3Rpb25JZCddID09PSBcInN0cmluZ1wiIHx8IG9ialsndHJhbnNhY3Rpb25JZCddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWyd3ZWJPcmRlckxpbmVJdGVtSWQnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnd2ViT3JkZXJMaW5lSXRlbUlkJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWyd3ZWJPcmRlckxpbmVJdGVtSWQnXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnYnVuZGxlSWQnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnYnVuZGxlSWQnXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ2J1bmRsZUlkJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3Byb2R1Y3RJZCddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydwcm9kdWN0SWQnXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ3Byb2R1Y3RJZCddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydzdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXInXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnc3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVyJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydzdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXInXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsncHVyY2hhc2VEYXRlJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ3B1cmNoYXNlRGF0ZSddID09PSBcIm51bWJlclwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydvcmlnaW5hbFB1cmNoYXNlRGF0ZSddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydvcmlnaW5hbFB1cmNoYXNlRGF0ZSddID09PSBcIm51bWJlclwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydleHBpcmVzRGF0ZSddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydleHBpcmVzRGF0ZSddID09PSBcIm51bWJlclwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydxdWFudGl0eSddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydxdWFudGl0eSddID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsndHlwZSddICE9PSAndW5kZWZpbmVkJykgJiYgIShKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yLnR5cGVWYWxpZGF0b3IudmFsaWRhdGUob2JqWyd0eXBlJ10pKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydhcHBBY2NvdW50VG9rZW4nXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnYXBwQWNjb3VudFRva2VuJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydhcHBBY2NvdW50VG9rZW4nXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnaW5BcHBPd25lcnNoaXBUeXBlJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKEpXU1RyYW5zYWN0aW9uRGVjb2RlZFBheWxvYWRWYWxpZGF0b3IuaW5BcHBPd25lcnNoaXBUeXBlVmFsaWRhdG9yLnZhbGlkYXRlKG9ialsnaW5BcHBPd25lcnNoaXBUeXBlJ10pKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydzaWduZWREYXRlJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ3NpZ25lZERhdGUnXSA9PT0gXCJudW1iZXJcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsncmV2b2NhdGlvblJlYXNvbiddICE9PSAndW5kZWZpbmVkJykgJiYgIShKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yLnJldm9jYXRpb25SZWFzb25WYWxpZGF0b3IudmFsaWRhdGUob2JqWydyZXZvY2F0aW9uUmVhc29uJ10pKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydyZXZvY2F0aW9uRGF0ZSddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydyZXZvY2F0aW9uRGF0ZSddID09PSBcIm51bWJlclwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydpc1VwZ3JhZGVkJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ2lzVXBncmFkZWQnXSA9PT0gXCJib29sZWFuXCIgfHwgb2JqWydpc1VwZ3JhZGVkJ10gaW5zdGFuY2VvZiBCb29sZWFuKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydvZmZlclR5cGUnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEoSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZFZhbGlkYXRvci5vZmZlclR5cGVWYWxpZGF0b3IudmFsaWRhdGUob2JqWydvZmZlclR5cGUnXSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ29mZmVySWRlbnRpZmllciddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydvZmZlcklkZW50aWZpZXInXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ29mZmVySWRlbnRpZmllciddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydlbnZpcm9ubWVudCddICE9PSAndW5kZWZpbmVkJykgJiYgIShKV1NUcmFuc2FjdGlvbkRlY29kZWRQYXlsb2FkVmFsaWRhdG9yLmVudmlyb25tZW50VmFsaWRhdG9yLnZhbGlkYXRlKG9ialsnZW52aXJvbm1lbnQnXSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3N0b3JlZnJvbnQnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnc3RvcmVmcm9udCddID09PSBcInN0cmluZ1wiIHx8IG9ialsnc3RvcmVmcm9udCddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydzdG9yZWZyb250SWQnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnc3RvcmVmcm9udElkJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydzdG9yZWZyb250SWQnXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsndHJhbnNhY3Rpb25SZWFzb24nXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEoSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZFZhbGlkYXRvci50cmFuc2FjdGlvblJlYXNvblZhbGlkYXRvci52YWxpZGF0ZShvYmpbJ3RyYW5zYWN0aW9uUmVhc29uJ10pKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydjdXJyZW5jeSddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydjdXJyZW5jeSddID09PSBcInN0cmluZ1wiIHx8IG9ialsnY3VycmVuY3knXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsncHJpY2UnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsncHJpY2UnXSA9PT0gXCJudW1iZXJcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnb2ZmZXJEaXNjb3VudFR5cGUnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEoSldTVHJhbnNhY3Rpb25EZWNvZGVkUGF5bG9hZFZhbGlkYXRvci5vZmZlckRpc2NvdW50VHlwZVZhbGlkYXRvci52YWxpZGF0ZShvYmpbJ29mZmVyRGlzY291bnRUeXBlJ10pKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG59XG4iXX0=

@@ -24,2 +24,3 @@ import { NotificationHistoryResponseItem } from "./NotificationHistoryResponseItem";

*
* {@link https://developer.apple.com/documentation/appstoreserverapi/notificationhistoryresponseitem notificationHistoryResponseItem}
**/

@@ -26,0 +27,0 @@ notificationHistory?: NotificationHistoryResponseItem[];

@@ -28,2 +28,2 @@ "use strict";

NotificationHistoryResponseValidator.notificationHistoryResponseItemValidator = new NotificationHistoryResponseValidator();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL05vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREOzs7QUFrQzVELE1BQWEsb0NBQW9DO0lBRTdDLFFBQVEsQ0FBQyxHQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0ksT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pILE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLE9BQU8sR0FBRyxDQUFDLHFCQUFxQixDQUFDLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxPQUFPLEtBQUssQ0FBQTtZQUNoQixDQUFDO1lBQ0QsS0FBSyxNQUFNLCtCQUErQixJQUFJLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxDQUFDLG9DQUFvQyxDQUFDLHdDQUF3QyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDN0gsT0FBTyxLQUFLLENBQUE7Z0JBQ2hCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQzs7QUFwQkwsb0ZBcUJDO0FBcEJtQiw2RUFBd0MsR0FBRyxJQUFJLG9DQUFvQyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgQXBwbGUgSW5jLiBMaWNlbnNlZCB1bmRlciBNSVQgTGljZW5zZS5cblxuaW1wb3J0IHsgTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlSXRlbSB9IGZyb20gXCIuL05vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZUl0ZW1cIjtcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuXG4vKipcbiAqIEEgcmVzcG9uc2UgdGhhdCBjb250YWlucyB0aGUgQXBwIFN0b3JlIFNlcnZlciBOb3RpZmljYXRpb25zIGhpc3RvcnkgZm9yIHlvdXIgYXBwLlxuICpcbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9ub3RpZmljYXRpb25oaXN0b3J5cmVzcG9uc2UgTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZSB7XG5cbiAgICAvKipcbiAgICAgKiBBIHBhZ2luYXRpb24gdG9rZW4gdGhhdCB5b3UgcmV0dXJuIHRvIHRoZSBlbmRwb2ludCBvbiBhIHN1YnNlcXVlbnQgY2FsbCB0byByZWNlaXZlIHRoZSBuZXh0IHNldCBvZiByZXN1bHRzLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL3BhZ2luYXRpb250b2tlbiBwYWdpbmF0aW9uVG9rZW59XG4gICAgICoqL1xuICAgIHBhZ2luYXRpb25Ub2tlbj86IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBBcHAgU3RvcmUgaGFzIG1vcmUgdHJhbnNhY3Rpb24gZGF0YS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9oYXNtb3JlIGhhc01vcmV9XG4gICAgICoqL1xuICAgIGhhc01vcmU/OiBib29sZWFuXG5cbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBBcHAgU3RvcmUgc2VydmVyIG5vdGlmaWNhdGlvbiBoaXN0b3J5IHJlY29yZHMuXG4gICAgICpcbiAgICAgKiovXG4gICAgbm90aWZpY2F0aW9uSGlzdG9yeT86IE5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZUl0ZW1bXTtcbn1cblxuXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlVmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yPE5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZT4ge1xuICAgIHN0YXRpYyByZWFkb25seSBub3RpZmljYXRpb25IaXN0b3J5UmVzcG9uc2VJdGVtVmFsaWRhdG9yID0gbmV3IE5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZVZhbGlkYXRvcigpXG4gICAgdmFsaWRhdGUob2JqOiBhbnkpOiBvYmogaXMgTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlIHtcbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydwYWdpbmF0aW9uVG9rZW4nXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsncGFnaW5hdGlvblRva2VuJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydwYWdpbmF0aW9uVG9rZW4nXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnaGFzTW9yZSddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydoYXNNb3JlJ10gPT09IFwiYm9vbGVhblwiIHx8IG9ialsnaGFzTW9yZSddIGluc3RhbmNlb2YgQm9vbGVhbikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqWydub3RpZmljYXRpb25IaXN0b3J5J10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkob2JqWydub3RpZmljYXRpb25IaXN0b3J5J10pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZUl0ZW0gb2Ygb2JqWydub3RpZmljYXRpb25IaXN0b3J5J10pIHtcbiAgICAgICAgICAgICAgICBpZiAoIShOb3RpZmljYXRpb25IaXN0b3J5UmVzcG9uc2VWYWxpZGF0b3Iubm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlSXRlbVZhbGlkYXRvci52YWxpZGF0ZShub3RpZmljYXRpb25IaXN0b3J5UmVzcG9uc2VJdGVtKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL05vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREOzs7QUFtQzVELE1BQWEsb0NBQW9DO0lBRTdDLFFBQVEsQ0FBQyxHQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0ksT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pILE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxJQUFJLE9BQU8sR0FBRyxDQUFDLHFCQUFxQixDQUFDLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxPQUFPLEtBQUssQ0FBQTtZQUNoQixDQUFDO1lBQ0QsS0FBSyxNQUFNLCtCQUErQixJQUFJLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxDQUFDLG9DQUFvQyxDQUFDLHdDQUF3QyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDN0gsT0FBTyxLQUFLLENBQUE7Z0JBQ2hCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQzs7QUFwQkwsb0ZBcUJDO0FBcEJtQiw2RUFBd0MsR0FBRyxJQUFJLG9DQUFvQyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgQXBwbGUgSW5jLiBMaWNlbnNlZCB1bmRlciBNSVQgTGljZW5zZS5cblxuaW1wb3J0IHsgTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlSXRlbSB9IGZyb20gXCIuL05vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZUl0ZW1cIjtcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuXG4vKipcbiAqIEEgcmVzcG9uc2UgdGhhdCBjb250YWlucyB0aGUgQXBwIFN0b3JlIFNlcnZlciBOb3RpZmljYXRpb25zIGhpc3RvcnkgZm9yIHlvdXIgYXBwLlxuICpcbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9ub3RpZmljYXRpb25oaXN0b3J5cmVzcG9uc2UgTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZSB7XG5cbiAgICAvKipcbiAgICAgKiBBIHBhZ2luYXRpb24gdG9rZW4gdGhhdCB5b3UgcmV0dXJuIHRvIHRoZSBlbmRwb2ludCBvbiBhIHN1YnNlcXVlbnQgY2FsbCB0byByZWNlaXZlIHRoZSBuZXh0IHNldCBvZiByZXN1bHRzLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL3BhZ2luYXRpb250b2tlbiBwYWdpbmF0aW9uVG9rZW59XG4gICAgICoqL1xuICAgIHBhZ2luYXRpb25Ub2tlbj86IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBBcHAgU3RvcmUgaGFzIG1vcmUgdHJhbnNhY3Rpb24gZGF0YS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9oYXNtb3JlIGhhc01vcmV9XG4gICAgICoqL1xuICAgIGhhc01vcmU/OiBib29sZWFuXG5cbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBBcHAgU3RvcmUgc2VydmVyIG5vdGlmaWNhdGlvbiBoaXN0b3J5IHJlY29yZHMuXG4gICAgICogXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL25vdGlmaWNhdGlvbmhpc3RvcnlyZXNwb25zZWl0ZW0gbm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlSXRlbX1cbiAgICAgKiovXG4gICAgbm90aWZpY2F0aW9uSGlzdG9yeT86IE5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZUl0ZW1bXTtcbn1cblxuXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlVmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yPE5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZT4ge1xuICAgIHN0YXRpYyByZWFkb25seSBub3RpZmljYXRpb25IaXN0b3J5UmVzcG9uc2VJdGVtVmFsaWRhdG9yID0gbmV3IE5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZVZhbGlkYXRvcigpXG4gICAgdmFsaWRhdGUob2JqOiBhbnkpOiBvYmogaXMgTm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlIHtcbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydwYWdpbmF0aW9uVG9rZW4nXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsncGFnaW5hdGlvblRva2VuJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydwYWdpbmF0aW9uVG9rZW4nXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnaGFzTW9yZSddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydoYXNNb3JlJ10gPT09IFwiYm9vbGVhblwiIHx8IG9ialsnaGFzTW9yZSddIGluc3RhbmNlb2YgQm9vbGVhbikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqWydub3RpZmljYXRpb25IaXN0b3J5J10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkob2JqWydub3RpZmljYXRpb25IaXN0b3J5J10pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5vdGlmaWNhdGlvbkhpc3RvcnlSZXNwb25zZUl0ZW0gb2Ygb2JqWydub3RpZmljYXRpb25IaXN0b3J5J10pIHtcbiAgICAgICAgICAgICAgICBpZiAoIShOb3RpZmljYXRpb25IaXN0b3J5UmVzcG9uc2VWYWxpZGF0b3Iubm90aWZpY2F0aW9uSGlzdG9yeVJlc3BvbnNlSXRlbVZhbGlkYXRvci52YWxpZGF0ZShub3RpZmljYXRpb25IaXN0b3J5UmVzcG9uc2VJdGVtKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxufVxuIl19
import { StringValidator } from "./Validator";
/**
* A notification type value that App Store Server Notifications V2 uses.
* The type that describes the in-app purchase or external purchase event for which the App Store sends the version 2 notification.
*
* {@link https://developer.apple.com/documentation/appstoreserverapi/notificationtype notificationType}
* {@link https://developer.apple.com/documentation/appstoreservernotifications/notificationtype notificationType}
*/

@@ -7,0 +7,0 @@ export declare enum NotificationTypeV2 {

@@ -7,5 +7,5 @@ "use strict";

/**
* A notification type value that App Store Server Notifications V2 uses.
* The type that describes the in-app purchase or external purchase event for which the App Store sends the version 2 notification.
*
* {@link https://developer.apple.com/documentation/appstoreserverapi/notificationtype notificationType}
* {@link https://developer.apple.com/documentation/appstoreservernotifications/notificationtype notificationType}
*/

@@ -36,2 +36,2 @@ var NotificationTypeV2;

exports.NotificationTypeV2Validator = NotificationTypeV2Validator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uVHlwZVYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL05vdGlmaWNhdGlvblR5cGVWMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREOzs7QUFFNUQsMkNBQXlEO0FBRXpEOzs7O0dBSUc7QUFDSCxJQUFZLGtCQW1CWDtBQW5CRCxXQUFZLGtCQUFrQjtJQUMxQiwrQ0FBeUIsQ0FBQTtJQUN6Qix5RUFBbUQsQ0FBQTtJQUNuRCw2RUFBdUQsQ0FBQTtJQUN2RCx1REFBaUMsQ0FBQTtJQUNqQyw2Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBbUIsQ0FBQTtJQUNuQiw2REFBdUMsQ0FBQTtJQUN2QyxtRUFBNkMsQ0FBQTtJQUM3Qyx1REFBaUMsQ0FBQTtJQUNqQyx1Q0FBaUIsQ0FBQTtJQUNqQix5REFBbUMsQ0FBQTtJQUNuQyxpRUFBMkMsQ0FBQTtJQUMzQywyREFBcUMsQ0FBQTtJQUNyQyx1Q0FBaUIsQ0FBQTtJQUNqQixtQ0FBYSxDQUFBO0lBQ2IsNkRBQXVDLENBQUE7SUFDdkMseURBQW1DLENBQUE7SUFDbkMseUVBQW1ELENBQUE7QUFDdkQsQ0FBQyxFQW5CVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQW1CN0I7QUFFRCxNQUFhLDJCQUE0QixTQUFRLDJCQUFlO0NBQUc7QUFBbkUsa0VBQW1FIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIEFwcGxlIEluYy4gTGljZW5zZWQgdW5kZXIgTUlUIExpY2Vuc2UuXG5cbmltcG9ydCB7IFN0cmluZ1ZhbGlkYXRvciwgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5cbi8qKlxuICogQSBub3RpZmljYXRpb24gdHlwZSB2YWx1ZSB0aGF0IEFwcCBTdG9yZSBTZXJ2ZXIgTm90aWZpY2F0aW9ucyBWMiB1c2VzLlxuICpcbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9ub3RpZmljYXRpb250eXBlIG5vdGlmaWNhdGlvblR5cGV9XG4gKi9cbmV4cG9ydCBlbnVtIE5vdGlmaWNhdGlvblR5cGVWMiB7XG4gICAgU1VCU0NSSUJFRCA9IFwiU1VCU0NSSUJFRFwiLFxuICAgIERJRF9DSEFOR0VfUkVORVdBTF9QUkVGID0gXCJESURfQ0hBTkdFX1JFTkVXQUxfUFJFRlwiLFxuICAgIERJRF9DSEFOR0VfUkVORVdBTF9TVEFUVVMgPSBcIkRJRF9DSEFOR0VfUkVORVdBTF9TVEFUVVNcIixcbiAgICBPRkZFUl9SRURFRU1FRCA9IFwiT0ZGRVJfUkVERUVNRURcIixcbiAgICBESURfUkVORVcgPSBcIkRJRF9SRU5FV1wiLFxuICAgIEVYUElSRUQgPSBcIkVYUElSRURcIixcbiAgICBESURfRkFJTF9UT19SRU5FVyA9IFwiRElEX0ZBSUxfVE9fUkVORVdcIixcbiAgICBHUkFDRV9QRVJJT0RfRVhQSVJFRCA9IFwiR1JBQ0VfUEVSSU9EX0VYUElSRURcIixcbiAgICBQUklDRV9JTkNSRUFTRSA9IFwiUFJJQ0VfSU5DUkVBU0VcIixcbiAgICBSRUZVTkQgPSBcIlJFRlVORFwiLFxuICAgIFJFRlVORF9ERUNMSU5FRCA9IFwiUkVGVU5EX0RFQ0xJTkVEXCIsXG4gICAgQ09OU1VNUFRJT05fUkVRVUVTVCA9IFwiQ09OU1VNUFRJT05fUkVRVUVTVFwiLFxuICAgIFJFTkVXQUxfRVhURU5ERUQgPSBcIlJFTkVXQUxfRVhURU5ERURcIixcbiAgICBSRVZPS0UgPSBcIlJFVk9LRVwiLFxuICAgIFRFU1QgPSBcIlRFU1RcIixcbiAgICBSRU5FV0FMX0VYVEVOU0lPTiA9IFwiUkVORVdBTF9FWFRFTlNJT05cIixcbiAgICBSRUZVTkRfUkVWRVJTRUQgPSBcIlJFRlVORF9SRVZFUlNFRFwiLFxuICAgIEVYVEVSTkFMX1BVUkNIQVNFX1RPS0VOID0gXCJFWFRFUk5BTF9QVVJDSEFTRV9UT0tFTlwiLFxufVxuXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uVHlwZVYyVmFsaWRhdG9yIGV4dGVuZHMgU3RyaW5nVmFsaWRhdG9yIHt9Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uVHlwZVYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL05vdGlmaWNhdGlvblR5cGVWMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREOzs7QUFFNUQsMkNBQXlEO0FBRXpEOzs7O0dBSUc7QUFDSCxJQUFZLGtCQW1CWDtBQW5CRCxXQUFZLGtCQUFrQjtJQUMxQiwrQ0FBeUIsQ0FBQTtJQUN6Qix5RUFBbUQsQ0FBQTtJQUNuRCw2RUFBdUQsQ0FBQTtJQUN2RCx1REFBaUMsQ0FBQTtJQUNqQyw2Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBbUIsQ0FBQTtJQUNuQiw2REFBdUMsQ0FBQTtJQUN2QyxtRUFBNkMsQ0FBQTtJQUM3Qyx1REFBaUMsQ0FBQTtJQUNqQyx1Q0FBaUIsQ0FBQTtJQUNqQix5REFBbUMsQ0FBQTtJQUNuQyxpRUFBMkMsQ0FBQTtJQUMzQywyREFBcUMsQ0FBQTtJQUNyQyx1Q0FBaUIsQ0FBQTtJQUNqQixtQ0FBYSxDQUFBO0lBQ2IsNkRBQXVDLENBQUE7SUFDdkMseURBQW1DLENBQUE7SUFDbkMseUVBQW1ELENBQUE7QUFDdkQsQ0FBQyxFQW5CVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQW1CN0I7QUFFRCxNQUFhLDJCQUE0QixTQUFRLDJCQUFlO0NBQUc7QUFBbkUsa0VBQW1FIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIEFwcGxlIEluYy4gTGljZW5zZWQgdW5kZXIgTUlUIExpY2Vuc2UuXG5cbmltcG9ydCB7IFN0cmluZ1ZhbGlkYXRvciwgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5cbi8qKlxuICogVGhlIHR5cGUgdGhhdCBkZXNjcmliZXMgdGhlIGluLWFwcCBwdXJjaGFzZSBvciBleHRlcm5hbCBwdXJjaGFzZSBldmVudCBmb3Igd2hpY2ggdGhlIEFwcCBTdG9yZSBzZW5kcyB0aGUgdmVyc2lvbiAyIG5vdGlmaWNhdGlvbi5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnR5cGUgbm90aWZpY2F0aW9uVHlwZX1cbiAqL1xuZXhwb3J0IGVudW0gTm90aWZpY2F0aW9uVHlwZVYyIHtcbiAgICBTVUJTQ1JJQkVEID0gXCJTVUJTQ1JJQkVEXCIsXG4gICAgRElEX0NIQU5HRV9SRU5FV0FMX1BSRUYgPSBcIkRJRF9DSEFOR0VfUkVORVdBTF9QUkVGXCIsXG4gICAgRElEX0NIQU5HRV9SRU5FV0FMX1NUQVRVUyA9IFwiRElEX0NIQU5HRV9SRU5FV0FMX1NUQVRVU1wiLFxuICAgIE9GRkVSX1JFREVFTUVEID0gXCJPRkZFUl9SRURFRU1FRFwiLFxuICAgIERJRF9SRU5FVyA9IFwiRElEX1JFTkVXXCIsXG4gICAgRVhQSVJFRCA9IFwiRVhQSVJFRFwiLFxuICAgIERJRF9GQUlMX1RPX1JFTkVXID0gXCJESURfRkFJTF9UT19SRU5FV1wiLFxuICAgIEdSQUNFX1BFUklPRF9FWFBJUkVEID0gXCJHUkFDRV9QRVJJT0RfRVhQSVJFRFwiLFxuICAgIFBSSUNFX0lOQ1JFQVNFID0gXCJQUklDRV9JTkNSRUFTRVwiLFxuICAgIFJFRlVORCA9IFwiUkVGVU5EXCIsXG4gICAgUkVGVU5EX0RFQ0xJTkVEID0gXCJSRUZVTkRfREVDTElORURcIixcbiAgICBDT05TVU1QVElPTl9SRVFVRVNUID0gXCJDT05TVU1QVElPTl9SRVFVRVNUXCIsXG4gICAgUkVORVdBTF9FWFRFTkRFRCA9IFwiUkVORVdBTF9FWFRFTkRFRFwiLFxuICAgIFJFVk9LRSA9IFwiUkVWT0tFXCIsXG4gICAgVEVTVCA9IFwiVEVTVFwiLFxuICAgIFJFTkVXQUxfRVhURU5TSU9OID0gXCJSRU5FV0FMX0VYVEVOU0lPTlwiLFxuICAgIFJFRlVORF9SRVZFUlNFRCA9IFwiUkVGVU5EX1JFVkVSU0VEXCIsXG4gICAgRVhURVJOQUxfUFVSQ0hBU0VfVE9LRU4gPSBcIkVYVEVSTkFMX1BVUkNIQVNFX1RPS0VOXCIsXG59XG5cbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25UeXBlVjJWYWxpZGF0b3IgZXh0ZW5kcyBTdHJpbmdWYWxpZGF0b3Ige30iXX0=

@@ -18,2 +18,3 @@ import { OrderLookupStatus, OrderLookupStatusValidator } from "./OrderLookupStatus";

*
* {@link https://developer.apple.com/documentation/appstoreserverapi/jwstransaction JWSTransaction}
**/

@@ -20,0 +21,0 @@ signedTransactions?: string[];

@@ -26,2 +26,2 @@ "use strict";

OrderLookupResponseValidator.statusValidator = new OrderLookupStatus_1.OrderLookupStatusValidator();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJMb29rdXBSZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9PcmRlckxvb2t1cFJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQUU1RCwyREFBb0Y7QUF3QnBGLE1BQWEsNEJBQTRCO0lBRXJDLFFBQVEsQ0FBQyxHQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwSCxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxLQUFLLENBQUE7WUFDaEIsQ0FBQztZQUNELEtBQUssTUFBTSxpQkFBaUIsSUFBSSxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsQ0FBQyxPQUFPLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxpQkFBaUIsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNsRixPQUFPLEtBQUssQ0FBQTtnQkFDaEIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDOztBQWpCTCxvRUFrQkM7QUFqQm1CLDRDQUFlLEdBQUcsSUFBSSw4Q0FBMEIsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIEFwcGxlIEluYy4gTGljZW5zZWQgdW5kZXIgTUlUIExpY2Vuc2UuXG5cbmltcG9ydCB7IE9yZGVyTG9va3VwU3RhdHVzLCBPcmRlckxvb2t1cFN0YXR1c1ZhbGlkYXRvciB9IGZyb20gXCIuL09yZGVyTG9va3VwU3RhdHVzXCI7XG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBBIHJlc3BvbnNlIHRoYXQgaW5jbHVkZXMgdGhlIG9yZGVyIGxvb2t1cCBzdGF0dXMgYW5kIGFuIGFycmF5IG9mIHNpZ25lZCB0cmFuc2FjdGlvbnMgZm9yIHRoZSBpbi1hcHAgcHVyY2hhc2VzIGluIHRoZSBvcmRlci5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvb3JkZXJsb29rdXByZXNwb25zZSBPcmRlckxvb2t1cFJlc3BvbnNlfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyTG9va3VwUmVzcG9uc2Uge1xuICAgIC8qKlxuICAgICAqIFRoZSBzdGF0dXMgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgb3JkZXIgSUQgaXMgdmFsaWQuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvb3JkZXJsb29rdXBzdGF0dXMgT3JkZXJMb29rdXBTdGF0dXN9XG4gICAgICoqL1xuICAgIHN0YXR1cz86IE9yZGVyTG9va3VwU3RhdHVzIHwgbnVtYmVyXG5cbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBpbi1hcHAgcHVyY2hhc2UgdHJhbnNhY3Rpb25zIHRoYXQgYXJlIHBhcnQgb2Ygb3JkZXIsIHNpZ25lZCBieSBBcHBsZSwgaW4gSlNPTiBXZWIgU2lnbmF0dXJlIGZvcm1hdC5cbiAgICAgKlxuICAgICAqKi9cbiAgICBzaWduZWRUcmFuc2FjdGlvbnM/OiBzdHJpbmdbXTtcbn1cblxuXG5leHBvcnQgY2xhc3MgT3JkZXJMb29rdXBSZXNwb25zZVZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvcjxPcmRlckxvb2t1cFJlc3BvbnNlPiB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHN0YXR1c1ZhbGlkYXRvciA9IG5ldyBPcmRlckxvb2t1cFN0YXR1c1ZhbGlkYXRvcigpXG4gICAgdmFsaWRhdGUob2JqOiBhbnkpOiBvYmogaXMgT3JkZXJMb29rdXBSZXNwb25zZSB7XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnc3RhdHVzJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKE9yZGVyTG9va3VwUmVzcG9uc2VWYWxpZGF0b3Iuc3RhdHVzVmFsaWRhdG9yLnZhbGlkYXRlKG9ialsnc3RhdHVzJ10pKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBvYmpbJ3NpZ25lZFRyYW5zYWN0aW9ucyddICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG9ialsnc2lnbmVkVHJhbnNhY3Rpb25zJ10pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uIG9mIG9ialsnc2lnbmVkVHJhbnNhY3Rpb25zJ10pIHtcbiAgICAgICAgICAgICAgICBpZiAoISh0eXBlb2Ygc2lnbmVkVHJhbnNhY3Rpb24gPT09IFwic3RyaW5nXCIgfHwgc2lnbmVkVHJhbnNhY3Rpb24gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJMb29rdXBSZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9PcmRlckxvb2t1cFJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQUU1RCwyREFBb0Y7QUF5QnBGLE1BQWEsNEJBQTRCO0lBRXJDLFFBQVEsQ0FBQyxHQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwSCxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxLQUFLLENBQUE7WUFDaEIsQ0FBQztZQUNELEtBQUssTUFBTSxpQkFBaUIsSUFBSSxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsQ0FBQyxPQUFPLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxpQkFBaUIsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNsRixPQUFPLEtBQUssQ0FBQTtnQkFDaEIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDOztBQWpCTCxvRUFrQkM7QUFqQm1CLDRDQUFlLEdBQUcsSUFBSSw4Q0FBMEIsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIEFwcGxlIEluYy4gTGljZW5zZWQgdW5kZXIgTUlUIExpY2Vuc2UuXG5cbmltcG9ydCB7IE9yZGVyTG9va3VwU3RhdHVzLCBPcmRlckxvb2t1cFN0YXR1c1ZhbGlkYXRvciB9IGZyb20gXCIuL09yZGVyTG9va3VwU3RhdHVzXCI7XG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBBIHJlc3BvbnNlIHRoYXQgaW5jbHVkZXMgdGhlIG9yZGVyIGxvb2t1cCBzdGF0dXMgYW5kIGFuIGFycmF5IG9mIHNpZ25lZCB0cmFuc2FjdGlvbnMgZm9yIHRoZSBpbi1hcHAgcHVyY2hhc2VzIGluIHRoZSBvcmRlci5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvb3JkZXJsb29rdXByZXNwb25zZSBPcmRlckxvb2t1cFJlc3BvbnNlfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyTG9va3VwUmVzcG9uc2Uge1xuICAgIC8qKlxuICAgICAqIFRoZSBzdGF0dXMgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgb3JkZXIgSUQgaXMgdmFsaWQuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvb3JkZXJsb29rdXBzdGF0dXMgT3JkZXJMb29rdXBTdGF0dXN9XG4gICAgICoqL1xuICAgIHN0YXR1cz86IE9yZGVyTG9va3VwU3RhdHVzIHwgbnVtYmVyXG5cbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBpbi1hcHAgcHVyY2hhc2UgdHJhbnNhY3Rpb25zIHRoYXQgYXJlIHBhcnQgb2Ygb3JkZXIsIHNpZ25lZCBieSBBcHBsZSwgaW4gSlNPTiBXZWIgU2lnbmF0dXJlIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9qd3N0cmFuc2FjdGlvbiBKV1NUcmFuc2FjdGlvbn1cbiAgICAgKiovXG4gICAgc2lnbmVkVHJhbnNhY3Rpb25zPzogc3RyaW5nW107XG59XG5cblxuZXhwb3J0IGNsYXNzIE9yZGVyTG9va3VwUmVzcG9uc2VWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3I8T3JkZXJMb29rdXBSZXNwb25zZT4ge1xuICAgIHN0YXRpYyByZWFkb25seSBzdGF0dXNWYWxpZGF0b3IgPSBuZXcgT3JkZXJMb29rdXBTdGF0dXNWYWxpZGF0b3IoKVxuICAgIHZhbGlkYXRlKG9iajogYW55KTogb2JqIGlzIE9yZGVyTG9va3VwUmVzcG9uc2Uge1xuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3N0YXR1cyddICE9PSAndW5kZWZpbmVkJykgJiYgIShPcmRlckxvb2t1cFJlc3BvbnNlVmFsaWRhdG9yLnN0YXR1c1ZhbGlkYXRvci52YWxpZGF0ZShvYmpbJ3N0YXR1cyddKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqWydzaWduZWRUcmFuc2FjdGlvbnMnXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShvYmpbJ3NpZ25lZFRyYW5zYWN0aW9ucyddKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBzaWduZWRUcmFuc2FjdGlvbiBvZiBvYmpbJ3NpZ25lZFRyYW5zYWN0aW9ucyddKSB7XG4gICAgICAgICAgICAgICAgaWYgKCEodHlwZW9mIHNpZ25lZFRyYW5zYWN0aW9uID09PSBcInN0cmluZ1wiIHx8IHNpZ25lZFRyYW5zYWN0aW9uIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG59XG4iXX0=

@@ -11,2 +11,3 @@ import { Validator } from "./Validator";

*
* {@link https://developer.apple.com/documentation/appstoreserverapi/jwstransaction JWSTransaction}
**/

@@ -13,0 +14,0 @@ signedTransactions?: string[];

@@ -27,2 +27,2 @@ "use strict";

exports.RefundHistoryResponseValidator = RefundHistoryResponseValidator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVmdW5kSGlzdG9yeVJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL1JlZnVuZEhpc3RvcnlSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREOzs7QUFpQzVELE1BQWEsOEJBQThCO0lBQ3ZDLFFBQVEsQ0FBQyxHQUFRO1FBQ2IsSUFBSSxPQUFPLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxLQUFLLENBQUE7WUFDaEIsQ0FBQztZQUNELEtBQUssTUFBTSxpQkFBaUIsSUFBSSxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsQ0FBQyxPQUFPLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxpQkFBaUIsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNsRixPQUFPLEtBQUssQ0FBQTtnQkFDaEIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUgsT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pILE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7Q0FDSjtBQXBCRCx3RUFvQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgQXBwbGUgSW5jLiBMaWNlbnNlZCB1bmRlciBNSVQgTGljZW5zZS5cblxuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5cbi8qKlxuICogQSByZXNwb25zZSB0aGF0IGNvbnRhaW5zIGFuIGFycmF5IG9mIHNpZ25lZCBKU09OIFdlYiBTaWduYXR1cmUgKEpXUykgcmVmdW5kZWQgdHJhbnNhY3Rpb25zLCBhbmQgcGFnaW5nIGluZm9ybWF0aW9uLlxuICpcbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9yZWZ1bmRoaXN0b3J5cmVzcG9uc2UgUmVmdW5kSGlzdG9yeVJlc3BvbnNlfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZnVuZEhpc3RvcnlSZXNwb25zZSB7XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgdXAgdG8gMjAgSldTIHRyYW5zYWN0aW9ucywgb3IgYW4gZW1wdHkgYXJyYXkgaWYgdGhlIGN1c3RvbWVyIGhhc24mIzM5O3QgcmVjZWl2ZWQgYW55IHJlZnVuZHMgaW4geW91ciBhcHAuIFRoZSB0cmFuc2FjdGlvbnMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgcmV2b2NhdGlvbkRhdGUuXG4gICAgICpcbiAgICAgKiovXG4gICAgc2lnbmVkVHJhbnNhY3Rpb25zPzogc3RyaW5nW107XG4gICAgICAgIFxuICAgIC8qKlxuICAgICAqIEEgdG9rZW4geW91IHVzZSBpbiBhIHF1ZXJ5IHRvIHJlcXVlc3QgdGhlIG5leHQgc2V0IG9mIHRyYW5zYWN0aW9ucyBmb3IgdGhlIGN1c3RvbWVyLlxuICAgICAqXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVyYXBpL3JldmlzaW9uIHJldmlzaW9ufVxuICAgICAqKi9cbiAgICByZXZpc2lvbj86IHN0cmluZ1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBBcHAgU3RvcmUgaGFzIG1vcmUgdHJhbnNhY3Rpb24gZGF0YS5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9oYXNtb3JlIGhhc01vcmV9XG4gICAgICoqL1xuICAgIGhhc01vcmU/OiBib29sZWFuXG59XG5cblxuZXhwb3J0IGNsYXNzIFJlZnVuZEhpc3RvcnlSZXNwb25zZVZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvcjxSZWZ1bmRIaXN0b3J5UmVzcG9uc2U+IHtcbiAgICB2YWxpZGF0ZShvYmo6IGFueSk6IG9iaiBpcyBSZWZ1bmRIaXN0b3J5UmVzcG9uc2Uge1xuICAgICAgICBpZiAodHlwZW9mIG9ialsnc2lnbmVkVHJhbnNhY3Rpb25zJ10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkob2JqWydzaWduZWRUcmFuc2FjdGlvbnMnXSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3Qgc2lnbmVkVHJhbnNhY3Rpb24gb2Ygb2JqWydzaWduZWRUcmFuc2FjdGlvbnMnXSkge1xuICAgICAgICAgICAgICAgIGlmICghKHR5cGVvZiBzaWduZWRUcmFuc2FjdGlvbiA9PT0gXCJzdHJpbmdcIiB8fCBzaWduZWRUcmFuc2FjdGlvbiBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsncmV2aXNpb24nXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsncmV2aXNpb24nXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ3JldmlzaW9uJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ2hhc01vcmUnXSAhPT0gJ3VuZGVmaW5lZCcpICYmICEodHlwZW9mIG9ialsnaGFzTW9yZSddID09PSBcImJvb2xlYW5cIiB8fCBvYmpbJ2hhc01vcmUnXSBpbnN0YW5jZW9mIEJvb2xlYW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVmdW5kSGlzdG9yeVJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL1JlZnVuZEhpc3RvcnlSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREOzs7QUFrQzVELE1BQWEsOEJBQThCO0lBQ3ZDLFFBQVEsQ0FBQyxHQUFRO1FBQ2IsSUFBSSxPQUFPLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxLQUFLLENBQUE7WUFDaEIsQ0FBQztZQUNELEtBQUssTUFBTSxpQkFBaUIsSUFBSSxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsQ0FBQyxPQUFPLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxpQkFBaUIsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNsRixPQUFPLEtBQUssQ0FBQTtnQkFDaEIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUgsT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pILE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7Q0FDSjtBQXBCRCx3RUFvQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgQXBwbGUgSW5jLiBMaWNlbnNlZCB1bmRlciBNSVQgTGljZW5zZS5cblxuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5cbi8qKlxuICogQSByZXNwb25zZSB0aGF0IGNvbnRhaW5zIGFuIGFycmF5IG9mIHNpZ25lZCBKU09OIFdlYiBTaWduYXR1cmUgKEpXUykgcmVmdW5kZWQgdHJhbnNhY3Rpb25zLCBhbmQgcGFnaW5nIGluZm9ybWF0aW9uLlxuICpcbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9yZWZ1bmRoaXN0b3J5cmVzcG9uc2UgUmVmdW5kSGlzdG9yeVJlc3BvbnNlfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZnVuZEhpc3RvcnlSZXNwb25zZSB7XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgdXAgdG8gMjAgSldTIHRyYW5zYWN0aW9ucywgb3IgYW4gZW1wdHkgYXJyYXkgaWYgdGhlIGN1c3RvbWVyIGhhc24mIzM5O3QgcmVjZWl2ZWQgYW55IHJlZnVuZHMgaW4geW91ciBhcHAuIFRoZSB0cmFuc2FjdGlvbnMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgcmV2b2NhdGlvbkRhdGUuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvandzdHJhbnNhY3Rpb24gSldTVHJhbnNhY3Rpb259XG4gICAgICoqL1xuICAgIHNpZ25lZFRyYW5zYWN0aW9ucz86IHN0cmluZ1tdO1xuICAgICAgICBcbiAgICAvKipcbiAgICAgKiBBIHRva2VuIHlvdSB1c2UgaW4gYSBxdWVyeSB0byByZXF1ZXN0IHRoZSBuZXh0IHNldCBvZiB0cmFuc2FjdGlvbnMgZm9yIHRoZSBjdXN0b21lci5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9yZXZpc2lvbiByZXZpc2lvbn1cbiAgICAgKiovXG4gICAgcmV2aXNpb24/OiBzdHJpbmdcbiAgICAgICAgXG4gICAgLyoqXG4gICAgICogQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgQXBwIFN0b3JlIGhhcyBtb3JlIHRyYW5zYWN0aW9uIGRhdGEuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvaGFzbW9yZSBoYXNNb3JlfVxuICAgICAqKi9cbiAgICBoYXNNb3JlPzogYm9vbGVhblxufVxuXG5cbmV4cG9ydCBjbGFzcyBSZWZ1bmRIaXN0b3J5UmVzcG9uc2VWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3I8UmVmdW5kSGlzdG9yeVJlc3BvbnNlPiB7XG4gICAgdmFsaWRhdGUob2JqOiBhbnkpOiBvYmogaXMgUmVmdW5kSGlzdG9yeVJlc3BvbnNlIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmpbJ3NpZ25lZFRyYW5zYWN0aW9ucyddICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG9ialsnc2lnbmVkVHJhbnNhY3Rpb25zJ10pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uIG9mIG9ialsnc2lnbmVkVHJhbnNhY3Rpb25zJ10pIHtcbiAgICAgICAgICAgICAgICBpZiAoISh0eXBlb2Ygc2lnbmVkVHJhbnNhY3Rpb24gPT09IFwic3RyaW5nXCIgfHwgc2lnbmVkVHJhbnNhY3Rpb24gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3JldmlzaW9uJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ3JldmlzaW9uJ10gPT09IFwic3RyaW5nXCIgfHwgb2JqWydyZXZpc2lvbiddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2Ygb2JqWydoYXNNb3JlJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ2hhc01vcmUnXSA9PT0gXCJib29sZWFuXCIgfHwgb2JqWydoYXNNb3JlJ10gaW5zdGFuY2VvZiBCb29sZWFuKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG59XG4iXX0=

@@ -18,2 +18,3 @@ import { LastTransactionsItem } from "./LastTransactionsItem";

*
* {@link https://developer.apple.com/documentation/appstoreserverapi/lasttransactionsitem lastTransactionsItem}
**/

@@ -20,0 +21,0 @@ lastTransactions?: LastTransactionsItem[];

@@ -14,2 +14,2 @@ "use strict";

exports.SubscriptionGroupIdentifierItemValidator = SubscriptionGroupIdentifierItemValidator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVySXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9TdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXJJdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQTBCNUQsTUFBYSx3Q0FBd0M7SUFDakQsUUFBUSxDQUFDLEdBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsNkJBQTZCLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsNkJBQTZCLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLDZCQUE2QixDQUFDLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuTCxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0NBQ0o7QUFQRCw0RkFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBBcHBsZSBJbmMuIExpY2Vuc2VkIHVuZGVyIE1JVCBMaWNlbnNlLlxuXG5pbXBvcnQgeyBMYXN0VHJhbnNhY3Rpb25zSXRlbSB9IGZyb20gXCIuL0xhc3RUcmFuc2FjdGlvbnNJdGVtXCI7XG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgYXV0by1yZW5ld2FibGUgc3Vic2NyaXB0aW9ucywgaW5jbHVkaW5nIHNpZ25lZCB0cmFuc2FjdGlvbiBpbmZvcm1hdGlvbiBhbmQgc2lnbmVkIHJlbmV3YWwgaW5mb3JtYXRpb24sIGZvciBvbmUgc3Vic2NyaXB0aW9uIGdyb3VwLlxuICpcbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9zdWJzY3JpcHRpb25ncm91cGlkZW50aWZpZXJpdGVtIFN1YnNjcmlwdGlvbkdyb3VwSWRlbnRpZmllckl0ZW19XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVySXRlbSB7XG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHN1YnNjcmlwdGlvbiBncm91cCB0aGF0IHRoZSBzdWJzY3JpcHRpb24gYmVsb25ncyB0by5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9zdWJzY3JpcHRpb25ncm91cGlkZW50aWZpZXIgc3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVyfVxuICAgICAqKi9cbiAgICBzdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXI/OiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIHRoZSBtb3N0IHJlY2VudCBBcHAgU3RvcmUtc2lnbmVkIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGFuZCBBcHAgU3RvcmUtc2lnbmVkIHJlbmV3YWwgaW5mb3JtYXRpb24gZm9yIGFsbCBhdXRvLXJlbmV3YWJsZSBzdWJzY3JpcHRpb25zIGluIHRoZSBzdWJzY3JpcHRpb24gZ3JvdXAuXG4gICAgICpcbiAgICAgKiovXG4gICAgbGFzdFRyYW5zYWN0aW9ucz86IExhc3RUcmFuc2FjdGlvbnNJdGVtW11cbn1cblxuXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVySXRlbVZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvcjxTdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXJJdGVtPiB7XG4gICAgdmFsaWRhdGUob2JqOiBhbnkpOiBvYmogaXMgU3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVySXRlbSB7XG4gICAgICAgIGlmICgodHlwZW9mIG9ialsnc3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVyJ10gIT09ICd1bmRlZmluZWQnKSAmJiAhKHR5cGVvZiBvYmpbJ3N1YnNjcmlwdGlvbkdyb3VwSWRlbnRpZmllciddID09PSBcInN0cmluZ1wiIHx8IG9ialsnc3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVyJ10gaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVySXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9TdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXJJdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQTJCNUQsTUFBYSx3Q0FBd0M7SUFDakQsUUFBUSxDQUFDLEdBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsNkJBQTZCLENBQUMsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsNkJBQTZCLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLDZCQUE2QixDQUFDLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuTCxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0NBQ0o7QUFQRCw0RkFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBBcHBsZSBJbmMuIExpY2Vuc2VkIHVuZGVyIE1JVCBMaWNlbnNlLlxuXG5pbXBvcnQgeyBMYXN0VHJhbnNhY3Rpb25zSXRlbSB9IGZyb20gXCIuL0xhc3RUcmFuc2FjdGlvbnNJdGVtXCI7XG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgYXV0by1yZW5ld2FibGUgc3Vic2NyaXB0aW9ucywgaW5jbHVkaW5nIHNpZ25lZCB0cmFuc2FjdGlvbiBpbmZvcm1hdGlvbiBhbmQgc2lnbmVkIHJlbmV3YWwgaW5mb3JtYXRpb24sIGZvciBvbmUgc3Vic2NyaXB0aW9uIGdyb3VwLlxuICpcbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9zdWJzY3JpcHRpb25ncm91cGlkZW50aWZpZXJpdGVtIFN1YnNjcmlwdGlvbkdyb3VwSWRlbnRpZmllckl0ZW19XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVySXRlbSB7XG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHN1YnNjcmlwdGlvbiBncm91cCB0aGF0IHRoZSBzdWJzY3JpcHRpb24gYmVsb25ncyB0by5cbiAgICAgKlxuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9hcHBzdG9yZXNlcnZlcmFwaS9zdWJzY3JpcHRpb25ncm91cGlkZW50aWZpZXIgc3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVyfVxuICAgICAqKi9cbiAgICBzdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXI/OiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIHRoZSBtb3N0IHJlY2VudCBBcHAgU3RvcmUtc2lnbmVkIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGFuZCBBcHAgU3RvcmUtc2lnbmVkIHJlbmV3YWwgaW5mb3JtYXRpb24gZm9yIGFsbCBhdXRvLXJlbmV3YWJsZSBzdWJzY3JpcHRpb25zIGluIHRoZSBzdWJzY3JpcHRpb24gZ3JvdXAuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvbGFzdHRyYW5zYWN0aW9uc2l0ZW0gbGFzdFRyYW5zYWN0aW9uc0l0ZW19XG4gICAgICoqL1xuICAgIGxhc3RUcmFuc2FjdGlvbnM/OiBMYXN0VHJhbnNhY3Rpb25zSXRlbVtdXG59XG5cblxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbkdyb3VwSWRlbnRpZmllckl0ZW1WYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3I8U3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVySXRlbT4ge1xuICAgIHZhbGlkYXRlKG9iajogYW55KTogb2JqIGlzIFN1YnNjcmlwdGlvbkdyb3VwSWRlbnRpZmllckl0ZW0ge1xuICAgICAgICBpZiAoKHR5cGVvZiBvYmpbJ3N1YnNjcmlwdGlvbkdyb3VwSWRlbnRpZmllciddICE9PSAndW5kZWZpbmVkJykgJiYgISh0eXBlb2Ygb2JqWydzdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXInXSA9PT0gXCJzdHJpbmdcIiB8fCBvYmpbJ3N1YnNjcmlwdGlvbkdyb3VwSWRlbnRpZmllciddIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG59XG4iXX0=
import { StringValidator } from "./Validator";
/**
* A notification subtype value that App Store Server Notifications 2 uses.
* A string that provides details about select notification types in version 2.
*
* {@link https://developer.apple.com/documentation/appstoreserverapi/notificationsubtype notificationSubtype}
* {@link https://developer.apple.com/documentation/appstoreservernotifications/subtype subtype}
*/

@@ -7,0 +7,0 @@ export declare enum Subtype {

@@ -7,5 +7,5 @@ "use strict";

/**
* A notification subtype value that App Store Server Notifications 2 uses.
* A string that provides details about select notification types in version 2.
*
* {@link https://developer.apple.com/documentation/appstoreserverapi/notificationsubtype notificationSubtype}
* {@link https://developer.apple.com/documentation/appstoreservernotifications/subtype subtype}
*/

@@ -35,2 +35,2 @@ var Subtype;

exports.SubtypeValidator = SubtypeValidator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9TdWJ0eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQUU1RCwyQ0FBOEM7QUFFOUM7Ozs7R0FJRztBQUNILElBQVksT0FrQlg7QUFsQkQsV0FBWSxPQUFPO0lBQ2Ysc0NBQTJCLENBQUE7SUFDM0Isc0NBQTJCLENBQUE7SUFDM0Isa0NBQXVCLENBQUE7SUFDdkIsOEJBQW1CLENBQUE7SUFDbkIsb0RBQXlDLENBQUE7SUFDekMsc0RBQTJDLENBQUE7SUFDM0Msa0NBQXVCLENBQUE7SUFDdkIsMENBQStCLENBQUE7SUFDL0IsNENBQWlDLENBQUE7SUFDakMsd0NBQTZCLENBQUE7SUFDN0IsOEJBQW1CLENBQUE7SUFDbkIsZ0NBQXFCLENBQUE7SUFDckIsZ0RBQXFDLENBQUE7SUFDckMsd0RBQTZDLENBQUE7SUFDN0MsOEJBQW1CLENBQUE7SUFDbkIsOEJBQW1CLENBQUE7SUFDbkIsb0NBQXlCLENBQUE7QUFDN0IsQ0FBQyxFQWxCVyxPQUFPLHVCQUFQLE9BQU8sUUFrQmxCO0FBRUQsTUFBYSxnQkFBaUIsU0FBUSwyQkFBZTtDQUFHO0FBQXhELDRDQUF3RCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBBcHBsZSBJbmMuIExpY2Vuc2VkIHVuZGVyIE1JVCBMaWNlbnNlLlxuXG5pbXBvcnQgeyBTdHJpbmdWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBBIG5vdGlmaWNhdGlvbiBzdWJ0eXBlIHZhbHVlIHRoYXQgQXBwIFN0b3JlIFNlcnZlciBOb3RpZmljYXRpb25zIDIgdXNlcy5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vYXBwc3RvcmVzZXJ2ZXJhcGkvbm90aWZpY2F0aW9uc3VidHlwZSBub3RpZmljYXRpb25TdWJ0eXBlfVxuICovXG5leHBvcnQgZW51bSBTdWJ0eXBlIHtcbiAgICBJTklUSUFMX0JVWSA9IFwiSU5JVElBTF9CVVlcIixcbiAgICBSRVNVQlNDUklCRSA9IFwiUkVTVUJTQ1JJQkVcIixcbiAgICBET1dOR1JBREUgPSBcIkRPV05HUkFERVwiLFxuICAgIFVQR1JBREUgPSBcIlVQR1JBREVcIixcbiAgICBBVVRPX1JFTkVXX0VOQUJMRUQgPSBcIkFVVE9fUkVORVdfRU5BQkxFRFwiLFxuICAgIEFVVE9fUkVORVdfRElTQUJMRUQgPSBcIkFVVE9fUkVORVdfRElTQUJMRURcIixcbiAgICBWT0xVTlRBUlkgPSBcIlZPTFVOVEFSWVwiLFxuICAgIEJJTExJTkdfUkVUUlkgPSBcIkJJTExJTkdfUkVUUllcIixcbiAgICBQUklDRV9JTkNSRUFTRSA9IFwiUFJJQ0VfSU5DUkVBU0VcIixcbiAgICBHUkFDRV9QRVJJT0QgPSBcIkdSQUNFX1BFUklPRFwiLFxuICAgIFBFTkRJTkcgPSBcIlBFTkRJTkdcIixcbiAgICBBQ0NFUFRFRCA9IFwiQUNDRVBURURcIixcbiAgICBCSUxMSU5HX1JFQ09WRVJZID0gXCJCSUxMSU5HX1JFQ09WRVJZXCIsXG4gICAgUFJPRFVDVF9OT1RfRk9SX1NBTEUgPSBcIlBST0RVQ1RfTk9UX0ZPUl9TQUxFXCIsXG4gICAgU1VNTUFSWSA9IFwiU1VNTUFSWVwiLFxuICAgIEZBSUxVUkUgPSBcIkZBSUxVUkVcIixcbiAgICBVTlJFUE9SVEVEID0gXCJVTlJFUE9SVEVEXCIsXG59XG5cbmV4cG9ydCBjbGFzcyBTdWJ0eXBlVmFsaWRhdG9yIGV4dGVuZHMgU3RyaW5nVmFsaWRhdG9yIHt9XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9TdWJ0eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0REFBNEQ7OztBQUU1RCwyQ0FBOEM7QUFFOUM7Ozs7R0FJRztBQUNILElBQVksT0FrQlg7QUFsQkQsV0FBWSxPQUFPO0lBQ2Ysc0NBQTJCLENBQUE7SUFDM0Isc0NBQTJCLENBQUE7SUFDM0Isa0NBQXVCLENBQUE7SUFDdkIsOEJBQW1CLENBQUE7SUFDbkIsb0RBQXlDLENBQUE7SUFDekMsc0RBQTJDLENBQUE7SUFDM0Msa0NBQXVCLENBQUE7SUFDdkIsMENBQStCLENBQUE7SUFDL0IsNENBQWlDLENBQUE7SUFDakMsd0NBQTZCLENBQUE7SUFDN0IsOEJBQW1CLENBQUE7SUFDbkIsZ0NBQXFCLENBQUE7SUFDckIsZ0RBQXFDLENBQUE7SUFDckMsd0RBQTZDLENBQUE7SUFDN0MsOEJBQW1CLENBQUE7SUFDbkIsOEJBQW1CLENBQUE7SUFDbkIsb0NBQXlCLENBQUE7QUFDN0IsQ0FBQyxFQWxCVyxPQUFPLHVCQUFQLE9BQU8sUUFrQmxCO0FBRUQsTUFBYSxnQkFBaUIsU0FBUSwyQkFBZTtDQUFHO0FBQXhELDRDQUF3RCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBBcHBsZSBJbmMuIExpY2Vuc2VkIHVuZGVyIE1JVCBMaWNlbnNlLlxuXG5pbXBvcnQgeyBTdHJpbmdWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBBIHN0cmluZyB0aGF0IHByb3ZpZGVzIGRldGFpbHMgYWJvdXQgc2VsZWN0IG5vdGlmaWNhdGlvbiB0eXBlcyBpbiB2ZXJzaW9uIDIuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL2FwcHN0b3Jlc2VydmVybm90aWZpY2F0aW9ucy9zdWJ0eXBlIHN1YnR5cGV9XG4gKi9cbmV4cG9ydCBlbnVtIFN1YnR5cGUge1xuICAgIElOSVRJQUxfQlVZID0gXCJJTklUSUFMX0JVWVwiLFxuICAgIFJFU1VCU0NSSUJFID0gXCJSRVNVQlNDUklCRVwiLFxuICAgIERPV05HUkFERSA9IFwiRE9XTkdSQURFXCIsXG4gICAgVVBHUkFERSA9IFwiVVBHUkFERVwiLFxuICAgIEFVVE9fUkVORVdfRU5BQkxFRCA9IFwiQVVUT19SRU5FV19FTkFCTEVEXCIsXG4gICAgQVVUT19SRU5FV19ESVNBQkxFRCA9IFwiQVVUT19SRU5FV19ESVNBQkxFRFwiLFxuICAgIFZPTFVOVEFSWSA9IFwiVk9MVU5UQVJZXCIsXG4gICAgQklMTElOR19SRVRSWSA9IFwiQklMTElOR19SRVRSWVwiLFxuICAgIFBSSUNFX0lOQ1JFQVNFID0gXCJQUklDRV9JTkNSRUFTRVwiLFxuICAgIEdSQUNFX1BFUklPRCA9IFwiR1JBQ0VfUEVSSU9EXCIsXG4gICAgUEVORElORyA9IFwiUEVORElOR1wiLFxuICAgIEFDQ0VQVEVEID0gXCJBQ0NFUFRFRFwiLFxuICAgIEJJTExJTkdfUkVDT1ZFUlkgPSBcIkJJTExJTkdfUkVDT1ZFUllcIixcbiAgICBQUk9EVUNUX05PVF9GT1JfU0FMRSA9IFwiUFJPRFVDVF9OT1RfRk9SX1NBTEVcIixcbiAgICBTVU1NQVJZID0gXCJTVU1NQVJZXCIsXG4gICAgRkFJTFVSRSA9IFwiRkFJTFVSRVwiLFxuICAgIFVOUkVQT1JURUQgPSBcIlVOUkVQT1JURURcIixcbn1cblxuZXhwb3J0IGNsYXNzIFN1YnR5cGVWYWxpZGF0b3IgZXh0ZW5kcyBTdHJpbmdWYWxpZGF0b3Ige31cbiJdfQ==

@@ -17,2 +17,3 @@ "use strict";

const Type_1 = require("../../models/Type");
const ConsumptionRequestReason_1 = require("../../models/ConsumptionRequestReason");
describe('Testing decoding of signed data', () => {

@@ -97,3 +98,24 @@ it('should decode an app transaction', async () => {

expect(Status_1.Status.ACTIVE).toBe(notification.data.status);
expect(notification.data.consumptionRequestReason).toBeFalsy();
});
it('should decode a signed CONSUMPTION_REQUEST notification', async () => {
const signedNotification = (0, util_1.createSignedDataFromJson)("tests/resources/models/signedConsumptionRequestNotification.json");
const notification = await (0, util_1.getDefaultSignedPayloadVerifier)().verifyAndDecodeNotification(signedNotification);
expect(NotificationTypeV2_1.NotificationTypeV2.CONSUMPTION_REQUEST).toBe(notification.notificationType);
expect(notification.subtype).toBeFalsy();
expect("002e14d5-51f5-4503-b5a8-c3a1af68eb20").toBe(notification.notificationUUID);
expect("2.0").toBe(notification.version);
expect(1698148900000).toBe(notification.signedDate);
expect(notification.data).toBeTruthy();
expect(notification.summary).toBeFalsy();
expect(notification.externalPurchaseToken).toBeFalsy();
expect(Environment_1.Environment.LOCAL_TESTING).toBe(notification.data.environment);
expect(41234).toBe(notification.data.appAppleId);
expect("com.example").toBe(notification.data.bundleId);
expect("1.2.3").toBe(notification.data.bundleVersion);
expect("signed_transaction_info_value").toBe(notification.data.signedTransactionInfo);
expect("signed_renewal_info_value").toBe(notification.data.signedRenewalInfo);
expect(Status_1.Status.ACTIVE).toBe(notification.data.status);
expect(ConsumptionRequestReason_1.ConsumptionRequestReason.UNINTENDED_PURCHASE).toBe(notification.data.consumptionRequestReason);
});
it('should decode a signed summary notification', async () => {

@@ -164,2 +186,2 @@ const signedNotification = (0, util_1.createSignedDataFromJson)("tests/resources/models/signedSummaryNotification.json");

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25fZGVjb2RpbmcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3RzL3VuaXQtdGVzdHMvdHJhbnNhY3Rpb25fZGVjb2RpbmcudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREOztBQUU1RCxrRUFBK0Q7QUFDL0QsMERBQXVEO0FBQ3ZELG9FQUFpRTtBQUNqRSx3RUFBcUU7QUFDckUsc0RBQW1EO0FBQ25ELDBFQUF1RTtBQUN2RSxnREFBNkM7QUFDN0Msa0RBQStDO0FBQy9DLGtDQUFtRjtBQUNuRix3RUFBcUU7QUFDckUsb0VBQWlFO0FBQ2pFLHNFQUFtRTtBQUNuRSw0Q0FBeUM7QUFHekMsUUFBUSxDQUFDLGlDQUFpQyxFQUFFLEdBQUcsRUFBRTtJQUM3QyxFQUFFLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDOUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLCtCQUF3QixFQUFDLDRDQUE0QyxDQUFDLENBQUE7UUFFbkcsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFBLHNDQUErQixHQUFFLENBQUMsNkJBQTZCLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUVsSCxNQUFNLENBQUMseUJBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ2xFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzlDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDdkQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsQ0FB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QyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ2xGLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN6QyxNQUFNLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDdkQsTUFBTSxDQUFDLDhDQUE4QyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ25ILE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFzQixDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDakYsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXNCLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXNCLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDNUUsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBBcHBsZSBJbmMuIExpY2Vuc2VkIHVuZGVyIE1JVCBMaWNlbnNlLlxuXG5pbXBvcnQgeyBBdXRvUmVuZXdTdGF0dXMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL0F1dG9SZW5ld1N0YXR1c1wiO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL0Vudmlyb25tZW50XCI7XG5pbXBvcnQgeyBFeHBpcmF0aW9uSW50ZW50IH0gZnJvbSBcIi4uLy4uL21vZGVscy9FeHBpcmF0aW9uSW50ZW50XCI7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25UeXBlVjIgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL05vdGlmaWNhdGlvblR5cGVWMlwiO1xuaW1wb3J0IHsgT2ZmZXJUeXBlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9PZmZlclR5cGVcIjtcbmltcG9ydCB7IFByaWNlSW5jcmVhc2VTdGF0dXMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL1ByaWNlSW5jcmVhc2VTdGF0dXNcIjtcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvU3RhdHVzXCI7XG5pbXBvcnQgeyBTdWJ0eXBlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9TdWJ0eXBlXCI7XG5pbXBvcnQgeyBjcmVhdGVTaWduZWREYXRhRnJvbUpzb24sIGdldERlZmF1bHRTaWduZWRQYXlsb2FkVmVyaWZpZXIgfSBmcm9tIFwiLi4vdXRpbFwiXG5pbXBvcnQgeyBJbkFwcE93bmVyc2hpcFR5cGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL0luQXBwT3duZXJzaGlwVHlwZVwiO1xuaW1wb3J0IHsgUmV2b2NhdGlvblJlYXNvbiB9IGZyb20gXCIuLi8uLi9tb2RlbHMvUmV2b2NhdGlvblJlYXNvblwiO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZWFzb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL1RyYW5zYWN0aW9uUmVhc29uXCI7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9UeXBlXCI7XG5cblxuZGVzY3JpYmUoJ1Rlc3RpbmcgZGVjb2Rpbmcgb2Ygc2lnbmVkIGRhdGEnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBkZWNvZGUgYW4gYXBwIHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBzaWduZWRBcHBUcmFuc2FjdGlvbiA9IGNyZWF0ZVNpZ25lZERhdGFGcm9tSnNvbihcInRlc3RzL3Jlc291cmNlcy9tb2RlbHMvYXBwVHJhbnNhY3Rpb24uanNvblwiKVxuXG4gICAgICAgIGNvbnN0IGFwcFRyYW5zYWN0aW9uID0gYXdhaXQgZ2V0RGVmYXVsdFNpZ25lZFBheWxvYWRWZXJpZmllcigpLnZlcmlmeUFuZERlY29kZUFwcFRyYW5zYWN0aW9uKHNpZ25lZEFwcFRyYW5zYWN0aW9uKVxuXG4gICAgICAgIGV4cGVjdChFbnZpcm9ubWVudC5MT0NBTF9URVNUSU5HKS50b0JlKGFwcFRyYW5zYWN0aW9uLnJlY2VpcHRUeXBlKVxuICAgICAgICBleHBlY3QoNTMxNDEyKS50b0JlKGFwcFRyYW5zYWN0aW9uLmFwcEFwcGxlSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlXCIpLnRvQmUoYXBwVHJhbnNhY3Rpb24uYnVuZGxlSWQpXG4gICAgICAgIGV4cGVjdChcIjEuMi4zXCIpLnRvQmUoYXBwVHJhbnNhY3Rpb24uYXBwbGljYXRpb25WZXJzaW9uKVxuICAgICAgICBleHBlY3QoNTEyKS50b0JlKGFwcFRyYW5zYWN0aW9uLnZlcnNpb25FeHRlcm5hbElkZW50aWZpZXIpXG4gICAgICAgIGV4cGVjdCgxNjk4MTQ4OTAwMDAwKS50b0JlKGFwcFRyYW5zYWN0aW9uLnJlY2VpcHRDcmVhdGlvbkRhdGUpXG4gICAgICAgIGV4cGVjdCgxNjk4MTQ4ODAwMDAwKS50b0JlKGFwcFRyYW5zYWN0aW9uLm9yaWdpbmFsUHVyY2hhc2VEYXRlKVxuICAgICAgICBleHBlY3QoXCIxLjEuMlwiKS50b0JlKGFwcFRyYW5zYWN0aW9uLm9yaWdpbmFsQXBwbGljYXRpb25WZXJzaW9uKVxuICAgICAgICBleHBlY3QoXCJkZXZpY2VfdmVyaWZpY2F0aW9uX3ZhbHVlXCIpLnRvQmUoYXBwVHJhbnNhY3Rpb24uZGV2aWNlVmVyaWZpY2F0aW9uKVxuICAgICAgICBleHBlY3QoXCI0OGNjZmE0Mi03NDMxLTRmMjItOTkwOC03ZTg4OTgzZTEwNWFcIikudG9CZShhcHBUcmFuc2FjdGlvbi5kZXZpY2VWZXJpZmljYXRpb25Ob25jZSlcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg3MDAwMDApLnRvQmUoYXBwVHJhbnNhY3Rpb24ucHJlb3JkZXJEYXRlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBkZWNvZGUgYSByZW5ld2FsIGluZm8nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25lZFJlbmV3YWxJbmZvID0gY3JlYXRlU2lnbmVkRGF0YUZyb21Kc29uKFwidGVzdHMvcmVzb3VyY2VzL21vZGVscy9zaWduZWRSZW5ld2FsSW5mby5qc29uXCIpXG5cbiAgICAgICAgY29uc3QgcmVuZXdhbEluZm8gPSBhd2FpdCBnZXREZWZhdWx0U2lnbmVkUGF5bG9hZFZlcmlmaWVyKCkudmVyaWZ5QW5kRGVjb2RlUmVuZXdhbEluZm8oc2lnbmVkUmVuZXdhbEluZm8pXG5cbiAgICAgICAgZXhwZWN0KEV4cGlyYXRpb25JbnRlbnQuQ1VTVE9NRVJfQ0FOQ0VMTEVEKS50b0JlKHJlbmV3YWxJbmZvLmV4cGlyYXRpb25JbnRlbnQpXG4gICAgICAgIGV4cGVjdChcIjEyMzQ1XCIpLnRvQmUocmVuZXdhbEluZm8ub3JpZ2luYWxUcmFuc2FjdGlvbklkKVxuICAgICAgICBleHBlY3QoXCJjb20uZXhhbXBsZS5wcm9kdWN0LjJcIikudG9CZShyZW5ld2FsSW5mby5hdXRvUmVuZXdQcm9kdWN0SWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlLnByb2R1Y3RcIikudG9CZShyZW5ld2FsSW5mby5wcm9kdWN0SWQpXG4gICAgICAgIGV4cGVjdChBdXRvUmVuZXdTdGF0dXMuT04pLnRvQmUocmVuZXdhbEluZm8uYXV0b1JlbmV3U3RhdHVzKVxuICAgICAgICBleHBlY3QocmVuZXdhbEluZm8uaXNJbkJpbGxpbmdSZXRyeVBlcmlvZCkudG9CZSh0cnVlKVxuICAgICAgICBleHBlY3QoUHJpY2VJbmNyZWFzZVN0YXR1cy5DVVNUT01FUl9IQVNfTk9UX1JFU1BPTkRFRCkudG9CZShyZW5ld2FsSW5mby5wcmljZUluY3JlYXNlU3RhdHVzKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODkwMDAwMCkudG9CZShyZW5ld2FsSW5mby5ncmFjZVBlcmlvZEV4cGlyZXNEYXRlKVxuICAgICAgICBleHBlY3QoT2ZmZXJUeXBlLlBST01PVElPTkFMX09GRkVSKS50b0JlKHJlbmV3YWxJbmZvLm9mZmVyVHlwZSlcbiAgICAgICAgZXhwZWN0KFwiYWJjLjEyM1wiKS50b0JlKHJlbmV3YWxJbmZvLm9mZmVySWRlbnRpZmllcilcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg4MDAwMDApLnRvQmUocmVuZXdhbEluZm8uc2lnbmVkRGF0ZSlcbiAgICAgICAgZXhwZWN0KEVudmlyb25tZW50LkxPQ0FMX1RFU1RJTkcpLnRvQmUocmVuZXdhbEluZm8uZW52aXJvbm1lbnQpXG4gICAgICAgIGV4cGVjdCgxNjk4MTQ4ODAwMDAwKS50b0JlKHJlbmV3YWxJbmZvLnJlY2VudFN1YnNjcmlwdGlvblN0YXJ0RGF0ZSlcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg4NTAwMDApLnRvQmUocmVuZXdhbEluZm8ucmVuZXdhbERhdGUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGRlY29kZSBhIHRyYW5zYWN0aW9uIGluZm8nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uID0gY3JlYXRlU2lnbmVkRGF0YUZyb21Kc29uKFwidGVzdHMvcmVzb3VyY2VzL21vZGVscy9zaWduZWRUcmFuc2FjdGlvbi5qc29uXCIpXG5cbiAgICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSBhd2FpdCBnZXREZWZhdWx0U2lnbmVkUGF5bG9hZFZlcmlmaWVyKCkudmVyaWZ5QW5kRGVjb2RlVHJhbnNhY3Rpb24oc2lnbmVkVHJhbnNhY3Rpb24pXG5cbiAgICAgICAgZXhwZWN0KFwiMTIzNDVcIikudG9CZSh0cmFuc2FjdGlvbi5vcmlnaW5hbFRyYW5zYWN0aW9uSWQpXG4gICAgICAgIGV4cGVjdChcIjIzNDU2XCIpLnRvQmUodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JZClcbiAgICAgICAgZXhwZWN0KFwiMzQzNDNcIikudG9CZSh0cmFuc2FjdGlvbi53ZWJPcmRlckxpbmVJdGVtSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlXCIpLnRvQmUodHJhbnNhY3Rpb24uYnVuZGxlSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlLnByb2R1Y3RcIikudG9CZSh0cmFuc2FjdGlvbi5wcm9kdWN0SWQpXG4gICAgICAgIGV4cGVjdChcIjU1NTU1XCIpLnRvQmUodHJhbnNhY3Rpb24uc3Vic2NyaXB0aW9uR3JvdXBJZGVudGlmaWVyKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODgwMDAwMCkudG9CZSh0cmFuc2FjdGlvbi5vcmlnaW5hbFB1cmNoYXNlRGF0ZSlcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg5MDAwMDApLnRvQmUodHJhbnNhY3Rpb24ucHVyY2hhc2VEYXRlKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODk1MDAwMCkudG9CZSh0cmFuc2FjdGlvbi5yZXZvY2F0aW9uRGF0ZSlcbiAgICAgICAgZXhwZWN0KDE2OTgxNDkwMDAwMDApLnRvQmUodHJhbnNhY3Rpb24uZXhwaXJlc0RhdGUpXG4gICAgICAgIGV4cGVjdCgxKS50b0JlKHRyYW5zYWN0aW9uLnF1YW50aXR5KVxuICAgICAgICBleHBlY3QoVHlwZS5BVVRPX1JFTkVXQUJMRV9TVUJTQ1JJUFRJT04pLnRvQmUodHJhbnNhY3Rpb24udHlwZSlcbiAgICAgICAgZXhwZWN0KFwiN2UzZmIyMGItNGNkYi00N2NjLTkzNmQtOTlkNjVmNjA4MTM4XCIpLnRvQmUodHJhbnNhY3Rpb24uYXBwQWNjb3VudFRva2VuKVxuICAgICAgICBleHBlY3QoSW5BcHBPd25lcnNoaXBUeXBlLlBVUkNIQVNFRCkudG9CZSh0cmFuc2FjdGlvbi5pbkFwcE93bmVyc2hpcFR5cGUpXG4gICAgICAgIGV4cGVjdCgxNjk4MTQ4OTAwMDAwKS50b0JlKHRyYW5zYWN0aW9uLnNpZ25lZERhdGUpXG4gICAgICAgIGV4cGVjdChSZXZvY2F0aW9uUmVhc29uLlJFRlVOREVEX0RVRV9UT19JU1NVRSkudG9CZSh0cmFuc2FjdGlvbi5yZXZvY2F0aW9uUmVhc29uKVxuICAgICAgICBleHBlY3QoXCJhYmMuMTIzXCIpLnRvQmUodHJhbnNhY3Rpb24ub2ZmZXJJZGVudGlmaWVyKVxuICAgICAgICBleHBlY3QodHJhbnNhY3Rpb24uaXNVcGdyYWRlZCkudG9CZSh0cnVlKVxuICAgICAgICBleHBlY3QoT2ZmZXJUeXBlLklOVFJPRFVDVE9SWV9PRkZFUikudG9CZSh0cmFuc2FjdGlvbi5vZmZlclR5cGUpXG4gICAgICAgIGV4cGVjdChcIlVTQVwiKS50b0JlKHRyYW5zYWN0aW9uLnN0b3JlZnJvbnQpXG4gICAgICAgIGV4cGVjdChcIjE0MzQ0MVwiKS50b0JlKHRyYW5zYWN0aW9uLnN0b3JlZnJvbnRJZClcbiAgICAgICAgZXhwZWN0KFRyYW5zYWN0aW9uUmVhc29uLlBVUkNIQVNFKS50b0JlKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uUmVhc29uKVxuICAgICAgICBleHBlY3QoRW52aXJvbm1lbnQuTE9DQUxfVEVTVElORykudG9CZSh0cmFuc2FjdGlvbi5lbnZpcm9ubWVudClcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgZGVjb2RlIGEgc2lnbmVkIG5vdGlmaWNhdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3Qgc2lnbmVkTm90aWZpY2F0aW9uID0gY3JlYXRlU2lnbmVkRGF0YUZyb21Kc29uKFwidGVzdHMvcmVzb3VyY2VzL21vZGVscy9zaWduZWROb3RpZmljYXRpb24uanNvblwiKVxuXG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IGF3YWl0IGdldERlZmF1bHRTaWduZWRQYXlsb2FkVmVyaWZpZXIoKS52ZXJpZnlBbmREZWNvZGVOb3RpZmljYXRpb24oc2lnbmVkTm90aWZpY2F0aW9uKVxuXG4gICAgICAgIGV4cGVjdChOb3RpZmljYXRpb25UeXBlVjIuU1VCU0NSSUJFRCkudG9CZShub3RpZmljYXRpb24ubm90aWZpY2F0aW9uVHlwZSlcbiAgICAgICAgZXhwZWN0KFN1YnR5cGUuSU5JVElBTF9CVVkpLnRvQmUobm90aWZpY2F0aW9uLnN1YnR5cGUpXG4gICAgICAgIGV4cGVjdChcIjAwMmUxNGQ1LTUxZjUtNDUwMy1iNWE4LWMzYTFhZjY4ZWIyMFwiKS50b0JlKG5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25VVUlEKVxuICAgICAgICBleHBlY3QoXCIyLjBcIikudG9CZShub3RpZmljYXRpb24udmVyc2lvbilcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg5MDAwMDApLnRvQmUobm90aWZpY2F0aW9uLnNpZ25lZERhdGUpXG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uZGF0YSkudG9CZVRydXRoeSgpXG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uc3VtbWFyeSkudG9CZUZhbHN5KClcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5leHRlcm5hbFB1cmNoYXNlVG9rZW4pLnRvQmVGYWxzeSgpXG4gICAgICAgIGV4cGVjdChFbnZpcm9ubWVudC5MT0NBTF9URVNUSU5HKS50b0JlKG5vdGlmaWNhdGlvbi5kYXRhIS5lbnZpcm9ubWVudClcbiAgICAgICAgZXhwZWN0KDQxMjM0KS50b0JlKG5vdGlmaWNhdGlvbi5kYXRhIS5hcHBBcHBsZUlkKVxuICAgICAgICBleHBlY3QoXCJjb20uZXhhbXBsZVwiKS50b0JlKG5vdGlmaWNhdGlvbi5kYXRhIS5idW5kbGVJZClcbiAgICAgICAgZXhwZWN0KFwiMS4yLjNcIikudG9CZShub3RpZmljYXRpb24uZGF0YSEuYnVuZGxlVmVyc2lvbilcbiAgICAgICAgZXhwZWN0KFwic2lnbmVkX3RyYW5zYWN0aW9uX2luZm9fdmFsdWVcIikudG9CZShub3RpZmljYXRpb24uZGF0YSEuc2lnbmVkVHJhbnNhY3Rpb25JbmZvKVxuICAgICAgICBleHBlY3QoXCJzaWduZWRfcmVuZXdhbF9pbmZvX3ZhbHVlXCIpLnRvQmUobm90aWZpY2F0aW9uLmRhdGEhLnNpZ25lZFJlbmV3YWxJbmZvKVxuICAgICAgICBleHBlY3QoU3RhdHVzLkFDVElWRSkudG9CZShub3RpZmljYXRpb24uZGF0YSEuc3RhdHVzKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBkZWNvZGUgYSBzaWduZWQgc3VtbWFyeSBub3RpZmljYXRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25lZE5vdGlmaWNhdGlvbiA9IGNyZWF0ZVNpZ25lZERhdGFGcm9tSnNvbihcInRlc3RzL3Jlc291cmNlcy9tb2RlbHMvc2lnbmVkU3VtbWFyeU5vdGlmaWNhdGlvbi5qc29uXCIpXG5cbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0gYXdhaXQgZ2V0RGVmYXVsdFNpZ25lZFBheWxvYWRWZXJpZmllcigpLnZlcmlmeUFuZERlY29kZU5vdGlmaWNhdGlvbihzaWduZWROb3RpZmljYXRpb24pXG5cbiAgICAgICAgZXhwZWN0KE5vdGlmaWNhdGlvblR5cGVWMi5SRU5FV0FMX0VYVEVOU0lPTikudG9CZShub3RpZmljYXRpb24ubm90aWZpY2F0aW9uVHlwZSlcbiAgICAgICAgZXhwZWN0KFN1YnR5cGUuU1VNTUFSWSkudG9CZShub3RpZmljYXRpb24uc3VidHlwZSlcbiAgICAgICAgZXhwZWN0KFwiMDAyZTE0ZDUtNTFmNS00NTAzLWI1YTgtYzNhMWFmNjhlYjIwXCIpLnRvQmUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvblVVSUQpXG4gICAgICAgIGV4cGVjdChcIjIuMFwiKS50b0JlKG5vdGlmaWNhdGlvbi52ZXJzaW9uKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODkwMDAwMCkudG9CZShub3RpZmljYXRpb24uc2lnbmVkRGF0ZSlcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5kYXRhKS50b0JlRmFsc3koKTtcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5zdW1tYXJ5KS50b0JlVHJ1dGh5KCk7XG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uZXh0ZXJuYWxQdXJjaGFzZVRva2VuKS50b0JlRmFsc3koKVxuICAgICAgICBleHBlY3QoRW52aXJvbm1lbnQuTE9DQUxfVEVTVElORykudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEuZW52aXJvbm1lbnQpXG4gICAgICAgIGV4cGVjdCg0MTIzNCkudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEuYXBwQXBwbGVJZClcbiAgICAgICAgZXhwZWN0KFwiY29tLmV4YW1wbGVcIikudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEuYnVuZGxlSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlLnByb2R1Y3RcIikudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEucHJvZHVjdElkKVxuICAgICAgICBleHBlY3QoXCJlZmIyNzA3MS00NWE0LTRhY2EtOTg1NC0yYTFlOTE0NmYyNjVcIikudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEucmVxdWVzdElkZW50aWZpZXIpXG4gICAgICAgIGV4cGVjdChbXCJDQU5cIiwgXCJVU0FcIiwgXCJNRVhcIl0pLnRvU3RyaWN0RXF1YWwobm90aWZpY2F0aW9uLnN1bW1hcnkhLnN0b3JlZnJvbnRDb3VudHJ5Q29kZXMpXG4gICAgICAgIGV4cGVjdCg1KS50b0JlKG5vdGlmaWNhdGlvbi5zdW1tYXJ5IS5zdWNjZWVkZWRDb3VudClcbiAgICAgICAgZXhwZWN0KDIpLnRvQmUobm90aWZpY2F0aW9uLnN1bW1hcnkhLmZhaWxlZENvdW50KVxuICAgIH0pXG5cbiAgICBpdCgnc2hvdWxkIGRlY29kZSBhIHNpZ25lZCBleHRlcm5hbCBwdXJjaGFzZSB0b2tlbiBub3RpZmljYXRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25lZE5vdGlmaWNhdGlvbiA9IGNyZWF0ZVNpZ25lZERhdGFGcm9tSnNvbihcInRlc3RzL3Jlc291cmNlcy9tb2RlbHMvc2lnbmVkRXh0ZXJuYWxQdXJjaGFzZVRva2VuTm90aWZpY2F0aW9uLmpzb25cIilcblxuICAgICAgICBjb25zdCB2ZXJpZmllciA9IGF3YWl0IGdldERlZmF1bHRTaWduZWRQYXlsb2FkVmVyaWZpZXIoKTtcbiAgICAgICAgKHZlcmlmaWVyIGFzIGFueSkudmVyaWZ5Tm90aWZpY2F0aW9uID0gZnVuY3Rpb24oYnVuZGxlSWQ/OiBzdHJpbmcsIGFwcEFwcGxlSWQ/OiBudW1iZXIsIGVudmlyb25tZW50Pzogc3RyaW5nKSB7XG4gICAgICAgICAgICBleHBlY3QoYnVuZGxlSWQpLnRvQmUoXCJjb20uZXhhbXBsZVwiKVxuICAgICAgICAgICAgZXhwZWN0KGFwcEFwcGxlSWQpLnRvQmUoNTU1NTUpXG4gICAgICAgICAgICBleHBlY3QoZW52aXJvbm1lbnQpLnRvQmUoRW52aXJvbm1lbnQuUFJPRFVDVElPTilcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3RpZmljYXRpb24gPSBhd2FpdCB2ZXJpZmllci52ZXJpZnlBbmREZWNvZGVOb3RpZmljYXRpb24oc2lnbmVkTm90aWZpY2F0aW9uKVxuXG4gICAgICAgIGV4cGVjdChOb3RpZmljYXRpb25UeXBlVjIuRVhURVJOQUxfUFVSQ0hBU0VfVE9LRU4pLnRvQmUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvblR5cGUpXG4gICAgICAgIGV4cGVjdChTdWJ0eXBlLlVOUkVQT1JURUQpLnRvQmUobm90aWZpY2F0aW9uLnN1YnR5cGUpXG4gICAgICAgIGV4cGVjdChcIjAwMmUxNGQ1LTUxZjUtNDUwMy1iNWE4LWMzYTFhZjY4ZWIyMFwiKS50b0JlKG5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25VVUlEKVxuICAgICAgICBleHBlY3QoXCIyLjBcIikudG9CZShub3RpZmljYXRpb24udmVyc2lvbilcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg5MDAwMDApLnRvQmUobm90aWZpY2F0aW9uLnNpZ25lZERhdGUpXG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uZGF0YSkudG9CZUZhbHN5KCk7XG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uc3VtbWFyeSkudG9CZUZhbHN5KCk7XG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uZXh0ZXJuYWxQdXJjaGFzZVRva2VuKS50b0JlVHJ1dGh5KClcbiAgICAgICAgZXhwZWN0KFwiYjIxNTgxMjEtN2FmOS00OWQ0LTk1NjEtMWY1ODgyMDU1MjNlXCIpLnRvQmUobm90aWZpY2F0aW9uLmV4dGVybmFsUHVyY2hhc2VUb2tlbiEuZXh0ZXJuYWxQdXJjaGFzZUlkKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODk1MDAwMCkudG9CZShub3RpZmljYXRpb24uZXh0ZXJuYWxQdXJjaGFzZVRva2VuIS50b2tlbkNyZWF0aW9uRGF0ZSlcbiAgICAgICAgZXhwZWN0KDU1NTU1KS50b0JlKG5vdGlmaWNhdGlvbi5leHRlcm5hbFB1cmNoYXNlVG9rZW4hLmFwcEFwcGxlSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlXCIpLnRvQmUobm90aWZpY2F0aW9uLmV4dGVybmFsUHVyY2hhc2VUb2tlbiEuYnVuZGxlSWQpXG4gICAgfSlcblxuICAgIGl0KCdzaG91bGQgZGVjb2RlIGEgc2lnbmVkIHNhbmRib3ggZXh0ZXJuYWwgcHVyY2hhc2UgdG9rZW4gbm90aWZpY2F0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBzaWduZWROb3RpZmljYXRpb24gPSBjcmVhdGVTaWduZWREYXRhRnJvbUpzb24oXCJ0ZXN0cy9yZXNvdXJjZXMvbW9kZWxzL3NpZ25lZEV4dGVybmFsUHVyY2hhc2VUb2tlblNhbmRib3hOb3RpZmljYXRpb24uanNvblwiKVxuXG4gICAgICAgIGNvbnN0IHZlcmlmaWVyID0gYXdhaXQgZ2V0RGVmYXVsdFNpZ25lZFBheWxvYWRWZXJpZmllcigpO1xuICAgICAgICAodmVyaWZpZXIgYXMgYW55KS52ZXJpZnlOb3RpZmljYXRpb24gPSBmdW5jdGlvbihidW5kbGVJZD86IHN0cmluZywgYXBwQXBwbGVJZD86IG51bWJlciwgZW52aXJvbm1lbnQ/OiBzdHJpbmcpIHtcbiAgICAgICAgICAgIGV4cGVjdChidW5kbGVJZCkudG9CZShcImNvbS5leGFtcGxlXCIpXG4gICAgICAgICAgICBleHBlY3QoYXBwQXBwbGVJZCkudG9CZSg1NTU1NSlcbiAgICAgICAgICAgIGV4cGVjdChlbnZpcm9ubWVudCkudG9CZShFbnZpcm9ubWVudC5TQU5EQk9YKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IGF3YWl0IHZlcmlmaWVyLnZlcmlmeUFuZERlY29kZU5vdGlmaWNhdGlvbihzaWduZWROb3RpZmljYXRpb24pXG5cbiAgICAgICAgZXhwZWN0KE5vdGlmaWNhdGlvblR5cGVWMi5FWFRFUk5BTF9QVVJDSEFTRV9UT0tFTikudG9CZShub3RpZmljYXRpb24ubm90aWZpY2F0aW9uVHlwZSlcbiAgICAgICAgZXhwZWN0KFN1YnR5cGUuVU5SRVBPUlRFRCkudG9CZShub3RpZmljYXRpb24uc3VidHlwZSlcbiAgICAgICAgZXhwZWN0KFwiMDAyZTE0ZDUtNTFmNS00NTAzLWI1YTgtYzNhMWFmNjhlYjIwXCIpLnRvQmUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvblVVSUQpXG4gICAgICAgIGV4cGVjdChcIjIuMFwiKS50b0JlKG5vdGlmaWNhdGlvbi52ZXJzaW9uKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODkwMDAwMCkudG9CZShub3RpZmljYXRpb24uc2lnbmVkRGF0ZSlcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5kYXRhKS50b0JlRmFsc3koKTtcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5zdW1tYXJ5KS50b0JlRmFsc3koKTtcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5leHRlcm5hbFB1cmNoYXNlVG9rZW4pLnRvQmVUcnV0aHkoKVxuICAgICAgICBleHBlY3QoXCJTQU5EQk9YX2IyMTU4MTIxLTdhZjktNDlkNC05NTYxLTFmNTg4MjA1NTIzZVwiKS50b0JlKG5vdGlmaWNhdGlvbi5leHRlcm5hbFB1cmNoYXNlVG9rZW4hLmV4dGVybmFsUHVyY2hhc2VJZClcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg5NTAwMDApLnRvQmUobm90aWZpY2F0aW9uLmV4dGVybmFsUHVyY2hhc2VUb2tlbiEudG9rZW5DcmVhdGlvbkRhdGUpXG4gICAgICAgIGV4cGVjdCg1NTU1NSkudG9CZShub3RpZmljYXRpb24uZXh0ZXJuYWxQdXJjaGFzZVRva2VuIS5hcHBBcHBsZUlkKVxuICAgICAgICBleHBlY3QoXCJjb20uZXhhbXBsZVwiKS50b0JlKG5vdGlmaWNhdGlvbi5leHRlcm5hbFB1cmNoYXNlVG9rZW4hLmJ1bmRsZUlkKVxuICAgIH0pXG59KSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25fZGVjb2RpbmcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3RzL3VuaXQtdGVzdHMvdHJhbnNhY3Rpb25fZGVjb2RpbmcudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNERBQTREOztBQUU1RCxrRUFBK0Q7QUFDL0QsMERBQXVEO0FBQ3ZELG9FQUFpRTtBQUNqRSx3RUFBcUU7QUFDckUsc0RBQW1EO0FBQ25ELDBFQUF1RTtBQUN2RSxnREFBNkM7QUFDN0Msa0RBQStDO0FBQy9DLGtDQUFtRjtBQUNuRix3RUFBcUU7QUFDckUsb0VBQWlFO0FBQ2pFLHNFQUFtRTtBQUNuRSw0Q0FBeUM7QUFDekMsb0ZBQWlGO0FBR2pGLFFBQVEsQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7SUFDN0MsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzlDLE1BQU0sb0JBQW9CLEdBQUcsSUFBQSwrQkFBd0IsRUFBQyw0Q0FBNEMsQ0FBQyxDQUFBO1FBRW5HLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBQSxzQ0FBK0IsR0FBRSxDQUFDLDZCQUE2QixDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFFbEgsTUFBTSxDQUFDLHlCQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNsRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUM5QyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNuRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ3ZELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLHlC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QU0sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXNCLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNuSCxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ2pGLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzVFLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgQXBwbGUgSW5jLiBMaWNlbnNlZCB1bmRlciBNSVQgTGljZW5zZS5cblxuaW1wb3J0IHsgQXV0b1JlbmV3U3RhdHVzIH0gZnJvbSBcIi4uLy4uL21vZGVscy9BdXRvUmVuZXdTdGF0dXNcIjtcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSBcIi4uLy4uL21vZGVscy9FbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgRXhwaXJhdGlvbkludGVudCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvRXhwaXJhdGlvbkludGVudFwiO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uVHlwZVYyIH0gZnJvbSBcIi4uLy4uL21vZGVscy9Ob3RpZmljYXRpb25UeXBlVjJcIjtcbmltcG9ydCB7IE9mZmVyVHlwZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvT2ZmZXJUeXBlXCI7XG5pbXBvcnQgeyBQcmljZUluY3JlYXNlU3RhdHVzIH0gZnJvbSBcIi4uLy4uL21vZGVscy9QcmljZUluY3JlYXNlU3RhdHVzXCI7XG5pbXBvcnQgeyBTdGF0dXMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL1N0YXR1c1wiO1xuaW1wb3J0IHsgU3VidHlwZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvU3VidHlwZVwiO1xuaW1wb3J0IHsgY3JlYXRlU2lnbmVkRGF0YUZyb21Kc29uLCBnZXREZWZhdWx0U2lnbmVkUGF5bG9hZFZlcmlmaWVyIH0gZnJvbSBcIi4uL3V0aWxcIlxuaW1wb3J0IHsgSW5BcHBPd25lcnNoaXBUeXBlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9JbkFwcE93bmVyc2hpcFR5cGVcIjtcbmltcG9ydCB7IFJldm9jYXRpb25SZWFzb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL1Jldm9jYXRpb25SZWFzb25cIjtcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVhc29uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9UcmFuc2FjdGlvblJlYXNvblwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvVHlwZVwiO1xuaW1wb3J0IHsgQ29uc3VtcHRpb25SZXF1ZXN0UmVhc29uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9Db25zdW1wdGlvblJlcXVlc3RSZWFzb25cIjtcblxuXG5kZXNjcmliZSgnVGVzdGluZyBkZWNvZGluZyBvZiBzaWduZWQgZGF0YScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGRlY29kZSBhbiBhcHAgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25lZEFwcFRyYW5zYWN0aW9uID0gY3JlYXRlU2lnbmVkRGF0YUZyb21Kc29uKFwidGVzdHMvcmVzb3VyY2VzL21vZGVscy9hcHBUcmFuc2FjdGlvbi5qc29uXCIpXG5cbiAgICAgICAgY29uc3QgYXBwVHJhbnNhY3Rpb24gPSBhd2FpdCBnZXREZWZhdWx0U2lnbmVkUGF5bG9hZFZlcmlmaWVyKCkudmVyaWZ5QW5kRGVjb2RlQXBwVHJhbnNhY3Rpb24oc2lnbmVkQXBwVHJhbnNhY3Rpb24pXG5cbiAgICAgICAgZXhwZWN0KEVudmlyb25tZW50LkxPQ0FMX1RFU1RJTkcpLnRvQmUoYXBwVHJhbnNhY3Rpb24ucmVjZWlwdFR5cGUpXG4gICAgICAgIGV4cGVjdCg1MzE0MTIpLnRvQmUoYXBwVHJhbnNhY3Rpb24uYXBwQXBwbGVJZClcbiAgICAgICAgZXhwZWN0KFwiY29tLmV4YW1wbGVcIikudG9CZShhcHBUcmFuc2FjdGlvbi5idW5kbGVJZClcbiAgICAgICAgZXhwZWN0KFwiMS4yLjNcIikudG9CZShhcHBUcmFuc2FjdGlvbi5hcHBsaWNhdGlvblZlcnNpb24pXG4gICAgICAgIGV4cGVjdCg1MTIpLnRvQmUoYXBwVHJhbnNhY3Rpb24udmVyc2lvbkV4dGVybmFsSWRlbnRpZmllcilcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg5MDAwMDApLnRvQmUoYXBwVHJhbnNhY3Rpb24ucmVjZWlwdENyZWF0aW9uRGF0ZSlcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg4MDAwMDApLnRvQmUoYXBwVHJhbnNhY3Rpb24ub3JpZ2luYWxQdXJjaGFzZURhdGUpXG4gICAgICAgIGV4cGVjdChcIjEuMS4yXCIpLnRvQmUoYXBwVHJhbnNhY3Rpb24ub3JpZ2luYWxBcHBsaWNhdGlvblZlcnNpb24pXG4gICAgICAgIGV4cGVjdChcImRldmljZV92ZXJpZmljYXRpb25fdmFsdWVcIikudG9CZShhcHBUcmFuc2FjdGlvbi5kZXZpY2VWZXJpZmljYXRpb24pXG4gICAgICAgIGV4cGVjdChcIjQ4Y2NmYTQyLTc0MzEtNGYyMi05OTA4LTdlODg5ODNlMTA1YVwiKS50b0JlKGFwcFRyYW5zYWN0aW9uLmRldmljZVZlcmlmaWNhdGlvbk5vbmNlKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODcwMDAwMCkudG9CZShhcHBUcmFuc2FjdGlvbi5wcmVvcmRlckRhdGUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGRlY29kZSBhIHJlbmV3YWwgaW5mbycsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3Qgc2lnbmVkUmVuZXdhbEluZm8gPSBjcmVhdGVTaWduZWREYXRhRnJvbUpzb24oXCJ0ZXN0cy9yZXNvdXJjZXMvbW9kZWxzL3NpZ25lZFJlbmV3YWxJbmZvLmpzb25cIilcblxuICAgICAgICBjb25zdCByZW5ld2FsSW5mbyA9IGF3YWl0IGdldERlZmF1bHRTaWduZWRQYXlsb2FkVmVyaWZpZXIoKS52ZXJpZnlBbmREZWNvZGVSZW5ld2FsSW5mbyhzaWduZWRSZW5ld2FsSW5mbylcblxuICAgICAgICBleHBlY3QoRXhwaXJhdGlvbkludGVudC5DVVNUT01FUl9DQU5DRUxMRUQpLnRvQmUocmVuZXdhbEluZm8uZXhwaXJhdGlvbkludGVudClcbiAgICAgICAgZXhwZWN0KFwiMTIzNDVcIikudG9CZShyZW5ld2FsSW5mby5vcmlnaW5hbFRyYW5zYWN0aW9uSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlLnByb2R1Y3QuMlwiKS50b0JlKHJlbmV3YWxJbmZvLmF1dG9SZW5ld1Byb2R1Y3RJZClcbiAgICAgICAgZXhwZWN0KFwiY29tLmV4YW1wbGUucHJvZHVjdFwiKS50b0JlKHJlbmV3YWxJbmZvLnByb2R1Y3RJZClcbiAgICAgICAgZXhwZWN0KEF1dG9SZW5ld1N0YXR1cy5PTikudG9CZShyZW5ld2FsSW5mby5hdXRvUmVuZXdTdGF0dXMpXG4gICAgICAgIGV4cGVjdChyZW5ld2FsSW5mby5pc0luQmlsbGluZ1JldHJ5UGVyaW9kKS50b0JlKHRydWUpXG4gICAgICAgIGV4cGVjdChQcmljZUluY3JlYXNlU3RhdHVzLkNVU1RPTUVSX0hBU19OT1RfUkVTUE9OREVEKS50b0JlKHJlbmV3YWxJbmZvLnByaWNlSW5jcmVhc2VTdGF0dXMpXG4gICAgICAgIGV4cGVjdCgxNjk4MTQ4OTAwMDAwKS50b0JlKHJlbmV3YWxJbmZvLmdyYWNlUGVyaW9kRXhwaXJlc0RhdGUpXG4gICAgICAgIGV4cGVjdChPZmZlclR5cGUuUFJPTU9USU9OQUxfT0ZGRVIpLnRvQmUocmVuZXdhbEluZm8ub2ZmZXJUeXBlKVxuICAgICAgICBleHBlY3QoXCJhYmMuMTIzXCIpLnRvQmUocmVuZXdhbEluZm8ub2ZmZXJJZGVudGlmaWVyKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODgwMDAwMCkudG9CZShyZW5ld2FsSW5mby5zaWduZWREYXRlKVxuICAgICAgICBleHBlY3QoRW52aXJvbm1lbnQuTE9DQUxfVEVTVElORykudG9CZShyZW5ld2FsSW5mby5lbnZpcm9ubWVudClcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg4MDAwMDApLnRvQmUocmVuZXdhbEluZm8ucmVjZW50U3Vic2NyaXB0aW9uU3RhcnREYXRlKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODg1MDAwMCkudG9CZShyZW5ld2FsSW5mby5yZW5ld2FsRGF0ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgZGVjb2RlIGEgdHJhbnNhY3Rpb24gaW5mbycsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3Qgc2lnbmVkVHJhbnNhY3Rpb24gPSBjcmVhdGVTaWduZWREYXRhRnJvbUpzb24oXCJ0ZXN0cy9yZXNvdXJjZXMvbW9kZWxzL3NpZ25lZFRyYW5zYWN0aW9uLmpzb25cIilcblxuICAgICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IGF3YWl0IGdldERlZmF1bHRTaWduZWRQYXlsb2FkVmVyaWZpZXIoKS52ZXJpZnlBbmREZWNvZGVUcmFuc2FjdGlvbihzaWduZWRUcmFuc2FjdGlvbilcblxuICAgICAgICBleHBlY3QoXCIxMjM0NVwiKS50b0JlKHRyYW5zYWN0aW9uLm9yaWdpbmFsVHJhbnNhY3Rpb25JZClcbiAgICAgICAgZXhwZWN0KFwiMjM0NTZcIikudG9CZSh0cmFuc2FjdGlvbi50cmFuc2FjdGlvbklkKVxuICAgICAgICBleHBlY3QoXCIzNDM0M1wiKS50b0JlKHRyYW5zYWN0aW9uLndlYk9yZGVyTGluZUl0ZW1JZClcbiAgICAgICAgZXhwZWN0KFwiY29tLmV4YW1wbGVcIikudG9CZSh0cmFuc2FjdGlvbi5idW5kbGVJZClcbiAgICAgICAgZXhwZWN0KFwiY29tLmV4YW1wbGUucHJvZHVjdFwiKS50b0JlKHRyYW5zYWN0aW9uLnByb2R1Y3RJZClcbiAgICAgICAgZXhwZWN0KFwiNTU1NTVcIikudG9CZSh0cmFuc2FjdGlvbi5zdWJzY3JpcHRpb25Hcm91cElkZW50aWZpZXIpXG4gICAgICAgIGV4cGVjdCgxNjk4MTQ4ODAwMDAwKS50b0JlKHRyYW5zYWN0aW9uLm9yaWdpbmFsUHVyY2hhc2VEYXRlKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODkwMDAwMCkudG9CZSh0cmFuc2FjdGlvbi5wdXJjaGFzZURhdGUpXG4gICAgICAgIGV4cGVjdCgxNjk4MTQ4OTUwMDAwKS50b0JlKHRyYW5zYWN0aW9uLnJldm9jYXRpb25EYXRlKVxuICAgICAgICBleHBlY3QoMTY5ODE0OTAwMDAwMCkudG9CZSh0cmFuc2FjdGlvbi5leHBpcmVzRGF0ZSlcbiAgICAgICAgZXhwZWN0KDEpLnRvQmUodHJhbnNhY3Rpb24ucXVhbnRpdHkpXG4gICAgICAgIGV4cGVjdChUeXBlLkFVVE9fUkVORVdBQkxFX1NVQlNDUklQVElPTikudG9CZSh0cmFuc2FjdGlvbi50eXBlKVxuICAgICAgICBleHBlY3QoXCI3ZTNmYjIwYi00Y2RiLTQ3Y2MtOTM2ZC05OWQ2NWY2MDgxMzhcIikudG9CZSh0cmFuc2FjdGlvbi5hcHBBY2NvdW50VG9rZW4pXG4gICAgICAgIGV4cGVjdChJbkFwcE93bmVyc2hpcFR5cGUuUFVSQ0hBU0VEKS50b0JlKHRyYW5zYWN0aW9uLmluQXBwT3duZXJzaGlwVHlwZSlcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg5MDAwMDApLnRvQmUodHJhbnNhY3Rpb24uc2lnbmVkRGF0ZSlcbiAgICAgICAgZXhwZWN0KFJldm9jYXRpb25SZWFzb24uUkVGVU5ERURfRFVFX1RPX0lTU1VFKS50b0JlKHRyYW5zYWN0aW9uLnJldm9jYXRpb25SZWFzb24pXG4gICAgICAgIGV4cGVjdChcImFiYy4xMjNcIikudG9CZSh0cmFuc2FjdGlvbi5vZmZlcklkZW50aWZpZXIpXG4gICAgICAgIGV4cGVjdCh0cmFuc2FjdGlvbi5pc1VwZ3JhZGVkKS50b0JlKHRydWUpXG4gICAgICAgIGV4cGVjdChPZmZlclR5cGUuSU5UUk9EVUNUT1JZX09GRkVSKS50b0JlKHRyYW5zYWN0aW9uLm9mZmVyVHlwZSlcbiAgICAgICAgZXhwZWN0KFwiVVNBXCIpLnRvQmUodHJhbnNhY3Rpb24uc3RvcmVmcm9udClcbiAgICAgICAgZXhwZWN0KFwiMTQzNDQxXCIpLnRvQmUodHJhbnNhY3Rpb24uc3RvcmVmcm9udElkKVxuICAgICAgICBleHBlY3QoVHJhbnNhY3Rpb25SZWFzb24uUFVSQ0hBU0UpLnRvQmUodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25SZWFzb24pXG4gICAgICAgIGV4cGVjdChFbnZpcm9ubWVudC5MT0NBTF9URVNUSU5HKS50b0JlKHRyYW5zYWN0aW9uLmVudmlyb25tZW50KVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBkZWNvZGUgYSBzaWduZWQgbm90aWZpY2F0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBzaWduZWROb3RpZmljYXRpb24gPSBjcmVhdGVTaWduZWREYXRhRnJvbUpzb24oXCJ0ZXN0cy9yZXNvdXJjZXMvbW9kZWxzL3NpZ25lZE5vdGlmaWNhdGlvbi5qc29uXCIpXG5cbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0gYXdhaXQgZ2V0RGVmYXVsdFNpZ25lZFBheWxvYWRWZXJpZmllcigpLnZlcmlmeUFuZERlY29kZU5vdGlmaWNhdGlvbihzaWduZWROb3RpZmljYXRpb24pXG5cbiAgICAgICAgZXhwZWN0KE5vdGlmaWNhdGlvblR5cGVWMi5TVUJTQ1JJQkVEKS50b0JlKG5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25UeXBlKVxuICAgICAgICBleHBlY3QoU3VidHlwZS5JTklUSUFMX0JVWSkudG9CZShub3RpZmljYXRpb24uc3VidHlwZSlcbiAgICAgICAgZXhwZWN0KFwiMDAyZTE0ZDUtNTFmNS00NTAzLWI1YTgtYzNhMWFmNjhlYjIwXCIpLnRvQmUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvblVVSUQpXG4gICAgICAgIGV4cGVjdChcIjIuMFwiKS50b0JlKG5vdGlmaWNhdGlvbi52ZXJzaW9uKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODkwMDAwMCkudG9CZShub3RpZmljYXRpb24uc2lnbmVkRGF0ZSlcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5kYXRhKS50b0JlVHJ1dGh5KClcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5zdW1tYXJ5KS50b0JlRmFsc3koKVxuICAgICAgICBleHBlY3Qobm90aWZpY2F0aW9uLmV4dGVybmFsUHVyY2hhc2VUb2tlbikudG9CZUZhbHN5KClcbiAgICAgICAgZXhwZWN0KEVudmlyb25tZW50LkxPQ0FMX1RFU1RJTkcpLnRvQmUobm90aWZpY2F0aW9uLmRhdGEhLmVudmlyb25tZW50KVxuICAgICAgICBleHBlY3QoNDEyMzQpLnRvQmUobm90aWZpY2F0aW9uLmRhdGEhLmFwcEFwcGxlSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlXCIpLnRvQmUobm90aWZpY2F0aW9uLmRhdGEhLmJ1bmRsZUlkKVxuICAgICAgICBleHBlY3QoXCIxLjIuM1wiKS50b0JlKG5vdGlmaWNhdGlvbi5kYXRhIS5idW5kbGVWZXJzaW9uKVxuICAgICAgICBleHBlY3QoXCJzaWduZWRfdHJhbnNhY3Rpb25faW5mb192YWx1ZVwiKS50b0JlKG5vdGlmaWNhdGlvbi5kYXRhIS5zaWduZWRUcmFuc2FjdGlvbkluZm8pXG4gICAgICAgIGV4cGVjdChcInNpZ25lZF9yZW5ld2FsX2luZm9fdmFsdWVcIikudG9CZShub3RpZmljYXRpb24uZGF0YSEuc2lnbmVkUmVuZXdhbEluZm8pXG4gICAgICAgIGV4cGVjdChTdGF0dXMuQUNUSVZFKS50b0JlKG5vdGlmaWNhdGlvbi5kYXRhIS5zdGF0dXMpXG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uZGF0YSEuY29uc3VtcHRpb25SZXF1ZXN0UmVhc29uKS50b0JlRmFsc3koKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBkZWNvZGUgYSBzaWduZWQgQ09OU1VNUFRJT05fUkVRVUVTVCBub3RpZmljYXRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25lZE5vdGlmaWNhdGlvbiA9IGNyZWF0ZVNpZ25lZERhdGFGcm9tSnNvbihcInRlc3RzL3Jlc291cmNlcy9tb2RlbHMvc2lnbmVkQ29uc3VtcHRpb25SZXF1ZXN0Tm90aWZpY2F0aW9uLmpzb25cIilcblxuICAgICAgICBjb25zdCBub3RpZmljYXRpb24gPSBhd2FpdCBnZXREZWZhdWx0U2lnbmVkUGF5bG9hZFZlcmlmaWVyKCkudmVyaWZ5QW5kRGVjb2RlTm90aWZpY2F0aW9uKHNpZ25lZE5vdGlmaWNhdGlvbilcblxuICAgICAgICBleHBlY3QoTm90aWZpY2F0aW9uVHlwZVYyLkNPTlNVTVBUSU9OX1JFUVVFU1QpLnRvQmUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvblR5cGUpXG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uc3VidHlwZSkudG9CZUZhbHN5KClcbiAgICAgICAgZXhwZWN0KFwiMDAyZTE0ZDUtNTFmNS00NTAzLWI1YTgtYzNhMWFmNjhlYjIwXCIpLnRvQmUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvblVVSUQpXG4gICAgICAgIGV4cGVjdChcIjIuMFwiKS50b0JlKG5vdGlmaWNhdGlvbi52ZXJzaW9uKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODkwMDAwMCkudG9CZShub3RpZmljYXRpb24uc2lnbmVkRGF0ZSlcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5kYXRhKS50b0JlVHJ1dGh5KClcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5zdW1tYXJ5KS50b0JlRmFsc3koKVxuICAgICAgICBleHBlY3Qobm90aWZpY2F0aW9uLmV4dGVybmFsUHVyY2hhc2VUb2tlbikudG9CZUZhbHN5KClcbiAgICAgICAgZXhwZWN0KEVudmlyb25tZW50LkxPQ0FMX1RFU1RJTkcpLnRvQmUobm90aWZpY2F0aW9uLmRhdGEhLmVudmlyb25tZW50KVxuICAgICAgICBleHBlY3QoNDEyMzQpLnRvQmUobm90aWZpY2F0aW9uLmRhdGEhLmFwcEFwcGxlSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlXCIpLnRvQmUobm90aWZpY2F0aW9uLmRhdGEhLmJ1bmRsZUlkKVxuICAgICAgICBleHBlY3QoXCIxLjIuM1wiKS50b0JlKG5vdGlmaWNhdGlvbi5kYXRhIS5idW5kbGVWZXJzaW9uKVxuICAgICAgICBleHBlY3QoXCJzaWduZWRfdHJhbnNhY3Rpb25faW5mb192YWx1ZVwiKS50b0JlKG5vdGlmaWNhdGlvbi5kYXRhIS5zaWduZWRUcmFuc2FjdGlvbkluZm8pXG4gICAgICAgIGV4cGVjdChcInNpZ25lZF9yZW5ld2FsX2luZm9fdmFsdWVcIikudG9CZShub3RpZmljYXRpb24uZGF0YSEuc2lnbmVkUmVuZXdhbEluZm8pXG4gICAgICAgIGV4cGVjdChTdGF0dXMuQUNUSVZFKS50b0JlKG5vdGlmaWNhdGlvbi5kYXRhIS5zdGF0dXMpXG4gICAgICAgIGV4cGVjdChDb25zdW1wdGlvblJlcXVlc3RSZWFzb24uVU5JTlRFTkRFRF9QVVJDSEFTRSkudG9CZShub3RpZmljYXRpb24uZGF0YSEuY29uc3VtcHRpb25SZXF1ZXN0UmVhc29uKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBkZWNvZGUgYSBzaWduZWQgc3VtbWFyeSBub3RpZmljYXRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25lZE5vdGlmaWNhdGlvbiA9IGNyZWF0ZVNpZ25lZERhdGFGcm9tSnNvbihcInRlc3RzL3Jlc291cmNlcy9tb2RlbHMvc2lnbmVkU3VtbWFyeU5vdGlmaWNhdGlvbi5qc29uXCIpXG5cbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0gYXdhaXQgZ2V0RGVmYXVsdFNpZ25lZFBheWxvYWRWZXJpZmllcigpLnZlcmlmeUFuZERlY29kZU5vdGlmaWNhdGlvbihzaWduZWROb3RpZmljYXRpb24pXG5cbiAgICAgICAgZXhwZWN0KE5vdGlmaWNhdGlvblR5cGVWMi5SRU5FV0FMX0VYVEVOU0lPTikudG9CZShub3RpZmljYXRpb24ubm90aWZpY2F0aW9uVHlwZSlcbiAgICAgICAgZXhwZWN0KFN1YnR5cGUuU1VNTUFSWSkudG9CZShub3RpZmljYXRpb24uc3VidHlwZSlcbiAgICAgICAgZXhwZWN0KFwiMDAyZTE0ZDUtNTFmNS00NTAzLWI1YTgtYzNhMWFmNjhlYjIwXCIpLnRvQmUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvblVVSUQpXG4gICAgICAgIGV4cGVjdChcIjIuMFwiKS50b0JlKG5vdGlmaWNhdGlvbi52ZXJzaW9uKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODkwMDAwMCkudG9CZShub3RpZmljYXRpb24uc2lnbmVkRGF0ZSlcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5kYXRhKS50b0JlRmFsc3koKTtcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5zdW1tYXJ5KS50b0JlVHJ1dGh5KCk7XG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uZXh0ZXJuYWxQdXJjaGFzZVRva2VuKS50b0JlRmFsc3koKVxuICAgICAgICBleHBlY3QoRW52aXJvbm1lbnQuTE9DQUxfVEVTVElORykudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEuZW52aXJvbm1lbnQpXG4gICAgICAgIGV4cGVjdCg0MTIzNCkudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEuYXBwQXBwbGVJZClcbiAgICAgICAgZXhwZWN0KFwiY29tLmV4YW1wbGVcIikudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEuYnVuZGxlSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlLnByb2R1Y3RcIikudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEucHJvZHVjdElkKVxuICAgICAgICBleHBlY3QoXCJlZmIyNzA3MS00NWE0LTRhY2EtOTg1NC0yYTFlOTE0NmYyNjVcIikudG9CZShub3RpZmljYXRpb24uc3VtbWFyeSEucmVxdWVzdElkZW50aWZpZXIpXG4gICAgICAgIGV4cGVjdChbXCJDQU5cIiwgXCJVU0FcIiwgXCJNRVhcIl0pLnRvU3RyaWN0RXF1YWwobm90aWZpY2F0aW9uLnN1bW1hcnkhLnN0b3JlZnJvbnRDb3VudHJ5Q29kZXMpXG4gICAgICAgIGV4cGVjdCg1KS50b0JlKG5vdGlmaWNhdGlvbi5zdW1tYXJ5IS5zdWNjZWVkZWRDb3VudClcbiAgICAgICAgZXhwZWN0KDIpLnRvQmUobm90aWZpY2F0aW9uLnN1bW1hcnkhLmZhaWxlZENvdW50KVxuICAgIH0pXG5cbiAgICBpdCgnc2hvdWxkIGRlY29kZSBhIHNpZ25lZCBleHRlcm5hbCBwdXJjaGFzZSB0b2tlbiBub3RpZmljYXRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25lZE5vdGlmaWNhdGlvbiA9IGNyZWF0ZVNpZ25lZERhdGFGcm9tSnNvbihcInRlc3RzL3Jlc291cmNlcy9tb2RlbHMvc2lnbmVkRXh0ZXJuYWxQdXJjaGFzZVRva2VuTm90aWZpY2F0aW9uLmpzb25cIilcblxuICAgICAgICBjb25zdCB2ZXJpZmllciA9IGF3YWl0IGdldERlZmF1bHRTaWduZWRQYXlsb2FkVmVyaWZpZXIoKTtcbiAgICAgICAgKHZlcmlmaWVyIGFzIGFueSkudmVyaWZ5Tm90aWZpY2F0aW9uID0gZnVuY3Rpb24oYnVuZGxlSWQ/OiBzdHJpbmcsIGFwcEFwcGxlSWQ/OiBudW1iZXIsIGVudmlyb25tZW50Pzogc3RyaW5nKSB7XG4gICAgICAgICAgICBleHBlY3QoYnVuZGxlSWQpLnRvQmUoXCJjb20uZXhhbXBsZVwiKVxuICAgICAgICAgICAgZXhwZWN0KGFwcEFwcGxlSWQpLnRvQmUoNTU1NTUpXG4gICAgICAgICAgICBleHBlY3QoZW52aXJvbm1lbnQpLnRvQmUoRW52aXJvbm1lbnQuUFJPRFVDVElPTilcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3RpZmljYXRpb24gPSBhd2FpdCB2ZXJpZmllci52ZXJpZnlBbmREZWNvZGVOb3RpZmljYXRpb24oc2lnbmVkTm90aWZpY2F0aW9uKVxuXG4gICAgICAgIGV4cGVjdChOb3RpZmljYXRpb25UeXBlVjIuRVhURVJOQUxfUFVSQ0hBU0VfVE9LRU4pLnRvQmUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvblR5cGUpXG4gICAgICAgIGV4cGVjdChTdWJ0eXBlLlVOUkVQT1JURUQpLnRvQmUobm90aWZpY2F0aW9uLnN1YnR5cGUpXG4gICAgICAgIGV4cGVjdChcIjAwMmUxNGQ1LTUxZjUtNDUwMy1iNWE4LWMzYTFhZjY4ZWIyMFwiKS50b0JlKG5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25VVUlEKVxuICAgICAgICBleHBlY3QoXCIyLjBcIikudG9CZShub3RpZmljYXRpb24udmVyc2lvbilcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg5MDAwMDApLnRvQmUobm90aWZpY2F0aW9uLnNpZ25lZERhdGUpXG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uZGF0YSkudG9CZUZhbHN5KCk7XG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uc3VtbWFyeSkudG9CZUZhbHN5KCk7XG4gICAgICAgIGV4cGVjdChub3RpZmljYXRpb24uZXh0ZXJuYWxQdXJjaGFzZVRva2VuKS50b0JlVHJ1dGh5KClcbiAgICAgICAgZXhwZWN0KFwiYjIxNTgxMjEtN2FmOS00OWQ0LTk1NjEtMWY1ODgyMDU1MjNlXCIpLnRvQmUobm90aWZpY2F0aW9uLmV4dGVybmFsUHVyY2hhc2VUb2tlbiEuZXh0ZXJuYWxQdXJjaGFzZUlkKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODk1MDAwMCkudG9CZShub3RpZmljYXRpb24uZXh0ZXJuYWxQdXJjaGFzZVRva2VuIS50b2tlbkNyZWF0aW9uRGF0ZSlcbiAgICAgICAgZXhwZWN0KDU1NTU1KS50b0JlKG5vdGlmaWNhdGlvbi5leHRlcm5hbFB1cmNoYXNlVG9rZW4hLmFwcEFwcGxlSWQpXG4gICAgICAgIGV4cGVjdChcImNvbS5leGFtcGxlXCIpLnRvQmUobm90aWZpY2F0aW9uLmV4dGVybmFsUHVyY2hhc2VUb2tlbiEuYnVuZGxlSWQpXG4gICAgfSlcblxuICAgIGl0KCdzaG91bGQgZGVjb2RlIGEgc2lnbmVkIHNhbmRib3ggZXh0ZXJuYWwgcHVyY2hhc2UgdG9rZW4gbm90aWZpY2F0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBzaWduZWROb3RpZmljYXRpb24gPSBjcmVhdGVTaWduZWREYXRhRnJvbUpzb24oXCJ0ZXN0cy9yZXNvdXJjZXMvbW9kZWxzL3NpZ25lZEV4dGVybmFsUHVyY2hhc2VUb2tlblNhbmRib3hOb3RpZmljYXRpb24uanNvblwiKVxuXG4gICAgICAgIGNvbnN0IHZlcmlmaWVyID0gYXdhaXQgZ2V0RGVmYXVsdFNpZ25lZFBheWxvYWRWZXJpZmllcigpO1xuICAgICAgICAodmVyaWZpZXIgYXMgYW55KS52ZXJpZnlOb3RpZmljYXRpb24gPSBmdW5jdGlvbihidW5kbGVJZD86IHN0cmluZywgYXBwQXBwbGVJZD86IG51bWJlciwgZW52aXJvbm1lbnQ/OiBzdHJpbmcpIHtcbiAgICAgICAgICAgIGV4cGVjdChidW5kbGVJZCkudG9CZShcImNvbS5leGFtcGxlXCIpXG4gICAgICAgICAgICBleHBlY3QoYXBwQXBwbGVJZCkudG9CZSg1NTU1NSlcbiAgICAgICAgICAgIGV4cGVjdChlbnZpcm9ubWVudCkudG9CZShFbnZpcm9ubWVudC5TQU5EQk9YKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IGF3YWl0IHZlcmlmaWVyLnZlcmlmeUFuZERlY29kZU5vdGlmaWNhdGlvbihzaWduZWROb3RpZmljYXRpb24pXG5cbiAgICAgICAgZXhwZWN0KE5vdGlmaWNhdGlvblR5cGVWMi5FWFRFUk5BTF9QVVJDSEFTRV9UT0tFTikudG9CZShub3RpZmljYXRpb24ubm90aWZpY2F0aW9uVHlwZSlcbiAgICAgICAgZXhwZWN0KFN1YnR5cGUuVU5SRVBPUlRFRCkudG9CZShub3RpZmljYXRpb24uc3VidHlwZSlcbiAgICAgICAgZXhwZWN0KFwiMDAyZTE0ZDUtNTFmNS00NTAzLWI1YTgtYzNhMWFmNjhlYjIwXCIpLnRvQmUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvblVVSUQpXG4gICAgICAgIGV4cGVjdChcIjIuMFwiKS50b0JlKG5vdGlmaWNhdGlvbi52ZXJzaW9uKVxuICAgICAgICBleHBlY3QoMTY5ODE0ODkwMDAwMCkudG9CZShub3RpZmljYXRpb24uc2lnbmVkRGF0ZSlcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5kYXRhKS50b0JlRmFsc3koKTtcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5zdW1tYXJ5KS50b0JlRmFsc3koKTtcbiAgICAgICAgZXhwZWN0KG5vdGlmaWNhdGlvbi5leHRlcm5hbFB1cmNoYXNlVG9rZW4pLnRvQmVUcnV0aHkoKVxuICAgICAgICBleHBlY3QoXCJTQU5EQk9YX2IyMTU4MTIxLTdhZjktNDlkNC05NTYxLTFmNTg4MjA1NTIzZVwiKS50b0JlKG5vdGlmaWNhdGlvbi5leHRlcm5hbFB1cmNoYXNlVG9rZW4hLmV4dGVybmFsUHVyY2hhc2VJZClcbiAgICAgICAgZXhwZWN0KDE2OTgxNDg5NTAwMDApLnRvQmUobm90aWZpY2F0aW9uLmV4dGVybmFsUHVyY2hhc2VUb2tlbiEudG9rZW5DcmVhdGlvbkRhdGUpXG4gICAgICAgIGV4cGVjdCg1NTU1NSkudG9CZShub3RpZmljYXRpb24uZXh0ZXJuYWxQdXJjaGFzZVRva2VuIS5hcHBBcHBsZUlkKVxuICAgICAgICBleHBlY3QoXCJjb20uZXhhbXBsZVwiKS50b0JlKG5vdGlmaWNhdGlvbi5leHRlcm5hbFB1cmNoYXNlVG9rZW4hLmJ1bmRsZUlkKVxuICAgIH0pXG59KSJdfQ==
{
"name": "@apple/app-store-server-library",
"version": "1.1.0",
"version": "1.2.0",
"description": "The App Store Server Library",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -29,2 +29,11 @@ # Apple App Store Server Node.js Library

[WWDC Video](https://developer.apple.com/videos/play/wwdc2023/10143/)
### Obtaining an In-App Purchase key from App Store Connect
To use the App Store Server API or create promotional offer signatures, a signing key downloaded from App Store Connect is required. To obtain this key, you must have the Admin role. Go to Users and Access > Integrations > In-App Purchase. Here you can create and manage keys, as well as find your issuer ID. When using a key, you'll need the key ID and issuer ID as well.
### Obtaining Apple Root Certificates
Download and store the root certificates found in the Apple Root Certificates section of the [Apple PKI](https://www.apple.com/certificateauthority/) site. Provide these certificates as an array to a SignedDataVerifier to allow verifying the signed data comes from Apple.
## Usage

@@ -43,5 +52,4 @@

const environment = Environment.SANDBOX
const appAppleId = undefined // appAppleId is required when the environment is Production
const client = new AppStoreServerAPIClient(encodedKey, keyId, issuerId, bundleId, environment, appAppleId)
const client = new AppStoreServerAPIClient(encodedKey, keyId, issuerId, bundleId, environment)

@@ -65,3 +73,4 @@ try {

const environment = Environment.SANDBOX
const verifier = new SignedDataVerifier(appleRootCAs, enableOnlineChecks, environment, bundleId)
const appAppleId = undefined // appAppleId is required when the environment is Production
const verifier = new SignedDataVerifier(appleRootCAs, enableOnlineChecks, environment, bundleId, appAppleId)

@@ -68,0 +77,0 @@ const notificationPayload = "ey..."

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display