openbeautyfacts 0.6.3 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -1
  3. data/Rakefile +5 -3
  4. data/lib/openbeautyfacts/additive.rb +9 -39
  5. data/lib/openbeautyfacts/allergen.rb +14 -22
  6. data/lib/openbeautyfacts/brand.rb +14 -22
  7. data/lib/openbeautyfacts/category.rb +14 -22
  8. data/lib/openbeautyfacts/city.rb +14 -22
  9. data/lib/openbeautyfacts/contributor.rb +14 -22
  10. data/lib/openbeautyfacts/country.rb +14 -22
  11. data/lib/openbeautyfacts/entry_date.rb +15 -23
  12. data/lib/openbeautyfacts/faq.rb +16 -41
  13. data/lib/openbeautyfacts/ingredient.rb +14 -22
  14. data/lib/openbeautyfacts/ingredient_that_may_be_from_palm_oil.rb +14 -22
  15. data/lib/openbeautyfacts/label.rb +14 -22
  16. data/lib/openbeautyfacts/last_edit_date.rb +15 -23
  17. data/lib/openbeautyfacts/locale.rb +8 -31
  18. data/lib/openbeautyfacts/manufacturing_place.rb +14 -22
  19. data/lib/openbeautyfacts/mission.rb +16 -63
  20. data/lib/openbeautyfacts/number_of_ingredients.rb +15 -23
  21. data/lib/openbeautyfacts/origin.rb +14 -22
  22. data/lib/openbeautyfacts/packager_code.rb +14 -22
  23. data/lib/openbeautyfacts/packaging.rb +14 -22
  24. data/lib/openbeautyfacts/period_after_opening.rb +14 -22
  25. data/lib/openbeautyfacts/press.rb +16 -47
  26. data/lib/openbeautyfacts/product.rb +18 -175
  27. data/lib/openbeautyfacts/product_state.rb +14 -22
  28. data/lib/openbeautyfacts/purchase_place.rb +14 -22
  29. data/lib/openbeautyfacts/store.rb +14 -22
  30. data/lib/openbeautyfacts/trace.rb +14 -22
  31. data/lib/openbeautyfacts/user.rb +15 -30
  32. data/lib/openbeautyfacts/version.rb +3 -1
  33. data/lib/openbeautyfacts.rb +6 -9
  34. data/test/fixtures/additives.yml +48 -0
  35. data/test/fixtures/brands.yml +48 -0
  36. data/test/fixtures/entry_dates.yml +48 -0
  37. data/test/fixtures/entry_dates_locale.yml +48 -0
  38. data/test/fixtures/faq.yml +48 -0
  39. data/test/fixtures/fetch_product_3600550362626.yml +54 -0
  40. data/test/fixtures/index.yml +48 -0
  41. data/test/fixtures/ingredients.yml +99 -0
  42. data/test/fixtures/ingredients_locale.yml +99 -0
  43. data/test/fixtures/last_edit_dates.yml +48 -0
  44. data/test/fixtures/last_edit_dates_locale.yml +48 -0
  45. data/test/fixtures/login_user.yml +363 -0
  46. data/test/fixtures/mission.yml +48 -0
  47. data/test/fixtures/missions.yml +48 -0
  48. data/test/fixtures/number_of_ingredients_locale.yml +48 -0
  49. data/test/fixtures/numbers_of_ingredients.yml +48 -0
  50. data/test/fixtures/press.yml +48 -0
  51. data/test/fixtures/product_3600550362626.yml +54 -0
  52. data/test/fixtures/product_states.yml +48 -0
  53. data/test/fixtures/product_states_locale.yml +48 -0
  54. data/test/fixtures/products_for_brand.yml +99 -0
  55. data/test/fixtures/products_for_entry_date.yml +99 -0
  56. data/test/fixtures/products_for_ingredient.yml +99 -0
  57. data/test/fixtures/products_for_last_edit_date.yml +99 -0
  58. data/test/fixtures/products_for_number_of_ingredients.yml +99 -0
  59. data/test/fixtures/products_for_period_after_opening.yml +99 -0
  60. data/test/fixtures/products_for_state.yml +99 -0
  61. data/test/fixtures/products_with_additive.yml +99 -0
  62. data/test/fixtures/search_doux.yml +105 -0
  63. data/test/fixtures/search_doux_1_000_000.yml +54 -0
  64. data/test/minitest_helper.rb +5 -3
  65. data/test/test_openbeautyfacts.rb +129 -97
  66. metadata +59 -17
@@ -0,0 +1,99 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://world.openbeautyfacts.org/additive/e539-sodium-thiosulfate/1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 301
19
+ message: Moved Permanently
20
+ headers:
21
+ Access-Control-Allow-Headers:
22
+ - DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,If-None-Match,Authorization
23
+ Access-Control-Allow-Methods:
24
+ - HEAD, GET, PATCH, POST, PUT, OPTIONS
25
+ Access-Control-Allow-Origin:
26
+ - "*"
27
+ Access-Control-Expose-Headers:
28
+ - Content-Length,Content-Range
29
+ Connection:
30
+ - close
31
+ Content-Type:
32
+ - text/html; charset=iso-8859-1
33
+ Date:
34
+ - Mon, 29 Sep 2025 14:07:11 GMT
35
+ Location:
36
+ - "/facets/additives/e539-sodium-thiosulfate"
37
+ Server:
38
+ - nginx/1.18.0
39
+ Transfer-Encoding:
40
+ - chunked
41
+ body:
42
+ encoding: UTF-8
43
+ string: |
44
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
45
+ <html><head>
46
+ <title>301 Moved Permanently</title>
47
+ </head><body>
48
+ <h1>Moved Permanently</h1>
49
+ <p>The document has moved <a href="/facets/additives/e539-sodium-thiosulfate">here</a>.</p>
50
+ <hr>
51
+ <address>Apache/2.4.61 (Debian) Server at world.openbeautyfacts.org Port 80</address>
52
+ </body></html>
53
+ recorded_at: Mon, 29 Sep 2025 14:07:12 GMT
54
+ - request:
55
+ method: get
56
+ uri: https://world.openbeautyfacts.org/facets/additives/e539-sodium-thiosulfate
57
+ body:
58
+ encoding: US-ASCII
59
+ string: ''
60
+ headers:
61
+ Accept-Encoding:
62
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
63
+ Accept:
64
+ - "*/*"
65
+ User-Agent:
66
+ - Ruby
67
+ response:
68
+ status:
69
+ code: 200
70
+ message: OK
71
+ headers:
72
+ Connection:
73
+ - close
74
+ Content-Type:
75
+ - text/html; charset=UTF-8
76
+ Date:
77
+ - Mon, 29 Sep 2025 14:07:12 GMT
78
+ Expires:
79
+ - Sun, 28 Sep 2025 14:07:12 GMT
80
+ Server:
81
+ - nginx/1.18.0
82
+ Transfer-Encoding:
83
+ - chunked
84
+ Vary:
85
+ - Accept-Encoding
86
+ X-Content-Type-Options:
87
+ - nosniff
88
+ X-Download-Options:
89
+ - noopen
90
+ X-Request-Id:
91
+ - 9K60mTWqMKCMN1cu
92
+ X-Xss-Protection:
93
+ - 1; mode=block
94
+ body:
95
+ encoding: ASCII-8BIT
96
+ string: !binary |-
97
+ PCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9zaXRlX2xheW91dC50dC5odG1sIC0tPgoKPCFkb2N0eXBlIGh0bWw+CjxodG1sIGNsYXNzPSJuby1qcyIgbGFuZz0iZW4iIGRhdGEtc2VydmVyZG9tYWluPSJvcGVuYmVhdXR5ZmFjdHMub3JnIiBkaXI9Imx0ciI+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPHRpdGxlPkU1MzkgLSBTb2RpdW0gdGhpb3N1bGZhdGU8L3RpdGxlPgogICAgCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+Cgk8bWV0YSBwcm9wZXJ0eT0iZmI6YXBwX2lkIiBjb250ZW50PSIyMTkzMzEzODE1MTgwNDEiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9ImZvb2QiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJFNTM5IC0gU29kaXVtIHRoaW9zdWxmYXRlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vd29ybGQub3BlbmJlYXV0eWZhY3RzLm9yZy9mYWNldHMvYWRkaXRpdmVzL2VuOmU1Mzktc29kaXVtLXRoaW9zdWxmYXRlLzEiPgogICAgCiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vc3RhdGljLm9wZW5mb29kZmFjdHMub3JnL2ltYWdlcy9sb2dvcy9vYmYtbG9nby12ZXJ0aWNhbC13aGl0ZS1zb2NpYWwtbWVkaWEtcHJldmlldy5wbmciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJBIGNvbGxhYm9yYXRpdmUsIGZyZWUgYW5kIG9wZW4gZGF0YWJhc2Ugb2YgaW5ncmVkaWVudHMsIGFuZCBpbmZvcm1hdGlvbiBvbiBjb3NtZXRpYyBwcm9kdWN0cyBmcm9tIGFyb3VuZCB0aGUgd29ybGQiPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iMTgweDE4MCIgaHJlZj0iL2ltYWdlcy9mYXZpY29uL29iZi9hcHBsZS10b3VjaC1pY29uLnBuZyI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMzJ4MzIiIGhyZWY9Ii9pbWFnZXMvZmF2aWNvbi9vYmYvZmF2aWNvbi0zMngzMi5wbmciPgo8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgc2l6ZXM9IjE2eDE2IiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL2Zhdmljb24tMTZ4MTYucG5nIj4KPGxpbmsgcmVsPSJtYW5pZmVzdCIgaHJlZj0iL2ltYWdlcy9mYXZpY29uL29iZi9zaXRlLndlYm1hbmlmZXN0Ij4KPGxpbmsgcmVsPSJtYXNrLWljb24iIGhyZWY9Ii9pbWFnZXMvZmF2aWNvbi9vYmYvc2FmYXJpLXBpbm5lZC10YWIuc3ZnIiBjb2xvcj0iIzViYmFkNSI+CjxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iL2ltYWdlcy9mYXZpY29uL29iZi9mYXZpY29uLmljbyI+CjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjMmI1Nzk3Ij4KPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1jb25maWciIGNvbnRlbnQ9Ii9pbWFnZXMvZmF2aWNvbi9vYmYvYnJvd3NlcmNvbmZpZy54bWwiPgo8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iI2ZmZmZmZiI+CgoJPG1ldGEgbmFtZT0iYXBwbGUtaXR1bmVzLWFwcCIgY29udGVudD0iYXBwLWlkPTU4ODc5Nzk0OCI+CiAgICA8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL2ZhY2V0cy9hZGRpdGl2ZXMvZW46ZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGUvMSI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvY3NzL2Rpc3QvYXBwLWx0ci5jc3M/dj0xNzU3NjU4MTAyIiBkYXRhLWJhc2UtbGF5b3V0PSJ0cnVlIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9jc3MvZGlzdC9qcXVlcnl1aS90aGVtZXMvYmFzZS9qcXVlcnktdWkuY3NzIiBkYXRhLWJhc2UtbGF5b3V0PSJ0cnVlIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9jc3MvZGlzdC9zZWxlY3QyLm1pbi5jc3MiPgogICAgPGxpbmsgcmVsPSJzZWFyY2giIGhyZWY9Imh0dHBzOi8vd29ybGQub3BlbmJlYXV0eWZhY3RzLm9yZy9jZ2kvb3BlbnNlYXJjaC5wbCIgdHlwZT0iYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCIgdGl0bGU9Ik9wZW4gQmVhdXR5IEZhY3RzIj4KICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9vZmYtd2ViY29tcG9uZW50cy5idW5kbGVkLmpzIj48L3NjcmlwdD4KCQogICAgPHN0eWxlIG1lZGlhPSJhbGwiPgogICAgICAgIC5zaG93LXdoZW4tbm8tYWNjZXNzLXRvLXByb2R1Y2Vycy1wbGF0Zm9ybSB7ZGlzcGxheTpub25lfQouc2hvdy13aGVuLWxvZ2dlZC1pbiB7ZGlzcGxheTpub25lfQoKCQkKCQkuYmFkZ2UtY29udGFpbmVyewoJCQltYXJnaW46IDAgYXV0bzsKCQl9CgoJCS5iYWRnZS1jb250YWluZXIgaW1newoJCQltYXJnaW46IDVweDsKCQl9CgkJQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MzdweCApIGFuZCAobWluLXdpZHRoOiAyODBweCkgewoJCQkuYmFkZ2UtY29udGFpbmVyewoJCQkJd2lkdGg6IDI4MHB4OwoJCQl9CgkJfQoJCUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjc5cHggKXsKCQkJLmJhZGdlLWNvbnRhaW5lcnsKCQkJCXdpZHRoOiAxMzBweDsKCQkJfQoJCX0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHkgY2xhc3M9InByb2R1Y3RzX3BhZ2UiPgoKCTwhLS0gTWF0b21vIC0tPgo8c2NyaXB0PgogIHZhciBfcGFxID0gd2luZG93Ll9wYXEgPSB3aW5kb3cuX3BhcSB8fCBbXTsKICAvKiB0cmFja2VyIG1ldGhvZHMgbGlrZSAic2V0Q3VzdG9tRGltZW5zaW9uIiBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSAidHJhY2tQYWdlVmlldyIgKi8KICBfcGFxLnB1c2goWyJzZXREb2N1bWVudFRpdGxlIiwgZG9jdW1lbnQuZG9tYWluICsgIi8iICsgZG9jdW1lbnQudGl0bGVdKTsKICBfcGFxLnB1c2goWyJzZXRDb29raWVEb21haW4iLCAiKi5vcGVuYmVhdXR5ZmFjdHMub3JnIl0pOwogIF9wYXEucHVzaChbInNldERvbWFpbnMiLCBbIioub3BlbmJlYXV0eWZhY3RzLm9yZyJdXSk7CiAgX3BhcS5wdXNoKFsic2V0RG9Ob3RUcmFjayIsIHRydWVdKTsKICBfcGFxLnB1c2goWyJkaXNhYmxlQ29va2llcyJdKTsKICBfcGFxLnB1c2goWyd0cmFja1BhZ2VWaWV3J10pOwogIF9wYXEucHVzaChbJ2VuYWJsZUxpbmtUcmFja2luZyddKTsKICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgdT0iLy9hbmFseXRpY3Mub3BlbmZvb2RmYWN0cy5vcmcvIjsKICAgIF9wYXEucHVzaChbJ3NldFRyYWNrZXJVcmwnLCB1KydtYXRvbW8ucGhwJ10pOwogICAgX3BhcS5wdXNoKFsnc2V0U2l0ZUlkJywgJzEwJ10pOwogICAgdmFyIGQ9ZG9jdW1lbnQsIGc9ZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSwgcz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsKICAgIGcuYXN5bmM9dHJ1ZTsgZy5zcmM9dSsnbWF0b21vLmpzJzsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnLHMpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+PHA+PGltZyBzcmM9Ii8vYW5hbHl0aWNzLm9wZW5mb29kZmFjdHMub3JnL21hdG9tby5waHA/aWRzaXRlPTEwJmFtcDtyZWM9MSIgc3R5bGU9ImJvcmRlcjowOyIgYWx0PSIiIC8+PC9wPjwvbm9zY3JpcHQ+CgoKCTxvZmYtd2ViY29tcG9uZW50cy1jb25maWd1cmF0aW9uCiAgbGFuZ3VhZ2UtY29kZT0iZW4iCiAgY291bnRyeS1jb2RlPSJ3b3JsZCIKICByb2JvdG9mZi1jb25maWd1cmF0aW9uPSd7CiAgICAiYXBpVXJsIjogImh0dHBzOi8vcm9ib3RvZmYub3BlbmZvb2RmYWN0cy5vcmcvYXBpL3YxIiwKICAgICJpbWdVcmwiOiAiaHR0cHM6Ly9pbWFnZXMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvcHJvZHVjdHMiCiAgfScKICAKICBvcGVuZm9vZGZhY3RzLWFwaS11cmw9Imh0dHBzOi8vd29ybGQub3BlbmJlYXV0eWZhY3RzLm9yZyIKICBhc3NldHMtaW1hZ2VzLXBhdGg9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvY3NzL2Rpc3QvaW1hZ2VzIgogID48L29mZi13ZWJjb21wb25lbnRzLWNvbmZpZ3VyYXRpb24+CgkKCQoJPGRpdiBjbGFzcz0ic2tpcCI+PGEgaHJlZj0iI2NvbnRlbnQiIHRhYmluZGV4PSIwIj5Ta2lwIHRvIENvbnRlbnQ8L2E+PC9kaXY+CgkKCgk8ZGl2IGlkPSJiYXJjb2RlLXNjYW5uZXItbW9kYWwiIGNsYXNzPSJtb2RhbCBpc19oaWRkZW4iPgogIDxkaXYgY2xhc3M9Im1vZGFsLWJhY2tkcm9wIj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJtb2RhbC1jb250ZW50Ij4KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgIDxzcGFuPjxoMj5TY2FuIGEgcHJvZHVjdDxoMj48L3NwYW4+CiAgICAgIDxidXR0b24gY2xhc3M9Im1vZGFsLWNsb3NlLWJ1dHRvbiI+JnRpbWVzOzwvYnV0dG9uPgogICAgPC9kaXY+CiAgICA8ZGl2PgogICAgICA8YmFyY29kZS1zY2FubmVyIGlkPSJiYXJjb2RlLXNjYW5uZXIiPjwvYmFyY29kZS1zY2FubmVyPgogICAgPC9kaXY+CiAgICA8ZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2ID4KICAgICAgPGxhYmVsIGZvcj0iYmFyY29kZS1tb2RhbC1pbnB1dCI+T3IgZW50ZXIgYmFyY29kZSBtYW51YWxseTwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9ImJhcmNvZGUtbW9kYWwtZ3JvdXAiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYmFyY29kZS1tb2RhbC1pbnB1dCIgY2xhc3M9ImJhcmNvZGUtbW9kYWwtaW5wdXQiIGlucHV0bW9kZT0ibnVtZXJpYyIgcGF0dGVybj0iXGQqIiAvPgogICAgICAgIDxidXR0b24gY2xhc3M9ImJhcmNvZGUtbW9kYWwtYnV0dG9uIGJ1dHRvbiIgaWQ9ImJhcmNvZGUtbW9kYWwtYnV0dG9uIiBkaXNhYmxlZD5TY2FuPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CjwvZGl2PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9iYXJjb2RlLXNjYW5uZXIuanMiPjwvc2NyaXB0PgoKCgk8ZGl2IGlkPSJwYWdlIj4KCQkKCQk8ZGl2IGNsYXNzPSJ1cHBlci1uYXYgY29udGFpbi10by1ncmlkIiAgaWQ9InVwTmF2Ij4KCQkJPG5hdiBjbGFzcz0idG9wLWJhciAiIGRhdGEtdG9wYmFyIHJvbGU9Im5hdmlnYXRpb24iPgoJCQkJCgkJCQk8c2VjdGlvbiBjbGFzcz0idG9wLWJhci1zZWN0aW9uIj4KCQkJCQkKCQkJCQk8IS0tIExlZnQgTmF2IFNlY3Rpb24gLS0+CgkJCQkJPHVsIGNsYXNzPSJsZWZ0Ij4KCgkJCQkJCTxsaSBjbGFzcz0iaGFzLWRyb3Bkb3duIj4KCQkJCQkJCTxhIGlkPSJtZW51X2xpbmsiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSJtYXRlcmlhbC1pY29ucyI+CgkJCQkJCQkJCW1lbnUKCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCQk8dWwgY2xhc3M9ImRyb3Bkb3duIj4JCQkJCgkJCQkJCQkJCgkJCQkJCQkJCTxsaT48YSBocmVmPSIvZGlzY292ZXIiPkRpc2NvdmVyPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSIvY29udHJpYnV0ZSI+Q29udHJpYnV0ZTwvYT48L2xpPgoJCQkJCQkJCQk8bGkgY2xhc3M9ImRpdmlkZXIiPjwvbGk+CgkJCQkJCQkJCTxsaT48bGFiZWw+QWRkIHByb2R1Y3RzPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgPCEtLSBGb3IgcmVmZXJlbmNlOiBnZXRfdGhlX2FwcF9saW5rX29mZiIgPSAvb3Blbi1mb29kLWZhY3RzLW1vYmlsZS1hcHAiIC0tPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL29wZW4tYmVhdXR5LWZhY3RzLW1vYmlsZS1hcHA/dXRtX3NvdXJjZT1vZmYmdXRmX21lZGl1bT13ZWImdXRtX2NhbXBhaWduPXByb19wbGF0Zm9ybV9pbnN0YWxsX3RoZV9hcHBfdG9fYWRkX3Byb2R1Y3RzX2VuIj5JbnN0YWxsIHRoZSBhcHAgdG8gYWRkIHByb2R1Y3RzPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSIvY2dpL3Byb2R1Y3QucGw/dHlwZT1zZWFyY2hfb3JfYWRkJmFjdGlvbj1kaXNwbGF5Ij5BZGQgYSBwcm9kdWN0PC9hPjwvbGk+CgkJCQkJCQkJCgoJCQkJCQkJCTxsaSBjbGFzcz0iZGl2aWRlciI+PC9saT4KCQkJCQkJCQk8bGk+PGxhYmVsPlNlYXJjaCBhbmQgYW5hbHl6ZSBwcm9kdWN0czwvbGFiZWw+PC9saT4KCgkJCQkJCQkJPGxpPgoJCQkJCQkJCQk8YSBocmVmPSIvY2dpL3NlYXJjaC5wbCI+QWR2YW5jZWQgc2VhcmNoPC9hPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQkJPGxpPgoJCQkJCQkJCQk8YSBocmVmPSIvY2dpL3NlYXJjaC5wbD9ncmFwaD0xIj5HcmFwaHMgYW5kIG1hcHM8L2E+CgkJCQkJCQkJPC9saT4KCQkJCQkJCQkKCQkJCQkJCTwvdWw+CgkJCQkJCTwvbGk+CgkJCQkJCQoJCQkJCQk8bGk+CgkJCQkJCQk8dWwgY2xhc3M9ImNvdW50cnlfbGFuZ3VhZ2Vfc2VsZWN0aW9uIj4KCQkJCQkJCQk8bGkgY2xhc3M9Imhhcy1mb3JtIGhhcy1kcm9wZG93biIgaWQ9InNlbGVjdF9jb3VudHJ5X2xpIj4KCQkJCQkJCQkJPHNlbGVjdCBpZD0ic2VsZWN0X2NvdW50cnkiIHN0eWxlPSJ3aWR0aDoxMDAlIiBkYXRhLXBsYWNlaG9sZGVyPSJDb3VudHJ5Ij4KCQkJCQkJCQkJCTxvcHRpb24+PC9vcHRpb24+CgkJCQkJCQkJCTwvc2VsZWN0PgoJCQkJCQkJCTwvbGk+CgkJCQkJCQkJPGxpIGNsYXNzPSJoYXMtZHJvcGRvd24iPgoJCQkJCQkJCQk8YSBocmVmPSJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmcvIj5FbmdsaXNoPC9hPgoKCQkJCQkJCQkJPHVsIGNsYXNzPSJkcm9wZG93biI+CgkJCQkJCQkJCQkKCQkJCQkJCQkJPC91bD4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJPC91bD4KCQkJCQkJPC9saT4KCQkJCQk8L3VsPgoKCgkJCQkJPCEtLSBSaWdodCBOYXYgU2VjdGlvbiAtLT4KCQkJCQkKCQkJCQk8dWwgY2xhc3M9InJpZ2h0Ij4KCQkJCQkJCgkJCQkJCQk8bGkgY2xhc3M9Imgtc3BhY2UtdGlueSBoYXMtZm9ybSI+CgkJCQkJCQkJPGEgaHJlZj0iL2NnaS9zZXNzaW9uLnBsIiBjbGFzcz0icm91bmQgYnV0dG9uIHNlY29uZGFyeSI+CgkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtYXRlcmlhbC1pY29ucyBtYXRlcmlhbC1zeW1ib2xzLWJ1dHRvbiI+YWNjb3VudF9jaXJjbGU8L3NwYW4+CgkJCQkJCQkJCVNpZ24gaW4KCQkJCQkJCQk8L2E+CgkJCQkJCQk8L2xpPgoJCQkJCQkKCQkJCQk8L3VsPgoJCQkJPC9zZWN0aW9uPgoJCQk8L25hdj4KCQk8L2Rpdj4KCQkKCgkJPGRpdiBpZD0ibWFpbl9jb250YWluZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZSIgY2xhc3M9ImJsb2NrX2xhdHRlIj4KCQkKCQkKCQk8ZGl2IGNsYXNzPSJ0b3BiYXJzdGlja3kiPgoJCQk8ZGl2IGNsYXNzPSJjb250YWluLXRvLWdyaWQgIiBpZD0ib2ZmTmF2IiA+CgkJCQk8bmF2IGNsYXNzPSJ0b3AtYmFyIiBkYXRhLXRvcGJhciByb2xlPSJuYXZpZ2F0aW9uIiA+CgoJCQkJCTx1bCBjbGFzcz0idGl0bGUtYXJlYSI+CgkJCQkJCTxsaSBjbGFzcz0ibmFtZSI+CgkJCQkJCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6MjkycHg7Ij4KCQkJCQkJCQk8YSBocmVmPSIvIj4KCQkJCQkJCQk8aW1nIGlkPSJsb2dvIiBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2xvZ29zL29iZi1sb2dvLWhvcml6b250YWwtbGlnaHQuc3ZnIiBhbHQ9Ik9wZW4gQmVhdXR5IEZhY3RzIiBzdHlsZT0ibWFyZ2luOjhweDtoZWlnaHQ6NDhweDt3aWR0aDphdXRvOyI+CgkJCQkJCQkJCgkJCQkJCQk8L2E+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9saT4KCQkJCQk8L3VsPgoKCQkJCQkKCQkJCQkKCQkJCQk8c2VjdGlvbiBjbGFzcz0idG9wLWJhci1zZWN0aW9uIj4KCQkJCQkKCQkJCQkJPHVsIGNsYXNzPSJsZWZ0IHNtYWxsLTQiPgoJCQkJCQkJPGxpIGNsYXNzPSJzZWFyY2gtbGkiPgoJCQkJCQkJCgkJCQkJCQkJPGZvcm0gYWN0aW9uPSIvY2dpL3NlYXJjaC5wbCI+CgkJCQkJCQkJPGRpdiBjbGFzcz0icm93Ij48ZGl2IGNsYXNzPSJzbWFsbC0xMiI+CgkJCQkJCQkJPGRpdiBjbGFzcz0icm93IGNvbGxhcHNlIHBvc3RmaXgtcm91bmQiPgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJjb2x1bW5zIj4KCQkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2ggZm9yIGEgcHJvZHVjdCIgbmFtZT0ic2VhcmNoX3Rlcm1zIiB2YWx1ZT0iIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZSI+CgkJCQkJCQkJCTxpbnB1dCBuYW1lPSJzZWFyY2hfc2ltcGxlIiB2YWx1ZT0iMSIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCQkJPGlucHV0IG5hbWU9ImFjdGlvbiIgdmFsdWU9InByb2Nlc3MiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJjb2x1bW5zIHBvc3RmaXgtYnV0dG9uLXdyYXBwZXIiPgoJCQkJCQkJCQk8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdGl0bGU9IlNlYXJjaCIgY2xhc3M9ImJ1dHRvbiBwb3N0Zml4IiBzdHlsZT0ibGluZS1oZWlnaHQ6bm9ybWFsIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz48L2J1dHRvbj4KCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbHVtbnMgcG9zdGZpeC1idXR0b24td3JhcHBlciBpc19oaWRkZW4iPgogIDxidXR0b24KICAgIHR5cGU9ImJ1dHRvbiIKICAgIHRpdGxlPSJTY2FuIGEgcHJvZHVjdCIKICAgIGNsYXNzPSJidXR0b24gYmFyY29kZS1zY2FubmVyLWJ1dHRvbiIKICAgIGlkPSJiYXJjb2RlLXNjYW5uZXItYnV0dG9uIgogID4KICAgIDxzdmcgc3R5bGU9IndpZHRoOjI0cHg7aGVpZ2h0OjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMiw2SDRWMThIMlY2TTUsNkg2VjE4SDVWNk03LDZIMTBWMThIN1Y2TTExLDZIMTJWMThIMTFWNk0xNCw2SDE2VjE4SDE0VjZNMTcsNkgyMFYxOEgxN1Y2TTIxLDZIMjJWMThIMjFWNloiLz48L3N2Zz4KICA8L2J1dHRvbj4KCiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9iYXJjb2RlLXNjYW5uZXItYnV0dG9uLmpzIj48L3NjcmlwdD4KPC9kaXY+CgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTwvZGl2PjwvZGl2PgoJCQkJCQkJCTwvZm9ybT4KCQkJCQkJCTwvbGk+CgkJCQkJCTwvdWw+CgkJCQkJPHVsIGNsYXNzPSJzZWFyY2hfYW5kX2xpbmtzIj4KCQkJCQkJPGxpPjxhIGhyZWY9Ii9kaXNjb3ZlciIgY2xhc3M9InRvcC1iYXItbGlua3MiPkRpc2NvdmVyPC9hPjwvbGk+CgkJCQkJCTxsaT48YSBocmVmPSIvY29udHJpYnV0ZSIgY2xhc3M9InRvcC1iYXItbGlua3MiPkNvbnRyaWJ1dGU8L2E+PC9saT4KCQkJCQkJPGxpIGNsYXNzPSJzaG93LWZvci14bGFyZ2UtdXAiPjxhIGhyZWY9Imh0dHBzOi8vd29ybGQucHJvLm9wZW5mb29kZmFjdHMub3JnLyIgY2xhc3M9InRvcC1iYXItbGlua3MiPlByb2R1Y2VyczwvYT48L2xpPgoJCQkJCQk8bGkgY2xhc3M9ImZsZXgtZ3JpZCBnZXRhcHAiPjxhIGhyZWY9Ii9vcGVuLWJlYXV0eS1mYWN0cy1tb2JpbGUtYXBwP3V0bV9zb3VyY2U9b2ZmJnV0Zl9tZWRpdW09d2ViJnV0bV9jYW1wYWlnbj1zZWFyY2hfYW5kX2xpbmtzX3Byb21vX2VuIiBjbGFzcz0iYnV0dG9uYmFyIGJ1dHRvbiIgc3R5bGU9InRvcDowOyI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTYgMUg4QzYuMzQgMSA1IDIuMzQgNSA0djE2YzAgMS42NiAxLjM0IDMgMyAzaDhjMS42NiAwIDMtMS4zNCAzLTNWNGMwLTEuNjYtMS4zNC0zLTMtM3ptLTIgMjBoLTR2LTFoNHYxem0zLjI1LTNINi43NVY0aDEwLjV2MTR6Ii8+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPiA8c3BhbiBjbGFzcz0iYnQtdGV4dCI+R2V0IHRoZSBhcHA8L3NwYW4+PC9hPjwvbGk+CgkJCQk8IS0tIEZvciByZWZlcmVuY2U6IGdldF90aGVfYXBwX2xpbmtfb2ZmIiA9IC9vcGVuLWZvb2QtZmFjdHMtbW9iaWxlLWFwcCIgLS0+CiAgICAgICAgICA8L3VsPgoJCQkJCTwvc2VjdGlvbj4KCQkJCQkKCQkJCTwvbmF2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCgkKCQoJCTxuYXYgY2xhc3M9InRhYi1iYXIgaGlkZSI+CgkJCTxkaXYgY2xhc3M9ImxlZnQtc21hbGwiPgoJCQkJPGEgaHJlZj0iI2lkT2ZMZWZ0TWVudSIgcm9sZT0iYnV0dG9uIiBhcmlhLWNvbnRyb2xzPSJpZE9mTGVmdE1lbnUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBjbGFzcz0ibGVmdC1vZmYtY2FudmFzLXRvZ2dsZSBidXR0b24gcG9zdGZpeCBhbm9ueW1vdXMiPgoJCQkJPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMyA1djE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJINWMtMS4xMSAwLTIgLjktMiAyem0xMiA0YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3ptLTkgOGMwLTIgNC0zLjEgNi0zLjFzNiAxLjEgNiAzLjF2MUg2di0xeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9Im1pZGRsZSB0YWItYmFyLXNlY3Rpb24iPgoJCQkJPGZvcm0gYWN0aW9uPSIvY2dpL3NlYXJjaC5wbCI+CgkJCQkJPGRpdiBjbGFzcz0icm93IGNvbGxhcHNlIj4KCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOCBjb2x1bW5zIj4KCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvciBhIHByb2R1Y3QiIG5hbWU9InNlYXJjaF90ZXJtcyI+CgkJCQkJCQk8aW5wdXQgbmFtZT0ic2VhcmNoX3NpbXBsZSIgdmFsdWU9IjEiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQk8aW5wdXQgbmFtZT0iYWN0aW9uIiB2YWx1ZT0icHJvY2VzcyIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTIgY29sdW1ucyI+CgkJCQkJCQk8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ1dHRvbiBwb3N0Zml4Ij48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz48L2J1dHRvbj4KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTIgY29sdW1ucyI+CgkJCQkJCQk8YSBocmVmPSIvY2dpL3NlYXJjaC5wbCIgdGl0bGU9IkFkdmFuY2VkIHNlYXJjaCI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+IDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGNsYXNzPSJpY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+PC9hPgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvZm9ybT4KCQkJPC9kaXY+CgkJPC9uYXY+CgkJCgoJCTxkaXYgaWQ9ImNvbnRlbnQiIGNsYXNzPSJvZmYtY2FudmFzLXdyYXAgYmxvY2tfbGF0dGUiIGRhdGEtb2ZmY2FudmFzPgoJCQk8ZGl2IGNsYXNzPSJpbm5lci13cmFwIj4KCQkJCgkJCQk8YSBjbGFzcz0iZXhpdC1vZmYtY2FudmFzIj48L2E+CgoJCQkJCgkJCQkKCQkJCTwhLS0gZnVsbCB3aWR0aCBiYW5uZXIgb24gbW9iaWxlIC0tPgoJCQkJCgkJCQkKCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJtYWluIGJsb2NrX2xpZ2h0Ij4KCQkJCQk8ZGl2IGlkPSJtYWluX2NvbHVtbiI+CgoJCQkJCQkKCQkJCQkJCgkJCQkJCQkKCQkJCQkJCQoJCQkJCQkJCTwhLS0gc3RhcnQgdGVtcGxhdGVzL3dlYi9jb21tb24vaW5jbHVkZXMvZG9uYXRlX2Jhbm5lci50dC5odG1sIC0tPgoKCgo8IS0tIERvbmF0aW9uIGJhbm5lciBAIGZvb3RlciAtLT4KCgo8IS0tIGVuZCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9pbmNsdWRlcy9kb25hdGVfYmFubmVyLnR0Lmh0bWwgLS0+CgoJCQkJCQkJCQoKCjxzZWN0aW9uIGlkPSJkb25hdGlvbi1iYW5uZXItdG9wIiBjbGFzcz0icm93IiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmUiPgogIAogIDxhIGhyZWY9Imh0dHBzOi8vY29ubmVjdC5vcGVuZm9vZGZhY3RzLm9yZy9ldmVudC9vcGVuLWZvb2QtZmFjdHMtZGF5cy0yMDI1LTMwL3JlZ2lzdGVyIj4KICAgIDxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvZG9uYXRpb24tYmFubmVycy9vZmYtZGF5cy0yMDI1LWVuLjEyODB4MTkxLnBuZyIKICAgICAgIGFsdD0iT3BlbiBGb29kIEZhY3RzIERheXMgMjAyNSIKICAgICAgIHdpZHRoPSIxMjgwIgogICAgICAgaGVpZ2h0PSIxOTEiIGNsYXNzPSJzaG93LWZvci1tZWRpdW0tdXAiLz4KICAgIDxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvZG9uYXRpb24tYmFubmVycy9vZmYtZGF5cy0yMDI1LWVuLm1vYmlsZS5wbmciCiAgICAgICBhbHQ9Ik9wZW4gRm9vZCBGYWN0cyBEYXlzIDIwMjUiCiAgICAgICB3aWR0aD0iMTI4MCIKICAgICAgIGhlaWdodD0iNDc3IiBjbGFzcz0ic2hvdy1mb3Itc21hbGwtb25seSIvPiAgICAKICA8L2E+CiAgCgoKICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXJfX2Nsb3NlIj4KICAgIDxidXR0b24gaWQ9ImhpZGUtZG9uYXRlLWJhbm5lciIgY2xhc3M9Im1hdGVyaWFsLWljb25zIG1vZGVzdCIgb25jbGljaz0iRG9uYXRpb25CdXR0b24oKTsiIG9ua2V5cHJlc3M9IkRvbmF0aW9uQnV0dG9uKCk7Ij5jbG9zZTwvYnV0dG9uPgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2NyaXB0PgogIGxldCBkID0gbmV3IERhdGUoKTsKICBsZXQgYmFubmVySUQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9uYXRpb24tYmFubmVyLXRvcCcpOwogIGxldCBnZXREb21haW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luLnNwbGl0KCcuJyk7CgogIGZ1bmN0aW9uIHNldEJhbm5lckNvb2tpZShiY25hbWUsIGJjdmFsLCBiY2V4ZGF5cykgewogICAgZC5zZXRUaW1lKGQuZ2V0VGltZSgpICsgKGJjZXhkYXlzKjYwKjYwKjI0KjEwMDApKTsKICAgIGxldCBleHBpcmVzID0gJ2V4cGlyZXM9JyArIGQudG9VVENTdHJpbmcoKTsKICAgIC8vIEFwcGx5IGNvb2tpZSBmb3IgZXZlcnkgZG9tYWluIGNvbnRhaW5zIG9wZW4uLi5mYWN0cwogICAgbGV0IGRvbWFpbiA9ICdkb21haW49LicgKyBnZXREb21haW4uc2xpY2UoMSkuam9pbignLicpOwogICAgZG9jdW1lbnQuY29va2llID0gYmNuYW1lICsgJz0nICsgYmN2YWwgKyAnOycgKyBleHBpcmVzICsgJzsnICsgZG9tYWluICsgJztTYW1lU2l0ZT1Ob25lO1NlY3VyZTtwYXRoPS8nOwogIH0KCiAgZnVuY3Rpb24gZ2V0QmFubmVyQ29va2llKGJjbmFtZSkgewogICAgY29uc3QgbmFtZSA9IGJjbmFtZSArICc9JzsKICAgIGNvbnN0IGRlY29kZWRDb29raWVzID0gZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZSk7CiAgICBjb25zdCBjb29raWVzID0gZGVjb2RlZENvb2tpZXMuc3BsaXQoJzsnKTsKICAgIGZvciAoY29uc3QgY29va2llIG9mIGNvb2tpZXMpIHsKICAgICAgbGV0IGMgPSBjb29raWU7CiAgICAgIHdoaWxlIChjLmNoYXJBdCgwKSA9PSAnICcpIHsgYyA9IGMuc3Vic3RyaW5nKDEpOyB9CiAgICAgIGlmIChjLmluZGV4T2YobmFtZSkgPT0gMCkgeyByZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKTsgfQogICAgfQoKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIERvbmF0aW9uQnV0dG9uKCkgewogICAgc2V0QmFubmVyQ29va2llKCdvZmZfZGF5c18yMDI1JywgMSwgMTgwKTsKICAgIGJhbm5lcklELnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgfQoKICBpZiAoZ2V0QmFubmVyQ29va2llKCdvZmZfZGF5c18yMDI1JykgIT09ICcnKSB7CiAgICBiYW5uZXJJRC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogIH0gZWxzZSB7CiAgICBiYW5uZXJJRC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOwogIH0KPC9zY3JpcHQ+CgoKCQkJCQkJCQoJCQkJCQkKCQkJCQkJCiAgICAgICAgICAgIAkJCQoJCQkJCQkKCQkJCQkJCQoJCQkJCQkJCTwhLS0gc29tZSBsaXN0cyBvZiBwcm9kdWN0cyBmb3IgZmFjZXRzIChlLmcuIGJyYW5kcykgaGF2ZSBtaWNyb2Zvcm1hdHMgZGF0YSAtLT4KCQkJCQkJCQk8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cHM6Ly9zY2hlbWEub3JnL1RoaW5nIj4KCQkJCQkJCQkJPGRpdiBjbGFzcz0icm93Ij4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIGNvbHVtbiB2LXNwYWNlLXNob3J0Ij4KCQkJCQkJCQkJCQk8aDEgaXRlbXByb3A9Im5hbWUiPkU1MzkgLSBTb2RpdW0gdGhpb3N1bGZhdGU8L2gxPgoJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCSAgPCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL3BhZ2VzL3RhZy90YWcudHQuaHRtbCAtLT4KPGRpdiBjbGFzcz0idGFnIj4KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFyZ2UtNiBjb2x1bW4iPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFnX25hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMiPkFkZGl0aXZlPC9hPjoKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZSI+RTUzOSAtIFNvZGl1bSB0aGlvc3VsZmF0ZTwvYT4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgCgogICAgICAgICAgICAKCiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgoKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICA8L2Rpdj4KPC9kaXY+Cgo8IS0tIGVuZCB0ZW1wbGF0ZXMvd2ViL3BhZ2VzL3RhZy90YWcudHQuaHRtbCAtLT4KPCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9pbmNsdWRlcy9saXN0X29mX3Byb2R1Y3RzLnR0Lmh0bWwgLS0+IAoKPGRpdiBjbGFzcz0icm93Ij4KICA8ZGl2IGNsYXNzPSJzbWFsbC0xMiBjb2x1bW5zIj4gCiAgICAKICAgIAogICAgICAKICAgICAgCiAgICAgIAogICAgICA8IS0tIGRpc3BsYXkgYSBwZXJtYWxpbmsgaWYgdGhlIHVybCBpcyBmb3IgYSBzY3JpcHQgdGhhdCBtYXkgaGF2ZSBQT1NUIHBhcmFtZXRlcnMgLS0+CiAgICAgIAogICAgCiAgICAKICA8L2Rpdj4KPC9kaXY+CgogCgo8ZGl2IGNsYXNzPSJibG9jayBzaG9ydCBibG9ja19yaXN0cmV0byI+CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxkaXYgY2xhc3M9InNtYWxsLTEyIGNvbHVtbnMgZmlsdGVyUHJvZHVjdHMiPgogICAgICA8ZGl2PgogICAgICAgIDxzcGFuIGNsYXNzPSJmaWx0ZXJQcm9kdWN0c19fcmVzdWx0cyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0ibWF0ZXJpYWwtaWNvbnMiIGFyaWEtaGlkZGVuPSJ0cnVlIj5zZWFyY2g8L3NwYW4+CiAgICAgICAgICAxMCBwcm9kdWN0cwogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpbHRlclByb2R1Y3RzX19idXR0b25zIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPGJ1dHRvbiBocmVmPSIjIiBkYXRhLWRyb3Bkb3duPSJkcm9wX3NvcnQiIGFyaWEtY29udHJvbHM9ImRyb3Bfc29ydCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGNsYXNzPSJidXR0b24gcm91bmQgZHJvcGRvd24gc21hbGwgc2Vjb25kYXJ5IHVubWFyZ2VkIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1hdGVyaWFsLWljb25zIj5zd2FwX3ZlcnQ8L3NwYW4+CiAgICAgICAgICAgIFJlY2VudGx5IG1vZGlmaWVkIHByb2R1Y3RzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDx1bCBpZD0iZHJvcF9zb3J0IiBkYXRhLWRyb3Bkb3duLWNvbnRlbnQgY2xhc3M9ImYtZHJvcGRvd24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgIAogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMvZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGU/c29ydF9ieT1jcmVhdGVkX3QiIG9uY2xpY2s9IiQuY29va2llKCdsYXN0X3NvcnRfYnknLCAnY3JlYXRlZF90JywgeyBleHBpcmVzOiAxODAsIHBhdGg6ICcvJyB9KTsiPlJlY2VudGx5IGFkZGVkIHByb2R1Y3RzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgIAogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMvZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGU/c29ydF9ieT1sYXN0X21vZGlmaWVkX3QiIG9uY2xpY2s9IiQuY29va2llKCdsYXN0X3NvcnRfYnknLCAnbGFzdF9tb2RpZmllZF90JywgeyBleHBpcmVzOiAxODAsIHBhdGg6ICcvJyB9KTsiPlJlY2VudGx5IG1vZGlmaWVkIHByb2R1Y3RzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgIAogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAKICAgICAgICA8ZGl2PgogICAgICAgICAgPGJ1dHRvbiBocmVmPSIjIiBkYXRhLWRyb3Bkb3duPSJkcm9wMSIgYXJpYS1jb250cm9scz0iZHJvcDEiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBjbGFzcz0iYnV0dG9uIHJvdW5kIGRyb3Bkb3duIHNtYWxsIHNlY29uZGFyeSB1bm1hcmdlZCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtYXRlcmlhbC1pY29ucyI+c29ydDwvc3Bhbj4KICAgICAgICAgICAgRXhwbG9yZSBwcm9kdWN0cyBieS4uLgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8dWwgaWQ9ImRyb3AxIiBkYXRhLWRyb3Bkb3duLWNvbnRlbnQgY2xhc3M9ImYtZHJvcGRvd24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgIAogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMvZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGUvY291bnRyaWVzIiByZWw9Im5vZm9sbG93Ij5Db3VudHJpZXM8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAKICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgIDxhIGhyZWY9Ii9mYWNldHMvYWRkaXRpdmVzL2U1Mzktc29kaXVtLXRoaW9zdWxmYXRlL2JyYW5kcyIgcmVsPSJub2ZvbGxvdyI+QnJhbmRzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZS9jYXRlZ29yaWVzIiByZWw9Im5vZm9sbG93Ij5DYXRlZ29yaWVzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZS9sYWJlbHMiIHJlbD0ibm9mb2xsb3ciPkxhYmVsczwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgIAogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMvZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGUvcGFja2FnaW5nIiByZWw9Im5vZm9sbG93Ij5QYWNrYWdpbmc8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAKICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgIDxhIGhyZWY9Ii9mYWNldHMvYWRkaXRpdmVzL2U1Mzktc29kaXVtLXRoaW9zdWxmYXRlL29yaWdpbnMiIHJlbD0ibm9mb2xsb3ciPk9yaWdpbnMgb2YgaW5ncmVkaWVudHM8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAKICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgIDxhIGhyZWY9Ii9mYWNldHMvYWRkaXRpdmVzL2U1Mzktc29kaXVtLXRoaW9zdWxmYXRlL21hbnVmYWN0dXJpbmctcGxhY2VzIiByZWw9Im5vZm9sbG93Ij5NYW51ZmFjdHVyaW5nIG9yIHByb2Nlc3NpbmcgcGxhY2VzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZS9wYWNrYWdlci1jb2RlcyIgcmVsPSJub2ZvbGxvdyI+VHJhY2VhYmlsaXR5IGNvZGVzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZS9pbmdyZWRpZW50cyIgcmVsPSJub2ZvbGxvdyI+SW5ncmVkaWVudHM8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAKICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgIDxhIGhyZWY9Ii9mYWNldHMvYWRkaXRpdmVzL2U1Mzktc29kaXVtLXRoaW9zdWxmYXRlL2FkZGl0aXZlcyIgcmVsPSJub2ZvbGxvdyI+QWRkaXRpdmVzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZS92aXRhbWlucyIgcmVsPSJub2ZvbGxvdyI+QWRkZWQgdml0YW1pbnM8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAKICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgIDxhIGhyZWY9Ii9mYWNldHMvYWRkaXRpdmVzL2U1Mzktc29kaXVtLXRoaW9zdWxmYXRlL21pbmVyYWxzIiByZWw9Im5vZm9sbG93Ij5BZGRlZCBtaW5lcmFsczwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgIAogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMvZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGUvYWxsZXJnZW5zIiByZWw9Im5vZm9sbG93Ij5BbGxlcmdlbnM8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAKICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgIDxhIGhyZWY9Ii9mYWNldHMvYWRkaXRpdmVzL2U1Mzktc29kaXVtLXRoaW9zdWxmYXRlL3RyYWNlcyIgcmVsPSJub2ZvbGxvdyI+VHJhY2VzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZS9taXNjIiByZWw9Im5vZm9sbG93Ij5NaXNjZWxsYW5lb3VzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZS9sYW5ndWFnZXMiIHJlbD0ibm9mb2xsb3ciPkxhbmd1YWdlczwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgIAogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMvZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGUvY29udHJpYnV0b3JzIiByZWw9Im5vZm9sbG93Ij5Db250cmlidXRvcnM8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAKICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgIDxhIGhyZWY9Ii9mYWNldHMvYWRkaXRpdmVzL2U1Mzktc29kaXVtLXRoaW9zdWxmYXRlL3N0YXRlcyIgcmVsPSJub2ZvbGxvdyI+U3RhdGVzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZS9kYXRhLXNvdXJjZXMiIHJlbD0ibm9mb2xsb3ciPkRhdGEgc291cmNlczwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgIAogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMvZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGUvZW50cnktZGF0ZXMiIHJlbD0ibm9mb2xsb3ciPkVudHJ5IGRhdGVzPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2FkZGl0aXZlcy9lNTM5LXNvZGl1bS10aGlvc3VsZmF0ZS9sYXN0LWVkaXQtZGF0ZXMiIHJlbD0ibm9mb2xsb3ciPkxhc3QgZWRpdCBkYXRlczwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgIAogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMvZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGUvbGFzdC1jaGVjay1kYXRlcyIgcmVsPSJub2ZvbGxvdyI+TGFzdCBjaGVjayBkYXRlczwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgIAogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9hZGRpdGl2ZXMvZTUzOS1zb2RpdW0tdGhpb3N1bGZhdGUvdGVhbXMiIHJlbD0ibm9mb2xsb3ciPlRlYW1zPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgCiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCgo8ZGl2IGNsYXNzPSJyb3ciPgoJPGRpdiBjbGFzcz0ic21hbGwtMTIgY29sdW1ucyI+CiAgICA8ZGl2IGlkPSJwcmVmZXJlbmNlc19zZWxlY3RlZCIgY2xhc3M9InNtYWxsLTEyIGZsZXgtZ3JpZCB2LXNwYWNlLXNob3J0IHYtYWxpZ24tY2VudGVyIGRpcmVjdGlvbi1yb3cgZnVsbC13aWR0aCB2LWFsaWduLWJldHdlZW4iPjwvZGl2PgogICAgPGRpdiBpZD0icHJlZmVyZW5jZXNfc2VsZWN0aW9uX2Zvcm0iIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCgkgCjxkaXYgY2xhc3M9InJvdyI+CjxkaXYgY2xhc3M9ImxhcmdlLTEyIGNvbHVtbnMiPgogICAgCiAgICA8ZGl2IGlkPSJzZWFyY2hfcmVzdWx0cyIgc3R5bGU9ImNsZWFyOmxlZnQ7Ij4KICAgICAgICA8dWwgY2xhc3M9InByb2R1Y3RzIj4KICAgIAogICAgCiAgICAKICAgICAgCiAgICAKICAgICAgCiAgICAKICAgICAgCiAgICAKICAgICAgCiAgICAKICAgICAgCiAgICAKICAgICAgCiAgICAKICAgICAgCiAgICAKICAgICAgCiAgICAKICAgICAgCiAgICAKICAgICAgCiAgICAKICAgIAoJCTwvdWw+CiAgPC9kaXY+CiAgICAgIAogICAgCgkKICA8L2Rpdj4KPC9kaXY+CgoKPCEtLSBlbmQgdGVtcGxhdGVzL3dlYi9jb21tb24vaW5jbHVkZXMvbGlzdF9vZl9wcm9kdWN0cy50dC5odG1sIC0tPgoKCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkKCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCQk8L2Rpdj4KCgkJCgkJPGZvb3Rlcj4KCQkJPGRpdiBjbGFzcz0iYmxvY2tfbGlnaHQgYmctd2hpdGUiIGlkPSJpbnN0YWxsX3RoZV9hcHBfYmxvY2siPgoJCQkJPGRpdiBjbGFzcz0icm93Ij4KCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0xMiBmbGV4LWdyaWQgdi1zcGFjZS1zaG9ydCB2LWFsaWduLWNlbnRlciBkaXJlY3Rpb24tcm93IGgtc3BhY2UtdGlueSI+CgkJCQkJCTxkaXYgY2xhc3M9ImNlbGwgc21hbGwtMTAwIG1lZGl1bS0xMDAgbGFyZ2UtNTAgZmxleC1ncmlkIHYtYWxpZ24tY2VudGVyIGRpcmVjdGlvbi1yb3ciPgoJCQkJCQkJPGltZyBjbGFzcz0iY2VsbCBzbWFsbC01MCB2LWFsaWduLWNlbnRlciIgc3JjPSIvaW1hZ2VzL2lsbHVzdHJhdGlvbnMvYXBwLWljb24taW4tdGhlLWNsb3Vkcy5zdmciIGFsdD0iVGhlIE9wZW4gRm9vZCBGYWN0cyBsb2dvIGluIHRoZSBjbG91ZCIgc3R5bGU9ImhlaWdodDoxMjBweCI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJjZWxsIHNtYWxsLTUwIHYtYWxpZ24tY2VudGVyIiBpZD0iZm9vdGVyX3NjYW4iIHN0eWxlPSJkaXNwbGF5OmJsb2NrIj4KCQkJCQkJCQk8ZGl2IGlkPSJmb290ZXJfaW5zdGFsbF90aGVfYXBwIj4KCQkJCQkJCQkJSW5zdGFsbCB0aGUgYXBwIQoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCVNjYW4geW91ciA8c3BhbiBpZD0iZXZlcnlkYXkiPmV2ZXJ5ZGF5PC9zcGFuPiA8c3BhbiBpZD0iZm9vZHMiPmZvb2RzPC9zcGFuPgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJyb3ciPgoJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMTIgbWVkaXVtLTEyIGxhcmdlLTEyIHYtc3BhY2Utbm9ybWFsIGNvbHVtbiBiYWRnZS1jb250YWluZXIiPgoJCQkJCQkJCTwhLS0gYW5kcm9pZF9hcHBfbGluayAtIGh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1vcmcub3BlbmJlYXV0eWZhY3RzLnNjYW5uZXImaGw9ZW4gLS0+CgkJCQkJCQkJPGEgIGhyZWY9Imh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1vcmcub3BlbmZvb2RmYWN0cy5zY2FubmVyJnV0bV9zb3VyY2U9b2JmJnV0Zl9tZWRpdW09d2ViJnV0bV9jYW1wYWlnbj1pbnN0YWxsX3RoZV9hcHBfYW5kcm9pZF9mb290ZXJfZW4iPjxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvcGxheXN0b3JlL2ltZy9sYXRlc3QvR2V0SXRPbkdvb2dsZVBsYXlfQmFkZ2VfV2ViX2NvbG9yX0VuZ2xpc2guc3ZnIiBhbHQ9IkdldCBJdCBPbiBHb29nbGUgUGxheSIgbG9hZGluZz0ibGF6eSIgaGVpZ2h0PSI0MCIgd2lkdGg9IjEyMCI+PC9hPgoJCQkJCQkJCQoJCQkJCQkJCTxhIGhyZWY9IiI+PGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9mLWRyb2lkL3N2Zy9nZXQtaXQtb24tZW4uc3ZnIiBhbHQ9IkF2YWlsYWJsZSBvbiBGLURyb2lkIiBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjQwIiB3aWR0aD0iMTIwIj48L2E+CgoJCQkJCQkJCTwhLS0gYW5kcm9pZF9hcGtfYXBwX2xpbmsgLSBodHRwczovL3dvcmxkLm9wZW5mb29kZmFjdHMub3JnL2ltYWdlcy9hcHBzL29mZi5hcGsgLS0+CgkJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hcHBzL29iZi5hcGs/dXRtX3NvdXJjZT1vYmYmdXRmX21lZGl1bT13ZWI/dXRtX3NvdXJjZT1vZmYmdXRmX21lZGl1bT13ZWImdXRtX2NhbXBhaWduPWluc3RhbGxfdGhlX2FwcF9hcGtfZm9vdGVyX2VuIj48aW1nIHNyYz0iL2ltYWdlcy9taXNjL2FwcC1sYW5kaW5nLXBhZ2UvZG93bmxvYWQtYXBrL2Rvd25sb2FkLWFwa19lbi5zdmciIGFsdD0iQW5kcm9pZCBBUEsiIGxvYWRpbmc9ImxhenkiIGhlaWdodD0iNDAiIHdpZHRoPSIxMjAiPjwvYT4KCQkJCQkJCQkKCQkJCQkJCQk8IS0tIG1zZ2lkICJodHRwczovL2FwcHMuYXBwbGUuY29tL2FwcC9vcGVuLWJlYXV0eS1mYWN0cy9pZDExMjI5MjYzODAiIC0tPgoJCQkJCQkJCTxhIGhyZWY9Imh0dHBzOi8vYXBwcy5hcHBsZS5jb20vYXBwL29wZW4tYmVhdXR5LWZhY3RzL2lkMTEyMjkyNjM4MD91dG1fc291cmNlPW9iZiZ1dGZfbWVkaXVtPXdlYiZ1dG1fY2FtcGFpZ249aW5zdGFsbF90aGVfYXBwX2lvc19mb290ZXJfZW4iPjxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvYXBwc3RvcmUvYmxhY2svYXBwc3RvcmVfVVMuc3ZnIiBhbHQ9IkRvd25sb2FkIG9uIHRoZSBBcHAgU3RvcmUiICBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjQwIiB3aWR0aD0iMTIwIj48L2E+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgoJCQkKICAgICAgCQkJPCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9pbmNsdWRlcy9kb25hdGVfYmFubmVyLnR0Lmh0bWwgLS0+CgoKCjwhLS0gRG9uYXRpb24gYmFubmVyIEAgZm9vdGVyIC0tPgoKCjwhLS0gZW5kIHRlbXBsYXRlcy93ZWIvY29tbW9uL2luY2x1ZGVzL2RvbmF0ZV9iYW5uZXIudHQuaHRtbCAtLT4KCgkJCQkKCjxzZWN0aW9uIGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyIHJvdyI+CiAgPGRpdiBjbGFzcz0iZG9uYXRpb24tYmFubmVyLWZvb3Rlcl9fbGVmdC1hc2lkZSI+CiAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19ob29rLXNlY3Rpb24iPgogICAgICA8cD5IZWxwIHVzIGluZm9ybSBtaWxsaW9ucyBvZiBjb25zdW1lcnMgYXJvdW5kIHRoZSB3b3JsZCBhYm91dCB3aGF0IHRoZXkgZWF0PC9wPgogICAgPC9kaXY+CiAgICA8aW1nIHNyYz0iL2ltYWdlcy9taXNjL2RvbmF0aW9uLWJhbm5lcnMvZG9uYXRpb24tYmFubmVyLWdyb3VwLXBob3RvLnBuZyIgYWx0PSJncm91cCBwaG90byBkb25hdGlvbiAyMDI0IiAvPgogIDwvZGl2PgogIDxkaXY+CiAgICA8ZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19tYWluLXNlY3Rpb24iPgogICAgICAgIDxpbWcKICAgICAgICAgIHdpZHRoPSI1MCIKICAgICAgICAgIGhlaWdodD0iNTAiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd29ybGQub3BlbmZvb2RmYWN0cy5vcmcvaW1hZ2VzL2xvZ29zL2xvZ28tdmFyaWFudHMvQ01KTi1JQ09OX1dISVRFX0JHX09GRi5zdmciCiAgICAgICAgICBhbHQ9Im9wZW4gZm9vZCBmYWN0cyBsb2dvIgogICAgICAgIC8+CiAgICAgICAgPGgzIGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19tYWluLXRpdGxlIj5QbGVhc2UgZ2l2ZSB0byBvdXIgMjAyNSBGdW5kcmFpc2VyPC9oMz4KICAgICAgPC9kaXY+CiAgICAgIDxwPllvdXIgZG9uYXRpb25zIGZ1bmQgdGhlIGRheS10by1kYXkgb3BlcmF0aW9ucyBvZiBvdXIgbm9uLXByb2ZpdCBhc3NvY2lhdGlvbjo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+CiAgICAgICAgICBrZWVwaW5nIG91ciBkYXRhYmFzZSBvcGVuICYgYXZhaWxhYmxlIHRvIGFsbCwKICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPnRlY2huaWNhbCBpbmZyYXN0cnVjdHVyZSAod2Vic2l0ZS9tb2JpbGUgYXBwKSAmIGEgc21hbGwgcGVybWFuZW50IHRlYW08L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgIDxwPnJlbWFpbiBpbmRlcGVuZGVudCBvZiB0aGUgZm9vZCBpbmR1c3RyeSw8L3A+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+CiAgICAgICAgICA8cD5lbmdhZ2UgYSBjb21tdW5pdHkgb2YgY29tbWl0dGVkIGNpdGl6ZW5zLDwvcD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgIDxwPnN1cHBvcnQgdGhlIGFkdmFuY2VtZW50IG9mIHB1YmxpYyBoZWFsdGggcmVzZWFyY2guPC9wPgogICAgICAgIDwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lci1mb290ZXJfX2FjdGlvbnMtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lci1mb290ZXJfX2FjdGlvbnMtc2VjdGlvbl9fZmluYW5jaWFsIj4KICAgICAgICA8cD4KICAgICAgICAgIEVhY2ggZG9uYXRpb24gY291bnRzISBXZSBhcHByZWNpYXRlIHlvdXIgc3VwcG9ydCBpbiBicmluZ2luZyBmdXJ0aGVyIGZvb2QgdHJhbnNwYXJlbmN5IGluIHRoZSB3b3JsZC4KICAgICAgICA8L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19hY3Rpb25zLXNlY3Rpb25fX2RvbmF0ZS1idXR0b24iPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd29ybGQub3BlbmZvb2RmYWN0cy5vcmcvZG9uYXRlLXRvLW9wZW4tZm9vZC1mYWN0cz91dG1fc291cmNlPW9mZiZ1dGZfbWVkaXVtPXdlYiZ1dG1fY2FtcGFpZ249ZG9uYXRlLTIwMjQtYSZ1dG1fdGVybT1lbi10ZXh0LWJ1dHRvbiI+CiAgICAgICAgICA8YnV0dG9uPkkgU1VQUE9SVDwvYnV0dG9uPgogICAgICAgIDwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKCgkJCQogICAgICAJCQoJCQk8ZGl2IGNsYXNzPSJibG9ja19saWdodCBibG9ja19jYXBwdWNpbm8iIGlkPSJjb250cmlidXRlX2FuZF9kaXNjb3Zlcl9saW5rc19ibG9jayI+CgkJCQk8ZGl2IGNsYXNzPSJyb3ciPgoJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIGxhcmdlLTYgY29sdW1ucyB2LXNwYWNlLW5vcm1hbCBibG9ja19vZmYiPgoJCQkJCQk8aDMgY2xhc3M9InRpdGxlLTUgdGV4dC1tZWRpdW0iPkpvaW4gdGhlIGNvbW11bml0eTwvaDM+CgkJCQkJCTxwPkRpc2NvdmVyIG91ciA8YSBocmVmPSIvY29kZS1vZi1jb25kdWN0Ij5Db2RlIG9mIGNvbmR1Y3Q8L2E+PC9wPgoJCQkJCQk8cD5Kb2luIHVzIG9uIDxhIGhyZWY9Imh0dHBzOi8vc2xhY2sub3BlbmZvb2RmYWN0cy5vcmciPlNsYWNrPC9hPjwvcD4KCQkJCQkJPHA+PGEgaHJlZj0iaHR0cHM6Ly9mb3J1bS5vcGVuZm9vZGZhY3RzLm9yZy8iPkZvcnVtPC9hPjwvcD4KCQkJCQkJPHAgaWQ9ImZvb3Rlcl9zb2NpYWxfaWNvbnMiPkZvbGxvdyB1czogCgkJCQkJCQk8YSBocmVmPSJodHRwczovL3guY29tL09wZW5Gb29kRmFjdHMiPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2Rpc3QveC5zdmciIGNsYXNzPSJmb290ZXJfc29jaWFsX2ljb24iIGFsdD0ieCI+PC9hPgoJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL29wZW5mb29kZmFjdHM/dXRtX3NvdXJjZT1vYmYmdXRmX21lZGl1bT13ZWIiPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2Rpc3QvZmFjZWJvb2suc3ZnIiBjbGFzcz0iZm9vdGVyX3NvY2lhbF9pY29uIiBhbHQ9IkZhY2Vib29rIj48L2E+CgkJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL29wZW4uZm9vZC5mYWN0cy8iPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2Rpc3QvaW5zdGFncmFtLnN2ZyIgY2xhc3M9ImZvb3Rlcl9zb2NpYWxfaWNvbiIgYWx0PSJJbnN0YWdyYW0iPjwvYT4KCQkJCQkJCQoJCQkJCQk8L3A+CgkJCQkJCTxwPjxhIGhyZWY9Imh0dHBzOi8vbGluay5vcGVuZm9vZGZhY3RzLm9yZy9uZXdzbGV0dGVyLWVuIj5TdWJzY3JpYmUgdG8gb3VyIG5ld3NsZXR0ZXI8L2E+PC9wPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIGxhcmdlLTYgY29sdW1ucyBwcm9qZWN0IHYtc3BhY2Utbm9ybWFsIj4KCQkJCQkJPGgzIGNsYXNzPSJ0aXRsZS01IHRleHQtbWVkaXVtIj5EaXNjb3ZlciB0aGUgcHJvamVjdDwvaDM+CgkJCQkJCTx1bCBjbGFzcz0iaW5saW5lLWxpc3QgdGFnc19saW5rcyB2LXNwYWNlLXRpbnkgaC1zcGFjZS10aW55IiA+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSIvd2hvLXdlLWFyZSI+V2hvIHdlIGFyZTwvYT48L2xpPgoJCQkJCQkJPGxpPjxhIGNsYXNzPSJidXR0b24gc21hbGwgd2hpdGUtYnV0dG9uIHJhZGl1cyIgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuZm9vZGZhY3RzLm9yZy9vcGVuLWZvb2QtZmFjdHMtdmlzaW9uLW1pc3Npb24tdmFsdWVzLWFuZC1wcm9ncmFtcyI+VmlzaW9uLCBNaXNzaW9uLCBWYWx1ZXMgYW5kIFByb2dyYW1zPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSJodHRwczovL3N1cHBvcnQub3BlbmZvb2RmYWN0cy5vcmcvaGVscC9lbi1nYiI+RnJlcXVlbnRseSBhc2tlZCBxdWVzdGlvbnM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vYmxvZy5vcGVuZm9vZGZhY3RzLm9yZy9lbi8iPk9wZW4gQmVhdXR5IEZhY3RzIGJsb2c8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Ii9wcmVzcyI+UHJlc3M8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vd2lraS5vcGVuZm9vZGZhY3RzLm9yZyI+T3BlbiBCZWF1dHkgRmFjdHMgd2lraSAoZW4pPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSIvY2dpL3RvcF90cmFuc2xhdG9ycy5wbCI+VHJhbnNsYXRvcnM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Ii9wYXJ0bmVycyI+UGFydG5lcnM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vd29ybGQub3BlbmJlYXV0eWZhY3RzLm9yZyI+T3BlbiBCZWF1dHkgRmFjdHMgLSBDb3NtZXRpY3M8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vd29ybGQucHJvLm9wZW5iZWF1dHlmYWN0cy5vcmcvIj5PcGVuIEZvb2QgRmFjdHMgZm9yIFByb2R1Y2VyczwvYT48L2xpPgoJCQkJCQk8L3VsPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoKCQkJPGRpdiBjbGFzcz0iYmxvY2tfb2ZmIGJsb2NrX2RhcmsgYmxvY2tfcmlzdHJldG8iIGlkPSJmb290ZXJfYmxvY2siPgoKCQkJCTxkaXYgaWQ9ImZvb3Rlcl9ibG9ja19pbWFnZV9iYW5uZXJfb3V0c2lkZSI+CgkJCQkJPGRpdiBpZD0iZm9vdGVyX2Jsb2NrX2ltYWdlX2Jhbm5lcl9vdXRzaWRlMiI+CgoJCQkJCQk8ZGl2IGNsYXNzPSJyb3ciPgoKCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIHRleHQtY2VudGVyIHYtc3BhY2Utc2hvcnQgaC1zcGFjZS1sYXJnZSI+CgkJCQkJCQkJPGEgaHJlZj0iLyIgc3R5bGU9ImZvbnQtc2l6ZToxcmVtOyI+PGltZyBpZD0ibG9nbyIgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9sb2dvcy9vYmYtbG9nby1ob3Jpem9udGFsLW1vbm8td2hpdGUuc3ZnIiBhbHQ9Ik9wZW4gQmVhdXR5IEZhY3RzIiBzdHlsZT0ibWFyZ2luOjhweDtoZWlnaHQ6NDhweDt3aWR0aDphdXRvOyI+PC9hPgoKCQkJCQkJCQk8cD5BIGNvbGxhYm9yYXRpdmUsIGZyZWUgYW5kIG9wZW4gZGF0YWJhc2Ugb2YgY29zbWV0aWMgcHJvZHVjdHMgZnJvbSBhcm91bmQgdGhlIHdvcmxkLjwvcD4KCQkJCQkJCQkKCQkJCQkJCQk8dWwgY2xhc3M9ImlubGluZS1saXN0IHRleHQtY2VudGVyIHRleHQtc21hbGwiPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL2xlZ2FsIj5MZWdhbDwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL3ByaXZhY3kiPlByaXZhY3k8L2E+PC9saT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii90ZXJtcy1vZi11c2UiPlRlcm1zIG9mIHVzZTwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL2RhdGEiPkRhdGEsIEFQSSBhbmQgU0RLczwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuZm9vZGZhY3RzLm9yZy9kb25hdGUtdG8tb3Blbi1mb29kLWZhY3RzIj5Eb25hdGUgdG8gT3BlbiBGb29kIEZhY3RzPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL3dvcmxkLnByby5vcGVuZm9vZGZhY3RzLm9yZy8iPlByb2R1Y2VyczwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly9saW5rLm9wZW5mb29kZmFjdHMub3JnL25ld3NsZXR0ZXItZW4iPlN1YnNjcmliZSB0byBvdXIgbmV3c2xldHRlcjwvYT48L2xpPgoJCQkJCQkJCTwvdWw+CgkJCQkJCQk8L2Rpdj4KCgkJCQkJCTwvZGl2PgoKCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Zvb3Rlcj4KCQkKCgk8L2Rpdj4KCjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvbW9kZXJuaXpyLmpzIiBkYXRhLWJhc2UtbGF5b3V0PSJ0cnVlIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9qcXVlcnkuanMiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2pxdWVyeS11aS5qcyIgZGF0YS1iYXNlLWxheW91dD0idHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvaGMtc3RpY2t5LmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9kaXNwbGF5LmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9zdGlrZWxlbS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3Qvc2Nyb2xsTmF2LmpzIj48L3NjcmlwdD4KICAKCjxzY3JpcHQ+CiQoZnVuY3Rpb24oKSB7CmRpc3BsYXlfdXNlcl9wcm9kdWN0X3ByZWZlcmVuY2VzKCIjcHJlZmVyZW5jZXNfc2VsZWN0ZWQiLCAiI3ByZWZlcmVuY2VzX3NlbGVjdGlvbl9mb3JtIiwgZnVuY3Rpb24gKCkgewoJcmFua19hbmRfZGlzcGxheV9wcm9kdWN0cygiI3NlYXJjaF9yZXN1bHRzIiwgcHJvZHVjdHMsIGNvbnRyaWJ1dG9yX3ByZWZzKTsKfSk7CnJhbmtfYW5kX2Rpc3BsYXlfcHJvZHVjdHMoIiNzZWFyY2hfcmVzdWx0cyIsIHByb2R1Y3RzLCBjb250cmlidXRvcl9wcmVmcyk7CgoKfSk7Cjwvc2NyaXB0PgoKCgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2ZvdW5kYXRpb24uanMiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2pxdWVyeS5jb29raWUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L3NlbGVjdDIubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgcGFnZV90eXBlID0gInByb2R1Y3RzIjsKdmFyIGRlZmF1bHRfcHJlZmVyZW5jZXMgPSB7ImxhYmVsc19mYWlyX3RyYWRlIjoiaW1wb3J0YW50IiwibGFiZWxzX29yZ2FuaWMiOiJpbXBvcnRhbnQifTsKdmFyIHByZWZlcmVuY2VzX3RleHQgPSAiQ2xhc3NpZnkgdGhlIDEwIHByb2R1Y3RzIGJlbG93IGFjY29yZGluZyB0byB5b3VyIHByZWZlcmVuY2VzIjsKdmFyIGNvbnRyaWJ1dG9yX3ByZWZzID0geyJkaXNwbGF5X2JhcmNvZGUiOm51bGwsImVkaXRfbGluayI6bnVsbH07CnZhciBwcm9kdWN0cyA9IFsKICAgewogICAgICAiYXR0cmlidXRlX2dyb3VwcyI6WwogICAgICAgICB7CiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjpbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImdyYWRlIjoiYSIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC92ZWdhbi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJ2ZWdhbiIsCiAgICAgICAgICAgICAgICAgICJtYXRjaCI6MTAwLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlZlZ2FuIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46dmVnYW4iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoia25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJWZWdhbiIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJhIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3ZlZ2V0YXJpYW4uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoidmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJtYXRjaCI6MTAwLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlZlZ2V0YXJpYW4iLAogICAgICAgICAgICAgICAgICAicGFuZWxfaWQiOiJpbmdyZWRpZW50c19hbmFseXNpc19lbjp2ZWdldGFyaWFuIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6Imtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiVmVnZXRhcmlhbiIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJlIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L2NvbnRhaW5zLXBhbG0tb2lsLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InBhbG1fb2lsX2ZyZWUiLAogICAgICAgICAgICAgICAgICAibWF0Y2giOjAsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiUGFsbSBvaWwgZnJlZSIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnBhbG0tb2lsIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6Imtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiUGFsbSBvaWwiCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImlkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXMiLAogICAgICAgICAgICAibmFtZSI6IkluZ3JlZGllbnRzIgogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjpbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiT3JnYW5pYyBmYXJtaW5nIGFpbXMgdG8gcHJvdGVjdCB0aGUgZW52aXJvbm1lbnQgYW5kIHRvIGNvbnNlcnZlIGJpb2RpdmVyc2l0eSBieSBwcm9oaWJpdGluZyBvciBsaW1pdGluZyB0aGUgdXNlIG9mIHN5bnRoZXRpYyBmZXJ0aWxpemVycywgcGVzdGljaWRlcyBhbmQgZm9vZCBhZGRpdGl2ZXMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiT3JnYW5pYyBwcm9kdWN0cyBwcm9tb3RlIGVjb2xvZ2ljYWwgc3VzdGFpbmFiaWxpdHkgYW5kIGJpb2RpdmVyc2l0eS4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJlIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L25vdC1vcmdhbmljLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6ImxhYmVsc19vcmdhbmljIiwKICAgICAgICAgICAgICAgICAgIm1hdGNoIjowLAogICAgICAgICAgICAgICAgICAibmFtZSI6Ik9yZ2FuaWMgZmFybWluZyIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJrbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6Ik5vdCBhbiBvcmdhbmljIHByb2R1Y3QiCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiV2hlbiB5b3UgYnV5IGZhaXIgdHJhZGUgcHJvZHVjdHMsIHByb2R1Y2VycyBpbiBkZXZlbG9waW5nIGNvdW50cmllcyBhcmUgcGFpZCBhbiBoaWdoZXIgYW5kIGZhaXJlciBwcmljZSwgd2hpY2ggaGVscHMgdGhlbSBpbXByb3ZlIGFuZCBzdXN0YWluIGhpZ2hlciBzb2NpYWwgYW5kIG9mdGVuIGVudmlyb25tZW50YWwgc3RhbmRhcmRzLiIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbl9zaG9ydCI6IkZhaXIgdHJhZGUgcHJvZHVjdHMgaGVscCBwcm9kdWNlcnMgaW4gZGV2ZWxvcGluZyBjb3VudHJpZXMuIiwKICAgICAgICAgICAgICAgICAgImdyYWRlIjoiZSIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9ub3QtZmFpci10cmFkZS5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJsYWJlbHNfZmFpcl90cmFkZSIsCiAgICAgICAgICAgICAgICAgICJtYXRjaCI6MCwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJGYWlyIHRyYWRlIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6Imtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTm90IGEgZmFpciB0cmFkZSBwcm9kdWN0IgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpZCI6ImxhYmVscyIsCiAgICAgICAgICAgICJuYW1lIjoiTGFiZWxzIgogICAgICAgICB9CiAgICAgIF0sCiAgICAgICJjb2RlIjoiNDAwOTgwMDAwNzE1NCIsCiAgICAgICJpbWFnZV9mcm9udF9zbWFsbF91cmwiOiJodHRwczovL2ltYWdlcy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9wcm9kdWN0cy80MDAvOTgwLzAwMC83MTU0L2Zyb250X2VuLjkuMjAwLmpwZyIsCiAgICAgICJwcm9kdWN0X2Rpc3BsYXlfbmFtZSI6IkJpbyBNZWxvcyBTYW5kZG9ybiDigJMgU3BlaWNrIE5hdHVya29zbWV0aWsg4oCTIDEwMMKgZyIsCiAgICAgICJ1cmwiOiJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmcvcHJvZHVjdC80MDA5ODAwMDA3MTU0L2Jpby1tZWxvcy1zYW5kZG9ybi1zcGVpY2stbmF0dXJrb3NtZXRpayIKICAgfSwKICAgewogICAgICAiYXR0cmlidXRlX2dyb3VwcyI6WwogICAgICAgICB7CiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjpbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImdyYWRlIjoiZSIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9ub24tdmVnYW4uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoidmVnYW4iLAogICAgICAgICAgICAgICAgICAibWF0Y2giOjAsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiVmVnYW4iLAogICAgICAgICAgICAgICAgICAicGFuZWxfaWQiOiJpbmdyZWRpZW50c19hbmFseXNpc19lbjpub24tdmVnYW4iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoia25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJOb24tdmVnYW4iCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC92ZWdldGFyaWFuLXN0YXR1cy11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InZlZ2V0YXJpYW4iLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlZlZ2V0YXJpYW4iLAogICAgICAgICAgICAgICAgICAicGFuZWxfaWQiOiJpbmdyZWRpZW50c19hbmFseXNpc19lbjp2ZWdldGFyaWFuLXN0YXR1cy11bmtub3duIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJWZWdldGFyaWFuIHN0YXR1cyB1bmtub3duIgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6ImMiLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvbWF5LWNvbnRhaW4tcGFsbS1vaWwuc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoicGFsbV9vaWxfZnJlZSIsCiAgICAgICAgICAgICAgICAgICJtYXRjaCI6NTAsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiUGFsbSBvaWwgZnJlZSIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOm1heS1jb250YWluLXBhbG0tb2lsIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6Imtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTWF5IGNvbnRhaW4gcGFsbSBvaWwiCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImlkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXMiLAogICAgICAgICAgICAibmFtZSI6IkluZ3JlZGllbnRzIgogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjpbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiT3JnYW5pYyBmYXJtaW5nIGFpbXMgdG8gcHJvdGVjdCB0aGUgZW52aXJvbm1lbnQgYW5kIHRvIGNvbnNlcnZlIGJpb2RpdmVyc2l0eSBieSBwcm9oaWJpdGluZyBvciBsaW1pdGluZyB0aGUgdXNlIG9mIHN5bnRoZXRpYyBmZXJ0aWxpemVycywgcGVzdGljaWRlcyBhbmQgZm9vZCBhZGRpdGl2ZXMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiT3JnYW5pYyBwcm9kdWN0cyBwcm9tb3RlIGVjb2xvZ2ljYWwgc3VzdGFpbmFiaWxpdHkgYW5kIGJpb2RpdmVyc2l0eS4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L29yZ2FuaWMtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJsYWJlbHNfb3JnYW5pYyIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiT3JnYW5pYyBmYXJtaW5nIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJNaXNzaW5nIGluZm9ybWF0aW9uOiBvcmdhbmljIHByb2R1Y3Q/IgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IldoZW4geW91IGJ1eSBmYWlyIHRyYWRlIHByb2R1Y3RzLCBwcm9kdWNlcnMgaW4gZGV2ZWxvcGluZyBjb3VudHJpZXMgYXJlIHBhaWQgYW4gaGlnaGVyIGFuZCBmYWlyZXIgcHJpY2UsIHdoaWNoIGhlbHBzIHRoZW0gaW1wcm92ZSBhbmQgc3VzdGFpbiBoaWdoZXIgc29jaWFsIGFuZCBvZnRlbiBlbnZpcm9ubWVudGFsIHN0YW5kYXJkcy4iLAogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb25fc2hvcnQiOiJGYWlyIHRyYWRlIHByb2R1Y3RzIGhlbHAgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzLiIsCiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvZmFpci10cmFkZS11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6ImxhYmVsc19mYWlyX3RyYWRlIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJGYWlyIHRyYWRlIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJNaXNzaW5nIGluZm9ybWF0aW9uOiBmYWlyIHRyYWRlIHByb2R1Y3Q/IgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpZCI6ImxhYmVscyIsCiAgICAgICAgICAgICJuYW1lIjoiTGFiZWxzIgogICAgICAgICB9CiAgICAgIF0sCiAgICAgICJjb2RlIjoiMjA0MDc1ODYzODcyNiIsCiAgICAgICJwcm9kdWN0X2Rpc3BsYXlfbmFtZSI6IlNvYXAiLAogICAgICAidXJsIjoiaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL3Byb2R1Y3QvMjA0MDc1ODYzODcyNi9zb2FwIgogICB9LAogICB7CiAgICAgICJhdHRyaWJ1dGVfZ3JvdXBzIjpbCiAgICAgICAgIHsKICAgICAgICAgICAgImF0dHJpYnV0ZXMiOlsKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3ZlZ2FuLXN0YXR1cy11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InZlZ2FuIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJWZWdhbiIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnZlZ2FuLXN0YXR1cy11bmtub3duIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJWZWdhbiBzdGF0dXMgdW5rbm93biIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3ZlZ2V0YXJpYW4tc3RhdHVzLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoidmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiVmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnZlZ2V0YXJpYW4tc3RhdHVzLXVua25vd24iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IlZlZ2V0YXJpYW4gc3RhdHVzIHVua25vd24iCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9wYWxtLW9pbC1jb250ZW50LXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoicGFsbV9vaWxfZnJlZSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiUGFsbSBvaWwgZnJlZSIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnBhbG0tb2lsLWNvbnRlbnQtdW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiUGFsbSBvaWwgY29udGVudCB1bmtub3duIgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzIiwKICAgICAgICAgICAgIm5hbWUiOiJJbmdyZWRpZW50cyIKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAiYXR0cmlidXRlcyI6WwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6Ik9yZ2FuaWMgZmFybWluZyBhaW1zIHRvIHByb3RlY3QgdGhlIGVudmlyb25tZW50IGFuZCB0byBjb25zZXJ2ZSBiaW9kaXZlcnNpdHkgYnkgcHJvaGliaXRpbmcgb3IgbGltaXRpbmcgdGhlIHVzZSBvZiBzeW50aGV0aWMgZmVydGlsaXplcnMsIHBlc3RpY2lkZXMgYW5kIGZvb2QgYWRkaXRpdmVzLiIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbl9zaG9ydCI6Ik9yZ2FuaWMgcHJvZHVjdHMgcHJvbW90ZSBlY29sb2dpY2FsIHN1c3RhaW5hYmlsaXR5IGFuZCBiaW9kaXZlcnNpdHkuIiwKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9vcmdhbmljLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoibGFiZWxzX29yZ2FuaWMiLAogICAgICAgICAgICAgICAgICAibmFtZSI6Ik9yZ2FuaWMgZmFybWluZyIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTWlzc2luZyBpbmZvcm1hdGlvbjogb3JnYW5pYyBwcm9kdWN0PyIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJXaGVuIHlvdSBidXkgZmFpciB0cmFkZSBwcm9kdWN0cywgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzIGFyZSBwYWlkIGFuIGhpZ2hlciBhbmQgZmFpcmVyIHByaWNlLCB3aGljaCBoZWxwcyB0aGVtIGltcHJvdmUgYW5kIHN1c3RhaW4gaGlnaGVyIHNvY2lhbCBhbmQgb2Z0ZW4gZW52aXJvbm1lbnRhbCBzdGFuZGFyZHMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiRmFpciB0cmFkZSBwcm9kdWN0cyBoZWxwIHByb2R1Y2VycyBpbiBkZXZlbG9waW5nIGNvdW50cmllcy4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L2ZhaXItdHJhZGUtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJsYWJlbHNfZmFpcl90cmFkZSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiRmFpciB0cmFkZSIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTWlzc2luZyBpbmZvcm1hdGlvbjogZmFpciB0cmFkZSBwcm9kdWN0PyIKICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaWQiOiJsYWJlbHMiLAogICAgICAgICAgICAibmFtZSI6IkxhYmVscyIKICAgICAgICAgfQogICAgICBdLAogICAgICAiY29kZSI6IjQwMDU4MDgxMzUzMTgiLAogICAgICAiaW1hZ2VfZnJvbnRfc21hbGxfdXJsIjoiaHR0cHM6Ly9pbWFnZXMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvcHJvZHVjdHMvNDAwLzU4MC84MTMvNTMxOC9mcm9udF9mci42LjIwMC5qcGciLAogICAgICAicHJvZHVjdF9kaXNwbGF5X25hbWUiOiJDcmVtZSBTb2Z0IFNhdm9uIFNvaW4g4oCTIE5pdmVhIOKAkyAxMDDCoGciLAogICAgICAidXJsIjoiaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL3Byb2R1Y3QvNDAwNTgwODEzNTMxOC9jcmVtZS1zb2Z0LXNhdm9uLXNvaW4tbml2ZWEiCiAgIH0sCiAgIHsKICAgICAgImF0dHJpYnV0ZV9ncm91cHMiOlsKICAgICAgICAgewogICAgICAgICAgICAiYXR0cmlidXRlcyI6WwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvdmVnYW4tc3RhdHVzLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoidmVnYW4iLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlZlZ2FuIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46dmVnYW4tc3RhdHVzLXVua25vd24iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IlZlZ2FuIHN0YXR1cyB1bmtub3duIgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvdmVnZXRhcmlhbi1zdGF0dXMtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJ2ZWdldGFyaWFuIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJWZWdldGFyaWFuIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46dmVnZXRhcmlhbi1zdGF0dXMtdW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiVmVnZXRhcmlhbiBzdGF0dXMgdW5rbm93biIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3BhbG0tb2lsLWNvbnRlbnQtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJwYWxtX29pbF9mcmVlIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJQYWxtIG9pbCBmcmVlIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46cGFsbS1vaWwtY29udGVudC11bmtub3duIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJQYWxtIG9pbCBjb250ZW50IHVua25vd24iCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImlkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXMiLAogICAgICAgICAgICAibmFtZSI6IkluZ3JlZGllbnRzIgogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjpbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiT3JnYW5pYyBmYXJtaW5nIGFpbXMgdG8gcHJvdGVjdCB0aGUgZW52aXJvbm1lbnQgYW5kIHRvIGNvbnNlcnZlIGJpb2RpdmVyc2l0eSBieSBwcm9oaWJpdGluZyBvciBsaW1pdGluZyB0aGUgdXNlIG9mIHN5bnRoZXRpYyBmZXJ0aWxpemVycywgcGVzdGljaWRlcyBhbmQgZm9vZCBhZGRpdGl2ZXMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiT3JnYW5pYyBwcm9kdWN0cyBwcm9tb3RlIGVjb2xvZ2ljYWwgc3VzdGFpbmFiaWxpdHkgYW5kIGJpb2RpdmVyc2l0eS4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L29yZ2FuaWMtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJsYWJlbHNfb3JnYW5pYyIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiT3JnYW5pYyBmYXJtaW5nIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJNaXNzaW5nIGluZm9ybWF0aW9uOiBvcmdhbmljIHByb2R1Y3Q/IgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IldoZW4geW91IGJ1eSBmYWlyIHRyYWRlIHByb2R1Y3RzLCBwcm9kdWNlcnMgaW4gZGV2ZWxvcGluZyBjb3VudHJpZXMgYXJlIHBhaWQgYW4gaGlnaGVyIGFuZCBmYWlyZXIgcHJpY2UsIHdoaWNoIGhlbHBzIHRoZW0gaW1wcm92ZSBhbmQgc3VzdGFpbiBoaWdoZXIgc29jaWFsIGFuZCBvZnRlbiBlbnZpcm9ubWVudGFsIHN0YW5kYXJkcy4iLAogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb25fc2hvcnQiOiJGYWlyIHRyYWRlIHByb2R1Y3RzIGhlbHAgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzLiIsCiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvZmFpci10cmFkZS11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6ImxhYmVsc19mYWlyX3RyYWRlIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJGYWlyIHRyYWRlIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJNaXNzaW5nIGluZm9ybWF0aW9uOiBmYWlyIHRyYWRlIHByb2R1Y3Q/IgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpZCI6ImxhYmVscyIsCiAgICAgICAgICAgICJuYW1lIjoiTGFiZWxzIgogICAgICAgICB9CiAgICAgIF0sCiAgICAgICJjb2RlIjoiNDAwNTkwMDIxNzkzNiIsCiAgICAgICJpbWFnZV9mcm9udF9zbWFsbF91cmwiOiJodHRwczovL2ltYWdlcy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9wcm9kdWN0cy80MDAvNTkwLzAyMS83OTM2L2Zyb250X2VuLjkuMjAwLmpwZyIsCiAgICAgICJwcm9kdWN0X2Rpc3BsYXlfbmFtZSI6IkNyZW1lIGNhcmUgU29hcCDigJMgTml2ZWEg4oCTIDFwY3MiLAogICAgICAidXJsIjoiaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL3Byb2R1Y3QvNDAwNTkwMDIxNzkzNi9jcmVtZS1jYXJlLXNvYXAtbml2ZWEiCiAgIH0sCiAgIHsKICAgICAgImF0dHJpYnV0ZV9ncm91cHMiOlsKICAgICAgICAgewogICAgICAgICAgICAiYXR0cmlidXRlcyI6WwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6ImUiLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3Qvbm9uLXZlZ2FuLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InZlZ2FuIiwKICAgICAgICAgICAgICAgICAgIm1hdGNoIjowLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlZlZ2FuIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46bm9uLXZlZ2FuIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6Imtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTm9uLXZlZ2FuIgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvdmVnZXRhcmlhbi1zdGF0dXMtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJ2ZWdldGFyaWFuIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJWZWdldGFyaWFuIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46dmVnZXRhcmlhbi1zdGF0dXMtdW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiVmVnZXRhcmlhbiBzdGF0dXMgdW5rbm93biIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3BhbG0tb2lsLWNvbnRlbnQtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJwYWxtX29pbF9mcmVlIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJQYWxtIG9pbCBmcmVlIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46cGFsbS1vaWwtY29udGVudC11bmtub3duIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJQYWxtIG9pbCBjb250ZW50IHVua25vd24iCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImlkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXMiLAogICAgICAgICAgICAibmFtZSI6IkluZ3JlZGllbnRzIgogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjpbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiT3JnYW5pYyBmYXJtaW5nIGFpbXMgdG8gcHJvdGVjdCB0aGUgZW52aXJvbm1lbnQgYW5kIHRvIGNvbnNlcnZlIGJpb2RpdmVyc2l0eSBieSBwcm9oaWJpdGluZyBvciBsaW1pdGluZyB0aGUgdXNlIG9mIHN5bnRoZXRpYyBmZXJ0aWxpemVycywgcGVzdGljaWRlcyBhbmQgZm9vZCBhZGRpdGl2ZXMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiT3JnYW5pYyBwcm9kdWN0cyBwcm9tb3RlIGVjb2xvZ2ljYWwgc3VzdGFpbmFiaWxpdHkgYW5kIGJpb2RpdmVyc2l0eS4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L29yZ2FuaWMtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJsYWJlbHNfb3JnYW5pYyIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiT3JnYW5pYyBmYXJtaW5nIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJNaXNzaW5nIGluZm9ybWF0aW9uOiBvcmdhbmljIHByb2R1Y3Q/IgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IldoZW4geW91IGJ1eSBmYWlyIHRyYWRlIHByb2R1Y3RzLCBwcm9kdWNlcnMgaW4gZGV2ZWxvcGluZyBjb3VudHJpZXMgYXJlIHBhaWQgYW4gaGlnaGVyIGFuZCBmYWlyZXIgcHJpY2UsIHdoaWNoIGhlbHBzIHRoZW0gaW1wcm92ZSBhbmQgc3VzdGFpbiBoaWdoZXIgc29jaWFsIGFuZCBvZnRlbiBlbnZpcm9ubWVudGFsIHN0YW5kYXJkcy4iLAogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb25fc2hvcnQiOiJGYWlyIHRyYWRlIHByb2R1Y3RzIGhlbHAgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzLiIsCiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvZmFpci10cmFkZS11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6ImxhYmVsc19mYWlyX3RyYWRlIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJGYWlyIHRyYWRlIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJNaXNzaW5nIGluZm9ybWF0aW9uOiBmYWlyIHRyYWRlIHByb2R1Y3Q/IgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpZCI6ImxhYmVscyIsCiAgICAgICAgICAgICJuYW1lIjoiTGFiZWxzIgogICAgICAgICB9CiAgICAgIF0sCiAgICAgICJjb2RlIjoiNDAwOTgwMDAwNTE2NyIsCiAgICAgICJpbWFnZV9mcm9udF9zbWFsbF91cmwiOiJodHRwczovL2ltYWdlcy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9wcm9kdWN0cy80MDAvOTgwLzAwMC81MTY3L2Zyb250X2RlLjQuMjAwLmpwZyIsCiAgICAgICJwcm9kdWN0X2Rpc3BsYXlfbmFtZSI6IkFyenRzZWlmZSDigJMgU3BlaWNrIOKAkyAxMDDCoGciLAogICAgICAidXJsIjoiaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL3Byb2R1Y3QvNDAwOTgwMDAwNTE2Ny9hcnp0c2VpZmUtc3BlaWNrIgogICB9LAogICB7CiAgICAgICJhdHRyaWJ1dGVfZ3JvdXBzIjpbCiAgICAgICAgIHsKICAgICAgICAgICAgImF0dHJpYnV0ZXMiOlsKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3ZlZ2FuLXN0YXR1cy11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InZlZ2FuIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJWZWdhbiIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnZlZ2FuLXN0YXR1cy11bmtub3duIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJWZWdhbiBzdGF0dXMgdW5rbm93biIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3ZlZ2V0YXJpYW4tc3RhdHVzLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoidmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiVmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnZlZ2V0YXJpYW4tc3RhdHVzLXVua25vd24iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IlZlZ2V0YXJpYW4gc3RhdHVzIHVua25vd24iCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9wYWxtLW9pbC1jb250ZW50LXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoicGFsbV9vaWxfZnJlZSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiUGFsbSBvaWwgZnJlZSIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnBhbG0tb2lsLWNvbnRlbnQtdW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiUGFsbSBvaWwgY29udGVudCB1bmtub3duIgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzIiwKICAgICAgICAgICAgIm5hbWUiOiJJbmdyZWRpZW50cyIKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAiYXR0cmlidXRlcyI6WwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6Ik9yZ2FuaWMgZmFybWluZyBhaW1zIHRvIHByb3RlY3QgdGhlIGVudmlyb25tZW50IGFuZCB0byBjb25zZXJ2ZSBiaW9kaXZlcnNpdHkgYnkgcHJvaGliaXRpbmcgb3IgbGltaXRpbmcgdGhlIHVzZSBvZiBzeW50aGV0aWMgZmVydGlsaXplcnMsIHBlc3RpY2lkZXMgYW5kIGZvb2QgYWRkaXRpdmVzLiIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbl9zaG9ydCI6Ik9yZ2FuaWMgcHJvZHVjdHMgcHJvbW90ZSBlY29sb2dpY2FsIHN1c3RhaW5hYmlsaXR5IGFuZCBiaW9kaXZlcnNpdHkuIiwKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9vcmdhbmljLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoibGFiZWxzX29yZ2FuaWMiLAogICAgICAgICAgICAgICAgICAibmFtZSI6Ik9yZ2FuaWMgZmFybWluZyIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTWlzc2luZyBpbmZvcm1hdGlvbjogb3JnYW5pYyBwcm9kdWN0PyIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJXaGVuIHlvdSBidXkgZmFpciB0cmFkZSBwcm9kdWN0cywgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzIGFyZSBwYWlkIGFuIGhpZ2hlciBhbmQgZmFpcmVyIHByaWNlLCB3aGljaCBoZWxwcyB0aGVtIGltcHJvdmUgYW5kIHN1c3RhaW4gaGlnaGVyIHNvY2lhbCBhbmQgb2Z0ZW4gZW52aXJvbm1lbnRhbCBzdGFuZGFyZHMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiRmFpciB0cmFkZSBwcm9kdWN0cyBoZWxwIHByb2R1Y2VycyBpbiBkZXZlbG9waW5nIGNvdW50cmllcy4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L2ZhaXItdHJhZGUtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJsYWJlbHNfZmFpcl90cmFkZSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiRmFpciB0cmFkZSIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTWlzc2luZyBpbmZvcm1hdGlvbjogZmFpciB0cmFkZSBwcm9kdWN0PyIKICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaWQiOiJsYWJlbHMiLAogICAgICAgICAgICAibmFtZSI6IkxhYmVscyIKICAgICAgICAgfQogICAgICBdLAogICAgICAiY29kZSI6IjQwMDU5MDAzNjU0OTEiLAogICAgICAiaW1hZ2VfZnJvbnRfc21hbGxfdXJsIjoiaHR0cHM6Ly9pbWFnZXMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvcHJvZHVjdHMvNDAwLzU5MC8wMzYvNTQ5MS9mcm9udF9lbi40LjIwMC5qcGciLAogICAgICAicHJvZHVjdF9kaXNwbGF5X25hbWUiOiJDcmVtZSBjYXJlIOKAkyBOaXZlYSIsCiAgICAgICJ1cmwiOiJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmcvcHJvZHVjdC80MDA1OTAwMzY1NDkxL2NyZW1lLWNhcmUtbml2ZWEiCiAgIH0sCiAgIHsKICAgICAgImF0dHJpYnV0ZV9ncm91cHMiOlsKICAgICAgICAgewogICAgICAgICAgICAiYXR0cmlidXRlcyI6WwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvdmVnYW4tc3RhdHVzLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoidmVnYW4iLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlZlZ2FuIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46dmVnYW4tc3RhdHVzLXVua25vd24iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IlZlZ2FuIHN0YXR1cyB1bmtub3duIgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6ImEiLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvdmVnZXRhcmlhbi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJ2ZWdldGFyaWFuIiwKICAgICAgICAgICAgICAgICAgIm1hdGNoIjoxMDAsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiVmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnZlZ2V0YXJpYW4iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoia25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJWZWdldGFyaWFuIgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvcGFsbS1vaWwtY29udGVudC11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InBhbG1fb2lsX2ZyZWUiLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlBhbG0gb2lsIGZyZWUiLAogICAgICAgICAgICAgICAgICAicGFuZWxfaWQiOiJpbmdyZWRpZW50c19hbmFseXNpc19lbjpwYWxtLW9pbC1jb250ZW50LXVua25vd24iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IlBhbG0gb2lsIGNvbnRlbnQgdW5rbm93biIKICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaWQiOiJpbmdyZWRpZW50c19hbmFseXNpcyIsCiAgICAgICAgICAgICJuYW1lIjoiSW5ncmVkaWVudHMiCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgImF0dHJpYnV0ZXMiOlsKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJPcmdhbmljIGZhcm1pbmcgYWltcyB0byBwcm90ZWN0IHRoZSBlbnZpcm9ubWVudCBhbmQgdG8gY29uc2VydmUgYmlvZGl2ZXJzaXR5IGJ5IHByb2hpYml0aW5nIG9yIGxpbWl0aW5nIHRoZSB1c2Ugb2Ygc3ludGhldGljIGZlcnRpbGl6ZXJzLCBwZXN0aWNpZGVzIGFuZCBmb29kIGFkZGl0aXZlcy4iLAogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb25fc2hvcnQiOiJPcmdhbmljIHByb2R1Y3RzIHByb21vdGUgZWNvbG9naWNhbCBzdXN0YWluYWJpbGl0eSBhbmQgYmlvZGl2ZXJzaXR5LiIsCiAgICAgICAgICAgICAgICAgICJncmFkZSI6ImUiLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3Qvbm90LW9yZ2FuaWMuc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoibGFiZWxzX29yZ2FuaWMiLAogICAgICAgICAgICAgICAgICAibWF0Y2giOjAsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiT3JnYW5pYyBmYXJtaW5nIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6Imtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTm90IGFuIG9yZ2FuaWMgcHJvZHVjdCIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJXaGVuIHlvdSBidXkgZmFpciB0cmFkZSBwcm9kdWN0cywgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzIGFyZSBwYWlkIGFuIGhpZ2hlciBhbmQgZmFpcmVyIHByaWNlLCB3aGljaCBoZWxwcyB0aGVtIGltcHJvdmUgYW5kIHN1c3RhaW4gaGlnaGVyIHNvY2lhbCBhbmQgb2Z0ZW4gZW52aXJvbm1lbnRhbCBzdGFuZGFyZHMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiRmFpciB0cmFkZSBwcm9kdWN0cyBoZWxwIHByb2R1Y2VycyBpbiBkZXZlbG9waW5nIGNvdW50cmllcy4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJlIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L25vdC1mYWlyLXRyYWRlLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6ImxhYmVsc19mYWlyX3RyYWRlIiwKICAgICAgICAgICAgICAgICAgIm1hdGNoIjowLAogICAgICAgICAgICAgICAgICAibmFtZSI6IkZhaXIgdHJhZGUiLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoia25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJOb3QgYSBmYWlyIHRyYWRlIHByb2R1Y3QiCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImlkIjoibGFiZWxzIiwKICAgICAgICAgICAgIm5hbWUiOiJMYWJlbHMiCiAgICAgICAgIH0KICAgICAgXSwKICAgICAgImNvZGUiOiI0MDA5ODAwMDA3NjczIiwKICAgICAgImltYWdlX2Zyb250X3NtYWxsX3VybCI6Imh0dHBzOi8vaW1hZ2VzLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL3Byb2R1Y3RzLzQwMC85ODAvMDAwLzc2NzMvZnJvbnRfZW4uMTIuMjAwLmpwZyIsCiAgICAgICJwcm9kdWN0X2Rpc3BsYXlfbmFtZSI6IldlbGxuZXNzIFNvYXAgRHVzY2grQmFkZXNlaWZlIFNhbmRkb3JuICYgT3JhbmdlIOKAkyBTcGVpY2sg4oCTIDIwMMKgZyIsCiAgICAgICJ1cmwiOiJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmcvcHJvZHVjdC80MDA5ODAwMDA3NjczL3dlbGxuZXNzLXNvYXAtZHVzY2gtYmFkZXNlaWZlLXNhbmRkb3JuLW9yYW5nZS1zcGVpY2siCiAgIH0sCiAgIHsKICAgICAgImF0dHJpYnV0ZV9ncm91cHMiOlsKICAgICAgICAgewogICAgICAgICAgICAiYXR0cmlidXRlcyI6WwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvdmVnYW4tc3RhdHVzLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoidmVnYW4iLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlZlZ2FuIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46dmVnYW4tc3RhdHVzLXVua25vd24iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IlZlZ2FuIHN0YXR1cyB1bmtub3duIgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvdmVnZXRhcmlhbi1zdGF0dXMtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJ2ZWdldGFyaWFuIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJWZWdldGFyaWFuIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46dmVnZXRhcmlhbi1zdGF0dXMtdW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiVmVnZXRhcmlhbiBzdGF0dXMgdW5rbm93biIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3BhbG0tb2lsLWNvbnRlbnQtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJwYWxtX29pbF9mcmVlIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJQYWxtIG9pbCBmcmVlIiwKICAgICAgICAgICAgICAgICAgInBhbmVsX2lkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXNfZW46cGFsbS1vaWwtY29udGVudC11bmtub3duIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJQYWxtIG9pbCBjb250ZW50IHVua25vd24iCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImlkIjoiaW5ncmVkaWVudHNfYW5hbHlzaXMiLAogICAgICAgICAgICAibmFtZSI6IkluZ3JlZGllbnRzIgogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjpbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiT3JnYW5pYyBmYXJtaW5nIGFpbXMgdG8gcHJvdGVjdCB0aGUgZW52aXJvbm1lbnQgYW5kIHRvIGNvbnNlcnZlIGJpb2RpdmVyc2l0eSBieSBwcm9oaWJpdGluZyBvciBsaW1pdGluZyB0aGUgdXNlIG9mIHN5bnRoZXRpYyBmZXJ0aWxpemVycywgcGVzdGljaWRlcyBhbmQgZm9vZCBhZGRpdGl2ZXMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiT3JnYW5pYyBwcm9kdWN0cyBwcm9tb3RlIGVjb2xvZ2ljYWwgc3VzdGFpbmFiaWxpdHkgYW5kIGJpb2RpdmVyc2l0eS4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L29yZ2FuaWMtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJsYWJlbHNfb3JnYW5pYyIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiT3JnYW5pYyBmYXJtaW5nIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJNaXNzaW5nIGluZm9ybWF0aW9uOiBvcmdhbmljIHByb2R1Y3Q/IgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IldoZW4geW91IGJ1eSBmYWlyIHRyYWRlIHByb2R1Y3RzLCBwcm9kdWNlcnMgaW4gZGV2ZWxvcGluZyBjb3VudHJpZXMgYXJlIHBhaWQgYW4gaGlnaGVyIGFuZCBmYWlyZXIgcHJpY2UsIHdoaWNoIGhlbHBzIHRoZW0gaW1wcm92ZSBhbmQgc3VzdGFpbiBoaWdoZXIgc29jaWFsIGFuZCBvZnRlbiBlbnZpcm9ubWVudGFsIHN0YW5kYXJkcy4iLAogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb25fc2hvcnQiOiJGYWlyIHRyYWRlIHByb2R1Y3RzIGhlbHAgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzLiIsCiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvZmFpci10cmFkZS11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6ImxhYmVsc19mYWlyX3RyYWRlIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJGYWlyIHRyYWRlIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJNaXNzaW5nIGluZm9ybWF0aW9uOiBmYWlyIHRyYWRlIHByb2R1Y3Q/IgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpZCI6ImxhYmVscyIsCiAgICAgICAgICAgICJuYW1lIjoiTGFiZWxzIgogICAgICAgICB9CiAgICAgIF0sCiAgICAgICJjb2RlIjoiMjIwMDI2MDk3NTY1MiIsCiAgICAgICJpbWFnZV9mcm9udF9zbWFsbF91cmwiOiJodHRwczovL2ltYWdlcy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9wcm9kdWN0cy8yMjAvMDI2LzA5Ny81NjUyL2Zyb250X2VuLjkuMjAwLmpwZyIsCiAgICAgICJwcm9kdWN0X2Rpc3BsYXlfbmFtZSI6IlJlaW5lIFBmbGFuemVuw7Zsc2VpZmUgU3BvcnQg4oCTIEF2ZW8g4oCTIDEwMMKgZyIsCiAgICAgICJ1cmwiOiJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmcvcHJvZHVjdC8yMjAwMjYwOTc1NjUyL3JlaW5lLXBmbGFuemVub2xzZWlmZS1zcG9ydC1hdmVvIgogICB9LAogICB7CiAgICAgICJhdHRyaWJ1dGVfZ3JvdXBzIjpbCiAgICAgICAgIHsKICAgICAgICAgICAgImF0dHJpYnV0ZXMiOlsKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3ZlZ2FuLXN0YXR1cy11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InZlZ2FuIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJWZWdhbiIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnZlZ2FuLXN0YXR1cy11bmtub3duIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJWZWdhbiBzdGF0dXMgdW5rbm93biIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3ZlZ2V0YXJpYW4tc3RhdHVzLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoidmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiVmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnZlZ2V0YXJpYW4tc3RhdHVzLXVua25vd24iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IlZlZ2V0YXJpYW4gc3RhdHVzIHVua25vd24iCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9wYWxtLW9pbC1jb250ZW50LXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoicGFsbV9vaWxfZnJlZSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiUGFsbSBvaWwgZnJlZSIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnBhbG0tb2lsLWNvbnRlbnQtdW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiUGFsbSBvaWwgY29udGVudCB1bmtub3duIgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzIiwKICAgICAgICAgICAgIm5hbWUiOiJJbmdyZWRpZW50cyIKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAiYXR0cmlidXRlcyI6WwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6Ik9yZ2FuaWMgZmFybWluZyBhaW1zIHRvIHByb3RlY3QgdGhlIGVudmlyb25tZW50IGFuZCB0byBjb25zZXJ2ZSBiaW9kaXZlcnNpdHkgYnkgcHJvaGliaXRpbmcgb3IgbGltaXRpbmcgdGhlIHVzZSBvZiBzeW50aGV0aWMgZmVydGlsaXplcnMsIHBlc3RpY2lkZXMgYW5kIGZvb2QgYWRkaXRpdmVzLiIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbl9zaG9ydCI6Ik9yZ2FuaWMgcHJvZHVjdHMgcHJvbW90ZSBlY29sb2dpY2FsIHN1c3RhaW5hYmlsaXR5IGFuZCBiaW9kaXZlcnNpdHkuIiwKICAgICAgICAgICAgICAgICAgImdyYWRlIjoiZSIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9ub3Qtb3JnYW5pYy5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJsYWJlbHNfb3JnYW5pYyIsCiAgICAgICAgICAgICAgICAgICJtYXRjaCI6MCwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJPcmdhbmljIGZhcm1pbmciLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoia25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJOb3QgYW4gb3JnYW5pYyBwcm9kdWN0IgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IldoZW4geW91IGJ1eSBmYWlyIHRyYWRlIHByb2R1Y3RzLCBwcm9kdWNlcnMgaW4gZGV2ZWxvcGluZyBjb3VudHJpZXMgYXJlIHBhaWQgYW4gaGlnaGVyIGFuZCBmYWlyZXIgcHJpY2UsIHdoaWNoIGhlbHBzIHRoZW0gaW1wcm92ZSBhbmQgc3VzdGFpbiBoaWdoZXIgc29jaWFsIGFuZCBvZnRlbiBlbnZpcm9ubWVudGFsIHN0YW5kYXJkcy4iLAogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb25fc2hvcnQiOiJGYWlyIHRyYWRlIHByb2R1Y3RzIGhlbHAgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzLiIsCiAgICAgICAgICAgICAgICAgICJncmFkZSI6ImUiLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3Qvbm90LWZhaXItdHJhZGUuc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoibGFiZWxzX2ZhaXJfdHJhZGUiLAogICAgICAgICAgICAgICAgICAibWF0Y2giOjAsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiRmFpciB0cmFkZSIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJrbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6Ik5vdCBhIGZhaXIgdHJhZGUgcHJvZHVjdCIKICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaWQiOiJsYWJlbHMiLAogICAgICAgICAgICAibmFtZSI6IkxhYmVscyIKICAgICAgICAgfQogICAgICBdLAogICAgICAiY29kZSI6IjM1MTE3MjAxMjgzMDMiLAogICAgICAiaW1hZ2VfZnJvbnRfc21hbGxfdXJsIjoiaHR0cHM6Ly9pbWFnZXMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvcHJvZHVjdHMvMzUxLzE3Mi8wMTIvODMwMy9mcm9udF9mci40LjIwMC5qcGciLAogICAgICAicHJvZHVjdF9kaXNwbGF5X25hbWUiOiJzYXZvbiBwb21tZSBkIGFtb3VyIOKAkyAxMDBnIiwKICAgICAgInVybCI6Imh0dHBzOi8vd29ybGQub3BlbmJlYXV0eWZhY3RzLm9yZy9wcm9kdWN0LzM1MTE3MjAxMjgzMDMvc2F2b24tcG9tbWUtZC1hbW91ciIKICAgfSwKICAgewogICAgICAiYXR0cmlidXRlX2dyb3VwcyI6WwogICAgICAgICB7CiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjpbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC92ZWdhbi1zdGF0dXMtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJ2ZWdhbiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiVmVnYW4iLAogICAgICAgICAgICAgICAgICAicGFuZWxfaWQiOiJpbmdyZWRpZW50c19hbmFseXNpc19lbjp2ZWdhbi1zdGF0dXMtdW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiVmVnYW4gc3RhdHVzIHVua25vd24iCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC92ZWdldGFyaWFuLXN0YXR1cy11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InZlZ2V0YXJpYW4iLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlZlZ2V0YXJpYW4iLAogICAgICAgICAgICAgICAgICAicGFuZWxfaWQiOiJpbmdyZWRpZW50c19hbmFseXNpc19lbjp2ZWdldGFyaWFuLXN0YXR1cy11bmtub3duIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJWZWdldGFyaWFuIHN0YXR1cyB1bmtub3duIgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJncmFkZSI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3QvcGFsbS1vaWwtY29udGVudC11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InBhbG1fb2lsX2ZyZWUiLAogICAgICAgICAgICAgICAgICAibmFtZSI6IlBhbG0gb2lsIGZyZWUiLAogICAgICAgICAgICAgICAgICAicGFuZWxfaWQiOiJpbmdyZWRpZW50c19hbmFseXNpc19lbjpwYWxtLW9pbC1jb250ZW50LXVua25vd24iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IlBhbG0gb2lsIGNvbnRlbnQgdW5rbm93biIKICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaWQiOiJpbmdyZWRpZW50c19hbmFseXNpcyIsCiAgICAgICAgICAgICJuYW1lIjoiSW5ncmVkaWVudHMiCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgImF0dHJpYnV0ZXMiOlsKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJPcmdhbmljIGZhcm1pbmcgYWltcyB0byBwcm90ZWN0IHRoZSBlbnZpcm9ubWVudCBhbmQgdG8gY29uc2VydmUgYmlvZGl2ZXJzaXR5IGJ5IHByb2hpYml0aW5nIG9yIGxpbWl0aW5nIHRoZSB1c2Ugb2Ygc3ludGhldGljIGZlcnRpbGl6ZXJzLCBwZXN0aWNpZGVzIGFuZCBmb29kIGFkZGl0aXZlcy4iLAogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb25fc2hvcnQiOiJPcmdhbmljIHByb2R1Y3RzIHByb21vdGUgZWNvbG9naWNhbCBzdXN0YWluYWJpbGl0eSBhbmQgYmlvZGl2ZXJzaXR5LiIsCiAgICAgICAgICAgICAgICAgICJncmFkZSI6ImUiLAogICAgICAgICAgICAgICAgICAiaWNvbl91cmwiOiJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hdHRyaWJ1dGVzL2Rpc3Qvbm90LW9yZ2FuaWMuc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoibGFiZWxzX29yZ2FuaWMiLAogICAgICAgICAgICAgICAgICAibWF0Y2giOjAsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiT3JnYW5pYyBmYXJtaW5nIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6Imtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTm90IGFuIG9yZ2FuaWMgcHJvZHVjdCIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJXaGVuIHlvdSBidXkgZmFpciB0cmFkZSBwcm9kdWN0cywgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzIGFyZSBwYWlkIGFuIGhpZ2hlciBhbmQgZmFpcmVyIHByaWNlLCB3aGljaCBoZWxwcyB0aGVtIGltcHJvdmUgYW5kIHN1c3RhaW4gaGlnaGVyIHNvY2lhbCBhbmQgb2Z0ZW4gZW52aXJvbm1lbnRhbCBzdGFuZGFyZHMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiRmFpciB0cmFkZSBwcm9kdWN0cyBoZWxwIHByb2R1Y2VycyBpbiBkZXZlbG9waW5nIGNvdW50cmllcy4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJlIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L25vdC1mYWlyLXRyYWRlLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6ImxhYmVsc19mYWlyX3RyYWRlIiwKICAgICAgICAgICAgICAgICAgIm1hdGNoIjowLAogICAgICAgICAgICAgICAgICAibmFtZSI6IkZhaXIgdHJhZGUiLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoia25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJOb3QgYSBmYWlyIHRyYWRlIHByb2R1Y3QiCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImlkIjoibGFiZWxzIiwKICAgICAgICAgICAgIm5hbWUiOiJMYWJlbHMiCiAgICAgICAgIH0KICAgICAgXSwKICAgICAgImNvZGUiOiIzNTY0NzAwNTU5NjY2IiwKICAgICAgImltYWdlX2Zyb250X3NtYWxsX3VybCI6Imh0dHBzOi8vaW1hZ2VzLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL3Byb2R1Y3RzLzM1Ni80NzAvMDU1Lzk2NjYvZnJvbnRfZnIuNy4yMDAuanBnIiwKICAgICAgInByb2R1Y3RfZGlzcGxheV9uYW1lIjoiU2F2b24gZGVybWF0b2xvZ2lxdWUgVmlzYWdlICYgQ29ycHMg4oCTIE1hcnF1ZSBSZXDDqHJlIOKAkyAxMDDCoGciLAogICAgICAidXJsIjoiaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL3Byb2R1Y3QvMzU2NDcwMDU1OTY2Ni9zYXZvbi1kZXJtYXRvbG9naXF1ZS12aXNhZ2UtY29ycHMtbWFycXVlLXJlcGVyZSIKICAgfQpdCjsKdmFyIHByb2R1Y3RfdHlwZSA9ICJiZWF1dHkiOwo8L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvcHJvZHVjdC1wcmVmZXJlbmNlcy5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL3Byb2R1Y3Qtc2VhcmNoLmpzIj48L3NjcmlwdD4KCjxzY3JpcHQ+CiQoZG9jdW1lbnQpLmZvdW5kYXRpb24oewoJZXF1YWxpemVyIDogewoJCWVxdWFsaXplX29uX3N0YWNrOiB0cnVlCgl9LAoJYWNjb3JkaW9uOiB7CgkJY2FsbGJhY2sgOiBmdW5jdGlvbiAoYWNjb3JkaW9uKSB7CgkJCSQoZG9jdW1lbnQpLmZvdW5kYXRpb24oJ2VxdWFsaXplcicsICdyZWZsb3cnKTsKCQl9Cgl9Cn0pOwoKPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CnsKCSJAY29udGV4dCIgOiAiaHR0cHM6Ly9zY2hlbWEub3JnIiwKCSJAdHlwZSIgOiAiV2ViU2l0ZSIsCgkibmFtZSIgOiAiT3BlbiBCZWF1dHkgRmFjdHMiLAoJInVybCIgOiAiaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnIiwKCSJwb3RlbnRpYWxBY3Rpb24iOiB7CgkJIkB0eXBlIjogIlNlYXJjaEFjdGlvbiIsCgkJInRhcmdldCI6ICJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmcvY2dpL3NlYXJjaC5wbD9zZWFyY2hfdGVybXM9P3tzZWFyY2hfdGVybV9zdHJpbmd9IiwKCQkicXVlcnktaW5wdXQiOiAicmVxdWlyZWQgbmFtZT1zZWFyY2hfdGVybV9zdHJpbmciCgl9Cn0KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CnsKCSJAY29udGV4dCI6ICJodHRwczovL3NjaGVtYS5vcmcvIiwKCSJAdHlwZSI6ICJPcmdhbml6YXRpb24iLAoJInVybCI6ICJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmciLAoJImxvZ28iOiAiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvbG9nb3Mvb2JmLWxvZ28tdmVydGljYWwtbGlnaHQuc3ZnIiwKCSJuYW1lIjogIk9wZW4gQmVhdXR5IEZhY3RzIiwKCSJzYW1lQXMiIDogWyJodHRwczovL3d3dy5mYWNlYm9vay5jb20vb3BlbmZvb2RmYWN0cz91dG1fc291cmNlPW9iZiZ1dGZfbWVkaXVtPXdlYiIsICJodHRwczovL3guY29tL09wZW5Gb29kRmFjdHMiXQp9Cjwvc2NyaXB0PgoKCgoKCjwvYm9keT4KPC9odG1sPgoKPCEtLSBkYXRhX2RlYnVnOiBkYXRhX2RlYnVnIHN0YXJ0CnBsYXRmb3JtOiBwdWJsaWMKY2FuX3VzZV9jYWNoZTogMQpjYWNoZV9oaXQKLS0+Cgo8IS0tIGVuZCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9zaXRlX2xheW91dC50dC5odG1sIC0tPgo=
98
+ recorded_at: Mon, 29 Sep 2025 14:07:12 GMT
99
+ recorded_with: VCR 6.3.1