AppAPI

    {
  "AuditTrail": [
    {
      "Event": 9,
      "Node": {
        "ClientNode": false,
        "DeadUntil": "0001-01-01T00:00:00",
        "FailedAttempts": 0,
        "HoldsData": true,
        "HttpEnabled": true,
        "Id": null,
        "IngestEnabled": false,
        "IsAlive": true,
        "IsResurrected": false,
        "MasterEligible": true,
        "MasterOnlyNode": false,
        "Name": null,
        "Settings": {},
        "Uri": "http://ip-172-31-43-125.eu-west-1.compute.internal:9200/"
      },
      "Path": "tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true",
      "Ended": "2026-07-24T21:51:55.1527386Z",
      "Started": "2026-07-24T21:51:55.1527386Z",
      "Exception": null
    }
  ],
  "ThreadPoolStats": {
    "Worker": {
      "Busy": 1,
      "Free": 32766,
      "Max": 32767,
      "Min": 2
    },
    "IOCP": {
      "Busy": 0,
      "Free": 1000,
      "Max": 1000,
      "Min": 2
    }
  },
  "TcpStats": {
    "Established": 33,
    "TimeWait": 34
  },
  "DebugInformation": "Unsuccessful (400) low level call on POST: /tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true\r\n# Audit trail of this API call:\r\n - [1] BadResponse: Node: http://ip-172-31-43-125.eu-west-1.compute.internal:9200/ Took: 00:00:00\r\n# OriginalException: Elasticsearch.Net.ElasticsearchClientException: The remote server returned an error: (400) Bad Request. Call: Status code 400 from: POST /tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true. ServerError: Type: search_phase_execution_exception Reason: \"all shards failed\" CausedBy: \"Type: illegal_argument_exception Reason: \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\" CausedBy: \"Type: illegal_argument_exception Reason: \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\"\"\" ---> System.Net.WebException: The remote server returned an error: (400) Bad Request.\r\n   at System.Net.HttpWebRequest.GetResponse()\r\n   at Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) in C:\\Users\\SteveGordon\\Code\\elasticsearch-net-v7\\src\\Elasticsearch.Net\\Connection\\HttpWebRequestConnection.cs:line 73\r\n   --- End of inner exception stack trace ---\r\n# Request:\r\n{\"aggs\":{\"category\":{\"terms\":{\"field\":\"taxonomy.category\",\"size\":5000}},\"subcategory\":{\"terms\":{\"field\":\"taxonomy.subCategory\",\"size\":5000}},\"zone\":{\"terms\":{\"field\":\"taxonomy.zone\",\"size\":5000}},\"tags\":{\"terms\":{\"field\":\"taxonomy.relatedTags\",\"size\":5000}}},\"explain\":false,\"from\":0,\"min_score\":0.3,\"query\":{\"bool\":{\"must\":[{\"term\":{\"promotions.permissions.channelID\":{\"value\":\"TR3SC\"}}},{\"range\":{\"visibility.fromDate\":{\"lt\":\"2026-07-24T23:51:55\"}}},{\"range\":{\"visibility.toDate\":{\"gt\":\"2026-07-24T23:51:55\"}}}]}},\"size\":24,\"sort\":[{\"offerID\":{\"order\":\"desc\"}}]}\r\n# Response:\r\n{\n  \"error\" : {\n    \"root_cause\" : [\n      {\n        \"type\" : \"illegal_argument_exception\",\n        \"reason\" : \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\",\n        \"stack_trace\" : \"[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]; nested: IllegalArgumentException[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.];\\n\\tat org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:667)\\n\\tat org.elasticsearch.action.search.SearchPhaseExecutionException.guessRootCauses(SearchPhaseExecutionException.java:150)\\n\\tat org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:649)\\n\\tat org.elasticsearch.ElasticsearchException.generateFailureXContent(ElasticsearchException.java:595)\\n\\tat org.elasticsearch.rest.BytesRestResponse.build(BytesRestResponse.java:140)\\n\\tat org.elasticsearch.rest.BytesRestResponse.<init>(BytesRestResponse.java:101)\\n\\tat org.elasticsearch.rest.BytesRestResponse.<init>(BytesRestResponse.java:81)\\n\\tat org.elasticsearch.rest.action.RestActionListener.onFailure(RestActionListener.java:55)\\n\\tat org.elasticsearch.rest.action.RestCancellableNodeClient$1.onFailure(RestCancellableNodeClient.java:96)\\n\\tat org.elasticsearch.action.support.TransportAction$1.onFailure(TransportAction.java:97)\\n\\tat org.elasticsearch.action.ActionListener$Delegating.onFailure(ActionListener.java:66)\\n\\tat org.elasticsearch.action.ActionListener$RunAfterActionListener.onFailure(ActionListener.java:350)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.raisePhaseFailure(AbstractSearchAsyncAction.java:736)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:713)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:400)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:745)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:497)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.access$000(AbstractSearchAsyncAction.java:64)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:331)\\n\\tat org.elasticsearch.action.ActionListener$Delegating.onFailure(ActionListener.java:66)\\n\\tat org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:48)\\n\\tat org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:651)\\n\\tat org.elasticsearch.transport.TransportService$4.handleException(TransportService.java:853)\\n\\tat org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1481)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1607)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1581)\\n\\tat org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:50)\\n\\tat org.elasticsearch.transport.TransportChannel.sendErrorResponse(TransportChannel.java:45)\\n\\tat org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:41)\\n\\tat org.elasticsearch.action.ActionRunnable.onFailure(ActionRunnable.java:77)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:28)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\nCaused by: java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\t... 6 more\\n\"\n      }\n    ],\n    \"type\" : \"search_phase_execution_exception\",\n    \"reason\" : \"all shards failed\",\n    \"phase\" : \"query\",\n    \"grouped\" : true,\n    \"failed_shards\" : [\n      {\n        \"shard\" : 0,\n        \"index\" : \"tresc_offers_ca\",\n        \"node\" : \"WA1jd-OlQfqtPgZxwjDQog\",\n        \"reason\" : {\n          \"type\" : \"illegal_argument_exception\",\n          \"reason\" : \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\",\n          \"stack_trace\" : \"java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\n\"\n        }\n      }\n    ],\n    \"caused_by\" : {\n      \"type\" : \"illegal_argument_exception\",\n      \"reason\" : \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\",\n      \"caused_by\" : {\n        \"type\" : \"illegal_argument_exception\",\n        \"reason\" : \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\",\n        \"stack_trace\" : \"java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\n\"\n      },\n      \"stack_trace\" : \"[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]; nested: IllegalArgumentException[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.];\\n\\tat org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:667)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:398)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:745)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:497)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.access$000(AbstractSearchAsyncAction.java:64)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:331)\\n\\tat org.elasticsearch.action.ActionListener$Delegating.onFailure(ActionListener.java:66)\\n\\tat org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:48)\\n\\tat org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:651)\\n\\tat org.elasticsearch.transport.TransportService$4.handleException(TransportService.java:853)\\n\\tat org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1481)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1607)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1581)\\n\\tat org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:50)\\n\\tat org.elasticsearch.transport.TransportChannel.sendErrorResponse(TransportChannel.java:45)\\n\\tat org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:41)\\n\\tat org.elasticsearch.action.ActionRunnable.onFailure(ActionRunnable.java:77)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:28)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\nCaused by: java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\t... 6 more\\n\"\n    },\n    \"stack_trace\" : \"Failed to execute phase [query], all shards failed; shardFailures {[WA1jd-OlQfqtPgZxwjDQog][tresc_offers_ca][0]: RemoteTransportException[[tresc-s02.tresc.cat][172.31.43.125:9300][indices:data/read/search[phase/query]]]; nested: IllegalArgumentException[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]; }\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:713)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:400)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:745)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:497)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.access$000(AbstractSearchAsyncAction.java:64)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:331)\\n\\tat org.elasticsearch.action.ActionListener$Delegating.onFailure(ActionListener.java:66)\\n\\tat org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:48)\\n\\tat org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:651)\\n\\tat org.elasticsearch.transport.TransportService$4.handleException(TransportService.java:853)\\n\\tat org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1481)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1607)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1581)\\n\\tat org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:50)\\n\\tat org.elasticsearch.transport.TransportChannel.sendErrorResponse(TransportChannel.java:45)\\n\\tat org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:41)\\n\\tat org.elasticsearch.action.ActionRunnable.onFailure(ActionRunnable.java:77)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:28)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\nCaused by: [Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]; nested: IllegalArgumentException[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.];\\n\\tat org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:667)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:398)\\n\\t... 22 more\\nCaused by: java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\t... 6 more\\n\"\n  },\n  \"status\" : 400\n}\n\r\n# TCP states:\r\n  Established: 33\r\n  TimeWait: 34\r\n\r\n# ThreadPool statistics:\r\n  Worker: \r\n    Busy: 1\r\n    Free: 32766\r\n    Min: 2\r\n    Max: 32767\r\n  IOCP: \r\n    Busy: 0\r\n    Free: 1000\r\n    Min: 2\r\n    Max: 1000\r\n\r\n",
  "DeprecationWarnings": [],
  "ProductName": null,
  "HttpMethod": 1,
  "HttpStatusCode": 400,
  "OriginalException": {
    "AuditTrail": [
      {
        "Event": 9,
        "Node": {
          "ClientNode": false,
          "DeadUntil": "0001-01-01T00:00:00",
          "FailedAttempts": 0,
          "HoldsData": true,
          "HttpEnabled": true,
          "Id": null,
          "IngestEnabled": false,
          "IsAlive": true,
          "IsResurrected": false,
          "MasterEligible": true,
          "MasterOnlyNode": false,
          "Name": null,
          "Settings": {},
          "Uri": "http://ip-172-31-43-125.eu-west-1.compute.internal:9200/"
        },
        "Path": "tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true",
        "Ended": "2026-07-24T21:51:55.1527386Z",
        "Started": "2026-07-24T21:51:55.1527386Z",
        "Exception": null
      }
    ],
    "DebugInformation": "# FailureReason: BadResponse while attempting POST on http://ip-172-31-43-125.eu-west-1.compute.internal:9200/tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true\r\n# Audit trail of this API call:\r\n - [1] BadResponse: Node: http://ip-172-31-43-125.eu-west-1.compute.internal:9200/ Took: 00:00:00\r\n# OriginalException: Elasticsearch.Net.ElasticsearchClientException: The remote server returned an error: (400) Bad Request. Call: Status code 400 from: POST /tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true. ServerError: Type: search_phase_execution_exception Reason: \"all shards failed\" CausedBy: \"Type: illegal_argument_exception Reason: \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\" CausedBy: \"Type: illegal_argument_exception Reason: \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\"\"\" ---> System.Net.WebException: The remote server returned an error: (400) Bad Request.\r\n   at System.Net.HttpWebRequest.GetResponse()\r\n   at Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) in C:\\Users\\SteveGordon\\Code\\elasticsearch-net-v7\\src\\Elasticsearch.Net\\Connection\\HttpWebRequestConnection.cs:line 73\r\n   --- End of inner exception stack trace ---\r\n# Request:\r\n{\"aggs\":{\"category\":{\"terms\":{\"field\":\"taxonomy.category\",\"size\":5000}},\"subcategory\":{\"terms\":{\"field\":\"taxonomy.subCategory\",\"size\":5000}},\"zone\":{\"terms\":{\"field\":\"taxonomy.zone\",\"size\":5000}},\"tags\":{\"terms\":{\"field\":\"taxonomy.relatedTags\",\"size\":5000}}},\"explain\":false,\"from\":0,\"min_score\":0.3,\"query\":{\"bool\":{\"must\":[{\"term\":{\"promotions.permissions.channelID\":{\"value\":\"TR3SC\"}}},{\"range\":{\"visibility.fromDate\":{\"lt\":\"2026-07-24T23:51:55\"}}},{\"range\":{\"visibility.toDate\":{\"gt\":\"2026-07-24T23:51:55\"}}}]}},\"size\":24,\"sort\":[{\"offerID\":{\"order\":\"desc\"}}]}\r\n# Response:\r\n{\n  \"error\" : {\n    \"root_cause\" : [\n      {\n        \"type\" : \"illegal_argument_exception\",\n        \"reason\" : \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\",\n        \"stack_trace\" : \"[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]; nested: IllegalArgumentException[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.];\\n\\tat org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:667)\\n\\tat org.elasticsearch.action.search.SearchPhaseExecutionException.guessRootCauses(SearchPhaseExecutionException.java:150)\\n\\tat org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:649)\\n\\tat org.elasticsearch.ElasticsearchException.generateFailureXContent(ElasticsearchException.java:595)\\n\\tat org.elasticsearch.rest.BytesRestResponse.build(BytesRestResponse.java:140)\\n\\tat org.elasticsearch.rest.BytesRestResponse.<init>(BytesRestResponse.java:101)\\n\\tat org.elasticsearch.rest.BytesRestResponse.<init>(BytesRestResponse.java:81)\\n\\tat org.elasticsearch.rest.action.RestActionListener.onFailure(RestActionListener.java:55)\\n\\tat org.elasticsearch.rest.action.RestCancellableNodeClient$1.onFailure(RestCancellableNodeClient.java:96)\\n\\tat org.elasticsearch.action.support.TransportAction$1.onFailure(TransportAction.java:97)\\n\\tat org.elasticsearch.action.ActionListener$Delegating.onFailure(ActionListener.java:66)\\n\\tat org.elasticsearch.action.ActionListener$RunAfterActionListener.onFailure(ActionListener.java:350)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.raisePhaseFailure(AbstractSearchAsyncAction.java:736)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:713)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:400)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:745)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:497)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.access$000(AbstractSearchAsyncAction.java:64)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:331)\\n\\tat org.elasticsearch.action.ActionListener$Delegating.onFailure(ActionListener.java:66)\\n\\tat org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:48)\\n\\tat org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:651)\\n\\tat org.elasticsearch.transport.TransportService$4.handleException(TransportService.java:853)\\n\\tat org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1481)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1607)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1581)\\n\\tat org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:50)\\n\\tat org.elasticsearch.transport.TransportChannel.sendErrorResponse(TransportChannel.java:45)\\n\\tat org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:41)\\n\\tat org.elasticsearch.action.ActionRunnable.onFailure(ActionRunnable.java:77)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:28)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\nCaused by: java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\t... 6 more\\n\"\n      }\n    ],\n    \"type\" : \"search_phase_execution_exception\",\n    \"reason\" : \"all shards failed\",\n    \"phase\" : \"query\",\n    \"grouped\" : true,\n    \"failed_shards\" : [\n      {\n        \"shard\" : 0,\n        \"index\" : \"tresc_offers_ca\",\n        \"node\" : \"WA1jd-OlQfqtPgZxwjDQog\",\n        \"reason\" : {\n          \"type\" : \"illegal_argument_exception\",\n          \"reason\" : \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\",\n          \"stack_trace\" : \"java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\n\"\n        }\n      }\n    ],\n    \"caused_by\" : {\n      \"type\" : \"illegal_argument_exception\",\n      \"reason\" : \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\",\n      \"caused_by\" : {\n        \"type\" : \"illegal_argument_exception\",\n        \"reason\" : \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\",\n        \"stack_trace\" : \"java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\n\"\n      },\n      \"stack_trace\" : \"[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]; nested: IllegalArgumentException[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.];\\n\\tat org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:667)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:398)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:745)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:497)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.access$000(AbstractSearchAsyncAction.java:64)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:331)\\n\\tat org.elasticsearch.action.ActionListener$Delegating.onFailure(ActionListener.java:66)\\n\\tat org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:48)\\n\\tat org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:651)\\n\\tat org.elasticsearch.transport.TransportService$4.handleException(TransportService.java:853)\\n\\tat org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1481)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1607)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1581)\\n\\tat org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:50)\\n\\tat org.elasticsearch.transport.TransportChannel.sendErrorResponse(TransportChannel.java:45)\\n\\tat org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:41)\\n\\tat org.elasticsearch.action.ActionRunnable.onFailure(ActionRunnable.java:77)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:28)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\nCaused by: java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\t... 6 more\\n\"\n    },\n    \"stack_trace\" : \"Failed to execute phase [query], all shards failed; shardFailures {[WA1jd-OlQfqtPgZxwjDQog][tresc_offers_ca][0]: RemoteTransportException[[tresc-s02.tresc.cat][172.31.43.125:9300][indices:data/read/search[phase/query]]]; nested: IllegalArgumentException[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]; }\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:713)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:400)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:745)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:497)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.access$000(AbstractSearchAsyncAction.java:64)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:331)\\n\\tat org.elasticsearch.action.ActionListener$Delegating.onFailure(ActionListener.java:66)\\n\\tat org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:48)\\n\\tat org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:651)\\n\\tat org.elasticsearch.transport.TransportService$4.handleException(TransportService.java:853)\\n\\tat org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1481)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1607)\\n\\tat org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1581)\\n\\tat org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:50)\\n\\tat org.elasticsearch.transport.TransportChannel.sendErrorResponse(TransportChannel.java:45)\\n\\tat org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:41)\\n\\tat org.elasticsearch.action.ActionRunnable.onFailure(ActionRunnable.java:77)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:28)\\n\\tat org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)\\n\\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\\n\\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\\n\\tat java.base/java.lang.Thread.run(Thread.java:1623)\\nCaused by: [Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]; nested: IllegalArgumentException[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.];\\n\\tat org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:667)\\n\\tat org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:398)\\n\\t... 22 more\\nCaused by: java.lang.IllegalArgumentException: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\\n\\tat org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:875)\\n\\tat org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:112)\\n\\tat org.elasticsearch.index.query.SearchExecutionContext.getForField(SearchExecutionContext.java:297)\\n\\tat org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:435)\\n\\tat org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:154)\\n\\tat org.elasticsearch.search.SearchService.parseSource(SearchService.java:1188)\\n\\tat org.elasticsearch.search.SearchService.createContext(SearchService.java:982)\\n\\tat org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:618)\\n\\tat org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:483)\\n\\tat org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47)\\n\\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\\n\\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\\n\\t... 6 more\\n\"\n  },\n  \"status\" : 400\n}\n\r\n# TCP states:\r\n  Established: 33\r\n  TimeWait: 34\r\n\r\n# ThreadPool statistics:\r\n  Worker: \r\n    Busy: 1\r\n    Free: 32766\r\n    Min: 2\r\n    Max: 32767\r\n  IOCP: \r\n    Busy: 0\r\n    Free: 1000\r\n    Min: 2\r\n    Max: 1000\r\n\r\n# Inner Exception: The remote server returned an error: (400) Bad Request.\r\nSystem.Net.WebException: The remote server returned an error: (400) Bad Request.\r\n   at System.Net.HttpWebRequest.GetResponse()\r\n   at Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) in C:\\Users\\SteveGordon\\Code\\elasticsearch-net-v7\\src\\Elasticsearch.Net\\Connection\\HttpWebRequestConnection.cs:line 73\r\n# Exception:\r\nElasticsearch.Net.ElasticsearchClientException: The remote server returned an error: (400) Bad Request. Call: Status code 400 from: POST /tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true. ServerError: Type: search_phase_execution_exception Reason: \"all shards failed\" CausedBy: \"Type: illegal_argument_exception Reason: \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\" CausedBy: \"Type: illegal_argument_exception Reason: \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\"\"\" ---> System.Net.WebException: The remote server returned an error: (400) Bad Request.\r\n   at System.Net.HttpWebRequest.GetResponse()\r\n   at Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) in C:\\Users\\SteveGordon\\Code\\elasticsearch-net-v7\\src\\Elasticsearch.Net\\Connection\\HttpWebRequestConnection.cs:line 73\r\n   --- End of inner exception stack trace ---\r\n",
    "FailureReason": 1,
    "Request": {
      "Accept": "application/json",
      "AllowedStatusCodes": [],
      "ApiKeyAuthenticationCredentials": null,
      "BasicAuthorizationCredentials": null,
      "ClientCertificates": null,
      "ConnectionSettings": {},
      "CustomResponseBuilder": null,
      "DisableAutomaticProxyDetection": false,
      "DnsRefreshTimeout": "00:05:00",
      "Headers": [],
      "HttpCompression": false,
      "IsAsync": false,
      "JsonContentMimeType": "application/json",
      "KeepAliveInterval": 2000,
      "KeepAliveTime": 2000,
      "MadeItToResponse": true,
      "MemoryStreamFactory": {},
      "MetaHeaderProvider": {
        "HeaderName": "x-elastic-client-meta"
      },
      "Method": 1,
      "Node": {
        "ClientNode": false,
        "DeadUntil": "0001-01-01T00:00:00",
        "FailedAttempts": 0,
        "HoldsData": true,
        "HttpEnabled": true,
        "Id": null,
        "IngestEnabled": false,
        "IsAlive": true,
        "IsResurrected": false,
        "MasterEligible": true,
        "MasterOnlyNode": false,
        "Name": null,
        "Settings": {},
        "Uri": "http://ip-172-31-43-125.eu-west-1.compute.internal:9200/"
      },
      "OnFailureAuditEvent": 9,
      "OnFailurePipelineFailure": 1,
      "PathAndQuery": "tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true",
      "PingTimeout": "00:00:00.2000000",
      "Pipelined": true,
      "PostData": {
        "DisableDirectStreaming": true,
        "Type": 5,
        "WrittenBytes": "eyJhZ2dzIjp7ImNhdGVnb3J5Ijp7InRlcm1zIjp7ImZpZWxkIjoidGF4b25vbXkuY2F0ZWdvcnkiLCJzaXplIjo1MDAwfX0sInN1YmNhdGVnb3J5Ijp7InRlcm1zIjp7ImZpZWxkIjoidGF4b25vbXkuc3ViQ2F0ZWdvcnkiLCJzaXplIjo1MDAwfX0sInpvbmUiOnsidGVybXMiOnsiZmllbGQiOiJ0YXhvbm9teS56b25lIiwic2l6ZSI6NTAwMH19LCJ0YWdzIjp7InRlcm1zIjp7ImZpZWxkIjoidGF4b25vbXkucmVsYXRlZFRhZ3MiLCJzaXplIjo1MDAwfX19LCJleHBsYWluIjpmYWxzZSwiZnJvbSI6MCwibWluX3Njb3JlIjowLjMsInF1ZXJ5Ijp7ImJvb2wiOnsibXVzdCI6W3sidGVybSI6eyJwcm9tb3Rpb25zLnBlcm1pc3Npb25zLmNoYW5uZWxJRCI6eyJ2YWx1ZSI6IlRSM1NDIn19fSx7InJhbmdlIjp7InZpc2liaWxpdHkuZnJvbURhdGUiOnsibHQiOiIyMDI2LTA3LTI0VDIzOjUxOjU1In19fSx7InJhbmdlIjp7InZpc2liaWxpdHkudG9EYXRlIjp7Imd0IjoiMjAyNi0wNy0yNFQyMzo1MTo1NSJ9fX1dfX0sInNpemUiOjI0LCJzb3J0IjpbeyJvZmZlcklEIjp7Im9yZGVyIjoiZGVzYyJ9fV19"
      },
      "ProxyAddress": null,
      "ProxyPassword": null,
      "ProxyUsername": null,
      "RequestMetaData": {},
      "RequestMimeType": "application/json",
      "RequestTimeout": "00:02:00",
      "RunAs": null,
      "SkipDeserializationForStatusCodes": [],
      "TcpStats": true,
      "ThreadPoolStats": true,
      "ThrowExceptions": false,
      "TransferEncodingChunked": false,
      "Uri": "http://ip-172-31-43-125.eu-west-1.compute.internal:9200/tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true",
      "UserAgent": "elasticsearch-net/7.17.5+34f1b0b42ae4e0227fb1ad9ebeb7ae3406a998ec (Microsoft Windows 10.0.20348; .NET Framework 4.8.4795.0; Nest)"
    },
    "Message": "The remote server returned an error: (400) Bad Request. Call: Status code 400 from: POST /tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true. ServerError: Type: search_phase_execution_exception Reason: \"all shards failed\" CausedBy: \"Type: illegal_argument_exception Reason: \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\" CausedBy: \"Type: illegal_argument_exception Reason: \"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [offerID] in order to load field data by uninverting the inverted index. Note that this can use significant memory.\"\"\"",
    "Data": {},
    "InnerException": {
      "ClassName": "System.Net.WebException",
      "Message": "The remote server returned an error: (400) Bad Request.",
      "Data": null,
      "InnerException": null,
      "HelpURL": null,
      "StackTraceString": "   at System.Net.HttpWebRequest.GetResponse()\r\n   at Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) in C:\\Users\\SteveGordon\\Code\\elasticsearch-net-v7\\src\\Elasticsearch.Net\\Connection\\HttpWebRequestConnection.cs:line 73",
      "RemoteStackTraceString": null,
      "RemoteStackIndex": 0,
      "ExceptionMethod": "8\nGetResponse\nSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\nSystem.Net.HttpWebRequest\nSystem.Net.WebResponse GetResponse()",
      "HResult": -2146233079,
      "Source": "System",
      "WatsonBuckets": null
    },
    "StackTrace": null,
    "HelpLink": null,
    "Source": null,
    "HResult": -2146233088
  },
  "RequestBodyInBytes": "eyJhZ2dzIjp7ImNhdGVnb3J5Ijp7InRlcm1zIjp7ImZpZWxkIjoidGF4b25vbXkuY2F0ZWdvcnkiLCJzaXplIjo1MDAwfX0sInN1YmNhdGVnb3J5Ijp7InRlcm1zIjp7ImZpZWxkIjoidGF4b25vbXkuc3ViQ2F0ZWdvcnkiLCJzaXplIjo1MDAwfX0sInpvbmUiOnsidGVybXMiOnsiZmllbGQiOiJ0YXhvbm9teS56b25lIiwic2l6ZSI6NTAwMH19LCJ0YWdzIjp7InRlcm1zIjp7ImZpZWxkIjoidGF4b25vbXkucmVsYXRlZFRhZ3MiLCJzaXplIjo1MDAwfX19LCJleHBsYWluIjpmYWxzZSwiZnJvbSI6MCwibWluX3Njb3JlIjowLjMsInF1ZXJ5Ijp7ImJvb2wiOnsibXVzdCI6W3sidGVybSI6eyJwcm9tb3Rpb25zLnBlcm1pc3Npb25zLmNoYW5uZWxJRCI6eyJ2YWx1ZSI6IlRSM1NDIn19fSx7InJhbmdlIjp7InZpc2liaWxpdHkuZnJvbURhdGUiOnsibHQiOiIyMDI2LTA3LTI0VDIzOjUxOjU1In19fSx7InJhbmdlIjp7InZpc2liaWxpdHkudG9EYXRlIjp7Imd0IjoiMjAyNi0wNy0yNFQyMzo1MTo1NSJ9fX1dfX0sInNpemUiOjI0LCJzb3J0IjpbeyJvZmZlcklEIjp7Im9yZGVyIjoiZGVzYyJ9fV19",
  "ResponseBodyInBytes": "ewogICJlcnJvciIgOiB7CiAgICAicm9vdF9jYXVzZSIgOiBbCiAgICAgIHsKICAgICAgICAidHlwZSIgOiAiaWxsZWdhbF9hcmd1bWVudF9leGNlcHRpb24iLAogICAgICAgICJyZWFzb24iIDogIlRleHQgZmllbGRzIGFyZSBub3Qgb3B0aW1pc2VkIGZvciBvcGVyYXRpb25zIHRoYXQgcmVxdWlyZSBwZXItZG9jdW1lbnQgZmllbGQgZGF0YSBsaWtlIGFnZ3JlZ2F0aW9ucyBhbmQgc29ydGluZywgc28gdGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzYWJsZWQgYnkgZGVmYXVsdC4gUGxlYXNlIHVzZSBhIGtleXdvcmQgZmllbGQgaW5zdGVhZC4gQWx0ZXJuYXRpdmVseSwgc2V0IGZpZWxkZGF0YT10cnVlIG9uIFtvZmZlcklEXSBpbiBvcmRlciB0byBsb2FkIGZpZWxkIGRhdGEgYnkgdW5pbnZlcnRpbmcgdGhlIGludmVydGVkIGluZGV4LiBOb3RlIHRoYXQgdGhpcyBjYW4gdXNlIHNpZ25pZmljYW50IG1lbW9yeS4iLAogICAgICAgICJzdGFja190cmFjZSIgOiAiW1RleHQgZmllbGRzIGFyZSBub3Qgb3B0aW1pc2VkIGZvciBvcGVyYXRpb25zIHRoYXQgcmVxdWlyZSBwZXItZG9jdW1lbnQgZmllbGQgZGF0YSBsaWtlIGFnZ3JlZ2F0aW9ucyBhbmQgc29ydGluZywgc28gdGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzYWJsZWQgYnkgZGVmYXVsdC4gUGxlYXNlIHVzZSBhIGtleXdvcmQgZmllbGQgaW5zdGVhZC4gQWx0ZXJuYXRpdmVseSwgc2V0IGZpZWxkZGF0YT10cnVlIG9uIFtvZmZlcklEXSBpbiBvcmRlciB0byBsb2FkIGZpZWxkIGRhdGEgYnkgdW5pbnZlcnRpbmcgdGhlIGludmVydGVkIGluZGV4LiBOb3RlIHRoYXQgdGhpcyBjYW4gdXNlIHNpZ25pZmljYW50IG1lbW9yeS5dOyBuZXN0ZWQ6IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbltUZXh0IGZpZWxkcyBhcmUgbm90IG9wdGltaXNlZCBmb3Igb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgcGVyLWRvY3VtZW50IGZpZWxkIGRhdGEgbGlrZSBhZ2dyZWdhdGlvbnMgYW5kIHNvcnRpbmcsIHNvIHRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFBsZWFzZSB1c2UgYSBrZXl3b3JkIGZpZWxkIGluc3RlYWQuIEFsdGVybmF0aXZlbHksIHNldCBmaWVsZGRhdGE9dHJ1ZSBvbiBbb2ZmZXJJRF0gaW4gb3JkZXIgdG8gbG9hZCBmaWVsZCBkYXRhIGJ5IHVuaW52ZXJ0aW5nIHRoZSBpbnZlcnRlZCBpbmRleC4gTm90ZSB0aGF0IHRoaXMgY2FuIHVzZSBzaWduaWZpY2FudCBtZW1vcnkuXTtcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guRWxhc3RpY3NlYXJjaEV4Y2VwdGlvbi5ndWVzc1Jvb3RDYXVzZXMoRWxhc3RpY3NlYXJjaEV4Y2VwdGlvbi5qYXZhOjY2Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLnNlYXJjaC5TZWFyY2hQaGFzZUV4ZWN1dGlvbkV4Y2VwdGlvbi5ndWVzc1Jvb3RDYXVzZXMoU2VhcmNoUGhhc2VFeGVjdXRpb25FeGNlcHRpb24uamF2YToxNTApXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLkVsYXN0aWNzZWFyY2hFeGNlcHRpb24uZ3Vlc3NSb290Q2F1c2VzKEVsYXN0aWNzZWFyY2hFeGNlcHRpb24uamF2YTo2NDkpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLkVsYXN0aWNzZWFyY2hFeGNlcHRpb24uZ2VuZXJhdGVGYWlsdXJlWENvbnRlbnQoRWxhc3RpY3NlYXJjaEV4Y2VwdGlvbi5qYXZhOjU5NSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gucmVzdC5CeXRlc1Jlc3RSZXNwb25zZS5idWlsZChCeXRlc1Jlc3RSZXNwb25zZS5qYXZhOjE0MClcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gucmVzdC5CeXRlc1Jlc3RSZXNwb25zZS48aW5pdD4oQnl0ZXNSZXN0UmVzcG9uc2UuamF2YToxMDEpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnJlc3QuQnl0ZXNSZXN0UmVzcG9uc2UuPGluaXQ+KEJ5dGVzUmVzdFJlc3BvbnNlLmphdmE6ODEpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnJlc3QuYWN0aW9uLlJlc3RBY3Rpb25MaXN0ZW5lci5vbkZhaWx1cmUoUmVzdEFjdGlvbkxpc3RlbmVyLmphdmE6NTUpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnJlc3QuYWN0aW9uLlJlc3RDYW5jZWxsYWJsZU5vZGVDbGllbnQkMS5vbkZhaWx1cmUoUmVzdENhbmNlbGxhYmxlTm9kZUNsaWVudC5qYXZhOjk2KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uc3VwcG9ydC5UcmFuc3BvcnRBY3Rpb24kMS5vbkZhaWx1cmUoVHJhbnNwb3J0QWN0aW9uLmphdmE6OTcpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5BY3Rpb25MaXN0ZW5lciREZWxlZ2F0aW5nLm9uRmFpbHVyZShBY3Rpb25MaXN0ZW5lci5qYXZhOjY2KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uQWN0aW9uTGlzdGVuZXIkUnVuQWZ0ZXJBY3Rpb25MaXN0ZW5lci5vbkZhaWx1cmUoQWN0aW9uTGlzdGVuZXIuamF2YTozNTApXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5zZWFyY2guQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5yYWlzZVBoYXNlRmFpbHVyZShBYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmphdmE6NzM2KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uc2VhcmNoLkFic3RyYWN0U2VhcmNoQXN5bmNBY3Rpb24ub25QaGFzZUZhaWx1cmUoQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5qYXZhOjcxMylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLnNlYXJjaC5BYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmV4ZWN1dGVOZXh0UGhhc2UoQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5qYXZhOjQwMClcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLnNlYXJjaC5BYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLm9uUGhhc2VEb25lKEFic3RyYWN0U2VhcmNoQXN5bmNBY3Rpb24uamF2YTo3NDUpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5zZWFyY2guQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5vblNoYXJkRmFpbHVyZShBYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmphdmE6NDk3KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uc2VhcmNoLkFic3RyYWN0U2VhcmNoQXN5bmNBY3Rpb24uYWNjZXNzJDAwMChBYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmphdmE6NjQpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5zZWFyY2guQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbiQxLm9uRmFpbHVyZShBYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmphdmE6MzMxKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uQWN0aW9uTGlzdGVuZXIkRGVsZWdhdGluZy5vbkZhaWx1cmUoQWN0aW9uTGlzdGVuZXIuamF2YTo2Nilcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLkFjdGlvbkxpc3RlbmVyUmVzcG9uc2VIYW5kbGVyLmhhbmRsZUV4Y2VwdGlvbihBY3Rpb25MaXN0ZW5lclJlc3BvbnNlSGFuZGxlci5qYXZhOjQ4KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uc2VhcmNoLlNlYXJjaFRyYW5zcG9ydFNlcnZpY2UkQ29ubmVjdGlvbkNvdW50aW5nSGFuZGxlci5oYW5kbGVFeGNlcHRpb24oU2VhcmNoVHJhbnNwb3J0U2VydmljZS5qYXZhOjY1MSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRyYW5zcG9ydFNlcnZpY2UkNC5oYW5kbGVFeGNlcHRpb24oVHJhbnNwb3J0U2VydmljZS5qYXZhOjg1Mylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRyYW5zcG9ydFNlcnZpY2UkQ29udGV4dFJlc3RvcmVSZXNwb25zZUhhbmRsZXIuaGFuZGxlRXhjZXB0aW9uKFRyYW5zcG9ydFNlcnZpY2UuamF2YToxNDgxKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC50cmFuc3BvcnQuVHJhbnNwb3J0U2VydmljZSREaXJlY3RSZXNwb25zZUNoYW5uZWwucHJvY2Vzc0V4Y2VwdGlvbihUcmFuc3BvcnRTZXJ2aWNlLmphdmE6MTYwNylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRyYW5zcG9ydFNlcnZpY2UkRGlyZWN0UmVzcG9uc2VDaGFubmVsLnNlbmRSZXNwb25zZShUcmFuc3BvcnRTZXJ2aWNlLmphdmE6MTU4MSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRhc2tUcmFuc3BvcnRDaGFubmVsLnNlbmRSZXNwb25zZShUYXNrVHJhbnNwb3J0Q2hhbm5lbC5qYXZhOjUwKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC50cmFuc3BvcnQuVHJhbnNwb3J0Q2hhbm5lbC5zZW5kRXJyb3JSZXNwb25zZShUcmFuc3BvcnRDaGFubmVsLmphdmE6NDUpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5zdXBwb3J0LkNoYW5uZWxBY3Rpb25MaXN0ZW5lci5vbkZhaWx1cmUoQ2hhbm5lbEFjdGlvbkxpc3RlbmVyLmphdmE6NDEpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5BY3Rpb25SdW5uYWJsZS5vbkZhaWx1cmUoQWN0aW9uUnVubmFibGUuamF2YTo3Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5BYnN0cmFjdFJ1bm5hYmxlLnJ1bihBYnN0cmFjdFJ1bm5hYmxlLmphdmE6MjgpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmNvbW1vbi51dGlsLmNvbmN1cnJlbnQuVGltZWRSdW5uYWJsZS5kb1J1bihUaW1lZFJ1bm5hYmxlLmphdmE6MzMpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmNvbW1vbi51dGlsLmNvbmN1cnJlbnQuVGhyZWFkQ29udGV4dCRDb250ZXh0UHJlc2VydmluZ0Fic3RyYWN0UnVubmFibGUuZG9SdW4oVGhyZWFkQ29udGV4dC5qYXZhOjc3Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5BYnN0cmFjdFJ1bm5hYmxlLnJ1bihBYnN0cmFjdFJ1bm5hYmxlLmphdmE6MjYpXG5cdGF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDQpXG5cdGF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2NDIpXG5cdGF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YToxNjIzKVxuQ2F1c2VkIGJ5OiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBUZXh0IGZpZWxkcyBhcmUgbm90IG9wdGltaXNlZCBmb3Igb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgcGVyLWRvY3VtZW50IGZpZWxkIGRhdGEgbGlrZSBhZ2dyZWdhdGlvbnMgYW5kIHNvcnRpbmcsIHNvIHRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFBsZWFzZSB1c2UgYSBrZXl3b3JkIGZpZWxkIGluc3RlYWQuIEFsdGVybmF0aXZlbHksIHNldCBmaWVsZGRhdGE9dHJ1ZSBvbiBbb2ZmZXJJRF0gaW4gb3JkZXIgdG8gbG9hZCBmaWVsZCBkYXRhIGJ5IHVuaW52ZXJ0aW5nIHRoZSBpbnZlcnRlZCBpbmRleC4gTm90ZSB0aGF0IHRoaXMgY2FuIHVzZSBzaWduaWZpY2FudCBtZW1vcnkuXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmluZGV4Lm1hcHBlci5UZXh0RmllbGRNYXBwZXIkVGV4dEZpZWxkVHlwZS5maWVsZGRhdGFCdWlsZGVyKFRleHRGaWVsZE1hcHBlci5qYXZhOjg3NSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guaW5kZXguZmllbGRkYXRhLkluZGV4RmllbGREYXRhU2VydmljZS5nZXRGb3JGaWVsZChJbmRleEZpZWxkRGF0YVNlcnZpY2UuamF2YToxMTIpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmluZGV4LnF1ZXJ5LlNlYXJjaEV4ZWN1dGlvbkNvbnRleHQuZ2V0Rm9yRmllbGQoU2VhcmNoRXhlY3V0aW9uQ29udGV4dC5qYXZhOjI5Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guc2VhcmNoLnNvcnQuRmllbGRTb3J0QnVpbGRlci5idWlsZChGaWVsZFNvcnRCdWlsZGVyLmphdmE6NDM1KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guc29ydC5Tb3J0QnVpbGRlci5idWlsZFNvcnQoU29ydEJ1aWxkZXIuamF2YToxNTQpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLnBhcnNlU291cmNlKFNlYXJjaFNlcnZpY2UuamF2YToxMTg4KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guU2VhcmNoU2VydmljZS5jcmVhdGVDb250ZXh0KFNlYXJjaFNlcnZpY2UuamF2YTo5ODIpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLmV4ZWN1dGVRdWVyeVBoYXNlKFNlYXJjaFNlcnZpY2UuamF2YTo2MTgpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLmxhbWJkYSRleGVjdXRlUXVlcnlQaGFzZSQyKFNlYXJjaFNlcnZpY2UuamF2YTo0ODMpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5BY3Rpb25SdW5uYWJsZS5sYW1iZGEkc3VwcGx5JDAoQWN0aW9uUnVubmFibGUuamF2YTo0Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLkFjdGlvblJ1bm5hYmxlJDIuZG9SdW4oQWN0aW9uUnVubmFibGUuamF2YTo2Milcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5BYnN0cmFjdFJ1bm5hYmxlLnJ1bihBYnN0cmFjdFJ1bm5hYmxlLmphdmE6MjYpXG5cdC4uLiA2IG1vcmVcbiIKICAgICAgfQogICAgXSwKICAgICJ0eXBlIiA6ICJzZWFyY2hfcGhhc2VfZXhlY3V0aW9uX2V4Y2VwdGlvbiIsCiAgICAicmVhc29uIiA6ICJhbGwgc2hhcmRzIGZhaWxlZCIsCiAgICAicGhhc2UiIDogInF1ZXJ5IiwKICAgICJncm91cGVkIiA6IHRydWUsCiAgICAiZmFpbGVkX3NoYXJkcyIgOiBbCiAgICAgIHsKICAgICAgICAic2hhcmQiIDogMCwKICAgICAgICAiaW5kZXgiIDogInRyZXNjX29mZmVyc19jYSIsCiAgICAgICAgIm5vZGUiIDogIldBMWpkLU9sUWZxdFBnWnh3akRRb2ciLAogICAgICAgICJyZWFzb24iIDogewogICAgICAgICAgInR5cGUiIDogImlsbGVnYWxfYXJndW1lbnRfZXhjZXB0aW9uIiwKICAgICAgICAgICJyZWFzb24iIDogIlRleHQgZmllbGRzIGFyZSBub3Qgb3B0aW1pc2VkIGZvciBvcGVyYXRpb25zIHRoYXQgcmVxdWlyZSBwZXItZG9jdW1lbnQgZmllbGQgZGF0YSBsaWtlIGFnZ3JlZ2F0aW9ucyBhbmQgc29ydGluZywgc28gdGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzYWJsZWQgYnkgZGVmYXVsdC4gUGxlYXNlIHVzZSBhIGtleXdvcmQgZmllbGQgaW5zdGVhZC4gQWx0ZXJuYXRpdmVseSwgc2V0IGZpZWxkZGF0YT10cnVlIG9uIFtvZmZlcklEXSBpbiBvcmRlciB0byBsb2FkIGZpZWxkIGRhdGEgYnkgdW5pbnZlcnRpbmcgdGhlIGludmVydGVkIGluZGV4LiBOb3RlIHRoYXQgdGhpcyBjYW4gdXNlIHNpZ25pZmljYW50IG1lbW9yeS4iLAogICAgICAgICAgInN0YWNrX3RyYWNlIiA6ICJqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBUZXh0IGZpZWxkcyBhcmUgbm90IG9wdGltaXNlZCBmb3Igb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgcGVyLWRvY3VtZW50IGZpZWxkIGRhdGEgbGlrZSBhZ2dyZWdhdGlvbnMgYW5kIHNvcnRpbmcsIHNvIHRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFBsZWFzZSB1c2UgYSBrZXl3b3JkIGZpZWxkIGluc3RlYWQuIEFsdGVybmF0aXZlbHksIHNldCBmaWVsZGRhdGE9dHJ1ZSBvbiBbb2ZmZXJJRF0gaW4gb3JkZXIgdG8gbG9hZCBmaWVsZCBkYXRhIGJ5IHVuaW52ZXJ0aW5nIHRoZSBpbnZlcnRlZCBpbmRleC4gTm90ZSB0aGF0IHRoaXMgY2FuIHVzZSBzaWduaWZpY2FudCBtZW1vcnkuXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmluZGV4Lm1hcHBlci5UZXh0RmllbGRNYXBwZXIkVGV4dEZpZWxkVHlwZS5maWVsZGRhdGFCdWlsZGVyKFRleHRGaWVsZE1hcHBlci5qYXZhOjg3NSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guaW5kZXguZmllbGRkYXRhLkluZGV4RmllbGREYXRhU2VydmljZS5nZXRGb3JGaWVsZChJbmRleEZpZWxkRGF0YVNlcnZpY2UuamF2YToxMTIpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmluZGV4LnF1ZXJ5LlNlYXJjaEV4ZWN1dGlvbkNvbnRleHQuZ2V0Rm9yRmllbGQoU2VhcmNoRXhlY3V0aW9uQ29udGV4dC5qYXZhOjI5Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guc2VhcmNoLnNvcnQuRmllbGRTb3J0QnVpbGRlci5idWlsZChGaWVsZFNvcnRCdWlsZGVyLmphdmE6NDM1KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guc29ydC5Tb3J0QnVpbGRlci5idWlsZFNvcnQoU29ydEJ1aWxkZXIuamF2YToxNTQpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLnBhcnNlU291cmNlKFNlYXJjaFNlcnZpY2UuamF2YToxMTg4KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guU2VhcmNoU2VydmljZS5jcmVhdGVDb250ZXh0KFNlYXJjaFNlcnZpY2UuamF2YTo5ODIpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLmV4ZWN1dGVRdWVyeVBoYXNlKFNlYXJjaFNlcnZpY2UuamF2YTo2MTgpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLmxhbWJkYSRleGVjdXRlUXVlcnlQaGFzZSQyKFNlYXJjaFNlcnZpY2UuamF2YTo0ODMpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5BY3Rpb25SdW5uYWJsZS5sYW1iZGEkc3VwcGx5JDAoQWN0aW9uUnVubmFibGUuamF2YTo0Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLkFjdGlvblJ1bm5hYmxlJDIuZG9SdW4oQWN0aW9uUnVubmFibGUuamF2YTo2Milcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5BYnN0cmFjdFJ1bm5hYmxlLnJ1bihBYnN0cmFjdFJ1bm5hYmxlLmphdmE6MjYpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmNvbW1vbi51dGlsLmNvbmN1cnJlbnQuVGltZWRSdW5uYWJsZS5kb1J1bihUaW1lZFJ1bm5hYmxlLmphdmE6MzMpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmNvbW1vbi51dGlsLmNvbmN1cnJlbnQuVGhyZWFkQ29udGV4dCRDb250ZXh0UHJlc2VydmluZ0Fic3RyYWN0UnVubmFibGUuZG9SdW4oVGhyZWFkQ29udGV4dC5qYXZhOjc3Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5BYnN0cmFjdFJ1bm5hYmxlLnJ1bihBYnN0cmFjdFJ1bm5hYmxlLmphdmE6MjYpXG5cdGF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDQpXG5cdGF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2NDIpXG5cdGF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YToxNjIzKVxuIgogICAgICAgIH0KICAgICAgfQogICAgXSwKICAgICJjYXVzZWRfYnkiIDogewogICAgICAidHlwZSIgOiAiaWxsZWdhbF9hcmd1bWVudF9leGNlcHRpb24iLAogICAgICAicmVhc29uIiA6ICJUZXh0IGZpZWxkcyBhcmUgbm90IG9wdGltaXNlZCBmb3Igb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgcGVyLWRvY3VtZW50IGZpZWxkIGRhdGEgbGlrZSBhZ2dyZWdhdGlvbnMgYW5kIHNvcnRpbmcsIHNvIHRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFBsZWFzZSB1c2UgYSBrZXl3b3JkIGZpZWxkIGluc3RlYWQuIEFsdGVybmF0aXZlbHksIHNldCBmaWVsZGRhdGE9dHJ1ZSBvbiBbb2ZmZXJJRF0gaW4gb3JkZXIgdG8gbG9hZCBmaWVsZCBkYXRhIGJ5IHVuaW52ZXJ0aW5nIHRoZSBpbnZlcnRlZCBpbmRleC4gTm90ZSB0aGF0IHRoaXMgY2FuIHVzZSBzaWduaWZpY2FudCBtZW1vcnkuIiwKICAgICAgImNhdXNlZF9ieSIgOiB7CiAgICAgICAgInR5cGUiIDogImlsbGVnYWxfYXJndW1lbnRfZXhjZXB0aW9uIiwKICAgICAgICAicmVhc29uIiA6ICJUZXh0IGZpZWxkcyBhcmUgbm90IG9wdGltaXNlZCBmb3Igb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgcGVyLWRvY3VtZW50IGZpZWxkIGRhdGEgbGlrZSBhZ2dyZWdhdGlvbnMgYW5kIHNvcnRpbmcsIHNvIHRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFBsZWFzZSB1c2UgYSBrZXl3b3JkIGZpZWxkIGluc3RlYWQuIEFsdGVybmF0aXZlbHksIHNldCBmaWVsZGRhdGE9dHJ1ZSBvbiBbb2ZmZXJJRF0gaW4gb3JkZXIgdG8gbG9hZCBmaWVsZCBkYXRhIGJ5IHVuaW52ZXJ0aW5nIHRoZSBpbnZlcnRlZCBpbmRleC4gTm90ZSB0aGF0IHRoaXMgY2FuIHVzZSBzaWduaWZpY2FudCBtZW1vcnkuIiwKICAgICAgICAic3RhY2tfdHJhY2UiIDogImphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb246IFRleHQgZmllbGRzIGFyZSBub3Qgb3B0aW1pc2VkIGZvciBvcGVyYXRpb25zIHRoYXQgcmVxdWlyZSBwZXItZG9jdW1lbnQgZmllbGQgZGF0YSBsaWtlIGFnZ3JlZ2F0aW9ucyBhbmQgc29ydGluZywgc28gdGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzYWJsZWQgYnkgZGVmYXVsdC4gUGxlYXNlIHVzZSBhIGtleXdvcmQgZmllbGQgaW5zdGVhZC4gQWx0ZXJuYXRpdmVseSwgc2V0IGZpZWxkZGF0YT10cnVlIG9uIFtvZmZlcklEXSBpbiBvcmRlciB0byBsb2FkIGZpZWxkIGRhdGEgYnkgdW5pbnZlcnRpbmcgdGhlIGludmVydGVkIGluZGV4LiBOb3RlIHRoYXQgdGhpcyBjYW4gdXNlIHNpZ25pZmljYW50IG1lbW9yeS5cblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guaW5kZXgubWFwcGVyLlRleHRGaWVsZE1hcHBlciRUZXh0RmllbGRUeXBlLmZpZWxkZGF0YUJ1aWxkZXIoVGV4dEZpZWxkTWFwcGVyLmphdmE6ODc1KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5pbmRleC5maWVsZGRhdGEuSW5kZXhGaWVsZERhdGFTZXJ2aWNlLmdldEZvckZpZWxkKEluZGV4RmllbGREYXRhU2VydmljZS5qYXZhOjExMilcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guaW5kZXgucXVlcnkuU2VhcmNoRXhlY3V0aW9uQ29udGV4dC5nZXRGb3JGaWVsZChTZWFyY2hFeGVjdXRpb25Db250ZXh0LmphdmE6Mjk3KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guc29ydC5GaWVsZFNvcnRCdWlsZGVyLmJ1aWxkKEZpZWxkU29ydEJ1aWxkZXIuamF2YTo0MzUpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5zb3J0LlNvcnRCdWlsZGVyLmJ1aWxkU29ydChTb3J0QnVpbGRlci5qYXZhOjE1NClcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guc2VhcmNoLlNlYXJjaFNlcnZpY2UucGFyc2VTb3VyY2UoU2VhcmNoU2VydmljZS5qYXZhOjExODgpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLmNyZWF0ZUNvbnRleHQoU2VhcmNoU2VydmljZS5qYXZhOjk4Milcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guc2VhcmNoLlNlYXJjaFNlcnZpY2UuZXhlY3V0ZVF1ZXJ5UGhhc2UoU2VhcmNoU2VydmljZS5qYXZhOjYxOClcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guc2VhcmNoLlNlYXJjaFNlcnZpY2UubGFtYmRhJGV4ZWN1dGVRdWVyeVBoYXNlJDIoU2VhcmNoU2VydmljZS5qYXZhOjQ4Mylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLkFjdGlvblJ1bm5hYmxlLmxhbWJkYSRzdXBwbHkkMChBY3Rpb25SdW5uYWJsZS5qYXZhOjQ3KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uQWN0aW9uUnVubmFibGUkMi5kb1J1bihBY3Rpb25SdW5uYWJsZS5qYXZhOjYyKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5jb21tb24udXRpbC5jb25jdXJyZW50LkFic3RyYWN0UnVubmFibGUucnVuKEFic3RyYWN0UnVubmFibGUuamF2YToyNilcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5UaW1lZFJ1bm5hYmxlLmRvUnVuKFRpbWVkUnVubmFibGUuamF2YTozMylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5UaHJlYWRDb250ZXh0JENvbnRleHRQcmVzZXJ2aW5nQWJzdHJhY3RSdW5uYWJsZS5kb1J1bihUaHJlYWRDb250ZXh0LmphdmE6Nzc3KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5jb21tb24udXRpbC5jb25jdXJyZW50LkFic3RyYWN0UnVubmFibGUucnVuKEFic3RyYWN0UnVubmFibGUuamF2YToyNilcblx0YXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0NClcblx0YXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjY0Milcblx0YXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjE2MjMpXG4iCiAgICAgIH0sCiAgICAgICJzdGFja190cmFjZSIgOiAiW1RleHQgZmllbGRzIGFyZSBub3Qgb3B0aW1pc2VkIGZvciBvcGVyYXRpb25zIHRoYXQgcmVxdWlyZSBwZXItZG9jdW1lbnQgZmllbGQgZGF0YSBsaWtlIGFnZ3JlZ2F0aW9ucyBhbmQgc29ydGluZywgc28gdGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzYWJsZWQgYnkgZGVmYXVsdC4gUGxlYXNlIHVzZSBhIGtleXdvcmQgZmllbGQgaW5zdGVhZC4gQWx0ZXJuYXRpdmVseSwgc2V0IGZpZWxkZGF0YT10cnVlIG9uIFtvZmZlcklEXSBpbiBvcmRlciB0byBsb2FkIGZpZWxkIGRhdGEgYnkgdW5pbnZlcnRpbmcgdGhlIGludmVydGVkIGluZGV4LiBOb3RlIHRoYXQgdGhpcyBjYW4gdXNlIHNpZ25pZmljYW50IG1lbW9yeS5dOyBuZXN0ZWQ6IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbltUZXh0IGZpZWxkcyBhcmUgbm90IG9wdGltaXNlZCBmb3Igb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgcGVyLWRvY3VtZW50IGZpZWxkIGRhdGEgbGlrZSBhZ2dyZWdhdGlvbnMgYW5kIHNvcnRpbmcsIHNvIHRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFBsZWFzZSB1c2UgYSBrZXl3b3JkIGZpZWxkIGluc3RlYWQuIEFsdGVybmF0aXZlbHksIHNldCBmaWVsZGRhdGE9dHJ1ZSBvbiBbb2ZmZXJJRF0gaW4gb3JkZXIgdG8gbG9hZCBmaWVsZCBkYXRhIGJ5IHVuaW52ZXJ0aW5nIHRoZSBpbnZlcnRlZCBpbmRleC4gTm90ZSB0aGF0IHRoaXMgY2FuIHVzZSBzaWduaWZpY2FudCBtZW1vcnkuXTtcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guRWxhc3RpY3NlYXJjaEV4Y2VwdGlvbi5ndWVzc1Jvb3RDYXVzZXMoRWxhc3RpY3NlYXJjaEV4Y2VwdGlvbi5qYXZhOjY2Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLnNlYXJjaC5BYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmV4ZWN1dGVOZXh0UGhhc2UoQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5qYXZhOjM5OClcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLnNlYXJjaC5BYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLm9uUGhhc2VEb25lKEFic3RyYWN0U2VhcmNoQXN5bmNBY3Rpb24uamF2YTo3NDUpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5zZWFyY2guQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5vblNoYXJkRmFpbHVyZShBYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmphdmE6NDk3KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uc2VhcmNoLkFic3RyYWN0U2VhcmNoQXN5bmNBY3Rpb24uYWNjZXNzJDAwMChBYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmphdmE6NjQpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5zZWFyY2guQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbiQxLm9uRmFpbHVyZShBYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmphdmE6MzMxKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uQWN0aW9uTGlzdGVuZXIkRGVsZWdhdGluZy5vbkZhaWx1cmUoQWN0aW9uTGlzdGVuZXIuamF2YTo2Nilcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLkFjdGlvbkxpc3RlbmVyUmVzcG9uc2VIYW5kbGVyLmhhbmRsZUV4Y2VwdGlvbihBY3Rpb25MaXN0ZW5lclJlc3BvbnNlSGFuZGxlci5qYXZhOjQ4KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uc2VhcmNoLlNlYXJjaFRyYW5zcG9ydFNlcnZpY2UkQ29ubmVjdGlvbkNvdW50aW5nSGFuZGxlci5oYW5kbGVFeGNlcHRpb24oU2VhcmNoVHJhbnNwb3J0U2VydmljZS5qYXZhOjY1MSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRyYW5zcG9ydFNlcnZpY2UkNC5oYW5kbGVFeGNlcHRpb24oVHJhbnNwb3J0U2VydmljZS5qYXZhOjg1Mylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRyYW5zcG9ydFNlcnZpY2UkQ29udGV4dFJlc3RvcmVSZXNwb25zZUhhbmRsZXIuaGFuZGxlRXhjZXB0aW9uKFRyYW5zcG9ydFNlcnZpY2UuamF2YToxNDgxKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC50cmFuc3BvcnQuVHJhbnNwb3J0U2VydmljZSREaXJlY3RSZXNwb25zZUNoYW5uZWwucHJvY2Vzc0V4Y2VwdGlvbihUcmFuc3BvcnRTZXJ2aWNlLmphdmE6MTYwNylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRyYW5zcG9ydFNlcnZpY2UkRGlyZWN0UmVzcG9uc2VDaGFubmVsLnNlbmRSZXNwb25zZShUcmFuc3BvcnRTZXJ2aWNlLmphdmE6MTU4MSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRhc2tUcmFuc3BvcnRDaGFubmVsLnNlbmRSZXNwb25zZShUYXNrVHJhbnNwb3J0Q2hhbm5lbC5qYXZhOjUwKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC50cmFuc3BvcnQuVHJhbnNwb3J0Q2hhbm5lbC5zZW5kRXJyb3JSZXNwb25zZShUcmFuc3BvcnRDaGFubmVsLmphdmE6NDUpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5zdXBwb3J0LkNoYW5uZWxBY3Rpb25MaXN0ZW5lci5vbkZhaWx1cmUoQ2hhbm5lbEFjdGlvbkxpc3RlbmVyLmphdmE6NDEpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5BY3Rpb25SdW5uYWJsZS5vbkZhaWx1cmUoQWN0aW9uUnVubmFibGUuamF2YTo3Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5BYnN0cmFjdFJ1bm5hYmxlLnJ1bihBYnN0cmFjdFJ1bm5hYmxlLmphdmE6MjgpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmNvbW1vbi51dGlsLmNvbmN1cnJlbnQuVGltZWRSdW5uYWJsZS5kb1J1bihUaW1lZFJ1bm5hYmxlLmphdmE6MzMpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmNvbW1vbi51dGlsLmNvbmN1cnJlbnQuVGhyZWFkQ29udGV4dCRDb250ZXh0UHJlc2VydmluZ0Fic3RyYWN0UnVubmFibGUuZG9SdW4oVGhyZWFkQ29udGV4dC5qYXZhOjc3Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5BYnN0cmFjdFJ1bm5hYmxlLnJ1bihBYnN0cmFjdFJ1bm5hYmxlLmphdmE6MjYpXG5cdGF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDQpXG5cdGF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2NDIpXG5cdGF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YToxNjIzKVxuQ2F1c2VkIGJ5OiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBUZXh0IGZpZWxkcyBhcmUgbm90IG9wdGltaXNlZCBmb3Igb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgcGVyLWRvY3VtZW50IGZpZWxkIGRhdGEgbGlrZSBhZ2dyZWdhdGlvbnMgYW5kIHNvcnRpbmcsIHNvIHRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFBsZWFzZSB1c2UgYSBrZXl3b3JkIGZpZWxkIGluc3RlYWQuIEFsdGVybmF0aXZlbHksIHNldCBmaWVsZGRhdGE9dHJ1ZSBvbiBbb2ZmZXJJRF0gaW4gb3JkZXIgdG8gbG9hZCBmaWVsZCBkYXRhIGJ5IHVuaW52ZXJ0aW5nIHRoZSBpbnZlcnRlZCBpbmRleC4gTm90ZSB0aGF0IHRoaXMgY2FuIHVzZSBzaWduaWZpY2FudCBtZW1vcnkuXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmluZGV4Lm1hcHBlci5UZXh0RmllbGRNYXBwZXIkVGV4dEZpZWxkVHlwZS5maWVsZGRhdGFCdWlsZGVyKFRleHRGaWVsZE1hcHBlci5qYXZhOjg3NSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guaW5kZXguZmllbGRkYXRhLkluZGV4RmllbGREYXRhU2VydmljZS5nZXRGb3JGaWVsZChJbmRleEZpZWxkRGF0YVNlcnZpY2UuamF2YToxMTIpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmluZGV4LnF1ZXJ5LlNlYXJjaEV4ZWN1dGlvbkNvbnRleHQuZ2V0Rm9yRmllbGQoU2VhcmNoRXhlY3V0aW9uQ29udGV4dC5qYXZhOjI5Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guc2VhcmNoLnNvcnQuRmllbGRTb3J0QnVpbGRlci5idWlsZChGaWVsZFNvcnRCdWlsZGVyLmphdmE6NDM1KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guc29ydC5Tb3J0QnVpbGRlci5idWlsZFNvcnQoU29ydEJ1aWxkZXIuamF2YToxNTQpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLnBhcnNlU291cmNlKFNlYXJjaFNlcnZpY2UuamF2YToxMTg4KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guU2VhcmNoU2VydmljZS5jcmVhdGVDb250ZXh0KFNlYXJjaFNlcnZpY2UuamF2YTo5ODIpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLmV4ZWN1dGVRdWVyeVBoYXNlKFNlYXJjaFNlcnZpY2UuamF2YTo2MTgpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5TZWFyY2hTZXJ2aWNlLmxhbWJkYSRleGVjdXRlUXVlcnlQaGFzZSQyKFNlYXJjaFNlcnZpY2UuamF2YTo0ODMpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5BY3Rpb25SdW5uYWJsZS5sYW1iZGEkc3VwcGx5JDAoQWN0aW9uUnVubmFibGUuamF2YTo0Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLkFjdGlvblJ1bm5hYmxlJDIuZG9SdW4oQWN0aW9uUnVubmFibGUuamF2YTo2Milcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guY29tbW9uLnV0aWwuY29uY3VycmVudC5BYnN0cmFjdFJ1bm5hYmxlLnJ1bihBYnN0cmFjdFJ1bm5hYmxlLmphdmE6MjYpXG5cdC4uLiA2IG1vcmVcbiIKICAgIH0sCiAgICAic3RhY2tfdHJhY2UiIDogIkZhaWxlZCB0byBleGVjdXRlIHBoYXNlIFtxdWVyeV0sIGFsbCBzaGFyZHMgZmFpbGVkOyBzaGFyZEZhaWx1cmVzIHtbV0ExamQtT2xRZnF0UGdaeHdqRFFvZ11bdHJlc2Nfb2ZmZXJzX2NhXVswXTogUmVtb3RlVHJhbnNwb3J0RXhjZXB0aW9uW1t0cmVzYy1zMDIudHJlc2MuY2F0XVsxNzIuMzEuNDMuMTI1OjkzMDBdW2luZGljZXM6ZGF0YS9yZWFkL3NlYXJjaFtwaGFzZS9xdWVyeV1dXTsgbmVzdGVkOiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb25bVGV4dCBmaWVsZHMgYXJlIG5vdCBvcHRpbWlzZWQgZm9yIG9wZXJhdGlvbnMgdGhhdCByZXF1aXJlIHBlci1kb2N1bWVudCBmaWVsZCBkYXRhIGxpa2UgYWdncmVnYXRpb25zIGFuZCBzb3J0aW5nLCBzbyB0aGVzZSBvcGVyYXRpb25zIGFyZSBkaXNhYmxlZCBieSBkZWZhdWx0LiBQbGVhc2UgdXNlIGEga2V5d29yZCBmaWVsZCBpbnN0ZWFkLiBBbHRlcm5hdGl2ZWx5LCBzZXQgZmllbGRkYXRhPXRydWUgb24gW29mZmVySURdIGluIG9yZGVyIHRvIGxvYWQgZmllbGQgZGF0YSBieSB1bmludmVydGluZyB0aGUgaW52ZXJ0ZWQgaW5kZXguIE5vdGUgdGhhdCB0aGlzIGNhbiB1c2Ugc2lnbmlmaWNhbnQgbWVtb3J5Ll07IH1cblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLnNlYXJjaC5BYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLm9uUGhhc2VGYWlsdXJlKEFic3RyYWN0U2VhcmNoQXN5bmNBY3Rpb24uamF2YTo3MTMpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5zZWFyY2guQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5leGVjdXRlTmV4dFBoYXNlKEFic3RyYWN0U2VhcmNoQXN5bmNBY3Rpb24uamF2YTo0MDApXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5zZWFyY2guQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5vblBoYXNlRG9uZShBYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmphdmE6NzQ1KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uc2VhcmNoLkFic3RyYWN0U2VhcmNoQXN5bmNBY3Rpb24ub25TaGFyZEZhaWx1cmUoQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5qYXZhOjQ5Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLnNlYXJjaC5BYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmFjY2VzcyQwMDAoQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5qYXZhOjY0KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uc2VhcmNoLkFic3RyYWN0U2VhcmNoQXN5bmNBY3Rpb24kMS5vbkZhaWx1cmUoQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5qYXZhOjMzMSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLkFjdGlvbkxpc3RlbmVyJERlbGVnYXRpbmcub25GYWlsdXJlKEFjdGlvbkxpc3RlbmVyLmphdmE6NjYpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5BY3Rpb25MaXN0ZW5lclJlc3BvbnNlSGFuZGxlci5oYW5kbGVFeGNlcHRpb24oQWN0aW9uTGlzdGVuZXJSZXNwb25zZUhhbmRsZXIuamF2YTo0OClcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLnNlYXJjaC5TZWFyY2hUcmFuc3BvcnRTZXJ2aWNlJENvbm5lY3Rpb25Db3VudGluZ0hhbmRsZXIuaGFuZGxlRXhjZXB0aW9uKFNlYXJjaFRyYW5zcG9ydFNlcnZpY2UuamF2YTo2NTEpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnRyYW5zcG9ydC5UcmFuc3BvcnRTZXJ2aWNlJDQuaGFuZGxlRXhjZXB0aW9uKFRyYW5zcG9ydFNlcnZpY2UuamF2YTo4NTMpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnRyYW5zcG9ydC5UcmFuc3BvcnRTZXJ2aWNlJENvbnRleHRSZXN0b3JlUmVzcG9uc2VIYW5kbGVyLmhhbmRsZUV4Y2VwdGlvbihUcmFuc3BvcnRTZXJ2aWNlLmphdmE6MTQ4MSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRyYW5zcG9ydFNlcnZpY2UkRGlyZWN0UmVzcG9uc2VDaGFubmVsLnByb2Nlc3NFeGNlcHRpb24oVHJhbnNwb3J0U2VydmljZS5qYXZhOjE2MDcpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnRyYW5zcG9ydC5UcmFuc3BvcnRTZXJ2aWNlJERpcmVjdFJlc3BvbnNlQ2hhbm5lbC5zZW5kUmVzcG9uc2UoVHJhbnNwb3J0U2VydmljZS5qYXZhOjE1ODEpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnRyYW5zcG9ydC5UYXNrVHJhbnNwb3J0Q2hhbm5lbC5zZW5kUmVzcG9uc2UoVGFza1RyYW5zcG9ydENoYW5uZWwuamF2YTo1MClcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2gudHJhbnNwb3J0LlRyYW5zcG9ydENoYW5uZWwuc2VuZEVycm9yUmVzcG9uc2UoVHJhbnNwb3J0Q2hhbm5lbC5qYXZhOjQ1KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uc3VwcG9ydC5DaGFubmVsQWN0aW9uTGlzdGVuZXIub25GYWlsdXJlKENoYW5uZWxBY3Rpb25MaXN0ZW5lci5qYXZhOjQxKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uQWN0aW9uUnVubmFibGUub25GYWlsdXJlKEFjdGlvblJ1bm5hYmxlLmphdmE6NzcpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmNvbW1vbi51dGlsLmNvbmN1cnJlbnQuQWJzdHJhY3RSdW5uYWJsZS5ydW4oQWJzdHJhY3RSdW5uYWJsZS5qYXZhOjI4KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5jb21tb24udXRpbC5jb25jdXJyZW50LlRpbWVkUnVubmFibGUuZG9SdW4oVGltZWRSdW5uYWJsZS5qYXZhOjMzKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5jb21tb24udXRpbC5jb25jdXJyZW50LlRocmVhZENvbnRleHQkQ29udGV4dFByZXNlcnZpbmdBYnN0cmFjdFJ1bm5hYmxlLmRvUnVuKFRocmVhZENvbnRleHQuamF2YTo3NzcpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmNvbW1vbi51dGlsLmNvbmN1cnJlbnQuQWJzdHJhY3RSdW5uYWJsZS5ydW4oQWJzdHJhY3RSdW5uYWJsZS5qYXZhOjI2KVxuXHRhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ0KVxuXHRhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjQyKVxuXHRhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6MTYyMylcbkNhdXNlZCBieTogW1RleHQgZmllbGRzIGFyZSBub3Qgb3B0aW1pc2VkIGZvciBvcGVyYXRpb25zIHRoYXQgcmVxdWlyZSBwZXItZG9jdW1lbnQgZmllbGQgZGF0YSBsaWtlIGFnZ3JlZ2F0aW9ucyBhbmQgc29ydGluZywgc28gdGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzYWJsZWQgYnkgZGVmYXVsdC4gUGxlYXNlIHVzZSBhIGtleXdvcmQgZmllbGQgaW5zdGVhZC4gQWx0ZXJuYXRpdmVseSwgc2V0IGZpZWxkZGF0YT10cnVlIG9uIFtvZmZlcklEXSBpbiBvcmRlciB0byBsb2FkIGZpZWxkIGRhdGEgYnkgdW5pbnZlcnRpbmcgdGhlIGludmVydGVkIGluZGV4LiBOb3RlIHRoYXQgdGhpcyBjYW4gdXNlIHNpZ25pZmljYW50IG1lbW9yeS5dOyBuZXN0ZWQ6IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbltUZXh0IGZpZWxkcyBhcmUgbm90IG9wdGltaXNlZCBmb3Igb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgcGVyLWRvY3VtZW50IGZpZWxkIGRhdGEgbGlrZSBhZ2dyZWdhdGlvbnMgYW5kIHNvcnRpbmcsIHNvIHRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFBsZWFzZSB1c2UgYSBrZXl3b3JkIGZpZWxkIGluc3RlYWQuIEFsdGVybmF0aXZlbHksIHNldCBmaWVsZGRhdGE9dHJ1ZSBvbiBbb2ZmZXJJRF0gaW4gb3JkZXIgdG8gbG9hZCBmaWVsZCBkYXRhIGJ5IHVuaW52ZXJ0aW5nIHRoZSBpbnZlcnRlZCBpbmRleC4gTm90ZSB0aGF0IHRoaXMgY2FuIHVzZSBzaWduaWZpY2FudCBtZW1vcnkuXTtcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guRWxhc3RpY3NlYXJjaEV4Y2VwdGlvbi5ndWVzc1Jvb3RDYXVzZXMoRWxhc3RpY3NlYXJjaEV4Y2VwdGlvbi5qYXZhOjY2Nylcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guYWN0aW9uLnNlYXJjaC5BYnN0cmFjdFNlYXJjaEFzeW5jQWN0aW9uLmV4ZWN1dGVOZXh0UGhhc2UoQWJzdHJhY3RTZWFyY2hBc3luY0FjdGlvbi5qYXZhOjM5OClcblx0Li4uIDIyIG1vcmVcbkNhdXNlZCBieTogamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogVGV4dCBmaWVsZHMgYXJlIG5vdCBvcHRpbWlzZWQgZm9yIG9wZXJhdGlvbnMgdGhhdCByZXF1aXJlIHBlci1kb2N1bWVudCBmaWVsZCBkYXRhIGxpa2UgYWdncmVnYXRpb25zIGFuZCBzb3J0aW5nLCBzbyB0aGVzZSBvcGVyYXRpb25zIGFyZSBkaXNhYmxlZCBieSBkZWZhdWx0LiBQbGVhc2UgdXNlIGEga2V5d29yZCBmaWVsZCBpbnN0ZWFkLiBBbHRlcm5hdGl2ZWx5LCBzZXQgZmllbGRkYXRhPXRydWUgb24gW29mZmVySURdIGluIG9yZGVyIHRvIGxvYWQgZmllbGQgZGF0YSBieSB1bmludmVydGluZyB0aGUgaW52ZXJ0ZWQgaW5kZXguIE5vdGUgdGhhdCB0aGlzIGNhbiB1c2Ugc2lnbmlmaWNhbnQgbWVtb3J5LlxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5pbmRleC5tYXBwZXIuVGV4dEZpZWxkTWFwcGVyJFRleHRGaWVsZFR5cGUuZmllbGRkYXRhQnVpbGRlcihUZXh0RmllbGRNYXBwZXIuamF2YTo4NzUpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmluZGV4LmZpZWxkZGF0YS5JbmRleEZpZWxkRGF0YVNlcnZpY2UuZ2V0Rm9yRmllbGQoSW5kZXhGaWVsZERhdGFTZXJ2aWNlLmphdmE6MTEyKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5pbmRleC5xdWVyeS5TZWFyY2hFeGVjdXRpb25Db250ZXh0LmdldEZvckZpZWxkKFNlYXJjaEV4ZWN1dGlvbkNvbnRleHQuamF2YToyOTcpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLnNlYXJjaC5zb3J0LkZpZWxkU29ydEJ1aWxkZXIuYnVpbGQoRmllbGRTb3J0QnVpbGRlci5qYXZhOjQzNSlcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guc2VhcmNoLnNvcnQuU29ydEJ1aWxkZXIuYnVpbGRTb3J0KFNvcnRCdWlsZGVyLmphdmE6MTU0KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guU2VhcmNoU2VydmljZS5wYXJzZVNvdXJjZShTZWFyY2hTZXJ2aWNlLmphdmE6MTE4OClcblx0YXQgb3JnLmVsYXN0aWNzZWFyY2guc2VhcmNoLlNlYXJjaFNlcnZpY2UuY3JlYXRlQ29udGV4dChTZWFyY2hTZXJ2aWNlLmphdmE6OTgyKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guU2VhcmNoU2VydmljZS5leGVjdXRlUXVlcnlQaGFzZShTZWFyY2hTZXJ2aWNlLmphdmE6NjE4KVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5zZWFyY2guU2VhcmNoU2VydmljZS5sYW1iZGEkZXhlY3V0ZVF1ZXJ5UGhhc2UkMihTZWFyY2hTZXJ2aWNlLmphdmE6NDgzKVxuXHRhdCBvcmcuZWxhc3RpY3NlYXJjaC5hY3Rpb24uQWN0aW9uUnVubmFibGUubGFtYmRhJHN1cHBseSQwKEFjdGlvblJ1bm5hYmxlLmphdmE6NDcpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmFjdGlvbi5BY3Rpb25SdW5uYWJsZSQyLmRvUnVuKEFjdGlvblJ1bm5hYmxlLmphdmE6NjIpXG5cdGF0IG9yZy5lbGFzdGljc2VhcmNoLmNvbW1vbi51dGlsLmNvbmN1cnJlbnQuQWJzdHJhY3RSdW5uYWJsZS5ydW4oQWJzdHJhY3RSdW5uYWJsZS5qYXZhOjI2KVxuXHQuLi4gNiBtb3JlXG4iCiAgfSwKICAic3RhdHVzIiA6IDQwMAp9Cg==",
  "ResponseMimeType": "application/json; charset=UTF-8",
  "Success": false,
  "SuccessOrKnownError": true,
  "Uri": "http://ip-172-31-43-125.eu-west-1.compute.internal:9200/tresc_offers_ca/_search?pretty=true&error_trace=true&typed_keys=true",
  "BuildDebugInformationPrefix": null,
  "ConnectionConfiguration": {}
}