Measure: The Twente Engagement with Ehealth Technologies Scale (TWEETS)

Citation(s):

· Kelders SM, Kip H. Development and initial validation of a scale to measure engagement with eHealth technologies. 2019 Presented at: Extended Abstracts of the CHI Conference on Human Factors in Computing Systems; 2019; Glasgow.

· Kelders, S. M., Kip, H., & Greeff, J. (2020). Psychometric evaluation of the TWente Engagement with Ehealth Technologies Scale (TWEETS): evaluation study. Journal of medical internet research, 22(10), e17757.

TWEETS Deployment in the Current Study

The original TWEETS has 9 question scored on a 0-4 scale (strongly disagree to strongly agree), with three possible subscales (behavior, cognition, affect).

In the current study, the wording for the cognition questions was not accurately deployed to participants (i.e., the “goal” half of questions was not changed/specfied).

As such, all of the analyses for the current scale are done for the behavior and affect scales separately. Note: The original Qualtrics scale was collected on a scale of 1-5: this was previously re-coded to 0-4 during data cleaning.

TWEETS Questions

Tweets Questions, Variable Names, and Subscale Construct, as deployed in study

TWEETS Descriptives

Note: I did not run cronbach’s alpha since there are only 3 items in each subscale. Note: Each variable presented is the average subscale score for the week represented by the underscore. Cronbach’s Alpha and Descriptives

Behavior Subscale

vars n mean sd median trimmed mad min max range skew kurtosis se
tweets_beh_4 1 67 2.86 0.76 3.00 2.91 0.99 0.67 4 3.33 -0.62 0.06 0.09
tweets_beh_5 2 66 2.82 0.81 2.67 2.87 0.99 0.67 4 3.33 -0.49 -0.36 0.10
tweets_beh_6 3 66 2.72 0.87 2.67 2.75 0.99 0.67 4 3.33 -0.28 -0.77 0.11
tweets_beh_7 4 67 2.56 0.99 2.67 2.62 0.99 0.00 4 4.00 -0.52 -0.49 0.12
tweets_beh_8 5 48 2.47 1.03 2.67 2.52 0.99 0.00 4 4.00 -0.47 -0.33 0.15
tweets_beh_9 6 58 2.49 1.05 2.50 2.56 0.99 0.00 4 4.00 -0.48 -0.40 0.14
tweets_beh_10 7 62 2.33 1.14 2.33 2.39 1.48 0.00 4 4.00 -0.28 -0.92 0.15
tweets_beh_11 8 61 2.39 1.15 2.67 2.45 1.48 0.00 4 4.00 -0.38 -0.97 0.15
tweets_beh_12 9 54 2.46 1.10 2.67 2.54 0.99 0.00 4 4.00 -0.50 -0.47 0.15
tweets_beh_13 10 60 2.42 1.19 2.67 2.51 0.99 0.00 4 4.00 -0.57 -0.84 0.15

Visualization of Means over Time with Error Bars

Regression to analyze basic trend over time

A linear regression model was fitted to predict Tweets Behavior subscale as a function of Week. This approach quantified the direction and magnitude of the trend in engagement over time. The regression analysis revealed small, significant decrease over time,

Linear Regression Results:
Slope of the trend (Week): -0.055
P-value for the slope: 1.147e-04
R-squared of the model: 0.024

Combined Violin and Box Plot for Weeks 4–13

This plot combines violin plots and box plots to illustrate the distribution of behavior subscale scores across weeks 4 to 13. The violin plot shows the density of scores for each week, while the box plot provides a summary of the data’s central tendency and spread, including the median, interquartile range, and overall range.

Behavior Violin Plot for Weeks 4–13

The plot below displays the distribution of the behavior subscale scores from weeks 4 to 13. The wider sections of the violin indicate a higher concentration of scores, while the narrower sections show less frequent values. Jittered points are overlaid to show the individual participant scores.

Raincloud Plot for Weeks 4 and 13

These plot provides a comparison of the behavior subscale scores between weeks 4 and 13 (first and last weeks recorded). Each week is represented by a combination of a violin plot (showing the score distribution), jittered points (representing individual participant scores), and lines connecting scores for the same participants between the two timepoints showing change over time.

Affect Subscale

vars n mean sd median trimmed mad min max range skew kurtosis se
tweets_aff_4 1 67 3.13 0.66 3.33 3.18 0.49 1.33 4 2.67 -0.59 -0.43 0.08
tweets_aff_5 2 66 3.15 0.67 3.33 3.20 0.49 1.33 4 2.67 -0.64 -0.29 0.08
tweets_aff_6 3 66 3.15 0.73 3.33 3.22 0.49 1.33 4 2.67 -0.82 -0.35 0.09
tweets_aff_7 4 67 3.17 0.73 3.33 3.25 0.49 1.00 4 3.00 -0.90 0.18 0.09
tweets_aff_8 5 48 3.10 0.85 3.33 3.18 0.99 0.67 4 3.33 -0.93 0.00 0.12
tweets_aff_9 6 58 3.02 0.80 3.17 3.10 0.74 1.00 4 3.00 -0.83 0.01 0.10
tweets_aff_10 7 62 2.93 1.00 3.33 3.06 0.99 0.00 4 4.00 -0.97 0.10 0.13
tweets_aff_11 8 61 2.95 1.01 3.33 3.11 0.49 0.00 4 4.00 -1.39 1.45 0.13
tweets_aff_12 9 54 2.93 1.06 3.33 3.07 0.99 0.00 4 4.00 -0.97 0.18 0.14
tweets_aff_13 10 60 2.86 1.11 3.00 3.01 0.99 0.00 4 4.00 -0.96 -0.09 0.14

Visualization of Means over Time with Error Bars

Regression to analyze basic trend over time

A linear regression model was fitted to predict Tweets Affect subscale as a function of Week. This approach quantified the direction and magnitude of the trend in engagement over time. The regression analysis revealed small, significant decrease over time,

Linear Regression Results for Affect Subscale:
Slope of the trend (Week): -0.035
P-value for the slope: 3.881e-03
R-squared of the model: 0.014

Combined Violin and Box Plot for Weeks 4–13

This plot combines violin plots and box plots to illustrate the distribution of affect subscale scores across weeks 4 to 13. The violin plot shows the density of scores for each week, while the box plot provides a summary of the data’s central tendency and spread, including the median, interquartile range, and overall range.

Affect Violin Plot for Weeks 4–13

The plot below displays the distribution of the affect subscale scores from weeks 4 to 13. The wider sections of the violin indicate a higher concentration of scores, while the narrower sections show less frequent values. Jittered points are overlaid to show the individual participant scores.

Raincloud Plot for Weeks 4 and 13

These plot provides a comparison of the affect subscale scores between weeks 4 and 13 (first and last weeks recorded). Each week is represented by a combination of a violin plot (showing the score distribution), jittered points (representing individual participant scores), and lines connecting scores for the same participants between the two timepoints showing change over time.

LS0tCnRpdGxlOiAiVHdlZXRzIEFuYWx5c2VzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgojIyMgKk1lYXN1cmU6IFRoZSBUd2VudGUgRW5nYWdlbWVudCB3aXRoIEVoZWFsdGggVGVjaG5vbG9naWVzIFNjYWxlIChUV0VFVFMpKgoKKkNpdGF0aW9uKHMpOioKCiAgwrcgS2VsZGVycyBTTSwgS2lwIEguIERldmVsb3BtZW50IGFuZCBpbml0aWFsIHZhbGlkYXRpb24gb2YgYSBzY2FsZSB0byBtZWFzdXJlIGVuZ2FnZW1lbnQgd2l0aCBlSGVhbHRoIHRlY2hub2xvZ2llcy4gMjAxOSBQcmVzZW50ZWQgYXQ6IEV4dGVuZGVkIEFic3RyYWN0cyBvZiB0aGUgQ0hJIENvbmZlcmVuY2Ugb24gSHVtYW4gRmFjdG9ycyBpbiBDb21wdXRpbmcgU3lzdGVtczsgMjAxOTsgR2xhc2dvdy4KCiAgwrcgS2VsZGVycywgUy4gTS4sIEtpcCwgSC4sICYgR3JlZWZmLCBKLiAoMjAyMCkuIFBzeWNob21ldHJpYyBldmFsdWF0aW9uIG9mIHRoZSBUV2VudGUgRW5nYWdlbWVudCB3aXRoIEVoZWFsdGggVGVjaG5vbG9naWVzIFNjYWxlIChUV0VFVFMpOiBldmFsdWF0aW9uIHN0dWR5LiBKb3VybmFsIG9mIG1lZGljYWwgaW50ZXJuZXQgcmVzZWFyY2gsIDIyKDEwKSwgZTE3NzU3LgoKIyMjIFRXRUVUUyBEZXBsb3ltZW50IGluIHRoZSBDdXJyZW50IFN0dWR5ClRoZSBvcmlnaW5hbCBUV0VFVFMgaGFzIDkgcXVlc3Rpb24gc2NvcmVkIG9uIGEgMC00IHNjYWxlICgqc3Ryb25nbHkgZGlzYWdyZWUqIHRvICpzdHJvbmdseSBhZ3JlZSopLCB3aXRoIHRocmVlIHBvc3NpYmxlIHN1YnNjYWxlcyAoYmVoYXZpb3IsIGNvZ25pdGlvbiwgYWZmZWN0KS4KCkluIHRoZSBjdXJyZW50IHN0dWR5LCB0aGUgd29yZGluZyBmb3IgdGhlIGNvZ25pdGlvbiBxdWVzdGlvbnMgd2FzIG5vdCBhY2N1cmF0ZWx5IGRlcGxveWVkIHRvIHBhcnRpY2lwYW50cyAoaS5lLiwgdGhlICJnb2FsIiBoYWxmIG9mIHF1ZXN0aW9ucyB3YXMgbm90IGNoYW5nZWQvc3BlY2ZpZWQpLgoKQXMgc3VjaCwgYWxsIG9mIHRoZSBhbmFseXNlcyBmb3IgdGhlIGN1cnJlbnQgc2NhbGUgYXJlIGRvbmUgZm9yIHRoZSBiZWhhdmlvciBhbmQgYWZmZWN0IHNjYWxlcyBzZXBhcmF0ZWx5LiAKTm90ZTogVGhlIG9yaWdpbmFsIFF1YWx0cmljcyBzY2FsZSB3YXMgY29sbGVjdGVkIG9uIGEgc2NhbGUgb2YgMS01OiB0aGlzIHdhcyBwcmV2aW91c2x5IHJlLWNvZGVkIHRvIDAtNCBkdXJpbmcgZGF0YSBjbGVhbmluZy4KCiMjIyBUV0VFVFMgUXVlc3Rpb25zCgpUd2VldHMgUXVlc3Rpb25zLCBWYXJpYWJsZSBOYW1lcywgYW5kIFN1YnNjYWxlIENvbnN0cnVjdCwgYXMgZGVwbG95ZWQgaW4gc3R1ZHkKIVtdKERlc2t0b3AvVFdFRVRTLnBuZykKCgoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIGluY2x1ZGUgPSBUUlVFLCAgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UpCgpsaWJyYXJ5KHJlYWR4bCkKbGlicmFyeShncmlkRXh0cmEpIApsaWJyYXJ5KHBhdGNod29yaykgICAgICAKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkobG1lNCkKbGlicmFyeShtYXJrZG93bikKbGlicmFyeShzdGFyZ2F6ZXIpCmxpYnJhcnkoTU9URSkKbGlicmFyeShjb3dwbG90KQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KHNjYWxlcykKbGlicmFyeShicm9vbSkKbGlicmFyeShicm9vbS5taXhlZCkgCmxpYnJhcnkodGlkeW1vZGVscykgCmxpYnJhcnkobXVsdGlsZXZlbG1vZCkgCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHBzeWNoKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHRpZHlyKQpsaWJyYXJ5KHJlYWRyKQpsaWJyYXJ5KGtuaXRyKQoKCiMjUmVhZCBpbiB0aGUgZGF0YXNldAoKTm9EdXBfUHVycmJsZUFub24gPC0gcmVhZF9jc3YoIkRlc2t0b3AvUHVycmJlbC9Ob0R1cF9QdXJyYmxlQW5vbi5jc3YiKQojVmlldyhOb0R1cF9QdXJyYmxlQW5vbikKCiNDYWxjdWxhdGUgYSBDb25kaXRpb24gVmFyaWFibGVzIGJhc2VkIG9uIFdhaXRsaXN0IHZzLiBDb250cm9sIHdpdGggTGFiZWxzIAoKTm9EdXBfUHVycmJsZUFub24gPC0gTm9EdXBfUHVycmJsZUFub24gJT4lCiAgbXV0YXRlKAogICAgY29uZGl0aW9uX251bSA9IGNhc2Vfd2hlbigKICAgICAgcmFuZG9taXphdGlvbiAlaW4lIGMoIldMIEMiLCAiV0wgVEdEIikgfiAwLAogICAgICByYW5kb21pemF0aW9uICVpbiUgYygiUEIgVEdEIiwgIlBCIEMiKSB+IDEsCiAgICAgIFRSVUUgfiBOQV9yZWFsXwogICAgKSwKICAgIGNvbmRpdGlvbiA9IGZhY3RvcigKICAgICAgY29uZGl0aW9uX251bSwKICAgICAgbGV2ZWxzID0gYygwLCAxKSwKICAgICAgbGFiZWxzID0gYygiV2FpdGxpc3QgQ29udHJvbCIsICJQdXJyYmxlIFRyZWF0bWVudCIpCiAgICApCiAgKQoKIyBDcmVhdGUgU3Vic2NhbGUgU2NvcmVzCgpOb0R1cF9QdXJyYmxlQW5vbiA8LSBOb0R1cF9QdXJyYmxlQW5vbiAlPiUKICBtdXRhdGUoCiAgICB0d2VldHNfYmVoID0gcm93TWVhbnMoYWNyb3NzKGModHdlZXRzMSwgdHdlZXRzMiwgdHdlZXRzMykpLCBuYS5ybSA9IFRSVUUpLAogICAgdHdlZXRzX2FmZiA9IHJvd01lYW5zKGFjcm9zcyhjKHR3ZWV0czcsIHR3ZWV0czgsIHR3ZWV0czkpKSwgbmEucm0gPSBUUlVFKQogICkKCiNNYWtlIHdpZGUgZm9ybWF0IGRhdGFzZXQgZm9yIGxhdGVyIGFuYWx5c2VzIAp0d2VldHNfd2lkZSA8LSBOb0R1cF9QdXJyYmxlQW5vbiAlPiUKICAKICAjIEZpbHRlciB0byBvbmx5IGluY2x1ZGUgd2Vla3MgMS0xMwogIGZpbHRlcihXZWVrICVpbiUgMToxMykgJT4lCiAgIyBQaXZvdCB0aGUgZGF0YSB3aWRlciBmb3IgdGhlIHNwZWNpZmllZCByZXBlYXRlZCBtZWFzdXJlcyB2YXJpYWJsZXMKICBwaXZvdF93aWRlcigKICAgIGlkX2NvbHMgPSBjKHBzaWQsIHJhbmRvbWl6YXRpb24sIGNvbmRpdGlvbiwgc28sIGdpLCBhZ2UsIGV0aG5pY2l0eSwgaWRlbnRpdHlfZ3JvdXApLAogICAgbmFtZXNfZnJvbSA9IFdlZWssCiAgICB2YWx1ZXNfZnJvbSA9IGModHdlZXRzX2JlaCwgdHdlZXRzX2FmZiksCiAgICBuYW1lc19nbHVlID0gInsudmFsdWV9X3tXZWVrfSIgICMgVGhpcyB3aWxsIGNyZWF0ZSB2YXJuYW1lXzEsIHZhcm5hbWVfMiwgLi4uIHZhcm5hbWVfMTMKICApCmBgYAoKIyMjIFRXRUVUUyBEZXNjcmlwdGl2ZXMKKk5vdGU6KiBJIGRpZCBub3QgcnVuIGNyb25iYWNoJ3MgYWxwaGEgc2luY2UgdGhlcmUgYXJlIG9ubHkgMyBpdGVtcyBpbiBlYWNoIHN1YnNjYWxlLgoqTm90ZToqIEVhY2ggdmFyaWFibGUgcHJlc2VudGVkIGlzIHRoZSBhdmVyYWdlIHN1YnNjYWxlIHNjb3JlIGZvciB0aGUgd2VlayByZXByZXNlbnRlZCBieSB0aGUgdW5kZXJzY29yZS4gCkNyb25iYWNoJ3MgQWxwaGEgYW5kIERlc2NyaXB0aXZlcwoKIyMgQmVoYXZpb3IgU3Vic2NhbGUKCmBgYHtyfQojRGVzY3JpcHRpdmUgVGFibGUKd2Vla3MgPC0gNDoxMwp0d2VldF9iZWhfdmFycyA8LSBzcHJpbnRmKCJ0d2VldHNfYmVoXyVkIiwgd2Vla3MpCgpteV90d2VldHNfYmVoIDwtIHB1cnJibGVfd2lkZSAlPiUKICBzZWxlY3QoYWxsX29mKHR3ZWV0X2JlaF92YXJzKSkKCmRlc2NyaWJlKG15X3R3ZWV0c19iZWgpICU+JQogIGthYmxlKGRpZ2l0cyA9IDIpCmBgYAojIyBWaXN1YWxpemF0aW9uIG9mIE1lYW5zIG92ZXIgVGltZSB3aXRoIEVycm9yIEJhcnMKCmBgYHtyfQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KGdncGxvdDIpCgojIFN0ZXAgMTogQ2FsY3VsYXRlIG1lYW5zIGFuZCBzdGFuZGFyZCBlcnJvcnMgZm9yIHR3ZWV0c19iZWggYnkgd2VlawpzdW1tYXJ5X2JlaCA8LSBOb0R1cF9QdXJyYmxlQW5vbiAlPiUKICBncm91cF9ieShXZWVrKSAlPiUKICBzdW1tYXJpc2UoCiAgICBNZWFuID0gbWVhbih0d2VldHNfYmVoLCBuYS5ybSA9IFRSVUUpLAogICAgU0VNID0gc2QodHdlZXRzX2JlaCwgbmEucm0gPSBUUlVFKSAvIHNxcnQobigpKQogICkKCiMgUGxvdCB0aGUgbWVhbiBzY29yZXMgd2l0aCBlcnJvciBiYXJzCmdncGxvdChzdW1tYXJ5X2JlaCwgYWVzKHggPSBXZWVrLCB5ID0gTWVhbikpICsKICBnZW9tX2xpbmUoZ3JvdXAgPSAxLCBjb2xvciA9ICJibHVlIikgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDMsIGNvbG9yID0gImJsdWUiKSArCiAgZ2VvbV9lcnJvcmJhcihhZXMoeW1pbiA9IE1lYW4gLSBTRU0sIHltYXggPSBNZWFuICsgU0VNKSwgd2lkdGggPSAwLjIsIGNvbG9yID0gImJsdWUiKSArCiAgbGFicygKICAgIHRpdGxlID0gIk1lYW4gQmVoYXZpb3IgU3Vic2NhbGUgU2NvcmVzIE92ZXIgVGltZSIsCiAgICB4ID0gIldlZWsiLAogICAgeSA9ICJNZWFuIEJlaGF2aW9yIFNjb3JlIgogICkgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQsIGZhY2UgPSAiYm9sZCIpKQpgYGAKCiMjIFJlZ3Jlc3Npb24gdG8gYW5hbHl6ZSBiYXNpYyB0cmVuZCBvdmVyIHRpbWUKQSBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbCB3YXMgZml0dGVkIHRvIHByZWRpY3QgVHdlZXRzIEJlaGF2aW9yIHN1YnNjYWxlIGFzIGEgZnVuY3Rpb24gb2YgV2Vlay4KVGhpcyBhcHByb2FjaCBxdWFudGlmaWVkIHRoZSBkaXJlY3Rpb24gYW5kIG1hZ25pdHVkZSBvZiB0aGUgdHJlbmQgaW4gZW5nYWdlbWVudCBvdmVyIHRpbWUuClRoZSByZWdyZXNzaW9uIGFuYWx5c2lzIHJldmVhbGVkIHNtYWxsLCBzaWduaWZpY2FudCBkZWNyZWFzZSBvdmVyIHRpbWUsIAoKYGBge3J9CiMgU3RlcCAyOiBGaXQgYSBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbAptb2RlbCA8LSBsbSh0d2VldHNfYmVoIH4gV2VlaywgZGF0YSA9IE5vRHVwX1B1cnJibGVBbm9uKQoKIyBFeHRyYWN0IHNsb3BlLCBwLXZhbHVlLCBhbmQgUi1zcXVhcmVkCnNsb3BlIDwtIGNvZWYobW9kZWwpWyJXZWVrIl0KcF92YWx1ZSA8LSBzdW1tYXJ5KG1vZGVsKSRjb2VmZmljaWVudHNbIldlZWsiLCAiUHIoPnx0fCkiXQpyX3NxdWFyZWQgPC0gc3VtbWFyeShtb2RlbCkkci5zcXVhcmVkCgojIFByaW50IHJlc3VsdHMKY2F0KCJMaW5lYXIgUmVncmVzc2lvbiBSZXN1bHRzOlxuIikKY2F0KHNwcmludGYoIlNsb3BlIG9mIHRoZSB0cmVuZCAoV2Vlayk6ICUuM2ZcbiIsIHNsb3BlKSkKY2F0KHNwcmludGYoIlAtdmFsdWUgZm9yIHRoZSBzbG9wZTogJS4zZVxuIiwgcF92YWx1ZSkpCmNhdChzcHJpbnRmKCJSLXNxdWFyZWQgb2YgdGhlIG1vZGVsOiAlLjNmXG4iLCByX3NxdWFyZWQpKQpgYGAKCgojIyMgQ29tYmluZWQgVmlvbGluIGFuZCBCb3ggUGxvdCBmb3IgV2Vla3MgNOKAkzEzClRoaXMgcGxvdCBjb21iaW5lcyB2aW9saW4gcGxvdHMgYW5kIGJveCBwbG90cyB0byBpbGx1c3RyYXRlIHRoZSBkaXN0cmlidXRpb24gb2YgYmVoYXZpb3Igc3Vic2NhbGUgc2NvcmVzIGFjcm9zcyB3ZWVrcyA0IHRvIDEzLiBUaGUgdmlvbGluIHBsb3Qgc2hvd3MgdGhlIGRlbnNpdHkgb2Ygc2NvcmVzIGZvciBlYWNoIHdlZWssIHdoaWxlIHRoZSBib3ggcGxvdCBwcm92aWRlcyBhIHN1bW1hcnkgb2YgdGhlIGRhdGEncyBjZW50cmFsIHRlbmRlbmN5IGFuZCBzcHJlYWQsIGluY2x1ZGluZyB0aGUgbWVkaWFuLCBpbnRlcnF1YXJ0aWxlIHJhbmdlLCBhbmQgb3ZlcmFsbCByYW5nZS4KCmBgYHtyfQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZHBseXIpCgojIEZpbHRlciBpZiB5b3Ugb25seSB3YW50IFdlZWtzIDEuLjEzIChvcHRpb25hbCkKTm9EdXBfUHVycmJsZUFub25fZmlsdGVyZWQgPC0gTm9EdXBfUHVycmJsZUFub24gJT4lIAogIGZpbHRlcihXZWVrICVpbiUgNDoxMykKCmdncGxvdChOb0R1cF9QdXJyYmxlQW5vbl9maWx0ZXJlZCwgYWVzKHggPSBmYWN0b3IoV2VlayksIHkgPSB0d2VldHNfYmVoKSkgKwogIGdlb21fdmlvbGluKHRyaW0gPSBGQUxTRSwgZmlsbCA9ICJsaWdodGJsdWUiLCBhbHBoYSA9IDAuNSkgKwogIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgZmlsbCA9ICJ3aGl0ZSIsIG91dGxpZXIuc2hhcGUgPSBOQSkgKyAKICAjIG91dGxpZXIuc2hhcGU9TkEgaGlkZXMgb3V0bGllciBwb2ludHMgc28gdGhleSBkb24ndCBjbHV0dGVyIHRoZSB2aW9saW4KICBsYWJzKAogICAgdGl0bGUgPSAidHdlZXRzX2JlaCBEaXN0cmlidXRpb24gYnkgV2VlayIsCiAgICB4ID0gIldlZWsiLAogICAgeSA9ICJ0d2VldHNfYmVoIgogICkgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKIyMjIEJlaGF2aW9yIFZpb2xpbiBQbG90IGZvciBXZWVrcyA04oCTMTMKVGhlIHBsb3QgYmVsb3cgZGlzcGxheXMgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgYmVoYXZpb3Igc3Vic2NhbGUgc2NvcmVzIGZyb20gd2Vla3MgNCB0byAxMy4gVGhlIHdpZGVyIHNlY3Rpb25zIG9mIHRoZSB2aW9saW4gaW5kaWNhdGUgYSBoaWdoZXIgY29uY2VudHJhdGlvbiBvZiBzY29yZXMsIHdoaWxlIHRoZSBuYXJyb3dlciBzZWN0aW9ucyBzaG93IGxlc3MgZnJlcXVlbnQgdmFsdWVzLiBKaXR0ZXJlZCBwb2ludHMgYXJlIG92ZXJsYWlkIHRvIHNob3cgdGhlIGluZGl2aWR1YWwgcGFydGljaXBhbnQgc2NvcmVzLiAKCmBgYHtyfQp0d2VldHNfYmVoX2Rpc3RyaWJ1dGlvbiA8LSB0d2VldHNfd2lkZSAlPiUKICBwaXZvdF9sb25nZXIoCiAgICBjb2xzID0gc3RhcnRzX3dpdGgoInR3ZWV0c19iZWhfIiksCiAgICBuYW1lc190byA9ICJ3ZWVrIiwKICAgIG5hbWVzX3ByZWZpeCA9ICJ0d2VldHNfYmVoXyIsCiAgICB2YWx1ZXNfdG8gPSAidHdlZXRzX2JlaCIKICApICU+JQogIG11dGF0ZSh3ZWVrID0gYXMubnVtZXJpYyh3ZWVrKSkgJT4lICAjIENvbnZlcnQgd2VlayB0byBudW1lcmljIGZvciBwbG90dGluZwogIGZpbHRlcih3ZWVrID49IDQgJiB3ZWVrIDw9IDEzKQoKIyBEaXN0cmlidXRpb24gZ3JhcGggZm9yIHdlZWtzIDQgdG8gMTMgKHdpZGVyIHBsb3QpCnR3ZWV0c19iZWhfdmlvbGluIDwtIHR3ZWV0c19iZWhfZGlzdHJpYnV0aW9uICU+JQogIGdncGxvdChhZXMoeCA9IGZhY3Rvcih3ZWVrKSwgeSA9IHR3ZWV0c19iZWgpKSArCiAgZ2VvbV92aW9saW4oYWVzKGdyb3VwID0gd2VlayksIGFscGhhID0gMC41LCBmaWxsID0gImxpZ2h0Ymx1ZSIpICsKICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMiwgYWxwaGEgPSAwLjYpICsKICBsYWJzKAogICAgeCA9ICJXZWVrIiwKICAgIHkgPSAiQmVoYXZpb3IgU3Vic2NhbGUgKHR3ZWV0c19iZWgpIiwKICAgIHRpdGxlID0gIkRpc3RyaWJ1dGlvbiBvZiBCZWhhdmlvciBTdWJzY2FsZSBBY3Jvc3MgV2Vla3MgNOKAkzEzIgogICkgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpKQoKIyBEaXNwbGF5IHRoZSB2aW9saW4gcGxvdCB3aXRoIGN1c3RvbSB3aWR0aAp0d2VldHNfYmVoX3Zpb2xpbiArIHRoZW1lKHBsb3QubWFyZ2luID0gdW5pdChjKDEsIDEsIDEsIDEpLCAiY20iKSkKYGBgCiMjIyBSYWluY2xvdWQgUGxvdCBmb3IgV2Vla3MgNCBhbmQgMTMKVGhlc2UgcGxvdCBwcm92aWRlcyBhIGNvbXBhcmlzb24gb2YgdGhlIGJlaGF2aW9yIHN1YnNjYWxlIHNjb3JlcyBiZXR3ZWVuIHdlZWtzIDQgYW5kIDEzIChmaXJzdCBhbmQgbGFzdCB3ZWVrcyByZWNvcmRlZCkuIEVhY2ggd2VlayBpcyByZXByZXNlbnRlZCBieSBhIGNvbWJpbmF0aW9uIG9mIGEgdmlvbGluIHBsb3QgKHNob3dpbmcgdGhlIHNjb3JlIGRpc3RyaWJ1dGlvbiksIGppdHRlcmVkIHBvaW50cyAocmVwcmVzZW50aW5nIGluZGl2aWR1YWwgcGFydGljaXBhbnQgc2NvcmVzKSwgYW5kIGxpbmVzIGNvbm5lY3Rpbmcgc2NvcmVzIGZvciB0aGUgc2FtZSBwYXJ0aWNpcGFudHMgYmV0d2VlbiB0aGUgdHdvIHRpbWVwb2ludHMgc2hvd2luZyBjaGFuZ2Ugb3ZlciB0aW1lLgoKYGBge3J9CiMgUHJlcGFyZSBkYXRhIGZvciByYWluY2xvdWQgZ3JhcGggKHdlZWtzIDQgYW5kIDEzKQp0d2VldHNfYmVoX3JhaW4gPC0gdHdlZXRzX3dpZGUgJT4lCiAgc2VsZWN0KHBzaWQsIHR3ZWV0c19iZWhfNCwgdHdlZXRzX2JlaF8xMykgJT4lCiAgZmlsdGVyKCFpcy5uYSh0d2VldHNfYmVoXzQpICYgIWlzLm5hKHR3ZWV0c19iZWhfMTMpKSAlPiUgICMgUmVtb3ZlIG1pc3NpbmcgZGF0YQogIHBpdm90X2xvbmdlcigKICAgIGNvbHMgPSBjKHR3ZWV0c19iZWhfNCwgdHdlZXRzX2JlaF8xMyksCiAgICBuYW1lc190byA9ICJ3ZWVrIiwKICAgIG5hbWVzX3ByZWZpeCA9ICJ0d2VldHNfYmVoXyIsCiAgICB2YWx1ZXNfdG8gPSAidHdlZXRzX2JlaCIKICApICU+JQogIG11dGF0ZSh3ZWVrID0gZmFjdG9yKHdlZWssIGxldmVscyA9IGMoIjQiLCAiMTMiKSkpCgojIFJhaW5jbG91ZCBncmFwaCBmb3Igd2Vla3MgNCBhbmQgMTMKdHdlZXRzX2JlaF9yYWluY2xvdWQgPC0gdHdlZXRzX2JlaF9yYWluICU+JQogIGdncGxvdChhZXMoeCA9IHdlZWssIHkgPSB0d2VldHNfYmVoKSkgKwogIGdlb21faml0dGVyKHdpZHRoID0gMC4yLCBhbHBoYSA9IDAuNikgKwogIGdlb21fdmlvbGluKGFlcyhncm91cCA9IHdlZWspLCBhbHBoYSA9IDAuNSwgZmlsbCA9ICJsaWdodGJsdWUiKSArCiAgZ2VvbV9saW5lKGFlcyhncm91cCA9IHBzaWQpLCBhbHBoYSA9IDAuNCwgY29sb3IgPSAiZ3JheSIpICsKICBsYWJzKAogICAgeCA9ICJXZWVrIiwKICAgIHkgPSAiQmVoYXZpb3IgU3Vic2NhbGUgKHR3ZWV0c19iZWgpIiwKICAgIHRpdGxlID0gIkJlaGF2aW9yIFN1YnNjYWxlOiBXZWVrcyA0IHZzLiAxMyIKICApICsKICB0aGVtZV9taW5pbWFsKCkgKwogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSkKCiMgRGlzcGxheSB0aGUgcmFpbmNsb3VkIGdyYXBoCnR3ZWV0c19iZWhfcmFpbmNsb3VkCmBgYAoKIyMgQWZmZWN0IFN1YnNjYWxlCmBgYHtyfQoKd2Vla3MgPC0gNDoxMwp0d2VldF9hZmZfdmFycyA8LSBzcHJpbnRmKCJ0d2VldHNfYWZmXyVkIiwgd2Vla3MpCgpteV90d2VldHNfYWZmIDwtIHB1cnJibGVfd2lkZSAlPiUKICBzZWxlY3QoYWxsX29mKHR3ZWV0X2FmZl92YXJzKSkKCmRlc2NyaWJlKG15X3R3ZWV0c19hZmYpICU+JQogIGthYmxlKGRpZ2l0cyA9IDIpCmBgYAoKIyMgVmlzdWFsaXphdGlvbiBvZiBNZWFucyBvdmVyIFRpbWUgd2l0aCBFcnJvciBCYXJzCgpgYGB7cn0KbGlicmFyeShkcGx5cikKbGlicmFyeShnZ3Bsb3QyKQoKIyBTdGVwIDE6IENhbGN1bGF0ZSBtZWFucyBhbmQgc3RhbmRhcmQgZXJyb3JzIGZvciB0d2VldHNfYWZmIGJ5IHdlZWsKc3VtbWFyeV9hZmYgPC0gTm9EdXBfUHVycmJsZUFub24gJT4lCiAgZ3JvdXBfYnkoV2VlaykgJT4lCiAgc3VtbWFyaXNlKAogICAgTWVhbiA9IG1lYW4odHdlZXRzX2FmZiwgbmEucm0gPSBUUlVFKSwKICAgIFNFTSA9IHNkKHR3ZWV0c19hZmYsIG5hLnJtID0gVFJVRSkgLyBzcXJ0KG4oKSkKICApCgojIFBsb3QgdGhlIG1lYW4gc2NvcmVzIHdpdGggZXJyb3IgYmFycwpnZ3Bsb3Qoc3VtbWFyeV9hZmYsIGFlcyh4ID0gV2VlaywgeSA9IE1lYW4pKSArCiAgZ2VvbV9saW5lKGdyb3VwID0gMSwgY29sb3IgPSAiZGFya3JlZCIpICsKICBnZW9tX3BvaW50KHNpemUgPSAzLCBjb2xvciA9ICJkYXJrcmVkIikgKwogIGdlb21fZXJyb3JiYXIoYWVzKHltaW4gPSBNZWFuIC0gU0VNLCB5bWF4ID0gTWVhbiArIFNFTSksIHdpZHRoID0gMC4yLCBjb2xvciA9ICJkYXJrcmVkIikgKwogIGxhYnMoCiAgICB0aXRsZSA9ICJNZWFuIEFmZmVjdCBTdWJzY2FsZSBTY29yZXMgT3ZlciBUaW1lIiwKICAgIHggPSAiV2VlayIsCiAgICB5ID0gIk1lYW4gQWZmZWN0IFNjb3JlIgogICkgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQsIGZhY2UgPSAiYm9sZCIpKQoKYGBgCiMjIFJlZ3Jlc3Npb24gdG8gYW5hbHl6ZSBiYXNpYyB0cmVuZCBvdmVyIHRpbWUKQSBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbCB3YXMgZml0dGVkIHRvIHByZWRpY3QgVHdlZXRzIEFmZmVjdCBzdWJzY2FsZSBhcyBhIGZ1bmN0aW9uIG9mIFdlZWsuClRoaXMgYXBwcm9hY2ggcXVhbnRpZmllZCB0aGUgZGlyZWN0aW9uIGFuZCBtYWduaXR1ZGUgb2YgdGhlIHRyZW5kIGluIGVuZ2FnZW1lbnQgb3ZlciB0aW1lLgpUaGUgcmVncmVzc2lvbiBhbmFseXNpcyByZXZlYWxlZCBzbWFsbCwgc2lnbmlmaWNhbnQgZGVjcmVhc2Ugb3ZlciB0aW1lLCAKCgpgYGB7cn0KIyBTdGVwIDI6IEZpdCBhIGxpbmVhciByZWdyZXNzaW9uIG1vZGVsCm1vZGVsX2FmZiA8LSBsbSh0d2VldHNfYWZmIH4gV2VlaywgZGF0YSA9IE5vRHVwX1B1cnJibGVBbm9uKQoKIyBFeHRyYWN0IHNsb3BlLCBwLXZhbHVlLCBhbmQgUi1zcXVhcmVkCnNsb3BlX2FmZiA8LSBjb2VmKG1vZGVsX2FmZilbIldlZWsiXQpwX3ZhbHVlX2FmZiA8LSBzdW1tYXJ5KG1vZGVsX2FmZikkY29lZmZpY2llbnRzWyJXZWVrIiwgIlByKD58dHwpIl0Kcl9zcXVhcmVkX2FmZiA8LSBzdW1tYXJ5KG1vZGVsX2FmZikkci5zcXVhcmVkCgojIFByaW50IHJlc3VsdHMKY2F0KCJMaW5lYXIgUmVncmVzc2lvbiBSZXN1bHRzIGZvciBBZmZlY3QgU3Vic2NhbGU6XG4iKQpjYXQoc3ByaW50ZigiU2xvcGUgb2YgdGhlIHRyZW5kIChXZWVrKTogJS4zZlxuIiwgc2xvcGVfYWZmKSkKY2F0KHNwcmludGYoIlAtdmFsdWUgZm9yIHRoZSBzbG9wZTogJS4zZVxuIiwgcF92YWx1ZV9hZmYpKQpjYXQoc3ByaW50ZigiUi1zcXVhcmVkIG9mIHRoZSBtb2RlbDogJS4zZlxuIiwgcl9zcXVhcmVkX2FmZikpCgpgYGAKCgojIyMgQ29tYmluZWQgVmlvbGluIGFuZCBCb3ggUGxvdCBmb3IgV2Vla3MgNOKAkzEzClRoaXMgcGxvdCBjb21iaW5lcyB2aW9saW4gcGxvdHMgYW5kIGJveCBwbG90cyB0byBpbGx1c3RyYXRlIHRoZSBkaXN0cmlidXRpb24gb2YgYWZmZWN0IHN1YnNjYWxlIHNjb3JlcyBhY3Jvc3Mgd2Vla3MgNCB0byAxMy4gVGhlIHZpb2xpbiBwbG90IHNob3dzIHRoZSBkZW5zaXR5IG9mIHNjb3JlcyBmb3IgZWFjaCB3ZWVrLCB3aGlsZSB0aGUgYm94IHBsb3QgcHJvdmlkZXMgYSBzdW1tYXJ5IG9mIHRoZSBkYXRhJ3MgY2VudHJhbCB0ZW5kZW5jeSBhbmQgc3ByZWFkLCBpbmNsdWRpbmcgdGhlIG1lZGlhbiwgaW50ZXJxdWFydGlsZSByYW5nZSwgYW5kIG92ZXJhbGwgcmFuZ2UuCgpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGRwbHlyKQoKIyBGaWx0ZXIgaWYgeW91IG9ubHkgd2FudCBXZWVrcyAxLi4xMyAob3B0aW9uYWwpCk5vRHVwX1B1cnJibGVBbm9uX2ZpbHRlcmVkIDwtIE5vRHVwX1B1cnJibGVBbm9uICU+JSAKICBmaWx0ZXIoV2VlayAlaW4lIDQ6MTMpCgpnZ3Bsb3QoTm9EdXBfUHVycmJsZUFub25fZmlsdGVyZWQsIGFlcyh4ID0gZmFjdG9yKFdlZWspLCB5ID0gdHdlZXRzX2FmZikpICsKICBnZW9tX3Zpb2xpbih0cmltID0gRkFMU0UsIGZpbGwgPSAibGlnaHRibHVlIiwgYWxwaGEgPSAwLjUpICsKICBnZW9tX2JveHBsb3Qod2lkdGggPSAwLjEsIGZpbGwgPSAid2hpdGUiLCBvdXRsaWVyLnNoYXBlID0gTkEpICsgCiAgIyBvdXRsaWVyLnNoYXBlPU5BIGhpZGVzIG91dGxpZXIgcG9pbnRzIHNvIHRoZXkgZG9uJ3QgY2x1dHRlciB0aGUgdmlvbGluCiAgbGFicygKICAgIHRpdGxlID0gInR3ZWV0czogQWZmZWN0IERpc3RyaWJ1dGlvbiBieSBXZWVrIiwKICAgIHggPSAiV2VlayIsCiAgICB5ID0gInR3ZWV0cyBBZmZlY3QgU2NvcmUiCiAgKSArCiAgdGhlbWVfbWluaW1hbCgpCmBgYAojIyMgQWZmZWN0IFZpb2xpbiBQbG90IGZvciBXZWVrcyA04oCTMTMKVGhlIHBsb3QgYmVsb3cgZGlzcGxheXMgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgYWZmZWN0IHN1YnNjYWxlIHNjb3JlcyBmcm9tIHdlZWtzIDQgdG8gMTMuIFRoZSB3aWRlciBzZWN0aW9ucyBvZiB0aGUgdmlvbGluIGluZGljYXRlIGEgaGlnaGVyIGNvbmNlbnRyYXRpb24gb2Ygc2NvcmVzLCB3aGlsZSB0aGUgbmFycm93ZXIgc2VjdGlvbnMgc2hvdyBsZXNzIGZyZXF1ZW50IHZhbHVlcy4gSml0dGVyZWQgcG9pbnRzIGFyZSBvdmVybGFpZCB0byBzaG93IHRoZSBpbmRpdmlkdWFsIHBhcnRpY2lwYW50IHNjb3Jlcy4gCgpgYGB7cn0KIyBGaWx0ZXIgZGF0YSBmb3Igd2Vla3MgNCB0byAxMwp0d2VldHNfYWZmX2Rpc3RyaWJ1dGlvbiA8LSB0d2VldHNfd2lkZSAlPiUKICBwaXZvdF9sb25nZXIoCiAgICBjb2xzID0gc3RhcnRzX3dpdGgoInR3ZWV0c19hZmZfIiksCiAgICBuYW1lc190byA9ICJ3ZWVrIiwKICAgIG5hbWVzX3ByZWZpeCA9ICJ0d2VldHNfYWZmXyIsCiAgICB2YWx1ZXNfdG8gPSAidHdlZXRzX2FmZiIKICApICU+JQogIG11dGF0ZSh3ZWVrID0gYXMubnVtZXJpYyh3ZWVrKSkgJT4lICAjIENvbnZlcnQgd2VlayB0byBudW1lcmljIGZvciBwbG90dGluZwogIGZpbHRlcih3ZWVrID49IDQgJiB3ZWVrIDw9IDEzKQoKIyBEaXN0cmlidXRpb24gZ3JhcGggZm9yIHdlZWtzIDQgdG8gMTMgKHdpZGVyIHBsb3QpCnR3ZWV0c19hZmZfdmlvbGluIDwtIHR3ZWV0c19hZmZfZGlzdHJpYnV0aW9uICU+JQogIGdncGxvdChhZXMoeCA9IGZhY3Rvcih3ZWVrKSwgeSA9IHR3ZWV0c19hZmYpKSArCiAgZ2VvbV92aW9saW4oYWVzKGdyb3VwID0gd2VlayksIGFscGhhID0gMC41LCBmaWxsID0gImxpZ2h0Ymx1ZSIpICsKICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMiwgYWxwaGEgPSAwLjYpICsKICBsYWJzKAogICAgeCA9ICJXZWVrIiwKICAgIHkgPSAiQWZmZWN0IFN1YnNjYWxlICh0d2VldHNfYWZmKSIsCiAgICB0aXRsZSA9ICJEaXN0cmlidXRpb24gb2YgQWZmZWN0IFN1YnNjYWxlIEFjcm9zcyBXZWVrcyA04oCTMTMiCiAgKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCkpCgojIERpc3BsYXkgdGhlIHZpb2xpbiBwbG90IHdpdGggY3VzdG9tIHdpZHRoCnR3ZWV0c19hZmZfdmlvbGluICsgdGhlbWUocGxvdC5tYXJnaW4gPSB1bml0KGMoMSwgMSwgMSwgMSksICJjbSIpKQoKYGBgCgojIyMgUmFpbmNsb3VkIFBsb3QgZm9yIFdlZWtzIDQgYW5kIDEzClRoZXNlIHBsb3QgcHJvdmlkZXMgYSBjb21wYXJpc29uIG9mIHRoZSBhZmZlY3Qgc3Vic2NhbGUgc2NvcmVzIGJldHdlZW4gd2Vla3MgNCBhbmQgMTMgKGZpcnN0IGFuZCBsYXN0IHdlZWtzIHJlY29yZGVkKS4gRWFjaCB3ZWVrIGlzIHJlcHJlc2VudGVkIGJ5IGEgY29tYmluYXRpb24gb2YgYSB2aW9saW4gcGxvdCAoc2hvd2luZyB0aGUgc2NvcmUgZGlzdHJpYnV0aW9uKSwgaml0dGVyZWQgcG9pbnRzIChyZXByZXNlbnRpbmcgaW5kaXZpZHVhbCBwYXJ0aWNpcGFudCBzY29yZXMpLCBhbmQgbGluZXMgY29ubmVjdGluZyBzY29yZXMgZm9yIHRoZSBzYW1lIHBhcnRpY2lwYW50cyBiZXR3ZWVuIHRoZSB0d28gdGltZXBvaW50cyBzaG93aW5nIGNoYW5nZSBvdmVyIHRpbWUuCgpgYGB7cn0KIyBQcmVwYXJlIGRhdGEgZm9yIHJhaW5jbG91ZCBncmFwaCAod2Vla3MgNCBhbmQgMTMpCnR3ZWV0c19hZmZfcmFpbiA8LSB0d2VldHNfd2lkZSAlPiUKICBzZWxlY3QocHNpZCwgdHdlZXRzX2FmZl80LCB0d2VldHNfYWZmXzEzKSAlPiUKICBmaWx0ZXIoIWlzLm5hKHR3ZWV0c19hZmZfNCkgJiAhaXMubmEodHdlZXRzX2FmZl8xMykpICU+JSAgIyBSZW1vdmUgbWlzc2luZyBkYXRhCiAgcGl2b3RfbG9uZ2VyKAogICAgY29scyA9IGModHdlZXRzX2FmZl80LCB0d2VldHNfYWZmXzEzKSwKICAgIG5hbWVzX3RvID0gIndlZWsiLAogICAgbmFtZXNfcHJlZml4ID0gInR3ZWV0c19hZmZfIiwKICAgIHZhbHVlc190byA9ICJ0d2VldHNfYWZmIgogICkgJT4lCiAgbXV0YXRlKHdlZWsgPSBmYWN0b3Iod2VlaywgbGV2ZWxzID0gYygiNCIsICIxMyIpKSkKCiMgUmFpbmNsb3VkIGdyYXBoIGZvciB3ZWVrcyA0IGFuZCAxMwp0d2VldHNfYWZmX3JhaW5jbG91ZCA8LSB0d2VldHNfYWZmX3JhaW4gJT4lCiAgZ2dwbG90KGFlcyh4ID0gd2VlaywgeSA9IHR3ZWV0c19hZmYpKSArCiAgZ2VvbV9qaXR0ZXIod2lkdGggPSAwLjIsIGFscGhhID0gMC42KSArCiAgZ2VvbV92aW9saW4oYWVzKGdyb3VwID0gd2VlayksIGFscGhhID0gMC41LCBmaWxsID0gImxpZ2h0Ymx1ZSIpICsKICBnZW9tX2xpbmUoYWVzKGdyb3VwID0gcHNpZCksIGFscGhhID0gMC40LCBjb2xvciA9ICJncmF5IikgKwogIGxhYnMoCiAgICB4ID0gIldlZWsiLAogICAgeSA9ICJBZmZlY3QgU3Vic2NhbGUgKHR3ZWV0c19hZmYpIiwKICAgIHRpdGxlID0gIkFmZmVjdCBTdWJzY2FsZTogV2Vla3MgNCB2cy4gMTMiCiAgKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCkpCgojIERpc3BsYXkgdGhlIHJhaW5jbG91ZCBncmFwaAp0d2VldHNfYWZmX3JhaW5jbG91ZApgYGAK