Hi!

根本原因是 Caused by: java.io.StreamCorruptedException: unexpected block
data,也就是说集群上这个 class 的版本和客户端这个 class 的版本不一致。建议检查集群和客户端的 flink 版本以及 cdc
connector 版本是否一致。

Fei Han <[email protected]> 于2022年1月5日周三 19:12写道:

> @all:
>   大家好,在Flink mysql cdc中同步数据时,对接mysql无法同步
> 版本:
> flink1.13.3
> flink mysql cdc 2.1.1
>
> 如下报错是什么原因造成的,请大佬们看下
>
>  ERROR org.apache.flink.runtime.rest.RestClient 491 parseResponse -
> Received response was neither of the expected type ([simple type, class
> org.apache.flink.runtime.rest.messages.job.JobExecutionResultResponseBody])
> nor an error.
> Response=JsonResponse{json={"status":{"id":"COMPLETED"},"job-execution-result":{"id":"61f45c66580d385727fd97520b66a79a","application-status":"FAILED","accumulator-results":{},"net-runtime":55,"failure-cause":{"class":"org.apache.flink.runtime.client.JobInitializationException","stack-trace":"org.apache.flink.runtime.client.JobInitializationException:
> Could not start the JobMaster.\n\tat
> org.apache.flink.runtime.jobmaster.DefaultJobMasterServiceProcess.lambda$new$0(DefaultJobMasterServiceProcess.java:97)\n\tat
> java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)\n\tat
> java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)\n\tat
> java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)\n\tat
> java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1595)\n\tat
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat
> java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat
> java.lang.Thread.run(Thread.java:748)\nCaused by:
> java.util.concurrent.CompletionException: java.lang.RuntimeException:
> org.apache.flink.runtime.JobException: Cannot instantiate the coordinator
> for operator Source: TableSourceScan(table=[[qhc_ods_catalog, qhc_hms,
> order_consume_buy_order_src]], fields=[id, consume_order_id,
> consume_order_code, sku_id, sku_name, is_card_goods, buy_order_id,
> buy_order_code, buy_order_type, consume_order_time, gmt_create,
> gmt_modified, database_name, op_ts, table_name]) -> Calc(select=[id,
> consume_order_id, consume_order_code, sku_id, sku_name, is_card_goods,
> buy_order_id, buy_order_code, buy_order_type, consume_order_time,
> gmt_create, gmt_modified]) -> NotNullEnforcer(fields=[id,
> consume_order_id])\n\tat
> java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)\n\tat
> java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)\n\tat
> java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1592)\n\t...
> 7 more\nCaused by: java.lang.RuntimeException:
> org.apache.flink.runtime.JobException: Cannot instantiate the coordinator
> for operator Source: TableSourceScan(table=[[qhc_ods_catalog, qhc_hms,
> order_consume_buy_order_src]], fields=[id, consume_order_id,
> consume_order_code, sku_id, sku_name, is_card_goods, buy_order_id,
> buy_order_code, buy_order_type, consume_order_time, gmt_create,
> gmt_modified, database_name, op_ts, table_name]) -> Calc(select=[id,
> consume_order_id, consume_order_code, sku_id, sku_name, is_card_goods,
> buy_order_id, buy_order_code, buy_order_type, consume_order_time,
> gmt_create, gmt_modified]) -> NotNullEnforcer(fields=[id,
> consume_order_id])\n\tat
> org.apache.flink.util.ExceptionUtils.rethrow(ExceptionUtils.java:316)\n\tat
> org.apache.flink.util.function.FunctionUtils.lambda$uncheckedSupplier$4(FunctionUtils.java:114)\n\tat
> java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)\n\t...
> 7 more\nCaused by: org.apache.flink.runtime.JobException: Cannot
> instantiate the coordinator for operator Source:
> TableSourceScan(table=[[qhc_ods_catalog, qhc_hms,
> order_consume_buy_order_src]], fields=[id, consume_order_id,
> consume_order_code, sku_id, sku_name, is_card_goods, buy_order_id,
> buy_order_code, buy_order_type, consume_order_time, gmt_create,
> gmt_modified, database_name, op_ts, table_name]) -> Calc(select=[id,
> consume_order_id, consume_order_code, sku_id, sku_name, is_card_goods,
> buy_order_id, buy_order_code, buy_order_type, consume_order_time,
> gmt_create, gmt_modified]) -> NotNullEnforcer(fields=[id,
> consume_order_id])\n\tat
> org.apache.flink.runtime.executiongraph.ExecutionJobVertex.<init>(ExecutionJobVertex.java:217)\n\tat
> org.apache.flink.runtime.executiongraph.DefaultExecutionGraph.attachJobGraph(DefaultExecutionGraph.java:792)\n\tat
> org.apache.flink.runtime.executiongraph.DefaultExecutionGraphBuilder.buildGraph(DefaultExecutionGraphBuilder.java:196)\n\tat
> org.apache.flink.runtime.scheduler.DefaultExecutionGraphFactory.createAndRestoreExecutionGraph(DefaultExecutionGraphFactory.java:107)\n\tat
> org.apache.flink.runtime.scheduler.SchedulerBase.createAndRestoreExecutionGraph(SchedulerBase.java:342)\n\tat
> org.apache.flink.runtime.scheduler.SchedulerBase.<init>(SchedulerBase.java:190)\n\tat
> org.apache.flink.runtime.scheduler.DefaultScheduler.<init>(DefaultScheduler.java:122)\n\tat
> org.apache.flink.runtime.scheduler.DefaultSchedulerFactory.createInstance(DefaultSchedulerFactory.java:132)\n\tat
> org.apache.flink.runtime.jobmaster.DefaultSlotPoolServiceSchedulerFactory.createScheduler(DefaultSlotPoolServiceSchedulerFactory.java:110)\n\tat
> org.apache.flink.runtime.jobmaster.JobMaster.createScheduler(JobMaster.java:340)\n\tat
> org.apache.flink.runtime.jobmaster.JobMaster.<init>(JobMaster.java:317)\n\tat
> org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.internalCreateJobMasterService(DefaultJobMasterServiceFactory.java:107)\n\tat
> org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.lambda$createJobMasterService$0(DefaultJobMasterServiceFactory.java:95)\n\tat
> org.apache.flink.util.function.FunctionUtils.lambda$uncheckedSupplier$4(FunctionUtils.java:112)\n\t...
> 8 more\nCaused by: java.io.StreamCorruptedException: unexpected block
> data\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1587)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2167)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2167)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2167)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2167)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2167)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.readArray(ObjectInputStream.java:1950)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1567)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2167)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2167)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2167)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2167)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)\n\tat
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)\n\tat
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)\n\tat
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)\n\tat
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)\n\tat
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:615)\n\tat
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:600)\n\tat
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:587)\n\tat
> org.apache.flink.util.SerializedValue.deserializeValue(SerializedValue.java:67)\n\tat
> org.apache.flink.runtime.operators.coordination.OperatorCoordinatorHolder.create(OperatorCoordinatorHolder.java:431)\n\tat
> org.apache.flink.runtime.executiongraph.ExecutionJobVertex.<init>(ExecutionJobVertex.java:211)\n\t...
> 21
> more\n","serialized-throwable":"rO0ABXNyAClvcmcuYXBhY2hlLmZsaW5rLnV0aWwuU2VyaWFsaXplZFRocm93YWJsZWUWnfUfpxPzAgADTAAZZnVsbFN0cmluZ2lmaWVkU3RhY2tUcmFjZXQAEkxqYXZhL2xhbmcvU3RyaW5nO0wAFm9yaWdpbmFsRXJyb3JDbGFzc05hbWVxAH4AAVsAE3NlcmlhbGl6ZWRFeGNlcHRpb250AAJbQnhyABNqYXZhLmxhbmcuRXhjZXB0aW9u0P0fPho7HMQCAAB4cgATamF2YS5sYW5nLlRocm93YWJsZdXGNSc5d7jLAwAETAAFY2F1c2V0ABVMamF2YS9sYW5nL1Rocm93YWJsZTtMAA1kZXRhaWxNZXNzYWdlcQB+AAFbAApzdGFja1RyYWNldAAeW0xqYXZhL2xhbmcvU3RhY2tUcmFjZUVsZW1lbnQ7TAAUc3VwcHJlc3NlZEV4Y2VwdGlvbnN0ABBMamF2YS91dGlsL0xpc3Q7eHBzcQB+AABzcQB+AABzcQB+AABzcQB+AABwdAAVdW5leHBlY3RlZCBibG9jayBkYXRhdXIAHltMamF2YS5sYW5nLlN0YWNrVHJhY2VFbGVtZW50OwJGKjw8/SI5AgAAeHAAAABHc3IAG2phdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudGEJxZomNt2FAgAESQAKbGluZU51bWJlckwADmRlY2xhcmluZ0NsYXNzcQB+AAFMAAhmaWxlTmFtZXEAfgABTAAKbWV0aG9kTmFtZXEAfgABeHAAAAYzdAAZamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbXQAFk9iamVjdElucHV0U3RyZWFtLmphdmF0AAtyZWFkT2JqZWN0MHNxAH4AEAAACO9xAH4AEnEAfgATdAARZGVmYXVsdFJlYWRGaWVsZHNzcQB+ABAAAAh3cQB+ABJxAH4AE3QADnJlYWRTZXJpYWxEYXRhc3EAfgAQAAAIFXEAfgAScQB+ABN0ABJyZWFkT3JkaW5hcnlPYmplY3RzcQB+ABAAAAYlcQB+ABJxAH4AE3EAfgAUc3EAfgAQAAAI73EAfgAScQB+ABNxAH4AFnNxAH4AEAAACHdxAH4AEnEAfgATcQB+ABhzcQB+ABAAAAgVcQB+ABJxAH4AE3EAfgAac3EAfgAQAAAGJXEAfgAScQB+ABNxAH4AFHNxAH4AEAAACO9xAH4AEnEAfgATcQB+ABZzcQB+ABAAAAh3cQB+ABJxAH4AE3EAfgAYc3EAfgAQAAAIFXEAfgAScQB+ABNxAH4AGnNxAH4AEAAABiVxAH4AEnEAfgATcQB+ABRzcQB+ABAAAAjvcQB+ABJxAH4AE3EAfgAWc3EAfgAQAAAId3EAfgAScQB+ABNxAH4AGHNxAH4AEAAACBVxAH4AEnEAfgATcQB+ABpzcQB+ABAAAAYlcQB+ABJxAH4AE3EAfgAUc3EAfgAQAAAI73EAfgAScQB+ABNxAH4AFnNxAH4AEAAACHdxAH4AEnEAfgATcQB+ABhzcQB+ABAAAAgVcQB+ABJxAH4AE3EAfgAac3EAfgAQAAAGJXEAfgAScQB+ABNxAH4AFHNxAH4AEAAAB55xAH4AEnEAfgATdAAJcmVhZEFycmF5c3EAfgAQAAAGH3EAfgAScQB+ABNxAH4AFHNxAH4AEAAACO9xAH4AEnEAfgATcQB+ABZzcQB+ABAAAAh3cQB+ABJxAH4AE3EAfgAYc3EAfgAQAAAIFXEAfgAScQB+ABNxAH4AGnNxAH4AEAAABiVxAH4AEnEAfgATcQB+ABRzcQB+ABAAAAjvcQB+ABJxAH4AE3EAfgAWc3EAfgAQAAAId3EAfgAScQB+ABNxAH4AGHNxAH4AEAAACBVxAH4AEnEAfgATcQB+ABpzcQB+ABAAAAYlcQB+ABJxAH4AE3EAfgAUc3EAfgAQAAAI73EAfgAScQB+ABNxAH4AFnNxAH4AEAAACHdxAH4AEnEAfgATcQB+ABhzcQB+ABAAAAgVcQB+ABJxAH4AE3EAfgAac3EAfgAQAAAGJXEAfgAScQB+ABNxAH4AFHNxAH4AEAAACO9xAH4AEnEAfgATcQB+ABZzcQB+ABAAAAh3cQB+ABJxAH4AE3EAfgAYc3EAfgAQAAAIFXEAfgAScQB+ABNxAH4AGnNxAH4AEAAABiVxAH4AEnEAfgATcQB+ABRzcQB+ABAAAAjvcQB+ABJxAH4AE3EAfgAWc3EAfgAQAAAIo3EAfgAScQB+ABNxAH4AGHNxAH4AEAAACBVxAH4AEnEAfgATcQB+ABpzcQB+ABAAAAYlcQB+ABJxAH4AE3EAfgAUc3EAfgAQAAABr3EAfgAScQB+ABN0AApyZWFkT2JqZWN0c3EAfgAQAAACZ3QAJ29yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbHQAFkluc3RhbnRpYXRpb25VdGlsLmphdmF0ABFkZXNlcmlhbGl6ZU9iamVjdHNxAH4AEAAAAlhxAH4ARnEAfgBHcQB+AEhzcQB+ABAAAAJLcQB+AEZxAH4AR3EAfgBIc3EAfgAQAAAAQ3QAJW9yZy5hcGFjaGUuZmxpbmsudXRpbC5TZXJpYWxpemVkVmFsdWV0ABRTZXJpYWxpemVkVmFsdWUuamF2YXQAEGRlc2VyaWFsaXplVmFsdWVzcQB+ABAAAAGvdABJb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLm9wZXJhdG9ycy5jb29yZGluYXRpb24uT3BlcmF0b3JDb29yZGluYXRvckhvbGRlcnQAHk9wZXJhdG9yQ29vcmRpbmF0b3JIb2xkZXIuamF2YXQABmNyZWF0ZXNxAH4AEAAAANN0ADpvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRXhlY3V0aW9uSm9iVmVydGV4dAAXRXhlY3V0aW9uSm9iVmVydGV4LmphdmF0AAY8aW5pdD5zcQB+ABAAAAMYdAA9b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaHQAGkRlZmF1bHRFeGVjdXRpb25HcmFwaC5qYXZhdAAOYXR0YWNoSm9iR3JhcGhzcQB+ABAAAADEdABEb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaEJ1aWxkZXJ0ACFEZWZhdWx0RXhlY3V0aW9uR3JhcGhCdWlsZGVyLmphdmF0AApidWlsZEdyYXBoc3EAfgAQAAAAa3QAP29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeXQAIURlZmF1bHRFeGVjdXRpb25HcmFwaEZhY3RvcnkuamF2YXQAHmNyZWF0ZUFuZFJlc3RvcmVFeGVjdXRpb25HcmFwaHNxAH4AEAAAAVZ0ADBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLlNjaGVkdWxlckJhc2V0ABJTY2hlZHVsZXJCYXNlLmphdmFxAH4AYnNxAH4AEAAAAL5xAH4AZHEAfgBlcQB+AFZzcQB+ABAAAAB6dAAzb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5EZWZhdWx0U2NoZWR1bGVydAAVRGVmYXVsdFNjaGVkdWxlci5qYXZhcQB+AFZzcQB+ABAAAACEdAA6b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5EZWZhdWx0U2NoZWR1bGVyRmFjdG9yeXQAHERlZmF1bHRTY2hlZHVsZXJGYWN0b3J5LmphdmF0AA5jcmVhdGVJbnN0YW5jZXNxAH4AEAAAAG50AElvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkRlZmF1bHRTbG90UG9vbFNlcnZpY2VTY2hlZHVsZXJGYWN0b3J5dAArRGVmYXVsdFNsb3RQb29sU2VydmljZVNjaGVkdWxlckZhY3RvcnkuamF2YXQAD2NyZWF0ZVNjaGVkdWxlcnNxAH4AEAAAAVR0ACxvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkpvYk1hc3RlcnQADkpvYk1hc3Rlci5qYXZhcQB+AHFzcQB+ABAAAAE9cQB+AHNxAH4AdHEAfgBWc3EAfgAQAAAAa3QAS29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuZmFjdG9yaWVzLkRlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeXQAI0RlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeS5qYXZhdAAeaW50ZXJuYWxDcmVhdGVKb2JNYXN0ZXJTZXJ2aWNlc3EAfgAQAAAAX3EAfgB3cQB+AHh0AB9sYW1iZGEkY3JlYXRlSm9iTWFzdGVyU2VydmljZSQwc3EAfgAQAAAAcHQALG9yZy5hcGFjaGUuZmxpbmsudXRpbC5mdW5jdGlvbi5GdW5jdGlvblV0aWxzdAASRnVuY3Rpb25VdGlscy5qYXZhdAAabGFtYmRhJHVuY2hlY2tlZFN1cHBsaWVyJDRzcQB+ABAAAAY2dAAyamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmUkQXN5bmNTdXBwbHl0ABZDb21wbGV0YWJsZUZ1dHVyZS5qYXZhdAADcnVuc3EAfgAQAAAB/3QALmphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXJ0AA5FeGVjdXRvcnMuamF2YXQABGNhbGxzcQB+ABAAAAEKdAAfamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFza3QAD0Z1dHVyZVRhc2suamF2YXEAfgCDc3EAfgAQAAAAtHQARGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrdAAgU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmF0AAphY2Nlc3MkMjAxc3EAfgAQAAABJXEAfgCMcQB+AI1xAH4Ag3NxAH4AEAAABH10ACdqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3J0ABdUaHJlYWRQb29sRXhlY3V0b3IuamF2YXQACXJ1bldvcmtlcnNxAH4AEAAAAnB0AC5qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VycQB+AJJxAH4Ag3NxAH4AEAAAAux0ABBqYXZhLmxhbmcuVGhyZWFkdAALVGhyZWFkLmphdmFxAH4Ag3NyACZqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxlTGlzdPwPJTG17I4QAgABTAAEbGlzdHEAfgAHeHIALGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVDb2xsZWN0aW9uGUIAgMte9x4CAAFMAAFjdAAWTGphdmEvdXRpbC9Db2xsZWN0aW9uO3hwc3IAE2phdmEudXRpbC5BcnJheUxpc3R4gdIdmcdhnQMAAUkABHNpemV4cAAAAAB3BAAAAAB4cQB+AJ54dBeqamF2YS5pby5TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb246IHVuZXhwZWN0ZWQgYmxvY2sgZGF0YQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1ODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRBcnJheShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE5NTApCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyMTEpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjQzMSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbC5kZXNlcmlhbGl6ZU9iamVjdChJbnN0YW50aWF0aW9uVXRpbC5qYXZhOjYxNSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbC5kZXNlcmlhbGl6ZU9iamVjdChJbnN0YW50aWF0aW9uVXRpbC5qYXZhOjYwMCkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbC5kZXNlcmlhbGl6ZU9iamVjdChJbnN0YW50aWF0aW9uVXRpbC5qYXZhOjU4NykKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5TZXJpYWxpemVkVmFsdWUuZGVzZXJpYWxpemVWYWx1ZShTZXJpYWxpemVkVmFsdWUuamF2YTo2NykKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5vcGVyYXRvcnMuY29vcmRpbmF0aW9uLk9wZXJhdG9yQ29vcmRpbmF0b3JIb2xkZXIuY3JlYXRlKE9wZXJhdG9yQ29vcmRpbmF0b3JIb2xkZXIuamF2YTo0MzEpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRXhlY3V0aW9uSm9iVmVydGV4Ljxpbml0PihFeGVjdXRpb25Kb2JWZXJ0ZXguamF2YToyMTEpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRGVmYXVsdEV4ZWN1dGlvbkdyYXBoLmF0dGFjaEpvYkdyYXBoKERlZmF1bHRFeGVjdXRpb25HcmFwaC5qYXZhOjc5MikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5leGVjdXRpb25ncmFwaC5EZWZhdWx0RXhlY3V0aW9uR3JhcGhCdWlsZGVyLmJ1aWxkR3JhcGgoRGVmYXVsdEV4ZWN1dGlvbkdyYXBoQnVpbGRlci5qYXZhOjE5NikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeS5jcmVhdGVBbmRSZXN0b3JlRXhlY3V0aW9uR3JhcGgoRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeS5qYXZhOjEwNykKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuU2NoZWR1bGVyQmFzZS5jcmVhdGVBbmRSZXN0b3JlRXhlY3V0aW9uR3JhcGgoU2NoZWR1bGVyQmFzZS5qYXZhOjM0MikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuU2NoZWR1bGVyQmFzZS48aW5pdD4oU2NoZWR1bGVyQmFzZS5qYXZhOjE5MCkKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdFNjaGVkdWxlci48aW5pdD4oRGVmYXVsdFNjaGVkdWxlci5qYXZhOjEyMikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdFNjaGVkdWxlckZhY3RvcnkuY3JlYXRlSW5zdGFuY2UoRGVmYXVsdFNjaGVkdWxlckZhY3RvcnkuamF2YToxMzIpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkRlZmF1bHRTbG90UG9vbFNlcnZpY2VTY2hlZHVsZXJGYWN0b3J5LmNyZWF0ZVNjaGVkdWxlcihEZWZhdWx0U2xvdFBvb2xTZXJ2aWNlU2NoZWR1bGVyRmFjdG9yeS5qYXZhOjExMCkKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuSm9iTWFzdGVyLmNyZWF0ZVNjaGVkdWxlcihKb2JNYXN0ZXIuamF2YTozNDApCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkpvYk1hc3Rlci48aW5pdD4oSm9iTWFzdGVyLmphdmE6MzE3KQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5mYWN0b3JpZXMuRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmludGVybmFsQ3JlYXRlSm9iTWFzdGVyU2VydmljZShEZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkuamF2YToxMDcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLmZhY3Rvcmllcy5EZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkubGFtYmRhJGNyZWF0ZUpvYk1hc3RlclNlcnZpY2UkMChEZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkuamF2YTo5NSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5mdW5jdGlvbi5GdW5jdGlvblV0aWxzLmxhbWJkYSR1bmNoZWNrZWRTdXBwbGllciQ0KEZ1bmN0aW9uVXRpbHMuamF2YToxMTIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5Db21wbGV0YWJsZUZ1dHVyZSRBc3luY1N1cHBseS5ydW4oQ29tcGxldGFibGVGdXR1cmUuamF2YToxNTkwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlci5jYWxsKEV4ZWN1dG9ycy5qYXZhOjUxMSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suamF2YToyNjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkU2NoZWR1bGVkRnV0dXJlVGFzay5hY2Nlc3MkMjAxKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjE4MCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrLnJ1bihTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YToyOTMpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDkpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MjQpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDgpCnQAIGphdmEuaW8uU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9udXIAAltCrPMX+AYIVOACAAB4cAAAEPOs7QAFc3IAIGphdmEuaW8uU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9ufKwCloY588ICAAB4cgAdamF2YS5pby5PYmplY3RTdHJlYW1FeGNlcHRpb25kw+RrjTn73wIAAHhyABNqYXZhLmlvLklPRXhjZXB0aW9ubIBzZGUl8KsCAAB4cgATamF2YS5sYW5nLkV4Y2VwdGlvbtD9Hz4aOxzEAgAAeHIAE2phdmEubGFuZy5UaHJvd2FibGXVxjUnOXe4ywMABEwABWNhdXNldAAVTGphdmEvbGFuZy9UaHJvd2FibGU7TAANZGV0YWlsTWVzc2FnZXQAEkxqYXZhL2xhbmcvU3RyaW5nO1sACnN0YWNrVHJhY2V0AB5bTGphdmEvbGFuZy9TdGFja1Ry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b2xkZXIuamF2YXQABmNyZWF0ZXNxAH4ADQAAANN0ADpvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRXhlY3V0aW9uSm9iVmVydGV4dAAXRXhlY3V0aW9uSm9iVmVydGV4LmphdmF0AAY8aW5pdD5zcQB+AA0AAAMYdAA9b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaHQAGkRlZmF1bHRFeGVjdXRpb25HcmFwaC5qYXZhdAAOYXR0YWNoSm9iR3JhcGhzcQB+AA0AAADEdABEb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaEJ1aWxkZXJ0ACFEZWZhdWx0RXhlY3V0aW9uR3JhcGhCdWlsZGVyLmphdmF0AApidWlsZEdyYXBoc3EAfgANAAAAa3QAP29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeXQAIURlZmF1bHRFeGVjdXRpb25HcmFwaEZhY3RvcnkuamF2YXQAHmNyZWF0ZUFuZFJlc3RvcmVFeGVjdXRpb25HcmFwaHNxAH4ADQAAAVZ0ADBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLlNjaGVkdWxlckJhc2V0ABJTY2hlZHVsZXJCYXNlLmphdmFxAH4AX3NxAH4ADQAAAL5xAH4AYXEAfgBicQB+AFNzcQB+AA0AAAB6dAAzb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5EZWZhdWx0U2NoZWR1bGVydAAVRGVmYXVsdFNjaGVkdWxlci5qYXZhcQB+AFNzcQB+AA0AAACEdAA6b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5EZWZhdWx0U2NoZWR1bGVyRmFjdG9yeXQAHERlZmF1bHRTY2hlZHVsZXJGYWN0b3J5LmphdmF0AA5jcmVhdGVJbnN0YW5jZXNxAH4ADQAAAG50AElvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkRlZmF1bHRTbG90UG9vbFNlcnZpY2VTY2hlZHVsZXJGYWN0b3J5dAArRGVmYXVsdFNsb3RQb29sU2VydmljZVNjaGVkdWxlckZhY3RvcnkuamF2YXQAD2NyZWF0ZVNjaGVkdWxlcnNxAH4ADQAAAVR0ACxvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkpvYk1hc3RlcnQADkpvYk1hc3Rlci5qYXZhcQB+AG5zcQB+AA0AAAE9cQB+AHBxAH4AcXEAfgBTc3EAfgANAAAAa3QAS29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuZmFjdG9yaWVzLkRlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeXQAI0RlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeS5qYXZhdAAeaW50ZXJuYWxDcmVhdGVKb2JNYXN0ZXJTZXJ2aWNlc3EAfgANAAAAX3EAfgB0cQB+AHV0AB9sYW1iZGEkY3JlYXRlSm9iTWFzdGVyU2VydmljZSQwc3EAfgANAAAAcHQALG9yZy5hcGFjaGUuZmxpbmsudXRpbC5mdW5jdGlvbi5GdW5jdGlvblV0aWxzdAASRnVuY3Rpb25VdGlscy5qYXZhdAAabGFtYmRhJHVuY2hlY2tlZFN1cHBsaWVyJDRzcQB+AA0AAAY2dAAyamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmUkQXN5bmNTdXBwbHl0ABZDb21wbGV0YWJsZUZ1dHVyZS5qYXZhdAADcnVuc3EAfgANAAAB/3QALmphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXJ0AA5FeGVjdXRvcnMuamF2YXQABGNhbGxzcQB+AA0AAAEKdAAfamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFza3QAD0Z1dHVyZVRhc2suamF2YXEAfgCAc3EAfgANAAAAtHQARGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrdAAgU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmF0AAphY2Nlc3MkMjAxc3EAfgANAAABJXEAfgCJcQB+AIpxAH4AgHNxAH4ADQAABH10ACdqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3J0ABdUaHJlYWRQb29sRXhlY3V0b3IuamF2YXQACXJ1bldvcmtlcnNxAH4ADQAAAnB0AC5qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VycQB+AI9xAH4AgHNxAH4ADQAAAux0ABBqYXZhLmxhbmcuVGhyZWFkdAALVGhyZWFkLmphdmFxAH4AgHNyACZqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxlTGlzdPwPJTG17I4QAgABTAAEbGlzdHEAfgAIeHIALGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVDb2xsZWN0aW9uGUIAgMte9x4CAAFMAAFjdAAWTGphdmEvdXRpbC9Db2xsZWN0aW9uO3hwc3IAE2phdmEudXRpbC5BcnJheUxpc3R4gdIdmcdhnQMAAUkABHNpemV4cAAAAAB3BAAAAAB4cQB+AJt4dAJEQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKXVxAH4ADgAAABZzcQB+ABAAAADZcQB+AFRxAH4AVXEAfgBWc3EAfgAQAAADGHEAfgBYcQB+AFlxAH4AWnNxAH4AEAAAAMRxAH4AXHEAfgBdcQB+AF5zcQB+ABAAAABrcQB+AGBxAH4AYXEAfgBic3EAfgAQAAABVnEAfgBkcQB+AGVxAH4AYnNxAH4AEAAAAL5xAH4AZHEAfgBlcQB+AFZzcQB+ABAAAAB6cQB+AGhxAH4AaXEAfgBWc3EAfgAQAAAAhHEAfgBrcQB+AGxxAH4AbXNxAH4AEAAAAG5xAH4Ab3EAfgBwcQB+AHFzcQB+ABAAAAFUcQB+AHNxAH4AdHEAfgBxc3EAfgAQAAABPXEAfgBzcQB+AHRxAH4AVnNxAH4AEAAAAGtxAH4Ad3EAfgB4cQB+AHlzcQB+ABAAAABfcQB+AHdxAH4AeHEAfgB7c3EAfgAQAAAAcHEAfgB9cQB+AH5xAH4Af3NxAH4AEAAABjZxAH4AgXEAfgCCcQB+AINzcQB+ABAAAAH/cQB+AIVxAH4AhnEAfgCHc3EAfgAQAAABCnEAfgCJcQB+AIpxAH4Ag3NxAH4AEAAAALRxAH4AjHEAfgCNcQB+AI5zcQB+ABAAAAElcQB+AIxxAH4AjXEAfgCDc3EAfgAQAAAEfXEAfgCRcQB+AJJxAH4Ak3NxAH4AEAAAAnBxAH4AlXEAfgCScQB+AINzcQB+ABAAAALscQB+AJdxAH4AmHEAfgCDcQB+AJx4dBqRb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLkpvYkV4Y2VwdGlvbjogQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkV4ZWN1dGlvbkpvYlZlcnRleC48aW5pdD4oRXhlY3V0aW9uSm9iVmVydGV4LmphdmE6MjE3KQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaC5hdHRhY2hKb2JHcmFwaChEZWZhdWx0RXhlY3V0aW9uR3JhcGguamF2YTo3OTIpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRGVmYXVsdEV4ZWN1dGlvbkdyYXBoQnVpbGRlci5idWlsZEdyYXBoKERlZmF1bHRFeGVjdXRpb25HcmFwaEJ1aWxkZXIuamF2YToxOTYpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLkRlZmF1bHRFeGVjdXRpb25HcmFwaEZhY3RvcnkuY3JlYXRlQW5kUmVzdG9yZUV4ZWN1dGlvbkdyYXBoKERlZmF1bHRFeGVjdXRpb25HcmFwaEZhY3RvcnkuamF2YToxMDcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLlNjaGVkdWxlckJhc2UuY3JlYXRlQW5kUmVzdG9yZUV4ZWN1dGlvbkdyYXBoKFNjaGVkdWxlckJhc2UuamF2YTozNDIpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLlNjaGVkdWxlckJhc2UuPGluaXQ+KFNjaGVkdWxlckJhc2UuamF2YToxOTApCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLkRlZmF1bHRTY2hlZHVsZXIuPGluaXQ+KERlZmF1bHRTY2hlZHVsZXIuamF2YToxMjIpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLkRlZmF1bHRTY2hlZHVsZXJGYWN0b3J5LmNyZWF0ZUluc3RhbmNlKERlZmF1bHRTY2hlZHVsZXJGYWN0b3J5LmphdmE6MTMyKQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5EZWZhdWx0U2xvdFBvb2xTZXJ2aWNlU2NoZWR1bGVyRmFjdG9yeS5jcmVhdGVTY2hlZHVsZXIoRGVmYXVsdFNsb3RQb29sU2VydmljZVNjaGVkdWxlckZhY3RvcnkuamF2YToxMTApCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkpvYk1hc3Rlci5jcmVhdGVTY2hlZHVsZXIoSm9iTWFzdGVyLmphdmE6MzQwKQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5Kb2JNYXN0ZXIuPGluaXQ+KEpvYk1hc3Rlci5qYXZhOjMxNykKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuZmFjdG9yaWVzLkRlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeS5pbnRlcm5hbENyZWF0ZUpvYk1hc3RlclNlcnZpY2UoRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmphdmE6MTA3KQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5mYWN0b3JpZXMuRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmxhbWJkYSRjcmVhdGVKb2JNYXN0ZXJTZXJ2aWNlJDAoRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmphdmE6OTUpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuZnVuY3Rpb24uRnVuY3Rpb25VdGlscy5sYW1iZGEkdW5jaGVja2VkU3VwcGxpZXIkNChGdW5jdGlvblV0aWxzLmphdmE6MTEyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmUkQXN5bmNTdXBwbHkucnVuKENvbXBsZXRhYmxlRnV0dXJlLmphdmE6MTU5MCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXIuY2FsbChFeGVjdXRvcnMuamF2YTo1MTEpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLnJ1bihGdXR1cmVUYXNrLmphdmE6MjY2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJFNjaGVkdWxlZEZ1dHVyZVRhc2suYWNjZXNzJDIwMShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxODApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkU2NoZWR1bGVkRnV0dXJlVGFzay5ydW4oU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MjkzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ5KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI0KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ4KQpDYXVzZWQgYnk6IGphdmEuaW8uU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uOiB1bmV4cGVjdGVkIGJsb2NrIGRhdGEKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkQXJyYXkoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxOTUwKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjExKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YTo0MzEpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuSW5zdGFudGlhdGlvblV0aWwuZGVzZXJpYWxpemVPYmplY3QoSW5zdGFudGlhdGlvblV0aWwuamF2YTo2MTUpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuSW5zdGFudGlhdGlvblV0aWwuZGVzZXJpYWxpemVPYmplY3QoSW5zdGFudGlhdGlvblV0aWwuamF2YTo2MDApCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuSW5zdGFudGlhdGlvblV0aWwuZGVzZXJpYWxpemVPYmplY3QoSW5zdGFudGlhdGlvblV0aWwuamF2YTo1ODcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuU2VyaWFsaXplZFZhbHVlLmRlc2VyaWFsaXplVmFsdWUoU2VyaWFsaXplZFZhbHVlLmphdmE6NjcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUub3BlcmF0b3JzLmNvb3JkaW5hdGlvbi5PcGVyYXRvckNvb3JkaW5hdG9ySG9sZGVyLmNyZWF0ZShPcGVyYXRvckNvb3JkaW5hdG9ySG9sZGVyLmphdmE6NDMxKQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkV4ZWN1dGlvbkpvYlZlcnRleC48aW5pdD4oRXhlY3V0aW9uSm9iVmVydGV4LmphdmE6MjExKQoJLi4uIDIxIG1vcmUKdAAlb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLkpvYkV4Y2VwdGlvbnVxAH4AoQAAFd2s7QAFc3IAJW9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5Kb2JFeGNlcHRpb24RtMgtZM5UkAIAAHhyACRvcmcuYXBhY2hlLmZsaW5rLnV0aWwuRmxpbmtFeGNlcHRpb24GQSsM+0WZtAIAAHhyABNqYXZhLmxhbmcuRXhjZXB0aW9u0P0fPho7HMQCAAB4cgATamF2YS5sYW5nLlRocm93YWJsZdXGNSc5d7jLAwAETAAFY2F1c2V0ABVMamF2YS9sYW5nL1Rocm93YWJsZTtMAA1kZXRhaWxNZXNzYWdldAASTGphdmEvbGFuZy9TdHJpbmc7WwAKc3RhY2tUcmFjZXQAHltMamF2YS9sYW5nL1N0YWNrVHJhY2VFbGVtZW50O0wAFHN1cHByZXNzZWRFeGNlcHRpb25zdAAQTGphdmEvdXRpbC9MaXN0O3hwc3IAIGphdmEuaW8uU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9ufKwCloY588ICAAB4cgAdamF2YS5pby5PYmplY3RTdHJlYW1FeGNlcHRpb25kw+RrjTn73wIAAHhyABNqYXZhLmlvLklPRXhjZXB0aW9ubIBzZGUl8KsCAAB4cQB+AAJxAH4ADHQAFXVuZXhwZWN0ZWQgYmxvY2sgZGF0YXVyAB5bTGphdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudDsCRio8PP0iOQIAAHhwAAAAR3NyABtqYXZhLmxhbmcu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ZmxpbmsucnVudGltZS5leGVjdXRpb25ncmFwaC5EZWZhdWx0RXhlY3V0aW9uR3JhcGh0ABpEZWZhdWx0RXhlY3V0aW9uR3JhcGguamF2YXQADmF0dGFjaEpvYkdyYXBoc3EAfgAQAAAAxHQARG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5leGVjdXRpb25ncmFwaC5EZWZhdWx0RXhlY3V0aW9uR3JhcGhCdWlsZGVydAAhRGVmYXVsdEV4ZWN1dGlvbkdyYXBoQnVpbGRlci5qYXZhdAAKYnVpbGRHcmFwaHNxAH4AEAAAAGt0AD9vcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLkRlZmF1bHRFeGVjdXRpb25HcmFwaEZhY3Rvcnl0ACFEZWZhdWx0RXhlY3V0aW9uR3JhcGhGYWN0b3J5LmphdmF0AB5jcmVhdGVBbmRSZXN0b3JlRXhlY3V0aW9uR3JhcGhzcQB+ABAAAAFWdAAwb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5TY2hlZHVsZXJCYXNldAASU2NoZWR1bGVyQmFzZS5qYXZhcQB+AGJzcQB+ABAAAAC+cQB+AGRxAH4AZXEAfgBWc3EAfgAQAAAAenQAM29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdFNjaGVkdWxlcnQAFURlZmF1bHRTY2hlZHVsZXIuamF2YXEAfgBWc3EAfgAQAAAAhHQAOm9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdFNjaGVkdWxlckZhY3Rvcnl0ABxEZWZhdWx0U2NoZWR1bGVyRmFjdG9yeS5qYXZhdAAOY3JlYXRlSW5zdGFuY2VzcQB+ABAAAABudABJb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5EZWZhdWx0U2xvdFBvb2xTZXJ2aWNlU2NoZWR1bGVyRmFjdG9yeXQAK0RlZmF1bHRTbG90UG9vbFNlcnZpY2VTY2hlZHVsZXJGYWN0b3J5LmphdmF0AA9jcmVhdGVTY2hlZHVsZXJzcQB+ABAAAAFUdAAsb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5Kb2JNYXN0ZXJ0AA5Kb2JNYXN0ZXIuamF2YXEAfgBxc3EAfgAQAAABPXEAfgBzcQB+AHRxAH4AVnNxAH4AEAAAAGt0AEtvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLmZhY3Rvcmllcy5EZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3Rvcnl0ACNEZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkuamF2YXQAHmludGVybmFsQ3JlYXRlSm9iTWFzdGVyU2VydmljZXNxAH4AEAAAAF9xAH4Ad3EAfgB4dAAfbGFtYmRhJGNyZWF0ZUpvYk1hc3RlclNlcnZpY2UkMHNxAH4AEAAAAHB0ACxvcmcuYXBhY2hlLmZsaW5rLnV0aWwuZnVuY3Rpb24uRnVuY3Rpb25VdGlsc3QAEkZ1bmN0aW9uVXRpbHMuamF2YXQAGmxhbWJkYSR1bmNoZWNrZWRTdXBwbGllciQ0c3EAfgAQAAAGNnQAMmphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRhYmxlRnV0dXJlJEFzeW5jU3VwcGx5dAAWQ29tcGxldGFibGVGdXR1cmUuamF2YXQAA3J1bnNxAH4AEAAAAf90AC5qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVydAAORXhlY3V0b3JzLmphdmF0AARjYWxsc3EAfgAQAAABCnQAH2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2t0AA9GdXR1cmVUYXNrLmphdmFxAH4Ag3NxAH4AEAAAALR0AERqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkU2NoZWR1bGVkRnV0dXJlVGFza3QAIFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhdAAKYWNjZXNzJDIwMXNxAH4AEAAAASVxAH4AjHEAfgCNcQB+AINzcQB+ABAAAAR9dAAnamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9ydAAXVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmF0AAlydW5Xb3JrZXJzcQB+ABAAAAJwdAAuamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlcnEAfgCScQB+AINzcQB+ABAAAALsdAAQamF2YS5sYW5nLlRocmVhZHQAC1RocmVhZC5qYXZhcQB+AINzcgAmamF2YS51dGlsLkNvbGxlY3Rpb25zJFVubW9kaWZpYWJsZUxpc3T8DyUxteyOEAIAAUwABGxpc3RxAH4AB3hyACxqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxlQ29sbGVjdGlvbhlCAIDLXvceAgABTAABY3QAFkxqYXZhL3V0aWwvQ29sbGVjdGlvbjt4cHNyABNqYXZhLnV0aWwuQXJyYXlMaXN0eIHSHZnHYZ0DAAFJAARzaXpleHAAAAAAdwQAAAAAeHEAfgCeeHQCRENhbm5vdCBpbnN0YW50aWF0ZSB0aGUgY29vcmRpbmF0b3IgZm9yIG9wZXJhdG9yIFNvdXJjZTogVGFibGVTb3VyY2VTY2FuKHRhYmxlPVtbcWhjX29kc19jYXRhbG9nLCBxaGNfaG1zLCBvcmRlcl9jb25zdW1lX2J1eV9vcmRlcl9zcmNdXSwgZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWQsIGRhdGFiYXNlX25hbWUsIG9wX3RzLCB0YWJsZV9uYW1lXSkgLT4gQ2FsYyhzZWxlY3Q9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZF0pIC0+IE5vdE51bGxFbmZvcmNlcihmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkXSl1cQB+AA4AAAAWc3EAfgAQAAAA2XEAfgBUcQB+AFVxAH4AVnNxAH4AEAAAAxhxAH4AWHEAfgBZcQB+AFpzcQB+ABAAAADEcQB+AFxxAH4AXXEAfgBec3EAfgAQAAAAa3EAfgBgcQB+AGFxAH4AYnNxAH4AEAAAAVZxAH4AZHEAfgBlcQB+AGJzcQB+ABAAAAC+cQB+AGRxAH4AZXEAfgBWc3EAfgAQAAAAenEAfgBocQB+AGlxAH4AVnNxAH4AEAAAAIRxAH4Aa3EAfgBscQB+AG1zcQB+ABAAAABucQB+AG9xAH4AcHEAfgBxc3EAfgAQAAABVHEAfgBzcQB+AHRxAH4AcXNxAH4AEAAAAT1xAH4Ac3EAfgB0cQB+AFZzcQB+ABAAAABrcQB+AHdxAH4AeHEAfgB5c3EAfgAQAAAAX3EAfgB3cQB+AHhxAH4Ae3NxAH4AEAAAAHBxAH4AfXEAfgB+cQB+AH9zcQB+ABAAAAY2cQB+AIFxAH4AgnEAfgCDc3EAfgAQAAAB/3EAfgCFcQB+AIZxAH4Ah3NxAH4AEAAAAQpxAH4AiXEAfgCKcQB+AINzcQB+ABAAAAC0cQB+AIxxAH4AjXEAfgCOc3EAfgAQAAABJXEAfgCMcQB+AI1xAH4Ag3NxAH4AEAAABH1xAH4AkXEAfgCScQB+AJNzcQB+ABAAAAJwcQB+AJVxAH4AknEAfgCDc3EAfgAQAAAC7HEAfgCXcQB+AJhxAH4Ag3EAfgCceHQCa29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5Kb2JFeGNlcHRpb246IENhbm5vdCBpbnN0YW50aWF0ZSB0aGUgY29vcmRpbmF0b3IgZm9yIG9wZXJhdG9yIFNvdXJjZTogVGFibGVTb3VyY2VTY2FuKHRhYmxlPVtbcWhjX29kc19jYXRhbG9nLCBxaGNfaG1zLCBvcmRlcl9jb25zdW1lX2J1eV9vcmRlcl9zcmNdXSwgZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWQsIGRhdGFiYXNlX25hbWUsIG9wX3RzLCB0YWJsZV9uYW1lXSkgLT4gQ2FsYyhzZWxlY3Q9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZF0pIC0+IE5vdE51bGxFbmZvcmNlcihmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkXSl1cQB+AA4AAAAKc3EAfgAQAAABPHQAJG9yZy5hcGFjaGUuZmxpbmsudXRpbC5FeGNlcHRpb25VdGlsc3QAE0V4Y2VwdGlvblV0aWxzLmphdmF0AAdyZXRocm93c3EAfgAQAAAAcnEAfgB9cQB+AH5xAH4Af3NxAH4AEAAABjZxAH4AgXEAfgCCcQB+AINzcQB+ABAAAAH/cQB+AIVxAH4AhnEAfgCHc3EAfgAQAAABCnEAfgCJcQB+AIpxAH4Ag3NxAH4AEAAAALRxAH4AjHEAfgCNcQB+AI5zcQB+ABAAAAElcQB+AIxxAH4AjXEAfgCDc3EAfgAQAAAEfXEAfgCRcQB+AJJxAH4Ak3NxAH4AEAAAAnBxAH4AlXEAfgCScQB+AINzcQB+ABAAAALscQB+AJdxAH4AmHEAfgCDcQB+AJx4dB3eamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb246IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5Kb2JFeGNlcHRpb246IENhbm5vdCBpbnN0YW50aWF0ZSB0aGUgY29vcmRpbmF0b3IgZm9yIG9wZXJhdG9yIFNvdXJjZTogVGFibGVTb3VyY2VTY2FuKHRhYmxlPVtbcWhjX29kc19jYXRhbG9nLCBxaGNfaG1zLCBvcmRlcl9jb25zdW1lX2J1eV9vcmRlcl9zcmNdXSwgZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWQsIGRhdGFiYXNlX25hbWUsIG9wX3RzLCB0YWJsZV9uYW1lXSkgLT4gQ2FsYyhzZWxlY3Q9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZF0pIC0+IE5vdE51bGxFbmZvcmNlcihmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkXSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5FeGNlcHRpb25VdGlscy5yZXRocm93KEV4Y2VwdGlvblV0aWxzLmphdmE6MzE2KQoJYXQgb3JnLmFwYWNoZS5mbGluay51dGlsLmZ1bmN0aW9uLkZ1bmN0aW9uVXRpbHMubGFtYmRhJHVuY2hlY2tlZFN1cHBsaWVyJDQoRnVuY3Rpb25VdGlscy5qYXZhOjExNCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRhYmxlRnV0dXJlJEFzeW5jU3VwcGx5LnJ1bihDb21wbGV0YWJsZUZ1dHVyZS5qYXZhOjE1OTApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVyLmNhbGwoRXhlY3V0b3JzLmphdmE6NTExKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4oRnV0dXJlVGFzay5qYXZhOjI2NikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrLmFjY2VzcyQyMDEoU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTgwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJFNjaGVkdWxlZEZ1dHVyZVRhc2sucnVuKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjI5MykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0OSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyNCkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0OCkKQ2F1c2VkIGJ5OiBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuSm9iRXhjZXB0aW9uOiBDYW5ub3QgaW5zdGFudGlhdGUgdGhlIGNvb3JkaW5hdG9yIGZvciBvcGVyYXRvciBTb3VyY2U6IFRhYmxlU291cmNlU2Nhbih0YWJsZT1bW3FoY19vZHNfY2F0YWxvZywgcWhjX2htcywgb3JkZXJfY29uc3VtZV9idXlfb3JkZXJfc3JjXV0sIGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkLCBkYXRhYmFzZV9uYW1lLCBvcF90cywgdGFibGVfbmFtZV0pIC0+IENhbGMoc2VsZWN0PVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWRdKSAtPiBOb3ROdWxsRW5mb3JjZXIoZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZF0pCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRXhlY3V0aW9uSm9iVmVydGV4Ljxpbml0PihFeGVjdXRpb25Kb2JWZXJ0ZXguamF2YToyMTcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRGVmYXVsdEV4ZWN1dGlvbkdyYXBoLmF0dGFjaEpvYkdyYXBoKERlZmF1bHRFeGVjdXRpb25HcmFwaC5qYXZhOjc5MikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5leGVjdXRpb25ncmFwaC5EZWZhdWx0RXhlY3V0aW9uR3JhcGhCdWlsZGVyLmJ1aWxkR3JhcGgoRGVmYXVsdEV4ZWN1dGlvbkdyYXBoQnVpbGRlci5qYXZhOjE5NikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeS5jcmVhdGVBbmRSZXN0b3JlRXhlY3V0aW9uR3JhcGgoRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeS5qYXZhOjEwNykKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuU2NoZWR1bGVyQmFzZS5jcmVhdGVBbmRSZXN0b3JlRXhlY3V0aW9uR3JhcGgoU2NoZWR1bGVyQmFzZS5qYXZhOjM0MikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuU2NoZWR1bGVyQmFzZS48aW5pdD4oU2NoZWR1bGVyQmFzZS5qYXZhOjE5MCkKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdFNjaGVkdWxlci48aW5pdD4oRGVmYXVsdFNjaGVkdWxlci5qYXZhOjEyMikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdFNjaGVkdWxlckZhY3RvcnkuY3JlYXRlSW5zdGFuY2UoRGVmYXVsdFNjaGVkdWxlckZhY3RvcnkuamF2YToxMzIpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkRlZmF1bHRTbG90UG9vbFNlcnZpY2VTY2hlZHVsZXJGYWN0b3J5LmNyZWF0ZVNjaGVkdWxlcihEZWZhdWx0U2xvdFBvb2xTZXJ2aWNlU2NoZWR1bGVyRmFjdG9yeS5qYXZhOjExMCkKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuSm9iTWFzdGVyLmNyZWF0ZVNjaGVkdWxlcihKb2JNYXN0ZXIuamF2YTozNDApCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkpvYk1hc3Rlci48aW5pdD4oSm9iTWFzdGVyLmphdmE6MzE3KQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5mYWN0b3JpZXMuRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmludGVybmFsQ3JlYXRlSm9iTWFzdGVyU2VydmljZShEZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkuamF2YToxMDcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLmZhY3Rvcmllcy5EZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkubGFtYmRhJGNyZWF0ZUpvYk1hc3RlclNlcnZpY2UkMChEZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkuamF2YTo5NSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5mdW5jdGlvbi5GdW5jdGlvblV0aWxzLmxhbWJkYSR1bmNoZWNrZWRTdXBwbGllciQ0KEZ1bmN0aW9uVXRpbHMuamF2YToxMTIpCgkuLi4gOCBtb3JlCkNhdXNlZCBieTogamF2YS5pby5TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb246IHVuZXhwZWN0ZWQgYmxvY2sgZGF0YQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1ODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRBcnJheShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE5NTApCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyMTEpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjQzMSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbC5kZXNlcmlhbGl6ZU9iamVjdChJbnN0YW50aWF0aW9uVXRpbC5qYXZhOjYxNSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbC5kZXNlcmlhbGl6ZU9iamVjdChJbnN0YW50aWF0aW9uVXRpbC5qYXZhOjYwMCkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbC5kZXNlcmlhbGl6ZU9iamVjdChJbnN0YW50aWF0aW9uVXRpbC5qYXZhOjU4NykKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5TZXJpYWxpemVkVmFsdWUuZGVzZXJpYWxpemVWYWx1ZShTZXJpYWxpemVkVmFsdWUuamF2YTo2NykKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5vcGVyYXRvcnMuY29vcmRpbmF0aW9uLk9wZXJhdG9yQ29vcmRpbmF0b3JIb2xkZXIuY3JlYXRlKE9wZXJhdG9yQ29vcmRpbmF0b3JIb2xkZXIuamF2YTo0MzEpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRXhlY3V0aW9uSm9iVmVydGV4Ljxpbml0PihFeGVjdXRpb25Kb2JWZXJ0ZXguamF2YToyMTEpCgkuLi4gMjEgbW9yZQp0ABpqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbnVxAH4AoQAAGbys7QAFc3IAGmphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9unl8GRwo0g+UCAAB4cgATamF2YS5sYW5nLkV4Y2VwdGlvbtD9Hz4aOxzEAgAAeHIAE2phdmEubGFuZy5UaHJvd2FibGXVxjUnOXe4ywMABEwABWNhdXNldAAVTGphdmEvbGFuZy9UaHJvd2FibGU7TAANZGV0YWlsTWVzc2FnZXQAEkxqYXZhL2xhbmcvU3RyaW5nO1sACnN0YWNrVHJhY2V0AB5bTGphdmEvbGFuZy9TdGFja1RyYWNlRWxlbWVudDtMABRzdXBwcmVzc2VkRXhjZXB0aW9uc3QAEExqYXZhL3V0aWwvTGlzdDt4cHNyACVvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuSm9iRXhjZXB0aW9uEbTILWTOVJACAAB4cgAkb3JnLmFwYWNoZS5mbGluay51dGlsLkZsaW5rRXhjZXB0aW9uBkErDPtFmbQCAAB4cQB+AAFzcgAgamF2YS5pby5TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb258rAKWhjnzwgIAAHhyAB1qYXZhLmlvLk9iamVjdFN0cmVhbUV4Y2VwdGlvbmTD5GuNOfvfAgAAeHIAE2phdmEuaW8uSU9FeGNlcHRpb25sgHNkZSXwqwIAAHhxAH4AAXEAfgAOdAAVdW5leHBlY3RlZCBibG9jayBkYXRhdXIAHltMamF2YS5sYW5nLlN0YWNrVHJhY2VFbGVtZW50OwJGKjw8/SI5AgAAeHAAAABHc3IAG2phdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudGEJxZomNt2FAgAESQAKbGluZU51bWJlckwADmRlY2xhcmluZ0NsYXNzcQB+AARMAAhmaWxlTmFtZXEAfgAETAAKbWV0aG9kTmFtZXEAfgAEeHAAAAYzdAAZamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbXQAFk9iamVjdElucHV0U3RyZWFtLmphdmF0AAtyZWFkT2JqZWN0MHNxAH4AEgAACO9xAH4AFHEAfgAVdAARZGVmYXVsdFJlYWRGaWVsZHNzcQB+ABIAAAh3cQB+ABRxAH4AFXQADnJlYWRTZXJpYWxEYXRhc3EAfgASAAAIFXEAfgAUcQB+ABV0ABJyZWFkT3JkaW5hcnlPYmplY3RzcQB+ABIAAAYlcQB+ABRxAH4AFXEAfgAWc3EAfgASAAAI73EAfgAUcQB+ABVxAH4AGHNxAH4AEgAACHdxAH4AFHEAfgAVcQB+ABpzcQB+ABIAAAgVcQB+ABRxAH4AFXEAfgAcc3EAfgASAAAGJXEAfgAUcQB+ABVxAH4AFnNxAH4AEgAACO9xAH4AFHEAfgAVcQB+ABhzcQB+ABIAAAh3cQB+ABRxAH4AFXEAfgAac3EAfgASAAAIFXEAfgAUcQB+ABVxAH4AHHNxAH4AEgAABiVxAH4AFHEAfgAVcQB+ABZzcQB+ABIAAAjvcQB+ABRxAH4AFXEAfgAYc3EAfgASAAAId3EAfgAUcQB+ABVxAH4AGnNxAH4AEgAACBVxAH4AFHEAfgAVcQB+ABxzcQB+ABIAAAYlcQB+ABRxAH4AFXEAfgAWc3EAfgASAAAI73EAfgAUcQB+ABVxAH4AGHNxAH4AEgAACHdxAH4AFHEAfgAVcQB+ABpzcQB+ABIAAAgVcQB+ABRxAH4AFXEAfgAcc3EAfgASAAAGJXEAfgAUcQB+ABVxAH4AFnNxAH4AEgAAB55xAH4AFHEAfgAVdAAJcmVhZEFycmF5c3EAfgASAAAGH3EAfgAUcQB+ABVxAH4AFnNxAH4AEgAACO9xAH4AFHEAfgAVcQB+ABhzcQB+ABIAAAh3cQB+ABRxAH4AFXEAfgAac3EAfgASAAAIFXEAfgAUcQB+ABVxAH4AHHNxAH4AEgAABiVxAH4AFHEAfgAVcQB+ABZzcQB+ABIAAAjvcQB+ABRxAH4AFXEAfgAYc3EAfgASAAAId3EAfgAUcQB+ABVxAH4AGnNxAH4AEgAACBVxAH4AFHEAfgAVcQB+ABxzcQB+ABIAAAYlcQB+ABRxAH4AFXEAfgAWc3EAfgASAAAI73EAfgAUcQB+ABVxAH4AGHNxAH4AEgAACHdxAH4AFHEAfgAVcQB+ABpzcQB+ABIAAAgVcQB+ABRxAH4AFXEAfgAcc3EAfgASAAAGJXEAfgAUcQB+ABVxAH4AFnNxAH4AEgAACO9xAH4AFHEAfgAVcQB+ABhzcQB+ABIAAAh3cQB+ABRxAH4AFXEAfgAac3EAfgASAAAIFXEAfgAUcQB+ABVxAH4AHHNxAH4AEgAABiVxAH4AFHEAfgAVcQB+ABZzcQB+ABIAAAjvcQB+ABRxAH4AFXEAfgAYc3EAfgASAAAIo3EAfgAUcQB+ABVxAH4AGnNxAH4AEgAACBVxAH4AFHEAfgAVcQB+ABxzcQB+ABIAAAYlcQB+ABRxAH4AFXEAfgAWc3EAfgASAAABr3EAfgAUcQB+ABV0AApyZWFkT2JqZWN0c3EAfgASAAACZ3QAJ29yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbHQAFkluc3RhbnRpYXRpb25VdGlsLmphdmF0ABFkZXNlcmlhbGl6ZU9iamVjdHNxAH4AEgAAAlhxAH4ASHEAfgBJcQB+AEpzcQB+ABIAAAJLcQB+AEhxAH4ASXEAfgBKc3EAfgASAAAAQ3QAJW9yZy5hcGFjaGUuZmxpbmsudXRpbC5TZXJpYWxpemVkVmFsdWV0ABRTZXJpYWxpemVkVmFsdWUuamF2YXQAEGRlc2VyaWFsaXplVmFsdWVzcQB+ABIAAAGvdABJb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLm9wZXJhdG9ycy5jb29yZGluYXRpb24uT3BlcmF0b3JDb29yZGluYXRvckhvbGRlcnQAHk9wZXJhdG9yQ29vcmRpbmF0b3JIb2xkZXIuamF2YXQABmNyZWF0ZXNxAH4AEgAAANN0ADpvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRXhlY3V0aW9uSm9iVmVydGV4dAAXRXhlY3V0aW9uSm9iVmVydGV4LmphdmF0AAY8aW5pdD5zcQB+ABIAAAMYdAA9b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaHQAGkRlZmF1bHRFeGVjdXRpb25HcmFwaC5qYXZhdAAOYXR0YWNoSm9iR3JhcGhzcQB+ABIAAADEdABEb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaEJ1aWxkZXJ0ACFEZWZhdWx0RXhlY3V0aW9uR3JhcGhCdWlsZGVyLmphdmF0AApidWlsZEdyYXBoc3EAfgASAAAAa3QAP29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeXQAIURlZmF1bHRFeGVjdXRpb25HcmFwaEZhY3RvcnkuamF2YXQAHmNyZWF0ZUFuZFJlc3RvcmVFeGVjdXRpb25HcmFwaHNxAH4AEgAAAVZ0ADBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLlNjaGVkdWxlckJhc2V0ABJTY2hlZHVsZXJCYXNlLmphdmFxAH4AZHNxAH4AEgAAAL5xAH4AZnEAfgBncQB+AFhzcQB+ABIAAAB6dAAzb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5EZWZhdWx0U2NoZWR1bGVydAAVRGVmYXVsdFNjaGVkdWxlci5qYXZhcQB+AFhzcQB+ABIAAACEdAA6b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5EZWZhdWx0U2NoZWR1bGVyRmFjdG9yeXQAHERlZmF1bHRTY2hlZHVsZXJGYWN0b3J5LmphdmF0AA5jcmVhdGVJbnN0YW5jZXNxAH4AEgAAAG50AElvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkRlZmF1bHRTbG90UG9vbFNlcnZpY2VTY2hlZHVsZXJGYWN0b3J5dAArRGVmYXVsdFNsb3RQb29sU2VydmljZVNjaGVkdWxlckZhY3RvcnkuamF2YXQAD2NyZWF0ZVNjaGVkdWxlcnNxAH4AEgAAAVR0ACxvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkpvYk1hc3RlcnQADkpvYk1hc3Rlci5qYXZhcQB+AHNzcQB+ABIAAAE9cQB+AHVxAH4AdnEAfgBYc3EAfgASAAAAa3QAS29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuZmFjdG9yaWVzLkRlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeXQAI0RlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeS5qYXZhdAAeaW50ZXJuYWxDcmVhdGVKb2JNYXN0ZXJTZXJ2aWNlc3EAfgASAAAAX3EAfgB5cQB+AHp0AB9sYW1iZGEkY3JlYXRlSm9iTWFzdGVyU2VydmljZSQwc3EAfgASAAAAcHQALG9yZy5hcGFjaGUuZmxpbmsudXRpbC5mdW5jdGlvbi5GdW5jdGlvblV0aWxzdAASRnVuY3Rpb25VdGlscy5qYXZhdAAabGFtYmRhJHVuY2hlY2tlZFN1cHBsaWVyJDRzcQB+ABIAAAY2dAAyamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmUkQXN5bmNTdXBwbHl0ABZDb21wbGV0YWJsZUZ1dHVyZS5qYXZhdAADcnVuc3EAfgASAAAB/3QALmphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXJ0AA5FeGVjdXRvcnMuamF2YXQABGNhbGxzcQB+ABIAAAEKdAAfamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFza3QAD0Z1dHVyZVRhc2suamF2YXEAfgCFc3EAfgASAAAAtHQARGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrdAAgU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmF0AAphY2Nlc3MkMjAxc3EAfgASAAABJXEAfgCOcQB+AI9xAH4AhXNxAH4AEgAABH10ACdqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3J0ABdUaHJlYWRQb29sRXhlY3V0b3IuamF2YXQACXJ1bldvcmtlcnNxAH4AEgAAAnB0AC5qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VycQB+AJRxAH4AhXNxAH4AEgAAAux0ABBqYXZhLmxhbmcuVGhyZWFkdAALVGhyZWFkLmphdmFxAH4AhXNyACZqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxlTGlzdPwPJTG17I4QAgABTAAEbGlzdHEAfgAGeHIALGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVDb2xsZWN0aW9uGUIAgMte9x4CAAFMAAFjdAAWTGphdmEvdXRpbC9Db2xsZWN0aW9uO3hwc3IAE2phdmEudXRpbC5BcnJheUxpc3R4gdIdmcdhnQMAAUkABHNpemV4cAAAAAB3BAAAAAB4cQB+AKB4dAJEQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKXVxAH4AEAAAABZzcQB+ABIAAADZcQB+AFZxAH4AV3EAfgBYc3EAfgASAAADGHEAfgBacQB+AFtxAH4AXHNxAH4AEgAAAMRxAH4AXnEAfgBfcQB+AGBzcQB+ABIAAABrcQB+AGJxAH4AY3EAfgBkc3EAfgASAAABVnEAfgBmcQB+AGdxAH4AZHNxAH4AEgAAAL5xAH4AZnEAfgBncQB+AFhzcQB+ABIAAAB6cQB+AGpxAH4Aa3EAfgBYc3EAfgASAAAAhHEAfgBtcQB+AG5xAH4Ab3NxAH4AEgAAAG5xAH4AcXEAfgBycQB+AHNzcQB+ABIAAAFUcQB+AHVxAH4AdnEAfgBzc3EAfgASAAABPXEAfgB1cQB+AHZxAH4AWHNxAH4AEgAAAGtxAH4AeXEAfgB6cQB+AHtzcQB+ABIAAABfcQB+AHlxAH4AenEAfgB9c3EAfgASAAAAcHEAfgB/cQB+AIBxAH4AgXNxAH4AEgAABjZxAH4Ag3EAfgCEcQB+AIVzcQB+ABIAAAH/cQB+AIdxAH4AiHEAfgCJc3EAfgASAAABCnEAfgCLcQB+AIxxAH4AhXNxAH4AEgAAALRxAH4AjnEAfgCPcQB+AJBzcQB+ABIAAAElcQB+AI5xAH4Aj3EAfgCFc3EAfgASAAAEfXEAfgCTcQB+AJRxAH4AlXNxAH4AEgAAAnBxAH4Al3EAfgCUcQB+AIVzcQB+ABIAAALscQB+AJlxAH4AmnEAfgCFcQB+AJ54dAJrb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLkpvYkV4Y2VwdGlvbjogQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKXVxAH4AEAAAAApzcQB+ABIAAAE8dAAkb3JnLmFwYWNoZS5mbGluay51dGlsLkV4Y2VwdGlvblV0aWxzdAATRXhjZXB0aW9uVXRpbHMuamF2YXQAB3JldGhyb3dzcQB+ABIAAABycQB+AH9xAH4AgHEAfgCBc3EAfgASAAAGNnEAfgCDcQB+AIRxAH4AhXNxAH4AEgAAAf9xAH4Ah3EAfgCIcQB+AIlzcQB+ABIAAAEKcQB+AItxAH4AjHEAfgCFc3EAfgASAAAAtHEAfgCOcQB+AI9xAH4AkHNxAH4AEgAAASVxAH4AjnEAfgCPcQB+AIVzcQB+ABIAAAR9cQB+AJNxAH4AlHEAfgCVc3EAfgASAAACcHEAfgCXcQB+AJRxAH4AhXNxAH4AEgAAAuxxAH4AmXEAfgCacQB+AIVxAH4Annh0AodqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbjogb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLkpvYkV4Y2VwdGlvbjogQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKXVxAH4ADgAAAApzcQB+ABAAAAERdAAmamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmVxAH4AgnQAD2VuY29kZVRocm93YWJsZXNxAH4AEAAAARhxAH4A03EAfgCCdAARY29tcGxldGVUaHJvd2FibGVzcQB+ABAAAAY4cQB+AIFxAH4AgnEAfgCDc3EAfgAQAAAB/3EAfgCFcQB+AIZxAH4Ah3NxAH4AEAAAAQpxAH4AiXEAfgCKcQB+AINzcQB+ABAAAAC0cQB+AIxxAH4AjXEAfgCOc3EAfgAQAAABJXEAfgCMcQB+AI1xAH4Ag3NxAH4AEAAABH1xAH4AkXEAfgCScQB+AJNzcQB+ABAAAAJwcQB+AJVxAH4AknEAfgCDc3EAfgAQAAAC7HEAfgCXcQB+AJhxAH4Ag3EAfgCceHQhr2phdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRpb25FeGNlcHRpb246IGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uOiBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuSm9iRXhjZXB0aW9uOiBDYW5ub3QgaW5zdGFudGlhdGUgdGhlIGNvb3JkaW5hdG9yIGZvciBvcGVyYXRvciBTb3VyY2U6IFRhYmxlU291cmNlU2Nhbih0YWJsZT1bW3FoY19vZHNfY2F0YWxvZywgcWhjX2htcywgb3JkZXJfY29uc3VtZV9idXlfb3JkZXJfc3JjXV0sIGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkLCBkYXRhYmFzZV9uYW1lLCBvcF90cywgdGFibGVfbmFtZV0pIC0+IENhbGMoc2VsZWN0PVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWRdKSAtPiBOb3ROdWxsRW5mb3JjZXIoZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZF0pCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5Db21wbGV0YWJsZUZ1dHVyZS5lbmNvZGVUaHJvd2FibGUoQ29tcGxldGFibGVGdXR1cmUuamF2YToyNzMpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5Db21wbGV0YWJsZUZ1dHVyZS5jb21wbGV0ZVRocm93YWJsZShDb21wbGV0YWJsZUZ1dHVyZS5qYXZhOjI4MCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRhYmxlRnV0dXJlJEFzeW5jU3VwcGx5LnJ1bihDb21wbGV0YWJsZUZ1dHVyZS5qYXZhOjE1OTIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVyLmNhbGwoRXhlY3V0b3JzLmphdmE6NTExKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4oRnV0dXJlVGFzay5qYXZhOjI2NikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrLmFjY2VzcyQyMDEoU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTgwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJFNjaGVkdWxlZEZ1dHVyZVRhc2sucnVuKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjI5MykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0OSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyNCkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0OCkKQ2F1c2VkIGJ5OiBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbjogb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLkpvYkV4Y2VwdGlvbjogQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKQoJYXQgb3JnLmFwYWNoZS5mbGluay51dGlsLkV4Y2VwdGlvblV0aWxzLnJldGhyb3coRXhjZXB0aW9uVXRpbHMuamF2YTozMTYpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuZnVuY3Rpb24uRnVuY3Rpb25VdGlscy5sYW1iZGEkdW5jaGVja2VkU3VwcGxpZXIkNChGdW5jdGlvblV0aWxzLmphdmE6MTE0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmUkQXN5bmNTdXBwbHkucnVuKENvbXBsZXRhYmxlRnV0dXJlLmphdmE6MTU5MCkKCS4uLiA3IG1vcmUKQ2F1c2VkIGJ5OiBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuSm9iRXhjZXB0aW9uOiBDYW5ub3QgaW5zdGFudGlhdGUgdGhlIGNvb3JkaW5hdG9yIGZvciBvcGVyYXRvciBTb3VyY2U6IFRhYmxlU291cmNlU2Nhbih0YWJsZT1bW3FoY19vZHNfY2F0YWxvZywgcWhjX2htcywgb3JkZXJfY29uc3VtZV9idXlfb3JkZXJfc3JjXV0sIGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkLCBkYXRhYmFzZV9uYW1lLCBvcF90cywgdGFibGVfbmFtZV0pIC0+IENhbGMoc2VsZWN0PVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWRdKSAtPiBOb3ROdWxsRW5mb3JjZXIoZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZF0pCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRXhlY3V0aW9uSm9iVmVydGV4Ljxpbml0PihFeGVjdXRpb25Kb2JWZXJ0ZXguamF2YToyMTcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRGVmYXVsdEV4ZWN1dGlvbkdyYXBoLmF0dGFjaEpvYkdyYXBoKERlZmF1bHRFeGVjdXRpb25HcmFwaC5qYXZhOjc5MikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5leGVjdXRpb25ncmFwaC5EZWZhdWx0RXhlY3V0aW9uR3JhcGhCdWlsZGVyLmJ1aWxkR3JhcGgoRGVmYXVsdEV4ZWN1dGlvbkdyYXBoQnVpbGRlci5qYXZhOjE5NikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeS5jcmVhdGVBbmRSZXN0b3JlRXhlY3V0aW9uR3JhcGgoRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeS5qYXZhOjEwNykKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuU2NoZWR1bGVyQmFzZS5jcmVhdGVBbmRSZXN0b3JlRXhlY3V0aW9uR3JhcGgoU2NoZWR1bGVyQmFzZS5qYXZhOjM0MikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuU2NoZWR1bGVyQmFzZS48aW5pdD4oU2NoZWR1bGVyQmFzZS5qYXZhOjE5MCkKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdFNjaGVkdWxlci48aW5pdD4oRGVmYXVsdFNjaGVkdWxlci5qYXZhOjEyMikKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdFNjaGVkdWxlckZhY3RvcnkuY3JlYXRlSW5zdGFuY2UoRGVmYXVsdFNjaGVkdWxlckZhY3RvcnkuamF2YToxMzIpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkRlZmF1bHRTbG90UG9vbFNlcnZpY2VTY2hlZHVsZXJGYWN0b3J5LmNyZWF0ZVNjaGVkdWxlcihEZWZhdWx0U2xvdFBvb2xTZXJ2aWNlU2NoZWR1bGVyRmFjdG9yeS5qYXZhOjExMCkKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuSm9iTWFzdGVyLmNyZWF0ZVNjaGVkdWxlcihKb2JNYXN0ZXIuamF2YTozNDApCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkpvYk1hc3Rlci48aW5pdD4oSm9iTWFzdGVyLmphdmE6MzE3KQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5mYWN0b3JpZXMuRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmludGVybmFsQ3JlYXRlSm9iTWFzdGVyU2VydmljZShEZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkuamF2YToxMDcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLmZhY3Rvcmllcy5EZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkubGFtYmRhJGNyZWF0ZUpvYk1hc3RlclNlcnZpY2UkMChEZWZhdWx0Sm9iTWFzdGVyU2VydmljZUZhY3RvcnkuamF2YTo5NSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5mdW5jdGlvbi5GdW5jdGlvblV0aWxzLmxhbWJkYSR1bmNoZWNrZWRTdXBwbGllciQ0KEZ1bmN0aW9uVXRpbHMuamF2YToxMTIpCgkuLi4gOCBtb3JlCkNhdXNlZCBieTogamF2YS5pby5TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb246IHVuZXhwZWN0ZWQgYmxvY2sgZGF0YQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1ODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRBcnJheShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE5NTApCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIxNjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0uZGVmYXVsdFJlYWRGaWVsZHMoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkU2VyaWFsRGF0YShPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyMTEpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPcmRpbmFyeU9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIwNjkpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QwKE9iamVjdElucHV0U3RyZWFtLmphdmE6MTU3MykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjQzMSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbC5kZXNlcmlhbGl6ZU9iamVjdChJbnN0YW50aWF0aW9uVXRpbC5qYXZhOjYxNSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbC5kZXNlcmlhbGl6ZU9iamVjdChJbnN0YW50aWF0aW9uVXRpbC5qYXZhOjYwMCkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbC5kZXNlcmlhbGl6ZU9iamVjdChJbnN0YW50aWF0aW9uVXRpbC5qYXZhOjU4NykKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5TZXJpYWxpemVkVmFsdWUuZGVzZXJpYWxpemVWYWx1ZShTZXJpYWxpemVkVmFsdWUuamF2YTo2NykKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5vcGVyYXRvcnMuY29vcmRpbmF0aW9uLk9wZXJhdG9yQ29vcmRpbmF0b3JIb2xkZXIuY3JlYXRlKE9wZXJhdG9yQ29vcmRpbmF0b3JIb2xkZXIuamF2YTo0MzEpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRXhlY3V0aW9uSm9iVmVydGV4Ljxpbml0PihFeGVjdXRpb25Kb2JWZXJ0ZXguamF2YToyMTEpCgkuLi4gMjEgbW9yZQp0AChqYXZhLnV0aWwuY29uY3VycmVudC5Db21wbGV0aW9uRXhjZXB0aW9udXEAfgChAAAdzaztAAVzcgAoamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGlvbkV4Y2VwdGlvbmyqsXO/tOBpAgAAeHIAGmphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9unl8GRwo0g+UCAAB4cgATamF2YS5sYW5nLkV4Y2VwdGlvbtD9Hz4aOxzEAgAAeHIAE2phdmEubGFuZy5UaHJvd2FibGXVxjUnOXe4ywMABEwABWNhdXNldAAVTGphdmEvbGFuZy9UaHJvd2FibGU7TAANZGV0YWlsTWVzc2FnZXQAEkxqYXZhL2xhbmcvU3RyaW5nO1sACnN0YWNrVHJhY2V0AB5bTGphdmEvbGFuZy9TdGFja1RyYWNlRWxlbWVudDtMABRzdXBwcmVzc2VkRXhjZXB0aW9uc3QAEExqYXZhL3V0aWwvTGlzdDt4cHNxAH4AAXNyACVvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuSm9iRXhjZXB0aW9uEbTILWTOVJACAAB4cgAkb3JnLmFwYWNoZS5mbGluay51dGlsLkZsaW5rRXhjZXB0aW9uBkErDPtFmbQCAAB4cQB+AAJzcgAgamF2YS5pby5TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb258rAKWhjnzwgIAAHhyAB1qYXZhLmlvLk9iamVjdFN0cmVhbUV4Y2VwdGlvbmTD5GuNOfvfAgAAeHIAE2phdmEuaW8uSU9FeGNlcHRpb25sgHNkZSXwqwIAAHhxAH4AAnEAfgAQdAAVdW5leHBlY3RlZCBibG9jayBkYXRhdXIAHltMamF2YS5sYW5nLlN0YWNrVHJhY2VFbGVtZW50OwJGKjw8/SI5AgAAeHAAAABHc3IAG2phdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudGEJxZomNt2FAgAESQAKbGluZU51bWJlckwADmRlY2xhcmluZ0NsYXNzcQB+AAVMAAhmaWxlTmFtZXEAfgAFTAAKbWV0aG9kTmFtZXEAfgAFeHAAAAYzdAAZamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbXQAFk9iamVjdElucHV0U3RyZWFtLmphdmF0AAtyZWFkT2JqZWN0MHNxAH4AFAAACO9xAH4AFnEAfgAXdAARZGVmYXVsdFJlYWRGaWVsZHNzcQB+ABQAAAh3cQB+ABZxAH4AF3QADnJlYWRTZXJpYWxEYXRhc3EAfgAUAAAIFXEAfgAWcQB+ABd0ABJyZWFkT3JkaW5hcnlPYmplY3RzcQB+ABQAAAYlcQB+ABZxAH4AF3EAfgAYc3EAfgAUAAAI73EAfgAWcQB+ABdxAH4AGnNxAH4AFAAACHdxAH4AFnEAfgAXcQB+ABxzcQB+ABQAAAgVcQB+ABZxAH4AF3EAfgAec3EAfgAUAAAGJXEAfgAWcQB+ABdxAH4AGHNxAH4AFAAACO9xAH4AFnEAfgAXcQB+ABpzcQB+ABQAAAh3cQB+ABZxAH4AF3EAfgAcc3EAfgAUAAAIFXEAfgAWcQB+ABdxAH4AHnNxAH4AFAAABiVxAH4AFnEAfgAXcQB+ABhzcQB+ABQAAAjvcQB+ABZxAH4AF3EAfgAac3EAfgAUAAAId3EAfgAWcQB+ABdxAH4AHHNxAH4AFAAACBVxAH4AFnEAfgAXcQB+AB5zcQB+ABQAAAYlcQB+ABZxAH4AF3EAfgAYc3EAfgAUAAAI73EAfgAWcQB+ABdxAH4AGnNxAH4AFAAACHdxAH4AFnEAfgAXcQB+ABxzcQB+ABQAAAgVcQB+ABZxAH4AF3EAfgAec3EAfgAUAAAGJXEAfgAWcQB+ABdxAH4AGHNxAH4AFAAAB55xAH4AFnEAfgAXdAAJcmVhZEFycmF5c3EAfgAUAAAGH3EAfgAWcQB+ABdxAH4AGHNxAH4AFAAACO9xAH4AFnEAfgAXcQB+ABpzcQB+ABQAAAh3cQB+ABZxAH4AF3EAfgAcc3EAfgAUAAAIFXEAfgAWcQB+ABdxAH4AHnNxAH4AFAAABiVxAH4AFnEAfgAXcQB+ABhzcQB+ABQAAAjvcQB+ABZxAH4AF3EAfgAac3EAfgAUAAAId3EAfgAWcQB+ABdxAH4AHHNxAH4AFAAACBVxAH4AFnEAfgAXcQB+AB5zcQB+ABQAAAYlcQB+ABZxAH4AF3EAfgAYc3EAfgAUAAAI73EAfgAWcQB+ABdxAH4AGnNxAH4AFAAACHdxAH4AFnEAfgAXcQB+ABxzcQB+ABQAAAgVcQB+ABZxAH4AF3EAfgAec3EAfgAUAAAGJXEAfgAWcQB+ABdxAH4AGHNxAH4AFAAACO9xAH4AFnEAfgAXcQB+ABpzcQB+ABQAAAh3cQB+ABZxAH4AF3EAfgAcc3EAfgAUAAAIFXEAfgAWcQB+ABdxAH4AHnNxAH4AFAAABiVxAH4AFnEAfgAXcQB+ABhzcQB+ABQAAAjvcQB+ABZxAH4AF3EAfgAac3EAfgAUAAAIo3EAfgAWcQB+ABdxAH4AHHNxAH4AFAAACBVxAH4AFnEAfgAXcQB+AB5zcQB+ABQAAAYlcQB+ABZxAH4AF3EAfgAYc3EAfgAUAAABr3EAfgAWcQB+ABd0AApyZWFkT2JqZWN0c3EAfgAUAAACZ3QAJ29yZy5hcGFjaGUuZmxpbmsudXRpbC5JbnN0YW50aWF0aW9uVXRpbHQAFkluc3RhbnRpYXRpb25VdGlsLmphdmF0ABFkZXNlcmlhbGl6ZU9iamVjdHNxAH4AFAAAAlhxAH4ASnEAfgBLcQB+AExzcQB+ABQAAAJLcQB+AEpxAH4AS3EAfgBMc3EAfgAUAAAAQ3QAJW9yZy5hcGFjaGUuZmxpbmsudXRpbC5TZXJpYWxpemVkVmFsdWV0ABRTZXJpYWxpemVkVmFsdWUuamF2YXQAEGRlc2VyaWFsaXplVmFsdWVzcQB+ABQAAAGvdABJb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLm9wZXJhdG9ycy5jb29yZGluYXRpb24uT3BlcmF0b3JDb29yZGluYXRvckhvbGRlcnQAHk9wZXJhdG9yQ29vcmRpbmF0b3JIb2xkZXIuamF2YXQABmNyZWF0ZXNxAH4AFAAAANN0ADpvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRXhlY3V0aW9uSm9iVmVydGV4dAAXRXhlY3V0aW9uSm9iVmVydGV4LmphdmF0AAY8aW5pdD5zcQB+ABQAAAMYdAA9b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaHQAGkRlZmF1bHRFeGVjdXRpb25HcmFwaC5qYXZhdAAOYXR0YWNoSm9iR3JhcGhzcQB+ABQAAADEdABEb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaEJ1aWxkZXJ0ACFEZWZhdWx0RXhlY3V0aW9uR3JhcGhCdWlsZGVyLmphdmF0AApidWlsZEdyYXBoc3EAfgAUAAAAa3QAP29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeXQAIURlZmF1bHRFeGVjdXRpb25HcmFwaEZhY3RvcnkuamF2YXQAHmNyZWF0ZUFuZFJlc3RvcmVFeGVjdXRpb25HcmFwaHNxAH4AFAAAAVZ0ADBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLlNjaGVkdWxlckJhc2V0ABJTY2hlZHVsZXJCYXNlLmphdmFxAH4AZnNxAH4AFAAAAL5xAH4AaHEAfgBpcQB+AFpzcQB+ABQAAAB6dAAzb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5EZWZhdWx0U2NoZWR1bGVydAAVRGVmYXVsdFNjaGVkdWxlci5qYXZhcQB+AFpzcQB+ABQAAACEdAA6b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5EZWZhdWx0U2NoZWR1bGVyRmFjdG9yeXQAHERlZmF1bHRTY2hlZHVsZXJGYWN0b3J5LmphdmF0AA5jcmVhdGVJbnN0YW5jZXNxAH4AFAAAAG50AElvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkRlZmF1bHRTbG90UG9vbFNlcnZpY2VTY2hlZHVsZXJGYWN0b3J5dAArRGVmYXVsdFNsb3RQb29sU2VydmljZVNjaGVkdWxlckZhY3RvcnkuamF2YXQAD2NyZWF0ZVNjaGVkdWxlcnNxAH4AFAAAAVR0ACxvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkpvYk1hc3RlcnQADkpvYk1hc3Rlci5qYXZhcQB+AHVzcQB+ABQAAAE9cQB+AHdxAH4AeHEAfgBac3EAfgAUAAAAa3QAS29yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuZmFjdG9yaWVzLkRlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeXQAI0RlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeS5qYXZhdAAeaW50ZXJuYWxDcmVhdGVKb2JNYXN0ZXJTZXJ2aWNlc3EAfgAUAAAAX3EAfgB7cQB+AHx0AB9sYW1iZGEkY3JlYXRlSm9iTWFzdGVyU2VydmljZSQwc3EAfgAUAAAAcHQALG9yZy5hcGFjaGUuZmxpbmsudXRpbC5mdW5jdGlvbi5GdW5jdGlvblV0aWxzdAASRnVuY3Rpb25VdGlscy5qYXZhdAAabGFtYmRhJHVuY2hlY2tlZFN1cHBsaWVyJDRzcQB+ABQAAAY2dAAyamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmUkQXN5bmNTdXBwbHl0ABZDb21wbGV0YWJsZUZ1dHVyZS5qYXZhdAADcnVuc3EAfgAUAAAB/3QALmphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXJ0AA5FeGVjdXRvcnMuamF2YXQABGNhbGxzcQB+ABQAAAEKdAAfamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFza3QAD0Z1dHVyZVRhc2suamF2YXEAfgCHc3EAfgAUAAAAtHQARGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrdAAgU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmF0AAphY2Nlc3MkMjAxc3EAfgAUAAABJXEAfgCQcQB+AJFxAH4Ah3NxAH4AFAAABH10ACdqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3J0ABdUaHJlYWRQb29sRXhlY3V0b3IuamF2YXQACXJ1bldvcmtlcnNxAH4AFAAAAnB0AC5qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VycQB+AJZxAH4Ah3NxAH4AFAAAAux0ABBqYXZhLmxhbmcuVGhyZWFkdAALVGhyZWFkLmphdmFxAH4Ah3NyACZqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxlTGlzdPwPJTG17I4QAgABTAAEbGlzdHEAfgAHeHIALGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVDb2xsZWN0aW9uGUIAgMte9x4CAAFMAAFjdAAWTGphdmEvdXRpbC9Db2xsZWN0aW9uO3hwc3IAE2phdmEudXRpbC5BcnJheUxpc3R4gdIdmcdhnQMAAUkABHNpemV4cAAAAAB3BAAAAAB4cQB+AKJ4dAJEQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKXVxAH4AEgAAABZzcQB+ABQAAADZcQB+AFhxAH4AWXEAfgBac3EAfgAUAAADGHEAfgBccQB+AF1xAH4AXnNxAH4AFAAAAMRxAH4AYHEAfgBhcQB+AGJzcQB+ABQAAABrcQB+AGRxAH4AZXEAfgBmc3EAfgAUAAABVnEAfgBocQB+AGlxAH4AZnNxAH4AFAAAAL5xAH4AaHEAfgBpcQB+AFpzcQB+ABQAAAB6cQB+AGxxAH4AbXEAfgBac3EAfgAUAAAAhHEAfgBvcQB+AHBxAH4AcXNxAH4AFAAAAG5xAH4Ac3EAfgB0cQB+AHVzcQB+ABQAAAFUcQB+AHdxAH4AeHEAfgB1c3EAfgAUAAABPXEAfgB3cQB+AHhxAH4AWnNxAH4AFAAAAGtxAH4Ae3EAfgB8cQB+AH1zcQB+ABQAAABfcQB+AHtxAH4AfHEAfgB/c3EAfgAUAAAAcHEAfgCBcQB+AIJxAH4Ag3NxAH4AFAAABjZxAH4AhXEAfgCGcQB+AIdzcQB+ABQAAAH/cQB+AIlxAH4AinEAfgCLc3EAfgAUAAABCnEAfgCNcQB+AI5xAH4Ah3NxAH4AFAAAALRxAH4AkHEAfgCRcQB+AJJzcQB+ABQAAAElcQB+AJBxAH4AkXEAfgCHc3EAfgAUAAAEfXEAfgCVcQB+AJZxAH4Al3NxAH4AFAAAAnBxAH4AmXEAfgCWcQB+AIdzcQB+ABQAAALscQB+AJtxAH4AnHEAfgCHcQB+AKB4dAJrb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLkpvYkV4Y2VwdGlvbjogQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKXVxAH4AEgAAAApzcQB+ABQAAAE8dAAkb3JnLmFwYWNoZS5mbGluay51dGlsLkV4Y2VwdGlvblV0aWxzdAATRXhjZXB0aW9uVXRpbHMuamF2YXQAB3JldGhyb3dzcQB+ABQAAABycQB+AIFxAH4AgnEAfgCDc3EAfgAUAAAGNnEAfgCFcQB+AIZxAH4Ah3NxAH4AFAAAAf9xAH4AiXEAfgCKcQB+AItzcQB+ABQAAAEKcQB+AI1xAH4AjnEAfgCHc3EAfgAUAAAAtHEAfgCQcQB+AJFxAH4AknNxAH4AFAAAASVxAH4AkHEAfgCRcQB+AIdzcQB+ABQAAAR9cQB+AJVxAH4AlnEAfgCXc3EAfgAUAAACcHEAfgCZcQB+AJZxAH4Ah3NxAH4AFAAAAuxxAH4Am3EAfgCccQB+AIdxAH4AoHh0AodqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbjogb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLkpvYkV4Y2VwdGlvbjogQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKXVxAH4AEgAAAApzcQB+ABQAAAERdAAmamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmVxAH4AhnQAD2VuY29kZVRocm93YWJsZXNxAH4AFAAAARhxAH4AzXEAfgCGdAARY29tcGxldGVUaHJvd2FibGVzcQB+ABQAAAY4cQB+AIVxAH4AhnEAfgCHc3EAfgAUAAAB/3EAfgCJcQB+AIpxAH4Ai3NxAH4AFAAAAQpxAH4AjXEAfgCOcQB+AIdzcQB+ABQAAAC0cQB+AJBxAH4AkXEAfgCSc3EAfgAUAAABJXEAfgCQcQB+AJFxAH4Ah3NxAH4AFAAABH1xAH4AlXEAfgCWcQB+AJdzcQB+ABQAAAJwcQB+AJlxAH4AlnEAfgCHc3EAfgAUAAAC7HEAfgCbcQB+AJxxAH4Ah3EAfgCgeHQAHkNvdWxkIG5vdCBzdGFydCB0aGUgSm9iTWFzdGVyLnVxAH4ADgAAAAxzcQB+ABAAAABhdABBb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5EZWZhdWx0Sm9iTWFzdGVyU2VydmljZVByb2Nlc3N0ACNEZWZhdWx0Sm9iTWFzdGVyU2VydmljZVByb2Nlc3MuamF2YXQADGxhbWJkYSRuZXckMHNxAH4AEAAAAvhxAH4A03EAfgCCdAAPdW5pV2hlbkNvbXBsZXRlc3EAfgAQAAAC4HQANmphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRhYmxlRnV0dXJlJFVuaVdoZW5Db21wbGV0ZXEAfgCCdAAHdHJ5RmlyZXNxAH4AEAAAAdpxAH4A03EAfgCCdAAMcG9zdENvbXBsZXRlc3EAfgAQAAAGO3EAfgCBcQB+AIJxAH4Ag3NxAH4AEAAAAf9xAH4AhXEAfgCGcQB+AIdzcQB+ABAAAAEKcQB+AIlxAH4AinEAfgCDc3EAfgAQAAAAtHEAfgCMcQB+AI1xAH4AjnNxAH4AEAAAASVxAH4AjHEAfgCNcQB+AINzcQB+ABAAAAR9cQB+AJFxAH4AknEAfgCTc3EAfgAQAAACcHEAfgCVcQB+AJJxAH4Ag3NxAH4AEAAAAuxxAH4Al3EAfgCYcQB+AINxAH4AnHh0I/5vcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuY2xpZW50LkpvYkluaXRpYWxpemF0aW9uRXhjZXB0aW9uOiBDb3VsZCBub3Qgc3RhcnQgdGhlIEpvYk1hc3Rlci4KCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VQcm9jZXNzLmxhbWJkYSRuZXckMChEZWZhdWx0Sm9iTWFzdGVyU2VydmljZVByb2Nlc3MuamF2YTo5NykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRhYmxlRnV0dXJlLnVuaVdoZW5Db21wbGV0ZShDb21wbGV0YWJsZUZ1dHVyZS5qYXZhOjc2MCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRhYmxlRnV0dXJlJFVuaVdoZW5Db21wbGV0ZS50cnlGaXJlKENvbXBsZXRhYmxlRnV0dXJlLmphdmE6NzM2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmUucG9zdENvbXBsZXRlKENvbXBsZXRhYmxlRnV0dXJlLmphdmE6NDc0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmUkQXN5bmNTdXBwbHkucnVuKENvbXBsZXRhYmxlRnV0dXJlLmphdmE6MTU5NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXIuY2FsbChFeGVjdXRvcnMuamF2YTo1MTEpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLnJ1bihGdXR1cmVUYXNrLmphdmE6MjY2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJFNjaGVkdWxlZEZ1dHVyZVRhc2suYWNjZXNzJDIwMShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxODApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkU2NoZWR1bGVkRnV0dXJlVGFzay5ydW4oU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MjkzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ5KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI0KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ4KQpDYXVzZWQgYnk6IGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRpb25FeGNlcHRpb246IGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uOiBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuSm9iRXhjZXB0aW9uOiBDYW5ub3QgaW5zdGFudGlhdGUgdGhlIGNvb3JkaW5hdG9yIGZvciBvcGVyYXRvciBTb3VyY2U6IFRhYmxlU291cmNlU2Nhbih0YWJsZT1bW3FoY19vZHNfY2F0YWxvZywgcWhjX2htcywgb3JkZXJfY29uc3VtZV9idXlfb3JkZXJfc3JjXV0sIGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkLCBkYXRhYmFzZV9uYW1lLCBvcF90cywgdGFibGVfbmFtZV0pIC0+IENhbGMoc2VsZWN0PVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWRdKSAtPiBOb3ROdWxsRW5mb3JjZXIoZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZF0pCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5Db21wbGV0YWJsZUZ1dHVyZS5lbmNvZGVUaHJvd2FibGUoQ29tcGxldGFibGVGdXR1cmUuamF2YToyNzMpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5Db21wbGV0YWJsZUZ1dHVyZS5jb21wbGV0ZVRocm93YWJsZShDb21wbGV0YWJsZUZ1dHVyZS5qYXZhOjI4MCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRhYmxlRnV0dXJlJEFzeW5jU3VwcGx5LnJ1bihDb21wbGV0YWJsZUZ1dHVyZS5qYXZhOjE1OTIpCgkuLi4gNyBtb3JlCkNhdXNlZCBieTogamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb246IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5Kb2JFeGNlcHRpb246IENhbm5vdCBpbnN0YW50aWF0ZSB0aGUgY29vcmRpbmF0b3IgZm9yIG9wZXJhdG9yIFNvdXJjZTogVGFibGVTb3VyY2VTY2FuKHRhYmxlPVtbcWhjX29kc19jYXRhbG9nLCBxaGNfaG1zLCBvcmRlcl9jb25zdW1lX2J1eV9vcmRlcl9zcmNdXSwgZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWQsIGRhdGFiYXNlX25hbWUsIG9wX3RzLCB0YWJsZV9uYW1lXSkgLT4gQ2FsYyhzZWxlY3Q9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZF0pIC0+IE5vdE51bGxFbmZvcmNlcihmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkXSkKCWF0IG9yZy5hcGFjaGUuZmxpbmsudXRpbC5FeGNlcHRpb25VdGlscy5yZXRocm93KEV4Y2VwdGlvblV0aWxzLmphdmE6MzE2KQoJYXQgb3JnLmFwYWNoZS5mbGluay51dGlsLmZ1bmN0aW9uLkZ1bmN0aW9uVXRpbHMubGFtYmRhJHVuY2hlY2tlZFN1cHBsaWVyJDQoRnVuY3Rpb25VdGlscy5qYXZhOjExNCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRhYmxlRnV0dXJlJEFzeW5jU3VwcGx5LnJ1bihDb21wbGV0YWJsZUZ1dHVyZS5qYXZhOjE1OTApCgkuLi4gNyBtb3JlCkNhdXNlZCBieTogb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLkpvYkV4Y2VwdGlvbjogQ2Fubm90IGluc3RhbnRpYXRlIHRoZSBjb29yZGluYXRvciBmb3Igb3BlcmF0b3IgU291cmNlOiBUYWJsZVNvdXJjZVNjYW4odGFibGU9W1txaGNfb2RzX2NhdGFsb2csIHFoY19obXMsIG9yZGVyX2NvbnN1bWVfYnV5X29yZGVyX3NyY11dLCBmaWVsZHM9W2lkLCBjb25zdW1lX29yZGVyX2lkLCBjb25zdW1lX29yZGVyX2NvZGUsIHNrdV9pZCwgc2t1X25hbWUsIGlzX2NhcmRfZ29vZHMsIGJ1eV9vcmRlcl9pZCwgYnV5X29yZGVyX2NvZGUsIGJ1eV9vcmRlcl90eXBlLCBjb25zdW1lX29yZGVyX3RpbWUsIGdtdF9jcmVhdGUsIGdtdF9tb2RpZmllZCwgZGF0YWJhc2VfbmFtZSwgb3BfdHMsIHRhYmxlX25hbWVdKSAtPiBDYWxjKHNlbGVjdD1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkXSkgLT4gTm90TnVsbEVuZm9yY2VyKGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWRdKQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkV4ZWN1dGlvbkpvYlZlcnRleC48aW5pdD4oRXhlY3V0aW9uSm9iVmVydGV4LmphdmE6MjE3KQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkRlZmF1bHRFeGVjdXRpb25HcmFwaC5hdHRhY2hKb2JHcmFwaChEZWZhdWx0RXhlY3V0aW9uR3JhcGguamF2YTo3OTIpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRGVmYXVsdEV4ZWN1dGlvbkdyYXBoQnVpbGRlci5idWlsZEdyYXBoKERlZmF1bHRFeGVjdXRpb25HcmFwaEJ1aWxkZXIuamF2YToxOTYpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLkRlZmF1bHRFeGVjdXRpb25HcmFwaEZhY3RvcnkuY3JlYXRlQW5kUmVzdG9yZUV4ZWN1dGlvbkdyYXBoKERlZmF1bHRFeGVjdXRpb25HcmFwaEZhY3RvcnkuamF2YToxMDcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLlNjaGVkdWxlckJhc2UuY3JlYXRlQW5kUmVzdG9yZUV4ZWN1dGlvbkdyYXBoKFNjaGVkdWxlckJhc2UuamF2YTozNDIpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLlNjaGVkdWxlckJhc2UuPGluaXQ+KFNjaGVkdWxlckJhc2UuamF2YToxOTApCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLkRlZmF1bHRTY2hlZHVsZXIuPGluaXQ+KERlZmF1bHRTY2hlZHVsZXIuamF2YToxMjIpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLkRlZmF1bHRTY2hlZHVsZXJGYWN0b3J5LmNyZWF0ZUluc3RhbmNlKERlZmF1bHRTY2hlZHVsZXJGYWN0b3J5LmphdmE6MTMyKQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5EZWZhdWx0U2xvdFBvb2xTZXJ2aWNlU2NoZWR1bGVyRmFjdG9yeS5jcmVhdGVTY2hlZHVsZXIoRGVmYXVsdFNsb3RQb29sU2VydmljZVNjaGVkdWxlckZhY3RvcnkuamF2YToxMTApCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkpvYk1hc3Rlci5jcmVhdGVTY2hlZHVsZXIoSm9iTWFzdGVyLmphdmE6MzQwKQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5Kb2JNYXN0ZXIuPGluaXQ+KEpvYk1hc3Rlci5qYXZhOjMxNykKCWF0IG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuZmFjdG9yaWVzLkRlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlRmFjdG9yeS5pbnRlcm5hbENyZWF0ZUpvYk1hc3RlclNlcnZpY2UoRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmphdmE6MTA3KQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5mYWN0b3JpZXMuRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmxhbWJkYSRjcmVhdGVKb2JNYXN0ZXJTZXJ2aWNlJDAoRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmphdmE6OTUpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuZnVuY3Rpb24uRnVuY3Rpb25VdGlscy5sYW1iZGEkdW5jaGVja2VkU3VwcGxpZXIkNChGdW5jdGlvblV0aWxzLmphdmE6MTEyKQoJLi4uIDggbW9yZQpDYXVzZWQgYnk6IGphdmEuaW8uU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uOiB1bmV4cGVjdGVkIGJsb2NrIGRhdGEKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTg3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5kZWZhdWx0UmVhZEZpZWxkcyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjIyODcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRTZXJpYWxEYXRhKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjE2NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9yZGluYXJ5T2JqZWN0KE9iamVjdElucHV0U3RyZWFtLmphdmE6MjA2OSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE9iamVjdDAoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNTczKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkQXJyYXkoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxOTUwKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NjcpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMTY3KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLmRlZmF1bHRSZWFkRmllbGRzKE9iamVjdElucHV0U3RyZWFtLmphdmE6MjI4NykKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZFNlcmlhbERhdGEoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMjExKQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToyMDY5KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NzMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YTo0MzEpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuSW5zdGFudGlhdGlvblV0aWwuZGVzZXJpYWxpemVPYmplY3QoSW5zdGFudGlhdGlvblV0aWwuamF2YTo2MTUpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuSW5zdGFudGlhdGlvblV0aWwuZGVzZXJpYWxpemVPYmplY3QoSW5zdGFudGlhdGlvblV0aWwuamF2YTo2MDApCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuSW5zdGFudGlhdGlvblV0aWwuZGVzZXJpYWxpemVPYmplY3QoSW5zdGFudGlhdGlvblV0aWwuamF2YTo1ODcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuU2VyaWFsaXplZFZhbHVlLmRlc2VyaWFsaXplVmFsdWUoU2VyaWFsaXplZFZhbHVlLmphdmE6NjcpCglhdCBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUub3BlcmF0b3JzLmNvb3JkaW5hdGlvbi5PcGVyYXRvckNvb3JkaW5hdG9ySG9sZGVyLmNyZWF0ZShPcGVyYXRvckNvb3JkaW5hdG9ySG9sZGVyLmphdmE6NDMxKQoJYXQgb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmV4ZWN1dGlvbmdyYXBoLkV4ZWN1dGlvbkpvYlZlcnRleC48aW5pdD4oRXhlY3V0aW9uSm9iVmVydGV4LmphdmE6MjExKQoJLi4uIDIxIG1vcmUKdAA6b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmNsaWVudC5Kb2JJbml0aWFsaXphdGlvbkV4Y2VwdGlvbnVxAH4AoQAAIS6s7QAFc3IAOm9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5jbGllbnQuSm9iSW5pdGlhbGl6YXRpb25FeGNlcHRpb24nG9t9x9uQhgIAAHhyADVvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuY2xpZW50LkpvYkV4ZWN1dGlvbkV4Y2VwdGlvbicb233H25CFAgABTAAFam9iSUR0ACNMb3JnL2FwYWNoZS9mbGluay9hcGkvY29tbW9uL0pvYklEO3hyACRvcmcuYXBhY2hlLmZsaW5rLnV0aWwuRmxpbmtFeGNlcHRpb24GQSsM+0WZtAIAAHhyABNqYXZhLmxhbmcuRXhjZXB0aW9u0P0fPho7HMQCAAB4cgATamF2YS5sYW5nLlRocm93YWJsZdXGNSc5d7jLAwAETAAFY2F1c2V0ABVMamF2YS9sYW5nL1Rocm93YWJsZTtMAA1kZXRhaWxNZXNzYWdldAASTGphdmEvbGFuZy9TdHJpbmc7WwAKc3RhY2tUcmFjZXQAHltMamF2YS9sYW5nL1N0YWNrVHJhY2VFbGVtZW50O0wAFHN1cHByZXNzZWRFeGNlcHRpb25zdAAQTGphdmEvdXRpbC9MaXN0O3hwc3IAKGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRpb25FeGNlcHRpb25sqrFzv7TgaQIAAHhyABpqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbp5fBkcKNIPlAgAAeHEAfgAEc3EAfgAMc3IAJW9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5Kb2JFeGNlcHRpb24RtMgtZM5UkAIAAHhxAH4AA3NyACBqYXZhLmlvLlN0cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbnysApaGOfPCAgAAeHIAHWphdmEuaW8uT2JqZWN0U3RyZWFtRXhjZXB0aW9uZMPka405+98CAAB4cgATamF2YS5pby5JT0V4Y2VwdGlvbmyAc2RlJfCrAgAAeHEAfgAEcQB+ABR0ABV1bmV4cGVjdGVkIGJsb2NrIGRhdGF1cgAeW0xqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnQ7AkYqPDz9IjkCAAB4cAAAAEdzcgAbamF2YS5sYW5nLlN0YWNrVHJhY2VFbGVtZW50YQnFmiY23YUCAARJAApsaW5lTnVtYmVyTAAOZGVjbGFyaW5nQ2xhc3NxAH4AB0wACGZpbGVOYW1lcQB+AAdMAAptZXRob2ROYW1lcQB+AAd4cAAABjN0ABlqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtdAAWT2JqZWN0SW5wdXRTdHJlYW0uamF2YXQAC3JlYWRPYmplY3Qwc3EAfgAYAAAI73EAfgAacQB+ABt0ABFkZWZhdWx0UmVhZEZpZWxkc3NxAH4AGAAACHdxAH4AGnEAfgAbdAAOcmVhZFNlcmlhbERhdGFzcQB+ABgAAAgVcQB+ABpxAH4AG3QAEnJlYWRPcmRpbmFyeU9iamVjdHNxAH4AGAAABiVxAH4AGnEAfgAbcQB+ABxzcQB+ABgAAAjvcQB+ABpxAH4AG3EAfgAec3EAfgAYAAAId3EAfgAacQB+ABtxAH4AIHNxAH4AGAAACBVxAH4AGnEAfgAbcQB+ACJzcQB+ABgAAAYlcQB+ABpxAH4AG3EAfgAcc3EAfgAYAAAI73EAfgAacQB+ABtxAH4AHnNxAH4AGAAACHdxAH4AGnEAfgAbcQB+ACBzcQB+ABgAAAgVcQB+ABpxAH4AG3EAfgAic3EAfgAYAAAGJXEAfgAacQB+ABtxAH4AHHNxAH4AGAAACO9xAH4AGnEAfgAbcQB+AB5zcQB+ABgAAAh3cQB+ABpxAH4AG3EAfgAgc3EAfgAYAAAIFXEAfgAacQB+ABtxAH4AInNxAH4AGAAABiVxAH4AGnEAfgAbcQB+ABxzcQB+ABgAAAjvcQB+ABpxAH4AG3EAfgAec3EAfgAYAAAId3EAfgAacQB+ABtxAH4AIHNxAH4AGAAACBVxAH4AGnEAfgAbcQB+ACJzcQB+ABgAAAYlcQB+ABpxAH4AG3EAfgAcc3EAfgAYAAAHnnEAfgAacQB+ABt0AAlyZWFkQXJyYXlzcQB+ABgAAAYfcQB+ABpxAH4AG3EAfgAcc3EAfgAYAAAI73EAfgAacQB+ABtxAH4AHnNxAH4AGAAACHdxAH4AGnEAfgAbcQB+ACBzcQB+ABgAAAgVcQB+ABpxAH4AG3EAfgAic3EAfgAYAAAGJXEAfgAacQB+ABtxAH4AHHNxAH4AGAAACO9xAH4AGnEAfgAbcQB+AB5zcQB+ABgAAAh3cQB+ABpxAH4AG3EAfgAgc3EAfgAYAAAIFXEAfgAacQB+ABtxAH4AInNxAH4AGAAABiVxAH4AGnEAfgAbcQB+ABxzcQB+ABgAAAjvcQB+ABpxAH4AG3EAfgAec3EAfgAYAAAId3EAfgAacQB+ABtxAH4AIHNxAH4AGAAACBVxAH4AGnEAfgAbcQB+ACJzcQB+ABgAAAYlcQB+ABpxAH4AG3EAfgAcc3EAfgAYAAAI73EAfgAacQB+ABtxAH4AHnNxAH4AGAAACHdxAH4AGnEAfgAbcQB+ACBzcQB+ABgAAAgVcQB+ABpxAH4AG3EAfgAic3EAfgAYAAAGJXEAfgAacQB+ABtxAH4AHHNxAH4AGAAACO9xAH4AGnEAfgAbcQB+AB5zcQB+ABgAAAijcQB+ABpxAH4AG3EAfgAgc3EAfgAYAAAIFXEAfgAacQB+ABtxAH4AInNxAH4AGAAABiVxAH4AGnEAfgAbcQB+ABxzcQB+ABgAAAGvcQB+ABpxAH4AG3QACnJlYWRPYmplY3RzcQB+ABgAAAJndAAnb3JnLmFwYWNoZS5mbGluay51dGlsLkluc3RhbnRpYXRpb25VdGlsdAAWSW5zdGFudGlhdGlvblV0aWwuamF2YXQAEWRlc2VyaWFsaXplT2JqZWN0c3EAfgAYAAACWHEAfgBOcQB+AE9xAH4AUHNxAH4AGAAAAktxAH4ATnEAfgBPcQB+AFBzcQB+ABgAAABDdAAlb3JnLmFwYWNoZS5mbGluay51dGlsLlNlcmlhbGl6ZWRWYWx1ZXQAFFNlcmlhbGl6ZWRWYWx1ZS5qYXZhdAAQZGVzZXJpYWxpemVWYWx1ZXNxAH4AGAAAAa90AElvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUub3BlcmF0b3JzLmNvb3JkaW5hdGlvbi5PcGVyYXRvckNvb3JkaW5hdG9ySG9sZGVydAAeT3BlcmF0b3JDb29yZGluYXRvckhvbGRlci5qYXZhdAAGY3JlYXRlc3EAfgAYAAAA03QAOm9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5leGVjdXRpb25ncmFwaC5FeGVjdXRpb25Kb2JWZXJ0ZXh0ABdFeGVjdXRpb25Kb2JWZXJ0ZXguamF2YXQABjxpbml0PnNxAH4AGAAAAxh0AD1vcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRGVmYXVsdEV4ZWN1dGlvbkdyYXBodAAaRGVmYXVsdEV4ZWN1dGlvbkdyYXBoLmphdmF0AA5hdHRhY2hKb2JHcmFwaHNxAH4AGAAAAMR0AERvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuZXhlY3V0aW9uZ3JhcGguRGVmYXVsdEV4ZWN1dGlvbkdyYXBoQnVpbGRlcnQAIURlZmF1bHRFeGVjdXRpb25HcmFwaEJ1aWxkZXIuamF2YXQACmJ1aWxkR3JhcGhzcQB+ABgAAABrdAA/b3JnLmFwYWNoZS5mbGluay5ydW50aW1lLnNjaGVkdWxlci5EZWZhdWx0RXhlY3V0aW9uR3JhcGhGYWN0b3J5dAAhRGVmYXVsdEV4ZWN1dGlvbkdyYXBoRmFjdG9yeS5qYXZhdAAeY3JlYXRlQW5kUmVzdG9yZUV4ZWN1dGlvbkdyYXBoc3EAfgAYAAABVnQAMG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5zY2hlZHVsZXIuU2NoZWR1bGVyQmFzZXQAElNjaGVkdWxlckJhc2UuamF2YXEAfgBqc3EAfgAYAAAAvnEAfgBscQB+AG1xAH4AXnNxAH4AGAAAAHp0ADNvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLkRlZmF1bHRTY2hlZHVsZXJ0ABVEZWZhdWx0U2NoZWR1bGVyLmphdmFxAH4AXnNxAH4AGAAAAIR0ADpvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuc2NoZWR1bGVyLkRlZmF1bHRTY2hlZHVsZXJGYWN0b3J5dAAcRGVmYXVsdFNjaGVkdWxlckZhY3RvcnkuamF2YXQADmNyZWF0ZUluc3RhbmNlc3EAfgAYAAAAbnQASW9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuRGVmYXVsdFNsb3RQb29sU2VydmljZVNjaGVkdWxlckZhY3Rvcnl0ACtEZWZhdWx0U2xvdFBvb2xTZXJ2aWNlU2NoZWR1bGVyRmFjdG9yeS5qYXZhdAAPY3JlYXRlU2NoZWR1bGVyc3EAfgAYAAABVHQALG9yZy5hcGFjaGUuZmxpbmsucnVudGltZS5qb2JtYXN0ZXIuSm9iTWFzdGVydAAOSm9iTWFzdGVyLmphdmFxAH4AeXNxAH4AGAAAAT1xAH4Ae3EAfgB8cQB+AF5zcQB+ABgAAABrdABLb3JnLmFwYWNoZS5mbGluay5ydW50aW1lLmpvYm1hc3Rlci5mYWN0b3JpZXMuRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5dAAjRGVmYXVsdEpvYk1hc3RlclNlcnZpY2VGYWN0b3J5LmphdmF0AB5pbnRlcm5hbENyZWF0ZUpvYk1hc3RlclNlcnZpY2VzcQB+ABgAAABfcQB+AH9xAH4AgHQAH2xhbWJkYSRjcmVhdGVKb2JNYXN0ZXJTZXJ2aWNlJDBzcQB+ABgAAABwdAAsb3JnLmFwYWNoZS5mbGluay51dGlsLmZ1bmN0aW9uLkZ1bmN0aW9uVXRpbHN0ABJGdW5jdGlvblV0aWxzLmphdmF0ABpsYW1iZGEkdW5jaGVja2VkU3VwcGxpZXIkNHNxAH4AGAAABjZ0ADJqYXZhLnV0aWwuY29uY3VycmVudC5Db21wbGV0YWJsZUZ1dHVyZSRBc3luY1N1cHBseXQAFkNvbXBsZXRhYmxlRnV0dXJlLmphdmF0AANydW5zcQB+ABgAAAH/dAAuamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlcnQADkV4ZWN1dG9ycy5qYXZhdAAEY2FsbHNxAH4AGAAAAQp0AB9qYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrdAAPRnV0dXJlVGFzay5qYXZhcQB+AItzcQB+ABgAAAC0dABEamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJFNjaGVkdWxlZEZ1dHVyZVRhc2t0ACBTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YXQACmFjY2VzcyQyMDFzcQB+ABgAAAElcQB+AJRxAH4AlXEAfgCLc3EAfgAYAAAEfXQAJ2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvcnQAF1RocmVhZFBvb2xFeGVjdXRvci5qYXZhdAAJcnVuV29ya2Vyc3EAfgAYAAACcHQALmphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXJxAH4AmnEAfgCLc3EAfgAYAAAC7HQAEGphdmEubGFuZy5UaHJlYWR0AAtUaHJlYWQuamF2YXEAfgCLc3IAJmphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVMaXN0/A8lMbXsjhACAAFMAARsaXN0cQB+AAl4cgAsamF2YS51dGlsLkNvbGxlY3Rpb25zJFVubW9kaWZpYWJsZUNvbGxlY3Rpb24ZQgCAy173HgIAAUwAAWN0ABZMamF2YS91dGlsL0NvbGxlY3Rpb247eHBzcgATamF2YS51dGlsLkFycmF5TGlzdHiB0h2Zx2GdAwABSQAEc2l6ZXhwAAAAAHcEAAAAAHhxAH4Apnh0AkRDYW5ub3QgaW5zdGFudGlhdGUgdGhlIGNvb3JkaW5hdG9yIGZvciBvcGVyYXRvciBTb3VyY2U6IFRhYmxlU291cmNlU2Nhbih0YWJsZT1bW3FoY19vZHNfY2F0YWxvZywgcWhjX2htcywgb3JkZXJfY29uc3VtZV9idXlfb3JkZXJfc3JjXV0sIGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkLCBkYXRhYmFzZV9uYW1lLCBvcF90cywgdGFibGVfbmFtZV0pIC0+IENhbGMoc2VsZWN0PVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWRdKSAtPiBOb3ROdWxsRW5mb3JjZXIoZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZF0pdXEAfgAWAAAAFnNxAH4AGAAAANlxAH4AXHEAfgBdcQB+AF5zcQB+ABgAAAMYcQB+AGBxAH4AYXEAfgBic3EAfgAYAAAAxHEAfgBkcQB+AGVxAH4AZnNxAH4AGAAAAGtxAH4AaHEAfgBpcQB+AGpzcQB+ABgAAAFWcQB+AGxxAH4AbXEAfgBqc3EAfgAYAAAAvnEAfgBscQB+AG1xAH4AXnNxAH4AGAAAAHpxAH4AcHEAfgBxcQB+AF5zcQB+ABgAAACEcQB+AHNxAH4AdHEAfgB1c3EAfgAYAAAAbnEAfgB3cQB+AHhxAH4AeXNxAH4AGAAAAVRxAH4Ae3EAfgB8cQB+AHlzcQB+ABgAAAE9cQB+AHtxAH4AfHEAfgBec3EAfgAYAAAAa3EAfgB/cQB+AIBxAH4AgXNxAH4AGAAAAF9xAH4Af3EAfgCAcQB+AINzcQB+ABgAAABwcQB+AIVxAH4AhnEAfgCHc3EAfgAYAAAGNnEAfgCJcQB+AIpxAH4Ai3NxAH4AGAAAAf9xAH4AjXEAfgCOcQB+AI9zcQB+ABgAAAEKcQB+AJFxAH4AknEAfgCLc3EAfgAYAAAAtHEAfgCUcQB+AJVxAH4AlnNxAH4AGAAAASVxAH4AlHEAfgCVcQB+AItzcQB+ABgAAAR9cQB+AJlxAH4AmnEAfgCbc3EAfgAYAAACcHEAfgCdcQB+AJpxAH4Ai3NxAH4AGAAAAuxxAH4An3EAfgCgcQB+AItxAH4ApHh0AmtvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuSm9iRXhjZXB0aW9uOiBDYW5ub3QgaW5zdGFudGlhdGUgdGhlIGNvb3JkaW5hdG9yIGZvciBvcGVyYXRvciBTb3VyY2U6IFRhYmxlU291cmNlU2Nhbih0YWJsZT1bW3FoY19vZHNfY2F0YWxvZywgcWhjX2htcywgb3JkZXJfY29uc3VtZV9idXlfb3JkZXJfc3JjXV0sIGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkLCBkYXRhYmFzZV9uYW1lLCBvcF90cywgdGFibGVfbmFtZV0pIC0+IENhbGMoc2VsZWN0PVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWRdKSAtPiBOb3ROdWxsRW5mb3JjZXIoZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZF0pdXEAfgAWAAAACnNxAH4AGAAAATx0ACRvcmcuYXBhY2hlLmZsaW5rLnV0aWwuRXhjZXB0aW9uVXRpbHN0ABNFeGNlcHRpb25VdGlscy5qYXZhdAAHcmV0aHJvd3NxAH4AGAAAAHJxAH4AhXEAfgCGcQB+AIdzcQB+ABgAAAY2cQB+AIlxAH4AinEAfgCLc3EAfgAYAAAB/3EAfgCNcQB+AI5xAH4Aj3NxAH4AGAAAAQpxAH4AkXEAfgCScQB+AItzcQB+ABgAAAC0cQB+AJRxAH4AlXEAfgCWc3EAfgAYAAABJXEAfgCUcQB+AJVxAH4Ai3NxAH4AGAAABH1xAH4AmXEAfgCacQB+AJtzcQB+ABgAAAJwcQB+AJ1xAH4AmnEAfgCLc3EAfgAYAAAC7HEAfgCfcQB+AKBxAH4Ai3EAfgCkeHQCh2phdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uOiBvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuSm9iRXhjZXB0aW9uOiBDYW5ub3QgaW5zdGFudGlhdGUgdGhlIGNvb3JkaW5hdG9yIGZvciBvcGVyYXRvciBTb3VyY2U6IFRhYmxlU291cmNlU2Nhbih0YWJsZT1bW3FoY19vZHNfY2F0YWxvZywgcWhjX2htcywgb3JkZXJfY29uc3VtZV9idXlfb3JkZXJfc3JjXV0sIGZpZWxkcz1baWQsIGNvbnN1bWVfb3JkZXJfaWQsIGNvbnN1bWVfb3JkZXJfY29kZSwgc2t1X2lkLCBza3VfbmFtZSwgaXNfY2FyZF9nb29kcywgYnV5X29yZGVyX2lkLCBidXlfb3JkZXJfY29kZSwgYnV5X29yZGVyX3R5cGUsIGNvbnN1bWVfb3JkZXJfdGltZSwgZ210X2NyZWF0ZSwgZ210X21vZGlmaWVkLCBkYXRhYmFzZV9uYW1lLCBvcF90cywgdGFibGVfbmFtZV0pIC0+IENhbGMoc2VsZWN0PVtpZCwgY29uc3VtZV9vcmRlcl9pZCwgY29uc3VtZV9vcmRlcl9jb2RlLCBza3VfaWQsIHNrdV9uYW1lLCBpc19jYXJkX2dvb2RzLCBidXlfb3JkZXJfaWQsIGJ1eV9vcmRlcl9jb2RlLCBidXlfb3JkZXJfdHlwZSwgY29uc3VtZV9vcmRlcl90aW1lLCBnbXRfY3JlYXRlLCBnbXRfbW9kaWZpZWRdKSAtPiBOb3ROdWxsRW5mb3JjZXIoZmllbGRzPVtpZCwgY29uc3VtZV9vcmRlcl9pZF0pdXEAfgAWAAAACnNxAH4AGAAAARF0ACZqYXZhLnV0aWwuY29uY3VycmVudC5Db21wbGV0YWJsZUZ1dHVyZXEAfgCKdAAPZW5jb2RlVGhyb3dhYmxlc3EAfgAYAAABGHEAfgDRcQB+AIp0ABFjb21wbGV0ZVRocm93YWJsZXNxAH4AGAAABjhxAH4AiXEAfgCKcQB+AItzcQB+ABgAAAH/cQB+AI1xAH4AjnEAfgCPc3EAfgAYAAABCnEAfgCRcQB+AJJxAH4Ai3NxAH4AGAAAALRxAH4AlHEAfgCVcQB+AJZzcQB+ABgAAAElcQB+AJRxAH4AlXEAfgCLc3EAfgAYAAAEfXEAfgCZcQB+AJpxAH4Am3NxAH4AGAAAAnBxAH4AnXEAfgCacQB+AItzcQB+ABgAAALscQB+AJ9xAH4AoHEAfgCLcQB+AKR4dAAeQ291bGQgbm90IHN0YXJ0IHRoZSBKb2JNYXN0ZXIudXEAfgAWAAAADHNxAH4AGAAAAGF0AEFvcmcuYXBhY2hlLmZsaW5rLnJ1bnRpbWUuam9ibWFzdGVyLkRlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlUHJvY2Vzc3QAI0RlZmF1bHRKb2JNYXN0ZXJTZXJ2aWNlUHJvY2Vzcy5qYXZhdAAMbGFtYmRhJG5ldyQwc3EAfgAYAAAC+HEAfgDRcQB+AIp0AA91bmlXaGVuQ29tcGxldGVzcQB+ABgAAALgdAA2amF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmUkVW5pV2hlbkNvbXBsZXRlcQB+AIp0AAd0cnlGaXJlc3EAfgAYAAAB2nEAfgDRcQB+AIp0AAxwb3N0Q29tcGxldGVzcQB+ABgAAAY7cQB+AIlxAH4AinEAfgCLc3EAfgAYAAAB/3EAfgCNcQB+AI5xAH4Aj3NxAH4AGAAAAQpxAH4AkXEAfgCScQB+AItzcQB+ABgAAAC0cQB+AJRxAH4AlXEAfgCWc3EAfgAYAAABJXEAfgCUcQB+AJVxAH4Ai3NxAH4AGAAABH1xAH4AmXEAfgCacQB+AJtzcQB+ABgAAAJwcQB+AJ1xAH4AmnEAfgCLc3EAfgAYAAAC7HEAfgCfcQB+AKBxAH4Ai3EAfgCkeHNyACFvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24uSm9iSUQAAAAAAAAAAQIAAHhyACBvcmcuYXBhY2hlLmZsaW5rLnV0aWwuQWJzdHJhY3RJRAAAAAAAAAABAgACSgAJbG93ZXJQYXJ0SgAJdXBwZXJQYXJ0eHBh9FxmWA04Vyf9l1ILZqea"}}},
> httpResponseStatus=200 OK}
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
> Unrecognized field "status" (class
> org.apache.flink.runtime.rest.messages.ErrorResponseBody), not marked as
> ignorable (one known property: "errors"])
>  at [Source: UNKNOWN; line: -1, column: -1] (through reference chain:
> org.apache.flink.runtime.rest.messages.ErrorResponseBody["status"])
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:987)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1974)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1686)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperties(BeanDeserializerBase.java:1635)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:541)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1390)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:362)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:195)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:4569)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2798)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper.treeToValue(ObjectMapper.java:3261)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.runtime.rest.RestClient.parseResponse(RestClient.java:483)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> org.apache.flink.runtime.rest.RestClient.lambda$submitRequest$3(RestClient.java:466)
> ~[flink-dist_2.12-1.13.3.jar:1.13.3]
>         at
> java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952)
> [?:1.8.0_211]
>         at
> java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926)
> [?:1.8.0_211]
>         at
> java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
> [?:1.8.0_211]
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [?:1.8.0_211]
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [?:1.8.0_211]
>         at java.lang.Thread.run(Thread.java:748) [?:1.8.0_211]
>
>

回复