@lossless.org/client 1.18.0 → 1.18.2
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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/nosqldb/classes.bsonassertion.d.ts +6 -2
- package/dist_ts/nosqldb/classes.bsonassertion.js +9 -7
- package/dist_ts/nosqldb/classes.collection.js +12 -2
- package/dist_ts/nosqldb/classes.collectiontopology.d.ts +7 -0
- package/dist_ts/nosqldb/classes.collectiontopology.js +25 -2
- package/dist_ts/nosqldb/classes.exactpersistence.d.ts +41 -5
- package/dist_ts/nosqldb/classes.exactpersistence.js +133 -90
- package/dist_ts/nosqldb/classes.ordinarypersistence.js +2 -2
- package/package.json +4 -4
- package/readme.md +1 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/nosqldb/classes.bsonassertion.ts +9 -6
- package/ts/nosqldb/classes.collection.ts +12 -1
- package/ts/nosqldb/classes.collectiontopology.ts +32 -4
- package/ts/nosqldb/classes.exactpersistence.ts +183 -144
- package/ts/nosqldb/classes.ordinarypersistence.ts +2 -1
|
@@ -25,17 +25,7 @@ export class SmartdataExactPersistenceError extends Error {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
const exactCollectionCache = new WeakMap();
|
|
28
|
-
const bytesEqual = (leftArg, rightArg) =>
|
|
29
|
-
if (leftArg.byteLength !== rightArg.byteLength) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
for (let index = 0; index < leftArg.byteLength; index++) {
|
|
33
|
-
if (leftArg[index] !== rightArg[index]) {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return true;
|
|
38
|
-
};
|
|
28
|
+
const bytesEqual = (leftArg, rightArg) => Buffer.compare(leftArg, rightArg) === 0;
|
|
39
29
|
const hasOwn = (documentArg, keyArg) => Object.prototype.hasOwnProperty.call(documentArg, keyArg);
|
|
40
30
|
const isPlainObject = (valueArg) => {
|
|
41
31
|
if (typeof valueArg !== 'object' || valueArg === null) {
|
|
@@ -585,16 +575,31 @@ export class SmartdataExactCollection {
|
|
|
585
575
|
interruptedWriteError(labelArg, causeArg) {
|
|
586
576
|
return this.ambiguousWriteError(`${labelArg} was interrupted by its client deadline or signal in flight; its outcome is unknown.`, normalizeDeadlineError(causeArg));
|
|
587
577
|
}
|
|
578
|
+
/** The collection's one BSON encoder: every encoding of a row passes here. */
|
|
579
|
+
encodeBson(documentArg) {
|
|
580
|
+
return plugins.mongodb.BSON.serialize(documentArg);
|
|
581
|
+
}
|
|
582
|
+
/** The collection's one BSON decoder: every decoding of a row passes here. */
|
|
583
|
+
decodeBson(bytesArg) {
|
|
584
|
+
return plugins.mongodb.BSON.deserialize(bytesArg);
|
|
585
|
+
}
|
|
586
|
+
/** Decodes proven canonical bytes into a fresh canonical document. */
|
|
587
|
+
decodeCanonical(bytesArg) {
|
|
588
|
+
return canonicalizeValue(this.decodeBson(bytesArg));
|
|
589
|
+
}
|
|
590
|
+
/**
|
|
591
|
+
* The exactness proof: the document's sorted encoding must decode and
|
|
592
|
+
* encode again to the same bytes. Returns those canonical bytes and the
|
|
593
|
+
* decoding the proof produced, which no caller has seen yet.
|
|
594
|
+
*/
|
|
588
595
|
canonicalizeDocument(documentArg, labelArg) {
|
|
589
|
-
let canonicalInput;
|
|
590
596
|
let serialized;
|
|
591
597
|
let canonical;
|
|
592
598
|
let reserialized;
|
|
593
599
|
try {
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
reserialized = plugins.mongodb.BSON.serialize(canonical);
|
|
600
|
+
serialized = this.encodeBson(canonicalizeValue(documentArg));
|
|
601
|
+
canonical = canonicalizeValue(this.decodeBson(serialized));
|
|
602
|
+
reserialized = this.encodeBson(canonical);
|
|
598
603
|
}
|
|
599
604
|
catch (errorArg) {
|
|
600
605
|
throw new SmartdataExactPersistenceError('invalid_document', `${labelArg} is not BSON serializable.`, { cause: errorArg });
|
|
@@ -602,7 +607,23 @@ export class SmartdataExactCollection {
|
|
|
602
607
|
if (!bytesEqual(serialized, reserialized)) {
|
|
603
608
|
throw new SmartdataExactPersistenceError('noncanonical_document', `${labelArg} is not byte-stable across a BSON roundtrip.`);
|
|
604
609
|
}
|
|
605
|
-
return canonical;
|
|
610
|
+
return { document: canonical, bytes: serialized };
|
|
611
|
+
}
|
|
612
|
+
/**
|
|
613
|
+
* Whether a document encodes canonically to bytes an earlier proof
|
|
614
|
+
* produced. Equal bytes carry that proof and its assertion over, so the
|
|
615
|
+
* caller needs neither again; on a mismatch the caller runs the full proof
|
|
616
|
+
* to report what is wrong.
|
|
617
|
+
*/
|
|
618
|
+
encodesAs(documentArg, provenBytesArg) {
|
|
619
|
+
let bytes;
|
|
620
|
+
try {
|
|
621
|
+
bytes = this.encodeBson(canonicalizeValue(documentArg));
|
|
622
|
+
}
|
|
623
|
+
catch {
|
|
624
|
+
return false;
|
|
625
|
+
}
|
|
626
|
+
return bytesEqual(bytes, provenBytesArg);
|
|
606
627
|
}
|
|
607
628
|
assertAllowedTopLevelKeys(documentArg, allowedMetadataKeysArg, labelArg) {
|
|
608
629
|
const allowedMetadataKeys = new Set(allowedMetadataKeysArg);
|
|
@@ -617,51 +638,72 @@ export class SmartdataExactCollection {
|
|
|
617
638
|
}
|
|
618
639
|
}
|
|
619
640
|
}
|
|
620
|
-
|
|
641
|
+
/**
|
|
642
|
+
* Proves an application body canonical and runs the assertion once, on the
|
|
643
|
+
* proof's own decoding, which is never handed out. Returns the canonical
|
|
644
|
+
* bytes of the body.
|
|
645
|
+
*/
|
|
646
|
+
provePersistedDocument(documentArg) {
|
|
621
647
|
this.assertAllowedTopLevelKeys(documentArg, [], 'Persisted document');
|
|
622
|
-
const
|
|
623
|
-
this.
|
|
624
|
-
|
|
648
|
+
const { document, bytes } = this.canonicalizeDocument(documentArg, 'Persisted document');
|
|
649
|
+
this.assertAllowedTopLevelKeys(document, [], 'Persisted document');
|
|
650
|
+
this.assertWithoutMutation(document, bytes, 'Persisted document');
|
|
651
|
+
return bytes;
|
|
625
652
|
}
|
|
626
|
-
|
|
653
|
+
/**
|
|
654
|
+
* Proves a stored envelope canonical, checks its storage metadata and runs
|
|
655
|
+
* the assertion once on its body. The body is the proof's own decoding with
|
|
656
|
+
* the metadata removed, so the assertion never sees a document a caller
|
|
657
|
+
* receives. Returns the canonical bytes of the envelope and of its body.
|
|
658
|
+
*/
|
|
659
|
+
proveStoredDocument(documentArg) {
|
|
627
660
|
this.assertAllowedTopLevelKeys(documentArg, storageMetadataKeys, 'Stored document');
|
|
628
|
-
const
|
|
629
|
-
|
|
630
|
-
|
|
661
|
+
const { document, bytes } = this.canonicalizeDocument(documentArg, 'Stored document');
|
|
662
|
+
this.assertAllowedTopLevelKeys(document, storageMetadataKeys, 'Stored document');
|
|
663
|
+
const revision = document._smartdataRevision;
|
|
664
|
+
if (!isMongoObjectId(document._id)) {
|
|
631
665
|
throw new SmartdataExactPersistenceError('invalid_document', 'Stored document _id must be a MongoDB ObjectId.');
|
|
632
666
|
}
|
|
633
667
|
if (revision !== undefined &&
|
|
634
668
|
(typeof revision !== 'string' || revision.length === 0)) {
|
|
635
669
|
throw new SmartdataExactPersistenceError('invalid_document', 'Stored document _smartdataRevision must be a nonempty string when present.');
|
|
636
670
|
}
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
}
|
|
640
|
-
assertWithoutMutation(documentArg, labelArg) {
|
|
641
|
-
assertBsonWithoutMutation(documentArg, this.options.assertDocument, (reasonArg, causeArg) => new SmartdataExactPersistenceError('invalid_document', `${labelArg} ${reasonArg === 'assertion' ? 'assertion failed.' :
|
|
642
|
-
reasonArg === 'bson' ? 'validator produced a non-BSON document.' :
|
|
643
|
-
'validator must not mutate the document.'}`, causeArg === undefined ? undefined : { cause: causeArg }));
|
|
644
|
-
}
|
|
645
|
-
getPersistedBody(storedDocumentArg) {
|
|
646
|
-
const body = Object.create(null);
|
|
647
|
-
for (const key of Object.keys(storedDocumentArg)) {
|
|
648
|
-
if (!reservedKeys.includes(key)) {
|
|
649
|
-
body[key] = storedDocumentArg[key];
|
|
650
|
-
}
|
|
671
|
+
for (const key of storageMetadataKeys) {
|
|
672
|
+
delete document[key];
|
|
651
673
|
}
|
|
652
|
-
|
|
674
|
+
const bodyBytes = this.encodeBson(document);
|
|
675
|
+
this.assertWithoutMutation(document, bodyBytes, 'Persisted document');
|
|
676
|
+
return { bytes, bodyBytes };
|
|
653
677
|
}
|
|
654
|
-
|
|
655
|
-
|
|
678
|
+
/** Proves a stored envelope and returns a fresh canonical decoding of it. */
|
|
679
|
+
readStoredDocument(documentArg) {
|
|
680
|
+
const { bytes, bodyBytes } = this.proveStoredDocument(documentArg);
|
|
681
|
+
return {
|
|
682
|
+
document: this.decodeCanonical(bytes),
|
|
683
|
+
bodyBytes,
|
|
684
|
+
};
|
|
656
685
|
}
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
686
|
+
/**
|
|
687
|
+
* The canonical envelope of a proven body. BSON encodes every element on
|
|
688
|
+
* its own, so a proven body with inert metadata is canonical as a whole;
|
|
689
|
+
* only the canonical key order has to be restored.
|
|
690
|
+
*/
|
|
691
|
+
composeStoredDocument(bodyArg, metadataArg) {
|
|
692
|
+
const fields = new Map(Object.entries(bodyArg));
|
|
693
|
+
fields.set('_id', metadataArg._id);
|
|
694
|
+
if (metadataArg._smartdataRevision !== undefined) {
|
|
695
|
+
fields.set('_smartdataRevision', metadataArg._smartdataRevision);
|
|
660
696
|
}
|
|
661
|
-
|
|
662
|
-
|
|
697
|
+
const envelope = Object.create(null);
|
|
698
|
+
for (const key of [...fields.keys()].sort()) {
|
|
699
|
+
envelope[key] = fields.get(key);
|
|
663
700
|
}
|
|
664
|
-
return
|
|
701
|
+
return envelope;
|
|
702
|
+
}
|
|
703
|
+
assertWithoutMutation(documentArg, beforeArg, labelArg) {
|
|
704
|
+
assertBsonWithoutMutation(documentArg, beforeArg, (documentToEncodeArg) => this.encodeBson(documentToEncodeArg), this.options.assertDocument, (reasonArg, causeArg) => new SmartdataExactPersistenceError('invalid_document', `${labelArg} ${reasonArg === 'assertion' ? 'assertion failed.' :
|
|
705
|
+
reasonArg === 'bson' ? 'validator produced a non-BSON document.' :
|
|
706
|
+
'validator must not mutate the document.'}`, causeArg === undefined ? undefined : { cause: causeArg }));
|
|
665
707
|
}
|
|
666
708
|
validateReconcileIdentity(documentArg) {
|
|
667
709
|
const value = documentArg[this.reconcileBy];
|
|
@@ -670,6 +712,7 @@ export class SmartdataExactCollection {
|
|
|
670
712
|
}
|
|
671
713
|
return value;
|
|
672
714
|
}
|
|
715
|
+
/** The persisted body a model serializes to, before any proof. */
|
|
673
716
|
async serializeModel(modelArg) {
|
|
674
717
|
const serialized = (await modelArg.createSavableObject());
|
|
675
718
|
if (typeof serialized !== 'object' ||
|
|
@@ -693,16 +736,17 @@ export class SmartdataExactCollection {
|
|
|
693
736
|
body[key] = serialized[key];
|
|
694
737
|
}
|
|
695
738
|
}
|
|
696
|
-
return
|
|
739
|
+
return body;
|
|
697
740
|
}
|
|
741
|
+
/** Proves an insert input and returns the canonical bytes of its body. */
|
|
698
742
|
async createPersistedDocument(documentArg) {
|
|
699
743
|
if (typeof documentArg !== 'object' || documentArg === null) {
|
|
700
744
|
throw new SmartdataExactPersistenceError('invalid_document', 'Exact persistence insert input must be an object.');
|
|
701
745
|
}
|
|
702
746
|
if (documentArg instanceof this.modelConstructor) {
|
|
703
|
-
return this.serializeModel(documentArg);
|
|
747
|
+
return this.provePersistedDocument(await this.serializeModel(documentArg));
|
|
704
748
|
}
|
|
705
|
-
return this.
|
|
749
|
+
return this.provePersistedDocument(documentArg);
|
|
706
750
|
}
|
|
707
751
|
hydrateStoredDocument(documentArg) {
|
|
708
752
|
return this.modelConstructor.createInstanceFromMongoDbNativeDoc(documentArg);
|
|
@@ -712,7 +756,7 @@ export class SmartdataExactCollection {
|
|
|
712
756
|
[this.reconcileBy]: identityArg,
|
|
713
757
|
}, { session: sessionArg, ...deadlineArg.commandOptions() });
|
|
714
758
|
return rawDocument
|
|
715
|
-
? this.
|
|
759
|
+
? this.readStoredDocument(rawDocument)
|
|
716
760
|
: null;
|
|
717
761
|
}
|
|
718
762
|
ambiguousWriteError(messageArg, causeArg) {
|
|
@@ -737,8 +781,8 @@ export class SmartdataExactCollection {
|
|
|
737
781
|
throw new SmartdataExactPersistenceError('invalid_document', 'Exact delete options must contain one inert enumerable current data property.');
|
|
738
782
|
}
|
|
739
783
|
const currentSnapshot = snapshotInertExactValue(currentDescriptor.value, 'Exact delete current');
|
|
740
|
-
const current = this.
|
|
741
|
-
const identity = this.validateReconcileIdentity(
|
|
784
|
+
const { document: current } = this.readStoredDocument(currentSnapshot);
|
|
785
|
+
const identity = this.validateReconcileIdentity(current);
|
|
742
786
|
return { current, identity };
|
|
743
787
|
}
|
|
744
788
|
async reconcileDeleteOutcome(currentArg, identityArg, causeArg, sessionArg, deadlineArg) {
|
|
@@ -752,25 +796,23 @@ export class SmartdataExactCollection {
|
|
|
752
796
|
}
|
|
753
797
|
throw this.ambiguousWriteError('Exact delete outcome was inconclusive and reconciliation could not be completed.', causeArg);
|
|
754
798
|
}
|
|
755
|
-
if (reconciled && reconciled._id.equals(currentArg._id)) {
|
|
799
|
+
if (reconciled && reconciled.document._id.equals(currentArg._id)) {
|
|
756
800
|
return { status: 'concurrent_change', deletedCount: 0 };
|
|
757
801
|
}
|
|
758
802
|
throw this.ambiguousWriteError('Exact delete outcome was inconclusive and could not be authoritatively reconciled.', causeArg);
|
|
759
803
|
}
|
|
760
804
|
async insert(documentArg, optionsArg = {}) {
|
|
761
805
|
return this.runOperation(optionsArg, async (sessionArg, deadlineArg) => {
|
|
762
|
-
const
|
|
806
|
+
const persistedBytes = await this.createPersistedDocument(documentArg);
|
|
807
|
+
const persistedDocument = this.decodeCanonical(persistedBytes);
|
|
763
808
|
const identity = this.validateReconcileIdentity(persistedDocument);
|
|
764
|
-
const expectedStoredDocument = this.
|
|
765
|
-
_id: new plugins.mongodb.ObjectId(),
|
|
766
|
-
...persistedDocument,
|
|
767
|
-
});
|
|
809
|
+
const expectedStoredDocument = this.composeStoredDocument(persistedDocument, { _id: new plugins.mongodb.ObjectId() });
|
|
768
810
|
if (hasActiveTransaction(sessionArg)) {
|
|
769
811
|
const existing = await this.findByReconcileIdentity(identity, sessionArg, deadlineArg);
|
|
770
812
|
if (existing) {
|
|
771
|
-
return
|
|
772
|
-
? { status: 'already_committed', document: existing }
|
|
773
|
-
: { status: 'conflict', document: existing };
|
|
813
|
+
return bytesEqual(existing.bodyBytes, persistedBytes)
|
|
814
|
+
? { status: 'already_committed', document: existing.document }
|
|
815
|
+
: { status: 'conflict', document: existing.document };
|
|
774
816
|
}
|
|
775
817
|
}
|
|
776
818
|
let result;
|
|
@@ -805,11 +847,11 @@ export class SmartdataExactCollection {
|
|
|
805
847
|
throw this.ambiguousWriteError('Exact insert failed and reconciliation could not be completed.', errorArg);
|
|
806
848
|
}
|
|
807
849
|
if (reconciled) {
|
|
808
|
-
if (
|
|
809
|
-
return { status: 'already_committed', document: reconciled };
|
|
850
|
+
if (bytesEqual(reconciled.bodyBytes, persistedBytes)) {
|
|
851
|
+
return { status: 'already_committed', document: reconciled.document };
|
|
810
852
|
}
|
|
811
853
|
if (isDuplicateKeyError(errorArg)) {
|
|
812
|
-
return { status: 'conflict', document: reconciled };
|
|
854
|
+
return { status: 'conflict', document: reconciled.document };
|
|
813
855
|
}
|
|
814
856
|
}
|
|
815
857
|
if (isDuplicateKeyError(errorArg)) {
|
|
@@ -831,9 +873,8 @@ export class SmartdataExactCollection {
|
|
|
831
873
|
}
|
|
832
874
|
throw this.ambiguousWriteError('Exact insert was not acknowledged and reconciliation could not be completed.', result);
|
|
833
875
|
}
|
|
834
|
-
if (reconciled &&
|
|
835
|
-
|
|
836
|
-
return { status: 'already_committed', document: reconciled };
|
|
876
|
+
if (reconciled && bytesEqual(reconciled.bodyBytes, persistedBytes)) {
|
|
877
|
+
return { status: 'already_committed', document: reconciled.document };
|
|
837
878
|
}
|
|
838
879
|
throw this.ambiguousWriteError('Exact insert was not acknowledged and could not be reconciled.', result);
|
|
839
880
|
}
|
|
@@ -841,12 +882,12 @@ export class SmartdataExactCollection {
|
|
|
841
882
|
});
|
|
842
883
|
}
|
|
843
884
|
toPersisted(storedDocumentArg) {
|
|
844
|
-
const
|
|
845
|
-
|
|
846
|
-
return
|
|
885
|
+
const { bodyBytes } = this.proveStoredDocument(storedDocumentArg);
|
|
886
|
+
// A plain decoding: ordinary application objects, not canonical ones.
|
|
887
|
+
return this.decodeBson(bodyBytes);
|
|
847
888
|
}
|
|
848
889
|
canonicalBytes(persistedDocumentArg) {
|
|
849
|
-
return
|
|
890
|
+
return this.provePersistedDocument(persistedDocumentArg);
|
|
850
891
|
}
|
|
851
892
|
async findStoredOne(filterArg, optionsArg = {}) {
|
|
852
893
|
return this.runOperation(optionsArg, async (sessionArg, deadlineArg) => {
|
|
@@ -865,7 +906,7 @@ export class SmartdataExactCollection {
|
|
|
865
906
|
try {
|
|
866
907
|
const rawDocument = await cursor.next();
|
|
867
908
|
storedDocument = rawDocument
|
|
868
|
-
? this.
|
|
909
|
+
? this.readStoredDocument(rawDocument).document
|
|
869
910
|
: null;
|
|
870
911
|
}
|
|
871
912
|
catch (errorArg) {
|
|
@@ -904,7 +945,7 @@ export class SmartdataExactCollection {
|
|
|
904
945
|
cursor = cursor.limit(optionsArg.limit);
|
|
905
946
|
}
|
|
906
947
|
const rawDocuments = await cursor.toArray();
|
|
907
|
-
storedDocuments = rawDocuments.map((documentArg) => this.
|
|
948
|
+
storedDocuments = rawDocuments.map((documentArg) => this.readStoredDocument(documentArg).document);
|
|
908
949
|
}
|
|
909
950
|
catch (errorArg) {
|
|
910
951
|
try {
|
|
@@ -927,12 +968,13 @@ export class SmartdataExactCollection {
|
|
|
927
968
|
}
|
|
928
969
|
async transition(optionsArg, sessionOptionsArg = {}) {
|
|
929
970
|
return this.runOperation(sessionOptionsArg, async (sessionArg, deadlineArg) => {
|
|
930
|
-
const current = this.
|
|
931
|
-
const
|
|
932
|
-
const currentIdentity = this.validateReconcileIdentity(currentBody);
|
|
971
|
+
const { document: current, bodyBytes: currentBodyBytes } = this.readStoredDocument(optionsArg.current);
|
|
972
|
+
const currentIdentity = this.validateReconcileIdentity(current);
|
|
933
973
|
const model = this.hydrateStoredDocument(current);
|
|
934
974
|
const untouchedBody = await this.serializeModel(model);
|
|
935
|
-
if (!this.
|
|
975
|
+
if (!this.encodesAs(untouchedBody, currentBodyBytes)) {
|
|
976
|
+
// A body that is not even canonical reports its own proof failure.
|
|
977
|
+
this.provePersistedDocument(untouchedBody);
|
|
936
978
|
throw new SmartdataExactPersistenceError('noncanonical_document', 'Stored document does not survive an untouched model serialization roundtrip.');
|
|
937
979
|
}
|
|
938
980
|
const changeResult = optionsArg.change(model);
|
|
@@ -942,17 +984,17 @@ export class SmartdataExactCollection {
|
|
|
942
984
|
void Promise.resolve(changeResult).catch(() => undefined);
|
|
943
985
|
throw new SmartdataExactPersistenceError('unsupported_operation', 'Exact persistence transition callbacks must be synchronous.');
|
|
944
986
|
}
|
|
945
|
-
const candidateBody = await this.serializeModel(model);
|
|
987
|
+
const candidateBody = this.decodeCanonical(this.provePersistedDocument(await this.serializeModel(model)));
|
|
946
988
|
const candidateIdentity = this.validateReconcileIdentity(candidateBody);
|
|
947
989
|
if (candidateIdentity !== currentIdentity) {
|
|
948
990
|
throw new SmartdataExactPersistenceError('invalid_document', `Exact persistence reconcileBy field "${this.reconcileBy}" is immutable.`);
|
|
949
991
|
}
|
|
950
992
|
const newRevision = globalThis.crypto.randomUUID();
|
|
951
|
-
const expectedStoredDocument = this.
|
|
993
|
+
const expectedStoredDocument = this.composeStoredDocument(candidateBody, {
|
|
952
994
|
_id: current._id,
|
|
953
|
-
...candidateBody,
|
|
954
995
|
_smartdataRevision: newRevision,
|
|
955
996
|
});
|
|
997
|
+
const expectedBytes = this.encodeBson(expectedStoredDocument);
|
|
956
998
|
const selector = current._smartdataRevision !== undefined
|
|
957
999
|
? { _id: current._id, _smartdataRevision: current._smartdataRevision }
|
|
958
1000
|
: { _id: current._id, _smartdataRevision: { $exists: false } };
|
|
@@ -968,11 +1010,12 @@ export class SmartdataExactCollection {
|
|
|
968
1010
|
if (!postimage) {
|
|
969
1011
|
return { status: 'concurrent_change' };
|
|
970
1012
|
}
|
|
971
|
-
|
|
972
|
-
|
|
1013
|
+
if (!this.encodesAs(postimage, expectedBytes)) {
|
|
1014
|
+
// A postimage that is not even a valid stored document reports why.
|
|
1015
|
+
this.proveStoredDocument(postimage);
|
|
973
1016
|
throw new SmartdataExactPersistenceError('ambiguous_write', 'Exact transition returned a postimage different from the requested state.');
|
|
974
1017
|
}
|
|
975
|
-
return { status: 'transitioned', document:
|
|
1018
|
+
return { status: 'transitioned', document: expectedStoredDocument };
|
|
976
1019
|
}
|
|
977
1020
|
catch (errorArg) {
|
|
978
1021
|
if (isTransientTransactionError(errorArg, sessionArg)) {
|
|
@@ -992,11 +1035,11 @@ export class SmartdataExactCollection {
|
|
|
992
1035
|
_id: current._id,
|
|
993
1036
|
}, { session: sessionArg, ...deadlineArg.commandOptions() });
|
|
994
1037
|
if (reconciledRaw) {
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
this.storedDocumentsEqual(reconciled, expectedStoredDocument)) {
|
|
998
|
-
return { status: 'transitioned', document: reconciled };
|
|
1038
|
+
if (this.encodesAs(reconciledRaw, expectedBytes)) {
|
|
1039
|
+
return { status: 'transitioned', document: expectedStoredDocument };
|
|
999
1040
|
}
|
|
1041
|
+
// A malformed document fails the reconciliation itself.
|
|
1042
|
+
this.proveStoredDocument(reconciledRaw);
|
|
1000
1043
|
}
|
|
1001
1044
|
}
|
|
1002
1045
|
catch (reconciliationError) {
|
|
@@ -1126,4 +1169,4 @@ export function exactPersistence(optionsArg) {
|
|
|
1126
1169
|
});
|
|
1127
1170
|
};
|
|
1128
1171
|
}
|
|
1129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5leGFjdHBlcnNpc3RlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLmV4YWN0cGVyc2lzdGVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEYsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLEdBQ2xDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUVMLHNCQUFzQixFQUN0Qix5QkFBeUIsR0FDMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsdUJBQXVCLEdBSXhCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsTUFBTSw0QkFBNEIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUM3Qyw4Q0FBOEMsQ0FDL0MsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQVUsQ0FBQztBQUNuRSxNQUFNLFlBQVksR0FBRztJQUNuQixHQUFHLG1CQUFtQjtJQUN0QixZQUFZO0lBQ1osWUFBWTtDQUNKLENBQUM7QUFrR1gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQzdCLFFBQWlCLEVBQ3FCLEVBQUUsQ0FDeEMsUUFBUSxZQUFZLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBd0MvQyxNQUFNLE9BQU8sOEJBQStCLFNBQVEsS0FBSztJQUN2QyxJQUFJLENBQTZCO0lBRWpELFlBQ0UsT0FBbUMsRUFDbkMsVUFBa0IsRUFDbEIsVUFBeUI7UUFFekIsS0FBSyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLGdDQUFnQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQTBFRCxNQUFNLG9CQUFvQixHQUFHLElBQUksT0FBTyxFQUdyQyxDQUFDO0FBRUosTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFtQixFQUFFLFFBQW9CLEVBQVcsRUFBRTtJQUN4RSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDeEQsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxXQUFtQixFQUFFLE1BQW1CLEVBQVcsRUFBRSxDQUNuRSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRTVELE1BQU0sYUFBYSxHQUFHLENBQ3BCLFFBQWlCLEVBQ29CLEVBQUU7SUFDdkMsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3RELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsT0FBTyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVMsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDO0FBQzlELENBQUMsQ0FBQztBQUVGLE1BQU0sK0JBQStCLEdBQUcsQ0FDdEMsWUFBMkIsRUFDbEIsRUFBRTtJQUNYLElBQUksU0FBUyxHQUFHLFlBQVksQ0FBQztJQUM3QixPQUFPLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEUsSUFDRSxVQUFVO1lBQ1YsQ0FDRSxDQUFDLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDeEIsVUFBVSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQy9CLEVBQ0QsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELFNBQVMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sMkJBQTJCLEdBQUcsT0FBTyxDQUFDO0FBQzVDLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDcEQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNsQyxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVuQyxNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQWlCLEVBQXNCLEVBQUUsQ0FDOUQsT0FBTyxRQUFRLEtBQUssUUFBUTtJQUM1QixNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUMxQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsSUFBSSxjQUFjO0lBQzFCLFFBQVEsSUFBSSxjQUFjLENBQUM7QUFFN0IsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN4RSxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FDNUQsbUJBQW1CLEVBQ25CLFFBQVEsQ0FDVCxFQUFFLEdBQUcsQ0FBQztBQUNQLE1BQU0sMEJBQTBCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUNoRSxtQkFBbUIsRUFDbkIsWUFBWSxDQUNiLEVBQUUsR0FBRyxDQUFDO0FBQ1AsTUFBTSwwQkFBMEIsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQ2hFLG1CQUFtQixFQUNuQixZQUFZLENBQ2IsRUFBRSxHQUFHLENBQUM7QUFDUCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FDeEQsTUFBTSxDQUFDLFNBQVMsRUFDaEIsUUFBUSxDQUNULEVBQUUsR0FBRyxDQUFDO0FBQ1AsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUM7SUFDbkIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDO0lBQ2YsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDO0lBQ25CLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQztJQUNsQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUM7SUFDZixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUM7SUFDaEIsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDO0lBQ3BCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQztDQUNoQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLElBQUk7SUFDSixNQUFNLEVBQUUsTUFBTSxDQUFDLHdCQUF3QixDQUNyQyxNQUFNLENBQUMsU0FBUyxFQUNoQixRQUFRLENBQ1QsRUFBRSxHQUFHO0NBQ1AsQ0FBQyxDQUFDLENBQUM7QUFFSixNQUFNLGtCQUFrQixHQUFHLENBQ3pCLFFBQWdCLEVBQ2hCLFNBQWlCLEVBQ2UsRUFBRSxDQUNsQyxJQUFJLDhCQUE4QixDQUNoQyxrQkFBa0IsRUFDbEIsR0FBRyxRQUFRLElBQUksU0FBUyxFQUFFLENBQzNCLENBQUM7QUFFSixNQUFNLHdCQUF3QixHQUFHLENBQy9CLGNBQTRCLEVBQzVCLFFBQWdCLEVBQ1IsRUFBRTtJQUNWLElBQUksQ0FBQztRQUNILE9BQU8sY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUFDLE9BQU8sUUFBUSxFQUFFLENBQUM7UUFDbEIsSUFBSSxRQUFRLFlBQVksOEJBQThCLEVBQUUsQ0FBQztZQUN2RCxNQUFNLFFBQVEsQ0FBQztRQUNqQixDQUFDO1FBQ0QsTUFBTSxJQUFJLDhCQUE4QixDQUN0QyxrQkFBa0IsRUFDbEIsR0FBRyxRQUFRLHVDQUF1QyxFQUNsRDtZQUNFLEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQ0YsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUN0QixRQUFnQixFQUNoQixNQUFjLEVBQ2QsUUFBZ0IsRUFDUCxFQUFFO0lBQ1gsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM1QyxNQUFNLGtCQUFrQixDQUN0QixRQUFRLEVBQ1IseUJBQXlCLE1BQU0sYUFBYSxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLENBQzVCLFFBQWlCLEVBQ2pCLFFBQWdCLEVBQ0osRUFBRTtJQUNkLElBQ0UsT0FBTyxRQUFRLEtBQUssUUFBUTtRQUM1QixRQUFRLEtBQUssSUFBSTtRQUNqQixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3hDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDN0IsQ0FBQyxzQkFBc0I7UUFDdkIsQ0FBQywwQkFBMEI7UUFDM0IsQ0FBQywwQkFBMEIsRUFDM0IsQ0FBQztRQUNELE1BQU0sa0JBQWtCLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQ0UsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUNqQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBQ2pDLFVBQVUsR0FBRyxDQUFDO1lBQ2QsVUFBVSxHQUFHLDBCQUEwQixFQUN2QyxDQUFDO1lBQ0QsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUNwQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sUUFBUSxFQUFFLENBQUM7UUFDbEIsSUFBSSxRQUFRLFlBQVksOEJBQThCLEVBQUUsQ0FBQztZQUN2RCxNQUFNLFFBQVEsQ0FBQztRQUNqQixDQUFDO1FBQ0QsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixRQUFnQixFQUNSLEVBQUU7SUFDVixNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUU7UUFDeEMsS0FBSyxFQUFFLFNBQVM7UUFDaEIsVUFBVSxFQUFFLEtBQUs7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBRyxDQUM5QixRQUFpQixFQUNqQixRQUFnQixFQUNoQixVQUFVLElBQUksT0FBTyxFQUFVLEVBQy9CLFFBQVEsR0FBRyxDQUFDLEVBQ0gsRUFBRTtJQUNYLElBQUksT0FBTyxRQUFRLEtBQUssVUFBVSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25FLE1BQU0sa0JBQWtCLENBQ3RCLFFBQVEsRUFDUixrREFBa0QsQ0FDbkQsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDN0MsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUIsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsSUFBSSxRQUFRLElBQUksR0FBRyxFQUFFLENBQUM7UUFDcEIsTUFBTSxrQkFBa0IsQ0FDdEIsUUFBUSxFQUNSLDhDQUE4QyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUNFLFNBQVMsS0FBSyxLQUFLLENBQUMsU0FBUztnQkFDN0IsUUFBUSxDQUFDLE1BQU0sR0FBRywyQkFBMkIsRUFDN0MsQ0FBQztnQkFDRCxNQUFNLGtCQUFrQixDQUN0QixRQUFRLEVBQ1IsbUNBQW1DLENBQ3BDLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSwrQkFBK0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxNQUFNLGtCQUFrQixDQUN0QixRQUFRLEVBQ1Isd0NBQXdDLENBQ3pDLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FDdEQsUUFBUSxFQUNSLFFBQVEsQ0FDVCxDQUFDO1lBQ0YsSUFDRSxnQkFBZ0I7Z0JBQ2hCLENBQ0UsQ0FBQyxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQztvQkFDOUIsZ0JBQWdCLENBQUMsS0FBSyxLQUFLLFNBQVM7b0JBQ3BDLGdCQUFnQixDQUFDLFVBQVUsS0FBSyxJQUFJLENBQ3JDLEVBQ0QsQ0FBQztnQkFDRCxNQUFNLGtCQUFrQixDQUN0QixRQUFRLEVBQ1IsZ0VBQWdFLENBQ2pFLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLFFBQVEsQ0FDdkQsQ0FBQztZQUNGLElBQ0UsV0FBVyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsTUFBTTtnQkFDdEMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUMxQixJQUNFLE9BQU8sTUFBTSxLQUFLLFFBQVE7d0JBQzFCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUM5QixDQUFDO3dCQUNELE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUM7b0JBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDbEUsQ0FBQyxDQUFDLEVBQ0YsQ0FBQztnQkFDRCxNQUFNLGtCQUFrQixDQUN0QixRQUFRLEVBQ1IsZ0VBQWdFLENBQ2pFLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQWMsRUFBRSxDQUFDO1lBQy9CLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3JELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FDaEQsUUFBUSxFQUNSLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FDZCxDQUFDO2dCQUNGLElBQ0UsQ0FBQyxVQUFVO29CQUNYLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDO29CQUN4QixVQUFVLENBQUMsVUFBVSxLQUFLLElBQUksRUFDOUIsQ0FBQztvQkFDRCxNQUFNLGtCQUFrQixDQUN0QixRQUFRLEVBQ1IsMkRBQTJELENBQzVELENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxRQUFRLENBQUMsSUFBSSxDQUNYLHVCQUF1QixDQUNyQixVQUFVLENBQUMsS0FBSyxFQUNoQixHQUFHLFFBQVEsSUFBSSxLQUFLLEVBQUUsRUFDdEIsT0FBTyxFQUNQLFFBQVEsR0FBRyxDQUFDLENBQ2IsQ0FDRixDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUE0QixDQUFDO1lBQ2hFLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxJQUNFLE9BQU8sR0FBRyxLQUFLLFFBQVE7b0JBQ3ZCLEdBQUcsS0FBSyxRQUFRO29CQUNoQixHQUFHLEtBQUssV0FBVyxFQUNuQixDQUFDO29CQUNELE1BQU0sa0JBQWtCLENBQ3RCLFFBQVEsRUFDUiw4Q0FBOEMsQ0FDL0MsQ0FBQztnQkFDSixDQUFDO2dCQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2xFLElBQ0UsQ0FBQyxVQUFVO29CQUNYLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDO29CQUN4QixVQUFVLENBQUMsVUFBVSxLQUFLLElBQUksRUFDOUIsQ0FBQztvQkFDRCxNQUFNLGtCQUFrQixDQUN0QixRQUFRLEVBQ1Isb0RBQW9ELENBQ3JELENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsdUJBQXVCLENBQ3JDLFVBQVUsQ0FBQyxLQUFLLEVBQ2hCLEdBQUcsUUFBUSxJQUFJLEdBQUcsRUFBRSxFQUNwQixPQUFPLEVBQ1AsUUFBUSxHQUFHLENBQUMsQ0FDYixDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsTUFBTSxrQkFBa0IsQ0FDdEIsUUFBUSxFQUNSLHdDQUF3QyxDQUN6QyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxNQUFNLGtCQUFrQixDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7WUFDRCxPQUFPLHFCQUFxQixDQUMxQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUM5RCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLElBQ0UsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVztnQkFDMUIsQ0FBQyxrQkFBa0IsRUFDbkIsQ0FBQztnQkFDRCxNQUFNLGtCQUFrQixDQUN0QixRQUFRLEVBQ1IsMkNBQTJDLENBQzVDLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDL0QsTUFBTSxLQUFLLEdBQUcsaUJBQWlCO2lCQUM1QixNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lCQUNyRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNaLE9BQU8scUJBQXFCLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELElBQUksU0FBUyxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QyxPQUFPLHFCQUFxQixDQUMxQixxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQzFDLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQzVELFFBQVEsRUFDUixRQUFRLENBQ1QsQ0FBQztRQUNGLElBQ0Usc0JBQXNCO1lBQ3RCLENBQ0UsQ0FBQyxDQUFDLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQztnQkFDcEMsc0JBQXNCLENBQUMsS0FBSyxLQUFLLFNBQVM7Z0JBQzFDLHNCQUFzQixDQUFDLFVBQVUsS0FBSyxJQUFJLENBQzNDLEVBQ0QsQ0FBQztZQUNELE1BQU0sa0JBQWtCLENBQ3RCLFFBQVEsRUFDUiw0Q0FBNEMsQ0FDN0MsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLGNBQXNCLENBQUM7UUFDM0IsSUFBSSxTQUFTLEtBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDckQsY0FBYyxHQUFHLHdCQUF3QixDQUN2QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FDdEUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLDZDQUE2QyxDQUFDLENBQUMsQ0FBQyxFQUMvRSxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4RCxjQUFjLEdBQUcsd0JBQXdCLENBQ3ZDLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzVCLHFCQUFxQixDQUNuQixlQUFlLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFDN0MsUUFBUSxDQUNULENBQ0YsRUFDRCxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxRCxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FDbEMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQzdDLFFBQVEsQ0FDVCxDQUFDO1lBQ0YsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDaEUsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDakUsSUFDRSxPQUFPLE9BQU8sS0FBSyxRQUFRO2dCQUMzQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO2dCQUM5QixPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUM1QixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO2dCQUMvQixRQUFRLEdBQUcsQ0FBQztnQkFDWixRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFDeEIsQ0FBQztnQkFDRCxNQUFNLGtCQUFrQixDQUFDLFFBQVEsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7WUFDRCxjQUFjLEdBQUcsd0JBQXdCLENBQ3ZDLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUM1QixPQUFPLENBQ1IsRUFDRCxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5RCxjQUFjLEdBQUcsd0JBQXdCLENBQ3ZDLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQ2xDLHFCQUFxQixDQUNuQixlQUFlLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFDNUMsUUFBUSxDQUNULENBQ0YsRUFDRCxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6RCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sa0JBQWtCLENBQUMsUUFBUSxFQUFFLDRCQUE0QixDQUFDLENBQUM7WUFDbkUsQ0FBQztZQUNELGNBQWMsR0FBRyx3QkFBd0IsQ0FDdkMsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFDdEMsUUFBUSxDQUNULENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxTQUFTLEtBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUQsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDM0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBQ0QsY0FBYyxHQUFHLHdCQUF3QixDQUN2QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUN2QyxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4RCxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN2RCxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN6RCxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNqRSxJQUNFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQztnQkFDbkIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUNwQixPQUFPLFFBQVEsS0FBSyxTQUFTLEVBQzdCLENBQUM7Z0JBQ0QsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztZQUMxRSxDQUFDO1lBQ0QsY0FBYyxHQUFHLHdCQUF3QixDQUN2QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQ25ELFFBQVEsQ0FDVCxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksU0FBUyxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzdELE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNyRSxNQUFNLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7WUFDRCxjQUFjLEdBQUcsd0JBQXdCLENBQ3ZDLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ2pDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FDMUMsRUFDRCxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvRCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDL0QsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBQ0QsY0FBYyxHQUFHLHdCQUF3QixDQUN2QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFDdEQsUUFBUSxDQUNULENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxTQUFTLEtBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUQsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDM0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztZQUN6RSxDQUFDO1lBQ0QsY0FBYyxHQUFHLHdCQUF3QixDQUN2QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUMzQyxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4RCxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN6RCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMzRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixNQUFNLGtCQUFrQixDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7WUFDRCxjQUFjLEdBQUcsd0JBQXdCLENBQ3ZDLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzVCLElBQUksRUFDSixLQUFLLEtBQUssSUFBSTtnQkFDWixDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUMsdUJBQXVCLENBQ3JCLEtBQUssRUFDTCxHQUFHLFFBQVEsUUFBUSxFQUNuQixPQUFPLEVBQ1AsUUFBUSxHQUFHLENBQUMsQ0FDZSxDQUNsQyxFQUNELFFBQVEsQ0FDVCxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksU0FBUyxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pELE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sR0FBRyxHQUFHLHVCQUF1QixDQUNqQyxlQUFlLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsRUFDMUMsR0FBRyxRQUFRLE1BQU0sRUFDakIsT0FBTyxFQUNQLFFBQVEsR0FBRyxDQUFDLENBQ2IsQ0FBQztZQUNGLE1BQU0sRUFBRSxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sTUFBTSxHQUFHLHVCQUF1QixDQUNwQyxlQUFlLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFDN0MsR0FBRyxRQUFRLFNBQVMsRUFDcEIsT0FBTyxFQUNQLFFBQVEsR0FBRyxDQUFDLENBQ2IsQ0FBQztZQUNGLElBQ0UsT0FBTyxVQUFVLEtBQUssUUFBUTtnQkFDOUIsQ0FBQyxDQUFDLEdBQUcsWUFBWSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDMUMsQ0FBQyxFQUFFLEtBQUssU0FBUyxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsQ0FBQztnQkFDNUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQ3RCLENBQUM7Z0JBQ0QsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUNuRSxDQUFDO1lBQ0QsY0FBYyxHQUFHLHdCQUF3QixDQUN2QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUM3QixVQUFVLEVBQ1YsR0FBRyxFQUNILEVBQUUsRUFDRixNQUFNLENBQ1AsRUFDRCxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxRCxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hELENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxRCxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxrQkFBa0IsQ0FDdEIsUUFBUSxFQUNSLDBEQUEwRCxDQUMzRCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8scUJBQXFCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0MsQ0FBQztZQUFTLENBQUM7UUFDVCxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNCLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLENBQ3hCLFFBQWdCLEVBQ2hCLFVBQVUsSUFBSSxPQUFPLEVBQVUsRUFDdkIsRUFBRTtJQUNWLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN0RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixNQUFNLGNBQWMsR0FBSSxRQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQzlELGlCQUFpQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FDM0IsQ0FBQztRQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUE0QixDQUFDO0lBQ2pFLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQy9DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QixPQUFPLFNBQW1CLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFFBQWlCLEVBQVcsRUFBRTtJQUN6RCxNQUFNLFVBQVUsR0FBRyxRQUE0RCxDQUFDO0lBQ2hGLE9BQU8sVUFBVSxFQUFFLElBQUksS0FBSyxLQUFLLElBQUksVUFBVSxFQUFFLFFBQVEsS0FBSyxjQUFjLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSwyQkFBMkIsR0FBRyxDQUNsQyxRQUFpQixFQUNqQixVQUEwQyxFQUNqQyxFQUFFLENBQ1gsT0FBTyxDQUFDLFVBQVUsQ0FBQztPQUNoQixPQUFRLFFBQXdDLEVBQUUsYUFBYSxLQUFLLFVBQVU7T0FDN0UsUUFBNkQ7U0FDOUQsYUFBYSxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFaEQsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixVQUEwQyxFQUNqQyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBRW5ELE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxJQUFvQixFQUFFO0lBQ3RELE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsdUJBQXVCLEVBQ3ZCLDhFQUE4RSxDQUMvRSxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLElBQW9CLEVBQUU7SUFDdEQsTUFBTSxJQUFJLDhCQUE4QixDQUN0Qyx1QkFBdUIsRUFDdkIscURBQXFELENBQ3RELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sd0JBQXdCO0lBYWhCO0lBQ0E7SUFDQTtJQVhYLHFCQUFxQixDQUFpQjtJQUN0QyxxQkFBcUIsQ0FBOEI7SUFDbkQsb0JBQW9CLENBQThCO0lBQ2xELHdCQUF3QixHQUFHLENBQUMsQ0FBQztJQUNwQixvQkFBb0IsQ0FBc0I7SUFDMUMsYUFBYSxDQUFvQjtJQUNqQyxXQUFXLENBQVM7SUFFckMsWUFDbUIsZ0JBQWdELEVBQ2hELFVBQW9DLEVBQ3BDLE9BQTZDO1FBRjdDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0M7UUFDaEQsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBc0M7UUFFOUQscUVBQXFFO1FBQ3JFLDZFQUE2RTtRQUM3RSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7UUFDbEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksR0FBRyxDQUNqQztZQUNFLEdBQUcsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLElBQUksRUFBRSxDQUFDO1lBQzdDLEdBQUcsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1NBQ3hDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBc0IsQ0FBQyxDQUFDLENBQ3JFLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7U0FDMUMsQ0FBQztRQUNGLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLGtCQUV4QixDQUFDO1FBQ2QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDbEQsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUsscUJBQXFCLENBQ3ZFLENBQUM7UUFDRixJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLDhCQUE4QixDQUN0Qyx1QkFBdUIsRUFDdkIscUNBQXFDLG9CQUFvQiwwQ0FBMEMsQ0FDcEcsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxXQUFpQyxDQUFDO1FBQ3RFLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4QixJQUNFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbkQsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUNqRCxDQUFDO2dCQUNELE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsdUJBQXVCLEVBQ3ZCLHdDQUF3QyxtQkFBbUIsb0RBQW9ELENBQ2hILENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztRQUN6QyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLDhCQUE4QixDQUN0Qyx1QkFBdUIsRUFDdkIsZ0ZBQWdGLENBQ2pGLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsdUJBQXVCLEVBQ3ZCLG1GQUFtRixDQUNwRixDQUFDO1FBQ0osQ0FBQztRQUNELGtDQUFrQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ3ZELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7WUFDdkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztZQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVO1FBQ3RCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckUsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7WUFDN0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztZQUN2QyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztZQUNqRCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7aUJBQ2hFLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1QsSUFDRSxJQUFJLENBQUMsd0JBQXdCLEtBQUssVUFBVTt1QkFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsS0FBSyxnQkFBZ0IsRUFDekQsQ0FBQztvQkFDRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ2hELENBQUM7WUFDSCxDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLHFCQUFxQixLQUFLLHFCQUFxQixFQUFFLENBQUM7b0JBQ3pELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsTUFBTSxRQUFRLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7WUFDTCxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDckQsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLHFCQUFxQixLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyRSxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxjQUFjLENBQzFCLG1CQUErQztRQUUvQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUNwRCxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQzVFLENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDMUQsS0FBSyxNQUFNLFdBQVcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1lBQy9DLE1BQU0sbUJBQW1CLENBQUMsV0FBVyxDQUNuQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQ3BCO2dCQUNFLE1BQU0sRUFBRSxJQUFJO2dCQUNaLGdFQUFnRTtnQkFDaEUsaURBQWlEO2dCQUNqRCxJQUFJLEVBQUUsb0JBQW9CLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQzt1QkFDL0MsR0FBRyxXQUFXLElBQUk7YUFDeEIsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztRQUM1RSxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUN0RSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDbEMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQ3ZFLENBQ0YsQ0FBQztRQUNGLEtBQUssTUFBTSxZQUFZLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUNqRCxNQUFNLG1CQUFtQixDQUFDLFdBQVcsQ0FDbkMsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFDM0IsWUFBWSxDQUFDLE9BQU8sQ0FDckIsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEtBQUssbUJBQW1CLEVBQUUsQ0FBQztZQUM5RCxPQUFPO1FBQ1QsQ0FBQztRQUNELEtBQUssTUFBTSxXQUFXLElBQUksb0JBQW9CLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0gsQ0FBQztRQUNELEtBQUssTUFBTSxZQUFZLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FDcEUsRUFBRSxDQUFDO2dCQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sS0FBSyxDQUFDLGNBQWMsQ0FDMUIsVUFBd0MsRUFDeEMsU0FBdUQ7UUFNdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sUUFBUSxHQUFHLGlDQUFpQyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6RSxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLENBQUM7UUFDekMsQ0FBQztRQUNELElBQ0UsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLCtCQUErQixFQUFFO2VBQy9DLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUNuRSxDQUFDO1lBQ0QsTUFBTSxJQUFJLDhCQUE4QixDQUN0Qyx1QkFBdUIsRUFDdkIsNEVBQTRFLENBQzdFLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsdUJBQXVCLENBQ25DLFVBQVUsRUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FDNUIsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLGlDQUFpQyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMxRSxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUIsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQ3pCLFFBQVE7Z0JBQ1IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2FBQ3ZCLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEIsTUFBTSxRQUFRLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssS0FBSyxDQUFDLFlBQVksQ0FDeEIsVUFBZ0MsRUFDaEMsWUFHcUI7UUFFckIsTUFBTSxNQUFNLEdBQUc7WUFDYixTQUFTLEVBQUUseUJBQXlCLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztZQUN2RixNQUFNLEVBQUUsc0JBQXNCLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQztTQUM1RSxDQUFDO1FBQ0YsTUFBTSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sNkJBQTZCLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7Z0JBQVMsQ0FBQztZQUNULFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0sscUJBQXFCLENBQUMsUUFBZ0IsRUFBRSxRQUFpQjtRQUMvRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FDN0IsR0FBRyxRQUFRLHNGQUFzRixFQUNqRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FDakMsQ0FBQztJQUNKLENBQUM7SUFFTyxvQkFBb0IsQ0FDMUIsV0FBc0IsRUFDdEIsUUFBZ0I7UUFFaEIsSUFBSSxjQUF5QixDQUFDO1FBQzlCLElBQUksVUFBc0IsQ0FBQztRQUMzQixJQUFJLFNBQW9CLENBQUM7UUFDekIsSUFBSSxZQUF3QixDQUFDO1FBQzdCLElBQUksQ0FBQztZQUNILGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNoRCxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVELFNBQVMsR0FBRyxpQkFBaUIsQ0FDM0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBYyxDQUMxRCxDQUFDO1lBQ0YsWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksOEJBQThCLENBQ3RDLGtCQUFrQixFQUNsQixHQUFHLFFBQVEsNEJBQTRCLEVBQ3ZDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUNwQixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLDhCQUE4QixDQUN0Qyx1QkFBdUIsRUFDdkIsR0FBRyxRQUFRLDhDQUE4QyxDQUMxRCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyx5QkFBeUIsQ0FDL0IsV0FBbUIsRUFDbkIsc0JBQXNELEVBQ3RELFFBQWdCO1FBRWhCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQVMsc0JBQXNCLENBQUMsQ0FBQztRQUNwRSxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxJQUNFLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBbUIsQ0FBQztnQkFDMUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQzdCLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLDhCQUE4QixDQUN0QyxnQkFBZ0IsRUFDaEIsR0FBRyxRQUFRLG1DQUFtQyxHQUFHLElBQUksQ0FDdEQsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUNFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ25DLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUM3QixDQUFDO2dCQUNELE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsa0JBQWtCLEVBQ2xCLEdBQUcsUUFBUSx3Q0FBd0MsR0FBRyxJQUFJLENBQzNELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyw2QkFBNkIsQ0FDbkMsV0FBbUI7UUFFbkIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUN0RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQ3pDLFdBQVcsRUFDWCxvQkFBb0IsQ0FDckIsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUM1RCxPQUFPLFNBQWdELENBQUM7SUFDMUQsQ0FBQztJQUVPLDBCQUEwQixDQUNoQyxXQUFtQjtRQUVuQixJQUFJLENBQUMseUJBQXlCLENBQzVCLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsaUJBQWlCLENBQ2xCLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDNUUsTUFBTSxRQUFRLEdBQUksU0FBcUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUMzRSxJQUFJLENBQUMsZUFBZSxDQUFFLFNBQXFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqRSxNQUFNLElBQUksOEJBQThCLENBQ3RDLGtCQUFrQixFQUNsQixpREFBaUQsQ0FDbEQsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUNFLFFBQVEsS0FBSyxTQUFTO1lBQ3RCLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQ3ZELENBQUM7WUFDRCxNQUFNLElBQUksOEJBQThCLENBQ3RDLGtCQUFrQixFQUNsQiw0RUFBNEUsQ0FDN0UsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBd0MsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sU0FBd0MsQ0FBQztJQUNsRCxDQUFDO0lBRU8scUJBQXFCLENBQzNCLFdBQW1CLEVBQ25CLFFBQWdCO1FBRWhCLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUMxRixJQUFJLDhCQUE4QixDQUFDLGtCQUFrQixFQUFFLEdBQUcsUUFBUSxJQUNoRSxTQUFTLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2pELFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7Z0JBQ2xFLHlDQUNGLEVBQUUsRUFBRSxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sZ0JBQWdCLENBQ3RCLGlCQUE4QztRQUU5QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBNEIsQ0FBQztRQUM1RCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQW1CLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUksaUJBQTZDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEUsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLE9BQTRDLEVBQzVDLFFBQTZDO1FBRTdDLE9BQU8sVUFBVSxDQUNmLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUN6QyxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQixDQUMxQixPQUFvQyxFQUNwQyxRQUFxQztRQUVyQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEtBQUssUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDL0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHlCQUF5QixDQUMvQixXQUFnRDtRQUVoRCxNQUFNLEtBQUssR0FBSSxXQUF1QyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNELE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsa0JBQWtCLEVBQ2xCLHdDQUF3QyxJQUFJLENBQUMsV0FBVyw4QkFBOEIsQ0FDdkYsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYyxDQUMxQixRQUFnQjtRQUVoQixNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBR3ZELENBQUM7UUFDRixJQUNFLE9BQU8sVUFBVSxLQUFLLFFBQVE7WUFDOUIsVUFBVSxLQUFLLElBQUk7WUFDbkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFDekIsQ0FBQztZQUNELE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsa0JBQWtCLEVBQ2xCLHNEQUFzRCxDQUN2RCxDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQ0UsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztnQkFDbkMsR0FBRyxLQUFLLFlBQVk7Z0JBQ3BCLEdBQUcsS0FBSyxZQUFZLEVBQ3BCLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEdBQStCLFlBQVksQ0FBQyxRQUFRLENBQzVELEdBQW1CLENBQ3BCO29CQUNDLENBQUMsQ0FBQyxnQkFBZ0I7b0JBQ2xCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDdkIsTUFBTSxJQUFJLDhCQUE4QixDQUN0QyxJQUFJLEVBQ0osMkRBQTJELEdBQUcsSUFBSSxDQUNuRSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBNEIsQ0FBQztRQUM1RCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLEtBQUssQ0FBQyx1QkFBdUIsQ0FDbkMsV0FBeUQ7UUFFekQsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzVELE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsa0JBQWtCLEVBQ2xCLG1EQUFtRCxDQUNwRCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksV0FBVyxZQUFZLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2pELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLHFCQUFxQixDQUMzQixXQUF3QztRQUV4QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsQ0FDN0QsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLHVCQUF1QixDQUNuQyxXQUFtQixFQUNuQixVQUFxRCxFQUNyRCxXQUF1QztRQUV2QyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1lBQ2xFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFdBQVc7U0FDaEMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxXQUFXLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdELE9BQU8sV0FBVztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQztZQUM5QyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFVBQWtCLEVBQUUsUUFBaUI7UUFDL0QsT0FBTyxJQUFJLDhCQUE4QixDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRTtZQUN2RSxLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8seUJBQXlCLENBQy9CLFVBRUM7UUFLRCxJQUNFLE9BQU8sVUFBVSxLQUFLLFFBQVE7WUFDOUIsVUFBVSxLQUFLLElBQUk7WUFDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUMxQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFDMUIsQ0FBQztZQUNELE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsa0JBQWtCLEVBQ2xCLGlFQUFpRSxDQUNsRSxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQ3ZELFVBQVUsRUFDVixTQUFTLENBQ1YsQ0FBQztRQUNGLElBQ0UsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3ZCLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTO1lBQzNCLENBQUMsaUJBQWlCO1lBQ2xCLENBQUMsQ0FBQyxPQUFPLElBQUksaUJBQWlCLENBQUM7WUFDL0IsaUJBQWlCLENBQUMsVUFBVSxLQUFLLElBQUksRUFDckMsQ0FBQztZQUNELE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsa0JBQWtCLEVBQ2xCLCtFQUErRSxDQUNoRixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sZUFBZSxHQUFHLHVCQUF1QixDQUM3QyxpQkFBaUIsQ0FBQyxLQUFLLEVBQ3ZCLHNCQUFzQixDQUN2QixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUM3QyxlQUF5QixDQUMxQixDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQy9CLENBQUM7UUFDRixPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxLQUFLLENBQUMsc0JBQXNCLENBQ2xDLFVBQXVDLEVBQ3ZDLFdBQW1CLEVBQ25CLFFBQWlCLEVBQ2pCLFVBQXFELEVBQ3JELFdBQXVDO1FBRXZDLElBQUksVUFBOEMsQ0FBQztRQUNuRCxJQUFJLENBQUM7WUFDSCxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUN0RCxNQUFNLFFBQVEsQ0FBQztZQUNqQixDQUFDO1lBQ0QsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQzVCLGtGQUFrRixFQUNsRixRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQzVCLG9GQUFvRixFQUNwRixRQUFRLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUNqQixXQUF5RCxFQUN6RCxhQUFtQyxFQUFFO1FBRXJDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUN2RSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDO2dCQUM3RCxHQUFHLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsR0FBRyxpQkFBaUI7YUFDckIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUN2RixJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUNiLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQy9CLGlCQUFpQixDQUNsQjt3QkFDQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTt3QkFDckQsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ2pELENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxNQUF1QyxDQUFDO1lBQzVDLE1BQU0sYUFBYSxHQUFHLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLFdBQVcsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQztnQkFDSCxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FDeEQsc0JBQXNCLEVBQ3RCLGFBQWEsQ0FDZCxDQUFDO1lBQ0osQ0FBQztZQUFDLE9BQU8sUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksMkJBQTJCLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ3RELE1BQU0sUUFBUSxDQUFDO2dCQUNqQixDQUFDO2dCQUNELElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO3dCQUNsQyxNQUFNLElBQUksOEJBQThCLENBQ3RDLGlCQUFpQixFQUNqQiwyREFBMkQsRUFDM0QsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQ3BCLENBQUM7b0JBQ0osQ0FBQztvQkFDRCxNQUFNLFFBQVEsQ0FBQztnQkFDakIsQ0FBQztnQkFDRCxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDdEMsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO2dCQUNELElBQUksVUFBOEMsQ0FBQztnQkFDbkQsSUFBSSxDQUFDO29CQUNILFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNyRixDQUFDO2dCQUFDLE9BQU8sbUJBQW1CLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSwyQkFBMkIsQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO3dCQUNqRSxNQUFNLG1CQUFtQixDQUFDO29CQUM1QixDQUFDO29CQUNELElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQzt3QkFDbEMsTUFBTSxJQUFJLDhCQUE4QixDQUN0QyxpQkFBaUIsRUFDakIsdUVBQXVFLEVBQ3ZFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUNwQixDQUFDO29CQUNKLENBQUM7b0JBQ0QsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQzVCLGdFQUFnRSxFQUNoRSxRQUFRLENBQ1QsQ0FBQztnQkFDSixDQUFDO2dCQUNELElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2YsSUFDRSxJQUFJLENBQUMsdUJBQXVCLENBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFDakMsaUJBQWlCLENBQ2xCLEVBQ0QsQ0FBQzt3QkFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQztvQkFDL0QsQ0FBQztvQkFDRCxJQUFJLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7d0JBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQztvQkFDdEQsQ0FBQztnQkFDSCxDQUFDO2dCQUNELElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsTUFBTSxJQUFJLDhCQUE4QixDQUN0QyxpQkFBaUIsRUFDakIsdURBQXVELEVBQ3ZELEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUNwQixDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQzVCLDhEQUE4RCxFQUM5RCxRQUFRLENBQ1QsQ0FBQztZQUNKLENBQUM7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN6QixJQUFJLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ3JDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUM1QixrREFBa0QsRUFDbEQsTUFBTSxDQUNQLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxJQUFJLFVBQThDLENBQUM7Z0JBQ25ELElBQUksQ0FBQztvQkFDSCxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDckYsQ0FBQztnQkFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO29CQUNsQixJQUFJLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO3dCQUN0RCxNQUFNLFFBQVEsQ0FBQztvQkFDakIsQ0FBQztvQkFDRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FDNUIsOEVBQThFLEVBQzlFLE1BQU0sQ0FDUCxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsSUFDRSxVQUFVO29CQUNWLElBQUksQ0FBQyx1QkFBdUIsQ0FDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUNqQyxpQkFBaUIsQ0FDbEIsRUFDRCxDQUFDO29CQUNELE9BQU8sRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO2dCQUMvRCxDQUFDO2dCQUNELE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUM1QixnRUFBZ0UsRUFDaEUsTUFBTSxDQUNQLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUNoQixpQkFBOEM7UUFFOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQ3JDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUNYLENBQUM7SUFDM0MsQ0FBQztJQUVNLGNBQWMsQ0FDbkIsb0JBQXlEO1FBRXpELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUNuQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsb0JBQW9CLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUN4QixTQUFtRCxFQUNuRCxhQUFtQyxFQUFFO1FBRXJDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUN2RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDbkQsdUJBQXVCLENBQUMsU0FBUyxDQUFDLEVBQ2xDO2dCQUNFLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsR0FBRyxXQUFXLENBQUMsYUFBYSxFQUFFO2FBQy9CLENBQ0YsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDWCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELElBQUksa0JBQTZDLENBQUM7WUFDbEQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFxQyxFQUFFLEVBQUU7Z0JBQzNELGtCQUFrQixLQUFLLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ2xELE9BQU8sa0JBQWtCLENBQUM7WUFDNUIsQ0FBQyxDQUF3QixDQUFDO1lBQzFCLElBQUksY0FBa0QsQ0FBQztZQUN2RCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLGNBQWMsR0FBRyxXQUFXO29CQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQztvQkFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNYLENBQUM7WUFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUM7b0JBQ0gsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBQUMsTUFBTSxDQUFDO29CQUNQLDhEQUE4RDtnQkFDaEUsQ0FBQztnQkFDRCxNQUFNLFFBQVEsQ0FBQztZQUNqQixDQUFDO1lBQ0QsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsT0FBTyxjQUFjLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FDckIsYUFBNkMsRUFBRTtRQUUvQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDdkUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ2pELHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQ2hELEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUN4RCxDQUFDO1lBQ0YsMkVBQTJFO1lBQzNFLDBFQUEwRTtZQUMxRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELElBQUksa0JBQTZDLENBQUM7WUFDbEQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFxQyxFQUFFLEVBQUU7Z0JBQzNELGtCQUFrQixLQUFLLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ2xELE9BQU8sa0JBQWtCLENBQUM7WUFDNUIsQ0FBQyxDQUF3QixDQUFDO1lBQzFCLElBQUksZUFBbUQsQ0FBQztZQUN4RCxJQUFJLENBQUM7Z0JBQ0gsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUE0QixDQUFDLENBQUM7Z0JBQ2hFLENBQUM7Z0JBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNsQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBQ0QsSUFBSSxVQUFVLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNuQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLENBQUM7Z0JBQ0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVDLGVBQWUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDakQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUM3QyxDQUFDO1lBQ0osQ0FBQztZQUFDLE9BQU8sUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQztvQkFDSCxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdkIsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsOERBQThEO2dCQUNoRSxDQUFDO2dCQUNELE1BQU0sUUFBUSxDQUFDO1lBQ2pCLENBQUM7WUFDRCxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixPQUFPLGVBQWUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUNoQixZQUFzRCxFQUFFLEVBQ3hELGFBQW1DLEVBQUU7UUFFckMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQ3JFLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUM5Qyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsRUFDbEMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQ3pELENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUduQixRQUFnQixFQUNoQixZQUFzRCxFQUFFLEVBQ3hELGFBQW1DLEVBQUU7UUFJckMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQ3JFLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FDL0MsUUFBa0IsRUFDbEIsdUJBQXVCLENBQUMsU0FBUyxDQUFDLEVBQ2xDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLFdBQVcsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUN6RCxDQUVDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUNyQixVQUdDLEVBQ0Qsb0JBQTBDLEVBQUU7UUFFNUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDOUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsRCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxJQUFJLDhCQUE4QixDQUN0Qyx1QkFBdUIsRUFDdkIsOEVBQThFLENBQy9FLENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QyxJQUNFLFlBQVksS0FBSyxJQUFJO2dCQUNyQixDQUFDLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxPQUFPLFlBQVksS0FBSyxVQUFVLENBQUM7Z0JBQ3hFLE9BQVEsWUFBbUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUMvRCxDQUFDO2dCQUNELEtBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzFELE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsdUJBQXVCLEVBQ3ZCLDZEQUE2RCxDQUM5RCxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4RSxJQUFJLGlCQUFpQixLQUFLLGVBQWUsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLElBQUksOEJBQThCLENBQ3RDLGtCQUFrQixFQUNsQix3Q0FBd0MsSUFBSSxDQUFDLFdBQVcsaUJBQWlCLENBQzFFLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuRCxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQztnQkFDN0QsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNoQixHQUFHLGFBQWE7Z0JBQ2hCLGtCQUFrQixFQUFFLFdBQVc7YUFDaEMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVM7Z0JBQ3ZELENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtnQkFDdEUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUVqRSxNQUFNLGNBQWMsR0FBRztnQkFDckIsY0FBYyxFQUFFLE9BQWdCO2dCQUNoQyxxQkFBcUIsRUFBRSxLQUFjO2dCQUNyQyxNQUFNLEVBQUUsS0FBSztnQkFDYixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsR0FBRyxXQUFXLENBQUMsY0FBYyxFQUFFO2FBQ2hDLENBQUM7WUFDRixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUN6RSxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLGNBQWMsQ0FDZixDQUFDO2dCQUNGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDZixPQUFPLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDO29CQUMzRSxNQUFNLElBQUksOEJBQThCLENBQ3RDLGlCQUFpQixFQUNqQiwyRUFBMkUsQ0FDNUUsQ0FBQztnQkFDSixDQUFDO2dCQUNELE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ2xFLENBQUM7WUFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUN0RCxNQUFNLFFBQVEsQ0FBQztnQkFDakIsQ0FBQztnQkFDRCxJQUFJLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLE1BQU0sSUFBSSw4QkFBOEIsQ0FDdEMsaUJBQWlCLEVBQ2pCLDJEQUEyRCxFQUMzRCxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FDcEIsQ0FBQztnQkFDSixDQUFDO2dCQUNELElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDckMsTUFBTSxRQUFRLENBQUM7Z0JBQ2pCLENBQUM7Z0JBQ0QsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ3RDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDO2dCQUNELElBQUksQ0FBQztvQkFDSCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDO3dCQUNwRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7cUJBQ2pCLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxhQUFhLEVBQUUsQ0FBQzt3QkFDbEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUNsRSxJQUNFLFVBQVUsQ0FBQyxrQkFBa0IsS0FBSyxXQUFXOzRCQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLHNCQUFzQixDQUFDLEVBQzdELENBQUM7NEJBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO3dCQUMxRCxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxPQUFPLG1CQUFtQixFQUFFLENBQUM7b0JBQzdCLElBQUksMkJBQTJCLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQzt3QkFDakUsTUFBTSxtQkFBbUIsQ0FBQztvQkFDNUIsQ0FBQztvQkFDRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FDNUIsb0VBQW9FLEVBQ3BFLFFBQVEsQ0FDVCxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQzVCLGtFQUFrRSxFQUNsRSxRQUFRLENBQ1QsQ0FBQztZQUNKLENBQUM7UUFDRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUNqQixVQUVDLEVBQ0Qsb0JBQTBDLEVBQUU7UUFFNUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDOUUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVM7Z0JBQ3ZELENBQUMsQ0FBQztvQkFDRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7b0JBQ2hCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVE7b0JBQzVCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7aUJBQy9DO2dCQUNILENBQUMsQ0FBQztvQkFDRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7b0JBQ2hCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVE7b0JBQzVCLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtpQkFDdkMsQ0FBQztZQUNOLElBQUksTUFBb0MsQ0FBQztZQUN6QyxNQUFNLGFBQWEsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxXQUFXLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUMvRSxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3RGLENBQUM7WUFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUN0RCxNQUFNLFFBQVEsQ0FBQztnQkFDakIsQ0FBQztnQkFDRCxJQUFJLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ3JDLE1BQU0sUUFBUSxDQUFDO2dCQUNqQixDQUFDO2dCQUNELElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUN0QyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzdELENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzNGLENBQUM7WUFDRCxJQUNFLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSTtnQkFDNUIsTUFBTSxDQUFDLFlBQVksS0FBSyxDQUFDLEVBQ3pCLENBQUM7Z0JBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hELENBQUM7WUFDRCxJQUNFLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSTtnQkFDNUIsTUFBTSxDQUFDLFlBQVksS0FBSyxDQUFDLEVBQ3pCLENBQUM7Z0JBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDMUQsQ0FBQztZQUNELElBQUksTUFBTSxDQUFDLFlBQVksS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUNyQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FDNUIsa0RBQWtELEVBQ2xELE1BQU0sQ0FDUCxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3pGLENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSwyQkFBMkIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDdEQsTUFBTSxRQUFRLENBQUM7Z0JBQ2pCLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQzVCLG9GQUFvRixFQUNwRixNQUFNLENBQ1AsQ0FBQztZQUNKLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FDNUIsdURBQXVELEVBQ3ZELE1BQU0sQ0FDUCxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBRzlCLFVBR0M7SUFHRCxPQUFPLFNBQVMsY0FBYyxDQUs1QixRQUFzQixFQUN0QixVQUFpQztRQUVqQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FDZCxDQUFDO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLFFBRW5CLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLGVBQWUsRUFBRSxvQkFBb0I7WUFDckMsZUFBZSxFQUFFLG9CQUFvQjtTQUN0QyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSw0QkFBNEIsRUFBRTtZQUMvRCxLQUFLLEVBQUUsV0FBVztZQUNsQixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQ25ELEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRTtZQUNyRCxLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRTtZQUMxQyxHQUFHO2dCQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVzt1QkFDMUQsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO3VCQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSw0QkFBNEIsQ0FBQyxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUN6RSxNQUFNLElBQUksOEJBQThCLENBQUMsdUJBQXVCLEVBQzlELDJFQUEyRSxDQUFDLENBQUM7Z0JBQ2pGLENBQUM7Z0JBQ0QsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFDdkMsSUFBSSxZQUFZLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ2xCLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUM3QixvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUNuRCxDQUFDO2dCQUNELElBQUksZUFBZSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDckIsZUFBZSxHQUFHLElBQUksd0JBQXdCLENBQzVDLFFBQVEsRUFDUixVQUFVLEVBQ1YsWUFBWSxDQUNiLENBQUM7b0JBQ0YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7Z0JBQ2hELENBQUM7Z0JBQ0QsT0FBTyxlQUFlLENBQUM7WUFDekIsQ0FBQztZQUNELFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
|
1172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5leGFjdHBlcnNpc3RlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLmV4YWN0cGVyc2lzdGVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEYsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLEdBQ2xDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUVMLHNCQUFzQixFQUN0Qix5QkFBeUIsR0FDMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsdUJBQXVCLEdBSXhCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsTUFBTSw0QkFBNEIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUM3Qyw4Q0FBOEMsQ0FDL0MsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQVUsQ0FBQztBQUNuRSxNQUFNLFlBQVksR0FBRztJQUNuQixHQUFHLG1CQUFtQjtJQUN0QixZQUFZO0lBQ1osWUFBWTtDQUNKLENBQUM7QUFrR1gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQzdCLFFBQWlCLEVBQ3FCLEVBQUUsQ0FDeEMsUUFBUSxZQUFZLE9BQU8sQ0FBQyxPQUFP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
|