WHO Clinical Care in Crisis Implementation Guide for Children
0.1.0 - ci-build

WHO Clinical Care in Crisis Implementation Guide for Children - Local Development build (v0.1.0). See the Directory of published versions

: subscapularSkinfoldForAge - TTL Representation

Active as of 2023-10-04

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "subscapularSkinfoldForAge"] ; # 
  fhir:text [
fhir:status [ fhir:v "generated" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h2>Related Artifacts</h2><table class=\"grid\"><tr><td>depends-on</td><td><a href=\"Library-anthrobase.html\">anthrobase</a></td></tr><tr><td>depends-on</td><td><code>http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers</code></td></tr></table><h2>Parameters</h2><table class=\"grid\"><tr><td>zscore</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>Age</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>sex</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>generatesubscapularSkinfoldFromAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>generateZScoresubscapularSkinfoldForAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoresubscapularSkinfoldForAgetables_s</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoresubscapularSkinfoldForAgetables_m</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoresubscapularSkinfoldForAgetables_l</td><td>out</td><td/><td/><td>decimal</td></tr></table><h2>Data Requirements</h2><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/patient.html\">Patient</a> (<a href=\"http://hl7.org/fhir/R4/patient.html\">Patient</a>)</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class=\"language-sql\">\nlibrary subscapularSkinfoldForAge version '1.0.4'\nusing FHIR version '4.0.1'\ninclude anthrobase version '1.0.4' called base\ninclude FHIRHelpers version '4.0.1' called FHIRHelpers\n\n// Antrho library for subscapularSkinfoldForAge  Z-Score from the ssanthro files\ncodesystem &quot;administrative-gender&quot;: 'http://hl7.org/fhir/administrative-gender'\n//code &quot;Female&quot; : 'female' from &quot;administrative-gender&quot;  display 'Female'\n\n\ndefine subscapularSkinfoldForAgeFemale:\n{\n	{y:91.0,l:-0.2019,s:0.18428,m:7.7874},\n	{y:98.0,l:-0.2159,s:0.18428,m:7.7259},\n	{y:105.0,l:-0.229,s:0.18429,m:7.6679},\n	{y:112.0,l:-0.2414,s:0.18429,m:7.6129},\n	{y:119.0,l:-0.2532,s:0.1843,m:7.5605},\n	{y:126.0,l:-0.2644,s:0.1843,m:7.5103},\n	{y:133.0,l:-0.2751,s:0.18429,m:7.462},\n	{y:140.0,l:-0.2853,s:0.18429,m:7.4155},\n	{y:147.0,l:-0.2951,s:0.18429,m:7.3707},\n	{y:154.0,l:-0.3044,s:0.18428,m:7.3273},\n	{y:161.0,l:-0.3135,s:0.18427,m:7.2853},\n	{y:168.0,l:-0.3222,s:0.18427,m:7.2446},\n	{y:175.0,l:-0.3306,s:0.18426,m:7.2052},\n	{y:182.0,l:-0.3387,s:0.18426,m:7.167},\n	{y:197.0,l:-0.3553,s:0.18424,m:7.0892},\n	{y:227.0,l:-0.3854,s:0.18418,m:6.9493},\n	{y:257.0,l:-0.4123,s:0.18406,m:6.8285},\n	{y:287.0,l:-0.4366,s:0.18393,m:6.7244},\n	{y:317.0,l:-0.4589,s:0.18384,m:6.6344},\n	{y:347.0,l:-0.4795,s:0.18381,m:6.5563},\n	{y:377.0,l:-0.4985,s:0.18386,m:6.4883},\n	{y:407.0,l:-0.5164,s:0.184,m:6.4292},\n	{y:437.0,l:-0.5331,s:0.18425,m:6.3775},\n	{y:467.0,l:-0.5489,s:0.18459,m:6.3324},\n	{y:497.0,l:-0.5639,s:0.18503,m:6.2929},\n	{y:527.0,l:-0.5781,s:0.18556,m:6.2585},\n	{y:557.0,l:-0.5916,s:0.18617,m:6.2287},\n	{y:587.0,l:-0.6045,s:0.18687,m:6.2031},\n	{y:617.0,l:-0.6169,s:0.18763,m:6.1811},\n	{y:647.0,l:-0.6288,s:0.18845,m:6.1623},\n	{y:677.0,l:-0.6402,s:0.18934,m:6.1462},\n	{y:707.0,l:-0.6512,s:0.19027,m:6.1325},\n	{y:737.0,l:-0.6618,s:0.19126,m:6.1209},\n	{y:767.0,l:-0.672,s:0.19228,m:6.111},\n	{y:797.0,l:-0.6819,s:0.19335,m:6.1027},\n	{y:827.0,l:-0.6915,s:0.19445,m:6.0956},\n	{y:857.0,l:-0.7008,s:0.19558,m:6.0896},\n	{y:887.0,l:-0.7099,s:0.19674,m:6.0844},\n	{y:917.0,l:-0.7186,s:0.19792,m:6.08},\n	{y:947.0,l:-0.7272,s:0.19912,m:6.0762},\n	{y:977.0,l:-0.7355,s:0.20033,m:6.073},\n	{y:1007.0,l:-0.7436,s:0.20155,m:6.0703},\n	{y:1037.0,l:-0.7514,s:0.20279,m:6.0681},\n	{y:1067.0,l:-0.7591,s:0.20402,m:6.0664},\n	{y:1097.0,l:-0.7667,s:0.20526,m:6.0651},\n	{y:1127.0,l:-0.774,s:0.20651,m:6.0642},\n	{y:1157.0,l:-0.7812,s:0.20775,m:6.0637},\n	{y:1187.0,l:-0.7882,s:0.20899,m:6.0633},\n	{y:1217.0,l:-0.7951,s:0.21022,m:6.0632},\n	{y:1247.0,l:-0.8018,s:0.21145,m:6.0632},\n	{y:1277.0,l:-0.8084,s:0.21267,m:6.0634},\n	{y:1307.0,l:-0.8149,s:0.21389,m:6.0637},\n	{y:1337.0,l:-0.8212,s:0.21509,m:6.0641},\n	{y:1367.0,l:-0.8274,s:0.21628,m:6.0646},\n	{y:1397.0,l:-0.8335,s:0.21746,m:6.0653},\n	{y:1427.0,l:-0.8395,s:0.21862,m:6.066},\n	{y:1457.0,l:-0.8454,s:0.21978,m:6.0668},\n	{y:1487.0,l:-0.8512,s:0.22092,m:6.0678},\n	{y:1517.0,l:-0.8569,s:0.22204,m:6.0688},\n	{y:1547.0,l:-0.8624,s:0.22316,m:6.07},\n	{y:1577.0,l:-0.8679,s:0.22426,m:6.0714},\n	{y:1607.0,l:-0.8734,s:0.22534,m:6.0728},\n	{y:1637.0,l:-0.8787,s:0.22641,m:6.0744},\n	{y:1667.0,l:-0.8839,s:0.22746,m:6.0761},\n	{y:1697.0,l:-0.8891,s:0.2285,m:6.0779},\n	{y:1727.0,l:-0.8942,s:0.22953,m:6.0798},\n	{y:1757.0,l:-0.8992,s:0.23053,m:6.0818},\n	{y:1787.0,l:-0.9041,s:0.23153,m:6.0838},\n	{y:1817.0,l:-0.909,s:0.23251,m:6.0859},\n	{y:1847.0,l:-0.9138,s:0.23347,m:6.088}\n}\n\ndefine subscapularSkinfoldForAgeMale:\n{\n	{y:91.0,l:-0.303,s:0.17019,m:7.692},\n	{y:98.0,l:-0.3089,s:0.17038,m:7.6458},\n	{y:105.0,l:-0.3146,s:0.17055,m:7.6006},\n	{y:112.0,l:-0.3202,s:0.17073,m:7.5566},\n	{y:119.0,l:-0.3257,s:0.1709,m:7.5135},\n	{y:126.0,l:-0.3311,s:0.17107,m:7.4713},\n	{y:133.0,l:-0.3363,s:0.17123,m:7.43},\n	{y:140.0,l:-0.3415,s:0.17139,m:7.3894},\n	{y:147.0,l:-0.3466,s:0.17155,m:7.3497},\n	{y:154.0,l:-0.3516,s:0.17171,m:7.3107},\n	{y:161.0,l:-0.3565,s:0.17186,m:7.2724},\n	{y:168.0,l:-0.3613,s:0.17201,m:7.2349},\n	{y:175.0,l:-0.3661,s:0.17216,m:7.1981},\n	{y:182.0,l:-0.3708,s:0.17231,m:7.162},\n	{y:197.0,l:-0.3806,s:0.17261,m:7.087},\n	{y:227.0,l:-0.3996,s:0.1732,m:6.9469},\n	{y:257.0,l:-0.4177,s:0.17377,m:6.8195},\n	{y:287.0,l:-0.4351,s:0.17431,m:6.7042},\n	{y:317.0,l:-0.4519,s:0.17483,m:6.6006},\n	{y:347.0,l:-0.4681,s:0.17534,m:6.5077},\n	{y:377.0,l:-0.4839,s:0.17583,m:6.4249},\n	{y:407.0,l:-0.4992,s:0.17631,m:6.3512},\n	{y:437.0,l:-0.5141,s:0.17677,m:6.2856},\n	{y:467.0,l:-0.5286,s:0.17723,m:6.2273},\n	{y:497.0,l:-0.5429,s:0.17767,m:6.1755},\n	{y:527.0,l:-0.5568,s:0.1781,m:6.1294},\n	{y:557.0,l:-0.5704,s:0.17853,m:6.0882},\n	{y:587.0,l:-0.5839,s:0.17895,m:6.0515},\n	{y:617.0,l:-0.597,s:0.17936,m:6.0189},\n	{y:647.0,l:-0.61,s:0.17976,m:5.9901},\n	{y:677.0,l:-0.6227,s:0.18016,m:5.9646},\n	{y:707.0,l:-0.6352,s:0.18055,m:5.942},\n	{y:737.0,l:-0.6476,s:0.18093,m:5.9216},\n	{y:767.0,l:-0.6598,s:0.18131,m:5.9031},\n	{y:797.0,l:-0.6718,s:0.18169,m:5.8861},\n	{y:827.0,l:-0.6836,s:0.18206,m:5.8702},\n	{y:857.0,l:-0.6953,s:0.18242,m:5.8553},\n	{y:887.0,l:-0.7069,s:0.18278,m:5.841},\n	{y:917.0,l:-0.7183,s:0.18314,m:5.8272},\n	{y:947.0,l:-0.7296,s:0.18349,m:5.8135},\n	{y:977.0,l:-0.7408,s:0.18384,m:5.7997},\n	{y:1007.0,l:-0.7519,s:0.18419,m:5.7858},\n	{y:1037.0,l:-0.7628,s:0.18453,m:5.7717},\n	{y:1067.0,l:-0.7736,s:0.18486,m:5.7572},\n	{y:1097.0,l:-0.7844,s:0.1852,m:5.7424},\n	{y:1127.0,l:-0.795,s:0.18553,m:5.7274},\n	{y:1157.0,l:-0.8055,s:0.18586,m:5.7123},\n	{y:1187.0,l:-0.8159,s:0.18618,m:5.6971},\n	{y:1217.0,l:-0.8263,s:0.18651,m:5.6818},\n	{y:1247.0,l:-0.8365,s:0.18683,m:5.6663},\n	{y:1277.0,l:-0.8467,s:0.18714,m:5.6507},\n	{y:1307.0,l:-0.8567,s:0.18746,m:5.6348},\n	{y:1337.0,l:-0.8667,s:0.18777,m:5.6186},\n	{y:1367.0,l:-0.8767,s:0.18808,m:5.6021},\n	{y:1397.0,l:-0.8865,s:0.18838,m:5.5852},\n	{y:1427.0,l:-0.8963,s:0.18869,m:5.568},\n	{y:1457.0,l:-0.906,s:0.18899,m:5.5505},\n	{y:1487.0,l:-0.9156,s:0.18929,m:5.5329},\n	{y:1517.0,l:-0.9252,s:0.18959,m:5.5153},\n	{y:1547.0,l:-0.9347,s:0.18989,m:5.4978},\n	{y:1577.0,l:-0.9441,s:0.19018,m:5.4807},\n	{y:1607.0,l:-0.9535,s:0.19047,m:5.4639},\n	{y:1637.0,l:-0.9628,s:0.19076,m:5.4478},\n	{y:1667.0,l:-0.972,s:0.19105,m:5.4323},\n	{y:1697.0,l:-0.9812,s:0.19134,m:5.4176},\n	{y:1727.0,l:-0.9903,s:0.19162,m:5.4036},\n	{y:1757.0,l:-0.9994,s:0.19191,m:5.3904},\n	{y:1787.0,l:-1.0085,s:0.19219,m:5.378},\n	{y:1817.0,l:-1.0174,s:0.19247,m:5.3662},\n	{y:1847.0,l:-1.0263,s:0.19275,m:5.3552}\n}\n\n\n\n\ndefine function ZscoresubscapularSkinfoldForAgetables(sex String, age Decimal):\n	if sex = 'female' then  \n        First(subscapularSkinfoldForAgeFemale c where c.y = base.AgeToMini(age) )\n	else \n        First(subscapularSkinfoldForAgeMale c where  c.y = base.AgeToMini(age))\n            \ndefine function generateZScoresubscapularSkinfoldForAge(sex System.String, age System.Decimal, weight  System.Decimal)  : \n	 generateZScoresubscapularSkinfoldForAgedet(ZscoresubscapularSkinfoldForAgetables(sex,age), weight )\n\ndefine function generateZScoresubscapularSkinfoldForAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal}, weight  System.Decimal):\n    if row is not null then \n        base.computeZScore(\n            weight,\n            row.m , \n            row.l ,\n            row.s \n        )\n    else null\n\n\ndefine function generatesubscapularSkinfoldFromAge(sex System.String, age System.Decimal, zscore  System.Decimal) : \n	 generatesubscapularSkinfoldFromAgedet(ZscoresubscapularSkinfoldForAgetables(sex,age),zscore  )\n\ndefine function generatesubscapularSkinfoldFromAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal},zscore  System.Decimal) : \n    if row is not null then \n        base.computeReverseZScore(\n            zscore,\n            row.m , \n            row.l ,\n            row.s \n        )\n    else null    \n\n    \n</code></pre></div>"
  ] ; # 
  fhir:url [ fhir:v "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/subscapularSkinfoldForAge"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "0.1.0"] ; # 
  fhir:name [ fhir:v "subscapularSkinfoldForAge"] ; # 
  fhir:status [ fhir:v "active"] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [ fhir:v "http://hl7.org/fhir/ValueSet/library-type"^^xsd:anyURI ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2023-10-04T12:32:21+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "WHO"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "WHO" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://who.int" ]     ] )
  ] ) ; # 
  fhir:relatedArtifact ( [
fhir:type [ fhir:v "depends-on" ] ;
fhir:resource [
fhir:v "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/anthrobase"^^xsd:anyURI ;
fhir:link <https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/anthrobase>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:resource [
fhir:v "http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers"^^xsd:anyURI ;
fhir:link <http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers>     ]
  ] ) ; # 
  fhir:parameter ( [
fhir:name [ fhir:v "zscore" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "Age" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "sex" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "generatesubscapularSkinfoldFromAge" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "generateZScoresubscapularSkinfoldForAge" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "ZscoresubscapularSkinfoldForAgetables_s" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "ZscoresubscapularSkinfoldForAgetables_m" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "ZscoresubscapularSkinfoldForAgetables_l" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] ) ; # 
  fhir:dataRequirement ( [
fhir:type [ fhir:v "Patient" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Patient"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Patient>     ] )
  ] ) ; # 
  fhir:content ( [
fhir:id [ fhir:v "ig-loader-subscapularSkinfoldForAge.cql" ] ;
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "CmxpYnJhcnkgc3Vic2NhcHVsYXJTa2luZm9sZEZvckFnZSB2ZXJzaW9uICcxLjAuNCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBhbnRocm9iYXNlIHZlcnNpb24gJzEuMC40JyBjYWxsZWQgYmFzZQppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKCi8vIEFudHJobyBsaWJyYXJ5IGZvciBzdWJzY2FwdWxhclNraW5mb2xkRm9yQWdlICBaLVNjb3JlIGZyb20gdGhlIHNzYW50aHJvIGZpbGVzCmNvZGVzeXN0ZW0gImFkbWluaXN0cmF0aXZlLWdlbmRlciI6ICdodHRwOi8vaGw3Lm9yZy9maGlyL2FkbWluaXN0cmF0aXZlLWdlbmRlcicKLy9jb2RlICJGZW1hbGUiIDogJ2ZlbWFsZScgZnJvbSAiYWRtaW5pc3RyYXRpdmUtZ2VuZGVyIiAgZGlzcGxheSAnRmVtYWxlJwoKCmRlZmluZSBzdWJzY2FwdWxhclNraW5mb2xkRm9yQWdlRmVtYWxlOgp7Cgl7eTo5MS4wLGw6LTAuMjAxOSxzOjAuMTg0MjgsbTo3Ljc4NzR9LAoJe3k6OTguMCxsOi0wLjIxNTksczowLjE4NDI4LG06Ny43MjU5fSwKCXt5OjEwNS4wLGw6LTAuMjI5LHM6MC4xODQyOSxtOjcuNjY3OX0sCgl7eToxMTIuMCxsOi0wLjI0MTQsczowLjE4NDI5LG06Ny42MTI5fSwKCXt5OjExOS4wLGw6LTAuMjUzMixzOjAuMTg0MyxtOjcuNTYwNX0sCgl7eToxMjYuMCxsOi0wLjI2NDQsczowLjE4NDMsbTo3LjUxMDN9LAoJe3k6MTMzLjAsbDotMC4yNzUxLHM6MC4xODQyOSxtOjcuNDYyfSwKCXt5OjE0MC4wLGw6LTAuMjg1MyxzOjAuMTg0MjksbTo3LjQxNTV9LAoJe3k6MTQ3LjAsbDotMC4yOTUxLHM6MC4xODQyOSxtOjcuMzcwN30sCgl7eToxNTQuMCxsOi0wLjMwNDQsczowLjE4NDI4LG06Ny4zMjczfSwKCXt5OjE2MS4wLGw6LTAuMzEzNSxzOjAuMTg0MjcsbTo3LjI4NTN9LAoJe3k6MTY4LjAsbDotMC4zMjIyLHM6MC4xODQyNyxtOjcuMjQ0Nn0sCgl7eToxNzUuMCxsOi0wLjMzMDYsczowLjE4NDI2LG06Ny4yMDUyfSwKCXt5OjE4Mi4wLGw6LTAuMzM4NyxzOjAuMTg0MjYsbTo3LjE2N30sCgl7eToxOTcuMCxsOi0wLjM1NTMsczowLjE4NDI0LG06Ny4wODkyfSwKCXt5OjIyNy4wLGw6LTAuMzg1NCxzOjAuMTg0MTgsbTo2Ljk0OTN9LAoJe3k6MjU3LjAsbDotMC40MTIzLHM6MC4xODQwNixtOjYuODI4NX0sCgl7eToyODcuMCxsOi0wLjQzNjYsczowLjE4MzkzLG06Ni43MjQ0fSwKCXt5OjMxNy4wLGw6LTAuNDU4OSxzOjAuMTgzODQsbTo2LjYzNDR9LAoJe3k6MzQ3LjAsbDotMC40Nzk1LHM6MC4xODM4MSxtOjYuNTU2M30sCgl7eTozNzcuMCxsOi0wLjQ5ODUsczowLjE4Mzg2LG06Ni40ODgzfSwKCXt5OjQwNy4wLGw6LTAuNTE2NCxzOjAuMTg0LG06Ni40MjkyfSwKCXt5OjQzNy4wLGw6LTAuNTMzMSxzOjAuMTg0MjUsbTo2LjM3NzV9LAoJe3k6NDY3LjAsbDotMC41NDg5LHM6MC4xODQ1OSxtOjYuMzMyNH0sCgl7eTo0OTcuMCxsOi0wLjU2MzksczowLjE4NTAzLG06Ni4yOTI5fSwKCXt5OjUyNy4wLGw6LTAuNTc4MSxzOjAuMTg1NTYsbTo2LjI1ODV9LAoJe3k6NTU3LjAsbDotMC41OTE2LHM6MC4xODYxNyxtOjYuMjI4N30sCgl7eTo1ODcuMCxsOi0wLjYwNDUsczowLjE4Njg3LG06Ni4yMDMxfSwKCXt5OjYxNy4wLGw6LTAuNjE2OSxzOjAuMTg3NjMsbTo2LjE4MTF9LAoJe3k6NjQ3LjAsbDotMC42Mjg4LHM6MC4xODg0NSxtOjYuMTYyM30sCgl7eTo2NzcuMCxsOi0wLjY0MDIsczowLjE4OTM0LG06Ni4xNDYyfSwKCXt5OjcwNy4wLGw6LTAuNjUxMixzOjAuMTkwMjcsbTo2LjEzMjV9LAoJe3k6NzM3LjAsbDotMC42NjE4LHM6MC4xOTEyNixtOjYuMTIwOX0sCgl7eTo3NjcuMCxsOi0wLjY3MixzOjAuMTkyMjgsbTo2LjExMX0sCgl7eTo3OTcuMCxsOi0wLjY4MTksczowLjE5MzM1LG06Ni4xMDI3fSwKCXt5OjgyNy4wLGw6LTAuNjkxNSxzOjAuMTk0NDUsbTo2LjA5NTZ9LAoJe3k6ODU3LjAsbDotMC43MDA4LHM6MC4xOTU1OCxtOjYuMDg5Nn0sCgl7eTo4ODcuMCxsOi0wLjcwOTksczowLjE5Njc0LG06Ni4wODQ0fSwKCXt5OjkxNy4wLGw6LTAuNzE4NixzOjAuMTk3OTIsbTo2LjA4fSwKCXt5Ojk0Ny4wLGw6LTAuNzI3MixzOjAuMTk5MTIsbTo2LjA3NjJ9LAoJe3k6OTc3LjAsbDotMC43MzU1LHM6MC4yMDAzMyxtOjYuMDczfSwKCXt5OjEwMDcuMCxsOi0wLjc0MzYsczowLjIwMTU1LG06Ni4wNzAzfSwKCXt5OjEwMzcuMCxsOi0wLjc1MTQsczowLjIwMjc5LG06Ni4wNjgxfSwKCXt5OjEwNjcuMCxsOi0wLjc1OTEsczowLjIwNDAyLG06Ni4wNjY0fSwKCXt5OjEwOTcuMCxsOi0wLjc2NjcsczowLjIwNTI2LG06Ni4wNjUxfSwKCXt5OjExMjcuMCxsOi0wLjc3NCxzOjAuMjA2NTEsbTo2LjA2NDJ9LAoJe3k6MTE1Ny4wLGw6LTAuNzgxMixzOjAuMjA3NzUsbTo2LjA2Mzd9LAoJe3k6MTE4Ny4wLGw6LTAuNzg4MixzOjAuMjA4OTksbTo2LjA2MzN9LAoJe3k6MTIxNy4wLGw6LTAuNzk1MSxzOjAuMjEwMjIsbTo2LjA2MzJ9LAoJe3k6MTI0Ny4wLGw6LTAuODAxOCxzOjAuMjExNDUsbTo2LjA2MzJ9LAoJe3k6MTI3Ny4wLGw6LTAuODA4NCxzOjAuMjEyNjcsbTo2LjA2MzR9LAoJe3k6MTMwNy4wLGw6LTAuODE0OSxzOjAuMjEzODksbTo2LjA2Mzd9LAoJe3k6MTMzNy4wLGw6LTAuODIxMixzOjAuMjE1MDksbTo2LjA2NDF9LAoJe3k6MTM2Ny4wLGw6LTAuODI3NCxzOjAuMjE2MjgsbTo2LjA2NDZ9LAoJe3k6MTM5Ny4wLGw6LTAuODMzNSxzOjAuMjE3NDYsbTo2LjA2NTN9LAoJe3k6MTQyNy4wLGw6LTAuODM5NSxzOjAuMjE4NjIsbTo2LjA2Nn0sCgl7eToxNDU3LjAsbDotMC44NDU0LHM6MC4yMTk3OCxtOjYuMDY2OH0sCgl7eToxNDg3LjAsbDotMC44NTEyLHM6MC4yMjA5MixtOjYuMDY3OH0sCgl7eToxNTE3LjAsbDotMC44NTY5LHM6MC4yMjIwNCxtOjYuMDY4OH0sCgl7eToxNTQ3LjAsbDotMC44NjI0LHM6MC4yMjMxNixtOjYuMDd9LAoJe3k6MTU3Ny4wLGw6LTAuODY3OSxzOjAuMjI0MjYsbTo2LjA3MTR9LAoJe3k6MTYwNy4wLGw6LTAuODczNCxzOjAuMjI1MzQsbTo2LjA3Mjh9LAoJe3k6MTYzNy4wLGw6LTAuODc4NyxzOjAuMjI2NDEsbTo2LjA3NDR9LAoJe3k6MTY2Ny4wLGw6LTAuODgzOSxzOjAuMjI3NDYsbTo2LjA3NjF9LAoJe3k6MTY5Ny4wLGw6LTAuODg5MSxzOjAuMjI4NSxtOjYuMDc3OX0sCgl7eToxNzI3LjAsbDotMC44OTQyLHM6MC4yMjk1MyxtOjYuMDc5OH0sCgl7eToxNzU3LjAsbDotMC44OTkyLHM6MC4yMzA1MyxtOjYuMDgxOH0sCgl7eToxNzg3LjAsbDotMC45MDQxLHM6MC4yMzE1MyxtOjYuMDgzOH0sCgl7eToxODE3LjAsbDotMC45MDksczowLjIzMjUxLG06Ni4wODU5fSwKCXt5OjE4NDcuMCxsOi0wLjkxMzgsczowLjIzMzQ3LG06Ni4wODh9Cn0KCmRlZmluZSBzdWJzY2FwdWxhclNraW5mb2xkRm9yQWdlTWFsZToKewoJe3k6OTEuMCxsOi0wLjMwMyxzOjAuMTcwMTksbTo3LjY5Mn0sCgl7eTo5OC4wLGw6LTAuMzA4OSxzOjAuMTcwMzgsbTo3LjY0NTh9LAoJe3k6MTA1LjAsbDotMC4zMTQ2LHM6MC4xNzA1NSxtOjcuNjAwNn0sCgl7eToxMTIuMCxsOi0wLjMyMDIsczowLjE3MDczLG06Ny41NTY2fSwKCXt5OjExOS4wLGw6LTAuMzI1NyxzOjAuMTcwOSxtOjcuNTEzNX0sCgl7eToxMjYuMCxsOi0wLjMzMTEsczowLjE3MTA3LG06Ny40NzEzfSwKCXt5OjEzMy4wLGw6LTAuMzM2MyxzOjAuMTcxMjMsbTo3LjQzfSwKCXt5OjE0MC4wLGw6LTAuMzQxNSxzOjAuMTcxMzksbTo3LjM4OTR9LAoJe3k6MTQ3LjAsbDotMC4zNDY2LHM6MC4xNzE1NSxtOjcuMzQ5N30sCgl7eToxNTQuMCxsOi0wLjM1MTYsczowLjE3MTcxLG06Ny4zMTA3fSwKCXt5OjE2MS4wLGw6LTAuMzU2NSxzOjAuMTcxODYsbTo3LjI3MjR9LAoJe3k6MTY4LjAsbDotMC4zNjEzLHM6MC4xNzIwMSxtOjcuMjM0OX0sCgl7eToxNzUuMCxsOi0wLjM2NjEsczowLjE3MjE2LG06Ny4xOTgxfSwKCXt5OjE4Mi4wLGw6LTAuMzcwOCxzOjAuMTcyMzEsbTo3LjE2Mn0sCgl7eToxOTcuMCxsOi0wLjM4MDYsczowLjE3MjYxLG06Ny4wODd9LAoJe3k6MjI3LjAsbDotMC4zOTk2LHM6MC4xNzMyLG06Ni45NDY5fSwKCXt5OjI1Ny4wLGw6LTAuNDE3NyxzOjAuMTczNzcsbTo2LjgxOTV9LAoJe3k6Mjg3LjAsbDotMC40MzUxLHM6MC4xNzQzMSxtOjYuNzA0Mn0sCgl7eTozMTcuMCxsOi0wLjQ1MTksczowLjE3NDgzLG06Ni42MDA2fSwKCXt5OjM0Ny4wLGw6LTAuNDY4MSxzOjAuMTc1MzQsbTo2LjUwNzd9LAoJe3k6Mzc3LjAsbDotMC40ODM5LHM6MC4xNzU4MyxtOjYuNDI0OX0sCgl7eTo0MDcuMCxsOi0wLjQ5OTIsczowLjE3NjMxLG06Ni4zNTEyfSwKCXt5OjQzNy4wLGw6LTAuNTE0MSxzOjAuMTc2NzcsbTo2LjI4NTZ9LAoJe3k6NDY3LjAsbDotMC41Mjg2LHM6MC4xNzcyMyxtOjYuMjI3M30sCgl7eTo0OTcuMCxsOi0wLjU0MjksczowLjE3NzY3LG06Ni4xNzU1fSwKCXt5OjUyNy4wLGw6LTAuNTU2OCxzOjAuMTc4MSxtOjYuMTI5NH0sCgl7eTo1NTcuMCxsOi0wLjU3MDQsczowLjE3ODUzLG06Ni4wODgyfSwKCXt5OjU4Ny4wLGw6LTAuNTgzOSxzOjAuMTc4OTUsbTo2LjA1MTV9LAoJe3k6NjE3LjAsbDotMC41OTcsczowLjE3OTM2LG06Ni4wMTg5fSwKCXt5OjY0Ny4wLGw6LTAuNjEsczowLjE3OTc2LG06NS45OTAxfSwKCXt5OjY3Ny4wLGw6LTAuNjIyNyxzOjAuMTgwMTYsbTo1Ljk2NDZ9LAoJe3k6NzA3LjAsbDotMC42MzUyLHM6MC4xODA1NSxtOjUuOTQyfSwKCXt5OjczNy4wLGw6LTAuNjQ3NixzOjAuMTgwOTMsbTo1LjkyMTZ9LAoJe3k6NzY3LjAsbDotMC42NTk4LHM6MC4xODEzMSxtOjUuOTAzMX0sCgl7eTo3OTcuMCxsOi0wLjY3MTgsczowLjE4MTY5LG06NS44ODYxfSwKCXt5OjgyNy4wLGw6LTAuNjgzNixzOjAuMTgyMDYsbTo1Ljg3MDJ9LAoJe3k6ODU3LjAsbDotMC42OTUzLHM6MC4xODI0MixtOjUuODU1M30sCgl7eTo4ODcuMCxsOi0wLjcwNjksczowLjE4Mjc4LG06NS44NDF9LAoJe3k6OTE3LjAsbDotMC43MTgzLHM6MC4xODMxNCxtOjUuODI3Mn0sCgl7eTo5NDcuMCxsOi0wLjcyOTYsczowLjE4MzQ5LG06NS44MTM1fSwKCXt5Ojk3Ny4wLGw6LTAuNzQwOCxzOjAuMTgzODQsbTo1Ljc5OTd9LAoJe3k6MTAwNy4wLGw6LTAuNzUxOSxzOjAuMTg0MTksbTo1Ljc4NTh9LAoJe3k6MTAzNy4wLGw6LTAuNzYyOCxzOjAuMTg0NTMsbTo1Ljc3MTd9LAoJe3k6MTA2Ny4wLGw6LTAuNzczNixzOjAuMTg0ODYsbTo1Ljc1NzJ9LAoJe3k6MTA5Ny4wLGw6LTAuNzg0NCxzOjAuMTg1MixtOjUuNzQyNH0sCgl7eToxMTI3LjAsbDotMC43OTUsczowLjE4NTUzLG06NS43Mjc0fSwKCXt5OjExNTcuMCxsOi0wLjgwNTUsczowLjE4NTg2LG06NS43MTIzfSwKCXt5OjExODcuMCxsOi0wLjgxNTksczowLjE4NjE4LG06NS42OTcxfSwKCXt5OjEyMTcuMCxsOi0wLjgyNjMsczowLjE4NjUxLG06NS42ODE4fSwKCXt5OjEyNDcuMCxsOi0wLjgzNjUsczowLjE4NjgzLG06NS42NjYzfSwKCXt5OjEyNzcuMCxsOi0wLjg0NjcsczowLjE4NzE0LG06NS42NTA3fSwKCXt5OjEzMDcuMCxsOi0wLjg1NjcsczowLjE4NzQ2LG06NS42MzQ4fSwKCXt5OjEzMzcuMCxsOi0wLjg2NjcsczowLjE4Nzc3LG06NS42MTg2fSwKCXt5OjEzNjcuMCxsOi0wLjg3NjcsczowLjE4ODA4LG06NS42MDIxfSwKCXt5OjEzOTcuMCxsOi0wLjg4NjUsczowLjE4ODM4LG06NS41ODUyfSwKCXt5OjE0MjcuMCxsOi0wLjg5NjMsczowLjE4ODY5LG06NS41Njh9LAoJe3k6MTQ1Ny4wLGw6LTAuOTA2LHM6MC4xODg5OSxtOjUuNTUwNX0sCgl7eToxNDg3LjAsbDotMC45MTU2LHM6MC4xODkyOSxtOjUuNTMyOX0sCgl7eToxNTE3LjAsbDotMC45MjUyLHM6MC4xODk1OSxtOjUuNTE1M30sCgl7eToxNTQ3LjAsbDotMC45MzQ3LHM6MC4xODk4OSxtOjUuNDk3OH0sCgl7eToxNTc3LjAsbDotMC45NDQxLHM6MC4xOTAxOCxtOjUuNDgwN30sCgl7eToxNjA3LjAsbDotMC45NTM1LHM6MC4xOTA0NyxtOjUuNDYzOX0sCgl7eToxNjM3LjAsbDotMC45NjI4LHM6MC4xOTA3NixtOjUuNDQ3OH0sCgl7eToxNjY3LjAsbDotMC45NzIsczowLjE5MTA1LG06NS40MzIzfSwKCXt5OjE2OTcuMCxsOi0wLjk4MTIsczowLjE5MTM0LG06NS40MTc2fSwKCXt5OjE3MjcuMCxsOi0wLjk5MDMsczowLjE5MTYyLG06NS40MDM2fSwKCXt5OjE3NTcuMCxsOi0wLjk5OTQsczowLjE5MTkxLG06NS4zOTA0fSwKCXt5OjE3ODcuMCxsOi0xLjAwODUsczowLjE5MjE5LG06NS4zNzh9LAoJe3k6MTgxNy4wLGw6LTEuMDE3NCxzOjAuMTkyNDcsbTo1LjM2NjJ9LAoJe3k6MTg0Ny4wLGw6LTEuMDI2MyxzOjAuMTkyNzUsbTo1LjM1NTJ9Cn0KCgoKCmRlZmluZSBmdW5jdGlvbiBac2NvcmVzdWJzY2FwdWxhclNraW5mb2xkRm9yQWdldGFibGVzKHNleCBTdHJpbmcsIGFnZSBEZWNpbWFsKToKCWlmIHNleCA9ICdmZW1hbGUnIHRoZW4gIAogICAgICAgIEZpcnN0KHN1YnNjYXB1bGFyU2tpbmZvbGRGb3JBZ2VGZW1hbGUgYyB3aGVyZSBjLnkgPSBiYXNlLkFnZVRvTWluaShhZ2UpICkKCWVsc2UgCiAgICAgICAgRmlyc3Qoc3Vic2NhcHVsYXJTa2luZm9sZEZvckFnZU1hbGUgYyB3aGVyZSAgYy55ID0gYmFzZS5BZ2VUb01pbmkoYWdlKSkKICAgICAgICAgICAgCmRlZmluZSBmdW5jdGlvbiBnZW5lcmF0ZVpTY29yZXN1YnNjYXB1bGFyU2tpbmZvbGRGb3JBZ2Uoc2V4IFN5c3RlbS5TdHJpbmcsIGFnZSBTeXN0ZW0uRGVjaW1hbCwgd2VpZ2h0ICBTeXN0ZW0uRGVjaW1hbCkgIDogCgkgZ2VuZXJhdGVaU2NvcmVzdWJzY2FwdWxhclNraW5mb2xkRm9yQWdlZGV0KFpzY29yZXN1YnNjYXB1bGFyU2tpbmZvbGRGb3JBZ2V0YWJsZXMoc2V4LGFnZSksIHdlaWdodCApCgpkZWZpbmUgZnVuY3Rpb24gZ2VuZXJhdGVaU2NvcmVzdWJzY2FwdWxhclNraW5mb2xkRm9yQWdlZGV0KHJvdyBUdXBsZSB7eSBTeXN0ZW0uRGVjaW1hbCxsIFN5c3RlbS5EZWNpbWFsLHMgU3lzdGVtLkRlY2ltYWwsbSBTeXN0ZW0uRGVjaW1hbH0sIHdlaWdodCAgU3lzdGVtLkRlY2ltYWwpOgogICAgaWYgcm93IGlzIG5vdCBudWxsIHRoZW4gCiAgICAgICAgYmFzZS5jb21wdXRlWlNjb3JlKAogICAgICAgICAgICB3ZWlnaHQsCiAgICAgICAgICAgIHJvdy5tICwgCiAgICAgICAgICAgIHJvdy5sICwKICAgICAgICAgICAgcm93LnMgCiAgICAgICAgKQogICAgZWxzZSBudWxsCgoKZGVmaW5lIGZ1bmN0aW9uIGdlbmVyYXRlc3Vic2NhcHVsYXJTa2luZm9sZEZyb21BZ2Uoc2V4IFN5c3RlbS5TdHJpbmcsIGFnZSBTeXN0ZW0uRGVjaW1hbCwgenNjb3JlICBTeXN0ZW0uRGVjaW1hbCkgOiAKCSBnZW5lcmF0ZXN1YnNjYXB1bGFyU2tpbmZvbGRGcm9tQWdlZGV0KFpzY29yZXN1YnNjYXB1bGFyU2tpbmZvbGRGb3JBZ2V0YWJsZXMoc2V4LGFnZSksenNjb3JlICApCgpkZWZpbmUgZnVuY3Rpb24gZ2VuZXJhdGVzdWJzY2FwdWxhclNraW5mb2xkRnJvbUFnZWRldChyb3cgVHVwbGUge3kgU3lzdGVtLkRlY2ltYWwsbCBTeXN0ZW0uRGVjaW1hbCxzIFN5c3RlbS5EZWNpbWFsLG0gU3lzdGVtLkRlY2ltYWx9LHpzY29yZSAgU3lzdGVtLkRlY2ltYWwpIDogCiAgICBpZiByb3cgaXMgbm90IG51bGwgdGhlbiAKICAgICAgICBiYXNlLmNvbXB1dGVSZXZlcnNlWlNjb3JlKAogICAgICAgICAgICB6c2NvcmUsCiAgICAgICAgICAgIHJvdy5tICwgCiAgICAgICAgICAgIHJvdy5sICwKICAgICAgICAgICAgcm93LnMgCiAgICAgICAgKQogICAgZWxzZSBudWxsICAgIAoKICAgIAo="^^xsd:base64Binary ]
  ] ) . #