1 Jewish Relief Agency Client Survey 2026-

This summary compiles information on survey data collected anonymously from JRA recipients in 2026. Surveys included demographics questions, food insecurity questions, and satisfaction questions regarding JRA services. In January, the survey was sent to 1,800 households.

1.1 Demographics

1.2 JRA Services

What is your overall satisfaction with the food box you receive from JRA?
Total (n) Percentage (%)
Very satisfied 76 52.1
Satisfied 68 46.6
Dissatisfied 1 0.7
Very dissatisfied 1 0.7
How important is the delivery aspect of JRA’s services?
Total (n) Percentage (%)
Absolutely Essential 92 63.4
Important 53 36.6
Not Important 0 0.0
Because of the relief I receive from JRA services, I am able to save money to put towards paying my monthly bills
Total (n) Percentage (%)
Strongly Agree 72 50.3
Agree 56 39.2
Disagree 15 10.5
Strongly Disagree 0 0.0
Because of the JRA food box, I am less worried about having enough food each month.
Total (n) Percentage (%)
Strongly Agree 56 39.2
Agree 75 52.4
Disagree 12 8.4
Strongly Disagree 0 0.0
Because of the JRA food box, I have access to more nutritious food.
Total (n) Percentage (%)
Strongly Agree 58 40.8
Agree 69 48.6
Disagree 15 10.6
Strongly Disagree 0 0.0
Because of a current illness or disability, I am unable to get to a food store and therefore consider JRA’s services critical.
Total (n) Percentage (%)
Strongly Agree 62 43.4
Agree 60 42.0
Disagree 19 13.3
Strongly Disagree 2 1.4
The food and other supplies delivered by JRA improve the health of the individuals in my household
Total (n) Percentage (%)
Strongly Agree 59 41.3
Agree 72 50.3
Disagree 11 7.7
Strongly Disagree 1 0.7
Because of the food and other critical supplies delivered by JRA, I am able to live more independently
Total (n) Percentage (%)
Strongly Agree 55 38.5
Agree 72 50.3
Disagree 16 11.2
Strongly Disagree 0 0.0
Because of JRA’s services, I feel less isolated
Total (n) Percentage (%)
Strongly Agree 62 43.4
Agree 71 49.7
Disagree 10 7.0
Strongly Disagree 0 0.0
I look forward to interacting with the JRA volunteer who delivers my food
Total (n) Percentage (%)
Strongly Agree 58 41.1
Agree 74 52.5
Disagree 9 6.4
Strongly Disagree 0 0.0
Select up to 5 items from the JRA Food Box from the following list that are your favorite or most helpful.
Items Total (n) Percentage (%)
Nuts 113 76.9
Toilet paper 111 75.5
Salmon 108 73.5
Oil 105 71.4
Oatmeal 83 56.5
Applesauce 78 53.1
Canned Fruit 77 52.4
Mayonaisse 77 52.4
Canned tuna 65 44.2
Pasta/noodles 65 44.2
Canned Beans 41 27.9
Cereal 40 27.2
Canned Vegetables 36 24.5
Peanut butter 30 20.4
Dry Soup Mix 30 20.4
Dry Beans 22 15
Canned soup 19 12.9

1.3 Challenges you may face

Within the past 12 months, we worried whether our food would run out before we got money to buy more
Total (n) Percentage (%)
Often true 30 26.1
Sometimes true 64 55.7
Never true 21 18.3
Don’t know 0 0.0
Within the past 12 months, the food that we bought just didn’t last and we didn’t have money to get more
Total (n) Percentage (%)
Often true 13 11.7
Sometimes true 52 46.8
Never true 46 41.4
Don’t know 0 0.0
Which of the following expenses has the greatest impact on your household’s ability to buy enough food?
Items Total (n) Percentage (%)
Housing costs 111 75.5
Childcare costs 108 73.5
Taxes 83 56.5
Medical expenses 65 44.2
transportation costs 40 27.2
Utility costs 22 15
How often in the last 12 months did you or someone your household visit a food pantry?
Total (n) Percentage (%)
More than once a month 10 7.7
Once a month 35 26.9
Once every few months 7 5.4
Once or twice a year 8 6.2
Never 70 53.8
How often in the last 12 months did your household have food delivered from a pantry other than JRA?
Total (n) Percentage (%)
More than once a month 10 7.3
Once a month 40 29.2
Once every few months 4 2.9
Once or twice a year 2 1.5
Never 81 59.1

1.4 Culture and the Jewish Community

Do you or anyone in your household identify as Jewish?
Total (n) Percentage (%)
Yes 147 100
No 0 0
Does receiving a box of kosher food from JRA make you feel cared for by the Jewish community?
Total (n) Percentage (%)
Yes 138 96.5
No 5 3.5
Does receiving special foods for Jewish holidays in the JRA box enable you to have a more meaningful celebration?
Total (n) Percentage (%)
Yes 140 97.9
No 3 2.1
I do not identify as Jewish 0 0.0
Do you keep a kosher home?
Total (n) Percentage (%)
Yes 47 33.8
No 92 66.2
Do you or someone currently living in your household identify as a Holocaust Survivor?
Total (n) Percentage (%)
Yes 147 100
No 0 0
LS0tDQp0aXRsZTogIjIwMjYgSlJBIEV4ZWN1dGl2ZSBTdW1tYXJ5IEhvbG9jYXVzdCBTdXJ2aXZvciBIb3VzZWhvbGRzIg0KYXV0aG9yOiAiIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIHRvY19mbG9hdDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICB0b2NfY29sbGFwc2VkOiB5ZXMNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBzbW9vdGhfc2Nyb2xsOiB5ZXMNCiAgICB0aGVtZTogbHVtZW4NCiAgcGRmX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIGZpZ193aWR0aDogMw0KICAgIGZpZ19oZWlnaHQ6IDMNCiAgd29yZF9kb2N1bWVudDogDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6IDQNCiAgICBmaWdfY2FwdGlvbjogeWVzDQogICAga2VlcF9tZDogeWVzDQplZGl0b3Jfb3B0aW9uczogDQogIGNodW5rX291dHB1dF90eXBlOiBpbmxpbmUNCi0tLQ0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQojVE9DOjpiZWZvcmUgew0KICBjb250ZW50OiAiVGFibGUgb2YgQ29udGVudHMiOw0KICBmb250LXdlaWdodDogYm9sZDsNCiAgZm9udC1zaXplOiAxLjJlbTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGNvbG9yOiBuYXZ5Ow0KICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KfQ0KDQoNCmRpdiNUT0MgbGkgeyAgICAgLyogdGFibGUgb2YgY29udGVudCAgKi8NCiAgICBsaXN0LXN0eWxlOnVwcGVyLXJvbWFuOw0KICAgIGJhY2tncm91bmQtaW1hZ2U6bm9uZTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpub25lOw0KICAgIGJhY2tncm91bmQtcG9zaXRpb246MDsNCn0NCg0KaDEudGl0bGUgeyAgICAvKiBsZXZlbCAxIGhlYWRlciBvZiB0aXRsZSAgKi8NCiAgZm9udC1zaXplOiAyMnB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgY29sb3I6IERhcmtSZWQ7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgZm9udC1mYW1pbHk6ICJHaWxsIFNhbnMiLCBzYW5zLXNlcmlmOw0KfQ0KDQpoNC5hdXRob3IgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICBmb250LXNpemU6IDE1cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmb250LWZhbWlseTogc3lzdGVtLXVpOw0KICBjb2xvcjogbmF2eTsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpoNC5kYXRlIHsgLyogSGVhZGVyIDQgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgZm9udC1zaXplOiAxOHB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgZm9udC1mYW1pbHk6ICJHaWxsIFNhbnMiLCBzYW5zLXNlcmlmOw0KICBjb2xvcjogRGFya0JsdWU7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KaDEgeyAvKiBIZWFkZXIgMSAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICBmb250LXdlaWdodDogYm9sZDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogZGFya3JlZDsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQpoMiB7IC8qIEhlYWRlciAyIC0gYW5kIHRoZSBhdXRob3IgYW5kIGRhdGEgaGVhZGVycyB1c2UgdGhpcyB0b28gICovDQogICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBuYXZ5Ow0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCmgzIHsgLyogSGVhZGVyIDMgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgICBmb250LXNpemU6IDE2cHg7DQogICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IG5hdnk7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KaDQgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IGRhcmtyZWQ7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KLyogQWRkIGRvdHMgYWZ0ZXIgbnVtYmVyZWQgaGVhZGVycyAqLw0KLmhlYWRlci1zZWN0aW9uLW51bWJlcjo6YWZ0ZXIgew0KICBjb250ZW50OiAiLiI7DQoNCmJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9DQoNCi5oaWdobGlnaHRtZSB7IGJhY2tncm91bmQtY29sb3I6eWVsbG93OyB9DQoNCnAgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9DQoNCn0NCmBgYA0KDQpgYGB7ciBzZXR1cCwgY29tbWVudD1OQSwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRSwgY29tbWVudD1OQSkNCg0Kc2V0d2QoIkM6L1VzZXJzLzc1TFBZT1RUL09uZURyaXZlIC0gV2VzdCBDaGVzdGVyIFVuaXZlcnNpdHkgb2YgUEEvRGVza3RvcC9KUkEyMDIyIikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHN1bW1hcnl0b29scykNCmxpYnJhcnkocXVlc3Rpb25yKQ0KbGlicmFyeShrYWJsZUV4dHJhKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHNwbGl0c3RhY2tzaGFwZSkNCg0KDQpkYXRhPXJlYWQuY3N2KCJKUkEgZGF0YSB3aXRoIGxhYmVscyAyMDI2LmNzdiIsIGhlYWRlcj1UKQ0KdG90YWxuPW5yb3coZGF0YSkNCnJlc3BvbnNlcmF0ZT1yb3VuZCgxMDAqKHRvdGFsbi8yMzAwKSwgMSkNCmBgYA0KDQoNCiMgSmV3aXNoIFJlbGllZiBBZ2VuY3kgQ2xpZW50IFN1cnZleSAyMDI2LQ0KDQpUaGlzIHN1bW1hcnkgY29tcGlsZXMgaW5mb3JtYXRpb24gb24gc3VydmV5IGRhdGEgY29sbGVjdGVkIGFub255bW91c2x5IGZyb20gSlJBIHJlY2lwaWVudHMgaW4gMjAyNi4gU3VydmV5cyBpbmNsdWRlZCBkZW1vZ3JhcGhpY3MgcXVlc3Rpb25zLCBmb29kIGluc2VjdXJpdHkgcXVlc3Rpb25zLCBhbmQgc2F0aXNmYWN0aW9uIHF1ZXN0aW9ucyByZWdhcmRpbmcgSlJBIHNlcnZpY2VzLiBJbiBKYW51YXJ5LCB0aGUgc3VydmV5IHdhcyBzZW50IHRvIDEsODAwIGhvdXNlaG9sZHMuICANCg0KDQoNCmBgYHtyIHN1bW1hcnksIGluY2x1ZGU9RkFMU0V9DQoNCiNIQyBIb2xvY2F1c3Q9eWVzIGlzIHJlc3BvbmRlbnRzIHdobyBpZGVudGlmaWVkIGFzIEhDDQpkYXRhID0gZmlsdGVyKGRhdGEsIFEyMz09IlllcyIpDQp0b3RhbEhDPW5yb3coZGF0YSkNCg0KYGBgDQoNCg0KDQojIyBEZW1vZ3JhcGhpY3MNCg0KDQoNCiMjIEpSQSBTZXJ2aWNlcw0KDQpgYGAge3IgZGVtb2d9DQoNCg0KDQoNCg0KDQpgYGANCg0KDQoNCmBgYHtyIFEzfQ0KDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRM0YgPSBmYWN0b3IoDQogICAgUTMsDQogICAgbGV2ZWxzID0gYygiVmVyeSBzYXRpc2ZpZWQiLCAiU2F0aXNmaWVkIiwgIkRpc3NhdGlzZmllZCIsICJWZXJ5IGRpc3NhdGlzZmllZCIpKSkNCg0KcWMzPXRhYmxlKGRhdGEkUTNGKQ0KcXAzPTEwMCpwcm9wLnRhYmxlKHFjMykNCg0KcTM9Y2JpbmQocWMzLCBxcDMpDQoNCnEzICU+JQ0KICBrYmwoZGlnaXRzPTEsY2FwdGlvbj0iV2hhdCBpcyB5b3VyIG92ZXJhbGwgc2F0aXNmYWN0aW9uIHdpdGggdGhlIGZvb2QgYm94IHlvdSByZWNlaXZlIGZyb20gSlJBPyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCmBgYA0KIA0KDQpgYGB7ciBRNH0NCg0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTRGID0gZmFjdG9yKA0KICAgIFE0LA0KICAgIGxldmVscyA9IGMoIkFic29sdXRlbHkgRXNzZW50aWFsIiwgIkltcG9ydGFudCIsICJOb3QgSW1wb3J0YW50IikpKQ0KDQpxYzQ9dGFibGUoZGF0YSRRNEYpDQpxcDQ9MTAwKnByb3AudGFibGUocWM0KQ0KDQpxND1jYmluZChxYzQsIHFwNCkNCnE0ICU+JQ0KIGtibChkaWdpdHM9MSxjYXB0aW9uPSJIb3cgaW1wb3J0YW50IGlzIHRoZSBkZWxpdmVyeSBhc3BlY3Qgb2YgSlJB4oCZcyBzZXJ2aWNlcz8iLCBjb2wubmFtZXM9YygiVG90YWwgKG4pIiwgIlBlcmNlbnRhZ2UgKCUpIikpICU+JQ0KICBrYWJsZV9jbGFzc2ljXzIoZnVsbF93aWR0aD1GLCBodG1sX2ZvbnQ9IkNhbWJyaWEiKSAlPiUNCiAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQoNCiANCg0KDQpgYGB7ciBRNX0NCiMjI1F1ZXN0aW9uIDUgQmVjYXVzZSBvZiB0aGUgcmVsaWVmIEkgcmVjZWl2ZSBmcm9tIEpSQSBzZXJ2aWNlcywgSSBhbSBhYmxlIHRvIHNhdmUgbW9uZXkgdG8gcHV0ICMjIHRvd2FyZHMgcGF5aW5nIG15IG1vbnRobHkgYmlsbHMiDQoNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKFE1RiA9IGZhY3RvcigNCiAgICBRNSwNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCg0KcWM1PXRhYmxlKGRhdGEkUTVGKQ0KcXA1PTEwMCpwcm9wLnRhYmxlKHFjNSkNCg0KcTU9Y2JpbmQocWM1LCBxcDUpDQpxNSAlPiUNCiAga2JsKGRpZ2l0cz0xLCBjYXB0aW9uPSJCZWNhdXNlIG9mIHRoZSByZWxpZWYgSSByZWNlaXZlIGZyb20gSlJBIHNlcnZpY2VzLCBJIGFtIGFibGUgdG8gc2F2ZSBtb25leSB0byBwdXQgdG93YXJkcyBwYXlpbmcgbXkgbW9udGhseSBiaWxscyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KYGBgDQoNCiANCg0KDQpgYGB7ciBRNn0NCg0KIyNCZWNhdXNlIG9mIHRoZSBKUkEgZm9vZCBib3gsIEkgYW0gbGVzcyB3b3JyaWVkIGFib3V0IGhhdmluZyBlbm91Z2ggZm9vZCBlYWNoIG1vbnRoLg0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTZGID0gZmFjdG9yKA0KICAgIFE2LA0KICAgIGxldmVscyA9IGMoIlN0cm9uZ2x5IEFncmVlIiwgIkFncmVlIiwgIkRpc2FncmVlIiwgIlN0cm9uZ2x5IERpc2FncmVlIikpKQ0KDQpxYzY9dGFibGUoZGF0YSRRNkYpDQpxcDY9MTAwKnByb3AudGFibGUocWM2KQ0KDQpxNj1jYmluZChxYzYsIHFwNikNCnE2ICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkJlY2F1c2Ugb2YgdGhlIEpSQSBmb29kIGJveCwgSSBhbSBsZXNzIHdvcnJpZWQgYWJvdXQgaGF2aW5nIGVub3VnaCBmb29kIGVhY2ggbW9udGguIiwgDQogICAgICBjb2wubmFtZXM9YygiVG90YWwgKG4pIiwgIlBlcmNlbnRhZ2UgKCUpIikpICU+JQ0KICBrYWJsZV9jbGFzc2ljXzIoZnVsbF93aWR0aD1GLCBodG1sX2ZvbnQ9IkNhbWJyaWEiKSAlPiUNCiAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQoNCmBgYHtyIFE3fQ0KDQojI0JlY2F1c2Ugb2YgdGhlIEpSQSBmb29kIGJveCwgSSBoYXZlIGFjY2VzcyB0byBtb3JlIG51dHJpdGlvdXMgZm9vZC4NCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKFE3RiA9IGZhY3RvcigNCiAgICBRNywNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCg0KcWM3PXRhYmxlKGRhdGEkUTdGKQ0KcXA3PTEwMCpwcm9wLnRhYmxlKHFjNykNCg0KDQpxNz1jYmluZChxYzcsIHFwNykNCnE3ICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkJlY2F1c2Ugb2YgdGhlIEpSQSBmb29kIGJveCwgSSBoYXZlIGFjY2VzcyB0byBtb3JlIG51dHJpdGlvdXMgZm9vZC4iLCANCiAgICAgIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCmBgYA0KDQogDQoNCmBgYHtyIFE4fQ0KDQojIEJlY2F1c2Ugb2YgYSBjdXJyZW50IGlsbG5lc3Mgb3IgZGlzYWJpbGl0eSwgSSBhbSB1bmFibGUgdG8gZ2V0IHRvIGEgZm9vZCBzdG9yZSBhbmQgdGhlcmVmb3JlIGNvbnNpZGVyIEpSQeKAmXMgc2VydmljZXMgY3JpdGljYWwuDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShROEYgPSBmYWN0b3IoDQogICAgUTgsDQogICAgbGV2ZWxzID0gYygiU3Ryb25nbHkgQWdyZWUiLCAiQWdyZWUiLCAiRGlzYWdyZWUiLCAiU3Ryb25nbHkgRGlzYWdyZWUiKSkpDQoNCnFjOD10YWJsZShkYXRhJFE4RikNCnFwOD0xMDAqcHJvcC50YWJsZShxYzgpDQoNCnE4PWNiaW5kKHFjOCwgcXA4KQ0KcTglPiUNCiAga2JsKGRpZ2l0cz0xLCBjYXB0aW9uPSJCZWNhdXNlIG9mIGEgY3VycmVudCBpbGxuZXNzIG9yIGRpc2FiaWxpdHksIEkgYW0gdW5hYmxlIHRvIGdldCB0byBhIGZvb2Qgc3RvcmUgYW5kIHRoZXJlZm9yZSBjb25zaWRlciBKUkHigJlzIHNlcnZpY2VzIGNyaXRpY2FsLiIsDQogICAgICAgIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQpgYGANCg0KIA0KDQpgYGB7ciBROX0NCiMjVGhlIGZvb2QgYW5kIG90aGVyIHN1cHBsaWVzIGRlbGl2ZXJlZCBieSBKUkEgaW1wcm92ZSB0aGUgaGVhbHRoIG9mIHRoZSBpbmRpdmlkdWFscyBpbiBteSBob3VzZWhvbGQuDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShROUYgPSBmYWN0b3IoDQogICAgUTksDQogICAgbGV2ZWxzID0gYygiU3Ryb25nbHkgQWdyZWUiLCAiQWdyZWUiLCAiRGlzYWdyZWUiLCAiU3Ryb25nbHkgRGlzYWdyZWUiKSkpDQpxYzk9dGFibGUoZGF0YSRROUYpDQpxcDk9MTAwKnByb3AudGFibGUocWM5KQ0KDQpxOT1jYmluZChxYzksIHFwOSkNCnE5JT4lDQogIGtibChkaWdpdHM9MSwgY2FwdGlvbj0iVGhlIGZvb2QgYW5kIG90aGVyIHN1cHBsaWVzIGRlbGl2ZXJlZCBieSBKUkEgaW1wcm92ZSB0aGUgaGVhbHRoIG9mIHRoZSBpbmRpdmlkdWFscyBpbiBteSBob3VzZWhvbGQiLA0KICAgICAgICBjb2wubmFtZXM9YygiVG90YWwgKG4pIiwgIlBlcmNlbnRhZ2UgKCUpIikpICU+JQ0KICBrYWJsZV9jbGFzc2ljXzIoZnVsbF93aWR0aD1GLCBodG1sX2ZvbnQ9IkNhbWJyaWEiKSAlPiUNCiAgICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KYGBgDQoNCiANCg0KDQpgYGB7ciBRMTB9DQojQmVjYXVzZSBvZiB0aGUgZm9vZCBhbmQgb3RoZXIgY3JpdGljYWwgc3VwcGxpZXMgZGVsaXZlcmVkIGJ5IEpSQSwgSSBhbSBhYmxlIHRvIGxpdmUgbW9yZSBpbmRlcGVuZGVudGx5Lg0KDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMTBGID0gZmFjdG9yKA0KICAgIFExMCwNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCg0KcWMxMD10YWJsZShkYXRhJFExMEYpDQpxcDEwPTEwMCpwcm9wLnRhYmxlKHFjMTApDQoNCnExMD1jYmluZChxYzEwLCBxcDEwKQ0KcTEwICU+JQ0KICBrYmwoZGlnaXRzPTEsY2FwdGlvbj0iQmVjYXVzZSBvZiB0aGUgZm9vZCBhbmQgb3RoZXIgY3JpdGljYWwgc3VwcGxpZXMgZGVsaXZlcmVkIGJ5IEpSQSwgSSBhbSBhYmxlIHRvIGxpdmUgbW9yZSBpbmRlcGVuZGVudGx5IiwgDQogICAgICAgICAgICAgIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KYGBgDQoNCg0KDQpgYGB7ciBRMTF9DQoNCiNCZWNhdXNlIG9mIEpSQeKAmXMgc2VydmljZXMsIEkgZmVlbCBsZXNzIGlzb2xhdGVkLg0KDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMTFGID0gZmFjdG9yKA0KICAgIFExMSwNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCnFjMTE9dGFibGUoZGF0YSRRMTFGKQ0KcXAxMT0xMDAqcHJvcC50YWJsZShxYzExKQ0KDQoNCnExMT1jYmluZChxYzExLCBxcDExKQ0KDQpxMTEgJT4lDQogIGtibChkaWdpdHM9MSxjYXB0aW9uPSJCZWNhdXNlIG9mIEpSQeKAmXMgc2VydmljZXMsIEkgZmVlbCBsZXNzIGlzb2xhdGVkIiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIgKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KYGBgDQoNCg0KDQoNCmBgYHtyIFExMn0NCiNJIGxvb2sgZm9yd2FyZCB0byBpbnRlcmFjdGluZyB3aXRoIHRoZSBKUkEgdm9sdW50ZWVyIHdobyBkZWxpdmVycyBteSBmb29kLg0KDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMTJGID0gZmFjdG9yKA0KICAgIFExMiwNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCg0KcWMxMj10YWJsZShkYXRhJFExMkYpDQpxcDEyPTEwMCpwcm9wLnRhYmxlKHFjMTIpDQoNCnExMj1jYmluZChxYzEyLCBxcDEyKQ0KcTEyICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkkgbG9vayBmb3J3YXJkIHRvIGludGVyYWN0aW5nIHdpdGggdGhlIEpSQSB2b2x1bnRlZXIgd2hvIGRlbGl2ZXJzIG15IGZvb2QiLCBjb2wubmFtZXM9YygiVG90YWwgKG4pIiwgIlBlcmNlbnRhZ2UgKCUpIikpICU+JQ0KICBrYWJsZV9jbGFzc2ljXzIoZnVsbF93aWR0aD1GLCBodG1sX2ZvbnQ9IkNhbWJyaWEiKSAlPiUNCiAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQoNCg0KDQoNCg0KDQpgYGB7ciBRMTN9DQoNCnRvdGFsRkY9bnJvdyhkYXRhKQ0KDQpGRml0ZW1zIDwtIGRhdGEgJT4lDQogIG11dGF0ZSh0cD1jYXNlX3doZW4oZ3JlcGwoIlRvaWxldCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JQ0KICBtdXRhdGUoZHJ5YmVhbnM9Y2FzZV93aGVuKGdyZXBsKCJEcnkgQmVhbnMiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKGNlcmVhbD1jYXNlX3doZW4oZ3JlcGwoIkNlcmVhbCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JQ0KICBtdXRhdGUodHVuYT1jYXNlX3doZW4oZ3JlcGwoIlR1bmEiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHNhbG1vbj1jYXNlX3doZW4oZ3JlcGwoIlNhbG1vbiIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JQ0KICBtdXRhdGUob2F0bWVhbD1jYXNlX3doZW4oZ3JlcGwoIk9hdG1lYWwiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHBhc3RhPWNhc2Vfd2hlbihncmVwbCgiUGFzdGEiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHNvdXA9Y2FzZV93aGVuKGdyZXBsKCJDYW5uZWQgU291cCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JQ0KICBtdXRhdGUobnV0cz1jYXNlX3doZW4oZ3JlcGwoIk51dHMiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHBiPWNhc2Vfd2hlbihncmVwbCgiUGVhbnV0IiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkgJT4lICANCiAgICBtdXRhdGUoYXNhdWNlPWNhc2Vfd2hlbihncmVwbCgiQXBwbGVzYXVjZSIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JSAgDQogICAgbXV0YXRlKGNhbmJlYW5zPWNhc2Vfd2hlbihncmVwbCgiQ2FubmVkIEJlYW5zIiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkgJT4lICANCiAgICBtdXRhdGUoY2FuZnJ1aXQ9Y2FzZV93aGVuKGdyZXBsKCJDYW5uZWQgRnJ1aXQiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUgIA0KICAgIG11dGF0ZShjYW52ZWc9Y2FzZV93aGVuKGdyZXBsKCJDYW5uZWQgVmVnZXRhYmxlcyIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JSAgDQogICAgbXV0YXRlKGRyeXNvdXA9Y2FzZV93aGVuKGdyZXBsKCJEcnkgU291cCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JSAgDQogICAgbXV0YXRlKG9pbD1jYXNlX3doZW4oZ3JlcGwoIk9pbCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JSAgDQogICAgbXV0YXRlKG1heW89Y2FzZV93aGVuKGdyZXBsKCJNYXlvbm5haXNlIiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkNCg0KdDEzMSA8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyR0cCwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzIgPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkZHJ5YmVhbnMsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTMzIDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJGNlcmVhbCwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzQgPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkdHVuYSwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzUgPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkc2FsbW9uLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDEzNjwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJG9hdG1lYWwsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTM3PC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkcGFzdGEsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTM4PC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkc291cCwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzk8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRudXRzLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDEzMTA8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRwYiwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzExPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkYXNhdWNlLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDEzMTI8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRjYW5iZWFucywgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzEzPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkY2FuZnJ1aXQsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTMxNDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJGNhbnZlZywgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzE1PC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkZHJ5c291cCwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzE2PC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkb2lsLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDEzMTM8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRtYXlvLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KDQpsYWJlbHMxMz1jKCJUb2lsZXQgcGFwZXIiLCAiRHJ5IEJlYW5zIiwgIkNlcmVhbCIsICJDYW5uZWQgdHVuYSIsICJTYWxtb24iLCAiT2F0bWVhbCIsDQogICAgICAgICAgICJQYXN0YS9ub29kbGVzIiwgIkNhbm5lZCBzb3VwIiwgIk51dHMiLCAiUGVhbnV0IGJ1dHRlciIsICJBcHBsZXNhdWNlIiwNCiAgICAgICAgICAgIkNhbm5lZCBCZWFucyIsICJDYW5uZWQgRnJ1aXQiLCAiQ2FubmVkIFZlZ2V0YWJsZXMiLCAiRHJ5IFNvdXAgTWl4IiwgIk9pbCIsICJNYXlvbmFpc3NlIikNCiAgICAgICAgICAgDQogICAgICAgICAgIA0KY291bnRzMTM9Yyh0MTMxJG4gWzJdLCB0MTMyJG4gWzJdLCB0MTMzJG4gWzJdLCB0MTM0JG4gWzJdLCB0MTM1JG4gWzJdLCB0MTM2JG4gWzJdLCB0MTM3JG5bMl0sIHQxMzgkblsyXSwNCiAgICAgICAgICAgdDEzOSRuIFsyXSwgdDEzMTAkbiBbMl0sIHQxMzExJG4gWzJdLCB0MTMxMiRuIFsyXSwgdDEzMTMkbiBbMl0sIHQxMzE0JG4gWzJdLCB0MTMxNSRuWzJdLCB0MTMxNiRuWzJdLCB0MTMxMyRuWzJdKQ0KcGVyY2VudHMxMz1jKHQxMzEkblsyXS90b3RhbEZGLCB0MTMyJG5bMl0vdG90YWxGRiwgDQogICAgICAgICAgICAgdDEzMyRuWzJdL3RvdGFsRkYsIHQxMzQkblsyXS90b3RhbEZGLCANCiAgICAgICAgICAgICB0MTM1JG5bMl0vdG90YWxGRiwgdDEzNiRuWzJdL3RvdGFsRkYsDQogICAgICAgICAgICAgdDEzNyRuWzJdL3RvdGFsRkYsIHQxMzgkblsyXS90b3RhbEZGLA0KICAgICAgICAgICAgIHQxMzkkblsyXS90b3RhbEZGLCB0MTMxMCRuWzJdL3RvdGFsRkYsIA0KICAgICAgICAgICAgIHQxMzExJG5bMl0vdG90YWxGRiwgdDEzMTIkblsyXS90b3RhbEZGLA0KICAgICAgICAgICAgIHQxMzEzJG5bMl0vdG90YWxGRiwgdDEzMTQkblsyXS90b3RhbEZGLA0KICAgICAgICAgICAgIHQxMzE1JG5bMl0vdG90YWxGRiwgdDEzMTYkblsyXS90b3RhbEZGLA0KICAgICAgICAgICAgIHQxMzEzJG5bMl0vdG90YWxGRikNCg0KcGVyY2VudHMxMz0xMDAqcm91bmQocGVyY2VudHMxMywgMykNCg0KdGFibGUxMz1hcy5kYXRhLmZyYW1lKGNiaW5kKGxhYmVsczEzLCBjb3VudHMxMywgcGVyY2VudHMxMykpDQoNCnRhYmxlMTMgPSB0YWJsZTEzICU+JSBhcnJhbmdlKGRlc2MocGVyY2VudHMxMykpDQoNCnRhYmxlMTMgJT4lDQogIGtibChkaWdpdHM9MSwgY2FwdGlvbj0iU2VsZWN0IHVwIHRvIDUgaXRlbXMgZnJvbSB0aGUgSlJBIEZvb2QgQm94IGZyb20gdGhlIGZvbGxvd2luZyBsaXN0IHRoYXQgYXJlIHlvdXIgZmF2b3JpdGUgb3IgbW9zdCBoZWxwZnVsLiIsIGNvbC5uYW1lcz1jKCJJdGVtcyIsICJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQojIyBDaGFsbGVuZ2VzIHlvdSBtYXkgZmFjZQ0KDQoNCmBgYHtyIFExNH0NCg0KI1dpdGhpbiB0aGUgcGFzdCAxMiBtb250aHMsIHdlIHdvcnJpZWQgd2hldGhlciBvdXIgZm9vZCB3b3VsZCBydW4gb3V0IGJlZm9yZSB3ZSBnb3QgbW9uZXkgdG8gYnV5IG1vcmUuDQoNCg0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTE0RiA9IGZhY3RvcigNCiAgICBRMTQsDQogICAgbGV2ZWxzID0gYygiT2Z0ZW4gdHJ1ZSIsICJTb21ldGltZXMgdHJ1ZSIsICJOZXZlciB0cnVlIiwgIkRvbid0IGtub3ciKSkpDQoNCnFjMTQ9dGFibGUoZGF0YSRRMTRGKQ0KcXAxND0xMDAqcHJvcC50YWJsZShxYzE0KQ0KDQpxMTQ9Y2JpbmQocWMxNCwgcXAxNCkNCnExNCAlPiUNCiAga2JsKGRpZ2l0cz0xLCBjYXB0aW9uPSJXaXRoaW4gdGhlIHBhc3QgMTIgbW9udGhzLCB3ZSB3b3JyaWVkIHdoZXRoZXIgb3VyIGZvb2Qgd291bGQgcnVuIG91dCBiZWZvcmUgd2UgZ290IG1vbmV5IHRvIGJ1eSBtb3JlIiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KDQpgYGANCg0KDQoNCmBgYHtyIFExNX0NCiNXaXRoaW4gdGhlIHBhc3QgMTIgbW9udGhzLCB0aGUgZm9vZCB0aGF0IHdlIGJvdWdodCBqdXN0IGRpZG7igJl0IGxhc3QgYW5kIHdlIGRpZG7igJl0IGhhdmUgbW9uZXkgdG8gZ2V0IG1vcmUuDQoNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKFExNUYgPSBmYWN0b3IoDQogICAgUTE1LA0KICAgIGxldmVscyA9IGMoIk9mdGVuIHRydWUiLCAiU29tZXRpbWVzIHRydWUiLCAiTmV2ZXIgdHJ1ZSIsICJEb24ndCBrbm93IikpKQ0KDQpxYzE1PXRhYmxlKGRhdGEkUTE1RikNCnFwMTU9MTAwKnByb3AudGFibGUocWMxNSkNCg0KDQpxMTU9Y2JpbmQocWMxNSwgcXAxNSkNCnExNSAlPiUNCiAga2JsKGRpZ2l0cz0xLGNhcHRpb249IldpdGhpbiB0aGUgcGFzdCAxMiBtb250aHMsIHRoZSBmb29kIHRoYXQgd2UgYm91Z2h0IGp1c3QgZGlkbuKAmXQgbGFzdCBhbmQgd2UgZGlkbuKAmXQgaGF2ZSBtb25leSB0byBnZXQgbW9yZSIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KYGBgDQoNCg0KDQpgYGB7ciBRMTZ9DQojV2hpY2ggb2YgdGhlIGZvbGxvd2luZyBleHBlbnNlcyBoYXMgdGhlIGdyZWF0ZXN0IGltcGFjdCBvbiB5b3VyIGhvdXNlaG9sZOKAmXMgYWJpbGl0eSB0byBidXkgZW5vdWdoIGZvb2Q/DQoNCnRvdGFsRkY9bnJvdyhkYXRhKQ0KDQpGRml0ZW1zIDwtIGRhdGEgJT4lDQogIG11dGF0ZShob3VzaW5nPWNhc2Vfd2hlbihncmVwbCgiVG9pbGV0IiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkgJT4lDQogIG11dGF0ZSh1dGlsaXRpZXM9Y2FzZV93aGVuKGdyZXBsKCJEcnkgQmVhbnMiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHRyYW5zcG89Y2FzZV93aGVuKGdyZXBsKCJDZXJlYWwiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKG1lZGljYWw9Y2FzZV93aGVuKGdyZXBsKCJUdW5hIiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkgJT4lDQogIG11dGF0ZShjaGlsZGNhcmU9Y2FzZV93aGVuKGdyZXBsKCJTYWxtb24iLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHRheGVzPWNhc2Vfd2hlbihncmVwbCgiT2F0bWVhbCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpDQoNCg0KdDE2MSA8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRob3VzaW5nLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDE2MiA8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyR1dGlsaXRpZXMsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTYzIDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJHRyYW5zcG8sIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTY0IDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJG1lZGljYWwsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTY1IDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJGNoaWxkY2FyZSwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxNjYgPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkdGF4ZXMsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQoNCg0KbGFiZWxzMTY9YygiSG91c2luZyBjb3N0cyIsICJVdGlsaXR5IGNvc3RzIiwgInRyYW5zcG9ydGF0aW9uIGNvc3RzIiwgIk1lZGljYWwgZXhwZW5zZXMiLA0KICAgICAgICAgICAiQ2hpbGRjYXJlIGNvc3RzIiwgIlRheGVzIikNCiAgICAgICAgICAgDQogICAgICAgICAgIA0KY291bnRzMTY9Yyh0MTYxJG4gWzJdLCB0MTYyJG4gWzJdLCB0MTYzJG4gWzJdLCB0MTY0JG4gWzJdLCB0MTY1JG4gWzJdLCB0MTY2JG4gWzJdKQ0KcGVyY2VudHMxNj1jKHQxNjEkblsyXS90b3RhbEZGLCB0MTYyJG5bMl0vdG90YWxGRiwgDQogICAgICAgICAgICAgdDE2MyRuWzJdL3RvdGFsRkYsIHQxNjQkblsyXS90b3RhbEZGLCANCiAgICAgICAgICAgICB0MTY1JG5bMl0vdG90YWxGRiwgdDE2NiRuWzJdL3RvdGFsRkYpDQoNCnBlcmNlbnRzMTY9MTAwKnJvdW5kKHBlcmNlbnRzMTYsIDMpDQoNCnRhYmxlMTY9YXMuZGF0YS5mcmFtZShjYmluZChsYWJlbHMxNiwgY291bnRzMTYsIHBlcmNlbnRzMTYpKQ0KDQp0YWJsZTE2ID0gdGFibGUxNiAlPiUgYXJyYW5nZShkZXNjKHBlcmNlbnRzMTYpKQ0KDQp0YWJsZTE2ICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IldoaWNoIG9mIHRoZSBmb2xsb3dpbmcgZXhwZW5zZXMgaGFzIHRoZSBncmVhdGVzdCBpbXBhY3Qgb24geW91ciBob3VzZWhvbGTigJlzIGFiaWxpdHkgdG8gYnV5IGVub3VnaCBmb29kPyIsIGNvbC5uYW1lcz1jKCJJdGVtcyIsICJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQoNCiANCg0KYGBge3IgUTE3fQ0KI0hvdyBvZnRlbiBpbiB0aGUgbGFzdCAxMiBtb250aHMgZGlkIHlvdSBvciBzb21lb25lIHlvdXIgaG91c2Vob2xkIHZpc2l0IGEgZm9vZCBwYW50cnk/DQoNCg0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTE3RiA9IGZhY3RvcigNCiAgICBRMTcsDQogICAgbGV2ZWxzID0gYygiTW9yZSB0aGFuIG9uY2UgYSBtb250aCIsICJPbmNlIGEgbW9udGgiLCAiT25jZSBldmVyeSBmZXcgbW9udGhzIiwgDQogICAgICAgICAgICAgICAiT25jZSBvciB0d2ljZSBhIHllYXIiLCAiTmV2ZXIiKSkpDQoNCnFjMTc9dGFibGUoZGF0YSRRMTdGKQ0KcXAxNz0xMDAqcHJvcC50YWJsZShxYzE3KQ0KDQoNCnExNz1jYmluZChxYzE3LCBxcDE3KQ0KcTE3ICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkhvdyBvZnRlbiBpbiB0aGUgbGFzdCAxMiBtb250aHMgZGlkIHlvdSBvciBzb21lb25lIHlvdXIgaG91c2Vob2xkIHZpc2l0IGEgZm9vZCBwYW50cnk/IiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KDQpgYGANCg0KDQoNCmBgYHtyIFExOH0NCiNIb3cgb2Z0ZW4gaW4gdGhlIGxhc3QgMTIgbW9udGhzIGRpZCB5b3VyIGhvdXNlaG9sZCBoYXZlIGZvb2QgZGVsaXZlcmVkIGZyb20gYSBwYW50cnkgb3RoZXIgdGhhbiBKUkE/DQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMThGID0gZmFjdG9yKA0KICAgIFExOCwNCiAgICBsZXZlbHMgPSBjKCJNb3JlIHRoYW4gb25jZSBhIG1vbnRoIiwgIk9uY2UgYSBtb250aCIsICJPbmNlIGV2ZXJ5IGZldyBtb250aHMiLCANCiAgICAgICAgICAgICAgICJPbmNlIG9yIHR3aWNlIGEgeWVhciIsICJOZXZlciIpKSkNCg0KcWMxOD10YWJsZShkYXRhJFExOEYpDQpxcDE4PTEwMCpwcm9wLnRhYmxlKHFjMTgpDQoNCg0KcTE4PWNiaW5kKHFjMTgsIHFwMTgpDQpxMTggJT4lDQogIGtibChkaWdpdHM9MSwgY2FwdGlvbj0iSG93IG9mdGVuIGluIHRoZSBsYXN0IDEyIG1vbnRocyBkaWQgeW91ciBob3VzZWhvbGQgaGF2ZSBmb29kIGRlbGl2ZXJlZCBmcm9tIGEgcGFudHJ5IG90aGVyIHRoYW4gSlJBPyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KDQpgYGANCg0KIyMgQ3VsdHVyZSBhbmQgdGhlIEpld2lzaCBDb21tdW5pdHkNCg0KYGBge3IgUTE5fQ0KI0RvZXMgcmVjZWl2aW5nIGEgYm94IG9mIGtvc2hlciBmb29kIGZyb20gSlJBIG1ha2UgeW91IGZlZWwgY2FyZWQgZm9yIGJ5IHRoZSBKZXdpc2ggY29tbXVuaXR5Pw0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTE5RiA9IGZhY3RvcigNCiAgICBRMTksDQogICAgbGV2ZWxzID0gYygiWWVzIiwgIk5vIikpKQ0KDQpxYzE5PXRhYmxlKGRhdGEkUTE5RikNCnFwMTk9MTAwKnByb3AudGFibGUocWMxOSkNCg0KcTE5PWNiaW5kKHFjMTksIHFwMTkpDQpxMTkgJT4lDQogIGtibChkaWdpdHM9MSwgY2FwdGlvbj0iRG8geW91IG9yIGFueW9uZSBpbiB5b3VyIGhvdXNlaG9sZCBpZGVudGlmeSBhcyBKZXdpc2g/IiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KDQpgYGANCg0KDQoNCg0KYGBge3IgUTIwfQ0KDQojRG9lcyByZWNlaXZpbmcgYSBib3ggb2Yga29zaGVyIGZvb2QgZnJvbSBKUkEgbWFrZSB5b3UgZmVlbCBjYXJlZCBmb3IgYnkgdGhlIEpld2lzaCBjb21tdW5pdHk/DQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMjBGID0gZmFjdG9yKA0KICAgIFEyMCwNCiAgICBsZXZlbHMgPSBjKCJZZXMiLCAiTm8iKSkpDQoNCnFjMjA9dGFibGUoZGF0YSRRMjBGKQ0KcXAyMD0xMDAqcHJvcC50YWJsZShxYzIwKQ0KDQoNCnEyMD1jYmluZChxYzIwLCBxcDIwKQ0KcTIwICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkRvZXMgcmVjZWl2aW5nIGEgYm94IG9mIGtvc2hlciBmb29kIGZyb20gSlJBIG1ha2UgeW91IGZlZWwgY2FyZWQgZm9yIGJ5IHRoZSBKZXdpc2ggY29tbXVuaXR5PyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KDQpgYGANCg0KDQoNCmBgYHtyIFEyMX0NCiNEb2VzIHJlY2VpdmluZyBzcGVjaWFsIGZvb2RzIGZvciBKZXdpc2ggaG9saWRheXMgaW4gdGhlIEpSQSBib3ggZW5hYmxlIHlvdSB0byBoYXZlIGEgbW9yZSBtZWFuaW5nZnVsIGNlbGVicmF0aW9uPw0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTIxRiA9IGZhY3RvcigNCiAgICBRMjEsDQogICAgbGV2ZWxzID0gYygiWWVzIiwgIk5vIiwgIkkgZG8gbm90IGlkZW50aWZ5IGFzIEpld2lzaCIpKSkNCg0KcWMyMT10YWJsZShkYXRhJFEyMUYpDQpxcDIxPTEwMCpwcm9wLnRhYmxlKHFjMjEpDQoNCnEyMT1jYmluZChxYzIxLCBxcDIxKQ0KcTIxICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkRvZXMgcmVjZWl2aW5nIHNwZWNpYWwgZm9vZHMgZm9yIEpld2lzaCBob2xpZGF5cyBpbiB0aGUgSlJBIGJveCBlbmFibGUgeW91IHRvIGhhdmUgYSBtb3JlIG1lYW5pbmdmdWwgY2VsZWJyYXRpb24/IiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KYGBgDQoNCmBgYHtyIFEyMn0NCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKFEyMkYgPSBmYWN0b3IoDQogICAgUTIyLA0KICAgIGxldmVscyA9IGMoIlllcyIsICJObyIpKSkNCg0KcWMyMj10YWJsZShkYXRhJFEyMkYpDQpxcDIyPTEwMCpwcm9wLnRhYmxlKHFjMjIpDQoNCnEyMj1jYmluZChxYzIyLCBxcDIyKQ0KcTIyICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkRvIHlvdSBrZWVwIGEga29zaGVyIGhvbWU/IiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KYGBgDQoNCg0KIA0KYGBge3IgUTIzfQ0KI0RvIHlvdSBvciBzb21lb25lIGN1cnJlbnRseSBsaXZpbmcgaW4geW91ciBob3VzZWhvbGQgaWRlbnRpZnkgYXMgYSBIb2xvY2F1c3QgU3Vydml2b3I/DQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMjNGID0gZmFjdG9yKA0KICAgIFEyMywNCiAgICBsZXZlbHMgPSBjKCJZZXMiLCAiTm8iKSkpDQoNCnFjMjM9dGFibGUoZGF0YSRRMjNGKQ0KcXAyMz0xMDAqcHJvcC50YWJsZShxYzIzKQ0KDQpxMjM9Y2JpbmQocWMyMywgcXAyMykNCnEyMyAlPiUNCiAga2JsKGRpZ2l0cz0xLCBjYXB0aW9uPSJEbyB5b3Ugb3Igc29tZW9uZSBjdXJyZW50bHkgbGl2aW5nIGluIHlvdXIgaG91c2Vob2xkIGlkZW50aWZ5IGFzIGEgSG9sb2NhdXN0IFN1cnZpdm9yPyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCmBgYA0K