openbeautyfacts 0.10.0 → 0.11.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.
- checksums.yaml +4 -4
- data/lib/openbeautyfacts/version.rb +1 -1
- metadata +1 -33
- data/test/fixtures/additives.yml +0 -48
- data/test/fixtures/brands.yml +0 -48
- data/test/fixtures/entry_dates.yml +0 -48
- data/test/fixtures/entry_dates_locale.yml +0 -48
- data/test/fixtures/faq.yml +0 -48
- data/test/fixtures/fetch_product_3600550362626.yml +0 -54
- data/test/fixtures/index.yml +0 -48
- data/test/fixtures/ingredients.yml +0 -99
- data/test/fixtures/ingredients_locale.yml +0 -99
- data/test/fixtures/last_edit_dates.yml +0 -48
- data/test/fixtures/last_edit_dates_locale.yml +0 -48
- data/test/fixtures/login_user.yml +0 -363
- data/test/fixtures/mission.yml +0 -48
- data/test/fixtures/missions.yml +0 -48
- data/test/fixtures/number_of_ingredients_locale.yml +0 -48
- data/test/fixtures/numbers_of_ingredients.yml +0 -48
- data/test/fixtures/press.yml +0 -48
- data/test/fixtures/product_3600550362626.yml +0 -54
- data/test/fixtures/product_states.yml +0 -48
- data/test/fixtures/product_states_locale.yml +0 -48
- data/test/fixtures/products_for_brand.yml +0 -99
- data/test/fixtures/products_for_entry_date.yml +0 -99
- data/test/fixtures/products_for_ingredient.yml +0 -99
- data/test/fixtures/products_for_last_edit_date.yml +0 -99
- data/test/fixtures/products_for_number_of_ingredients.yml +0 -99
- data/test/fixtures/products_for_period_after_opening.yml +0 -99
- data/test/fixtures/products_for_state.yml +0 -99
- data/test/fixtures/products_with_additive.yml +0 -99
- data/test/fixtures/search_doux.yml +0 -105
- data/test/fixtures/search_doux_1_000_000.yml +0 -54
- data/test/minitest_helper.rb +0 -20
- data/test/test_openbeautyfacts.rb +0 -363
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
http_interactions:
|
|
3
|
-
- request:
|
|
4
|
-
method: get
|
|
5
|
-
uri: https://fr.openbeautyfacts.org/facets/dates-de-derniere-modification
|
|
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: 200
|
|
19
|
-
message: OK
|
|
20
|
-
headers:
|
|
21
|
-
Connection:
|
|
22
|
-
- close
|
|
23
|
-
Content-Type:
|
|
24
|
-
- text/html; charset=UTF-8
|
|
25
|
-
Date:
|
|
26
|
-
- Mon, 29 Sep 2025 14:07:19 GMT
|
|
27
|
-
Expires:
|
|
28
|
-
- Sun, 28 Sep 2025 14:07:19 GMT
|
|
29
|
-
Server:
|
|
30
|
-
- nginx/1.18.0
|
|
31
|
-
Transfer-Encoding:
|
|
32
|
-
- chunked
|
|
33
|
-
Vary:
|
|
34
|
-
- Accept-Encoding
|
|
35
|
-
X-Content-Type-Options:
|
|
36
|
-
- nosniff
|
|
37
|
-
X-Download-Options:
|
|
38
|
-
- noopen
|
|
39
|
-
X-Request-Id:
|
|
40
|
-
- ezJ6619RDtj4Ubpy
|
|
41
|
-
X-Xss-Protection:
|
|
42
|
-
- 1; mode=block
|
|
43
|
-
body:
|
|
44
|
-
encoding: ASCII-8BIT
|
|
45
|
-
string: !binary |-
|
|
46
|
-
PCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9zaXRlX2xheW91dC50dC5odG1sIC0tPgoKPCFkb2N0eXBlIGh0bWw+CjxodG1sIGNsYXNzPSJuby1qcyIgbGFuZz0iZnIiIGRhdGEtc2VydmVyZG9tYWluPSJvcGVuYmVhdXR5ZmFjdHMub3JnIiBkaXI9Imx0ciI+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPHRpdGxlPkxpc3RlIGRlcyBEYXRlcyBkZSBkZXJuacOocmUgbW9kaWZpY2F0aW9uIOKAkyBGcmFuY2U8L3RpdGxlPgogICAgCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+Cgk8bWV0YSBwcm9wZXJ0eT0iZmI6YXBwX2lkIiBjb250ZW50PSIyMTkzMzEzODE1MTgwNDEiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9ImZvb2QiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJMaXN0ZSBkZXMgRGF0ZXMgZGUgZGVybmnDqHJlIG1vZGlmaWNhdGlvbiDigJMgRnJhbmNlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vZnIub3BlbmJlYXV0eWZhY3RzLm9yZy9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzEiPgogICAgCiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vc3RhdGljLm9wZW5mb29kZmFjdHMub3JnL2ltYWdlcy9sb2dvcy9vYmYtbG9nby12ZXJ0aWNhbC13aGl0ZS1zb2NpYWwtbWVkaWEtcHJldmlldy5wbmciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJVbmUgYmFzZSBkZSBkb25uw6llcyBjb2xsYWJvcmF0aXZlLCBncmF0dWl0ZSBldCBvdXZlcnRlIHN1ciBsZXMgaW5ncsOpZGllbnRzLCBldCBkZXMgaW5mb3JtYXRpb25zIHN1ciBsZXMgcHJvZHVpdHMgY29zbcOpdGlxdWVzIGR1IG1vbmRlIGVudGllciI+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxODB4MTgwIiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL2FwcGxlLXRvdWNoLWljb24ucG5nIj4KPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS9wbmciIHNpemVzPSIzMngzMiIgaHJlZj0iL2ltYWdlcy9mYXZpY29uL29iZi9mYXZpY29uLTMyeDMyLnBuZyI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMTZ4MTYiIGhyZWY9Ii9pbWFnZXMvZmF2aWNvbi9vYmYvZmF2aWNvbi0xNngxNi5wbmciPgo8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL3NpdGUud2VibWFuaWZlc3QiPgo8bGluayByZWw9Im1hc2staWNvbiIgaHJlZj0iL2ltYWdlcy9mYXZpY29uL29iZi9zYWZhcmktcGlubmVkLXRhYi5zdmciIGNvbG9yPSIjNWJiYWQ1Ij4KPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL2Zhdmljb24uaWNvIj4KPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlQ29sb3IiIGNvbnRlbnQ9IiMyYjU3OTciPgo8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLWNvbmZpZyIgY29udGVudD0iL2ltYWdlcy9mYXZpY29uL29iZi9icm93c2VyY29uZmlnLnhtbCI+CjxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZmZmZmZmIj4KCgk8bWV0YSBuYW1lPSJhcHBsZS1pdHVuZXMtYXBwIiBjb250ZW50PSJhcHAtaWQ9NTg4Nzk3OTQ4Ij4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL2ZyLm9wZW5iZWF1dHlmYWN0cy5vcmcvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8xIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9jc3MvZGlzdC9hcHAtbHRyLmNzcz92PTE3NTc2NTgxMDIiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2Nzcy9kaXN0L2pxdWVyeXVpL3RoZW1lcy9iYXNlL2pxdWVyeS11aS5jc3MiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2Nzcy9kaXN0L3NlbGVjdDIubWluLmNzcyI+CiAgICA8bGluayByZWw9InNlYXJjaCIgaHJlZj0iaHR0cHM6Ly9mci5vcGVuYmVhdXR5ZmFjdHMub3JnL2NnaS9vcGVuc2VhcmNoLnBsIiB0eXBlPSJhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIiB0aXRsZT0iT3BlbiBCZWF1dHkgRmFjdHMiPgogICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L29mZi13ZWJjb21wb25lbnRzLmJ1bmRsZWQuanMiPjwvc2NyaXB0PgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2RhdGF0YWJsZXMubWluLmNzcyI+CgogICAgPHN0eWxlIG1lZGlhPSJhbGwiPgogICAgICAgIC5zaG93LXdoZW4tbm8tYWNjZXNzLXRvLXByb2R1Y2Vycy1wbGF0Zm9ybSB7ZGlzcGxheTpub25lfQouc2hvdy13aGVuLWxvZ2dlZC1pbiB7ZGlzcGxheTpub25lfQoKCQkKCQkuYmFkZ2UtY29udGFpbmVyewoJCQltYXJnaW46IDAgYXV0bzsKCQl9CgoJCS5iYWRnZS1jb250YWluZXIgaW1newoJCQltYXJnaW46IDVweDsKCQl9CgkJQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MzdweCApIGFuZCAobWluLXdpZHRoOiAyODBweCkgewoJCQkuYmFkZ2UtY29udGFpbmVyewoJCQkJd2lkdGg6IDI4MHB4OwoJCQl9CgkJfQoJCUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjc5cHggKXsKCQkJLmJhZGdlLWNvbnRhaW5lcnsKCQkJCXdpZHRoOiAxMzBweDsKCQkJfQoJCX0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHkgY2xhc3M9Imxpc3Rfb2ZfdGFnc19wYWdlIj4KCgk8IS0tIE1hdG9tbyAtLT4KPHNjcmlwdD4KICB2YXIgX3BhcSA9IHdpbmRvdy5fcGFxID0gd2luZG93Ll9wYXEgfHwgW107CiAgLyogdHJhY2tlciBtZXRob2RzIGxpa2UgInNldEN1c3RvbURpbWVuc2lvbiIgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgInRyYWNrUGFnZVZpZXciICovCiAgX3BhcS5wdXNoKFsic2V0RG9jdW1lbnRUaXRsZSIsIGRvY3VtZW50LmRvbWFpbiArICIvIiArIGRvY3VtZW50LnRpdGxlXSk7CiAgX3BhcS5wdXNoKFsic2V0Q29va2llRG9tYWluIiwgIioub3BlbmJlYXV0eWZhY3RzLm9yZyJdKTsKICBfcGFxLnB1c2goWyJzZXREb21haW5zIiwgWyIqLm9wZW5iZWF1dHlmYWN0cy5vcmciXV0pOwogIF9wYXEucHVzaChbInNldERvTm90VHJhY2siLCB0cnVlXSk7CiAgX3BhcS5wdXNoKFsiZGlzYWJsZUNvb2tpZXMiXSk7CiAgX3BhcS5wdXNoKFsndHJhY2tQYWdlVmlldyddKTsKICBfcGFxLnB1c2goWydlbmFibGVMaW5rVHJhY2tpbmcnXSk7CiAgKGZ1bmN0aW9uKCkgewogICAgdmFyIHU9Ii8vYW5hbHl0aWNzLm9wZW5mb29kZmFjdHMub3JnLyI7CiAgICBfcGFxLnB1c2goWydzZXRUcmFja2VyVXJsJywgdSsnbWF0b21vLnBocCddKTsKICAgIF9wYXEucHVzaChbJ3NldFNpdGVJZCcsICcxMCddKTsKICAgIHZhciBkPWRvY3VtZW50LCBnPWQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksIHM9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgICBnLmFzeW5jPXRydWU7IGcuc3JjPXUrJ21hdG9tby5qcyc7IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxzKTsKICB9KSgpOwo8L3NjcmlwdD4KPG5vc2NyaXB0PjxwPjxpbWcgc3JjPSIvL2FuYWx5dGljcy5vcGVuZm9vZGZhY3RzLm9yZy9tYXRvbW8ucGhwP2lkc2l0ZT0xMCZhbXA7cmVjPTEiIHN0eWxlPSJib3JkZXI6MDsiIGFsdD0iIiAvPjwvcD48L25vc2NyaXB0PgoKCgk8b2ZmLXdlYmNvbXBvbmVudHMtY29uZmlndXJhdGlvbgogIGxhbmd1YWdlLWNvZGU9ImZyIgogIGNvdW50cnktY29kZT0iZnIiCiAgcm9ib3RvZmYtY29uZmlndXJhdGlvbj0newogICAgImFwaVVybCI6ICJodHRwczovL3JvYm90b2ZmLm9wZW5mb29kZmFjdHMub3JnL2FwaS92MSIsCiAgICAiaW1nVXJsIjogImh0dHBzOi8vaW1hZ2VzLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL3Byb2R1Y3RzIgogIH0nCiAgCiAgb3BlbmZvb2RmYWN0cy1hcGktdXJsPSJodHRwczovL2ZyLm9wZW5iZWF1dHlmYWN0cy5vcmciCiAgYXNzZXRzLWltYWdlcy1wYXRoPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2Nzcy9kaXN0L2ltYWdlcyIKICA+PC9vZmYtd2ViY29tcG9uZW50cy1jb25maWd1cmF0aW9uPgoJCgkKCTxkaXYgY2xhc3M9InNraXAiPjxhIGhyZWY9IiNjb250ZW50IiB0YWJpbmRleD0iMCI+QWxsZXIgYXUgY29udGVudTwvYT48L2Rpdj4KCQoKCTxkaXYgaWQ9ImJhcmNvZGUtc2Nhbm5lci1tb2RhbCIgY2xhc3M9Im1vZGFsIGlzX2hpZGRlbiI+CiAgPGRpdiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AiPjwvZGl2PgogIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPgogICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgPHNwYW4+PGgyPlNjYW5uZXogdW4gcHJvZHVpdDxoMj48L3NwYW4+CiAgICAgIDxidXR0b24gY2xhc3M9Im1vZGFsLWNsb3NlLWJ1dHRvbiI+JnRpbWVzOzwvYnV0dG9uPgogICAgPC9kaXY+CiAgICA8ZGl2PgogICAgICA8YmFyY29kZS1zY2FubmVyIGlkPSJiYXJjb2RlLXNjYW5uZXIiPjwvYmFyY29kZS1zY2FubmVyPgogICAgPC9kaXY+CiAgICA8ZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2ID4KICAgICAgPGxhYmVsIGZvcj0iYmFyY29kZS1tb2RhbC1pbnB1dCI+T3UgZW50cmV6IGxlIGNvZGUtYmFycmVzIG1hbnVlbGxlbWVudDwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9ImJhcmNvZGUtbW9kYWwtZ3JvdXAiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYmFyY29kZS1tb2RhbC1pbnB1dCIgY2xhc3M9ImJhcmNvZGUtbW9kYWwtaW5wdXQiIGlucHV0bW9kZT0ibnVtZXJpYyIgcGF0dGVybj0iXGQqIiAvPgogICAgICAgIDxidXR0b24gY2xhc3M9ImJhcmNvZGUtbW9kYWwtYnV0dG9uIGJ1dHRvbiIgaWQ9ImJhcmNvZGUtbW9kYWwtYnV0dG9uIiBkaXNhYmxlZD5TY2FubmVyPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CjwvZGl2PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9iYXJjb2RlLXNjYW5uZXIuanMiPjwvc2NyaXB0PgoKCgk8ZGl2IGlkPSJwYWdlIj4KCQkKCQk8ZGl2IGNsYXNzPSJ1cHBlci1uYXYgY29udGFpbi10by1ncmlkIiAgaWQ9InVwTmF2Ij4KCQkJPG5hdiBjbGFzcz0idG9wLWJhciAiIGRhdGEtdG9wYmFyIHJvbGU9Im5hdmlnYXRpb24iPgoJCQkJCgkJCQk8c2VjdGlvbiBjbGFzcz0idG9wLWJhci1zZWN0aW9uIj4KCQkJCQkKCQkJCQk8IS0tIExlZnQgTmF2IFNlY3Rpb24gLS0+CgkJCQkJPHVsIGNsYXNzPSJsZWZ0Ij4KCgkJCQkJCTxsaSBjbGFzcz0iaGFzLWRyb3Bkb3duIj4KCQkJCQkJCTxhIGlkPSJtZW51X2xpbmsiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSJtYXRlcmlhbC1pY29ucyI+CgkJCQkJCQkJCW1lbnUKCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCQk8dWwgY2xhc3M9ImRyb3Bkb3duIj4JCQkJCgkJCQkJCQkJCgkJCQkJCQkJCTxsaT48YSBocmVmPSIvZGVjb3V2cmlyIj5Ew6ljb3V2cmlyPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSIvY29udHJpYnVlciI+Q29udHJpYnVlcjwvYT48L2xpPgoJCQkJCQkJCQk8bGkgY2xhc3M9ImRpdmlkZXIiPjwvbGk+CgkJCQkJCQkJCTxsaT48bGFiZWw+QWpvdXRlciBkZXMgcHJvZHVpdHM8L2xhYmVsPjwvbGk+CiAgICAgICAgICAgICAgICA8IS0tIEZvciByZWZlcmVuY2U6IGdldF90aGVfYXBwX2xpbmtfb2ZmIiA9IC9vcGVuLWZvb2QtZmFjdHMtbW9iaWxlLWFwcCIgLS0+CgkJCQkJCQkJCTxsaT48YSBocmVmPSIvYXBwbGljYXRpb24tbW9iaWxlLW9wZW4tYmVhdXR5LWZhY3RzP3V0bV9zb3VyY2U9b2ZmJnV0Zl9tZWRpdW09d2ViJnV0bV9jYW1wYWlnbj1wcm9fcGxhdGZvcm1faW5zdGFsbF90aGVfYXBwX3RvX2FkZF9wcm9kdWN0c19mciI+SW5zdGFsbGV6IGwnYXBwbGljYXRpb24gcG91ciBham91dGVyIGRlcyBwcm9kdWl0czwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL2NnaS9wcm9kdWN0LnBsP3R5cGU9c2VhcmNoX29yX2FkZCZhY3Rpb249ZGlzcGxheSI+QWpvdXRlciB1biBwcm9kdWl0PC9hPjwvbGk+CgkJCQkJCQkJCgoJCQkJCQkJCTxsaSBjbGFzcz0iZGl2aWRlciI+PC9saT4KCQkJCQkJCQk8bGk+PGxhYmVsPlJlY2hlcmNoZXIgZXQgYW5hbHlzZXIgZGVzIHByb2R1aXRzPC9sYWJlbD48L2xpPgoKCQkJCQkJCQk8bGk+CgkJCQkJCQkJCTxhIGhyZWY9Ii9jZ2kvc2VhcmNoLnBsIj5SZWNoZXJjaGUgYXZhbmPDqWU8L2E+CgkJCQkJCQkJPC9saT4KCQkJCQkJCQk8bGk+CgkJCQkJCQkJCTxhIGhyZWY9Ii9jZ2kvc2VhcmNoLnBsP2dyYXBoPTEiPkdyYXBoaXF1ZXMgZXQgY2FydGVzPC9hPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQkJCgkJCQkJCQk8L3VsPgoJCQkJCQk8L2xpPgoJCQkJCQkKCQkJCQkJPGxpPgoJCQkJCQkJPHVsIGNsYXNzPSJjb3VudHJ5X2xhbmd1YWdlX3NlbGVjdGlvbiI+CgkJCQkJCQkJPGxpIGNsYXNzPSJoYXMtZm9ybSBoYXMtZHJvcGRvd24iIGlkPSJzZWxlY3RfY291bnRyeV9saSI+CgkJCQkJCQkJCTxzZWxlY3QgaWQ9InNlbGVjdF9jb3VudHJ5IiBzdHlsZT0id2lkdGg6MTAwJSIgZGF0YS1wbGFjZWhvbGRlcj0iUGF5cyI+CgkJCQkJCQkJCQk8b3B0aW9uPjwvb3B0aW9uPgoJCQkJCQkJCQk8L3NlbGVjdD4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJCTxsaSBjbGFzcz0iaGFzLWRyb3Bkb3duIj4KCQkJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly9mci5vcGVuYmVhdXR5ZmFjdHMub3JnLyI+RnJhbsOnYWlzPC9hPgoKCQkJCQkJCQkJPHVsIGNsYXNzPSJkcm9wZG93biI+CgkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly9mci1lbi5vcGVuYmVhdXR5ZmFjdHMub3JnLyI+RW5nbGlzaDwvYT48L2xpPgoJCQkJCQkJCQk8L3VsPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQk8L3VsPgoJCQkJCQk8L2xpPgoJCQkJCTwvdWw+CgoKCQkJCQk8IS0tIFJpZ2h0IE5hdiBTZWN0aW9uIC0tPgoJCQkJCQoJCQkJCTx1bCBjbGFzcz0icmlnaHQiPgoJCQkJCQkKCQkJCQkJCTxsaSBjbGFzcz0iaC1zcGFjZS10aW55IGhhcy1mb3JtIj4KCQkJCQkJCQk8YSBocmVmPSIvY2dpL3Nlc3Npb24ucGwiIGNsYXNzPSJyb3VuZCBidXR0b24gc2Vjb25kYXJ5Ij4KCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1hdGVyaWFsLWljb25zIG1hdGVyaWFsLXN5bWJvbHMtYnV0dG9uIj5hY2NvdW50X2NpcmNsZTwvc3Bhbj4KCQkJCQkJCQkJU2UgY29ubmVjdGVyCgkJCQkJCQkJPC9hPgoJCQkJCQkJPC9saT4KCQkJCQkJCgkJCQkJPC91bD4KCQkJCTwvc2VjdGlvbj4KCQkJPC9uYXY+CgkJPC9kaXY+CgkJCgoJCTxkaXYgaWQ9Im1haW5fY29udGFpbmVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmUiIGNsYXNzPSJibG9ja19sYXR0ZSI+CgkJCgkJCgkJPGRpdiBjbGFzcz0idG9wYmFyc3RpY2t5Ij4KCQkJPGRpdiBjbGFzcz0iY29udGFpbi10by1ncmlkICIgaWQ9Im9mZk5hdiIgPgoJCQkJPG5hdiBjbGFzcz0idG9wLWJhciIgZGF0YS10b3BiYXIgcm9sZT0ibmF2aWdhdGlvbiIgPgoKCQkJCQk8dWwgY2xhc3M9InRpdGxlLWFyZWEiPgoJCQkJCQk8bGkgY2xhc3M9Im5hbWUiPgoJCQkJCQkJPGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjI5MnB4OyI+CgkJCQkJCQkJPGEgaHJlZj0iLyI+CgkJCQkJCQkJPGltZyBpZD0ibG9nbyIgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9sb2dvcy9vYmYtbG9nby1ob3Jpem9udGFsLWxpZ2h0LnN2ZyIgYWx0PSJPcGVuIEJlYXV0eSBGYWN0cyIgc3R5bGU9Im1hcmdpbjo4cHg7aGVpZ2h0OjQ4cHg7d2lkdGg6YXV0bzsiPgoJCQkJCQkJCQoJCQkJCQkJPC9hPgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvbGk+CgkJCQkJPC91bD4KCgkJCQkJCgkJCQkJCgkJCQkJPHNlY3Rpb24gY2xhc3M9InRvcC1iYXItc2VjdGlvbiI+CgkJCQkJCgkJCQkJCTx1bCBjbGFzcz0ibGVmdCBzbWFsbC00Ij4KCQkJCQkJCTxsaSBjbGFzcz0ic2VhcmNoLWxpIj4KCQkJCQkJCQoJCQkJCQkJCTxmb3JtIGFjdGlvbj0iL2NnaS9zZWFyY2gucGwiPgoJCQkJCQkJCTxkaXYgY2xhc3M9InJvdyI+PGRpdiBjbGFzcz0ic21hbGwtMTIiPgoJCQkJCQkJCTxkaXYgY2xhc3M9InJvdyBjb2xsYXBzZSBwb3N0Zml4LXJvdW5kIj4KCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sdW1ucyI+CgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iQ2hlcmNoZXIgdW4gcHJvZHVpdCIgbmFtZT0ic2VhcmNoX3Rlcm1zIiB2YWx1ZT0iIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZSI+CgkJCQkJCQkJCTxpbnB1dCBuYW1lPSJzZWFyY2hfc2ltcGxlIiB2YWx1ZT0iMSIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCQkJPGlucHV0IG5hbWU9ImFjdGlvbiIgdmFsdWU9InByb2Nlc3MiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJjb2x1bW5zIHBvc3RmaXgtYnV0dG9uLXdyYXBwZXIiPgoJCQkJCQkJCQk8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdGl0bGU9IlJlY2hlcmNoZXIiIGNsYXNzPSJidXR0b24gcG9zdGZpeCIgc3R5bGU9ImxpbmUtaGVpZ2h0Om5vcm1hbCI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+PC9idXR0b24+CgkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJjb2x1bW5zIHBvc3RmaXgtYnV0dG9uLXdyYXBwZXIgaXNfaGlkZGVuIj4KICA8YnV0dG9uCiAgICB0eXBlPSJidXR0b24iCiAgICB0aXRsZT0iU2Nhbm5leiB1biBwcm9kdWl0IgogICAgY2xhc3M9ImJ1dHRvbiBiYXJjb2RlLXNjYW5uZXItYnV0dG9uIgogICAgaWQ9ImJhcmNvZGUtc2Nhbm5lci1idXR0b24iCiAgPgogICAgPHN2ZyBzdHlsZT0id2lkdGg6MjRweDtoZWlnaHQ6MjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0yLDZINFYxOEgyVjZNNSw2SDZWMThINVY2TTcsNkgxMFYxOEg3VjZNMTEsNkgxMlYxOEgxMVY2TTE0LDZIMTZWMThIMTRWNk0xNyw2SDIwVjE4SDE3VjZNMjEsNkgyMlYxOEgyMVY2WiIvPjwvc3ZnPgogIDwvYnV0dG9uPgoKICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2JhcmNvZGUtc2Nhbm5lci1idXR0b24uanMiPjwvc2NyaXB0Pgo8L2Rpdj4KCgkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJPC9kaXY+PC9kaXY+CgkJCQkJCQkJPC9mb3JtPgoJCQkJCQkJPC9saT4KCQkJCQkJPC91bD4KCQkJCQk8dWwgY2xhc3M9InNlYXJjaF9hbmRfbGlua3MiPgoJCQkJCQk8bGk+PGEgaHJlZj0iL2RlY291dnJpciIgY2xhc3M9InRvcC1iYXItbGlua3MiPkTDqWNvdXZyaXI8L2E+PC9saT4KCQkJCQkJPGxpPjxhIGhyZWY9Ii9jb250cmlidWVyIiBjbGFzcz0idG9wLWJhci1saW5rcyI+Q29udHJpYnVlcjwvYT48L2xpPgoJCQkJCQk8bGkgY2xhc3M9InNob3ctZm9yLXhsYXJnZS11cCI+PGEgaHJlZj0iaHR0cHM6Ly9mci5wcm8ub3BlbmZvb2RmYWN0cy5vcmcvIiBjbGFzcz0idG9wLWJhci1saW5rcyI+UHJvZHVjdGV1cnM8L2E+PC9saT4KCQkJCQkJPGxpIGNsYXNzPSJmbGV4LWdyaWQgZ2V0YXBwIj48YSBocmVmPSIvYXBwbGljYXRpb24tbW9iaWxlLW9wZW4tYmVhdXR5LWZhY3RzP3V0bV9zb3VyY2U9b2ZmJnV0Zl9tZWRpdW09d2ViJnV0bV9jYW1wYWlnbj1zZWFyY2hfYW5kX2xpbmtzX3Byb21vX2ZyIiBjbGFzcz0iYnV0dG9uYmFyIGJ1dHRvbiIgc3R5bGU9InRvcDowOyI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTYgMUg4QzYuMzQgMSA1IDIuMzQgNSA0djE2YzAgMS42NiAxLjM0IDMgMyAzaDhjMS42NiAwIDMtMS4zNCAzLTNWNGMwLTEuNjYtMS4zNC0zLTMtM3ptLTIgMjBoLTR2LTFoNHYxem0zLjI1LTNINi43NVY0aDEwLjV2MTR6Ii8+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPiA8c3BhbiBjbGFzcz0iYnQtdGV4dCI+SW5zdGFsbGVyIGwnYXBwPC9zcGFuPjwvYT48L2xpPgoJCQkJPCEtLSBGb3IgcmVmZXJlbmNlOiBnZXRfdGhlX2FwcF9saW5rX29mZiIgPSAvb3Blbi1mb29kLWZhY3RzLW1vYmlsZS1hcHAiIC0tPgogICAgICAgICAgPC91bD4KCQkJCQk8L3NlY3Rpb24+CgkJCQkJCgkJCQk8L25hdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgoJCgkKCQk8bmF2IGNsYXNzPSJ0YWItYmFyIGhpZGUiPgoJCQk8ZGl2IGNsYXNzPSJsZWZ0LXNtYWxsIj4KCQkJCTxhIGhyZWY9IiNpZE9mTGVmdE1lbnUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1jb250cm9scz0iaWRPZkxlZnRNZW51IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgY2xhc3M9ImxlZnQtb2ZmLWNhbnZhcy10b2dnbGUgYnV0dG9uIHBvc3RmaXggYW5vbnltb3VzIj4KCQkJCTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGNsYXNzPSJpY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTMgNXYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0ySDVjLTEuMTEgMC0yIC45LTIgMnptMTIgNGMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zIDMgMS4zNCAzIDN6bS05IDhjMC0yIDQtMy4xIDYtMy4xczYgMS4xIDYgMy4xdjFINnYtMXoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJtaWRkbGUgdGFiLWJhci1zZWN0aW9uIj4KCQkJCTxmb3JtIGFjdGlvbj0iL2NnaS9zZWFyY2gucGwiPgoJCQkJCTxkaXYgY2xhc3M9InJvdyBjb2xsYXBzZSI+CgkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTggY29sdW1ucyI+CgkJCQkJCQk8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkNoZXJjaGVyIHVuIHByb2R1aXQiIG5hbWU9InNlYXJjaF90ZXJtcyI+CgkJCQkJCQk8aW5wdXQgbmFtZT0ic2VhcmNoX3NpbXBsZSIgdmFsdWU9IjEiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQk8aW5wdXQgbmFtZT0iYWN0aW9uIiB2YWx1ZT0icHJvY2VzcyIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTIgY29sdW1ucyI+CgkJCQkJCQk8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ1dHRvbiBwb3N0Zml4Ij48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz48L2J1dHRvbj4KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTIgY29sdW1ucyI+CgkJCQkJCQk8YSBocmVmPSIvY2dpL3NlYXJjaC5wbCIgdGl0bGU9IlJlY2hlcmNoZSBhdmFuY8OpZSI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+IDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGNsYXNzPSJpY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+PC9hPgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvZm9ybT4KCQkJPC9kaXY+CgkJPC9uYXY+CgkJCgoJCTxkaXYgaWQ9ImNvbnRlbnQiIGNsYXNzPSJvZmYtY2FudmFzLXdyYXAgYmxvY2tfbGF0dGUiIGRhdGEtb2ZmY2FudmFzPgoJCQk8ZGl2IGNsYXNzPSJpbm5lci13cmFwIj4KCQkJCgkJCQk8YSBjbGFzcz0iZXhpdC1vZmYtY2FudmFzIj48L2E+CgoJCQkJCgkJCQkKCQkJCTwhLS0gZnVsbCB3aWR0aCBiYW5uZXIgb24gbW9iaWxlIC0tPgoJCQkJCgkJCQkKCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJtYWluIGJsb2NrX2xpZ2h0Ij4KCQkJCQk8ZGl2IGlkPSJtYWluX2NvbHVtbiI+CgoJCQkJCQkKCQkJCQkJCgkJCQkJCQkKCQkJCQkJCQoJCQkJCQkJCTwhLS0gc3RhcnQgdGVtcGxhdGVzL3dlYi9jb21tb24vaW5jbHVkZXMvZG9uYXRlX2Jhbm5lci50dC5odG1sIC0tPgoKCgo8IS0tIERvbmF0aW9uIGJhbm5lciBAIGZvb3RlciAtLT4KCgo8IS0tIGVuZCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9pbmNsdWRlcy9kb25hdGVfYmFubmVyLnR0Lmh0bWwgLS0+CgoJCQkJCQkJCQoKCjxzZWN0aW9uIGlkPSJkb25hdGlvbi1iYW5uZXItdG9wIiBjbGFzcz0icm93IiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmUiPgogIAogIDxhIGhyZWY9Imh0dHBzOi8vY29ubmVjdC5vcGVuZm9vZGZhY3RzLm9yZy9mci9ldmVudC9vcGVuLWZvb2QtZmFjdHMtZGF5cy0yMDI1LTMwL3JlZ2lzdGVyIj4KICAgIDxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvZG9uYXRpb24tYmFubmVycy9vZmYtZGF5cy0yMDI1LWZyLjEyODB4MTkxLnBuZyIKICAgICAgIGFsdD0iSm91cm7DqWVzIE9wZW4gRm9vZCBGYWN0cyAyMDI1IgogICAgICAgd2lkdGg9IjEyODAiCiAgICAgICBoZWlnaHQ9IjE5MSIgY2xhc3M9InNob3ctZm9yLW1lZGl1bS11cCIvPgogICAgICAgPGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9kb25hdGlvbi1iYW5uZXJzL29mZi1kYXlzLTIwMjUtZnIubW9iaWxlLnBuZyIKICAgICAgIGFsdD0iSm91cm7DqWVzIE9wZW4gRm9vZCBGYWN0cyAyMDI1IgogICAgICAgd2lkdGg9IjEyODAiCiAgICAgICBoZWlnaHQ9IjQ3NyIgY2xhc3M9InNob3ctZm9yLXNtYWxsLW9ubHkiLz4gICAgICAgCiAgPC9hPiAgCiAgCgoKICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXJfX2Nsb3NlIj4KICAgIDxidXR0b24gaWQ9ImhpZGUtZG9uYXRlLWJhbm5lciIgY2xhc3M9Im1hdGVyaWFsLWljb25zIG1vZGVzdCIgb25jbGljaz0iRG9uYXRpb25CdXR0b24oKTsiIG9ua2V5cHJlc3M9IkRvbmF0aW9uQnV0dG9uKCk7Ij5jbG9zZTwvYnV0dG9uPgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2NyaXB0PgogIGxldCBkID0gbmV3IERhdGUoKTsKICBsZXQgYmFubmVySUQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9uYXRpb24tYmFubmVyLXRvcCcpOwogIGxldCBnZXREb21haW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luLnNwbGl0KCcuJyk7CgogIGZ1bmN0aW9uIHNldEJhbm5lckNvb2tpZShiY25hbWUsIGJjdmFsLCBiY2V4ZGF5cykgewogICAgZC5zZXRUaW1lKGQuZ2V0VGltZSgpICsgKGJjZXhkYXlzKjYwKjYwKjI0KjEwMDApKTsKICAgIGxldCBleHBpcmVzID0gJ2V4cGlyZXM9JyArIGQudG9VVENTdHJpbmcoKTsKICAgIC8vIEFwcGx5IGNvb2tpZSBmb3IgZXZlcnkgZG9tYWluIGNvbnRhaW5zIG9wZW4uLi5mYWN0cwogICAgbGV0IGRvbWFpbiA9ICdkb21haW49LicgKyBnZXREb21haW4uc2xpY2UoMSkuam9pbignLicpOwogICAgZG9jdW1lbnQuY29va2llID0gYmNuYW1lICsgJz0nICsgYmN2YWwgKyAnOycgKyBleHBpcmVzICsgJzsnICsgZG9tYWluICsgJztTYW1lU2l0ZT1Ob25lO1NlY3VyZTtwYXRoPS8nOwogIH0KCiAgZnVuY3Rpb24gZ2V0QmFubmVyQ29va2llKGJjbmFtZSkgewogICAgY29uc3QgbmFtZSA9IGJjbmFtZSArICc9JzsKICAgIGNvbnN0IGRlY29kZWRDb29raWVzID0gZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZSk7CiAgICBjb25zdCBjb29raWVzID0gZGVjb2RlZENvb2tpZXMuc3BsaXQoJzsnKTsKICAgIGZvciAoY29uc3QgY29va2llIG9mIGNvb2tpZXMpIHsKICAgICAgbGV0IGMgPSBjb29raWU7CiAgICAgIHdoaWxlIChjLmNoYXJBdCgwKSA9PSAnICcpIHsgYyA9IGMuc3Vic3RyaW5nKDEpOyB9CiAgICAgIGlmIChjLmluZGV4T2YobmFtZSkgPT0gMCkgeyByZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKTsgfQogICAgfQoKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIERvbmF0aW9uQnV0dG9uKCkgewogICAgc2V0QmFubmVyQ29va2llKCdvZmZfZGF5c18yMDI1JywgMSwgMTgwKTsKICAgIGJhbm5lcklELnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgfQoKICBpZiAoZ2V0QmFubmVyQ29va2llKCdvZmZfZGF5c18yMDI1JykgIT09ICcnKSB7CiAgICBiYW5uZXJJRC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogIH0gZWxzZSB7CiAgICBiYW5uZXJJRC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOwogIH0KPC9zY3JpcHQ+CgoKCQkJCQkJCQoJCQkJCQkKCQkJCQkJCiAgICAgICAgICAgIAkJCQoJCQkJCQkKCQkJCQkJCTxkaXYgY2xhc3M9InJvdyI+CgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMTIgY29sdW1uIj4KCQkJCQkJCQkJPGgxIGNsYXNzPSJpZi1lbXB0eS1kbm9uZSI+TGlzdGUgZGVzIERhdGVzIGRlIGRlcm5pw6hyZSBtb2RpZmljYXRpb24g4oCTIEZyYW5jZTwvaDE+CgkJCQkJCQkJCTwhLS0gc3RhcnQgdGVtcGxhdGVzL3dlYi9wYWdlcy90YWcvdGFnLnR0Lmh0bWwgLS0+CjxkaXYgY2xhc3M9InRhZyI+CiAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxkaXYgY2xhc3M9ImxhcmdlLTYgY29sdW1uIj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhZ19uYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIAoKICAgICAgICAgICAgCiAgICAgICAgICAgIDxwPlBheXPCoDogRnJhbmNlCiAgICAgICAgICAgICAgICAtIDxhIGhyZWY9Imh0dHBzOi8vd29ybGQtZnIub3BlbmJlYXV0eWZhY3RzLm9yZy9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uIj5Wb2lyIGxhIGxpc3RlIHBvdXIgbGVzIHByb2R1aXRzIGNvcnJlc3BvbmRhbnRzIGR1IG1vbmRlIGVudGllcjwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAKCiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgoKICAgICAgICAKICAgIDwvZGl2Pgo8L2Rpdj4KCjwhLS0gZW5kIHRlbXBsYXRlcy93ZWIvcGFnZXMvdGFnL3RhZy50dC5odG1sIC0tPgo8cD4yOTAxIERhdGVzIGRlIGRlcm5pw6hyZSBtb2RpZmljYXRpb27CoDo8L3A+PGRpdiBzdHlsZT0ibWF4LXdpZHRoOjYwMHB4OyI+PHRhYmxlIGlkPSJ0YWdzdGFibGUiPgo8dGhlYWQ+PHRyPjx0aD5EYXRlIGRlIGRlcm5pw6hyZSBtb2RpZmljYXRpb248L3RoPjx0aD5Qcm9kdWl0czwvdGg+PC90cj48L3RoZWFkPgo8dGJvZHk+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNiIgY2xhc3M9InRhZyI+MjAxNjwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIwMTYiIGNsYXNzPSJ0YWciPjEzODk3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyIiBjbGFzcz0idGFnIj4yMDE2LTAyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMiIgY2xhc3M9InRhZyI+NjQxNjwvYT48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNSIgY2xhc3M9InRhZyI+MjAyNTwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIwMjUiIGNsYXNzPSJ0YWciPjYxMjM8L2E+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIwMTYtMDMiIGNsYXNzPSJ0YWciPjIwMTYtMDM8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzIiBjbGFzcz0idGFnIj41NTEyPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4IiBjbGFzcz0idGFnIj4yMDE4PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOCIgY2xhc3M9InRhZyI+MzY3MTwvYT48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNCIgY2xhc3M9InRhZyI+MjAyNDwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIwMjQiIGNsYXNzPSJ0YWciPjIwNjE8L2E+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIwMjEiIGNsYXNzPSJ0YWciPjIwMjE8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIxIiBjbGFzcz0idGFnIj4xNzU0PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE5IiBjbGFzcz0idGFnIj4yMDE5PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOSIgY2xhc3M9InRhZyI+MTYyMjwvYT48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wNSIgY2xhc3M9InRhZyI+MjAyNS0wNTwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIwMjUtMDUiIGNsYXNzPSJ0YWciPjEzMjY8L2E+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIwMjMiIGNsYXNzPSJ0YWciPjIwMjM8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIzIiBjbGFzcz0idGFnIj4xMjk3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIwIiBjbGFzcz0idGFnIj4yMDIwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMCIgY2xhc3M9InRhZyI+MTI1NDwvYT48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNyIgY2xhc3M9InRhZyI+MjAxNzwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIwMTciIGNsYXNzPSJ0YWciPjExMzY8L2E+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIwMTYtMDMtMDQiIGNsYXNzPSJ0YWciPjIwMTYtMDMtMDQ8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTA0IiBjbGFzcz0idGFnIj4xMTIxPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTA4IiBjbGFzcz0idGFnIj4yMDI1LTA4PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wOCIgY2xhc3M9InRhZyI+OTcxPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTA0IiBjbGFzcz0idGFnIj4yMDE2LTA0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wNCIgY2xhc3M9InRhZyI+OTEwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTI4IiBjbGFzcz0idGFnIj4yMDE2LTAyLTI4PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0yOCIgY2xhc3M9InRhZyI+ODczPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTEzIiBjbGFzcz0idGFnIj4yMDE2LTAyLTEzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0xMyIgY2xhc3M9InRhZyI+ODY1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTAyIiBjbGFzcz0idGFnIj4yMDI1LTAyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wMiIgY2xhc3M9InRhZyI+ODYwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTA1IiBjbGFzcz0idGFnIj4yMDE2LTA1PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wNSIgY2xhc3M9InRhZyI+ODM3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTA0IiBjbGFzcz0idGFnIj4yMDI1LTA0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wNCIgY2xhc3M9InRhZyI+NjkwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIyIiBjbGFzcz0idGFnIj4yMDIyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMiIgY2xhc3M9InRhZyI+Njc5PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTA2IiBjbGFzcz0idGFnIj4yMDE2LTAyLTA2PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0wNiIgY2xhc3M9InRhZyI+Njc3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTA5IiBjbGFzcz0idGFnIj4yMDE4LTA5PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0wOSIgY2xhc3M9InRhZyI+NjYwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTEwIiBjbGFzcz0idGFnIj4yMDE4LTEwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0xMCIgY2xhc3M9InRhZyI+NjI5PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI0LTEyIiBjbGFzcz0idGFnIj4yMDI0LTEyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNC0xMiIgY2xhc3M9InRhZyI+NTczPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTAzIiBjbGFzcz0idGFnIj4yMDI1LTAzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wMyIgY2xhc3M9InRhZyI+NTU0PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTA1LTE3IiBjbGFzcz0idGFnIj4yMDI1LTA1LTE3PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wNS0xNyIgY2xhc3M9InRhZyI+NTQzPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTA5IiBjbGFzcz0idGFnIj4yMDI1LTA5PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wOSIgY2xhc3M9InRhZyI+NTQyPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTA3IiBjbGFzcz0idGFnIj4yMDE2LTAzLTA3PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0wNyIgY2xhc3M9InRhZyI+NTI1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTExIiBjbGFzcz0idGFnIj4yMDE4LTExPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0xMSIgY2xhc3M9InRhZyI+NDkyPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIxLTA1IiBjbGFzcz0idGFnIj4yMDIxLTA1PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMS0wNSIgY2xhc3M9InRhZyI+NDgyPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTA1IiBjbGFzcz0idGFnIj4yMDE2LTAyLTA1PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0wNSIgY2xhc3M9InRhZyI+NDUxPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI0LTEwIiBjbGFzcz0idGFnIj4yMDI0LTEwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNC0xMCIgY2xhc3M9InRhZyI+NDM1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTA2IiBjbGFzcz0idGFnIj4yMDI1LTA2PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wNiIgY2xhc3M9InRhZyI+NDMwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTAzIiBjbGFzcz0idGFnIj4yMDE2LTAzLTAzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0wMyIgY2xhc3M9InRhZyI+NDE5PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIzLTExIiBjbGFzcz0idGFnIj4yMDIzLTExPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMy0xMSIgY2xhc3M9InRhZyI+NDAyPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTAzIiBjbGFzcz0idGFnIj4yMDE4LTAzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0wMyIgY2xhc3M9InRhZyI+Mzg1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTAxIiBjbGFzcz0idGFnIj4yMDI1LTAxPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wMSIgY2xhc3M9InRhZyI+Mzc2PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTA3IiBjbGFzcz0idGFnIj4yMDI1LTA3PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wNyIgY2xhc3M9InRhZyI+Mzc0PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTIwIiBjbGFzcz0idGFnIj4yMDE2LTAyLTIwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0yMCIgY2xhc3M9InRhZyI+MzcwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTExIiBjbGFzcz0idGFnIj4yMDE2LTAyLTExPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0xMSIgY2xhc3M9InRhZyI+MzY1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE5LTA1IiBjbGFzcz0idGFnIj4yMDE5LTA1PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOS0wNSIgY2xhc3M9InRhZyI+MzU3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTI2IiBjbGFzcz0idGFnIj4yMDE2LTAzLTI2PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0yNiIgY2xhc3M9InRhZyI+MzUxPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTA0IiBjbGFzcz0idGFnIj4yMDE4LTA0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0wNCIgY2xhc3M9InRhZyI+MzQzPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTAyIiBjbGFzcz0idGFnIj4yMDE4LTAyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0wMiIgY2xhc3M9InRhZyI+MzAxPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTA2IiBjbGFzcz0idGFnIj4yMDE2LTAzLTA2PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0wNiIgY2xhc3M9InRhZyI+MjkyPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTIyIiBjbGFzcz0idGFnIj4yMDE2LTAzLTIyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0yMiIgY2xhc3M9InRhZyI+Mjg2PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTA1IiBjbGFzcz0idGFnIj4yMDE2LTAzLTA1PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0wNSIgY2xhc3M9InRhZyI+Mjg0PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTExIiBjbGFzcz0idGFnIj4yMDE2LTAzLTExPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0xMSIgY2xhc3M9InRhZyI+Mjg0PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTIzIiBjbGFzcz0idGFnIj4yMDE2LTAyLTIzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0yMyIgY2xhc3M9InRhZyI+MjY2PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTA5LTAyIiBjbGFzcz0idGFnIj4yMDE4LTA5LTAyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0wOS0wMiIgY2xhc3M9InRhZyI+MjYxPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTI2IiBjbGFzcz0idGFnIj4yMDE2LTAyLTI2PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0yNiIgY2xhc3M9InRhZyI+MjYwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTAyLTA0IiBjbGFzcz0idGFnIj4yMDI1LTAyLTA0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wMi0wNCIgY2xhc3M9InRhZyI+MjQ4PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTA4IiBjbGFzcz0idGFnIj4yMDE2LTAzLTA4PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0wOCIgY2xhc3M9InRhZyI+MjQyPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTE5IiBjbGFzcz0idGFnIj4yMDE2LTAyLTE5PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0xOSIgY2xhc3M9InRhZyI+MjMxPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI0LTEwLTAzIiBjbGFzcz0idGFnIj4yMDI0LTEwLTAzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNC0xMC0wMyIgY2xhc3M9InRhZyI+MjI3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE3LTEwIiBjbGFzcz0idGFnIj4yMDE3LTEwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNy0xMCIgY2xhc3M9InRhZyI+MjI1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI0LTAzIiBjbGFzcz0idGFnIj4yMDI0LTAzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNC0wMyIgY2xhc3M9InRhZyI+MjI1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIwLTEyIiBjbGFzcz0idGFnIj4yMDIwLTEyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMC0xMiIgY2xhc3M9InRhZyI+MjIzPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTAyLTExIiBjbGFzcz0idGFnIj4yMDI1LTAyLTExPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wMi0xMSIgY2xhc3M9InRhZyI+MjE3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTE1IiBjbGFzcz0idGFnIj4yMDE2LTAyLTE1PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0xNSIgY2xhc3M9InRhZyI+MjEzPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTEyIiBjbGFzcz0idGFnIj4yMDE2LTAzLTEyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0xMiIgY2xhc3M9InRhZyI+MjA4PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE3LTA0IiBjbGFzcz0idGFnIj4yMDE3LTA0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNy0wNCIgY2xhc3M9InRhZyI+MjA3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIxLTAzIiBjbGFzcz0idGFnIj4yMDIxLTAzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMS0wMyIgY2xhc3M9InRhZyI+MjA3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTEyIiBjbGFzcz0idGFnIj4yMDE2LTAyLTEyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0xMiIgY2xhc3M9InRhZyI+MjA2PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIxLTAyIiBjbGFzcz0idGFnIj4yMDIxLTAyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMS0wMiIgY2xhc3M9InRhZyI+MjAzPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTA2IiBjbGFzcz0idGFnIj4yMDE4LTA2PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0wNiIgY2xhc3M9InRhZyI+MjAwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIzLTA3IiBjbGFzcz0idGFnIj4yMDIzLTA3PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMy0wNyIgY2xhc3M9InRhZyI+MjAwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTA5IiBjbGFzcz0idGFnIj4yMDE2LTAzLTA5PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0wOSIgY2xhc3M9InRhZyI+MTg5PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTE2IiBjbGFzcz0idGFnIj4yMDE2LTAyLTE2PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0xNiIgY2xhc3M9InRhZyI+MTg2PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE5LTAzIiBjbGFzcz0idGFnIj4yMDE5LTAzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOS0wMyIgY2xhc3M9InRhZyI+MTg2PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTI5IiBjbGFzcz0idGFnIj4yMDE2LTAyLTI5PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0yOSIgY2xhc3M9InRhZyI+MTg1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTI0IiBjbGFzcz0idGFnIj4yMDE2LTAyLTI0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0yNCIgY2xhc3M9InRhZyI+MTgxPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTA3IiBjbGFzcz0idGFnIj4yMDE4LTA3PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0wNyIgY2xhc3M9InRhZyI+MTc4PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTA3IiBjbGFzcz0idGFnIj4yMDE2LTAyLTA3PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0wNyIgY2xhc3M9InRhZyI+MTc2PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI0LTAyIiBjbGFzcz0idGFnIj4yMDI0LTAyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNC0wMiIgY2xhc3M9InRhZyI+MTczPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTIyIiBjbGFzcz0idGFnIj4yMDE2LTAyLTIyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0yMiIgY2xhc3M9InRhZyI+MTcwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIxLTA2IiBjbGFzcz0idGFnIj4yMDIxLTA2PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMS0wNiIgY2xhc3M9InRhZyI+MTcwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE5LTEyIiBjbGFzcz0idGFnIj4yMDE5LTEyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOS0xMiIgY2xhc3M9InRhZyI+MTY1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI0LTExIiBjbGFzcz0idGFnIj4yMDI0LTExPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNC0xMSIgY2xhc3M9InRhZyI+MTY1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTE0IiBjbGFzcz0idGFnIj4yMDE2LTAyLTE0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0xNCIgY2xhc3M9InRhZyI+MTU4PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE0IiBjbGFzcz0idGFnIj4yMDE0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNCIgY2xhc3M9InRhZyI+MTU2PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTEwIiBjbGFzcz0idGFnIj4yMDE2LTAzLTEwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0xMCIgY2xhc3M9InRhZyI+MTU1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTA1IiBjbGFzcz0idGFnIj4yMDE4LTA1PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0wNSIgY2xhc3M9InRhZyI+MTU1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTIwIiBjbGFzcz0idGFnIj4yMDE2LTAzLTIwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0yMCIgY2xhc3M9InRhZyI+MTUzPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTA1LTA0IiBjbGFzcz0idGFnIj4yMDI1LTA1LTA0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wNS0wNCIgY2xhc3M9InRhZyI+MTUwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAzLTAxIiBjbGFzcz0idGFnIj4yMDE2LTAzLTAxPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMy0wMSIgY2xhc3M9InRhZyI+MTQ5PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE4LTEyIiBjbGFzcz0idGFnIj4yMDE4LTEyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOC0xMiIgY2xhc3M9InRhZyI+MTQ5PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTA4LTMwIiBjbGFzcz0idGFnIj4yMDI1LTA4LTMwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wOC0zMCIgY2xhc3M9InRhZyI+MTQ4PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE3LTA0LTAyIiBjbGFzcz0idGFnIj4yMDE3LTA0LTAyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNy0wNC0wMiIgY2xhc3M9InRhZyI+MTQ3PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE5LTA1LTEwIiBjbGFzcz0idGFnIj4yMDE5LTA1LTEwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOS0wNS0xMCIgY2xhc3M9InRhZyI+MTQ1PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIxLTA4IiBjbGFzcz0idGFnIj4yMDIxLTA4PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMS0wOCIgY2xhc3M9InRhZyI+MTQyPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIwLTAyIiBjbGFzcz0idGFnIj4yMDIwLTAyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMC0wMiIgY2xhc3M9InRhZyI+MTQwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE1IiBjbGFzcz0idGFnIj4yMDE1PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNSIgY2xhc3M9InRhZyI+MTM5PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIwLTAzIiBjbGFzcz0idGFnIj4yMDIwLTAzPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMC0wMyIgY2xhc3M9InRhZyI+MTM5PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDIzLTA4IiBjbGFzcz0idGFnIj4yMDIzLTA4PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyMy0wOCIgY2xhc3M9InRhZyI+MTM2PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI0LTAxIiBjbGFzcz0idGFnIj4yMDI0LTAxPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNC0wMSIgY2xhc3M9InRhZyI+MTM0PC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDI1LTA4LTI4IiBjbGFzcz0idGFnIj4yMDI1LTA4LTI4PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAyNS0wOC0yOCIgY2xhc3M9InRhZyI+MTMzPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE2LTAyLTEwIiBjbGFzcz0idGFnIj4yMDE2LTAyLTEwPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxNi0wMi0xMCIgY2xhc3M9InRhZyI+MTMwPC9hPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yMDE5LTA3IiBjbGFzcz0idGFnIj4yMDE5LTA3PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjAxOS0wNyIgY2xhc3M9InRhZyI+MTMwPC9hPjwvdGQ+PC90cj4KPC90Ym9keT48L3RhYmxlPjwvZGl2Pgo8aHI+PHVsIGlkPSJwYWdlcyIgY2xhc3M9InBhZ2luYXRpb24iPjxsaSBjbGFzcz0idW5hdmFpbGFibGUiPlBhZ2VzIDo8L2xpPjxsaSBjbGFzcz0iY3VycmVudCI+PGEgaHJlZj0iIj4xPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzIiPjI8L2E+PC9saT48bGk+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMyI+MzwvYT48L2xpPjxsaT48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi80Ij40PC9hPjwvbGk+PGxpIGNsYXNzPSJ1bmF2YWlsYWJsZSI+JmhlbGxpcDs8L2xpPjxsaT48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yOCI+Mjg8L2E+PC9saT48bGk+PGEgaHJlZj0iL2ZhY2V0cy9kYXRlcy1kZS1kZXJuaWVyZS1tb2RpZmljYXRpb24vMjkiPjI5PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9mYWNldHMvZGF0ZXMtZGUtZGVybmllcmUtbW9kaWZpY2F0aW9uLzMwIj4zMDwvYT48L2xpPjxsaT48YSBocmVmPSIvZmFjZXRzL2RhdGVzLWRlLWRlcm5pZXJlLW1vZGlmaWNhdGlvbi8yIiByZWw9Im5leHQkbm9mb2xsb3ciPlN1aXZhbnQ8L2E+PC9saT48bGkgY2xhc3M9InVuYXZhaWxhYmxlIj4oMTAwIHByb2R1aXRzIHBhciBwYWdlKTwvbGk+PC91bD4KCgkJCQkJCQkJPC9kaXY+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPC9kaXY+CgoJCQoJCTxmb290ZXI+CgkJCTxkaXYgY2xhc3M9ImJsb2NrX2xpZ2h0IGJnLXdoaXRlIiBpZD0iaW5zdGFsbF90aGVfYXBwX2Jsb2NrIj4KCQkJCTxkaXYgY2xhc3M9InJvdyI+CgkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMTIgZmxleC1ncmlkIHYtc3BhY2Utc2hvcnQgdi1hbGlnbi1jZW50ZXIgZGlyZWN0aW9uLXJvdyBoLXNwYWNlLXRpbnkiPgoJCQkJCQk8ZGl2IGNsYXNzPSJjZWxsIHNtYWxsLTEwMCBtZWRpdW0tMTAwIGxhcmdlLTUwIGZsZXgtZ3JpZCB2LWFsaWduLWNlbnRlciBkaXJlY3Rpb24tcm93Ij4KCQkJCQkJCTxpbWcgY2xhc3M9ImNlbGwgc21hbGwtNTAgdi1hbGlnbi1jZW50ZXIiIHNyYz0iL2ltYWdlcy9pbGx1c3RyYXRpb25zL2FwcC1pY29uLWluLXRoZS1jbG91ZHMuc3ZnIiBhbHQ9IlRoZSBPcGVuIEZvb2QgRmFjdHMgbG9nbyBpbiB0aGUgY2xvdWQiIHN0eWxlPSJoZWlnaHQ6MTIwcHgiPgoJCQkJCQkJPGRpdiBjbGFzcz0iY2VsbCBzbWFsbC01MCB2LWFsaWduLWNlbnRlciIgaWQ9ImZvb3Rlcl9zY2FuIiBzdHlsZT0iZGlzcGxheTpibG9jayI+CgkJCQkJCQkJPGRpdiBpZD0iZm9vdGVyX2luc3RhbGxfdGhlX2FwcCI+CgkJCQkJCQkJCUluc3RhbGxlciBsJ2FwcCEKCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQlTY2FubmV6IGxlcyA8c3BhbiBpZD0iZm9vZHMiPmFsaW1lbnRzPC9zcGFuPiBkZSB2b3RyZSA8c3BhbiBpZD0iZXZlcnlkYXkiPnF1b3RpZGllbjwvc3Bhbj4KCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0icm93Ij4KCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIG1lZGl1bS0xMiBsYXJnZS0xMiB2LXNwYWNlLW5vcm1hbCBjb2x1bW4gYmFkZ2UtY29udGFpbmVyIj4KCQkJCQkJCQk8IS0tIGFuZHJvaWRfYXBwX2xpbmsgLSBodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9b3JnLm9wZW5iZWF1dHlmYWN0cy5zY2FubmVyJmhsPWVuIC0tPgoJCQkJCQkJCTxhICBocmVmPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9b3JnLm9wZW5mb29kZmFjdHMuc2Nhbm5lciZ1dG1fc291cmNlPW9iZiZ1dGZfbWVkaXVtPXdlYiZ1dG1fY2FtcGFpZ249aW5zdGFsbF90aGVfYXBwX2FuZHJvaWRfZm9vdGVyX2ZyIj48aW1nIHNyYz0iL2ltYWdlcy9taXNjL3BsYXlzdG9yZS9pbWcvbGF0ZXN0L0dldEl0T25Hb29nbGVQbGF5X0JhZGdlX1dlYl9jb2xvcl9FbmdsaXNoLnN2ZyIgYWx0PSJEaXNwb25pYmxlIHN1ciBHb29nbGUgUGxheSIgbG9hZGluZz0ibGF6eSIgaGVpZ2h0PSI0MCIgd2lkdGg9IjEyMCI+PC9hPgoJCQkJCQkJCQoJCQkJCQkJCTxhIGhyZWY9IiI+PGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9mLWRyb2lkL3N2Zy9nZXQtaXQtb24tZW4uc3ZnIiBhbHQ9IkRpc3BvbmlibGUgc3VyIEYtRHJvaWQiIGxvYWRpbmc9ImxhenkiIGhlaWdodD0iNDAiIHdpZHRoPSIxMjAiPjwvYT4KCgkJCQkJCQkJPCEtLSBhbmRyb2lkX2Fwa19hcHBfbGluayAtIGh0dHBzOi8vd29ybGQub3BlbmZvb2RmYWN0cy5vcmcvaW1hZ2VzL2FwcHMvb2ZmLmFwayAtLT4KCQkJCQkJCQk8YSBocmVmPSJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2FwcHMvb2JmLmFwaz91dG1fc291cmNlPW9iZiZ1dGZfbWVkaXVtPXdlYj91dG1fc291cmNlPW9mZiZ1dGZfbWVkaXVtPXdlYiZ1dG1fY2FtcGFpZ249aW5zdGFsbF90aGVfYXBwX2Fwa19mb290ZXJfZnIiPjxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvYXBwLWxhbmRpbmctcGFnZS9kb3dubG9hZC1hcGsvZG93bmxvYWQtYXBrX2VuLnN2ZyIgYWx0PSJBUEsgQW5kcm9pZCIgbG9hZGluZz0ibGF6eSIgaGVpZ2h0PSI0MCIgd2lkdGg9IjEyMCI+PC9hPgoJCQkJCQkJCQoJCQkJCQkJCTwhLS0gbXNnaWQgImh0dHBzOi8vYXBwcy5hcHBsZS5jb20vYXBwL29wZW4tYmVhdXR5LWZhY3RzL2lkMTEyMjkyNjM4MCIgLS0+CgkJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS9hcHAvb3Blbi1iZWF1dHktZmFjdHMvaWQxMTIyOTI2MzgwP3V0bV9zb3VyY2U9b2JmJnV0Zl9tZWRpdW09d2ViJnV0bV9jYW1wYWlnbj1pbnN0YWxsX3RoZV9hcHBfaW9zX2Zvb3Rlcl9mciI+PGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9hcHBzdG9yZS9ibGFjay9hcHBzdG9yZV9GUi5zdmciIGFsdD0iRGlzcG9uaWJsZSBzdXIgbCdBcHAgU3RvcmUiICBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjQwIiB3aWR0aD0iMTIwIj48L2E+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgoJCQkKICAgICAgCQkJPCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9pbmNsdWRlcy9kb25hdGVfYmFubmVyLnR0Lmh0bWwgLS0+CgoKCjwhLS0gRG9uYXRpb24gYmFubmVyIEAgZm9vdGVyIC0tPgoKCjwhLS0gZW5kIHRlbXBsYXRlcy93ZWIvY29tbW9uL2luY2x1ZGVzL2RvbmF0ZV9iYW5uZXIudHQuaHRtbCAtLT4KCgkJCQkKCjxzZWN0aW9uIGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyIHJvdyI+CiAgPGRpdiBjbGFzcz0iZG9uYXRpb24tYmFubmVyLWZvb3Rlcl9fbGVmdC1hc2lkZSI+CiAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19ob29rLXNlY3Rpb24iPgogICAgICA8cD5BaWRlei1ub3VzIMOgIGluZm9ybWVyIGRlcyBtaWxsaW9ucyBkZSBjb25zb21tYXRldXJzIMOgIHRyYXZlcnMgbGUgbW9uZGUgc3VyIGNlIHF1J2lscyBtYW5nZW50PC9wPgogICAgPC9kaXY+CiAgICA8aW1nIHNyYz0iL2ltYWdlcy9taXNjL2RvbmF0aW9uLWJhbm5lcnMvZG9uYXRpb24tYmFubmVyLWdyb3VwLXBob3RvLnBuZyIgYWx0PSJncm91cCBwaG90byBkb25hdGlvbiAyMDI0IiAvPgogIDwvZGl2PgogIDxkaXY+CiAgICA8ZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19tYWluLXNlY3Rpb24iPgogICAgICAgIDxpbWcKICAgICAgICAgIHdpZHRoPSI1MCIKICAgICAgICAgIGhlaWdodD0iNTAiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd29ybGQub3BlbmZvb2RmYWN0cy5vcmcvaW1hZ2VzL2xvZ29zL2xvZ28tdmFyaWFudHMvQ01KTi1JQ09OX1dISVRFX0JHX09GRi5zdmciCiAgICAgICAgICBhbHQ9Im9wZW4gZm9vZCBmYWN0cyBsb2dvIgogICAgICAgIC8+CiAgICAgICAgPGgzIGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19tYWluLXRpdGxlIj5NZXJjaSBkZSBjb250cmlidWVyIMOgIG5vdHJlIGNvbGxlY3RlIGRlIGZvbmRzIDIwMjU8L2gzPgogICAgICA8L2Rpdj4KICAgICAgPHA+Vm9zIGRvbnMgZmluYW5jZW50IGxlIGZvbmN0aW9ubmVtZW50IHF1b3RpZGllbiBkZSBub3RyZSBhc3NvY2lhdGlvbiDDoCBidXQgbm9uIGx1Y3JhdGlmIDo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+CiAgICAgICAgICBnYXJkZXIgbm90cmUgYmFzZSBkZSBkb25uw6llcyBvdXZlcnRlIGV0IGFjY2Vzc2libGUgw6AgdG91cywKICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPmluZnJhc3RydWN0dXJlIHRlY2huaXF1ZSAoc2l0ZSB3ZWIvYXBwbGljYXRpb24gbW9iaWxlKSBldCB1bmUgcGV0aXRlIMOpcXVpcGUgcGVybWFuZW50ZTwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPgogICAgICAgICAgPHA+cmVzdGVyIGluZMOpcGVuZGFudCBkZSBsJ2luZHVzdHJpZSBhbGltZW50YWlyZSw8L3A+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+CiAgICAgICAgICA8cD5tb2JpbGlzZXIgdW5lIGNvbW11bmF1dMOpIGRlIGNpdG95ZW5zIGVuZ2Fnw6lzLDwvcD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgIDxwPnNvdXRlbmlyIGzigJlhdmFuY2VtZW50IGRlIGxhIHJlY2hlcmNoZSBlbiBzYW50w6kgcHVibGlxdWUuPC9wPgogICAgICAgIDwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lci1mb290ZXJfX2FjdGlvbnMtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lci1mb290ZXJfX2FjdGlvbnMtc2VjdGlvbl9fZmluYW5jaWFsIj4KICAgICAgICA8cD4KICAgICAgICAgIENoYXF1ZSBkb24gY29tcHRlICEgTm91cyBhcHByw6ljaW9ucyB2b3RyZSBzb3V0aWVuIHBvdXIgdW5lIHBsdXMgZ3JhbmRlIHRyYW5zcGFyZW5jZSBhbGltZW50YWlyZSBkYW5zIGxlIG1vbmRlLgogICAgICAgIDwvcD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lci1mb290ZXJfX2FjdGlvbnMtc2VjdGlvbl9fZG9uYXRlLWJ1dHRvbiI+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9vcGVuLWZvb2QtZmFjdHMuYXNzb2Nvbm5lY3QuY29tL2NvbGxlY3QvZGVzY3JpcHRpb24vNDc2NzUwLWMtZmFpcmUtdW4tZG9uLWEtb3Blbi1mb29kLWZhY3RzP3V0bV9zb3VyY2U9b2ZmJnV0Zl9tZWRpdW09d2ViJnV0bV9jYW1wYWlnbj1kb25hdGUtMjAyNC1hJnV0bV90ZXJtPWVuLXRleHQtYnV0dG9uIj4KICAgICAgICAgIDxidXR0b24+SkUgU09VVElFTlM8L2J1dHRvbj4KICAgICAgICA8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCgoJCQkKICAgICAgCQkKCQkJPGRpdiBjbGFzcz0iYmxvY2tfbGlnaHQgYmxvY2tfY2FwcHVjaW5vIiBpZD0iY29udHJpYnV0ZV9hbmRfZGlzY292ZXJfbGlua3NfYmxvY2siPgoJCQkJPGRpdiBjbGFzcz0icm93Ij4KCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0xMiBsYXJnZS02IGNvbHVtbnMgdi1zcGFjZS1ub3JtYWwgYmxvY2tfb2ZmIj4KCQkJCQkJPGgzIGNsYXNzPSJ0aXRsZS01IHRleHQtbWVkaXVtIj5SZWpvaWduZXogbGEgY29tbXVuYXV0w6k8L2gzPgoJCQkJCQk8cD5Ew6ljb3V2cmV6IG5vdHJlIDxhIGhyZWY9Ii9jb2RlLWRlLWNvbmR1aXRlIj5Db2RlIGRlIGNvbmR1aXRlPC9hPjwvcD4KCQkJCQkJPHA+UmVqb2lnbmV6LW5vdXMgc3VyIDxhIGhyZWY9Imh0dHBzOi8vc2xhY2sub3BlbmZvb2RmYWN0cy5vcmciPlNsYWNrPC9hPjwvcD4KCQkJCQkJPHA+PGEgaHJlZj0iaHR0cHM6Ly9mb3J1bS5vcGVuZm9vZGZhY3RzLm9yZy8iPkZvcnVtPC9hPjwvcD4KCQkJCQkJPHAgaWQ9ImZvb3Rlcl9zb2NpYWxfaWNvbnMiPlN1aXZlei1ub3VzIDogCgkJCQkJCQk8YSBocmVmPSJodHRwczovL3guY29tL09wZW5Gb29kRmFjdHMiPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2Rpc3QveC5zdmciIGNsYXNzPSJmb290ZXJfc29jaWFsX2ljb24iIGFsdD0ieCI+PC9hPgoJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL29wZW5mb29kZmFjdHM/dXRtX3NvdXJjZT1vYmYmdXRmX21lZGl1bT13ZWIiPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2Rpc3QvZmFjZWJvb2suc3ZnIiBjbGFzcz0iZm9vdGVyX3NvY2lhbF9pY29uIiBhbHQ9IkZhY2Vib29rIj48L2E+CgkJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL29wZW4uZm9vZC5mYWN0cy8iPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2Rpc3QvaW5zdGFncmFtLnN2ZyIgY2xhc3M9ImZvb3Rlcl9zb2NpYWxfaWNvbiIgYWx0PSJJbnN0YWdyYW0iPjwvYT4KCQkJCQkJCQoJCQkJCQk8L3A+CgkJCQkJCTxwPjxhIGhyZWY9Imh0dHBzOi8vbGluay5vcGVuZm9vZGZhY3RzLm9yZy9uZXdzbGV0dGVyLWZyIj5TJ2Fib25uZXIgw6Agbm90cmUgbmV3c2xldHRlcjwvYT48L3A+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMTIgbGFyZ2UtNiBjb2x1bW5zIHByb2plY3Qgdi1zcGFjZS1ub3JtYWwiPgoJCQkJCQk8aDMgY2xhc3M9InRpdGxlLTUgdGV4dC1tZWRpdW0iPkTDqWNvdXZyZXogbGUgcHJvamV0PC9oMz4KCQkJCQkJPHVsIGNsYXNzPSJpbmxpbmUtbGlzdCB0YWdzX2xpbmtzIHYtc3BhY2UtdGlueSBoLXNwYWNlLXRpbnkiID4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Ii9xdWktc29tbWVzLW5vdXMiPlF1aSBzb21tZXMtbm91cyA/PC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSJodHRwczovL3dvcmxkLm9wZW5mb29kZmFjdHMub3JnL29wZW4tZm9vZC1mYWN0cy12aXNpb24tbWlzc2lvbi12YWx1ZXMtYW5kLXByb2dyYW1zIj5WaXNpb24sIG1pc3Npb24sIHZhbGV1cnMgZXQgcHJvZ3JhbW1lczwvYT48L2xpPgoJCQkJCQkJPGxpPjxhIGNsYXNzPSJidXR0b24gc21hbGwgd2hpdGUtYnV0dG9uIHJhZGl1cyIgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0Lm9wZW5mb29kZmFjdHMub3JnL2hlbHAvZnItZnIiPlF1ZXN0aW9ucyBmcsOpcXVlbnRlczwvYT48L2xpPgoJCQkJCQkJPGxpPjxhIGNsYXNzPSJidXR0b24gc21hbGwgd2hpdGUtYnV0dG9uIHJhZGl1cyIgaHJlZj0iaHR0cHM6Ly9ibG9nLm9wZW5mb29kZmFjdHMub3JnL2ZyLyI+TGUgYmxvZyBkJ09wZW4gQmVhdXR5IEZhY3RzPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSIvcHJlc3NlIj5QcmVzc2U8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vZnIud2lraS5vcGVuZm9vZGZhY3RzLm9yZyI+T3BlbiBCZWF1dHkgRmFjdHMgd2lraSAoZnIpPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSIvY2dpL3RvcF90cmFuc2xhdG9ycy5wbCI+VHJhZHVjdGV1cnM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Ii9wYXJ0ZW5haXJlcyI+UGFydGVuYWlyZXM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vd29ybGQtZnIub3BlbmJlYXV0eWZhY3RzLm9yZyI+T3BlbiBCZWF1dHkgRmFjdHMgLSBDb3Ntw6l0aXF1ZXM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vZnIucHJvLm9wZW5iZWF1dHlmYWN0cy5vcmcvIj5PcGVuIEZvb2QgRmFjdHMgcG91ciBsZXMgcHJvZHVjdGV1cnM8L2E+PC9saT4KCQkJCQkJPC91bD4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCgkJCTxkaXYgY2xhc3M9ImJsb2NrX29mZiBibG9ja19kYXJrIGJsb2NrX3Jpc3RyZXRvIiBpZD0iZm9vdGVyX2Jsb2NrIj4KCgkJCQk8ZGl2IGlkPSJmb290ZXJfYmxvY2tfaW1hZ2VfYmFubmVyX291dHNpZGUiPgoJCQkJCTxkaXYgaWQ9ImZvb3Rlcl9ibG9ja19pbWFnZV9iYW5uZXJfb3V0c2lkZTIiPgoKCQkJCQkJPGRpdiBjbGFzcz0icm93Ij4KCgkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0xMiB0ZXh0LWNlbnRlciB2LXNwYWNlLXNob3J0IGgtc3BhY2UtbGFyZ2UiPgoJCQkJCQkJCTxhIGhyZWY9Ii8iIHN0eWxlPSJmb250LXNpemU6MXJlbTsiPjxpbWcgaWQ9ImxvZ28iIHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvbG9nb3Mvb2JmLWxvZ28taG9yaXpvbnRhbC1tb25vLXdoaXRlLnN2ZyIgYWx0PSJPcGVuIEJlYXV0eSBGYWN0cyIgc3R5bGU9Im1hcmdpbjo4cHg7aGVpZ2h0OjQ4cHg7d2lkdGg6YXV0bzsiPjwvYT4KCgkJCQkJCQkJPHA+VW5lIGJhc2UgZGUgZG9ubsOpZXMgY29sbGFib3JhdGl2ZSwgbGlicmUgZXQgb3V2ZXJ0ZSBkZXMgcHJvZHVpdHMgY29zbcOpdGlxdWVzIGR1IG1vbmRlIGVudGllci48L3A+CgkJCQkJCQkJCgkJCQkJCQkJPHVsIGNsYXNzPSJpbmxpbmUtbGlzdCB0ZXh0LWNlbnRlciB0ZXh0LXNtYWxsIj4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9tZW50aW9ucy1sZWdhbGVzIj5NZW50aW9ucyBsw6lnYWxlczwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL3ByaXZhY3kiPkNvbmZpZGVudGlhbGl0w6k8L2E+PC9saT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9jb25kaXRpb25zLWQtdXRpbGlzYXRpb24iPkNvbmRpdGlvbnMgZCd1dGlsaXNhdGlvbjwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL2RhdGEiPkRvbm7DqWVzLCBBUEkgZXQgU0RLPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL2ZyLm9wZW5mb29kZmFjdHMub3JnL2ZhaXJlLXVuLWRvbi1hLW9wZW4tZm9vZC1mYWN0cyI+RmFpcmUgdW4gZG9uIMOgIGwnYXNzb2NpYXRpb24gT3BlbiBGb29kIEZhY3RzPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL2ZyLnByby5vcGVuZm9vZGZhY3RzLm9yZy8iPlByb2R1Y3RldXJzPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL2xpbmsub3BlbmZvb2RmYWN0cy5vcmcvbmV3c2xldHRlci1mciI+UydhYm9ubmVyIMOgIG5vdHJlIG5ld3NsZXR0ZXI8L2E+PC9saT4KCQkJCQkJCQk8L3VsPgoJCQkJCQkJPC9kaXY+CgoJCQkJCQk8L2Rpdj4KCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9mb290ZXI+CgkJCgoJPC9kaXY+Cgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L21vZGVybml6ci5qcyIgZGF0YS1iYXNlLWxheW91dD0idHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvanF1ZXJ5LmpzIiBkYXRhLWJhc2UtbGF5b3V0PSJ0cnVlIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9qcXVlcnktdWkuanMiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2hjLXN0aWNreS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvZGlzcGxheS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3Qvc3Rpa2VsZW0uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L3Njcm9sbE5hdi5qcyI+PC9zY3JpcHQ+CiAgCgo8c2NyaXB0PgokKGZ1bmN0aW9uKCkgewpsZXQgb1RhYmxlID0gJCgnI3RhZ3N0YWJsZScpLkRhdGFUYWJsZSh7CglsYW5ndWFnZTogewoJCXNlYXJjaDogIlJlY2hlcmNoZSA6IiwKCQlpbmZvOiAiX1RPVEFMXyBEYXRlcyBkZSBkZXJuacOocmUgbW9kaWZpY2F0aW9uIiwKCQlpbmZvRmlsdGVyZWQ6ICIgLSBwYXJtaSBfTUFYXyIKCX0sCglwYWdpbmc6IGZhbHNlLAoJb3JkZXI6IFtbIDEsICJkZXNjIiBdXSwKCWNvbHVtbnM6IFsKCQludWxsLAoJCXsic2VhcmNoYWJsZSI6IGZhbHNlfSAKCV0KfSk7CgoKfSk7Cjwvc2NyaXB0PgoKCgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2ZvdW5kYXRpb24uanMiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2pxdWVyeS5jb29raWUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L3NlbGVjdDIubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGF0YXRhYmxlcy5taW4uanMiPjwvc2NyaXB0PgoKPHNjcmlwdD4KJChkb2N1bWVudCkuZm91bmRhdGlvbih7CgllcXVhbGl6ZXIgOiB7CgkJZXF1YWxpemVfb25fc3RhY2s6IHRydWUKCX0sCglhY2NvcmRpb246IHsKCQljYWxsYmFjayA6IGZ1bmN0aW9uIChhY2NvcmRpb24pIHsKCQkJJChkb2N1bWVudCkuZm91bmRhdGlvbignZXF1YWxpemVyJywgJ3JlZmxvdycpOwoJCX0KCX0KfSk7Cgo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KewoJIkBjb250ZXh0IiA6ICJodHRwczovL3NjaGVtYS5vcmciLAoJIkB0eXBlIiA6ICJXZWJTaXRlIiwKCSJuYW1lIiA6ICJPcGVuIEJlYXV0eSBGYWN0cyIsCgkidXJsIiA6ICJodHRwczovL2ZyLm9wZW5iZWF1dHlmYWN0cy5vcmciLAoJInBvdGVudGlhbEFjdGlvbiI6IHsKCQkiQHR5cGUiOiAiU2VhcmNoQWN0aW9uIiwKCQkidGFyZ2V0IjogImh0dHBzOi8vZnIub3BlbmJlYXV0eWZhY3RzLm9yZy9jZ2kvc2VhcmNoLnBsP3NlYXJjaF90ZXJtcz0/e3NlYXJjaF90ZXJtX3N0cmluZ30iLAoJCSJxdWVyeS1pbnB1dCI6ICJyZXF1aXJlZCBuYW1lPXNlYXJjaF90ZXJtX3N0cmluZyIKCX0KfQo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KewoJIkBjb250ZXh0IjogImh0dHBzOi8vc2NoZW1hLm9yZy8iLAoJIkB0eXBlIjogIk9yZ2FuaXphdGlvbiIsCgkidXJsIjogImh0dHBzOi8vZnIub3BlbmJlYXV0eWZhY3RzLm9yZyIsCgkibG9nbyI6ICJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9sb2dvcy9vYmYtbG9nby12ZXJ0aWNhbC1saWdodC5zdmciLAoJIm5hbWUiOiAiT3BlbiBCZWF1dHkgRmFjdHMiLAoJInNhbWVBcyIgOiBbImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9vcGVuZm9vZGZhY3RzP3V0bV9zb3VyY2U9b2JmJnV0Zl9tZWRpdW09d2ViIiwgImh0dHBzOi8veC5jb20vT3BlbkZvb2RGYWN0cyJdCn0KPC9zY3JpcHQ+CgoKCgoKPC9ib2R5Pgo8L2h0bWw+Cgo8IS0tIGRhdGFfZGVidWc6IGRhdGFfZGVidWcgc3RhcnQKcGxhdGZvcm06IHB1YmxpYwpjYW5fdXNlX2NhY2hlOiAxCmNhY2hlX2hpdApwbGF0Zm9ybTogcHVibGljCmNhbl91c2VfY2FjaGU6IDEKY2FjaGVfaGl0Ci0tPgoKPCEtLSBlbmQgdGVtcGxhdGVzL3dlYi9jb21tb24vc2l0ZV9sYXlvdXQudHQuaHRtbCAtLT4K
|
|
47
|
-
recorded_at: Mon, 29 Sep 2025 14:07:19 GMT
|
|
48
|
-
recorded_with: VCR 6.3.1
|
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
http_interactions:
|
|
3
|
-
- request:
|
|
4
|
-
method: post
|
|
5
|
-
uri: https://world.openfoodfacts.org/cgi/session.pl
|
|
6
|
-
body:
|
|
7
|
-
encoding: US-ASCII
|
|
8
|
-
string: jqm=1&user_id=wrong&password=absolutely
|
|
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
|
-
Host:
|
|
17
|
-
- world.openfoodfacts.org
|
|
18
|
-
Content-Type:
|
|
19
|
-
- application/x-www-form-urlencoded
|
|
20
|
-
response:
|
|
21
|
-
status:
|
|
22
|
-
code: 403
|
|
23
|
-
message: Forbidden
|
|
24
|
-
headers:
|
|
25
|
-
Connection:
|
|
26
|
-
- close
|
|
27
|
-
Content-Type:
|
|
28
|
-
- text/html; charset=UTF-8
|
|
29
|
-
Date:
|
|
30
|
-
- Mon, 29 Sep 2025 14:07:18 GMT
|
|
31
|
-
Expires:
|
|
32
|
-
- Sun, 28 Sep 2025 14:07:18 GMT
|
|
33
|
-
Server:
|
|
34
|
-
- nginx/1.18.0
|
|
35
|
-
Transfer-Encoding:
|
|
36
|
-
- chunked
|
|
37
|
-
X-Content-Type-Options:
|
|
38
|
-
- nosniff
|
|
39
|
-
X-Download-Options:
|
|
40
|
-
- noopen
|
|
41
|
-
X-Request-Id:
|
|
42
|
-
- TPXpwOiymm6v0Pp1
|
|
43
|
-
X-Xss-Protection:
|
|
44
|
-
- 1; mode=block
|
|
45
|
-
body:
|
|
46
|
-
encoding: UTF-8
|
|
47
|
-
string: "<!-- start templates/web/common/site_layout.tt.html -->\n\n<!doctype
|
|
48
|
-
html>\n<html class=\"no-js\" lang=\"en\" data-serverdomain=\"openfoodfacts.org\"
|
|
49
|
-
dir=\"ltr\">\n<head>\n <meta charset=\"utf-8\">\n <title>Error</title>\n
|
|
50
|
-
\ \n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<meta
|
|
51
|
-
property=\"fb:app_id\" content=\"219331381518041\">\n <meta property=\"og:type\"
|
|
52
|
-
content=\"food\">\n <meta property=\"og:title\" content=\"Error\">\n <meta
|
|
53
|
-
property=\"og:url\" content=\"https://be-fr.openfoodfacts.org\">\n \n <meta
|
|
54
|
-
property=\"og:image\" content=\"https://static.openfoodfacts.org/images/logos/off-logo-vertical-white-social-media-preview.png\">\n
|
|
55
|
-
\ <meta property=\"og:description\" content=\"A collaborative, free and
|
|
56
|
-
open database of ingredients, nutrition facts and information on food products
|
|
57
|
-
from around the world\">\n <link rel=\"apple-touch-icon\" sizes=\"180x180\"
|
|
58
|
-
href=\"/images/favicon/off/apple-touch-icon.png\">\n<link rel=\"icon\" type=\"image/png\"
|
|
59
|
-
sizes=\"32x32\" href=\"/images/favicon/off/favicon-32x32.png\">\n<link rel=\"icon\"
|
|
60
|
-
type=\"image/png\" sizes=\"16x16\" href=\"/images/favicon/off/favicon-16x16.png\">\n<link
|
|
61
|
-
rel=\"manifest\" href=\"/images/favicon/off/site.webmanifest\">\n<link rel=\"mask-icon\"
|
|
62
|
-
href=\"/images/favicon/off/safari-pinned-tab.svg\" color=\"#5bbad5\">\n<link
|
|
63
|
-
rel=\"shortcut icon\" href=\"/images/favicon/off/favicon.ico\">\n<meta name=\"msapplication-TileColor\"
|
|
64
|
-
content=\"#00aba9\">\n<meta name=\"msapplication-config\" content=\"/images/favicon/off/browserconfig.xml\">\n<meta
|
|
65
|
-
name=\"theme-color\" content=\"#ffffff\">\n\n\t<meta name=\"apple-itunes-app\"
|
|
66
|
-
content=\"app-id=588797948\">\n <link rel=\"canonical\" href=\"https://be-fr.openfoodfacts.org\">\n
|
|
67
|
-
\ <link rel=\"stylesheet\" href=\"https://static.openfoodfacts.org/css/dist/app-ltr.css?v=1758540229\"
|
|
68
|
-
data-base-layout=\"true\">\n <link rel=\"stylesheet\" href=\"https://static.openfoodfacts.org/css/dist/jqueryui/themes/base/jquery-ui.css\"
|
|
69
|
-
data-base-layout=\"true\">\n <link rel=\"stylesheet\" href=\"https://static.openfoodfacts.org/css/dist/select2.min.css\">\n
|
|
70
|
-
\ <link rel=\"search\" href=\"https://be-fr.openfoodfacts.org/cgi/opensearch.pl\"
|
|
71
|
-
type=\"application/opensearchdescription+xml\" title=\"Open Food Facts\">\n
|
|
72
|
-
\ <script type=\"module\" src=\"https://static.openfoodfacts.org/js/dist/off-webcomponents.bundled.js\"></script>\n\t\n
|
|
73
|
-
\ <style media=\"all\">\n \n\t\t\n\t\t.badge-container{\n\t\t\tmargin:
|
|
74
|
-
0 auto;\n\t\t}\n\n\t\t.badge-container img{\n\t\t\tmargin: 5px;\n\t\t}\n\t\t@media
|
|
75
|
-
only screen and (max-width: 537px ) and (min-width: 280px) {\n\t\t\t.badge-container{\n\t\t\t\twidth:
|
|
76
|
-
280px;\n\t\t\t}\n\t\t}\n\t\t@media only screen and (max-width: 279px ){\n\t\t\t.badge-container{\n\t\t\t\twidth:
|
|
77
|
-
130px;\n\t\t\t}\n\t\t}\n </style>\n</head>\n<body class=\"error_page\">\n\n\t<!--
|
|
78
|
-
Matomo -->\n<script>\n var _paq = window._paq = window._paq || [];\n /*
|
|
79
|
-
tracker methods like \"setCustomDimension\" should be called before \"trackPageView\"
|
|
80
|
-
*/\n _paq.push([\"setDocumentTitle\", document.domain + \"/\" + document.title]);\n
|
|
81
|
-
\ _paq.push([\"setCookieDomain\", \"*.openfoodfacts.org\"]);\n _paq.push([\"setDomains\",
|
|
82
|
-
[\"*.openfoodfacts.org\"]]);\n _paq.push([\"setDoNotTrack\", true]);\n _paq.push([\"disableCookies\"]);\n
|
|
83
|
-
\ _paq.push(['trackPageView']);\n _paq.push(['enableLinkTracking']);\n (function()
|
|
84
|
-
{\n var u=\"//analytics.openfoodfacts.org/\";\n _paq.push(['setTrackerUrl',
|
|
85
|
-
u+'matomo.php']);\n _paq.push(['setSiteId', '5']);\n var d=document,
|
|
86
|
-
g=d.createElement('script'), s=d.getElementsByTagName('script')[0];\n g.async=true;
|
|
87
|
-
g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);\n })();\n</script>\n<noscript><p><img
|
|
88
|
-
src=\"//analytics.openfoodfacts.org/matomo.php?idsite=5&rec=1\" style=\"border:0;\"
|
|
89
|
-
alt=\"\" /></p></noscript>\n<!-- End Matomo Code -->\n\n\n\n\t<off-webcomponents-configuration\n
|
|
90
|
-
\ language-code=\"en\"\n country-code=\"world\"\n robotoff-configuration='{\n
|
|
91
|
-
\ \"apiUrl\": \"https://robotoff.openfoodfacts.org/api/v1\",\n \"imgUrl\":
|
|
92
|
-
\"https://images.openfoodfacts.org/images/products\"\n }'\n \n openfoodfacts-api-url=\"https://be-fr.openfoodfacts.org\"\n
|
|
93
|
-
\ assets-images-path=\"https://static.openfoodfacts.org/css/dist/images\"\n
|
|
94
|
-
\ ></off-webcomponents-configuration>\n\t\n\t\n\t<div class=\"skip\"><a href=\"#content\"
|
|
95
|
-
tabindex=\"0\">Skip to Content</a></div>\n\t\n\n\t<div id=\"barcode-scanner-modal\"
|
|
96
|
-
class=\"modal is_hidden\">\n <div class=\"modal-backdrop\"></div>\n <div
|
|
97
|
-
class=\"modal-content\">\n <div class=\"modal-header\">\n <span><h2>Scan
|
|
98
|
-
a product<h2></span>\n <button class=\"modal-close-button\">×</button>\n
|
|
99
|
-
\ </div>\n <div>\n <barcode-scanner id=\"barcode-scanner\"></barcode-scanner>\n
|
|
100
|
-
\ </div>\n <div>\n </div>\n <div >\n <label for=\"barcode-modal-input\">Or
|
|
101
|
-
enter barcode manually</label>\n <div class=\"barcode-modal-group\">\n
|
|
102
|
-
\ <input type=\"text\" id=\"barcode-modal-input\" class=\"barcode-modal-input\"
|
|
103
|
-
inputmode=\"numeric\" pattern=\"\\d*\" />\n <button class=\"barcode-modal-button
|
|
104
|
-
button\" id=\"barcode-modal-button\" disabled>Scan</button>\n </div>\n
|
|
105
|
-
\ </div>\n </div>\n</div>\n\n<script src=\"https://static.openfoodfacts.org/js/dist/barcode-scanner.js\"></script>\n\n\n\t<div
|
|
106
|
-
id=\"page\">\n\t\t\n\t\t<div class=\"upper-nav contain-to-grid\" id=\"upNav\">\n\t\t\t<nav
|
|
107
|
-
class=\"top-bar \" data-topbar role=\"navigation\">\n\t\t\t\t\n\t\t\t\t<section
|
|
108
|
-
class=\"top-bar-section\">\n\t\t\t\t\t\n\t\t\t\t\t<!-- Left Nav Section -->\n\t\t\t\t\t<ul
|
|
109
|
-
class=\"left\">\n\n\t\t\t\t\t\t<li class=\"has-dropdown\">\n\t\t\t\t\t\t\t<a
|
|
110
|
-
id=\"menu_link\">\n\t\t\t\t\t\t\t\t<span class=\"material-icons\">\n\t\t\t\t\t\t\t\t\tmenu\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<ul
|
|
111
|
-
class=\"dropdown\">\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<li><a href=\"/discover\">Discover</a></li>\n\t\t\t\t\t\t\t\t\t<li><a
|
|
112
|
-
href=\"/contribute\">Contribute</a></li>\n\t\t\t\t\t\t\t\t\t<li class=\"divider\"></li>\n\t\t\t\t\t\t\t\t\t<li><label>Add
|
|
113
|
-
products</label></li>\n <!-- For reference: get_the_app_link_off\"
|
|
114
|
-
= /open-food-facts-mobile-app\" -->\n\t\t\t\t\t\t\t\t\t<li><a href=\"/open-food-facts-mobile-app?utm_source=off&utf_medium=web&utm_campaign=pro_platform_install_the_app_to_add_products_en\">Install
|
|
115
|
-
the app to add products</a></li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"/cgi/product.pl?type=search_or_add&action=display\">Add
|
|
116
|
-
a product</a></li>\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t<li class=\"divider\"></li>\n\t\t\t\t\t\t\t\t<li><label>Search
|
|
117
|
-
and analyze products</label></li>\n\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<a
|
|
118
|
-
href=\"/cgi/search.pl\">Advanced search</a>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<a
|
|
119
|
-
href=\"/cgi/search.pl?graph=1\">Graphs and maps</a>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul
|
|
120
|
-
class=\"country_language_selection\">\n\t\t\t\t\t\t\t\t<li class=\"has-form
|
|
121
|
-
has-dropdown\" id=\"select_country_li\">\n\t\t\t\t\t\t\t\t\t<select id=\"select_country\"
|
|
122
|
-
style=\"width:100%\" data-placeholder=\"Country\">\n\t\t\t\t\t\t\t\t\t\t<option></option>\n\t\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li
|
|
123
|
-
class=\"has-dropdown\">\n\t\t\t\t\t\t\t\t\t<a href=\"https://world.openfoodfacts.org/\">English</a>\n\n\t\t\t\t\t\t\t\t\t<ul
|
|
124
|
-
class=\"dropdown\">\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\n\n\t\t\t\t\t<!--
|
|
125
|
-
Right Nav Section -->\n\t\t\t\t\t\n\t\t\t\t\t<ul class=\"right\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<li
|
|
126
|
-
class=\"h-space-tiny has-form\">\n\t\t\t\t\t\t\t\t<a href=\"/cgi/session.pl\"
|
|
127
|
-
class=\"round button secondary\">\n\t\t\t\t\t\t\t\t\t<span class=\"material-icons
|
|
128
|
-
material-symbols-button\">account_circle</span>\n\t\t\t\t\t\t\t\t\tSign in\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\n\t\t\t\t\t</ul>\n\t\t\t\t</section>\n\t\t\t</nav>\n\t\t</div>\n\t\t\n\n\t\t<div
|
|
129
|
-
id=\"main_container\" style=\"position:relative\" class=\"block_latte\">\n\t\t\n\t\t\n\t\t<div
|
|
130
|
-
class=\"topbarsticky\">\n\t\t\t<div class=\"contain-to-grid \" id=\"offNav\"
|
|
131
|
-
>\n\t\t\t\t<nav class=\"top-bar\" data-topbar role=\"navigation\" >\n\n\t\t\t\t\t<ul
|
|
132
|
-
class=\"title-area\">\n\t\t\t\t\t\t<li class=\"name\">\n\t\t\t\t\t\t\t<div
|
|
133
|
-
style=\"position:relative;max-width:292px;\">\n\t\t\t\t\t\t\t\t<a href=\"/\">\n\t\t\t\t\t\t\t\t<img
|
|
134
|
-
id=\"logo\" src=\"https://static.openfoodfacts.org/images/logos/off-logo-horizontal-light.svg\"
|
|
135
|
-
alt=\"Open Food Facts\" style=\"margin:8px;height:48px;width:auto;\">\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t<section
|
|
136
|
-
class=\"top-bar-section\">\n\t\t\t\t\t\n\t\t\t\t\t\t<ul class=\"left small-4\">\n\t\t\t\t\t\t\t<li
|
|
137
|
-
class=\"search-li\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<form action=\"/cgi/search.pl\">\n\t\t\t\t\t\t\t\t<div
|
|
138
|
-
class=\"row\"><div class=\"small-12\">\n\t\t\t\t\t\t\t\t<div class=\"row collapse
|
|
139
|
-
postfix-round\">\n\t\t\t\t\t\t\t\t\t<div class=\"columns\">\n\t\t\t\t\t\t\t\t\t<input
|
|
140
|
-
type=\"text\" placeholder=\"Search for a product\" name=\"search_terms\" value=\"\"
|
|
141
|
-
style=\"background-color:white\">\n\t\t\t\t\t\t\t\t\t<input name=\"search_simple\"
|
|
142
|
-
value=\"1\" type=\"hidden\">\n\t\t\t\t\t\t\t\t\t<input name=\"action\" value=\"process\"
|
|
143
|
-
type=\"hidden\">\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"columns
|
|
144
|
-
postfix-button-wrapper\">\n\t\t\t\t\t\t\t\t\t<button type=\"submit\" title=\"Search\"
|
|
145
|
-
class=\"button postfix\" style=\"line-height:normal\"><svg xmlns=\"http://www.w3.org/2000/svg\"
|
|
146
|
-
viewBox=\"0 0 24 24\" class=\"icon\" aria-hidden=\"true\" focusable=\"false\"><path
|
|
147
|
-
d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5
|
|
148
|
-
3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49
|
|
149
|
-
19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14
|
|
150
|
-
9.5 14z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg></button>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div
|
|
151
|
-
class=\"columns postfix-button-wrapper is_hidden\">\n <button\n type=\"button\"\n
|
|
152
|
-
\ title=\"Scan a product\"\n class=\"button barcode-scanner-button\"\n
|
|
153
|
-
\ id=\"barcode-scanner-button\"\n >\n <svg style=\"width:24px;height:24px\"
|
|
154
|
-
viewBox=\"0 0 24 24\" class=\"icon\" aria-hidden=\"true\" focusable=\"false\"><path
|
|
155
|
-
d=\"M2,6H4V18H2V6M5,6H6V18H5V6M7,6H10V18H7V6M11,6H12V18H11V6M14,6H16V18H14V6M17,6H20V18H17V6M21,6H22V18H21V6Z\"/></svg>\n
|
|
156
|
-
\ </button>\n\n <script src=\"https://static.openfoodfacts.org/js/dist/barcode-scanner-button.js\"></script>\n</div>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div></div>\n\t\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t<ul
|
|
157
|
-
class=\"search_and_links\">\n\t\t\t\t\t\t<li><a href=\"/discover\" class=\"top-bar-links\">Discover</a></li>\n\t\t\t\t\t\t<li><a
|
|
158
|
-
href=\"/contribute\" class=\"top-bar-links\">Contribute</a></li>\n\t\t\t\t\t\t<li
|
|
159
|
-
class=\"show-for-xlarge-up\"><a href=\"https://world.pro.openfoodfacts.org/\"
|
|
160
|
-
class=\"top-bar-links\">Producers</a></li>\n\t\t\t\t\t\t<li class=\"flex-grid
|
|
161
|
-
getapp\"><a href=\"/open-food-facts-mobile-app?utm_source=off&utf_medium=web&utm_campaign=search_and_links_promo_en\"
|
|
162
|
-
class=\"buttonbar button\" style=\"top:0;\"><svg xmlns=\"http://www.w3.org/2000/svg\"
|
|
163
|
-
viewBox=\"0 0 24 24\" class=\"icon\" aria-hidden=\"true\" focusable=\"false\"><path
|
|
164
|
-
d=\"M16 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm-2
|
|
165
|
-
20h-4v-1h4v1zm3.25-3H6.75V4h10.5v14z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>
|
|
166
|
-
<span class=\"bt-text\">Get the app</span></a></li>\n\t\t\t\t<!-- For reference:
|
|
167
|
-
get_the_app_link_off\" = /open-food-facts-mobile-app\" -->\n </ul>\n\t\t\t\t\t</section>\n\t\t\t\t\t\n\t\t\t\t</nav>\n\t\t\t</div>\n\t\t</div>\n\n\t\n\t\n\t\t<nav
|
|
168
|
-
class=\"tab-bar hide\">\n\t\t\t<div class=\"left-small\">\n\t\t\t\t<a href=\"#idOfLeftMenu\"
|
|
169
|
-
role=\"button\" aria-controls=\"idOfLeftMenu\" aria-expanded=\"false\" class=\"left-off-canvas-toggle
|
|
170
|
-
button postfix anonymous\">\n\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\"
|
|
171
|
-
viewBox=\"0 0 24 24\" class=\"icon\" aria-hidden=\"true\" focusable=\"false\"><path
|
|
172
|
-
d=\"M3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.11 0-2
|
|
173
|
-
.9-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2
|
|
174
|
-
4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t\t<div
|
|
175
|
-
class=\"middle tab-bar-section\">\n\t\t\t\t<form action=\"/cgi/search.pl\">\n\t\t\t\t\t<div
|
|
176
|
-
class=\"row collapse\">\n\t\t\t\t\t\t<div class=\"small-8 columns\">\n\t\t\t\t\t\t\t<input
|
|
177
|
-
type=\"text\" placeholder=\"Search for a product\" name=\"search_terms\">\n\t\t\t\t\t\t\t<input
|
|
178
|
-
name=\"search_simple\" value=\"1\" type=\"hidden\">\n\t\t\t\t\t\t\t<input
|
|
179
|
-
name=\"action\" value=\"process\" type=\"hidden\">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div
|
|
180
|
-
class=\"small-2 columns\">\n\t\t\t\t\t\t\t<button type=\"submit\" class=\"button
|
|
181
|
-
postfix\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"
|
|
182
|
-
class=\"icon\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M15.5 14h-.79l-.28-.27C15.41
|
|
183
|
-
12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61
|
|
184
|
-
0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99
|
|
185
|
-
5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/><path d=\"M0 0h24v24H0z\"
|
|
186
|
-
fill=\"none\"/></svg></button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"small-2
|
|
187
|
-
columns\">\n\t\t\t\t\t\t\t<a href=\"/cgi/search.pl\" title=\"Advanced search\"><svg
|
|
188
|
-
xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"icon\"
|
|
189
|
-
aria-hidden=\"true\" focusable=\"false\"><path d=\"M15.5 14h-.79l-.28-.27C15.41
|
|
190
|
-
12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61
|
|
191
|
-
0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99
|
|
192
|
-
5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/><path d=\"M0 0h24v24H0z\"
|
|
193
|
-
fill=\"none\"/></svg> <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0
|
|
194
|
-
0 24 24\" class=\"icon\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19
|
|
195
|
-
13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg></a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</form>\n\t\t\t</div>\n\t\t</nav>\n\t\t\n\n\t\t<div
|
|
196
|
-
id=\"content\" class=\"off-canvas-wrap block_latte\" data-offcanvas>\n\t\t\t<div
|
|
197
|
-
class=\"inner-wrap\">\n\t\t\t\n\t\t\t\t<a class=\"exit-off-canvas\"></a>\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<!--
|
|
198
|
-
full width banner on mobile -->\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\t<div
|
|
199
|
-
class=\"main block_light\">\n\t\t\t\t\t<div id=\"main_column\">\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<!--
|
|
200
|
-
start templates/web/common/includes/donate_banner.tt.html -->\n\n\n\n<!--
|
|
201
|
-
Donation banner @ footer -->\n\n\n<!-- end templates/web/common/includes/donate_banner.tt.html
|
|
202
|
-
-->\n\n\t\t\t\t\t\t\t\t\n\n\n\n<section id=\"donation-banner-top\" class=\"donation-banner
|
|
203
|
-
row\">\n\n <div class=\"donation-banner__left-aside\">\n <div class=\"donation-banner__hook-section\">\n
|
|
204
|
-
\ <p>Help us inform millions of consumers around the world about what
|
|
205
|
-
they eat</p>\n </div>\n <img src=\"/images/misc/donation-banners/donation-banner-group-photo.png\"
|
|
206
|
-
alt=\"group photo donation 2024\" />\n </div>\n <div>\n <div class=\"donation-banner__aside\">\n
|
|
207
|
-
\ <div class=\"donation-banner__main-section\">\n <img\n width=\"50\"\n
|
|
208
|
-
\ height=\"50\"\n src=\"https://world.openfoodfacts.org/images/logos/logo-variants/CMJN-ICON_WHITE_BG_OFF.svg\"\n
|
|
209
|
-
\ alt=\"open food facts logo\"\n />\n <h3 class=\"donation-banner__main-title\">Please
|
|
210
|
-
give to our 2025 Fundraiser</h3>\n </div>\n <div style=\"padding:1rem;\">\n
|
|
211
|
-
\ <p>Your donations fund the day-to-day operations of our non-profit
|
|
212
|
-
association:</p>\n <ul>\n <li>\n keeping our database
|
|
213
|
-
open & available to all,\n <ul>\n <li>technical infrastructure
|
|
214
|
-
(website/mobile app) & a small permanent team</li>\n </ul>\n </li>\n
|
|
215
|
-
\ <li>\n <p>remain independent of the food industry,</p>\n
|
|
216
|
-
\ </li>\n <li>\n <p>engage a community of committed
|
|
217
|
-
citizens,</p>\n </li>\n <li>\n <p>support the
|
|
218
|
-
advancement of public health research.</p>\n </li>\n </ul>\n
|
|
219
|
-
\ </div>\n </div>\n <div class=\"donation-banner__actions-section\">\n
|
|
220
|
-
\ <div class=\"donation-banner__actions-section__financial\">\n <p>\n
|
|
221
|
-
\ \n Each donation counts! We appreciate your support in
|
|
222
|
-
bringing further food transparency in the world.\n \n </p>\n
|
|
223
|
-
\ </div>\n <div class=\"donation-banner__actions-section__donate-button\">\n
|
|
224
|
-
\ <a href=\"https://world.openfoodfacts.org/donate-to-open-food-facts?utm_source=off&utf_medium=web&utm_campaign=donate-2024-a&utm_term=en-text-button\">\n
|
|
225
|
-
\ <button>I SUPPORT</button>\n </a>\n </div>\n </div>\n
|
|
226
|
-
\ </div>\n\n\n <div class=\"donation-banner__close\">\n <button id=\"hide-donate-banner\"
|
|
227
|
-
class=\"material-icons modest\" onclick=\"DonationButton();\" onkeypress=\"DonationButton();\">close</button>\n
|
|
228
|
-
\ </div>\n</section>\n\n<script>\n let d = new Date();\n let bannerID =
|
|
229
|
-
document.getElementById('donation-banner-top');\n let getDomain = window.location.origin.split('.');\n\n
|
|
230
|
-
\ function setBannerCookie(bcname, bcval, bcexdays) {\n d.setTime(d.getTime()
|
|
231
|
-
+ (bcexdays*60*60*24*1000));\n let expires = 'expires=' + d.toUTCString();\n
|
|
232
|
-
\ // Apply cookie for every domain contains open...facts\n let domain
|
|
233
|
-
= 'domain=.' + getDomain.slice(1).join('.');\n document.cookie = bcname
|
|
234
|
-
+ '=' + bcval + ';' + expires + ';' + domain + ';SameSite=None;Secure;path=/';\n
|
|
235
|
-
\ }\n\n function getBannerCookie(bcname) {\n const name = bcname + '=';\n
|
|
236
|
-
\ const decodedCookies = decodeURIComponent(document.cookie);\n const
|
|
237
|
-
cookies = decodedCookies.split(';');\n for (const cookie of cookies) {\n
|
|
238
|
-
\ let c = cookie;\n while (c.charAt(0) == ' ') { c = c.substring(1);
|
|
239
|
-
}\n if (c.indexOf(name) == 0) { return c.substring(name.length, c.length);
|
|
240
|
-
}\n }\n\n return '';\n }\n\n function DonationButton() {\n setBannerCookie('off_days_2025',
|
|
241
|
-
1, 180);\n bannerID.style.display = 'none';\n }\n\n if (getBannerCookie('off_days_2025')
|
|
242
|
-
!== '') {\n bannerID.style.display = 'none';\n } else {\n bannerID.style.display
|
|
243
|
-
= 'flex';\n }\n</script>\n\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n
|
|
244
|
-
\ \t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t<div
|
|
245
|
-
class=\"small-12 column\">\n\t\t\t\t\t\t\t\t\t<h1 class=\"if-empty-dnone\">Error</h1>\n\t\t\t\t\t\t\t\t\t<p>Incorrect
|
|
246
|
-
user name or password. <a href=\"/cgi/reset_password.pl\">Forgotten password?</a></p>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t</div>\n\n\t\t\n\t\t<footer>\n\t\t\t<div
|
|
247
|
-
class=\"block_light bg-white\" id=\"install_the_app_block\">\n\t\t\t\t<div
|
|
248
|
-
class=\"row\">\n\t\t\t\t\t<div class=\"small-12 flex-grid v-space-short v-align-center
|
|
249
|
-
direction-row h-space-tiny\">\n\t\t\t\t\t\t<div class=\"cell small-100 medium-100
|
|
250
|
-
large-50 flex-grid v-align-center direction-row\">\n\t\t\t\t\t\t\t<img class=\"cell
|
|
251
|
-
small-50 v-align-center\" src=\"/images/illustrations/app-icon-in-the-clouds.svg\"
|
|
252
|
-
alt=\"The Open Food Facts logo in the cloud\" style=\"height:120px\">\n\t\t\t\t\t\t\t<div
|
|
253
|
-
class=\"cell small-50 v-align-center\" id=\"footer_scan\" style=\"display:block\">\n\t\t\t\t\t\t\t\t<div
|
|
254
|
-
id=\"footer_install_the_app\">\n\t\t\t\t\t\t\t\t\tInstall the app!\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\tScan
|
|
255
|
-
your <span id=\"everyday\">everyday</span> <span id=\"foods\">foods</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div
|
|
256
|
-
class=\"row\">\n\t\t\t\t\t\t\t<div class=\"small-12 medium-12 large-12 v-space-normal
|
|
257
|
-
column badge-container\">\n\t\t\t\t\t\t\t\t<!-- android_app_link - https://play.google.com/store/apps/details?id=org.openbeautyfacts.scanner&hl=en
|
|
258
|
-
-->\n\t\t\t\t\t\t\t\t<a href=\"https://play.google.com/store/apps/details?id=org.openfoodfacts.scanner&utm_source=off&utf_medium=web&utm_campaign=install_the_app_android_footer_en\"><img
|
|
259
|
-
src=\"/images/misc/playstore/img/latest/GetItOnGooglePlay_Badge_Web_color_English.svg\"
|
|
260
|
-
alt=\"Get It On Google Play\" loading=\"lazy\" height=\"40\" width=\"120\"></a>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<a
|
|
261
|
-
href=\"https://f-droid.org/packages/openfoodfacts.github.scrachx.openfood\"><img
|
|
262
|
-
src=\"/images/misc/f-droid/svg/get-it-on-en.svg\" alt=\"Available on F-Droid\"
|
|
263
|
-
loading=\"lazy\" height=\"40\" width=\"120\"></a>\n\n\t\t\t\t\t\t\t\t<!--
|
|
264
|
-
android_apk_app_link - https://world.openfoodfacts.org/images/apps/off.apk
|
|
265
|
-
-->\n\t\t\t\t\t\t\t\t<a href=\"https://github.com/openfoodfacts/smooth-app/releases/latest?utm_source=off&utf_medium=web&utm_campaign=install_the_app_apk_footer_en\"><img
|
|
266
|
-
src=\"/images/misc/app-landing-page/download-apk/download-apk_en.svg\" alt=\"Android
|
|
267
|
-
APK\" loading=\"lazy\" height=\"40\" width=\"120\"></a>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<!--
|
|
268
|
-
msgid \"https://apps.apple.com/app/open-beauty-facts/id1122926380\" -->\n\t\t\t\t\t\t\t\t<a
|
|
269
|
-
href=\"https://apps.apple.com/app/open-food-facts/id588797948?utm_source=off&utf_medium=web&utm_campaign=install_the_app_ios_footer_en\"><img
|
|
270
|
-
src=\"/images/misc/appstore/black/appstore_US.svg\" alt=\"Download on the
|
|
271
|
-
App Store\" loading=\"lazy\" height=\"40\" width=\"120\"></a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t\n
|
|
272
|
-
\ \t\t\t<!-- start templates/web/common/includes/donate_banner.tt.html
|
|
273
|
-
-->\n\n\n\n<!-- Donation banner @ footer -->\n\n\n<!-- end templates/web/common/includes/donate_banner.tt.html
|
|
274
|
-
-->\n\n\t\t\t\t\n\n<section class=\"donation-banner-footer row\">\n <div
|
|
275
|
-
class=\"donation-banner-footer__left-aside\">\n <div class=\"donation-banner-footer__hook-section\">\n
|
|
276
|
-
\ <p>Help us inform millions of consumers around the world about what
|
|
277
|
-
they eat</p>\n </div>\n <img src=\"/images/misc/donation-banners/donation-banner-group-photo.png\"
|
|
278
|
-
alt=\"group photo donation 2024\" />\n </div>\n <div>\n <div>\n <div
|
|
279
|
-
class=\"donation-banner-footer__main-section\">\n <img\n width=\"50\"\n
|
|
280
|
-
\ height=\"50\"\n src=\"https://world.openfoodfacts.org/images/logos/logo-variants/CMJN-ICON_WHITE_BG_OFF.svg\"\n
|
|
281
|
-
\ alt=\"open food facts logo\"\n />\n <h3 class=\"donation-banner-footer__main-title\">Please
|
|
282
|
-
give to our 2025 Fundraiser</h3>\n </div>\n <p>Your donations fund
|
|
283
|
-
the day-to-day operations of our non-profit association:</p>\n <ul>\n
|
|
284
|
-
\ <li>\n keeping our database open & available to all,\n <ul>\n
|
|
285
|
-
\ <li>technical infrastructure (website/mobile app) & a small permanent
|
|
286
|
-
team</li>\n </ul>\n </li>\n <li>\n <p>remain
|
|
287
|
-
independent of the food industry,</p>\n </li>\n <li>\n <p>engage
|
|
288
|
-
a community of committed citizens,</p>\n </li>\n <li>\n <p>support
|
|
289
|
-
the advancement of public health research.</p>\n </li>\n </ul>\n
|
|
290
|
-
\ </div>\n <div class=\"donation-banner-footer__actions-section\">\n
|
|
291
|
-
\ <div class=\"donation-banner-footer__actions-section__financial\">\n
|
|
292
|
-
\ <p>\n Each donation counts! We appreciate your support in
|
|
293
|
-
bringing further food transparency in the world.\n </p>\n </div>\n
|
|
294
|
-
\ <div class=\"donation-banner-footer__actions-section__donate-button\">\n
|
|
295
|
-
\ <a href=\"https://world.openfoodfacts.org/donate-to-open-food-facts?utm_source=off&utf_medium=web&utm_campaign=donate-2024-a&utm_term=en-text-button\">\n
|
|
296
|
-
\ <button>I SUPPORT</button>\n </a>\n </div>\n </div>\n
|
|
297
|
-
\ </div>\n</section>\n\n\n\t\t\t\n \t\t\n\t\t\t<div class=\"block_light
|
|
298
|
-
block_cappucino\" id=\"contribute_and_discover_links_block\">\n\t\t\t\t<div
|
|
299
|
-
class=\"row\">\n\t\t\t\t\t<div class=\"small-12 large-6 columns v-space-normal
|
|
300
|
-
block_off\">\n\t\t\t\t\t\t<h3 class=\"title-5 text-medium\">Join the community</h3>\n\t\t\t\t\t\t<p>Discover
|
|
301
|
-
our <a href=\"/code-of-conduct\">Code of conduct</a></p>\n\t\t\t\t\t\t<p>Join
|
|
302
|
-
us on <a href=\"https://slack.openfoodfacts.org\">Slack</a></p>\n\t\t\t\t\t\t<p><a
|
|
303
|
-
href=\"https://forum.openfoodfacts.org/\">Forum</a></p>\n\t\t\t\t\t\t<p id=\"footer_social_icons\">Follow
|
|
304
|
-
us: \n\t\t\t\t\t\t\t<a href=\"https://x.com/OpenFoodFacts\"><img src=\"/images/icons/dist/x.svg\"
|
|
305
|
-
class=\"footer_social_icon\" alt=\"x\"></a>\n\t\t\t\t\t\t\t<a href=\"https://www.facebook.com/OpenFoodFacts?utm_source=off&utf_medium=web\"><img
|
|
306
|
-
src=\"/images/icons/dist/facebook.svg\" class=\"footer_social_icon\" alt=\"Facebook\"></a>\n\t\t\t\t\t\t\t<a
|
|
307
|
-
href=\"https://www.instagram.com/open.food.facts/\"><img src=\"/images/icons/dist/instagram.svg\"
|
|
308
|
-
class=\"footer_social_icon\" alt=\"Instagram\"></a>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p><a
|
|
309
|
-
href=\"https://link.openfoodfacts.org/newsletter-en\">Subscribe to our newsletter</a></p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div
|
|
310
|
-
class=\"small-12 large-6 columns project v-space-normal\">\n\t\t\t\t\t\t<h3
|
|
311
|
-
class=\"title-5 text-medium\">Discover the project</h3>\n\t\t\t\t\t\t<ul class=\"inline-list
|
|
312
|
-
tags_links v-space-tiny h-space-tiny\" >\n\t\t\t\t\t\t\t<li><a class=\"button
|
|
313
|
-
small white-button radius\" href=\"/who-we-are\">Who we are</a></li>\n\t\t\t\t\t\t\t<li><a
|
|
314
|
-
class=\"button small white-button radius\" href=\"https://world.openfoodfacts.org/open-food-facts-vision-mission-values-and-programs\">Vision,
|
|
315
|
-
Mission, Values and Programs</a></li>\n\t\t\t\t\t\t\t<li><a class=\"button
|
|
316
|
-
small white-button radius\" href=\"https://support.openfoodfacts.org/help/en-gb\">Frequently
|
|
317
|
-
asked questions</a></li>\n\t\t\t\t\t\t\t<li><a class=\"button small white-button
|
|
318
|
-
radius\" href=\"https://blog.openfoodfacts.org/en/\">Open Food Facts blog</a></li>\n\t\t\t\t\t\t\t<li><a
|
|
319
|
-
class=\"button small white-button radius\" href=\"/press\">Press</a></li>\n\t\t\t\t\t\t\t<li><a
|
|
320
|
-
class=\"button small white-button radius\" href=\"https://wiki.openfoodfacts.org\">Open
|
|
321
|
-
Food Facts wiki (en)</a></li>\n\t\t\t\t\t\t\t<li><a class=\"button small white-button
|
|
322
|
-
radius\" href=\"/cgi/top_translators.pl\">Translators</a></li>\n\t\t\t\t\t\t\t<li><a
|
|
323
|
-
class=\"button small white-button radius\" href=\"/partners\">Partners</a></li>\n\t\t\t\t\t\t\t<li><a
|
|
324
|
-
class=\"button small white-button radius\" href=\"https://world.openbeautyfacts.org\">Open
|
|
325
|
-
Beauty Facts - Cosmetics</a></li>\n\t\t\t\t\t\t\t<li><a class=\"button small
|
|
326
|
-
white-button radius\" href=\"https://be-fr.pro.openfoodfacts.org/\">Open Food
|
|
327
|
-
Facts for Producers</a></li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div
|
|
328
|
-
class=\"block_off block_dark block_ristreto\" id=\"footer_block\">\n\n\t\t\t\t<div
|
|
329
|
-
id=\"footer_block_image_banner_outside\">\n\t\t\t\t\t<div id=\"footer_block_image_banner_outside2\">\n\n\t\t\t\t\t\t<div
|
|
330
|
-
class=\"row\">\n\n\t\t\t\t\t\t\t<div class=\"small-12 text-center v-space-short
|
|
331
|
-
h-space-large\">\n\t\t\t\t\t\t\t\t<a href=\"/\" style=\"font-size:1rem;\"><img
|
|
332
|
-
id=\"logo\" src=\"https://static.openfoodfacts.org/images/logos/off-logo-horizontal-mono-white.svg\"
|
|
333
|
-
alt=\"Open Food Facts\" style=\"margin:8px;height:48px;width:auto;\"></a>\n\n\t\t\t\t\t\t\t\t<p>A
|
|
334
|
-
collaborative, free and open database of food products from around the world.</p>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<ul
|
|
335
|
-
class=\"inline-list text-center text-small\">\n\t\t\t\t\t\t\t\t\t<li><a href=\"/legal\">Legal</a></li>\n\t\t\t\t\t\t\t\t\t<li><a
|
|
336
|
-
href=\"/privacy\">Privacy</a></li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"/terms-of-use\">Terms
|
|
337
|
-
of use</a></li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"/data\">Data, API and SDKs</a></li>\n\t\t\t\t\t\t\t\t\t<li><a
|
|
338
|
-
href=\"https://world.openfoodfacts.org/donate-to-open-food-facts\">Donate
|
|
339
|
-
to Open Food Facts</a></li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https://world.pro.openfoodfacts.org/\">Producers</a></li>\n\t\t\t\t\t\t\t\t\t<li><a
|
|
340
|
-
href=\"https://link.openfoodfacts.org/newsletter-en\">Subscribe to our newsletter</a></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</footer>\n\t\t\n\n\t</div>\n\n<script
|
|
341
|
-
src=\"https://static.openfoodfacts.org/js/dist/modernizr.js\" data-base-layout=\"true\"></script>\n<script
|
|
342
|
-
src=\"https://static.openfoodfacts.org/js/dist/jquery.js\" data-base-layout=\"true\"></script>\n<script
|
|
343
|
-
src=\"https://static.openfoodfacts.org/js/dist/jquery-ui.js\" data-base-layout=\"true\"></script>\n<script
|
|
344
|
-
src=\"https://static.openfoodfacts.org/js/dist/hc-sticky.js\"></script>\n<script
|
|
345
|
-
src=\"https://static.openfoodfacts.org/js/dist/display.js\"></script>\n<script
|
|
346
|
-
src=\"https://static.openfoodfacts.org/js/dist/stikelem.js\"></script>\n<script
|
|
347
|
-
src=\"https://static.openfoodfacts.org/js/dist/scrollNav.js\"></script>\n
|
|
348
|
-
\ \n\n<script>\n$(function() {\n\n\n});\n</script>\n\n\n\n<script src=\"https://static.openfoodfacts.org/js/dist/foundation.js\"
|
|
349
|
-
data-base-layout=\"true\"></script>\n<script src=\"https://static.openfoodfacts.org/js/dist/jquery.cookie.js\"></script>\n<script
|
|
350
|
-
src=\"https://static.openfoodfacts.org/js/dist/select2.min.js\"></script>\n\n<script>\n$(document).foundation({\n\tequalizer
|
|
351
|
-
: {\n\t\tequalize_on_stack: true\n\t},\n\taccordion: {\n\t\tcallback : function
|
|
352
|
-
(accordion) {\n\t\t\t$(document).foundation('equalizer', 'reflow');\n\t\t}\n\t}\n});\n\n</script>\n<script
|
|
353
|
-
type=\"application/ld+json\">\n{\n\t\"@context\" : \"https://schema.org\",\n\t\"@type\"
|
|
354
|
-
: \"WebSite\",\n\t\"name\" : \"Open Food Facts\",\n\t\"url\" : \"https://be-fr.openfoodfacts.org\",\n\t\"potentialAction\":
|
|
355
|
-
{\n\t\t\"@type\": \"SearchAction\",\n\t\t\"target\": \"https://be-fr.openfoodfacts.org/cgi/search.pl?search_terms=?{search_term_string}\",\n\t\t\"query-input\":
|
|
356
|
-
\"required name=search_term_string\"\n\t}\n}\n</script>\n<script type=\"application/ld+json\">\n{\n\t\"@context\":
|
|
357
|
-
\"https://schema.org/\",\n\t\"@type\": \"Organization\",\n\t\"url\": \"https://be-fr.openfoodfacts.org\",\n\t\"logo\":
|
|
358
|
-
\"https://static.openfoodfacts.org/images/logos/off-logo-vertical-light.svg\",\n\t\"name\":
|
|
359
|
-
\"Open Food Facts\",\n\t\"sameAs\" : [\"https://www.facebook.com/OpenFoodFacts?utm_source=off&utf_medium=web\",
|
|
360
|
-
\"https://x.com/OpenFoodFacts\"]\n}\n</script>\n\n\n\n\n\n</body>\n</html>\n\n\n\n<!--
|
|
361
|
-
end templates/web/common/site_layout.tt.html -->\n"
|
|
362
|
-
recorded_at: Mon, 29 Sep 2025 14:07:18 GMT
|
|
363
|
-
recorded_with: VCR 6.3.1
|