@cap-ts/soap-adapter 0.3.0-beta.2 โ†’ 0.3.0-beta.4

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/README.md CHANGED
@@ -9,6 +9,16 @@
9
9
 
10
10
  `@cap-ts/soap-adapter` turns a WSDL operation into a CAP entity: consumers declare the entity in `.cds` with a small set of `@Soap.*` annotations, ship an adapter subclass that shapes the SOAP request/response, and the plugin does the rest โ€” CSRF-safe HTTP routing (`/soap/**`), destination + JWT propagation, filter push-down, XML build/parse, response flattening, and an OData-style JSON response (`@odata.context`, `@odata.count`, `@odata.nextLink`). It is read only: writes are rejected with 405.
11
11
 
12
+ | Area | Features |
13
+ | --- | --- |
14
+ | Model | Seven typed CDS annotations (`@Soap`, `@Soap.operation`, `@Soap.binding`, `@Soap.rootResponse`, `@Soap.path`, `@Soap.filterRestriction`, `@Soap.adapter`), checked by `cds compile` |
15
+ | Adapter hooks | `header()` (SOAP headers), `request()` (input message, push-down sentinels), `response()` (raw rows), `mock()` (offline) |
16
+ | HTTP | `GET /soap/<path>/<Entity>` and `/<Entity>/<key>` with `$select`, `$filter`, `$orderby`, `$top`, `$skip` / `$skiptoken`, `$count`; OData-style JSON; `@requires` enforced |
17
+ | Queries | Fail-closed `$filter` parser, mandatory filter fields, one SOAP call per key value (`multipleSelection: false`), push-down or bounded in-memory evaluation with `@odata.nextLink` |
18
+ | In process | The SOAP service is a CAP service: other services read it with `srv.run(SELECT ...)` or `soap.read(...)` (e.g. `@cap-ts/remote-service-adapter`) |
19
+ | Connectivity | BTP destinations per request and tenant, JWT-based lookup, client cache per service / destination / endpoint / tenant |
20
+ | Security | Inbound credentials never forwarded, forbidden SOAP header keys stripped, redacted logs, WSDL path sandbox, generic 5xx messages |
21
+
12
22
  ---
13
23
 
14
24
  ## ๐Ÿ“‘ Table of Contents
@@ -17,12 +27,15 @@
17
27
  ๐Ÿ“– [Usage Guidelines](#-usage-guidelines)\
18
28
  โšก [Quick start (5 minutes)](#-quick-start-5-minutes)\
19
29
  ๐Ÿ“ [CDS annotation reference (`@Soap.*`)](#-cds-annotation-reference-soap)\
30
+ ๐ŸŒ [HTTP endpoints and query options](#-http-endpoints-and-query-options)\
31
+ ๐Ÿ”— [Using SOAP entities from other services](#-using-soap-entities-from-other-services)\
20
32
  ๐Ÿ”Œ [Adapter class API (`soap.ApplicationService`)](#-adapter-class-api-soapapplicationservice)\
21
33
  ๐Ÿงฐ [Utility API (`soap.*`)](#-utility-api-soap)\
22
- โš™๏ธ [Configuration (`cds.env.soap.*`)](#๏ธ-configuration-cdsenvsoap)\
34
+ โš™๏ธ [Configuration (`cds.env.query.soap.*`)](#๏ธ-configuration-cdsenvquerysoap)\
23
35
  ๐Ÿข [Multi-tenant destinations & JWT propagation](#-multi-tenant-destinations--jwt-propagation)\
24
36
  ๐Ÿ” [Filter push-down & `filterRestriction`](#-filter-push-down--filterrestriction)\
25
37
  ๐Ÿ”’ [Security guarantees](#-security-guarantees)\
38
+ ๐Ÿšฆ [Errors and results](#-errors-and-results)\
26
39
  ๐Ÿ› ๏ธ [Troubleshooting](#๏ธ-troubleshooting)\
27
40
  ๐Ÿ’ฌ [Support & feedback](#-support--feedback)\
28
41
  ๐Ÿ“„ [License](#-license)
@@ -198,12 +211,24 @@ its short name in lower case:
198
211
  system query option is a 400). `@requires` on the service is enforced.
199
212
  - `/soap/bp/BusinessPartner/<key>` โ€” a read by key (404 when nothing comes back).
200
213
 
214
+ Details: [HTTP endpoints and query options](#-http-endpoints-and-query-options).
215
+
201
216
  ---
202
217
 
203
218
  ## ๐Ÿ“ CDS annotation reference (`@Soap.*`)
204
219
 
205
220
  [โ†‘ Table of Contents](#-table-of-contents)
206
221
 
222
+ | Annotation | On | Required | Purpose |
223
+ | --- | --- | --- | --- |
224
+ | `@Soap` | service | No | Marks the service in the model (documentation; `kind: 'soap'` in `cds.requires` is what activates it). |
225
+ | `@Soap.operation: '<Operation>'` | entity | **Yes** | WSDL operation that serves reads. Entities without it are ignored. |
226
+ | `@Soap.binding: { rootRequest, rootResponse }` | entity | No | `rootResponse`: dot path of the response element holding the rows. `rootRequest`: documentation only. |
227
+ | `@Soap.rootResponse: '<path>'` | entity | No | Same as `binding.rootResponse`, takes precedence. Default `<operation>Response`. |
228
+ | `@Soap.path: '<dot.path>'` | element | No | Where the element's value sits in one response entry. Default: the element name. |
229
+ | `@Soap.filterRestriction: { mandatoryFields, multipleSelection }` | entity | No | Fields `$filter` must contain (400 otherwise); `multipleSelection: false` = one SOAP call per key value. |
230
+ | `@Soap.adapter: '<npm specifier>'` | entity / service | No | Adapter module, instead of the `lib/<Service>.{ts,js}` convention. |
231
+
207
232
  All seven annotations (`@Soap` and the six `@Soap.*` below) are declared in the package's `index.cds` under the single canonical top-level namespace. `@Soap` (Boolean) only marks a service in the model; what makes a service SOAP-backed at runtime is `kind: "soap"` in `cds.requires`. They are real CDS typed annotations, so `cds compile` type-checks consumer usage โ€” typos and shape mismatches surface at build time, not at first request.
208
233
 
209
234
  ### `@Soap.binding` *(struct, entity-level)*
@@ -267,7 +292,7 @@ entity BusinessPartner { โ€ฆ }
267
292
  | Field | Type | Behaviour |
268
293
  | ----- | ---- | --------- |
269
294
  | `mandatoryFields` | `array of String` | Property names that MUST appear in `$filter` for the request to be accepted. Missing fields raise a 400 with a diagnostic message that names the field. |
270
- | `multipleSelection` | `Boolean` (default: not set) | Set it to `false` when the SOAP operation accepts only one key value per call. The runtime then expands a `$filter` with `<first key> in (a,b,c)` into one SOAP call per value (in batches of `cds.env.soap.multiSelectionConcurrency`, default 5) and merges the results. A second `in(โ€ฆ)` on the key, or `in(โ€ฆ)` combined with `or`, is a 400 (`UNSUPPORTED_MULTI_SELECTION_FILTER`). When `true` or not set, nothing is expanded and the `request()` hook receives the `in(โ€ฆ)` as is. |
295
+ | `multipleSelection` | `Boolean` (default: not set) | Set it to `false` when the SOAP operation accepts only one key value per call. The runtime then expands a `$filter` with `<first key> in (a,b,c)` into one SOAP call per value (in batches of `cds.env.query.soap.multiSelectionConcurrency`, default 5) and merges the results. A second `in(โ€ฆ)` on the key, or `in(โ€ฆ)` combined with `or`, is a 400 (`UNSUPPORTED_MULTI_SELECTION_FILTER`). When `true` or not set, nothing is expanded and the `request()` hook receives the `in(โ€ฆ)` as is. |
271
296
 
272
297
  See ยง [Filter push-down & `filterRestriction`](#-filter-push-down--filterrestriction) below.
273
298
 
@@ -386,10 +411,18 @@ async init() {
386
411
 
387
412
  - **Sentinel is stripped before SOAP dispatch.** The `__filterPushedDown` key is never forwarded to the backend; the runtime deletes it from a shallow clone of the payload.
388
413
  - **Last writer wins.** If multiple `request()` handlers are registered for the same entity, the sentinel is read from the final merged payload after all handlers have run.
389
- - **Feature-flagged.** Set `cds.env.soap.pushFilters: false` to force the in-memory path even when the sentinel is present.
414
+ - **Feature-flagged.** Set `cds.env.query.soap.pushFilters: false` to force the in-memory path even when the sentinel is present.
390
415
  - **No separate hook needed.** There is no `translateFilter` method to override โ€” the `request()` hook is the single integration point for both payload building and push-down signalling.
391
416
 
392
- **When push-down is not set** (sentinel absent or `pushFilters: false`), the runtime falls back to the bounded in-memory evaluator (`cds.env.soap.pageSize`, default `1000`, capped at `5000`) and emits an `@odata.nextLink` header when the result exceeds one page.
417
+ ### `__skipPagination` sentinel
418
+
419
+ Return `__skipPagination: true` on the `request()` payload (stripped before dispatch like `__filterPushedDown`) when
420
+ the in-memory evaluation must not cut the result to one page: `$filter` / `$orderby` still run in memory, but no page
421
+ cap and no `@odata.nextLink` apply. Callers inside the application can ask for the same with
422
+ `SELECT.__skipPagination = true` on the query (used by `@cap-ts/remote-service-adapter` for association reads that
423
+ need every row).
424
+
425
+ **When push-down is not set** (sentinel absent or `pushFilters: false`), the runtime falls back to the bounded in-memory evaluator (`cds.env.query.soap.pageSize`, default `1000`, capped at `5000`) and emits an `@odata.nextLink` header when the result exceeds one page.
393
426
 
394
427
  ### `this.mock(entity, fn)` โ€” offline / test mock
395
428
 
@@ -627,23 +660,27 @@ Available types: `soap.ReadOptions`, `soap.SoapService`, `soap.CdsEntityDef`, `s
627
660
 
628
661
  ---
629
662
 
630
- ## โš™๏ธ Configuration (`cds.env.soap.*`)
663
+ ## โš™๏ธ Configuration (`cds.env.query.soap.*`)
631
664
 
632
665
  [โ†‘ Table of Contents](#-table-of-contents)
633
666
 
634
- Global runtime knobs live under `cds.env.soap` (i.e., the `cds.soap` key in `package.json` / `.cdsrc.json`).
667
+ Global runtime knobs live under `cds.env.query.soap` (the `cds.query.soap` key in `package.json` / `.cdsrc.json`), next to CAP's own `cds.query.limit`.
635
668
 
636
669
  ```json
637
670
  {
638
671
  "cds": {
639
- "soap": {
640
- "pushFilters": true,
641
- "pageSize": 1000,
642
- "multiSelectionConcurrency": 5,
643
- "idempotency": {
644
- "enabled": false,
645
- "ttl": 300000,
646
- "maxEntries": 1000
672
+ "query": {
673
+ "soap": {
674
+ "pushFilters": true,
675
+ "pageSize": 1000,
676
+ "multiSelectionConcurrency": 5,
677
+ "maxConcurrent": 50,
678
+ "idempotency": {
679
+ "enabled": false,
680
+ "ttlMs": 900000,
681
+ "maxEntries": 10000,
682
+ "allowMissing": true
683
+ }
647
684
  }
648
685
  }
649
686
  }
@@ -652,13 +689,14 @@ Global runtime knobs live under `cds.env.soap` (i.e., the `cds.soap` key in `pac
652
689
 
653
690
  | Key | Type | Default | Description |
654
691
  | --- | ---- | ------- | ----------- |
655
- | `soap.multiSelectionConcurrency` | `number` | `5` | Batch size for the fan-out of `multipleSelection: false` entities: that many SOAP calls run in parallel, batch after batch. |
656
- | `soap.maxConcurrent` | `number` | `50` | Reserved. A per-destination `p-limit` pool is prepared from it, but the request path does not use it yet. |
657
- | `soap.pushFilters` | `boolean` | `true` | Enables the [`__filterPushedDown` sentinel](#__filterpusheddown-sentinel). Set to `false` to force the in-memory `$filter` / `$orderby` / `$top` / `$skip` evaluator even when a `request()` hook sets the sentinel โ€” useful for A/B testing or when a push-down implementation is suspected of misbehaving. |
658
- | `soap.pageSize` | `number` | `1000` | Default page size for the bounded in-memory fallback when the adapter does **not** set the `__filterPushedDown` sentinel (or when `pushFilters: false`). When the filtered result exceeds one page, the runtime emits an `@odata.nextLink` header and logs a one-time-per-service warning. Hard-capped at `5000` regardless of override. |
659
- | `soap.idempotency.enabled` | `boolean` | `false` | Reserved for write-handler support, which is not shipped: the adapter is read only, so this has no effect today. |
660
- | `soap.idempotency.ttl` | `number` (ms) | `300000` | Cache TTL for idempotency keys (5 minutes). |
661
- | `soap.idempotency.maxEntries` | `number` | `1000` | LRU eviction threshold for the idempotency cache. |
692
+ | `query.soap.multiSelectionConcurrency` | `number` | `5` | Batch size for the fan-out of `multipleSelection: false` entities: that many SOAP calls run in parallel, batch after batch. |
693
+ | `query.soap.maxConcurrent` | `number` | `50` | Reserved. A per-destination `p-limit` pool is prepared from it, but the request path does not use it yet. |
694
+ | `query.soap.pushFilters` | `boolean` | `true` | Enables the [`__filterPushedDown` sentinel](#__filterpusheddown-sentinel). Set to `false` to force the in-memory `$filter` / `$orderby` / `$top` / `$skip` evaluator even when a `request()` hook sets the sentinel โ€” useful for A/B testing or when a push-down implementation is suspected of misbehaving. |
695
+ | `query.soap.pageSize` | `number` | `1000` | Default page size for the bounded in-memory fallback when the adapter does **not** set the `__filterPushedDown` sentinel (or when `pushFilters: false`). When the filtered result exceeds one page, the runtime emits an `@odata.nextLink` header and logs a one-time-per-service warning. Hard-capped at `5000` regardless of override. |
696
+ | `query.soap.idempotency.enabled` | `boolean` | `false` | Reserved for write-handler support, which is not shipped: the adapter is read only, so this has no effect today. |
697
+ | `query.soap.idempotency.ttlMs` | `number` (ms) | `900000` | Cache TTL for idempotency keys (15 minutes). |
698
+ | `query.soap.idempotency.maxEntries` | `number` | `10000` | LRU eviction threshold for the idempotency cache. |
699
+ | `query.soap.idempotency.allowMissing` | `boolean` | `true` | Reserved with the rest of `idempotency`: a request without an `X-Idempotency-Key` header is accepted. |
662
700
 
663
701
  Per-service configuration lives in `cds.requires.<ServiceName>`:
664
702
 
@@ -669,6 +707,13 @@ Per-service configuration lives in `cds.requires.<ServiceName>`:
669
707
  | `credentials.destination` | `string` | **Yes** | Destination name, resolved via `@sap-cloud-sdk/connectivity` (BTP destination service, or the `destinations` environment variable locally). Without it the service fails with `No 'credentials.destination' configured`. |
670
708
  | `credentials.path` | `string` | No | Path appended to the destination URL to form the SOAP endpoint. |
671
709
 
710
+ The service is looked up in `cds.requires` by its **short name** (the last segment of the service name).
711
+
712
+ **Boot validation.** At `served` every `kind: 'soap'` service is checked: `wsdl` set, the file exists, and the path stays
713
+ inside `cds.root` (a `../` escape is rejected; `.wsdl` is appended when missing). A failing service is logged
714
+ (`[soap] ... โ€” service disabled.`) and the rest of the application starts; with `cds.env.features.strict: true` boot
715
+ fails instead (use it in CI).
716
+
672
717
  ---
673
718
 
674
719
  ## ๐Ÿข Multi-tenant destinations & JWT propagation
@@ -737,7 +782,7 @@ Two paths are supported. **Prefer the opt-in path (A)** for any adapter that can
737
782
  **Path A โ€” Opt-in via `__filterPushedDown` sentinel (recommended, since 0.1.6).**
738
783
 
739
784
  1. The CAP OData layer parses `$filter` into a CQN `WHERE` array.
740
- 2. Your `request()` hook translates the CQN into the SOAP-native selection criteria and **returns the payload with `__filterPushedDown: true`** set on it (when `cds.env.soap.pushFilters !== false`).
785
+ 2. Your `request()` hook translates the CQN into the SOAP-native selection criteria and **returns the payload with `__filterPushedDown: true`** set on it (when `cds.env.query.soap.pushFilters !== false`).
741
786
  3. The runtime reads and **strips** the sentinel from the payload before the SOAP call โ€” the backend never sees it.
742
787
  4. The in-memory `$filter` / `$orderby` / `$top` / `$skip` evaluator is **skipped** โ€” the SOAP response is treated as the authoritative page. Only `$select` projection and `$count` still run.
743
788
 
@@ -748,7 +793,7 @@ See [`__filterPushedDown` sentinel](#__filterpusheddown-sentinel) for the full c
748
793
  1. The CAP OData layer parses `$filter` into a CQN `WHERE` array.
749
794
  2. The `request()` hook reads what it needs from `req.query.SELECT.where` and builds the payload.
750
795
  3. For `multipleSelection: false` entities with `<first key> in (โ€ฆ)`, the runtime fans out into one SOAP call per value (batches of `multiSelectionConcurrency`) and merges the results.
751
- 4. The SOAP result is filtered / sorted / paginated **in Node memory** by the in-memory evaluator, bounded by `cds.env.soap.pageSize` (default `1000`, capped at `5000`). When the filtered set exceeds one page, an `@odata.nextLink` is emitted so the client can paginate, and a **one-time-per-service** `in-memory pagination fallback truncated โ€ฆ` warning is logged suggesting migration to Path A.
796
+ 4. The SOAP result is filtered / sorted / paginated **in Node memory** by the in-memory evaluator, bounded by `cds.env.query.soap.pageSize` (default `1000`, capped at `5000`). When the filtered set exceeds one page, an `@odata.nextLink` is emitted so the client can paginate, and a **one-time-per-service** `in-memory pagination fallback truncated โ€ฆ` warning is logged suggesting migration to Path A.
752
797
 
753
798
  ### `@Soap.filterRestriction` reference
754
799
 
@@ -757,14 +802,14 @@ See [`__filterPushedDown` sentinel](#__filterpusheddown-sentinel) for the full c
757
802
  mandatoryFields : [ 'CompanyCode', 'FiscalYear' ],
758
803
  multipleSelection : false
759
804
  }
760
- entity e_FinancialDocument { โ€ฆ }
805
+ entity FinancialDocuments { โ€ฆ }
761
806
  ```
762
807
 
763
808
  **`mandatoryFields`** โ€” array of OData property names that MUST be present in `$filter`. A request missing any mandatory field is rejected with HTTP 400 and a diagnostic message:
764
809
 
765
810
  ```http
766
- GET /soap/FI/e_FinancialDocument?$filter=FiscalYear eq '2025'
767
- โ†’ 400 Bad Request: Filter field 'CompanyCode' is mandatory for e_FinancialDocument
811
+ GET /soap/fi/FinancialDocuments?$filter=FiscalYear eq '2025'
812
+ โ†’ 400 { "error": { "code": "MISSING_MANDATORY_FILTER", "message": "Mandatory filter field(s) missing: CompanyCode" } }
768
813
  ```
769
814
 
770
815
  **`multipleSelection`** โ€” controls fan-out behaviour:
@@ -783,6 +828,54 @@ another service, for example `@cap-ts/remote-service-adapter`, which expands ass
783
828
 
784
829
  ---
785
830
 
831
+ ## ๐ŸŒ HTTP endpoints and query options
832
+
833
+ [โ†‘ Table of Contents](#-table-of-contents)
834
+
835
+ Per SOAP entity four GET routes are mounted (`<path>` = the service's `@path`, else its short name in lower case):
836
+
837
+ | Route | Answer |
838
+ | --- | --- |
839
+ | `/soap/<path>/<Entity>` and `/<path>/<Entity>` | `{ "@odata.context", "@odata.count"?, "@odata.nextLink"?, "value": [...] }` |
840
+ | `/soap/<path>/<Entity>/<key>` and `/<path>/<Entity>/<key>` | `{ "@odata.context": "...$entity", ...row }`; 404 `Entity instance not found.` without a row. The key value is compared with the first key element. |
841
+
842
+ Responses are `application/json;odata.metadata=minimal`. Only GET is mounted; writes through the CAP service are 405.
843
+
844
+ | Query option | Behavior |
845
+ | --- | --- |
846
+ | `$filter` | Parsed by a fail-closed parser into CQN: `eq`, `ne`, `gt`, `ge`, `lt`, `le`, `and`, `or`, `not`, `in (...)`, parentheses, string, number (also negative), ISO date-time, boolean and `null` literals, and the functions `startswith`, `endswith`, `contains`, `tolower`, `toupper`, `length`, `concat`, `substring`. Anything else (unknown characters or functions, a function on the left of a comparison, GUID literals, unterminated strings) is a 400, never ignored. `'It''s'` keeps the doubled quote. |
847
+ | `$select` | Projection of the answer. |
848
+ | `$orderby`, `$top`, `$skip` | Applied in memory unless the adapter pushed them down (`__filterPushedDown`). |
849
+ | `$skiptoken` | Treated as `$skip` (so `@odata.nextLink` values work). |
850
+ | `$count=true` | `@odata.count`: the total before paging. |
851
+ | `$search` | Accepted and ignored. |
852
+ | `$expand`, `$apply`, `$format`, any other `$` option | 400 `The system query option "<x>" is not supported by soap endpoint.` |
853
+
854
+ Authentication: when the entity or service has `@requires` (other than `any`), the route runs CAP's auth middleware
855
+ itself (the routes are mounted outside CAP's protocol adapters); no user is 401, a user without one of the roles is 403.
856
+
857
+ ---
858
+
859
+ ## ๐Ÿ”— Using SOAP entities from other services
860
+
861
+ [โ†‘ Table of Contents](#-table-of-contents)
862
+
863
+ The plugin registers each SOAP service as a CAP service (`cds.services.<Name>`), so code in the same application can
864
+ read it like any service:
865
+
866
+ ```js
867
+ const bp = await cds.connect.to('BP');
868
+ const rows = await bp.run(SELECT.from('BP.BusinessPartner').where({ BusinessPartnerID: 'BP001' }));
869
+ ```
870
+
871
+ The same pipeline runs (mandatory filters are checked on the HTTP route only): `request()` hooks, the SOAP call,
872
+ `response()` hooks, `@Soap.path` mapping and the in-memory `$filter` / `$orderby` / paging. For header isolation and
873
+ key de-duplication across nested reads use `soap.read(...)` (below), which creates a fresh request per call. Projections
874
+ over SOAP entities in other services are served by `@cap-ts/remote-service-adapter` (`@remote`), which detects
875
+ `kind: 'soap'` and uses `soap.read`.
876
+
877
+ ---
878
+
786
879
  ## ๐Ÿ”’ Security guarantees
787
880
 
788
881
  [โ†‘ Table of Contents](#-table-of-contents)
@@ -857,16 +950,39 @@ cds.on('bootstrap', (app: any) => {
857
950
 
858
951
  ---
859
952
 
953
+ ## ๐Ÿšฆ Errors and results
954
+
955
+ [โ†‘ Table of Contents](#-table-of-contents)
956
+
957
+ Error bodies are `{ "error": { "code", "message", "@Common.numericSeverity": 4 } }`.
958
+
959
+ | Situation | Status, code |
960
+ | --- | --- |
961
+ | Unsupported system query option, malformed or unsupported `$filter` | 400 |
962
+ | A `mandatoryFields` field missing in `$filter` | 400 `MISSING_MANDATORY_FILTER` |
963
+ | A second `in (...)` on the key, or `in` combined with `or`, on a `multipleSelection: false` entity | 400 `UNSUPPORTED_MULTI_SELECTION_FILTER` |
964
+ | `@requires` set and no authenticated user / user without the role | 401 / 403 |
965
+ | Read by key without a row | 404 `Entity instance not found.` |
966
+ | CREATE / UPDATE / DELETE | 405 |
967
+ | No adapter class resolved for the entity | 501 |
968
+ | SOAP fault, network or destination error, any other failure | 500 `SOAP integration call failed` (details only in the redacted log) |
969
+ | One fan-out call fails | the whole request fails |
970
+ | Empty answer | `value: []` (`@odata.count: 0` with `$count`) |
971
+
972
+ ---
973
+
860
974
  ## ๐Ÿ› ๏ธ Troubleshooting
861
975
 
862
976
  [โ†‘ Table of Contents](#-table-of-contents)
863
977
 
978
+ <!--
864
979
  ### Application does not start: `CAPTS_LICENSE_MISSING` / `CAPTS_LICENSE_INVALID` / `CAPTS_LICENSE_EXPIRED`
865
980
 
866
981
  The licence check of `@cap-ts/soap-adapter` failed in production. The message gives the reason. `MISSING`: `cds.capts.license`
867
982
  is not set (check that the `CDS_CAPTS_LICENSE` variable reached the app: `cds env get capts`). `INVALID`: the token was
868
983
  changed or truncated, does not grant `@cap-ts/soap-adapter`, or is bound to another Cloud Foundry org or space. `EXPIRED`: the
869
984
  grace period is over. Contact SAP-Code-World for a new token. See [Licence](#licence-token).
985
+ -->
870
986
 
871
987
  ### Entity not found / `501 Not Implemented`
872
988
 
@@ -955,7 +1071,7 @@ This enables the `soap` logger's debug output. Payloads that are logged are reda
955
1071
  [โ†‘ Table of Contents](#-table-of-contents)
956
1072
 
957
1073
  This package is provided under the terms of the **SAP-Code-World** [Usage License Agreement](LICENSE).
958
-
1074
+ <!--
959
1075
  ### Licence token
960
1076
 
961
1077
  Using `@cap-ts/soap-adapter` in production needs a licence token from SAP-Code-World. The token is a signed text string. The
@@ -986,8 +1102,8 @@ What happens:
986
1102
  - **Production** means the cds profile `production` (`NODE_ENV=production`, which the Cloud Foundry Node.js buildpack
987
1103
  sets) or running on Cloud Foundry.
988
1104
  - The check only runs when at least one `cds.requires` entry has `kind: "soap"`. An app that only has the package
989
- installed, for example as a peer of `@cap-ts/esi`, needs no licence.
1105
+ installed needs no licence.
990
1106
  - A licence can be bound to Cloud Foundry org or space GUIDs. It is then only valid in those orgs or spaces.
991
1107
  - A running application is never stopped. Renewing means setting the new token and restarting the app.
992
-
1108
+ -->
993
1109
  ยฉ 2025 **SAP-Code-World**. All rights reserved.
package/index.cds CHANGED
@@ -3,11 +3,12 @@ annotation Soap : Boolean default true;
3
3
  /**
4
4
  * Binds an entity to a concrete SOAP operation.
5
5
  *
6
- * `rootRequest` โ€” the SOAP request element name to wrap the outbound payload in.
7
- * `rootResponse` โ€” the SOAP response element name whose contents are extracted
8
- * as the CAP result. Optional; when omitted the loader falls back to the
9
- * entity's `@Soap.rootResponse` scalar (if set) or to a heuristic based
10
- * on the operation name.
6
+ * `rootRequest` โ€” documents the operation's input element. Not used at runtime:
7
+ * node-soap builds the envelope from the WSDL, and the `request()` hook's
8
+ * return value is the input message.
9
+ * `rootResponse` โ€” dot path of the SOAP response element whose contents are
10
+ * the CAP rows. Optional; `@Soap.rootResponse` takes precedence, and without
11
+ * either `<operation>Response` is used.
11
12
  */
12
13
  annotation Soap.binding {
13
14
  rootRequest : String;
@@ -22,8 +23,8 @@ annotation Soap.binding {
22
23
  annotation Soap.operation : String;
23
24
 
24
25
  /**
25
- * SOAP response element name to unwrap. Only used when
26
- * `@Soap.binding.rootResponse` is not set.
26
+ * Dot path of the SOAP response element to unwrap. Takes precedence over
27
+ * `@Soap.binding.rootResponse`.
27
28
  */
28
29
  annotation Soap.rootResponse : String;
29
30
 
@@ -40,9 +41,11 @@ annotation Soap.path : String;
40
41
  * `mandatoryFields` โ€” property names that MUST appear in `$filter` for the
41
42
  * request to be accepted; missing fields raise a 400 with a diagnostic
42
43
  * that names the field.
43
- * `multipleSelection` โ€” when `false`, `$filter` on any mandatory field
44
- * must be a single equality clause; `in(โ€ฆ)` / `or` / `ne` combinations
45
- * are rejected.
44
+ * `multipleSelection` โ€” set it to `false` when the operation takes one key
45
+ * value per call: `<first key> in (a, b, c)` is then sent as one SOAP call
46
+ * per value (batches of `cds.env.soap.multiSelectionConcurrency`) and the
47
+ * results merged; a second `in` on the key or `in` with `or` is a 400.
48
+ * `true` or unset: the `request()` hook receives the `in (...)` as is.
46
49
  */
47
50
  annotation Soap.filterRestriction {
48
51
  mandatoryFields : array of String;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cap-ts/soap-adapter",
3
- "version": "0.3.0-beta.2",
3
+ "version": "0.3.0-beta.4",
4
4
  "description": "SOAP Adapter for CAP",
5
5
  "main": "src/index.js",
6
6
  "types": "types/index.d.ts",
@@ -1 +1 @@
1
- var _0x588c7a=_0x3c32;(function(_0x2b43ff,_0xd46126){var _0x2dc11c=_0x3c32,_0x524e07=_0x2b43ff();while(!![]){try{var _0x294d05=-parseInt(_0x2dc11c(0x221,'5Vlp'))/0x1*(-parseInt(_0x2dc11c(0x151,'*6@]'))/0x2)+-parseInt(_0x2dc11c(0x1cb,'Q%b$'))/0x3*(parseInt(_0x2dc11c(0x197,'NY*T'))/0x4)+-parseInt(_0x2dc11c(0x224,'6qkR'))/0x5*(parseInt(_0x2dc11c(0x1d5,'NY*T'))/0x6)+parseInt(_0x2dc11c(0x1bc,'6qkR'))/0x7+-parseInt(_0x2dc11c(0x17e,'WDi3'))/0x8*(parseInt(_0x2dc11c(0x1b2,'GF90'))/0x9)+-parseInt(_0x2dc11c(0x1e0,'3rV!'))/0xa*(parseInt(_0x2dc11c(0x198,'dsFa'))/0xb)+-parseInt(_0x2dc11c(0x156,'NY*T'))/0xc*(-parseInt(_0x2dc11c(0x247,'4vhd'))/0xd);if(_0x294d05===_0xd46126)break;else _0x524e07['push'](_0x524e07['shift']());}catch(_0x1090ca){_0x524e07['push'](_0x524e07['shift']());}}}(_0x1dd2,0x567d3),(Object[_0x588c7a(0x16b,'XDbQ')](exports,_0x588c7a(0x1be,'XDbQ'),{'value':!0x0}),exports[_0x588c7a(0x1ac,'q)ZI')]=exports['PACKAGE_SCOPE']=exports['LICENSE_ISSUER']=exports['LICENSE_ERROR_CODES']=exports[_0x588c7a(0x23f,'WNq(')]=exports[_0x588c7a(0x1cf,'01hs')]=exports[_0x588c7a(0x214,'K1Rp')]=void 0x0,exports[_0x588c7a(0x199,'WDi3')]=enforceLicense,exports[_0x588c7a(0x1e8,'b0V!')]=grants,exports[_0x588c7a(0x1c8,'NLKl')]=licensedFeature,exports['readTokens']=readTokens,exports[_0x588c7a(0x208,'y[&r')]=selectLicense,exports[_0x588c7a(0x13f,'GF90')]=verifyLicense));let crypto=require(_0x588c7a(0x232,'2q3A')),LICENSE_ISSUER=_0x588c7a(0x1ce,'L%B6'),PACKAGE_SCOPE=(exports[_0x588c7a(0x23e,'Sm5$')]=LICENSE_ISSUER,_0x588c7a(0x1ef,'(wL0')),ALL_PACKAGES=(exports[_0x588c7a(0x225,'HVpW')]=PACKAGE_SCOPE,'@cap-ts/*'),EXPIRY_WARNING_DAYS=(exports[_0x588c7a(0x220,'PS#d')]=ALL_PACKAGES,0x1e),DEFAULT_GRACE_DAYS=(exports['EXPIRY_WARNING_DAYS']=EXPIRY_WARNING_DAYS,0x1e),CONFIG_HINT=(exports['DEFAULT_GRACE_DAYS']=DEFAULT_GRACE_DAYS,_0x588c7a(0x21e,'Jln[')),CONTACT=_0x588c7a(0x14f,'K1Rp'),DAY_MS=0x5265c00,PUBLIC_KEYS=Object[_0x588c7a(0x17b,'^rTR')]({'cap-ts-2026-09':[_0x588c7a(0x14a,'y[&r'),_0x588c7a(0x1fe,'WDi3'),_0x588c7a(0x20e,'nlY9')][_0x588c7a(0x1da,'K1Rp')]('\x0a')}),LICENSE_ERROR_CODES=(exports['PUBLIC_KEYS']=PUBLIC_KEYS,Object[_0x588c7a(0x23a,'9vhN')]({'missing':_0x588c7a(0x1d4,'5Vlp'),'invalid':_0x588c7a(0x183,'b0V!'),'expired':_0x588c7a(0x16d,'GF90')}));function grants(_0x529133,_0x1b667c){var _0x2ccf9e=_0x588c7a;return _0x529133=Array['isArray'](_0x529133)?_0x529133:[_0x529133],_0x529133[_0x2ccf9e(0x1e7,'Sm5$')](_0x1b667c)||_0x1b667c[_0x2ccf9e(0x140,'2q3A')](PACKAGE_SCOPE)&&_0x529133['includes'](ALL_PACKAGES);}function invalid(_0x5c1f20,_0x522b8c,_0x27ea42){var _0x5943a6=_0x588c7a;return{'state':_0x5943a6(0x1eb,'QcuI'),'product':_0x5c1f20,'reason':_0x522b8c,'claims':_0x27ea42};}function decodeSegment(_0x610d2c){var _0x11f767=_0x588c7a,_0x58f835={'FBNNt':'base64url'};return JSON[_0x11f767(0x1d9,'AF7p')](Buffer[_0x11f767(0x1e2,'M(yW')](_0x610d2c,_0x58f835[_0x11f767(0x173,'^rTR')])[_0x11f767(0x1de,'NUbw')](_0x11f767(0x1ad,'01hs')));}function verifySignature(_0x3734df,_0x6f9f88,_0xcbfdc2){var _0x54bec1=_0x588c7a,_0x5c7516={'gCwXI':_0x54bec1(0x219,'M(yW')};try{return crypto['verify'](null,Buffer[_0x54bec1(0x167,'ZXWj')](_0x3734df),_0xcbfdc2,Buffer[_0x54bec1(0x149,'L%B6')](_0x6f9f88,_0x5c7516[_0x54bec1(0x1f1,'(wL0')]));}catch{return!0x1;}}function checkBinding(_0x3bcc11,_0x408ee0){var _0x155672=_0x588c7a,_0x25d5cc={'wLdkh':_0x155672(0x1f9,'NUbw'),'nkrig':'Cloud\x20Foundry\x20space','AQOcy':function(_0xb9c0f7,_0xf51987){return _0xb9c0f7!==_0xf51987;},'NRHyJ':function(_0x226fa8,_0x369144){return _0x226fa8+_0x369144;},'JEJpd':_0x155672(0x14b,'WDi3')},_0x410f49,_0x52cb97,_0x5f50bd;for([_0x410f49,_0x52cb97,_0x5f50bd]of[[_0x3bcc11?.[_0x155672(0x154,'GF90')],_0x408ee0?.[_0x155672(0x23d,'M(yW')],_0x25d5cc[_0x155672(0x212,'NUbw')]],[_0x3bcc11?.[_0x155672(0x1d0,'l)ab')],_0x408ee0?.[_0x155672(0x1d3,'giIw')],_0x25d5cc[_0x155672(0x1a4,'Q8Lc')]]])if(Array[_0x155672(0x160,'1bVP')](_0x410f49)&&_0x25d5cc['AQOcy'](0x0,_0x410f49[_0x155672(0x22e,'K1Rp')])&&(!_0x52cb97||!_0x410f49[_0x155672(0x1fc,'l)ab')](_0x52cb97)))return _0x25d5cc[_0x155672(0x19c,'JhuM')](_0x25d5cc[_0x155672(0x242,'01hs')],_0x5f50bd);}function verifyLicense(_0x55b62f,_0x592d6d){var _0xcfd885=_0x588c7a,_0x173ab8={'QhvVi':function(_0x20ff0b,_0x22a74f){return _0x20ff0b!=_0x22a74f;},'JedtH':_0xcfd885(0x15a,'WNq('),'QYrvI':function(_0x2e1694,_0x38763d){return _0x2e1694===_0x38763d;},'nURvc':_0xcfd885(0x1b9,'b0V!'),'CTKyY':_0xcfd885(0x192,'AF7p'),'WOzJM':function(_0x175fa7,_0x2f2915){return _0x175fa7(_0x2f2915);},'gEzSW':function(_0x41e4d7,_0xba463){return _0x41e4d7(_0xba463);},'QpQWw':function(_0x3a2c78,_0x3d561c,_0x18c41a){return _0x3a2c78(_0x3d561c,_0x18c41a);},'zcqtL':_0xcfd885(0x191,'WDi3'),'tRNvP':function(_0xac2cc2,_0x3e2e1c){return _0xac2cc2!==_0x3e2e1c;},'SvYiK':_0xcfd885(0x213,'RP4x'),'Imldm':function(_0x2b5466,_0x3b6951,_0x3058c7){return _0x2b5466(_0x3b6951,_0x3058c7);},'Eszgf':function(_0x3dd002,_0x4b7470){return _0x3dd002(_0x4b7470);},'GVbxy':function(_0x27a918,_0x3c97e2){return _0x27a918+_0x3c97e2;},'ZvoHD':_0xcfd885(0x1db,'gtiK'),'oZIMg':function(_0x248d2f,_0x292ebc,_0x2c0df5){return _0x248d2f(_0x292ebc,_0x2c0df5);},'brBSL':_0xcfd885(0x153,'y[&r'),'NUBqf':'object','yrWdf':function(_0x56b8e4,_0x5853f5,_0xb359f){return _0x56b8e4(_0x5853f5,_0xb359f);},'lFzYx':function(_0x23c942,_0xf6f072){return _0x23c942!==_0xf6f072;},'iwiYF':function(_0x15e3d6,_0x5bb9d5,_0x4a15ea){return _0x15e3d6(_0x5bb9d5,_0x4a15ea);},'qiApB':function(_0x36e549,_0x10610d){return _0x36e549!=_0x10610d;},'eIsPl':function(_0x3eea74,_0x43fe88){return _0x3eea74===_0x43fe88;},'UJzrU':function(_0x3a804e,_0x182dd6){return _0x3a804e!=_0x182dd6;},'kWjay':_0xcfd885(0x184,'NLKl'),'kOKfL':function(_0x2eca94,_0x3e820d,_0x2346c5){return _0x2eca94(_0x3e820d,_0x2346c5);},'qnDYR':_0xcfd885(0x228,'XDbQ'),'OwvCn':function(_0x3628e9,_0x44ff6f,_0x5b030d,_0x5862e0){return _0x3628e9(_0x44ff6f,_0x5b030d,_0x5862e0);},'JnYPl':_0xcfd885(0x1c9,'b0V!'),'ptTVP':function(_0x247c3a,_0x169521){return _0x247c3a==_0x169521;},'oYDHk':function(_0x2504b0,_0x310594){return _0x2504b0<_0x310594;},'ajnqa':function(_0x3bc3de,_0x332715){return _0x3bc3de*_0x332715;},'ujSYP':function(_0x321c0a,_0xc2d890){return _0x321c0a+_0xc2d890;},'pFHmg':function(_0x2ae64d,_0x53550b){return _0x2ae64d*_0x53550b;},'bbPGM':function(_0x537035,_0x11be71,_0x37ab9d,_0x4a2ddc){return _0x537035(_0x11be71,_0x37ab9d,_0x4a2ddc);},'fJOsu':function(_0x3948cc,_0x5485f6){return _0x3948cc*_0x5485f6;},'XGngH':function(_0x4977fe,_0x51a6cb){return _0x4977fe==_0x51a6cb;},'YHtGZ':function(_0xd72c2,_0x577ef6){return _0xd72c2<=_0x577ef6;},'ULOzs':function(_0xf6125c,_0x2e08ae){return _0xf6125c+_0x2e08ae;},'yKXJH':function(_0x64cf90,_0x40554e){return _0x64cf90*_0x40554e;},'DBhFS':function(_0x13ab10,_0x3565e6){return _0x13ab10/_0x3565e6;},'pGfsa':function(_0x5313fd,_0x23ff7d){return _0x5313fd-_0x23ff7d;},'dMJoP':function(_0x52f10f,_0x4b5e2){return _0x52f10f<_0x4b5e2;},'PFOmm':function(_0x367819,_0x4dc20b){return _0x367819<_0x4dc20b;},'paQqQ':_0xcfd885(0x19d,'2q3A'),'rEwsJ':_0xcfd885(0x13e,'2q3A'),'pPInG':function(_0x1cb5ba,_0x442a3f){return _0x1cb5ba<_0x442a3f;}},_0x4a1db9=_0x592d6d[_0xcfd885(0x222,'M(yW')];if(_0x173ab8[_0xcfd885(0x144,'Q8Lc')](_0x173ab8[_0xcfd885(0x21c,'PS#d')],typeof _0x55b62f)||_0x173ab8[_0xcfd885(0x175,'3rV!')]('',_0x55b62f[_0xcfd885(0x19f,'HVpW')]()))return{'state':_0x173ab8[_0xcfd885(0x196,'Sm5$')],'product':_0x4a1db9};var _0x3a380c=_0x592d6d[_0xcfd885(0x23b,'NUbw')]??PUBLIC_KEYS,_0x46aead=(_0x592d6d[_0xcfd885(0x1bd,'NLKl')]??new Date())[_0xcfd885(0x1dd,'crHL')](),_0x55b62f=_0x55b62f[_0xcfd885(0x236,'QcuI')]()[_0xcfd885(0x21a,'1bVP')]('.');if(0x3!==_0x55b62f[_0xcfd885(0x189,'AF7p')])return invalid(_0x4a1db9,_0x173ab8[_0xcfd885(0x229,'4vhd')]);let _0x35be03,_0x544bc6;try{_0x35be03=_0x173ab8[_0xcfd885(0x185,'XDbQ')](decodeSegment,_0x55b62f[0x0]),_0x544bc6=_0x173ab8[_0xcfd885(0x150,'y[&r')](decodeSegment,_0x55b62f[0x1]);}catch{return _0x173ab8[_0xcfd885(0x14d,'AF7p')](invalid,_0x4a1db9,_0x173ab8[_0xcfd885(0x181,'t4PY')]);}if(_0x173ab8['tRNvP'](_0x173ab8[_0xcfd885(0x1f3,'giIw')],_0x35be03?.[_0xcfd885(0x177,'5Vlp')]))return _0x173ab8[_0xcfd885(0x164,'b0V!')](invalid,_0x4a1db9,_0xcfd885(0x1ba,'9vhN')+_0x173ab8[_0xcfd885(0x1ec,'2q3A')](String,_0x35be03?.[_0xcfd885(0x21f,'ZXWj')])+_0xcfd885(0x1f4,'54w1'));var _0x140dd2=_0x173ab8[_0xcfd885(0x22f,'NY*T')](String,_0x35be03[_0xcfd885(0x163,'(wL0')]);if(!Object[_0xcfd885(0x234,'2aa5')](_0x3a380c,_0x140dd2))return _0x173ab8[_0xcfd885(0x1a1,'lCc5')](invalid,_0x4a1db9,_0x173ab8[_0xcfd885(0x1fa,'giIw')](_0x173ab8[_0xcfd885(0x146,'IS[q')],_0x140dd2));if(!verifySignature(_0x173ab8[_0xcfd885(0x1e9,'jo@U')](_0x55b62f[0x0]+'.',_0x55b62f[0x1]),_0x55b62f[0x2],_0x3a380c[_0x140dd2]))return _0x173ab8[_0xcfd885(0x1af,'^rTR')](invalid,_0x4a1db9,_0x173ab8[_0xcfd885(0x1c5,'2q3A')]);if(null===_0x544bc6||_0x173ab8['NUBqf']!=typeof _0x544bc6)return _0x173ab8[_0xcfd885(0x1d2,'WNq(')](invalid,_0x4a1db9,_0xcfd885(0x17c,'PS#d'));if(_0x173ab8[_0xcfd885(0x170,'WNq(')](_0x544bc6[_0xcfd885(0x1d6,'54w1')],LICENSE_ISSUER))return _0x173ab8[_0xcfd885(0x22b,'WNq(')](invalid,_0x4a1db9,_0x173ab8[_0xcfd885(0x1e9,'jo@U')]('its\x20issuer\x20'+String(_0x544bc6[_0xcfd885(0x17d,'Jln[')])+_0xcfd885(0x18a,'y[&r'),LICENSE_ISSUER));if(_0x173ab8[_0xcfd885(0x15d,'NLKl')](_0x173ab8[_0xcfd885(0x18c,'ZXWj')],typeof _0x544bc6[_0xcfd885(0x1f7,'*6@]')])||_0x173ab8[_0xcfd885(0x1f0,'NY*T')]('',_0x544bc6[_0xcfd885(0x241,'t4PY')])||_0x173ab8[_0xcfd885(0x1a6,'ECzw')](_0x173ab8['JedtH'],typeof _0x544bc6[_0xcfd885(0x233,'nlY9')])||''===_0x544bc6[_0xcfd885(0x1e5,'6qkR')]||_0x173ab8[_0xcfd885(0x21b,'^rTR')](_0x173ab8[_0xcfd885(0x244,'54w1')],typeof _0x544bc6['exp']))return _0x173ab8[_0xcfd885(0x20d,'Q8Lc')](invalid,_0x4a1db9,_0x173ab8[_0xcfd885(0x155,'q)ZI')]);if(!_0x173ab8['kOKfL'](grants,_0x544bc6[_0xcfd885(0x195,'t4PY')],_0x4a1db9))return _0x173ab8[_0xcfd885(0x23c,'QcuI')](invalid,_0x4a1db9,_0x173ab8[_0xcfd885(0x19a,'A&!H')]+_0x4a1db9,_0x544bc6);if(_0x173ab8[_0xcfd885(0x1c4,'1bVP')](_0x173ab8[_0xcfd885(0x17a,'5Vlp')],typeof _0x544bc6['nbf'])&&_0x173ab8[_0xcfd885(0x1b8,'ECzw')](_0x46aead,_0x173ab8[_0xcfd885(0x22d,'XDbQ')](0x3e8,_0x544bc6[_0xcfd885(0x1f8,'RP4x')])))return _0x173ab8['OwvCn'](invalid,_0x4a1db9,_0x173ab8[_0xcfd885(0x1f2,'nlY9')]('it\x20is\x20not\x20valid\x20before\x20',new Date(_0x173ab8[_0xcfd885(0x1c6,'WNq(')](0x3e8,_0x544bc6[_0xcfd885(0x158,'XDbQ')]))[_0xcfd885(0x1a8,'NLKl')]()),_0x544bc6);_0x55b62f=_0x173ab8[_0xcfd885(0x169,'GF90')](checkBinding,_0x544bc6[_0xcfd885(0x188,'t4PY')],_0x592d6d[_0xcfd885(0x168,'gtiK')]);if(_0x55b62f)return _0x173ab8[_0xcfd885(0x1c2,'2aa5')](invalid,_0x4a1db9,_0x55b62f,_0x544bc6);_0x3a380c=new Date(_0x173ab8[_0xcfd885(0x240,'NUbw')](0x3e8,_0x544bc6[_0xcfd885(0x15b,'nlY9')])),_0x140dd2=_0x173ab8[_0xcfd885(0x1c3,'ECzw')](_0xcfd885(0x230,'q)ZI'),typeof _0x544bc6['grace'])&&_0x173ab8['YHtGZ'](0x0,_0x544bc6['grace'])?_0x544bc6[_0xcfd885(0x182,'1bVP')]:DEFAULT_GRACE_DAYS,_0x592d6d=new Date(_0x173ab8[_0xcfd885(0x145,'K1Rp')](_0x3a380c[_0xcfd885(0x179,'*6@]')](),_0x173ab8[_0xcfd885(0x1dc,'(C[f')](_0x140dd2,DAY_MS))),_0x55b62f=Math['floor'](_0x173ab8[_0xcfd885(0x1e1,'NLKl')](_0x173ab8[_0xcfd885(0x18f,'K1Rp')](_0x3a380c[_0xcfd885(0x194,'XDbQ')](),_0x46aead),DAY_MS));let _0x235490;return{'state':_0x235490=_0x173ab8[_0xcfd885(0x1b1,'ECzw')](_0x46aead,_0x3a380c[_0xcfd885(0x15e,'6qkR')]())?_0x173ab8['PFOmm'](_0x55b62f,EXPIRY_WARNING_DAYS)?_0x173ab8[_0xcfd885(0x162,'GF90')]:_0x173ab8['rEwsJ']:_0x173ab8['pPInG'](_0x46aead,_0x592d6d[_0xcfd885(0x231,'RP4x')]())?_0xcfd885(0x157,'Sm5$'):_0xcfd885(0x1ff,'AF7p'),'product':_0x4a1db9,'claims':_0x544bc6,'expires':_0x3a380c,'graceEnds':_0x592d6d,'daysLeft':_0x55b62f};}function readTokens(_0x216125){var _0x2cf08f=_0x588c7a;return(Array[_0x2cf08f(0x249,'Q%b$')](_0x216125)?_0x216125:[_0x216125])['filter'](_0x18fa8b=>_0x2cf08f(0x15a,'WNq(')==typeof _0x18fa8b)[_0x2cf08f(0x210,'K1Rp')](_0x3b0767=>_0x3b0767[_0x2cf08f(0x147,'jo@U')](/[\s,]+/))[_0x2cf08f(0x190,'Jln[')](Boolean);}exports[_0x588c7a(0x20a,'y[&r')]=LICENSE_ERROR_CODES;let STATE_RANK=Object[_0x588c7a(0x141,'NLKl')]({'missing':0x0,'invalid':0x1,'expired':0x2,'grace':0x3,'expiring':0x4,'valid':0x5});function _0x1dd2(){var _0x1ea78e=['jgiledS','aWPLo8kSWPPbwa','rCkKW5HVW5W','W4tcVCkztW','W4ZcOmkb','oSkhWRJcUCkd','BSkhW6a','ahKJmdm','mSknWP/cRCkYW4FcQCoV','D8o+BCkrWRqV','WRSEemouWRu','W4ddJwVdOHO','eCknW6zwmdVcTG','rK9QvSk3','W5JcQ1DGW6hdNmo/W6z6','W4FdKw/cTG','qCksWQNcPJZdI8kOzq','WQHSWO7dVmox','zSkYWR/cJLG','W5VcKIVcUNi','WPZdPCklW4DN','W6RcSvP6lXBcJbmVumoVW7xdQG','CCkBW6KiW6JcJrmKWQr0o1m','WQOHWOK','AXnX','yN4c','vrikkSkUW6CfuJjRr8oHW4mkESoLkq','WOJdHCkWW5zv','qrlcTNX7W6zj','WR4nFSoexX3dJcW','nSo5cYq','W4ddRcBdGNHSc8o4WODsWRtdHJNdJMOaCJSJWRldJhRdRwdcVIHEW4qBW6FcOmkKm3uOW78aW6H3WPbLW6OcW5VdS8oRzuTNW5BdPCkIzSoHW7TpW6DXFei','cSkRdhBdHCoylG','Fs7cI8ktxW','BvqTW7Ly','WPxdVSkVpSkofmk8a8o2WQ7dNCkEWRpcQd9KWPZdLrDyy8oWzCkHWQJdT8kGxw/cG0lcKSogumoGWPNdUmoScZpdQNddJCk8lSo5WOXKWRBdSmkel8k2WQJdG2H1WPeKxeZdRNfXW5fQCSo8sSoPW4JdVWC','ixCgdtO','pCoiWRpcLCoIW7qdW4i','lvyVWRC9WQPqoe/dRtC','BZfhwCkzW7O','pCk0pKZdNq','WPxdTNFcTGPLWRH3W7XSWOJdNZC','DhjIC8ki','WQRdMLJcLIDcWRfbW5PBWRtdOWb0W5VcN3ZcGfi','lCown8o4ta','WQZcJCovWPqTW5ZcLK17b8ozW4CwqCkLEclcVxyxf8keuXNdHcKIiXXxW5BcHuHnW5VdKmowW5RcTG','WOpcHG3cHSka','WOpdLvxdJG9bhSkKW5RdSmkpg8oVaCkrjmoxW5ZcLIBcI1BdIvO','WRaRhCoUWR4','WQv/lHtdKWZcHa','k8krWPpcPCkYW4dcUa','ytibnmkI','sxGGW59x','WOjFaZ/dJIZcT10kWOldIq4','W4pcKqVcKeTQnW','w3jniSk7','WPu7m8oEWR4EW7W','ymo+y8kBWRu/zq','W4dcRSkfr8ofW7xdVKjT','FISkWQWi','DqlcSenG','n0G/WOis','Eg5MFCkwjKe','WQmXWPm8DYVdMmkUWQ7dU1HqW7SDzSoeWOadWPWKWOjPB0lcTSo+x1LHAHVcSmkSz8oLWOBdNmoMjmkifSoLEmk+WOzfc8kwDv/cGwlcQGBcPCotW7yriqncW6SRW7yjC8o1zZ1Nn8khmuq','W5tdGmk9','pgexWQKkCSkxAhSGwuC','WRJcK8o+WRz/W4FcTG','W5lcVCkzrSkgWQldVW','WR7dVWnFW5y','m8okWRWwWPO4uCo6iG','xbXLE8k1W47cVmkbFGGkWP7cKq','WR5rWPZdMmoE','BmkpW4nAW6BdH8k2','l8ofWRFdGCo0W6OhW5HYW6LeW5CYWRlcPLBcImoHWOlcPunIWOuEmfCPDrpdVSophCosmNZdJfldUCkFW7q','W7ddRuhdRYy','WO/cUYFcG8kPimoiW45V','mSkPW5qTvW','DhHGDCkikLy','oSohWRZcKmo2','WQ92iqFdQGu','WOHwWOFdI8oD','WQKGCCoehmkc','A3KqW5H/p8og','CNjPBmkoia','W4tcJbe','y8o2kbmkWPe','WOe6sSoLyW','dmkrW7LA','imo/iSoxDmkZ','umouW57cGY9nW7hcI8okW7O3WOCDlSohWPFdPgvCWO8','W5hcU8kxvSkw','hJZdT8kJuL4','FrSCla','n8kuW6z0mG','W43cVCkrq8kDWQJdSvf1W6ZdNK3dRSogcG','f8kQWR/cHmkjW7dcICode8orimoDW4hdKW','hSkgW609q8oJW60KDmkIbwZcJwnyWPSdqSoQ','CdqQlmk/','xmougW','W6jrW6ZdPCoj','lf4QCCokW7yFWQzZWQtcKmk9WO0','WQhcJ0m7oa','WPVdU8k3WO4','DWNcJCklyW','WOxcJdRcPGVdKahcOf3dKG','xSkyW6xcHsrgW6xdJSkE','imoEWPTmWQ7dNWq','z2f8DCkE','nCo2mCoxF8k5WQuhFtuEWQFdRa','yNrXBSkophioW6S/','z8kuW5vmW7xdJa','wJWEWOCu','DmksW7StWQW','WRNcOtdcTSkL','WPzFabRdRq','WRxdPa1EW7y','WO84hSofWRG','nmouvr4BWOtdGG','iSouvrC','W4VcVJBdVKrtWRfzW5zhW4BdVaDPW5tcMxVdPuRcRYJdHCoSWQezfW','W6tdM2NdNeKDmmotWRKoWOBcKqZdMa8GAsu2WQldOZ3cLW','iCkaW59BWQ8','pSkJluJdGa','n8o7jSkE','WOb8irtdVW7cGdyyWOtdNhdcPSoanmo8WRhcK8k7nSkvW6mldrrOr8knW4KkmCobx8o0W43dNSk+','WOhdLMhcGd4','kLiJC8opW7rlWQ9qWRhcHCkn','WPG2EmoMza','WO/dP2JdSXP4WPnWW759WPpdNJClW7ZcV13cTIhcHb7cNmoHW6fvtG1C','lmoHja','WRy7wmo/kW','W7KvW4ZcNCknWQrEomoBWQDi','pmkrWP3cOSkI','nCopWRq','pSkMW40Dy8otW5Wu','kmkQW48DF8oD','W4VcGaG','W7zMW5qGjhldSmkjWQNcHfjr','CmkpW7fzW40','y8kwW700WQaAEq','WPG1lSkxW6y','zcGNWRCoWRJdPa','zCkhW4LAW4pdJmk3Aq','m8oYeSopsa','ASkyWQW','wCoHymkBWQ0','WQ3dIJhdHvnpn8oyW6WpWOZcKq','g8kpW7fEmse','W5pdNSk1pq','W44Wimkv','eSoJeSoPBG','kW9EW4H5WQHZ','p8oiWRtcImo5W6m2W4nWW6ObW5yZWQK','WOZcQKy3yq','amose8oQsSkFWQuNxru+WOFdJmoZz8oMDmkFCeVcRa','m8oHlmoABmkJWP0hCt4','oILuWRXIi8o5CGL4','n8kyW4CTAq','WRZdPSkW','WQ96laxdSb7cKq','yIJcIfT9','tfb0aCkg','A2n2iCk8','WO58nZBdLq','W63cLCoA','E8k7W4ueEmoiW5CafCkFjqu','FWnNeSktWQ1k','W6FcRSoxWPb0','qHJcO3bZW6y','ffKOW5yQuSkTt1ugEdtcVCkyi8kkfSo0oSk/WQ3cS8o2W5VdKWyjuW','WQKMWPm','WRVcNh3cHWOfcSoVWRGXWOtdMq','B8oUWOXfj8ooW5G8r8kubW','WPZdVGT1W5C','vCoccmorjW','AIKhWQyz','u8onxmkRWPmdxwxcPgNcHI1mdmk/y8kOWOSWkSow','B8ktW51lW6RdMW','dmoIWQJcQ8oA','WQZcJmotWOvKW5hdHG','bmk2bwW','tCoif8ob','a8k2eNJdG8ov','W4BdUMJdSWD+WOa+','WOpdQ2VcVbTLWOC','W7/dICk+jmkO','zmkjWRJcV2pdMSkO','fL7dTIa8WRDEWPnlWQBdGIy','WRnukrpdVW','WQy8WOXMCtG','W6tdMZRcLvjym8oyWQKsW4ldNGRcL18GFIyTWQVdOM/dNLFdHhbdW7XDWQhcSmkHiInrWOajWPrR','bSkNxhBdHmkDjmoZnMldUW4+WPZcPH4sf8oSqCkqwbSqw8oNud7cTSoCWQJdM8oJW6XZWPddNWK4s0msjIL7pvRcV3DXWOHfWPNdVYJcO1muhWj4','pSkHAM8EWP7dGaZdTG4','pmoiWQBcTCo+W6Sd','tSouhq','nCk2WQ7cT8kK','W7WwW4/cMmoRWQjHd8oHWRi','WRy4WOhdSu8EECoKWQ0knSkO','W6JdGs/dMKHEn8oWWQudWOFdNWVdKG','hxGZndi','W48Ym8kl','mmkMW4tcNWS','DhHGDCkijKSa','geizWQmE','Ec9pxq','zqSh','tHvmW5H8','fmkTW60Wvq','W4SsnSkWWO4','WOBcOJtcICkR','W5NdNWJdLNG','wXdcKmkvBW','lhuxWQX1pConBJrOp2/cQCoGzequnSkIWRu','DCkjW7L6W4ddUSkLB8kdWRao','AWPuW5XeWOfxc2/dKb4','WQRdQ8kIW4DEW5bvWPG','FCkGW64mWPa','WPCaxSoQmmkZhvzvoNq','W51GW4dcRq','W6JdLZNdNeHyiq','sZdcJ1HU','W5HMW4NdSCoyzmk9','AHFcOmkiAG','DCkGm8o8B8k4WR0y','D3affN4','lCk/W5eDDq','mxr/pmkoj0bhW7m+D1BdNmkcWOhdLCkzW63dGCoTl8k3W44Vj8oNxa/cT8kMl8oOngyH','W7iGFvtdJH/cOw4dWRq','WRbNlHtdUW','yqpcRSkVuq','FCoLF8kmWQKYDG','etRdOCoMsvDYW6K5W41hW5RcPCoy','W4ihW5H0','mmolWRbxW7LblmoVl8kyv8kRnW','B8kjW4C','bmoYWRFcKSoAW6KcW4rZW78','WQxdP8k7','ECoIB8ktWRu4Df8','oSoajmosqa','ACo1cXSW','vH3cHmkaCG','Fs8YWPmS','C3jst8k2','k8kyW7uzDG','WQi6xSoZpq','BCkpW5nmW6hdMSk0ECkSWRSihhjega','ECo4lmkBWQ85yGZcIupcVf5UiCkxq8kkW6O','fmkaW6u','FmkBW6SnWR/dNZSbWQ53','W4ZdV8k9pmk5','WQJcU1SJbW','j8ohsLCAWPq','W6XrW6ddLmo4s8kDWPRcMGBdSu4QuflcSXhdIW','WQqtFmoltW','WOlcO8kFqCkwWQ/dQfuHW6ZdGGpdN8oagH4Gudu5DCkGW6u','iSkSW6OqDW','WRZdO8kZW41jW6zsWPS','W4/cUmoTWQvEW6lcQNruk8o0W7uND8khx1hcGfb5pa','W78wW4/cLmknWQHhnSoGWPbk','WQpcQ1O','y8oWdSoGmG','W4tdMhJdUa','h8kYdMZdKG','WQL8jG4','W5eNyCkmWRubW7hcGXVcRCkIWRRcNh3dNCkdW7pdHZJcLaK2FHZcO1tdHCk+WPC9gmo5WRXV','W5GJW6rBWQ8','bCo0gLddKCooFa','yHe2k8k4WQ4TwG'];_0x1dd2=function(){return _0x1ea78e;};return _0x1dd2();}function selectLicense(_0x1775a9,_0xe842fa){var _0x29d873=_0x588c7a,_0x3f3800={'TpAcB':function(_0xd19b2f,_0xb20d40,_0x5728c6){return _0xd19b2f(_0xb20d40,_0x5728c6);}};let _0x463f25={'state':_0x29d873(0x227,'NLKl'),'product':_0xe842fa['product']};for(var _0x48d546 of _0x1775a9){_0x48d546=_0x3f3800[_0x29d873(0x1a5,'WDi3')](verifyLicense,_0x48d546,_0xe842fa),STATE_RANK[_0x48d546[_0x29d873(0x1df,'A&!H')]]>STATE_RANK[_0x463f25['state']]&&(_0x463f25=_0x48d546);}return _0x463f25;}function licensedFeature(_0x2bc5e8,_0x5e3121){var _0x4b61e3=_0x588c7a,_0x594c30={'eoBUD':function(_0x2fd3c9,_0x9367d7){return _0x2fd3c9===_0x9367d7;},'sAwUH':_0x4b61e3(0x1aa,'giIw'),'zJgyh':'grace'};if(_0x4b61e3(0x1b4,'WNq(')===_0x2bc5e8[_0x4b61e3(0x200,'ECzw')]||_0x594c30[_0x4b61e3(0x19e,'PS#d')](_0x594c30[_0x4b61e3(0x1a3,'gtiK')],_0x2bc5e8[_0x4b61e3(0x1ea,'4vhd')])||_0x594c30[_0x4b61e3(0x1c7,'q)ZI')](_0x594c30['zJgyh'],_0x2bc5e8[_0x4b61e3(0x1b7,'K1Rp')]))return _0x2bc5e8[_0x4b61e3(0x206,'HVpW')][_0x4b61e3(0x204,'XDbQ')]?.[_0x2bc5e8['product']]?.[_0x5e3121];}function readVcap(){var _0x422b2a=_0x588c7a,_0x51144a=process.env.VCAP_APPLICATION;if(_0x51144a)try{return JSON[_0x422b2a(0x143,'6qkR')](_0x51144a);}catch{}}function _0x3c32(_0x3ec2fe,_0x1ab4a5){_0x3ec2fe=_0x3ec2fe-0x13e;var _0x1dd238=_0x1dd2();var _0x3c3286=_0x1dd238[_0x3ec2fe];if(_0x3c32['rdmQOH']===undefined){var _0x42efa6=function(_0x551fc0){var _0x4da890='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x210fc5='',_0x38300d='';for(var _0x149ab6=0x0,_0x4f5dee,_0x42e6ef,_0x457798=0x0;_0x42e6ef=_0x551fc0['charAt'](_0x457798++);~_0x42e6ef&&(_0x4f5dee=_0x149ab6%0x4?_0x4f5dee*0x40+_0x42e6ef:_0x42e6ef,_0x149ab6++%0x4)?_0x210fc5+=String['fromCharCode'](0xff&_0x4f5dee>>(-0x2*_0x149ab6&0x6)):0x0){_0x42e6ef=_0x4da890['indexOf'](_0x42e6ef);}for(var _0x275235=0x0,_0x404731=_0x210fc5['length'];_0x275235<_0x404731;_0x275235++){_0x38300d+='%'+('00'+_0x210fc5['charCodeAt'](_0x275235)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x38300d);};var _0x7a1784=function(_0x314c3a,_0x1cdf3e){var _0x8cb979=[],_0x3fad60=0x0,_0x8382f8,_0x57e101='';_0x314c3a=_0x42efa6(_0x314c3a);var _0x3796d4;for(_0x3796d4=0x0;_0x3796d4<0x100;_0x3796d4++){_0x8cb979[_0x3796d4]=_0x3796d4;}for(_0x3796d4=0x0;_0x3796d4<0x100;_0x3796d4++){_0x3fad60=(_0x3fad60+_0x8cb979[_0x3796d4]+_0x1cdf3e['charCodeAt'](_0x3796d4%_0x1cdf3e['length']))%0x100,_0x8382f8=_0x8cb979[_0x3796d4],_0x8cb979[_0x3796d4]=_0x8cb979[_0x3fad60],_0x8cb979[_0x3fad60]=_0x8382f8;}_0x3796d4=0x0,_0x3fad60=0x0;for(var _0x6e10bc=0x0;_0x6e10bc<_0x314c3a['length'];_0x6e10bc++){_0x3796d4=(_0x3796d4+0x1)%0x100,_0x3fad60=(_0x3fad60+_0x8cb979[_0x3796d4])%0x100,_0x8382f8=_0x8cb979[_0x3796d4],_0x8cb979[_0x3796d4]=_0x8cb979[_0x3fad60],_0x8cb979[_0x3fad60]=_0x8382f8,_0x57e101+=String['fromCharCode'](_0x314c3a['charCodeAt'](_0x6e10bc)^_0x8cb979[(_0x8cb979[_0x3796d4]+_0x8cb979[_0x3fad60])%0x100]);}return _0x57e101;};_0x3c32['PCbdkc']=_0x7a1784,_0x3c32['gvBGex']={},_0x3c32['rdmQOH']=!![];}var _0x89292b=_0x1dd238[0x0];_0x3c32['TZzoWp']!==_0x89292b&&(_0x3c32['gvBGex']={},_0x3c32['TZzoWp']=_0x89292b);var _0x430fc7=_0x3c32['gvBGex'][_0x3ec2fe];return _0x430fc7===undefined?(_0x3c32['PzQkPh']===undefined&&(_0x3c32['PzQkPh']=!![]),_0x3c3286=_0x3c32['PCbdkc'](_0x3c3286,_0x1ab4a5),_0x3c32['gvBGex'][_0x3ec2fe]=_0x3c3286):_0x3c3286=_0x430fc7,_0x3c3286;}function isProduction(_0x451fb1){var _0x115721=_0x588c7a,_0x3e2124={'adDxD':_0x115721(0x16e,'GF90'),'OUeNN':function(_0x168b4b,_0x121638){return _0x168b4b(_0x121638);}};return _0x451fb1=_0x451fb1?.['profiles'],Array[_0x115721(0x217,'jo@U')](_0x451fb1)&&_0x451fb1[_0x115721(0x1c0,'b0V!')](_0x3e2124[_0x115721(0x1e4,'Sm5$')])||_0x3e2124[_0x115721(0x152,'l)ab')](Boolean,process.env.VCAP_APPLICATION);}function day(_0x9b1fb4){var _0x3c90d3=_0x588c7a;return _0x9b1fb4[_0x3c90d3(0x1a9,'lCc5')]()[_0x3c90d3(0x180,'IS[q')](0x0,0xa);}function describeFailure(_0x39663d){var _0x384380=_0x588c7a,_0x2eb800={'WgxBh':_0x384380(0x215,'nlY9'),'MoxVK':function(_0xaf9734,_0x257316){return _0xaf9734===_0x257316;},'LcoBr':_0x384380(0x21d,'2q3A'),'LQwEY':function(_0xfbc998,_0xc78915){return _0xfbc998+_0xc78915;},'QmaId':function(_0x2430b0,_0x11b298){return _0x2430b0(_0x11b298);}};return _0x2eb800[_0x384380(0x142,'1bVP')]===_0x39663d[_0x384380(0x239,'M(yW')]?'No\x20licence\x20for\x20'+_0x39663d[_0x384380(0x1b0,'01hs')]+_0x384380(0x1a7,'RP4x')+CONFIG_HINT+_0x384380(0x1b5,'2q3A'):_0x2eb800[_0x384380(0x176,'K1Rp')](_0x2eb800[_0x384380(0x20f,'jo@U')],_0x39663d[_0x384380(0x226,'NY*T')])?_0x384380(0x1fd,'crHL')+_0x39663d[_0x384380(0x148,'L%B6')]+_0x384380(0x1d1,'M(yW')+_0x39663d['reason']+'.':_0x2eb800[_0x384380(0x1d7,'t4PY')](_0x384380(0x245,'giIw')+_0x39663d[_0x384380(0x211,'Sm5$')]+'\x20licence\x20'+_0x39663d[_0x384380(0x206,'HVpW')][_0x384380(0x1ca,'JhuM')]+_0x384380(0x15f,'gtiK')+_0x39663d[_0x384380(0x237,'GF90')]['sub']+_0x384380(0x165,'WDi3'),_0x2eb800[_0x384380(0x223,'IS[q')](day,_0x39663d[_0x384380(0x22c,'2q3A')])+'\x20and\x20its\x20grace\x20period\x20ended\x20on\x20'+day(_0x39663d['graceEnds'])+'.');}function enforceLicense(_0x10402c){var _0x22175c=_0x588c7a,_0x2fb7aa={'bcryF':function(_0x121275,_0x378a17,_0x5416b4){return _0x121275(_0x378a17,_0x5416b4);},'ySglY':function(_0x5f274c,_0x5d2f6b){return _0x5f274c(_0x5d2f6b);},'nEtFU':function(_0x3f9778){return _0x3f9778();},'WoITm':_0x22175c(0x203,'A&!H'),'OsPDD':_0x22175c(0x159,'WNq('),'aHIuN':function(_0x312187,_0x193a3f){return _0x312187+_0x193a3f;},'VYWMI':function(_0x34345f,_0x3a594e){return _0x34345f(_0x3a594e);},'RgBSj':function(_0x556e29,_0x54f249){return _0x556e29(_0x54f249);},'vjpVs':_0x22175c(0x202,'ZXWj')},{product:_0x594393,env:_0x25d78b,log:_0x107bb3}=_0x10402c,_0x213cd8=_0x2fb7aa[_0x22175c(0x1cd,'54w1')](selectLicense,_0x2fb7aa[_0x22175c(0x246,'ECzw')](readTokens,_0x25d78b?.['capts']?.[_0x22175c(0x172,'K1Rp')]),{'product':_0x594393,'keys':_0x10402c[_0x22175c(0x187,'AF7p')],'now':_0x10402c[_0x22175c(0x1e3,'M(yW')],'vcap':_0x2fb7aa[_0x22175c(0x20b,'GF90')](readVcap)}),_0x569850=_0x213cd8[_0x22175c(0x166,'QcuI')];switch(_0x213cd8[_0x22175c(0x200,'ECzw')]){case _0x2fb7aa[_0x22175c(0x1e6,'A&!H')]:return _0x107bb3['info'](_0x594393+'\x20licensed\x20to\x20'+_0x569850[_0x22175c(0x1a0,'NUbw')]+_0x22175c(0x186,'5Vlp')+_0x2fb7aa[_0x22175c(0x1c1,'GF90')](day,_0x213cd8[_0x22175c(0x1fb,'^rTR')])+'\x20(licence\x20'+_0x569850[_0x22175c(0x1bf,'giIw')]+')'),_0x213cd8;case _0x2fb7aa[_0x22175c(0x1a2,'WNq(')]:return _0x107bb3[_0x22175c(0x1d8,'4vhd')](_0x2fb7aa['aHIuN'](_0x22175c(0x14e,'GF90')+_0x594393+_0x22175c(0x248,'JhuM')+_0x569850[_0x22175c(0x1f6,'Jln[')]+_0x22175c(0x1b3,'A&!H')+_0x569850['sub']+_0x22175c(0x178,'WNq(')+_0x2fb7aa[_0x22175c(0x235,'l)ab')](day,_0x213cd8[_0x22175c(0x1ae,'WDi3')])+'\x20','('+_0x213cd8[_0x22175c(0x161,'NLKl')]+'\x20days\x20left).\x20Renew\x20it\x20to\x20avoid\x20interruption.')),_0x213cd8;case'grace':return _0x107bb3[_0x22175c(0x209,'2q3A')](_0x22175c(0x1ee,'4vhd')+_0x594393+'\x20licence\x20'+_0x569850['jti']+_0x22175c(0x14c,'NLKl')+_0x569850[_0x22175c(0x171,'giIw')]+'\x20expired\x20on\x20'+day(_0x213cd8[_0x22175c(0x18d,'(wL0')])+'.\x20'+(_0x22175c(0x16c,'54w1')+_0x2fb7aa[_0x22175c(0x207,'AF7p')](day,_0x213cd8[_0x22175c(0x22a,'Q8Lc')])+_0x22175c(0x20c,'5Vlp')+_0x594393+_0x22175c(0x238,'JhuM'))),_0x213cd8;default:var _0x4524e2,_0x2bbbd4=_0x2fb7aa[_0x22175c(0x216,'3rV!')](_0x2fb7aa[_0x22175c(0x1cc,'ZXWj')](describeFailure,_0x213cd8)+'\x20',CONTACT);if(_0x2fb7aa[_0x22175c(0x1ab,'6qkR')](isProduction,_0x25d78b))throw(_0x4524e2=new Error(_0x2bbbd4))[_0x22175c(0x1bb,'(C[f')]=LICENSE_ERROR_CODES[_0x213cd8['state']],_0x4524e2[_0x22175c(0x218,'b0V!')]=_0x594393,_0x4524e2;return _0x107bb3[_0x22175c(0x19b,'gtiK')](_0x2fb7aa[_0x22175c(0x201,'RP4x')](_0x2bbbd4,_0x2fb7aa[_0x22175c(0x174,'3rV!')])),_0x213cd8;}}module[_0x588c7a(0x18b,'y[&r')]={'ALL_PACKAGES':ALL_PACKAGES,'DEFAULT_GRACE_DAYS':DEFAULT_GRACE_DAYS,'enforceLicense':enforceLicense,'EXPIRY_WARNING_DAYS':EXPIRY_WARNING_DAYS,'grants':grants,'LICENSE_ERROR_CODES':LICENSE_ERROR_CODES,'LICENSE_ISSUER':LICENSE_ISSUER,'licensedFeature':licensedFeature,'PACKAGE_SCOPE':PACKAGE_SCOPE,'PUBLIC_KEYS':PUBLIC_KEYS,'readTokens':readTokens,'selectLicense':selectLicense,'verifyLicense':verifyLicense,'__test':{'checkBinding':checkBinding,'isProduction':isProduction,'readVcap':readVcap}};
1
+ var _0x36c312=_0x4584;function _0x17ec(){var _0x4fd064=['mCocW5a','bY/cJCkdBqVcUmoSsq5l','qmogWOK/WQC','aCo3sSoObLFcPgmCla','WRikW6uWgCkhaG','WO7cLSo9W7pdLCkns8kCWPm','jaRcRSkSqq','WQjEW53dQ1FcL8k3W5nBWQ3cIZFdVujtWP0GWQlcSGxcNSkNW54pWR1KW6K3W6ddVSo2WRvRW5C','BeDDkedcH28VW6/cKmkcmGJdHa','W5BcU8kOwmkFWOS','amo+WQddQCoWW7HJz8omWRikca','zeZdTSo+ha3cR8onxdnU','k2/dOa','nJRcMs3cSXr+','iZWstWtcJ8oNwCo5rqxcK8oqWPa6W593','WPRcMbFcOaldQa','WRNcGuddNuf7','W6ldNSkgwSke','eCkmW4C','WRqVyY0RWPy/WP0PrK7cIcVdIIRdUSobW4BcJSkO','Emk2WRRcIapdSuD0W6VdJcPp','zSoPWRFdTmk5','mHtcQCkGvIVcGSoRztr9W5NdMYu','W5q0i8oPW40TbmomW7y','WOhdJmket8oE','WPFcRWpdTwee','WPKPtYPx','wu93WQOG','WOBdSCoqW7XfgtNcG2qtW6JcKxNcRmozy8omuSkz','gSkbW5PqWP/dGG','W50kk8kLbG','hHGSW7D1W5hdL2FcO8k7WOhcQG','W4FdLGLVwHJcTG','WQxcOv7dTe4','e8oSs8oO','omodW4hcRmkk','sSoYWPSVWOpdIa','FrOcFHpdKcPYW7pdVmk3hMC','najlDaxcNJD4W6pdVmk1ecVdMSkIogldUCoFu8oLc8kE','WQCaW7O9hSkbbq','e8ojl3BcMJ4','W4pcPSkLwmkF','W4pdIWK8qb/cTSksf0ddJJnmDCoojCkxjmkIc1W2W5VdKqzwWQ03','W4ZdJr95srm','WQZcVmomW5NdOSkrESkVWQeijfhdMCkUW4jjhhldSq','WOyQqa1UoJ4CW4hcRa','cCklWOi','W6tdLYnLyq','b8oGv8oLfu0','ydJcHXdcTW','WPlcRXxdQa','v2XVW6pcVa','W4pcMSoKWOtdI8k7W4Pa','WPRcSG0','kComjwxcVq','WODgrW','umkuWOdcTJ/dMwa','a8odW4lcQIa','tSo7WO4sWOFdLSom','W4VcIbHCs1hcIgnZW7xcLLW6WPfTWPKDtGa8WOpcPSke','W4/cSmkPftVcPWb7','WQZdLmoYW41gkWW','ysSEybG','aCoWW6BcRCk5','tSkBWOtcUq','W57dTSkfCZVcVcilW7NcOIuBeNGpiSozWRldGsexeNyzb8oPsbhcUgJdLGGKWO96','sCkiWPNcSYBdK3a','W5DmW57dRSkGzmo0xH4tb8o7Bq','mmo/lwpcVr3dU8oXuG3cNYVdH8odx1zKbmk1jmkIWRJdSmkTA1efW6tcKHhcMqq6lf1OhK0XW7pcLCkHpbJdJCoyAwhdKeFcNdVcNh7cPJODaulcSa','oK8nW6O7WRVcVq','WRJcLdNdGfS4zNpdPSkHW6hdQsKB','e07dGSkWW68','yY8nybi5','WRHpWQG6AW','W7niWPjuWQi','swXWW4xcR3O','W6y7pmkleKxcVGqBWPVdNmorWPW','jmkgWORdSmkzW6tcIwddSCkoy1StrXRdQaqCiCoTtSoOjSkMW4zBarVcQSo4WP1hWOxcSYLYWPK','xIOLmCkd','W4jZW6nSC8kAWRHzm8os','EeHJWOuX','WPNdP8kEbYBcUsi','W6FdKbRdGwDgWQFdKCod','WQWAWReRd8onWOHynSoJe8kr','WRikW6uWgCklh1y','WOFcQbG','mHNcNCod','rhvZW6pcQNed','Dt/cPJZcVa','nauQBWtdNYa','WRpdUCoKoGhdKYlcPa','ymo8WRG1WR8','iXm0Bba','WOZcPY7dRKu','fmkCWOy','aINcKCoJWP4','tWdcHXhcIa','WR/cLWRdKveVWRZdICoSWPtdRmkspHddOv3dGLhcKrtdV2hdTG','wCo/WOG1WOS','hM1AWRG','W4VcGqLpr03cJNvZW7pcI1W','jCk7WRZdRCku','WPJcKbblsW','W77cVCoKqmktWPPAWOz/WOldQ2vSt1e','WOGwWO3cTq','WPimWORcRSo1','o8kGWPTAWP7dNrxcOa','pmohW5tcMXtdVHe','W5ZcT8kQs8koWPe','bCkBWQddImkH','WR/cKgVdILbUWQC','r8kfWO3dP8kDW6NcNIxcGG','WPiwW5ekkG','nbhcUmkAqG','jMupWPVdLa','WR3cQCkCW7G7uSkJWPaUW6/dG2STra8','WOFcRrBdRge','W7BcJ8ozwmote8oCwSkC','fSk+WQ3dQ0W','WPRcGaZcQGK','wtSHDb8','W7FcJ8oIWQxdMG','DJ7cLaVcOa','omoKeL3cRrxdVCoIwg3cHXxdImo9rvnqlmkh','BctcKXa','rYGsWRvky8olt8ogWPFdIufPiuZdQ8oQefCoWQ5bWQxdTSk/WR8','h8opb1RcNq','wYKUoW','nY/cTmoaWOe','amkBWOxdP8kD','WR1jW75Vv8khWRLiF8oymCoO','eZ/cICkoCqtcS8o4sWvzW7tdRr8/D29M','WPFcLSk3W484','tcKzkSkdW75FW7S','bmogW5ldNG','WRZdVCoKoG','WQBdNCkpqCokomoCymkQhdZcNYBdKW','hCkAW5rEWO/dLbvF','uwnpcvJcNCkrCSokzXtcJCo6','WOJdSSkBrSoP','WO8dW5yueW','W5OUsxqA','mM/dQmkOW4C','WPpcVrxcUY8','WO3cLH5s','aSoqW47cI8oKWPaGW5S','n8kfWPPmWRG','WORcJ8oRW4xdLG','W7OKDG','rSouWRWkWRG','WQlcQr3cMca','qmoQW5OIWOhdNSoAj8kyw3hcJ8kLW442n3Su','W4tcHComWRtdOCk3W5DwxtyT','WQxcHKBdNuf7WPldJ8o6WP/dPSoblW','WPmQvt1toda','WRLDWQm1vq','pmkfW7PvWPG','fSo3rmoVfG','W5biW53dQCkPgCkbwYyOeW','bmkgW5HwWO/dKWq','WOtcNYH5xrpcPSoCaLZdNMffpmojl8kCnmoNsW','kv4jWQNdTq','f8kyW5zBWPFdGW','hSoqi33cKJ8','jCkMWORdN2C','W5JdL8kUWQpcImo6fCk8WQywh3tdHa','lmodr8k3W4afc8kuWQukxMjoWOm','WQ3dMSkdtCohkq','WQBcKuxdNfDSWQO','aSoWrW','W6FcUCoiWPhdHG','pH3cQCkJuW','qJiYfSk3','WOaNreLzotqqW4lcRcO1jSobW5pdL8oQwSkRkmoMW5zZWOzxpHiAkIaZW4Cjumo3smoiW4tcQmoL','kmohW4y','t8o3WPyYWOVdIq','sSkpWPq','W4xdRuZcTIWGzuxdG8kOW7q','sZyMn8kf','vbNcGHBcTW','peGE','n3JdQmkS','W5lcI8o2WOlcMmoqW5zwwa','fZWzCZS','W7ZcO8ogWQldOmk3W6z7FqSzWO92WRu','qCktWQxcNsK','fXNcRSk/ctZcLmkiAsrX','bmk+WOldJKe','lIOwwqK','DGJcGtpcQq','WRxcQCkAW7OW','W43dJrT/vG','WQpcPHFcPYe','W5BcJ8oKWPpdM8kwW4zx','W5ZdKrzPEq','wtmgWQLFzmogySoFWR3cNW','vmo0WPhdISowW5LYCCkfWRmd','WQVdLSkkrmoroCoPyq','ACkEaSoOWPbpC8ooWQqaCvzA','W58ucCkHp2VcNW','WRldI8kPfGhcHWj0W5dcMrqXlKqPtCoPWPJdUq','BsVcHJdcSHm','WRXUymoXvCobDmoLWQbUD8kAWQC','uGxcTbFcSa','BbdcRq7cKW','xt46mCkdW6nc','WRj+WO/dS0S','r8o8WPW','smkOpCo3WP4','WRFcNcRdKuy0B2xdRmk3W7ZdRYKwh8kRjSkStrOV','W5mTimoLWOL8aG','WOtcRXxdOwaivW','WRpdGSoKptG','Fe0qWRddQ2BdLG','W6pcPColWOZdIG','WOiuWORcS8o9iq','ytGdDrq7F2G','WPSKW5Cbha','rSoPWR3dVmoJW68','WP08uG','W4DVWRXDWPvN','W4dcMmoQWOpdM8khW5C','qaCpqZu','W4pcNSoKWPpdIW','WR3dT8o0jW','WPhcG8o9W4BdNa','WQxdMSoXpdK','uSkFWO/cPa','WOxcJCo/W7xdNSk7qmkCWQy/c2ZdOSkBW7G','jbu7EZxdO8o1AColEsdcOSoSW68rW6XjcG','W5FcT8kWEmktWPrA','jmkfWOVdSCkCWQFcUY/dL8kHvWqPca3dVuGOkW','WPNcLSoZW7tdHCkRuq','D8o9WO/dVCoJ','WOJcIJtcOci','zmouWOVdRmov','FGuRWQhdKNFdJ3e','W6tcGSoGW4C','W6fgWQbTw8ouqL1ztbzCCG','WQHoWO7cReFdLSk0W45pW63cGJRcVLbuWPOTWQldRGVcLmo1WOSeWQ5RW6SWW6lcU8k9WQr6WPldQ8oBmmo+acxdKrToW7Osp8oiWQeOW7BdOLHqD3xcN2WMkmopW4LKEdVcSmoKcmk2gmoBWQddOmoQjW','ySovW4dcICoP','ASkpfSk5','W4rwWRTcWRW','umkoW5BcVIdcKgPqW57cQW48ECo1W4KAnqb8WR3cPSkmiL3cLSoJWOtcUCozW6pdO2bZWQDgW61tW6Clhe/dRmkyDhxcHCoYWP3dLZ3dGwNdLw5dCSoBWQBdVSkvoW','gSkBW4a','W5/cMmoI','WQ/dGmoJW5b5iXlcUW','WR7cVSkvW74HuW','emo9BSobga','yJ4nzXG','CcNdISkAW5BdM8o+W5G','mKKO','WQxcL0VdILz8WONdJ8oTWPi','yHbrW4/cSeRdQNXUW4JcVCktWPtdJmowW5KIWP7dNZRcTdlcOw8','WPhcKXDyra','W5JdL8kSW6NdTCkbxmkpWRO','W6C3hmkqgW','k8oaW67cICk7WOuQ','xmkcWOy','f8kvW4CFWO7dGW','ieG+W7eNWR0','ms4nAG53DN5JWPvyWPWjWR3dJuG3CKrkW7VcNqars8oRcSouW6RcUZhdOIXeW4KcW4ddSmotfMFcRCoqWPa','W5vpW5VcQSoNhmkxEHm','iapcL8ko','WOtcHrBcUGxdOCkg','WP47sa','WQBdM8o8oai'];_0x17ec=function(){return _0x4fd064;};return _0x17ec();}(function(_0x586215,_0x52cba1){var _0x2d5391=_0x4584,_0x3bb9e4=_0x586215();while(!![]){try{var _0x5a14f5=-parseInt(_0x2d5391(0x28f,'eSpf'))/0x1*(-parseInt(_0x2d5391(0x1d2,'Q47F'))/0x2)+-parseInt(_0x2d5391(0x2c6,'Q47F'))/0x3*(-parseInt(_0x2d5391(0x27b,'j6cd'))/0x4)+parseInt(_0x2d5391(0x1ec,'eSpf'))/0x5*(-parseInt(_0x2d5391(0x1fc,'9wg&'))/0x6)+-parseInt(_0x2d5391(0x1d4,'aU0g'))/0x7+-parseInt(_0x2d5391(0x1f9,'6EGX'))/0x8+parseInt(_0x2d5391(0x244,'Qa5z'))/0x9*(-parseInt(_0x2d5391(0x1e5,'FRiu'))/0xa)+-parseInt(_0x2d5391(0x297,'yFG)'))/0xb*(-parseInt(_0x2d5391(0x22d,'PpUn'))/0xc);if(_0x5a14f5===_0x52cba1)break;else _0x3bb9e4['push'](_0x3bb9e4['shift']());}catch(_0x4b5872){_0x3bb9e4['push'](_0x3bb9e4['shift']());}}}(_0x17ec,0xb77dd),(Object[_0x36c312(0x279,'fQhC')](exports,_0x36c312(0x240,'Qa5z'),{'value':!0x0}),exports[_0x36c312(0x1f2,'9wg&')]=exports[_0x36c312(0x2bb,'S1h^')]=exports[_0x36c312(0x237,'E2Y#')]=exports[_0x36c312(0x2b9,'PpUn')]=exports[_0x36c312(0x26c,'#DrJ')]=exports[_0x36c312(0x274,'9wg&')]=exports['ALL_PACKAGES']=void 0x0,exports[_0x36c312(0x207,'9wg&')]=enforceLicense,exports['grants']=grants,exports[_0x36c312(0x1ca,'FRiu')]=licensedFeature,exports[_0x36c312(0x21e,'REDa')]=readTokens,exports[_0x36c312(0x28a,'$gBM')]=selectLicense,exports[_0x36c312(0x2b7,'yFG)')]=verifyLicense));let crypto=require(_0x36c312(0x20a,'E2Y#')),LICENSE_ISSUER=_0x36c312(0x1e9,'x1ZC'),PACKAGE_SCOPE=(exports[_0x36c312(0x2a9,'U5Yx')]=LICENSE_ISSUER,_0x36c312(0x282,'Ri8F')),ALL_PACKAGES=(exports[_0x36c312(0x23d,'f)sU')]=PACKAGE_SCOPE,'@cap-ts/*'),ESI_PACKAGE=(exports[_0x36c312(0x205,'AMZm')]=ALL_PACKAGES,_0x36c312(0x2ab,'9wg&')),EXPIRY_WARNING_DAYS=0x1e,DEFAULT_GRACE_DAYS=(exports[_0x36c312(0x21d,'FRiu')]=EXPIRY_WARNING_DAYS,0x1e),CONFIG_HINT=(exports[_0x36c312(0x1cb,'j6cd')]=DEFAULT_GRACE_DAYS,_0x36c312(0x1d5,'(xgt')),CONTACT=_0x36c312(0x23e,'7LMA'),DAY_MS=0x5265c00,PUBLIC_KEYS=Object[_0x36c312(0x21c,'C2f@')]({'cap-ts-2026-09':[_0x36c312(0x26e,'2MMK'),_0x36c312(0x235,'#DrJ'),_0x36c312(0x1e3,'Q47F')][_0x36c312(0x1c6,')Fok')]('\x0a')}),LICENSE_ERROR_CODES=(exports['PUBLIC_KEYS']=PUBLIC_KEYS,Object[_0x36c312(0x2cd,'fxpv')]({'missing':'CAPTS_LICENSE_MISSING','invalid':_0x36c312(0x2c2,'E2Y#'),'expired':'CAPTS_LICENSE_EXPIRED'}));function grants(_0x2ba2b2,_0x145665){var _0x3c5917=_0x36c312;return _0x2ba2b2=Array[_0x3c5917(0x24a,'6EGX')](_0x2ba2b2)?_0x2ba2b2:[_0x2ba2b2],_0x2ba2b2[_0x3c5917(0x27a,'x1ZC')](_0x145665)||_0x145665[_0x3c5917(0x1e2,'$gBM')](PACKAGE_SCOPE)&&_0x2ba2b2[_0x3c5917(0x2b6,'fQhC')](ALL_PACKAGES);}function invalid(_0x2c6b4e,_0x3b75e4,_0x443f2c){var _0xe5b714=_0x36c312,_0x5613c9={'cDFnY':_0xe5b714(0x2b8,'f)sU')};return{'state':_0x5613c9[_0xe5b714(0x271,'TIE8')],'product':_0x2c6b4e,'reason':_0x3b75e4,'claims':_0x443f2c};}function decodeSegment(_0x55a778){var _0x566eb7=_0x36c312,_0x3e7a72={'czUJp':_0x566eb7(0x1d7,'yFG)')};return JSON[_0x566eb7(0x22f,'(A7y')](Buffer[_0x566eb7(0x281,'Iy]b')](_0x55a778,_0x566eb7(0x208,'&ZYw'))[_0x566eb7(0x276,'CF@(')](_0x3e7a72['czUJp']));}function verifySignature(_0x48e5bd,_0x1e81a3,_0x1c9c81){var _0x4b781a=_0x36c312,_0x5cdcf9={'IbBsQ':_0x4b781a(0x2a7,'U5Yx')};try{return crypto[_0x4b781a(0x221,'50ll')](null,Buffer[_0x4b781a(0x247,'TIE8')](_0x48e5bd),_0x1c9c81,Buffer[_0x4b781a(0x223,'E2Y#')](_0x1e81a3,_0x5cdcf9[_0x4b781a(0x24c,'zuax')]));}catch{return!0x1;}}function checkBinding(_0x1c68b0,_0x12d728){var _0x515dde=_0x36c312,_0x52b90c={'KExQL':_0x515dde(0x1ff,'j6cd'),'SmuTZ':function(_0x1c984d,_0x5878f6){return _0x1c984d+_0x5878f6;}},_0x13e506,_0x5410be,_0x2676f0;for([_0x13e506,_0x5410be,_0x2676f0]of[[_0x1c68b0?.[_0x515dde(0x1db,'U5Yx')],_0x12d728?.[_0x515dde(0x264,'PQf!')],_0x52b90c[_0x515dde(0x287,'UNid')]],[_0x1c68b0?.[_0x515dde(0x1f7,'9wg&')],_0x12d728?.[_0x515dde(0x225,'U5Yx')],_0x515dde(0x1cd,'7LMA')]])if(Array[_0x515dde(0x1e7,'Ri8F')](_0x13e506)&&0x0!==_0x13e506[_0x515dde(0x25d,'2^Q)')]&&(!_0x5410be||!_0x13e506['includes'](_0x5410be)))return _0x52b90c[_0x515dde(0x22a,'ig4&')](_0x515dde(0x252,'$gBM'),_0x2676f0);}function _0x4584(_0x52482f,_0x11b517){_0x52482f=_0x52482f-0x1c5;var _0x17ec1a=_0x17ec();var _0x4584f7=_0x17ec1a[_0x52482f];if(_0x4584['CfWOOj']===undefined){var _0x369831=function(_0x1c6803){var _0x3aa4d4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1f511b='',_0x267696='';for(var _0x1c0e47=0x0,_0x146e3d,_0x873e52,_0x590841=0x0;_0x873e52=_0x1c6803['charAt'](_0x590841++);~_0x873e52&&(_0x146e3d=_0x1c0e47%0x4?_0x146e3d*0x40+_0x873e52:_0x873e52,_0x1c0e47++%0x4)?_0x1f511b+=String['fromCharCode'](0xff&_0x146e3d>>(-0x2*_0x1c0e47&0x6)):0x0){_0x873e52=_0x3aa4d4['indexOf'](_0x873e52);}for(var _0x317c08=0x0,_0x8f504a=_0x1f511b['length'];_0x317c08<_0x8f504a;_0x317c08++){_0x267696+='%'+('00'+_0x1f511b['charCodeAt'](_0x317c08)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x267696);};var _0x122397=function(_0xc62652,_0x128980){var _0x16cc53=[],_0x4c0ad5=0x0,_0x5a4fd8,_0xd10f19='';_0xc62652=_0x369831(_0xc62652);var _0x5c7a4c;for(_0x5c7a4c=0x0;_0x5c7a4c<0x100;_0x5c7a4c++){_0x16cc53[_0x5c7a4c]=_0x5c7a4c;}for(_0x5c7a4c=0x0;_0x5c7a4c<0x100;_0x5c7a4c++){_0x4c0ad5=(_0x4c0ad5+_0x16cc53[_0x5c7a4c]+_0x128980['charCodeAt'](_0x5c7a4c%_0x128980['length']))%0x100,_0x5a4fd8=_0x16cc53[_0x5c7a4c],_0x16cc53[_0x5c7a4c]=_0x16cc53[_0x4c0ad5],_0x16cc53[_0x4c0ad5]=_0x5a4fd8;}_0x5c7a4c=0x0,_0x4c0ad5=0x0;for(var _0x573302=0x0;_0x573302<_0xc62652['length'];_0x573302++){_0x5c7a4c=(_0x5c7a4c+0x1)%0x100,_0x4c0ad5=(_0x4c0ad5+_0x16cc53[_0x5c7a4c])%0x100,_0x5a4fd8=_0x16cc53[_0x5c7a4c],_0x16cc53[_0x5c7a4c]=_0x16cc53[_0x4c0ad5],_0x16cc53[_0x4c0ad5]=_0x5a4fd8,_0xd10f19+=String['fromCharCode'](_0xc62652['charCodeAt'](_0x573302)^_0x16cc53[(_0x16cc53[_0x5c7a4c]+_0x16cc53[_0x4c0ad5])%0x100]);}return _0xd10f19;};_0x4584['JNzOaZ']=_0x122397,_0x4584['MpMmSO']={},_0x4584['CfWOOj']=!![];}var _0x40d3be=_0x17ec1a[0x0];_0x4584['uRTrIH']!==_0x40d3be&&(_0x4584['MpMmSO']={},_0x4584['uRTrIH']=_0x40d3be);var _0x191e8a=_0x4584['MpMmSO'][_0x52482f];return _0x191e8a===undefined?(_0x4584['umpcnb']===undefined&&(_0x4584['umpcnb']=!![]),_0x4584f7=_0x4584['JNzOaZ'](_0x4584f7,_0x11b517),_0x4584['MpMmSO'][_0x52482f]=_0x4584f7):_0x4584f7=_0x191e8a,_0x4584f7;}function verifyLicense(_0x1ee8c6,_0x4402fd){var _0x4195bc=_0x36c312,_0x49a775={'RUKlM':_0x4195bc(0x1ea,'%KxE'),'oJFLV':'missing','qCaqO':function(_0x392c44,_0x5d7cb5){return _0x392c44!==_0x5d7cb5;},'iXsyI':function(_0x5a1c08,_0x57c92d,_0x198ec1){return _0x5a1c08(_0x57c92d,_0x198ec1);},'VBcMF':_0x4195bc(0x1d9,'AMZm'),'PwdFI':function(_0x12f2d1,_0x3796c6){return _0x12f2d1(_0x3796c6);},'fcuKh':'its\x20header\x20or\x20payload\x20is\x20not\x20valid\x20JSON','RdzSF':_0x4195bc(0x261,'aU0g'),'eKbzS':function(_0x1d684a,_0x92dbf0,_0x40dc72){return _0x1d684a(_0x92dbf0,_0x40dc72);},'vnluJ':function(_0xaa834f,_0x3e3613){return _0xaa834f(_0x3e3613);},'WSMvh':function(_0x2ecd20,_0x27c2ef){return _0x2ecd20+_0x27c2ef;},'LVBXw':_0x4195bc(0x1f8,'(xgt'),'JJrnM':function(_0x2a07e1,_0x12e135,_0x4a494d,_0x168fd9){return _0x2a07e1(_0x12e135,_0x4a494d,_0x168fd9);},'GegBt':function(_0x25f604,_0x385f22){return _0x25f604+_0x385f22;},'xiSJz':function(_0x157562,_0x42dd04){return _0x157562!=_0x42dd04;},'TpgqB':_0x4195bc(0x201,'$gBM'),'CCIVp':function(_0x213043,_0x58accf,_0x22bc3d){return _0x213043(_0x58accf,_0x22bc3d);},'QSwir':function(_0x57fc73,_0x54ed69){return _0x57fc73!==_0x54ed69;},'hmQqt':function(_0x4a2408,_0x3602a6){return _0x4a2408===_0x3602a6;},'igflw':function(_0x787b20,_0x5c05b5){return _0x787b20!=_0x5c05b5;},'NhYyR':_0x4195bc(0x20e,'x1ZC'),'SONkd':function(_0x8d58ae,_0x415f56,_0x2f2423){return _0x8d58ae(_0x415f56,_0x2f2423);},'xgaVl':_0x4195bc(0x29e,'REDa'),'WOAhu':_0x4195bc(0x288,'zuax'),'zwfgj':function(_0x5a03f7,_0x4728de){return _0x5a03f7==_0x4728de;},'kpTeU':function(_0x65e1d1,_0x384cb4){return _0x65e1d1<_0x384cb4;},'eMKus':function(_0x3762e4,_0x3e7b9a){return _0x3762e4*_0x3e7b9a;},'cVYWs':_0x4195bc(0x217,'6EGX'),'CjDvH':function(_0x350b24,_0x39c638){return _0x350b24*_0x39c638;},'Nzkci':function(_0x304aad,_0x3cb1a6,_0x427e08){return _0x304aad(_0x3cb1a6,_0x427e08);},'dKjBC':function(_0x4dead1,_0x3167db){return _0x4dead1*_0x3167db;},'WfWdz':function(_0x5e913d,_0x48498c){return _0x5e913d==_0x48498c;},'zQprC':function(_0x3107da,_0x2fefc8){return _0x3107da<=_0x2fefc8;},'YnWQD':function(_0x4e2c5e,_0x4f7582){return _0x4e2c5e*_0x4f7582;},'iZXqV':function(_0x568b4c,_0x140e61){return _0x568b4c-_0x140e61;},'EMLVm':function(_0x10c1ac,_0x42bc25){return _0x10c1ac<_0x42bc25;},'wsgfZ':'expiring','Ctmgz':function(_0x73bcc1,_0x254e54){return _0x73bcc1<_0x254e54;},'ztxHF':'grace','fJTFv':'expired'},_0x4cdee8=_0x4402fd[_0x4195bc(0x233,'AMZm')];if(_0x49a775['RUKlM']!=typeof _0x1ee8c6||''===_0x1ee8c6['trim']())return{'state':_0x49a775[_0x4195bc(0x286,'zuax')],'product':_0x4cdee8};var _0x180234=_0x4402fd[_0x4195bc(0x278,')Fok')]??PUBLIC_KEYS,_0x5cedee=(_0x4402fd[_0x4195bc(0x1da,'x1ZC')]??new Date())[_0x4195bc(0x22b,'zuax')](),_0x1ee8c6=_0x1ee8c6['trim']()[_0x4195bc(0x265,'E2Y#')]('.');if(_0x49a775['qCaqO'](0x3,_0x1ee8c6[_0x4195bc(0x1dd,'PQf!')]))return _0x49a775[_0x4195bc(0x1f3,'zuax')](invalid,_0x4cdee8,_0x49a775[_0x4195bc(0x250,'TIE8')]);let _0x19959d,_0x4dbddc;try{_0x19959d=decodeSegment(_0x1ee8c6[0x0]),_0x4dbddc=_0x49a775['PwdFI'](decodeSegment,_0x1ee8c6[0x1]);}catch{return _0x49a775[_0x4195bc(0x263,'Q47F')](invalid,_0x4cdee8,_0x49a775[_0x4195bc(0x292,'Q47F')]);}if(_0x49a775[_0x4195bc(0x1f0,')Fok')](_0x49a775['RdzSF'],_0x19959d?.[_0x4195bc(0x1f1,'ig4&')]))return _0x49a775[_0x4195bc(0x1d8,'fxpv')](invalid,_0x4cdee8,'its\x20algorithm\x20'+_0x49a775[_0x4195bc(0x2b3,'C2f@')](String,_0x19959d?.['alg'])+'\x20is\x20not\x20EdDSA');var _0x1bd6f5=String(_0x19959d[_0x4195bc(0x228,'S1h^')]);if(!Object[_0x4195bc(0x2ba,'Tn#z')](_0x180234,_0x1bd6f5))return invalid(_0x4cdee8,_0x49a775[_0x4195bc(0x29b,'U5Yx')](_0x49a775[_0x4195bc(0x2ca,'aU0g')],_0x1bd6f5));if(!_0x49a775[_0x4195bc(0x2a8,'6EGX')](verifySignature,_0x49a775[_0x4195bc(0x26a,'U5Yx')](_0x49a775[_0x4195bc(0x2c1,'yFG)')](_0x1ee8c6[0x0],'.'),_0x1ee8c6[0x1]),_0x1ee8c6[0x2],_0x180234[_0x1bd6f5]))return _0x49a775[_0x4195bc(0x283,'nBby')](invalid,_0x4cdee8,_0x4195bc(0x21b,'C2f@'));if(null===_0x4dbddc||_0x49a775[_0x4195bc(0x2aa,'AMZm')](_0x49a775[_0x4195bc(0x227,'#DrJ')],typeof _0x4dbddc))return _0x49a775[_0x4195bc(0x24d,'j6cd')](invalid,_0x4cdee8,'its\x20payload\x20is\x20not\x20an\x20object');if(_0x49a775[_0x4195bc(0x2a4,'Tn#z')](_0x4dbddc['iss'],LICENSE_ISSUER))return _0x49a775[_0x4195bc(0x230,'Ri8F')](invalid,_0x4cdee8,'its\x20issuer\x20'+String(_0x4dbddc[_0x4195bc(0x2cc,'REDa')])+'\x20is\x20not\x20'+LICENSE_ISSUER);if(_0x49a775[_0x4195bc(0x23b,'fxpv')]!=typeof _0x4dbddc[_0x4195bc(0x2a1,'AMZm')]||_0x49a775['hmQqt']('',_0x4dbddc['sub'])||_0x49a775[_0x4195bc(0x238,'YG57')]!=typeof _0x4dbddc['jti']||_0x49a775['hmQqt']('',_0x4dbddc['jti'])||_0x49a775[_0x4195bc(0x29c,'9wg&')](_0x49a775[_0x4195bc(0x27e,'qVFL')],typeof _0x4dbddc[_0x4195bc(0x1e8,'AMZm')]))return _0x49a775[_0x4195bc(0x2c7,'U5Yx')](invalid,_0x4cdee8,_0x49a775[_0x4195bc(0x1c7,'FRiu')]);if(!grants(_0x4dbddc[_0x4195bc(0x1e1,'%KxE')],_0x4cdee8))return _0x49a775[_0x4195bc(0x2b1,'UNid')](invalid,_0x4cdee8,_0x49a775['WSMvh'](_0x49a775[_0x4195bc(0x2bc,'Tn#z')],_0x4cdee8),_0x4dbddc);if(_0x49a775[_0x4195bc(0x1e4,'Iy]b')](_0x49a775[_0x4195bc(0x220,'C2f@')],typeof _0x4dbddc[_0x4195bc(0x2c0,'zuax')])&&_0x49a775[_0x4195bc(0x20f,'f)sU')](_0x5cedee,_0x49a775['eMKus'](0x3e8,_0x4dbddc[_0x4195bc(0x285,'qVFL')])))return _0x49a775[_0x4195bc(0x251,'Tn#z')](invalid,_0x4cdee8,_0x49a775['cVYWs']+new Date(_0x49a775['CjDvH'](0x3e8,_0x4dbddc[_0x4195bc(0x21f,'7LMA')]))[_0x4195bc(0x289,'U5Yx')](),_0x4dbddc);_0x1ee8c6=_0x49a775[_0x4195bc(0x2ad,'j6cd')](checkBinding,_0x4dbddc[_0x4195bc(0x213,'50ll')],_0x4402fd[_0x4195bc(0x2a6,'YG57')]);if(_0x1ee8c6)return _0x49a775[_0x4195bc(0x27c,'fQhC')](invalid,_0x4cdee8,_0x1ee8c6,_0x4dbddc);_0x180234=new Date(_0x49a775[_0x4195bc(0x295,'6hFt')](0x3e8,_0x4dbddc[_0x4195bc(0x203,'x1ZC')])),_0x1bd6f5=_0x49a775[_0x4195bc(0x1cf,'Qv1w')](_0x4195bc(0x219,'#DrJ'),typeof _0x4dbddc[_0x4195bc(0x272,'7LMA')])&&_0x49a775[_0x4195bc(0x280,'UNid')](0x0,_0x4dbddc['grace'])?_0x4dbddc[_0x4195bc(0x2b0,'C2f@')]:DEFAULT_GRACE_DAYS,_0x4402fd=new Date(_0x49a775[_0x4195bc(0x267,'6hFt')](_0x180234[_0x4195bc(0x242,'PpUn')](),_0x49a775['YnWQD'](_0x1bd6f5,DAY_MS))),_0x1ee8c6=Math[_0x4195bc(0x23f,'CF@(')](_0x49a775[_0x4195bc(0x2bd,'Tn#z')](_0x180234[_0x4195bc(0x28b,'REDa')](),_0x5cedee)/DAY_MS);let _0x1ea4d1;return{'state':_0x1ea4d1=_0x49a775[_0x4195bc(0x275,'PQf!')](_0x5cedee,_0x180234[_0x4195bc(0x1cc,'2^Q)')]())?_0x1ee8c6<EXPIRY_WARNING_DAYS?_0x49a775[_0x4195bc(0x23a,'gJI9')]:_0x4195bc(0x20c,'hgjc'):_0x49a775[_0x4195bc(0x209,'fQhC')](_0x5cedee,_0x4402fd['getTime']())?_0x49a775[_0x4195bc(0x29d,'CF@(')]:_0x49a775['fJTFv'],'product':_0x4cdee8,'claims':_0x4dbddc,'expires':_0x180234,'graceEnds':_0x4402fd,'daysLeft':_0x1ee8c6};}function readTokens(_0xd1b41b){var _0xb5bf2=_0x36c312;return(Array[_0xb5bf2(0x236,'%KxE')](_0xd1b41b)?_0xd1b41b:[_0xd1b41b])[_0xb5bf2(0x1fa,'2^Q)')](_0x195847=>_0xb5bf2(0x200,'UNid')==typeof _0x195847)[_0xb5bf2(0x22e,')XDK')](_0x2a7578=>_0x2a7578[_0xb5bf2(0x2a3,'CF@(')](/[\s,]+/))[_0xb5bf2(0x2a0,'zuax')](Boolean);}exports[_0x36c312(0x20d,')XDK')]=LICENSE_ERROR_CODES;let STATE_RANK=Object[_0x36c312(0x2cb,'Qv1w')]({'missing':0x0,'invalid':0x1,'expired':0x2,'grace':0x3,'expiring':0x4,'valid':0x5});function selectLicense(_0x2e7acf,_0x358a28){var _0x4b7531=_0x36c312,_0x32c27f={'UofKR':_0x4b7531(0x211,'C2f@'),'afQiN':function(_0x2f3dd3,_0xcc209d,_0x4b1487){return _0x2f3dd3(_0xcc209d,_0x4b1487);},'BRXil':function(_0xf64474,_0x59256e){return _0xf64474>_0x59256e;}};let _0x1f7796={'state':_0x32c27f['UofKR'],'product':_0x358a28[_0x4b7531(0x2ce,'U5Yx')]};for(var _0x432c68 of _0x2e7acf){_0x432c68=_0x32c27f[_0x4b7531(0x1d0,'UNid')](verifyLicense,_0x432c68,_0x358a28),_0x32c27f[_0x4b7531(0x256,'7LMA')](STATE_RANK[_0x432c68[_0x4b7531(0x1df,'(A7y')]],STATE_RANK[_0x1f7796[_0x4b7531(0x1c5,'U5Yx')]])&&(_0x1f7796=_0x432c68);}return _0x1f7796;}function licensedFeature(_0x316730,_0x5ce0a7){var _0x570e3f=_0x36c312,_0x227f3c={'mfnCm':function(_0x382cca,_0x3d4ae7){return _0x382cca===_0x3d4ae7;},'WfxFu':_0x570e3f(0x224,'oW5l'),'lLrsP':_0x570e3f(0x245,'aU0g'),'bsENb':function(_0x5cd52e,_0xdf2f3b){return _0x5cd52e===_0xdf2f3b;},'puSCy':_0x570e3f(0x2af,'PQf!')};if(_0x227f3c[_0x570e3f(0x20b,'REDa')](_0x227f3c[_0x570e3f(0x241,'hgjc')],_0x316730[_0x570e3f(0x26b,'Tn#z')])||_0x227f3c['lLrsP']===_0x316730[_0x570e3f(0x257,'Iy]b')]||_0x227f3c[_0x570e3f(0x26f,'#DrJ')](_0x227f3c[_0x570e3f(0x249,'Tn#z')],_0x316730[_0x570e3f(0x25a,'eSpf')]))return _0x316730[_0x570e3f(0x293,'x1ZC')][_0x570e3f(0x2b2,'U5Yx')]?.[_0x316730[_0x570e3f(0x2c4,'E2Y#')]]?.[_0x5ce0a7];}function readVcap(){var _0x11e350=_0x36c312,_0x54b490=process.env.VCAP_APPLICATION;if(_0x54b490)try{return JSON[_0x11e350(0x253,'zuax')](_0x54b490);}catch{}}function isProduction(_0x572b44){var _0x5227a7=_0x36c312,_0xbdc588={'dZytu':_0x5227a7(0x1f4,'50ll'),'xzTkP':function(_0x42a2c1,_0x6655a2){return _0x42a2c1(_0x6655a2);}};return _0x572b44=_0x572b44?.[_0x5227a7(0x2c9,'(A7y')],Array[_0x5227a7(0x25f,'$gBM')](_0x572b44)&&_0x572b44[_0x5227a7(0x25b,'nBby')](_0xbdc588[_0x5227a7(0x2c5,')Fok')])||_0xbdc588[_0x5227a7(0x24e,'E2Y#')](Boolean,process.env.VCAP_APPLICATION);}function isUsedThroughEsi(_0x39f865){var _0x2e7262=_0x36c312,_0x510065={'YWrqp':_0x2e7262(0x298,'fQhC'),'kHGvP':function(_0x5095ce,_0x480a88){return _0x5095ce!==_0x480a88;}};return _0x39f865=_0x39f865?.['plugins'],_0x510065['YWrqp']==typeof _0x39f865&&_0x510065['kHGvP'](null,_0x39f865)&&Object[_0x2e7262(0x23c,'oW5l')](_0x39f865,ESI_PACKAGE);}function day(_0x57d65f){var _0x17c0db=_0x36c312;return _0x57d65f[_0x17c0db(0x2b5,'Qv1w')]()[_0x17c0db(0x268,'UNid')](0x0,0xa);}function describeFailure(_0x378bca){var _0x54644c=_0x36c312,_0x2d0b1c={'HqMgb':function(_0x122b19,_0x3a6045){return _0x122b19===_0x3a6045;},'zpnWC':_0x54644c(0x1ee,'UNid'),'yTrqo':function(_0x21b70b,_0x451e84){return _0x21b70b+_0x451e84;},'XqCMx':function(_0xeb0a98,_0x348950){return _0xeb0a98(_0x348950);},'DOSuL':function(_0x46039c,_0x120536){return _0x46039c(_0x120536);}};return _0x2d0b1c[_0x54644c(0x269,'(A7y')](_0x2d0b1c[_0x54644c(0x214,'Ri8F')],_0x378bca['state'])?_0x54644c(0x258,'2^Q)')+_0x378bca[_0x54644c(0x218,'aU0g')]+_0x54644c(0x204,'qVFL')+CONFIG_HINT+_0x54644c(0x232,'PpUn'):_0x2d0b1c[_0x54644c(0x28d,'x1ZC')](_0x54644c(0x229,'AMZm'),_0x378bca[_0x54644c(0x1c5,'U5Yx')])?_0x54644c(0x277,'ig4&')+_0x378bca[_0x54644c(0x290,'x1ZC')]+_0x54644c(0x22c,'Iy]b')+_0x378bca[_0x54644c(0x239,'(A7y')]+'.':_0x2d0b1c[_0x54644c(0x2bf,'(xgt')](_0x54644c(0x1d3,'U5Yx')+_0x378bca[_0x54644c(0x1ce,'FRiu')]+'\x20licence\x20'+_0x378bca[_0x54644c(0x2c8,'eSpf')][_0x54644c(0x1ef,'REDa')]+_0x54644c(0x1d6,'Ri8F')+_0x378bca[_0x54644c(0x215,'zuax')][_0x54644c(0x24f,'7LMA')]+_0x54644c(0x273,'Qa5z'),_0x2d0b1c[_0x54644c(0x27d,'aU0g')](day,_0x378bca[_0x54644c(0x2c3,'&ZYw')])+'\x20and\x20its\x20grace\x20period\x20ended\x20on\x20'+_0x2d0b1c[_0x54644c(0x1d1,'Qv1w')](day,_0x378bca[_0x54644c(0x1f6,'FRiu')])+'.');}function enforceLicense(_0x132e3d){var _0xf5616e=_0x36c312,_0x14d368={'ckwUf':function(_0x5ddd19,_0x49f650){return _0x5ddd19(_0x49f650);},'ESbSe':_0xf5616e(0x1dc,')XDK'),'sBtLl':function(_0x42ab84,_0x3e4e3f){return _0x42ab84+_0x3e4e3f;},'QMcPH':function(_0x2a3054,_0x4eebf8){return _0x2a3054(_0x4eebf8);},'rBlut':_0xf5616e(0x28e,'50ll'),'brDLY':function(_0x5176c8,_0x3ee236){return _0x5176c8(_0x3ee236);},'axKMk':_0xf5616e(0x259,'eSpf'),'XyBWr':_0xf5616e(0x231,'AMZm'),'dfaLB':'\x20Running\x20in\x20evaluation\x20mode\x20because\x20this\x20is\x20not\x20a\x20production\x20environment.'},{product:_0x41a878,env:_0x1b82f5,log:_0x5b45b3}=_0x132e3d,_0x5012b4=selectLicense(_0x14d368[_0xf5616e(0x284,'FRiu')](readTokens,_0x1b82f5?.['capts']?.[_0xf5616e(0x25c,'ig4&')]),{'product':_0x41a878,'keys':_0x132e3d[_0xf5616e(0x1c9,'AMZm')],'now':_0x132e3d[_0xf5616e(0x226,'E2Y#')],'vcap':readVcap()}),_0x3abe83=_0x5012b4[_0xf5616e(0x294,'#DrJ')];switch(_0x5012b4[_0xf5616e(0x27f,'YG57')]){case _0xf5616e(0x28c,'gJI9'):return _0x5b45b3[_0xf5616e(0x26d,'Tn#z')](_0x41a878+_0xf5616e(0x216,'6EGX')+_0x3abe83[_0xf5616e(0x246,'E2Y#')]+'\x20until\x20'+day(_0x5012b4['expires'])+'\x20(licence\x20'+_0x3abe83[_0xf5616e(0x1fd,'YG57')]+')'),_0x5012b4;case _0x14d368[_0xf5616e(0x2ac,'6hFt')]:return _0x5b45b3['warn'](_0x14d368[_0xf5616e(0x212,'$gBM')](_0xf5616e(0x254,'2MMK')+_0x41a878+'\x20licence\x20'+_0x3abe83['jti']+_0xf5616e(0x202,'fQhC')+_0x3abe83[_0xf5616e(0x2a5,'Q47F')]+_0xf5616e(0x255,'Iy]b')+_0x14d368[_0xf5616e(0x1e6,'f)sU')](day,_0x5012b4[_0xf5616e(0x1f5,'aU0g')])+'\x20','('+_0x5012b4[_0xf5616e(0x24b,')Fok')]+_0xf5616e(0x1eb,'(A7y'))),_0x5012b4;case _0x14d368[_0xf5616e(0x1c8,')Fok')]:return _0x5b45b3[_0xf5616e(0x222,'Tn#z')](_0x14d368['sBtLl'](_0xf5616e(0x1ed,'TIE8')+_0x41a878+_0xf5616e(0x260,'7LMA')+_0x3abe83[_0xf5616e(0x29f,'Ri8F')]+'\x20for\x20'+_0x3abe83[_0xf5616e(0x29a,'50ll')]+_0xf5616e(0x1fb,'Qv1w')+_0x14d368[_0xf5616e(0x25e,'7LMA')](day,_0x5012b4[_0xf5616e(0x248,'oW5l')])+'.\x20',_0xf5616e(0x206,'Qv1w')+_0x14d368[_0xf5616e(0x262,'9wg&')](day,_0x5012b4['graceEnds'])+'\x20the\x20application\x20no\x20longer\x20starts\x20with\x20'+_0x41a878+_0xf5616e(0x291,'C2f@'))),_0x5012b4;default:var _0x1cca37,_0x17bf2=_0x14d368[_0xf5616e(0x2cf,'(A7y')](describeFailure,_0x5012b4)+'\x20'+CONTACT;if(isProduction(_0x1b82f5))throw(_0x1cca37=new Error(_0x17bf2))[_0xf5616e(0x270,'CF@(')]=LICENSE_ERROR_CODES[_0x5012b4[_0xf5616e(0x21a,'2^Q)')]],_0x1cca37[_0xf5616e(0x299,'$gBM')]=_0x41a878,_0x1cca37;return _0x5b45b3[isUsedThroughEsi(_0x1b82f5)?_0x14d368[_0xf5616e(0x1de,'50ll')]:_0x14d368['XyBWr']](_0x14d368[_0xf5616e(0x2ae,'Tn#z')](_0x17bf2,_0x14d368['dfaLB'])),_0x5012b4;}}module[_0x36c312(0x2be,'CF@(')]={'ALL_PACKAGES':ALL_PACKAGES,'DEFAULT_GRACE_DAYS':DEFAULT_GRACE_DAYS,'enforceLicense':enforceLicense,'EXPIRY_WARNING_DAYS':EXPIRY_WARNING_DAYS,'grants':grants,'LICENSE_ERROR_CODES':LICENSE_ERROR_CODES,'LICENSE_ISSUER':LICENSE_ISSUER,'licensedFeature':licensedFeature,'PACKAGE_SCOPE':PACKAGE_SCOPE,'PUBLIC_KEYS':PUBLIC_KEYS,'readTokens':readTokens,'selectLicense':selectLicense,'verifyLicense':verifyLicense,'__test':{'checkBinding':checkBinding,'isProduction':isProduction,'readVcap':readVcap}};
package/src/index.js CHANGED
@@ -1 +1 @@
1
- function _0x26a8(_0x419598,_0x3a4481){_0x419598=_0x419598-0xca;var _0x298722=_0x2987();var _0x26a8e4=_0x298722[_0x419598];if(_0x26a8['ssrjxv']===undefined){var _0x2fa659=function(_0x5f5207){var _0x507471='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x179ba6='',_0x2ce032='';for(var _0x2f8858=0x0,_0x307346,_0x528caf,_0x4b9c81=0x0;_0x528caf=_0x5f5207['charAt'](_0x4b9c81++);~_0x528caf&&(_0x307346=_0x2f8858%0x4?_0x307346*0x40+_0x528caf:_0x528caf,_0x2f8858++%0x4)?_0x179ba6+=String['fromCharCode'](0xff&_0x307346>>(-0x2*_0x2f8858&0x6)):0x0){_0x528caf=_0x507471['indexOf'](_0x528caf);}for(var _0x72be91=0x0,_0x501633=_0x179ba6['length'];_0x72be91<_0x501633;_0x72be91++){_0x2ce032+='%'+('00'+_0x179ba6['charCodeAt'](_0x72be91)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ce032);};var _0x49799a=function(_0x3f0b76,_0x17505a){var _0x315b5e=[],_0x31fee6=0x0,_0x19b646,_0x4561e9='';_0x3f0b76=_0x2fa659(_0x3f0b76);var _0x4f8749;for(_0x4f8749=0x0;_0x4f8749<0x100;_0x4f8749++){_0x315b5e[_0x4f8749]=_0x4f8749;}for(_0x4f8749=0x0;_0x4f8749<0x100;_0x4f8749++){_0x31fee6=(_0x31fee6+_0x315b5e[_0x4f8749]+_0x17505a['charCodeAt'](_0x4f8749%_0x17505a['length']))%0x100,_0x19b646=_0x315b5e[_0x4f8749],_0x315b5e[_0x4f8749]=_0x315b5e[_0x31fee6],_0x315b5e[_0x31fee6]=_0x19b646;}_0x4f8749=0x0,_0x31fee6=0x0;for(var _0xd3b8c5=0x0;_0xd3b8c5<_0x3f0b76['length'];_0xd3b8c5++){_0x4f8749=(_0x4f8749+0x1)%0x100,_0x31fee6=(_0x31fee6+_0x315b5e[_0x4f8749])%0x100,_0x19b646=_0x315b5e[_0x4f8749],_0x315b5e[_0x4f8749]=_0x315b5e[_0x31fee6],_0x315b5e[_0x31fee6]=_0x19b646,_0x4561e9+=String['fromCharCode'](_0x3f0b76['charCodeAt'](_0xd3b8c5)^_0x315b5e[(_0x315b5e[_0x4f8749]+_0x315b5e[_0x31fee6])%0x100]);}return _0x4561e9;};_0x26a8['tkbgxm']=_0x49799a,_0x26a8['pjGJSr']={},_0x26a8['ssrjxv']=!![];}var _0x334929=_0x298722[0x0];_0x26a8['jNPylt']!==_0x334929&&(_0x26a8['pjGJSr']={},_0x26a8['jNPylt']=_0x334929);var _0x32af5c=_0x26a8['pjGJSr'][_0x419598];return _0x32af5c===undefined?(_0x26a8['hjSyyR']===undefined&&(_0x26a8['hjSyyR']=!![]),_0x26a8e4=_0x26a8['tkbgxm'](_0x26a8e4,_0x3a4481),_0x26a8['pjGJSr'][_0x419598]=_0x26a8e4):_0x26a8e4=_0x32af5c,_0x26a8e4;}var _0x1e9528=_0x26a8;function _0x2987(){var _0x539ca4=['W7hdS8o5W6JdGCoJvmkMESkWAXa','W5VcKSkrW5ZdVSo1FrPBEey','eCobqMxcGSkwEeW','iJ5yWQXfW7ZdUIW','W7ldTCoZW6ZdICoMwmkwwSkwwIS','WRrIWQPqW7VdQt3dMxxcQG','t8onq2zoWOa8W7mPxGVcJ3yd','wmk7W7OqWQuhhCkfasBcHa','W51acM5kt8otdZq','eCoddJVcH8k3AuZcLMW','WPFcQ8ookCoId3veESogWRa','gSkEfZSqW5aJW6qCqZJcIq','W5vnW6yOqw3dVLjFiJS','W7OoW5TPW5FcGmopdfaVoCkp','gCkChuLQWQa2W4qt','WOxcKSovua','WQhcRq/cU8obWQOlbSkdnmkWra'];_0x2987=function(){return _0x539ca4;};return _0x2987();}(function(_0x315f14,_0x220433){var _0x317090=_0x26a8,_0x1062e1=_0x315f14();while(!![]){try{var _0xd844e9=-parseInt(_0x317090(0xd6,'!9*6'))/0x1+-parseInt(_0x317090(0xd3,'X^JY'))/0x2+parseInt(_0x317090(0xd1,'JaOu'))/0x3+parseInt(_0x317090(0xcd,'Tug&'))/0x4*(parseInt(_0x317090(0xda,'W8cy'))/0x5)+parseInt(_0x317090(0xd7,'wer['))/0x6+parseInt(_0x317090(0xcb,'ho01'))/0x7*(-parseInt(_0x317090(0xd2,'lwWc'))/0x8)+parseInt(_0x317090(0xd5,'dsJ%'))/0x9;if(_0xd844e9===_0x220433)break;else _0x1062e1['push'](_0x1062e1['shift']());}catch(_0x235550){_0x1062e1['push'](_0x1062e1['shift']());}}}(_0x2987,0x1bcab),(Object[_0x1e9528(0xd0,'dsJ%')](exports,_0x1e9528(0xcf,'q]j('),{'value':!0x0}),exports[_0x1e9528(0xd9,'*&h4')]=void 0x0,exports['soap']=require('./lib')));
1
+ function _0x2324(_0x459da8,_0x4a060f){_0x459da8=_0x459da8-0xa1;var _0x14d5dd=_0x14d5();var _0x232485=_0x14d5dd[_0x459da8];if(_0x2324['MQiNUT']===undefined){var _0x52c69f=function(_0x2c7689){var _0x5480a4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1a5476='',_0x1bac15='';for(var _0x4f39be=0x0,_0x5a367c,_0x29f86a,_0x36285c=0x0;_0x29f86a=_0x2c7689['charAt'](_0x36285c++);~_0x29f86a&&(_0x5a367c=_0x4f39be%0x4?_0x5a367c*0x40+_0x29f86a:_0x29f86a,_0x4f39be++%0x4)?_0x1a5476+=String['fromCharCode'](0xff&_0x5a367c>>(-0x2*_0x4f39be&0x6)):0x0){_0x29f86a=_0x5480a4['indexOf'](_0x29f86a);}for(var _0x3d18ea=0x0,_0x2949d8=_0x1a5476['length'];_0x3d18ea<_0x2949d8;_0x3d18ea++){_0x1bac15+='%'+('00'+_0x1a5476['charCodeAt'](_0x3d18ea)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1bac15);};var _0x1fd6ed=function(_0x30989d,_0x1a52fc){var _0x45bbf5=[],_0x4a4cd9=0x0,_0x18a5b3,_0x3dacbd='';_0x30989d=_0x52c69f(_0x30989d);var _0x126732;for(_0x126732=0x0;_0x126732<0x100;_0x126732++){_0x45bbf5[_0x126732]=_0x126732;}for(_0x126732=0x0;_0x126732<0x100;_0x126732++){_0x4a4cd9=(_0x4a4cd9+_0x45bbf5[_0x126732]+_0x1a52fc['charCodeAt'](_0x126732%_0x1a52fc['length']))%0x100,_0x18a5b3=_0x45bbf5[_0x126732],_0x45bbf5[_0x126732]=_0x45bbf5[_0x4a4cd9],_0x45bbf5[_0x4a4cd9]=_0x18a5b3;}_0x126732=0x0,_0x4a4cd9=0x0;for(var _0x47933a=0x0;_0x47933a<_0x30989d['length'];_0x47933a++){_0x126732=(_0x126732+0x1)%0x100,_0x4a4cd9=(_0x4a4cd9+_0x45bbf5[_0x126732])%0x100,_0x18a5b3=_0x45bbf5[_0x126732],_0x45bbf5[_0x126732]=_0x45bbf5[_0x4a4cd9],_0x45bbf5[_0x4a4cd9]=_0x18a5b3,_0x3dacbd+=String['fromCharCode'](_0x30989d['charCodeAt'](_0x47933a)^_0x45bbf5[(_0x45bbf5[_0x126732]+_0x45bbf5[_0x4a4cd9])%0x100]);}return _0x3dacbd;};_0x2324['GuvTWk']=_0x1fd6ed,_0x2324['hOwnoU']={},_0x2324['MQiNUT']=!![];}var _0x500a54=_0x14d5dd[0x0];_0x2324['VqWYyb']!==_0x500a54&&(_0x2324['hOwnoU']={},_0x2324['VqWYyb']=_0x500a54);var _0x396bed=_0x2324['hOwnoU'][_0x459da8];return _0x396bed===undefined?(_0x2324['jNnezB']===undefined&&(_0x2324['jNnezB']=!![]),_0x232485=_0x2324['GuvTWk'](_0x232485,_0x4a060f),_0x2324['hOwnoU'][_0x459da8]=_0x232485):_0x232485=_0x396bed,_0x232485;}var _0x5bb7f9=_0x2324;(function(_0x57231c,_0x2e484c){var _0x9dc6b=_0x2324,_0x2f37d4=_0x57231c();while(!![]){try{var _0x316ee4=-parseInt(_0x9dc6b(0xab,'pS4h'))/0x1+-parseInt(_0x9dc6b(0xac,']rHP'))/0x2*(-parseInt(_0x9dc6b(0xa4,'qVnf'))/0x3)+parseInt(_0x9dc6b(0xa6,'RU]u'))/0x4*(parseInt(_0x9dc6b(0xae,'vSZs'))/0x5)+-parseInt(_0x9dc6b(0xa2,'ozMx'))/0x6+parseInt(_0x9dc6b(0xb0,'BiKG'))/0x7+parseInt(_0x9dc6b(0xa7,'8SgD'))/0x8+parseInt(_0x9dc6b(0xa8,'ozMx'))/0x9*(-parseInt(_0x9dc6b(0xa3,'vr(u'))/0xa);if(_0x316ee4===_0x2e484c)break;else _0x2f37d4['push'](_0x2f37d4['shift']());}catch(_0x123461){_0x2f37d4['push'](_0x2f37d4['shift']());}}}(_0x14d5,0x550ff),(Object[_0x5bb7f9(0xb1,'mlpO')](exports,'__esModule',{'value':!0x0}),exports[_0x5bb7f9(0xa9,'(tog')]=void 0x0,exports['soap']=require('./lib')));function _0x14d5(){var _0xae52fd=['yLOgW7aml3FcISkAvCkSWPa','lCoXxNjuWQhcLCoNEdZdTmoK','n8kwcYzbpmorWOtdJ2/dVv3dNa','eCokWPetCMnVWRFcLaW','maX4gq','WRHQhh9zahldIqGi','zCkhD8kkWQeymr4XaYhcOa','W5VdUSkfu1yIt2Ld','W7hdNCozzSoAnuSdW4ldQrddQ8kD','wGLcWQnLWOKuWRy','gCk+fa/cLwL0W68iW4VcP8ou','W4TknSkgWOldOK3cKdtdMaHk','WPBcK2igxSkbW5BdL8kTW7BdRCoVW4pdPG','D1DbbKldOX3dHrfVicy','FCk3ymocv1NcHmkY','uYPQWRZcSmoPbY1iW74','BmoAqca/W4FcHmomoq','f8omWPqsmH1bWPpcUbD2W4q','WQZdPrBdJSkUaSkSWOBcG8owW6y','sWzoW5SkWRrsW7S1Ea'];_0x14d5=function(){return _0xae52fd;};return _0x14d5();}