Arbejdsmarked


Arbejdsstyrken
url <- paste0("https://bank.stat.gl/api/v1/", language, "/Greenland/AR/AR10/ARXSTK2.px")

ARXSTK2_raw <- 
  url |> 
  statgl_fetch(
    time                 = px_top(),
    education            = c("AA", "10", "20", "30", "40", "50"),
    "inventory variable" = px_all(),
    .col_code            = TRUE
  ) %>% 
  as_tibble()

ARXSTK2 <-
  ARXSTK2_raw %>% 
  mutate(
    education = education %>% factor(levels = unique(education)),
    `inventory variable` = `inventory variable` %>% fct_rev()
  ) %>% 
  spread(education, value)


ARXSTK2 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = ARXSTK2[["time"]] %>% table()) |> 
  row_spec(1, bold = T)
Alle Folkeskole Gymnasieuddannelse Erhvervsuddannelse: Samlet Suppleringskursus Videregående uddannelse
2022
Samlet befolkning 37.038 20.503 2.036 8.068 1.449 4.982
Personer uden for arbejdsstyrken i gennemsnit pr. måned (samlet befolkning - arbejdsstyrke) 8.231 6.232 481 1.017 187 314
Ledighed i gennemsnit pr. måned 931 776 14 108 15 17
Beskæftigelse i gennemsnit pr. måned 27.877 13.495 1.542 6.943 1.246 4.651
Arbejdsstyrken i gennemsnit pr. måned (beskæftigelse + ledighed) 28.808 14.272 1.555 7.051 1.262 4.668


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
2023
18-19 68 60 68 53 49 53 42 32 29 34 47 60
20-24 183 134 172 145 118 124 117 96 87 105 133 141
25-29 209 168 159 139 117 111 116 100 85 100 124 141
30-34 242 200 214 185 151 146 139 121 109 122 141 173
35-39 194 168 154 136 124 119 115 103 101 102 121 148
40-44 163 156 138 115 120 103 109 96 97 100 120 128
45-49 128 109 120 97 88 75 70 68 63 74 84 97
50-54 174 147 156 134 111 112 111 97 85 94 102 113
55-59 240 193 203 203 207 176 156 155 152 149 193 224
60+ 208 181 198 190 176 149 141 139 140 145 169 175


Se Statistikbankens tabel: ARXLED2

ARXLEDVAR_raw <- 
  statgl_url("ARXLEDVAR", lang = language) %>%
  statgl_fetch(
    gender               = 0,
    age                  = "A",
    "inventory variable" = px_all(),
    time                 = px_top(1),
    "number of months"   = px_all(),
    .col_code = TRUE
  ) %>% 
  as_tibble()

ARXLEDVAR <- 
  ARXLEDVAR_raw %>% 
  unite(combi, age, gender, sep = ", ") %>% 
  mutate(
    `number of months` = `number of months` %>% fct_inorder(),
    `inventory variable` = `inventory variable` %>% fct_inorder()
  ) %>% 
  spread(`inventory variable`, value)

ARXLEDVAR %>% 
  select(-c(combi, time)) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = ARXLEDVAR[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Antal personer Procentandel
2023Q4
Alle 4.479 100,0
1-3 måneder 2.948 65,8
4-6 måneder 844 18,8
7-9 måneder 345 7,7
10-12 måneder 342 7,6


Se Statistikbankens tabel: ARXSTK1

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

ARXBFB1_raw <- 
  url |> 
  statgl_fetch(
    time                 = px_top(),
    industry             = px_all(),
    gender               = "A",
    "inventory variable" = "G",
    "place of residence" = px_all(),
    .col_code            = TRUE
  ) %>% 
  as_tibble()

ARXBFB1 <- 
  ARXBFB1_raw %>% 
  arrange(-value) %>% 
  mutate(
    industry = industry %>% fct_inorder(),
    `place of residence` = `place of residence` %>% fct_inorder()
  ) %>% 
  spread(`place of residence`, value) %>% 
  unite(combi, `inventory variable`, time, sep = ", ")

ARXBFB1 %>% 
  select(-c(combi, gender)) %>% 
  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, 2022
Alle brancher 28.992 25.493 3.499
Offentlig forvaltning og service 12.873 11.540 1.333
Fiskeri og fiskerirelateret industri og handel 4.343 3.125 1.218
Engroshandel og detailhandel 3.075 2.702 373
Bygge- og anlægsvirksomhed 2.308 2.258 50
Transport og godshåndtering 2.043 1.807 236
Overnatningsfaciliteter og restaurationsvirksomhed 829 794 34
Uoplyst 594 558 36
Information og kommunikation 563 555 8
Energi- og vandforsyning 417 326 91
Administrative tjenesteydelser og hjælpetjenester 401 338 63
Øvrige serviceerhverv 318 316 3
Fast ejendom 298 292 5
Liberale, videnskabelige og tekniske tjenesteydelser 298 296 2
Fremstillingsvirksomhed 228 225 2
Pengeinstitut og finansvirksomhed 201 201 NA
Råstofindvinding 106 98 8
Landbrug, skovbrug og landbrugsrelateret industri og handel 98 62 36


Se Statistikbankens tabel: ARXBFB01

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

ARXLED6_raw <- 
  url |> 
  statgl_fetch(
    time      = px_top(5),
    education = px_all(),
    "inventory variable" = "P",
    .col_code = TRUE
  ) %>% 
  as_tibble()

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


Se Statistikbankens tabel: ARXLED7


Sidst opdateret: 17. april 2024
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkQVIkdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkQVIkc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMTogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJBUlhTVEsyIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgQVJYU1RLMn0NCg0KdXJsIDwtIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2wvYXBpL3YxLyIsIGxhbmd1YWdlLCAiL0dyZWVubGFuZC9BUi9BUjEwL0FSWFNUSzIucHgiKQ0KDQpBUlhTVEsyX3JhdyA8LSANCiAgdXJsIHw+IA0KICBzdGF0Z2xfZmV0Y2goDQogICAgdGltZSAgICAgICAgICAgICAgICAgPSBweF90b3AoKSwNCiAgICBlZHVjYXRpb24gICAgICAgICAgICA9IGMoIkFBIiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIiksDQogICAgImludmVudG9yeSB2YXJpYWJsZSIgPSBweF9hbGwoKSwNCiAgICAuY29sX2NvZGUgICAgICAgICAgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCkFSWFNUSzIgPC0NCiAgQVJYU1RLMl9yYXcgJT4lIA0KICBtdXRhdGUoDQogICAgZWR1Y2F0aW9uID0gZWR1Y2F0aW9uICU+JSBmYWN0b3IobGV2ZWxzID0gdW5pcXVlKGVkdWNhdGlvbikpLA0KICAgIGBpbnZlbnRvcnkgdmFyaWFibGVgID0gYGludmVudG9yeSB2YXJpYWJsZWAgJT4lIGZjdF9yZXYoKQ0KICApICU+JSANCiAgc3ByZWFkKGVkdWNhdGlvbiwgdmFsdWUpDQoNCg0KQVJYU1RLMiAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IEFSWFNUSzJbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKSB8PiANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFQpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiQVJYU1RLMiIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvYzM5ZGI2YjItOTNjZC00NjY5LThmYWQtZGFkMTZkOGEwZWExIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCjwvZGV0YWlscz4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkQVIkc3ViMltsYW5ndWFnZV1gIDwvc3VtbWFyeT4NCjxicj4NCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDI6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiQVJYTEVEMiIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIEFSWExFRDJ9DQoNCkFSWExFRDJfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJBUlhMRUQyIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgIGFhciAgICAgICA9IHB4X3RvcCgyKSwNCiAgICBtZCAgICAgICAgPSBweF9hbGwoKSwNCiAgICBrb2VuICAgICAgPSAzLA0KICAgIHR5cGVfayAgICA9ICJBIiwNCiAgICBhbGRlcnNrYXQgPSBweF9hbGwoKSwNCiAgICAuY29sX2NvZGUgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQpBUlhMRUQyIDwtIA0KICBBUlhMRUQyX3JhdyAlPiUgDQogIGZpbHRlcihhYXIgPD0gU3lzLnRpbWUoKSAlPiUgeWVhcigpIC0gMSkgJT4lIA0KICBtdXRhdGUoDQogICAgYWxkZXJza2F0ID0gYWxkZXJza2F0ICU+JSBmYWN0b3IobGV2ZWxzID0gdW5pcXVlKGFsZGVyc2thdCkpLA0KICAgIG1kID0gbWQgJT4lIGZhY3RvcihsZXZlbHMgPSB1bmlxdWUobWQpKQ0KICApICU+JSANCiAgc3ByZWFkKG1kLCB2YWx1ZSkgJT4lIA0KICB1bml0ZShjb21iaSwgdHlwZV9rLCBrb2VuLCBzZXAgPSAiLCAiKQ0KDQpBUlhMRUQyICU+JSANCiAgc2VsZWN0KC1jKGFhciwgY29tYmkpKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gQVJYTEVEMltbImFhciJdXSAlPiUgdGFibGUoKSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJBUlhMRUQyIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS84ZGMyYzIxZC04M2MzLTQ2OWYtYTdhMS05ZWFhM2Y5ZTE5OTEiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAzOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIkFSWExFRFZBUiIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIEFSWExFRFZBUn0NCg0KQVJYTEVEVkFSX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiQVJYTEVEVkFSIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgIGdlbmRlciAgICAgICAgICAgICAgID0gMCwNCiAgICBhZ2UgICAgICAgICAgICAgICAgICA9ICJBIiwNCiAgICAiaW52ZW50b3J5IHZhcmlhYmxlIiA9IHB4X2FsbCgpLA0KICAgIHRpbWUgICAgICAgICAgICAgICAgID0gcHhfdG9wKDEpLA0KICAgICJudW1iZXIgb2YgbW9udGhzIiAgID0gcHhfYWxsKCksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KQVJYTEVEVkFSIDwtIA0KICBBUlhMRURWQVJfcmF3ICU+JSANCiAgdW5pdGUoY29tYmksIGFnZSwgZ2VuZGVyLCBzZXAgPSAiLCAiKSAlPiUgDQogIG11dGF0ZSgNCiAgICBgbnVtYmVyIG9mIG1vbnRoc2AgPSBgbnVtYmVyIG9mIG1vbnRoc2AgJT4lIGZjdF9pbm9yZGVyKCksDQogICAgYGludmVudG9yeSB2YXJpYWJsZWAgPSBgaW52ZW50b3J5IHZhcmlhYmxlYCAlPiUgZmN0X2lub3JkZXIoKQ0KICApICU+JSANCiAgc3ByZWFkKGBpbnZlbnRvcnkgdmFyaWFibGVgLCB2YWx1ZSkNCg0KQVJYTEVEVkFSICU+JSANCiAgc2VsZWN0KC1jKGNvbWJpLCB0aW1lKSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IEFSWExFRFZBUltbInRpbWUiXV0gJT4lIHRhYmxlKCkpICU+JSANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFRSVUUpDQoNCg0KDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiQVJYU1RLMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvNzUyNDRhNDktZmMyOS00Y2JhLTk0MWEtOTBlZTQ2NjNhYzQ3Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCjwvZGV0YWlscz4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkQVIkc3ViM1tsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciAnKlRhYmVsIDQ6KiB7c3RhdGdsX21ldGEoZ2x1ZTo6Z2x1ZSgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2wvYXBpL3YxL3tsYW5ndWFnZX0vR3JlZW5sYW5kL0FSL0FSMzAvQVJYQkZCMDEucHgiKSkgfD4gcGx1Y2soInRpdGxlIil9JyB8PiBnbHVlOjpnbHVlKCkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBBUlhCRkIwMX0NCg0KdXJsIDwtIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2wvYXBpL3YxLyIsIGxhbmd1YWdlLCAiL0dyZWVubGFuZC9BUi9BUjMwL0FSWEJGQjAxLnB4IikNCg0KQVJYQkZCMV9yYXcgPC0gDQogIHVybCB8PiANCiAgc3RhdGdsX2ZldGNoKA0KICAgIHRpbWUgICAgICAgICAgICAgICAgID0gcHhfdG9wKCksDQogICAgaW5kdXN0cnkgICAgICAgICAgICAgPSBweF9hbGwoKSwNCiAgICBnZW5kZXIgICAgICAgICAgICAgICA9ICJBIiwNCiAgICAiaW52ZW50b3J5IHZhcmlhYmxlIiA9ICJHIiwNCiAgICAicGxhY2Ugb2YgcmVzaWRlbmNlIiA9IHB4X2FsbCgpLA0KICAgIC5jb2xfY29kZSAgICAgICAgICAgID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KQVJYQkZCMSA8LSANCiAgQVJYQkZCMV9yYXcgJT4lIA0KICBhcnJhbmdlKC12YWx1ZSkgJT4lIA0KICBtdXRhdGUoDQogICAgaW5kdXN0cnkgPSBpbmR1c3RyeSAlPiUgZmN0X2lub3JkZXIoKSwNCiAgICBgcGxhY2Ugb2YgcmVzaWRlbmNlYCA9IGBwbGFjZSBvZiByZXNpZGVuY2VgICU+JSBmY3RfaW5vcmRlcigpDQogICkgJT4lIA0KICBzcHJlYWQoYHBsYWNlIG9mIHJlc2lkZW5jZWAsIHZhbHVlKSAlPiUgDQogIHVuaXRlKGNvbWJpLCBgaW52ZW50b3J5IHZhcmlhYmxlYCwgdGltZSwgc2VwID0gIiwgIikNCg0KQVJYQkZCMSAlPiUgDQogIHNlbGVjdCgtYyhjb21iaSwgZ2VuZGVyKSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IEFSWEJGQjFbWyJjb21iaSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkgDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiQVJYQkZCMDEiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzAxYWY1OTM0LWU5YWItNGU3MS05MGVhLTVmMDgwYzE0YmFjMiIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQo8L2RldGFpbHM+IA0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRBUiRzdWI0W2xhbmd1YWdlXWAgPC9zdW1tYXJ5Pg0KPGJyPg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDU6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiQVJYTEVENiIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIEFSWExFRDZ9DQoNCnVybCA8LSBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsL2FwaS92MS8iLCBsYW5ndWFnZSwgIi9HcmVlbmxhbmQvQVIvQVI0MC9BUlhMRUQ2LnB4IikNCg0KQVJYTEVENl9yYXcgPC0gDQogIHVybCB8PiANCiAgc3RhdGdsX2ZldGNoKA0KICAgIHRpbWUgICAgICA9IHB4X3RvcCg1KSwNCiAgICBlZHVjYXRpb24gPSBweF9hbGwoKSwNCiAgICAiaW52ZW50b3J5IHZhcmlhYmxlIiA9ICJQIiwNCiAgICAuY29sX2NvZGUgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQpBUlhMRUQ2X3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICBlZHVjYXRpb24gPSBlZHVjYXRpb24gJT4lIGZjdF9pbm9yZGVyKCksDQogICAgdGltZSA9IHRpbWUgJT4lIGZjdF9pbm9yZGVyKCkNCiAgKSAlPiUgDQogIHNwcmVhZCh0aW1lLCB2YWx1ZSkgJT4lDQogIHNlbGVjdCgtYGludmVudG9yeSB2YXJpYWJsZWApIHw+IA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKSB8PiANCiAgYWRkX2Zvb3Rub3RlKEFSWExFRDZfcmF3W1szXV1bMV0sIG5vdGF0aW9uID0gInN5bWJvbCIpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiQVJYTEVENyIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvZmNhOWEzMjYtZDYwZS00OWE3LTgwY2EtZGI0MWUxNzdiZGUyIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCjwvZGV0YWlscz4gDQoNCg0KDQo8aHIgc3R5bGU9ImJvcmRlcjoxcHggcmlkZ2UgbGlnaHRncmF5Ij4gPC9ocj4NCjxjZW50ZXI+IDxzcGFuIHN0eWxlPSdjb2xvcjojRDNEM0QzOyBmb250LXNpemU6OTAlOyc+IGByIHBhc3RlKHR4dCR1cGRhdGVbbGFuZ3VhZ2VdLCBmb3JtYXQoU3lzLkRhdGUoKSwgIiVkLiAlQiAlWSIpKWAgPC9zcGFuPiA8L2NlbnRlcj4NCg0KDQoNCg0KPHNjcmlwdD4NCnZhciBhY2MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhY2NvcmRpb24iKTsNCnZhciBpOw0KDQpmb3IgKGkgPSAwOyBpIDwgYWNjLmxlbmd0aDsgaSsrKSB7DQogIGFjY1tpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCkgew0KICAgIHRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7DQogICAgdmFyIHBhbmVsID0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmc7DQogICAgaWYgKHBhbmVsLnN0eWxlLm1heEhlaWdodCkgew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsNCiAgICB9IGVsc2Ugew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gcGFuZWwuc2Nyb2xsSGVpZ2h0ICsgInB4IjsNCiAgICB9IA0KICB9KTsNCn0NCjwvc2NyaXB0Pg0KDQoNCg==