Arbejdsmarked


Arbejdsstyrken
ARXSTK2_raw <- 
  statgl_url("ARXSTK2", lang = language) |> 
  statgl_fetch(
    aar       = px_top(),
    udd_grp   = c("AA", "10", "20", "30", "40", "50"),
    opg_var   = px_all(),
    .col_code = TRUE
  ) %>% 
  as_tibble()

ARXSTK2 <-
  ARXSTK2_raw %>% 
  mutate(
    udd_grp = udd_grp %>% factor(levels = unique(udd_grp)),
    opg_var = opg_var %>% fct_rev()
  ) %>% 
  spread(udd_grp, value)


ARXSTK2 %>% 
  select(-aar) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = ARXSTK2[["aar"]] %>% table()) |> 
  row_spec(1, bold = T)
Alle Folkeskole Gymnasieuddannelse Erhvervsuddannelse: Samlet Suppleringskursus Videregående uddannelse
2024
Samlet befolkning 37.054 19.864 2.266 9.172 519 5.233
Personer uden for arbejdsstyrken i gennemsnit pr. måned (samlet befolkning - arbejdsstyrke) 8.075 5.990 573 1.114 84 314
Ledighed i gennemsnit pr. måned 963 803 23 121 3 13
Beskæftigelse i gennemsnit pr. måned 28.015 13.071 1.669 7.937 432 4.906
Arbejdsstyrken i gennemsnit pr. måned (beskæftigelse + ledighed) 28.979 13.874 1.692 8.058 435 4.919


Se Statistikbankens tabel: ARXSTK2

Arbejdssøgende


ARXLED2_raw <- 
  statgl_url("ARXLED2", lang = language) %>%
  statgl_fetch(
    aar       = px_top(2),
    md        = px_all(),
    koen      = 3,
    type_k    = "A",
    alderskat = px_all(),
    .col_code = TRUE
  ) %>% 
  as_tibble()

ARXLED2 <- 
  ARXLED2_raw %>% 
  filter(aar <= Sys.time() %>% year() - 1) %>% 
  mutate(
    alderskat = alderskat %>% factor(levels = unique(alderskat)),
    md = md %>% factor(levels = unique(md))
  ) %>% 
  spread(md, value) %>% 
  unite(combi, type_k, koen, sep = ", ")

ARXLED2 %>% 
  select(-c(aar, combi)) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = ARXLED2[["aar"]] %>% table())
Januar Februar Marts April Maj Juni Juli August September Oktober November December
2024
18-19 86 78 73 67 68 68 69 54 43 60 70 96
20-24 200 193 184 200 173 150 137 126 115 142 178 207
25-29 200 181 182 185 169 157 158 145 126 146 179 220
30-34 219 189 184 203 187 170 157 160 126 153 176 217
35-39 193 160 171 175 147 132 115 131 109 131 147 187
40-44 173 148 139 147 146 121 114 110 114 137 153 160
45-49 123 104 95 115 101 95 84 85 77 96 107 120
50-54 160 113 123 131 116 99 98 92 90 107 125 147
55-59 261 209 189 214 192 164 154 134 138 166 210 240
60+ 208 147 150 166 176 158 144 141 133 175 209 219
2025
18-19 130 109 108 105 102 88 89 58 48 51 65 77
20-24 263 246 231 230 220 208 188 139 107 122 165 209
25-29 260 238 234 230 219 189 168 133 117 134 170 190
30-34 256 240 235 221 198 176 167 152 130 159 182 192
35-39 224 208 223 218 181 164 138 117 131 137 164 185
40-44 207 189 193 188 163 135 133 105 98 127 143 158
45-49 147 129 123 135 127 129 122 104 107 118 130 142
50-54 166 144 131 146 129 121 103 88 83 86 104 114
55-59 264 226 237 253 238 222 200 168 176 176 187 193
60+ 242 236 235 236 204 199 199 182 189 213 216 240


Se Statistikbankens tabel: ARXLED2

ARXLEDVAR_raw <- 
  statgl_url("ARXLEDVAR", lang = language) %>% 
  statgl_fetch(
    koen      = 0,
    Alderskat = "A",
    opg_var   = px_all(),
    taar_kvar = px_top(1),
    kvar_led  = px_all(),
    .col_code = TRUE
  ) %>% 
  as_tibble()

ARXLEDVAR <- 
  ARXLEDVAR_raw %>% 
  unite(combi, Alderskat, koen, sep = ", ") %>% 
  mutate(
    kvar_led = kvar_led %>% fct_inorder(),
    opg_var = opg_var %>% fct_inorder()
  ) %>% 
  spread(opg_var, value)

ARXLEDVAR %>% 
  select(-c(combi, taar_kvar)) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = ARXLEDVAR[["taar_kvar"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Antal personer Procentandel
2025Q4
Alle 4.525 100,0
1-3 måneder 2.352 52,0
4-6 måneder 1.035 22,9
7-9 måneder 606 13,4
10-12 måneder 532 11,8


Se Statistikbankens tabel: ARXSTK1

Beskæftigelsen
url <- paste0("https://bank.stat.gl/api/v1/", language, "/Greenland/AR/AR30/ARXBFB01.px")

ARXBFB1_raw <- 
  #url |> 
  statgl_url("ARXBFB01", lang = language) |> 
  statgl_fetch(
    aar       = px_top(),
    beskbrch  = px_all(),
    sex       = "A",
    opg_var   = "G",
    bybygd    = px_all(),
    .col_code = TRUE
  ) %>% 
  as_tibble()

ARXBFB1 <- 
  ARXBFB1_raw %>% 
  arrange(-value) %>% 
  mutate(
    beskbrch = beskbrch %>% fct_inorder(),
    bybygd = bybygd %>% fct_inorder()
  ) %>% 
  spread(bybygd, value) %>% 
  unite(combi, opg_var, aar, sep = ", ")

ARXBFB1 %>% 
  select(-c(combi, sex)) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = ARXBFB1[["combi"]] %>% table()) %>% 
  row_spec(1, bold = TRUE) 
Alle Byer Bygder m.m.
Hovedbeskæftigelse i gennemsnit pr. måned, 2024
Alle brancher 29.232 25.902 3.331
Offentlig forvaltning og service 12.836 11.603 1.233
Social beskyttelse (COFOG 10) 5.073 4.667 406
Fiskeri og fiskerirelateret industri og handel 4.326 3.169 1.157
Engroshandel og detailhandel 3.114 2.743 371
Undervisning (COFOG 9) 2.500 2.196 303
Familie og børne (COFOG 10.40) 2.466 2.246 220
Bygge- og anlægsvirksomhed 2.185 2.131 55
Transport og godshåndtering 2.068 1.892 176
Folkeskolen og lign. (COFOG 9.10) 1.573 1.275 298
Social beskyttelse andet (COFOG 10.x) 1.352 1.303 49
Sundhedsvæsen (COFOG 7) 1.304 1.226 78
Alderdom (COFOG 10.20) 1.256 1.118 138
Generelle offentlige tjenester (COFOG 1) 1.234 1.110 125
Overnatningsfaciliteter og restaurationsvirksomhed 922 847 75
Andet (COFOG x) 854 783 71
Uoplyst 787 746 41
Ungdomsuddannelsesniveau (COFOG 9.20) 630 626 4
Økonomiske anliggender (COFOG 4) 616 500 116
Information og kommunikation 532 527 6
Offentlig orden og sikkerhed (COFOG3) 529 505 24
Administrative tjenesteydelser og hjælpetjenester 469 403 66
Energi- og vandforsyning 431 335 96
Fritid, kultur og religion (COFOG 8) 364 318 46
Øvrige serviceerhverv 315 314 1
Pengeinstitut og finansvirksomhed 305 299 6
Undervisning andet (COFOG 9.x) 297 296 2
Liberale, videnskabelige og tekniske tjenesteydelser 282 281 1
Miljøbeskyttelse (COFOG 5) 269 221 49
Fast ejendom 256 253 2
Fremstillingsvirksomhed 227 221 6
Råstofindvinding 93 84 9
Landbrug, skovbrug og landbrugsrelateret industri og handel 85 54 31
Forsvar (COFOG 2) 63 47 15
Boliger og offentlige faciliteter (COFOG 6) 30 30 NA


Se Statistikbankens tabel: ARXBFB01

Ledigheden
url <- paste0("https://bank.stat.gl/api/v1/", language, "/Greenland/AR/AR40/ARXLED6.px")

ARXLED6_raw <- 
  statgl_url("ARXLED6", lang = language) |> 
  statgl_fetch(
    aar       = px_top(5),
    udd_grp   = px_all(),
    opg_var   = "P",
    .col_code = TRUE
  ) %>% 
  as_tibble()

ARXLED6_raw %>% 
  mutate(
    udd_grp = udd_grp %>% fct_inorder(),
    aar = aar %>% fct_inorder()
  ) %>% 
  spread(aar, value) %>%
  select(-opg_var) |> 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  row_spec(1, bold = TRUE) |> 
  add_footnote(ARXLED6_raw[[3]][1], notation = "symbol")
2020 2021 2022 2023 2024
Alle 4,5 3,7 3,2 3,0 3,3
Folkeskole 7,5 6,2 5,5 5,1 5,8
Gymnasieuddannelse 1,4 0,9 0,9 1,1 1,4
Erhvervsuddannelse: Samlet 2,3 1,8 1,5 1,4 1,5
Erhvervsuddannelse: Kunst og humaniora 3,6 2,9 2,0 0,7 1,8
Erhvervsuddannelse: Erhverv, administration og jura 1,9 1,5 1,3 0,9 1,1
Erhvervsuddannelse: Ingeniørvidenskab, produktion og konstruktion 1,9 1,6 1,6 1,4 1,3
Erhvervsuddannelse: Landbrug, skovbrug, fiskeri og veterinær 6,5 5,2 4,0 3,4 3,6
Erhvervsuddannelse: Sundhed og velfærd 1,7 1,4 1,1 1,0 1,2
Erhvervsuddannelse: Servicesektor 3,2 2,1 1,8 1,9 2,3
Erhvervsuddannelse: Øvrige 1,6 0,7 0,3 0,5 0,8
Suppleringskursus 0,9 0,6 0,4 0,2 0,7
Videregående uddannelse 0,4 0,3 0,4 0,4 0,3
* Ledighedsprocent i gennemsnit pr. måned


Se Statistikbankens tabel: ARXLED7


Sidst opdateret: 15. januar 2026
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkQVIkdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkQVIkc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMTogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJBUlhTVEsyIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgQVJYU1RLMn0NCg0KQVJYU1RLMl9yYXcgPC0gDQogIHN0YXRnbF91cmwoIkFSWFNUSzIiLCBsYW5nID0gbGFuZ3VhZ2UpIHw+IA0KICBzdGF0Z2xfZmV0Y2goDQogICAgYWFyICAgICAgID0gcHhfdG9wKCksDQogICAgdWRkX2dycCAgID0gYygiQUEiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiKSwNCiAgICBvcGdfdmFyICAgPSBweF9hbGwoKSwNCiAgICAuY29sX2NvZGUgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQpBUlhTVEsyIDwtDQogIEFSWFNUSzJfcmF3ICU+JSANCiAgbXV0YXRlKA0KICAgIHVkZF9ncnAgPSB1ZGRfZ3JwICU+JSBmYWN0b3IobGV2ZWxzID0gdW5pcXVlKHVkZF9ncnApKSwNCiAgICBvcGdfdmFyID0gb3BnX3ZhciAlPiUgZmN0X3JldigpDQogICkgJT4lIA0KICBzcHJlYWQodWRkX2dycCwgdmFsdWUpDQoNCg0KQVJYU1RLMiAlPiUgDQogIHNlbGVjdCgtYWFyKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gQVJYU1RLMltbImFhciJdXSAlPiUgdGFibGUoKSkgfD4gDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUKQ0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIkFSWFNUSzIiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxL2MzOWRiNmIyLTkzY2QtNDY2OS04ZmFkLWRhZDE2ZDhhMGVhMSIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQo8L2RldGFpbHM+DQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JEFSJHN1YjJbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAyOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIkFSWExFRDIiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBBUlhMRUQyfQ0KDQpBUlhMRUQyX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiQVJYTEVEMiIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQogIHN0YXRnbF9mZXRjaCgNCiAgICBhYXIgICAgICAgPSBweF90b3AoMiksDQogICAgbWQgICAgICAgID0gcHhfYWxsKCksDQogICAga29lbiAgICAgID0gMywNCiAgICB0eXBlX2sgICAgPSAiQSIsDQogICAgYWxkZXJza2F0ID0gcHhfYWxsKCksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KQVJYTEVEMiA8LSANCiAgQVJYTEVEMl9yYXcgJT4lIA0KICBmaWx0ZXIoYWFyIDw9IFN5cy50aW1lKCkgJT4lIHllYXIoKSAtIDEpICU+JSANCiAgbXV0YXRlKA0KICAgIGFsZGVyc2thdCA9IGFsZGVyc2thdCAlPiUgZmFjdG9yKGxldmVscyA9IHVuaXF1ZShhbGRlcnNrYXQpKSwNCiAgICBtZCA9IG1kICU+JSBmYWN0b3IobGV2ZWxzID0gdW5pcXVlKG1kKSkNCiAgKSAlPiUgDQogIHNwcmVhZChtZCwgdmFsdWUpICU+JSANCiAgdW5pdGUoY29tYmksIHR5cGVfaywga29lbiwgc2VwID0gIiwgIikNCg0KQVJYTEVEMiAlPiUgDQogIHNlbGVjdCgtYyhhYXIsIGNvbWJpKSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IEFSWExFRDJbWyJhYXIiXV0gJT4lIHRhYmxlKCkpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiQVJYTEVEMiIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvOGRjMmMyMWQtODNjMy00NjlmLWE3YTEtOWVhYTNmOWUxOTkxIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMzogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJBUlhMRURWQVIiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBBUlhMRURWQVJ9DQoNCkFSWExFRFZBUl9yYXcgPC0gDQogIHN0YXRnbF91cmwoIkFSWExFRFZBUiIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lIA0KICBzdGF0Z2xfZmV0Y2goDQogICAga29lbiAgICAgID0gMCwNCiAgICBBbGRlcnNrYXQgPSAiQSIsDQogICAgb3BnX3ZhciAgID0gcHhfYWxsKCksDQogICAgdGFhcl9rdmFyID0gcHhfdG9wKDEpLA0KICAgIGt2YXJfbGVkICA9IHB4X2FsbCgpLA0KICAgIC5jb2xfY29kZSA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCkFSWExFRFZBUiA8LSANCiAgQVJYTEVEVkFSX3JhdyAlPiUgDQogIHVuaXRlKGNvbWJpLCBBbGRlcnNrYXQsIGtvZW4sIHNlcCA9ICIsICIpICU+JSANCiAgbXV0YXRlKA0KICAgIGt2YXJfbGVkID0ga3Zhcl9sZWQgJT4lIGZjdF9pbm9yZGVyKCksDQogICAgb3BnX3ZhciA9IG9wZ192YXIgJT4lIGZjdF9pbm9yZGVyKCkNCiAgKSAlPiUgDQogIHNwcmVhZChvcGdfdmFyLCB2YWx1ZSkNCg0KQVJYTEVEVkFSICU+JSANCiAgc2VsZWN0KC1jKGNvbWJpLCB0YWFyX2t2YXIpKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gQVJYTEVEVkFSW1sidGFhcl9rdmFyIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKQ0KDQoNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIkFSWFNUSzEiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzc1MjQ0YTQ5LWZjMjktNGNiYS05NDFhLTkwZWU0NjYzYWM0NyIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQo8L2RldGFpbHM+DQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JEFSJHN1YjNbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+IA0KPGJyPg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgJypUYWJlbCA0Oioge3N0YXRnbF9tZXRhKGdsdWU6OmdsdWUoImh0dHBzOi8vYmFuay5zdGF0LmdsL2FwaS92MS97bGFuZ3VhZ2V9L0dyZWVubGFuZC9BUi9BUjMwL0FSWEJGQjAxLnB4IikpIHw+IHBsdWNrKCJ0aXRsZSIpfScgfD4gZ2x1ZTo6Z2x1ZSgpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgQVJYQkZCMDF9DQoNCnVybCA8LSBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsL2FwaS92MS8iLCBsYW5ndWFnZSwgIi9HcmVlbmxhbmQvQVIvQVIzMC9BUlhCRkIwMS5weCIpDQoNCkFSWEJGQjFfcmF3IDwtIA0KICAjdXJsIHw+IA0KICBzdGF0Z2xfdXJsKCJBUlhCRkIwMSIsIGxhbmcgPSBsYW5ndWFnZSkgfD4gDQogIHN0YXRnbF9mZXRjaCgNCiAgICBhYXIgICAgICAgPSBweF90b3AoKSwNCiAgICBiZXNrYnJjaCAgPSBweF9hbGwoKSwNCiAgICBzZXggICAgICAgPSAiQSIsDQogICAgb3BnX3ZhciAgID0gIkciLA0KICAgIGJ5YnlnZCAgICA9IHB4X2FsbCgpLA0KICAgIC5jb2xfY29kZSA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCkFSWEJGQjEgPC0gDQogIEFSWEJGQjFfcmF3ICU+JSANCiAgYXJyYW5nZSgtdmFsdWUpICU+JSANCiAgbXV0YXRlKA0KICAgIGJlc2ticmNoID0gYmVza2JyY2ggJT4lIGZjdF9pbm9yZGVyKCksDQogICAgYnlieWdkID0gYnlieWdkICU+JSBmY3RfaW5vcmRlcigpDQogICkgJT4lIA0KICBzcHJlYWQoYnlieWdkLCB2YWx1ZSkgJT4lIA0KICB1bml0ZShjb21iaSwgb3BnX3ZhciwgYWFyLCBzZXAgPSAiLCAiKQ0KDQpBUlhCRkIxICU+JSANCiAgc2VsZWN0KC1jKGNvbWJpLCBzZXgpKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gQVJYQkZCMVtbImNvbWJpIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKSANCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJBUlhCRkIwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvMDFhZjU5MzQtZTlhYi00ZTcxLTkwZWEtNWYwODBjMTRiYWMyIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCjwvZGV0YWlscz4gDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JEFSJHN1YjRbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgNTogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJBUlhMRUQ2IiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgQVJYTEVENn0NCg0KdXJsIDwtIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2wvYXBpL3YxLyIsIGxhbmd1YWdlLCAiL0dyZWVubGFuZC9BUi9BUjQwL0FSWExFRDYucHgiKQ0KDQpBUlhMRUQ2X3JhdyA8LSANCiAgc3RhdGdsX3VybCgiQVJYTEVENiIsIGxhbmcgPSBsYW5ndWFnZSkgfD4gDQogIHN0YXRnbF9mZXRjaCgNCiAgICBhYXIgICAgICAgPSBweF90b3AoNSksDQogICAgdWRkX2dycCAgID0gcHhfYWxsKCksDQogICAgb3BnX3ZhciAgID0gIlAiLA0KICAgIC5jb2xfY29kZSA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCkFSWExFRDZfcmF3ICU+JSANCiAgbXV0YXRlKA0KICAgIHVkZF9ncnAgPSB1ZGRfZ3JwICU+JSBmY3RfaW5vcmRlcigpLA0KICAgIGFhciA9IGFhciAlPiUgZmN0X2lub3JkZXIoKQ0KICApICU+JSANCiAgc3ByZWFkKGFhciwgdmFsdWUpICU+JQ0KICBzZWxlY3QoLW9wZ192YXIpIHw+IA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKSB8PiANCiAgYWRkX2Zvb3Rub3RlKEFSWExFRDZfcmF3W1szXV1bMV0sIG5vdGF0aW9uID0gInN5bWJvbCIpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiQVJYTEVENyIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvZmNhOWEzMjYtZDYwZS00OWE3LTgwY2EtZGI0MWUxNzdiZGUyIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCjwvZGV0YWlscz4gDQoNCg0KDQo8aHIgc3R5bGU9ImJvcmRlcjoxcHggcmlkZ2UgbGlnaHRncmF5Ij4gPC9ocj4NCjxjZW50ZXI+IDxzcGFuIHN0eWxlPSdjb2xvcjojRDNEM0QzOyBmb250LXNpemU6OTAlOyc+IGByIHBhc3RlKHR4dCR1cGRhdGVbbGFuZ3VhZ2VdLCBmb3JtYXQoU3lzLkRhdGUoKSwgIiVkLiAlQiAlWSIpKWAgPC9zcGFuPiA8L2NlbnRlcj4NCg0KDQoNCg0KPHNjcmlwdD4NCnZhciBhY2MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhY2NvcmRpb24iKTsNCnZhciBpOw0KDQpmb3IgKGkgPSAwOyBpIDwgYWNjLmxlbmd0aDsgaSsrKSB7DQogIGFjY1tpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCkgew0KICAgIHRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7DQogICAgdmFyIHBhbmVsID0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmc7DQogICAgaWYgKHBhbmVsLnN0eWxlLm1heEhlaWdodCkgew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsNCiAgICB9IGVsc2Ugew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gcGFuZWwuc2Nyb2xsSGVpZ2h0ICsgInB4IjsNCiAgICB9IA0KICB9KTsNCn0NCjwvc2NyaXB0Pg0KDQoNCg==