Specific exposures (n = 68)

a. Arrived WTC 9/11-13

b. Worked in dust cloud

c. Worked on/adjacent to pit/pile

d. Worked greater than median hours

e. Exposed to human remains

f. Worked in search, rescue, recovery Sep-Oct 2001

g. Know someone who died 9/11

h. Know someone injured 9/11

i. Injured at WTC

j. Slept on-site Sep-Oct 2001

Descriptives

Full neuroimaging sample


================================================================================
Statistic                      N  Mean  St. Dev.  Min  Pctl(25) Pctl(75)   Max  
--------------------------------------------------------------------------------
CAPS5_PM_total                 68 8.853  13.717    0      0        12      46   
CTQ_emoNeglect                 67 8.164  4.002   5.000  5.000    10.000  25.000 
CTQ_physNeglect                68 6.441  2.903     5      5        7       24   
CTQ_emoAbuse                   67 6.836  3.471   5.000  5.000    7.000   25.000 
CTQ_physAbuse                  68 6.279  1.794     5      5        7       13   
CTQ_sexAbuse                   68 6.338  4.280     5      5        5       24   
TLEQ_totalExclCT_nonW          67 9.478  17.372  0.000  5.000    8.500   107.000
TLEQ_sexualViolencePost18_nonW 67 0.045  0.208   0.000  0.000    0.000    1.000 
WTCexposure_score              60 4.567  2.158   0.000  3.000    6.000   10.000 
--------------------------------------------------------------------------------

Low-exposed controls (n = 17)


==============================================================================
Statistic                      N  Mean  St. Dev.  Min  Pctl(25) Pctl(75)  Max 
------------------------------------------------------------------------------
CAPS5_PM_total                 17 1.235  1.715     0      0        2       5  
CTQ_emoNeglect                 17 6.588  2.181     5      5        7      13  
CTQ_physNeglect                17 5.647  1.367     5      5        5       9  
CTQ_emoAbuse                   17 5.824  1.811     5      5        6      12  
CTQ_physAbuse                  17 5.706  1.047     5      5        6       9  
CTQ_sexAbuse                   17 5.176  0.728     5      5        5       8  
TLEQ_totalExclCT_nonW          17 5.235  2.107     0      4        6       8  
TLEQ_sexualViolencePost18_nonW 17 0.059  0.243     0      0        0       1  
WTCexposure_score              15 1.867  0.915   0.000  1.000    2.500   3.000
------------------------------------------------------------------------------

Resilient (n = 31)


=================================================================================
Statistic                      N   Mean  St. Dev.  Min  Pctl(25) Pctl(75)   Max  
---------------------------------------------------------------------------------
CAPS5_PM_total                 31 0.968   1.169     0      0        2        4   
CTQ_emoNeglect                 31 7.290   3.079     5      5       8.5      16   
CTQ_physNeglect                31 5.484   1.235     5      5        5       10   
CTQ_emoAbuse                   31 5.774   1.802     5      5        6       14   
CTQ_physAbuse                  31 5.613   0.955     5      5        6        9   
CTQ_sexAbuse                   31 5.935   3.540     5      5        5       24   
TLEQ_totalExclCT_nonW          30 12.767  25.605  1.000  4.250    9.000   107.000
TLEQ_sexualViolencePost18_nonW 30 0.000   0.000   0.000  0.000    0.000    0.000 
WTCexposure_score              30 5.500   1.225   4.000  5.000    6.000    9.000 
---------------------------------------------------------------------------------

PTSD (n = 20)


================================================================================
Statistic                      N   Mean  St. Dev.  Min  Pctl(25) Pctl(75)  Max  
--------------------------------------------------------------------------------
CAPS5_PM_total                 20 27.550  11.727   10     18.8      37      46  
CTQ_emoNeglect                 19 11.000  5.153   5.000  7.000    14.000  25.000
CTQ_physNeglect                20 8.600   4.333     5     5.8       10      24  
CTQ_emoAbuse                   19 9.474   5.059   5.000  6.000    11.000  25.000
CTQ_physAbuse                  20 7.800   2.353     5     5.8       9       13  
CTQ_sexAbuse                   20 7.950   6.337     5      5        5       23  
TLEQ_totalExclCT_nonW          20 8.150   2.978     3      6       10.2     15  
TLEQ_sexualViolencePost18_nonW 20 0.100   0.308     0      0        0       1   
WTCexposure_score              15 5.400   2.293   2.000  3.500    7.000   10.000
--------------------------------------------------------------------------------

Data visualization

n WTC exposures

Full neuroimaging sample

Warning: Removed 8 rows containing non-finite values (stat_bin).

By group

Warning: Removed 8 rows containing non-finite values (stat_bin).
Warning: Removed 8 rows containing non-finite values (stat_boxplot).
Warning: Removed 8 rows containing missing values (geom_point).
Warning: Removed 8 rows containing missing values (geom_point).

CAPS-5 PM

Full neuroimaging sample

By group

CTQ emotional neglect

Full neuroimaging sample

Warning: Removed 1 rows containing non-finite values (stat_bin).

By group

Warning: Removed 1 rows containing non-finite values (stat_bin).
Warning: Removed 1 rows containing non-finite values (stat_boxplot).
Warning: Removed 1 rows containing missing values (geom_point).
Warning: Removed 1 rows containing missing values (geom_point).

CTQ physical neglect

Full neuroimaging sample

By group

CTQ emotional abuse

Full neuroimaging sample

Warning: Removed 1 rows containing non-finite values (stat_bin).

By group

Warning: Removed 1 rows containing non-finite values (stat_bin).
Warning: Removed 1 rows containing non-finite values (stat_boxplot).
Warning: Removed 1 rows containing missing values (geom_point).
Warning: Removed 1 rows containing missing values (geom_point).

CTQ physical abuse

Full neuroimaging sample

By group

CTQ sexual abuse

Full neuroimaging sample

By group

TLEQ total excluding childhood trauma (non-weighted)

Full neuroimaging sample

Warning: Removed 1 rows containing non-finite values (stat_bin).

By group

Warning: Removed 1 rows containing non-finite values (stat_bin).
Warning: Removed 1 rows containing non-finite values (stat_boxplot).
Warning: Removed 1 rows containing missing values (geom_point).
Warning: Removed 1 rows containing missing values (geom_point).

TLEQ sexual violence >18 yrs (non-weighted)

Full neuroimaging sample

Warning: Removed 1 rows containing non-finite values (stat_count).

By group

Warning: Removed 1 rows containing non-finite values (stat_count).

LS0tCnRpdGxlOiAiTWVldGluZyAwMi0yMy0yMiIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdG9jOiB5ZXMKLS0tCgoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UpCmtuaXRyOjpvcHRzX2tuaXQkc2V0KHJvb3QuZGlyID0gIi9Wb2x1bWVzL0V4dGVybmFsL1dUQ19yZXNpbGllbmNlX2ltYWdpbmcvYW5hbHlzaXMvTWVldGluZyAwMi0yMy0yMiIpCmBgYAoKYGBge3IsIGVjaG89RkFMU0V9CiNzZXR1cApsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KG1pY2UpCmxpYnJhcnkoZ2xtbmV0KQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZ2djb3JycGxvdCkKbGlicmFyeShzdHJpbmdyKQpsaWJyYXJ5KGZvcmVpZ24pCmxpYnJhcnkoc3RhcmdhemVyKQpsaWJyYXJ5KGNvd3Bsb3QpCgpybShsaXN0ID0gbHMoKSkKCiNsb2FkIGRlbW9ncmFwaGljIGFuZCBzZWxmLXJlcG9ydCBkYXRhIGZvciBOV1RDIHBhcnRpY2lwYW50cyBzbyBmYXIgCmRzRGF0YTwtcmVhZC5jc3YoIlN0dWR5TWVhc3VyZXMtQWduZXNOV1RDaW5pdGlhbGFuYWxfREFUQV8yMDIyLTAyLTIzXzEwMzEuY3N2Iiwgc3RyaXAud2hpdGU9VFJVRSwgbmEuc3RyaW5ncz0iIikKI2xvYWQgY2xpbmljaWFuLWRldGVybWluZWQgZGF0YSBmb3IgTldUQyBwYXJ0aWNpcGFudHMgc28gZmFyCmNsRGF0YTwtcmVhZC5jc3YoIkNsaW5pY2lhbk1lYXN1cmVzLUFnbmVzTldUQ2NsaW5pY2FsaW5pX0RBVEFfMjAyMi0wMi0yM18xMDMzLmNzdiIsIHN0cmlwLndoaXRlPVRSVUUsIG5hLnN0cmluZ3M9IiIpCnYyRGF0YTwtcmVhZC5jc3YoIkNVUlJFTlRTdWJqZWN0RW5yb2xsLVZpc2l0MkNvbXBsZXRlcnNGb3JTX0RBVEFfMjAyMi0wMi0yM18xMDM2LmNzdiIsIHN0cmlwLndoaXRlPVRSVUUsIG5hLnN0cmluZ3M9IiIpCmJpZHNfaWQ8LXJlYWQuY3N2KCIvVm9sdW1lcy9FeHRlcm5hbC9XVENfcmVzaWxpZW5jZV9pbWFnaW5nL3BwdF9jb2RpbmdfY3VycmVudF9ub1BISS5jc3YiLCBzdHJpcC53aGl0ZT1UUlVFLCBuYS5zdHJpbmdzPSIiKQoKIyBnZXQgc3BlY2lmaWMgZXhwb3N1cmVzCiMgMTAgV1RDIGV4cG9zdXJlIHZhcmlhYmxlcyBhcmUgbGFiZWxlZCBpbmRleF9hIHRvIGluZGV4X2ouCiNhLiAgICAgICBBcnJpdmVkIFdUQyA5LzExLTEzCiNiLiAgICAgICBXb3JrZWQgaW4gRHVzdCBDbG91ZAojYy4gICAgICAgV29ya2VkIG9uL2FkamFjZW50IHRvIHBpdC9waWxlCiNkLiAgICAgICBXb3JrZWQgZ3JlYXRlciB0aGFuIG1lZGlhbiBob3VycwojZS4gICAgICAgRXhwb3NlZCB0byBodW1hbiByZW1haW5zCiNmLiAgICAgICAgV29ya2VkIGluIHNlYXJjaCwgcmVzY3VlLCByZWNvdmVyeSBzZXAtb2N0CiNnLiAgICAgICBLbm93IHNvbWVvbmUgd2hvIGRpZWQgOS8xMQojaC4gICAgICAgS25vdyBzb21lb25lIGluanVyZWQgOS8xMQojaS4gICAgICAgICBJbmp1cmVkIGF0IFdUQwojai4gICAgICAgICBTbGVwdCBvbi1zaXRlIGR1cmluZyBTZXAtT2N0IDIwMDEKCmV4cG9zdXJlczwtcmVhZC5jc3YoInd0Y19tcmlfc3R1ZHlfcGFydGljaXBhbnRzX3dpdGhfaW5kaWNlcy5jc3YiLCBzdHJpcC53aGl0ZT1UUlVFLCBuYS5zdHJpbmdzPSIiKQoKIyMjIwogCiNyZW5hbWUgSUQgdmFyaWFibGUgdG8gbWF0Y2ggdmFyaWFibGUgaW4gY2xpbmljaWFuICYgc3R1ZHkgbWVhc3VyZXMgJiBkcm9wIHZhcnMgYXMgbmVlZGVkCnYyRGF0YSA8LSBkcGx5cjo6cmVuYW1lKHYyRGF0YSwgcmVjb3JkX2lkID0gbnd0Y19pZCwgYmlvbWFya2Vyc19pZCA9IGJpb21faWQsIGV4dHJhY3RfaWQgPSBkY19leHRyYWN0aWQpIApiaWRzX2lkIDwtIGRwbHlyOjpyZW5hbWUoYmlkc19pZCwgcmVjb3JkX2lkID0gTldUQ19JRCwgYmlkc19pZCA9IEJJRFNfSUQpIApiaWRzX2lkIDwtIGRwbHlyOjpzZWxlY3QoYmlkc19pZCwgYyhyZWNvcmRfaWQsIGJpZHNfaWQsIHRyYWRpdGlvbmFsX3Jlc3BvbmRlciwgaGFuZGVkX0wsIG1lZF9wc3ljaG9hY3RpdmVfY3VycikpCgojIHJlbW92ZSBzdWJqZWN0cyAiVEVTVCIgZnJvbSB2MkRhdGEsIGFuZCAiTldUQy0wNTMgSW50ZXJ2YWwiIGZyb20gZHNEYXRhCmRzRGF0YSA8LSBkcGx5cjo6ZmlsdGVyKGRzRGF0YSwgIWdyZXBsKCJOV1RDLTA1MyBJbnRlcnZhbCBEYXRhIHByZSBWMyIscmVjb3JkX2lkKSkKdjJEYXRhIDwtIGRwbHlyOjpmaWx0ZXIodjJEYXRhLCAhZ3JlcGwoIlRFU1QiLHJlY29yZF9pZCkpCgojbWVyZ2UgdG9nZXRoZXIKZGF0YTE8LW1lcmdlKGNsRGF0YSxkc0RhdGEsYnk9InJlY29yZF9pZCIpCmRhdGE8LW1lcmdlKGRhdGExLHYyRGF0YSxieT0icmVjb3JkX2lkIikgJT4lIGRwbHlyOjpmaWx0ZXIoZm1yaV9zY2FuID09IDEpICNzZWxlY3Qgb25seSBwYXJ0aWNpcGFudHMgd2hvIChzbyBmYXIpIGNvbXBsZXRlZCB0aGUgc2NhbiAodmlzaXQgMikKZGF0YTwtbWVyZ2UoZGF0YSxiaWRzX2lkLCBieT0icmVjb3JkX2lkIikKCiMgcmVjb2RlIDUtY2F0ZWdvcnkgYGdyb3VwYCB2YXJpYWJsZSBpbnRvIDMgZ3JvdXBzCiMgMSA9IEhpZ2hseSBSZXNpbGllbnQgKDEpCiMgMiA9IFN5bXB0b21hdGljIChQVFNEKSAoMikKIyAzID0gTG93LUV4cG9zZWQgQ29udHJvbCAoMykKIyA0ID0gSW50ZXJtZWRpYXRlLUxvdyAoUmVzaWxpZW50KSAoNCkKIyA1ID0gSW50ZXJtZWRpYXRlLUhpZ2ggKFJlc2lsaWVudCkKZGF0YSA8LSBkYXRhICU+JSBkcGx5cjo6bXV0YXRlKGdyb3VwID0gcmVjb2RlX2ZhY3Rvcihncm91cCwgYDNgID0gMCwgYDFgID0gMSwgYDJgID0gMiwgYDRgID0gMSwgYDVgPTEpKQojIG5vdyAwID0gbG93LWV4cG9zZWQgY29udHJvbCwgMSA9IHJlc2lsaWVudCwgMiA9IFBUU0QKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIy1TRUxGIFJFUE9SVEVEIFRSQVVNQSBISVNUT1JZCiNjYWxjdWxhdGUgc2VsZi1yZXBvcnRlZCBjaGlsZGhvb2QgdHJhdW1hIGV4cG9zdXJlIChDVFEpCmN0cTwtZGF0YVssIGdyZXAocGF0dGVybiA9J15jdHFfLionLCBuYW1lcyhkYXRhKSldCmN0cVtjKDIsNSw3LDEzLDE5LDI2LDI4KV08LWxhcHBseShjdHFbYygyLDUsNywxMywxOSwyNiwyOCldLCBGVU49ZnVuY3Rpb24oeCkgI3JldmVyc2UgY29kZWQgaXRlbXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2RlKHgsJzEnPTUsJzInPTQsJzMnPTMsJzMuNSc9MywnNCc9MiwnNSc9MSkpCmRhdGEkQ1RRX2Vtb0FidXNlPC1yb3dTdW1zKGN0cVtjKDMsOCwxNCwxOCwyNSldKQpkYXRhJENUUV9waHlzQWJ1c2U8LXJvd1N1bXMoY3RxW2MoOSwxMSwxMiwxNSwxNyldKQpkYXRhJENUUV9zZXhBYnVzZTwtcm93U3VtcyhjdHFbYygyMCwyMSwyMywyNCwyNyldKQpkYXRhJENUUV9lbW9OZWdsZWN0PC1yb3dTdW1zKGN0cVtjKDUsNywxMywxOSwyOCldKSAgCmRhdGEkQ1RRX3BoeXNOZWdsZWN0PC1yb3dTdW1zKGN0cVtjKDEsMiw0LDYsMjYpXSkKY29sbmFtZXMoY3RxKTwtcGFzdGUwKCd1c2UuJywgbmFtZXMoY3RxKSkKZGF0YTwtY2JpbmQoZGF0YSwgY3RxKQoKI2NhbGN1bGF0ZSBzZWxmLXJlcG9ydGVkIGxpZmV0aW1lIHRyYXVtYXRpYyBldmVudHMgKFRMRVEpCiMxLiBGb3IgcGFydGljaXBhbnRzIHdobyBhcmVuJ3QgZnJvbSB0aGUgYmlvbWFya2VycyBzbyBoYXZlIGZ1bGwgVExFUToKI2ZyZXF1ZW5jeSB3ZWlnaHRlZCBzY29yZXM6CnRsZXE8LWRhdGFbZGF0YSRiaW9tYXJrZXJzX2NvbXBsZXRlcj09MCwgZ3JlcChwYXR0ZXJuID0nXnRsZXFfLionLCBuYW1lcyhkYXRhKSldCnRsZXE8LXRsZXFbYygxOjIzKV0gI3RyaW0gKzNtIGRhdGEKZGF0YSRUTEVRX3RvdGFsW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTBdPC1yb3dTdW1zKHRsZXFbMToyM10pCiNleGNsdWRpbmcgY2hpbGRob29kIGFnZWQgdHJhdW1hIGl0ZW1zIChmb3IgY29tYmluYXRpb24gd2l0aCBDVFEgc2NvcmVzKQp0bGVxW2MoMTIsMTMsMTUsMTYsMTcpXTwtMCAjdGhlc2UgaXRlbXMgb24gdGhlIHRsZXEgYXNrIGFib3V0IHBoeXNpY2FsL3NleHVhbCBhYnVzZSA8MTh5ZWFycyBvZiBhZ2UKZGF0YSRUTEVRX3RvdGFsRXhjbENUW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTBdPC1yb3dTdW1zKHRsZXFbMToyM10pCiNub24tZnJlcXVlbmN5IHdlaWdodGVkIHNjb3JlczoKdGxlcTwtZGF0YVtkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0wLCBncmVwKHBhdHRlcm4gPSdedGxlcV8uKicsIG5hbWVzKGRhdGEpKV0KdGxlcTwtdGxlcVtjKDE6MjMpXSAjdHJpbSArM20gZGF0YQp0bGVxWyxdPC1sYXBwbHkodGxlcVssXSwgRlVOPWZ1bmN0aW9uKHgpIAogICAgICAgICByZWNvZGUoeCwnMCc9MCwnMSc9MSwnMic9MSwnMyc9MSkpICNiaW5hcmlzZQpkYXRhJFRMRVFfdG90YWxfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0wXTwtcm93U3Vtcyh0bGVxWzE6MjNdKQpkYXRhJFRMRVFfc2V4dWFsVmlvbGVuY2VQb3N0MThfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0wXTwtdGxlcSR0bGVxXzE4CnRsZXFbYygxMiwxMywxNSwxNiwxNyldPC0wICN0aGVzZSBpdGVtcyBvbiB0aGUgdGxlcSBhc2sgYWJvdXQgcGh5c2ljYWwvc2V4dWFsIGFidXNlIDwxOHllYXJzIG9mIGFnZQpkYXRhJFRMRVFfdG90YWxFeGNsQ1Rfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0wXTwtcm93U3Vtcyh0bGVxWzE6MjNdKQoKIzIuIEZvciBwYXJ0aWNpcGFudHMgd2hvIHdlcmUgZnJvbSB0aGUgYmlvbWFya2VycyBzdHVkeSBuZWVkIHRvIGZpcnN0IGV4dHJhY3QgdG8KI29sZCBUTEVRIHZhbHVlcyBmcm9tIGJpb21hcmtlcnMgZGF0YWJhc2UgZmlsZToKYmlvTWRhdGE8LXJlYWQuc3BzcygiL1ZvbHVtZXMvRXh0ZXJuYWwvV1RDX3Jlc2lsaWVuY2VfaW1hZ2luZy9kYXRhL2NsaW5pY2FsX2RhdGEvcmVmX2RhdGEvbWVyZ2VkX2Jpb21hcmtlcnNfNm5vdjIwMTlfQ0xFQU5fMS5zYXYiLCB0by5kYXRhLmZyYW1lPVRSVUUsIG1heC52YWx1ZS5sYWJlbHM9MSkKdGxlcUJpbzwtYmlvTWRhdGFbLGdyZXAocGF0dGVybiA9J150bGVxLionLCBuYW1lcyhiaW9NZGF0YSkpXQp0bGVxQmlvPC10bGVxQmlvW2MoOCwxMSwxNCwxOCwyMSwyNCwyNywzMCwzMywzNiwzOSw0Miw0NSw0OCw1MSw1NCw1Nyw2MCw2Myw2Niw2OSw3Miw3NSldICNvbmx5IGZyZXEgaXRlbXMKI25vdyBtZXJnZSB0aGVzZSB2YWx1ZXMgaW50byB0aGUgTldUQyBkYXRhc2V0IHVzaW5nIFdUQyBkYXRhY2VudGVyICdleHRyYWN0SURzJwpjb2xuYW1lcyh0bGVxQmlvKTwtcGFzdGUoImJpb01kYXRhIiwgY29sbmFtZXModGxlcUJpbyksIHNlcCA9ICJfIikgI2NoYW5nZSBjb2x1bW4gbmFtZXMgdG8gYWxsb3cgZGlzdGluY3Rpb24gZnJvbSBleGlzdGluZyBUTEVRcwp0bGVxQmlvJGJpb21hcmtlcnNfaWQ8LWJpb01kYXRhJHN1YmplY3RpZCAjYWRkIE5XVEMgc3ViIG51bWJlcnMgdG8gYWxsb3cgbWVyZ2luZwpkYXRhPC1tZXJnZShkYXRhLCB0bGVxQmlvLCBieT0iYmlvbWFya2Vyc19pZCIsIGFsbC54PVRSVUUpCiN0aGVuIGF0dGVtcHQgdG8gYWRkIG5ldyAoc2luY2UgYmlvbWFya2Vycykgc2NvcmVzIHRvIGJpb21hcmtlcnMgc2NvcmVzOgp0bGVxQmlvPC1kYXRhW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTEsIGdyZXAocGF0dGVybiA9J15iaW9NZGF0YV90bGVxLionLCBuYW1lcyhkYXRhKSldCnRsZXFTaW5jZUJpbzwtZGF0YVtkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0xLCBncmVwKHBhdHRlcm4gPSdedGxlcV9iaW9fLionLCBuYW1lcyhkYXRhKSldCnRsZXFCaW9Ub3RhbDwtdGxlcUJpbyArIHRsZXFTaW5jZUJpbwojZm9yIGZyZXF1ZW5jeSB3ZWlnaHRlZCBzY29yZXM6CnRsZXFCaW9Ub3RhbFssXTwtbGFwcGx5KHRsZXFCaW9Ub3RhbFssXSwgRlVOPWZ1bmN0aW9uKHgpIAogICAgICAgICAgICAgICAgIHJlY29kZSh4LCcwJz0wLCcxJz0xLCcyJz0yLCczJz0zLCc0Jz0zLCc1Jz0zLCc2Jz0zKSkgI3N0b3AgYW55IGluZGl2aWR1YWwgaXRlbSBtYXhpbmcgb3V0ICg+MykKZGF0YSRUTEVRX3RvdGFsW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTFdPC1yb3dTdW1zKHRsZXFCaW9Ub3RhbFsxOjIzXSkgI05CIGNhbid0IGNvbXBsZXRlbHkgYWNjdXJhdGVseSBtZXJnZSBjYXRlZ29yaWVzIHNvIHRoZXNlIHNjb3JlcyBtYXkgcmVwcmVzZW50IGFuIG92ZXJlc3RpbWF0ZSBpbiBiaW9tYXJrZXJzIHBwdHMKdGxlcUJpb1RvdGFsW2MoMTIsMTMsMTUsMTYsMTcpXTwtMCAjdGhlc2UgaXRlbXMgb24gdGhlIHRsZXEgYXNrIGFib3V0IHBoeXNpY2FsL3NleHVhbCBhYnVzZSA8MTh5ZWFycyBvZiBhZ2UKZGF0YSRUTEVRX3RvdGFsRXhjbENUW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTFdPC1yb3dTdW1zKHRsZXFCaW9Ub3RhbFsxOjIzXSkKI2ZvciBub24gZnJlcXVlbmN5IHdlaWdodGVkIHNjb3JlczoKdGxlcUJpb1RvdGFsPC10bGVxQmlvICsgdGxlcVNpbmNlQmlvCnRsZXFCaW9Ub3RhbFssXTwtbGFwcGx5KHRsZXFCaW9Ub3RhbFssXSwgRlVOPWZ1bmN0aW9uKHgpIAogICAgICAgICAgICAgICAgICByZWNvZGUoeCwnMCc9MCwnMSc9MSwnMic9MSwnMyc9MSwnNCc9MSwnNSc9MSwnNic9MSkpICNiaW5hcmlzZQpkYXRhJFRMRVFfdG90YWxfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0xXTwtcm93U3Vtcyh0bGVxQmlvVG90YWxbMToyM10pICNub25XZWlnaHRlZCBzY29yZXMgc2hvdWxkIGJlIGFjY3VyYXRlIHRob3VnaCA6LSkKZGF0YSRUTEVRX3NleHVhbFZpb2xlbmNlUG9zdDE4X25vbldbZGF0YSRiaW9tYXJrZXJzX2NvbXBsZXRlcj09MV08LXRsZXFCaW9Ub3RhbCRiaW9NZGF0YV90bGVxMThfdG91Y2gxOG5vY29uc2VudAp0bGVxQmlvVG90YWxbYygxMiwxMywxNSwxNiwxNyldPC0wICN0aGVzZSBpdGVtcyBvbiB0aGUgdGxlcSBhc2sgYWJvdXQgcGh5c2ljYWwvc2V4dWFsIGFidXNlIDwxOHllYXJzIG9mIGFnZQpkYXRhJFRMRVFfdG90YWxFeGNsQ1Rfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0xXTwtcm93U3Vtcyh0bGVxQmlvVG90YWxbMToyM10pCgoKI3JldHJpZXZlIG51bWJlciBvZiBXVEMtc3BlY2lmaWMgdHJhdW1hdGljIGV4cG9zdXJlcyAoZnJvbSBXVEMgZGF0YWNlbnRlciBkYXRhKQpkYXRhQ2RhdGE8LXJlYWQuc3BzcygiL1ZvbHVtZXMvRXh0ZXJuYWwvV1RDX3Jlc2lsaWVuY2VfaW1hZ2luZy9kYXRhL2NsaW5pY2FsX2RhdGEvcmVmX2RhdGEvbWVyZ2VkX3NjcmVlbmluZ19kYXRhX2Zvcl9OSS5zYXYiLCB0by5kYXRhLmZyYW1lPVRSVUUpCnRtcDwtZGF0YS5mcmFtZShtYXRyaXgobmNvbD0yLG5yb3c9bnJvdyhkYXRhQ2RhdGEpKSkKY29sbmFtZXModG1wKTwtYygiZXh0cmFjdF9pZCIsIldUQ2V4cG9zdXJlX3Njb3JlIikKdG1wJGV4dHJhY3RfaWQ8LWRhdGFDZGF0YSRleHRyYWN0aWQKdG1wJFdUQ2V4cG9zdXJlX3Njb3JlPC1kYXRhQ2RhdGEkdHJhdW1hdGljX2V4cG9zdXJlX2luZGV4CmRhdGE8LW1lcmdlKGRhdGEsIHRtcCwgYnk9ImV4dHJhY3RfaWQiLCBhbGwueD1UUlVFKQoKIyMgbWFudWFsbHkgaW5wdXQgdGhlIGV4cG9zdXJlIHNjb3JlcyBmb3IgcGVvcGxlIHdobyBkaWRuJ3QgaGF2ZSB0aGVtIGluIHRoZSBmaWxlCiNkYXRhJFdUQ2V4cG9zdXJlX3Njb3JlW2RhdGEkcmVjb3JkX2lkPT0iTldUQy0wMzQiXTwtMiAjdGhpcyBzdWIgbm90IGluIGRzLCBubyBmbXJpCmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA2OCJdPC00CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3MyJdPC01CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3NCJdPC00CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3NiJdPC0zCmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3OCJdPC00CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA4MyJdPC0yCiNoYWNrIGZvciBwcHQgd2hvIHNlZW1zIHVuZGVyLXNjb3JlZCBiYXNlZCBvbiB0aGVpciBpbnRlcnZpZXcgZm9yIHRoaXMgc3R1ZHk6CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSdOV1RDLTAzMSddPC0zCgojIGRvbid0IGhhdmUgdGhlc2U6CiNOV1RDLTA4NAojTldUQy0wOTQKI05XVEMtMDkzCiNOV1RDLTA5MQoKCiMjIG1hbnVhbGx5IGlucHV0IHRyYWRpdGlvbmFsIHJlc3BvbmRlciBzdGF0dXMgZm9yIHBlb3BsZSBtaXNzaW5nCmRhdGEkdHJhZGl0aW9uYWxfcmVzcG9uZGVyW2RhdGEkcmVjb3JkX2lkPT0iTldUQy0wOTMiXTwtMQpkYXRhJHRyYWRpdGlvbmFsX3Jlc3BvbmRlcltkYXRhJHJlY29yZF9pZD09Ik5XVEMtMDk0Il08LTAKZGF0YSR0cmFkaXRpb25hbF9yZXNwb25kZXJbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA2MCJdPC0wCiMgZG9uJ3QgaGF2ZSBOV1RDLTA5MQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIy1DTElOSUNBTi1SQVRFRCBQU1lDSE9QQVRIT0xPR1kKI2NhbGN1bGF0ZSBjbGluaWNpYW4tcmF0ZWQgUFRTRCBzeW1wdG9tIHNldmVyaXR5IChDQVBTLTUgcGFzdCBtb250aCBpbnRlcnZpZXcpCiNzY29yZSBhY2NvcmRpbmcgdG8gUm9iIFBpZXRyemNrJ3MgNyBzeW1wdG9tIGRpbWVuc2lvbnMsIHdoaWNoIHByb3ZpZGVkIHRoZQojYmVzdCBmaXQgdG8gdGhlIGRhdGEgaW4gdHdvIGluZGVwZWRlbnQgc2FtcGxlcyBvZiBkaXZlcnNlIHRyYXVtYS1leHBvc2VkIGluZGl2aWR1YWxzLAojc2VlIEFybW91ciBldCBhbC4gMjAxNToKI2h0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzAwMjIzOTU2MTQwMDMxODUpCmRhdGEkQ0FQUzVfUE1fdG90YWw8LWRhdGEkcHRzZF90b3Rfc2V2X3Bhc3RfbW9udGgKI0IuIGludHJ1c2lvbiAocmUtZXhwZXJpZW5jaW5nKSBzeW1wdG9tcwpjYXBzX2I8LWRhdGFbLCBncmVwKHBhdHRlcm4gPSdeYi4qLl9wYXN0X21vbnRoJywgbmFtZXMoZGF0YSkpXQpkYXRhJENBUFM1X1BNX3JlRXhwPC1yb3dTdW1zKGNhcHNfYikKI0MuIGF2b2lkYW5jZSBzeW1wdG9tcwpjYXBzX2M8LWRhdGFbLCBncmVwKHBhdHRlcm4gPSdeYy4qLl9wYXN0X21vbnRoJywgbmFtZXMoZGF0YSkpXQpkYXRhJENBUFM1X1BNX2F2b2lkPC1yb3dTdW1zKGNhcHNfYykKI0QuIGNvZ25pdGlvbiBhbmQgbW9vZCBzeW1wdG9tcyBbUm9iIHN1YmRpdmlkZXMgaW50byBuZWdhdGl2ZSBhZmZlY3QgYW5kIGFuaGVkb25pYV0KY2Fwc19kPC1kYXRhWywgZ3JlcChwYXR0ZXJuID0nXmQuKi5fcGFzdF9tb250aCcsIG5hbWVzKGRhdGEpKV0KZGF0YSRDQVBTNV9QTV9uZWdBZmY8LXJvd1N1bXMoY2Fwc19kWzE6NF0pCmRhdGEkQ0FQUzVfUE1fYW5oZWQ8LXJvd1N1bXMoY2Fwc19kWzU6N10pCiNFLiBhcm91c2FsIGFuZCByZWFjdGl2aXR5IHN5bXB0b21zIFtSb2Igc3ViZGl2aWRlcyBpbnRvIGV4dGVybmFsaXppbmcKI2JlaGF2aW91ciwgYW54aW91cyBhcm91c2FsLCBhbmQgZHlzcGhvcmljIGFyb3VzYWxdCmNhcHNfZTwtZGF0YVssIGdyZXAocGF0dGVybiA9J15lLiouX3Bhc3RfbW9udGgnLCBuYW1lcyhkYXRhKSldCmRhdGEkQ0FQUzVfUE1fZXh0QmVoPC1yb3dTdW1zKGNhcHNfZVsxOjJdKQpkYXRhJENBUFM1X1BNX2FueEFyb3U8LXJvd1N1bXMoY2Fwc19lWzM6NF0pCmRhdGEkQ0FQUzVfUE1fZHlzQXJvdTwtcm93U3VtcyhjYXBzX2VbNTo2XSkKCiNjdXJyZW50b3RoZXIgcHN5Y2hpYXRyaWMgZGlhZ25vc2VzIGVuZG9yc2VkIChhY2NvcmRpbmcgdG8gU0NJRC1WIGludGVydmlldykKZGF0YSRtZGRfY3VycmVudFtpcy5uYShkYXRhJG1kZF9jdXJyZW50KV08LTAgI21ham9yIGRlcHJlc3NpdmUgZGlzb3JkZXIKZGF0YSRwZGRfY3VycmVudFtpcy5uYShkYXRhJHBkZF9jdXJyZW50KV08LTAgI3BlcnNpc3RlbnQgZHlzdGh5bWljIGRpc29yZGVyCmRhdGEkcGFuaWNfY3VycmVudFtpcy5uYShkYXRhJHBhbmljX2N1cnJlbnQpXTwtMCAjcGFuaWMgZGlzb3JkZXIKZGF0YSRnYWRfY3VycmVudFtpcy5uYShkYXRhJGdhZF9jdXJyZW50KV08LTAgI2dlbmVyYWxpemVkIGFueGlldHkgZGlzb3JkZXIKCiMjIG1hbnVhbGx5IGlucHV0IHRyYWRpdGlvbmFsIHJlc3BvbmRlciBzdGF0dXMgZm9yIHBlb3BsZSBtaXNzaW5nCmRhdGEkdHJhZGl0aW9uYWxfcmVzcG9uZGVyW2RhdGEkcmVjb3JkX2lkPT0iTldUQy0wOTMiXTwtMQpkYXRhJHRyYWRpdGlvbmFsX3Jlc3BvbmRlcltkYXRhJHJlY29yZF9pZD09Ik5XVEMtMDk0Il08LTAKZGF0YSR0cmFkaXRpb25hbF9yZXNwb25kZXJbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA2MCJdPC0wCiMgZG9uJ3QgaGF2ZSBOV1RDLTA5MQoKIyMgRklYIEdST1VQCmRhdGEkZ3JvdXBbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3MiJdPC0wCmRhdGEkZ3JvdXBbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3NiJdPC0wCmRhdGEkZ3JvdXBbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTAzMiJdPC0wCmRhdGEkZ3JvdXBbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA2OSJdPC0wCgoKCgoKIyBzdWJzZXQgZGF0YSBmb3IgY3VycmVudCBhbmFseXNlcwpoaXN0X2RhdGEgPC0gZGF0YSAlPiUgZHBseXI6OnNlbGVjdCgKICByZWNvcmRfaWQsCiAgZ3JvdXAsCiAgYmlkc19pZCwKICBtZGRfY3VycmVudCwKICBwZGRfY3VycmVudCwKICBnYWRfY3VycmVudCwKICBwYW5pY19jdXJyZW50LAogIENBUFM1X1BNX3RvdGFsLAogIENUUV9lbW9OZWdsZWN0LAogIENUUV9waHlzTmVnbGVjdCwKICBDVFFfZW1vQWJ1c2UsCiAgQ1RRX3BoeXNBYnVzZSwKICBDVFFfc2V4QWJ1c2UsCiAgVExFUV90b3RhbEV4Y2xDVF9ub25XLAogIFRMRVFfc2V4dWFsVmlvbGVuY2VQb3N0MThfbm9uVywKICBXVENleHBvc3VyZV9zY29yZSwKICB0cmFkaXRpb25hbF9yZXNwb25kZXIpICU+JSBkcGx5cjo6bXV0YXRlKG1kZF9jdXJyZW50ID0gYXMuZmFjdG9yKG1kZF9jdXJyZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZF9jdXJyZW50ID0gYXMuZmFjdG9yKHBkZF9jdXJyZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhZF9jdXJyZW50ID0gYXMuZmFjdG9yKGdhZF9jdXJyZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmljX2N1cnJlbnQgPSBhcy5mYWN0b3IocGFuaWNfY3VycmVudCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFkaXRpb25hbF9yZXNwb25kZXIgPSBhcy5mYWN0b3IodHJhZGl0aW9uYWxfcmVzcG9uZGVyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwID0gcmVjb2RlX2ZhY3Rvcihncm91cCwgIjAiID0gIkxvdy1leHBvc2VkIiwgIjEiID0gIlJlc2lsaWVudCIsICIyIiA9ICJQVFNEIikpCgoKCgpgYGAKCmBgYHtyfQojIyBtZXJnZSBpbiBzcGVjaWZpYyBleHBvc3VyZXMKZXhwb3N1cmVzIDwtIGV4cG9zdXJlcyAlPiUgZHBseXI6OnJlbmFtZShyZWNvcmRfaWQgPSBud3RjX2lkKSAlPiUgbXV0YXRlX2VhY2goZnVucyhmYWN0b3IpLCBzdGFydHNfd2l0aCgiaW5kZXgiKSkKCmhpc3RfZGF0YSA8LSBsZWZ0X2pvaW4oaGlzdF9kYXRhLCBleHBvc3VyZXMsIGJ5PSJyZWNvcmRfaWQiKQpoaXN0X2RhdGEgPC0gaGlzdF9kYXRhICU+JSBtdXRhdGUoVExFUV9zZXh1YWxWaW9sZW5jZVBvc3QxOF9ub25XID0gYXMuaW50ZWdlcihUTEVRX3NleHVhbFZpb2xlbmNlUG9zdDE4X25vblcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVExFUV90b3RhbEV4Y2xDVF9ub25XID0gYXMuaW50ZWdlcihUTEVRX3RvdGFsRXhjbENUX25vblcpKQpgYGAKCiMjIyBTcGVjaWZpYyBleHBvc3VyZXMgKG4gPSA2OCkKCiMjIyMgYS4gQXJyaXZlZCBXVEMgOS8xMS0xMwpgYGB7cn0KaGlzdF9kYXRhICU+JSBncm91cF9ieShncm91cCkgJT4lIGNvdW50KGluZGV4X2EpCmBgYAoKCiMjIyMgYi4gV29ya2VkIGluIGR1c3QgY2xvdWQKYGBge3J9Cmhpc3RfZGF0YSAlPiUgZ3JvdXBfYnkoZ3JvdXApICU+JSBjb3VudChpbmRleF9iKQpgYGAKCgojIyMjIGMuIFdvcmtlZCBvbi9hZGphY2VudCB0byBwaXQvcGlsZQpgYGB7cn0KaGlzdF9kYXRhICU+JSBncm91cF9ieShncm91cCkgJT4lIGNvdW50KGluZGV4X2MpCmBgYAoKCiMjIyMgZC4gV29ya2VkIGdyZWF0ZXIgdGhhbiBtZWRpYW4gaG91cnMKYGBge3J9Cmhpc3RfZGF0YSAlPiUgZ3JvdXBfYnkoZ3JvdXApICU+JSBjb3VudChpbmRleF9kKQpgYGAKCgojIyMjIGUuIEV4cG9zZWQgdG8gaHVtYW4gcmVtYWlucwpgYGB7cn0KaGlzdF9kYXRhICU+JSBncm91cF9ieShncm91cCkgJT4lIGNvdW50KGluZGV4X2UpCmBgYAoKCiMjIyMgZi4gV29ya2VkIGluIHNlYXJjaCwgcmVzY3VlLCByZWNvdmVyeSBTZXAtT2N0IDIwMDEKYGBge3J9Cmhpc3RfZGF0YSAlPiUgZ3JvdXBfYnkoZ3JvdXApICU+JSBjb3VudChpbmRleF9mKQpgYGAKCgojIyMjIGcuIEtub3cgc29tZW9uZSB3aG8gZGllZCA5LzExCmBgYHtyfQpoaXN0X2RhdGEgJT4lIGdyb3VwX2J5KGdyb3VwKSAlPiUgY291bnQoaW5kZXhfZykKYGBgCgoKIyMjIyBoLiBLbm93IHNvbWVvbmUgaW5qdXJlZCA5LzExCmBgYHtyfQpoaXN0X2RhdGEgJT4lIGdyb3VwX2J5KGdyb3VwKSAlPiUgY291bnQoaW5kZXhfaCkKYGBgCgoKIyMjIyBpLiBJbmp1cmVkIGF0IFdUQwpgYGB7cn0KaGlzdF9kYXRhICU+JSBncm91cF9ieShncm91cCkgJT4lIGNvdW50KGluZGV4X2kpCmBgYAoKCiMjIyMgai4gU2xlcHQgb24tc2l0ZSBTZXAtT2N0IDIwMDEKYGBge3J9Cmhpc3RfZGF0YSAlPiUgZ3JvdXBfYnkoZ3JvdXApICU+JSBjb3VudChpbmRleF9qKQpgYGAKCgoKIyMjIERlc2NyaXB0aXZlcwoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3IsIHJlc3VsdHM9J21hcmt1cCd9CgpkYXQ8LSBoaXN0X2RhdGEKc3RhcmdhemVyKGRhdCwgdHlwZT0idGV4dCIpCmBgYAoKIyMjIyBMb3ctZXhwb3NlZCBjb250cm9scyAobiA9IDE3KQpgYGB7ciwgcmVzdWx0cz0nbWFya3VwJ30KCmRhdDwtIGhpc3RfZGF0YSAlPiUgZmlsdGVyKGdyb3VwPT0iTG93LWV4cG9zZWQiKQpzdGFyZ2F6ZXIoZGF0LCB0eXBlPSJ0ZXh0IikKYGBgCgojIyMjIFJlc2lsaWVudCAobiA9IDMxKQpgYGB7ciwgcmVzdWx0cz0nbWFya3VwJ30KCmRhdDwtIGhpc3RfZGF0YSAlPiUgZmlsdGVyKGdyb3VwPT0iUmVzaWxpZW50IikKc3RhcmdhemVyKGRhdCwgdHlwZT0idGV4dCIpCmBgYAoKIyMjIyBQVFNEIChuID0gMjApCmBgYHtyLCByZXN1bHRzPSdtYXJrdXAnfQoKZGF0PC0gaGlzdF9kYXRhICU+JSBmaWx0ZXIoZ3JvdXA9PSJQVFNEIikKc3RhcmdhemVyKGRhdCwgdHlwZT0idGV4dCIpCmBgYAoKCgoKCgojIyBEYXRhIHZpc3VhbGl6YXRpb24KCiMjIyBfbl8gV1RDIGV4cG9zdXJlcwoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoV1RDZXhwb3N1cmVfc2NvcmUpKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSwgZmlsbD0iZGFya3Zpb2xldCIpICsKICAgIHhsYWIoIldUQyBleHBvc3VyZXMiKSArIHRoZW1lX2J3KCkgKyBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEwLCBieSA9IDEpKQogcDEKYGBgCgojIyMjIEJ5IGdyb3VwCmBgYHtyfQoKICBwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoV1RDZXhwb3N1cmVfc2NvcmUsIGNvbG9yPWdyb3VwLCBmaWxsPWdyb3VwKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsIGNvbG91cj0nYmxhY2snLHNpemU9LjUpICsKICB4bGFiKCJXVEMgZXhwb3N1cmVzIikgKyBmYWNldF93cmFwKH5ncm91cCkgKyB0aGVtZV9idygpCiAKIHAyIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhjb2xvcj1ncm91cCwgeT1XVENleHBvc3VyZV9zY29yZSwgeD1ncm91cCkpICsgCiAgICAgICBnZW9tX2JveHBsb3QoKSArIGdlb21fcG9pbnQoKSArICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMDEsIGhlaWdodD0uMDEpICsKICB5bGFiKCJXVEMgZXhwb3N1cmVzIikgKyB4bGFiKCJHcm91cCIpCiAKcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKIApgYGAKCgoKIyMjIENBUFMtNSBQTQoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ0FQUzVfUE1fdG90YWwpKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCxjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiQ0FQUy01IFBNIFRvdGFsIikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCA1MCwgYnkgPSA1KSkKIHAxCmBgYAoKIyMjIyBCeSBncm91cApgYGB7cn0KCiAgcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENBUFM1X1BNX3RvdGFsLCBjb2xvcj1ncm91cCwgZmlsbD1ncm91cCkpICsgCiAgICAgICBnZW9tX2hpc3RvZ3JhbShiaW5zPTIwLGNvbG91cj0nYmxhY2snLHNpemU9LjUpICsKICAgIHhsYWIoIkNBUFMtNSBQTSBUb3RhbCIpICsgZmFjZXRfd3JhcCh+Z3JvdXApICsgdGhlbWVfYncoKQogCiAgcDIgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKGNvbG9yPWdyb3VwLCB5PUNBUFM1X1BNX3RvdGFsLCB4PWdyb3VwLGxhYmVsPWJpZHNfaWQpKSArIAogICAgICAgZ2VvbV9ib3hwbG90KCkgKyBnZW9tX3BvaW50KCkgKyAgZ2VvbV9qaXR0ZXIod2lkdGggPSAwLjAxLCBoZWlnaHQ9LjAxKSArCiAgeWxhYigiQ0FQUy01IFBNIFRvdGFsIikgKyB4bGFiKCJHcm91cCIpCgogcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKCmBgYAoKIyMjIENUUSBlbW90aW9uYWwgbmVnbGVjdAoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ1RRX2Vtb05lZ2xlY3QpKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCxjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiQ1RRIGVtbyBuZWdsZWN0IikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAzMCwgYnkgPSA1KSkKIHAxCmBgYAoKIyMjIyBCeSBncm91cApgYGB7cn0KICAKICBwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ1RRX2Vtb05lZ2xlY3QsIGNvbG9yPWdyb3VwLCBmaWxsPWdyb3VwKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBlbW8gbmVnbGVjdCIpICsgZmFjZXRfd3JhcCh+Z3JvdXApICsgdGhlbWVfYncoKQogCiBwMiA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoY29sb3I9Z3JvdXAsIHk9Q1RRX2Vtb05lZ2xlY3QsIHg9Z3JvdXApKSArIAogICAgICAgZ2VvbV9ib3hwbG90KCkgKyBnZW9tX3BvaW50KCkgKyAgZ2VvbV9qaXR0ZXIod2lkdGggPSAwLjAxLCBoZWlnaHQ9LjAxKSArCiAgeWxhYigiQ1RRIGVtbyBuZWdsZWN0IikgKyB4bGFiKCJHcm91cCIpCiAKIHBsb3RfZ3JpZChwMSxwMiwgbGFiZWxzID0gIkFVVE8iLCBncmVlZHk9VFJVRSwgc2NhbGU9MSwgbGFiZWxfc2l6ZT0xMCwgbmNvbD0xLCBucm93PTIpCgpgYGAKCgojIyMgQ1RRIHBoeXNpY2FsIG5lZ2xlY3QKCiMjIyMgRnVsbCBuZXVyb2ltYWdpbmcgc2FtcGxlCmBgYHtyfQoKcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9waHlzTmVnbGVjdCkpICsgCiAgICAgICBnZW9tX2hpc3RvZ3JhbShiaW5zPTIwLCBjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiQ1RRIHBoeXNpY2FsIG5lZ2xlY3QiKSArIHRoZW1lX2J3KCkgKyBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDMwLCBieSA9IDUpKQogcDEKYGBgCgojIyMjIEJ5IGdyb3VwCmBgYHtyfQogCiAgcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9waHlzTmVnbGVjdCwgY29sb3I9Z3JvdXAsIGZpbGw9Z3JvdXApKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBwaHlzaWNhbCBuZWdsZWN0IikgKyBmYWNldF93cmFwKH5ncm91cCkgKyB0aGVtZV9idygpCiAKIHAyIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhjb2xvcj1ncm91cCwgeT1DVFFfcGh5c05lZ2xlY3QsIHg9Z3JvdXApKSArIAogICAgICAgZ2VvbV9ib3hwbG90KCkgKyBnZW9tX3BvaW50KCkgKyAgZ2VvbV9qaXR0ZXIod2lkdGggPSAwLjAxLCBoZWlnaHQ9LjAxKSArCiAgeWxhYigiQ1RRIHBoeXNpY2FsIG5lZ2xlY3QiKSArIHhsYWIoIkdyb3VwIikKIAogcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKYGBgCiAKIAojIyMgQ1RRIGVtb3Rpb25hbCBhYnVzZQoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ1RRX2Vtb0FidXNlKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsIGNvbG91cj0nYmxhY2snLHNpemU9LjUsIGZpbGw9ImRhcmt2aW9sZXQiKSArCiAgICB4bGFiKCJDVFEgZW1vIGFidXNlIikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAzMCwgYnkgPSA1KSkKCiBwMQpgYGAKCiMjIyMgQnkgZ3JvdXAKYGBge3J9CiAgCiAgcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9lbW9BYnVzZSwgY29sb3I9Z3JvdXAsIGZpbGw9Z3JvdXApKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBlbW8gYWJ1c2UiKSArIGZhY2V0X3dyYXAofmdyb3VwKSArIHRoZW1lX2J3KCkKIAogcDIgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKGNvbG9yPWdyb3VwLCB5PUNUUV9lbW9BYnVzZSwgeD1ncm91cCkpICsgCiAgICAgICBnZW9tX2JveHBsb3QoKSArIGdlb21fcG9pbnQoKSArICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMDEsIGhlaWdodD0uMDEpICsKICB5bGFiKCJDVFEgZW1vIGFidXNlIikgKyB4bGFiKCJHcm91cCIpCiAKIHBsb3RfZ3JpZChwMSxwMiwgbGFiZWxzID0gIkFVVE8iLCBncmVlZHk9VFJVRSwgc2NhbGU9MSwgbGFiZWxfc2l6ZT0xMCwgbmNvbD0xLCBucm93PTIpCmBgYAogCiMjIyBDVFEgcGh5c2ljYWwgYWJ1c2UKCiMjIyMgRnVsbCBuZXVyb2ltYWdpbmcgc2FtcGxlCmBgYHtyfQoKcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9waHlzQWJ1c2UpKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSwgZmlsbD0iZGFya3Zpb2xldCIpICsKICAgIHhsYWIoIkNUUSBwaHlzIGFidXNlIikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAzMCwgYnkgPSAxKSkKIHAxCmBgYAoKIyMjIyBCeSBncm91cApgYGB7cn0KICAKICBwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ1RRX3BoeXNBYnVzZSwgY29sb3I9Z3JvdXAsIGZpbGw9Z3JvdXApKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBwaHlzIGFidXNlIikgKyBmYWNldF93cmFwKH5ncm91cCkgKyB0aGVtZV9idygpCiAKIHAyIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhjb2xvcj1ncm91cCwgeT1DVFFfcGh5c0FidXNlLCB4PWdyb3VwKSkgKyAKICAgICAgIGdlb21fYm94cGxvdCgpICsgZ2VvbV9wb2ludCgpICsgIGdlb21faml0dGVyKHdpZHRoID0gMC4wMSwgaGVpZ2h0PS4wMSkgKwogIHlsYWIoIkNUUSBwaHlzIGFidXNlIikgKyB4bGFiKCJHcm91cCIpCiAKIHBsb3RfZ3JpZChwMSxwMiwgbGFiZWxzID0gIkFVVE8iLCBncmVlZHk9VFJVRSwgc2NhbGU9MSwgbGFiZWxfc2l6ZT0xMCwgbmNvbD0xLCBucm93PTIpCmBgYAoKIyMjIENUUSBzZXh1YWwgYWJ1c2UKCiMjIyMgRnVsbCBuZXVyb2ltYWdpbmcgc2FtcGxlCmBgYHtyfQoKcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9zZXhBYnVzZSkpICsgCiAgICAgICBnZW9tX2hpc3RvZ3JhbShiaW5zPTIwLCBjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiQ1RRIHNleCBhYnVzZSIpICsgdGhlbWVfYncoKSArIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMzAsIGJ5ID0gNSkpCiBwMQpgYGAKCiMjIyMgQnkgZ3JvdXAKYGBge3J9CiAgCiAgcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9zZXhBYnVzZSwgY29sb3I9Z3JvdXAsIGZpbGw9Z3JvdXApKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBzZXggYWJ1c2UiKSArIGZhY2V0X3dyYXAofmdyb3VwKSArIHRoZW1lX2J3KCkKIAogcDIgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKGNvbG9yPWdyb3VwLCB5PUNUUV9zZXhBYnVzZSwgeD1ncm91cCkpICsgCiAgICAgICBnZW9tX2JveHBsb3QoKSArIGdlb21fcG9pbnQoKSArICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMDEsIGhlaWdodD0uMDEpICsKICB5bGFiKCJDVFEgc2V4IGFidXNlIikgKyB4bGFiKCJHcm91cCIpCgogcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKYGBgCgoKCgojIyMgVExFUSB0b3RhbCBleGNsdWRpbmcgY2hpbGRob29kIHRyYXVtYSAobm9uLXdlaWdodGVkKQoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoVExFUV90b3RhbEV4Y2xDVF9ub25XKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsIGNvbG91cj0nYmxhY2snLHNpemU9LjUsIGZpbGw9ImRhcmt2aW9sZXQiKSArCiAgICB4bGFiKCJUTEVRIGV4Y2wuQ1QiKSAgKyBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEzMCwgYnkgPSAxMCkpICsgdGhlbWVfYncoKQogcDEKYGBgCgojIyMjIEJ5IGdyb3VwCmBgYHtyfQogIAogIHAxIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhUTEVRX3RvdGFsRXhjbENUX25vblcsIGNvbG9yPWdyb3VwLCBmaWxsPWdyb3VwKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsIGNvbG91cj0nYmxhY2snLHNpemU9LjUpICsKICB4bGFiKCJUTEVRIGV4Y2wuQ1QiKSArIGZhY2V0X3dyYXAofmdyb3VwKSArIHRoZW1lX2J3KCkKIAogcDIgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKGNvbG9yPWdyb3VwLCB5PVRMRVFfdG90YWxFeGNsQ1Rfbm9uVywgeD1ncm91cCkpICsgCiAgICAgICBnZW9tX2JveHBsb3QoKSArIGdlb21fcG9pbnQoKSArICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMDEsIGhlaWdodD0uMDEpICsKICB5bGFiKCJUTEVRIGV4Y2wuQ1QiKSArIHhsYWIoIkdyb3VwIikKIAogcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKYGBgCgoKCiMjIyBUTEVRIHNleHVhbCB2aW9sZW5jZSA+MTggeXJzIChub24td2VpZ2h0ZWQpCgojIyMjIEZ1bGwgbmV1cm9pbWFnaW5nIHNhbXBsZQpgYGB7cn0KCnAxIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhUTEVRX3NleHVhbFZpb2xlbmNlUG9zdDE4X25vblcpKSArIAogICAgICAgc3RhdF9jb3VudChjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiVExFUSBzZXh1YWwgdmlvbGVuY2UgPjE4IHlycyIpICsgdGhlbWVfYncoKSArIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMSwgYnkgPSAxKSkgKwogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgNzAsIGJ5ID0gMTApKQogcDEKYGBgCgojIyMjIEJ5IGdyb3VwCmBgYHtyfQogIAogIHAxIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhUTEVRX3NleHVhbFZpb2xlbmNlUG9zdDE4X25vblcsIGNvbG9yPWdyb3VwLCBmaWxsPWdyb3VwKSkgKyAKICAgICAgIHN0YXRfY291bnQoY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIlRMRVEgc2V4dWFsIHZpb2xlbmNlID4xOCB5cnMiKSArIGZhY2V0X3dyYXAofmdyb3VwKSArIHRoZW1lX2J3KCkgKyBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEsIGJ5ID0gMSkpCiBwMQpgYGA=