@bitgo-beta/sdk-coin-sol 7.6.4-beta.784 → 7.6.4-beta.786
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts +2 -2
- package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts.map +1 -1
- package/dist/cjs/src/lib/confidentialTransferBuilder.js +4 -4
- package/dist/cjs/src/lib/iface.d.ts +13 -2
- package/dist/cjs/src/lib/iface.d.ts.map +1 -1
- package/dist/cjs/src/lib/iface.js +1 -1
- package/dist/cjs/src/lib/solInstructionFactory.js +20 -10
- package/dist/cjs/test/unit/ctEnablementVerify.js +1 -2
- package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.js +1 -2
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.js +55 -22
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.js +1 -2
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.js +1 -2
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/lib/confidentialTransferBuilder.d.ts +2 -2
- package/dist/esm/lib/confidentialTransferBuilder.d.ts.map +1 -1
- package/dist/esm/lib/confidentialTransferBuilder.js +4 -4
- package/dist/esm/lib/iface.d.ts +13 -2
- package/dist/esm/lib/iface.d.ts.map +1 -1
- package/dist/esm/lib/iface.js +1 -1
- package/dist/esm/lib/solInstructionFactory.js +20 -10
- package/package.json +8 -8
package/LICENSE
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
|
|
2
|
+
Apache License
|
|
3
|
+
Version 2.0, January 2004
|
|
4
|
+
http://www.apache.org/licenses/
|
|
5
|
+
|
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
7
|
+
|
|
8
|
+
1. Definitions.
|
|
9
|
+
|
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
12
|
+
|
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
14
|
+
the copyright owner that is granting the License.
|
|
15
|
+
|
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
17
|
+
other entities that control, are controlled by, or are under common
|
|
18
|
+
control with that entity. For the purposes of this definition,
|
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
20
|
+
direction or management of such entity, whether by contract or
|
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
23
|
+
|
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
25
|
+
exercising permissions granted by this License.
|
|
26
|
+
|
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
28
|
+
including but not limited to software source code, documentation
|
|
29
|
+
source, and configuration files.
|
|
30
|
+
|
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
|
32
|
+
transformation or translation of a Source form, including but
|
|
33
|
+
not limited to compiled object code, generated documentation,
|
|
34
|
+
and conversions to other media types.
|
|
35
|
+
|
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
37
|
+
Object form, made available under the License, as indicated by a
|
|
38
|
+
copyright notice that is included in or attached to the work
|
|
39
|
+
(an example is provided in the Appendix below).
|
|
40
|
+
|
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
47
|
+
the Work and Derivative Works thereof.
|
|
48
|
+
|
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
|
50
|
+
the original version of the Work and any modifications or additions
|
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
62
|
+
|
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
65
|
+
subsequently incorporated within the Work.
|
|
66
|
+
|
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
|
73
|
+
|
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
79
|
+
where such license applies only to those patent claims licensable
|
|
80
|
+
by such Contributor that are necessarily infringed by their
|
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
83
|
+
institute patent litigation against any entity (including a
|
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
86
|
+
or contributory patent infringement, then any patent licenses
|
|
87
|
+
granted to You under this License for that Work shall terminate
|
|
88
|
+
as of the date such litigation is filed.
|
|
89
|
+
|
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
92
|
+
modifications, and in Source or Object form, provided that You
|
|
93
|
+
meet the following conditions:
|
|
94
|
+
|
|
95
|
+
(a) You must give any other recipients of the Work or
|
|
96
|
+
Derivative Works a copy of this License; and
|
|
97
|
+
|
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
|
99
|
+
stating that You changed the files; and
|
|
100
|
+
|
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
|
103
|
+
attribution notices from the Source form of the Work,
|
|
104
|
+
excluding those notices that do not pertain to any part of
|
|
105
|
+
the Derivative Works; and
|
|
106
|
+
|
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
|
109
|
+
include a readable copy of the attribution notices contained
|
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
|
112
|
+
of the following places: within a NOTICE text file distributed
|
|
113
|
+
as part of the Derivative Works; within the Source form or
|
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
|
115
|
+
within a display generated by the Derivative Works, if and
|
|
116
|
+
wherever such third-party notices normally appear. The contents
|
|
117
|
+
of the NOTICE file are for informational purposes only and
|
|
118
|
+
do not modify the License. You may add Your own attribution
|
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
121
|
+
that such additional attribution notices cannot be construed
|
|
122
|
+
as modifying the License.
|
|
123
|
+
|
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
|
125
|
+
may provide additional or different license terms and conditions
|
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
129
|
+
the conditions stated in this License.
|
|
130
|
+
|
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
134
|
+
this License, without any additional terms or conditions.
|
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
136
|
+
the terms of any separate license agreement you may have executed
|
|
137
|
+
with Licensor regarding such Contributions.
|
|
138
|
+
|
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
141
|
+
except as required for reasonable and customary use in describing the
|
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
143
|
+
|
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
|
153
|
+
|
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
|
159
|
+
incidental, or consequential damages of any character arising as a
|
|
160
|
+
result of this License or out of the use or inability to use the
|
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
163
|
+
other commercial damages or losses), even if such Contributor
|
|
164
|
+
has been advised of the possibility of such damages.
|
|
165
|
+
|
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
169
|
+
or other liability obligations and/or rights consistent with this
|
|
170
|
+
License. However, in accepting such obligations, You may act only
|
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
175
|
+
of your accepting any such warranty or additional liability.
|
|
176
|
+
|
|
177
|
+
END OF TERMS AND CONDITIONS
|
|
178
|
+
|
|
179
|
+
Copyright 2022 BitGo
|
|
180
|
+
|
|
181
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
182
|
+
you may not use this file except in compliance with the License.
|
|
183
|
+
You may obtain a copy of the License at
|
|
184
|
+
|
|
185
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
186
|
+
|
|
187
|
+
Unless required by applicable law or agreed to in writing, software
|
|
188
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
189
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
190
|
+
See the License for the specific language governing permissions and
|
|
191
|
+
limitations under the License.
|
|
@@ -76,8 +76,8 @@ export declare class ConfidentialTransferBuilder extends TransactionBuilder {
|
|
|
76
76
|
createAta(params: AtaInit['params']): this;
|
|
77
77
|
/**
|
|
78
78
|
* Add a ConfigureAccount instruction to the transaction.
|
|
79
|
-
* One-time ATA setup — registers
|
|
80
|
-
*
|
|
79
|
+
* One-time ATA setup — registers the AES zero ciphertext and pending-balance counter; the
|
|
80
|
+
* ElGamal pubkey is taken from the accompanying VerifyPubkeyValidity proof.
|
|
81
81
|
*/
|
|
82
82
|
configureAccount(params: ConfigureConfidentialTransferAccount['params']): this;
|
|
83
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confidentialTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/confidentialTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAyB,qBAAqB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG7H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,oCAAoC,EAGpC,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAQjB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,2BAA4B,SAAQ,kBAAkB;IACjE,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAwB;IACzC,OAAO,CAAC,oBAAoB,CAAC,CAAyB;gBAE1C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAK7C;;;;;;;OAOG;IACH,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAKvD;;;;;;;;OAQG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMzC,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAwBlC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"confidentialTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/confidentialTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAyB,qBAAqB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG7H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,oCAAoC,EAGpC,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAQjB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,2BAA4B,SAAQ,kBAAkB;IACjE,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAwB;IACzC,OAAO,CAAC,oBAAoB,CAAC,CAAyB;gBAE1C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAK7C;;;;;;;OAOG;IACH,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAKvD;;;;;;;;OAQG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMzC,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAwBlC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI;IAyB1C;;;;OAIG;IACH,gBAAgB,CAAC,MAAM,EAAE,oCAAoC,CAAC,QAAQ,CAAC,GAAG,IAAI;IAc9E;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAahE;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAahE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAclE;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAgBlE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQlE;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQhE;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQhE;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQ1D,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,OAAO;CAwGhB"}
|
|
@@ -139,20 +139,20 @@ class ConfidentialTransferBuilder extends transactionBuilder_1.TransactionBuilde
|
|
|
139
139
|
payerAddress: params.payerAddress,
|
|
140
140
|
ownerAddress: params.ownerAddress,
|
|
141
141
|
programId: params.programId,
|
|
142
|
+
mintHasTransferFeeConfig: params.mintHasTransferFeeConfig,
|
|
142
143
|
},
|
|
143
144
|
});
|
|
144
145
|
return this;
|
|
145
146
|
}
|
|
146
147
|
/**
|
|
147
148
|
* Add a ConfigureAccount instruction to the transaction.
|
|
148
|
-
* One-time ATA setup — registers
|
|
149
|
-
*
|
|
149
|
+
* One-time ATA setup — registers the AES zero ciphertext and pending-balance counter; the
|
|
150
|
+
* ElGamal pubkey is taken from the accompanying VerifyPubkeyValidity proof.
|
|
150
151
|
*/
|
|
151
152
|
configureAccount(params) {
|
|
152
153
|
(0, assert_1.default)(params.tokenAddress, 'Missing tokenAddress param');
|
|
153
154
|
(0, assert_1.default)(params.mintAddress, 'Missing mintAddress param');
|
|
154
155
|
(0, assert_1.default)(params.authorityAddress, 'Missing authorityAddress param');
|
|
155
|
-
(0, assert_1.default)(params.elgamalPubkey, 'Missing elgamalPubkey param');
|
|
156
156
|
(0, assert_1.default)(params.decryptableZeroBalance, 'Missing decryptableZeroBalance param');
|
|
157
157
|
(0, assert_1.default)(params.maximumPendingBalanceCreditCounter, 'Missing maximumPendingBalanceCreditCounter param');
|
|
158
158
|
this._ctInstructions.push({
|
|
@@ -372,4 +372,4 @@ class ConfidentialTransferBuilder extends transactionBuilder_1.TransactionBuilde
|
|
|
372
372
|
}
|
|
373
373
|
}
|
|
374
374
|
exports.ConfidentialTransferBuilder = ConfidentialTransferBuilder;
|
|
375
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsbURBQTZIO0FBQzdILDZDQUFtRztBQUNuRywwREFBNkI7QUFDN0IsK0NBQTRDO0FBQzVDLDZEQUEwRDtBQUMxRCwyQ0FBc0Q7QUFldEQseUZBQXNGO0FBQ3RGLCtEQUFvRTtBQUNwRSx1RUFBNEU7QUFDNUUsbUVBQWdFO0FBQ2hFLGlFQUE2RTtBQUM3RSxvREFBNEI7QUFFNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsdUNBQWtCO0lBS2pFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBTGIsb0JBQWUsR0FBd0IsRUFBRSxDQUFDO1FBTWhELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsT0FBTyxDQUFDLE9BQThCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxpQkFBaUIsQ0FBQyxNQUE4QjtRQUM5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsSUFBQSxnQkFBTSxFQUFDLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLElBQUks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QUFZLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUV6QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBM1hELGtFQTJYQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgU29sVHJhbnNhY3Rpb25WZXJzaW9uLCBTb2xWMVRyYW5zYWN0aW9uQ29uZmlnLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBQdWJsaWNLZXksIFRyYW5zYWN0aW9uIGFzIFNvbFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkluc3RydWN0aW9uIH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCBuYWNsIGZyb20gJ3R3ZWV0bmFjbCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBBcHBseVBlbmRpbmdCYWxhbmNlLFxuICBBdGFJbml0LFxuICBDb25maWRlbnRpYWxEZXBvc2l0LFxuICBDb25maWRlbnRpYWxUcmFuc2ZlcixcbiAgQ29uZmlkZW50aWFsV2l0aGRyYXcsXG4gIENvbmZpZ3VyZUNvbmZpZGVudGlhbFRyYW5zZmVyQWNjb3VudCxcbiAgSW5zdHJ1Y3Rpb25QYXJhbXMsXG4gIE1lbW8sXG4gIFZlcmlmeUVxdWFsaXR5UHJvb2YsXG4gIFZlcmlmeVB1YmtleVZhbGlkaXR5LFxuICBWZXJpZnlSYW5nZVByb29mLFxuICBWZXJpZnlWYWxpZGl0eVByb29mLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGNvbXBpbGVUcmFuc2FjdGlvbk1lc3NhZ2UgfSBmcm9tICcuL3NlcmlhbGl6YXRpb24vY29tcGlsZVRyYW5zYWN0aW9uTWVzc2FnZSc7XG5pbXBvcnQgeyBkZWNvZGVWMU1lc3NhZ2UgfSBmcm9tICcuL3NlcmlhbGl6YXRpb24vY29kZWNzL3YxL21lc3NhZ2UnO1xuaW1wb3J0IHsgc2VyaWFsaXplV2lyZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi9zZXJpYWxpemF0aW9uL3dpcmUtdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgc29sSW5zdHJ1Y3Rpb25GYWN0b3J5IH0gZnJvbSAnLi9zb2xJbnN0cnVjdGlvbkZhY3RvcnknO1xuaW1wb3J0IHsgYnVpbGRBZHZhbmNlTm9uY2VBY2NvdW50SW5zdHJ1Y3Rpb24gfSBmcm9tICcuL3YxVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuLyoqXG4gKiBCdWlsZGVyIGZvciBUb2tlbi0yMDIyIGNvbmZpZGVudGlhbCB0cmFuc2ZlciB0cmFuc2FjdGlvbnMuXG4gKlxuICogUHJvdmlkZXMgdHlwZS1zYWZlIGZsdWVudCBzZXR0ZXJzIGZvciB0aGUgZm9sbG93aW5nIENUIGluc3RydWN0aW9uczpcbiAqIC0gQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudCAoQ1QgZW5hYmxlbWVudDogQVRBIHVuZGVyIFRva2VuLTIwMjIgYmVmb3JlIENvbmZpZ3VyZUFjY291bnQpXG4gKiAtIENvbmZpZ3VyZUFjY291bnQgKHN0YW5kYWxvbmUsIHdpdGggVmVyaWZ5UHVia2V5VmFsaWRpdHkgcHJvb2YpXG4gKiAtIEFwcGx5UGVuZGluZ0JhbGFuY2UgKGFsd2F5cyBpbnN0cnVjdGlvbiAjMSBpbiB2MSBzcGVuZCB0eHMsIGlkZW1wb3RlbnQpXG4gKiAtIERlcG9zaXQgKHB1YmxpYyDihpIgY29uZmlkZW50aWFsIGNvbnZlcnNpb24pXG4gKiAtIFdpdGhkcmF3IChjb25maWRlbnRpYWwg4oaSIHB1YmxpYyBjb252ZXJzaW9uLCB3aXRoIGVxdWFsaXR5ICsgcmFuZ2UgcHJvb2ZzKVxuICogLSBUcmFuc2ZlciAoY29uZmlkZW50aWFsIOKGkiBjb25maWRlbnRpYWwsIHdpdGggZXF1YWxpdHkgKyB2YWxpZGl0eSArIHJhbmdlIHByb29mcylcbiAqIC0gVmVyaWZ5UHVia2V5VmFsaWRpdHkgLyBWZXJpZnlFcXVhbGl0eSAvIFZlcmlmeVZhbGlkaXR5IC8gVmVyaWZ5UmFuZ2UgcHJvb2YgaW5zdHJ1Y3Rpb25zXG4gKlxuICogSW5zdHJ1Y3Rpb24gYnVpbGRlcnMgYXJlIHYwL3YxLWFnbm9zdGljOiB0aGV5IHByb2R1Y2UgaW5zdHJ1Y3Rpb24gZGF0YSBhbmRcbiAqIGFjY291bnQgbWV0YXMgb25seS4gVGhlIGNhbGxlciAoV2FsbGV0IFBsYXRmb3JtKSBhc3NlbWJsZXMgdGhlbSBpbnRvIHYxXG4gKiB0cmFuc2FjdGlvbnMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRDb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIoKTtcbiAqIGJ1aWxkZXIubm9uY2UocmVjZW50QmxvY2toYXNoKS5zZW5kZXIocGF5ZXIpO1xuICogYnVpbGRlci5jb25maWd1cmVBY2NvdW50KHsgdG9rZW5BZGRyZXNzLCBtaW50QWRkcmVzcywgYXV0aG9yaXR5QWRkcmVzcywgLi4uIH0pO1xuICogYnVpbGRlci52ZXJpZnlQdWJrZXlWYWxpZGl0eSh7IHByb29mRGF0YSB9KTtcbiAqIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF9jdEluc3RydWN0aW9uczogSW5zdHJ1Y3Rpb25QYXJhbXNbXSA9IFtdO1xuICBwcml2YXRlIF92ZXJzaW9uPzogU29sVHJhbnNhY3Rpb25WZXJzaW9uO1xuICBwcml2YXRlIF92MVRyYW5zYWN0aW9uQ29uZmlnPzogU29sVjFUcmFuc2FjdGlvbkNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkNvbmZpZGVudGlhbFRyYW5zZmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgU29sYW5hIHRyYW5zYWN0aW9uIHZlcnNpb24uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGxlZ2FjeSB1bnRpbCBzZXQuIFdoZW4gc2V0IHRvIGAxYCwgdGhlIGJ1aWxkZXIgYXNzZW1ibGVzIGEgdjFcbiAgICogKFNJTUQtMDI5Ni8wMzg1KSB0cmFuc2FjdGlvbjogdmVyc2lvbiBieXRlIGAweDgxYCwgYW4gaW5saW5lIGB0cmFuc2FjdGlvbkNvbmZpZ2BcbiAgICogaW5zdGVhZCBvZiBDb21wdXRlQnVkZ2V0IGluc3RydWN0aW9ucywgbm8gYWRkcmVzcyBsb29rdXAgdGFibGVzLCBhbmQgYVxuICAgKiBtZXNzYWdlLWZpcnN0IHdpcmUgZm9ybWF0IHdpdGggc2lnbmF0dXJlcyBhcHBlbmRlZC5cbiAgICpcbiAgICogQHBhcmFtIHZlcnNpb24gLSB0aGUgdHJhbnNhY3Rpb24gdmVyc2lvbiAoMCA9IHYwLCAxID0gdjEpXG4gICAqIEByZXR1cm5zIHt0aGlzfSBUaGlzIGJ1aWxkZXJcbiAgICovXG4gIHZlcnNpb24odmVyc2lvbjogU29sVHJhbnNhY3Rpb25WZXJzaW9uKTogdGhpcyB7XG4gICAgdGhpcy5fdmVyc2lvbiA9IHZlcnNpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB2MSB0cmFuc2FjdGlvbiBjb25maWcgKGNvbXB1dGUgdW5pdCBsaW1pdCwgaGVhcCBzaXplLCBsb2FkZWQgYWNjb3VudHNcbiAgICogZGF0YSBzaXplIGxpbWl0LCBhbmQgcHJpb3JpdHkgZmVlIGFzIHRvdGFsIGxhbXBvcnRzKS4gUmVxdWlyZWQgd2hlblxuICAgKiBgdmVyc2lvbigxKWAgaXMgc2V0LlxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnIC0gdGhlIHYxIHRyYW5zYWN0aW9uIGNvbmZpZ1xuICAgKiBAcmV0dXJucyB7dGhpc30gVGhpcyBidWlsZGVyXG4gICAqL1xuICB0cmFuc2FjdGlvbkNvbmZpZyhjb25maWc6IFNvbFYxVHJhbnNhY3Rpb25Db25maWcpOiB0aGlzIHtcbiAgICB0aGlzLl92MVRyYW5zYWN0aW9uQ29uZmlnID0gY29uZmlnO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSB6ay1lbGdhbWFsLXByb29mIHByb2dyYW0gaWQuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIHRoZSBjYW5vbmljYWwgb24tY2hhaW4gcHJvZ3JhbSBpZCAoYFprRTFHYW1hMVByb29mMTExLi4uYClcbiAgICogd2hpY2ggaXMgdGhlIHNhbWUgYWNyb3NzIG1haW5uZXQsIGRldm5ldCwgYW5kIHRlc3RuZXQuIE92ZXJyaWRlIG9ubHlcbiAgICogd2hlbiB0YXJnZXRpbmcgYSBjdXN0b20gZGVwbG95bWVudC5cbiAgICpcbiAgICogQHBhcmFtIHByb2dyYW1JZCAtIGJhc2U1OCBlbmNvZGVkIHByb2dyYW0gaWRcbiAgICovXG4gIHprUHJvb2ZQcm9ncmFtSWQocHJvZ3JhbUlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBhc3NlcnQocHJvZ3JhbUlkLCAnTWlzc2luZyBwcm9ncmFtSWQgcGFyYW0nKTtcbiAgICB0aGlzLl96a1Byb29mUHJvZ3JhbUlkID0gcHJvZ3JhbUlkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgc3dpdGNoIChpbnN0cnVjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudDpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5SZWFsbG9jYXRlQ29uZmlkZW50aWFsVHJhbnNmZXJBY2NvdW50OlxuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNvbmZpZ3VyZUNvbmZpZGVudGlhbFRyYW5zZmVyQWNjb3VudDpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5BcHBseVBlbmRpbmdCYWxhbmNlOlxuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNvbmZpZGVudGlhbERlcG9zaXQ6XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ29uZmlkZW50aWFsV2l0aGRyYXc6XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ29uZmlkZW50aWFsVHJhbnNmZXI6XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVmVyaWZ5UHVia2V5VmFsaWRpdHk6XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVmVyaWZ5RXF1YWxpdHlQcm9vZjpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5WZXJpZnlWYWxpZGl0eVByb29mOlxuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlZlcmlmeVJhbmdlUHJvb2Y6XG4gICAgICAgICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaChpbnN0cnVjdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIENyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQgKGlkZW1wb3RlbnQpIGluc3RydWN0aW9uIHRvIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogQ1QgZW5hYmxlbWVudCBvbmx5IOKAlCB0aGUgQVRBIG11c3QgZXhpc3QgYmVmb3JlIENvbmZpZ3VyZUFjY291bnQ7IGFkZCB0aGlzXG4gICAqIGZpcnN0IHdoZW4gdGhlIEFUQSBpcyBub3QgeWV0IG9uLWNoYWluLiBGb3IgVG9rZW4tMjAyMiBtaW50cyBwYXNzXG4gICAqIGBwcm9ncmFtSWRgIHNvIHRoZSBBVEEgaXMgY3JlYXRlZCB1bmRlciB0aGUgVG9rZW4tMjAyMiBwcm9ncmFtLlxuICAgKi9cbiAgY3JlYXRlQXRhKHBhcmFtczogQXRhSW5pdFsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICBhc3NlcnQocGFyYW1zLm1pbnRBZGRyZXNzLCAnTWlzc2luZyBtaW50QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuYXRhQWRkcmVzcywgJ01pc3NpbmcgYXRhQWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMub3duZXJBZGRyZXNzLCAnTWlzc2luZyBvd25lckFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLnBheWVyQWRkcmVzcywgJ01pc3NpbmcgcGF5ZXJBZGRyZXNzIHBhcmFtJyk7XG5cbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQsXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgLy8gQ29uZmlndXJlQWNjb3VudCByZXF1aXJlcyB0aGUgQ29uZmlkZW50aWFsVHJhbnNmZXJBY2NvdW50IGV4dGVuc2lvbiwgd2hpY2ggYW4gQVRBIGRvZXNcbiAgICAvLyBub3QgY2Fycnkg4oCUIFJlYWxsb2NhdGUgYWRkcyBpdCBhbmQgbXVzdCBydW4gYmVmb3JlIENvbmZpZ3VyZUFjY291bnQuXG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5SZWFsbG9jYXRlQ29uZmlkZW50aWFsVHJhbnNmZXJBY2NvdW50LFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHRva2VuQWRkcmVzczogcGFyYW1zLmF0YUFkZHJlc3MsXG4gICAgICAgIHBheWVyQWRkcmVzczogcGFyYW1zLnBheWVyQWRkcmVzcyxcbiAgICAgICAgb3duZXJBZGRyZXNzOiBwYXJhbXMub3duZXJBZGRyZXNzLFxuICAgICAgICBwcm9ncmFtSWQ6IHBhcmFtcy5wcm9ncmFtSWQsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIENvbmZpZ3VyZUFjY291bnQgaW5zdHJ1Y3Rpb24gdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBPbmUtdGltZSBBVEEgc2V0dXAg4oCUIHJlZ2lzdGVycyBFbEdhbWFsIHB1YmtleSArIEFFUyB6ZXJvIGNpcGhlcnRleHQuXG4gICAqIE11c3QgYmUgYWNjb21wYW5pZWQgYnkgYSBWZXJpZnlQdWJrZXlWYWxpZGl0eSBwcm9vZiBpbnN0cnVjdGlvbi5cbiAgICovXG4gIGNvbmZpZ3VyZUFjY291bnQocGFyYW1zOiBDb25maWd1cmVDb25maWRlbnRpYWxUcmFuc2ZlckFjY291bnRbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgYXNzZXJ0KHBhcmFtcy50b2tlbkFkZHJlc3MsICdNaXNzaW5nIHRva2VuQWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMubWludEFkZHJlc3MsICdNaXNzaW5nIG1pbnRBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5hdXRob3JpdHlBZGRyZXNzLCAnTWlzc2luZyBhdXRob3JpdHlBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5lbGdhbWFsUHVia2V5LCAnTWlzc2luZyBlbGdhbWFsUHVia2V5IHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5kZWNyeXB0YWJsZVplcm9CYWxhbmNlLCAnTWlzc2luZyBkZWNyeXB0YWJsZVplcm9CYWxhbmNlIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5tYXhpbXVtUGVuZGluZ0JhbGFuY2VDcmVkaXRDb3VudGVyLCAnTWlzc2luZyBtYXhpbXVtUGVuZGluZ0JhbGFuY2VDcmVkaXRDb3VudGVyIHBhcmFtJyk7XG5cbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNvbmZpZ3VyZUNvbmZpZGVudGlhbFRyYW5zZmVyQWNjb3VudCxcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gQXBwbHlQZW5kaW5nQmFsYW5jZSBpbnN0cnVjdGlvbiB0byB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIENyZWRpdHMgcGVuZGluZyBiYWxhbmNlIGludG8gYXZhaWxhYmxlIGJhbGFuY2UuIElkZW1wb3RlbnQgKG5vLW9wIGlmIDAgcGVuZGluZykuXG4gICAqIEluIHYxIHRyYW5zYWN0aW9ucywgdGhpcyBzaG91bGQgYWx3YXlzIGJlIGluc3RydWN0aW9uICMxLlxuICAgKi9cbiAgYXBwbHlQZW5kaW5nQmFsYW5jZShwYXJhbXM6IEFwcGx5UGVuZGluZ0JhbGFuY2VbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgYXNzZXJ0KHBhcmFtcy50b2tlbkFkZHJlc3MsICdNaXNzaW5nIHRva2VuQWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuYXV0aG9yaXR5QWRkcmVzcywgJ01pc3NpbmcgYXV0aG9yaXR5QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuZXhwZWN0ZWRQZW5kaW5nQmFsYW5jZUNyZWRpdENvdW50ZXIsICdNaXNzaW5nIGV4cGVjdGVkUGVuZGluZ0JhbGFuY2VDcmVkaXRDb3VudGVyIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5uZXdEZWNyeXB0YWJsZUF2YWlsYWJsZUJhbGFuY2UsICdNaXNzaW5nIG5ld0RlY3J5cHRhYmxlQXZhaWxhYmxlQmFsYW5jZSBwYXJhbScpO1xuXG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5BcHBseVBlbmRpbmdCYWxhbmNlLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIERlcG9zaXQgaW5zdHJ1Y3Rpb24gdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBNb3ZlcyBwdWJsaWMgU1BMIHRva2VucyBpbnRvIGNvbmZpZGVudGlhbCBwZW5kaW5nIGJhbGFuY2UuIE5vIHByb29mIHJlcXVpcmVkLlxuICAgKi9cbiAgY29uZmlkZW50aWFsRGVwb3NpdChwYXJhbXM6IENvbmZpZGVudGlhbERlcG9zaXRbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgYXNzZXJ0KHBhcmFtcy50b2tlbkFkZHJlc3MsICdNaXNzaW5nIHRva2VuQWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMubWludEFkZHJlc3MsICdNaXNzaW5nIG1pbnRBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5hdXRob3JpdHlBZGRyZXNzLCAnTWlzc2luZyBhdXRob3JpdHlBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5hbW91bnQsICdNaXNzaW5nIGFtb3VudCBwYXJhbScpO1xuXG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Db25maWRlbnRpYWxEZXBvc2l0LFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIFdpdGhkcmF3IGluc3RydWN0aW9uIHRvIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogTW92ZXMgY29uZmlkZW50aWFsIGF2YWlsYWJsZSBiYWxhbmNlIHRvIHB1YmxpYyBiYWxhbmNlLlxuICAgKiBSZXF1aXJlcyBlcXVhbGl0eSArIHJhbmdlIHByb29mIHZlcmlmaWNhdGlvbiBpbnN0cnVjdGlvbnMuXG4gICAqL1xuICBjb25maWRlbnRpYWxXaXRoZHJhdyhwYXJhbXM6IENvbmZpZGVudGlhbFdpdGhkcmF3WydwYXJhbXMnXSk6IHRoaXMge1xuICAgIGFzc2VydChwYXJhbXMudG9rZW5BZGRyZXNzLCAnTWlzc2luZyB0b2tlbkFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLm1pbnRBZGRyZXNzLCAnTWlzc2luZyBtaW50QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuYXV0aG9yaXR5QWRkcmVzcywgJ01pc3NpbmcgYXV0aG9yaXR5QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuYW1vdW50LCAnTWlzc2luZyBhbW91bnQgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLm5ld0RlY3J5cHRhYmxlQXZhaWxhYmxlQmFsYW5jZSwgJ01pc3NpbmcgbmV3RGVjcnlwdGFibGVBdmFpbGFibGVCYWxhbmNlIHBhcmFtJyk7XG5cbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNvbmZpZGVudGlhbFdpdGhkcmF3LFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGNvbmZpZGVudGlhbCBUcmFuc2ZlciBpbnN0cnVjdGlvbiB0byB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIFJlcXVpcmVzIGVxdWFsaXR5ICsgY2lwaGVydGV4dCB2YWxpZGl0eSArIHJhbmdlIHByb29mIHZlcmlmaWNhdGlvbiBpbnN0cnVjdGlvbnMuXG4gICAqL1xuICBjb25maWRlbnRpYWxUcmFuc2ZlcihwYXJhbXM6IENvbmZpZGVudGlhbFRyYW5zZmVyWydwYXJhbXMnXSk6IHRoaXMge1xuICAgIGFzc2VydChwYXJhbXMuc291cmNlVG9rZW5BZGRyZXNzLCAnTWlzc2luZyBzb3VyY2VUb2tlbkFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLm1pbnRBZGRyZXNzLCAnTWlzc2luZyBtaW50QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuZGVzdGluYXRpb25Ub2tlbkFkZHJlc3MsICdNaXNzaW5nIGRlc3RpbmF0aW9uVG9rZW5BZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5hdXRob3JpdHlBZGRyZXNzLCAnTWlzc2luZyBhdXRob3JpdHlBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5uZXdTb3VyY2VEZWNyeXB0YWJsZUF2YWlsYWJsZUJhbGFuY2UsICdNaXNzaW5nIG5ld1NvdXJjZURlY3J5cHRhYmxlQXZhaWxhYmxlQmFsYW5jZSBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMudHJhbnNmZXJBbW91bnRBdWRpdG9yQ2lwaGVydGV4dExvLCAnTWlzc2luZyB0cmFuc2ZlckFtb3VudEF1ZGl0b3JDaXBoZXJ0ZXh0TG8gcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLnRyYW5zZmVyQW1vdW50QXVkaXRvckNpcGhlcnRleHRIaSwgJ01pc3NpbmcgdHJhbnNmZXJBbW91bnRBdWRpdG9yQ2lwaGVydGV4dEhpIHBhcmFtJyk7XG5cbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNvbmZpZGVudGlhbFRyYW5zZmVyLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIFZlcmlmeVB1YmtleVZhbGlkaXR5IHByb29mIGluc3RydWN0aW9uICh1c2VkIHdpdGggQ29uZmlndXJlQWNjb3VudCkuXG4gICAqL1xuICB2ZXJpZnlQdWJrZXlWYWxpZGl0eShwYXJhbXM6IFZlcmlmeVB1YmtleVZhbGlkaXR5WydwYXJhbXMnXSk6IHRoaXMge1xuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVmVyaWZ5UHVia2V5VmFsaWRpdHksXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgVmVyaWZ5Q2lwaGVydGV4dENvbW1pdG1lbnRFcXVhbGl0eSBwcm9vZiBpbnN0cnVjdGlvbiAodXNlZCB3aXRoIFRyYW5zZmVyIGFuZCBXaXRoZHJhdykuXG4gICAqL1xuICB2ZXJpZnlFcXVhbGl0eVByb29mKHBhcmFtczogVmVyaWZ5RXF1YWxpdHlQcm9vZlsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlZlcmlmeUVxdWFsaXR5UHJvb2YsXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgVmVyaWZ5QmF0Y2hlZEdyb3VwZWRDaXBoZXJ0ZXh0M0hhbmRsZXNWYWxpZGl0eSBwcm9vZiBpbnN0cnVjdGlvbiAodXNlZCB3aXRoIFRyYW5zZmVyKS5cbiAgICovXG4gIHZlcmlmeVZhbGlkaXR5UHJvb2YocGFyYW1zOiBWZXJpZnlWYWxpZGl0eVByb29mWydwYXJhbXMnXSk6IHRoaXMge1xuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVmVyaWZ5VmFsaWRpdHlQcm9vZixcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBWZXJpZnlCYXRjaGVkUmFuZ2VQcm9vZlUxMjggcHJvb2YgaW5zdHJ1Y3Rpb24gKHVzZWQgd2l0aCBUcmFuc2ZlcikuXG4gICAqL1xuICB2ZXJpZnlSYW5nZVByb29mKHBhcmFtczogVmVyaWZ5UmFuZ2VQcm9vZlsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlZlcmlmeVJhbmdlUHJvb2YsXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGFzc2VydCh0aGlzLl9jdEluc3RydWN0aW9ucy5sZW5ndGggPiAwLCAnQXQgbGVhc3Qgb25lIGNvbmZpZGVudGlhbCB0cmFuc2ZlciBpbnN0cnVjdGlvbiBtdXN0IGJlIHNwZWNpZmllZCcpO1xuXG4gICAgaWYgKHRoaXMuX3ZlcnNpb24gPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkVjEoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gWy4uLnRoaXMuX2N0SW5zdHJ1Y3Rpb25zXTtcblxuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSB2MSAoU0lNRC0wMjk2LzAzODUpIGNvbmZpZGVudGlhbCB0cmFuc2ZlciB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQXNzZW1ibGVzIHRoZSBDVCBpbnN0cnVjdGlvbnMgdmlhIHRoZSBzaGFyZWQgaW5zdHJ1Y3Rpb24gZmFjdG9yeSwgY29tcGlsZXNcbiAgICogYW5kIHNlcmlhbGl6ZXMgYSB2MSBtZXNzYWdlIHdpdGggdGhlIGlubGluZSB0cmFuc2FjdGlvbiBjb25maWcsIHNpZ25zIHRoZVxuICAgKiBtZXNzYWdlIGJ5dGVzIHdpdGggdGhlIGJ1aWxkZXIncyBzaWduZXJzLCBhbmQgc3RvcmVzIHRoZSByZXN1bHRpbmcgd2lyZVxuICAgKiBieXRlcyBmb3IgYnJvYWRjYXN0LiBBbHNvIHBvcHVsYXRlcyBhIG1ldGFkYXRhLW9ubHkgU29sVHJhbnNhY3Rpb24gc28gdGhlXG4gICAqIHRyYW5zYWN0aW9uIEpTT04gYW5kIGlucHV0L291dHB1dCBleHRyYWN0aW9uIHJlbWFpbiB1c2FibGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbn0gVGhlIGJ1aWx0IHRyYW5zYWN0aW9uIGhvbGRpbmcgdGhlIHYxIHdpcmUgYnl0ZXNcbiAgICovXG4gIHByaXZhdGUgYnVpbGRWMSgpOiBUcmFuc2FjdGlvbiB7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZGVyIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fcmVjZW50QmxvY2toYXNoLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdyZWNlbnQgYmxvY2toYXNoIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fdjFUcmFuc2FjdGlvbkNvbmZpZywgJ3RyYW5zYWN0aW9uQ29uZmlnIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIGEgdjEgY29uZmlkZW50aWFsIHRyYW5zZmVyIHRyYW5zYWN0aW9uJyk7XG5cbiAgICAvLyBBcHBseVBlbmRpbmdCYWxhbmNlIG11c3QgcmVtYWluIGluc3RydWN0aW9uICMxIGluIHYxIHNwZW5kIHR4cyAoaXQgaXMgaWRlbXBvdGVudCksXG4gICAgLy8gcmVnYXJkbGVzcyBvZiB0aGUgb3JkZXIgdGhlIGNhbGxlciBhZGRlZCBpbnN0cnVjdGlvbnMuXG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMgPSBbXG4gICAgICAuLi50aGlzLl9jdEluc3RydWN0aW9ucy5maWx0ZXIoKGkpID0+IGkudHlwZSA9PT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQXBwbHlQZW5kaW5nQmFsYW5jZSksXG4gICAgICAuLi50aGlzLl9jdEluc3RydWN0aW9ucy5maWx0ZXIoKGkpID0+IGkudHlwZSAhPT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQXBwbHlQZW5kaW5nQmFsYW5jZSksXG4gICAgXTtcblxuICAgIGNvbnN0IGluc3RydWN0aW9uczogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdID0gW107XG5cbiAgICAvLyBEdXJhYmxlIG5vbmNlOiB0aGUgQWR2YW5jZU5vbmNlQWNjb3VudCBpbnN0cnVjdGlvbiBNVVNUIGJlIHBhcnQgb2YgdGhlXG4gICAgLy8gbWVzc2FnZSAoYSBiYXJlIG5vbmNlIGhhc2ggd2l0aG91dCB0aGUgaW5zdHJ1Y3Rpb24gaXMgaW52YWxpZCkuIEl0IGlzXG4gICAgLy8gcGxhY2VkIGZpcnN0LCBtYXRjaGluZyB0aGUgdjAgd2ViMy5qcyBhbmQgdjEgcGF5bWVudC1idWlsZGVyIGNvbnZlbnRpb24uXG4gICAgaWYgKHRoaXMuX25vbmNlSW5mbykge1xuICAgICAgaW5zdHJ1Y3Rpb25zLnB1c2goXG4gICAgICAgIGJ1aWxkQWR2YW5jZU5vbmNlQWNjb3VudEluc3RydWN0aW9uKFxuICAgICAgICAgIHRoaXMuX25vbmNlSW5mby5wYXJhbXMud2FsbGV0Tm9uY2VBZGRyZXNzLFxuICAgICAgICAgIHRoaXMuX25vbmNlSW5mby5wYXJhbXMuYXV0aFdhbGxldEFkZHJlc3NcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zKSB7XG4gICAgICBpbnN0cnVjdGlvbnMucHVzaCguLi5zb2xJbnN0cnVjdGlvbkZhY3RvcnkoaW5zdHJ1Y3Rpb24sIHRoaXMuX3prUHJvb2ZQcm9ncmFtSWQpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbWVtbykge1xuICAgICAgY29uc3QgbWVtb0RhdGE6IE1lbW8gPSB7XG4gICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk1lbW8sXG4gICAgICAgIHBhcmFtczogeyBtZW1vOiB0aGlzLl9tZW1vIH0sXG4gICAgICB9O1xuICAgICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaChtZW1vRGF0YSk7XG4gICAgICBpbnN0cnVjdGlvbnMucHVzaCguLi5zb2xJbnN0cnVjdGlvbkZhY3RvcnkobWVtb0RhdGEpKTtcbiAgICB9XG5cbiAgICBjb25zdCBmZWVQYXllciA9IHRoaXMuX2ZlZVBheWVyID8gbmV3IFB1YmxpY0tleSh0aGlzLl9mZWVQYXllcikgOiBuZXcgUHVibGljS2V5KHRoaXMuX3NlbmRlcik7XG4gICAgY29uc3QgbWVzc2FnZUJ5dGVzID0gY29tcGlsZVRyYW5zYWN0aW9uTWVzc2FnZSh7XG4gICAgICB2ZXJzaW9uOiAxLFxuICAgICAgaW5zdHJ1Y3Rpb25zLFxuICAgICAgZmVlUGF5ZXIsXG4gICAgICByZWNlbnRCbG9ja2hhc2g6IHRoaXMuX3JlY2VudEJsb2NraGFzaCxcbiAgICAgIHRyYW5zYWN0aW9uQ29uZmlnOiB0aGlzLl92MVRyYW5zYWN0aW9uQ29uZmlnLFxuICAgIH0pO1xuXG4gICAgLy8gU2lnbmVyIG9yZGVyIGNvbWVzIGZyb20gdGhlIGNvbXBpbGVkIG1lc3NhZ2U6IHRoZSBmaXJzdFxuICAgIC8vIG51bVNpZ25lckFjY291bnRzIHN0YXRpYyBhY2NvdW50cyBhcmUgdGhlIHJlcXVpcmVkIHNpZ25lcnMgKGZlZSBwYXllclxuICAgIC8vIGZpcnN0LCB0aGVuIHRoZSByZW1haW5pbmcgc2lnbmVycyBpbiB0aGUgY29tcGlsZWQgYWNjb3VudCBvcmRlcikuIE1pc3NpbmdcbiAgICAvLyBzaWduYXR1cmVzIGFyZSB6ZXJvLWZpbGxlZCBzbyB1bnNpZ25lZC9wYXJ0aWFsIGJ1aWxkcyBrZWVwIGEgdmFsaWQgd2lyZVxuICAgIC8vIHNoYXBlIGZvciB0aGUgc2VydmVyLXNpZGUgc2lnbiBwYXRoIChub3QgYnJvYWRjYXN0YWJsZSB1bnRpbCBmaWxsZWQpLlxuICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVWMU1lc3NhZ2UobWVzc2FnZUJ5dGVzKTtcbiAgICBjb25zdCBzaWduZXJBZGRyZXNzZXMgPSBkZWNvZGVkLnN0YXRpY0FjY291bnRzLnNsaWNlKDAsIGRlY29kZWQuaGVhZGVyLm51bVNpZ25lckFjY291bnRzKTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZXM6IFVpbnQ4QXJyYXlbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgYWRkcmVzcyBvZiBzaWduZXJBZGRyZXNzZXMpIHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSB0aGlzLl9zaWduZXJzLmZpbmQoKHNpZ25lcikgPT4gc2lnbmVyLmdldEtleXMoKS5wdWIgPT09IGFkZHJlc3MpO1xuICAgICAgaWYgKGtleVBhaXIpIHtcbiAgICAgICAgY29uc3Qgc2VjcmV0S2V5ID0ga2V5UGFpci5nZXRLZXlzKHRydWUpLnBydjtcbiAgICAgICAgYXNzZXJ0KHNlY3JldEtleSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXksICdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgICAgIHNpZ25hdHVyZXMucHVzaChuYWNsLnNpZ24uZGV0YWNoZWQobWVzc2FnZUJ5dGVzLCBzZWNyZXRLZXkpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBhZGRpdGlvbmFsID0gdGhpcy5nZXRBZGRpdGlvbmFsU2lnbmF0dXJlcygpLmZpbmQoKHNpZykgPT4gc2lnLnB1YmxpY0tleS5wdWIgPT09IGFkZHJlc3MpO1xuICAgICAgaWYgKGFkZGl0aW9uYWwpIHtcbiAgICAgICAgc2lnbmF0dXJlcy5wdXNoKG5ldyBVaW50OEFycmF5KGFkZGl0aW9uYWwuc2lnbmF0dXJlKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gTWlzc2luZyBzaWduYXR1cmU6IHplcm8tZmlsbCB0aGUgc2xvdCBzbyB0aGUgd2lyZSBzaGFwZSBzdGF5cyB2YWxpZFxuICAgICAgLy8gZm9yIHBhcnRpYWwtc2lnbiBmbG93czsgdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBicm9hZGNhc3RhYmxlIHVudGlsXG4gICAgICAvLyBldmVyeSByZXF1aXJlZCBzaWduZXIgaGFzIGEgc2lnbmF0dXJlLlxuICAgICAgc2lnbmF0dXJlcy5wdXNoKG5ldyBVaW50OEFycmF5KDY0KSk7XG4gICAgfVxuXG4gICAgY29uc3QgdjFXaXJlID0gc2VyaWFsaXplV2lyZVRyYW5zYWN0aW9uKG1lc3NhZ2VCeXRlcywgc2lnbmF0dXJlcyk7XG5cbiAgICB0aGlzLl90cmFuc2FjdGlvbi52MVRyYW5zYWN0aW9uQnl0ZXMgPSB2MVdpcmU7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24udjFNZXNzYWdlQnl0ZXMgPSBtZXNzYWdlQnl0ZXM7XG5cbiAgICAvLyBQb3B1bGF0ZSBhIG1ldGFkYXRhLW9ubHkgU29sVHJhbnNhY3Rpb24gc28gdG9Kc29uIC8gbG9hZElucHV0c0FuZE91dHB1dHMgd29yay5cbiAgICAvLyBUaGUgZHVyYWJsZSBub25jZSBpcyBjYXJyaWVkIHZpYSBub25jZUluZm8sIG1hdGNoaW5nIHRoZSB2MCBtb2RlbC5cbiAgICBjb25zdCBtZXRhVHggPSBuZXcgU29sVHJhbnNhY3Rpb24oKTtcbiAgICBtZXRhVHguZmVlUGF5ZXIgPSBmZWVQYXllcjtcbiAgICBtZXRhVHgucmVjZW50QmxvY2toYXNoID0gdGhpcy5fcmVjZW50QmxvY2toYXNoO1xuICAgIGlmICh0aGlzLl9ub25jZUluZm8pIHtcbiAgICAgIG1ldGFUeC5ub25jZUluZm8gPSB7XG4gICAgICAgIG5vbmNlOiB0aGlzLl9yZWNlbnRCbG9ja2hhc2gsXG4gICAgICAgIG5vbmNlSW5zdHJ1Y3Rpb246IGJ1aWxkQWR2YW5jZU5vbmNlQWNjb3VudEluc3RydWN0aW9uKFxuICAgICAgICAgIHRoaXMuX25vbmNlSW5mby5wYXJhbXMud2FsbGV0Tm9uY2VBZGRyZXNzLFxuICAgICAgICAgIHRoaXMuX25vbmNlSW5mby5wYXJhbXMuYXV0aFdhbGxldEFkZHJlc3NcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfVxuICAgIG1ldGFUeC5hZGQoLi4uaW5zdHJ1Y3Rpb25zKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zb2xUcmFuc2FjdGlvbiA9IG1ldGFUeDtcblxuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uc2V0SW5zdHJ1Y3Rpb25zRGF0YSh0aGlzLl9jdEluc3RydWN0aW9ucyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24ubG9hZElucHV0c0FuZE91dHB1dHMoKTtcblxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxufVxuIl19
|
|
375
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsbURBQTZIO0FBQzdILDZDQUFtRztBQUNuRywwREFBNkI7QUFDN0IsK0NBQTRDO0FBQzVDLDZEQUEwRDtBQUMxRCwyQ0FBc0Q7QUFldEQseUZBQXNGO0FBQ3RGLCtEQUFvRTtBQUNwRSx1RUFBNEU7QUFDNUUsbUVBQWdFO0FBQ2hFLGlFQUE2RTtBQUM3RSxvREFBNEI7QUFFNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsdUNBQWtCO0lBS2pFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBTGIsb0JBQWUsR0FBd0IsRUFBRSxDQUFDO1FBTWhELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsT0FBTyxDQUFDLE9BQThCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxpQkFBaUIsQ0FBQyxNQUE4QjtRQUM5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsSUFBQSxnQkFBTSxFQUFDLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLElBQUks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QUM7UUFFekMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQTNYRCxrRUEyWEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFNvbFRyYW5zYWN0aW9uVmVyc2lvbiwgU29sVjFUcmFuc2FjdGlvbkNvbmZpZywgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgUHVibGljS2V5LCBUcmFuc2FjdGlvbiBhcyBTb2xUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25JbnN0cnVjdGlvbiB9IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEluc3RydWN0aW9uQnVpbGRlclR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgQXBwbHlQZW5kaW5nQmFsYW5jZSxcbiAgQXRhSW5pdCxcbiAgQ29uZmlkZW50aWFsRGVwb3NpdCxcbiAgQ29uZmlkZW50aWFsVHJhbnNmZXIsXG4gIENvbmZpZGVudGlhbFdpdGhkcmF3LFxuICBDb25maWd1cmVDb25maWRlbnRpYWxUcmFuc2ZlckFjY291bnQsXG4gIEluc3RydWN0aW9uUGFyYW1zLFxuICBNZW1vLFxuICBWZXJpZnlFcXVhbGl0eVByb29mLFxuICBWZXJpZnlQdWJrZXlWYWxpZGl0eSxcbiAgVmVyaWZ5UmFuZ2VQcm9vZixcbiAgVmVyaWZ5VmFsaWRpdHlQcm9vZixcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBjb21waWxlVHJhbnNhY3Rpb25NZXNzYWdlIH0gZnJvbSAnLi9zZXJpYWxpemF0aW9uL2NvbXBpbGVUcmFuc2FjdGlvbk1lc3NhZ2UnO1xuaW1wb3J0IHsgZGVjb2RlVjFNZXNzYWdlIH0gZnJvbSAnLi9zZXJpYWxpemF0aW9uL2NvZGVjcy92MS9tZXNzYWdlJztcbmltcG9ydCB7IHNlcmlhbGl6ZVdpcmVUcmFuc2FjdGlvbiB9IGZyb20gJy4vc2VyaWFsaXphdGlvbi93aXJlLXRyYW5zYWN0aW9uJztcbmltcG9ydCB7IHNvbEluc3RydWN0aW9uRmFjdG9yeSB9IGZyb20gJy4vc29sSW5zdHJ1Y3Rpb25GYWN0b3J5JztcbmltcG9ydCB7IGJ1aWxkQWR2YW5jZU5vbmNlQWNjb3VudEluc3RydWN0aW9uIH0gZnJvbSAnLi92MVRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgVG9rZW4tMjAyMiBjb25maWRlbnRpYWwgdHJhbnNmZXIgdHJhbnNhY3Rpb25zLlxuICpcbiAqIFByb3ZpZGVzIHR5cGUtc2FmZSBmbHVlbnQgc2V0dGVycyBmb3IgdGhlIGZvbGxvd2luZyBDVCBpbnN0cnVjdGlvbnM6XG4gKiAtIENyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQgKENUIGVuYWJsZW1lbnQ6IEFUQSB1bmRlciBUb2tlbi0yMDIyIGJlZm9yZSBDb25maWd1cmVBY2NvdW50KVxuICogLSBDb25maWd1cmVBY2NvdW50IChzdGFuZGFsb25lLCB3aXRoIFZlcmlmeVB1YmtleVZhbGlkaXR5IHByb29mKVxuICogLSBBcHBseVBlbmRpbmdCYWxhbmNlIChhbHdheXMgaW5zdHJ1Y3Rpb24gIzEgaW4gdjEgc3BlbmQgdHhzLCBpZGVtcG90ZW50KVxuICogLSBEZXBvc2l0IChwdWJsaWMg4oaSIGNvbmZpZGVudGlhbCBjb252ZXJzaW9uKVxuICogLSBXaXRoZHJhdyAoY29uZmlkZW50aWFsIOKGkiBwdWJsaWMgY29udmVyc2lvbiwgd2l0aCBlcXVhbGl0eSArIHJhbmdlIHByb29mcylcbiAqIC0gVHJhbnNmZXIgKGNvbmZpZGVudGlhbCDihpIgY29uZmlkZW50aWFsLCB3aXRoIGVxdWFsaXR5ICsgdmFsaWRpdHkgKyByYW5nZSBwcm9vZnMpXG4gKiAtIFZlcmlmeVB1YmtleVZhbGlkaXR5IC8gVmVyaWZ5RXF1YWxpdHkgLyBWZXJpZnlWYWxpZGl0eSAvIFZlcmlmeVJhbmdlIHByb29mIGluc3RydWN0aW9uc1xuICpcbiAqIEluc3RydWN0aW9uIGJ1aWxkZXJzIGFyZSB2MC92MS1hZ25vc3RpYzogdGhleSBwcm9kdWNlIGluc3RydWN0aW9uIGRhdGEgYW5kXG4gKiBhY2NvdW50IG1ldGFzIG9ubHkuIFRoZSBjYWxsZXIgKFdhbGxldCBQbGF0Zm9ybSkgYXNzZW1ibGVzIHRoZW0gaW50byB2MVxuICogdHJhbnNhY3Rpb25zIGluIHRoZSBjb3JyZWN0IG9yZGVyLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0Q29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyKCk7XG4gKiBidWlsZGVyLm5vbmNlKHJlY2VudEJsb2NraGFzaCkuc2VuZGVyKHBheWVyKTtcbiAqIGJ1aWxkZXIuY29uZmlndXJlQWNjb3VudCh7IHRva2VuQWRkcmVzcywgbWludEFkZHJlc3MsIGF1dGhvcml0eUFkZHJlc3MsIC4uLiB9KTtcbiAqIGJ1aWxkZXIudmVyaWZ5UHVia2V5VmFsaWRpdHkoeyBwcm9vZkRhdGEgfSk7XG4gKiBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBfY3RJbnN0cnVjdGlvbnM6IEluc3RydWN0aW9uUGFyYW1zW10gPSBbXTtcbiAgcHJpdmF0ZSBfdmVyc2lvbj86IFNvbFRyYW5zYWN0aW9uVmVyc2lvbjtcbiAgcHJpdmF0ZSBfdjFUcmFuc2FjdGlvbkNvbmZpZz86IFNvbFYxVHJhbnNhY3Rpb25Db25maWc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5Db25maWRlbnRpYWxUcmFuc2ZlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIFNvbGFuYSB0cmFuc2FjdGlvbiB2ZXJzaW9uLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBsZWdhY3kgdW50aWwgc2V0LiBXaGVuIHNldCB0byBgMWAsIHRoZSBidWlsZGVyIGFzc2VtYmxlcyBhIHYxXG4gICAqIChTSU1ELTAyOTYvMDM4NSkgdHJhbnNhY3Rpb246IHZlcnNpb24gYnl0ZSBgMHg4MWAsIGFuIGlubGluZSBgdHJhbnNhY3Rpb25Db25maWdgXG4gICAqIGluc3RlYWQgb2YgQ29tcHV0ZUJ1ZGdldCBpbnN0cnVjdGlvbnMsIG5vIGFkZHJlc3MgbG9va3VwIHRhYmxlcywgYW5kIGFcbiAgICogbWVzc2FnZS1maXJzdCB3aXJlIGZvcm1hdCB3aXRoIHNpZ25hdHVyZXMgYXBwZW5kZWQuXG4gICAqXG4gICAqIEBwYXJhbSB2ZXJzaW9uIC0gdGhlIHRyYW5zYWN0aW9uIHZlcnNpb24gKDAgPSB2MCwgMSA9IHYxKVxuICAgKiBAcmV0dXJucyB7dGhpc30gVGhpcyBidWlsZGVyXG4gICAqL1xuICB2ZXJzaW9uKHZlcnNpb246IFNvbFRyYW5zYWN0aW9uVmVyc2lvbik6IHRoaXMge1xuICAgIHRoaXMuX3ZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdjEgdHJhbnNhY3Rpb24gY29uZmlnIChjb21wdXRlIHVuaXQgbGltaXQsIGhlYXAgc2l6ZSwgbG9hZGVkIGFjY291bnRzXG4gICAqIGRhdGEgc2l6ZSBsaW1pdCwgYW5kIHByaW9yaXR5IGZlZSBhcyB0b3RhbCBsYW1wb3J0cykuIFJlcXVpcmVkIHdoZW5cbiAgICogYHZlcnNpb24oMSlgIGlzIHNldC5cbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyAtIHRoZSB2MSB0cmFuc2FjdGlvbiBjb25maWdcbiAgICogQHJldHVybnMge3RoaXN9IFRoaXMgYnVpbGRlclxuICAgKi9cbiAgdHJhbnNhY3Rpb25Db25maWcoY29uZmlnOiBTb2xWMVRyYW5zYWN0aW9uQ29uZmlnKTogdGhpcyB7XG4gICAgdGhpcy5fdjFUcmFuc2FjdGlvbkNvbmZpZyA9IGNvbmZpZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgemstZWxnYW1hbC1wcm9vZiBwcm9ncmFtIGlkLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB0aGUgY2Fub25pY2FsIG9uLWNoYWluIHByb2dyYW0gaWQgKGBaa0UxR2FtYTFQcm9vZjExMS4uLmApXG4gICAqIHdoaWNoIGlzIHRoZSBzYW1lIGFjcm9zcyBtYWlubmV0LCBkZXZuZXQsIGFuZCB0ZXN0bmV0LiBPdmVycmlkZSBvbmx5XG4gICAqIHdoZW4gdGFyZ2V0aW5nIGEgY3VzdG9tIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9ncmFtSWQgLSBiYXNlNTggZW5jb2RlZCBwcm9ncmFtIGlkXG4gICAqL1xuICB6a1Byb29mUHJvZ3JhbUlkKHByb2dyYW1JZDogc3RyaW5nKTogdGhpcyB7XG4gICAgYXNzZXJ0KHByb2dyYW1JZCwgJ01pc3NpbmcgcHJvZ3JhbUlkIHBhcmFtJyk7XG4gICAgdGhpcy5femtQcm9vZlByb2dyYW1JZCA9IHByb2dyYW1JZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2luc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIHN3aXRjaCAoaW5zdHJ1Y3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQ6XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuUmVhbGxvY2F0ZUNvbmZpZGVudGlhbFRyYW5zZmVyQWNjb3VudDpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Db25maWd1cmVDb25maWRlbnRpYWxUcmFuc2ZlckFjY291bnQ6XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQXBwbHlQZW5kaW5nQmFsYW5jZTpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Db25maWRlbnRpYWxEZXBvc2l0OlxuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNvbmZpZGVudGlhbFdpdGhkcmF3OlxuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNvbmZpZGVudGlhbFRyYW5zZmVyOlxuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlZlcmlmeVB1YmtleVZhbGlkaXR5OlxuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlZlcmlmeUVxdWFsaXR5UHJvb2Y6XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVmVyaWZ5VmFsaWRpdHlQcm9vZjpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5WZXJpZnlSYW5nZVByb29mOlxuICAgICAgICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goaW5zdHJ1Y3Rpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBDcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50IChpZGVtcG90ZW50KSBpbnN0cnVjdGlvbiB0byB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIENUIGVuYWJsZW1lbnQgb25seSDigJQgdGhlIEFUQSBtdXN0IGV4aXN0IGJlZm9yZSBDb25maWd1cmVBY2NvdW50OyBhZGQgdGhpc1xuICAgKiBmaXJzdCB3aGVuIHRoZSBBVEEgaXMgbm90IHlldCBvbi1jaGFpbi4gRm9yIFRva2VuLTIwMjIgbWludHMgcGFzc1xuICAgKiBgcHJvZ3JhbUlkYCBzbyB0aGUgQVRBIGlzIGNyZWF0ZWQgdW5kZXIgdGhlIFRva2VuLTIwMjIgcHJvZ3JhbS5cbiAgICovXG4gIGNyZWF0ZUF0YShwYXJhbXM6IEF0YUluaXRbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgYXNzZXJ0KHBhcmFtcy5taW50QWRkcmVzcywgJ01pc3NpbmcgbWludEFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmF0YUFkZHJlc3MsICdNaXNzaW5nIGF0YUFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLm93bmVyQWRkcmVzcywgJ01pc3Npbmcgb3duZXJBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5wYXllckFkZHJlc3MsICdNaXNzaW5nIHBheWVyQWRkcmVzcyBwYXJhbScpO1xuXG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50LFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIENvbmZpZ3VyZUFjY291bnQgcmVxdWlyZXMgdGhlIENvbmZpZGVudGlhbFRyYW5zZmVyQWNjb3VudCBleHRlbnNpb24sIHdoaWNoIGFuIEFUQSBkb2VzXG4gICAgLy8gbm90IGNhcnJ5IOKAlCBSZWFsbG9jYXRlIGFkZHMgaXQgYW5kIG11c3QgcnVuIGJlZm9yZSBDb25maWd1cmVBY2NvdW50LlxuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuUmVhbGxvY2F0ZUNvbmZpZGVudGlhbFRyYW5zZmVyQWNjb3VudCxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0b2tlbkFkZHJlc3M6IHBhcmFtcy5hdGFBZGRyZXNzLFxuICAgICAgICBwYXllckFkZHJlc3M6IHBhcmFtcy5wYXllckFkZHJlc3MsXG4gICAgICAgIG93bmVyQWRkcmVzczogcGFyYW1zLm93bmVyQWRkcmVzcyxcbiAgICAgICAgcHJvZ3JhbUlkOiBwYXJhbXMucHJvZ3JhbUlkLFxuICAgICAgICBtaW50SGFzVHJhbnNmZXJGZWVDb25maWc6IHBhcmFtcy5taW50SGFzVHJhbnNmZXJGZWVDb25maWcsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIENvbmZpZ3VyZUFjY291bnQgaW5zdHJ1Y3Rpb24gdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBPbmUtdGltZSBBVEEgc2V0dXAg4oCUIHJlZ2lzdGVycyB0aGUgQUVTIHplcm8gY2lwaGVydGV4dCBhbmQgcGVuZGluZy1iYWxhbmNlIGNvdW50ZXI7IHRoZVxuICAgKiBFbEdhbWFsIHB1YmtleSBpcyB0YWtlbiBmcm9tIHRoZSBhY2NvbXBhbnlpbmcgVmVyaWZ5UHVia2V5VmFsaWRpdHkgcHJvb2YuXG4gICAqL1xuICBjb25maWd1cmVBY2NvdW50KHBhcmFtczogQ29uZmlndXJlQ29uZmlkZW50aWFsVHJhbnNmZXJBY2NvdW50WydwYXJhbXMnXSk6IHRoaXMge1xuICAgIGFzc2VydChwYXJhbXMudG9rZW5BZGRyZXNzLCAnTWlzc2luZyB0b2tlbkFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLm1pbnRBZGRyZXNzLCAnTWlzc2luZyBtaW50QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuYXV0aG9yaXR5QWRkcmVzcywgJ01pc3NpbmcgYXV0aG9yaXR5QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuZGVjcnlwdGFibGVaZXJvQmFsYW5jZSwgJ01pc3NpbmcgZGVjcnlwdGFibGVaZXJvQmFsYW5jZSBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMubWF4aW11bVBlbmRpbmdCYWxhbmNlQ3JlZGl0Q291bnRlciwgJ01pc3NpbmcgbWF4aW11bVBlbmRpbmdCYWxhbmNlQ3JlZGl0Q291bnRlciBwYXJhbScpO1xuXG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Db25maWd1cmVDb25maWRlbnRpYWxUcmFuc2ZlckFjY291bnQsXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIEFwcGx5UGVuZGluZ0JhbGFuY2UgaW5zdHJ1Y3Rpb24gdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBDcmVkaXRzIHBlbmRpbmcgYmFsYW5jZSBpbnRvIGF2YWlsYWJsZSBiYWxhbmNlLiBJZGVtcG90ZW50IChuby1vcCBpZiAwIHBlbmRpbmcpLlxuICAgKiBJbiB2MSB0cmFuc2FjdGlvbnMsIHRoaXMgc2hvdWxkIGFsd2F5cyBiZSBpbnN0cnVjdGlvbiAjMS5cbiAgICovXG4gIGFwcGx5UGVuZGluZ0JhbGFuY2UocGFyYW1zOiBBcHBseVBlbmRpbmdCYWxhbmNlWydwYXJhbXMnXSk6IHRoaXMge1xuICAgIGFzc2VydChwYXJhbXMudG9rZW5BZGRyZXNzLCAnTWlzc2luZyB0b2tlbkFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmF1dGhvcml0eUFkZHJlc3MsICdNaXNzaW5nIGF1dGhvcml0eUFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmV4cGVjdGVkUGVuZGluZ0JhbGFuY2VDcmVkaXRDb3VudGVyLCAnTWlzc2luZyBleHBlY3RlZFBlbmRpbmdCYWxhbmNlQ3JlZGl0Q291bnRlciBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMubmV3RGVjcnlwdGFibGVBdmFpbGFibGVCYWxhbmNlLCAnTWlzc2luZyBuZXdEZWNyeXB0YWJsZUF2YWlsYWJsZUJhbGFuY2UgcGFyYW0nKTtcblxuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQXBwbHlQZW5kaW5nQmFsYW5jZSxcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBEZXBvc2l0IGluc3RydWN0aW9uIHRvIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogTW92ZXMgcHVibGljIFNQTCB0b2tlbnMgaW50byBjb25maWRlbnRpYWwgcGVuZGluZyBiYWxhbmNlLiBObyBwcm9vZiByZXF1aXJlZC5cbiAgICovXG4gIGNvbmZpZGVudGlhbERlcG9zaXQocGFyYW1zOiBDb25maWRlbnRpYWxEZXBvc2l0WydwYXJhbXMnXSk6IHRoaXMge1xuICAgIGFzc2VydChwYXJhbXMudG9rZW5BZGRyZXNzLCAnTWlzc2luZyB0b2tlbkFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLm1pbnRBZGRyZXNzLCAnTWlzc2luZyBtaW50QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuYXV0aG9yaXR5QWRkcmVzcywgJ01pc3NpbmcgYXV0aG9yaXR5QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuYW1vdW50LCAnTWlzc2luZyBhbW91bnQgcGFyYW0nKTtcblxuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ29uZmlkZW50aWFsRGVwb3NpdCxcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBXaXRoZHJhdyBpbnN0cnVjdGlvbiB0byB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIE1vdmVzIGNvbmZpZGVudGlhbCBhdmFpbGFibGUgYmFsYW5jZSB0byBwdWJsaWMgYmFsYW5jZS5cbiAgICogUmVxdWlyZXMgZXF1YWxpdHkgKyByYW5nZSBwcm9vZiB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zLlxuICAgKi9cbiAgY29uZmlkZW50aWFsV2l0aGRyYXcocGFyYW1zOiBDb25maWRlbnRpYWxXaXRoZHJhd1sncGFyYW1zJ10pOiB0aGlzIHtcbiAgICBhc3NlcnQocGFyYW1zLnRva2VuQWRkcmVzcywgJ01pc3NpbmcgdG9rZW5BZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5taW50QWRkcmVzcywgJ01pc3NpbmcgbWludEFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmF1dGhvcml0eUFkZHJlc3MsICdNaXNzaW5nIGF1dGhvcml0eUFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmFtb3VudCwgJ01pc3NpbmcgYW1vdW50IHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5uZXdEZWNyeXB0YWJsZUF2YWlsYWJsZUJhbGFuY2UsICdNaXNzaW5nIG5ld0RlY3J5cHRhYmxlQXZhaWxhYmxlQmFsYW5jZSBwYXJhbScpO1xuXG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Db25maWRlbnRpYWxXaXRoZHJhdyxcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBjb25maWRlbnRpYWwgVHJhbnNmZXIgaW5zdHJ1Y3Rpb24gdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBSZXF1aXJlcyBlcXVhbGl0eSArIGNpcGhlcnRleHQgdmFsaWRpdHkgKyByYW5nZSBwcm9vZiB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zLlxuICAgKi9cbiAgY29uZmlkZW50aWFsVHJhbnNmZXIocGFyYW1zOiBDb25maWRlbnRpYWxUcmFuc2ZlclsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICBhc3NlcnQocGFyYW1zLnNvdXJjZVRva2VuQWRkcmVzcywgJ01pc3Npbmcgc291cmNlVG9rZW5BZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5taW50QWRkcmVzcywgJ01pc3NpbmcgbWludEFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmRlc3RpbmF0aW9uVG9rZW5BZGRyZXNzLCAnTWlzc2luZyBkZXN0aW5hdGlvblRva2VuQWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMuYXV0aG9yaXR5QWRkcmVzcywgJ01pc3NpbmcgYXV0aG9yaXR5QWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMubmV3U291cmNlRGVjcnlwdGFibGVBdmFpbGFibGVCYWxhbmNlLCAnTWlzc2luZyBuZXdTb3VyY2VEZWNyeXB0YWJsZUF2YWlsYWJsZUJhbGFuY2UgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLnRyYW5zZmVyQW1vdW50QXVkaXRvckNpcGhlcnRleHRMbywgJ01pc3NpbmcgdHJhbnNmZXJBbW91bnRBdWRpdG9yQ2lwaGVydGV4dExvIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy50cmFuc2ZlckFtb3VudEF1ZGl0b3JDaXBoZXJ0ZXh0SGksICdNaXNzaW5nIHRyYW5zZmVyQW1vdW50QXVkaXRvckNpcGhlcnRleHRIaSBwYXJhbScpO1xuXG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Db25maWRlbnRpYWxUcmFuc2ZlcixcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBWZXJpZnlQdWJrZXlWYWxpZGl0eSBwcm9vZiBpbnN0cnVjdGlvbiAodXNlZCB3aXRoIENvbmZpZ3VyZUFjY291bnQpLlxuICAgKi9cbiAgdmVyaWZ5UHVia2V5VmFsaWRpdHkocGFyYW1zOiBWZXJpZnlQdWJrZXlWYWxpZGl0eVsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlZlcmlmeVB1YmtleVZhbGlkaXR5LFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIFZlcmlmeUNpcGhlcnRleHRDb21taXRtZW50RXF1YWxpdHkgcHJvb2YgaW5zdHJ1Y3Rpb24gKHVzZWQgd2l0aCBUcmFuc2ZlciBhbmQgV2l0aGRyYXcpLlxuICAgKi9cbiAgdmVyaWZ5RXF1YWxpdHlQcm9vZihwYXJhbXM6IFZlcmlmeUVxdWFsaXR5UHJvb2ZbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5WZXJpZnlFcXVhbGl0eVByb29mLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIFZlcmlmeUJhdGNoZWRHcm91cGVkQ2lwaGVydGV4dDNIYW5kbGVzVmFsaWRpdHkgcHJvb2YgaW5zdHJ1Y3Rpb24gKHVzZWQgd2l0aCBUcmFuc2ZlcikuXG4gICAqL1xuICB2ZXJpZnlWYWxpZGl0eVByb29mKHBhcmFtczogVmVyaWZ5VmFsaWRpdHlQcm9vZlsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlZlcmlmeVZhbGlkaXR5UHJvb2YsXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgVmVyaWZ5QmF0Y2hlZFJhbmdlUHJvb2ZVMTI4IHByb29mIGluc3RydWN0aW9uICh1c2VkIHdpdGggVHJhbnNmZXIpLlxuICAgKi9cbiAgdmVyaWZ5UmFuZ2VQcm9vZihwYXJhbXM6IFZlcmlmeVJhbmdlUHJvb2ZbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5WZXJpZnlSYW5nZVByb29mLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fY3RJbnN0cnVjdGlvbnMubGVuZ3RoID4gMCwgJ0F0IGxlYXN0IG9uZSBjb25maWRlbnRpYWwgdHJhbnNmZXIgaW5zdHJ1Y3Rpb24gbXVzdCBiZSBzcGVjaWZpZWQnKTtcblxuICAgIGlmICh0aGlzLl92ZXJzaW9uID09PSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsZFYxKCk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFsuLi50aGlzLl9jdEluc3RydWN0aW9uc107XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgdjEgKFNJTUQtMDI5Ni8wMzg1KSBjb25maWRlbnRpYWwgdHJhbnNmZXIgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEFzc2VtYmxlcyB0aGUgQ1QgaW5zdHJ1Y3Rpb25zIHZpYSB0aGUgc2hhcmVkIGluc3RydWN0aW9uIGZhY3RvcnksIGNvbXBpbGVzXG4gICAqIGFuZCBzZXJpYWxpemVzIGEgdjEgbWVzc2FnZSB3aXRoIHRoZSBpbmxpbmUgdHJhbnNhY3Rpb24gY29uZmlnLCBzaWducyB0aGVcbiAgICogbWVzc2FnZSBieXRlcyB3aXRoIHRoZSBidWlsZGVyJ3Mgc2lnbmVycywgYW5kIHN0b3JlcyB0aGUgcmVzdWx0aW5nIHdpcmVcbiAgICogYnl0ZXMgZm9yIGJyb2FkY2FzdC4gQWxzbyBwb3B1bGF0ZXMgYSBtZXRhZGF0YS1vbmx5IFNvbFRyYW5zYWN0aW9uIHNvIHRoZVxuICAgKiB0cmFuc2FjdGlvbiBKU09OIGFuZCBpbnB1dC9vdXRwdXQgZXh0cmFjdGlvbiByZW1haW4gdXNhYmxlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb259IFRoZSBidWlsdCB0cmFuc2FjdGlvbiBob2xkaW5nIHRoZSB2MSB3aXJlIGJ5dGVzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkVjEoKTogVHJhbnNhY3Rpb24ge1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3NlbmRlciBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3JlY2VudEJsb2NraGFzaCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigncmVjZW50IGJsb2NraGFzaCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3YxVHJhbnNhY3Rpb25Db25maWcsICd0cmFuc2FjdGlvbkNvbmZpZyBpcyByZXF1aXJlZCB0byBidWlsZCBhIHYxIGNvbmZpZGVudGlhbCB0cmFuc2ZlciB0cmFuc2FjdGlvbicpO1xuXG4gICAgLy8gQXBwbHlQZW5kaW5nQmFsYW5jZSBtdXN0IHJlbWFpbiBpbnN0cnVjdGlvbiAjMSBpbiB2MSBzcGVuZCB0eHMgKGl0IGlzIGlkZW1wb3RlbnQpLFxuICAgIC8vIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIHRoZSBjYWxsZXIgYWRkZWQgaW5zdHJ1Y3Rpb25zLlxuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zID0gW1xuICAgICAgLi4udGhpcy5fY3RJbnN0cnVjdGlvbnMuZmlsdGVyKChpKSA9PiBpLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkFwcGx5UGVuZGluZ0JhbGFuY2UpLFxuICAgICAgLi4udGhpcy5fY3RJbnN0cnVjdGlvbnMuZmlsdGVyKChpKSA9PiBpLnR5cGUgIT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkFwcGx5UGVuZGluZ0JhbGFuY2UpLFxuICAgIF07XG5cbiAgICBjb25zdCBpbnN0cnVjdGlvbnM6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSA9IFtdO1xuXG4gICAgLy8gRHVyYWJsZSBub25jZTogdGhlIEFkdmFuY2VOb25jZUFjY291bnQgaW5zdHJ1Y3Rpb24gTVVTVCBiZSBwYXJ0IG9mIHRoZVxuICAgIC8vIG1lc3NhZ2UgKGEgYmFyZSBub25jZSBoYXNoIHdpdGhvdXQgdGhlIGluc3RydWN0aW9uIGlzIGludmFsaWQpLiBJdCBpc1xuICAgIC8vIHBsYWNlZCBmaXJzdCwgbWF0Y2hpbmcgdGhlIHYwIHdlYjMuanMgYW5kIHYxIHBheW1lbnQtYnVpbGRlciBjb252ZW50aW9uLlxuICAgIGlmICh0aGlzLl9ub25jZUluZm8pIHtcbiAgICAgIGluc3RydWN0aW9ucy5wdXNoKFxuICAgICAgICBidWlsZEFkdmFuY2VOb25jZUFjY291bnRJbnN0cnVjdGlvbihcbiAgICAgICAgICB0aGlzLl9ub25jZUluZm8ucGFyYW1zLndhbGxldE5vbmNlQWRkcmVzcyxcbiAgICAgICAgICB0aGlzLl9ub25jZUluZm8ucGFyYW1zLmF1dGhXYWxsZXRBZGRyZXNzXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBpbnN0cnVjdGlvbiBvZiB0aGlzLl9jdEluc3RydWN0aW9ucykge1xuICAgICAgaW5zdHJ1Y3Rpb25zLnB1c2goLi4uc29sSW5zdHJ1Y3Rpb25GYWN0b3J5KGluc3RydWN0aW9uLCB0aGlzLl96a1Byb29mUHJvZ3JhbUlkKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX21lbW8pIHtcbiAgICAgIGNvbnN0IG1lbW9EYXRhOiBNZW1vID0ge1xuICAgICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5NZW1vLFxuICAgICAgICBwYXJhbXM6IHsgbWVtbzogdGhpcy5fbWVtbyB9LFxuICAgICAgfTtcbiAgICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2gobWVtb0RhdGEpO1xuICAgICAgaW5zdHJ1Y3Rpb25zLnB1c2goLi4uc29sSW5zdHJ1Y3Rpb25GYWN0b3J5KG1lbW9EYXRhKSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmVlUGF5ZXIgPSB0aGlzLl9mZWVQYXllciA/IG5ldyBQdWJsaWNLZXkodGhpcy5fZmVlUGF5ZXIpIDogbmV3IFB1YmxpY0tleSh0aGlzLl9zZW5kZXIpO1xuICAgIGNvbnN0IG1lc3NhZ2VCeXRlcyA9IGNvbXBpbGVUcmFuc2FjdGlvbk1lc3NhZ2Uoe1xuICAgICAgdmVyc2lvbjogMSxcbiAgICAgIGluc3RydWN0aW9ucyxcbiAgICAgIGZlZVBheWVyLFxuICAgICAgcmVjZW50QmxvY2toYXNoOiB0aGlzLl9yZWNlbnRCbG9ja2hhc2gsXG4gICAgICB0cmFuc2FjdGlvbkNvbmZpZzogdGhpcy5fdjFUcmFuc2FjdGlvbkNvbmZpZyxcbiAgICB9KTtcblxuICAgIC8vIFNpZ25lciBvcmRlciBjb21lcyBmcm9tIHRoZSBjb21waWxlZCBtZXNzYWdlOiB0aGUgZmlyc3RcbiAgICAvLyBudW1TaWduZXJBY2NvdW50cyBzdGF0aWMgYWNjb3VudHMgYXJlIHRoZSByZXF1aXJlZCBzaWduZXJzIChmZWUgcGF5ZXJcbiAgICAvLyBmaXJzdCwgdGhlbiB0aGUgcmVtYWluaW5nIHNpZ25lcnMgaW4gdGhlIGNvbXBpbGVkIGFjY291bnQgb3JkZXIpLiBNaXNzaW5nXG4gICAgLy8gc2lnbmF0dXJlcyBhcmUgemVyby1maWxsZWQgc28gdW5zaWduZWQvcGFydGlhbCBidWlsZHMga2VlcCBhIHZhbGlkIHdpcmVcbiAgICAvLyBzaGFwZSBmb3IgdGhlIHNlcnZlci1zaWRlIHNpZ24gcGF0aCAobm90IGJyb2FkY2FzdGFibGUgdW50aWwgZmlsbGVkKS5cbiAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlVjFNZXNzYWdlKG1lc3NhZ2VCeXRlcyk7XG4gICAgY29uc3Qgc2lnbmVyQWRkcmVzc2VzID0gZGVjb2RlZC5zdGF0aWNBY2NvdW50cy5zbGljZSgwLCBkZWNvZGVkLmhlYWRlci5udW1TaWduZXJBY2NvdW50cyk7XG5cbiAgICBjb25zdCBzaWduYXR1cmVzOiBVaW50OEFycmF5W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGFkZHJlc3Mgb2Ygc2lnbmVyQWRkcmVzc2VzKSB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gdGhpcy5fc2lnbmVycy5maW5kKChzaWduZXIpID0+IHNpZ25lci5nZXRLZXlzKCkucHViID09PSBhZGRyZXNzKTtcbiAgICAgIGlmIChrZXlQYWlyKSB7XG4gICAgICAgIGNvbnN0IHNlY3JldEtleSA9IGtleVBhaXIuZ2V0S2V5cyh0cnVlKS5wcnY7XG4gICAgICAgIGFzc2VydChzZWNyZXRLZXkgaW5zdGFuY2VvZiBVaW50OEFycmF5LCAnTWlzc2luZyBwcml2YXRlIGtleScpO1xuICAgICAgICBzaWduYXR1cmVzLnB1c2gobmFjbC5zaWduLmRldGFjaGVkKG1lc3NhZ2VCeXRlcywgc2VjcmV0S2V5KSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgYWRkaXRpb25hbCA9IHRoaXMuZ2V0QWRkaXRpb25hbFNpZ25hdHVyZXMoKS5maW5kKChzaWcpID0+IHNpZy5wdWJsaWNLZXkucHViID09PSBhZGRyZXNzKTtcbiAgICAgIGlmIChhZGRpdGlvbmFsKSB7XG4gICAgICAgIHNpZ25hdHVyZXMucHVzaChuZXcgVWludDhBcnJheShhZGRpdGlvbmFsLnNpZ25hdHVyZSkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIE1pc3Npbmcgc2lnbmF0dXJlOiB6ZXJvLWZpbGwgdGhlIHNsb3Qgc28gdGhlIHdpcmUgc2hhcGUgc3RheXMgdmFsaWRcbiAgICAgIC8vIGZvciBwYXJ0aWFsLXNpZ24gZmxvd3M7IHRoZSB0cmFuc2FjdGlvbiBpcyBub3QgYnJvYWRjYXN0YWJsZSB1bnRpbFxuICAgICAgLy8gZXZlcnkgcmVxdWlyZWQgc2lnbmVyIGhhcyBhIHNpZ25hdHVyZS5cbiAgICAgIHNpZ25hdHVyZXMucHVzaChuZXcgVWludDhBcnJheSg2NCkpO1xuICAgIH1cblxuICAgIGNvbnN0IHYxV2lyZSA9IHNlcmlhbGl6ZVdpcmVUcmFuc2FjdGlvbihtZXNzYWdlQnl0ZXMsIHNpZ25hdHVyZXMpO1xuXG4gICAgdGhpcy5fdHJhbnNhY3Rpb24udjFUcmFuc2FjdGlvbkJ5dGVzID0gdjFXaXJlO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnYxTWVzc2FnZUJ5dGVzID0gbWVzc2FnZUJ5dGVzO1xuXG4gICAgLy8gUG9wdWxhdGUgYSBtZXRhZGF0YS1vbmx5IFNvbFRyYW5zYWN0aW9uIHNvIHRvSnNvbiAvIGxvYWRJbnB1dHNBbmRPdXRwdXRzIHdvcmsuXG4gICAgLy8gVGhlIGR1cmFibGUgbm9uY2UgaXMgY2FycmllZCB2aWEgbm9uY2VJbmZvLCBtYXRjaGluZyB0aGUgdjAgbW9kZWwuXG4gICAgY29uc3QgbWV0YVR4ID0gbmV3IFNvbFRyYW5zYWN0aW9uKCk7XG4gICAgbWV0YVR4LmZlZVBheWVyID0gZmVlUGF5ZXI7XG4gICAgbWV0YVR4LnJlY2VudEJsb2NraGFzaCA9IHRoaXMuX3JlY2VudEJsb2NraGFzaDtcbiAgICBpZiAodGhpcy5fbm9uY2VJbmZvKSB7XG4gICAgICBtZXRhVHgubm9uY2VJbmZvID0ge1xuICAgICAgICBub25jZTogdGhpcy5fcmVjZW50QmxvY2toYXNoLFxuICAgICAgICBub25jZUluc3RydWN0aW9uOiBidWlsZEFkdmFuY2VOb25jZUFjY291bnRJbnN0cnVjdGlvbihcbiAgICAgICAgICB0aGlzLl9ub25jZUluZm8ucGFyYW1zLndhbGxldE5vbmNlQWRkcmVzcyxcbiAgICAgICAgICB0aGlzLl9ub25jZUluZm8ucGFyYW1zLmF1dGhXYWxsZXRBZGRyZXNzXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cbiAgICBtZXRhVHguYWRkKC4uLmluc3RydWN0aW9ucyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uc29sVHJhbnNhY3Rpb24gPSBtZXRhVHg7XG5cbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUodGhpcy50cmFuc2FjdGlvblR5cGUpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNldEluc3RydWN0aW9uc0RhdGEodGhpcy5fY3RJbnN0cnVjdGlvbnMpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cbn1cbiJdfQ==
|
|
@@ -237,6 +237,11 @@ export interface AtaInit {
|
|
|
237
237
|
payerAddress: string;
|
|
238
238
|
tokenName: string;
|
|
239
239
|
programId?: string;
|
|
240
|
+
/**
|
|
241
|
+
* True when the mint carries `TransferFeeConfig`. The ATA then also needs room for the
|
|
242
|
+
* ConfidentialTransferFeeAmount extension, so the bundled Reallocate reserves it.
|
|
243
|
+
*/
|
|
244
|
+
mintHasTransferFeeConfig?: boolean;
|
|
240
245
|
};
|
|
241
246
|
}
|
|
242
247
|
export interface ReallocateConfidentialTransferAccount {
|
|
@@ -247,6 +252,11 @@ export interface ReallocateConfidentialTransferAccount {
|
|
|
247
252
|
payerAddress: string;
|
|
248
253
|
ownerAddress: string;
|
|
249
254
|
programId?: string;
|
|
255
|
+
/**
|
|
256
|
+
* True when the mint carries `TransferFeeConfig`. ConfigureAccount initializes
|
|
257
|
+
* ConfidentialTransferFeeAmount for such mints, so its 68 bytes must be reserved here.
|
|
258
|
+
*/
|
|
259
|
+
mintHasTransferFeeConfig?: boolean;
|
|
250
260
|
};
|
|
251
261
|
}
|
|
252
262
|
export interface AtaClose {
|
|
@@ -329,6 +339,9 @@ export interface TransactionExplanation extends BaseTransactionExplanation {
|
|
|
329
339
|
* Layout: [27][2] + decryptable_zero_balance(36) + maximum_pending_balance_credit_counter(u64) + proof_instruction_offset(i8) = 47 bytes
|
|
330
340
|
*
|
|
331
341
|
* Accounts: [token(writable), mint, instructionsSysvar|contextState, authority(signer)]
|
|
342
|
+
*
|
|
343
|
+
* The account's ElGamal pubkey is not part of the instruction data — Token-2022 takes it
|
|
344
|
+
* from the accompanying VerifyPubkeyValidity proof context.
|
|
332
345
|
*/
|
|
333
346
|
export interface ConfigureConfidentialTransferAccount {
|
|
334
347
|
type: InstructionBuilderTypes.ConfigureConfidentialTransferAccount;
|
|
@@ -336,8 +349,6 @@ export interface ConfigureConfidentialTransferAccount {
|
|
|
336
349
|
tokenAddress: string;
|
|
337
350
|
mintAddress: string;
|
|
338
351
|
authorityAddress: string;
|
|
339
|
-
/** 32-byte ElGamal pubkey registered on the token account (hex). */
|
|
340
|
-
elgamalPubkey: string;
|
|
341
352
|
/** Instructions sysvar (inline proof) or context state account (pre-verified proof). Defaults to instructions sysvar. */
|
|
342
353
|
instructionsSysvarOrContextStateAddress?: string;
|
|
343
354
|
/** AES-encrypted zero balance (36 bytes hex). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,sBAAsB,IAAI,0BAA0B,EACpD,SAAS,EACT,cAAc,EACd,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAGhG,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AACD,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,CAAC,EAAE,oBAAoB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;IAEjB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;CACvC;AAED,MAAM,MAAM,iBAAiB,GACzB,KAAK,GACL,IAAI,GACJ,UAAU,GACV,mBAAmB,GACnB,cAAc,GACd,QAAQ,GACR,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,OAAO,GACP,qCAAqC,GACrC,QAAQ,GACR,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,MAAM,GACN,IAAI,GACJ,OAAO,GACP,iBAAiB,GACjB,0BAA0B,GAC1B,4BAA4B,GAC5B,oCAAoC,GACpC,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC;IACnC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,uBAAuB,CAAC,YAAY,CAAC;IAC3C,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,uBAAuB,CAAC,kBAAkB,CAAC;IACjD,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5F;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC;IACvC,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,uBAAuB,CAAC,aAAa,CAAC;IAC5C,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,8CAA8C;QAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;QACb;;;;WAIG;QACH,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,CAAC;KAC3C,CAAC;CACH;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,uBAAuB,CAAC,4BAA4B,CAAC;IAC3D,MAAM,EAAE;QACN,4DAA4D;QAC5D,SAAS,EAAE,MAAM,CAAC;QAClB,6DAA6D;QAC7D,IAAI,EAAE,MAAM,CAAC;QACb,uCAAuC;QACvC,YAAY,EAAE,MAAM,CAAC;QACrB,sCAAsC;QACtC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,6DAA6D;QAC7D,aAAa,EAAE,MAAM,CAAC;QACtB,gFAAgF;QAChF,WAAW,EAAE,MAAM,CAAC;QACpB,6EAA6E;QAC7E,UAAU,EAAE,MAAM,CAAC;QACnB,yEAAyE;QACzE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,sEAAsE;QACtE,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB;;;;WAIG;QACH,aAAa,EAAE,gBAAgB,EAAE,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC;IACnC,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC;IACtC,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,uBAAuB,CAAC;IACvC,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,uBAAuB,CAAC,eAAe,CAAC;IAC9C,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,kBAAkB,CAAC;QAChC,WAAW,CAAC,EAAE,0BAA0B,CAAC;KAC1C,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,uBAAuB,CAAC,eAAe,CAAC;IAC9C,MAAM,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5E;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,0BAA0B,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;IAChD,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,kBAAkB,CAAC;QAChC,WAAW,CAAC,EAAE,4BAA4B,CAAC;QAC3C,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,uBAAuB,CAAC,eAAe,CAAC;IAC9C,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;IAC/C,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,MAAC;QACpB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,uBAAuB,CAAC,mBAAmB,CAAC;IAClD,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,uBAAuB,CAAC,cAAc,CAAC;IAC7C,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,uBAAuB,CAAC,4BAA4B,CAAC;IAC3D,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;WAGG;QACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;CACH;AAED,MAAM,WAAW,qCAAqC;IACpD,IAAI,EAAE,uBAAuB,CAAC,qCAAqC,CAAC;IACpE,MAAM,EAAE;QACN,8EAA8E;QAC9E,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;WAGG;QACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,uBAAuB,CAAC,2BAA2B,CAAC;IAC1D,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,0EAA0E;QAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,uBAAuB,CAAC,mCAAmC,CAAC;IAClE,MAAM,EAAE;QACN,oBAAoB,EAAE,MAAM,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,yBAAyB,EAAE,MAAM,CAAC;QAClC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,oBAAoB,GACpB,wBAAwB,GACxB,MAAM,GACN,kCAAkC,GAClC,6BAA6B,GAC7B,qCAAqC,GACrC,8BAA8B,GAC9B,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,QAAQ,GACR,MAAM,GACN,SAAS,GACT,mBAAmB,GACnB,8BAA8B,GAC9B,sCAAsC,GACtC,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,qBAAqB,GACrB,qBAAqB,GACrB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;IAChD,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,uBAAuB,CAAC,0BAA0B,CAAC;IACzD,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,qBAAqB,EAAE,uBAAuB,EAAE,CAAC;IACjD,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE;QACb,qBAAqB,EAAE,MAAM,CAAC;QAC9B,yBAAyB,EAAE,MAAM,CAAC;QAClC,2BAA2B,EAAE,MAAM,CAAC;KACrC,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IAErB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAID;;;;;;;;;GASG;AACH,MAAM,WAAW,oCAAoC;IACnD,IAAI,EAAE,uBAAuB,CAAC,oCAAoC,CAAC;IACnE,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,yHAAyH;QACzH,uCAAuC,CAAC,EAAE,MAAM,CAAC;QACjD,iDAAiD;QACjD,sBAAsB,EAAE,MAAM,CAAC;QAC/B,2EAA2E;QAC3E,kCAAkC,EAAE,MAAM,CAAC;QAC3C,iHAAiH;QACjH,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,uBAAuB,CAAC,mBAAmB,CAAC;IAClD,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,iFAAiF;QACjF,mCAAmC,EAAE,MAAM,CAAC;QAC5C,0DAA0D;QAC1D,8BAA8B,EAAE,MAAM,CAAC;KACxC,CAAC;CACH;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,uBAAuB,CAAC,mBAAmB,CAAC;IAClD,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,uCAAuC;QACvC,MAAM,EAAE,MAAM,CAAC;QACf,wCAAwC;QACxC,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,uBAAuB,CAAC,oBAAoB,CAAC;IACnD,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gGAAgG;QAChG,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,0FAA0F;QAC1F,gCAAgC,CAAC,EAAE,MAAM,CAAC;QAC1C,uFAAuF;QACvF,6BAA6B,CAAC,EAAE,MAAM,CAAC;QACvC,wCAAwC;QACxC,MAAM,EAAE,MAAM,CAAC;QACf,wCAAwC;QACxC,QAAQ,EAAE,MAAM,CAAC;QACjB,2EAA2E;QAC3E,8BAA8B,EAAE,MAAM,CAAC;QACvC,+FAA+F;QAC/F,8BAA8B,EAAE,MAAM,CAAC;QACvC,uFAAuF;QACvF,2BAA2B,EAAE,MAAM,CAAC;KACrC,CAAC;CACH;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,uBAAuB,CAAC,oBAAoB,CAAC;IACnD,MAAM,EAAE;QACN,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,uBAAuB,EAAE,MAAM,CAAC;QAChC,gBAAgB,EAAE,MAAM,CAAC;QACzB,gGAAgG;QAChG,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,0FAA0F;QAC1F,gCAAgC,CAAC,EAAE,MAAM,CAAC;QAC1C,qGAAqG;QACrG,0CAA0C,CAAC,EAAE,MAAM,CAAC;QACpD,uFAAuF;QACvF,6BAA6B,CAAC,EAAE,MAAM,CAAC;QACvC,mEAAmE;QACnE,oCAAoC,EAAE,MAAM,CAAC;QAC7C,iFAAiF;QACjF,iCAAiC,EAAE,MAAM,CAAC;QAC1C,+EAA+E;QAC/E,iCAAiC,EAAE,MAAM,CAAC;QAC1C,+FAA+F;QAC/F,8BAA8B,EAAE,MAAM,CAAC;QACvC,2GAA2G;QAC3G,wCAAwC,EAAE,MAAM,CAAC;QACjD,wFAAwF;QACxF,2BAA2B,EAAE,MAAM,CAAC;KACrC,CAAC;CACH;AAID;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,uBAAuB,CAAC,oBAAoB,CAAC;IACnD,MAAM,EAAE;QACN,gGAAgG;QAChG,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,6DAA6D;QAC7D,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,+DAA+D;QAC/D,4BAA4B,CAAC,EAAE,MAAM,CAAC;KACvC,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,uBAAuB,CAAC,mBAAmB,CAAC;IAClD,MAAM,EAAE;QACN,gGAAgG;QAChG,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,6DAA6D;QAC7D,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,+DAA+D;QAC/D,4BAA4B,CAAC,EAAE,MAAM,CAAC;QACtC,kEAAkE;QAClE,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,uBAAuB,CAAC,mBAAmB,CAAC;IAClD,MAAM,EAAE;QACN,gGAAgG;QAChG,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,6DAA6D;QAC7D,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,+DAA+D;QAC/D,4BAA4B,CAAC,EAAE,MAAM,CAAC;QACtC,kEAAkE;QAClE,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;IAC/C,MAAM,EAAE;QACN,gGAAgG;QAChG,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,6DAA6D;QAC7D,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,+DAA+D;QAC/D,4BAA4B,CAAC,EAAE,MAAM,CAAC;QACtC,kEAAkE;QAClE,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,qBAAa,uBAAuB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|