Average effect
Sample Size
length(unique(peer_effect_with_manager_update$storekey))
[1] 1051
- Number of unique employees
length(unique(peer_effect_with_manager_update$focalemployee))
[1] 83450
Tipping
summary(peer_ols_effect_AvgTip_lag_withmanager_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
avg_peerAvgTip -0.008936603 0.001139159 -7.844911 4.333776e-15
summary(peer_iv_effect_AvgTip_lag_withmanager_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerAvgTip(fit)` 0.04294901 0.007788008 5.514762 3.492752e-08
Stealcnt
summary(peer_ols_effect_stealcnt_lag_withmanager_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
log(avg_peerTotalStealCnt + 1) -0.040777710 0.0029564400 -13.79284 2.821556e-43
log(avg_peerTotalStealAmount + 1) 0.004923882 0.0007960362 6.18550 6.191245e-10
- OLS without log transformation
summary(peer_ols_effect_stealcnt_lag_withmanage_update_wtlog)$coefficients
Estimate Std. Error t value Pr(>|t|)
avg_peerTotalStealCnt -0.0160980698 1.097625e-03 -14.6662786 1.063407e-48
avg_peerTotalStealAmount 0.0000147503 1.715657e-05 0.8597463 3.899290e-01
summary(peer_iv_effect_stealcnt_lag_withmanager_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealCnt + 1)(fit)` 0.13795899 0.027973994 4.931687 8.152589e-07
`log(avg_peerTotalStealAmount + 1)(fit)` 0.01539514 0.003201427 4.808835 1.518183e-06
- IV without log transformation
summary(peer_iv_effect_stealcnt_lag_withmanager_update_wtlog)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerTotalStealCnt(fit)` 0.0563518698 1.192216e-02 4.72665 2.282632e-06
`avg_peerTotalStealAmount(fit)` 0.0005980154 9.417268e-05 6.35020 2.150602e-10
Stealamt
summary(peer_ols_effect_stealamt_lag_withmanager_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
log(avg_peerTotalStealAmount + 1) -0.20746073 0.03087731 -6.7188734 1.831616e-11
log(avg_peerTotalStealCnt + 1) 0.01732608 0.11467684 0.1510862 8.799078e-01
- OLS without log transformation
summary(peer_ols_effect_stealamt_lag_withmanager_wtlog)$coefficients
Estimate Std. Error t value Pr(>|t|)
avg_peerTotalStealAmount -0.01207570 0.0006656213 -18.141994 1.496534e-73
avg_peerTotalStealCnt -0.07310905 0.0425844070 -1.716803 8.601519e-02
summary(peer_iv_effect_stealamt_lag_withmanager_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealAmount + 1)(fit)` -0.6919844 0.1240731 -5.5772327 2.44392e-08
`log(avg_peerTotalStealCnt + 1)(fit)` 0.6850004 1.0841475 0.6318331 5.27496e-01
- IV without log transformation
summary(peer_iv_effect_stealamt_lag_withmanager_update_wtlog)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerTotalStealAmount(fit)` -0.04171673 0.003648274 -11.4346507 2.809977e-30
`avg_peerTotalStealCnt(fit)` 0.19262848 0.461867486 0.4170644 6.766313e-01
Familiar VS Unfamiliar
Tipping
summary(peer_ols_AvgTip_top_common_2weeks_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
toptargetAvgTip 0.009559141 0.0008224346 11.62298 3.155014e-31
commontargetAvgTip -0.023815893 0.0012290618 -19.37729 1.215997e-83
summary(peer_iv_AvgTip_top_common_2weeks_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`toptargetAvgTip(fit)` 0.09967400 0.012318780 8.091223 5.909296e-16
`commontargetAvgTip(fit)` 0.02101526 0.008593765 2.445407 1.446892e-02
Stealcnt
summary(peer_ols_stealcnt_top_common_2weeks_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
log(toptargetTotalStealCount + 1) -0.02086466 0.002397026 -8.704395 3.194511e-18
log(commontargetTotalStealCount + 1) -0.03353283 0.003096388 -10.829660 2.494053e-27
summary(peer_ols_stealcnt_top_common_2weeks_withmanagers_update_wtlog)$coefficients
Estimate Std. Error t value Pr(>|t|)
toptargetTotalStealCount -0.01084264 0.0005790099 -18.72618 3.064116e-78
commontargetTotalStealCount -0.01784623 0.0011568790 -15.42619 1.097129e-53
summary(peer_iv_stealcnt_top_common_2weeks_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(toptargetTotalStealCount + 1)(fit)` 0.04776667 0.02008991 2.377644 1.742369e-02
`log(commontargetTotalStealCount + 1)(fit)` 0.20398135 0.03226359 6.322339 2.576742e-10
summary(peer_iv_stealcnt_top_common_2weeks_withmanagers_update_wtlog)$coefficients
Estimate Std. Error t value Pr(>|t|)
`toptargetTotalStealCount(fit)` 0.01045081 0.006720246 1.555124 1.199167e-01
`commontargetTotalStealCount(fit)` 0.08803350 0.014990712 5.872537 4.292278e-09
StealAmt
summary(peer_ols_stealamt_top_common_2weeks_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
log(toptargetTotalStealAmount + 1) -0.2616647 0.03118576 -8.390517 4.842406e-17
log(commontargetTotalStealAmount + 1) -0.1521120 0.03404940 -4.467392 7.918221e-06
summary(peer_ols_stealamt_top_common_2weeks_withmanagers_update_wtlog)$coefficients
Estimate Std. Error t value Pr(>|t|)
toptargetTotalStealAmount -0.01386316 0.0005562434 -24.92284 4.363974e-137
commontargetTotalStealAmount -0.01539690 0.0007082253 -21.74011 8.751413e-105
summary(peer_iv_stealamt_top_common_2weeks_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(toptargetTotalStealAmount + 1)(fit)` -0.3948857 0.1180703 -3.344496 8.243330e-04
`log(commontargetTotalStealAmount + 1)(fit)` -1.0237301 0.1479117 -6.921226 4.478515e-12
summary(peer_iv_stealamt_top_common_2weeks_withmanagers_update_wtlog)$coefficients
Estimate Std. Error t value Pr(>|t|)
`toptargetTotalStealAmount(fit)` -0.02559452 0.002415244 -10.59708 3.078097e-26
`commontargetTotalStealAmount(fit)` -0.04854731 0.004542902 -10.68641 1.179908e-26
Before and After policy change
Tipping
summary(peer_iv_AvgTip_top_common_2weeks_withmanagers_beforeguard_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`toptargetAvgTip(fit)` 0.11753114 0.03015566 3.8974823 9.720969e-05
`commontargetAvgTip(fit)` 0.01395506 0.02067830 0.6748648 4.997620e-01
summary(peer_iv_AvgTip_top_common_2weeks_withmanagers_afterguard_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`toptargetAvgTip(fit)` -0.011874119 0.003339149 -3.556031 0.0003765077
`commontargetAvgTip(fit)` -0.009649416 0.003833373 -2.517213 0.0118288030
Stealcnt
summary(peer_iv_stealcnt_top_common_2weeks_withmanagers_beforeguard_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(toptargetTotalStealCount + 1)(fit)` 0.005494373 0.04089237 0.1343618 8.931165e-01
`log(commontargetTotalStealCount + 1)(fit)` 0.353821854 0.06436647 5.4969904 3.865021e-08
summary(peer_iv_stealcnt_top_common_2weeks_withmanagers_afterguard_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(toptargetTotalStealCount + 1)(fit)` 0.0951350 0.02339850 4.065859 4.785762e-05
`log(commontargetTotalStealCount + 1)(fit)` 0.1416929 0.03618075 3.916252 8.993911e-05
Stealamt
summary(peer_iv_stealamt_top_common_2weeks_withmanagers_beforeguard_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(toptargetTotalStealAmount + 1)(fit)` -0.5073025 0.2816252 -1.801339 7.165003e-02
`log(commontargetTotalStealAmount + 1)(fit)` -1.5923416 0.3803787 -4.186201 2.837076e-05
summary(peer_iv_stealamt_top_common_2weeks_withmanagers_afterguard_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(toptargetTotalStealAmount + 1)(fit)` -0.2824290 0.07905658 -3.572492 3.536079e-04
`log(commontargetTotalStealAmount + 1)(fit)` -0.4241754 0.08770957 -4.836135 1.323973e-06
Star VS Normal in Tipping
summary(peer_iv_AvgTip_star_normal_in_tip_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`startargetAvgTip(fit)` 0.01464348 0.002665847 5.492993 3.952044e-08
`normaltargetAvgTip(fit)` 0.06594113 0.016473999 4.002740 6.261446e-05
summary(peer_iv_AvgTip_star_normal_in_tip_withmanagers_update_beforeguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`startargetAvgTip(fit)` 0.004263119 0.007549862 0.5646618 0.572303979
`normaltargetAvgTip(fit)` 0.185183761 0.067635572 2.7379640 0.006182243
summary(peer_iv_AvgTip_star_normal_in_tip_withmanagers_update_afterguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`startargetAvgTip(fit)` 0.02910800 0.0009721815 29.940914 6.188528e-197
`normaltargetAvgTip(fit)` -0.01203243 0.0024704311 -4.870579 1.112773e-06
summary(peer_iv_stealcnt_star_normal_in_tip_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealCnt + 1)(fit)` 0.28902357 0.02480296 11.65278 2.223674e-31
`log(normaltargetTotalStealCnt + 1)(fit)` 0.07410286 0.02281675 3.24774 1.163266e-03
summary(peer_iv_stealcnt_star_normal_in_tip_withmanagers_update_beforeguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealCnt + 1)(fit)` 0.65169107 0.09048374 7.2023005 5.926497e-13
`log(normaltargetTotalStealCnt + 1)(fit)` -0.02341875 0.04671584 -0.5013021 6.161587e-01
summary(peer_iv_stealcnt_star_normal_in_tip_withmanagers_update_afterguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealCnt + 1)(fit)` 0.1771387 0.02200845 8.048669 8.373015e-16
`log(normaltargetTotalStealCnt + 1)(fit)` 0.1525509 0.02724972 5.598257 2.165371e-08
summary(peer_iv_stealamt_star_normal_in_tip_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealAmount + 1)(fit)` 0.6210325 0.2952493 2.103417 3.542937e-02
`log(normaltargetTotalStealAmount + 1)(fit)` -0.8369197 0.1075564 -7.781214 7.185080e-15
summary(peer_iv_stealamt_star_normal_in_tip_withmanagers_update_beforeguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealAmount + 1)(fit)` -0.9831219 1.2098776 -0.8125796 0.4164593984
`log(normaltargetTotalStealAmount + 1)(fit)` -1.2120801 0.3158574 -3.8374288 0.0001243403
summary(peer_iv_stealamt_star_normal_in_tip_withmanagers_update_afterguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealAmount + 1)(fit)` 1.2719209 0.15438237 8.238770 1.740603e-16
`log(normaltargetTotalStealAmount + 1)(fit)` -0.5666043 0.06681436 -8.480278 2.247586e-17
Star VS Normal in Stealcnt
summary(peer_iv_AvgTip_star_normal_in_stealcnt_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`startargetAvgTip(fit)` 0.1209345 0.003587028 33.71438 3.888560e-249
`normaltargetAvgTip(fit)` -0.1971571 0.008787468 -22.43617 1.777236e-111
summary(peer_iv_AvgTip_star_normal_in_stealcnt_withmanagers_update_beforeguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`startargetAvgTip(fit)` 0.1470953 0.008981127 16.37827 2.806936e-60
`normaltargetAvgTip(fit)` -0.2997397 0.025238771 -11.87616 1.585904e-32
summary(peer_iv_AvgTip_star_normal_in_stealcnt_withmanagers_update_afterguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`startargetAvgTip(fit)` 0.01589830 0.001325319 11.99583 3.743399e-33
`normaltargetAvgTip(fit)` 0.03493638 0.001881384 18.56951 5.729723e-77
summary(peer_iv_stealcnt_star_normal_in_stealcnt_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealCnt + 1)(fit)` 0.1767345 0.01228556 14.385544 6.396439e-47
`log(normaltargetTotalStealCnt + 1)(fit)` 0.1888203 0.11159139 1.692069 9.063292e-02
summary(peer_iv_stealcnt_star_normal_in_stealcnt_withmanagers_update_beforeguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealCnt + 1)(fit)` 0.2484815 0.02906889 8.5480227 1.254640e-17
`log(normaltargetTotalStealCnt + 1)(fit)` -0.3136787 0.32673125 -0.9600512 3.370298e-01
summary(peer_iv_stealcnt_star_normal_in_stealcnt_withmanagers_update_afterguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealCnt + 1)(fit)` 0.1581862 0.01328960 11.903009 1.143544e-32
`log(normaltargetTotalStealCnt + 1)(fit)` 0.3350488 0.09637278 3.476592 5.078378e-04
summary(peer_iv_stealamt_star_normal_in_stealcnt_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealAmount + 1)(fit)` -0.1974692 0.08819763 -2.238940 0.02515986
`log(normaltargetTotalStealAmount + 1)(fit)` -0.1766743 0.12708788 -1.390174 0.16447610
summary(peer_iv_stealamt_star_normal_in_stealcnt_withmanagers_update_beforeguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealAmount + 1)(fit)` -0.25741074 0.2461830 -1.04560728 0.2957428
`log(normaltargetTotalStealAmount + 1)(fit)` 0.01928278 0.3437606 0.05609363 0.9552672
summary(peer_iv_stealamt_star_normal_in_stealcnt_withmanagers_update_beforeguard)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealAmount + 1)(fit)` -0.25741074 0.2461830 -1.04560728 0.2957428
`log(normaltargetTotalStealAmount + 1)(fit)` 0.01928278 0.3437606 0.05609363 0.9552672
Star VS Normal in stealamt
summary(peer_iv_AvgTip_star_normal_in_stealamt_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`startargetAvgTip(fit)` 0.06063209 0.003737672 16.22189 3.548615e-59
`normaltargetAvgTip(fit)` -0.12245839 0.009134068 -13.40677 5.531181e-41
summary(peer_iv_stealcnt_star_normal_in_stealamt_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealCnt + 1)(fit)` 0.1365358 0.01095618 12.461990 1.205317e-35
`log(normaltargetTotalStealCnt + 1)(fit)` 0.2653367 0.06923149 3.832601 1.267977e-04
summary(peer_iv_stealamt_star_normal_in_stealamt_withmanagers_update)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(startargetTotalStealAmount + 1)(fit)` -0.01140217 0.0849677 -0.1341942 0.893249
`log(normaltargetTotalStealAmount + 1)(fit)` -0.20909361 0.7993118 -0.2615921 0.793636
New Employee’s Peer Effect
Tipping
summary(peer_iv_effect_AvgTip_lag_withmanager_update_first60)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerAvgTip(fit)` -0.1555147 0.01762768 -8.822186 1.123593e-18
summary(peer_iv_effect_AvgTip_lag_withmanager_update_mid60)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerAvgTip(fit)` -0.5204813 0.02210233 -23.5487 1.486412e-122
summary(peer_iv_effect_AvgTip_lag_withmanager_update_last60)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerAvgTip(fit)` 1.672857 0.08271381 20.22464 6.62741e-91
Stealcnt
summary(peer_iv_effect_stealcnt_lag_withmanager_update_first60)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealCnt + 1)(fit)` 0.4193988 0.05423401 7.733133 1.049942e-14
summary(peer_iv_effect_stealcnt_lag_withmanager_update_mid60)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealCnt + 1)(fit)` 0.3153305 0.07621898 4.137165 3.516747e-05
summary(peer_iv_effect_stealcnt_lag_withmanager_update_last60)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealCnt + 1)(fit)` 0.2080005 0.08756219 2.37546 0.01752757
Stealamt
summary(peer_iv_effect_stealamt_lag_withmanager_update_first60)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealAmount + 1)(fit)` 0.6355699 0.1568869 4.051134 5.097248e-05
summary(peer_iv_effect_stealamt_lag_withmanager_update_mid60)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealAmount + 1)(fit)` -0.5191083 0.1392796 -3.727095 0.0001937184
summary(peer_iv_effect_stealamt_lag_withmanager_update_last60)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealAmount + 1)(fit)` -1.007734 0.1706739 -5.904439 3.541464e-09
Restaurant Comparison
length(unique(peer_effect_with_manager_update_highcash$storekey))
[1] 120
length(unique(peer_effect_with_manager_update_lowcash$storekey))
[1] 931
Tipping
summary(peer_iv_effect_AvgTip_lag_withmanager_update_highcash)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerAvgTip(fit)` -0.01702114 0.02931866 -0.5805566 0.5615398
summary(peer_iv_effect_AvgTip_lag_withmanager_update_lowcash)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerAvgTip(fit)` 0.04568702 0.008012774 5.701773 1.185779e-08
Stealcnt
summary(peer_iv_effect_stealcnt_lag_withmanager_update_highcash)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealCnt + 1)(fit)` 0.00404247 0.02142919 0.1886431 0.8503726
summary(peer_iv_effect_stealcnt_lag_withmanager_update_lowcash)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealCnt + 1)(fit)` 0.3013009 0.03955222 7.6178 2.581038e-14
Stealamt
summary(peer_iv_effect_stealamt_lag_withmanager_update_highcash)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealAmount + 1)(fit)` -0.8781168 0.1205598 -7.283662 3.256625e-13
summary(peer_iv_effect_stealamt_lag_withmanager_update_lowcash)$coefficients
Estimate Std. Error t value Pr(>|t|)
`log(avg_peerTotalStealAmount + 1)(fit)` 0.07376214 0.3521624 0.2094549 0.8340931
Test of Two method of Fixed effect model with peer effect
Tipping
OLS
- Without demean of fixed effect
summary(peer_ols_effect_AvgTip_storetest_matrix)$coefficients[2,]
Estimate Std. Error t value Pr(>|t|)
0.1386023668 0.0371767505 3.7282001515 0.0001945276
- With demean of fixed effect
summary(peer_ols_effect_AvgTip_storetest_demean)$coefficients
Estimate Std. Error t value Pr(>|t|)
avg_peerAvgTip 0.1386024 0.03717675 3.7282 0.0001945276
IV
- Without demean of fixed effect
summary( peer_iv_effect_AvgTip_storetest_matrix)$coefficients[2,]
Estimate Std. Error t value Pr(>|t|)
0.874568192 0.247409424 3.534902502 0.000410827
- With demean of fixed effect
summary(peer_iv_effect_AvgTip_storetest_demean)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerAvgTip(fit)` 0.8745682 0.2474094 3.534903 0.000410827
Stealcnt
OLS
- Without demean of fixed effect
summary(peer_ols_effect_stealcnt_storetest_matrix)$coefficients[2,]
Estimate Std. Error t value Pr(>|t|)
0.02688869 0.01643700 1.63586359 0.10191762
- With demean of fixed effect
summary(peer_ols_effect_stealcnt_storetest_demean)$coefficients
Estimate Std. Error t value Pr(>|t|)
avg_peerTotalStealCnt 0.02688869 0.016437 1.635864 0.1019176
IV
- Without demean of fixed effect
summary( peer_iv_effect_stealcnt_storetest_matrix)$coefficients[2,]
Estimate Std. Error t value Pr(>|t|)
0.18600951 0.11184236 1.66314001 0.09633368
- With demean of fixed effect
summary(peer_iv_effect_stealcnt_storetest_demean)$coefficients
Estimate Std. Error t value Pr(>|t|)
`avg_peerTotalStealCnt(fit)` 0.1860095 0.1118424 1.66314 0.09633368
LS0tDQp0aXRsZTogInVwZGF0ZXMgb24gcGVlciBlZmZlY3QiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIEF2ZXJhZ2UgZWZmZWN0DQoNCiMjIFNhbXBsZSBTaXplDQoNCg0KLSBOdW1iZXIgb2Ygc3RvcmVzDQpgYGB7cn0NCmxlbmd0aCh1bmlxdWUocGVlcl9lZmZlY3Rfd2l0aF9tYW5hZ2VyX3VwZGF0ZSRzdG9yZWtleSkpDQpgYGANCg0KLSBOdW1iZXIgb2YgdW5pcXVlIGVtcGxveWVlcw0KDQpgYGB7cn0NCmxlbmd0aCh1bmlxdWUocGVlcl9lZmZlY3Rfd2l0aF9tYW5hZ2VyX3VwZGF0ZSRmb2NhbGVtcGxveWVlKSkNCmBgYA0KDQoNCiMjIFRpcHBpbmcNCg0KLSBPTFMNCg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfb2xzX2VmZmVjdF9BdmdUaXBfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBJVg0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3RfQXZnVGlwX2xhZ193aXRobWFuYWdlcl91cGRhdGUpJGNvZWZmaWNpZW50cw0KYGBgDQoNCiMjIFN0ZWFsY250DQoNCi0gT0xTDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9vbHNfZWZmZWN0X3N0ZWFsY250X2xhZ193aXRobWFuYWdlcl91cGRhdGUpJGNvZWZmaWNpZW50cw0KYGBgDQoNCi0gT0xTIHdpdGhvdXQgbG9nIHRyYW5zZm9ybWF0aW9uDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX29sc19lZmZlY3Rfc3RlYWxjbnRfbGFnX3dpdGhtYW5hZ2VfdXBkYXRlX3d0bG9nKSRjb2VmZmljaWVudHMNCmBgYA0KDQotIElWDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3Rfc3RlYWxjbnRfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBJViB3aXRob3V0IGxvZyB0cmFuc2Zvcm1hdGlvbg0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3Rfc3RlYWxjbnRfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZV93dGxvZykkY29lZmZpY2llbnRzDQpgYGANCg0KIyMgU3RlYWxhbXQNCg0KLSBPTFMNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX29sc19lZmZlY3Rfc3RlYWxhbXRfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCi0gT0xTIHdpdGhvdXQgbG9nIHRyYW5zZm9ybWF0aW9uDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX29sc19lZmZlY3Rfc3RlYWxhbXRfbGFnX3dpdGhtYW5hZ2VyX3d0bG9nKSRjb2VmZmljaWVudHMNCmBgYA0KDQotIElWDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3Rfc3RlYWxhbXRfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBJViB3aXRob3V0IGxvZyB0cmFuc2Zvcm1hdGlvbg0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3Rfc3RlYWxhbXRfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZV93dGxvZykkY29lZmZpY2llbnRzDQpgYGANCg0KIyBGYW1pbGlhciBWUyBVbmZhbWlsaWFyDQoNCiMjIFRpcHBpbmcNCg0KLSBPTFMNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX29sc19BdmdUaXBfdG9wX2NvbW1vbl8yd2Vla3Nfd2l0aG1hbmFnZXJzX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBJVg0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9BdmdUaXBfdG9wX2NvbW1vbl8yd2Vla3Nfd2l0aG1hbmFnZXJzX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KDQoNCiMjIFN0ZWFsY250DQoNCi0gT0xTDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9vbHNfc3RlYWxjbnRfdG9wX2NvbW1vbl8yd2Vla3Nfd2l0aG1hbmFnZXJzX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBPTFMgd2l0aG91dCBsb2cNCg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfb2xzX3N0ZWFsY250X3RvcF9jb21tb25fMndlZWtzX3dpdGhtYW5hZ2Vyc191cGRhdGVfd3Rsb2cpJGNvZWZmaWNpZW50cw0KYGBgDQoNCg0KLSBJVg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfc3RlYWxjbnRfdG9wX2NvbW1vbl8yd2Vla3Nfd2l0aG1hbmFnZXJzX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBJViB3aXRob3V0bG9nDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X3N0ZWFsY250X3RvcF9jb21tb25fMndlZWtzX3dpdGhtYW5hZ2Vyc191cGRhdGVfd3Rsb2cpJGNvZWZmaWNpZW50cw0KYGBgDQoNCg0KIyMgU3RlYWxBbXQNCg0KLSBPTFMNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX29sc19zdGVhbGFtdF90b3BfY29tbW9uXzJ3ZWVrc193aXRobWFuYWdlcnNfdXBkYXRlKSRjb2VmZmljaWVudHMNCmBgYA0KDQoNCi0gT0xTIHdpdGhvdXQgbG9nDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX29sc19zdGVhbGFtdF90b3BfY29tbW9uXzJ3ZWVrc193aXRobWFuYWdlcnNfdXBkYXRlX3d0bG9nKSRjb2VmZmljaWVudHMNCmBgYA0KDQotIElWDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X3N0ZWFsYW10X3RvcF9jb21tb25fMndlZWtzX3dpdGhtYW5hZ2Vyc191cGRhdGUpJGNvZWZmaWNpZW50cw0KYGBgDQoNCi0gSVYgd2l0aG91dCBsb2cNCg0KYGBge3J9DQoNCnN1bW1hcnkocGVlcl9pdl9zdGVhbGFtdF90b3BfY29tbW9uXzJ3ZWVrc193aXRobWFuYWdlcnNfdXBkYXRlX3d0bG9nKSRjb2VmZmljaWVudHMNCmBgYA0KDQojIEJlZm9yZSBhbmQgQWZ0ZXIgcG9saWN5IGNoYW5nZQ0KDQoNCiMgVGlwcGluZw0KDQotIEJlZm9yZQ0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfQXZnVGlwX3RvcF9jb21tb25fMndlZWtzX3dpdGhtYW5hZ2Vyc19iZWZvcmVndWFyZF91cGRhdGUpJGNvZWZmaWNpZW50cw0KYGBgDQoNCi0gQWZ0ZXINCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X0F2Z1RpcF90b3BfY29tbW9uXzJ3ZWVrc193aXRobWFuYWdlcnNfYWZ0ZXJndWFyZF91cGRhdGUpJGNvZWZmaWNpZW50cw0KYGBgDQoNCg0KIyBTdGVhbGNudA0KDQotIEJlZm9yZQ0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfc3RlYWxjbnRfdG9wX2NvbW1vbl8yd2Vla3Nfd2l0aG1hbmFnZXJzX2JlZm9yZWd1YXJkX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBBZnRlcg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfc3RlYWxjbnRfdG9wX2NvbW1vbl8yd2Vla3Nfd2l0aG1hbmFnZXJzX2FmdGVyZ3VhcmRfdXBkYXRlKSRjb2VmZmljaWVudHMNCmBgYA0KDQoNCiMgU3RlYWxhbXQNCg0KLSBCZWZvcmUNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X3N0ZWFsYW10X3RvcF9jb21tb25fMndlZWtzX3dpdGhtYW5hZ2Vyc19iZWZvcmVndWFyZF91cGRhdGUpJGNvZWZmaWNpZW50cw0KYGBgDQoNCi0gQWZ0ZXINCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X3N0ZWFsYW10X3RvcF9jb21tb25fMndlZWtzX3dpdGhtYW5hZ2Vyc19hZnRlcmd1YXJkX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KDQojIFN0YXIgVlMgTm9ybWFsIGluIFRpcHBpbmcNCg0KLSBUaXBwaW5nDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X0F2Z1RpcF9zdGFyX25vcm1hbF9pbl90aXBfd2l0aG1hbmFnZXJzX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KDQotIFRpcHBpbmcgQmVmb3JlIGd1YXJkDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X0F2Z1RpcF9zdGFyX25vcm1hbF9pbl90aXBfd2l0aG1hbmFnZXJzX3VwZGF0ZV9iZWZvcmVndWFyZCkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBUaXBwaW5nIGFmdGVyIGd1YXJkDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X0F2Z1RpcF9zdGFyX25vcm1hbF9pbl90aXBfd2l0aG1hbmFnZXJzX3VwZGF0ZV9hZnRlcmd1YXJkKSRjb2VmZmljaWVudHMNCmBgYA0KDQotIFN0ZWFsY250DQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X3N0ZWFsY250X3N0YXJfbm9ybWFsX2luX3RpcF93aXRobWFuYWdlcnNfdXBkYXRlKSRjb2VmZmljaWVudHMNCmBgYA0KDQotIFN0ZWFsY250IGJlZm9yZSBndWFyZA0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9zdGVhbGNudF9zdGFyX25vcm1hbF9pbl90aXBfd2l0aG1hbmFnZXJzX3VwZGF0ZV9iZWZvcmVndWFyZCkkY29lZmZpY2llbnRzDQpgYGANCi0gU3RlYWxjbnQgYWZ0ZXIgZ3VhcmQNCg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfc3RlYWxjbnRfc3Rhcl9ub3JtYWxfaW5fdGlwX3dpdGhtYW5hZ2Vyc191cGRhdGVfYWZ0ZXJndWFyZCkkY29lZmZpY2llbnRzDQpgYGANCg0KDQotIFN0ZWFsYW10DQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X3N0ZWFsYW10X3N0YXJfbm9ybWFsX2luX3RpcF93aXRobWFuYWdlcnNfdXBkYXRlKSRjb2VmZmljaWVudHMNCmBgYA0KDQotIFN0ZWFsYW10IGJlZm9yZSBndWFyZA0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9zdGVhbGFtdF9zdGFyX25vcm1hbF9pbl90aXBfd2l0aG1hbmFnZXJzX3VwZGF0ZV9iZWZvcmVndWFyZCkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBTdGVhbGFtdCBhZnRlciBndWFyZA0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9zdGVhbGFtdF9zdGFyX25vcm1hbF9pbl90aXBfd2l0aG1hbmFnZXJzX3VwZGF0ZV9hZnRlcmd1YXJkKSRjb2VmZmljaWVudHMNCmBgYA0KDQoNCiMgU3RhciBWUyBOb3JtYWwgaW4gU3RlYWxjbnQNCg0KLSBUaXBwaW5nDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X0F2Z1RpcF9zdGFyX25vcm1hbF9pbl9zdGVhbGNudF93aXRobWFuYWdlcnNfdXBkYXRlKSRjb2VmZmljaWVudHMNCmBgYA0KLSBUaXBwaW5nIGJlZm9yZSBndWFyZA0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9BdmdUaXBfc3Rhcl9ub3JtYWxfaW5fc3RlYWxjbnRfd2l0aG1hbmFnZXJzX3VwZGF0ZV9iZWZvcmVndWFyZCkkY29lZmZpY2llbnRzDQpgYGANCi0gVGlwcGluZyBhZnRlciBndWFyZA0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9BdmdUaXBfc3Rhcl9ub3JtYWxfaW5fc3RlYWxjbnRfd2l0aG1hbmFnZXJzX3VwZGF0ZV9hZnRlcmd1YXJkKSRjb2VmZmljaWVudHMNCmBgYA0KLSBTdGVhbGNudA0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9zdGVhbGNudF9zdGFyX25vcm1hbF9pbl9zdGVhbGNudF93aXRobWFuYWdlcnNfdXBkYXRlKSRjb2VmZmljaWVudHMNCmBgYA0KLSBTdGVhbGNudCBiZWZvcmUgZ3VhcmQNCg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfc3RlYWxjbnRfc3Rhcl9ub3JtYWxfaW5fc3RlYWxjbnRfd2l0aG1hbmFnZXJzX3VwZGF0ZV9iZWZvcmVndWFyZCkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBTdGVhbGNudCBhZnRlciBndWFyZA0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9zdGVhbGNudF9zdGFyX25vcm1hbF9pbl9zdGVhbGNudF93aXRobWFuYWdlcnNfdXBkYXRlX2FmdGVyZ3VhcmQpJGNvZWZmaWNpZW50cw0KYGBgDQotIFN0ZWFsYW10DQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X3N0ZWFsYW10X3N0YXJfbm9ybWFsX2luX3N0ZWFsY250X3dpdGhtYW5hZ2Vyc191cGRhdGUpJGNvZWZmaWNpZW50cw0KYGBgDQoNCi0gU3RlYWxhbXQgYmVmb3JlIGd1YXJkDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X3N0ZWFsYW10X3N0YXJfbm9ybWFsX2luX3N0ZWFsY250X3dpdGhtYW5hZ2Vyc191cGRhdGVfYmVmb3JlZ3VhcmQpJGNvZWZmaWNpZW50cw0KYGBgDQoNCi0gU3RlYWxhbXQgYWZ0ZXIgZ3VhcmQNCg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfc3RlYWxhbXRfc3Rhcl9ub3JtYWxfaW5fc3RlYWxjbnRfd2l0aG1hbmFnZXJzX3VwZGF0ZV9iZWZvcmVndWFyZCkkY29lZmZpY2llbnRzDQpgYGANCg0KIyMgU3RhciBWUyBOb3JtYWwgaW4gc3RlYWxhbXQNCg0KLSBUaXBwaW5nDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9BdmdUaXBfc3Rhcl9ub3JtYWxfaW5fc3RlYWxhbXRfd2l0aG1hbmFnZXJzX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBTdGVhbGNudA0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfc3RlYWxjbnRfc3Rhcl9ub3JtYWxfaW5fc3RlYWxhbXRfd2l0aG1hbmFnZXJzX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBTdGVhbGFtdA0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfc3RlYWxhbXRfc3Rhcl9ub3JtYWxfaW5fc3RlYWxhbXRfd2l0aG1hbmFnZXJzX3VwZGF0ZSkkY29lZmZpY2llbnRzDQpgYGANCg0KDQojIE5ldyBFbXBsb3llZSdzIFBlZXIgRWZmZWN0DQoNCiMjIFRpcHBpbmcNCg0KLSBGaXJzdCA2MCBkYXlzDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3RfQXZnVGlwX2xhZ193aXRobWFuYWdlcl91cGRhdGVfZmlyc3Q2MCkkY29lZmZpY2llbnRzDQpgYGANCi0gNjAtMTIwIERheXMNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X2VmZmVjdF9BdmdUaXBfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZV9taWQ2MCkkY29lZmZpY2llbnRzDQpgYGANCg0KLSBPdmVyIDEyMCBEYXlzDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3RfQXZnVGlwX2xhZ193aXRobWFuYWdlcl91cGRhdGVfbGFzdDYwKSRjb2VmZmljaWVudHMNCmBgYA0KDQoNCg0KDQoNCiMjU3RlYWxjbnQNCg0KLSBGaXJzdCA2MCBkYXlzDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3Rfc3RlYWxjbnRfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZV9maXJzdDYwKSRjb2VmZmljaWVudHMNCmBgYA0KLSA2MC0xMjAgRGF5cw0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfZWZmZWN0X3N0ZWFsY250X2xhZ193aXRobWFuYWdlcl91cGRhdGVfbWlkNjApJGNvZWZmaWNpZW50cw0KYGBgDQoNCi0gT3ZlciAxMjAgRGF5cw0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfZWZmZWN0X3N0ZWFsY250X2xhZ193aXRobWFuYWdlcl91cGRhdGVfbGFzdDYwKSRjb2VmZmljaWVudHMNCmBgYA0KDQoNCg0KIyMgU3RlYWxhbXQNCg0KLSBGaXJzdCA2MCBkYXlzDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3Rfc3RlYWxhbXRfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZV9maXJzdDYwKSRjb2VmZmljaWVudHMNCmBgYA0KLSA2MC0xMjAgRGF5cw0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfZWZmZWN0X3N0ZWFsYW10X2xhZ193aXRobWFuYWdlcl91cGRhdGVfbWlkNjApJGNvZWZmaWNpZW50cw0KYGBgDQoNCi0gT3ZlciAxMjAgRGF5cw0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfZWZmZWN0X3N0ZWFsYW10X2xhZ193aXRobWFuYWdlcl91cGRhdGVfbGFzdDYwKSRjb2VmZmljaWVudHMNCmBgYA0KIyBSZXN0YXVyYW50IENvbXBhcmlzb24NCg0KDQoNCg0KLSBIaWdoIENhc2ggU3RvcmVzDQpgYGB7cn0NCmxlbmd0aCh1bmlxdWUocGVlcl9lZmZlY3Rfd2l0aF9tYW5hZ2VyX3VwZGF0ZV9oaWdoY2FzaCRzdG9yZWtleSkpDQpgYGANCg0KLSBMb3cgQ2FzaCBTdG9yZXMNCmBgYHtyfQ0KbGVuZ3RoKHVuaXF1ZShwZWVyX2VmZmVjdF93aXRoX21hbmFnZXJfdXBkYXRlX2xvd2Nhc2gkc3RvcmVrZXkpKQ0KYGBgDQoNCiMjIFRpcHBpbmcNCi0gSGlnaCBDYXNoIFBlcmNlbnRhZ2UNCg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfZWZmZWN0X0F2Z1RpcF9sYWdfd2l0aG1hbmFnZXJfdXBkYXRlX2hpZ2hjYXNoKSRjb2VmZmljaWVudHMNCmBgYA0KDQotIExvdyBDYXNoDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X2VmZmVjdF9BdmdUaXBfbGFnX3dpdGhtYW5hZ2VyX3VwZGF0ZV9sb3djYXNoKSRjb2VmZmljaWVudHMNCmBgYA0KDQojIyBTdGVhbGNudA0KDQotIEhpZ2ggQ2FzaA0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfZWZmZWN0X3N0ZWFsY250X2xhZ193aXRobWFuYWdlcl91cGRhdGVfaGlnaGNhc2gpJGNvZWZmaWNpZW50cw0KYGBgDQoNCi0gTG93IENhc2gNCg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfZWZmZWN0X3N0ZWFsY250X2xhZ193aXRobWFuYWdlcl91cGRhdGVfbG93Y2FzaCkkY29lZmZpY2llbnRzDQpgYGANCg0KIyMgU3RlYWxhbXQNCg0KLSBIaWdoIENhc2gNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X2VmZmVjdF9zdGVhbGFtdF9sYWdfd2l0aG1hbmFnZXJfdXBkYXRlX2hpZ2hjYXNoKSRjb2VmZmljaWVudHMNCmBgYA0KDQotIExvdyBDYXNoDQoNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX2l2X2VmZmVjdF9zdGVhbGFtdF9sYWdfd2l0aG1hbmFnZXJfdXBkYXRlX2xvd2Nhc2gpJGNvZWZmaWNpZW50cw0KYGBgDQoNCg0KDQojIFRlc3Qgb2YgVHdvIG1ldGhvZCBvZiBGaXhlZCBlZmZlY3QgbW9kZWwgd2l0aCBwZWVyIGVmZmVjdA0KDQojIyBUaXBwaW5nDQojIyMgT0xTDQotIFdpdGhvdXQgZGVtZWFuIG9mIGZpeGVkIGVmZmVjdA0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfb2xzX2VmZmVjdF9BdmdUaXBfc3RvcmV0ZXN0X21hdHJpeCkkY29lZmZpY2llbnRzWzIsXQ0KYGBgDQoNCi0gV2l0aCBkZW1lYW4gb2YgZml4ZWQgZWZmZWN0DQpgYGB7cn0NCnN1bW1hcnkocGVlcl9vbHNfZWZmZWN0X0F2Z1RpcF9zdG9yZXRlc3RfZGVtZWFuKSRjb2VmZmljaWVudHMNCmBgYA0KDQojIyMgSVYNCg0KLSBXaXRob3V0IGRlbWVhbiBvZiBmaXhlZCBlZmZlY3QNCg0KYGBge3J9DQpzdW1tYXJ5KCBwZWVyX2l2X2VmZmVjdF9BdmdUaXBfc3RvcmV0ZXN0X21hdHJpeCkkY29lZmZpY2llbnRzWzIsXQ0KYGBgDQoNCg0KLSBXaXRoIGRlbWVhbiBvZiBmaXhlZCBlZmZlY3QNCg0KYGBge3J9DQpzdW1tYXJ5KHBlZXJfaXZfZWZmZWN0X0F2Z1RpcF9zdG9yZXRlc3RfZGVtZWFuKSRjb2VmZmljaWVudHMNCmBgYA0KIyMgU3RlYWxjbnQNCg0KIyMjIE9MUw0KLSBXaXRob3V0IGRlbWVhbiBvZiBmaXhlZCBlZmZlY3QNCmBgYHtyfQ0Kc3VtbWFyeShwZWVyX29sc19lZmZlY3Rfc3RlYWxjbnRfc3RvcmV0ZXN0X21hdHJpeCkkY29lZmZpY2llbnRzWzIsXQ0KYGBgDQoNCi0gV2l0aCBkZW1lYW4gb2YgZml4ZWQgZWZmZWN0DQpgYGB7cn0NCnN1bW1hcnkocGVlcl9vbHNfZWZmZWN0X3N0ZWFsY250X3N0b3JldGVzdF9kZW1lYW4pJGNvZWZmaWNpZW50cw0KYGBgDQoNCiMjIyBJVg0KDQotIFdpdGhvdXQgZGVtZWFuIG9mIGZpeGVkIGVmZmVjdA0KDQpgYGB7cn0NCnN1bW1hcnkoIHBlZXJfaXZfZWZmZWN0X3N0ZWFsY250X3N0b3JldGVzdF9tYXRyaXgpJGNvZWZmaWNpZW50c1syLF0NCmBgYA0KDQotIFdpdGggZGVtZWFuIG9mIGZpeGVkIGVmZmVjdA0KDQpgYGB7cn0NCnN1bW1hcnkocGVlcl9pdl9lZmZlY3Rfc3RlYWxjbnRfc3RvcmV0ZXN0X2RlbWVhbikkY29lZmZpY2llbnRzDQpgYGANCg0KDQo=