!
!Version ArubaOS-CX CL.10.13.1050
!export-password: default
hostname RSVDC-FB1-SP1
user admin group administrators password ciphertext AQBapXgRghSIOW5X1+QIlvQN2A98D/atHUzGuRCUODe39Dh7YgAAAMmhFZxUhP7RGNtz8Uv95TdhVLWwwzZUGARYzx+CecqoMa2Fi00bdLjqA+e+R3/qeSp498oP/xVaErIGIh4iDzoL12kRg/cmqsOfRwU2JEOcv/nX1zTUwfaARsgToF+CCQ3h
user afc_admin group administrators password ciphertext AQBapbN10g3HQDIfT6CiarAklvZzWzN8xF3nDEuxA80+7nDjYgAAAOqyqck+iM41COgtKSBAdfBWA961rPLlo5la9uZUiKHveR2tdgmLzkGnuhOfwDE0Av7gN/GdGAFYYJaymtoP7kF9vGC9sscTPagwWlWF1gwHOv6XRAItDDt7TTZr8IuGEEMV
clock timezone america/los_angeles
bfd
profile spine
ntp server 10.2.120.98
ntp server 10.2.120.99
ntp enable
ntp vrf mgmt
cli-session
timeout 0
!
!
!
!
!
ssh server vrf mgmt
vlan 1
interface mgmt
no shutdown
ip dhcp
interface 1/1/1
no shutdown
split 2 100g
mtu 9198
interface 1/1/1:1
description Leaf Spine RPI to RSVDC-FB1-LF1-1
no shutdown
mtu 9198
ip mtu 9198
ip address 10.255.0.2/31
ip ospf 1 area 0.0.0.0
no ip ospf passive
ip ospf network point-to-point
interface 1/1/1:2
description Leaf Spine RPI to RSVDC-FB1-LF1-2
no shutdown
mtu 9198
ip mtu 9198
ip address 10.255.0.4/31
ip ospf 1 area 0.0.0.0
no ip ospf passive
ip ospf network point-to-point
interface 1/1/2
no shutdown
split 2 100g
mtu 9198
interface 1/1/2:1
description Leaf Spine RPI to RSVDC-FB1-LF2-1
no shutdown
mtu 9198
ip mtu 9198
ip address 10.255.0.6/31
ip ospf 1 area 0.0.0.0
no ip ospf passive
ip ospf network point-to-point
interface 1/1/2:2
description Leaf Spine RPI to RSVDC-FB1-LF2-2
no shutdown
mtu 9198
ip mtu 9198
ip address 10.255.0.0/31
ip ospf 1 area 0.0.0.0
no ip ospf passive
ip ospf network point-to-point
interface 1/1/3
no shutdown
split 2 100g
mtu 9198
interface 1/1/3:1
description Leaf Spine RPI to RSVDC-FB1-LF3-1
no shutdown
mtu 9198
ip mtu 9198
ip address 10.255.0.10/31
ip ospf 1 area 0.0.0.0
no ip ospf passive
ip ospf network point-to-point
interface 1/1/3:2
description Leaf Spine RPI to RSVDC-FB1-LF3-2
no shutdown
mtu 9198
ip mtu 9198
ip address 10.255.0.8/31
ip ospf 1 area 0.0.0.0
no ip ospf passive
ip ospf network point-to-point
interface 1/1/4
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/5
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/6
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/7
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/8
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/9
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/10
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/11
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/12
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/13
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/14
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/15
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/16
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/17
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/18
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/19
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/20
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/21
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/22
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/23
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/24
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/25
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/26
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/27
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/28
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/29
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/30
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/31
no shutdown
mtu 9198
ip mtu 9198
interface 1/1/32
no shutdown
mtu 9198
ip mtu 9198
interface loopback 0
description BGP/OSPF underlay
ip address 10.250.0.9/32
ip dns domain-name example.local vrf mgmt
ip dns server-address 10.2.120.98 vrf mgmt
ip dns server-address 10.2.120.99 vrf mgmt
!
!
!
!
!
router ospf 1
router-id 10.250.0.9
passive-interface default
maximum-paths 8
redistribute local loopback
area 0.0.0.0
router bgp 65001
bgp router-id 10.250.0.9
maximum-paths 8
bgp log-neighbor-changes
bgp deterministic-med
bgp always-compare-med
bgp bestpath as-path multipath-relax
neighbor RSVDC-FB1-LF peer-group
neighbor RSVDC-FB1-LF remote-as 65001
neighbor RSVDC-FB1-LF description Leaf RR clients
neighbor RSVDC-FB1-LF fall-over
neighbor RSVDC-FB1-LF update-source loopback 0
neighbor 10.250.0.6 peer-group RSVDC-FB1-LF
neighbor 10.250.0.7 peer-group RSVDC-FB1-LF
neighbor 10.250.0.8 peer-group RSVDC-FB1-LF
neighbor 10.250.0.11 peer-group RSVDC-FB1-LF
neighbor 10.250.0.12 peer-group RSVDC-FB1-LF
neighbor 10.250.0.13 peer-group RSVDC-FB1-LF
address-family ipv4 unicast
redistribute connected
exit-address-family
address-family l2vpn evpn
neighbor RSVDC-FB1-LF route-reflector-client
neighbor RSVDC-FB1-LF send-community both
neighbor 10.250.0.6 activate
neighbor 10.250.0.7 activate
neighbor 10.250.0.8 activate
neighbor 10.250.0.11 activate
neighbor 10.250.0.12 activate
neighbor 10.250.0.13 activate
exit-address-family
!
https-server vrf mgmt
nae-script fans_status_transition_monitor false IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIwojIChjKSBDb3B5cmlnaHQgMjAxNy0yMDE4IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIwojIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgojICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQojIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwojIHVuZGVyIHRoZSBMaWNlbnNlLgoKTWFuaWZlc3QgPSB7CiAgICAnTmFtZSc6ICdmYW5zX3N0YXR1c190cmFuc2l0aW9uX21vbml0b3InLAogICAgJ0Rlc2NyaXB0aW9uJzogJ0FnZW50IHRvIG1vbml0b3Igc3RhdHVzIG9mIGFsbCBmYW5zLCAnCiAgICAgICAgICAgICAgICAgICAnd2hlcmVpbiB0aGUgdHJhbnNpdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCAnCiAgICAgICAgICAgICAgICAgICAnc3RhdHVzKHVuaW5pdGlhbGl6ZWQvb2svZmF1bHQpIGlzIG1vbml0b3JlZC4nCiAgICAgICAgICAgICAgICAgICAnVGhlIGFnZW50IHN0YXR1cyBpcyBzZXQgdG8gQ3JpdGljYWwgd2hlbiBhbnkgJwogICAgICAgICAgICAgICAgICAgJ29mIHRoZSBmYW4gc3RhdHVzIGhhcyB0cmFuc2l0aW9uIGZyb20gJwogICAgICAgICAgICAgICAgICAgJ3VuaW5pdGlhbGl6ZWQvb2sgdG8gZmF1bHQuIFRoZSBhZ2VudCBzdGF0dXMgJwogICAgICAgICAgICAgICAgICAgJ3JlbWFpbnMgaW4gQ3JpdGljYWwgc3RhdGUsIHdoZW4gb3RoZXIgZmFucyAnCiAgICAgICAgICAgICAgICAgICAnc3RhdHVzIHRyYW5zaXRzIHRvIGZhdWx0LCBhbmQgc3lzbG9nIGFuZCBjbGkgJwogICAgICAgICAgICAgICAgICAgJ2FyZSBkaXNwbGF5ZWQuIFRoZSBhZ2VudCBzdGF0dXMgaXMgc2V0IGJhY2sgJwogICAgICAgICAgICAgICAgICAgJ3RvIG5vcm1hbCB3aGVuIGFsbCB0aGUgZmFucyBhcmUgaW4gJwogICAgICAgICAgICAgICAgICAgJ3VuaW5pdGlhbGl6ZWQvb2sgc3RhdHVzLicsCiAgICAnVmVyc2lvbic6ICcxLjAnLAogICAgJ0F1dGhvcic6ICdBcnViYSBOZXR3b3JrcycKfQoKCmNsYXNzIEFnZW50KE5BRSk6CgogICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgIHNlbGYudmFyaWFibGVzWydmYW5zX2xpc3QnXSA9ICcnCgogICAgICAgIHVyaTEgPSAnL3Jlc3QvdjEvc3lzdGVtL3N1YnN5c3RlbXMvKi8qL2ZhbnMvKj9hdHRyaWJ1dGVzPXN0YXR1cycKICAgICAgICBzZWxmLm0xID0gTW9uaXRvcih1cmkxLCAnRmFuIFN0YXR1cycpCgogICAgICAgIHNlbGYucjEgPSBSdWxlKCdTdGF0dXMgLSBvayAtPiBmYXVsdCcpCiAgICAgICAgc2VsZi5yMS5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gIm9rIiB0byAiZmF1bHQiJywgW3NlbGYubTFdKQogICAgICAgIHNlbGYucjEuYWN0aW9uKHNlbGYuZmFuc19zdGF0dXNfYWN0aW9uX2ZhdWx0KQoKICAgICAgICBzZWxmLnIyID0gUnVsZSgnU3RhdHVzIC0gdW5pbml0aWFsaXplZCAtPiBmYXVsdCcpCiAgICAgICAgc2VsZi5yMi5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gInVuaW5pdGlhbGl6ZWQiIHRvICJmYXVsdCInLCBbc2VsZi5tMV0pCiAgICAgICAgc2VsZi5yMi5hY3Rpb24oc2VsZi5mYW5zX3N0YXR1c19hY3Rpb25fZmF1bHQpCgogICAgICAgIHNlbGYucjMgPSBSdWxlKCdTdGF0dXMgLSBlbXB0eSAtPiBmYXVsdCcpCiAgICAgICAgc2VsZi5yMy5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gImVtcHR5IiB0byAiZmF1bHQiJywgW3NlbGYubTFdKQogICAgICAgIHNlbGYucjMuYWN0aW9uKHNlbGYuZmFuc19zdGF0dXNfYWN0aW9uX2ZhdWx0KQoKICAgICAgICBzZWxmLnI0ID0gUnVsZSgnU3RhdHVzIC0gZmF1bHQgLT4gb2snKQogICAgICAgIHNlbGYucjQuY29uZGl0aW9uKAogICAgICAgICAgICAndHJhbnNpdGlvbiB7fSBmcm9tICJmYXVsdCIgdG8gIm9rIicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnI0LmFjdGlvbihzZWxmLmZhbnNfc3RhdHVzX2FjdGlvbl9ub3JtYWwpCgogICAgICAgIHNlbGYucjUgPSBSdWxlKCdTdGF0dXMgLSBmYXVsdCAtPiB1bmluaXRpYWxpemVkJykKICAgICAgICBzZWxmLnI1LmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAiZmF1bHQiIHRvICJ1bmluaXRpYWxpemVkIicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnI1LmFjdGlvbihzZWxmLmZhbnNfc3RhdHVzX2FjdGlvbl9ub3JtYWwpCgogICAgICAgIHNlbGYucjYgPSBSdWxlKCdTdGF0dXMgLSBmYXVsdCAtPiBlbXB0eScpCiAgICAgICAgc2VsZi5yNi5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gImZhdWx0IiB0byAiZW1wdHkiJywgW3NlbGYubTFdKQogICAgICAgIHNlbGYucjYuYWN0aW9uKHNlbGYuZmFuc19zdGF0dXNfYWN0aW9uX25vcm1hbCkKCiAgICBkZWYgZmFuc19zdGF0dXNfYWN0aW9uX2ZhdWx0KHNlbGYsIGV2ZW50KToKICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiKioqKioqKipUUkFOU0lUSU9OIFRPIEZBVUxUKioqKioqKioiKQogICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdMQUJFTCA9ICcgKyBldmVudFsnbGFiZWxzJ10pCiAgICAgICAgbGFiZWwgPSBldmVudFsnbGFiZWxzJ10KICAgICAgICBmYW5uYW1lID0gbGFiZWwuc3BsaXQoJywnKVswXS5zcGxpdCgnPScpWzFdCgogICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdmYW5uYW1lPSAnICsgZmFubmFtZSkKICAgICAgICBpZiBzZWxmLnZhcmlhYmxlc1snZmFuc19saXN0J10gIT0gJyc6CiAgICAgICAgICAgIGZhbnNfbGlzdCA9IGZhbm5hbWUgKyBzZWxmLnZhcmlhYmxlc1snZmFuc19saXN0J10KICAgICAgICAgICAgc2VsZi52YXJpYWJsZXNbJ2ZhbnNfbGlzdCddID0gZmFuc19saXN0CiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi52YXJpYWJsZXNbJ2ZhbnNfbGlzdCddID0gZmFubmFtZQogICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdsaXN0IG9mIGZhbnMgPSAgJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52YXJpYWJsZXNbJ2ZhbnNfbGlzdCddKQogICAgICAgIHNlbGYuc2V0X2FjdGlvbnMoZmFubmFtZSkKCiAgICBkZWYgc2V0X2FjdGlvbnMoc2VsZiwgZmFubmFtZSk6CiAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIisrKyBDQUxMQkFDSzogRkFOIFNUQVRVUyAtIEZBVUxUISIpCiAgICAgICAgaWYgc2VsZi5nZXRfYWxlcnRfbGV2ZWwoKSAhPSBBbGVydExldmVsLkNSSVRJQ0FMOgogICAgICAgICAgICBzZWxmLnNldF9hbGVydF9sZXZlbChBbGVydExldmVsLkNSSVRJQ0FMKQogICAgICAgIEFjdGlvblN5c2xvZygnRmFuICcgKyBmYW5uYW1lICsgJyBpcyBGYXVsdHkgJykKICAgICAgICBBY3Rpb25DTEkoJ3Nob3cgZW52aXJvbm1lbnQgZmFuJykKCiAgICBkZWYgZmFuc19zdGF0dXNfYWN0aW9uX25vcm1hbChzZWxmLCBldmVudCk6CiAgICAgICAgaWYgc2VsZi5nZXRfYWxlcnRfbGV2ZWwoKSBpcyBub3QgTm9uZToKICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIioqKioqKioqVFJBTlNJVElPTiBUTyBOT1JNQUwqKioqKioqKiIpCiAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdMQUJFTCA9ICcgKyBldmVudFsnbGFiZWxzJ10pCiAgICAgICAgICAgIGxhYmVsID0gZXZlbnRbJ2xhYmVscyddCiAgICAgICAgICAgIGZhbm5hbWUgPSBsYWJlbC5zcGxpdCgnLCcpWzBdLnNwbGl0KCc9JylbMV0KCiAgICAgICAgICAgICMgZGVsZXRlIGZhbm5hbWUgd2hpY2ggbW92ZWQgdG8gb2sgc3RhdGUKICAgICAgICAgICAgaW5kZXggPSAwCiAgICAgICAgICAgIGxlbmd0aCA9IGxlbihmYW5uYW1lKQogICAgICAgICAgICBmaW5kZmFuID0gc2VsZi52YXJpYWJsZXNbJ2ZhbnNfbGlzdCddCiAgICAgICAgICAgIGluZGV4ID0gZmluZGZhbi5maW5kKGZhbm5hbWUpCiAgICAgICAgICAgIGlmIGluZGV4ICE9IC0xOgogICAgICAgICAgICAgICAgIyBpbmRleCA9IHN0cmluZy5maW5kKHN0ciwgc3Vic3RyKQogICAgICAgICAgICAgICAgZmluZGZhbiA9IGZpbmRmYW5bMDppbmRleF0gKyBmaW5kZmFuW2luZGV4ICsgbGVuZ3RoOl0KICAgICAgICAgICAgICAgIHNlbGYudmFyaWFibGVzWydmYW5zX2xpc3QnXSA9IGZpbmRmYW4KICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdGYW4gbmFtZSBkZWxldGVkICcgKyBmYW5uYW1lKQogICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoJ0N1cnJlbnQgZmFucyBsaXN0ICcgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52YXJpYWJsZXNbJ2ZhbnNfbGlzdCddKQogICAgICAgICAgICAgICAgQWN0aW9uU3lzbG9nKCdGYW4gJyArIGZhbm5hbWUgKyAnIGJhY2sgdG8gb2snKQogICAgICAgICAgICAgICAgaWYgc2VsZi52YXJpYWJsZXNbJ2ZhbnNfbGlzdCddID09ICcnOgogICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0X2FnZW50X3N0YXR1c19ub3JtYWwoKQoKICAgIGRlZiBzZXRfYWdlbnRfc3RhdHVzX25vcm1hbChzZWxmKToKICAgICAgICBzZWxmLnJlbW92ZV9hbGVydF9sZXZlbCgpCiAgICAgICAgQWN0aW9uU3lzbG9nKCdBbGwgZmFucyBzdGF0dXMgYXJlIG9rJykKCiAgICBkZWYgb25fYWdlbnRfcmVzdGFydChzZWxmLCBldmVudCk6CiAgICAgICAgc2VsZi5yZW1vdmVfYWxlcnRfbGV2ZWwoKQo=
nae-script temp_sensor_status_transition_monitor false IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIwojIChjKSBDb3B5cmlnaHQgMjAxNy0yMDE4IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIwojIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgojICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQojIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwojIHVuZGVyIHRoZSBMaWNlbnNlLgoKTWFuaWZlc3QgPSB7CiAgICAnTmFtZSc6ICd0ZW1wX3NlbnNvcl9zdGF0dXNfdHJhbnNpdGlvbl9tb25pdG9yJywKICAgICdEZXNjcmlwdGlvbic6ICdOZXR3b3JrIEFuYWx5dGljcyBBZ2VudCBTY3JpcHQgdG8gbW9uaXRvcicKICAgICAgICAgICAgICAgICAgICdzdGF0dXMgdHJhbnNpdGlvbnMgb2YgYWxsIHRlbXBlcmF0dXJlIHNlbnNvcnMnLAogICAgJ1ZlcnNpb24nOiAnMS4wJywKICAgICdBdXRob3InOiAnQXJ1YmEgTmV0d29ya3MnCn0KCgpjbGFzcyBBZ2VudChOQUUpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmKToKCiAgICAgICAgc2VsZi52YXJpYWJsZXNbJ3NlbnNvcnNfbGlzdCddID0gJycKCiAgICAgICAgdXJpMSA9ICcvcmVzdC92MS9zeXN0ZW0vc3Vic3lzdGVtcy8qLyovdGVtcF9zZW5zb3JzLyo/JyBcCiAgICAgICAgICAgICdhdHRyaWJ1dGVzPXN0YXR1cycKICAgICAgICBzZWxmLm0xID0gTW9uaXRvcih1cmkxLCAnU2Vuc29yIFN0YXR1cycpCgogICAgICAgICMgTU9OSVRPUiBOT1JNQUwgU1RBVEUgVFJBTlNJVElPTlMKCiAgICAgICAgIyBOb3JtYWwgLT4gTWluCiAgICAgICAgc2VsZi5yMSA9IFJ1bGUoJ1NlbnNvciBTdGF0dXMgLSBOb3JtYWwgLT4gTWluJykKICAgICAgICBzZWxmLnIxLmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAibm9ybWFsIiB0byAibWluIicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnIxLmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX25vcm1hbCkKCiAgICAgICAgIyBOb3JtYWwgLT4gTWF4CiAgICAgICAgc2VsZi5yMiA9IFJ1bGUoJ1NlbnNvciBTdGF0dXMgLSBOb3JtYWwgLT4gTWF4JykKICAgICAgICBzZWxmLnIyLmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAibm9ybWFsIiB0byAibWF4IicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnIyLmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX25vcm1hbCkKCiAgICAgICAgIyBMb3cgQ3JpdGljYWwgLT4gTWluCiAgICAgICAgc2VsZi5yMyA9IFJ1bGUoJ1NlbnNvciBTdGF0dXMgLSBMb3cgQ3JpdGljYWwgLT4gTWluJykKICAgICAgICBzZWxmLnIzLmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAibG93X2NyaXRpY2FsIiB0byAibWluIicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnIzLmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX25vcm1hbCkKCiAgICAgICAgIyBDcml0aWNhbCAtPiBNYXgKICAgICAgICBzZWxmLnI0ID0gUnVsZSgnU2Vuc29yIFN0YXR1cyAtIENyaXRpY2FsIC0+IE1heCcpCiAgICAgICAgc2VsZi5yNC5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gImNyaXRpY2FsIiB0byAibWF4IicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnI0LmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX25vcm1hbCkKCiAgICAgICAgIyBGYXVsdCAtPiBVbmluaXRpYWxpemVkCiAgICAgICAgc2VsZi5yNSA9IFJ1bGUoJ1NlbnNvciBTdGF0dXMgLSBGYXVsdCAtPiBVbmluaXRpYWxpemVkJykKICAgICAgICBzZWxmLnI1LmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAiZmF1bHQiIHRvICJ1bmluaXRpYWxpemVkIicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnI1LmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX25vcm1hbCkKCiAgICAgICAgIyBGYXVsdCAtPiBOb3JtYWwKICAgICAgICBzZWxmLnI2ID0gUnVsZSgnU2Vuc29yIFN0YXR1cyAtIEZhdWx0IC0+IE5vcm1hbCcpCiAgICAgICAgc2VsZi5yNi5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gImZhdWx0IiB0byAibm9ybWFsIicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnI2LmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX25vcm1hbCkKCiAgICAgICAgIyBGYXVsdCAtPiBNaW4KICAgICAgICBzZWxmLnI3ID0gUnVsZSgnU2Vuc29yIFN0YXR1cyAtIEZhdWx0IC0+IE1pbicpCiAgICAgICAgc2VsZi5yNy5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gImZhdWx0IiB0byAibWluIicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnI3LmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX25vcm1hbCkKCiAgICAgICAgIyBGYXVsdCAtPiBNYXgKICAgICAgICBzZWxmLnI4ID0gUnVsZSgnU2Vuc29yIFN0YXR1cyAtIEZhdWx0IC0+IE1heCcpCiAgICAgICAgc2VsZi5yOC5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gImZhdWx0IiB0byAibWF4IicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnI4LmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX25vcm1hbCkKCiAgICAgICAgIyBNT05JVE9SIENSSVRJQ0FMIFNUQVRFIFRSQU5TSVRJT05TCgogICAgICAgICMgTWluIC0+IExvdyBDcml0aWNhbAogICAgICAgIHNlbGYucjkgPSBSdWxlKCdTZW5zb3IgU3RhdHVzIC0gTWluIC0+IExvdyBDcml0aWNhbCcpCiAgICAgICAgc2VsZi5yOS5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gIm1pbiIgdG8gImxvd19jcml0aWNhbCInLCBbc2VsZi5tMV0pCiAgICAgICAgc2VsZi5yOS5hY3Rpb24oc2VsZi5zZW5zb3Jfc3RhdHVzX2FjdGlvbl9jcml0aWNhbCkKCiAgICAgICAgIyBNYXggLT4gQ3JpdGljYWwKICAgICAgICBzZWxmLnIxMCA9IFJ1bGUoJ1NlbnNvciBTdGF0dXMgLSBNYXggLT4gQ3JpdGljYWwnKQogICAgICAgIHNlbGYucjEwLmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAibWF4IiB0byAiY3JpdGljYWwiJywgW3NlbGYubTFdKQogICAgICAgIHNlbGYucjEwLmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX2NyaXRpY2FsKQoKICAgICAgICAjIENyaXRpY2FsIC0+IEVtZXJnZW5jeQogICAgICAgIHNlbGYucjExID0gUnVsZSgKICAgICAgICAgICAgJ1NlbnNvciBTdGF0dXMgLSBDcml0aWNhbCAtPiBFbWVyZ2VuY3knKQogICAgICAgIHNlbGYucjExLmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAiY3JpdGljYWwiIHRvICJlbWVyZ2VuY3kiJywKICAgICAgICAgICAgW3NlbGYubTFdKQogICAgICAgIHNlbGYucjExLmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX2NyaXRpY2FsKQoKICAgICAgICAjIEVtZXJnZW5jeSAtPiBDcml0aWNhbAogICAgICAgIHNlbGYucjEyID0gUnVsZSgnU2Vuc29yIFN0YXR1cyAtIEVtZXJnZW5jeSAtPiBDcml0aWNhbCcpCiAgICAgICAgc2VsZi5yMTIuY29uZGl0aW9uKAogICAgICAgICAgICAndHJhbnNpdGlvbiB7fSBmcm9tICJlbWVyZ2VuY3kiIHRvICJjcml0aWNhbCInLCBbc2VsZi5tMV0pCiAgICAgICAgc2VsZi5yMTIuYWN0aW9uKHNlbGYuc2Vuc29yX3N0YXR1c19hY3Rpb25fY3JpdGljYWwpCgogICAgICAgICMgVW5pbml0aWFsaXplZCAtPiBGYXVsdAogICAgICAgIHNlbGYucjEzID0gUnVsZSgnU2Vuc29yIFN0YXR1cyAtIFVuaW5pdGlhbGl6ZWQgLT4gRmF1bHQnKQogICAgICAgIHNlbGYucjEzLmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAidW5pbml0aWFsaXplZCIgdG8gImZhdWx0IicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnIxMy5hY3Rpb24oc2VsZi5zZW5zb3Jfc3RhdHVzX2FjdGlvbl9jcml0aWNhbCkKCiAgICAgICAgIyBOb3JtYWwgLT4gRmF1bHQKICAgICAgICBzZWxmLnIxNCA9IFJ1bGUoJ1NlbnNvciBTdGF0dXMgLSBOb3JtYWwgLT4gRmF1bHQnKQogICAgICAgIHNlbGYucjE0LmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAibm9ybWFsIiB0byAiZmF1bHQiJywgW3NlbGYubTFdKQogICAgICAgIHNlbGYucjE0LmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX2NyaXRpY2FsKQoKICAgICAgICAjIE1pbiAtPiBGYXVsdAogICAgICAgIHNlbGYucjE1ID0gUnVsZSgnU2Vuc29yIFN0YXR1cyAtIE1pbiAtPiBGYXVsdCcpCiAgICAgICAgc2VsZi5yMTUuY29uZGl0aW9uKAogICAgICAgICAgICAndHJhbnNpdGlvbiB7fSBmcm9tICJtaW4iIHRvICJmYXVsdCInLCBbc2VsZi5tMV0pCiAgICAgICAgc2VsZi5yMTUuYWN0aW9uKHNlbGYuc2Vuc29yX3N0YXR1c19hY3Rpb25fY3JpdGljYWwpCgogICAgICAgICMgTG93IENyaXRpY2FsIC0+IEZhdWx0CiAgICAgICAgc2VsZi5yMTYgPSBSdWxlKCdTZW5zb3IgU3RhdHVzIC0gTG93IENyaXRpY2FsIC0+IEZhdWx0JykKICAgICAgICBzZWxmLnIxNi5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gImxvd19jcml0aWNhbCIgdG8gImZhdWx0IicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnIxNi5hY3Rpb24oc2VsZi5zZW5zb3Jfc3RhdHVzX2FjdGlvbl9jcml0aWNhbCkKCiAgICAgICAgIyBNYXggLT4gRmF1bHQKICAgICAgICBzZWxmLnIxNyA9IFJ1bGUoJ1NlbnNvciBTdGF0dXMgLSBNYXggLT4gRmF1bHQnKQogICAgICAgIHNlbGYucjE3LmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAibWF4IiB0byAiZmF1bHQiJywgW3NlbGYubTFdKQogICAgICAgIHNlbGYucjE3LmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX2NyaXRpY2FsKQoKICAgICAgICAjIENyaXRpY2FsIC0+IEZhdWx0CiAgICAgICAgc2VsZi5yMTggPSBSdWxlKCdTZW5zb3IgU3RhdHVzIC0gQ3JpdGljYWwgLT4gRmF1bHQnKQogICAgICAgIHNlbGYucjE4LmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAiY3JpdGljYWwiIHRvICJmYXVsdCInLCBbc2VsZi5tMV0pCiAgICAgICAgc2VsZi5yMTguYWN0aW9uKHNlbGYuc2Vuc29yX3N0YXR1c19hY3Rpb25fY3JpdGljYWwpCgogICAgICAgICMgRW1lcmdlbmN5IC0+IEZhdWx0CiAgICAgICAgc2VsZi5yMTkgPSBSdWxlKCdTZW5zb3IgU3RhdHVzIC0gRW1lcmdlbmN5IC0+IEZhdWx0JykKICAgICAgICBzZWxmLnIxOS5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gImVtZXJnZW5jeSIgdG8gImZhdWx0IicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnIxOS5hY3Rpb24oc2VsZi5zZW5zb3Jfc3RhdHVzX2FjdGlvbl9jcml0aWNhbCkKCiAgICAgICAgIyBGYXVsdCAtPiBFbWVyZ2VuY3kKICAgICAgICBzZWxmLnIyMCA9IFJ1bGUoJ1NlbnNvciBTdGF0dXMgLSBGYXVsdCAtPiBFbWVyZ2VuY3knKQogICAgICAgIHNlbGYucjIwLmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAiZmF1bHQiIHRvICJlbWVyZ2VuY3kiJywgW3NlbGYubTFdKQogICAgICAgIHNlbGYucjIwLmFjdGlvbihzZWxmLnNlbnNvcl9zdGF0dXNfYWN0aW9uX2NyaXRpY2FsKQoKICAgICAgICAjIEZhdWx0IC0+IENyaXRpY2FsCiAgICAgICAgc2VsZi5yMjEgPSBSdWxlKCdTZW5zb3IgU3RhdHVzIC0gRmF1bHQgLT4gQ3JpdGljYWwnKQogICAgICAgIHNlbGYucjIxLmNvbmRpdGlvbigKICAgICAgICAgICAgJ3RyYW5zaXRpb24ge30gZnJvbSAiZmF1bHQiIHRvICJjcml0aWNhbCInLCBbc2VsZi5tMV0pCiAgICAgICAgc2VsZi5yMjEuYWN0aW9uKHNlbGYuc2Vuc29yX3N0YXR1c19hY3Rpb25fY3JpdGljYWwpCgogICAgICAgICMgRmF1bHQgLT4gTG93IENyaXRpY2FsCiAgICAgICAgc2VsZi5yMjIgPSBSdWxlKCdTZW5zb3IgU3RhdHVzIC0gRmF1bHQgLT4gTG93IENyaXRpY2FsJykKICAgICAgICBzZWxmLnIyMi5jb25kaXRpb24oCiAgICAgICAgICAgICd0cmFuc2l0aW9uIHt9IGZyb20gImZhdWx0IiB0byAibG93X2NyaXRpY2FsIicsIFtzZWxmLm0xXSkKICAgICAgICBzZWxmLnIyMi5hY3Rpb24oc2VsZi5zZW5zb3Jfc3RhdHVzX2FjdGlvbl9jcml0aWNhbCkKCiAgICBkZWYgc2Vuc29yX3N0YXR1c19hY3Rpb25fY3JpdGljYWwoc2VsZiwgZXZlbnQpOgogICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCcqKioqKioqKkNSSVRJQ0FMKioqKioqKionKQogICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdMQUJFTCA9ICcgKyBldmVudFsnbGFiZWxzJ10gKwogICAgICAgICAgICAgICAgICAgICAgICAgICdWQUxVRSA9ICcgKyBldmVudFsndmFsdWUnXSkKICAgICAgICBsYWJlbCA9IHN0cihldmVudFsnbGFiZWxzJ10pCiAgICAgICAgbGFiZWxzcGxpdCA9IGxhYmVsLnNwbGl0KCIsIikKICAgICAgICByZWFkc2Vuc29yID0gbGFiZWxzcGxpdFsxXQogICAgICAgIHJlYWRzZW5zb3JzcGxpdCA9IHJlYWRzZW5zb3Iuc3BsaXQoIj0iKQogICAgICAgIHNlbnNvcm5hbWUgPSBzdHIocmVhZHNlbnNvcnNwbGl0WzFdKQogICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdTZW5zb3IgTmFtZT0gJyArIHNlbnNvcm5hbWUpCiAgICAgICAgaWYgc2VsZi52YXJpYWJsZXNbJ3NlbnNvcnNfbGlzdCddICE9ICcnOgogICAgICAgICAgICBmaW5kc2Vuc29yID0gc2VsZi52YXJpYWJsZXNbJ3NlbnNvcnNfbGlzdCddCiAgICAgICAgICAgIGlzdHJ1ZSA9IGZpbmRzZW5zb3IuZmluZChzZW5zb3JuYW1lKQogICAgICAgICAgICBpZiBpc3RydWUgPT0gLTE6CiAgICAgICAgICAgICAgICBzZW5zb3JzX2xpc3QgPSBzZW5zb3JuYW1lICsgc2VsZi52YXJpYWJsZXNbJ3NlbnNvcnNfbGlzdCddCiAgICAgICAgICAgICAgICBzZWxmLnZhcmlhYmxlc1snc2Vuc29yc19saXN0J10gPSBzZW5zb3JzX2xpc3QKICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdsaXN0IG9mIHNlbnNvcnMgOiAnICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmFyaWFibGVzWydzZW5zb3JzX2xpc3QnXSkKICAgICAgICAgICAgICAgIHNlbGYuc2V0YWN0aW9ucyhzZW5zb3JuYW1lKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgQWN0aW9uU3lzbG9nKCdTZW5zb3I6ICcgKyBzZW5zb3JuYW1lICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIGlzIGluIENyaXRpY2FsIHN0YXRlJykKICAgICAgICAgICAgICAgIEFjdGlvbkNMSSgnc2hvdyBlbnZpcm9ubWVudCB0ZW1wZXJhdHVyZScpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi52YXJpYWJsZXNbJ3NlbnNvcnNfbGlzdCddID0gc2Vuc29ybmFtZQogICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygnbGlzdCBvZiBzZW5zb3JzOicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZhcmlhYmxlc1snc2Vuc29yc19saXN0J10pCiAgICAgICAgICAgIHNlbGYuc2V0YWN0aW9ucyhzZW5zb3JuYW1lKQoKICAgIGRlZiBzZXRhY3Rpb25zKHNlbGYsIHNlbnNvcm5hbWUpOgogICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCcrKysgQ0FMTEJBQ0s6IFNFTlNPUiBTVEFUVVMgLSBDUklUSUNBTCEnKQogICAgICAgIHNlbGYuc2V0X2FsZXJ0X2xldmVsKEFsZXJ0TGV2ZWwuQ1JJVElDQUwpCiAgICAgICAgQWN0aW9uU3lzbG9nKCdTZW5zb3I6ICcgKyBzZW5zb3JuYW1lICsKICAgICAgICAgICAgICAgICAgICAgJyBpcyBpbiBDcml0aWNhbCBzdGF0ZScpCiAgICAgICAgQWN0aW9uQ0xJKCdzaG93IGVudmlyb25tZW50IHRlbXBlcmF0dXJlJykKCiAgICBkZWYgc2Vuc29yX3N0YXR1c19hY3Rpb25fbm9ybWFsKHNlbGYsIGV2ZW50KToKICAgICAgICBpZiBzZWxmLmdldF9hbGVydF9sZXZlbCgpIGlzIG5vdCBOb25lOgogICAgICAgICAgICBpZiBzZWxmLnZhcmlhYmxlc1snc2Vuc29yc19saXN0J10gPT0gJyc6CiAgICAgICAgICAgICAgICBzZWxmLnNldF9wb2xpY3lfc3RhdHVzX25vcm1hbCgpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBwcmludCgnKioqKioqKipOT1JNQUwqKioqKioqKicpCiAgICAgICAgICAgICAgICBsYWJlbCA9IHN0cihldmVudFsnbGFiZWxzJ10pCiAgICAgICAgICAgICAgICBsYWJlbHNwbGl0ID0gbGFiZWwuc3BsaXQoIiwiKQogICAgICAgICAgICAgICAgcmVhZHNlbnNvciA9IGxhYmVsc3BsaXRbMV0KICAgICAgICAgICAgICAgIHJlYWRzZW5zb3JzcGxpdCA9IHJlYWRzZW5zb3Iuc3BsaXQoIj0iKQogICAgICAgICAgICAgICAgc2Vuc29ybmFtZSA9IHN0cihyZWFkc2Vuc29yc3BsaXRbMV0pCgogICAgICAgICAgICAgICAgJycnCiAgICAgICAgICAgICAgICBkZWxldGUgYWxsIFNlbnNvciBOYW1lJ3Mgd2hpY2ggbW92ZWQgYmFjayB0bwogICAgICAgICAgICAgICAgTm9ybWFsIHN0YXRlIGZyb20gQ3JpdGljYWwgc3RhdGUKICAgICAgICAgICAgICAgICcnJwogICAgICAgICAgICAgICAgaW5kZXggPSAwCiAgICAgICAgICAgICAgICBsZW5ndGggPSBsZW4oc2Vuc29ybmFtZSkKICAgICAgICAgICAgICAgIGZpbmRzZW5zb3IgPSBzZWxmLnZhcmlhYmxlc1snc2Vuc29yc19saXN0J10KICAgICAgICAgICAgICAgIGluZGV4ID0gZmluZHNlbnNvci5maW5kKHNlbnNvcm5hbWUpCiAgICAgICAgICAgICAgICBpZiBpbmRleCAhPSAtMToKICAgICAgICAgICAgICAgICAgICAjIGluZGV4ID0gc3RyaW5nLmZpbmQoc3RyLCBzdWJzdHIpCiAgICAgICAgICAgICAgICAgICAgZmluZHNlbnNvciA9IGZpbmRzZW5zb3JbCiAgICAgICAgICAgICAgICAgICAgICAgIDA6aW5kZXhdICsgZmluZHNlbnNvclsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ICsgbGVuZ3RoOl0KICAgICAgICAgICAgICAgICAgICBzZWxmLnZhcmlhYmxlc1snc2Vuc29yc19saXN0J10gPSBmaW5kc2Vuc29yCiAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoJ1NlbnNvciBuYW1lIGRlbGV0ZWQ6ICcgKyBzZW5zb3JuYW1lKQogICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdDdXJyZW50IFNlbnNvcnMgbGlzdDogJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52YXJpYWJsZXNbJ3NlbnNvcnNfbGlzdCddKQogICAgICAgICAgICAgICAgICAgIEFjdGlvblN5c2xvZygnU2Vuc29yICcgKyBzZW5zb3JuYW1lICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBpcyBiYWNrIHRvIE5vcm1hbCcpCiAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi52YXJpYWJsZXNbJ3NlbnNvcnNfbGlzdCddID09ICcnOgogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldF9wb2xpY3lfc3RhdHVzX25vcm1hbCgpCgogICAgZGVmIHNldF9wb2xpY3lfc3RhdHVzX25vcm1hbChzZWxmKToKICAgICAgICBzZWxmLnJlbW92ZV9hbGVydF9sZXZlbCgpCiAgICAgICAgQWN0aW9uU3lzbG9nKCdBbGwgU2Vuc29ycyBhcmUgTm9ybWFsJykK
nae-agent fans_status_transition_monitor fans_status_transition_monitor.default false
nae-agent temp_sensor_status_transition_monitor temp_sensor_status_transition_monitor.default false