Indkomst


Personindkomst


INXPI302_raw <- 
  statgl_url("INXPI302", lang = language) %>% 
  statgl_fetch(
    unit              = 0,
    "place of birth"  = px_all(),
    "income interval" = px_all(),
    time              = px_top(),
    .col_code         = TRUE
  ) %>% 
  as_tibble()

INXPI302 <- 
  INXPI302_raw %>% 
  mutate(
    `place of birth`  = `place of birth` %>% fct_inorder,
    `income interval` = `income interval` %>% fct_inorder
  ) %>% 
  spread(`place of birth`, value) %>% 
  unite(combi, unit, time, sep = ", ") %>%
  mutate_if(is.integer, ~replace(., is.na(.), 0))
  

INXPI302 %>% 
  select(-combi) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = INXPI302[["combi"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
I alt Født i Grønland Født uden for Grønland
Personer i gruppen (antal), 2024
Alle 42.807 37.819 4.988
50.000 kr. eller mindre 4.520 3.803 717
50.001 - 100.000 kr. 3.465 3.329 136
100.001 - 200.000 kr. 10.679 10.245 434
200.001 - 300.000 kr. 7.511 6.908 603
300.001 - 400.000 kr. 5.772 5.123 649
400.001 - 500.000 kr. 4.203 3.611 592
500.001 - 600.000 kr. 2.624 2.127 497
600.001 - 700.000 kr. 1.524 1.115 409
700.001 - 800.000 kr. 790 556 234
800.001 - 900.000 kr. 482 306 176
900.001 - 1.000.000 kr. 322 194 128
Mere end 1.000.000 kr. 915 502 413


Se Statistikbankens tabel: INXPI302

INXPI501_raw <- 
  statgl_url("INXPI501", lang = language) %>% 
  statgl_fetch(
    unit             = px_all(),
    time             = px_top(),
    "type of income" = px_all(),
    .col_code        = TRUE
  ) %>% 
  as_tibble()

INXPI501 <- 
  INXPI501_raw %>% 
  mutate(
    unit             = unit %>% fct_inorder,
    `type of income` = `type of income` %>% fct_inorder
  ) %>% 
  spread(unit, value)

INXPI501 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = INXPI501[["time"]] %>% table())
Nominel indkomst Realindkomst
2024
Indkomst i alt før skat 300.227 238.290
Skattepligtig indkomst 287.888 228.496
Disponibel indkomst 191.379 151.897


Se Statistikbankens tabel: INXPI501

Indkomstulighed
INXIU101_raw <- 
  statgl_url("INXIU101", lang = language) %>%
  statgl_fetch(
    indicator = px_all(),
    time      = px_top(5),
    .col_code = TRUE
  ) %>% 
  as_tibble()

INXIU101 <- 
  INXIU101_raw %>% 
  mutate(
    indicator = indicator %>% fct_inorder,
    time = time %>% fct_inorder %>% fct_rev()
  ) %>% 
  spread(time, value)

INXIU101 %>% 
  rename(" " = 1) %>% 
  statgl_table()
2024 2023 2022 2021 2020
Gini-koefficient 33,6 33,9 34,3 34,3 34,9
S80/20 5,2 5,4 5,5 5,8 5,5
Relativ fattigdom. 40 pct.-grænse 7,3 7,6 7,8 8,3 7,1
Relativ fattigdom. 50 pct.-grænse 11,5 12,0 12,1 13,0 11,4
Relativ fattigdom. 60 pct.-grænse 17,9 17,9 18,4 18,9 17,9


Se Statistikbankens tabel: INXIU101

Skattestatistik
INXSS101_raw <- 
  statgl_url("INXSS101", lang = language) %>%
  statgl_fetch(
    "tax municipality" = px_all(),
    unit               = px_all(),
    time               = px_top(),
    .col_code          = TRUE
  ) %>% 
  as_tibble()

INXSS101 <- 
  INXSS101_raw %>% 
  filter(value != "NA") %>% 
  mutate(
    unit               = unit %>% fct_inorder,
    `tax municipality` = `tax municipality` %>% fct_inorder
  ) %>% 
  spread(unit, value)

INXSS101 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = INXSS101[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Skattepligtige personer (antal) Samlet skattepligtig indkomst (mio. kr.) Samlet indkomstskat (mio. kr.)
2024
Hele landet 48.881 14.374 5.214
Kommune Kujalleq 5.198 1.291 458
Kommuneqarfik Sermersooq 21.508 7.377 2.729
Qeqqata Kommunia 7.737 2.152 767
Kommune Qeqertalik 5.011 1.106 375
Avannaata Kommunia 9.088 2.148 782
Udenfor kommunal inddeling 347 300 103


Se Statistikbankens tabel: INXSS101


Sidst opdateret: 10. november 2025
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkSU4kdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkSU4kc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQogDQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAxOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIklOWFBJMzAyIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgSU5YUEkzMDJ9DQoNCklOWFBJMzAyX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiSU5YUEkzMDIiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JSANCiAgc3RhdGdsX2ZldGNoKA0KICAgIHVuaXQgICAgICAgICAgICAgID0gMCwNCiAgICAicGxhY2Ugb2YgYmlydGgiICA9IHB4X2FsbCgpLA0KICAgICJpbmNvbWUgaW50ZXJ2YWwiID0gcHhfYWxsKCksDQogICAgdGltZSAgICAgICAgICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgICAgICAgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklOWFBJMzAyIDwtIA0KICBJTlhQSTMwMl9yYXcgJT4lIA0KICBtdXRhdGUoDQogICAgYHBsYWNlIG9mIGJpcnRoYCAgPSBgcGxhY2Ugb2YgYmlydGhgICU+JSBmY3RfaW5vcmRlciwNCiAgICBgaW5jb21lIGludGVydmFsYCA9IGBpbmNvbWUgaW50ZXJ2YWxgICU+JSBmY3RfaW5vcmRlcg0KICApICU+JSANCiAgc3ByZWFkKGBwbGFjZSBvZiBiaXJ0aGAsIHZhbHVlKSAlPiUgDQogIHVuaXRlKGNvbWJpLCB1bml0LCB0aW1lLCBzZXAgPSAiLCAiKSAlPiUNCiAgbXV0YXRlX2lmKGlzLmludGVnZXIsIH5yZXBsYWNlKC4sIGlzLm5hKC4pLCAwKSkNCiAgDQoNCklOWFBJMzAyICU+JSANCiAgc2VsZWN0KC1jb21iaSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUocmVwbGFjZV8wcyA9IFRSVUUpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSU5YUEkzMDJbWyJjb21iaSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhQSTMwMiIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvN2QyMzUxNTUtZDdhZS00ODRjLTljNWUtZDIwNDg1NDUwN2ZiIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQoNCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJJTlhQSTUwMSIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIElOWFBJNTAxfQ0KDQpJTlhQSTUwMV9yYXcgPC0gDQogIHN0YXRnbF91cmwoIklOWFBJNTAxIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICB1bml0ICAgICAgICAgICAgID0gcHhfYWxsKCksDQogICAgdGltZSAgICAgICAgICAgICA9IHB4X3RvcCgpLA0KICAgICJ0eXBlIG9mIGluY29tZSIgPSBweF9hbGwoKSwNCiAgICAuY29sX2NvZGUgICAgICAgID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KSU5YUEk1MDEgPC0gDQogIElOWFBJNTAxX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICB1bml0ICAgICAgICAgICAgID0gdW5pdCAlPiUgZmN0X2lub3JkZXIsDQogICAgYHR5cGUgb2YgaW5jb21lYCA9IGB0eXBlIG9mIGluY29tZWAgJT4lIGZjdF9pbm9yZGVyDQogICkgJT4lIA0KICBzcHJlYWQodW5pdCwgdmFsdWUpDQoNCklOWFBJNTAxICU+JSANCiAgc2VsZWN0KC10aW1lKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSU5YUEk1MDFbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKQ0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIklOWFBJNTAxIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS9lNDEzYWRkOC0xYzE3LTQ5ZGMtOWQxOS1hMTBjODRlYTQ1YTIiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQoNCjwvZGV0YWlscz4NCg0KDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JElOJHN1YjNbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+IA0KPGJyPg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDM6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiSU5YSVUxMDEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBJTlhJVTEwMX0NCg0KSU5YSVUxMDFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJJTlhJVTEwMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQogIHN0YXRnbF9mZXRjaCgNCiAgICBpbmRpY2F0b3IgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgPSBweF90b3AoNSksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KSU5YSVUxMDEgPC0gDQogIElOWElVMTAxX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICBpbmRpY2F0b3IgPSBpbmRpY2F0b3IgJT4lIGZjdF9pbm9yZGVyLA0KICAgIHRpbWUgPSB0aW1lICU+JSBmY3RfaW5vcmRlciAlPiUgZmN0X3JldigpDQogICkgJT4lIA0KICBzcHJlYWQodGltZSwgdmFsdWUpDQoNCklOWElVMTAxICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhJVTEwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvZWNjMmY2ZTEtMzA2MC00NTk3LWI1NzEtZTU3NDEyOGYxMGU3Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCjwvZGV0YWlscz4gDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JElOJHN1YjRbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciAnKlRhYmVsIDQ6KiB7c3RhdGdsX21ldGEoZ2x1ZTo6Z2x1ZSgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2wvYXBpL3YxL3tsYW5ndWFnZX0vR3JlZW5sYW5kL0lOL0lONTAvSU5YU1MxMDEucHgiKSkgfD4gcGx1Y2soInRpdGxlIil9JyB8PiBnbHVlOjpnbHVlKCkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBBUlhMRUQ0fQ0KDQpJTlhTUzEwMV9yYXcgPC0gDQogIHN0YXRnbF91cmwoIklOWFNTMTAxIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgICJ0YXggbXVuaWNpcGFsaXR5IiA9IHB4X2FsbCgpLA0KICAgIHVuaXQgICAgICAgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHRpbWUgICAgICAgICAgICAgICA9IHB4X3RvcCgpLA0KICAgIC5jb2xfY29kZSAgICAgICAgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklOWFNTMTAxIDwtIA0KICBJTlhTUzEwMV9yYXcgJT4lIA0KICBmaWx0ZXIodmFsdWUgIT0gIk5BIikgJT4lIA0KICBtdXRhdGUoDQogICAgdW5pdCAgICAgICAgICAgICAgID0gdW5pdCAlPiUgZmN0X2lub3JkZXIsDQogICAgYHRheCBtdW5pY2lwYWxpdHlgID0gYHRheCBtdW5pY2lwYWxpdHlgICU+JSBmY3RfaW5vcmRlcg0KICApICU+JSANCiAgc3ByZWFkKHVuaXQsIHZhbHVlKQ0KDQpJTlhTUzEwMSAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IElOWFNTMTAxW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhTUzEwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvM2JiM2U1MmMtODExZS00OGIzLTg3YzItZTc1NjA0MTNmYWM0Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KPC9kZXRhaWxzPiANCg0KDQo8aHIgc3R5bGU9ImJvcmRlcjoxcHggcmlkZ2UgbGlnaHRncmF5Ij4gPC9ocj4NCjxjZW50ZXI+IDxzcGFuIHN0eWxlPSdjb2xvcjojRDNEM0QzOyBmb250LXNpemU6OTAlOyc+IGByIHBhc3RlKHR4dCR1cGRhdGVbbGFuZ3VhZ2VdLCBmb3JtYXQoU3lzLkRhdGUoKSwgIiVkLiAlQiAlWSIpKWAgPC9zcGFuPiA8L2NlbnRlcj4NCg0KDQoNCg0KPHNjcmlwdD4NCnZhciBhY2MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhY2NvcmRpb24iKTsNCnZhciBpOw0KDQpmb3IgKGkgPSAwOyBpIDwgYWNjLmxlbmd0aDsgaSsrKSB7DQogIGFjY1tpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCkgew0KICAgIHRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7DQogICAgdmFyIHBhbmVsID0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmc7DQogICAgaWYgKHBhbmVsLnN0eWxlLm1heEhlaWdodCkgew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsNCiAgICB9IGVsc2Ugew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gcGFuZWwuc2Nyb2xsSGVpZ2h0ICsgInB4IjsNCiAgICB9IA0KICB9KTsNCn0NCjwvc2NyaXB0Pg0K