##Regression for Outcome NM binary (NM Rebel Victory Binary) as DV {.tabset}

0.0.1 First Model

Simple Linear Model with no fixed effects (Coethnicity Nachiket as BINARY)

##                                    model_outcome_binary..1
## Dependent Var.:                    outcome_binary_nachiket
##                                                           
## Constant                               -0.4962*** (0.0532)
## coethnic_rebel_pgm_nachiket_binary     -0.0821*** (0.0157)
## Level_of_Threat                         0.3205*** (0.0236)
## polity2                                   0.0041* (0.0016)
## state_strength                            0.0180. (0.0093)
## rebel_strength_nachiket_scaled             0.0055 (0.0184)
## duration_year                          -0.0025*** (0.0005)
## ethpol                                  0.4530*** (0.0401)
## __________________________________ _______________________
## S.E. type                                              IID
## Observations                                         1,767
## R2                                                 0.52921
## Adj. R2                                            0.52734
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.1.1 Logit

##                                    model_outcome_binary..1
## Dependent Var.:                    outcome_binary_nachiket
##                                                           
## Constant                                -5.121*** (0.9171)
## coethnic_rebel_pgm_nachiket_binary       -0.4817. (0.2599)
## Level_of_Threat                           1.137** (0.3644)
## polity2                                    0.0062 (0.0333)
## state_strength                            -0.1971 (0.1779)
## rebel_strength_nachiket_scaled             0.0683 (0.2734)
## duration_year                          -0.1232*** (0.0159)
## ethpol                                   7.430*** (0.9249)
## __________________________________ _______________________
## S.E. type                                              IID
## Observations                                         1,767
## Squared Cor.                                       0.56050
## Pseudo R2                                          0.53814
## BIC                                                 731.81
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.2 Second Model

Simple Linear Model with no fixed effects (Coethnicity Nachiket as NON BINARY)

##                                model_outcome_binary..2
## Dependent Var.:                outcome_binary_nachiket
##                                                       
## Constant                           -0.4904*** (0.0539)
## coethnic_rebel_pgm_nachiket         -0.0544** (0.0170)
## Level_of_Threat                     0.2972*** (0.0232)
## polity2                               0.0031. (0.0016)
## state_strength                        0.0157. (0.0094)
## rebel_strength_nachiket_scaled         0.0242 (0.0181)
## duration_year                      -0.0029*** (0.0005)
## ethpol                              0.4626*** (0.0409)
## ______________________________ _______________________
## S.E. type                                          IID
## Observations                                     1,767
## R2                                             0.52461
## Adj. R2                                        0.52271
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.2.1 Logit (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + Level_of_Threat + polity2 + state_strength + rebel_strength_nachiket_scaled + duration_year + ethpol)

##                                model_outcome_binary..1
## Dependent Var.:                outcome_binary_nachiket
##                                                       
## Constant                            -5.116*** (0.9160)
## coethnic_rebel_pgm_nachiket           -0.3714 (0.2683)
## Level_of_Threat                       1.077** (0.3634)
## polity2                                0.0019 (0.0334)
## state_strength                        -0.2142 (0.1775)
## rebel_strength_nachiket_scaled         0.1162 (0.2736)
## duration_year                      -0.1244*** (0.0158)
## ethpol                               7.496*** (0.9228)
## ______________________________ _______________________
## S.E. type                                          IID
## Observations                                     1,767
## Squared Cor.                                   0.56165
## Pseudo R2                                      0.53708
## BIC                                             733.35
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.2.2 Logit (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + Level_of_Threat + polity2 + state_strength + rebel_strength_nachiket_scaled + duration_year + ethpol) WITH GOVERNMENT Fixed effects

##                 model_outcome_binary..2
## Dependent Var.: outcome_binary_nachiket
##                                        
## Level_of_Threat        82.30*** (3.781)
## duration_year         5.673*** (0.3184)
## Fixed-Effects:  -----------------------
## government                          Yes
## _______________ _______________________
## S.E.: Clustered          by: government
## Observations                        178
## Squared Cor.                     1.0000
## Pseudo R2                        1.0000
## BIC                              25.909
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.2.3 Logit (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + Level_of_Threat + polity2 + state_strength + rebel_strength_nachiket_scaled + duration_year + ethpol) WITH GOVERNMENT AND CONFLICT Fixed effects

##                 model_outcome_binary..3
## Dependent Var.: outcome_binary_nachiket
##                                        
## duration_year             4.241 (3.064)
## Fixed-Effects:  -----------------------
## government                          Yes
## ucdp_conflictid                     Yes
## _______________ _______________________
## S.E.: Clustered          by: government
## Convergence                       FALSE
## Observations                        118
## Squared Cor.                     1.0000
## Pseudo R2                        1.0000
## BIC                              19.083
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.2.4 Logit with conflict fixed effects

##                 model_outcome_binary..4
## Dependent Var.: outcome_binary_nachiket
##                                        
## duration_year             4.241 (3.051)
## Fixed-Effects:  -----------------------
## ucdp_conflictid                     Yes
## _______________ _______________________
## S.E.: Clustered     by: ucdp_conflictid
## Convergence                       FALSE
## Observations                        118
## Squared Cor.                     1.0000
## Pseudo R2                        1.0000
## BIC                              14.312
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.3 Third Model

Simple Model with Interaction Term. Removing level of threat because interaction term is there (for synergistic effect). (Coethnicity Nachiket as BINARY)

##                                                 model_outcome_binary..3
## Dependent Var.:                                 outcome_binary_nachiket
##                                                                        
## Constant                                                0.0486 (0.0500)
## coethnic_rebel_pgm_nachiket_binary                     -0.0014 (0.0152)
## polity2                                              0.0112*** (0.0016)
## state_strength                                      -0.0741*** (0.0157)
## rebel_strength_nachiket_scaled                       0.1963*** (0.0249)
## duration_year                                       -0.0055*** (0.0005)
## ethpol                                               0.3480*** (0.0415)
## state_strength x rebel_strength_nachiket_scaled         0.0075 (0.0120)
## ________________________________________        _______________________
## S.E. type                                                           IID
## Observations                                                      1,767
## R2                                                              0.47995
## Adj. R2                                                         0.47788
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.3.1 Logit

##                                                 model_outcome_binary..1
## Dependent Var.:                                 outcome_binary_nachiket
##                                                                        
## Constant                                                -0.5279 (2.210)
## coethnic_rebel_pgm_nachiket_binary                     -0.3390 (0.8409)
## polity2                                                 0.0330 (0.0911)
## state_strength                                         -1.764* (0.6852)
## rebel_strength_nachiket_scaled                          -1.028 (0.7190)
## duration_year                                        -0.1780** (0.0546)
## ethpol                                                   8.831* (3.957)
## state_strength x rebel_strength_nachiket_scaled        0.8768* (0.3936)
## ________________________________________        _______________________
## S.E.: Clustered                                          by: government
## Observations                                                      1,767
## Squared Cor.                                                    0.55524
## Pseudo R2                                                       0.55404
## BIC                                                              708.67
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.4 Fourth Model

Simple Model with Interaction Term. Removing level of threat because interaction term is there (for synergistic effect). (Coethnicity Nachiket as NON-BINARY)

##                                                 model_outcome_binary..4
## Dependent Var.:                                 outcome_binary_nachiket
##                                                                        
## Constant                                                0.0468 (0.0494)
## coethnic_rebel_pgm_nachiket                             0.0158 (0.0169)
## polity2                                              0.0105*** (0.0016)
## state_strength                                      -0.0744*** (0.0157)
## rebel_strength_nachiket_scaled                       0.1966*** (0.0249)
## duration_year                                       -0.0056*** (0.0005)
## ethpol                                               0.3436*** (0.0418)
## state_strength x rebel_strength_nachiket_scaled         0.0082 (0.0120)
## ________________________________________        _______________________
## S.E. type                                                           IID
## Observations                                                      1,767
## R2                                                              0.48021
## Adj. R2                                                         0.47814
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.4.1 logit

##                                                 model_outcome_binary..1
## Dependent Var.:                                 outcome_binary_nachiket
##                                                                        
## Constant                                               -0.6135 (0.7359)
## coethnic_rebel_pgm_nachiket                            -0.2535 (0.2800)
## polity2                                                 0.0291 (0.0329)
## state_strength                                       -1.755*** (0.2307)
## rebel_strength_nachiket_scaled                       -1.013*** (0.3043)
## duration_year                                       -0.1779*** (0.0166)
## ethpol                                                8.859*** (0.9215)
## state_strength x rebel_strength_nachiket_scaled      0.8744*** (0.1392)
## ________________________________________        _______________________
## S.E. type                                                           IID
## Observations                                                      1,767
## Squared Cor.                                                    0.55622
## Pseudo R2                                                       0.55351
## BIC                                                              709.45
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.4.2 Conflict outcome_new as non-binary

##                                                 model_outcome_b..41
## Dependent Var.:                                         outcome_new
##                                                                    
## Constant                                         0.6924*** (0.0808)
## coethnic_rebel_pgm_nachiket                        0.0701* (0.0285)
## polity2                                         -0.0200*** (0.0028)
## state_strength                                    -0.0418. (0.0249)
## rebel_strength_nachiket_scaled                   0.3026*** (0.0355)
## duration_year                                      -0.0009 (0.0009)
## ethpol                                          -0.4053*** (0.0729)
## state_strength x rebel_strength_nachiket_scaled  0.0631*** (0.0187)
## ________________________________________        ___________________
## S.E. type                                                       IID
## Observations                                                  1,838
## R2                                                          0.31407
## Adj. R2                                                     0.31145
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.4.3 Conflict outcome_new as non-binary and Bivariate model + government FE

##                             model_outco..42
## Dependent Var.:                 outcome_new
##                                            
## coethnic_rebel_pgm_nachiket 0.1167 (0.1491)
## Fixed-Effects:              ---------------
## government                              Yes
## ___________________________ _______________
## S.E.: Clustered              by: government
## Observations                          1,893
## R2                                  0.68902
## Within R2                           0.01228
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.4.4 Conflict outcome_new as non-binary and Bivariate model + Conflict fixed effects

##                             model_outco..43
## Dependent Var.:                 outcome_new
##                                            
## coethnic_rebel_pgm_nachiket 0.1216 (0.1551)
## Fixed-Effects:              ---------------
## ucdp_conflictid                         Yes
## ___________________________ _______________
## S.E.: Clustered              by: government
## Observations                          1,873
## R2                                  0.70355
## Within R2                           0.01391
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.4.5 Conflict outcome_new as non-binary and Multivariate model + government fixed effects without interaction terms and level of threat

##                                model_outcome_..44
## Dependent Var.:                       outcome_new
##                                                  
## coethnic_rebel_pgm_nachiket       0.1263 (0.1661)
## polity2                          0.0839. (0.0420)
## state_strength                 -0.4777** (0.1558)
## rebel_strength_nachiket_scaled    0.0127 (0.1426)
## duration_year                     0.0038 (0.0159)
## Fixed-Effects:                 ------------------
## government                                    Yes
## ______________________________ __________________
## S.E.: Clustered                    by: government
## Observations                                1,838
## R2                                        0.71773
## Within R2                                 0.09435
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.4.6 Conflict outcome_new as non-binary and Multivariate model + conflict fixed effects without interaction terms and level of threat

##                                model_outco..45
## Dependent Var.:                    outcome_new
##                                               
## coethnic_rebel_pgm_nachiket    0.1742 (0.1713)
## polity2                        0.2883 (0.4729)
## state_strength                 0.4192 (0.5552)
## rebel_strength_nachiket_scaled 0.3685 (0.2331)
## duration_year                  0.0086 (0.0659)
## Fixed-Effects:                 ---------------
## ucdp_conflictid                            Yes
## ______________________________ _______________
## S.E.: Clustered                 by: government
## Observations                             1,818
## R2                                     0.72414
## Within R2                              0.07362
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.4.7 Conflict outcome_new as non-binary and Multivariate model + government fixed effects without interaction terms or reb or state strength

##                             model_outcome..46
## Dependent Var.:                   outcome_new
##                                              
## coethnic_rebel_pgm_nachiket   0.1762 (0.1612)
## Level_of_Threat             0.5399** (0.1796)
## polity2                       0.0135 (0.0214)
## duration_year                 0.0070 (0.0169)
## Fixed-Effects:              -----------------
## government                                Yes
## ___________________________ _________________
## S.E.: Clustered                by: government
## Observations                            1,838
## R2                                    0.72788
## Within R2                             0.12690
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Outcome ~ coethnicity + duration + polity2 + ethpol (+gdp?)

0.0.4.8 Conflict outcome_new as non-binary and Multivariate model + government fixed effects without interaction terms or reb or state strength or level of threat

##                             model_outcom..47
## Dependent Var.:                  outcome_new
##                                             
## coethnic_rebel_pgm_nachiket  0.1328 (0.1609)
## polity2                     -0.0025 (0.0248)
## duration_year               -0.0073 (0.0181)
## Fixed-Effects:              ----------------
## government                               Yes
## ___________________________ ________________
## S.E.: Clustered               by: government
## Observations                           1,838
## R2                                   0.69463
## Within R2                            0.02022
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.5 Fifth Model

Fixed Effects Ordinary Least Square Models with Clustered errors at the Country/government level. Coethnic Nachiket (BINARY)

##                                    model_outcome_binary..5
## Dependent Var.:                    outcome_binary_nachiket
##                                                           
## coethnic_rebel_pgm_nachiket_binary         0.0004 (0.0236)
## polity2                                    0.0263 (0.0394)
## Level_of_Threat                            0.4457 (0.2647)
## state_strength                            -0.1193 (0.2453)
## rebel_strength_nachiket_scaled            -0.0706 (0.0775)
## duration_year                              0.0076 (0.0105)
## Fixed-Effects:                     -----------------------
## government                                             Yes
## __________________________________ _______________________
## S.E.: Clustered                             by: government
## Observations                                         1,767
## R2                                                 0.90038
## Within R2                                          0.44030
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.5.1 Logit

##                 model_outcome_binary..1
## Dependent Var.: outcome_binary_nachiket
##                                        
## Level_of_Threat        82.30*** (3.781)
## duration_year         5.673*** (0.3184)
## Fixed-Effects:  -----------------------
## government                          Yes
## _______________ _______________________
## S.E.: Clustered          by: government
## Observations                        178
## Squared Cor.                     1.0000
## Pseudo R2                        1.0000
## BIC                              25.909
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.5.2 Outcome non binary

##                                    model_outcom..51
## Dependent Var.:                         outcome_new
##                                                    
## coethnic_rebel_pgm_nachiket_binary  0.1996 (0.2094)
## polity2                             0.0297 (0.0500)
## Level_of_Threat                    0.4678. (0.2502)
## state_strength                     -0.1109 (0.2462)
## rebel_strength_nachiket_scaled     -0.0107 (0.0897)
## duration_year                       0.0066 (0.0176)
## Fixed-Effects:                     ----------------
## government                                      Yes
## __________________________________ ________________
## S.E.: Clustered                      by: government
## Observations                                  1,838
## R2                                          0.73260
## Within R2                                   0.14206
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.6 Sixth Model

Fixed Effects Ordinary Least Square Models with Clustered errors at the Country/government level. Coethnic Nachiket (NON BINARY)

##                                model_outcome_binary..6
## Dependent Var.:                outcome_binary_nachiket
##                                                       
## coethnic_rebel_pgm_nachiket            0.0053 (0.0197)
## polity2                                0.0260 (0.0392)
## Level_of_Threat                        0.4476 (0.2648)
## state_strength                        -0.1171 (0.2451)
## rebel_strength_nachiket_scaled        -0.0692 (0.0774)
## duration_year                          0.0076 (0.0104)
## Fixed-Effects:                 -----------------------
## government                                         Yes
## ______________________________ _______________________
## S.E.: Clustered                         by: government
## Observations                                     1,767
## R2                                             0.90039
## Within R2                                      0.44039
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.6.1 Logit

##                 model_outcome_binary..1
## Dependent Var.: outcome_binary_nachiket
##                                        
## Level_of_Threat        82.30*** (3.781)
## duration_year         5.673*** (0.3184)
## Fixed-Effects:  -----------------------
## government                          Yes
## _______________ _______________________
## S.E.: Clustered          by: government
## Observations                        178
## Squared Cor.                     1.0000
## Pseudo R2                        1.0000
## BIC                              25.909
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.6.2 Outcome non binary

##                                model_outcom..61
## Dependent Var.:                     outcome_new
##                                                
## coethnic_rebel_pgm_nachiket     0.1641 (0.1710)
## polity2                         0.0342 (0.0476)
## Level_of_Threat                0.4575. (0.2499)
## state_strength                 -0.1308 (0.2388)
## rebel_strength_nachiket_scaled -0.0194 (0.0860)
## duration_year                   0.0077 (0.0170)
## Fixed-Effects:                 ----------------
## government                                  Yes
## ______________________________ ________________
## S.E.: Clustered                  by: government
## Observations                              1,838
## R2                                      0.72868
## Within R2                               0.12948
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.7 Seventh Model

Same as the Third and Fourth models but with FE and clustered errors Coethnic NACHIKET (BINARY) Level of threat removed because we wish to capture the synergistic effects of interaction term

##                                                 model_outcome_binary..7
## Dependent Var.:                                 outcome_binary_nachiket
##                                                                        
## coethnic_rebel_pgm_nachiket_binary                     -0.0234 (0.0251)
## polity2                                               0.0937** (0.0262)
## state_strength                                      -0.7150*** (0.1316)
## rebel_strength_nachiket_scaled                         -0.1432 (0.1284)
## duration_year                                           0.0033 (0.0103)
## state_strength x rebel_strength_nachiket_scaled        0.1246* (0.0555)
## Fixed-Effects:                                  -----------------------
## government                                                          Yes
## ________________________________________        _______________________
## S.E.: Clustered                                          by: government
## Observations                                                      1,767
## R2                                                              0.87668
## Within R2                                                       0.30718
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.7.1 Logit

##                 model_outcome_binary..1
## Dependent Var.: outcome_binary_nachiket
##                                        
## state_strength         -68.97** (26.46)
## duration_year             4.241 (2.646)
## Fixed-Effects:  -----------------------
## government                          Yes
## _______________ _______________________
## S.E.: Clustered          by: government
## Convergence                       FALSE
## Observations                        178
## Squared Cor.                     1.0000
## Pseudo R2                        1.0000
## BIC                              25.909
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.7.2 outcome_new non binary

##                                                 model_outcome_b..7
## Dependent Var.:                                        outcome_new
##                                                                   
## coethnic_rebel_pgm_nachiket_binary                 0.1909 (0.2115)
## polity2                                          0.1262** (0.0415)
## state_strength                                  -1.085*** (0.2841)
## rebel_strength_nachiket_scaled                   -0.2349* (0.0889)
## duration_year                                      0.0012 (0.0166)
## state_strength x rebel_strength_nachiket_scaled   0.2979* (0.1415)
## Fixed-Effects:                                  ------------------
## government                                                     Yes
## ________________________________________        __________________
## S.E.: Clustered                                     by: government
## Observations                                                 1,838
## R2                                                         0.72565
## Within R2                                                  0.11976
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.8 Eighth Model

LM MODEL Same as the Third and Fourth models but with FE and clustered errors Coethnic NACHIKET (NON-BINARY) Level of threat removed because we wish to capture the synergistic effects of interaction term

##                                                 model_outcome_binary..8
## Dependent Var.:                                 outcome_binary_nachiket
##                                                                        
## coethnic_rebel_pgm_nachiket                            -0.0217 (0.0209)
## polity2                                               0.0935** (0.0262)
## state_strength                                      -0.7156*** (0.1319)
## rebel_strength_nachiket_scaled                         -0.1433 (0.1282)
## duration_year                                           0.0031 (0.0101)
## state_strength x rebel_strength_nachiket_scaled        0.1254* (0.0542)
## Fixed-Effects:                                  -----------------------
## government                                                          Yes
## ________________________________________        _______________________
## S.E.: Clustered                                          by: government
## Observations                                                      1,767
## R2                                                              0.87663
## Within R2                                                       0.30686
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.8.1 logit Model for the one right above (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + polity2 + state_strength + rebel_strength_nachiket_scaled + duration_year + ethpol + state_strength*rebel_strength_nachiket_scaled | government) with government FE

##                 model_outcome_binary..1
## Dependent Var.: outcome_binary_nachiket
##                                        
## state_strength         -68.97** (26.46)
## duration_year             4.241 (2.646)
## Fixed-Effects:  -----------------------
## government                          Yes
## _______________ _______________________
## S.E.: Clustered          by: government
## Convergence                       FALSE
## Observations                        178
## Squared Cor.                     1.0000
## Pseudo R2                        1.0000
## BIC                              25.909
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.8.2 logit bivariate

##                             model_outcome_binary..1
## Dependent Var.:             outcome_binary_nachiket
##                                                    
## coethnic_rebel_pgm_nachiket    -17.90*** (2.13e-14)
## Fixed-Effects:              -----------------------
## government                                      Yes
## ___________________________ _______________________
## S.E.: Clustered                      by: government
## Observations                                    178
## Squared Cor.                                0.17140
## Pseudo R2                                   0.14155
## BIC                                          230.22
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.8.3 logit Model for (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + polity2 + state_strength + rebel_strength_nachiket_scaled + duration_year + ethpol + state_strength*rebel_strength_nachiket_scaled | government) WITH GOVERNMENT AND CONFLICT FE

##                 model_outcome_binary..2
## Dependent Var.: outcome_binary_nachiket
##                                        
## duration_year             4.241 (3.064)
## Fixed-Effects:  -----------------------
## government                          Yes
## ucdp_conflictid                     Yes
## _______________ _______________________
## S.E.: Clustered          by: government
## Convergence                       FALSE
## Observations                        118
## Squared Cor.                     1.0000
## Pseudo R2                        1.0000
## BIC                              19.083
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.9 Ninth Model

Additional Controls FEOLS with Coethnic Nachiket (Binary)

Adding Three Variables and Removing State Strength due to possibility of Multicollinearity and adding individual predictors of state strength

##                                    model_outcome_binary..9
## Dependent Var.:                    outcome_binary_nachiket
##                                                           
## coethnic_rebel_pgm_nachiket_binary         0.0662 (0.0420)
## polity2                                    0.0102 (0.0312)
## gdpcapita_imputed_entire                -0.9650** (0.3137)
## lmilper_imputed_entire                     0.4363 (0.4775)
## ltroopratio_imputed_entire                 0.0094 (0.2396)
## rebel_strength_nachiket_scaled             0.2646 (0.3326)
## duration_year                              0.0112 (0.0152)
## Fixed-Effects:                     -----------------------
## government                                             Yes
## __________________________________ _______________________
## S.E.: Clustered                             by: government
## Observations                                         1,767
## R2                                                 0.88898
## Within R2                                          0.37629
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.9.1 Logit Model

##                          model_outcome_binary..1
## Dependent Var.:          outcome_binary_nachiket
##                                                 
## gdpcapita_imputed_entire        -118.5** (45.46)
## duration_year                      4.241 (2.646)
## Fixed-Effects:           -----------------------
## government                                   Yes
## ________________________ _______________________
## S.E.: Clustered                   by: government
## Convergence                                FALSE
## Observations                                 178
## Squared Cor.                              1.0000
## Pseudo R2                                 1.0000
## BIC                                       25.909
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.9.2 Logit Model

##                                    model_outcome_binary..1
## Dependent Var.:                    outcome_binary_nachiket
##                                                           
## coethnic_rebel_pgm_nachiket_binary    -17.90*** (2.13e-14)
## Fixed-Effects:                     -----------------------
## government                                             Yes
## __________________________________ _______________________
## S.E.: Clustered                             by: government
## Observations                                           178
## Squared Cor.                                       0.17140
## Pseudo R2                                          0.14155
## BIC                                                 230.22
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.10 Tenth Model

Additional Controls FEOLS with Coethnic Nachiket (Binary)

Adding Three Variables and Removing State Strength due to possibility of Multi-collinearity and adding individual predictors of state strength

##                                    model_outcome_binar..10
## Dependent Var.:                    outcome_binary_nachiket
##                                                           
## coethnic_rebel_pgm_nachiket_binary         0.0662 (0.0420)
## polity2                                    0.0102 (0.0312)
## gdpcapita_imputed_entire                -0.9650** (0.3137)
## lmilper_imputed_entire                     0.4363 (0.4775)
## ltroopratio_imputed_entire                 0.0094 (0.2396)
## rebel_strength_nachiket_scaled             0.2646 (0.3326)
## duration_year                              0.0112 (0.0152)
## Fixed-Effects:                     -----------------------
## government                                             Yes
## __________________________________ _______________________
## S.E.: Clustered                             by: government
## Observations                                         1,767
## R2                                                 0.88898
## Within R2                                          0.37629
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.10.1 Logit Model

##                                    model_outcome_binary..1
## Dependent Var.:                    outcome_binary_nachiket
##                                                           
## coethnic_rebel_pgm_nachiket_binary    -17.90*** (2.13e-14)
## Fixed-Effects:                     -----------------------
## government                                             Yes
## __________________________________ _______________________
## S.E.: Clustered                             by: government
## Observations                                           178
## Squared Cor.                                       0.17140
## Pseudo R2                                          0.14155
## BIC                                                 230.22
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.10.2 Logit Model

##                                    model_outcome_binary..1
## Dependent Var.:                    outcome_binary_nachiket
##                                                           
## Constant                                  -5.152** (1.940)
## coethnic_rebel_pgm_nachiket_binary        -0.5943 (0.9576)
## Level_of_Threat                           2.081** (0.7617)
## __________________________________ _______________________
## S.E.: Clustered                             by: government
## Observations                                         1,813
## Squared Cor.                                       0.44520
## Pseudo R2                                          0.40211
## BIC                                                 900.84
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.11 Eleventh Model

0.0.11.1 Logit binary without government fixed effects

##                             model_outcome_binary..1
## Dependent Var.:             outcome_binary_nachiket
##                                                    
## Constant                           -1.690* (0.7843)
## coethnic_rebel_pgm_nachiket        -0.5372 (0.7466)
## ___________________________ _______________________
## S.E.: Clustered                      by: government
## Observations                                  1,822
## Squared Cor.                                0.00569
## Pseudo R2                                   0.00682
## BIC                                         1,476.7
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.11.2 Logit binary with government fixed effects

##                             model_outcome_binary..2
## Dependent Var.:             outcome_binary_nachiket
##                                                    
## coethnic_rebel_pgm_nachiket    -17.90*** (2.13e-14)
## Fixed-Effects:              -----------------------
## government                                      Yes
## ___________________________ _______________________
## S.E.: Clustered                      by: government
## Observations                                    178
## Squared Cor.                                0.17140
## Pseudo R2                                   0.14155
## BIC                                          230.22
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.11.3 Logit binary with government AND conflict fixed effects

##                             model_outcome_binary..3
## Dependent Var.:             outcome_binary_nachiket
##                                                    
## coethnic_rebel_pgm_nachiket        -0.0303 (0.0323)
## Fixed-Effects:              -----------------------
## government                                      Yes
## ucdp_conflictid                                 Yes
## ___________________________ _______________________
## S.E.: Clustered                      by: government
## Observations                                  1,802
## Squared Cor.                                0.87597
## Pseudo R2                                    3.1694
## BIC                                        -2,132.2
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.11.4 Additional Controls FEOLS with Coethnic Nachiket (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + polity2 + gdpcapita_imputed_entire + lmilper_imputed_entire + ltroopratio_imputed_entire + rebel_strength_nachiket_scaled + duration_year + ethpol) with government FE

##                                model_outcome_binary..4
## Dependent Var.:                outcome_binary_nachiket
##                                                       
## coethnic_rebel_pgm_nachiket            0.0550 (0.0346)
## polity2                                0.0100 (0.0313)
## gdpcapita_imputed_entire            -0.9525** (0.3251)
## lmilper_imputed_entire                 0.4149 (0.4736)
## ltroopratio_imputed_entire             0.0154 (0.2381)
## rebel_strength_nachiket_scaled         0.2593 (0.3333)
## duration_year                          0.0112 (0.0153)
## Fixed-Effects:                 -----------------------
## government                                         Yes
## ______________________________ _______________________
## S.E.: Clustered                         by: government
## Observations                                     1,767
## R2                                             0.88815
## Within R2                                      0.37161
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.11.5 Additional Controls FEOLS with Coethnic Nachiket (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + LoT + polity2 + gdpcapita_imputed_entire + lmilper_imputed_entire + ltroopratio_imputed_entire + rebel_strength_nachiket_scaled + duration_year + ethpol) WITHOUT government FE

##                                model_outcome_binary..1
## Dependent Var.:                outcome_binary_nachiket
##                                                       
## Constant                              -1.680* (0.6127)
## coethnic_rebel_pgm_nachiket           -0.0597 (0.0725)
## Level_of_Threat                     0.4475*** (0.0911)
## polity2                                0.0013 (0.0071)
## gdpcapita_imputed_entire               0.0708 (0.0893)
## lmilper_imputed_entire                 0.1025 (0.0747)
## ltroopratio_imputed_entire            -0.0151 (0.0533)
## rebel_strength_nachiket_scaled        -0.0481 (0.1017)
## duration_year                         -0.0019 (0.0033)
## ethpol                                0.5825* (0.2118)
## ______________________________ _______________________
## S.E.: Clustered                         by: government
## Observations                                     1,767
## R2                                             0.56028
## Adj. R2                                        0.55802
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.11.6 Additional Controls FEOLS with Coethnic Nachiket (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + LoT + polity2 + gdpcapita_imputed_entire + lmilper_imputed_entire + ltroopratio_imputed_entire + rebel_strength_nachiket_scaled + duration_year + ethpol) WITH government FE

##                                model_outcome_binary..2
## Dependent Var.:                outcome_binary_nachiket
##                                                       
## coethnic_rebel_pgm_nachiket            0.0019 (0.0166)
## Level_of_Threat                     0.6547*** (0.1669)
## polity2                                0.0326 (0.0309)
## gdpcapita_imputed_entire               0.0976 (0.3217)
## lmilper_imputed_entire                 0.0739 (0.5001)
## ltroopratio_imputed_entire            -0.2759 (0.2482)
## rebel_strength_nachiket_scaled        -0.2910 (0.2261)
## duration_year                          0.0126 (0.0147)
## Fixed-Effects:                 -----------------------
## government                                         Yes
## ______________________________ _______________________
## S.E.: Clustered                         by: government
## Observations                                     1,767
## R2                                             0.90436
## Within R2                                      0.46269
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.11.7 Logit Model (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + polity2)

##                             model_outcome_binary..5
## Dependent Var.:             outcome_binary_nachiket
##                                                    
## Constant                           -1.690* (0.7843)
## coethnic_rebel_pgm_nachiket        -0.5372 (0.7466)
## ___________________________ _______________________
## S.E.: Clustered                      by: government
## Observations                                  1,822
## Squared Cor.                                0.00569
## Pseudo R2                                   0.00682
## BIC                                         1,476.7
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.0.11.8 Logit Model (outcome_binary_nachiket ~ coethnic_rebel_pgm_nachiket + Level_of_Threat)

##                             model_outcome_binary..6
## Dependent Var.:             outcome_binary_nachiket
##                                                    
## Constant                            -5.303* (2.110)
## coethnic_rebel_pgm_nachiket         -0.2162 (1.145)
## Level_of_Threat                    2.091** (0.8109)
## ___________________________ _______________________
## S.E.: Clustered                      by: government
## Observations                                  1,813
## Squared Cor.                                0.44772
## Pseudo R2                                   0.39650
## BIC                                          909.09
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

0.1 Stargazer 2

(1) (2) (3) (4) (5) (6) (7)
(Intercept) -1.690* -5.303* -1.680* -0.613
(0.784) (2.110) (0.613) (0.736)
(0.031) (0.012) (0.012) (0.405)
coethnic_rebel_pgm_nachiket -0.537 -17.903*** -0.216 -0.060 0.002 -0.253 -0.022
(0.747) (0.000) (1.145) (0.073) (0.017) (0.280) (0.021)
(0.472) (<0.001) (0.850) (0.419) (0.911) (0.365) (0.312)
Level_of_Threat 2.091** 0.448*** 0.655***
(0.811) (0.091) (0.167)
(0.010) (<0.001) (<0.001)
polity2 0.001 0.033 0.029 0.094**
(0.007) (0.031) (0.033) (0.026)
(0.855) (0.305) (0.376) (0.002)
gdpcapita_imputed_entire 0.071 0.098
(0.089) (0.322)
(0.437) (0.765)
lmilper_imputed_entire 0.102 0.074
(0.075) (0.500)
(0.185) (0.884)
ltroopratio_imputed_entire -0.015 -0.276
(0.053) (0.248)
(0.780) (0.279)
rebel_strength_nachiket_scaled -0.048 -0.291 -1.013*** -0.143
(0.102) (0.226) (0.304) (0.128)
(0.641) (0.212) (<0.001) (0.276)
duration_year -0.002 0.013 -0.178*** 0.003
(0.003) (0.015) (0.017) (0.010)
(0.571) (0.402) (<0.001) (0.760)
ethpol 0.582* 8.859***
(0.212) (0.922)
(0.012) (<0.001)
state_strength -1.755*** -0.716***
(0.231) (0.132)
(<0.001) (<0.001)
state_strength × rebel_strength_nachiket_scaled 0.874*** 0.125*
(0.139) (0.054)
(<0.001) (0.031)
Num.Obs. 1822 178 1813 1767 1767 1767 1767
R2 0.007 0.142 0.396 0.560 0.904 0.554 0.877
R2 Adj. 0.005 0.117 0.394 0.558 0.903 0.544 0.875
R2 Within 0.060 0.463 0.307
R2 Within Adj. 0.051 0.460 0.304
AIC 1465.7 217.5 892.6 -118.9 -2774.6 665.6 -2328.6
BIC 1476.7 230.2 909.1 -64.2 -2610.3 709.4 -2175.3
RMSE 0.35 0.45 0.26 0.23 0.11 0.23 0.12
Std.Errors by: government by: government by: government by: government by: government IID by: government
FE: government X X X

Note: ^^ + p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001

LS0tCnRpdGxlOiAiQ2l2aWwgV2FycyBMT05HSVRVRElOQUwgTkVXICBPVVRDT01FIFZBUklBQkxFUyBVUERBVEVEIFJFU1VMVFMiCmF1dGhvcjogIkRyLiBEaXBpbiBLYXVyIgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0aGVtZTogY29zbW8KICAgIGhpZ2hsaWdodDogdGFuZ28KICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZSAgIyBOdW1iZXIgc2VjdGlvbnMgZm9yIHRoZSB0YWJsZSBvZiBjb250ZW50cwogICAgZmlnX2NhcHRpb246IHRydWUgICAgICAjIEVuYWJsZSBmaWd1cmUgY2FwdGlvbnMKICAgIGNzczogc3R5bGVzLmNzcyAgICAgICAgIyBMaW5rIHRvIGEgY3VzdG9tIENTUyBmaWxlIGZvciBzdHlsaW5nCmVkaXRvcl9vcHRpb25zOiAKICBtYXJrZG93bjogCiAgICB3cmFwOiBzZW50ZW5jZQotLS0KCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CiNMb2FkaW5nIExpYnJhcmllcwpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeSh0aWR5cikKbGlicmFyeShkcGx5cikKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KGthYmxlRXh0cmEpCmxpYnJhcnkoc25ha2VjYXNlKQpsaWJyYXJ5KGdndGhlbWVzKQpsaWJyYXJ5KFdESSkKbGlicmFyeShiZXRhcmVnKQpsaWJyYXJ5KGZvcmNhdHMpCmxpYnJhcnkoc3RyaW5nZGlzdCkKbGlicmFyeShleHBzcykKbGlicmFyeShsZmUpCmxpYnJhcnkoZGV2dG9vbHMpCmxpYnJhcnkoem9vKQpsaWJyYXJ5KHNhbmR3aWNoKQpsaWJyYXJ5KHBsbSkKbGlicmFyeShicm9vbSkKbGlicmFyeShzdGFyZ2F6ZXIpCmxpYnJhcnkoamFuaXRvcikKbGlicmFyeShtb2RlbHN1bW1hcnkpCmxpYnJhcnkodHJhbnNmb3JtcikKbGlicmFyeShnZ2FuaW1hdGUpCmxpYnJhcnkoZ2lmc2tpKQpsaWJyYXJ5KGF2KQpsaWJyYXJ5KGZsZXh0YWJsZSkKbGlicmFyeShJUmRpc3BsYXkpCmxpYnJhcnkoZ21vZGVscykKbGlicmFyeShmaXhlc3QpCmxpYnJhcnkoY2EpCmxpYnJhcnkoc3RhcmdhemVyKQpsaWJyYXJ5KHRleHJlZykKbGlicmFyeShtbG9naXQpCmBgYAoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyBMT0FESU5HIERBVEFTRVRTIGFuZCBtYWtpbmcgbmV3IHZhcmlhYmxlcwptYWluX2Npdmlsd2FycyA8LSByZWFkLmNzdigiL1VzZXJzL05hY2hpa2V0L0ZpbGVzIEZyb20gZS5sb2NhbGl6ZWQvUHJvZiBEaXBpbiBLYXVyIFJBIHdvcmsvRGF0YXNldHMvRmluYWxfVW5pdmVyc2VfY2l2aWx3YXJzLmNzdiIpCgptYWluX2Npdmlsd2FycyA8LSBtYWluX2Npdmlsd2FycyAlPiUgbXV0YXRlKGR1cmF0aW9uX3llYXIgPSBlbmR5cl9jb25mbGljdCAtIHN0YXJ0eXJfY29uZmxpY3QpCgptYWluX2Npdmlsd2Fyc19ldGhuaWMgPC0gbWFpbl9jaXZpbHdhcnMgJT4lIAogIGZpbHRlcihjb25mbGljdF9ldGhuaWMgPT0gMSkKCm1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWMgJT4lCiAgZmlsdGVyKCFpcy5uYShzdGFydHlyX2NvbmZsaWN0KSAmICFpcy5uYShlbmR5cl9jb25mbGljdCkpICU+JSAKICByb3d3aXNlKCkgJT4lCiAgZG8oZGF0YS5mcmFtZSguLCBZZWFyID0gc2VxKC4kc3RhcnR5cl9jb25mbGljdCwgLiRlbmR5cl9jb25mbGljdCkpKSAlPiUKICB1bmdyb3VwKCkKYGBgCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQojIyBNYWtpbmcgYSBTdGF0ZSBTdHJlbmd0aCBWYXJpYWJsZSBieSBTdGFuZGFyZGlzaW5nIHRoZSB0aHJlZSB2YXJpYWJsZXMgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgIyMKCiMgRmlyc3Qgd2UgcmVwbGFjZSBOQXMgd2l0aCBpbXB1dGVkIG1lYW5zCgojIyBUUlkgV0lUSCBJTVBVVEFUSU9OIEZST00gVEhFIENPVU5UUlkgTEVWRUw6IFRyaWVkIGFuZCB0aGUgbm90ZSBoZXJlIGlzIHRoYXQgaGFkIHRvIGJlIGRvbmUgbWFudWFsbHkgdG9vayBhIGJpdCBvZiB0aW1lIHdhcyBzdWNjZXNmdWwgYW5kIHRoZSBOQXMgd2Ugd2VyZSBzdGlsbCBsZWZ0IHdpdGggd2VyZTogNyBpbiBsb2dwY2dkcCwgMTAgZWFjaCBpbiBsbWlscGVyIGFuZCBsdHJvb3ByYXRpbyBhbmQgdGhlbiBvbmx5IHRoZXNlIHdlcmUgaW4gdHVybiBpbXB1dGVkIGZyb20gb3ZlcmFsbCBhdmVyYWdlcy4gdGhpcyBmb3Igc3VyZSByZWR1Y2VzIGRpc2NyZXBhbmNpZXMKCm1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwgJT4lIAogIG11dGF0ZSgKICAgIGdkcGNhcGl0YV9pbXB1dGVkX2VudGlyZSA9IGlmZWxzZShpcy5uYShsb2dwY2dkcCksIG1lYW4obG9ncGNnZHAsIG5hLnJtID0gVFJVRSksIGxvZ3BjZ2RwKSwKICAgIGxtaWxwZXJfaW1wdXRlZF9lbnRpcmUgPSBpZmVsc2UoaXMubmEobG1pbHBlciksIG1lYW4obG1pbHBlciwgbmEucm0gPSBUUlVFKSwgbG1pbHBlciksCiAgICBsdHJvb3ByYXRpb19pbXB1dGVkX2VudGlyZSA9IGlmZWxzZShpcy5uYShsdHJvb3ByYXRpbyksIG1lYW4obHRyb29wcmF0aW8sIG5hLnJtID0gVFJVRSksIGx0cm9vcHJhdGlvKQogICkgJT4lIAogIG11dGF0ZShnZHBjYXBpdGFfc2NhbGVkX2VudGlyZSA9IHNjYWxlKGdkcGNhcGl0YV9pbXB1dGVkX2VudGlyZSksCiAgICAgICAgIGxtaWxwZXJfc2NhbGVkX2VudGlyZSA9IHNjYWxlKGxtaWxwZXJfaW1wdXRlZF9lbnRpcmUpLAogICAgICAgICBsdHJvb3ByYXRpb19zY2FsZWRfZW50aXJlID0gc2NhbGUobHRyb29wcmF0aW9faW1wdXRlZF9lbnRpcmUpCiAgICAgICAgICkKYGBgCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQojIyMgQWxzbyBjb252ZXJ0aW5nIHRoZSAiY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0IiB0byBhIGJpbmFyeSB2YXJpYWJsZSB3aGVyZSAiMC41cyIgYXJlIGJlaW5nIHR1cm5lZCBpbnRvICIxcyIgZm9yIHB1cnBvc2VzIG9mIG1ha2luZyB0aGlzIGEgZHVtbXkgb3V0Y29tZV9uZXcgdmFyaWFibGUgYW5kIHJlbGFiZWxpbmcgdGhpcyBhcyAiY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSIKCm1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwgJT4lIAogIG11dGF0ZShjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5ID0gY2FzZV93aGVuKAogICBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgPT0gMSB+IDEsCiAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCA9PSAwLjUgfiAxLCAKICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ID09IDAgfiAwLAogICkpCgoKIyMgTWFraW5nIGEgbmV3IHZhcmlhYmxlIGZvciByZWJlbCBzdHJlbmd0aCBiYXNlZCBvbiB3aGF0IHdlIGRlY2lkZWQsIGkuZS4gcmViZWwgc3RyZW5ndGggYmFzZWQgb24gdGhlIGxvZ190cm9vcCByYXRpbyBUaGUgaWRlYSBpcyB0byBjcmVhdGUgYSBzY2FsZSBjYWxsZWQgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIHdoZXJlIHRoZSBzY2FsZSB2YWx1ZSBpbnZlcnNlbHkgcmVmbGVjdHMgdGhlICJsb2cgdHJvb3AgcmF0aW8i4oCUaGlnaGVyIGxvZyB0cm9vcCByYXRpb3MgKGluZGljYXRpbmcgc3Ryb25nZXIgZ292ZXJubWVudCB0cm9vcHMgcmVsYXRpdmUgdG8gcmViZWxzKSBjb3JyZXNwb25kIHRvIGxvd2VyIHZhbHVlcyBvbiB0aGUgc2NhbGUsIGluZGljYXRpbmcgd2Vha2VyIHJlYmVsIHN0cmVuZ3RoLgoKI0J1dCB3ZSB3YW50IHRvIGludmVydCB0aGlzIHNjYWxlIGZvcgojIEhpZ2hlciBsb2cgdHJvb3AgcmF0aW8gKGdvdmVybm1lbnQgdHJvb3BzIGFyZSBtdWNoIHN0cm9uZ2VyIHRoYW4gcmViZWxzKSDihpIgTG93ZXIgc2NhbGUgdmFsdWUgKGxvd2VyIHJlYmVsIHN0cmVuZ3RoKQojIExvd2VyIGxvZyB0cm9vcCByYXRpbyAocmViZWxzIGFyZSBzdHJvbmdlciByZWxhdGl2ZSB0byBnb3Zlcm5tZW50IHRyb29wcykg4oaSIEhpZ2hlciBzY2FsZSB2YWx1ZSAoaGlnaGVyIHJlYmVsIHN0cmVuZ3RoKQoKCiMgTG9naWNhbGx5IHRoaXMgaXMgaG93IHRoZSBicmVha3MgbWFrZSB0aGUgbW9zdCBzZW5zZQojIC1JbmYgdG8gLTAuNTogVGhpcyBpbmNsdWRlcyBhbGwgdmFsdWVzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAtMC41LgojIC0wLjUgdG8gMDogVGhpcyBpbmNsdWRlcyB2YWx1ZXMgZ3JlYXRlciB0aGFuIC0wLjUgYW5kIHVwIHRvIDAuCiMgMCB0byAxOiBUaGlzIGluY2x1ZGVzIHZhbHVlcyBncmVhdGVyIHRoYW4gMCBhbmQgdXAgdG8gMS4KIyAxIHRvIDI6IFRoaXMgaW5jbHVkZXMgdmFsdWVzIGdyZWF0ZXIgdGhhbiAxIGFuZCB1cCB0byAyLgojIDIgdG8gSW5mOiBUaGlzIGluY2x1ZGVzIHZhbHVlcyBncmVhdGVyIHRoYW4gMi4KCm1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwgJT4lCiAgbXV0YXRlKHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCA9IGN1dChsb2d0cm9vcCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha3MgPSBjKC1JbmYsIC0wLjUsIDAsMSwyLCBJbmYpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUubG93ZXN0ID0gVFJVRSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKDUsIDQsIDMsIDIsIDEpKSkKCiNJbnZlcnNpbmcgdGhlIHNjYWxlIG93aW5nIHRvIG51bWVyaWNpc2F0aW9uCm1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwgJT4lCiAgbXV0YXRlKHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCA9IGFzLm51bWVyaWMocmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkKSkgJT4lIAogIG11dGF0ZShyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgPSBjYXNlX3doZW4oCiAgICByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgPT0gMSB+NSwKICAgIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCA9PSAyIH40LAogICAgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkID09IDMgfjMsCiAgICByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgPT0gNCB+MiwKICAgIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCA9PSA1IH4xCiAgKSkKICAKCiMgT24gYSBzY2FsZSBvZiAxIHRvIDU6CiMgCiMgMTogSW5kaWNhdGVzIHZlcnkgc3Ryb25nIGdvdmVybm1lbnQgZm9yY2VzIGNvbXBhcmVkIHRvIHJlYmVscyAoaGlnaCBsb2cgdHJvb3AgcmF0aW8sIGxvdyByZWJlbCBzdHJlbmd0aCkuCiMgNTogSW5kaWNhdGVzIHZlcnkgc3Ryb25nIHJlYmVsIGZvcmNlcyBjb21wYXJlZCB0byBnb3Zlcm5tZW50IGZvcmNlcyAobG93IG9yIG5lZ2F0aXZlIGxvZyB0cm9vcCByYXRpbywgaGlnaCByZWJlbCBzdHJlbmd0aCkuCgoKCgojICJOb3RlIG9uIFJlYl9TdHJlbmd0aCBOU0EiCiMjIFJlYl9TdHJlbmd0aF9OU0EgKDUgaXMgc3Ryb25nZXN0IGJ1dCBkYXRhc2V0IGhhcyBpbmNvbnNpc3RlbmNpZXMpCiMgVGhpcyBpbnZlcnNpb24gaW1wbGllcyB0aGF0OgojIEluIHRoZSBvcmlnaW5hbCBDdW5uaW5naGFtIGV0IGFsLiBtZWFzdXJlOgojIDEgbWlnaHQgcmVwcmVzZW50IG11Y2ggc3Ryb25nZXIgcmViZWxzIGNvbXBhcmVkIHRvIHRoZSBnb3Zlcm5tZW50LgojIDUgbWlnaHQgcmVwcmVzZW50IG11Y2ggd2Vha2VyIHJlYmVscyBjb21wYXJlZCB0byB0aGUgZ292ZXJubWVudC4KCiMgSW4gdGhlIHJlYnN0cmVuZ3RoX05TQSBtZWFzdXJlOgojIDEgd291bGQgbm93IHJlcHJlc2VudCBtdWNoIHdlYWtlciByZWJlbHMgY29tcGFyZWQgdG8gdGhlIGdvdmVybm1lbnQuCiMgNSB3b3VsZCBub3cgcmVwcmVzZW50IG11Y2ggc3Ryb25nZXIgcmViZWxzIGNvbXBhcmVkIHRvIHRoZSBnb3Zlcm5tZW50LgpgYGAKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CiMjIFBlcmZvcm1pbmcgUENBCgojIFNlbGVjdCB0aGUgc2NhbGVkIGNvbHVtbnMgZm9yIFBDQQpzY2FsZWRfZGF0YV9lbnRpcmUgPC0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsICU+JQogIHNlbGVjdChnZHBjYXBpdGFfc2NhbGVkX2VudGlyZSwgbG1pbHBlcl9zY2FsZWRfZW50aXJlLCBsdHJvb3ByYXRpb19zY2FsZWRfZW50aXJlKQoKIyBQZXJmb3JtIFBDQQpwY2FfcmVzdWx0IDwtIHByY29tcChzY2FsZWRfZGF0YV9lbnRpcmUsIGNlbnRlciA9IFRSVUUsIHNjYWxlLiA9IFRSVUUpCgojIEV4dHJhY3QgdGhlIGZpcnN0IHByaW5jaXBhbCBjb21wb25lbnQgYXMgc3RhdGVfc3RyZW5ndGgKbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsIDwtIG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCAlPiUKICBtdXRhdGUoc3RhdGVfc3RyZW5ndGhfcGNhID0gcGNhX3Jlc3VsdCR4WywgMV0pCgojIFNjYWxlIHN0YXRlX3N0cmVuZ3RoIHRvIGEgcmFuZ2Ugb2YgMSB0byA1Cm1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwgJT4lCiAgbXV0YXRlKHN0YXRlX3N0cmVuZ3RoX3NjYWxlZCA9IGN1dChzdGF0ZV9zdHJlbmd0aF9wY2EsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtzID0gcXVhbnRpbGUoc3RhdGVfc3RyZW5ndGhfcGNhLCBwcm9icyA9IHNlcSgwLCAxLCBsZW5ndGgub3V0ID0gNiksIG5hLnJtID0gVFJVRSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZS5sb3dlc3QgPSBUUlVFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoMSwgMiwgMywgNCwgNSkpKQoKIyBDb252ZXJ0IHN0YXRlX3N0cmVuZ3RoIHRvIG51bWVyaWMKbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsIDwtIG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCAlPiUKICBtdXRhdGUoc3RhdGVfc3RyZW5ndGggPSBhcy5udW1lcmljKGFzLmNoYXJhY3RlcihzdGF0ZV9zdHJlbmd0aF9zY2FsZWQpKSkKYGBgCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQojIyBDb25zZXF1ZW50bHkgTWFraW5nIGEgbGV2ZWwgb2YgdGhyZWF0IChUaHJlYXQgUGVyY2VwdGlvbikgVmFyaWFibGUgIyMKIyBjb25jZXB0dWFsbHkgaG93IHRoaXMgdmFyaWFibGUgaXMgZGVmaW5lZCBpcyB0aGF0IG5vdyB0aGF0IHJlYl9zdHJlbmd0aF9uc2EgdmFyaWFibGUgaXMgb24gYSBzY2FsZSBvZiAxLTMgYW5kIHdlIGhhdmUgc3RhdGUtc3RyZW5ndGggb24gdGhlIHNhbWUgbGV2ZWwgc28gaWYgc3RhdGVfc3RyZW5ndGggPSByZWJfc3RyZW5ndGggdGhlbiBMZXZlbCBvZiB0aHJlYXQgaXMgMiAoYXQgcGFyaXR5KSBhbmQgaWYgcmViX3N0cmVuZ3RoIDwgc3RhdGVfc3RyZW5ndGggdGhlbiBsZXZlbCBvZiB0aHJlYXQgaXMgMSBhbmQgaWYgcmViX3N0cmVuZ3RoID4gc3RhdGVfc3RyZW5ndGggdGhlbiBMZXZlbCBvZiBUaHJlYXQgaXMgMy4gVGhlcmUgaXMgYSBzb2xpZCBtYXRoZW1hdGljYWwgcmVhc29uIGFzIHRvIHdoeSB0aGlzIGNhbm5vdCBiZSBtYWRlIG9uIGEgc2NhbGUgb2YgMSB0byA1LiAKCgptYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwgPC0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsICU+JSAKICBtdXRhdGUoTGV2ZWxfb2ZfVGhyZWF0ID0gY2FzZV93aGVuKAogICAgaXMubmEocmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkKSB+IE5BX3JlYWxfLAogICAgc3RhdGVfc3RyZW5ndGggPCByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgfiAzLAogICAgc3RhdGVfc3RyZW5ndGggPT0gcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIH4gMiwKICAgIHN0YXRlX3N0cmVuZ3RoID4gcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIH4gMSwKICAgIFRSVUUgfiBOQV9yZWFsXwogICkpICU+JSAgCiAgc2VsZWN0KHVjZHBfY29uZmxpY3RpZCwgWWVhciwgZ292ZXJubWVudCwgcmViZWxzLCByZWJlbF9ldGhuaWMsIHJlYmVsX2V0aG5pY2l0eV9OQUcsIHJlYmVsX3JlbGlnaW9uX05BRywgcHJvX2dvdnRfbWlsaXRpYV9wZ21fY3JlYXRlZCwgY29uZmxpY3RfZXRobmljLCBwZ21fZXRobmljaXR5XzEsIHBnbV9ldGhuaWNpdHlfMiwgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0LCBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5LCBjb2V0aG5pY19zdGF0ZV9wZ21fYWJic2V0YWwsIGNvZXRobmljX3JlYmVsX3BnbV9zdGFudG9uLCBjb2V0aG5pY19yZWJlbF9wZ21fZGssIHN0YXRlX3N0cmVuZ3RoLCByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQsIExldmVsX29mX1RocmVhdCwgZXZlcnl0aGluZygpKQoKcm0oc2NhbGVkX2RhdGFfZW50aXJlKQp3cml0ZS5jc3YobWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCJMb25naXR1ZGluYWxfRmluYWxfZXRobmljX29ubHkuY3N2IikKCiMjIyBMYXN0bHkgQ29udmVydGluZyBPdXRjb21lIGludG8gYSBjaHIgY2F0ZWdvcmljYWwgdmFyaWFibGUgd2hlcmUgMCA9IGxvc2UgKHJlYmVsIGxvc3MpLCAxID0gZHJhdyAoc2V0dGxlbWVudCksIDIgPSB3aW4gKHJlYmVsIHZpY3RvcnkpCm1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwgJT4lIAogIG11dGF0ZShvdXRjb21lX2NhdCA9ICBjYXNlX3doZW4oCiAgICBvdXRjb21lID09IDAgfiAiTG9zcyIsCiAgICBvdXRjb21lID09IDEgfiAiRHJhdyIsCiAgICBvdXRjb21lICA9PSAyIH4gIldpbiIsCiAgICBUUlVFIH4gTkFfY2hhcmFjdGVyXwogICkpCiAgCm1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCRvdXRjb21lX2NhdCA8LSBmYWN0b3IobWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsJG91dGNvbWVfY2F0KQoKIyMjIExhc3RseSBDb252ZXJ0aW5nIE91dGNvbWUgaW50byBhIGNociBjYXRlZ29yaWNhbCB2YXJpYWJsZSB3aGVyZSAwID0gbG9zZSAocmViZWwgbG9zcyksIDEgPSBkcmF3IChzZXR0bGVtZW50KSwgMiA9IHdpbiAocmViZWwgdmljdG9yeSkKbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsIDwtIG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCAlPiUgCiAgbXV0YXRlKG91dGNvbWVfY2F0X25ldyA9ICBjYXNlX3doZW4oCiAgICBvdXRjb21lX25ldyA9PSAwIH4gIkxvc3MiLAogICAgb3V0Y29tZV9uZXcgPT0gMSB+ICJEcmF3IiwKICAgIG91dGNvbWVfbmV3ICA9PSAyIH4gIldpbiIsCiAgICBUUlVFIH4gTkFfY2hhcmFjdGVyXwogICkpCm1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCRvdXRjb21lX2NhdF9uZXcgPC0gZmFjdG9yKG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCRvdXRjb21lX2NhdF9uZXcpCgpgYGAKCiMjUmVncmVzc2lvbiBmb3IgT3V0Y29tZSBOTSBiaW5hcnkgKE5NIFJlYmVsIFZpY3RvcnkgQmluYXJ5KSBhcyBEViB7LnRhYnNldH0KCiMjIyBGaXJzdCBNb2RlbAoKKipTaW1wbGUgTGluZWFyIE1vZGVsIHdpdGggbm8gZml4ZWQgZWZmZWN0cyAoQ29ldGhuaWNpdHkgTmFjaGlrZXQgYXMgQklOQVJZKSoqCgpgYGB7ciBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQojIyBSZWdyZXNzaW9uIGZvciBjb19ldGhuaWNpdHlfbm0gYXMgRFYKCgptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xIDwtIGZlb2xzKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSsgTGV2ZWxfb2ZfVGhyZWF0ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCwgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCkKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzEpCmBgYAoKIyMjIyBMb2dpdAoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyMgUmVncmVzc2lvbiBmb3IgY29fZXRobmljaXR5X25tIGFzIERWCgoKbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMV8xIDwtIGZlZ2xtKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSsgTGV2ZWxfb2ZfVGhyZWF0ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCxmYW1pbHkgPSBiaW5vbWlhbChsaW5rID0gImxvZ2l0IiksIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xXzEpCmBgYAoKIyMjIFNlY29uZCBNb2RlbAoKKipTaW1wbGUgTGluZWFyIE1vZGVsIHdpdGggbm8gZml4ZWQgZWZmZWN0cyAoQ29ldGhuaWNpdHkgTmFjaGlrZXQgYXMgTk9OIEJJTkFSWSkqKgoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyMgUmVncmVzc2lvbiBmb3IgY29fZXRobmljaXR5X25tIGFzIERWCgoKbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMiA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIExldmVsX29mX1RocmVhdCArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wsIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8yKQpgYGAKCiMjIyMgTG9naXQgKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgTGV2ZWxfb2ZfVGhyZWF0ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCkKCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CiMjIFJlZ3Jlc3Npb24gZm9yIGNvX2V0aG5pY2l0eV9ubSBhcyBEVgoKCm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzJfMSA8LSBmZWdsbShvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIExldmVsX29mX1RocmVhdCArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wsIGZhbWlseSA9IGJpbm9taWFsKGxpbmsgPSAibG9naXQiKSwgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCkKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzJfMSkKYGBgCiMjIyMgTG9naXQgKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgTGV2ZWxfb2ZfVGhyZWF0ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCkgKipXSVRIIEdPVkVSTk1FTlQgRml4ZWQgZWZmZWN0cyoqCgpgYGB7ciBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQojIyBSZWdyZXNzaW9uIGZvciBjb19ldGhuaWNpdHlfbm0gYXMgRFYKCgptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8yXzIgPC0gZmVnbG0ob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBMZXZlbF9vZl9UaHJlYXQgKyBwb2xpdHkyICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sIHwgZ292ZXJubWVudCwgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLCBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsKQoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMl8yKQpgYGAKCgojIyMjIExvZ2l0IChvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIExldmVsX29mX1RocmVhdCArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wpICoqV0lUSCBHT1ZFUk5NRU5UIEFORCBDT05GTElDVCBGaXhlZCBlZmZlY3RzKioKCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CiMjIFJlZ3Jlc3Npb24gZm9yIGNvX2V0aG5pY2l0eV9ubSBhcyBEVgoKCm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzJfMyA8LSBmZWdsbShvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIExldmVsX29mX1RocmVhdCArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgfCBnb3Zlcm5tZW50ICsgdWNkcF9jb25mbGljdGlkLCBmYW1pbHkgPSBiaW5vbWlhbChsaW5rID0gImxvZ2l0IiksIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8yXzMpCmBgYAoKIyMjIyBMb2dpdCB3aXRoIGNvbmZsaWN0IGZpeGVkIGVmZmVjdHMKCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CiMjIFJlZ3Jlc3Npb24gZm9yIGNvX2V0aG5pY2l0eV9ubSBhcyBEVgoKCm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzJfNCA8LSBmZWdsbShvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIExldmVsX29mX1RocmVhdCArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgfCB1Y2RwX2NvbmZsaWN0aWQgLCBmYW1pbHkgPSBiaW5vbWlhbChsaW5rID0gImxvZ2l0IiksIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8yXzQpCgpgYGAKIyMjIFRoaXJkIE1vZGVsIAoKKipTaW1wbGUgTW9kZWwgd2l0aCBJbnRlcmFjdGlvbiBUZXJtLiBSZW1vdmluZyBsZXZlbCBvZiB0aHJlYXQgYmVjYXVzZSBpbnRlcmFjdGlvbiB0ZXJtIGlzIHRoZXJlIChmb3Igc3luZXJnaXN0aWMgZWZmZWN0KS4gKENvZXRobmljaXR5IE5hY2hpa2V0IGFzIEJJTkFSWSkqKgoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyMgUmVncmVzc2lvbiBmb3IgY29fZXRobmljaXR5X25tIGFzIERWCgoKbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMyA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBwb2xpdHkyICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sICsgc3RhdGVfc3RyZW5ndGgqcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkLCBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsKQoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMykKCmBgYAoKCiMjIyMgTG9naXQKCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9Cgptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8zXzEgPC0gZmVnbG0ob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCArIHN0YXRlX3N0cmVuZ3RoKnJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCwgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLCBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8zXzEpCgpgYGAKCiMjIyBGb3VydGggTW9kZWwKCioqU2ltcGxlIE1vZGVsIHdpdGggSW50ZXJhY3Rpb24gVGVybS4gUmVtb3ZpbmcgbGV2ZWwgb2YgdGhyZWF0IGJlY2F1c2UgaW50ZXJhY3Rpb24gdGVybSBpcyB0aGVyZSAoZm9yIHN5bmVyZ2lzdGljIGVmZmVjdCkuIChDb2V0aG5pY2l0eSBOYWNoaWtldCBhcyBOT04tQklOQVJZKSoqCgpgYGB7ciBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQoKbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNCA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBzdGF0ZV9zdHJlbmd0aCpyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQsIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV80KQoKYGBgCgojIyMjIGxvZ2l0CgpgYGB7ciBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQoKbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNF8xIDwtIGZlZ2xtKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCArIHN0YXRlX3N0cmVuZ3RoKnJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCxmYW1pbHkgPSBiaW5vbWlhbChsaW5rID0gImxvZ2l0IiksIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV80XzEpCgpgYGAKCiMjIyMgQ29uZmxpY3Qgb3V0Y29tZV9uZXcgYXMgbm9uLWJpbmFyeQoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNDEgPC0gZmVvbHMob3V0Y29tZV9uZXcgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBwb2xpdHkyICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sICsgc3RhdGVfc3RyZW5ndGgqcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkLCBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsKQoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNDEpCmBgYAoKIyMjIyBDb25mbGljdCBvdXRjb21lX25ldyBhcyBub24tYmluYXJ5IGFuZCBCaXZhcmlhdGUgbW9kZWwgKyBnb3Zlcm5tZW50IEZFCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV80MiA8LSBmZW9scyhvdXRjb21lX25ldyB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCB8IGdvdmVybm1lbnQsZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNDIpCmBgYAoKIyMjIyBDb25mbGljdCBvdXRjb21lX25ldyBhcyBub24tYmluYXJ5IGFuZCBCaXZhcmlhdGUgbW9kZWwgKyBDb25mbGljdCBmaXhlZCBlZmZlY3RzCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV80MyA8LSBmZW9scyhvdXRjb21lX25ldyB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCB8IHVjZHBfY29uZmxpY3RpZCxkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV80MykKYGBgCgojIyMjIENvbmZsaWN0IG91dGNvbWVfbmV3IGFzIG5vbi1iaW5hcnkgYW5kIE11bHRpdmFyaWF0ZSBtb2RlbCArIGdvdmVybm1lbnQgZml4ZWQgZWZmZWN0cyB3aXRob3V0IGludGVyYWN0aW9uIHRlcm1zIGFuZCBsZXZlbCBvZiB0aHJlYXQKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzQ0IDwtIGZlb2xzKG91dGNvbWVfbmV3IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCB8IGdvdmVybm1lbnQsZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNDQpCmBgYAoKIyMjIyBDb25mbGljdCBvdXRjb21lX25ldyBhcyBub24tYmluYXJ5IGFuZCBNdWx0aXZhcmlhdGUgbW9kZWwgKyBjb25mbGljdCBmaXhlZCBlZmZlY3RzIHdpdGhvdXQgaW50ZXJhY3Rpb24gdGVybXMgYW5kIGxldmVsIG9mIHRocmVhdAoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNDUgPC0gZmVvbHMob3V0Y29tZV9uZXcgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBwb2xpdHkyICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sIHwgdWNkcF9jb25mbGljdGlkLGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzQ1KQpgYGAKCiMjIyMgQ29uZmxpY3Qgb3V0Y29tZV9uZXcgYXMgbm9uLWJpbmFyeSBhbmQgTXVsdGl2YXJpYXRlIG1vZGVsICsgZ292ZXJubWVudCBmaXhlZCBlZmZlY3RzIHdpdGhvdXQgaW50ZXJhY3Rpb24gdGVybXMgb3IgcmViIG9yIHN0YXRlIHN0cmVuZ3RoCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV80NiA8LSBmZW9scyhvdXRjb21lX25ldyB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIExldmVsX29mX1RocmVhdCArIHBvbGl0eTIgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sIHwgZ292ZXJubWVudCxkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV80NikKYGBgCk91dGNvbWUgfiBjb2V0aG5pY2l0eSArIGR1cmF0aW9uICsgcG9saXR5MiArIGV0aHBvbCAoK2dkcD8pCgojIyMjIENvbmZsaWN0IG91dGNvbWVfbmV3IGFzIG5vbi1iaW5hcnkgYW5kIE11bHRpdmFyaWF0ZSBtb2RlbCArIGdvdmVybm1lbnQgZml4ZWQgZWZmZWN0cyB3aXRob3V0IGludGVyYWN0aW9uIHRlcm1zIG9yIHJlYiBvciBzdGF0ZSBzdHJlbmd0aCBvciBsZXZlbCBvZiB0aHJlYXQKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzQ3IDwtIGZlb2xzKG91dGNvbWVfbmV3IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgcG9saXR5MiArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgfCBnb3Zlcm5tZW50LGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzQ3KQoKCgpgYGAKCgojIyMgRmlmdGggTW9kZWwKCioqRml4ZWQgRWZmZWN0cyBPcmRpbmFyeSBMZWFzdCBTcXVhcmUgTW9kZWxzIHdpdGggQ2x1c3RlcmVkIGVycm9ycyBhdCB0aGUgQ291bnRyeS9nb3Zlcm5tZW50IGxldmVsLiBDb2V0aG5pYyBOYWNoaWtldCAoQklOQVJZKSoqCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV81IDwtIGZlb2xzKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSArIHBvbGl0eTIgK0xldmVsX29mX1RocmVhdCArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCB8IGdvdmVybm1lbnQgLAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV81KQoKYGBgCgojIyMjIExvZ2l0CgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV81XzEgPC0gZmVnbG0ob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5ICsgcG9saXR5MiArTGV2ZWxfb2ZfVGhyZWF0ICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sIHwgZ292ZXJubWVudCAsZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV81XzEpCgpgYGAKCiMjIyMgT3V0Y29tZSBub24gYmluYXJ5CgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV81MSA8LSBmZW9scyhvdXRjb21lX25ldyB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBwb2xpdHkyICtMZXZlbF9vZl9UaHJlYXQgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgfCBnb3Zlcm5tZW50ICwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNTEpCmBgYAoKIyMjIFNpeHRoIE1vZGVsCgoqKkZpeGVkIEVmZmVjdHMgT3JkaW5hcnkgTGVhc3QgU3F1YXJlIE1vZGVscyB3aXRoIENsdXN0ZXJlZCBlcnJvcnMgYXQgdGhlIENvdW50cnkvZ292ZXJubWVudCBsZXZlbC4gQ29ldGhuaWMgTmFjaGlrZXQgKE5PTiBCSU5BUlkpKioKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzYgPC0gZmVvbHMob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBwb2xpdHkyICtMZXZlbF9vZl9UaHJlYXQgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgfCBnb3Zlcm5tZW50LAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV82KQpgYGAKCiMjIyMgTG9naXQKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzZfMSA8LSBmZWdsbShvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIHBvbGl0eTIgK0xldmVsX29mX1RocmVhdCArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCB8IGdvdmVybm1lbnQsZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV82XzEpCmBgYAoKIyMjIyBPdXRjb21lIG5vbiBiaW5hcnkKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzYxIDwtIGZlb2xzKG91dGNvbWVfbmV3IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgcG9saXR5MiArTGV2ZWxfb2ZfVGhyZWF0ICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sIHwgZ292ZXJubWVudCwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNjEpCmBgYAoKIyMjIFNldmVudGggTW9kZWwKCioqU2FtZSBhcyB0aGUgVGhpcmQgYW5kIEZvdXJ0aCBtb2RlbHMgYnV0IHdpdGggRkUgYW5kIGNsdXN0ZXJlZCBlcnJvcnMgQ29ldGhuaWMgTkFDSElLRVQgKEJJTkFSWSkqKiBMZXZlbCBvZiB0aHJlYXQgcmVtb3ZlZCBiZWNhdXNlIHdlIHdpc2ggdG8gY2FwdHVyZSB0aGUgc3luZXJnaXN0aWMgZWZmZWN0cyBvZiBpbnRlcmFjdGlvbiB0ZXJtCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV83IDwtIGZlb2xzKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4KICAgICAgICAgICAgICAgICAgICAgICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBzdGF0ZV9zdHJlbmd0aCpyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgfCBnb3Zlcm5tZW50LCBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNykKCmBgYAoKIyMjIyBMb2dpdAoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fN18xIDwtIGZlZ2xtKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4KICAgICAgICAgICAgICAgICAgICAgICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBzdGF0ZV9zdHJlbmd0aCpyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgfCBnb3Zlcm5tZW50LCBmYW1pbHkgPSBiaW5vbWlhbChsaW5rID0gImxvZ2l0IiksIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV83XzEpCgpgYGAKCiMjIyMgb3V0Y29tZV9uZXcgbm9uIGJpbmFyeQoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fNyA8LSBmZW9scyhvdXRjb21lX25ldyB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBwb2xpdHkyICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sICsgc3RhdGVfc3RyZW5ndGgqcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIHwgZ292ZXJubWVudCwgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzcpCgpgYGAKCiMjIyBFaWdodGggTW9kZWwKCioqTE0gTU9ERUwgU2FtZSBhcyB0aGUgVGhpcmQgYW5kIEZvdXJ0aCBtb2RlbHMgYnV0IHdpdGggRkUgYW5kIGNsdXN0ZXJlZCBlcnJvcnMgQ29ldGhuaWMgTkFDSElLRVQgKE5PTi1CSU5BUlkpKiogTGV2ZWwgb2YgdGhyZWF0IHJlbW92ZWQgYmVjYXVzZSB3ZSB3aXNoIHRvIGNhcHR1cmUgdGhlIHN5bmVyZ2lzdGljIGVmZmVjdHMgb2YgaW50ZXJhY3Rpb24gdGVybQoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fOCA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBzdGF0ZV9zdHJlbmd0aCpyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgfCBnb3Zlcm5tZW50LCBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fOCkKCmBgYAoKIyMjIyBsb2dpdCBNb2RlbCBmb3IgdGhlIG9uZSByaWdodCBhYm92ZSAob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBwb2xpdHkyICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sICsgc3RhdGVfc3RyZW5ndGgqcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIHwgZ292ZXJubWVudCkgd2l0aCBnb3Zlcm5tZW50IEZFCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV84XzEgPC0gZmVnbG0ob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfgogICAgICAgICAgICAgICAgICAgICAgICBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBwb2xpdHkyICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sICsgc3RhdGVfc3RyZW5ndGgqcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIHwgZ292ZXJubWVudCwgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fOF8xKQoKYGBgCgojIyMjIGxvZ2l0IGJpdmFyaWF0ZQoKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzhfMV8xIDwtIGZlZ2xtKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4KICAgICAgICAgICAgICAgICAgICAgICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0IHwgZ292ZXJubWVudCwgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fOF8xXzEpCgpgYGAKIyMjIyBsb2dpdCBNb2RlbCBmb3IgKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCArIHN0YXRlX3N0cmVuZ3RoKnJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCB8IGdvdmVybm1lbnQpIFdJVEggR09WRVJOTUVOVCBBTkQgQ09ORkxJQ1QgRkUKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzhfMiA8LSBmZWdsbShvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBzdGF0ZV9zdHJlbmd0aCpyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgfCBnb3Zlcm5tZW50ICsgdWNkcF9jb25mbGljdGlkLCBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBmYW1pbHkgPSBiaW5vbWlhbChsaW5rID0gImxvZ2l0IiksIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV84XzIpCgpgYGAKCgojIyMgTmludGggTW9kZWwKCioqQWRkaXRpb25hbCBDb250cm9scyBGRU9MUyB3aXRoIENvZXRobmljIE5hY2hpa2V0IChCaW5hcnkpKioKCkFkZGluZyBUaHJlZSBWYXJpYWJsZXMgYW5kIFJlbW92aW5nIFN0YXRlIFN0cmVuZ3RoIGR1ZSB0byBwb3NzaWJpbGl0eSBvZiBNdWx0aWNvbGxpbmVhcml0eSBhbmQgYWRkaW5nIGluZGl2aWR1YWwgcHJlZGljdG9ycyBvZiBzdGF0ZSBzdHJlbmd0aAoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fOSA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBwb2xpdHkyICsgZ2RwY2FwaXRhX2ltcHV0ZWRfZW50aXJlICsgbG1pbHBlcl9pbXB1dGVkX2VudGlyZSArIGx0cm9vcHJhdGlvX2ltcHV0ZWRfZW50aXJlICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCB8IGdvdmVybm1lbnQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV85KQoKYGBgCgojIyMjIExvZ2l0IE1vZGVsCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV85XzEgPC0gZmVnbG0ob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfgogICAgICAgICAgICAgICAgICAgICAgICBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5ICsgcG9saXR5MiArIGdkcGNhcGl0YV9pbXB1dGVkX2VudGlyZSArIGxtaWxwZXJfaW1wdXRlZF9lbnRpcmUgKyBsdHJvb3ByYXRpb19pbXB1dGVkX2VudGlyZSArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgfCBnb3Zlcm5tZW50LAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBmYW1pbHkgPSBiaW5vbWlhbChsaW5rID0gImxvZ2l0IiksIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV85XzEpCgpgYGAKCiMjIyMgTG9naXQgTW9kZWwKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzlfMV8xIDwtIGZlZ2xtKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4KICAgICAgICAgICAgICAgICAgICAgICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSB8IGdvdmVybm1lbnQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsIGZhbWlseSA9IGJpbm9taWFsKGxpbmsgPSAibG9naXQiKSwgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzlfMV8xKQoKYGBgCgoKIyMjIFRlbnRoIE1vZGVsCgoqKkFkZGl0aW9uYWwgQ29udHJvbHMgRkVPTFMgd2l0aCBDb2V0aG5pYyBOYWNoaWtldCAoQmluYXJ5KSoqCgpBZGRpbmcgVGhyZWUgVmFyaWFibGVzIGFuZCBSZW1vdmluZyBTdGF0ZSBTdHJlbmd0aCBkdWUgdG8gcG9zc2liaWxpdHkgb2YgTXVsdGktY29sbGluZWFyaXR5IGFuZCBhZGRpbmcgaW5kaXZpZHVhbCBwcmVkaWN0b3JzIG9mIHN0YXRlIHN0cmVuZ3RoCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMCA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBwb2xpdHkyICsgZ2RwY2FwaXRhX2ltcHV0ZWRfZW50aXJlICsgbG1pbHBlcl9pbXB1dGVkX2VudGlyZSArIGx0cm9vcHJhdGlvX2ltcHV0ZWRfZW50aXJlICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCB8IGdvdmVybm1lbnQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMCkKCmBgYAoKIyMjIyBMb2dpdCBNb2RlbAoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMTBfMSA8LSBmZWdsbShvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBwb2xpdHkyIHwgZ292ZXJubWVudCwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMF8xKQojICsgZ2RwY2FwaXRhX2ltcHV0ZWRfZW50aXJlICsgbG1pbHBlcl9pbXB1dGVkX2VudGlyZSArIGx0cm9vcHJhdGlvX2ltcHV0ZWRfZW50aXJlICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCAKYGBgCgojIyMjIExvZ2l0IE1vZGVsIAoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMTBfMV8xIDwtIGZlZ2xtKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4KICAgICAgICAgICAgICAgICAgICAgICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSArICBMZXZlbF9vZl9UaHJlYXQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsIGZhbWlseSA9IGJpbm9taWFsKGxpbmsgPSAibG9naXQiKSwgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMTBfMV8xKQpgYGAKCiMjIyBFbGV2ZW50aCBNb2RlbAoKIyMjIyBMb2dpdCBiaW5hcnkgd2l0aG91dCBnb3Zlcm5tZW50IGZpeGVkIGVmZmVjdHMKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzExXzEgPC0gZmVnbG0ob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfgogICAgICAgICAgICAgICAgICAgICAgICBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMV8xKQoKYGBgCgojIyMjIExvZ2l0IGJpbmFyeSB3aXRoIGdvdmVybm1lbnQgZml4ZWQgZWZmZWN0cwoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMTFfMiA8LSBmZWdsbShvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCB8IGdvdmVybm1lbnQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMV8yKQoKYGBgCgojIyMjIExvZ2l0IGJpbmFyeSB3aXRoIGdvdmVybm1lbnQgQU5EIGNvbmZsaWN0IGZpeGVkIGVmZmVjdHMKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzExXzMgPC0gZmVnbG0ob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfgogICAgICAgICAgICAgICAgICAgICAgICBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgfCBnb3Zlcm5tZW50ICsgdWNkcF9jb25mbGljdGlkLAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljX2xvbmdpdHVkbmFsLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMV8zKQoKCmBgYAoKCgojIyMjIEFkZGl0aW9uYWwgQ29udHJvbHMgRkVPTFMgd2l0aCBDb2V0aG5pYyBOYWNoaWtldCAob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBwb2xpdHkyICsgZ2RwY2FwaXRhX2ltcHV0ZWRfZW50aXJlICsgbG1pbHBlcl9pbXB1dGVkX2VudGlyZSArIGx0cm9vcHJhdGlvX2ltcHV0ZWRfZW50aXJlICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCkgIHdpdGggZ292ZXJubWVudCBGRQoKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzExXzQgPC0gZmVvbHMob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfgogICAgICAgICAgICAgICAgICAgICAgICBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBwb2xpdHkyICsgZ2RwY2FwaXRhX2ltcHV0ZWRfZW50aXJlICsgbG1pbHBlcl9pbXB1dGVkX2VudGlyZSArIGx0cm9vcHJhdGlvX2ltcHV0ZWRfZW50aXJlICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCB8IGdvdmVybm1lbnQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMV80KQoKYGBgCiMjIyMgQWRkaXRpb25hbCBDb250cm9scyBGRU9MUyB3aXRoIENvZXRobmljIE5hY2hpa2V0IChvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIExvVCArIHBvbGl0eTIgKyBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUgKyBsbWlscGVyX2ltcHV0ZWRfZW50aXJlICsgbHRyb29wcmF0aW9faW1wdXRlZF9lbnRpcmUgKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sKSAgV0lUSE9VVCBnb3Zlcm5tZW50IEZFCgoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMTFfNF8xIDwtIGZlb2xzKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4KICAgICAgICAgICAgICAgICAgICAgICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgTGV2ZWxfb2ZfVGhyZWF0ICsgcG9saXR5MiArIGdkcGNhcGl0YV9pbXB1dGVkX2VudGlyZSArIGxtaWxwZXJfaW1wdXRlZF9lbnRpcmUgKyBsdHJvb3ByYXRpb19pbXB1dGVkX2VudGlyZSArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWNfbG9uZ2l0dWRuYWwsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMV80XzEpCgpgYGAKIyMjIyBBZGRpdGlvbmFsIENvbnRyb2xzIEZFT0xTIHdpdGggQ29ldGhuaWMgTmFjaGlrZXQgKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgTG9UICsgcG9saXR5MiArIGdkcGNhcGl0YV9pbXB1dGVkX2VudGlyZSArIGxtaWxwZXJfaW1wdXRlZF9lbnRpcmUgKyBsdHJvb3ByYXRpb19pbXB1dGVkX2VudGlyZSArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wpICBXSVRIIGdvdmVybm1lbnQgRkUKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X25tXzExXzRfMiA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIExldmVsX29mX1RocmVhdCArIHBvbGl0eTIgKyBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUgKyBsbWlscGVyX2ltcHV0ZWRfZW50aXJlICsgbHRyb29wcmF0aW9faW1wdXRlZF9lbnRpcmUgKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sIHwgZ292ZXJubWVudCwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzExXzRfMikKCmBgYAoKIyMjIyBMb2dpdCBNb2RlbCAob3V0Y29tZV9iaW5hcnlfbmFjaGlrZXQgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBwb2xpdHkyKQoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMTFfNSA8LSBmZWdsbShvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMV81KQpgYGAKIAojIyMjIExvZ2l0IE1vZGVsIChvdXRjb21lX2JpbmFyeV9uYWNoaWtldCB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArICBMZXZlbF9vZl9UaHJlYXQpCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMV82IDwtIGZlZ2xtKG91dGNvbWVfYmluYXJ5X25hY2hpa2V0IH4KICAgICAgICAgICAgICAgICAgICAgICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgIExldmVsX29mX1RocmVhdCwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pY19sb25naXR1ZG5hbCwgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJsb2dpdCIpLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMV82KQpgYGAKCiMjIFN0YXJnYXplciAyCgpgYGB7ciBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQpzdGFyZ2F6ZXJfMiA8LSBtb2RlbHN1bW1hcnkobGlzdChtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV8xMV8xLG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzExXzIsbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMTFfNiwgbW9kZWxfb3V0Y29tZV9iaW5hcnlfbm1fMTFfNF8xLG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzExXzRfMixtb2RlbF9vdXRjb21lX2JpbmFyeV9ubV80XzEsIG1vZGVsX291dGNvbWVfYmluYXJ5X25tXzgpLCBvdXRwdXQgPSAibWFya2Rvd24iLAogIHN0YXRpc3RpYyA9IGMoInN0ZC5lcnJvciIsICJwLnZhbHVlIiksCiAgc3RhcnMgPSBUUlVFKQoKc3RhcmdhemVyXzIKYGBgCgo=