From 8cda6b14b15f9f885d816d9b8fa8b5cc632450e7 Mon Sep 17 00:00:00 2001 From: xiejunan Date: Tue, 13 Sep 2016 17:09:29 +0800 Subject: [PATCH 01/27] fix compile_protos.sh 'make protos' will report errors due to compiling protos of 'testdata' of protobuf, just skip doing it. Change-Id: Ic96a33178cbc3e231703f1bde45b7673952c71a2 Signed-off-by: xiejunan --- devenv/compile_protos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devenv/compile_protos.sh b/devenv/compile_protos.sh index ad833ecd8d0..cdee9780e41 100755 --- a/devenv/compile_protos.sh +++ b/devenv/compile_protos.sh @@ -5,7 +5,7 @@ set -eux # Compile protos ALL_PROTO_FILES="$(find . -name "*.proto" -exec readlink -f {} \;)" PROTO_DIRS="$(dirname $ALL_PROTO_FILES | sort | uniq)" -PROTO_DIRS_WITHOUT_JAVA_AND_SDK="$(printf '%s\n' $PROTO_DIRS | grep -v "shim/java" | grep -v "/sdk")" +PROTO_DIRS_WITHOUT_JAVA_AND_SDK="$(printf '%s\n' $PROTO_DIRS | grep -v "shim/java" | grep -v "/sdk" | grep -v "/vendor")" for dir in $PROTO_DIRS_WITHOUT_JAVA_AND_SDK; do cd "$dir" protoc --proto_path="$dir" --go_out=plugins=grpc:. "$dir"/*.proto From 5f9b3ea02d4312162bf958a9649c36bc4ec4496d Mon Sep 17 00:00:00 2001 From: Angelo De Caro Date: Fri, 16 Sep 2016 10:10:04 +0200 Subject: [PATCH 02/27] C2C invocation for confidential contracts. This PR addresses chaincode to chaincode invocation for confidential contracts (https://jira.hyperledger.org/browse/FAB-67). In order to achieve the goal the chaincode handler has been modified to contruct proper ephemeral transactions and security contexts. Let us consider the following scenario to describe the modification apported by this PR. Let us say that we have two chaincodes: A and B where A invokes B at some point of its computation. When a user invoke a chaincode A, using transaction tx, the certificate that the user has put in tx is passed to B when A invokes it. In this way, for example, chaincode B can perfom attribute-based access control. In addition, each chaincode can access it is own encrypted state and modify it in a proper way without affecting other chaincodes' state. This PR has been tested by adding a unit test in exectransaction_test.go. The unit tests, verify that C2C invocation can be perfomed when security is enabled. What will come next: 1. Chaincode to chaincode query. 2. Additional fields transfered to the invoked chaincode to support access control based on signature. Change-Id: I649d1953ac76e8af32d917a089a454fc0bba9fc1 Signed-off-by: Angelo De Caro --- core/chaincode/exectransaction_test.go | 79 +++++++++++++++++++++++--- core/chaincode/handler.go | 52 +++++++++++++---- 2 files changed, 113 insertions(+), 18 deletions(-) diff --git a/core/chaincode/exectransaction_test.go b/core/chaincode/exectransaction_test.go index a1d10fcd052..0bca0bc93f7 100644 --- a/core/chaincode/exectransaction_test.go +++ b/core/chaincode/exectransaction_test.go @@ -827,6 +827,18 @@ func TestChaincodeInvokeChaincode(t *testing.T) { go grpcServer.Serve(lis) + err = chaincodeInvokeChaincode(t, "") + if err != nil { + t.Fail() + t.Logf("Failed chaincode invoke chaincode : %s", err) + closeListenerAndSleep(lis) + return + } + + closeListenerAndSleep(lis) +} + +func chaincodeInvokeChaincode(t *testing.T, user string) (err error) { var ctxt = context.Background() // Deploy first chaincode @@ -836,7 +848,7 @@ func TestChaincodeInvokeChaincode(t *testing.T) { f := "init" args := util.ToChaincodeArgs(f, "a", "100", "b", "200") - spec1 := &pb.ChaincodeSpec{Type: 1, ChaincodeID: cID1, CtorMsg: &pb.ChaincodeInput{Args: args}} + spec1 := &pb.ChaincodeSpec{Type: 1, ChaincodeID: cID1, CtorMsg: &pb.ChaincodeInput{Args: args}, SecureContext: user} _, err = deploy(ctxt, spec1) chaincodeID1 := spec1.ChaincodeID.Name @@ -844,7 +856,6 @@ func TestChaincodeInvokeChaincode(t *testing.T) { t.Fail() t.Logf("Error initializing chaincode %s(%s)", chaincodeID1, err) GetChain(DefaultChain).Stop(ctxt, &pb.ChaincodeDeploymentSpec{ChaincodeSpec: spec1}) - closeListenerAndSleep(lis) return } @@ -859,7 +870,7 @@ func TestChaincodeInvokeChaincode(t *testing.T) { f = "init" args = util.ToChaincodeArgs(f, "e", "0") - spec2 := &pb.ChaincodeSpec{Type: 1, ChaincodeID: cID2, CtorMsg: &pb.ChaincodeInput{Args: args}} + spec2 := &pb.ChaincodeSpec{Type: 1, ChaincodeID: cID2, CtorMsg: &pb.ChaincodeInput{Args: args}, SecureContext: user} _, err = deploy(ctxt, spec2) chaincodeID2 := spec2.ChaincodeID.Name @@ -868,7 +879,6 @@ func TestChaincodeInvokeChaincode(t *testing.T) { t.Logf("Error initializing chaincode %s(%s)", chaincodeID2, err) GetChain(DefaultChain).Stop(ctxt, &pb.ChaincodeDeploymentSpec{ChaincodeSpec: spec1}) GetChain(DefaultChain).Stop(ctxt, &pb.ChaincodeDeploymentSpec{ChaincodeSpec: spec2}) - closeListenerAndSleep(lis) return } @@ -878,7 +888,7 @@ func TestChaincodeInvokeChaincode(t *testing.T) { f = "invoke" args = util.ToChaincodeArgs(f, "e", "1") - spec2 = &pb.ChaincodeSpec{Type: 1, ChaincodeID: cID2, CtorMsg: &pb.ChaincodeInput{Args: args}} + spec2 = &pb.ChaincodeSpec{Type: 1, ChaincodeID: cID2, CtorMsg: &pb.ChaincodeInput{Args: args}, SecureContext: user} // Invoke chaincode var uuid string _, uuid, _, err = invoke(ctxt, spec2, pb.Transaction_CHAINCODE_INVOKE) @@ -888,7 +898,6 @@ func TestChaincodeInvokeChaincode(t *testing.T) { t.Logf("Error invoking <%s>: %s", chaincodeID2, err) GetChain(DefaultChain).Stop(ctxt, &pb.ChaincodeDeploymentSpec{ChaincodeSpec: spec1}) GetChain(DefaultChain).Stop(ctxt, &pb.ChaincodeDeploymentSpec{ChaincodeSpec: spec2}) - closeListenerAndSleep(lis) return } @@ -899,13 +908,67 @@ func TestChaincodeInvokeChaincode(t *testing.T) { t.Logf("Incorrect final state after transaction for <%s>: %s", chaincodeID1, err) GetChain(DefaultChain).Stop(ctxt, &pb.ChaincodeDeploymentSpec{ChaincodeSpec: spec1}) GetChain(DefaultChain).Stop(ctxt, &pb.ChaincodeDeploymentSpec{ChaincodeSpec: spec2}) - closeListenerAndSleep(lis) return } GetChain(DefaultChain).Stop(ctxt, &pb.ChaincodeDeploymentSpec{ChaincodeSpec: spec1}) GetChain(DefaultChain).Stop(ctxt, &pb.ChaincodeDeploymentSpec{ChaincodeSpec: spec2}) - closeListenerAndSleep(lis) + + return +} + +func TestChaincodeInvokeChaincodeWithSec(t *testing.T) { + testDBWrapper.CleanDB(t) + viper.Set("security.enabled", "true") + + //Initialize crypto + if err := crypto.Init(); err != nil { + panic(fmt.Errorf("Failed initializing the crypto layer [%s]", err)) + } + + //set paths for memberservice to pick up + viper.Set("peer.fileSystemPath", filepath.Join(os.TempDir(), "hyperledger", "production")) + viper.Set("server.rootpath", filepath.Join(os.TempDir(), "ca")) + + var err error + var memSrvcLis net.Listener + if memSrvcLis, err = initMemSrvc(); err != nil { + t.Fail() + t.Logf("Error registering user %s", err) + return + } + + time.Sleep(2 * time.Second) + + var peerLis net.Listener + if peerLis, err = initPeer(); err != nil { + finitMemSrvc(memSrvcLis) + t.Fail() + t.Logf("Error registering user %s", err) + return + } + + if err = crypto.RegisterClient("jim", nil, "jim", "6avZQLwcUe9b"); err != nil { + finitMemSrvc(memSrvcLis) + finitPeer(peerLis) + t.Fail() + t.Logf("Error registering user %s", err) + return + } + + //login as jim and test chaincode-chaincode interaction with security + if err = chaincodeInvokeChaincode(t, "jim"); err != nil { + finitMemSrvc(memSrvcLis) + finitPeer(peerLis) + t.Fail() + t.Logf("Error executing test %s", err) + return + } + + //cleanup + finitMemSrvc(memSrvcLis) + finitPeer(peerLis) + } // Test the execution of a chaincode that invokes another chaincode with wrong parameters. Should receive error from diff --git a/core/chaincode/handler.go b/core/chaincode/handler.go index 52c66deeef1..b045a442def 100644 --- a/core/chaincode/handler.go +++ b/core/chaincode/handler.go @@ -161,9 +161,9 @@ func (handler *Handler) deleteRangeQueryIterator(txContext *transactionContext, delete(txContext.rangeQueryIteratorMap, txid) } -//THIS CAN BE REMOVED ONCE WE SUPPORT CONFIDENTIALITY WITH CC-CALLING-CC -//we dissallow chaincode-chaincode interactions till confidentiality implications are understood -func (handler *Handler) canCallChaincode(txid string) *pb.ChaincodeMessage { +//THIS CAN BE REMOVED ONCE WE FULL SUPPORT (Invoke and Query) CONFIDENTIALITY WITH CC-CALLING-CC +//Only invocation are allowed, not queries +func (handler *Handler) canCallChaincode(txid string, isQuery bool) *pb.ChaincodeMessage { secHelper := handler.chaincodeSupport.getSecHelper() if secHelper == nil { return nil @@ -176,7 +176,9 @@ func (handler *Handler) canCallChaincode(txid string) *pb.ChaincodeMessage { } else if txctx.transactionSecContext == nil { errMsg = fmt.Sprintf("[%s]Error transaction context is nil while checking for confidentiality. Sending %s", shorttxid(txid), pb.ChaincodeMessage_ERROR) } else if txctx.transactionSecContext.ConfidentialityLevel != pb.ConfidentialityLevel_PUBLIC { - errMsg = fmt.Sprintf("[%s]Error chaincode-chaincode interactions not supported for with privacy enabled. Sending %s", shorttxid(txid), pb.ChaincodeMessage_ERROR) + if isQuery { + errMsg = fmt.Sprintf("[%s]Error chaincode-chaincode interactions not supported for with privacy enabled. Sending %s", shorttxid(txid), pb.ChaincodeMessage_ERROR) + } } if errMsg != "" { @@ -209,10 +211,12 @@ func (handler *Handler) encryptOrDecrypt(encrypt bool, txid string, payload []by var err error if txctx.transactionSecContext.Type == pb.Transaction_CHAINCODE_DEPLOY { if enc, err = secHelper.GetStateEncryptor(handler.deployTXSecContext, handler.deployTXSecContext); err != nil { + chaincodeLogger.Errorf("error getting crypto encryptor for deploy tx :%s", err) return nil, fmt.Errorf("error getting crypto encryptor for deploy tx :%s", err) } } else if txctx.transactionSecContext.Type == pb.Transaction_CHAINCODE_INVOKE || txctx.transactionSecContext.Type == pb.Transaction_CHAINCODE_QUERY { if enc, err = secHelper.GetStateEncryptor(handler.deployTXSecContext, txctx.transactionSecContext); err != nil { + chaincodeLogger.Errorf("error getting crypto encryptor %s", err) return nil, fmt.Errorf("error getting crypto encryptor %s", err) } } else { @@ -1046,7 +1050,9 @@ func (handler *Handler) enterBusyState(e *fsm.Event, state string) { err = ledgerObj.DeleteState(chaincodeID, key) } else if msg.Type.String() == pb.ChaincodeMessage_INVOKE_CHAINCODE.String() { //check and prohibit C-call-C for CONFIDENTIAL txs - if triggerNextStateMsg = handler.canCallChaincode(msg.Txid); triggerNextStateMsg != nil { + chaincodeLogger.Debugf("[%s] C-call-C", shorttxid(msg.Txid)) + + if triggerNextStateMsg = handler.canCallChaincode(msg.Txid, false); triggerNextStateMsg != nil { return } chaincodeSpec := &pb.ChaincodeSpec{} @@ -1060,12 +1066,21 @@ func (handler *Handler) enterBusyState(e *fsm.Event, state string) { // Get the chaincodeID to invoke newChaincodeID := chaincodeSpec.ChaincodeID.Name + chaincodeLogger.Debugf("[%s] C-call-C %s", shorttxid(msg.Txid), newChaincodeID) // Create the transaction object chaincodeInvocationSpec := &pb.ChaincodeInvocationSpec{ChaincodeSpec: chaincodeSpec} transaction, _ := pb.NewChaincodeExecute(chaincodeInvocationSpec, msg.Txid, pb.Transaction_CHAINCODE_INVOKE) - // Launch the new chaincode if not already running + tsc := handler.getTxContext(msg.Txid).transactionSecContext + + transaction.Nonce = tsc.Nonce + transaction.ConfidentialityLevel = tsc.ConfidentialityLevel + transaction.ConfidentialityProtocolVersion = tsc.ConfidentialityProtocolVersion + transaction.Metadata = tsc.Metadata + transaction.Cert = tsc.Cert + + // cd the new chaincode if not already running _, chaincodeInput, launchErr := handler.chaincodeSupport.Launch(context.Background(), transaction) if launchErr != nil { payload := []byte(launchErr.Error()) @@ -1217,7 +1232,7 @@ func (handler *Handler) initializeSecContext(tx, depTx *pb.Transaction) error { return nil } -func (handler *Handler) setChaincodeSecurityContext(tx *pb.Transaction, msg *pb.ChaincodeMessage) error { +func (handler *Handler) setChaincodeSecurityContext(tx, depTx *pb.Transaction, msg *pb.ChaincodeMessage) error { chaincodeLogger.Debug("setting chaincode security context...") if msg.SecurityContext == nil { msg.SecurityContext = &pb.ChaincodeSecurityContext{} @@ -1248,6 +1263,13 @@ func (handler *Handler) setChaincodeSecurityContext(tx *pb.Transaction, msg *pb. return err } + msg.SecurityContext.Payload = ctorMsgRaw + // TODO: add deploy metadata + if depTx != nil { + msg.SecurityContext.ParentMetadata = depTx.Metadata + } else { + msg.SecurityContext.ParentMetadata = handler.deployTXSecContext.Metadata + } msg.SecurityContext.Payload = ctorMsgRaw msg.SecurityContext.TxTimestamp = tx.Timestamp } @@ -1289,7 +1311,7 @@ func (handler *Handler) initOrReady(txid string, initArgs [][]byte, tx *pb.Trans } //if security is disabled the context elements will just be nil - if err := handler.setChaincodeSecurityContext(tx, ccMsg); err != nil { + if err := handler.setChaincodeSecurityContext(tx, depTx, ccMsg); err != nil { return nil, err } @@ -1317,7 +1339,7 @@ func (handler *Handler) handleQueryChaincode(msg *pb.ChaincodeMessage) { }() //check and prohibit C-call-C for CONFIDENTIAL txs - if serialSendMsg = handler.canCallChaincode(msg.Txid); serialSendMsg != nil { + if serialSendMsg = handler.canCallChaincode(msg.Txid, true); serialSendMsg != nil { return } @@ -1337,6 +1359,16 @@ func (handler *Handler) handleQueryChaincode(msg *pb.ChaincodeMessage) { chaincodeInvocationSpec := &pb.ChaincodeInvocationSpec{ChaincodeSpec: chaincodeSpec} transaction, _ := pb.NewChaincodeExecute(chaincodeInvocationSpec, msg.Txid, pb.Transaction_CHAINCODE_QUERY) + tsc := handler.getTxContext(msg.Txid).transactionSecContext + + transaction.Nonce = tsc.Nonce + transaction.ConfidentialityLevel = tsc.ConfidentialityLevel + transaction.ConfidentialityProtocolVersion = tsc.ConfidentialityProtocolVersion + transaction.Metadata = tsc.Metadata + transaction.Cert = tsc.Cert + + chaincodeLogger.Debugf("[%s]Invoking another chaincode", shorttxid(msg.Txid)) + // Launch the new chaincode if not already running _, chaincodeInput, launchErr := handler.chaincodeSupport.Launch(context.Background(), transaction) if launchErr != nil { @@ -1466,7 +1498,7 @@ func (handler *Handler) sendExecuteMessage(msg *pb.ChaincodeMessage, tx *pb.Tran } //if security is disabled the context elements will just be nil - if err := handler.setChaincodeSecurityContext(tx, msg); err != nil { + if err := handler.setChaincodeSecurityContext(tx, nil, msg); err != nil { return nil, err } From 777bdac124e82a7f85ef55f9bfc4c6d8ceeb68fb Mon Sep 17 00:00:00 2001 From: Will Lahti Date: Tue, 13 Sep 2016 15:50:57 -0400 Subject: [PATCH 03/27] FAB-394 Chaincode log level cannot be changed These changes make sure that the logging.chaincode setting from core.yaml is used to set the chaincode logging level every time the chaincode container starts. The peer reads in the value and passes it to the chaincode via an environment variable as it does for similar values. Fix Issue FAB-394 Change-Id: Ic4b7228c57fc673a97dbfafc1b086ad04c41c05c Signed-off-by: Will Lahti --- core/chaincode/chaincode_support.go | 23 +++++++++++++++++++++ core/chaincode/shim/chaincode.go | 30 ++++++++++++++++++++++++---- core/chaincode/shim/mockstub_test.go | 16 +++++++++++++++ 3 files changed, 65 insertions(+), 4 deletions(-) diff --git a/core/chaincode/chaincode_support.go b/core/chaincode/chaincode_support.go index 4a23327313b..fd21dfc5304 100644 --- a/core/chaincode/chaincode_support.go +++ b/core/chaincode/chaincode_support.go @@ -25,6 +25,7 @@ import ( "time" "github.com/golang/protobuf/proto" + logging "github.com/op/go-logging" "github.com/spf13/viper" "golang.org/x/net/context" @@ -34,6 +35,7 @@ import ( "github.com/hyperledger/fabric/core/container/ccintf" "github.com/hyperledger/fabric/core/crypto" "github.com/hyperledger/fabric/core/ledger" + "github.com/hyperledger/fabric/flogging" pb "github.com/hyperledger/fabric/protos" ) @@ -147,6 +149,21 @@ func NewChaincodeSupport(chainname ChainName, getPeerEndpoint func() (*pb.PeerEn s.keepalive = time.Duration(t) * time.Second } + viper.SetEnvPrefix("CORE") + viper.AutomaticEnv() + replacer := strings.NewReplacer(".", "_") + viper.SetEnvKeyReplacer(replacer) + + chaincodeLogLevelString := viper.GetString("logging.chaincode") + chaincodeLogLevel, err := logging.LogLevel(chaincodeLogLevelString) + + if err == nil { + s.chaincodeLogLevel = chaincodeLogLevel.String() + } else { + chaincodeLogger.Infof("chaincode logging level %s is invalid. defaulting to %s\n", chaincodeLogLevelString, flogging.DefaultLoggingLevel().String()) + s.chaincodeLogLevel = flogging.DefaultLoggingLevel().String() + } + return s } @@ -172,6 +189,7 @@ type ChaincodeSupport struct { peerTLSKeyFile string peerTLSSvrHostOrd string keepalive time.Duration + chaincodeLogLevel string } // DuplicateChaincodeHandlerError returned if attempt to register same chaincodeID while a stream already exists. @@ -290,6 +308,11 @@ func (chaincodeSupport *ChaincodeSupport) getArgsAndEnv(cID *pb.ChaincodeID, cLa } else { envs = append(envs, "CORE_PEER_TLS_ENABLED=false") } + + if chaincodeSupport.chaincodeLogLevel != "" { + envs = append(envs, "CORE_LOGGING_CHAINCODE="+chaincodeSupport.chaincodeLogLevel) + } + switch cLang { case pb.ChaincodeSpec_GOLANG, pb.ChaincodeSpec_CAR: //chaincode executable will be same as the name of the chaincode diff --git a/core/chaincode/shim/chaincode.go b/core/chaincode/shim/chaincode.go index 9fc215659ed..003bcb602ad 100644 --- a/core/chaincode/shim/chaincode.go +++ b/core/chaincode/shim/chaincode.go @@ -68,10 +68,7 @@ func Start(cc Chaincode) error { backendFormatter := logging.NewBackendFormatter(backend, format) logging.SetBackend(backendFormatter).SetLevel(logging.Level(shimLoggingLevel), "shim") - viper.SetEnvPrefix("CORE") - viper.AutomaticEnv() - replacer := strings.NewReplacer(".", "_") - viper.SetEnvKeyReplacer(replacer) + SetChaincodeLoggingLevel() flag.StringVar(&peerAddress, "peer.address", "", "peer address") @@ -105,6 +102,31 @@ func Start(cc Chaincode) error { return err } +// IsEnabledForLogLevel checks to see if the chaincodeLogger is enabled for a specific logging level +// used primarily for testing +func IsEnabledForLogLevel(logLevel string) bool { + lvl, _ := logging.LogLevel(logLevel) + return chaincodeLogger.IsEnabledFor(lvl) +} + +// SetChaincodeLoggingLevel sets the chaincode logging level to the value +// of CORE_LOGGING_CHAINCODE set from core.yaml by chaincode_support.go +func SetChaincodeLoggingLevel() { + viper.SetEnvPrefix("CORE") + viper.AutomaticEnv() + replacer := strings.NewReplacer(".", "_") + viper.SetEnvKeyReplacer(replacer) + + chaincodeLogLevelString := viper.GetString("logging.chaincode") + chaincodeLogLevel, err := LogLevel(chaincodeLogLevelString) + + if err == nil { + SetLoggingLevel(chaincodeLogLevel) + } else { + chaincodeLogger.Infof("error with chaincode log level: %s level= %s\n", err, chaincodeLogLevelString) + } +} + // StartInProc is an entry point for system chaincodes bootstrap. It is not an // API for chaincodes. func StartInProc(env []string, args []string, cc Chaincode, recv <-chan *pb.ChaincodeMessage, send chan<- *pb.ChaincodeMessage) error { diff --git a/core/chaincode/shim/mockstub_test.go b/core/chaincode/shim/mockstub_test.go index 39611c65780..0a5d417a9d1 100644 --- a/core/chaincode/shim/mockstub_test.go +++ b/core/chaincode/shim/mockstub_test.go @@ -19,6 +19,8 @@ package shim import ( "fmt" "testing" + + "github.com/spf13/viper" ) func TestMockStateRangeQueryIterator(t *testing.T) { @@ -50,3 +52,17 @@ func TestMockStateRangeQueryIterator(t *testing.T) { } } } + +// TestSetChaincodeLoggingLevel uses the utlity function defined in chaincode.go to +// set the chaincodeLogger's logging level +func TestSetChaincodeLoggingLevel(t *testing.T) { + // set log level to a non-default level + testLogLevelString := "debug" + viper.Set("logging.chaincode", testLogLevelString) + + SetChaincodeLoggingLevel() + + if !IsEnabledForLogLevel(testLogLevelString) { + t.FailNow() + } +} From 8e2875b27747b6df29ab77c6e055d258317c3913 Mon Sep 17 00:00:00 2001 From: rameshthoomu Date: Fri, 16 Sep 2016 15:44:37 -0400 Subject: [PATCH 04/27] FAB-385 fix search issue in readthedocs created custom search.html file and update in mkdocs.yml file also updated yaml file with strict set to true. This fails the documentation build if it detemines a broken link. https://jira.hyperledger.org/browse/FAB-385 Change-Id: I6f7a60d980af07e14c8b2940d1aa224108c6416a Signed-off-by: rameshthoomu --- docs/custom_theme/searchbox.html | 5 +++++ mkdocs.yml | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 docs/custom_theme/searchbox.html diff --git a/docs/custom_theme/searchbox.html b/docs/custom_theme/searchbox.html new file mode 100644 index 00000000000..33ed3e2439c --- /dev/null +++ b/docs/custom_theme/searchbox.html @@ -0,0 +1,5 @@ +
+
+ +
+
diff --git a/mkdocs.yml b/mkdocs.yml index b81da566fdc..87642eb3b45 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,6 +3,8 @@ site_url: http://hyperledger-fabric.readthedocs.io theme: readthedocs repo_url: http://gerrit.hyperledger.org/r/fabric site_description: 'Welcome to the Hyperledger fabric documentation' +strict: true +theme_dir: 'docs/custom_theme' pages: - Home: index.md From e827b109957fe623e5818794b8961c8409a7996a Mon Sep 17 00:00:00 2001 From: rameshthoomu Date: Fri, 16 Sep 2016 17:12:28 -0400 Subject: [PATCH 05/27] FAB-406 node-sdk doc fixes fixed broken links and formatted node-sdk documents. Copied new images into images folder in both docs and nodeSDK folder to make images working from both github and readthedocs. This is a duplicate effort while submitting changes on these images. https://jira.hyperledger.org/browse/FAB-406 Change-Id: Ia62ffcc602617574f9e685cfa3b44a3873877a84 Signed-off-by: rameshthoomu --- docs/images/standalone-app-developer.png | Bin 0 -> 52033 bytes docs/images/web-app-developer.png | Bin 0 -> 52033 bytes docs/nodeSDK/app-developer-env-setup.md | 41 ++++----- docs/nodeSDK/app-overview.md | 20 +++-- .../images/standalone-app-developer.png | Bin 0 -> 52033 bytes docs/nodeSDK/images/web-app-developer.png | Bin 0 -> 52033 bytes docs/nodeSDK/node-sdk-indepth.md | 67 +++++++------- docs/nodeSDK/node-sdk-self-contained.md | 83 +++++++++--------- docs/nodeSDK/sample-standalone-app.md | 30 +++---- docs/nodeSDK/sample-web-app.md | 3 +- mkdocs.yml | 9 ++ 11 files changed, 134 insertions(+), 119 deletions(-) create mode 100644 docs/images/standalone-app-developer.png create mode 100644 docs/images/web-app-developer.png create mode 100644 docs/nodeSDK/images/standalone-app-developer.png create mode 100644 docs/nodeSDK/images/web-app-developer.png diff --git a/docs/images/standalone-app-developer.png b/docs/images/standalone-app-developer.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb8ac8226860dd37c8053783783a705af347c79 GIT binary patch literal 52033 zcmZU5WmsFy^EOT>F2x-R1qz`!6qn-e5Zv9ZxI-yc+}(;6cZcHc?(Xiqq0i6$*PAa% z_Ut*kJF`1;-!qeh%E^c#zr%kA0Re$5E+(u10Rd$T0RgE5fCIPW_CgYazj&Al3CW2I z36aX#+ZdZ!8bLsOj5g5Kr4|45u}@D=SGRANj^>@ci$X}q4+Y(}uJ+;fF4At@9@6wg z5NHh-ZLP}()1#@k9gqz?^c#}6d~%!2ukm=nW-Cv!SNXtIf9(tDB4KXF1Px6AAC;D> zkeZ5UxC=4Q)ekH3f&T`HRI{!*7owXN(l87Qk_ce93i*4I>XW*pD1gLTt(%oP2ee)s!`2 zq8-dYby?AlzVZNoUuhGpFOg`2I(_ZBMMLfFOa5q*$-V6ro~Y3N-82D- z1KemkidNzGABT8hiS#)?7D&_>^g!PN?^E%1xml?(jQ z%E(cV)YZz;+JVcJhx~63F7W5KW*|A~-!6_8JmhN9a->2w_C}#yg=aF z72szEM&N&*4ZfB8t(8m8%+<(JP1wxJ$l3us1}_^E3-{mt|KFAWj`%-!s{i*+W){Z( zz4L#r{Oe9`;M)TJXF>l+>u)PqT)gkNf&URb?>nm2dayqDA;g6Rlw2W?JP|yUd#+#I z_-_I!`AI+dRv?~a7G~=IE_CWx$QCTkcIxXd^>Ix!@>Z5w_g_x!N8E;b0M&(DhMU#Unu<`pp9fN!@ z>KQE<>C67NRbuUm=>JT32yG9`czb%|@4#s109_X+Rf3ty(n|}g@d!h=0XkZ<&HP~{ z4Uk}5-1bzBB+kKP0d-!kv$a92X4rR|2a3?>)0k^oLNwdo0di0{DD-(oN-$Wyg#v47 zk!@Kf#ym?~4=BWAk!8>G?_-%w6J?WAPEuvu*{#lkmc1@z&8F~n-O3jSFMBJMSze3O zSN^PeEDLiPJfXJCT5YR09$|jlDWb-w?3{gaBu{gZUpA3#xOb*qt{T*g#o6T*uq#?_ zp6$2@Fi(LkZcVlsM7NEx-deQ3V#)ivY61St>R&AXtSGir1&u)^YDscv88{07) zBASZ*#_v0YM+O&v?9`vs{7uJ9;PQFIIyc>h^hQS{+)L)CQpd*qXT&tx%> zPZpCQZ3D;45SZb)VMnWrfrE)DsjM8wQsI3QP4B}?Ujp7JI4Z+=fy!Vd?FnW6+%?nM zQ#@uK!Ih3FPZdtkW}6SL@OVBp=cx0`S^8Ybt~PSmE19=EC)!>?mcyG+>+`mG>zQZmR`^ww@oO}z28l#er2Bn0 z;+|-NzAFYULk9i*o- zPWEs=T4v4oQf$*KRNi{d*78*MDq1#2nNj~J`D-tzxZFG{xusj9Gy$7FUnER>quN>A zv+_c_`Qqk+YwLLFG;Qjm8?^dEYK=|p2rzJ#%yEBuHKnd?H+P-W@w}Tv-rS=(>AALz zG(#Ul@i`~y@X)65gDwY@2@h-JNyM@6A59p{?GC~3-QN^B+1V@?WH70!2lYl-&dmvI{C5H z3wrHDO&5E^>@UZ8!u|a;Qn>?Wdk6(AMG|O#(c6RX z_!_Q6Ax~KN_Bzz7@G`2J5i-)-3Q^p;oPmGRIQ(92JKimrSjj_4@!hR18q>XB)5tK} z)6QghF?xq3+SQ2*`66Mua0>i!SSX_U<`_tq&|S^O>5x?*9Wt@$QwQy!P@NvA(_b&z z4x{S+5H|)te7pJico*ixa+vj4YIuItU-_Xqa;bspNT-D6@|2sBr&_kWrR9hA(;)N8 z)tB4Y=%&i*2y9ezrl#v$<>I=rr2^vH-r(Kf-Ha8(3zd-{Sj;z;%m=ZbZ;Xnc*|lyl z@xQ!y1##<)A>GU7CxJ`KAwpnmWIA7{UpgK~Z3XgobcYC;6{;0eqA{se_dEuD4nedFsPyx;XhHZ1S?$quKn z;EL^LEN0Ne2fpVd*;JF=7TvPw7g#>&d6tzQsuMz0ta?v)N;@&hg(bOT!0v{pV~KFwK33G1Oym$$pJwM;8GI#N9F1b%3VPtV7;|is7Udex%7$JE zes-MLcBDZal`(wuzZ}hC9(4{W7v5VgPH+uxGC9@GILrsJ)JaMAD{cnhK)sO2uPc9} zFa2v|<$c=s6lL?Pf0V5x$H%FTO}MOHPi8yi4tjr!8!vPhrBpM91m8o+eYBrLM*%rAWHf5cYm%VEY{x>$5iVz2`9H={Y}|@No%f?> zXJ(VEwg@HP�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 P1|aZs^>bP0l+XkKHf1*1 literal 0 HcmV?d00001 diff --git a/docs/images/web-app-developer.png b/docs/images/web-app-developer.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb8ac8226860dd37c8053783783a705af347c79 GIT binary patch literal 52033 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�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 P1|aZs^>bP0l+XkKHf1*1 literal 0 HcmV?d00001 diff --git a/docs/nodeSDK/app-developer-env-setup.md b/docs/nodeSDK/app-developer-env-setup.md index d3be5b6051b..bfd1f58fddd 100755 --- a/docs/nodeSDK/app-developer-env-setup.md +++ b/docs/nodeSDK/app-developer-env-setup.md @@ -1,33 +1,34 @@ # Setting up the Full Hyperledger fabric Developer's Environment -1. See [Setting Up The Development Environment](../dev-setup/devenv.md) to set up your development environment. + 1. See [Setting Up The Development Environment](../dev-setup/devenv.md) to set up your development environment. -2. Issue the following commands to build the Hyperledger fabric client (HFC) Node.js SDK including the API reference documentation + 2. Issue the following commands to build the Hyperledger fabric client (HFC) Node.js SDK including the API reference documentation - ``` +``` cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node make all - ``` - -3. Issue the following command where your Node.js application is located if you wish to use the `require("hfc")`, this will install the HFC locally. - - ``` - npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node - ``` - +``` + 3. Issue the following command where your Node.js application is located if you wish to use the `require("hfc")`, this will install the HFC locally. + +``` + npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node +``` + Or use point directly to the HFC directly by using the following require in your code: - ```javascript + +```javascript require("/opt/gopath/src/github.com/hyperledger/fabric/sdk/node"); - ``` - - -4. To see the API reference documentation which is built in step 2: - ``` +``` + + 4. To see the API reference documentation which is built in step 2: + +``` cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc - ``` +``` The [Self Contained Node.js Environment](node-sdk-self-contained.md) will have the reference documentation already built and may be accessed by: - ``` + +``` docker exec -it nodesdk /bin/bash cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc - ``` +``` diff --git a/docs/nodeSDK/app-overview.md b/docs/nodeSDK/app-overview.md index b948cbe8dca..7cc5d5f6d3f 100755 --- a/docs/nodeSDK/app-overview.md +++ b/docs/nodeSDK/app-overview.md @@ -2,10 +2,10 @@ Hyperledger fabric supports two types of applications: - * A standalone application that interacts directly with a blockchain. + * A standalone application that interacts directly with a blockchain. See the [Standalone Application](#standaloneApp) section. - * A web application that interacts with a blockchain on behalf of its web application users. + * A web application that interacts with a blockchain on behalf of its web application users. See the [Web Application](#webApp) section. @@ -13,7 +13,7 @@ Hyperledger fabric supports two types of applications: The following diagram provides an overview of the major components of Hyperledger fabric for the standalone application developer. -![Reference architecture](../images/standalone-app-developer.png) + In the diagram above, the blue boxes are Hyperledger fabric components and the green boxes are application developer components. Each outer box represents a separate process. @@ -24,14 +24,16 @@ The **Standalone Application** may be developed in Node.js by using the Hyperled The **SDK** interacts with a **Peer** process. If the Peer process fails, the Node.js Client SDK can fail-over to another Peer as shown by the dotted line from the Node.js Client SDK to another Peer. -This interaction with the Peer consists of submitting transactions to the blockchain. There are three types of transactions: - * deploy - to deploy developer's chaincode as depicted by the green **CC1** boxes in the diagram; - * invoke - to execute a chaincode function which changes the state of the *blockchain database*; +This interaction with the Peer consists of submitting transactions to the blockchain. There are three types of transactions: + + * deploy - to deploy developer's chaincode as depicted by the green **CC1** boxes in the diagram; + * invoke - to execute a chaincode function which changes the state of the *blockchain database*; * query - to execute a chaincode function which may return state information related to the *blockchain database*. The **SDK** also interacts with a **Membership Services** process. In fact, if security is enabled in the Peer (strongly recommended), the Node.js client SDK must interact with Membership Services first in order to retrieve *credentials* which are then used to interact with the Peer. These *credentials* consist of certificates as described in [Membership Services](membership-services.md). The interaction with the Membership Services consists of: + * register - to indicate a new user to the blockchain * enroll - to get access to the blockchain @@ -41,14 +43,14 @@ The interaction with the Membership Services consists of: The following diagram provides an overview of the major components of Hyperledger fabric for the web application developer. At a high-level, you can think of the Block Chain as a database with which the web application interacts; therefore, it is similar to the following topology. + ``` browser --> web tier --> database tier -``` +``` -![Reference architecture](../images/web-app-developer.png) + In the diagram above, the blue boxes are Hyperledger fabric components and the green boxes are application developer components. Each outer box represents a separate process. The browser interacts with the developer's Node.js web application using the Hyperledger fabric's Node.js client SDK. The SDK handles all interactions with other Hyperledger fabric components in the same manor as described in the [SDK interactions](#sdk-interactions) section of [Standalone Application](#standaloneApp). - diff --git a/docs/nodeSDK/images/standalone-app-developer.png b/docs/nodeSDK/images/standalone-app-developer.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb8ac8226860dd37c8053783783a705af347c79 GIT binary patch literal 52033 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�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 P1|aZs^>bP0l+XkKHf1*1 literal 0 HcmV?d00001 diff --git a/docs/nodeSDK/images/web-app-developer.png b/docs/nodeSDK/images/web-app-developer.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb8ac8226860dd37c8053783783a705af347c79 GIT binary patch literal 52033 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�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 P1|aZs^>bP0l+XkKHf1*1 literal 0 HcmV?d00001 diff --git a/docs/nodeSDK/node-sdk-indepth.md b/docs/nodeSDK/node-sdk-indepth.md index fe9227f74f8..85eecddc118 100755 --- a/docs/nodeSDK/node-sdk-indepth.md +++ b/docs/nodeSDK/node-sdk-indepth.md @@ -4,11 +4,12 @@ The Hyperledger fabric Client (HFC) SDK provides a powerful and easy to use API ## Installing only the SDK -If you are an experienced node.js developer and already have a blockchain environment set up and running elsewhere, you can set up a client-only environment to run the node.js client by installing the HFC node module as shown below. This assumes npm version 2.11.3 and node.js version 0.12.7 are already installed. - +If you are an experienced node.js developer and already have a blockchain environment set up and running elsewhere, you can set up a client-only environment to run the node.js client by installing the HFC node module as shown below. This assumes npm version 2.11.3 and node.js version 0.12.7 are already installed. + * To install the latest HFC module of Hyperledger fabric + ``` -npm install hfc + npm install hfc ``` ### Terminology @@ -49,7 +50,8 @@ The following is a high-level description of the HFC objects (classes and interf HFC was designed to support two pluggable components: -1. Pluggable `KeyValStore` key value store which is used to retrieve and store keys associated with a member. The key value store is used to store sensitive private keys, so care must be taken to properly protect access. +1. Pluggable `KeyValStore` key value store which is used to retrieve and store keys associated with a member. The key value store is used to store sensitive private keys, so care must be taken to properly protect access. + **IMPORTANT NOTE**: The default KeyValStore is file-based. If multiple instances of a web application run in a cluster, you must provide an implementation of the KeyValStore which is used by all members of the cluster. 2. Pluggable `MemberServices` which is used to register and enroll members. Member services enables hyperledger to be a permissioned blockchain, providing security services such as anonymity, unlinkability of transactions, and confidentiality @@ -63,40 +65,40 @@ up the chaincode project outside of your Hyperledger fabric source tree to inclu following instructions will demonstrate how to properly set up the directory structure to deploy *chaincode_example02* in network mode. -The chaincode project must be placed under the `$GOPATH/src` directory. For -example, the -[chaincode_example02](https://github.com/hyperledger/fabric/blob/master/examples/chaincode/go/chaincode_example02/chaincode_example02.go) +The chaincode project must be placed under the `$GOPATH/src` directory. For example, the [chaincode_example02](https://github.com/hyperledger/fabric/blob/master/examples/chaincode/go/chaincode_example02/chaincode_example02.go) project should be placed under `$GOPATH/src/` as shown below. ``` -mkdir -p $GOPATH/src/github.com/chaincode_example02/ -cd $GOPATH/src/github.com/chaincode_example02 -curl GET https://raw.githubusercontent.com/hyperledger/fabric/master/examples/chaincode/go/chaincode_example02/chaincode_example02.go > chaincode_example02.go + mkdir -p $GOPATH/src/github.com/chaincode_example02/ + cd $GOPATH/src/github.com/chaincode_example02 + curl GET https://raw.githubusercontent.com/hyperledger/fabric/master/examples/chaincode/go/chaincode_example02/chaincode_example02.go > chaincode_example02.go ``` After you have placed your chaincode project under the `$GOPATH/src`, you will need to vendor the dependencies. From the directory containing your chaincode source, run the following commands: ``` -go get -u github.com/kardianos/govendor -cd $GOPATH/src/github.com/chaincode_example02 -govendor init -govendor fetch github.com/hyperledger/fabric + go get -u github.com/kardianos/govendor + cd $GOPATH/src/github.com/chaincode_example02 + govendor init + govendor fetch github.com/hyperledger/fabric ``` Now, execute `go build` to verify that all of the chaincode dependencies are present. ``` -go build + go build ``` #### 'dev' mode For deploying chaincode in development mode see [Writing, Building, and Running Chaincode in a Development Environment](../Setup/Chaincode-setup.md). The chaincode must be running and connected to the peer before issuing the `deploy()` from the Node.js application. The hfc `chain` object must be set to dev mode. + ```javascript chain.setDevMode(true); ``` The deploy request must include the `chaincodeName` that the chaincode registered with the peer. The built-in chaincode example checks an environment variable `CORE_CHAINCODE_ID_NAME=mycc` when it starts. + ```json var deployRequest = { chaincodeName: 'mycc', @@ -112,11 +114,11 @@ If you wish to configure TLS with the Membership Services server, the following - Modify `$GOPATH/src/github.com/hyperledger/fabric/membersrvc/membersrvc.yaml` as follows: ``` -server: - tls: - cert: + server: + tls: + cert: file: "/var/hyperledger/production/.membersrvc/tlsca.cert" - key: + key: file: "/var/hyperledger/production/.membersrvc/tlsca.priv" ``` @@ -125,12 +127,12 @@ To specify to the Membership Services (TLS) Certificate Authority (TLSCA) what X - Modify `$GOPATH/src/github.com/hyperledger/fabric/peer/core.yaml` as follows: ``` -peer: - pki: - tls: - enabled: true - rootcert: - file: "/var/hyperledger/production/.membersrvc/tlsca.cert" + peer: + pki: + tls: + enabled: true + rootcert: + file: "/var/hyperledger/production/.membersrvc/tlsca.cert" ``` To configure the peer to connect to the Membership Services server over TLS (otherwise, the connection will fail). @@ -140,19 +142,18 @@ To configure the peer to connect to the Membership Services server over TLS (oth - Copy `/var/hyperledger/production/.membersrvc/tlsca.cert` to `$GOPATH/src/github.com/hyperledger/fabric/sdk/node`. *Note:* If you cleanup the folder `/var/hyperledger/production` then don't forget to copy again the *tlsca.cert* file as described above. - - - - ### Troublingshooting If you see errors stating that the client has already been registered/enrolled, keep in mind that you can perform the enrollment process only once, as the enrollmentSecret is a one-time-use password. You will see these errors if you have performed a user registration/enrollment and subsequently deleted the cryptographic tokens stored on the client side. The next time you try to enroll, errors similar to the ones below will be seen. - ``` +``` Error: identity or token do not match - ``` - ``` + +``` + +``` Error: user is already registered - ``` + +``` To address this, remove any stored cryptographic material from the CA server by following the instructions [here](https://github.com/hyperledger/fabric/blob/master/docs/Setup/Chaincode-setup.md#removing-temporary-files-when-security-is-enabled). You will also need to remove any of the cryptographic tokens stored on the client side by deleting the KeyValStore directory. That directory is configurable and is set to `/tmp/keyValStore` within the unit tests. diff --git a/docs/nodeSDK/node-sdk-self-contained.md b/docs/nodeSDK/node-sdk-self-contained.md index 170b3ce6b88..10b5703759f 100755 --- a/docs/nodeSDK/node-sdk-self-contained.md +++ b/docs/nodeSDK/node-sdk-self-contained.md @@ -5,18 +5,20 @@ This section describes how to set up a self contained environment for Node.js ap **note:** This sample was prepared using Docker for Mac 1.12.0 1. Prerequisite software to install: + * Docker * docker-compose (may be packaged with Docker) 2. Create a docker-compose file called *docker-compose.yml* You may retrieve the docker-compose.yml file: - ``` - curl -o docker-compose.yml https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/example02/docker-compose.yml - ``` - + +``` + curl -o docker-compose.yml https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/example02/docker-compose.yml +``` + docker-compose.yml: - ```yaml +```yaml membersrvc: # try 'docker ps' to see the container status after starting this compose container_name: membersrvc @@ -60,7 +62,7 @@ nodesdk: - DEPLOY_MODE=dev - CORE_CHAINCODE_ID_NAME=mycc - CORE_PEER_ADDRESS=peer:7051 - # the following command will start the chaincode when this container starts and ready it for deployment by the app + # the following command will start the chaincode when this container starts and ready it for deployment by the app command: sh -c "sleep 20; /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02/chaincode_example02" stdin_open: true tty: true @@ -68,18 +70,18 @@ nodesdk: - membersrvc - peer - ``` +``` 3. Start the fabric environment using docker-compose. From a terminal session where the working directory is where the *docker-compose.yml* from step 2 is located, execute one of following **docker-compose** commands. * to run as detached containers, then to see the logs for the **peer** container use the `docker logs peer` command - ``` +``` docker-compose up -d - ``` +``` * to run in the foreground and see the log output in the current terminal session - ``` +``` docker-compose up - ``` +``` This will start three docker containers, to view the container status try `docker ps` command. The first time this is run the **docker** images will be downloaded. This may take 10 minutes or more depending on the network connections of the system running the command. * Membership services --**membersrvc** @@ -88,58 +90,57 @@ nodesdk: 4. Start a terminal session in the **nodesdk** container. This is where the Node.js application is located. - **Note:** Be sure to wait 20 seconds after starting the network before executing. + **Note:** Be sure to wait 20 seconds after starting the network before executing. - ``` +``` docker exec -it nodesdk /bin/bash - ``` +``` 5. From the terminal session in the **nodesdk** container execute the standalone Node.js application. The docker terminal session should be in the working directory of the sample application called **app.js** (*/opt/gopath/src/github.com/hyperledger/fabric/examples/sdk/node/example02*). Execute the following Node.js command to run the application. - ``` +``` node app - ``` +``` On another terminal session on the host you can view the logs for the peer by executing the following command (not in the docker shell above, in a new terminal session of the real system) - ``` +``` docker logs peer - ``` - +``` + 6. This environment will have the reference documentation already built and may be access by: - ``` + +``` docker exec -it nodesdk /bin/bash cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc - ``` - +``` + 7. If you wish to run your own Node.js application - * use the directories in the `volumes` tag under **nodesdk** in the `docker-compose.yml` file as a place to store your programs from the host system into the docker container. The first path is the top level system (host system) and the second is created in the docker container. If you wish to use a host location that is not under the `/Users` directory (`~` is under `/Users') then you must add that to the **docker** file sharing under **docker** preferences. - ```yaml + * use the directories in the `volumes` tag under **nodesdk** in the `docker-compose.yml` file as a place to store your programs from the host system into the docker container. The first path is the top level system (host system) and the second is created in the docker container. If you wish to use a host location that is not under the `/Users` directory (`~` is under `/Users') then you must add that to the **docker** file sharing under **docker** preferences. + +```yaml volumes: - ~/mytest:/user/mytest - ``` +``` * copy or create and edit your application in the `~/mytest` directory as stated in the `docker-compose.yml` `volumes` tag under **nodesdk** container. * run npm to install Hyperledger Fabric Node.js SDK in the `mytest` directory - ``` - npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node - ``` +``` + npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node +``` * run the application from within the **nodesdk** docker container using the commands - ``` +``` docker exec -it nodesdk /bin/bash - ``` +``` once in the shell, and assuming your Node.js application is called `app.js` - ``` +``` cd /user/mytest node app - ``` - +``` 8. To shutdown the environment, execute the following **docker-compose** command in the directory where the *docker-compose.yml* is located. Any changes you made to the sample application or deployment of a chaincode will be lost. Only changes made to the shared area defined in the 'volumes' tag of the **nodesdk** container will persist. This will shutdown each of the containers and remove the containers from **docker**: - - ``` + +``` docker-compose down - ``` - +``` or if you wish to keep your changes and just stop the containers, which will be restarted on the next `up` command - - ``` + +``` docker-compose kill - ``` - +``` diff --git a/docs/nodeSDK/sample-standalone-app.md b/docs/nodeSDK/sample-standalone-app.md index 18e0d35f20a..4aa8f6681ec 100755 --- a/docs/nodeSDK/sample-standalone-app.md +++ b/docs/nodeSDK/sample-standalone-app.md @@ -4,38 +4,38 @@ This section describes how to run a sample standalone Node.js application which 1. If you haven't already done so, see [Setting Up The Application Development Environment](app-developer-env-setup.md) to get your environment set up. The remaining steps assume that you are running **inside the vagrant environment**. -2. Issue the following commands to build the Node.js Client SDK: +2. Issue the following commands to build the Node.js Client SDK: - ``` +``` cd /opt/gopath/src/github.com/hyperledger/fabric make node-sdk - ``` +``` 3. Start the membership services and peer processes. We run the peer in dev mode for simplicity. - ``` +``` cd /opt/gopath/src/github.com/hyperledger/fabric/build/bin membersrvc > membersrvc.log 2>&1& peer node start --peer-chaincodedev > peer.log 2>&1& - ``` +``` -4. Build and run chaincode example 2: +4. Build and run chaincode example 2: - ``` +``` cd /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 go build CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:30303 ./chaincode_example02 > log 2>&1& - ``` +``` 5. Put the following sample app in a file named **app.js** in the */tmp* directory. Take a moment (now or later) to read the comments and code to begin to learn the Node.js Client SDK APIs. You may retrieve the sample application file: - ``` +``` curl -o webapp.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/standalone-app.js - ``` +``` The sample app: - ```javascript +```javascript /* * A simple application utilizing the Node.js Client SDK to: * 1) Enroll a user @@ -121,14 +121,14 @@ This section describes how to run a sample standalone Node.js application which process.exit(1); }); } - ``` +``` 6. Run the application as follows: - ``` +``` cd /tmp node app - ``` +``` -7. Congratulations! You've successfully run your first Hyperledger fabric application. +7. Congratulations! You've successfully run your first Hyperledger fabric application. diff --git a/docs/nodeSDK/sample-web-app.md b/docs/nodeSDK/sample-web-app.md index a0b37344fe1..7da199dcb86 100755 --- a/docs/nodeSDK/sample-web-app.md +++ b/docs/nodeSDK/sample-web-app.md @@ -5,8 +5,9 @@ The following is a web application template. It is NOT a complete program. This template code demonstrates how to communicate with a blockchain from a Node.js web application. It does not show how to listen for incoming requests nor how to authenticate your web users as this is application specific. The code below is intended to demonstrate how to interact with a Hyperledger fabric blockchain from an existing web application. You may retrieve the sample application file: + ``` -curl -o app.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/web-app.js + curl -o app.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/web-app.js ``` See the embedded comments below. diff --git a/mkdocs.yml b/mkdocs.yml index b81da566fdc..bf2202a900a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -49,6 +49,15 @@ pages: - Attributes: tech/attributes.md - Best Practices: tech/best-practices.md +- NodeSDK: + - App-developer-env-setup: nodeSDK/app-developer-env-setup.md + - App-Overview: nodeSDK/app-overview.md + - Node-SDK-guide: nodeSDK/node-sdk-guide.md + - Node-SDK-indepth: nodeSDK/node-sdk-indepth.md + - Node-SDK-self-contained: nodeSDK/node-sdk-self-contained.md + - Sample-Standalone-app: nodeSDK/sample-standalone-app.md + - Sample-web-app: nodeSDK/sample-web-app.md + markdown_extensions: - extra - tables From ad7df18896d552e5dca3d7c4586941cf0c6fbcfc Mon Sep 17 00:00:00 2001 From: Satheesh Kathamuthu Date: Sat, 17 Sep 2016 22:30:50 +0530 Subject: [PATCH 06/27] .gitignore update for gradle build files Change-Id: I20963098689a7f90ce6ea9af8bad4f612dbda820 Signed-off-by: Satheesh Kathamuthu --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 23147526e14..7a9e3f87b43 100755 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,8 @@ go-carpet-coverage* # make node-sdk copied files sdk/node/lib/protos/* report.xml +.settings +.project +.gradle +build/ +bin/ From 026dbc4e09e8aa4d91c2791e7766701624ec8afe Mon Sep 17 00:00:00 2001 From: xiejunan Date: Sat, 17 Sep 2016 15:12:59 +0000 Subject: [PATCH 07/27] fix Makefile of sdk/node make clean' will output error due to trying to rm directory lib etc. Change-Id: If9b712c039409e14e4481b3d2832f658a5d63258 Signed-off-by: xiejunan --- sdk/node/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/node/Makefile b/sdk/node/Makefile index 4a5cecac0d3..7637d6912ab 100644 --- a/sdk/node/Makefile +++ b/sdk/node/Makefile @@ -79,4 +79,4 @@ clean: @echo "[CLEAN]" -rm -rf node_modules -rm -rf doc - -find lib | grep -v "protos/google" | grep -v "hash.js" | xargs rm + -find lib -type f | grep -v "protos/google" | grep -v "hash.js" | xargs rm From fb6f59ba9473f44da47ecc5b7afe83e91b42d433 Mon Sep 17 00:00:00 2001 From: Gregory Haskins Date: Mon, 19 Sep 2016 18:04:07 -0400 Subject: [PATCH 08/27] Remove defunct peer.Dockerfile from *test.yaml This doesn't seem to be used any more, and we want to prepare for cleaning up references to baseimage later in the series. Change-Id: If68586b8b30c2d81a27be37cfd7d002300403d79 Signed-off-by: Gregory Haskins --- core/chaincode/chaincodetest.yaml | 9 --------- core/ledger/genesis/genesis_test.yaml | 8 -------- 2 files changed, 17 deletions(-) diff --git a/core/chaincode/chaincodetest.yaml b/core/chaincode/chaincodetest.yaml index 63b7983de97..95c2a9eadde 100644 --- a/core/chaincode/chaincodetest.yaml +++ b/core/chaincode/chaincodetest.yaml @@ -165,15 +165,6 @@ peer: # networkId: test networkId: dev - Dockerfile: | - from hyperledger/fabric-baseimage:latest - # Copy GOPATH src and install Peer - COPY src $GOPATH/src - RUN mkdir -p /var/hyperledger/db - WORKDIR $GOPATH/src/github.com/hyperledger/fabric/peer/ - RUN CGO_CFLAGS=" " CGO_LDFLAGS="-lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy" go install && cp $GOPATH/src/github.com/hyperledger/fabric/peer/core.yaml $GOPATH/bin - - # The Address this Peer will listen on listenAddress: 0.0.0.0:21212 # The Address this Peer will bind to for providing services diff --git a/core/ledger/genesis/genesis_test.yaml b/core/ledger/genesis/genesis_test.yaml index 7a1010a7680..e87623e6bda 100644 --- a/core/ledger/genesis/genesis_test.yaml +++ b/core/ledger/genesis/genesis_test.yaml @@ -45,14 +45,6 @@ peer: # networkId: test networkId: dev - Dockerfile: | - from hyperledger/fabric-baseimage - # Copy GOPATH src and install Peer - COPY src $GOPATH/src - RUN mkdir -p /var/hyperledger/db - WORKDIR $GOPATH/src/github.com/hyperledger/fabric/peer/ - RUN CGO_CFLAGS=" " CGO_LDFLAGS="-lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy" go install && cp $GOPATH/src/github.com/hyperledger/fabric/peer/core.yaml $GOPATH/bin - # The Address this Peer will bind to for providing services address: 0.0.0.0:7051 # Whether the Peer should programmatically determine the address to bind to. This case is useful for docker containers. From 79b70e410c501549573d2aaa4290162fb9082049 Mon Sep 17 00:00:00 2001 From: Gregory Haskins Date: Wed, 14 Sep 2016 15:39:37 -0400 Subject: [PATCH 09/27] Use ccenv docker image rather than baseimage We want baseimage to only be used as a mechanism to assist the build, not referenced at runtime. Therefore, we convert most instances of "baseimage" to use "ccenv" (chaincode environment) since this is what they really want anyway. Note 1: A few instances (such as the UTXO example) did not have an obvious solution so I left those to be sorted out by the respective subsystem owners. Note 2: The GOLANG chaincode type is currently a little suboptimal in that the fabric-ccenv image loads the full fabric.git src at build time and then the runtime re-injects it. In the future the build will only inject the golang shim and the runtime will only inject the chaincode. For now, this is somewhat inefficient but ultimately still results in correct behavior. Change-Id: I7f025bfff147fcca0f29f1656c7f63adc7a17173 Signed-off-by: Greg Haskins --- core/chaincode/chaincodetest.yaml | 9 ++++----- core/ledger/genesis/genesis_test.yaml | 6 +++--- core/rest/rest_test.yaml | 9 ++++----- examples/chaincode/go/utxo/Dockerfile | 3 ++- membersrvc/Dockerfile | 9 --------- membersrvc/ca/ca_test.yaml | 6 +++--- peer/core.yaml | 9 ++++----- 7 files changed, 20 insertions(+), 31 deletions(-) delete mode 100644 membersrvc/Dockerfile diff --git a/core/chaincode/chaincodetest.yaml b/core/chaincode/chaincodetest.yaml index 95c2a9eadde..18e7483632e 100644 --- a/core/chaincode/chaincodetest.yaml +++ b/core/chaincode/chaincodetest.yaml @@ -354,17 +354,16 @@ chaincode: # This is the basis for the Golang Dockerfile. Additional commands will # be appended depedendent upon the chaincode specification. Dockerfile: | - from hyperledger/fabric-baseimage - #from utxo:0.1.0 - COPY src $GOPATH/src - WORKDIR $GOPATH + FROM hyperledger/fabric-ccenv:$(ARCH)-$(PROJECT_VERSION) + COPY src $GOPATH/src + WORKDIR $GOPATH car: # This is the basis for the CAR Dockerfile. Additional commands will # be appended depedendent upon the chaincode specification. Dockerfile: | - FROM hyperledger/fabric-baseimage + FROM hyperledger/fabric-ccenv:$(ARCH)-$(PROJECT_VERSION) # timeout in millisecs for starting up a container and waiting for Register # to come through. 1sec should be plenty for chaincode unit tests diff --git a/core/ledger/genesis/genesis_test.yaml b/core/ledger/genesis/genesis_test.yaml index e87623e6bda..b78bbcc77fd 100644 --- a/core/ledger/genesis/genesis_test.yaml +++ b/core/ledger/genesis/genesis_test.yaml @@ -178,9 +178,9 @@ chaincode: # This is the basis for the Golang Dockerfile. Additional commands will be appended depedendent upon the chaincode specification. Dockerfile: | - from hyperledger/fabric-baseimage - COPY src $GOPATH/src - WORKDIR $GOPATH + FROM hyperledger/fabric-ccenv:$(ARCH)-$(PROJECT_VERSION) + COPY src $GOPATH/src + WORKDIR $GOPATH #timeout for starting up a container and waiting for Register to come through startuptimeout: 20000 diff --git a/core/rest/rest_test.yaml b/core/rest/rest_test.yaml index 8393e7332ff..6746cc73c74 100644 --- a/core/rest/rest_test.yaml +++ b/core/rest/rest_test.yaml @@ -296,17 +296,16 @@ chaincode: # This is the basis for the Golang Dockerfile. Additional commands will # be appended depedendent upon the chaincode specification. Dockerfile: | - from hyperledger/fabric-baseimage - #from utxo:0.1.0 - COPY src $GOPATH/src - WORKDIR $GOPATH + FROM hyperledger/fabric-ccenv:$(ARCH)-$(PROJECT_VERSION) + COPY src $GOPATH/src + WORKDIR $GOPATH car: # This is the basis for the CAR Dockerfile. Additional commands will # be appended depedendent upon the chaincode specification. Dockerfile: | - FROM hyperledger/fabric-ccenv + FROM hyperledger/fabric-ccenv:$(ARCH)-$(PROJECT_VERSION) # timeout in millisecs for starting up a container and waiting for Register # to come through. 1sec should be plenty for chaincode unit tests diff --git a/examples/chaincode/go/utxo/Dockerfile b/examples/chaincode/go/utxo/Dockerfile index 927b746931c..807632d9c30 100644 --- a/examples/chaincode/go/utxo/Dockerfile +++ b/examples/chaincode/go/utxo/Dockerfile @@ -1,4 +1,5 @@ -from hyperledger/fabric-baseimage +# FIXME: someone from the UTXO team will need to verify or rework this +FROM ubuntu:latest RUN apt-get update && apt-get install pkg-config autoconf libtool -y RUN cd /tmp && git clone https://github.com/bitcoin/secp256k1.git && cd secp256k1/ diff --git a/membersrvc/Dockerfile b/membersrvc/Dockerfile deleted file mode 100644 index f19aab67568..00000000000 --- a/membersrvc/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -from hyperledger/fabric-baseimage:latest -# Copy GOPATH src and install Peer -RUN mkdir -p /var/hyperledger/db -WORKDIR $GOPATH/src/github.com/hyperledger/fabric/ -COPY . . -WORKDIR membersrvc -RUN pwd -RUN CGO_CFLAGS=" " CGO_LDFLAGS="-lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy" go install && cp $GOPATH/src/github.com/hyperledger/fabric/membersrvc/membersrvc.yaml $GOPATH/bin -# RUN CGO_CFLAGS=" " CGO_LDFLAGS="-lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy" go install diff --git a/membersrvc/ca/ca_test.yaml b/membersrvc/ca/ca_test.yaml index 2dcc8bb2637..3b3e68a7587 100644 --- a/membersrvc/ca/ca_test.yaml +++ b/membersrvc/ca/ca_test.yaml @@ -240,9 +240,9 @@ chaincode: # This is the basis for the Golang Dockerfile. Additional commands will be appended depedendent upon the chaincode specification. Dockerfile: | - from hyperledger/fabric-baseimage - COPY src $GOPATH/src - WORKDIR $GOPATH + FROM hyperledger/fabric-ccenv:$(ARCH)-$(PROJECT_VERSION) + COPY src $GOPATH/src + WORKDIR $GOPATH #timeout in millisecs for starting up a container and waiting for Register to come through. 1sec should be plenty for chaincode unit tests startuptimeout: 1000 diff --git a/peer/core.yaml b/peer/core.yaml index 034fd04f9b9..cfb071626dd 100644 --- a/peer/core.yaml +++ b/peer/core.yaml @@ -282,10 +282,9 @@ chaincode: # This is the basis for the Golang Dockerfile. Additional commands will # be appended depedendent upon the chaincode specification. Dockerfile: | - from hyperledger/fabric-baseimage - #from utxo:0.1.0 - COPY src $GOPATH/src - WORKDIR $GOPATH + FROM hyperledger/fabric-ccenv:$(ARCH)-$(PROJECT_VERSION) + COPY src $GOPATH/src + WORKDIR $GOPATH car: @@ -416,7 +415,7 @@ security: enabled: false # TCerts pool configuration. Multi-thread pool can also be configured - # by multichannel option switching concurrency in communication with TCA. + # by multichannel option switching concurrency in communication with TCA. multithreading: enabled: false multichannel: false From 5a75d781319df450979a37a76b88aa811669ec74 Mon Sep 17 00:00:00 2001 From: grapebaba <281165273@qq.com> Date: Mon, 12 Sep 2016 14:01:24 +0800 Subject: [PATCH 10/27] Node SDK make methods static Some methods in crypto.ts can be static. Change-Id: I65c2331296dbc6d2cd2ba2e26907a29d25df1154 Signed-off-by: grapebaba <281165273@qq.com> --- sdk/node/src/crypto.ts | 27 +++++++++++++-------------- sdk/node/src/hfc.ts | 8 ++++---- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/sdk/node/src/crypto.ts b/sdk/node/src/crypto.ts index 5b577d0d281..a905687d9a2 100644 --- a/sdk/node/src/crypto.ts +++ b/sdk/node/src/crypto.ts @@ -115,13 +115,13 @@ export class Crypto { * @params hashAlgorithm The hash algorithm ('SHA2' or 'SHA3') */ setHashAlgorithm(hashAlgorithm:string):void { - this.checkHashFunction(hashAlgorithm); + Crypto.checkHashFunction(hashAlgorithm); this.hashAlgorithm = hashAlgorithm; this.initialize(); } - generateNonce() { + static generateNonce() { return crypto.randomBytes(NonceSize); } @@ -305,11 +305,11 @@ export class Crypto { return decryptedBytes; } - aesKeyGen() { + static aesKeyGen() { return crypto.randomBytes(AESKeyLength); } - aesCFBDecryt(key, encryptedBytes) { + static aesCFBDecrypt(key, encryptedBytes) { var iv = crypto.randomBytes(IVLength); var aes = new aesjs.ModeOfOperation.cfb(key, iv, IVLength); @@ -336,13 +336,13 @@ export class Crypto { var decryptedBytes, unpaddedBytes; - decryptedBytes = this.CBCDecrypt(key, bytes); - unpaddedBytes = this.PKCS7UnPadding(decryptedBytes); + decryptedBytes = Crypto.CBCDecrypt(key, bytes); + unpaddedBytes = Crypto.PKCS7UnPadding(decryptedBytes); return unpaddedBytes; }; - aes256GCMDecrypt(key:Buffer, ct:Buffer) { + static aes256GCMDecrypt(key:Buffer, ct:Buffer) { let decipher = crypto.createDecipheriv('aes-256-gcm', key, ct.slice(0, GCMStandardNonceSize)); decipher.setAuthTag(ct.slice(ct.length - GCMTagSize)); let dec = decipher.update( @@ -361,7 +361,7 @@ export class Crypto { if (!info) info = ""; - var key = this.hkdf2(bytesToBits(new Buffer(ikm)), keyBitLength, bytesToBits(salt), info, this.hashFunctionKeyDerivation); + var key = Crypto.hkdf2(bytesToBits(new Buffer(ikm)), keyBitLength, bytesToBits(salt), info, this.hashFunctionKeyDerivation); return bitsToBytes(key); @@ -394,7 +394,7 @@ export class Crypto { throw new Error("Illegal level: " + this.securityLevel + " - must be either 256 or 384"); } - private checkHashFunction(hashAlgorithm: string) { + private static checkHashFunction(hashAlgorithm: string) { if (!_isString(hashAlgorithm)) throw new Error("Illegal Hash function family: " + hashAlgorithm + " - must be either SHA2 or SHA3"); @@ -405,7 +405,7 @@ export class Crypto { private initialize() { this.checkSecurityLevel(this.securityLevel); - this.checkHashFunction(this.hashAlgorithm); + Crypto.checkHashFunction(this.hashAlgorithm); this.suite = this.hashAlgorithm.toLowerCase() + '-' + this.securityLevel; if (this.securityLevel == CURVE_P_256_Size) { @@ -454,7 +454,7 @@ export class Crypto { * @param {Object} [Hash=sjcl.hash.sha256] The hash function to use. * @return {bitArray} derived key. */ - private hkdf2(ikm, keyBitLength, salt, info, Hash) { + private static hkdf2(ikm, keyBitLength, salt, info, Hash) { var hmac, key, i, hashLen, loops, curOut, ret = []; // Hash = Hash || sjcl.hash.sha256; @@ -496,7 +496,7 @@ export class Crypto { return sjcl.bitArray.clamp(ret, keyBitLength); } - private CBCDecrypt(key, bytes) { + private static CBCDecrypt(key, bytes) { debug('key length: ', key.length); debug('bytes length: ', bytes.length); var iv = bytes.slice(0, BlockSize); @@ -524,7 +524,6 @@ export class Crypto { start += BlockSize; end += BlockSize; } - ; decryptedBytes = Buffer.concat(decryptedBlocks); } @@ -539,7 +538,7 @@ export class Crypto { }; - private PKCS7UnPadding(bytes) { + private static PKCS7UnPadding(bytes) { //last byte is the number of padded bytes var padding = bytes.readUInt8(bytes.length - 1); diff --git a/sdk/node/src/hfc.ts b/sdk/node/src/hfc.ts index 00e1f97447e..85461b54cc9 100644 --- a/sdk/node/src/hfc.ts +++ b/sdk/node/src/hfc.ts @@ -1010,7 +1010,7 @@ export class Member { if (err) return cb(err); self.enrollment = enrollment; // Generate queryStateKey - self.enrollment.queryStateKey = self.chain.cryptoPrimitives.generateNonce(); + self.enrollment.queryStateKey = crypto.Crypto.generateNonce() // Save state self.saveState(function (err) { @@ -1208,7 +1208,7 @@ export class TransactionContext extends events.EventEmitter { this.chain = member.getChain(); this.memberServices = this.chain.getMemberServices(); this.tcert = tcert; - this.nonce = this.chain.cryptoPrimitives.generateNonce(); + this.nonce = crypto.Crypto.generateNonce(); this.complete = false; this.timeoutId = null; } @@ -1526,7 +1526,7 @@ export class TransactionContext extends events.EventEmitter { var stateKey; if (transaction.pb.getType() == _fabricProto.Transaction.Type.CHAINCODE_DEPLOY) { // The request is for a deploy - stateKey = new Buffer(self.chain.cryptoPrimitives.aesKeyGen()); + stateKey = new Buffer(crypto.Crypto.aesKeyGen()); } else if (transaction.pb.getType() == _fabricProto.Transaction.Type.CHAINCODE_INVOKE ) { // The request is for an execute // Empty state key @@ -1603,7 +1603,7 @@ export class TransactionContext extends events.EventEmitter { ); debug('Decrypt Result [%s]', ct.toString('hex')); - return this.chain.cryptoPrimitives.aes256GCMDecrypt(key, ct); + return crypto.Crypto.aes256GCMDecrypt(key, ct); } /** From bf1ed414a17f72700cd185eb918dc5ea65fad4b6 Mon Sep 17 00:00:00 2001 From: Gabor Hosszu Date: Wed, 14 Sep 2016 12:45:31 +0200 Subject: [PATCH 11/27] Update CLI related docs This commit updates CLI related docs adding both forms of chaincode operations (with or without Function). [ci skip] Change-Id: I85ecd24bf644e44c325557c77a88ff55aedc4b60 Signed-off-by: Gabor Hosszu --- docs/API/AttributesUsage.md | 21 +++++++++++++++++++++ docs/API/CoreAPI.md | 8 ++++++++ 2 files changed, 29 insertions(+) diff --git a/docs/API/AttributesUsage.md b/docs/API/AttributesUsage.md index fa3bd401dcc..b5774c618a8 100644 --- a/docs/API/AttributesUsage.md +++ b/docs/API/AttributesUsage.md @@ -93,6 +93,13 @@ To deploy a chaincode with attributes "company" and "position" it should be writ ``` +Or: + +``` +./peer chaincode deploy -u userName -n mycc -c '{"Args": ["init"]}' -a '["position", "company"]' + +``` + #### REST ``` @@ -145,6 +152,13 @@ To invoke "autorizable counter" with attributes "company" and "position" it shou ``` +Or: + +``` +./peer chaincode invoke -u userName -n mycc -c '{"Args": ["increment"]}' -a '["position", "company"]' + +``` + #### REST ``` @@ -202,6 +216,13 @@ To query "autorizable counter" with attributes "company" and "position" it shoul ``` +Or: + +``` +./peer chaincode query -u userName -n mycc -c '{"Args": ["read"]}' -a '["position", "company"]' + +``` + #### REST ``` diff --git a/docs/API/CoreAPI.md b/docs/API/CoreAPI.md index 5981096b057..200ae9f628e 100644 --- a/docs/API/CoreAPI.md +++ b/docs/API/CoreAPI.md @@ -70,12 +70,20 @@ Deploy creates the docker image for the chaincode and subsequently deploys the p `peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'` +Or: + +`peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args": ["init", "a","100", "b", "200"]}'` + The response to the chaincode deploy command will contain the chaincode identifier (hash) which will be required on subsequent `chaincode invoke` and `chaincode query` commands in order to identify the deployed chaincode. With security enabled, modify the command to include the -u parameter passing the username of a logged in user as follows: `peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'` +Or: + +`peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args": ["init", "a","100", "b", "200"]}'` + **Note:** If your GOPATH environment variable contains more than one element, the chaincode must be found in the first one or deployment will fail. ### Verify Results From ac8ab849ce302aecbcb0868e7933292f30be2255 Mon Sep 17 00:00:00 2001 From: Gregory Haskins Date: Tue, 13 Sep 2016 12:45:24 -0400 Subject: [PATCH 12/27] Switch to new baseimage-pipeline We now have baseimage in its own repository. We also bake a lot more of the image in during baseimage creation, so we can relax some of the logic here. Fixes FAB-284 Change-Id: I489004800635a126cff78dab79134fac9ae24722 Signed-off-by: Gregory Haskins --- .baseimage-release | 1 + Makefile | 40 +- devenv/Vagrantfile | 2 +- devenv/setup.sh | 19 - images/base/.gitignore | 1 - images/base/Dockerfile.in | 5 - images/base/Makefile | 50 - images/base/README.md | 53 - images/base/http/preseed.cfg | 34 - .../images/packer-overview.graffle/data.plist | 1383 ----------------- .../images/packer-overview.graffle/image2.png | Bin 5818 -> 0 bytes .../images/packer-overview.graffle/image3.png | Bin 6967 -> 0 bytes .../images/packer-overview.graffle/image4.png | Bin 13322 -> 0 bytes .../images/packer-overview.graffle/image5.png | Bin 4149 -> 0 bytes .../images/packer-overview.graffle/image6.png | Bin 9120 -> 0 bytes images/base/images/packer-overview.png | Bin 771664 -> 0 bytes images/base/packer.json | 105 -- images/base/release | 1 - .../common/golang_crossCompileSetup.sh | 28 - images/base/scripts/common/init.sh | 5 - images/base/scripts/common/setup.sh | 160 -- images/base/scripts/docker/init.sh | 4 - images/base/scripts/vagrant/cleanup.sh | 15 - images/base/scripts/vagrant/init.sh | 27 - images/base/scripts/vagrant/vagrant.sh | 13 - images/base/scripts/vagrant/virtualbox.sh | 5 - images/base/scripts/vagrant/zerodisk.sh | 10 - images/src/Dockerfile.in | 2 +- scripts/provision/common.sh | 8 - scripts/provision/docker.sh | 118 -- scripts/provision/host.sh | 58 - 31 files changed, 20 insertions(+), 2127 deletions(-) create mode 100644 .baseimage-release delete mode 100644 images/base/.gitignore delete mode 100644 images/base/Dockerfile.in delete mode 100644 images/base/Makefile delete mode 100644 images/base/README.md delete mode 100644 images/base/http/preseed.cfg delete mode 100644 images/base/images/packer-overview.graffle/data.plist delete mode 100644 images/base/images/packer-overview.graffle/image2.png delete mode 100644 images/base/images/packer-overview.graffle/image3.png delete mode 100644 images/base/images/packer-overview.graffle/image4.png delete mode 100644 images/base/images/packer-overview.graffle/image5.png delete mode 100644 images/base/images/packer-overview.graffle/image6.png delete mode 100644 images/base/images/packer-overview.png delete mode 100644 images/base/packer.json delete mode 100644 images/base/release delete mode 100755 images/base/scripts/common/golang_crossCompileSetup.sh delete mode 100755 images/base/scripts/common/init.sh delete mode 100755 images/base/scripts/common/setup.sh delete mode 100755 images/base/scripts/docker/init.sh delete mode 100644 images/base/scripts/vagrant/cleanup.sh delete mode 100755 images/base/scripts/vagrant/init.sh delete mode 100755 images/base/scripts/vagrant/vagrant.sh delete mode 100755 images/base/scripts/vagrant/virtualbox.sh delete mode 100644 images/base/scripts/vagrant/zerodisk.sh delete mode 100755 scripts/provision/common.sh delete mode 100755 scripts/provision/docker.sh delete mode 100755 scripts/provision/host.sh diff --git a/.baseimage-release b/.baseimage-release new file mode 100644 index 00000000000..6e8bf73aa55 --- /dev/null +++ b/.baseimage-release @@ -0,0 +1 @@ +0.1.0 diff --git a/Makefile b/Makefile index 905371a502d..5b4b8808d9e 100644 --- a/Makefile +++ b/Makefile @@ -47,13 +47,16 @@ else PROJECT_VERSION=$(BASE_VERSION) endif -DOCKER_TAG=$(shell uname -m)-$(PROJECT_VERSION) - PKGNAME = github.com/$(PROJECT_NAME) GO_LDFLAGS = -X github.com/hyperledger/fabric/metadata.Version=$(PROJECT_VERSION) CGO_FLAGS = CGO_CFLAGS=" " CGO_LDFLAGS="-lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy" UID = $(shell id -u) +ARCH=$(shell uname -m) CHAINTOOL_RELEASE=v0.9.0 +BASEIMAGE_RELEASE=$(shell cat ./.baseimage-release) + +DOCKER_TAG=$(ARCH)-$(PROJECT_VERSION) +BASE_DOCKER_TAG=$(ARCH)-$(BASEIMAGE_RELEASE) EXECUTABLES = go docker git curl K := $(foreach exec,$(EXECUTABLES),\ @@ -63,13 +66,9 @@ K := $(foreach exec,$(EXECUTABLES),\ SUBDIRS = gotools sdk/node SUBDIRS:=$(strip $(SUBDIRS)) -# Make our baseimage depend on any changes to images/base or scripts/provision -BASEIMAGE_RELEASE = $(shell cat ./images/base/release) -BASEIMAGE_DEPS = $(shell git ls-files images/base scripts/provision) - JAVASHIM_DEPS = $(shell git ls-files core/chaincode/shim/java) PROJECT_FILES = $(shell git ls-files) -IMAGES = base src ccenv peer membersrvc javaenv +IMAGES = src ccenv peer membersrvc javaenv all: peer membersrvc checks @@ -122,14 +121,14 @@ linter: gotools # we may later inject the binary into a different docker environment # This is necessary since we cannot guarantee that binaries built # on the host natively will be compatible with the docker env. -%/bin/protoc-gen-go: build/image/base/.dummy Makefile +%/bin/protoc-gen-go: Makefile @echo "Building $@" @mkdir -p $(@D) @docker run -i \ --user=$(UID) \ -v $(abspath vendor/github.com/golang/protobuf):/opt/gopath/src/github.com/golang/protobuf \ -v $(abspath $(@D)):/opt/gopath/bin \ - hyperledger/fabric-baseimage go install github.com/golang/protobuf/protoc-gen-go + hyperledger/fabric-baseimage:$(BASE_DOCKER_TAG) go install github.com/golang/protobuf/protoc-gen-go build/bin/chaintool: Makefile @echo "Installing chaintool" @@ -172,25 +171,19 @@ build/bin/block-listener: @echo "Binary available as $@" @touch $@ -build/bin/%: build/image/base/.dummy $(PROJECT_FILES) +build/bin/%: $(PROJECT_FILES) @mkdir -p $(@D) @echo "$@" $(CGO_FLAGS) GOBIN=$(abspath $(@D)) go install -ldflags "$(GO_LDFLAGS)" $(PKGNAME)/$(@F) @echo "Binary available as $@" @touch $@ -# Special override for base-image. -build/image/base/.dummy: $(BASEIMAGE_DEPS) - @echo "Building docker base-image" - @mkdir -p $(@D) - @./scripts/provision/docker.sh $(BASEIMAGE_RELEASE) - @touch $@ - # Special override for src-image -build/image/src/.dummy: build/image/base/.dummy $(PROJECT_FILES) +build/image/src/.dummy: $(PROJECT_FILES) @echo "Building docker src-image" @mkdir -p $(@D) @cat images/src/Dockerfile.in \ + | sed -e 's/_BASE_TAG_/$(BASE_DOCKER_TAG)/g' \ | sed -e 's/_TAG_/$(DOCKER_TAG)/g' \ > $(@D)/Dockerfile @git ls-files | tar -jcT - > $(@D)/gopath.tar.bz2 @@ -202,6 +195,7 @@ build/image/src/.dummy: build/image/base/.dummy $(PROJECT_FILES) build/image/ccenv/.dummy: build/image/src/.dummy build/image/ccenv/bin/protoc-gen-go build/image/ccenv/bin/chaintool Makefile @echo "Building docker ccenv-image" @cat images/ccenv/Dockerfile.in \ + | sed -e 's/_BASE_TAG_/$(BASE_DOCKER_TAG)/g' \ | sed -e 's/_TAG_/$(DOCKER_TAG)/g' \ > $(@D)/Dockerfile docker build -t $(PROJECT_NAME)-ccenv $(@D) @@ -216,7 +210,10 @@ build/image/ccenv/.dummy: build/image/src/.dummy build/image/ccenv/bin/protoc-ge build/image/javaenv/.dummy: Makefile $(JAVASHIM_DEPS) @echo "Building docker javaenv-image" @mkdir -p $(@D) - @cat images/javaenv/Dockerfile.in > $(@D)/Dockerfile + @cat images/javaenv/Dockerfile.in \ + | sed -e 's/_BASE_TAG_/$(BASE_DOCKER_TAG)/g' \ + | sed -e 's/_TAG_/$(DOCKER_TAG)/g' \ + > $(@D)/Dockerfile @git ls-files core/chaincode/shim/java | tar -jcT - > $(@D)/javashimsrc.tar.bz2 @git ls-files protos core/chaincode/shim/table.proto settings.gradle | tar -jcT - > $(@D)/protos.tar.bz2 docker build -t $(PROJECT_NAME)-javaenv $(@D) @@ -229,6 +226,7 @@ build/image/%/.dummy: build/image/src/.dummy build/docker/bin/% @echo "Building docker $(TARGET)-image" @mkdir -p $(@D)/bin @cat images/app/Dockerfile.in \ + | sed -e 's/_BASE_TAG_/$(BASE_DOCKER_TAG)/g' \ | sed -e 's/_TAG_/$(DOCKER_TAG)/g' \ > $(@D)/Dockerfile cp build/docker/bin/$(TARGET) $(@D)/bin @@ -240,10 +238,6 @@ build/image/%/.dummy: build/image/src/.dummy build/docker/bin/% protos: gotools ./devenv/compile_protos.sh -base-image-clean: - -docker rmi -f $(PROJECT_NAME)-baseimage - -@rm -rf build/image/base ||: - src-image-clean: ccenv-image-clean peer-image-clean membersrvc-image-clean %-image-clean: diff --git a/devenv/Vagrantfile b/devenv/Vagrantfile index 8d9d6999daf..54af341894a 100644 --- a/devenv/Vagrantfile +++ b/devenv/Vagrantfile @@ -27,7 +27,7 @@ cd #{SRCMOUNT}/devenv SCRIPT -baseimage_release = File.read '../images/base/release' +baseimage_release = File.read '../.baseimage-release' Vagrant.require_version ">= 1.7.4" Vagrant.configure('2') do |config| diff --git a/devenv/setup.sh b/devenv/setup.sh index 08dac37e90c..42e7b3b5330 100755 --- a/devenv/setup.sh +++ b/devenv/setup.sh @@ -40,19 +40,6 @@ DEVENV_REVISION=`(cd /hyperledger/devenv; git rev-parse --short HEAD)` SCRIPT_DIR="$(readlink -f "$(dirname "$0")")" cat "$SCRIPT_DIR/failure-motd.in" >> /etc/motd -# Update system -apt-get update -qq - -# Prep apt-get for docker install -apt-get install -y apt-transport-https ca-certificates -apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D - -# Add docker repository -echo deb https://apt.dockerproject.org/repo ubuntu-trusty main > /etc/apt/sources.list.d/docker.list - -# Update system -apt-get update -qq - # Storage backend logic case "${DOCKER_STORAGE_BACKEND}" in aufs|AUFS|"") @@ -72,9 +59,6 @@ case "${DOCKER_STORAGE_BACKEND}" in exit 1;; esac -# Install docker -apt-get install -y linux-image-extra-$(uname -r) apparmor docker-engine - # Configure docker DOCKER_OPTS="-s=${DOCKER_STORAGE_BACKEND_STRING} -r=true --api-cors-header='*' -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ${DOCKER_OPTS}" sed -i.bak '/^DOCKER_OPTS=/{h;s|=.*|=\"'"${DOCKER_OPTS}"'\"|};${x;/^$/{s||DOCKER_OPTS=\"'"${DOCKER_OPTS}"'\"|;H};x}' /etc/default/docker @@ -85,9 +69,6 @@ usermod -a -G docker vagrant # Add vagrant user to the docker group # Test docker docker run --rm busybox echo All good -# Run our common setup -/hyperledger/scripts/provision/host.sh - # Set Go environment variables needed by other scripts export GOPATH="/opt/gopath" export GOROOT="/opt/go/" diff --git a/images/base/.gitignore b/images/base/.gitignore deleted file mode 100644 index 94143827ed0..00000000000 --- a/images/base/.gitignore +++ /dev/null @@ -1 +0,0 @@ -Dockerfile diff --git a/images/base/Dockerfile.in b/images/base/Dockerfile.in deleted file mode 100644 index 3babb952831..00000000000 --- a/images/base/Dockerfile.in +++ /dev/null @@ -1,5 +0,0 @@ -FROM _DOCKER_BASE_ -COPY scripts /hyperledger/baseimage/scripts -RUN /hyperledger/baseimage/scripts/common/init.sh -RUN /hyperledger/baseimage/scripts/docker/init.sh -RUN /hyperledger/baseimage/scripts/common/setup.sh diff --git a/images/base/Makefile b/images/base/Makefile deleted file mode 100644 index be148e69668..00000000000 --- a/images/base/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -NAME=hyperledger/fabric-baseimage -VERSION=$(shell cat ./release) -ARCH=$(shell uname -m) -DOCKER_TAG ?= $(ARCH)-$(VERSION) -VAGRANTIMAGE=packer_virtualbox-iso_virtualbox.box - -DOCKER_BASE_x86_64=ubuntu:trusty -DOCKER_BASE_s390x=s390x/ubuntu:xenial -DOCKER_BASE_ppc64le=ppc64le/ubuntu:xenial - -DOCKER_BASE=$(DOCKER_BASE_$(ARCH)) - -ifeq ($(DOCKER_BASE), ) -$(error "Architecture \"$(ARCH)\" is unsupported") -endif - - -# strips off the post-processors that try to upload artifacts to the cloud -packer-local.json: packer.json - jq 'del(."post-processors"[0][1]) | del(."post-processors"[1][1])' packer.json > $@ - -all: vagrant docker - -$(VAGRANTIMAGE): packer-local.json - BASEIMAGE_RELEASE=$(VERSION) \ - packer build -only virtualbox-iso packer-local.json - -Dockerfile: Dockerfile.in Makefile - @echo "# Generated from Dockerfile.in. DO NOT EDIT!" > $@ - @cat Dockerfile.in | \ - sed -e "s|_DOCKER_BASE_|$(DOCKER_BASE)|" >> $@ - -docker: Dockerfile release - @echo "Generating docker" - @docker build -t $(NAME):$(DOCKER_TAG) . - -vagrant: $(VAGRANTIMAGE) remove release - vagrant box add -name $(NAME) $(VAGRANTIMAGE) - -push: - @echo "You will need your ATLAS_TOKEN set for this to succeed" - packer push -name $(NAME) packer.json - -remove: - -vagrant box remove --box-version 0 $(NAME) - -clean: remove - -rm $(VAGRANTIMAGE) - -rm Dockerfile - -rm packer-local.json diff --git a/images/base/README.md b/images/base/README.md deleted file mode 100644 index 6073455aca5..00000000000 --- a/images/base/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Baseimage Introduction -This directory contains the infrastructure for creating a new baseimage used as the basis for various functions within the Hyperledger workflow such as our Vagrant based development environment, chaincode compilation/execution, unit-testing, and even cluster simulation. It is based on ubuntu-14.04 with various opensource projects added such as golang, rocksdb, grpc, and node.js. The actual Hyperledger code is injected just-in-time before deployment. The resulting images are published to public repositories such as [atlas.hashicorp.com](https://atlas.hashicorp.com/hyperledger/boxes/fabric-baseimage) for consumption by Vagrant/developers and [hub.docker.com](https://hub.docker.com/r/hyperledger/fabric-baseimage/) for consumption by docker-based workflows. - -![Baseimage Architectural Overview](./images/packer-overview.png) - -The purpose of this baseimage is to act as a bridge between a raw ubuntu/trusty64 configuration and the customizations required for supporting a hyperledger environment. Some of the FOSS components that need to be added to Ubuntu do not have convenient native packages. Therefore, they are built from source. However, the build process is generally expensive (often taking in excess of 30 minutes) so it is fairly inefficient to JIT assemble these components on demand. - -Therefore, the expensive FOSS components are built into this baseimage once and subsequently cached on the public repositories so that workflows may simply consume the objects without requiring a local build cycle. - -# Intended Audience -This is only intended for release managers curating the base images on atlas and docker-hub. Typical developers may safely ignore this directory completely. - -Anyone wishing to customize their image is encouraged to do so via downstream means, such as the vagrant infrastructure in the root directory of this project or the Dockerfile. - -## Exceptions - -If a component is found to be both broadly applicable and expensive to build JIT, it may be a candidate for inclusion in a future baseimage. - -# Usage - -## Usage Pattern 1 - Local baseimage builds for testing a proposed change - -* "make vagrant" will build just the vagrant image and install it into the local environment as "hyperledger/fabric-baseimage:v0", making it suitable to local testing. - * To utilize the new base image in your local tests, run `vagrant destroy` then `USE_LOCAL_BASEIMAGE=true vagrant up`, also preface `vagrant ssh` as `USE_LOCAL_BASEIMAGE=true vagrant ssh` or simply export that variable, or Vagrant will fail to find the ssh key. -* "make docker" will build just the docker image and commit it to your local environment as "hyperledger/fabric-baseimage" - -## Usage Pattern 2 - Release manager promoting a new base image to the public repositories - -- Step 1: Decide on the version number to be used and update the packer.json template variables:release -- Step 2: Initiate a build - -Note: You will need credentials to the public repositories, as discussed in Uploading Permissions below. If you do not have these credentials, you are probably not an image release manager. Otherwise, discuss it on the Hyperledger slack to see if you should be added. - -### Hosted Build Method - -"make push" will push the build configuration to atlas for cloud-hosted building of the images. You only need to have the ATLAS_TOKEN defined for this to succeed, as the atlas build server will push the artifacts out to the respective hosts once the build completes. Therefore, the repository credentials are already cached on the build server and you only need credentials for the build-server itself. You can check the status of the build [here](https://atlas.hashicorp.com/hyperledger/build-configurations/baseimage/) - -### Local Build Method - -"make [all]" will generate both a vagrant and docker image and push them out to the cloud. This method requires both ATLAS and DOCKERHUB credentials since the artifacts are pushed directly to the hosting providers from your build machine. - -## Uploading Permissions - -The system relies on several environment variables to establish credentials with the hosting repositories: - -* ATLAS_TOKEN - used to push both vagrant images and packer templates to atlas.hashicorp.com -* DOCKERHUB_[EMAIL|USERNAME|PASSWORD] - used to push docker images to hub.docker.com - -Note that if you only plan on pushing the build to the atlas packer build service, you only need the ATLAS_TOKEN set as the dockerhub interaction will occur from the atlas side of the process where the docker credentials are presumably already configured. - -## Versioning - -Vagrant boxes are only versioned when they are submitted to a repository. Vagrant does not support applying a version to a vagrant box via the `vagrant box add` command. Adding the box gives it an implicit version of 0. Setting `USE_LOCAL_BASEIMAGE=true` in the `vagrant up` command causes the Vagrant file in the the parent directory to pick version 0, instead of the default. diff --git a/images/base/http/preseed.cfg b/images/base/http/preseed.cfg deleted file mode 100644 index d3619ce76f7..00000000000 --- a/images/base/http/preseed.cfg +++ /dev/null @@ -1,34 +0,0 @@ -debconf debconf/frontend select Noninteractive -choose-mirror-bin mirror/http/proxy string -d-i clock-setup/utc boolean true -d-i clock-setup/utc-auto boolean true -d-i finish-install/reboot_in_progress note -d-i grub-installer/only_debian boolean true -d-i grub-installer/with_other_os boolean true -d-i partman-auto/choose_recipe select atomic -d-i partman-auto/method string regular -d-i partman/choose_partition select finish -d-i partman/confirm boolean true -d-i partman/confirm_nooverwrite boolean true -d-i partman/confirm_write_new_label boolean true - -# Set the kernel -d-i base-installer/kernel/override-image string linux-virtual - -# Default user -d-i passwd/user-fullname string vagrant -d-i passwd/username string vagrant -d-i passwd/user-password password vagrant -d-i passwd/user-password-again password vagrant -d-i passwd/username string vagrant - -# Minimum packages (see postinstall.sh) -d-i pkgsel/include string openssh-server -d-i pkgsel/install-language-support boolean false -d-i pkgsel/update-policy select none -d-i pkgsel/upgrade select none - -d-i time/zone string UTC -d-i user-setup/allow-password-weak boolean true -d-i user-setup/encrypt-home boolean false -tasksel tasksel/first multiselect standard, server diff --git a/images/base/images/packer-overview.graffle/data.plist b/images/base/images/packer-overview.graffle/data.plist deleted file mode 100644 index c6fc4f1b778..00000000000 --- a/images/base/images/packer-overview.graffle/data.plist +++ /dev/null @@ -1,1383 +0,0 @@ - - - - - ActiveLayerIndex - 0 - ApplicationVersion - - com.omnigroup.OmniGraffle - 139.18.0.187838 - - AutoAdjust - - BackgroundGraphic - - Bounds - {{0, 0}, {575.99998474121094, 1466}} - Class - SolidGraphic - ID - 2 - Style - - shadow - - Draws - NO - - stroke - - Draws - NO - - - - BaseZoom - 0 - CanvasOrigin - {0, 0} - ColumnAlign - 1 - ColumnSpacing - 36 - CreationDate - 2016-02-22 22:11:37 +0000 - Creator - Greg Haskins - DisplayScale - 1 0/72 in = 1.0000 in - GraphDocumentVersion - 8 - GraphicsList - - - Class - LineGraphic - Head - - ID - 22 - - ID - 60 - Points - - {310.14783447722266, 96.412900484504561} - {373.3780487804878, 189} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 4 - - - - Class - LineGraphic - Head - - ID - 57 - - ID - 59 - OrthogonalBarAutomatic - - OrthogonalBarPoint - {0, 0} - OrthogonalBarPosition - 76.855720520019531 - Points - - {245.3613785038917, 96.388558716933716} - {108, 266} - {181, 753} - {314.5000004554858, 752.81861412981596} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - LineType - 2 - TailArrow - 0 - Width - 2 - - - Tail - - ID - 4 - - - - Class - LineGraphic - Head - - ID - 57 - - ID - 58 - Points - - {364.99937473792534, 505.12549205971999} - {364.99580448417515, 724.24999998950307} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 54 - - - - Bounds - {{315, 724.75}, {100, 56}} - Class - ShapedGraphic - ID - 57 - Shape - FlattenedRectangle - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 custom environment} - VerticalPad - 0 - - TextRelativeArea - {{0.10000000000000001, 0}, {0.80000000000000004, 1}} - - - Class - LineGraphic - Head - - ID - 30 - - ID - 56 - Points - - {388.73435760680411, 486.3256814805485} - {439.2620074228966, 528} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 54 - - - - Class - LineGraphic - Head - - ID - 40 - - ID - 55 - Points - - {342.97352711499752, 487.69524871963358} - {300.58818602417603, 528} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 54 - - - - Bounds - {{317.5, 428.875}, {95, 75.75}} - Class - ShapedGraphic - ID - 54 - Shape - Diamond - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 hyperledger fabric} - VerticalPad - 0 - - - - Class - LineGraphic - Head - - ID - 49 - - ID - 53 - Points - - {464.62462462462463, 569.5} - {464.82882888295114, 603.50000901136877} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 30 - - - - Bounds - {{433, 622}, {100, 56}} - Class - ShapedGraphic - ID - 51 - Shape - FlattenedRectangle - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 docker environment} - VerticalPad - 0 - - TextRelativeArea - {{0.10000000000000001, 0}, {0.80000000000000004, 1}} - - - Bounds - {{424, 613}, {100, 56}} - Class - ShapedGraphic - ID - 50 - Shape - FlattenedRectangle - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 docker environment} - VerticalPad - 0 - - TextRelativeArea - {{0.10000000000000001, 0}, {0.80000000000000004, 1}} - - - Bounds - {{415, 604}, {100, 56}} - Class - ShapedGraphic - ID - 49 - Shape - FlattenedRectangle - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 docker environment} - VerticalPad - 0 - - TextRelativeArea - {{0.10000000000000001, 0}, {0.80000000000000004, 1}} - - - Class - LineGraphic - Head - - ID - 30 - - ID - 48 - Points - - {508.88537781669504, 503.46248035776267} - {484.83665338645471, 528} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 46 - - - - Class - LineGraphic - Head - - ID - 30 - - ID - 47 - Points - - {466.75138277659562, 426.49991523085737} - {464.88213627992633, 528} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 35 - - - - Bounds - {{495, 467.375}, {62, 37.25}} - Class - ShapedGraphic - ID - 46 - Shape - Hexagon - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 Dockerfile} - VerticalPad - 0 - - TextRelativeArea - {{0, 0.10000000000000001}, {1, 0.80000000000000004}} - - - Bounds - {{486, 458.375}, {62, 37.25}} - Class - ShapedGraphic - ID - 45 - Shape - Hexagon - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 Dockerfile} - VerticalPad - 0 - - TextRelativeArea - {{0, 0.10000000000000001}, {1, 0.80000000000000004}} - - - Bounds - {{477, 449.375}, {62, 37.25}} - Class - ShapedGraphic - ID - 44 - Shape - Hexagon - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 Dockerfile} - VerticalPad - 0 - - TextRelativeArea - {{0, 0.10000000000000001}, {1, 0.80000000000000004}} - - - Class - LineGraphic - Head - - ID - 24 - - ID - 43 - Points - - {277.52222222222446, 574} - {279.23335524784636, 612.50049307640984} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 40 - - - - Bounds - {{230.5, 613}, {100, 56}} - Class - ShapedGraphic - ID - 24 - Shape - FlattenedRectangle - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 development environment} - VerticalPad - 0 - - TextRelativeArea - {{0.10000000000000001, 0}, {0.80000000000000004, 1}} - - - Class - LineGraphic - Head - - ID - 40 - - ID - 41 - Points - - {276.50000301611595, 426.5} - {276.50000301611595, 528} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 33 - - - - Bounds - {{202, 528}, {149, 46}} - Class - ShapedGraphic - ID - 40 - ImageID - 6 - Shape - Rectangle - Style - - fill - - Draws - NO - - shadow - - Draws - NO - - stroke - - Draws - NO - - - - - Bounds - {{436, 326.75}, {62, 46}} - Class - ShapedGraphic - ID - 38 - ImageID - 5 - Shape - Rectangle - Style - - fill - - Draws - NO - - shadow - - Draws - NO - - stroke - - Draws - NO - - - - - Class - LineGraphic - Head - - ID - 35 - - ID - 37 - Points - - {467.00000967504548, 372.75} - {467.00000967504548, 399.5} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 38 - - - - Class - LineGraphic - Head - - ID - 33 - - ID - 36 - Points - - {276.49991756300551, 370.5} - {276.49980234985657, 399.5} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 28 - - - - Bounds - {{411, 400}, {112, 26}} - Class - ShapedGraphic - ID - 35 - Shape - Rectangle - Style - - stroke - - CornerRadius - 9 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 docker:hyperledger/fabric-baseimage} - - - - Bounds - {{220.5, 400}, {112, 26}} - Class - ShapedGraphic - ID - 33 - Shape - Rectangle - Style - - stroke - - CornerRadius - 9 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 vagrant:hyperledger/fabric-baseimage} - - - - Class - LineGraphic - Head - - ID - 38 - - ID - 32 - Points - - {408.21374764707127, 245} - {454.09227872378818, 326.75} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 22 - - - - Class - LineGraphic - Head - - ID - 28 - - ID - 31 - Points - - {368.03295668549907, 245} - {294.63182674199624, 329} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 22 - - - - Bounds - {{390, 528}, {149, 41.5}} - Class - ShapedGraphic - ID - 30 - ImageID - 4 - Shape - Rectangle - Style - - fill - - Draws - NO - - shadow - - Draws - NO - - stroke - - Draws - NO - - - - - Bounds - {{199, 329}, {155, 41.5}} - Class - ShapedGraphic - ID - 28 - ImageID - 3 - Shape - Rectangle - Style - - fill - - Draws - NO - - shadow - - Draws - NO - - stroke - - Draws - NO - - - - - Class - LineGraphic - Head - - ID - 22 - - ID - 26 - Points - - {435.32867419331808, 159.90087452433639} - {413.63683982367951, 189} - - Style - - stroke - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 20 - - - - Bounds - {{390, 103.5}, {133, 56}} - Class - ShapedGraphic - ID - 20 - Shape - Hexagon - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 hyperledger/\ -fabric-baseimage} - VerticalPad - 0 - - TextRelativeArea - {{0, 0.10000000000000001}, {1, 0.80000000000000004}} - - - Bounds - {{331, 189}, {123, 56}} - Class - ShapedGraphic - ID - 22 - ImageID - 2 - Shape - Rectangle - Style - - fill - - Draws - NO - - shadow - - Draws - NO - - stroke - - Draws - NO - - - - - Bounds - {{342, 18}, {73, 59}} - Class - ShapedGraphic - ID - 10 - Shape - Diamond - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 ubuntu} - VerticalPad - 0 - - - - Bounds - {{264, 18}, {73, 59}} - Class - ShapedGraphic - ID - 9 - Shape - Diamond - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 nodejs} - VerticalPad - 0 - - - - Bounds - {{186, 18}, {73, 59}} - Class - ShapedGraphic - ID - 8 - Shape - Diamond - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 grpc} - VerticalPad - 0 - - - - Bounds - {{108, 18}, {73, 59}} - Class - ShapedGraphic - ID - 7 - Shape - Diamond - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 golang} - VerticalPad - 0 - - - - Bounds - {{30, 18}, {73, 59}} - Class - ShapedGraphic - ID - 6 - Shape - Diamond - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs22 \cf0 rocksdb} - VerticalPad - 0 - - - - Bounds - {{12, 10}, {537, 86}} - Class - ShapedGraphic - ID - 4 - Shape - Rectangle - Style - - fill - - Draws - NO - - stroke - - CornerRadius - 9 - Pattern - 1 - - - Text - - Align - 2 - Text - {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf460 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr - -\f0\fs22 \cf0 Upstream FOSS} - - - - GridInfo - - GuidesLocked - NO - GuidesVisible - YES - HPages - 1 - ImageCounter - 7 - ImageLinkBack - - - - - - - - ImageList - - image6.png - image5.png - image4.png - image3.png - image2.png - - KeepToScale - - Layers - - - Lock - NO - Name - Layer 1 - Print - YES - View - YES - - - LayoutInfo - - Animate - NO - circoMinDist - 18 - circoSeparation - 0.0 - layoutEngine - dot - neatoSeparation - 0.0 - twopiSeparation - 0.0 - - LinksVisible - NO - MagnetsVisible - NO - MasterSheets - - ModificationDate - 2016-04-08 16:20:56 +0000 - Modifier - Greg Haskins - NotesVisible - NO - Orientation - 2 - OriginVisible - NO - PageBreaks - YES - PrintInfo - - NSBottomMargin - - float - 41 - - NSHorizonalPagination - - coded - BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG - - NSLeftMargin - - float - 18 - - NSPaperSize - - size - {611.99998474121094, 792} - - NSPrintReverseOrientation - - int - 0 - - NSRightMargin - - float - 18 - - NSTopMargin - - float - 18 - - - PrintOnePage - - ReadOnly - NO - RowAlign - 1 - RowSpacing - 36 - SheetTitle - Canvas 1 - SmartAlignmentGuidesActive - YES - SmartDistanceGuidesActive - YES - UniqueID - 1 - UseEntirePage - - VPages - 2 - WindowInfo - - CurrentSheet - 0 - ExpandedCanvases - - - name - Canvas 1 - - - Frame - {{69, 50}, {1406, 1115}} - ListView - - OutlineWidth - 142 - RightSidebar - - ShowRuler - - Sidebar - - SidebarWidth - 120 - VisibleRegion - {{-340, 0}, {1257, 960}} - Zoom - 1 - ZoomValues - - - Canvas 1 - 1 - 1 - - - - - diff --git a/images/base/images/packer-overview.graffle/image2.png b/images/base/images/packer-overview.graffle/image2.png deleted file mode 100644 index 7e5bdd51c015c45761f879d6da2d20ca276bdc78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5818 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 diff --git a/images/base/images/packer-overview.graffle/image3.png b/images/base/images/packer-overview.graffle/image3.png deleted file mode 100644 index 437a535b657a811535d0996cb49c0051b7eee23d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6967 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 U>z9JrKSKjqNhOJLF{6P00kqHoGXMYp diff --git a/images/base/images/packer-overview.graffle/image4.png b/images/base/images/packer-overview.graffle/image4.png deleted file mode 100644 index 045093e2b587d54a5823bf93873c62a04f9075de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13322 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

AWH`%Xrw)L#mJJsn$(# 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 G;Qs+j{C3d* diff --git a/images/base/images/packer-overview.graffle/image5.png b/images/base/images/packer-overview.graffle/image5.png deleted file mode 100644 index 0a367e5d9dce66f3deb108a4e83cfbf1bb9b5713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4149 zcmZWrcT^L|*9}rcM7rR{(1J860YrKWy#^$J6e*z^APFW^X`vUX0t(Wb^d{1~bPxmq z={11#B8nmiKiu7KchC9eoSAv^-n;kBeSgfE2tAnE4GJIy006k5p{}fdxyxNnL2|Oo z)rF~e5dfg5Kq@KeX(%bN>0vSUNM}0$Ks_Sq#Z?2i39xtHdo%jQh}nit91IXJaxIIE z**Ta*oky4?FtRY5GN#>_h8Ak45LRqOYO6>4z&Qv{dP?$#!MIx`o;1m~ozC6;!(PU( zg@*m};fwk2E&B_ndy@WuzPf2e1O@+9g<>`(hLvq-Y-CI};SPZ84W6TVCpg3te0CM!DUvFnNrD#*-T0~v13wRode3M~QSU?a zPCM9KQbvqv85GQv_qse|orC;#?=N^pSKDe-!n$oWeZGwJ%anHS!?6(F9k+|m*t30g z9oi4RN=!)Gj6R6%)8W2X6Py)Pac|hr8Y7^ihI<5uWbWhZnKrOShxZ`dv;`54A4cVo zX;b_7+}w|h&pAe=L@DotlvnFY{t3ZEKSuXERXTyBmD(w$+7l6vOY4s{7U|vW&n7yu zk;!jV2Z75Zp{pF}HjY1iP@vcru-grGI3F zf$j&&q}J4cGb>zL*D-a*2YP;U)+N$rC>wSZDp5&R+fHF@-&HY`EI5U$aY+x)>>JE# z;^5}W7^ZXKXB;ULDBB@Qmh-QkJw0D|-w>F1aAZ2o4rq>-4O&^hAIb+%i(@wG8ge3I z1;jy*D+ypV{(-cKkuh;fHZXT8nLz;K2yst4sAz~qf|yIcOrHD-f(=+o0%|8NQXu(+ zcdq)j9g@0&8sg2hl4|Jg+%~33l z6SD=RKtItCV?&y=6?jM@L#?xw)d3ON&X2Dfkl$2V)4ORv%^WtYz?4;@C-2G%3{=hb z7-70ant%Y7Uc3G7I)ZG6>S{aUfI@;67F4|?<0<`!>|v+c66236KFqDeT1yWPBq*}f zc{mfP20+~kUO9n!!i6M>?JWZWxss zZUngzy#aQWY^0hG+*4gtq|WXgSrlf7BI}_f1S1eRLJ`ULlYO*#Uz6d0xNEqp_X1Pe zt*bPRIZBB?QQwZ%c~{=ch@iGgtxBKr+YxdHg>@FKymt|-X9L}S88Fzp+sWLK-g{$7 z)g|-bPP5noa6c%vjJQq^dYXzl)t%zd_&IKFYr4c+NgxU*lkT z;?Q$}Bw1c>_;C#gI;=Mgj}fSQP_DQaHJ3G4FJri%DW@)H*s9(NJug1HPMQ{&9awke zA-nE!+&h&J#NEhZwQqUYLbJlKqL+mnqWnYQJvp4C6i78>%UfX;QWdjq^6r|*n~@GT zIW>7Wl{jDMM}DNrr`PmIYUOdd+r-z)hk>K@S@g~ebIRWtL_FlxLmD;Yeo;v(-zs}m z+Nf1y_^k?PI%I$a}1pOD-l-Qpf+ecTRw4P*yy-={*(jog|X|M+!+ z!EtY_x$wkPOXFElQl4Rs8_dZdwRpF9Xi{)guHx78a&?b_f|0?E`LDvvH<;y_t6)j6 zis8KScyv9w99_L3hEzSI^{A&Gj&xwfxi8}EPm6KV$OS#$ch`eQ^ zPNPmH)w`kjgBy zZHYHos#mDYdfJgCIXyQoGuAxn)2G-E9sy70Osotk{t6Mk?jf*a@?-wvut@ip$~7fE zQa=BZM$zHOGH6hLv{_zNF5jd%=Q=lqoi8#A*=6-VHji?F8NY?57Vuyc_ zzXw2)O*Bhp37Lh=;;Hl%Zl3Z#-0O~gaf_dpA9>>nv@~lT8XFWHI2Pz{9%&A2ervs1 zO;ZxL6PKaqxKTV3IuaoiTgi-|?u_p2UN)zFLp#W^#UZEqRE1GZGlx+X72e2F#yAv< ze%8^g+%?`61v#>)b(rqMHm#iu?w1RhR=IaiBsucIjWWzRn<87bZ27swL~7ZO`J}_m zhgf25x_4u56FjlUSc@kqb98%;o3(tNoE?$83|~jJBENYSHmZRmJ+?w#4YgxiRMglOlBz-#cIQ3G8~k@{;uGl>c!)k_<_J z46x2^HP?Jm`x<-3>RmVOJX^QxO;opJnr(+bE>D7CqcxeOes@oij^6K%7nqNwsrI_| z7NS5vO0-o4Lvov-ce{l$qz62?%g2I02JzLWi4=>wG-XzwKC zP|G*kR0lCsX9_LL6U-}bTF7o~h2|pEIOcfJAlWx(>WdF5a#1?#I)+1}}-Ta#2Qzt(aS3;J{4b7<`s^-n}EpMB?>$m6gz4R5d+EFGk z*=tx(;!rMJUSm<$wt(&2>)Bk~@spl+TAam>E!&%A+E{vDulYuwRJYTg z>6{)v_d^$3#Or&z=t|lE!tZtvR^nOCf&B(d9k66B07!fcC=ADN4ZQzJNWt67{-O-H=&ELU z%0=_}W3Ve!8{jNWB#}XkXa6|JW-62uB246L!-2X8|4MRud-_qHQP- zSOiKn?CRAO=FJ0aAJz<`AD#Zh{n2K50=l8NJ zP?}xstojg^?AAx*(q1p*OGp+qxd$}2iEGSn`%{t#mIeIrUs6s=q$Uut?9G7+9 zV5k$H&7-R_McL!#1nwX4;F;)dnw(X#w~} zvOfn)kDj*WRTFcG7hn0YA`LegL0M`Z<)epRMAqN~8cWQ}_Kr91j|>)2Cw4Re2?M>5 zla+!L;lK&uR=-mXri!on);3z2k@`jzJdk{|NshoAZ{5(ZV;H0(&BoOD#*z|yNt>T^ z?$Oj5bEf8(dmWUbpIp9w8j%D>=u~E+WRvhr>!0C6MVe5e$DG|Nyskoj41PMhz}hDw zx(5?ey4|$kvO50ZWAQ6NQnLeFQUVp{h>B#nBz&r-COvIA3M3IV9f1g-Y%MerD{vrO zNf)@(uuB#i@Qyz00k%Gz`x=h(S!cA%t22N=YdhS1UDcw*Xo710s7k}Jv}F2$m535c zRpe<}-y6w~ zUp~x=I3H>AJ7_@{pBs*9JH|;|cA7nD&ghtj_RT>07w$3vYT(m+JmkV+7FQ8o<$A-| z%uSt0*BGzJ*xmas;TvLWr?sMyb#^~Huc%%E&PEEFkDta5x-IS&6fr$eWQ|@AsL8iK zgCP%!Gg|%Btn=`>MiAeNq@08Op4TuX>R6GW^$wVE9{C#$yjs77W>ii-p0E}_mG>Z& ziow@oL;vO8IuD<~OwH)C(J^tWCR>xuhmKY*vmzEUStQ>?vrXC#oy*)2lD7E|H^uSp zbd$~coJ%gBW9dH>vdMdKuaiC%R-=My&!S*EJJ6X4c80@=g=wu#9&`2Q5;-Kf< zhhVb3#h_Tsmapscl?6+mz!<9NMyll95n30nyxcOAQ}>1S$n9J?!tq*d$h5`u*v%!H z(0WX1$%OosSDbRMM}8=KJ^HwHE?uUkaNouBb<`IRvnH~+LcrRMN%iWT;d7gn8pCMs zmB|dE&q=m~N4zBt95mCir0sUP{F5id&ptPj+I`RFVByi!NUBanMeS_NIMGt%!KfBrUGZXz&tE~nuOHC#{}ApJ%T_OT>&KU=o{ER zS?C+sCi%g#+}Zl0QBVz-v6znLKhzrIZC91(d>!vLn+VzEDR#vqzEJ~ z_*R*<_Xdr8;7KE^w{s^lVb8SgRiUs@%GWNBisrlEg66tU(Ub zFXMx0a|~5Dv9&Zd@{<%-Ej-&6sc&yEvrSaKTZ~dTE*T;?vZ~;?W}7sAem3w%VX=;u zE|V;{LuOJ$EWF#+RgYG^#mU?TcHmk?*SSIC95aSubhrl&hH??EOoR)+%Tdr(fW>#- zWSUssd%`Jh9-Fw`px#$}Qu0Te{T}X$&f?8ZZJa%lX&R{n!k>J?t29+7u#!5`{T_`R zGkR}uvnF1#8c=T_w~5m@Oo10`l zGv+2|__1i{-ln5y`Vmbc^>$P$jX5fT}UMm;JmMOHR(=(MD?p< zgxwqh3Pk6PcLE4{;;794_JE@t+*JfzKVYP<2+OtpjH!wCT5?zIwI(iQ$T);Jr%X-EiJHt`Cf9Y6m;^ZiN>+|e z{sR+=a*Tu81wF?Qz*h;V+YojW(nrzmk=-ErgXl@wfuy*heJ+5JBlnIW5oeg958|HZ zuf|mjOhjwI|KQ6k{UJY1?WCA$mMsx@O?FKhC9N^#R1aPzJqf{)b)1ClNA1%&fxqLd z`Jc-Cl)%j$nEc5_7>Ux4wH*kB=5dCl@}+tzF?~aEBy&V}MCI}S+GSj$p!232X&#q6 zO8H0S01*_|D7_|g(fgRwg(9S6yYC@IoObANz&`F9S^+$PT51qHc2LX4)liN~F>czlsWF@8vWmu;;0X zT$E~)@|5yarHgZtk1i;r7i9|3lo6EqECOQ!t*!~rv`u*qN(|9W(kYvb9 zaT6dh139iDZrlJYCMHWIi(FW!UCpq=5ZSPO z9bWZw}vx%6yR~l2ynfl7WYQr>Y6=TkWYN&dGGJ&8Z$C6;Wdw0I(%!HLg&K@e#hCP+#E@^h zIovoH+J9XoIQ`tF=xP6W1xyLt3M39=4{LoT>u%GgzHZg=wlm`eG{jNDePH6C<^aFc zR4`R=WESNET}ML1V_EkND;mC>9D3(|<^1$c-ceyC0mO)bH&-Bez%sqU{W)~1g%(8g zLPIs|G*&+NSkGuYHq>xwg=}S8&STI7U%O(>F8?&2zu-9UYIbC5J5IH{(UEKUrk=~j zWP!0=**#sx!PD^&^oswj?K9f~cay+vPx2t!iF=wm*u6*W&+}v|M*_z%_3B|;!=>!+ zm`7@lrX}l@rV|f@rVYJZGbn6xflg(rA-mk0`2l9>@#AKl@ru5D1` zX|Hv0e%jaiQDL6}nSuJIeA%&Kwz1xU!@kO`s(`h+9G?B$k@?V(d^LQg>88nhwy@X< ze;GhpMM6UTiki;M$AZby`8fJ=XP9LBL9qeqd_a4gJ1RMWBTI357j&WM6{V*P9c$7P zuP9(IsBB%&?dTBChswTLeP=@`U1JWg&<>x|Hf(<;q$guj z+o#~=!kPYzbXWJl@#NPvNBJkG$ot5fcKsWNouu=*oukLjp%?fI`8I#iv+1+D39F^` zPR0JoY-`?a>6w+-qW3--E|m{=oFLa-%|^mu(f5hS36W29ox<7rSFdjyj?;&lZq5*X zQY#m#D5EdY-9)~I&|<5|0X7WS0EwRg#i6#0!=v}xUwzF*p0NC0dh4jZFyj514s;S% z0$2+n2xKAo(oT=i=yB!+aUocnyn(-j{sxjCE$J6%^`<4ND7VXc(vAatZ38qk5-Kz_ zep<#FQv)W!Tt_2Ck~kN8CgE5pZ_Z2Oi2f}65eh3qN-$5)yaNCbGGLlIPCCj;f+n_b zcBrYXu^GD?-0tty761@-6Z|W}&77b#Zg6WGM?p6cx_==A|H}WUIp}Eq1#z+xq0>=T zqmi_AFr(pP=Vj-l6UCsRp%Hd4H5XKulKDUS-<1g6XD25+K@JXAS66md9(G#?3l1(Y z7|g-R&B4vh_7}nC=x*Z#bz`$}eDl9f{+}NyGe;8#n4J^M)`sREzffaaXD1Olx_<)w zyZ!Gz&D>!BiDcvWe`){Imc6%IANJ^)Kz;YKdY9bNsvVq8R2VP*nhc z7$`3#uIYwwq7SpyUvL(!JL~znsq#KgEk&#vG%F)5xWIc{+7*&tvl*JQHA=}R$|(@uZra^6{B#Y8 z$sirKlM9P4Iixh+Yj;2EXw7(7t6P_q#Gw~Fp!gFGHhK(SSx8?1=LqB=y+{2~yWxw| zYsQ8BH4kdmRcCr=v;%Mr-z@>CMYnHRuIV6Zpw9 zxwjvt!TXmOA%lYG!xF|%`e?wsS0`V~L0qKH&IW_|A5Yqt@qP;Ouqw|-);Ev23t@Ln ze#^+&4)M+T9xao9n6ZGS;{TaTDz=Ua@jVhXf_B)JZvOB7<62mdhVVSOZJE|#i1*Vy zSZ!`HO^$3QTa+|qU?sEGqfjG*NI?`~qkLF&)|$^hbR&!*o||xN2oF+Q*Oxb}b;Q_x zbEhUHu^H<01BF?n(g_<+9DZxK5aM)9`gEWOem0?w1%+Zv;Ms(&hpL}tuG;8RVBXeLFITjF!s7CJ8H1T z53lPq*0$1Kv2FwinI;+&Q$4q+MInvc-C3ipqrhBdV9>hT2IcSns1}S#@j#!6fm}IH zV;t}j$PdS{;2+=??o1ja9+Lt|k1Hi*J<|Wx(TbB>Bs6BKv=B3TX{zVy9KgDc|y|mN$P(Dq~ zFK!tYZ%q0|ica&oUob#mEXhwI>~XJm>6DsSOh88Ju?5A-Mz>a12W`M zE%J)#&T285QkiH-;4vO)p11jZlzAO#3n#ikx0OvGx{%!`YreWz^H;c=J8=BQI z(Hk{KCgTY|ZPN~!8S~K03P62%vAWG4op>?lDhx6`JdZrp?ipXX2X2BWiM`Q4JY-ym zJ4{?9KY`6I)B-@-75_8BcH&GM7!E61=sD?57Gp{|`l2tS7!qCxQz%S@p_i#Ccki}Y zVIQ~~uhNJl)a^F>a%)2jb1CMae;+P}CvGln!d`45x>+xThvEPT3^dCcHIMky&bQSl zj+i&;kCG!&PMyMrN+cY!h7hv4a7={cI6|mQ(~q8TfOX7QYz=U@zZ^AktiJ1ymjR11 z+8LU&Ph?P>X2w- zBXeOY@jV7Q7oHvg({>b18?C{ixZDikS>t$|iQ~|KuzF7*jXJuIYk=%cLkoS{@bFPP zzWc7HralPRcfzhI{Wj2fi(JkE#Y{0@mkQQ2h*W_C22&&mYVShrrUNb_d(}xxBuC@6 zi=`3=d(KzE!M;6tM1fk#J(OYJ2y;Gj|FQom^WnW8S~FMZ{Y?IQuo#tw*M_606k^(% z7VLH<2O1lcX4p=eNF7tiAZ}X~*vz^FFPaPN@^UVUbXM-2Ay7@Q1;eB~i0TcZw+>kE zze+G6(Gkkbbxu2w;ey4kHyW_q<%2@HI{bP$3Dhib~p9mu5}b5yaVcS(eI?XmXO zM4brz1|HImYs==C9#D;qA{9r8QvaUbLBLu2P;yd(D6qYIkxc0@Ith7y9)pNtNLY~f z#okiW`*PoMDP+UEFmi&#_xvPfoSEriMph`1zw(1Lo;T|4mjHC7a_MK|1?HuhXb6mS zYqibQUOh{Q``xGL{*5Ve=^oa%>|v@=WAs&GUcW|r>z=9GyxvFS^k2d>=SOk_f*8-6 zhXT5uFk(E9#s!yvW4zSYK?IlEw+}m$NyUrUy6(^9YYt+8a!mG{UT8D>6YFg>Ort9% zCscP=1{Ie0M9J6;+?U6G-tH$7I)-kg8mBO)VQGP{KiykogL~?505vK>L(*lVHwPtk zM$<3PVJhy$6~dj1TC|oJE9@TY08Lw%Jqw@@PoME3y$r@oKvX2es1>5U^yQGTBNe{c z>%;ju@gxdd;)>U-d$-$_h&36}{iKSAAxNw=lt9T23(5kCQwqTiHOEhtV}kR0O>JH~rKtPeXmdt(>a`QNEp?d!pD1Ds-6@q2@MbEuK%Hsvi{XKI z|E>~eQK}=l`Yxs0NchM;eRj6g@p%xB##R$)-{xgl&tBJwaOjc^&h(_!FdYPE#Xb(< z*e1|b5Z~a};mZm3wV9vX!TEY$PFgu7OFNH}=}Mxp?I$z|^|YN5X9Rboy`i@O_`nT~ z+8+r&&$}JSyaHVWXmO45o*it{XSq4PL%0!g#FpDJy1&dS68ekjk7n#xh#jYFPtqqg zcGlGh6n)<0ynmQ<<5beTqq4GofNxVtc8C6MbWnqL^! z0z^XELcb4BnaRzeNu5)%>MaLG(5i$Yg&OVns)xwNjIka~y`1RN{2@0!JntH8~@9430!$;^RVg+jv~GIna%Rg-No_FhaVqs;A0&;Zp`# zK%EBT==(k06ZOLH4G(kCeVxySLX6&^NyNh;fzILkepZy`Iv1<$hVYh7i}}Udjl3{fhL57hw6SjPe&2 zVh+ufmrc`-(p_xSoaF!un#yZPQAKB67;QROmHiLm7%|FDNmh%WWDxPU>~HM@tP`L> z0nfz`nsUESs}PHY@W13#$mFfbeo)nBD>ouSaRkHPb z{r(8D=~S_T=lGkFe}wkf!_+!5m&AW_rVRSpbA18bmU7QeX7#Q6?_oj-8eR8-d=%zr zMOM{xT1suY-YXo))93(HH%dtzGrzvF;3Fl z6$`0o_Q-0s3SzE2xa32Mi@YaeJT2rHFnW}vOBAOvG5eiUhEGWuGr}gblXR7+z3bAd zQSw3=8@zt`qe*X0`c~)>=XLB0!&aDP8E#KmVTdBrG}^-jyBvXnM^q|4IKa0aJAv#6 z$w3t2E6ZYh-vr&Xy3q^>0UM*#747UVAG+C1DU$HR4xQKJn&okZEV{$Z+sL!j-4_cR zH7}>_QPYQ+Eci?pH;-k2%L|OAQulbE?Pl#c8Wa#N9K{Zn*A|0(^<^SZc*#IW z^`NlDc??3I@cocdVhCbl_(nw&i>cF8xSRqv0GZi3?cK9`_J9QU8{X{;lte*}zPgq8 z1k^O8>IjVN=0-<3z(bI#wrEk*fSN29;A)pt_OW|h3ziD{CXxFmanI7&?s^4lkGH#+Rq@6ea+5; zYko%rxN}hJlHCW}8do7)xQ+4cz@~K<%b3HJmR1`=ii2qCy?vU)^vSsVXRIak-d4hQ z7rXssxiXk-=X8X7g$E)Ha<*f}?r|a+A2aS8$Y(|1?4?ZpY@yW@9|}-m{87cxy1^G+ zUW3t`ss_!z0_$?|Syu(eAqtP}%28WvVWgJAQ-}J4aerW_i<%IRdp`>hpZtWI{yK!f zclvPQtW*OgRw25aq&Wfv%{i2*xAzU^&M(Kf3u2>B1R|Q0T}@?Pv%5FXaM<2NmOUX4 zi*E(4(R^p8;dXY!)xt!TmciE@GIc^ptkKbI`zqj20XlFh+O6qNb!t|>l+vhZTYQ!L z^u$#@T|Vpf80!2rf|1NmKn^<&H9ZdYwQs<=E*CvMIJzI^_M<9`GC(R)j-}DPN?f2+ zP2xIeE0zi$7DD-_y<*G`@7QwlGv!7eRPglnlcMo47Z?Y^(iCjCDRFGIhfEVDKc+27)nLgh?tmqYx{z?<5q}UiATj1{rcL<5aJI*rR6~3(co9e`QRjXa0~X!dmDypB$K?|NsoFuYFspCqDj3@Z`&0-u(4rZfcgjGYp#1twh<{wTKG)v1R-HdBQ zjj-{&e~o#GT9uh1=2fTtyc30aIm#k($vkU7aA(p1`uHyCbA*G13OKLlH`c6}hD*II zX~jk|mmuGneyS#y*xuksp`k8y`>zIoCENUpxLjYykmnb5xN+A_yF)HLNBG2cX0BYEMHu3M2hE|F^{l^BD*5dBpE z+JTw`ksvb`#Y}T2rub3&U?=y0e%QO$;I9Se)eGVjO<5N%L^&LCjOXQG+0fX$+VnK}m|(6ES14d}Yf0YEwx2fx+A=nZ=&xTu_#l<=O@kyc=hJOr;xBJ^uTs zKu@G;IgS+DKTX_LfrTIIlOSLHFQ>F!$ZnzNM{{utP0Xq;MnNHj-YF}s%j%8ya!98n zqTnq2kO{O8eh#sSf3!4PFzR#@Bj{%8JR@&B{65DXm+flQQ z4AkVjDaNN1J+xs|6)3U&CnS4SZsc+wqhOO+${$2qrBqTfbJF9-z-Rc`_l4HK)6?XL zX3H|)zF7aulx9n8yyk#q6R4IQXep}HGl}>U>y@?V*zkf@nyCn=>(I%=-e{<8Poj}a z=aJp`qmyBC6tf?3#q7gdfU#l)_4u$t*jC|Vi5=b_-VKpm^Q9GYNuoZQsEDh3%=Ebl zTPV&d9*yNANmpaxZ7kALA94PoKADEOQC+7@h99WylNmua6H{wiZLLM2^8Ed^U2uQX z%7vSxpIop5(jmCb@Q!RLbHSb^hM_N5^jsYCVcy6+0;3UcB_A+6v(D zG1|XSy&QFmw+Z`bD^{#($51YT)`({RIJQ#TlHu99${cNHXCo<+b$sn)da4}v8>X1_ z)A`DOpP4?0KpDy(xAa9L37mse!)^Oph(8WV5YLvb?)n?EBLvmhY<=I=h7Q$@|C}{^)5e_}*Q{By$@0fj=hv*+a0k3Sy8c_RC8z!2R`AbS)Oq;HHAPgF z3Gl~;n?E|C)~wOqEBSwI*fUrN*rD_K1;-#qtFuP#{=V8*uKK%qXovaU1beSpV-jWr z-uik3UD*}p>*I$q3NzjFWe+3pUb0zd&#o`K1bLh8akM(O%iKTEW7l!*W7@iVpc{AX z+GP@W^_tQ7Q>Xtt9Q|dqn5Rk;7n*!zi?0 z(3P;meyF{FoaC?bobo`q2VTD!blu-?m*l)x-28)sO!w@Oe9_L;{1N3Z zTS1ti8%=cneq_*%uSSjxtXX5W#`4sO3t?-g24vHJxQJezeaDdsa9X<$A@$R?M3d9m zr?Z)}cMJA3%1E#EPahAr*svV7`}Br`(kH)HJAOm@&b`au-BU8VwZ&rVHlk)d`APKY zty?TyPi%X@e!C*1zat8#+b<57ns&B#4lu&AKAW;kbFD98@+VuSTCVKhr!T$5Y|YyL zy!VAW-z>z4g4Z~+;N4h3Z>eu{|-Rxlv?#qw$gVZoJokV?G_}; zUrHe;1phnu5<`+I*ctz}i&>jGx?yttuIM#VU;C1*RhRwhLv1J?^3{i|-}P}HI7s{Z z@4xm-zZ7-aAAR(zl4?xPmOQu2 zZ)KaWjX3R~Uo6q|ahWq$3;o5?;}@v8TGqhVa<=95-<1q`L)pgP?jX_*w3)a|E=I6P zCu2?1+;OsswcOWHpY-sUD_z0!mzFN-BZ!#iYL8^64uIsDWfISDT>L(5tibS{p?jk#$Rv?kL>3+$`5-P;M#qJ1swT5De@CL+;X`73j9-COCqt`ysbTZLg$ z*|YtKj`CLp*SJQqAp3t8O3`sP39{8LFEII$kd3{~NmI93h&=h8Z6W-{{42|eaUI?F zkCOy1JMWE*2`dlN_^>nKXR|?8-8Ne!7>kQN)U@f78b5yQjlbepyGFvvHU3Un5&9Bh;QX_2BJF@$z9yYGAT(@T8PTTC;v0S6&VCimyId|4 z*JU>vUmExuc6w5sGEHY-c-SUZrN|}EM#3RZhjB&c8_X5P!po}3?o%0Q5erTgey*P= zkrhjGI?m;XOsB5Mor!zrQ^CMSEKk@(_3G(uI!ZNHoBO47EY*4QYj0k+0}>NlHC^6! zx0hi&v1Ek1QgMX~H&Nr~6#g#ua-PAqIL%;72^$7+(`oN~F>rH+U)4k-4m+R2gT^ZRy}2?%HRif} zfV}4kXi?bqYI?9zS*>{5pE#uw1PfY?Piohqh`q=T{Wys1Aa3#K@4~k7A@Pv-JuFQU zj!~L40oF^C=ED1K(bOYX-m^A>y@a+4WSW3K)Xz7%E9OJ^IS8I2|F#f>Xpt4)e+z_e zZ`A&!<$N(oat;twM(p2PMQvE*(uyJ%uFAkU`_~4KtO&W}0KwdtvikDJSU*WD4AjDg zVw7P^zsvd6%)FH~(8tbNdAml_lk1P~M_2mz{?x+qzVtkBmOACq(ax&%^6oG`Hbo{fr;jWf% zyM5iZn}%I{Z69$__Fa$*q4`Nbnrq05c@wpn=yfeZm19o!9zy~14ed|9oeUiareDNv z?#C_Of^#T%88Dt64SgAAGuS0m+Fmd`VhJ*EXw;u0jsRN{eTKY!00Q!kc5Cl{iR6sR z=l5XfefIqQ0Zo0{^ALn3>)0|A38IMXZUhH-^Km>PQ{6=R>Gd*{7ArjMktmyNj2j1b~Bb5`qcZJ5$uJ3+% zWj1mpuy_YA+$X`;!($<|k566|2Z?4Wxpvl&ePT{1Io|wubCZ}JC3Y~H%*(mto8eDF z-w<6Z>~QqyYC2r{%B>-;3$n>5b@4@@GE=3z+b#Z}&2Ny@#(D9Mt23?oeF?$<9R)CD z>i-{`b7C$WOS{M|D}OSZ@is2x`dAkcNuU~zBrs!FI!64er&AHaUi$OS0*BmZXVS`- z$D+PHPia9FQWH;-7rWEuMmLla67=xGE3vBO&jY$s+zscmRZ8fxs(mgY^B*b)mkKXW zED)nG;q>ak6z$544eF;ckZvZ_W$Y$ z^v-neCN^}Ef+PvxSP-d!JSO5t^DJ%gK0 z+D=Rs5UpX$ZMgI93+$T3R$~LKmUB4UneiAQ8dhRinX;?Y6Ojw=#a@~LuwL9o?tdG7 z|97zUHOPnEUvt@;q8fS@z!RcsWtlzDadc%=17=BBna^#v)X3~`k)2~jt*|V~KflYM z1iKb%Iy}^2D^aptjAN2F!$dRQbFX`UusL+Cws?F()HrK@n5hRxAJQ3~)0+#o9mJ@( z6NuP_f)}&=g!Tp{`5_+KknVEXnxy!}id}(=(X72C2 zNCY=RDrkE}U4Emfa|S^={%zm`nU0aSMUF}4jWx|lleu%aDACA#c}4BvOw3|W06l5$ z*L`O`X;)AEnkAm{%ykVNIBp6aB*zQq9&$|K!g6hkxL5Y>4|l$f2DZF3yXbv*Ua4o^ zxt=utOy`+SwnSo<)MaPC8T{G11-Kh4p2?Y29KbE)+f zj>Rgt9XxI0d_t23{^m)erJ>trRy#(@`~3PuiI<6C4O*W<`h4j;e`>0#vjD3zbFy!w z_`uid1@lVdWr&f*K7ShmxYPD15hdzrymnRIO&X!T<&u26?Q(D++noRee z>H1!Y_Hm(NzxLE8@UXK`)j7TNLgzFDz~X1GsYYiyi>#txi>};ohhA@D?XQTT$awcL zUtXb7ZMQ|GAn8oh*NH)wAIqFBCS`k_6<`0bH_0&jX66Syib^tq_n2OqUQ5nVo~xSE zQ)(WJbvz@9)MRw0PSgk1PJqxp~K8D!N%$nUmM zyry+;o$NV-NLBy+fbI`pM+J2kq{LlrqtlF~MuShrgR@Cp{+s*U;tzk?m*(=T+TyF& zV5jSh$km#nOgHV+>TiFrRf>6Qaiw`OFeEu#E#Qj%Az`>1)dS8K%*4X*aoc`Yy;-+* z;{9IS+2%BzQ2MnNKG#d-#6DOSa>)dC%lzoqUR9eE!c*_P#lymeneD}{l^QU?hwIb5 zWfT14Z8VS?wIw|naV7wj09fkPPtY=;s|jk3vy_* z8*6*)^dVMo1!OtBh!M$aohTz>d{JZ15g&7KP$S>ht@@m<jh>2CQQnEZ>5TP>MEn|P2)7dLJ7YW|)=A3c4r`Q~jmyYvT2ykulVDZAC&-+x}g(sT?Vc7fJN>*0a zt0oBJr}JM`{(`D>`wKG{`fp{*;>p>o9R?hEIyOv&)o;L2Zx;8uBb!DPFWYuYiNtR8 zyTQC0pg=6rI=8X)7{u0*D&$MK^NVLP`H8F{=&VX6s)e8XwQ}vbS~Jq~cfp09Z#uyf zy^ZjpgcAMfToO8hShaYifB@zV6Kx~<)v$2@gu?fr7FVBw5Oi-7Y7q-H4d_RfqIi14 zXQpi3)GLfxwiQiN*s|<(YumYAl2XKz+ z0Pb2x5aVlg`ubDh3p7*_rMx6i#7msaIn05jO{@@?6>7&PCzReq5UIuS%MI>IWlD*b zo4>New~u*~noU2xxmQR19s8&XFQk)K-04ucy%uT9Fg)E8V1iJ|eMuB>$ z?AGSqfdvz4ZmTd{z0=(q?F)cp#09q)weEv(EXapD0JXQxSWZb)r)+nCz*t5EZ^hHe zH*1q`CSB~8#o6-Ng+f73alRvqUC67vIHpc{AzbJZi?Tfw$EuM212ke>#1=~4|0}lz zxcX!J4;D4Jhqd0$NxB$fvS6Db4F3*ZR){1+Rnemlt`AfNPdvH3`6rvOxAK=p&}75Y zCaDyD7(|Z3nP1)M=3FK7ghOO2>qGYN&vhj#OcuZ~9?U zP4QH5T%h0Hucb;4Wxp%oxczc`m&FL6ZuA~Q0!7Scz%m0GceKhQirp-#=0BZjm+*#3 zE~b{iZdH97wOkfkqyX1?l^>wf#f%*?xHGoL$&?gStWpi(=IN*Ks`vqb0uoA%#X2nmWI{R6!&fBa$ zOfp^Uz6QfhV_f{Fw`^2HzBsWQ>v}-@R^6`_hK==VZ{=QU?@Gm-Xo7Il`JKdmVXHrO z#MNk7X<8mcD;+o1RcEd+KirsRphF2)85E|JQAiKJO4$J5+ay!7Ij08h8Q+yyU$(c1 zg6H4NnDj%|hL>ez%sx%F{z*dSAA9g^pLsE^<<1bg8N#2h#kngC(cq~={0OfBHRPI2 ziahnzB}%*U;LP11K(C*hZ-)G!8b1D8Yfj2ENXGo2OshcywVVPJ;S|xr#ShgI``91K zAQ*im4LKu)Fh4@@&f-D?OkM^ztRACg<*XCv^ixB&rwGOrN+>t3u}1 z`B$q`p0G3gYKHi6FjqdOxpgx?=~TW4!{bUpft{rEPDl}7GM+#1 z-SQ`vcrM)J>|iQ=pyCiWWY5<<^Jp{YI`31xk2vRDa9f3xNIs%r$278>&|BVnqoDL! z>*IM6zm|Bs?t=yapJX_EF9{hwsuu|@<^+02pWY4gL*Ot6aQ4v*g%Bc99f4v6kENgn z+tA$HCBRA!y8^{YFXaoZUYzzCw>=P!4iECzzpfrN?!d2{O6PKGvJF@+4nf+B@zY-& z$T*qds`wh0(paHF*`~+w-p+HFj>Wk&a?Rdazk#Zt#U4)s)F9o~GKCjTS;Mz?Q|CH# z;QGB}maML9Vw_NGtg*p5cW|Ht(Wr*;;|0FGq%aK~?XTGDbbj{a%Mwg~(SUp9)i>9w z@)%DbIOh(A?^h>TnWirE=>7n)1qs(T7YV&P$#L$me;5H&q^zvvj$HjH!GpeqzPF2m z5!`DRDTj6*1yzr`X6l%`dQ*;Ky1?Q}`1+AldMDFG&D~jL1Q6}S&Z3kQ)kMreY-Ny7 z8qc+9jzce~%`4Q*EoNr$XYa31I9bPaS9DJ^?Yo%Jx?SQQyRFyN(7tQDoz!9xM-r1hVg^f=4Gc* z+#i-HfhmpM%4)YSx5=WhEhxKU%~GUl2jdaGx3g|%O_T(L4X(TRR9$NQp;WV;$Y&$` z8_M&dboq5D*L|C)w+Y|^lYgkg8(N0Oqb%0M*vjf^Bwb1eO8MnqrPJj#Cj0`5{<6#KeAbU5bC?dU zizv@&R=MG6TW$5%4yH-Y9o!hX$jjj!Ich1|WYL^GPrxEDE-5^JN~5sOKV*mEyM`3D zSzZ2+t@?twZtfcuoAyeRd>dP9fvol$v){^0SrFRw6rtj9b32jPSB8Tc(R-VWd1-dyQNF0XNof*$d+iRf*2EAw~K34mTB z+4VHTek6BmB*`~>VBE5fNL^fC?`fLa+?a%MgDmPa7uc-etNlR*LJ5Z9K8M>Px#p)p z24`vwRayue0(%ULZ4OaZJkSdtSi1Z~f#c#E4olBPXOfM%C%KbI8IuYxvZJ=L#^U|4 zZt@`_RG`8n>8UrX(Zwcr*%p{uxvhXNrxT-D+oqM8Jx1!G#VW$Iu}%%byM6-z2qRSl z%FWt5BLB;X;VI7aXN%n`eem5HsqU*KHOr%@bYWxUp$Hc~Z+nr_!UFUkc#7#!yoc17 z^oDn;J{u-#93EXk4^DfuiEE>#_z!bU_Nhip6&H3$#Kdb57%r00J=pu`q_6a~5L-vG z@le|DVmH&&fugW>D}!f}k*?P%QjE~EE%%>FCZ8%kti!_a!l#fO`d->e<~w2zN{h4& zwu% z6#sZf1%QEV9qO@r8>F$^(VkI*D21Wi9&CjCT?NH7D14-4EtD1HB&jyfx-`ud+t@;| zzAyDkO^3JQ#>ba=gjJIPKu#y1{7M@*LXkjFHp!wi^~EpFlIq(wwv1-$!hXTd1iDqQ z^cL+h`b?>c4lY}(pIR9V95V&7p#PZLs(p!VIyZh&>418UgR8HF5KTb%a_kgh2Z&yW z0$=a`g}ly!c5Vf`@at??(qzQMv$W^8Hyh>cQ0Jvnp2}gy%`Mw9a4*J7`rPKz#mnGe z_sTCr;+|BNCtm9@yhDS_T0sZF;AKZOm_Gp?^rT2Cfb$7*M5AlLIsmbL*Q@PPE%)Pp zYth?ccKN&nEyk<^vi?DfjiX4S{clgWi8oxLa2;dW?hVj)Dt+$USMN5vRwIG-Ux@r! z0hdf5gw8t_$y0Pbis3&h&Ej{;)e92e6<(@0*Oya7K6G3}Ybx<9#6PIMc_lqd0NL zi3MzBc8FY71;j?>(&dZqf_zE*UrqGR1j9yWAM;!g4#+XL!7+x2X%LWCDqidhoo9Qs z91I_dz+4@0#<)W{+(;md^+j0lktJ6xKgF`+eAc%()NvCTN?c+UNl(6yH#ZQ<7?`q~ z-=xAHcy-0xX!zdVPg+Pp6O&jxzZ7?A*Yld*PMWYD+H^eE)8>h4^YryIfXnsv+Z7ki`Yp32rkv=Oo>w~i+XYouQ90og_?^fCL?nwS${(5$n~ zmiwC|nq|ri?~Hd`-1!{^;jP=x%ws2xT`58$y(4(^f&A48!pe*G)-bwj=yCTcdE@#3 zybf@Wnb7(hGL2PLxwEh+LvaQ7Z4$}vTpu{b7dcEKE=I=5V z)j^|Kvk9I*i0#RR<-Pgr+5-`dwVI#4sU&1K``HCi^~xoqpl92RXl(oOhbSnn<-Tnk zK%BGjW>9(q+s!&*C!m&>w}D&s{H%>i1eq&u4Qlww`T2jG^z>tEqY9lv24{uYXmu_- zZ_!bk4f8^XzbNWTCnN!#`&adczMH- zm+_X#J6})I)~b5xEZ;047nFhCz~;jl(}Nm|)8pN_!%7FDoJuqLOitOVSB$j@4~DnJ z^Krh~ETJ9z2_c$*hVvb2rwl%85_GUPscpgnK%modB_7co*|%z-_7nb67`7r{83?_} z*|T`>>5rP4X{(F6WkQpe{PQcyZq-pK}rg|2?-=Pfx=hE=oQ#AKR zn+?bu3%!n-7ld2ewZKfcmBegR(jWn%cM!z>?}_EJmRPG9XQVV%7Lwy-m!VIo>GyFN ziuz)6G;3EM!hoUhBT_u+&^|ZT?7VlrhEF^vFPkgLD)(oTfEY3!{L&_j&X{I-UKV%{u&(%_167T>Hk|o&%xZUn4aJfVt)Vn9aJwf5Y*-Y*_8xqSClKS9bcR`&Lhv zpRvJA+O?~TepfFIq0=V^o0=@9n;KR)<}M~NpR;boQHcROn*VoY`PrYp-PtII&j}4Q z#ofR`(&Fd*!`>-Bj!LDvudvB0-r-_4l6wO_#g|GgGv?-qH0Xn*Kfa%ylsjR{A0QE@Uw3g;9 z=nP+Rw{G#s1F&-pP}z_{SCaMA{FA$NFE>d33Sib-%iUPt@^}r(jiu`O<)gnDdP#KD z=3@l!8R&}Bc@nWtwNtIRI4TRb;MhffGB`(syPKwVGK7$AV{RFJJp7!G?DvkHx~>_x zkE8;0^PUc6Img0ncN*3~b*ed0+VJ4zY5%Bp$+07my0iH(Iv zCFQGTthkKs@Wej={UotLqZcbdo%0FM2~p5&gHmYOG)c&rV62K6?HFzZ!#+bP8Zw#r zF_z64uj-Q|8Lg(uL@<2X4-7%5Z4NtF$J0~?Vj*qcOG3D9E$vPcsmO4(a%vpfazAw! zDA-EZhiM1R2R8_4z}mTDT`CP&<8zBT)NeUNEozjuag`h@d!K}H{u#&iUB5(Gz4Sg$ zMe>>S@s%VFvWq4_h!>9f`U+^}@pDu~pyw77``j)(^8FpOK~oQH;h?Qt9h*uG$u2wt(cq+vX>d)I=JFF`VtGP49*1MOi zvxRXx?D%Z*Lq<-z9g^-IgeUZ`>xW{?FLlJ0>}(az?i&52FZ z6^yJeX1h(~usqr>d~~n+qZJ-(^=P3>Wr_ReG{ym)m8P6;1Jx<%@$2TQhqw0u5UL9T zLy3wp9TsR)aisR*RtP9V&gQN`?LiF(L3>;jrQU%Zj%aM=kG@g@ajwI^#~Wta=sWyn zrM})ZMD&0M6bicYg{*PGY(L$0y11X1#lN_^#8Xbo#KE{9`ugFv&Q8dRhP)$vw}7J6 z;-v6A)+p)~&&4OSGS9}RefmH_!C}&t+Z~=XiO8iB8Zr`K6H0}RhNHv)<*}7q-n47o$lH?tm$4IWWT1$ytJhj3}u2Aeu zY32>WlIR60eB2m9`0;ME^lEo3Nc5Y2j~M4GuX(WvY{)eUFdgNSC{Wsq&pZW0(=a~t4h1rFj-^V|JG6Q-$K zLAIZhF(HgO45M4Y=_z0;-(>8%UI4 zu46~V%UUGkjk3f<~kR83%2Z+8tr z(jUne{sf3)m26m&ga#n&20Y+nCX9yh5@973uc-%eX1es+RwSSo)GT^Gvr332#Y^rX z6VjIdF9oWl;tc(bQB;)Gl(+2wQfLG$EOblXMIH7CX_nP}Fak9Qczks$hUYSsQPF_W zlso(?|4NJhMtOqz%`{%s{Y)D2AWIPx$qnPh!{2a9a)gEl)g=|E3;&h^SE;X`qPOVe zg;sFap2v4b1<1^?2H`ZuhRzY;NJ(~|Not@Uoe*3jLGA*?LVgga&BB-L`~At{PoOpB zp`=a8-mm)>$#xzHiY5~2+tu8JsfV+av`2)Go2&QED!&tP8X7L^v0~h+1H(h-_>^Ec z_Y8>5hpjUv%<-cR1CTUR+6!EB+>OwnjJ`+mhb4it+;WeHFhSC8H&srdt-&5jMpdoT zAmmphA(zZYVPWqqqfyj{KA(l4%EwH~q{}~&FNn(DE>R1CpS^e-fShamn51Jm|D}k`75i#?UQ6GM<_K%=idE;%{{Yhq1WnHG6 z@zks1iM#E!Z>B%sAm*jUqdf#AdSDka`3YJhQyM;g?@`KkZF6sC5r+Yt|K z*Lvbf9v9#UVI68wzi4ct4=`8a{Omg9mbI(KvzdgDn&rs?<6R49Cuu*b0gd50NVaS* zn{YdjyxzV{twP>OB%~D|AR8n}55#e}APU8&rU_|^EoP0u(%3{nNomXLnz!y+GD8eL%IBtS+@e7m&N|vDxsDU4dm5ym_x_bylTm(CZ_*4pZ@95#~5uKXZHwvipgaC zt`$9Q71^3f;Z_j%IK8Cb2+rQkQCQc9p+(533auMFY!b?8rFu=w#ZAp+f|WxXy=$Ve zXq7vofssx?7iTXzI#_3@kD5@+Qpso0)qET}B?aeOJVipQJhdUoE%YeN9G&*Mvt)VN zch(#u+O(4;PTVg2vBkTV%M zG%D|Lp9#NG9W~r9(p0Af|Ce1Pe9)7E2O|`_?cVy9U!z$k;Yee^YO)D3d!%0fFjV=m zjZOtYANP#;XOMn8u!S5#Z7wnnx9J?Ack2;LgvO07hbSRq3%nihG}q9eK|NYELZLaZ z>GdW6q5(RN3j0Y*W(8AK?m*5nm)3+(A*>)(<}5BMa(NsMd#tupw@#n&JA!MV2_)CC^hPU zTeS78m+-X}jpUSD^7~Afbn?o=e7y!#4^ViWGm`#-Pk>|e`Gc-IZCzCS+hOrN#>;qgT61sn+#u0m zzIhZ1x(+NVAXSIETtgCsl`v40ON%z)-}tw@m}=Oxa)J7Pwwu-Ulv|LF&EOBeKMbg`ZN%=2r@J1x6IZNIklSp;;C2d0zCfiO6d)~TtpF(5a z;F^ooP=f?86XHSb;h=8Hys%hZm}do{ZPKpB@#2~e905hZa?hSU=R#u)R|PKa)*iIb zmiyCp$R+pmOYB?;-_-OR=3f}d=yRh=tUbrbwdCa4_h8mCd?mwa34iYN<()FaA{ILy z!aPMHjI;h_UBpM{IyOwD)7gWrn#n!>SZLIUnd_HeGvE|O%$sD;E8orn+A_jiseFQs zEni;WGN1jb;ms!OeU%8+ql*ERUKY8HHzS}3Cn#uYk3mSyW*q0R)ZJciLf~T}D?e7v z&~B!IPxr^EP>IJ6`V;rmjve;54DAny4e|HYawt0crBP58x%AfF4=r_!n|H#4h1;)yA9VQRw*boenjxJd+xpyr@v;6;mRVcG zIN!nZGx%=ci8cwvI5cgCWZs2e>)w*C5MxLe;7u7{u5GxVf;X(#?zn%Ye~Xommt7fz z6?n952{(!UBaA9B+5C@OBDHQhsYy>`&fn8?ozMESIc9ivB&OxQmQ`CqB&_)M?T!D4 zj_NUjBG97le1xHgT@^Ay@tub&`ajv~%^o zbH;131F1lq&q=7$m0Dq1;on^BGPqe&X(M``)XXVRzj@v6LIzZ1PL!yz6VG%o*Nr%D zMog}10U3?vv$ErZ#BeWkQQc^yE}oFhM3N?qB!K>u{b@mHgc;EDR4==3XNomsEndrg zNdQxP%l2Bc73}0aEDjUIZ;L1>(N7ylgA|MV^sWx0KS8s27jWt&LFy^BV;DTJx$3-R z;s$F)s=?~C+eUjOyFP#fl-eB3+55^6%t?h>bXI&Y3oM{`5M?YBfSGC~^>{?|nLQ^` zVp9*?a0eJS&pRQpoc^GFM-q z9VqQqYxWSw&pEgRScK2#sAo$2=I0uw6PA*a>CmKox>k5wT;Lt!%Ib?*rCf27X+)=O2fb0&(;#bSLu-24Kue;L4WPPh>z7}_ zIb5~&S>16Q?UnqXHM!i(#L&%S(3{Ryn6agaFLM%LcERs$Q2%%Jl|%yjopfMOZ-PTIE#CQO1!M%*_O zRY4ffEc7)>Hg4Q@l%?14oU}Y+Z;u20)&QzHH!Karb04FO;+n7o#Y|qmQs2dpETA0f zYVWil@4q$z`=a{jV%OFZS7v(Z!y^fgrXCodEMMELFTFY~CZ) zet1ZLgB0^I*Q}?e&9(lXQotvzk1}X!RHU;GIw{zHu3Z8mSfAeGC_BeCw<1J*^|AL) zrp3#__$`Xk8zl(ct$>oWe=C_AvZ}I`U|@aGZ#_1%rd+g*L|r6+RT1T3>7~FhdnT(> zqgxBsByiu;YqNQsXn*jLYHmKeJ$N#lE5W`6ip8#wk_RG}E;B!e3mN*#23q`;Tur4u z&@f&%BW1yLXsMja+bb9drUqM(MPzNPYx$YDbKv!c5IJnkmyI&<-tA?H%EnpBy~h>`e`t#BUs!Q?K=;asVUb6F!nyIeTWHt`i+$AmKlS~!&eJR zNLxqnp!cDf!b``Df{yX*!&Mz6HrkH|t%F(z{PxMof> zxZOO~txYkON;8oxfen2GO@;7hP4b}H)jAU9m?itqkFUghmTs&h)g$?Gq0Fh{n~5yo(Ko>aetGQ+X)tt{c&Nm56#M?*I*&AE6OIz6Z!QJ^=98B zsyvWmuu|Aqm9mN^i(qo@q&(xwm^kSm5u*t7&j%1&+IPxQ$-9OsX|}AFfwq~DVo?%! z{*{{!uRja8Fch9?j2aekcY&AI?r%WB0A$e);Du6Gt@Sjhj0DqvfZ(*o&~eSA9OLiz z;?4m1W#m`ZoAn8nb&Qt>gx@C3A^L~Z=MS(fHXHd?R1^DB9LT_xGyp@Lb_TSz+ZYuE z0^i$;qJlbWG+Qs<4xH?+HvJchuCZV6EU`*_Na<<`GSC}3et`H>hO+*pcpI5O87^FDye&Vm>I|Ld^9F3 zPp4A>v*P2)qMOtUR6OtCN7C?P8Cz0JCNp5 zCPK+VSCg~hb>FD{LIM*y_ZvBrS9@WH6mVI_J5T<~^(84t7{@w@$b; z=0UPPRPmckOx4EvN-Ar+1Z#k7{VW{LtRIAy?l}jS5DbyzgbP68zQBEt@9vAW|HsWQ zH%nn#B=5}KxaEL1kib|C9&|80=qYePKZ6cT$ z;reA!ntN{upitII$jE?Rk2F{OB!zH?CEJ6%=ZQ+TQCWe-awxY8 zJ8N3-hHn&2w{Fih!*hqxx*Dew?*NvrlfN6y=C6*oN8`XQO(>>+`)u1Y1&q+BHAk68Y&nKA_)6)b9{TX zst~RfV4?;jw@b=Wzq!(!$my&MEp98{Ok68~HdZwiLVK)WZ6;ztrsyJN~*y62HaUkC+LwH>4H%uX({2P^?Qfr_C?#mdfG{Z`Wgi zy%h4xTL2hob4?u(E1gZ_SoH z%*<-A?5F)pZ9)wtz3$Ob^OTrN44`DS19q{k{it*5ZIjXO4V;>|lBU>SbMa+E)Wr}S z$RCOFTtbr`{bj#UogWWrl4v80wPX!a2-!KG0_Cvyt-e{SZiApmD_8`!zc_I`rcP7F zBo|%8D^8a`T>J(Q?|@p!PN_;@J8B;pG(ruBi6KUy5MBuXHeH?_3^P>zYbLIVS&&MOYm-&Q<0{!j)!Ng* zu9LOAeu|pYi2BrI`=gay<$DdrsHRQjB(@v+SO~3;$PF0A%-1G> z>?o|1IH=EE>u5DOMGhXd$Ui2ZvBSJ}qY7~M*5Q^_eh09kWV$u)r#ciqr*T2Va?j)7 zg}{sUJO=LWSW!Zp8BEd@GszXug!y0p(ON*TnlQdvytVQ zyo&`z4c`Tv_?Z+lg6U^s<8JU{vG>TJ4K!C`F{qX7C_6X%(Ok|dmw*kw1blk9atdT^ z<$Jib;H@>f=^_c?Gb|iVXDE-=zOdpq@ofd!RlGsmJ>U;7sgCmzO9Lf$7?93^=X#>7 z7X#`o_w6&Hu3F>CJ0fL^^gYJ5ShZtgR(P?A4&@rE_ zRI6F&T%oPDe}GToTY2IGPD^@jswdbXtNuZ6K^tK6)|viWx)dU1)Qmog;)8bX=t*VhYZJM}1duaw!- zK&4tn&G&4*$0HCy{UBd>WDsBpA}R@LEETZAy9j7U_Qgi!NAeUlt?jSQ_ZXw~({c4_tQl$phM(I7SP1~7^50z)H>xv$3Tv9$RxLVM#nc4uQ zHZ*K$LhnA+VjL=*uE_neQXq2X_lcrv&g3uiL_G#rKWQ{~Azb$T8S<4Mu>r|MJYzN~ z^oL3|w*C&91S1(#g*FLD2OH%Qr^8LG!B0`xoxXftM&zT_SjdPN4s8|+RpZetkP&^3 z1K7BsvO^}ur4F?d%riSKDCKIoa-Ig2V5TLbfeNL;BL#FVC|$OGxoUdQ$edZfM=|iP zgdk~(odUnuP>7Vyk+}lQ19)fbR5ZRYtOg- zz`Vx>JhQVU8|YtYB5Au07G${GVK2mX|!wvcC^^ma%pFqxpj zvlkJb8_|_q{6`1LyX_MNB4tNIHwF!r9!}vm76LFO+{Lh z1D~Fc>y!Ok?pr;6Ac}c9^HVW0qNN?L<#7Yh}U74W)VxWONN|9CT zFIpPlVhz5uB=j*>B-EgyX6*0;9!0g3{D^`U{K|^dTyl;H&x%vvK=d12H*kibJWwIR zz8F9!f(F#JxI$Mki8g4H;7 zJ@LvlOD7;Yfj1%A*mFJcd*@jjZD8X0QW{kF6m;-G!L$ZCoMkRP@TYLlkdcvk=*seV z-Hwtya0xgCB$GMsJYm8frnt>?4l^&d>xk87ID@qz0Ipmv;2`{cdvrHQ362(`k{~H! z?NM%=5WOOCJ;4LUY)qF|qG#k-5u#aTVIF$9AVqe(2nFyo$d7$pKsLj#MwWk>_#f_p zpac*Mo0m5NF!0=g0x!z7v>TjSLSLz@?~xK_!^t+MT` zCsExu;`LHTAevm92?4j2O#r&irvlJL#ncY((FPp_r97%}#R@Z@G8f;iRdtv%g3sx7 z2?>fC4%(<-nuZvCq7_n|6L=%kwJmtn>>NbrSQR*+y$!CO3D!e7PWKl3lEsS?D1y)> zynjTE{vh{!W;9m54J=W}EUI1XEjl4*GE?_u{W_3=uC?;96Q7>7=J`uan4_ZI4|(tE z9D%nqd{b%DVte`tRVu4*7}RE`6F+Dl)v#U^k4z~cfn7J-s>B14h=0*q{9Iz+?c}%# zj_Ycq_IbopEsB5>bduwbSWBVvblmW>J0QG{!h2w`Igi-+gO!;I~F zGMa0%`-Y)ZNPa8mjnUY=?^XWiH~Ng%7}i{>MV^7$^B0#C_Lm%`nH+TuYO`pC2^T^0 z^Ru!odjpqaIEn*IG2pniKT`4T<#U(HeIDI)bCzB!uB-z6&zh=0!FGkW z`}-Jw{#pK$wefTZUcNN1nY{a~?AuaEZV6MCHL#5(&%c6rAl>)F`Y;Zv15)5}!P6T5 zvvKdL$|HH9a+`aI42axMw;%ykgmujN2@=_5;H@+W#*JfuF+A$R_%rLP7`v(d_%9BU zHt>&X_U6F!QN!bj5UIb45M65!AyzQ-ON7?_6`=$CWhc;+9pv=CN9YQQeDd13UJo#< zP9GSu?3X7djp3USGh+>MH~6=7QU=s`HyjYN5_py9h4fpx;zw^KKdLhU9K`jqZ%?C> zWgEMsOe&j^{M~-b?Y~wbLEjiFgHPk@4I&vR;22TPWd!~$7}gnrmc~ZUc1UJg6Lv*0 z)7{$V{Mo4}kVqH10*3d3URNN+yNy5I1iIy4E5DuSI1RcG^()+LZGMIX*j7Tir9mf@ z^~cuynG28Pwd${G{>^eh5802GIrOH4iCbXlK4=9nC#tl6hGQLxAqiTl!RP1^78QaY zE{0Nzy$YoPEVC$WTivGYe?4c^8XJ)WH${ILISsx!OcbwpNXEbH$ zxY(O6+9LTMn$55$QF{lSGH`P>#O_jci+!=y`Ja!r~B@Ej(k6#&o$rI z`?@|WsHs?>ri6H|zY*iKH@OfVdX@u01;0TO^9L1785xTL$1`bQ`znPQkim%GsOF^9 zq#n>)A3eQ(TO~Huz2-%@LB)y=Rs;Em@$tlQ_Hn>qRZ)2%W@|Tp)Z)=UA#ta^6prUt z%R>&wW~lSuU%3EbwP~ByyejI-P-+z|Zs#u#)jbb0S-Jh8u$TLUdQrDpiUDROA`-zG7>)BNf8kux;`+zHrt(k zv3x0PTG?>xiSvURq-K8=iKly^LqS)Ja`Y&~H26qpX-fb@#_SkZkBq62T=bz$MYzyn z1yic>cf*6dWZK2X`(OF!Ij;`cmOtF>Q;{2fg%6YUP)Y5Z zL@KGMeNWa&R_Hpqo?sfGi-7CR5Zd%Po0rx>n^iVW5e*$GGKz7BAvRg~QW()3D>{Fv z;?F2ApSz@w%FDaymx0&rg%&krJTT6(|IfzReNBD94_ZRX==KBYH#cZwE6!iO(@PT zpTv_nw0ztg*w$YDkW!q${;W)FvUokjvrj?JD2fO_fpX->MM!4N;3! zC65p($Ht(@_oe7o?46H@k+@JiDTV&xI3X8u70EyL+`k@Wq5_QZhER*oK-K@N=l|-Q z#sotHKbbmPGVK}GAgPy2`a4Z8-ai=P%YM+eA*0(*86)D*jhq zdKxqxU+Q<8efREZr{`|pq~!BxA;b8+5uv^0XWiH&3$AA7`wj!1vA05ZO}~2{G_vQY z5lXz=3fBFvoK?znJg{Hb&rroF0lcij(#z8}HxBdT#$Ioe^Ls34|syH41Hdc=%ktmR3I&S3D; zE6F8USFb7sSFes**8*4R9;l)|p^@Aen)oafF}(pmQGU^5OPC&|LeDEVgiMZdUnq0l z8dxvycC2lIHjQ?qRRd`#p4fR0bfMdw*ksx!uJF?(SzuB^i(C?WI9HF+=K@lQU5nH%1(P0Pbb*Jd5o+6_W(t9z<1AQlGfvrDE zvUa5P6YI zZ=PM&``pD=G)K7H}ibh#n8=_VnH9c;BlRZ9piH}l%d1nJ2Yy$>B_ zyC!G=(5TNOPF{YQ(ufz)zg1#4&zxXB-ak<~gC~z+NE3}?2gdP0w|4ny0AAiN?pQE? zi?heIcs8Ho)v?M4jk4}v&@R-04~uUDfenv*Iw3dv)d}p&&uv`Ttp!L9yQel=x-Er>C{ff6(f%x~L0GiPruoAm7YcEXv-;CULdFbKA<4&r8R*%zkP-A>PMyJ0WqKgIh!RS|!^xiclUWIs09 z*b@0`bdnJCPsdSWDEe5V7YgldUc9dnJ$(+}DSG13uHU5QcfK zJ49#I+Z&Wl#Mnbm8m0O?6mEKygYtnZ+Z-~xK)p- zqK6^oJE%?8_Hz@lwGUfT{*AA$9$7p$I@#d4wj;*8Ejl^baS!igdH}CB8-VDRxl2yp zniFfXkIP0H7peo0PIJiZ>$pI}Y1Y1rokV=e?42Tw0|T&DN&^Vp0CO|tKbZ-%q@O0$ zV$@8UIIvKnL*A>%xVy5IxCQH7wUW=Wm`;Dn4RVk0V(MpWev%LNPO9znyGS5kp8a1@H7Rd!_j`&OX`fw!7(pl3qSg z(#fo|_9MspYqk>3*qiJw&|8Q?hSsXCJs}q#{stJjnM~%T>W7euB$PfB(I<)lwr+>vJPw<$ZB*fe zdfOx$W@Wd<7Ubz39ROHJ$)kL`e_@NRsqo9mm#NOBqZ~~Zwv7S>bCxM*%ebS2;Q)61byjJD z#N^Ru*MV2d7AY2K0UcoRw4;;PCOzh}z>xWiz6E=qV>efzb-*NJR`$q`sEQT+vF>#w zD_+d@$b9>1EC5%leacxR|2knkSZ+~0(abFaSM$07gpZ;a*D!Yo2?ZK}iY0V^k#;L; zg`50&Kd+#hnu-_MV&`?$YeFuSRP9Lb5wH!w5v{&x@i@uh*r~1`;wLVy@j{$XfULu_ zd$-%3?xF;*n*k6tqbBTMSv0h~jDNjx^)3$Q$63{qyu4+Der_r;QHrz8CmpdjeF!*F zOH8uJ_)ci?9M~hxS0Bb;zX0IL_WdKj8;@e2G` zedeslKZ!C_d%&whk@@0e@O8l&Q7;I=;i_Buy7CDxkI-eDj4zzvU3t@2<_$HY0E{GpSQ+4%4{ z`_3M`)2MA$`1di}cs0v}cETP$3vSm1k85X9t0?i2hN=j%XEa>AERPWn1U5~YS5g}#&=y&B;m zA|lH65MLI$oL-FdO1`eL;@%&5{A=68}rDE9n?FQ&7swS`HeqH?GW)b+g>IW6(XjE5)XrNo6#X*^M8 zC!D#YCceCr$wg2Odekm#OT=tC2tH+MTW!S38k)$#J z()i}-zZd3BXNe|c4fq)GLW9Cbi=@!olt+LT&vtQ99_@18F7eZgrK)eY41X#B;d*a- zaKG224<^@5?rqfJiaS&;HNi|py+~0~e*(IS!itRw(Mp$Gn$bg}cXu|HhFz*-#tO$= z#(Lz%!*5PhiY`tMMNsK-n#*TC^v033UTO48FeQ&#Lb(SAp>0>6`UZ(kSJR2?I(U0K zn2;x)y8MaGd+)P(+<2u>oMl@iP8D8%MNZe8kT7#UIC%Ur?~$Wz_hDr{hdbR%uEI0_ z|2(_->c7iWVuod=g{0ffs*}u_9OlZwZe8Z8V)hzqTlA@=8ET0YI~TRRF&feTkT-sc z2D>P=UP+G534V;s=a>i9t8>ZRdu9J@Z@OSvf>DxD($QM+&@-Vzq31#`hRTNH*d}^% zA1+-U$|H00I_pNi9p%WeM| zt;Fk8LhhF0kvZFA(wLIKc((na+?Dgc*IMG-_`W!tPm6Om^>L)iagAhG?qhK=yuD?* z(cc{9Dwn5t1413RBabvOz|mvdG`0VT>w)YZ(&CN z5odm9QEHTZ@r(QJT6aIVsrhE?%2g)y6bQR=Uy9uOOV?|6%?jjI>I@0S0COLM_Xx5L zT>1r*goRL5s351dNNl)ab*1gwr%&oO)asw|sOGUz zuTjC<Z;5;L5 zUFKjy@1EA@m^{xTZ*q>f@!+pBiVCJVs?-hNeM;d7iE0qRmt7!Q7J<|--|7m#x z$nqXk-!wQuH)L`xg%q{8p(i(GDgQFY#yPz!u5cxbs_02^m-yAFdLLQ!E{(roUrTT>DcZXBF%0CHrAC$uv9SL$w`vX` zx0%#G`M64$B0JKgI^8F+5DP zyh#68W$xtGxX??tru=F|8&QtOT&b0Lbr{DNm_RQ3Wy;ycHL|~V9cXY0&G87>h>+x+ zei^XKy7ifQ|6O-0C(&6-D_Wt;>lh+EZ^AS`G?nm}dhPO5I)B)0%MAia*9T>5(LVqJ z=m*;RSMIwGpuWx>uddm%-^)`ET)cX=ohz-UbwyQcXn=NCs$^dH;zT-Re~?rQmx0~eCiic8I(J<-`xE{p~Rbi zSi6N6mbuBLc84I9;Y@$oi}Nbt!VFr^?nr}T@+&E3u>IHSBpyOmK@^_sPe5NmM1wlD zYin#ZXA*|0NEi0M;G6jMsjB2O(sQ!dQ=fxb`2a+WVjw;B3xJ&sJd;facKWwf9UPvL z3~d1p=io4QsIVp`fAobZ%AOc6x+VQHHi^H{r1Y6_tYt2p5jry2X%5#FWgJetD0Uy5 zah*4ZY!n#GC&_>B^z&@J85xZ{Z}G?PjKPHl2S*JYQ2?R%e)z>Usoc#?7rG0>azaW%?%j-(E#3o9kFgj=`+$$AWt#g`ypn zgybIleTy=LLv8hh#nQ@?wl!)&n6i*tunfP1rHeRo!GCX{2sSUEqZ`Cq>>%k0e zx_Sq5>vF#=2%&q=^E5NqiPfl?7i37_lbC`1wD`pqOSZcnS&%*qF3e0 z7fK&aDQ_y#{MX=0PK^!KDdUzcr=(2DTVI^B=n6$Q1`o0n?ho5 zWAx(=#CWC!km40W6)~mOFKAe^^JKEMo?GLGJ7WtdLjLNC$g{ls&8@b>fs7s{F2s`5 zob?u{!xjUc>-x@9NkK?qH#;j9T6HeU@2@|GKKgcpx?F$ONRJHq^4JT+QN{B^B#clG!&)n{@Yf=!`x+d2a?n%hgK-8vIK} zh}Vk8k?YiTh?oww86YtsvzwSUI|%rTE8>w#!M}*$dAJ07NE_8I*f2 zz(A8d;2*o}bDAdy*z|!5?&Q=gLr8#B07vTI^l`yv`hfzg;#<0t5sVPVX&B`3kO)e` zq{D=z>vz*JX!-zmPC~)H$3%1+qf9mxDJbXCB>u2Z^+Eiu019~ZWvHj1s1JD-z}+6j zK*;(rOsJzm;lNH9DjTX8syt}Cb03+E4AldwNy54Uj#<=x409}deGq=xle5tTo1y1S zckEYc2I&qM+-cfpz51Z3B_Uq)SJDNK%g2GsX+8Hw_9C(#vYDFGPm3QjetfFJuZeyw zvI)u_gYJ?ScnA;IqEz_rK6q`Q%>xfFd~PuOJMu@?|DDUbNeaK!kx*=vRaE;ExMJUr zrpDUKN+}q#$_QB1Qdc(dS@Cx*n$X)Cv&d@sQLt4VJ3LyrNc_mf08*;w?BWg??i<5F z+Hy+521Je5oX4NtDkf#t!yHNXrkgrR#1g^soF$>$z#U|vub_NQAjmc>x5c*Ew#C(3 zbc;(?QF3HzXuT@<1GeGO?GS?P&nBvz$_g=V5!hAX4otXRB8oQ=j_q0=KOA^;T6%jn z?<%v<1Sj*WffOV{q~gC64l3pL?o^_UuG(|BtBkUMr!3S~jarR`u45wt4A%+9vP-x*yz{zOx+9bL zgF6)*+g_}qwYurHzq{VQu{7HML|Jg!X7v<@Bjc%!Rnz+w5mfkD zKGSjb8r|}pX>O^q+x8!S|IW3eLq%b(mUv$sPenP2?9x>goR1t zDrjDJa><$j?(ae%EqWeiEs-D&LjEMhm{>h~o7m*r!HTBk9S0HBjqzUD#5U225o(S) z;!_(=OJp7_o{=r0Z2q2$mE^-BA;?&FK2tBi4_g9$2xWnPjTZPs$Hz|;f!ix&7qd%! zDQv2s&jB5X78h@SWdX~)5>Om2PA5*yyvlrPhnj~c@UlP)li8?%;hqEN%2jg3@%Br| zW|U;7F=Y0Cx~snhe|r^iC(;fSMdLw+pgCemsLMKCIno#|)v26vN3xKCIp>c$e>6vl zmJsW=C`MA$zOcgD9o*sqtAF)j!E87^@``=QzKKnX{DBm6x4@oVu4iKZ;!u9 zGi)Svvw@HLvF#I^R^N72CD!|L?+95swBi$J&W@=YoM$DP5)#$e8vWd*6k2QWm^{ID z>}imP0W_;GmiCi#x)6-e2bmr>=F6W-4pG>kr0_}RS%lJ@IE(kS7)(;u8)Qt_rTv|i zewe+$K67#qLwzW*#Js-6NY(S6l&{{+!r@SKX7wZCGlf=k6-!vn3hPog*9SQ6`(-=Yqtlk*X!$W=< zp;SY1h(e;kyht`TiQ zs4D{xvomQ-Ty_KFQv#8e3Yjs9T;2_eipTV$%%eRA!6U|{dSkLLQJrq`P*w1xhqNTM z-$=4w=;034D`IWU^aRnRG0G{JEx&NjM>#)lElYo|J1{kW?|{W1L+?K8boI>I2c4+H zU}e4!^)~6f-Ul1}o$7SSTUcfE$4RzsUGZFDkw^4I?_e*i10Ik3@hiXK6==46hL8SY zkA)7ca&{%!EAh$LCwcct(h@#e6dp~(@|nNGg`y#}T0_sTkm?muG$nnD*NfyZPkolZA4OTVtJlWeU z(~^IglmKss{saS`mO1!O&8T{vYY@$6HeOa5T~0={L(c57SMVE9t% z(2pASMdMX@$pM+H9OUnY3&Q{p&woA^ep*_M^)A@&@Xza(R% z*{MAjaIlbM0mUfV;&oZ8k)^YYJM5CXnuh z0%#rUa#^PEInA{Q7nu~nIHZAV@zmcq9U%payadyx`ZSaUj?SC`o6Xx8 zb}rtyx+?OC5L*Pe9jxF8rB5DWW2wG)EJvz*CAWCiUV`XJ=0X}n<2S=M_cjrOaVz06 zJo9L4*NcOejBq~y9>65 z1A^a;kPGKS&o$csB;tHrg^){4o&?h@JRm$Ty!WnZrvh6v@t4(I1>;zY^MWIKa^lSw z{|#T_q`hObL+kxWcB)%#uH4a}KVr10P0ZGTw9Nzv(*=rG1b4dx<} z{wUF|tkn9$-72Ao&Q31?tPjf3ABiADVBfp9NWg~(wXyTckg!IVQROi zc?zJ`7ZhBT)v~|a2_T4#I{A~j9EW6ibv#!q0#0|aj0;GY-EKSx(-b+BIIG$pGRbcS zNLj(!bxorRNY?%m=>9K`!c6oIGFR)c$m4&~Ql9}i?-n*|iO)8YgUfsjl+91fOVhd@ ztbAC|*;HYAzj`qx)DMgLJQn%n!KocP4j#<$iv0NvCDs5^m)dJ&mwFC~jkBrO3v-a4 z<=g!lG_26c<}DmHzBzqNmUG-aZp)Jd+jFrx&=^VAD#>j1@}yB=6&30GVHXD|BECRs ze&lKQ)KI10K}-q(gzo4U9uhZtALvzUJGjFI_A<+A51|6hpGL+K1&CW`6-`i{I$ZVG z8#^Vc*BL1m1Q z-g9{-MR8o=r!ZaRKeGS;bQ8Yuf>L8WG8qHk=eji^bBqaoQcKIuLWB89GH6PXvmYfR zk&3vw-#;}B#Mi7*R7<>+YM9iG_sr+Qh3jxyb3vuvn%s1ExGJaw3bOQVkEwtYs&{SGNfg}_-d5rN3F0nk(ciY#|G*7$3{Fsqh3O{euuq z#W3RrSe^{wVxg*c(dZHoZf?xr6$_(JH zs0_M#PLPf{Va-GT0(EjIhWZm7@jbO)3~7+ch#jsUnBqu%*M5D_%d0``Oo;-8jXGJU zIDhM73-fwY?B~Uf4Sxl?p{EGSTnNK~TjCtrFMq^pcLA$y^3}DM6C&Tu7~ac)W481r zm^d^+H4)|*^B~4B#sdC)ilH0Dj(MCIFO_GZF?QEB;KR%YosGVA0r!LAE=MkLOM_bY z5=E6N;I9W3G&KYSx7ek2{PtR07!*=k8kBf-qQ;nsHjzV>7|{M}!sFO}LPH+;|> zpU2djO(?bXfGM0$tSi*Z7**nez}f_*Gjizn+VpX1V8)Ka87^uz%N#ol zr`#bWEJ+Iql+tD1TGJC*bbOQ`$nw*NzRCV))z(O9q=vIf(AdG{yZ=Ki zXg4SvXh9BFa}jO4iq;+HBY6*QQrHtBqK>*7Vw65eb?Ykn4tz)WX1L5TAz0^%jL!J) zqVwO$!Hq*m<+A4`Qp7l304!$A5zS)~NU7F754&{-MI^Rpxg&)OX%h<@^TyZUeXyP9)Ma7+vaFdMKmD>f@P>#H>z zZU~?^F*J;}Hc?c>C%?KZH!AJsCmoJf{1g%7V8ZII>zH*G_I-L)&@sNLX&HfIDZU7i zJPHEY759{hv#|ew-AZE+kO3(jLBvueL2dGTALKot$d4fza{+V2l&yM$=TEc`{>f*A z8-VnYUtxEd{0NvWq~5JCTX~38UnjFY@1Ntb3@t4Z>wf5+3J%ZJwxn1A3n)7~toJ)7 z{D7`;0bM-&Q(Ha+;7g89Ja>$F8WR+RvJ0*%t@a2QJ~@d2iTp9fh0Y`&Dk#N(3fe{A zV#3Wf|H>VxCNVxED>hOsI)iKEg<@m|2&D&{$Q;UI=KPHK#PQ$x3=)pdmA0fFz#IWm z>PX$E6et7;>hb%p{C8V24E|+m=!oPIa8Q1h{#!a1kw>K>rS!&9azuCt_SZO?nw^C# zEs1zD8X-az-7Dzt3S++*4p|10am|-+-!Fg*ExRGhAmn;XLlkohF(>6!9@VAQJJqO3 zRKET5mG3hIW3n95Pg351yHU%vOFhb%utoX#WUCMqzR7hYUG;K20fM_dH(*UlR) z9;Skzy_7z7a4bD|FLmZ8+~kmW+1{Y!I^YKUSU3vmH3lC_hF{?#c@zvsO7AZ3cmz>| zeu(vU&bC)T7{x0@h_xzJsA?|Bg0Zz`9Cu_M^0g4%@D-wK>5RMnP!< zbg97yHhvcWek-CKImjE3QEwtaaDR~IzIyL6IJid{bbL6_!gt%PGq@|d;QQ4f#~6n- z=k9oBF#U5@2mBSYAP8LES80l^GY|@Pdh3vzk}todcI{#z!m`O|NxGsv7JV+kMZkT- zLFjqOy$w^{t1ef^U~~wBd#t{k8nPoAiUf5^CVR&0F0&X_VZ#XQvQp4yi0i$>Sg{td zx+LO?6gE9J|b`V>ZrAR3i;d&a z(=awwPUMK?307!V=vLaCV+vwE34PkJ%U~DH7HdgD*Qd-&p-_(Gr(8p61F&Mt#q#R6 z0BXD!_nmW*j~rK(SV026r24YBu)hLMCNT%zx_O>$MpUD^g0@T{2;&-+GQb1w%@RZt z$=gLsTEMx{%StGo^8b<&3)s=$2W9Jo)~Ji*4%~{+_=kFQnxp~22R66W1pdW50!{gc zxuQ%+DA;UcOs4&$ZjLoyXy0;-fVCt>){nf_4>;p~_j_`TlPV9b9G95Osp|7T#L$P# zy@}2Md#^7;0L!IcX?Mo3KrzBnG$DyWv`%<`*EParIg+-j^Tb#7vqNods#oywQI2_z z$0F8@Sk}^cI4S&E@;7^q@y983f*9t47{+?4@bf0)rPW;(uhwTTL(3J zAN)8g=QHIz1eFe#e&${O?UQSy304?Z7+1cDf3^5J3jv#8>}1RW#%ZK4NF@h9Mde=^ zw6aF-I;0zv)AC{I&h}`7Y@9av)+usI&dt@Q@0+S+#D#xyUdPKEGlY|{7-T1Mospcb z_NYs`!ayVs3T2zmDVG4w*WBz4r%WOO?l*V&O@S89hsr)XP4dWBDto#*c__>6KlXzW zQM#k)LT>pde~oiUC)yHMX;t`GC*U#5#)@lY@g<|N4A!srK{JP<_^NVL(Vna77fq@ukgogg z;oSYb?Gk9X{w7ei+U{s;0$ZYXl>}qRs}ehf@$w9El|)EEt`F8ob~OzjlT%8LKIV0C z2(^fLpLnOFu=I8(Vrufkuy=p%Oq|f+r4K)P$usQ>a&xZ$wukJ|66@b^iHXA zscHUJA91If54awa65Z^2s6CX1{f}pQgXExZI-aLlJ-pyxG%i3Zw89dI&Z4LFaIeG= zbt4*IAIZ}XnP(NZjJQz+f%9+xb1_`M+}H&69Ng}spbF^8nI${ScB7;mxZ8}`Pgpyr zz)H~6@z(MQqP*B9p&9mla39?I$Hc37igU4Irv_W=kx#S2vBJ5MP)xum?i*EHt+6r8 zA3)=qB1lR60YBm*Qm*f%hmWo+_MPl*o8%fWsFoJb?Ke2}Y6m7~UhfEM4a)}XRQSvr zo$)|#hY{=DYh`!VQojWOWIiEs{^n!4DI}C{f2hyua`e>s>2sExO`Z#7>)h+5Fuv7} zvqm$EdRlI}n)~pKf!?RnNA})?P<5+j=ErB?kN(d+NcB?i!@EcF@7f&K@XBUgT{b9`2Ry-c9+kEZC*_xkFWR4c_ z@}ZA`G}p3++!U=RRJN+&WA)PD8)iT(UYb7Kz8p0noh|y+6m-;T7PFuj!TA%RG*bk2 zGISoTpuwwcMXI7A&gRF8#)qlSL^RedtD!}grFO-AA?jdUvTLkVi{7GR+!f>{0j|b~ zwZ33nh8PzJDj1#Q+tS+-TldRoas6OdUg4|r;b&_;zSDv0_$#P7+IEAA#!#DEYo+>=#=32!M47SdG{u0M6dfLgukKLqT4w1Eu1({LxTEzdZE?jHyOU`B6x=z( zQKB-)+hJ7;;rNew6rDgH00qaLuBQLr2Ybu;JI`(z*dmD02$tkwWvP+C{4K}W374{iQLCLHPql?9H`DtQ?VLL_d?;3ZV4Ez=m> zooO=0570EeILkV}opC86WMDA+{X*lh(~3RPqO`Ke;bD|Nm66nT|f8^6A8{juBbd3ihkQhJo1jK8Yq1~od!Lf z*MWok!vra>j01J*wlmbd6`{5Zc3GbUGYBqv|D7Mc2ePR?ZHu^@=T4>x<}%))d!^z# zxXeP%X)c2>{Yo{LL=NvpzrT7wBSKc@FU13PcR!)S(SLP(Lu5vX7%o4^fn~i z^z(91WLPhR8{yB^^ff+zcEK{|W4bi4i)QV*Y_q}nz?@R&LC{_NZ2@+5=g0h1U;S6y7=-CEgL z$FJ%w6zPgU~jk>wFUgwyHCUFVBLfr1{Aot`GE_!}+Ff3eCyk*(D;c^-~* zHFI1hk<*8Jrg}@~5zpV|X@YvyE&ug7*$MFy}4Re(PIV0Ko)qRjMy5td%`Q zA&hb@_}ithoz7cQturS#JPqn&PSiO>_qs$WDzYxdWWS?z2~80^PWl@&BIKe2q+!JR zhC_lVJJqJY6jD_ZEtyPXurTFHpqsjhgg)z~@D2Vk2BNY@QjrcO*}r^x1^&IN$AU!m z=`Z8#7>GVN7w2lV_7DOF`6VTnm=Bdvc1)F+0>zbs6#syPA`vy-0>c5Ok?;+!QKfkA z_DFKA^ZNV)ukDxHleqoqE+AwC31GH(xUT|z;Uw$AN<6Ra2L5KgN&AQj*JEs!xy0- zAKTyOSuyBRA~AB8{Qy|8Mb9J5Ay%|N2Yivk)q#?^`yc zLakL+Kw9>!l)33bDx|bMcNCkmMoP8jx$tQpKSoI{3*V`;59kJq-4QekrY1`t@v??F zi;M<~JmGe!S6g?_TO+My%P9@kt5lvSM;I`CYGxV{Lnqt}bEx!P zNEL2=JnP*JwJXj_Q@ANDqh^~kv7oz5T#{-*6MDK}YmUEso- zRW4ebAv+CI;5JARE@0)odOY}Bv*QuSeEmpEe>BT>=OXw0AJ!kPp=*s|W#hbdM$tic ztU2D{FniNfp#@t=m8FpXuVu_DFBpCd@5mha3$tH=NfE;6QPxSE-Gaf!=t$Xwnxb6O zI)yQ4#Y6j>#OPYmPLMS&BDWOjZMw>SO+=66cuV>i_~3ow4^bbNEhFCblZ1Aay;~i# zozoRvGxtMJO+CYu$+At${Zhj-dIm|-Qr|G0R5054js(kr`(HA?MV-37 z<;z2Iw;SS&#~JUnr+X`6&S^Z@QOvj75Q3Y?O}7_uBeR6CY{_k;zwZ~)7545u_2|<6 zwOz`CJf}VBYg>w9UGt@=L!RPh^^eOd7L%h-KIF~bQ`UHXwh?OmMe7YW*ZC){)7NW3 z$*!U2eOx#o2)dvK(?xLWq?d4YGgtb~kp!-JR+1mRu<3-oGk`9*o@J&B@kI|?%4ubX zQ9PN;ZO3fO?bDeSYPw{*F82q)`>_pd5AO+W5WHJ}=Dfq*oiSPTHNC8B=lQy5o)m&G zKkZDKgB}y}h05lceVCAYY1ukxt<LTEs&kmE zu)ddM3Njx>u|W%D%;<|!@UPY-;%8xIZ!3Ds18Yd!b^gX`|IjWzFNhlMO6P z#q)j~F1VAkr@_yB{+`|4CaXyGzT?Ag;@%65~c0`4yUGr&mHtpxwV~MfH zt*@(}JTy~T9H~K1I4f%HLu$k2gekW)qYEUhg?gs&G94;(3KLpWSy&UuRF&+|)EQ7oJ+jbItEVU-IF@pBIU20AUKP|B+|ACrc}FKDQDTs-(keniFdDJh>d2WfpeN zQc^jQ&Qdvk)kD-gnp`1xs}%GZH3W?XN?-&z57I+na|XGffG{WBbQN_c;6o4zdAnMUAMnsD>4ClrQwynan zo-gb7NoX<6-g3>W=~lmkqms=QDP~^V)M|Mz81d`JvRh?Bx=P-H*G70+++?`H6zxa# zze8hi@!sx4dZmhqyA(e$Z^JH^{1Pnul-8siTShfC?KbvyzC|Ns8K%dRV90tWAU1a3^S5KkS3z!L0d}*G?_Im$w+)tVI~X zI;VBiBzW}9C0kX}IuvQi>mnn1KHFtv8mAz}+qN>nZRET;qkp`2x%a>#NBE0AXtu86 z5qa&dh?=tmyKfRfP1i)45FDjqcT!>%OLz)(Vj9c(l4nL){W5HV^;G$+*8E!J1Th>Hb zpSl0nx1_taK+&0PGx?a#ZlB-pZpt0FZ_sxs-edWT*@d)9Uu74)U1)sd*mmEI~{C$XB3IKgUl)fK0&% z`g;nf%Kd3p6eQwZMh>k%|Fo0V{Fv606?H;g`Nu=@K%L6mXOXFu%=Ssr#<9|DGt{z) zMwc3O*jRdz>yd|(MRF*da;U=Cp_DY=T9|o~#ie4q=>gtUn|>eOot-U}RI`^JZ^IwC z4fK0XlZcwx5TWv(B%EJ%rfku3L%i6WpHi~F&yZzfaMBQ9lye9s)H=l7v)MrUBfcah zT)aUbxB5sVY9DTiDTFBur#@$z5Nr{d9^N8$s}>KvUOE&okaRy;Qidhmc;@^veP9CP z`_=1Y*o{*`E(vumi`vm?z+*7Gw@+dyQi#;Qd~|}It5-G~3W{={ja_f$!dQ;CL^adZKa@^DWnk!=hsKTeH!}w2LjTz!}9iu0&qL?a|_9F{e+Ns=Eu#pq=b3C8D zmwBd;oTdGtMC%uQOOt{L>q`(wMkAL<&cjUtl-igW3BcE@+zI=LWo}8rl~IB{tY1k> z%6rY`;f@CCH8cNd(nmI4b2l$no&;1wgfKlQ`F(K$p}%Y2nTbtm%6=A92`4MZMh@kA zr^~BA&Kh!~!j@`9qt;vp7pBiTl`t|`PP6X(Z^2&nZ-01Vq2kDmPgiDd-Pw0GdUwPs zy$})*hUse_eKn%3L&yD;N{PN7dz_|H?ZqwB$%!wCR^r^S`UV~jxlgY9UV0r**_@`EZJjG=h|{$et;0+Sf89^7ySJ*OdoO*mo80*RJ~>;dL0DJl(!jf<4S0p5NZxc7CVlE~jGDdb8@dmex-y1G9jh3vc=$8!>!J9$zV_<%vXs z><@!>jD(9G#5s07Ow|Sc_O@@op-Bg+f(X5K=NT7mrZZG0Ypb9v%5nJvaJd6b8%{14 zNYFZM<+fe$GHPY~LiLk6wDa@kb%tfEPwtK5O^>-`Kc5Se$W_8HBqRTm-aEMlkKkG^#b$u2ou)Dx0oL$N;GwsCJ^@sOi) zr=40?{*W^F9-pPy@7{lzSJR7R!|FlPgdU2mG6)x06gRe^G~=7soxN-slAY4S)OtQ4 zz{kT#9kF_09{n(Y z2OrcSBOq@QUykIrH1fd6 z3Ea0b41NiXTn5j|LYov4%?Y-;BW7_8Y+v5R2YHv+_dKAD zFD7ahg!z+%p|hRV{DVsH28g$T9gLfI_IGJ1Eso3O;T+h*R^Ug0&Xf26s#Uhq!ilzj zoqnZPZ_S`^^||ebLj3IhVjFFE3DB;hnWf0>3d$?@5XTau@8L2pV20Jgy)0W<0a?EG zg!isA46ubcv)SG8R9&?jfed{1e}>OP2fbIc__Nwf}gg*(Ky+E4^mZcto>VJxy|YtQe?6fTjYotyqrh5Dvkq! zRzUbNy5wR*yE~+^9?k3LKVJGuo<@-ZzfXgkLJ_J*WFhswF*f zE;39OAzehrYq3^STXW@K(xwOJP}Thqh}%X;)v6tm!wKz`D-l^ITYtDtiF`?HRJ?#q zbWFxA0#xg@Q6BdX@ZMKz>&Z9ZQeW77OeH!1j+fuJM4b;?7h<_5vj-P*)j9sdGB`FQ z(k&kiR&sLSSIQcRNC_*X#`4^-6nb84Te*31O&ZhJbL1Y9BV7FJet&F_q1z5q&-VY0;sZ-ZU@(PpC-xqi0V63XFq8Jhec&eIamzNyGWWvu#%jR2#o51&Ct)2J7HM+&4)eKfTMt;E>X4TO3M=`?vz+$rq;ewLmXqDtX@$-<1!Ct1Aq*b* z1kuCzB~75ABy8GG0&b$|OXp$}$Y8mel~WpON$>RA+5IGw>%9-UJv# z=@RoIp`gS3Yp57LS6$TRUw)m{jd*fkexjTCV_QESXoV{o2C5psity&LiACo)(US)6 zSdMMUH{mw7Mg{H@=$@T1K44FCqRH^Tuiggh{B|f*$kLky#d#jJIT)HLLm!^O27f_c zWRl_xizu&mxlY#i_(c%yK^SjDM!HSKs%eWR*miHWKJNUo*18+~%S)crj?um_Gx*`k zB0Eogmpibprr5|IJih@ZMtoRy8IJ+;D@mG3KudkBqLVwHq<5guwQsR!t4hL;Y6h?} zsup`5SbrN>4*-T$ZF{$Rsx+uFuv}u23n$pD9{yhaLC9PSx?(z%JyH^ccl5r-F_I50 zNhnH{a4)0fGY<4T{L98wXLF0r-Rg=aZT1Gcu439iD*?}T<4KX-lcZ|@$=v$}Y^=_c z_xq95m^1#T-vWGEl1~PO8%ary9~_g}dS#X8H*sQT*226th4&Xjr0K4O=2ckIQ~L4R z``>He0-N`hEvV>HN<)DYdkyr{lvE@PNKaH12C{vjAA*n2bFWwa=!cB+S%`IeAEhFH zR6o)4*vMshUea{q@i)Efx@8{||aZhzT#itR5W5i_BEfr>#3HaRU;IlSCL_*KS zkhjmBP^-zVyi(IZDDkx+|7F%#X)MV#C~!1=Clb;z5k&Eky;bqSe$z!|=aUPb7Q@$m z4sl}J6ag$`?u#4+8bk)jYtVFDNOlC1EFjyb;?+NDdWNPC<^YnnDKzKw-W3!h|3NR4 zF1lIC^+to8pMoB0$k!`U@ymQuPD5%c9PW=u04_rzPW>Iu1&#;qMW@($9w45OXdp7% zh%%}!e;{isYnkNqD58PiSS-b$!PGDHQbR^|D0HWaes^`kjDZv$Bqb}yhi+DuH zuvfE8Bn|BkpLkMWcetQm+-vWE)gEtbp54{`WSNYc?sri}brgt4h z9+Xs$e~guwmMoiP?ce+}pTy)V36umUDWM|_7&jk3#EtrVV=gkty++1j5&tE}^>cAz zp1@G^EM{}yA{{+!1OC3kT4zP7I;wTUsIgn+3+OTP`&F z(I>_VkP^DEDyLC#L@(b~%{uf9Hgjq;n;27807=9!I{3Y^h?mJ9>M>(e9YonWxnULm zRtSGh zI@^win$}+*6YI^CJ$Q>{UqMZ%d*BCGv_}c1Zn1ON;IOHL0iIcKElQ`cbTM zq2<6&WU=jl_N@=A1%db<$f>K?@h$F^=dZ#&aLTJYT%%u$TdE|c5cKobH;{As?i!;~ zzUE+n>-wE6{znTD(#^JX7d_>zOm!jz50~-oZN=E-aTlyzC~u7@ZUFQ8uj&yytFiHt z;hQ~qM(ApaAclhT()S2%nqn5?wzm><%sH- zzBe{MCzv;M8ns!8+QJ#G{Q_@0*U5CV;EAY}QQ z79Ev#UEE9p1eZMAEhNN9twi1AMTcj`FUPgWvlHwTb_XY~-4`Tih7w>#rMmUiNuITF0m0 zCpy%?Irf#bxu!~!!lo28k|`tF{T}a=-;3FlsAZJtdqiGiS}W?&0?>_DRT|Q{69xVwwD>?z?oWu3#2=?a;6k&M^yC zH`>L@dxW$?oD##!;L?YRczhoteZ{-bQv69vpb0$J&9bwo-(Ynq75l0|Sl9D`Lz|YE zCB}t5a=x$)BRGxVM3p5S>pBS9mdrfp>@@1R!beCiFU`9tJqYZ}61_kghxb#?0AMEa zX6d~$$7&qOA;mW8xDbZUD_eLA&Tfn}(XW}lmSjDP+{9LTvRgDihlug<8n(~Fp^iEn zD7d9bsVRrr zMH}Hfe8ai*9#OBe@w%R}<>R9?J;x=n@2hHvwV*KbYk`Pz2VfWY&isY1w;)~Y`P;nF zq}4T}WpESE$u>u;j6aF)6d8W}JSK?lCg8VI_S^A?xluk1fJJ0E@Mx_Zo1C2GwoD=qU(|2ijZz(DlGO zmm6Ckm{+E2Jgp?c!E$QMo&pwE63?gt&LCL1s?gdi}`jEpcK^!D8# zhac4>;OPELz#Dpl6fu0)vbJJXVySaO8^RecL&AG3Wxzem;qc>!;I{xTHi9+Y_4RfX zju*Ihx6Chv6)t}F7*@kUejdMonKuv}TJ?3jqCTDi@pDwRb3_feCQ{ru%!KK3-dc)O zZkz^UL(K8TNaV@yc+|mR4^MUB2Zq`z(het>j=OK|LLPDNF-WoEBUMTy-~7Y{ zk6){k7%vgCP)ro7oS4ZpGpHI4LpQF@@x`%cZiQ)?1TscjMeUpP<&D6?V)d2r$g%H6 z+cil=oj22Pd#uuR@_B3*&RrzCkTNH+ z9<8P=%e5v{QE=BWHJfD=~GR?dmP(IT;t4umUXzM?|E9>@T=?mI2N#cS;~&fV2% z=bPIwJMyHnYiQj`vKKmo;%A6yqT~NQYlEh~G|>_7g9rmBv@C>RBIw$?m`69@jVjYd z`va$UIO^@Vj)T}cwamo^&eKUQGx{G;`gXq4*Kx1ejH6<L`P? zHTS(4mVs`ZlypJsbZb0xug8?y_5-eOv|wDh^U=s;jqJ^1l+YV1RMFwV*7%$Ge{Y*I zaZ%sXSq2Lkzjc(h%RXNa4mbHY{KFvu*Cq*pu;}fTEuyAq?(OUgHeY*A>q%>Ot&w!2 zagab(#DF0tRp#OSO(DYT$q;9+2#w_V!`6U4z=3R`SCezKT{I!?%6kA?DkLLk;lsFT zh5IJFjf*rSIXNCtk$b(P{O;yE{6Dub>lc|vV5!^!*qn6as5OO4e9lX%Kgf&m>eieA zDx8J|e}c_OW@|5TA1XC#FpKS?CA6;B)5Z~8%zvSQk2|H9hnpMp=(Mvz8p)UW_EAU` zi8$_GZ~r^Tq%Io%K8JI%v^FdIV~of2m&gmI0p6#pDU=k-u_3_3sgTSKUZPk+alXMc zkOTG@R`Y_!u`#hYilds8xK2X?0)y>xnVhq(b|R_Bdy){xPnt zw4IfV9+hQUuN80KG)K*X8g1~HE!iK-JOZD!K=;10j_#$@$uE_$x%d4kd@RZp_Vq5A zTLcqd{51hLyg;8|bb?-Dq8)gaF4XgEHt@b+ux_55=1n~Ttl>P&5IpEWE#ZoOgf_%9 zrC2S+ON~jD9BT=|w>ch)RA~6BSy!R1y|dC;Kdm6G{qxC_CcWHy79Sv_Y3T%8A3}23JBIM!3{SKKgT^ z`3swGB0h8jKVzFb@IL3kH%~0MxxSa(Sq<`EzT(Be1aTlh`ee_0g#szu6bzTR40G*a zWOF#Q)(gOV{cXQS=uk#ny4irr=Xgktp0G_r7uwNI-CDB%gjmIYP4c)s1%hse34-sV z^XBF#8~1}gelufOxgE*8sbF;gOkmxdE3$z?c~caCudQ>np9jA{g*}cxhvW>xQ&aZ9 zG+ouTtB-Ez5;^q}g+%J{@=BFTlSh9IlukugLw@5+fr%5U0k*d352#ff7~mEntS{x) zX4^$e#zb)NuM^rqLdmTI(B2k=wZ572E!B?L<{Lokykw*4HqaDmZIUl=@Vj&}cv^?@ zH!TJDQC8dGo-`$Nq_p2>5sa4Ktgd<%G{=`v)*<)tb1==t~=nA5{;MT!P^)Er3GN(K4 zKh^89{wWY>%QkzTymN{TI@vb{$#4ZVmr;+oy04)>-rf6wj(hxVuOU?qR6x$Tzq7h?&W1bEb-%T&(R?dI1y9q+mC(`Zus(`Mu5E>S*IV2LtFR-S3E zJx9ed%85TMNWWU{-X`WLC`(-&wD{ULyy*M5e@bASk!>b&BC|pW36r|$TD&3MQ?+kG zfv-H+352FN0VuwrEkwQsx8o%t7-y9ZxM!Py)w&Ur==t*1U)5J?_ehtRcF*zWv9NSwS{WvMFttE90^_2+CF`~LU z=MQ|@@zJVi6Lr&*yX9i}^`}06^dZrGjT$lq|d7X$?9%5ALTor?_h-QjM z0BNU4~u!ZE{&Dj?@=mzg-QZ)aWOW)2}{WSDmw!#|~32GE29 z_)>I!5Z`S9-bZ>GySoOnkq&o52!tsVH^q9z*Cli#ab;*!yIa_;fya~3IY*E^UU}PV zzXdaQ;bar%@dBrF?LsbnNj~$(E>OEUz8mUYJ=|>S zrG4jz0WvEG!$bwL3mqvC=OWB>I7kIL7vjn@?;6~bD86t9-?Sf+aTfngpxHVh|1V)1 z?o4Mz9=vu7C>h=ZW65!KKlFd09F?NtxC)qr(7tTx4fFVXNYwR==BkE zxmK+KDu|C)V6s5W*oC_AbX-NBd)JA_ALrHS6JtoZ3>IMlgA2}yLLhKl=)k0@Jw9Y zgddpOFXa_Iv0P}W_0=ezs}=Yymxpp1u2Sx?{BTxwIMSM}Ep?t5>Zla3mdoRd>VY!9 zbyq?vt%C---*rHOy7f9`oKajP7JI-Sloh5g|6_0tlf)UH~Lp%M} zGAovP_#&VCf<|$%b>b$;1cg_z6pXfuCi&21#1n-F)8H36X|yOlQ-jqm%1s0`)=|S@ z25+&PygmtD3XW(9zGsfa?2uvM1yR-P0drsB()~chEfX8lnqmgfi~E!~U+rGM@OzE7 z0K@UMA74}v+hF9T@L*HP&{ZS~pn^aWz&vvGofUHcZMp>WcqJYWw>|hJ$howCH1xwx zYZ`f_TPs_SNhH#YLJ+$_L-cCBs=*8yrU+s`DEiUT`MP%Mi@tR~z&8`!`)`2yPsM9*#rOOR z3&LCT$E8V=?LF6MaK5fho_KVF^YzFJr=y(PMf_)5PvsAS88_uh9HXvfaU_bU+%nY+ zrHgbi_22}{Sfv=97?xb&N6P9Xv*pFki_E5g-#jCnX&o2p)zia;>Fx;ho7p~{G*+w} zC^12}xOVZ#&HhJdPPq?&!@$V)SwMsKUQu63VdnsFwP(_eNvK`XMs2O1OJw zVC1wUDnb$Fs^-G|j z(OLt@+ZJU1-0#7G5v_KJ>JZb~trj7>yA1y41nc|Z{DGp;*zeFZ&4BmZ3+{*196j$Q zuk$Y|MbO0lhzat$7y0-~Pleh4o`B2(nmnmleH>&zx(JHD?xTg*F%K0>o!8Jw?l<4> z6qc5H=kD3hvRuRx8C?EHuvA~lihM^Uzo;@RrsZWqS*%RoSSSWGb}R<2hTGY6R-pk` zrFGPelRwc$fmk=!a-hQzaai_;nEH%$Tp3E*!lv4ZWTb-$@nL&EB2`LXH1=@UiO@9- zF@~h)!e?ao+jtjX7h1~=z}oWsz}DjWmx0>ItAQ8D7klRygyL>dz;-;#L zI?nOl*J}&*AH-8;#U~h-tnWW*;etR z*kYqJznJeI8*`wqe1ITOWsakaXp=)AB{w}eT&5h-Vx`uS8j%-C&i%%&QvlC_I3TxJ z!u6olAp2$-Y9882x_T3GM@ci`(qvo?gzAAvQesH13-^C_OsLmNb_fH_hDIPG2n_+W zw_&;=+8J_M<3N>t+{w=qbmr>E%{+53iPl@6S*qJ5jlJm~$1d9$4KRHKL*p&=1BeEpV#eF^PQmnH z<&2oO@640ZSx-vk`S)bqr=E)+2zLwPH)*?94HW9;cs&g`w-rmX3?%#Z;&KaqfD;`b z*;7DDw6HAd1YlYyTbjN9CFlka`;8-nPYsgC0o8Ne>e|=WT@JNKjB=g5+%8usvKDGh z!fx85Qt?S6T%tMns$6k}j=H+?PH`vr_SC;dG$XWQC;`D7`Y zs2-5%Z8l5?WwOP9!VaRk*)D7&G6d|Z3)+X#7Ard50C<93FjC;%?<{N~iOjgtYfT~2 z*#>g6Fv8$tpbGXpm-AeX5+08(d5v}BWTcD9LhHHmxIa`1=p2~cogRGY5Ype&4ykS5 zX$-QdE1CfomN_sA%!RfjM}@qkk4|fURppEhVYnacQ~$W4^Syr@6ah;rkmM&qfw7&`2mWip{l8oho2(&}LQGsM4@^q(7|U32y(y2lNt z7MOkMqQly~e>ul=ethApn>288{Yz7Q1UOzR&C_RqyqqPfjh|2I8M+^79sQViiR!8s za^BEUM-UVI8EFG!CW*p~@}r280^7>mbQiY7lhTgq$Ga~}e@3i1Q-z_5-|U>tXjIt0 zOYahFt~q&KOy>Ww6P|l4-49|kg?IpzI*w;3frwJbG~Zgxdzs?c(T(!?X(js=mS~Zr zk|r^7u|X5W1oNWND_U9}W_ruf>2X1x`brnfl9dFESeMTU*`Bf#`+y8$sU1YQPnNcL z!eVvah`sOTOuo{LPejDY`(TNGGCmZeJQ1e;OLO~RWBO+wn7g;{6?v&tuZbYiMHfx7 z!!G;5MkX~&Z4JQHgZLoYt_2pQ!jaN#jpI<3=+LyQK&1mBtTRP7*XToZd}_$Z4|I0{ z+6@-66@Zp7>7gbUaOA|Qp2Z&&bt5hfB{*`f-EhNP`?OLcIcNulBZ16rrxd)4=| z>Q_-WkDvR{1oikeZwveA<=gSXS#djv{^oopG6q?t<9EIEr5KGM^lhrvZlSqt1fSFH zTNxBGM=#0>>|R;+9F0s#XuEt%*kK7`4w0tvIkZ?Okz>Mb^leeamQdB@RmNxlro}ms z^h@&3ZpNQS-UvUEa-w0K!oUj}g6k`09sg&$tmpY;oN+0RuVrIfCXfCCnowFKQs-4R zhUiQoul@-yGRA>_Ch#5P?25eVGMrtqGLEG5!VdMRCh~1QA33^D{pbjMvNPVmOH>rL zTK60|tr5JNk8{0hJ7gP#2gMA zW4Ob+-o8tqRUP4YZg{Vb{(Ot>{0sS(9Z)%|aZ$Ulm2TOE?(emf={9xOa_y|=)377r zkF`@2>@6|JpDfP;*np}ycc!Lr#;#}6)K^@Lbc@T)_EB!;R)nq&R^?Vi5^>=Hqtyh% zA{%lz<`*MV3>n7Ftv_RQL2#lUG8pQ00M36Zh2S%Pv^gireATL#f?@mnXGmNpzob|rUcNYV&JX~-L8VU)#r6wVpBoTgrkr` z`Ypg*GQ~H3#J8T|x|y5N6Cw;14LfV1@)&Q&YBbA;WHosu%Jxv5+%sNzJg4$^d1r zOZPLz#1igea#;KLo!KSWy)IQFbUAFjB)m;0l2Qt3p&;y}$;Bl)C;2OuRvbwDPyIcY9jQm?!6mQ;AVTdBz=y)SX8o zh@e>I;tTX(dEuR=P4G)s_0B__r{vUEs-K(^@(9@zGfv{G$3I&AL8r&vzt=ceO>_Xc zS|n~u_q>9TbFcxy1us!Ef$z3Myi*7tm820Vni^5_4(6k)2aUBLWE-S?7@Wyu@et)a z(F#~5c&#Oow*$|KvWpDjdNClnmIiWs@X*2ctumZ+)v@i1W_Nt&dE-7iSI`||F;EQ@ zeL8seKv>2l1pfHsz;wS-sIUW?V8$PU3X-`Jh~BZ*P$pf@g1|AUj`5Gfotv?*E5Z01 z;t_cf;Skk2>K+6YoA1P|y4e)qNADsXxZ5&e)Hp=0&%W4lr*6mS z?3KhL)U6=e?l=;@g7zF3YOKT2jyJ z(4L&z+M#0R1W@S|sGqM--z{Jc9SAM?3}BVHpY(nu90z6Ove!kCfnU{PcVXIWL;t`I zB-ANadj0=K!bHK0yz7z@+H5SA7~rLEF=7(m6^W7E_;^t6Q*5X1leqjJ5#xzXTLX!U z!W`fkEDg3N6#v+>y`Y;3fR*gi^_|3sOqtbl0ui>YV!6wyFwwyFxjku}>=S2oOW$Fk zHKyb$<=5$@pg|le8S6k8AII|yt2XLIIp0PnleIgcj=rvEVcLl!*W4Q4_L_{;h@ZcC z8`S6L(XUKMYhxs1v?3XJTRO&i)|jI9yuO+l>HN%u-PaLCA~|nsL?GVf_PQRK6P(^T zA~RJkS5b#1=}Swbl%25UsaoEQ4e!mKY2GWPz4!l?kEmt6;s_WC>w%#;)_4Ly=Js6o z_vYh7lJILm>Ta-{;zeCt%lS5_+OU{puud?7ICP3zSgT?r|DccYYrBNjb5s)rTcU?Q z9n}@-v^}-&zkXhH0E@vDkFh{zxx5G7@-aM5h0_=+yMXidGN6+N;?^R~!8Peg=?du7$&kTF-&e@%oKj178m%P0qs4M{jYL;eX@V>hdx?o^6{S^F&U= z#VH~UhPiqAYRwZVFQ~8H_ceS=?!>wFhvNy#boKN{X8qHL{sYC`2Bvd{JN zIN%k}JKvAq_z>rxV~N9I+EHJoP)oiz2vxT)&9fj|iIRPM(M`j1`!PkA5pPQSYOa;e z7`8!$;g+*?Y&6T0Y|rcodjVFLn8*?HbCoYlT!aCBWQ0s`Pa6AY;XSpt;lurfTTK7y z(a6LjH|@WWqg-Sl4AyrV^maplzaZKu6V+?pN|~t@*m`==_>ynrNv>%fM0vXScNZWm zbJ==^qW_0=@e4$c1;uh@;~8aiU)yw#~E~y1rodv{gs%?>HY`1MZ5M ze#(d+J|iLJ&@O_G0i%oFMa0I4_}m+a+o58A^6OO+@E=w`QScOxZQ-653A@WUX&iOW zib~7C=7iKzeHw{xX7O_aro1xE{B(i>EKhh+S6bkW*@|9h8K{&~-QNy!d7fsLnwU)T zIrt8e_8o#)c-b*(Hu)~&K(8CblwNA^OhpKO05!dopgS>x!P-0TyKpuC3qg$*M}QBg z9ChJb0X?pcvmo~c>N#1Vx6QZ0(Z@%61!C_Szotc%`~2h*tEBqqJM3|3bK0hGWbxR1 z>vfaLb%hrt_A=*f%Imbq!24wDDVjOFClRb{ArOFKa9_==M z1zZH0Y|+rDwYNy4wN3QyfIzU`J?|Q^vwNErX1+Q4Ythq)!~fzOVH^nqTT#9f6$^B^ zeT^ydtnTKip&N3UHiB=@CBLKf;tT|E>^t%Oa|Y0L5G~i_#Sk*`c{J*g(*M`pFk{Zn zi516e2=2*XXx901cDd0xbui&-a{vo5am_i+J%TV*cw`76p%|R(f$eN?#UwuVp+h-o z^MQy6KfPuWkwNa_vxopcBZ|7D(rZP|($_V)Ppbs`dTfBMktlhV4X@eX7YHRvF5lf1 zrgek2M}*%F%%{q|)ld(aaV^?ogZfjwfMU=H_`i8fayP*LJ|44WGnV-WjYlt|WOKr# z(`d}!3aI5kiJl?uVy6i{AbHuIm7o7P4VM=Sm*g>3AEN=J+I@b$66sj5nO=)D%B-~A zanE#gnX4<$lWcmT}VfBig>dos83UkM~f7YeQ)!ZAs zrpaZ!;+tn|+!L;5Jy8+<$_#imzp4_>N~(@^lb)GLe3bENaZ>`gQFSU>yhjRlVxfeaAtS{>3&9~_a~3gk_-~beI+ZNUa>>JA)!M` zf0e_(<$vwGmTA2g1qwpnTemV(6tnMEO8kYHe1I(>?Yy^it~Iu=7X8QYQSY(EdsS14 ze0L}?r_UZ6td|}>a5RsMjM!PR;9^94fiRSd69rXrDz`|QQ*gltCC&=;{wc0CYPtDc zo}HU}9Sk7JRrvd}i%Ji^Uf(}qVeFEa%no3-xmD`((*4BJ|1!->nGU{49BQ4}6|GD@ zP0W=M+extzDlX*45X;7}Sm7~bMw3Rbm11SR-QC82(+d+DS=e@X_4Wm~?aDxAkqw3R zkeJZT_EfmeD0S=8XRD2@d(}~pw}dFG6Z*A1cc%6{7%mp6aKuN11LyQ5z`3@X|_v->NT8ULa{+KF}JS58LQ8=9tteaYuA z9?C04G%w`n3R>C*2!o!j0lic`@@BUb=DkhW6cheJCW|?SrFj^>&BV}Dlil`AfgJO& zt?vp8>Gi1?!{brj*Shmo3X9vhJR6?+MVSn5{8c$fG}F;DHbiK2Cu)(}q=$IGqKT@! z_AX@KnmmvzFR_en!ZP^ehHI`)M-;kYT$dy{Ay@}|jERzG-C-P;*9AkGSkEvbX#Kjw zB4`H=HAwUE3b*k%1=yZ@?kaY8zF(LLWHyZ%CuT#c=ZJKPksS zN*QbMZFs<^TU_^yY6K$uU1X3f>40X_#TY{qkRa9O0m~dcN7d9h3)G6P`>CZT;D=^A zk3fTbtRzO*1PjAK=*?7Qf&RZUi}pt(7_UAWP-J!{zWuDefL&3~-2UT?mB-3GamKKm)$@T(3$IOPhrqRsra{RPfj z<0osz95`GV{W0#5%QD(hkOX|Tzhe`j!4-ZLWD4H1I zCU*(+R8>Fc$Sdi%PqxOF@T^L!dan+Gf*s@}d2gC7+&q|VL!#NRB>n{Kw6GEQD(V8A*hccF72*n#&v=&uif26!E; zcrdKnLG(HPWrH?=asgb;!&Gndy*f*_e^07IIe_OeBjMbaMkj z$73DugVnD9jyz!Oq{VtVqv_^&M+jng2#d(lUw`mAYrd(2*mAYK17_hqOXpW>CfxZQ zo=6H_JdS1W-)hATc<@Ry>l1njS(AT z{1bz|@GF#~ALHd@r&#!=u}Phrmq@?GwP-Y6si}G+V5e?MBcj#IL)}mNj>;#wfkir6 z=1ydv?jnF9Hh0??Z}xjzL>w}QiyHq>q`^F*2TGf9HHnmS3=@iYB((&&guOqvOBdg>LS@v+0pVzfn=H ztL+yVH8tj=)^^T){m}~0Bs;8UY#PeCjppW2k+hekJ3tu{%jt#BtSVaSu=F5JW3`MK zZp;E76@{)#Er#FMx?j)COLDj08J7RReW^7+8R}FIBaXzTn9~24x~(X->9>Zn_e;gw zQtoA!Kop-ER=f8nf&x18;BD2H*~36wa6~$B#pIt@tCjnEO#gCv!sQGE%6-G;=DMcf z8K@IHLsLX^z{V$e-YeKhxiIU9_BkUP7O;8NC&!`Fr`J&&_NAMXGa$Gj*1T(I{=nxS zf98hC_@VDIEwZL=ZpU`wzGP;eeAHSG$~(qIs?@-~ngnf+EdNZ=XQ>VIT4A{~7VP&! zXE~KSeI(TQob$y}m$AM1h+*B+%z8zEz|nUI*R6+pMoId%)Ay>AQ}A9MU5NKv%*wwp zMC=tkJAh0#Hao%o6szEelx8@L@e!=wb}iiiE(Kwixgp^K?*plkWWI%2vWXXeR7FWL z?n^Kn`W>z+nCI(;){h0BbImPr4gB|&;JMOq+)h+B%fWcHebr5WJVof5ZyCs{Jes(aBXNm4esk&l_kF1? zFObj#(od|U_sY8NLj|NIxp*s{6TOm$&61H36&|F|-V49l_0y5a&Zt_KVW>G9Vqv(p z$Wb|#{BCeOe-Q0@tV8a9WPJ!ObL*zx4}+9urEj*)Av2PD?gOcnZKNEE4Xa#sUj>Ca zyMMow$jq|uMP$xEE{0$(g~~4I#)RXRaMMDf*C6r_4fx7IQTyP?BsgET*DPZ-0wZDmb0L!3Ml9Io)ioVlwG$1y&h*$WU1793iVuXV zY-UYhlE#$ROLyZnoh!b>4XsjrVAVN^U!J0CWwDIrg`obvllnb)^u$M5>&a$W2$cb-|-bGbzlU z6i>SCxlUW;b$z?%>P0P9Jl?I2zV*$bzOIQ{ms8Qoc+A#)BE_$wPj|6Z<7woP77-__ zy!a<^p6rWCzM(PKMa=x!Q2BaDMd18p-)2)@j!})Lo4`Pvbh3hPL*v^Xf^0u6O0NX@ zV9v8lj_N=J=bYgyar(}WSnmZ)#&vW#p0gai^9R=f&-rrXrQqJwGf6BR#U(lYsvHCN zg@~!NR9;r92aoPkiwwU0+aIx!e3MYX zjJph65pe1<-Dh2G<}68@45>uD(q%l(!ad0xQd=Z)t&wiJ;<5*gejB&i9Zi|%MyG(K zhZ{Uq^7hF(RG~~dEUq$TQQbo>wbwZ;*~tQ+luWL*G{5~#joFmY0yqFuzn%eS`AoXY zv<1HtQvn1ck&J___@>;;v_A&<*#OLD-vZFdb8{skgX9#BFG=&$v_zpV*;J{)C!vj% z#LR}S++;bUTfUat0}18Kv$>=ySyENNCWgmIF+f8pkZt@T^^MNM0DvFTYh zv3LFqupR-U;f>Z#L}K>jtKn1erXz8B4ysCxtM7~&_~i#mU(M53@II!6h>^#)r*ql* z9HpKiGl956N8RjEhb6Js0;c)rd&%4&?v1)OXdCE5_-7>J-qT^8A%I?L&DC1FvzVhu z)~|04Oz*Kfm>Zc7$3vwH(t)VNJC-s?vkJg;m6t$wgM^gCvUvghCo6+h0KkAly{ z89qxV&cT1sn_$Swz;I{Nlm>GL1z zvzyFw>Myv&?~9&64r5{Y&oR=;l%U!5@<(Z57}DW6#-3vZ`eP+2LG@$bVM+BJZIlDr zOXVI*H|T*gSIS(Uj%<@osWvpHSYW6%ASYczidLl^j+fVOU@~M};gb;Z~)iKY*%! zmC9bl*J&K(5h=kdL{iN-mal$x|CB@_xrVpzM+Nz`ww*=zkM6EiZ$6gqo+olf52&K} zPs#n^qpZT@zot(kMk8M_J@gB2{vCOzLrukVdgQ{_Zv{V&gW+N@fs4IqLvg^)?3|#H%{j-@h)|Na^=dt z+v$s;2OJ8h!b7xcGE=22-PqQ>PF$nkn6n6Fb(t?G`P;xI{9);5a$fI~0)ribk6Fu; zAAMG!d%-5UBa|{9d*_Tryg%uL8x#Yt2lXja2;FcgGqp`u@T-Qi`ZdXGep-SyEv|^0 zNv>zr^$%G%DoSb8dzzN>45MF(Wl+wXADzX#jeyM=+^ia$VjC@}g^0X6?|5bop6oIS ztRlI7<;nGUN;KQOr&XSd1O}6K9PF9KQdiaUjNW*qq?D~~4AYqU*62OMmqBJ;*Pg;e z6qvc?ltk7{UQ)f9PZcR94G<-n!VL-&ZrFG$UbR{AhbyNd28vGW+tG}VXKUvn7_e8Z z={#`-&*l%0?T__H7D~FRdCF^3`MWGK?wp44I@_ttk{AD`=5H?dkY_3kf3A1zkevfk zesl=Te8St|!yk^w&8qVbod(j$V@m%q@uqK68j)WV%!f%v$$lfhFPchSa6;U#4mw@E zME^#uz69Bn`%)X`+C%6UXfynd!EVj`pIt{5$iAuIZG3K`=5wBrbKBMLv*x2#sFWX! ztA8NZrcy$QWF{*@i&xFYCnX?r=vPjc)ieSkb8h~i=bh$^2Pt@kd`e5wYM$CAlC8Pk zaJK(0o(g(hVx9a99Dl+xRSrw<(v4PKe=#?Q<4aswTqN0i$S7Dfq%=y78T3#Qtx1Vw^!C2`dDq@S&A z*VB74yLWknH6*^jcU*y(<6<-~I;H$0iH;023^$0qbn(6W>E7gE9&aS`W8x~; z4-7l|iK!09UtKdi$3t%Fnl9^nWVmf~e6;DKAf_`lxBXS&(~$wdI0~veyD-@cFyh&df#9#bFWsijF>6OA}$@ve~8WZ#O__v7ks~y7xi`> zl1cghz2P$&H_2Fb6XB!SY{49eQs40bLeBn6L$5}*SK(z2Igg0l8IqT+UOM|-B(dGs zt+t($chxmf3f$@~i1Fcxw=|=69 zU@r3^^Htvdrxb!Bz!GETLS-CzY#!m=7T@o%;cq33p-x`qg1mGem}O*YwV?k+eB4#_ zq4jqN=g71Sz4!i;fFgs*JW*kdU?#t^ZR<*aj2Jr0e%VUhk|@SnRr*Un3{oF2jUOG| zQ`MDpQ2Zw|J&QTOsv`Evw3UhaFbSM=GfGwyWkqRJISu%0a$R8FyNG7=zQPR2O>wVj zKfDx5TECt{UeE3F+$`~2@XVxXqC&pbVpm&ZZC83m0kJrU?faD3?C(qkk?Zf0fKH1Q1~KxWvPgjaz6d83;g5yHVlkF;C#| zeVj-phivN(%Q;~GKRkVRJk|aCe^GI#$ZectoKR7+Wpm0pb(fX0ql}Q%u@C1QDY6}s zQQ0cW-uoCCCuHxv$FYySzpuA`pWlDs@#w*MzuwpDx}NL$2}%-Ic7el0v7|@5x};i> z8Iu=3yO(az^U*LEYN~_&ZG&Qk?(0PR#64zT-OGu_n;#qAUUKfHS1~w5#<|};vdLWG zw2WswT{laW9#&u67c#Rf0=!LUny zQ<776Ls=Ll8zcz(nDg)Be9tLvc>kztufP_kU=5HO*?nDT#V$KyZ|7^>&$+O@Ed>Rb z6NpIm7aP{)H%$UAJ~L+#DH`gV2}j(W;gYtU4}V)V#Ct*nUkTC!(A&sg7-+R3C*gw|ukL{$sk|gxC#7 z%=cs&k8TeK&^e+q>;I|fn?f3mTk}yAV5bJ$E2EqWkM5s#SpCMs6Dxaaa}2q^~Ae&{SvISFEt;}l>*ITpmld@ zb??dBqx{Espx-wReiOQ}kr9FVE>KM(8$6amb#Avs(^d2FsL8uVDws+c*j*a#h3_y)LqfU+@p8y#Kc!3sd{%phd6CM6YWng%W;CIwaPuK9#>kp-4YA z;+i&{M7ilbkjgVUK{quSck^dfd}`XGRN6~Mf%u^P)g07CR=7hdP5uik56Bn|CAaO~uAH!KEIbr=cd5^zp)v{G=7?+L~Pj&~Le- z7kLKw_Gct2tt8~kj-*1k&-?d*NwEy1)Dle3@?9BhGzO6l!+;wb?%Yxg)3@0@49xY5 z2P^Kv7E#!if5k2bwf5w`YjAmA0&S#{OEYJ1Hhnan$3ORV=VouwC6CurRYYXr<%{vc zTWux8Fr1rFgJiUEoT)V%Dt$s>gS!QOYzmpxRq7edCx(*0rhY&K;6RVI0y~?a8yIV% zuWUQ;&&_2FG-V6kU7LVax-G^`=;m0MSMq?V>5zV(0FuMLllBcp_q2^;8pZRnFw=bd zy0yhujQ4%)>NrYDThhh`{2(khcpLq|LQ0ja!K1*@vYU9FHs8z95}*_Zyp-F|TaAC_ zLd5qrJZ^7_(vQDN_ifl=#+p_J1aOqlU-gv*XZxZM;LiZfC3rfcoF;wyUXlFCUDPb{H$e0F zDVq3s>POSYGQO)l)GiOG>Ipivoo%2>xWvBdW|k6o zw#XK841p!LH<)8;QAGhYx%SM(&#hICvTc&@2i5U|==Dn4UHH*B+{LwQaQO3C33SZf zrNSxH1yuQf88PGv^KnpTitY{ZqpzbR1j!78m)n{vnhS3|ui7kE_&^@rnpHdzfJ?a) z@P4(Lq>(Pm%!-@X^?Ee=3BOoaRI&7kEy1c@kyjnj2D&I~dzdq3COPiXA?jj9>K7|p z7SE3bGr!jJlkxKIkqAt!{Kh9vpAULj1&^<+6&+uGw{*uCz2=Xu!cxm2vJCO!WZHx%^jSYh`3#g=ijFN1B;XpN5N znV-Bi{v)OW`Q2@gE{D&Ed<6#Vov;x3@qUvqN?EfoiwO!97WnOsvBkA!kqijDD?Q%J zI_|*I?N)J@5Eh=Tyb_p~N-|UeWI*<9?$;m;d;4J_4xHxrJM!nNA%BhYflSrGJ)96y zNw(1x7lwD-)I&ca$WD=~tWYuv8xv8tof56~PSrD8VJWSMTdjSxk^Y(%en2r5bO z?mhU5%XDqGXG`w|K8ne|ZFBK@GPsTkm;oRg!O%M(WxSq29TZsAL-b#h=h$8@U*Q>D zQyA>}eW^s&8KA_Gif4*Pm*ngl7_3l<(#%0s+hcJ!yT;rKcm9%6mREU8g@YlCi*B|* zvN&3=h^Xs%Yx+LTGD)8MHF0bAAZ-7ly_=%(5IxN=zkie;F^lAMZ-Pj^Hg*Rh=kVU< z0t7QYc(2d)F6SwX#q@O?S(G1sU-+ZEkKQr#3KJ*T`q;s4t-}hbRjWZk+*%<0Q;Aem|*o8b7U>xDD#Mwha^rP{!$ z_SVTZUves42tm4r7`RutX;9gXGV1S&ilgZ&ETE*3aqI62k7HJmG3~hZnX9KUdBqaG zJEjSAlV#3qHr@9pKYvRIUE&f1R;)Ofu@SIFyQW`l*!mfM<*?SVw$%f@5h(cT%9v(? z3$zvi4yGaL!jhJysc`k>Ww!X>}_9(F7l4=MnGjbclNHq z44K0s*p5Y|N~xx;R#ZvlLl~XFMZt~<1>0}kRF7YCX0TnR5l`5?w3m$7OSS`x1!{-y zCx@DWSk{&8Ar5**O#q_b-lxU@FX2kosP?_fy)wrRV|zU6ZncJ-aqE8hLZs?sI(pAexA^P`9nla=3 z3d-Hw3L3SNhLf>x4Bi|p5eNvV8VIR!IEW+4)U4=+^i7$AFvG&B#`D@|3boJN7SHya zzre5S1*Z#;aY$}MdYHE{_PxHa`?eKeYjM6s=fY zm7&a*Gqpi|%O=8W*rN{Xq8oPewbx3)3oX5lBk?F6o{xBlB;K-5pQ@V>u}3!n!hN6ZlEL@Kn-7ZguH_--?J?$%Y^DLL?K7$zV?a0G;kv7NPvCYa z$6HiPJ4Xz{!;wx#JRr!Dc+)0ZS1C^Z<7^Vmj?OdZrz^i;=Zm^Jjr6=TBASw9CwELd z%KGd89I|a%IQI^>6h6zsh^+t?@5OlA?10YV`tvG+Zq+n<8Q1$A)Z){{>p6puhmwXa zU!iRHX#162P-x&_rvagDuF0uvvN4Hy!$>&{Tt+M6K-6jNoIA7&WX(g+w)En?CKEQQIEo4OI5)UIX&v{`_%@SjpGg})?l_{5BL^XB+B#MNDC5plwSxA zY(QMOzg6a@Ih4|Bm57zPVZ~`6JEJoG(IEkQalFy1J=14hmaJ;;uGJvLGzffc1ICW+ zI<=;wtF}3Go5?}zXW0k5s5ts!fyVJr`zz^GCHVV-Y~)z6KY7%zq>et2oeugoK=Qk5 z3onr#Y2X*9K^*93-=X$QznXm6Yw8?6S-EMpfv$A!0{dKOx%ZeRjBrTtw8+J5E>)2}O1z{g7!*dX4Jg+9ZR=W(y zUwbh6mhxU%LvZ!o?-M-mvyihisU9*7@t2e?0-0&2MT0F^fYD~Apa#ouew|SJhAhfQIl)eAGfYi;G`)7Da{@#XZt|{jj#n@>;JdP5oZVmi7Yf(^~BDZ8U%n-j*%OVG#%I}j=09m=dS?8lwbPKUV?ij6k_Z(P9-&@gZb=ThZ5yT{_ z+hE>2frhb2^)n~ir|{@zQ^-e&?MZL}nxhcGr%?Y7`e|o%`LXA_`ltjcZgOpb7FG26 zN3qa%%;=7as}*hP%~)Zcw+lR5E71oIm#q%Xu~t+0jsEk&ynp~yfbO&PpL7unI&%*U ze`QkNHu*~f)pq_ce0oM3^Y^PY9+WC*!~CF$tKGwID2u_ObcD)@)cB?`f+?Lk-JAL~ z-Dl=RHx9%>Pc;Qy4sUaJY7%_O!MLN*D_xA)wmnCq$@-#E+O$b-YB+X+hC|sVr{t{p z)Wz|G)40RE%|q?5IgNwOPpz2mGP5y`d;HZmujC1f7e-(f3`TERpPR|KXE5abZ;9mq zGgg^x-}%SYVEJXttc+_>$sgNu!xnJf`t5r$`#93$Da9N^8#=ct%2FsS@R{`;2^-tJ z&~qy2sUoN8e+ryqYUZfeuui^Hdd64Ec8q@8-)r!0M)eDp^ZFK6<8%GexY>9DrGb_z ze(C~d$=X=vsiy9-qQ0NvDnu~motM3-&s9(Co<$?hT8V4J4}cir7fT5y(WRs6fB;34 zY7R{@-kh<1LxAFoTjx3?_;7V9o`&yoj7QdYZsWJLKKs}^m=vw~-69y!5>ym(L$-^upr;2QLaPZrFUVQN(b%b8+_jo{4 zIGdI08JAIam-PR!>tRRL(jN-kVw}F&Ao{;7fX~?z8a5zY>;VF=&6dRB)|Df;@71Ep ze$~C*DCX&~Tm2p;Iz{8P?sHX4%XU`N}j3gwz}7g6qZeuj+q zzyIzb{vC0LK3TpEE*0k6Qp_zsL^ZTvRH&l#&&YX1VHR#PP3{<2 z1I^4}MxaBs@u7ar?hxzntiIlvCVnAWP{C;bZkFSkHs{?gSc4kts;=(yxW}~KJhmL| z?{gX%lD;g71l!5xv%Ez&hZqoCKGCt`8~xW7Z1l$+w6 zyG@m!@BTk3+QX%Xc#Fb7o}x*Z#~mNCkE7?29!g$6dJz)2w>l}OIG=9pr2PCL@+vcZ zEn%9*AlLBVO=d$Fl7mIH6yz0^j-IAwUFu@0fl&>Nc`lm5!xuUEj@KPf^&qcCl2UwFN}SMw9^3ce*U$9%7gYsDQ3j2lf-}=-G9oB8CoEOSs zdnt5IkTym-okM=^9vx{qLwJ60?Qjl>xRMi$%M-{QN+L|Q(|$rW(Z+4{sTfKRS|yKO zNG3RbOgWxY)brj8Dt{nOdc~TUid=(aJe}MTe5-I5DUZEmqk%XjxI-9-%wK zt~<>N^kn^90`{4&g)z+qtsTZgCxV6g@M%8~FYwh4r1G5*Q5&!ou2N(1%mXhjr{_n! zUfRrwl?CsoIQ zhr-bF_I~5$W!7H4UjE*!-n_O2xW4QxTkl2CuR^=`8x)h zny}p4cbVyIx#`O9NH|SfU@fO281{=&j6f9=fe4G~o9i$5jtf93ikhA`eD{<3w&Y)| zaOc`BDkiU|j3<-3PW!x})(_}seAjs#;Gv^wBYacaHdDW0g%qM{JspBZ%Flmr3H{JL zRU)m>@UQvmN3e&in%hU6I09b3W=1u=N68f$1Oo3+$<9RJ{t|4wpH^<8EsX2dqAc6H zQpVdk9hV&r{;4Zq5NUzDh@ZF9XmTE3c4&AIHpn`%`u@{oGW>APZ*-AWpTnU2aCzlu zImj~<;P1T^6{gwosb|#D-lUo)RXOMP&pBEl724J$dq?X59d=G}7;!X-aDh6i{dcy< z(J7AK+rW~tOjZ_-!TI?H)cI)|e|x(|5w-xuo^Y2Sewoptz9JWT6)CrvhR{c`yuB&1 zb0zta1bOb-6sIjHwx@E?DkWB>&n9OFU`n>$REc=%p{!3=Hd`h#5{eU2@g2ipg?S&Z|% zwS?G^Pi)tc%2y*;y>6X1sNG)f&cXo~lWRqq=|2iM3}B++x=Jfey-yF;IG6F!7s48T z!R1%mHZR{Ye1lh&&kxV4I6%1o+oU6u(c`+P$-xTmfuQL!0Ly3Yga3_5*$0wnKD>N7 zQzBC)6Os9=uUM_bsKl;f#K&;faJ_Bqvjm*F8}^y!eS-U4CkMjY@0>a_(chBUWu2=h zt1o|>bbDVr-v??`~J@SPr$G9g)6(GlE(odB#z6PiFE!*w-y0Q zr@jqvpKJSuaTbf(RO8( z-rY0zx$3+msJI6itHd)XO;`;Dr;}(EWu!JOHj$;!^$Gh z!h$vROOO32%n;aLe|znr5%~k*y@K3+r>A%*omoUWkKFu&VJ00z;iRoqUqpFjWK!l% zsq=z#VP4P@*tY5c?GS4zHfApPpsyU1!BKHZuT-K zm%uQe4{Yz{W_h13HkALmZBRw`>gX%QgGjqIZRDAko_U7s>jSs)h!2@(rtcLsCNSr8 zCc5o@N(Lz&;a8qvHww9RxgV|A2Rc;9K?5Y7rB)pi@t{yyl7=oa;vDxR#2EEsK* z$mFD!tmhEA=te&#J?TDK+7!GHzVH!#%BXBtUtB^77ns79T7EX{OJJ?f>Tm0|nUZF$ zmq(^*q&Zls`sU?8vR{)ToREEIi?`Liqsq-vOG-E%3+aMSnxnnt`*tG7%7#YGR>YHE z0x+=7Et{kQE+N&EraERu_GWBAmHyv`$$Hu_3$1 zL2icdPtoAv2NOLG?Jg=eIU$6;3|2mNR@Bp^XjE580pYo2;VGU=JX01I15_Q{leLiw z{}$nr`3hAqV0@B!NH^R^wKJa*FQ5C0*`Pa&A=hZgY}7Nch`@=x0rppLqFjlb4;t#2ldS}iUKk{-A1B0V>d z0WZgX^TZFyZROyX2w;=gcDbc!az4HP!Fr2KR%J*fAZ(N)2y>)=)ZJ>DJtVoxtC6@B zz0H-ZBT|;M_IK6*k1fi>_~YI9VX$%q!55Y7^JB&QJ!4Lt%4pE+JAei?M^DODiw3ts zQC1#csou~tmwxm1XUKboT}a+otW~OE>DWL()vT;3%Px z!d%Ih#Gvn5RvNzj!Z7~A!YELRUS@NHDxYpj%+{+BkoWYVtM8W zpwQcYFU`dZw-z9+!AaMiwh)xr|KtoavsXkkLkZ8^p%RL-eHC|A)}VG=HK~A4m%i@` zeKg2JdWeh*t;skUtRZo4m{mDg3$`eKw1#&D!b;B}L{@U~E8wbK==-o%dAwh_KkH!w zi;iC(_l|ImJ6yEb-tIxh*j-!HiJoRO%?Tc#B-L?SSZ_b|E&;>H{-v)fYQUwlmr}r?2O8NU|Q$zhxM)!5a6#};l1Vf(j-J0~N%L|Olzmk0hza_AO``djta$pxoXj7do2x%=-1r~Vn2 zsU$Y-byP(feN;~ix7E+b{?m?zuw3JCbcA@J$#k9v)Q{;`rp>&W zxn6uL4y#4I3nYt~rcXr-77aMktTbio1ndi;9Baf%aip&I+YAnS$1j7t%bc?Uv)B1X zasrI42k$TH``Ak-tw6d*_PRjvy&K1`?Mxn4R4>`N%GAkywV!Fe7vra6m+o{w@$w(E z2Ttjk8JU~IS-)7`Aa^3;q+4vnt`yD@*QxXaU*5fTUf$5_#$`0K-1DY;4k;o%aH%=H zjjE`yIdxoX%q$IdzL(CVUddEe;k^0@Xd#z2Nf^C00m$L>;~M1x&l6F@8rLeM@7fQn z+zAY`rd>IpoB}U}D}+1ABSLA2EO$|v)>eQKb-St~NS>a5D7U+Hc0(hooRiMdjuL+n z`?=&28#`H}S#C~mCxK8HgybkBd(6lh-{NTzeQge=4+@CznfCzdSN_+zPhm`6Oqc%l ziB(qmis{rgIe&rLI<-PlDpxiIxYiw#wrNYUW-F9l@6@$WV|W*`o6fHyXtVI z@2ijIIr&<=yKJCo`?&x`6VqvdLbm2XT9w!!Ez3=ic#&TY7o!u~GxZ!SsSGLK^5+k%gC_ z#QQQ3Rz-*4O7gew5uXV8vYRZ}A z>hz1orM3n`n_;xYvQ(9v>D1$YFlSHQ%Yp6!|Ij+ZT;=Pon7NZRA4qYNIVjkJz_^TR zE?6^yevK8Hdnq}G3!wcCv3{XFil}#W;-H7L|$;ucQn^iPV>N5xZSd#=IsMtT8^_cv8Qyy0yO-KBP-uDK+ zDle3;#xISgmC|VH-DHz|8v|Zrh>gpPc1*$HvzVj{`OOB>=-;G=@{iBu_or-N5+|z( z4ilJUT^A;=Z-3i>hmJ2JdIPE&gHGx(-+FU~rp}qj8-Hu{pHEMX_$c^9DbjB8%(%YU z_sn-YR%1ukaLR4|Wg;gIm;7W3nblcBt=~pegDFJ9$p%SWuiecD)i6!)jmguvzLeri zqx8Ptd4ncs3vt}XZMyWgv(ER>*twMe15EpN1NL}Ma3VGLa|eW&hHy!+)>+u-Gzfz< zQ!_VtmXOjG4%gz@u7WWnQH z&zJP;F<1>TMHGxLz3!}>?wWOKu^&?^BzJUz%n*U?x6hki=+g`ZWp@8!OGA#xxmk8j zGOv~=+Y@87VP+_fS0;);cX4x!+R3qgGee zIDLUEP;efGP4p9Een5I>y&S-o8Or9(C@(+7NjKkmk2yd4Vg+4bzXab>4tYc?j{Gsi z*2-X3g$?2?~Y!-C|v1Q!%M`ijJSc){vsCs*KLBET&$iEpOCGR#=Lb9WlgXMw5Vd*G>u zQjY8e=WB|Wi;s$FD{lB0b++vev~GlkxHtOF#lTGB8h0N(+Zk&t2%|zYURKQa7r~xy zKkHgP(ZGIRF#mqsQcQ6$=X+Hc)K9K%2bpbl4xtn#uh_%2REfn>usQ(`)nfSNk@b7(|~ zE;cYCh%6baE@pN|Xr}I#E~ERS&OVBDpe{gd3m%gN^Y+?CcI7q_>6VT^+N){OKH-_v zOu63Kva56@hN&Z(fiFz8bJ@MOY|G&Eud3&1p_gY1)oD-_Ko81H-2@Vi@jA!`pukTyEy%tjgIS_Apym`+Ym6aKBkp7;MZmv=Ci7PTr#D)ummVrAj>+H0$+}e=E_v1;#k?Bj8 z2Qx1xjn86!Bz!2>2NR4C_KYqmTF?QksNB8HeN^CBb((6!IGu=PW4^g&P9v=l7(Ir{ zx7^j_At$NQ6sem{88}yk{pKG1ZEDhi{xEgfeCoz$Sx0tqqra2`m|(OmP9_w?SPPdw zKe>b|Pwqy^O3{?`TNG)cC&ehUMYQbYQ~GG*GujW;HjGlX8N5c+gCsS{1a8b{a-3xw z87fJ)D2DQ868w=@z!YG`Un0BWqZnunn@=5;8Qy`Sfi}wypyjEDBy}Alw0Y&TtIE1X z<2W;JlJ42g^ks%}@oO_o zN`lxF3zy4{y=hwtvp4<}o@}fw1*w4P2sf9SS7zWCX;r$NZRK|DH;=*@rGGZ#RCF#pJD?PtXxnQoc5j{rQI+$AojSoS#~0SJ0dJ!j);SAn z`NeIg>*S|Sw*tUo88XqF@I=Pb{!gpzoYM@P(-R7Drkt0BYs3fE%cmb2?>)9}aJ*cf zeSEaP?dgXn7!*%Z1SChH=A$d~R6*{edk4u}U%qYkpNM-N{9YC%?(}MDzN$^eGj*uI zIaZNuR{( z{B^uN=AD!G&NufMxJ^y4 zVPDa7Z61EBBFl#gX8HG#nDBgX_oi`EjHuiHImhDj2y$2KQw~sK*O+Z~17&S2Yj^{9 zfW=}E_2^Z|X}K(q*M~IY?Yz`r7&lePTu;w?;JD#@pNHJ<9yY-oQX+m3ZJ(rm7&NKb z_bbxXW>>=2dbd-XWi@WQ+`{v!bzSc)VSqx<++SH7hi*3g0&a$rb;7!+t4&yH zxi3DKXgz-uY5Ya|po{V+?C^J>yQWTz52vJMJHg@%NAB$uIyVK|8`Y_vfd)e+QwP7X zkH~j|F}%zhe;hTYICdDQ-0j{rM9%Z_0o&hApr8=Hsc;?cf9f9|9wb_dB@sD65wOn5 z)%x`uodNEQ`6zd+{WV=p-=yFnhtWoE!~}8PI1X+{&y~!p$bSB*?sqa+2TMBke-39X z%0jJOHr&oQcI|rajb3`70aU&mSTqhYIQS8h1s4hbqhMQ0fjisWc2W~lE;(spY0ziW1v)(kS)8dih5ED*FusuEQ| zolbBpd-;SuTK%M8#k8We#F@Ohul#N87fPP3|DjItwTs z&Lg8Y{ZLum6DyQO#%VRqvvV?-F#_Z!Y|# zEm4!sy|fR*TBn3uBJh)%Sl_nW-A5jYm3Gd}(e-uU%l%k^4pqLk)m=I3fVw#|Q*YPt zCyR|2b?E&^K`bdA=3{H`?hn=Y?IhOF$?k;fFZ?>kTL0oLqh@&(_M%AD_{7RGZq) z+P>_sSigR#;vDp8oAVoVNtm9IRiCU_Lrp4;dQ5i?1g%S`6-FQB3C_mux4P>QK5n!{ zN9MLZAee#_Ms>OIYn6^+lbr+@$r!N#U+Zy88p3g_e`#*YcUM@+ATbcc$zKats0w~d zui-MKcbIfW3Er!DwB8BsuCR4O|@!S*$8Jc+d0 z4IjfS-Pq;dZS;p^uQA)N`hz~!hJ{~;pJLV)*05s8a{8$0cCY;%oFn6(`fF!f=yhlU z>kM*^EhVOOJolcc8%*cWxj~MSvJ*4`q)G2%Qwk^_uh!%ygU#44U4es`KLGTE>HXB% z0UUK7M*;ftvTm%!mEc$@$Jey=fq_UxA3(?S`ZtmeL(TQ8NSgH9w}omCEjx8;SHbaY zxE8G#&+m6Pcsl5W8vjH@Fj&NL)d72WDbxynMDp?UY}Y<@MfG~mFrB;v3q|YY0x(sx#14hFC6Be^!>9Vp zVgUt7V<4VE$Q!|!e%@yf2tI13ifS=cjKd~Pt_yE&hFjTAN_IW{9-Li=-bw8y z8YY0-fnKRg3vP6~<=+PU9yvP<-<(_*c+}mAhu`0$;-Z`gJp8FgzX%<+z$}-*)T#&^i&jAM z>m%m+qTIf=J3dlyJe4o$NU{Aoq+{luO>JJf1D9r+HofjJ1T)-J|4eoAAiA-2y^A;g zijen~Wan?)+|~b!v;k>p2a~a5ETdP!2ZjoXIXRUH3c-%m1XINnAR?1OzH$8Mf#}RH ziEEw2;KNl#BX>!)xQ0JGjW_C$!w=jYS@PryemgDmHFC>m$hi*`U@YQrzE=q|uSBP4 z2&REMVn@lbg`aqgQw^!(&#A^&-PRi6YZ+HImbLG26|>(=9@?cD$9MLs$;GEV#OH11 z@ee+?KJIIfBK9I)r&{qm5!?%vu!|v`%FE(qtx2|jZN=#lCK!9De0cjyq|pU<=hjnq zAkh!sCK=QS+xKOU?*uRR^1px?bZxR&#I$39V>^0&9XK9!p#0HR!?E+_b2sj70;;kc zU``MH2aAM4_$EWRNh<6+Hy$UJ)}+QC{+OilbE2VLn`*#KDf4D>D8I15Ld}{p#Hq6B z5nPhNStB~y{LyMk@!i3TR7E=_7p1F`f<#1&$Kb6~7fbk{!=9|KF(H4X_ zN*1KMbhEx4xS17m{~CBRAbHlr4CaATv#79dP?O$_LZXWTww}nx5V8(pJm}v(Op`d1 zXEa^A6T)aj-^cd9S8rw^G5dcHoR99w8FA$EjAM(1frLGzLN z^^t?U?~GiWw$0;> z<7wQ23e#k+i)vcuYzlbo$J^@{RE+r#n|~P@)hF9KzbPbsc@IC7(MAK5BEKyMxVJ{~ zkCNi8Z1shSI9cB*nR@C7f`;dg_w0G2fq^Ke zkKESmq*sG)_gLPBJd{#?0gcs_&QoArkQGc01E{mnXPC9RVG!%y0__%I4P(-z*Ug|W z1_^1U(3CI?d64w9$|1HJqQi$l(#*O%T-WLBHTZq4k7wBf^F-wRLkLNT!}=qKV`4q~ z6z$Xu3(7GblYq|k>9lV~?|6kA@b=nI*XpHc3j^9&985gO%J8RZLzthSy#C4IwON8> zo*;5zsoW)V`}6$N$yEoe!er;iSFCv`tfhF!0v@gEm(g)&iBnAwaQ>NoHD<%8Rm`-y z-eaym^Sbp~{bn+*=QqYupF^?G;KBeQH;WV36K*%J-qa+Y`|Nuj!RfuCi(Zy8U7h@1 z^K3w_C7<9HJz7(TeM%E4FSOqM2NO4KhIQ5#aqgZE?rhR9p0xQ87`C=w{+p0z7g#80 znxz)PoiE$Kf3Zt_S*EcI>6@d_)G6P&Iw>mJAaQ21^8;TVJ~E^{H90mHrSUAGc&}M6 zj(k5Y1&H!VjoannE#%1HQkItnaeCSY{q(6IrsVL*cC-BpqyFzpaSl}HTWjq)-k)pz z{ofbnT0v#Ky;hCUKCVEjLnW-aW|0pv?(B?c=2&4N zC5s(M5zBR};z25L6r&YcLfqQN5b3CPXuPGB^QJ-O_{M9T=EGg&Bmd1w3N`4IKA zq)^MfYI^A{f4~0pObX>}Ge)myY zQ*>MRje3(zdGbLLwl*)$)K6NTGN9bgLMqoSf6wnw$(SDR0v_o^?eFO7NfuaZv*|$> zJC);T$DSAS_NQ{`n#g0$Po_Otgl}u#mWp==dA9ca3LCkDuu8bvB^mPf>H>yWzu2Zu z%Y_#0@S}UWUAuy1*R00i2i0(=#ZU_XiP4Fj9d0n{x7nouBLtYPbQbgB#nFs3UtmKe-uA&X#C+!`I7v8T;GUBII!<{KdyW zqzAS^YV6^a61PS5<93+C4$xVvd>_;Qi;qrK1FO#(DNCy8#Jd4r$eswz@`AtZKj=!k z(<*0%q5Atrs(mM#`>W3?(4}ZAoRQV3sEnOYlyY0PhHd8B5P2{wMHYyGF^R_foJ#2O z@ND74LW)&na)rqAEhh7^^_0UVqf{ifYCrZ2Ddw)Z6vi`ea6ZeR%5z z&r;TZ4Mv9H&)L3~^6wJ^#SQ+&Pv(shDe=A!WERW@Eg2B`Q^{F)>h3@8Buk#*x8$y~ z9aA)-_6_W=i{Ro-fk@tkqm|>MtfKL0Fhh8jL8oj>nlq(Cj0bzzU#I)OynV~8>j<%J}aq{-T?EE=MEKjDf2Qf~HE=#r_t?MG2>S_76v4KfRY6R?ZU|2l2groYZ~byh29%R6DwFi+gVj5E z)iPof>_t;n`5e!{m}pb}J;5SNK8~d|7(No83P&9VzavpvY3k_vH7_6*5)}h6tHi*y z<+EDlW}c4U9ASMjA(G;UDjdb7#N^u@bG!_`J%unkOb(Dq!DZLS*Mc^|(u8G>qg7wm z^ea8 _(Q3-Mxye%sBgJD*b0$6~l&Hv-oD;GNA=Fv0O7|36>iJC{rcLiUTA(FW65-QX7g3kK&N|*;oplAAkw2sR{z$C)we#IQ3MUxAM&5I32lgjwhBW;NGxtxv#n$LU zmQue34X)Ol;4bHxRcfJJfA^X{hV@RvG~5d#|I)qVLRV3hB6f%D-B@m)nQ?HzcM2Gc z_&Mem^OVyN*E$6q);Lo`wp-c)cS4^{71ayZb{-eY=RPvdQAago8ShR$$9Zld&H!Dg z!fyEUu2#oiE{}iR7@XI_1!_k&NYwUHX|TW6-$=YojzLb@<_;a`eK=G?H_7jR`0k0{ zF}l@CAiJ^qYG50}cN;fHJG3nBe>a4OAVT=J(&B{nVwrn;2w!~@Osgv;OY<$cgF}iz zqW*~GkQ-yt`frbZgN1OBwhFsICDhzCvxat&;vg8U#}I=n-2>&uysBIm~Ng* z`3dWp!zi!+rq21gUHjA99iP4V?C-hl=)CttZ&@8HG@KfiF8)4Vbd}*f98VOz+L-vq zoZRf$Cbsv13cTiY4A4~ikrP0?V9>usOOFG70?aSsn zp@Pjg-?;~SL<4DHT5q{G7|Ji*$kiqAE7B8PW5XRgEgVPW%24$l0R2=a*@uW0v>F?s z@#*1lvupJ3dpii%Fa*TbAA;yGIl}qtlA^otiw%C-AW4Aa36bl(@;T)We|GZuM)A@u zal`3bYQ+NIMB5(({1Y8j8h*yxlU~69$G5(Kw^i5vBVYhp#Z~0l>`US{Ie|l=! zP1zKulnrBv3{(L{8)M2Pd*rWqwnuF}>V?+*Y00YIC2;vmKsVicB>TKOyYFbf^0-U} zVt`L1DR!(nOwc&{fL;=i!~3?Jl|X5Ozwl+@-8UsYBPnKY6u-t-^LA}-vVl-0^LyEj zu{|agIQh*4@tfBaMTj4gW8F&}_NEi$UZLeszXIJ!W}i0l9S*IinhV3UjpOpS$gw&b zFy}g-b|ZMdb}W&n1ypjg^Tzzp{5-$^dADOhe#V#BgfWk!>uhXqDxI|4><()=)K(MY zI?G3~4gr9T{xMRDQax;o{nww3G6dhR?*3c;rBcAvU&vQBBMR|jF$QWe_AyPF5Y#v3 zx?i$kA4VnKXK;Zc;}JEUdEbBM#{A2Yqps79S~{t>NnGJ8a)R>@gcb%{#WY6u{3bQd zZG3uP&M7y&?h|549Fe;CTNHt3I99~+=Hct!20a)>V>(bV6CqlDb~bxK4k+v#LcyGL zKF`xOiOuLM_i{nbm}sDaP^4XFi{&ntd^ok~XUb zz@~ZlQwk5F)XG4JCT6BdVZpm0@PPBO$Kw=p7`pwX^(3k}am=45pKeHG-B&^4-EEWPr)(%)Gkre=y z=tqvlAI-<_)#yaJ7|~HP4Ak-bQvxAf>rMU{y3AQz*=$^6 z*o*c5q8e_1s2D|Q()k?!?ON`P_*7QZexNLvS!cKXePt8H+i0ZNkQ)~9clYz~2Zjnq zh6y;H{#2eA?aFVk+1?MonxsE*XMG@g)!Jfa^!jRDbZPS92r%cf6A<*jU^sZc$zo7tcZ`iF%cah?12uCMv>Ld2U(4OQ zd#6UuAQ8W_v4U74K|M!%i>X>-3%gX(JDl8|>c^LAD(xgrrqcNKc|-AC!y}arW9`LFcpr z_2`J_jKzS(`LNO4Z^z7VnO$@cdGlf{x{)hJg@;5pzVqAkN=HQe<~JYGKaOyIIrMsL zl#9Y%$YCQ)T6`JX$Z#us>nK%BXo5r&@xa1kM-Mq{m5|d|+HcVl9@4A3bviiC*TL2l zPVQc#Su>JcO{$E{ zC};kdVql4`kqjYreg|z{HqMl-^^Z1yONF_lPDiupV<>nLisq|wR$dcCs}99B8eI6+ z_g-R?OS?tBo|+qS`;MzO7%pa|)L5W;kEo6h08N;Omx}V*7o(q1emAGEcV+$J~i%eQTM4E~sD1OHPMd zy`HC@ZnEBuvOu(jZ$vB@!|$4!FDBV=x@|NRFj*ZIy6G`HbH#0nWMpdWV#co_8hsq+ zc?gKU2S_-1!Xp|T7J|#y%pC10VRx?e8Bl#Y=aHI*M``Hghw&(ZCjhl_&_hk*ZKi=; zUc3C*yfNYd-Mx+c&97$z7Le}L?$tl(g34`t4LNok?CNk(nPwHs3?e((0fxbp(D~m2|YmQga8SFvtDNJ@7v$6bFSy%5bOMAbW25sI*DBNsJ;yDm*-s0Az(52titsOn8 ze>{E$Ob^MN@q_OcTo;R{+6=cHmL;o*Q^j8dy(bPln7S#!6Y*E2dwfLn%|t?r`_GZ- zAL{Aqnw)D7vDbvQKlvx*Bpqvi{yolZH*5@r=eUl!RzGlXG!_5%4jDXb^k6OTE|f*g zxQ_h|=dn-9RQqiZ|6$*c&o5WX7A-Vm`6eiPH_eJpVm9CO=6~zKb#)Tt?bgK44?iDV zf0s7NMt4$l$Av{XwlzOV*Q)HW7mCeAf~wJ#sp@SKD@CS%svOZ|zeXSKy)OD*-o;%U zmauN{4Q-$wZ@u#J4&q=$UYk#LUcH0$yYP; z=*F};3v@iH3p_x^JS}lP^zeePQA*)u7al2%eP8+RfdZ9zp-H%xNWpkW<*SG&8sE9O zkJ(-!1nXZ6DKY-^%9F>)&-K(98QGTr0Hf7OwV1LS5Uf};<7&37J!do0nVB!4_%j|1 zraBhwtpuD$^I~9v-m?Z^B(9S#pX_0UWd=ZGK?+(X0`|J+7OpP1qzVsxAqTzpsr`aR z)xOGyfx5fp zH+gydFYj6FW8}lw>l!W`3j=uM<9ntH;E1cJ>H8#;*K>Y^tejMz;&vC89UGsJsNa|8fNJfvoB&WTH~B%Z@1m?RMD<22Qh}}tRA9nG% zBTG3rx?IMsO1b`u?Q$vqFnn zXcETdccOEob1E>#1BC{kwee~?gBK{isDs}kO6E6e~2#u%yydZuc(wR4uE>EW)1J=mk_B% z2?!?{y*#}ssFWWPpKgcH_wGdxRg(YFlCN*{JIRC%vL| zwD%%<1N9$3seqe?=im6|e?mp1Y(qb8ohxEXAp3%CX8Fj}HY?@ErLWmg_>h(K7?GJ& z`YUJn_~PAviuizJ+r>JjJq9WpnqH8~>2mu-s$z-PVxD`UDik%{U(8WF*8#(sQj`xJNck{ZLcRwmEh!yTLk`O-ripnp6-%A!$%G25bQ!aXyv}5yu zOR;?J-pDt$V5)ceoS;4I!=lrRu?}t0hg9=4H^S_n9qAcyn~9$iCx3e95112{v~LT=;H#oU#It0Yfov~s@YlpG=Fs2 z1$&e4ThdZq$UiRRZ#$CibSdZka{=vi_Y<_+l0(n^mRB!}xrp`M43LP6JL!|q`!SUd zyWedGVjuB@xLg40tjr?bpGWlRZHU#FSOHouignUpy`vA6f*FS0VFrMdTD5U^0~|>? z(DZ3J#Bzx>&;LvM>dH}M`HKdbg}Z#a!N!+}SIr@R)%;}fz*HOJ8pMBZ=ZVseNXwFP z_Oe_4=$BJkcKeIQ=66Zww&uU!L4Gp=mtcD$bpjGQNBjX`?t^O7BZdX)`yhVu8g==3 zGgR(T#>W8yO}Go(EJ`sj8>0A+;a~Nv-4NAJc=BsqbFw3d%J&jv8+7y4ZuZ9R9*JLl z*karCVyg1yMb<^ZKLNj8jigSwJ2Wg$pQz7f=NK(IX#6%z7C6qgsH>?hq(ZP(T6;08 zt?^{@{D6Qg-%x}qq%066&Ss@=sa^Vy}QopLb*webt3wO zZm1CBlTtP=lX$Z_Xrk?O9jGXbS9P4k5;RVh@VS3}nScy#^U!21p&cc{9UJ)M2R_By z63jyqh&3)3DX+MGko()TdRCOrV=i#49*!qlbZJh3iR~{E$l0?Itg)-^Q~TGrj(Ey| znv{`I%5B_>k?tu`fZam-Iv3}B%ndu#D5zej%^UBd`PajF^+^9Q)?2aXxG!J+6I1-{ zK#~bpTN&dC&RcI5E(Aj?*%H)iSG2{H?cSUI6jnL(8cqE!p`Y9btGtC@a3jzGe+2Qz zZN>&f7Lx2el`sS_QEIy(h2`}TpcB6UjVIwuJLjP3KnG8NRBSoo78&O%XDBnAe_48^ zb~GYjLn|kowIb2NkqF^&T|rOycRp)~t^;n+`)A>olHdX_qTJ4m;!1;XVN2BYgJLJW z=ofcRHp7EOxNH7s#THuJja(`Ui zVY9bascF>ufySfIm<<)qNz=`ZpAqV#m;BscP!4{}ikms9wlUqNg-;@WezT0&Ft<9! zHqcL&ap*Wd^hMdo3?Ht=ZV2lAIH@J<{XI7O-xxl$TILzY&UfLfDH7dD25pA$yFQ2S!M-@xn^rz9xVxmnM;7rOIknKzT%OI>{Wt(osBSUQ%zuu*iN^;> zh|z7l(}a+j7o9*~b_j5ND6LpPNcyLXfZqws0`|B=6loW;L0yTlw-PEZ>}CpJ?yvp2 zpMkMEKni&Jf*|w82LZo>uS=YtrV6)a{W`k8yuLg5ViSYkTPT79L{yKk*b2g$n@X6EETLX5FkY!=Aozqjx);<@iSKS8n= zLhR)J52=`C-c&prmJWKwF-W5us1C`_rfJNVjDo*jExIr@dq1M>`;Ti|b<_Y+l7+IYHm`}31^%?W>j^kS+O4sQ_umDD2Eku9}(sxRL^4lsOCvQGK^N_s=C z3&Nj*yI_w+0Man$*s$@0%P(0GPwVF;n3+kqZ$a;?{UIuAd_dy&i-)trj-H12TEm^X zp)qP9d=o%^O$qM-l%g%Rhyq^-VotO<%o&`sQKpBhuQWJ=?m_Zd*6TkWjU9P%=gl8Z za)MrInwrqqFn-1ZxF;}7^>`(m&9KB5)z=!<$^cCi!}^_DXX2_6Xgxjiot{>Pwt zgL-{|Q}Gp}nkLe+YbZk&raCtMm{mj+=u*ygwcJtaZWe(0h^<=r=AADH^bQAwUy&vE zFi`-AMBN@C*Qqyb{3vkh;!zgV+Ey6`ib`cGK7a0uH~;E- zarMlj67NT$-_+~sxChj`*rwzfw`zq&iZ7v{-GP85MfY$>8>D!2n_`dI_*@mU(l=4K zVGj{+CiCj9_;jeP(@o zMPsbjZMYL%JnY#Lw7OJVvo7>Xce^t}P1n=$5Ngu9;~08;Dr1_gg06O*`n29`%h>Y*Y*Tl9*>O87sA8}$tDvft0|b~~g1fNJ>T5cMM_iCnrC#Igr#011r{(r%KFY~c z>X~`$;?;hqJyU6_N>O(I9m^&m(cx5D2cVjvbUo}V`?7q8@M5q5tCO=BC&$LIb(K9o zuC^0#KVo?hIBOa8{OwA3w~>ieR7^Em9w$OM99a}xmE8A4EJI>_xhOyc;Ic8kKqzAf zkdBIV=Dvn{X1ga-Ph+j?e$I=gT6LifXg-PwP5D*=M(`&yy7-J-j&486i)C`&34*S-I;OKfHB;|1ERE^FbP};~F{jdS8}{ zxVneC!=LKz+U6#Oful&tbwwSRgNTP!UWu^LPFEy*gK{POYp~fjd$nY+bLgI=kPGMS;(|&!3?M zE*HDUZ76?R(IwBpGP|>>*4g%1O~fTRa!{0DXI$^9(mYeBb5j2LB4L@)?ot@SVtm2! zdMnxJcpp!9I(*zVwS9;|ID!$NuCH&+^bVx`Xu@@FksO6*GWou!3pk{@kz}z3VjJ}aBHcr1=-xA{vJ9lF^Z%+%?UOgnEqC%oKC+v&@2bx@wA6rPDpkEasWs3#E~z~Q@0ZFo#xB0jj|GndFdaNxIQ!o_eE>% zZms*;t6mP&RkqJZMpLc1%?XUhe!f);O&(Qk)}w$rXA93&9@WHam#xJ{YW*GM_W-S5 zxkx)ZO)_;#h4qXQ>HXe`?lcp`H{KX5mHhN>#b}@~1;S%kNaf^RR$4Lx*r<6hS4dxq z3A2+flh5tog$Q6V%EMmh-RVknxjN9la0D6({Z9y`CqonoiFp%O4mwq-r|~;vp;nqW zrD)Y8b*VbD(nXaKUm+M=4sK;ine^B%G+?NhXaCXR!xLL*Q9j$)wCeO{MYvErj%P~d zR0(AF2CG$3&fy?iR4JRi-gbZgIWB2nHjKf`Ebj+2)jr_4DYD1FJSky8tQYvf@p*UJJoz~^sg%|kMUcHf)1YU$j-@=n`>X~$DN4J-qp{M2$`v%q$d4d~h0j75KPn=gt2}(iRe%(Jr+(HLJA5ud* z3BpP$>*xBU*3}!1E)aRU(sG@u&7rzC6@s3P(t0icwo9jQ+>`GnZ}N|wPItV%l=|hl z^YqxBV)^Zc_b+9f8Vl}xUhn8_Jsq0KC$IiThxbhS!E+9&1Q#vrWtF9+(YpCig|=f# zK{MJYr4=(k7(5RVXRw0_8~eW4$M_$x9f5?>*a?Kqgi(CAtyGUx;Z7c4VR62{9ZcjYSKliu-dX6I!>S#4V-N%zXHa#YnnP!B zVX9p12Kv6P*?>CT9hQklCv8`N6GwL+bIvIVP%(touUc?TgSe>4Q9IF2_p-)bLt)(b zW&(Ioi^+}Gia2j~k0^MjxQe2wGGWLw)Yy+XX9XWmmA}mGMHq3TN0alTJgflc0-%Vn zah%^YdG9i^rT#CZW%!z6adFq^L|Ep-hjZTUx$8FvF2UKK9SL%J!Ya)v)xt5#$K6`m z&77ZRF`6CrAffv65YpK%#$5 zUe&0Q;Cx!5v(HS2n4oh`@0d>w7-n}waypS3j>Bb>v8EIt)JxsiEZV+)hw#!njrIL( zNTW4@bHNv9iBDPbzFqj!yTf*mFkRXfwfZT=gPcUN#!vWlWH|2(8{v30V2sIeg2AO@&rn1G=br?Ln@6qfEzDtZ>y@7w=HpB2Q73R2oRgYAl-Q47%k)dlv1 zTqu9+K7PN(zd6iIV{AP)NW*b$pyuc5w9_={N$9l&33ux^h)1p~gVKFhu+gJVeIszk zCk$AMDoIz&sVr;CGSQ_n}YsBp-(-1;2-yXN=5dS ztZS3WHF?whzfdMSbNk~6I@4+g(!(?>5xDS7rw3bdi7sSEjS?a1oLUBqmWXRWn=LBn zv@gF&7cH>-tT8T0931G@+PYf|d#ppaS=~=umutKJGjHki!SgivzxcOZ4)V9qA7lAl zZit#V|8;$PhSNQto}$tkivxS?aC-*k(o{SO|8RMxtjmDpnWCf=VVCD4th#e(1duwT zL{nsQM{l4e?Y^{Lo^};ivc9wPy-a@TYa*t4v#pv&NuQ{)7Gzit9AUzC#_^7RSottP zSsDSqy%eU#`OOgQlYNYr1_Dvdh~^W%;bVPe_FUMG8y$sq+CgLnq15T^kpQbL;o2rFvZ4F9&Sjze6G_{MscSgf z)E34Dq@|7f8ZBtG*9~G}4XHbif(p)ttb{ykyJ@9&HvOPJ=Y2vzVY4YZG^%>zXXqbk zS=rj?Z=I4eB-7;wo1QYbwmW6^mNwZF-jEaE2;X)C=G|PXT;NYWLtx$wb*+BT9F(@j zHp+FX&85V$%AdSxFSfUYj0#WLZ(U{UkhR!xu*B=?5P9dWar?Djo{JXEq}|nK{zT1j z-uBv{JBd$SgMp-Ft!iU;Lwqkvc zD3aTmpAhj?LpxtGoT4DmW>bG4u}TW-p^^FH&$09}%8?%1$Ecaq#P72-iIU~xIDlR? z7n}zT665qZc@%d(7Y}Fy|JrHB|iFy%?T#ZK_POMVLL8t{LbRejOqvgdiRXdPC*QC zg|H2On6a(&XZczm?{E9fe?q!=B2m0O&69DcYL+f4OXuLier4l4i~SdrT`k-s;#?Qw zuxb4aE?+q9o5n=a(yEwFKl@fVe=L7g^NUX!n_6!ZQnSHQT_BKLp)$VO z)smUqg+jT+QZM;p=j=YSn1I@HL9pfkaMOO_Zz`E20e%a`?gw?BOh4C6XQ0=cxj}MQhDmc)Q6Rt_hO{`BH+?JHXPd@iPpB2 zB5rRTlT6_6Y^0c%D$qwR=yTf}^sSgRe@60$pae1|qIG}AZMkq`m(#-ew$;0AQvbZs z$tN6?m`C#SL9v8+5=dTc&G8v@zI64TAmdO#1qfzT!5nEPWru~@ad_BaQ`dev&g>VC zU4r-B5W38|pUDfD{T3hNX^UIQOvsTxlsERwic3eVWz;=rZ8a?O4^a$Wn93?#%g1T_ zGScfWC0(pmUk%V)zZ}Ois%7=gL*G#Cv8J9VF0>PWsAJPe*D>3EOg!i3k7R@H`Xb8A z{o}j-I^@-^zZTDF=3GpN%(Y4S+VEx>d(%nTDO#Z| zzNR?)5lPoORgR6Al4Ums+tDWx<`|)=bSd>o_Mfo*+Cp4-u zFIS36XC1wu&Aof%RGFyHWaULOmmf#z+m9|LDUZsuWX!1bAj{?oLi4@U1~b-Ww?}-1u?#nJ)~A}h^i3Ol`!^g(6~GvdlOfkz{(+akUaZ0Q9q|Bj z?gx=5`GsJsD()&uO%mc%L>Sx`1jof6)muq*|Hw$py_H22m>?TJK_`X4F=~+4<S{oP|3n={ z{o?cv1FLgOdNG3(5Okhvz*RYlknSyD(`FbtY#VY35TmWeu)-}C)pVptpH|mIL~L6y z3d>}ca0U6Mi*HSr)LJApbkP{bcHp06uhJJyIQ;W!`<9cf25t^J$U65LM~$tOp)13R zlM=CSn~l%X_v?+ZHDrVMV9p{lMD+tjaLMwd_|+S2h?j|NmpOhDX$FR(0`go(euo*e zgMNs2(2p2+o+$9j>1$FQ={1G4A4h; zb1t{~K>xZh89SW-&cdIg4l|GA=t~=enw5klvkW2QEBg`U$7kXNQ{qa@L zS0N5~#&pSr);}}v@ZIJ1vuTB=C&8bkui=Bb^G53wgjEQmwViVqze9;~*RXjVKB6@f zb0uR{D;UZoS;a~C3M=Brv2n>C1EGtbjxDW{`ft?85fEfFqOD{-hRUn=8W~J|?8pvb z=y<2PFcM1^KjE+o41Q7NNCXx+hb1s>Ca%w2w@lM-5|Z57frFQojd8`m;700$h^g7Gw%aO)5uJWWrfX{xF2d<|r(G8~4|Zk0X8Ye`we74S6|J zEbDZThO?}W_PkfhX~F}`U17E|k$FSMNTd{~BRCIGq9}G|4NLlJmXgx%LoQ^|FwrVO zvnSuqp}xD?j)2C2BXXG^*|EL8vrQ!@O@Gh~3M5d}7D~qh727CQ*}m`Bg)1j~h7n6= zQ`f6WH;^jc*7MVYJk!CfZ!=NyQlTl@t_go(-wqJvX_lG5S9KKKF8wD|HQCqWhcY!$ z-ZZ^SgfgBhU*n)-W~iIB-o}$L)v5}X^q)T@-IqG}w#t6&TV^ni9k#b@L6_T$`L_LQ zjGGc?^|&LV;3i%rW%Q?CvBDWX4jT3bH!GxRB0`t7#jmxBbI6vVE~FHjPTP_vzsx2S zg3e-Wa3snNLhFX}sbO_Q%Sl?~N|smRavN%tiUMn*t3m}pQJ##jf(*J6bbY%Q5!3wHC8u1kY9niFrp^&3GO(I6mOU>4Kg?oeAJa6K& z4Ub$$N8WP4a=A-fX`yhN^0#?4@1PGodmey9EZC58OiLrDA!6%>FRPP)$a3$wXO8ZR_P}8`J1Q}s77h40j;aQE zv=i;eV$wc7xv2ofAN~pJ$S-r&u<^oqTZVe3WU(QUe|`1u;p#FY;Jg~_cjFQE*QV|8 zdr%Dl9KHj}E>(Ji)FQ_U8vzmj4VONBT%@&Dmv^^xo zsvP?n>nvTGn1X#X`C~ZTnKy4;Xq;SHO*LeM5>~R}6PM@Fy0dEMJ<-K-IWULxwQVz- z8Q}zd7+M1RD`?v^EONQ{oSI-Hy$7Y{6xu!Dy2S`sUj>Md{2jdpG&;h?R7kB|%^Dr< zLa7}NZxgX?HK;-KWZ`B|E3Q_L=A#%IDuhJm@|n-tK~+!q0*50{vZ+Q@fPQfRqDu5h zmEVIIxfvhTWt)X^?WetONDyv^!za|wJe{s?_!J?0>&?70vpB_wC#FEZX(rVXMqY5= zKm=BwXhi^)Y&|s&qjSI(C>3?LTK8?vE}A-*eTFzv>bT`f?VIELQS2g=gRFO>4y9^+ zxME>q!!Q@3%mqx1`VWTux-rvZFXKd1X1x09#ERPjovGD$3d7=jx+6@*QRE5hTS0Y) zmep}p58+DOF#r2}tWVo^^KA95?(hNn?IYc)KNkuoi z^_c#(as?*F857srer!b?pGkhlluJ6|(4vg=y}>?ZPRN7nj?F1ZOM39J9R;LXEu^<> zXe01j-w|SNbhx|anfC7@m{<%U!eqOTZ9`~n$&1LlQBG6v$Z1iSKdY}6#4!CG-ur5$ za+T8H4r>k@Un`!7lY8;`F%}mXp^8U6DGll28BEF)j0mVvmq?Owith-A-~mD zPo@Sv@jELtx>{D@jn?-usb2aK)Xw_9g#X^?Iqx@O*Eewmo5zj{W950DhI^^hH0mJV z*o>k&dbTfqR6xx)h>#8~yCKAJXJM+W)o1BRu7CSN66jFVw8Q#w%PL_j3jb?EG7nU# zw{_5|w~HnlY6JKXecQ{(ZSs5!P-v2qs(-MN2V>_!Q#skyH=lGKr5{LeZ~KrV%80j0 zCCK@p*o@`T&cIMUhcay}T+Vut@9Dd8l{eZu9Xa92l1;J_Q*fqYZf|3h;)^XKT{F^A zm)y1tP!w=@1$qSZYVfG!@|z%^%XS0_4 zx}x8E1WA7o`eTkprK7RM0Ryut99x3{x%8WI#j3qGT}G8%TaO`WmkBpHzlbo;yM$qk z?3&#wb+$6?M^6uJuUOmK6wR-5$`a=C4$~hi%~f>Pu`Gw?j}YD;e?$HaT;@f?r9V%- zd>bJ6y6=3_M()|GVtBYx)uUA8WAzD!0k>3tXfR(`JV{e~!QE>-*!gd?bCcu0SRf%= zW&--T5`d0>_|(+NQG``5h3FV&q$w8xxU*-BtOed?#Erlzz8hBgA1`&zP>BHD^W1@c}`JmyzspAgZ)}Ke9*iNiy8RPe^ioP?yqeo5=j!fFk#5=`Hbq_!Bh7ha^idPOkiv*;PkD*=&`)3fM3jx%j58D*w`A-W0Rr*}HIiM3T1%id`rdl54#y1Pi zK8QRPExBEouHm$ial1#FhaM=Q><|3Y94(Dl*w|lF(im|vDKC=ECA|Je<*Qo;>(zT! ze`>RT&V0aWq&xM?wO2sy#TvB;dH=QtdY}!9RBCYcwe^q*mUe;!fx2dhE*sOdIuJHG;LVb=tE;jI?Ib>Q5QYJ9?iyVVu zS(RXYf}Hm-4xKmgs*K+y49RDMpv@4l9^->s>gUKqUn@IThl4lFOVrnKNpb{+Q5uSB zBzz+&jMRi{KBeD$sJJDv?2;{|k%wMFjKroe1buyHniKpfM~ahr*J=s(QGeaM;o2ae z_FCd4fAWE|&N)|$pIB;g7da>>se2qR1|2yo5v$jQiM79!e)l~ydvXHDYlV)8M$A;MDOYI8dX_5+>^A}AhdOgQEVVP>TZZ*$^(OhtMY@G4^`BP*= zTyE8pQ^%9wBTiP#i#=(ZeI+fz!->idAxaZs?kl=Xa(?svvfh?x0%wy;phaxW>VcL;xxk#63f=@%Azg-glH!!P z(0EU{srQ7RM}Xd{0+-cXl|GXk)WgoomEK`)S3#xclH(HXE~)4XUkPP@m7r5N?x+`j zPPEO))cNp|{>q3jDpgx}xxb;bUMQp}vYO`yS!9wDwEFH-3+D}?HzAb~DXp#|^hMW# zhxPzgs_?nAKmW}4&w4J`N-mf0`>jpzaG%UaXS0)tq{Q4;`^k|a>WOwEL+V$MPeB7C zpj}S>dQ+Rm9U-LB-elLNv-4nz)~EvX2StnXK1|yJvfd!fVfG}*RV`97Nryo)m6Z)Z znUnKIxJje%1gZom6M6vPWig;|bTd}Y5><9RTY!W6h$0Wp&$7b$e;Fa+?zwTIFe~iq zrlfezh{{i=h80(|s?vtNv`~YY)q(nVs+-yGHaZLyUGRf&Z~|s0jSsZ=nwt#5j67{^ z6UrKnH+;zeI~_E7Dh`(@@7n&=oG)L4sls=)#b&EkD>EN2vvv*7;@90G(Qr{g0|%-K znoX>kxMlKAP|fp4-Gn9zPe+6WYG6mU9C`bD*bVC{O4k<)I*hS3U8}3%6P~8S;cgaf z!i@tSDZ;D6Ib|3tb5kJ)X{@q*$q++GEpD3>1(n{9Hu+paxzB=m{aZ%&Yg)a7vF=>#|MXl`NDQX*v~gUPY$N2jF{wOW zx`!7z>}9K&4hzFk!ZKu4gIdeJI4Go`k4MNw_n%=r7p#0=1*BfYs!z8ZJ0Tpp5!|R; zIeGwU-P|x}+#l^Pi=ENgjg@`D+3{`35(BJnB~YjZ!6572S!S0;?oTKRN%3o+p{C-N z3M`KyJC?P2&dc%Vxzq+X%qHcQ$D2u>ns1D&e5*No9Nr`tG!3l0;SEsqF_X!^2fA(7 zp>CUlGRaPD`iApY$(+jTpx?&cafaeAm(0vk$OR0~9)Iv@8?s=|?iwJcc~{!4Sa^d2 zxoopfYsPLFypE^1wnW=v+w&$TyZAT#EV4GYd|M=YBhJ?dog#VEH_DZ$nUjVOdZ*Kr z=Y87W?dY{QNm;h3Mral3H~r{SOq{6rLL*g@+R)Og$x=LwM(<->&MitLHQF!=afsm7 z2A9e}Gu%mcnOfZ2B=feFf7&X`vV+ZVM_M0L(;k5IF^{i+IRO}s)S74zz>?{LbtzBE zU0_F7zTLADT_!Kv_&JF=5u>&Brl8bb=T<)=`0To@;Y=bYW+tloEWJ|#+xOEAFsc^; zsqb9uatP|h11E?LjsnTsdUW46y6=K&Z5rDP)y)HSQI5m(0U&TOFPLH?(?@AkLuZgPRifO6Dg}=xB3S`AM{Tn`HN?@r;ZY%TTQ9@unye+Tn4Pt z`~wu$Nx>O4F!7_Bu>Iff@&EQ@vKi`Vg?z55&=SUBr{rlUK`EU`0(0!Y zs}IMfH5RbcK`vkqvHL@{lo%#ZwW{EJm)-il)bGMHNC~7Q?JrMyrEAhv^CXA2a&`)I zKMEF2sGv0diSfDh*~?R?pP=jco1aQu;L#fY{rx+-&yez8G(g*PQ_D1BQ~Z}o%bpa> zrue}iT$?O5ELhj%lk9;PT(T8&`5vs9^b$zuz7s9`K094aw{cg$DGcfp$=|ESVS!mrIawL{N)TK=(n zWcca!%9j6rlm+>dWMiX>Lj};IA!A#`>(-A-6h^4lPMfA@}m_Ve3kI+!vSQ8j^97dua(Xk3(G4nAyR}D~pKEmb9 z){p2EkOR!iMR?z;pyyOjN@_Sx(;rSk-Aj>b-8qOX-H6;_Ug|6Kh@V=s-MdrHS;cR+ z_db-cc>>Cx#Sk_7JfLtPSCk1lA5v}}i7 zKgqG1w=o%ZKNvAcUtvlQ8gsX#_R%`bLVB*`gsgz-Ywmih@l2fj>U)&ZJX)!DpAtvu zH8bPg4M~9t&}uG|H6F;p{sR#)^`P(|)4feWLC<@^}N!4m2(9^NyhW_8^?t%Vm`vPN>uFmmmB%UeNu2wL>gFWgknZ#O7Ttf4BhX_ zadcRJ5F zgV@EgZ!;%r7?HArUfc~Z-Fw%G?^Hh7Y@|a;2J^ z5iF;QKvnZ-&b!jskg7Mp+jJur@8{Z&F^QxWV#lZoI6sj}eq5eap61PDXB}{=W>Lch z_xVfkr)_XyAXrWT4MBlFb{$W2k@4ym-Z^*fEn$rVY`EU)yi?-*06WfH=nL;XZl(@* z7QRKWKTZ8Wku?l{C^7#Fe$)(#q1-+@@h1bjP|1Xt!H4iWocW(0H0MDr7f;nw8GX_H z((#NSsin+lo$(263%yx+ONciC0{JN$+z;0yv*)vT;E32+pe}l zbn_&AerST48N+t!%LtpIGMOO(7A7drQO5<|AT~gBng2Foh5FhdkOt=)e73+_1-en_|_gUC&o$|4~RfNou#1&{p95 zRo{B#1VBtxbslt8XiX^&NFuAQH(j=VQx#B8? zO>&!?GX{7j_UNOKIBPkJ4A&9r*{D_ zzJTp~uxk7Rw2$P9Rrr6^Z60k>d3N7K7LO;BQ_2Yt9(ys!U#!5YhQ_*PUfBb)9F%eDX5 ze@>(s>c{vzP;_y0pHsJOZHj!WV*)Fk$j0}9sA!(cQ1?>QOZ0AG%f<2GoB+6D`TyS) zM~uK;cRbIvtug!{diLS&#`jR-QhS)`r~ln#!nmpPcB0VbIDQ3ZSLWHlr%;ejCs}@Ep#!$lAyn#?zK0dE#Td@|1G9s3N|^+ zhcd4m*1TPXR9(&6i6Zq$%5aXc=6bLm4$p|rlrlEE(b0mPTxVLJ-y)G@K4)kpl z+Pk+~&HNE$7UCBB>cS3|mcR1>0(0H!yuTE|1_xZ+WWk-W4&C_B%f90S+7*xi6 z^z#9S4Cn-Cl?rCz#ocDD=_hwF1Pk@$Af|O#bSEt!-BQ*+nvF7TYPUkJElyS*+%^1* zf0_kD7_>3HtW0mq2Rqj+8Lr*+J}D~g6v{2azmvYE68YP^claEz^&En~UwfXg?YQr8 zQd3?GsOZsxFG$%8PRtpU&OmrB-E_wgQM0~X#0I>w`bm?eYk&Gg7}(UW(eQ5WmB7TQ zsn}s^>!A&bEH=k$4{e$#=w4ikseH*h2mtQ$kbo#C&9aNoA9L?41`0bLQ<}>QROyS3ajkJ_ z)-^q$UDM%kt5>3;B6l>ZJpT)7lxbTl5)%5xb#|$X z?|5%Z?DkU6u}wxRVkSLw2p8N$F^JZu+lq~IsL?Uk0m`|*)Va1 z8*q0zk6BL{gZS=-$5*FIyOzWGY4%(!VeOXHV6;IHP4Ot`KfeiN*+TGNkZ6SHJRYbp z-MPkn1HSe(cun1@}%WkfB`J5^HuY1~5t7rXeU8-99kPra5+PgVVyN(&lK&Vn+ zv=gPBOs6Nlw`u9BteM1X(s%ph1}lCbwHH2F7TuYmp0C=#C4&5^Yo4IeFk6*0&ZwRy zi50BniD**A)_7!rRJaBIPf$rS88jRatX_KQ(R{w75QwnM)J^5x*W8!bR9i8;mSf>I z1SwMFz{+YS-s(^Q=Z~u6l&ge5uZcHr6y5siLFJI(m0-u&yPo5M<@p|O;4Wv@zqGo) z6iwi!AmP?g&xhS8e|jRg&}I4;tZljC{AQta>Yl}J*jI1H7jn+l$t`?01&r(leQ%qu z7eTKG1nW6LS~1zy@S2IcJvy;}$U?k``h=nN_>SdE1OQ-A?c~fs;~r z`0Rf6k37GnaJ|X(qmnzTIk@V8dCjmkDsR0T>Fu{BxTc8&I0H(8ZAw1^D1Vj!g`F$hBiyPHwWh?vHaRc2In11Shdj*Avl-FqJ*UcXTw*nj)>#zR%&*wi|lkoN(Y zgWZ}~|Ir7Kg|z8yF=v5;I`yl$M-%G1)VJpB_BNF(Y?!~OEGhXo^Xu!oXS#r1^w0AN zRg9AD;Fiz-39Azy5_iq6M{6|x|D5e?tJ-zh`f2LGsr2)A`j+_E7wn!*Pl#D3F zKO0{rhrD|-TW~R`$1@8L8Psg++N2P)cMtc%wJ z7LxuujP@!iiGDC8?VxMlG-21C4qMkcoRp6OW-lG_v$VLF5mZ8YM3zjyFl%cz&Ul4K zrXWanc{+{Qr|PNR_jFI`40M9X*y)qI(_51so7tu@rd7>H$J1Qq`y-73kPejH&83{J zs&-*Gk?#4g5Ismahxe=9z=I8|RY=qjEeIzAc>nlKQe-)YvB4xPj{|AFg7do++;OlmP7UWCO!itER?+iZs=|*8Jvh`nw z)F@4QyR#4MiP#<&>4-pXZ;Ymk*MKI}ZdzK-y8+c3=S3I2v>}480U-5|-)7kKfE$V* zMrq>xH+oCv=Jwz;Kr>H*nEi>RZCU;45X_qi1qH8C3Nwq2_*m|lG`#-lLtf(t(N zq(~(z?>0dVKDb~08p2N68>28%)M(NGQp4uIp(593|hE5UYxJ(+#<^06DQe>anpjI%-It=J(E6&ar~tvf)OFX8#Qk0lfQ$?B(}xI(5=IN}gmVZI;CA_0a8l z!Mgsr!?)UlQ+^l;| z?*Fev&7Bt7Xs+36_Mm5%6hqq78&~O((HWAHG*W&(DVc?fGMsJjW(e2#43z@>i~5%qii?cOQ}}IEZ^Emv!0?FH?In@I zXoFsaN;h(UvVWdKOj2(t&6uy}NN=daiM$daZSx_QTRq44;y5e>+_`Bc&Lz3VtovF) zjU1@Df|NSvgPB9lx0C^6k7fs={76yDa@491Q>3Wzon^9kAnu8VMq}vsrjpoz(3R`*4I%CcO#asq<~l{awaZsH25B%gZKN=kD9%xWw$^pnr zfQGwuZbHir9SC8E%ZAm6l|*LB5+b8F*v4`vwdnRl z=v_n416}lbpJd}*n9w%S&z<|fZtz?$@76C_&RuqcHbVZ^&Nh1yhG@o3DG^Gzj<7`;h5tql{Eu54l6|xro9$1Rk%TNv0&l!$$5tx)=k>%_e0;0Gt*@)gOGvu0Wz*_JKuKS;ZBfaSH)l1u^ zgWF6FiYC;peZKJaMPcHR`A0>ZggwOM1{1G`12^rI_`B;Y;=wDlKfMN5&H%h{WM(}0Bd|y6H4Dw)SjN9H~GkjR* z0!$VoM`ztXny3pv>!|K=Uq&j*{ky^oI-Oey8(F~ogl{*}J!Q(S*>$)(MlQ)${wru< zYwXsODNy&p=eXluHNTCe^7XUTwh4h0-U+tQ|6MDk{u!XN>;%XwwINQtAk0YP52ycA zZK?$6%6bA``|k^rg;Kyf1kDAY^GY%UqO8a*LDyW-*xb*UrkM!TtmCor>5m~4h%A*9 z5aPI1If2<>V)*c9Hm+v{{MsEOa!`b%1YvGX`q){60YG%!52cGAu9xm{px9&&4k|j0 z_ZEgd5(zTxi!seq3?Yy_jW4&7qm@;e} z>($0d)BQh&a}Mgg6;*IZ95jYG&Lq0B#^ZcI-jiRwdw+3SGBwwAb1zKvOUC5`AR+eJ z)|>2?mKY-*smAbxB3v$fC6;4d^Ooyy?9P9y)9Drz9TozGMx97_twJO0tDQwyCUH#y;8Uh_UaCU9t?u z5@T#*^jx>j`JB$@_x(N3^Y`=L;2!sVUH5gpm)HCCdSAR(y|+S59(#P(RO2_X)a1=b zK>I0?I+WqWa72Qjd=-w({vBTi3Y%mQldZL8&%7e*b-2-E#4C(yHlm216-f^p(Vg87 z_E*RSW?;TPe!S0l++1OC?LvVS{E2g4eo|K4BYZT+u5GKjU%7m_N#8nm5~z8+tckxZ z8Ida~x25VA_fzhbR9}8YZNIGIFh5w^OTJ!M?ETZWt>nzfCjSyBt=U1o8dK?9TVbc& zuWnN1OLP2T@AZQ=hCEQ)KC1w@7!DBfUDkS#%O?uCA6>N-M%93-cXHg{2Va;I8RL~5 zyfp>LS;$xppGY@KfVC}O1ZH4zyo(vIyZ<=bElqvB`CJ~uvwRu5dB+Q={+;*--9Wp+ z`t~y`oKZw$uZ6Pw)q$l3>D0>YDN)B<_qy{ur1*uDD0LppCBWNih)JwPNs zj*@bFNDc>wgT&YH?O(lxv~b7e^H#40C_Vo)OOEpc%pMQg(Mvka6{Fw!sZWgj`mXkc z&wGc6{@n{;MR#nzn`R5*O&NeneQO%iBc|zC-GP-WuZj-;;Qkud{l)l!o4qazO*RnL zDzg<(nTrSPUAVzh-`zQX>RQ5zZs3{rp44iWWga7zuHNW_&HEICQih#ZIJANn>E{eX zxHYkl%tW)S`2)ygKED6)|LCHB#;Je#nO6`9{x;M{gqW6>SY@$&$9Sh|E_}NoyaXI>Y#jy`WrV)bU@k% zRVGx~pf8llOWS+P2_O^KQbm0}E~7ICpp%h{keg9R8|5%Q?y4K2_B1_k{%Q5FL&b9a zS{$)rI<{K|(yy^e4|jmWQkB_=uZ9aEf?MzLnM?4+mlu^UH?x_Tt(foBCp~TZ>=er@ zVW&I~cbVsFxMI1P#G4?nq6*vmbE?GlDkAqD%&^=e&nr4|r`*Ib$yWH~;Qak(mFO?;G5-YG4-VGe1_a)bBWpfGve$phI>7h!z=mMp zkqt54w}D;|wF$NcMWh*791NX4C7~_M{5vGwZyn?BeZPx8pV6IL{j^zg7p5uajOjjF zHCG8+e&J}c{Do74uZlZZ%@n)wMTGB34RX5{$yarC2|5?lt4TYlpbZau13CTL=Xupz zS=F*uTfP*>oz^F_sWCWA{PEIB)2IhchC1xhj-ic}tz4##&F=6d@35SN7cjQTICDmY zp5+M6C?$NV5$LPknL{J&xo7h&wn6CjE#&|065do9Jvm#{R#%b%#2W}vQ8I| zv)q7^t9%nO$h0K1K+5$${03-vf5BCtwL1-QlH;Y(y}1%%Cm0bejcNxQ&kpe;r3U;Q zzM5SQgEX=6xUOjV_<$m6EU!nAIE%ZK4_uVq!>?`PVg6!8kZ%L3Kqq3hW@|qM%qsIq zX(|Bt-!|8?H*0WgXULb=)&wtIwH&$tR;~>QG--XUSU%@P4exK9fuZ+j_)5=ajWs;u zSHCXM9oo6RJkwktMVOFSKSZ2O&f{oWf^@w42~u4{`B3{qQ(v)#{qDpSbxUH zNi0(_(Gs93fBh~qNRO926HvZJCD=-LWnBk|y*bf}e*Xw62 zT{r|b1SyI=fyhc<(DwkX!xEZW?R5A}A+jLecXDJknSIdh*j#g3o-%T)a{;oO&^g4F zJil+UIl9;8buMIP;q*hx=kjV8c!x3I(9$Y;x9^q)F_BYyI{jM`$Vu@^f$TXB6?4*$ z^Y?;MZ|M)4TO}&WKcXUh3~|`yH&>;f&T@#fyFO!?dh=63YA%ak?F5r#StBXvyaxJ2 zJmfb|1o`@QF<1`^@d!d+v5sc^858&K5?^@^HY)A{P!+aDm}5S5yGYcGolEDmHJ$UV ziKxL(Ws8rm;Zox91qa+FN*R>>PKtZ&7I&c%?vNAde#kFg2wGV!ihpr&lYJep!Aiwn zUzRFMkU6FV2{FaCC=qtp@9js?c8OqnHd+0C+$a34k^Nr)er2m4QJJq?eNa&vk+<*9 zH2#s+LyuRsGA9D(mEONDKHY_+rP<#RptxS3_oC;aF)Q^GC0*-WRze>`K(_kQ*B zh8Z26F^>`fZ$7D52awzQGDZ+~WNfTtN9iL*$l0`Pr418njEU`W#N=X)D%%fkCgTp) zg5*T=W-1_Kc`l)Hns@@COEi4VPd!jubvQpvKA;Owz$j zygr(5u}_{RkAp+Y0gtx(`RI=;7CRv+%kzN_zA~g<+Cy`cIcL-wNRJBm;m#HtXB$D; z_Qz7qX8X|C&e|H(@}+X>qN5FTa8Jr{_N9`Eur-KfHG-in5Lyo!x8>QxRy_2BhCm65>NA&^m2$f2?K^gND2~9u(Cz z0azb2Qz^>~3U+nuL;aVDJI6>9hiJw~_P{Ds zk(qhFBfZa&EuQf8*hhN!k7eZG7`@#0lMiUsV<3I8Ey4pibykDhxn7CaS$bi-HJe4& z@bcFB85YNo*MxdYOxwP4#EKwLUvw`v&H=9Fu8y!ePr{VhP`dBR#^h^iZk+p94d&`8h z4r&K>D+@g3jIbH33|jU7bRwM{SwCx{%Pq!;1I*?7oHU;2Z4WQ18X134mXpkk84pQL z1Pi%SF8}deAU6f10R7|)^QLdQt%W$!kCEd+s)B`TX4RtLr`Nv#o%wH2Hdf9UVW+Qlo%-VhlyfDA_h23`=i4-eLj!2tWqq39Ov~kVlr^B*LX4RQ(z)Xla2{9@5%BL9 zz#8Pm#P?&oLaSF*t9y3Fk=ua_AhkDBd@H=rfE{_LH)r6gk?@{rQsb`|*T zQN-#0n!%O`e@uJxcx_-{JCMzucpA;C1W)(7BobEF0g<^vcDya1qEXC5;udd;)U#01 ztYG0WnFvE*lqz^({Y(#4eWjHf{LQQC8MGG(=nw?652`-Tad1-jVOVQBlac%QvxOwD zMH`@4{&WDDKmlkb3=cWth24VYiyR&|y%OM|2Q_}IYJ4)G_nH`09#bC&1Y_8=Tc4ga zf8n9v?PamSKru6CbB?S5uIQ>QKaUiSf~`{no3DJmJK(Quocp76Sm3CQ6x@Y59bN9& zH+zX8FMOLm)+_yHH7t^hn;rEWl&{{87}GgmSCY|!G|mvrp3t^H;>zlTwcz-pjrY8w zQ}Y3ib33n3(fRgc#Yg)4yNT}ghdso`+f|bw!tZ9gF9uMrM~Tp}*^vjc7JzS8DxV0G z8-!%xPsTf2&C5rClvv}Z0&)OL9}rhEap}BK`)SWgsMX{k8`D{I(j;So@DPx5>Lbkq zDp7abaU7l>d{#WuTJ|NAA`FGEV<&Ip4xoe?vrmA*14EY!#(wk}%S8|fl3hRKk~2W{ zj6?so49ddKvRm($9o!kZAZQx_X74W%|Gz3~yOCcz6!{_DdJ84;QV(p15!4Pcsj3fL z9p+*#8-E$Nw?S|RRq>7Sl(eb81FHl(h7Z;9CsEg|O=+wu7ZH}VSkiWyMnympYZD*W ziTFU8V1=aV-fu^?@H;kbWs1sloZ;9QGV7Z^LbcfT*am`gD9i+y^hGA zTpd6$A6L(TKlpDGc1(oPu6)m$sk-!tOSft`yVtnDfl47IAZykEPFBdqIP)E%p)u+< zJDfvG^&Q2pJCw6QiuSTHhtzv@YCg(&Yv#NJX6u8Ush?@dTh*f-oL0Wz7{p) zGhs#=_Fs!yO;@LCouqGbsj3_Gw3ooc5Q3px16t`OYifxI8?q~^Eg;kcNJ+2KKpru) zSp8$CcYNb!z8jF`hhkkSKrJg!O*5xFGjC}NC5%}0%N3qMR$sn_RQp+Y? z1bEEW{q8lT<%h1mW!vX07|7?02vq%fmR6JrGoRHk9tZX*N-3Ho-+Psv7xD3Y z@Yc}>%=q(+xQh`be_I<9mO_M9ZC)WLOM!NF`c6+S1G5d)06PGbvuk4Hk{@#eSf-5< zMTYnkqXR_$%|S8Ch3q$;i8K87O0W{9Ab|D)77xgZcT`!{I4ELTCiDb86hYddB zq>8)Fw%4k~L-2EVd;du(`lOBIdBx;!+<_;zEDLQ{^-k1p|ZK3B8thf0L5@m21R=4)Sn8SZ!^ zf#?ofm3&hFM)mr%;Fw_P!XaMe!HVa`BCGPZ{y@BaH7a5cs`mKHjMr zU0OHd|7aB#^2)=B3uFWrp_4G`N}U@6C65 zOBEMaprKciFM1!Ox&q zQ(}vs-5rYyM8I+?ZrRlX;dyRn{`#ggArFR#@uZVYkR`j)fa947fWlkr#YWo_u=pR! zlEShO^Ym1fVR+-7XAar@r(+8CZb1m`*#P+?3{yqn11q1cmXQ(i#ev&rc1r3UdgL5w0zfBKV}tW*E=Ko4Z)VCBzPY{oaAJ(Wsh)_$a1b zaRGnx;+sr+uV4Q32jE&uBTKAWj(N7*oX>`uya?x%8U~(~3*3c#|8vz(aQEVE<_w)a zT!J>>5O%M3EB{rAe6UMepq~Fwbfa+(wQ2CpZaMO=u>*d`@b9}tOw5hf5B|gU0{Nq< zhs0wb4PXO@W+)+7l@^ZsE*~EK#^W4gC`fKXZsjGx*Yc=g@qGiroR6~S?=V~%+1ZvW^Hml+5 zIiev83I>%6(FP7Sq$Do~NGH9h8DDSmgKFXk`Kz$an-Ws@jeMxR3oO3hS#+cWKId=R zqN1Yl*Da*nrkF+Hpxd0C>OEoNn!gfB@c~QYSs+tWB8EBm`cRkSQj++*!SZ#mG(|0( z4xArP=+GmANoc4CDAsMYoVb#Fs+O@=lz+Bwn;@M0upOX}2E3rl0FXgd={KQsC0-S` z!B6Q(<`;tqa?SW{^)p~=EL*@z}OKPri|KxZ5uzF|0Yfj{X zg%5AMLxs!(co@bmyp(pKFh)vdYoO@kI^LLojiyJUQ8Milph3euxgXn!g29PxC1(NR$DNts12TD8v0k7RI+@r<( z0gMa8n&|QIp!kBxn#p>pKL#|A-t#f>^;}9YG0;4#mIc1`zBWqELes?3J-(_R)leCB z5$?19JY)IWy~KA7{b#dkoph19q^8;2Y-B&pw(yci)rw#!M#_G!GKUx%@$;dR0esAC z=|}D~LFlm*xvO91@oM3Ka^)wg>`u{qOoDl> zhX9ldlvVxC;lNy=9{XEq&v*f5)%B831eL|h#J(?eK8wvkE0MQQZKc({;YvsTn{fyb zu;9NZ*AMRUP&=5sYEs{7_VM&4|Y&j3_;<@GN~+5*e{sc&PXV0eniq7~>*z+kw1Byl5SJ5lXtOKt zf#Hn0G)BwEUH&Ex+qbJR-Lc}AafT-gSgIyD6SrR|1Ud+`B0X15oq$J~A@lStO%F+Y z)j#q!id+OS+IJ}<_L8rQTDbF$y-ctJ;eTR--JbycY;nUR4y7E>-G5^n%D#Yhb~fxR zX5g~v#Ut>spJB}%?3Et*H^FS_$AQN=m7^X~5Ss(&h7KVuq_j>o1#bn=-*enTcXz(TuQ-mG z#8=fn1+Bu~UDiN+H8bZLJ62zhLxDrttbt6%mo!;Qw^H~v+4czG4RG1v!5 z2cj>)WXT82pSKxtv8De-e=M*N91~hy+ApIFp@GLC`s0Cr=#TO9t4~GbANK1ygDx>_ z!Lr9cy*HdJ)b!OHdrc^r*Irq%5X>#Mev?q}f4FSAb@&AZ6x}Q7(~dh&SPlj%MVUE=dOc#)S=Lzuw40!)@6ds^q=p;CE!<&fq;AC zk1OsRa7}I)b@FT0edc2q8O`mkz%3&-h0q+jIu$xa{?2QR3VGdH8c6#OQZC;zt$k5f z?9Ya`)|K)y0-{O5!x(QpN{e)?M~`|^@vPk<&F&#CUnlFp1zTq45n00I>l@y$^nUam zT{>$2E`hGdG5^;zq2S+Ug|i>;lQqket4)C$s)_Br*!AKbJIygLk~CkrKB?N z8E_m9qufR6YPYbhk_gUojc~I&dIh?jIOtk@pEK~ry&wPCMn5wH0JT-6rFHj{oxsaQ zE4skNCxCkAPc>`68Mc?TG?@ST=i>1^Kp7sV{%ovwS`;elnfZ>4Q@-zIhRJR0IEUTQy)SO9v#wZ*R4liFrN|n=2p*bU9_t|-~xQh0qA_QBI(LmwFSU3v?Cg# zTgBF(D*f6^or({;g~$HFM3*j=S`8KB$De--$c@h*cK@v@^kMa(JHFmD^TC^9-i^WL zX95K3Zz?l4?vu#CN>l)~q12=?Av&Q7zv=Cc$d8?Kn+ zS0xdcD=vg<(cKz=0@VBEp;Heu|9y;|o)5JO90Wn&x!#6j+hH$7OxCYr)MgEIxpluB z$a`+{Ep}d(1$xzd$67jlAqm`{{{q}uq#3Jp1R2ej&O+p%dC;EqrbeX6PYH{c}D@np_%YW;W}>x0t{k zXOSd#GcVAMc5Ju9A&8fV-x;gG!GeykjT)9g&@jHwcqKCCz?dMuZ9KynbVSBOt)3DA zuQMw?f2&mwHR*i$n3QX$nxVtS;c=?YVrNNEL!~;>nW4Qj7+8J>iNMAvM(@d%AbJf5 z$my^560;kIjoLwGfU^Kmxua&$PN|h5{PHwUmvR*V0cN-#x4vv4QVl^xV{Vt%077>C zX~+w-0a9$G+cdo>m#)jvfD4`Ua(FDe6>fKi_y+%HQ_V^18p-n#Iz)7(x?#C9RTj{W z25rxL{MEPCm|4{jm&zsO#-zoJe_&3+?Sq=yjvA@+1;2*~$6O;v@ab}U!Y&Q2^C`T^ znwCved$Pi;atB`f*=tqab4*Hz6>HNj9#^`}@x}(| zw2j_kwp{jelve%z!};&Y1Zjs8;U_SBHcHdChE920a0t^tl5k7A+(ST!*l8C(o=9UD ztD*xot!X(pn?pxhm&%({GA8qt;)h1-G;OsMSi&qjb{fn*R}%K`B=EA}jq8=w@30R< zKPd&{#;;9jmivaz zmZnt)bcYJufNjC_DZpJd;dbDV^lOKzv)wAgV9KD^Xm(sIxd=){ENaT4^P{wnEf+2} zehg^pxjY}#-$8BmWQmc*@HIkjclW}dH1MBJoJE1LN0euBUr`r{Ba+H^pzwxqggT5kz8l*_j-ZeV} z><*yJk%StDs9RjrG_l_?at^H#N=F1;21t!*wPg*}2;ep+?cM|Ut31H2Y6xlrex7&0 zUF}{wh*TZc>Gzla3$Q=O2ztH(-Mx}dopit4k*Yr*Fh2(wG-dB6K3NGCi9lXHch;t9 zCK-W0I`U2gAWjwkfbz)48+mX2Lk~JQ`y~f$Y`*8Lz%+bcO;5$j^X<$DmYLg`Utn*W z05ltYIY`5_n`S^AkzXYKNC4XU1%mH3ArKpSDs1Ag97mhcNUMQ)ET05j=9L%ka+h)? zOxeh*?a%=EgGo{#>7|;n!yN*%NsdI`9qtB6HKTWp@4Z9?(VEDwC7&|RKOR=Pf@*lT zo;ywRbAdwto&dqka&xtO6ZOGj}azGP{>XDA)E0bh<3u#i-TO_~fb01TuYjf-V zabPkI7pJ?FsMiHLW$tsBmwi?W;ipL=1V`HQfWMTil{C{BFA-NC%IM}BO>jsO#Y$pF1i>`%Rq zxkMGW0SxYXP~C{zh<6w;w!4x5s{jwNF-L%@eG1zZfEllTI9?2Oh;W@awu4%o;gG&u z60z6InZv8U_JR2fRQ$81vUC~E+Vs`Rw`k$Q$G?sMITTGA*w`}#JYP9go!0mQ1LiEKF1js9!U;F1v zULtv91^|0$EK+dEkP{aHY)XMeP4Pu%tXW>(* ziqZ9}B)t@`{qEEJADGqFNv|+=bnm4D#as2g(s`y$a2ET);*T2Fw&%&$+Uo2Riat|i z<7Kv@4VSRuTbNW>_JNX}m2AjtOckHzj@WA`zi0KRaN7$ zd21ACd?|Pt=0bPIG?_LTD*e?@9h#4Xy=0{%bI7#msebLfYB_fpe;qZmW$6>3I#L$R z=RCLdqW)GTjB^C7@)k&+iKD0zfnC2H5D9(L@&EdpS;Esknk%1M{HQ0|5pYXjJx_n1 zdne(#&)}q#3%#J~bE<=pD*Nt0Q=oyCrra5ZqBIKP%%-VT&DJYxEHKz6eTUrvE4%FJ z#Y4Ph7`?HtTAy&I0~5*+AH=nm2-nvQwS*m@5`hN{Y?oiNqzH+xcDkge>g3JIRc=1m zN^eqZ!LqwrtM#CF^fgXxP?;)yPf?1=&&_Olafmj{DFPI|LO%KnCB{?-jcyzp;lxwP`m zTeREySd3Fp?XdHumR9)L0P|K_gPP99r0|7};gn~K%(ySFse!5kRa>@Eq@-v6>BG8q z6}}aY_%1csGft4910bL|!9UwI$@*uAd$hFYBeE!4sZX$DFfb$>v*Od*Z5=rhyJcx8 zGd<1K|H!n75xx@c`rAE$EY(K6?!(&kF^rciztzrWsU`9JMlw`%@i?e{JZX1| zM8}OOfA@wy8d>gnqYp^Q9YrzA!9!3<^a-6x{G?O8)eF^54c2!C*1NhjdGl>HF>>}z z-(I@W<*b=;vT+0hTGbelGZm^D(c~EQ#OREIfnhDX)EW9U+J=AB4#EmeIGkni6vRq&s=9D4_@RhBHNY?VyR$5)`hVfS1 zGPDo-Oh=7$Iq;E>tQSw5o5(UUaPDI;pI}smO(q}{^5v};xD5t$+kTsr=hx=ulPj3k zo2YrcV2v`Lo6r?BM2c+NY@L`8%56noOQ-v;wK3@zWXcc4FIq8&{=s=S;#rW>i|x=fh8e1NH9spR2%Y0nRM~%~%=83W^J>@ctS=Zp@4f4vap=ZX zCX4!=C4=6joZK}9QqN;MnfuiFVs+n%QEMzIfj&}pznpw*U`_h)1`EUGn~HXSwo*SM z28=J`xN+k8b~wv6ojVxSP;zYhd+L1IR0+W;v8!y&Bj-HPiSVJlxW@dvGJ+Z*KoZ3g zRwU&F2>8W(`Qs`^>FqW~1v4FzLrXj&+^z%#JZiRWxpcmnl;SN(Qqc*chi%4LWF7s# zy07Ho|7-U>=(mSSaL-;=MN=zQK6H!tETkndT-qdIu~n<7qNyWpV?I_mUmnrdY7e{J zbxPCTio7$KqzXSz^}D4*iRZ&ph5g6&bn-HFy%DO8Lv2#6UQVo>UzD~>NS8jd8p>hI zV^ZcVE}Ep{G{B>(6^M2f0@#pORdMDpWDypRjmmSk@>*D#Uf8yXiaPuY6 zI2CXDDI;%}4av8uCNU~onk~7s4YD1@bLdPff4dT)qTMGQoD`M4Vn z+*dQ7?clP-M4h@_=hBd_R5tcHq6oQ_5Ji}e=@~C^X;pgix{bnjIvEEavgY>b8ZjG2 zoMN(i>(}>`S2ADaPuFY3$`^B03XEdR=r5`5J2TqY51ux@ow0GM7!2vGutJ+oS)5OF zC-IgpT_Z#pDa&N_#*g?4hmGs^{@qaIo@38S+^Heg#$t^p*}iMaSoBIP{f4>irKa#M zj}?`0${U;&)^b(y@Pi+m6P@8;o=<<3Od+QWOJNy^`+9kcD})=L7&-ey0l783lawHD z1>HJ$CD|p(yKBNbHERGobm-IGA79*8la)*#>~m+E-TD~RnqK32je7IvgBy-n5Vov+ zSK%Vz1149}rax?-Nfg1Z%9zaBuIb%05qd~Pii6fy|Jg9$jri3}9yZnP-?KCV;QBZ0 z@X1#$Q*U(A_@DHj0O##RgqoBvyZ`?D55;z-?dIyShR!{n0g8Bbf znq6CQtrKC=ZP@iD-X-_`tbSIQHfKEba^L3+ZBDw&i4$TN2AoIFbz_mRA2t@u2f2`Y zZOteGFO=k0bz@My%w&B)bf_#9edR$9|2q7`y*rf1cCE5FRNV-lTZ`6C zzXhp^OF6LS0_XR^udXL0ouY|*iR{3>K+^@SWq%vNnzX#VqjeCQW){-Bg=AD0m(?9J zNP(I(G0HP4U44gSxZyZ?9qYnBdgOg5TLCpKQ%X8R1uXBngydKh>Bf*_$2p=?c!X;B zd&J#DlhYhiamdUL9K{DH;!W9Wq7r+b+6nJR9Y<-9=TUL+nNp2$%lO3dOEn%u(LP7Zl= zu5CTQO$Z3Z2q^hv1oeFB>kel2|IDdbc{f=YZ*2W>?HGS1eNFY#0@3@1#Pp4kQUQ%f zVo-o@755>A%ERx3rA*v{0`$Jf9(5%uZoZt0CmX&N7oBShn$YI-^6_j8togdHg#Ej0 zM4Ze>gxx&^tuYl7w-HzSWcmgHX{D{pdnm-|@ONH#T)c~DJ+8R+sk@{^M&2%T>sJ>>a;9rP+1LC`QQkw8c}pag#RVn!9Z&pJ!?23 zPHyTxVbF@Vtc9b!b64pg!xjhx_O2|I15r~o;ie@7X zBg2Ls7`Ap{PB95;-hm#Pc^coxD;W`|yM1c>*+2FbEYJEIz^E#nS~3X<1RM9cq6X9I z&9Ed@Ro7@-t>fS=oo-%uQ}26ei=#1@s-26@{)w3yN|*Mmj8N^GP|?wrPimfMB#B>G z&<-QK)+n1ksc<_~RPOd{Qb3Ap=q#GXW%O{>6{39}W5S+i^(a>P*$Oa;$geA)HAh zkBM4Y+_z;z0S&}dS$K+1Q^duySeI5+&(}OAPhNK^u$W|d^E8v5R7PG@xIK&Wif(dB z@(~wZTkkKu7slS&*hPuTu^N)t;@Ow=BWQU>8F-t_eUBD0taQ%}kyWU5_>?~2D<3J8 z@3_-5FAXeVRzBV=!Km1JOU~N9B%nRyH(!$xk!xp_@hRS2lA^PBZM_HX-d^YP&RMa! zfE}XV#;=}9Enn0-NAOsytLPsyCuzZDuZXC&YvAMTn`i7!W$%d8C&R#U$`F26oE-P? zBPv&<_xMnxehipr>ipIOHLJ{`n%0=kGro2D<8p6G)>(n}spUy+9PQR%I^RI#iVCqJ zMfu~hrSjPk^!MVX^n7mz;`!ZqF0=l~M;bUzG4l;iRGpgXNVuSY9I(Y-OwNtS+rn~% zV_aAj-^Ka$h1ot&EvQVoXM$3-H9Dsg*jGpnC+5yY(icUrwol11DfK#0xHNb97($dr z>7tMg*4aX}NyLZ}DUezp!=LKX{+W0VTfb6jlxv|Hu2n`(N_9@KHfaf_D?GXMCRqtx zu)1xLHGmJPy7}jvubKQ7c)7oB@7a^U9?q6w4cVAv4|j-eJ78*+@S`%Xa)hSO2xBKa zC$6hG-oCZY%icBB&3oZ)eSXS$4Y+NWt8UD_u=<|&@&kx!ijTw4;?idGgXY{D<{sOI zTM3aoV_lvOv{v4_X6J9QizY6{t&&^z%_O0%l=8X~pIcz$UJUw54w>8z`h~c&;>u2& z{BCU8{I4!m$GL1~1T9Evd3(PI?{C6iK@M4oa&w5|FOK9ikhl&r9GtnMXx9)L*KZte zwh)QqNfX+#r^t3{96HPprREpczay(AZ%Dadw4MfuamI#ca!D|rk9Vb$M<)+^1r{3mYHUHPMTV348fEbI zq}lB-RULHLwnG=%Ab$pZ2^vA7A5km&M5l;Rpj}uBs+W~0Kbxs!`?B;2d@*)n#jaA> zKvpupv3Rf5BFy%Kir@(`S%%Dqw!6-8@#DmugBha0Iij_z7hf4KZAs>(8fP`;3K4@* z7&qKfVOxt}2isoTlal%Iq^ErU7;-S`cL=8bBM-1%pYI5YIWu5{lttD8F>5yr94DLB zo->0nx9Yw8cvje`%khZag-z%nt(#$#RpC6Jrn|6E5rt3ul>W%L;I{X%>;p-;z`S)y zrp0Y#Hby(xj5wM#JC10Him;-eEubA zhD!6n_`Z)QB5#hHt(g~{Q;5Ik%Vz~_2$TO^&d2m_4|BE_dt0-@(Pdeu9*r}kfSN~8 z7+d`*b2|8$$;6Ej#FQqdGR@mriZvu|53r;%bJk&$tABf}-PcR!G}YGqF+a1<|D)hL zY3J3e*wjn6%h(;=U*V=X=&y67y(>>NJ07speoAlBL2j--&r4Z3rI55me$~E-$VDHG zSsXUZ#Cpd?A@hn*2V~d7+eHk@*h4=G>pl4*U7Q$IU3#&aa!T^ar4b^D%7?NO=oC@d z;;EnWO*rlYg0z~itdBxJKG(Ii$d&8m0S09Vr=Y)%yRniLZW|AFHVm*u#QU;abn$uv zBHTV~=2T=`5CT{P)5lCj^%+5RxkvAh-7oz1nG7bz3rvhG@Zxx4h3=1xAXjg*x13DR zRiS0gx5!!lUoqi3*1WSQ%~RYg44iiq9Vbib*zS8q5qSm7!knkvhIvm{Y+l7kZcb6^ zSye+*mGEfG^GJc0XGOMLj5p;)2`&g)%5h07k@Whth6FKqwC71u3TQ4iRv^FGd&-9$ ziyUkU!pwFO#UA{asF;EB17?jHvZhcLuEb`cyzL7g363jENu!DyVI*f)N{{J#+BZMJ zdE*?TU!Eo4Q>KNmq^a08YwYTWX$r6tD=O1v)Aqg*DZ zFjXo-ifWT?Bo!~Kx1v9j%bzR5Dq>IkpH|B_bnC%0C%#Ifzr_!AS{rr6A4(wyWNkAd z6aVyx94vY_UGY4BFl;O?xrBWx3rol|K}Tt*AqHeqvg%5u`Nm=4$5W9m-Mj-U&1(nLwhMOa;EM~71L%$K?rgrPPwZXXB2ghBU?@* z5_)l?QOykpx!CviUIGK81^QyxW{Ba@%hY%1FJfDkawaJL7+hMcx9spsRGnEEIs&Yz z@2u{vcR4=>)p|8?aWg~#yVmciMj|>!Lf`fJ<+~bxOkmC(iP8u(h{(}xae{2l-+4Be zidcRI)bH_$UafDgy*tma9LiAr*&d4`ds43ArQ{mYr7vyUOa5gBP-k=yQ#a366Cxc9 z5d4T3!b?oMHbQcU&3q9SnmX;Fx9%|+lhodc|0auaixg-kEpM!-x&>os^68IMW3bG7 zSwoT(4ZUy|*BbFS>IDPWTZrC$z;qSnc+4yYX=j5>?!y>@Drvr%Z6M15;vEyq6-yGb(uhFOti_g#5v*Y@Nz1)-|~{w>z~!k0Nd~}DA{*T zM(EeK4H-eHXRb;?e5@^8dn+R*TG?;FHueRM&3DFEjfSL3gS0Gs+qPh8U0947<$$G~ z(GlmLBYRWV-^WsX1QMGA>l<9DcPagM*ZEGn$|#dwIaH^5-^f2%O;g?KkXhbdlitMw zR!!KYJ1T_v!00GAQ`zu6AOpcJli&r>r$3I^6j3bZF#-=z|s$7!@|A?)R2_e18 zu>uiF1THP#WwNaPE=4~1wXwwzsr4Zblo_`zd)S{RAev{Q7LQG=odDtA@}Z767wyoy z6j|3+r?9>XpDrV;;eLxO<6CpU5J^3|fn#gP`XNrP?~W$v%b8ICiz|l zm~QX(v)0dRGFU+vPHivl=yKKUDq9RDr;yVo@NdjPKCR*w>_mG77WM|~Bek++*$83~ z<{0?-mzWs*30O1ldH7`};XiMhR%?|hKXS}1h!RSiFF0C#XQq`giS!k;t=Nmkm! zFd_7nI=7Yj_Bz(JUDHFKhBIHux>RCy7C=V=+6dbZ`|yZ^D31=1JeD1N+=`}mReWeK zBdMyPFk+9?E7Vt`{GZmifWIUQU)nzA&?~pxIX)JA+BKt5LoFf9wdTHJ4OqH4j%;W; z`eIRv@RrS0@b-ThX6-2uf<5fAM6ur4x3@YXxp^7r43(7PxwFrw)gmezPZ%Mpfp6wm zv%5o5J*UxCC6h*$v_c zVLqaau}B};!&2%XmlOyns^vIn+~(e_cMe0*g;Qjb&h+p9M3Nn+zOG+x75cQGtj-QL zo?2U_S=vFa^I+#Cb8KBu;HC?HuV<+q5W-5`%+PbYgQy$U*zvwIut*9u!Mk3fnIU~y zZ9Y;aTS*0D`1-#0$5OuyemO)R9mpvDn zDw3%$SZ%)23{p6s{ZH*ov%UISJMpP>D8x)+DtchFerg1=8}8seaf0`R0vk)pWPQ1u zf|6e{Jk2C~2-;|J3PN9g35(}$m+5GF#_{d zq?+B{^RfE&!H%+&IOiVZG%euzkH%Z1kKxk(lCte|&T4zYgv>FLB{r2L{IQmje=o_U zZl%?9MJ{^X^#>PG7ZILHhzYs)SN0*jH^=Ccu2)5xd8oFJW*9pe$KMo#oNkWB#y$EI z8p`7C3Q~0Oi3ut5Ma&rMe*(ws{sn^xYWgzhmpgbGk)|d2P1bD|&MODH5*eqOVHC^e zcJg)Y8(_J)iU6nRYBqwsJI(UTOFNkdNQmj+$ZiE6a0H`zbBw6Qko_m4^Dm?#K&U7c z@hMbA$+UuL+bV1{BuvfGkRYAKPl@jl3cDZb)->aX)rZ>5~HlQI~ufGs^;!n$&e9rF_qvCzn;4jJF>sdFm$tM#yeU`sX zx^>43<4-H#zX=dZEwwykd$R2eB~{7z(}@O03N^GYwuk$~bGM>Z*A3^D!8}H()Y!d^ z(>2sE=MO1c!f)ygLe^h6%8w`k1)^^?#0sC+m;#qHWcS{;{g@@jO<=yT{?Wl$CWfBt zw%<<4r?(vXb?eMZAVbllI`v<^{YUGgF$MA3*C;zi`l3>v7U3xH7_Vra*uq z{~SQQB=N-K)e0@t2&fs3(UebnEkjyFfuW=~JMxomh`zhW)&pr4}JzLHTJPn=1YQSBr;%)94$ zrwu)DZ=sFn=5g?%To|0xv^fo`V}gSRu8*wC)z3qbSCmGLoq^6ZfHte|aJC-(4`2l4 z8Kcn5*U-=%S6NcYxz(7RB_KnZ2xH_+d@rb}!Qd%GfX&rOJ8v_Go5%TVAJi<1L+o+E z*@p{N6LeZU=92ls-^a$&>SJkovN~EGD{|AA8wi5)N2dhG+5FSy!9Ssbv;e=p5^@qb z0(S=^Nl3|xZs;2?yQX%8n}>?B`$juUcqgTon310jVY`d5B4hw`TBFg&onpA;p zwob_MQxpYPs_EmNMXzXadU-@P{2P*yJ@g23ZQ!ikt>sdVtDyTXjY(xA9^Vg^ zm=o8-z)F!Yp~1dho$7{clT~< zfyR;Hb}d9*GCzec<{m{C@yYV?;IVi#XPgtdH4;^ToLV zOod3lFqJI)k^$`0za6qE&%Q6j$}#}j_wk1H=F5+j-jG=LsMvsqxk!`mcjbeItg3Y& zkb?~z_qU&x!L@j;s6B)qLV*S0$Z)A|=jynBk-ws2lgy=R@12LIs@X{mOKL2bLV~&H z0TtReU4-@9)zTy3=I}8m>==Gxt-N}|=>mDtd}tRu6B_}+H0bJEoGFBJ>r9vDpG&WW zuavH7a;hBwk>ed6@M@Q>bkX?&Z6&Gyj>oWV>?p3)SkoW3J zGMe81k0IRSuL9x1DkZ95dvac{ah!bAwA{*P|L9dtEj+RS_+SUm2K1FAiaZXzf^Njw z=3`et_yoUh(xZS|85X%sZY#96L4rU#mW{z_q5R2g)5o9%$0zOe-8J{YW&t7XptV4> z{0XonQNY1si9smV_?&cX*0Y*xz%m$%T=G8m{ntGNQXA-ru4-Q3QgWQBGqKvQ_4ul( z?Y^0Tb)FZF4$Zl>V;J*2qc5h^Oz=nDaP@j+E;ixN7@N(_ERNw=tk?IuBu1nxzi7;E$@R9Ym*32G*qY}*cVWtewWjl^7d=y z39)9dDJ#?yrbt-3Kt**Z(`~`-L$S6rdlWBE}u?yJ4+0ZYRi!KAPPMw=C3QXQZ~gU*;xclcoFC0k#1Kl&UCs1+6UNZ5wM8VpS}QB7G4L> zrRo-M_it16972z4Pd1l;i+Q1pM-9q&;G=zKxdsK(rmG_R5|52tD9DYv2U{<6!9F6$ z6D}rN?=D(DMee=5`+LQjV?|6Nkkgu+LTr!)>DpH^tyfQeFMN{+!Za=%1nVP&ctd5;a%c?l_fQA2C(<8$mS2RK5h9$$lHXUg#tgt zqy7~Rz!Ew&%14Kj4L1|*-jZ$((Jus>t-%RhJ7@R{Lm+dxhv7ccN?8O^jBpwlSR8uF z4fp@^fPb%jF?EJ5vJrvb%@9xwv$|HMn!9o3i?VIAj~DkIglZ;&5==~j9lZYAY~dfI zO%jCkj;wPZ4K7`Ci(KTSd=Q-zCzMU>#@u^ZS8ogE3f+)whezIU!bZhCIt-x)TEHuN z>_ETmxvqT;?2_)=HPkkuvf7n>pqL;Q4E9K&JF(R2p9~S;XB(jZLlkHw>?W!11(e{a zYElEI>?^5#$w|y4UO^Co*f(NAx>)q+W3 zp7+OMk5e-dU!W!KqWUfar^#8Ksw@ERY7g$({Y1G`06d^L_#FIR*#vwX1ZiISLYT9{ zFU!F7SFB1n$+`@D*TB0Me0kI<_QB zJn)Yx7eg^{D6DD@opmn1_(J^9ZX`04!r`cst=qXl%LK8mPnUR0w6Csw3tC)?>E>1N zATx%R?Vq;qUktnZM(4c0pNa$ru|GW zZ8;^K`g^!xpk8qvcsrw|1C&2N)d)n$GVF5+;8A}4^)J?Gx30u^$`_I+2%;aZtf> z17j^4I{_sTzx?{|ib72a=L@X(tbUWRhQ^j_Ti5o$kq6G7sEvXpJl)$ zwc|}0zbvsRwXdI9V5o9G%jSNq9%c)M(9@hUq(OBLAT>tC4}oUd16D&bu7z)D0Mz(r zjr<=!ialc3Ov?jmJ9J07X~iK3Oy;POqc6Sp*6!zb8}6)~Ndf!umk0Sjd^BBUS_J2W z;-hfIefsuN^^?0r)&E7>m&ZfBw*Q}`Q`%J4vP_FLTS|6DNs>JY3E8rfow21&Sqq^o zBYSp|eQRNoWwP&N9mW=83^Rt`{TbEioKDa4eO|wRdQF3w`*Yvde!s8xwb1(>bp95% z+5`O*W!e5ed>%;XjwjZ55Mqbd)9fw-B)?;9h_EO1EjKOQbO$mPa}CTzO|u&Wq^!uI z-g~E4aS`{9H;Dh2MgHx9#D=|{S?)tU$&}^B^a9^fs!d^0d`KQ#@QuERw==e-w~-G6 z67t<7{?~nda*(Ib$O+g?4z>cj!UnF^3rIN-J+ORH?YDj1+}3B4Hz+!qUoDV5$HDx+ ztoFdvy;_KZzRL#8-Bp2@Z~DB=>rZW5G3qV*O1KCdW7T42lVPEm5)mR8DvpB~#O*|Z z3jEh4|Md&l^Iu5Ao4);56IP1SQ^7%IH3xuA2dT~%uVR28C<^g_CTH~yGAkH$cB{gj z{+AC=yH}gB5(b7v4O?wr$+nQmYOaq_0b7$*>Ol6c8-$bF;cr4b06AG2ggR~x_+NJY z4}V9xRUC3Nu6hHXSE4%RiS{xC^75Se7D7uG9$W1an?XT+b<+FoD{}VL7x&xu-!fI<@_#-=FB+_0Jo1nw zO`v3;&~6Ga8do*Xqo&*!SDXcj|7RHj2htHC2L{%DBHr*_o3LYA>qwV93vs+V;EYwc zAQv}MEnrk#Y1i?(MUs!aL8t*g_+LI=?&cHfPojPd@$zL5cDwJq)NH;y*swC_tnYi3 zfCozjZ3Y&;W@MTMEp-{!q4|r`=1<+uuuJ?eLffvKXql(5?|A-oLda3)Y<^;k)VL~4KW@(otLB^|u$2H?;^f^h;u z9;HQVldp0B2NyV5~65AzcA%Z09sg?@HFM`7i9l=p(>)=7S0uPbY3DH z%xkHRnelGSjB(}|OL&&#!>hem=pDxQYErr}E!vO7k>AXUdgeLYC73LIw~B`fP^Pi; z5jO!*t~x-BbXN))S?;D^o0Kwh#9XhJrUY95`Kx~%lz#*F0m6d|GKPB3hb6QfQT&5D zCDy2K0r*LJ{Db(>sv#^iWNUhpT(c=QOqmeack|x9$vL<tNa+u15mI{|D`^H9I)v z8un-jCtD_?LUnJ*{Y+C?%cq{kTNCF2&@(;W?Ybo7vE^xHB3D2+`a53BZPv!R^(ml) zj6vkBdHR7Q;&1lzKRu*B;=pIwCzTCMWKFblay(|jt%>bnOIm@kMh<&~s&S_`F%U5_ z75jF-_?J8N%nGz6OHO{v3WIduA}OlnAI0PU^gSSCq1`sOkJm;)n8e>m97P&Zoxx#F z1lb!`AIsvg(5TK-n2a%(wwQ06i{Y!%l18IIboGBWS{bzdnN=|1YiXp*tR+RmZNAE+ ztns6SzP(P_nG$Gg+cdEUuI1DBJXR$I;*va;mBNZAfmCdI`eH-%T6SvupT7s>6Rc*c0HFM$3jh>kz7pW8}i z<=jsI#-H+&e}9?5y=?)X-@%`we7ywTSACr1G`*U^$x?SwwbHfvc|U#E-1}=$I+G5^ z1iCA~EbU!0<;S*!4DaVM(o~x#l$w{Zvw*bu|11UIQr}TMz%^cGesN029p31ny`opI zTY?btvdDDGG#PC1uWX^dWv`_hn$mvn8be-S9qz*edb~7u*o0fPFn^!07*;mG+dRPe z?>8p@L#nJyPi$CoQ ze}bHtmxzg4hmYHuQ_UO?3_uN*0R@3nyvOKct9Df}RWJ|B31TN2G2U%HpmWHT6XQ1W zhq#UW9f#d}SaK0%e2eG85Mrht+a}AFP%*B`6Bvo5I<|OWor20Tzo$*k1^-L9hv3#I z5=w4Q*dNb1>9H3nQ<4l{(H=r>ET6xl%Dq7OcW*=UoOQG46fu zAj1Clf-?&~JW+P>IxL}jj1yn7cKSaD(+>-Go+c*G>t7w8q0ho5S3CM!iA^%<+dc(8 z2ap`4Er1qwhajo$Hgd9n(RzJ;Omd~Pjw7fR{uTWEmzMyd;Q>>Obo_IrpNZgo!N9RU zig-Q=niH@`^nOmoeEBq>j0g*`jp!S@@&=tc9HVxnv&8NY^LFl2TCwj`^165C^4Byi z;B?(Sk=mlGBkh3`yhsEgb1Z~wEdm59+&*40u}pcX>uq3-)xs*WVwh+p%>NYDGpZ+A zhF$E;XmJmD35-mekSQVUVeeI)!J>qlaBd1{Vf&rM_O!#0CH+-#OPn%%n*LToV+oRBM zJKOb;Zt=89Y=MkJ|B;U@@1yvq?a)Zn^;3sg|If+-^kzHogw_`fxC;fW2I=wzJi#d9 zG%&ed+`x0<*?x2*x6HKCbfeLR)5*Tr(@6Tr(#;F=milP(DcL+piy{BhPE=KMM~5fg4{qws}($e;I3QW+d}}nMkfJ3yl;rZAAEfWiaW3Arv?dC zm)@4wZ8eNOj%?ANM4NgV+M{gbV6y)6)t{^{;bOcleJi*diDxrCOpP#8H0pSEqJOxS zfh0cZtxN)y9QfDPuJauxWDqWmEsL&&M^|!Gff1c5AVRY9-U{?x4Hd(VYWqCUKJdvbVC!b&sjq9sA> z*r^J9mp%(i4Vc6zOl7)=H;e3Lz6gJ zhWDn`$d!OET6yEAa1Z6f)#kJMp|!=?bdxz~;|8JhqXNjHV-`JIb^C;#I}igUx`Lco zBZ}Bjb19ghb8Ao)=z4*Pf+RL0xea6-ZB~z#p~R|yZ@CqqFHe+MHi=&f&bqTc%2e}c zB*8VL1XzGHa3Xn_YHZ?6)nYwMJDD&%tmEh2XPF$*X3CCZj+JQyV|pdXpoB41W;B}* zNZ`_&Mf>>$^a?r3E4s>H0#^sZxb}1@&OE>AQ>2?Os|(9XfBC9F_WA`~Saw)fdoA&! z9`x?o8R0-Aj3`Nh<~l1uL#@=oI8Nt&F(VwJ#8u~_BmBArUsowiKyV<8F-UWB{WHl1 zOz_od1MID1DPnJ+*IZS@??^h$UZ=67R>Yy}M`n`i?vh%~-lD_0&b%dB7Tom7m%Xko zuVv~}^k{1({`jY_p?8-oOs@O-PPq?elJ`31DRtD1MQW*8tt*tph0K~aMy2|!^m11L z4u?2Dw7`N&V#BPc|bzGF~Sh zEYz;)c+F`tu-(_s5*QwCe|~S$sdn4WW$B&Gc3@s0YY!`wt>+M-sUA3KsHw;iJ~_XG zkgV;c3lm_>4rAPd)sEOPlZ;mZyTuQk()wBMnS1!BaJuz%OBuRkU6`|xc8&GCA6GFs z7x1&oSa(94ru8$v^C-&&#cFn^SkhbaMiJH=wEEmRa@FOcV;yU*O;*mke@uW+lzZ|eHdoukP%2*<>Ihgzp4I| zKyhhp;4(BkIm->y3bhfAXWhk^SOeJHbf+Jl5^A|&U%fWDr=Isnh5qn>Sd>7I$1Qtv zCwmkYOv@WTh3OKH&_~5kkGB(&->3mm2AlnlXSZSh<=J^Q z))qngzC-7An;h-cimm}M>AV*tWKGtpPd*-50{(5dJB-#xf5^_IC1*GLZS3!x#CXnF zFvHRM{HvaZ>$u8UnZYS!CxQXYKfy@A(PVzzLfPwicHn4f^Y$o%Z+wrw%UMHPoIum1 z7*toZvAzn_x%8%kVl{1@mu3-6fuvZ}du6lNDJ!S=x+|FGoLdg80@JK;gP5nQ4Thvu zMBp5zpRD4#{@M{1;<{Ep1Oi3vVY9Q${sE>P&*(~F=iQPtiK167)OcB6kpwTa_ z|Y6tBC zy3~p|q6?GQ^W(6OpU#_5qY~ zYS1tMFD#r;a|ZnWku*?L6>gq8F!#zKL7KquczP;1Ol|Wk?dFq!lXiG$@?~46j#2!i zTk*9?x7{sd_0=K(K1l)G@4c&}s`w?-I8tlMTe77L17u>rlPBXvM9u<%`}h5r#XB|$ zqf($*O|I`$D8*1f4JPUfyU}dkLpbr?$P&n~ZYfNa@%<`!{n3d~9-o@=(I6o;4ARec z=HlLSW8^HZt2KVwuJBJ^U(3EQyI3V#3NxoJg-JZOB73S;T~=~U7exBqhL^$$R=yH5 zmF{)xk%YOq`OV`6O(ANW4wG;YSwsc#zQsxoN326oiY8lA~DNlqvs!$kA<&Iro>oO@hA$T z#ym6^=-usG?>h2do|q^rW5Z=F`;xRnl=l8JU%VA|XX8Y>Sj}2<+n!;E8gjU3Xe$)( z#MDBBv_&AM>*as82?k2{Y8y`f2z7pnqvel(p7T9`tmc6eljdckgc)5?0zoVO^lOnq zHKqz}vY6`^YrL&nneewF{dQggp;OuV=*Zx^jK97 zyS(!&>lUq0=VYN3S7~CBVVBV4zXZXI%5pV+OHxxNylpV5c7-p{_=G->v5QUICeY1gV90E*o5r-=;F- zAU6yp6&j(+Ha$HidXDf0>nD%ebf}g}I znd3Gf_Dofj9zDpWz6O;m$Y74kY>Xn+FZ+G-D)kbXso2N2UsLiL*R!l!&oQ3anXClf zzV{}`6jzKs<66*?sbPoAekT{|Tg2FR_w{IR-ViA>aNz@05!?WC5F(*FY;H%6qpM5* z=$lEOQE_cgPx!AzMmae3dW9X_XBxVn6!S;Pt`tlUZ<2@G!K5E;&zBH~T_5P7ZU-IJ z!|h&X&+Z-iRRH%ssWn+K`cSRez3fym%2#8U}aE{A;qMpPIab+SEWRO*7gQ} zSq`fYOAm5$-Qv}r7fZNORQ`?6uap&K^D1LUC0*Frf~*#A#Mdvn>ea8;H6=$&d~jx* zCb!&^D6-rixPy??P-L_pE0f{%vVa)B)A>Nvt$PYS;+9;HuZWPFF-oA(E!rjWMpByY zg%aE3Th{C9J3%-G!e?22?AIHC7q{M<;(zUd&oYXqq}g>sz6Co{5g=8A|&*eWSy?p#Y=uwSc0ptq-AzvGam&VZX>5V6nVmFzr|k3zZ6 z$5sgNVLgP<7)xrfORWnrQdk_YkczIZTj_5xj|($ty*AuK-+s)GJ;?K3n+#K#08cR6wS60uL|A3e21!as zCus(Fsw}boDML6H77Zs2_B6dzpkY*Hbp4X}yu+Bis%7LJZ2cyY*jb-Q#_L={<8Cx54-dH&1 z>{Vd0UNTvByR86q#Ro~Lc@b+G3W!kpcGUH-ecmpN4FEa&9McDg2Ya&4?gP)ZB$IC=}YC~dMbQ(xC(#MK& ztBKfUe_HQEQ+Apkzw-SL0sLaB$o)hZQ?t5+wkk>W(@Gru8d#4h(;BM|e;B6N`RN$v z=j!)XmCmo4dvQC({XBw1ed`)9Yk|GdU`foBB}JPD!G%~`yTk(5^y~OdD{Y(B2YP<_ zuB}QlGuJk<=SObo5gIo2#iwE390p!yeIZvp{LZb{cQ1;mLQLLEWmJ~V zK&L3kg~Z={zSt+qv64B=C(woTWDJykz0(tB&)As8Fy_8sM+mi*^339%NeV@;F_+DG zhn=yU_Pk!d800M+`s>9Y&xy~|?w9Mx6|TL^t56O0Q7v&M54kZ0-#7tXY(0~M*um>d z0&{MZoz4MwsL#r%e=XHUTsS(f$Q$dPKxa2owye9-DA*pa&tZy860dHh`x5)^WDIJj zD0co(jWBJ~_!+$)UNL?J&n@&Ve%Y%x&26A6}Xl2M3dcy5q+- zik~sXj?UX09%~_p7n`cV%TY7w3nruwHq01lMlUwTAItXBcPSjYWU!NRY~7W;5E%>Q4jV*UUBYvZPKruEL_-Gd%;^OA zf>>#hifbKmqSnPFk(#vRmqBHZnKF8T&G_OJPm=fA_3Ew9@ zbhI9e9~cw2$a7}B=F65>73zG1aWlzr#)Iq{r**Kxcopk5=NgMX6%!qzhqB2Vi~F>? zug{3`>d)pX+e%48FE-58dWX*&lvg5_^X6lni+wZV>8E|~t)Q3Q(7u>BTAwvW&KQgP z^KE&oFxF!Ze6kq-&Zq5jZ}OlbIjF-^0Qe&$yM&;jpnk}81MbGCE`0}?3a{|NmRITL zxH-x~yA4qiAy~IA=+n99Q5m~BW~5!c8NpX+4!)s$`v)>JgFhlZJrr%ih7rlExJFrL zDeN97B|mgIQ%-PkiO7nR9(EIyF`O@nN7+R;R2u2AZ?r;Km*^(^fr3 zD(538xp_)>tnQt3I_&7bg-oA@_VD4{&*W7)6y@k6r2EU7#tNT}RVJ1Cd?bQWpDr!o z0&SU?j)H;wcx<)FK#;ryc0qXbRs5K4Q8GJeIms)yP*&DKj}`vQhi_SE0N{8czh4Ox z=d4x^DtCP8MJ9EDfCEA*)vmZV?Z=`3LC4-v+{<&p!ddHO_Mpd9E*%|Q5syx+pI-4E zKL@aG{BHZ6;lq4qqMp9=DRT)W7p5xqS0~*dJ;5IXH<8*<9Ntsz=TKxm>zX3sFc2JokIiIb0nZL6k8a{qX>p#sUry4U)YU~UN zl`FB~MF+Wc$T+Vh!LgqnyCuvB^PA@Sd_+Lo8b*+(ePhI-IQZV>wXg~qCryYB-ou^H zD6uk878>2qlgGdFcRR}EU)v7u$y~;tDvEAgFzfW*T-e+Yg2qoNamTw{(LN%)6|vV| zJ-|cc&-mEgT({Dmhm;*`dH`CJZ#q(sV$g%3S3A?Y-x!{~R)RZ53qX#E-FVGNB*{sC zcDB)c9IM+Dws_JnA;5qZ!WoarS{_^7Y0x2awR(gPU63RFrqE#@&Le6uZbhjN1_HB| ze&rdr0mFI@(7N!e8wAea-tpUDC(|Ho2y}n)Og;gO#IwT0yQ@Liz#mCQZOXxq@WzI@ z!kGpf$P~JH6ELPAM8Ja_^GGO?n+gBe(ZJZgQKv(FqbHD9CoW0N^}IGQVL@$-zAnhy z#L7?bgas;a$ut2U;{Yr41z|`RMy7T9Jj_y)aJww;3wsmjr5bZX+q>_E&n4T`J0$~LRC zl2eHnhw51zZah~!u=V!SmA`qN#^v>&nNH;)66n)Q!2oz*?%5hR zXYOdwjmGG?P;_)XNfgW8wWnTUDS9m~*a_ufOtHz}I8%uKuR?U{ z5*3jgIjp%;DYD?`sS4_=%AxR$)#U+tKn#l*O$0#2~8Jw~A*Q#i{+0aFjbK@;RkW;$Fs(Is=Gd2(*c5<>MkOiB|NQ~HSp zCbU-6Jy0AufAav^i#1tAERQ)FU7U*JPljVdPs}I-eBOytF++Lma z7VJh?A?y0TYcasO`lG;X=jjOKx>=tyT81y(gEUu?4sLAV@!(SBuOk>c{snEzkMsNp zGc`xFM$@|V>tL2kqt>L$-!S#p^y8j@#f#9m5O0*yaRbXYBi08G|WzjdL_d>}&dM(~!T6)}t0`;CxW>j3?W+AhGZbu}_#0Z0t zb=a>pTvyK%i=9FVt%Fr`%9sL7-t_`1sJ?%)%YBT)Zxty z!n0`K)scYoXmH(P^}1O!>#z0i*ycB6dKk@Xw5(rp)qW%AW^uf!XQMz#3h;1e_tzvk z>@7$76bsBzdhHZzky193nnHzRou2K{J`l_m(UHvFdFpHnxEd0HCpc*f-8i#UEgS8; zR7zUAu_g`v4p^=a7P8ni{I$ABefkpgY1r#*BTe>dB9yK_nGa!9+mOGUzI69w(1b50 z%OSYe;W;YEcFpoPVit3YD$I8|nZ@s-6DXKvRW|5b=2woLP#TuPAvu|l&}*jEy>kTFMHwvF?#F}X^4;p zthlJ5ewJv%LU~F7{sqAH>DJJLKq0h8Isxho0Z{UBw6{HzfoYAzyoH`fvA3smNh5J2 zkIA1C|DweVoz}0AC{0e}`xKq`QRsB2-el1%011wQ{+c1!PmuKQNh(E<+U0Hn5Uz^X zY=I(5xomx@v0YJi>1n7Z$G2qZp@JL>tM>=zkLk^Hp%ZPw_^0;$S7K{tH^*R`F@}Wl z?$og`xbIu8U=KA4q>p?+!{>^RX1r#V5Gb`3os1`+1&j@KEF7J@74C6MEn;sdf_+p2kO9}zC>Ik9QXppJQ<6{*DlGU5U@ z^Uj!-MiLYLpF9ST1Ol8ku}Wlf(B(7crZfmB+-SU~0&Tiqx9-(er+&~MiU`7>c^sI(oKd>>9`qEhn9zWXhm>ic5bSb(xLy~? zObILZKD;BF-a2zrIqYP=tdiISV!Lh!gF6hP=vl|0lOk3*vTqsyb8#A=&*Tp(dCtUr z8A6^7%54^KQt$FRrs{mn8JF|jX}YA@pxF2H=-8ztRa4>g40X^ipO{O{NSbxSE|i*c z?^o~y(6F%sKo(a7N`UZwXyGzqE_62Xbqt&d(9=#p6*Qryy4*Gm%}d52eri1axsc;8 zd7#I>Vy-QAXgMuZYYo74k)h(FkNy%yP+*T`@%~T%y6#g%?|I6{;HQB1*t{A$e%K=J zsT)9u~sNDr^vIKd#9b*$S6P>yW zrmGkw$FEpSu}D5(=yrtf-eR;Ya&o`imoxqHENvc@FaB0oRYN(Iy@@ z@+Fpj=>YAXlhFe2GGz<=@({gi2(|$4Uy9OqXuejY0p6ZJ{EZKKfZ^^)!O|~xT|i61 z)r8Sx7}>JVDm}i1HJJ0bd#*Dp;Bum!09R5lWnx)W3B-mx z4aT!8$J&=$vA=_GnxC2c0jlA&forFB2%KdNDgpZL^1+LaiA>ku&qj7+_p_b#&6h_Yt)@Yww!C%re+#ECB5%$M0z32z8 zq`GjSnBzvh^pROGYsn?YPsEQ4&XEn7)gOM8>cA3yI>u9~)Lr0C9t?HhcJ=mC9nLHS z!{$>V;d~*8v;pmGOEh4sA?NswOC5qmzk*yydm<4YxA(>RJk_SSwL@)iww735ex3z6z3*> zK6Z+RI&j6s<%Rn!9U5dBYi-J*9_y@}HmRY-(9rf8fJ146rm_7cmxyB;MSACC9c&*tl0>RqFiL1z zhukOY0E-l1h|knHTTKH<$RH3ziv%XF2;kl)k5LNv+m9s@lO&T75n?{_BjDC`AVVwH zG}ox0rEEygniW%_cDZj@;~l((M)2yc;CMMuvLi{Ue)bF>5<27)PvkRvX2dXa%hn02 zeg_VdNb*XlOPPdST`bZrh+%Ri6kO$pNtKvxsv!VYP0;Zd*_1ozuU4afa)>wG@`g8L z42j2X_ZSD9mCYamRLs?0GRWs##^mu}Xi)i&*e{XJe^o-&d(fuFTeEv|=Nd;Rz}Xlf zeAmH199!@HiDt3k0nt0wjt~$8aaiaC8h9Z^Y@I!*rrHg(-xKMHmMxY+Yys}J};k(m}nCCaE6C?C#_5G`p zUFZ+EMJK6*3gjYmzw^yEf7iOHXL1`AR(a$G2;=;Dk3U8lBLP)3FG0O6d=+3Urs^~p z?xhAL;ycJ*<=t%itHaN0INMNA7!o zX4N@%-8ENC>VwC;R#QNIQ9>hWp{Azb?HZ{21f|$e!n^~?mgvK*VE0F>V#_HZr5Q?(dI z<6jN}``$UO^!e_F^@oayJ{7ZHTi$>4IrN#TB~1J(JAm2;{aQAsMAQCy+=+15S{d3$ za2l=TW=&+g2S5?D@okU3T}>RJE|NH>I8?NzEKole5josezEO029cNt(&eq(w#65#8f_A=NwnP;0Sj2n3vbDe zSsREe2BKDw8{9SSC1b|)MmmpYCyZJJ1TI{{=S~}q7Y7NxEjX>$0p9#Bgp`H<5Y4pb zcdFlf0ZnbUQOcDd%WtRn^lwpRtu5Wxhua-4pW4?ul=y|UZZ^UtbXg6B_FZ|s4CVqI zHvr8%vI_FpGl>8^bUH`3AZal~%I+KmOlZmlCN^Y{rp6#KK8=kVJGAD^Hy&3Ujn2>sSUrvmA758*d;{_PJbbe$S179Cs=s@`Z zYK*_TFW{;Vd?B=L^^hmBP&oj!OFI-^R0BBa)igga6;A~U0rSATa6a5F3fR5Y_Rwbw zA%v=p)$XDEFEQj6tpQ}e?n%XRJIp0R0HCr0_Z`Xrt_PF3DxX_2gqQ{(J0+>PBCS{$ z)awVfnH8i-)6fX4KBxl-U_WKxRUpeLC=i|n8N(%gyEmPc!+yKlTwC#1i(Mx^y5&mp zO)|QYI2zZ5K`xQZQF}(>a^GuLK@d7WoG;m}ly3U)_U%`{JRIeK&Zx*OL`<{n5$(Bo zFO+^iC=@M&ksrn1FS1VQQ&(!9J1y$4D*|pm>s0OCDm3WF-d3<`(E&9WiENmeRUfmB zP!+YZwZA2=n*#A^bUeR^O&azKOme0 zExEJp%%aBiLMLj)9z1*cT(c(d;7`O7-%^uPyQt!QQOhhQ_r#ef-eW4D_ExN26f_bd zwQ8j=tB?dHL_|RtSr_0^zk@0Kdyjny*|BD0Xs7Z-sNNZAn#4I+?CN0uxjvuP_v^iB zh(G_26$qXxNf>Z$H`xbJ0cYHA=P{_niYt3NXOZ0T_jkgNIUW9~{5_?@9rFC1KYr z$m*xfg}n4ovcxY2er*pS!wR1J>z@ze?u$CV0<4%rQ=EWY&|yyn0J}qmRjc%vEtI4I zuo5rJyCs%8pbc1M?>0M2@}yYJ^Q-8kw2=Hvzs!5NK^rRe-9az5b!NF&Q{cy1vH8q5TbipJsaqQk^Ub`P+cAHCEdCXOcCRU+t8!Ma8NaH4i4Oij3h!utD^2~y99lp$lklMc(NmcehtWk~e>=n{2u4fP-6uw2+;h#SFyH&Y)lNxHRNa?QGz_X!9(9JwRW`wymo%puW zfIDKlb%~!Ux1B2%W9Z@5NBCOG%MWzi)L(*vd1gnVK*Ib=(nbIZLX`S<;QpV*z1#TmVDxF* zwv+VmJpzhS*9#;07Yk1HEaU#)yOMLMIom8khK=!7{tn?%=zPySuJ4BI~ zn1JOVVo%>V{jF zCxF%_W5~)h25U5Qm0MeA0W_Udi{72U>y0%s#m*FSY;8MK<`WrE$lW@>f00qq(1qUvCc~JGQK1c!b9;AE3=CIdc{(v&GDfUZncVA6)>G=%?bhxO&u#7E?Br() z`x~<_;K2cU)W>F8{qJ4?h>*rskp#*lQO>MB%dOKuC8odMgRAV{=0N=6tX@1|I zj${6=6LrnIH7WTIpW$Ml3ux^{wWn|@M{$r@B{x>b+6&Da`%Eb9+P5Cu!6LDV*q2xn z+ss%>*#*L@uN`5T$+Eufn*q{?$u~FLY`-(vb3K;x+7X}f{EW`;6bTe3j^;xx!wh`a zQqFeiCOa)d@!O&W2d5R~0Z*+_S01Zv(-~JaEUZ$JJ8ggJwpwIg$`|QrS!g0C<#x|# zV<{R$7WVmX|C|Ps-qjrZz~I&Otrb7J16G@aHMPw|W+rE*XI89@5ND3C+PtnWn0p~; z)M1|0%dG@u2B#iF68hLZMB=v+D$kh@ngLQuKpm6~y$IjL!KV!t5IQL7EeQp*Sf6B9 zyX&`|t*d%m+a?QCpy=>1Y^yBPSqe4Z%mdvQJqj_?Q!ag%ErPe6@$>P-@(f~znd9>1BYuD>Mk(ez-6g{I~|ltuO%44M4&5{X<&A8zt@%V zC%(`UanC*F<%0W}QkT~?U}W2`7w?1nysAYzQ6y;qv(%mfKIJT#;J4|HXfkDgee~fL z-@_2ND3&tZvg)07S@B;QS2!&m%&NS_zxSM}70#g1^ zLk!gHrjGJl2W<|jV8H#Q9}>V$z5ce^%(gH~bmxZ<>aIb>;{6VPM);0}h^585_3=WW zn1r;KGyQgIAWkf5k(}Y*id6pae?WZ|tTJfBy8@ey&B5l{6kr_|?6U$J?E)wVdbaGi^R~2xv{3rKzNj zesYl?-?*w%ANZunS!uf_55vCA?wMf=oOezYn&3^4NI!!lAgZb{o?WjKs#b;;$mDs8 zf`l%pyGr92O-H6SU*E+-x4AxvJoSk4gB9*2z|@T|CvVaAeF~F1N4J*1oXF=4D|sb2 zIFrjwx35xA;#L#06mU&;tw{<6v36}KkE@p3l)K*8bjQT+rX)-BA$Nw75lC#+5ymQa z{6?pjxVI4Z@Zg5M`ztpFziu!7CjuSXI!^^6H6H**zCWl>GH(licd}>u$ZuIB`~wwl zMjN;l09eH_{JY7f=cZK%{AK+6Ef4i6L9STI$KU}sRmNb%w)6Uy?lQ{}^N)9C>EsoI zyOz!t_@+06o1Eo>Frw{PV_;VOn$&hsBs)-1Zb2(&cN(bJFN3A7g7p7PRrGs8(XyG$ znmqx*V?c{O5$kteiV^?^p1+flAGpL(y8m}doOqt@^9M?>fCx!e3@f%k`iOSY?xg%W zj}+Ao)jmF9IZj*m*p%6Dr9r!dy=g??RI=5PvToo`4^vT)94h%KP35@>$cVJ7MfXxH zzlJwebF5g{P#yx!6%_t%*|3YGw=n%RKHj^=OGaP%N-beR6)bVdmnsf$ z=TIbSEBgNFWd=PpV02((Icpu+nWZCyN1&x~D*C0jjWc2Ux4w=@U8vgCm`1(rS^l8i z%gFhSHu6}*j__e$QVyHn`r^tu4vndJIaK8ZW#AV3j);8hez8C-}|t>Nbv()v>pad@9xudl{s6) z!u_g|$HVurh=Sf2LQNMC!0nZEx2HiQg46j%vK3>B!K0e=(T(sY4QPzbbyNzk9MdHadrfWowTP z`QPOlKl?H-$qhN+K8?EXI-S6A6qo~AnCw6#Po?+TQcpafv=J3`#a@+K|N7q4?c|mi ziBdxvI)w3#c$(pgzsbUXU+grEh)q`$ z=<-bHAgxZPBWHupv|ReJw-4{AcX4~Q-><&hGcSsqb)TkN&m?iH9MUZ?d0>E;P8GfV zr8cAH>y4f49*I?;YEujlQ4ely)!=wcsSva?KG_5(-R013lK#TtGd`V3<<)(rcTmBn zWIeoiI%~Y&jiN4JfqYFQ6EIqzf}}BjXQunf4V^se4;pA&LqYJ~;l&L1tsDfEk5|6p z6q%{*JNT7m)l5iM6INUy5ZM+1W257`FL1r+W4Y_htuR@l<&ucoC*JfP&^l}x!Xno4 zUBNy91w$c(X2@~;h%lu0Qo{4>r!Buxz z7Twr*rfQh%BlJ9Y2Rj{ycKDSIqDSn^Q{!eNurrkVIrDSCdKD%%N&K{te|zbFQYld> zg3Ar)b=purFrBj(}!XXGG61+nuv{c}*dIyrk z;R=r~QQi^&21oz`MKF{LpMNt2nH>IV@sfIk`9ZCPIefQK$+>%frV>ZCa?%GUG(J;T zaLs9V2+Bm}2DnWdpVlqh09bGZ{a^vZN^v)1)mYItAi1iObf0H^t+jQn6sRP(U{h6s z-`F2Cw9t3?ivDH9>3r0Vx)2TZdRqLL=o&V8bdf6)I{Q6aXMZ^eoPDZ7l<%+5<1NeO zZ!P}?U@qSX6!#p*`|jM&Y6_`&6R09bA_#2529c&p~i5O-&&AK^D6!_HWR!B^LS9^*4gHxrIV1=BW^ zjtFxXc~QmK8ao;}(DqYc%#k8sKQF)FA^(=Vr!%znA&b2wt?cSetWTb9!8@QTQ9@-$ z@p7yb5jiSf%iVG2A)FrRLEAsbsMev3URg9d^@hCEDAe`ZLcIc$;1!Aw3| zP9-3v;VDW+|6=^NKJg9bXP^gCpbDq8;744Zc7w*1eLwp(8nf67(E{BZmFhjpfU~!> zneH72rX`-mjz+?9^n*9k=Mo1aFYK%IY+o|*$08?=B@#-900j?s(9mX|wbM|g=W`B| zx&X7;ugs$b3RmjPnO_euCh&dN`pbdfegCFEKMAV8wfYx;ST6yUM$u>QRmBF) z7AkRS-%tLl)HbAe^xmL;b7zA#?qSYBc5DJQmwpC1M)1L9Jkgfk1`K7!VTLe1ohY1#m`PG0_@_xq?2 zHR>^^-Y!?u295fU-W|P%q6=fmte6)@rS@Irkdal&^pN>kt-7MX=GrJf8T*}DZQDgn z-B)B~N+#m>@b`AA%dUNZlJwaSUCLh^J^m#EBWpab>;2Ba4e3H__i_;bS-o6+QW=Cd{jo}UDP*MkZDK~%^B)!@yJ)tg`5&t zX*LH>8&n4RNk)Hq>3>HqUea|I9#h&1A~s8_vguay3v*zA?7!((=JsvKT@>}&0fiG-TbJ3v;?>(Yw>eY}bEC0cRS-(OS^ z=2>f9EPQbKaN|{4I%~RD-p}{+=FnTn)O20*`8LAnT@4C8V5$j z0pt|H2HuNx!cq*B4a!KMrl+N6qKCapT74;=ZU$Lrkjw8TTi`6~O=LxlB z@u*`^mt65kUZuyfM}R3wr{0zuoT~*B{iE@7xKm+7I9g9SQ6{%bM*0R6qw4 z%MW~gJU>n*-UmzlrdM1eKF56*N9){()9L+y1tUf}1WFEDSBzrqiuJyyu77OfP85GR zcbq{i+?nPU9iGy2M*8vhZR1O z3psMucKqYhuEcZqI@r+?7*_rKo9Di1*2y#5kUdd*gRo^>sP~Uuy2;F)cn}6m1IW%B zAf&=CK7x$C%5QT6C}&tNVkRfrHfbwlIq*?YZt=XM{Nf3{$Wv(^$)#fjmlk;rCre*b z%H&90$J6vDefleLJ<0;4v{3Wyx9hE6(?Gez`!pgBLjwR#liOj)ByinK#%twU9w=wd z`6XgdkSzP|v3)n^dm86yd*{Pk{tt*i@6A0uJy$>%D~b2GUb-3^iBPj?*KOb)&ubM8 zodu*I{M+jG)zQ`+tc%F!8RD6@R5q#O^LbY~F5EO0-OZ_eBhvt6fb566K(3xL*iZ2s zalm1zL2Ty~1M-h6Vd#h>Y2pyrS8mI#is=axAisJI+$H>*LOlxs3e_tsoJ(^2UJK&x zs}fuTv3D;hsolI>w6BpX*489~OSLdUO_EoHQt|{_5_mz*@xtN-M^64gsX%z3eDCNp z)X6YA!HKNVf)>-4wl8zb18rXhpInFH+b2hXHc{=;{@oJ)ph{J`*^_VFm7$s3p>+dT zmlXiV`L0cc2R@3v%CR9lzWs(|=3%*KE;qop%_rP|2=G1Dpywe0Dmgw()6TlqiWS(& zdRy*$3FxQ>D^(!(bq1A1uu8DTKt*=sjgxAeW7kd>dqTlE=4ms0%c0((JIdPx!QFnh zjgi~@(^O;oo*a|Ef-W*^I5Y!_B)1subZoy3$%lqN4ZVm}&SOWYt`c6T%;j40AYv9! zk-mm%DF7Rm5cc7zBDq~(P54(X<$2ARJO_h~>qCH2ASpM8Pn%cfY8s3_5nw3h7y$ncz@2&7&Y#h@& z-QwA#Wn`_@z{r>U5WaDLj--#n1BryHkX{DbacGPSTv*MjT@wQT5$vi_TnVsCV4VmFK9i95vu4HZ8mFK;g z5TWyfr?}_5Yr|tY?&~19x7%1>^9{TtYTNU9190o!GI+x|d1)(6KB{q-y6Ae$XxONR zE`2(E9(_r8ftqWbNLav7Zn+DCl0)>>Ma0#$v9SIDZd(YMo(Y2%JbVTd`r8HXKK~`g zG_(L}{lQxgdE-Ba^tP&bA{5MndP+Wkx7FEu z&E%96^J=B(R=CZXd@Jev;a_+(aWz>y#e<%)j;}7q`29nL#pZ}OnOx2p`{-ry!+F-{YM1wM=2RyBnaoS z)e^4J^+D3zr!k!y@FRy4|sh4Pi`m}F6v;#?t93JxIc+ai@ z-rohF8rx_@EI-#?3}v-CYu)kD)AfZ&n`n4AJ@jM@P{4tf)y#1tIO_AHa>JKsb=35V zEH#$}S!EC|vebj+uCJMlyjzcm*~jJW+p1LjKgQlVEXp+cA6{5o1xyf740L7akQ9+J z5E;6qr6dQXLqZfpTIrG)I)-MDRwN{(a}ZEcTDsvq54-!m-|zcd_xfFzf9&e67xT>h zoco+l9R!oa%J7jtk0>?&SRURMJ*ks?GZna zD{?uy#_>7)k9Ac4`-NAQC&mooi^(}FuCL7uyC1k-xc*4&@0+nHSWMvRC0QY<4bqwR z22Ak6nDfI3_Sh>2pexHZXb9wYS|0D8XU7PqSj@WLd+h;Un zRC$@sgDLJ3O#P{wlS{JP=gFx~?Ik^Xd%4NbUuDQ|mSZRoOnsS0kwe;GGs*GmLnmN~CjPjnw#A7HgU!20wZ`%2TK^)aKEpZLbiAN{HH_GP5#;K<- z1Y;}gMF;MbuUn~p=3JMcA zXNjuiTM(B+Ry<^gy7vJE++&#Mb2+B+)#i0llYvThQ*y@KlxIVB@w+;e&c#Uloc&TA z&0wZV*6!K2NM;!Z=2kou)rL9czZ-C>sOO{MqYqlpdo>ORY> z`LDg7=DOjZ)_5-4rZj%``xf%z|6lyH!4yA6s@c9Y8tCjCMV1q>SYe9NK1}A4nYn-eK7FzF7?={i*9HV~OfaK>!P87cZGr6H zpnT*nO;08<>&c|TTvLZi80(PW6Spu_J{XLWvfl1M%t{ILq(6p|Mmqr?Z5PpFkLn(p zB-IPHnQAR=eRpfnlavx`{lFKI z&H?$C%U^s3t+$L7 zyZYIKvqz@@vX?xrQtT9^8+yyuRu@eIiE0;OgrC_@CK+p}`wcUH zcTluLFCAlAS^<)~*@d$x>}JZ`F{U`?9Of$KRxfd@JlCCdeuH{{>DcZK9jh);J(sm} ztQn(r)B6`l0WcXfN`lXz;`dw9WagSs>4jgu7rv(j4t7`OpZ|XHL1m1@WvALWV33qW z5AT?>5n=-B7iYeY7Yq)imaUFAP~QByK>0PeP4u9`Zo0Fs3ew5?Q~1rgnKbwiuHp4S z#^Hkl0N?Su7tI{#`TYbHUMS+{kM}Jczo>nV*!PLXCFvy&HeYXFKi{Cn_Zejk@ zJ*lG&4>knYr=2;<2~2R~OfbTYGvWT~E731+oFk+r`j$Y>sOIWac9(alijvcC{4+o( zkZ#smSyK!!#tw00G*0Jn(BaMuYGILjGEAMT%`mn~DTvnY|@H%PA{WG}VB--m*B z@c-sndy%fr4RnDvGOzpAMV`mfMFkHtuN^jbWVb&s`fJaeo)+<#TTlKnyDa6_jlAIi z5xumVC-kiDqr)!?JNIucjbV}k_|g0dhmEcW#g*%(o%EU&j#jCR!8P1WO)3gsm3Eab zN>kTK)yd#a&vEsRW%i+{o_um-)2O^vL0GvDAVkA^-b=|L3)p zmpS$~ZKnrBp>(AI4$t#sxZkF zuVZOnLUU>u#PjRmynKk$DE{hy7@6cj!EoC0QYokpAFfP(k=i_NtENTl>+bs!InsJj z07e}4)L=4th_yTSQhP(-QvK87jGR&KA}{+VL9tr^hbW_omu@^rsW`$x`>VS8T&#zo zJzJdz!Q~a7ET_f074WnQT>E?E9DoL(I`OhBb@>ouY)_B{dNX)6h%hu+HnUx^+{Btn zWeW8qrr#(Vy7BcEp0@rv8r}bwCkaL+Y%KTZ8}Pg6`y zNKl@?$IU;k>;HUKL1Nd`mI)$7mJEuO)oilrCDkd`6y1{f49k#-KWR@pTpb*s}| z^C5B~`M_PM1F(z%urObE<7?MUPgY59UzJ%8OANP>uPb!X_(va!v$V_cNMDT~3%o@@ zR5rbPjJMi_f4CJ<=w_+nusxf>B6YZky2>AwOE60fd@Z#}nm4*|!_or02D%m?o%idf z+8~59xB{2n!LtRBgpAJy1oj0?UrO##mnsN7!c#qr71@FJ?-LAxw?u`|*PE2(SC zK6&mW6=u%~9;8GY$F7b5HHzvY1T)#gmvdiI-qK+U(n|)x+BVtq04Tm5d+1*x+112J z)dVFTo@ET{PQfnrAlgRLh2hHbwZ#$9Oi{?6Gbw#R;OV0ximuT*zryV-ca&``TvJ}MV&;UR4Cc3z;yw<#u4^jE<|*=+tHNg8 z>FGJ5^Mqp7x5;^(Wf3i2ISOvOOA_U9Y%r@oI@C)(B5yX%xGm0p*l8+?qRv;zZD;;Q zIlMGU4sR&ZgT*DCw{v2FK~_zZeP?onLHI6bgqF3>C8zPXI$xNjUaCuq?mV4+fEtn!z^jnz|ikL2cpS3M=B1@9};Z8;4s z%2zq3Woe6xu*C6Bx{BZ5hq^@-_uHU^>ZU~PkzXh1Z@v=)5D5;3snI}zQO7+SyySL~ zfhjWd(h$YZ*-bkvE}klpdc{Az{W*tpLf#=}Fzl=i^g+fl#}JYSJMPz%hYc;f9esjM zLu9YH9#n7Qjp~i-kiE;GQFp&laDNMe7(#5D)z$PP=vW7!_maL7 zd9oWVh>+Wpg-^fNq>G|9FG4@BPFXXaun0=LDsxOfqA7qiMUP(3s(%ms@YY zdrJK_sou;e$YO(n-vA^_6T@q&h|aCP;k{7?=_{W%p+ZG&AET@x>ruZNi(b*$UFEF! zd8a6I;M>QSg$$mJa#`8a8liL0dM|DzdW8eKWgohloE&8Vf9->;y0sr2pAatt)6xP! zb0vsaeq{^HWaM^Lo%*VsZ6eZS2D6{<2otOw6l1&X-}=ThVjT*Cb=F!t%KJnw2cd>i z4YW5LVrFv6L)qCZ9nRyCWqec-01Q%X3_LaZ3pV*TWNZ0Md+j?0*G^x2R4K3#onK9m z?}M30W@fuKM=J5n0_8_bgdH}Fe-Iu-VX9RYg#R+zouL%^@a;VuRZNja_g^rpjtA+F zDAOJW+`ejL0q91U6t*B^+Nab!s~!nndd!MejI1)3bjK}+X8kya$;~E7u0b?PgVnIj z$7D@ry41I7WfWU`O|HLbViBY9eF{W2g=enaf1lBA4fu*Z6e^lXX_X&=6oE!|oSapg zSX1+grx!lerqpH<1m##0n9ttx~r`K&OX z@=0a~?QGW;5L}7X`Aej>xd@|ZNl_^H>b4aJ9laK(M0fL`gxE!~<0?+5=ac@}GHbqj z;08je8h8r=P1a~p8B9csgZ6I;%RgbBZ*{O~q~~x|LwtxXZUe`kR4l#v^6u7+u4MKv zh($nJI0oBe3;HMuKIYOpgJ;aBm@(DwZKoA?ettSN54`*5lCTWb!ZJ9Vg?3T-)9(TL zF`7}t_v@1@wYY&$I?1LblIz-x#Ngvsjc-PsCZmiA&=46kq^W?mGnhA0zR}fV{K$g}UQHvD5l@7Cpi%Td2n;%J1iX zBU#N++Eu=|HsYmQFq{audWUMr<)pB4sSf@P)7RaeRjfOd(IxE{z~D|8YG^|i9J5^Z zpq+4%G}ocv#NBisT(0=z--KRb)2G{2SqX%MgwAq@#THNL+ampk4ROLFVoC<-yla61 z*hk)?8bv*waKcUb%zLHR>OdlwzD?pn+?O(v&+wwsF^1tyQM(BC`c-kFV>{QM>x7=>1x6^BnhEY;b0q&Xbq|_6|KLvUSA0$2I@52g)^8#LZVU?$URi^Q+g9oROcfqve@yu;0cb}gmMI%3G)rGe z%=v*T*JoX5GaV#oj>)G0x^qk4#sGc-6M-OK4=bY>xA!E~UJL+0e-R~yfgNq!6Rh9! z&AR!Fp`XcK5NE|Zy@=Dz4qgR7rk)MHZBiY*KNINEJn!P#!`a|^$%COl#2`m4HxAh# zcqA}B&VAo$wil-v`XS=xk5l53hDUJS8q_T{Q)=DD@f8t>r>yXVF^ozUKiU%|X=cJa zKa4kq$go!K!4b}91qRrDRZ}shigWwNP?jgRt5$@z9aV{BgbXI9+*UVN;-vY$r~M(; z!p+!j|K$nS$ieHqy$G$zz8cbB4LeXRA7PG}6l}-Zv`Wt3p(I4VPeVHNpN5Y02G#aa0H3pdVRC33WS5JJG}i&*0KJ7nO> z@|tdQZGzX4Bwb~&23#5?{Rk7mcU9UAr&$tMC3*xk;N>dW*JL*X^WlRpVe$vSNC`Vj zpwx89c0Q*@94Y)+VZJg~tUV1TrHJW3+%+C1mK3aGru%NSA2qC;Vq0WG%PXHKfgZMz3}H*KJE?FqL#)*pJ! zQgH(K!a~7hGTO`N_-VbJL7T4FyNn^oh`c1F(^mp5Ey?T_!(x zmcB_eIFZ!FD=F5L?ax$~_%v&hRF#yqdY^m@sS#GddN5f~#5`yJOmhpy?6qT?_i$1} ziMH|mcF#H|?IK|24XKSg&5#l14%tbL&p>&(Ow{dJqa+LI_|oF1Ih|^%$ydk(sLQQ2_xxUpM9^g}Km1E_%2fRTA2cvM$OaNp^Q9~!D^5c2D#U>K zXd52v?~!X=Wt)7Tid~FXwQg2fZFL3;(|`j>3(tz zZoERA){{gghab8h!p5YDz(S_m$UHEZK_K=)6UPxou59n?ZhWyhy zsCrnkCpCL4;ARXcPE!F*LW4=U%!bmPet_=Adtw!<%Y)e(sR-yX9WZ1T_M4fbpQ?>I z>q!A5GY82sP1E~ulIvATfuLTq0DiF9NxHwk$h7N@yId38y_g)DsR33eHCD8f-s}TL z1-@kcoKf7UWn@ccxsr?JNR{iV<&x+1h|6t-b*^-`HU-37jS2xRhzJ0BAygDVrKW@P zPmlb%2krHJj(I}25~82k>oE2gn0Jk;|I&UT)__jn%!-*b=w8Z=OW#a)AW zXq2n<7BptFGHpPhA-~PP-2`8FO0K4Df*r*a;x-?daSXi{ak+wnH*t~chLUj_nYmk zj6`)q7FjkdvaC7>kfGij{cV2irF!VX7KK`8O z_loGZjks&K92T^G;P&xft(&Dqy;S%I3_~K#-@7KO>S(|g((FAj%;pzi-WeRt&e&b; zlH&^5W|wBR7**8UX32Uc$zVY>b-6Q8GVU&`J5{j-!UKATQWaXz1lL~~eC$e7nGuA2vB!IDshzaK!W5K~=vc2-+0#$b;b(T*X2c zL|hzYMQNeMZ;}+F%wyr$;}F_v1`Lxu+nZD``nc-Sz3Yw8wh6-mLA1iJi5|~QV$+oh^E|R*?XjGQnTsBk5fkiYw%^$ zl(p7y3tsr()Ia-*y$tny8FkLq-}sW2y?~0!Q;8hU8ZS;m-9xo0#7@ES(pFOEk{Yg_ z5qDkpqv6DZINGR8fA;fnUzRK;t{v#Vc!g(w4rQLpJ$NktVivlDm{RwE-&X@S@;%%e zLVug&m-}Po9+&9Ds%3?8-ylB2hy~YDgfIZNiUpmzefCYtUth_JsHX^bgk)nl2Ogz! zX$KqmKIdPh&HBtw$%hecYa&sz_Koe6c9JrynP2SI64?(7l?LIqM7XNv=+mj=u|SNz z^}K#m_lS`K*4_edES-+(MzD~aRUANdXKf>(iN$1R2uv}xINWgJ z%n!*CPvMQL##1Wa$@Rt0T8vcfX=q*bR;4CJx2tNkh70X{z7}-P9;ckXnX_0iTG`+( zS?5N_`F^4LM31(^bX9A^{9i0*Q{Zo`USXHaTS@+Ha6ZIt6O>6!g5?GunDyipsoXCz zY5{h~q)uHpN%_eOP#k#tNqLM>Go-BV?sN#gU@O^Daf5VJ-Yn%d=JqX{$(DXT7KH~{ zfhMQXqLm{|X6BVFt%&jeri3~((wK~sOIcB51-H@9$vIp5S)dB3i(Q~j9KL(qL<(dyib zsa!8|&rM23`R>u)P3O=Su?*>!fClB-HFx9{MEbm_#L0XA@e0O&fF8``<6W8t4#xjCj>+hz>h<27profrhPHtB*W>A=@1rz<#ZfH=5R2m4DZGau-0S+!g zs8_-IgKS8nK-ilu7P+&>ve}7nk0}|vm`T~x6d&Syo>*%GBD?!0>!!ITHxaWmnNqO$ z!%*pbz=;N6XW*G=Rxdb31;9hpIl8QTxsmUz$MT&zZeaHUzr{Ho#(2H#{O7*)lBOxy zktx~|8s+vwf9-W=L?l(~FvvW%RP-4}?sIUSd;rX*n(2)6A~(v@ z^!SyGQPM}j=*?xr>m|*p`7fm|g|Kt66-gmuM2gh&`D;=UoRx@y^xs=LCL3b(I!lYa z26#r&r|$x{$HGV?w;pV(?SLiKpem7awvL!HQxonUV$ki|i)^5C|B8(JE~JRsCaMyU zbb3#5`Yk02lE9mj=g29Y0W5siV*j?YSmRv;f>9zsRxUM~n(-!+lQal?xu?v4GeVUx z?1DyzXFg1l87bmkU*d$zKS#oO8n_LBra|f`eVj}*FLSR19<9#RY`=i*he5>zq)vV( z6@puV@Y4+aw1m4u68Zu69=Cak8s%a>Azt^a&h21x^JByBv~-*OHJBL*dspS|g-(o4 z5N+?S6hsknr)K-hBb5FSM65k2y6@yZ zl)>G%{C2^vZ%9Hhq@rNQ^C##&pFo`6TOdN3uZO?;?o@?43TOCNz%^j`y9BSHt3H>n4@p#T4k)njon+P0PEM zFn+MqK-XY#L}GrMfaB7v%kO4hA=(o;3;9i-up{B4dnayuJ$>P* ziS(O`bejS-4aa91Tt1hHQD^q4L3bj{bK-L+y`V&qMO?PaY8!~T#=9R}D)kPl?jbPQ%<)Oga z*9TwG4^U^($XD`tg#OSiF}Q20*}KdH{g#F)(#-@74TH)~e@!b4c&e68RWhXlsn7D7 z6Nt;Iv@D=_2+;0)=Nz>9^=7;MBL2!Yz|IEzH39497DTV15;k!HIgW8`&fe42CwNc( zOy;Cxq;EJa*xNuk9JG_ZFm~pDbo&KJx33ZHmzcn+;d`2Qgp z=dsNAjWV6XPQ25#re|ISGn#)tG<(Dup76j z{mnz4q8+UT3W4T}I4Vqi;3ad7%0?+rAh4B+CzPZ#BKZ^HKUCfv)Oe92>4-sm=Cj3y zrQpTI!DVoM1t5aQdc>NkSN*V_JSb1E6oE#|?@Q)MaOR*yHrU4HF>yhUQAIAJZdY0T z$EnM)#q7KQOLl=p-rbX-97rRJ>CO}`O?(rSt9N|o`D1b|j6P;3*wEDP1E3haPxL$@ z@Y1a^-|R_}vkg>jRDB`hOS)sf1sn|?Bgr+tcxFZfu7gM4sVP$Wv<9prhR+MW zKN%TDRDS1PgE>IFF-ha5={vhf9p8_Midd4>y%|EWd8(Z2lV@u)VHr|40Z=kn!zzOj zoO~91&yzQT=O1D&WYiWyu7z=Q@v<^^lw<%wFjeq@8vrxm#s2GWf z3TIQ-htJ$5-Kv~j{>|))d?id!DKJ5OpYhQVtY4EaTR@P=T-YuKEaHoEKauuSgD)Ey z$3e^=N=<}1@SK1%@kKdIAS@yxB7;Wayok&DOLpA~sq_hXCa4Unv3hkt>gEBGI}tMn z&=~VmJ8s-MRgNY9lVPEqS=|FO#Kl$Bld<}&3y%R%Aq^DWEcPe2o&ZqDrKzrl;8Bm# zaNM7;RJ|ZaqQu0PIxdY$hYaf??zGTsKIhdRpLMF;_N1TPZUSh=42EkzzG`5#5#>@0 z-W%}Hbw~7Xu|UCuK224baZ$n5#D2QPN&eU^2ipW1A_kjdS)NAn3G~O9s?6=K*X`t) z2qjQa6ytC~R6u;2Jiqf z-yqcLHLgsty~j*ZnKA`Lf(fIif08On_SxBer_URdpzM%7=veNoUh9obBLo(|_`SAX8P|Bnk6r*W;x_xMrt zrp^2)e`Zn^Hnd>YG09s{i1vhXv#)xq-{;PB z-1VuJs1VbPV#J(%O8@@Yw9p%zlv@>*3CdU)4UItyQxZL#AKhX_#uS#7S z6Bp6BbLbCE*hI>Q$Sp)(_$yh2>9McS!QclT$E4^i!iAb2fv5h7|S@le#3e1v{;j@RUkL;PDps|;l=;c@`6M*+hdE%uhSYJS#UW@ZcM zq4SfuQKY6lOt|BzBlilBM6-1e`Ds9n4w1<(3vL8Ns+6gN$)f$qB6I^qi1nYK$Q|XV zo^=027j-M428RtTcuzA_;>f(js$MHCX@mZ{5>`I0RBn&yVtE4of8FIb*>;$K4Zs3! zIZt|Nd&p=?&!}(R>b`~G;92TMaGN=gUaWsQ`x%EPuxPyF@V+H;`t@k#Xw|5D!B<$t z*5RmE=Svlpe4S41$Hu6^nS=Sw%}+a4x?9spqg9=E%S)PNp=%FrEbddFBd!E3=t2*>>V_E8mN3$ay3Ll3Dpuo(Jc%sfoDvFaaj2|LPn z;)7L!0YMn2Biyo^Ig7dNw7)eq2&=)2G%##zX!)+*FjyKMF9X0(G_R>XXgE)4W2u_; zU$KQ1JPMyEIuacRt-ADu!Q#v-nulyFw~lw7#!hKi^^(a97zy z`cL7aj0G5K4u!715()R0PO?TN_3pkYZZ#eZo(|CYm(!X4fMk_ZN*5ABh&eMH7Kc05 ze?KDF{+GBX<&N0kC(}+I-0_P7?cm4r<-I|GR#)-LH_Ai~JF;n=Qz;A&D~A|0K{Aj$ zE277`1zhq&a28|M=LQfRkEDRc31ms4Jt({;?u%*eno@Cc60rGT)YXv*BT!t|vdV^n zu7Hi8+a#Fh4nUee<=)96{YX58^730es}SrITSlGQvhsS%W87K<3ak61CV&;bW7jV0 zj^@XhAyP$DEVBZL9_(49)g~5{s5h3udLB(78ycFzeo8Gz>pW(D04q-3Wuw#?9$bRP zGWkpZ*y%%|8Twl)`@Ld2lZUI79UBcuD&-SGZ&6+fTO`%G#?O~xR-{aN#W2Em2>dyB zm$fb69M_)&GsVHlnUd)&W@l~w0OmW>)p{jaZSB-?pZE!zU_nMIZF)yWuLfyy;4GQps0NhL>4+O`L?v`eFLH|TslNWI=BWg86 zO30K*2tDRl5K$&KqvJ5`qqC58kF&4xOUMUXf7{$@F!H66C{&)RQLJ`zy&&vd1Tv_r zV0B5*I>x4nXG3F`7fk^!wE$->gL;2(_*vC{x1U*VBt_VMQ10;D$VvWKWAW+T&EJj? zt9U-gEA`Aga%S`vUmOLzybqZDD=YW%l9lg7Fg}MY2di>hx!qt}VNq-Gw%^IodbH#ys;(E+%di)KiJH z{>=AI4pPyYx$y%6D(nti(PbQTecDZk{@V9G%p%yOnqOtN12L4sn9y?(ILsJlIs(fy z%uZ5&)$*If-)oKWq)PEmd(QXdl+9-DNbGGUXD5q*Wj+N_+}KFlev1}`C+kqe{S6x3 z1qOPOrgtBZnV~OXeu^1PR36YMix0Z@0#X|cI?iW$r-}iJ;#!Xr0&7^3N&wjqQQ+xx zeG*=gcCs2;PET`q>MfP!==k2@d#1nBlZC#%_?>yRWe3N zPPiwWQ#YB5B_Kt{~OId%a-($B`8YG8Dw?^?a2-?q?pbI3aaSMYdmgOM_HnAF5qt0wqv?+~gKiB2ll9G#y0{xp;x2(s zYaKx0$0sqsYa2G7lfNP#Kx$HvVD+;8R3kSiGP^RJX&pSrPSeGEj!|8j73rK98+(_m zT#mlIKBBor4&UEBIF>IyKRT3g{wu5}Uq@PGIYdBg2i@hnPw_wPUv5duXe zc-yYs`u6;HEEOBV+5?pLcv1tY4YxqJ!DDy!*x6SfKri?hvX*zFxmyA5T~MJXA(IjFVGR;qk3>d`bzljN19xEZBnvy8OZB#BVu7Q4 zF8C((5#rOEA!6_$EdbH-Q9X(z8KvIdhW#$agaQ>-Z&MZh06BU-osK6;*6-}xbgMr% z2qbEk%_Yh(K8jl^X=Q4Qfl;P1vY0Ls?WHPfq5J4Fd2jV3Si{T zY2W;l4XjN5^;clWoeLVG>||ty)&JN_qqJr3vzB(6RF#1*eI27 z`}cCVHIn8R=ye^xA3^*8tFB$;O5!8s(9C^ZjqBzQM%#9fiNnZr<=qEJCc%IkG9NmP zVFu~Q)3?N6Ha)qCBu+T5%^0cfFONjj^HsfwR6R*PpJ_gKEk?@j@=Sh+0vy2t3Z_02 z{N&M{&gd+&n6;+s|DrmC@FOHnVLM{)$k4sT;Y!TsH&>7F863X(9^4EGl2M5CtRq>L zkWtL8t)rt8ePJGMB_a~u#EenJGREhnGTcQ@%P%apA$#m2Jq_E#N1$UalZhA69;!pf zi@46g`1G1V$Kb@FmquBM7{Z(ahhxy8NVHrQ^AXDn#3%_dgSTL4>4WT%=-e)ZbA&J^ zJ%CSr>iEB5*8Ic}{GME0zyZLJ&_tJlj z5~sf+;cesw&FBx^rL>{_DC0Ob~z?qFi@FuW7V=#8SR>8@nZLu_a}U{H+Xyeb`% z1&L{C2%<*sNwuQ>6c%pC^O1G~NK_=wOsc1{vSqDiBqwHYa_^I9z^!C&ane~}lZ#v- z!LZ}KI415}4p)!}OX7k-eEQWT##K391)wh}kSpZ3#9untz-&%o(t-6djfp5)1`Wm_ zh;rXe-bd644~RvUqArk({^6hi0|5L&d!yP|%&{|D}2Srw}9%PPel> zLQ-RA_5#oI)L({+<}ZLx01W50=br@R24AI%|1B(To(JwyB$gsO22xdc31sU)Ci(wu z96_2l@Qo!bHH0!NNsqnFGpWE@`2`sZk+NM}d@s|mb&hH7liei*$?pU;M|kV8Q@;kf zdtM<{ctpQk^y$E%Oa)B)0p5)uo)|=h|XpgB8r5y zPuG|a4$;qjO-Oe6C!GxuQZca;(>j1NgNN38Q=q;rWy!am-EzZ9hG}AU?DDi3c?#Wy z^N8Od8Gbl6sxyBD*!^qi%cS!_LO`J4#yF3SH3XG_oZ>IH;jZKdMuCH(-5f9bzPsmV z(8rZ3p+7>dQE(bc*&9Q&=kvoW2%v;}V0s z@^*?3Mp8c-7;E2*OogGrF@7{S!qH}7cPHLEy7jeDGF)d;Wrr2u2z@D4}uPCGgK z2<^ItTMIOV3U=#p*d-~?1POdpWR$YMMmwQ20yd3op9yzfLF5`IE(-}9^3qpsc|65- z*){$gqfDLoX!k@-J097vg`Pyv69Yz#B9pg>&ImZe^nc=k4$mP6Q2;A%RlC47Hd^nm zpb=7tsb>+9eY;wg>>FfMQ#N?bThv8MjZSZA><*$3f=f8KW|QIY~&vPg{^CSE?+Be>!e=q7#!@jssNK9#Y=>p{beDemu_C zr)2>D8p{q0zQJ8)ZDME6eL#k}g=t(7#8>!bMMXuYuvPdl0M8hBN-ZvsPJ?CBnK18k zD0Etx%n!n|XKi7T~c`4nLXeCU9-m=j;AXuP6_6nE3RDgmD zxy68T1;-GE!&N$opA62C5OR)!E=c@3b1Gex1nGH@J*qRp5Yjn>jDJYgmmeZE!SZM> z`N$WSazr)jVnnQF$_yc(2&*Cli8Aqv%3xf~2l}tS3JiEIm~+q&tNvj=h{p}VIorbb zu?+A~<=k+M=OtaFb5&!}=-_LO6TY>+G;&wGyw{>n>HIn4@`X&Zthtf2Ojy{L3&NAJ zKLY4@10RHgxAorG$pF#S@)a(hS;$cNw24HN#{YQ!?VKpT>4qSvH(mou&DQ#o_CLPE zvtr*s*PRDJGWh4cqF(^HD1a$=NA7p{pWcLsS-((fwIolmJ@BN&4LkKS0Q&T7ea;k; zR}1X=wEMKLWsH~t$d9S_KhJe5EEx3^lFIvG1d+lkIU_03P=vw2A3(!v`5Ap+kfek?+urXB=TFGk6DmZTla`&mk)GA|(FgpCH34@@M`Tl=V8^ z-x<7S9{YXlWP}L6)wBTx63?)nr#qnhcRB-^T*Bk;+Drch)6B>w0P18voe~kPdZJlH z1lS@bq6q;1+a~Tq>gJo5V%D9?IUY6Db^d(j+_>|<-$`jF*%YCo zr3!@RKx}Lai3u1vmkgSrx2_0Z>(5sZAl{u3Bo$m%&xE8L#HzVLMH{~+yn12}V)~#o zoD(*hdO`Ke4&XNuvMUM6!3YD2&~d~era^`?k%HZh*C zo8+SsmItUN;l_}y((Fie^@;P`wFoh{$YO>}4%m@m{H<*G?5QVGHc4P_k{$%NDP_Ne zNM=^mwBUF#xNzs8p=}&_euTL0%7=}NbL|2o#OBAcHHujX)YcF>wB=|4m9`hIzd=w9 z@r<3MGxzMYLm8v{(h^27!SwD__egI67)0?7ChYS`}pJy9bmzgP#w4uaU+G;Ae$wCMQ+yHIGMpM2zI`? z_(-2W8u};b>K;&|CSe9W#2LV7PZ7;``E&T`)TNj8X9yZP;$!~FtNGr8l?&X0SC$%f ztZX!f_UJ>Z5E*JF58N@CD_v8=zlQP8h8zmokofYM4gx>oYZ zR;uqV^Uy3bW3okF-ywh|>eL=cR1FbA!UC1=B74pkCh_9Kqzf2+#8C-h_xMh>J6=)e zwG^064q?;UYHpwrsXrF9H2%XdX68t-SA%g^h^x^G5{|Sh3nG@S|GWwFk7+@WWXHM= zXiHUF$LL&s-k$AD@k4s9n|mhkB9SqimVI8vaen3q-JWr9q)UwfXqm2?e|?`X3@J4o z{0hSjp!dBjb1VoNa{?YS``D25G?T0%qAZw)*%1#d03p<(91LA1tnCnWS+i<7P>_Ow zn0(YzyT@Ql0o-IA`c(oH5_81wrT7X_g0-8{r zd*IJ{OvxzgzuhZrLS6(ZLj+)*E(`*cj2JVyQ1`>tm@)M!d#>tW0bXqh6<7vXihzvM zi{C(7VF8ZJ5L3RIVs_`pFyi`Dt$<7=4_@0rRZWZ$sL%~;1B>UY-#5%^48sJ*WNHtw zfE^C#jS9F>X!=tqbV1indnswr04jI3X;-Q}*fZ`|j}f1eHf5Thx)`UU`D%7=1xkY^ zR0Zq~vVcL#*00)kyXEf5p4;x=q``sQ5Xq0Nw^SQM$3LwhMV4QQkG+1%_Py-n8^GuC z1NVPgY5q`pvrq*MY{Cy{3|Iwu0)O4X{^r3)V%D2|9&;_jkVxjk6bmG?U6*09Eb6#l z`qkv6SQvbf_LF5D7H$I;rQ62_I|Eg?1KpB9g!R;-TutU!iFse^0z?Yj0x0YgM~BU6 zq%O-y7P1WVFM`)ADk<#8GI%?UW+W$|J_l`%z}$>%$w9^N*rC27Mm;3y69Le;*Rf21 zcbXRwkHgb5MsGK<{%B%T&A(1>HdO%0TEQmYyOEfgP#<+JDf8H$*}W5hglwHmJ%x z?rbXkHPmI#2}l@{lHu>PGpA|>*Hc|pvz};Y*h5>W#rIp9xNm0jp7Y*NC5+H4Rl+(E zL^i{AeZen{Vi6HlIK_SEOPxkI6_4MK62Ov7zIz!!zZ`pr_aq>b?e@F&EwUX~(Albo z($DsR1ou13FtM$a4{18I|1n-& zk?(-Cg1yujOLS$+*2SegjF} zTsg@73w`PU1#U|ESV*<%?ZZU-+{*PPdYqGJ3QEc^U-yZryDnl}U>cC(5>@;2eOyS~ z5)6+QP{&arQoGKDjWERUYgkG9sFhZEFIFG8b(d60fOoa2SEWTYbTPzTS35Ha$oYG$ z6U+nGHSa{afPra?>8jEQdlxz2zO?nz5dvFHZ_GZC_$mml-^})x+pbZ*&AmIGdLsm31-dc?G+d2Au&}f8L9_@-=qJdcS*PXE z@gG3O!5@6lTsF3-5~AV-#3_L*ROK%Kn0_=F~7OK-C!d zv{JV@)aTKsk^UjcGb;OJ9WRTi1Z#k)d9`83hSp%55i8H*mOO~=X4h2mA)sTd;F~H! z$5aJ@Jki&x1Fc4=LROIa4^&!1hSmMCmqi<|C=^3&u_W|zmsdrsC2`kN*q=&3;CV9! zM+p7a4OTX#0%MI1SF>^p*Hd9aHvy|Hx{I~Pr8>Zp&y@W*^v=zlx+<{xiaRs@5Lr7Z z=_XoHZBg*2=!!+3W*BCB*sT0P-IieoKAo1vnys=vyswqxbG#Lu z@y;fF_OD>#D1iEOYa~T@rG;l5wlEdfQaUfcOAo$)h(`v%28Im^*87C@#z$Cy?>hSeW^1eZV2|@LYdUr+Qzf7R ztP(xoI8QnP*+VWVg&bg1e#`v@qHot}|804gkU(E;hnRRSl)h0^jnJazZlY}AhdCZbjY zUpI3Cx*#tFE3#6f7u%@22frNcfE zTto6THPEfZIp5W=8iQLz1|daNe4bO#C~KL8g(l~e;VDCu%SAH1%leS4?(Y)zn5}U| zOePJqj*0ObiOGMUsHb=JI;a)5PngdNqb-TiEE(`$)=OsLcHP%og>-V4W=1yXo={5O zJB_Xt^71{$^LqL;Mbus0x?FURmdahfOvN=UrEhTOD++duX>m`lvO!p8;w$W9@eFmU zx36KbFZ+mr@Ww#foAKC?SevSislvkE%3ea(n$VPvTzPn2Bla@z;=k0Gb6JcB-Os4$UG{n>vfOjY3PF!0PS7fBa!dxiUS4T> z;3idj{{ynm$;6QD8H-lZNLqnFE4(Ldwvg|ij2MM`9L9UpbY(#LH{W=ZR%6WM5_>_(NpxW8aAits_Z?(nyw-{?KAdco23wXOyxeci)#p|=9&yvh+vQK{XYFd zFx0Qio(#T)` zDmp_%<__D$C~wa!jQ>XY;{}Owcgqv@k|~=ygCI?viz?rhxuUP7G<*B= zuYznj&k=p>#2G7ju~Z_T`$R!_#;1^Zs&a8vb7Wif%d6`zoLuR?C|LcZPr83p+?f`W z$>(Vmi-c0{fz&9+WG<08Eqf_@uEOk?rp*^V%8k$N^oqTwRq;>wE_^`=DU6#X|wRPzD5AN*T8GCS%*WHG*xE`=6wWW6x8A?ly>Q=hZZ}jh; z3-A`|V0RPYy8MoTE&8qgC!6B5qw)Qe7d^hRZ20%w!{<12ta zvb{@Ov7e!ORqcUe-RWG>mFq;5>9Psg0_Y{alXZ{oaKi8g@MDr5*zW&$+G(>sasw#$C;g_KE^)u$AP#9xHa7ze(`3dgiXXoO+#a zqes6^$<;CCnp{(7eMrsnQc3k5JCYa8{y4hAQQYuaQbq>zC6}KcsS=?ZX=9zlaD8ul z-4k79y9>fMw3**{n2XTutlo3nh7Y`A82OiL%L+P%<9Vi%Kk|sUVwyskPv8)CL3YUr zTnv`8$K##czG!1)hZ)=(+M=J)w}CQo!L&z34YMVjI6@M<eONlsjOo^q<-YLcu!|D3aM$a>f*A2~N2qW56#$2*H(aj%xR zWT(7TB4pm1JzBQcRzoQOg5fUU12imzxO^Bj`M6i3>+kCu9G5$vRGQgg1v%Jw7r6m% zhC~QM#3l|g%EiS3hVA`IfA+}IUio;i6iW?~G~{cZ_4IMbZe#fTz}eoo!;^2If05UU zZ+W9NWY)15i{B(eUkXZ7tYhGz-R?DUJ7Jjgk}SteI7bzeiwI2?+uIG~egCW8%+{Y#eH9(DbK{HQ zBg5nKyBjw~>f~H!lzd$1+{wGURz}Wk4_$5C=VIuK;yFvRq;J5)u$>K6hF3OWy-@gq zXy7%O4FL z=Z=f+474@1*kOdU{q8@%e>B(qtG*w*ubQM8oyY;OU1l08veCR5nNQp<9l!=m4Zh!c zocD~}T;j$-kIz{gIa^7Qk9tZJx^DP&cqAfqlF=HWf7u;eff%7O{|JKoE)8>BkG}5d z3COq4>Bj(SMYZA_0&O#A#~bmn^DkfJfue>9eEW~r>@oewio)IiWc!9+@lAfhPlwLW zk6Z)C-Z>2a{VnL!(Z*k_n`MV4x5Ikhne0H}!{@ix{QBB^edpm_z|AgZSAok3=g2;e z02edV$VU6x5vQQb!oCdRRUu|%LDj#v=g-~{UsWk&rH*YY^!NMzRJwo zCHAv?WRC;35Tw^kNe)tcd$s~H9D1EojqBhuO+&uVjO_lA&rwrTjnaabcYZ1}oXAOh z+o75pFs=m~84T-~P0@*x=^YTA8sIskVMNB9LqLP)IMaf`;fh1AM zS!j?95(R8PWI)L|NR}u9O%M?D$Qtr4Q z7xho)&fQd)*v5H+esg*zxKdWfHJ}SqYhO)HECq!mux`ARU7R4+*WCvF-|=;Z=;hT- z={i=k{CnY>GonLfbuKJ7$m)&=+X=A!vKgkdup(kpQ>a%qiItSRa*!M@`~UXK@(__E zuO$pvWX`@E_=X5~psOj$sCx7``pIz@S0V~YtK!~ngUcg5noJ*2?VK4et%79_44Z{J zyX;gvg*5rNsxaoXDS?2wdcX@OQh8jV)5-!kGtPJ9um#NrM7)~eq2$(fn7w|k7AbQL zea|f4j|Cb4d1iZ~Xwhb+;6!h6jEK*D!_W{+o$Sv%s^~Q5>{zXrRN|vrqG#JVsf%gpz``G~?{;j;E5!5wg_)?x{Y(k8c=|fooJBagTMO zLqJqXt&INFZHO^>aV${PC;vXr-)3Md)=$6sX*n-&VMz?HY$B-Jx%i^#Lo8M3nn* z(1Bev5!^tUp*F!rbvANGf#wVrt;av9o|gaV5`S_!v^Urauw0%n&V34eoGz*fB5mU z=E5qCSgTumS`aRuj`sX7J`pl~el`bFUD!=Nw@})=wa`)dwvIoVT~!5H@hT2wzZWUR zcfx9ZMyx&xeMc@0DE;p;m>5yo$kdXn^0&&p%?+MfGIut*Fs$V#RB|=x&D5Isr)A__ zpTftMR)>2kr=@(mGWgczaLb~@&OP+9@Y+X+&&hC%W@l|2J%Sk>UeSL(Vj$pItrOB$ z`-?YIM`7~7Soe6cO|-I`EseSG1`ia1m*nfy9+;2ld4d1_nj^2j@8OI0;nT>L4f+O) zo}8*7$&-4T?rRHiHIc8*e7ozEEd|6Bw6Xi}l)XF_%u8iw9$$F-eE0_xMa+X?^Y}9G zv(J>0C>;C+!8uBxYjK(3zRdmjs+G*&0I9i+@U9@38nio>Ddqr3RT=gZ>Mpf@)jDcZ zFP+)4b&BTEn2w1**#viuHlaOP?3M3}#_KxT)bRjrmLVZm$1xw6c^6zw3N?du=8s0dsvM$8`Y(Af}s>2jN< zw(z^kqYU#ciS!o=OIplp`SPtO!UfLmUbBo04sTm|TU*C4EPLSXt)`S9$N}}i8yhpdmq$oep!M2xy;Ctwro|Bm&bl)G1cQ&o^@f^wig_H@|mt5>I5pI z7XlGe5n9#q$aw5ulJrXGYqT~{xm@WpOrD86xPO)YDuLZ^vPe!pVeT8JLLL0Ow5SG{ zlIvWlczf=_%GxBFaZ_h$dqUzDs15b$IW0SJ@h7aH+^>b z4P8HK7KXhBMwz-OWa5Ev-H9PWu2%~~c4A`&@8Iei=A9!K*hW^9j_CIXqVHP#jpjII zD6C-10AE4q+574`=wv$c{R`?N;>5(npj`iC$HwzQ;XmN@%qoKAUo*^nsYO^XV3NALtuSW{gZ{bSmCbyfF)qgbmikeJey@xzg`#vCiRBr{LAxBb03ifi-SRX@T_Q$ZKbFeB*^+O2>2Id{vR8hHct}D&7N>i@`{bdW) zRm8H*-$3Tqrv<8!;H8Z9S`ELOeHV)^PtK$ZlJ;`Y94(3nQO>QY<#TYEh>d0_Jnqtf zm%Lm5D2SY2K6(-gp^jq+W~@t+z1Ph-wM;R!gZ6#%0*rd>MgYa?CDz6C#nvs?@Yl@? z?AoMxMlH{-9lcX$oYgeSuU6k#j~#lihGR?1KAs@$MO3)E9QJEd^!>hYyqP&~rhR7k7hH1-RnwgiIdi4!U4; zSkpy#K~5n4g2bKW>&H>Ul*~Rt&!hxGD#4yD#arHg2S@G)+X;tD=aBa(jjp+!&yv;e0?rOr6nARa$7XkkW$%Mw(HFATwM(^B#kii% zTVE*}qhB`DgVo9LhDA~Q_a@2_-+r1qEX(V^Xsv0W%|hmiGtvmHrMXu>!agg>$N`wg%Yu49bFG>16kwb5d-ewCJ4dRY(ILM!9W1N z9IRYQ*%{RWQy{G^Z1<`maL0x(FNElSf7>G&CQ6%jj@ai^tkdEoshehc%($seYOJ; zFd~>eM&xNj<@Xo-uRlBC@Mjj^_GnjbgLPZU2T>#)c%fJn7;#Fqm zo_3wTR4^k*jdKK5do~nSiNss3sdVdpj9cmb@wD5|@HeS!JJ-@AZ=pJN*;?L6esloj z#f#GRKFVQ%zayqk=EG}v%cY8^Jtt63;Jy3d^bgU->w7Axy>Rqadmj242HYZy1%MM=uqTzFm+|o&jiCl?TIN*J=<<8}u zeFG>X5xO+V2J$L|vsnS3gZ5R*wGv>cwAK+gPrUn+&aR`9xt3otFqECt3Kq>Dnt39% z^*l#tQij?v2ELBMxCCY4;Vd0}y^|dzMP#t>9tgAqWH?S)fq9R|Kpa@sdaDM_?Kh_C zI&cGxJp{BV&&xs@hxALH5M<9a@8|?-JeD1A>$fzLjhk1(1*w$S9ipUKGB=n;!)QgY za7auiJttQ=vZISy7Mm@DJy&ETJU_?mMve?=i$}df{WA26q0bu?Z%~NWphKMo0N!{E zz8e9Ru*>@bbxUTV8kN}?b(Oq_WuP14^ZIte_ysKHqik#Id6 zy)iJ0fwG}B*Wv<-5YT5ik#WIqiZ&tte&;nL16X(^hB4(wD|e9+($)X^SmYghuPc?; z*%M5p6KDxN&ngw5}@yI<`f(}~7=&zvbi-SPEw`;ws z-h}9~cSmR`)>xWIxC>=E&LV)3&Fui_M<6!D9XFX&?kBq(9b?F{lK^m$@Yp;HX= z1S>vHMrXUBEN&HNdUa=99KG@2MMl+CB$k+qCaiK4uwpituO%0ta4Nm&hn_)p?BicF zioE3-`A7ISA_RSU5+dt_$z&z1tZTRJLBYZrrB z%~Q>W_{^+hc*ERKs9NEoTPKF zm^|eK;L<%Yzdq^)nMF2-Noog+CtGgX6qai(iAlk57dI+8x+&^@`4gD_GV-q1&A!a< z1+mHJ+2wD`<3nld4eVqcrh=@Ei+QJI_Yz?_dNvI_qwJq*k%O zgT}yN=a<1oM%Ge5-4#+JTqQ^`tn`}0){|YYfA<|EBhaU&UCZnR#;^}T|8ZX|`^Oz# z*_N$Y7`b(J+M^3cV3w*sd8RhEz{IAYM7BpBC+RR0McVR!^8D&${S~};Q@HQ~V;8OK zPF$c#bXZKM#SKZ?Ll65)toVFlrjctqFK@#k_v7x_O{pV5qwLG8(shG+M#7$ zVgBY^^xxy_;zcy~pMH>gmnfTtgy_1Dgmfx=I8^jzOzK>78edkz_ls6zrgjrE#vs;GAT%wn1{b~C7>?rk)_cw8bb-t2u zq$(-5wB#d=zFoN{1SP++_NQpdQFuCqgKGJPHLhzB^2<0XsL*Pa75rW^in!>O$5m~4 z(1V_!@$hG#T>wjL;BLem3(s}dWh&mnqs(qtT(USr zZjPl^L8vaZ==vu<%0f5h1^2zpFZoum7Xv=Yg(T0+?}*iUvSIF}q*6NfSq^TOILd38 zyx*B6$RrMHE7)=knFh-kU=o=%n`6WJ^D{*Q=BGFEvnI4_ST?7(n%z4Qbm&fCynKq} z3j}A~9m~_SW((f=o+TnAa{mj6@Q>@-bobwMrYa)Oyb$6DYjXL!$p_tU^#RCIt6{?q zh-rf#A|o<0)9AI%oL)xw;yGnULg z%I;DMXn&BAIH`ahbo6`E7eQ8Gg5EoXb;Kk4H)+ICp>FVhaQ*fDL7jeqGU-Bppr81d zbC|m&31X`buA@vf06kjQG#`PKbW<>kK%5UG$9Q4l*0O8u*ntjmpDD4(0cXMmkI1bA zk-u=5mj?99g|<~8RT5pF1S;BdKVwDdgO^*MV5?Z_WV+i}gze5S@iDG1-@ey|mJ~Ti zZfTD-h&hw^=FRr6W|@tH>!1I_N$L&*x*%A`+sjOX=;w1}kdhvJ=5J0W$#0Jyo4$S5 z=j@&x3Dhqo5oT8?1DosD(r6%lM_GMnGP)u6oNc>#W_k$Uo2j5{tpOpP-}@vRXGCl4 zmBqa~+4G#2DR{iO3Ab7>Kl+Q)w&yMK97b!a@;`O#{&*sl1=j1=?sg1CF$O?`1r3T5 z5-VDw+2e($>vvUseyLYOsVDg^`8olkAFKLLEV6Xc8A~U1ouvCK*AS{AUE+*8z>+>#8bDqomM_GC z+JR(G)PViSI)oW;&;&It9lbiZk z>LEmn&;Ll#=v{qpr4BrffsMYHZu$Cr9H>vrKTrPtN$O4IAF&7ZG`w5_k29N*!<@h_ zv1RQ9Ws>A`en!|br10U%X?~hQ%Y+Qw{KTwpFAKiqw_|hoTS^m3m(S#e-s5!{i%4WH zQOLML;m0Q>?syVM89n7=79aBk86Pnr!h)Wcob#C#x77E?h?jh2q#xx5Cxg<$wQCC+ zlN=CrzP3+3q?CT;teS~>l#Se=!DTAh9-(*@I`OE-e3z;2W#V<*#Cnu?2^BjMvuj~NJcQG0W4x}xXAWMJ#0D`c1lV~Do#aLCH z$ID;S)QlAO5cc3hEev0Vu7L4jEBy<4wK+(e4Kn%bm7pxP=P_s$Kj#<>t6RYVia^}xv+t;|LWdA z3N%o9BAo}>x}P13p%gbCM`fu?e|+k%In(f*S<_a=G?>iLIq2PV2?vj%40@|~GCJlh zk8IQAR)bP5CNzrPIrd}LjKHwLe+qTl=$m4#2A>R9T5FEjM(kDrT?d`9y*l0HMoT{0 z%c%S@DA@kRU$OJ;$d z<4B$wtWDE+dudZSU7hTyj2g)cn$o80);z_xv>hoGc-#~y?KLNGojGD9(;HO5t?R8* zLoPhH2GI?dtL?6+iCf%-8iE0Y#34~2px%~&lralJNyHKhe~Vbk1bjjLqd~U>tGzgk zjvAQoJVVwPcp-Gik9nxAl+LQNkLhKd9F)A}veyqC$E?(`(Tp}l{)c<| z|HnYxQ^f8aXF^R@8gbLK`6#i^x|4j2sdyxibkw_4IG z1j%1jY}b*!S*fo-b1|ZgB8835TLZru*ipA73zv|*5rifnFCrkZc*)43AB5=3f)6Rv zJf1a9=i*tpQ$Jp)KEgE4U2JjKU^)%9Ltzl==VyNl+R95dh|_Pg6~J?e;7h-HxAxE} zmKYqRb>5zeXkhRO=b)m!;q5XU(d#VXjJzI)nSXpU{_=R?P4`1s&9Rm<td>v43vXnE2qYg$%NnZ`8SZ%kb7@e-ewhutLeVW3M)wR`HI=CHGw+uZ za;M&1Vylm?_1^q6ngdINi`}nlW@@*2LeYBg=0d@>yA%8bov&wPu`G*AjB*XhFEE@* zEMixtv?u#MH%gAUNaFB!n&imxm7Nu~Q=isd`B7pLEN*Eg*VI){^<+M3PnL9d=eWj> zf5-05*AM@Lj2}rpaJYmY^X-IdINX72IS!a{TGw&9yF@9Gk4Q42s*h5tnaj!2R!{W? zK7SFMwVp5LJs(x_Ly_)hjSd~Y!6ubDrKIU%*;q#Z6057XX)!3Utl>scumbL@e}S3+ z1UXk~F$5d-le}U7{T-Z;O9w1CgSd@A)NZgevX@s@SlY@ZgYAyoT$xd?5hq04IHlkN z!p>g!ShQ>I-SKXlC2rQ2ybvNub<`saBllI^p7k^re`_3mK(edRqrGioM?eLY67D>K z*G$z4$@2D-H??5OzJhmeuv9-8b#`H|v$VT$H*!ZvND4bt6mFZ;)g$*G#>9K4C)${? zYRHSDmI*mu(`LkQ)1&}ZOq&hdeCbrIdSx|;k&%g`(UndW^63I%_w7vCeh*wmzai#vw@7i-x_#eXK=1dDWvNb7FwFmU<<9J2k#WB47vZb7sjr^fmNzL797FT6pNT%HtQ9Ve(Anf09e1NPJf1mACYFu4KF<$S6fd!!iVCI01wg8x zsSrO=;%=bZFfuZyxd_6 zfyj;`y{8Ls@g8p=vg$`4)cUFO6xWq}!7$2wra@lrWqOFA_+|U`iTJB1S7LosJnyLL zW*gR~Tj*P^8VWkyGT5_L@r#GEI2^G3M|Ewz!y~^7UU5CKPVmuFbkhOFhnbqy-!-d) zesV&HK&xuWe46Vhmq?t#q#|a?>TVD&C*g7(ra>`Wj9TB`0(;K;28V1NdqgSo`G!{l zX6gneCx4z}M#fb2?}3*edVgi*?Ea&@k-&OjsGfzPeoa@)`M@5XUhP^!Y_;R5OTL}A zq;VQpsX?Lm_TXX)`=yd^HyTatc~-2ADT9_2nsOh%%Gye7lD&j+R8cZY4%@_+h_m5Y zvEXpE0&l7nP;d6D0+2peZWYX1A&;ckbEo|?WG{YkEF!*Hbs`TF(S^NR95E#7kCn8YE%; z9@giKp1a-D*vMp5%~Bz179WB_kcpjKI)T4vA#9F$|Hn&!1_`Nei7;-w{r5}PdWb*I zLa5al$PvQs^+cXTTScxvHL)@tAK9d_GSy_fV>0uUeu{pS7iH$?$=hQv%xEgAa#6rh z9qia`=Hq;WOjkc44o&#XN%T^4gY(iDq5mnCdEAs6np2Y-LE!|VFfV*bj1 zPN)!aopgoHqpc^E7Sfs;FnI|as}Bz(xlFoE zJ{aC0^~H`-t*^ehj{08JPPI_g`5DS^`ZhB0*dF@TygwANlYjIWB!}(B)Y@)AaCZ3L zLN13n-zTMX#j|Qlu}MMIB(HnILY0LnT{PQerey9;jSR)t-M}@xcfxX0Jv7SdL{pM4 zBr|umxpZDLfZU=!L>vR+3ggfETX^cabs1}G>sv@!5!C;4+4~B!N~a>nk=%owaRTuE z2qywlGfH%;N_p@m%syPZGKRut_WTlBA#&OwEQ8OJUyc$*4UI1n<4n<(VSKcAJb5Md z#yUS)k?(PGF7tmF0WSC=`c*H$K-h;35K3`@-l_S*9`G>qm4+}w8J&*ItVeD2Ii^?_ z1rpr!ZLW%f^knK}bflh)1@2~=ZL_6Z*BY~|Fji(WgB%I>&4q*&EsBh)E@+FcAkm~( zVHT!z_0LHGrACBt^A(@%Ib-fHMFv*>$h4P}#g^J(AE=x&2!?!tE#m|aNz}$2d_<># zFgAWYVVCj=DSb<0H{DzK3JK_C1PF){*^|tP4xpm{6BqNZ##Ng3j3}h!2D1zFOZ3Cs zInEo}guxT9Mv1FW9;7s2trBnvs_13SR2GmY`M^cUK&$)e_?uHk1V;1D4voc8zo6wc zZQ9l-j_Y4?HJX}+Z3ld*G>x^6k`MuA1!@~5ebS%CuzJ4H-za`QInRF3iCZr3?=tUoZ$EegeHKeGsIzhrN67cD&;{s?0F^w~ zC{|BgO?Hs-F8X%drusE)Hx_@xP@R=nm6O$`J(?%Au8C14XUj2eUb5f@@m~d|bE6oC zmX{loo0V+eTw6>-^dVY0CWpTmT|gp^kxkMr$dC^zllHpg9}wy*dn`h#nR$YoaEoq& zp3nuJZ0!j)r#rf-K^{utjvl8PsGZYI%TC{EijPrs&T^S_RG6RkNNsA2U^EoyWu?p) zi@H_=Q?&XF@T1J{neMZMUY)02-e0ugoC}wL}i+Zeb2wfC2`nz zW?d+rA=`yAkX19LvB=aVrh!xTr?tNWjx0Cfa}HX5wx)rz0`gC+z$b52SUzCA+Jm@R zt>%YHW?*<}JNfF}pK|!}ERzHBh%hydc+f00k&%!TQxx+_P`fiKr6&Fp!Q(4S4q9Qh zrhQm@6K#R!Q`pfyDejgvFCXwzCSKWb=v*n@^V^CP+@HaJfxMjRxLaEPzWq%)@3HRr za^PwPuJ*^*u4J#wzv>#;s}`(8AA??%Jk3w28KMn--y2C0Hq1^HQ|`cnLiZWSSS$RD z<)^Bc3>P+iCYKaexX$5fYiI)k_}&+{Gkc-J_ReN*k2CHjz>dq{6)@jc5QhKZXv7W@ z4tw}*MV=;{+z6=2G@w{k??*GVIVTg0LimFtrKXzPjb>V(w3kOV4I6LJwa6A^xqQDe zyY5WuJRI2@ERD=liseDMU>iBM*0O)OrwTw^C5Y~Bj$sU1ty_}1w%>|8;U0391S-PgCIXxhB^ZZMNa~1aK?l z04}Pn%vs;qfya|)mJN|dy0HJNh8ky>R8PY8+(?lzrY_`0ZB-E1ZD9-KpAvAfZ8ae% zm=;lGdPRuKN`_+(1wsdK#CdY(1$l7F*;PyK(5e* z2#CNdlKK6%J#5o(0kz1-y{}M)h^znBECc7y%VtQ2O7fnIjohy@y*R`eW%hX@{IHFS zaM0(H=?-s4KEpdrPnTaf(>KV^iks;J^bQ_`h`^8em2TV1kQ$kTWUV5(d~Aw;ej3XQ z(%wv}H9+?B3R4hT{yI)hwjom`Cl*P^LhB)~->yFtv+49^j5UA5HOw7l=!Z$<_K^z= z4?XMJ5oj*YRdMOao2@+#pN9e1tO|F`salf%@t{mUfU1`&1g(r~_zzGS2*ER>e^*3k z#Vew!#=@c_F&5znSIUdLI#en8sXqX_4wsqO!PHBNModx>>|=kgPQslNM2H}S5>n=y ztvB*{UdQ5OlRBdnJDHQ5N(h2(wi|R3htgbdOyy^pr9A)KsHuBT=FL~jwf~cCFm>1Y z?CxDI4-o=&0UQ)Fkbd-nb`EqLLBtxBp*Vx@>i$NNtK+21OS zg&$sgL0(kFQi0)Kp2VA{AyfQ7a`qgsre#;At#={e<8ENPXwduiFMccHX!Fqte@uiF zn{r}I987BB?!A;`pLCvN9&U4r!^m$51k})MS7DQ(GsXAk)U+qlbs2~m3x8L4oL*-w zv1#T@n@4D?U`F5Y9VhBKn`KB}*}vw0AZ`q2O#2DpJJm~&jA$VaMxozzgUi<%XF&P1 z$^kclGocJy;%3nAe`fOm``)$RJUGg0Op@xu5>Cv~||034eZ8yd zLeHq*a|S?396d*l&UU6Bk^6=8)k7B#eP0HdwaSM8Qbj~6<2bt0w0D)KKRk2yi^Vqk z>4s~mYMp9E7jik$IO>|&1K$=r=YB1~|7xZ(N*vqSMn}(?W(#SESG4)U#f62BG)3^8 zw`*wT3+w=_4GbHUK-}i?(#QS3xAvpHkS&-4aOOp}rKa5=2nPXs-}Fq7e!!Og9?Qbh z%}J~nA0mun(!|8^DM+G%dgXB~0mdlGH>_xr=-w&T z3Ve_fSO#k8>{0OAU)F_j9-t5x6QY8(g3W?m#|TCcG3rm8m^_n3P%PsdWJ2?`;akxH zvQ2#gPK@3a?kKQv%#6f@N0vGp_m=jdenAv+s4RIx5lfi@fNf{-@sKP3R0wHm=6dli&#r35 zqaMCn#jr!_^#uLo=}D?d8Yk8MOsOu##KE8*4;Hj-nTbUwmFtuMzq4^r-&HbI_>h|! zf75g+!SGg!58@~Dh4!fpFyel6py&ymprzUuc_R@Ikf`~u zOU%){inH;IK9!##zGsQ0MW3Kx!AF1Ibt9&3NkA~3kF#z{{>T!dbV)&upZKW76u0oc z5BlOpI;ah-K!YUHQ=l~s5`>7oOC3(oz@C-yu&>UKQ1Qd29ju&}6}6Y1iB(T=-LwJj zAn5Cm<~(0?Lt83!R|%RsxW!I9Agfa`*%Wxz=*CdmcqpeST4@`g8|p>+L=Zdov|9Xj zEJ@>;>peT+NmEY~>X8!Y;Y)YcIe;L~N9kv{ace`S0+W{T!L(q^Y<#FUGLgB>Wzx*7 zze;t%FH99o1W`Rk#G42erE&v?nkiG61pnWs;9uSRzx_k|X`<)NjnJYf~ zB6D^RdmlPTQpdG(%W2g7XU&WDWKjhdN^D8&jE8U1#Y$VQr%-x{JjqIk7oUlrW4WE}o8Hk716v;-ugm z9a>Xc17tA-m;7%)*0{%O)b-1;q)bS6`#-~fXvG;6>Ucu{s z+Zb=^jernvE@0>Hqf+uBpYPw;yFedYNWWgpvKFc$pj&NL_S}ZqXtP2uvz$Km*MiSJ?brfHz+*tfjnF<;UYB>Nb&iLCz&E?vloV9erN z680*!>D{lc>N*g>QF%Q2?5iv$vvK2&n4DNZa@NpvaEFn(Ku?kLMOOyH8!_vGUCz9< zmESDxM)L*oo*HJ&>;ldXUIDcY>aQEvQEl6O3&dR_&Esljh@CiyeOH6j+O0iBLSzAC zW-~})OyQ+XrF8wXYS(n`h!hc(&No~3(diG%p4E4wEMqOf``@1$Sx@Q=#uF}pvZS$O zTyoYN&z!pb1G))4+}sCuRy#UK>GB)_rFo+6Y?{iMsNfUmj8zK89g90vlSNB( z*3kCN%j)f70*lQmVSyfOvmZ@Ozh02V-yAG&4rtJ_V?Np>S@4jBLE;9PK3%DzY?>>) zp`8lpgrXYfuYN@%`}PxHFe5uB>3&}vas^-hnsi5mC(oZSyv#!=x+@1M16U8s_?rz! z_T-4&sV3=duEbq`pnFjAwSa|9R(C2jK7S$Cd0MX$H4M$5Kf!j)C>J}}(tL`L!4`JbhQPE{T<<2kr6NtU%d)W2My-J$4(a9?bKHY)gw8E1H zGq*FYMDzw)aIjNHdn{iz6b9_>+o_Bk$Ia#CkN@L1Nr$R9Nj*MlNX+~D1vSfwMv}`;te==J8odL`>JWLpjb)Ta~2-~g& z9IjVu^g^`5mR8n(?{)|&}{vy_i*M$dMe&>k-W9@IWCTCMeP;Nil z+vap)bFwO%hka)KV^*hcnvL2{UQV=JtYTnfrl&+lniUQ*o4} zYNh4O$v?-q7JT?2{h=gNmdP7VUWtnMJU>K*cp`YLF=@97Mm~KIMn=M!^jjEHpTVqV zXUKMR@5(7Ro~s$~+F&W+uH%rcC{6fGwRSDu7;hdH7Q;Uh;}F;)!hsGZyE9xbkB{~#?1%; zX$Pw*W?&RoQ2fyJ_nf?hSm%juxNiLT-7gG?NiEE#P%esj%(FN?*Uh&w@qjS6DZ1&wozeO&}xG4{VE*rlG;E~hMN3|;-r zJWZb?DyS>?P|)O9Z1l?hG@WQMtDL3bU}6znMBB7>Z3J&x{3Jz++?`D_TDzfVuVk)H zwI|$wiPLdAxEdPm$ATYo2Mn z0rPAr0_9zl5h6G-Eq}3f-+GaL#1~Q7bDSJF#%TaXM!Q5<<+7(&`b75BfAWQT!2sPe z2d;aHW7@t(!j$!yhW_rR-T8L&%*IApO<{#RY_Dg|MTr+-k3U3+{Pm^rKG5=intk{K z*qKUq^96`e`}!}q_UY{16nb#onttgxI=2jfEofC7JL=dmD9(T0tChJ*xg^TNJ`zL} z(TZ8jLUM64t+brtxC!Bf z=r(uKk=Kyvf=qQPU$1vT>{nF4X~t9r$YQjtu>XA+Wr=l+buDxqpg^?$Dkw*_V(i!# zZ|bL#k0pyv_2hg$6Yh&0mzAm}&5xLu7u~!uDg(Kz-EdmK^tv z$P%?w>P}5}c0Q`F=J6r^?zSaQi#$SFPHcd zUbxs0NFKbZV=0#r0Z`?|9^k&R{9&Xib{xW(2$Bf`Tli?5`6Nzm5}h&$qM7) z@Vt^C^;#g_SjK6pS5rFt@M`JxhxX`BEv@b@yOK)AHSWGDKEo5@0`jRhMSlae-KR{j z$ykE^e*M9j7nxy%zN6gD?t7&ol>G0RLgO7meDG?FtI(+d!vW&~lfqAWX}U$`(IGb8 z-{V!Iyq*R+yDa1`PY)%IhYJjqw@~AI(L2Fax7}F$)`KSgz7thfBMbA_J2 zThInqbABgN>DvTY~^C@SuVL+FC=RTqvchpIrq068t6o0LWkMT~0WUk3z zj%e=hPt$Mj!L<2I(}z5jO&JpYoqNigxI3PEmFwiFI&NT#UOnSkRH&{CG z>g&{8=~O|}#{rMR1-&&P3&vsSDAGFRlni#CHIb&7W-D?Xy(}kpnFTER7w>+R>S6q& zc~&;rIrVRF`rm(BFG+;h0g+_4If6T)4+8J4J_4`r5;2~Ap;d;}TnRhuv=Cl6l0#Gz zv<^D#$!OAtJo5n3f_JLwj6!}6iX|w@ouU)Hgm|T);aOz9)G-or{z`8yxXWC?9Io{n zp!q_AhHK<%r0eBV1GfkIz+IhZzA)gKU#>If!Izl^xMg8OvWv3am7&GG#!~%MJ(Vlr z*_6O*1-Vkyn9mXwqNbR#-;@5cFARjt%Kw)~$Nm0ON++F3W_xmpBphwq(Mt?hU!Q$qNZWCsH`1}Q)|yH!BrMk>q=~Jr z^8*I5>{a%hQs+?@qkBO+(g%&awq)Rakka>39pfMWAF z-5i})y86qjT632#V>=pR3nv9+H*Y3|F^1EwN-j<(n#tX2qF#>23=u*%wQS8EDc4%Q z-m43daKl_AMJ}6tetk(jP;_xm7<8%NFuF5YZ01$kwyh^jpl$qzEr{46;A?Eo;b8EZ z9ufU3Xew&mw1@u9RMZg1$d!18;Pu<=vdcrq&e(Y<=_Ze{j-z@XLMvHw%Lx)s&!@!j zRZT<*!k&;77%%-Z9Q@*YV2*K)Y0d^Bdt?Q zlHyofaeildA27!#16QB_SDz%XYM*+4eEUFN^l}yX0ervTeB>Iw8t!_DaY$E0*SNgm zmUTyLe_~s5xddD_ew6tMqD2oryJJkB*`$d!F^EhG+J+c#t+g~shE0d>l>|05S$HCI z4cq+#s-}MuBe))R7<5POTGidFDa{R zC|j2D(o^T!hfS}csOHV_4hD`x{m0Z)nxAy{%#BfjPP&f3q*ae!p)PY_^`9dE4NZ$|K|4%XoqIOy#O;_-?Us zH)iu2WbA>dc+L*=SLU$W_k!vE)Pn?RUML9pGEJy`-$Gw|Wn|~0;^?n|*Rz))qJ_E_ zwB!cAFUm<`jd|I|v%!-k^(rAhBU6C2?$t~W_unji?2TZt0hWkQ6uDlY3ouK!`9>3H zUJC&jx!@Gb1!+6qMR};ud;`=*nw#*S)cCEV@a=@lGITX`^mf4mM@z%4^(HB!g4lw1 z$1m-JdQ&4h+SyH&n5$vVV`XWbnP^MwDy>9C<+ps{F6S7?lUtl;JnC)NW50JL(Ogig z$`CAlf<|i0KEKjw&#sSA*CkYdzr6YZ;y05t1YPc4AH=2x=|>_r?%bwmHdi+>0GE2b z+*>^p)QIL*6PqD!S2W%jMRP2J*MWnHFTAG~@@EX{R*;DlUSvu2$9vN!ZM4?&IRHr47 z!F@y|O-kt`zSf8D&-cK5r8vKtA)91vD647gs<^+;aCcy=vhu+ow9&v#wE_1tc8)&u zSK_N>jdUg8W<=!F z?LBLT!NJP!t&DaJm%HrDOG+=eo?@{nADFvLuit(yF`1NC^HyTk~6XTf&nL2w)WYQ9eTUnL_&o$)mkBu1!IPPvqn&UqRTXv_Le)(o4 z=J@00dl)J<*x2le>%e4p_lxOvYg$38xCmr7nttg^eA+&!*ik+ZSNIy?qc#%hyu=v= z%m*JCqPEPFoXAm-PA=RFu=dZ-IKWeD|QrV{Ch>?pw&d_bRdd(Yf z*RNH3S5A;;&62;+qASug2={m216>!TNRM#+%p~tJ5Rc*&K6CTxnw3gO7&$0>2{V`t zp@OpBTUIc+vjS{_J%9|;5RD0Q3iKG1ZmN5z(vh{^6IYG9Ax;2-HOw@SIElG-ELB?gIR?%(OJp2A)H{Q(so)4&Sa zxoR-}o^b#7tE8IgU{I`ju1euU3uN2L2!JmHEzLDT_<>Tou&=eh6JG#>cM&g3!{ojz$UhD%f+xC%$qd4>)BJh%1nZP zCOA*{d9@o)m!2h;TakIQ2S0Rlh+^|Q-ZOM;?oYTUNK>=#DS04c>FswzgddmzF&6fB zdHV%ttevw!jr8+2eQQPiqY>InfT{GrG5r#R<>Ev3VvNy|(WoTF#hbhRt_9jhtO%Oen$#GAg zeGiX zxYKcPJxe=UAT?nq;>=p$PwP+;@i>-EXVM0E2?neho}R_Mr4kWcOao&XGbw1Vu7bGq z4@jXpe{g_#fOQ~ORL4)ZNvCVu)hz@iG;Qs*+W00RfSt>zNHs%UMsoXxGl<9YcN~0-u=fT zWhf|n)4EG?S&2r>$*dZjAb*quE}{nqF2J*8i|Q=v)af*pRa_|lE|WCSTB)M-YSIQ9 zmb-2+W)X~!RwhfsDpzL_z*G2{-C0(bkBjdAyDIGvO4?4LuW5e|@wD*&$#>Qs!elB3 zv4sD=D7!^Lz_X%h6cNc*RESWr zm910Kh9ntTBTLz0nk-pTr;_!^&P0b3W#2W7rLyl5V^_w^U@S3qhTrv8Ij3{y`?>%9 zJs$V@YntORGw;{yTA$bRx~|FVjnUis6&7d~jQx`bpSY#b<@qP-;)?-Sc!}s9GE$zQ z8~Q0iVLk01FnoD+#EBRaLyB_BsT4Ip+cWJ_A%ZJM5iU^n$51%=+<-QE7*5-EP+6U>*;JZABc zTj=?n%gCTh>Z1<(Z+@*!q(bUTvLwH4v$$f#pUJEnUi%;X#jWa=j9Y6ItCfcLuS`BI zN<31twNJ_x^88(d-P~V7-I7ovOJUa;5Dx z@I!E@bkzHtmH4{^EHvzL~9uPF+D&nv1ty7p=_@Yvf0)lF#Zi5I@n}{ zJetuBcZ2`(Xqu~iWO2UYw?sBvE&Pm7G@ShhQuMNu9<_t#&VV)4yV`YfD1Vf_lHJy$>`e>W&8u12j2WsvVV#Dv5Pg93SM|Ss zJm2E_y&DO^Xdh2M#t8AJXe#VW0mADp>p$CakG__cO$$1bW@G4Yo!oYQCMeD97Cl7M zTIudk)vHPc0sh&iY26QQSQ-5@=ITTsu+HGL!2ix2zU=Er5Ecb*lJkrAzuc%2|oo?+aJzr+zgcl0%y zXx4|Y9Bm7R5>h`QYr$_0R0Rzo+kU?VU7Zg$P?@RQsOn0naHPV9%c(W@!ph3-c>(0Y`F8ekq?Sjb#i9bg{Aq2L`kNY=+d95Y?S@~l;i9liMHT1ErE8**@q+Q1G==}LB>OL(3cNfo z1cf}8mD8SIAr!BGy96ZGYwsT_`nk!nHbsaKV-FG++`TjY7>HK(;H-r+O5tZ5){#5fXNY~;mKbN(tCar5?vmH?T;VRjY~}H zO?!O&QLTIOKYrTva;kmmrP=3}3i&4M>cLZliiw=DngnV2&UwE$Uc-m<{y#LowjW2R zsO@}Z@cj5>-G5O609KDMAbt0%%%I-Z9UfmEA`6OEnQRfI4_Lh)Ejn-7HMXLB&xyfO zPlw-o<&N%j#ZHxD0w)iMowL}_;8S~_^^ep0%e?z#q&A!L9_SC)EoJo}XalPj(S-d5 z>hyt~)vvZ}(+a_CIAHVJv7>1Z@4xua`Jtz^w!1HNK{}CNXMFmq&bW^IcqM^??VImG zH`0|B>-(n0J?-n%O6;(BaIV1E!3Zx z?rmOJFVmIt=sGgr%$mWSVbhk2Q7TKlJkZu-4r5G>sIrGV!YA`ZJS!csC76!35*IFC z8Ra9!lmS=yKKN%~MJf{h3x-yq9cEKBqO(rgE+QJgCeWNB*^mYtk zzsmg$8{y+w_WtvQ7ncaj%2}7UjGQ5WB2tf}Urw@@i#dJ=M(uC%2k32h#cnZKy)t zqdVo(4Y`1JE3Y}jr+wjb&xdC8udHmhC|ORe>C48} z-o^J-OgN%b=XwIrW;}E&bXovue9_tV#c8}9ZH2cAzYWShdNNvW|mSBTvfrpa1MCA(Fiu@tpvO-5gj5y8smlsiU( zGtXnYTUuh5r*^6)vo_wV#`0A132;<8XWlg(3CyX=i|M*T4+;u$1lmlvF@0E9F!nDo)9cwJoCH!y{@v+RNkuCQL`m+WDv5cnLx(_e<|E3o}KJ*_TfL z{GLrJww5Ui!~nD09O^_8$W$IU9AwSR3;-vS0CT}o!gCCpWHk0JH!B4+2qerc?s;@+ z+N~nae~G7ZzPVA5Q1e@oH|2Q88HZCGXp)OOr?t6qXFR%!nur4^@-RMH9P=X~-3OLAHDZxFes3%n3cF)rS^_=A@JLsAZ80COW`huf!LNHC;t z)YTX^v8%X1d!Mm5Y=}*BIk=Uj-Pvn_e~b!8QMn@QQS;z_M6#I!iN{j8Q!K*Aqv&pc zV3_7a&2P!a!_Yyoj9Xmn49{|)<E) zNDpjqP|Po;kGoM$kYI?PM`H_zxB&`*5oT_lQVc%867iB@LjMmnM9U_)S=H(+H7bT> z79!c`3v7>cr{#R#Av({HZZ{z|6(uaxR*#)nVD&8`7sv5~3FKC*h>M*Kv*q>m;5)*v zmd8cdxmV>y>?Za{(=GYeCH`&uzMhI?{HC~e>az>tBFIdB!s0@r=R)G-YfbkgJXtz@ zD9ZBL1}}e3Z_m=e{+BlBa$zQK=LS^;v*t$6xxfdnM+nv*8MRm&vBDNrzoiXYzSXfj zVdRBM3#L$F1o-aN{+8*Q>Zc~QfH{fk37lWR<7cgic&x9rh1gLL^v zM46+JI1cc&IkNgF(cs)Bi$axU@t3C*14?FHZYX;`bmXzMR5t6d*m#x0QB`3P6HONz z_Hl38(7a7Yp*{`Owe4zfX6 zf7QDOgA{`qsz7=~t-};m==WA@(jG3~+$?^A4{bQtQM@xE(E7#^)PO2}xlFP0jUAkZ zkB3{oH-6z2MIgon)9`o(u~*@9iX#{s2+>I$(1Cw#tf=9Lril#mfc^PBWpAXyO3bDW z${cyK< zzGYB%qw00~LVY{unw9wBMcr;M=fgMf0+X>T^Rb1!$dq|4rJ2mYP+9!vU%xt*p-uh# z^Ta_h8y^8L;m1i7DGu8K%Y7$7DzKd8TOI5SFX?cypH^mmmvvSQo$ZeW`Nt?75F^y$ zY=}!(UyrhQ|6J4b=0?o`8lM24S{`d4jppsZ(_!Hjhf?fI_Jp+vq4u7OT}2;i;#7TW ze2u2!j(RRH#o%^sVL=sMl2+)S-4{4Qu%$aGElgDRg}7qrHrc|WUETy$qvu4|v@s`g zD-m^qkiHnyGXGT3GNspZ=KWqWakoU9h96z4k>G&DT~pcj<1##!?~eHYBu;`OvG6Oc zg#9;;kTQgV3rsW|AA+S5637t64&eS2kR$i2n6!YqnW=2n8)PqM(Bjc)bgFRVp;$V+ zb+%R&^JR(~72A?*CLc~Y9j$uJ!9OB!X;3X1-As1N(UN4vK~!Z$R64<2Hf()E!?o;< zl0XcaHGL7&yD-HMJe)~rMYDabArBt4rVY>$4cxOWEY4Tx%;JO zwtigsWXvgF-uGVEr>5U4!WTszaEWA#_C|4BCb>M1_I>c!jR`eyL%EUK+D1KNHzLAZ z>R1HEo2nKai+>`v-FLBCbD%5;Y~8qGKSsI2!H<*sIoC=f5?BE0oVUmi)?*MIyVwn* zqzV=GGzqGh7ug7tp~ty=9j1s?GH9?EW;|+T!+E@O58?8E+5bY==6j>hb|aj zL)wuYfy(Dp6aeQNb8Y<x}pBDA}T1B;QJtB(2`q~Rd0XT;!_#l(m4J_fBZ1 zncQC`vpD@mz5Tv&e=81I<=80Y1anTZ0GCRi7;$;9iD46;pk%N8rTwZ30ZT$I$OS}0MqGxDtwr?+7*IVXXCf* zV|txcj}uGtdG~09VvuH>e}vOTt7?}jo1SnO<*qdqhZ1V=M~#X2zBe6b^_3yh*oc1S z$}?fq0M6uDK6+KhA4CYMC1BgUexo+$;cHinCVX^57@0Yy>O$c+n=w`_(x0L#Ab`>+ z)5>pd#12y4h&K$6P~`r1{AiB;fgzKfl^$H3{0r+9Ez*>9UG_d^^|Rw=sOmpZ`q)>KIeBL?9M zwRN!u->y9s@2^QNpN@~UZK!-RmcNy)?5HfdAa~+U1~R0!=W<(J5#S6G(AGN|mAQQ* zLlNVoQ&K~Ur~OgB5-yh;C3ZBdx2kd{Bw@Zep!ha|ZF(c2L|5@ih#OE7V2xYKhHUCP_ezQ|=v`!C)S6~}v`I@rrxEhBszwJaCtblYRjk;@nPcB+?s6lp zTI??+8K5s zS`X#ZP*QF9tb#eriaT7gvRKk5rOB|7p@*?QUm$RhK=h{Aw>sOFO~Ty^nKq~U=4J8Q z&InrKO*8y3WU@;Kd3y4iOOK79(YVB-i}AFaSu>fHwr2PA5WDAjZ$@JsyC;gQJPL*4 zL>#c*6b;8e+po;n*Tyan#fBlwo7Mc`pxO&@mRHO#;x_E_iO*`@X@A@oQ9?c5+g#Z<%P}>=S2Kk>79xZk`2Y_O(~=1;dmh45=bpTWhxmw{ zW_X9PgU1mz%p@XpaYND*2)&5}ymkkDRMx>)r|y>?XZD*tp6o88?6?Uf68?WTK;DnW` z`jf;CR)L)tLmv$*ztVBW$is1zM~z$6(8Z3!!CavtlAHd+@%5Ov zSmK*AWL2?BTT2`91^Mua28VR#rI?=E?|+Syxn5}19OsBsE=Qv;Rc-Q`VCL9-~ffPZ!;&fx|=yHDe8 z-B-nrgmlR!!7X?UG5bHs4>oI<#JbOjAV8BmaI_1@=)kxaANQCoto@Jj+}qW3DMG3bV(ScdvU;gr>cHa}84@!C|)^U(9 zAJo~)yluEYQB2HRAPI~eyFi$2L#qp}!`0s##I34Plf$n(s(IY6QjVBeiN8A&Uk{>3 zEQr15gO_tmgFCqDdD?=GLu+}LZW31cr;fCay2b2mK#pv z$12Cq@cKG5SaN4JXx2?1`jSK;E;Tq*n5H&(R0tT23od3-B9do~Dm$NMDi5QFR|9;D zXAsdvPT3Z4{_JkS?8$k79|?gGoh64oc5`t>-d@qdvTD}j=rdil9Qrm#uE%VJCpF&d zv$cOv?17Kz?{kIMzS_12j|z;_Ln#(-f9uKPv|WB>ruQk7P@U+7sW9Uy=WMRXMJp}H z2TThZ<;(YNPM(M0+@&Z0nccVqJ&c2)S3MTk2ar4ip=AX}nhh6VTf+<9&<0vo){{xNYX#iLZ8ih(YTLi<;$;E9?hO zU)NFWqOX z*Ks7UsycoQTmUr1W*WehD2!G2GEiu*_CiZ{H~?e*CnV0^FD+mm7*~sFmJe`V&bu>1 z%NK!Q)Rwo_!H}IJ(|^8f;W>ps@GBy_6^#S5#}lN@kEHa|SR`|^h(j)RF10{t-HUZ9 zq8gGwoPNWB?E<}pqPe)ly^h)%Xy^JU-MD`vL$JgpPL7Y|m$bZDRCV-Tu%KCMu?iAs z(?nL^d9jKbw3JYnpQU~!h*^JzAE`5lpUzX63l=869)FyJu3)MZU?bJr(F-kzs~gZP zox3MsyLQDS^a;6i%b#4ulssf1aMP{r3&z&YizOv>)zzackD%%*4cy{lH8<6IG&sfR zQq(la<_eY51|zcM6SL3d5p;{S7XR%|#o$g4dKQkYlay>eW8&=m#@+vhg0#)hhnI%4 z?jN<(LZQ1n+XnV-uBK;_^9)*6EUH=^#-I~~VeMuOmJp{b zuqH1a2{6OA5Be!1<|vyH%+bg=p=TXrV#C&@-f_B-JamuN==V;Br4=H)=vst1tVD}! zyi+d);n&A4r{A9B!(6|@A#fw}>Oh$ryXfbGV6u_ZpYc>0q9~GO`A4|miyb-awEp}v3-XkfKfkju%)G2 z@I&hMhr$gU&mnY^UQ8o0_q_|q-~GGN2Uqc@*KFSX59N;gzKrwU=aW7>@2AQ=FW-Q* zLO++2jXAj6HjRzuqER7Gk}a2FbOI3bB{|nz+smPxL^?xBN>dJ0OPr znk)=&>L0(&qqjR$Hz4k@SZ~ez@vE`Am9!-rL5a2i8A2^!ux?XuS3CqdN`g!rgtLZ3 zKi{LS+yP?2Tumh&Ud#&3aNJdQezb3SbnKi3;FnfjOV6uiIO`npzCKM_Ort|yP&lq* z97~l+qx5%Xp0O0G?6^C2q;d@=G|AfvK(cM$o5gjKzGBXHD6`gbSz@&Upus-vo;#HB zYY-&4_{$@SZ!*aA@zEBo+o5Xg@;5$%3>uVW2`9${q8*jcQeoB>3WPeEnZYdjIbMU~ zAtp~gmM~;PD_|X07{=`qy_%!BJgn2c#~MHNQsVG`c<)@II934MX6m)z^cp=hS5zfP z11NOMr9C65WP`7dB1pqD>n&af`@r&jPF{fV6e=A ztiJ{sgBdR`p^+DqITIK-@+4q7e-pV~-tT@F4ylnz=VN5ma|ah)8bmb$%XQ zZs1^KsXW==t&oU*zJOJboej2yl%3Wbh*KC|cFqj+n2IL>N4VZt^ z{PkzxPi3B}(7B&6w`CUamv95HNtO~a!$i|MD!QF%tjXy9<3y6V21F{u9%C3hs^KPL zA-E9>QDNV+UV^5w1&e9ZGlwKm6hTu9#%5FP-L2(6-T$RVJ9gpY*EsE(m+&Qs)Bb`u zZPF@0b!BE-SJvP%tBlURkIumK!}S zXX;>AWY+*VlZ#zWBsZiz9u>3&j9qm5QjmPd-HP#&mE}oTwsGRUVb?64qG%3i+h~*- zpx)|2msT1ElDKN~0>GJ%P{vOUm@8Az-KnE>^$wO@I1fL;#DM&VnaYz(#}ig_hnK=k zv_6KP`{cb%l?>^wt;wArbg=f+(8&c>#fJvE4G5B8^B;N@OuZPW!g1^l#}(C$s;~gE zK|qM8XVM%QOsw+POfgP>PQ(T-Da7$pD-4P}8r1YD1b9V}GZnp>B8)`n^B~2n@6#$_ zvcR=|;wlU?Df_C}6m-4WLYYR(kBg!DkqpwEQ@G?KV~KWzB(#)7=hJ>nz-mm93^7H= zLVcnA&wu~!-Cipb%FAkqjW&WTpg8T`vTwf6!PuN#2c$U(w;vubn!3}Y^%qiL@DvH6mqUq*u-upz9X}5cX(tVlQajx zw>rbR84-kb#Kkw$7!vrFb+2SK)QOJtnwx?t^XRcqZfNZD_BK~AW6O2vb*2m$UOm0KV|S1t4Lzz%aRmeE_TFH0`jlcnJ=HFVKkEU7{is)c^MxRcjo=)qH$3C!8?d`6 z$EW348_nXJ8?66Vzn8{&ArV0rvK6N4lS&X zdm=oTL^DS}<(eKh@eqLBn8JCza_tJYxo75&|E5s5TS zxut%R1tXk+7wMbw0Q7ML!bcb<{u5)Mh`?*v<42EvC_Xa@^Ss4rl*aT#xU)eiuY%G) zv*!-^2t!VKT*7W2vzVh&rPixZTr)YU*+OF{Wc)4~btI?(6K$lHy>__0a5uCK5V{35 zTFOqGk@bn7KjgfIc2$+Ebdc?a9UyV^Ah(tro_6aA>~_Uk-{_K$wYJ3DQRNZPo+SbW zCbUe(;$OUm@Ag!sZ!6LgGMe0}H1+2WOivf|XBzba!5}C7*+`TX2>4Ba?YxEG)a3PE zDmxk@KkYVUrW7DNndB=q%#bNISd*uC{eiMTqEtHCtzMcC0?nN64|ehWDuK#)aoD2g zR&pxeufwc+o17TtPdwwU1;o{|i>r~A<&R%*dWFWibX2%aQ5~Qfg!-syD z);npCW=zkGio| zX;OT|22@H5S30_aO30j;InwO*JbBdx^+2S6nLPpp&+j7e!;6K>pP-6%*JZY_&#)I3 zv0-}p5Iiy52_`#`py}Fb)elX9A3Am8i0(*AHcAv7$D95}bo?L%jkP9q;xs636gis4 ziP0QKaA2)1#2I9vg=LT%884pcHsNb*6T7L+RvUJDTez$i9ppaUx4TJ(Kauhh z^Q&S=Yd5lVK$Quk1Bjk4=vb)_SU(Ln1KSg|dsmico%9QyM=N`J;J&mkCZN8 z4Rnz|JjczPFv?C{qG7ZSvI|DPv6X&Y4T(uM$ryk}J?@eZ{^8*M)~}1nrFa)w4YKnA z<~*in*>q%Wo!$9}?+L$$GY*DO)xfqR=~d)pLE9wG^r={XlGAfgez%@<^od0myE0mL zoeS(0tEC#v7VJz99Kn>el+8e<&yZ;@M!bRZcqsTs$qwS^8*~~P z|GI(8p7#i1gHX!grKpqx(d(Sp)br94y%PbGCCh}BLj+?_cR~@MYA&PJ`;8}`g?~*Q zOtyS1->vmVCy=;3>s4}bbOZbtca4Vf;1XmFtZSshBG9qSIJ5PwyINaN+ZARCkiV`VgTmkVXZH@u(~G%s(5#bmj5Rs zX7dFTcP8=Scj*mY54@Wequ%endWU(+N+!@B})lgwyWsD1yb9cLW3D>npG$OewRGev^ zh%p&?>HuxMVU~(iJw@7nmc31$4BWI6M|yE|rzdxzc<Lq*RF`uojC1>!`;HYLO9bBM@Vd@;#{eUlZWFOi103Z_nAYw#Dk=*G0*zW5>t9X1)+*Yn09+4)PlEjO zXQAG5!L`>M$cfPPDGIYoemEjmKyuUr3zL5iTGa&ns9!K0mfd^ygJb;EeMUPGKvMWy$7 z@vh13k1xE=?V5{MUWiA^h%@*K7*}(-Uqod)d~{%GB~VHxVeU{G#kwiMbo*^pkAu@98&kLvnKn85ZU8 zjxDBX)ggZUL={gcfKvm<-->^IqW>XD$PpFKlS!+>LAkq<=;iEw1AoR5kk{Y>eqXrg zA_hp)(`!VH=W8$vh073P>| z!D%>6b@xMdV7NRfv68i_Y@2mImC*B7t|GIjrtn_BY?mt?KdE_O>$g+!T4n>DmuKHo z-gPyZO>XF~V1(t>hNkauA3Q~ZX8W;7A+HTyZ`tHvws|cCjYBcqp8agGC@4B=PP@G` zX?z5R_uH?#hyw>BBII=P=caG3q&ovMhnO%W*3%XH%o1YAR_R8A?@s|SiV!dvSBlwA2>knSzWt8iLmAL*5{6(F zis=(YGBQCoZJ*XLkaRdJH2u^ykxKu`>KfNoVqvLNr8aKagV;}!1%`1>+Q2WL! z8rGNQRa||(tAySaLwEz2`UQpSR%QXhw_RY-eUAqp_-2IeWLxLha6mGiQEBe&jxc1T zxB;~LM-M0whfI*YSNGDSVUwOC!XZbdps!ksZzf@x17xwUFK``XA57XVXIgZhLBEbe zQ2=5SNxcL$+CGCm&FGu@jYhO9uz@%4!gZab}$SIx*(j z)pR36^AzLRAT>S_1Qx4(cHn|*jPtv#LLtbWuvMk`{(HbgwXO68@vdva*}R2*DYqse zxo!->`8{{ z#W6(5J?aedOJNYG+~>Zx3wWT~=ef;f#~yzF{yhe@8v7&1WO5(u?5|(KEvakT^5Y8= z?X5hZR3zZty z%g(_8a%R6cI}BsnJ)i1coH>pdvJe>iI9>GNywc&@z_}d!r&qiUUh&rkC-cM~f5n>V zG`Y-(l#nOiR4S%Xq~ivuNM+t^(hdxD7GfX}3ug{f>jNXlw>dw$k?1{P!|6>(=>-N0 z+tCyQT-MU;%5q;Vl-p5b5SwkK#mUh^)7{MHkzw-JH8k)rame0yBFYRQ$*sy!X&noA zI;mncCumyu{^k!aWUhTWr|EiG9#)LsOUwR-*`|vu?E!u(;=4N_xu^xLE16bMW@CT! z^7pXPSEaD>B#%68s& z#a0;j{nTAjdnKb854vIooDU*H#^({QJqfjE}z^j z@2=-%59)k!2)t(?4<7HHk)RK%zcq*(?fhtUmrDy zaiU^%)dJL}p|K*z4S)$=`&+5)u;@$&iDq(5H?PUP6!JuMiyA$w-;enRp@W;=&tQpl zIMV@$pltOuw!@Cl5oI&gQgQH_KDKo4Rs$&Z1Q++fuE8V&fZ&nZX0XR$DBpgQ;s_(K zL@m_u;k9r4@x=>!M#L^oDz8vhupjA%^|JnQ1M7|bXpO?ElrS&BifSH2Cu`TeQB ze-C1auQ8_KCu>%{AhY-zlk>Bgh$VrpFpVK;LqC<0EpCv*h(bX=a%vQb8YCnDCame| zoyj{2{|yn)Yi9y@Dp;(d<+OD;ZkrMe_cC2xUTR#y^MKPw65xrPkxJ41iH~|z7gbEM zjCng;d{<=)hAY$na8}eHV)i}!^Ws8^!JFM9?H+x9xV2mV`XVL06vmMmLuY^BYB8%d zSvP%rC|b-|tNmbnPSgFZ1~5ckyOuTKr`CSdLzONz~q?G5Ooye{#q+`zPkT_}2riC*m zNyfbLz5bps$?-54dnaS|Cjt4&t8fwWL|(r_l%99pu3^3C_7|ZHM^eqCtS3zt;r-u5 zn&cMkR*d#_I2k|vRXs~Znf+1uVZ@1%A{*T-aD#Ea2j>G0uTl6Ub&zcDeCN8_af})3 zHd#%Ak!50#w71}cCnVB^ZQMAUBSpRd98)mW;z{9@FfuR#wr@D%oy{T3kz(sH{GL`= z1c9pPO_>+!e3yeYaa(;6(Zis{au??0hr*~@yu?1FgSNOkT%9#yn->zMnRjHF2WL*5 zNu7tGp?C$Dw{jTS`5=3XS7=QgFQ&tH3{5*>e*P7EC0{Zi-L5#8v{s9bp z?l|a$;Y1a=VsJ1bj6nZgJz~DjQYpI|cn!d|(hz~PwEK5a{k7Y8!Oxg5=J|G-*we+f z&e!g3(lLR^f&{bSY>lO7LlPBUT8|}Qr*bmXU*AmiV4Xvvyj527`Fyr?FU8TEmKvmP zi#P|7qCDU4_GQb(SVZ}=oy^x$en|!dChpR0pogza8YkRngtPm-Lp1?~7~lB^ocI^e zzQ#*Jx^zyRI;HKFFRu3e$|av8=25#Zcg?}99qa0g(hXZ}a$B#G5M&}2js)qrQG9(u zmtE#Ho+I|4*Xu(}z9q5X3-8X?=oVi_I^=H_=!dUyhaxnPQ0nz~=a2XO{p(dsHZUTF zHDB}BE+7yJ+0H^iLUZ18Wqd`wbAjWaWGe$QjA4m|;`Y!OnH8ZMP5dbNk6r?$)A*fZYra_#sR&LPcs?%XrKt)0=2FE(E? z0R@mia@?Be-l>G0jEAC!!H2%ypDNYEF!6ha^X2vgC1j%&QkM(Wbn9m`hrzs^A8Yjk zzbnRnO>JKoZ$cVUmB7@7BZ+gF^@vRQ1j6?xL4MfIenIbHX%16a%M>5P@#=X`0K0KS za0cl5E*b%xAlk<8Z;ZZ<2V_8sQg~Nk<5aEhD-z^l>Nsv^)`H<;4;&s1tGc%G~kznqtIFcQ8K%gM& z{9LXXF2tv?+Fc++#OECtwkt@Eu~U<`3qtILfd-p39{dYqKmn$yvS!BXe1%CVBeEqI z2}i?VK*zm@uoq(=543f^(B1@+c9N4~TkH(s7j6ihWf-*anwkCCJU-VV!L$;O$`)fd<3vnai z2&qReoqFa7)cp;zjVNaiHfb_&FAP_m+M$@!4dxh0(y6FDaec=(pJC+j~i-gwI4rnZupcJHLWmBVd=|zYECwc zO$mYN^99|2F_K_$yj~)D|C;e-i8u=qcKT@lI@f={^slXWAOVXzbvvlZ1N3#zhzLeQ z)R$8Nfs$29RhrEjlFiy*^%8ah zIJT(Eh9c_>neO)QT>GGGtxuUN$+u(I;)jMsj_$E5ZMK@=ABOz?3TNMrY^hkQQnW{EJqD5G86Ysz^aK{LKcG|jB1Ef?9Gfk~qa zb%Z=eC_kp+a)HGf0#ji;>QPTrl$pi!^HSUZNH)waN5w^$9Vsn^{2Ev1gJrc*l( z!-ya!d0??6I&=QR(?^3Lt0&v{6|H3zf1AsAp8NOYb3G`oIcJAuxm1)kA^YUWx7Lt(Pvh6`BvX1R!dxB!a zPVh+C1HN~oSD)d<&Mym9OsB%v)4hKsDG$X#ftpHAF0NIw{`CicAIz%ss~mu==UvlU zO!WW$>(Up9yiM6REw3YQ|NfPiz;Yx@-uYktwd5ek*=9O-j^}zx^S8*YeiMQ&9olC2 zzx?ZM1rV#AT-iLj2BZJ$`Tx1Wku;dbtm6htO_=H;X@kYl%T1SPE1FYL?Za8FIv3OV>TgE1zTE2f zYgc5e?d?0gu|G-VJ&*irx2J208myYfaWIQjHpOdED8$zvJcA58QkOQjPl_ z4teT7w|n*POUVs~X&mChG>*eIi|A;E%+K|lp@;7}U+!v%Jdt>KgMRTG!It}xu@+07 zTeXB5^ZTd=nXT$JB*EGmAGNSN`fWqt4QL-rkgW5p{2?+okwhMpJZrHIbC89hKKL#9 zSh^2Slx%lSJ=^;z8KyE0nN~izn*Dbu; zmvH7x;Vn|T=zcSW89mxmh6PW0gn^XZOlCo~(~seemj@*FZ9DoNDE|2Vx1V9c!F;T7 z=-T4giO1HOXL#F&b58{+&-|5f^lG>CF;5RJql_2s&u>f-pI+C>*_G~V(8}(1xSK57 zDdSThkmsmJJ6=tyt@J62ny8wbkq(At0#%KH3i-^68nrN`f-~7OXR*edk1=EDQA6&( z^I1guz0N_^MdoG>$KUDnKap%N5jHCjon&cS{2oWExA>!YtCNerXC#ayyBuwQ;OsCk zcsCA}>`|k;E!s3qc*-ZF`9Zo`jgN64hkL3~W}KMuB$Z4%`xM&v)V10tgR(|GKk1TT zdV5u7A{3Dbi!=|{_K=>EzY(I<)A2eF$k(Gk*U9J~inHikug|XR6ngAmyz}UA`BkSS z0r zQpi8O!KMY37evp^vu^`z)+nGq{((hkDb{(~jL%kGcPYrr`AeHsb6b3n+P$E#*Buoj z*aRz4B`tg_H0unH$g3aG(`J#$7un|PTvsM4{DdP-3|$$+E@L@%Nv{a+a=abyVw>51 zNn0V$HN{)Z_z14ReX_lMn#fn71p6+9k8vNCpjdis}IW18?Q4kOjZqS1Nt zr*(AoC#MJbty}Ns`krZMC%%u`RePJZP`x`)>79QxhvDcxh4Fw-I4+orWFQ z7ESR%clKvAFJv5*HDcpBU~KL4PT)D#8g=#B) z=2)Fx>q8D!wW|$RxP1OZz;7AkB~pFC#GT9;i+%y1YyR`+XIzIgNv5t|?}vBSlqzHE zrp^ax3A;s^$~!f+xj{reMM*i`=~g&pZIgEI^_7ok#RWZWT|lR8a&9Dj)bcB7h7#B`8(2 zynXz*Q*&{+iacaM^EC54ntwC?tQb?uRWU=O$NeG(>dH(B{W|^=N#%o;^6#0Wbx(*J zG|f;Ntc_IVXO7p9KkL`aClhzp%a6X~>v2+$vr(VWxzjnBlWB6rLR$4kbBf54j|Zjs zV9M4!O%>lu+Ugvd2YrQJgtlt2b8tV`ehduC_v(M5*uCp*jU;f#hd)M56RWS=eg?~u zDdd~WR*$P^tLW6d5MXx)gZ>S_U8-}&>fOzwd%g($Xzh1H>7QKkH?i`En}PzWp2x1y zOQ61ZtLwCyDi?D*8u&I2bL#Wh4|(V)hIC=qYq%7VusxzozPeIrsDhjn=NmT{qbl+w zQ##zWmD)I5RQI)gAxBH^=)0Aa9e3L%#V%Ro*LzcZT{sIKTOM24tKJP(!c2u{DDiu( z#gr^ll*6(Lcq{kz*RyJJ`hIkt)TPDF>)SPRWT-mmF7D5)mz7}d-)cH>Eb~oZ5XoHC zk0>1u|41lF!Vw1Z8L!tbt3@r^_&1##grruwt7jmo-HRz$X(T;Jx)j=&1NyD&$jDNMq2cPL~^d5VC|XM z7p+sesk=o4cdR6d*()_msGn@D$vbPK*A*!Aq}=6{`t`Q%gg($$;`*huoa`cSk_f+|t6ka>gs+1{86DY*Z3?8{QBJ+_w*Wc(^ z%-F8Pii1%M8FvLI*fW|W49Q*%&?spCuf2%Qvo5$fmp{=S);*YIA?`V5N3eCqbs-eQxJ+x5e{0Wp`PK zyWDrB+xaCVQLgb$8*2U0%5f)m+R#i@Kc21?VDUDSnj)%M7$_qz-n3-dO{)~|%(T*H zm+^Gb>u`(XkKLv21<$4v{5jjvNP7e4BfE*IoP;f6cGe9|?I(_yRa=bwD{=?!uGj%& zZq>iuN8V|QWzd@XSR9@?l%qMd=N9uz^0rF0tfyUeG3$V0~UEd_D6Z)wo> zR0}8gyh}+~N-jgcjkBf2_oZkni;OfsNRu&7sY*)AN%F;2^p6I=ubAwzxT9PjQ1PIn zP2O-JC}x(+79Vg_N$VJa{Y|Q!4}_=O?ylDcRO`DgX# zGgik>)mx@k`b)D}lTR$f3#l(zVhQXS^^qrX5+rS`dWXq3Z!$+SFA!M8;Nssa4^oHF#L{KXurAXOGIrCtp2=R)4EkXi?bX z`~lU%)w5vr`Kq=XhpOdhb562Zpml|Mj(eq9T>!bxmTVfD8`z9%r(UA{o{g*5ejDYR zC*olI-j^dli7}-^yL-Hbq-oP7yiceD}CcjPBn-$^Bi><%x2s=GFDYA-z=uvwToj+>5FWRB& zjF&FE|6%)>yw;q0{`!`@t6{s;jdIX&?MYATZ^pdYrO9BOrKWqU|D_0%Z*EssYQlY6 z3_GS=>C7+nZZ>u!L)TfY3#@r zyG5VfiY5onD4S(w>g(TQf1B_k$vxHVil($Cr@nOlYes9P(yP*u^+Ll1{Z9=h_NGS! zCf(oZ>;EwB;c!&2 z2TnmkV3Qgh(kfEhV9Lmm(v0p715`w6u#HAy;OOoUq*F#pDjfpS(!crrK1V%%KELxk z|6Q;9+H3dwes^A1y_VE0cWAnUmD#3Cj`+Gns|Q9~jYG89xZHErbdxfdgWmdthA)<3 zrEFeU-YBb?x_xB*#A2pJfXU5{_ZJJEkVC|l}1SbV@?C^KXa?>g?6 zWz~%rL*HkO+t&-hMyGde;16!=8LCWgm#FJ#M}831!f5A6-*8~}y|#Pr6vgGorzmfp z`s3`~@5^^)Y>#Q(KAOKimi=w#=a0&bDH)bZs+0UYNU0#(!1UQ?^7$lLE!?{ix0^AU zG_{9NcO(>4AaxIV4-OPQ#$gT6X zgZNLV{}(nra|$IRyywn>T$&v z2a`(AnnRU!(;T4rR_U8#rIfcgJ3s1W^3jpBPu^Z`fCPFjCt>d->`lsU;5!uOx_miV zIc;Xr__1Nx?0xDr;~1KuO|ebhuXq0!m%m`_4P|%(??U4Tp5J$V!Mzwa1tz5-SO=5J z3jH#^iLZ_51TS{Xf_Pj}UpFjP0_E~e>)YpDIIK?Y6mY9{_H2}RGfi0>%p9-O1n(F+ zH1_O?%WtoG650)c&y2XhuQc?NrpIavnAZQ&JN5~Z$;1bSVpbv93+>z@yEho|<%W{V4s;Rzf&)u3Fl z0p^USA$A52W<5XxIS4guXuORbA;E$VDH%7<`xauJdR+MX%ij%r2diWr-~0Q{Pp}@p zE1+@#(@np*BUtfDa~2edc?WFAKR9s4HR!ZGk{sZl0j#Z@?QrUE+vGAqUK+aty47L8x%`F)uS_#-VpOE~WJU;pyo zGR#kuDEgKUrX~Hq#2@t6Xtx<5sGOgol1Z3Xmx3t^(f}B{qW^$;08B=l>pU*v_nlwh ze&=~5-(mIy9XEV5QfdImi=QI2<`RT@i;8xd@M?_L89S7BRAZnV-$7Hh}V!#R$EHj z794<0Ri)3(g;7Rko6{+`2*>ccKNJ03bLib8>l7^qBpu-QonN5wIZbg8pWpN0*(x@{ z?$-Tm4h@MyBo!1N);|Xls4%hljRrRzny79D>aSCod;Grhw;Cp+?5i0d955G)Ex0Bh zGa}1r1Z>*6<1N%tt1R=Ho+2s!v7bF5pfg)w@CBTsO zIb<2_vFYV>P}3zlY>G?2!8d)~IQsYkn&&0U^O_gIG{1aM3!B5clha<+XB-ru`<)&b0Z_yEYS8Ml#ZjceMc($?bkA&-*7eRsJl`)!iUeWE?b#Fe~dDmEb zTY|YeE0qoRp0m}6dKs=^qALE^cV89*lKI@^^OW(g$oPe1|Fe8&#u5&f2LjafWCTM| z7pfqCzDb%nFZ%rNvj8ra_fx(?)=5*v02?w(u)EEq?m1#ikA?xV&^+y1MPrsNf0miH z(b^x=ls~`lUBTI#fsE&_UAzDPYe2s%eTUCfN&(#Zx%R}UNpD|GR<&ihbibl^Y@Vyn zMxCH{@OwpNMJ~BH*saFXPZA#wMh52BhgcJJ43~R&Lsx9lXZv8(H|9z*wnucP`mb^r zol_S6VZ%>RB9u;XehK(ge&Jt){N`5{3RMNW#iu>&p5^REwf)IiBgL0R>C=BWMCLk22=jzWR^3UJaJBDdO@a53a-tMm^3HKK08<6c5*!Tcd*48P;B#VGJ*0*B zg(iA3-|e@3_kzGrZ2qD<{&%TIL2*Ffci*dK4AV>)t}~=?$yiE(?}&qKT$arOoKG zzTJHtW_sVH5yz)@$e)3a9(+?~Y!>xAY&Am!YLxn7cWP`S$;+Gl>d+wRQ{73Au=n<@ zbAbj~P5tiHch>v`aNdeHexmwQAz6P{eGyVRVfjU#|8uF$dNW3WBDyKxDZ9`|!}T%k zttVND84W?o@{B`YD*P7F6`bNNL61Tb%~+HRwU(VCtM(a4_>tpU_)D)fH-t|FC3W8W zbuo>hJVJffjWq#|)6aw-qS}n#x@KA@@GI=K?(#cQ`~p@0SzjW~hK~NiDF0pqcJ&yRVEQgxx;f5U2X5;rP_}9YL={Z~Qyi$}K5V zK$AIfizEKW8O0l2T0}iv4X0@N0#ye6se*`Tk)zMhFLwAWZuHi6>hQRX%d%Q6#0hQB zaAB^r`!?c2Uy;x2HMi|hX8)iX)vAcgr3W+Uk)u6y@zF(mvQ0eGcZK_lRNVdanrtl+ z1RgS-`RDWB)XTehwnu+tGhFKX6pCqJns_i!Qo_NGT8!_2J*Q2V%PY?6=Vc7;y@_46 zMthtfbUa<|jJ(*D!9P)Ud`KUSY)Nwqq#T5u&T`M-y0W+tZYxz4#jmNH(VJW5M*6ZH zrw+juNF7T1{P|B9KDm5HSxZ>e{{>|aDM41yV=fKZLOnV(^KvRov2q-01T1@1Aag0R zA4cNh@?Bel*bsfcrWY49h(^ojJ9Hp*mnOQ;Sx4>9MhP;n1YMPnnH$O_Ad#_rRwY{2 z+(h~?XK^TdNY~bzav4aG2e1Ec%pCt0nbV5ivRYy#slOuV;mO0NV^@76ma9%u_Lpc}CdNu$$I)lZdXROqhCZ z`re!y{i5{1U~FT)XKc+!^}W_EOXfpl_ir(j7#$g+NXKd3f6(_gI-a8B<$O}A3d6Tc zbeG)*TiK=?7e+35;mr9AGmJgH`nv)E!~F0^y_y@t3-#klH@Tz4G{r=e=Y5LVG#ACE z4KI;C)vsLsu(ZO6Evm+AGTl+Ot8$qgWIm2vx^oB~05lH&hL3pglV>ML7rCP7F-~qK-5vSW#`a!og!vo2<$oh6Hf;y5?vs+8ecltS|{xs22BiHG} zt!s%cS79+m6?$oyhRlJhfiFvln6rbc%E&BGp~6Z9vcWA$Dwu>lm~6KA4J8@hok^Xi zW0(HPZ@=N{-7M=(_D-~st$vnEs#{5Laoj5f0_gqHh-AF18H;aiLfEwS`O`#_bP2L~ zD_rTCwQKG}C2a;c)U;L+d@B<09#*0YwHz3MMMY&#qg=UKQlnfZ6Ww(*O`iP|6Am!4 zY098%UHQeo`7cX7Q3}*qYxAQ1&h*|rH`e41SLRD&g|wO>FHqExUo>)Gr+!Hd;}u8O zTf4y9jDR&DUo57k-Flf=S&M^2pa7fh1KZo*7rKTj&jt!e??G{%eHC7U9h~NS=ly?^ zvG|u{*DfgEk>+2lC7FD9?BmFKdaPsi?J|vKN4W7Yq|3lQeQ~+0SH@CLoF^N8D)N(t zx*3-Opuq(K4%D!=Mz0JRHWjFQLOTqz>W+AGj#sOqa^ciBF7|zzSW#c{(S@HK^@zE} zCrVm<(1R4mD9y>JWDtG#Btnlnf7e}U-}M75^x!w1`zKpnE{~_w0S6M*O@(^MTA^{y z9vlemcRI-DY0N){2ODwG5YOf-QQUy-aA9xGrAF4DmW&kk*}4f+Z|12Sgc=cM@(0)O zFE#abBjrR9U1a^ICtCPW6BU)`VoZnB4vS^`2Z|hg$i!^1XlDE`6#NA+JvR!s-1z2! zl@*`FkwwVP`{!=a=^7k#oq}3bRdMu$=U4xfhJ#tAV*u}}10QOtbMX*MA1E=vvAI~K zIj6{it4H`fw*Men6q#tyHb>@vK=hx!0soWBo%C2=^^IXu%qvgq(m0g&jJP{1imWve zz~#RL*h7e0X*2v8FTmI+n=>VKU$P5?u3ns$}!yn)1vAknCnM6ls zJhQK*ch6c&-A8bQbH$yG6~c=qu`T;kWPkque59B?8T<1p@&A!}`c2{pXNzqkt*{C4 zQj?o7{6cD9!(67d{~}k?%dtQ2rvtP~?+YLIqO++jx6fV=D5Gm#fm7B3`vz|J&*|O24gQ=a91=*wC{V!iq%LzgW6u%gZCxRAjKA8W}_y6$`KjBD{j`XwoTE>I7HX9L^T zo;*6|H@yeW?3%218!+@`N%@z+@*Vu7B2?2 z&pp%m9~NaY8RG)shIw7{^SYA6!P@JJ?lQceF8#pmx9={V42vGqg@0F@*Y4g$s{u1^ z^@swg^h%KL2Sp7Cd!sq(x!C~>YPprhX`oxS2o)|#PGvX5SwW;y;Y>djIOA5vyqGli z1kvrRvDf^!i4~7BurRxs2v8?J+6*s`9Jp!94b`k<4`2zh-7JgiU4=`Q&?nnczoP576*=+|G62}}v5^*CS<$nF%iCFZx_KCruYcQ?uj+R; zWy#*4FH#2s>*c2m&pIDSFc9tOt0KQVeL|=UpWc`kD!5{j19j-vah@EzRMxV))+7L! z*qYEGdI5LiF&05w-R@}nkomQNIN?iAY=Nm~@AYnKx^E2B7Wlpj6YqMk40qCfX-D?b z4!;^?x}5*4Qa5hSRiRRM<|Nc)Q_6#3#HW_Sut~xuUB8Y8BeGwx4M6F&G5;`A4m)I2 zcPDZ_2>2)8{wB(w;A}U0TaC5rW;Y@*;ZY4U8xfjv5cZFMw$aI=o)!pCZ}BcZ5}$=R zb;j8HrMm}NvXpVGyk!VWWi-|rCnzk&8t`xQ4oS8V<5kqe=@g#E9N;=c6FvFDcJFSB znDWCF%@+i6V6ugv^kmUKt`c0RPeLPWSl@h?KTDB(O5eJH_vhTfXxX<*a%s_qRL&8I zAwoLOt~lHX6Adx;JR}6X(`ktO+}JL~_PKp5^#P6uc}{$QYZO*wQA4ddwR}+}GMeNo znW0I(y%Tcn+I9ydG3F5G^sFA#?0!+K6DzdKu^p{3uS>@*q4?hJ?qAe333~pGtLYbj-eY3{ST`*oP ziPbinc?2CMO>>96nNa8(>`0_dZWitr^Lbquzi&rQXmI(2l*%q@MNFu>Le*uiDMYi& z>AM<7H!*=_ez%N5Bi<`xPsD<=)((iOfBHpLRl|3<&`> zcKQSKa(3`Ek~G3+vxwCQZv9SHBasFl+VACE6BEXy*4cyHYm0R8IgvKcJPu^eaMiky za5uwm*>W#m$57?{=qRjNyzp9H@aFLst3AJ_;%XQZY`~C_rcVH_{+j*+&BncF|GuQts6&d zcCA=SYS`@0#O%yR@B?i?Yn`~+1V5Xk^@a5dBK`s|5IKS`?3oDIJZ1~v{se_)QmYvd zmuuCg&a#a@p5w|A_dQT>!UCosJf1_YEx5_bCaa(<9bFafFy`i7w5@?6_oOd&C?YN2 zX~xx^Cp3a0-LF&K&UI%?KAR1${$8?77UVqYyM3sg=rn3}NB@=U{3ZXO)B_t%$4tk- zc#qia!JZ8N$f?^Ow0&IeoCaJN@;}*iEZ)+Df{MS)nJ5{~5hokI$RA5LN;9=2#5vX- z$ZSgV)n0$`&HiMR*@Wq-uX{+{ogIcP-}$pYD0uNE*>gTci};r;?01dzMD0rc37E{P z3>m`M5w@#u{WCAnLXEKQ1a1*v<3`vqV7%TR!9u9Hy;)Q&^iAPSQU4>+ zW`R);o|q;5z0T{)z2rL?U`8(mahTw-p8D-&^h%XIX}=C1pXw&?5P)q=SkD8=qCWLn z*jMtDx@l(Yub5{x4k-GUf=esuyO4Gp9t1q`i};dm!h^Eo zx?+70=0D&A%_eeqjR*AC5$;gE1a`5*HwJXe8LiHfX_|R z;ra|&dTW&~J901@CXoT+-{zd#jLRc^8sU%Q+C`qY4Lw;Qj%GcKH2@L(*Fif40~+0_tpMR z;He!uhOqnDThUXyb)X4PDd43(o7uZfk?8b1(I&fRmuq zk$SXdhpU_gPzsDZ@$4&VPdHQDK?cq2h|XCfTahrztoo1}6*Fn81!pyKID@RX%XoMz z&ZqXh8HtbwvD-jNj?7z0=ZerZV)wexdWqKTffwxb!W_j1xJaM2YF?LHzW91;-Lf3K zrv&-ymIiL6dbP3;gN^{W2^MhS@+aoSGxaJ-Q1e)J{4Rr>F^)8T{)6w@-9cDpmg~6Q z(e42^qsh2DTA?eh+f$`E*R9nkQRtk7eKBspZ6vNKTPWeCD?hTKQ`>iI#BHxN*-sHW zs1`NfFP18tF_F+xfSapCXlm&(PaD3zk0cC5G>NR2w$5!t3}hyP*E@~V<;$YOLNA>8 znZ06&V6n`QQ1Zi31}sWfXI0TkilHCNfhTLhKU9zyMcrdc@` zUOFMpLMmKRl5}&FG^tdT%vM1kX(Nik;;m>yO#EScX@oM{l_o`euCr`395je|UR`mh zpCjlC43niUvNW%M3s0mzfFU(mJliD@MECs~Tz9NKmCOiaOH97ACDI0=e6B);Xtw&o zEF(NbO0?!SW}rXm`jFn518dx{h@@9W=!!a(CH*t_rNL1cg&IY~O8cgFEvNIvEb@97@O&{_d@u$+rD;8tqF$^NtJX#` z&s_JSYO0pJVk_BYP!pQ!*%_ah9+iK267oD|(y`g10=}Ha0H;@%Y?n8P%qDDv^WLDF z!VSu0yWTM*MZ$@qvDbL0SG)*=aUJ)%vHf$U9a$H_c@>OLqs}}M=s6Pf?^260kIEm0 zDY%HYrwJU42M+2m(BM|E6RZXWt#P3<=KhS=7cJh_Tx@~$%L&K&#K zYd=Kq|1n6vyl{5-YQ!l)2T$?foBL9jn?n5tFhM5@OwTopCG|Pp2~daFktOfF7Vvdl za-Vbi2jV?NTG_+SWVL#|?(U8LoH+EXR#@?!*QK*Wq^}idNISlbsLG|g+eg!e1f<>K z3gZy4nD3cv>22uvge9f-_b4S`&eO1V=jfu}&ajn9i?Pds!R+F6ZBE1Avd*Bl7gL49 z?N7^K_m6IC?(pQCFVVeb$%dD#Z6;TH9Ys2QWc*8 zI&n*?LuCZP#>mL{ST4CRL_p`Ej_OA^v-BhmtC!yE{nDTQy*5}jHD`@yzl(fbHC3lA zyK2{DwTkY^GM{5Htp(I(W6CUlqcT{)(??O?9TThIZciu}yxVFN%ja)!^un;E*B6Q_ z0j&;r`E5vopk0X-0cHrJEU>Cdoj>N*9ZQ}}{hYjxk-kHv9j8$f*S#jcF&r^oqIBnA z5}gPUuv4V#4Dy$ZJu#5|5~gTgvr$d>;@d1Js(v+>CWWZ*zi!T0p$VwmHW;RZ7g8ddf-mX^YKq;d9liQkQU| zVG_(8_uu>s+;C*yjHmCH2Y(09zqAaHm!T?msqO+~P9v@tih=7b-$rFU>EMSsIJRR6 zY{9$;sg1#4$o8l$)CgvWd8A>lBU*6YNm!CSji1VhJ8aeBqudmZkl$-UrDHX}@farL zv{+eT%1*_;-7$o2c^V$dYi1E+wQB)4mPE-qZA8ff8TDm)Fv|O-nn6%@7qjH9dD%je z7Az*Vvi4DmR1@%US~FD0HPHxt)_o|UnS5j zFF1^w$R>?ewjQ^aGe>xGS7Z%zudnXQEi<-J7wS7?KJi_a>MJM-E38! z34?((4l6sXR%M%xu3hI+Io`N`)-j|pKW1*f>*U+K*mGfmc&2;FpzPgF>n_5Duu4z; z*K1?2v-cv@=)a+YlB-464Ch947aoD zY)~~X+$bX8hBWDL%t5z~v(1=y9sRkzr#M<<@3^IS??oL!Wi(Q@4A{WV`W&|;+uT&=wVrRRIwUrOjh14Y-*$&(mEcOdbr@Ib6Rk z{d~lvOli(>HLlEE`lvW3{QZ{SZbxCn{72uy*0~wcvil4hm>@F~w8|!UF;g{032*Uw zhM$10@R?CBjK1T2?pCivJ#(JqIUU?h9tU#zmQv%n93gc$@C|s-a~z$ZOR2`Cd9-7T zXxymm^XUS+H;wcO@pz#STY9tP6ZX|kIt{(W`@O;3l{RnxDyT56ffYvkJG1m+fyABT z=1>udx@Ot5=Gm(b0)9SHGR!jpUK%>YVcI~^&fWU3psyYia(R|H)a1j zy}u#Px)cTlMqY+P@RoNRHcNn|K3nGg?`O|WbF^_ZLa0!P(-;?8C)`YQN~@FlnAPb0 zkgx8bC~b-&8#7Pt8M+R5Ex+NFyuD%O4j~piDr&NF5cF%afa8-N`#j-H%N<8KqI z$bOT%g27HDgl<{&Yr$0k9@UD5ikM6Yw#%nx1{lH>+~}mrE`s!5q-Ss zEwubmLbc7tyNx##gQf^>$*O(+)g09&8%h~J%yS==zgaG95QchatZe74jBA8=?djtp zbk3Pt9VCWNngd5SN?5)S{d4B4lXlrc=NIsMA1f>UUtE^}cYNWIK?QJw^aGJwR^C{u9G+UV+Iy?d z(EjB5;!)1daOYfO-0FZ-z@zltmP+01j@1esZ>IaL&!_Cf1)5nG1+VMYswW-!3iX$Z zlp>w*k1C$9KAIAQU`QBaq-m(Aa(Goh86yjp}^R9Cynt+rYYqy zyLGd~CLUcOT#?l|7GEzcfj2`3#nnqt9PvpuV-M!^g0iifmaa>v_<7NDs%GB1HWk?+ zS802%B}lcl8GPlwUO~0701Tk|5=q~o-i8EvNae!jv#RX-?k*aW+@5NcWCm~qYkUr* zN~h@s306dAO6)nCm3w>dhP82b_;pK-i()^9=_=c$SqN*QZ z_{kz|A$NLQJ7|Bw5e!unO4t=h6F(=npX;$N+oPTto3u=OoBgSLX6!fZw;OhL#)BLc zTu36MYVpVqab?rFpGu#Uem`^RC^zV63?*v=dA_5U9ti ziq^2dUBZ2}(>RXQOV;}tZJYSs()<}@V&Xw6U-s^S?Uj7P6J9M;&RnBlo^!Aj7E==c z`kGUmgau3Ia_1rnxTDAFy5qwZirR_gTWnVEwEE7$sx4Zj?FVq*W0c|N0glEVn}#6hYa%z ztLSO+&lMOnaF4y6cfY6J$5v?0g_qMV-OtnSz(VY5SI>q--0=o$9%{E@&CTD(pG)j# zEjLt|+%MAlw*2xB{qaj32(h?EEF3!p5jqdDVKnr2#HWB##?sN%JwhiU6JtkWV&6WF2GH+Ol>u5ro(d$v9b zV#AKaJ2?GtWig;EB8-0rt@HlIP~TV^VrsgSkkPAj?2*r*R~Ha7Rd6fxgN; zjgm`AE$6`nDU{iz^(H`e&%5gF?W>Y=3H%j|iz;4qYIP$hruSQTi^T!|gSw`#_)k_) zn^Kl5?U)Gp3dE=NUe-`>)_BNm;^F3QZ|QL9ephPo&WZ^YB8$EvfZ1JC;tSw4#vimR zc7%Q-Lb8Og7!6?ZDlKA%h^3bs+J!HdB@g!8#prf}ZXlL>e8c*>+Xde%Bg(V?E?;=rS_+194yWz= zK5W`WwAcNS^9&U60W);?-HSRoJVA3&<>B6%|6y}*z&vH?*+pekV%p5{XQrDfDwm{9 z_I5MG;FP0x&-RaW@F!ogbFwD%`TV~-Ct5L& z%@~3ps!ZLa7Xe{uX?YxqLv5QCz&()SC&9Az#iD7cX6ZYXgtQw z&pw+NU#O9jLs)-b1)#Q{Uk`3um`JG370wXw!!vFja^CA$R2PCOk<+g7Pc=YqIc=?3 zdq1oUcQ&wU_Dn_p`89lccM6jT%mArYCjA-Y^CuO`9FP(_^kgJr?$)3XRHrXPyvsIM zMBMk7YwxSG(tWAfa)056=j?Q75Rt*-%fnUIir{x%d8d(TJP4C{$PZG8BT>DJf|R$5 zkdyQFrBk@@TWm4ii}v)RDJJ@Cevz>~;dE7#$5XM>J4wqwO5g7c$jsvH`IYM5H5K2J z$1}Lgr631_ChN-p8vL7c_pDC7NiKrnMwQ)9UzsL6LB{*MZWLe!x2sF+S4`}iDDeYh z)D`SjH{1YFNJKy85i6mi0as=Mmn>8S4HV-D7)&b2p$)GZbU#?APz~}5DjL+t(Q(_W zHZb#$X_UKCWoSj!5^@=;UT|ufXFnr=6RyOvVre6gSexhf8s%1~r)t5n`c_uEy3sfM z>x?j0hM;&v`=Tu(VZ*sdDveu&w`{bcNdiBiPCcTDTN=wS$Eh_;1l?ZWYDy|EJ23TZ zn-xtczFKIoRZmjm3taS!%?sbU=>2J`joo?y8*?y_@wVUmG`MG@MsQk+^`+4_xoQb+O(=efrt#uq%KW3aQF z+f9cMDVoZN z!OraCQp|}_;giDbgo^os1FXSDui}XvmU@m9RzEVm5q((IJ6Br_CE83#SxkL4ErZ}^ z`;M+3e(*^5Px_@G@&DNB^cVYwb9Vub)KDIj6^4?vw+YaC%+swTN>rB-T(needm7y_ zvUh!!O@rbC_{RNE>ML@EFU&H7OfLm7Q^l#swK*RpELCl~mq$8n_!xZ{fbU9?t_@_s%uXkS0tKUo(kZhQ+8*JKoa#WjoVHm7 zdX`rZE6Ae~xw%?h^^M9A?wgE7x(9r_QcB9)QR&y5m(`_nl9fi5{rT!UH*bElOHYj) zltuO(YGXDkiym687cNn9LvCU_D%;Wyl6f}p9M`83T%^#@w4h-KP zgW#`O?CK@FDzQ%Pg!n-9fc`sDL6?3Sg>rJfG!*{&r{w?FyeYXs7gD62#dYGbY~HE_ zbWjLeBlM;ouuOkp)?2uNGl0C@0<>X3I5XBZX`FeKAT3cA(4aS%k2^FI?+jAcJ=xDF z-pliUUD_9x-XjXS4Ryf?J7Ky6p{=U0!1mA3B|{}^pfyMbnoT!W&IH~W3$2CA(r24` z@^lDc^dvYtkMa*iw8R_2-$6FC`{|>Iep!xkg)yYK(zQV0tG=ajY)0&)*z>Tp+h;O- zX6OBVOj)qvo-3<7*bsHtAh~BjMv#(c+^*j8cta)j7!xQFEE}1W_||4>RG3D~zf_6F zsq2M78E6c(6)WXWha8rDvot^0^PvRzekllUZ(h(dKLO71U65BiM0|nN=lEUbuhgW1rDt?^+5vyJZzrVHly?5Y&s7gd+g+nYh1HFn&H z@;~&Zv-DHox{9W437bvl z`_w|McDhzO8Dc*g>Yhvk$TJeW0=X~#D_{H_?ta41gfFpN0kwBQMIDiScb}4b=8n{J z^O$5rq4$HkC{)>lK60#U*(%A`rf|2uZA?>;4K|C}i^~xn_rTr)#6ecY^jk^VFQqZE zh~h<2_Q1uSsh!J2NIJSmYWjq=b@sac6lp_eRxbAjz$<=<(BoGW7$x?6n5`Zrh!AQe z(6AkK4h6hUO-(F{r!{9~Sy=F#y?gXwB3OEV$uh2d8)`K02h@m35flh*aI{iSQ{=%k zfUd?oDVu)u#WYcgs>6N04z31ye5O^R#j|bW*`&R97cF2FM)hh|gi3?{Zbfbd>P7~v z&DkI|F)k*MpX!0C`NPeJ+~W|_`z4X(m!bqUiBZJSRX>8$t8=|8M?*{}uO+RFI!LL1 zLAJY~2E--5KNFeZDkTJQDAHgTSj#Hk0o4(|z}H^l_FN;o;?$efg$bp3r;{3MeT9wq z?y8wge=S@d*HNhKn=RUCeLm1q&59D*3PICX@z^0vb>ID9)!impD3Q3U_(_}n*`k`C zP8pLPMbU$E!6GT!^CDgg>9zh}y(hmVA6)X~H~bk}Tq5^OAMi8R2L3xexd8d|1;sBI zj8!{{_s-Y>Gkor|`!D2QR7fBL&*98!AU}<46qpTP+AmN6N;bWDPW~v0VgKp< z+LwD0kk5YbCH>Y;Esdzb6oYraeLUK{cIT$rB74>{zFGC{SZ3shse#@}LIvrY6?hD_!!4!R zn3+6vjsf5 zDtg8l7=u2J*@>HdyHf0SwqLk@qc!rCa&R5g_ zG%U#p^{&<@4IHQB_=@rt+`=!ZFB;Mn-wRv|mz%MGQ*R1@3XU0pR`I9joPrQ78@a-n zcCy`XX|8<|Fi@kP9-C$5VM1H0dpVLT^bBmtD)TAv(>crQHS-14rRlyRbH(Z@(QrNq zx^4oKNuTqLA|Y}yERi`!D5C==2T!85ZPCZUaz~$&QM`cX+3# z9IU*(6cLrtSQLIsq-@;>n^v5^;Kr-wDRiL{gGKytqf$L>NU@H0j1M~u(Mjl&9GB^H z^#o{+{fxqSFMqGx3e&m#+iVuOa{u7LyM_?B#2}z#&i;0!e5@w;x;5Mgkty-0=-XAa z2H9RcKv|*7^o<4Ze8qAiC7r3Md9J92k6A+nRkq0)ntSgn;0okUGD1G$So{-~S$cNs z7M_~n?cp2w+;ONVJ4_8@5NIt`CI(KI=%hSZmVMV)t+(6;{E zu6PnAhJwXPdtb4|a~3<$5`>PVq#H4ag}b>G*LWC@z8?QoyLvxvO^Zu?b$L79CfyxE z$y{{p{$^G}`P@!7Vr#uIrSHYQbN3{1*mz@AFnD{;Jo99whee?&w%5b``0)Pg(T3qq zbKAwoVRdlplP&jN(bUU_5E5}^Bd%(zDWyK2dBs-Z!H(O0&vdP8w)Irj5POrV){xsi65*L*Uc}7-xf8hQKIsOYZ z6@=QdJlT_8edZVU>;^qPtw72y$O=~P429>FSn5J(Up%PTOM2|L>#@x&`m?gjLd9_C z|52|sm&Ezw;eUwE|2Q@dKuQpuI57)OU4++oTRg3ou6UOHz|d&<{^S56izEQ31uX~z zs^bl=3Wi128`QqSc;K4psl--aC57^%L6mASopy+nLG3uh^Y51%)Q3W=(=4C-+j{yMQD<@LFPpc3e) z%V`8C)O#*~Y3S_sdB6s1+ES8G2k2jg8gXqdh`iZ60)`FIzg7b@>a?M_F(p%Fh3=kB zJczs8QU=f$c6dxxbJ$u2`KIElE8(>%la*3Tyn9`+g{b36Tw4z8PuxGdt+! zkC&eRY}+korNkZcJ?0i(e894ufDzZz+Z$!f$?k`wK43Kp`a*ZRfQ?M^%*ydA!Sn6}R7$q0XO-^PZ#<*E4xxO8Yv%E1Ornk2Q7h10L~G2FwYU&Be2I3`d>E>zOxN zH@&tnUk2yuuQ>yM1jOXIpzwy;R;K@3e*71Gur6X16Hdax;ztIc9byQU zkveEY&_)EX0RrALAXtchZf)@(_fyAT1WqA*@+?sNo7+j2=cux|s}|HbG86+T(}gp_ z-+{FEwgnWnrL$SUD)Myq7>_aGa07m?%zjvojn<_h&1 zmEjFj#0vt_C^Ii7aygbrl`1Oh)E+w(%L@%A&o3 z0F8PILg%z&!qf^=qB7bcmD!eT;{2q3$ay=r>ir-YD%Kuo-CD)ua>FtQ^Yr~JO!U5r z<;{aR!O4Y5MAV<#--P{oEOLr#_g8R!4=U$V<0dqg2_=5c68oqS*sD43ap+I6KJ`Z$ z|KPv+B4m3=`y@OLF8X1*lXX;6zPyx%|2kOWRYl<2MZTWCnRyEsw#f9Y>#U1-u#sKxiOsYIgNZGS zqSFj&sL1&M?u6~eBE~Sn7IY2{n+o*)+e*g6R#GOsy;kYS3>F?tthx~eJghU;Mh@&g9`r6h@J2-uEa3sB zMfjQg0!p>wCP}(x*4Kbipxx`gu6FRj3)OjV@6}#*emDKVrG0Af8@W%<|4^TPq9TSG zOT#cxm+&0ZFy@w`eq;_mFfSgBX)NjLDn5Eq*Vs!qJ3ST(rx}d6XdYuTyZ$V^of^+_ z{-YvP6FAq|g&af$+Zh8>3|<=Hx+#aedq_|%TmwkvFSRx+Cd1D&`F}ngM^J7Gjm^(k*W{$)9!pz zrPr$h&fdzvw7dEFU@(~Stv56w{hNK3?)1@NEDF4dX+5jtHmc%KSx~>k=+WjS&jiMY zG6Qu*AIUX)yU!18^JX=7dnWA^yw?{liBubOwlZwLUJS-Zlmo|PT$m?+6p5bj1&~{F zuL<^^r}?2gemLa6XxS(3l#rP%v@-9WpwnLK=bRfXXDfV6U&_K> zzY@^-6k%zKZl2B-LEsnS;9P~(CP5iNw46{QOg0xds4Fio0|wPcBv7N^K^iOpmzyKr*b+)QgA-cr^hlyp?=-5md-xQuCN%RY7f0+&+%AV^( zrsfI+UY-qrkjEctTxZ$Lq6y{?2~N7?JMJY6tJXXf_sf0yjBN9$Gg`&Lom3VuoHMl{ zPg|BMVEniXX&x1Po~0Lj^G4gFQI--Bz_?5;k!>~Dk9?&p#sbvESnMZrd^h*+`0*5l zRwx-q*f`{A%3m<@pUZbx@SFbZCi7lJ0&POdRo3WGVif;C2QtAySgSCqiLJwEa|jkw zn4OBmN6_91YB3XH`y;#5LxXFa6W^~4cr}Fz%#QQOId+*9d|-Z!$LrYd{nM!Z!r_Ed z1NOYk=!!Np62aA1LTF+s`rwZDD{3sR_P4w{XWC}3MG@1k;w3ZkQKxotmj`B>J44Gu z<>HHO>&vIEcj!5M+v6?T^=$sWHA!(B>8rk|idVl--{ng_s6wUY<>E%Po#d13L3*Cj zY8<%H*Cu#=;Q@rErpq{EsGMe?(%t9F6`!9oSh*5p4>e2X{p(Br&M;Z`?iQ*LwsOPm zg;T7gkTESK>f_ZoF8u4LQ|b$PCpBjAi;?r_1HabrI!}i~#+3xb*kn<4F9z@4^US^EP9u3vh?i0PXpsn*a6=NDlA0bx zoi4LW7Y1G=N6(kux9qZQ=coekiLvbiSX#_v=SSm_t=v?*9ON`+-UQB?99eN1u(2iH z-EzP1vZg%r0l1r(ZI!cptH&U1v8RXi51wYzWd7#3NqeenoEXrzS0_t2*Q#l`Y({|(#?+@>r=PMFRRnPypsTFY%D2QMOZ?j_l%HG=Ye5viH z0FJTT&U%3cOTToRF6Jc&ZVw&A_Svz>qXeBYqcGjD?fSK|_h6U83UOS)XlSRb4v%Lx zl1e!v5M^4`AIHew@krH6AlQf*R%xXHDAXJo{nBDV^eo{-t$ERpRTB@Y03ic+mp^;a z!!HI4h5}dAGYj-kR}^y+1n~r$t}coZRZ-`mL+ueb;M|Qi!wym+Pc6p-Vu`BoejZcm zm}ML}2}fGJ1h}l9*l*$zix12}_?)ZnY>2s|tF%?Qy)Qi&&l_^DCs(6XaBy3-xk==Q zhx6&x_nGS{n$EBP-7Eb2X*mVu7nvqI$L6YIlP4WdwY6kOsaxP+70he+5_yLFcuA%8 zHn3?<7vth0^=fah_x;~z0npMCsNJJv&3ao1H&UgNqT~baE~o0rB2&U= zlgXjybK!0dX5t18(cz^fvyrw|&9NI~@@cEUdUsmpZE$5ec7{9%vXdc8(uLU-X{y;P?>gyi_U-W$JUGReAG?s&pMN>QOF-FVx%snulZPxo zZBIEvv&#w9U=9u4w@liSnp~D<&oZ-9pfPbxf(&q?c-pVHW#8A<%|Bky?LMaHN~U>d zwaq=}D1Q_QGDqd{Nz<8x^IsR5OP!Nx&NLMd)~_9Ws+oBpvKe6)8@P&&znt-62uG3y z^h@5K=sWULSGZniOjIv)a*faA{oLg|EuHa<@pFw=nA$poVs4v0wRdbj)tg~@g=SWY zeF?rIv*WuV-!dZHy(-RRpRZGSXU?D})H?Kd8s$Zy@&kbmwci_a@we^&CHX-%l<)jj zj85kHDF1vf1*ZUL(g*8vW(bS0{hM|)E0VO7>4TZ^_7@+dTsO-Vz*>3 zHZ$xkcC;Sef$$nBRLR*YTx?e0Dr>>KFeguYYa2)J-O4xH9hC2~Guz z1Y2)*<%luug#Kyh^PGJ=Z*R1V%RFx(3=15)29jPcAdE&Lc)#u8nE>9lfm&_P*?cf}21o9=gb<30>( zk=m!v5FZ*xcPI|(N}{Wd#Y-f3O|$OLwS{dCE9|Z|CN||G?E0LKd?uINhhXnE1=?RN ziK(`=U!Du)c;4hJL3zb5y+q8tAqKF+`v0-_m0?wFUE4fOLnXba#q`bV^7{cXxhsagMUFe=`&N0Wh$30@r>CzHD z%@&z#L%}f9>*6e4CSy;q>wYT3i~ay8Hj>nNjsMaz4NtxwwR$P7`6Ygx0c8|HjE(EV z84n5y6*-?Oa<^WyOqTENYyp%Ws{DkS)^W1fGcR}LvudH-KGC&D zBE{>XN-i%cs7-In*2P^VTNWdgC5j~elu2cqgnvoLVZp}Ak=|pWzdqU*GjWH>B~ekX zQ~RQ_gpn@zbXax&dyM7$&>vVE)iY_zVk1ecX6UNS{9mcn z60zz&Y=3N;)@<^u|EPM)-QcR=nz1#7uB&TzI7-sT%j=FeM8(xK#74DvCH;NM=srqS zKR3SCl%)U;VcePRo-MP%Q_UxHHJx=ne45nh%wPO4sZU^Zscn|8W_e%6`~y?sjSfkl zsOk!gk`3NfDq>#6?Df?!(fpF_u=0j!!v)83MlGR}vn|vKK=~EVfMM$5u?st)N~Zyc zBTRsUYKM%Hnhl*5*Q#U_=7AFKWRZ>aiL_cQ^1h`?QEd6z(&$RHV_$8V<5sxHLCrwm z@PwR)OKgJhw9?|6I~Si3$#06|;7IDDiWcTXp?ne?zl~le8!#N}MJQ$MTQZh&2VMKM z8oOXD8i^#PZye2L^%Gf6qSP;BE@F2c=o=7Y~{*^WsKw+19$sFbo+4(_wz5+p`=Z>`EAo zY+;hd?WY@^%9c-mB-}oV_ES_$Hg%9NJx__ex32wTbsE(?l?r7Il{YQAK4vg368O}O zoWk`p!KE0D)U>q;mCEC+*m2fYFKych zo`f4QwZ!)PgTB^{K0$+%EV&;iNxd0XJs&XgcAI?0n03jaENnKZ)0ezi&i^2rF2F@^ z+;yE-qg+Bm&CrZj#QPGin6_Pn{6db2VAfxs*TW?2XV`~Xu`0WM{_So>FfMQ9F_eH@ z)V?oUjQ1CBZ7F`<9=W@rSf*{Y=;miF5?2+1wP$7v*u`d!YwP62xtJ?q&L*dd%VE&h zZp_a$|LZv#9PCH|m~>)v8y5D=j608z17h(SZZjAuC9g$GpuJtv@s9Ts)peC9mJa}} z%wiF8;(p?^ilN*j*^Q2miUM#&q$AM!>U<=nTixVdVp`F?xeVG$#N>kY@dIrdhr)mU zmHXhPN1S!LeCh+LKu&N_#I}h?9g}a(wZ-n9FnoP@gJ93nLHLwaX(=HEGW~Qx>|;?u zr-=44JK1k7iCsz-)PlJex~s;2ma;q&59%8nnZ$IaXWf3&BkGW3<5x4TF^|zyWHJ(O zap>#ZLP90R2ji?$tutQlQVe+}KFmz)|DNtbi1TJDRwa*hLbOVkF@+rcg95URA$_r? z?iQ2yRTi5L5#Vp z1j$3126k_;Diw(ays`q#YB_RnB|Mtyo>C(h2AGIECyr(X9jn48><(zYFV8}#I7 zqfQVqOZuX*sqCHf-JhwmD_^T#Otc3{yow^`kQWnkoHY3{P+W)|U(ks=#`1P=F(oZK z2p{uPh~~SQq5koQj+ak;N-hG7Xc9G4={Tf4BQX0;aZ7_VX-9>w@J^`EmAJk&dr@?} zcniz19%Q;GI#&vdI{9oo#*PIoXUW{yJCuZ%$;B@d_p7|;8Xa=*r4iF0VVNF$V$Uw+ z`~tH!EQ8!gznj#*iopG@5A6IVg|`*V6RTKtKo?#+FOH-@PQ%$Y{ecagWj(KoD9|*= zGPZ2aP?7=1(1`X;OzmdJQrm0%!0Mcz;cC+phue|l6Utp7Z?SWCyCX+>W;k)*+?I)~ zZQEz?f2dDwG(KC~X5HTLEoEV#E>Xtk!%S1^$2QV%NqrjnCL!+!M%ZMNMDb`L+aC-7zqRk2v;E4IheccsB$OlryHHxx*zyA2%;zBA$-dirEof5q&|Dk>1k}w^EOfz-c0c=zKhP{9p(E3rs0>^cEHzo2Q%=lh_O3OEy_%z;7Ag~NzVxurfaQsnH&Yd zPh{BJ$7(5U_mziz$$PWw!W}oeNq+(sVe}mqGU!d-tS~!k^mw`vGklzl(wF*j%HRv% z8|Y>Yq21nF>4(Kbao-o62+J>g^4^T+|1n@49acLx6xyfR-RFG3_oBGz)Mv)NAWpY! zpU^n%g?{%_wT7~q3v`ysvD0jZrc~4zOnTwo*TRE{z%#thAAI6mM%9f=}j6Z zf#%BadbS&6Afi9$lS*jEMf{A>Cv?}&=3}KpCasen5)JWw;P1Dg_r(}=bT)-M#aiFZ z;?X5B)pBb$qAKENNS`F9;V+cnPu42;$bV4xrH>sqOXerc#m9!uvbundklM9wT9%K^ zJ1j1yDhw8c6_Nx_-bm5Q@PAh3^DPHgOhvjG7UD0T+E}?6D#4)pd0Ffr3;D^Hlr|!@ z?%KVdt9w?)N{lbKKGCGZ=S9tv_iRBsI+tr~2JlpaT-2rqinBr{Uy%l7^Go7a_(@X> znup91rfX&&xw^;kN+|FVSB4Ey-)(fTs8kL=ugOhgGQ*1PYUb17)0a*$Vgl}xN9J#E#ce)0gQmh31a92VMoRu$ zN+InwT(fgZ{{#A+dJHBydAfPLC^gHUDX4~;pq2am#Y{2GdVy)}x~#xB;-?I+l|S=D ztVgPsrFmG!3JQ8)W!?bAiB|mDFq+&DaWPKmt}Kqug0TqXaA83y-QHT6EJ;htNUELX zHvWTw7n>6>2h6u&DSE**vo?=irLux{u|jvF4{%)GFrc$bo5MzY=R_hmW0Dm7nIF|j zQpzj%e4}IZmlc$&3|*ksxYBWTwK`ye{M>eFY8(;8M-`YGW~lTxE=eS}W``PnX{4M> zlx!|8Z05_8LLtGNMhj?hdj2CA)P~0IVq;g)@1__yzxh;EPN}L3Zqqf>S;UNI_&LS< zLY$8_DXsJK(CBt+h%xpu9KA$??Wx5J;tMqN^J49=x{k3b<^ilxqZK<3 zE86Rg7tPJ=oyd5l_TSqOGX+%Ak;~L@hrcnPHg%+EZ?>bJ)BT!{p^`#)pq2jCkFAbE zW`JRRmxkwjY3K=231f$UJmrI*a z^IP;g8U_M|{?ywMrwoXW=?Dk&)Rng|s`+3-M59mV3i+YI5i3kK`tG%oYk<1t#;YC9`kZ zBo7pP5`;JP@9AHp;<@E2+k0U}r^^}bqENV+Jk^`zw!qwK!N88}m!tN(=zL$6=m>1p zI|9=MuVhW-ZLBgH%_k&~l&Z`nJ_>n0o?q^%>nG?p$L8>y5i?F5ElaVNk5X)ViiJ8s zx-d+eTCABM+H|5ObPUtqjN9K-X|aF5Po{05I%m6~o70x|?;YeA-T^Y+yk7S}qe&U( z%e_XQVeX(gs=eMutM>K&vybwX=V_XHriNY$V*V6e~T;7^$_f@ zdyD-KD#IGs-oE&}jn8L$gM#fHO|42Qwc{-K6nul&39q(Y%xY&dLtUOL&{Mi8>m!@9 zBjxvJY}soGmKok%)6f}RXcpA6Es+u$!fF;=-Q4VlwV=eX%G%K{6;US2y#AG-#04KW z_3wj%tC+VhY%a#b#YKfLwioAjEG?uO5C#U(@dwr$Nt^iCl3(GZPO;>a&|roM`Xk55MXULV zK5Bo28cdSLD*j0>STxg!Rzh3+lN&Ni9cKXBc&Q2>x^1I~c^I{=add3P<0O`pALADp zi$te~awn1lc)lAG#7%TX;*B#@Gd`g6;y(y)FTbaWhnY+FB)7wi{!NZuRoz-St(_91 zj*DMHY+4;-i{EhE+8v65%hgXywsSEn6y;`H3-#_w#@!@Kl?n&nt27$v(=1<)N&b^E0=!lhP2@0p~Eg`ACc!L$MpP8OQ7tW#O+(&HB279 zPbV;0a=34qrm33oz5PA{vq{xM)|$*~W|Lm><{7qD*R>_%8)M#HljD|lnDUC4cQYs1 z8aq%FJ&<&j`Xb^uP|hh;zX;>MKeBRzXM(HoaKkXIad36qD&4@2 zE+DOBI?eU^nutb`J4KE-CJj^A2; zro~)08y7y!sT#^>*Bs*7BeAkt5-ju0Omj4Xk+-FMx@NUAwPAG6x``xh(>`Zc>-CGY z2n{0NVl&?7tE>Bs$|n0b5|s>za(5shgk&5@O(LsIL?H#p!qK+T1&BBJAdFq)HT>fxw<#ob0V;{7JO(d}(r zGtPU|+_JdROj4pWl&tCj7aZYzvbW`3RXT_xk&8r;nO6BeiIz;#sIc3v(1~||HuDu3 z(FdhtFnDc#zKIH{G5ure@Ma7CKn_*~&M&Gk-;T_b`9}JR&+|>BI$DBvrMJ8mH=iVm zwtUtQe+bUp5MXi4yLM5^EO4h;P%*|{-2b9!g56{?I}OTbCU;}CD{kbJ8pSWnoOWCf z?FM!>S(OR}8rVqU#bT2l&1AM0>zdIYTozfriFQwZq;+h172`b}K2E?l^;Zuk2l5__ zw|`^~e3wH$Hc9(5IYQKUw#KOw=4O8$cS3eznkgW{eV*TuIPS`(dcsxQoZB?6)11jo z&2ot-iCZ=?p}za<^N0N{!8?ncIf5&}-5VRkhXLos`P`+vV0NFJcZen*#Su+D<54`^ z9o~$PR)yKTF5Df)GcJ3wlmB#Ol+k z=G-|wbKyi~<~r%(n~WWj(_FZbB|=#;jDHdS3=UkzY|xMwyW4Wm;H;q9<|g+J#-&Vs zty+DbSmH6mO^)t`yzvCpO_dvkkJKnf-(bgk=C51-IB2*^a^F_Uc8=kbVO`Dq$Ez0< zG~aRUWINtSs2h(VzmpD5+O7I(BJ@fo(g7REGh!C|bED$o(k7<0V60ppX;6Bk@w_cz z#0&JhG(+=~g)BeS1wTsGeRLBSb4oufclI6*a3&*KeC$Z?BvD5DfOMb8L48S9(BF4Q zN1k78pN~GXu*G|cJTWmKY|PpeH_ek;Qf126A9L#I&dgK0edqmhBM~`e?d!&ew~amr z5U^U+i4*$ry?c*WyN^e_$5}<@YDOYz#OLmzWE8#Mj4e&H6^e0wXADP+bZC3&AcY%F_n z$Z>vB?y#&;tJHHW&zHy3{#Rw{WrYzqI6C|-(dKcJ^M7VD{z4ujQ%*{>NiYJ(hNWda zvB2q%`CJ?K*WmJxlhs)LRJ*5?^#IquD zFXuAN-jb7e8B9Ca_%3B|7g`_t_OF!%gN}CBN0`%_OZSnzqTkP*cCMT#P}UD;{+#sx5TH>lG1^56C4H?ei9jc_;bSw5RPTKQ{Tj z(f6j_v2Aq>$RST~!RT@>U;A*-`AJ0Mrl2Mx%K|RA2q582aMQg$qaoW0=KCw{<@WAU zvtQ$gcdbU8C*P8MF{ZcP|B?N~A!agl*ZZyVxO2l=qjKbd=IpI8Rzkc!n7#SR@Y`L( zYn}Skt0pTyE^@+_y}o|gB$_lWFB>6h@;VGJw5*&qKi`=9E9;=H4CQsLji>PcOI}y~ zJW|*Dx#w>_lJ!;|jyvmS*66R3yC^@%z-W_vn@E)OVJJ%CZ#g$PHHnAbfvu`O?{ng% zOO`A4hxckdVxD4>@0C@XX_Io{UFH74oK~rDBfmO>(cE4}z&i{JGf-Q(NS4M&zQf@X zXDzjgCZ)7m*5laRSszEfjjT?W;i=qtCx)ls5TvG2Z|sRk+4eRkuj(+xIC;Dg?>MnK zA9Jr-JEBlqF4xB0g#L~Fn*Cj`u?(5*=D#E6HyPLtxjVTXBJk>5b0;6v>XXpw35B<^ z+g`TgwSMaLWt^u)l3@)qAA8DD;G~gi2?Yamb|c*mCiyRVU14ym)%^yas^xQ-Eaea7 zN100xulPB!1ifQX~h1@Y>n>NR5ToS(dVnHo4}wKAtolHk*O3ZLU0iW~O(60q01t z<1N~7WY{|qI8Hgw;D(kjyYe_or@4!Dz*3X9Hf5&Y+phA%jBOWV z@3hEjTANMrN2E98Tv@HyLO%u=hD%WEF*A-O@_%72X=vxTF>r6teR|U~98)h8A8z(W z+|Z5X4kfD<_2W`HT&1Zn`7d;?+xSBYkarTt>@XOZcoh4Cg6e5lU6dhtMWc;%dw-?Z zj{xc$fmu1qUpB@uGahA=cPZ~A)+T^x4*|<(BcuBF%Aw7TBm$1bO;}{ z#at?v_lWJ;%+IJC$vLE0E!TIaKkUfc68-yR!ox4XE_v3vC;!(LGGfYB2{w{XmPxPW z-FH@rodv&Xy{;?ptsr+*crALk(x#~F7xRcT$m^%Hs9W%&Bq+m@F~)RSAd{=Zgpmaw z@x&Nt#MWjkFt(eP3fV-IP_mSmhUmhpXklj1LR8o zR$^B@635&^?6{RLT;PjvQQXR+PD)}gvT(;}%~j=JLBy}07yJcQ$WTGvit_uvoP-ow zOmK_{$LYL$KSQRJ(<$c zAaF)Es4I+h;L=G;>F-@(71d;|4UhMiN7k2^*F|AUypfEW47_yy*}Ws#H+NAowmx9z zy}L&IYuf)#&cPMTzN|{cpz)Nfet&$67s_s|0K`HO^(;a7P(7W#UR=KPQE z(s6vVMRLV`hoPmrFMX5gHZL5^nX&l?w4zMkLRDgrLKYhPx^9fddP^uS=waNO%gC6R zJ{b33eoR3{mAj9#WQ;`JFrM_e=O9W>$PIfsTmY@E>o81=^qdbTWnJ^!+`?vmad7bJ z!36yf*2*WIvS(#nbemb9c}&~Vx6kbfzC^geiz^e{pDew%L?4du=U*3lJtg@#cPT)f zzNx9LvlV~cg1-^xHS2@Xck6}r*B1F#b?9E0SU(zf`$A(;{rG$GX5;=^eYp%;Ws==G zc>IRe=& zzr|9eWOC)}DqEFt(Ah>3koC65F)8sXUT+eED=&!F1*qq7Zu;_TGS&J!Ym~fJ)?~De zq-EYUq|EI1=&y}48`E|A?ebJYA#h)@h^fTz~f&j_qE}Fhp^gDI)jsecaFPL*27>QHuT)1$4yM3CL4qQ>^Qs)3a zQ<0HXB_7vhdP|_itHMM?85-v=DSFc`h^IN!De7n4S6-mp4x=4On)9KZQ*}_+le^QE zv18muzv)|&{*91U<$I~xL2;c4jL}vDmLA;@?MdaEf*1I;tl6w*D|$wB&C%ru1brG@&uk zck_Lf7sSDBe>Y*p@Nq8}Nl(wldC~w{jO6;ozXAv@s^HK|HMRAuel;{Qa;vYIQJ+^@ zSl#QN?B5?ltq@m z6nd91l)iVkin73Hv?-3LlWt^DR4E*3b`+;o^yCsl|7+jE^Lu=-wdk#?^wPxXUOU3u{1rU%y{*_N?YOyv?7?0YTe)zm!`xe|YDJB4xU^9^_o z!VR%?GxPQ}$&iL?;XbMH%5n%$QDq}(pE znO3Nis~2B)$$~qGVpU~^a?^S_cg;AUfAx34Qv$)i$g}%R)&JEYxIc!Wid|qv|E6z? zg!PnayM`QUKsk)jzfhMXls1s&hJ@Q!K1sJPE8}{H4A>2LAI9A(Uyv!7VG%9w#a1l7Y1`rC;5b^5 zPk0p#tk`#4%OX+@HuO}pl{KW;M$OVxKMg-6?$ccx{>_dc0@>hQr?e$gS(k3PVyFG$ z7f)^Dv>J-FZs5frZs#Pp8n(+evef^~JE^1OQOCqfR*GFH(#3)m_0xiq3*$Ixe7Vvc zz9=oA)~jDr9YKabhfYPG!ZxG;u{Ho2JYMC*3ArFLes3O_g3C(ZFiD z)aA>vhX-MXsu{OJW^YDwQd2doFV_*aaG~T0At;-G3Mv&Et$Xcb%(HDj6XXuyOtHDKKD#%-_wF@T{w-X_f$<1W;trcEvy>+|gnn27%z$;~)XdZ2i~N`1+s ze*JscEIa!$h5XWQ`X+uG=$l^W`9IuN>VIuZ?^+M#uIP_IhQD_8>{kl2bY#yduauDn z%AgenI8fR?P13?gpPWFe^bySJm(fq#qTLo7ob-xlEKUEMqPoUs)PnO`VSOsVS!&1B ztZ^Qf&Bo~|JvT=y*B#WEK*6pcFKO8)U-UuB^xC-5F!XIdYs+b2>)Xt>yQi1rLhhJb zc}U2Om2|OXB?+^Htg%6#R~h8LzdH^>5gMaW1Z_KZGy=sKqE{T$D&k21K9U zdLG=b`{S>Hk7sLPYY~zJo}>Qsw(qt>TeqB+x}t1PyO0ijp+==@$PHiP%)NY{1D}wr zxLql0Obf(Iis5+}U=_GCHRNYIh%8)XJG@MNX-o5K%4wJAhQbb63-cQ@LJ?;Ym4oEI zk;^b2BusYZFvkw(_yJCOv4=WEG^6Mbj%kB_DO01IX%1;4(_vS$s22eg1i10Qq??JO zrV;*pyr~sQ=s9C^gvbma+FNsnb`wG8UJzK*irx?+YGHF5gjW6 zIX(4H@OE?n8Ks5S5IMy0+JIgi1_xyjbb2dl$2cQ2Bc1}R%Ki&HO_pqZO&L8^+HWEdT zoYxO)2;#AYsa<;7D1EE7zn_48$iaeV~lzj_lDo`?`cbhup|!49qe?M3ulD}xeKVF@+?W}@C|anv3PmuEzTyVAYi%ud~?92w)N9}d4ul>GQ_p3aWogPC8Ctl zHBpMCJp&1N?JU215I&jaJQQZz+o?|c7PTF#TfOM;mkY!n$UHenJFYzb`@$8vnBY)x z11yfQkN4#Q9mf5YYS0-=K8Bp)S*=8X+U34W(DOV~%mDQokq@?8oNHd5`&;K=Z#$8> z@A2!)I{gLaiJa$B{q}b_u_Fti(GtJv6Wng)n3|0RCOgWebwFAM=91H0j z(!9{{fXz@7-Wv*$g*c7m)I8P3Fiz$!6@&1c&(=snSW{i8YMotO@f(NkT6?5KFNWcr zVJCzT4g(xsaY5$W-mwf29|W#nq*E`rbA@NA;>Ap2f}DYZf&z|Bzq!a<$!c?=3RnRy z$5hm79k3BHgz@q5w^>ic9#Q>Jws;qdiT`8|PL>8<^zb$kJw3hoTAN7i{^n4mk+71w zxzO5dH>14bdjV=>a1?SFS0nMk(z}B305v&_Q=`H$N;oZ5AhvdJyq)&CJfqBMhtn1}@~gzWQ76d^~S` z^5;Mggr7cr8h@S8yz1Ir>$x6D6%wR4Tv4ZI*7HAdhcmz%)Fs0>G7;1nh6^O!EK}Q$ zDB$D05V(%o7<89Rns>cZlDXG@u~fI-k6Kn%)|;B~K~yJF=(950FvpGF#IKsLI*R3H z?#0-N<2fOt`o(~V0p>t6@c=;zC;y}V!7!uqwgiFG*3Y)iPCu@g`Mf@cc&Rww7L9Kdp%WOD<38mMYO1s~|NWEU`^wR&m~6*X>GC zX)Cr_>`eI!o`n__N5;}8(-kPZ2x7K;N*%tFStH0Q>JsuG zkjqqG{5v(b16rSjqC3uS|S%bW#$HS^54(kA9$rTs9JNy;zh)AOnQH zozzm1e7rL=Gl*&lAq*$)WsBdEsK+aMO4r)nj#*1!A-T6;Q{KSh+rUsv=Uk;1pMe2q z!V>iqnI9^5o=Fk@fPby2sR@FJmd`xclsLBuQ0KMW0L z!wq6JQFJ)m9cp25FWvY-YX)}r^XJds{P0L0E+CPKcz)0L%*m{4;0wXO6RKM_Ru#$+uY;#P(Fxa<+?}l~y3C6xFog=UekZ z+sQcT&8!9n_gIcbq2mGmH-J5WJMYhGwUs*`O4g2~<`3G*Dk_X5IkxE+v;qy-M}B*GKT6g3BiSkLs@$4`Wgf+JT-X=Tzo!<7yS;aO~Jy1Y^KU#)<29Ol;?`67_0M* ziH?pQZYKuo0}&L$~IGD+)SpY<12F1*R$j<3?lMJVwpm9{i+-f!p@LlI9@kcxgYEDFR|0 zdRdieemp%SteH-v7!fZ|B3?UemKQ+UBd^dIsDj!=kH?6@MmnHQ|8MfZcroTJGV<~M z6<6T$JKOSp7$+C(E)>VuZ!SOt6`7Q6@Wm+pU7ZIsLV&a#F^ALssTzQyqNIl7$$}6h z568S%vbWLzA$$%s%J<%Bf2W!@y~Kx04z@S2Hr+wiOAWkGh1E6K!iuto_1MIC=1*`4q?}nx8BsN}Lj8Wn&4D&xJAn9}L!xE40|>jat_Lfc(=wnTZg+KSuutP*>kj}|s%np% z5!~h}I1@!mFIf?Xps6G6zDatiHPG?uqS-XH*xsptzu;r(>8maL{5T`E{0HWHvs#DZ zrxnqV9-wV1MI!N^!0-W_(_&%_y;9R@d%RP&$YwEOh{SX@HDCHj4~>y1BVOp3=Jh^7 z;Z`Ylt{rAxa~*~G#))d=Kw8+<*@<_oKZp-huLOWwCxCq;S)PjVir>(bmAwWfQ059J zBaSdYQ6ow%-%M6bE%ZlQXQKS*;ePpHAVL^_1Cq~uS>iv*=RFc-*mJ>t5Pt*<7mWEx ztf1%xR{}N9ajO8xjt}9Qv6eNu1jUJZ7*aq|K~B8+C#hV5uQqctrj;M;NNP}`Py%;< zWH~u$5R%Jt?{!2TVCVP4Bu;C0MG_hnnwrABp;Nx-7%ZU&ATQbRlr$u{DUxB z>yf}GcP}mxaNN0ZHbC^!UAY% z!2Ex;K}8 zeno&nWgM`b$oBO+)UJyCT?H+qyRJ>3`3)DLFpBG?32C7r}=3?UC z(g1-X99HTO___bJhuC>c#%1>rHuU6mswz>LnRl=7uC+q!PToEZP-ciTmaX`wL#zmc zs4EH|S>bp9KJydF zc>)#q%M@&FZLoubHHbyESY)z#DjdbfCl zxr0IKOFtg-PqI#>Tmlhu705Oc0Q#C3ZU(djVD^Wp-fRP7#g~76(b<`S9|`mAt+*;VYk~{Ahfcw$~@SaO*qmMe)wg! zo?9TwD(Q5k5cyiRQcsIuOe!F$sW0pEC&8qW-?3Tf$G`Jfpk!;rJ(1TMMAPw7p|~JU zeEQGqaX7~PS;U>Py`yI5;umhoyU9gvVsPUg_X4$L~Xc$ zp$y5{CjnKbmXEIj81((fn8xW_f%6LjjAMp;5#%Bzo%v#|Po&*C4didNGlcZl*>3>! zoifq^))>M{+wmNWQu@Q!tNc755CwwA<5+9GuM4)Do}(=wAmDRiBK2uPddnU7B06!V zKS=&D4oZ#3O*|znN2_>EX`bZ=wcqr8FiBgTkbMRYj}n?chYmLKz2{DEX9f+}PDP=X z-&!7zkxbw`9Eg@)*o!Efk1Y=cFWYcVkL{sBkp$;`53i zqY<{x+`@yEo12T^ma(Dqi>SzNtsTDx$52LrJMWDWo44M(AOx~%#*6@~jG!E+-TI7w z2o6Y%@1vRKepi&0m-j7t>CR9@1*P{85D|RokERyjX8&hlL#dFd?sTpAXwTd(Ra%gc zgXp+&wX9?KU+|4v&o_DvL;%vGNw0%6xyKm3*a?S#|1Z2nLv0LYXFPuiAA_-ENf6!{ z9iOIAT$5wep;J7cCjn8H*1O1%ZSik?xhjVT(wp5?{D<2u2uqLw{(3j|eaj!0fE*GM zGLrH2ihKFNdU|5%qeqXbp!6sZh0T#Ic~abYu{7KRQXA+DNr2A-DlB)}lt7CUwhO&P zHSY=dAiOKX2Pq*8CJrS^JMtNerlL7OS?Nf5rj$>DT$=6GF`M#T4Fs;y4%8>0YboMb z5fL9!UR9vrsbeTjHCrG z$w--f>+UoS-I>nBOu(~_e8yB5(*3uW#OQB?bK96*y2+MefuzFv3sx%7AVVc#&_3A? zgjHaG>?`&=Vy728Tf?t|Inn?x>H!J6e{>}bsnl-W&7HA~!)h4{ns`7G|CBd^H`4>& zV!`j6d^Y6;UA!FoYaP0PEC!cxYFED5YPKo!Jt6^v))Ly#y@!gb_upNiKaJ)8 zUW;8Z9vRRWBL zYcV??cD5{(@4+MY=M3)ZRK1rR+NohLyLMzhDHuSO0jP7ui)H3ZUoJ3i7xZ_JwM2uI z#(18|F{DoQLxXRw=G&b;_&2I0P-i9am+S$eSYn%@zorUEDy5b}PkK86QAN3ul zy{%4u{)1&N=PICv2X*N?CtY>7Kx13uGvu>Jzx9!HX{|%1_F#9B7#){RR7}`mBRkR~ znAxCaCOJI`dmnNL%V36#>>C?>&uXXIVq)_0tP8JSK32$Zc~GR8bXZW7f(VB` z>C#FAV=c(75Ce*&&qVegrPcu4t);J5bt_(;Tkf}Lp?9*sFZU( z*)DOgT?uymxJR^RoP22_^jScMWuwc#LqCMUrPz97$8>LeJo<~?wJlI@CxYq$0fr8s zI^zXW$XpP&1Diy9$983`GaahPdxDZG=czPID<|-yR-Til{>QIAdWf1sF5AdW_a6w8 zgoZ#y-2;~MVbNidyRE(5#|=uKkpL?@pe(YS_W8#Kl2GT$b{B#@Kl1`=ssnZPYJ4CY&h5;!WF8K;L<67ny;3$ONa)>ml`td6rhPQt#to zbn9pmABBeJ^M^d4j5~0PzBgphzB~bu-p!{uvj4t`A_L?VpbV#6v4mUYAmAgXyrV!Z zZbpJtty7uekxI-f5BKPLc>qrLnJ~Sg^H(N^7*EuiRoQXI0GC4#vz-Vw|E{1^4R))r{}Vs(A5i{V9kAYpCc_h8 z+=77dfH_YP8rCoYiPvuJJ*au)hc^%A{CfRA!WP)YfNbh0^$Bd4v*S&A+0M)sXiACr zM-{tpMGr)9v2IJg2N`^vIXkEhFE5W3dAK);K5ILZ&n~X<~KuxETa+ zG2h$Oae z@@nsjb_>s{fI(Fa=sOdDjLfAQEQY-v3jp?_E}?*w zFHxX6Ol+oc0g&u1z?*zdb0&PqdTT6l&=3Ie*Ct~qzpc3Hy!91y$gMD`@;S~H5ABlQ$R>aC?2T?Bn|nY;Fw9%HSt(IbD#=Lmrv)_vo*)h zqvG$YJQyNGwt6h=>1P{zEMK$OEYGcN7-@g0yED!wptxXn+KTsL>|f zX($H!0B40^Icdkm1`t?*&FyLFo(OxssS>g985cZF{JO}%958CwQsz)>Ef47zS0K=!UsHA%&(yX#}ro!hN>6Eee7Sx5nH=$klc z;xMDLON137NFc6gTHIT23m-4P2~dClG{`kvH3ZfOzLCM_dGQ=1uGvtO+FDyNKnQg@ zo7CzAus(Olz~FQ**C{pqhy}$T(Rq1nzSZ6$MAvm|J)59d_@#h7j;QCi{hwEzgShq~ z77Ri3X@9&6qT#NCh~Vpgn6wUjx+9?$@Y9I8Q4_6Q)&A#SFaO(Z1|VsJt`#H?p%6_j z@Z(%g5W$z()Y~Qzb2LzyaaEbA^9z33RB6YpeoD*bd^dGPa!m!3x?` z!04W&cZ}L&Kc~>`MgDyVJVP}ww{F=0Q^I41=Z=DQsB!D|nJ)lsgKv>q_zxW*(r_1a z)pYhg&G>TOo4`A-OVtGGQvn3j8yS?v6YyCKAI|vHe7NpA-O|x{szbA07$9;l4;t1V z5R(pRv2;@ts)m8uu}9~Nbj?y7Fia+3K=J>);2Mh0tMmw7dtCJ&pmK`|*uv?ub!!>a z6`DS&pLe{Z(+^XfNa%PBAO60=aSJK}JbDM5Hh>mxoj?t1F({N5h>AgTm|%`{y+$S+ z%a9KCUlR}>g#CrS7~_lZRXL`Wr_@Fus^bXqp<=-1khAk`ciOZ9QqZmu`47YKqB5`a03RpV)e6*U51$x389=6!nB+t6oOhX#6YPfOz%=BL(>pja5{G4uWU z^BpnKXpKk1Kk9C94Im_$4#?Wj6!cF_O#GIW1px<;x7Vazz}W-mATb*>e~_2vr0CcI z8RYaDKWcfPH6T?r(9V?pSN8Lx{SwF@H0?{J?Hz=eVtmt&i>>du?XOXkzQDGD-*!sE4u#FAn!NPdCkuQv-nK ziF8*vTSOgbo!#BF_bw1(A8yt1%Uy;TDhSQJG;9X`0fci%?#Mo)B;5doUlBYj-?s+7 zz35bDnZP#4q0$Z+=sr1ncP)>)i03kEYamiDX>tgvK-iE={6{HK=`f+jBwbK~N+eLy zwAJT1+*>`JU|NAbpL1%d`fzLkryp94P$1R|bq6t}^4CEIdsGy|xV2;s2WgADkn8gr z+N(;?o2&skAk)8oT=$IPg}TeG%G42@>6ltCBBz1aqW~09m{Zr(hISOypMOF5HM$WT zN;iX2F#o`kD|bh{lslBPi7c2sZju)$gzRaPQqSpZ!5||6O$oNy->FwB!(<<@ln2RW zOQh=(5GP(nz5*g{(E~}TV(23PQP0g2QlCQ%81ek1N-*`AyoM{b;{H`$?7C(xkljt3 z-R+;`!-FW)zfF}8SWF|;nQ0pdp+df2{MuYF$w9K^+?zfId}0 z;dFTrwo56*tWMgJ;CaxuwHqxJmriTqan#T{jeP#{4Q!AG){3{%0?~kZ#kmXrRW~kPOx3?0;X#ohA;JXUlUT`xtjmKL{jTJL)e3JzBwCp>ygM_0$Q+ zBcrDPZM_RptesclC4+s80&7n@RW}*{1D{K{{*b1PLrDYOy#=71F|aJRfAbvyOmt!n z#@%+bs$di-X9<1ff;JHv5<=RmaMFhRa1aoV`rYjy!n3vUL&f32;$e*#Ww@UaFQCu{ zkis2vnR7_V3=hFa3%<9d#OJ3X>=#@?zB2w4-})g9#adSF_5Qv;zkj~t=y;E{d-s0Uv+n!4ukk$3o8%X;o#=#8-g{|rz63VwY*QLA zZ%*jy>L$Qqty&|GU;b?>dX8qXgqo?DZvPTx7-q}TSrX2?B@Zn8rtwXS3h9= z1b;$1R6g(eViy1)&gfpjV<~}Cv69SSqMgYgn!Cq$Ux&PE;WR~FQTWRz1dkO0A{rJh zB0v5|Cdo^6;J|^xeC)rR&1d$Gz5>iJiu{f+IY$f>cncnE{tMMuLqMGi9jarwnnMR+ zosYQTaS+uw#qBTtes$b-5Bwy%wPA~&{^F2EXyXNKZ5D)2UUlpY`UW4S8hsFo#vvM4 z8M}=a5$79bDD*Y9nv#Ap0}fn{5ES)VcQ>=`K*XliCj)3P=$w+*8S(bC&KuC{zW26D z@-=ZtLi6R|Z*BKTKe>iXyv_R9{arFg>URLzs}twp(O?WRyEHN|9e*!+?)c4fZ=)9Z z|Kj9e1|gLRu4*|+`pG}ZAX;B#MKH6*%#xk1g#zhqTZ4m_)ExHi-wmsshRxr7mvt+Q z5nMk8X#WSKjWMHGc<5;M!S}=;Dc$OKVK?*rgx=JNvxjTGetn!(ocO+l_Xl(`p@}ZP zQm>M?C`Ciwgd1dIWfs0~v4J@Ioai(uAgP-JRVPR$)|k6Y&a=IbV)gT`3j>bii$fAD zD?-edy~b6e<@z{w4r+Hh#2^X-Bo4$6_eQk)nc@?~4vTQ8;Nj35+!Eulyfh9o!?>ik zfB>CkD+r7%z_nsv1P_?MUF}&8e22cn!v+5WYzLv5z%0U-v`^o>ucoHvfeh+QimVv9 zRVLSOXma9>Toj9N_$ZWqxu6T3*uN<{-lz)B$h}6=JHopkTAJzZMvhD*aUA-0UI6wp zK@gdh<_tKMm-5S1Po$-w*{62>p*ZJiGKb+tg?eNI_Am^h3+fhgD2JVe?tvZ;3#vs}Gz(_L(= z)qx;zWr7!RHNWXH*{$`Pydglp@010f8T(f|#s*FfW0S@hY5TS&%UkFb>V|6Qb6OJk zS!pYnwZBOCl^iRIrGnLfW)Jk)w*nO5<=Y70jkGy+xDyA?F3OqbKf5x9NS7{bXa4|F z&f$2M5c&~uVl^<2%6Eo$ESR7{+)H{TM;dc0DPIWCjL0P{p-hYr$H|HA=r z!^z)DjTS;O|;J0MtlWIMHsFs1umnu0nD=R<7!^i^9bzPPe5z@-)_;=i40mJzOb4{ z>T{GOdV}B?imtS;0XIOoal6PKG#bC@6Ds3z9hJMp36YittoiV@A>Ti?5}$ZMe1?IO zUyo@De-j#f0=CaAav;`PC z_`#6DSgRh)oJnSJP&xKZU7l?f`Cc>=+q~BrpzXzQfOV|ZfDR@Mj7DNoULtpARE>7^ zS!L2kiI&U*NLAh76aDVox$|YpB6qeAVa!fCdfVXqN{!*)VvP<`FBxb6a&nYPQ$3{ zbAt#LMVzN6AZmh|_?LfinZ(~eqvZn*H4H4N@tR{>o+WWf>>WWa4RO#`ok66$0sI_4 zaExLOAG=HZ{Q;gw9FWxY0J2fuI=h$T7f9aEFXN74oo=&Jj-LWTs4(KqA+9L;c{*e$ z!2SBsp4}PK;nE+8K#W9qbF3Qp_4ik<=aNq99EA}12sflj?2db=20&+14s|jps&`3t%_zwuYZv3?W}M(HLglHqFM5j8_9uKjR@F zh8Y3Nn3ocjIH>1O{LaD1U?v=MPZ2$kurgRjfuG=6_aX|IoT8%QkfbAEZ8HF05)0r` z{DNyoXJttuaE14N%a*hmsGo@2;hHv(OY>Rvv5>TQ(`hngK-{s~*BlKP`4Z@8i3e2z zPgLvt3i+UvW+ZQUDYZ$@_1Tp#U%p)8RZ<#VW1DmuK`MHr_&aHXk<85p53>__cVq{G z?}0&uv-sq^>#G(?$uEE=%y6zW=Ng}XlbKm=&faq9!z+=Coz=fiORkfpB;R*u)7Dpf zH2eb-AK%2O#+?j!vyG7sduB#PXxd{&k! z?onBV(-=FYh|5^`C6jNz^JGe#`kwSZnT%L28!M@hs*ad!?I?zf^;hQn8jmv}5{|&T z$;ktReIWjzpkPoNBPR@FKWBg|h)gCWC;R_0O-3%Mn0n>BcnCb$DeVTRspYBBYIk>l z4wTeAQLwxH3_c5NBD@ID9+ba{=vk8MC!drdC}A1VK^0F^gn9m`A8MlES( zF1;S#J(-K4k_^#ESeb3Z)6wJ{8n|y?^(p^QhW_HW>+_?^xxcCKi;>@g08COc$|Q@N z=so0nPd~;1-SjenI^Iz^%sk`buos61;MK#G3IHtcwbx8BIC`H&T#)$17a-s1y~_0` z5(4k&xb|5CTDu7K;Wd817{S+LKHcLppE_!$Qqq>nM?(%9z{Gu77u6Go0p@h!Vhdpf zCZGo#vLTQbzY+K!gWH6lSNRa8yQ1Jaz}RQcxa_C_pJ&ttjt0RkxAU#+RDxfAt^6)F z#1O2KS5MN}4w%}i?Q6Jwb{RNtvl3o}=0C9y#gtK1KtlSv!(&^m3?7D1Y9=S@kfJYY^y=YWF{zEt`Ebw5p( zfWqi!Rv#}1)vSmS1umRo#TaKwJQhk2?yax;`IBo`;t^*;8+E`%hqbzpUVpiL zDWhByD3on%PI!)?s9 zg)nM-pz#CY7El3|ta%i7M4~^C zR~??LK)~{J@_+ z-IoFfhy!4UjZxWk$9+6}ax_jwG;%$&vA5MnY>F5)dKmdu zFgEtL^QpKaXc1z#D(R7+?heRX%81@N+7b-YGCPCxL_LrW#|cC*3qWvJL^wfXDPuS( z8zq&Z>MK5KfCmd%(c?olh9=X49&ZtGtK!f)f>()xw*T)7Tl7i4dmQ-_NFu)ip46!M zjd7^UmTmjlcLMVb0dWYMT1$pn6$n%+arYF>6M5eq!J=ydC;9#07u>%UvXMT$xAWUF z?GTa-C0CdGK>IWq*Q12#ZfGhQ&cra6sSqI6?gawi0i5K?c5Z@kbPB<)E*X9&JyZy~ zpWjvFV>I*g`*@wAka3?5q-`imv4C#M+S92=0H|dHOq0u-B_P?zaV)ABIf-}h(X!B{ zP%D)UCz<;6aw51TpglAfV7^yreiq`b zwzX8y1BUj$nQ5X(um2u$gnFB4uD%|kk%aOxPXEIq1dFF7Lw0i?8pC!2h|Y?}*Tj2E z=UuSCN9rWqz)(@4JWVifVIoK52$c8TY4u73cgz!)kKlcaQ%%*O1%PJVb~(c41o2Dn zf*>*}L|Q1*xFP|w_)uLZ`9to zED1e)7dElbw*=W4EHz>}uJf_*CY%PM4?*t; zOxAoE8et+*n;s>igXl@U?r8{J$w*W%Sm=)&1Qz~S;N=l4}o6YauBNg{h@R1H;s@-1%b2d`0crz!D81(?rxng24w-pyF<(HE*#s z;v8VFy+CWC_dbEh{^I{!n_8+IKmemG=cNAIBp}15G2J$1dmh~2zrrYkJq2E}O&Qmt zOYw7nMJ_=cJ)-lp51l9DXO(}+O0T3xF$|h-E}a_Qd~s0e;sp($z$4~xDois?Jb~kb z?8=z)XG8LJvCWbL(G|0(Zd6au3?O(jz+sAVhefM*UiXjClr4lGj1O2bD>kByS}H=*_vn#2X~7 zihu;IZEyErB{?40h!wg%?qk#C#ci_LVQID>b-F~l$?=I_xh@!bW^&3b{>=W7mj#i@ z%+>mHESC1e+$pvTFi}<9=T~S_JlfcLB`E>m6FjuLK9;wfyKK_OP`6qno=4;rg$rhr zq>7zrQ*uOhKj}pExxWQ)S>0jgNo9n`nq%Qda3|kPh8Cg76OX0YH}Ci3?@_=YAQ}Jv zP`5Xg#{w|;Fan7o10Qkt+4)h}xIE~^>(`&}Gp;xd-lI4oK6H)yB8I#f`MO|yL6k6o zkPghy+&wEv(PObObkMM7MuWoCOJ#u-5vak4=FOnHL&)QUIUX=6=z~)Xt^csRG!OaM z_E4LZL#yB9IVJs~+G>k@H~~ErZ2( z$?gJnEwLwjy;0&u$j7j@NTtE=^%W(eNQB>LN`~NkIG9E-aq-=CaS#5Ss2IZPD_DGtBk38w_o39LF2j0=K|R6B_A zk@76mdl1Z^_#Pdn;dob3==M0N@YA5^1$4eh!grWzcLK)18+>KbXt7Mk8Jc(UK*1zh z{{M58C>Rk?#t0G_VPMNv97Y&eRQw`l7~U-Z!K%@m*U%_|I}_dv-H=INfJ#<=*uz!y z-<9GPR=*sL1h(_X>?7Da(FYZ0tnufNBIsr?18&vAL`m&pY`-`uk6t@p=$ZgPd8~(?_s)t_ga>-iC*3q9R15O2K^6X)z4g!Fn!8@=h4eP>vzR>e+rR zWZf5f`2>LaY>&)9cfAn0B9Dl6^$R*wbJXP|6YQH*2-6SD-ol*X<(8&gCdle_&#S5R zG77DfuC$u&SO5tKp;2JP1|iVSK{HR$wZNo+T+Pd*h#W#AhsbI2yvRrDBdByjZ8K4S z+zb|i%8TUWYP_?jOo&`5kAYfLr4%Bd%``Y(jR)LfGLhLg1&axhGJDC>?ClpWLFJbU zeUA#^xv61hRv?!cv28^!EP40rXFTYPm2o`dXi#^M@VoNf2XD1s} zJqJ*157c?GTL8Ef!cBGop4=8+cLS}M0_M}KkTFR}EmdB zWs>Wo8x7quKZ(A_;22Nn8R>&!3F?ooSLaf;kat-p3Kmd%cVt&e7XnJmF_`gmN@x&spcdf55&u?3$;hB)Q-m-{Syq3X1k$}@|pD~ z5Dooc?68;U7cih-P{3P8GCfsdMxAXW8-g?VRPnC{w~!bSs4T4+e9bIb$6RB&Aq+mM zB&@Z_pH!t+PPtYkW@;QR5O^J=tUT>LZEMyRM^z(@9zMYKaQva zgj1`ciNl%J`6rk|%3Ryl7Qq;gFR)dTyX zQwqWv8bLO=7SgGO_Jcb(>62xr3q*`vT_~|-jKNP#RnUb3-q*eMtW8qZ;yJXbkVcu! zXMyw{u{NZa*S%gwcO^p+JM216%fM7uY zYGOm0e0oNx17}k!$K1R2XhAF>C%9q0A0YY?WjJGFG`5a$cuP@XhmEDUDb7#oP!)0R z2O&oU%a~L!1sCE2jSgYRA1Az-S2|df43F~Hvslm~7>ww{tY3AC-7vWLyjE87oPfs{ zW$@aPYM)2flP}HZElZ)n2ms~FS?yqf?jx27;t>);H;*2!GDexQ=tnNakRG+eAw;bj zGUOI$b1sr}#X0%FeBANr&L$sE8fKHd^>9W{Ix!5xaB$5oGbmu_GAT(t2Rb;uK#_{c z;O4{wg)uC!tt}Wr)<$GANGAiwibZW2n2(z%y$5oMu*1+7L`4-{ZOyMEd$!wp;OX6B z4UnjbD0>f921qd5VuDZ~1Cp&Z)M1n$m37xVCF4_1xQ9U5<9W;Td7<5qDamIkmLg)v z+5)j*VN;NJwn>5i;fa%|%RuBD9)ojWtiMu9s=bX>qMK<<&t*i2@QEG6@-lO(2*bB# z^$LmxXyZX_j7M}Z)u^O+qW3dVAooUB(4{8aK1>w92`*xQ0b8#uBW;y67@t$T16ouI zof~9I3I1Lsj10O@7XjeZe;R7nDF4qwd54Moy)fF?_=X20^KUj@YZ$#3!+#dlv~9yq zX9Lu<#J4|hUhBB3r6oXjH-MB55r z1E2^}&ZoChceAUskRhZT!n8Ty!Cr`VwFV56`U6=pVbnlacEG0`qd;T{Foz&IQPfDH zik9>}NYS6jk#58x7*tFS$+WZaw{I%MLl|b#@@K}oW5ESQs?AznffC)f;wx>%U~yT=bkJ1LQfLkK)iu5rjD>J-xt7iw>OJPK#Kt# zu_RhN$QOGPy*_33QBw9|s*L?L6Mym3ouY-=NzrULv<^rOBNaH>g!T9ftB+8$NmzOuuMY5}tmEt9^*I|sW@Ci%}?}O{h z2w8F37xLQ|Q>H@|82qpfs{}ekji+kvkiwioF@Va-LX>aiNIpRdl~9hXxp+!9{uBhG zh3?Dz_@mcuY)~G@Q4AA`ssGb#UJF}RZ8uHXE+lXrynxTfUG%^C1E=`;^-lF zuO}}u1!+C_`kkOYWSKthu$rjRBKdy~fy31f0^0BS5g(B6I9|0X`V&<94u?|LkqY9P z+E|dgMJ$ajl-iBF0&eO!0&OGUDBmpG*_cJ#$Xc#QuaIPQ){P-rd5ckk||4|;7gtc1G-x~ z^mxt16S8IOJH~CG5`ydgIZUD|5lNKcCs7~<(?U4{1614$*-;ouWz8&mGolubD?*B1 zC9Tw2BS?lMJaGf4DKY3x&w%Vk#M-klu9QgO4<*ZQUqgz(CHUc29Z})QhC&JF`6-fy zuSK;0iXE5H6tw)cf3jOIAHuQAgB#KtUzu9KuN~cuqv$|r70J#*D%?OvB69hoi1j8d zHieHt_!EZ?cD@$P!r1cCRm5seb(@{2$VGP);90P1J~R3Q1x&hFSS(VGR$28|N8u24 zL|Mphq^SNaW{wnd8k_^tgF=Sy21EK#cU00MF``+YuN8iTF-W6IG&C)d!oBekgz`SF zHS+`SHC9l&D+KF^qJC+waLaQ~v_Cd937osl^YLpuo zc^ZJ~6~>)*kP49_x%+ z8jLcGa{pb%dIc)y0H#mbcwfMV!g{Rd6e(d#j1m?Uyb6^)=ISGacZu%=(zmcl#bf`x zU-;`~cy?gz(^Kr5QgoV-7ep8cqKNK@WC;ZCOOlFO24~2v0E>ZittPM8L-WE0T8L{E zGkZ-l8IWuo+&~+#iuHGeX!U(?Q;i<`X?-{VV zX7CGCsWYa1jmNJo(P@j`Mvl~IwuxLi30`zV=pe9@C4~VpfOG+gtVozL0=Szvy`Iaw z;K+T^%`y^36J|Mp#O08FFCrj9xR>(?Z2U<5jwAo0z(5Jwr@LGHk>9b4n46o+09Fpd z#g-G&b6OrIEOhedS5wFH zDX?|adT!@Pe05DI8J|Yd{i|->EaRYoA!zp%N?&wUQx~G}6aCawDpmw*Mtw?&`YZTp z^z3jk8X@@swEruL_Mj**8|MOC$SAiT^s5_*fo@Ah-oK=_RZ_0=HoX#VaF?8l@Q_H* z4L{`te_6Em0aHf5U0gSe!FE8i(8**DvD`(g4soJznE@0>P63|zUsC|GE`-aDj<|pB zUx|nqPY49Be|r2APvW3Oi;@e1YT-wHKScfdf=+T_~c zwDjjkLRUqTGBYI*-*DR@YXii?0?0?5iO#ipy1>_QE0jZW-m?(d_7it5h!_prO=dLC~{?e0@Dbe)G0G@tF{S>K5bz>(aB=9u98(i%qaR~bb2 zkRR-Dn?y)#1g2dFv-WAN?j@jB7X!rJ2>!_rb)-V8ue0t4lWL5X6m zfkduw23_c713I21fCzjbI%S@ex%aZGdhFV~Jo*he>#hqIhAl~{ElBDZz^udk{fa^ASMtCjB8P>AhfCRSj9h*1XNc8i->48zV*R}J z44`*ygW6m$xe3rnLVg}5COe7p^q^N50A8Rwp^nw-Lk^TPH}slK@=n!CHHWQ(P@pbp z&UKE&v6BN%g=EYmujBMY4hLHNxpaec$3`96VcM3MH&F3B56L2+ zQM#Kf;r3<)t>~98Urx-{>S zbOaDou+Brh0jxwx+Ukp7f79a-uh0=(K7H3r71zRmWPaxIkN(LbVkGIE>7fR`x^@vH z21006v8#BK0n1(;>5$hI3KR#Z}hy`3uoywkf4krH+$BQS#= zhjdVWZWdCOPz@QRGag5A2_UVnrQrr-qA}{m@-D#u{^D3ynBJ|-T&(9bI z^;N-c%v~_x;r%4<%I3+zXl-TZ&kbwLP44D-J4pKm1baZmaVo{8c2!gPkn107OY@(1a-H zgK+=91C~S%2vD{X0bXH~%H`Mvo+vx1wS%4dm?-!?;17HDfO5q){|{3sp^1~1cPv%| zg!j4l(_TP{iWj{jidUYDenI{ovJ`Xy+i-1b(Sxrbx$3if6Miy4fhOe`w_~KD_erdr z4^t7?eS5$$x4LOm1|c}^k=YjR)g8qu&})JeUN^cof)#E`q=?FjETGOMUnMb6ppoZK zt`*Tv;;Il3Kz?)xuFoN`ad-fF$yMHv6UE2gt(93ZRt!LR;gX0h#LGnEJxGG7Lz0P3 z3j->DVlGg7{rOnje{HIdtvVz*0or#b5D|1VJmVYQfVcz^E(Ag8cl!GJQiOVSbJ7%8 zso=Iv1>N`LeMMpqiOU(H-N}(89|8=_+lRzHLOcn?Z)c?o!#_HBpLOZ(yM-Q$O&*B5 zBFWYXEuMQ&wAs&PtY3u^ddowyG@jsj8vh>=os6__OqQZ1xT)-^^jCg*Aaj7OBt$A~ zuc>YDI2DytGPq*q90E_lJ%7luvce4L`llGJ&1EFkMAH?UwrwOn+)8WS zZ(`&-9AzJHSfU7$b~uU_&lG;aie2~b`a+c519*Di%PBtU;qz9vaHBhH4A8UG?G-t8 zlQ42~?gu;11?}9`9NGjpJx*y3Gbr^UB@$BcKa^{C4Kx@tz^NF1d7&DK_EIVK;7Wsv zM*%87xlH~*5)FiuKC;2u0MCp%wsL4Zu_1*=0D?1fP!Mi&^HxWELe$^NfRrmXDJkjG zWCV0!@A_X{Wgta6L;sI)tfiC$6fOS>4L{s|3R)*`TB_gm{|ia}1)QR6kq>kF<#a+% zBgiu!rq|ufc{6gT_GFXX1#z2@h}ELFJ;xQuzG}T|qw#;R3ls=oqnT!^y0pb!r3Z8@ zcOg7oMWj^vtrIl@czd^}s2h6-5ZexzZXA_=RHVxFm9UZ_UkFPRRN<4(|4 zO`m~@|2#+eNnX5*?ArPjDrIf|_MQ6;Fxh+Jc@lKDIjks9D4_E6lwf$=%1`-Y_1)Cj zr6u2JCZkL6pfW&U+*IhBGnj`>;ExG|XFhx*GhEf;jryDBk^bGBO<^i4`t{M55X5by z?iA5o!1yl!JwqgT0=I22u*qkALgIYPXk@!_*O8ooiHG>MakM4{0*}Gv9@eONZ64eO z5t43j+Iw|$5hv7_Jy~Dg>5fuDZnYj)$x4K5RMtPpi|tiJ2rs4ue85sjO_FOI;IR&MEsM zqK6X50t|rv2|X2#?{`MqQ9$hI0%Va75`%`A(r9Wee=>{6bIOpgp!q85_YDL2`7<~HGx_z%%_o*kY$W!R|z5Ym++2!En@MWVwaX3 z0N&u>mwj8{(kL|aLEQ~#lRP_Da&Q~|r(%vHY!~Q<+}i~J2^X6fHa9Mjdm;v)K%N* zDu(b6{*u{K8ti{?W&NVa(1X*93k=6hMc(FIDltk7<-Zy0`VR=Obg`qY1ME!&y4Wi1(?=fVTZcWWpFS_a|@1yEZ#NPa>vTcV<%9) z_GI{q`r1C=f0nUejjFtSe90DHRtX&WAfxjp4Y~rc5VyWBz*Obz&Fv%l&~i zmRMQ#bzj06CUKl0V=kbxFx)GKr!3$N3DPxNhLbe!cY;>DV^qt!4Xm`vGK=;)5Jk{c zHI8HYcL}e<#+?G`W)V`41BTj{{`IO1za_Sc<6aWejJ{x=>)=uR&&Asad;z`bm~H{m zl)_ml)Nja2ZM#MAH_l;-D3Qn@x;O={AG;2CTz8SHCGyv0zppelRfORn@S40l^WRHH zqFKqI+0zY8NsC7>(fww`rm8#lg}@QVe8*kwgHyVLd%nd&;dVk!ke*YSDZI1_jj|7e zKukzohJD%106_h0yp^>crI`=Sv>!lJwh6-5o@#T_| zn=$}*C<=X%u)4#W(a>Obf+UG)ag8vUxt;wb*1)d zlA(4#x|ur_L@RG|?(s1?b7|!!07=E@_ixvW;JqVJp0bY2oE!CkG9Y;9H_i zrPR+ou({=$aJsh(C9UZxFmPPUT+bp*J5qN9rEj)fyI6vzKat^mtDNBe z!7FerTi)?Jy+!%MN2Bji_G7stwq{YK=j2 zM9|XI8bWHy&6EkPYj6KE8cIOzm_)hqMR z1z8kaab{CM#eMwPu}_y<-2T2e0(kDt=zO^@R{r;{plEXPBkuN>K=l-jUu=e6K1axV z1$Nhc|9vNW^!utvUfYXpphbW~Tp|Xr??Z^33#=_a0Ocf~*dmKJh_#L5JpLg$Oa$ZC2Yr>g7Z$~77R*H@x-|0HkJ99VSk=mDtGq|N~QH?e`b$pa*e3IVEtVGEH zZe!d{t~XyKk!qt~lFL-^?eW@6Q_{XTfE`i@Pa%G5JnoWbAGW19P(kAj@xQ;~WIRzZ zJtOwuzbOO>QvsW4L5q{EIxe%#|Nr{@f4x301l*`a{$K6b zk_J)(xibz92M&CBm#eO!2AB`EFHPcUx$1Iity}ssTHESaKWikQdHVa@c>NV507e3J zy`MK6U?veqhz=tZ9a^-FiRO>C)g)gXHb3U>Zf|}%_nYah#wKuC4Nu13^nNz_;kv7^ zqGR#tl-Od+$~e9J6dXp0#Q01?WPuMX3}4OgS^$4UV%+ydSCGG|k4cH6w0P?~Uvh2u z*ZrOCStp{teK0Jsd~e}y`65|+bi0sd+My?|gYTS|dYig$&C*-mGUWN{T4NXK||Oc^dZG@jTVeMFg<~8t&y>3T-%rN-H1_{f41mZ3t-c`k4Jx@E6|cyWeq+LOS3jJ8gR$gN z{?_(Ke2D%+{)!`T`5C}X)V_Q#0f{_oVV!g3992b`D69lK;fds&2 zJx0DT^))?Ds3qPW!~ZJkF}kf!X=Trc@@t&-_&#e*H&k1$^>;i z9*)#BsOYok?ie!c%wGbS%A;FK6~oo*K&WqAd9(- zLkS<=*6sQqZ%R_+2lJG?t}-`}BjF@<&XtE8DLX%86*+2K1~Fi{JPmYN467s87tMXh zmTwYtsC}H~Wck9^Q!%7yB98s_k!Ilp&ZL$-QB$r?K1;*X7VWz&y5nd^cLl~Ihs1pw z?iKIwmtX4lY;2nK2{}>8H&)nMHeBAz#}V?}^J3ZEtQ0>@CU>ITiRfhI^Fq;_NLFn5 zhdTt!#IJj$VLh6~zkZdxiu>pF-hICnWOh6(NNzMt+38#R+WgT#z{uuCsl@@Ujx2M{ zYYCU!-`x5-!FcA>rVAwux7`yS{9p=Uy6e7ByKUFv$#y9T1(8Z&>0%LyJdtY-ihl1- z+v;j*vz$@;{LqN&k^JZKkhmKOT+Ov3u}%K-1klyrAwUuVVC7#7{mE}rSBy5dJ$|WU z3ZxdW4we@8mfT%S?v$zeN(V-Myv8M`(YmE=e=}V|(iCOc)I%fIY{!?%-uZ!DsXYK; z;p++R6L+56WYoQ6o9~_! zJ4kxZgHYpkLf=Sqbp(JrPayDdV6U8BxJ8=Muc79z*ADbJYX9;d&CO8#bt>2Dq$63Y zb^A`$aMn$sAs!8Tvu~++yrNA=;ksCxrTDe8a$e5v4ZY^M`tlj;?{$yU4NmcEy*X@h zc*?LMZ1GBtjK?XrpWkCN)0{nF8nE2NbM%ib#4lbDQaP>DKPHO*3ltMDUXJ5aJ}i8HQ1$-cW}U&*`-5}=zJoS_Wl07_&d(^WnE4I9 z6DdnIGqy`O?dO$n#_#P&XvJ=6C6P?VGkogrtBh=P=VF}|;r|Re-Cb9WCsX2=3}b~2 zky#dQ^kzI0aGhU2m!mn<^#Z@%n*+1kU5$U-Z8bd;rJZHrazLD0CT%rdZ%6EkPjX^h z#J`Rq7Nhm0;hnZFXrs_NynC1EX>dz?lvy`0GQV-SU0}V{`=jQ&HT|v1#sk1RuP+l0 z@ZI!o7aLtD!-L=gwcwu6D(=en=7IB@|D8{-5|CDyP`>Ixn|I2)y{@UZEWBwfCy(db z^~+09G@leMI@%KNDC9<-bSG&F)c0iD3F+iyOl^4^R>zUjb9YRmBZ7tIVOP>zqfEZm zhc+fby{%VsC!Z9gG#Jt2lpnbefAThy;wxe&&tr@Y3wt&2WMtvp(wuZGILcqc^_+J` ze?J?DWKc+~j}<=HYWks3HZ`kd=*6k`42nLbM~-k!)R)LHy*(Os`C6N?`$T{q=z-iy zA7CzXZ4&OEa;mqi)6!=a)Z5V@luJLBo40=-^(1pyQBJ(=AK+7L0Zp8Yl#qgVo}Sxc zrSow6G&rTKfv}wPpXDrLX}R%ZoC!bPxfOXkJAGStJpV1HQRbUgdw&sbgoq_ca|{Z~ zk8=8@K%HMF)0}vQIwyXJ>9G?CpsKlPb}wtco>s1H_)2x`o>3ny2rW5-_L8L z_T7=psKTU=ESW{e&j&MHU%c>iN+@`EIYK90aH^I|V!i0%$>l7GcV_bnPpqcq?aZ}A zL)3#MOx{=u5^ycJC5;}T(DL`wX=b2d5;#Sjp}t4vT+@3dFR?@mzdJqdcZbBBg`UDF zxsQAC-Ok<3b9PS6qG9aFG|!`{E48+DJ#jAvbC+fh#ThZ(VJ)Ykq54?!jcwME0}YQE zu5)FZShih_{A!V(RhIg|Au;==W!A;0#%`v1PUia9opm=~*?y?gEgZUH9w`3W+~~rD zR(Q_E_CB|Bd2u(A-tFgqNnx&+E20&`Rbseyr5ny&0M>YqM`_T)K;+VWkTmJswaBWc zrWVPdo;Xo|2G| zKFv^un`(0B4sg+H=Em$Bl(5uZY^&$w(b(g8v9dDp-^8PLcCPdziV!F^qeV%=hV2Q;?=lp0&;}gxAMhs?c4ZP zRa0B*#~)49{2}VNsdHjw)!n-+lY*J=QcRVNHqwOcNYpDq4pP*87h-0yRUn7pD| zR=b0iy*k^}l$d$#hKxT~yxaFB?@FL6 z3s*8rLM!K7QoVHJ8OKe-?XkkmyAyI9N)ihC^dHyOi>JygX{xOsOfqwC9HiS+Mi*YT z3sdrj!pG>;#CoU6@}4uldy=0r3s@>FiAc`!^`$BByPLs`y{DT+?~jc3Mt(neUDwOG zOVdMecZ$ca4ccYZzuuKKwP)FTC6x(w4EDcveI{ikpp|n#&%@km*nG|{JxSLPlb4&A zY$n`PqLC}}AwJtF@uZ*Ef^}_IW7Dtx&Y__&(*$LI@6+CufrnXGhK$<3No(uBmJus1 zF*5!TzxX_Jai7HXH?OW;c+(K7oAtIL4IOff8LE{MrvmZA%awZL7`p(aqIYgxLCRdu zrshr8oD`|^uff#OVYrcN{pOKfx`CV=O=ArLxk0SV%~F|7iHZ{@mJ?IUm&ZOl;Vi4; z&!f5BNVel-9DjqFZlX!N>zBZ6DN)7NM`Am6IhwgOYb?pTaYUWsH0$|SKc|76nTkO=Meb?gr?vXR=ogFAQrXi8pQxYn7~VOL#Jo1@T8 z#gC!=t-L(ImVPKIm3I5^Fvavpk)Qc{$)pz3Y?*}7EOnOe!aN&?F=CD_;zQkAUS2(p zA^+=-6%}^hp_`uUH_MMQF!`UT5az#M{gzgvvZs#L+jH;U+B+Fno~t-|o^2Kjvuu@F zhi$$k_1VgCzw+UdC%@@Js*I*id``SN_BA5PZ2dv$UJ1W*6^wTu_!{@QsW>~f(3`$% zRexeld#kOg=YV4irLHUq z=$2)F@ zkL`(W_inGp_59_`z70VlAqg@VfyZ8%vU|(sHUfaT)Vvc0x8)-vH5;N z^^=_v{sGmsl+InoQ@pH&>Il$;$AjWXYm%upMBixQ;=~wJ>@*d^~cX=Z%0m~erO%l z(o@X{b@;xuxcb( zxy~=F(s=jp^1_iK8z$Lj@~`cj$9G_*G{4+d*rGA9_a7h5(|af`(%t(w6BGJ$UlreY zyA3nPe($_(vNo?Z9ke~eT5mx=quNo2h3sW`&_LSzjr}R#Tt6pyO$sz=2|iLXAa^Vo z{U|)LMOj>jVzc3t$!A9IO}B?%WV&yDs=oEFy+PYUM;`yZ^UR|Z9Z56#N8LA8$<*ZBHfmdx0`<{-ju6!pi{o{q?ZnYyU!Ds$HBF8&rDff?bpBBV2 zXSuLQyLkxrFZqng*!s){QGFU<3Q;WL?;-OvIC|Uq=QH5_>QLWdF15T@aLu|n1~XLl zS$euCU7PlfT6?i$^KHX^+X%iuDo=;kG#ApzFMeHD6=`K4GdqwZam)R~`{AXiDEYP) zrLs|3_Jh*8)}CkojoE)Y_&n)V8R(Hii_+USv7KhLl-7UC55dgoUG3@C{+y0dj%t}& zb{k3`bqRIsi}*afn{vLhR+>i9#bP~YuEjg4Z8PWXi)OKUu;I2UeO8H_+q3~2=|eFm zy=Fs$!YlXu+$!;7>({;8w`6PXao)DK>#$Gztw}X{ArFb@3>x9D2X#L3Y&0q@eI&)0 zo_fw9dz*BQ#;fdao9K_LsxTiPIHPp>LuYR6mTeS} zt+U2>(b3GqBg4Dy4 zZn@Jvs}!s^_UHQLFJr9a!{9mh)Jd~X)r+HMFYDIX@O-bQmu9tRd6QLL%_50@X}%@* z{%uDB4PQ|n*RZ*l!LwPBoBncvC=aF4dJ7Lbwn-_)Ck)tkT9$_%c&g?$QRwTGjGeVf zu84gvQR%hu(fomVQx?1r7DNt6P(z{jKMpAUG&>Vjrjz>R_PhQ}>>GVD?mC&YM?OpN zDtu#2q5Z^DaT~ee#f+Q66;EI8ugbj7a9j9%SN)VU{mq7Ow&~AT8+B6~?HNypYjdT) zyI}k7TD{uvC=2ru+il#(Y)<5dhxun()Ghv8WIPlvw)=s37PF%0kMC!{$(}mPKJAou zz3Yl^qczhUKbg2chBD@q=_|62Hx#?Yz0OfiQxyf3X?`teN~!nxZq+O-_xvL_3&phI z^N}5+?{A4zWNwaE-1Nb_+jUNiue-}_hiu!I(kh{4va_^}7|rI(Gi)Omo>ouxG}W<; zogvZ}ALl*m<6tKv`6oT##_@~kAv@^~Ub)G48Wpx88B3t>t|@SI89&lZ}O*H9*eVK$1l=<5wpB@ zhU(|t4Tk$S$fvNkZF(~sr(Jyf?kCE^S2US%G!)Y5A7*vRk0;pgu#a*Zc4VhCKhIu# z^W;Va-g^atq3fzC=H9a(w_@nLKGx24h_|qq$y+vs*|NsWGLjBoXP zjQw8CV|%mP_Y5VoD!+J}B&++tHMJXj>Q6Ntp4qaI-Fx49HJ@>VlHuN=Lu0bKwF_?J zy8qnF!RWIW)4GISVz|Gx&pS;!VHfr9q!u%kBPY}2o%zWHwhV1mG98K*;{BzZq;J~j zDR>(jA$nk^+7N&gy=-n)hN(P_xD!y*)fk!zOPNJHPeVWAz;yD^JyK+8fla zxb^#eL&xvKJVAw5>llW%dKzRh6uhd6s}$g8-TXLKk8;YFqp{h7?5X;#->n7vGuH8U z7evWBNZzeaWBHi9OJ&3MK&OKb?IkE>O1SQLZ|cmUx3;~+Q1NdYORkDj+mVvwT?wBv zj{Owg@w9%&BbyGxs*WA>>!!!Hdu;huzckS)Jd)J8=o5VK``#}1!Y$JL`+J0BCYOG6 zE%kN$BRF|PCZ}Y*=$AJ{2cNLm@FD*t)ky}&E9YBO{*Db+%KBU2JpUGH&|VX$y3{7Wg?YENqOX7& z{Zmfy-@HG3`lXU6v8Ghn%+ptrrsDf$_nh4L(dF{KZo|GTrj)#O3z6R!3-Tz054}~r zePY9>Ll-tveR9@j?bI9n;Yub%oh!-UdQs`4#-<-8zUr+G>}eyNOM>~csT8~S7ex(I z(p1cUqrY>(=9mBf+N;~(X2WS8A7uV3mB6;j-l&osJpM(X+9hVc<3e62O{KG~z&)1t zK4Kc4^G!^BGV>#$^YhhF%~?!^2I1y%P0uJd^8S10x>OfC=TW~*c4O;Ap0?OeHA+vf z3>VYqtZwA(1}Qu^B}-|kPdA;qv(|UmR5Cft;Xu>d>s{^@N>6y=ZM^ba=$_C-*6bhG>+*QWCA23l)9tCK zSIim7fpI$yCP$yQgSkBXU43s)g>O@ToR_`*_E6k8mh{SJF^>A@9`td07tFYJd>nhj zyxwuwv~?-DA%o|ci~3mswd(@EV_9gI*3;F!Rp0X4qe;KFxBq44AFJ7>MD}FceSu43 zx}^u&u8p&XW5QXh4>H~S;N$3EN&WBOK*sQ4RJwhQ@*)>Zvd~#w)5w^G_QoNbBbYE(Pk(k!LjP22r)Ok~7nj1N4 z?s#rps^qR79h2?Px~Z1=M`i=-k`h{p6=1lLy6MUNlJ@NBF$1mC-p#iSdKD_&r|c{H z5*=Gxnu~0k`_dhLwn^xb8FQi3sVM{!rKaC?FFXIvqpUwrTF3Fq=}A#8YuxItYf)-m zjPjWFYULCES@-69BOS+^Z_MqQ&ccVhW`zW|KfQXW*7C~UM;Pa~IhmC~532XxzQjhk zF(^rJU2cB-3>sAirv0ka(=z_Y*D10Z25-Ne z|9Ov*mD%3WBNcB+Z?PC+e50>i4d^?_>)mEA{gUS67UHfIm#oL!lrx@;z zPd`z*_%@WGK)%b#Eq!E(t?)9#lYM_xug>IO`+l?C9NZRhW^d<+5BAKW~kO1&#qOw<%G$J|I#a5!`;wLa=8n-jHI zI(G9iFZn;i*_3otSj}}eQ+CLbhX{+YGsQZOs7*v%F1R@68=tB0vB680gL=Dq-y18l zgGRfn$()Dx(S78z)o}0%-0B+YYku_mo<2(PexiuMzk%ww*d!iF-U;GD;~t6$B1Z$7zo69)rVK}Xl)!-D?Pb0JOPSqegbB;J>~@_!3Q z7Hsp2tS$+#E-d<<7Oqq*%(eeelF`MMb2`QI%$t99IzF?dv>biH7II6Zv%~dLP4R`# zv5PB5J828#rb*TB&Yt?is-cb1*+S=>dCqqEd%FMkne(X+4E`U+zA`Gxwq2X<7+~n` z?(POr8YG8qsevJ-Vdzp&x=~PRP#7A9k_M4(PzIzyO6tQW-sjox-ao!SEPmZ<)_q@R z9dTacvp5IG4YVY2pVqfk**S0qp10G%(aw2#=higzYe^znhMF^t3YfMmBid&r($?LlNd3~{LbwAkZ zL5Z@+qNK56HNp(CpHML^FgdmTZW_nq!Wc~{<=tus3Bn4Ra-6eX)pr|lasKo_GaeZV zjRa9_t_Ma*jlfE>{Te~WKvxRQl3%mt`mBhGwLclcf{Vx>A8(BN>H3$k3uXh%EtdWl z2kx*quY=b5RkBbioj*{v(chxh96kx0-&<1JWOu()3PCTh>l-= zxcn?Z)v@F+Y1>|WbAFm)ynkkCj5J{rqpd$lvGfeCn5o^j)FUlSw!uR?@NP~8SZd2m zmQt_#AvbCcy)do*cTtVl)j`UCOmGmO7}r^kRoo&~=<6?_dMr(y7!AUreXNPt9TO+W zo#mX4QGi8v;_nkI<6d5@opoYwdQUw6Ycl;S76#F_0gW=^yL8ojb`0uxO104I%Ukt_ zjXtvV4mj;*`;9?}JKEe?Dy<7|yMY&AOIMMJnS&PFW;e*gnBwg|+59^myYwEAM%wSi zI{%%X7*G(8ilQbzs6u1yvmWsq+AqUZey!u)C~GnPwBz^|jh7o^!Wj9o2G5iX2OY#j z)F|+hD308b!7^)<&4Mo<%$by?rNGl4&o9F1C_z;=GHwC+cfveN`4UqlIyc zO{|kpnjbxH*gXG$KkMudLZy}Qnf+noBwyhrt*z)xof>0-)LBC*!KV+(eXIh);jD^Hc7deC$9J@rM?j*~pbbF>c3jeTo@^=fuRgn* z*(_gOV&Xo_h!1kbVgz|MYKa81u7tgY+7427(G^s3K;H^>q!c2#!-u^Zc9Wgb^0ogZ9>jgWGAz%qRVtz~j4HbX+I3 zZa9uoo+<+puF@PJJQv?8h3k(`_K95~Vp=Y*-pu`Ck$)CI#)gFK7QE*oh;~Sz($sn7 zIQ5i@clMpA1+8uU?Snzh4pTTjTKQmrzOo3F(}R(@^8!qC`Z2c~!TIjf_LxN8_THm9 zBieytRC^-Zk5<8Tj=L?FTC3c%jE@(^U(O*niq=sG*<|HD3Ru`05hqIC@L#;%*H%8t zPzkX1vwq5e5!7Z0M$gkhN9gr=sohpl@MX&VdjQT$Mp|^u*B$`9%~GzQRWYwwADaG^ zEyN>i$aqfg*5j4Ed%0|?j~hkLb=Km_1Z1+Py}WXksy&2hu@I}Z3j6%rH3+79dSI}3 zJ|mv3W}f3=6K^sCSN5h$R@uu_R;+227oY`W3bxcjx?*~eTHihC-=Mf5f?x)ytsx~N zt-ROtt%dG-DvP_Z^bevwS^0&%8~*26N2n>3)IyZsC;ij?{0-~IV1wU0d%FPt{I!K! zQANQ9*_W^<-ZlcO7g-P%`c_}BNg&;uFyquiEL}j4Le*BUZS8HVCIz2uhjYZ2=-KbM zJ5mar}k;RFn?!4zrOu@pUdu``7vULX7C6WF|^LbEwz%aB!^(?AGTSDO91 zuz+Qdao`eNMY`1sF^qA^ADm;One{}}8Na2frjA?pHUYzA13PS(1gt2wYBslkf?7EX z7Izin}mpBWL_jG5~7G((bt4}-kcO$t4> z_M-)JC>;$8qV>3bghrP<%Gu42EwP*0f;@HLSi5ZN{ISDqF^s@B{9(C#bJg;`_*%^n zb_LDfpUL{9GX>%2?7;HhS(*tvg?-70N1>KBRnhyx7KkhGjTsFGz{c}!iVyuI((*Gh zr!Qn|LaDl#c!b%JrFhDZ{|ul9wDU1aA0Qd1wqK08=PM31cG3|v${w=-YdiO}S0s+n z9R#IuB^5K;ft@s!@G`o3S8Z?_FU@80ZaNt0DhyqlN0s`Z)~i z+mBv{WD59+2#G^*qBbd2t#3x1B%5h^kIlfMrKc3BPsj(`^_NdP6xRATj}K$h{#Dbu zu1L1m=i5N6PEnlVqsGu$fOx=7pSX+>OsRE#04l z-SRHveHIo7MS{cZ>fE1*H+WZhKwNhT+(yn>(cR^5rw`r7#?#C6z88q3Hr0ioA(}wy;X^zSnkb=j3_eClLm+V>LIkio^3&iam|&69gxoUDWs`Y zIE)j>g2aV%rxwfK{V{qh$)G$h4Lz-XKlbRq@s(;B?J-xZ zY-2=7PeELU$zGG*Yj~q&G4ggP|Ee-~Kqg9{9VE`BH!^%9wuW|o7K;KySq}E zX!cjZuJ4iTU1?BObkg1h8|}~Q%`ygjyH%QKD^TB<+OzRXPKuwsHa8`+r%PNM7qcSEr(R6*Np|mvPJpl_ z^cJ+4&`Tq&f0L11iEsxsO3aVRw#3d>_ew_d%SWCR9@ z<;NJ9^j8}I8HHn`!Lj?#Ki1g=)ClDcw@92n=_fj%MHMLlliTIWbOF-dEOZ)q-Y5B} z{Mkx1sXk<^CRMWmqW{85kclK%x-v&-IP({)1$r6qxeSjI~@TKJcwqqZCL-ca9#-A+A!`c42~H#q{R_K zdNb5=Wz9Ayd4HA%=fS*X{wHdiQjiukUpUbwehliwA| zM@*0nPL0~{$G-d=d1%OiVyC*nkVc^tpjOAf+}A>Jqj*eLLm4??w>voe^MjAspL`B% z=y$s~WUTH$@?Wn%BKI+pCx;|Xb_vwvYi=4A$spL#D-QTdWzCUDA^MP7@c3;AR=%VS zj#uqiSo3)E{l-dIU8;Gn)-k<2ep~rrUC-Oj75F<7C+t4S>+0w+x{fs`c1_IT^V{{A zP)Dci(kPZS-?ZAKy%$)UpgB_|J))8^nuNqX;Tb{vya?lj&{%@uu<+9(nzA|kh!g!a zC_k*)(lgimm48_%-<_%X4C09Jv`?j+$FIJ4#0x6@4J(MOu-JzH{X^q?#aMHXu<}ce zkso!NvBTSY?=O@Y76vaHO;_d%O&sZFRm`_*De11{VZy0>u8S&poF{3#lK z`?~if6607~c;B~Yn@d~QpRa+o=TzARaHcVWq#thrQYn*Jl@`TOiL3>CIr7-5zB; zUd>{j_$({AC20=eV`pCvuz}?)4m|3FiiWN_ETpR8OQ?F=t=-F_d}iE{U$f4FdD};4 zJFA^Ar$EgZhx5=x8H~F+)7XHqP>y20-mp8NRO*O#FCbfr8J4tg*6px!$fl{_%QVS( zQ(4tm;e*#wKT?f7*SR(d3*B8>x9R_Cx?z22ZJk9k2aWP?S5`e^(D7m|{bQu?ImGBG z*lH#F{Ls-A9$mK5+N07zZal*Vb{P6Nw;!o$P>V@12P zP2-PoGVsb&+pZ605}T>o%3zpuS+Pe6HYUWB!Bl*Tm(S$yBz$lHT3}sIQ)e8=Z|1Qa z3EIdD?r$Z(+*l!T3)sNjD5i*xkE}H-b>KgqZ&o-~N3}8IFyoxfIjBHLdo+z4G0
  • ?HH{>HU7N=o4jXs=NFA3VPtlP$3t%cD;cB8?4RkcPC@aR1w>s)oRV< zNu;P`x^ahBc62K@;0?1=_eq zGY|jrEwhliQ5dah(}_gQRq)WLJuzGV_m=hE-P%vabuDMa2*U;5R=%;RVh_`&y`pVG z@qMWqbUn8!pT2{{)($U>}eYJYC z!43QPbRSk7Jp}cxn@VT;(aIet;nDB5N?+9R=BVk_#V?(()4AJ|DMYnN_a~}HQ=jDv zpqEm~zml&{d#2GZoC7gBRo5e`iY}s_EVEVLK9Jcdttq>m=uQt-0}O}Ik5aqd@1%*A z4jZ!gx6;nVm*kw%XVyPoGk2vt*4*o@DhfRb&iNcf=(}Cs8MgJoWEL7;RhxKCvwPKA z^mo73l#g^Dte;1ks=9y3jV=u|;vE}>v1)<}MD#8Vs>A_9$8Se>Oh~%~)4(YkO9kVT z=c8o?e3|f7Uml&Dxqkjv6$eu_bc=cTi*8aoa?cNu7ru_9M|EB{(Xl&+o#@=Pj(dwO zxHq+%*GkG0vNgKfuGi+~4$kKlvTLztwvNL+MG8ugodb<-_2VTlHdK%D$dt^Rc8oH~Y7wtot=AMA&>MqPXCt@; zFp)U^#Icq%A7mL%JF{tgjQ;oR?3o>Yu|b)l0er~-#E|EX?@DIrYSEg+htf>#t!b!$ z(241ukPoHmGOs}$O{f>+flQz$q&0Sn<&NK}l=03|ZHjRDa_uNx0x`?qIpDK?-1jxww= zFKwGj4;eKQ-$cZ8boe0>iK>PrQv>&_07c!f02??!@|ey%Ps`lt8HVpGlup1n<=HdN z!p2VNnRvAUj69rO>*f{j=*J|(vUx!R2g3x_PUL}V{t0~HzEfCMA5(wbu)R*Za3I+D z&>T#hVgoQ!f@Y}<@GnzikQ^d7(B4ixEg*;KlrjUO9Rexk65s*}a1Md?hODSLe#aDG zVaR6u6U@_%`h83co3A>490-V4Q~is&)sk-at03?262q(3$T1}xx)36kd&_c$6#FaA zXBKF~Pj3ix0sYTAg))W2Rc1C_z?(Ysw1@<7*5=hwLF&dY7CKKRLm~@dUC-FDpjsZY zzhKOWMYZsK5|U5KBRz^_H$gettV{lM%l`E3kkt%!hc7}lq`mUavu=lEla|{HtNYn* z{ae7ifeA8Gi#+9A+p!FGS+&x6pNF|%d10%uLIG^iX{!lLUvsaY-8xiOj`O8yC|_71uqr-z&%p#vLF2Kr)d3yw`OT$$XMs6d4IFagDQy6Mc`*vk)*ikymnE{zsk)0{z zH~3f*+g!D1>_Rwd9K?%*#=P_?x`>O>myF;03prA?81WInv~PMHsuH=AJI-Eg?j8o5 zSOx)ffiQkO3OK}JzB!p4Cn`L82(W}GV9p}{l2$s|Yy~X6<^;GZfT!Sjv?P02r9lg- zajI94^hgc|It1MAxZH_qz>X*#CN~Tq{_d4*E3rz6wOS8YQ1POb(aUNo2&{Em$}DEy z3Fr@H!dc|{)aX?Li;K)Oib71E!0(gQ-Gj5%fhGftC&h_hX;dONiP6m~$$hd*irz=L z4zC)JNF^`6?<|;2SEAAGm~#pspAoYp-_r8O=9ghh`5a{?1v)Zro0c3;_nkW6&C|h~ z<%)DwUH_h+{mNYF78FiR)t3PjbYLtvQMD;hz*FL8vGivvV9zHHIMfAebX;E>SR?6C zbaV=5_Oz2loLUY~E8!dW^er?60T^YxYOYGOhWDUh0r?y#!z?6xq^TvrL@>Cjrlu&2 zyYH3c*FLVLVJ3iij4dpa0VmlygbLpMcD^z<;*vMwxin#fDM5ayk3?b*ek5agWu%ZY zq_OC7l;jz@R{`VKLza|LsWCe|wgh;<-P5lY3Gi*Xffw0(GI^*|Z<~`w0}IDDFA~pQ z6+hy{**rv2{&qsQen@m&kD8+-G1H`md%y-J04dV7@v*{UL|p-kHp(%r-#yW;2n|1W zm$;bzHJWRJlj`5iAb7+~gOII*mMBVvIFPW)X8S=@TRv-bk*g>!Sv=wiBRH^wT=77UZe?^hu{MvTmkAa; z!7MBD5X>1q)ytCzAWqCkRR9|%AEi|0a{@Ee+&oyog163>nTjY?{KyKXys0^s(o;cp z>e?RM;QrpmJo$V!T#sP{7h7YUM0jkq4faRnE15wjQcHf1@;~b*81h@p0I8`O)BNvg z`;QqK2T(NU8XrlD^^(KzYGAeV@NS2`J?e!krw^XMn>XwQ8^Zxo;#b9FSNWZ8<&(2( zy1^n*6BS7x`yDz)oUn+;I6E#IQV)9ED|VlOzg>NI8Xxto(D!U9yge{~fEQ=>PF?CI zy0^!0mbw_IY(96>hxyFjW^zcYa&Wd#+l-CjCv+On^!Osz|Iqa|0=~sLq66`qNnJ#5; zU(%_%@torIis1=L;IAhf+J8RXY_2otBmA`OUvLECkb9;`(SI6n=+VteVso*t)-BcF zap^d9OR&U?x8=p&Jw{QlJTTJ!w(S~Q>CuYm=al6rcs}{s!_A*s`3iPdOytwyCw&}w~m`Z zS*n)1c0|4Sf{VLp7Ku9JDQ_NyMY7JKlWo$u(wy#3csNp2Dq>?JT59u9Mt1E@tE`ZI8?(qI5X=Ue%Gv%5J$iNFNIYP!CMn@0 zYYUs=py|mH534B&X*7BZBcM!YUxsIq=M!*BTyI_&xh>CP`Coh9-H-1V@UI8^10H*m zAcE)^Ju$~MhW~1Kz#&*ihwOKD*HdgQ_a*xnUWO7tF{1M~2=DODPCWY0VyMxZQ`Z4o zUEW|Sck@Qi<|M=mhDOO)|-{EC!p2Y9D2(UnUbGppo@eKM0F9g)o%_ z2s`nE;0HA!qqhP1l0|W-y08&sHKLFB*-iX(4c*M|{5Oene4R<2quTDprxezu?T()n zyMvHFTK*AO*0#T^Ro*3FLGk|zGzBydeq=vK0Tz2a0~Dnc$~bu=1_EMR!Y5mwk_%ePO(4Ly+=nxrNy6R!)T(__=Nm z=&H9C>5&RKG+#UWyctZl2I4SW7u+FGL(cPst+mZz4+sV2o2{H2NtzX3-yi)t7--XG zlH%68Q75lw>J@U`Rpl@2rj5xAQINn&9TgJfVTcac)CV3I0+IAaj9lx}Yx#$$n|ivQ z7nIB6SJIiiu^uOX9Ej2Z>7-Cr&-=zKU1=-fFV*~ZUBWj^aJK{EPdCyw5f9|cNu&_& zyIT14lZ-GkHZ}H6zanhqxei6Y!%TW02)6~k|C$JeXo(Y)^!4Z&>1>KaHcMU9IEfLQ zH;K;?;4;~sq&c&aQk?BwmE2iaf_acgtXc;)nR+wC=oNt#vzIJL_ zN$8}3ldD~_X;XH%1uivQo9?4aUG0RoPNfjacq69Q+m~X$k~zXf;I+$x?w=)WOqaeP zz&3VCy~XZXb;0??DUni&_`-sW&tXsD4acjirwku65~FbY6|$hLqQuNZ^#<+o zgy!(GyDgR&&LbuOuHGd?Ux-mHthDvp})Jb=D>u`tgF$t7yFL>>|;04sIfGST=7oeCECZbo_o07(n zBI;7$!^|9{y{RuA2Yvv;MsjC!PD@2?mI}(P##?qRp72>jLm?lB4kbUZ>XnmEO6GK* zl`fhSps?dqeooDYc2q37Jh>ZMJlLiyW>^vh)9dy2QfFVFsODEnztJwQG>WY;oz%lH z=BqiNS5KmCF9@Qf9f6A}&WZc9+kw|@DfC*lC*LM+ywBDgf#&$MJz@Sys2UL!f2CjR z!lXg?_B_#_lHco@$7!~`Ph*TS=G$S1K<7K^GHkk0nC_#W%wjs3oKWtk zqm=Xl<@QPFyLJ~Q0jZd}D%%o)kE{|%P!A&wX!!^u+9rsAuls%Pn^*zlsTmKVjZ@?C zQP3DeFpH`U&{Hdi1BIC|qkP&U*L=a6jt%EQJ~K2r`mOR-{PNZ%gR@QQ&|7#3p^b6S zZ9UXzSW64mgECxTe7&stu=zwiQ#7HA!edFvc|*q3s9OHXMkvoL9JKOQmk;MOJzfZ- z)@}WY&&H;0KE^&kgD!KpCmt1jThk(XI~gL?Ds&^BKRIXA&ZUFb^L@tY58`+qjVfJwhi8)MCT^L(w!T$ zrnQt{PsoN5j{6d(IDYGsl!x2~vg1T^cs%Lv>7OA7XmKr38CRpJNL`SffWs4-wV-#` zTRUUxzSK>rGleN#B1=_p4G9*77b2L&8-=$=#n;C7-|QfZIo+b83_sbIyR+Cxp|r** zyIK2)+$e^tqQ&?N-H6KC5y8P8T zGw$->{&td@Ael7q%3NTN$1!j{6vwWW#pKNo!C7TfDsZsfz^V($p-#)oWa8>H^d5zF zmlJ8K%&jk%$$_)4pJ_n{d73-%Lw5>f7Q1f`apzZlK3cH)t7uj;B8$A@+&EUcvPp5k ziK6&%$TR*1cqs5qIA7sb#+@?kwEgHMo)#7n6`GxsEXJ@X2Ntt$V@-3)YW~}$k*I6h z3_+6_d~e&7~v12amf$hXrrms@}ua420# zj@S2Z&3Fa(fh&u^y@~dCKKtqCb5QAYAEadNhM6GR#3{xlTtKYq+Vjk4*O~lg8WkHN zAIoAATw24>5GhZ~4hCTn^b47#C&2r+B)rC|PG&$p2+-EI73fjlbNF;QEZw^{Wo+&4 zwC`mH#lwvew?g=IJyJKi7@eqJ&?of78G&1e(kb{``}~EM)N7sr36jz75U@h2!7B1W zNJ1?;?;$5asn$PK`kEQh8U$F#9$YMg0A5{>8>bg0A^1kbm~wD08U!T-()o)Jjbt(1}6nF-2CUUvsfdmkO|NX{!dqlG)?W3d#_ zNqaaP63`d&DU>MKmfQPypkbb&$&`0)UTpXS@1XGj%{?@t>1dW9A_BdvQ_CN-0I4^+ zA6i+|Tu%D}2FP{h{T>9YH>wdpbo+q7l%}1nG1LewRR&PXLgI5z$&_FYGa6PvF-21R z`nm*H-ns&DU5X^7p7qJ|6UrihZob|t_{|QL%F9Pt1d4ZTsL}?Xrxh;6JC4e?s}caB ztgw(k8@v*gYGQFC_fq3zf%lZnM! z8BfY%8m=b`fvGP1yoV2B`Nj+|Cb0?I8s9eV{M?lU zO<7tji@J`FtowS!wx$iEk{7+Hkm?SlcGsf$eZqg_{#~C~x&(gW$5qT_Z3#rvqh;VDyEFRP_q4_Jb$$(q;i&)O{#x?7H2 z?F|45Tl?xq7oF{d4R=m6&Be-{lWZFwe$V_WR1G&(zS0zYW2Z9LJ9 z0}RAD;%LHX6eUO##`#$E#wU7l!Ok=vT178%bqb{)fBFKZF6r8*R4NlRWU1|G}YRr>77iEh_Vy}RPUT2E2IQ~7Yz&WObquelRt!lkP zQKFr{W4_i^9LDLNA2XHq9cgkExRhU1RNof(2uC9zBiV6LRvk7>2K6G(4se;vo`e=9 zGm$5_bbuCpMQJ)wUz!oY8*$(ZUac%YhHs-QhZT}kyl|C=QoI3g-Z{{<1>2ZP<@!v4 z-J;-0I8>gtF^@?|vSM9ltb#8(%%izkqD@xYo7OB)mwI{z$pxPhNu4EnHZ98s-xAM$ z+N5}VmhNP}wJ=~sY{@=mcZqM(?b|A!DM(%`32N%ROZOk8O${WJ8otst0=kXbwT9iL zU+~`8)Pel(7cG~oO6ex?*O}5+IR^r1&o1aYg5$>;V_t8bvQv9F)ogqq{c7=bSDX{K zg6mK@2Ku(kgO*V*>?&3?R~($`wzd-1VeCgs6YJ2;Me<@fe-zev3GO@2`F>>Xk6G+= zxLL4%xNps*+(IPec}Gxo;w7FRk0K$YTu>deio~__F9XpU8PVD)gQ_*qx^6$a3&O2x zduN@Yp(j8%E-U5XE_zU?U7U}hIEP7iuplf}IO#S)KsT}%=-#V1x3V|@!AEp(&z*Y= zE_G9+q@mPVsoz;cGV&2!nCoT@@rWfN%4e_t(3o^Zlf2;AgA?r{{qHPEt`*MDGdj6l zq9S{HGtf@azJ1zSb%nV;_Fz-e;_1>&m^b`dHB!Eh{xetT*eU_Dj8PXJ{kC<=8Br-N zs~>jX@uCXX2A%ffjQaXP5T8LwvPxEjaf{nvfuHb z*7e0+kOMlR>NAex5!Bu94$*p(fzo;-DoxdO@2%!{=9H0vsu0amwIqnFDzkK74z_CJ z`Llyvg!I9br^4^vkpa2B5*8uwj}X}BTL$~d|>@p+f2cf zgU&WKCR)CG`%I`>r+KCkvJm~b%H+K=(9hae5Vx2~`F$2imW9E+y(Mj2iR6i`x&{zM zP%3)9`6M`S<*^f+0`ept4P)jBCyDD@#zwpRZ?ZCcdOwZdi|-edGE^eHTrJmW0^uuh zt%zEH)GhlYew0YEtidNGU!)kf)dbLHcgoYt5FB#rP-N8J_Hf`nw10i&#?_I)5WOxK zrk>gR1(i8{ABGaX)1^ykczvOyja5wUTV{$wbsRQvMv0(CQy<@(f{<1NZ!1sW2yfD= z0Z=W%n08UN>rga!cCVmNV=90DEb=I{c$dzA;zA3FFKD~&CtIt{*Pwtc*K*qbXb`J; zk%QDCT^r1mv_jd$Ih2N3t1;$YOgxe-ktomYEf&RbY2S@KrJ_5Iw`Ds=>_EF#Qn&|i8 zZ?~u&EpmmunHy33<^0+M$c!phxOIdPk7?nrmi0+D5?)A>lQPJZyh}iN^}7Zg{k0|~WpON*6+<#!%hJ~=&jheiVQf36gTS=8P%J4_cKQ zOGJn%DGQ0UPK7Gw_+Z$<%Ho|j)x@R28J}PJ3E{aqtv1F8u-lC@7J>LnsP@@h=bP``#-sFN^fZ)1EWL8h(%D= zw65?ia+7Ur^AJ@aRqZ ze)0X-MQ;4G`m%WSg$99^n!}Bw9$1aNCKHTP%Hh_k8?k6Mu&;<`#v`sv7uVlamn@X# zgghH}-Kzw{1oQKJ(ziQwy1$6dk5kkH#(Qm8e4)Kf7artvHvdOP06RyUk*JW{JYxpGV5#BR-_A1J93p(1mBQ*Q0}p51s)-@YxEum5a8fu-j@0nR@M( zEtd#AATT^Vj8~Ke0(hq`98wrHJ?nm`xWG^Dq|Xle{O0$wE-{q23MRbb5!l@XRna4_ zu^o7f0hZ8P^tqrSp=w56309yVxwRc?9ee!%!~hkdoB^LB@vOzOeaOso=C zFokj+=}TK-N`7|d8WS4avYQ6RY3HL>%(H8&xNtnFw* zLoajE1nS&%c7|-+of})V@?v#;0903ZFTa2!Oy$5Xb^)=0O&!H2P-2eDMy4=~i5G8yCS`;ah zG|fkQz=&aTbkodZkn1dpyA@q-WNp-K(Jp$>%*<)DO*>t|%4C_{B1P_BP7)CDgQ^PO7>!aB58X5dS0B~(1zCQC z^&2svZ%mf(Dc@vm8`?M{iVcrfS^Yxase^EOBua9J%LAguPfG&c5D;MwE2%TafMn#> zgPzH1q9F#?7_eK9R6<+90?$wC!@-%PO%Gmqez~xNnRS5U+wCHd(NE*=PEJo~ig7NA ze`!qHN(?kgCMMg<24GkZygVU_8(^ZCUyY>L5s|@cm^k4^@!7N8Hjsi$4km64=uJ1^ z5&_X|w(u}6D&3(XA$6uw=N)!W_qx1rTV&%pnfMZJE^0ji5V|Nhi_V)k!rNZfjCdQ< zo^7S3#{;A^2kR@hXaMc0)J>YaxANRo49PsURw-1iy5THKar}G7bqSFBTM$MPA8ue6f z_5!x~L;7DCA|9>9N02W=u*b6@Z0G}(Ls4Q7i+ zCJDBT+~g}%WVUf7v{a+?)%^20ZG=Fyf1db{zvp)f*?khOgxiAZRZ==F;m@1E{UAwV z8#3zWGR9ERQ{H&z^=eyJP5f=Jlp{R#Iq5ocx*%ksiz+sy$`iVB z64N@f*tj|jJrmMmN7pSpM-S_*H+^5)jo`wx{sHV;kM(lo@x$bQ2oJCH$Xo2Gs0$th z>6hfCbQ-9a9m^ZCJCq;(r;Mwt^#iOQ9U4(@+)%+G%J!svueAFo`=wNwcTqSsOK*p} zsWjbC1{id4d%AgOa7?MifIkAx@?hhWlp3o*c+nRKt!!_|Y(0cS2iYT4Pz7pT_ zzd8&)aq%F&%(tb`j(J4o6{sWivEwfX?Qg$Nn8^H${j~#qadq=j@opvd%2iWX{nwJu z?eYNliAqN>n{{saETQrfz1x0CN0g}%jl zXLo*4tNDJ}*Y!yVGY=5^0~gl0aKsaq2B=lJU;wc5#8b)rPKJ_|*`TSRDfuOS3J#4@@k~ z89U(v;~+Xs;G0R>2pfnAs{{g}r}U}&R=agXTQq@3vW`c`>Y(L;gHr;=T<`F*-LV`M zlbw)0tDZ`kN8LXYP`3xRG9nsx8B{ znM7Vd<;AMx#&T^p=h;{^xM8HT)sKDgPM3>$&zdAkcp-}c3Wq4-?@H1|hWVEZkPbin zD4ekMNc2@-JUutKmg_aQI+_vC+-rG^?nK48TZ07MJgAR&LD5&nSj37X!*`+|Yg5{z z2Pmmb(f6AbVj0F+DCY5}o_)EFm~T8StYCBK4hf{q<}ch#JI=~gy?j*NS=kG*p>8(v zT*!<3gi=uB=Oych!zxp1YmGEk_}$T5U*ivucFh~>K~f;Oas1 z6!I~=Q$)P9_S`YhO4)n^t_Yh{uvS9GjMk6mu!uccUm`jEX&I@b_zggS?j~eI#=;9s zJE~p!@w({Ep(vUY(qZmov~Bk3JSqQKv3=p^uSxm@yBV67x7PP%JqGfHk}JEF+7cD<3x>1W0-?AeM-MER#xN zrAegP+ER!sC4Ba%c&1#&6c?93D0jD#5*L}N1){FW^0c>GKMPIxZ+GU}Z}m2$ag9!XOabt6z)qC?L1Bp0T!=2OJZ-#l!za*u1b^f+u; ze%!YtK@CQd?IOX7HUviZ9myyj>lYi=eb-1;RGfHl!x*c@xi%hW!)^vMQ!S2@0>6lU z1XVQG6jnaS5HU#t_ei-+e8Y9mu{VW(b0_>IOCu0`o*6N}k@>`GQ-`?O0NODw99O$l zUr^_R1!Rx7j-vp1itlAya}ampm?DE8WqhOv4!l6lO4;NI)|x<-yL;TQ!WA@`%L~7o zyr5e{54zN9plc7qVni@d#53P4MZIkcg5{~lY6ETgUZD;HWAqIBCIY&Vl%ec#12Uns!c9OzzUM1<-%IcorF*y%YtR4g0lB z;=?nciZtLPp-!f(f%Xf{MB0TeI`m0y|1x!D$Mr2(_WE7e!>Sei*TIZ4a&9Mc^L@>o z9+$SYnu@@LE67S`RE)UvloMUUqTMAel)-jRP3l6+o5@M)gWrFaH^JOc*zlrWd@jJA zI4T~_kc^(}t3aP!#wMX{edn$vOu`3E$qGH9d+jRA>ar1ZvjMvKHdpHW|Jltn7%?{ZD zI7^aP{Z7Izl9Z7zH$I@`!L#J^moMjWML#1c!(fNJ<8!dVFJJW60O-(4(tPh0at%KDbj1y~~3r5BWOGJ+XeAH6@IY1Y~ znP`6X%!xN132Q=m{Qgjap;GD2XUT6M1aUZiHP>sNYeg_J;1LwVPoSKkKj#OM9DC8^ z_aBE0EE25}UwOb1_TvjD9)7qOnr*TX$vFR+aD2EFAbR=-_yar-RV?e!&~pglsYGp; z@I&~`^U?^vz&V;8HrA=g?fC1{>>f=u7{TrsCeT2p_S!R$u!8t>e7<1u#8?y5G&##`3y#0`hGyPfH&RGjl1KnYK zD8+Q>K{hhdUJSZ`#S_Y;tM<{}#`pQSTb0Im8jp|7DSgwcJwRpPmk(R~3Jm_@t%85A z1-uj0#r}t9`MZl7i$Jo{*6;Er3fT%CrHWkZvur6)HhtZz~(&1E-+l0pUuIA)q&#uMxabgXv|Ayd|K(m0`=3lQ!#2H|?ejg{W)4oM(u zx_I2UQiGaK^JMW)<^Y8Edv=Yf@cxUy|C7f5<8MGB+GW}&BHvM(PG_%%#C|X*7!q=;ne@?F( zkTuZy>iDJ}&{LNlUILqUTM9v}L|P!Y@_OzrZ>3=?7I70F4#IxPhi(dVevRVcd|#7@m7CRdRxE|zNNxO+mDBOk>>aK_g(@Vs=U zw`gFBHgiuNWSJ^bqt>bGn*vLX&B)A2);0HWWW?w;psh z+r^~eT|cg*3MvFHWIkauNd#Uo4QZ|TOqLjA@Tb_$H`DB$;z#-NrK3=H*o7nEjcXh` zk8A}Ol*aMp_FI=|e#x*4a0C?;LY|y9qzo^4@})Wn%9L9emM|opMVBb?8GJK_emS?!~zx~xvh#$#{7*#PFSj7c(o?9BNW=(W9nn24Zy}7}|ZS8aKRyVkCOL^en_?ff%gn(9Mf?5Lb=ZI*}cW z_*nH9TS5f;nw7phKjSQUnsN(x$QIIMs(QcExci&G4Pn$!G*L8hhZtl*dfv}qG!MfOWlv6bMDUdP=hB=(+-? zI!&Pzr;^&{DAr9ctZv)JJz44ey&wJltf42EQ~1@VotsNDc951FuWXbWF{ou#3j4V& z?6dbLKMBDkdrE`S$zG`L8?f5nRqXk1^~Lj971sZ>TK~a$vR)u9cNbKVFWnz?-hHKs zVOzTG9nD01*-Ghs5RL3USc(RStS<)uXj)hEEKnQd3h6_66L0#Zd`Pwm5H8U6GdAv- zgdSRBv$1NxtLk0rz$QaTwD&T+_ULJ-zXHS7|0C3HN-C`)9ZGj8C|yI> z0D^RPOG+y(CDJoPN;iyz(mBA;UBiIH&|LJK^WE><`_C-anzfkU`n~(z`+1&SD8=B1 zSv@J18WgS1Ly52(z0dZHu05=>58GMryX@UV5tqAt?r2Q(qcAJ7kS=pv&(61@y@p>d z9!{#iY)A-s@`$F(Ylvrj6-~#P!TSiyJg-x!N;W3WPmJ=!U|*ss&~vh8m{FYtZdfwq zRPdm4j)mYyI`>+>XjR^atYlC(jhCJv&yGQRJYWV+i`b z+X@p*P5~ue<8ubRoyxoIOzjLgaT&w0dnQU`{@%XRJ+Q#3j{6Z`Vm@@%-V3$N)Zcvf zZd`N{!==8GVjh5DOgi~iE z(L^|2umj^CV~0luP8zk+6xp~5A*Rcf#f0JM-99SoPc0EnPT1LpYN`*MuvcDmnX%S~ zKeu?An$E%{S{AEvp9&`K;?RdoLCmu@KD&)RnYTl9=6(5$$VpR0y{;kc4`V=&8aS1bRg&fxc033E(8;UUVaTNvEubHleq zR%>8}8&~+Dm<1QX+9^zc`CQVkM}i!9mo;W&o$RH{xCbRBUz8^{b_lVZ_k487+P+M* z8wpqbM5p(YrvOp>C|us@?#+X{ZX{4-iqY5ghDgpqrKTye&NpA7Jxp;4sSH~}GFF#F zsc}SiCWS+7VU25eH*xDd5Ev0l__ti%VBs*@=}-fL$&e=|#=SWBZ^t~jr4pFRcb_~B z-}O2a8PW|XUqPPEcvROL_smJrO)d#^$6(-|5I6IbXSTh4Dvuu!Ch<{F_?N)O_o1RU z+O&F17h~2ZBLaViNT)1ZwWDOE?{mIr?b%Buiq4AqzCz8tJT(2ZSd2i+=)jY9kNffy zUaqx?VoRyw%x38(uG0cLLwY(&rxQ1EeQxBU1K$cZjwX2Jxf{I?yekb$8XU7*DuiDd z!#*t0dqy$U8L*i9iXoQt1}_Y&-qv=Z5Bh&fD`kE|_H9I|NH(uJ1>6o?{rxmf{J6z$ zo%zc`6d3=}5dMkYf4-K*9X4W(8q8cXe2{kqbD(n#SU+ES`G!y)#EWDwT)jDU3|wpV zsYSBYq}cK!%I1!Y>s^~zi=PV7D;>P+z4|73(Jq(8%@F!jR^-`pA2EuCO&tj#N+Rqc zm%B!kvHFP878d;?tT4lPn8Dr#uBVJNk?hhXD)5HMa13+rf|zoy?K*?L-ZSNp!qR2m z5Igk;8(vQ+fn1L#f-0BJA#PQ$K0ZZNKB%)(p=AvKK75oWjhwQm+Gd3t4sc}ZTcfw$CW^aa_7Ke`(BHi zANu9}WmD|kcjk1_XVrZLq_=}ns)t~-PS9(D9eryC0%DQxLiFV8?mQ?&m6E#EJrzpn z(AQCBfaPquRuvdWZ=!qU-NMX9|H`?2kH25^?dY`hI|x#WUs+}qTB8Mtc&S5gXMbKo z2bcg&gF0xNgy}~3h4;=5 zH7sc~cW|~d+~WmEYl@V&o8&9sy^l!^O$W}$>Q%9oKaPp ze0n`sJ&k<%)YLVIB@u@{F*6V12o7!(oy2T@+hUj-(rxQgyUQ7ee5$P%D&sPp;O^!T zk=gQPwNB8gS60i`Gt$vN`h9p&p?WADt}Zn3u_z7D47%!m_~yrFFxP`)1=dv*5wq9v=`>lsJ?Vy66hqvkWa zpCq5|IrB(+iPLx7lNWg#?0~j}TG0X^i)uX|%$~Io5q(-BN6UJR9>iio{MgpFV{5Nc zfQv*MS8A}T;Arj*Ndzo*;^H+{>Nq0`8ZXdo=QD;2PQjTF&o4e*m#_Vifjo@l zDNBzwmc7XFoG1CVwXnUd80x=Hfg^0^zS=%4=iipMu5$p%Mg%?)ohsC_uFq-#M?Zea zW^_taB{ryDLjfypb+zg)9kiN_&Z@e&UG{*#`e1M=vosSL4?9lN+rPlwLwJoBSbo}D z@uZmjW!HVr*`lM0=oz4Wv$i&3!96ACx4%YYf2yxVajY9YqvZ{c#@!I^cTBsFLch2c zXyt$pa8}|AikAJ2Wl4fFUfzkv!>uGz*UkJ|krWoM^w>fKejv(pUx*mfuNK;&e9rn3 zM2+yh)k1R_CC|<)!y(?CEr+*%7f37ONJdE+NfpD9z84l zi&xxMuAJK4spF~TKF=K$m!?8Ilt(;*Uu(HzrYf`()9YDIy;cf1z2z%$0{qzS|Fri5 zZXwuQR39|)|BiphxbH=Mj|KaSY3|#-XE?Wss78R?#tX7ZL0i$iF1ZnVWC|le2t(dT z)yF!=JVTLggJ*X@cV7i5M;aC~1}tUf$b)r;Q7{sJ9y1q^8({9XYXN&({-Jvj#)wKD z9_Zf5n!p&YwUsNb4i!awF8V=bWYf0<_cOQI0!F_NFh3nG^p-@jMm8BrF$eW|+la)%Md(|cH zX;iW&?0_8e?xR^ugF%{i&ojnov^AZ`LwIZ-sTk@GK5ir1!6ce`Sv2lYf`Orfs8PFt zH1P|CbudLu6XpwS!?+CdCl5pwHp={-#Z@F0Q)YW0ofNb09=h`}hh$923Ta<4{WN&x z?OUwsUY|w#WzXkrmj?@Pn9WBoD$VaqJmT#VZ)Q!%1P`)bNK*;YzJ?ZYkY>Sc25J!< znK=#Dh52{3d$$c|u11>r9Nr2bed;A*A9Uh^2FGS2`VbP^WJ77a56`2lF%SVxj`M3y zv6hU`j1EUK+U0Ok^tT1F{;lF^ShcD%ZQ)&xg{LX7jk2M?qE}sN&=uh;MEX}+6+8Kb zFY7R5ONGv2|CL%i!OfJMZ{vuK9`5V#;MJ-IO-PkdFnht{-wp2Vh~F0(VP5*=|3mm$ zCrq+lG6vnLaGs#f>;>_8r$DKxDnKYMf#*pVoLaz2NDL4_7QSSujT?1WbaR$fV=655 z!0pbWRT;esSy||k!uKTQ?m3g|{g1x&B0J#NS_1@I17W0zK1sS-(t~KVFPITbky_f6 zyz9-f&QrwmM$V|xLFsyOehkH@egWmaEJ7Elfyd(Lr939~Hh4qOAp7{zi+l0pp@h53 zvzvbKms5&>I2JQ=+Knrz`>)B?^wNj)r}r2#7tAEEFlG7RZo=_qS(PJKiE*MoAtO)giQjqFC{mE1TVZ^ zl}z(8@%yo$<>sVrktDs@7k@%o@k1R*g<=QPJL zSeIT%h*>V@z*3sZ#vHhp*?-IawF6l_%r;?+%2azHcbjx1{Tn|t&IH|+g-N(xDZf!S zypX&ZG^&f*8M>&zTQbfauDETl=OT4`v+_`LSN=ZTnPvrgaJyMiTK7@J&ZBbjz_xJG z9pb>1G|EGVTosQ+;}Hx+$m=Hof)R(qe>E!H3Y;qUSPE)4q%Y?n=3mrERKT|l8uqLg z(LPy&a&KD{?y;QO)QT_Zl+HVa*-V$(@76oQ1qWE6AEXHg{e~I~|Aw!=xHLD|dnZn} z#d80}2mczV5ZO*mYPumH+M~ERUg)*-!>8kFFTmbzaAIv^H*$i{FQ)L+NjwqUdlYGdsORW*cfs& zk15vOTU9{!(Mzyb=py27T-T)>6789&yIu%#mGD#8sONa zlTIKFu78TJexJ6e{<{8UFkYBE0qG_^YQ5JkPV_MPChmQ!_$AQ!2%4pQ2s5yt%lHor7}5(W;lv-?Lc&`f%4Z(JlLceyP0eE`{mH?+<@!TGye^= ziFocl0pIYz);d9iDl8)FeuJWQFK)zY0`hK%gj(|y;|nt?t={{i()WF5_Hz~!RYf*U zjcAE_%HnHv*vrjj$6q%o9=iP8vIabX@r3%Doml2?ncGY^VqZL z#>rgj_rI#=!3^!>>MvXmdmMBJ6PMwykM?vt3pXcW!3mS*$B)HnH)U*8qX6LIZ%z(fdHxon!o0ZP<=5Mv6Fd?F6t@+!! zJphXCI;HdMk?nV*^uBu^9);*dFa;AqYfv7zeG?5dE=MBY!G?`j2OY`VKd(&fjnR%J zRa27=;?;$X2OA)b;3`hpc$9mC{+Vi$T?y>=nDu7lPp4n@+xn9y84DDLTBSAHDmr*S(MHBkt z@sd>7qCY#^b|zOhhK7@4jexPX-#wCu@e5+&*VKt-BYvOq?Q)9Ct=f%5)^keL!w;U7 z^LInMYOb3mf$h!Zoq>X$N3`Iw{Z<3{^Ugo^;Pe~|H_WIXIS7&aV}5^q1cLw;_>4-N z)*ohM;XB0~3U3mxQgqGT7QNE)tr|E`@7&jl!ez)M7y@)SudkP`3~mcI6VQ_iOD8`) z2ndqKB`UsB_!9MdMFch-zhmcXBf{xO;Ti~K@8bo@;Eb7E@0z7Wk>`9;;I}%{*E{)f z&+HW^);&0xQ!fi`qB@D2KjabDfbtF$*+P|)mgQl(K4QNMRyOfnQy8_;K$SZB9e~06 z^~n4g9+5A}W3TWYnHZ9Dz}qAWhSS+Ogd>-h!tRD)m8Qx>eOB)sQVLB^H`7(qeU3L& zU-jwp{N~2uuVp1aN71J%CU1RxjdjX{QL12WVUxt@9fQc7HHHteW?PNtBXnXzDFJ1B zB}SI=I6QmyDX?xiRy%tw89hmP@rIH0r z)NYPZEffoRLrpYoI{*NV1kES3ypMS4gB0UHzg;wBfzlPsGBJ4p%|i#5)1OF`v4^@_ zxy$GNtir52-fvh7+eZvR+`;-}#+qT}L&f|h>;d8u`G>!T`tt*f%eE^6h>K9b_$w+& zIPfg)k;pFukjLJfC(Ouk1FB?weNwQJv#W=bCRYws9WXNQyc@iw52! z?*H*9LY|n{7t?{<-vxGw!mVfOvX1vpMe+k>vyOc#FRk#uqm$+pi2@q{S?nR+p8;+| zwJY~;-A;QwJ_&#t&Dp;r``;$^jnYevwO?MyzoHQw?Rk2>j2H~qDA#_!B#cGo87WOw zSL-@u+oVAZCkLD&vtp;fpjSB6j&svdR_hW&9Lch3xKI)bEk+v+>70h?5-Np#B*BJG zyOos=khOm+G79{l0aIHu+3B-GY*G6JsK?K&fG5ml&~5)>5X6rqEH=nOuw3z(J&e$0 z-%+|Q)9p*Qqyafr$97FE+irutu5UtgtJC2LMqUagln$&1Y?vtt72Rp7#Cj)>^T`mn zSP#o%Y+Jec_3QA8&b6QdCKIxCE~d}QL0SteaE55bqq1HB^Az8QsD^irZusuzd=tJ> z%64<=649x1$yodp&~3zOCkrZc59?gsXqZutLy*9V0pnfLZPZC75;Yx+JN!V1fjX|6 z5jl*e-nDmkDM#)y*3D+BANO~VFy*^<`MjvDhh{ubm-TkBkmyRhc%Zy66~Q4K^F1i< zpw@d*-wPpZp$mUwT_g8I3tS_FMEKF){T&6`yU3|_=~|+9ezME|*Lh&vqXP($rNA-X zp+2}`#m;9Ix)0C6(PWQ46u6TS9omb?3gJZ+s9K?n*ql?$Bii=1gK7*!8)XuS4V&!s z43JcN#Trv!{c_}~50qh2*saJ`CD|?N70_Trs3a=HL_pA?r07c`q;AE3OIiT@h z>^0YUFjc~5{)#h#nI>rqtdM&59nrYq$csXL6e+RF({tPeE~9}q=$A}C>`)u&Lu{tS1$(A2Cv9?o z>$?$hlE6~1&f&R{_t(9_e`W#bsGV;7ENI}#wclINb3kn>=oh)04kH#OC|ZcFA0BjZ zJ`|73{bJSpPSU{$^p#k`2;cSGXl4|(^10K27i_kcb62PCa4H0TQ{Sd}bsq_KrxSD3 zss80&7vmPWmzZ2iWo$TN6$F1pzkEo}rr!BMnI*A+e2c6p8B%h* z$bcZ02CwESz>|H5#(`4v9IFe-hIuXU6+~a=A4pO^pytAq8iqFmtx!D5LWJ1h&WuX4X z67|2a#9r-2@{|9@5*7De0N#_Y*YME;f$h0G88PCt25&r)PlgK+N?a1>+tN6F59MUP zlvR8W^h0acmofx}VA1QvRIt_tWmV_ul>R%eCBmkP%usP-OG*0P*f80s{Q5V!@=Tnpy(y? z##6jMkdM6C{w5l3Lb!B16wwC;thW!0E+6sUWhV;dzwNWdc-lsPvsK6b9J)p_P=-hn zFmR^RnUFxWol}|sa@u^hz8gwxCT>M^e)f@EP*)s}w-j7yH2$2UQDHCFr;(<-V?2x! zwCYuPQB7W#Qv-evG^c%<2en{?$WH! zGi(%Q1)a%AeS+e_EzgO-!&2@p^cIxOw&ALzuC1;qf)elE`5BR}u-%%IJrK3vl1J|0 z&dQ!PIe{AHd%4;}Cm@u$RvQZe>^3s3?vxu5mT#fAp_2$ntA)#7ea^ebnUl7zU(ntQ zkZURr(~_^p&Qd>0A1^djQh2y8ddOq^SeVx*M)~`38)3TMIDmpIx@h;R(aXZm$$+Jg_AZ}?*cQu4|Q*y z(5od24r3W&pQ%&tt#dC6uqY-@;!aP9)@J~n~Y;5(lPq1w$m53XJN(T7=y73*( zOB=wQ2D1c%gEOoC8Pta9d6V)a^^{804#R6Iu;Z|Bs%^ryPA(I*9vh*QCunC%;)b|mp zK7)f~=2N?eI;pVbSqlQi#-G#9w?;C(`!1_F`)!M)xv%Wito`P%4An_9o^J))3C><5 zxQ8`XrQW}i4v)$?{Su}S%3Vrvis{W-;_$-*)bpEpmt^I-sAhjh=Gl?A%1FVyBF>)p zeKC87N%B9@i3;-^>bg0T6MeAkk8$_VS6>_UL|=G!RVWt@-cMpin2nre*XsrEwILZJ3n8pd7K}KPOlUHCxkJO zc{taJm(%?Iy?>(Epv>appeB$T&%4HJ$9lK+lk@P%q(4qqv*wg^Wk3+L$m!**V&-1| zVa({(YWk(95C)EOE!jOMq5cqien9d8P6TIIwuJFC zE?rYi6ijwYIyxj?^oN_Oq=AEGE!b2>uaqhSz;FeVoWniTPc0%WvvIxJ(|#umT@5n5 z6!t$E%0+j0YR%c2Sl#H5c{P^Sy0&RAuJ3g^u(0%3HH%UI0=KS)u#=t}eKF^H*3YYckDZyTTU$5LLb6LG?KJ!Bc8XYJ&zJUyWYJr02u*2iHJPfAaI|+CK^N9 z?LrwF_qI4@>{6(S0du-e%`9%tyq*parea55UwrHl##`dqyhiw-D* znmqr3!#<=dHU)16`$(Rd z_JnFLKdE_OsP?M3;B2c%qR*byaef+CS=`Zt;=<^rReX2jY(&rNVL*=8)X2_F7mjCV zIOdx&nd54ZZ249<@>mUiQC9%gG|DOod^bG6J;tIhryAc-fIQ5ZZzzchHBilPpN&J; zTu#)?>2}!YNHW{g5{PU`(@PGa54!P=_O8J)Y{7hLA13Njv{>z|wI`6XpVS>E zl{#>6_$Lhtilx#6Q|ReO89w&Rryz|VaQv#$pSh+rG9(-XwmGnqZBoQu>y_J5i(gn> zE&0L@(WtfK(ofx_KMg!#hLu!%#}H8!wjklsI}U#3HvITFGp2>MSWjo?4B$_3kE+u^2uIS48R_E!Yw!Ns_-ULAUUleMJy z%Ud{-iRn=3dT?aH@O*x;&6(zQ)|XYJCbbDuhbLz~}Iy~0uUQ)l_AGxiGO-U6I$ zOCSu-jFv2Rszh)+7CwowLkxUa_=R?f&W{06C;ps;>|?rCyX{Zua+%Yt@)nxwGfHDX zG;bov8}!T%2=o*?!8jJKF*g`S5^0c;SMA$Vf}9u@_pavl%WqELpn&x}Dms=;23Z2j z{H+*?P((}vXGYI_dJCkz*Ba}weyOqUh))vP?Pw6xtFV^=2ZOYFb@HC z0GId04vspGS~kDXJs{lW#mr=>3;SjDECDK@{=rc5kafeDA}=EZt!)g7V#3142M9K( zXuRnIv)ox%P`D5g`le&c-kwDB-8s4|&T*`{DJ%bd+L&-6c=dP>2V#?qey8>W$Kz3H znZDYyi96di@VYXAU{!)^_xzNP7y5;QgSYARH010v@;Jz^3S)sVYt5{qldDeWLm?U!ns#kugQO%q2p7EK^EOkDig3>z65 zy5LSbuyU=hhv1>!Ti}jJPR`o*ygBnBs1QGxIT!Sr_5>!s)0EE1zWc6f8eJ7f<@W{3 z*=Cgf_FHU4lOFy}U)xy^74BhGjzGQm*AS3H*p{gYw|2IV!kqy@U(pHCCCN>GKQDjI zYX`5H<`(4Kyekkydt+EHBBhMF9|2c+kzekt%=j&a&Cp@fJ=t^TdGTrvzRrhe#Qc)1 zJqn7MMAWfflf}(`xotYtk@BA6xUu@^^BmDAqU~#fCILX0BY#n62=vCD7$^P_VH-R# z#~nv1=jvP8@h1J!_LhGISfHrseEJtk3&%e2dM`_8QlTry_6GX)`17T&U*(POlqB!N zwjX>aBI7kg*H^6@`=84^tK$MleMLnoQiPZp1#V_r^)HPd~ zkvMwHyO3j-;_XG#wofvU>)Qs-cmo{~9>M;O@+&0TF{174tfx{2|^9p8d1dMgew z&4-!JUw6rLWIAU-=I4FvbPz?Qcau3E&P+?UE7wFHyAjl~*`bGd`Mm;$Kt2^5e?>fF z!*)iVtE}81U7a6CU1P0Cp+Hp{EAdOgu)82Z6m;_<8S_-+zPY)T;AN3XAW4sXX-FIQ zcU6hE4oTNv%8~PLsxQ{l+5x)?QiYaKYXCsD*c#tg;%c93>PfWxejey@$PDa_n)U#HwYOwa9|% z*VqB`7Ub3Gy4fQaa=AQMc4Z|t2{8U^;RUrIGev1YU4^F4<9k>E)m95bVlG19#_^A; zF`nD#=uYMXcx)NmEoh0f&ehLvxY3I2-cOc0B`>wpMs~d3B*zt!**UZHfEaOlE^SK- zq#_Mux}73B-P~KsvW-;?a{+HpxUuGbd^n`#zz-1 zg-5^82r<3Vepjon$}w3AQv?gFCB6}BsTQI)zS>oEmQWQ-qYmdn+oq<%{w-|yju#ZF;^-2WE{-m2*D@lSiJiA_Zb zQZ!Bb6D5K~a-+=3$SCfbKf0*Zc(%3K3xs*e9>5t2+8w$WjJ8d znXJ8hp5@oNag#p7A`saXto2cjTqDJjc}1w)v_F$=xF16Mg`L0UdOLZ4y3ZA)PVP=| zl-6Sql9duxm&{)NJ&JwCxXf}5K_zD-Wwm0f>Td^1o5S}7XpJ9tZ#ONy|!7`d%%@8b?*hmXWPfxV-6Nig<6x+6Nr+`ydbV%7{D9 zsBR0u5lkwqX+etyI9eVDYEKMk1uq^bfC8d7oo{(k8|8`HqJm)eMi2U!$GAmjPEyq8 zrt4#;NhLYtZnMu&y2eX`($F zv%g&Ps_0XE2sI}p#KlBjruvX4;LRj)+CjyAAv z&z^mlkG#zAGhrXtg}>NT^B3mekG3l?@4R`doA?EdEG!(nrBQ4lRHODaxfJe9K=Xz=^(dTWoJx*$?QaauX!g<68obQ zJOCU*03t+U*4?cc$^C#E1hf_nIHTA2D z7R@7`V%JF>hMqt+PDPXiEy*0Q=-lT(|DIgQsGY5a0*8_F#aQ9|3B}3P%*&kxS;B{B z3|0G&9@0`xT4hG8wmW4;A;f9{NJn2CtD}o>j6cjOIGSs*Eo_!z2BY+Yj6^`dprGZl zy>;XcUyK-cUF(UEc9KTDt-md^@vOoq#@9YYe2~V1I<3Otg4{F|a@|U&P$ zSnGxvDJu_1OxB8JD^J9@Y(O2vs01mL=XCq<#uwq&yEvcIIrsI>xp2 zI32Co_caM*A_D^LbzvR$z|oVa82O{S*GyrbdeEB^^{)hUZ=vB88hX)bVCe5}%IJT_({$nv$F(Lksd+ z6$K_-YNDUVMQtu`rGP{H8(p|LitSIAXYB~y4-6`War^D9Emnqr2tsZp8sxDSPz5nD z##9q|xtXX63p|}J@9aKtARwOvTKo9ck->sO3`o~w{-m4cZ{2TJ9cTCXzmkkyWcwwJ zbY@gAa@NE@4OD^L*M)p`U{Kt5oOK6A465UEY=6|=9N4UgBS{DZ={6gn%IgSz1y`w|L&!~zbGf+t z3(o4#5s_ydw^SKN)e)P~rZN8~Mf%qP{J3Y>#D`t0#oCWdp6hNb+oC%8uyCXzu+WpU zCU8uP6*-$-RgiK7{ z_WAXnPOakBI3kh!rrCdNe?vV;ZOVJr2Fm;2&ub_ZoX@Z6w{&KG?4CBBFJoF+Gwb)@ z+65O193|4nf$`BAD1m>b7Oglni`Pu}uwS0%0g-%MJ=&2b*PY4x+kJ{4OPj}rns>Gb z%KZd5xRrVmrjk0c;>hCt#8Ck8*ZZi z8IMksVdH>d@Y6}0N1Xt>t-PPA=qc(pXEr2hOlZIqc09g*c$*rmcXpMXm=noe%DSEj z`1@Y}otD0X`Q+&rlsnO}8x8Ilo-wja|GDi9ClmU}pPTT=0$9593On#(0e+1+G-RLI zq#u4)RvDQ1%TqBT+K{{-*lJl+wDQJSGcggQfbl$MAE>kT0;i{H>!GU8CwS#rf*t{# z_Z&Iyp~MGGf^RLowsadC-RPLz#3&cv=dU+;Kt2ao^QsB0f!)*Z;o*PGTI`mm_8cyc z{M+9=#4A41()VY}QvhvUgHQu=IvH=`(c>~zMIN7g!3^sRY5Mq~Uv`MYSAc-SxUCBS z-I+%3hO8|7cD*LStA^55TX+f??xD)E9SfOTE%^FSZ*WDZ{_&Jz-{De0pQ{b(IeF{B zOwE2brHKZx!XlypQbgFO@!5Y)CBHxcL==J4&REg}VmB4pI2bh5>~ED0?2p9Ocu9e1 z>M+Xj{#y$pp~4A%T9NG6cIYV<(c$xaeB};2yVLC4vUGLKr=NGa%}G7{r&6LAyMVjkqq zZ6-9hirjbggn0ibw?gn+_dIyKZoc;4y#5Xbo|j`84k~}3p)|jnD2%+?R{#=}X7IYP zz(VB2+&>V?kh0f#EH-K_xj51xN@W|XJvCDj{+Uf}t)}0^#DvgOP(cJzf6G(`!y$^U zfOuhs6nsV3AL-qdH63~1L{i~~XFJ=!484vE6hYFtJZ-IC!4bl^>)WQ>wcoC{o)QHD zSB=W}$xlY7+h-1Z&EK-uh8xatgo&a(IxR~meon~EO3bVLUqj4eU5rd=V`k2!^UvvD z)mm$~@1Y0;29u7=f|4(1;C1OXux_ih32?VfWIfT%omH1N-x z|Bw2aO%fT*<6jfqzyl=77-gD!f^emN1H^ZwvQr()sscwGBi=ODSQO<>7x?0j9gr$U z3JPVqdAbWiOOo?F6*kBt&jSMj#8<1IOf#0iC-i?AfV26_Zx2i1da2GB-*t@C=Is=1 z^a<8jB34TwcNYK@&_e2Sh1KGbBaURG?O`uERc)EZqn|azZ#&(0U}2}J&5be*yf~!( z>=0gNmyuiu=wz~&qj_}bVfLSA{tMGlDPsg0dAb+LLC9fx53?+^N+x7W^zoYj=k-@P z2!X~La}{Rq<2DyMRF}|Y0l>ZhQ6QmY@13< zE5Y(7L2|eHe#1lYHi$bLi%^Q@#Say+4QSrZm?rX6pKdoKa%eS28kdi}yQx%dYG~n1 zD!H@I=E*cc9m@W@|6O~aJ33((AmXzy$S@h}{U^A^)ZWRh7@3!V(*C#WWw>3@n)UYb zHBOH>a(LhrsveeFbq?4J()E+7%0n;p(>jRQY~*^f>=3M2nB+BTc*wpfeOi+$GVa#B zeVcIhV2}0E1`ko~SquNr>vb@9I?ALkgKesKZ=CLGJ;z?80Z>ma*3uA7CTp=m^F2Ny z*5q{O*sS%JTC;24DyCB16SYAQ+S=<8{p*>6+D9;dcv{p&9}Q2SMNB@S5Z8lq_zjtu zh6e$X&xG%@N}N*NoTfXVPOG)!4=lKWkJ(rKJI4|uqQ3zkx0e-l=;^0Jap+2;e|Wy` zGfjmXZI2&cX)JbRf$34sj$3O44jstSfb!|s@>Ls{im7}TO$Q9g{1)Q9=z^Ig*K#)W z#IXP6k8bT2_uWRND!YdoM}2&Iejz!wD^I_9T}q5S)5XMhGZv+$ICCeC+eP+=qqM`V z0jB#zHpnEmSqMVoU5O#SCkhpsUh+XrL&(nBSoFBFY)>MrS=mo- z^A&MzD%(2N5XTEC;au&h6YMOVu&*Jr4zr)05ykG@U64$0I?ZhOlce}3X>iLRldvw6 z2NzPQ2ej?*HyKhwv|Ev@Cg>NHpWV5_ThBYVv6>98`pA2i9Wedj3#D3}=aUYGwQU#d zIE6N*^Ee532(a85z>+ZQ-Z~0A&%c;h@GLs9k&KLt{heV<$Md21B{wX;Pgw?XwJkYP zW4HBGzzMb&4#abN0@)6DpF?p}J*WE#f4?i!=HFBnezH38pP=|B{19W&oCB_+O!aD# z`yrjlXtthckL~W0PXG${TMfg#2?j#um*)3453dkY&w6wM!F=NxzDs#CEl!8);VzaU z8M>w9H}N-@hy->E*|CYzz0~EnewZc9p6jTFQd_WZX)oNPn|j%(rE=U8jvY;tIT=uVscn33&J3%YRCaeiPX->{n=VGXzhTj*B z|GYg}(|vD+h{(F33O?KKmiC#$Mx=Z)DcQ-}nlTA7LG{c9t1|F>pa-;eEyu#Pn5+zW zzg3yd1<6{A5OfHeaIaw*Kf0W?^IDs+>a0mkS*}K?4i2eAd|gNN@Me|;$(qayvLzLKXnf8K_~xr_ zy`s)-%CM+BoG3wfGx<&1v-4mTn&X_Cm*=n1XAXoH7veQs`(0MVR@X}CEsa4&1#eV5UmP`GF~h5Ze=7L(l@ z#&7JY6f!mXaP**d^A)_Up{yKvPE>w{Ri-8&&i}BGnR&%6Zvp_Z&1e)#T1DkC4sOg$ ztU0~i(txt0Xw&sIJ`jeL0ICtlTSZoY4G0F$Oya^F7YNa0qla$LXGQ3^110+y{wC!)vV|PamR}Wr>UNwjXzPTIriRce3X<0&9UvA|`|h?gUC**kyo3d`?3k?4wy$d?Zg86u{@DgT zqK1fYIDLs^L_r(u<(X&o7YKoK^R~4YaRPy(j!-AB=YLF2mSo?mnqr06(5P{)Wy+_x zWQehj+oKCF-rrLvr*F#&_$o(dE>5E8s-X;=?Dvciq*;mkTPh94XG*Azck`9Pfj)9A zr7XLXj140Y&fPX41%#7NNK_S{e7x>QdpbqLenKr@bR@S~78bgt$Ba2V)GM1XW9T2t zauCFOU*exnzj5Z9O_W%$@x`b(R$!5Gr|pL!V?W|uPwA7LSgK9icaqYYb$_Kf81|cQ z@ldu-R1f3-zQo(VR-PuPzvV$5#mcH|&=moTY0jhUnP}HX3y_nak}Vn$3RaZ=9$ zTu?}>qx1|seyopmeX(9V@Emnf@*0lGDUf}jK(bb8mA+#Hb)5j2c3Ff2thDIL6O zHf_v-_1j@BKF0ly>OS9f=P&yZE~9;(ZLG6a!FRc`pNtbxt1_xEIuwh+g$1Knw}QO| z;%8|0$p@mKlRM74?)%L}&z`|nUp`l{B2zKY>U+&S$1G^1XB>lMq2*D8L^s$!4d%gb zn_6sx`kYfka@*R(PL8wY6zmXs_ACU2QfUjM^F&0^&;N3iPBg#K`p9zSzkE~s6mCAS z_2@kf$zc~P8)kM@$sYQaoGO}=>G<^Mx%JeJb#kXz&W4!jF74;7E>-G{jtd9cBOBWd zU(Ka*BcO3Z9g;U717u%BBS21NyJIT$C--~@Gvxkj;>X}eX%BjQMegiM)ykUE>JW|v z%jpnCFIixvu^(#}^UqX%UCZ8!w=WbX5l&Nv8U8`VT+sGxiD+u1c70oAslw<4Rr4>a zqpJaB;PTI|lsF>LfKpQweEh?Ekat#OO+61~>+!ixC#6XP1-tUZ1o+o{xAy*2@=qEX z*NO7{Upmi>Z~XRn84-@$!sXgYCO5w*&8QX1BXG)fxH6*STPmpc$&BkmOv!7GFHgrr zop-OW%ScYHdjw&z2#E7caK)U$tH8Qr_J*8JmvpS(F0#Fg%;U~?dNKy7?* zb-}NZq89kU!olYSNB`yvBZ7JFtck&`_a5Q&k(J^-4+i%bpRX3eH!2abDdgwBI!-=; zL*^RVNPC!Q-?e#rvL`7VPd)frnvkaaxA;eu6eOAY89b~vX{D)y%yOKa#~qV+Ehbtb zl}04T2HmYBCV-Ep6o0iL54fyl1G*gx7l3wP&;_FFOa zr|q7Fx4k$ob~m-vK++XW435}8I({prM3Km5+yit;u6zZ=yO^XlQB={=XfK8ikKD$l zuFAVhZ@OOG&?YERG6R-={rbd}I_^>R#hoQ|t?TSo;}j91>fSfQ6yVmeT?*N$GZU(q zaJU7ff)3@IsG4LUWZMc2#bMar^4bdSEtZd?i2pZ~?>24^=BY~@$3JeJo3+60!cyK0 zH#Wctxsc|m`?Q;sh@c_b*={x7X>e}@yg{;&9LKkvKFtRDd0Pwk<%f*nyJ{}+e!iY7 zZ>8Z@JRG|%xrL@u6s|n%8)^yS_4(qN?;FtwDdls!b0rBDU*(o;g`^k`ROEt9=`T+L zXwcQN@Z9=BwvYm(jL(ps5i-X3QS@IVZv&GStF^Y44dhuzA?YjG8X!sLt|nM?cX-en z$vR7WXnfrZzumBO(HH_MttFBw^xPJ}{_TQq%}Izhc=cj2;GNj11d?JXc33N8qp(xj zfq9FO&^F7WqzqGA4Iz&M6LV{vQycc9T(@*{NNs~Xv&R$7iYpX7xL3qllV+%P(L2P! ziLKgW^A=39E=46>k!TlIB-s;a=3Yaes{x6ab72a4n&E`ZT8>O8_*{idYy>09=an0p%@^#YYzDNa*aSOkF`cMI zfi-tnBaS)4w*Il+#vnE&H~$fk^ezDVVj=p(GGbX8XtADnCt!_+v2} zoni%KqaD5W1w6XAbs`Vzm#(ly*VM|G74Mwe!f^srhVm3tJ$}^WqpQ7C7Sm>SE`i+KJ(K$8X>2pYSS5r!SPCIl(-}7& zv68epK8*+R+da-8R6NuK`M5mxJ9AAn?~7^H*W?&b?(z8K!2XaM5Sz8OsBPdtxK-&n z)5w-~*TEgxe6zUjqicki7@V_&#!OB=och099GB+VqCys}e>q2q!g$PknPW5dei4#d z9(srd1<17mo~>H>L@UT$YWZ@Q4JLUTC9oKU01@7JUix6-KZ;kcLbKkU6_KvY}%J`4zw0!lX` zAzcbcD~i%e!_Xl;G)RkrsFZ?qOLsGL3P>Z}4N^l&Gw|*KJV!X^`91$n@2BV6!0cIj zt^2<2>#nu-E|N>4G`*qpK_O&7yp5sNes=ch?vs4IGv4_52#6=khNOXW>VLW!4kRRO zw;hm*mjHS!*0Kpshnrtfb1)%i|zkF>q!fr^TWp*}IoB#v23l3w^VUGCoCY2VyRa^OX0OpOXWCtAmYWZt60~pD*>*fL#~xC`)d0{miEQ?}bOH zqoaXJb*;srOz-YD9D-TL)YzLTN=M$3z0nTKO#P=^yk3i`u_}F3A02yvAWcyItEwV< zJwzbclw5#ij#{;IvPSNe`KwuXNkAXMw0M8(?%_Yp%V5 z{RyDgwI*oBsW#tD1BRj%%@_3c8=q$CTD$YN%gT5e`iK2Y(L*q+P*f3km)f=R;{nxrq~kYbGAQw3 zkMMrpiyR-Qq$X5gxBk%Kf$PSSGr5W)fw@s?hMoz3l!}0BF{%nCX*)l~I>CnVC8k91 zd_lDFK~Bic(jg>G_9>KfN3&wUxT)k#arp@5Kq{s3n!GW~&-EDw;vStL^w?H~Sg~4$ zf-=n{pHgkHBQzktO3sHEC97l3s|$VU=PFo+X5h_6nvyJ)1PQH6>6{bc)E9Uk;TCP- z`3~ma**RO*YsW_dXbV#0_-|Uf=!3D}Lhsuxp?>4PUmTo8@5$-YG^W1wzFYCB(RXmh z)Q z?LJI%#HcB&;I6L0cKCLGy&Dl-ARNmDFotyLzux*X#IOITqp%;H!@AMN}p$lQS^4)LgG_%ena25Kek`-N3#I9D7|pi>mJT>) zpb|2xJb(Xk{&eR~JVg(fd8zIwWjpxrsgYpwKoEwi;h0U&puM$Heo;))o);A%c`x(` z`=!a)fNY?=CI`0q9A40)<8`z>iT_BXxh3<7&=n=3XPt&e>$dhTNMO6g(tL#$-eJI9u% zyI~{f>#srdefHNa$3t55Ot`8-DP6$88)XD974JQL>2Yf``KkLnrd?dBhIk6(&AurI z;hB=Cr4NV|E8_$=q7y84zH4duI`Z`8tljeb3f9}38`ZC2?r+*=hv?<|s|BIEpC)(= zH3gxear34!*)+u+MdPH|p-gX=9zy~$0;s~fbOyeZo%sa~JNV8(7)9;Mgi=(F zn)cWI?FY|4)pDSa-?Mp=o+2yzkwL6KGGA!ABg7>kDeuSQ+f+d7bg_UqwF->wb>Q$u zH?=0YQiy*%;F0DyF_P_3vw9WDHJ#X;%#5yExSs|d3vhhQRtJ$ zhi21cr>lVZbr`(K{Gb^b=c})6#3zJ^S|e$CqYRY6L_Xl}nHL2d7L8&CQo!sx>lWsX zzNr)lW{kii-j!yC7-F0t*P%3WmQfrGX9ScAoZNCLzp;0@9*Kq}UmH?4Cfg(S(B&}$ z;k^Xw5!oJAItr}qmaps9%1s(B_k-(|vDm9`5;$?)or>KH=mv7i}*K=keN z3P!|$ecPbX5%fL#%_1_-HD=-grDEH_;8VNEvA1{=vi3XSB(f2$31)LOaaT0NE;NlAWqL`7?0pE-$a{Q9dGD@L2IJEZwO*xZywy}3doLL!p zCCynCvhoq!qK^~vfcHG+<1he>TkN`#^%XUA;cf&hX}ow+uSmgyJu)hkKNP2kkfr%! zV%;6o0@keJHf^zACvY^A_y;jJDc0)Jp?)Gg#E4cR;6M!#uC!+E!^en2JkZS%+PI4)cP^!Af2H^%Uh^Wb*RJ81Z%T(DzlOI3J}1}l&0eK zMq<3NNV`ARv>+Sp;QM_CI{s?2=$hdKp-{2!1(v6>0M`_=L#T6bWi38vcZnS~vJ9a` z0dJYT=G7zZKoXi<7(Rv=u;%6JA$56|CZTVpde$^r{V~<~A{}Q3`TkM@P^a8xn8H=9 z7)8fsdC;e1d0(vf2U^^iravnk@K(~iB4F#80%O3>mnl?!XXsHFIm_V6HMM(nmR!kSHTk2MPi}}NYw7F4o4M`BSDfXt> z_CY8gtaxw2OG|`!z`PhALt!ds0&O(eW=MXA1GOnK2Meg~moRyoL|)WNUJz2_^8ha? zw7(pQ;l5I&PNY@UU6}4PgM^F?Qd+Iwbd+id07)H|k38dXEaFvxplA&&y#_2~ihv*JQ)r(v^W?YgT2X0ZHra2LksAnj_5V4eZ}2$yzXI3bprA z9*1kN#roUl_#Kl{xNqZLv%_dCn}11~QYZr%^k;K^T$wv6)2tbBA2?;e5MWUX%J2dl zN2Gr!Q;~hYaseLbvGebZ4}Rr<9lw}-ltp!APWnh-vf-MR+xb(ix+5f`y>^iFoS^dR zpUr962Fj523g>V(5|oA>?sO_e+-=!0yO*oo1lO;qqV@ry)!kOz6re5Buq!J8rD3Qa zgQe$z(%+Ruqz?%fsIt5ZV`F8aR`#pQ{opFh!qV>D=si4T;!_9gq^S3MqyLkUc!5Jz zA-5_4Lo2q#JJYGyE-F>?VFy8fYrlFluwOe*)i9f|IVWYISpa{*x?;7!eeU|C0$o08 zUEa?qp}>DQ!#))9cQ&I9qZr=viYP3p>&-d%4zrz-*}<-CE{X+7F>P!or*ir9#@&eO^^+!t%2)i^X~4c4 z?(0jyvjnP_G2EQSY(qGe?pQiHTa!C7E>fY^lXIOPi4@i8g9oXHgnF%o6p^Vz4Ls?-ji(hge9DxV#dIAjdRdE|*=#>w95^DFQh{Ich>U|8CG zo1yFe$azykP(j=1s>h$I#3-HVudbfXs1K>vqEMM8sjEeKL-FliA5;(pU1qCjv38aRXOX(YD<5 z(Uqpbh56)=y4Dcq=v{jiblYMMIR>R~%LzboxOzBpLRz_hV=+)Ak#K6M~8PY3=#~nKC1n=7!DzVaI-i~YA zy{4yNJyMq+vDCuBJ->qej;_D?Bc8Xa8%yT;*sw+qxM#Naz4wE(g^fsN7pK(~R8$|x z2u5~@Sux+Py-#IiM+uU4HeXe$4k&T_BO-^Kz_F6GKud<0KDMU`<+yAbGwp))Eexs3 z)usz_cOn8x`V$c9mB7o3-N5$@M^jjoN@e;&t;DRx@3HPmiR*CXdRUUbjsVAvWR7 zsrvBq=xiz)1Mp<2WC8tGqBXvEqUMG_ELqFeKZPUdPW)II2pa#8^hUK?c18LjWU1h% zXav<%Os92VUel6V%hJv-&T`*#p92r|&Nc0Mli*o~7UR7T_n3ZXhkn^jC!dy?$HtHf z&hYsqa~?8!d2{_NFjPHFSyE!B-@6uKX zbuZ?S+2eP1CB-6hq}96OLJ*KXh|23`5~*8wun(vh#=Pop+f$TbAsWH(na97yjNhj$ zf7)m*$jR)qCUI)-o$H)Pkoo$)CgWBA#T3BGpV_?CP@qC=1nN`q@vag?+G@j`DVPPDGuB2DSd zzomKpdrn-dyDaFsbPV!kLIw~>?sHXcJA5o#K99a1SOd)T)9fnPZHvryO%fa`n7y6GDugckk7ZmoU^p)cEvKn2uM;@tTqp{G5J`rp zXMOj4CHDJS03-7QpD7D4+~*4q_#C`Bh)~<+3DA0n2DR;m2KQEC-xy_=WO$jZo?>Hj zrlshpW+t2Jq8{l{y5jbp%T>b)p79>vsBOEP@#6APe_Dg=4k6}8*YKD%Z&$z3KOoUm z$;9%h8<5g?1%XE>pd-IgoTGj zf<7M}wR<%RwKpcy;x0T_g`@y^YiV}Us8ostJxs7b_n*lH9->dZUUE)z&ARYFkF~TG z8~e3$?dRVF!a1I(AfoegBY*LWRR+@L>cZP>I{UYdubUM<1CR4iYS`6amF9hkPuW%) zlZ5IY2&{i!>(`vxKWOQ%QGlu{e48Ar#KQT0>c76=m_ULNlH?PJyUT}s>(lC)&aDEY z0mlW%K~fnust`I%?;2;)iXh_ohNh#cy38xF=3m}TTpH*GytlwrM!k$`9Yqv;B;Wpq zBKNYdk90Gz7wSUlca`q51Smadx1cLj(o|7pSu7XRx8@ffI_3B)dAs6tfkW@l0dQQK zH(a>#jXvWiYf)(;9PGC!K+|~$kpmL4DzjJ)lFN`(6(8)qT@vDIl`Jy-)5U6rB_@D( zl_-ZkVHZOcI~d?g^Ub{s4v3BTS7CLwYL>MyU>T2#kfrTV`W>iHk)AJjm9 zmy>!R?n#qp-UCelL{M56Zd2B!mB_X7>?Cyw=Mm5R*i=m!zyD+CS$Nu2P15xjqAonm z)B!SA&epuC4yEEv^GDhZ`pFzB*H`GFcPNlo6z$V@EET9(N@Dt;`Fg7A_gOl2xm6#9!k{J0hnNE^}IO(&*E* zgRiyWqf-3D3r7_l1|xEYSAO@$pHsL1`hDW9@UANNEzxtD_Bsxn2gTv-vh=;!?(+ml z+e57M0`@{VLDB-W11pn6R58joq+(nDQNaEiJF2gr6R%&pDwR(4+UdM|)Ii#!PGBwv z#GvXDyBOsyh+Hy8$4b?cJY2#9%pM%%4pt+3|L7ofZeS=;vnD z>tK5}=7pi0xldBXAD;5 zb+7Ib^n_Q8Uc-Q6$Yy%=AMR_l3^(JLFC^!coWF0q@fFF0MtZx2k2=NIN65RrpnP@j znqCfd=#L%0w>n_zTyiywcL+8P4&Qg`IG2+C1E=yFeLE}&v_K30xR_#G!c{YgfDG-+Z+LJY`K6?Y@T1urw9Nb zfo1Idzu2P{DN?aI^!u>j%E_I$_LwVf<2NU#0gND~_K#5PVv3jM^!tB&aezcRe>&)A zUqST0UVUN2Kx~NSP0?EK|L^no8%2M7sy)C5lrIb+GxPtK_5E?-rEkfZfVA~FA^801 ziGM5d|N7LKDth9Y!}H(oL!_qTWPL(YbBqZa+1uL_OIO4g2k)W#=;aeHEG)#9#*j5B zP=_UAcfJCvX%QfyMZW{&+xy&r^1m&cL(y~Zbo`XRZ$3Zo$Ibnfnv<0cBadApIn4yf zq`ScJ$@=Mu!un6_a~!a}LC7EW%?ok*@8YZtM>`&$gpGgBol6ygEq&gzy*SrI^bo+# zlcCm1@qfqGAMC3mjjXJ!9N$i5y11|uhR0><@$Z7JvliE zue_yo{ru9mctEhn2Rc79_McSwH$k6$!qNn0+})x^{on5P$L~1!0Q!AfXxMpmMt@v$ z_4c*h09J3rM5A0~xT_cbx$OTf2$07AGz38Ne~<%g?SD1|Cz$_{!v9F&+|m4x6#hpF z7vaMHNa6oqQrHsHrosHTY=DmlX}xk=_SF#-qHV01t6k$hx9xVS4eQsYI0!cyKS1@^ zK%I`7JYFcIY`U~V6WHSGvCZp&Cwwp$Or#zh5)yJJ?sTnUy?SHMPvm4)1iP)R?J1j& zz-%hoPiq3 zjYF5F$y3-Qsoox6dsImn7YCYL+7Qq&l`2F0EZ5AM{60{T=p!l5! z{+%EY=hem?x5Qz+LTBeWdZArIKK!!Cwos1y9R z&jL+VbMg|J+<&PA635p%)*OvnK}U)a*{1gk9h4ANh^{P}k>ewS({ulQ*Xl4;v$IJy zz!U4W`s{y8aNH2%8c%1bPG2PnRtjseU)nSSr16%Oo8qswJ9wX(&OhZ$GdVqbV6za-G3!=aB_0qVxP%| zOnfEXd}fZWj06YRR1tiaa47BeqXX(0m4mXa)d|KTXW?uO4fK%Y_8vc*92ot5I(gYmoZed_^R}CG+v~ zslDr!pC&FyxlX5beu63yD3ws|OkLS!a^?tX6_D99%kkYe-ckw9PfU*;!`3}SO8+_J z9)M1(o#lRRH_k*{X#oWU!T|X1IYNPS>_d8Hje<3@z(H>0MmH)kw${VssZ*QM>Gf1B;^PsF^Q>+X9M(<8-ZMq33M zLbXcB7YA6*82~t?+_^P}lW{X}(B*^5S$AdQIbeojm?{698X_{V8KQ9C<9L=zWcJ0| zveEu)m9Cd?NzCraJMrpH<-tOf(bm^au1^m1?BU*LskjC)pd6x?3fqtVS$Xp8y}92a z=WfH#&A*_*r)n$BL3t*p^QG55xW(sNvzIRJ8Zbef#dLFR`Wu!X zr!o+8C~JR<@a&>lMmRCu#rJJYsOHPKi4zj#eb&^#QUligsZNdj51C(#%7Km4AnfZg z)JEoG@y+aS?i8I8L}y`T^#)!Dc_gN3SZ##$|2CM&@idN)17S@jN~!4;7(!|}#MBk< zP_FOY%Eg9jksA4tZYAcwDI9+VeJ zjPWyZ0UzU^`5?$YL3@JM^SN6JttW)OYG2?K##Ze!{GcLrywIhq>}N!m(RzEOg2Tda z6}QpLi5O1=WNHLNG*JX3+}D47bh<^%srPtId($io0ZRD#@-^jeMQ>7h=aE@ER!a5V z0)8e6!4qZ78l6N~#<@BWe9TDN_}qO4+2|pI<-;J8Fobc`YnLvwL-kA$^C>SLP-h-& zB}{k~YKHQi{CqagQ4zn?FTZ|_e`S8>Q}wh%a$--Ji}7&I{`Bb5{Hr9WyQ~o^Ztg7v z&rh6P{G1jT>0?qy)jt;tEP(0`hrxGTUf2B%4b$Xt#3Ct#>wk&^caaTgwmH!88Y*^s za?h%GG^R3_H(XerJhZRnRmp_$KO$dR(uFknKZt5+Z~hFiWXMm>`a`_9i{ePz?c9N6 zLe6$CV#t^I?_aksG2FNII8P=($GU-5U60$iK8=lFk$k zz<4tBc>Do>xfp)2OQ1NPt0y5|x5_adgRHqkPV3VH-K&Ff*eyPX45*tGBR^s$Xjhk~ z=DI-toHQWKXvAQlf1BbWAyNgj1Zb0wWVou!6aW6r1rD4;M47*o0aH|=y3Olz1{^IK z066TPKTG~qg1I+=IX3vYV{> z@j236Z~Mi!i9`Q7R|<4LGTxk}-2I)M8VAJMD^uM-|MfWCcl^CuQ0Z+r3gV;C0OiQY zMU`K+*bC)Eqc1X_aOyYRvnO(c<^H;ia0Db_&lic}W!{A9---I6Yabq|jq~27IoC)0 z4Y=0d;ds+rUf0FIvh>}nU!@9{_#+4m&ouCty_(`J4(7&1ap*pRzJG}2a0mPK)VXcv zz*VFo1ZKkg>)JoSvcER*OWl9sJ_7~-*`V4R+sf5AV47yp7pJS|q zGRO#>iQ$sy0Rno69C`3jTN}nqahZ5ti<16Dj;wbT2K;E$UcN-WkTJg>+-i1f@3Q?X zB$1K)*{bi6*5DC87r)FD#mJ;2yujqlhJ(q@eriVvup|F^#EWx{|Lq9Q=e~w^j~eT620$;;FQv3^|RxP?^KtNx_AwF zA;O4~*ZJ3CIq*WGS4lbT?=Q%8Q4|iuDY3-w=Ssb-mUuig06U1+t}C);RBuu7f;Ia2 zkgtG@18L{3OFmitkNS6KRtTmCRLm>lwv2swtaJ6)z#Uh!ABn;a_F=2`CdZY#F5l)b z?Yj%b+fAg<*BSq5{nGQq8aFD9Rb>_Z*2G^kw+2z)p zI6onwrQ+1{n)UdKbmNV%q|Q5%my3z_6V=aEijBN4(~m9Z$%X$!2Quzp%Mj;kvkWbn za5m%J8?)u^e3tw+kNuWT^bevqCi^#{W^k(|4VXi^Dkn|J_#fV3;-4$HNtkF|d#pvo#`+{$yT`urqHd`7wIf#>-IULa?6r9ry=n{s)zXCB6D zqGOS8eakLeh+OkTrA)i~6~AdeF0J-WJPuy>(ZphD!jFA7Vk)J#qH%DQ#kp51Vqby{ z09o~i@goK{#d*qOASZn5K;@7SSL#pV)KZM*gPM->FxhMGvh>mJReb8naHtwSa>UZX zzyMYgABdMWK&6OjMi5G~_9LSp2nV?b?b!jdB1SLx+emi!o`64bf$Z(>_Vr`&38(ou zf|>{yM+}u#bWboXhd!@zDhOkftq9y0x<{jcIeHv3kSFfq2AN1Tc}}N$!NlSFDQq6SrqkOWwT*g2dRo zEI$8MXzUQ~q8YNokS?m@MjdK}oCxgRNu;(rq1oYxLW*!dn(;Jkw%m91=bUB3J4rWY zz4nSKGeUwn&M40~R&)rPIrUz|c)~y-Y&(%qr~pP@k3#%e~-91Hxt;Ziu;vhRLHEDk9#qJKdA3wbTxgT7*Pr{xyC+ znarf|v3Tnv4YZ=5T0)TdG@*vo!@a|m+zNC&dX6SzI*qN?nAfnJT>C`R&7P5!dlB;q z9JWV$G1g5a`j+85tYG5iEeT&UUBIi0uHym$ykn`Y$|XMmu;AVIqI@q14zr0(Y+78M zLPxjIEJUi}24<35Sg^>D+&}xYRs6LQOtbFq`ONKiQCRYgbnGyG>X9dCIGSwd?rIB~2o>LC@o(geFpqc+b{7d`*V`gG zv$-BL)d~~cvwKYr99j3wsF&6sTTN#3^-EV-ulTD#wY(n2L(mr!gO_?!1sv|IK^f{` zpeOMImbREUqZ{4pdqO<2&q>@M$($hF>d_e=`$Depv7T@d<`}8~zNK42N1UC9z)UO@}tD_{*^hm;b^>8fqA1W@JdpT}bRZ(bJ%H{JOq zMcH~hDM0wLWL|%X7Q#^o<0I@ca3`OnXe!(X?6nP9S;P9t9#C%!$B{eS5=#N6BOgz$ zRf9fvSe6`q%&U1G?j0rImsm-wP&yoR(6q&&7XFkN3`d9OF%UY0is-NXBP&J0MPrCw z-aN9N+l46`w3u@;Fpte8SU81SOfTSAh>SV%;CTS%*_)_rvv@kUqe|# z^%Oj5dC+$_^i9rasiQ>DAhqRqqlj-O34Oa3$J2qKmM?KU4tL({-RsjR%_T99p;(`3 z2e}p)$2N0SoKIsu=ey)Ri$=(+pf(GqeH-rx4R8dW?|a4J4DO5EbZniPYtB# z^|?S(oHgDc^6ev&S*(3{2pf-yt_n)eI9j{sAvB9crf)D$SLPi7oy<&~#S&pJJI@fi zPmovlobJ%|htrT74e`}>H5-)su&ucKx*aw?SbuD1!<>_x&lft;qaMkT(~|#xsr13k zycT-H^$Ms%HH${lW&=wVYmcgPFmp~LFGyGYi_>C)&)646g|S{a5on4`)IzMsiPPSQ zS?+<_)P?N&p2P#)3UGcSp{*2qm7VJiO2HwZGU^Nld=MLZ>)ksbJI>MdRNCH|0CN(| z!qNe%5u{H$X6~-Z!6I0}^B z0DfoIx(N_JSs=I8t7()b5+tv)w9xY%`r z=UKl&Ny{zBf8)=6e8S=vc0T~ES2Z@25^lmia1*wo`v>KIk9aK-F;`&^n$$M?EN%_+ zCY53@(^MunNZznNm=CJ}fy)}lfxgIQfDU26jdSoUq9eL}7I8cLwO2nfdhsBx#%rSK~9K3 z+uhxly}EQ%=k1NL0gxs1-T*NWu8c7Z^VK$Cgf<;kKL<}2^rsGoH;kD~o9Ma=jscFx z49)dHtEG(ljrm)!M7e-l<|EH(Xf9HQLo`nr-toS1_akUT@vu>x+t^ZSTr7#~?=nLa zy7A1jCUgCphZY5rTO88vptQ~2)D}DZxg?3;vE(qV<+aM~&X1KWLh!W#bEURK;_kQ? zJgVo*I)*Kfg!wAk}2di#T)(csmgeDLx9CV1R_(BE=B z@V0s7R9m}+zSlj0F9$mrgbU3LfYSP&==3gnWav#t#MCeAJ*Bj1Xu>33u^Qq5JX zKobsJ?}ZK?P&4vxOFC&MR571!G6*{2%JiCBCWCRbiCMF_EtdQ`n?HZd>yZcC)gZ1( zZHs7KeJo%0(Ha)^#@@9CqZs?pBcLF^KH+idR&oDAmhppVl}Bq8Yd9YJVy@X$yCdLJ z*q$R$reO)ZnWaO@FqG^r3nqK28r`i-?z`d>(QYmRICko8Qh3<+?oQd2GQn%nPUL$J z4VoOK7LF_u#JRNDAgq0=q`vxq?+Gw{Fzd%XmYy2Be2-DN!&uJ@Fl~pG+?r~T`@#IU zO&jaaP)!Fl-Y&uIQni;6bk#3oofb^haIc@)hNh$_EGWR{08W`wl1N=bdm64nK(lf! zr((^fOXSp*K88r!^#_IXV#3;7u$+U)ejUyjZ}q1C{&ylN9k;IlAJs6_u(qpe9KiMm zcqQ5Hctno&=%2wu5our|{kU4-7lXT%cvS+ec9Mi-AmVd1w~he}l%rsdosbhKKy z$)~^Em%hoiZ&`itl0F`=`9UavXn4T71}rDQk*UP}IV|{)&;N$G>y(eg%jp8cc1zwO zJ9ky$<{3R;ib8ijjiFW=Io*%uKWvUAryD7n_M*MW?tvtgoN5@Al1Ax#2K8t|v_atT z`4aTIzO&7}2I1=}8V54;AZr6~1(e6}`)waZO)si@#-Bz3gPhf`;2AN#!wWQxn@kQa ziXX=J5m~3kfN$3_GIMMOwOlN+9*5co!i&3ja)Ljy3p@EY2M<%QUiz}7V5R&DI&cp@ zu!aiLW5N=~>H#-_h-Qa@NQRSEskWA7{cdKow0_yl-CNB)$Rx`e$ZAXV1BC{FHX?|y zsvhtI2jc+(Yl|f#rpyok@%;V*7x}rTGTw8logw|eMq3>~lIcgIlPAh+ke;<<_odR= z0NastRec1_6V(O-9^s8<5_-(p@Ufb>#!W+@K;>DEZcYlrQ6i`MAg?-p{2uL`UX59S z@`!p{@YorR#IN7VYsBy8XtTh)kAX8gRPUDzxNEGGL>e5y4N+c`o+Rn;JK}y;F3@6? zEUczA?TB!+a}h_QrRA2-d}JO2cw%;~>}PCyg>*C@r&iIA&q3;+(2303bFq%C4q)EI zB3h-!`tF4xglGOK7|m<;I&%ek7pc)uc>PQ(wjobvH}NT7!Ghg?AZ{!uBv@{ zI5-XzRc@|->!}g(Ii^LJK6g@M=*FlsnCz7t!XvK^e=Vi&^@8`Gl3PC>OEtmL(MOpq z$@ipUgRtYkraO)|IIu*Jsh@|4X2=iuDFx$Rh~NS=aI;-}f>iSTD~&-}A)#pzTB6jF z-GTf3&m$_=jfV{0(0kq-GGLR>3nxeGj=bY`!K1o96yzAXH1E%+@)g~CJ@X50Li$a6h5{9aZqxv(X85^@g08|Wf7Wzo5Jb+r7_n1(8RHYF02$N7(T$S z=bwfq_`yS@LrO#_0+37kG(MGvg9!Zn(`|x~KI<<}DV>r=4Z}2}17eG+IO)a4nb zt*JM+)>xZ_tvRllX&*)Qs(emR16tu@*Kh=<*lLb#APbRZ@9Oq1YJyebqOI-n%GI+0 z0%Li)4NR@K>E5zJ#<)&qCJ)7TT(|~&-nqBHHtso+PkVSA?^lz<^FvPudL4_f*6@W; z7K`ZH5h6KxuL|tbW%}tLgq?c;6YU>Py~Sa&T73TBT_r(<0qN}TDc>v}E9iELi*%#j-+@&LcwqCjF3=1p?oX2?+%D6m$#FZI1k_(;0WkQ+`N zt$L2*_F*84;{H|}a$I9xBz1$nq-@Pqy+N>CTK-m6`Emw0Jvo#Kj_exJws?QNIKchR z@5!(K%x?x>SCPDu_0`yj!-c*2pux+V{wQW1+Q<`HSMs}Dyn%Em- z_c&-P`1?8}v~Kv+vD$ zVu9)s8b!u#)AU-4>!_vsFz%<=bdXa!6np*#Btv9B2>@75@d|4du< zO8i@F8zN1+7vz(tg#aZsZG9y)Id++SC(4byTBV{cGp5HM_L`7;(&=Z64a%_*h|uAE z!w85u=Qz9x-MCKqX`n=z)JtgbplnAH5K^xlO`f_}ZYSg4Orl+g!jt8zlW5rp*AMs* zvXd34$S*{8V6Rayf-55JG*no~(HPu562$`X@BpGZ1mqF_*Toi0VP*X%5uA{EfFH~l zWWd&amNkdVnegCft%V`3D66#u-zB+L07zE87(U@s6h7tkK6d-@Y{?1WsQC;4_%?>T z0d`0yF1j#hXXzxU>}%`C6(R{UZ7S=0UzJ+`(_wQQF-a}U*KaNdiXNpvuRJmOafP02 zG~W-{vPzB3Y?D88AkMM1*aMrn=fInd@7wse1yO-b2!Pp4!|NXQNUQkDF*pfVrTm-& zF$$Lp1mT64+m7n_)dNn^!uv=!NQ!=R?68$n=Jsk{1Ga52gPg-%uMbQqKnzTs*7Bkv z$?uHip0j(BSytv};nEvs0lf@GnGBQ-AQ%%6&SCM}2fPuF^84K*vC)UUhq60yTmzQs zlv^u7o3s1V3r+B(raK2Yi-H?8e-Bb@5flN^wefLpu^%3)AL$2NDy!B#9D@4mH%RAz z$_tm{?ywP24sOcfc~30<2<;w!K-!aM%{?Mp-|v76J9wlXD^aDzd^iPmFg3xFj|UuE zcaP*(MBG3T2kvEVc!w|!co_a4X$=91XIQ@kYyuvx9{s2vEJHX*AA>(gSYc5oUXU2T z->PZfuM{d+VqY{2H0@ndV-)9_MB|l^i@3Y!!ZhTo!KKshlnrHsfm;yahTk)hFAF6z z&+`Q7c%rnPur$|tUK@vpb?&egZ57uSr@*O<7TBthi0_d?O<+;ALdl^t$xg%qPt8ul zN27wFo3MP2LYcFiC!PXLb=07w)c`!XJIZTDMxX-TZY$aS(L~~4kmRtk*+JvWG6RJF zvJlwr=#kzTC;_U}K)=Twkfsz5?;wra^~!*O%5e63XLwl=9#4*GtJkEv_pFQb|6JyZ zm_!AIx2)3B^NIkDr<)iE0Z3<`m|vy4MLHxN#yPp`!?eL44ZxTX6jIPHQ zTGRMhP)_BRBm@YR8RlMHc#SHFDR?Fi50J{xM!^*p!j&BxDFDOndr-E`lUD3eHGr@RHL`A zBPQ!Df+TFpEZ#h`?qCOrWAb?2JpA!SZ%0g3cPZ zc1(yhG71!PkSC@G78)>%@nZf}e za1Ve$r1;ZES0P|bfEcyN2|9=b1wUEXGhDzX%5Lx`W%L5FA~See6u6x)68Vk)^muz5 z$jD7-E-)lIin|f$s^+%SKQ1rD+OIfVGW?Rv5omtV_hjUbIZnF81e7XyWVGQ^)w?U9 zvyO4)3-cAR=2(JA&jzS^7_Tls5WtPE!X>2-{mLHJPGxBf`Lbc`%=l*9b-M#xeXy|N z&txliHr+)Vq-@fsef6(a^P9`7_9g^wLZOh!fM$}B?DoUHqLaS*zUIR)u0nUd&zq-n zYPz}_K)6#I2826DK`3ljR}6%JC*K0f?n}_#scA8Y8Z&P(4{9Mam8MV51MID8BQdXLKER0|o#ZzP1#q9Aro^yx+$)p{PY%g$jD*t(QQ4rj$GF?+(PW@w zZyzjc@*e1OW*Gtf>|SF&^`XA*%P4s7;I-&y}g7#;V>n2kJu1ZB`fA=0}?Nlk||;_v-Tl%?#6PN5DR#$#DsW82r8D zfw)6k`+?j@iru-u5sr0hkHQqbVc{V6LjDWKEe~WF{6=aiWB65 z$ndBM9_;L#03gyIZYm)h#Nl6z_sY@~igQ0qcRAi{9tT43DR>p@1W2bVP>3|TS<4r{ zZr+D)Ju&W%rzG-#r+Y$xQBtHn$ubO8Yhtb5pOF>FnAcS#qA1+%Q;;izCsTmGQ?8PE zL7s)nzdO|_ux{6zDi=t=un=u43-3mj0Vz@!Yr%IK!t6Wd{nJ1@&5FHxU$2t68%Q3> z26cO7c>P!U&_lW_w!Y!XeLKAdxQQq-Vb@ZSzW@EPtisNb*_jp01-Qp@KTW3P)~Q8+ z%mqpDQykrUwJ}Bclj>#nVg*%7?gIN)HdAdXmsQTa9x3+5^n>HH5xJBuAHH<}Y)qR;k&d{<%&b}sccAcqMNPuFiNwh7NR5Iw zU0AVXCw)OVE)%Gmrp0X-I_;1tzdQqc$E`dEDT`3QWBOnV8xQH*5%tpaH93JICqoog zwTQB?_awz09{UYcV;Ia?I$t#`LNebAtL-SACg}V0^DgN}0TrQ<8)Q5z)%U>9Yr667 z#Exjn)EsC5_7|SHmQWd{=`g$x(Ux2P5xk`&HJVdHml0An!O?WHUxMIZRVhf^T}qkV z$&NqC+sTjhk$2ok<5no{+rnd!&v%}d_bY=~3DwBJ`Y1cBK@r){ zrc3L$3OFVM0q8E`BE6Uuc~Jg4SIwaX>Yq`@*M+u6fC5)}5N61EV|tASSLWo4-4kDy zdFGMf%p_)cq>s7Ap7BX5iGjjQZh*r|-kbEO`8DCP9s=i1`J`IKkA!rRpT8R#$Clf3)+#f%5K?kIz1A`P5J;hK@T_q{+>iJLHV%c8RkwhF zVQ|%E6IqyL=Ft;@c<i~ z%-J&X%jYUWPt&4be4GXHA!ca#N=`(Vdi2-E&K`F6P2WQV3=z!3jJ+(T1bzsdNd1>Ak|OH z?%@-&2rJeHS_isiZVI4OYjL|{rLpUWvwmUP?hnAsiGlYeQ7K>Pl*N=(1G{>Ub%T>F zSk!L16-XwPXuA6aAX0uow z2g7_~up+jd(emRH4e-u3(3*;WQ%nD1bWn?)X=d)D9)7Ps@7Gg1Y^3Vwn7i___QoBx84s7Mb6m0jhrekMLq7m> zky^Ubw%^JsPxJY+o<`&&iBRCtxa5zXWB_S4FWV$gpO%yl*jNdl4=oskqk&Iz|LI2u zwWUV~vI0ke#j9I>n-Vzb)(VuRtTeve4N^&xH+&wim%6a@CfN$n~ zQCb8S>#yM|1G5)hyhK0;m_|b~oJ(GGtJknh$%t{L|7eZbQYcaUr1{sWa~mtuwgxIen4_5ikf z@JS4t(^_hEC8r{1#zP9`bJ%gOk%M)}_=m7rowy`H%6AJ`X^nC3_tTeBOwZ`y@hJ_G zsmpQ6_YnrOT=VFJ#-BjJ20ym|zy7Nxp;W@mDgR0q9&^*ejT(TX?YmKNrC5sH zDMx?~`RC}G{L{^s3p~fWDdVSmz=O@2ZwmX~+XG_HIAgg+O)9r16`@8K!;w1+jB973aA#WVuQSF=F`&nC3T4TF!7w%dS5CZ;J&E34i^ z$G5z1IlZ+aubT8_iiR%k@dU7?(2mTa=*1)Dz^709m+n58)BwuU)sPecc`M0p9~{~w zg(6=x7d-aeW>Zg-{1#>eRDnMP+WA%MHA3PLsVDC{yz365ZtaWXY1eNT>8qs@&EDl)?ra@ zZTs++javZ==~hx&X#qiz?rt2BZfR*z5NYWWknZjrH%RBu3^8 zkKgx?2Z9bW_gd?U^E%ISEiQ6mJduAExhj|hGb(PfC{_x68a~TiWO$j8L7p+wet$u7 z)(gY=X)j|2asSkxI&0Dnj+utapFgtD84|BtPv!#}imH*_T?T!*MfZ}R;ydrsNXH@- z4Bcwli1lhA*@}(|*K%m{SpwPhYZ9Xjs-GMY3+4-tTE9KQvCC9nqLolO?&Th!Um6vb zsFIO*Qc=%$wspA|?n94U)ug1dFo`U>jQM#fsM;U0Yk|o{m2}&9V|QN#RW^!msy<<8JJHb?grepXSw}b^$S}yU3_2 zW5(AYlkKZ+sPx{`!<)NOG+sO+mKado$SbVkUGB%hf51u74U9bPx5oAi5goUQ9B_Er zgI#14Z(FIKY{D)DFZwKY{fDH4{Mz6K&R^dpB0Q9r?7B>S;8G6-7>sNtiujR(A?HdG&TPLXdAzHZ~Q9 zRRR#H;lZFOcDm0<7sCHL1_-xIh{=s3h3+s@H zl;nn-m{(niQFrCbcn%>hRiWfH);&;USo+s{t_wVGvl{b*30u0-#-vdbuz!i}N#k0# za*E;RK_|L`DTvIEWRIOXxd>WWW>r}k%DD7;tD5qMFF(;QuwFvwQ*ZqiNoytDYg+%f zcV;wH_<1uU-lsjVSXzd>A925sD&1ztPDMjKyC!GaqJ16EwabF`{l&Tv>Qu4L(_yLa z;k1EVFUFwC>8okx7xnrJ^rl?+vm28JzAa|V|8`~stu*y7rSpcBEP z2_u5TF%DT`#xn>rkZ>p9`Q;CvW%s$kM%6>g{w~HAjyXE1{bWAWcyM`vx(s&R+)vG# z2A?BmM$phoD(JB-&*az7QOkkEL&T@QuUT$mZIIGQw}qR~-L z$_$9+2N83<$#QA(j58u^j>{#Otz7zL!`$hqx?{mzT+}X=%f!Q-B*K+l((D<5QPlcn zYx7c#w~kb?j!%(+YkBjMR%$r3Ig|;nRXs(#aXj7cAgg{EkL0+VkOl)t#6dNIeP%R% zIQIzO27ic)Ruv!8dfPU!hB;kHlj?`KSNy0#br|KiV)4c?W-q)QCVDnGz|u~PzWsL6 zB+i5u@x*ZcojAM=4#3iOq3FC@?xp~XwLWif^C!}jj+QbBioV6NZ)cqInCkA%xQgxe zT)~WaeuCmD`=0_WZE#0YsZ4mE8@!|53g3o!@pJd8-VcHF{bHFwmx()5T2v*4B0N?d zk3+c+gja%@>n>R{B!X*wnK z3guF8K}e7=EP&y^z^izr&~wo=#sMew;M7Zm6isr1c$B@jKC`=qnge1XoN)M@XQfz+ zxp$S3!4L2Xn({xqnxz!WdRzdk)83h||6y_8ao(RqvGmLR&$E+kbP{x;KFoWgR*5>j zWgdr{FOgdnMs&hDd^UV&`^;4!)K2L~xXZ^!dC$7I5(n?ZJj~+J-cC3RdI2J74 zbKejFxMcS+f_vygW7vM=!bjr$%83$JWiK0Ekgdn!-^3p-X1_NK=F7f0JIobD4Yktj zV1}uEX0#nqrNq}St#)(R?k1+W^sbWpLwTEY?;El*%t#x4gv$oq4NP_K6d{7C;Ev#m zoYw~fw8AMEZ-IH z$DFTUk}L z*&+UM)&_Sv)zYH9WTl?*^lCo5Q}q@=yS!@9_MtCFOY~?s^)L`Q`4IuwWvS3EvvH_< z_ZJuWH!K55XqS1+ssF{!x{saDJ~knyP*ifv>z3(nsW50EMZo^X>fsz97;tz2$Vy56 zxdq}muE{grdD_8Tm5hyU)dpS(y8Zo_s?vR+5c)TlAd3A57mZ-+J!AuiO@>x!`U+k}Z$s#;z+VvU;`eI?#!CnwP2?ifprspY- z{6Tx=#jsszqLuhTUDF_ak%YU)_*(bC#%q_ceiK#fa)I(q72DysVYIJRNea|tEe@S(S9q}$wmcTkC_cn_I<&6Tl;d&pX8Oc z*5QbcfA=x6jFE@D!GAHr5?;XOh1?AWP09BUMnYRJd0p@nau2f2a#1(aKIp_NUVxyK zR?YTLzJt0i#yBbxN*C#H;gxu!1*)IC{a@b1qknJ8Iob%O92vaVD^Fl^FZEnN%|dqtV_Cu|5E_;5fJDhH6#eMMtec; zohqH-Ppn{@l@Q8@%%#+F3x4rTGFTn)8SYsG5X!tRC*f~2O0em1tLC$rUB)4nRLPi@ zd@8H;I6AvK7D4LB+X}l{>=~~7!m6wLJ)8sbV+2{Hz4A@(E9=*^+uUOwRBgswDy~WQ z@MQQih^9;n>Q*G;Fnzdji}Xvqk$9r&MD>)d9{Z+ve3gJm>kk77m1R`W z8)6aBChkKK52IBYvn&@GFQXJmp_?bW)r9B+A~>A??;(F`M+$Pb~1 z!y6^?PkPagQ^_6C+#}v^ASirE=J|GrXn(0oCz8P`XUGMo!ia9Wm7vNCOt3{A7=ad9~I&jv6oDQY!eDMk~>yVnkU;;JdS3xK9hL&k>aI;|3{}p6y{&n;>Td zSAN6QNugx1JraFU*||jPA67V5E-V;3BGKU-i*XQ_y^rH#=Rtd2goK%9Oe2ILR+|=| zvw*{@s47;^zKw{$p3bD!PxL_FWzqx(p{ZxHOzR)z$JRqY6%kFO{xH0G+694-G;yo^ zxtZQJRSpYNQ+&!`%Op?APFpMeu)mRa8+662_)JKuehIuD9G%#l2v9>aBq9ceD2B*Z|fChw43!vtMuhFwZOR zEvD1a_ju(WmTj0F_7=ip^x|4f==tgDLM9mpB2VY9ltz__@2e!5ZEULy9SUw&$a!0x z8S8zOj_Adl4)`b%Dq#%9cG2QLsNV&xMQI3+3ZdudREF%lHuZ3P*u&eOHU|=J>1Uej z6R%Sv!n#c0l!&rW4nc>f4}134YBKF0Mhr@Cl#0r0#~a9ZnHJWLR{%J&eQ?$syPk=< zU$vpi{uQ7cpDlN#o*AXnBH5}KB>HTehAzDk&^LoxXc=0>qao=phw3bQIQIc%YxB6V zDeFh~4zj=`h_-Pbd*duCM*72ztLXFJe1kzZhcWCg94H%mPrYCs;tpcFmbOFy zXbnlg@;dh1(NegEs<(bA@V1eT&PU2|>}3csml`LSuX6BvpP!tN1Kpu!C9YfUJ5BtD z_r-TCmk9a#;^GM5)XMablr=uk(w+FBam(%Hlwqnb;wg6j8 z_h{Uq_elrkP5}&KIchFZEh7Q0L$%Hrcon>=mMzb0MzkHT<+8f0ZRk%l{d2yRV6uQl z16Cl1i9alHIP)rHh@8F~rN`J)?etfV`QXdwku>$IdU)4TzvbD;9m$Tj3}{JauI=Wt z9og6dsHnc4KBIfz=z6F}dNP7MU#}8R-hT*_>^iH{Plxm>63csqJ9wCA&Tp90JX8!Q zc_qb}h&!eng4JyJTC#|oWEWinTtnFjW;nzB80(f+P(;hJiqy}#AF;g5fHPnma_WL} z<^HOrbEYUjMXgHD0GLC$@xcvXP~Nln$((=S$Gex9vQW`NyXvw4|Mfc#XD(}Dze9{G zdZ0##{qFmJ_D9fzFT8<94oN3_Onysz@X4SO333B20KaPIs$8mMWde&44>piTFdcwM>-dJJlnqawgX`I$Noxc@icS8B6N@@IHo%pmT%6 zRAr0MAXaat(>?4qbnJhcQ{al=6wL3Gu_(hQU~%)`_0U$F$xx{P$DJusTxyfyTqi}d z`K(?F-x=q0-3LBv&=T^p=!mvaDg}xSg|p2wYZc?Pfk=L`ZDDSQC27%y>1jhzHvn-7 zZ2MVszpgLqHZh6P$CMZ_#@S%rnVQ;p}KPz5)!m9xWjlG;b{4&c;D@LS+$N8^Mp3$#R+zF$T);fwUf~mpzM8$BL_YWO zX!aqaA^CTndH&4;Yd$lS3)f^niLKHmqMb2J3``tRuoPw0S=CuYv04!iRF>*_?zQ!F zzXD`t8P90>+T3D~PYr&&bL; zsz^)Z8WwXeW1g72I8`XV{@@T5WK}(bceT_h*w$OGj~~OW8wj)cR&U6>NjY zf-+DUs_%{!PSQTpjLEuA!1$0gxon4-dp<(U3f%CHXpZT$NtBA#A{mMeOwyWbmTk9H z86{SE9KT&?ZBaIR zo@796G=~S6vU`mGRa0Dj`8*AqM`e)$C}s$rS3jbwGrk!ANGxR-*;9hU!0dl&3NmGI z__JRo&z!BWWINW9-?rc^7dpwm$|cO^It_Xvt2MA^l^-6)^>iaQgN0D1oBtNLXB*lv zcQa+|1ndO?Q=ExzWPYz`N2NDh6O#vt}xjk(}SHH zW`BPvsZUZ$x@ew;1Xph1Kh%Ua5)k-|X>K6ei>b7FQ$5rPw>X#qAg+ot&Q!1|p_o+_ z$^5fKx1Fk;hp`e*tFgWkh3| zz3qsql8h!`D+s1wiGt{s7L@S?DMO)L?nsG4<&YoEaIR9h>vO4WpIr}>BVYmB_vyKG z+XW^P<>C9<{~&o!DmC&><-=>Zjk@xQPm0vlii+=s(tQ|DYiR%)@j4(^WSt#FVO2H2 z!z8Q9#B(WE!fB%0(Pnj+$91DhXGZvKkajx;yP2{~>(j%(fxrJ+(_eTMC2!d$P9&vRR}96Li=p!?#=Hq)wqx@`7sTl&HgH1Zw;}defJ8jp z)f&f@50}7lJR87Ee}bP#;7ELUoN@~DI@EA%uV!2!=Y6B^*A?|r_tfUi6ZXPk+3pAQEo;I`6)jrc$X3+p_HrCd(XXmI!vHIo z4**ZSQV!AXnoewr_vac zN99(ACYI7ztu$AGy1z@yF9NRP&+cRPczKbgY@LR^xK!C!zPz#5zJqG@j_CPM@gwBu zX`)rJOy`jBJhyc4a7f`OoFS3h0^+83E3w-YS%0nG1an~|&i#LrARc{wuP_l`B=dmG zhfCTvDj-TMa>_We8QTXCz6luY#PJy-N4(iDCIRUX|c}&{-ov(2!|Y6x(y#7Cc6n7{xZc+Xt&YvC2aQ-9^P_D zfk3A8S`rxf=4{;#7maM`Bhu1Wx#+H?EPK%r#9BP@Iw(boGoRxEt5}wbV`oGy>SuzV z#b3?dScwYUXQ?L}@uaP9>)qhmGt3E?b3_OMhI&tW2aQi-}Ts4$6 zrk3mGOlBU^^7|^hE>8$p5}QCpMI4<}G*i+qxXD%n=u%HZCwU})g_li(S@~D=%!`kI zn8c>3dCM7VepA3AmGV4&0RHHr?Q0XD4VA4f1PeULa7HU`Q&{pIl1#;(nQeX~QZxF) zU?aeW$#t`!Nc5^?EiFi{`Ur#LK1jtj2Vw@qRxW3 z`Rp?v*O?qRH!y~KR)9+FY&N#ON)PBsnT?p+<5efX+gky&ukL-!f%6vMl(pJX&QsuL z2CD-(?-@Ri_xU?lz;~!LX8Hh#;M@_eMS)}DOP6jf5-F7e&tjJQ(sGvRnn0g<7}Ju8 zt*O9V7?DBOb___cTCMS|$CFyPdZ5I;f4UyL1Ynhlm42^4ahnCuvP0a9^md5s(Ec7oDt*ofJgotoa6Ji-UM~kZ0WyV_z^~M)@YuU25Xw$IO zoGPfudvlMK$T8N?nA%@yH7kSOS3T`kvi()i7dd53Ar#-cz^ZSE?t364tZNTME;bq} zRx4`asfA)}V4xmY&NF<>`cXMzS_>ENY{_&t;*mMg0H_%k4PuI58mTUTB+*7Apv@I? z3`kmvk0kZtCk^X_PHQqp^J=U^@kpf(?qJeq7eUL^jt^^ox&1ioq?~8H`0Xo28#q#h zjM)cBv!e1~nwP9?uMWHTn!gBBD#f$)e-Q;(CW|kbTGq|K$<+Tf#d~^h&^Q#5HJ#c- zNP5>f>(tVi&L=(^TBgy;IRU0$sd!9yiy^uPX4AFy5Cd;{y7HTy)CA_R#K#%ZUObiW zHsBr*cAQLI8SIy6Ml7@e@{V$xn08SHW6W*~9_NN)XCZ^>A+`s#~alSo6rYC6_$(e7K7`Xby7kibKLqrACfULn zk6usk(qX*j%Z;k!Y=qy0BlbQW={2*sO z#g4SI6@K`sLR-gE?{`e+u|IpJ`fc0sn~t4=+{5({u_Klg(0Qb;Y86=M8Om&EsfGnv zBmG}_6`?MXCoiherrh4CYzbN1HEpec@lp=yA^Sev`*(=#jChXx5oWvEV^b~_C04&w zgF{;pBf0Z-VNeTK<*OzImCqi~RTq6NB0c~HZtWAOHAF=II4BN#+`0fk+#?zuFOQx1 z&XeJ5^qe*iu=f!kbR2lLItw%^euarrd(L0AQ?hT~af^lP?Z{=Tw~sVWx4%ozd%84Dn~%+ z*Q^l2D4+Q&a6-4y2k&WYx6|Zw$jm{5gRj7hjnX!SnqdDl~h_ByLS$CPc*xOk{657{c+PPML9;Vvi^y zGy<-Y1g@hRS~1HnKi#s|T`DnkvX;rk&RE>u;04+qi@sclDB^i5USdSNGE6CN+&7V%-~g<=ch^==7Qa(na)RrRYPtQ zIk%o%!4Ps;R;V`tQ(?hc4JX?9ZP)IwS&!$3QC&u*GwvgWLd!r2|x(dUFLe3`Mwb3 znPfYzYz|7U8PRbK{mfkQ_-D)y`f*RO7?@SZ&9TloS6qU2pb{QI2*5JDFf{wFj36=Z#YkQM$^z~$5W`jC;n=&ncD-PP^Om6 zXR|6&8m|EK6j*6Ny$l~#6k_;r#SW(oi2D3fbO1CeyZyqydMm%hb_dN34q>_4n<4{y zU?UCSl+KK5!L}6U#QjE zM$dB!GjQD$RuvcyBW%VYsW>lfoRJuj5b{_PX-0^Zgbn7KjEJN<4arocx7oY`B`rMX9m+J3K0-4f8S?Z6%I;;-ir zc7Jw7F~wz(d-$EMQ-d1|lzQx!PKHx2qStN^_@=A^O^e(ck|E%cFzPSV>W;7ygt$l~ z-hLT(Z+HJ3i}JT_+8FJMIhd!oDiSE@mg$IzYM} zR>t=7T57=H3@og~>je_76(Ep_@tZz|G-9FTyey{MJ-^{m{4b1*-;FO(1!aXr!_vm9Nr>)W;1jqFqd8>Zcjd!iMNZ&}W z?$tVvTG$5fSoiP|GxMNA{Nq1IJu+3nj!@}Mbj!Yo-~`q#MH9=#3BpMV8GIA`$WztJ zDHk0W+mvy+2|ah+xnb=o(I=??`@(bTGtX5g1oo z{9Jk57v~Q~8`c(HpAMV$^-{M2y0(vdR%*`Kn@%D1zAP5(0-1N~<^M7Nxz`!`USWD- zNfDVDZp%?;keC~{H{4zF^KDM4GMUug{^PWTV4oi$#H_@+=4th|XE7z74EVc%PUxDr zc8erk{TPTJ*fk~9E|4+u!Q|-u+1`WoVKvv^DEO@7g}^AAP1hO)zyaH$sxb#aYE|6V zKx60|Ro({)uvlH!5q9{I!sT+u749fVEWMj$2g#dr3{IWcHi4va=|-D1 z2~hg`^$H`md$b&e?6aTcpXgvqSd<6KS#Y)kJhYc<|sKUw>O-huVZ3WRl zNE`2!f`;+m^e10)Uk$i6cZs=bI%}P>#Z`=1OTtd?N>JrN5Wo;va?D7DY{Kp5szHos zIfSt?v+DjMiEf1~b41nwQ02v>mmuU2B=cF)hS`Kv8QSiEwjqlsbIOu_2&m80(dk`i zRi{d+^%RdCW{GazENPj1!lNQlKtad-_!LmtM?{_prWEgRoML9~t{VrO{g`%C3OMF58C@sh?ge^uaFdL-W^rmz0WnKNwd3ey zu4x1j)60P(!Chvzai*gtgNj8K@y0~^huV+|VWN%YNb z+*V7cdBPE@wjcB=9g}}FnWkrG5iCyv^g<4zFiel@OgW%Ekx>W@ z(6&8eb{Mt@UW+PvyD^0knV#N21>B{1HMHAdUQ?o)ITu5|s|82Ln8a8VgqL}GO?kt_ zg~+omOow;BuPw%mc=EnF_%&n~uPeFx$=eLQejudmWsqo5gSu~F5*-5kj2w4D=vYvZ zjVPm;vd?_M;5)l+c3@(RD$k_1`ijp?-Qnl~DeM;NnsZXU>)(9E_o5^jz|W`AN-C;* zdAOS>rw%KrlL&p{w4VI>YlLxl$>vS#`rB-`HB#dB!5V^SpY28FkL60bh~~j#1)g=H-CHhu zZ6pmqY1_JfLdcEu-|A*92?^hu0*O_ga!NMmWL||0EeL~6!@zLYdDkVAjxi%}F}}(t zO4!ASHRvNOym4k8LF|Sq={#?pY1x_u9ZTF(ifX#7(i6;qEBg?KG4hGL&_{`=Mj|)M zfFM8+=#{|rCNgY(ei`Kh%qeEJDh76f7y0N_9Rg8~RLptF%$^y^CwBzb9vlb5&Ra;1 z^BX?b=guzh0{_II`ut~O{f0oC3%lR&@fPXh?-p@2fFxZ*tC0Au6QVg;IQK>ZY9Hk3 zv)AvWWAE{@_+s<|RS4sQTW|WX%U5?5HWHh9qcpXv-imSn;QTkNLm(7sL&ldHM8e`i z7UE&mRW{|@<>y-$8x$U`pxDxDI%p8J>CmELEj0MVS-(b0!aNxBR9EnD9bnGsQ$Cj% zg=mY-8nJ^k35nWwo5vEFq{=%V*@i%=v_MDGn(WWsNT%mz*p?v1mac@-o8Gn47bXPHA}z`vRT9}oNgFmxpn21ZaAZ&ru~M-c zKQ!K4>hUoU7zj*`h7fat4p#IS@Lp@p%`yZwT$_I-pRC1NuAi3zy)lQ#jzTaWqFT0gBkge;0Lf3vzMNlK%*;u(! zO}woE-cD{+Yc5qnJt`$DE!bS9DFT`96y9QN%XE(+bf#Yh@|2Bq1LOvaQ6-(ECr@P9 z{X~oGgbi6W^-RE~T!eu+uAu9F7t^?~m?o|l;!YR`GPKkX8zKuoE~wd8-QXRbl9JMW zDmI1I5t3BElp1r5!Fo#Mytxg9MVs6Hgyb<_NUm9>M#HNV(t43x!A9Hhld&8nTzpY> zDqiIxswy;DbQOpAvd>IgZ}U5;7K(yqd^3>x(pwmG01GHmM1O|Hu(^EJ6S+!)_|2|> z8#?@xponB8oXap+m5SREw9MAaDvCpHom%d1A#BhI+*2k$a z*iERv8SrZjoW!$(!!{fcd-{9DufVi2J~%8e1U@~EZDsyL5|32(3qApJuX!9Nv(qS7 z5GO+gKgyFk4Bkl_T)XzDQk;t!E+M56Yl0xYw2jfwWCn~1!oG*$g4!v_CIulH^A~d6 z5^owe@(ae)E6WbHEjN=#I9{3d3oPDZVrX*@on`jPc@K1hBAN%~2kto~^&2cCRC`O6 zMiYRlvXkk_1DWRn6in+8k8ZvD)>`Ky*TYe*4x0d%`QWg42LwL1;-wY(5`p#7N!a?C z&Y}BP+Ku~Elk@3D_C^v2D0*-Rrn7p7XJqgvrz8=|=v94`#fRE1cTAi4x8HOL$HP2K z4}5?q$D@5a#${fufrx5KqncruAQT0|KET($9`W%rnEDKw`Y-VI)hA2>Po-yg|B_26;TzE(S3N&bww|BS9zAl>X- zH>UpcacwT2oII&imfylgo5dis#fT5P*x>$D|^AziGbypB=<}?WJY@=cG5C z9{MU|T>1w2n*q?|r^2`HtHyee8kJ#Y5zcoeaD zIkEM58@a-f4D*X}&}e5XG5arHyiTn3bs>yOPb6br8)@)(pY`XC9yWwZX$NiqJS&)$ z56HM`f%s>#t9X1w6}Nz&X2F@}8ZvWCa;lm?Aw`G z&_eEqKfAo-PuEQdu_|F5*!*cG?-;>T>GZ4d-Oj zuPV3yG}$&5-SFbuI8G*u|KaZ88>8P_$R^^G$WCv z1}As|?lOmp!ke6)dR`^y+wk4nGb}~MWAKx8;O*m)<1!6+%D@$>&`ZT&XgV@sdb)fx zHUVdOMXNUS85;+r6Bon^q0{Xsr*H%k!AYeVv@S{$WgW-t#5|3*hM77re*(f~UnKSf ze+eJmoBxfBfoeY(#~iC81h@#0?l&9Nrc8IH6tvEE?Ba1v+LSEuQBNdm zG5dnH@RgXdi1r&FBhQ#*!t_G?b`Qp-XQ`Y>%kYuksruWO-wv_C&P}o4U+xr0uSj)i z^0Lvr+#a94dpr{a90Qzc9}e0;ZpPJ2ieCQ$+Yj#hR^pI#ZK;;^vQH65f`^8wWt$ke zd@dD6neh3%2X?_FLeBJ1e$Vp&A+-YxD`fqwfjkUHG-ZeGvD?1!F*K%O6#>4w{KlPM z%4u$3TjGCH$d|}HZY@G-z>-Yagl|Pn^REm9?RK<5)8B77*oA#6B4a!8y~jy!;;q%N zxoc=ja+V(go9-|40O{)b9kvKQ4o`pKjH))=8dGvUb|a~XtB2ia4_HphQ%kJ?X*Zzo zscK{0_*%2} zO*=$)=rTF8r7-iWP9=sUL;}~^@k6=kB%DE%$^T_>ti0)CqL-SaVd^iZ0xZ^wPyqpp zp@rvPUIG*Rx1PrQBF-Cs`NIEa)xSN!;(MXC>0&61;;iw}c@;Ui1Hd~AwmU8i*R~I` zX5h_-MRre_-A1iG-KJOpHk#i2w$rulQTIylZn6Pj{K`-P>ODzDVp&#Ryys)Sn_tv5 zjMmuvSamPTlr5!&%{CF-;=u)l>Y@j)ZNhV`lvw}q0!WRkdg&csXEH_Wl&E*AtuLws z*^g}Ad>m#@)nnTiXfJLi>IP3eJTr#F`pJDxc(pu%DW`JsZ$kbWt1ln@yHTo)e=lkX z&L_p`HkS`_8-qjVKhCWZ9jjE+4Vd3|T!Hmn9WYbksD`fh;fMSYJEfVCUAw`2pqegbLA+2B=2c;H=sLw&N~-VvMG47o;>_ z7Iq@MncZ-6kg;m_m*!>u419z?z^mkNo>8g5e_=xF%0=J>t5)P*sY};F_bx2* z?1INtm$K(B;3b)V1$(qTAtK!ytm1~*sN$2+OC+h7ZNi|PL+~aI>w19yp{n-S30+7q z4c3ep&@R}z4UG`|ZzAY(PJ&Vy3f52OE;6yiwhjt+67=?f?GhJWFx}6bhgc9B5eiNV zayX)w=Z;s#z+l)s+y{tkx0fZBniXD$@{YZQjx|RNkTCNmbKJr+5CTcSvfNS|8YJO}|FD`k() z*$c$mk&e8XHq8+}`RGR;=l@<$U%m(50uwFU zTQF^;T|Hfv`|I|9O6#ll&YO5$7mj=LRK z$$Ddn=iE?eO;_ZK@%dno3`%U5j^*AHyQzIPSv3O9FifS( zZM@JnlMwvKKkr^!Ww|u^_J48CM_`}r84*0yDK9k-TIHPeoBzkM>z;Yad$f*PNNKZ9 zwR~(*X{p_vMV32P$Xx|?eibur0WtL~cgXHpYwdsj%Np4=cq%U-_%Z&%Tuiit1AA@M z5Ht^h0UPEJ{%ikxp?|~1rMss%5|6Sb61Qy-gL95!Rize}%D$!hs~7^#I;A4xXx$18 zXFR+o@zdcH?cjre+@OS2g{1MfGSrC!=gq`~8*UBx+g|mUMGW6AMhTlN537i6_b`#b z?Sk7?*AuVx)Bn36mBVh4AqOGjwC^Z*J;1DMc<9vL{%_w&C@#T$VubXy%S4b12{x|# znC7X!9Q~GFJSb?2n7)fQv!bPEwj+gDwPpM!GKSVcDMsbk?=R}qE*p7+&^IRs zXm4I!SpSFVNGSfmro7$QwBV72ZI@WxE@v+8H1wFEW|;`P#ak<;cx+eq+|s@ti!uiI z@Z&Pws}^b&?I{vN8)}+&iAiXKkN0Uxze05yW|2ITD4AE5m2 z3ez0l*PYSQdO@nDH^|Pux4KqmPfy*m{BJ53&~R?Ticq}p*Pt-xl>4a8D$IWSD)d#| zRJYP&lXpqfbJL5rJHs0x&e42&^Pj6HzPVwIDe2uwLoKBl*fl<;`v04kihY~yq6ju~ z(LQH$BfSgE`TknNP<&;Y&Etv{KD{~}O4tf2OQr5ANBrjNj&ouYx~qu>MT_LpVeH3u z{{(+^rf(PHA{;96a8ZCj1RJLbALva#7KH&z>HpVVG0!RRb6r1lEKDwiPv!^h+Ggad z{CyeEbE*5K-Wt_)8u-7?$|YGQtm`FrUg(2E>T%P!ig`?vED-pPFZivq-+_Gl{@QkQ zbF2ZUb-HkyYJY$4C}^}j2_Aco>C2n{{F8s)YGwR$?kN6P#!3yIsH)m{;~Q5m0CI)+ zgDta{J~#7pp&&~GOlp3^CV!}0Fm#ovYU{H1UV`L1Za za%+QPr|n3t%8a_#26T16Z&>V%bH`;40qw@#jgQ05aZ?RHk#)Q1QeIv8u}`a95IW?A z5pXby#3nVPcbmJqJjXYMp!8yF>#-EvuDZ0a_R7Ln{XTH)mt~ax7Yz9P+izGFQ9>3q zRqsr5+SW}cfj8m~AiKQUcmr2cEf&qCk78 za4$zKu8p%$J6Y(nFvUxQPJxUvpn2U=^hw=cd3lkn^kB=UNK(fE@2(9Tel!DFBd(bO zE48scrPTU=V#42#6}@lpnFiN))u4N!9wa}{@UqF+8{Q2f#F}~eKDniS zRYy(jU&q`==E2uq9E^qk(PHQJ+3>=##w1k0^5GhK#XLFu0L2YoG>)H_L(S2^ApspQ z!TQ4QTj|niT(#BMGuD5~-EY2{^KueeKqtOyhw!l*XS^~|S^j2O$BPRf>@?GVS2To` zf4~0sHvUhG(FAPi-}mk;FH~Z-nG_PEA1wlL`#J>U)c_x=|M3iSyZ4jCc&*{r19=cX zpDW$u8Rp=P%4RaL9Cow8T9kP>;{DE}}@(CMF@zP(L^`D~! z_U$wJdx}SX7u2RGrbwkEK6aIG?tXz*$XphOEQQ|J8-s3>vPBPFU=pbJ+~$f?f7?~V z6n>s`y_qXoU9dY6ln7qq-uw5U>-eOUA;J&G+gubcMBn@=GTITS?UnRi^zK^2nM+X~ z6}GO@d!2zXZU(7;J@9+x53ezL4;gv`EN}-PN{ZOUfJ_VeKv^u%8dNj@2#V$RFVDZ> zU^OZ!Jg1Y9y8j%fkdB7JA3RJftV)w>Uv6>|IzUh#NzY6hrbl*}sF>^KZZ7 z+@cgH{asEW;=dbZW#Maj@Aw){?mP8Uk(oL5SEOhDXK}tWecy`^xedzV|Ll>!zVyAr zIN1B94{A24ea`KV0qv|7Xy5A~=8U4yHK;cKkCjxcGD3w1a$ofTk9P)C>l=WLf>Q&i ziVeV=s1LFSXRiw|Nv{_Mn9vUJigN(-YpBnw`bIqogbZa6EWFsL5dd@#y$~q}vJABc zP=6uh6P0A&K6~~Dr(L@noD;~A$rIY`G?8rP_^Q zua1)Ra>Us5Hv^nHWw0Z@suN;Vu(`1|avt5J{qSD){)-pFA8222J$ivp-zlX&bS*HF zVMo-pm3ws?xsx#YOvsT>*x8`Tu5fTb-PPH@C_gb*7g!S|EgPrx0NK%GwBt%3Q;IYg zQ@lX~Q;n}+BkWC2N9*`ifG#IH+-u9o0?f)SH*T~5_9^Q+gflQDJE^{T+|0rTI`wtn zimU+SR&FtMsbT({Y_t#AO21>R11=!v2^a?OdF?o+%7G2${_vL>Fl+0RFl6J>waAJ| zpzX>X8=WR^88uB`Gyljv=9Vjli}0VRG8jfEq(j8O2E_01g>!*I>O&u_+VIx#O9fe$iNGu zH+Anieklx2=%k%UnvWKTU}<~dfmL?8=Gz#Km|(7Y2j?L+Jl-=H*S4N53Evxhd6&rR zRx^p49dz44o5vQQ8nMh;g<^_(b3kp9FP$K12jB|D}tMRV7)Gq5eoh6mO(Xg=0&dVflp>t6@cUrkFn@Sj)Tuqk0e+HJSI zKt*eUpyobu1#sLk;4IomcqlaVkv=r?KkzR=lT}`Bm<@Kkz7<&}&2fY7ar-^(k|!=h zobq+QZlQ_VaKTm%c@H-DKl}RXFCV4eCzrjM6Sbm3(+z6RMUw|N-0!%xVh9+MN|aN4 zz;SgsTg;Rxqg`A(t4Ox%jx>dBt)U}H2}`PehoVZT|AV|IX>m!q-M~so9&BEFOExy^ zb$(?dqib)FsROse!g2OM#t>gp~Hj8uLZQUET%H^h3^FUC+1@rLnJ8Q|`z4q^PZ3YY# zq_>{(m$2-<9a?TU7;Qp*QcEx(hMvy%r3c?@^c(YspaH1thHs@z)@P&VYoo{5$}VRV z0vGx_W{pjBjz2QPXry7qQ-^JTEt&+)N5Nfh$(bnBtJLGE8;d6l#)kRS$Ia_e&jFK*ROu=+F zhGb*FWj5F+yuO z*U)-LC^{_I*boJAYDZMUB$fn}8DZdFJ9H(OFUHNibOlo2Xs5cL5Z6y&pL;{cx;>q1 z|DhN0Pn8m#A03XFgC}-F3pKV|Vf3S4R5tp+1|JvZZ~&!`ds zu#d~1wHa#(wI6)qBzPD~^>yejxQhA!P{Z_AK5$teCombA!D2N&X3K30HK0~)M$rlo zqwGWImsk1cYYeYZ?z&(NkW0z9kbl~=o3%L2$%HjO3USeZw??zY{o;ep$Sq#1-`#4K zgImZODDOJkf0A(DF&nwO1-3wFpYqXiJqEMx-9E8y22#nNYIEL_7?1MgEL)ZM_Ftbx zzf{*5cvn+^ToeKlM6tos_G+tN+vHF-0jJKKc5aa_Njd(>)lu|S33={a+4DLq+_>lD z{6xAscGaBZ|0C?H^b8Z0R#1?Eyv&_UULgCN)bXWDMxEOwI%boAYeW`;oRg8*IM;xZH%Z~jC zr@cKYv$uK!Sm56gwmMNi25@@mu1b#!wvWtwN?Vq6Wo9z9S7XcOk0OM8R}8Hw9fv8w zvrhwNO~z45&5IEQMFV3aS!IH87Tf0o;j%__4@?)32v*iYzY5C@pMJlG$fDIMS>wYv z+^#wX;5(J%@xtC?=Yie=y6(&L$xpGQ+7FFc6)ErCiES;Y8cwBnrpx>nc=Ci`ZpDks z`>p2zHui%Lxe)8E>j&M|CqEl92GwcdL|Wc%$~0YkgQKnv!fIk-lpBW!-Gc{n$LY~+ zcuGtg_U^v^4)$5@(|}O5pzHa(6}KxW?i!u*l9nKW2Z{UvM0J`Qoxld$^+ndLO>{$s z;Bt!ZzVK}uu_M>Xvom)&`_)}x-@&e#o1my@n~0~j&kCjFuFivu7+w4w<`|cw0&(p9 z>E=EQ?#apuu{@Z`F9F#98YIgPS$~x zU2ZPOEO40m4bQSGZ0=axmmkMdXho#ym(_+QsKHdm!4j26Inex0q2NI>4T1k_+10Om z;L$X5)!K=7!peb-1lxKXD<41src4aR$HA6~3cIfCCCE3}A2B}@mR^5DF;_`I-#E<`%_!G0 zHh6RTm9FO!l-E{mznPT}8`VxY6)%h9{RFBZy9xpm`;QeitI)({z$}5yQoh;;BBxam z6N<65cNGKg9MInBo%(hf99a{s!iUdRuQjH02msU2m;GdonYY-nQ1S@M>-eoc?Y81u z!$`=MI*(ko2Ezfpl3q#-zsw%!x;em>dH+1iD}B3QEn(U#fsb6$hg$Jf_wlpQ|P!alGL1hqSD zI!V0!-)R!MH&~CN{AJnf%No2kSnZ04P9mMl8g|3SogIvHA>AymbU$(zzq{?)M@5tv z{i+;TZSG6q@VjxfgF-;0f|C;m(KP4Xs(YEB(#%$rd=``sH|c5X!Ms3T!0+$*Pf&zU z16S=Cc@AB8t;LjT1=c+SdN>|c)s<1080y?IcFDE3&wrO&TrpwQ${CX;hXP{|Q^W7O z;jAoD_%T-1C=Q^JjQ<4<`ov3P+@Dfp}mNhrOAu4fL68I)DIFMDLq4nYiCL`B~B{m-j?_SOjcQpvW00n6;wVlzd~jY!oQp_CT?#v7P;G7Sl+As3Xb1KBM*NV#ge>i+l zh52W4Bun+giyvm9z~ui+GwPoL_^?jO(?XX-RTrqpicBk!#0S=^L6R=N7C-UX^OmlN z`2Q5n&~WLx!9FQDx%C9_?ixT7Y>;nWy=&jLy(o9?)AIn>`?kf>M7 zm1h=|wytU$MRA*{wGI7TPZ|L)si~53|FzTYxr2%LQnI@OPrNyn$Ga}xx*3+F4}XuE z$j^>r0h=2ZwOUTmVxtF7gY@RTJ$Gou`}Ea&xFa^|uu5MpgHApVUG=T77Uy>=?KT@1mW+CH5lq!gOxUR3wyAP?@1LgUKP$zyL}mF9 z`9$VzFeh-~LOcZgMh18p2qd79nYYrTuXHIBjPCA&U#3!X(xhws4sgr&vyhW`b}|S0 zLUTGcu1T;zB^G$m+={Gr2klg8_0{1vgv23crb(C0&*k?CLr}Z=wqY_ZLZ?eXV6we# zVlR}w{tQSoMK_LsAW|Ew95I%J8c2|driO{bdb~ExfcrI0BG}``n_w2(ffmNxn+5X( z+F-zFB^c$j&;-mas)eXTryeyeqJvC!-nd^wACsO#8-|4LfZ70|9@Y55rD*|Ib`#cH zX~gwC>mF#uxe-|BW26n@22TJ|;z4|uHNpdFO-Tc2((kCfs~~cC zz|N*XN4dl0-Y_wtPfx4S0$Ed6@^iv(o81_8%GCWSrOC+$j~=!1vWk4N3^HOoC1|Yf zv|8J}p|W%RML@6ywy~A(g59NJ2`#%Qts&s5mNshbx7Ln$q`g#5@+gzw*R~aMn^iyc zdX4Q%o4`YIFQ2(r)V(TqwFSJc73girNYoSjlfZq(|=bPM?7&}r+VVD-}R%v5(*Et1*8!h875A1`8@lEG}&X26F51t z(cVDniQ8_^P=%$ct!pbsZ(-hWpR?`0u8;qG9<^^Q@SJH;veQ_y7)Fn>ITI4EbHO-GmS+u!! zJpYxxp_&s>Ou8X2V1LZ+`M{2pQp!~ZI9$=wPk-YI3wiafhbl6 zMc8N-jE1X27(iD~2ezScoNuU$*h(Lm?@oc7r>mf%nlcOm7&;V{Z>r8ms8FJwfUN@^ zBTx6`Je~Xi&#m?BN%;pHddBm@2!Q>)8++b4IjtF{a0RORa4CR9ev!_oNteZA&g(13 zV>1VdfdQi8xb0Np-4?%vem^dd%YPd^DIT{QG~-*Ir+pHK3^Z{5lUj%ImIBCzVm1o6 zrCJ8nT=ML*yb0-g{DEUj?gw5;H6!vN5K3PYd-%gVX&> zpf@^N2~-_1oTx_xMKuDbIoD`lIh4_WNQralT`qwfNT?|EpAn zt~!F$Rv>@Gu3WeB(JiL-8=i!Oio%zY^yZZ_DmvfK{8W=WGB^UehNhfnwdpD8?(T#5 zF#77z-WsK=k;-SU4m4+%u41w8pvK8k0kVH;VBKLcJ!Ag5LVw3L12J_9uMW|;(mcYzHs?rl~TTpGC}Jpf`ArotQT ztkX6pPttZ4otV^mi&hV@a(1&>XT?m-!&&dSJUc^_NljHvHr6CHCp{5IqlK=6s>PMW zaWAm2GAluLdkc{hh>-ZH4wdT5erP}@Y-N|@nT2fp+*f{Syz*P@*=IcuwiTSd#c7rG z2kvDyp!l?Xv^>!HYt)Z9=w-uT*Cl+AR?B29fkG}%uno*R)Km@G`?q#_imh-dR2e6! zpJf}%j$VgVM7NzsFQo1_gU;lCg8^-u3YiHXXbkjdRxtu-cA5R{M1ua_d3bu8fM)wr69eUGs3AX;ST9ARSAX57$?2>Z7 z+ISj*6Fg$o4_rB#DEZUK{jW0>P$4a##mm+o%cf6P(St@`-+$Kj3|f?$b~?Is)jrw> zWI+^gB{QM(AahQ`7EgU#so@J+YMa%9PCEgFeWaAYDd5_W29iHBfC&U5U?GLL;dZ)p z_=()_bFfg7(45q)synF9lV&U_+jxnxv$>QX)F~bYa)mkkU{4uX#8n)Xqx1bk#M~=R zJqGcqI28vvKPqJ6XRlQIfkS}6r>=U*w~*bnPLJc*a!t@EZ=?_{oxxN zta7_y1#(v&)+kW6D85CKPS_^KtJo{M*SBa=&83KeIB*T1DWdoUZvPdIF<1vwu&B!m zC)QL#q+ImX8k*E;q@z5&mtTEGz&{>r3~TY#-+0on{MP5Ty{0Ts8692i4%p3M)ZuvZ zOp)gESDCb6vD+Mvw(W-)fDwo8(^^(Wgx1)@;u6X2we~^_YQ4y#?Bg^*6r;eV0Bg%7 zvqWf1q@Wc*8kfJdo_RzyN=t+FlpTW!(sNf1H};|O8sN9LZr05_cNGl4g;}3`T@|Oe zyfF_8izMTyiAMi9T~O*h^#!2rYuT!NDE}FT8Th3R#V24xA7>l6eDMBlt8>MU$PGU4 zo-sB!$d>w)1DpL<==93k;#RH6U*6_#;doK+Sla?i3aoWJ`+^SaoKW{_v?-b%IwfQt z3>aVAR|HjeW}@8tbqh~xufU_BjF)Hi@E~D?aA1mrgQsj@H!&$NyQuc37#~^q}IoAHJYqPufQ_`i0*Uw zkw%V|2P@tvgy=%vu0u$rg&85QCgdlb^H6)c`5?U;wl*sEEWKa94|I@rxYH4j_>b}g zTe}-US4n-R<$pZg5jZd*5`=~>^14@b`-x_;sw-#~;jWLp^7z>j@wbsH+*VboVwm<< zF*e9WM+04^%l_eHnc9N2Evrc3B)C54wwMFQ{<($A>QV0j^_FjQf~L~he^grkR@{y+ zquWU`+7)LNLUK@6>!3VJI?pn9^;PSpdT4xTvOHo@1Mgvp~iW_!^WFaC`Qx#r=Aa6j8vV@O$)E=WaW}P{<=?%X _ye?&>ORA8 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

    JnJY>ZJ+joN zA*du}AAT=s({aV-{-jQ$c{dd-a;p-BVX&3D)EXX&S!?NWgu1Yy(ItEH1V1KUAWKrc0nSF2{EwfcV{(v$SY`CMo-P)ihm(d zBl8N}vFiIv(9-Er`X)G(meVQ6V@&GgJl_p+ib9GI#S`>XeHo|~`by", - "", - "", - "/install/vmlinuz", - " auto", - " console-setup/ask_detect=false", - " console-setup/layoutcode=us", - " console-setup/modelcode=pc105", - " debian-installer=en_US", - " fb=false", - " initrd=/install/initrd.gz", - " kbd-chooser/method=us", - " keyboard-configuration/layout=USA", - " keyboard-configuration/variant=USA", - " locale=en_US", - " netcfg/get_hostname=ubuntu-1404", - " netcfg/get_domain=vagrantup.com", - " noapic", - " preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg", - " -- ", - "" - ], - "headless": true, - "boot_wait": "10s", - "disk_size": 40960, - "guest_os_type": "Ubuntu_64", - "http_directory": "http", - "iso_checksum": "ca2531b8cd79ea5b778ede3a524779b9", - "iso_checksum_type": "md5", - "iso_url": "http://old-releases.ubuntu.com/releases/14.04.1/ubuntu-14.04.1-server-amd64.iso", - "ssh_username": "vagrant", - "ssh_password": "vagrant", - "ssh_port": 22, - "ssh_wait_timeout": "10000s", - "shutdown_command": "echo '/sbin/halt -h -p' > shutdown.sh; echo 'vagrant'|sudo -S bash 'shutdown.sh'", - "virtualbox_version_file": ".vbox_version", - "guest_additions_mode": "disable", - "hard_drive_interface": "sata", - "vboxmanage": [ - ["modifyvm", "{{.Name}}", "--vrde", "off"], - ["modifyvm", "{{.Name}}", "--pae", "off"], - ["modifyvm", "{{.Name}}", "--paravirtprovider", "legacy"] - ] - } - ], - "post-processors": [ - [ - { - "type": "vagrant", - "only": [ - "virtualbox-iso" - ], - "keep_input_artifact": false - }, - { - "type": "atlas", - "only": [ - "virtualbox-iso" - ], - "artifact": "hyperledger/{{user `artifact`}}", - "artifact_type": "vagrant.box", - "metadata": { - "provider": "virtualbox", - "version": "{{user `release`}}" - } - } - ] - ] -} diff --git a/images/base/release b/images/base/release deleted file mode 100644 index 2cfabea2f1e..00000000000 --- a/images/base/release +++ /dev/null @@ -1 +0,0 @@ -0.0.11 diff --git a/images/base/scripts/common/golang_crossCompileSetup.sh b/images/base/scripts/common/golang_crossCompileSetup.sh deleted file mode 100755 index 0d7468203d7..00000000000 --- a/images/base/scripts/common/golang_crossCompileSetup.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -helpme() -{ - cat </etc/profile.d/goroot.sh -export GOROOT=$GOROOT -export GOPATH=$GOPATH -export PATH=\$PATH:$GOROOT/bin:$GOPATH/bin -EOF - - -# Install NodeJS - -if [ x$MACHINE = xs390x ] -then - apt-get install --yes nodejs -elif [ x$MACHINE = xppc64le ] -then - apt-get install --yes nodejs -else - NODE_VER=0.12.7 - NODE_PACKAGE=node-v$NODE_VER-linux-x64.tar.gz - TEMP_DIR=/tmp - SRC_PATH=$TEMP_DIR/$NODE_PACKAGE - - # First remove any prior packages downloaded in case of failure - cd $TEMP_DIR - rm -f node*.tar.gz - wget --quiet https://nodejs.org/dist/v$NODE_VER/$NODE_PACKAGE - cd /usr/local && sudo tar --strip-components 1 -xzf $SRC_PATH -fi - -# Install GRPC - -# ---------------------------------------------------------------- -# NOTE: For instructions, see https://github.com/google/protobuf -# -# ---------------------------------------------------------------- - -# First install protoc -cd /tmp -wget --quiet https://github.com/google/protobuf/archive/v3.0.2.tar.gz -tar xpzf v3.0.2.tar.gz -cd protobuf-3.0.2 -apt-get install -y autoconf automake libtool curl make g++ unzip -apt-get install -y build-essential -./autogen.sh -# NOTE: By default, the package will be installed to /usr/local. However, on many platforms, /usr/local/lib is not part of LD_LIBRARY_PATH. -# You can add it, but it may be easier to just install to /usr instead. -# -# To do this, invoke configure as follows: -# -# ./configure --prefix=/usr -# -#./configure -./configure --prefix=/usr - -if [ x$MACHINE = xs390x ] -then - echo FIXME: protobufs wont compile on 390, missing atomic call -else - make - make check - make install -fi -export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH -cd ~/ - -# Install rocksdb -apt-get install -y libsnappy-dev zlib1g-dev libbz2-dev -cd /tmp -git clone https://github.com/facebook/rocksdb.git -cd rocksdb -git checkout tags/v4.1 -if [ x$MACHINE = xs390x ] -then - echo There were some bugs in 4.1 for z/p, dev stream has the fix, living dangereously, fixing in place - sed -i -e "s/-march=native/-march=z196/" build_tools/build_detect_platform - sed -i -e "s/-momit-leaf-frame-pointer/-DDUMBDUMMY/" Makefile -elif [ x$MACHINE = xppc64le ] -then - echo There were some bugs in 4.1 for z/p, dev stream has the fix, living dangereously, fixing in place. - echo Below changes are not required for newer releases of rocksdb. - sed -ibak 's/ifneq ($(MACHINE),ppc64)/ifeq (,$(findstring ppc64,$(MACHINE)))/g' Makefile -fi - -PORTABLE=1 make shared_lib -INSTALL_PATH=/usr/local make install-shared -ldconfig -cd ~/ - -# Make our versioning persistent -echo $BASEIMAGE_RELEASE > /etc/hyperledger-baseimage-release - -# clean up our environment -apt-get -y autoremove -apt-get clean -rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* diff --git a/images/base/scripts/docker/init.sh b/images/base/scripts/docker/init.sh deleted file mode 100755 index 4e1e5c95c50..00000000000 --- a/images/base/scripts/docker/init.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -apt-get update -apt-get install -y wget diff --git a/images/base/scripts/vagrant/cleanup.sh b/images/base/scripts/vagrant/cleanup.sh deleted file mode 100644 index ddbc4b0b493..00000000000 --- a/images/base/scripts/vagrant/cleanup.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# Removing leftover leases and persistent rules -echo "cleaning up dhcp leases" -rm /var/lib/dhcp/* - -# Make sure Udev doesn't block our network -echo "cleaning up udev rules" -rm /etc/udev/rules.d/70-persistent-net.rules -mkdir /etc/udev/rules.d/70-persistent-net.rules -rm -rf /dev/.udev/ -rm /lib/udev/rules.d/75-persistent-net-generator.rules - -echo "Adding a 2 sec delay to the interface up, to make the dhclient happy" -echo "pre-up sleep 2" >> /etc/network/interfaces diff --git a/images/base/scripts/vagrant/init.sh b/images/base/scripts/vagrant/init.sh deleted file mode 100755 index 3c10c5a5b39..00000000000 --- a/images/base/scripts/vagrant/init.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -set -e -set -x - -# Install headers so that we may build the vbox drivers layer -apt-get install -y build-essential zlib1g-dev libssl-dev libreadline-gplv2-dev unzip - -sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=sudo' /etc/sudoers -sed -i -e 's/%sudo ALL=(ALL:ALL) ALL/%sudo ALL=NOPASSWD:ALL/g' /etc/sudoers - -# Tweak sshd to prevent DNS resolution (speed up logins) -echo 'UseDNS no' >> /etc/ssh/sshd_config - -# Remove 5s grub timeout to speed up booting -cat < /etc/default/grub -# If you change this file, run 'update-grub' afterwards to update -# /boot/grub/grub.cfg. - -GRUB_DEFAULT=0 -GRUB_TIMEOUT=0 -GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` -GRUB_CMDLINE_LINUX_DEFAULT="quiet" -GRUB_CMDLINE_LINUX="debian-installer=en_US" -EOF - -update-grub diff --git a/images/base/scripts/vagrant/vagrant.sh b/images/base/scripts/vagrant/vagrant.sh deleted file mode 100755 index d43ab6351c1..00000000000 --- a/images/base/scripts/vagrant/vagrant.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -set -e -set -x - -# Vagrant specific -date > /etc/vagrant_box_build_time - -# Installing vagrant keys -mkdir -pm 700 /home/vagrant/.ssh -wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O /home/vagrant/.ssh/authorized_keys -chmod 0600 /home/vagrant/.ssh/authorized_keys -chown -R vagrant /home/vagrant/.ssh diff --git a/images/base/scripts/vagrant/virtualbox.sh b/images/base/scripts/vagrant/virtualbox.sh deleted file mode 100755 index a8b2aeb1531..00000000000 --- a/images/base/scripts/vagrant/virtualbox.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -x - -apt-get install --yes virtualbox-guest-utils diff --git a/images/base/scripts/vagrant/zerodisk.sh b/images/base/scripts/vagrant/zerodisk.sh deleted file mode 100644 index 35370d64a3d..00000000000 --- a/images/base/scripts/vagrant/zerodisk.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -# Zero out the free space to save space in the final image: -dd if=/dev/zero of=/EMPTY bs=1M -rm -f /EMPTY - -# Sync to ensure that the delete completes before this moves on. -sync -sync -sync diff --git a/images/src/Dockerfile.in b/images/src/Dockerfile.in index 5b94527b6e4..507220741e5 100644 --- a/images/src/Dockerfile.in +++ b/images/src/Dockerfile.in @@ -1,2 +1,2 @@ -FROM hyperledger/fabric-baseimage:latest +FROM hyperledger/fabric-baseimage:_BASE_TAG_ ADD gopath.tar.bz2 $GOPATH/src/github.com/hyperledger/fabric diff --git a/scripts/provision/common.sh b/scripts/provision/common.sh deleted file mode 100755 index 0efe7e63570..00000000000 --- a/scripts/provision/common.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Add any logic that is common to both the peer and docker environments here - -apt-get update -qq - -# Used by CHAINTOOL -apt-get install -y default-jre diff --git a/scripts/provision/docker.sh b/scripts/provision/docker.sh deleted file mode 100755 index 8ed21a7ca14..00000000000 --- a/scripts/provision/docker.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/bash - -# --------------------------------------------------------------------------- -# Install the hyperledger/fabric-baseimage docker environment -# --------------------------------------------------------------------------- -# -# There are some interesting things to note here: -# -# 1) Note that we take the slightly unorthodox route of _not_ publishing -# a "latest" tag to dockerhub. Rather, we only publish specifically -# versioned images and we build the notion of "latest" here locally -# during provisioning. This is because the notion of always -# pulling the latest/greatest from the net doesn't really apply to us; -# we always want a coupling between the fabric and the docker environment. -# At the same time, requiring each and every Dockerfile to pull a specific -# version adds overhead to the Dockerfile generation logic. Therefore, -# we employ a hybrid solution that capitalizes on how docker treats the -# "latest" tag. That is, untagged references implicitly assume the tag -# "latest" (good for simple Dockerfiles), but will satisfy the tag from -# the local cache before going to the net (good for helping us control -# what "latest" means locally) -# -# A good blog entry covering the mechanism being exploited may be found here: -# -# http://container-solutions.com/docker-latest-confusion -# -# 2) A benefit of (1) is that we now have a convenient vehicle for performing -# JIT customizations of our docker image during provisioning just like we -# do for vagrant. For example, we can install new packages in docker within -# this script. We will capitalize on this in future patches. -# -# 3) Note that we do some funky processing of the environment (see "printenv" -# and "ENV" components below). Whats happening is we are providing a vehicle -# for allowing the baseimage to include environmental definitions using -# standard linux mechanisms (e.g. /etc/profile.d). The problem is that -# docker-run by default runs a non-login/non-interactive /bin/dash shell -# which omits any normal /etc/profile or ~/.bashrc type processing, including -# environment variable definitions. So what we do is we force the execution -# of an interactive shell and extract the defined environment variables -# (via "printenv") and then re-inject them (using Dockerfile::ENV) in a -# manner that will make them visible to a non-interactive DASH shell. -# -# This helps for things like defining things such as the GOPATH. -# -# An alternative would be to bake any Dockerfile::ENV items in during -# baseimage creation, but packer lacks the capability to do so, so this -# is a compromise. -# --------------------------------------------------------------------------- - -NAME=hyperledger/fabric-baseimage -RELEASE=`uname -m`-$1 -DOCKERHUB_NAME=$NAME:$RELEASE - -CURDIR=`dirname $0` - -docker inspect $DOCKERHUB_NAME 2>&1 > /dev/null -if [ "$?" == "0" ]; then - echo "BUILD-CACHE: exists!" - BASENAME=$DOCKERHUB_NAME -else - echo "BUILD-CACHE: Pulling \"$DOCKERHUB_NAME\" from dockerhub.." - docker pull $DOCKERHUB_NAME - docker inspect $DOCKERHUB_NAME 2>&1 > /dev/null - if [ "$?" == "0" ]; then - echo "BUILD-CACHE: Success!" - BASENAME=$DOCKERHUB_NAME - else - echo "BUILD-CACHE: WARNING - Build-cache unavailable, attempting local build" - (cd $CURDIR/../../images/base && make docker DOCKER_TAG=localbuild) - if [ "$?" != "0" ]; then - echo "ERROR: Build-cache could not be compiled locally" - exit -1 - fi - BASENAME=$NAME:localbuild - fi -fi - -# Ensure that we have the baseimage we are expecting -docker inspect $BASENAME 2>&1 > /dev/null -if [ "$?" != "0" ]; then - echo "ERROR: Unable to obtain a baseimage" - exit -1 -fi - -# any further errors should be fatal -set -e - -TMP=`mktemp -d` -DOCKERFILE=$TMP/Dockerfile - -LOCALSCRIPTS=$TMP/scripts -REMOTESCRIPTS=/hyperledger/scripts/provision - -mkdir -p $LOCALSCRIPTS -cp -R $CURDIR/* $LOCALSCRIPTS - -# extract the FQN environment and run our common.sh to create the :latest tag -cat < $DOCKERFILE -FROM $BASENAME -`for i in \`docker run -i $BASENAME /bin/bash -l -c printenv\`; -do - echo ENV $i -done` -COPY scripts $REMOTESCRIPTS -RUN $REMOTESCRIPTS/common.sh -RUN chmod a+rw -R /opt/gopath - -EOF - -[ ! -z "$http_proxy" ] && DOCKER_ARGS_PROXY="$DOCKER_ARGS_PROXY --build-arg http_proxy=$http_proxy" -[ ! -z "$https_proxy" ] && DOCKER_ARGS_PROXY="$DOCKER_ARGS_PROXY --build-arg https_proxy=$https_proxy" -[ ! -z "$HTTP_PROXY" ] && DOCKER_ARGS_PROXY="$DOCKER_ARGS_PROXY --build-arg HTTP_PROXY=$HTTP_PROXY" -[ ! -z "$HTTPS_PROXY" ] && DOCKER_ARGS_PROXY="$DOCKER_ARGS_PROXY --build-arg HTTPS_PROXY=$HTTPS_PROXY" -[ ! -z "$no_proxy" ] && DOCKER_ARGS_PROXY="$DOCKER_ARGS_PROXY --build-arg no_proxy=$no_proxy" -[ ! -z "$NO_PROXY" ] && DOCKER_ARGS_PROXY="$DOCKER_ARGS_PROXY --build-arg NO_PROXY=$NO_PROXY" -docker build $DOCKER_ARGS_PROXY -t $NAME:latest $TMP - -rm -rf $TMP diff --git a/scripts/provision/host.sh b/scripts/provision/host.sh deleted file mode 100755 index e5a8aa22f48..00000000000 --- a/scripts/provision/host.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash - -CURDIR=`dirname $0` - -$CURDIR/common.sh - -# Install docker-compose -curl -L https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose -chmod +x /usr/local/bin/docker-compose - -# Install Python, pip, behave, nose -# -# install python-dev and libyaml-dev to get compiled speedups -apt-get install --yes python-dev -apt-get install --yes libyaml-dev - -apt-get install --yes python-setuptools -apt-get install --yes python-pip -pip install --upgrade pip -pip install behave -pip install nose - -# updater-server, update-engine, and update-service-common dependencies (for running locally) -pip install -I flask==0.10.1 python-dateutil==2.2 pytz==2014.3 pyyaml==3.10 couchdb==1.0 flask-cors==2.0.1 requests==2.4.3 - -# Python grpc package for behave tests -# Required to update six for grpcio -pip install --ignore-installed six -pip install --upgrade 'grpcio==0.13.1' - -# install ruby and apiaryio -#apt-get install --yes ruby ruby-dev gcc -#gem install apiaryio - -# Install Tcl prerequisites for busywork -apt-get install --yes tcl tclx tcllib - -# Install NPM for the SDK -apt-get install --yes npm - -# Install JDK 1.8 for Java chaincode development -add-apt-repository ppa:openjdk-r/ppa -y -apt-get update && apt-get install openjdk-8-jdk -y - -# Download Gradle and create sym link -wget https://services.gradle.org/distributions/gradle-2.12-bin.zip -P /tmp --quiet -unzip -q /tmp/gradle-2.12-bin.zip -d /opt && rm /tmp/gradle-2.12-bin.zip -ln -s /opt/gradle-2.12/bin/gradle /usr/bin - -# Download maven for supporting maven build in java chaincode -MAVEN_VERSION=3.3.9 -mkdir -p /usr/share/maven /usr/share/maven/ref -curl -fsSL http://apache.osuosl.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \ - | tar -xzC /usr/share/maven --strip-components=1 \ - && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn - -# Set the default JDK to 1.8 -update-java-alternatives -s java-1.8.0-openjdk-amd64 From dcfbc7ab3953c72d130776176acbc3b8d9d2c5d8 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 21 Sep 2016 14:49:55 +0800 Subject: [PATCH 13/27] Remove unused space and empty lines Change-Id: I92b4a494e347d71ee8bdc6ed9613004e39977ed9 Signed-off-by: Baohua Yang --- protos/devops.proto | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/protos/devops.proto b/protos/devops.proto index 4c578609bb3..9f8cf4b067c 100644 --- a/protos/devops.proto +++ b/protos/devops.proto @@ -50,10 +50,8 @@ service Devops { // Execute a transaction with a specific binding rpc EXP_ExecuteWithBinding(ExecuteWithBinding) returns (Response) {} - } - // Secret is a temporary object to establish security with the Devops. // A better solution using certificate will be introduced later message Secret { @@ -69,7 +67,7 @@ message SigmaInput { message ExecuteWithBinding { ChaincodeInvocationSpec chaincodeInvocationSpec = 1; - bytes binding = 2; + bytes binding = 2; } message SigmaOutput { @@ -78,7 +76,6 @@ message SigmaOutput { bytes asn1Encoding = 3; } - message BuildResult { enum StatusCode { From 70237c3456d13b8d5a0c5b972d9197bcff818376 Mon Sep 17 00:00:00 2001 From: Bret Harrison Date: Mon, 19 Sep 2016 16:40:53 -0400 Subject: [PATCH 14/27] Updates to the node SDK docs and sample files Fix broken links and formatting issues on doc files Include docker image and compose files to support docs Update sample apps with environment settings fix src and tag in dockerfile fix docker image name in doc Change-Id: I7e2781411199039ee851ec5da63d3f9377767cac Signed-off-by: Bret Harrison --- docs/nodeSDK/app-developer-env-setup.md | 34 +++-- docs/nodeSDK/app-overview.md | 8 +- docs/nodeSDK/node-sdk-guide.md | 4 +- docs/nodeSDK/node-sdk-indepth.md | 24 +++- docs/nodeSDK/node-sdk-self-contained.md | 125 ++++++------------ docs/nodeSDK/sample-standalone-app.md | 113 ++-------------- docs/nodeSDK/sample-web-app.md | 102 +-------------- examples/sdk/node/Dockerfile | 11 ++ examples/sdk/node/app.js | 163 ++++++++++++++++++++++++ examples/sdk/node/docker-compose.yml | 49 +++++++ examples/sdk/node/standalone-app.js | 85 ------------ examples/sdk/node/web-app.js | 43 +++++-- 12 files changed, 357 insertions(+), 404 deletions(-) create mode 100644 examples/sdk/node/Dockerfile create mode 100644 examples/sdk/node/app.js create mode 100644 examples/sdk/node/docker-compose.yml delete mode 100644 examples/sdk/node/standalone-app.js diff --git a/docs/nodeSDK/app-developer-env-setup.md b/docs/nodeSDK/app-developer-env-setup.md index bfd1f58fddd..004db12b8b3 100755 --- a/docs/nodeSDK/app-developer-env-setup.md +++ b/docs/nodeSDK/app-developer-env-setup.md @@ -1,34 +1,50 @@ # Setting up the Full Hyperledger fabric Developer's Environment - 1. See [Setting Up The Development Environment](../dev-setup/devenv.md) to set up your development environment. + * See [Setting Up The Development Environment](../dev-setup/devenv.md) to set up your development environment. + + * The following commands are all issued from the vagrant environment. The following will open a terminal session: - 2. Issue the following commands to build the Hyperledger fabric client (HFC) Node.js SDK including the API reference documentation +``` + cd /fabric/devenv + vagrant up + vagrant ssh +``` + + * Issue the following commands to build the Hyperledger fabric client (HFC) Node.js SDK including the API reference documentation ``` cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node make all ``` - 3. Issue the following command where your Node.js application is located if you wish to use the `require("hfc")`, this will install the HFC locally. + * Issue the following command where your Node.js application is located if you wish to use the `require("hfc")`, this will install the HFC locally. ``` npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node ``` - Or use point directly to the HFC directly by using the following require in your code: + Or point to the HFC directly by using the following `require()` in your code: ```javascript require("/opt/gopath/src/github.com/hyperledger/fabric/sdk/node"); ``` - 4. To see the API reference documentation which is built in step 2: + * To build the API reference documentation: ``` - cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc -``` + cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node + make doc +``` - The [Self Contained Node.js Environment](node-sdk-self-contained.md) will have the reference documentation already built and may be accessed by: + * To build the reference documentation in the [Self Contained Node.js Environment](node-sdk-self-contained.md): ``` docker exec -it nodesdk /bin/bash - cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc + cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node + make doc ``` + + * The the API reference documentation will be available in: + ``` + /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc + ``` + diff --git a/docs/nodeSDK/app-overview.md b/docs/nodeSDK/app-overview.md index 7cc5d5f6d3f..fc9d8fd7919 100755 --- a/docs/nodeSDK/app-overview.md +++ b/docs/nodeSDK/app-overview.md @@ -30,11 +30,11 @@ This interaction with the Peer consists of submitting transactions to the blockc * invoke - to execute a chaincode function which changes the state of the *blockchain database*; * query - to execute a chaincode function which may return state information related to the *blockchain database*. -The **SDK** also interacts with a **Membership Services** process. In fact, if security is enabled in the Peer (strongly recommended), the Node.js client SDK must interact with Membership Services first in order to retrieve *credentials* which are then used to interact with the Peer. These *credentials* consist of certificates as described in [Membership Services](membership-services.md). +The **SDK** also interacts with a **Membership Services** process. In fact, if security is enabled in the Peer (strongly recommended), the Node.js client SDK must interact with Membership Services first in order to retrieve credential certificates which are then used to interact with the Peer. The interaction with the Membership Services consists of: - * register - to indicate a new user to the blockchain + * register - to invite a new user to the blockchain * enroll - to get access to the blockchain @@ -42,7 +42,7 @@ The interaction with the Membership Services consists of: The following diagram provides an overview of the major components of Hyperledger fabric for the web application developer. -At a high-level, you can think of the Block Chain as a database with which the web application interacts; therefore, it is similar to the following topology. +At a high-level, you can think of the blockchain as a database with which the web application interacts; therefore, it is similar to the following topology. ``` browser --> web tier --> database tier @@ -53,4 +53,4 @@ browser --> web tier --> database tier In the diagram above, the blue boxes are Hyperledger fabric components and the green boxes are application developer components. Each outer box represents a separate process. -The browser interacts with the developer's Node.js web application using the Hyperledger fabric's Node.js client SDK. The SDK handles all interactions with other Hyperledger fabric components in the same manor as described in the [SDK interactions](#sdk-interactions) section of [Standalone Application](#standaloneApp). +The browser interacts with the developer's Node.js web application using the Hyperledger fabric's Node.js client SDK. The SDK handles all interactions with other Hyperledger fabric components as described in the [SDK interactions](#sdk-interactions) section of [Standalone Application](#standaloneApp). diff --git a/docs/nodeSDK/node-sdk-guide.md b/docs/nodeSDK/node-sdk-guide.md index 8f07bcfbd1e..e47079757e6 100755 --- a/docs/nodeSDK/node-sdk-guide.md +++ b/docs/nodeSDK/node-sdk-guide.md @@ -21,12 +21,12 @@ The Hyperledger fabric Client (HFC) SDK for Node.js provides a powerful and easy * [Node.js Standalone Application in Vagrant](sample-standalone-app.md) for a sample standalone Node.js application running in the full development environment within Vagrant. -* [Node.js Web Application](sample-web-app.md) for a sample web application and to see how to use the Node.js client SDK for a sample web app leveraging the client SDK to interact with blockchain network. +* [Node.js Web Application](sample-web-app.md) for a sample web application and to see how to use the Node.js client SDK for a sample web app leveraging the client SDK to interact with a blockchain network. #### Related information - * To build and view the reference documentation for the Node.js client SDK APIs follow the instructions [here](app-developer-env-setup.md). + * To build the reference documentation for the Node.js client SDK APIs follow the instructions [here](app-developer-env-setup.md). * To learn more about chaincode, see [Writing, Building, and Running Chaincode in a Development Environment](../Setup/Chaincode-setup.md). \ No newline at end of file diff --git a/docs/nodeSDK/node-sdk-indepth.md b/docs/nodeSDK/node-sdk-indepth.md index 85eecddc118..58eec77378b 100755 --- a/docs/nodeSDK/node-sdk-indepth.md +++ b/docs/nodeSDK/node-sdk-indepth.md @@ -2,9 +2,19 @@ The Hyperledger fabric Client (HFC) SDK provides a powerful and easy to use API to interact with a Hyperledger fabric blockchain. +Below, you'll find the following sections: + +- [Installing only the SDK](#installing-only-the-sdk) +- [Terminology](#terminology) +- [HFC Objects](#hfc-objects) +- [Pluggability](#pluggability) +- [Chaincode Deployment](#chaincode-deployment) +- [Enabling TLS](#enabling-tls) +- [Troubleshooting](#troubleshooting) + ## Installing only the SDK -If you are an experienced node.js developer and already have a blockchain environment set up and running elsewhere, you can set up a client-only environment to run the node.js client by installing the HFC node module as shown below. This assumes npm version 2.11.3 and node.js version 0.12.7 are already installed. +If you are an experienced node.js developer and already have a blockchain environment set up and running elsewhere, you can set up a client-only environment to run the node.js client by installing the HFC node module as shown below. This assumes a minimum of npm version 2.11.3 and node.js version 0.12.7 are already installed. * To install the latest HFC module of Hyperledger fabric @@ -14,7 +24,7 @@ If you are an experienced node.js developer and already have a blockchain enviro ### Terminology -In order to transact on a hyperledger blockchain, you must first have an identity which has been both **registered** and **enrolled** with Membership Services. For a topological overview of how the components interact, see [Application Developer's Overview](app-developer-overview.md). +In order to transact on a Hyperledger fabric blockchain, you must first have an identity which has been both **registered** and **enrolled** with Membership Services. For a topological overview of how the components interact, see [Application Developer's Overview](app-overview.md). Think of **registration** as *issuing a user invitation* to join a blockchain. It consists of adding a new user name (also called an *enrollment ID*) to the membership service configuration. This can be done programatically with the `Member.register` method, or by adding the enrollment ID directly to the [membersrvc.yaml](https://github.com/hyperledger/fabric/blob/master/membersrvc/membersrvc.yaml) configuration file. @@ -46,7 +56,7 @@ The following is a high-level description of the HFC objects (classes and interf This class implements the bulk of the deploy, invoke, and query logic. It interacts with Membership Services to get a TCert to perform these operations. Note that there is a one-to-one relationship between TCert and TransactionContext. In other words, a single TransactionContext will always use the same TCert. If you want to issue multiple transactions with the same TCert, then you can get a `TransactionContext` object from a `Member` object directly and issue multiple deploy, invoke, or query operations on it. Note however that if you do this, these transactions are linkable, which means someone could tell that they came from the same user, though not know which user. For this reason, you will typically just call deploy, invoke, and query on the Member or User object. -#### Pluggability +## Pluggability HFC was designed to support two pluggable components: @@ -56,9 +66,9 @@ HFC was designed to support two pluggable components: 2. Pluggable `MemberServices` which is used to register and enroll members. Member services enables hyperledger to be a permissioned blockchain, providing security services such as anonymity, unlinkability of transactions, and confidentiality -### Chaincode Deployment +## Chaincode Deployment -#### 'net' mode +### 'net' mode To have the chaincode deployment succeed in network mode, you must properly set up the chaincode project outside of your Hyperledger fabric source tree to include all the **golang** dependencies such that when tarred up and sent to the peer, the peer will be able to build the chain code and then deploy it. The @@ -90,7 +100,7 @@ present. go build ``` -#### 'dev' mode +### 'dev' mode For deploying chaincode in development mode see [Writing, Building, and Running Chaincode in a Development Environment](../Setup/Chaincode-setup.md). The chaincode must be running and connected to the peer before issuing the `deploy()` from the Node.js application. The hfc `chain` object must be set to dev mode. @@ -143,7 +153,7 @@ To configure the peer to connect to the Membership Services server over TLS (oth *Note:* If you cleanup the folder `/var/hyperledger/production` then don't forget to copy again the *tlsca.cert* file as described above. -### Troublingshooting +### Troubleshooting If you see errors stating that the client has already been registered/enrolled, keep in mind that you can perform the enrollment process only once, as the enrollmentSecret is a one-time-use password. You will see these errors if you have performed a user registration/enrollment and subsequently deleted the cryptographic tokens stored on the client side. The next time you try to enroll, errors similar to the ones below will be seen. ``` diff --git a/docs/nodeSDK/node-sdk-self-contained.md b/docs/nodeSDK/node-sdk-self-contained.md index 10b5703759f..08c6e4fac48 100755 --- a/docs/nodeSDK/node-sdk-self-contained.md +++ b/docs/nodeSDK/node-sdk-self-contained.md @@ -4,116 +4,69 @@ This section describes how to set up a self contained environment for Node.js ap **note:** This sample was prepared using Docker for Mac 1.12.0 -1. Prerequisite software to install: +* Prerequisite software to install: * Docker * docker-compose (may be packaged with Docker) -2. Create a docker-compose file called *docker-compose.yml* - - You may retrieve the docker-compose.yml file: - -``` - curl -o docker-compose.yml https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/example02/docker-compose.yml -``` - - docker-compose.yml: -```yaml -membersrvc: - # try 'docker ps' to see the container status after starting this compose - container_name: membersrvc - image: hyperledger/fabric-membersrvc - command: membersrvc - -peer: - container_name: peer - image: hyperledger/fabric-peer - environment: - - CORE_PEER_ADDRESSAUTODETECT=true - - CORE_VM_ENDPOINT=unix:///var/run/docker.sock - - CORE_LOGGING_LEVEL=DEBUG - - CORE_PEER_ID=vp0 - - CORE_SECURITY_ENABLED=true - - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 - - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 - - CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=noops - # this gives access to the docker host daemon to deploy chaincode in network mode - volumes: - - /var/run/docker.sock:/var/run/docker.sock - # have the peer wait 10 sec for membersrvc to start - # the following is to run the peer in Developer mode - also set sample DEPLOY_MODE=dev - command: sh -c "sleep 10; peer node start --peer-chaincodedev" - #command: sh -c "sleep 10; peer node start" - links: - - membersrvc - -nodesdk: - container_name: nodesdk - image: hyperledger/fabric-node-sdk - volumes: - - ~/mytest:/user/mytest - environment: - - MEMBERSRVC_ADDRESS=membersrvc:7054 - - PEER_ADDRESS=peer:7051 - - KEY_VALUE_STORE=/tmp/hl_sdk_node_key_value_store - - NODE_PATH=/usr/local/lib/node_modules - # set DEPLOY_MODE to 'dev' if peer running in Developer mode - - DEPLOY_MODE=dev - - CORE_CHAINCODE_ID_NAME=mycc - - CORE_PEER_ADDRESS=peer:7051 - # the following command will start the chaincode when this container starts and ready it for deployment by the app - command: sh -c "sleep 20; /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02/chaincode_example02" - stdin_open: true - tty: true - links: - - membersrvc - - peer +* Copy our [docker-compose.yml](https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/docker-compose.yml) file to a local directory: ``` - -3. Start the fabric environment using docker-compose. From a terminal session where the working directory is where the *docker-compose.yml* from step 2 is located, execute one of following **docker-compose** commands. - - * to run as detached containers, then to see the logs for the **peer** container use the `docker logs peer` command -``` - docker-compose up -d + curl -o docker-compose.yml https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/docker-compose.yml ``` - * to run in the foreground and see the log output in the current terminal session +* **Optionally** build your own docker images. + The docker compose environment uses three docker images. If you wish to customize and build your own docker images. The following [Dockerfile](https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/Dockerfile) + was used to build the **nodesdk** image and may be used as a starting point to your own customizations. ``` - docker-compose up + curl -o Dockerfile https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/Dockerfile + docker build -t hyperledger/fabric-node-sdk:latest . ``` - This will start three docker containers, to view the container status try `docker ps` command. The first time this is run the **docker** images will be downloaded. This may take 10 minutes or more depending on the network connections of the system running the command. - * Membership services --**membersrvc** - * Peer -- **peer** - * Node.js SDK Application and chaincode -- **nodesdk** +* Start the fabric network environment using docker-compose. From a terminal session that has the working directory of where the above *docker-compose.yml* is located, execute one of following **docker-compose** commands. -4. Start a terminal session in the **nodesdk** container. This is where the Node.js application is located. + * to run as detached containers: + ``` + docker-compose up -d + ``` + **note:** to see the logs for the **peer** container use the `docker logs peer` command + + * to run in the foreground and see the log output in the current terminal session: + ``` + docker-compose up + ``` + + Both commands will start three docker containers, to view the container status try `docker ps` command. The first time this is run the **docker** images will be downloaded. This may take 10 minutes or more depending on the network connections of the system running the command. + ``` + docker ps + ``` + + You should see something like the following: + ``` + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + bb01a2fa96ef hyperledger/fabric-node-sdk "sh -c 'sleep 20; /op" About a minute ago Up 59 seconds nodesdk + ec7572e65f12 hyperledger/fabric-peer "sh -c 'sleep 10; pee" About a minute ago Up About a minute peer + 118ef6da1709 hyperledger/fabric-membersrvc "membersrvc" About a minute ago Up About a minute membersrvc + ``` - **Note:** Be sure to wait 20 seconds after starting the network before executing. +* Start a terminal session in the **nodesdk** container. This is where the Node.js application is located. + + **note:** Be sure to wait 20 seconds after starting the network using the `docker-compose up` command before executing the following command to allow the network to initialize. ``` docker exec -it nodesdk /bin/bash ``` -5. From the terminal session in the **nodesdk** container execute the standalone Node.js application. The docker terminal session should be in the working directory of the sample application called **app.js** (*/opt/gopath/src/github.com/hyperledger/fabric/examples/sdk/node/example02*). Execute the following Node.js command to run the application. +* From the terminal session in the **nodesdk** container execute the standalone Node.js application. The docker terminal session should be in the working directory of the sample application called **app.js** (*/opt/gopath/src/github.com/hyperledger/fabric/examples/sdk/node*). Execute the following Node.js command to run the application. ``` node app ``` - On another terminal session on the host you can view the logs for the peer by executing the following command (not in the docker shell above, in a new terminal session of the real system) + In another terminal session on the host you can view the logs for the peer by executing the following command (not in the docker shell above, in a new terminal session of the real system) ``` docker logs peer ``` -6. This environment will have the reference documentation already built and may be access by: - -``` - docker exec -it nodesdk /bin/bash - cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc -``` - -7. If you wish to run your own Node.js application +* If you wish to run your own Node.js application using the pre build docker images: * use the directories in the `volumes` tag under **nodesdk** in the `docker-compose.yml` file as a place to store your programs from the host system into the docker container. The first path is the top level system (host system) and the second is created in the docker container. If you wish to use a host location that is not under the `/Users` directory (`~` is under `/Users') then you must add that to the **docker** file sharing under **docker** preferences. ```yaml @@ -134,7 +87,7 @@ nodesdk: cd /user/mytest node app ``` -8. To shutdown the environment, execute the following **docker-compose** command in the directory where the *docker-compose.yml* is located. Any changes you made to the sample application or deployment of a chaincode will be lost. Only changes made to the shared area defined in the 'volumes' tag of the **nodesdk** container will persist. This will shutdown each of the containers and remove the containers from **docker**: +* To shutdown the environment, execute the following **docker-compose** command in the directory where the *docker-compose.yml* is located. Any changes you made to the sample application or deployment of a chaincode will be lost. Only changes made to the shared area defined in the 'volumes' tag of the **nodesdk** container will persist. This will shutdown each of the containers and remove the containers from **docker**: ``` docker-compose down diff --git a/docs/nodeSDK/sample-standalone-app.md b/docs/nodeSDK/sample-standalone-app.md index 4aa8f6681ec..56e51da92e8 100755 --- a/docs/nodeSDK/sample-standalone-app.md +++ b/docs/nodeSDK/sample-standalone-app.md @@ -2,16 +2,16 @@ This section describes how to run a sample standalone Node.js application which interacts with a Hyperledger fabric blockchain. -1. If you haven't already done so, see [Setting Up The Application Development Environment](app-developer-env-setup.md) to get your environment set up. The remaining steps assume that you are running **inside the vagrant environment**. +* If you haven't already done so, see [Setting Up The Application Development Environment](app-developer-env-setup.md) to get your environment set up. The remaining steps assume that you are running **inside the vagrant environment**. -2. Issue the following commands to build the Node.js Client SDK: +* Issue the following commands to build the Node.js Client SDK: ``` cd /opt/gopath/src/github.com/hyperledger/fabric make node-sdk ``` -3. Start the membership services and peer processes. We run the peer in dev mode for simplicity. +* Start the membership services and peer processes. We run the peer in dev mode for simplicity. ``` cd /opt/gopath/src/github.com/hyperledger/fabric/build/bin @@ -19,116 +19,31 @@ This section describes how to run a sample standalone Node.js application which peer node start --peer-chaincodedev > peer.log 2>&1& ``` -4. Build and run chaincode example 2: +* Build and run chaincode example 2: ``` cd /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 go build - CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:30303 ./chaincode_example02 > log 2>&1& + CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02 > log 2>&1& ``` -5. Put the following sample app in a file named **app.js** in the */tmp* directory. Take a moment (now or later) to read the comments and code to begin to learn the Node.js Client SDK APIs. +* Put the following sample app in a file named **app.js** in the */tmp* directory. Take a moment (now or later) to read the comments and code to begin to learn the Node.js Client SDK APIs. - You may retrieve the sample application file: + You may retrieve the [sample application](https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/app.js) file: ``` - curl -o webapp.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/standalone-app.js + cd /tmp + curl -o app.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/app.js ``` - The sample app: - -```javascript - /* - * A simple application utilizing the Node.js Client SDK to: - * 1) Enroll a user - * 2) User deploys chaincode - * 3) User queries chaincode - */ - // "HFC" stands for "Hyperledger fabric Client" - var hfc = require("hfc"); - - var chain, user, chaincodeID; - - // Create a chain object used to interact with the chain. - // You can name it anything you want as it is only used by client. - chain = hfc.newChain("mychain"); - // Initialize the place to store sensitive private key information - chain.setKeyValStore( hfc.newFileKeyValStore('/tmp/keyValStore') ); - // Set the URL to membership services and to the peer - chain.setMemberServicesUrl("grpc://localhost:7054"); - chain.addPeer("grpc://localhost:7051"); - // The following is required when the peer is started in dev mode - // (i.e. with the '--peer-chaincodedev' option) - chain.setDevMode(true); - - // Begin by enrolling the user - enroll(); - - // Enroll a user. - function enroll() { - console.log("enrolling user admin ..."); - // Enroll "admin" which is preregistered in the membersrvc.yaml - chain.enroll("admin", "Xurw3yU9zI0l", function(err, admin) { - if (err) { - console.log("ERROR: failed to register admin: %s",err); - process.exit(1); - } - user = admin; - deploy(); - }); - } - - // Deploy chaincode - function deploy() { - console.log("deploying chaincode; please wait ..."); - // Construct the deploy request - var req = { - chaincodeName: 'mycc', - fcn: "init", - args: ["a", "100", "b", "200"] - }; - // Issue the deploy request and listen for events - var tx = user.deploy(req); - tx.on('complete', function(results) { - // Deploy request completed successfully - console.log("deploy complete; results: %j",results); - // Set the testChaincodeID for subsequent tests - chaincodeID = results.chaincodeID; - query(); - }); - tx.on('error', function(err) { - console.log("Failed to deploy chaincode: request=%j, error=%k",req,err); - process.exit(1); - }); - - } - - // Query chaincode - function query() { - console.log("querying chaincode ..."); - // Construct a query request - var req = { - chaincodeID: chaincodeID, - fcn: "query", - args: ["a"] - }; - // Issue the query request and listen for events - var tx = user.query(req); - tx.on('complete', function (results) { - console.log("query completed successfully; results=%j",results); - process.exit(0); - }); - tx.on('error', function (err) { - console.log("Failed to query chaincode: request=%j, error=%k",req,err); - process.exit(1); - }); - } +* Run **npm** to install Hyperledger Fabric Node.js SDK in the `/tmp` directory +``` + npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node ``` -6. Run the application as follows: +* Run the application as follows: ``` - cd /tmp node app ``` -7. Congratulations! You've successfully run your first Hyperledger fabric application. +Congratulations! You've successfully run your first Hyperledger fabric application. diff --git a/docs/nodeSDK/sample-web-app.md b/docs/nodeSDK/sample-web-app.md index 7da199dcb86..911942ce083 100755 --- a/docs/nodeSDK/sample-web-app.md +++ b/docs/nodeSDK/sample-web-app.md @@ -4,110 +4,10 @@ The following is a web application template. It is NOT a complete program. This template code demonstrates how to communicate with a blockchain from a Node.js web application. It does not show how to listen for incoming requests nor how to authenticate your web users as this is application specific. The code below is intended to demonstrate how to interact with a Hyperledger fabric blockchain from an existing web application. -You may retrieve the sample application file: +You may retrieve the [sample application]( https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/web-app.js) file: ``` curl -o app.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/web-app.js ``` -See the embedded comments below. -```javascript -/** - * This example shows how to do the following in a web app. - * 1) At initialization time, enroll the web app with the blockchain. - * The identity must have already been registered. - * 2) At run time, after a user has authenticated with the web app: - * a) register and enroll an identity for the user; - * b) use this identity to deploy, query, and invoke a chaincode. - */ -var hfc = require('hfc'); - -// Create a client chain. -// The name can be anything as it is only used internally. -var chain = hfc.newChain("targetChain"); - -// Configure the KeyValStore which is used to store sensitive keys -// as so it is important to secure this storage. -// The FileKeyValStore is a simple file-based KeyValStore, but you -// can easily implement your own to store whereever you want. -// To work correctly in a cluster, the file-based KeyValStore must -// either be on a shared file system shared by all members of the cluster -// or you must implement you own KeyValStore which all members of the -// cluster can share. -chain.setKeyValStore( hfc.newFileKeyValStore('/tmp/keyValStore') ); - -// Set the URL for membership services -chain.setMemberServicesUrl("grpc://localhost:7054"); - -// Add at least one peer's URL. If you add multiple peers, it will failover -// to the 2nd if the 1st fails, to the 3rd if both the 1st and 2nd fails, etc. -chain.addPeer("grpc://localhost:7051"); - -// Enroll "WebAppAdmin" which is already registered because it is -// listed in fabric/membersrvc/membersrvc.yaml with its one time password. -// If "WebAppAdmin" has already been registered, this will still succeed -// because it stores the state in the KeyValStore -// (i.e. in '/tmp/keyValStore' in this sample). -chain.enroll("WebAppAdmin", "DJY27pEnl16d", function(err, webAppAdmin) { - if (err) return console.log("ERROR: failed to register %s: %s",err); - // Successfully enrolled WebAppAdmin during initialization. - // Set this user as the chain's registrar which is authorized to register other users. - chain.setRegistrar(webAppAdmin); - // Now begin listening for web app requests - listenForUserRequests(); -}); - -// Main web app function to listen for and handle requests. This is specific to -// your application but is provided here to demonstrate the pattern. -function listenForUserRequests() { - for (;;) { - // WebApp-specific logic goes here to await the next request. - // ... - // Assume that we received a request from an authenticated user - // 'userName', and determined that we need to invoke the chaincode - // with 'chaincodeID' and function named 'fcn' with arguments 'args'. - handleUserRequest(userName,chaincodeID,fcn,args); - } -} - -// Handle a user request -function handleUserRequest(userName, chaincodeID, fcn, args) { - // Register and enroll this user. - // If this user has already been registered and/or enrolled, this will - // still succeed because the state is kept in the KeyValStore - // (i.e. in '/tmp/keyValStore' in this sample). - var registrationRequest = { - enrollmentID: userName, - // Customize account & affiliation - account: "bank_a", - affiliation: "00001" - }; - chain.registerAndEnroll( registrationRequest, function(err, user) { - if (err) return console.log("ERROR: %s",err); - // Issue an invoke request - var invokeRequest = { - // Name (hash) required for invoke - chaincodeID: chaincodeID, - // Function to trigger - fcn: fcn, - // Parameters for the invoke function - args: args - }; - // Invoke the request from the user object and wait for events to occur. - var tx = user.invoke(invokeRequest); - // Listen for the 'submitted' event - tx.on('submitted', function(results) { - console.log("submitted invoke: %j",results); - }); - // Listen for the 'complete' event. - tx.on('complete', function(results) { - console.log("completed invoke: %j",results); - }); - // Listen for the 'error' event. - tx.on('error', function(err) { - console.log("error on invoke: %j",err); - }); - }); -} -``` diff --git a/examples/sdk/node/Dockerfile b/examples/sdk/node/Dockerfile new file mode 100644 index 00000000000..0d2218dfe00 --- /dev/null +++ b/examples/sdk/node/Dockerfile @@ -0,0 +1,11 @@ +FROM hyperledger/fabric-peer:latest +# setup the chaincode sample +WORKDIR $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 +RUN go build +# build the node SDK +WORKDIR $GOPATH/src/github.com/hyperledger/fabric/sdk/node +RUN make all +# now switch to the sample node app location when the shell is opened in the docker +WORKDIR $GOPATH/src/github.com/hyperledger/fabric/examples/sdk/node +# install the hfc locally for use by the application +RUN npm install $GOPATH/src/github.com/hyperledger/fabric/sdk/node diff --git a/examples/sdk/node/app.js b/examples/sdk/node/app.js new file mode 100644 index 00000000000..dfc5f401025 --- /dev/null +++ b/examples/sdk/node/app.js @@ -0,0 +1,163 @@ +/* + Copyright IBM Corp 2016 All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * A simple application utilizing the Node.js Client SDK to: + * 1) Enroll a user + * 2) User deploys chaincode + * 3) User queries chaincode + */ +// "HFC" stands for "Hyperledger Fabric Client" +var hfc = require("hfc"); + +console.log(" **** starting HFC sample ****"); + + +// get the addresses from the docker-compose environment +var PEER_ADDRESS = process.env.CORE_PEER_ADDRESS; +var MEMBERSRVC_ADDRESS = process.env.MEMBERSRVC_ADDRESS; + +var chain, chaincodeID; + +// Create a chain object used to interact with the chain. +// You can name it anything you want as it is only used by client. +chain = hfc.newChain("mychain"); +// Initialize the place to store sensitive private key information +chain.setKeyValStore( hfc.newFileKeyValStore('/tmp/keyValStore') ); +// Set the URL to membership services and to the peer +console.log("member services address ="+MEMBERSRVC_ADDRESS); +console.log("peer address ="+PEER_ADDRESS); +chain.setMemberServicesUrl("grpc://"+MEMBERSRVC_ADDRESS); +chain.addPeer("grpc://"+PEER_ADDRESS); + +// The following is required when the peer is started in dev mode +// (i.e. with the '--peer-chaincodedev' option) +var mode = process.env['DEPLOY_MODE']; +console.log("DEPLOY_MODE=" + mode); +if (mode === 'dev') { + chain.setDevMode(true); + //Deploy will not take long as the chain should already be running + chain.setDeployWaitTime(10); +} else { + chain.setDevMode(false); + //Deploy will take much longer in network mode + chain.setDeployWaitTime(120); +} + + +chain.setInvokeWaitTime(10); + +// Begin by enrolling the user +enroll(); + +// Enroll a user. +function enroll() { + console.log("enrolling user admin ..."); + // Enroll "admin" which is preregistered in the membersrvc.yaml + chain.enroll("admin", "Xurw3yU9zI0l", function(err, admin) { + if (err) { + console.log("ERROR: failed to register admin: %s",err); + process.exit(1); + } + // Set this user as the chain's registrar which is authorized to register other users. + chain.setRegistrar(admin); + + var userName = "JohnDoe"; + // registrationRequest + var registrationRequest = { + enrollmentID: userName, + affiliation: "bank_a" + }; + chain.registerAndEnroll(registrationRequest, function(error, user) { + if (error) throw Error(" Failed to register and enroll " + userName + ": " + error); + console.log("Enrolled %s successfully\n", userName); + deploy(user); + }); + }); +} + +// Deploy chaincode +function deploy(user) { + console.log("deploying chaincode; please wait ..."); + // Construct the deploy request + var deployRequest = { + chaincodeName: process.env.CORE_CHAINCODE_ID_NAME, + fcn: "init", + args: ["a", "100", "b", "200"] + }; + // where is the chain code, ignored in dev mode + deployRequest.chaincodePath = "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"; + + // Issue the deploy request and listen for events + var tx = user.deploy(deployRequest); + tx.on('complete', function(results) { + // Deploy request completed successfully + console.log("deploy complete; results: %j",results); + // Set the testChaincodeID for subsequent tests + chaincodeID = results.chaincodeID; + invoke(user); + }); + tx.on('error', function(error) { + console.log("Failed to deploy chaincode: request=%j, error=%k",deployRequest,error); + process.exit(1); + }); + +} + +// Query chaincode +function query(user) { + console.log("querying chaincode ..."); + // Construct a query request + var queryRequest = { + chaincodeID: chaincodeID, + fcn: "query", + args: ["a"] + }; + // Issue the query request and listen for events + var tx = user.query(queryRequest); + tx.on('complete', function (results) { + console.log("query completed successfully; results=%j",results); + process.exit(0); + }); + tx.on('error', function (error) { + console.log("Failed to query chaincode: request=%j, error=%k",queryRequest,error); + process.exit(1); + }); +} + +//Invoke chaincode +function invoke(user) { + console.log("invoke chaincode ..."); + // Construct a query request + var invokeRequest = { + chaincodeID: chaincodeID, + fcn: "invoke", + args: ["a", "b", "1"] + }; + // Issue the invoke request and listen for events + var tx = user.invoke(invokeRequest); + tx.on('submitted', function (results) { + console.log("invoke submitted successfully; results=%j",results); + }); + tx.on('complete', function (results) { + console.log("invoke completed successfully; results=%j",results); + query(user); + }); + tx.on('error', function (error) { + console.log("Failed to invoke chaincode: request=%j, error=%k",invokeRequest,error); + process.exit(1); + }); +} diff --git a/examples/sdk/node/docker-compose.yml b/examples/sdk/node/docker-compose.yml new file mode 100644 index 00000000000..2000c854798 --- /dev/null +++ b/examples/sdk/node/docker-compose.yml @@ -0,0 +1,49 @@ +membersrvc: + # try 'docker ps' to see the container status after starting this compose + container_name: membersrvc + image: hyperledger/fabric-membersrvc + command: membersrvc + +peer: + container_name: peer + image: hyperledger/fabric-peer + environment: + - CORE_PEER_ADDRESSAUTODETECT=true + - CORE_VM_ENDPOINT=unix:///var/run/docker.sock + - CORE_LOGGING_LEVEL=DEBUG + - CORE_PEER_ID=vp0 + - CORE_SECURITY_ENABLED=true + - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054 + - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054 + - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054 + - CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=noops + # this gives access to the docker host daemon to deploy chain code in network mode + volumes: + - /var/run/docker.sock:/var/run/docker.sock + # have the peer wait 10 sec for membersrvc to start + # the following is to run the peer in Developer mode - also set sample DEPLOY_MODE=dev + command: sh -c "sleep 10; peer node start --peer-chaincodedev" + #command: sh -c "sleep 10; peer node start" + links: + - membersrvc + +nodesdk: + container_name: nodesdk + image: hyperledger/fabric-node-sdk + volumes: + - ~/mytest:/user/mytest + environment: + - MEMBERSRVC_ADDRESS=membersrvc:7054 + - PEER_ADDRESS=peer:7051 + - KEY_VALUE_STORE=/tmp/hl_sdk_node_key_value_store + # set to following to 'dev' if peer running in Developer mode + - DEPLOY_MODE=dev + - CORE_CHAINCODE_ID_NAME=mycc + - CORE_PEER_ADDRESS=peer:7051 + # the following command will start the chain code when this container starts and ready it for deployment by the app + command: sh -c "sleep 20; /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02/chaincode_example02" + stdin_open: true + tty: true + links: + - membersrvc + - peer diff --git a/examples/sdk/node/standalone-app.js b/examples/sdk/node/standalone-app.js deleted file mode 100644 index d7acaa32bcb..00000000000 --- a/examples/sdk/node/standalone-app.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * A simple application utilizing the Node.js Client SDK to: - * 1) Enroll a user - * 2) User deploys chaincode - * 3) User queries chaincode - */ - // "HFC" stands for "Hyperledger fabric Client" - var hfc = require("hfc"); - - var chain, user, chaincodeID; - - // Create a chain object used to interact with the chain. - // You can name it anything you want as it is only used by client. - chain = hfc.newChain("mychain"); - // Initialize the place to store sensitive private key information - chain.setKeyValStore( hfc.newFileKeyValStore('/tmp/keyValStore') ); - // Set the URL to membership services and to the peer - chain.setMemberServicesUrl("grpc://localhost:7054"); - chain.addPeer("grpc://localhost:7051"); - // The following is required when the peer is started in dev mode - // (i.e. with the '--peer-chaincodedev' option) - chain.setDevMode(true); - - // Begin by enrolling the user - enroll(); - - // Enroll a user. - function enroll() { - console.log("enrolling user admin ..."); - // Enroll "admin" which is preregistered in the membersrvc.yaml - chain.enroll("admin", "Xurw3yU9zI0l", function(err, admin) { - if (err) { - console.log("ERROR: failed to register admin: %s",err); - process.exit(1); - } - user = admin; - deploy(); - }); - } - - // Deploy chaincode - function deploy() { - console.log("deploying chaincode; please wait ..."); - // Construct the deploy request - var req = { - chaincodeName: 'mycc', - fcn: "init", - args: ["a", "100", "b", "200"] - }; - // Issue the deploy request and listen for events - var tx = user.deploy(req); - tx.on('complete', function(results) { - // Deploy request completed successfully - console.log("deploy complete; results: %j",results); - // Set the testChaincodeID for subsequent tests - chaincodeID = results.chaincodeID; - query(); - }); - tx.on('error', function(err) { - console.log("Failed to deploy chaincode: request=%j, error=%k",req,err); - process.exit(1); - }); - - } - - // Query chaincode - function query() { - console.log("querying chaincode ..."); - // Construct a query request - var req = { - chaincodeID: chaincodeID, - fcn: "query", - args: ["a"] - }; - // Issue the query request and listen for events - var tx = user.query(req); - tx.on('complete', function (results) { - console.log("query completed successfully; results=%j",results); - process.exit(0); - }); - tx.on('error', function (err) { - console.log("Failed to query chaincode: request=%j, error=%k",req,err); - process.exit(1); - }); - } \ No newline at end of file diff --git a/examples/sdk/node/web-app.js b/examples/sdk/node/web-app.js index fba0537f018..6dff8f41719 100644 --- a/examples/sdk/node/web-app.js +++ b/examples/sdk/node/web-app.js @@ -1,3 +1,19 @@ +/* + Copyright IBM Corp 2016 All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + /** * This example shows how to do the following in a web app. * 1) At initialization time, enroll the web app with the blockchain. @@ -8,6 +24,10 @@ */ var hfc = require('hfc'); +//get the addresses from the docker-compose environment +var PEER_ADDRESS = process.env.PEER_ADDRESS; +var MEMBERSRVC_ADDRESS = process.env.MEMBERSRVC_ADDRESS; + // Create a client chain. // The name can be anything as it is only used internally. var chain = hfc.newChain("targetChain"); @@ -23,11 +43,11 @@ var chain = hfc.newChain("targetChain"); chain.setKeyValStore( hfc.newFileKeyValStore('/tmp/keyValStore') ); // Set the URL for membership services -chain.setMemberServicesUrl("grpc://localhost:7054"); +chain.setMemberServicesUrl("grpc://MEMBERSRVC_ADDRESS"); // Add at least one peer's URL. If you add multiple peers, it will failover // to the 2nd if the 1st fails, to the 3rd if both the 1st and 2nd fails, etc. -chain.addPeer("grpc://localhost:7051"); +chain.addPeer("grpc://PEER_ADDRESS"); // Enroll "WebAppAdmin" which is already registered because it is // listed in fabric/membersrvc/membersrvc.yaml with its one time password. @@ -49,25 +69,26 @@ function listenForUserRequests() { for (;;) { // WebApp-specific logic goes here to await the next request. // ... - // Assume that we received a request from an authenticated user - // 'userName', and determined that we need to invoke the chaincode + // Assume that we received a request from an authenticated user + // and have 'userName' and 'userAccount'. + // Then determined that we need to invoke the chaincode // with 'chaincodeID' and function named 'fcn' with arguments 'args'. - handleUserRequest(userName,chaincodeID,fcn,args); + handleUserRequest(userName,userAccount,chaincodeID,fcn,args); } } // Handle a user request -function handleUserRequest(userName, chaincodeID, fcn, args) { +function handleUserRequest(userName, userAccount, chaincodeID, fcn, args) { // Register and enroll this user. // If this user has already been registered and/or enrolled, this will // still succeed because the state is kept in the KeyValStore // (i.e. in '/tmp/keyValStore' in this sample). var registrationRequest = { - enrollmentID: userName, - // Customize account & affiliation - account: "bank_a", - affiliation: "00001" - }; + roles: [ 'client' ], + enrollmentID: userName, + affiliation: "bank_a", + attributes: [{name:'role',value:'client'},{name:'account',value:userAccount}] + }; chain.registerAndEnroll( registrationRequest, function(err, user) { if (err) return console.log("ERROR: %s",err); // Issue an invoke request From d0dc4b0fcd97b825cacc820b597433f1bf31b7ed Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Wed, 21 Sep 2016 11:45:39 -0400 Subject: [PATCH 15/27] Fix FAB-417 - missing info on setting up SSH key Add instructions to clarify use of LFID for all tools and ensure that info on setting up your SSH public key in Gerrit is prominent in CONTRIBUTING.md Change-Id: Id1ee955723c11354dc939e62c4d1190ae76f3aa9 Signed-off-by: Christopher Ferris --- docs/CONTRIBUTING.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 92102988acd..2bfad6ca9b1 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -10,8 +10,18 @@ before participating. It is important that we keep things civil. ## Getting a Linux Foundation account In order to participate in the development of the Hyperledger Fabric project, -you will need an [LF account](Gerrit/lf-account.md). This will give you single -sign-on to all the community tools, including Gerrit and Jira (coming soon!). +you will need an [LF account](Gerrit/lf-account.md). You will need to use +your LF ID to grant you access to all the Hyperledger community tools, including +[Gerrit](https://gerrit.hyperledger.org) and [Jira](https://jira.hyperledger.org). + +### Setting up your SSH key + +For Gerrit, you will want to register your public SSH key. Login to +[Gerrit](https://gerrit.hyperledger.org) +with your LF account, and click on your name in the upper right-hand corner +and then click 'Settings'. In the left-hand margin, you should see a link for +'SSH Public Keys'. Copy-n-paste your [public SSH key](https://help.github.com/articles/generating-an-ssh-key/) +into the window and press 'Add'. ## Getting help From 7949e4f76ff49830b233d9bdd1aaef6dc84ead47 Mon Sep 17 00:00:00 2001 From: Nick Gaski Date: Wed, 21 Sep 2016 18:48:12 -0400 Subject: [PATCH 16/27] Animation abstract & landing page for V1 video This is the "catcher's mitt" for V1 design. Contains a very simplistic overview of the new design, and links to current and backlogged JIRA items. And if merged, will also serve as the URL for animation video. [ci skip] Change-Id: I2281f35db922ef01438bdd8d549d699f949b7575 Signed-off-by: Nick Gaski --- docs/abstract_v1.md | 28 ++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 29 insertions(+) create mode 100644 docs/abstract_v1.md diff --git a/docs/abstract_v1.md b/docs/abstract_v1.md new file mode 100644 index 00000000000..859b1c7fc60 --- /dev/null +++ b/docs/abstract_v1.md @@ -0,0 +1,28 @@ +# HYPERLEDGER FABRIC v1.0 + +They Hyperledger Fabric is a platform that enables the delivery of a secure, robust, permissioned blockchain for the enterprise that incorporates a byzantine fault tolerant consensus. We have learned much as we progressed throuh the v0.6-preview release. In particular, that in order to provide for the scalability and confidentiality needs of many use cases, a refactoring of the architecture was needed. The v0.6-preview release will be the final (barring any bug fixes) release based upon the original architecture. + +The Hyperledger Fabric v1.0 architecture has been designed to address two vital enterprise-grade requirements – **security** and **scalability**. Businesses can leverage this new architecture to execute confidential transactions on networks with shared or common assets – e.g. supply chain, FOREX market, healthcare, etc. The progression to V1 will be incremental, with myriad windows for community members to contribute code and start curating the fabric to fit specific business needs. + +## WHERE WE ARE: + +The current implementation involves every validating peer shouldering the responsibility for the full gauntlet of network functionality. They execute transactions, perform consensus, and maintain the shared ledger. Not only does this configuration lay a huge computational burden on each peer, hindering scalability, but it also constricts important facets of privacy and confidentiality. Namely, there is no mechanism to “channel” or “silo” confidential transactions. Every peer can see the logic for every transaction. + +## WHERE WE'RE GOING + +The new architecture introduces a clear functional separation of peer roles, and allows a transaction to pass through the network in a structured and modularized fashion. The peers are diverged into two distinct roles – Endorser & Committer. As an endorser, the peer will simulate the transaction and ensure that the outcome is deterministic or stable. As a committer, the peer will validate the integrity of a transaction and then append to the ledger. Now confidential transactions can be sent to specific endorsers and their correlating committers, without the network being made cognizant of the transaction. Additionally, policies can be set to determine what levels of “endorsement” and “validation” are acceptable for a specific class of transactions. A failure to meet these thresholds would simply result in a transaction being thrown out, rather than imploding or stagnating the entire network. This new model also introduces the possibility for more elaborate networks, such as a foreign exchange market. Entities may need to only participate as endorsers for their transactions, while leaving consensus and commitment (i.e. settlement) to a trusted third party such as a clearing house. + +The consensus process (i.e. algorithmic computation) is entirely abstracted from the peer. This modularity not only provides a powerful security layer – the consenting nodes are agnostic to the transaction logic – but it also generates a framework where consensus can become pluggable and scalability can truly occur. There is no longer a parallel relationship between the number of peers in a network and the number of consenters. Now networks can grow dynamically (i.e. add endorsers and committers) without having to add corresponding consenters, and exist in a modular infrastructure designed to support high transaction throughput. Moreover, networks now have the capability to completely liberate themselves from the computational and legal burden of consensus by tapping into a pre-existing consensus cloud. + +As V1 manifests, we will see the foundation for interoperable blockchain networks that have the ability to scale and transact in a manner adherent with regulatory and industry standards. The following is a high-level overview of the upcoming additions to the fabric codebase that will spawn the capabilities in V1: + +## HOW TO CONTRIBUTE + +1. Familiarize yourself with the [guidelines for code contributions](CONTRIBUTING.md) to this project. **Note**: In order to participate in the development of the Hyperledger Fabric project, you will need an [LF account](Gerrit/lf-account.md). This will give you single +sign-on to JIRA and Gerritt. +1. Explore the design document for the new [architecture](https://github.com/hyperledger-archives/fabric/wiki/Next-Consensus-Architecture-Proposal) +1. Explore [JIRA](https://jira.hyperledger.org/projects/FAB/issues/) for open Hyperledger Fabric issues. +1. Explore the [JIRA](https://jira.hyperledger.org/projects/FAB/issues/) backlog for upcoming Hyperledger Fabric issues. +1. Explore [JIRA](https://jira.hyperledger.org/issues/?filter=10147) for Hyperledger Fabric issues tagged with "help wanted." +1. Explore the [source code](https://github.com/hyperledger/fabric) +1. Explore the [documentation](http://hyperledger-fabric.readthedocs.io/en/latest/) diff --git a/mkdocs.yml b/mkdocs.yml index 472b9a24e09..0af47abc745 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -27,6 +27,7 @@ pages: - System Chaincode: SystemChaincodes/noop.md - Fabric Developer: + - v1.0 Preview: abstract_v1.md - Contributing: CONTRIBUTING.md - Getting an Account: Gerrit/lf-account.md - Gerrit: Gerrit/gerrit.md From 02431ee7cd26449641620fb0137b7c7eb062a1dc Mon Sep 17 00:00:00 2001 From: bcbrock Date: Thu, 22 Sep 2016 10:39:31 -0500 Subject: [PATCH 17/27] Busywork updates 9/22/2016 Several changes are required due to the removal of the /devops route from the REST API. The major change here is the conversion of the Tcl ::fabric package to use the /chaincode route instead of /devops. Several other enhancements and bug fixes are also inclued: 1) Fixes FAB-139 (Timer overflow) 2) Fixes FAB-414 (Additional timestamp for all TX committed) Tcl support for reading /proc//stat was added. This allows more statistics to be printed after the Busywork run (e.g., user + system time and CPU utilization). /proc//stat fields can also be accessed for the peers now by way of the 'busy' command, which was also enhanced with 'ps' and 'pid' subcommands. The 'pprofClient' was updated to support Go 1.7 naming conventions for pprof files. The -privacy flag was added to 'userModeNetwork'. Removed trailing whitespace from all modified files. Change-Id: Ie8d2cc95fb6e7384ce3fbb4d19949d14ec19ddc7 Signed-off-by: Bishop Brock --- tools/busywork/bin/busy | 109 ++++++++++++----- tools/busywork/bin/pprofClient | 89 ++++++++------ tools/busywork/bin/userModeNetwork | 8 ++ tools/busywork/counters/driver | 68 ++++++++++- tools/busywork/tcl/fabric.tcl | 188 +++++++++++++++-------------- tools/busywork/tcl/os.tcl | 102 +++++++++++++++- 6 files changed, 393 insertions(+), 171 deletions(-) diff --git a/tools/busywork/bin/busy b/tools/busywork/bin/busy index 242c639a6c1..c7d87091d09 100755 --- a/tools/busywork/bin/busy +++ b/tools/busywork/bin/busy @@ -1,13 +1,13 @@ #!/usr/bin/tclsh # Copyright IBM Corp. 2016. All Rights Reserved. -# +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -19,18 +19,18 @@ set usage { The 'busy' script runs commands on one or more peers in a busywork network, printing the salient portion of the response on stdout. 'busy' can be seen as -an easier-to-use version of the Hyperledger fabric command-line-interface -(CLI) in that 'busy' takes care of various kinds of bookkeeping and -boilerplate code behind the scenes. 'busy' is probably best used as a tool for -small scipts, or for issuing a few interactive commands to a peer -network. Alhough complex test scripts could be implemented entirely as 'busy' -calls, the performance of a test implemented this way would likely suffer from -the process-creation overhead of each 'busy' invocation. +an easier-to-use, enhanced version of the Hyperledger fabric +command-line-interface (CLI) in that 'busy' takes care of various kinds of +bookkeeping and boilerplate code behind the scenes. 'busy' is probably best +used as a tool for small scipts, or for issuing a few interactive commands to +a peer network. Alhough complex test scripts could be implemented entirely as +'busy' calls, the performance of a test implemented this way would likely +suffer from the process-creation overhead of each 'busy' invocation. If the 'busy' command targets a single peer (see below) then the response from -that peer is printed. If multiple peers are targeted, then the results are -collected and printed as a JSON object, where each result is keyed by the peer -name, e.g., +or for that peer is printed. If multiple peers are targeted, then the results +are collected and printed as a JSON object, where each result is keyed by the +peer name, e.g., { "vp0" : , @@ -39,8 +39,8 @@ name, e.g., "vp" : response> } -Use -json to force results from operations on a single peer to print as a JSON -object. +Include the -json option to force results from operations on a single peer to +print as a JSON object. 'busy' is only supported for peer networks described by a 'network' file in the BUSYWORK_HOME directory. The to target are named by the peer IDs @@ -76,6 +76,9 @@ The following command and argument forms are supported: ping + pid + ps + The 'network' and 'chaincodes' commands simply print the current 'network' and 'chaincodes' files respectively from the implied $BUSYWORK_HOME. @@ -110,6 +113,17 @@ queries fail. If the ping query succeeds then the output of the ping queries is returned. This function currently assumes that the chaincode implments a 'ping' query function with no parameters. +The 'pid' command simply returns the PID of each of the . + +The 'ps' command is used to obtain 'ps' information from one or more +peers. For each peer implied by the specification, the result returned +is the result from executing 'ps' as follows, where is the PID of each +of the : + + ps -p -ww --noheader -o + +Note that leading/trailing whitespace is removed from the result. + Examples: busy chaincodes @@ -124,6 +138,9 @@ Examples: busy ping "*" cc2 + busy pid vp0 + busy ps vp0 etime,cputime + Optional arguments, with defaults after the colon: -h | -help | --help : N/A @@ -149,12 +166,12 @@ Optional arguments, with defaults after the colon: The -waitFor option is supported for the 'deploy', 'invoke' and 'ping' commands only. The semantics are explained below in the section headed - "Semantics of -waitFor" + "Semantics of -waitFor" -json : See below Select -json to force even single-peer operations to print as a JSON - object, rather than simply as a value. This opiton is ignored for the + object, rather than simply as a value. This option is ignored for the 'chaincodes' and 'network' commands. @@ -191,6 +208,14 @@ proc singletonCommand {cmd} { } +proc fixedArgs {cmd nArgs} { + + if {[llength [parms args]] != $nArgs} { + errorExit "The '$cmd' command expects $nArgs arguments." + } +} + + proc chaincodes {} { singletonCommand chaincodes @@ -294,7 +319,7 @@ proc invoke {} { "Deployed IDs are $a(ids)" } set name $a($ccId.name) - + if {![null [parms waitFor]]} { set heights \ [mapeach address [parms restAddresses] { @@ -322,7 +347,7 @@ proc invoke {} { } } - + proc query {} { waitForNotOK query @@ -344,7 +369,7 @@ proc query {} { errorExit } set name $a($ccId.name) - + parms results \ [mapeach address [parms restAddresses] { return [fabric::query $address [parms user] $name $function $args] @@ -369,7 +394,7 @@ proc ping {} { errorExit } set name $a($ccId.name) - + proc _ping {name} { set results {} foreach address [parms restAddresses] { @@ -395,7 +420,33 @@ proc ping {} { } } - + +proc pid {} { + + waitForNotOK pid + fixedArgs pid 0 + + parms results [mapeach peer [parms peers] { + return [parms network.peer.$peer.pid] + }] +} + + +proc ps {} { + + waitForNotOK ps + fixedArgs ps 1 + + parms results [mapeach peer [parms peers] { + set pid [parms network.peer.$peer.pid] + if {[catch {exec ps -p $pid -ww --noheader -o [parms args]} result]} { + errorExit "Exec of 'ps' failed : $result" + } + return [string trim $result]; # Remove leading/trailing whitespace + }] +} + + ############################################################################ # The script ############################################################################ @@ -410,11 +461,11 @@ setLoggingLevel {} warn set options { {enum {-h -help --help} parms(help) 0 p_help} {key -home parms(home) {}} - {bool -user parms(user) {} p_user} + {key -user parms(user) {} p_user} {key -waitFor parms(waitFor) {}} {bool -json parms(json) 0} } - + mapKeywordArgs $argv $options parms(other) if {$p_help} { @@ -430,7 +481,7 @@ parms command [first [parms other]] switch [parms command] { chaincodes {chaincodes} network {network} -} +} parms peers [busywork::peersFromSpec [second [parms other]]] parms args [restn [parms other] 2] @@ -459,6 +510,8 @@ switch [parms command] { invoke {invoke} query {query} ping {ping} + pid {pid} + ps {ps} default {errorExit "Unrecognized command: [parms command]"} } @@ -489,9 +542,3 @@ if {[parms json] || [expr {[llength [parms results]] > 1}]} { puts [first [parms results]] } - - - - - - diff --git a/tools/busywork/bin/pprofClient b/tools/busywork/bin/pprofClient index 888c06f6a23..0e8df692184 100755 --- a/tools/busywork/bin/pprofClient +++ b/tools/busywork/bin/pprofClient @@ -1,13 +1,13 @@ #!/usr/bin/tclsh # Copyright IBM Corp. 2016. All Rights Reserved. -# +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -66,7 +66,7 @@ of the profile files - they are named by the host:port of the profiling port, and given sequence numbers to make them unique. When this script is run against busywork networks, the final act of the script is to create symbolic links that substitute the host:port portion of the file names with the peer -names (vp[0,...N]). +names (vp[0,...N]). Optional arguments, with defaults after the colon: @@ -140,7 +140,7 @@ set options { {key -peers parms(peers) {} p_peers} {key -port parms(port) 6060} } - + mapKeywordArgs $argv $options parms(other) if {$p_help} { @@ -153,12 +153,12 @@ if {[parms quiet]} { } else { setLoggingLevel {} note } - + parms home [busywork::home [parms home]] # Handle implicit vs. explict peers. With implicit peers we can give the files # recognizable names. With explicit peers we can only use the host:port as the -# names. +# names. if {$p_peers} { @@ -175,34 +175,34 @@ if {$p_peers} { parms profileAddresses [parms ids] } else { - + # Implicit peers - + if {[catch {busywork::networkToArray ::parms network.} msg]} { errorExit $msg } - + switch [llength [parms other]] { - + 1 { # All peers - + parms service [parms other] parms ids [parms network.peer.ids] parms profileAddresses [parms network.peer.profileAddresses] } 2 { # Subset of peers - + set spec [first [parms other]] parms service [second [parms other]] - + if {[catch {enumerate $spec} result]} { errorExit \ "Error parsing peer specification : $result" } set nPeers [llength [parms network.peer.ids]] - + parms ids \ [mapeach n $result { if {$n > $nPeers} { @@ -214,7 +214,7 @@ if {$p_peers} { [mapeach n $result { return [lindex [parms network.peer.profileAddresses] $n] }] - + } default { puts $usage @@ -283,7 +283,8 @@ if {[waitPIDs $pids]} { # find the profile files that the tool just created and link the names given # by the tool with names based on the peer IDs. The Go pprof tool does not # support providing names for the profile files - it names them based on their -# http addresses using the form 'pprof..'. +# http addresses using the form 'pprof.[.].'. The form with the [.] was introduced in Go 1.7. # The renaming-via-links being done here is not perfect in every case, and can # cause confusion (but NOT lost files) if profiles from multiple runs are @@ -297,31 +298,41 @@ if {!$p_peers} { set idMap($target) $id } foreach file [glob pprof.*] { - if {[regexp {^pprof.([^:]+:\d+)(.*)(\d\d\d)(.*)} \ + set executable "" + if {[regexp {^pprof\.([^:]+:\d+)\.(.*)(\d\d\d)(.*)} \ $file match host a b c]} { - if {[info exists idMap($host)]} { - if {$p_tag} { - set b [parms tag] - } - set reName pprof.$host$a$b$c - set newName pprof.$idMap($host)$a$b$c - if {![file exists $newName]} { + + # We can't disambiguate the . form from a + # generic with a regular expression. So we need to + # check to see if one of the hosts we're interested in is a + # terminal suffix of the 'host' pulled form the regex match. + + foreach target [parms profileAddresses] { + if {[string match *$target $host]} { if {$p_tag} { - if {[catch {exec mv $file $reName} why]} { - errorExit "Can't rename $file to $reName : $why" - } - if {[catch {exec ln -sf $reName $newName} code]} { - errorExit \ - "Error linking $file to $newName : $code" - } - note {} "$newName -> $reName (from $file)" - } else { - if {[catch {exec ln -sf $file $newName} code]} { - errorExit \ - "Error linking $file to $newName : $code" + set b [parms tag] + } + set reName pprof.$host.$a$b$c + set newName pprof.$idMap($target).$a$b$c + if {![file exists $newName]} { + if {$p_tag} { + if {[catch {exec mv $file $reName} why]} { + errorExit "Can't rename $file to $reName : $why" + } + if {[catch {exec ln -sf $reName $newName} code]} { + errorExit \ + "Error linking $file to $newName : $code" + } + note {} "$newName -> $reName (from $file)" + } else { + if {[catch {exec ln -sf $file $newName} code]} { + errorExit \ + "Error linking $file to $newName : $code" + } + note {} "$newName -> $file" } - note {} "$newName -> $file" - } + } + break } } } diff --git a/tools/busywork/bin/userModeNetwork b/tools/busywork/bin/userModeNetwork index bdeab1ce601..9bdfc8e0a03 100755 --- a/tools/busywork/bin/userModeNetwork +++ b/tools/busywork/bin/userModeNetwork @@ -65,6 +65,11 @@ Optional arguments, with defaults after the colon: the 'membersrvc' server. Peer login credentials are obtained from the fabric/membersrvc.yaml file. +-privacy | -noPrivacy : -noPrivacy + + Controls whether privacy is enabled. This option only has effect if + -security is enabled. + -noops | -batch : -batch Use one of these options to select the consensus mode. The default @@ -194,6 +199,7 @@ set options { {key -home parms(home) {}} {key -interface parms(interface) {} p_interface} {bool {-security -noSecurity} parms(security) 0} + {bool {-privacy -noPrivacy} parms(privacy) 0} {enum {-noops -batch} parms(consensus) -batch} {bool {-profile -noProfile} parms(profile) 1} {enum {-pristine -clean -dirty} parms(clean) -pristine} @@ -360,6 +366,7 @@ puts $config " \"host\": \"local\"," puts $config " \"date\": \"[timestamp]\"," puts $config " \"createdBy\": \"userModeNetwork\"," puts $config " \"security\": \"[? [parms security] true false]\"," +puts $config " \"privacy\": \"[? [parms privacy] true false]\"," puts $config " \"consensus\": \"$CONSENSUS_TO_MODE([parms consensus])\"," puts $config " \"peerProfileServer\": \"[? [parms profile] true false]\"," @@ -454,6 +461,7 @@ foreach clause $peerMap { set ::env(CORE_SECURITY_ENROLLID) $user set ::env(CORE_SECURITY_ENROLLSECRET) $password set ::env(CORE_SECURITY_ENABLED) true + set ::env(CORE_SECURITY_PRIVACY) [? [parms privacy] true false] } else { set ::env(CORE_SECURITY_ENABLED) false } diff --git a/tools/busywork/counters/driver b/tools/busywork/counters/driver index 23af5a0cb0f..7015cbc7991 100755 --- a/tools/busywork/counters/driver +++ b/tools/busywork/counters/driver @@ -513,6 +513,20 @@ parms txDelay [durationToMs [parms txDelay]] parms peerDelay [durationToMs [parms peerDelay]] parms netDelay [durationToMs [parms netDelay]] +# We can collect run-time statistics if 1) We are running locally on Linux, +# and 2) if the driver was started from a busywork 'network' file. + +if {[parms remote] || + ![null [parms explicitPeers]] || + [catch {exec uname} os] || + ($os ne "Linux")} { + errorExit "'[parms remote]' '[null [parms explicitPeers]]' '$os'" + parms collectStats 0 +} else { + parms collectStats 1 +} + + ############################################################################ # Setup ############################################################################ @@ -904,6 +918,15 @@ proc clientRoutine {i_logger} { } +# Get peer stats before the client fork + +if {[parms collectStats]} { + foreach peer [parms network.peer.ids] pid [parms network.peer.pids] { + procPIDStat $pid ::parms stat.before.$peer. + } +} + + # Fork clients. The parent continues the script once all clients have exited; # clients run their driver routine and exit. @@ -946,14 +969,15 @@ if {$p_pprofClient} { # event of errors until the final agreement check. note {} "Waiting (indefinitely) for subprocesses to complete" -set t [time {set errors [waitPIDs $pids]} 1] +set startMs [clock milliseconds] +set errors [waitPIDs $pids] +set issueSec [expr ([clock milliseconds] - $startMs) / 1000.0] if {!$errors} { - set seconds [expr {[lindex $t 0] / 1e6}] - set rate [format %.2f [expr {[parms totalTransactions] / $seconds}]] + set rate [format %.2f [expr {[parms totalTransactions] / $issueSec}]] note {} \ - "Transaction rate : $rate per second " \ - "([parms totalTransactions] / $seconds)" + "Issue + interlock TX rate : $rate per second " \ + "([parms totalTransactions] / $issueSec)" } if {$p_pprofClient} { @@ -964,6 +988,33 @@ if {$p_pprofClient} { } } +# Print peer stats + +if {[parms collectStats]} { + if {[catch {exec getconf CLK_TCK} CLK_TCK]} { + error {} "Can't getconf CLK_TCK: $CLK_TCK" + } else { + set CLK_TCK $CLK_TCK.0; # Poor man's float() + note {} "Peer statistics (excluding initialization and deployment)" + note {} " Peer: CPU (sec) = User + System: Utilization: Threads" + note {} " -----------------------------------------------------" + foreach peer [parms network.peer.ids] pid [parms network.peer.pids] { + procPIDStat $pid ::parms stat.after.$peer. + set user \ + [expr {([parms stat.after.$peer.utime] - \ + [parms stat.before.$peer.utime]) / $CLK_TCK}] + set sys \ + [expr {([parms stat.after.$peer.stime] - \ + [parms stat.before.$peer.stime]) / $CLK_TCK}] + set cpu [expr {$user + $sys}] + set util [expr {$cpu * 100.0 / $issueSec}] + set threads [parms stat.after.$peer.num_threads] + note {} [format "%8s %8.2f %8.2f %8.2f %8.0f%% %10d" \ + $peer $cpu $user $sys $util $threads] + } + } +} + if {$errors && ![parms force]} { errorExit "Aborting due to client errors" } @@ -987,6 +1038,13 @@ if {[parms interlock] && ![parms noops]} { set heights [removeDuplicates $originalHeights] if {[llength $heights] != 1} { note {} " Observed block heights: $originalHeights" + } else { + note {} " Consensus block height: $heights" + set finalSec [expr ([clock milliseconds] - $::startMs) / 1000.0] + set rate [format %.2f [expr {[parms totalTransactions] / $finalSec}]] + note {} \ + "Fully committed TX rate : $rate per second " \ + "([parms totalTransactions] / $finalSec)" } return [expr {[llength $heights] == 1}] } diff --git a/tools/busywork/tcl/fabric.tcl b/tools/busywork/tcl/fabric.tcl index afe11a8dd6d..3a9b1e168fa 100644 --- a/tools/busywork/tcl/fabric.tcl +++ b/tools/busywork/tcl/fabric.tcl @@ -25,7 +25,7 @@ package provide fabric 0.0 namespace eval ::fabric {} ############################################################################ -# devops i_peer i_method i_query {i_retry 0} +# chaincode i_peer i_method i_query {i_retry 0} # Make a REST API 'devops' query. The i_peer is the full host:port # address. The i_method must be 'deploy', 'invoke' or 'query'. @@ -40,12 +40,12 @@ namespace eval ::fabric {} # exits. If the HTTP access fails then the call will exit with Tcl error{} and # the caller will presumably catch{} the error and do whatever is appropriate. -proc ::fabric::devops {i_peer i_method i_query {i_retry 0}} { +proc ::fabric::chaincode {i_peer i_method i_query {i_retry 0}} { for {set retry [math:::max $i_retry 0]} {$retry >= 0} {incr retry -1} { if {[catch { - ::http::geturl http://$i_peer/devops/$i_method -query $i_query + ::http::geturl http://$i_peer/chaincode -query $i_query } token]} { if {$i_retry < 0} { http::cleanup $token @@ -54,7 +54,7 @@ proc ::fabric::devops {i_peer i_method i_query {i_retry 0}} { if {$retry > 0} { if {$retry == $i_retry} { warn fabric \ - "fabric::devops/$i_method $i_peer : " \ + "fabric::chaincode $i_peer $i_method: " \ "Retrying after catastrophic HTTP error" } http::cleanup $token @@ -62,13 +62,13 @@ proc ::fabric::devops {i_peer i_method i_query {i_retry 0}} { } if {($retry == 0) && ($i_retry != 0)} { err fabric \ - "fabric::devops/$i_method $i_peer : " \ + "fabric::chaincode $i_peer $i_method: " \ "Retry limit ($i_retry) hit after " \ "catastrophic HTTP error : Aborting" } http::cleanup $token errorExit \ - "fabric::devops/$i_method $i_peer : ::http::geturl failed\n" \ + "fabric::chaincode $i_peer $i_method: ::http::geturl failed\n" \ $::errorInfo } @@ -80,12 +80,12 @@ proc ::fabric::devops {i_peer i_method i_query {i_retry 0}} { if {$retry > 0} { if {$retry == $i_retry} { warn fabric \ - "fabric::devops/$i_method $i_peer : " \ + "fabric::chaincode $i_peer $i_method: " \ "Retrying after HTTP error return" } if {($retry == 0) && ($i_retry != 0)} { err fabric \ - "fabric::devops/$i_method $i_peer : " \ + "fabric::chaincode $i_peer $i_method: " \ "Retry limit ($i_retry) hit after " \ "HTTP error return : Aborting" } @@ -93,48 +93,52 @@ proc ::fabric::devops {i_peer i_method i_query {i_retry 0}} { continue } err fabric \ - "FABRIC '$i_method' transaction to $i_peer failed " \ + "fabric::chaincode '$i_method' transaction to $i_peer failed " \ "with ncode = '[http::ncode $token]'; Aborting\n" httpErrorExit $token } set response [http::data $token] - set err [catch { + set fail [catch { set parse [json::json2dict $response] - set ok [dict get $parse OK] - switch $i_method { - deploy - - invoke { - set result [dict get $parse message] + set result [dict get $parse result] + set status [dict get $result status] + if {$status ne "OK"} { + error "Status not OK" } - query { - set result $ok - } - default { - error "Unrecognized method $i_method" - } - } - }] + set message [dict get $result message] + } err] - if {$err} { - err fabric \ - "FABRIC '$i_method' response from $i_peer " \ - "is malformed/unexpected" - httpErrorExit $token + if {$fail} { + + set msg \ + [concat \ + "fabric::chaincode '$i_method' response from $i_peer " \ + "is malformed/unexpected: $err"] + + if {$i_retry < 0} { + http::cleanup $token + error $msg + + } else { + + err fabric $msg + httpErrorExit $token + } } http::cleanup $token if {($i_retry >= 0) && ($retry != $i_retry)} { note fabric \ - "fabric::devops/$i_method $i_peer : " \ + "fabric::chaincode $i_peer $i_method: " \ "Success after [expr {$i_retry - $retry}] HTTP retries" } break } - return $result + return $message } @@ -144,17 +148,17 @@ proc ::fabric::devops {i_peer i_method i_query {i_retry 0}} { # Deploy a GOLANG chaincode to the network. The i_peer is the full network # address (host:port) of the REST API port of the peer. If i_user is # non-empty then this will be a secure transaction. The constructor will apply -# i_fn to i_args. Note that i_args is a normal Tcl list. This routine will -# convert i_args into a JSON array, wrapping each element of i_args in double -# quotes. i_fn will also be properly quoted. +# i_fn to i_args. -# See ::fabric::devops{} for a discussion of the 'i_retry' parameter. +# See ::fabric::chaincode{} for a discussion of the 'i_retry' parameter. proc ::fabric::deploy {i_peer i_user i_chaincode i_fn i_args {i_retry 0}} { set template { - { - "type" : "GOLANG", + "jsonrpc" : "2.0", + "method" : "deploy", + "params" : { + "type": 1, "chaincodeID" : { "path" : "$i_chaincode" }, @@ -162,16 +166,17 @@ proc ::fabric::deploy {i_peer i_user i_chaincode i_fn i_args {i_retry 0}} { "args" : [$args] }, "secureContext": "$i_user" - } + }, + "id": 1 } set args [argify $i_fn $i_args] - set query [subst -nocommand $template] - - return [devops $i_peer deploy $query $i_retry] + set query [list [subst -nocommand $template]] + return [chaincode $i_peer deploy $query $i_retry] } + ############################################################################ # devModeDeploy i_peer i_user i_chaincode i_fn i_args {i_retry 0} @@ -179,13 +184,15 @@ proc ::fabric::deploy {i_peer i_user i_chaincode i_fn i_args {i_retry 0}} { # mode. Here, the i_chaincode is a user-specified name. All of the other # arguments are otherwise the same as for deploy{}. -# See ::fabric::devops{} for a discussion of the 'i_retry' parameter. +# See ::fabric::chaincode{} for a discussion of the 'i_retry' parameter. proc ::fabric::devModeDeploy {i_peer i_user i_chaincode i_fn i_args {i_retry 0}} { set template { - { - "type" : "GOLANG", + "jsonrpc" : "2.0", + "method" : "deploy", + "params" : { + "type": 1, "chaincodeID" : { "name" : "$i_chaincode" }, @@ -193,14 +200,14 @@ proc ::fabric::devModeDeploy {i_peer i_user i_chaincode i_fn i_args {i_retry 0}} "args" : [$args] }, "secureContext": "$i_user" - } + }, + "id": 1 } set args [argify $i_fn $i_args] - set query [subst -nocommand $template] + set query [list [subst -nocommand $template]] return [devops $i_peer deploy $query $i_retry] - } ############################################################################ @@ -209,33 +216,32 @@ proc ::fabric::devModeDeploy {i_peer i_user i_chaincode i_fn i_args {i_retry 0}} # Invoke a GOLANG chaincode on the network. The i_peer is the full network # address (host:port) of the REST API port of the peer. If i_user is non-empty # then this will be a secure transaction. The i_chaincodeName is the hash used -# to identify the chaincode. The invocation will apply i_fn to i_args. Note -# that i_args is a normal Tcl list. This routine will convert i_args into a -# JSON array, wrapping each element of i_args in double quotes. i_fn will also -# be properly quoted. +# to identify the chaincode. The invocation will apply i_fn to i_args. -# See ::fabric::devops{} for a discussion of the 'i_retry' parameter. +# See ::fabric::chaincode{} for a discussion of the 'i_retry' parameter. proc ::fabric::invoke {i_peer i_user i_chaincodeName i_fn i_args {i_retry 0}} { set template { - { - "chaincodeSpec" : {"type" : "GOLANG", - "chaincodeID" : { - "name" : "$i_chaincodeName" - }, - "ctorMsg" : { - "args" : [$args] - }, - "secureContext": "$i_user" - } - } + "jsonrpc" : "2.0", + "method" : "invoke", + "params" : { + "type": 1, + "chaincodeID" : { + "name" : "$i_chaincodeName" + }, + "ctorMsg" : { + "args" : [$args] + }, + "secureContext": "$i_user" + }, + "id": 1 } set args [argify $i_fn $i_args] - set query [subst -nocommand $template] + set query [list [subst -nocommand $template]] - return [devops $i_peer invoke $query $i_retry] + return [chaincode $i_peer invoke $query $i_retry] } @@ -245,34 +251,32 @@ proc ::fabric::invoke {i_peer i_user i_chaincodeName i_fn i_args {i_retry 0}} { # Query a GOLANG chaincode on the network. The i_peer is the full network # address (host:port) of the REST API port of the peer. If i_user is non-empty # then this will be a secure transaction. The i_chaincodeName is the hash used -# to identify the chaincode. The query will apply i_fn to i_args. Note that -# i_args is a normal Tcl list. This routine will convert i_args into a JSON -# array, wrapping each element of i_args in double quotes. i_fn will also be -# properly quoted. The query result (currently assumed to be a string) is -# returned. +# to identify the chaincode. The query will apply i_fn to i_args. -# See ::fabric::devops{} for a discussion of the 'i_retry' parameter. +# See ::fabric::chaincode{} for a discussion of the 'i_retry' parameter. proc ::fabric::query {i_peer i_user i_chaincodeName i_fn i_args {i_retry 0}} { set template { - { - "chaincodeSpec" : {"type" : "GOLANG", - "chaincodeID" : { - "name" : "$i_chaincodeName" - }, - "ctorMsg" : { - "args" : [$args] - }, - "secureContext": "$i_user" - } - } + "jsonrpc" : "2.0", + "method" : "query", + "params" : { + "type": 1, + "chaincodeID" : { + "name" : "$i_chaincodeName" + }, + "ctorMsg" : { + "args" : [$args] + }, + "secureContext": "$i_user" + }, + "id": 1 } set args [argify $i_fn $i_args] - set query [subst -nocommand $template] + set query [list [subst -nocommand $template]] - return [devops $i_peer query $query $i_retry] + return [chaincode $i_peer query $query $i_retry] } @@ -298,11 +302,11 @@ proc ::fabric::height {i_peer {i_retry 0}} { "$i_peer /chain: ::http::geturl failed " \ "with $i_retry retries : $token" } - + if {[http::ncode $token] != 200} { - + # Failure - + if {$retry > 0} { if {$retry == $i_retry} { warn fabric \ @@ -311,12 +315,12 @@ proc ::fabric::height {i_peer {i_retry 0}} { http::cleanup $token continue } - + err fabric \ "$i_peer /chain; REST API call failed with $i_retry retries" httpErrorExit $token } - + if {[catch {json::json2dict [http::data $token]} parse]} { err fabric "$i_peer /chain: JSON response does not parse: $parse" httpErrorExit $token @@ -430,7 +434,7 @@ proc ::fabric::caLogin {i_peer i_user i_secret} { ############################################################################ # argify i_fn i_args -# Convert old-style fn + args pair into a list of quoted base64 arguments with +# Convert old-style fn + args pair into a list of quoted arguments with # commas to satisfy the most recent JSON format of the REST API. This needs to # be done as a string (rather than as a list), otherwise it will be {} quoted # when substituted. @@ -438,11 +442,11 @@ proc ::fabric::caLogin {i_peer i_user i_secret} { proc ::fabric::argify {i_fn i_args} { set args [concat $i_fn $i_args] - set args64 "" + set jsonargs "" set comma "" foreach arg $args { - set args64 "$args64$comma\"[binary encode base64 $arg]\"" + set jsonargs "$jsonargs$comma\"$arg\"" set comma , } - return $args64 + return $jsonargs } diff --git a/tools/busywork/tcl/os.tcl b/tools/busywork/tcl/os.tcl index 32891b64ed9..b2c8af544b1 100644 --- a/tools/busywork/tcl/os.tcl +++ b/tools/busywork/tcl/os.tcl @@ -1,13 +1,13 @@ # os.tcl - Utilities related to the operating system functions # Copyright IBM Corp. 2016. All Rights Reserved. -# +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -43,7 +43,7 @@ proc waitPIDs {pids {digest {}}} { set _digest($pid.why) $why set _digest($pid.rc) $rc set _digest($pid.ok) [expr {($why eq "EXIT") && ($rc == 0)}] - + switch $why { EXIT { if {$rc != 0} { @@ -67,3 +67,97 @@ proc waitPIDs {pids {digest {}}} { } return $rv } + + +############################################################################ +# procPIDStat i_pid o_array {i_prefix ""} + +# This procedure parses the result of executing + +# cat /proc/[i_pid]/stat + +# and stores the results in the array o_array keyed by name. See man proc(5) +# under /proc/[pid]/stat for an interpretation of the fields. The names are +# taken directly from the man page. The optional i_prefix can be specified to +# allow stats for multiple PIDs to be stored in the same array, using an +# indexing scheme chosen by the caller. + +# NB: This procedure only works on Linux, and will fail on other operating +# systems. + +# BUGS: Field 2 (comm) is the command name in parenthesis. If the file name of +# the command includes white space this will throw off the current parser. + +# Note: Copy/edited taken directly from the man page, which uses 1-based +# addressing. +array unset ::procPIDStatMap +foreach {index key} { + 1 pid + 2 comm + 3 state + 4 ppid + 5 pgrp + 6 session + 7 tty_nr + 8 tpgid + 9 flags + 10 minflt + 11 cminflt + 12 majflt + 13 cmajflt + 14 utime + 15 stime + 16 cutime + 17 cstime + 18 priority + 19 nice + 20 num_threads + 21 itrealvalue + 22 starttime + 23 vsize + 24 rss + 25 rsslim + 26 startcode + 27 endcode + 28 startstack + 29 kstkesp + 30 kstkeip + 31 signal + 32 blocked + 33 sigignore + 34 sigcatch + 35 wchan + 36 nswap + 37 cnswap + 38 exit_signal + 39 processor + 40 rt_priority + 41 policy + 42 delayacct_blkio_ticks + 43 guest_time + 44 cguest_time + 45 start_data + 46 end_data + 47 start_brk + 48 arg_start + 49 arg_end + 50 env_start + 51 env_end + 52 exit_code +} { + set ::procPIDStatMap([expr {$index - 1}]) $key +} + + +proc procPIDStat {i_pid o_array {i_prefix ""}} { + + upvar $o_array a + + if {[catch {exec cat /proc/$i_pid/stat} stat]} { + errorExit "Can not cat /proc/$i_pid/stat: $stat" + } + + foreach index [array names ::procPIDStatMap] { + set a($i_prefix$::procPIDStatMap($index)) [lindex $stat $index] + } +} From ce2ef2356d36ccfee1515b47fa4a076597712fed Mon Sep 17 00:00:00 2001 From: Gregory Haskins Date: Mon, 19 Sep 2016 22:30:44 -0400 Subject: [PATCH 18/27] Do not build the fabric peer during vagrant provision Building the peer during vagrant provisioning takes extra time. We can't be sure the user even wants to build the peer. They may be trying to perform some other task (such as work on the SDK), in which case we are wasting their time. Therefore, remove peer building from the critical path of provisioning and allow the user to make their own decision. This has the nice benefit of making the provisioning process nice and snappy. Change-Id: I82f120faceeff8d8de08f064d4a6fd911eec65d9 Signed-off-by: Greg Haskins --- devenv/setup.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/devenv/setup.sh b/devenv/setup.sh index 42e7b3b5330..591a01c4830 100755 --- a/devenv/setup.sh +++ b/devenv/setup.sh @@ -78,9 +78,12 @@ PATH=$GOROOT/bin:$GOPATH/bin:$PATH sudo mkdir -p /var/hyperledger sudo chown -R vagrant:vagrant /var/hyperledger -# Build the actual hyperledger peer (must be done before chown below) +# clean any previous builds as they may have image/.dummy files without +# the backing docker images (since we are, by definition, rebuilding the +# filesystem) and then ensure we have a fresh set of our go-tools. +# NOTE: This must be done before the chown below cd $GOPATH/src/github.com/hyperledger/fabric -make clean peer gotools +make clean gotools # Ensure permissions are set for GOPATH sudo chown -R vagrant:vagrant $GOPATH From 4d4df3629a6c7d9a78df6c43de04839310507d24 Mon Sep 17 00:00:00 2001 From: Patrick Mullaney Date: Tue, 20 Sep 2016 19:45:09 -0400 Subject: [PATCH 19/27] node-SDK: add multi-callback registrations This patch allows the sdk to handle multiple registrations on the same event criteria. It also enables registrations for all events for a particular chaincode. Change-Id: I2a4b78b682c8f34555ce89b7a03c6cc690d89b2a Signed-off-by: Patrick Mullaney --- sdk/node/src/hfc.ts | 64 ++++++++++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 21 deletions(-) diff --git a/sdk/node/src/hfc.ts b/sdk/node/src/hfc.ts index 00e1f97447e..440b865f5ab 100644 --- a/sdk/node/src/hfc.ts +++ b/sdk/node/src/hfc.ts @@ -2842,15 +2842,16 @@ export function newFileKeyValStore(dir:string):KeyValStore { /** * The ChainCodeCBE is used internal to the EventHub to hold chaincode event registration callbacks. */ -class ChainCodeCBE { +export class ChainCodeCBE { + // chaincode id ccid: string; - eventname: string; - payload: Uint8Array; + // event name regex filter + eventNameFilter: RegExp; + // callback function to invoke on successful filter match cb: Function; - constructor(ccid: string,eventname: string,payload: Uint8Array, cb: Function) { + constructor(ccid: string, eventNameFilter: string, cb: Function) { this.ccid = ccid; - this.eventname = eventname; - this.payload = payload; + this.eventNameFilter = new RegExp(eventNameFilter); this.cb = cb; } } @@ -2879,7 +2880,7 @@ export class EventHub { this.chaincodeRegistrants = new HashTable(); this.blockRegistrants = new Set(); this.txRegistrants = new HashTable(); - this.peeraddr = "localhost:7053"; + this.peeraddr = null; this.connected = false; } @@ -2893,6 +2894,7 @@ export class EventHub { public connect() { if (this.connected) return; + if (!this.peeraddr) throw Error("Must set peer address before connecting."); this.events = grpc.load(__dirname + "/protos/events.proto" ).protos; this.client = new this.events.Events(this.peeraddr,grpc.credentials.createInsecure()); this.call = this.client.chat(); @@ -2902,11 +2904,15 @@ export class EventHub { let eh = this; // for callback context this.call.on('data', function(event) { if ( event.Event == "chaincodeEvent" ) { - var cbe = eh.chaincodeRegistrants.get(event.chaincodeEvent.chaincodeID + "/" + event.chaincodeEvent.eventName); - if ( cbe ) { - cbe.payload = event.chaincodeEvent.payload; - cbe.cb(cbe); - } + var cbtable = eh.chaincodeRegistrants.get(event.chaincodeEvent.chaincodeID); + if( !cbtable ) { + return; + } + cbtable.forEach(function (cbe) { + if ( cbe.eventNameFilter.test(event.chaincodeEvent.eventName)) { + cbe.cb(event.chaincodeEvent); + } + }); } else if ( event.Event == "block") { eh.blockRegistrants.forEach(function(cb){ cb(event.block); @@ -2928,19 +2934,35 @@ export class EventHub { this.connected = false; } - public registerChaincodeEvent(ccid: string, eventname: string, callback: Function){ + public registerChaincodeEvent(ccid: string, eventname: string, callback: Function): ChainCodeCBE { if (!this.connected) return; - let cb = new ChainCodeCBE(ccid, eventname, null, callback); - let register = { register: { events: [ { eventType: "CHAINCODE", chaincodeRegInfo:{ chaincodeID: ccid , eventName: eventname }} ] }}; - this.chaincodeRegistrants.put(ccid + "/" + eventname, cb); - this.call.write(register); + let cb = new ChainCodeCBE(ccid, eventname, callback); + let cbtable = this.chaincodeRegistrants.get(ccid); + if ( !cbtable ) { + cbtable = new Set(); + this.chaincodeRegistrants.put(ccid, cbtable); + cbtable.add(cb); + let register = { register: { events: [ { eventType: "CHAINCODE", chaincodeRegInfo:{ chaincodeID: ccid , eventName: "" }} ] }}; + this.call.write(register); + } else { + cbtable.add(cb); + } + return cb; } - public unregisterChaincodeEvent(ccid: string, eventname: string){ + public unregisterChaincodeEvent(cbe: ChainCodeCBE){ if (!this.connected) return; - var unregister = { unregister: { events: [ { eventType: "CHAINCODE", chaincodeRegInfo:{ chaincodeID: ccid, eventName: eventname }} ] }}; - this.chaincodeRegistrants.remove(ccid + "/" + eventname); - this.call.write(unregister); + let cbtable = this.chaincodeRegistrants.get(cbe.ccid); + if ( !cbtable ) { + debug("No event registration for ccid %s ", cbe.ccid); + return; + } + cbtable.delete(cbe); + if( cbtable.size <= 0 ) { + var unregister = { unregister: { events: [ { eventType: "CHAINCODE", chaincodeRegInfo:{ chaincodeID: cbe.ccid, eventName: "" }} ] }}; + this.chaincodeRegistrants.remove(cbe.ccid); + this.call.write(unregister); + } } public registerBlockEvent(callback:Function){ From eba455354f9b3525ef3d0ee48f7a0f43cddd2cb7 Mon Sep 17 00:00:00 2001 From: Patrick Mullaney Date: Wed, 21 Sep 2016 14:30:37 -0400 Subject: [PATCH 20/27] node-SDK: add unit tests for chaincode events This patch adds a series of chaincode event unit tests and addresses FAB-391 Change-Id: I9e9add7481a46e024628954e51f1baab83ecfdef Signed-off-by: Patrick Mullaney --- sdk/node/bin/run-unit-tests.sh | 13 + sdk/node/test/unit/event-tests.js | 516 ++++++++++++++++++++++++++++++ 2 files changed, 529 insertions(+) create mode 100644 sdk/node/test/unit/event-tests.js diff --git a/sdk/node/bin/run-unit-tests.sh b/sdk/node/bin/run-unit-tests.sh index a892f5cad85..9e6f332903c 100755 --- a/sdk/node/bin/run-unit-tests.sh +++ b/sdk/node/bin/run-unit-tests.sh @@ -82,6 +82,7 @@ runTests() { runAssetMgmtTests runAssetMgmtWithRolesTests runAssetMgmtWithDynamicRolesTests + runEventTests echo "End running tests in network mode" } @@ -227,6 +228,18 @@ runAssetMgmtWithDynamicRolesTests() { echo "END running asset management with dynamic roles tests" } +runEventTests() { + echo "BEGIN running event-tests ..." + preExample eventsender mycc5 + node $UNITTEST/event-tests.js + if [ $? -ne 0 ]; then + echo "ERROR running event-tests!" + NODE_ERR_CODE=1 + fi + postExample eventsender + echo "END running event-tests" +} + # start process # $1 is executable path with any args # $2 is the log file diff --git a/sdk/node/test/unit/event-tests.js b/sdk/node/test/unit/event-tests.js new file mode 100644 index 00000000000..ad045b57ebf --- /dev/null +++ b/sdk/node/test/unit/event-tests.js @@ -0,0 +1,516 @@ +/** + * Copyright London Stock Exchange 2016 All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var hfc = require('../..'); +var test = require('tape'); +var util = require('util'); +var fs = require('fs'); + +// +// Create a test chain +// + +var chain = hfc.newChain("testChain"); + +// +// Configure the test chain +// +// Set the directory for the local file-based key value store, point to the +// address of the membership service, and add an associated peer node. +// +// If the "tlsca.cert" file exists then the client-sdk will +// try to connect to the member services using TLS. +// The "tlsca.cert" is supposed to contain the root certificate (in PEM format) +// to be used to authenticate the member services certificate. +// + +chain.setKeyValStore(hfc.newFileKeyValStore('/tmp/keyValStore')); +if (fs.existsSync("tlsca.cert")) { + chain.setMemberServicesUrl("grpcs://localhost:7054", fs.readFileSync('tlsca.cert')); +} else { + chain.setMemberServicesUrl("grpc://localhost:7054"); +} +chain.addPeer("grpc://localhost:7051"); +chain.eventHubConnect("localhost:7053"); + +process.on('exit', function (){ + chain.eventHubDisconnect(); +}); + +// +// Set the chaincode deployment mode to either developent mode (user runs chaincode) +// or network mode (code package built and sent to the peer). +// + +var mode = process.env['DEPLOY_MODE']; +console.log("$DEPLOY_MODE: " + mode); +if (mode === 'dev') { + chain.setDevMode(true); +} else { + chain.setDevMode(false); +} + +// +// Configure test users +// +// Set the values required to register a user with the certificate authority. +// + +test_user1 = { + name: "WebApp_user1", + role: 1, // Client + affiliation: "bank_a" +}; + +// +// Declare variables to store the test user Member objects returned after +// registration and enrollment as they will be used across multiple tests. +// + +var test_user_Member1; + +// +// Declare test variables that will be used to store chaincode values used +// across multiple tests. +// + +// Path to the local directory containing the chaincode project under $GOPATH +var testChaincodePath = "github.com/eventsender/"; + +// Chaincode hash that will be filled in by the deployment operation or +// chaincode name that will be referenced in development mode. +var testChaincodeName = "mycc5"; + +// testChaincodeID will store the chaincode ID value after deployment. +var testChaincodeID; + +function getUser(name, cb) { + chain.getUser(name, function (err, user) { + if (err) return cb(err); + if (user.isEnrolled()) return cb(null, user); + // User is not enrolled yet, so perform both registration and enrollment + // The chain registrar is already set inside 'Set chain registrar' test + var registrationRequest = { + enrollmentID: name, + affiliation: "bank_a" + }; + user.registerAndEnroll(registrationRequest, function (err) { + if (err) cb(err, null) + cb(null, user) + }); + }); +} + +// +// Enroll the WebAppAdmin member and set as registrar then register +// and enroll new user with certificate authority +// This test is a prerequisite to further tests +// + +test('Set up chain prerequisites', function (t) { + t.plan(5); + + // Get the WebAppAdmin member + chain.getMember("WebAppAdmin", function (err, WebAppAdmin) { + if (err) { + t.fail("Failed to get WebAppAdmin member " + " ---> " + err); + t.end(err); + process.exit(1); + } else { + t.pass("Successfully got WebAppAdmin member" /*+ " ---> " + JSON.stringify(crypto)*/); + + // Enroll the WebAppAdmin member with the certificate authority using + // the one time password hard coded inside the membersrvc.yaml. + pw = "DJY27pEnl16d"; + WebAppAdmin.enroll(pw, function (err, crypto) { + if (err) { + t.fail("Failed to enroll WebAppAdmin member " + " ---> " + err); + t.end(err); + process.exit(1); + } else { + t.pass("Successfully enrolled WebAppAdmin member" /*+ " ---> " + JSON.stringify(crypto)*/); + + // Confirm that the WebAppAdmin token has been created in the key value store + path = chain.getKeyValStore().dir + "/member." + WebAppAdmin.getName(); + + fs.exists(path, function (exists) { + if (exists) { + t.pass("Successfully stored client token" /*+ " ---> " + WebAppAdmin.getName()*/); + } else { + t.fail("Failed to store client token for " + WebAppAdmin.getName() + " ---> " + err); + t.end(err); + // Exit the test script after a failure + process.exit(1); + } + chain.setRegistrar(WebAppAdmin); + // Register and enroll test_user + getUser(test_user1.name, function (err, user) { + if (err) { + t.fail("Failed to get " + test_user1.name + " ---> ", err); + t.end(err); + // Exit the test script after a failure + process.exit(1); + } else { + test_user_Member1 = user; + + t.pass("Successfully registered and enrolled " + test_user_Member1.getName()); + + // Confirm that the user token has been created in the key value store + path = chain.getKeyValStore().dir + "/member." + test_user1.name; + fs.exists(path, function (exists) { + if (exists) { + t.pass("Successfully stored client token" /*+ " ---> " + test_user1.name*/); + } else { + t.fail("Failed to store client token for " + test_user1.name + " ---> " + err); + t.end(err); + // Exit the test script after a failure + process.exit(1); + } + }); + } + }); + }); + } + }); + } + }); +}); + +// +// Create and issue a chaincode deploy request by the test user, who was +// registered and enrolled in the UT above. Deploy a testing chaincode from +// a local directory in the user's $GOPATH. +// + +test('Deploy a chaincode by enrolled user', function (t) { + t.plan(1); + + // Construct the deploy request + var deployRequest = { + // Function to trigger + fcn: "init", + // Arguments to the initializing function + args: [] + }; + + if (mode === 'dev') { + // Name required for deploy in development mode + deployRequest.chaincodeName = testChaincodeName; + } else { + // Path (under $GOPATH) required for deploy in network mode + deployRequest.chaincodePath = testChaincodePath; + } + + // Trigger the deploy transaction + var deployTx = test_user_Member1.deploy(deployRequest); + + // the deploy complete is triggered as a result of a fabric deploy + // complete event automatically when a event source is connected + deployTx.on('complete', function (results) { + // Deploy request completed successfully + console.log(util.format("deploy results: %j", results)); + // Set the testChaincodeID for subsequent tests + testChaincodeID = results.chaincodeID; + console.log("testChaincodeID:" + testChaincodeID); + t.pass(util.format("Successfully deployed chaincode: request=%j, response=%j", deployRequest, results)); + }); + deployTx.on('error', function (err) { + // Deploy request failed + t.fail(util.format("Failed to deploy chaincode: request=%j, error=%j", deployRequest, err)); + // Exit the test script after a failure + process.exit(1); + }); +}); + +// +// Issue a chaincode invoke to generate event and listen for the event +// by registering with chaincode id and event name +// + +test('Invoke chaincode and have it generate an event', function (t) { + t.plan(2); + + var evtstring = "event-test"; + // Construct the invoke request + var invokeRequest = { + // Name (hash) required for invoke + chaincodeID: testChaincodeID, + // Function to trigger + fcn: "invoke", + // Parameters for the invoke function + args: [evtstring] + }; + var eh = chain.getEventHub(); + var duration = chain.getInvokeWaitTime() * 1000; + var timedout = true; + var timeoutId = null; + + // register for chaincode event + var regid = eh.registerChaincodeEvent(testChaincodeID, "^evtsender$", function(event) { + timedout = false; + if (timeoutId) { + clearTimeout(timeoutId); + } + t.equal(event.payload.toString(), "Event 0," + evtstring, "Successfully received expected chaincode event payload"); + eh.unregisterChaincodeEvent(regid); + }); + // Trigger the invoke transaction + var invokeTx = test_user_Member1.invoke(invokeRequest); + // set timout on event sent by chaincode invoke + timeoutId = setTimeout(function() { + if(timedout) { + eh.unregisterChaincodeEvent(regid); + t.fail("Failed to receive chaincode event"); + process.exit(1); + } + }, + duration); + + // Print the invoke results + invokeTx.on('complete', function (results) { + // Invoke transaction submitted successfully + t.pass(util.format("Successfully completed chaincode invoke transaction: request=%j, response=%j", invokeRequest, results)); + }); + invokeTx.on('error', function (err) { + // Invoke transaction submission failed + t.fail(util.format("Failed to submit chaincode invoke transaction: request=%j, error=%j", invokeRequest, err)); + // Exit the test script after a failure + process.exit(1); + }); +}); +// +// Issue a chaincode invoke to generate event and listen for the event +// on 2 registrations +// + +test('Invoke chaincode, have it generate an event, and receive event on 2 registrations', function (t) { + t.plan(3); + + var evtstring = "event-test"; + // Construct the invoke request + var invokeRequest = { + // Name (hash) required for invoke + chaincodeID: testChaincodeID, + // Function to trigger + fcn: "invoke", + // Parameters for the invoke function + args: [evtstring] + }; + var eh = chain.getEventHub(); + var duration = chain.getInvokeWaitTime() * 1000; + var timedout = true; + var timeoutId = null; + var eventcount = 0; + + // register for chaincode event + var regid1 = eh.registerChaincodeEvent(testChaincodeID, "^evtsender$", function(event) { + eventcount++; + if (eventcount > 1) { + if (timeoutId) { + clearTimeout(timeoutId); + } + } + t.equal(event.payload.toString(), "Event 1," + evtstring, "Successfully received expected chaincode event payload"); + eh.unregisterChaincodeEvent(regid1); + }); + // register for chaincode event + var regid2 = eh.registerChaincodeEvent(testChaincodeID, "^evtsender$", function(event) { + eventcount++; + if (eventcount > 1) { + if (timeoutId) { + clearTimeout(timeoutId); + } + } + t.equal(event.payload.toString(), "Event 1," + evtstring, "Successfully received expected chaincode event payload"); + eh.unregisterChaincodeEvent(regid2); + }); + // Trigger the invoke transaction + var invokeTx = test_user_Member1.invoke(invokeRequest); + // set timout on event sent by chaincode invoke + timeoutId = setTimeout(function() { + if(eventcount > 1) { + eh.unregisterChaincodeEvent(regid1); + eh.unregisterChaincodeEvent(regid2); + t.fail("Failed to receive chaincode event"); + process.exit(1); + } + }, + duration); + + // Print the invoke results + invokeTx.on('complete', function (results) { + // Invoke transaction submitted successfully + t.pass(util.format("Successfully completed chaincode invoke transaction: request=%j, response=%j", invokeRequest, results)); + }); + invokeTx.on('error', function (err) { + // Invoke transaction submission failed + t.fail(util.format("Failed to submit chaincode invoke transaction: request=%j, error=%j", invokeRequest, err)); + // Exit the test script after a failure + process.exit(1); + }); +}); + +// +// Issue a chaincode invoke to generate event and listen for the event +// by registering with chaincode id and wildcarded event name +// + +test('Generate chaincode event and receive it with wildcard', function (t) { + t.plan(2); + + var evtstring = "event-test"; + // Construct the invoke request + var invokeRequest = { + // Name (hash) required for invoke + chaincodeID: testChaincodeID, + // Function to trigger + fcn: "invoke", + // Parameters for the invoke function + args: [evtstring] + }; + var eh = chain.getEventHub(); + var duration = chain.getInvokeWaitTime() * 1000; + var timedout = true; + var timeoutId = null; + + // register for chaincode event with wildcard event name + var regid = eh.registerChaincodeEvent(testChaincodeID, ".*", function(event) { + timedout = false; + if (timeoutId) { + clearTimeout(timeoutId); + } + t.equal(event.payload.toString(), "Event 2," + evtstring, "Successfully received expected chaincode event payload"); + eh.unregisterChaincodeEvent(regid); + }); + // Trigger the invoke transaction + var invokeTx = test_user_Member1.invoke(invokeRequest); + // set timout on event sent by chaincode invoke + timeoutId = setTimeout(function() { + if(timedout) { + eh.unregisterChaincodeEvent(regid); + t.fail("Failed to receive chaincode event"); + process.exit(1); + } + }, + duration); + + // Print the invoke results + invokeTx.on('complete', function (results) { + // Invoke transaction submitted successfully + t.pass(util.format("Successfully completed chaincode invoke transaction: request=%j, response=%j", invokeRequest, results)); + }); + invokeTx.on('error', function (err) { + // Invoke transaction submission failed + t.fail(util.format("Failed to submit chaincode invoke transaction: request=%j, error=%j", invokeRequest, err)); + // Exit the test script after a failure + process.exit(1); + }); +}); + +// +// Issue a chaincode invoke to generate event and listen for the event +// by registering with chaincode id and a bogus event name +// + +test('Generate an event that fails to be received', function (t) { + t.plan(2); + + var evtstring = "event-test"; + // Construct the invoke request + var invokeRequest = { + // Name (hash) required for invoke + chaincodeID: testChaincodeID, + // Function to trigger + fcn: "invoke", + // Parameters for the invoke function + args: [evtstring] + }; + var eh = chain.getEventHub(); + var duration = chain.getInvokeWaitTime() * 1000; + var timedout = true; + var timeoutId = null; + + // register for chaincode event with bogus event name + var regid = eh.registerChaincodeEvent(testChaincodeID, "bogus", function(event) { + timedout = false; + if (timeoutId) { + clearTimeout(timeoutId); + } + t.fail("Received chaincode event from bogus registration"); + eh.unregisterChaincodeEvent(regid); + process.exit(1); + }); + // Trigger the invoke transaction + var invokeTx = test_user_Member1.invoke(invokeRequest); + // set timout on event sent by chaincode invoke + timeoutId = setTimeout(function() { + if(timedout) { + eh.unregisterChaincodeEvent(regid); + t.pass("Failed to receive chaincode event"); + } + }, + duration); + + // Print the invoke results + invokeTx.on('complete', function (results) { + // Invoke transaction submitted successfully + t.pass(util.format("Successfully completed chaincode invoke transaction: request=%j, response=%j", invokeRequest, results)); + }); + invokeTx.on('error', function (err) { + // Invoke transaction submission failed + t.fail(util.format("Failed to submit chaincode invoke transaction: request=%j, error=%j", invokeRequest, err)); + // Exit the test script after a failure + process.exit(1); + }); +}); + +// +// +// Create and issue a chaincode query request by the test user, who was +// registered and enrolled in the UT above. Query a chaincode for +// number of events generated. +// + +test('Query chaincode state for number of events sent', function (t) { + t.plan(1); + + // Construct the query request + var queryRequest = { + // Name (hash) required for query + chaincodeID: testChaincodeID, + // Function to trigger + fcn: "query", + // Existing state variable to retrieve + args: [""] + }; + + // Trigger the query transaction + var queryTx = test_user_Member1.query(queryRequest); + + // Print the query results + queryTx.on('complete', function (results) { + var result = JSON.parse(results.result.toString()); + var count = parseInt(result.NoEvents); + t.equal(count, 4, "Successfully queried correct number of events generated."); + chain.eventHubDisconnect(); + }); + queryTx.on('error', function (err) { + // Query failed + t.fail(util.format("Failed to query chaincode state: request=%j, error=%j", queryRequest, err)); + t.end(err); + }); +}); + From c7963ea7ebafff2c49353b54c138a027f6996986 Mon Sep 17 00:00:00 2001 From: "Mr. Angry" Date: Mon, 26 Sep 2016 12:31:18 -0400 Subject: [PATCH 21/27] Node.js SDK -- Lock TypeScript Version to 1.8.10 Locking the TypeScript version to 1.8.10, as the newest versions of 2.0.x break the current SDK build. Change-Id: I31ce2322d33d82682dba4657b8c1a416feb0cdc8 Signed-off-by: Anna D Derbakova --- sdk/node/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/node/package.json b/sdk/node/package.json index 3e6df726ac3..b2f689a794e 100644 --- a/sdk/node/package.json +++ b/sdk/node/package.json @@ -28,6 +28,7 @@ "sjcl-codec": "0.1.1", "sleep": "^3.0.1", "tar-fs": "^1.13.0", + "typescript": "1.8.10", "url": "^0.11.0", "util": "^0.10.3", "uuidv4": "^0.3.1" From 0fa60ba28ef4ab2a6a880df29c2ab2c06f9524d0 Mon Sep 17 00:00:00 2001 From: "Mr. Angry" Date: Mon, 26 Sep 2016 14:39:36 -0400 Subject: [PATCH 22/27] Node.js SDK -- Upgrading gRPC Version Upgrading the gRPC package version to 1.0.0 from the outdated pre-release version, which causes compilation failures on Windows. Adding the x509 package that aids with testing. Change-Id: Ie3f4af470981871c583866918f36f17853a601f0 Signed-off-by: Anna D Derbakova --- sdk/node/package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sdk/node/package.json b/sdk/node/package.json index b2f689a794e..259647a1d57 100644 --- a/sdk/node/package.json +++ b/sdk/node/package.json @@ -15,7 +15,7 @@ "es6-set": "^0.1.4", "events": "^1.1.0", "fs": "0.0.2", - "grpc": "^0.13.2-pre1", + "grpc": "1.0.0", "hashtable": "^2.0.2", "js-sha3": "^0.5.1", "json-stringify-safe": "^5.0.1", @@ -34,6 +34,7 @@ "uuidv4": "^0.3.1" }, "devDependencies": { - "tape": "^4.5.1" + "tape": "^4.5.1", + "x509": "^0.2.6" } } From ace314369a8db9d552732823f11967d18291c1b5 Mon Sep 17 00:00:00 2001 From: "Mr. Angry" Date: Fri, 16 Sep 2016 18:08:47 -0400 Subject: [PATCH 23/27] Updating SDK README For NPM Publish Updating the Node.js SDK README file to include the most up to date information and to point to updated Node.js documenation on readthedocs. Also, updating the package.json file to update the package version number as this is being published to NPM. Change-Id: I15dbb9dacf9fb3abc5ab3289f925cc3cc97a1d2b Signed-off-by: Anna D Derbakova --- sdk/node/README.md | 103 ++++++++++++++++++++++++++++++------------ sdk/node/package.json | 15 +++++- 2 files changed, 88 insertions(+), 30 deletions(-) diff --git a/sdk/node/README.md b/sdk/node/README.md index bc127842ed1..81b518688b9 100644 --- a/sdk/node/README.md +++ b/sdk/node/README.md @@ -1,52 +1,99 @@ -## Hyperledger Fabric Client SDK for Node.js +# Hyperledger Fabric Client SDK for Node.js -The Hyperledger Fabric Client SDK (HFC) provides a powerful and easy to use API to interact with a Hyperledger Fabric blockchain. +## Overview -To learn about how to install and use the Node.js SDK, please visit the [fabric documentation](http://hyperledger-fabric.readthedocs.io/en/latest/Setup/NodeSDK-setup). +The Hyperledger Fabric Client SDK (HFC) provides a powerful and easy to use API to interact with a [Hyperledger Fabric](https://www.hyperledger.org/) blockchain from a Node.js application. It provides a set of APIs to register and enroll new network clients, to deploy new chaincodes to the network, and to interact with existing chaincodes through chaincode function invocations and queries. -The [Going Deeper](#going-deeper) section discusses HFC's pluggability and extensibility design. It also describes the main object hierarchy to help you get started in navigating the reference documentation. The top-level class is `Chain`. +To view the complete Node.js SDK documentation, additional usage samples, and getting started materials please visit the Hyperledger Fabric [SDK documentation page](http://hyperledger-fabric.readthedocs.io/en/latest/nodeSDK/node-sdk-guide/). -The [Future Work](#future-work) section describes some upcoming work to be done. +## Installation - **WARNING**: To view the reference documentation correctly, you first need to build the SDK and confirm functionality by [running the unit tests](#running-unit-tests). Subsequently open the following URLs directly in your browser. Be sure to replace YOUR-FABRIC-DIR with the path to your fabric directory. +If you are interfacing with a network running the Hyperledger Fabric [`v0.5-developer-preview`](https://github.com/hyperledger-archives/fabric/tree/v0.5-developer-preview) branch, you must use the hfc version 0.5.x release and install it with the following command: - `file:///YOUR-FABRIC-DIR/sdk/node/doc/modules/_hfc_.html` + npm install hfc@0.5.x - `file:///YOUR-FABRIC-DIR/sdk/node/doc/classes/_hfc_.chain.html` +For networks running newer versions of the Hyperledger Fabric, please install the version of hfc that corresponds to the same version of the Fabric code base. For example, for the Fabric v0.6 branch install hfc with the following command: -### Going Deeper + npm install hfc@0.6.x -#### Pluggability -HFC was designed to support two pluggable components: +## Usage -1. Pluggable key value store which is used to retrieve and store keys associated with a member. The key value store is used to store sensitive private keys, so care must be taken to properly protect access. +### Terminology -2. Pluggable member service which is used to register and enroll members. Member services enables hyperledger to be a permissioned blockchain, providing security services such as anonymity, unlinkability of transactions, and confidentiality +In order to transact on a Hyperledger blockchain, you must first have an identity which is both **registered** and **enrolled**. **Registration** means issuing a user invitation to join a blockchain network. **Enrollment** means accepting a user invitation to join a blockchain network. -#### HFC objects and reference documentation -HFC is written primarily in typescript and is object-oriented. The source can be found in the `fabric/sdk/node/src` directory. +In the current Hyperleger Fabric implementation, the administative user admin is already registered on the network by the virtue of the fact that their user ID and password pair are already added to the membership services server confiruation file, [membersrvc.yaml](https://github.com/hyperledger/fabric/blob/master/membersrvc/membersrvc.yaml). Therefore, the admin user must only enroll to be able to transact on the network. After enrollment, the administrative user is then able to register and enroll new users, in the role of a registrar. New users are added to the network programmatically, through the HFC `chain.registerAndEnroll` API. -To go deeper, you can view the reference documentation in your browser by opening the [reference documentation](doc/modules/_hfc_.html) and clicking on **"hfc"** on the right-hand side under **"Globals"**. This will work after you have built the SDK per the instruction [here](#building-the-client-sdk). +### Example -The following is a high-level description of the HFC objects (classes and interfaces) to help guide you through the object hierarchy. +An example presented in the [SDK documentation](http://hyperledger-fabric.readthedocs.io/en/latest/nodeSDK/sample-standalone-app/) demonstrated a typical application using the hfc. -* The main top-level class is [Chain](doc/classes/_hfc_.chain.html). It is the client's representation of a chain. HFC allows you to interact with multiple chains and to share a single [KeyValStore](doc/interfaces/_hfc_.keyvalstore.html) and [MemberServices](doc/interfaces/_hfc_.memberservices.html) object with multiple Chain objects as needed. For each chain, you add one or more [Peer](doc/classes/_hfc_.peer.html) objects which represents the endpoint(s) to which HFC connects to transact on the chain. +The application sets up a target for the membership service server and enrolls the `admin` user. Subsequently, the admin user is set as the registrar user and registers and enrolls a new member, `JohnDoe`. The new member, `JohnDoe`, is then able to transact on the blockchain by deploying a chaincode, invoking a chaincode function, and querying chaincode state. -* The [KeyValStore](doc/interfaces/_hfc_.keyvalstore.html) is a very simple interface which HFC uses to store and retrieve all persistent data. This data includes private keys, so it is very important to keep this storage secure. The default implementation is a simple file-based version found in the [FileKeyValStore](doc/classes/_hfc_.filekeyvalstore.html) class. +### Chaincode Deployment -* The [MemberServices](doc/interfaces/_hfc_.memberservices.html) interface is implemented by the [MemberServicesImpl](doc/classes/_hfc_.memberservicesimpl.html) class and provides security and identity related features such as privacy, unlinkability, and confidentiality. This implementation issues *ECerts* (enrollment certificates) and *TCerts* (transaction certificates). ECerts are for enrollment identity and TCerts are for transactions. +Chaincode may be deployed in **development** mode or **network** mode. **Development** mode refers to running the chaincode as a stand alone process outside the network peer. This approach is useful while doing chaincode development and testing. The approach is described [here](http://hyperledger-fabric.readthedocs.io/en/latest/Setup/Chaincode-setup/). **Network** mode refers to packaging the chaincode and its dependencies and subsequently deploying the package to an existing network as a Docker container. To have the chaincode deployment with hfc succeed in network mode, you must properly set up the chaincode project and its dependencies. The instructions for doing so can be found in the [Chaincode Deployment](http://hyperledger-fabric.readthedocs.io/en/latest/nodeSDK/node-sdk-indepth/#chaincode-deployment) section of the Node.js SDK documentation page. -* The [Member](doc/classes/_hfc_.member.html) class most often represents an end user who transacts on the chain, but it may also represent other types of members such as peers. From the Member class, you can *register* and *enroll* members or users. This interacts with the [MemberServices](doc/interfaces/_hfc_.memberservices.html) object. You can also deploy, query, and invoke chaincode directly, which interacts with the [Peer](doc/classes/_hfc_.peer.html). The implementation for deploy, query and invoke simply creates a temporary [TransactionContext](doc/classes/_hfc_.transactioncontext.html) object and delegates the work to it. +### Enabling TLS -* The [TransactionContext](doc/classes/_hfc_.transactioncontext.html) class implements the bulk of the deploy, invoke, and query logic. It interacts with MemberServices to get a TCert to perform these operations. Note that there is a one-to-one relationship between TCert and TransactionContext; in other words, a single TransactionContext will always use the same TCert. If you want to issue multiple transactions with the same TCert, then you can get a [TransactionContext](doc/classes/_hfc_.transactioncontext.html) object from a [Member](doc/classes/_hfc_.member.html) object directly and issue multiple deploy, invoke, or query operations on it. Note however that if you do this, these transactions are linkable, which means someone could tell that they came from the same user, though not know which user. For this reason, you will typically just call deploy, invoke, and query on the User or Member object. +If you wish to enable TLS connection between the member services, the peers, and the chaincode container, please see the [Enabling TLS](http://hyperledger-fabric.readthedocs.io/en/latest/nodeSDK/node-sdk-indepth/#enabling-tls) section within the Node.js SDK documentation. -## Future Work -The following is a list of known remaining work to be done. +## Objects, Classes, And Interfaces -* The reference documentation needs to be made simpler to follow as there are currently some internal classes and interfaces that are being exposed. +HFC is written primarily in Typescript and is object-oriented. The source can be found in the [fabric/sdk/node](https://github.com/hyperledger/fabric/tree/master/sdk/node) directory of the Hyperledger Fabric project. To better understand the object hierarchy, please read the high-level descriptions of the HFC objects (classes and interfaces) in the [HFC Objects](http://hyperledger-fabric.readthedocs.io/en/latest/nodeSDK/node-sdk-indepth/#hfc-objects) section within the Node.js SDK documentation. You can also build the complete reference documentation locally by following the instructions [here](http://hyperledger-fabric.readthedocs.io/en/latest/nodeSDK/app-developer-env-setup/). -* We are investigating how to make deployment of a chaincode simpler by not requiring you to set up a specific directory structure with dependencies. +## Unit Tests -* Implement events appropriately, both custom and non-custom. The 'complete' event for `deploy` and `invoke` is currently implemented by simply waiting a set number of seconds (5 for invoke, 20 for deploy). It needs to receive a complete event from the server with the result of the transaction and make this available to the caller. This has not yet been implemented. +HFC includes a set of unit tests implemented with the [tape framework](https://github.com/substack/tape). Currently, the unit tests are designed to run inside the Hyperledger Fabric Vagrant development environment. To run the unit tests, first set up the Hyperledger Fabric Vagrant development environment per the instructions [here](http://hyperledger-fabric.readthedocs.io/en/latest/dev-setup/devenv/). -* Support SHA2. HFC currently supports SHA3. +Launch the Vagrant VM and log into the VM by executing the following command: + + vagrant ssh + +Run the unit tests within the Vagrant environment with the following commands: + + cd $GOPATH/src/github.com/hyperledger/fabric + make node-sdk-unit-tests + +The following are brief descriptions of each of the unit tests that are being run. + +#### registrar + +The [registrar.js](https://github.com/hyperledger/fabric/blob/master/sdk/node/test/unit/registrar.js) test case exercises registering users with the membership services server. It also tests registering a designated registrar user which can then register additional users. + +#### chain-tests + +The [chain-tests.js](https://github.com/hyperledger/fabric/blob/master/sdk/node/test/unit/chain-tests.js) test case exercises the [chaincode_example02.go](https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go/chaincode_example02) chaincode when it has been deployed in both development mode and network mode. + +#### asset-mgmt + +The [asset-mgmt.js](https://github.com/hyperledger/fabric/blob/master/sdk/node/test/unit/asset-mgmt.js) test case exercises the [asset_management.go](https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go/asset_management) chaincode when it has been deployed in both development mode and network mode. + +#### asset-mgmt-with-roles + +The [asset-mgmt-with-roles.js](https://github.com/hyperledger/fabric/blob/master/sdk/node/test/unit/asset-mgmt-with-roles.js) test case exercises the [asset_management_with_roles.go](https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go/asset_management_with_roles) chaincode when it has been deployed in both development mode and network mode. + +## Basic Troubleshooting + +Keep in mind that you can perform the enrollment process with the membership services server only once, as the enrollmentSecret is a one-time-use password. If you have performed a user registration/enrollment with the membership services and subsequently deleted the crypto tokens stored on the client side, the next time you try to enroll, errors similar to the ones below will be seen. + + ``` + Error: identity or token do not match + ``` + ``` + Error: user is already registered + ``` + +To address this, remove any stored crypto material from the CA server by following the instructions [here](https://github.com/hyperledger/fabric/blob/master/docs/Setup/Chaincode-setup.md#removing-temporary-files-when-security-is-enabled). You will also need to remove any of the crypto tokens stored on the client side by deleting the KeyValStore directory. That directory is configurable and is set to `/tmp/keyValStore` within the unit tests. + +## Support + +We use [Hyperledger Slack](https://hyperledgerproject.slack.com/) for communication regarding the SDK and any potential issues. Please join SDK related channels on Slack such as #fabric-sdk and #nodesdk. If you would like to file a bug report or submit a request for a feature please do so on Jira [here](https://jira.hyperledger.org). + +## Contributing + +We welcome any contributions to the Hyperledger Fabric Node.js SDK project. If you would like to contribute please read the contribution guidelines [here](http://hyperledger-fabric.readthedocs.io/en/latest/CONTRIBUTING/) for more information. + +## License + +Contributed to the Hyperledger Project under the [Apache Software License 2.0](https://github.com/hyperledger/fabric/blob/master/LICENSE). diff --git a/sdk/node/package.json b/sdk/node/package.json index 259647a1d57..b5a51318bef 100644 --- a/sdk/node/package.json +++ b/sdk/node/package.json @@ -1,9 +1,19 @@ { "name": "hfc", - "version": "0.0.2", + "version": "0.6.2", + "description": "The Hyperledger Fabric Client SDK (HFC) provides a powerful and easy to use API to interact with a Hyperledger Fabric blockchain.", + "keywords": [ + "hfc", + "hyperledger", + "blockchain" + ], "bin": "./bin/main.js", "typings": "hfc.d.ts", "main": "index.js", + "repository": { + "type": "github", + "url": "https://github.com/hyperledger/fabric" + }, "dependencies": { "aes-js": "^1.0.0", "asn1": "https://github.com/mcavage/node-asn1", @@ -36,5 +46,6 @@ "devDependencies": { "tape": "^4.5.1", "x509": "^0.2.6" - } + }, + "license": "Apache License v2.0" } From 158480cb4cc520ad441991ebc76cebafc50d6be0 Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Fri, 23 Sep 2016 19:03:08 -0400 Subject: [PATCH 24/27] FAB-425 - improve initial experience Improve the documentation to make it easier to find things, and to make the standalone sample development environment more prominent. Fixed broken link to SystemChaincodes/noop.md so that it is integrated into the documentation. Refactored the standalone doc to read better and to limit line length to 80. Added release notes. Changed to starter-kit Change-Id: I8d5f0eb62a6ac2e5e338c3c9e486c4f952f9e0e2 Signed-off-by: Christopher Ferris --- docs/Setup/Chaincode-setup.md | 2 +- .../noop.md => SystemChaincode-noop.md} | 0 docs/index.md | 147 +++++++-------- docs/nodeSDK/node-sdk-self-contained.md | 99 ---------- docs/releases.md | 62 +++++++ docs/starter/fabric-starter-kit.md | 172 ++++++++++++++++++ examples/sdk/node/docker-compose.yml | 7 +- 7 files changed, 306 insertions(+), 183 deletions(-) rename docs/{SystemChaincodes/noop.md => SystemChaincode-noop.md} (100%) mode change 100755 => 100644 docs/index.md delete mode 100755 docs/nodeSDK/node-sdk-self-contained.md create mode 100644 docs/releases.md create mode 100755 docs/starter/fabric-starter-kit.md diff --git a/docs/Setup/Chaincode-setup.md b/docs/Setup/Chaincode-setup.md index 8c4dac74e6b..2acd25c2022 100644 --- a/docs/Setup/Chaincode-setup.md +++ b/docs/Setup/Chaincode-setup.md @@ -4,7 +4,7 @@ Chaincode developers need a way to test and debug their chaincode without having The following instructions apply to _developing_ chaincode in Go or Java. They do not apply to running in a production environment. However, if _developing_ chaincode in Java, please see the [Java chaincode setup](https://github.com/hyperledger/fabric/blob/master/docs/Setup/JAVAChaincode.md) instructions first, to be sure your environment is properly configured. -**Note:** We have added support for [System chaincode](https://github.com/hyperledger/fabric/blob/master/docs/SystemChaincodes/noop.md). +**Note:** We have added support for [System chaincode](https://github.com/hyperledger/fabric/blob/master/docs/SystemChaincode-noop.md). ## Choices diff --git a/docs/SystemChaincodes/noop.md b/docs/SystemChaincode-noop.md similarity index 100% rename from docs/SystemChaincodes/noop.md rename to docs/SystemChaincode-noop.md diff --git a/docs/index.md b/docs/index.md old mode 100755 new mode 100644 index 6d4d23ba778..b67bf2b8f1b --- a/docs/index.md +++ b/docs/index.md @@ -19,21 +19,25 @@ to host any mainstream language for smart contracts development. ## Releases -The fabric releases are documented -[here](https://github.com/hyperledger/fabric/wiki/Fabric-Releases). We have just -released our first release under the governance of the Hyperledger Project - -v0.5-developer-preview. +The fabric releases are documented [here](releases.md). We have just +released our second release under the governance of the Hyperledger Project - +v0.6-preview. + +## Fabric Starter Kit + +If you'd like to dive right in and get an operational experience on your local +server or laptop to begin development, we have just the thing for you. We have +created a standalone Docker-based [starter kit](Starter/fabric-starter-kit.md) +that leverages the latest published Docker images that you can run on your +laptop and be up and running in no time. That should get you going with a +sample application and some simple chaincode. From there, you can go deeper +by exploring our [developer guides](#developer-guides). ## Contributing to the project We welcome contributions to the Hyperledger Project in many forms. There's always plenty to do! Full details of how to contribute to this project are -documented in the [Fabric developer's guide](#fabric-developer-guide) below. - -To contribute to this documentation, create an issue for any requests for -clarification or to highlight any errors, or you may clone and update the -[source](https://gerrit.hyperledger.org/r/#/admin/projects/fabric), and submit a -Gerrit review (essentially the same process as for fabric development). +documented in the [Fabric developer's guide](#fabric-developer's-guide) below. ## Maintainers @@ -45,42 +49,46 @@ Project's Technical Steering Committee (TSC). ## Communication We use [Hyperledger Slack](https://slack.hyperledger.org/) for communication and -Google Hangouts™ for screen sharing between developers. +Google Hangouts™ for screen sharing between developers. Our development +planning and prioritization is done in [JIRA](https://jira.hyperledger.org), +and we take longer running discussions/decisions to the +[mailing list](http://lists.hyperledger.org/mailman/listinfo/hyperledger-fabric). + +## Still Have Questions? +We try to maintain a comprehensive set of documentation (see below) for various audiences. +However, we realize that often there are questions that remain unanswered. For +any technical questions relating to the Hyperledger Fabric project not answered +in this documentation, please use +[StackOverflow](http://stackoverflow.com/questions/tagged/hyperledger). If you +need help finding things, please don't hesitate to send a note to the +[mailing list](http://lists.hyperledger.org/mailman/listinfo/hyperledger-fabric), +or ask on [Slack]((https://slack.hyperledger.org/)). # Hyperledger Fabric Documentation -The Hyperledger -[fabric](https://gerrit.hyperledger.org/r/#/admin/projects/fabric) is an -implementation of blockchain technology, that has been collaboratively developed -under the Linux Foundation's [Hyperledger Project](http://hyperledger.org). It -leverages familiar and proven technologies, and offers a modular architecture +The Hyperledger fabric is an implementation of blockchain technology, that has +been collaboratively developed under the Linux Foundation's +[Hyperledger Project](http://hyperledger.org). It leverages familiar and +proven technologies, and offers a modular architecture that allows pluggable implementations of various function including membership services, consensus, and smart contracts (Chaincode) execution. It features powerful container technology to host any mainstream language for smart contracts development. -## Still Have Questions? -We try to maintain a comprehensive set of documentation for various audiences. -However, we realize that often there are questions that remain unanswered. For -any technical questions relating to the Hyperledger Fabric project not answered -in this documentation, please use -[StackOverflow](http://stackoverflow.com/questions/tagged/hyperledger). - -## TOC +## Table of Contents Below, you'll find the following sections: -- [Getting started](#getting-started) -- [Quickstart](#quickstart-documentation) +- [Read All About It](#read-all-about-it) - [Developer guides](#developer-guides) - - [Fabric developer's guide](#fabric-developer-guide) - [Chaincode developer's guide](#chaincode-developer-guide) - - [API developer's guide](#api-developer-guide) + - [Application developer's guide](#application-developer-guide) + - [Fabric developer's guide](#fabric-developer-guide) - [Operations guide](#operations-guide) -# Getting started +## Read all about it If you are new to the project, you can begin by reviewing the following links. If you'd prefer to dive right in, see the @@ -96,47 +104,8 @@ where the community is developing use cases and requirements. the Fabric project's documentation. - [Fabric FAQs](https://github.com/hyperledger/fabric/tree/master/docs/FAQ) -# Quickstart documentation - -- [Development environment set-up](dev-setup/devenv.md): if you are considering -helping with development of the Hyperledger Fabric or Fabric-API projects -themselves, this guide will help you install and configure all you'll need. The -development environment is also useful (but, not necessary) for developing -blockchain applications and/or Chaincode. -- [Network setup](Setup/Network-setup.md): This document covers setting up a -network on your local machine for development. -- [Chaincode development environment](Setup/Chaincode-setup.md): Chaincode -developers need a way to test and debug their Chaincode without having to set up -a complete peer network. This document describes how to write, build, and test -Chaincode in a local development environment. -- [APIs](API/CoreAPI.md): This document covers the available APIs for -interacting with a peer node. - # Developer guides -## Fabric developer guide - -When you are ready to start contributing to the Hyperledger fabric project, we -strongly recommend that you read the [protocol specification](protocol-spec.md) -for the technical details so that you have a better understanding of how the -code fits together. - -- [Making code contributions](CONTRIBUTING.md): First, you'll want to familiarize -yourself with the project's contribution guidelines. -- [Setting up the development environment](dev-setup/devenv.md): after that, you -will want to set up your development environment. -- [Building the fabric core](dev-setup/build.md): next, try building the project -in your local development environment to ensure that everything is set up -correctly. -- [Building outside of Vagrant](dev-setup/build.md#building-outside-of-vagrant): -for the adventurous, you might try to build outside of the standard Vagrant -development environment. -- [Logging control](Setup/logging-control.md): describes how to tweak the logging -levels of various components within the fabric. -- [License header](dev-setup/headers.txt): every source file must include this -license header modified to include a copyright statement for the principle -author(s). - ## Chaincode developer guide - [Setting up the development environment](dev-setup/devenv.md): when developing @@ -152,22 +121,40 @@ testing Chaincode. - [Chaincode FAQ](FAQ/chaincode_FAQ.md): a FAQ for all of your burning questions relating to Chaincode. -## API developer guide +## Application developer guide + + - [APIs - CLI, REST, and Node.js](API/CoreAPI.md) + - [CLI](API/CoreAPI.md#cli): working with the command-line interface. + - [REST](API/CoreAPI.md#rest-api): working with the REST API (*deprecated*). + - [Node.js SDK](nodeSDK/node-sdk-guide.md): working with the Node.js SDK. + +## Fabric developer guide -- [APIs - CLI, REST, and Node.js](API/CoreAPI.md) - - [CLI](API/CoreAPI.md#cli): working with the command-line interface. - - [REST](API/CoreAPI.md#rest-api): working with the REST API. - - [Node.js SDK](nodeSDK/node-sdk-guide.md): working with the Node.js SDK. + - [Making code contributions](CONTRIBUTING.md): First, you'll want to familiarize + yourself with the project's contribution guidelines. + - [Setting up the development environment](dev-setup/devenv.md): after that, you + will want to set up your development environment. + - [Building the fabric core](dev-setup/build.md): next, try building the project + in your local development environment to ensure that everything is set up + correctly. + - [Building outside of Vagrant](dev-setup/build.md#building-outside-of-vagrant): + for the *adventurous*, you might try to build outside of the standard Vagrant + development environment. + - [Logging control](Setup/logging-control.md): describes how to tweak the logging + levels of various components within the fabric. + - [License header](dev-setup/headers.txt): every source file must include this + license header modified to include a copyright statement for the principle + author(s). # Operations guide -- [Setting Up a Network](Setup/Network-setup.md): instructions for setting up a -network of fabric peers. -- [Certificate Authority (CA) Setup](Setup/ca-setup.md): setting up a CA to -support identity, security (authentication/authorization), privacy and -confidentiality. -- [Application ACL](tech/application-ACL.md): working with access control lists. + - [Setting Up a Network](Setup/Network-setup.md): instructions for setting up a + network of fabric peers. + - [Certificate Authority (CA) Setup](Setup/ca-setup.md): setting up a CA to + support identity, security (authentication/authorization), privacy and + confidentiality. + - [Application ACL](tech/application-ACL.md): working with access control lists. -## License +# License The Hyperledger Project uses the [Apache License Version 2.0](LICENSE) software license. diff --git a/docs/nodeSDK/node-sdk-self-contained.md b/docs/nodeSDK/node-sdk-self-contained.md deleted file mode 100755 index 08c6e4fac48..00000000000 --- a/docs/nodeSDK/node-sdk-self-contained.md +++ /dev/null @@ -1,99 +0,0 @@ -# Self Contained Node.js Environment - -This section describes how to set up a self contained environment for Node.js application development with the Hyperledger Fabric Node.js SDK. The setup uses **Docker** to provide a controlled environment with all the necessary Hyperledger fabric components to support a Node.js application. There are three **Docker** images that when run will provide a blockchain network environment. There is an image to run a single **Peer**, one to run the **Member Services** and one to run both a Node.js application and the sample chaincode. See [Application Developer's Overview](app-overview.md) on how the components running within the containers will communicate. The sample comes with a sample Node.js application ready to execute and sample chaincode. The sample will be running in developer mode where the chaincode has been built and started prior to the application call to deploy it. The deployment of chaincode in network mode requires that the Hyperledger Fabric Node.js SDK has access to the chaincode source code and all of its dependant code, in order to properly build a deploy request. It also requires that the **peer** have access to **docker** functions to be able to build and deploy the new **docker** image that will run the chaincode. This is a more complicated configuration and not suitable to an introduction to the Hyperledger Fabric Node.js SDK. - -**note:** This sample was prepared using Docker for Mac 1.12.0 - -* Prerequisite software to install: - - * Docker - * docker-compose (may be packaged with Docker) - -* Copy our [docker-compose.yml](https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/docker-compose.yml) file to a local directory: - -``` - curl -o docker-compose.yml https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/docker-compose.yml -``` -* **Optionally** build your own docker images. - The docker compose environment uses three docker images. If you wish to customize and build your own docker images. The following [Dockerfile](https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/Dockerfile) - was used to build the **nodesdk** image and may be used as a starting point to your own customizations. -``` - curl -o Dockerfile https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/Dockerfile - docker build -t hyperledger/fabric-node-sdk:latest . -``` - -* Start the fabric network environment using docker-compose. From a terminal session that has the working directory of where the above *docker-compose.yml* is located, execute one of following **docker-compose** commands. - - * to run as detached containers: - ``` - docker-compose up -d - ``` - **note:** to see the logs for the **peer** container use the `docker logs peer` command - - * to run in the foreground and see the log output in the current terminal session: - ``` - docker-compose up - ``` - - Both commands will start three docker containers, to view the container status try `docker ps` command. The first time this is run the **docker** images will be downloaded. This may take 10 minutes or more depending on the network connections of the system running the command. - ``` - docker ps - ``` - - You should see something like the following: - ``` - CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES - bb01a2fa96ef hyperledger/fabric-node-sdk "sh -c 'sleep 20; /op" About a minute ago Up 59 seconds nodesdk - ec7572e65f12 hyperledger/fabric-peer "sh -c 'sleep 10; pee" About a minute ago Up About a minute peer - 118ef6da1709 hyperledger/fabric-membersrvc "membersrvc" About a minute ago Up About a minute membersrvc - ``` - -* Start a terminal session in the **nodesdk** container. This is where the Node.js application is located. - - **note:** Be sure to wait 20 seconds after starting the network using the `docker-compose up` command before executing the following command to allow the network to initialize. - -``` - docker exec -it nodesdk /bin/bash -``` - -* From the terminal session in the **nodesdk** container execute the standalone Node.js application. The docker terminal session should be in the working directory of the sample application called **app.js** (*/opt/gopath/src/github.com/hyperledger/fabric/examples/sdk/node*). Execute the following Node.js command to run the application. - -``` - node app -``` - In another terminal session on the host you can view the logs for the peer by executing the following command (not in the docker shell above, in a new terminal session of the real system) -``` - docker logs peer -``` - -* If you wish to run your own Node.js application using the pre build docker images: - * use the directories in the `volumes` tag under **nodesdk** in the `docker-compose.yml` file as a place to store your programs from the host system into the docker container. The first path is the top level system (host system) and the second is created in the docker container. If you wish to use a host location that is not under the `/Users` directory (`~` is under `/Users') then you must add that to the **docker** file sharing under **docker** preferences. - -```yaml - volumes: - - ~/mytest:/user/mytest -``` - * copy or create and edit your application in the `~/mytest` directory as stated in the `docker-compose.yml` `volumes` tag under **nodesdk** container. - * run npm to install Hyperledger Fabric Node.js SDK in the `mytest` directory -``` - npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node -``` - * run the application from within the **nodesdk** docker container using the commands -``` - docker exec -it nodesdk /bin/bash -``` - once in the shell, and assuming your Node.js application is called `app.js` -``` - cd /user/mytest - node app -``` -* To shutdown the environment, execute the following **docker-compose** command in the directory where the *docker-compose.yml* is located. Any changes you made to the sample application or deployment of a chaincode will be lost. Only changes made to the shared area defined in the 'volumes' tag of the **nodesdk** container will persist. This will shutdown each of the containers and remove the containers from **docker**: - -``` - docker-compose down -``` - or if you wish to keep your changes and just stop the containers, which will be restarted on the next `up` command - -``` - docker-compose kill -``` diff --git a/docs/releases.md b/docs/releases.md new file mode 100644 index 00000000000..51ba90eadfc --- /dev/null +++ b/docs/releases.md @@ -0,0 +1,62 @@ + + +[v0.6-preview](https://github.com/hyperledger/fabric/tree/v0.6) September 16, 2016 + +A developer preview release of the Hyperledger Fabric intended +to exercise the release logistics and stabilize a set of capabilities for +developers to try out. This will be the last release under the original +architecture. All subsequent releases will deliver on the +[v1.0 architecture](TODO). + +Key enhancements: + +* 8de58ed - NodeSDK doc changes -- FAB-146 +* 62d866d - Add flow control to SYNC_STATE_SNAPSHOT +* 4d97069 - Adding TLS changes to SDK +* e9d3ac2 - Node-SDK: add support for fabric events(block, chaincode, transactional) +* 7ed9533 - Allow deploying Java chaincode from remote git repositories +* 4bf9b93 - Move Docker-Compose files into their own folder +* ce9fcdc - Print ChaincodeName when deploy with CLI +* 4fa1360 - Upgrade go protobuf from 3-beta to 3 +* 4b13232 - Table implementation in java shim with example +* df741bc - Add support for dynamically registering a user with attributes +* 4203ea8 - Check for duplicates when adding peers to the chain +* 518f3c9 - Update docker openjdk image +* 47053cd - Add GetTxID function to Stub interface (FAB-306) +* ac182fa - Remove deprecated devops REST API +* ad4645d - Support hyperledger fabric build on ppc64le platform +* 21a4a8a - SDK now properly adding a peer with an invalid URL +* 1d8114f - Fix setting of watermark on restore from crash +* a98c59a - Upgrade go protobuff from 3-beta to 3 +* 937039c - DEVENV: Provide strong feedback when provisioning fails +* d74b1c5 - Make pbft broadcast timeout configurable +* 97ed71f - Java shim/chaincode project reorg, separate java docker env +* a76dd3d - Start container with HostConfig was deprecated since v1.10 and removed since v1.12 +* 8b63a26 - Add ability to unregister for events +* 3f5b2fa - Add automatic peer command detection +* 6daedfd - Re-enable sending of chaincode events +* b39c93a - Update Cobra and pflag vendor libraries +* dad7a9d - Reassign port numbers to 7050-7060 range + +[v0.5-developer-preview](https://github.com/hyperledger-archives/fabric/tree/v0.5-developer-preview) +June 17, 2016 + +A developer preview release of the Hyperledger Fabric intended +to exercise the release logistics and stabilize a set of capabilities for +developers to try out. + +Key features: + +Permissioned blockchain with immediate finality +Chaincode (aka smart contract) execution environments +Docker container (user chaincode) +In-process with peer (system chaincode) +Pluggable consensus with PBFT, NOOPS (development mode), SIEVE (prototype) +Event framework supports pre-defined and custom events +Client SDK (Node.js), basic REST APIs and CLIs +Known Key Bugs and work in progress + +* 1895 - Client SDK interfaces may crash if wrong parameter specified +* 1901 - Slow response after a few hours of stress testing +* 1911 - Missing peer event listener on the client SDK +* 889 - The attributes in the TCert are not encrypted. This work is still on-going diff --git a/docs/starter/fabric-starter-kit.md b/docs/starter/fabric-starter-kit.md new file mode 100755 index 00000000000..3ddce81b0d6 --- /dev/null +++ b/docs/starter/fabric-starter-kit.md @@ -0,0 +1,172 @@ +# Fabric Starter Kit + +This section describes how to set up a self contained environment for +application development with the Hyperledger Fabric. The setup +uses **Docker** to provide a controlled environment with all the necessary +Hyperledger fabric components to support a Node.js application built with +the fabric's Node.js SDK, and chaincode written in Go. + +There are three Docker images that, when run, will provide a basic +network environment. There is an image to run a single `peer`, one to run +the `membersrvc` and one to run both your Node.js application and the your +chaincode. See [Application Developer's Overview](app-overview.md) on how the +components running within the containers will communicate. + +The starter kit comes with a sample Node.js application ready to execute and +sample chaincode. The starter kit will be running in chaincode developer mode. +In this mode, the chaincode is built and started prior to the application +making a call to deploy it. + +**Note:** The deployment of chaincode in network mode requires that the +Hyperledger Fabric Node.js SDK has access to the chaincode source code and all +of its dependencies, in order to properly build a deploy request. It also +requires that the `peer` have access to the Docker daemon to be able to build +and deploy the new Docker image that will run the chaincode. *This is a more +complicated configuration and not suitable to an introduction to the +Hyperledger fabric.* We recommend first running in chaincode development mode. + +## Further exploration + +If you wish, there are a number of chaincode examples near by. + + `cd ../../chaincode` + +## Getting started + +**Note:** This sample was prepared using Docker for Mac 1.12.0 + +* Prerequisite software to install: + + * [Docker](https://www.docker.com/products/overview) + * docker-compose (may be packaged with Docker) + +* Copy our [docker-compose.yml](https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/docker-compose.yml) file to a local directory: + +``` + curl -o docker-compose.yml https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/docker-compose.yml +``` + The docker compose environment uses three docker images. Two are published to + DockerHub. However, the third, we provide you the source to build your own, + so that you can customize to inject your application code for development, + the following [Dockerfile](https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/Dockerfile) + is used to build the base **fabric-starter-kit** image and may be used as + a starting point for your own customizations. + +``` + curl -o Dockerfile https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/Dockerfile + docker build -t hyperledger/fabric-starter-kit:latest . +``` + +* Start the fabric network environment using docker-compose. From a terminal +session that has the working directory of where the above *docker-compose.yml* +is located, execute one of following `docker-compose` commands. + + * to run as detached containers: + + ``` + docker-compose up -d + ``` + **note:** to see the logs for the `peer` container use the + `docker logs peer` command + + * to run in the foreground and see the log output in the current terminal + session: + + ``` + docker-compose up + ``` + + Both commands will start three docker containers, to view the container + status try `docker ps` command. The first time this is run the Docker + images will be downloaded. This may take 10 minutes or more depending on the + network connections of the system running the command. + + ``` + docker ps + ``` + + You should see something like the following: + + ``` + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + bb01a2fa96ef hyperledger/fabric-starter-kit "sh -c 'sleep 20; /op" About a minute ago Up 59 seconds starter + ec7572e65f12 hyperledger/fabric-peer "sh -c 'sleep 10; pee" About a minute ago Up About a minute peer + 118ef6da1709 hyperledger/fabric-membersrvc "membersrvc" About a minute ago Up About a minute membersrvc + ``` + +* Start a terminal session in the **starter** container. This is where the +Node.js application is located. + + **note:** Be sure to wait 20 seconds after starting the network using the + `docker-compose up` command before executing the following command to allow + the network to initialize. + +``` + docker exec -it starter /bin/bash +``` + +* From the terminal session in the **starter** container execute the standalone +Node.js application. The docker terminal session should be in the working +directory of the sample application called **app.js** (*/opt/gopath/src/github.com/hyperledger/fabric/examples/sdk/node*). Execute +the following Node.js command to run the application. + +``` + node app +``` + In another terminal session on the host you can view the logs for the peer + by executing the following command (not in the docker shell above, in a new + terminal session of the real system) + +``` + docker logs peer +``` + +* If you wish to run your own Node.js application using the pre build docker +images: + * use the directories in the `volumes` tag under **starter** in the + `docker-compose.yml` file as a place to store your programs from the host + system into the docker container. The first path is the top level system + (host system) and the second is created in the docker container. If you wish + to use a host location that is not under the `/Users` directory (`~` is + under `/Users') then you must add that to the Docker file sharing + under Docker preferences. + +```yaml + volumes: + - ~/mytest:/user/mytest +``` + * copy or create and edit your application in the `~/mytest` directory as + stated in the `docker-compose.yml` `volumes` tag under **starter** container. + * run npm to install Hyperledger Fabric Node.js SDK in the `mytest` directory + +``` + npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node +``` + * run the application from within the **starter** Docker container using the + commands + +``` + docker exec -it starter /bin/bash +``` + once in the shell, and assuming your Node.js application is called `app.js` + +``` + cd /user/mytest + node app +``` +* To shutdown the environment, execute the following **docker-compose** command +in the directory where the *docker-compose.yml* is located. Any changes you made +to the sample application or deployment of a chaincode will be lost. Only +changes made to the shared area defined in the 'volumes' tag of the **starter** +container will persist. This will shutdown each of the containers and remove +the containers from Docker: + +``` + docker-compose down +``` + or if you wish to keep your changes and just stop the containers, which will + be restarted on the next `up` command + +``` + docker-compose kill +``` diff --git a/examples/sdk/node/docker-compose.yml b/examples/sdk/node/docker-compose.yml index 2000c854798..64302ade722 100644 --- a/examples/sdk/node/docker-compose.yml +++ b/examples/sdk/node/docker-compose.yml @@ -27,10 +27,11 @@ peer: links: - membersrvc -nodesdk: - container_name: nodesdk - image: hyperledger/fabric-node-sdk +starter: + container_name: starter + image: hyperledger/fabric-starter-kit volumes: + # tweak this to map a local developmnt directory tree into the container - ~/mytest:/user/mytest environment: - MEMBERSRVC_ADDRESS=membersrvc:7054 From 79589a59fa5c972ca72387901fa6835004d6cf8a Mon Sep 17 00:00:00 2001 From: Satheesh Kathamuthu Date: Wed, 28 Sep 2016 18:30:21 +0530 Subject: [PATCH 25/27] Java shim build update in DEV mode Modify build instruction for Java shim to reflect publishing shim-client.jar to local Maven repo FIX FAB-439 https://jira.hyperledger.org/browse/FAB-439 Change-Id: I2a2e87cad0fb7bc386f107e75389ffceafe3977c Signed-off-by: Satheesh Kathamuthu --- docs/Setup/JAVAChaincode.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/Setup/JAVAChaincode.md b/docs/Setup/JAVAChaincode.md index b62857b6140..519420126e7 100644 --- a/docs/Setup/JAVAChaincode.md +++ b/docs/Setup/JAVAChaincode.md @@ -74,15 +74,20 @@ Note: This guide generally assumes you have followed the Chaincode development e make peer peer node start --peer-chaincodedev ``` -3. Open the second Vagrant terminal, and change to Java shim root folder and run gradle build, +3. Open the second Vagrant terminal and build the Java shim layer and publish it to Local Maven Repo +``` +cd $GOPATH/src/github.com/hyperledger/fabric/core/chaincode/shim/java +gradle -b build.gradle clean +gradle -b build.gradle build +``` +4. Change to examples folder to build and run, ``` cd $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/java/SimpleSample gradle -b build.gradle build ``` -4. Run the SimpleSample chaincode using the `gradle -b build.gradle run` - -5. Open the third Vagrant terminal to run init and invoke on the chaincode +5. Run the SimpleSample chaincode using the `gradle -b build.gradle run` +6. Open the third Vagrant terminal to run init and invoke on the chaincode peer chaincode deploy -l java -n SimpleSample -c '{"Args": ["init", "a","100", "b", "200"]}' ``` From 42ca84b78b9bb9fa29ea8008a7e53a7b01420591 Mon Sep 17 00:00:00 2001 From: rameshthoomu Date: Wed, 28 Sep 2016 10:26:54 -0400 Subject: [PATCH 26/27] FAB-506 broken links fixes and added new targets fixed broken links and added new targets (Releases, Fabric Starter kit & SystemChaincode) in mkdocs.yml. Also fixed some formatting errors in fabric-starter-kit.md Change-Id: Ia5736bd258ef3bd2e1bb6575af605da35f62ea0a Signed-off-by: rameshthoomu --- docs/API/CoreAPI.md | 39 ++++++++++++++++------------ docs/index.md | 14 +++++----- docs/starter/fabric-starter-kit.md | 41 +++++++++++++++--------------- mkdocs.yml | 10 +++++--- 4 files changed, 57 insertions(+), 47 deletions(-) diff --git a/docs/API/CoreAPI.md b/docs/API/CoreAPI.md index 200ae9f628e..ab6eb9d8ae7 100644 --- a/docs/API/CoreAPI.md +++ b/docs/API/CoreAPI.md @@ -7,9 +7,9 @@ This document covers the available APIs for interacting with a peer node. Three 1. [CLI](#cli) 2. [REST API](#rest-api) 3. [Node.js Application](#nodejs-application) - * [Using Swagger JS Plugin](#using-swagger-js-plugin) - * [Marbles Demo Application](#marbles-demo-application) - * [Commercial Paper Demo Application](#commercial-paper-demo-application) + * [Using Swagger JS Plugin](#using-swagger-js-plugin) + * [Marbles Demo Application](#marbles-demo-application) + * [Commercial Paper Demo Application](#commercial-paper-demo-application) **Note:** If you are working with APIs with security enabled, please review the [security setup instructions](https://github.com/hyperledger/fabric/blob/master/docs/Setup/Chaincode-setup.md#security-setup-optional) before proceeding. @@ -68,21 +68,28 @@ Command | **stdout** result in the event of success Deploy creates the docker image for the chaincode and subsequently deploys the package to the validating peer. An example is below. -`peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'` - +``` +peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}' +``` Or: -`peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args": ["init", "a","100", "b", "200"]}'` +``` +peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args": ["init", "a","100", "b", "200"]}' +``` The response to the chaincode deploy command will contain the chaincode identifier (hash) which will be required on subsequent `chaincode invoke` and `chaincode query` commands in order to identify the deployed chaincode. With security enabled, modify the command to include the -u parameter passing the username of a logged in user as follows: -`peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'` +``` +peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}' +``` Or: -`peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args": ["init", "a","100", "b", "200"]}'` +``` +peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args": ["init", "a","100", "b", "200"]}' +``` **Note:** If your GOPATH environment variable contains more than one element, the chaincode must be found in the first one or deployment will fail. @@ -165,19 +172,19 @@ You can work with the REST API through any tool of your choice. For example, the To learn about the REST API through Swagger, please take a look at the Swagger document [here](https://github.com/hyperledger/fabric/blob/master/core/rest/rest_api.json). You can upload the service description file to the Swagger service directly or, if you prefer, you can set up Swagger locally by following the instructions [here](#to-set-up-swagger-ui). * [Block](#block) - * GET /chain/blocks/{Block} + * GET /chain/blocks/{Block} * [Blockchain](#blockchain) - * GET /chain + * GET /chain * [Chaincode](#chaincode) * POST /chaincode * [Network](#network) - * GET /network/peers + * GET /network/peers * [Registrar](#registrar) - * POST /registrar - * DELETE /registrar/{enrollmentID} - * GET /registrar/{enrollmentID} - * GET /registrar/{enrollmentID}/ecert - * GET /registrar/{enrollmentID}/tcert + * POST /registrar + * DELETE /registrar/{enrollmentID} + * GET /registrar/{enrollmentID} + * GET /registrar/{enrollmentID}/ecert + * GET /registrar/{enrollmentID}/tcert * [Transactions](#transactions) * GET /transactions/{UUID} diff --git a/docs/index.md b/docs/index.md index b67bf2b8f1b..d9f5b96041f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -27,7 +27,7 @@ v0.6-preview. If you'd like to dive right in and get an operational experience on your local server or laptop to begin development, we have just the thing for you. We have -created a standalone Docker-based [starter kit](Starter/fabric-starter-kit.md) +created a standalone Docker-based [starter kit](starter/fabric-starter-kit.md) that leverages the latest published Docker images that you can run on your laptop and be up and running in no time. That should get you going with a sample application and some simple chaincode. From there, you can go deeper @@ -122,14 +122,14 @@ testing Chaincode. relating to Chaincode. ## Application developer guide - +``` - [APIs - CLI, REST, and Node.js](API/CoreAPI.md) - [CLI](API/CoreAPI.md#cli): working with the command-line interface. - [REST](API/CoreAPI.md#rest-api): working with the REST API (*deprecated*). - [Node.js SDK](nodeSDK/node-sdk-guide.md): working with the Node.js SDK. - +``` ## Fabric developer guide - +``` - [Making code contributions](CONTRIBUTING.md): First, you'll want to familiarize yourself with the project's contribution guidelines. - [Setting up the development environment](dev-setup/devenv.md): after that, you @@ -145,16 +145,16 @@ relating to Chaincode. - [License header](dev-setup/headers.txt): every source file must include this license header modified to include a copyright statement for the principle author(s). - +``` # Operations guide - +``` - [Setting Up a Network](Setup/Network-setup.md): instructions for setting up a network of fabric peers. - [Certificate Authority (CA) Setup](Setup/ca-setup.md): setting up a CA to support identity, security (authentication/authorization), privacy and confidentiality. - [Application ACL](tech/application-ACL.md): working with access control lists. - +``` # License The Hyperledger Project uses the [Apache License Version 2.0](LICENSE) software license. diff --git a/docs/starter/fabric-starter-kit.md b/docs/starter/fabric-starter-kit.md index 3ddce81b0d6..94d0d912ff1 100755 --- a/docs/starter/fabric-starter-kit.md +++ b/docs/starter/fabric-starter-kit.md @@ -9,7 +9,7 @@ the fabric's Node.js SDK, and chaincode written in Go. There are three Docker images that, when run, will provide a basic network environment. There is an image to run a single `peer`, one to run the `membersrvc` and one to run both your Node.js application and the your -chaincode. See [Application Developer's Overview](app-overview.md) on how the +chaincode. See [Application Developer's Overview](../nodeSDK/app-overview.md) on how the components running within the containers will communicate. The starter kit comes with a sample Node.js application ready to execute and @@ -28,9 +28,9 @@ Hyperledger fabric.* We recommend first running in chaincode development mode. ## Further exploration If you wish, there are a number of chaincode examples near by. - - `cd ../../chaincode` - +``` + cd ../../chaincode +``` ## Getting started **Note:** This sample was prepared using Docker for Mac 1.12.0 @@ -63,36 +63,35 @@ is located, execute one of following `docker-compose` commands. * to run as detached containers: - ``` - docker-compose up -d - ``` +``` + docker-compose up -d +``` **note:** to see the logs for the `peer` container use the `docker logs peer` command * to run in the foreground and see the log output in the current terminal session: - ``` - docker-compose up - ``` +``` + docker-compose up +``` Both commands will start three docker containers, to view the container status try `docker ps` command. The first time this is run the Docker images will be downloaded. This may take 10 minutes or more depending on the network connections of the system running the command. - ``` - docker ps - ``` - - You should see something like the following: +``` + docker ps +``` + You should see something like the following: - ``` - CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES - bb01a2fa96ef hyperledger/fabric-starter-kit "sh -c 'sleep 20; /op" About a minute ago Up 59 seconds starter - ec7572e65f12 hyperledger/fabric-peer "sh -c 'sleep 10; pee" About a minute ago Up About a minute peer - 118ef6da1709 hyperledger/fabric-membersrvc "membersrvc" About a minute ago Up About a minute membersrvc - ``` +``` + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + bb01a2fa96ef hyperledger/fabric-starter-kit "sh -c 'sleep 20; /op" About a minute ago Up 59 seconds starter + ec7572e65f12 hyperledger/fabric-peer "sh -c 'sleep 10; pee" About a minute ago Up About a minute peer + 118ef6da1709 hyperledger/fabric-membersrvc "membersrvc" About a minute ago Up About a minute membersrvc +``` * Start a terminal session in the **starter** container. This is where the Node.js application is located. diff --git a/mkdocs.yml b/mkdocs.yml index 0af47abc745..a9586af14fa 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -11,6 +11,7 @@ pages: - Glossary: glossary.md - Protocol Spec: protocol-spec.md - Usecases: biz/usecases.md +- System Chaincode: SystemChaincode-noop.md - Installation and setup: - Chaincode or Application Developer Setup: Setup/Chaincode-setup.md @@ -24,7 +25,6 @@ pages: - Chaincode APIs: API/ChaincodeAPI.md - Core API: API/CoreAPI.md - CA API: API/MemberServicesAPI.md - - System Chaincode: SystemChaincodes/noop.md - Fabric Developer: - v1.0 Preview: abstract_v1.md @@ -37,7 +37,7 @@ pages: - Maintainers: MAINTAINERS.md - Reviewing: Gerrit/reviewing.md - Changes: Gerrit/changes.md - - Style guides: +- Style guides: - Golang: Style-guides/go-style.md - FAQ: @@ -57,10 +57,14 @@ pages: - App-Overview: nodeSDK/app-overview.md - Node-SDK-guide: nodeSDK/node-sdk-guide.md - Node-SDK-indepth: nodeSDK/node-sdk-indepth.md - - Node-SDK-self-contained: nodeSDK/node-sdk-self-contained.md - Sample-Standalone-app: nodeSDK/sample-standalone-app.md - Sample-web-app: nodeSDK/sample-web-app.md +- Starter Kit: + - Starter Kit: starter/fabric-starter-kit.md + +- Releases: releases.md + markdown_extensions: - extra - tables From a96b9edc80e862065cc9bf3404b3bb5e1301f094 Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Sat, 1 Oct 2016 14:45:16 +0200 Subject: [PATCH 27/27] Fix FAB-578 Fix FAB-578 incorrect chaincode signature in REST API fix rest_api.json Change-Id: If2258b09d89a79cdfa73e6897af737a5286ec436 Signed-off-by: Christopher Ferris --- core/rest/rest_api.json | 12 +++--------- docs/API/CoreAPI.md | 18 ++++++------------ 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/core/rest/rest_api.json b/core/rest/rest_api.json index 7bcd6e2bb1c..75ee953a86f 100644 --- a/core/rest/rest_api.json +++ b/core/rest/rest_api.json @@ -451,15 +451,9 @@ "type": "object", "properties": { "type": { - "type": "string", - "default": "GOLANG", - "example": "GOLANG", - "enum":[ - "UNDEFINED", - "GOLANG", - "NODE", - "JAVA" - ], + "type": "integer", + "default": 1, + "example": 1, "description": "Chaincode specification language." }, "chaincodeID": { diff --git a/docs/API/CoreAPI.md b/docs/API/CoreAPI.md index ab6eb9d8ae7..4b622437003 100644 --- a/docs/API/CoreAPI.md +++ b/docs/API/CoreAPI.md @@ -242,8 +242,7 @@ POST host:port/chaincode "path":"github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02" }, "ctorMsg": { - "function":"init", - "args":["a", "1000", "b", "2000"] + "args":["init", "a", "1000", "b", "2000"] } }, "id": 1 @@ -266,8 +265,7 @@ POST host:port/chaincode "path":"github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02" }, "ctorMsg": { - "function":"init", - "args":["a", "1000", "b", "2000"] + "args":["init", "a", "1000", "b", "2000"] }, "secureContext": "lukas" }, @@ -304,8 +302,7 @@ Chaincode Invocation Request without security enabled: "name":"52b0d803fc395b5e34d8d4a7cd69fb6aa00099b8fabed83504ac1c5d61a425aca5b3ad3bf96643ea4fdaac132c417c37b00f88fa800de7ece387d008a76d3586" }, "ctorMsg": { - "function":"invoke", - "args":["a", "b", "100"] + "args":["invoke", "a", "b", "100"] } }, "id": 3 @@ -326,8 +323,7 @@ Chaincode Invocation Request with security enabled (add `secureContext` element) "name":"52b0d803fc395b5e34d8d4a7cd69fb6aa00099b8fabed83504ac1c5d61a425aca5b3ad3bf96643ea4fdaac132c417c37b00f88fa800de7ece387d008a76d3586" }, "ctorMsg": { - "function":"invoke", - "args":["a", "b", "100"] + "args":["invoke", "a", "b", "100"] }, "secureContext": "lukas" }, @@ -364,8 +360,7 @@ Chaincode Query Request without security enabled: "name":"52b0d803fc395b5e34d8d4a7cd69fb6aa00099b8fabed83504ac1c5d61a425aca5b3ad3bf96643ea4fdaac132c417c37b00f88fa800de7ece387d008a76d3586" }, "ctorMsg": { - "function":"query", - "args":["a"] + "args":["query", "a"] } }, "id": 5 @@ -386,8 +381,7 @@ Chaincode Query Request with security enabled (add `secureContext` element): "name":"52b0d803fc395b5e34d8d4a7cd69fb6aa00099b8fabed83504ac1c5d61a425aca5b3ad3bf96643ea4fdaac132c417c37b00f88fa800de7ece387d008a76d3586" }, "ctorMsg": { - "function":"query", - "args":["a"] + "args":["query", "a"] }, "secureContext": "lukas" },

    _t^_vexf#;l`MN*3XegljWn~xZdXX_y%R4` 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