CINXE.COM
邮件订阅
<!DOCTYPE html> <html lang="zh" data-region="cn"> <head><meta name="keywords" content="华为,Huawei, FusionSolar, 华为光伏,智能光伏,光伏业务,光伏发电,逆变器,光伏逆变器,光伏电站,网络能源,大型地面,领跑者,分布式,户用,扶贫"><meta name="description" content="华为率先将20多年积累的数字信息技术、互联网技术与光伏技术进行跨界融合,推出领先的智能光伏解决方案。基于简单、全数字化、全球化自动营维等创新理念,打造 “高效发电、智能营维、安全可靠” 的智能光伏电站。"><title> 邮件订阅 </title><meta http-equiv="x-UA-Compatible" content="IE=Edge"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="applicable-device" content="pc,mobile"> <link rel="Shortcut Icon" href="/Assets/solar/v4/img/img_ent_en_logo_ico.ico"> <link rel="stylesheet" type="text/css" href="/Assets/Solar/v4/css/aui3.css?ver=202412261628"> <link rel="stylesheet" type="text/css" href="/Assets/Solar/v4/css/common.css?ver=202412261628"> <link rel="stylesheet" type="text/css" href="/-/media/SolarV4/solar-version2/common/newsletter/css/newsletter.css?ver=202412261628"> </head> <body class="aui3 ev_no_wcag"> <form method="post" action="/cn/newsletter" id="form1"> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTk0MTI5NzA5OA8WAh4TVmFsaWRhdGVSZXF1ZXN0TW9kZQIBFghmD2QWAgIDD2QWAmYPZBYCZg9kFgJmDxYCHgRUZXh0Ba8EPG1ldGEgaHR0cC1lcXVpdj0ieC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1FZGdlIiAvPgo8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+CjxtZXRhIG5hbWU9ImFwcGxpY2FibGUtZGV2aWNlIiBjb250ZW50PSJwYyxtb2JpbGUiPgo8bGluayByZWw9IlNob3J0Y3V0IEljb24iIGhyZWY9Ii9Bc3NldHMvc29sYXIvdjQvaW1nL2ltZ19lbnRfZW5fbG9nb19pY28uaWNvIj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL0Fzc2V0cy9Tb2xhci92NC9jc3MvYXVpMy5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvQXNzZXRzL1NvbGFyL3Y0L2Nzcy9jb21tb24uY3NzIj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIKaHJlZj0iLy0vbWVkaWEvU29sYXJWNC9zb2xhci12ZXJzaW9uMi9jb21tb24vbmV3c2xldHRlci9jc3MvbmV3c2xldHRlci5jc3MiIC8+CmQCAg9kFgJmD2QWAmYPZBYMAgEPFgIfAQWMMDxkaXYgY2xhc3M9Im5hdi1hbGxMYW5nQm94Ij4KICAgIDxkaXYgY2xhc3M9Imljb24tY2xvc2UiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iY3Vyci1sYW5nIj48c3BhbiBjbGFzcz0iaWNvbi1jdXJyIj48L3NwYW4+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2VuIj5GdXNpb25Tb2xhciBHbG9iYWwgLyBFbmdsaXNoPC9hPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJhbGxMYW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhcmVhSXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFyZWFUZXh0Ij5Bc2lhIFBhY2lmaWM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0xpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9hdSI+QXVzdHJhbGlhIC8gRW5nbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vY24iPkNoaW5hIC8g566A5L2T5Lit5paHPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9oayI+SG9uZyBLb25nLCBDaGluYSAvIOe5gemrlOS4reaWhzwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vaWQiPkluZG9uZXNpYSAvIEluZG9uZXNpYW48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2pwIj5KYXBhbiAvIOaXpeacrOiqnjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vbXkiPk1hbGF5c2lhIC8gRW5nbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vcGgiPlBoaWxpcHBpbmVzIC8gRW5nbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vc2ciPlNpbmdhcG9yZSAvIEVuZ2xpc2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2tyIj5Tb3V0aCBLb3JlYSAvIO2VnOq1reyWtDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vdGgiPlRoYWlsYW5kIC8g4LmE4LiX4LiiPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS92biI+VmlldG5hbSAvIEVuZ2xpc2g8L2E+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyZWFJdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXJlYVRleHQiPkV1cm9wZTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nTGlzdCI+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9hdCI+QXVzdHJpYSAvIERldXRzY2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2JlLWZyIj5CZWxnaXVtIC8gRnJhbsOnYWlzPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9iZSI+QmVsZ2l1bSAvIE5lZGVybGFuZHM8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2JnIj5CdWxnYXJpYSAvINCx0YrQu9Cz0LDRgNGB0LrQuDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vaHIiPkNyb2F0aWEgLyBocnZhdHNraTwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vY3oiPkN6ZWNoaWEgLyDEjWXFoXRpbmE8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2RrIj5EZW5tYXJrIC8gRGFuc2s8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2ZyIj5GcmFuY2UgLyBGcmFuw6dhaXM8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2RlIj5HZXJtYW55IC8gRGV1dHNjaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vZ3IiPkdyZWVjZSAvIM6VzrvOu863zr3Ouc66zqw8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2h1Ij5IdW5nYXJ5IC8gSHVuZ2FyaWFuPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9pZSI+SXJlbGFuZCAvIEVuZ2xpc2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2l0Ij5JdGFseSAvIEl0YWxpYW5vPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9ubCI+TmV0aGVybGFuZHMgLyBEdXRjaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vcGwiPlBvbGFuZCAvIFBvbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vcHQiPlBvcnR1Z2FsIC8gcG9ydHVndcOqczwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vcm8iPlJvbWFuaWEgLyByb23Dom7EgzwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vc2siPlNsb3Zha2lhIC8gc2xvdmVuxI1pbmE8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2VzIj5TcGFpbiAvIEVzcGHDsW9sPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9zZSI+U3dlZGVuIC8gU3ZlbnNrYTwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vY2giPlN3aXR6ZXJsYW5kIC8gRGV1dHNjaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vY2gtZnIiPlN3aXR6ZXJsYW5kIC8gRnJhbsOnYWlzPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS90ciI+VMO8cmtpeWUgLyBUw7xya8OnZTwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vdWEiPlVrcmFpbmUgLyDQo9C60YDQsNGX0L3QsDwvYT48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXJlYUl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcmVhVGV4dCI+TGF0aW4gQW1lcmljYTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nTGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2JyIj5CcmF6aWwgLyBQb3J0dWd1ZXNlPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9sYXRhbSI+TGF0aW4gQW1lcmljYSAvIEVzcGHDsW9sPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9teCI+TcOpeGljbyAvIEVzcGHDsW9sPC9hPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhcmVhSXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFyZWFUZXh0Ij5NaWRkbGUgRWFzdCAmYW1wOyBBZnJpY2E8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0xpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9lZyI+RWd5cHQgLyDYp9mE2YTYutipINin2YTYudix2KjZitipPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9rZSI+S2VueWEgLyBFbmdsaXNoPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9tYSI+TW9yb2NjbyAvIEZyYW7Dp2FpczwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vbmciPk5pZ2VyaWEgLyBFbmdsaXNoPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9wayI+UGFraXN0YW4gLyBFbmdsaXNoPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9zYSI+U2F1ZGkgQXJhYmlhIC8g2KfZhNmE2LrYqSDYp9mE2LnYsdio2YrYqSA8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3NhLWVuIj5TYXVkaSBBcmFiaWEgLyBFbmdsaXNoPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS96YSI+U291dGggQWZyaWNhIC8gRW5nbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vdG4iPlR1bmlzaWEgLyBGcmFuw6dhaXM8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2FlIj5VQUUgLyDYp9mE2YTYutipINin2YTYudix2KjZitipPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9hZS1lbiI+VUFFIC8gRW5nbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgPC9kaXY+CjwvZGl2PmQCAg8WAh4LXyFJdGVtQ291bnQCBhYMZg9kFgRmDxUEDy9jbi9ob21lLW93bmVycwDkBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjE1QjIzRjcnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeWutuW6reS4muS4uycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonSG9tZSBPd25lcnMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzlrrbluq3kuJrkuLtkAgEPFgIfAgL/////D2QCAQ9kFgRmDxUEEy9jbi9idXNpbmVzcy1vd25lcnMA7AR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYxQzVFRDUyJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kvIHkuJrkuJrkuLsnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonQnVzaW5lc3MgT3duZXJzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzkvIHkuJrkuJrkuLtkAgEPFgIfAgL/////D2QCAg9kFgRmDxUEGC9jbi91dGlsaXR5LXBsYW50LW93bmVycwDxBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjM3OEVDMTcnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeeUteermeS4muS4uycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidVdGlsaXR5IFBsYW50IE93bmVycycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M55S156uZ5Lia5Li7ZAIBDxYCHwIC/////w9kAgMPZBYEZg8VBB0vY24vcHJvZmVzc2lvbmFscy9yZXNpZGVudGlhbADqBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjE0NUY1QjEnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9mZXNzaW9uYWxzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzkuJPkuJrkurrlo6tkAgEPFgQfAgIHHgdWaXNpYmxlZxYOZg9kFgJmDxUEHS9jbi9wcm9mZXNzaW9uYWxzL3Jlc2lkZW50aWFsAJwFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNjJERDVFRCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiT5Lia5Lq65aOrLeWutuW6ree7v+eUtScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKydSZXNpZGVudGlhbCBTbWFydCBQViAmIEVTUyBTb2x1dGlvbicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5a625bqt57u/55S1ZAIBD2QWAmYPFQQVL2NuL3Byb2Zlc3Npb25hbHMvYy1pAJMFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMkJCMjVFOScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiT5Lia5Lq65aOrLeihjOS4mue7v+eUtScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9mZXNzaW9uYWxzJysnKycrJ0MmSSBTbWFydCBQViAmIEVTUyBTb2x1dGlvbicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M6KGM5Lia57u/55S1ZAICD2QWAmYPFQQgL2NuL3Byb2Zlc3Npb25hbHMvcHYtZXNzLWNoYXJnZXIAnQV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYyQkIyNUU5JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6st6KGM5Lia57u/55S1Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysnT25lLXN0b3Agb3B0aWNhbCBzdG9yYWdlIGFuZCBjaGFyZ2luZycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S5YWJ5YKo5YWF5LiA56uZ5byPZAIDD2QWAmYPFQQZL2NuL3Byb2Zlc3Npb25hbHMvdXRpbGl0eQCSBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjFFQzI3ODQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3mmbrog73lhYnkvI8nLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysnVXRpbGl0eSBTbWFydCBQViBTb2x1dGlvbicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S5pm66IO95YWJ5LyP55S156uZZAIED2QWAmYPFQQVL2NuL3Byb2Zlc3Npb25hbHMvZXNzAJoFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNzc4REE4RCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiT5Lia5Lq65aOrLeaZuuiDvee7hOS4sicsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKydVdGlsaXR5IFNtYXJ0IFN0cmluZyBFU1MgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319FeaZuuiDvee7hOS4suW8j+WCqOiDvWQCBQ9kFgJmDxUEHC9jbi9wcm9mZXNzaW9uYWxzL21pY3JvLWdyaWQAkgV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY3NjgyQkVBJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6st5pm66IO95b6u572RJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9mZXNzaW9uYWxzJysnKycrJ1NtYXJ0IE1pY3JvLWdyaWQgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOaZuuiDveW+rue9kWQCBg9kFgJmDxUEHS9jbi9wcm9mZXNzaW9uYWxzL1NtYXJ0RGVzaWduAI0FdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQzMzVFRTg0RkU2X0M2RjVBN0I0QTJCQ0M1QicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiT5Lia5Lq65aOrLeaZuuiDveiuvuiuoeW3peWFtycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9mZXNzaW9uYWxzJysnKycrJ1NtYXJ0RGVzaWduIDIuMCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S5pm66IO96K6+6K6h5bel5YW3ZAIED2QWBGYPFQQhL2NuL3BhcnRuZXJzL3BhcnRuZXItaW50cm9kdWN0aW9uAOUEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMkI3ODc1NCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5ZCI5L2c5LyZ5Ly0Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1BhcnRuZXJzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzlkIjkvZzkvJnkvLRkAgEPFgQfAgIFHwNnFgpmD2QWAmYPFQQhL2NuL3BhcnRuZXJzL3BhcnRuZXItaW50cm9kdWN0aW9uAIgFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNzQ3MjMxNCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5ZCI5L2c5LyZ5Ly0LeS8meS8tOS7i+e7jScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUGFydG5lcnMnKycrJysnUGFydG5lciBJbnRyb2R1Y3Rpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOS8meS8tOS7i+e7jWQCAQ9kFgJmDxUELmh0dHBzOi8vcGFydG5lci5odWF3ZWkuY29tL2VjcHJpLyMvP2xhbmc9emhfQ04GX2JsYW5rhAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY1RTI0RDhGJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lkIjkvZzkvJnkvLQt5oiQ5Li65LyZ5Ly0Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKydCZWNvbWUgYSBQYXJ0bmVyJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzmiJDkuLrkvJnkvLRkAgIPZBYCZg8VBDBodHRwczovL2RpZ2l0YWxwb3dlci5odWF3ZWkuY29tL3BhcnRuZXIjL2NuL21haW4GX2JsYW5rgQV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY3QjQzRDBCJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lkIjkvZzkvJnkvLQtcG93ZXJwYXJ0bmVyJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKydQb3dlci1QYXJ0bmVyJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQ1Qb3dlci1QYXJ0bmVyZAIDD2QWAmYPFQQwaHR0cHM6Ly9jb21tdW5pdHkuc29sYXIuaHVhd2VpLmNvbS9jbi9pbmRleC5odG1sBl9ibGFua4sFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGN0IwOTBBRicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5ZCI5L2c5LyZ5Ly0LeWuieijheWVhuekvuWMuicsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUGFydG5lcnMnKycrJysnSW5zdGFsbGVycyBDb21tdW5pdHknKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319D+WuieijheWVhuekvuWMumQCBA9kFgJmDxUEHy9jbi9wYXJ0bmVycy9tYXA/dHlwZT1pbnN0YWxsZXIAiAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDMzNUVFODRGRTZfQzgyMDlDN0M0MDQ0QkI3JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lkIjkvZzkvJnkvLQt5a+75om+5a6J6KOF5ZWGJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKydGaW5kIGFuIEluc3RhbGxlcicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0P5a+75om+5a6J6KOF5ZWGZAIFD2QWBGYPFQQeL2NuL3Byb2Zlc3Npb25hbHMvYWxsLXByb2R1Y3RzANwEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMDNCMjY0QicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5Lqn5ZOBJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZHVjdHMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQbkuqflk4FkAgEPFgIfAgL/////D2QCAw8WAh8CAgMWBmYPZBYEZg8VBBcvY24vc2VydmljZS1zdXBwb3J0L3RzYwDcBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjI5RDIxQkInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeaUr+aMgScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidTdXBwb3J0JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0G5pSv5oyBZAIBDxYEHwICAx8DZxYGZg9kFgJmDxUEFy9jbi9zZXJ2aWNlLXN1cHBvcnQvdHNjAP4EdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQzMzVFRTg0RkU2X0M2RjVCMzZGNDlFMjNBOScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5oqA5pyv5pSv5oyB5Lit5b+DJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidTdXBwb3J0JysnKycrJ1NlcnZpY2VzIGFuZCBTdXBwb3J0JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0P5pyN5Yqh5LiO5pSv5oyBZAIBD2QWAmYPFQRTaHR0cHM6Ly9mb3J1bS5odWF3ZWkuY29tL2VudGVycHJpc2UvemgvZm9ydW1zLzU4MDg3OTc5OTY3NTY2MjMzNi81ODA4Nzk4MjMwOTI0NjE1NjgGX2JsYW5r6QR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY0MkEyRTI3JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3mlK/mjIEt6K665Z2bJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1N1cHBvcnQnKycrJysnRm9ydW0nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQborrrlnZtkAgIPZBYCZg8VBGNodHRwczovL2RpZ2l0YWxwb3dlci5odWF3ZWkuY29tL3JvYm90Y2hhdC8jL2hvbWUvaW5kZXg/bGFuZz16aF9DTiZkb21haW49c21hcnRwdiZmcm9tX3RpdGxlX3poPTExMTcGX2JsYW5r+QR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY0NzdDQUY1JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3mlK/mjIEt5Zyo57q/5pSv5oyBJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidTdXBwb3J0JysnKycrJ09ubGluZSBTdXBwb3J0JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5Zyo57q/5pSv5oyBZAIBD2QWBGYPFQQwaHR0cHM6Ly9jb21tdW5pdHkuc29sYXIuaHVhd2VpLmNvbS9jbi9pbmRleC5odG1sBl9ibGFua94EdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMkEwQjk0MCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt56S+5Yy6Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J0NvbW11bml0eScrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319BuekvuWMumQCAQ8WAh8CAv////8PZAICD2QWBGYPFQQiaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2NuL2luZm8vLwZfYmxhbmvhBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjRERUNBMTAnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4i+i9veS4reW/gycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonRG93bmxvYWQnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzkuIvovb3kuK3lv4NkAgEPFgQfAgICHwNnFgRmD2QWAmYPFQQiaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2NuL2luZm8vLwZfYmxhbmuIBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjZGMDhBNUYnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4i+i9veS4reW/gy3kuqflk4HotYTmlpnkuK3lv4MnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J0Rvd25sb2FkJysnKycrJ1Byb2R1Y3QgRG9jdW1lbnQnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRLkuqflk4HotYTmlpnkuK3lv4NkAgEPZBYCZg8VBDlodHRwczovL2RpZ2l0YWxwb3dlci5odWF3ZWkuY29tL3Bvd2VyLW1hcmtldGluZy8jL2NuL2hvbWUGX2JsYW5rhAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY0N0VEN0U1JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuIvovb3kuK3lv4Mt6JCl6ZSA6LWE5paZ5Lit5b+DJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidEb3dubG9hZCcrJysnKydNS1QgRG9jdW1lbnQnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRLokKXplIDotYTmlpnkuK3lv4NkAgQPFgIfAgIBFgJmD2QWAmYPFQQNL2NuL29yZGVyLW5vdwCqBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjQ0MTVCNTAnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeeri+WNs+i0reS5sCcsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0J1eV9DbGljaycseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonQnV5X0NsaWNrJywnZXZlbnRMYWJlbCc6J09yZGVyIE5vdycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOeri+WNs+i0reS5sGQCBg8WAh8CAgkWEmYPZBYEAgEPFgYeBGhyZWYFDy9jbi9ob21lLW93bmVycx4GdGFyZ2V0ZB4Hb25jbGljawXkBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjE1QjIzRjcnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeWutuW6reS4muS4uycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonSG9tZSBPd25lcnMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRYCZg8VAQzlrrbluq3kuJrkuLtkAgUPFgIfAgL/////D2QCAQ9kFgQCAQ8WBh8EBRMvY24vYnVzaW5lc3Mtb3duZXJzHwVkHwYF7AR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYxQzVFRDUyJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kvIHkuJrkuJrkuLsnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonQnVzaW5lc3MgT3duZXJzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRYCZg8VAQzkvIHkuJrkuJrkuLtkAgUPFgIfAgL/////D2QCAg9kFgQCAQ8WBh8EBRgvY24vdXRpbGl0eS1wbGFudC1vd25lcnMfBWQfBgXxBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjM3OEVDMTcnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeeUteermeS4muS4uycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidVdGlsaXR5IFBsYW50IE93bmVycycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0WAmYPFQEM55S156uZ5Lia5Li7ZAIFDxYCHwIC/////w9kAgMPZBYGAgEPFgQfBAUMamF2YXNjcmlwdDo7HwYF6gR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYxNDVGNUIxJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6snLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0WAmYPFQEM5LiT5Lia5Lq65aOrZAIDDxYCHwNnZAIFDxYEHwICBx8DZxYOAgEPZBYCZg8VBB0vY24vcHJvZmVzc2lvbmFscy9yZXNpZGVudGlhbACcBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjYyREQ1RUQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3lrrbluq3nu7/nlLUnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysnUmVzaWRlbnRpYWwgU21hcnQgUFYgJiBFU1MgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOWutuW6ree7v+eUtWQCAg9kFgJmDxUEFS9jbi9wcm9mZXNzaW9uYWxzL2MtaQCTBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjJCQjI1RTknLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3ooYzkuJrnu7/nlLUnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKydDJkkgU21hcnQgUFYgJiBFU1MgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOihjOS4mue7v+eUtWQCAw9kFgJmDxUEIC9jbi9wcm9mZXNzaW9uYWxzL3B2LWVzcy1jaGFyZ2VyAJ0FdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMkJCMjVFOScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiT5Lia5Lq65aOrLeihjOS4mue7v+eUtScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9mZXNzaW9uYWxzJysnKycrJ09uZS1zdG9wIG9wdGljYWwgc3RvcmFnZSBhbmQgY2hhcmdpbmcnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuWFieWCqOWFheS4gOermeW8j2QCBA9kFgJmDxUEGS9jbi9wcm9mZXNzaW9uYWxzL3V0aWxpdHkAkgV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYxRUMyNzg0JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6st5pm66IO95YWJ5LyPJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9mZXNzaW9uYWxzJysnKycrJ1V0aWxpdHkgU21hcnQgUFYgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuaZuuiDveWFieS8j+eUteermWQCBQ9kFgJmDxUEFS9jbi9wcm9mZXNzaW9uYWxzL2VzcwCaBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjc3OERBOEQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3mmbrog73nu4TkuLInLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysnVXRpbGl0eSBTbWFydCBTdHJpbmcgRVNTIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRXmmbrog73nu4TkuLLlvI/lgqjog71kAgYPZBYCZg8VBBwvY24vcHJvZmVzc2lvbmFscy9taWNyby1ncmlkAJIFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNzY4MkJFQScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiT5Lia5Lq65aOrLeaZuuiDveW+rue9kScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKydTbWFydCBNaWNyby1ncmlkIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzmmbrog73lvq7nvZFkAgcPZBYCZg8VBB0vY24vcHJvZmVzc2lvbmFscy9TbWFydERlc2lnbgCNBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0MzM1RUU4NEZFNl9DNkY1QTdCNEEyQkNDNUInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3mmbrog73orr7orqHlt6XlhbcnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKydTbWFydERlc2lnbiAyLjAnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuaZuuiDveiuvuiuoeW3peWFt2QCBA9kFgYCAQ8WBB8EBQxqYXZhc2NyaXB0OjsfBgXlBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjJCNzg3NTQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeWQiOS9nOS8meS8tCcsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0WAmYPFQEM5ZCI5L2c5LyZ5Ly0ZAIDDxYCHwNnZAIFDxYEHwICBR8DZxYKAgEPZBYCZg8VBCEvY24vcGFydG5lcnMvcGFydG5lci1pbnRyb2R1Y3Rpb24AiAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY3NDcyMzE0JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lkIjkvZzkvJnkvLQt5LyZ5Ly05LuL57uNJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKydQYXJ0bmVyIEludHJvZHVjdGlvbicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5LyZ5Ly05LuL57uNZAICD2QWAmYPFQQuaHR0cHM6Ly9wYXJ0bmVyLmh1YXdlaS5jb20vZWNwcmkvIy8/bGFuZz16aF9DTgZfYmxhbmuEBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjVFMjREOEYnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeWQiOS9nOS8meS8tC3miJDkuLrkvJnkvLQnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1BhcnRuZXJzJysnKycrJ0JlY29tZSBhIFBhcnRuZXInKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOaIkOS4uuS8meS8tGQCAw9kFgJmDxUEMGh0dHBzOi8vZGlnaXRhbHBvd2VyLmh1YXdlaS5jb20vcGFydG5lciMvY24vbWFpbgZfYmxhbmuBBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjdCNDNEMEInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeWQiOS9nOS8meS8tC1wb3dlcnBhcnRuZXInLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1BhcnRuZXJzJysnKycrJ1Bvd2VyLVBhcnRuZXInKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DVBvd2VyLVBhcnRuZXJkAgQPZBYCZg8VBDBodHRwczovL2NvbW11bml0eS5zb2xhci5odWF3ZWkuY29tL2NuL2luZGV4Lmh0bWwGX2JsYW5riwV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY3QjA5MEFGJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lkIjkvZzkvJnkvLQt5a6J6KOF5ZWG56S+5Yy6Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKydJbnN0YWxsZXJzIENvbW11bml0eScrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0P5a6J6KOF5ZWG56S+5Yy6ZAIFD2QWAmYPFQQfL2NuL3BhcnRuZXJzL21hcD90eXBlPWluc3RhbGxlcgCIBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0MzM1RUU4NEZFNl9DODIwOUM3QzQwNDRCQjcnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeWQiOS9nOS8meS8tC3lr7vmib7lronoo4XllYYnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1BhcnRuZXJzJysnKycrJ0ZpbmQgYW4gSW5zdGFsbGVyJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQ/lr7vmib7lronoo4XllYZkAgUPZBYEAgEPFgYfBAUeL2NuL3Byb2Zlc3Npb25hbHMvYWxsLXByb2R1Y3RzHwVkHwYF3AR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYwM0IyNjRCJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuqflk4EnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9kdWN0cycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319FgJmDxUBBuS6p+WTgWQCBQ8WAh8CAv////8PZAIGD2QWBgIBDxYEHwQFDGphdmFzY3JpcHQ6Ox8GBdwEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMjlEMjFCQicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5pSv5oyBJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1N1cHBvcnQnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRYCZg8VAQbmlK/mjIFkAgMPFgIfA2dkAgUPFgQfAgIDHwNnFgYCAQ9kFgJmDxUEFy9jbi9zZXJ2aWNlLXN1cHBvcnQvdHNjAP4EdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQzMzVFRTg0RkU2X0M2RjVCMzZGNDlFMjNBOScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5oqA5pyv5pSv5oyB5Lit5b+DJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidTdXBwb3J0JysnKycrJ1NlcnZpY2VzIGFuZCBTdXBwb3J0JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0P5pyN5Yqh5LiO5pSv5oyBZAICD2QWAmYPFQRTaHR0cHM6Ly9mb3J1bS5odWF3ZWkuY29tL2VudGVycHJpc2UvemgvZm9ydW1zLzU4MDg3OTc5OTY3NTY2MjMzNi81ODA4Nzk4MjMwOTI0NjE1NjgGX2JsYW5r6QR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY0MkEyRTI3JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3mlK/mjIEt6K665Z2bJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1N1cHBvcnQnKycrJysnRm9ydW0nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQborrrlnZtkAgMPZBYCZg8VBGNodHRwczovL2RpZ2l0YWxwb3dlci5odWF3ZWkuY29tL3JvYm90Y2hhdC8jL2hvbWUvaW5kZXg/bGFuZz16aF9DTiZkb21haW49c21hcnRwdiZmcm9tX3RpdGxlX3poPTExMTcGX2JsYW5r+QR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY0NzdDQUY1JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3mlK/mjIEt5Zyo57q/5pSv5oyBJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidTdXBwb3J0JysnKycrJ09ubGluZSBTdXBwb3J0JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5Zyo57q/5pSv5oyBZAIHD2QWBAIBDxYGHwQFMGh0dHBzOi8vY29tbXVuaXR5LnNvbGFyLmh1YXdlaS5jb20vY24vaW5kZXguaHRtbB8FBQZfYmxhbmsfBgXeBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjJBMEI5NDAnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeekvuWMuicsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidDb21tdW5pdHknKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRYCZg8VAQbnpL7ljLpkAgUPFgIfAgL/////D2QCCA9kFgYCAQ8WBB8EBQxqYXZhc2NyaXB0OjsfBgXhBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjRERUNBMTAnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4i+i9veS4reW/gycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonRG93bmxvYWQnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRYCZg8VAQzkuIvovb3kuK3lv4NkAgMPFgIfA2dkAgUPFgQfAgICHwNnFgQCAQ9kFgJmDxUEImh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9jbi9pbmZvLy8GX2JsYW5riAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY2RjA4QTVGJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuIvovb3kuK3lv4Mt5Lqn5ZOB6LWE5paZ5Lit5b+DJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidEb3dubG9hZCcrJysnKydQcm9kdWN0IERvY3VtZW50JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S5Lqn5ZOB6LWE5paZ5Lit5b+DZAICD2QWAmYPFQQ5aHR0cHM6Ly9kaWdpdGFscG93ZXIuaHVhd2VpLmNvbS9wb3dlci1tYXJrZXRpbmcvIy9jbi9ob21lBl9ibGFua4QFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNDdFRDdFNScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiL6L295Lit5b+DLeiQpemUgOi1hOaWmeS4reW/gycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonRG93bmxvYWQnKycrJysnTUtUIERvY3VtZW50JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S6JCl6ZSA6LWE5paZ5Lit5b+DZAIHDxYCHwICARYCZg9kFgJmDxUEDS9jbi9vcmRlci1ub3cAqgR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY0NDE1QjUwJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3nq4vljbPotK3kubAnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCdXlfQ2xpY2snLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J0J1eV9DbGljaycsJ2V2ZW50TGFiZWwnOidPcmRlciBOb3cnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQznq4vljbPotK3kubBkAgUPZBYCZg9kFgJmD2QWCAICDxYCHwICBRYKZg9kFgRmDxUBGOWFs+S6juWNjuS4uuaZuuiDveWFieS8j2QCAQ8WAh8CAgUWCgIBD2QWAmYPFQQNL2NuL25ld3Mtcm9vbQD6BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjlBRTlGMDInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaWsOmXu+WKqOaAgScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdBYm91dCBGdXNpb25Tb2xhcicrJysnKydOZXdzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5paw6Ze75Yqo5oCBZAICD2QWAmYPFQQPL2NuL2V2ZW50cy1saXN0APsEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNjg1QkVFMicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5bGV5Lya5rS75YqoJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnQWJvdXQgRnVzaW9uU29sYXInKycrJysnRXZlbnRzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5bGV5Lya5rS75YqoZAIDD2QWAmYPFQQTL2NuL3N1Y2Nlc3Mtc3RvcmllcwCGBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjYwMEM2QTknLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaIkOWKn+aVheS6iycsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnQWJvdXQgRnVzaW9uU29sYXInKycrJysnU3VjY2VzcyBTdG9yaWVzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5oiQ5Yqf5pWF5LqLZAIED2QWAmYPFQQkL2NuL2V2ZW50cy1saXN0L2NuLzIwMjMvcHVibGljYXRpb25zAIAFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGQTdGRTkyNScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5Ye654mI54mpJywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdBYm91dCBGdXNpb25Tb2xhcicrJysnKydQdWJsaWNhdGlvbnMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQnlh7rniYjnialkAgUPZBYCZg8VBA4vY24vbmV3c2xldHRlcgCBBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjkyRDQwMzknLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLemCruS7tuiuoumYhScsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnQWJvdXQgRnVzaW9uU29sYXInKycrJysnTmV3c2xldHRlcicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOmCruS7tuiuoumYhWQCAQ9kFgRmDxUBFeS6p+WTgSAmIOino+WGs+aWueahiGQCAQ8WAh8CAggWEAIBD2QWAmYPFQQdL2NuL3Byb2Zlc3Npb25hbHMvcmVzaWRlbnRpYWwAnAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZDNjhBMUIxJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3lrrbluq3nu7/nlLUnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnUmVzaWRlbnRpYWwgU21hcnQgUFYgJiBFU1MgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzlrrbluq3nu7/nlLVkAgIPZBYCZg8VBBUvY24vcHJvZmVzc2lvbmFscy9jLWkAlAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY5MTdGQ0JGJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3ooYzkuJrnu7/nlLUnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnQyZJIFNtYXJ0IFBWICYgRVNTIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M6KGM5Lia57u/55S1ZAIDD2QWAmYPFQQgL2NuL3Byb2Zlc3Npb25hbHMvcHYtZXNzLWNoYXJnZXIAngV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY5MTdGQ0JGJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3ooYzkuJrnu7/nlLUnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnT25lLXN0b3Agb3B0aWNhbCBzdG9yYWdlIGFuZCBjaGFyZ2luZycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuWFieWCqOWFheS4gOermeW8j2QCBA9kFgJmDxUEGS9jbi9wcm9mZXNzaW9uYWxzL3V0aWxpdHkAlgV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZDMTI5Njk5JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3mmbrog73lhYnkvI/nlLXnq5knLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdQcm9kdWN0cyAmIFNvbHV0aW9uJysnKycrJ1V0aWxpdHkgU21hcnQgUFYgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRLmmbrog73lhYnkvI/nlLXnq5lkAgUPZBYCZg8VBBUvY24vcHJvZmVzc2lvbmFscy9lc3MAoQV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY5NDA3REEyJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3mmbrog73nu4TkuLLlvI/lgqjog70nLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdQcm9kdWN0cyAmIFNvbHV0aW9uJysnKycrJ1V0aWxpdHkgU21hcnQgU3RyaW5nIEVTUyBTb2x1dGlvbicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319FeaZuuiDvee7hOS4suW8j+WCqOiDvWQCBg9kFgJmDxUEHC9jbi9wcm9mZXNzaW9uYWxzL21pY3JvLWdyaWQAkgV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY4NTY1NDFDJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3mmbrog73lvq7nvZEnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnU21hcnQgTWljcm8tZ3JpZCBTb2x1dGlvbicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOaZuuiDveW+rue9kWQCBw9kFgJmDxUEHi9jbi9wcm9mZXNzaW9uYWxzL2FsbC1wcm9kdWN0cwCEBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjgyRkFDOTQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaJgOacieS6p+WTgScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdQcm9kdWN0cyAmIFNvbHV0aW9uJysnKycrJ0FsbCBQcm9kdWN0cycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOaJgOacieS6p+WTgWQCCA9kFgJmDxUEHS9jbi9wcm9mZXNzaW9uYWxzL1NtYXJ0RGVzaWduAI4FdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGQTUwQkZBMicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5pm66IO96K6+6K6h5bel5YW3JywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdQcm9kdWN0cyAmIFNvbHV0aW9uJysnKycrJ1NtYXJ0RGVzaWduIDIuMCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuaZuuiDveiuvuiuoeW3peWFt2QCAg9kFgRmDxUBDOWQiOS9nOS8meS8tGQCAQ8WAh8CAgQWCAIBD2QWAmYPFQQhL2NuL3BhcnRuZXJzL3BhcnRuZXItaW50cm9kdWN0aW9uAIEFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGQUE4OTU3RicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5LyZ5Ly05LuL57uNJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1BhcnRuZXJzJysnKycrJ1BhcnRuZXIgSW50cm9kdWN0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5LyZ5Ly05LuL57uNZAICD2QWAmYPFQQuaHR0cHM6Ly9wYXJ0bmVyLmh1YXdlaS5jb20vZWNwcmkvIy8/bGFuZz16aF9DTgZfYmxhbmv9BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjkwODk1OTInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaIkOS4uuS8meS8tCcsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdQYXJ0bmVycycrJysnKydCZWNvbWUgYSBQYXJ0bmVyJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5oiQ5Li65LyZ5Ly0ZAIDD2QWAmYPFQQfL2NuL3BhcnRuZXJzL21hcD90eXBlPWluc3RhbGxlcgD/BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkE1RDg4NDcnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeWvu+aJvuWuieijheWVhicsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnUGFydG5lcnMnKycrJysnRmluZCBhbiBJbnN0YWxsZXInKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQ/lr7vmib7lronoo4XllYZkAgQPZBYCZg8VBDBodHRwczovL2RpZ2l0YWxwb3dlci5odWF3ZWkuY29tL3BhcnRuZXIjL2NuL21haW4GX2JsYW5r/AR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZDOTAyRkE1JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi1Qb3dlci1QYXJ0bmVyJywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdQYXJ0bmVycycrJysnKydQb3dlci1QYXJ0bmVyJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0NUG93ZXItUGFydG5lcmQCAw9kFgRmDxUBD+acjeWKoeS4juaUr+aMgWQCAQ8WAh8CAgYWDAIBD2QWAmYPFQQXL2NuL3NlcnZpY2Utc3VwcG9ydC90c2MAlQV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZFOEUwMTg3JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3mioDmnK/mlK/mjIHkuK3lv4MnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1NlcnZpY2UgJiBTdXBwb3J0JysnKycrJ1RlY2huaWNhbCBTdXBwb3J0IENlbnRlcicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuaKgOacr+aUr+aMgeS4reW/g2QCAg9kFgJmDxUEOWh0dHBzOi8vZGlnaXRhbHBvd2VyLmh1YXdlaS5jb20vcG93ZXItbWFya2V0aW5nLyMvY24vaG9tZQZfYmxhbmuJBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkI1NUNCQkInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeiQpemUgOi1hOaWmeS4reW/gycsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnU2VydmljZSAmIFN1cHBvcnQnKycrJysnTUtUIERvY3VtZW50JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S6JCl6ZSA6LWE5paZ5Lit5b+DZAIDD2QWAmYPFQQiaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2NuL2luZm8vLwZfYmxhbmuNBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkRDNkMzMkMnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeS6p+WTgei1hOaWmeS4reW/gycsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnU2VydmljZSAmIFN1cHBvcnQnKycrJysnUHJvZHVjdCBEb2N1bWVudCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuS6p+WTgei1hOaWmeS4reW/g2QCBA9kFgJmDxUEMGh0dHBzOi8vY29tbXVuaXR5LnNvbGFyLmh1YXdlaS5jb20vY24vaW5kZXguaHRtbAZfYmxhbmv6BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkVBMTMwNzAnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeekvuWMuicsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnU2VydmljZSAmIFN1cHBvcnQnKycrJysnQ29tbXVuaXR5JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0G56S+5Yy6ZAIFD2QWAmYPFQRTaHR0cHM6Ly9mb3J1bS5odWF3ZWkuY29tL2VudGVycHJpc2UvemgvZm9ydW1zLzU4MDg3OTc5OTY3NTY2MjMzNi81ODA4Nzk4MjMwOTI0NjE1NjgGX2JsYW5r9gR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZDMDZGMEJDJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3orrrlnZsnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1NlcnZpY2UgJiBTdXBwb3J0JysnKycrJ0ZvcnVtJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0G6K665Z2bZAIGD2QWAmYPFQRjaHR0cHM6Ly9kaWdpdGFscG93ZXIuaHVhd2VpLmNvbS9yb2JvdGNoYXQvIy9ob21lL2luZGV4P2xhbmc9emhfQ04mZG9tYWluPXNtYXJ0cHYmZnJvbV90aXRsZV96aD0xMTE3Bl9ibGFua4UFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGQkMwQzA0NCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5Zyo57q/5pSv5oyBJywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdTZXJ2aWNlICYgU3VwcG9ydCcrJysnKydPbmxpbmUgU3VwcG9ydCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOWcqOe6v+aUr+aMgWQCBA9kFgRmDxUBDOW/q+mAn+mTvuaOpWQCAQ8WAh8CAgUWCgIBD2QWAmYPFQQaaHR0cHM6Ly93d3cuaHVhd2VpLmNvbS9jbi8GX2JsYW5r/wR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QzAwQ0M4NjREJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3ljY7kuLrpm4blm6InLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdRdWljayBMaW5rcycrJysnKydIdWF3ZWkgQ29ycG9yYXRlJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5Y2O5Li66ZuG5ZuiZAICD2QWAmYPFQQYaHR0cHM6Ly9lLmh1YXdlaS5jb20vY24vBl9ibGFua4cFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGRTJGMUZEQScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5Y2O5Li65LyB5Lia5Lia5YqhJywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1F1aWNrIExpbmtzJysnKycrJ0h1YXdlaSBFbnRlcnByaXNlJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S5Y2O5Li65LyB5Lia5Lia5YqhZAIDD2QWAmYPFQQuaHR0cHM6Ly9kaWdpdGFscG93ZXIuaHVhd2VpLmNvbS9jbi8/ZnJvbT1zb2xhcgZfYmxhbmuLBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkYxMUY0RTQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeWNjuS4uuaVsOWtl+iDvea6kCcsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnUXVpY2sgTGlua3MnKycrJysnSHVhd2VpIERpZ2l0YWwgUG93ZXInKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRLljY7kuLrmlbDlrZfog73mupBkAgQPZBYCZg8VBFlodHRwczovL2ludGwuZnVzaW9uc29sYXIuaHVhd2VpLmNvbS9wdm1zd2Vic2l0ZS9ub2xvZ2luL2Fzc2V0cy9idWlsZC9pbmRleC5odG1sIy9qdW1wcGFnZQZfYmxhbmuxBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZDMDA1RTdCNDUnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeS4i+i9veaZuuiDveWFieS8j0FwcO+8iOenu+WKqOerr++8iScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdRdWljayBMaW5rcycrJysnKydEb3dubG9hZCBGdXNpb25Tb2xhciBBcHAgKE1vYmlsZSBWZXJzaW9uKScrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319JOS4i+i9veaZuuiDveWFieS8j0FwcO+8iOenu+WKqOerr++8iWQCBQ9kFgJmDxUEJGh0dHBzOi8vaW50bC5mdXNpb25zb2xhci5odWF3ZWkuY29tLwZfYmxhbmuXBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkRFQTZBMEQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeeZu+W9leaZuuiDveWFieS8j+euoeeQhuezu+e7nycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdRdWljayBMaW5rcycrJysnKydGdXNpb25Tb2xhciBTbWFydFBWTVMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fR7nmbvlvZXmmbrog73lhYnkvI/nrqHnkIbns7vnu59kAgMPFgIfAQUgwqkgMjAyNSDljY7kuLrmioDmnK/mnInpmZDlhazlj7hkAgQPFgIfAgIBFgJmD2QWAmYPFQOmBDxhIGNsYXNzPSJpdGVtLWxpbmsiIGhyZWY9Ii9jbi9wcml2YWN5IiB0YXJnZXQ9IiIgb25jbGljaz0idHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOiAnUHJpdmFjeScrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319IiAgcmVsPSJub3JlZmVycmVyIj4M6ZqQ56eB5pS/562WBDwvYT5kAgUPZBYCAgEPFgIfAQWVOjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgogIC5wYWdlLWZvb3RlciAuZm9vdGVyLWJ1dHRvbSAuZm9vdGVyLWxpbmsgLmxpbmstaW1nLXNoaXBpbmhhbyB7CiAgICAgIGJhY2tncm91bmQ6IHVybCgiLy0vbWVkaWEvU29sYXJWNC9pbWFnZXMvSG9tZS91cGRhdGUvc2hpcGluaGFvLnN2ZyIpIDAgMCBuby1yZXBlYXQ7CiAgfQogIC5kYXJrIC5wYWdlLWZvb3RlciAuZm9vdGVyLWJ1dHRvbSAuZm9vdGVyLWxpbmsgLmxpbmstaW1nLXNoaXBpbmhhbyB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoIi8tL21lZGlhL1NvbGFyVjQvaW1hZ2VzL0hvbWUvdXBkYXRlL3NoaXBpbmhhb19kYXJrX3Y1LnN2ZyIpIDAgMCBuby1yZXBlYXQ7Cn0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9InNvY2lhbC1pdGVtIHNvY2lhbC1pY29uIj4KICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1saW5rLWltZyBsaW5rLWltZy13ZWNoYXQiPgogICAgICA8L3NwYW4+CiAgICAgIDxkaXYgY2xhc3M9ImhvdmVyLXBvcCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLWNsb3NlIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBvcC10ZXh0Ij4KICAgICAgICAgICAgICA8cD7lrpjmlrnlvq7kv6E8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBvcC1pbWciPgogICAgICAgICAgICAgIDxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9jb21tb24vd2VjaGF0LnBuZyI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0ic29jaWFsLWl0ZW0gc29jaWFsLWljb24gbGFzdC1pY29uIj4KICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1saW5rLWltZyBsaW5rLWltZy10b3V0aWFvIj4KICAgICAgPC9zcGFuPgogICAgICA8ZGl2IGNsYXNzPSJob3Zlci1wb3AiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jbG9zZSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwb3AtdGV4dCI+CiAgICAgICAgICAgICAgPHA+5aS05p2hPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwb3AtaW1nIj4KICAgICAgICAgICAgICA8aW1nIHNyYz0iL0Fzc2V0cy9Tb2xhci92NC9pbWcvY29tbW9uL3RvdXRpYW8ucG5nIj4KICAgICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJzb2NpYWwtaXRlbSBzb2NpYWwtaWNvbiBsYXN0LWljb24iPgogICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWxpbmstaW1nIGxpbmstaW1nLXNoaXBpbmhhbyI+CiAgICAgIDwvc3Bhbj4KICAgICAgPGRpdiBjbGFzcz0iaG92ZXItcG9wIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24tY2xvc2UiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icG9wLXRleHQiPgogICAgICAgICAgICAgIDxwPuinhumikeWPtzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icG9wLWltZyI+CiAgICAgICAgICAgICAgPGltZyBzcmM9Ii8tL21lZGlhL1NvbGFyVjQvaW1hZ2VzL0hvbWUvdXBkYXRlL2hvbWUtZm9vdGVyLWljb25fMy5qcGciPgogICAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogIDwvZGl2PgoKCgogIDwhLS0gY29va2llIC0tPgo8c2NyaXB0PgogICAgKGZ1bmN0aW9uIChjb25maWcpIHsKICAgICAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCcvY24nKSkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgdmFyIG5hbWVzcGFjZSA9IGNvbmZpZy5uYW1lc3BhY2UgfHwgImh3YSI7CiAgICAgICAgaWYgKHNlbGZbbmFtZXNwYWNlXSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzY3JpcHQjdWVtX2YiKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHNlbGZbbmFtZXNwYWNlXSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgKHNlbGZbbmFtZXNwYWNlXS5xID0gc2VsZltuYW1lc3BhY2VdLnEgfHwgW10pLnB1c2goYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgZWxlbWVudC5UUkFDS0VSX0NPTkZJRyA9IGNvbmZpZzsKICAgICAgICBlbGVtZW50LmFzeW5jID0gdHJ1ZTsKICAgICAgICBlbGVtZW50LmlkID0gInVlbV9mIjsKICAgICAgICBlbGVtZW50LnNyYyA9IGNvbmZpZy5zcmMgKyAiP18iICsgbmV3IERhdGUoKS50b0pTT04oKS5zcGxpdCgiVCIpWzBdOwogICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICB9KSh7CiAgICAgICAgcGxhdGZvcm06ICJ3ZWIiLAogICAgICAgIGVkaXRpb246ICJoaXMiLAogICAgICAgIGVudjogInByb2QiLAogICAgICAgIGFwcEtleTogIjRhYjBkMmU1MWI0YWYxMWQwYTlkOTQ3YTg5YTg4MmNiIiwKICAgICAgICBzcmM6ICJodHRwczovL2h3YS5oaXMuaHVhd2VpLmNvbS9kaXN0L3VlbV9mLmpzIgogICAgfSk7Cjwvc2NyaXB0PgoKPHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgc3JjPSJodHRwczovL3N0YXRpYy5zZW5zb3JzZGF0YS5jbi9zZGsvMS4yNi4xNy9zZW5zb3JzZGF0YS5taW4uanM/dmVyPTIwMjQwODAyMTMxNiI+PC9zY3JpcHQ+CjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiPgogICAgdmFyIHNlbnNvcnMgPSB3aW5kb3dbJ3NlbnNvcnNEYXRhQW5hbHl0aWMyMDE1MDUnXTsKICAgIHNlbnNvcnMudXNlKCdQYWdlTGVhdmUnLCB7fSk7CiAgICBzZW5zb3JzLmluaXQoewogICAgICAgIHNlcnZlcl91cmw6ICdodHRwczovL2NkcC50ZXN0Lmh1YXdlaS5jb20vc2EnLAogICAgICAgIGhlYXRtYXA6IHsgc2Nyb2xsX25vdGljZV9tYXA6ICdkZWZhdWx0JyB9LAogICAgICAgIHVzZV9jbGllbnRfdGltZTogdHJ1ZSwKICAgICAgICBzZW5kX3R5cGU6ICdiZWFjb24nCiAgICB9KTsKICAgIHNlbnNvcnMucXVpY2soJ2F1dG9UcmFjaycpOwo8L3NjcmlwdD4KCjxkaXYgY2xhc3M9ImJyb3dzZWhhcHB5IFJlYWRQb2xpY3kiPgogICAgPHA+5pys56uZ54K55L2/55SoY29va2llcyznu6fnu63mtY/op4jooajnpLrmgqjlkIzmhI/miJHku6zkvb/nlKhjb29raWVz44CCPGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2NuL3ByaXZhY3kiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgPHNwYW4+Q29va2llc+WSjOmakOengeaUv+etliAmZ3Q8L3NwYW4+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6Y2xvc2VDb29raWVCYW5uZXIoKSIgY2xhc3M9ImNsb3NlIiB0aXRsZT0iY2xvc2UiPjwvYT4KICAgIDwvcD4KPC9kaXY+Cgo8c2NyaXB0PgogICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgIGpRdWVyeS5DYWNoZSA9IHsKICAgICAgICBnZXQ6IGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgICAgdmFyIHZhbDsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhbCA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpKTsKICAgICAgICAgICAgfSBjYXRjaCAoX2UpIHsgfQogICAgICAgICAgICByZXR1cm4gdmFsOwogICAgICAgIH0sCiAgICAgICAgc2V0OiBmdW5jdGlvbiAoa2V5LCBfdmFsdWUsIGV4cGlyZURheXMpIHsKICAgICAgICAgICAgdmFyIHZhbHVlID0gX3ZhbHVlOwogICAgICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47CiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICJvYmplY3QiKSB7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHsgdmFsdWU6IF92YWx1ZSB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBkID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgZC5zZXRUaW1lKGQuZ2V0VGltZSgpICsgMjQgKiA2MCAqIDYwICogMTAwMCAqIGV4cGlyZURheXMpOwogICAgICAgICAgICB2YXIgZXhwaXJlID0gZDsKICAgICAgICAgICAgdmFsdWUuZXhwaXJlID0gZXhwaXJlOwogICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh2YWx1ZSkpKTsKICAgICAgICB9LAogICAgICAgIGRlbDogZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpOwogICAgICAgIH0sCiAgICB9OwogICAgY29uc3QgY29tbW9uTW9kdWxlID0gd2luZG93LmNvbW1vbk1vZHVsZSB8fCB7fTsKICAgIGNvbW1vbk1vZHVsZS5icm93c2VoYXBweSA9IGZ1bmN0aW9uIGJyb3dzZWhhcHB5KCkgewogICAgICAgIGlmICghJC5DYWNoZSkgewogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgIGJyb3dzZWhhcHB5KCk7CiAgICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGxldCBicm93c2VoYXBweUNhY2hlID0gJC5DYWNoZS5nZXQoJ2Jyb3dzZWhhcHB5Jyk7CiAgICAgICAgbGV0IGhpZGVDYWNoZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgJC5DYWNoZS5zZXQoJ2Jyb3dzZWhhcHB5JywgJ2Jyb3dzZWhhcHB5JywgMzY1KTsKICAgICAgICB9OwoKICAgICAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnLmJyb3dzZWhhcHB5IGEuY2xvc2UnLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5icm93c2VoYXBweScpLnNsaWRlVXAoaGlkZUNhY2hlKTsKICAgICAgICB9KTsKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAoIWJyb3dzZWhhcHB5Q2FjaGUgfHwgbmV3IERhdGUoYnJvd3NlaGFwcHlDYWNoZS5leHBpcmUpIC0gbmV3IERhdGUoKSA8PSAwKSB7CiAgICAgICAgICAgICAgICAkLkNhY2hlLmRlbCgnYnJvd3NlaGFwcHknKTsKICAgICAgICAgICAgICAgICQoJy5icm93c2VoYXBweScpLnByZXBlbmRUbygnYm9keScpLnNsaWRlRG93bigpOwogICAgICAgICAgICAgICAgJCgnLmJyb3dzZWhhcHB5JykuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7CiAgICAgICAgICAgICAgICBoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gJ21hbnVhbCc7CiAgICAgICAgICAgICAgICAkKCdodG1sLGJvZHknKS5hbmltYXRlKAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgJ2Zhc3QnCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbiA9ICdhdXRvJzsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKF9lKSB7IH0KICAgIH07CiAgICBjb21tb25Nb2R1bGUuYnJvd3NlaGFwcHkoKTsKCiAgICBmdW5jdGlvbiBjbG9zZUNvb2tpZUJhbm5lcigpIHsKICAgICAgICBoaWRlQ2FjaGUoKTsKICAgICAgICAkKCcuYnJvd3NlaGFwcHknKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpCiAgICB9Cn0sMTApCiAgICA8L3NjcmlwdD4KCjxzdHlsZT4KICAgIC5SZWFkUG9saWN5IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlOwogICAgICAgIGNvbG9yOiAjMjgyODI4OwogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMTZweCAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHotaW5kZXg6IDEwMDAwOwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICB9CgogICAgLlJlYWRQb2xpY3kgcCB7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjIyNTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDkzLjcwNSU7CiAgICAgICAgbWF4LXdpZHRoOiAxNzk5LjEzNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAuUmVhZFBvbGljeSBwIHNwYW4gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7CiAgICB9CgogICAgLlJlYWRQb2xpY3kgcCBhIGVtIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41czsKICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwogICAgfQoKICAgIC5SZWFkUG9saWN5IGEgewogICAgICAgIGNvbG9yOiAjYzcwMDBiOwogICAgfQoKICAgIC5SZWFkUG9saWN5IHAgYTpob3ZlciBlbSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOwogICAgfQoKICAgIC5SZWFkUG9saWN5IC5jbG9zZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDMwcHg7CiAgICAgICAgd2lkdGg6IDMwcHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICBtYXJnaW4tdG9wOiAtN3B4OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICB9CgogICAgLlJlYWRQb2xpY3kgLmNsb3NlOmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJ+Kclic7CiAgICAgICAgd2lkdGg6IDMwcHg7CiAgICAgICAgaGVpZ2h0OiAzMHB4OwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAnY29ycGZvbnQnICFpbXBvcnRhbnQ7CiAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgfQoKICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHsKICAgICAgICAuUmVhZFBvbGljeSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgYm90dG9tOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB6LWluZGV4OiA5OTk7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgLlJlYWRQb2xpY3lbc3R5bGUqPSdibG9jayddfi5idG4tZ28tdG9wIHsKICAgICAgICAgICAgYm90dG9tOiAxMDBweDsKICAgICAgICB9CgogICAgICAgIC5SZWFkUG9saWN5W3N0eWxlKj0nYmxvY2snXX4ucG9wdXAtaWNvbiB7CiAgICAgICAgICAgIGJvdHRvbTogMTQzcHg7CiAgICAgICAgfQoKICAgICAgICAuUmVhZFBvbGljeVtzdHlsZSo9J2Jsb2NrJ11+Zm9vdGVyIHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjZweDsKICAgICAgICB9CiAgICB9Cjwvc3R5bGU+ZAIGD2QWAmYPZBYCZg9kFgJmDxYCHwEF5Ao8c2NyaXB0PgogICAgdmFyIGhvbWVGb2xkZXIgPSAnZW4nOwogIDwvc2NyaXB0PgogIAogIDwhLS1Tb2xhciB0cmFjayBjb2RlLS0+CiAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogIHZhciB1dGFnX2RhdGEgPSB7IAogICAgc2l0ZV9uYW1lOiAic29sYXIiLAogICAgc2l0ZV90eXBlOiAid2Vic2l0ZSIKICB9OyAKICA8L3NjcmlwdD4gCiAgCiAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiAoZnVuY3Rpb24oYSxiLGMsZCl7IGE9KChuYXZpZ2F0b3IubGFuZ3VhZ2VzICYmIG5hdmlnYXRvci5sYW5ndWFnZXMubGVuZ3RoKSA/IG5hdmlnYXRvci5sYW5ndWFnZXNbMF0gOiAobmF2aWdhdG9yLmJyb3dzZXJMYW5ndWFnZSB8fCBuYXZpZ2F0b3IudXNlckxhbmd1YWdlIHx8IG5hdmlnYXRvci5sYW5ndWFnZSB8fCAnZW4nKSkudG9Mb3dlckNhc2UoKSA9PSAiemgtY24iID8gJy8vdGFncy50aXFjZG4uY24vdXRhZy9odWF3ZWkvc29sYXIvcHJvZC91dGFnLmpzJyA6ICcvL3RhZ3MudGlxY2RuLmNvbS91dGFnL2h1YXdlaS9zb2xhci9wcm9kL3V0YWcuanMnOyBiPWRvY3VtZW50OyBjPSdzY3JpcHQnOyBkPWIuY3JlYXRlRWxlbWVudChjKTsgZC5zcmM9YTsgZC50eXBlPSd0ZXh0L2phdmEnK2M7IGQuYXN5bmM9dHJ1ZTsgYT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGMpWzBdOyBhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGQsYSk7IH0pKCk7IDwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2pzL3V0aWxzL2pxdWVyeS0zLjYuMC5taW4uanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2pzL3NuZWMveHNzLm1pbi5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvanMvdXRpbHMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2pzL3V0aWxzL3B1YmxpY1BhZ2VzLmpzIj48L3NjcmlwdD4KICA8c2NyaXB0PiQoImhlYWQiKS5hcHBlbmQoYDxsaW5rIHJlbD0nY2Fub25pY2FsJyBocmVmPSR7d2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKVswXX0+YCk8L3NjcmlwdD4KICA8bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8tL21lZGlhL1NvbGFyVjQvc29sYXItdmVyc2lvbjIvY29tbW9uL3Nlby9jb21tb24tc2VvLmpzIiBhcz0ic2NyaXB0Ij4KICA8c2NyaXB0IHNyYz0iLy0vbWVkaWEvU29sYXJWNC9zb2xhci12ZXJzaW9uMi9jb21tb24vc2VvL2NvbW1vbi1zZW8uanMiPjwvc2NyaXB0PgogIAogIDxzY3JpcHQgYXN5bmMgc3JjPSIvLS9tZWRpYS9Tb2xhclY0L3NvbGFyLXZlcnNpb24yL2NvbW1vbi9uZXdzbGV0dGVyL2pzL25ld3NsZXR0ZXIuanMiPjwvc2NyaXB0PgpkZHFnT/tZpybYvqhwZinEpO9OjSNjbNzOQvvuGLmhAlRW"> </div> </form> <input type="hidden" id="hidUserStatusUrl" value="/en/user"> <div id="pageHeaderWrapper" class=""> <div class="global_header_wrapper"> <div class="global_header_fixed"> <div class="nav-wrapper"> <div class="nav-top"> <div class="nav-top-right"> <div class="nav-top-item"> <a href="/cn/online-experience-hall?step=card" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF8B83575', uem_label: '点击 页眉-在线体验专区',}); } catch (e) {};try { gtag('event','Navigation_Function',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Navigation_Function','eventLabel':'Online Experience Hall'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">在线体验专区</a> </div> <div class="nav-top-item nav-top-language"> <span class="language_ic"></span> <span>中国</span> <span class="language_select"></span> </div> </div> </div> <div class="nav-language"> <div class="nav-allLangBox"> <div class="icon-close"></div> <div class="curr-lang"><span class="icon-curr"></span> <a href="https://solar.huawei.com/en">FusionSolar Global / English</a> </div> <div class="allLang"> <div class="areaItem"> <div class="areaText">Asia Pacific</div> <div class="langList"> <div class="langItem"><a href="https://solar.huawei.com/au">Australia / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/cn">China / 简体中文</a></div> <div class="langItem"><a href="https://solar.huawei.com/hk">Hong Kong, China / 繁體中文</a></div> <div class="langItem"><a href="https://solar.huawei.com/id">Indonesia / Indonesian</a></div> <div class="langItem"><a href="https://solar.huawei.com/jp">Japan / 日本語</a></div> <div class="langItem"><a href="https://solar.huawei.com/my">Malaysia / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/ph">Philippines / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/sg">Singapore / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/kr">South Korea / 한국어</a></div> <div class="langItem"><a href="https://solar.huawei.com/th">Thailand / ไทย</a></div> <div class="langItem"><a href="https://solar.huawei.com/vn">Vietnam / English</a></div> </div> </div> <div class="areaItem"> <div class="areaText">Europe</div> <div class="langList"> <div class="langItem"><a href="https://solar.huawei.com/at">Austria / Deutsch</a></div> <div class="langItem"><a href="https://solar.huawei.com/be-fr">Belgium / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/be">Belgium / Nederlands</a></div> <div class="langItem"><a href="https://solar.huawei.com/bg">Bulgaria / български</a></div> <div class="langItem"><a href="https://solar.huawei.com/hr">Croatia / hrvatski</a></div> <div class="langItem"><a href="https://solar.huawei.com/cz">Czechia / čeština</a></div> <div class="langItem"><a href="https://solar.huawei.com/dk">Denmark / Dansk</a></div> <div class="langItem"><a href="https://solar.huawei.com/fr">France / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/de">Germany / Deutsch</a></div> <div class="langItem"><a href="https://solar.huawei.com/gr">Greece / Ελληνικά</a></div> <div class="langItem"><a href="https://solar.huawei.com/hu">Hungary / Hungarian</a></div> <div class="langItem"><a href="https://solar.huawei.com/ie">Ireland / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/it">Italy / Italiano</a></div> <div class="langItem"><a href="https://solar.huawei.com/nl">Netherlands / Dutch</a></div> <div class="langItem"><a href="https://solar.huawei.com/pl">Poland / Polish</a></div> <div class="langItem"><a href="https://solar.huawei.com/pt">Portugal / português</a></div> <div class="langItem"><a href="https://solar.huawei.com/ro">Romania / română</a></div> <div class="langItem"><a href="https://solar.huawei.com/sk">Slovakia / slovenčina</a></div> <div class="langItem"><a href="https://solar.huawei.com/es">Spain / Español</a></div> <div class="langItem"><a href="https://solar.huawei.com/se">Sweden / Svenska</a></div> <div class="langItem"><a href="https://solar.huawei.com/ch">Switzerland / Deutsch</a></div> <div class="langItem"><a href="https://solar.huawei.com/ch-fr">Switzerland / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/tr">Türkiye / Türkçe</a></div> <div class="langItem"><a href="https://solar.huawei.com/ua">Ukraine / Україна</a></div> </div> </div> <div class="areaItem"> <div class="areaText">Latin America</div> <div class="langList"> <div class="langItem"><a href="https://solar.huawei.com/br">Brazil / Portuguese</a></div> <div class="langItem"><a href="https://solar.huawei.com/latam">Latin America / Español</a></div> <div class="langItem"><a href="https://solar.huawei.com/mx">México / Español</a></div> </div> </div> <div class="areaItem"> <div class="areaText">Middle East & Africa</div> <div class="langList"> <div class="langItem"><a href="https://solar.huawei.com/eg">Egypt / اللغة العربية</a></div> <div class="langItem"><a href="https://solar.huawei.com/ke">Kenya / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/ma">Morocco / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/ng">Nigeria / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/pk">Pakistan / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/sa">Saudi Arabia / اللغة العربية </a></div> <div class="langItem"><a href="https://solar.huawei.com/sa-en">Saudi Arabia / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/za">South Africa / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/tn">Tunisia / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/ae">UAE / اللغة العربية</a></div> <div class="langItem"><a href="https://solar.huawei.com/ae-en">UAE / English</a></div> </div> </div> </div> </div> </div> </div> <div class="pageheader_container" id="pageHeader"> <div class="pageheader"> <div class="pageheader-box grid--align-spread"> <div class="pageheader-menu-left"> <a class="header-left" href="/cn"> <div class="header-logo"> <img src="/-/media/SolarV4/Common/logo-v1.svg" alt="logo v1" class="whiteLogo"> <img src="/-/media/SolarV4/Common/logo-dark-v2.svg" alt="logo dark v2" class="darkLogo"> </div> </a> <div class="pageheader-menu"> <ul> <li class="menu_item_li "><a class="menu_item_a" href="/cn/home-owners" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF15B23F7', uem_label: '点击 页眉-家庭业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Home Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">家庭业主</a> <div class="submenu submenu-hidden"> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/business-owners" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF1C5ED52', uem_label: '点击 页眉-企业业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Business Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">企业业主</a> <div class="submenu submenu-hidden"> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/utility-plant-owners" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF378EC17', uem_label: '点击 页眉-电站业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Utility Plant Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">电站业主</a> <div class="submenu submenu-hidden"> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/professionals/residential" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF145F5B1', uem_label: '点击 页眉-专业人士',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Professionals'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">专业人士</a> <div class="submenu submenu-hidden"> <a href="/cn/professionals/residential" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF62DD5ED', uem_label: '点击 页眉-专业人士-家庭绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Residential Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">家庭绿电</div> </a> <a href="/cn/professionals/c-i" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2BB25E9', uem_label: '点击 页眉-专业人士-行业绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'C&I Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">行业绿电</div> </a> <a href="/cn/professionals/pv-ess-charger" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2BB25E9', uem_label: '点击 页眉-专业人士-行业绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'One-stop optical storage and charging'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">光储充一站式</div> </a> <a href="/cn/professionals/utility" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF1EC2784', uem_label: '点击 页眉-专业人士-智能光伏',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Utility Smart PV Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">智能光伏电站</div> </a> <a href="/cn/professionals/ess" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF778DA8D', uem_label: '点击 页眉-专业人士-智能组串',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Utility Smart String ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">智能组串式储能</div> </a> <a href="/cn/professionals/micro-grid" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7682BEA', uem_label: '点击 页眉-专业人士-智能微网',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Smart Micro-grid Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">智能微网</div> </a> <a href="/cn/professionals/SmartDesign" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C6F5A7B4A2BCC5B', uem_label: '点击 页眉-专业人士-智能设计工具',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'SmartDesign 2.0'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">智能设计工具</div> </a> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/partners/partner-introduction" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2B78754', uem_label: '点击 页眉-合作伙伴',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Partners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">合作伙伴</a> <div class="submenu submenu-hidden"> <a href="/cn/partners/partner-introduction" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7472314', uem_label: '点击 页眉-合作伙伴-伙伴介绍',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Partner Introduction'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">伙伴介绍</div> </a> <a href="https://partner.huawei.com/ecpri/#/?lang=zh_CN" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF5E24D8F', uem_label: '点击 页眉-合作伙伴-成为伙伴',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Become a Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">成为伙伴</div> </a> <a href="https://digitalpower.huawei.com/partner#/cn/main" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7B43D0B', uem_label: '点击 页眉-合作伙伴-powerpartner',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Power-Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">Power-Partner</div> </a> <a href="https://community.solar.huawei.com/cn/index.html" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7B090AF', uem_label: '点击 页眉-合作伙伴-安装商社区',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Installers Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">安装商社区</div> </a> <a href="/cn/partners/map?type=installer" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C8209C7C4044BB7', uem_label: '点击 页眉-合作伙伴-寻找安装商',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Find an Installer'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">寻找安装商</div> </a> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/professionals/all-products" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF03B264B', uem_label: '点击 页眉-产品',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Products'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">产品</a> <div class="submenu submenu-hidden"> </div> </li> </ul> </div> </div> <div class="pageheader-menu-right"> <div class="pageheader-menu"> <ul> <li class="menu_item_li "><a class="menu_item_a" href="/cn/service-support/tsc" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF29D21BB', uem_label: '点击 页眉-支持',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">支持</a> <div class="submenu submenu-hidden"> <a href="/cn/service-support/tsc" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C6F5B36F49E23A9', uem_label: '点击 页眉-技术支持中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Services and Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">服务与支持</div> </a> <a href="https://forum.huawei.com/enterprise/zh/forums/580879799675662336/580879823092461568" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF42A2E27', uem_label: '点击 页眉-支持-论坛',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Forum'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">论坛</div> </a> <a href="https://digitalpower.huawei.com/robotchat/#/home/index?lang=zh_CN&domain=smartpv&from_title_zh=1117" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF477CAF5', uem_label: '点击 页眉-支持-在线支持',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Online Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">在线支持</div> </a> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="https://community.solar.huawei.com/cn/index.html" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2A0B940', uem_label: '点击 页眉-社区',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">社区</a> <div class="submenu submenu-hidden"> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="https://solar.huawei.com/cn/info/" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF4DECA10', uem_label: '点击 页眉-下载中心',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Download'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">下载中心</a> <div class="submenu submenu-hidden"> <a href="https://solar.huawei.com/cn/info/" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF6F08A5F', uem_label: '点击 页眉-下载中心-产品资料中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Download'+'+'+'Product Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">产品资料中心</div> </a> <a href="https://digitalpower.huawei.com/power-marketing/#/cn/home" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF47ED7E5', uem_label: '点击 页眉-下载中心-营销资料中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Download'+'+'+'MKT Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">营销资料中心</div> </a> </div> </li> </ul> </div> <div class="pageheader-right grid--vertical-align-center"> <a href="/cn/order-now" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF4415B50', uem_label: '点击 页眉-立即购买',}); } catch (e) {};try { gtag('event','Buy_Click',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Buy_Click','eventLabel':'Order Now'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="header-contact"> <button id="ev_bt_1005" class="ev_button default border-radius-24" title="" tabindex="0" type="button"> <span class="ev_button_text">立即购买</span> </button> </div> </a> </div> </div> </div> </div> <div class="pageheader-min"> <div class="pageheader-min-box grid--align-spread"> <a class="header-left" href="/cn"> <div class="headerLeft"> <span class="header-min-logo"> <img src="/-/media/SolarV4/Common/logo-v1.svg" alt="logo v1" class="min-white-logo"> <img src="/-/media/SolarV4/Common/logo-dark-v2.svg" alt="logo dark v2" class="min-dark-logo"> </span> </div> </a> <div class="nav-top-min nav-top-language"><span class="language_ic"></span><span>中国</span><span class="language_select"></span></div> <div class="container"> </div> <div class="headerRight grid--vertical-align-center"> <span class="header-icon header-min-setting"></span> <span class="header-icon header-min-close"></span> </div> </div> </div> <div class="header-drawer"> <ul class="header-drawer-box"> <li class="textItem"> <div class="textItem_div"> <a href="/cn/home-owners" id="beforecontent_0_rptMobileMainNav_lkLink_0" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF15B23F7', uem_label: '点击 页眉-家庭业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Home Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>家庭业主</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="/cn/business-owners" id="beforecontent_0_rptMobileMainNav_lkLink_1" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF1C5ED52', uem_label: '点击 页眉-企业业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Business Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>企业业主</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="/cn/utility-plant-owners" id="beforecontent_0_rptMobileMainNav_lkLink_2" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF378EC17', uem_label: '点击 页眉-电站业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Utility Plant Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>电站业主</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="javascript:;" id="beforecontent_0_rptMobileMainNav_lkLink_3" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF145F5B1', uem_label: '点击 页眉-专业人士',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Professionals'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>专业人士</span> </a> <span class="textItem_arr"></span> </div> <ul class="submenu" style="display: none;"> <li class="textItem"><a class="item-link" href="/cn/professionals/residential" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF62DD5ED', uem_label: '点击 页眉-专业人士-家庭绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Residential Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">家庭绿电</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/c-i" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2BB25E9', uem_label: '点击 页眉-专业人士-行业绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'C&I Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">行业绿电</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/pv-ess-charger" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2BB25E9', uem_label: '点击 页眉-专业人士-行业绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'One-stop optical storage and charging'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">光储充一站式</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/utility" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF1EC2784', uem_label: '点击 页眉-专业人士-智能光伏',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Utility Smart PV Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能光伏电站</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/ess" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF778DA8D', uem_label: '点击 页眉-专业人士-智能组串',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Utility Smart String ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能组串式储能</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/micro-grid" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7682BEA', uem_label: '点击 页眉-专业人士-智能微网',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Smart Micro-grid Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能微网</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/SmartDesign" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C6F5A7B4A2BCC5B', uem_label: '点击 页眉-专业人士-智能设计工具',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'SmartDesign 2.0'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能设计工具</a></li> </ul> </li> <li class="textItem"> <div class="textItem_div"> <a href="javascript:;" id="beforecontent_0_rptMobileMainNav_lkLink_4" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2B78754', uem_label: '点击 页眉-合作伙伴',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Partners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>合作伙伴</span> </a> <span class="textItem_arr"></span> </div> <ul class="submenu" style="display: none;"> <li class="textItem"><a class="item-link" href="/cn/partners/partner-introduction" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7472314', uem_label: '点击 页眉-合作伙伴-伙伴介绍',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Partner Introduction'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">伙伴介绍</a></li> <li class="textItem"><a class="item-link" href="https://partner.huawei.com/ecpri/#/?lang=zh_CN" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF5E24D8F', uem_label: '点击 页眉-合作伙伴-成为伙伴',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Become a Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">成为伙伴</a></li> <li class="textItem"><a class="item-link" href="https://digitalpower.huawei.com/partner#/cn/main" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7B43D0B', uem_label: '点击 页眉-合作伙伴-powerpartner',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Power-Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">Power-Partner</a></li> <li class="textItem"><a class="item-link" href="https://community.solar.huawei.com/cn/index.html" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7B090AF', uem_label: '点击 页眉-合作伙伴-安装商社区',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Installers Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">安装商社区</a></li> <li class="textItem"><a class="item-link" href="/cn/partners/map?type=installer" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C8209C7C4044BB7', uem_label: '点击 页眉-合作伙伴-寻找安装商',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Find an Installer'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">寻找安装商</a></li> </ul> </li> <li class="textItem"> <div class="textItem_div"> <a href="/cn/professionals/all-products" id="beforecontent_0_rptMobileMainNav_lkLink_5" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF03B264B', uem_label: '点击 页眉-产品',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Products'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>产品</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="javascript:;" id="beforecontent_0_rptMobileMainNav_lkLink_6" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF29D21BB', uem_label: '点击 页眉-支持',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>支持</span> </a> <span class="textItem_arr"></span> </div> <ul class="submenu" style="display: none;"> <li class="textItem"><a class="item-link" href="/cn/service-support/tsc" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C6F5B36F49E23A9', uem_label: '点击 页眉-技术支持中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Services and Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">服务与支持</a></li> <li class="textItem"><a class="item-link" href="https://forum.huawei.com/enterprise/zh/forums/580879799675662336/580879823092461568" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF42A2E27', uem_label: '点击 页眉-支持-论坛',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Forum'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">论坛</a></li> <li class="textItem"><a class="item-link" href="https://digitalpower.huawei.com/robotchat/#/home/index?lang=zh_CN&domain=smartpv&from_title_zh=1117" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF477CAF5', uem_label: '点击 页眉-支持-在线支持',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Online Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">在线支持</a></li> </ul> </li> <li class="textItem"> <div class="textItem_div"> <a href="https://community.solar.huawei.com/cn/index.html" id="beforecontent_0_rptMobileMainNav_lkLink_7" class="item-link" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2A0B940', uem_label: '点击 页眉-社区',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>社区</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="javascript:;" id="beforecontent_0_rptMobileMainNav_lkLink_8" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF4DECA10', uem_label: '点击 页眉-下载中心',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Download'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>下载中心</span> </a> <span class="textItem_arr"></span> </div> <ul class="submenu" style="display: none;"> <li class="textItem"><a class="item-link" href="https://solar.huawei.com/cn/info/" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF6F08A5F', uem_label: '点击 页眉-下载中心-产品资料中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Download'+'+'+'Product Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">产品资料中心</a></li> <li class="textItem"><a class="item-link" href="https://digitalpower.huawei.com/power-marketing/#/cn/home" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF47ED7E5', uem_label: '点击 页眉-下载中心-营销资料中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Download'+'+'+'MKT Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">营销资料中心</a></li> </ul> </li> <li class="textItem"> <div class="textItem_div"> <a class="item-link" href="/cn/online-experience-hall?step=card" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF8B83575', uem_label: '点击 页眉-在线体验专区',}); } catch (e) {};try { gtag('event','Navigation_Function',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Navigation_Function','eventLabel':'Online Experience Hall'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>在线体验专区</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a class="item-link" href="/cn/order-now" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF4415B50', uem_label: '点击 页眉-立即购买',}); } catch (e) {};try { gtag('event','Buy_Click',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Buy_Click','eventLabel':'Order Now'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>立即购买</span> </a> </div> </li> </ul> </div> </div> </div> </div> </div> <!--HWDocContent--> <div class="main"> <div class="newsletter" id="newsletter"> <picture class="dig_banner_picture"> <source media="(max-aspect-ratio: 11/10)" srcset="/-/media/SolarV4/solar-version2/common/newsletter/img/newsletter_bg_mob.png"></source> <img src="/-/media/SolarV4/solar-version2/common/newsletter/img/newsletter_bg_pc.png" alt="NewsLetter"> </picture> <div class="inner"> <h2>邮件订阅</h2> <div class="form-info"> <form id="myForm"> <input id="pagelang" type="hidden" value="zh"> <input name="source" type="hidden" value="solar"> <!-- <input name="dataSource" type="hidden" value="newsletter"> --> <div class="form_container"> <div class="input_info"> <span>* 公司类型</span> <div class="input_container"> <input type="text" class="" readonly="readonly" autocomplete="off" value="" name='position' id='position' placeholder="我是一名……" oninput="changeValue('position')" onporpertychange="propsChange('position')"> <img src="/-/media/SolarV4/solar-version2/common/newsletter/img/arrow_down.png"> </div> <ul> <li>安装商</li> <li>经销商</li> <li>家庭业主</li> <li>企业业主</li> <li>电站业主</li> <li>媒体</li> </ul> </div> <span class="" id="span_position"> <span class="mandatory">必填项</span> </span> </div> <div class="form_container"> <div class="input_info"> <span>* 电子邮箱</span> <div class="input_container"> <input type="text" class="" autocomplete="off" value="" name='email' id='email' onblur="changeValue('email')" oninput="changeValue('email')" placeholder="请输入您的电子邮箱" onporpertychange="propsChange('email')"> </div> </div> <span class="" id="span_email"> <span class="mandatory">必填项</span> <span class="custom">请输入有效的电子邮箱地址</span> </span> </div> <div class="form_container"> <div class="checkbox_container"> <div class="checkbox_info"> <div class="check_mark"> <input type="checkbox" value="" id='checkbox'> <label for="checkbox"></label> </div> <label title="我愿意接受华为公司及其授权的合作伙伴为我发送华为产品、解决方案或服务的相关信息。我知道我可以随时取消订阅。"><span class="">*</span>我愿意接受华为公司及其授权的合作伙伴为我发送华为产品、解决方案或服务的相关信息。我知道我可以随时取消订阅。</label> </div> <span class="" id="span_checkbox"> <span class="mandatory">必填项 </span> </span> </div> </div> <div class="form_container"> <div class="checkbox_container"> <div class="checkbox_info"> <div class="check_mark"> <input type="checkbox" value="" id='checkbox_privacy'> <label for="checkbox_privacy"></label> </div> <label> <span class="">*</span>我理解并同意按照<a href="https://solar.huawei.com/cn/privacy" title="华为隐私保护条款">华为隐私保护条款</a>和<a href="https://www.huawei.com/cn/legal" target="_blank" rel="noreferrer" title="使用条款">使用条款</a>使用和传递我的个人信息。 </label> </div> <span class="" id="span_checkbox_privacy"> <span class="mandatory">必填项 </span> </span> </div> </div> <div class="form_container"> <button class="submit_btn" type="button"> <span>提交</span> </button> </div> </form> </div> <div class="success_message"> <div class="inner"> <div class="success_pic"> <img src="/-/media/SolarV4/solar-version2/common/newsletter/img/success_pic.png"> </div> <div class="success_content"> <h2>感谢您的订阅!</h2> <p>您的邮箱将收到一封确认邮件,请留意查收。</p> <p>您可以点击订阅邮件中的取消订阅链接,随时取消订阅。</p> </div> </div> </div> </div> </div> </div> <div id="pageSideTips"> <div class="side-tips"> <div class="side-tip"> <div class="icon-download"></div> <div class="hover grid--vertical-align-center"> <a href="https://digitalpower.huawei.com/power-marketing/#/cn/home" target="_blank"> <div class="side-tip-text ml18">营销资料中心</div> </a> <div class="side-tip-line ml12"></div> <a href="https://solar.huawei.com/cn/info/" target="_blank"> <div class="side-tip-text ml12">产品资料中心</div> </a> <div class="icon-download"></div> </div> </div> <div class="side-tip"> <a href="https://community.solar.huawei.com/cn/index.html" target="_blank"> <div class="icon-community"></div> <div class="hover grid--vertical-align-center"> <div class="side-tip-text ml24">社区</div> <div class="icon-community"></div> </div> </a> </div> <div class="side-tip"> <a href="https://digitalpower.huawei.com/robotchat/#/home/index?lang=zh_CN&domain=smartpv&from_title_zh=1117" target="_blank"> <div class="icon-onlineChat"></div> <div class="hover grid--vertical-align-center"> <div class="side-tip-text ml24">在线支持</div> <div class="icon-onlineChat"></div> </div> </a> </div> <div class='side-tip back-top'> <span></span> </div> </div> </div> <!--/HWDocContent--> <div id="pageFooterWrapper" class=""> <div class="page-footer"> <div class="footer-main"> <div class="bread-crumb"> <a href="/cn">主页</a> <span> > </span> <div class="last_bread">邮件订阅</div> </div> <div class="footer-note"> <p> </p> </div> <div class="footer-top-pc"> <div class="footer-item"> <p class="footer-col-title"> 关于华为智能光伏 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="/cn/news-room" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF9AE9F02', uem_label: '点击 页脚-新闻动态',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'News'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">新闻动态</a> </li> <li> <a href="/cn/events-list" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF685BEE2', uem_label: '点击 页脚-展会活动',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'Events'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">展会活动</a> </li> <li> <a href="/cn/success-stories" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF600C6A9', uem_label: '点击 页脚-成功故事', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'Success Stories'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">成功故事</a> </li> <li> <a href="/cn/events-list/cn/2023/publications" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFA7FE925', uem_label: '点击 页脚-出版物', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'Publications'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">出版物</a> </li> <li> <a href="/cn/newsletter" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF92D4039', uem_label: '点击 页脚-邮件订阅', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'Newsletter'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">邮件订阅</a> </li> </ul> </div> <div class="footer-item"> <p class="footer-col-title"> 产品 & 解决方案 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="/cn/professionals/residential" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFC68A1B1', uem_label: '点击 页脚-家庭绿电', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'Residential Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">家庭绿电</a> </li> <li> <a href="/cn/professionals/c-i" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF917FCBF', uem_label: '点击 页脚-行业绿电', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'C&I Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">行业绿电</a> </li> <li> <a href="/cn/professionals/pv-ess-charger" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF917FCBF', uem_label: '点击 页脚-行业绿电', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'One-stop optical storage and charging'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">光储充一站式</a> </li> <li> <a href="/cn/professionals/utility" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFC129699', uem_label: '点击 页脚-智能光伏电站',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'Utility Smart PV Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能光伏电站</a> </li> <li> <a href="/cn/professionals/ess" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF9407DA2', uem_label: '点击 页脚-智能组串式储能',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'Utility Smart String ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能组串式储能</a> </li> <li> <a href="/cn/professionals/micro-grid" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF856541C', uem_label: '点击 页脚-智能微网', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'Smart Micro-grid Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能微网</a> </li> <li> <a href="/cn/professionals/all-products" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF82FAC94', uem_label: '点击 页脚-所有产品',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'All Products'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">所有产品</a> </li> <li> <a href="/cn/professionals/SmartDesign" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFA50BFA2', uem_label: '点击 页脚-智能设计工具', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'SmartDesign 2.0'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能设计工具</a> </li> </ul> </div> <div class="footer-item"> <p class="footer-col-title"> 合作伙伴 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="/cn/partners/partner-introduction" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFAA8957F', uem_label: '点击 页脚-伙伴介绍',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Partners'+'+'+'Partner Introduction'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">伙伴介绍</a> </li> <li> <a href="https://partner.huawei.com/ecpri/#/?lang=zh_CN" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF9089592', uem_label: '点击 页脚-成为伙伴', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Partners'+'+'+'Become a Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">成为伙伴</a> </li> <li> <a href="/cn/partners/map?type=installer" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFA5D8847', uem_label: '点击 页脚-寻找安装商',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Partners'+'+'+'Find an Installer'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">寻找安装商</a> </li> <li> <a href="https://digitalpower.huawei.com/partner#/cn/main" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFC902FA5', uem_label: '点击 页脚-Power-Partner', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Partners'+'+'+'Power-Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">Power-Partner</a> </li> </ul> </div> <div class="footer-item"> <p class="footer-col-title"> 服务与支持 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="/cn/service-support/tsc" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFE8E0187', uem_label: '点击 页脚-技术支持中心', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Technical Support Center'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">技术支持中心</a> </li> <li> <a href="https://digitalpower.huawei.com/power-marketing/#/cn/home" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFB55CBBB', uem_label: '点击 页脚-营销资料中心', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'MKT Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">营销资料中心</a> </li> <li> <a href="https://solar.huawei.com/cn/info/" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFDC6C32C', uem_label: '点击 页脚-产品资料中心', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Product Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">产品资料中心</a> </li> <li> <a href="https://community.solar.huawei.com/cn/index.html" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFEA13070', uem_label: '点击 页脚-社区', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">社区</a> </li> <li> <a href="https://forum.huawei.com/enterprise/zh/forums/580879799675662336/580879823092461568" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFC06F0BC', uem_label: '点击 页脚-论坛', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Forum'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">论坛</a> </li> <li> <a href="https://digitalpower.huawei.com/robotchat/#/home/index?lang=zh_CN&domain=smartpv&from_title_zh=1117" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFBC0C044', uem_label: '点击 页脚-在线支持', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Online Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">在线支持</a> </li> </ul> </div> <div class="footer-item"> <p class="footer-col-title"> 快速链接 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="https://www.huawei.com/cn" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6C00CC864D', uem_label: '点击 页脚-华为集团',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'Huawei Corporate'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">华为集团</a> </li> <li> <a href="https://e.huawei.com/cn" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFE2F1FDA', uem_label: '点击 页脚-华为企业业务', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'Huawei Enterprise'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">华为企业业务</a> </li> <li> <a href="https://digitalpower.huawei.com/cn/?from=solar" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFF11F4E4', uem_label: '点击 页脚-华为数字能源', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'Huawei Digital Power'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">华为数字能源</a> </li> <li> <a href="https://intl.fusionsolar.huawei.com/pvmswebsite/nologin/assets/build/index.html#/jumppage" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6C005E7B45', uem_label: '点击 页脚-下载智能光伏App(移动端)',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'Download FusionSolar App (Mobile Version)'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">下载智能光伏App(移动端)</a> </li> <li> <a href="https://intl.fusionsolar.huawei.com" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFDEA6A0D', uem_label: '点击 页脚-登录智能光伏管理系统',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'FusionSolar SmartPVMS'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">登录智能光伏管理系统</a> </li> </ul> </div> </div> <div class="footer-buttom"> <div class="footer-copyright-content"> <div class="footer-copyright footer-copyright-item"> © 2025 华为技术有限公司 </div> <div class="footer-law"> <span class="footer-copyright-item"> <a class="item-link" href="/cn/privacy" target="" onclick="try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation','eventLabel': 'Privacy'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}" rel="noreferrer"> 隐私政策 </a> </span> </div> </div> <div class="footer-link"> <style type="text/css"> .page-footer .footer-buttom .footer-link .link-img-shipinhao { background: url("/-/media/SolarV4/images/Home/update/shipinhao.svg") 0 0 no-repeat; } .dark .page-footer .footer-buttom .footer-link .link-img-shipinhao { background: url("/-/media/SolarV4/images/Home/update/shipinhao_dark_v5.svg") 0 0 no-repeat; } </style> <div class="social-item social-icon"> <span class="footer-link-img link-img-wechat"> </span> <div class="hover-pop"> <div class="icon-close"></div> <div class="pop-text"> <p>官方微信</p> </div> <div class="pop-img"> <img src="/Assets/Solar/v4/img/common/wechat.png"> </div> </div> </div> <div class="social-item social-icon last-icon"> <span class="footer-link-img link-img-toutiao"> </span> <div class="hover-pop"> <div class="icon-close"></div> <div class="pop-text"> <p>头条</p> </div> <div class="pop-img"> <img src="/Assets/Solar/v4/img/common/toutiao.png"> </div> </div> </div> <div class="social-item social-icon last-icon"> <span class="footer-link-img link-img-shipinhao"> </span> <div class="hover-pop"> <div class="icon-close"></div> <div class="pop-text"> <p>视频号</p> </div> <div class="pop-img"> <img src="/-/media/SolarV4/images/Home/update/home-footer-icon_3.jpg"> </div> </div> </div> <!-- cookie --> <script> (function (config) { if (!window.location.href.includes('/cn')) { return } var namespace = config.namespace || "hwa"; if (self[namespace] || document.querySelector("script#uem_f")) { return; } self[namespace] = function () { (self[namespace].q = self[namespace].q || []).push(arguments); }; var element = document.createElement("script"); element.TRACKER_CONFIG = config; element.async = true; element.id = "uem_f"; element.src = config.src + "?_" + new Date().toJSON().split("T")[0]; document.head.appendChild(element); })({ platform: "web", edition: "his", env: "prod", appKey: "4ab0d2e51b4af11d0a9d947a89a882cb", src: "https://hwa.his.huawei.com/dist/uem_f.js" }); </script> <script charset="UTF-8" src="https://static.sensorsdata.cn/sdk/1.26.17/sensorsdata.min.js?ver=202412261628"></script> <script charset="UTF-8"> var sensors = window['sensorsDataAnalytic201505']; sensors.use('PageLeave', {}); sensors.init({ server_url: 'https://cdp.test.huawei.com/sa', heatmap: { scroll_notice_map: 'default' }, use_client_time: true, send_type: 'beacon' }); sensors.quick('autoTrack'); </script> <div class="browsehappy ReadPolicy"> <p>本站点使用cookies,继续浏览表示您同意我们使用cookies。<a href="https://solar.huawei.com/cn/privacy" target="_blank"> <span>Cookies和隐私政策 ></span></a><a href="javascript:closeCookieBanner()" class="close" title="close"></a> </p> </div> <script> setTimeout(function() { jQuery.Cache = { get: function (key) { var val; try { val = JSON.parse(decodeURIComponent(localStorage.getItem(key))); } catch (_e) { } return val; }, set: function (key, _value, expireDays) { var value = _value; if (!value) return; if (typeof value !== "object") { value = { value: _value }; } var d = new Date(); d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * expireDays); var expire = d; value.expire = expire; localStorage.setItem(key, encodeURIComponent(JSON.stringify(value))); }, del: function (key) { localStorage.removeItem(key); }, }; const commonModule = window.commonModule || {}; commonModule.browsehappy = function browsehappy() { if (!$.Cache) { setTimeout(() => { browsehappy(); }, 200); return; } let browsehappyCache = $.Cache.get('browsehappy'); let hideCache = function () { $.Cache.set('browsehappy', 'browsehappy', 365); }; $(document).on('click', '.browsehappy a.close', function (e) { $(this).closest('.browsehappy').slideUp(hideCache); }); try { if (!browsehappyCache || new Date(browsehappyCache.expire) - new Date() <= 0) { $.Cache.del('browsehappy'); $('.browsehappy').prependTo('body').slideDown(); $('.browsehappy').css('display', 'block'); history.scrollRestoration = 'manual'; $('html,body').animate( { scrollTop: 0, }, 'fast' ); } else { history.scrollRestoration = 'auto'; } } catch (_e) { } }; commonModule.browsehappy(); function closeCookieBanner() { hideCache(); $('.browsehappy').css('display', 'none') } },10) </script> <style> .ReadPolicy { background-color: #eeeeee; color: #282828; display: none; padding: 16px 0; width: 100%; z-index: 10000; position: fixed; bottom: 0; right: 0; } .ReadPolicy p { margin: 0 auto; font-size: 14px; line-height: 1.225; position: relative; padding-right: 20px; padding-left: 20px; width: 93.705%; max-width: 1799.136px; text-align: center; } .ReadPolicy p span { display: inline-block; vertical-align: top; letter-spacing: normal; } .ReadPolicy p a em { display: inline-block; vertical-align: top; font-weight: bold; transition: all 0.5s; letter-spacing: normal; } .ReadPolicy a { color: #c7000b; } .ReadPolicy p a:hover em { transform: translateX(10px); } .ReadPolicy .close { text-decoration: none; position: absolute; top: 0; right: 0px; display: block; height: 30px; width: 30px; color: #fff; line-height: 30px; text-align: center; float: right; margin-top: -7px; opacity: 1; } .ReadPolicy .close:before { content: '✖'; width: 30px; height: 30px; display: block; font-family: 'corpfont' !important; color: #333; font-size: 15px; } @media (max-width: 1024px) { .ReadPolicy { position: fixed; bottom: 0; left: 0; z-index: 999; width: 100%; } .ReadPolicy[style*='block']~.btn-go-top { bottom: 100px; } .ReadPolicy[style*='block']~.popup-icon { bottom: 143px; } .ReadPolicy[style*='block']~footer { margin-bottom: 66px; } } </style> </div> </div> </div> </div> </div> <script> var homeFolder = 'en'; </script> <!--Solar track code--> <script type="text/javascript"> var utag_data = { site_name: "solar", site_type: "website" }; </script> <script type="text/javascript"> (function(a,b,c,d){ a=((navigator.languages && navigator.languages.length) ? navigator.languages[0] : (navigator.browserLanguage || navigator.userLanguage || navigator.language || 'en')).toLowerCase() == "zh-cn" ? '//tags.tiqcdn.cn/utag/huawei/solar/prod/utag.js' : '//tags.tiqcdn.com/utag/huawei/solar/prod/utag.js'; b=document; c='script'; d=b.createElement(c); d.src=a; d.type='text/java'+c; d.async=true; a=b.getElementsByTagName(c)[0]; a.parentNode.insertBefore(d,a); })(); </script> <script src="/Assets/Solar/v4/js/utils/jquery-3.6.0.min.js?ver=202412261628"></script> <script src="/Assets/Solar/v4/js/snec/xss.min.js?ver=202412261628"></script> <script src="/Assets/Solar/v4/js/utils/polyfill.js?ver=202412261628"></script> <script src="/Assets/Solar/v4/js/utils/publicPages.js?ver=202412261628"></script> <script>$("head").append(`<link rel='canonical' href=${window.location.href.split('?')[0]}>`)</script> <link rel="preload" href="/-/media/SolarV4/solar-version2/common/seo/common-seo.js" as="script"> <script src="/-/media/SolarV4/solar-version2/common/seo/common-seo.js?ver=202412261628"></script> <script async="" src="/-/media/SolarV4/solar-version2/common/newsletter/js/newsletter.js?ver=202412261628"></script> </body> </html>