<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>227155</bug_id>
          
          <creation_ts>2021-06-17 16:59:47 -0700</creation_ts>
          <short_desc>jitCompileAndSetHeuristics shouldn&apos;t return true when we fail to compile</short_desc>
          <delta_ts>2021-06-22 10:49:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1770895</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-17 16:59:47 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770924</commentid>
    <comment_count>1</comment_count>
      <attachid>431749</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-17 19:19:05 -0700</bug_when>
    <thetext>Created attachment 431749
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771516</commentid>
    <comment_count>2</comment_count>
      <attachid>431926</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-21 16:24:22 -0700</bug_when>
    <thetext>Created attachment 431926
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771517</commentid>
    <comment_count>3</comment_count>
      <attachid>431926</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-21 16:24:38 -0700</bug_when>
    <thetext>Comment on attachment 431926
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=431926&amp;action=review

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:381
&gt; +    if (codeBlock-&gt;jitType() == JITType::BaselineJIT) {

This is the bug fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771531</commentid>
    <comment_count>4</comment_count>
      <attachid>431926</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-06-21 16:47:10 -0700</bug_when>
    <thetext>Comment on attachment 431926
patch

LGTM, might be worth pointing out in the ChangeLog why the new fuzzer is in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771532</commentid>
    <comment_count>5</comment_count>
      <attachid>431930</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-21 16:50:42 -0700</bug_when>
    <thetext>Created attachment 431930
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771712</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-22 10:48:51 -0700</bug_when>
    <thetext>Committed r279126 (239041@main): &lt;https://commits.webkit.org/239041@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431930.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771713</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-22 10:49:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/79622554&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431749</attachid>
            <date>2021-06-17 19:19:05 -0700</date>
            <delta_ts>2021-06-21 16:24:22 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>33748</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2ludGVycHJldGVyLXdhc20uanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvaW50ZXJwcmV0ZXItd2FzbS5qcwkocmV2
aXNpb24gMjc5MDA5KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvaW50ZXJwcmV0ZXItd2Fz
bS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwyICsxLDMgQEAKIC8vQCBza2lwIGlmICRhcmNoaXRl
Y3R1cmUgPT0gImFybSIgb3IgJGFyY2hpdGVjdHVyZSA9PSAibWlwcyIgb3IgJG1vZGVsID1+IC9B
cHBsZSBXYXRjaC8KKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VFeGVjdXRhYmxlQWxsb2NhdGlv
bkZ1eno9ZmFsc2UiKQogdmFyIE1vZHVsZT10eXBlb2YgTW9kdWxlIT09InVuZGVmaW5lZCI/TW9k
dWxlOnt9O3ZhciBtb2R1bGVPdmVycmlkZXM9e307dmFyIGtleTtmb3Ioa2V5IGluIE1vZHVsZSl7
aWYoTW9kdWxlLmhhc093blByb3BlcnR5KGtleSkpe21vZHVsZU92ZXJyaWRlc1trZXldPU1vZHVs
ZVtrZXldfX12YXIgYXJndW1lbnRzXz1bXTt2YXIgdGhpc1Byb2dyYW09Ii4vdGhpcy5wcm9ncmFt
Ijt2YXIgcXVpdF89ZnVuY3Rpb24oc3RhdHVzLHRvVGhyb3cpe3Rocm93IHRvVGhyb3d9O3ZhciBF
TlZJUk9OTUVOVF9JU19XRUI9ZmFsc2U7dmFyIEVOVklST05NRU5UX0lTX1dPUktFUj1mYWxzZTt2
YXIgRU5WSVJPTk1FTlRfSVNfTk9ERT1mYWxzZTt2YXIgRU5WSVJPTk1FTlRfSVNfU0hFTEw9ZmFs
c2U7RU5WSVJPTk1FTlRfSVNfV0VCPXR5cGVvZiB3aW5kb3c9PT0ib2JqZWN0IjtFTlZJUk9OTUVO
VF9JU19XT1JLRVI9dHlwZW9mIGltcG9ydFNjcmlwdHM9PT0iZnVuY3Rpb24iO0VOVklST05NRU5U
X0lTX05PREU9dHlwZW9mIHByb2Nlc3M9PT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lv
bnM9PT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMubm9kZT09PSJzdHJpbmciO0VO
VklST05NRU5UX0lTX1NIRUxMPSFFTlZJUk9OTUVOVF9JU19XRUImJiFFTlZJUk9OTUVOVF9JU19O
T0RFJiYhRU5WSVJPTk1FTlRfSVNfV09SS0VSO3ZhciBzY3JpcHREaXJlY3Rvcnk9IiI7ZnVuY3Rp
b24gbG9jYXRlRmlsZShwYXRoKXtpZihNb2R1bGVbImxvY2F0ZUZpbGUiXSl7cmV0dXJuIE1vZHVs
ZVsibG9jYXRlRmlsZSJdKHBhdGgsc2NyaXB0RGlyZWN0b3J5KX1yZXR1cm4gc2NyaXB0RGlyZWN0
b3J5K3BhdGh9dmFyIHJlYWRfLHJlYWRBc3luYyxyZWFkQmluYXJ5LHNldFdpbmRvd1RpdGxlO3Zh
ciBub2RlRlM7dmFyIG5vZGVQYXRoO2lmKEVOVklST05NRU5UX0lTX05PREUpe2lmKEVOVklST05N
RU5UX0lTX1dPUktFUil7c2NyaXB0RGlyZWN0b3J5PXJlcXVpcmUoInBhdGgiKS5kaXJuYW1lKHNj
cmlwdERpcmVjdG9yeSkrIi8ifWVsc2V7c2NyaXB0RGlyZWN0b3J5PV9fZGlybmFtZSsiLyJ9cmVh
ZF89ZnVuY3Rpb24gc2hlbGxfcmVhZChmaWxlbmFtZSxiaW5hcnkpe2lmKCFub2RlRlMpbm9kZUZT
PXJlcXVpcmUoImZzIik7aWYoIW5vZGVQYXRoKW5vZGVQYXRoPXJlcXVpcmUoInBhdGgiKTtmaWxl
bmFtZT1ub2RlUGF0aFsibm9ybWFsaXplIl0oZmlsZW5hbWUpO3JldHVybiBub2RlRlNbInJlYWRG
aWxlU3luYyJdKGZpbGVuYW1lLGJpbmFyeT9udWxsOiJ1dGY4Iil9O3JlYWRCaW5hcnk9ZnVuY3Rp
b24gcmVhZEJpbmFyeShmaWxlbmFtZSl7dmFyIHJldD1yZWFkXyhmaWxlbmFtZSx0cnVlKTtpZigh
cmV0LmJ1ZmZlcil7cmV0PW5ldyBVaW50OEFycmF5KHJldCl9YXNzZXJ0KHJldC5idWZmZXIpO3Jl
dHVybiByZXR9O2lmKHByb2Nlc3NbImFyZ3YiXS5sZW5ndGg+MSl7dGhpc1Byb2dyYW09cHJvY2Vz
c1siYXJndiJdWzFdLnJlcGxhY2UoL1xcL2csIi8iKX1hcmd1bWVudHNfPXByb2Nlc3NbImFyZ3Yi
XS5zbGljZSgyKTtpZih0eXBlb2YgbW9kdWxlIT09InVuZGVmaW5lZCIpe21vZHVsZVsiZXhwb3J0
cyJdPU1vZHVsZX1wcm9jZXNzWyJvbiJdKCJ1bmNhdWdodEV4Y2VwdGlvbiIsZnVuY3Rpb24oZXgp
e2lmKCEoZXggaW5zdGFuY2VvZiBFeGl0U3RhdHVzKSl7dGhyb3cgZXh9fSk7cHJvY2Vzc1sib24i
XSgidW5oYW5kbGVkUmVqZWN0aW9uIixhYm9ydCk7cXVpdF89ZnVuY3Rpb24oc3RhdHVzKXtwcm9j
ZXNzWyJleGl0Il0oc3RhdHVzKX07TW9kdWxlWyJpbnNwZWN0Il09ZnVuY3Rpb24oKXtyZXR1cm4i
W0Vtc2NyaXB0ZW4gTW9kdWxlIG9iamVjdF0ifX1lbHNlIGlmKEVOVklST05NRU5UX0lTX1NIRUxM
KXtpZih0eXBlb2YgcmVhZCE9InVuZGVmaW5lZCIpe3JlYWRfPWZ1bmN0aW9uIHNoZWxsX3JlYWQo
Zil7cmV0dXJuIHJlYWQoZil9fXJlYWRCaW5hcnk9ZnVuY3Rpb24gcmVhZEJpbmFyeShmKXt2YXIg
ZGF0YTtpZih0eXBlb2YgcmVhZGJ1ZmZlcj09PSJmdW5jdGlvbiIpe3JldHVybiBuZXcgVWludDhB
cnJheShyZWFkYnVmZmVyKGYpKX1kYXRhPXJlYWQoZiwiYmluYXJ5Iik7YXNzZXJ0KHR5cGVvZiBk
YXRhPT09Im9iamVjdCIpO3JldHVybiBkYXRhfTtpZih0eXBlb2Ygc2NyaXB0QXJncyE9InVuZGVm
aW5lZCIpe2FyZ3VtZW50c189c2NyaXB0QXJnc31lbHNlIGlmKHR5cGVvZiBhcmd1bWVudHMhPSJ1
bmRlZmluZWQiKXthcmd1bWVudHNfPWFyZ3VtZW50c31pZih0eXBlb2YgcXVpdD09PSJmdW5jdGlv
biIpe3F1aXRfPWZ1bmN0aW9uKHN0YXR1cyl7cXVpdChzdGF0dXMpfX1pZih0eXBlb2YgcHJpbnQh
PT0idW5kZWZpbmVkIil7aWYodHlwZW9mIGNvbnNvbGU9PT0idW5kZWZpbmVkIiljb25zb2xlPXt9
O2NvbnNvbGUubG9nPXByaW50O2NvbnNvbGUud2Fybj1jb25zb2xlLmVycm9yPXR5cGVvZiBwcmlu
dEVyciE9PSJ1bmRlZmluZWQiP3ByaW50RXJyOnByaW50fX1lbHNlIGlmKEVOVklST05NRU5UX0lT
X1dFQnx8RU5WSVJPTk1FTlRfSVNfV09SS0VSKXtpZihFTlZJUk9OTUVOVF9JU19XT1JLRVIpe3Nj
cmlwdERpcmVjdG9yeT1zZWxmLmxvY2F0aW9uLmhyZWZ9ZWxzZSBpZihkb2N1bWVudC5jdXJyZW50
U2NyaXB0KXtzY3JpcHREaXJlY3Rvcnk9ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmN9aWYoc2Ny
aXB0RGlyZWN0b3J5LmluZGV4T2YoImJsb2I6IikhPT0wKXtzY3JpcHREaXJlY3Rvcnk9c2NyaXB0
RGlyZWN0b3J5LnN1YnN0cigwLHNjcmlwdERpcmVjdG9yeS5sYXN0SW5kZXhPZigiLyIpKzEpfWVs
c2V7c2NyaXB0RGlyZWN0b3J5PSIifXtyZWFkXz1mdW5jdGlvbiBzaGVsbF9yZWFkKHVybCl7dmFy
IHhocj1uZXcgWE1MSHR0cFJlcXVlc3Q7eGhyLm9wZW4oIkdFVCIsdXJsLGZhbHNlKTt4aHIuc2Vu
ZChudWxsKTtyZXR1cm4geGhyLnJlc3BvbnNlVGV4dH07aWYoRU5WSVJPTk1FTlRfSVNfV09SS0VS
KXtyZWFkQmluYXJ5PWZ1bmN0aW9uIHJlYWRCaW5hcnkodXJsKXt2YXIgeGhyPW5ldyBYTUxIdHRw
UmVxdWVzdDt4aHIub3BlbigiR0VUIix1cmwsZmFsc2UpO3hoci5yZXNwb25zZVR5cGU9ImFycmF5
YnVmZmVyIjt4aHIuc2VuZChudWxsKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoeGhyLnJlc3BvbnNl
KX19cmVhZEFzeW5jPWZ1bmN0aW9uIHJlYWRBc3luYyh1cmwsb25sb2FkLG9uZXJyb3Ipe3ZhciB4
aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJHRVQiLHVybCx0cnVlKTt4aHIucmVzcG9u
c2VUeXBlPSJhcnJheWJ1ZmZlciI7eGhyLm9ubG9hZD1mdW5jdGlvbiB4aHJfb25sb2FkKCl7aWYo
eGhyLnN0YXR1cz09MjAwfHx4aHIuc3RhdHVzPT0wJiZ4aHIucmVzcG9uc2Upe29ubG9hZCh4aHIu
cmVzcG9uc2UpO3JldHVybn1vbmVycm9yKCl9O3hoci5vbmVycm9yPW9uZXJyb3I7eGhyLnNlbmQo
bnVsbCl9fXNldFdpbmRvd1RpdGxlPWZ1bmN0aW9uKHRpdGxlKXtkb2N1bWVudC50aXRsZT10aXRs
ZX19ZWxzZXt9dmFyIG91dD1Nb2R1bGVbInByaW50Il18fGNvbnNvbGUubG9nLmJpbmQoY29uc29s
ZSk7dmFyIGVycj1Nb2R1bGVbInByaW50RXJyIl18fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUp
O2ZvcihrZXkgaW4gbW9kdWxlT3ZlcnJpZGVzKXtpZihtb2R1bGVPdmVycmlkZXMuaGFzT3duUHJv
cGVydHkoa2V5KSl7TW9kdWxlW2tleV09bW9kdWxlT3ZlcnJpZGVzW2tleV19fW1vZHVsZU92ZXJy
aWRlcz1udWxsO2lmKE1vZHVsZVsiYXJndW1lbnRzIl0pYXJndW1lbnRzXz1Nb2R1bGVbImFyZ3Vt
ZW50cyJdO2lmKE1vZHVsZVsidGhpc1Byb2dyYW0iXSl0aGlzUHJvZ3JhbT1Nb2R1bGVbInRoaXNQ
cm9ncmFtIl07aWYoTW9kdWxlWyJxdWl0Il0pcXVpdF89TW9kdWxlWyJxdWl0Il07dmFyIFNUQUNL
X0FMSUdOPTE2O2Z1bmN0aW9uIGR5bmFtaWNBbGxvYyhzaXplKXt2YXIgcmV0PUhFQVAzMltEWU5B
TUlDVE9QX1BUUj4+Ml07dmFyIGVuZD1yZXQrc2l6ZSsxNSYtMTY7SEVBUDMyW0RZTkFNSUNUT1Bf
UFRSPj4yXT1lbmQ7cmV0dXJuIHJldH1mdW5jdGlvbiBnZXROYXRpdmVUeXBlU2l6ZSh0eXBlKXtz
d2l0Y2godHlwZSl7Y2FzZSJpMSI6Y2FzZSJpOCI6cmV0dXJuIDE7Y2FzZSJpMTYiOnJldHVybiAy
O2Nhc2UiaTMyIjpyZXR1cm4gNDtjYXNlImk2NCI6cmV0dXJuIDg7Y2FzZSJmbG9hdCI6cmV0dXJu
IDQ7Y2FzZSJkb3VibGUiOnJldHVybiA4O2RlZmF1bHQ6e2lmKHR5cGVbdHlwZS5sZW5ndGgtMV09
PT0iKiIpe3JldHVybiA0fWVsc2UgaWYodHlwZVswXT09PSJpIil7dmFyIGJpdHM9TnVtYmVyKHR5
cGUuc3Vic3RyKDEpKTthc3NlcnQoYml0cyU4PT09MCwiZ2V0TmF0aXZlVHlwZVNpemUgaW52YWxp
ZCBiaXRzICIrYml0cysiLCB0eXBlICIrdHlwZSk7cmV0dXJuIGJpdHMvOH1lbHNle3JldHVybiAw
fX19fWZ1bmN0aW9uIHdhcm5PbmNlKHRleHQpe2lmKCF3YXJuT25jZS5zaG93bil3YXJuT25jZS5z
aG93bj17fTtpZighd2Fybk9uY2Uuc2hvd25bdGV4dF0pe3dhcm5PbmNlLnNob3duW3RleHRdPTE7
ZXJyKHRleHQpfX1mdW5jdGlvbiBjb252ZXJ0SnNGdW5jdGlvblRvV2FzbShmdW5jLHNpZyl7aWYo
dHlwZW9mIFdlYkFzc2VtYmx5LkZ1bmN0aW9uPT09ImZ1bmN0aW9uIil7dmFyIHR5cGVOYW1lcz17
ImkiOiJpMzIiLCJqIjoiaTY0IiwiZiI6ImYzMiIsImQiOiJmNjQifTt2YXIgdHlwZT17cGFyYW1l
dGVyczpbXSxyZXN1bHRzOnNpZ1swXT09InYiP1tdOlt0eXBlTmFtZXNbc2lnWzBdXV19O2Zvcih2
YXIgaT0xO2k8c2lnLmxlbmd0aDsrK2kpe3R5cGUucGFyYW1ldGVycy5wdXNoKHR5cGVOYW1lc1tz
aWdbaV1dKX1yZXR1cm4gbmV3IFdlYkFzc2VtYmx5LkZ1bmN0aW9uKHR5cGUsZnVuYyl9dmFyIHR5
cGVTZWN0aW9uPVsxLDAsMSw5Nl07dmFyIHNpZ1JldD1zaWcuc2xpY2UoMCwxKTt2YXIgc2lnUGFy
YW09c2lnLnNsaWNlKDEpO3ZhciB0eXBlQ29kZXM9eyJpIjoxMjcsImoiOjEyNiwiZiI6MTI1LCJk
IjoxMjR9O3R5cGVTZWN0aW9uLnB1c2goc2lnUGFyYW0ubGVuZ3RoKTtmb3IodmFyIGk9MDtpPHNp
Z1BhcmFtLmxlbmd0aDsrK2kpe3R5cGVTZWN0aW9uLnB1c2godHlwZUNvZGVzW3NpZ1BhcmFtW2ld
XSl9aWYoc2lnUmV0PT0idiIpe3R5cGVTZWN0aW9uLnB1c2goMCl9ZWxzZXt0eXBlU2VjdGlvbj10
eXBlU2VjdGlvbi5jb25jYXQoWzEsdHlwZUNvZGVzW3NpZ1JldF1dKX10eXBlU2VjdGlvblsxXT10
eXBlU2VjdGlvbi5sZW5ndGgtMjt2YXIgYnl0ZXM9bmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEw
OSwxLDAsMCwwXS5jb25jYXQodHlwZVNlY3Rpb24sWzIsNywxLDEsMTAxLDEsMTAyLDAsMCw3LDUs
MSwxLDEwMiwwLDBdKSk7dmFyIG1vZHVsZT1uZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJ5dGVzKTt2
YXIgaW5zdGFuY2U9bmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG1vZHVsZSx7ImUiOnsiZiI6ZnVu
Y319KTt2YXIgd3JhcHBlZEZ1bmM9aW5zdGFuY2UuZXhwb3J0c1siZiJdO3JldHVybiB3cmFwcGVk
RnVuY312YXIgZnJlZVRhYmxlSW5kZXhlcz1bXTt2YXIgZnVuY3Rpb25zSW5UYWJsZU1hcDtmdW5j
dGlvbiBhZGRGdW5jdGlvbldhc20oZnVuYyxzaWcpe3ZhciB0YWJsZT13YXNtVGFibGU7aWYoIWZ1
bmN0aW9uc0luVGFibGVNYXApe2Z1bmN0aW9uc0luVGFibGVNYXA9bmV3IFdlYWtNYXA7Zm9yKHZh
ciBpPTA7aTx0YWJsZS5sZW5ndGg7aSsrKXt2YXIgaXRlbT10YWJsZS5nZXQoaSk7aWYoaXRlbSl7
ZnVuY3Rpb25zSW5UYWJsZU1hcC5zZXQoaXRlbSxpKX19fWlmKGZ1bmN0aW9uc0luVGFibGVNYXAu
aGFzKGZ1bmMpKXtyZXR1cm4gZnVuY3Rpb25zSW5UYWJsZU1hcC5nZXQoZnVuYyl9dmFyIHJldDtp
ZihmcmVlVGFibGVJbmRleGVzLmxlbmd0aCl7cmV0PWZyZWVUYWJsZUluZGV4ZXMucG9wKCl9ZWxz
ZXtyZXQ9dGFibGUubGVuZ3RoO3RyeXt0YWJsZS5ncm93KDEpfWNhdGNoKGVycil7aWYoIShlcnIg
aW5zdGFuY2VvZiBSYW5nZUVycm9yKSl7dGhyb3cgZXJyfXRocm93IlVuYWJsZSB0byBncm93IHdh
c20gdGFibGUuIFNldCBBTExPV19UQUJMRV9HUk9XVEguIn19dHJ5e3RhYmxlLnNldChyZXQsZnVu
Yyl9Y2F0Y2goZXJyKXtpZighKGVyciBpbnN0YW5jZW9mIFR5cGVFcnJvcikpe3Rocm93IGVycn12
YXIgd3JhcHBlZD1jb252ZXJ0SnNGdW5jdGlvblRvV2FzbShmdW5jLHNpZyk7dGFibGUuc2V0KHJl
dCx3cmFwcGVkKX1mdW5jdGlvbnNJblRhYmxlTWFwLnNldChmdW5jLHJldCk7cmV0dXJuIHJldH1m
dW5jdGlvbiByZW1vdmVGdW5jdGlvbldhc20oaW5kZXgpe2Z1bmN0aW9uc0luVGFibGVNYXAuZGVs
ZXRlKHdhc21UYWJsZS5nZXQoaW5kZXgpKTtmcmVlVGFibGVJbmRleGVzLnB1c2goaW5kZXgpfXZh
ciBmdW5jV3JhcHBlcnM9e307ZnVuY3Rpb24gZHluQ2FsbChzaWcscHRyLGFyZ3Mpe2lmKGFyZ3Mm
JmFyZ3MubGVuZ3RoKXtyZXR1cm4gTW9kdWxlWyJkeW5DYWxsXyIrc2lnXS5hcHBseShudWxsLFtw
dHJdLmNvbmNhdChhcmdzKSl9ZWxzZXtyZXR1cm4gTW9kdWxlWyJkeW5DYWxsXyIrc2lnXS5jYWxs
KG51bGwscHRyKX19dmFyIHRlbXBSZXQwPTA7dmFyIHNldFRlbXBSZXQwPWZ1bmN0aW9uKHZhbHVl
KXt0ZW1wUmV0MD12YWx1ZX07dmFyIHdhc21CaW5hcnk7aWYoTW9kdWxlWyJ3YXNtQmluYXJ5Il0p
d2FzbUJpbmFyeT1Nb2R1bGVbIndhc21CaW5hcnkiXTt2YXIgbm9FeGl0UnVudGltZTtpZihNb2R1
bGVbIm5vRXhpdFJ1bnRpbWUiXSlub0V4aXRSdW50aW1lPU1vZHVsZVsibm9FeGl0UnVudGltZSJd
O2lmKHR5cGVvZiBXZWJBc3NlbWJseSE9PSJvYmplY3QiKXtlcnIoIm5vIG5hdGl2ZSB3YXNtIHN1
cHBvcnQgZGV0ZWN0ZWQiKX1mdW5jdGlvbiBzZXRWYWx1ZShwdHIsdmFsdWUsdHlwZSxub1NhZmUp
e3R5cGU9dHlwZXx8Imk4IjtpZih0eXBlLmNoYXJBdCh0eXBlLmxlbmd0aC0xKT09PSIqIil0eXBl
PSJpMzIiO3N3aXRjaCh0eXBlKXtjYXNlImkxIjpIRUFQOFtwdHI+PjBdPXZhbHVlO2JyZWFrO2Nh
c2UiaTgiOkhFQVA4W3B0cj4+MF09dmFsdWU7YnJlYWs7Y2FzZSJpMTYiOkhFQVAxNltwdHI+PjFd
PXZhbHVlO2JyZWFrO2Nhc2UiaTMyIjpIRUFQMzJbcHRyPj4yXT12YWx1ZTticmVhaztjYXNlImk2
NCI6dGVtcEk2ND1bdmFsdWU+Pj4wLCh0ZW1wRG91YmxlPXZhbHVlLCtNYXRoX2Ficyh0ZW1wRG91
YmxlKT49MT90ZW1wRG91YmxlPjA/KE1hdGhfbWluKCtNYXRoX2Zsb29yKHRlbXBEb3VibGUvNDI5
NDk2NzI5NiksNDI5NDk2NzI5NSl8MCk+Pj4wOn5+K01hdGhfY2VpbCgodGVtcERvdWJsZS0rKH5+
dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLEhFQVAzMltwdHI+PjJdPXRlbXBJ
NjRbMF0sSEVBUDMyW3B0cis0Pj4yXT10ZW1wSTY0WzFdO2JyZWFrO2Nhc2UiZmxvYXQiOkhFQVBG
MzJbcHRyPj4yXT12YWx1ZTticmVhaztjYXNlImRvdWJsZSI6SEVBUEY2NFtwdHI+PjNdPXZhbHVl
O2JyZWFrO2RlZmF1bHQ6YWJvcnQoImludmFsaWQgdHlwZSBmb3Igc2V0VmFsdWU6ICIrdHlwZSl9
fXZhciB3YXNtTWVtb3J5O3ZhciB3YXNtVGFibGU9bmV3IFdlYkFzc2VtYmx5LlRhYmxlKHsiaW5p
dGlhbCI6NCwibWF4aW11bSI6NCswLCJlbGVtZW50IjoiYW55ZnVuYyJ9KTt2YXIgQUJPUlQ9ZmFs
c2U7dmFyIEVYSVRTVEFUVVM9MDtmdW5jdGlvbiBhc3NlcnQoY29uZGl0aW9uLHRleHQpe2lmKCFj
b25kaXRpb24pe2Fib3J0KCJBc3NlcnRpb24gZmFpbGVkOiAiK3RleHQpfX1mdW5jdGlvbiBnZXRD
RnVuYyhpZGVudCl7dmFyIGZ1bmM9TW9kdWxlWyJfIitpZGVudF07YXNzZXJ0KGZ1bmMsIkNhbm5v
dCBjYWxsIHVua25vd24gZnVuY3Rpb24gIitpZGVudCsiLCBtYWtlIHN1cmUgaXQgaXMgZXhwb3J0
ZWQiKTtyZXR1cm4gZnVuY31mdW5jdGlvbiBjY2FsbChpZGVudCxyZXR1cm5UeXBlLGFyZ1R5cGVz
LGFyZ3Msb3B0cyl7dmFyIHRvQz17InN0cmluZyI6ZnVuY3Rpb24oc3RyKXt2YXIgcmV0PTA7aWYo
c3RyIT09bnVsbCYmc3RyIT09dW5kZWZpbmVkJiZzdHIhPT0wKXt2YXIgbGVuPShzdHIubGVuZ3Ro
PDwyKSsxO3JldD1zdGFja0FsbG9jKGxlbik7c3RyaW5nVG9VVEY4KHN0cixyZXQsbGVuKX1yZXR1
cm4gcmV0fSwiYXJyYXkiOmZ1bmN0aW9uKGFycil7dmFyIHJldD1zdGFja0FsbG9jKGFyci5sZW5n
dGgpO3dyaXRlQXJyYXlUb01lbW9yeShhcnIscmV0KTtyZXR1cm4gcmV0fX07ZnVuY3Rpb24gY29u
dmVydFJldHVyblZhbHVlKHJldCl7aWYocmV0dXJuVHlwZT09PSJzdHJpbmciKXJldHVybiBVVEY4
VG9TdHJpbmcocmV0KTtpZihyZXR1cm5UeXBlPT09ImJvb2xlYW4iKXJldHVybiBCb29sZWFuKHJl
dCk7cmV0dXJuIHJldH12YXIgZnVuYz1nZXRDRnVuYyhpZGVudCk7dmFyIGNBcmdzPVtdO3ZhciBz
dGFjaz0wO2lmKGFyZ3Mpe2Zvcih2YXIgaT0wO2k8YXJncy5sZW5ndGg7aSsrKXt2YXIgY29udmVy
dGVyPXRvQ1thcmdUeXBlc1tpXV07aWYoY29udmVydGVyKXtpZihzdGFjaz09PTApc3RhY2s9c3Rh
Y2tTYXZlKCk7Y0FyZ3NbaV09Y29udmVydGVyKGFyZ3NbaV0pfWVsc2V7Y0FyZ3NbaV09YXJnc1tp
XX19fXZhciByZXQ9ZnVuYy5hcHBseShudWxsLGNBcmdzKTtyZXQ9Y29udmVydFJldHVyblZhbHVl
KHJldCk7aWYoc3RhY2shPT0wKXN0YWNrUmVzdG9yZShzdGFjayk7cmV0dXJuIHJldH12YXIgQUxM
T0NfTk9ORT0zO3ZhciBVVEY4RGVjb2Rlcj10eXBlb2YgVGV4dERlY29kZXIhPT0idW5kZWZpbmVk
Ij9uZXcgVGV4dERlY29kZXIoInV0ZjgiKTp1bmRlZmluZWQ7ZnVuY3Rpb24gVVRGOEFycmF5VG9T
dHJpbmcoaGVhcCxpZHgsbWF4Qnl0ZXNUb1JlYWQpe3ZhciBlbmRJZHg9aWR4K21heEJ5dGVzVG9S
ZWFkO3ZhciBlbmRQdHI9aWR4O3doaWxlKGhlYXBbZW5kUHRyXSYmIShlbmRQdHI+PWVuZElkeCkp
KytlbmRQdHI7aWYoZW5kUHRyLWlkeD4xNiYmaGVhcC5zdWJhcnJheSYmVVRGOERlY29kZXIpe3Jl
dHVybiBVVEY4RGVjb2Rlci5kZWNvZGUoaGVhcC5zdWJhcnJheShpZHgsZW5kUHRyKSl9ZWxzZXt2
YXIgc3RyPSIiO3doaWxlKGlkeDxlbmRQdHIpe3ZhciB1MD1oZWFwW2lkeCsrXTtpZighKHUwJjEy
OCkpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSh1MCk7Y29udGludWV9dmFyIHUxPWhlYXBbaWR4
KytdJjYzO2lmKCh1MCYyMjQpPT0xOTIpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSgodTAmMzEp
PDw2fHUxKTtjb250aW51ZX12YXIgdTI9aGVhcFtpZHgrK10mNjM7aWYoKHUwJjI0MCk9PTIyNCl7
dTA9KHUwJjE1KTw8MTJ8dTE8PDZ8dTJ9ZWxzZXt1MD0odTAmNyk8PDE4fHUxPDwxMnx1Mjw8Nnxo
ZWFwW2lkeCsrXSY2M31pZih1MDw2NTUzNil7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHUwKX1l
bHNle3ZhciBjaD11MC02NTUzNjtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8Y2g+PjEw
LDU2MzIwfGNoJjEwMjMpfX19cmV0dXJuIHN0cn1mdW5jdGlvbiBVVEY4VG9TdHJpbmcocHRyLG1h
eEJ5dGVzVG9SZWFkKXtyZXR1cm4gcHRyP1VURjhBcnJheVRvU3RyaW5nKEhFQVBVOCxwdHIsbWF4
Qnl0ZXNUb1JlYWQpOiIifWZ1bmN0aW9uIHN0cmluZ1RvVVRGOEFycmF5KHN0cixoZWFwLG91dElk
eCxtYXhCeXRlc1RvV3JpdGUpe2lmKCEobWF4Qnl0ZXNUb1dyaXRlPjApKXJldHVybiAwO3ZhciBz
dGFydElkeD1vdXRJZHg7dmFyIGVuZElkeD1vdXRJZHgrbWF4Qnl0ZXNUb1dyaXRlLTE7Zm9yKHZh
ciBpPTA7aTxzdHIubGVuZ3RoOysraSl7dmFyIHU9c3RyLmNoYXJDb2RlQXQoaSk7aWYodT49NTUy
OTYmJnU8PTU3MzQzKXt2YXIgdTE9c3RyLmNoYXJDb2RlQXQoKytpKTt1PTY1NTM2KygodSYxMDIz
KTw8MTApfHUxJjEwMjN9aWYodTw9MTI3KXtpZihvdXRJZHg+PWVuZElkeClicmVhaztoZWFwW291
dElkeCsrXT11fWVsc2UgaWYodTw9MjA0Nyl7aWYob3V0SWR4KzE+PWVuZElkeClicmVhaztoZWFw
W291dElkeCsrXT0xOTJ8dT4+NjtoZWFwW291dElkeCsrXT0xMjh8dSY2M31lbHNlIGlmKHU8PTY1
NTM1KXtpZihvdXRJZHgrMj49ZW5kSWR4KWJyZWFrO2hlYXBbb3V0SWR4KytdPTIyNHx1Pj4xMjto
ZWFwW291dElkeCsrXT0xMjh8dT4+NiY2MztoZWFwW291dElkeCsrXT0xMjh8dSY2M31lbHNle2lm
KG91dElkeCszPj1lbmRJZHgpYnJlYWs7aGVhcFtvdXRJZHgrK109MjQwfHU+PjE4O2hlYXBbb3V0
SWR4KytdPTEyOHx1Pj4xMiY2MztoZWFwW291dElkeCsrXT0xMjh8dT4+NiY2MztoZWFwW291dElk
eCsrXT0xMjh8dSY2M319aGVhcFtvdXRJZHhdPTA7cmV0dXJuIG91dElkeC1zdGFydElkeH1mdW5j
dGlvbiBzdHJpbmdUb1VURjgoc3RyLG91dFB0cixtYXhCeXRlc1RvV3JpdGUpe3JldHVybiBzdHJp
bmdUb1VURjhBcnJheShzdHIsSEVBUFU4LG91dFB0cixtYXhCeXRlc1RvV3JpdGUpfWZ1bmN0aW9u
IGxlbmd0aEJ5dGVzVVRGOChzdHIpe3ZhciBsZW49MDtmb3IodmFyIGk9MDtpPHN0ci5sZW5ndGg7
KytpKXt2YXIgdT1zdHIuY2hhckNvZGVBdChpKTtpZih1Pj01NTI5NiYmdTw9NTczNDMpdT02NTUz
NisoKHUmMTAyMyk8PDEwKXxzdHIuY2hhckNvZGVBdCgrK2kpJjEwMjM7aWYodTw9MTI3KSsrbGVu
O2Vsc2UgaWYodTw9MjA0NylsZW4rPTI7ZWxzZSBpZih1PD02NTUzNSlsZW4rPTM7ZWxzZSBsZW4r
PTR9cmV0dXJuIGxlbn12YXIgVVRGMTZEZWNvZGVyPXR5cGVvZiBUZXh0RGVjb2RlciE9PSJ1bmRl
ZmluZWQiP25ldyBUZXh0RGVjb2RlcigidXRmLTE2bGUiKTp1bmRlZmluZWQ7ZnVuY3Rpb24gYWxs
b2NhdGVVVEY4T25TdGFjayhzdHIpe3ZhciBzaXplPWxlbmd0aEJ5dGVzVVRGOChzdHIpKzE7dmFy
IHJldD1zdGFja0FsbG9jKHNpemUpO3N0cmluZ1RvVVRGOEFycmF5KHN0cixIRUFQOCxyZXQsc2l6
ZSk7cmV0dXJuIHJldH1mdW5jdGlvbiB3cml0ZUFycmF5VG9NZW1vcnkoYXJyYXksYnVmZmVyKXtI
RUFQOC5zZXQoYXJyYXksYnVmZmVyKX1mdW5jdGlvbiB3cml0ZUFzY2lpVG9NZW1vcnkoc3RyLGJ1
ZmZlcixkb250QWRkTnVsbCl7Zm9yKHZhciBpPTA7aTxzdHIubGVuZ3RoOysraSl7SEVBUDhbYnVm
ZmVyKys+PjBdPXN0ci5jaGFyQ29kZUF0KGkpfWlmKCFkb250QWRkTnVsbClIRUFQOFtidWZmZXI+
PjBdPTB9dmFyIFdBU01fUEFHRV9TSVpFPTY1NTM2O3ZhciBidWZmZXIsSEVBUDgsSEVBUFU4LEhF
QVAxNixIRUFQVTE2LEhFQVAzMixIRUFQVTMyLEhFQVBGMzIsSEVBUEY2NDtmdW5jdGlvbiB1cGRh
dGVHbG9iYWxCdWZmZXJBbmRWaWV3cyhidWYpe2J1ZmZlcj1idWY7TW9kdWxlWyJIRUFQOCJdPUhF
QVA4PW5ldyBJbnQ4QXJyYXkoYnVmKTtNb2R1bGVbIkhFQVAxNiJdPUhFQVAxNj1uZXcgSW50MTZB
cnJheShidWYpO01vZHVsZVsiSEVBUDMyIl09SEVBUDMyPW5ldyBJbnQzMkFycmF5KGJ1Zik7TW9k
dWxlWyJIRUFQVTgiXT1IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoYnVmKTtNb2R1bGVbIkhFQVBVMTYi
XT1IRUFQVTE2PW5ldyBVaW50MTZBcnJheShidWYpO01vZHVsZVsiSEVBUFUzMiJdPUhFQVBVMzI9
bmV3IFVpbnQzMkFycmF5KGJ1Zik7TW9kdWxlWyJIRUFQRjMyIl09SEVBUEYzMj1uZXcgRmxvYXQz
MkFycmF5KGJ1Zik7TW9kdWxlWyJIRUFQRjY0Il09SEVBUEY2ND1uZXcgRmxvYXQ2NEFycmF5KGJ1
Zil9dmFyIFNUQUNLX0JBU0U9NTI1MDQ0OCxEWU5BTUlDX0JBU0U9NTI1MDQ0OCxEWU5BTUlDVE9Q
X1BUUj03NDA4O3ZhciBJTklUSUFMX0lOSVRJQUxfTUVNT1JZPU1vZHVsZVsiSU5JVElBTF9NRU1P
UlkiXXx8MTY3NzcyMTY7aWYoTW9kdWxlWyJ3YXNtTWVtb3J5Il0pe3dhc21NZW1vcnk9TW9kdWxl
WyJ3YXNtTWVtb3J5Il19ZWxzZXt3YXNtTWVtb3J5PW5ldyBXZWJBc3NlbWJseS5NZW1vcnkoeyJp
bml0aWFsIjpJTklUSUFMX0lOSVRJQUxfTUVNT1JZL1dBU01fUEFHRV9TSVpFLCJtYXhpbXVtIjpJ
TklUSUFMX0lOSVRJQUxfTUVNT1JZL1dBU01fUEFHRV9TSVpFfSl9aWYod2FzbU1lbW9yeSl7YnVm
ZmVyPXdhc21NZW1vcnkuYnVmZmVyfUlOSVRJQUxfSU5JVElBTF9NRU1PUlk9YnVmZmVyLmJ5dGVM
ZW5ndGg7dXBkYXRlR2xvYmFsQnVmZmVyQW5kVmlld3MoYnVmZmVyKTtIRUFQMzJbRFlOQU1JQ1RP
UF9QVFI+PjJdPURZTkFNSUNfQkFTRTtmdW5jdGlvbiBjYWxsUnVudGltZUNhbGxiYWNrcyhjYWxs
YmFja3Mpe3doaWxlKGNhbGxiYWNrcy5sZW5ndGg+MCl7dmFyIGNhbGxiYWNrPWNhbGxiYWNrcy5z
aGlmdCgpO2lmKHR5cGVvZiBjYWxsYmFjaz09ImZ1bmN0aW9uIil7Y2FsbGJhY2soTW9kdWxlKTtj
b250aW51ZX12YXIgZnVuYz1jYWxsYmFjay5mdW5jO2lmKHR5cGVvZiBmdW5jPT09Im51bWJlciIp
e2lmKGNhbGxiYWNrLmFyZz09PXVuZGVmaW5lZCl7TW9kdWxlWyJkeW5DYWxsX3YiXShmdW5jKX1l
bHNle01vZHVsZVsiZHluQ2FsbF92aSJdKGZ1bmMsY2FsbGJhY2suYXJnKX19ZWxzZXtmdW5jKGNh
bGxiYWNrLmFyZz09PXVuZGVmaW5lZD9udWxsOmNhbGxiYWNrLmFyZyl9fX12YXIgX19BVFBSRVJV
Tl9fPVtdO3ZhciBfX0FUSU5JVF9fPVtdO3ZhciBfX0FUTUFJTl9fPVtdO3ZhciBfX0FUUE9TVFJV
Tl9fPVtdO3ZhciBydW50aW1lSW5pdGlhbGl6ZWQ9ZmFsc2U7dmFyIHJ1bnRpbWVFeGl0ZWQ9ZmFs
c2U7ZnVuY3Rpb24gcHJlUnVuKCl7aWYoTW9kdWxlWyJwcmVSdW4iXSl7aWYodHlwZW9mIE1vZHVs
ZVsicHJlUnVuIl09PSJmdW5jdGlvbiIpTW9kdWxlWyJwcmVSdW4iXT1bTW9kdWxlWyJwcmVSdW4i
XV07d2hpbGUoTW9kdWxlWyJwcmVSdW4iXS5sZW5ndGgpe2FkZE9uUHJlUnVuKE1vZHVsZVsicHJl
UnVuIl0uc2hpZnQoKSl9fWNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQUkVSVU5fXyl9ZnVuY3Rp
b24gaW5pdFJ1bnRpbWUoKXtydW50aW1lSW5pdGlhbGl6ZWQ9dHJ1ZTtjYWxsUnVudGltZUNhbGxi
YWNrcyhfX0FUSU5JVF9fKX1mdW5jdGlvbiBwcmVNYWluKCl7Y2FsbFJ1bnRpbWVDYWxsYmFja3Mo
X19BVE1BSU5fXyl9ZnVuY3Rpb24gZXhpdFJ1bnRpbWUoKXtydW50aW1lRXhpdGVkPXRydWV9ZnVu
Y3Rpb24gcG9zdFJ1bigpe2lmKE1vZHVsZVsicG9zdFJ1biJdKXtpZih0eXBlb2YgTW9kdWxlWyJw
b3N0UnVuIl09PSJmdW5jdGlvbiIpTW9kdWxlWyJwb3N0UnVuIl09W01vZHVsZVsicG9zdFJ1biJd
XTt3aGlsZShNb2R1bGVbInBvc3RSdW4iXS5sZW5ndGgpe2FkZE9uUG9zdFJ1bihNb2R1bGVbInBv
c3RSdW4iXS5zaGlmdCgpKX19Y2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVFBPU1RSVU5fXyl9ZnVu
Y3Rpb24gYWRkT25QcmVSdW4oY2Ipe19fQVRQUkVSVU5fXy51bnNoaWZ0KGNiKX1mdW5jdGlvbiBh
ZGRPblBvc3RSdW4oY2Ipe19fQVRQT1NUUlVOX18udW5zaGlmdChjYil9dmFyIE1hdGhfYWJzPU1h
dGguYWJzO3ZhciBNYXRoX2NlaWw9TWF0aC5jZWlsO3ZhciBNYXRoX2Zsb29yPU1hdGguZmxvb3I7
dmFyIE1hdGhfbWluPU1hdGgubWluO3ZhciBydW5EZXBlbmRlbmNpZXM9MDt2YXIgcnVuRGVwZW5k
ZW5jeVdhdGNoZXI9bnVsbDt2YXIgZGVwZW5kZW5jaWVzRnVsZmlsbGVkPW51bGw7ZnVuY3Rpb24g
YWRkUnVuRGVwZW5kZW5jeShpZCl7cnVuRGVwZW5kZW5jaWVzKys7aWYoTW9kdWxlWyJtb25pdG9y
UnVuRGVwZW5kZW5jaWVzIl0pe01vZHVsZVsibW9uaXRvclJ1bkRlcGVuZGVuY2llcyJdKHJ1bkRl
cGVuZGVuY2llcyl9fWZ1bmN0aW9uIHJlbW92ZVJ1bkRlcGVuZGVuY3koaWQpe3J1bkRlcGVuZGVu
Y2llcy0tO2lmKE1vZHVsZVsibW9uaXRvclJ1bkRlcGVuZGVuY2llcyJdKXtNb2R1bGVbIm1vbml0
b3JSdW5EZXBlbmRlbmNpZXMiXShydW5EZXBlbmRlbmNpZXMpfWlmKHJ1bkRlcGVuZGVuY2llcz09
MCl7aWYocnVuRGVwZW5kZW5jeVdhdGNoZXIhPT1udWxsKXtjbGVhckludGVydmFsKHJ1bkRlcGVu
ZGVuY3lXYXRjaGVyKTtydW5EZXBlbmRlbmN5V2F0Y2hlcj1udWxsfWlmKGRlcGVuZGVuY2llc0Z1
bGZpbGxlZCl7dmFyIGNhbGxiYWNrPWRlcGVuZGVuY2llc0Z1bGZpbGxlZDtkZXBlbmRlbmNpZXNG
dWxmaWxsZWQ9bnVsbDtjYWxsYmFjaygpfX19TW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXT17fTtN
b2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdPXt9O2Z1bmN0aW9uIGFib3J0KHdoYXQpe2lmKE1vZHVs
ZVsib25BYm9ydCJdKXtNb2R1bGVbIm9uQWJvcnQiXSh3aGF0KX13aGF0Kz0iIjtvdXQod2hhdCk7
ZXJyKHdoYXQpO0FCT1JUPXRydWU7RVhJVFNUQVRVUz0xO3doYXQ9ImFib3J0KCIrd2hhdCsiKS4g
QnVpbGQgd2l0aCAtcyBBU1NFUlRJT05TPTEgZm9yIG1vcmUgaW5mby4iO3Rocm93IG5ldyBXZWJB
c3NlbWJseS5SdW50aW1lRXJyb3Iod2hhdCl9ZnVuY3Rpb24gaGFzUHJlZml4KHN0cixwcmVmaXgp
e3JldHVybiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGg/c3RyLnN0YXJ0c1dpdGgocHJlZml4
KTpzdHIuaW5kZXhPZihwcmVmaXgpPT09MH12YXIgZGF0YVVSSVByZWZpeD0iZGF0YTphcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7ZnVuY3Rpb24gaXNEYXRhVVJJKGZpbGVuYW1lKXty
ZXR1cm4gaGFzUHJlZml4KGZpbGVuYW1lLGRhdGFVUklQcmVmaXgpfXZhciBmaWxlVVJJUHJlZml4
PSJmaWxlOi8vIjtmdW5jdGlvbiBpc0ZpbGVVUkkoZmlsZW5hbWUpe3JldHVybiBoYXNQcmVmaXgo
ZmlsZW5hbWUsZmlsZVVSSVByZWZpeCl9dmFyIHdhc21CaW5hcnlGaWxlPSJpbnRlcnByZXRlci13
YXNtLndhc20iO2lmKCFpc0RhdGFVUkkod2FzbUJpbmFyeUZpbGUpKXt3YXNtQmluYXJ5RmlsZT1s
b2NhdGVGaWxlKHdhc21CaW5hcnlGaWxlKX1mdW5jdGlvbiBnZXRCaW5hcnkoKXt0cnl7aWYod2Fz
bUJpbmFyeSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHdhc21CaW5hcnkpfWlmKHJlYWRCaW5hcnkp
e3JldHVybiByZWFkQmluYXJ5KHdhc21CaW5hcnlGaWxlKX1lbHNle3Rocm93ImJvdGggYXN5bmMg
YW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn19Y2F0Y2goZXJyKXthYm9ydChl
cnIpfX1mdW5jdGlvbiBnZXRCaW5hcnlQcm9taXNlKCl7aWYoIXdhc21CaW5hcnkmJihFTlZJUk9O
TUVOVF9JU19XRUJ8fEVOVklST05NRU5UX0lTX1dPUktFUikmJnR5cGVvZiBmZXRjaD09PSJmdW5j
dGlvbiImJiFpc0ZpbGVVUkkod2FzbUJpbmFyeUZpbGUpKXtyZXR1cm4gZmV0Y2god2FzbUJpbmFy
eUZpbGUse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNl
KXtpZighcmVzcG9uc2VbIm9rIl0pe3Rocm93ImZhaWxlZCB0byBsb2FkIHdhc20gYmluYXJ5IGZp
bGUgYXQgJyIrd2FzbUJpbmFyeUZpbGUrIicifXJldHVybiByZXNwb25zZVsiYXJyYXlCdWZmZXIi
XSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gZ2V0QmluYXJ5KCl9KX1yZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSxyZWplY3Qpe3Jlc29sdmUoZ2V0QmluYXJ5KCkpfSl9ZnVu
Y3Rpb24gY3JlYXRlV2FzbSgpe3ZhciBpbmZvPXsiZW52Ijphc21MaWJyYXJ5QXJnLCJ3YXNpX3Nu
YXBzaG90X3ByZXZpZXcxIjphc21MaWJyYXJ5QXJnfTtmdW5jdGlvbiByZWNlaXZlSW5zdGFuY2Uo
aW5zdGFuY2UsbW9kdWxlKXt2YXIgZXhwb3J0cz1pbnN0YW5jZS5leHBvcnRzO01vZHVsZVsiYXNt
Il09ZXhwb3J0cztyZW1vdmVSdW5EZXBlbmRlbmN5KCJ3YXNtLWluc3RhbnRpYXRlIil9YWRkUnVu
RGVwZW5kZW5jeSgid2FzbS1pbnN0YW50aWF0ZSIpO2Z1bmN0aW9uIHJlY2VpdmVJbnN0YW50aWF0
ZWRTb3VyY2Uob3V0cHV0KXtyZWNlaXZlSW5zdGFuY2Uob3V0cHV0WyJpbnN0YW5jZSJdKX1mdW5j
dGlvbiBpbnN0YW50aWF0ZUFycmF5QnVmZmVyKHJlY2VpdmVyKXtyZXR1cm4gZ2V0QmluYXJ5UHJv
bWlzZSgpLnRoZW4oZnVuY3Rpb24oYmluYXJ5KXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlh
dGUoYmluYXJ5LGluZm8pfSkudGhlbihyZWNlaXZlcixmdW5jdGlvbihyZWFzb24pe2VycigiZmFp
bGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIityZWFzb24pO2Fib3J0KHJlYXNv
bil9KX1mdW5jdGlvbiBpbnN0YW50aWF0ZUFzeW5jKCl7aWYoIXdhc21CaW5hcnkmJnR5cGVvZiBX
ZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZz09PSJmdW5jdGlvbiImJiFpc0RhdGFVUkko
d2FzbUJpbmFyeUZpbGUpJiYhaXNGaWxlVVJJKHdhc21CaW5hcnlGaWxlKSYmdHlwZW9mIGZldGNo
PT09ImZ1bmN0aW9uIil7ZmV0Y2god2FzbUJpbmFyeUZpbGUse2NyZWRlbnRpYWxzOiJzYW1lLW9y
aWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKXt2YXIgcmVzdWx0PVdlYkFzc2VtYmx5Lmlu
c3RhbnRpYXRlU3RyZWFtaW5nKHJlc3BvbnNlLGluZm8pO3JldHVybiByZXN1bHQudGhlbihyZWNl
aXZlSW5zdGFudGlhdGVkU291cmNlLGZ1bmN0aW9uKHJlYXNvbil7ZXJyKCJ3YXNtIHN0cmVhbWlu
ZyBjb21waWxlIGZhaWxlZDogIityZWFzb24pO2VycigiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVm
ZmVyIGluc3RhbnRpYXRpb24iKTtpbnN0YW50aWF0ZUFycmF5QnVmZmVyKHJlY2VpdmVJbnN0YW50
aWF0ZWRTb3VyY2UpfSl9KX1lbHNle3JldHVybiBpbnN0YW50aWF0ZUFycmF5QnVmZmVyKHJlY2Vp
dmVJbnN0YW50aWF0ZWRTb3VyY2UpfX1pZihNb2R1bGVbImluc3RhbnRpYXRlV2FzbSJdKXt0cnl7
dmFyIGV4cG9ydHM9TW9kdWxlWyJpbnN0YW50aWF0ZVdhc20iXShpbmZvLHJlY2VpdmVJbnN0YW5j
ZSk7cmV0dXJuIGV4cG9ydHN9Y2F0Y2goZSl7ZXJyKCJNb2R1bGUuaW5zdGFudGlhdGVXYXNtIGNh
bGxiYWNrIGZhaWxlZCB3aXRoIGVycm9yOiAiK2UpO3JldHVybiBmYWxzZX19aW5zdGFudGlhdGVB
c3luYygpO3JldHVybnt9fXZhciB0ZW1wRG91YmxlO3ZhciB0ZW1wSTY0O19fQVRJTklUX18ucHVz
aCh7ZnVuYzpmdW5jdGlvbigpe19fX3dhc21fY2FsbF9jdG9ycygpfX0pO2Z1bmN0aW9uIGRlbWFu
Z2xlKGZ1bmMpe3JldHVybiBmdW5jfWZ1bmN0aW9uIGRlbWFuZ2xlQWxsKHRleHQpe3ZhciByZWdl
eD0vXGJfWltcd1xkX10rL2c7cmV0dXJuIHRleHQucmVwbGFjZShyZWdleCxmdW5jdGlvbih4KXt2
YXIgeT1kZW1hbmdsZSh4KTtyZXR1cm4geD09PXk/eDp5KyIgWyIreCsiXSJ9KX1mdW5jdGlvbiBq
c1N0YWNrVHJhY2UoKXt2YXIgZXJyPW5ldyBFcnJvcjtpZighZXJyLnN0YWNrKXt0cnl7dGhyb3cg
bmV3IEVycm9yfWNhdGNoKGUpe2Vycj1lfWlmKCFlcnIuc3RhY2spe3JldHVybiIobm8gc3RhY2sg
dHJhY2UgYXZhaWxhYmxlKSJ9fXJldHVybiBlcnIuc3RhY2sudG9TdHJpbmcoKX1mdW5jdGlvbiBf
ZW1zY3JpcHRlbl9nZXRfc2Jya19wdHIoKXtyZXR1cm4gNzQwOH1mdW5jdGlvbiBfZW1zY3JpcHRl
bl9tZW1jcHlfYmlnKGRlc3Qsc3JjLG51bSl7SEVBUFU4LmNvcHlXaXRoaW4oZGVzdCxzcmMsc3Jj
K251bSl9ZnVuY3Rpb24gYWJvcnRPbkNhbm5vdEdyb3dNZW1vcnkocmVxdWVzdGVkU2l6ZSl7YWJv
cnQoIk9PTSIpfWZ1bmN0aW9uIF9lbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwKHJlcXVlc3RlZFNpemUp
e3JlcXVlc3RlZFNpemU9cmVxdWVzdGVkU2l6ZT4+PjA7YWJvcnRPbkNhbm5vdEdyb3dNZW1vcnko
cmVxdWVzdGVkU2l6ZSl9dmFyIFBBVEg9e3NwbGl0UGF0aDpmdW5jdGlvbihmaWxlbmFtZSl7dmFy
IHNwbGl0UGF0aFJlPS9eKFwvP3wpKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFteXC9dKz98KShcLlte
LlwvXSp8KSkoPzpbXC9dKikkLztyZXR1cm4gc3BsaXRQYXRoUmUuZXhlYyhmaWxlbmFtZSkuc2xp
Y2UoMSl9LG5vcm1hbGl6ZUFycmF5OmZ1bmN0aW9uKHBhcnRzLGFsbG93QWJvdmVSb290KXt2YXIg
dXA9MDtmb3IodmFyIGk9cGFydHMubGVuZ3RoLTE7aT49MDtpLS0pe3ZhciBsYXN0PXBhcnRzW2ld
O2lmKGxhc3Q9PT0iLiIpe3BhcnRzLnNwbGljZShpLDEpfWVsc2UgaWYobGFzdD09PSIuLiIpe3Bh
cnRzLnNwbGljZShpLDEpO3VwKyt9ZWxzZSBpZih1cCl7cGFydHMuc3BsaWNlKGksMSk7dXAtLX19
aWYoYWxsb3dBYm92ZVJvb3Qpe2Zvcig7dXA7dXAtLSl7cGFydHMudW5zaGlmdCgiLi4iKX19cmV0
dXJuIHBhcnRzfSxub3JtYWxpemU6ZnVuY3Rpb24ocGF0aCl7dmFyIGlzQWJzb2x1dGU9cGF0aC5j
aGFyQXQoMCk9PT0iLyIsdHJhaWxpbmdTbGFzaD1wYXRoLnN1YnN0cigtMSk9PT0iLyI7cGF0aD1Q
QVRILm5vcm1hbGl6ZUFycmF5KHBhdGguc3BsaXQoIi8iKS5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0
dXJuISFwfSksIWlzQWJzb2x1dGUpLmpvaW4oIi8iKTtpZighcGF0aCYmIWlzQWJzb2x1dGUpe3Bh
dGg9Ii4ifWlmKHBhdGgmJnRyYWlsaW5nU2xhc2gpe3BhdGgrPSIvIn1yZXR1cm4oaXNBYnNvbHV0
ZT8iLyI6IiIpK3BhdGh9LGRpcm5hbWU6ZnVuY3Rpb24ocGF0aCl7dmFyIHJlc3VsdD1QQVRILnNw
bGl0UGF0aChwYXRoKSxyb290PXJlc3VsdFswXSxkaXI9cmVzdWx0WzFdO2lmKCFyb290JiYhZGly
KXtyZXR1cm4iLiJ9aWYoZGlyKXtkaXI9ZGlyLnN1YnN0cigwLGRpci5sZW5ndGgtMSl9cmV0dXJu
IHJvb3QrZGlyfSxiYXNlbmFtZTpmdW5jdGlvbihwYXRoKXtpZihwYXRoPT09Ii8iKXJldHVybiIv
Ijt2YXIgbGFzdFNsYXNoPXBhdGgubGFzdEluZGV4T2YoIi8iKTtpZihsYXN0U2xhc2g9PT0tMSly
ZXR1cm4gcGF0aDtyZXR1cm4gcGF0aC5zdWJzdHIobGFzdFNsYXNoKzEpfSxleHRuYW1lOmZ1bmN0
aW9uKHBhdGgpe3JldHVybiBQQVRILnNwbGl0UGF0aChwYXRoKVszXX0sam9pbjpmdW5jdGlvbigp
e3ZhciBwYXRocz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7cmV0dXJu
IFBBVEgubm9ybWFsaXplKHBhdGhzLmpvaW4oIi8iKSl9LGpvaW4yOmZ1bmN0aW9uKGwscil7cmV0
dXJuIFBBVEgubm9ybWFsaXplKGwrIi8iK3IpfX07dmFyIFNZU0NBTExTPXttYXBwaW5nczp7fSxi
dWZmZXJzOltudWxsLFtdLFtdXSxwcmludENoYXI6ZnVuY3Rpb24oc3RyZWFtLGN1cnIpe3ZhciBi
dWZmZXI9U1lTQ0FMTFMuYnVmZmVyc1tzdHJlYW1dO2lmKGN1cnI9PT0wfHxjdXJyPT09MTApeyhz
dHJlYW09PT0xP291dDplcnIpKFVURjhBcnJheVRvU3RyaW5nKGJ1ZmZlciwwKSk7YnVmZmVyLmxl
bmd0aD0wfWVsc2V7YnVmZmVyLnB1c2goY3Vycil9fSx2YXJhcmdzOnVuZGVmaW5lZCxnZXQ6ZnVu
Y3Rpb24oKXtTWVNDQUxMUy52YXJhcmdzKz00O3ZhciByZXQ9SEVBUDMyW1NZU0NBTExTLnZhcmFy
Z3MtND4+Ml07cmV0dXJuIHJldH0sZ2V0U3RyOmZ1bmN0aW9uKHB0cil7dmFyIHJldD1VVEY4VG9T
dHJpbmcocHRyKTtyZXR1cm4gcmV0fSxnZXQ2NDpmdW5jdGlvbihsb3csaGlnaCl7cmV0dXJuIGxv
d319O2Z1bmN0aW9uIF9mZF93cml0ZShmZCxpb3YsaW92Y250LHBudW0pe3ZhciBudW09MDtmb3Io
dmFyIGk9MDtpPGlvdmNudDtpKyspe3ZhciBwdHI9SEVBUDMyW2lvditpKjg+PjJdO3ZhciBsZW49
SEVBUDMyW2lvdisoaSo4KzQpPj4yXTtmb3IodmFyIGo9MDtqPGxlbjtqKyspe1NZU0NBTExTLnBy
aW50Q2hhcihmZCxIRUFQVThbcHRyK2pdKX1udW0rPWxlbn1IRUFQMzJbcG51bT4+Ml09bnVtO3Jl
dHVybiAwfWZ1bmN0aW9uIF9zZXRUZW1wUmV0MCgkaSl7c2V0VGVtcFJldDAoJGl8MCl9dmFyIEFT
U0VSVElPTlM9ZmFsc2U7dmFyIGFzbUxpYnJhcnlBcmc9eyJlbXNjcmlwdGVuX2dldF9zYnJrX3B0
ciI6X2Vtc2NyaXB0ZW5fZ2V0X3NicmtfcHRyLCJlbXNjcmlwdGVuX21lbWNweV9iaWciOl9lbXNj
cmlwdGVuX21lbWNweV9iaWcsImVtc2NyaXB0ZW5fcmVzaXplX2hlYXAiOl9lbXNjcmlwdGVuX3Jl
c2l6ZV9oZWFwLCJmZF93cml0ZSI6X2ZkX3dyaXRlLCJtZW1vcnkiOndhc21NZW1vcnksInNldFRl
bXBSZXQwIjpfc2V0VGVtcFJldDAsInRhYmxlIjp3YXNtVGFibGV9O3ZhciBhc209Y3JlYXRlV2Fz
bSgpO01vZHVsZVsiYXNtIl09YXNtO3ZhciBfX193YXNtX2NhbGxfY3RvcnM9TW9kdWxlWyJfX193
YXNtX2NhbGxfY3RvcnMiXT1mdW5jdGlvbigpe3JldHVybihfX193YXNtX2NhbGxfY3RvcnM9TW9k
dWxlWyJfX193YXNtX2NhbGxfY3RvcnMiXT1Nb2R1bGVbImFzbSJdWyJfX3dhc21fY2FsbF9jdG9y
cyJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBfbWFpbj1Nb2R1bGVbIl9tYWluIl09ZnVu
Y3Rpb24oKXtyZXR1cm4oX21haW49TW9kdWxlWyJfbWFpbiJdPU1vZHVsZVsiYXNtIl1bIm1haW4i
XSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgX21hbGxvYz1Nb2R1bGVbIl9tYWxsb2MiXT1m
dW5jdGlvbigpe3JldHVybihfbWFsbG9jPU1vZHVsZVsiX21hbGxvYyJdPU1vZHVsZVsiYXNtIl1b
Im1hbGxvYyJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBfX19lcnJub19sb2NhdGlvbj1N
b2R1bGVbIl9fX2Vycm5vX2xvY2F0aW9uIl09ZnVuY3Rpb24oKXtyZXR1cm4oX19fZXJybm9fbG9j
YXRpb249TW9kdWxlWyJfX19lcnJub19sb2NhdGlvbiJdPU1vZHVsZVsiYXNtIl1bIl9fZXJybm9f
bG9jYXRpb24iXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgX2ZyZWU9TW9kdWxlWyJfZnJl
ZSJdPWZ1bmN0aW9uKCl7cmV0dXJuKF9mcmVlPU1vZHVsZVsiX2ZyZWUiXT1Nb2R1bGVbImFzbSJd
WyJmcmVlIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIHN0YWNrU2F2ZT1Nb2R1bGVbInN0
YWNrU2F2ZSJdPWZ1bmN0aW9uKCl7cmV0dXJuKHN0YWNrU2F2ZT1Nb2R1bGVbInN0YWNrU2F2ZSJd
PU1vZHVsZVsiYXNtIl1bInN0YWNrU2F2ZSJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBz
dGFja0FsbG9jPU1vZHVsZVsic3RhY2tBbGxvYyJdPWZ1bmN0aW9uKCl7cmV0dXJuKHN0YWNrQWxs
b2M9TW9kdWxlWyJzdGFja0FsbG9jIl09TW9kdWxlWyJhc20iXVsic3RhY2tBbGxvYyJdKS5hcHBs
eShudWxsLGFyZ3VtZW50cyl9O3ZhciBzdGFja1Jlc3RvcmU9TW9kdWxlWyJzdGFja1Jlc3RvcmUi
XT1mdW5jdGlvbigpe3JldHVybihzdGFja1Jlc3RvcmU9TW9kdWxlWyJzdGFja1Jlc3RvcmUiXT1N
b2R1bGVbImFzbSJdWyJzdGFja1Jlc3RvcmUiXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIg
X19ncm93V2FzbU1lbW9yeT1Nb2R1bGVbIl9fZ3Jvd1dhc21NZW1vcnkiXT1mdW5jdGlvbigpe3Jl
dHVybihfX2dyb3dXYXNtTWVtb3J5PU1vZHVsZVsiX19ncm93V2FzbU1lbW9yeSJdPU1vZHVsZVsi
YXNtIl1bIl9fZ3Jvd1dhc21NZW1vcnkiXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgZHlu
Q2FsbF9paT1Nb2R1bGVbImR5bkNhbGxfaWkiXT1mdW5jdGlvbigpe3JldHVybihkeW5DYWxsX2lp
PU1vZHVsZVsiZHluQ2FsbF9paSJdPU1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWkiXSkuYXBwbHko
bnVsbCxhcmd1bWVudHMpfTt2YXIgZHluQ2FsbF9paWlpPU1vZHVsZVsiZHluQ2FsbF9paWlpIl09
ZnVuY3Rpb24oKXtyZXR1cm4oZHluQ2FsbF9paWlpPU1vZHVsZVsiZHluQ2FsbF9paWlpIl09TW9k
dWxlWyJhc20iXVsiZHluQ2FsbF9paWlpIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIGR5
bkNhbGxfamlqaT1Nb2R1bGVbImR5bkNhbGxfamlqaSJdPWZ1bmN0aW9uKCl7cmV0dXJuKGR5bkNh
bGxfamlqaT1Nb2R1bGVbImR5bkNhbGxfamlqaSJdPU1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamlq
aSJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O01vZHVsZVsiYXNtIl09YXNtO3ZhciBjYWxsZWRS
dW47ZnVuY3Rpb24gRXhpdFN0YXR1cyhzdGF0dXMpe3RoaXMubmFtZT0iRXhpdFN0YXR1cyI7dGhp
cy5tZXNzYWdlPSJQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCIrc3RhdHVzKyIpIjt0aGlz
LnN0YXR1cz1zdGF0dXN9dmFyIGNhbGxlZE1haW49ZmFsc2U7ZGVwZW5kZW5jaWVzRnVsZmlsbGVk
PWZ1bmN0aW9uIHJ1bkNhbGxlcigpe2lmKCFjYWxsZWRSdW4pcnVuKCk7aWYoIWNhbGxlZFJ1bilk
ZXBlbmRlbmNpZXNGdWxmaWxsZWQ9cnVuQ2FsbGVyfTtmdW5jdGlvbiBjYWxsTWFpbihhcmdzKXt2
YXIgZW50cnlGdW5jdGlvbj1Nb2R1bGVbIl9tYWluIl07YXJncz1hcmdzfHxbXTt2YXIgYXJnYz1h
cmdzLmxlbmd0aCsxO3ZhciBhcmd2PXN0YWNrQWxsb2MoKGFyZ2MrMSkqNCk7SEVBUDMyW2FyZ3Y+
PjJdPWFsbG9jYXRlVVRGOE9uU3RhY2sodGhpc1Byb2dyYW0pO2Zvcih2YXIgaT0xO2k8YXJnYztp
Kyspe0hFQVAzMlsoYXJndj4+MikraV09YWxsb2NhdGVVVEY4T25TdGFjayhhcmdzW2ktMV0pfUhF
QVAzMlsoYXJndj4+MikrYXJnY109MDt0cnl7dmFyIHJldD1lbnRyeUZ1bmN0aW9uKGFyZ2MsYXJn
dik7ZXhpdChyZXQsdHJ1ZSl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIEV4aXRTdGF0dXMpe3Jl
dHVybn1lbHNlIGlmKGU9PSJ1bndpbmQiKXtub0V4aXRSdW50aW1lPXRydWU7cmV0dXJufWVsc2V7
dmFyIHRvTG9nPWU7aWYoZSYmdHlwZW9mIGU9PT0ib2JqZWN0IiYmZS5zdGFjayl7dG9Mb2c9W2Us
ZS5zdGFja119ZXJyKCJleGNlcHRpb24gdGhyb3duOiAiK3RvTG9nKTtxdWl0XygxLGUpfX1maW5h
bGx5e2NhbGxlZE1haW49dHJ1ZX19ZnVuY3Rpb24gcnVuKGFyZ3Mpe2FyZ3M9YXJnc3x8YXJndW1l
bnRzXztpZihydW5EZXBlbmRlbmNpZXM+MCl7cmV0dXJufXByZVJ1bigpO2lmKHJ1bkRlcGVuZGVu
Y2llcz4wKXJldHVybjtmdW5jdGlvbiBkb1J1bigpe2lmKGNhbGxlZFJ1bilyZXR1cm47Y2FsbGVk
UnVuPXRydWU7TW9kdWxlWyJjYWxsZWRSdW4iXT10cnVlO2lmKEFCT1JUKXJldHVybjtpbml0UnVu
dGltZSgpO3ByZU1haW4oKTtpZihNb2R1bGVbIm9uUnVudGltZUluaXRpYWxpemVkIl0pTW9kdWxl
WyJvblJ1bnRpbWVJbml0aWFsaXplZCJdKCk7aWYoc2hvdWxkUnVuTm93KWNhbGxNYWluKGFyZ3Mp
O3Bvc3RSdW4oKX1pZihNb2R1bGVbInNldFN0YXR1cyJdKXtNb2R1bGVbInNldFN0YXR1cyJdKCJS
dW5uaW5nLi4uIik7c2V0VGltZW91dChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtN
b2R1bGVbInNldFN0YXR1cyJdKCIiKX0sMSk7ZG9SdW4oKX0sMSl9ZWxzZXtkb1J1bigpfX1Nb2R1
bGVbInJ1biJdPXJ1bjtmdW5jdGlvbiBleGl0KHN0YXR1cyxpbXBsaWNpdCl7aWYoaW1wbGljaXQm
Jm5vRXhpdFJ1bnRpbWUmJnN0YXR1cz09PTApe3JldHVybn1pZihub0V4aXRSdW50aW1lKXt9ZWxz
ZXtBQk9SVD10cnVlO0VYSVRTVEFUVVM9c3RhdHVzO2V4aXRSdW50aW1lKCk7aWYoTW9kdWxlWyJv
bkV4aXQiXSlNb2R1bGVbIm9uRXhpdCJdKHN0YXR1cyl9cXVpdF8oc3RhdHVzLG5ldyBFeGl0U3Rh
dHVzKHN0YXR1cykpfWlmKE1vZHVsZVsicHJlSW5pdCJdKXtpZih0eXBlb2YgTW9kdWxlWyJwcmVJ
bml0Il09PSJmdW5jdGlvbiIpTW9kdWxlWyJwcmVJbml0Il09W01vZHVsZVsicHJlSW5pdCJdXTt3
aGlsZShNb2R1bGVbInByZUluaXQiXS5sZW5ndGg+MCl7TW9kdWxlWyJwcmVJbml0Il0ucG9wKCko
KX19dmFyIHNob3VsZFJ1bk5vdz10cnVlO2lmKE1vZHVsZVsibm9Jbml0aWFsUnVuIl0pc2hvdWxk
UnVuTm93PWZhbHNlO25vRXhpdFJ1bnRpbWU9dHJ1ZTtydW4oKTsKSW5kZXg6IEpTVGVzdHMvbWlj
cm9iZW5jaG1hcmtzL21lbWNweS13YXNtLWxhcmdlLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL21lbWNweS13YXNtLWxhcmdlLmpzCShyZXZpc2lvbiAyNzkwMDkpCisr
KyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS1sYXJnZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMSw0ICsxLDUgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2gg
U2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKKy8vQCByZXF1aXJl
T3B0aW9ucygiLS11c2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1eno9ZmFsc2UiKQogLy8gU291cmNl
IGluIHdhc20vc3RyZXNzL21lbWNweS13YXNtCiBpZiAodHlwZW9mIFdlYkFzc2VtYmx5ID09PSAi
b2JqZWN0IikgewogCkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS1t
ZWRpdW0uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvbWVtY3B5LXdh
c20tbWVkaXVtLmpzCShyZXZpc2lvbiAyNzkwMDkpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJr
cy9tZW1jcHktd2FzbS1tZWRpdW0uanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw1IEBACiAv
L0Agc2tpcCBpZiAkbW9kZWwgPT0gIkFwcGxlIFdhdGNoIFNlcmllcyAzIiAjIGFkZGVkIGJ5IG1h
cmstanNjLXN0cmVzcy10ZXN0LnB5CisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRXhlY3V0YWJs
ZUFsbG9jYXRpb25GdXp6PWZhbHNlIikKIC8vIFNvdXJjZSBpbiB3YXNtL3N0cmVzcy9tZW1jcHkt
d2FzbQogCiBpZiAodHlwZW9mIFdlYkFzc2VtYmx5ID09PSAib2JqZWN0IikgewpJbmRleDogSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvbWVtY3B5LXdhc20tc21hbGwuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy9taWNyb2JlbmNobWFya3MvbWVtY3B5LXdhc20tc21hbGwuanMJKHJldmlzaW9uIDI3
OTAwOSkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL21lbWNweS13YXNtLXNtYWxsLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNSBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBs
ZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQorLy9A
IHJlcXVpcmVPcHRpb25zKCItLXVzZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ej1mYWxzZSIpCiAv
LyBTb3VyY2UgaW4gd2FzbS9zdHJlc3MvbWVtY3B5LXdhc20KIGlmICh0eXBlb2YgV2ViQXNzZW1i
bHkgPT09ICJvYmplY3QiKSB7CiAKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL21lbWNw
eS13YXNtLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL21lbWNweS13
YXNtLmpzCShyZXZpc2lvbiAyNzkwMDkpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9tZW1j
cHktd2FzbS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDUgQEAKIC8vQCBza2lwIGlmICRt
b2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNz
LXRlc3QucHkKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1
eno9ZmFsc2UiKQogLy8gU291cmNlIGluIHdhc20vc3RyZXNzL21lbWNweS13YXNtCiBpZiAodHlw
ZW9mIFdlYkFzc2VtYmx5ID09PSAib2JqZWN0IikgewogCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy93
YXNtLWVycm9yLW1lc3NhZ2UtY3Jvc3MtdGhyZWFkcy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3Rz
L3N0cmVzcy93YXNtLWVycm9yLW1lc3NhZ2UtY3Jvc3MtdGhyZWFkcy5qcwkocmV2aXNpb24gMjc5
MDA5KQorKysgSlNUZXN0cy9zdHJlc3Mvd2FzbS1lcnJvci1tZXNzYWdlLWNyb3NzLXRocmVhZHMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1IEBACisvL0AgcmVxdWlyZU9wdGlvbnMoIi0t
dXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6PWZhbHNlIikKKwogaWYgKCR2bS5pc1dhc21TdXBw
b3J0ZWQoKSkgewogICAgIHZhciBjb3VudGVyID0gMDsKICAgICBvYmoxID0ge1tTeW1ib2wuYXN5
bmNJdGVyYXRvcl06Wy00LjAsMHgxZTNdLFtTeW1ib2wuc2VhcmNoXTpbLTUuMCw0Mjk0OTY3Mjk3
LC01LjBdLCJjb25zdHJ1Y3QiOlVpbnQ4Q2xhbXBlZEFycmF5Ll9fcHJvdG9fXyxbU3ltYm9sLnJl
cGxhY2VdOldlYWtTZXQsW1N5bWJvbC5zcGVjaWVzXTooKT0+bnVsbCw5MDA3MTk5MjU0NzQwOTky
OlswLDY0LCJsZW5ndGgiLCwiZGVsZXRlUHJvcGVydHkiLDIxNDc0ODM2NDgsLCJzeW1ib2wiLDQy
OTQ5NjcyOTcsImdldCIsMTI4LFN5bWJvbC50b1ByaW1pdGl2ZV0sIlEiOjZ9OwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDI3OTAwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDg5LDkgKzM0ODksOCBAQCBpbnQgcnVuSlND
KGNvbnN0IENvbW1hbmRMaW5lJiBvcHRpb25zLCBiCiAgICAgICAgIEpTTG9ja0hvbGRlciBsb2Nr
ZXIodm0pOwogICAgICAgICBpZiAoT3B0aW9uczo6dXNlRXhjZXB0aW9uRnV6eigpKQogICAgICAg
ICAgICAgcHJpbnRmKCJKU0MgRVhDRVBUSU9OIEZVWlo6IGVuY291bnRlcmVkICV1IGNoZWNrcy5c
biIsIG51bWJlck9mRXhjZXB0aW9uRnV6ekNoZWNrcygpKTsKLSAgICAgICAgYm9vbCBmaXJlQXRF
bmFibGVkID0KLSAgICAgICAgT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ekF0
KCkgfHwgT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ekF0T3JBZnRlcigpOwot
ICAgICAgICBpZiAoT3B0aW9uczo6dXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6KCkgJiYgKCFm
aXJlQXRFbmFibGVkIHx8IE9wdGlvbnM6OnZlcmJvc2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enoo
KSkpCisgICAgICAgIGJvb2wgZmlyZUF0RW5hYmxlZCA9IE9wdGlvbnM6OmZpcmVFeGVjdXRhYmxl
QWxsb2NhdGlvbkZ1enpBdCgpIHx8IE9wdGlvbnM6OmZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1
enpBdE9yQWZ0ZXIoKTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VFeGVjdXRhYmxlQWxs
b2NhdGlvbkZ1enooKSAmJiBPcHRpb25zOjp1c2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enooKSAm
JiAhZmlyZUF0RW5hYmxlZCkKICAgICAgICAgICAgIHByaW50ZigiSlNDIEVYRUNVVEFCTEUgQUxM
T0NBVElPTiBGVVpaOiBlbmNvdW50ZXJlZCAldSBjaGVja3MuXG4iLCBudW1iZXJPZkV4ZWN1dGFi
bGVBbGxvY2F0aW9uRnV6ekNoZWNrcygpKTsKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZU9TUkV4
aXRGdXp6KCkgJiYgT3B0aW9uczo6dmVyYm9zZU9TUkV4aXRGdXp6KCkpIHsKICAgICAgICAgICAg
IHByaW50ZigiSlNDIE9TUiBFWElUIEZVWlo6IGVuY291bnRlcmVkICV1IHN0YXRpYyBjaGVja3Mu
XG4iLCBudW1iZXJPZlN0YXRpY09TUkV4aXRGdXp6Q2hlY2tzKCkpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdMSUNNUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTElDTVBoYXNlLmNwcAkocmV2aXNpb24gMjc5MDA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMSUNNUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMTgsOSArMjE4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHN0YWNrSW5kZXggPSBsb29wU3RhY2suc2l6
ZSgpOyBzdGFja0luZGV4LS07KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWShP
cHRpb25zOjp1c2VMSUNNRnV6emluZygpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3RleHByIGRvdWJsZSByYW5nZSA9IHN0YXRpY19jYXN0PGRvdWJsZT4oc3RkOjpudW1lcmljX2xp
bWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90
IGZsb29yID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KCgxLjAgLSBPcHRpb25zOjphbGxvd0hvaXN0
aW5nTElDTVByb2JhYmlsaXR5KCkpICogcmFuZ2UpOwotICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBzaG91bGRBdHRlbXB0SG9pc3QgPSByYW5kb20uZ2V0VWludDMyKCkgPj0gZmxvb3I7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZEF0dGVtcHRIb2lzdCA9IHJhbmRvbS5y
ZXR1cm5UcnVlV2l0aFByb2JhYmlsaXR5KE9wdGlvbnM6OmFsbG93SG9pc3RpbmdMSUNNUHJvYmFi
aWxpdHkoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZEF0dGVtcHRIb2lz
dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAg
ICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dGlvbkZ1enouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhl
Y3V0YWJsZUFsbG9jYXRpb25GdXp6LmNwcAkocmV2aXNpb24gMjc5MDA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw2ICs0MSwyMiBAQCB1bnNpZ25lZCBudW1iZXJPZkV4ZWN1dGFibGVBbGxvY2F0
aW9uRnV6CiBFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpSZXN1bHQgZG9FeGVjdXRhYmxlQWxsb2Nh
dGlvbkZ1enppbmcoKQogewogICAgIEFTU0VSVChPcHRpb25zOjp1c2VFeGVjdXRhYmxlQWxsb2Nh
dGlvbkZ1enooKSk7CisKKyAgICBpZiAoT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVBbGxvY2F0aW9u
RnV6elJhbmRvbWx5KCkpIHsKKyAgICAgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxXZWFr
UmFuZG9tPiByYW5kb207CisgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAg
ICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSAoKSB7CisgICAgICAgICAgICByYW5kb20uY29u
c3RydWN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIHN0YXRpYyBMb2NrIGZ1enppbmdMb2Nr
OworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgZnV6emluZ0xvY2sgfTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChyYW5kb20tPnJldHVyblRydWVXaXRoUHJvYmFiaWxpdHkoT3B0aW9uczo6ZmlyZUV4
ZWN1dGFibGVBbGxvY2F0aW9uRnV6elJhbmRvbWx5UHJvYmFiaWxpdHkoKSkpCisgICAgICAgICAg
ICByZXR1cm4gUHJldGVuZFRvRmFpbEV4ZWN1dGFibGVBbGxvY2F0aW9uOworCisgICAgICAgIHJl
dHVybiBBbGxvd05vcm1hbEV4ZWN1dGFibGVBbGxvY2F0aW9uOworICAgIH0KICAgICAKICAgICB1
bnNpZ25lZCBvbGRWYWx1ZTsKICAgICB1bnNpZ25lZCBuZXdWYWx1ZTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjc5
MDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzc4LDcgKzM3OCw3IEBAIGlubGluZSBib29sIGppdENvbXBpbGVB
bmRTZXRIZXVyaXN0aWNzKFYKICAgICAKICAgICBKSVRXb3JrbGlzdDo6U3RhdGUgd29ya2xpc3RT
dGF0ZSA9IEpJVFdvcmtsaXN0OjplbnN1cmVHbG9iYWxXb3JrbGlzdCgpLmNvbXBsZXRlQWxsUmVh
ZHlQbGFuc0ZvclZNKHZtLCBKSVRDb21waWxhdGlvbktleShjb2RlQmxvY2ssIEpJVENvbXBpbGF0
aW9uTW9kZTo6QmFzZWxpbmUpKTsKIAotICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBK
SVRUeXBlOjpCYXNlbGluZUpJVCB8fCB3b3JrbGlzdFN0YXRlID09IEpJVFdvcmtsaXN0OjpDb21w
aWxlZCkgeworICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGlu
ZUpJVCkgewogICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICIgICAg
Q29kZSB3YXMgYWxyZWFkeSBjb21waWxlZC4iKTsKICAgICAgICAgY29kZUJsb2NrLT5qaXRTb29u
KCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDgzLDcgKzQ4Myw3IEBAIExMSU5UX1NMT1df
UEFUSF9ERUNMKGxvb3Bfb3NyKQogICAgIAogICAgIENPREVCTE9DS19MT0dfRVZFTlQoY29kZUJs
b2NrLCAib3NyRW50cnkiLCAoImF0ICIsIGxvb3BPU1JFbnRyeUJ5dGVjb2RlSW5kZXgpKTsKIAot
ICAgIEFTU0VSVChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCk7
CisgICAgUkVMRUFTRV9BU1NFUlQoY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6QmFz
ZWxpbmVKSVQpOwogCiAgICAgY29uc3QgSklUQ29kZU1hcCYgY29kZU1hcCA9IGNvZGVCbG9jay0+
aml0Q29kZU1hcCgpOwogICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+IGNvZGVM
b2NhdGlvbiA9IGNvZGVNYXAuZmluZChsb29wT1NSRW50cnlCeXRlY29kZUluZGV4KTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAkocmV2aXNpb24g
Mjc5MDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAko
d29ya2luZyBjb3B5KQpAQCAtMzkzLDYgKzM5Myw4IEBAIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wg
Y2FuVXNlSklUQ2FnZSgpOwogICAgIHYoQm9vbCwgdXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6
LCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihVbnNpZ25lZCwgZmlyZUV4ZWN1dGFi
bGVBbGxvY2F0aW9uRnV6ekF0LCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KFVuc2lnbmVk
LCBmaXJlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6QXRPckFmdGVyLCAwLCBOb3JtYWwsIG51bGxw
dHIpIFwKKyAgICB2KEJvb2wsIGZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpSYW5kb21seSwg
ZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAorICAgIHYoRG91YmxlLCBmaXJlRXhlY3V0YWJsZUFs
bG9jYXRpb25GdXp6UmFuZG9tbHlQcm9iYWJpbGl0eSwgMC4xLCBOb3JtYWwsIG51bGxwdHIpIFwK
ICAgICB2KEJvb2wsIHZlcmJvc2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enosIGZhbHNlLCBOb3Jt
YWwsIG51bGxwdHIpIFwKICAgICBcCiAgICAgdihCb29sLCB1c2VPU1JFeGl0RnV6eiwgZmFsc2Us
IE5vcm1hbCwgbnVsbHB0cikgXApJbmRleDogU291cmNlL1dURi93dGYvV2Vha1JhbmRvbS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1dlYWtSYW5kb20uaAkocmV2aXNpb24gMjc5MDA5
KQorKysgU291cmNlL1dURi93dGYvV2Vha1JhbmRvbS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2
ICs4NSwxOSBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBib29sIHJldHVyblRy
dWVXaXRoUHJvYmFiaWxpdHkoZG91YmxlIHByb2JhYmlsaXR5KQorICAgIHsKKyAgICAgICAgQVNT
RVJUKDAuMCA8PSBwcm9iYWJpbGl0eSAmJiBwcm9iYWJpbGl0eSA8PSAxLjApOworCisgICAgICAg
IGlmICghcHJvYmFiaWxpdHkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
ZG91YmxlIHZhbHVlID0gZ2V0VWludDMyKCk7CisgICAgICAgIGlmICh2YWx1ZSA8PSBzdGF0aWNf
Y2FzdDxkb3VibGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgKiBwcm9i
YWJpbGl0eSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCiAgICAgc3RhdGljIHVuc2lnbmVkIGxvd09mZnNldCgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihXZWFrUmFuZG9tLCBtX2xvdyk7IH0KICAgICBzdGF0aWMgdW5zaWduZWQgaGln
aE9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihXZWFrUmFuZG9tLCBtX2hpZ2gpOyB9
CiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwkocmV2aXNpb24gMjc5MDA5KQor
KysgVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwkod29ya2luZyBjb3B5KQpAQCAt
NTU2LDYgKzU1Niw3IEBAIEIzTzFfT1BUSU9OUyA9IFsiLS1kZWZhdWx0QjNPcHRMZXZlbD0xIl0K
IEIzTzBfT1BUSU9OUyA9IFsiLS1tYXhERkdOb2Rlc0luQmFzaWNCbG9ja0ZvclByZWNpc2VBbmFs
eXNpcz0xMDAiLCAiLS1kZWZhdWx0QjNPcHRMZXZlbD0wIl0KIEZUTF9PUFRJT05TID0gWyItLXVz
ZUZUTEpJVD10cnVlIl0KIEZPUkNFX0xMSU5UX0VYSVRfT1BUSU9OUyA9IFsiLS1mb3JjZU9TUkV4
aXRUb0xMSW50PXRydWUiXQorRVhFQ1VUQUJMRV9GVVpaRVJfT1BUSU9OUyA9IFsiLS11c2VFeGVj
dXRhYmxlQWxsb2NhdGlvbkZ1eno9dHJ1ZSIsICItLWZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1
enpSYW5kb21seT10cnVlIl0KIAogcmVxdWlyZV9yZWxhdGl2ZSAid2Via2l0cnVieS9qc2Mtc3Ry
ZXNzLXRlc3Qtd3JpdGVyLSN7JHRlc3RXcml0ZXJ9IgogCkBAIC04MjgsNyArODI5LDcgQEAgZGVm
IHJ1bkZUTEVhZ2VyV2F0Y2hkb2coKm9wdGlvbmFsVGVzdFNwZQogZW5kCiAKIGRlZiBydW5GVExF
YWdlck5vQ0pJVFZhbGlkYXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCi0gICAgcnVu
KCJmdGwtZWFnZXItbm8tY2ppdCIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICItLXZhbGlkYXRl
QkNFPXRydWUiLCAiLS1haXJGb3JjZUlSQ0FsbG9jYXRvcj10cnVlIiwgKihGVExfT1BUSU9OUyAr
IE5PX0NKSVRfT1BUSU9OUyArIEVBR0VSX09QVElPTlMgKyBDT0xMRUNUX0NPTlRJTlVPVVNMWV9P
UFRJT05TICsgRk9SQ0VfTExJTlRfRVhJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkKKyAgICBydW4oImZ0bC1lYWdlci1uby1jaml0IiwgIi0tdmFsaWRhdGVHcmFwaD10
cnVlIiwgIi0tdmFsaWRhdGVCQ0U9dHJ1ZSIsICItLWFpckZvcmNlSVJDQWxsb2NhdG9yPXRydWUi
LCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TICsgRUFHRVJfT1BUSU9OUyArIENPTExF
Q1RfQ09OVElOVU9VU0xZX09QVElPTlMgKyBGT1JDRV9MTElOVF9FWElUX09QVElPTlMgKyBFWEVD
VVRBQkxFX0ZVWlpFUl9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKIGVu
ZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRCM08xKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlv
bnMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431926</attachid>
            <date>2021-06-21 16:24:22 -0700</date>
            <delta_ts>2021-06-21 16:50:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>37366</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzkwMDkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTA2LTIxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIGppdENvbXBpbGVBbmRTZXRIZXVyaXN0aWNzIHNob3VsZG4ndCByZXR1
cm4gdHJ1ZSB3aGVuIHdlIGZhaWwgdG8gY29tcGlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvaW50ZXJwcmV0ZXItd2Fz
bS5qczoKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvbWVtY3B5LXdhc20tbGFyZ2UuanM6Cisg
ICAgICAgICogbWljcm9iZW5jaG1hcmtzL21lbWNweS13YXNtLW1lZGl1bS5qczoKKyAgICAgICAg
KiBtaWNyb2JlbmNobWFya3MvbWVtY3B5LXdhc20tc21hbGwuanM6CisgICAgICAgICogbWljcm9i
ZW5jaG1hcmtzL21lbWNweS13YXNtLmpzOgorICAgICAgICAqIHN0cmVzcy93YXNtLWVycm9yLW1l
c3NhZ2UtY3Jvc3MtdGhyZWFkcy5qczoKKwogMjAyMS0wNi0xNiAgVGFkZXUgWmFnYWxsbyAgPHR6
YWdhbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBBc3NlbWJseUhlbHBlcnMgc2hvdWxkIHNhdmUv
cmVzdG9yZSBjYWxsZWUgc2F2ZSBGUFJzCkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9p
bnRlcnByZXRlci13YXNtLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtz
L2ludGVycHJldGVyLXdhc20uanMJKHJldmlzaW9uIDI3OTAwOSkKKysrIEpTVGVzdHMvbWljcm9i
ZW5jaG1hcmtzL2ludGVycHJldGVyLXdhc20uanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwz
IEBACiAvL0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iIG9yICRhcmNoaXRlY3R1cmUg
PT0gIm1pcHMiIG9yICRtb2RlbCA9fiAvQXBwbGUgV2F0Y2gvCisvL0AgcmVxdWlyZU9wdGlvbnMo
Ii0tdXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6PWZhbHNlIikKIHZhciBNb2R1bGU9dHlwZW9m
IE1vZHVsZSE9PSJ1bmRlZmluZWQiP01vZHVsZTp7fTt2YXIgbW9kdWxlT3ZlcnJpZGVzPXt9O3Zh
ciBrZXk7Zm9yKGtleSBpbiBNb2R1bGUpe2lmKE1vZHVsZS5oYXNPd25Qcm9wZXJ0eShrZXkpKXtt
b2R1bGVPdmVycmlkZXNba2V5XT1Nb2R1bGVba2V5XX19dmFyIGFyZ3VtZW50c189W107dmFyIHRo
aXNQcm9ncmFtPSIuL3RoaXMucHJvZ3JhbSI7dmFyIHF1aXRfPWZ1bmN0aW9uKHN0YXR1cyx0b1Ro
cm93KXt0aHJvdyB0b1Rocm93fTt2YXIgRU5WSVJPTk1FTlRfSVNfV0VCPWZhbHNlO3ZhciBFTlZJ
Uk9OTUVOVF9JU19XT1JLRVI9ZmFsc2U7dmFyIEVOVklST05NRU5UX0lTX05PREU9ZmFsc2U7dmFy
IEVOVklST05NRU5UX0lTX1NIRUxMPWZhbHNlO0VOVklST05NRU5UX0lTX1dFQj10eXBlb2Ygd2lu
ZG93PT09Im9iamVjdCI7RU5WSVJPTk1FTlRfSVNfV09SS0VSPXR5cGVvZiBpbXBvcnRTY3JpcHRz
PT09ImZ1bmN0aW9uIjtFTlZJUk9OTUVOVF9JU19OT0RFPXR5cGVvZiBwcm9jZXNzPT09Im9iamVj
dCImJnR5cGVvZiBwcm9jZXNzLnZlcnNpb25zPT09Im9iamVjdCImJnR5cGVvZiBwcm9jZXNzLnZl
cnNpb25zLm5vZGU9PT0ic3RyaW5nIjtFTlZJUk9OTUVOVF9JU19TSEVMTD0hRU5WSVJPTk1FTlRf
SVNfV0VCJiYhRU5WSVJPTk1FTlRfSVNfTk9ERSYmIUVOVklST05NRU5UX0lTX1dPUktFUjt2YXIg
c2NyaXB0RGlyZWN0b3J5PSIiO2Z1bmN0aW9uIGxvY2F0ZUZpbGUocGF0aCl7aWYoTW9kdWxlWyJs
b2NhdGVGaWxlIl0pe3JldHVybiBNb2R1bGVbImxvY2F0ZUZpbGUiXShwYXRoLHNjcmlwdERpcmVj
dG9yeSl9cmV0dXJuIHNjcmlwdERpcmVjdG9yeStwYXRofXZhciByZWFkXyxyZWFkQXN5bmMscmVh
ZEJpbmFyeSxzZXRXaW5kb3dUaXRsZTt2YXIgbm9kZUZTO3ZhciBub2RlUGF0aDtpZihFTlZJUk9O
TUVOVF9JU19OT0RFKXtpZihFTlZJUk9OTUVOVF9JU19XT1JLRVIpe3NjcmlwdERpcmVjdG9yeT1y
ZXF1aXJlKCJwYXRoIikuZGlybmFtZShzY3JpcHREaXJlY3RvcnkpKyIvIn1lbHNle3NjcmlwdERp
cmVjdG9yeT1fX2Rpcm5hbWUrIi8ifXJlYWRfPWZ1bmN0aW9uIHNoZWxsX3JlYWQoZmlsZW5hbWUs
YmluYXJ5KXtpZighbm9kZUZTKW5vZGVGUz1yZXF1aXJlKCJmcyIpO2lmKCFub2RlUGF0aClub2Rl
UGF0aD1yZXF1aXJlKCJwYXRoIik7ZmlsZW5hbWU9bm9kZVBhdGhbIm5vcm1hbGl6ZSJdKGZpbGVu
YW1lKTtyZXR1cm4gbm9kZUZTWyJyZWFkRmlsZVN5bmMiXShmaWxlbmFtZSxiaW5hcnk/bnVsbDoi
dXRmOCIpfTtyZWFkQmluYXJ5PWZ1bmN0aW9uIHJlYWRCaW5hcnkoZmlsZW5hbWUpe3ZhciByZXQ9
cmVhZF8oZmlsZW5hbWUsdHJ1ZSk7aWYoIXJldC5idWZmZXIpe3JldD1uZXcgVWludDhBcnJheShy
ZXQpfWFzc2VydChyZXQuYnVmZmVyKTtyZXR1cm4gcmV0fTtpZihwcm9jZXNzWyJhcmd2Il0ubGVu
Z3RoPjEpe3RoaXNQcm9ncmFtPXByb2Nlc3NbImFyZ3YiXVsxXS5yZXBsYWNlKC9cXC9nLCIvIil9
YXJndW1lbnRzXz1wcm9jZXNzWyJhcmd2Il0uc2xpY2UoMik7aWYodHlwZW9mIG1vZHVsZSE9PSJ1
bmRlZmluZWQiKXttb2R1bGVbImV4cG9ydHMiXT1Nb2R1bGV9cHJvY2Vzc1sib24iXSgidW5jYXVn
aHRFeGNlcHRpb24iLGZ1bmN0aW9uKGV4KXtpZighKGV4IGluc3RhbmNlb2YgRXhpdFN0YXR1cykp
e3Rocm93IGV4fX0pO3Byb2Nlc3NbIm9uIl0oInVuaGFuZGxlZFJlamVjdGlvbiIsYWJvcnQpO3F1
aXRfPWZ1bmN0aW9uKHN0YXR1cyl7cHJvY2Vzc1siZXhpdCJdKHN0YXR1cyl9O01vZHVsZVsiaW5z
cGVjdCJdPWZ1bmN0aW9uKCl7cmV0dXJuIltFbXNjcmlwdGVuIE1vZHVsZSBvYmplY3RdIn19ZWxz
ZSBpZihFTlZJUk9OTUVOVF9JU19TSEVMTCl7aWYodHlwZW9mIHJlYWQhPSJ1bmRlZmluZWQiKXty
ZWFkXz1mdW5jdGlvbiBzaGVsbF9yZWFkKGYpe3JldHVybiByZWFkKGYpfX1yZWFkQmluYXJ5PWZ1
bmN0aW9uIHJlYWRCaW5hcnkoZil7dmFyIGRhdGE7aWYodHlwZW9mIHJlYWRidWZmZXI9PT0iZnVu
Y3Rpb24iKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkocmVhZGJ1ZmZlcihmKSl9ZGF0YT1yZWFkKGYs
ImJpbmFyeSIpO2Fzc2VydCh0eXBlb2YgZGF0YT09PSJvYmplY3QiKTtyZXR1cm4gZGF0YX07aWYo
dHlwZW9mIHNjcmlwdEFyZ3MhPSJ1bmRlZmluZWQiKXthcmd1bWVudHNfPXNjcmlwdEFyZ3N9ZWxz
ZSBpZih0eXBlb2YgYXJndW1lbnRzIT0idW5kZWZpbmVkIil7YXJndW1lbnRzXz1hcmd1bWVudHN9
aWYodHlwZW9mIHF1aXQ9PT0iZnVuY3Rpb24iKXtxdWl0Xz1mdW5jdGlvbihzdGF0dXMpe3F1aXQo
c3RhdHVzKX19aWYodHlwZW9mIHByaW50IT09InVuZGVmaW5lZCIpe2lmKHR5cGVvZiBjb25zb2xl
PT09InVuZGVmaW5lZCIpY29uc29sZT17fTtjb25zb2xlLmxvZz1wcmludDtjb25zb2xlLndhcm49
Y29uc29sZS5lcnJvcj10eXBlb2YgcHJpbnRFcnIhPT0idW5kZWZpbmVkIj9wcmludEVycjpwcmlu
dH19ZWxzZSBpZihFTlZJUk9OTUVOVF9JU19XRUJ8fEVOVklST05NRU5UX0lTX1dPUktFUil7aWYo
RU5WSVJPTk1FTlRfSVNfV09SS0VSKXtzY3JpcHREaXJlY3Rvcnk9c2VsZi5sb2NhdGlvbi5ocmVm
fWVsc2UgaWYoZG9jdW1lbnQuY3VycmVudFNjcmlwdCl7c2NyaXB0RGlyZWN0b3J5PWRvY3VtZW50
LmN1cnJlbnRTY3JpcHQuc3JjfWlmKHNjcmlwdERpcmVjdG9yeS5pbmRleE9mKCJibG9iOiIpIT09
MCl7c2NyaXB0RGlyZWN0b3J5PXNjcmlwdERpcmVjdG9yeS5zdWJzdHIoMCxzY3JpcHREaXJlY3Rv
cnkubGFzdEluZGV4T2YoIi8iKSsxKX1lbHNle3NjcmlwdERpcmVjdG9yeT0iIn17cmVhZF89ZnVu
Y3Rpb24gc2hlbGxfcmVhZCh1cmwpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVu
KCJHRVQiLHVybCxmYWxzZSk7eGhyLnNlbmQobnVsbCk7cmV0dXJuIHhoci5yZXNwb25zZVRleHR9
O2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7cmVhZEJpbmFyeT1mdW5jdGlvbiByZWFkQmluYXJ5
KHVybCl7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3Q7eGhyLm9wZW4oIkdFVCIsdXJsLGZhbHNl
KTt4aHIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciI7eGhyLnNlbmQobnVsbCk7cmV0dXJuIG5l
dyBVaW50OEFycmF5KHhoci5yZXNwb25zZSl9fXJlYWRBc3luYz1mdW5jdGlvbiByZWFkQXN5bmMo
dXJsLG9ubG9hZCxvbmVycm9yKXt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3Blbigi
R0VUIix1cmwsdHJ1ZSk7eGhyLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiO3hoci5vbmxvYWQ9
ZnVuY3Rpb24geGhyX29ubG9hZCgpe2lmKHhoci5zdGF0dXM9PTIwMHx8eGhyLnN0YXR1cz09MCYm
eGhyLnJlc3BvbnNlKXtvbmxvYWQoeGhyLnJlc3BvbnNlKTtyZXR1cm59b25lcnJvcigpfTt4aHIu
b25lcnJvcj1vbmVycm9yO3hoci5zZW5kKG51bGwpfX1zZXRXaW5kb3dUaXRsZT1mdW5jdGlvbih0
aXRsZSl7ZG9jdW1lbnQudGl0bGU9dGl0bGV9fWVsc2V7fXZhciBvdXQ9TW9kdWxlWyJwcmludCJd
fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3ZhciBlcnI9TW9kdWxlWyJwcmludEVyciJdfHxj
b25zb2xlLndhcm4uYmluZChjb25zb2xlKTtmb3Ioa2V5IGluIG1vZHVsZU92ZXJyaWRlcyl7aWYo
bW9kdWxlT3ZlcnJpZGVzLmhhc093blByb3BlcnR5KGtleSkpe01vZHVsZVtrZXldPW1vZHVsZU92
ZXJyaWRlc1trZXldfX1tb2R1bGVPdmVycmlkZXM9bnVsbDtpZihNb2R1bGVbImFyZ3VtZW50cyJd
KWFyZ3VtZW50c189TW9kdWxlWyJhcmd1bWVudHMiXTtpZihNb2R1bGVbInRoaXNQcm9ncmFtIl0p
dGhpc1Byb2dyYW09TW9kdWxlWyJ0aGlzUHJvZ3JhbSJdO2lmKE1vZHVsZVsicXVpdCJdKXF1aXRf
PU1vZHVsZVsicXVpdCJdO3ZhciBTVEFDS19BTElHTj0xNjtmdW5jdGlvbiBkeW5hbWljQWxsb2Mo
c2l6ZSl7dmFyIHJldD1IRUFQMzJbRFlOQU1JQ1RPUF9QVFI+PjJdO3ZhciBlbmQ9cmV0K3NpemUr
MTUmLTE2O0hFQVAzMltEWU5BTUlDVE9QX1BUUj4+Ml09ZW5kO3JldHVybiByZXR9ZnVuY3Rpb24g
Z2V0TmF0aXZlVHlwZVNpemUodHlwZSl7c3dpdGNoKHR5cGUpe2Nhc2UiaTEiOmNhc2UiaTgiOnJl
dHVybiAxO2Nhc2UiaTE2IjpyZXR1cm4gMjtjYXNlImkzMiI6cmV0dXJuIDQ7Y2FzZSJpNjQiOnJl
dHVybiA4O2Nhc2UiZmxvYXQiOnJldHVybiA0O2Nhc2UiZG91YmxlIjpyZXR1cm4gODtkZWZhdWx0
OntpZih0eXBlW3R5cGUubGVuZ3RoLTFdPT09IioiKXtyZXR1cm4gNH1lbHNlIGlmKHR5cGVbMF09
PT0iaSIpe3ZhciBiaXRzPU51bWJlcih0eXBlLnN1YnN0cigxKSk7YXNzZXJ0KGJpdHMlOD09PTAs
ImdldE5hdGl2ZVR5cGVTaXplIGludmFsaWQgYml0cyAiK2JpdHMrIiwgdHlwZSAiK3R5cGUpO3Jl
dHVybiBiaXRzLzh9ZWxzZXtyZXR1cm4gMH19fX1mdW5jdGlvbiB3YXJuT25jZSh0ZXh0KXtpZigh
d2Fybk9uY2Uuc2hvd24pd2Fybk9uY2Uuc2hvd249e307aWYoIXdhcm5PbmNlLnNob3duW3RleHRd
KXt3YXJuT25jZS5zaG93blt0ZXh0XT0xO2Vycih0ZXh0KX19ZnVuY3Rpb24gY29udmVydEpzRnVu
Y3Rpb25Ub1dhc20oZnVuYyxzaWcpe2lmKHR5cGVvZiBXZWJBc3NlbWJseS5GdW5jdGlvbj09PSJm
dW5jdGlvbiIpe3ZhciB0eXBlTmFtZXM9eyJpIjoiaTMyIiwiaiI6Imk2NCIsImYiOiJmMzIiLCJk
IjoiZjY0In07dmFyIHR5cGU9e3BhcmFtZXRlcnM6W10scmVzdWx0czpzaWdbMF09PSJ2Ij9bXTpb
dHlwZU5hbWVzW3NpZ1swXV1dfTtmb3IodmFyIGk9MTtpPHNpZy5sZW5ndGg7KytpKXt0eXBlLnBh
cmFtZXRlcnMucHVzaCh0eXBlTmFtZXNbc2lnW2ldXSl9cmV0dXJuIG5ldyBXZWJBc3NlbWJseS5G
dW5jdGlvbih0eXBlLGZ1bmMpfXZhciB0eXBlU2VjdGlvbj1bMSwwLDEsOTZdO3ZhciBzaWdSZXQ9
c2lnLnNsaWNlKDAsMSk7dmFyIHNpZ1BhcmFtPXNpZy5zbGljZSgxKTt2YXIgdHlwZUNvZGVzPXsi
aSI6MTI3LCJqIjoxMjYsImYiOjEyNSwiZCI6MTI0fTt0eXBlU2VjdGlvbi5wdXNoKHNpZ1BhcmFt
Lmxlbmd0aCk7Zm9yKHZhciBpPTA7aTxzaWdQYXJhbS5sZW5ndGg7KytpKXt0eXBlU2VjdGlvbi5w
dXNoKHR5cGVDb2Rlc1tzaWdQYXJhbVtpXV0pfWlmKHNpZ1JldD09InYiKXt0eXBlU2VjdGlvbi5w
dXNoKDApfWVsc2V7dHlwZVNlY3Rpb249dHlwZVNlY3Rpb24uY29uY2F0KFsxLHR5cGVDb2Rlc1tz
aWdSZXRdXSl9dHlwZVNlY3Rpb25bMV09dHlwZVNlY3Rpb24ubGVuZ3RoLTI7dmFyIGJ5dGVzPW5l
dyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMF0uY29uY2F0KHR5cGVTZWN0aW9uLFsy
LDcsMSwxLDEwMSwxLDEwMiwwLDAsNyw1LDEsMSwxMDIsMCwwXSkpO3ZhciBtb2R1bGU9bmV3IFdl
YkFzc2VtYmx5Lk1vZHVsZShieXRlcyk7dmFyIGluc3RhbmNlPW5ldyBXZWJBc3NlbWJseS5JbnN0
YW5jZShtb2R1bGUseyJlIjp7ImYiOmZ1bmN9fSk7dmFyIHdyYXBwZWRGdW5jPWluc3RhbmNlLmV4
cG9ydHNbImYiXTtyZXR1cm4gd3JhcHBlZEZ1bmN9dmFyIGZyZWVUYWJsZUluZGV4ZXM9W107dmFy
IGZ1bmN0aW9uc0luVGFibGVNYXA7ZnVuY3Rpb24gYWRkRnVuY3Rpb25XYXNtKGZ1bmMsc2lnKXt2
YXIgdGFibGU9d2FzbVRhYmxlO2lmKCFmdW5jdGlvbnNJblRhYmxlTWFwKXtmdW5jdGlvbnNJblRh
YmxlTWFwPW5ldyBXZWFrTWFwO2Zvcih2YXIgaT0wO2k8dGFibGUubGVuZ3RoO2krKyl7dmFyIGl0
ZW09dGFibGUuZ2V0KGkpO2lmKGl0ZW0pe2Z1bmN0aW9uc0luVGFibGVNYXAuc2V0KGl0ZW0saSl9
fX1pZihmdW5jdGlvbnNJblRhYmxlTWFwLmhhcyhmdW5jKSl7cmV0dXJuIGZ1bmN0aW9uc0luVGFi
bGVNYXAuZ2V0KGZ1bmMpfXZhciByZXQ7aWYoZnJlZVRhYmxlSW5kZXhlcy5sZW5ndGgpe3JldD1m
cmVlVGFibGVJbmRleGVzLnBvcCgpfWVsc2V7cmV0PXRhYmxlLmxlbmd0aDt0cnl7dGFibGUuZ3Jv
dygxKX1jYXRjaChlcnIpe2lmKCEoZXJyIGluc3RhbmNlb2YgUmFuZ2VFcnJvcikpe3Rocm93IGVy
cn10aHJvdyJVbmFibGUgdG8gZ3JvdyB3YXNtIHRhYmxlLiBTZXQgQUxMT1dfVEFCTEVfR1JPV1RI
LiJ9fXRyeXt0YWJsZS5zZXQocmV0LGZ1bmMpfWNhdGNoKGVycil7aWYoIShlcnIgaW5zdGFuY2Vv
ZiBUeXBlRXJyb3IpKXt0aHJvdyBlcnJ9dmFyIHdyYXBwZWQ9Y29udmVydEpzRnVuY3Rpb25Ub1dh
c20oZnVuYyxzaWcpO3RhYmxlLnNldChyZXQsd3JhcHBlZCl9ZnVuY3Rpb25zSW5UYWJsZU1hcC5z
ZXQoZnVuYyxyZXQpO3JldHVybiByZXR9ZnVuY3Rpb24gcmVtb3ZlRnVuY3Rpb25XYXNtKGluZGV4
KXtmdW5jdGlvbnNJblRhYmxlTWFwLmRlbGV0ZSh3YXNtVGFibGUuZ2V0KGluZGV4KSk7ZnJlZVRh
YmxlSW5kZXhlcy5wdXNoKGluZGV4KX12YXIgZnVuY1dyYXBwZXJzPXt9O2Z1bmN0aW9uIGR5bkNh
bGwoc2lnLHB0cixhcmdzKXtpZihhcmdzJiZhcmdzLmxlbmd0aCl7cmV0dXJuIE1vZHVsZVsiZHlu
Q2FsbF8iK3NpZ10uYXBwbHkobnVsbCxbcHRyXS5jb25jYXQoYXJncykpfWVsc2V7cmV0dXJuIE1v
ZHVsZVsiZHluQ2FsbF8iK3NpZ10uY2FsbChudWxsLHB0cil9fXZhciB0ZW1wUmV0MD0wO3ZhciBz
ZXRUZW1wUmV0MD1mdW5jdGlvbih2YWx1ZSl7dGVtcFJldDA9dmFsdWV9O3ZhciB3YXNtQmluYXJ5
O2lmKE1vZHVsZVsid2FzbUJpbmFyeSJdKXdhc21CaW5hcnk9TW9kdWxlWyJ3YXNtQmluYXJ5Il07
dmFyIG5vRXhpdFJ1bnRpbWU7aWYoTW9kdWxlWyJub0V4aXRSdW50aW1lIl0pbm9FeGl0UnVudGlt
ZT1Nb2R1bGVbIm5vRXhpdFJ1bnRpbWUiXTtpZih0eXBlb2YgV2ViQXNzZW1ibHkhPT0ib2JqZWN0
Iil7ZXJyKCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIil9ZnVuY3Rpb24gc2V0VmFs
dWUocHRyLHZhbHVlLHR5cGUsbm9TYWZlKXt0eXBlPXR5cGV8fCJpOCI7aWYodHlwZS5jaGFyQXQo
dHlwZS5sZW5ndGgtMSk9PT0iKiIpdHlwZT0iaTMyIjtzd2l0Y2godHlwZSl7Y2FzZSJpMSI6SEVB
UDhbcHRyPj4wXT12YWx1ZTticmVhaztjYXNlImk4IjpIRUFQOFtwdHI+PjBdPXZhbHVlO2JyZWFr
O2Nhc2UiaTE2IjpIRUFQMTZbcHRyPj4xXT12YWx1ZTticmVhaztjYXNlImkzMiI6SEVBUDMyW3B0
cj4+Ml09dmFsdWU7YnJlYWs7Y2FzZSJpNjQiOnRlbXBJNjQ9W3ZhbHVlPj4+MCwodGVtcERvdWJs
ZT12YWx1ZSwrTWF0aF9hYnModGVtcERvdWJsZSk+PTE/dGVtcERvdWJsZT4wPyhNYXRoX21pbigr
TWF0aF9mbG9vcih0ZW1wRG91YmxlLzQyOTQ5NjcyOTYpLDQyOTQ5NjcyOTUpfDApPj4+MDp+fitN
YXRoX2NlaWwoKHRlbXBEb3VibGUtKyh+fnRlbXBEb3VibGU+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4w
OjApXSxIRUFQMzJbcHRyPj4yXT10ZW1wSTY0WzBdLEhFQVAzMltwdHIrND4+Ml09dGVtcEk2NFsx
XTticmVhaztjYXNlImZsb2F0IjpIRUFQRjMyW3B0cj4+Ml09dmFsdWU7YnJlYWs7Y2FzZSJkb3Vi
bGUiOkhFQVBGNjRbcHRyPj4zXT12YWx1ZTticmVhaztkZWZhdWx0OmFib3J0KCJpbnZhbGlkIHR5
cGUgZm9yIHNldFZhbHVlOiAiK3R5cGUpfX12YXIgd2FzbU1lbW9yeTt2YXIgd2FzbVRhYmxlPW5l
dyBXZWJBc3NlbWJseS5UYWJsZSh7ImluaXRpYWwiOjQsIm1heGltdW0iOjQrMCwiZWxlbWVudCI6
ImFueWZ1bmMifSk7dmFyIEFCT1JUPWZhbHNlO3ZhciBFWElUU1RBVFVTPTA7ZnVuY3Rpb24gYXNz
ZXJ0KGNvbmRpdGlvbix0ZXh0KXtpZighY29uZGl0aW9uKXthYm9ydCgiQXNzZXJ0aW9uIGZhaWxl
ZDogIit0ZXh0KX19ZnVuY3Rpb24gZ2V0Q0Z1bmMoaWRlbnQpe3ZhciBmdW5jPU1vZHVsZVsiXyIr
aWRlbnRdO2Fzc2VydChmdW5jLCJDYW5ub3QgY2FsbCB1bmtub3duIGZ1bmN0aW9uICIraWRlbnQr
IiwgbWFrZSBzdXJlIGl0IGlzIGV4cG9ydGVkIik7cmV0dXJuIGZ1bmN9ZnVuY3Rpb24gY2NhbGwo
aWRlbnQscmV0dXJuVHlwZSxhcmdUeXBlcyxhcmdzLG9wdHMpe3ZhciB0b0M9eyJzdHJpbmciOmZ1
bmN0aW9uKHN0cil7dmFyIHJldD0wO2lmKHN0ciE9PW51bGwmJnN0ciE9PXVuZGVmaW5lZCYmc3Ry
IT09MCl7dmFyIGxlbj0oc3RyLmxlbmd0aDw8MikrMTtyZXQ9c3RhY2tBbGxvYyhsZW4pO3N0cmlu
Z1RvVVRGOChzdHIscmV0LGxlbil9cmV0dXJuIHJldH0sImFycmF5IjpmdW5jdGlvbihhcnIpe3Zh
ciByZXQ9c3RhY2tBbGxvYyhhcnIubGVuZ3RoKTt3cml0ZUFycmF5VG9NZW1vcnkoYXJyLHJldCk7
cmV0dXJuIHJldH19O2Z1bmN0aW9uIGNvbnZlcnRSZXR1cm5WYWx1ZShyZXQpe2lmKHJldHVyblR5
cGU9PT0ic3RyaW5nIilyZXR1cm4gVVRGOFRvU3RyaW5nKHJldCk7aWYocmV0dXJuVHlwZT09PSJi
b29sZWFuIilyZXR1cm4gQm9vbGVhbihyZXQpO3JldHVybiByZXR9dmFyIGZ1bmM9Z2V0Q0Z1bmMo
aWRlbnQpO3ZhciBjQXJncz1bXTt2YXIgc3RhY2s9MDtpZihhcmdzKXtmb3IodmFyIGk9MDtpPGFy
Z3MubGVuZ3RoO2krKyl7dmFyIGNvbnZlcnRlcj10b0NbYXJnVHlwZXNbaV1dO2lmKGNvbnZlcnRl
cil7aWYoc3RhY2s9PT0wKXN0YWNrPXN0YWNrU2F2ZSgpO2NBcmdzW2ldPWNvbnZlcnRlcihhcmdz
W2ldKX1lbHNle2NBcmdzW2ldPWFyZ3NbaV19fX12YXIgcmV0PWZ1bmMuYXBwbHkobnVsbCxjQXJn
cyk7cmV0PWNvbnZlcnRSZXR1cm5WYWx1ZShyZXQpO2lmKHN0YWNrIT09MClzdGFja1Jlc3RvcmUo
c3RhY2spO3JldHVybiByZXR9dmFyIEFMTE9DX05PTkU9Mzt2YXIgVVRGOERlY29kZXI9dHlwZW9m
IFRleHREZWNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dW5kZWZp
bmVkO2Z1bmN0aW9uIFVURjhBcnJheVRvU3RyaW5nKGhlYXAsaWR4LG1heEJ5dGVzVG9SZWFkKXt2
YXIgZW5kSWR4PWlkeCttYXhCeXRlc1RvUmVhZDt2YXIgZW5kUHRyPWlkeDt3aGlsZShoZWFwW2Vu
ZFB0cl0mJiEoZW5kUHRyPj1lbmRJZHgpKSsrZW5kUHRyO2lmKGVuZFB0ci1pZHg+MTYmJmhlYXAu
c3ViYXJyYXkmJlVURjhEZWNvZGVyKXtyZXR1cm4gVVRGOERlY29kZXIuZGVjb2RlKGhlYXAuc3Vi
YXJyYXkoaWR4LGVuZFB0cikpfWVsc2V7dmFyIHN0cj0iIjt3aGlsZShpZHg8ZW5kUHRyKXt2YXIg
dTA9aGVhcFtpZHgrK107aWYoISh1MCYxMjgpKXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUodTAp
O2NvbnRpbnVlfXZhciB1MT1oZWFwW2lkeCsrXSY2MztpZigodTAmMjI0KT09MTkyKXtzdHIrPVN0
cmluZy5mcm9tQ2hhckNvZGUoKHUwJjMxKTw8Nnx1MSk7Y29udGludWV9dmFyIHUyPWhlYXBbaWR4
KytdJjYzO2lmKCh1MCYyNDApPT0yMjQpe3UwPSh1MCYxNSk8PDEyfHUxPDw2fHUyfWVsc2V7dTA9
KHUwJjcpPDwxOHx1MTw8MTJ8dTI8PDZ8aGVhcFtpZHgrK10mNjN9aWYodTA8NjU1MzYpe3N0cis9
U3RyaW5nLmZyb21DaGFyQ29kZSh1MCl9ZWxzZXt2YXIgY2g9dTAtNjU1MzY7c3RyKz1TdHJpbmcu
ZnJvbUNoYXJDb2RlKDU1Mjk2fGNoPj4xMCw1NjMyMHxjaCYxMDIzKX19fXJldHVybiBzdHJ9ZnVu
Y3Rpb24gVVRGOFRvU3RyaW5nKHB0cixtYXhCeXRlc1RvUmVhZCl7cmV0dXJuIHB0cj9VVEY4QXJy
YXlUb1N0cmluZyhIRUFQVTgscHRyLG1heEJ5dGVzVG9SZWFkKToiIn1mdW5jdGlvbiBzdHJpbmdU
b1VURjhBcnJheShzdHIsaGVhcCxvdXRJZHgsbWF4Qnl0ZXNUb1dyaXRlKXtpZighKG1heEJ5dGVz
VG9Xcml0ZT4wKSlyZXR1cm4gMDt2YXIgc3RhcnRJZHg9b3V0SWR4O3ZhciBlbmRJZHg9b3V0SWR4
K21heEJ5dGVzVG9Xcml0ZS0xO2Zvcih2YXIgaT0wO2k8c3RyLmxlbmd0aDsrK2kpe3ZhciB1PXN0
ci5jaGFyQ29kZUF0KGkpO2lmKHU+PTU1Mjk2JiZ1PD01NzM0Myl7dmFyIHUxPXN0ci5jaGFyQ29k
ZUF0KCsraSk7dT02NTUzNisoKHUmMTAyMyk8PDEwKXx1MSYxMDIzfWlmKHU8PTEyNyl7aWYob3V0
SWR4Pj1lbmRJZHgpYnJlYWs7aGVhcFtvdXRJZHgrK109dX1lbHNlIGlmKHU8PTIwNDcpe2lmKG91
dElkeCsxPj1lbmRJZHgpYnJlYWs7aGVhcFtvdXRJZHgrK109MTkyfHU+PjY7aGVhcFtvdXRJZHgr
K109MTI4fHUmNjN9ZWxzZSBpZih1PD02NTUzNSl7aWYob3V0SWR4KzI+PWVuZElkeClicmVhazto
ZWFwW291dElkeCsrXT0yMjR8dT4+MTI7aGVhcFtvdXRJZHgrK109MTI4fHU+PjYmNjM7aGVhcFtv
dXRJZHgrK109MTI4fHUmNjN9ZWxzZXtpZihvdXRJZHgrMz49ZW5kSWR4KWJyZWFrO2hlYXBbb3V0
SWR4KytdPTI0MHx1Pj4xODtoZWFwW291dElkeCsrXT0xMjh8dT4+MTImNjM7aGVhcFtvdXRJZHgr
K109MTI4fHU+PjYmNjM7aGVhcFtvdXRJZHgrK109MTI4fHUmNjN9fWhlYXBbb3V0SWR4XT0wO3Jl
dHVybiBvdXRJZHgtc3RhcnRJZHh9ZnVuY3Rpb24gc3RyaW5nVG9VVEY4KHN0cixvdXRQdHIsbWF4
Qnl0ZXNUb1dyaXRlKXtyZXR1cm4gc3RyaW5nVG9VVEY4QXJyYXkoc3RyLEhFQVBVOCxvdXRQdHIs
bWF4Qnl0ZXNUb1dyaXRlKX1mdW5jdGlvbiBsZW5ndGhCeXRlc1VURjgoc3RyKXt2YXIgbGVuPTA7
Zm9yKHZhciBpPTA7aTxzdHIubGVuZ3RoOysraSl7dmFyIHU9c3RyLmNoYXJDb2RlQXQoaSk7aWYo
dT49NTUyOTYmJnU8PTU3MzQzKXU9NjU1MzYrKCh1JjEwMjMpPDwxMCl8c3RyLmNoYXJDb2RlQXQo
KytpKSYxMDIzO2lmKHU8PTEyNykrK2xlbjtlbHNlIGlmKHU8PTIwNDcpbGVuKz0yO2Vsc2UgaWYo
dTw9NjU1MzUpbGVuKz0zO2Vsc2UgbGVuKz00fXJldHVybiBsZW59dmFyIFVURjE2RGVjb2Rlcj10
eXBlb2YgVGV4dERlY29kZXIhPT0idW5kZWZpbmVkIj9uZXcgVGV4dERlY29kZXIoInV0Zi0xNmxl
Iik6dW5kZWZpbmVkO2Z1bmN0aW9uIGFsbG9jYXRlVVRGOE9uU3RhY2soc3RyKXt2YXIgc2l6ZT1s
ZW5ndGhCeXRlc1VURjgoc3RyKSsxO3ZhciByZXQ9c3RhY2tBbGxvYyhzaXplKTtzdHJpbmdUb1VU
RjhBcnJheShzdHIsSEVBUDgscmV0LHNpemUpO3JldHVybiByZXR9ZnVuY3Rpb24gd3JpdGVBcnJh
eVRvTWVtb3J5KGFycmF5LGJ1ZmZlcil7SEVBUDguc2V0KGFycmF5LGJ1ZmZlcil9ZnVuY3Rpb24g
d3JpdGVBc2NpaVRvTWVtb3J5KHN0cixidWZmZXIsZG9udEFkZE51bGwpe2Zvcih2YXIgaT0wO2k8
c3RyLmxlbmd0aDsrK2kpe0hFQVA4W2J1ZmZlcisrPj4wXT1zdHIuY2hhckNvZGVBdChpKX1pZigh
ZG9udEFkZE51bGwpSEVBUDhbYnVmZmVyPj4wXT0wfXZhciBXQVNNX1BBR0VfU0laRT02NTUzNjt2
YXIgYnVmZmVyLEhFQVA4LEhFQVBVOCxIRUFQMTYsSEVBUFUxNixIRUFQMzIsSEVBUFUzMixIRUFQ
RjMyLEhFQVBGNjQ7ZnVuY3Rpb24gdXBkYXRlR2xvYmFsQnVmZmVyQW5kVmlld3MoYnVmKXtidWZm
ZXI9YnVmO01vZHVsZVsiSEVBUDgiXT1IRUFQOD1uZXcgSW50OEFycmF5KGJ1Zik7TW9kdWxlWyJI
RUFQMTYiXT1IRUFQMTY9bmV3IEludDE2QXJyYXkoYnVmKTtNb2R1bGVbIkhFQVAzMiJdPUhFQVAz
Mj1uZXcgSW50MzJBcnJheShidWYpO01vZHVsZVsiSEVBUFU4Il09SEVBUFU4PW5ldyBVaW50OEFy
cmF5KGJ1Zik7TW9kdWxlWyJIRUFQVTE2Il09SEVBUFUxNj1uZXcgVWludDE2QXJyYXkoYnVmKTtN
b2R1bGVbIkhFQVBVMzIiXT1IRUFQVTMyPW5ldyBVaW50MzJBcnJheShidWYpO01vZHVsZVsiSEVB
UEYzMiJdPUhFQVBGMzI9bmV3IEZsb2F0MzJBcnJheShidWYpO01vZHVsZVsiSEVBUEY2NCJdPUhF
QVBGNjQ9bmV3IEZsb2F0NjRBcnJheShidWYpfXZhciBTVEFDS19CQVNFPTUyNTA0NDgsRFlOQU1J
Q19CQVNFPTUyNTA0NDgsRFlOQU1JQ1RPUF9QVFI9NzQwODt2YXIgSU5JVElBTF9JTklUSUFMX01F
TU9SWT1Nb2R1bGVbIklOSVRJQUxfTUVNT1JZIl18fDE2Nzc3MjE2O2lmKE1vZHVsZVsid2FzbU1l
bW9yeSJdKXt3YXNtTWVtb3J5PU1vZHVsZVsid2FzbU1lbW9yeSJdfWVsc2V7d2FzbU1lbW9yeT1u
ZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHsiaW5pdGlhbCI6SU5JVElBTF9JTklUSUFMX01FTU9SWS9X
QVNNX1BBR0VfU0laRSwibWF4aW11bSI6SU5JVElBTF9JTklUSUFMX01FTU9SWS9XQVNNX1BBR0Vf
U0laRX0pfWlmKHdhc21NZW1vcnkpe2J1ZmZlcj13YXNtTWVtb3J5LmJ1ZmZlcn1JTklUSUFMX0lO
SVRJQUxfTUVNT1JZPWJ1ZmZlci5ieXRlTGVuZ3RoO3VwZGF0ZUdsb2JhbEJ1ZmZlckFuZFZpZXdz
KGJ1ZmZlcik7SEVBUDMyW0RZTkFNSUNUT1BfUFRSPj4yXT1EWU5BTUlDX0JBU0U7ZnVuY3Rpb24g
Y2FsbFJ1bnRpbWVDYWxsYmFja3MoY2FsbGJhY2tzKXt3aGlsZShjYWxsYmFja3MubGVuZ3RoPjAp
e3ZhciBjYWxsYmFjaz1jYWxsYmFja3Muc2hpZnQoKTtpZih0eXBlb2YgY2FsbGJhY2s9PSJmdW5j
dGlvbiIpe2NhbGxiYWNrKE1vZHVsZSk7Y29udGludWV9dmFyIGZ1bmM9Y2FsbGJhY2suZnVuYztp
Zih0eXBlb2YgZnVuYz09PSJudW1iZXIiKXtpZihjYWxsYmFjay5hcmc9PT11bmRlZmluZWQpe01v
ZHVsZVsiZHluQ2FsbF92Il0oZnVuYyl9ZWxzZXtNb2R1bGVbImR5bkNhbGxfdmkiXShmdW5jLGNh
bGxiYWNrLmFyZyl9fWVsc2V7ZnVuYyhjYWxsYmFjay5hcmc9PT11bmRlZmluZWQ/bnVsbDpjYWxs
YmFjay5hcmcpfX19dmFyIF9fQVRQUkVSVU5fXz1bXTt2YXIgX19BVElOSVRfXz1bXTt2YXIgX19B
VE1BSU5fXz1bXTt2YXIgX19BVFBPU1RSVU5fXz1bXTt2YXIgcnVudGltZUluaXRpYWxpemVkPWZh
bHNlO3ZhciBydW50aW1lRXhpdGVkPWZhbHNlO2Z1bmN0aW9uIHByZVJ1bigpe2lmKE1vZHVsZVsi
cHJlUnVuIl0pe2lmKHR5cGVvZiBNb2R1bGVbInByZVJ1biJdPT0iZnVuY3Rpb24iKU1vZHVsZVsi
cHJlUnVuIl09W01vZHVsZVsicHJlUnVuIl1dO3doaWxlKE1vZHVsZVsicHJlUnVuIl0ubGVuZ3Ro
KXthZGRPblByZVJ1bihNb2R1bGVbInByZVJ1biJdLnNoaWZ0KCkpfX1jYWxsUnVudGltZUNhbGxi
YWNrcyhfX0FUUFJFUlVOX18pfWZ1bmN0aW9uIGluaXRSdW50aW1lKCl7cnVudGltZUluaXRpYWxp
emVkPXRydWU7Y2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVElOSVRfXyl9ZnVuY3Rpb24gcHJlTWFp
bigpe2NhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRNQUlOX18pfWZ1bmN0aW9uIGV4aXRSdW50aW1l
KCl7cnVudGltZUV4aXRlZD10cnVlfWZ1bmN0aW9uIHBvc3RSdW4oKXtpZihNb2R1bGVbInBvc3RS
dW4iXSl7aWYodHlwZW9mIE1vZHVsZVsicG9zdFJ1biJdPT0iZnVuY3Rpb24iKU1vZHVsZVsicG9z
dFJ1biJdPVtNb2R1bGVbInBvc3RSdW4iXV07d2hpbGUoTW9kdWxlWyJwb3N0UnVuIl0ubGVuZ3Ro
KXthZGRPblBvc3RSdW4oTW9kdWxlWyJwb3N0UnVuIl0uc2hpZnQoKSl9fWNhbGxSdW50aW1lQ2Fs
bGJhY2tzKF9fQVRQT1NUUlVOX18pfWZ1bmN0aW9uIGFkZE9uUHJlUnVuKGNiKXtfX0FUUFJFUlVO
X18udW5zaGlmdChjYil9ZnVuY3Rpb24gYWRkT25Qb3N0UnVuKGNiKXtfX0FUUE9TVFJVTl9fLnVu
c2hpZnQoY2IpfXZhciBNYXRoX2Ficz1NYXRoLmFiczt2YXIgTWF0aF9jZWlsPU1hdGguY2VpbDt2
YXIgTWF0aF9mbG9vcj1NYXRoLmZsb29yO3ZhciBNYXRoX21pbj1NYXRoLm1pbjt2YXIgcnVuRGVw
ZW5kZW5jaWVzPTA7dmFyIHJ1bkRlcGVuZGVuY3lXYXRjaGVyPW51bGw7dmFyIGRlcGVuZGVuY2ll
c0Z1bGZpbGxlZD1udWxsO2Z1bmN0aW9uIGFkZFJ1bkRlcGVuZGVuY3koaWQpe3J1bkRlcGVuZGVu
Y2llcysrO2lmKE1vZHVsZVsibW9uaXRvclJ1bkRlcGVuZGVuY2llcyJdKXtNb2R1bGVbIm1vbml0
b3JSdW5EZXBlbmRlbmNpZXMiXShydW5EZXBlbmRlbmNpZXMpfX1mdW5jdGlvbiByZW1vdmVSdW5E
ZXBlbmRlbmN5KGlkKXtydW5EZXBlbmRlbmNpZXMtLTtpZihNb2R1bGVbIm1vbml0b3JSdW5EZXBl
bmRlbmNpZXMiXSl7TW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0ocnVuRGVwZW5kZW5j
aWVzKX1pZihydW5EZXBlbmRlbmNpZXM9PTApe2lmKHJ1bkRlcGVuZGVuY3lXYXRjaGVyIT09bnVs
bCl7Y2xlYXJJbnRlcnZhbChydW5EZXBlbmRlbmN5V2F0Y2hlcik7cnVuRGVwZW5kZW5jeVdhdGNo
ZXI9bnVsbH1pZihkZXBlbmRlbmNpZXNGdWxmaWxsZWQpe3ZhciBjYWxsYmFjaz1kZXBlbmRlbmNp
ZXNGdWxmaWxsZWQ7ZGVwZW5kZW5jaWVzRnVsZmlsbGVkPW51bGw7Y2FsbGJhY2soKX19fU1vZHVs
ZVsicHJlbG9hZGVkSW1hZ2VzIl09e307TW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXT17fTtmdW5j
dGlvbiBhYm9ydCh3aGF0KXtpZihNb2R1bGVbIm9uQWJvcnQiXSl7TW9kdWxlWyJvbkFib3J0Il0o
d2hhdCl9d2hhdCs9IiI7b3V0KHdoYXQpO2Vycih3aGF0KTtBQk9SVD10cnVlO0VYSVRTVEFUVVM9
MTt3aGF0PSJhYm9ydCgiK3doYXQrIikuIEJ1aWxkIHdpdGggLXMgQVNTRVJUSU9OUz0xIGZvciBt
b3JlIGluZm8uIjt0aHJvdyBuZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKHdoYXQpfWZ1bmN0
aW9uIGhhc1ByZWZpeChzdHIscHJlZml4KXtyZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5zdGFydHNX
aXRoP3N0ci5zdGFydHNXaXRoKHByZWZpeCk6c3RyLmluZGV4T2YocHJlZml4KT09PTB9dmFyIGRh
dGFVUklQcmVmaXg9ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiO2Z1bmN0
aW9uIGlzRGF0YVVSSShmaWxlbmFtZSl7cmV0dXJuIGhhc1ByZWZpeChmaWxlbmFtZSxkYXRhVVJJ
UHJlZml4KX12YXIgZmlsZVVSSVByZWZpeD0iZmlsZTovLyI7ZnVuY3Rpb24gaXNGaWxlVVJJKGZp
bGVuYW1lKXtyZXR1cm4gaGFzUHJlZml4KGZpbGVuYW1lLGZpbGVVUklQcmVmaXgpfXZhciB3YXNt
QmluYXJ5RmlsZT0iaW50ZXJwcmV0ZXItd2FzbS53YXNtIjtpZighaXNEYXRhVVJJKHdhc21CaW5h
cnlGaWxlKSl7d2FzbUJpbmFyeUZpbGU9bG9jYXRlRmlsZSh3YXNtQmluYXJ5RmlsZSl9ZnVuY3Rp
b24gZ2V0QmluYXJ5KCl7dHJ5e2lmKHdhc21CaW5hcnkpe3JldHVybiBuZXcgVWludDhBcnJheSh3
YXNtQmluYXJ5KX1pZihyZWFkQmluYXJ5KXtyZXR1cm4gcmVhZEJpbmFyeSh3YXNtQmluYXJ5Rmls
ZSl9ZWxzZXt0aHJvdyJib3RoIGFzeW5jIGFuZCBzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZh
aWxlZCJ9fWNhdGNoKGVycil7YWJvcnQoZXJyKX19ZnVuY3Rpb24gZ2V0QmluYXJ5UHJvbWlzZSgp
e2lmKCF3YXNtQmluYXJ5JiYoRU5WSVJPTk1FTlRfSVNfV0VCfHxFTlZJUk9OTUVOVF9JU19XT1JL
RVIpJiZ0eXBlb2YgZmV0Y2g9PT0iZnVuY3Rpb24iJiYhaXNGaWxlVVJJKHdhc21CaW5hcnlGaWxl
KSl7cmV0dXJuIGZldGNoKHdhc21CaW5hcnlGaWxlLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4i
fSkudGhlbihmdW5jdGlvbihyZXNwb25zZSl7aWYoIXJlc3BvbnNlWyJvayJdKXt0aHJvdyJmYWls
ZWQgdG8gbG9hZCB3YXNtIGJpbmFyeSBmaWxlIGF0ICciK3dhc21CaW5hcnlGaWxlKyInIn1yZXR1
cm4gcmVzcG9uc2VbImFycmF5QnVmZmVyIl0oKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIGdl
dEJpbmFyeSgpfSl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUscmVqZWN0KXty
ZXNvbHZlKGdldEJpbmFyeSgpKX0pfWZ1bmN0aW9uIGNyZWF0ZVdhc20oKXt2YXIgaW5mbz17ImVu
diI6YXNtTGlicmFyeUFyZywid2FzaV9zbmFwc2hvdF9wcmV2aWV3MSI6YXNtTGlicmFyeUFyZ307
ZnVuY3Rpb24gcmVjZWl2ZUluc3RhbmNlKGluc3RhbmNlLG1vZHVsZSl7dmFyIGV4cG9ydHM9aW5z
dGFuY2UuZXhwb3J0cztNb2R1bGVbImFzbSJdPWV4cG9ydHM7cmVtb3ZlUnVuRGVwZW5kZW5jeSgi
d2FzbS1pbnN0YW50aWF0ZSIpfWFkZFJ1bkRlcGVuZGVuY3koIndhc20taW5zdGFudGlhdGUiKTtm
dW5jdGlvbiByZWNlaXZlSW5zdGFudGlhdGVkU291cmNlKG91dHB1dCl7cmVjZWl2ZUluc3RhbmNl
KG91dHB1dFsiaW5zdGFuY2UiXSl9ZnVuY3Rpb24gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihyZWNl
aXZlcil7cmV0dXJuIGdldEJpbmFyeVByb21pc2UoKS50aGVuKGZ1bmN0aW9uKGJpbmFyeSl7cmV0
dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGJpbmFyeSxpbmZvKX0pLnRoZW4ocmVjZWl2ZXIs
ZnVuY3Rpb24ocmVhc29uKXtlcnIoImZhaWxlZCB0byBhc3luY2hyb25vdXNseSBwcmVwYXJlIHdh
c206ICIrcmVhc29uKTthYm9ydChyZWFzb24pfSl9ZnVuY3Rpb24gaW5zdGFudGlhdGVBc3luYygp
e2lmKCF3YXNtQmluYXJ5JiZ0eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmc9
PT0iZnVuY3Rpb24iJiYhaXNEYXRhVVJJKHdhc21CaW5hcnlGaWxlKSYmIWlzRmlsZVVSSSh3YXNt
QmluYXJ5RmlsZSkmJnR5cGVvZiBmZXRjaD09PSJmdW5jdGlvbiIpe2ZldGNoKHdhc21CaW5hcnlG
aWxlLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihyZXNwb25zZSl7
dmFyIHJlc3VsdD1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhyZXNwb25zZSxpbmZv
KTtyZXR1cm4gcmVzdWx0LnRoZW4ocmVjZWl2ZUluc3RhbnRpYXRlZFNvdXJjZSxmdW5jdGlvbihy
ZWFzb24pe2Vycigid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrcmVhc29uKTtlcnIo
ImZhbGxpbmcgYmFjayB0byBBcnJheUJ1ZmZlciBpbnN0YW50aWF0aW9uIik7aW5zdGFudGlhdGVB
cnJheUJ1ZmZlcihyZWNlaXZlSW5zdGFudGlhdGVkU291cmNlKX0pfSl9ZWxzZXtyZXR1cm4gaW5z
dGFudGlhdGVBcnJheUJ1ZmZlcihyZWNlaXZlSW5zdGFudGlhdGVkU291cmNlKX19aWYoTW9kdWxl
WyJpbnN0YW50aWF0ZVdhc20iXSl7dHJ5e3ZhciBleHBvcnRzPU1vZHVsZVsiaW5zdGFudGlhdGVX
YXNtIl0oaW5mbyxyZWNlaXZlSW5zdGFuY2UpO3JldHVybiBleHBvcnRzfWNhdGNoKGUpe2Vycigi
TW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIitlKTty
ZXR1cm4gZmFsc2V9fWluc3RhbnRpYXRlQXN5bmMoKTtyZXR1cm57fX12YXIgdGVtcERvdWJsZTt2
YXIgdGVtcEk2NDtfX0FUSU5JVF9fLnB1c2goe2Z1bmM6ZnVuY3Rpb24oKXtfX193YXNtX2NhbGxf
Y3RvcnMoKX19KTtmdW5jdGlvbiBkZW1hbmdsZShmdW5jKXtyZXR1cm4gZnVuY31mdW5jdGlvbiBk
ZW1hbmdsZUFsbCh0ZXh0KXt2YXIgcmVnZXg9L1xiX1pbXHdcZF9dKy9nO3JldHVybiB0ZXh0LnJl
cGxhY2UocmVnZXgsZnVuY3Rpb24oeCl7dmFyIHk9ZGVtYW5nbGUoeCk7cmV0dXJuIHg9PT15P3g6
eSsiIFsiK3grIl0ifSl9ZnVuY3Rpb24ganNTdGFja1RyYWNlKCl7dmFyIGVycj1uZXcgRXJyb3I7
aWYoIWVyci5zdGFjayl7dHJ5e3Rocm93IG5ldyBFcnJvcn1jYXRjaChlKXtlcnI9ZX1pZighZXJy
LnN0YWNrKXtyZXR1cm4iKG5vIHN0YWNrIHRyYWNlIGF2YWlsYWJsZSkifX1yZXR1cm4gZXJyLnN0
YWNrLnRvU3RyaW5nKCl9ZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fZ2V0X3NicmtfcHRyKCl7cmV0dXJu
IDc0MDh9ZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZyhkZXN0LHNyYyxudW0pe0hFQVBV
OC5jb3B5V2l0aGluKGRlc3Qsc3JjLHNyYytudW0pfWZ1bmN0aW9uIGFib3J0T25DYW5ub3RHcm93
TWVtb3J5KHJlcXVlc3RlZFNpemUpe2Fib3J0KCJPT00iKX1mdW5jdGlvbiBfZW1zY3JpcHRlbl9y
ZXNpemVfaGVhcChyZXF1ZXN0ZWRTaXplKXtyZXF1ZXN0ZWRTaXplPXJlcXVlc3RlZFNpemU+Pj4w
O2Fib3J0T25DYW5ub3RHcm93TWVtb3J5KHJlcXVlc3RlZFNpemUpfXZhciBQQVRIPXtzcGxpdFBh
dGg6ZnVuY3Rpb24oZmlsZW5hbWUpe3ZhciBzcGxpdFBhdGhSZT0vXihcLz98KShbXHNcU10qPyko
KD86XC57MSwyfXxbXlwvXSs/fCkoXC5bXi5cL10qfCkpKD86W1wvXSopJC87cmV0dXJuIHNwbGl0
UGF0aFJlLmV4ZWMoZmlsZW5hbWUpLnNsaWNlKDEpfSxub3JtYWxpemVBcnJheTpmdW5jdGlvbihw
YXJ0cyxhbGxvd0Fib3ZlUm9vdCl7dmFyIHVwPTA7Zm9yKHZhciBpPXBhcnRzLmxlbmd0aC0xO2k+
PTA7aS0tKXt2YXIgbGFzdD1wYXJ0c1tpXTtpZihsYXN0PT09Ii4iKXtwYXJ0cy5zcGxpY2UoaSwx
KX1lbHNlIGlmKGxhc3Q9PT0iLi4iKXtwYXJ0cy5zcGxpY2UoaSwxKTt1cCsrfWVsc2UgaWYodXAp
e3BhcnRzLnNwbGljZShpLDEpO3VwLS19fWlmKGFsbG93QWJvdmVSb290KXtmb3IoO3VwO3VwLS0p
e3BhcnRzLnVuc2hpZnQoIi4uIil9fXJldHVybiBwYXJ0c30sbm9ybWFsaXplOmZ1bmN0aW9uKHBh
dGgpe3ZhciBpc0Fic29sdXRlPXBhdGguY2hhckF0KDApPT09Ii8iLHRyYWlsaW5nU2xhc2g9cGF0
aC5zdWJzdHIoLTEpPT09Ii8iO3BhdGg9UEFUSC5ub3JtYWxpemVBcnJheShwYXRoLnNwbGl0KCIv
IikuZmlsdGVyKGZ1bmN0aW9uKHApe3JldHVybiEhcH0pLCFpc0Fic29sdXRlKS5qb2luKCIvIik7
aWYoIXBhdGgmJiFpc0Fic29sdXRlKXtwYXRoPSIuIn1pZihwYXRoJiZ0cmFpbGluZ1NsYXNoKXtw
YXRoKz0iLyJ9cmV0dXJuKGlzQWJzb2x1dGU/Ii8iOiIiKStwYXRofSxkaXJuYW1lOmZ1bmN0aW9u
KHBhdGgpe3ZhciByZXN1bHQ9UEFUSC5zcGxpdFBhdGgocGF0aCkscm9vdD1yZXN1bHRbMF0sZGly
PXJlc3VsdFsxXTtpZighcm9vdCYmIWRpcil7cmV0dXJuIi4ifWlmKGRpcil7ZGlyPWRpci5zdWJz
dHIoMCxkaXIubGVuZ3RoLTEpfXJldHVybiByb290K2Rpcn0sYmFzZW5hbWU6ZnVuY3Rpb24ocGF0
aCl7aWYocGF0aD09PSIvIilyZXR1cm4iLyI7dmFyIGxhc3RTbGFzaD1wYXRoLmxhc3RJbmRleE9m
KCIvIik7aWYobGFzdFNsYXNoPT09LTEpcmV0dXJuIHBhdGg7cmV0dXJuIHBhdGguc3Vic3RyKGxh
c3RTbGFzaCsxKX0sZXh0bmFtZTpmdW5jdGlvbihwYXRoKXtyZXR1cm4gUEFUSC5zcGxpdFBhdGgo
cGF0aClbM119LGpvaW46ZnVuY3Rpb24oKXt2YXIgcGF0aHM9QXJyYXkucHJvdG90eXBlLnNsaWNl
LmNhbGwoYXJndW1lbnRzLDApO3JldHVybiBQQVRILm5vcm1hbGl6ZShwYXRocy5qb2luKCIvIikp
fSxqb2luMjpmdW5jdGlvbihsLHIpe3JldHVybiBQQVRILm5vcm1hbGl6ZShsKyIvIityKX19O3Zh
ciBTWVNDQUxMUz17bWFwcGluZ3M6e30sYnVmZmVyczpbbnVsbCxbXSxbXV0scHJpbnRDaGFyOmZ1
bmN0aW9uKHN0cmVhbSxjdXJyKXt2YXIgYnVmZmVyPVNZU0NBTExTLmJ1ZmZlcnNbc3RyZWFtXTtp
ZihjdXJyPT09MHx8Y3Vycj09PTEwKXsoc3RyZWFtPT09MT9vdXQ6ZXJyKShVVEY4QXJyYXlUb1N0
cmluZyhidWZmZXIsMCkpO2J1ZmZlci5sZW5ndGg9MH1lbHNle2J1ZmZlci5wdXNoKGN1cnIpfX0s
dmFyYXJnczp1bmRlZmluZWQsZ2V0OmZ1bmN0aW9uKCl7U1lTQ0FMTFMudmFyYXJncys9NDt2YXIg
cmV0PUhFQVAzMltTWVNDQUxMUy52YXJhcmdzLTQ+PjJdO3JldHVybiByZXR9LGdldFN0cjpmdW5j
dGlvbihwdHIpe3ZhciByZXQ9VVRGOFRvU3RyaW5nKHB0cik7cmV0dXJuIHJldH0sZ2V0NjQ6ZnVu
Y3Rpb24obG93LGhpZ2gpe3JldHVybiBsb3d9fTtmdW5jdGlvbiBfZmRfd3JpdGUoZmQsaW92LGlv
dmNudCxwbnVtKXt2YXIgbnVtPTA7Zm9yKHZhciBpPTA7aTxpb3ZjbnQ7aSsrKXt2YXIgcHRyPUhF
QVAzMltpb3YraSo4Pj4yXTt2YXIgbGVuPUhFQVAzMltpb3YrKGkqOCs0KT4+Ml07Zm9yKHZhciBq
PTA7ajxsZW47aisrKXtTWVNDQUxMUy5wcmludENoYXIoZmQsSEVBUFU4W3B0citqXSl9bnVtKz1s
ZW59SEVBUDMyW3BudW0+PjJdPW51bTtyZXR1cm4gMH1mdW5jdGlvbiBfc2V0VGVtcFJldDAoJGkp
e3NldFRlbXBSZXQwKCRpfDApfXZhciBBU1NFUlRJT05TPWZhbHNlO3ZhciBhc21MaWJyYXJ5QXJn
PXsiZW1zY3JpcHRlbl9nZXRfc2Jya19wdHIiOl9lbXNjcmlwdGVuX2dldF9zYnJrX3B0ciwiZW1z
Y3JpcHRlbl9tZW1jcHlfYmlnIjpfZW1zY3JpcHRlbl9tZW1jcHlfYmlnLCJlbXNjcmlwdGVuX3Jl
c2l6ZV9oZWFwIjpfZW1zY3JpcHRlbl9yZXNpemVfaGVhcCwiZmRfd3JpdGUiOl9mZF93cml0ZSwi
bWVtb3J5Ijp3YXNtTWVtb3J5LCJzZXRUZW1wUmV0MCI6X3NldFRlbXBSZXQwLCJ0YWJsZSI6d2Fz
bVRhYmxlfTt2YXIgYXNtPWNyZWF0ZVdhc20oKTtNb2R1bGVbImFzbSJdPWFzbTt2YXIgX19fd2Fz
bV9jYWxsX2N0b3JzPU1vZHVsZVsiX19fd2FzbV9jYWxsX2N0b3JzIl09ZnVuY3Rpb24oKXtyZXR1
cm4oX19fd2FzbV9jYWxsX2N0b3JzPU1vZHVsZVsiX19fd2FzbV9jYWxsX2N0b3JzIl09TW9kdWxl
WyJhc20iXVsiX193YXNtX2NhbGxfY3RvcnMiXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIg
X21haW49TW9kdWxlWyJfbWFpbiJdPWZ1bmN0aW9uKCl7cmV0dXJuKF9tYWluPU1vZHVsZVsiX21h
aW4iXT1Nb2R1bGVbImFzbSJdWyJtYWluIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIF9t
YWxsb2M9TW9kdWxlWyJfbWFsbG9jIl09ZnVuY3Rpb24oKXtyZXR1cm4oX21hbGxvYz1Nb2R1bGVb
Il9tYWxsb2MiXT1Nb2R1bGVbImFzbSJdWyJtYWxsb2MiXSkuYXBwbHkobnVsbCxhcmd1bWVudHMp
fTt2YXIgX19fZXJybm9fbG9jYXRpb249TW9kdWxlWyJfX19lcnJub19sb2NhdGlvbiJdPWZ1bmN0
aW9uKCl7cmV0dXJuKF9fX2Vycm5vX2xvY2F0aW9uPU1vZHVsZVsiX19fZXJybm9fbG9jYXRpb24i
XT1Nb2R1bGVbImFzbSJdWyJfX2Vycm5vX2xvY2F0aW9uIl0pLmFwcGx5KG51bGwsYXJndW1lbnRz
KX07dmFyIF9mcmVlPU1vZHVsZVsiX2ZyZWUiXT1mdW5jdGlvbigpe3JldHVybihfZnJlZT1Nb2R1
bGVbIl9mcmVlIl09TW9kdWxlWyJhc20iXVsiZnJlZSJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9
O3ZhciBzdGFja1NhdmU9TW9kdWxlWyJzdGFja1NhdmUiXT1mdW5jdGlvbigpe3JldHVybihzdGFj
a1NhdmU9TW9kdWxlWyJzdGFja1NhdmUiXT1Nb2R1bGVbImFzbSJdWyJzdGFja1NhdmUiXSkuYXBw
bHkobnVsbCxhcmd1bWVudHMpfTt2YXIgc3RhY2tBbGxvYz1Nb2R1bGVbInN0YWNrQWxsb2MiXT1m
dW5jdGlvbigpe3JldHVybihzdGFja0FsbG9jPU1vZHVsZVsic3RhY2tBbGxvYyJdPU1vZHVsZVsi
YXNtIl1bInN0YWNrQWxsb2MiXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgc3RhY2tSZXN0
b3JlPU1vZHVsZVsic3RhY2tSZXN0b3JlIl09ZnVuY3Rpb24oKXtyZXR1cm4oc3RhY2tSZXN0b3Jl
PU1vZHVsZVsic3RhY2tSZXN0b3JlIl09TW9kdWxlWyJhc20iXVsic3RhY2tSZXN0b3JlIl0pLmFw
cGx5KG51bGwsYXJndW1lbnRzKX07dmFyIF9fZ3Jvd1dhc21NZW1vcnk9TW9kdWxlWyJfX2dyb3dX
YXNtTWVtb3J5Il09ZnVuY3Rpb24oKXtyZXR1cm4oX19ncm93V2FzbU1lbW9yeT1Nb2R1bGVbIl9f
Z3Jvd1dhc21NZW1vcnkiXT1Nb2R1bGVbImFzbSJdWyJfX2dyb3dXYXNtTWVtb3J5Il0pLmFwcGx5
KG51bGwsYXJndW1lbnRzKX07dmFyIGR5bkNhbGxfaWk9TW9kdWxlWyJkeW5DYWxsX2lpIl09ZnVu
Y3Rpb24oKXtyZXR1cm4oZHluQ2FsbF9paT1Nb2R1bGVbImR5bkNhbGxfaWkiXT1Nb2R1bGVbImFz
bSJdWyJkeW5DYWxsX2lpIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIGR5bkNhbGxfaWlp
aT1Nb2R1bGVbImR5bkNhbGxfaWlpaSJdPWZ1bmN0aW9uKCl7cmV0dXJuKGR5bkNhbGxfaWlpaT1N
b2R1bGVbImR5bkNhbGxfaWlpaSJdPU1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaSJdKS5hcHBs
eShudWxsLGFyZ3VtZW50cyl9O3ZhciBkeW5DYWxsX2ppamk9TW9kdWxlWyJkeW5DYWxsX2ppamki
XT1mdW5jdGlvbigpe3JldHVybihkeW5DYWxsX2ppamk9TW9kdWxlWyJkeW5DYWxsX2ppamkiXT1N
b2R1bGVbImFzbSJdWyJkeW5DYWxsX2ppamkiXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtNb2R1
bGVbImFzbSJdPWFzbTt2YXIgY2FsbGVkUnVuO2Z1bmN0aW9uIEV4aXRTdGF0dXMoc3RhdHVzKXt0
aGlzLm5hbWU9IkV4aXRTdGF0dXMiO3RoaXMubWVzc2FnZT0iUHJvZ3JhbSB0ZXJtaW5hdGVkIHdp
dGggZXhpdCgiK3N0YXR1cysiKSI7dGhpcy5zdGF0dXM9c3RhdHVzfXZhciBjYWxsZWRNYWluPWZh
bHNlO2RlcGVuZGVuY2llc0Z1bGZpbGxlZD1mdW5jdGlvbiBydW5DYWxsZXIoKXtpZighY2FsbGVk
UnVuKXJ1bigpO2lmKCFjYWxsZWRSdW4pZGVwZW5kZW5jaWVzRnVsZmlsbGVkPXJ1bkNhbGxlcn07
ZnVuY3Rpb24gY2FsbE1haW4oYXJncyl7dmFyIGVudHJ5RnVuY3Rpb249TW9kdWxlWyJfbWFpbiJd
O2FyZ3M9YXJnc3x8W107dmFyIGFyZ2M9YXJncy5sZW5ndGgrMTt2YXIgYXJndj1zdGFja0FsbG9j
KChhcmdjKzEpKjQpO0hFQVAzMlthcmd2Pj4yXT1hbGxvY2F0ZVVURjhPblN0YWNrKHRoaXNQcm9n
cmFtKTtmb3IodmFyIGk9MTtpPGFyZ2M7aSsrKXtIRUFQMzJbKGFyZ3Y+PjIpK2ldPWFsbG9jYXRl
VVRGOE9uU3RhY2soYXJnc1tpLTFdKX1IRUFQMzJbKGFyZ3Y+PjIpK2FyZ2NdPTA7dHJ5e3ZhciBy
ZXQ9ZW50cnlGdW5jdGlvbihhcmdjLGFyZ3YpO2V4aXQocmV0LHRydWUpfWNhdGNoKGUpe2lmKGUg
aW5zdGFuY2VvZiBFeGl0U3RhdHVzKXtyZXR1cm59ZWxzZSBpZihlPT0idW53aW5kIil7bm9FeGl0
UnVudGltZT10cnVlO3JldHVybn1lbHNle3ZhciB0b0xvZz1lO2lmKGUmJnR5cGVvZiBlPT09Im9i
amVjdCImJmUuc3RhY2spe3RvTG9nPVtlLGUuc3RhY2tdfWVycigiZXhjZXB0aW9uIHRocm93bjog
Iit0b0xvZyk7cXVpdF8oMSxlKX19ZmluYWxseXtjYWxsZWRNYWluPXRydWV9fWZ1bmN0aW9uIHJ1
bihhcmdzKXthcmdzPWFyZ3N8fGFyZ3VtZW50c187aWYocnVuRGVwZW5kZW5jaWVzPjApe3JldHVy
bn1wcmVSdW4oKTtpZihydW5EZXBlbmRlbmNpZXM+MClyZXR1cm47ZnVuY3Rpb24gZG9SdW4oKXtp
ZihjYWxsZWRSdW4pcmV0dXJuO2NhbGxlZFJ1bj10cnVlO01vZHVsZVsiY2FsbGVkUnVuIl09dHJ1
ZTtpZihBQk9SVClyZXR1cm47aW5pdFJ1bnRpbWUoKTtwcmVNYWluKCk7aWYoTW9kdWxlWyJvblJ1
bnRpbWVJbml0aWFsaXplZCJdKU1vZHVsZVsib25SdW50aW1lSW5pdGlhbGl6ZWQiXSgpO2lmKHNo
b3VsZFJ1bk5vdyljYWxsTWFpbihhcmdzKTtwb3N0UnVuKCl9aWYoTW9kdWxlWyJzZXRTdGF0dXMi
XSl7TW9kdWxlWyJzZXRTdGF0dXMiXSgiUnVubmluZy4uLiIpO3NldFRpbWVvdXQoZnVuY3Rpb24o
KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7TW9kdWxlWyJzZXRTdGF0dXMiXSgiIil9LDEpO2RvUnVu
KCl9LDEpfWVsc2V7ZG9SdW4oKX19TW9kdWxlWyJydW4iXT1ydW47ZnVuY3Rpb24gZXhpdChzdGF0
dXMsaW1wbGljaXQpe2lmKGltcGxpY2l0JiZub0V4aXRSdW50aW1lJiZzdGF0dXM9PT0wKXtyZXR1
cm59aWYobm9FeGl0UnVudGltZSl7fWVsc2V7QUJPUlQ9dHJ1ZTtFWElUU1RBVFVTPXN0YXR1cztl
eGl0UnVudGltZSgpO2lmKE1vZHVsZVsib25FeGl0Il0pTW9kdWxlWyJvbkV4aXQiXShzdGF0dXMp
fXF1aXRfKHN0YXR1cyxuZXcgRXhpdFN0YXR1cyhzdGF0dXMpKX1pZihNb2R1bGVbInByZUluaXQi
XSl7aWYodHlwZW9mIE1vZHVsZVsicHJlSW5pdCJdPT0iZnVuY3Rpb24iKU1vZHVsZVsicHJlSW5p
dCJdPVtNb2R1bGVbInByZUluaXQiXV07d2hpbGUoTW9kdWxlWyJwcmVJbml0Il0ubGVuZ3RoPjAp
e01vZHVsZVsicHJlSW5pdCJdLnBvcCgpKCl9fXZhciBzaG91bGRSdW5Ob3c9dHJ1ZTtpZihNb2R1
bGVbIm5vSW5pdGlhbFJ1biJdKXNob3VsZFJ1bk5vdz1mYWxzZTtub0V4aXRSdW50aW1lPXRydWU7
cnVuKCk7CkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS1sYXJnZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS1sYXJn
ZS5qcwkocmV2aXNpb24gMjc5MDA5KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvbWVtY3B5
LXdhc20tbGFyZ2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw1IEBACiAvL0Agc2tpcCBp
ZiAkbW9kZWwgPT0gIkFwcGxlIFdhdGNoIFNlcmllcyAzIiAjIGFkZGVkIGJ5IG1hcmstanNjLXN0
cmVzcy10ZXN0LnB5CisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRXhlY3V0YWJsZUFsbG9jYXRp
b25GdXp6PWZhbHNlIikKIC8vIFNvdXJjZSBpbiB3YXNtL3N0cmVzcy9tZW1jcHktd2FzbQogaWYg
KHR5cGVvZiBXZWJBc3NlbWJseSA9PT0gIm9iamVjdCIpIHsKIApJbmRleDogSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvbWVtY3B5LXdhc20tbWVkaXVtLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL21lbWNweS13YXNtLW1lZGl1bS5qcwkocmV2aXNpb24gMjc5MDA5KQor
KysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvbWVtY3B5LXdhc20tbWVkaXVtLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQgKzEsNSBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBsZSBXYXRj
aCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQorLy9AIHJlcXVp
cmVPcHRpb25zKCItLXVzZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ej1mYWxzZSIpCiAvLyBTb3Vy
Y2UgaW4gd2FzbS9zdHJlc3MvbWVtY3B5LXdhc20KIAogaWYgKHR5cGVvZiBXZWJBc3NlbWJseSA9
PT0gIm9iamVjdCIpIHsKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL21lbWNweS13YXNt
LXNtYWxsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL21lbWNweS13
YXNtLXNtYWxsLmpzCShyZXZpc2lvbiAyNzkwMDkpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJr
cy9tZW1jcHktd2FzbS1zbWFsbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDUgQEAKIC8v
QCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFy
ay1qc2Mtc3RyZXNzLXRlc3QucHkKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VFeGVjdXRhYmxl
QWxsb2NhdGlvbkZ1eno9ZmFsc2UiKQogLy8gU291cmNlIGluIHdhc20vc3RyZXNzL21lbWNweS13
YXNtCiBpZiAodHlwZW9mIFdlYkFzc2VtYmx5ID09PSAib2JqZWN0IikgewogCkluZGV4OiBKU1Rl
c3RzL21pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS5qcwkocmV2aXNpb24gMjc5MDA5KQorKysgSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvbWVtY3B5LXdhc20uanMJKHdvcmtpbmcgY29weSkKQEAgLTEs
NCArMSw1IEBACiAvL0Agc2tpcCBpZiAkbW9kZWwgPT0gIkFwcGxlIFdhdGNoIFNlcmllcyAzIiAj
IGFkZGVkIGJ5IG1hcmstanNjLXN0cmVzcy10ZXN0LnB5CisvL0AgcmVxdWlyZU9wdGlvbnMoIi0t
dXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6PWZhbHNlIikKIC8vIFNvdXJjZSBpbiB3YXNtL3N0
cmVzcy9tZW1jcHktd2FzbQogaWYgKHR5cGVvZiBXZWJBc3NlbWJseSA9PT0gIm9iamVjdCIpIHsK
IApJbmRleDogSlNUZXN0cy9zdHJlc3Mvd2FzbS1lcnJvci1tZXNzYWdlLWNyb3NzLXRocmVhZHMu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3Mvd2FzbS1lcnJvci1tZXNzYWdlLWNyb3Nz
LXRocmVhZHMuanMJKHJldmlzaW9uIDI3OTAwOSkKKysrIEpTVGVzdHMvc3RyZXNzL3dhc20tZXJy
b3ItbWVzc2FnZS1jcm9zcy10aHJlYWRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBA
QAorLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ej1mYWxz
ZSIpCisKIGlmICgkdm0uaXNXYXNtU3VwcG9ydGVkKCkpIHsKICAgICB2YXIgY291bnRlciA9IDA7
CiAgICAgb2JqMSA9IHtbU3ltYm9sLmFzeW5jSXRlcmF0b3JdOlstNC4wLDB4MWUzXSxbU3ltYm9s
LnNlYXJjaF06Wy01LjAsNDI5NDk2NzI5NywtNS4wXSwiY29uc3RydWN0IjpVaW50OENsYW1wZWRB
cnJheS5fX3Byb3RvX18sW1N5bWJvbC5yZXBsYWNlXTpXZWFrU2V0LFtTeW1ib2wuc3BlY2llc106
KCk9Pm51bGwsOTAwNzE5OTI1NDc0MDk5MjpbMCw2NCwibGVuZ3RoIiwsImRlbGV0ZVByb3BlcnR5
IiwyMTQ3NDgzNjQ4LCwic3ltYm9sIiw0Mjk0OTY3Mjk3LCJnZXQiLDEyOCxTeW1ib2wudG9Qcmlt
aXRpdmVdLCJRIjo2fTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc5
MDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDMyIEBACisyMDIxLTA2LTIxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIGppdENvbXBpbGVBbmRTZXRIZXVyaXN0aWNzIHNob3VsZG4ndCByZXR1
cm4gdHJ1ZSB3aGVuIHdlIGZhaWwgdG8gY29tcGlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3Mgc2hvdWxk
IG9ubHkgcmV0dXJuIHRydWUgd2hlbiB3ZSd2ZSBzdWNjZXNzZnVsbHkKKyAgICAgICAgY29tcGls
ZWQgYSBiYXNlbGluZSBKSVQgQ29kZUJsb2NrLiBIb3dldmVyLCB3aXRoIHRoZSByZXdyaXRlIHRv
IHVzaW5nIGEKKyAgICAgICAgdW5pZmllZCBKSVQgd29ya2xpc3QsIHRoZSBjb2RlIHdhcyBjaGFu
Z2VkIHRvIHJldHVybmluZyB0cnVlIHdoZW4gYQorICAgICAgICBjb21waWxhdGlvbiBmaW5pc2hl
ZCwgcmVnYXJkbGVzcyBvZiBpdCBiZWluZyBzdWNjZXNzZnVsIG9yIG5vdC4gVGhpcyBwYXRjaAor
ICAgICAgICBmaXhlcyB0aGF0IGVycm9yLgorICAgICAgICAKKyAgICAgICAgVGhpcyBidWcgd2Fz
IGZvdW5kIGJ5IG91ciBleGlzdGluZyBleGVjdXRhYmxlIGFsbG9jYXRpb24gZnV6emVyLiBUaGF0
IGZ1enplcgorICAgICAgICBvbmx5IHJhbiBhIHNpbmdsZSB0ZXN0IGNhc2UuIFRoaXMgcGF0Y2gg
YWxzbyBpbnRyb2R1Y2VzIGEgbmV3IGZvcm0gb2YgdGhlCisgICAgICAgIGV4ZWN1dGFibGUgZnV6
emVyIHdoZXJlIHdlIGZhaWwgdG8gYWxsb2NhdGUgSklUIGNvZGUgcmFuZG9tbHkuIEFuZCB0aGlz
IHBhdGNoCisgICAgICAgIGFsc28gaG9va3MgdGhhdCBmdXp6ZXIgaW50byBtb3JlIEpTQyBzdHJl
c3MgdGVzdHMuCisKKyAgICAgICAgKiBkZmcvREZHTElDTVBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpMSUNNUGhhc2U6OnJ1bik6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0
aW9uRnV6ei5jcHA6CisgICAgICAgIChKU0M6OmRvRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6aW5n
KToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAocnVuSlNDKToKKyAgICAgICAgKiBsbGlu
dC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpqaXRDb21waWxlQW5k
U2V0SGV1cmlzdGljcyk6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVD
TCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIxLTA2LTE3ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFJlaW1wbGVt
ZW50IEpTQzo6Q2FjaGVQYXlsb2FkIHdpdGhvdXQgRmlsZVN5c3RlbTo6dW5tYXBWaWV3T2ZGaWxl
IGFuZCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YTo6bGVha0hhbmRsZQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAJKHJldmlzaW9uIDI3OTAwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDg5LDkgKzM0ODksOCBAQCBpbnQgcnVuSlNDKGNv
bnN0IENvbW1hbmRMaW5lJiBvcHRpb25zLCBiCiAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrZXIo
dm0pOwogICAgICAgICBpZiAoT3B0aW9uczo6dXNlRXhjZXB0aW9uRnV6eigpKQogICAgICAgICAg
ICAgcHJpbnRmKCJKU0MgRVhDRVBUSU9OIEZVWlo6IGVuY291bnRlcmVkICV1IGNoZWNrcy5cbiIs
IG51bWJlck9mRXhjZXB0aW9uRnV6ekNoZWNrcygpKTsKLSAgICAgICAgYm9vbCBmaXJlQXRFbmFi
bGVkID0KLSAgICAgICAgT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ekF0KCkg
fHwgT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ekF0T3JBZnRlcigpOwotICAg
ICAgICBpZiAoT3B0aW9uczo6dXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6KCkgJiYgKCFmaXJl
QXRFbmFibGVkIHx8IE9wdGlvbnM6OnZlcmJvc2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enooKSkp
CisgICAgICAgIGJvb2wgZmlyZUF0RW5hYmxlZCA9IE9wdGlvbnM6OmZpcmVFeGVjdXRhYmxlQWxs
b2NhdGlvbkZ1enpBdCgpIHx8IE9wdGlvbnM6OmZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpB
dE9yQWZ0ZXIoKTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VFeGVjdXRhYmxlQWxsb2Nh
dGlvbkZ1enooKSAmJiBPcHRpb25zOjp1c2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enooKSAmJiAh
ZmlyZUF0RW5hYmxlZCkKICAgICAgICAgICAgIHByaW50ZigiSlNDIEVYRUNVVEFCTEUgQUxMT0NB
VElPTiBGVVpaOiBlbmNvdW50ZXJlZCAldSBjaGVja3MuXG4iLCBudW1iZXJPZkV4ZWN1dGFibGVB
bGxvY2F0aW9uRnV6ekNoZWNrcygpKTsKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZU9TUkV4aXRG
dXp6KCkgJiYgT3B0aW9uczo6dmVyYm9zZU9TUkV4aXRGdXp6KCkpIHsKICAgICAgICAgICAgIHBy
aW50ZigiSlNDIE9TUiBFWElUIEZVWlo6IGVuY291bnRlcmVkICV1IHN0YXRpYyBjaGVja3MuXG4i
LCBudW1iZXJPZlN0YXRpY09TUkV4aXRGdXp6Q2hlY2tzKCkpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdMSUNNUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTElDTVBoYXNlLmNwcAkocmV2aXNpb24gMjc5MDA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMSUNNUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTgsOSArMjE4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHN0YWNrSW5kZXggPSBsb29wU3RhY2suc2l6ZSgp
OyBzdGFja0luZGV4LS07KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRp
b25zOjp1c2VMSUNNRnV6emluZygpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rl
eHByIGRvdWJsZSByYW5nZSA9IHN0YXRpY19jYXN0PGRvdWJsZT4oc3RkOjpudW1lcmljX2xpbWl0
czx1aW50MzJfdD46Om1heCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGZs
b29yID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KCgxLjAgLSBPcHRpb25zOjphbGxvd0hvaXN0aW5n
TElDTVByb2JhYmlsaXR5KCkpICogcmFuZ2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCBzaG91bGRBdHRlbXB0SG9pc3QgPSByYW5kb20uZ2V0VWludDMyKCkgPj0gZmxvb3I7CisgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZEF0dGVtcHRIb2lzdCA9IHJhbmRvbS5yZXR1
cm5UcnVlV2l0aFByb2JhYmlsaXR5KE9wdGlvbnM6OmFsbG93SG9pc3RpbmdMSUNNUHJvYmFiaWxp
dHkoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZEF0dGVtcHRIb2lzdCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdGlv
bkZ1enouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0
YWJsZUFsbG9jYXRpb25GdXp6LmNwcAkocmV2aXNpb24gMjc5MDA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MSw2ICs0MSwyMiBAQCB1bnNpZ25lZCBudW1iZXJPZkV4ZWN1dGFibGVBbGxvY2F0aW9u
RnV6CiBFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpSZXN1bHQgZG9FeGVjdXRhYmxlQWxsb2NhdGlv
bkZ1enppbmcoKQogewogICAgIEFTU0VSVChPcHRpb25zOjp1c2VFeGVjdXRhYmxlQWxsb2NhdGlv
bkZ1enooKSk7CisKKyAgICBpZiAoT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6
elJhbmRvbWx5KCkpIHsKKyAgICAgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxXZWFrUmFu
ZG9tPiByYW5kb207CisgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAgICAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSAoKSB7CisgICAgICAgICAgICByYW5kb20uY29uc3Ry
dWN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIHN0YXRpYyBMb2NrIGZ1enppbmdMb2NrOwor
ICAgICAgICBMb2NrZXIgbG9ja2VyIHsgZnV6emluZ0xvY2sgfTsKKyAgICAgICAgCisgICAgICAg
IGlmIChyYW5kb20tPnJldHVyblRydWVXaXRoUHJvYmFiaWxpdHkoT3B0aW9uczo6ZmlyZUV4ZWN1
dGFibGVBbGxvY2F0aW9uRnV6elJhbmRvbWx5UHJvYmFiaWxpdHkoKSkpCisgICAgICAgICAgICBy
ZXR1cm4gUHJldGVuZFRvRmFpbEV4ZWN1dGFibGVBbGxvY2F0aW9uOworCisgICAgICAgIHJldHVy
biBBbGxvd05vcm1hbEV4ZWN1dGFibGVBbGxvY2F0aW9uOworICAgIH0KICAgICAKICAgICB1bnNp
Z25lZCBvbGRWYWx1ZTsKICAgICB1bnNpZ25lZCBuZXdWYWx1ZTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjc5MDA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzc4LDcgKzM3OCw3IEBAIGlubGluZSBib29sIGppdENvbXBpbGVBbmRT
ZXRIZXVyaXN0aWNzKFYKICAgICAKICAgICBKSVRXb3JrbGlzdDo6U3RhdGUgd29ya2xpc3RTdGF0
ZSA9IEpJVFdvcmtsaXN0OjplbnN1cmVHbG9iYWxXb3JrbGlzdCgpLmNvbXBsZXRlQWxsUmVhZHlQ
bGFuc0ZvclZNKHZtLCBKSVRDb21waWxhdGlvbktleShjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9u
TW9kZTo6QmFzZWxpbmUpKTsKIAotICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRU
eXBlOjpCYXNlbGluZUpJVCB8fCB3b3JrbGlzdFN0YXRlID09IEpJVFdvcmtsaXN0OjpDb21waWxl
ZCkgeworICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJ
VCkgewogICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICIgICAgQ29k
ZSB3YXMgYWxyZWFkeSBjb21waWxlZC4iKTsKICAgICAgICAgY29kZUJsb2NrLT5qaXRTb29uKCk7
CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDgzLDcgKzQ4Myw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKGxvb3Bfb3NyKQogICAgIAogICAgIENPREVCTE9DS19MT0dfRVZFTlQoY29kZUJsb2Nr
LCAib3NyRW50cnkiLCAoImF0ICIsIGxvb3BPU1JFbnRyeUJ5dGVjb2RlSW5kZXgpKTsKIAotICAg
IEFTU0VSVChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCk7Cisg
ICAgUkVMRUFTRV9BU1NFUlQoY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6QmFzZWxp
bmVKSVQpOwogCiAgICAgY29uc3QgSklUQ29kZU1hcCYgY29kZU1hcCA9IGNvZGVCbG9jay0+aml0
Q29kZU1hcCgpOwogICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+IGNvZGVMb2Nh
dGlvbiA9IGNvZGVNYXAuZmluZChsb29wT1NSRW50cnlCeXRlY29kZUluZGV4KTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAkocmV2aXNpb24gMjc5
MDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMzkzLDYgKzM5Myw4IEBAIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgY2Fu
VXNlSklUQ2FnZSgpOwogICAgIHYoQm9vbCwgdXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6LCBm
YWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihVbnNpZ25lZCwgZmlyZUV4ZWN1dGFibGVB
bGxvY2F0aW9uRnV6ekF0LCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KFVuc2lnbmVkLCBm
aXJlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6QXRPckFmdGVyLCAwLCBOb3JtYWwsIG51bGxwdHIp
IFwKKyAgICB2KEJvb2wsIGZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpSYW5kb21seSwgZmFs
c2UsIE5vcm1hbCwgbnVsbHB0cikgXAorICAgIHYoRG91YmxlLCBmaXJlRXhlY3V0YWJsZUFsbG9j
YXRpb25GdXp6UmFuZG9tbHlQcm9iYWJpbGl0eSwgMC4xLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KEJvb2wsIHZlcmJvc2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enosIGZhbHNlLCBOb3JtYWws
IG51bGxwdHIpIFwKICAgICBcCiAgICAgdihCb29sLCB1c2VPU1JFeGl0RnV6eiwgZmFsc2UsIE5v
cm1hbCwgbnVsbHB0cikgXApJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTAwOSkKKysrIFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDYtMjEgIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgaml0Q29tcGlsZUFuZFNl
dEhldXJpc3RpY3Mgc2hvdWxkbid0IHJldHVybiB0cnVlIHdoZW4gd2UgZmFpbCB0byBjb21waWxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxNTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9X
ZWFrUmFuZG9tLmg6CisKIDIwMjEtMDYtMTcgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIE1hYy1zcGVjaWZpYyBDUFVUaW1lIGZ1bmN0aW9ucwpJbmRleDogU291
cmNlL1dURi93dGYvV2Vha1JhbmRvbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1dl
YWtSYW5kb20uaAkocmV2aXNpb24gMjc5MDA5KQorKysgU291cmNlL1dURi93dGYvV2Vha1JhbmRv
bS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSwxOSBAQCBwdWJsaWM6CiAgICAgICAgIH0K
ICAgICB9CiAKKyAgICBib29sIHJldHVyblRydWVXaXRoUHJvYmFiaWxpdHkoZG91YmxlIHByb2Jh
YmlsaXR5KQorICAgIHsKKyAgICAgICAgQVNTRVJUKDAuMCA8PSBwcm9iYWJpbGl0eSAmJiBwcm9i
YWJpbGl0eSA8PSAxLjApOworCisgICAgICAgIGlmICghcHJvYmFiaWxpdHkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZG91YmxlIHZhbHVlID0gZ2V0VWludDMyKCk7Cisg
ICAgICAgIGlmICh2YWx1ZSA8PSBzdGF0aWNfY2FzdDxkb3VibGU+KHN0ZDo6bnVtZXJpY19saW1p
dHM8dW5zaWduZWQ+OjptYXgoKSkgKiBwcm9iYWJpbGl0eSkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgc3RhdGljIHVuc2lnbmVk
IGxvd09mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihXZWFrUmFuZG9tLCBtX2xvdyk7
IH0KICAgICBzdGF0aWMgdW5zaWduZWQgaGlnaE9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihXZWFrUmFuZG9tLCBtX2hpZ2gpOyB9CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTA4NykKKysrIFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA2LTIxICBTYWFt
IEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIGppdENvbXBpbGVBbmRTZXRI
ZXVyaXN0aWNzIHNob3VsZG4ndCByZXR1cm4gdHJ1ZSB3aGVuIHdlIGZhaWwgdG8gY29tcGlsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MTU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIxLTA2LTIxICBLYXRlIENoZW5leSAgPGthdGhl
cmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgQXBwIFByaXZhY3kgUmVw
b3J0IGNvZGUgZnJvbSBXZWJLaXRBZGRpdGlvbnMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWpz
Yy1zdHJlc3MtdGVzdHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVz
cy10ZXN0cwkocmV2aXNpb24gMjc5MDA5KQorKysgVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVz
cy10ZXN0cwkod29ya2luZyBjb3B5KQpAQCAtNTU2LDYgKzU1Niw3IEBAIEIzTzFfT1BUSU9OUyA9
IFsiLS1kZWZhdWx0QjNPcHRMZXZlbD0xIl0KIEIzTzBfT1BUSU9OUyA9IFsiLS1tYXhERkdOb2Rl
c0luQmFzaWNCbG9ja0ZvclByZWNpc2VBbmFseXNpcz0xMDAiLCAiLS1kZWZhdWx0QjNPcHRMZXZl
bD0wIl0KIEZUTF9PUFRJT05TID0gWyItLXVzZUZUTEpJVD10cnVlIl0KIEZPUkNFX0xMSU5UX0VY
SVRfT1BUSU9OUyA9IFsiLS1mb3JjZU9TUkV4aXRUb0xMSW50PXRydWUiXQorRVhFQ1VUQUJMRV9G
VVpaRVJfT1BUSU9OUyA9IFsiLS11c2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1eno9dHJ1ZSIsICIt
LWZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpSYW5kb21seT10cnVlIl0KIAogcmVxdWlyZV9y
ZWxhdGl2ZSAid2Via2l0cnVieS9qc2Mtc3RyZXNzLXRlc3Qtd3JpdGVyLSN7JHRlc3RXcml0ZXJ9
IgogCkBAIC04MjgsNyArODI5LDcgQEAgZGVmIHJ1bkZUTEVhZ2VyV2F0Y2hkb2coKm9wdGlvbmFs
VGVzdFNwZQogZW5kCiAKIGRlZiBydW5GVExFYWdlck5vQ0pJVFZhbGlkYXRlKCpvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpCi0gICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdCIsICItLXZhbGlk
YXRlR3JhcGg9dHJ1ZSIsICItLXZhbGlkYXRlQkNFPXRydWUiLCAiLS1haXJGb3JjZUlSQ0FsbG9j
YXRvcj10cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUyArIEVBR0VSX09QVElP
TlMgKyBDT0xMRUNUX0NPTlRJTlVPVVNMWV9PUFRJT05TICsgRk9SQ0VfTExJTlRfRVhJVF9PUFRJ
T05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICBydW4oImZ0bC1lYWdlci1u
by1jaml0IiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwgIi0tdmFsaWRhdGVCQ0U9dHJ1ZSIsICIt
LWFpckZvcmNlSVJDQWxsb2NhdG9yPXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJ
T05TICsgRUFHRVJfT1BUSU9OUyArIENPTExFQ1RfQ09OVElOVU9VU0xZX09QVElPTlMgKyBGT1JD
RV9MTElOVF9FWElUX09QVElPTlMgKyBFWEVDVVRBQkxFX0ZVWlpFUl9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRCM08x
KCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCg==
</data>
<flag name="review"
          id="453819"
          type_id="1"
          status="+"
          setter="tzagallo"
    />
    <flag name="commit-queue"
          id="453824"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431930</attachid>
            <date>2021-06-21 16:50:42 -0700</date>
            <delta_ts>2021-06-22 10:48:52 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>37586</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzkwMDkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTA2LTIxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIGppdENvbXBpbGVBbmRTZXRIZXVyaXN0aWNzIHNob3VsZG4ndCByZXR1
cm4gdHJ1ZSB3aGVuIHdlIGZhaWwgdG8gY29tcGlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGFk
ZXUgWmFnYWxsby4KKworICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9pbnRlcnByZXRlci13YXNt
LmpzOgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS1sYXJnZS5qczoKKyAg
ICAgICAgKiBtaWNyb2JlbmNobWFya3MvbWVtY3B5LXdhc20tbWVkaXVtLmpzOgorICAgICAgICAq
IG1pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS1zbWFsbC5qczoKKyAgICAgICAgKiBtaWNyb2Jl
bmNobWFya3MvbWVtY3B5LXdhc20uanM6CisgICAgICAgICogc3RyZXNzL3dhc20tZXJyb3ItbWVz
c2FnZS1jcm9zcy10aHJlYWRzLmpzOgorCiAyMDIxLTA2LTE2ICBUYWRldSBaYWdhbGxvICA8dHph
Z2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VtYmx5SGVscGVycyBzaG91bGQgc2F2ZS9y
ZXN0b3JlIGNhbGxlZSBzYXZlIEZQUnMKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2lu
dGVycHJldGVyLXdhc20uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
aW50ZXJwcmV0ZXItd2FzbS5qcwkocmV2aXNpb24gMjc5MDA5KQorKysgSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvaW50ZXJwcmV0ZXItd2FzbS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwyICsxLDMg
QEAKIC8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIgb3IgJGFyY2hpdGVjdHVyZSA9
PSAibWlwcyIgb3IgJG1vZGVsID1+IC9BcHBsZSBXYXRjaC8KKy8vQCByZXF1aXJlT3B0aW9ucygi
LS11c2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1eno9ZmFsc2UiKQogdmFyIE1vZHVsZT10eXBlb2Yg
TW9kdWxlIT09InVuZGVmaW5lZCI/TW9kdWxlOnt9O3ZhciBtb2R1bGVPdmVycmlkZXM9e307dmFy
IGtleTtmb3Ioa2V5IGluIE1vZHVsZSl7aWYoTW9kdWxlLmhhc093blByb3BlcnR5KGtleSkpe21v
ZHVsZU92ZXJyaWRlc1trZXldPU1vZHVsZVtrZXldfX12YXIgYXJndW1lbnRzXz1bXTt2YXIgdGhp
c1Byb2dyYW09Ii4vdGhpcy5wcm9ncmFtIjt2YXIgcXVpdF89ZnVuY3Rpb24oc3RhdHVzLHRvVGhy
b3cpe3Rocm93IHRvVGhyb3d9O3ZhciBFTlZJUk9OTUVOVF9JU19XRUI9ZmFsc2U7dmFyIEVOVklS
T05NRU5UX0lTX1dPUktFUj1mYWxzZTt2YXIgRU5WSVJPTk1FTlRfSVNfTk9ERT1mYWxzZTt2YXIg
RU5WSVJPTk1FTlRfSVNfU0hFTEw9ZmFsc2U7RU5WSVJPTk1FTlRfSVNfV0VCPXR5cGVvZiB3aW5k
b3c9PT0ib2JqZWN0IjtFTlZJUk9OTUVOVF9JU19XT1JLRVI9dHlwZW9mIGltcG9ydFNjcmlwdHM9
PT0iZnVuY3Rpb24iO0VOVklST05NRU5UX0lTX05PREU9dHlwZW9mIHByb2Nlc3M9PT0ib2JqZWN0
IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM9PT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVy
c2lvbnMubm9kZT09PSJzdHJpbmciO0VOVklST05NRU5UX0lTX1NIRUxMPSFFTlZJUk9OTUVOVF9J
U19XRUImJiFFTlZJUk9OTUVOVF9JU19OT0RFJiYhRU5WSVJPTk1FTlRfSVNfV09SS0VSO3ZhciBz
Y3JpcHREaXJlY3Rvcnk9IiI7ZnVuY3Rpb24gbG9jYXRlRmlsZShwYXRoKXtpZihNb2R1bGVbImxv
Y2F0ZUZpbGUiXSl7cmV0dXJuIE1vZHVsZVsibG9jYXRlRmlsZSJdKHBhdGgsc2NyaXB0RGlyZWN0
b3J5KX1yZXR1cm4gc2NyaXB0RGlyZWN0b3J5K3BhdGh9dmFyIHJlYWRfLHJlYWRBc3luYyxyZWFk
QmluYXJ5LHNldFdpbmRvd1RpdGxlO3ZhciBub2RlRlM7dmFyIG5vZGVQYXRoO2lmKEVOVklST05N
RU5UX0lTX05PREUpe2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7c2NyaXB0RGlyZWN0b3J5PXJl
cXVpcmUoInBhdGgiKS5kaXJuYW1lKHNjcmlwdERpcmVjdG9yeSkrIi8ifWVsc2V7c2NyaXB0RGly
ZWN0b3J5PV9fZGlybmFtZSsiLyJ9cmVhZF89ZnVuY3Rpb24gc2hlbGxfcmVhZChmaWxlbmFtZSxi
aW5hcnkpe2lmKCFub2RlRlMpbm9kZUZTPXJlcXVpcmUoImZzIik7aWYoIW5vZGVQYXRoKW5vZGVQ
YXRoPXJlcXVpcmUoInBhdGgiKTtmaWxlbmFtZT1ub2RlUGF0aFsibm9ybWFsaXplIl0oZmlsZW5h
bWUpO3JldHVybiBub2RlRlNbInJlYWRGaWxlU3luYyJdKGZpbGVuYW1lLGJpbmFyeT9udWxsOiJ1
dGY4Iil9O3JlYWRCaW5hcnk9ZnVuY3Rpb24gcmVhZEJpbmFyeShmaWxlbmFtZSl7dmFyIHJldD1y
ZWFkXyhmaWxlbmFtZSx0cnVlKTtpZighcmV0LmJ1ZmZlcil7cmV0PW5ldyBVaW50OEFycmF5KHJl
dCl9YXNzZXJ0KHJldC5idWZmZXIpO3JldHVybiByZXR9O2lmKHByb2Nlc3NbImFyZ3YiXS5sZW5n
dGg+MSl7dGhpc1Byb2dyYW09cHJvY2Vzc1siYXJndiJdWzFdLnJlcGxhY2UoL1xcL2csIi8iKX1h
cmd1bWVudHNfPXByb2Nlc3NbImFyZ3YiXS5zbGljZSgyKTtpZih0eXBlb2YgbW9kdWxlIT09InVu
ZGVmaW5lZCIpe21vZHVsZVsiZXhwb3J0cyJdPU1vZHVsZX1wcm9jZXNzWyJvbiJdKCJ1bmNhdWdo
dEV4Y2VwdGlvbiIsZnVuY3Rpb24oZXgpe2lmKCEoZXggaW5zdGFuY2VvZiBFeGl0U3RhdHVzKSl7
dGhyb3cgZXh9fSk7cHJvY2Vzc1sib24iXSgidW5oYW5kbGVkUmVqZWN0aW9uIixhYm9ydCk7cXVp
dF89ZnVuY3Rpb24oc3RhdHVzKXtwcm9jZXNzWyJleGl0Il0oc3RhdHVzKX07TW9kdWxlWyJpbnNw
ZWN0Il09ZnVuY3Rpb24oKXtyZXR1cm4iW0Vtc2NyaXB0ZW4gTW9kdWxlIG9iamVjdF0ifX1lbHNl
IGlmKEVOVklST05NRU5UX0lTX1NIRUxMKXtpZih0eXBlb2YgcmVhZCE9InVuZGVmaW5lZCIpe3Jl
YWRfPWZ1bmN0aW9uIHNoZWxsX3JlYWQoZil7cmV0dXJuIHJlYWQoZil9fXJlYWRCaW5hcnk9ZnVu
Y3Rpb24gcmVhZEJpbmFyeShmKXt2YXIgZGF0YTtpZih0eXBlb2YgcmVhZGJ1ZmZlcj09PSJmdW5j
dGlvbiIpe3JldHVybiBuZXcgVWludDhBcnJheShyZWFkYnVmZmVyKGYpKX1kYXRhPXJlYWQoZiwi
YmluYXJ5Iik7YXNzZXJ0KHR5cGVvZiBkYXRhPT09Im9iamVjdCIpO3JldHVybiBkYXRhfTtpZih0
eXBlb2Ygc2NyaXB0QXJncyE9InVuZGVmaW5lZCIpe2FyZ3VtZW50c189c2NyaXB0QXJnc31lbHNl
IGlmKHR5cGVvZiBhcmd1bWVudHMhPSJ1bmRlZmluZWQiKXthcmd1bWVudHNfPWFyZ3VtZW50c31p
Zih0eXBlb2YgcXVpdD09PSJmdW5jdGlvbiIpe3F1aXRfPWZ1bmN0aW9uKHN0YXR1cyl7cXVpdChz
dGF0dXMpfX1pZih0eXBlb2YgcHJpbnQhPT0idW5kZWZpbmVkIil7aWYodHlwZW9mIGNvbnNvbGU9
PT0idW5kZWZpbmVkIiljb25zb2xlPXt9O2NvbnNvbGUubG9nPXByaW50O2NvbnNvbGUud2Fybj1j
b25zb2xlLmVycm9yPXR5cGVvZiBwcmludEVyciE9PSJ1bmRlZmluZWQiP3ByaW50RXJyOnByaW50
fX1lbHNlIGlmKEVOVklST05NRU5UX0lTX1dFQnx8RU5WSVJPTk1FTlRfSVNfV09SS0VSKXtpZihF
TlZJUk9OTUVOVF9JU19XT1JLRVIpe3NjcmlwdERpcmVjdG9yeT1zZWxmLmxvY2F0aW9uLmhyZWZ9
ZWxzZSBpZihkb2N1bWVudC5jdXJyZW50U2NyaXB0KXtzY3JpcHREaXJlY3Rvcnk9ZG9jdW1lbnQu
Y3VycmVudFNjcmlwdC5zcmN9aWYoc2NyaXB0RGlyZWN0b3J5LmluZGV4T2YoImJsb2I6IikhPT0w
KXtzY3JpcHREaXJlY3Rvcnk9c2NyaXB0RGlyZWN0b3J5LnN1YnN0cigwLHNjcmlwdERpcmVjdG9y
eS5sYXN0SW5kZXhPZigiLyIpKzEpfWVsc2V7c2NyaXB0RGlyZWN0b3J5PSIifXtyZWFkXz1mdW5j
dGlvbiBzaGVsbF9yZWFkKHVybCl7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3Q7eGhyLm9wZW4o
IkdFVCIsdXJsLGZhbHNlKTt4aHIuc2VuZChudWxsKTtyZXR1cm4geGhyLnJlc3BvbnNlVGV4dH07
aWYoRU5WSVJPTk1FTlRfSVNfV09SS0VSKXtyZWFkQmluYXJ5PWZ1bmN0aW9uIHJlYWRCaW5hcnko
dXJsKXt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3BlbigiR0VUIix1cmwsZmFsc2Up
O3hoci5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIjt4aHIuc2VuZChudWxsKTtyZXR1cm4gbmV3
IFVpbnQ4QXJyYXkoeGhyLnJlc3BvbnNlKX19cmVhZEFzeW5jPWZ1bmN0aW9uIHJlYWRBc3luYyh1
cmwsb25sb2FkLG9uZXJyb3Ipe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJH
RVQiLHVybCx0cnVlKTt4aHIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciI7eGhyLm9ubG9hZD1m
dW5jdGlvbiB4aHJfb25sb2FkKCl7aWYoeGhyLnN0YXR1cz09MjAwfHx4aHIuc3RhdHVzPT0wJiZ4
aHIucmVzcG9uc2Upe29ubG9hZCh4aHIucmVzcG9uc2UpO3JldHVybn1vbmVycm9yKCl9O3hoci5v
bmVycm9yPW9uZXJyb3I7eGhyLnNlbmQobnVsbCl9fXNldFdpbmRvd1RpdGxlPWZ1bmN0aW9uKHRp
dGxlKXtkb2N1bWVudC50aXRsZT10aXRsZX19ZWxzZXt9dmFyIG91dD1Nb2R1bGVbInByaW50Il18
fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7dmFyIGVycj1Nb2R1bGVbInByaW50RXJyIl18fGNv
bnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO2ZvcihrZXkgaW4gbW9kdWxlT3ZlcnJpZGVzKXtpZiht
b2R1bGVPdmVycmlkZXMuaGFzT3duUHJvcGVydHkoa2V5KSl7TW9kdWxlW2tleV09bW9kdWxlT3Zl
cnJpZGVzW2tleV19fW1vZHVsZU92ZXJyaWRlcz1udWxsO2lmKE1vZHVsZVsiYXJndW1lbnRzIl0p
YXJndW1lbnRzXz1Nb2R1bGVbImFyZ3VtZW50cyJdO2lmKE1vZHVsZVsidGhpc1Byb2dyYW0iXSl0
aGlzUHJvZ3JhbT1Nb2R1bGVbInRoaXNQcm9ncmFtIl07aWYoTW9kdWxlWyJxdWl0Il0pcXVpdF89
TW9kdWxlWyJxdWl0Il07dmFyIFNUQUNLX0FMSUdOPTE2O2Z1bmN0aW9uIGR5bmFtaWNBbGxvYyhz
aXplKXt2YXIgcmV0PUhFQVAzMltEWU5BTUlDVE9QX1BUUj4+Ml07dmFyIGVuZD1yZXQrc2l6ZSsx
NSYtMTY7SEVBUDMyW0RZTkFNSUNUT1BfUFRSPj4yXT1lbmQ7cmV0dXJuIHJldH1mdW5jdGlvbiBn
ZXROYXRpdmVUeXBlU2l6ZSh0eXBlKXtzd2l0Y2godHlwZSl7Y2FzZSJpMSI6Y2FzZSJpOCI6cmV0
dXJuIDE7Y2FzZSJpMTYiOnJldHVybiAyO2Nhc2UiaTMyIjpyZXR1cm4gNDtjYXNlImk2NCI6cmV0
dXJuIDg7Y2FzZSJmbG9hdCI6cmV0dXJuIDQ7Y2FzZSJkb3VibGUiOnJldHVybiA4O2RlZmF1bHQ6
e2lmKHR5cGVbdHlwZS5sZW5ndGgtMV09PT0iKiIpe3JldHVybiA0fWVsc2UgaWYodHlwZVswXT09
PSJpIil7dmFyIGJpdHM9TnVtYmVyKHR5cGUuc3Vic3RyKDEpKTthc3NlcnQoYml0cyU4PT09MCwi
Z2V0TmF0aXZlVHlwZVNpemUgaW52YWxpZCBiaXRzICIrYml0cysiLCB0eXBlICIrdHlwZSk7cmV0
dXJuIGJpdHMvOH1lbHNle3JldHVybiAwfX19fWZ1bmN0aW9uIHdhcm5PbmNlKHRleHQpe2lmKCF3
YXJuT25jZS5zaG93bil3YXJuT25jZS5zaG93bj17fTtpZighd2Fybk9uY2Uuc2hvd25bdGV4dF0p
e3dhcm5PbmNlLnNob3duW3RleHRdPTE7ZXJyKHRleHQpfX1mdW5jdGlvbiBjb252ZXJ0SnNGdW5j
dGlvblRvV2FzbShmdW5jLHNpZyl7aWYodHlwZW9mIFdlYkFzc2VtYmx5LkZ1bmN0aW9uPT09ImZ1
bmN0aW9uIil7dmFyIHR5cGVOYW1lcz17ImkiOiJpMzIiLCJqIjoiaTY0IiwiZiI6ImYzMiIsImQi
OiJmNjQifTt2YXIgdHlwZT17cGFyYW1ldGVyczpbXSxyZXN1bHRzOnNpZ1swXT09InYiP1tdOlt0
eXBlTmFtZXNbc2lnWzBdXV19O2Zvcih2YXIgaT0xO2k8c2lnLmxlbmd0aDsrK2kpe3R5cGUucGFy
YW1ldGVycy5wdXNoKHR5cGVOYW1lc1tzaWdbaV1dKX1yZXR1cm4gbmV3IFdlYkFzc2VtYmx5LkZ1
bmN0aW9uKHR5cGUsZnVuYyl9dmFyIHR5cGVTZWN0aW9uPVsxLDAsMSw5Nl07dmFyIHNpZ1JldD1z
aWcuc2xpY2UoMCwxKTt2YXIgc2lnUGFyYW09c2lnLnNsaWNlKDEpO3ZhciB0eXBlQ29kZXM9eyJp
IjoxMjcsImoiOjEyNiwiZiI6MTI1LCJkIjoxMjR9O3R5cGVTZWN0aW9uLnB1c2goc2lnUGFyYW0u
bGVuZ3RoKTtmb3IodmFyIGk9MDtpPHNpZ1BhcmFtLmxlbmd0aDsrK2kpe3R5cGVTZWN0aW9uLnB1
c2godHlwZUNvZGVzW3NpZ1BhcmFtW2ldXSl9aWYoc2lnUmV0PT0idiIpe3R5cGVTZWN0aW9uLnB1
c2goMCl9ZWxzZXt0eXBlU2VjdGlvbj10eXBlU2VjdGlvbi5jb25jYXQoWzEsdHlwZUNvZGVzW3Np
Z1JldF1dKX10eXBlU2VjdGlvblsxXT10eXBlU2VjdGlvbi5sZW5ndGgtMjt2YXIgYnl0ZXM9bmV3
IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwXS5jb25jYXQodHlwZVNlY3Rpb24sWzIs
NywxLDEsMTAxLDEsMTAyLDAsMCw3LDUsMSwxLDEwMiwwLDBdKSk7dmFyIG1vZHVsZT1uZXcgV2Vi
QXNzZW1ibHkuTW9kdWxlKGJ5dGVzKTt2YXIgaW5zdGFuY2U9bmV3IFdlYkFzc2VtYmx5Lkluc3Rh
bmNlKG1vZHVsZSx7ImUiOnsiZiI6ZnVuY319KTt2YXIgd3JhcHBlZEZ1bmM9aW5zdGFuY2UuZXhw
b3J0c1siZiJdO3JldHVybiB3cmFwcGVkRnVuY312YXIgZnJlZVRhYmxlSW5kZXhlcz1bXTt2YXIg
ZnVuY3Rpb25zSW5UYWJsZU1hcDtmdW5jdGlvbiBhZGRGdW5jdGlvbldhc20oZnVuYyxzaWcpe3Zh
ciB0YWJsZT13YXNtVGFibGU7aWYoIWZ1bmN0aW9uc0luVGFibGVNYXApe2Z1bmN0aW9uc0luVGFi
bGVNYXA9bmV3IFdlYWtNYXA7Zm9yKHZhciBpPTA7aTx0YWJsZS5sZW5ndGg7aSsrKXt2YXIgaXRl
bT10YWJsZS5nZXQoaSk7aWYoaXRlbSl7ZnVuY3Rpb25zSW5UYWJsZU1hcC5zZXQoaXRlbSxpKX19
fWlmKGZ1bmN0aW9uc0luVGFibGVNYXAuaGFzKGZ1bmMpKXtyZXR1cm4gZnVuY3Rpb25zSW5UYWJs
ZU1hcC5nZXQoZnVuYyl9dmFyIHJldDtpZihmcmVlVGFibGVJbmRleGVzLmxlbmd0aCl7cmV0PWZy
ZWVUYWJsZUluZGV4ZXMucG9wKCl9ZWxzZXtyZXQ9dGFibGUubGVuZ3RoO3RyeXt0YWJsZS5ncm93
KDEpfWNhdGNoKGVycil7aWYoIShlcnIgaW5zdGFuY2VvZiBSYW5nZUVycm9yKSl7dGhyb3cgZXJy
fXRocm93IlVuYWJsZSB0byBncm93IHdhc20gdGFibGUuIFNldCBBTExPV19UQUJMRV9HUk9XVEgu
In19dHJ5e3RhYmxlLnNldChyZXQsZnVuYyl9Y2F0Y2goZXJyKXtpZighKGVyciBpbnN0YW5jZW9m
IFR5cGVFcnJvcikpe3Rocm93IGVycn12YXIgd3JhcHBlZD1jb252ZXJ0SnNGdW5jdGlvblRvV2Fz
bShmdW5jLHNpZyk7dGFibGUuc2V0KHJldCx3cmFwcGVkKX1mdW5jdGlvbnNJblRhYmxlTWFwLnNl
dChmdW5jLHJldCk7cmV0dXJuIHJldH1mdW5jdGlvbiByZW1vdmVGdW5jdGlvbldhc20oaW5kZXgp
e2Z1bmN0aW9uc0luVGFibGVNYXAuZGVsZXRlKHdhc21UYWJsZS5nZXQoaW5kZXgpKTtmcmVlVGFi
bGVJbmRleGVzLnB1c2goaW5kZXgpfXZhciBmdW5jV3JhcHBlcnM9e307ZnVuY3Rpb24gZHluQ2Fs
bChzaWcscHRyLGFyZ3Mpe2lmKGFyZ3MmJmFyZ3MubGVuZ3RoKXtyZXR1cm4gTW9kdWxlWyJkeW5D
YWxsXyIrc2lnXS5hcHBseShudWxsLFtwdHJdLmNvbmNhdChhcmdzKSl9ZWxzZXtyZXR1cm4gTW9k
dWxlWyJkeW5DYWxsXyIrc2lnXS5jYWxsKG51bGwscHRyKX19dmFyIHRlbXBSZXQwPTA7dmFyIHNl
dFRlbXBSZXQwPWZ1bmN0aW9uKHZhbHVlKXt0ZW1wUmV0MD12YWx1ZX07dmFyIHdhc21CaW5hcnk7
aWYoTW9kdWxlWyJ3YXNtQmluYXJ5Il0pd2FzbUJpbmFyeT1Nb2R1bGVbIndhc21CaW5hcnkiXTt2
YXIgbm9FeGl0UnVudGltZTtpZihNb2R1bGVbIm5vRXhpdFJ1bnRpbWUiXSlub0V4aXRSdW50aW1l
PU1vZHVsZVsibm9FeGl0UnVudGltZSJdO2lmKHR5cGVvZiBXZWJBc3NlbWJseSE9PSJvYmplY3Qi
KXtlcnIoIm5vIG5hdGl2ZSB3YXNtIHN1cHBvcnQgZGV0ZWN0ZWQiKX1mdW5jdGlvbiBzZXRWYWx1
ZShwdHIsdmFsdWUsdHlwZSxub1NhZmUpe3R5cGU9dHlwZXx8Imk4IjtpZih0eXBlLmNoYXJBdCh0
eXBlLmxlbmd0aC0xKT09PSIqIil0eXBlPSJpMzIiO3N3aXRjaCh0eXBlKXtjYXNlImkxIjpIRUFQ
OFtwdHI+PjBdPXZhbHVlO2JyZWFrO2Nhc2UiaTgiOkhFQVA4W3B0cj4+MF09dmFsdWU7YnJlYWs7
Y2FzZSJpMTYiOkhFQVAxNltwdHI+PjFdPXZhbHVlO2JyZWFrO2Nhc2UiaTMyIjpIRUFQMzJbcHRy
Pj4yXT12YWx1ZTticmVhaztjYXNlImk2NCI6dGVtcEk2ND1bdmFsdWU+Pj4wLCh0ZW1wRG91Ymxl
PXZhbHVlLCtNYXRoX2Ficyh0ZW1wRG91YmxlKT49MT90ZW1wRG91YmxlPjA/KE1hdGhfbWluKCtN
YXRoX2Zsb29yKHRlbXBEb3VibGUvNDI5NDk2NzI5NiksNDI5NDk2NzI5NSl8MCk+Pj4wOn5+K01h
dGhfY2VpbCgodGVtcERvdWJsZS0rKH5+dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6
MCldLEhFQVAzMltwdHI+PjJdPXRlbXBJNjRbMF0sSEVBUDMyW3B0cis0Pj4yXT10ZW1wSTY0WzFd
O2JyZWFrO2Nhc2UiZmxvYXQiOkhFQVBGMzJbcHRyPj4yXT12YWx1ZTticmVhaztjYXNlImRvdWJs
ZSI6SEVBUEY2NFtwdHI+PjNdPXZhbHVlO2JyZWFrO2RlZmF1bHQ6YWJvcnQoImludmFsaWQgdHlw
ZSBmb3Igc2V0VmFsdWU6ICIrdHlwZSl9fXZhciB3YXNtTWVtb3J5O3ZhciB3YXNtVGFibGU9bmV3
IFdlYkFzc2VtYmx5LlRhYmxlKHsiaW5pdGlhbCI6NCwibWF4aW11bSI6NCswLCJlbGVtZW50Ijoi
YW55ZnVuYyJ9KTt2YXIgQUJPUlQ9ZmFsc2U7dmFyIEVYSVRTVEFUVVM9MDtmdW5jdGlvbiBhc3Nl
cnQoY29uZGl0aW9uLHRleHQpe2lmKCFjb25kaXRpb24pe2Fib3J0KCJBc3NlcnRpb24gZmFpbGVk
OiAiK3RleHQpfX1mdW5jdGlvbiBnZXRDRnVuYyhpZGVudCl7dmFyIGZ1bmM9TW9kdWxlWyJfIitp
ZGVudF07YXNzZXJ0KGZ1bmMsIkNhbm5vdCBjYWxsIHVua25vd24gZnVuY3Rpb24gIitpZGVudCsi
LCBtYWtlIHN1cmUgaXQgaXMgZXhwb3J0ZWQiKTtyZXR1cm4gZnVuY31mdW5jdGlvbiBjY2FsbChp
ZGVudCxyZXR1cm5UeXBlLGFyZ1R5cGVzLGFyZ3Msb3B0cyl7dmFyIHRvQz17InN0cmluZyI6ZnVu
Y3Rpb24oc3RyKXt2YXIgcmV0PTA7aWYoc3RyIT09bnVsbCYmc3RyIT09dW5kZWZpbmVkJiZzdHIh
PT0wKXt2YXIgbGVuPShzdHIubGVuZ3RoPDwyKSsxO3JldD1zdGFja0FsbG9jKGxlbik7c3RyaW5n
VG9VVEY4KHN0cixyZXQsbGVuKX1yZXR1cm4gcmV0fSwiYXJyYXkiOmZ1bmN0aW9uKGFycil7dmFy
IHJldD1zdGFja0FsbG9jKGFyci5sZW5ndGgpO3dyaXRlQXJyYXlUb01lbW9yeShhcnIscmV0KTty
ZXR1cm4gcmV0fX07ZnVuY3Rpb24gY29udmVydFJldHVyblZhbHVlKHJldCl7aWYocmV0dXJuVHlw
ZT09PSJzdHJpbmciKXJldHVybiBVVEY4VG9TdHJpbmcocmV0KTtpZihyZXR1cm5UeXBlPT09ImJv
b2xlYW4iKXJldHVybiBCb29sZWFuKHJldCk7cmV0dXJuIHJldH12YXIgZnVuYz1nZXRDRnVuYyhp
ZGVudCk7dmFyIGNBcmdzPVtdO3ZhciBzdGFjaz0wO2lmKGFyZ3Mpe2Zvcih2YXIgaT0wO2k8YXJn
cy5sZW5ndGg7aSsrKXt2YXIgY29udmVydGVyPXRvQ1thcmdUeXBlc1tpXV07aWYoY29udmVydGVy
KXtpZihzdGFjaz09PTApc3RhY2s9c3RhY2tTYXZlKCk7Y0FyZ3NbaV09Y29udmVydGVyKGFyZ3Nb
aV0pfWVsc2V7Y0FyZ3NbaV09YXJnc1tpXX19fXZhciByZXQ9ZnVuYy5hcHBseShudWxsLGNBcmdz
KTtyZXQ9Y29udmVydFJldHVyblZhbHVlKHJldCk7aWYoc3RhY2shPT0wKXN0YWNrUmVzdG9yZShz
dGFjayk7cmV0dXJuIHJldH12YXIgQUxMT0NfTk9ORT0zO3ZhciBVVEY4RGVjb2Rlcj10eXBlb2Yg
VGV4dERlY29kZXIhPT0idW5kZWZpbmVkIj9uZXcgVGV4dERlY29kZXIoInV0ZjgiKTp1bmRlZmlu
ZWQ7ZnVuY3Rpb24gVVRGOEFycmF5VG9TdHJpbmcoaGVhcCxpZHgsbWF4Qnl0ZXNUb1JlYWQpe3Zh
ciBlbmRJZHg9aWR4K21heEJ5dGVzVG9SZWFkO3ZhciBlbmRQdHI9aWR4O3doaWxlKGhlYXBbZW5k
UHRyXSYmIShlbmRQdHI+PWVuZElkeCkpKytlbmRQdHI7aWYoZW5kUHRyLWlkeD4xNiYmaGVhcC5z
dWJhcnJheSYmVVRGOERlY29kZXIpe3JldHVybiBVVEY4RGVjb2Rlci5kZWNvZGUoaGVhcC5zdWJh
cnJheShpZHgsZW5kUHRyKSl9ZWxzZXt2YXIgc3RyPSIiO3doaWxlKGlkeDxlbmRQdHIpe3ZhciB1
MD1oZWFwW2lkeCsrXTtpZighKHUwJjEyOCkpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSh1MCk7
Y29udGludWV9dmFyIHUxPWhlYXBbaWR4KytdJjYzO2lmKCh1MCYyMjQpPT0xOTIpe3N0cis9U3Ry
aW5nLmZyb21DaGFyQ29kZSgodTAmMzEpPDw2fHUxKTtjb250aW51ZX12YXIgdTI9aGVhcFtpZHgr
K10mNjM7aWYoKHUwJjI0MCk9PTIyNCl7dTA9KHUwJjE1KTw8MTJ8dTE8PDZ8dTJ9ZWxzZXt1MD0o
dTAmNyk8PDE4fHUxPDwxMnx1Mjw8NnxoZWFwW2lkeCsrXSY2M31pZih1MDw2NTUzNil7c3RyKz1T
dHJpbmcuZnJvbUNoYXJDb2RlKHUwKX1lbHNle3ZhciBjaD11MC02NTUzNjtzdHIrPVN0cmluZy5m
cm9tQ2hhckNvZGUoNTUyOTZ8Y2g+PjEwLDU2MzIwfGNoJjEwMjMpfX19cmV0dXJuIHN0cn1mdW5j
dGlvbiBVVEY4VG9TdHJpbmcocHRyLG1heEJ5dGVzVG9SZWFkKXtyZXR1cm4gcHRyP1VURjhBcnJh
eVRvU3RyaW5nKEhFQVBVOCxwdHIsbWF4Qnl0ZXNUb1JlYWQpOiIifWZ1bmN0aW9uIHN0cmluZ1Rv
VVRGOEFycmF5KHN0cixoZWFwLG91dElkeCxtYXhCeXRlc1RvV3JpdGUpe2lmKCEobWF4Qnl0ZXNU
b1dyaXRlPjApKXJldHVybiAwO3ZhciBzdGFydElkeD1vdXRJZHg7dmFyIGVuZElkeD1vdXRJZHgr
bWF4Qnl0ZXNUb1dyaXRlLTE7Zm9yKHZhciBpPTA7aTxzdHIubGVuZ3RoOysraSl7dmFyIHU9c3Ry
LmNoYXJDb2RlQXQoaSk7aWYodT49NTUyOTYmJnU8PTU3MzQzKXt2YXIgdTE9c3RyLmNoYXJDb2Rl
QXQoKytpKTt1PTY1NTM2KygodSYxMDIzKTw8MTApfHUxJjEwMjN9aWYodTw9MTI3KXtpZihvdXRJ
ZHg+PWVuZElkeClicmVhaztoZWFwW291dElkeCsrXT11fWVsc2UgaWYodTw9MjA0Nyl7aWYob3V0
SWR4KzE+PWVuZElkeClicmVhaztoZWFwW291dElkeCsrXT0xOTJ8dT4+NjtoZWFwW291dElkeCsr
XT0xMjh8dSY2M31lbHNlIGlmKHU8PTY1NTM1KXtpZihvdXRJZHgrMj49ZW5kSWR4KWJyZWFrO2hl
YXBbb3V0SWR4KytdPTIyNHx1Pj4xMjtoZWFwW291dElkeCsrXT0xMjh8dT4+NiY2MztoZWFwW291
dElkeCsrXT0xMjh8dSY2M31lbHNle2lmKG91dElkeCszPj1lbmRJZHgpYnJlYWs7aGVhcFtvdXRJ
ZHgrK109MjQwfHU+PjE4O2hlYXBbb3V0SWR4KytdPTEyOHx1Pj4xMiY2MztoZWFwW291dElkeCsr
XT0xMjh8dT4+NiY2MztoZWFwW291dElkeCsrXT0xMjh8dSY2M319aGVhcFtvdXRJZHhdPTA7cmV0
dXJuIG91dElkeC1zdGFydElkeH1mdW5jdGlvbiBzdHJpbmdUb1VURjgoc3RyLG91dFB0cixtYXhC
eXRlc1RvV3JpdGUpe3JldHVybiBzdHJpbmdUb1VURjhBcnJheShzdHIsSEVBUFU4LG91dFB0cixt
YXhCeXRlc1RvV3JpdGUpfWZ1bmN0aW9uIGxlbmd0aEJ5dGVzVVRGOChzdHIpe3ZhciBsZW49MDtm
b3IodmFyIGk9MDtpPHN0ci5sZW5ndGg7KytpKXt2YXIgdT1zdHIuY2hhckNvZGVBdChpKTtpZih1
Pj01NTI5NiYmdTw9NTczNDMpdT02NTUzNisoKHUmMTAyMyk8PDEwKXxzdHIuY2hhckNvZGVBdCgr
K2kpJjEwMjM7aWYodTw9MTI3KSsrbGVuO2Vsc2UgaWYodTw9MjA0NylsZW4rPTI7ZWxzZSBpZih1
PD02NTUzNSlsZW4rPTM7ZWxzZSBsZW4rPTR9cmV0dXJuIGxlbn12YXIgVVRGMTZEZWNvZGVyPXR5
cGVvZiBUZXh0RGVjb2RlciE9PSJ1bmRlZmluZWQiP25ldyBUZXh0RGVjb2RlcigidXRmLTE2bGUi
KTp1bmRlZmluZWQ7ZnVuY3Rpb24gYWxsb2NhdGVVVEY4T25TdGFjayhzdHIpe3ZhciBzaXplPWxl
bmd0aEJ5dGVzVVRGOChzdHIpKzE7dmFyIHJldD1zdGFja0FsbG9jKHNpemUpO3N0cmluZ1RvVVRG
OEFycmF5KHN0cixIRUFQOCxyZXQsc2l6ZSk7cmV0dXJuIHJldH1mdW5jdGlvbiB3cml0ZUFycmF5
VG9NZW1vcnkoYXJyYXksYnVmZmVyKXtIRUFQOC5zZXQoYXJyYXksYnVmZmVyKX1mdW5jdGlvbiB3
cml0ZUFzY2lpVG9NZW1vcnkoc3RyLGJ1ZmZlcixkb250QWRkTnVsbCl7Zm9yKHZhciBpPTA7aTxz
dHIubGVuZ3RoOysraSl7SEVBUDhbYnVmZmVyKys+PjBdPXN0ci5jaGFyQ29kZUF0KGkpfWlmKCFk
b250QWRkTnVsbClIRUFQOFtidWZmZXI+PjBdPTB9dmFyIFdBU01fUEFHRV9TSVpFPTY1NTM2O3Zh
ciBidWZmZXIsSEVBUDgsSEVBUFU4LEhFQVAxNixIRUFQVTE2LEhFQVAzMixIRUFQVTMyLEhFQVBG
MzIsSEVBUEY2NDtmdW5jdGlvbiB1cGRhdGVHbG9iYWxCdWZmZXJBbmRWaWV3cyhidWYpe2J1ZmZl
cj1idWY7TW9kdWxlWyJIRUFQOCJdPUhFQVA4PW5ldyBJbnQ4QXJyYXkoYnVmKTtNb2R1bGVbIkhF
QVAxNiJdPUhFQVAxNj1uZXcgSW50MTZBcnJheShidWYpO01vZHVsZVsiSEVBUDMyIl09SEVBUDMy
PW5ldyBJbnQzMkFycmF5KGJ1Zik7TW9kdWxlWyJIRUFQVTgiXT1IRUFQVTg9bmV3IFVpbnQ4QXJy
YXkoYnVmKTtNb2R1bGVbIkhFQVBVMTYiXT1IRUFQVTE2PW5ldyBVaW50MTZBcnJheShidWYpO01v
ZHVsZVsiSEVBUFUzMiJdPUhFQVBVMzI9bmV3IFVpbnQzMkFycmF5KGJ1Zik7TW9kdWxlWyJIRUFQ
RjMyIl09SEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KGJ1Zik7TW9kdWxlWyJIRUFQRjY0Il09SEVB
UEY2ND1uZXcgRmxvYXQ2NEFycmF5KGJ1Zil9dmFyIFNUQUNLX0JBU0U9NTI1MDQ0OCxEWU5BTUlD
X0JBU0U9NTI1MDQ0OCxEWU5BTUlDVE9QX1BUUj03NDA4O3ZhciBJTklUSUFMX0lOSVRJQUxfTUVN
T1JZPU1vZHVsZVsiSU5JVElBTF9NRU1PUlkiXXx8MTY3NzcyMTY7aWYoTW9kdWxlWyJ3YXNtTWVt
b3J5Il0pe3dhc21NZW1vcnk9TW9kdWxlWyJ3YXNtTWVtb3J5Il19ZWxzZXt3YXNtTWVtb3J5PW5l
dyBXZWJBc3NlbWJseS5NZW1vcnkoeyJpbml0aWFsIjpJTklUSUFMX0lOSVRJQUxfTUVNT1JZL1dB
U01fUEFHRV9TSVpFLCJtYXhpbXVtIjpJTklUSUFMX0lOSVRJQUxfTUVNT1JZL1dBU01fUEFHRV9T
SVpFfSl9aWYod2FzbU1lbW9yeSl7YnVmZmVyPXdhc21NZW1vcnkuYnVmZmVyfUlOSVRJQUxfSU5J
VElBTF9NRU1PUlk9YnVmZmVyLmJ5dGVMZW5ndGg7dXBkYXRlR2xvYmFsQnVmZmVyQW5kVmlld3Mo
YnVmZmVyKTtIRUFQMzJbRFlOQU1JQ1RPUF9QVFI+PjJdPURZTkFNSUNfQkFTRTtmdW5jdGlvbiBj
YWxsUnVudGltZUNhbGxiYWNrcyhjYWxsYmFja3Mpe3doaWxlKGNhbGxiYWNrcy5sZW5ndGg+MCl7
dmFyIGNhbGxiYWNrPWNhbGxiYWNrcy5zaGlmdCgpO2lmKHR5cGVvZiBjYWxsYmFjaz09ImZ1bmN0
aW9uIil7Y2FsbGJhY2soTW9kdWxlKTtjb250aW51ZX12YXIgZnVuYz1jYWxsYmFjay5mdW5jO2lm
KHR5cGVvZiBmdW5jPT09Im51bWJlciIpe2lmKGNhbGxiYWNrLmFyZz09PXVuZGVmaW5lZCl7TW9k
dWxlWyJkeW5DYWxsX3YiXShmdW5jKX1lbHNle01vZHVsZVsiZHluQ2FsbF92aSJdKGZ1bmMsY2Fs
bGJhY2suYXJnKX19ZWxzZXtmdW5jKGNhbGxiYWNrLmFyZz09PXVuZGVmaW5lZD9udWxsOmNhbGxi
YWNrLmFyZyl9fX12YXIgX19BVFBSRVJVTl9fPVtdO3ZhciBfX0FUSU5JVF9fPVtdO3ZhciBfX0FU
TUFJTl9fPVtdO3ZhciBfX0FUUE9TVFJVTl9fPVtdO3ZhciBydW50aW1lSW5pdGlhbGl6ZWQ9ZmFs
c2U7dmFyIHJ1bnRpbWVFeGl0ZWQ9ZmFsc2U7ZnVuY3Rpb24gcHJlUnVuKCl7aWYoTW9kdWxlWyJw
cmVSdW4iXSl7aWYodHlwZW9mIE1vZHVsZVsicHJlUnVuIl09PSJmdW5jdGlvbiIpTW9kdWxlWyJw
cmVSdW4iXT1bTW9kdWxlWyJwcmVSdW4iXV07d2hpbGUoTW9kdWxlWyJwcmVSdW4iXS5sZW5ndGgp
e2FkZE9uUHJlUnVuKE1vZHVsZVsicHJlUnVuIl0uc2hpZnQoKSl9fWNhbGxSdW50aW1lQ2FsbGJh
Y2tzKF9fQVRQUkVSVU5fXyl9ZnVuY3Rpb24gaW5pdFJ1bnRpbWUoKXtydW50aW1lSW5pdGlhbGl6
ZWQ9dHJ1ZTtjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUSU5JVF9fKX1mdW5jdGlvbiBwcmVNYWlu
KCl7Y2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVE1BSU5fXyl9ZnVuY3Rpb24gZXhpdFJ1bnRpbWUo
KXtydW50aW1lRXhpdGVkPXRydWV9ZnVuY3Rpb24gcG9zdFJ1bigpe2lmKE1vZHVsZVsicG9zdFJ1
biJdKXtpZih0eXBlb2YgTW9kdWxlWyJwb3N0UnVuIl09PSJmdW5jdGlvbiIpTW9kdWxlWyJwb3N0
UnVuIl09W01vZHVsZVsicG9zdFJ1biJdXTt3aGlsZShNb2R1bGVbInBvc3RSdW4iXS5sZW5ndGgp
e2FkZE9uUG9zdFJ1bihNb2R1bGVbInBvc3RSdW4iXS5zaGlmdCgpKX19Y2FsbFJ1bnRpbWVDYWxs
YmFja3MoX19BVFBPU1RSVU5fXyl9ZnVuY3Rpb24gYWRkT25QcmVSdW4oY2Ipe19fQVRQUkVSVU5f
Xy51bnNoaWZ0KGNiKX1mdW5jdGlvbiBhZGRPblBvc3RSdW4oY2Ipe19fQVRQT1NUUlVOX18udW5z
aGlmdChjYil9dmFyIE1hdGhfYWJzPU1hdGguYWJzO3ZhciBNYXRoX2NlaWw9TWF0aC5jZWlsO3Zh
ciBNYXRoX2Zsb29yPU1hdGguZmxvb3I7dmFyIE1hdGhfbWluPU1hdGgubWluO3ZhciBydW5EZXBl
bmRlbmNpZXM9MDt2YXIgcnVuRGVwZW5kZW5jeVdhdGNoZXI9bnVsbDt2YXIgZGVwZW5kZW5jaWVz
RnVsZmlsbGVkPW51bGw7ZnVuY3Rpb24gYWRkUnVuRGVwZW5kZW5jeShpZCl7cnVuRGVwZW5kZW5j
aWVzKys7aWYoTW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0pe01vZHVsZVsibW9uaXRv
clJ1bkRlcGVuZGVuY2llcyJdKHJ1bkRlcGVuZGVuY2llcyl9fWZ1bmN0aW9uIHJlbW92ZVJ1bkRl
cGVuZGVuY3koaWQpe3J1bkRlcGVuZGVuY2llcy0tO2lmKE1vZHVsZVsibW9uaXRvclJ1bkRlcGVu
ZGVuY2llcyJdKXtNb2R1bGVbIm1vbml0b3JSdW5EZXBlbmRlbmNpZXMiXShydW5EZXBlbmRlbmNp
ZXMpfWlmKHJ1bkRlcGVuZGVuY2llcz09MCl7aWYocnVuRGVwZW5kZW5jeVdhdGNoZXIhPT1udWxs
KXtjbGVhckludGVydmFsKHJ1bkRlcGVuZGVuY3lXYXRjaGVyKTtydW5EZXBlbmRlbmN5V2F0Y2hl
cj1udWxsfWlmKGRlcGVuZGVuY2llc0Z1bGZpbGxlZCl7dmFyIGNhbGxiYWNrPWRlcGVuZGVuY2ll
c0Z1bGZpbGxlZDtkZXBlbmRlbmNpZXNGdWxmaWxsZWQ9bnVsbDtjYWxsYmFjaygpfX19TW9kdWxl
WyJwcmVsb2FkZWRJbWFnZXMiXT17fTtNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdPXt9O2Z1bmN0
aW9uIGFib3J0KHdoYXQpe2lmKE1vZHVsZVsib25BYm9ydCJdKXtNb2R1bGVbIm9uQWJvcnQiXSh3
aGF0KX13aGF0Kz0iIjtvdXQod2hhdCk7ZXJyKHdoYXQpO0FCT1JUPXRydWU7RVhJVFNUQVRVUz0x
O3doYXQ9ImFib3J0KCIrd2hhdCsiKS4gQnVpbGQgd2l0aCAtcyBBU1NFUlRJT05TPTEgZm9yIG1v
cmUgaW5mby4iO3Rocm93IG5ldyBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3Iod2hhdCl9ZnVuY3Rp
b24gaGFzUHJlZml4KHN0cixwcmVmaXgpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dp
dGg/c3RyLnN0YXJ0c1dpdGgocHJlZml4KTpzdHIuaW5kZXhPZihwcmVmaXgpPT09MH12YXIgZGF0
YVVSSVByZWZpeD0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7ZnVuY3Rp
b24gaXNEYXRhVVJJKGZpbGVuYW1lKXtyZXR1cm4gaGFzUHJlZml4KGZpbGVuYW1lLGRhdGFVUklQ
cmVmaXgpfXZhciBmaWxlVVJJUHJlZml4PSJmaWxlOi8vIjtmdW5jdGlvbiBpc0ZpbGVVUkkoZmls
ZW5hbWUpe3JldHVybiBoYXNQcmVmaXgoZmlsZW5hbWUsZmlsZVVSSVByZWZpeCl9dmFyIHdhc21C
aW5hcnlGaWxlPSJpbnRlcnByZXRlci13YXNtLndhc20iO2lmKCFpc0RhdGFVUkkod2FzbUJpbmFy
eUZpbGUpKXt3YXNtQmluYXJ5RmlsZT1sb2NhdGVGaWxlKHdhc21CaW5hcnlGaWxlKX1mdW5jdGlv
biBnZXRCaW5hcnkoKXt0cnl7aWYod2FzbUJpbmFyeSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHdh
c21CaW5hcnkpfWlmKHJlYWRCaW5hcnkpe3JldHVybiByZWFkQmluYXJ5KHdhc21CaW5hcnlGaWxl
KX1lbHNle3Rocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFp
bGVkIn19Y2F0Y2goZXJyKXthYm9ydChlcnIpfX1mdW5jdGlvbiBnZXRCaW5hcnlQcm9taXNlKCl7
aWYoIXdhc21CaW5hcnkmJihFTlZJUk9OTUVOVF9JU19XRUJ8fEVOVklST05NRU5UX0lTX1dPUktF
UikmJnR5cGVvZiBmZXRjaD09PSJmdW5jdGlvbiImJiFpc0ZpbGVVUkkod2FzbUJpbmFyeUZpbGUp
KXtyZXR1cm4gZmV0Y2god2FzbUJpbmFyeUZpbGUse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9
KS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKXtpZighcmVzcG9uc2VbIm9rIl0pe3Rocm93ImZhaWxl
ZCB0byBsb2FkIHdhc20gYmluYXJ5IGZpbGUgYXQgJyIrd2FzbUJpbmFyeUZpbGUrIicifXJldHVy
biByZXNwb25zZVsiYXJyYXlCdWZmZXIiXSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gZ2V0
QmluYXJ5KCl9KX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSxyZWplY3Qpe3Jl
c29sdmUoZ2V0QmluYXJ5KCkpfSl9ZnVuY3Rpb24gY3JlYXRlV2FzbSgpe3ZhciBpbmZvPXsiZW52
Ijphc21MaWJyYXJ5QXJnLCJ3YXNpX3NuYXBzaG90X3ByZXZpZXcxIjphc21MaWJyYXJ5QXJnfTtm
dW5jdGlvbiByZWNlaXZlSW5zdGFuY2UoaW5zdGFuY2UsbW9kdWxlKXt2YXIgZXhwb3J0cz1pbnN0
YW5jZS5leHBvcnRzO01vZHVsZVsiYXNtIl09ZXhwb3J0cztyZW1vdmVSdW5EZXBlbmRlbmN5KCJ3
YXNtLWluc3RhbnRpYXRlIil9YWRkUnVuRGVwZW5kZW5jeSgid2FzbS1pbnN0YW50aWF0ZSIpO2Z1
bmN0aW9uIHJlY2VpdmVJbnN0YW50aWF0ZWRTb3VyY2Uob3V0cHV0KXtyZWNlaXZlSW5zdGFuY2Uo
b3V0cHV0WyJpbnN0YW5jZSJdKX1mdW5jdGlvbiBpbnN0YW50aWF0ZUFycmF5QnVmZmVyKHJlY2Vp
dmVyKXtyZXR1cm4gZ2V0QmluYXJ5UHJvbWlzZSgpLnRoZW4oZnVuY3Rpb24oYmluYXJ5KXtyZXR1
cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYmluYXJ5LGluZm8pfSkudGhlbihyZWNlaXZlcixm
dW5jdGlvbihyZWFzb24pe2VycigiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2Fz
bTogIityZWFzb24pO2Fib3J0KHJlYXNvbil9KX1mdW5jdGlvbiBpbnN0YW50aWF0ZUFzeW5jKCl7
aWYoIXdhc21CaW5hcnkmJnR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZz09
PSJmdW5jdGlvbiImJiFpc0RhdGFVUkkod2FzbUJpbmFyeUZpbGUpJiYhaXNGaWxlVVJJKHdhc21C
aW5hcnlGaWxlKSYmdHlwZW9mIGZldGNoPT09ImZ1bmN0aW9uIil7ZmV0Y2god2FzbUJpbmFyeUZp
bGUse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKXt2
YXIgcmVzdWx0PVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKHJlc3BvbnNlLGluZm8p
O3JldHVybiByZXN1bHQudGhlbihyZWNlaXZlSW5zdGFudGlhdGVkU291cmNlLGZ1bmN0aW9uKHJl
YXNvbil7ZXJyKCJ3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogIityZWFzb24pO2Vycigi
ZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKTtpbnN0YW50aWF0ZUFy
cmF5QnVmZmVyKHJlY2VpdmVJbnN0YW50aWF0ZWRTb3VyY2UpfSl9KX1lbHNle3JldHVybiBpbnN0
YW50aWF0ZUFycmF5QnVmZmVyKHJlY2VpdmVJbnN0YW50aWF0ZWRTb3VyY2UpfX1pZihNb2R1bGVb
Imluc3RhbnRpYXRlV2FzbSJdKXt0cnl7dmFyIGV4cG9ydHM9TW9kdWxlWyJpbnN0YW50aWF0ZVdh
c20iXShpbmZvLHJlY2VpdmVJbnN0YW5jZSk7cmV0dXJuIGV4cG9ydHN9Y2F0Y2goZSl7ZXJyKCJN
b2R1bGUuaW5zdGFudGlhdGVXYXNtIGNhbGxiYWNrIGZhaWxlZCB3aXRoIGVycm9yOiAiK2UpO3Jl
dHVybiBmYWxzZX19aW5zdGFudGlhdGVBc3luYygpO3JldHVybnt9fXZhciB0ZW1wRG91YmxlO3Zh
ciB0ZW1wSTY0O19fQVRJTklUX18ucHVzaCh7ZnVuYzpmdW5jdGlvbigpe19fX3dhc21fY2FsbF9j
dG9ycygpfX0pO2Z1bmN0aW9uIGRlbWFuZ2xlKGZ1bmMpe3JldHVybiBmdW5jfWZ1bmN0aW9uIGRl
bWFuZ2xlQWxsKHRleHQpe3ZhciByZWdleD0vXGJfWltcd1xkX10rL2c7cmV0dXJuIHRleHQucmVw
bGFjZShyZWdleCxmdW5jdGlvbih4KXt2YXIgeT1kZW1hbmdsZSh4KTtyZXR1cm4geD09PXk/eDp5
KyIgWyIreCsiXSJ9KX1mdW5jdGlvbiBqc1N0YWNrVHJhY2UoKXt2YXIgZXJyPW5ldyBFcnJvcjtp
ZighZXJyLnN0YWNrKXt0cnl7dGhyb3cgbmV3IEVycm9yfWNhdGNoKGUpe2Vycj1lfWlmKCFlcnIu
c3RhY2spe3JldHVybiIobm8gc3RhY2sgdHJhY2UgYXZhaWxhYmxlKSJ9fXJldHVybiBlcnIuc3Rh
Y2sudG9TdHJpbmcoKX1mdW5jdGlvbiBfZW1zY3JpcHRlbl9nZXRfc2Jya19wdHIoKXtyZXR1cm4g
NzQwOH1mdW5jdGlvbiBfZW1zY3JpcHRlbl9tZW1jcHlfYmlnKGRlc3Qsc3JjLG51bSl7SEVBUFU4
LmNvcHlXaXRoaW4oZGVzdCxzcmMsc3JjK251bSl9ZnVuY3Rpb24gYWJvcnRPbkNhbm5vdEdyb3dN
ZW1vcnkocmVxdWVzdGVkU2l6ZSl7YWJvcnQoIk9PTSIpfWZ1bmN0aW9uIF9lbXNjcmlwdGVuX3Jl
c2l6ZV9oZWFwKHJlcXVlc3RlZFNpemUpe3JlcXVlc3RlZFNpemU9cmVxdWVzdGVkU2l6ZT4+PjA7
YWJvcnRPbkNhbm5vdEdyb3dNZW1vcnkocmVxdWVzdGVkU2l6ZSl9dmFyIFBBVEg9e3NwbGl0UGF0
aDpmdW5jdGlvbihmaWxlbmFtZSl7dmFyIHNwbGl0UGF0aFJlPS9eKFwvP3wpKFtcc1xTXSo/KSgo
PzpcLnsxLDJ9fFteXC9dKz98KShcLlteLlwvXSp8KSkoPzpbXC9dKikkLztyZXR1cm4gc3BsaXRQ
YXRoUmUuZXhlYyhmaWxlbmFtZSkuc2xpY2UoMSl9LG5vcm1hbGl6ZUFycmF5OmZ1bmN0aW9uKHBh
cnRzLGFsbG93QWJvdmVSb290KXt2YXIgdXA9MDtmb3IodmFyIGk9cGFydHMubGVuZ3RoLTE7aT49
MDtpLS0pe3ZhciBsYXN0PXBhcnRzW2ldO2lmKGxhc3Q9PT0iLiIpe3BhcnRzLnNwbGljZShpLDEp
fWVsc2UgaWYobGFzdD09PSIuLiIpe3BhcnRzLnNwbGljZShpLDEpO3VwKyt9ZWxzZSBpZih1cCl7
cGFydHMuc3BsaWNlKGksMSk7dXAtLX19aWYoYWxsb3dBYm92ZVJvb3Qpe2Zvcig7dXA7dXAtLSl7
cGFydHMudW5zaGlmdCgiLi4iKX19cmV0dXJuIHBhcnRzfSxub3JtYWxpemU6ZnVuY3Rpb24ocGF0
aCl7dmFyIGlzQWJzb2x1dGU9cGF0aC5jaGFyQXQoMCk9PT0iLyIsdHJhaWxpbmdTbGFzaD1wYXRo
LnN1YnN0cigtMSk9PT0iLyI7cGF0aD1QQVRILm5vcm1hbGl6ZUFycmF5KHBhdGguc3BsaXQoIi8i
KS5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuISFwfSksIWlzQWJzb2x1dGUpLmpvaW4oIi8iKTtp
ZighcGF0aCYmIWlzQWJzb2x1dGUpe3BhdGg9Ii4ifWlmKHBhdGgmJnRyYWlsaW5nU2xhc2gpe3Bh
dGgrPSIvIn1yZXR1cm4oaXNBYnNvbHV0ZT8iLyI6IiIpK3BhdGh9LGRpcm5hbWU6ZnVuY3Rpb24o
cGF0aCl7dmFyIHJlc3VsdD1QQVRILnNwbGl0UGF0aChwYXRoKSxyb290PXJlc3VsdFswXSxkaXI9
cmVzdWx0WzFdO2lmKCFyb290JiYhZGlyKXtyZXR1cm4iLiJ9aWYoZGlyKXtkaXI9ZGlyLnN1YnN0
cigwLGRpci5sZW5ndGgtMSl9cmV0dXJuIHJvb3QrZGlyfSxiYXNlbmFtZTpmdW5jdGlvbihwYXRo
KXtpZihwYXRoPT09Ii8iKXJldHVybiIvIjt2YXIgbGFzdFNsYXNoPXBhdGgubGFzdEluZGV4T2Yo
Ii8iKTtpZihsYXN0U2xhc2g9PT0tMSlyZXR1cm4gcGF0aDtyZXR1cm4gcGF0aC5zdWJzdHIobGFz
dFNsYXNoKzEpfSxleHRuYW1lOmZ1bmN0aW9uKHBhdGgpe3JldHVybiBQQVRILnNwbGl0UGF0aChw
YXRoKVszXX0sam9pbjpmdW5jdGlvbigpe3ZhciBwYXRocz1BcnJheS5wcm90b3R5cGUuc2xpY2Uu
Y2FsbChhcmd1bWVudHMsMCk7cmV0dXJuIFBBVEgubm9ybWFsaXplKHBhdGhzLmpvaW4oIi8iKSl9
LGpvaW4yOmZ1bmN0aW9uKGwscil7cmV0dXJuIFBBVEgubm9ybWFsaXplKGwrIi8iK3IpfX07dmFy
IFNZU0NBTExTPXttYXBwaW5nczp7fSxidWZmZXJzOltudWxsLFtdLFtdXSxwcmludENoYXI6ZnVu
Y3Rpb24oc3RyZWFtLGN1cnIpe3ZhciBidWZmZXI9U1lTQ0FMTFMuYnVmZmVyc1tzdHJlYW1dO2lm
KGN1cnI9PT0wfHxjdXJyPT09MTApeyhzdHJlYW09PT0xP291dDplcnIpKFVURjhBcnJheVRvU3Ry
aW5nKGJ1ZmZlciwwKSk7YnVmZmVyLmxlbmd0aD0wfWVsc2V7YnVmZmVyLnB1c2goY3Vycil9fSx2
YXJhcmdzOnVuZGVmaW5lZCxnZXQ6ZnVuY3Rpb24oKXtTWVNDQUxMUy52YXJhcmdzKz00O3ZhciBy
ZXQ9SEVBUDMyW1NZU0NBTExTLnZhcmFyZ3MtND4+Ml07cmV0dXJuIHJldH0sZ2V0U3RyOmZ1bmN0
aW9uKHB0cil7dmFyIHJldD1VVEY4VG9TdHJpbmcocHRyKTtyZXR1cm4gcmV0fSxnZXQ2NDpmdW5j
dGlvbihsb3csaGlnaCl7cmV0dXJuIGxvd319O2Z1bmN0aW9uIF9mZF93cml0ZShmZCxpb3YsaW92
Y250LHBudW0pe3ZhciBudW09MDtmb3IodmFyIGk9MDtpPGlvdmNudDtpKyspe3ZhciBwdHI9SEVB
UDMyW2lvditpKjg+PjJdO3ZhciBsZW49SEVBUDMyW2lvdisoaSo4KzQpPj4yXTtmb3IodmFyIGo9
MDtqPGxlbjtqKyspe1NZU0NBTExTLnByaW50Q2hhcihmZCxIRUFQVThbcHRyK2pdKX1udW0rPWxl
bn1IRUFQMzJbcG51bT4+Ml09bnVtO3JldHVybiAwfWZ1bmN0aW9uIF9zZXRUZW1wUmV0MCgkaSl7
c2V0VGVtcFJldDAoJGl8MCl9dmFyIEFTU0VSVElPTlM9ZmFsc2U7dmFyIGFzbUxpYnJhcnlBcmc9
eyJlbXNjcmlwdGVuX2dldF9zYnJrX3B0ciI6X2Vtc2NyaXB0ZW5fZ2V0X3NicmtfcHRyLCJlbXNj
cmlwdGVuX21lbWNweV9iaWciOl9lbXNjcmlwdGVuX21lbWNweV9iaWcsImVtc2NyaXB0ZW5fcmVz
aXplX2hlYXAiOl9lbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwLCJmZF93cml0ZSI6X2ZkX3dyaXRlLCJt
ZW1vcnkiOndhc21NZW1vcnksInNldFRlbXBSZXQwIjpfc2V0VGVtcFJldDAsInRhYmxlIjp3YXNt
VGFibGV9O3ZhciBhc209Y3JlYXRlV2FzbSgpO01vZHVsZVsiYXNtIl09YXNtO3ZhciBfX193YXNt
X2NhbGxfY3RvcnM9TW9kdWxlWyJfX193YXNtX2NhbGxfY3RvcnMiXT1mdW5jdGlvbigpe3JldHVy
bihfX193YXNtX2NhbGxfY3RvcnM9TW9kdWxlWyJfX193YXNtX2NhbGxfY3RvcnMiXT1Nb2R1bGVb
ImFzbSJdWyJfX3dhc21fY2FsbF9jdG9ycyJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBf
bWFpbj1Nb2R1bGVbIl9tYWluIl09ZnVuY3Rpb24oKXtyZXR1cm4oX21haW49TW9kdWxlWyJfbWFp
biJdPU1vZHVsZVsiYXNtIl1bIm1haW4iXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgX21h
bGxvYz1Nb2R1bGVbIl9tYWxsb2MiXT1mdW5jdGlvbigpe3JldHVybihfbWFsbG9jPU1vZHVsZVsi
X21hbGxvYyJdPU1vZHVsZVsiYXNtIl1bIm1hbGxvYyJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9
O3ZhciBfX19lcnJub19sb2NhdGlvbj1Nb2R1bGVbIl9fX2Vycm5vX2xvY2F0aW9uIl09ZnVuY3Rp
b24oKXtyZXR1cm4oX19fZXJybm9fbG9jYXRpb249TW9kdWxlWyJfX19lcnJub19sb2NhdGlvbiJd
PU1vZHVsZVsiYXNtIl1bIl9fZXJybm9fbG9jYXRpb24iXSkuYXBwbHkobnVsbCxhcmd1bWVudHMp
fTt2YXIgX2ZyZWU9TW9kdWxlWyJfZnJlZSJdPWZ1bmN0aW9uKCl7cmV0dXJuKF9mcmVlPU1vZHVs
ZVsiX2ZyZWUiXT1Nb2R1bGVbImFzbSJdWyJmcmVlIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07
dmFyIHN0YWNrU2F2ZT1Nb2R1bGVbInN0YWNrU2F2ZSJdPWZ1bmN0aW9uKCl7cmV0dXJuKHN0YWNr
U2F2ZT1Nb2R1bGVbInN0YWNrU2F2ZSJdPU1vZHVsZVsiYXNtIl1bInN0YWNrU2F2ZSJdKS5hcHBs
eShudWxsLGFyZ3VtZW50cyl9O3ZhciBzdGFja0FsbG9jPU1vZHVsZVsic3RhY2tBbGxvYyJdPWZ1
bmN0aW9uKCl7cmV0dXJuKHN0YWNrQWxsb2M9TW9kdWxlWyJzdGFja0FsbG9jIl09TW9kdWxlWyJh
c20iXVsic3RhY2tBbGxvYyJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBzdGFja1Jlc3Rv
cmU9TW9kdWxlWyJzdGFja1Jlc3RvcmUiXT1mdW5jdGlvbigpe3JldHVybihzdGFja1Jlc3RvcmU9
TW9kdWxlWyJzdGFja1Jlc3RvcmUiXT1Nb2R1bGVbImFzbSJdWyJzdGFja1Jlc3RvcmUiXSkuYXBw
bHkobnVsbCxhcmd1bWVudHMpfTt2YXIgX19ncm93V2FzbU1lbW9yeT1Nb2R1bGVbIl9fZ3Jvd1dh
c21NZW1vcnkiXT1mdW5jdGlvbigpe3JldHVybihfX2dyb3dXYXNtTWVtb3J5PU1vZHVsZVsiX19n
cm93V2FzbU1lbW9yeSJdPU1vZHVsZVsiYXNtIl1bIl9fZ3Jvd1dhc21NZW1vcnkiXSkuYXBwbHko
bnVsbCxhcmd1bWVudHMpfTt2YXIgZHluQ2FsbF9paT1Nb2R1bGVbImR5bkNhbGxfaWkiXT1mdW5j
dGlvbigpe3JldHVybihkeW5DYWxsX2lpPU1vZHVsZVsiZHluQ2FsbF9paSJdPU1vZHVsZVsiYXNt
Il1bImR5bkNhbGxfaWkiXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgZHluQ2FsbF9paWlp
PU1vZHVsZVsiZHluQ2FsbF9paWlpIl09ZnVuY3Rpb24oKXtyZXR1cm4oZHluQ2FsbF9paWlpPU1v
ZHVsZVsiZHluQ2FsbF9paWlpIl09TW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpIl0pLmFwcGx5
KG51bGwsYXJndW1lbnRzKX07dmFyIGR5bkNhbGxfamlqaT1Nb2R1bGVbImR5bkNhbGxfamlqaSJd
PWZ1bmN0aW9uKCl7cmV0dXJuKGR5bkNhbGxfamlqaT1Nb2R1bGVbImR5bkNhbGxfamlqaSJdPU1v
ZHVsZVsiYXNtIl1bImR5bkNhbGxfamlqaSJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O01vZHVs
ZVsiYXNtIl09YXNtO3ZhciBjYWxsZWRSdW47ZnVuY3Rpb24gRXhpdFN0YXR1cyhzdGF0dXMpe3Ro
aXMubmFtZT0iRXhpdFN0YXR1cyI7dGhpcy5tZXNzYWdlPSJQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0
aCBleGl0KCIrc3RhdHVzKyIpIjt0aGlzLnN0YXR1cz1zdGF0dXN9dmFyIGNhbGxlZE1haW49ZmFs
c2U7ZGVwZW5kZW5jaWVzRnVsZmlsbGVkPWZ1bmN0aW9uIHJ1bkNhbGxlcigpe2lmKCFjYWxsZWRS
dW4pcnVuKCk7aWYoIWNhbGxlZFJ1bilkZXBlbmRlbmNpZXNGdWxmaWxsZWQ9cnVuQ2FsbGVyfTtm
dW5jdGlvbiBjYWxsTWFpbihhcmdzKXt2YXIgZW50cnlGdW5jdGlvbj1Nb2R1bGVbIl9tYWluIl07
YXJncz1hcmdzfHxbXTt2YXIgYXJnYz1hcmdzLmxlbmd0aCsxO3ZhciBhcmd2PXN0YWNrQWxsb2Mo
KGFyZ2MrMSkqNCk7SEVBUDMyW2FyZ3Y+PjJdPWFsbG9jYXRlVVRGOE9uU3RhY2sodGhpc1Byb2dy
YW0pO2Zvcih2YXIgaT0xO2k8YXJnYztpKyspe0hFQVAzMlsoYXJndj4+MikraV09YWxsb2NhdGVV
VEY4T25TdGFjayhhcmdzW2ktMV0pfUhFQVAzMlsoYXJndj4+MikrYXJnY109MDt0cnl7dmFyIHJl
dD1lbnRyeUZ1bmN0aW9uKGFyZ2MsYXJndik7ZXhpdChyZXQsdHJ1ZSl9Y2F0Y2goZSl7aWYoZSBp
bnN0YW5jZW9mIEV4aXRTdGF0dXMpe3JldHVybn1lbHNlIGlmKGU9PSJ1bndpbmQiKXtub0V4aXRS
dW50aW1lPXRydWU7cmV0dXJufWVsc2V7dmFyIHRvTG9nPWU7aWYoZSYmdHlwZW9mIGU9PT0ib2Jq
ZWN0IiYmZS5zdGFjayl7dG9Mb2c9W2UsZS5zdGFja119ZXJyKCJleGNlcHRpb24gdGhyb3duOiAi
K3RvTG9nKTtxdWl0XygxLGUpfX1maW5hbGx5e2NhbGxlZE1haW49dHJ1ZX19ZnVuY3Rpb24gcnVu
KGFyZ3Mpe2FyZ3M9YXJnc3x8YXJndW1lbnRzXztpZihydW5EZXBlbmRlbmNpZXM+MCl7cmV0dXJu
fXByZVJ1bigpO2lmKHJ1bkRlcGVuZGVuY2llcz4wKXJldHVybjtmdW5jdGlvbiBkb1J1bigpe2lm
KGNhbGxlZFJ1bilyZXR1cm47Y2FsbGVkUnVuPXRydWU7TW9kdWxlWyJjYWxsZWRSdW4iXT10cnVl
O2lmKEFCT1JUKXJldHVybjtpbml0UnVudGltZSgpO3ByZU1haW4oKTtpZihNb2R1bGVbIm9uUnVu
dGltZUluaXRpYWxpemVkIl0pTW9kdWxlWyJvblJ1bnRpbWVJbml0aWFsaXplZCJdKCk7aWYoc2hv
dWxkUnVuTm93KWNhbGxNYWluKGFyZ3MpO3Bvc3RSdW4oKX1pZihNb2R1bGVbInNldFN0YXR1cyJd
KXtNb2R1bGVbInNldFN0YXR1cyJdKCJSdW5uaW5nLi4uIik7c2V0VGltZW91dChmdW5jdGlvbigp
e3NldFRpbWVvdXQoZnVuY3Rpb24oKXtNb2R1bGVbInNldFN0YXR1cyJdKCIiKX0sMSk7ZG9SdW4o
KX0sMSl9ZWxzZXtkb1J1bigpfX1Nb2R1bGVbInJ1biJdPXJ1bjtmdW5jdGlvbiBleGl0KHN0YXR1
cyxpbXBsaWNpdCl7aWYoaW1wbGljaXQmJm5vRXhpdFJ1bnRpbWUmJnN0YXR1cz09PTApe3JldHVy
bn1pZihub0V4aXRSdW50aW1lKXt9ZWxzZXtBQk9SVD10cnVlO0VYSVRTVEFUVVM9c3RhdHVzO2V4
aXRSdW50aW1lKCk7aWYoTW9kdWxlWyJvbkV4aXQiXSlNb2R1bGVbIm9uRXhpdCJdKHN0YXR1cyl9
cXVpdF8oc3RhdHVzLG5ldyBFeGl0U3RhdHVzKHN0YXR1cykpfWlmKE1vZHVsZVsicHJlSW5pdCJd
KXtpZih0eXBlb2YgTW9kdWxlWyJwcmVJbml0Il09PSJmdW5jdGlvbiIpTW9kdWxlWyJwcmVJbml0
Il09W01vZHVsZVsicHJlSW5pdCJdXTt3aGlsZShNb2R1bGVbInByZUluaXQiXS5sZW5ndGg+MCl7
TW9kdWxlWyJwcmVJbml0Il0ucG9wKCkoKX19dmFyIHNob3VsZFJ1bk5vdz10cnVlO2lmKE1vZHVs
ZVsibm9Jbml0aWFsUnVuIl0pc2hvdWxkUnVuTm93PWZhbHNlO25vRXhpdFJ1bnRpbWU9dHJ1ZTty
dW4oKTsKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL21lbWNweS13YXNtLWxhcmdlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL21lbWNweS13YXNtLWxhcmdl
LmpzCShyZXZpc2lvbiAyNzkwMDkpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9tZW1jcHkt
d2FzbS1sYXJnZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDUgQEAKIC8vQCBza2lwIGlm
ICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3Ry
ZXNzLXRlc3QucHkKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VFeGVjdXRhYmxlQWxsb2NhdGlv
bkZ1eno9ZmFsc2UiKQogLy8gU291cmNlIGluIHdhc20vc3RyZXNzL21lbWNweS13YXNtCiBpZiAo
dHlwZW9mIFdlYkFzc2VtYmx5ID09PSAib2JqZWN0IikgewogCkluZGV4OiBKU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9tZW1jcHktd2FzbS1tZWRpdW0uanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9t
aWNyb2JlbmNobWFya3MvbWVtY3B5LXdhc20tbWVkaXVtLmpzCShyZXZpc2lvbiAyNzkwMDkpCisr
KyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS1tZWRpdW0uanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw1IEBACiAvL0Agc2tpcCBpZiAkbW9kZWwgPT0gIkFwcGxlIFdhdGNo
IFNlcmllcyAzIiAjIGFkZGVkIGJ5IG1hcmstanNjLXN0cmVzcy10ZXN0LnB5CisvL0AgcmVxdWly
ZU9wdGlvbnMoIi0tdXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6PWZhbHNlIikKIC8vIFNvdXJj
ZSBpbiB3YXNtL3N0cmVzcy9tZW1jcHktd2FzbQogCiBpZiAodHlwZW9mIFdlYkFzc2VtYmx5ID09
PSAib2JqZWN0IikgewpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvbWVtY3B5LXdhc20t
c21hbGwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvbWVtY3B5LXdh
c20tc21hbGwuanMJKHJldmlzaW9uIDI3OTAwOSkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtz
L21lbWNweS13YXNtLXNtYWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNSBAQAogLy9A
IHNraXAgaWYgJG1vZGVsID09ICJBcHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJr
LWpzYy1zdHJlc3MtdGVzdC5weQorLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZUV4ZWN1dGFibGVB
bGxvY2F0aW9uRnV6ej1mYWxzZSIpCiAvLyBTb3VyY2UgaW4gd2FzbS9zdHJlc3MvbWVtY3B5LXdh
c20KIGlmICh0eXBlb2YgV2ViQXNzZW1ibHkgPT09ICJvYmplY3QiKSB7CiAKSW5kZXg6IEpTVGVz
dHMvbWljcm9iZW5jaG1hcmtzL21lbWNweS13YXNtLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL21lbWNweS13YXNtLmpzCShyZXZpc2lvbiAyNzkwMDkpCisrKyBKU1Rl
c3RzL21pY3JvYmVuY2htYXJrcy9tZW1jcHktd2FzbS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw0
ICsxLDUgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVzIDMiICMg
YWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11
c2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1eno9ZmFsc2UiKQogLy8gU291cmNlIGluIHdhc20vc3Ry
ZXNzL21lbWNweS13YXNtCiBpZiAodHlwZW9mIFdlYkFzc2VtYmx5ID09PSAib2JqZWN0Iikgewog
CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy93YXNtLWVycm9yLW1lc3NhZ2UtY3Jvc3MtdGhyZWFkcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy93YXNtLWVycm9yLW1lc3NhZ2UtY3Jvc3Mt
dGhyZWFkcy5qcwkocmV2aXNpb24gMjc5MDA5KQorKysgSlNUZXN0cy9zdHJlc3Mvd2FzbS1lcnJv
ci1tZXNzYWdlLWNyb3NzLXRocmVhZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1IEBA
CisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6PWZhbHNl
IikKKwogaWYgKCR2bS5pc1dhc21TdXBwb3J0ZWQoKSkgewogICAgIHZhciBjb3VudGVyID0gMDsK
ICAgICBvYmoxID0ge1tTeW1ib2wuYXN5bmNJdGVyYXRvcl06Wy00LjAsMHgxZTNdLFtTeW1ib2wu
c2VhcmNoXTpbLTUuMCw0Mjk0OTY3Mjk3LC01LjBdLCJjb25zdHJ1Y3QiOlVpbnQ4Q2xhbXBlZEFy
cmF5Ll9fcHJvdG9fXyxbU3ltYm9sLnJlcGxhY2VdOldlYWtTZXQsW1N5bWJvbC5zcGVjaWVzXToo
KT0+bnVsbCw5MDA3MTk5MjU0NzQwOTkyOlswLDY0LCJsZW5ndGgiLCwiZGVsZXRlUHJvcGVydHki
LDIxNDc0ODM2NDgsLCJzeW1ib2wiLDQyOTQ5NjcyOTcsImdldCIsMTI4LFN5bWJvbC50b1ByaW1p
dGl2ZV0sIlEiOjZ9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzkw
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMjEtMDYtMjEgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5j
b20+CisKKyAgICAgICAgaml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3Mgc2hvdWxkbid0IHJldHVy
biB0cnVlIHdoZW4gd2UgZmFpbCB0byBjb21waWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxNTUKKworICAgICAgICBSZXZpZXdlZCBieSBUYWRl
dSBaYWdhbGxvLgorCisgICAgICAgIGppdENvbXBpbGVBbmRTZXRIZXVyaXN0aWNzIHNob3VsZCBv
bmx5IHJldHVybiB0cnVlIHdoZW4gd2UndmUgc3VjY2Vzc2Z1bGx5CisgICAgICAgIGNvbXBpbGVk
IGEgYmFzZWxpbmUgSklUIENvZGVCbG9jay4gSG93ZXZlciwgd2l0aCB0aGUgcmV3cml0ZSB0byB1
c2luZyBhCisgICAgICAgIHVuaWZpZWQgSklUIHdvcmtsaXN0LCB0aGUgY29kZSB3YXMgY2hhbmdl
ZCB0byByZXR1cm5pbmcgdHJ1ZSB3aGVuIGEKKyAgICAgICAgY29tcGlsYXRpb24gZmluaXNoZWQs
IHJlZ2FyZGxlc3Mgb2YgaXQgYmVpbmcgc3VjY2Vzc2Z1bCBvciBub3QuIFRoaXMgcGF0Y2gKKyAg
ICAgICAgZml4ZXMgdGhhdCBlcnJvci4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYnVnIHdhcyBm
b3VuZCBieSBvdXIgZXhpc3RpbmcgZXhlY3V0YWJsZSBhbGxvY2F0aW9uIGZ1enplciwgYnV0IGF0
IGEgbG93CisgICAgICAgIGhpdCByYXRlLiBUaGF0IGZ1enplciBvbmx5IHJhbiBhIHNpbmdsZSB0
ZXN0IGNhc2UuIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2VzCisgICAgICAgIGEgbmV3IGZvcm0g
b2YgdGhlIGV4ZWN1dGFibGUgZnV6emVyIHdoZXJlIHdlIGZhaWwgdG8gYWxsb2NhdGUgSklUIGNv
ZGUKKyAgICAgICAgcmFuZG9tbHksIGFuZCB0aGUgY3Jhc2ggbWFuaWZlc3RzIG1vcmUgcmVsaWFi
bHkuIEFuZCB0aGlzIHBhdGNoIGFsc28gaG9va3MKKyAgICAgICAgdGhlIG5ldyBmdXp6ZXIgaW50
byBtb3JlIEpTQyBzdHJlc3MgdGVzdHMuCisKKyAgICAgICAgKiBkZmcvREZHTElDTVBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpMSUNNUGhhc2U6OnJ1bik6CisgICAgICAgICogaml0L0V4
ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5jcHA6CisgICAgICAgIChKU0M6OmRvRXhlY3V0YWJsZUFs
bG9jYXRpb25GdXp6aW5nKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAocnVuSlNDKToK
KyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50
OjpqaXRDb21waWxlQW5kU2V0SGV1cmlzdGljcyk6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElO
VF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAy
MDIxLTA2LTE3ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAg
ICAgICAgIFJlaW1wbGVtZW50IEpTQzo6Q2FjaGVQYXlsb2FkIHdpdGhvdXQgRmlsZVN5c3RlbTo6
dW5tYXBWaWV3T2ZGaWxlIGFuZCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YTo6bGVha0hhbmRs
ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDI3OTAwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDg5LDkgKzM0ODksOCBA
QCBpbnQgcnVuSlNDKGNvbnN0IENvbW1hbmRMaW5lJiBvcHRpb25zLCBiCiAgICAgICAgIEpTTG9j
a0hvbGRlciBsb2NrZXIodm0pOwogICAgICAgICBpZiAoT3B0aW9uczo6dXNlRXhjZXB0aW9uRnV6
eigpKQogICAgICAgICAgICAgcHJpbnRmKCJKU0MgRVhDRVBUSU9OIEZVWlo6IGVuY291bnRlcmVk
ICV1IGNoZWNrcy5cbiIsIG51bWJlck9mRXhjZXB0aW9uRnV6ekNoZWNrcygpKTsKLSAgICAgICAg
Ym9vbCBmaXJlQXRFbmFibGVkID0KLSAgICAgICAgT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVBbGxv
Y2F0aW9uRnV6ekF0KCkgfHwgT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ekF0
T3JBZnRlcigpOwotICAgICAgICBpZiAoT3B0aW9uczo6dXNlRXhlY3V0YWJsZUFsbG9jYXRpb25G
dXp6KCkgJiYgKCFmaXJlQXRFbmFibGVkIHx8IE9wdGlvbnM6OnZlcmJvc2VFeGVjdXRhYmxlQWxs
b2NhdGlvbkZ1enooKSkpCisgICAgICAgIGJvb2wgZmlyZUF0RW5hYmxlZCA9IE9wdGlvbnM6OmZp
cmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpBdCgpIHx8IE9wdGlvbnM6OmZpcmVFeGVjdXRhYmxl
QWxsb2NhdGlvbkZ1enpBdE9yQWZ0ZXIoKTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VF
eGVjdXRhYmxlQWxsb2NhdGlvbkZ1enooKSAmJiBPcHRpb25zOjp1c2VFeGVjdXRhYmxlQWxsb2Nh
dGlvbkZ1enooKSAmJiAhZmlyZUF0RW5hYmxlZCkKICAgICAgICAgICAgIHByaW50ZigiSlNDIEVY
RUNVVEFCTEUgQUxMT0NBVElPTiBGVVpaOiBlbmNvdW50ZXJlZCAldSBjaGVja3MuXG4iLCBudW1i
ZXJPZkV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ekNoZWNrcygpKTsKICAgICAgICAgaWYgKE9wdGlv
bnM6OnVzZU9TUkV4aXRGdXp6KCkgJiYgT3B0aW9uczo6dmVyYm9zZU9TUkV4aXRGdXp6KCkpIHsK
ICAgICAgICAgICAgIHByaW50ZigiSlNDIE9TUiBFWElUIEZVWlo6IGVuY291bnRlcmVkICV1IHN0
YXRpYyBjaGVja3MuXG4iLCBudW1iZXJPZlN0YXRpY09TUkV4aXRGdXp6Q2hlY2tzKCkpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMSUNNUGhhc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTElDTVBoYXNlLmNwcAkocmV2aXNpb24g
Mjc5MDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMSUNNUGhhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMTgsOSArMjE4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHN0YWNrSW5kZXggPSBs
b29wU3RhY2suc2l6ZSgpOyBzdGFja0luZGV4LS07KSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChVTkxJS0VMWShPcHRpb25zOjp1c2VMSUNNRnV6emluZygpKSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3RleHByIGRvdWJsZSByYW5nZSA9IHN0YXRpY19jYXN0PGRvdWJsZT4oc3Rk
OjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHVpbnQzMl90IGZsb29yID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KCgxLjAgLSBPcHRpb25z
OjphbGxvd0hvaXN0aW5nTElDTVByb2JhYmlsaXR5KCkpICogcmFuZ2UpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBzaG91bGRBdHRlbXB0SG9pc3QgPSByYW5kb20uZ2V0VWludDMyKCkg
Pj0gZmxvb3I7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZEF0dGVtcHRIb2lz
dCA9IHJhbmRvbS5yZXR1cm5UcnVlV2l0aFByb2JhYmlsaXR5KE9wdGlvbnM6OmFsbG93SG9pc3Rp
bmdMSUNNUHJvYmFiaWxpdHkoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3Vs
ZEF0dGVtcHRIb2lzdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVj
dXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6LmNwcAkocmV2aXNpb24gMjc5MDA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiVGVzdFJ1bm5lclV0
aWxzLmgiCiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUmFuZG9tLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00
MSw2ICs0MiwyMiBAQCB1bnNpZ25lZCBudW1iZXJPZkV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6CiBF
eGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpSZXN1bHQgZG9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpp
bmcoKQogewogICAgIEFTU0VSVChPcHRpb25zOjp1c2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enoo
KSk7CisKKyAgICBpZiAoT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6elJhbmRv
bWx5KCkpIHsKKyAgICAgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxXZWFrUmFuZG9tPiBy
YW5kb207CisgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAgICAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbXSAoKSB7CisgICAgICAgICAgICByYW5kb20uY29uc3RydWN0KCk7
CisgICAgICAgIH0pOworCisgICAgICAgIHN0YXRpYyBMb2NrIGZ1enppbmdMb2NrOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgZnV6emluZ0xvY2sgfTsKKyAgICAgICAgCisgICAgICAgIGlmIChy
YW5kb20tPnJldHVyblRydWVXaXRoUHJvYmFiaWxpdHkoT3B0aW9uczo6ZmlyZUV4ZWN1dGFibGVB
bGxvY2F0aW9uRnV6elJhbmRvbWx5UHJvYmFiaWxpdHkoKSkpCisgICAgICAgICAgICByZXR1cm4g
UHJldGVuZFRvRmFpbEV4ZWN1dGFibGVBbGxvY2F0aW9uOworCisgICAgICAgIHJldHVybiBBbGxv
d05vcm1hbEV4ZWN1dGFibGVBbGxvY2F0aW9uOworICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBv
bGRWYWx1ZTsKICAgICB1bnNpZ25lZCBuZXdWYWx1ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjc5MDA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzc4LDcgKzM3OCw3IEBAIGlubGluZSBib29sIGppdENvbXBpbGVBbmRTZXRIZXVy
aXN0aWNzKFYKICAgICAKICAgICBKSVRXb3JrbGlzdDo6U3RhdGUgd29ya2xpc3RTdGF0ZSA9IEpJ
VFdvcmtsaXN0OjplbnN1cmVHbG9iYWxXb3JrbGlzdCgpLmNvbXBsZXRlQWxsUmVhZHlQbGFuc0Zv
clZNKHZtLCBKSVRDb21waWxhdGlvbktleShjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTW9kZTo6
QmFzZWxpbmUpKTsKIAotICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpC
YXNlbGluZUpJVCB8fCB3b3JrbGlzdFN0YXRlID09IEpJVFdvcmtsaXN0OjpDb21waWxlZCkgewor
ICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCkgewog
ICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICIgICAgQ29kZSB3YXMg
YWxyZWFkeSBjb21waWxlZC4iKTsKICAgICAgICAgY29kZUJsb2NrLT5qaXRTb29uKCk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtNDgzLDcgKzQ4Myw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNM
KGxvb3Bfb3NyKQogICAgIAogICAgIENPREVCTE9DS19MT0dfRVZFTlQoY29kZUJsb2NrLCAib3Ny
RW50cnkiLCAoImF0ICIsIGxvb3BPU1JFbnRyeUJ5dGVjb2RlSW5kZXgpKTsKIAotICAgIEFTU0VS
VChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCk7CisgICAgUkVM
RUFTRV9BU1NFUlQoY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6QmFzZWxpbmVKSVQp
OwogCiAgICAgY29uc3QgSklUQ29kZU1hcCYgY29kZU1hcCA9IGNvZGVCbG9jay0+aml0Q29kZU1h
cCgpOwogICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+IGNvZGVMb2NhdGlvbiA9
IGNvZGVNYXAuZmluZChsb29wT1NSRW50cnlCeXRlY29kZUluZGV4KTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAkocmV2aXNpb24gMjc5MDA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzkzLDYgKzM5Myw4IEBAIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgY2FuVXNlSklU
Q2FnZSgpOwogICAgIHYoQm9vbCwgdXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6LCBmYWxzZSwg
Tm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihVbnNpZ25lZCwgZmlyZUV4ZWN1dGFibGVBbGxvY2F0
aW9uRnV6ekF0LCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KFVuc2lnbmVkLCBmaXJlRXhl
Y3V0YWJsZUFsbG9jYXRpb25GdXp6QXRPckFmdGVyLCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAg
ICB2KEJvb2wsIGZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpSYW5kb21seSwgZmFsc2UsIE5v
cm1hbCwgbnVsbHB0cikgXAorICAgIHYoRG91YmxlLCBmaXJlRXhlY3V0YWJsZUFsbG9jYXRpb25G
dXp6UmFuZG9tbHlQcm9iYWJpbGl0eSwgMC4xLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJv
b2wsIHZlcmJvc2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enosIGZhbHNlLCBOb3JtYWwsIG51bGxw
dHIpIFwKICAgICBcCiAgICAgdihCb29sLCB1c2VPU1JFeGl0RnV6eiwgZmFsc2UsIE5vcm1hbCwg
bnVsbHB0cikgXApJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTAwOSkKKysrIFNvdXJjZS9XVEYvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDYtMjEgIFNhYW0gQmFy
YXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgaml0Q29tcGlsZUFuZFNldEhldXJp
c3RpY3Mgc2hvdWxkbid0IHJldHVybiB0cnVlIHdoZW4gd2UgZmFpbCB0byBjb21waWxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxNTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBUYWRldSBaYWdhbGxvLgorCisgICAgICAgICogd3RmL1dlYWtSYW5k
b20uaDoKKwogMjAyMS0wNi0xNyAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgTWFjLXNwZWNpZmljIENQVVRpbWUgZnVuY3Rpb25zCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9XZWFrUmFuZG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvV2Vha1JhbmRv
bS5oCShyZXZpc2lvbiAyNzkwMDkpCisrKyBTb3VyY2UvV1RGL3d0Zi9XZWFrUmFuZG9tLmgJKHdv
cmtpbmcgY29weSkKQEAgLTg1LDYgKzg1LDE5IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0K
IAorICAgIGJvb2wgcmV0dXJuVHJ1ZVdpdGhQcm9iYWJpbGl0eShkb3VibGUgcHJvYmFiaWxpdHkp
CisgICAgeworICAgICAgICBBU1NFUlQoMC4wIDw9IHByb2JhYmlsaXR5ICYmIHByb2JhYmlsaXR5
IDw9IDEuMCk7CisKKyAgICAgICAgaWYgKCFwcm9iYWJpbGl0eSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICBkb3VibGUgdmFsdWUgPSBnZXRVaW50MzIoKTsKKyAgICAgICAg
aWYgKHZhbHVlIDw9IHN0YXRpY19jYXN0PGRvdWJsZT4oc3RkOjpudW1lcmljX2xpbWl0czx1bnNp
Z25lZD46Om1heCgpKSAqIHByb2JhYmlsaXR5KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBzdGF0aWMgdW5zaWduZWQgbG93T2Zm
c2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFdlYWtSYW5kb20sIG1fbG93KTsgfQogICAg
IHN0YXRpYyB1bnNpZ25lZCBoaWdoT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFdl
YWtSYW5kb20sIG1faGlnaCk7IH0KIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc5MDg3KQorKysgVG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDYtMjEgIFNhYW0gQmFyYXRp
ICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgaml0Q29tcGlsZUFuZFNldEhldXJpc3Rp
Y3Mgc2hvdWxkbid0IHJldHVybiB0cnVlIHdoZW4gd2UgZmFpbCB0byBjb21waWxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxNTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBUYWRldSBaYWdhbGxvLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0czoKKwogMjAyMS0wNi0yMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hl
bmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBNaWdyYXRlIEFwcCBQcml2YWN5IFJlcG9ydCBjb2Rl
IGZyb20gV2ViS2l0QWRkaXRpb25zCkluZGV4OiBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNz
LXRlc3RzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMJ
KHJldmlzaW9uIDI3OTAwOSkKKysrIFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMJ
KHdvcmtpbmcgY29weSkKQEAgLTU1Niw2ICs1NTYsNyBAQCBCM08xX09QVElPTlMgPSBbIi0tZGVm
YXVsdEIzT3B0TGV2ZWw9MSJdCiBCM08wX09QVElPTlMgPSBbIi0tbWF4REZHTm9kZXNJbkJhc2lj
QmxvY2tGb3JQcmVjaXNlQW5hbHlzaXM9MTAwIiwgIi0tZGVmYXVsdEIzT3B0TGV2ZWw9MCJdCiBG
VExfT1BUSU9OUyA9IFsiLS11c2VGVExKSVQ9dHJ1ZSJdCiBGT1JDRV9MTElOVF9FWElUX09QVElP
TlMgPSBbIi0tZm9yY2VPU1JFeGl0VG9MTEludD10cnVlIl0KK0VYRUNVVEFCTEVfRlVaWkVSX09Q
VElPTlMgPSBbIi0tdXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6PXRydWUiLCAiLS1maXJlRXhl
Y3V0YWJsZUFsbG9jYXRpb25GdXp6UmFuZG9tbHk9dHJ1ZSJdCiAKIHJlcXVpcmVfcmVsYXRpdmUg
IndlYmtpdHJ1YnkvanNjLXN0cmVzcy10ZXN0LXdyaXRlci0jeyR0ZXN0V3JpdGVyfSIKIApAQCAt
ODI4LDcgKzgyOSw3IEBAIGRlZiBydW5GVExFYWdlcldhdGNoZG9nKCpvcHRpb25hbFRlc3RTcGUK
IGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRWYWxpZGF0ZSgqb3B0aW9uYWxUZXN0U3BlY2lm
aWNPcHRpb25zKQotICAgIHJ1bigiZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS12YWxpZGF0ZUdyYXBo
PXRydWUiLCAiLS12YWxpZGF0ZUJDRT10cnVlIiwgIi0tYWlyRm9yY2VJUkNBbGxvY2F0b3I9dHJ1
ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMgKyBFQUdFUl9PUFRJT05TICsgQ09M
TEVDVF9DT05USU5VT1VTTFlfT1BUSU9OUyArIEZPUkNFX0xMSU5UX0VYSVRfT1BUSU9OUyArIG9w
dGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdCIs
ICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICItLXZhbGlkYXRlQkNFPXRydWUiLCAiLS1haXJGb3Jj
ZUlSQ0FsbG9jYXRvcj10cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUyArIEVB
R0VSX09QVElPTlMgKyBDT0xMRUNUX0NPTlRJTlVPVVNMWV9PUFRJT05TICsgRk9SQ0VfTExJTlRf
RVhJVF9PUFRJT05TICsgRVhFQ1VUQUJMRV9GVVpaRVJfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykpCiBlbmQKIAogZGVmIHJ1bkZUTEVhZ2VyTm9DSklUQjNPMSgqb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>