Creando el ambiente
library(psych)
Attaching package: ‘psych’
The following object is masked from ‘package:boot’:
logit
The following objects are masked from ‘package:ggplot2’:
%+%, alpha
The following object is masked from ‘package:lavaan’:
cor2cov
Cargar los datos
barrera_raw <-
read_csv(here("PLS-SEM/data",
"/nayra_116.csv"))
── Column specification ────────────────────────────────────────────────────────────
cols(
.default = col_double(),
`Marca temporal` = col_character(),
`Dirección de correo electrónico` = col_character(),
`Nombre y apellidos` = col_character(),
`Grado de escolaridad` = col_character(),
`Nombre del emprendimiento` = col_character(),
`Clasificación del emprendimiento de acuerdo a su actividad` = col_character(),
`Años de creación del emprendimiento` = col_character(),
ER_01 = col_character(),
ER_02 = col_character(),
ER_03 = col_character(),
ER_04 = col_character(),
ER_05 = col_character(),
FI_01 = col_character()
)
ℹ Use `spec()` for the full column specifications.
Limpiando los datos
barrera_clean %>% dim()
[1] 112 24
Organizar los datos
Extrayendo la estructura de la red
Seleccionamos los empresarios que respondierone esta pregunta
barrera_empren_ER %>% dim()
[1] 112 5
Vamos a calcular la estructura de la red social (densidad y huecos estructurales)
edge_list = rbind(df_entre, df_c1, df_c2, df_c3, df_c4)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
Pegamos las nuevas variables a los datos iniciales
barrera_tidy %>% dim()
[1] 112 28
Cronbach alpha
Marketing emprendedor
psych::alpha(barrera_tidy %>%
select(ME_CD_01, ME_CD_02, ME_CD_03,ME_CD_04, ME_CD_05,ME_CD_06,ME_CD_07,ME_CD_08,ME_CD_09,ME_CD_10,ME_CD_11,ME_CD_12))
Reliability analysis
Call: psych::alpha(x = barrera_tidy %>% select(ME_CD_01, ME_CD_02,
ME_CD_03, ME_CD_04, ME_CD_05, ME_CD_06, ME_CD_07, ME_CD_08,
ME_CD_09, ME_CD_10, ME_CD_11, ME_CD_12))
lower alpha upper 95% confidence boundaries
0.87 0.9 0.93
Reliability if an item is dropped:
Item statistics
Non missing response frequency for each item
1 2 3 4 5 miss
ME_CD_01 0.01 0.02 0.21 0.30 0.46 0
ME_CD_02 0.00 0.02 0.12 0.32 0.54 0
ME_CD_03 0.01 0.02 0.11 0.31 0.55 0
ME_CD_04 0.03 0.10 0.19 0.31 0.38 0
ME_CD_05 0.03 0.08 0.28 0.33 0.29 0
ME_CD_06 0.09 0.12 0.26 0.23 0.29 0
ME_CD_07 0.00 0.03 0.19 0.30 0.48 0
ME_CD_08 0.02 0.10 0.21 0.34 0.34 0
ME_CD_09 0.08 0.04 0.27 0.38 0.22 0
ME_CD_10 0.01 0.07 0.23 0.35 0.34 0
ME_CD_11 0.01 0.06 0.17 0.34 0.42 0
ME_CD_12 0.04 0.10 0.24 0.24 0.38 0
Fortaleza del enlace
psych::alpha(barrera_tidy %>%
select(FR_01,
FR_02,
FR_03))
Reliability analysis
Call: psych::alpha(x = barrera_tidy %>% select(FR_01, FR_02, FR_03))
lower alpha upper 95% confidence boundaries
0.88 0.91 0.94
Reliability if an item is dropped:
Item statistics
Non missing response frequency for each item
1 2 3 4 5 miss
FR_01 0.16 0.11 0.28 0.28 0.18 0
FR_02 0.18 0.13 0.29 0.26 0.14 0
FR_03 0.19 0.11 0.25 0.22 0.23 0
FINTECH
psych::alpha(barrera_tidy %>%
select(FI_02,
FI_03,
FI_04,
FI_05))
Reliability analysis
Call: psych::alpha(x = barrera_tidy %>% select(FI_02, FI_03, FI_04,
FI_05))
lower alpha upper 95% confidence boundaries
0.88 0.91 0.94
Reliability if an item is dropped:
Item statistics
Non missing response frequency for each item
1 2 3 4 5 miss
FI_02 0.02 0.03 0.12 0.35 0.49 0
FI_03 0.02 0.04 0.13 0.29 0.53 0
FI_04 0.01 0.03 0.12 0.29 0.55 0
FI_05 0.02 0.00 0.07 0.32 0.59 0
PLS-SEM Model
Creamos el modelo
Análisis del modelo
barrera_PLS_mod <-
plsm(data = barrera_tidy,
strucmod = barrera_model_sm,
measuremod = barrera_model_mm)
Error in plsm(data = barrera_tidy, strucmod = barrera_model_sm, measuremod = barrera_model_mm) :
The manifest variables must be contained in the data.
barrera_PLS_fit <-
sempls(model = barrera_PLS_mod,
data = barrera_tidy)
All 112 observations are valid.
Converged after 7 iterations.
Tolerance: 1e-07
Scheme: centroid
plsLoadings(barrera_PLS_fit)
ME ER FR FI
ME_CD_01 0.54 . . .
ME_CD_02 0.65 . . .
ME_CD_03 0.60 . . .
ME_CD_04 0.72 . . .
ME_CD_05 0.72 . . .
ME_CD_06 0.64 . . .
ME_CD_07 0.73 . . .
ME_CD_08 0.78 . . .
ME_CD_09 0.70 . . .
ME_CD_10 0.68 . . .
ME_CD_11 0.81 . . .
ME_CD_12 0.72 . . .
constraint . 1.00 . .
FR_01 . . 0.93 .
FR_02 . . 0.93 .
FR_03 . . 0.89 .
FI_02 . . . 0.93
FI_03 . . . 0.88
FI_04 . . . 0.88
FI_05 . . . 0.85
Cada variable latente tiene un carga fuerte con su variable manifiesta, si su carga está por encima de 0.3 o 0.5 para todas las variables manifiestas. Por lo tanto, no nos preocupamos por el tamaño de la muestra o la confiabilidad en las medidas.
Ahora examinamos los coeficientes estructurales entre variables latentes
pathCoeff(barrera_PLS_fit)
ME ER FR FI
ME . 0.343 0.480 0.424
ER . . . -0.169
FR . . . -0.026
FI . . . .
En esta tabla mostramos que el ME influye positivamente en ER, FR y FI. Sin embargo, ER y FR no influyen en que un emprendedor adopte FINTECH
Visualizando el modelo
pathDiagram(barrera_PLS_fit,
file = "barrera_PLS_fit",
full = FALSE,
digits = 2,
edge.labels = "values",
output.type = "graphics",
graphics.fmt = "pdf")
Running dot -Tpdf -o barrera_PLS_fit.pdf barrera_PLS_fit.dot
sh: 1: dot: not found
error in running command
Evaluando el modelo PLS-SEM
Como los modelos de PLS-SEM no evaluan el ajuste del modelo en general, se mostrará dos métodos por los cuales se puede entender su comportamiento.
Revisando los valores de R2
rSquared(barrera_PLS_fit)
R-squared
ME .
ER 0.12
FR 0.23
FI 0.15
Los R2 dieron altos en todas las variables latentes menos para ME. Es por esto que es importante utilizar más métodos para validar el modelo.
Haciendo un bootstrapping
barrera_PLS_boot <-
bootsempls(barrera_PLS_fit,
nboot = 500,
start = "ones")
Resample: 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500 Done.
Solo el 6.2% de los modelos no se pudieron generar a través de esta técnica. Esto quiere decir que el modelo en general se pude considerar bueno. También es importante ver los resutlados de todos los modelos para compararlos entre si.
Las lÃneas grises en la siguiente figura representan bootstrap estimados de forma individual, las lÃneas rojas la mediana (lÃnea sólida) y los intervalos de confianza a un 95% (lÃneas punteadas). Esta gráfica se lee analizando la dispersión a través de las lÃneas horizontales. Por ejemplo, las gran mayorÃa de estimaciones se ubican a la derecha del punto 0 (lÃnea punteada vertical) para ME, lo uqe quiere decir que la gran mayorÃa de resultados dicen que hay una relación positiva entre ME y FI, FR y ER. Sin embargo, esta gráfica confirma que la gran mayorÃa de datos para FR y ER son negativos validando que la fortaleza del enlace y la estructura de la red social no influyen en la adopción de FINTECH.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lCi0tLQoKIyBDcmVhbmRvIGVsIGFtYmllbnRlIAoKYGBge3J9CmxpYnJhcnkobGF2YWFuKQpsaWJyYXJ5KHNlbVBMUykKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoaGVyZSkKbGlicmFyeShpZ3JhcGgpCmxpYnJhcnkocHN5Y2gpCmBgYAoKIyBDYXJnYXIgbG9zIGRhdG9zCgpgYGB7cn0KYmFycmVyYV9yYXcgPC0gCiAgcmVhZF9jc3YoaGVyZSgiUExTLVNFTS9kYXRhIiwKICAgICAgICAgICAgICAgICIvbmF5cmFfMTE2LmNzdiIpKQpgYGAKIyBMaW1waWFuZG8gbG9zIGRhdG9zCgpgYGB7cn0KYmFycmVyYV9jbGVhbiA8LSAKICBiYXJyZXJhX3JhdyAlPiUgCiAgc2VsZWN0KGBEaXJlY2Npw7NuIGRlIGNvcnJlbyBlbGVjdHLDs25pY29gLAogICAgICAgICBNRV9DRF8wMTpGSV8wNSkgJT4lIAogIHNlbGVjdCgtRVJfMDEsIC1GSV8wMSkgJT4lIAogIHJlbmFtZShlbWFpbCA9IGBEaXJlY2Npw7NuIGRlIGNvcnJlbyBlbGVjdHLDs25pY29gKSAlPiUgCiAgdW5pcXVlKCkgJT4lICAjIEVsaW5hcm9uIGRvcyBkdXBsaWNhZG9zCiAgZmlsdGVyKCFkdXBsaWNhdGVkKGVtYWlsKSkgIyBhcnJvenNhbnBlZHJvQHlhaG9vLmVzCiAgCmJhcnJlcmFfY2xlYW4gJT4lIGRpbSgpCmBgYAoKCiMgT3JnYW5pemFyIGxvcyBkYXRvcwoKRXh0cmF5ZW5kbyBsYSBlc3RydWN0dXJhIGRlIGxhIHJlZAoKU2VsZWNjaW9uYW1vcyBsb3MgZW1wcmVzYXJpb3MgcXVlIHJlc3BvbmRpZXJvbmUgZXN0YSBwcmVndW50YQoKYGBge3J9CmJhcnJlcmFfZW1wcmVuX0VSIDwtCiAgYmFycmVyYV9jbGVhbiAlPiUgCiAgc2VsZWN0KGVtYWlsLCBFUl8wMjpFUl8wNSkKCmJhcnJlcmFfZW1wcmVuX0VSICU+JSBkaW0oKQpgYGAKClZhbW9zIGEgY2FsY3VsYXIgbGEgZXN0cnVjdHVyYSBkZSBsYSByZWQgc29jaWFsIChkZW5zaWRhZCB5IGh1ZWNvcyBlc3RydWN0dXJhbGVzKQoKYGBge3J9CnRibF9lZ29uZXQgPC0gCiAgdGliYmxlKGVtYWlsID0gY2hhcmFjdGVyKCksCiAgICAgICAgIGNvbnN0cmFpbnQgPSBudW1lcmljKCksCiAgICAgICAgIGNsdXN0ZXJpbmcgPSBudW1lcmljKCksCiAgICAgICAgIGNlbnRyYWxpdHkgPSBudW1lcmljKCksCiAgICAgICAgIGRlbnNpdHkgPSBudW1lcmljKCkpCgpmb3IgKGkgaW4gYmFycmVyYV9lbXByZW5fRVIkZW1haWwpIHsKICAgICAgICAKICAgICAgICByb3cgPSBiYXJyZXJhX2VtcHJlbl9FUltiYXJyZXJhX2VtcHJlbl9FUiRlbWFpbCA9PSBpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCJlbWFpbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRVJfMDIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVSXzAzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFUl8wNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRVJfMDUiKV0KICAgICAgICAKICAgICAgICBkZl9lbnRyZSA9IGRhdGEuZnJhbWUoU291cmNlID0gaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0ID0gYygiRW1wcmVuZGVkb3IgMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVtcHJlbmRlZG9yIDIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbXByZW5kZWRvciAzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW1wcmVuZGVkb3IgNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVtcHJlbmRlZG9yIDUiKSkKICAgICAgICAKICAgICAgICBkZl9jMSA9IGRhdGEuZnJhbWUoU291cmNlID0gIkVtcHJlbmRlZG9yIDEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQgPSBzdHJzcGxpdCh4ID0gcm93JEVSXzAyLCBzcGxpdCA9ICIsIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSkKICAgICAgICBuYW1lcyhkZl9jMSkgPSBjKCJTb3VyY2UiLCAiVGFyZ2V0IikKICAgICAgICAKICAgICAgICBkZl9jMiA9IGRhdGEuZnJhbWUoU291cmNlID0gIkVtcHJlbmRlZG9yIDIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQgPSBzdHJzcGxpdCh4ID0gcm93JEVSXzAzLCBzcGxpdCA9ICIsIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSkKICAgICAgICBuYW1lcyhkZl9jMikgPSBjKCJTb3VyY2UiLCAiVGFyZ2V0IikKICAgICAgICAKICAgICAgICBkZl9jMyA9IGRhdGEuZnJhbWUoU291cmNlID0gIkVtcHJlbmRlZG9yIDMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQgPSBzdHJzcGxpdCh4ID0gcm93JEVSXzA0LCBzcGxpdCA9ICIsIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSkKICAgICAgICBuYW1lcyhkZl9jMykgPSBjKCJTb3VyY2UiLCAiVGFyZ2V0IikKICAgICAgICAKICAgICAgICBkZl9jNCA9IGRhdGEuZnJhbWUoU291cmNlID0gIkVtcHJlbmRlZG9yIDQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQgPSBzdHJzcGxpdCh4ID0gcm93JEVSXzA1LCBzcGxpdCA9ICIsIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSkKICAgICAgICBuYW1lcyhkZl9jNCkgPSBjKCJTb3VyY2UiLCAiVGFyZ2V0IikKICAgICAgICAKICAgICAgICBlZGdlX2xpc3QgPSByYmluZChkZl9lbnRyZSwgZGZfYzEsIGRmX2MyLCBkZl9jMywgZGZfYzQpCiAgICAgICAgCiAgICAgICAgZWRnZV9saXN0ID0gZWRnZV9saXN0W2NvbXBsZXRlLmNhc2VzKGVkZ2VfbGlzdCkgPT0gVFJVRSxdCiAgICAgICAgCiAgICAgICAgZ3JhcGhfMSA9IGdyYXBoLmRhdGEuZnJhbWUoZWRnZV9saXN0LCBkaXJlY3RlZCA9IEZBTFNFKQogICAgICAgIAogICAgICAgIG5ldF9tZXRyaWNzID0gZGF0YS5mcmFtZShlbWFpbCA9IGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQgPSBjb25zdHJhaW50KGdyYXBoXzEpWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyaW5nID0gdHJhbnNpdGl2aXR5KGdyYXBoXzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICJsb2NhbCIpWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZW50cmFsaXR5ID0gZWlnZW5fY2VudHJhbGl0eShncmFwaF8xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RlZCA9IEZBTFNFKSR2ZWN0b3JbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNpdHkgPSBlZGdlX2RlbnNpdHkoZ3JhcGhfMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSkKICAgICAgICAKICAgICAgICB0YmxfZWdvbmV0ID0gcmJpbmQobmV0X21ldHJpY3MsIHRibF9lZ29uZXQpCn0KCnJtKHJvdywgZGZfYzEsIGRmX2MyLCBkZl9jMywgZGZfYzQsIGRmX2VudHJlKQoKYGBgCgpQZWdhbW9zIGxhcyBudWV2YXMgdmFyaWFibGVzIGEgbG9zIGRhdG9zIGluaWNpYWxlcwoKYGBge3J9CmJhcnJlcmFfdGlkeSA8LQogIHRibF9lZ29uZXQgJT4lIAogIHJpZ2h0X2pvaW4oYmFycmVyYV9jbGVhbiwgYnkgPSAiZW1haWwiKQoKYmFycmVyYV90aWR5ICU+JSBkaW0oKQpgYGAKCiMgQ3JvbmJhY2ggYWxwaGEKCk1hcmtldGluZyBlbXByZW5kZWRvcgoKYGBge3J9CnBzeWNoOjphbHBoYShiYXJyZXJhX3RpZHkgJT4lIAogICAgICAgIHNlbGVjdChNRV9DRF8wMSwgCiAgICAgICAgICAgICAgIE1FX0NEXzAyLCAKICAgICAgICAgICAgICAgTUVfQ0RfMDMsCiAgICAgICAgICAgICAgIE1FX0NEXzA0LAogICAgICAgICAgICAgICBNRV9DRF8wNSwKICAgICAgICAgICAgICAgTUVfQ0RfMDYsCiAgICAgICAgICAgICAgIE1FX0NEXzA3LAogICAgICAgICAgICAgICBNRV9DRF8wOCwKICAgICAgICAgICAgICAgTUVfQ0RfMDksCiAgICAgICAgICAgICAgIE1FX0NEXzEwLAogICAgICAgICAgICAgICBNRV9DRF8xMSwKICAgICAgICAgICAgICAgTUVfQ0RfMTIpKQpgYGAKCkZvcnRhbGV6YSBkZWwgZW5sYWNlCgpgYGB7cn0KcHN5Y2g6OmFscGhhKGJhcnJlcmFfdGlkeSAlPiUgCiAgICAgICAgc2VsZWN0KEZSXzAxLCAKICAgICAgICAgICAgICAgRlJfMDIsIAogICAgICAgICAgICAgICBGUl8wMykpCmBgYAoKRklOVEVDSAoKYGBge3J9CnBzeWNoOjphbHBoYShiYXJyZXJhX3RpZHkgJT4lIAogICAgICAgIHNlbGVjdChGSV8wMiwgCiAgICAgICAgICAgICAgIEZJXzAzLCAKICAgICAgICAgICAgICAgRklfMDQsCiAgICAgICAgICAgICAgIEZJXzA1KSkKYGBgCgojIFBMUy1TRU0gTW9kZWwKCkNyZWFtb3MgZWwgbW9kZWxvCgpgYGB7cn0KYmFycmVyYV9tb2RlbF9tbSA8LSAKICBtYXRyaXgoYygKICAgICJNRSIsICJNRV9DRF8wMSIsCiAgICAiTUUiLCAiTUVfQ0RfMDIiLAogICAgIk1FIiwgIk1FX0NEXzAzIiwKICAgICJNRSIsICJNRV9DRF8wNCIsCiAgICAiTUUiLCAiTUVfQ0RfMDUiLCAKICAgICJNRSIsICJNRV9DRF8wNiIsCiAgICAiTUUiLCAiTUVfQ0RfMDciLAogICAgIk1FIiwgIk1FX0NEXzA4IiwKICAgICJNRSIsICJNRV9DRF8wOSIsCiAgICAiTUUiLCAiTUVfQ0RfMTAiLAogICAgIk1FIiwgIk1FX0NEXzExIiwKICAgICJNRSIsICJNRV9DRF8xMiIsCiAgICAiRVIiLCAiY29uc3RyYWludCIsCiAgIyAgIkVSIiwgImNsdXN0ZXJpbmciLAogICAjICJFUiIsICJjZW50cmFsaXR5IiwgIyBjYXJnYXMgcG9yIGRlYmFqbyBkZSAwLjMgCiAgIyAiRVIiLCAiZGVuc2l0eSIsCiAgICAiRlIiLCAiRlJfMDEiLAogICAgIkZSIiwgIkZSXzAyIiwKICAgICJGUiIsICJGUl8wMyIsCiAgICAiRkkiLCAiRklfMDIiLAogICAgIkZJIiwgIkZJXzAzIiwKICAgICJGSSIsICJGSV8wNCIsCiAgICAiRkkiLCAiRklfMDUiKSwKICAgIG5jb2wgPSAyLCBieXJvdyA9IFRSVUUKICApCmBgYAoKYGBge3J9CmJhcnJlcmFfbW9kZWxfc20gPC0gCiAgbWF0cml4KGMoCiAgICAiTUUiLCAiRVIiLAogICAgIk1FIiwgIkZSIiwKICAgICJNRSIsICJGSSIsCiAgICAiRVIiLCAiRkkiLAogICAgIkZSIiwgIkZJIiksCiAgICBuY29sID0gMiwgYnlyb3cgPSBUUlVFCiAgKQpgYGAKCiMgQW7DoWxpc2lzIGRlbCBtb2RlbG8KCmBgYHtyfQpiYXJyZXJhX1BMU19tb2QgPC0gCiAgcGxzbShkYXRhID0gYmFycmVyYV90aWR5LCAKICAgICAgIHN0cnVjbW9kID0gYmFycmVyYV9tb2RlbF9zbSwgCiAgICAgICBtZWFzdXJlbW9kID0gYmFycmVyYV9tb2RlbF9tbSkKYGBgCgpgYGB7cn0KYmFycmVyYV9QTFNfZml0IDwtIAogIHNlbXBscyhtb2RlbCA9IGJhcnJlcmFfUExTX21vZCwgCiAgICAgICAgIGRhdGEgPSBiYXJyZXJhX3RpZHkpCmBgYAoKYGBge3J9CnBsc0xvYWRpbmdzKGJhcnJlcmFfUExTX2ZpdCkKYGBgCgpDYWRhIHZhcmlhYmxlIGxhdGVudGUgdGllbmUgdW4gY2FyZ2EgZnVlcnRlIGNvbiBzdSB2YXJpYWJsZSBtYW5pZmllc3RhLCBzaSBzdSBjYXJnYSBlc3TDoSBwb3IgZW5jaW1hIGRlIDAuMyBvIDAuNSBwYXJhIHRvZGFzIGxhcyB2YXJpYWJsZXMgbWFuaWZpZXN0YXMuIFBvciBsbyB0YW50bywgbm8gbm9zIHByZW9jdXBhbW9zIHBvciBlbCB0YW1hw7FvIGRlIGxhIG11ZXN0cmEgbyBsYSBjb25maWFiaWxpZGFkIGVuIGxhcyBtZWRpZGFzLgoKQWhvcmEgZXhhbWluYW1vcyBsb3MgY29lZmljaWVudGVzIGVzdHJ1Y3R1cmFsZXMgZW50cmUgdmFyaWFibGVzIGxhdGVudGVzCgpgYGB7cn0KcGF0aENvZWZmKGJhcnJlcmFfUExTX2ZpdCkKYGBgCgpFbiBlc3RhIHRhYmxhIG1vc3RyYW1vcyBxdWUgZWwgTUUgaW5mbHV5ZSBwb3NpdGl2YW1lbnRlIGVuIEVSLCBGUiB5IEZJLiAKU2luIGVtYmFyZ28sIEVSIHkgRlIgbm8gaW5mbHV5ZW4gZW4gcXVlIHVuIGVtcHJlbmRlZG9yIGFkb3B0ZSBGSU5URUNICgojIFZpc3VhbGl6YW5kbyBlbCBtb2RlbG8KCmBgYHtyfQpwYXRoRGlhZ3JhbShiYXJyZXJhX1BMU19maXQsIAogICAgICAgICAgICBmaWxlID0gImJhcnJlcmFfUExTX2ZpdCIsIAogICAgICAgICAgICBmdWxsID0gRkFMU0UsIAogICAgICAgICAgICBkaWdpdHMgPSAyLCAKICAgICAgICAgICAgZWRnZS5sYWJlbHMgPSAidmFsdWVzIiwgCiAgICAgICAgICAgIG91dHB1dC50eXBlID0gImdyYXBoaWNzIiwgCiAgICAgICAgICAgIGdyYXBoaWNzLmZtdCA9ICJwZGYiKQpgYGAKCiMgRXZhbHVhbmRvIGVsIG1vZGVsbyBQTFMtU0VNCgpDb21vIGxvcyBtb2RlbG9zIGRlIFBMUy1TRU0gbm8gZXZhbHVhbiBlbCBhanVzdGUgZGVsIG1vZGVsbyBlbiBnZW5lcmFsLCBzZSBtb3N0cmFyw6EgZG9zIG3DqXRvZG9zIHBvciBsb3MgY3VhbGVzIHNlIHB1ZWRlIGVudGVuZGVyIHN1IGNvbXBvcnRhbWllbnRvLgoKIyBSZXZpc2FuZG8gbG9zIHZhbG9yZXMgZGUgUjIKCmBgYHtyfQpyU3F1YXJlZChiYXJyZXJhX1BMU19maXQpCmBgYAoKTG9zIFIyIGRpZXJvbiBhbHRvcyBlbiB0b2RhcyBsYXMgdmFyaWFibGVzIGxhdGVudGVzIG1lbm9zIHBhcmEgTUUuCkVzIHBvciBlc3RvIHF1ZSBlcyBpbXBvcnRhbnRlIHV0aWxpemFyIG3DoXMgbcOpdG9kb3MgcGFyYSB2YWxpZGFyIGVsIG1vZGVsby4KCiMgSGFjaWVuZG8gdW4gYm9vdHN0cmFwcGluZwoKYGBge3J9CnNldC5zZWVkKDA0NDYwKQpiYXJyZXJhX1BMU19ib290IDwtIAogIGJvb3RzZW1wbHMoYmFycmVyYV9QTFNfZml0LCAKICAgICAgICAgICAgIG5ib290ID0gNTAwLCAKICAgICAgICAgICAgIHN0YXJ0ID0gIm9uZXMiKQpgYGAKClNvbG8gZWwgNi4yJSBkZSBsb3MgbW9kZWxvcyBubyBzZSBwdWRpZXJvbiBnZW5lcmFyIGEgdHJhdsOpcyBkZSBlc3RhIHTDqWNuaWNhLiBFc3RvIHF1aWVyZSBkZWNpciBxdWUgZWwgbW9kZWxvIGVuIGdlbmVyYWwgc2UgcHVkZSBjb25zaWRlcmFyIGJ1ZW5vLiBUYW1iacOpbiBlcyBpbXBvcnRhbnRlIHZlciBsb3MgcmVzdXRsYWRvcyBkZSB0b2RvcyBsb3MgbW9kZWxvcyBwYXJhIGNvbXBhcmFybG9zIGVudHJlIHNpLgoKTGFzIGzDrW5lYXMgZ3Jpc2VzIGVuIGxhIHNpZ3VpZW50ZSBmaWd1cmEgcmVwcmVzZW50YW4gYm9vdHN0cmFwIGVzdGltYWRvcyBkZSBmb3JtYSBpbmRpdmlkdWFsLCBsYXMgbMOtbmVhcyByb2phcyBsYSBtZWRpYW5hIChsw61uZWEgc8OzbGlkYSkgeSBsb3MgaW50ZXJ2YWxvcyBkZSBjb25maWFuemEgYSB1biA5NSUgKGzDrW5lYXMgcHVudGVhZGFzKS4gRXN0YSBncsOhZmljYSBzZSBsZWUgYW5hbGl6YW5kbyBsYSBkaXNwZXJzacOzbiBhIHRyYXbDqXMgZGUgbGFzIGzDrW5lYXMgaG9yaXpvbnRhbGVzLiBQb3IgZWplbXBsbywgbGFzIGdyYW4gbWF5b3LDrWEgZGUgZXN0aW1hY2lvbmVzIHNlIHViaWNhbiBhIGxhIGRlcmVjaGEgZGVsIHB1bnRvIDAgKGzDrW5lYSBwdW50ZWFkYSB2ZXJ0aWNhbCkgcGFyYSBNRSwgbG8gdXFlIHF1aWVyZSBkZWNpciBxdWUgbGEgZ3JhbiBtYXlvcsOtYSBkZSByZXN1bHRhZG9zIGRpY2VuIHF1ZSBoYXkgdW5hIHJlbGFjacOzbiBwb3NpdGl2YSBlbnRyZSBNRSB5IEZJLCBGUiB5IEVSLiBTaW4gZW1iYXJnbywgZXN0YSBncsOhZmljYSBjb25maXJtYSBxdWUgbGEgZ3JhbiBtYXlvcsOtYSBkZSBkYXRvcyBwYXJhIEZSIHkgRVIgc29uIG5lZ2F0aXZvcyB2YWxpZGFuZG8gcXVlIGxhIGZvcnRhbGV6YSBkZWwgZW5sYWNlIHkgbGEgZXN0cnVjdHVyYSBkZSBsYSByZWQgc29jaWFsIG5vIGluZmx1eWVuIGVuIGxhIGFkb3BjacOzbiBkZSBGSU5URUNILgoKYGBge3J9CnBhcmFsbGVscGxvdChiYXJyZXJhX1BMU19ib290LCAKICAgICAgICAgICAgIHJlZmxpbmVzQXQgPSAwLCAKICAgICAgICAgICAgIGFscGhhID0gMC44LCAKICAgICAgICAgICAgIHZhcm5hbWVzID0gYXR0cihiYXJyZXJhX1BMU19ib290JHQsICJwYXRoIilbMjE6MjVdLCAKICAgICAgICAgICAgIG1haW4gPSAiQ2FtaW5vcyBkZSBjb2VmaWNpZW50ZXMgaW4gNTAwIFBMUyBib3N0cmFwIGludGVyYWNjaW9uZXMoTiA9IDExMikiKQpgYGAKCgoK