From 85f50f8ab14a6e586115f9ca03246056cfd9304a Mon Sep 17 00:00:00 2001 From: Elad Ben-Israel Date: Tue, 19 Mar 2019 00:56:30 +0200 Subject: [PATCH 1/4] feat: strip @internal strips classes, interfaces, enums or members that have an "@internal" jsdoc tag both from the jsii assembly manifest and .d.ts fixes #388 --- packages/jsii-calc/lib/compliance.ts | 31 +++++++++++++++++++++++++++ packages/jsii-calc/test/assembly.jsii | 19 +++++++++++++++- packages/jsii/lib/assembler.ts | 28 +++++++++++++++++++----- packages/jsii/lib/compiler.ts | 1 + 4 files changed, 73 insertions(+), 6 deletions(-) diff --git a/packages/jsii-calc/lib/compliance.ts b/packages/jsii-calc/lib/compliance.ts index 65aad2efd9..506c3768a9 100644 --- a/packages/jsii-calc/lib/compliance.ts +++ b/packages/jsii-calc/lib/compliance.ts @@ -1335,3 +1335,34 @@ export class Constructors { return new PrivateClass(); } } + +// internal can be used to represent members that can only be accessed from the current module +export class StripInternal { + public youSeeMe = 'hello'; + + /** + * This is an internal thing + * @internal + */ + public youDontSeeMeAlthoughIamPublic = 'world' +} + +/** + * @internal + */ +export class InternalClass { + public iAmNotHere = 'yes'; +} + +/** + * @internal + */ +export interface IInternalInterface { } + +/** + * @internal + */ +export enum InternalEnum { + Member1 = 12, + Member2 = 23 +} \ No newline at end of file diff --git a/packages/jsii-calc/test/assembly.jsii b/packages/jsii-calc/test/assembly.jsii index 1911171cc8..50830d0539 100644 --- a/packages/jsii-calc/test/assembly.jsii +++ b/packages/jsii-calc/test/assembly.jsii @@ -3318,6 +3318,23 @@ ], "name": "StringEnum" }, + "jsii-calc.StripInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.StripInternal", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "StripInternal", + "properties": [ + { + "name": "youSeeMe", + "type": { + "primitive": "string" + } + } + ] + }, "jsii-calc.Sum": { "assembly": "jsii-calc", "base": { @@ -3949,5 +3966,5 @@ } }, "version": "0.7.15", - "fingerprint": "IWSOEhdZzuvrss5K2WBjZCawXayV13yCAKTj/kJ9+mo=" + "fingerprint": "73Alf0ZvqK2FlLtj23s9t2mdHy29p1KR8E8O6oLIxh4=" } diff --git a/packages/jsii/lib/assembler.ts b/packages/jsii/lib/assembler.ts index 860df41f21..e1d4696b27 100644 --- a/packages/jsii/lib/assembler.ts +++ b/packages/jsii/lib/assembler.ts @@ -337,11 +337,15 @@ export class Assembler implements Emitter { return [jsiiType]; } - private async _visitClass(type: ts.Type, namespace: string[]): Promise { + private async _visitClass(type: ts.Type, namespace: string[]): Promise { if (LOG.isTraceEnabled()) { LOG.trace(`Processing class: ${colors.gray(namespace.join('.'))}.${colors.cyan(type.symbol.name)}`); } + if (_isInternal(type.symbol)) { + return undefined; + } + const fqn = `${[this.projectInfo.name, ...namespace].join('.')}.${type.symbol.name}`; const jsiiType: spec.ClassType = { @@ -479,11 +483,15 @@ export class Assembler implements Emitter { return _sortMembers(this._visitDocumentation(type.symbol, jsiiType)); } - private async _visitEnum(type: ts.Type, namespace: string[]): Promise { + private async _visitEnum(type: ts.Type, namespace: string[]): Promise { if (LOG.isTraceEnabled()) { LOG.trace(`Processing enum: ${colors.gray(namespace.join('.'))}.${colors.cyan(type.symbol.name)}`); } + if (_isInternal(type.symbol)) { + return undefined; + } + const decl = type.symbol.valueDeclaration; const flags = ts.getCombinedModifierFlags(decl); // tslint:disable-next-line:no-bitwise @@ -553,11 +561,15 @@ export class Assembler implements Emitter { } } - private async _visitInterface(type: ts.Type, namespace: string[]): Promise { + private async _visitInterface(type: ts.Type, namespace: string[]): Promise { if (LOG.isTraceEnabled()) { LOG.trace(`Processing interface: ${colors.gray(namespace.join('.'))}.${colors.cyan(type.symbol.name)}`); } + if (_isInternal(type.symbol)) { + return undefined; + } + const fqn = `${[this.projectInfo.name, ...namespace].join('.')}.${type.symbol.name}`; const jsiiType: spec.InterfaceType = { @@ -723,6 +735,7 @@ export class Assembler implements Emitter { */ return; } + if (LOG.isTraceEnabled()) { LOG.trace(`Processing property: ${colors.green(type.fqn)}#${colors.cyan(symbol.name)}`); } @@ -1058,12 +1071,17 @@ function _isExported(node: ts.Declaration): boolean { * @return ``true`` if the symbol should be hidden */ function _isHidden(symbol: ts.Symbol): boolean { - return !symbol.valueDeclaration - || symbol.name.startsWith('_') + return _isInternal(symbol) // if this property is marked "@internal", we strip it from the API + || !symbol.valueDeclaration // tslint:disable-next-line:no-bitwise || (ts.getCombinedModifierFlags(symbol.valueDeclaration) & ts.ModifierFlags.Private) !== 0; } +function _isInternal(symbol: ts.Symbol): boolean { + return symbol.getJsDocTags().some(tag => tag.name === 'internal') + || symbol.name.startsWith('_'); +} + function _isProtected(symbol: ts.Symbol): boolean { return !!symbol.valueDeclaration // tslint:disable-next-line:no-bitwise diff --git a/packages/jsii/lib/compiler.ts b/packages/jsii/lib/compiler.ts index ce0a409115..83e8cfa2ca 100644 --- a/packages/jsii/lib/compiler.ts +++ b/packages/jsii/lib/compiler.ts @@ -29,6 +29,7 @@ const COMPILER_OPTIONS: ts.CompilerOptions = { strict: true, strictNullChecks: true, strictPropertyInitialization: false, + stripInternal: true, target: ts.ScriptTarget.ES2018 }; From ba79e421e2484ded385c46136f41c1e9c394998f Mon Sep 17 00:00:00 2001 From: Elad Ben-Israel Date: Tue, 19 Mar 2019 09:25:01 +0200 Subject: [PATCH 2/4] update jsii-reflect expectations --- packages/jsii-reflect/test/classes.expected.txt | 1 + packages/jsii-reflect/test/jsii-tree.test.all.expected.txt | 6 ++++++ .../test/jsii-tree.test.inheritance.expected.txt | 1 + .../jsii-reflect/test/jsii-tree.test.members.expected.txt | 4 ++++ .../jsii-reflect/test/jsii-tree.test.types.expected.txt | 1 + 5 files changed, 13 insertions(+) diff --git a/packages/jsii-reflect/test/classes.expected.txt b/packages/jsii-reflect/test/classes.expected.txt index 4723146f5c..9aebe77097 100644 --- a/packages/jsii-reflect/test/classes.expected.txt +++ b/packages/jsii-reflect/test/classes.expected.txt @@ -48,6 +48,7 @@ ReferenceEnumFromScopedPackage ReturnsPrivateImplementationOfInterface RuntimeTypeChecking Statics +StripInternal Sum SyncVirtualMethods Thrower diff --git a/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt index 51c230e60e..c9e4fbd900 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt @@ -856,6 +856,12 @@ assemblies │ │ └─┬ value property │ │ ├── immutable │ │ └── type: primitive:string + │ ├─┬ class StripInternal + │ │ └─┬ members + │ │ ├─┬ () method + │ │ │ └── returns: void + │ │ └─┬ youSeeMe property + │ │ └── type: primitive:string │ ├─┬ class Sum │ │ ├── base: CompositeOperation │ │ └─┬ members diff --git a/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt index f65536e262..805cd87c3c 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt @@ -62,6 +62,7 @@ assemblies │ ├── class ReturnsPrivateImplementationOfInterface │ ├── class RuntimeTypeChecking │ ├── class Statics + │ ├── class StripInternal │ ├─┬ class Sum │ │ └── base: CompositeOperation │ ├── class SyncVirtualMethods diff --git a/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt index 2dc70c18fc..76f06111d5 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt @@ -356,6 +356,10 @@ assemblies │ │ ├── instance property │ │ ├── nonConstStatic property │ │ └── value property + │ ├─┬ class StripInternal + │ │ └─┬ members + │ │ ├── () method + │ │ └── youSeeMe property │ ├─┬ class Sum │ │ └─┬ members │ │ ├── () method diff --git a/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt index 674648f02a..9ef1ffd31e 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt @@ -47,6 +47,7 @@ assemblies │ ├── class ReturnsPrivateImplementationOfInterface │ ├── class RuntimeTypeChecking │ ├── class Statics + │ ├── class StripInternal │ ├── class Sum │ ├── class SyncVirtualMethods │ ├── class Thrower From f974ffea4213acac68b1e61c12cfee0a96f62d65 Mon Sep 17 00:00:00 2001 From: Elad Ben-Israel Date: Tue, 19 Mar 2019 13:00:35 +0200 Subject: [PATCH 3/4] require that @internal members will have an underscore prefix + erase hidden interfaces --- packages/jsii-calc/lib/compliance.ts | 64 ++++- packages/jsii-calc/test/assembly.jsii | 119 +++++++- .../.jsii | 136 ++++++++- .../ExtendsInternalInterface.cs | 14 + .../ExtendsInternalInterfaceProxy.cs | 19 ++ .../ExtendsPrivateInterface.cs | 14 + .../ExtendsPrivateInterfaceProxy.cs | 19 ++ .../IExtendsInternalInterface.cs | 15 + .../IExtendsPrivateInterface.cs | 15 + .../IIInterfaceWithInternal.cs | 11 + .../IInterfaceWithInternalProxy.cs | 18 ++ .../ImplementInternalInterface.cs | 27 ++ .../ImplementsInterfaceWithInternal.cs | 26 ++ ...ImplementsInterfaceWithInternalSubclass.cs | 20 ++ .../ImplementsPrivateInterface.cs | 27 ++ .../CalculatorNamespace/StripInternal.cs | 27 ++ .../jsii-calc-0.7.15.tgz | Bin 72770 -> 116 bytes .../amazon/jsii/tests/calculator/$Module.java | 8 + .../calculator/ExtendsInternalInterface.java | 72 +++++ .../calculator/ExtendsPrivateInterface.java | 72 +++++ .../calculator/IInterfaceWithInternal.java | 20 ++ .../ImplementInternalInterface.java | 21 ++ .../ImplementsInterfaceWithInternal.java | 18 ++ ...plementsInterfaceWithInternalSubclass.java | 13 + .../ImplementsPrivateInterface.java | 21 ++ .../jsii/tests/calculator/StripInternal.java | 21 ++ .../calculator/jsii-calc@0.7.15.jsii.tgz | Bin 72770 -> 116 bytes .../js/jsii-calc@0.7.15.jsii.tgz | Bin 72770 -> 116 bytes .../expected.jsii-calc/sphinx/jsii-calc.rst | 271 ++++++++++++++++++ .../jsii-reflect/test/classes.expected.txt | 4 + .../test/jsii-tree.test.all.expected.txt | 39 +++ .../jsii-tree.test.inheritance.expected.txt | 9 + .../test/jsii-tree.test.members.expected.txt | 24 ++ .../test/jsii-tree.test.types.expected.txt | 7 + packages/jsii/lib/assembler.ts | 130 +++++++-- .../negatives/neg.internal-underscore.1.ts | 6 + .../negatives/neg.internal-underscore.2.ts | 5 + .../negatives/neg.internal-underscore.3.ts | 6 + 38 files changed, 1306 insertions(+), 32 deletions(-) create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterfaceProxy.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterfaceProxy.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsInternalInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsPrivateInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IIInterfaceWithInternal.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IInterfaceWithInternalProxy.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementInternalInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternal.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternalSubclass.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsPrivateInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/StripInternal.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsInternalInterface.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsPrivateInterface.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithInternal.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementInternalInterface.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternal.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternalSubclass.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsPrivateInterface.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/StripInternal.java create mode 100644 packages/jsii/test/negatives/neg.internal-underscore.1.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore.2.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore.3.ts diff --git a/packages/jsii-calc/lib/compliance.ts b/packages/jsii-calc/lib/compliance.ts index 506c3768a9..4bac3db39f 100644 --- a/packages/jsii-calc/lib/compliance.ts +++ b/packages/jsii-calc/lib/compliance.ts @@ -1344,7 +1344,7 @@ export class StripInternal { * This is an internal thing * @internal */ - public youDontSeeMeAlthoughIamPublic = 'world' + public _youDontSeeMeAlthoughIamPublic = 'world' } /** @@ -1357,7 +1357,9 @@ export class InternalClass { /** * @internal */ -export interface IInternalInterface { } +export interface IInternalInterface { + prop: string; +} /** * @internal @@ -1365,4 +1367,60 @@ export interface IInternalInterface { } export enum InternalEnum { Member1 = 12, Member2 = 23 -} \ No newline at end of file +} + +export interface IInterfaceWithInternal { + visible(): void; + + /** @internal */ + _hidden(): void; +} + +export class ImplementsInterfaceWithInternal implements IInterfaceWithInternal { + visible() { } + + /** @internal */ + _hidden() { } + + /** @internal */ + _alsoHidden() { } + + /** @internal */ + _propertiesToo?: string; +} + +export class ImplementsInterfaceWithInternalSubclass extends ImplementsInterfaceWithInternal { + /** @internal */ + _alsoHidden() { } + + /** + * @internal + */ + public _propertiesToo?: string; +} + +// +// hidden interface erasure +// if a class/interface uses a hidden (private/internal) interface as base, the base will +// be erased from the API +// + +interface IPrivateInterface { + private: string; +} + +export interface ExtendsInternalInterface extends IInternalInterface { + boom: boolean +} + +export class ImplementInternalInterface implements IInternalInterface { + prop = 'implement me' +} + +export class ImplementsPrivateInterface implements IPrivateInterface { + public private = 'i came from private into the light' +} + +export interface ExtendsPrivateInterface extends IPrivateInterface { + moreThings: string[]; +} diff --git a/packages/jsii-calc/test/assembly.jsii b/packages/jsii-calc/test/assembly.jsii index 50830d0539..f8fb036c02 100644 --- a/packages/jsii-calc/test/assembly.jsii +++ b/packages/jsii-calc/test/assembly.jsii @@ -1478,6 +1478,43 @@ } ] }, + "jsii-calc.ExtendsInternalInterface": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.ExtendsInternalInterface", + "kind": "interface", + "name": "ExtendsInternalInterface", + "properties": [ + { + "abstract": true, + "name": "boom", + "type": { + "primitive": "boolean" + } + } + ] + }, + "jsii-calc.ExtendsPrivateInterface": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.ExtendsPrivateInterface", + "kind": "interface", + "name": "ExtendsPrivateInterface", + "properties": [ + { + "abstract": true, + "name": "moreThings", + "type": { + "collection": { + "elementtype": { + "primitive": "string" + }, + "kind": "array" + } + } + } + ] + }, "jsii-calc.GiveMeStructs": { "assembly": "jsii-calc", "fqn": "jsii-calc.GiveMeStructs", @@ -1649,6 +1686,18 @@ } ] }, + "jsii-calc.IInterfaceWithInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.IInterfaceWithInternal", + "kind": "interface", + "methods": [ + { + "abstract": true, + "name": "visible" + } + ], + "name": "IInterfaceWithInternal" + }, "jsii-calc.IInterfaceWithMethods": { "assembly": "jsii-calc", "fqn": "jsii-calc.IInterfaceWithMethods", @@ -1776,6 +1825,74 @@ } ] }, + "jsii-calc.ImplementInternalInterface": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementInternalInterface", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementInternalInterface", + "properties": [ + { + "name": "prop", + "type": { + "primitive": "string" + } + } + ] + }, + "jsii-calc.ImplementsInterfaceWithInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementsInterfaceWithInternal", + "initializer": { + "initializer": true + }, + "interfaces": [ + { + "fqn": "jsii-calc.IInterfaceWithInternal" + } + ], + "kind": "class", + "methods": [ + { + "name": "visible", + "overrides": { + "fqn": "jsii-calc.IInterfaceWithInternal" + } + } + ], + "name": "ImplementsInterfaceWithInternal" + }, + "jsii-calc.ImplementsInterfaceWithInternalSubclass": { + "assembly": "jsii-calc", + "base": { + "fqn": "jsii-calc.ImplementsInterfaceWithInternal" + }, + "fqn": "jsii-calc.ImplementsInterfaceWithInternalSubclass", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementsInterfaceWithInternalSubclass" + }, + "jsii-calc.ImplementsPrivateInterface": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementsPrivateInterface", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementsPrivateInterface", + "properties": [ + { + "name": "private", + "type": { + "primitive": "string" + } + } + ] + }, "jsii-calc.ImplictBaseOfBase": { "assembly": "jsii-calc", "datatype": true, @@ -3966,5 +4083,5 @@ } }, "version": "0.7.15", - "fingerprint": "73Alf0ZvqK2FlLtj23s9t2mdHy29p1KR8E8O6oLIxh4=" + "fingerprint": "iMxRj3lsHKNzSiBrjCyBH6Pp7Uvo+1Sxh/jN3hW+3nA=" } diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii index 1911171cc8..f8fb036c02 100644 --- a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii @@ -1478,6 +1478,43 @@ } ] }, + "jsii-calc.ExtendsInternalInterface": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.ExtendsInternalInterface", + "kind": "interface", + "name": "ExtendsInternalInterface", + "properties": [ + { + "abstract": true, + "name": "boom", + "type": { + "primitive": "boolean" + } + } + ] + }, + "jsii-calc.ExtendsPrivateInterface": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.ExtendsPrivateInterface", + "kind": "interface", + "name": "ExtendsPrivateInterface", + "properties": [ + { + "abstract": true, + "name": "moreThings", + "type": { + "collection": { + "elementtype": { + "primitive": "string" + }, + "kind": "array" + } + } + } + ] + }, "jsii-calc.GiveMeStructs": { "assembly": "jsii-calc", "fqn": "jsii-calc.GiveMeStructs", @@ -1649,6 +1686,18 @@ } ] }, + "jsii-calc.IInterfaceWithInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.IInterfaceWithInternal", + "kind": "interface", + "methods": [ + { + "abstract": true, + "name": "visible" + } + ], + "name": "IInterfaceWithInternal" + }, "jsii-calc.IInterfaceWithMethods": { "assembly": "jsii-calc", "fqn": "jsii-calc.IInterfaceWithMethods", @@ -1776,6 +1825,74 @@ } ] }, + "jsii-calc.ImplementInternalInterface": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementInternalInterface", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementInternalInterface", + "properties": [ + { + "name": "prop", + "type": { + "primitive": "string" + } + } + ] + }, + "jsii-calc.ImplementsInterfaceWithInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementsInterfaceWithInternal", + "initializer": { + "initializer": true + }, + "interfaces": [ + { + "fqn": "jsii-calc.IInterfaceWithInternal" + } + ], + "kind": "class", + "methods": [ + { + "name": "visible", + "overrides": { + "fqn": "jsii-calc.IInterfaceWithInternal" + } + } + ], + "name": "ImplementsInterfaceWithInternal" + }, + "jsii-calc.ImplementsInterfaceWithInternalSubclass": { + "assembly": "jsii-calc", + "base": { + "fqn": "jsii-calc.ImplementsInterfaceWithInternal" + }, + "fqn": "jsii-calc.ImplementsInterfaceWithInternalSubclass", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementsInterfaceWithInternalSubclass" + }, + "jsii-calc.ImplementsPrivateInterface": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementsPrivateInterface", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementsPrivateInterface", + "properties": [ + { + "name": "private", + "type": { + "primitive": "string" + } + } + ] + }, "jsii-calc.ImplictBaseOfBase": { "assembly": "jsii-calc", "datatype": true, @@ -3318,6 +3435,23 @@ ], "name": "StringEnum" }, + "jsii-calc.StripInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.StripInternal", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "StripInternal", + "properties": [ + { + "name": "youSeeMe", + "type": { + "primitive": "string" + } + } + ] + }, "jsii-calc.Sum": { "assembly": "jsii-calc", "base": { @@ -3949,5 +4083,5 @@ } }, "version": "0.7.15", - "fingerprint": "IWSOEhdZzuvrss5K2WBjZCawXayV13yCAKTj/kJ9+mo=" + "fingerprint": "iMxRj3lsHKNzSiBrjCyBH6Pp7Uvo+1Sxh/jN3hW+3nA=" } diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterface.cs new file mode 100644 index 0000000000..74f3685952 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterface.cs @@ -0,0 +1,14 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + public class ExtendsInternalInterface : DeputyBase, IExtendsInternalInterface + { + [JsiiProperty("boom", "{\"primitive\":\"boolean\"}", true)] + public bool Boom + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterfaceProxy.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterfaceProxy.cs new file mode 100644 index 0000000000..6d71d9c080 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterfaceProxy.cs @@ -0,0 +1,19 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiTypeProxy(typeof(IExtendsInternalInterface), "jsii-calc.ExtendsInternalInterface")] + internal sealed class ExtendsInternalInterfaceProxy : DeputyBase, IExtendsInternalInterface + { + private ExtendsInternalInterfaceProxy(ByRefValue reference): base(reference) + { + } + + [JsiiProperty("boom", "{\"primitive\":\"boolean\"}")] + public bool Boom + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterface.cs new file mode 100644 index 0000000000..c8d579d155 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterface.cs @@ -0,0 +1,14 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + public class ExtendsPrivateInterface : DeputyBase, IExtendsPrivateInterface + { + [JsiiProperty("moreThings", "{\"collection\":{\"kind\":\"array\",\"elementtype\":{\"primitive\":\"string\"}}}", true)] + public string[] MoreThings + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterfaceProxy.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterfaceProxy.cs new file mode 100644 index 0000000000..880c3d032f --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterfaceProxy.cs @@ -0,0 +1,19 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiTypeProxy(typeof(IExtendsPrivateInterface), "jsii-calc.ExtendsPrivateInterface")] + internal sealed class ExtendsPrivateInterfaceProxy : DeputyBase, IExtendsPrivateInterface + { + private ExtendsPrivateInterfaceProxy(ByRefValue reference): base(reference) + { + } + + [JsiiProperty("moreThings", "{\"collection\":{\"kind\":\"array\",\"elementtype\":{\"primitive\":\"string\"}}}")] + public string[] MoreThings + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsInternalInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsInternalInterface.cs new file mode 100644 index 0000000000..bb0f93d2e7 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsInternalInterface.cs @@ -0,0 +1,15 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiInterface(typeof(IExtendsInternalInterface), "jsii-calc.ExtendsInternalInterface")] + public interface IExtendsInternalInterface + { + [JsiiProperty("boom", "{\"primitive\":\"boolean\"}")] + bool Boom + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsPrivateInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsPrivateInterface.cs new file mode 100644 index 0000000000..1916e235ab --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsPrivateInterface.cs @@ -0,0 +1,15 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiInterface(typeof(IExtendsPrivateInterface), "jsii-calc.ExtendsPrivateInterface")] + public interface IExtendsPrivateInterface + { + [JsiiProperty("moreThings", "{\"collection\":{\"kind\":\"array\",\"elementtype\":{\"primitive\":\"string\"}}}")] + string[] MoreThings + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IIInterfaceWithInternal.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IIInterfaceWithInternal.cs new file mode 100644 index 0000000000..88502b3fa0 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IIInterfaceWithInternal.cs @@ -0,0 +1,11 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiInterface(typeof(IIInterfaceWithInternal), "jsii-calc.IInterfaceWithInternal")] + public interface IIInterfaceWithInternal + { + [JsiiMethod("visible", null, "[]")] + void Visible(); + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IInterfaceWithInternalProxy.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IInterfaceWithInternalProxy.cs new file mode 100644 index 0000000000..4284951359 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IInterfaceWithInternalProxy.cs @@ -0,0 +1,18 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiTypeProxy(typeof(IIInterfaceWithInternal), "jsii-calc.IInterfaceWithInternal")] + internal sealed class IInterfaceWithInternalProxy : DeputyBase, IIInterfaceWithInternal + { + private IInterfaceWithInternalProxy(ByRefValue reference): base(reference) + { + } + + [JsiiMethod("visible", null, "[]")] + public void Visible() + { + InvokeInstanceVoidMethod(new object[]{}); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementInternalInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementInternalInterface.cs new file mode 100644 index 0000000000..342e6c4f9a --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementInternalInterface.cs @@ -0,0 +1,27 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(ImplementInternalInterface), "jsii-calc.ImplementInternalInterface", "[]")] + public class ImplementInternalInterface : DeputyBase + { + public ImplementInternalInterface(): base(new DeputyProps(new object[]{})) + { + } + + protected ImplementInternalInterface(ByRefValue reference): base(reference) + { + } + + protected ImplementInternalInterface(DeputyProps props): base(props) + { + } + + [JsiiProperty("prop", "{\"primitive\":\"string\"}")] + public virtual string Prop + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternal.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternal.cs new file mode 100644 index 0000000000..1b783a8748 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternal.cs @@ -0,0 +1,26 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(ImplementsInterfaceWithInternal), "jsii-calc.ImplementsInterfaceWithInternal", "[]")] + public class ImplementsInterfaceWithInternal : DeputyBase, IIInterfaceWithInternal + { + public ImplementsInterfaceWithInternal(): base(new DeputyProps(new object[]{})) + { + } + + protected ImplementsInterfaceWithInternal(ByRefValue reference): base(reference) + { + } + + protected ImplementsInterfaceWithInternal(DeputyProps props): base(props) + { + } + + [JsiiMethod("visible", null, "[]")] + public virtual void Visible() + { + InvokeInstanceVoidMethod(new object[]{}); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternalSubclass.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternalSubclass.cs new file mode 100644 index 0000000000..9a86613908 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternalSubclass.cs @@ -0,0 +1,20 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(ImplementsInterfaceWithInternalSubclass), "jsii-calc.ImplementsInterfaceWithInternalSubclass", "[]")] + public class ImplementsInterfaceWithInternalSubclass : ImplementsInterfaceWithInternal + { + public ImplementsInterfaceWithInternalSubclass(): base(new DeputyProps(new object[]{})) + { + } + + protected ImplementsInterfaceWithInternalSubclass(ByRefValue reference): base(reference) + { + } + + protected ImplementsInterfaceWithInternalSubclass(DeputyProps props): base(props) + { + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsPrivateInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsPrivateInterface.cs new file mode 100644 index 0000000000..892ffa7339 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsPrivateInterface.cs @@ -0,0 +1,27 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(ImplementsPrivateInterface), "jsii-calc.ImplementsPrivateInterface", "[]")] + public class ImplementsPrivateInterface : DeputyBase + { + public ImplementsPrivateInterface(): base(new DeputyProps(new object[]{})) + { + } + + protected ImplementsPrivateInterface(ByRefValue reference): base(reference) + { + } + + protected ImplementsPrivateInterface(DeputyProps props): base(props) + { + } + + [JsiiProperty("private", "{\"primitive\":\"string\"}")] + public virtual string Private + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/StripInternal.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/StripInternal.cs new file mode 100644 index 0000000000..3344d1dbb4 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/StripInternal.cs @@ -0,0 +1,27 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(StripInternal), "jsii-calc.StripInternal", "[]")] + public class StripInternal : DeputyBase + { + public StripInternal(): base(new DeputyProps(new object[]{})) + { + } + + protected StripInternal(ByRefValue reference): base(reference) + { + } + + protected StripInternal(DeputyProps props): base(props) + { + } + + [JsiiProperty("youSeeMe", "{\"primitive\":\"string\"}")] + public virtual string YouSeeMe + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/jsii-calc-0.7.15.tgz b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/jsii-calc-0.7.15.tgz index ed86b811e526056a84c870825fa150c655b7fcf4..eef7587bf20015975a43efa48f8cd0487c889042 100644 GIT binary patch literal 116 zcmYMs%?X7-3`OC+Ron)&78f=UojYV8?~P<4TE0IZE)NI3(PW`kOLXMw2qk!|T!IO| qnl>Xsd=|5Ax?Ugf#tzj=_aIUw75?6;ll2h#CUgreKfGUIl literal 72770 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 AcmMzZ diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/$Module.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/$Module.java index 09aa4177c1..9ce60725e4 100644 --- a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/$Module.java +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/$Module.java @@ -42,17 +42,24 @@ protected Class resolveClass(final String fqn) throws ClassNotFoundException case "jsii-calc.DontComplainAboutVariadicAfterOptional": return software.amazon.jsii.tests.calculator.DontComplainAboutVariadicAfterOptional.class; case "jsii-calc.DoubleTrouble": return software.amazon.jsii.tests.calculator.DoubleTrouble.class; case "jsii-calc.ExportedBaseClass": return software.amazon.jsii.tests.calculator.ExportedBaseClass.class; + case "jsii-calc.ExtendsInternalInterface": return software.amazon.jsii.tests.calculator.ExtendsInternalInterface.class; + case "jsii-calc.ExtendsPrivateInterface": return software.amazon.jsii.tests.calculator.ExtendsPrivateInterface.class; case "jsii-calc.GiveMeStructs": return software.amazon.jsii.tests.calculator.GiveMeStructs.class; case "jsii-calc.GreetingAugmenter": return software.amazon.jsii.tests.calculator.GreetingAugmenter.class; case "jsii-calc.IFriendlier": return software.amazon.jsii.tests.calculator.IFriendlier.class; case "jsii-calc.IFriendlyRandomGenerator": return software.amazon.jsii.tests.calculator.IFriendlyRandomGenerator.class; case "jsii-calc.IInterfaceThatShouldNotBeADataType": return software.amazon.jsii.tests.calculator.IInterfaceThatShouldNotBeADataType.class; + case "jsii-calc.IInterfaceWithInternal": return software.amazon.jsii.tests.calculator.IInterfaceWithInternal.class; case "jsii-calc.IInterfaceWithMethods": return software.amazon.jsii.tests.calculator.IInterfaceWithMethods.class; case "jsii-calc.IInterfaceWithOptionalMethodArguments": return software.amazon.jsii.tests.calculator.IInterfaceWithOptionalMethodArguments.class; case "jsii-calc.IPrivatelyImplemented": return software.amazon.jsii.tests.calculator.IPrivatelyImplemented.class; case "jsii-calc.IPublicInterface": return software.amazon.jsii.tests.calculator.IPublicInterface.class; case "jsii-calc.IRandomNumberGenerator": return software.amazon.jsii.tests.calculator.IRandomNumberGenerator.class; case "jsii-calc.IReturnsNumber": return software.amazon.jsii.tests.calculator.IReturnsNumber.class; + case "jsii-calc.ImplementInternalInterface": return software.amazon.jsii.tests.calculator.ImplementInternalInterface.class; + case "jsii-calc.ImplementsInterfaceWithInternal": return software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternal.class; + case "jsii-calc.ImplementsInterfaceWithInternalSubclass": return software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternalSubclass.class; + case "jsii-calc.ImplementsPrivateInterface": return software.amazon.jsii.tests.calculator.ImplementsPrivateInterface.class; case "jsii-calc.ImplictBaseOfBase": return software.amazon.jsii.tests.calculator.ImplictBaseOfBase.class; case "jsii-calc.InbetweenClass": return software.amazon.jsii.tests.calculator.InbetweenClass.class; case "jsii-calc.InterfaceImplementedByAbstractClass": return software.amazon.jsii.tests.calculator.InterfaceImplementedByAbstractClass.class; @@ -86,6 +93,7 @@ protected Class resolveClass(final String fqn) throws ClassNotFoundException case "jsii-calc.RuntimeTypeChecking": return software.amazon.jsii.tests.calculator.RuntimeTypeChecking.class; case "jsii-calc.Statics": return software.amazon.jsii.tests.calculator.Statics.class; case "jsii-calc.StringEnum": return software.amazon.jsii.tests.calculator.StringEnum.class; + case "jsii-calc.StripInternal": return software.amazon.jsii.tests.calculator.StripInternal.class; case "jsii-calc.Sum": return software.amazon.jsii.tests.calculator.Sum.class; case "jsii-calc.SyncVirtualMethods": return software.amazon.jsii.tests.calculator.SyncVirtualMethods.class; case "jsii-calc.Thrower": return software.amazon.jsii.tests.calculator.Thrower.class; diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsInternalInterface.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsInternalInterface.java new file mode 100644 index 0000000000..d93a72c5cd --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsInternalInterface.java @@ -0,0 +1,72 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +public interface ExtendsInternalInterface extends software.amazon.jsii.JsiiSerializable { + java.lang.Boolean getBoom(); + void setBoom(final java.lang.Boolean value); + + /** + * @return a {@link Builder} of {@link ExtendsInternalInterface} + */ + static Builder builder() { + return new Builder(); + } + + /** + * A builder for {@link ExtendsInternalInterface} + */ + final class Builder { + private java.lang.Boolean _boom; + + /** + * Sets the value of Boom + * @param value the value to be set + * @return {@code this} + */ + public Builder withBoom(final java.lang.Boolean value) { + this._boom = java.util.Objects.requireNonNull(value, "boom is required"); + return this; + } + + /** + * Builds the configured instance. + * @return a new instance of {@link ExtendsInternalInterface} + * @throws NullPointerException if any required attribute was not provided + */ + public ExtendsInternalInterface build() { + return new ExtendsInternalInterface() { + private java.lang.Boolean $boom = java.util.Objects.requireNonNull(_boom, "boom is required"); + + @Override + public java.lang.Boolean getBoom() { + return this.$boom; + } + + @Override + public void setBoom(final java.lang.Boolean value) { + this.$boom = java.util.Objects.requireNonNull(value, "boom is required"); + } + + }; + } + } + + /** + * A proxy class which represents a concrete javascript instance of this type. + */ + final static class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.ExtendsInternalInterface { + protected Jsii$Proxy(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + + @Override + public java.lang.Boolean getBoom() { + return this.jsiiGet("boom", java.lang.Boolean.class); + } + + @Override + public void setBoom(final java.lang.Boolean value) { + this.jsiiSet("boom", java.util.Objects.requireNonNull(value, "boom is required")); + } + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsPrivateInterface.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsPrivateInterface.java new file mode 100644 index 0000000000..2da0756139 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsPrivateInterface.java @@ -0,0 +1,72 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +public interface ExtendsPrivateInterface extends software.amazon.jsii.JsiiSerializable { + java.util.List getMoreThings(); + void setMoreThings(final java.util.List value); + + /** + * @return a {@link Builder} of {@link ExtendsPrivateInterface} + */ + static Builder builder() { + return new Builder(); + } + + /** + * A builder for {@link ExtendsPrivateInterface} + */ + final class Builder { + private java.util.List _moreThings; + + /** + * Sets the value of MoreThings + * @param value the value to be set + * @return {@code this} + */ + public Builder withMoreThings(final java.util.List value) { + this._moreThings = java.util.Objects.requireNonNull(value, "moreThings is required"); + return this; + } + + /** + * Builds the configured instance. + * @return a new instance of {@link ExtendsPrivateInterface} + * @throws NullPointerException if any required attribute was not provided + */ + public ExtendsPrivateInterface build() { + return new ExtendsPrivateInterface() { + private java.util.List $moreThings = java.util.Objects.requireNonNull(_moreThings, "moreThings is required"); + + @Override + public java.util.List getMoreThings() { + return this.$moreThings; + } + + @Override + public void setMoreThings(final java.util.List value) { + this.$moreThings = java.util.Objects.requireNonNull(value, "moreThings is required"); + } + + }; + } + } + + /** + * A proxy class which represents a concrete javascript instance of this type. + */ + final static class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.ExtendsPrivateInterface { + protected Jsii$Proxy(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + + @Override + public java.util.List getMoreThings() { + return this.jsiiGet("moreThings", java.util.List.class); + } + + @Override + public void setMoreThings(final java.util.List value) { + this.jsiiSet("moreThings", java.util.Objects.requireNonNull(value, "moreThings is required")); + } + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithInternal.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithInternal.java new file mode 100644 index 0000000000..dff686d28a --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithInternal.java @@ -0,0 +1,20 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +public interface IInterfaceWithInternal extends software.amazon.jsii.JsiiSerializable { + void visible(); + + /** + * A proxy class which represents a concrete javascript instance of this type. + */ + final static class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.IInterfaceWithInternal { + protected Jsii$Proxy(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + + @Override + public void visible() { + this.jsiiCall("visible", Void.class); + } + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementInternalInterface.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementInternalInterface.java new file mode 100644 index 0000000000..fe714d34c3 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementInternalInterface.java @@ -0,0 +1,21 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.ImplementInternalInterface") +public class ImplementInternalInterface extends software.amazon.jsii.JsiiObject { + protected ImplementInternalInterface(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public ImplementInternalInterface() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } + + public java.lang.String getProp() { + return this.jsiiGet("prop", java.lang.String.class); + } + + public void setProp(final java.lang.String value) { + this.jsiiSet("prop", java.util.Objects.requireNonNull(value, "prop is required")); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternal.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternal.java new file mode 100644 index 0000000000..118c2d2a28 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternal.java @@ -0,0 +1,18 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.ImplementsInterfaceWithInternal") +public class ImplementsInterfaceWithInternal extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.IInterfaceWithInternal { + protected ImplementsInterfaceWithInternal(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public ImplementsInterfaceWithInternal() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } + + @Override + public void visible() { + this.jsiiCall("visible", Void.class); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternalSubclass.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternalSubclass.java new file mode 100644 index 0000000000..692993f251 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternalSubclass.java @@ -0,0 +1,13 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.ImplementsInterfaceWithInternalSubclass") +public class ImplementsInterfaceWithInternalSubclass extends software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternal { + protected ImplementsInterfaceWithInternalSubclass(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public ImplementsInterfaceWithInternalSubclass() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsPrivateInterface.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsPrivateInterface.java new file mode 100644 index 0000000000..c8f13c3480 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsPrivateInterface.java @@ -0,0 +1,21 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.ImplementsPrivateInterface") +public class ImplementsPrivateInterface extends software.amazon.jsii.JsiiObject { + protected ImplementsPrivateInterface(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public ImplementsPrivateInterface() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } + + public java.lang.String getPrivate() { + return this.jsiiGet("private", java.lang.String.class); + } + + public void setPrivate(final java.lang.String value) { + this.jsiiSet("private", java.util.Objects.requireNonNull(value, "private is required")); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/StripInternal.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/StripInternal.java new file mode 100644 index 0000000000..c58cffea3b --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/StripInternal.java @@ -0,0 +1,21 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.StripInternal") +public class StripInternal extends software.amazon.jsii.JsiiObject { + protected StripInternal(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public StripInternal() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } + + public java.lang.String getYouSeeMe() { + return this.jsiiGet("youSeeMe", java.lang.String.class); + } + + public void setYouSeeMe(final java.lang.String value) { + this.jsiiSet("youSeeMe", java.util.Objects.requireNonNull(value, "youSeeMe is required")); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/resources/software/amazon/jsii/tests/calculator/jsii-calc@0.7.15.jsii.tgz b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/resources/software/amazon/jsii/tests/calculator/jsii-calc@0.7.15.jsii.tgz index ed86b811e526056a84c870825fa150c655b7fcf4..eef7587bf20015975a43efa48f8cd0487c889042 100644 GIT binary patch literal 116 zcmYMs%?X7-3`OC+Ron)&78f=UojYV8?~P<4TE0IZE)NI3(PW`kOLXMw2qk!|T!IO| qnl>Xsd=|5Ax?Ugf#tzj=_aIUw75?6;ll2h#CUgreKfGUIl literal 72770 zcmV(@K-Rw>iwFP!000001MIzNW81h9Fx=1i6|DDpyY|*mB>9T7-S&}u%JC6fzBl`9 zD3X#GQ>2!pY|Cx_`#UoLNbnRX$xgP7+pH}S1O{`@02mBa?N03(Z-(r5<+JD5f0^@7 zwOUfkB5dAeWX`>{&47;_o|Q3 z`R>S|uMkT3jF7`8XXNXqi?8dZ=hI8rr|R|$-wT@IYwEo!ea5~S&*QtE)Ab)z*Qlri z^~td-I7Y=cJm0I(v@Dz#@0{KpsP~2)=?=c^xz1?V((^l%dVyC|*EhSW=Cik?v4Tcl z_+MYddkebb+lC*V3zE=-3DImCY)r!bIZa|K==eBjxSYTQ10wJ34?)8ORNk;}+K&ho zgBbryPZt=wgv3}t{?G-(36edizSb9CDz6^`QUVD0we9GJf*;=Ce~2uARpoDgQ*^W2 zeT`qT$ExQUgN`*OoGbL-g#eb$$kr`G-!_H@aGI@|#CpH7p#uJY&70wSzj3CIyuc^& ze?83^8gHccRF5d||0ID)YX_{J(kwZ?)Fzn1&@kNXX9Xu1N;mE^Mk1kogEXNR-&ShX z%4$`fNY?y__^*A(vAonV)sf$K+;AwNoETdwS4Kx^8}7ZS8A6m6My`b|`o2H(-o1IF zK6paxG-n_hIc`t2%_o)XEmSALn3`kzuGtv@hllJCXbu6vj-~2K)39H+JXbZWK!D=o z_e{S(>fqRK40xpzHgp|J;y12HOxuTlMj-OPy^;hg0mPZ9Im-UX{M-TUTm%Hye5|^z zJ6|9id_y@>T}{flOM!12$vu257Lp@w#4NEV$qrL&r0L zoa2y@kY%wg0F%Ku5}3e4mfG=1Mk@FQ^2)0(U)x;I{fBG*H>4(?X$-@%|90)miE%6eiNQM`}qG8DMnO>esLuX84o|-xnPw8ATmDZ*)CK{g{ z4Ib|xrc=JUzcGJL<16_X-=?@Am0fhYX(f(+k_f1a$ zl(?!pR^ZQ(XXuLWD7rClY|nR9-%wOrSJ;9=-%z@S>W^H*Q=Bf%4?Fqc2c=Ex9YK#> z6EN~%T9(o=6w}rmcj#bWI(&fMu_LxZqUeq`8W<2fBSI_KL8}YTMIV@t@;&Iv?*kml z$A$gc#{~e`Hk3sO(w&hDi1!TTQ(|_XmX@iXk9HrBV%og`9-5=-5flt=nDNlm6hvx8 zIf3up2h%f_sRe$Clf}OWjy|%CkM`oH0PmlcqWzkHH5iX(!u}U#VxA`t%U6~9#y}Mu z@unvDB(B7g3T&3evZL&(!WI>gyn@}EOYD28+ z##48dMhC@A^S3P3i}a}S2XVV3R`inMPmdEp#X|QFJJL2fWK*)KA!_p92}d(+(>GPi zd@|hVpwS0>eJMHyr~<$I*ozh z_Z>Y4jtpWj(sNxb+8j}5aii`+E8lRVW5maa^hdvw0U%QtDQ@A=H3xw7d&bbd3py|1 z(`7nOzeT`x4N&rSir+n9jIc+^I44{snw(=da`06Q0DCm(7;Xjt3EBsV{B%|xy5J~) zvdLpdb1)eBYR5A2_y9ZFb)7-Ls?n)A;9|I@o|Y+?joahiRVt^HprAltOzUN9k=d13 z0aY~@)svwHQaL0#Y7s8UQx=6dNObUl4K`l*YIHp#IgDUl+~6=>dj4SvPp{3P=A);{^CAP#=NtHLDx&LegWUB zY1$BKoxsG{YH@<4As~w79KiEON@73f5QKbO_&bC^9qLDML`Rh(KAf%>5W55bQ4qEu z#stS$QI(9TL<94r5K9j;y`n_6F9A{Va)#c(Es>-URDeeJ`Ha$ndfR zPSdgql}ptc6-`f-pWvC<>rXvH_hn`n{QcY9G<7OwWW2P=)F}{KyM`wc2_j&>M}RBY zE|S2H@33yldTOayN|A{8xO4EYvlX^1MFz+@pEPo2yK#|cg>?fMpq9kQ%~ zWt~Uj`N^hXf?78{g(L%$W!4DLp>WELm9FC|s%0sZK~TKWaOk+0N$ZR$ebo;I0b5~`j|+$KI5afu343N)zP{@`D2_;g6|yM;72kwEX8={_ z6@Dj~l^$ou-wE6>ow5Tk%{>k;I94Hjk)Yt*d^#kD@Zv6$vOlYoPVlK!d)#ncbzH`e z)EvtKp2wZN>8)Zw3E&I5Hgrx{NjD97L}G3eLi ztc>K|^D|e+aV$f%r$#q_e>#+-Nt=3Pe0jQIWhFLUD9ROVj&hy=0-i&hdgl1@bi)o_ zRFCAjd&dbg5QCrhF=x%ftk2Y#pT&4F5r3Wp;Dn(^Hjwb8Ehi0{`bY^E&wfpLnDpS% zF_I)k_>;OpE2raxh=VUrOS_ne+2Vg2sd1n*Xv(+0CBB=y>1ysuo=EYsKE$(AKiy)o zpR&|{Zni3+0r@y{=A=1kPaI3st8*D$l$^7e4eC~sR% zJQo#)N~ySY9t@qO`Djntj2Mph_Dy6mdxqas-PyC4zYlBAyN77GC>-^v;Yhc-IXTpc z>^X7C1JHl{__(-)>2llgF#(TkqAYrbq1Z-GMcBNhWu-In72a4~Rw|VWz2e-d;{wZ0 z@ZzrH%uZz79{T~``>)+D=FLkS9={D~7(cHt6b0jHYA{kVc`0zrS13Iam&M0oQt1U! z*(oiU-kb#Ue}vuA$((29<2E73r!r*!vCSbKmD0GeS7>~g$` zGcY}4AArzMnpbipEh8zNqk&T zRAea80(ii5A*8d$%gRIF)cR~S9$v9O+NOQ)+!>0h+%xv$FX8GvjA7z_s*eEBsACxl zpAz)%na~!)5#HlRdjLuo!B80uI;wUD@45!*!=8g%VSEQqqp0_)Y2gB`V#0iMQ}qp| z7aiLgf3(#uXfk%BCV1|_h}u}QitLzSDA*=|KX4L!3p5QDiyYfO37B*4o69G~s2L+q zV?zcb%YQlb{VmZjqFi2=^GHB{B^PqMD6CXoi%07@j;(+ z%W$UZn9KIz$pSmYR^qrM=jZ(k?jfE%VkjWHQ%p84)N`J!;EN3F8lK`V;lUI*3R7&; zL_t&9P{MQCJo*wv`Ot!CBiDtNd>=HDhjK^oNT=EWf$c41Y9)-!(aMIsDo*D!1d^4n zYiL_y9OjgSx}Z|b6yXbHjZqqoKcw`dcw^h$(MjE<~BxM1J!b@I6n6N;Mt?FN6 z8~fK@df{6lfX|Xh!$S`Os|64Uq4WPB0*^5fo`$^w7_*Ju6Z zX!k!zJ$A$vkZ1Hc()e*5+8q@h3tBY0if(jG+t8N^AQLMCU0@F>TPB{f*g~4AoQqc( z;EA1Nf;iffkHID}QS8J@(9`rq8;WlREplk>r9Ie&VmUqJIXrWg;ucMb*s!NVr&q+8 zea7A7DZ%ZtZWJqk^MN`|Ag6{Q3=>N@Vg(C0^!BX#%!G|7FvP#4swG-(s) z3A)N5F}+lnM`qkqSLg_CSzC_nzr`3C=Q2KRu6KB5js8X#!l$c1ypK+vep|Sae(BAi3(RoUD-rjoj?Whrr{aEAFJc%VS2XbZl{Uhc%oKOzx5PVlx zwF31r!y0C>0iJVVGvLZ{kQCw7Fy$ciIMvSdG?-?j=m&Oh;1-p19cdtq4O?%Fd}jde zpY}nXUSTzqr*3FqX4gznhziX+R})eyQBegH-~)`=29=SA8Cf)t1ht}tU>DI=r6)bj z%2i6qEjDJ*Ym!QHTXxqdWjuRs1akr>wlz+veM9ZO!cIj5>B$~ z?wp6Ei?oGUHajP?GCiZuv1nT+2TfP!GE0bx@t8$#38GnpS*U(?US`>i_Po0(qWvZfcdC*K=&$SgpUh1)F;|2#Q zSokTj9S0Y7#8jq9Cb9!s=PvzvK@5mfZNh37+3m(S?nK!6=Udlm-N$>ER$ku3m)$R$H za!LeGb#IdKknD+CJXi8~qDX`eF-@2q9GrS5-Yl8T;Y5@_=RuQnj?9yXGedKFHn1Wn zwuW~SirHKis<8bJ^|!0<6y2c{)UFs#`G|^-j(D@Pd2C=s6*+n-Ic~TXg~D>=NmuInmVOWtpj<2>5;ID&>gJoc+0b zf!_%yhNdZkkYW!by=0A@Cs~D=`z0UUu9f zX_W7$glBgk3m?c3**2HxRQ#}(Z9MvA(Il}4V+&UCHibE+L)3InI2nY2^y5RRw|nL zFYe73(|=Q}U(D5f;CVhS8GQ97MqRHc?QjzpfAu&skN#gx#JQ{kl%gDFO~__`ToBZY zFb${P&&8-mFCHh0cuhsMZbE|T@pQ`rnUWC2Y5dbPk;QaANQPRUpV6b9#rE{#OH--X zWMJYJN!&~-LYqlf6=zvS*D!o=Z+Y>s+3v1RcJ@sq4LWq)qX2FWvLOPCIf+MVq!J}# z{L`F*?joX*plJptiCLJXcqljFymN1$Srgr|OFs=f@@R)gCDVL=9UZrc?~ zRpLt7sxXnAXIf&$7`&^x#skFH1-t>#^raSDW}aKmarDj@s2_`|7|7%fi#7@~qF6)Py`k7CStroW(Jno+3*@d$5=Mys!H0zB97G zQ}&xiV_Wsr^Qh*ZUG0G~81?!w<)-vik4h3thr*T>lkO?jP4ABp7}Bn3=**k!80=`6 z*dq4P?iiXn@(g;z?t@e92b;d6LD*3=UNk;|al7p1s}B-rf5_WrpY zb5$Qa3vfi*{D<1c+DE%3A8~!e^R0`RjOvU`O9zL1Dcok@;oa-WZ3R>WV-QsWg|t)N zbYF}=QTu8M)p~A&dIxROXy}WMW*KCqVh?%-ljV27YV%T_3B4k4A0m7X{o;uk|)ollsuH_??n_Q4zlYygN*VM&mE2j z_^^+~Y0{RhStH%>w%F1~1ut5h#U2+N;w1zqGEU_9Yyl{zJ7V35--`NGPtO-2#y%wp zp2J`k9=wc5$KH5esunSb-6;&>EOi0XCW*`R!S^pq(X^qTlb(_B{)?y?D@gU6)Qb%@ zl|jww<3)^UUYWCJszg?VcXF$gy_98-5@zSoH*7C{2jBBDR5<1|0n%J5IhN<(6rlgC zD&?RZsa3k`xN}Kb=5_m=&RpS5SUuWex0|+gYRa5U>iLd|sv;epWDc?rU}X;66w4Ro z(Xkjuojb=WXViIdQ_$r%!AXoLshcT_(<@_!$%2OEX%=9s9KB{f){@)rO9XVq04Q4$ ztMMWpggj#NWetLQubvs6;ockimE+E~B+@9!oX%O?y;gvN|gzS>gq!Oxx&*jY;hd zs|=kC5c3kP(P!05puVe?f~ITQa;f`5%_Ey8C%s@fY6&uRi|p$Rmnr-bR5iOL+6EQ$ zOTFWi(KRNBh-zzwQwA=()BuU9#gksK9J|0>gu%j~kq8tyh zjOYH)H?5alJv)HE8ohD_)^pcQ_Z`ny+z~i914FqtT+BZy9&Ha-I)>sIzH)D>%0au; z`n|EYb9`Q42{i=rMFO(qXmh_!G;-@|hzrHA?@f^S0lS0GH8E>E>lKWj6Z4_RkqZ6= zSnh?E_YNIZZ>ko03i__<;x)r<5GzwNUgQ=tw%ot@_8s!8^s0~K-Y9SEykE4assg4 zRwr*T40`>5zQ%mTV&0d%6`}*b9v<+o4M%wKqwgsr5AfU>6GeR0yQ_S}E1ON7v-xsR z;2L;sfUL|Y;$l5b?CD-=Oqcy(M+0NvxML;QjQ{SVU0+*Q7Ay5N<$mkK#gg(`Y22$O zZ3q;tSs(9|YGrM&xvbRiKlQ!lM|-VShgS={DPCDtR`5To_;RgUUsV=slV6U!x2zBh z>-e7y{LfqLt6p7wt1Q+h_tj+kny@EQ2Q}yj6-JGIX)cSeKH96*O~A@(@ebee4p*w_ z9e%W_60%TL@FyBsy66;d^wtg68sm{RE>Pz{@NK-*n{JN|Z$8VD93W%?(HV|ja+}C= z35+^$zGd(T+(`gt@SF!1fWj#5a>tl=*T*GV$GsLX_E6L{71*VltFHFIiUQ z{_;gAv%iR_zKEa!awiKKV@F`lKfAbXhYbJFH|Xd9qOu`53Fy=)P2nUwn3jc61bIQW z;lBn?C|S=`Mrbse%)%(kTu2Voyf?hP{QUqaxQ)0~+%*hP3eL3Ivr%&?3>!-8gQDs> zxLjTy$Hwxn`4~o#D0IeYZm69QZ3H(w&vh4e)3jB0d@{tvY}|g4hy!v%kaMbW^wY-$ zr9=HFj_9aJL=ntra;TibLy;R+=?YLRZo1k9qhK8xUH^3-wYg{N21AY= zyY)ME_%h7*_6wH}EO~Lmmn;b=KfyDz*PnWZ?#s+D_&ZrGai+?vW|4eq`GOfj3(UMU z`!W?{N);td!(4p0uUN7*Qf6i%K2j^k{5PTFf3AY<)O*CW4})giYLDAGWp6J_z^!fV3L$AzT=jya#!G%HwB zIMTt9Ztgt(*Z73rUAgbB+_!^{?-w+D_u7;^uPv_izx!-i_?^XPJ9c!V?Sq|DUH#DP zxM1wdxNNz`-|&2;Yd!*t7`W^V=rOxvR_zh{QU;DbvUqu2Tk->&z|yeL377L-}$(}(LxLLFtL$EOZj~jm!9apS|(08#eqI9 ztgCfhtyec!S2kB_#^&3V)vi{nYh7cl(^=i-Ems#(H7TCc3|xfjnqyfYzR?;V!Bc~cGQ*|M33(RS zrRfw==+o@kkx%FdIz5*##AaPa5}u{*E$y6Bao;0uKgO`o$H1DxXcZjqt^p1v#5fp5 z<1rB!8ZTsUT*VGtJ(4`5&TE2H|y zG*%YSGn0)if}C8tIz`+z)s{Ya8UNfI7+$SfohE3UuAXtG5R@_G>8zYz9k<0(TTZC=qcH3=&GiF{i&CuROp{bXK zW}3yYqR_0&IY6Gie*XzyA?HSpXBuZwPpKV#RVOe=RT%TQksiF~8N<8Cbs*oOol7NQ z1_OO?tnt8chker<%)&R3e!dBI@znADeC}uapSmqNLdZ;}c_?+MP=QUc;II!Jk4~pn zw)o%1ESqG92xGb9YHV7QnYZv+wGSCEL@dyY9aclEASJ{WIKoh|lUyD7svG|7+dHfl zEir*be<-;-5Qh~CO%<^6l{Y9)@C0LAI=4-HxvVk8wuuDKOmS&dawp$JAFj|`jYr%Q zN*i-1rABu&hr8+Vc)aQP@Kv|+(LTbm33$*uyyFHdFX)B~idGj_+RwVnBm`;tUCPCj zXcEA0hcE@jcMAN*<$BJOp5Uj;cVW%qWl7z96HXS}OJ2mSh+hVlf}=4EYR|2Za$0xa z1kNJorzb7Ws3i&e`u4KRgtxow*|u93BY|5HWTYJ?#A!=nd;J+=p>J5hj={Ti=}R*hsAeQc zEQ*AcRT9KW!E@B4A8i$4UwDR_;*bz5gvKp(wj%Y!XUgi)B4|P9rrn3w8NzEiv?0Gm zBg&^^q?0kwE&^T@at13w!mn*mK7HEZPw}Q^3Ozo3S`J}Xu}OJwU>!gTeM2S=+ubJ#S=qZ&vEnLQ1z7pFF4b4MnyjEOT3D9HtF9-CnLV zI!+g>pE031hk>{HhIWTZ^cmvNwC=tMo5~vEe(7yiLeB{HMSHWGt(46LxmK&>368Wa z2no}*To}~&R)l$inzmtK22kT07v>3Sa{EF-cVL1u6tbGw$I!6H>6`GU-yFpgrE3)VMzIvIBcRjoXBBZ-a*CxLChfk6^b)!9q_83VJo5ZBdOhckkc5;L zasSyZgwqs@rX7wdmO>u@XQ-CvP$?7DvOsAJXI^J*HqI8Z2~i;Qn0e1*CTa@7Pv|*` zZDK1uiG(WNrh6C9-PrYuGtFlT&Ba-3JS&wGnYWp!Jk4Ixc?bZW>j?xvgQ;0tsyA~z zizmlvs_ty)ndhO{3~iiH?wJP;%AJaxf-8H552mp4(M~?{*rUm|R^+bcEVn{AmqLNG z7)8v+I{C_KaoQqb&s>Ium4CzZ@ob)M&`ZK0G$P*)3`AXl^i8Aql2)^L)2$*aU(#%{ zuvQ9PFTFpsA(u|2oUu0=cw(m!uV+{2)MR_~yt|zPjLYN9ZOh;HZE!QLDm~XWI0(Od z+WZE5S-`eX^B1UPQTp^?wh=F0++vb`9^2Zb>G~tpItoJR>GgE7w{Id>55QT5+wvOT zl$G7MMP80KnY#R49J1-7(rKK9AfM^zW_Nso*B6NTLSJFUeYWI6$;pzSopeD>{P)k; zHB`Ov(mVwtxTbM$d9Hu3zzEPrAOPJ`}AI>9rVBU`r&ecKoswr<#3 zncGZ~3Lve&Z^D;ISy?I;s!gtLn^a|KSjeWp7W{5Tor#$a4X{C(vp^g8X&-)QN2n5j ziUlmFE-tQiMvoQMiySMG0skf_oO16~=@UeVnhH&+JjnxWWK-G;HrwMC&8cj08XYpb zeQ8fGQG2OG&EbqG%+uK`%u2Wo3o~;spN&&>w)onx_2Xnpf2urB{1#t&Sf(OYI%Rh7 z7>*ZPaEnei{%KD8>xbfQ&!y^` zsvc~Ook9D?dU_#+TcB8ystjGDYd*4-{|D2uaB&|unvuN^E93@;|2kvk)2AO)kE$i( z5xFRD#uR&a#0y86YPWT2nbBBB_Z+_qIZK$5sAROCpJm|adFI{JxP!WDy5OAgHG8qG znwHgZ;{ebyAl#zbg|X@Rr%#L?pFZJM%X?GDbC5pm^q{Juv=zi07)zCeCQ2x_u;hg6 zm9ijnKlf1xXY7u9jxUen$h0+Uq|SR8EC0#0V%Gt34XbiS;xPt7kSh-zw{Q1}L}hsGJKbM}zr@@1F*T z>1fI}q#5=s!=g^ubNi=RP36Evc0uE8@B*-~T8Y>-4PG~MD}&~Rc8yO!)>m~ICSPkz zNd$;45DTJahloEW-2@-3+&k^$eazF|_g-LY_jBe)@+gRHydf+2vmlXueyf-NZ5#c+ zolW?YczN0bOH*=ra+(G3_Wai?HSh==ia)Tn-!&gu(Ow=`v+I>~LvviZKe{61esQUQ zlHl**vcKs21r9mPbT)D3J3C9@n-V$CgKpmScWk2`kg%wD{y6tS`LMDAzRFQ!OV%wbnLhT z)lwL5NH%#gJFzz>pW>Vd!gin=rhp=NxyWwINl4D}j51H`;ZOt@-Y4!ceX~%lY*cD% z)GL-g?ins96gJh?Rr_S8uirk6?p@DYdtbk5e!ksOAFkE$Wo>1=)p&pY`OV$I=HCa- zFAJ}}y!y-k-p`N~<$SZX-#FgeIXu~`4D@-AQLR?jS67v^@2k~%b$z3z{AFcry;`fS zuUDZR{88Q5fZy{5B<%-0UDX9pX6=V2Q&ocBf0Cacl&!uBLZciyy;rXqmZjJZd9;c~ z-?O{1F;;*mg)W^H>x7_aMm#j2l@n;vHNi5z!WzWCZaMZnJfvNAsKUX*d%rD;`k9*a zRAUb-j@w%zh0nfFdLwXKbqE>4nuwrNaJNTT&M5)!OFkYW;P6W9b$C{PfeY;~VdO`boKDdPeDt215mpgb;*W zXu|zcaR6820Irq=a3uh6RRXZOiU9rq-8M%(WfvVZfL8hGCsytiA#M$DRnJg-wbv8X zS;4qIn65a~t}Oog!^-OVWQasH)7AAQfZ^A-hPtw;YK3M31boBWFD)%Y!014{sNlE- zNEM8`CT6>9s1Ur1$zmg%sy7;9ao6zBKC1xBs=KnV7L5p>@Y@mtzoiMU8d|shw)lj3 z`z6LiQI1%NbHqwnj;IG5u@Z1Z?R9l!PAprG16VH$U@ZW!&H#M-x>kQ(t4(Ctt)L(= z%h3cyelZ&nDe+4iaEYAtT5)pLYeddXZ4KD5I5~Oyr8FkQ8q2>o_I8fX88juhy1qux zXx*A#)rxTeLc`lfrKw&(uLR?+rtxJhPWA$Ljgq|@ki8a=z4p5HHiPWMfV$(`hX0z^ zrbZt4;5v_ECCt7nUf&s6I$9%z&iE+o8Vqy~3FWno;#03}5Xym=Z@cwke2pmQ?V~8K zl~A0u^)!@M<0!9|MEPcb@v4mR`g}COW(>T|lF+>s&}}AwOJN5LR}fZ{n=LA?#G@BjKkeY3ccfwoIDN&$WhMyaz` z3NTFYN|gatfQkWNn@bTht2-ox1J%7_Tiq4lqJ@!tXFCt}0`3wQ$0?M>k!?XJsVw|! z0m%U47FUeWmMKQPyQZ#{P>ig7gm(3}#T6s84d*MXBp)wv#FVLJ(JW!gx&aX;1ix%< z#WfJLWgf*!w^LhJi+dETy*xM341T}X^t&HwYx!XCb^;P;P7Lw3INL#6h9HicH%xm= zmRnKfTiej%9H_$~$gjr`Ra}suEfZjUZBth}#RZtPk21k#aXEpuODVXm*2^KciV?(5 z3K$MBRf^cU6qaXJ*fzXCUcv{Y=t`KhDq|?Erh;Ekz$6J_VeM0Wno!~m8w`bp6f>w@$f66t|u^GPp4R%J++Au8&~cf#dgOr-GpFv9(~z!-?Fwc>s!v}H{2 zwpOjxjp9te+Al4|;xl$Rh~m&K;)(?!HIUXrljw?@ewb!hE#YOXZW4^^HLbIv7E6yH zjJ$o6QA@=3&^ATUZ*1g45K|`5JcXmyV;ogXD~BAlCOB$ca8z~kb$t>?1s8Y7!P5g! zg`76#Nwb@7LN5(awo*d2SC|rC+j!gQZWfQ9dHX1-R*F0G&^GFbiu($bPvC`q3b&uI z>AA)qBNL}e(<|YdtuRvx_GV+Xgl^&OW78|)a;#L-t*|%joAx74ShXw&eDTEBz@X$R zYEkBcDy)^#hlgOK@q#7SaNM41n@`wm2+9Q!Q7<8qbtaOl)iqr$L1*4Riimm%k*rfB zRC`<8%t6}}0gR`G%Vvdxr0|*~fVE6(uHLJ%N*6nHL=r2=Rn<#mX`n69V5PpcQLh(g zM&3R~gA&YGXK`YYA%j;|QZ(uM+x$UeniQI+5Hg-VFPl9NlIN>3A*=JrkHj;%WfQqU z9(P3ouDU)S;Nn@_(n(waTs;9?LIjS0hM1#aj1H~~T|6hY0xZKf_o`*;$^i%pxHG!3 zj808=L@!aE2Zf_rLQzy%UcR%k0gg(yuyFA95#fLcqqw%&n6MCWX1tbn%Hh|nax2pe zuU|iqUyMo`oIQO6?r?{ShAReEE<#HN?RdVc_O>`ipe*QN~^Xk7)1^Ia;$$F+^( z9tX4~s_Di`x4K?DNaO7ze7s&<$FHZU+V2>hFGkm6#%sN#@md$gYh5y4`2Tqb(0a^x zt(P=j>%w@gOU7${z)8l7K1w5Oq*|bbBh`YA2cUCtqZV7=USQXnGBfil+efRXPLn-a z5^yoDTPf}^LtDO1yiu)Ji>;Hebz*8CwMQ!@wEhYpd`|m6#QvYd*4EB(duL9)Mt}16 z|E$+G>hb+Q)%wQT_x(RF@srq&oA_w}i}VfU(9{guGxFLCsjpY6%i#6dBh?)%^=frB z^Ce_>;P;1zhl)zW;4Yvy78}ZY^9o-)-#I&KD~;oAW$Wa4yLH|=Ic_VvCuhnWP>1(PInUIq{6yb{|F`HU76uaC7328PNGfP-H) z@W@#McU5O^k^UNa;KE|o0bMx!TI^)Rwz`SiDLW(DcA|PbOs8WLZMHeuQ);x7J?iz9 zO?Fzw^nz_vakv~e0T`&Ov1|7FzT!OCxQqb)qwSmi7}JP-#|2A@qFdVraju1CzEBb3S82Kx9d$2o0C*=5Y=(bFzr9IvBPs0u#657iR{W(Oef zF$f_gKP^00z%EktoUZ?X?B&sbJRB9WM;-BQSc7FD|6Q{;;(N(30Vk=C6H13CL09cD z`wqx~8`A(FIyN{ka7QITEd&I(!uGJGDj15sv4Ycds>0Ai-7QBa$oq&*6MZ!k1&ZhD z*))5=32euAWWuucq79iYBO3I>WEcD@la+^)rhVnOcL}BN0ACWsq=%5xLJ=@+F^xa~ z80z@62C5E<Xq{Eyl2JZ^nodvn|WmX07q3>8E6!4naGcgIDqC=`Kq)GC*nq zD8!E8bVI6dp(^J#K9%Be83;sH8ZST~7dT-{130j=2u+BGb?%9Xo*af7dJCRs0lzE> zg)g>TTS9GnqYmf}t~`X_LEJ@<6L?${Xdu$#3AaK}nao|TwU8YZN|533$nUshY;^$@ z+0IKbYmdkJ`JBWN6=v@PwG1yAcwEhOKp8J16*{U#e1x^&07v9}jBIh=HcEkvbR$F* z;>q_S=b-P=2IrZgKzGSw!2d&-KqHzKzHH%v+-2Eh1+I`c_IzXD$ts+JLo^|DWwU6( z$d8tfc`JdhB_n-VQX>&Akg$z-10Po#v7|4JNPG5#8+k<EmngdfXlcPR>}h{PF9qYrrQH9J_l*Lq(pj<~;tx0Y$V0Z-9(p z9xAEnLUqnIRR9)&QHPcaj2?UgFf&u@(Kp<&kmEMl%@1@jIm?L=Q_MN(7Dk{Ii9jDz zRJ#8K)LCTPuTjA8T2SfGkH-QcOrz0UCF+5@4xRPYdxN|@0T9K}PPdDG9vA_`0`<%O z3mV07eMXo-4{%4BdxfNC#LN%{j7DNqbvU#z+@z!VY znXD1|PwX=tF}KtQZ)Ey7RmG4y`{J~soG4r-5sY$45rIZ1W8CBkuZmd*6j7v};1$&q4x5hKv^etx*yX3-bfyYc zE6SN6XND>?G~Q|+XtuZ(0zGI7-zK7ua=bhu3A&9i*a(yy@ez77@Y@M2ax`paCOkuv zEr+2HAtYq2fnhKzcOBfF!tA@yUGIdQT~wFYOtFwi58*}dSiAvbHDQXj??qhSAUedK z#6(rH5AjIiXELK=%#JiBOWcI6G{#XFzq6!{i!6i{q-^997Cm~>@O1OBU}@}=9fs7| z#Ic{~$eJ{=Yxp2w%ffG#LU@V}0HXNhq=AD0LxxzUO00o(T;|-pjA~Ig&~I9noC#u4 zKNL4UHSL%ibL$6ZchSrxvXl;z^FK?;_-F-ai@ z0wO?0Ea=eHU*jal0d3eCHJE;IEDRNb(DOcv!cc!D(JaxMoCg+42T4ANA;RDlJ(MUo z;-n2-@)^m^2WCUnb^P1Kct_?)sTTn{$50VTSZ3JwfDrPWD4xRfhOQg7J{kzOHNr7M zv9S10kTb5+2*DzWfhQl*go(0Mc($Bxevb1WLrm7XMJkHIsDj*9O4c(6AeQ)&NP(U3 zdB`ARO3v)khG)skP4VEv)LzPx5$i@;D{{Ii&@6{yL$$c=aYiU2XXgS@qW*AbDVrAp zkXWsXSmD6y##}PF(#S`Vv`i4G#3F$RLDneP;VS_wRt>#CucBPAlVV6T;}HhZObmai zM`?j1$Zw3}UZj-FlG0e2sjJY_#}VU+9OmkESFbgy?^ZZ z_)@TXL-wWPu%HaZwnyO|nh^rc8-Y3S4BcQ0K_~_iN%%m_yI=`Yz+w;*^&qAr#vgMD zp@__QG&D)Ylj02!;u<~GW$Q}u*n_VHtb-~P4v2?pQSzg8hcu_pTyAMa2ocX0)R_As zmNBprjO5W^*2{43F{jTz;`R~7!>qAjS^=@(lrT&U_Jen6KB@;aL6c4-1;g(QaCv$} z$8a#oq`?F^DT1H_Gqs8QtdJ%_H*O75OaQ~wMn%~+Jqn%J3ArmQT4m$P`(6m@BEpJEgLsH4x5o5kgt$v|Cy=cyG}=n5y`VH3 z?N(bL_o{Wie{ylITs6+l8pr3YowjmvCNImM>?)1p8|8iLcpKauldS-=@AptGv&j@*@u(%4zspwwa_xCEP*$~`iQjZ zKr1sWDvYuVP|kIRu8HnBO}NW9Arb$D8du7fvTUR0flq|f73$jbNV9v6W(Hw0Q|f%3 zm9nw<fUZWxV&c0-ps+@ufpk?U)uVp108QDh3u}Avjnc@Rdc$PJj_2Z7J0vRdEDsr$R$x&JEzkbhXRY%+ZPmwi;KBRNxOXe21o!$g4o=^yJr%xSy38v92c=5G%t?a2o1F) z6jyz8-J{|fUo6aBZWCUp)^{A11*J@9WU-xcuHd(I4bmse{J=1lJYkayg{{tp06j0yP~}C_{tO-Gzc*Eod=ABSST4FjPNOS z9L|q+wAhxk8WQ;2d|5PuNo>G#!Wc7|U8bK=;F-J= zZn^<(bfXL53VQ=QV?8BxuDS!#M8dfauo#N-$aTZjGM+iceacjbh9^;%lX>ILm^&Nc zgvN-05T}7N{~&Rr zJOpb=@N-`9g=M~tBAQJQZnXna<3bqji>$_S7|C}{!_qwk41`5Rv;jjMT%|OCGZ%jS zZ6Q#6l$qexZY-FIv?`DKq)57=EN(mYkHLNcNk&EIe_c{2TBk6Tmy-b(KY&Br_Y#_I z06##$ziDk2WyKqVK7R}rLMf1%!zf^AUzW%IaF8ci6?MFY@yPJFSct zQ;)!Xhj{xHrE)D3+-P@<-p9z}`2u4=%Q7M*LpOtyW6V!^qGN?;!11J>(x&& zMB(7b4iNBc9qwCDJ&VW!A^4K5uH^V3seHB|K~B(qZ2@=v8kp!%FksNIs?w*#oIWir zvzQmFWtg zqlmK|1xM;Izd_3Tpve+fxh)tTcslFxOXcX>jS4$FlkqTqL5X~`FjETr>H|=g2W=S} zwzC8A(22c+H6N02+Rmospxbhue~|CXi?soh;8^#@0ceyXftgqnFN3Mr_s1j4+UgtHT}tOZ=1__2cG~E* zMsKC#>68fJ7k>Kb%}*7d-v`d=w!k*!#9G>pZv4)u8EgJ~u+8N6&iHp!{=Xv(d-CQJ zvOcdBPwn!8O_t&F-NvSFuoded9R-%F(!>3Ow&NNve+h-q{~#rAw7_6ibimWx#>mzG zpzGHX@n3xd+ke;p&;P@ATr2-pf~!`R6}n~&Lcd+tG;AHX^$XkO^JChjWIz7=>dj9- zy;6Qsc5nr!%ib{!SKJbZ+j_!_1SXT61 z@vZ#w7l99<6FkKQ(Fgpo8o6H9oX@D$F*V}vLg1a4ELZ8EPWX0Ox%0H?r#4{l+kjkz zojpU?Gf6RK;Dvw%bV-GKIYO@hCuicQ6zwYuuODRD+Xshz1>HuF#QX>&EV0JY>P^#z z5G7#T0HW}lfbEj(gIhdlImzmK?-6FZtj9^k#(8Un&WeHZ6JXiX_l};*K;*!Y1-xu(dBnEf^4N@`A z5Z%!A0J(9b$FNBySVD%vXW_M8S&polPBOp=AzGGI#S*#|eBiFYN6NNQycR}V+D zMT|wZ64$C_vPlFm2Hbh-J&00^H^JZ1)rarW?(f@5y%_H2tdXa^?=ls(-_Ur^F?{@~Z`}`%RsURQ8mE8v+qgF8GrrsO%2GP)brbHIpx= zxIZ#=B2+;voik&%DFOgW)z8$wg<6=BWMWUF|!-qvSALG z65_NSXS#{f6qY5Z%i#M%SfQRID$En4hcaOUeADAd%&lWM!n6_)5?<oB|tppr>WdJ%9G!|_sr3+bSejF?!T@F z??^B})YGJfsRtQTTi=J`qI0jz8K>0smfchV10J5iH^f_|HzHVDm19&dKE9wX?B`0}-jcHKR$ut0C#D86TbU4EyVtiA?WE?N-z9l7gw zV6)$A;KTAQlZy*!DP`OMI$gdnKQ9;qqf*F{f87KhW%iaNn@I-&g|m!5Xr?L%#xDp= z?0c8Kcg6Q#^BG#*aUGY;!hx1ONI_bSyH*UL}tG zU*ahIxmYH$XzHQ>((wqhJn&s#F(_H5JQ~G=f7?Dg%;if&l>_V9g0C;(1N}Zwl80P`|Y3qlwtc4{FSbH@JE(CDLRyt zPqe30C4@g7ZM(u#Nm07T+u;vwIW5Z#?-JeQz#oG7^Q@x>Y2?WOB)O*Y*)i?KAAejD zZd59a;$aGDgAS7O(Ah19>0q(@-)-YTp{;X^pDx(l(;{u|v4tjXH6(g{`4k)KON(WY^xF0;Ck-s7(sUoWt37kQ&!Jn5>FbAH3K{OTf~b6We`e9WNg$Em~n-7 zP>aUBF18_Nu_^(FT4)hp3roIKG#4Mf|u-uPvq7TyA2pRni4Up7;ehleuz6EsZlw)Z#zGuYUwXb5~3G``^tRE)nrJ zXO&<^<@tq??H7?{f1bs{Ki}$L8MQOpQlA7xz=DzGKC%-zgXgX3<#&DvZ*r~Uy6RY- zBE#M<{5M!I83dM*me-<1%SzBIzA_wneJ(C(nRH<` za@uii9wA%kZb)YP7s-a>y5|r4mKK0?2u{Ss+2Jp`>Z|W~IT#%J4W6w186BPV)n#LR zP`|xCcv7!6N3GA!)8W>^K)rgj;BWJ$zU$qrTzWUxXZM=9_J=lZc`f_+UcWy0e0zCt z-&r{|Pt2AH?>u!@F2^_Z%cs`oVW%}X?sxW%Yn{E_YG-K}$8SMJE*GJ}w z05`p$Ia8r9nZKpfZsBa?g8(YaLsALalJ!h z89TvP(8uw6#L>mwsi#&Cniq&ipvT#E3SV9A5S=f^kLS?ljPck7>+|kNz(sQ-o~b@~ z=g0%&RJb_&oTu1#6WfJ2I(j-ChkO7uX0V+Tt=`9ImDVrvz_Gw7rwhlGM5}X>kJb2C z=K*gcZrE5l;P3PrWKN>1wo`zv`^Q`G`{~q_`TB8N>Sq^tp60;tx+Czqi?ou*yA5Om zzNB67@Yb}E+2AUits^%H=^z0Ja;^r zmglnQbprUDsQ0$}Fy>B#2Tz}NcVhfOZP|Q#Vmuq|$8A*}?>>!cJuavV7LVs4)}boh3um)JiYRTEPEQs z_Hpo;>sy?A^P~oNygt}HdGf)AT<+uN)9Rh4Ux+?JeFFG9Bc7#xE`*K&7%o>&pJFiW z6HGqLNz&mLj9zT)fR`?C?w_q~=`+Z^7Lx@lQzu`dy>F-TJ@UmL0q+5SU4%SyOFYAL zT9juvEs1B&edI%s%@(t#V@4xY@a6dN2|sJ$XVT3l_026DJCK8@uD(RyM8MB+5|OW4 zq}j?@FrP^@C4PDG?-5q?N7C>V?;|QFk`4@PNl}zK)f0dkT_w{}EdZrqSPyCB_k9@rV5>`WW^Z3XKdL8g`5HpP=AN;`=rKf(gl-eg!z`)#@Y??-8tBXOMv~V9qtia1Mk=V;I`sO>gNV^aL7BT&mLu5p?rF$=EJIx3&6oOz(@93;2QZ0 z^daip>p)js_Ph?+X^mv-YU|O*J^=1BfN|%j+RC+~t&V2cSMw^ck35iu9Fc$9X%FJ>s>M;g&ph=ubraef}NO4^f@L z;iwWHNA12W?~JFM(B4MZzJjjbeLQ9O zzNWccvUu*2$qnl19AEG_z){~)l9V(&_Pbg-SuN8Gkf=A+2?T;^c>mHsyK2~+JE(N^7QCH(Nt4&WPc20U?!I^*&Z zc*5T&|E9`)Oc?*BO)`8fVg}UDmjX|FKGSccA1=uEBA=}q;i+4uM=!SsPSo8Q`s1b+ z)gLf6>8Km>Nx?rh37^_sfxUORS5t%3XJOEo}|E#a^X^j85uQF*aEC#!iVqUP5 zNcVGQdk&a=NaRBLMEjNIR*a7$@I~b)A}eV!kR~f+%g@vN+;qGmybrQXV!Bm|JK9NE zzhV0D;na-ckn=+{@4jLbboOF5^Ms^3_i=0chq$@B*%(=295V*UTK4_jZ}@$6~Wvl6O^iv58W^ukd-fa zh~`V)#_)a_tAd?a-&;pS=>$0^5q@jjTZkR~%6&yo(|`XY!Y!u-_PKEQ8N&Z&A7S-&~0Z;tf6 z%aOj-TE7~%?hnV!s#bp-cI?yj+db>)=IX$^y?h+0SG9-E%0acY@Ab}CnwB=$t>PNe z;a2nN=IXI_+kWVs+n4^$;BpM#9h}(*!`rL1yUzYyuiI`8w85s|+R__Z{rFznySP{F zh%$Pw^qHqJ{a6w9b1RcXKTy3zusH3jQ!@lW}il$ zw|1;OZD3iQ!I=l+j9Yt`tB8-={i9y{A{cwEweM>kv(am9HSXV=L-9Ald46+!*SoE6 z-rw#WtlhTPf4aBr>FxjL{k`)I`4LEnSRRc&u`tZy}eZ_ePI+x|`cqSwAW=mTEwI~V+& zJ00*0d`Ihx%?&YEF($`B?;^w*yuVph_kb?@ysvh1q+iuc-~}0Pz0-Y|*Z$?WV;}WS z+s*L}@?O2#>j<8daCKPYe-lrfI`7Y&pdIkZCj85ulf)Aj94BXW_-F?~{l2xg`G9c1m``bZ53-E( z?%%AOaybHA4XhFH#F{MA@*JYyTfVmUXmzd_ECuCb8)N`*bNSTT+esZSO2=j&z6U;g zbb$Uxw^z5-!>c~b>9nWSt-ISc%mw%X>6`lA{sF$%RNy-uC;$WyxqGHcpKgB zrt!k@eaAkoYWC%4q~m+Q`OOv3ZUA#bSe~5TI;fA4&R0Rekkv^^-IvzxBbrkrS*R6u4mK&dLT~5x7TMi zZLr$Y_xeL^yymIzq)g>1=48}y&LZL23>NBK<3=$Qk2skPv9%WRrpU;3JT7m?FcdE_#9etqcy zjvmlf0&c5lH-U$@SU=VWiN+Co2W>(-yJuOXQwr+bnP_0X01eE18l>6D92wg0)Hm;L zY|BD_0_}o?^Zvn8D(n$knbY@P*be49ZmxA!E&y+v_pP?Jkp?r`7Co=e?cUl1d2NC` z$+F+We>d&s6Yj6+$hvMTO>TEhZRHGf=y52+yO+i7Kmd31bEm$BHl=p6g8bDV-(Ky4 z-CgqxNl$~H!F|L8pFQc<(60%;NCEu>c(a4~%J6LULGEgd4=*3g_m?@c#`>`2xm}i) zv+{Cuc)k{^!2O9s(Rh@ZX-5%E!7WW`{IrtDECJYBI9!h9RG@sbaa zZu?VW7coDQ@k9IU{sP8BJ%;pxvDZMKjiT>MejB6tgAQ@3dUb^D>D>$VUhhM@x!tK_ z?0O7-@}(@}qf?GImC=gJnhw7$pyS#J%-;u{BE?)ux&;0w=-%6Fpl$u8hyMEQz*%a?X zOqg@0wWYoNu70+(%*2>QT@S^YC4h{6%_s<}<0H3f9`W0}hUXiT{#z(%3(XBAO zZuc%f1D+Y5Sin;&X9M-R5Al6tv$gB>4pwTL*O%45e=xP)^|>FLN7F`lxeiV0mUMj( zk&8o{>F$##e3Bo~NQqHJ%uRk@RL=I#zz09&V+LEv3h+AJOg%jZ}$me!l%Q89BoG6mSaAQ!ysNAaX<3`K0_aX_s>E6vJszm zt_>149Q43Vz1Mrc&;7Ni3?}>>>D|wuPpoWxvL?wc@(1@N!KXB?9<9SWuy=!6zq1|Z z<>0j%$k4^V7l$2&6_Zn zs=9x0uaBF6bFFuFeK78-xPQ2W4S?O716x$6|g^sJFmx zV{)=3@_kxV{>`|4X8+Cs_RiI=cewi)*HzqxI6axKk%ml;VmdKCFGjbW(0-gn@X)<1 z7yE#m^mUxuRqd&@SF3gQ&xV+%5`H=Gbaw7y_qf(+OMXktACu)e$s=o7z8d*5+TQLM zbv^n3+RCM$nuEl=m3{UU#7LLE-rBDAu4>gt|A*t|#d-DY1LkZ&CxYL&I|3hljbvx< zpawWc-{J)38pCXJYmq z;<}IIc&qQ>7(~}ClzWi}VKmIJkDtNzjKeW7SJtQRAP#we7^E5>E8zc_J-Au99BZE= zbLaCH`U&j#ULW`#^iMtJ=jY|`c18OzCccUI#t~oHO5_5v)+Bb0F&{wd2jDNBc2;zZ zog+ER^xW?O*;<+l{~LW$U7A~Z?zf4yhUE%)KA++q9k`ym|6D_(8-+ zI_6`>Y)+@q^J^*mZsA(z_!eSl!09%wJ%SHI>o(LM@O@xIp)K-0v|%(jf4d&6eFb@l zTHn~SAoj1Nwn^lPcXoQwGj`1t&>x@GttP~o2;1%u*RMcUh_-A^lj|tdsap`&?>*k@ zsE@DC?wIaR#`3W>ITkC7qw{@cS&xmiX{v+E&-zwuZ4~q<=8rUv`}Wlu`uQ+NYhCcO z7NK+Mnr1u)2{N?#pgjRCcI0!32dDJ?I6ns&i?zXaHlI*N1dQGNhn_KRZYJ9D^`ive zv>}e={TvPw&)(!bTW@VQV!1LVpG>x(-@P>p^xX+x4|P<5KW^9J^2TM+zq#(Gz!vA_ zG(DB>=MX#t+(Xc0IoNh8or0L3$+yszmpMGO(*ytWf$8vO+;%Wup8Ri=i-$-~82BCK zVt_duh@Vq)T-yGniM~igk4NO``1s};=&}}dC z54VeJ1u1#Lgl{NvJ;}T}fA1Xo41Eir!|vJ#PX7-vo{q1xGy5v&UKM$i9{Pb`tDlgU z#h!|rq;AcmFVJk2+rc-0C%#^Pkb@iWiS|ivh_!w4naSRhjX8k$C&=^U({hjeE50Tb zuInfB&Rmv2kIFjk{gw{){uFb>WYbRJ`TL06J;Z!PK34l~m~Pt>GIK0)#VYejFo%?) z?{WQgCx8D!$R9wz2Z!S)v_WP<*YO+y;3$%x?b#i$-3Mbax6ntL^W58D=bl(zG?liL z=K?->V7_8LpP`@fp5rUzvsS`a;d&3~dM5iy&cO=$i<-yvDECkM97p8acyS%e;T*ni z-=(gv#AQsZH))igDX%MW%`0V%Bb$!UKBS{quZhg5Fs+zBwkCKqnm0||Potwx8EIEw zeTMn5Y3n=*J#o2uLwQja4_auR@<%F_LF$v;Sz$eY40e1WbbG-ww z=hkf`m!4_6E~y_Ya~*PcYc`zLHIwDU924uZJZ1^jqvL)^d_5sSQ#LP)d<)D0tR?d7 zav#7i>h&$~@I^17kN0G|3$hx@d)AsV%{9f>8622_%<f`Xrk^5g9yb@lu zHRA>E|6W~PsnwJBf3H@*-~aLwKX2Z=QU2i?UBfki?(B}EUlwdfHx`sP|9ll(558lM z2D`2^XybJ)I=cgAS!r!MqmG3)y-4>xFDpmmUDNgaHdQ5DR#+jkWrcmdGX4IEZH-T; zEURjH{KD}`w~Pm%NOc#NGq0!4y6ty4ykjrCP&vu zHZ1ELF^O2?rLT_0_(4?rn^6&ikg<^7gP|Bz;{AujY;n#Ht5N!!)p- zabtn?(!>u<{$UG0Y%R#QDB=ZYRNaynbN9kpYFOrz%H-lSu!eNA z#PZpSi>^A3V@Wj=@uQ&zW!T<{FQT_&vC7iYYwU~gE%}C0@e(UoD80nK2wzIOhYQgn zy@DUZ7q;oL2e~;G3X_`S$FMmo7#e+Hpbn+>@F{E_)?NGc&KOJA?Hx;Seu-Thh9%jg z4(W3oEu#3aYDe6t#-KY6;E2_I58vcpM4raR<==|2`Nv}8N4gJS zFlBP^^5p*!^*H~-5i4B-C%qSgZBnIf(d$wOJ$zjZ_Qe2>05bM$DKZ_0YvDi({p+2i zRHA%g*pbSl_%Q@TR(U@MMHkscd{V>9UD?!~petUM!shF9ffG~dF$%8o%V1=`3NHsWf-88%ZcG`%!jv&*j0e zMi_6MwDCITAzr(zV;yq5ElhJP%g`p>V#4P9gBvxMGVj04?VsHm0*WeaAmHy{m`wJTE95T82u{Vy*~rF1+{mC?eM7rL zkxgLa0+H=I$~~hE{o=J75&E#E_kfsH3GSSUm9M3zh3RqkXdb6NqKXP?)%12~GWV|xMg` ztKtv)97Kn8Xmzi&GP`5yn!Sr1&E-D41uax-aK;+-_QrhrK|XwKZt?yJq_^vka@8T& zq+!xGuYVXnErIcJlv)Gl>wAsuobX}@uTF9#tnmQI^un(|I%?P&tLyXG6?F{EWb}MK zgKXHoIYDeh!_6n+H&d*q%|w$>%M1q`74Oui&ucsS`x-Llx21QOFP~Px?u6ZA-9NDE zwQod)$It!*v<_9{2QU1wWd&M*Rc(0fZ(kM{qWBsnjzth<#SY?`*ppl`@MYkB4{*pv z3FwABO4iflzdwiAt%9<_$xpbVhk$Nk6`DjmZUTI|Zh&AQzra32dsD0^=c!1ANWgl)tXAUfxd?L|BgpeZ z*<}*XT9n14I+)Z#+kA-=LPjDZsFaj6Q>mpQC)UbTiqtPyy@Tm|%Jf@dtusnJpnZZj z`K;5YZyqyjVtfU4vUa+vJi3%x4CsG+p< z3*U5xKm^VcTJNhqk-{s!iN;>gW`5CTi-!tp!)tRq;NPG156@GHIrPQQI&w%nGKS`@ zs>%kxAwoZpe$JFPr5rcRZ-UslKyzK={!Hbd5gRVm76|&6MM5BiQ3q}(BG0$!yEVC#V#%`*eA{^Uwd$U$dk9=byvN$N>gX-vUH`|Hs>~ z*|0N^>9qXM5f_KKyN`K~xDi3l2dcYItffk$c*s|vn<81_<~Tky_)nz9)TM}Ip5lw+p3=#vs3 z{O@4%wbEQ)f*AC(z}qkCTTmbvVCbDL&YCb_4eyb;8uDhCj@aMz>!bDP3FN@`@=2QJ z`U8Mff4I?EYoFEI)t~WW$9M=6ni-D{o00wmi=~@SHp7YWXwoGx=D>EBvW5P16Lk;%f2zy2lKESFE_?a zrw_(&X#xs7Uz&R<@NjANu?RHeB8C3gTVm;S^~r*XMaHwy-gvO}40!M`IP1Y~K3r~C z_=@ouwsbnwpV4WjKf@~3#@dLa%x6#2;pSmwJf&i;+9MD@O%z7cA4npL>Cv1e7P&K@ zfXHHbWHx*1gD5^Sw*}6zk@>_xD*VfQ;=zJV0@zRB(P_)y0nVR=m4PgbVft(HcaWF# zg)v`wwC_(%juT`qcAj8o0OkV&^+ujaK^EF)Rm{&JVUu3bzF<(Ww;Y)4z(T_oS~Y$f z>-YNef!j9-4bF(=&>Ri48T~;(q7DG}sXsMgVxz7A_A#t79)Z55KRHZCo`O6UJ*K4u z{b(Ay>W#H}fd?oc$f&jd3bqc{^t0QA>y6x-(F(ZyXfZtSVRux+lv~?;i#FP?L5>Ef zjFd12rW|0%9{OCi9*-_TDF>xQ4D>_>v~c@RZp@nwp88LRDC;$}Z}8@K)Y@ib>$4KY zZ0i9OR2mcJ=8a-+#LtV(^X4rPAo8l^cI_Q}318TpUNNKoJK4#fbsy}*y3Q`$d^)T)%U8U6#1s+!3YakIC(|Fu z)J#jUK;}a~>GqTH%w;N*N{lj}QkM_IL~{5rN)HB?9|r?B(;r=?E4U<4FYtxkvVo!U!wtT_e_)>rE1&%C8!JElD;JxV!lo`4 z))A2#{%(XHa7ESjk-|6m!n8#t zeMOGNwN%xnrXBxdw9F!7rmHeBbLc<92t7NaO?f{kGR2|h`7P?KG5h&P5tZ|vQ? z3+n>F`{KpvXrdam-`WKx4FY;xUX-~Uy(;iy{U(S5`P~Su`^)Wk!YmugXcG_!C5NI3 zzl%-TEhKlk{$<+-rF)72Jt#{KMuZJ+AAm^b4m=z7QAxsY786jVHZs;j8HVtW`{(5M zApsyh1e)+!1Lp0yK%3doH3)`%R1ken@j1X^ZVJa_HXJr|wtl+&?27}#KYnIbJhZ0)7}4dkVW{uo!d^)!_El6MmgmtXWJgW<_IlkC9|{qV@hFV` zm2VYLpiTP#}p=jxcxL|C(dYZ|;NzOK+?=9_0>`KV>f{uVU)5U7L`FvtUh-A7Q zju{99<1P6uBTXTv2a)d5=~^^Yf#=^5L-!lvcXRSI8s#~s1a2c+U#}a0Zwo1N%3EZi zXWe3h*QmVy6b|?0b|bv4*XV6Du+>LNS2TO0?2*{Ei;Ig5V?ci7lTAw{9L;?Cj2O8W zc7Nr%%X$U9JOecj*;05cHpSPFpbm$g2diemgEszg2g+Nv@1eciEdad&=o_P_-E^pF znp)(QxUYyB{cyF#`(qo7cO+jhnj1F#^-Svc4qoBpbABfS-C+DV&MS6UZl7XLND$cH zPHD`vZtQM8nlGOYEW&k;AAS~Hqgmn2MKT@R<-WDv#{L?+mht5L8*$|)evvL_-^CL6 zf5~E2bdXLYp@TEN7azWhrSShQ{Vo#mM}GF?9gw+k3~K^@+#ofwONu^+yD&QazoJ9fXx+ZE+WsxnE`}J|pJPCC447D~ zGR?lF3s!8EVR))7STn_C=qYtB-llUCkt41pB#0%=>PcBO=oJZ(0aF7aVR!9-Q5y#hSTo09@rpsT7+bJiOTdiapWI zRoH?hyB3arJ<TNPfk}L>cB!s@H(2P0G~tSr2_}UZ_An|D5M<(FViR)1QBS=g+#2 zO-fu_^$v>ZhXuCL=ol(F*=$zp&+p%lVddMw#c(-)uNolVPuFW;8t+rg4jF2EXRF|& z$*~wt-#?g^XvI8cY5zH9owZ$QwzV`zS#O6!z{%71GXelT-4myNsnwV*-l~|qg!5M5 zt8laV`WZ6X-L%i}`={$-zS<0jcNsS3dhFk~4RNJWb`j1k{eFR(cGIWjf<+X6sbr>e%#zIEgu`P5R9{^-%8(Act9?FWMb^# zV4JHxTxl_&Q&~4t>$3h&`wfnQ_wQqywFlhhvpZcQWBU_3I~aHU37z#n0h;}kP||9>vL*X^ z1zpjH4{NpU!`gqd>Tf3MJN)gxU25MgmG3CrKz+;OA!Li~X6os4#3%my0fptLxxtiR z1bX>ewtnIPBG8;VzMw1l(}%;GhxLVc4ejBeGLq=LdDt!}{{4;m;;l&ar9At)_T!b3 zZ0yxPFx?pbpZ4_2sV=nCWUP}!oVwB9oa{(RWyZTnux`}nz`x&WYlH?I>n^m%|Mg$7 zH`W(dv0s0C%c0m%G6pFy^dAcd`cMA;>Y7as{_`d9Dod}jmRC7?m7^8-Ze>fb6!+mINv_5>QWwanHAZ5N|G3)^|~R{IE3vgsemoNa73wZ<~dk!UN@wFR3p zlepg4PsRq##jRWat&wLfq>Yj?%ovoluw_oO^%P8=7F+^LQMNX}Q*x%U-CHhS2l_Vi zquFPmCqT2UMy4r)mnx6AP&kennllC}Ffs;eI4mMkG`v+iSX(+^n5p(MeTcn5!UAFw zFaLZ6px__AR@>52koFM&=*rn^@-fQh{-S>iC#{`1Rb1;@OLG{yRE6No#Tq@Fy;l0} z+@*@vp)1u{f_1HWcE-@P2C_Q(Yc+Z}d#&`{xoZ`zL)WUaFzZ^?w34AKHBwRf>(ssu ztP%)Y*ik@U9?mdl$b+}slR4%6hs)HbKI9HV!upZbgq*(An z{D;@>^n+MYL_VKrswo?%8Y>69-qZ)f7wtJW+Xov5wyCrrPapz8;WvQ|v+oCwe>=4) z7d&y6kT$6^Ge4@O8x0|Z4bIn)6hR1;bkx(yjOsIvn8#xnnLQtGX*PyW)0Ief1M)py zEnvPR;Z}GvdU(L}qPvlIpy(SE+R+9u5q7`+T8o!@dl74oV*CDrln}bB2YtIEkz{T_ zHxl+w{S|BSG+JX8-Nl$s6T9cZsay=D*wj(dzBc7-HgR7II%BppXy}x=x%LMpw*4bB*{YE9 zP_$+GxS}GW!uzR!XI06^Y z;MZDo5xzKhi%FUO@sdUQ_!YLJS7CcCsNug;`d+%-KnYh>K;gSD>aV2sE2ZxF$&|hT zlB7D2W{LRyqlRStH98J%plu(nY`Y^i?sSG=Guv$#c)1Y7K%*~Oyh+lVWbjRj-lQxT z88N@BsM(7Jo{=lqT;bV!`_EZ&5EVGDL%dut(Yk|D$TNQ8;)wF8jGWQBkS?-L{??WGAwc{ z2W202@tq*7WLQqb-=ZSTv}7X>FFdz?!_q9PjE6=x(l%RWkVs-eVt5zzG3!0}ZCw54 z<;k2?;3Ut6PGF_~&iNdX^I3(lk@-0YZ)Az$^>P-w`ah;jGTM~HaBrZ4Km*Ax1jb(= zIH4~^Wn&wss&Lw72Jk&F$xjxQ%R+xwHmVc^8=kB>+@*qE!@sh;d(ttap8!gNY2=hF zezEV_+$F3l^`?x`lbI_TyA#j;Dn9uuAKDq*At~S6B$t{wE-aM>$Tbw0B(o8k>oy5#jg>aU-e(fn>uR{PZ^dAcbGR?jA2xG z|9@f$k!VcJzprXbY-fx#;vs6io(mipscEq>6OMmhPitFG&jCR~@8j9Rpp6XY-!m5@ z{ke^)K}wIdo`Px6L;5i(MLQQ1{6=<54qG8BttCci zIn`|=y{2q;qO;c~BIq61K^Q`h0a%9SXb<$bJk?c50{0L|YTfDGu$=B;##^6;fbznDdNvp)2Hk?{OA9Tu`j>G{_>Y;z{JX9P0(0|lD|z@ z;ThqLJd- z`6UP}gZ{jnyo>$kucE~TpWSai2dANpaHS3S<&Ugl5LLFoT8|*WZsi+T##k?C@SEI8 zzeGU@dzW8c@Qud{eVSZmsb+Ap06jp$zq8oY6`NEL{^p9WOc;dN>dz>9aLVz(u;O!! z)SB0&Sbr|uGa#o6-1+lspZYb)GOUEc%SH|9#&ClySORbQXKfVruZN>QfqOWHcikQle zu1a8;5`S}{R;dV?*}tGhLHLACJJ{FbNGK19)4+nFo}Nfc%kPc3Cikf1p(Wz7e?}uU=)IF zMCAihlV}8M5!g;_%;$FXpTELeV+p^-hLfr1@^=r*(p5m+IF;AbK1;GbI&0qYw?PeqnQ zz@}INA-uU3f?@8=m1Vo6!|aSY1{OFYw(DgTF31?{@Sr$s;72m5FN0II&*92GH!<<> zQVAw0t7Q`27zWp7*mrs~&fDOm#rRiZCQ?JU6NdZ~kG?EcI=^GWK0s+qE(cfl>^1Tba$G^{=neU^}a*gLnV=D>nG; z&p)d(R?9bp*>+#FN?SDo|CPM%t&PUwB-vQ9@PXCGE8lX<5#P5ruX)6tJyKF#i|oO^ zp6F@`ChXPa0FVM`qE2^*$@m0%ay>n=Dh7J()jr0-`bUExxjK%(8P7S*Bjb}9DLO{oBy1LHt^bYxa7`Ny@ zA+mV=#dzBvkJfSoQCLERN2o>^H~`o+A$hl)`=2o3JqIwV%Dz#TQ~i}+?m`J@A1yBS z)7f-|&cuu5)A&99dVe=vZ+==n{Dh&9KY<{($6WJ5;}0of5gC%lQjx2>>!YP#{6dR5 z5E<*WhqC;I{*+SG>(5vL4DAtBz%U-M`T_bgRs%zSM0d3HXH*5le8#ijYma3e4E-tJ zP2-{QfYRaXk60}X{gEh!p*`i*F!X0s4kP$XG0pI&R1iadwlqOQB{8%|m``7SpcKV0 zUn~QAtd_+vUId%UYw_B1s*IsM5~VTphgcg!f5M7mXpdxd4E?Dnk6}EO^)dA4yg-Kb zP~`B}9`X_y`ZHc5!+0o)Way8nN{0T7m&wo{YIQQSS5zp&c*H7Y1fK;O`n58Q=K-={ z^$N5nR4&7KB2Pd>`5A}qpN2C#}|x8`ysfH>Pt|6Q^gGVTk;~4by!%0 z&mOd2p7M+8V<X)K2hJ2t+_WfARts?6=}zuwcWL4M!B~(TSQALAjD& zh_~82f}LGi$N2KkDsl1OvZe*O>eR{>3RKCPDYO!DW{MmFZ!iY}S(<+O$(=r-4)6}6 zb^OV_ej9Xkvd-kSywG^Ie|qr@i}l*ikHDIowLWDf%)ZY?ejT!?A6A!x1#ifb9Ja-1 z-G)r(e^8;008UQ&YfQ*Ntu81J^({Pm^P1+WYHZl{V!Og?m+*QC>M*8G#ueh5*FhX* zAGp&oTEIYletvDS0NKd+%0}E@espD#6Qx8>xdw3PDoeJ{U2miy$Tk*ZzdF{HI`Ws3 z#YJ9FO(asCd0?ulk=fvbysSeKVu*mwHOs47g(PGqA@MvX7J7985)|@& zMoADY^!<$XVijf$5nAvW9dKJg0U`C<+jE9g;?B=$t;V09*Si*nZmFB0Sj7WxuWWS} zURECCS0Q$p^)7-)cBx?_GVeeo3v0+opp~Npy#5xpKyz_oVYwxyGTn?K7AC~=U}+AU z`HvsF!u+S(|JW^Pqeh8!k-QfdHdl3nzr21&uy3^FXsgzb!a!}0m-jFd6=ZD1Jx=rD zU=bJM#(xzrWXy9Uf3`#E$__n=4lk$(63Lpiav{u+#}jo)>#1$d=M8^#-ZcHVt?=q2 zCoZsRWkJwxW<1hlI;|o}2E*l|-`1)s()M<$D#{ta5>12KY~PV9 z`%ZoNW6G_3Z+(>@9_b$XK*5s$1L{(&ooS4e#UJ8?qO;h|1Y?kaa5E6WZ#_EgcpD3oG)7RfI1vU#%T zN=#R|S}l>ExfijLp9)X*!=lW_%MIoJC^zn_JpB|Vatz5YWSzOKbc?wT_VB`5K;@sb zy6GbJ$~xYw$c5AFBjWBU8sREND|&gw7abKTtbkwELO`TmfQGMLKKd&%N$k*&2%pHP zhnK=a&i(I+e|#4iA^yF1_Ba^PmmKaT6X(u{@FGD5(uVSt@8uiv#?&iIudmFdQI2|6 z;)_-pHXqAE)u8W4R(o}V7yDxG4=O~Y)E}}beE<2YX!sjj{(t^TZIyUKOSs{gv%5NT z8DIWg%HY3eDTD8+T|l-FOVcoA+}f`#LhsypT%9{(L2O}V4J>sF0&)<44ukT)g7Xe` ze-#{3dRT39mWXi9Ow}opCma373Os*TwS_;nyaJ_8{ z>}ye}hFy+&D-2>MYd{#Tk|hAkTaMqnmQ8Hlj6k5tcvORecnJ@aDC z5p6&kgtPStb0@rt6>3%Do4`j#aNw+$#JxCfQDz99nC(yOdc9!U!^v{Vovc$G;juC` z_sjYyiRHX5Vg-OJci(~rxW>{%_@1h5%8V7PM$Z%b=E(z&jRP-6BPwRJUHx^~UvD%< zjCtwsC)O~49@unYQ6itl5CjQ0#Qa4eN0=bz#bAlI6zRKq8tq^Sm`*PCe;Y60x0h)_ z{$V9KOxL^8?n*Cv@g2oB&_1s?qcu6mc z9YdYql{R0bl>dm4o47)yuUhrHD|9-3R*G!B#}uhw(Chc%^4;iAPWC$GW51o*mL8YK zyIgtRZ$EqR_q3bLY=*_>Rkxjf>^0KA3_&n1Evh@WQ-16@<=r4vo8C`LQ~2gMNI8dY z(m9qMSA){Lx*K$|>wdei?Iv4W_qHZ8ayk`#8Kmdbzt>F9+|^wZ~1i)~bG}P4`Ls zraGfkmH@E#+W!;4Fn~mph@cY|c z-i3CU0g$BR$Du9@vP9hk9)ALZ0_!+mxtdS`ab^=zPoAX zo;P*)e$Xn>xXn!&*1QEcJ=ODttV8R`GT0=$%G_3+y8`s<%+_@rYx=xH7{Qo#(7u0H z%;5TacLkVFr^jGhZ`H(H9m`zdS;1j*O+LfE6>kWT?y+$T?m(L(P+5BK^e?2&+(Y|}Y_5hn!oYvELo=BVqI=ssRY+5a4 zJ%wLj%?$5pJ^6L7#o&+Yp9I@`xdGrf+vB#Iqj|If^Qax+9nst)ja?3o-C8GLJ!ypZ z0O%g!(bee;*Kjig`gYlP8yc^%vGnEaVIBUyI5om6*gNdk1sXT^zILqU?`|EO;}h@& zT<-$#;ck zjdMQ6@r3gqc-9hYLApBv9{YVE9#i`w%(LARb3k73NNb1rahzlQOJ0WbwN~5Tar&S= zZf<~wRp9h^uEM*j=tG6AF(!w16?q=PJzf**r1k}k9%xK|EjN{TNx&J_l*o%QyNE9g z_SG4u5u;zC5&zptLhyftnc#oW{*myMV2f+%HnCsUp2HpckLz$z+QZuU*}?GQV;j#h z;NkpS;eBYZ)yCv=Y%*R?_$=3{QN&*Auua6*HNhFARDWHff4z|)nv5521~XcdTqkdjXP4yN zD!gg`Q|kUV{r#tN8F4eQ{C)JM(>$)F!}?7D@4czR_xU*OZv}ZDA0wgSR+D&$P0rBv z&4z=FZ>Ts}0a`nagBnf|>_ASaIe9^o5&Igz-*~-g#ouP=In3Z$wc{_rlkGLgG&cNI z;YIu+1b^Ek>jdz(@=wHHJWG3xApQ>XQr@uPSs4BvL-4mF@hma6chD$Bth4GSp z2I=ek=F89~e)+I+XFv4Z@MUc)tQ-|qAdCGWJaI#^I_$5#PaFPY`y}8$-+OxJ%Ot2{ z&@+wBbr}F<7m&MzT%*lvLh>%nANQf3mwUuup`9_u4eALuqnVWL*&ObZF36MBawJcP zE3%}qCn}HV&uR<@n>nk@B6aN+*R@aWk&uxzS)Fvz8)M&8I$-k?<49e`BB$XTIGmyH z>Q~e!?^~-poO?OYJ-(9u?g-hL>HGER{!oW?RAycFyAtoN@AEy>Rf^nZP~^JjGq)KW zVE>5!G99+dXa#67f$(r)o(;Ztj7Hg6RBZ_z3iq{<6LTjSUfI8yhF7Em-7?uVsq%s9 zz0~<(pBgwXCkyM$f8%>`3$X8Kge$&r3Pxw$`XfHyg}?00-@oRta5 z-*Epq{&5;59M)xh;u##TIX-e+r*FCL;Pbp;zGUdbTE7~u(fL^t@}Fk&QTAxA;WWUZ zNpL7LIFOA%^k4PQIp8tI976PZlt=iyxbCjaUz6!Hn&iAa!1vLP710NWx5D==aH+P= zhl|ABPCZx8?f3P3;aHn-yvZ?`Or+iHk?T*78XU`aH)VLAKlpYvZi6EFDHGo$I>Wtp z2*&YxLxTyMb2E4P8REU8@x%DKng?8N)^ifRaaHE>$L=ow**dm$aU;vYw1;Qz$Umf#yp#swACDUAdo%J&m0KJ=}w^ zwUC^XoaDmcQ4w-uSRaB$p6fa5dUyJIJ+cw0^y9RS?7h>=Gr2{5&-!*QIj@@V_2Hbd zaPHE%)==hVu?^NzbzeS<3)^z9cUN?8gj`>5PjZTl*XIKWf6xb+Ji%dnAKzemqC;=C z9<-`VzHs2X!A#n(alIAA{@d<>j4be$Y=c#_72a?-08h)Kp0mO4E6@+D(W%5w@TI9P zV=*2}XMaP;J-STIWjV5SYP>?{x0)=?Wp8T7X;-s@>9V9|BP84~?N6%gr=Lk>iI+@Q z(`2{c+=w3^0`@JEhi_Lkrbkr#??4A~^DXlCwKKUe zzU8!^0e3xw{fc;b^%r>mjO~VWW*5*#k9$-Tb2RbVan>qrjAqWQY8!Rz_5f8UH1Nsa zEA)rhYy?8jlV^*~My>jn3?HLHCu@UFL>~(QV+9wQWZy63qSg|IcR|~kM(?bTD8Gbm z7qQR;`4dfjGcdOn;rg~_@F|-tZs?xmBe+F9ypZzcF5lia$XBd>f-wI>)wBWKWbsVi za~npyX2+cqc6DWr)XzSoAAOGrAAT|M;Va@=gJ`+Ve1?jhifCpk@XxnDoMH11*txjP z)Uw+mh#^t&)0s|~Nh?4mpU+>4XHu2aZK+xscn6SAsmUybwg zQ`#Uceb{K#ID>V4&xc_@Z`ukq91q~(K(ntnjK5cKuZnKI*31@6{%-2{QFcVd=au$- zUN6&sZF;KCGc|h`=XDy7u-er*{CK~bT`kn#XzUC5EDf1X-50X)ta8FX$$6W)7Pbey zNcoD<^TNh+`aaLm>?XQ>&{64uedo?9h8@Mm2W@hzX2;Ub6~&L6@afei(`ft3eM_O| zhiZ#H__pZqJ=EfJbbC+G*1_!tz71Wojc}RMHn$*t+0G?n{NOpP`&!NOD`3~>eC(J1 zKD4Cao6cL~0UvA7cb{C{{65+U#37Izama+|HkR|l=s(OKt=OnJTta*wiasoDVeRw{ zw}pZJY3iJ$KMC6_gC*^AHq^GBtQqGjTbE&@Q{?%hi1!NE5E{__2yN;npJ%#EQ|f=* zKjQoS20`0Bjmv$!x-F6GwgDeO`6d7>wCxu&(8d!sZ_wX1uz&6?v)#wX!ZuIwEUceN zj@xv|*3$L}ui7guF3QO%e%+2sa!n_jH|S3BQJv%e&|<8D_G^ND(v+=qA1=i*kzCQc zvB#azIy8T}U0;xTT6iy|e@ctX9xoe<;<`pHvQ4@E`KQsOO-Co+SE#?GKy=zey|z$mJBGi-_lpUAM&lER z^TK|>VxVaM^f(L4+JwwMRcT_Cx6;JTMAF0{UY2yqWpUzVkA__($RBr#kCgL?P+u}z z>u9FS@TN~k$b+h#d>AiDTeQX-cpKGD;>(c{_94=#)j4uI0@GQ1e%I0Uk70-oZP8zZ z50CQ)!Z~R-#`6y8QjJ;T@)ez9X>HtQfY0U==mQ_ZZ|IZlp%a(ByaS`3SxL?r;Zxd<#;jLr9hZc+6+h5}u_%FA;8ZfLATzy%SVyu~N!_S7Y66-DS@KhhFj?&?=!y$8& zvQQFfv=^_#`9w6@^7+5CLozvSX6o3k!vCwj?5X0Bh@)4}Cf!D);fLl!2*jLLlfE1! z=l>ODIgl~SrYxtxv8BYZqu)uRH_n%}Smg$n@f5!DO^u&JdxI^mC@AY$CB)M~MqxcEC5= z)cA%WPjWj$gKSG$f81_iJFB^0-(zvaKcGL7yIFtBv-|V!bm=i%(d(r~Z*55&iixX7Btxj+#3=uMA)O$+>eM6OPqCyT1s2@qPV~3}E<~ zPSV2njm6GZ9;bW$Sl_kBRyb8bE@HZV8t=Q_Ltpp#l_`^L*u6xquMcM>RVP;C5eqHt zTvOw5oSJsNEAnjJ8H+PN(4QlH0fGM7;_M9e*Ny5=iJ8~>n`*Xkt-r|iD*A)gUrW0W zsP!lPpn?8;dq<$Ze$@OF-Fzm~*)=^jg#W?&YQ3V0Q^B}IkJ(+gJR*FrLES>X zn`YOUWGo`uGF)!Um*)`vKQg0X|imEHHGf3M+$ zJmWeV`A}hkSpYqR%x1O_GgE$TB`XCJY~uxI-H5BjWL+RZ~y4*yRiN$Rpsp zD%s2uc}+i+zQ+9}!t9>kx52n!7T-tvPWo;$n~~h=%-T0#cx{4be{P&@|5dC zeb46Eo=AHnm$_h%owFX#WLC;K^NfZkow$&2+I>@)n9PV3kbU$y^m^Z~)lCL3W@J>H2T=8FW8#L#? zW?Z-)*Cyge9Y3~^#~Mj~uf~R%aiMZ8^$45060iJ=8P~{T`2uItUEI(G$dANhHVvDi z#h%09#o|dcKQ^}S7%`i__`HYg)P77P@h6#si18-x<^*q=aU0R2;7x*lhDa+NKDYLB zp7`WY%S|$Bm8>>q?fg{6$CznMVT=mV8jZMFk(#)HFL`|M}GiA^A zk$ZOQ6%mH@>F?gNc*DpQ6WTr;zb>QkYlCxr`u%gQ>>4*V{PN@6j9f_Cp8N4G+?T1G z?G&>#xiNG~ZExHbxla8yh(!bbZf_J5t|k$~Y$$XPO%bE^6a=v{S-ZA-&pWxY#_{UB7fVYn{t#)QN^ zseG2l)=K#@;+{YtUym)emgI-BkRLElsqg1*bzwhxxF3{nB)KXAf4kvlM3&iw#GPw# zzvEHf^YQ2F=g6_m)0W>z$S5|vi9?&R)Fp~u3HPdTL-|huk5i32<}@6$Js#!9>ngKr z)X5fd#Ji1~JmY)x&AJ|8yJ36os5(W3=UQPgwl|owlIiz)%#TOBI4|0=MCod^~i5q9kqI^;i4LErRoQ_U5)$g(}_X5>D8c<-3=GD@z-f~GCaU{2l*}hZEdsf!aPdF-eHi8kISj- z#4U~&_X!1Vx#hUqsf-7y%D9IxYg{kjZ)=-ws+=C))_1bMWc4uWWa9&4>=BHM^Xhl1 ztKMQZR@RsRSggxO*sHm>85T1KH<$fbDzf~_yJ6CcW8UUF+@D2x)oZ6`gIllB#s4M~ zxA5B=&I|EDs$SR!?Y^d#Ug|LP`9tX+v5#Vv?wF|TQ+*?yWS%7t7 z1>em_jS1{?T6xdL23R_m9F`v9ekosA4+{14u;?7?ZNSk+7TR5o5oennkI{z%_~?QT zBc8Y0nZ$4g^wv%gZsOQC`F$lPakkY5x@&Z*x5K$Jae)RN95!!nbW3aR(O5_WtHIo5 z<0y2QE!_al#PbWEeoEtSuqUPtuyPvv*B$SXvaCYx3h6?o;j3?0E1jM4*2N-9UR?Gmf>=*je9&B6OCPto#MnR z-BvyKw(boVm9d-j@Vg|yVAU%Y;z*;2|88+I0ro>9)S? zHL?f`59lB8hsK6^Z1L|t%+Eb!chC=v=9?W9pIdzHw8spF z*T@H_gJfn6II#7fBfWV^pmi7z@I3kK?_sew8Nm7o#|XwfHgDF>0~)FUZSH}7;-kiR z!K3Til1fwDP8(^99=h*W1Wy#_8!5{lFFkZji z9e=%LxV!63CrMhzY+P!_5iexFKzHMj7+?7x!1pjn4aWe}R4MNqU~Px5Id?li+HPdk z?`<+e-i+fU|74sHeZ?%(Vm0=+qO#`K6e*m`6K&zS(21QA@Jtmbi5eM zGk}+QIVbBLdD=YU$dm3C0!B0sC95T%jo-LUF$jYGeh{>_oNOql%!g9G z&gk$2?XWqV-XAs}W$!txo6B(>$8H4p6RrUPTS5#wuTqbHr7Y6?$4lI*gNvfS&!SvjW+_Ai*uj@e>XWV zL0LXz->`p;7sFnEEEP6Sz0S-(%M$SqzTTG2oaER3+#+~EVlpgP`Si*01GHE4=B3<( z$&Q0$SK!5}l*?yOUJ!Wro$?RB=z8(BsjvCLvC$u{>HPDw3;dzm@vQsH-?asQ6#Lpv zu)Q2~f_pgu{G5zT{w-m+aZk#r+L+<;4{vAX) z=-~K;jVs5-Z(BNTgwh1IZ2&z2u8mT0Q|H+Zl9wCeeKnA8oNXV^q2%RC+0Vpaz5zJ8 zTW$V+TZy}%yFUTnOAThUXZH5#;ClRbRgKpGu8a=ZK|kr>`h@K5!ryXER=$P%fqk|! z+o2-&!~9lomTCP9TrA!0rR<7-H`Tv8&e|<{`vK^{q+4Wm%)TMvb%2w7qhoG)^o?VAJAF@{EMIA>Uu3_IOnY?7x19Eg#D8G zgpId#lW5NhjJ-8%P9H3?=3}>0^(?UMp*@)W?eMjE=a1{)8spxvo+^9YPR%l|esIH^DffW%_=BUMaju=Z;NMUzs>gvXt;a;`BrKZi>p4NRRfRs5gJjK@O?CQ-&~+_m(1QBEJ7nM+px=VT`N=?$$p=L*4m@u% z$Z?x-el>ydo844-HN35j-Q;A|O^(NCuSGlGpi_Z0enQ!X+s>|+y>@SoG7`ui9`Zuq zB_88nXqUmU$yO(9ZD=RQIjjbYI_hGRZnCwyn`S%ECI#nVoVVX%AMU(`W6$7sd~nE4 z;lIp>P(r)-tqXjT(U!;TzbVF#K^GJ2tJC=K4DB2P;5j(QQn9)Q{6F3a_`rXAoeA0A z`8$9^Q|Nq60i!~F*A#vDc2>Uk=}NzY>nW^B_l^F(#%-!$cx0n@W^>KwfsebT9_X5b zgKx)G`aoa6zV^5rSDM!co$tjpdD65e3p;PatA69~lWTH{nS0s~=Z5d2%Fk(D(tgEk z%30+slyj12sj%@#JYD`m_StM3V8#3x+y*Rh74Ury@4UghigwyZCcgoG3~@e5XNLPc zOnNhhYsu#|!$~~r4~&oha+k2}GuOj_K6;C4c`yTgviOW^$20Ay(44S~vo*s!8+_l7 z9AA$>qoB8T$7lx-G&%J5k&VxF(!`*JKAi-YXE~qmRDkB`JDUtVC^Gvbor^cuh91)c z{qlNAZF)%0yWTV_`VG-hSzk|d4(+$5&LMe;mFK{>A-d;x!RY|}V2XAQlw~4e2D0Ea z=aJ4aRMru?)a~zpV-fV?27@D~huRip&f!7s*DA!8!`ArqDD*hz$aHKc{(E7ZG5k-0 zr#3)_1zb;f4$ADUD)8j$6Unck`0Fs5VSE&AV(9P6CK>I`y+o`MTGe7tqJ) z^`hsEy1?O%!Do2*cJy@#{tR)J*-?=Pl3vQzvJC35S?W9Z>|l9zwA;U=oW3FXg8Rx- zS;iXykF!k26nmLt>v>N)=FAFTo19_ctI`i&W4>PU;QfIjcfo{!emXK#zOl!_&TKRJUzRgBkpy;799yA6{qxd*8tA2HjpE0N?&qp z@?BHx1MsVf#97pddd18Z%MOiD;@5^?65s;ti zpf{k5*JJPM7~i6equcaCd3tu3^0wUs#=_JSK&MDFC zv+}FksUpryKsG#<3j3+H4hLu?v7g$`K(TI&V;STVUS%5Lvn&=s|MB9|7H*Dl2+<#N zpMLr3>*+FXL!4i7-XwnwOLO)c`rJ=p%;Tt?epJqN!1wxUh%#~UISpr43h?EzkN;)z z8uZaltFQq*uD9z0Zi7yk?03p>w_RBK{jr#j70P$0_aW?h6bt70u{O@I1hfX{Qi97J zFpj(Ix2sD9rnnwBlPW?lU^w5M7asdSbHMA+kBq*u#UROaK&dZ+%(ViV0-n|ygNy{{ zc727s2i7)q0hbwHauoO#3v;)K@=jrk^HskYCJ<)TG|;+t=UL=b2~Q5=R(I;sHO^SG%pu&O1WsdVH2n+B(e(*;;_7m4|VGd#B?A+_`rE*iVo) z`8Us%5FSQxJZxXR;mkX}$i}!Z=U!txH^OJ>uSbnVxgCG-;{pPFEp)8W3BJtu6Rf4t zsnWS~__44Hww-KMzJHEwjm4zhltO)CO!mnoQo#Gsw!D}2e03hhiKqJ?G@AwRK8%Sh zNWE0VD-vxdcD*9#N!&KtO!iv+keCD^^9S*Q!%m;a34bnw0rcl2d!b{Wv0wU_r{G9( z->r{(+I)O@&i`BYQE9T1BA0HI*uf3J2z?-vK`y~<-NTRebu(G?8_wxvbmz;kXRTe? z6Lz*RyHXkC-(F%c=k}yPY+nX>=i$70VZ1M#p@8SgSc?cgKrxK=xFp4IWA!%>Ok0_G zlZ~myPMz>w-by_CW{z)_i!J&l@aI);;RU{b!TbYjKjj-&brywJ8rRD~yYR%~W>d}qc+-54Dxoei8FaF1v~Bl6Z!8tj z_MTt(Hbb;sqh8o!x{R>LAkNju9uBfx0c9tYt;nYhIt}nqwl``FE%5ejFNJgSj-?xr zdmA$~o^@i_FZOC&B%|GY{tQ1_-p>0|W%O%i&xxnw`#uTZ=TLpAEo9FomwQ{q=gFw; z0`52%6a3LU^FZ!AAg^zwoK20MExXA~0`ELToUv<)<8(IChONw>#X{#MtWBTW7fVIp z?>JAGhkLUge?4r%?1p|!dZ(Hg+_IRd2))hWXZ2)dm)WF!SM>KgZM#y(+IP{P0dmlw zfOc7udA|a#q8&17f61Jm2;h}x++UZ%Z6DcSA`hSz_u=Bb%vfCB3F=(1k;FL8GTvuFyEfYU z*tsrZ2C)x3*ZCMLcGh#7F5oEogy-Eh`ZA;ZlN^U49`*1X^GEOP@eiO&CqYhX zsdJh@KbId)+&eod$APT0Mc+Hx)Pa{~;4H*`zuOO9hx5Im>>V55j~_u>bhW4AEQUCzuuUEy8ayt?2={Nz%W*jldI|bZMN9$Sw=4SNl^U)d=VIrd3$#yz{NT?^gFTCN zIiJTEcwjphI4yoCAuiyVmUB=@`f^6j-V?i)FZ`=hXjq)*XY6X?&j+=)};a(rJ#LH4isG!p4LyH8c; z_izHWyX+imk^jHJ;!IgQAjnEQuEy8(?Dp04ZUFiqoQG&PNYecevL`zj z7sl@?^F7=Rl6&R;n=e0L96r<8=gza+_F#`|+^6iwb6@pSV+^P2%WWqTwszYQ#yw(e ztrG$VZkuQJdFg}QTm9#9zh=HK73UBV`^w|gBI5*ZIn9ZC(=Ul{L0wba!9tyr;>AGM zZFamO=w3(H#}R>FA8qR*eUk2Yi+Ea~E%qDM5xD;yaqiFAxH*75@8>-K2>+gZ37&F4 zlHXg-PS7`tccDNYm$)s?Su0+WuT=UYn{#&GMB??=qUev|nb~)QPe^_TXQ|%jS!>M~ z9=l0r@7`9B-o(Bz`lCBcz7JKvo8O^5$o=Pc1nC{Sdz&5t4I8v?#o?ahAN3uzuPx=X zo27-ngv%E_->-@>gaJIU%N8uAQ~1jD7(Fp2k4r%tp%NEy43{k|x^~g0QS`Z&lge+3 zTWXqfC?71oc(os(^&aLiNIFqxx=HIA|5jxc7ROQu`o za6R^Rzh`dM0y}3GRc80Xb05!6)P4Lu92UzW?XE@7Q{xgb9$(ReZSxU)5o4i_XT$2e z7?oXjzC_s%^J*MmA0K-T!!v191Xg1 z7d$2g@U0m`h<&Z@=Br)5eYq?j_6yKc-R?~!ZL9eTc5V{R8E)%rqMg}@brJF*=gG`& z+`gS$qAtPY54wxUbY8mWQ}rDUvzb)oL&%WH=O?e;54c^C6a$GRS841Z7Fe!4|`uAk$PWAi(6Cg^)DD} z8rz-OFx}T-cOqR+wIeBOVfU8By_zupHH_P0_i*CkPNm(as@(OO4HBpOw%nOson+HlOC)=@I(cF{JaL5oWtySE7gwMPUv?b4V~zENW2Kw<@M&?C6kTC-`q~fbJ}3+ zQ37NBl>9g%Zd~#lksqg9yv93OOzyQ02}`Lr-r%-aGzBxnq8%jYrS z_lqOXGr3QV3F)6VDsQ}ovytoVi;B;ay^Z^|sqIlHPiP--Uy05HZUN8bx-Oj=VvU{i z?guo1zW~gtTD;UbF~pI%X(IK`)e-u5#GGkpD}=KIWeVjkfZCS(6Y=W8Zdg5fq* z-DjlB?)jI*qeb2O*J-k`sDiFhJ(AB(tWC?!6@4$mhl{GWpnSpNI{13E97zGbK>mjb zqpf0Mg7Mvh+bZ6(#yg_u`@|e>d+y^1r74LYDu2$Gv#lx1i*~3SYf*gphT(Ftuw`}* z=9fXe`P10Nd#)I>*LK!5c5n4N=5f2)4dNgdJ(BIs#F>tEU!3kw3*5Y)UN78a<}fJM z7Igp4l55A`hX?3`tpoI9jJ20^8?^^vcz|*@^4L={rP`j|p~L;0S3O}PVRH-KRb=^5 zN*%)6PEz?UEWZuvdR}IQyu8~^KPq{Jq$6ZEH_${A+Tjyi{PWcg6~c_G|} zCfrbWhBKkXacLOL=VgZl`!1TF_z`@DjNa_lZ%9Pf`{9LoUhfhjl>lFso=9zyhpcPpoU?kMtQJ1vm$ zn9PbYBjsd}b3~a*#$fh4E41|qp3Qt+@{D8mdM9!BHha8>zkBV=Ey!I@eay2_^d=xv zA9{yOs^8wM?&8lYfZM|$*?VZr3(2mNdFpjM^j*(}R-Y@o0}c8}70z(9O}e|`T#GgK zWr21X&(I0z^_o0u*HPI$)q|^@1NMFPb*nSlvKYtp8RM7JbjRjYyXwS@Qx9v0c?vY2 zu>J1YV;^L*bJ~%-a>kk|_U4>90*%yx&K&QI@g?s$r!9}oIAad=-5LFPm^bpQb|6EZ z(@yy5&S*PFd$%5^Z-+a`qUf(WW6ix4+OP*kENn>I^&nX|2j+8AZw#>of&BgHjCS7q zj4_qCjk91Wa?_qOzC1H9_tZJ<&*2@aUFD4V0_;KVJ>5>^V>n};$nQ_j6Yv;x;?wQ$ zu3tY{Se%2OzP;hBwty$7Q#!LV)-S$0y?&`PoG}NA6F#F)an7F6CzD01@!sP4oPHCi zE1a?ZBb=}CZgPB1pJ~8pwB>B+3_m?*vQM1V4)b}PF$c0Goz*9t-{@yTdFTu{pdI2I zx`K9R@V?vLuHQaq|9c=0pd9pk&e#|OLiwz7E|250`s0Lspf+OqaM~{O1p5b`MRN|5 zbJ!eH*16$5T~FYA*!L`!HKGrSiDr9yQYH$K3z)1IF$T)R826Llyu^MU7M*!SA0SWc zBj(^hAKl3JLJkXgf609N5pbaM`guKyS_9c{!`8s!JR;sN2F1*@8@Wy|3P##_8FubP zea~s!e#R6Fo9?_miTHktIt%E5lR*R=(N`AH2eVU$eLM7JTKoHXVHLU0`gsz@!_pD+ z1O-k>2l*=6BcPGO+%h@#roH=kiby(ameCMEDW!uBt4SB$W z1;BAJ3y;xbF$Q%O?*lab2sF*^Hc*WaX6wf@WvM*dy0;UI&!TwzB%IBdud!2Ik4)RV z@QLA_r5V}A?&zKiv@bvQ8iipg+TJ2!{^!F4n`bd_7Lsj6+@TRUk~99jdgZ%YR-0qn zpJ!Hs>Exl4#5?bpTcWjwGgFyYIzGCsErNNJB|h+R)LhW#-qWXhNbG(Ai$P$%6K#E} z4XTt^VzLVRX@l&uYj%GmnStj(dyQ?cI2jUbA+r-i*`TW@QhYC3)ZM9=eaMRCV5s_nMXTeY5ISo7q$JE7sHO z7xRZ|vm4~G+|O4kPA0=7^HK6|K5e@!r)1r0056AgY5{r^%)gc7^brDr5_oTQ8MH4;nr83s=JgfYJVCxfU&y7}-aiACdMOy!S!8z&cPy6~ zkCWsvrIuPWlnar^4+uYTYM6YUbQcv~m#Fewd7Omv`GRxowXgtLK&HRXYL4afwAd(R zta)?E>*b`4w)DTq_(rO6aF0GYCH`Leh;%qc=NUBOJ~luvt8S{!=G08~Xl_M{&FY~) zN0~E|DQ?wRJa;z`d6$~je1gqh8-3C45p#eH4^$JVbj%;`nGX_a-f~w-$u-FGq4F3` zR#&K9uVF2LZrioOTgW$-@2Y~10k&)`SlmV*BKUvFee|QHRpk_?{mJtwCr7J&-ZSu-^F3^ zWjv3dk|)Xu?lbvst9y=vevD?z+cuSVR8vfOuf=OJKMUxgE{~DUdfg=EGT`}jZ&CNY z9E-eHM$S_fKPTuJ{V+22JTP~}^N<)??vpmoBZRLKdk}pm=3H1bWc{ZqW6 z1@sPh0q^30T)9RJ7x26y%6V#kC*sg2%DiPvt$dcJv$aNNv?WKOKQ|*so_uc2F>|!V z94dWD-7UCwCH_5Zo|>P+pkq8^DLxDI*4n}g^kF;4@V-e+`Zwz`W+vh;aXjQMvCUtq z{9O-^$7$;PAw)iBIXKuEsPXE^yUX@(93}5hAg)U656F}AD&o6$&i+LEjU(0`5sM^s zKP48a)V@CD7xOgSFPvB7tQ?p6`pj*E&e1sUzPExqbY3L*{PoygB~IK+vU~ihPrbPe z_Hzh@3(KE|F-fQ|z@FX+fAWdksNycF%J(V8_2JbDmLi=G8=O zn2~2)#8S)HF%j#m)$0kRkL!i(qa|Vz!|vDw$I|naDSat;7?KMrFkk1iot5YB5_OFn z|NJ>YGq!ns$9N}lKdG@OlgVK2B78!}Mf!K5VrhwAgwH|5$|a&|JxG~N@JXImN;&^; z_4okgzBRk!2KX8WJ&whbk>6;KHG1P1&&h1{6z?u@LysZ$!u4s+kHj4;j)O+dV>mx+ z%J_!=AY8t&+^e(EvmZNG#aK0%|HN`nPP_MFyOS2Rerx?O&jSJcv!mPv7k6X71!yH5X#?Z7 z;KTh5tBa5t9ukke;`*`DY^CUKBj#q-;%MWnJ{H}fVg4eQ`8zQ#&zW^{@Z=sCn|9jXd_wh+}jT3$-)?fUc2_5)gw=mE}`dDHSRSPGISrL zsoO1-d>Ntj30R##6)#vFN34@3=kcO?oppc>)saCzb=6~akOFsS6dO-Y=A9mv77DBY z{^9ZLVX{BzLyod<;$Al55340;uV*QIpR87?y6-QlJp7T#T-i94FW`xn^+ zlh-lEu)ygeU&b6U%#Q?T?oov+<9osS8|;n)tZVOfYFlOj#n4=0&lB$KVRK9;3b@%lzJ-n7Wngfgj<=z zlxnjcUxv#9UzvV{XUXrLE5a82v2czi+1ZSD^{}R)$kTWHA@EjU;0-EHoN9|}H20#~ zrv;D=FsB*iQDL=3nf%;h^KbcgB~cz%ajDj+HUSTTuPQd@!uq-6*Je}kU(~Ap+KOlH zWzF~`)*0gTnX~2CjEsS#Iz@_p)#y~!Gsfamrux3*-wHjOeiTfZtf%IXMn8TZV{npG z!@;CYaW___>pRXvxoj!mcxnxiu#A?!&phv0eyqGAAK|^Ls`8!E_U2QdmhJDxwHrF~ z_#N#q+fN?jHfzZY>b#gUAlsd160UMTyw>jF+P^728jBpG)Gxxh0l(;jE{O5ph8!a6 z;jp|IcyAZ>XLyXRXYA*9x}J>``S77ZdtbiY;C=(YtMK@mG3cYi)q`Q<4a6W6g^y-- ziF1R!Nns8tsxwrR^~mVXb9Iknj9ATvD#4h=7-zNu2NjlfBLtJWNlS?(IytXks)_HhI9d|KAl16-_7p9ku*dRv?B z$JM->Q{j#EBCEOUWd-I_OJtp|jq6P*Ux2xJlw(6#w_krR*e8sWpl3aL7H7{c>+!O( zH`j;CP3^Lj8y{W-pFG;@To3)~I2Pq9yMC_D@NdBBn*xl9x-{B&h_|R~tlnIwabK#r zm#i_H1N|@61Ntc4Ot61O8f_;dhEYEqM`pa~5aJY$`)PHzUcgx8BZ${b9A3=zclyOv)umv4D6- z0`np8Nc7^M)$5j@7un>;2uM!)QREzW}`=>@`}2Jp#Je zRwRvkc9=0-hrVa5?<3J%9i9bnn)s$qvx!QxH2#{ql)Ncq{x6{IGuCDD7bgT?@oY>w z9{Q89U$*x*`6SWUC4(i)-;pXyoAzm#UdQio?CIHKU;1NL_P=NB0M7{-`(Mo)s?Get z#v8MP3PMFLv&2k%)%;$l6?i%lP^PDbt2NYv#gv@}kkZ~99{uM=?QlS4% zX)I-l2Ij*mC!r7T4t*Y}GR7S5L8hDW{N3yhPnXeqY0Tx64cao8eg6!Y+}~tv`685l z%QajV!bQEq5C)fe5&1=VLvj?}%Wx=14Z$R9z@)-pl2>4I>jIwbna;pvc$h&!29*imT7G&GV`?7f6tHHZjkJU*~Yt4qPk?u1qbQXw5PShvE=utyfn3gPlX)%Ttp99OiF^uSg z=avs&b9lV3s52PVcRxWJ3FLMQ*rJbaCkwoE zLidkP#7sAe8CFL~)CFg@GoDL#$bEjib_L28aE9j5PG4>~nQT4o+&dAm@eQPhRsrig z#9xpiv6*4i%K30i(_>h}ya`*~8OChum*>%E6s%Plm$nobuy?z9mgI*!t`Fx#!cU#3c1k`7DcZcgGJBMyjzS@%xl$@-($+75@a_RW~-s4xt z=IbjYdP&AFn9d!HwGGq{|2CLYY@9pKtO7iS@OX#!ss_c(;%m-Tzgt-GHpGTh^Wlbh zg95RCvOfE*y9@F2?@D=R%WJOrIM>KNF}Vrg27NEc-_Osfj<^d;?K`7x8a)g9hl>!w&;5Rh{-JOAFN zh4-*nor%0Vs?#y%b3%U+v!BTOrahJ`?-SK-Dk2RR*xgc~5v-L)^$bZ4Jy5<%I3G|Z zC=gD=-gwCC*xl96HRf_-z8~XkM_HSm&0+65crVbSwXz)Zdx@JUPqJL6Q=d0sTs`a& z)~vvD{A;(xzXFOT;vu3Id>u9Eu+_X}jjI~==_G2_*DeO43CIo=&B z@v4mm3LMAd;qkia9V&tMr_V)_Ujy}GsPE~htM0qe5Hm|gx0lx-EaPElv zGOvS>4J>iWwtmeRs~WApdP-K&*J6c@5<9J&b9#JZAg9=-+ukU#vdgi6=~?l%YRr`_ z4mk82NlZYl55@vJ0@mhzpmSs_nQtN>SCza(=KuNkzyHqvR{i0uKOVgYruKfia7WJ< z?!{*PW5Ol`cE*G-`fu@ zB_{v-Kjh!&d9{4n#Qt~e;b}RKy}o!q?0dtl*WWCkUVr&h@a=NG@}~X8a0GAv)pP&% zzu*5aNdJ#NnEFrAe)1F9(}lcH#(HDaKe!(E04?LU9LRGBqs3plow^ib_ekzif3=gFb?L(Q0tme>&Qg-1RmJpo1OT^cuc>)~>EXW(bzdx=& z-XAyFTC0$~D{gLTt$ecfh`%eT+VuIU7B6J0vywXY5ig3NF~`lZ@uZ>St0-=k8*cBC zEV)7gldla@CFb;yLM;|mVaCzx#oaXXI7p&#$72Z{=>lQdeW+bs{j0I}-~WE^Kb8MK zjfg5PHqVv{hO!eDzeh&4t}yXkPWe)W!;ET6{x|F69-?{3>j9^AkEDKN_09chN5N$RlW z`OUngPSeq4-By%MK%hy&0s#hxC~985`&RXV8(@P3X(h2{Vu@g*ySnbKuCBI>7wRgl zFb|D?2k3aK9zGLD51J4_|AKt!I$8KGvgVn)T!=}Gu!w%ra&G zkA|vYdGH_M^9W{=o=e~G27VXk@s_{{UG~E7wQL|R49!+P`o`BTaoh!f;26&h$8n|r zVPogYiRx&oZV+ev#5YYCr+RSMNW6On(;NQgicUrZR-l$<(6Knh|F5gTD&cK}@ZgdM zU+2A+|LVHkOLjpUj|g#MjLe^dcIXq&O*F@GZON!WN3yL)&L-kLWolgA>h=x7#C@(BXvhZ9IBYP;{8TG#l~290-P2o&MW4+1h8^;%GyQs2?Mz>uNkivMqDoDj zi>GWZnMrHYF{T=y0u7$*AfZ#fxxZ1pr}2$^jMwH{RP9y#NxX?;qg$Ob0i7+umq45O zja>-@VNOpX-i5Ry@kT7Cb>eD{G2%=8mA2vMa& zV)y9$u#+EtP%cLU!+H*S>=}TOv0<7@mnep%+0MwuzI6Biy<ZU--|vl9_6{vl{Wx5l!uj%&4(2L*dod*EYfY?0mQpR`874WU)O51p9gCINHMH_ z01us`>QX2e+%V&jp(%*ex^f23ow4DP8f}3OakBXLkZ#63SgXGVc>i@R-md{zgYoE0 z*#E*vj6+7YYXEGMkV4*MLTXI4Q#ytjvQhz(sNxb+MLkN zl1ANuRvvNUV@;Pzp6?>qkhAC>@a1|;U7%Ve= zK!?I9H=()as%a`Tf}ptm2ot)Au5>3flmmdN@^!f6 zSW@~TMZwB^IwXhi;%?HiKd+Qd@u^j7(smqmQpS(eY||tf5ALT}gD{_3G6VzTPv27$ z9IqmzGNx5x)+g%d4>9MVI;v>KGcS}A@Rk_#TXI%TaBuO<)wOMtsMgHr=I_sjax`f( zkBl$RHf&Uh&9)Tf3bsHwPXPf>U(Gyoe0jEEhfCEXMeg2d$_ymn=Y3SHS(x>i8T0cP zFDBxP2>?zR+P8p&%eI_!(9ExtaP#b^j4#t3TsB71#0Y;f6SN9CPKh|4sl=^a48-j5 zze(mgFfwSy)1On%rYBuhuH-2xmg_?-och@oll_#X{-W8cga+i}RLn^gX-`VjGE9`m z1qB?C$uLrs&mhk9&hn@&+gVC+ocN|^jLekNT)N9rOp|1VpDUsEqh*hmZZ}@Rii^+u zFShF9vtItn%ci+^s)_EjbWouvUXlomi~i#=ssxPuuW127+W$OTr_p{=Q8E&HIwZqx zGQgFIz>`UcI%%wbv3+NT*D$i#agT7%s3k5{Kv4Aq|to z3WF>dFEfLY5y{JdqgtVKskp2@%SojhNM*OQV7e6v=3j)}vdLUz<&!oy&(^yWOS>@~ z&sWWpz;w=T>@&K171kc01Ayj8fvqK**h9l5D@88stWx;NcRf7qV!Fyhuzi0*u59~Z zWx8asnYR8IQ>FXzjEH>39!7zIS0nZK9bn88Zw8`xM}F zPJ-7!(_pj6w!E`|IV(>tpSDKL8F>~PGW1PvdFuN$(J-c5mdjoFwkyMgfy&Q%?iqz_LQ*cnoZlagE<_m|8eo`1z4A-gk7HYwB< zPgd|nj&%)BahLF5B#y$!B~3`0(zX(w)8?x$QIroYnC3eUwB&ivNFEwHg0FO18z8W~ zQl>V7kqWJB*sEf*%HZGD(00T)%qa`7qEBK_%W zx#?C=h4pnV`9}6wih9uQFGxLh#1@c81{`VpxDL&Z3XcV?8a;*G9HFmCAQLMCU1JX! zDHDq9qM@yhd z;ptY%OM3tnyo= z;Gcw#r#?$(0Vb9VseOStcYmhN{NP!owE|J5LrYFK^HfbEBa8!cJC8;mGvOpKP&&`L z7!6frVP}?~NQ+onF6DZwEOR>S@*Ex0in68OMB5g{RM_ga#6fb^Q#n~<8ybbtk@LXg zqQ}Yi(gG$G?TD|$1LbF=%GPAKe~EYJt)nCc;K7jBq5@<<=DKg`AWvgSjDg%5-r$6J z4(xWiWAI%a)eO|j9DA5@11xf5GvLZ{kjU_A7;=d8I8$bN7EE(e^xQF?RFCY@lCHi6 z(%822w(r?PaR0RP==7x3P?5T!12em3h(c6o-np8Hgc221Kmk6$ge9o>E=FY0KvJj` zEd*OeTa}*lEIU^jCAZj^L9b~lRkrP}(U9@{u@Q_3oLS~1qxKDL_YE=?5u{rOn0^^B zMLx}1cB4GE<+^h&mM+p(64C5}$ja=DUSZL;Tn?J8&Sjnu$;C=4OE)iK!`D5rX(l0L zlDYDcV*M=AWXtCwsgH@&DEhU$D4+XX)6k~WRLv36DeQ!>&0pJ*0T}jEohFGAGly~Z zNl%3p7ty0?#_9Xq4Vh5gRLSTpQ}hBaOK$-`2)`;~=G`E<8jK4B;VT=E1}HNa(= z${B#$SO{>*vMqCO?FxwH_^vWTnPRO))en({W}`GTu6K|qNdrl}-Nk*8D_ z0_J5fMrtf+-Y6!pU15$udjB`! zph#5}nL{!}|81*+Ex`E-wUh#vZoDs^)RmXdoQ1s8oEQ7l4$ds{px#_Tn(Pi=MYKj6 zs8(OVR8S&#rhAjfINcL%v8dqjRFMcBVme`VaB${Kym=yS5 z3s?~pTiZPg#jKKzDs2Bl>;2{jMYrh*YDWyGJfPyEN4(kDJT|bRiWq@}6IlTNs}RCr zMU~Qjak!V5G(NP|95u{}RBk>rd8Tj*G*jYIi-))TmRCuT=g@1#5}m{3xpHlJm=|lR zhSl!czIUTKhN>G{8*38GAmSO4CpE&W5WKnMqOvya9BTam1%$ zf9^@(cgl&OS&ATJ*uz*ad1DtzmJ}1`3R!gFHM`SNlOSgwd#KPod z+mQ*Qd_N^TzXK_KAVWmk97-qo!&(-3_R69u!XAt*SjF26=9mppvz>X#2)d*N^x&D@ zDRMu59CTh9H+@ov#cy;^FeaddUZyR_AJuV<+r9X zvB|*16iG}b6-%3GR~6@3Mu!j&+*@8eY`(jz)1AGFph1^j_b7m?KsLm}q9XCgT&cv# znEX`HqFY8ZQZ&usBryx46b}^!oDZG|nl;fayY!Rbkw+^$D#1=c2CHP5goP-mm8C0` zs>GF%sxXzE=h|Y%HF!^T$Qahw65fDlx~vVCx#!lmZM{1I>L=Dz3}osKi#7@r1T7WYnL~5u_Bm%5YD%0Tj~x~%XGu(FhsZL}9^{f=4OH)PVEZO` z%HA$%@2j4A71#Xpt36N#et(cqZpuJ)X-VS9p|F}_(0ht?!~M+%L)tTl&b-MkVMoJ6 zir9nIC7SBHguY=7z^V3vq_4;z>?j&98XvqZrC6uqXikQT9TAC@l%1UsN&r1?!kAp8 z35*ENb_4J{>7d!Tokyu;cDQg`7#6j@Vml==YPT5FrI0=2zW1e4T&yJ6>_vKiWyf6A zv1O_yYKI8e;RSZUTeZ$njAzusA3|zc>J)KrSi(m}nN&N~FH9oxHEX8|Tnk3m>tYw@P44-K$r$cuH)coCm0>oz{ zU@59Nypet0m~;AW+!DGOOp&2^xT$>BD|sp~?{rg|(Ncp{64=8-ZS-gwE67wpa2e~I z4`Wpak^0H2U*x)Wmw01BtgDew-kkmgB&{cFsJ;)qLU=|#JZcj74@5*o|hrUM;atpgu#>^ zyo^XE-dHSEWej3(27@?HUBIkK;x>Koe7O|O8hVlRjE(mvqGqBX)gq~v7-}Yin%Bot zjA&7rvjtTmli{7hDrL*E>~X>zJbT1)lXvhfmZ8EiXIUUsQpvGA2WJ5NM^!1GE@QPy z4{fKCpk-0Fi*)9sld$?U#qKaGb!x_#Oy>EHsj4Cyo^%XS3a~NwD!a-Lni`aUZOSn zta=I5_ta9*^b9Ln>RzgOENODu3#P4>AX85!uQS}H@JdkC=#^+2RM0Q=j$KCA7$735 zr4hRfTvn+8QdNtmy<*yy#9f5J#$d!jk!nxIB^vu?3BDYu+N0Vp0Sm9mQ|1NR1FwYW zC0?PMPx9?~B7k&zcTkGqc!}x~?Hxn&dZQ9=_#;w6e%-NA%4E3{OB*;g7Ck9J1CHrp~$VClZ*4Fb#EBnfLA70}=)=q3tQS4Wu4!>%3$PZ?AK1K3ei&r`Jl z(eWbliS0WIpMv7DIn3E71;Zpjd#%^NoJ6@2TKSX%5zlO9;}2E z#h43Q2W%gcOMEjeMY%7>Bop7ADnz+m#pD#bl9QqQc|~P4+F!8<<@Og7)ujj;Aa}Z; zF?Iyz{G*H8e#r3S0ij0+5S8tSlYmZ*vMZc~v0<9HilAPQMZ9(Jgwpj)qX>}%bVrQCr0aPYW-!hbsVf?((~2_sLfqNCk#1O;@0oP;ma`IJCH6PSn}eA z-}5A(`~)wI{$S=AI?I`1@OQde;#`$i4Vidq`GOfj3(UPWyPS$KrHYbfVJE|{ADNY7{!Hlj%T=(QnQtieVL>$l4@3mo#0rW!=n~lS?Ab2Y&D4n*_HO}*Ue{JEuDOvC(zF*q3qH3XMN;J*8(n1B(#c zb_Vnqy$P%Kh9^IOSlEG>-lt$%fu zhZW74j6C~cg`N^kKypFoZl=WJQXnvE(J_ zFZ6|EwN1Huo3bix%5JrUOW@3l3UdLNQekt-6`it6;%ZI?r-{lyoS`CW+7~Rs(sVpc z#Z(+u@lTO5q&cP_2M-+!_srTBi;B&U6~h|&v)t$+D~wnydl6`1ZmPI~xf79o8RH_U zKgy)Gv)i~&$d#SLv)?r9Sb|6k2mwosS|%V|rn{=b!}Q*IEIV;Ea0ofzr^wot9*o;| zFNtPbL1kbWs%y4sg80U3d<5STHp(2AKBweaV3$ruMxoD=vlBg`Bj~g!VMxrnj3g|i z?k&xnQ!(!m(~ogk=;6YeE~8a&yn6&3OjzUKDjJW8z|eRhgY76b)#NU1`e20@*n}}< zsfBf3(cIf^083j(r3|qI$^F4rl;jf(PAG26lK+jw@Rt7nRc6Ekz+e|5a(QW)I zV@TX)qcO{(akhHKxk6CJkY}@Uadq5M83@vELfh2RRr!G zlU$3Fr{VH6I(KmQ#90a336>3W)b}ascFB%l#=SFgk+7_bT*^kmGVYpLUKkDr-&jZp zE?J3vZa+9+UKzHj?6%t!XUx56nxnmCp=p(dW|qw`S!gyYULen2zyFNykaHu)BaQQ@ zr_2t&sS_B4Do7PK(u4Or=khLg9ms36bD1Q}VW4x{oD6MeG%(!ZJbV-D=T)$at4=;v zb3fZ(>bB?@A#<5#To&!V7 z0xj*Z8e#=0AyVKdhU89ib)#3^@b6yVVYPUP2`u_UgS$gDK z@9>Trth}HT2NbO?uC$*w%OnJ8_AF&NC7K5C^$r1AYss3i&0dd}s_ zGncP&T)u2^nZ_jwpc1o8ecO^1i=Qr9G9#TT(aVC ziMA#9&{T(AU6pTd*%r;DF7rl-X_g`8sFc7ts!@h-%huB^RXdfHCY5h)cqJ;`POyHK zlu64lFgd2}LhRKZSZo*R65R{^oL5e+Xp{Jo5G8h1WOL)a#Ikn^aIeBvzG`b1I?FC`bY^z0K|NTqz{N`)*pl}YoEyy0mnWET_9 zm2}FJ=d8qea4jlbfSvVbxhSf*!Z9&Nu0kxAo(SXhdzD8lNMo1( zJadATxGV+FiCOEg_5@?fQb%ZAe0D5~3M;E5h?9cvQIkGcDy)6sJ4}j0La-$?rqo$V zq$fU8R*x1z3pzKf0j!;2c})*(MBkz#Mo-5?PR2mH7#qm=TfC{6 zEa@Ql_gW4QetKp-ND*5*FqFHJP|jC8+821xa^c ziZc|ln#f~lTa)Z0{26)ek8@Z^<`lCYIo(Zvi4vq>_`(n=!>XbRp_M3SkU@xVC-SdG zp#O5>n(w`57^@sJc}eeVm@7mpx|qcr&ag*Xw4$mg_bm9kx`Pf=^~EO_o6z$q>>drS z7$j0!Y4a1-dS>y@*_l<+n>)~Du)_#l+^!GwVJSsVIVTWni z7qMPqSDr{4(yzYjWzlPq86hbtm2v;sErhcai>4WlDwaYY0%xeEYtvFDs%e7K7|p%U zy4${3$tQ%w(qrzN$6VA%!B5e1mPleNJ&BYm-lz92UO9>D7w4MK44R9x)?{8Pry_52 zQF)eJ(kcW1&-DZXpuyD4J=LANp2dr8@2bvx=&ABhY>qZgDfiq12jx!1&cKy@;(;lw zKUnFnT=vy;TPtE$70azq&ZSTg*^Hvh#ya`NYH`*gVGAz9!pgs4_;@}~H|Qnh5R%x_ zAwkqhgm2pNTUxvFP4{GWz9O^9!&)hHEjvH79W9+oW5%vObVa5SuV*K9YVy)wY_@ZN z@#r{}rTl$QgPU_#X;Eo#u>A69@*D7_gl(bCmr%>1^y$HTBQ9UuVw!%QSlW%@c)n_$ z1WW1J^>n(oR}rfR;7sCl+_pPoWjAh-Ysn@vm%mFwHv6h{7H1)dXWF{ao1EeG1){#t zH`sBXFSt;0vQ*H{dY~r${4;ils<)TTQ!s*KkS9{WRg0^~nFInWI-XhPIi4jiZW zel^irfS!Y##I-C@9A($hn>nf>cQ?Q+u?!ol*|@+TW^h%XOcWzA^(Ak|zK&~QrUYQ} zP*j=O$-=^N&!}BnFthXMd}OtRbdk~I5Gm{zR20p9ci!@$lBZdvYRvgoPHY96r+u#^ zoI!Jm^;Jf6MW(ZCzf8Wf6iwTvc||9e?lSS@=QnxZPPd^lwM-?`#ET2F{DCPr3%aN2 z1efgkmTnS#pNxp56H6;|n@L&$WcBwde2I*mCAp>A^y;>0RhET?dBUtpuQA0Sj6e7k4}3$BJ4q$BLqWzX}Rx+4yIsg_TMj^`jfn(0BSiqcdN zV@THODNU48Y+=a>$1P<+DnIujg)?@?J;#^Jab#GU>Fe~oYKXrQbEln_D&#CP`BZoL zTt1Ugs4{y~b_%kIAF&za%{$*%CG>5cevfVMK-ME2AP$w(lX z?J6prB$ax_GC!xUv#^Ah5SQs&7XQ?!oC#Zq5l}Yfr9Z5Q^)wKx1)H1K%6cvV<@Ozw zm7vleRwKTD7#wD!Dc_Lh*s~mqIwj}!53`%ffs189<81H(u&`Q*$eISPo4J)ibE&NH zDaiV!F2nR|jcE`8Ru_l`QL{s=Kc?LTAMD)Qm+AYMXT9%TBDH&w@sT15VjFkF3jVA_ z$X?y<<)1Cl|Meu{PvhlT4=l~d<>_fk;BE2OE4A?m9Ev}%w%0SBS*tMXxbTaa}>$8?~Q!6@0FmVboPLUPDhT_5ZkPdz;ANR?%V|i?^Ney&?BP%pF1%0N zW%_2NQGZu&ZqZ(`^l_g!pitOUJGYl-2Lt{7#eZ^Kck9R2?e5q6J#~DiPHvhTlfCwj zS6|;ge%krx(Ej(zo8RC3ufN{Uh!y30i)kM8pE?yEz3#b{jnQZ{wzoHxtmpKnxuN{8 zjjioQv$?(9fOd^$>s@0Depd!T!4G)4sso_R+Yg(H68!#y{IKeo%71_V*I$wQzyIXO z|JUlIe~SFKwp;JEQ}Vz0Zu7hRFXLwgxBJl%(7cs@yA#nD$@~eOtE66~{MpyZ_;*j5b!y&7gtJ#&{1$Jpgv^~GZB4`24 ze`!V=)a!3!U0{P&c7wNX;s44%l*qN2E_-q=79PqGE#ZQX->{+U(2r`aT4c<|uAh=V zxIK{vZC$6I_-yMe6>GKCSgR=+&zp_4wY54$SWQ{qXaHb2Bc1TeZl;g5l|9tfTK4l+ z2tX?}{s!P9_>aBL#-?{oWsSa(J<6sSB{{;*&W=>S&@Kmsc|AAh>$ef-MvcB5j6pvPeG>?hXxhqbIlW#+Cf{D)Xi+tlXwPPU843eiO8Jfxn|h2xQ%uJD#J5tzZf|A{OFu-G%P<&~=h+r< z^_D_wUg_cS&eb}fKG}_K;6s7XYDx<{K8Yf2p z&RS?5PSjCC*jxG1uD}bOaQj8UXfEDPp{!ygpO(uP2Tax|bGJg(5PochA2XE!`zqX3 z0uX=tJG}V!p96Z!y#u{R-f7B@^HVdxGBsEXRarBq2K5kHTAtEA@8BmqA4Sjz?p zv&Jb1bS5YkJ5&S&cx@92C6p08=fuD9T+^_;54z#vKF7L6o;~p1Eb_s!*O7d-N#5|^ zb<^&z{@s3LI_?L>wS7k;z)vF(#p{dXf8!y+5Af0CwXDG*w5@;Pw(j<3jZ8kZ?(aUm zsJAKVKh?KEHVI{poL?C(qVr_)fpReh1I@^~Y;? z=XCe;-QhmIb8+`+|M=hr+OqF2jOWqk$HQIqxXS^MMhB$H)?daTM?dZH;^rHk!$MD^8FmLGN z^78pBJiACdyMkvQ6VJ}!*|~Uj6~j*qPCoCc_^JBcEd0c1K-)1M^Dp;`c!1L)MsFRS zX=1F8QT)Vcd#Ka#dAq6fj>FFASQ6i{XBqRLGI7%QlIX*W!pY|o8~-kYR|;T?;iob> zrg*xwRmjs>{%K<%7Zt*fgYl8(s==WQ0LrUQT|l3^%aAi^Cg4n zNZ*6sH!&SR`#;(GYzVls_&G;sr05!>1IKHOPm1aFavI<~3%?n7!#N|)3*?iHAE(VU z{y#~;8{^kB-6#%muKB#i$B)Sl$1%qf8zZw_3D}Pt0Yn?S`s^ze2w^2UY0D*ccgncOaoBxIQbv&#kTG zn5ZZ31WnXy@H=h-zH+Ev(&&iKFZfvtKck(!iqg9KSg5CC^ty(2*Ow8Q+!*W~e?08K z=V!2QDLS4s`f)mbJVo8{^7$+M-1wZJC5MCaEt_B5KS=5v+DC!h#$+x=4?b4fUdM3% zoYP16th}z4wYf2U8M7~68k7#Q_9gCP%xPa@^8a$!k=IvQHlg5I#=E(?w%CSD>qEld zP5E=p_w<7V?|r2HI()vrbJt^YVn69P%@MYZRx_7%zn)SI)CcC@$N1xr!0Uf*9JvwZ3H#+dS+3bG27->h(TgQ95XZN@I zKtH;6JBPbZI`jk2uJqeRzjwJi)P_4=XHWBwjU5+Yw_@;obo*agJDzs5^P=8ejJmDO z+;{GdHlL2+_wnR?|3_nYzuVe+(La7_e%ZJHSWmUC@%{z9kG4#m&D-t{Z#E)$_phuQ@5}IJ z^5cGI{Nv@gpa1;L>8@%J70eyaujHt(U`$=4j%_D=xU?H9!B z$)x>TXaB_QFql4fH*|o5!TP0j2(pI!wsof8HjVqcj(swD6m7HMZvcLLeR$~Vx7Rsi zKW?3gIdHxzz{l3v72tbsHy@q|J$}6MGWekXEZ)C9+S$N&^6`hT70z#*oL_=}Pw($8 z>~8DgMLY-I{7QLxkM-BtZ?L(?WzS}?XHd1rF6hkO$}a~VEQ;$8t~?#u1iKE67cob0#9@Ly&hQT$%FZW{X0%|xT0ceJhciAMf<*=P`wGFKEwY>=E@U$LDE78=C%o^Rz*5&j?^i=s^E-_}RSL*fq7`VFUM? zjvv7`pl)uN^z-$`#YDZ`vf%et_vqTcIJ)@?dKGl>&11H%;dndRxzbTj4guen&!8LI zfb+I>zW?04-SFN44Uu-pT$I+sn|9IEjxw~on^PJnU zD2=a%fRDRfn16GmADOND%iUeg`ZORnQJU}g+Q#R;wsGSHG(QAcy6k7`oR9e3*7yrN z(XV9>bsqNrXR7NV+(i__vfI$+eyB@IW5)?&nJ7q_bJ_tb?QYXu9LOh|M@@M9DRU;=0N)xwfE>xopS%_WRkB}-9GZwH6)6raZd8wCmhRMQqhuJ^x%iREc;Ttb}elqTSY=k!JMcCkz zBD}ps@G?1>Y>pGOYN#JSJ?R@K!0(U!^Q+B%yl?7DhI}*GLbz_39JY5l`=7^Ycn*?d z#Q9+o@%`YP3|id)PM*5P?pR|q2mIW`d==hLleRMhx@?uSty{%@D#&>8JSO+IhmSWP zv%uFJCwH{_LF;m*#y}f zG;m$j9bRvDhwnXVUs^lv{SCJ@_&3N?x24&iT071sI{v0{ch~s$x6YpawUvB`j+jG8OFf;|IPgKKh3R1GXMWw^IhwE{{J$5JXf==p3$#k zD%Km8?8W}p4cB{9M^}+`y6_L44SN&gmp655qW!|oY+_R16LFBI-n{u6 zt!#v^ed~FC|H=N5l>fbt?bD-!OY2km1 z)4u=tpSS9N-u&=`@)LUyb`6GV;CJ!pz}slW^0#=FKy}F5C;Gx>y!zG6TdNkAJV0o@7UY((K~RSV}%0?eI~P`(#X?ko_<_X!~1mjv>i0P=kR zWMjQmu?)RS0Qs&YklO;tcM%|g_LTy;od9yXB#>JI$ZY{+V`sfpF_1|+RMrdyR%j~% zWV2#&Cv8w!6BJmW%_xu+V=`%f%9@|R`fNmiY;0ExWYYGOHa!B!)&hY{*`1O=hE^v4 z^8I?NVxtq-90p@Ki?bcdO(P0p#TNYa!?>N0?d_7Xy)9&WJ0jco|7wAZhzwgi)nQ4qE@xMlEGr9iX-rjuoef__TA4c*zF9Y;%WwZ6Y5YS)gM^gTe zJ9`JGmj|7{ab zcA;Ef9@LbJgY%2C{p&q^T%)b_JC|1%o!x7ELOW>Im3=H|WU%7gZ$$Y)KBE=I9pGI@ zL!z<^U_9asT}8EYEQ+kNx2PN9yQD^oUW1s>a;Kt_A-2Ws636KJw3@Q&Dy)VQEt`DF zile$pQ^9fret)3suxiR#PJXTfb>;UIiOvqfS~0Hg1d$^+KYe!&;V_DH~g|4{K~*E z@_=13-b z1_TePP4Zq==u})~)mUS%V!famkk7&3HuMLs4*k1^k#9}K`dHA8_rkuS7;u!KYJut$ zcQ3iVHsFBOl<|Pj=>zrYxU`Q>`_ zuhHRbhj7G;j(iWa7r+ZN05Unm6+J?iU19+eGy_N(>pcQzNb)bXzoM+dyZD#0vKFN} z{2y`hWavKjfY!ik#}V$KLCcA9K4U^a$&zBVOIjjg1;uNaF0<258)L10z@8NUW0#9a)<#CjI+I?&Ozd)^q?i`Aq6qUeBqA$znV z-VJL|6Y}3P`aUm_j=LKX^}%YTr9oG%33~?Qzycls5WO~FNN`65pcVoGTw%G`QWXqE zpO`^4eN|!Tq21Nu6Xbm)riqI?0|m;a!0~DJffHE8*Vu%k+KX<;IE-k}50l*?(G7Mz zY-HNEw)2=$3S)RkA*Ol=IV}_c!xGa71c0HAPiv^^ph%un!=&3zO#UN!sfOAV8BkL> zE2)8A5ZVpU0F49n7QNC7)r#k#ZPD3Q7K4^|u}Uvg=qXPu=WVA$u*uq zm`r=T7Ghx^E8(lOSPCMNCkg=!^YY$IQE)OxrHOYITEo zUNiazZtA6Jp4P`gPxWHrUsICkr zzzJI#z=55`XhL~d=bnh@$!55rZ^8F@z}F%|;fXC*Q>bm%?}F~&%0u`al)EV86g(~p zbReq7Q*MQzGBtOF)*|YtpjM{CBfobEAhQRk$ah}ktUX@q!{;PQR5N=YsAYJGV7Yq7 z24!4BDs)wo@)6zz3pk?Ahi`H0D<}m~q>~U)h$qjD-GlOkHn_+X1-dIb2K+yS2{fW% z;>#vp$We=$tiTm=C$2|^Zd8SX&GiYI5RKYM-hz=IEg$n%0$(eN^jbuX#JC`WZNwY+ zxSH=$D^EupQhmwY$XlxMLeoT^1rp+O75s=rqeh12+rA6JJ5-%VRDDk99SN6`O?iNk6(;G3Ciba*4;#}rYkt{kCTg~RRz(-)qVa_KYU%6T<&F%uE9 zs8%LmC6x$*6jUJqGxg%AUjWV_%o04j5y6|G1p9&NGxf27zJ_I6>y+{?%osnegV*Eq zap7c7RMVTR_Z$MB3~=n8Yz-B8%9``_9}Xy1Tkrnl4o5Bfksp0v3T$N2Usl z9y|eL!?KcM zMMDf>`=Wxs>aM{u*tQ6_h@k$!BZ=OTWjM(f#Dv%ims?u^pE-GP;P?<@B!#ebb*0lo z`Uh(v7c>>}bU+l(=ra)1zG~2_%b?`=!hJO~Sb=Zt*si-y5vI_bEFb+R_L*KWW2$4< zH$0rGN&3tP&}*d_@S#tT(27M0j$J}b0eAUQJM2dbi8B$?67(2SPZhdhu2`HCh07!s zqg+zNLL-zhZt{dz#jFF0C{j=Gis}l7O^1hq`2y_nEI6I1g3Y>eL86hNIvskbPD0I= z)Iy*K4dL6w^ihGAM@fQiBMjz)lB0Zt9u54q1B)DAHZv2RqseOFQiviXWUV0~jLJRR zgf$Vf??QKd5O#J|U1KxFi^Tc}FM`L`8$ebArf7L?%=Hachxn74s7mcaawYLEYDUGF z-N=|Ma1*-HxQ@d0I}7SK$U=C7q=kIKR*!CEcvNu#OJkob8B%8x$A01?Ymt#1;(>tG zgx?%l!qe3OK$M(ZWZ+=HkRfXHCicKO);M?9P%Y{N{ia&PnV>A{h2qBN#zGJo@FZ0# z{)C0JhZd`qsyIcPOPu3{hKtQ4ZK~r))7MaG1@z|&KP2_a>Dg6h?_dRl z@7bgHMzP~#pvxT@Cn{YL6_6n*Da=xOMYieGLKyxP zRpv1!i^_F80Hqkc$Q|@xGW($gO!sd)wKSGh;p;`BTzqYifu&wTQm6v~D?mmp=+M#E zagvjOHWs~h2~0mY7DR(TVB-9x8T_8ksPINtm;SF6UmhKOQ+Zy8-p;*}ZPmnXI z(ZKc6_<^UuDUlCGZCwv}JkTE1@ zpw}Anax*;mFtnGkWyHFP>=oI)3}|Yh*!1XPagwtXiALuFQKJ3f(2;0f2taDLDrSWP zuNz~@)Rjg)iiKr@l}chI5F^MIUF`6k0Jc^Qy+F6FTw7p8T}m|aj1{2`T>jD?BO4?^ zd}EUIA|t`9NEj?H2Pd-X~x|w3TA|1SQpH7)y3{3d;iq-@TFk) zhT4~|%@$=Swtc$1Lo-4_bA2!eF3}0w2tqN4kc1D!ybBf}1uO#(M)ndet)@`aeJ?3&pc7zb|d_#@7FJc=5 zZ-R?>G#K?F&J)J;`A5tGV?4|n3#Jti3r-1_sr)J!#uH%BU7!h?bV^b%{PqyHrx6;! zGWZ=DOpuczSae{dHWi;0(j@4{twDwfV3>MWSN08;E}d}Gwx`_UrIi-$UveP`KqYtsL|FKzKjuf4dYs%@>klIO6PJ# z*==8TE(LOLJ69jiuCJ8a_Qgf}^r~}kshnLzx8=_cmG zs9w<{VbV~7Xq;3PdTIiTT#72XAac?w7La+>xjH_m0oG5~JEw;ioztU(lY`T%nsRb* zfv484+Pj_O&ea#nLWiBJ(}PQvKG5cUoVPE4VAsd(3+4R!;{5FLfLU9%TWI3W0>D4Q z`;qCc1KpWntHLBTJLz4vwaEKrIs9UE%bFzM!b2Q9Bc@E{h2gY^NAOd9M27-6Ly z3AKowEDtlqA|V5d^i2c2FOA^cFMPMV77OJDk)NsjzRDa0jOm+3mpXJ5xIV@sf_)1y zq=y*@F5Ml^mJg;qW99>cGJ<5LK?mj$0ZLkRsP^MAe0*D^1cb=}?ug*tdSv$*1PUBm zwv~Vm42$XFh8*uyXlRVN0o)j_cG#XdTJgYEWqUMIF-nL&fscUqRKxTgW{p&{=Ubt3LycfYCJ4QP z)X`%2U;`5u7zgy%58+i9j0(R<3TcdZ502YMi z#gW^gp^gZ}?Eqc(xVR=a3k$c~gcqs}Y@0T7S#@VzOK039p#0uuMD9&ISPaG4cbssyj7N^y%__K9WkJ+h zI&R#ZaAzZ&&;&6M;xusP#}RIfxQziUjDZhM_tCCqrNPnf+vn%dq;vNHNl2pwpiw70 zeIc5~P{`RV7CK=IMY1h;k*!Aw-E@>O4CC0$om_igL%LB2plMn&g;TT|$2oi0;da4&!p zz{L;X;H!g(*^cbZqO7GXOwOz>B7f8&s?{kCO^5PTMlR0WL$2l`Xrd zn>iB3SZu9!Ntm)icSr>!F21-z?=yz4PzSG|t%&b@^5ho;6By43_TxF`#J+0~o(Y2- zs-q2X$C@!ixS5FOGnDpFeE~dcm}Jqhw7S^sR(mix#1?q{cwYR1>6iv+jwkU`1pp!*Qiu)2J9C2KS~%9u)8#rrpDrV zg3DD;$ilRIRGtOB4j|K4WZd^W$Al-OVK>0_-AE1CAkLn)y%@22Nf|JIq$-+%B&GXI|~YG)i{TK%8qRx1C$ z+4z3`XDL6lzE4$}|65Py`%mc~N%`l^Xl1C?-~aHYH8 zanNWl>jRqjj)^VAVPYLxcE5q+U-+#XUyz-y_59Et|-2fa000trL AcmMzZ diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/js/jsii-calc@0.7.15.jsii.tgz b/packages/jsii-pacmak/test/expected.jsii-calc/js/jsii-calc@0.7.15.jsii.tgz index ed86b811e526056a84c870825fa150c655b7fcf4..eef7587bf20015975a43efa48f8cd0487c889042 100644 GIT binary patch literal 116 zcmYMs%?X7-3`OC+Ron)&78f=UojYV8?~P<4TE0IZE)NI3(PW`kOLXMw2qk!|T!IO| qnl>Xsd=|5Ax?Ugf#tzj=_aIUw75?6;ll2h#CUgreKfGUIl literal 72770 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 AcmMzZ diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst b/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst index 79ad16e900..966a35d5cf 100644 --- a/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst +++ b/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst @@ -1615,6 +1615,74 @@ ExportedBaseClass :type: boolean *(readonly)* +ExtendsInternalInterface (interface) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ExtendsInternalInterface + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ExtendsInternalInterface; + + .. code-tab:: javascript + + // ExtendsInternalInterface is an interface + + .. code-tab:: typescript + + import { ExtendsInternalInterface } from 'jsii-calc'; + + + + + + .. py:attribute:: boom + + :type: boolean + + +ExtendsPrivateInterface (interface) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ExtendsPrivateInterface + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ExtendsPrivateInterface; + + .. code-tab:: javascript + + // ExtendsPrivateInterface is an interface + + .. code-tab:: typescript + + import { ExtendsPrivateInterface } from 'jsii-calc'; + + + + + + .. py:attribute:: moreThings + + :type: string[] + + GiveMeStructs ^^^^^^^^^^^^^ @@ -1894,6 +1962,40 @@ IInterfaceThatShouldNotBeADataType (interface) :type: string *(readonly)* +IInterfaceWithInternal (interface) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: IInterfaceWithInternal + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.IInterfaceWithInternal; + + .. code-tab:: javascript + + // IInterfaceWithInternal is an interface + + .. code-tab:: typescript + + import { IInterfaceWithInternal } from 'jsii-calc'; + + + + + + .. py:method:: visible() + + :abstract: Yes + + IInterfaceWithMethods (interface) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -2129,6 +2231,142 @@ IReturnsNumber (interface) :abstract: Yes +ImplementInternalInterface +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ImplementInternalInterface() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ImplementInternalInterface; + + .. code-tab:: javascript + + const { ImplementInternalInterface } = require('jsii-calc'); + + .. code-tab:: typescript + + import { ImplementInternalInterface } from 'jsii-calc'; + + + + + .. py:attribute:: prop + + :type: string + + +ImplementsInterfaceWithInternal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ImplementsInterfaceWithInternal() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternal; + + .. code-tab:: javascript + + const { ImplementsInterfaceWithInternal } = require('jsii-calc'); + + .. code-tab:: typescript + + import { ImplementsInterfaceWithInternal } from 'jsii-calc'; + + + + :implements: :py:class:`~jsii-calc.IInterfaceWithInternal`\ + + .. py:method:: visible() + + *Implements* :py:meth:`jsii-calc.IInterfaceWithInternal.visible` + + + +ImplementsInterfaceWithInternalSubclass +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ImplementsInterfaceWithInternalSubclass() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternalSubclass; + + .. code-tab:: javascript + + const { ImplementsInterfaceWithInternalSubclass } = require('jsii-calc'); + + .. code-tab:: typescript + + import { ImplementsInterfaceWithInternalSubclass } from 'jsii-calc'; + + + + :extends: :py:class:`~jsii-calc.ImplementsInterfaceWithInternal`\ + + .. py:method:: visible() + + *Inherited from* :py:meth:`jsii-calc.ImplementsInterfaceWithInternal ` + + + +ImplementsPrivateInterface +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ImplementsPrivateInterface() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ImplementsPrivateInterface; + + .. code-tab:: javascript + + const { ImplementsPrivateInterface } = require('jsii-calc'); + + .. code-tab:: typescript + + import { ImplementsPrivateInterface } from 'jsii-calc'; + + + + + .. py:attribute:: private + + :type: string + + ImplictBaseOfBase (interface) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -4243,6 +4481,39 @@ StringEnum (enum) .. py:data:: C +StripInternal +^^^^^^^^^^^^^ + +.. py:class:: StripInternal() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.StripInternal; + + .. code-tab:: javascript + + const { StripInternal } = require('jsii-calc'); + + .. code-tab:: typescript + + import { StripInternal } from 'jsii-calc'; + + + + + .. py:attribute:: youSeeMe + + :type: string + + Sum ^^^ diff --git a/packages/jsii-reflect/test/classes.expected.txt b/packages/jsii-reflect/test/classes.expected.txt index 9aebe77097..d6388b6515 100644 --- a/packages/jsii-reflect/test/classes.expected.txt +++ b/packages/jsii-reflect/test/classes.expected.txt @@ -24,6 +24,10 @@ ExportedBaseClass Foo GiveMeStructs GreetingAugmenter +ImplementInternalInterface +ImplementsInterfaceWithInternal +ImplementsInterfaceWithInternalSubclass +ImplementsPrivateInterface InbetweenClass JSObjectLiteralForInterface JSObjectLiteralToNative diff --git a/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt index c9e4fbd900..493633803f 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt @@ -375,6 +375,30 @@ assemblies │ │ │ └─┬ friendly │ │ │ └── type: interface:@scope/jsii-calc-lib.IFriendly │ │ └── returns: primitive:string + │ ├─┬ class ImplementInternalInterface + │ │ └─┬ members + │ │ ├─┬ () method + │ │ │ └── returns: void + │ │ └─┬ prop property + │ │ └── type: primitive:string + │ ├─┬ class ImplementsInterfaceWithInternal + │ │ ├── interfaces: IInterfaceWithInternal + │ │ └─┬ members + │ │ ├─┬ () method + │ │ │ └── returns: void + │ │ └─┬ visible() method + │ │ └── returns: void + │ ├─┬ class ImplementsInterfaceWithInternalSubclass + │ │ ├── base: ImplementsInterfaceWithInternal + │ │ └─┬ members + │ │ └─┬ () method + │ │ └── returns: void + │ ├─┬ class ImplementsPrivateInterface + │ │ └─┬ members + │ │ ├─┬ () method + │ │ │ └── returns: void + │ │ └─┬ private property + │ │ └── type: primitive:string │ ├─┬ class InbetweenClass │ │ ├── base: PublicClass │ │ └─┬ members @@ -1069,6 +1093,16 @@ assemblies │ │ └─┬ optionalArray property │ │ ├── abstract │ │ └── type: Array + │ ├─┬ interface ExtendsInternalInterface + │ │ └─┬ members + │ │ └─┬ boom property + │ │ ├── abstract + │ │ └── type: primitive:boolean + │ ├─┬ interface ExtendsPrivateInterface + │ │ └─┬ members + │ │ └─┬ moreThings property + │ │ ├── abstract + │ │ └── type: Array │ ├─┬ interface IFriendlier │ │ ├─┬ interfaces │ │ │ └── IFriendly @@ -1092,6 +1126,11 @@ assemblies │ │ ├── abstract │ │ ├── immutable │ │ └── type: primitive:string + │ ├─┬ interface IInterfaceWithInternal + │ │ └─┬ members + │ │ └─┬ visible() method + │ │ ├── abstract + │ │ └── returns: void │ ├─┬ interface IInterfaceWithMethods │ │ └─┬ members │ │ ├─┬ doThings() method diff --git a/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt index 805cd87c3c..5ed60d75ad 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt @@ -33,6 +33,12 @@ assemblies │ ├── class ExportedBaseClass │ ├── class GiveMeStructs │ ├── class GreetingAugmenter + │ ├── class ImplementInternalInterface + │ ├─┬ class ImplementsInterfaceWithInternal + │ │ └── interfaces: IInterfaceWithInternal + │ ├─┬ class ImplementsInterfaceWithInternalSubclass + │ │ └── base: ImplementsInterfaceWithInternal + │ ├── class ImplementsPrivateInterface │ ├─┬ class InbetweenClass │ │ └── base: PublicClass │ ├── class Foo @@ -80,6 +86,8 @@ assemblies │ ├─┬ interface DerivedStruct │ │ └─┬ interfaces │ │ └── MyFirstStruct + │ ├── interface ExtendsInternalInterface + │ ├── interface ExtendsPrivateInterface │ ├─┬ interface IFriendlier │ │ └─┬ interfaces │ │ └── IFriendly @@ -90,6 +98,7 @@ assemblies │ ├─┬ interface IInterfaceThatShouldNotBeADataType │ │ └─┬ interfaces │ │ └── IInterfaceWithMethods + │ ├── interface IInterfaceWithInternal │ ├── interface IInterfaceWithMethods │ ├── interface IInterfaceWithOptionalMethodArguments │ ├── interface IPrivatelyImplemented diff --git a/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt index 76f06111d5..4b12ae297a 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt @@ -147,6 +147,21 @@ assemblies │ │ └─┬ members │ │ ├── () method │ │ └── betterGreeting(friendly) method + │ ├─┬ class ImplementInternalInterface + │ │ └─┬ members + │ │ ├── () method + │ │ └── prop property + │ ├─┬ class ImplementsInterfaceWithInternal + │ │ └─┬ members + │ │ ├── () method + │ │ └── visible() method + │ ├─┬ class ImplementsInterfaceWithInternalSubclass + │ │ └─┬ members + │ │ └── () method + │ ├─┬ class ImplementsPrivateInterface + │ │ └─┬ members + │ │ ├── () method + │ │ └── private property │ ├─┬ class InbetweenClass │ │ └─┬ members │ │ └── () method @@ -440,6 +455,12 @@ assemblies │ │ ├── anotherOptional property │ │ ├── optionalAny property │ │ └── optionalArray property + │ ├─┬ interface ExtendsInternalInterface + │ │ └─┬ members + │ │ └── boom property + │ ├─┬ interface ExtendsPrivateInterface + │ │ └─┬ members + │ │ └── moreThings property │ ├─┬ interface IFriendlier │ │ └─┬ members │ │ ├── farewell() method @@ -449,6 +470,9 @@ assemblies │ ├─┬ interface IInterfaceThatShouldNotBeADataType │ │ └─┬ members │ │ └── otherValue property + │ ├─┬ interface IInterfaceWithInternal + │ │ └─┬ members + │ │ └── visible() method │ ├─┬ interface IInterfaceWithMethods │ │ └─┬ members │ │ ├── doThings() method diff --git a/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt index 9ef1ffd31e..3caad51496 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt @@ -24,6 +24,10 @@ assemblies │ ├── class ExportedBaseClass │ ├── class GiveMeStructs │ ├── class GreetingAugmenter + │ ├── class ImplementInternalInterface + │ ├── class ImplementsInterfaceWithInternal + │ ├── class ImplementsInterfaceWithInternalSubclass + │ ├── class ImplementsPrivateInterface │ ├── class InbetweenClass │ ├── class Foo │ ├── class JSObjectLiteralForInterface @@ -60,9 +64,12 @@ assemblies │ ├── class CompositeOperation │ ├── interface CalculatorProps │ ├── interface DerivedStruct + │ ├── interface ExtendsInternalInterface + │ ├── interface ExtendsPrivateInterface │ ├── interface IFriendlier │ ├── interface IFriendlyRandomGenerator │ ├── interface IInterfaceThatShouldNotBeADataType + │ ├── interface IInterfaceWithInternal │ ├── interface IInterfaceWithMethods │ ├── interface IInterfaceWithOptionalMethodArguments │ ├── interface IPrivatelyImplemented diff --git a/packages/jsii/lib/assembler.ts b/packages/jsii/lib/assembler.ts index e1d4696b27..7bceb52b66 100644 --- a/packages/jsii/lib/assembler.ts +++ b/packages/jsii/lib/assembler.ts @@ -11,7 +11,7 @@ import { Diagnostic, Emitter } from './emitter'; import literate = require('./literate'); import { ProjectInfo } from './project-info'; import utils = require('./utils'); -import { Validator } from './validator'; +import { Validator } from './validator'; // tslint:disable:no-var-requires Modules without TypeScript definitions const sortJson = require('sort-json'); @@ -342,7 +342,7 @@ export class Assembler implements Emitter { LOG.trace(`Processing class: ${colors.gray(namespace.join('.'))}.${colors.cyan(type.symbol.name)}`); } - if (_isInternal(type.symbol)) { + if (_hasInternalJsDocTag(type.symbol)) { return undefined; } @@ -364,7 +364,9 @@ export class Assembler implements Emitter { this._diagnostic(base.symbol.valueDeclaration, ts.DiagnosticCategory.Error, `Found multiple base types for ${jsiiType.fqn}`); continue; } + const ref = await this._typeReference(base, type.symbol.valueDeclaration); + if (!spec.isNamedTypeReference(ref)) { this._diagnostic(base.symbol.valueDeclaration, ts.DiagnosticCategory.Error, @@ -388,15 +390,25 @@ export class Assembler implements Emitter { this._diagnostic(clause, ts.DiagnosticCategory.Error, `Ignoring ${ts.SyntaxKind[clause.token]} heritage clause`); continue; } + for (const expression of clause.types) { const iface = this._typeChecker.getTypeFromTypeNode(expression); + + // if this interface is internal/private, we erase it from the API definition + if (this._isPrivateOrInternal(iface.symbol)) { + LOG.trace(`erasing hidden interface ${iface.symbol.name}`); + continue; + } + const typeRef = await this._typeReference(iface, iface.symbol.valueDeclaration); + if (!spec.isNamedTypeReference(typeRef)) { this._diagnostic(expression, ts.DiagnosticCategory.Error, `Interface of ${jsiiType.fqn} is not a named type (${spec.describeTypeReference(typeRef)})`); continue; } + this._deferUntilTypesAvailable(fqn, [typeRef], expression, (deref) => { if (!spec.isInterfaceType(deref)) { this._diagnostic(expression, @@ -404,11 +416,9 @@ export class Assembler implements Emitter { `Implements clause of ${jsiiType.fqn} uses ${spec.describeTypeReference(typeRef)} as an interface`); } }); - if (jsiiType.interfaces) { - jsiiType.interfaces.push(typeRef); - } else { - jsiiType.interfaces = [typeRef]; - } + + jsiiType.interfaces = jsiiType.interfaces || []; + jsiiType.interfaces.push(typeRef); } } @@ -422,8 +432,20 @@ export class Assembler implements Emitter { for (const memberDecl of classDecl.members) { const member: ts.Symbol = (memberDecl as any).symbol; - if (!(type.symbol.getDeclarations() || []).find(d => d === memberDecl.parent)) { continue; } - if (_isHidden(member)) { continue; } + + if (!(type.symbol.getDeclarations() || []).find(d => d === memberDecl.parent)) { + continue; + } + + if (this._isPrivateOrInternal(member, memberDecl)) { + continue; + } + + // constructors are handled later + if (ts.isConstructorDeclaration(memberDecl)) { + continue; + } + if (ts.isMethodDeclaration(memberDecl) || ts.isMethodSignature(memberDecl)) { await this._visitMethod(member, jsiiType); } else if (ts.isPropertyDeclaration(memberDecl) @@ -483,12 +505,44 @@ export class Assembler implements Emitter { return _sortMembers(this._visitDocumentation(type.symbol, jsiiType)); } + /** + * @returns true if this member is internal and should be omitted from the type manifest + */ + private _isPrivateOrInternal(symbol: ts.Symbol, validateDeclaration?: ts.Declaration): boolean { + const hasInternalJsDocTag = _hasInternalJsDocTag(symbol); + const hasUnderscorePrefix = symbol.name !== '__constructor' && symbol.name.startsWith('_'); + + if (_isPrivate(symbol)) { + LOG.trace(`skipping ${symbol.name} because it is marked "private"`); + return true; + } + + if (!hasInternalJsDocTag && !hasUnderscorePrefix) { + return false; + } + + // we only validate if we have a declaration + if (validateDeclaration) { + if (!hasUnderscorePrefix) { + this._diagnostic(validateDeclaration, ts.DiagnosticCategory.Error, + `${symbol.name}: the name of members marked as @internal must begin with an underscore`); + } + + if (!hasInternalJsDocTag) { + this._diagnostic(validateDeclaration, ts.DiagnosticCategory.Error, + `${symbol.name}: members with names that begin with an underscore must be marked as @internal via a JSDoc tag`); + } + } + + return true; + } + private async _visitEnum(type: ts.Type, namespace: string[]): Promise { if (LOG.isTraceEnabled()) { LOG.trace(`Processing enum: ${colors.gray(namespace.join('.'))}.${colors.cyan(type.symbol.name)}`); } - if (_isInternal(type.symbol)) { + if (_hasInternalJsDocTag(type.symbol)) { return undefined; } @@ -566,7 +620,7 @@ export class Assembler implements Emitter { LOG.trace(`Processing interface: ${colors.gray(namespace.join('.'))}.${colors.cyan(type.symbol.name)}`); } - if (_isInternal(type.symbol)) { + if (_hasInternalJsDocTag(type.symbol)) { return undefined; } @@ -581,13 +635,21 @@ export class Assembler implements Emitter { }; for (const base of (type.getBaseTypes() || [])) { + // if this interface is internal/private, we erase it from the API definition + if (this._isPrivateOrInternal(base.symbol)) { + LOG.trace(`erasing hidden interface ${base.symbol.name}`); + continue; + } + const ref = await this._typeReference(base, type.symbol.valueDeclaration); + if (!spec.isNamedTypeReference(ref)) { this._diagnostic(base.symbol.valueDeclaration, ts.DiagnosticCategory.Error, `Base type of ${jsiiType.fqn} is not a named type (${spec.describeTypeReference(ref)})`); continue; } + this._deferUntilTypesAvailable(fqn, [ref], base.symbol.valueDeclaration, (baseType) => { if (!spec.isInterfaceType(baseType)) { // tslint:disable:max-line-length @@ -597,15 +659,17 @@ export class Assembler implements Emitter { // tslint:enable:max-line-length } }); - if (jsiiType.interfaces) { - jsiiType.interfaces.push(ref); - } else { - jsiiType.interfaces = [ref]; - } + + jsiiType.interfaces = jsiiType.interfaces || []; + jsiiType.interfaces.push(ref); } for (const member of type.getProperties()) { if (!(type.symbol.getDeclarations() || []).find(decl => decl === member.valueDeclaration.parent)) { continue; } - if (_isHidden(member)) { continue; } + + if (this._isPrivateOrInternal(member, member.valueDeclaration)) { + continue; + } + if (ts.isMethodDeclaration(member.valueDeclaration) || ts.isMethodSignature(member.valueDeclaration)) { await this._visitMethod(member, jsiiType); } else if (ts.isPropertyDeclaration(member.valueDeclaration) @@ -1064,22 +1128,34 @@ function _isExported(node: ts.Declaration): boolean { } /** - * Members with names starting with ``_`` and members that are private are hidden. + * Members with names starting with `_` (and marked as @internal) and members + * that are private are hidden. * * @param symbol the symbol which should be assessed * - * @return ``true`` if the symbol should be hidden + * @return `true` if the symbol should be hidden */ -function _isHidden(symbol: ts.Symbol): boolean { - return _isInternal(symbol) // if this property is marked "@internal", we strip it from the API - || !symbol.valueDeclaration - // tslint:disable-next-line:no-bitwise - || (ts.getCombinedModifierFlags(symbol.valueDeclaration) & ts.ModifierFlags.Private) !== 0; +function _isPrivate(symbol: ts.Symbol): boolean { + + // if the symbol doesn't have a value declaration, we are assuming it's a type (enum/interface/class) + // and check that it has an "export" modifier + if (!symbol.valueDeclaration) { + let hasExport = false; + for (const decl of symbol.declarations) { + // tslint:disable-next-line:no-bitwise + if (ts.getCombinedModifierFlags(decl) & ts.ModifierFlags.Export) { + hasExport = true; + } + } + return !hasExport; + } + + // tslint:disable-next-line:no-bitwise + return symbol.valueDeclaration && (ts.getCombinedModifierFlags(symbol.valueDeclaration) & ts.ModifierFlags.Private) !== 0; } -function _isInternal(symbol: ts.Symbol): boolean { - return symbol.getJsDocTags().some(tag => tag.name === 'internal') - || symbol.name.startsWith('_'); +function _hasInternalJsDocTag(symbol: ts.Symbol) { + return symbol.getJsDocTags().some((t: any) => t.name === 'internal'); } function _isProtected(symbol: ts.Symbol): boolean { diff --git a/packages/jsii/test/negatives/neg.internal-underscore.1.ts b/packages/jsii/test/negatives/neg.internal-underscore.1.ts new file mode 100644 index 0000000000..9edd58ae90 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore.1.ts @@ -0,0 +1,6 @@ +///!MATCH_ERROR: the name of members marked as @internal must begin with an underscore + +export interface IMyInterface { + /** @internal */ + propertyWithInternalButNotUnderscorePrefix: string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore.2.ts b/packages/jsii/test/negatives/neg.internal-underscore.2.ts new file mode 100644 index 0000000000..07a05665b8 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore.2.ts @@ -0,0 +1,5 @@ +///!MATCH_ERROR: _methodWithUnderscoreButNoInternal: members with names that begin with an underscore must be marked as @internal via a JSDoc tag + +export interface IMyInterface { + _methodWithUnderscoreButNoInternal: string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore.3.ts b/packages/jsii/test/negatives/neg.internal-underscore.3.ts new file mode 100644 index 0000000000..7b3c8a71e4 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore.3.ts @@ -0,0 +1,6 @@ +///!MATCH_ERROR: the name of members marked as @internal must begin with an underscore + +export interface IMyInterface { + /** @internal */ + methodWithInternalButNoUnderscore: string; +} From cc2451df81010ecd348496ea3d4190a75349f4c4 Mon Sep 17 00:00:00 2001 From: Elad Ben-Israel Date: Tue, 19 Mar 2019 14:45:58 +0200 Subject: [PATCH 4/4] more negative tests for @internal/underscore coupling --- .../jsii/test/negatives/neg.internal-underscore-class.5.ts | 6 ++++++ .../jsii/test/negatives/neg.internal-underscore-class.6.ts | 5 +++++ .../jsii/test/negatives/neg.internal-underscore-class.7.ts | 6 ++++++ .../jsii/test/negatives/neg.internal-underscore-class.8.ts | 5 +++++ ...erscore.1.ts => neg.internal-underscore-interface.1.ts} | 0 .../test/negatives/neg.internal-underscore-interface.2.ts | 5 +++++ ...erscore.3.ts => neg.internal-underscore-interface.3.ts} | 2 +- .../test/negatives/neg.internal-underscore-interface.4.ts | 7 +++++++ packages/jsii/test/negatives/neg.internal-underscore.2.ts | 5 ----- 9 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-class.5.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-class.6.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-class.7.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-class.8.ts rename packages/jsii/test/negatives/{neg.internal-underscore.1.ts => neg.internal-underscore-interface.1.ts} (100%) create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-interface.2.ts rename packages/jsii/test/negatives/{neg.internal-underscore.3.ts => neg.internal-underscore-interface.3.ts} (75%) create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-interface.4.ts delete mode 100644 packages/jsii/test/negatives/neg.internal-underscore.2.ts diff --git a/packages/jsii/test/negatives/neg.internal-underscore-class.5.ts b/packages/jsii/test/negatives/neg.internal-underscore-class.5.ts new file mode 100644 index 0000000000..f6e220556c --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-class.5.ts @@ -0,0 +1,6 @@ +///!MATCH_ERROR: the name of members marked as @internal must begin with an underscore + +export class MyClass { + /** @internal */ + public propertyWithInternalButNotUnderscorePrefix?: string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-class.6.ts b/packages/jsii/test/negatives/neg.internal-underscore-class.6.ts new file mode 100644 index 0000000000..0f96a89f5e --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-class.6.ts @@ -0,0 +1,5 @@ +///!MATCH_ERROR: members with names that begin with an underscore must be marked as @internal via a JSDoc tag + +export class MyClass { + public _propertyWithUnderscoreButNoInternal?: string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-class.7.ts b/packages/jsii/test/negatives/neg.internal-underscore-class.7.ts new file mode 100644 index 0000000000..43f4ecb8eb --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-class.7.ts @@ -0,0 +1,6 @@ +///!MATCH_ERROR: the name of members marked as @internal must begin with an underscore + +export class MyClass { + /** @internal */ + public methodWithInternalButNoUnderscore(): string { return 'hi'; } +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-class.8.ts b/packages/jsii/test/negatives/neg.internal-underscore-class.8.ts new file mode 100644 index 0000000000..e7b5afd433 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-class.8.ts @@ -0,0 +1,5 @@ +///!MATCH_ERROR: members with names that begin with an underscore must be marked as @internal via a JSDoc tag + +export interface IMyInterface { + _methodWithUnderscoreButNoInternal(); +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore.1.ts b/packages/jsii/test/negatives/neg.internal-underscore-interface.1.ts similarity index 100% rename from packages/jsii/test/negatives/neg.internal-underscore.1.ts rename to packages/jsii/test/negatives/neg.internal-underscore-interface.1.ts diff --git a/packages/jsii/test/negatives/neg.internal-underscore-interface.2.ts b/packages/jsii/test/negatives/neg.internal-underscore-interface.2.ts new file mode 100644 index 0000000000..f025d1d9b1 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-interface.2.ts @@ -0,0 +1,5 @@ +///!MATCH_ERROR: members with names that begin with an underscore must be marked as @internal via a JSDoc tag + +export interface IMyInterface { + _propertyWithUnderscoreButNoInternal: string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore.3.ts b/packages/jsii/test/negatives/neg.internal-underscore-interface.3.ts similarity index 75% rename from packages/jsii/test/negatives/neg.internal-underscore.3.ts rename to packages/jsii/test/negatives/neg.internal-underscore-interface.3.ts index 7b3c8a71e4..62a744501c 100644 --- a/packages/jsii/test/negatives/neg.internal-underscore.3.ts +++ b/packages/jsii/test/negatives/neg.internal-underscore-interface.3.ts @@ -2,5 +2,5 @@ export interface IMyInterface { /** @internal */ - methodWithInternalButNoUnderscore: string; + methodWithInternalButNoUnderscore(): string; } diff --git a/packages/jsii/test/negatives/neg.internal-underscore-interface.4.ts b/packages/jsii/test/negatives/neg.internal-underscore-interface.4.ts new file mode 100644 index 0000000000..8d33518242 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-interface.4.ts @@ -0,0 +1,7 @@ +///!MATCH_ERROR: members with names that begin with an underscore must be marked as @internal via a JSDoc tag + +export class MyClass { + public _methodWithUnderscoreButNoInternal() { + return; + } +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore.2.ts b/packages/jsii/test/negatives/neg.internal-underscore.2.ts deleted file mode 100644 index 07a05665b8..0000000000 --- a/packages/jsii/test/negatives/neg.internal-underscore.2.ts +++ /dev/null @@ -1,5 +0,0 @@ -///!MATCH_ERROR: _methodWithUnderscoreButNoInternal: members with names that begin with an underscore must be marked as @internal via a JSDoc tag - -export interface IMyInterface { - _methodWithUnderscoreButNoInternal: string; -}