(asterixdb) branch master updated: [ASTERIXDB-3372][COMP]: Validate minimum value for 'max-objects-per-file'
This is an automated email from the ASF dual-hosted git repository. mhubail pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git The following commit(s) were added to refs/heads/master by this push: new 899ce953ca [ASTERIXDB-3372][COMP]: Validate minimum value for 'max-objects-per-file' 899ce953ca is described below commit 899ce953ca0753cd7f796c1a3329c3865aad8a09 Author: Hussain Towaileb AuthorDate: Mon Apr 1 20:31:24 2024 +0300 [ASTERIXDB-3372][COMP]: Validate minimum value for 'max-objects-per-file' Change-Id: I13c4a516fa8cf76166c2b04aca4ce5c06fd69aa1 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18216 Integration-Tests: Jenkins Tested-by: Jenkins Reviewed-by: Hussain Towaileb Reviewed-by: Wail Alkowaileet --- .../empty-over.01.ddl.sqlpp| 39 ++ .../empty-over.02.update.sqlpp | 36 .../empty-over.03.update.sqlpp | 36 .../runtimets/testsuite_external_dataset_s3.xml| 7 .../asterix/common/exceptions/ErrorCode.java | 1 + .../src/main/resources/asx_errormsg/en.properties | 1 + .../external/util/ExternalDataConstants.java | 1 + .../external/util/WriterValidationUtil.java| 12 +-- 8 files changed, 130 insertions(+), 3 deletions(-) diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/copy-to/negative/bad-max-objects-per-file/empty-over.01.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/copy-to/negative/bad-max-objects-per-file/empty-over.01.ddl.sqlpp new file mode 100644 index 00..b68c38b195 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/copy-to/negative/bad-max-objects-per-file/empty-over.01.ddl.sqlpp @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +DROP DATAVERSE test IF EXISTS; +CREATE DATAVERSE test; + +USE test; + +CREATE TYPE OpenType AS { +}; + +CREATE EXTERNAL DATASET Customer(OpenType) USING S3 ( +("accessKeyId"="dummyAccessKey"), +("secretAccessKey"="dummySecretKey"), +("region"="us-west-2"), +("serviceEndpoint"="http://127.0.0.1:8001;), +("container"="playground"), + ("definition"="external-filter/car/{company:string}/customer/{customer_id:int}"), +("embed-filter-values" = "false"), +("format"="json") +); + + + diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/copy-to/negative/bad-max-objects-per-file/empty-over.02.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/copy-to/negative/bad-max-objects-per-file/empty-over.02.update.sqlpp new file mode 100644 index 00..02f6c96f1d --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/copy-to/negative/bad-max-objects-per-file/empty-over.02.update.sqlpp @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +USE test; + +COPY Customer c +TO S3 +PATH ("copy-to-result-with-over") +WITH { +"accessKeyId":"dummyAccessKey", +"secretAccessKey":"dummySecretKey", +"region":"us-west-2", +"serviceEndpoint":"http://127.0.0.1:8001;, +"container":"playground", +"format":"json", +"max-objects-per-file": 2 +} + + + diff --git
(asterixdb) branch master updated: [ASTERIXDB-3370][COMP] Collect accessed entities during compilation
This is an automated email from the ASF dual-hosted git repository. mhubail pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git The following commit(s) were added to refs/heads/master by this push: new acf4d6338d [ASTERIXDB-3370][COMP] Collect accessed entities during compilation acf4d6338d is described below commit acf4d6338d88e18f7fed4bbbe2ff5e84ceeb8a36 Author: AnkitPrabhu AuthorDate: Thu Apr 4 00:18:24 2024 +0530 [ASTERIXDB-3370][COMP] Collect accessed entities during compilation - user model changes: no - storage format changes: no - interface changes: no Details: - Collect datasets/views/functions/link for copy-to statement - Add visitor to collect accessed datasets/views/functions/copyto Change-Id: Icb2529cd876bbbf40b92635aca0aa9693e9cd154 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18212 Integration-Tests: Jenkins Reviewed-by: Murtadha Hubail Tested-by: Jenkins --- .../asterix/app/translator/QueryTranslator.java| 19 +++-- .../lang/sqlpp/rewrites/SqlppQueryRewriter.java| 9 ++ .../rewrites/visitor/SqlppLoadAccessedDataset.java | 95 ++ .../metadata/declared/MetadataProvider.java| 15 .../asterix/metadata/entities/EntityDetails.java | 59 ++ 5 files changed, 189 insertions(+), 8 deletions(-) diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java index 6424280bbd..3e674fd282 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java @@ -448,16 +448,16 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen handleLibraryDropStatement(metadataProvider, stmt, hcc, requestParameters); break; case CREATE_SYNONYM: -handleCreateSynonymStatement(metadataProvider, stmt); +handleCreateSynonymStatement(metadataProvider, stmt, requestParameters); break; case SYNONYM_DROP: -handleDropSynonymStatement(metadataProvider, stmt); +handleDropSynonymStatement(metadataProvider, stmt, requestParameters); break; case CREATE_VIEW: handleCreateViewStatement(metadataProvider, stmt, stmtRewriter, requestParameters); break; case VIEW_DROP: -handleViewDropStatement(metadataProvider, stmt); +handleViewDropStatement(metadataProvider, stmt, requestParameters); break; case LOAD: if (stats.getProfileType() == Stats.ProfileType.FULL) { @@ -2963,7 +2963,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen } } -public void handleViewDropStatement(MetadataProvider metadataProvider, Statement stmt) throws Exception { +public void handleViewDropStatement(MetadataProvider metadataProvider, Statement stmt, +IRequestParameters requestParameters) throws Exception { ViewDropStatement stmtDrop = (ViewDropStatement) stmt; SourceLocation sourceLoc = stmtDrop.getSourceLocation(); String viewName = stmtDrop.getViewName().getValue(); @@ -2976,14 +2977,14 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen } lockUtil.dropDatasetBegin(lockManager, metadataProvider.getLocks(), databaseName, dataverseName, viewName); try { -doDropView(metadataProvider, stmtDrop, databaseName, dataverseName, viewName); +doDropView(metadataProvider, stmtDrop, databaseName, dataverseName, viewName, requestParameters); } finally { metadataProvider.getLocks().unlock(); } } protected boolean doDropView(MetadataProvider metadataProvider, ViewDropStatement stmtViewDrop, String databaseName, -DataverseName dataverseName, String viewName) throws Exception { +DataverseName dataverseName, String viewName, IRequestParameters requestParameters) throws Exception { SourceLocation sourceLoc = stmtViewDrop.getSourceLocation(); MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction(); metadataProvider.setMetadataTxnContext(mdTxnCtx); @@ -3787,7 +3788,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen } } -protected void handleCreateSynonymStatement(MetadataProvider
(asterixdb) branch master updated: [NO ISSUE]: Support Reading Single Depth Files/Folder from S3 Container
This is an automated email from the ASF dual-hosted git repository. mhubail pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git The following commit(s) were added to refs/heads/master by this push: new 381c707930 [NO ISSUE]: Support Reading Single Depth Files/Folder from S3 Container 381c707930 is described below commit 381c7079309572c35eee46142c5fcbcec1151de0 Author: utsavCbase AuthorDate: Thu Mar 21 13:38:27 2024 +0530 [NO ISSUE]: Support Reading Single Depth Files/Folder from S3 Container Change-Id: Iae9d85eb9899419e63c86322cd8da2273adf89c6 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18206 Reviewed-by: Utsav Singh Reviewed-by: Hussain Towaileb Integration-Tests: Jenkins Tested-by: Jenkins --- .../external_dataset/ExternalDatasetTestUtils.java | 38 +++ .../aws/AwsS3ExternalDatasetTest.java | 1 + .../asterix/external/util/aws/s3/S3Utils.java | 57 ++ 3 files changed, 96 insertions(+) diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/external_dataset/ExternalDatasetTestUtils.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/external_dataset/ExternalDatasetTestUtils.java index 55a515c879..34d209eb7a 100644 --- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/external_dataset/ExternalDatasetTestUtils.java +++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/external_dataset/ExternalDatasetTestUtils.java @@ -20,6 +20,7 @@ package org.apache.asterix.test.external_dataset; import static org.apache.asterix.test.external_dataset.avro.AvroFileConverterUtil.AVRO_GEN_BASEDIR; import static org.apache.asterix.test.external_dataset.aws.AwsS3ExternalDatasetTest.BOM_FILE_CONTAINER; +import static org.apache.asterix.test.external_dataset.aws.AwsS3ExternalDatasetTest.BROWSE_CONTAINER; import static org.apache.asterix.test.external_dataset.aws.AwsS3ExternalDatasetTest.DYNAMIC_PREFIX_AT_START_CONTAINER; import static org.apache.asterix.test.external_dataset.aws.AwsS3ExternalDatasetTest.FIXED_DATA_CONTAINER; import static org.apache.asterix.test.external_dataset.parquet.BinaryFileConverterUtil.BINARY_GEN_BASEDIR; @@ -78,6 +79,7 @@ public class ExternalDatasetTestUtils { private static Uploader fixedDataLoader; private static Uploader mixedDataLoader; private static Uploader bomFileLoader; +private static Uploader browseDataLoader; protected TestCaseContext tcCtx; @@ -148,6 +150,16 @@ public class ExternalDatasetTestUtils { ExternalDatasetTestUtils.bomFileLoader = bomFileLoader; } +public static void setUploaders(Uploader playgroundDataLoader, Uploader dynamicPrefixAtStartDataLoader, +Uploader fixedDataLoader, Uploader mixedDataLoader, Uploader bomFileLoader, Uploader browseDataLoader) { +ExternalDatasetTestUtils.playgroundDataLoader = playgroundDataLoader; +ExternalDatasetTestUtils.dynamicPrefixAtStartDataLoader = dynamicPrefixAtStartDataLoader; +ExternalDatasetTestUtils.fixedDataLoader = fixedDataLoader; +ExternalDatasetTestUtils.mixedDataLoader = mixedDataLoader; +ExternalDatasetTestUtils.bomFileLoader = bomFileLoader; +ExternalDatasetTestUtils.browseDataLoader = browseDataLoader; +} + /** * Creates a bucket and fills it with some files for testing purpose. */ @@ -183,6 +195,32 @@ public class ExternalDatasetTestUtils { LOGGER.info("Files added successfully"); } +public static void prepareBrowseContainer() { +/* +file hierarchy inside browse container +browse/1.json +browse/2.json +browse/level1/3.json +browse/level1/4.json +browse/level1/level2/5.json +browse/level2/level3/6.json + */ +// -- todo:Utsav add a test for Browse S3 path which returns multiple folders, skipped for now as S3 mock server does not support this. +LOGGER.info("Adding JSON files to " + BROWSE_CONTAINER); +browseDataLoader.upload("1.json", "{\"id\":" + 1 + "}"); +browseDataLoader.upload("2.json", "{\"id\":" + 2 + "}"); +browseDataLoader.upload("level1/3.json", "{\"id\":" + 3 + "}"); +browseDataLoader.upload("level1/4.json", "{\"id\":" + 4 + "}"); +browseDataLoader.upload("level1/level2/5.json", "{\"id\":" + 5 + "}"); +browseDataLoader.upload("level2/level3/6.json", "{\"id\":" + 6 + "}"); + +//Adding 1000+ files +for (int i = 1; i <= 1500; i++) { +browseDataLoader.upload("level3/" + i + ".json", "{\"id\":" + i + "}"); +} +LOGGER.info("JSON Files added successfully"); +} + /** * Special container where dynamic prefix is the first segment */ diff --git
(asterixdb-site) branch asf-site updated: Update to Apache AsterixDB JDBC 0.9.8.3
This is an automated email from the ASF dual-hosted git repository. imaxon pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/asterixdb-site.git The following commit(s) were added to refs/heads/asf-site by this push: new d07e25e Update to Apache AsterixDB JDBC 0.9.8.3 d07e25e is described below commit d07e25e874f97f9031fe8fbbfd9fa003e085529c Author: Ian Maxon AuthorDate: Wed Apr 3 13:21:44 2024 -0700 Update to Apache AsterixDB JDBC 0.9.8.3 Change-Id:If17ec8dbd1de435c9a0caedf4daa7ed1ebe3a5b1 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/incubator-asterixdb-site/+/18225 Reviewed-by: Ian Maxon --- _config.yml | 4 ++-- content/download.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_config.yml b/_config.yml index e76e377..1f872a9 100644 --- a/_config.yml +++ b/_config.yml @@ -4,8 +4,8 @@ name: "Apache AsterixDB" STABLE_VERSION: 0.9.9 UNSTABLE_VERSION: 0.9.10-SNAPSHOT STABLE_NCSERVICE_URL: "http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-0.9.9/asterix-server-0.9.9-binary-assembly.zip; -STABLE_JDBC_URL: "http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-jdbc-0.9.8.2/asterix-jdbc-driver-0.9.8.2-dist.jar; -STABLE_TACO_URL: "http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-jdbc-0.9.8.2/asterixdb_jdbc.taco; +STABLE_JDBC_URL: "http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar; +STABLE_TACO_URL: "http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-jdbc-0.9.8.3/asterixdb_jdbc.taco; UNSTABLE_NCSERVICE_URL: "https://ci-builds.apache.org/job/AsterixDB/job/asterixdb-snapshot-integration/lastSuccessfulBuild/artifact/asterixdb/asterix-server/target/asterix-server-0.9.10-SNAPSHOT-binary-assembly.zip; DOCS_BASE_URL: "docs" UNSTABLE_DOCS_BASE_URL: "https://ci.apache.org/projects/asterixdb/; diff --git a/content/download.html b/content/download.html index fb80436..1b8233a 100644 --- a/content/download.html +++ b/content/download.html @@ -168,8 +168,8 @@ -http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-jdbc-0.9.8.2/asterix-jdbc-driver-0.9.8.2-dist.jar; role="button">Download AsterixDB JDBC Driver 0.9.9 -http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-jdbc-0.9.8.2/asterixdb_jdbc.taco; role="button">Download AsterixDB Tableau Connector 0.9.9 +http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar; role="button">Download AsterixDB JDBC Driver 0.9.9 +http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-jdbc-0.9.8.3/asterixdb_jdbc.taco; role="button">Download AsterixDB Tableau Connector 0.9.9
svn commit: r68298 - /release/asterixdb/asterixdb-jdbc-0.9.8.3/
Author: imaxon Date: Wed Apr 3 20:17:29 2024 New Revision: 68298 Log: Add Apache AsterixDB JDBC Connector 0.9.8.3 Added: release/asterixdb/asterixdb-jdbc-0.9.8.3/ release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip (with props) release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip.asc release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip.sha512 release/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar (with props) release/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar.asc release/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar.sha512 release/asterixdb/asterixdb-jdbc-0.9.8.3/asterixdb_jdbc.taco (with props) release/asterixdb/asterixdb-jdbc-0.9.8.3/asterixdb_jdbc.taco.asc (with props) release/asterixdb/asterixdb-jdbc-0.9.8.3/asterixdb_jdbc.taco.sha512 Added: release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip == Binary file - no diff available. Propchange: release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip -- svn:mime-type = application/octet-stream Added: release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip.asc == --- release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip.asc (added) +++ release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip.asc Wed Apr 3 20:17:29 2024 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCgAdFiEEIf3gbxaFXS93IFrkwLkA3UcwFf0FAmYLA5cACgkQwLkA3Ucw +Ff3pYBAAm3XJybowQOJrg1D79VC0TuSFyQ7yCu+lmpDlNC+ClWxsrHwf75mq0DLE +s5OkattKtdyxRHBAIg6MQ5/vlBEstOmIVFIBVmVPWe03A+EBep7QclJ2dQLE5Fak +7tdS53wMeEQSlMaRFGXTqepNFmZBvzGJRq24DyZ3tAvOaNB4NXQpT59IFlD54lQK +gl+ytZy+4Ca/IrAquwRyg9m+iIYNYkZVFNwBpwRVtaCM47muBbLWbweEw8XOg8Ac +aKFG6Q2BrzmcnO3U8pWdaqOXQrWwsj2Xoi8njkyZ5Zwyh9G3utPMGgF7qEDb5yV7 +DJLcencsdfrgbimXG+gRQTYqJM999zMSOHD5186q35cMMLpfg5S6UrBSE9UJ9V5a +4yVCM6DmvNLPGDoZovKKWmkZd8o7CctorAYZ1uRWGnmQlJcvfMiLy99iJbt0Thbl +OWz/Aj0wA4VZG+4ir4isdXuYufDeqXEgjlUeGqSP0PILyOFwlil1thImx8vPeESd +A864vnP/7+xN1CQuFAeRPRl1lGfTepypoNduG549q1fj+pbdLy4jkEK48pQATx+n +R7PmvCEM49mMmIvK1BxMjDG8pMh00ddkKIxqlktiTn2n+jtEZS8MwvtIbZ6EnEWY +as/IAsaeCBYqmB3bnK39X6jBr0w7S4yPTEy59yhMzCguLQaiCKw= +=KRtf +-END PGP SIGNATURE- Added: release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip.sha512 == --- release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip.sha512 (added) +++ release/asterixdb/asterixdb-jdbc-0.9.8.3/apache-asterixdb-jdbc-0.9.8.3-source-release.zip.sha512 Wed Apr 3 20:17:29 2024 @@ -0,0 +1 @@ +f4796248273ce61b8268cc232b066ca8c64c96eea9586af04e89c12dbc614e0d5a6e84b212e053c0f34340513684a8c02f3d45386f2410f05f7a8956dcd3787b apache-asterixdb-jdbc-0.9.8.3-source-release.zip Added: release/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar == Binary file - no diff available. Propchange: release/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar -- svn:mime-type = application/octet-stream Added: release/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar.asc == --- release/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar.asc (added) +++ release/asterixdb/asterixdb-jdbc-0.9.8.3/asterix-jdbc-driver-0.9.8.3-dist.jar.asc Wed Apr 3 20:17:29 2024 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCgAdFiEEIf3gbxaFXS93IFrkwLkA3UcwFf0FAmYLA7IACgkQwLkA3Ucw +Ff3TFBAAjRUKJZNG891dsG1tTv54mKOYSAhlLBt8Wg2IZa6hv4S5E48zzEcVAYRl +XGUwVjWF+PerARCGM+g0gGtVxKt/4zYtntn9ePVFBpaQGSLMJG3RBR0296brCr+x +I+g6ioK0oCrZZ1B9Me6RFuqXLO6dJytkbj92k4K8b9gMC8tdUDJwOl23KiPNI4K4 +wLNx1DDVvKhUgLhC0belcmEhvl3G6IlyPfMpyGQSvpaqw15vfYU8pZLiQEYmzFbc +mO9Ymt5ZOl/KI4/4urFDvBEwDc8px//MhJVuL6/CCxUdnmqU37uaxfJgI6HPeldR +vnh4nH/KjB6m/mR2e6gW8rzVzn4Nh6wVdvwINce9wLiwsa9J793S3ipsdPBgPbV7 +apciYGhUuIC8KT9UQWOsk9UtoU5lsZJooWdSBnVSaoRZq2EVNsK1g2P8rQddKgMb +rmJNEvJtguFGB9/fw7cLULRu/Oy6xewSEkjI5a4mmTAvr8/17as5FxEsi2yiLVFV +FPcNlnDKQA/eU5PwVYDhFhb33dsXC/f3cyPcopGlwV/DH6AuICs+isTPjLvMmZes +U8hhSBzhmkZPBitiPR5ICyJyPCOatP4yxQp+WwPusgrnjS48YJNU7EbozcO7aRts +hCHeueEUTjHyslbnaOgA4Ne+tMjxQgmkzjbYKZqiwt/sklx3/eM= +=drBP +-END PGP SIGNATURE-