<?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>6279</bug_id>
          
          <creation_ts>2005-12-28 14:54:57 -0800</creation_ts>
          <short_desc>Patch: give internal functions names (KJS merge)</short_desc>
          <delta_ts>2006-02-21 07:06:33 -0800</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>420+</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>7383</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Maks Orlovich">maksim</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>27070</commentid>
    <comment_count>0</comment_count>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2005-12-28 14:54:57 -0800</bug_when>
    <thetext>The attached is a preliminary patch to give builtin functions names, and have 
them print out in the way mozilla and KJS testsuites expect (mostly --- some 
mozilla testcases has a requirement on body indenting, but this fixes a 
couple). I&apos;ll probably rediff it against actual JSC later on. 
 
This basically does: 
-Move keeping track of name into InternalFunctionImp 
-Set the name when grabbing functions from hashtable 
-Set the name of manual managed properties by hand 
-Use the name when printing internal functions 
 
Based on the work done by David Faure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27071</commentid>
    <comment_count>1</comment_count>
      <attachid>5345</attachid>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2005-12-28 14:56:18 -0800</bug_when>
    <thetext>Created attachment 5345
patch (sorta preliminary)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33555</commentid>
    <comment_count>2</comment_count>
      <attachid>6635</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-20 22:12:16 -0800</bug_when>
    <thetext>Created attachment 6635
improved patch that applies to trunk and does more cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33567</commentid>
    <comment_count>3</comment_count>
      <attachid>6635</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-20 23:06:24 -0800</bug_when>
    <thetext>Comment on attachment 6635
improved patch that applies to trunk and does more cleanup

Why does object_object.h now have to include function.h?

Why does kjs_binding.h now have to include function_object.h and internal.h?

r=me anyway</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33571</commentid>
    <comment_count>4</comment_count>
      <attachid>6635</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-02-20 23:18:33 -0800</bug_when>
    <thetext>Comment on attachment 6635
improved patch that applies to trunk and does more cleanup

Maciej and I talked about some changes on IRC, which I pre-emptively r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33578</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-20 23:42:45 -0800</bug_when>
    <thetext>&gt; Why does object_object.h now have to include function.h?

No reason - fixed.

&gt; Why does kjs_binding.h now have to include function_object.h and internal.h?

No reason any more. Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33593</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-21 07:06:33 -0800</bug_when>
    <thetext>Maciej landed this last night.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5345</attachid>
            <date>2005-12-28 14:56:18 -0800</date>
            <delta_ts>2006-02-20 22:12:16 -0800</delta_ts>
            <desc>patch (sorta preliminary)</desc>
            <filename>nm2.diff</filename>
            <type>text/plain</type>
            <size>24705</size>
            <attacher name="Maks Orlovich">maksim</attacher>
            
              <data encoding="base64">SW5kZXg6IGFycmF5X29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGFycmF5X29iamVjdC5oCShyZXZp
c2lvbiA0OTE2NzUpCisrKyBhcnJheV9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiAr
MjIsNyBAQAogI2lmbmRlZiBfQVJSQVlfT0JKRUNUX0hfCiAjZGVmaW5lIF9BUlJBWV9PQkpFQ1Rf
SF8KIAorI2luY2x1ZGUgImFycmF5X2luc3RhbmNlLmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIK
ICNpbmNsdWRlICJmdW5jdGlvbl9vYmplY3QuaCIKIApJbmRleDogaW50ZXJuYWwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGludGVybmFsLmNwcAkocmV2aXNpb24gNDkxNjc1KQorKysgaW50ZXJuYWwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OTksMTkgKzU5OSwxOSBAQCB2b2lkIEludGVycHJldGVySW1w
Ojp1bmxvY2soKQogICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMsICJ1bmRlZmluZWQiLCAgVW5kZWZp
bmVkKCksIERvbnRFbnVtfERvbnREZWxldGUpOwogCiAgIC8vIGJ1aWx0LWluIGZ1bmN0aW9ucwot
ICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMsICJldmFsIiwgICAgICAgbmV3IEdsb2JhbEZ1bmNJbXAo
Jmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OkV2YWwsIDEpLCBEb250RW51bSk7
Ci0gIGdsb2JhbC0+cHV0KCZnbG9iRXhlYywgInBhcnNlSW50IiwgICBuZXcgR2xvYmFsRnVuY0lt
cCgmZ2xvYkV4ZWMsIGZ1bmNQcm90bywgR2xvYmFsRnVuY0ltcDo6UGFyc2VJbnQsIDIpLCBEb250
RW51bSk7Ci0gIGdsb2JhbC0+cHV0KCZnbG9iRXhlYywgInBhcnNlRmxvYXQiLCBuZXcgR2xvYmFs
RnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQcm90bywgR2xvYmFsRnVuY0ltcDo6UGFyc2VGbG9hdCwg
MSksIERvbnRFbnVtKTsKLSAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiaXNOYU4iLCAgICAgIG5l
dyBHbG9iYWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBHbG9iYWxGdW5jSW1wOjpJc05h
TiwgMSksIERvbnRFbnVtKTsKLSAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiaXNGaW5pdGUiLCAg
IG5ldyBHbG9iYWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBHbG9iYWxGdW5jSW1wOjpJ
c0Zpbml0ZSwgMSksIERvbnRFbnVtKTsKLSAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiZXNjYXBl
IiwgICAgIG5ldyBHbG9iYWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBHbG9iYWxGdW5j
SW1wOjpFc2NhcGUsIDEpLCBEb250RW51bSk7Ci0gIGdsb2JhbC0+cHV0KCZnbG9iRXhlYywgInVu
ZXNjYXBlIiwgICBuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQcm90bywgR2xvYmFs
RnVuY0ltcDo6VW5Fc2NhcGUsIDEpLCBEb250RW51bSk7Ci0gIGdsb2JhbC0+cHV0KCZnbG9iRXhl
YywgImRlY29kZVVSSSIsICBuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQcm90bywg
R2xvYmFsRnVuY0ltcDo6RGVjb2RlVVJJLCAxKSwgRG9udEVudW0pOwotICBnbG9iYWwtPnB1dCgm
Z2xvYkV4ZWMsICJkZWNvZGVVUklDb21wb25lbnQiLCBuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4
ZWMsIGZ1bmNQcm90bywgR2xvYmFsRnVuY0ltcDo6RGVjb2RlVVJJQ29tcG9uZW50LCAxKSwgRG9u
dEVudW0pOwotICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMsICJlbmNvZGVVUkkiLCAgbmV3IEdsb2Jh
bEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OkVuY29kZVVSSSwg
MSksIERvbnRFbnVtKTsKLSAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiZW5jb2RlVVJJQ29tcG9u
ZW50IiwgbmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJ
bXA6OkVuY29kZVVSSUNvbXBvbmVudCwgMSksIERvbnRFbnVtKTsKKyAgZ2xvYmFsLT5wdXQoJmds
b2JFeGVjLCAiZXZhbCIsICAgICAgIG5ldyBHbG9iYWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1By
b3RvLCBHbG9iYWxGdW5jSW1wOjpFdmFsLCAxLCAiZXZhbCIpLCBEb250RW51bSk7CisgIGdsb2Jh
bC0+cHV0KCZnbG9iRXhlYywgInBhcnNlSW50IiwgICBuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4
ZWMsIGZ1bmNQcm90bywgR2xvYmFsRnVuY0ltcDo6UGFyc2VJbnQsIDIsICJwYXJzZUludCIpLCBE
b250RW51bSk7CisgIGdsb2JhbC0+cHV0KCZnbG9iRXhlYywgInBhcnNlRmxvYXQiLCBuZXcgR2xv
YmFsRnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQcm90bywgR2xvYmFsRnVuY0ltcDo6UGFyc2VGbG9h
dCwgMSwgInBhcnNlRmxvYXQiKSwgRG9udEVudW0pOworICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMs
ICJpc05hTiIsICAgICAgbmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEds
b2JhbEZ1bmNJbXA6OklzTmFOLCAxLCAiaXNOYU4iKSwgRG9udEVudW0pOworICBnbG9iYWwtPnB1
dCgmZ2xvYkV4ZWMsICJpc0Zpbml0ZSIsICAgbmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBm
dW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OklzRmluaXRlLCAxLCAiaXNGaW5pdGUiKSwgRG9udEVu
dW0pOworICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMsICJlc2NhcGUiLCAgICAgbmV3IEdsb2JhbEZ1
bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OkVzY2FwZSwgMSwgImVz
Y2FwZSIpLCBEb250RW51bSk7CisgIGdsb2JhbC0+cHV0KCZnbG9iRXhlYywgInVuZXNjYXBlIiwg
ICBuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQcm90bywgR2xvYmFsRnVuY0ltcDo6
VW5Fc2NhcGUsIDEsICJ1bmVzY2FwZSIpLCBEb250RW51bSk7CisgIGdsb2JhbC0+cHV0KCZnbG9i
RXhlYywgImRlY29kZVVSSSIsICBuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQcm90
bywgR2xvYmFsRnVuY0ltcDo6RGVjb2RlVVJJLCAxLCAiZGVjb2RlVVJJIiksIERvbnRFbnVtKTsK
KyAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiZGVjb2RlVVJJQ29tcG9uZW50IiwgbmV3IEdsb2Jh
bEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OkRlY29kZVVSSUNv
bXBvbmVudCwgMSwgImRlY29kZVVSSUNvbXBvbmVudCIpLCBEb250RW51bSk7CisgIGdsb2JhbC0+
cHV0KCZnbG9iRXhlYywgImVuY29kZVVSSSIsICBuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4ZWMs
IGZ1bmNQcm90bywgR2xvYmFsRnVuY0ltcDo6RW5jb2RlVVJJLCAxLCAiZW5jb2RlVVJJIiksIERv
bnRFbnVtKTsKKyAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiZW5jb2RlVVJJQ29tcG9uZW50Iiwg
bmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OkVu
Y29kZVVSSUNvbXBvbmVudCwgMSwgImVuY29kZVVSSUNvbXBvbmVudCIpLCBEb250RW51bSk7CiAj
aWZuZGVmIE5ERUJVRwotICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMsICJranNwcmludCIsICAgbmV3
IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OktKU1By
aW50LCAxKSwgRG9udEVudW0pOworICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMsICJranNwcmludCIs
ICAgbmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6
OktKU1ByaW50LCAxLCAia2pzcHJpbnQiKSwgRG9udEVudW0pOwogI2VuZGlmCiAKICAgLy8gYnVp
bHQtaW4gb2JqZWN0cwpAQCAtODM0LDYgKzgzNCwxMSBAQCBJbnRlcm5hbEZ1bmN0aW9uSW1wOjpJ
bnRlcm5hbEZ1bmN0aW9uSW1wCiB7CiB9CiAKK0ludGVybmFsRnVuY3Rpb25JbXA6OkludGVybmFs
RnVuY3Rpb25JbXAoRnVuY3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQcm90bywgY29uc3QgSWRlbnRp
ZmllciYgX2lkZW50KQorICA6IE9iamVjdEltcChmdW5jUHJvdG8pLCBpZGVudChfaWRlbnQpCit7
Cit9CisKIGJvb2wgSW50ZXJuYWxGdW5jdGlvbkltcDo6aW1wbGVtZW50c0hhc0luc3RhbmNlKCkg
Y29uc3QKIHsKICAgcmV0dXJuIHRydWU7CkluZGV4OiByZWdleHBfb2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSByZWdleHBfb2JqZWN0LmNwcAkocmV2aXNpb24gNDkxNjc1KQorKysgcmVnZXhwX29i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDE3ICs1NCwxNyBAQCBSZWdFeHBQcm90b3R5
cGVJbXA6OlJlZ0V4cFByb3RvdHlwZUltcChFCiAgIC8vIFRoZSBjb25zdHJ1Y3RvciB3aWxsIGJl
IGFkZGVkIGxhdGVyIGluIFJlZ0V4cE9iamVjdCdzIGNvbnN0cnVjdG9yICg/KQogCiAgIHN0YXRp
YyBjb25zdCBJZGVudGlmaWVyIGV4ZWNQcm9wZXJ0eU5hbWUoImV4ZWMiKTsKLSAgcHV0RGlyZWN0
KGV4ZWNQcm9wZXJ0eU5hbWUsICAgICBuZXcgUmVnRXhwUHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1By
b3RvLFJlZ0V4cFByb3RvRnVuY0ltcDo6RXhlYywgICAgIDApLCBEb250RW51bSk7CisgIHB1dERp
cmVjdChleGVjUHJvcGVydHlOYW1lLCAgICAgbmV3IFJlZ0V4cFByb3RvRnVuY0ltcChleGVjLGZ1
bmNQcm90byxSZWdFeHBQcm90b0Z1bmNJbXA6OkV4ZWMsMCxleGVjUHJvcGVydHlOYW1lKSwgRG9u
dEVudW0pOwogICBzdGF0aWMgY29uc3QgSWRlbnRpZmllciB0ZXN0UHJvcGVydHlOYW1lKCJ0ZXN0
Iik7Ci0gIHB1dERpcmVjdCh0ZXN0UHJvcGVydHlOYW1lLCAgICAgbmV3IFJlZ0V4cFByb3RvRnVu
Y0ltcChleGVjLGZ1bmNQcm90byxSZWdFeHBQcm90b0Z1bmNJbXA6OlRlc3QsICAgICAwKSwgRG9u
dEVudW0pOwotICBwdXREaXJlY3QodG9TdHJpbmdQcm9wZXJ0eU5hbWUsIG5ldyBSZWdFeHBQcm90
b0Z1bmNJbXAoZXhlYyxmdW5jUHJvdG8sUmVnRXhwUHJvdG9GdW5jSW1wOjpUb1N0cmluZywgMCks
IERvbnRFbnVtKTsKKyAgcHV0RGlyZWN0KHRlc3RQcm9wZXJ0eU5hbWUsICAgICBuZXcgUmVnRXhw
UHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1Byb3RvLFJlZ0V4cFByb3RvRnVuY0ltcDo6VGVzdCwwLHRl
c3RQcm9wZXJ0eU5hbWUpLCBEb250RW51bSk7CisgIHB1dERpcmVjdCh0b1N0cmluZ1Byb3BlcnR5
TmFtZSwgbmV3IFJlZ0V4cFByb3RvRnVuY0ltcChleGVjLGZ1bmNQcm90byxSZWdFeHBQcm90b0Z1
bmNJbXA6OlRvU3RyaW5nLDAsdG9TdHJpbmdQcm9wZXJ0eU5hbWUpLCBEb250RW51bSk7CiB9CiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZWdFeHBQcm90b0Z1bmNJbXAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJlZ0V4cFByb3RvRnVuY0ltcDo6UmVnRXhwUHJv
dG9GdW5jSW1wKEV4ZWNTdGF0ZSAqZXhlYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZ1bmN0aW9uUHJvdG90eXBlSW1wICpmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVu
KQotICA6IEludGVybmFsRnVuY3Rpb25JbXAoZnVuY1Byb3RvKSwgaWQoaSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHJvdG90eXBlSW1wICpmdW5jUHJv
dG8sIGludCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQorICA6IEludGVybmFs
RnVuY3Rpb25JbXAoZnVuY1Byb3RvLCBuYW1lKSwgaWQoaSkKIHsKICAgcHV0RGlyZWN0KGxlbmd0
aFByb3BlcnR5TmFtZSwgbGVuLCBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KSW5k
ZXg6IG51bWJlcl9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBudW1iZXJfb2JqZWN0LmgJKHJldmlz
aW9uIDQ5MTY3NSkKKysrIG51bWJlcl9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyAr
NTcsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgY2xhc3MgTnVtYmVyUHJvdG9GdW5jSW1wIDogcHVi
bGljIEludGVybmFsRnVuY3Rpb25JbXAgewogICBwdWJsaWM6CiAgICAgTnVtYmVyUHJvdG9GdW5j
SW1wKEV4ZWNTdGF0ZSAqZXhlYywgRnVuY3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQcm90bywKLSAg
ICAgICAgICAgICAgICAgICAgICAgaW50IGksIGludCBsZW4pOworICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAKICAgICB2aXJ0
dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25zdDsKICAgICB2aXJ0dWFsIFZhbHVlSW1wICpj
YWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIE9iamVjdEltcCAqdGhpc09iaiwgY29uc3Qg
TGlzdCAmYXJncyk7CkluZGV4OiBmdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGZ1bmN0aW9uLmgJ
KHJldmlzaW9uIDQ5MTY3NSkKKysrIGZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcg
KzI1LDYgQEAKICNkZWZpbmUgX0tKU19GVU5DVElPTl9IXwogCiAjaW5jbHVkZSAiaW50ZXJuYWwu
aCIKLSNpbmNsdWRlICJhcnJheV9pbnN0YW5jZS5oIgogCiBuYW1lc3BhY2UgS0pTIHsKIApAQCAt
NTUsMTMgKzU0LDEwIEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZpcnR1YWwgQ29kZVR5cGUgY29k
ZVR5cGUoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIENvbXBsZXRpb24gZXhlY3V0ZShFeGVj
U3RhdGUgKmV4ZWMpID0gMDsKLSAgICBJZGVudGlmaWVyIG5hbWUoKSBjb25zdCB7IHJldHVybiBp
ZGVudDsgfQogCiAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8gKmNsYXNzSW5mbygpIGNvbnN0
IHsgcmV0dXJuICZpbmZvOyB9CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwotICBw
cm90ZWN0ZWQ6CiAgICAgUGFyYW1ldGVyICpwYXJhbTsKLSAgICBJZGVudGlmaWVyIGlkZW50Owog
CiAgIHByaXZhdGU6CiAgICAgc3RhdGljIFZhbHVlSW1wICphcmd1bWVudHNHZXR0ZXIoRXhlY1N0
YXRlICosIGNvbnN0IElkZW50aWZpZXIgJiwgY29uc3QgUHJvcGVydHlTbG90Jik7CkBAIC05Nyw3
ICs5Myw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIElkZW50aWZpZXImIG9wZXJhdG9yW10oaW50
IGluZGV4KTsKICAgICBJZGVudGlmaWVyJiBvcGVyYXRvcltdKGNvbnN0IElkZW50aWZpZXIgJmlu
ZGV4SWRlbnRpZmllcik7CiAgICAgYm9vbCBpc01hcHBlZChjb25zdCBJZGVudGlmaWVyICZpbmRl
eCkgY29uc3Q7Ci0gICAgdm9pZCBJbmRleFRvTmFtZU1hcDo6dW5NYXAoY29uc3QgSWRlbnRpZmll
ciAmaW5kZXgpOworICAgIHZvaWQgdW5NYXAoY29uc3QgSWRlbnRpZmllciAmaW5kZXgpOwogICAg
IAogICBwcml2YXRlOgogICAgIEluZGV4VG9OYW1lTWFwKCk7IC8vIHByZXZlbnQgY29uc3RydWN0
aW9uIHcvbyBwYXJhbWV0ZXJzCkBAIC0xNDYsNyArMTQyLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAK
ICAgY2xhc3MgR2xvYmFsRnVuY0ltcCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uSW1wIHsKICAg
cHVibGljOgotICAgIEdsb2JhbEZ1bmNJbXAoRXhlY1N0YXRlICpleGVjLCBGdW5jdGlvblByb3Rv
dHlwZUltcCAqZnVuY1Byb3RvLCBpbnQgaSwgaW50IGxlbik7CisgICAgR2xvYmFsRnVuY0ltcChF
eGVjU3RhdGUgKmV4ZWMsIEZ1bmN0aW9uUHJvdG90eXBlSW1wICpmdW5jUHJvdG8sIGludCBpLCBp
bnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKTsKICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVt
ZW50c0NhbGwoKSBjb25zdDsKICAgICB2aXJ0dWFsIFZhbHVlSW1wICpjYWxsQXNGdW5jdGlvbihF
eGVjU3RhdGUgKmV4ZWMsIE9iamVjdEltcCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAg
ICAgdmlydHVhbCBDb2RlVHlwZSBjb2RlVHlwZSgpIGNvbnN0OwpJbmRleDogb2JqZWN0X29iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gb2JqZWN0X29iamVjdC5jcHAJKHJldmlzaW9uIDQ5MTY3NSkK
KysrIG9iamVjdF9vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxOSArMzgsMjUgQEAg
T2JqZWN0UHJvdG90eXBlSW1wOjpPYmplY3RQcm90b3R5cGVJbXAoRQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQcm90bykK
ICAgOiBPYmplY3RJbXAoKSAvLyBbW1Byb3RvdHlwZV1dIGlzIE51bGwoKQogewotICAgIHB1dERp
cmVjdCh0b1N0cmluZ1Byb3BlcnR5TmFtZSwgbmV3IE9iamVjdFByb3RvRnVuY0ltcChleGVjLGZ1
bmNQcm90byxPYmplY3RQcm90b0Z1bmNJbXA6OlRvU3RyaW5nLCAgICAgICAgICAgIDApLCBEb250
RW51bSk7Ci0gICAgcHV0RGlyZWN0KHRvTG9jYWxlU3RyaW5nUHJvcGVydHlOYW1lLCBuZXcgT2Jq
ZWN0UHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1Byb3RvLE9iamVjdFByb3RvRnVuY0ltcDo6VG9Mb2Nh
bGVTdHJpbmcsMCksIERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3QodmFsdWVPZlByb3BlcnR5TmFt
ZSwgIG5ldyBPYmplY3RQcm90b0Z1bmNJbXAoZXhlYyxmdW5jUHJvdG8sT2JqZWN0UHJvdG9GdW5j
SW1wOjpWYWx1ZU9mLCAgICAgICAgICAgICAwKSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdCgi
aGFzT3duUHJvcGVydHkiLCBuZXcgT2JqZWN0UHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1Byb3RvLE9i
amVjdFByb3RvRnVuY0ltcDo6SGFzT3duUHJvcGVydHksICAgICAgICAgIDEpLCBEb250RW51bSk7
CisgICAgcHV0RGlyZWN0KHRvU3RyaW5nUHJvcGVydHlOYW1lLCBuZXcgT2JqZWN0UHJvdG9GdW5j
SW1wKGV4ZWMsZnVuY1Byb3RvLE9iamVjdFByb3RvRnVuY0ltcDo6VG9TdHJpbmcsIDAsIHRvU3Ry
aW5nUHJvcGVydHlOYW1lKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdCh0b0xvY2FsZVN0cmlu
Z1Byb3BlcnR5TmFtZSwgbmV3IE9iamVjdFByb3RvRnVuY0ltcCgKKyAgICAgICAgICAgIGV4ZWMs
ZnVuY1Byb3RvLE9iamVjdFByb3RvRnVuY0ltcDo6VG9Mb2NhbGVTdHJpbmcsMCx0b0xvY2FsZVN0
cmluZ1Byb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3QodmFsdWVPZlByb3Bl
cnR5TmFtZSwgIG5ldyBPYmplY3RQcm90b0Z1bmNJbXAoCisgICAgICAgICAgICBleGVjLGZ1bmNQ
cm90byxPYmplY3RQcm90b0Z1bmNJbXA6OlZhbHVlT2YsMCx2YWx1ZU9mUHJvcGVydHlOYW1lKSwg
RG9udEVudW0pOworICAgIHB1dERpcmVjdCgiaGFzT3duUHJvcGVydHkiLCBuZXcgT2JqZWN0UHJv
dG9GdW5jSW1wKAorICAgICAgICAgICAgZXhlYywgZnVuY1Byb3RvLCBPYmplY3RQcm90b0Z1bmNJ
bXA6Okhhc093blByb3BlcnR5LDEsImhhc093blByb3BlcnR5IiksIERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3QoInByb3BlcnR5SXNFbnVtZXJhYmxlIiwgbmV3IE9iamVjdFByb3RvRnVuY0ltcCgK
KyAgICAgICAgICAgIGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jSW1wOjpQcm9wZXJ0
eUlzRW51bWVyYWJsZSwgMSwgInByb3BlcnR5SXNFbnVtZXJhYmxlIiksIERvbnRFbnVtKTsKKyAg
ICBwdXREaXJlY3QoImlzUHJvdG90eXBlT2YiLCBuZXcgT2JqZWN0UHJvdG9GdW5jSW1wKAorICAg
ICAgICAgICAgZXhlYywgZnVuY1Byb3RvLCBPYmplY3RQcm90b0Z1bmNJbXA6OklzUHJvdG90eXBl
T2YsIDEsICJpc1Byb3RvdHlwZU9mIiksIERvbnRFbnVtKTsKIH0KIAotCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gT2JqZWN0UHJvdG9GdW5jSW1wIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKIE9iamVjdFByb3RvRnVuY0ltcDo6T2JqZWN0UHJvdG9GdW5jSW1w
KEV4ZWNTdGF0ZSAqZXhlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZ1bmN0aW9uUHJvdG90eXBlSW1wICpmdW5jUHJvdG8sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgaSwgaW50IGxlbikKLSAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1w
KGZ1bmNQcm90byksIGlkKGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKKyAgOiBJbnRlcm5hbEZ1
bmN0aW9uSW1wKGZ1bmNQcm90bywgbmFtZSksIGlkKGkpCiB7CiAgIHB1dERpcmVjdChsZW5ndGhQ
cm9wZXJ0eU5hbWUsIGxlbiwgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bSk7CiB9CkluZGV4
OiBmdW5jdGlvbl9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBmdW5jdGlvbl9vYmplY3QuaAkocmV2
aXNpb24gNDkxNjc1KQorKysgZnVuY3Rpb25fb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDcgKzUyLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgIGNsYXNzIEZ1bmN0aW9uUHJvdG9GdW5jSW1w
IDogcHVibGljIEludGVybmFsRnVuY3Rpb25JbXAgewogICBwdWJsaWM6CiAgICAgRnVuY3Rpb25Q
cm90b0Z1bmNJbXAoRXhlY1N0YXRlICpleGVjLAotICAgICAgICAgICAgICAgICAgICAgICAgRnVu
Y3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQcm90bywgaW50IGksIGludCBsZW4pOworICAgICAgICAg
ICAgICAgICAgICAgICAgRnVuY3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQcm90bywgaW50IGksIGlu
dCBsZW4sIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogCiAgICAgdmlydHVhbCBib29sIGltcGxl
bWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBWYWx1ZUltcCAqY2FsbEFzRnVuY3Rpb24o
RXhlY1N0YXRlICpleGVjLCBPYmplY3RJbXAgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwpJ
bmRleDogaW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBpbnRlcm5hbC5oCShyZXZpc2lvbiA0OTE2
NzUpCisrKyBpbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOTQsMTUgKzM5NCwyMCBAQCBu
YW1lc3BhY2UgS0pTIHsKIAogCiAKLSAgY2xhc3MgSW50ZXJuYWxGdW5jdGlvbkltcCA6IHB1Ymxp
YyBPYmplY3RJbXAgeworICBjbGFzcyBLSlNfRVhQT1JUIEludGVybmFsRnVuY3Rpb25JbXAgOiBw
dWJsaWMgT2JqZWN0SW1wIHsKICAgcHVibGljOgogICAgIEludGVybmFsRnVuY3Rpb25JbXAoKTsK
ICAgICBJbnRlcm5hbEZ1bmN0aW9uSW1wKEZ1bmN0aW9uUHJvdG90eXBlSW1wICpmdW5jUHJvdG8p
OworICAgIEludGVybmFsRnVuY3Rpb25JbXAoRnVuY3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQcm90
bywgY29uc3QgSWRlbnRpZmllciYgX2lkZW50KTsKICAgICBib29sIGltcGxlbWVudHNIYXNJbnN0
YW5jZSgpIGNvbnN0OwogICAgIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRlICpleGVjLCBWYWx1
ZUltcCAqdmFsdWUpOwogCiAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8gKmNsYXNzSW5mbygp
IGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9CiAgICAgS0pTX0VYUE9SVCBzdGF0aWMgY29uc3QgQ2xh
c3NJbmZvIGluZm87CisgICAgSWRlbnRpZmllciBmdW5jdGlvbk5hbWUoKSBjb25zdCB7IHJldHVy
biBpZGVudDsgfQorICAgIHZvaWQgc2V0RnVuY3Rpb25OYW1lKGNvbnN0IElkZW50aWZpZXImIF9p
ZGVudCkgeyBpZGVudCA9IF9pZGVudDsgfQorICBwcm90ZWN0ZWQ6CisgICAgSWRlbnRpZmllciBp
ZGVudDsKICAgfTsKIAogICAvLyBoZWxwZXIgZnVuY3Rpb24gZm9yIHRvSW50ZWdlciwgdG9JbnQz
MiwgdG9VSW50MzIgYW5kIHRvVUludDE2CkluZGV4OiBlcnJvcl9vYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBlcnJvcl9vYmplY3QuaAkocmV2aXNpb24gNDkxNjc1KQorKysgZXJyb3Jfb2JqZWN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAKICAgY2xh
c3MgRXJyb3JQcm90b0Z1bmNJbXAgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbkltcCB7CiAgIHB1
YmxpYzoKLSAgICBFcnJvclByb3RvRnVuY0ltcChFeGVjU3RhdGUgKmV4ZWMsIEZ1bmN0aW9uUHJv
dG90eXBlSW1wICpmdW5jUHJvdG8pOworICAgIEVycm9yUHJvdG9GdW5jSW1wKEV4ZWNTdGF0ZSAq
ZXhlYywgRnVuY3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQcm90bywgY29uc3QgSWRlbnRpZmllciYg
bmFtZSk7CiAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBWYWx1ZUltcCAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBPYmplY3RJbXAg
KnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwogICB9OwpJbmRleDogcmVnZXhwX29iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHJlZ2V4cF9vYmplY3QuaAkocmV2aXNpb24gNDkxNjc1KQorKysgcmVn
ZXhwX29iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBL
SlMgewogICBjbGFzcyBSZWdFeHBQcm90b0Z1bmNJbXAgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
bkltcCB7CiAgIHB1YmxpYzoKICAgICBSZWdFeHBQcm90b0Z1bmNJbXAoRXhlY1N0YXRlICpleGVj
LAotICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvblByb3RvdHlwZUltcCAqZnVuY1Byb3Rv
LCBpbnQgaSwgaW50IGxlbik7CisgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHJvdG90
eXBlSW1wICpmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJiBuYW1l
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgVmFsdWVJbXAgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgT2JqZWN0SW1wICp0
aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKSW5kZXg6IGZ1bmN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBmdW5jdGlvbi5jcHAJKHJldmlzaW9uIDQ5MTY3NSkKKysrIGZ1bmN0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTgsOCArNTgsOCBAQCBjb25zdCBDbGFzc0luZm8gRnVuY3Rpb25JbXA6
OmluZm8gPSB7IkZ1CiAKIEZ1bmN0aW9uSW1wOjpGdW5jdGlvbkltcChFeGVjU3RhdGUgKmV4ZWMs
IGNvbnN0IElkZW50aWZpZXIgJm4pCiAgIDogSW50ZXJuYWxGdW5jdGlvbkltcCgKLSAgICAgIHN0
YXRpY19jYXN0PEZ1bmN0aW9uUHJvdG90eXBlSW1wKj4oZXhlYy0+bGV4aWNhbEludGVycHJldGVy
KCktPmJ1aWx0aW5GdW5jdGlvblByb3RvdHlwZSgpKQotICAgICAgKSwgcGFyYW0oMEwpLCBpZGVu
dChuKQorICAgICAgc3RhdGljX2Nhc3Q8RnVuY3Rpb25Qcm90b3R5cGVJbXAqPihleGVjLT5sZXhp
Y2FsSW50ZXJwcmV0ZXIoKS0+YnVpbHRpbkZ1bmN0aW9uUHJvdG90eXBlKCkpLCBuCisgICAgICAp
LCBwYXJhbSgwTCkKIHsKIH0KIApAQCAtNTQ0LDggKzU0NCw4IEBAIHZvaWQgQWN0aXZhdGlvbklt
cDo6Y3JlYXRlQXJndW1lbnRzT2JqZWMKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBHbG9iYWxGdW5jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIAotR2xv
YmFsRnVuY0ltcDo6R2xvYmFsRnVuY0ltcChFeGVjU3RhdGUgKmV4ZWMsIEZ1bmN0aW9uUHJvdG90
eXBlSW1wICpmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVuKQotICA6IEludGVybmFsRnVuY3Rpb25J
bXAoZnVuY1Byb3RvKSwgaWQoaSkKK0dsb2JhbEZ1bmNJbXA6Okdsb2JhbEZ1bmNJbXAoRXhlY1N0
YXRlICpleGVjLCBGdW5jdGlvblByb3RvdHlwZUltcCAqZnVuY1Byb3RvLCBpbnQgaSwgaW50IGxl
biwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKKyAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1wKGZ1bmNQ
cm90bywgbmFtZSksIGlkKGkpCiB7CiAgIHB1dERpcmVjdChsZW5ndGhQcm9wZXJ0eU5hbWUsIGxl
biwgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bSk7CiB9CkluZGV4OiBib29sX29iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGJvb2xfb2JqZWN0LmgJKHJldmlzaW9uIDQ5MTY3NSkKKysrIGJvb2xf
b2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgIGNsYXNzIEJvb2xlYW5Qcm90b0Z1bmNJbXAgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbklt
cCB7CiAgIHB1YmxpYzoKICAgICBCb29sZWFuUHJvdG9GdW5jSW1wKEV4ZWNTdGF0ZSAqZXhlYywK
LSAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHJvdG90eXBlSW1wICpmdW5jUHJvdG8s
IGludCBpLCBpbnQgbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHJvdG90
eXBlSW1wICpmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25zdDsKICAgICB2aXJ0
dWFsIFZhbHVlSW1wICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIE9iamVjdEltcCAq
dGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CkluZGV4OiBvYmplY3Rfb2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gb2JqZWN0X29iamVjdC5oCShyZXZpc2lvbiA0OTE2NzUpCisrKyBvYmplY3Rfb2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNkZWZpbmUgX09CSkVDVF9P
QkpFQ1RfSF8KIAogI2luY2x1ZGUgImludGVybmFsLmgiCisjaW5jbHVkZSAiZnVuY3Rpb24uaCIK
IAogbmFtZXNwYWNlIEtKUyB7CiAKQEAgLTQ3LDEyICs0OCwxMiBAQCBuYW1lc3BhY2UgS0pTIHsK
ICAgICovCiAgIGNsYXNzIE9iamVjdFByb3RvRnVuY0ltcCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0
aW9uSW1wIHsKICAgcHVibGljOgotICAgIE9iamVjdFByb3RvRnVuY0ltcChFeGVjU3RhdGUgKmV4
ZWMsIEZ1bmN0aW9uUHJvdG90eXBlSW1wICpmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVuKTsKKyAg
ICBPYmplY3RQcm90b0Z1bmNJbXAoRXhlY1N0YXRlICpleGVjLCBGdW5jdGlvblByb3RvdHlwZUlt
cCAqZnVuY1Byb3RvLCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25zdDsKICAgICB2aXJ0dWFsIFZh
bHVlSW1wICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKiwgT2JqZWN0SW1wICosIGNvbnN0IExp
c3QgJmFyZ3MpOwogCi0gICAgZW51bSB7IFRvU3RyaW5nLCBUb0xvY2FsZVN0cmluZywgVmFsdWVP
ZiwgSGFzT3duUHJvcGVydHkgfTsKKyAgICBlbnVtIHsgVG9TdHJpbmcsIFRvTG9jYWxlU3RyaW5n
LCBWYWx1ZU9mLCBIYXNPd25Qcm9wZXJ0eSwgSXNQcm90b3R5cGVPZiwgUHJvcGVydHlJc0VudW1l
cmFibGUgfTsKICAgcHJpdmF0ZToKICAgICBpbnQgaWQ7CiAgIH07CkluZGV4OiBmdW5jdGlvbl9v
YmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGZ1bmN0aW9uX29iamVjdC5jcHAJKHJldmlzaW9uIDQ5
MTY3NSkKKysrIGZ1bmN0aW9uX29iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDExICs0
MSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgS0pTOwogRnVuY3Rpb25Qcm90b3R5cGVJbXA6OkZ1bmN0
aW9uUHJvdG90eXBlSW1wKEV4ZWNTdGF0ZSAqZXhlYykKIHsKICAgcHV0RGlyZWN0KGxlbmd0aFBy
b3BlcnR5TmFtZSwgICBqc1plcm8oKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bSk7Ci0gIHB1
dERpcmVjdCh0b1N0cmluZ1Byb3BlcnR5TmFtZSwgbmV3IEZ1bmN0aW9uUHJvdG9GdW5jSW1wKGV4
ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG9GdW5jSW1wOjpUb1N0cmluZywgMCksIERvbnRFbnVtKTsK
KyAgcHV0RGlyZWN0KHRvU3RyaW5nUHJvcGVydHlOYW1lLCBuZXcgRnVuY3Rpb25Qcm90b0Z1bmNJ
bXAoZXhlYywgdGhpcywgRnVuY3Rpb25Qcm90b0Z1bmNJbXA6OlRvU3RyaW5nLCAwLCB0b1N0cmlu
Z1Byb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKICAgc3RhdGljIGNvbnN0IElkZW50aWZpZXIgYXBw
bHlQcm9wZXJ0eU5hbWUoImFwcGx5Iik7Ci0gIHB1dERpcmVjdChhcHBseVByb3BlcnR5TmFtZSwg
ICAgbmV3IEZ1bmN0aW9uUHJvdG9GdW5jSW1wKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG9GdW5j
SW1wOjpBcHBseSwgICAgMiksIERvbnRFbnVtKTsKKyAgcHV0RGlyZWN0KGFwcGx5UHJvcGVydHlO
YW1lLCAgICBuZXcgRnVuY3Rpb25Qcm90b0Z1bmNJbXAoZXhlYywgdGhpcywgRnVuY3Rpb25Qcm90
b0Z1bmNJbXA6OkFwcGx5LCAgICAyLCBhcHBseVByb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKICAg
c3RhdGljIGNvbnN0IElkZW50aWZpZXIgY2FsbFByb3BlcnR5TmFtZSgiY2FsbCIpOwotICBwdXRE
aXJlY3QoY2FsbFByb3BlcnR5TmFtZSwgICAgIG5ldyBGdW5jdGlvblByb3RvRnVuY0ltcChleGVj
LCB0aGlzLCBGdW5jdGlvblByb3RvRnVuY0ltcDo6Q2FsbCwgICAgIDEpLCBEb250RW51bSk7Cisg
IHB1dERpcmVjdChjYWxsUHJvcGVydHlOYW1lLCAgICAgbmV3IEZ1bmN0aW9uUHJvdG9GdW5jSW1w
KGV4ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG9GdW5jSW1wOjpDYWxsLCAgICAgMSwgY2FsbFByb3Bl
cnR5TmFtZSksIERvbnRFbnVtKTsKIH0KIAogRnVuY3Rpb25Qcm90b3R5cGVJbXA6On5GdW5jdGlv
blByb3RvdHlwZUltcCgpCkBAIC02Niw4ICs2Niw4IEBAIFZhbHVlSW1wICpGdW5jdGlvblByb3Rv
dHlwZUltcDo6Y2FsbEFzRnUKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5j
dGlvblByb3RvRnVuY0ltcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIEZ1bmN0aW9uUHJv
dG9GdW5jSW1wOjpGdW5jdGlvblByb3RvRnVuY0ltcChFeGVjU3RhdGUgKmV4ZWMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHJvdG90eXBlSW1wICpm
dW5jUHJvdG8sIGludCBpLCBpbnQgbGVuKQotICA6IEludGVybmFsRnVuY3Rpb25JbXAoZnVuY1By
b3RvKSwgaWQoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVu
Y3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQcm90bywgaW50IGksIGludCBsZW4sIGNvbnN0IElkZW50
aWZpZXImIG5hbWUpCisgIDogSW50ZXJuYWxGdW5jdGlvbkltcChmdW5jUHJvdG8sIG5hbWUpLCBp
ZChpKQogewogICBwdXREaXJlY3QobGVuZ3RoUHJvcGVydHlOYW1lLCBsZW4sIERvbnREZWxldGV8
UmVhZE9ubHl8RG9udEVudW0pOwogfQpAQCAtODMsMjYgKzgzLDI1IEBAIFZhbHVlSW1wICpGdW5j
dGlvblByb3RvRnVuY0ltcDo6Y2FsbEFzRnUKICAgVmFsdWVJbXAgKnJlc3VsdCA9IE5VTEw7CiAK
ICAgc3dpdGNoIChpZCkgewotICBjYXNlIFRvU3RyaW5nOiB7Ci0gICAgLy8gIyMjIGFsc28gbWFr
ZSB0aGlzIHdvcmsgZm9yIGludGVybmFsIGZ1bmN0aW9ucworICBjYXNlIFRvU3RyaW5nOgogICAg
IGlmICghdGhpc09iaiB8fCAhdGhpc09iai0+aW5oZXJpdHMoJkludGVybmFsRnVuY3Rpb25JbXA6
OmluZm8pKSB7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgZnByaW50ZihzdGRlcnIsImF0dGVtcHRl
ZCB0b1N0cmluZygpIGNhbGwgb24gbnVsbCBvciBub24tZnVuY3Rpb24gb2JqZWN0XG4iKTsKICNl
bmRpZgogICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICB9CisK
ICAgICBpZiAodGhpc09iai0+aW5oZXJpdHMoJkRlY2xhcmVkRnVuY3Rpb25JbXA6OmluZm8pKSB7
Ci0gICAgICAgRGVjbGFyZWRGdW5jdGlvbkltcCAqZmkgPSBzdGF0aWNfY2FzdDxEZWNsYXJlZEZ1
bmN0aW9uSW1wKj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzT2JqKTsK
LSAgICAgICByZXR1cm4gU3RyaW5nKCJmdW5jdGlvbiAiICsgZmktPm5hbWUoKS51c3RyaW5nKCkg
KyAiKCIgKworICAgICAgIERlY2xhcmVkRnVuY3Rpb25JbXAgKmZpID0gc3RhdGljX2Nhc3Q8RGVj
bGFyZWRGdW5jdGlvbkltcCo+KHRoaXNPYmopOworICAgICAgIHJldHVybiBTdHJpbmcoImZ1bmN0
aW9uICIgKyBmaS0+ZnVuY3Rpb25OYW1lKCkudXN0cmluZygpICsgIigiICsKICAgICAgICAgIGZp
LT5wYXJhbWV0ZXJTdHJpbmcoKSArICIpICIgKyBmaS0+Ym9keS0+dG9TdHJpbmcoKSk7Ci0gICAg
fSBlbHNlIGlmICh0aGlzT2JqLT5pbmhlcml0cygmRnVuY3Rpb25JbXA6OmluZm8pICYmCi0gICAg
ICAgICFzdGF0aWNfY2FzdDxGdW5jdGlvbkltcCo+KHRoaXNPYmopLT5uYW1lKCkuaXNOdWxsKCkp
IHsKLSAgICAgIHJlc3VsdCA9IFN0cmluZygiZnVuY3Rpb24gIiArIHN0YXRpY19jYXN0PEZ1bmN0
aW9uSW1wKj4odGhpc09iaiktPm5hbWUoKS51c3RyaW5nKCkgKyAiKCkiKTsKKyAgICB9IGVsc2Ug
aWYgKHRoaXNPYmotPmluaGVyaXRzKCZJbnRlcm5hbEZ1bmN0aW9uSW1wOjppbmZvKSAmJgorICAg
ICAgICAhc3RhdGljX2Nhc3Q8SW50ZXJuYWxGdW5jdGlvbkltcCo+KHRoaXNPYmopLT5mdW5jdGlv
bk5hbWUoKS5pc051bGwoKSkgeworICAgICAgcmVzdWx0ID0gU3RyaW5nKCJcbmZ1bmN0aW9uICIg
KyBzdGF0aWNfY2FzdDxJbnRlcm5hbEZ1bmN0aW9uSW1wKj4odGhpc09iaiktPmZ1bmN0aW9uTmFt
ZSgpLnVzdHJpbmcoKSArICIoKSB7XG4iCisgICAgICAgICAgICAgICAgICAgICAgIiAgICBbbmF0
aXZlIGNvZGVdXG59XG4iKTsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICByZXN1bHQgPSBTdHJp
bmcoIihJbnRlcm5hbCBGdW5jdGlvbikiKTsKLSAgICB9CisgICAgICByZXN1bHQgPSBTdHJpbmco
IltmdW5jdGlvbl0iKTsKICAgICB9CiAgICAgYnJlYWs7CiAgIGNhc2UgQXBwbHk6IHsKSW5kZXg6
IGVycm9yX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZXJyb3Jfb2JqZWN0LmNwcAkocmV2aXNp
b24gNDkxNjc1KQorKysgZXJyb3Jfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTMg
KzUzLDEzIEBAIEVycm9yUHJvdG90eXBlSW1wOjpFcnJvclByb3RvdHlwZUltcChFeGUKIAogICBw
dXQoZXhlYywgbmFtZVByb3BlcnR5TmFtZSwgICAgIFN0cmluZygiRXJyb3IiKSwgRG9udEVudW0p
OwogICBwdXQoZXhlYywgbWVzc2FnZVByb3BlcnR5TmFtZSwgIFN0cmluZygiVW5rbm93biBlcnJv
ciIpLCBEb250RW51bSk7Ci0gIHB1dERpcmVjdCh0b1N0cmluZ1Byb3BlcnR5TmFtZSwgbmV3IEVy
cm9yUHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1Byb3RvKSwgRG9udEVudW0pOworICBwdXREaXJlY3Qo
dG9TdHJpbmdQcm9wZXJ0eU5hbWUsIG5ldyBFcnJvclByb3RvRnVuY0ltcChleGVjLGZ1bmNQcm90
byx0b1N0cmluZ1Byb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIEVycm9yUHJvdG9GdW5jSW1wIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAotRXJyb3JQcm90b0Z1bmNJbXA6OkVycm9yUHJvdG9GdW5jSW1wKEV4ZWNTdGF0
ZSAqZXhlYywgRnVuY3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQcm90bykKLSAgOiBJbnRlcm5hbEZ1
bmN0aW9uSW1wKGZ1bmNQcm90bykKK0Vycm9yUHJvdG9GdW5jSW1wOjpFcnJvclByb3RvRnVuY0lt
cChFeGVjU3RhdGUgKmV4ZWMsIEZ1bmN0aW9uUHJvdG90eXBlSW1wICpmdW5jUHJvdG8sIGNvbnN0
IElkZW50aWZpZXImIG5hbWUpCisgIDogSW50ZXJuYWxGdW5jdGlvbkltcChmdW5jUHJvdG8sIG5h
bWUpCiB7CiAgIHB1dERpcmVjdChsZW5ndGhQcm9wZXJ0eU5hbWUsIGpzWmVybygpLCBEb250RGVs
ZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KSW5kZXg6IGJvb2xfb2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBib29sX29iamVjdC5jcHAJKHJldmlzaW9uIDQ5MTY3NSkKKysrIGJvb2xfb2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsOCArNTMsOCBAQCBCb29sZWFuUHJvdG90eXBlSW1w
OjpCb29sZWFuUHJvdG90eXBlSW1wCiB7CiAgIC8vIFRoZSBjb25zdHJ1Y3RvciB3aWxsIGJlIGFk
ZGVkIGxhdGVyIGJ5IEludGVycHJldGVySW1wOjpJbnRlcnByZXRlckltcCgpCiAKLSAgcHV0RGly
ZWN0KHRvU3RyaW5nUHJvcGVydHlOYW1lLCBuZXcgQm9vbGVhblByb3RvRnVuY0ltcChleGVjLGZ1
bmNQcm90byxCb29sZWFuUHJvdG9GdW5jSW1wOjpUb1N0cmluZywwKSwgRG9udEVudW0pOwotICBw
dXREaXJlY3QodmFsdWVPZlByb3BlcnR5TmFtZSwgIG5ldyBCb29sZWFuUHJvdG9GdW5jSW1wKGV4
ZWMsZnVuY1Byb3RvLEJvb2xlYW5Qcm90b0Z1bmNJbXA6OlZhbHVlT2YsMCksICBEb250RW51bSk7
CisgIHB1dERpcmVjdCh0b1N0cmluZ1Byb3BlcnR5TmFtZSwgbmV3IEJvb2xlYW5Qcm90b0Z1bmNJ
bXAoZXhlYyxmdW5jUHJvdG8sQm9vbGVhblByb3RvRnVuY0ltcDo6VG9TdHJpbmcsMCx0b1N0cmlu
Z1Byb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKKyAgcHV0RGlyZWN0KHZhbHVlT2ZQcm9wZXJ0eU5h
bWUsICBuZXcgQm9vbGVhblByb3RvRnVuY0ltcChleGVjLGZ1bmNQcm90byxCb29sZWFuUHJvdG9G
dW5jSW1wOjpWYWx1ZU9mLDAsdmFsdWVPZlByb3BlcnR5TmFtZSksICBEb250RW51bSk7CiAgIHNl
dEludGVybmFsVmFsdWUoQm9vbGVhbihmYWxzZSkpOwogfQogCkBAIC02Miw4ICs2Miw4IEBAIEJv
b2xlYW5Qcm90b3R5cGVJbXA6OkJvb2xlYW5Qcm90b3R5cGVJbXAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBCb29sZWFuUHJvdG9GdW5jSW1wIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKIEJvb2xlYW5Qcm90b0Z1bmNJbXA6OkJvb2xlYW5Qcm90b0Z1bmNJbXAoRXhlY1N0
YXRlICpleGVjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5j
dGlvblByb3RvdHlwZUltcCAqZnVuY1Byb3RvLCBpbnQgaSwgaW50IGxlbikKLSAgOiBJbnRlcm5h
bEZ1bmN0aW9uSW1wKGZ1bmNQcm90byksIGlkKGkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHJvdG90eXBlSW1wICpmdW5jUHJvdG8sIGludCBpLCBp
bnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQorICA6IEludGVybmFsRnVuY3Rpb25JbXAo
ZnVuY1Byb3RvLCBuYW1lKSwgaWQoaSkKIHsKICAgcHV0RGlyZWN0KGxlbmd0aFByb3BlcnR5TmFt
ZSwgbGVuLCBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KSW5kZXg6IG51bWJlcl9v
YmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIG51bWJlcl9vYmplY3QuY3BwCShyZXZpc2lvbiA0OTE2
NzUpCisrKyBudW1iZXJfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsMjAgKzU3LDI2
IEBAIE51bWJlclByb3RvdHlwZUltcDo6TnVtYmVyUHJvdG90eXBlSW1wKEUKIAogICAvLyBUaGUg
Y29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgTnVtYmVyT2JqZWN0SW1wIGhh
cyBiZWVuIGNvbnN0cnVjdGVkCiAKLSAgcHV0RGlyZWN0KHRvU3RyaW5nUHJvcGVydHlOYW1lLCAg
ICAgICBuZXcgTnVtYmVyUHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1Byb3RvLE51bWJlclByb3RvRnVu
Y0ltcDo6VG9TdHJpbmcsICAgICAgIDEpLCBEb250RW51bSk7Ci0gIHB1dERpcmVjdCh0b0xvY2Fs
ZVN0cmluZ1Byb3BlcnR5TmFtZSwgbmV3IE51bWJlclByb3RvRnVuY0ltcChleGVjLGZ1bmNQcm90
byxOdW1iZXJQcm90b0Z1bmNJbXA6OlRvTG9jYWxlU3RyaW5nLCAwKSwgRG9udEVudW0pOwotICBw
dXREaXJlY3QodmFsdWVPZlByb3BlcnR5TmFtZSwgICAgICAgIG5ldyBOdW1iZXJQcm90b0Z1bmNJ
bXAoZXhlYyxmdW5jUHJvdG8sTnVtYmVyUHJvdG9GdW5jSW1wOjpWYWx1ZU9mLCAgICAgICAgMCks
IERvbnRFbnVtKTsKLSAgcHV0RGlyZWN0KHRvRml4ZWRQcm9wZXJ0eU5hbWUsICAgICAgICBuZXcg
TnVtYmVyUHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1Byb3RvLE51bWJlclByb3RvRnVuY0ltcDo6VG9G
aXhlZCwgICAgICAgIDEpLCBEb250RW51bSk7Ci0gIHB1dERpcmVjdCh0b0V4cG9uZW50aWFsUHJv
cGVydHlOYW1lLCAgbmV3IE51bWJlclByb3RvRnVuY0ltcChleGVjLGZ1bmNQcm90byxOdW1iZXJQ
cm90b0Z1bmNJbXA6OlRvRXhwb25lbnRpYWwsICAxKSwgRG9udEVudW0pOwotICBwdXREaXJlY3Qo
dG9QcmVjaXNpb25Qcm9wZXJ0eU5hbWUsICAgIG5ldyBOdW1iZXJQcm90b0Z1bmNJbXAoZXhlYyxm
dW5jUHJvdG8sTnVtYmVyUHJvdG9GdW5jSW1wOjpUb1ByZWNpc2lvbiwgICAgMSksIERvbnRFbnVt
KTsKKyAgcHV0RGlyZWN0KHRvU3RyaW5nUHJvcGVydHlOYW1lLCAgICAgICBuZXcgTnVtYmVyUHJv
dG9GdW5jSW1wKAorICAgICAgICAgICAgZXhlYyxmdW5jUHJvdG8sTnVtYmVyUHJvdG9GdW5jSW1w
OjpUb1N0cmluZywxLHRvU3RyaW5nUHJvcGVydHlOYW1lKSwgRG9udEVudW0pOworICBwdXREaXJl
Y3QodG9Mb2NhbGVTdHJpbmdQcm9wZXJ0eU5hbWUsIG5ldyBOdW1iZXJQcm90b0Z1bmNJbXAoCisg
ICAgICAgICAgICBleGVjLGZ1bmNQcm90byxOdW1iZXJQcm90b0Z1bmNJbXA6OlRvTG9jYWxlU3Ry
aW5nLDAsdG9Mb2NhbGVTdHJpbmdQcm9wZXJ0eU5hbWUpLCBEb250RW51bSk7CisgIHB1dERpcmVj
dCh2YWx1ZU9mUHJvcGVydHlOYW1lLCAgICAgICAgbmV3IE51bWJlclByb3RvRnVuY0ltcCgKKyAg
ICAgICAgICAgIGV4ZWMsZnVuY1Byb3RvLE51bWJlclByb3RvRnVuY0ltcDo6VmFsdWVPZiwwLHZh
bHVlT2ZQcm9wZXJ0eU5hbWUpLCBEb250RW51bSk7CisgIHB1dERpcmVjdCh0b0ZpeGVkUHJvcGVy
dHlOYW1lLCAgICAgICAgbmV3IE51bWJlclByb3RvRnVuY0ltcCgKKyAgICAgICAgICAgIGV4ZWMs
ZnVuY1Byb3RvLE51bWJlclByb3RvRnVuY0ltcDo6VG9GaXhlZCwxLHRvRml4ZWRQcm9wZXJ0eU5h
bWUpLCBEb250RW51bSk7CisgIHB1dERpcmVjdCh0b0V4cG9uZW50aWFsUHJvcGVydHlOYW1lLCAg
bmV3IE51bWJlclByb3RvRnVuY0ltcCgKKyAgICAgICAgICAgIGV4ZWMsZnVuY1Byb3RvLE51bWJl
clByb3RvRnVuY0ltcDo6VG9FeHBvbmVudGlhbCwxLHRvRXhwb25lbnRpYWxQcm9wZXJ0eU5hbWUp
LCBEb250RW51bSk7CisgIHB1dERpcmVjdCh0b1ByZWNpc2lvblByb3BlcnR5TmFtZSwgICAgbmV3
IE51bWJlclByb3RvRnVuY0ltcCgKKyAgICAgICAgICAgIGV4ZWMsZnVuY1Byb3RvLE51bWJlclBy
b3RvRnVuY0ltcDo6VG9QcmVjaXNpb24sMSx0b1ByZWNpc2lvblByb3BlcnR5TmFtZSksIERvbnRF
bnVtKTsKIH0KIAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTnVtYmVyUHJv
dG9GdW5jSW1wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBOdW1iZXJQcm90b0Z1bmNJ
bXA6Ok51bWJlclByb3RvRnVuY0ltcChFeGVjU3RhdGUgKmV4ZWMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvblByb3RvdHlwZUltcCAqZnVuY1Byb3RvLCBp
bnQgaSwgaW50IGxlbikKLSAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1wKGZ1bmNQcm90byksIGlkKGkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvblByb3RvdHlw
ZUltcCAqZnVuY1Byb3RvLCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkK
KyAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1wKGZ1bmNQcm90bywgbmFtZSksIGlkKGkpCiB7CiAgIHB1
dERpcmVjdChsZW5ndGhQcm9wZXJ0eU5hbWUsIGxlbiwgRG9udERlbGV0ZXxSZWFkT25seXxEb250
RW51bSk7CiB9CkluZGV4OiBsb29rdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsb29rdXAuaAkocmV2aXNp
b24gNDkxNjc1KQorKysgbG9va3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Nyw3ICsxNTcsOCBA
QCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgcmV0dXJuIGNhY2hlZFZhbDsKIAogICAgICAgY29u
c3QgSGFzaEVudHJ5ICplbnRyeSA9IHNsb3Quc3RhdGljRW50cnkoKTsKLSAgICAgIFZhbHVlSW1w
ICp2YWwgPSBuZXcgRnVuY0ltcChleGVjLCBlbnRyeS0+dmFsdWUsIGVudHJ5LT5wYXJhbXMpOwor
ICAgICAgRnVuY0ltcCAqdmFsID0gbmV3IEZ1bmNJbXAoZXhlYywgZW50cnktPnZhbHVlLCBlbnRy
eS0+cGFyYW1zKTsKKyAgICAgIHZhbC0+c2V0RnVuY3Rpb25OYW1lKHByb3BlcnR5TmFtZSk7CiAg
ICAgICB0aGlzT2JqLT5wdXREaXJlY3QocHJvcGVydHlOYW1lLCB2YWwsIGVudHJ5LT5hdHRyKTsK
ICAgICAgIHJldHVybiB2YWw7CiAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6635</attachid>
            <date>2006-02-20 22:12:16 -0800</date>
            <delta_ts>2006-02-20 23:06:24 -0800</delta_ts>
            <desc>improved patch that applies to trunk and does more cleanup</desc>
            <filename>native-function-name-fix.patch.txt</filename>
            <type>text/plain</type>
            <size>128077</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyODk5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzYgQEAKKzIwMDYtMDItMjAgIE1hY2llaiBT
dGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFBhdGNoIGZyb20gTWFrcyBPcmxvdmljaCwgYmFz
ZWQgb24gd29yayBieSBEYXZpZCBGYXVyZSwgaGFuZC1hcHBsaWVkIGFuZCAKKyAgICAgICAgc2ln
bmlmaWNhbnRseSByZXdvcmtlZCBieSBtZS4KKyAgICAgICAgCisgICAgICAgIC0gUGF0Y2g6IGdp
dmUgaW50ZXJuYWwgZnVuY3Rpb24gbmFtZXMgKEtKUyBtZXJnZSkKKyAgICAgICAgaHR0cDovL2J1
Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc5CisKKyAgICAgICAgKiB0
ZXN0cy9tb3ppbGxhL2V4cGVjdGVkLmh0bWw6IFVwZGF0ZWQgZm9yIG5ld2x5IGZpeGVkIHRlc3Qu
CisKKyAgICAgICAgKiBranMvYXJyYXlfb2JqZWN0LmNwcDoKKyAgICAgICAgKEFycmF5UHJvdG9G
dW5jOjpBcnJheVByb3RvRnVuYyk6CisgICAgICAgICoga2pzL2FycmF5X29iamVjdC5oOgorICAg
ICAgICAqIGtqcy9ib29sX29iamVjdC5jcHA6CisgICAgICAgIChCb29sZWFuUHJvdG90eXBlOjpC
b29sZWFuUHJvdG90eXBlKToKKyAgICAgICAgKEJvb2xlYW5Qcm90b0Z1bmM6OkJvb2xlYW5Qcm90
b0Z1bmMpOgorICAgICAgICAqIGtqcy9ib29sX29iamVjdC5oOgorICAgICAgICAqIGtqcy9kYXRl
X29iamVjdC5jcHA6CisgICAgICAgIChLSlM6OkRhdGVQcm90b0Z1bmM6OkRhdGVQcm90b0Z1bmMp
OgorICAgICAgICAoS0pTOjpEYXRlT2JqZWN0SW1wOjpEYXRlT2JqZWN0SW1wKToKKyAgICAgICAg
KEtKUzo6RGF0ZU9iamVjdEZ1bmNJbXA6OkRhdGVPYmplY3RGdW5jSW1wKToKKyAgICAgICAgKiBr
anMvZXJyb3Jfb2JqZWN0LmNwcDoKKyAgICAgICAgKEVycm9yUHJvdG90eXBlOjpFcnJvclByb3Rv
dHlwZSk6CisgICAgICAgIChFcnJvclByb3RvRnVuYzo6RXJyb3JQcm90b0Z1bmMpOgorICAgICAg
ICAqIGtqcy9lcnJvcl9vYmplY3QuaDoKKyAgICAgICAgKiBranMvZnVuY3Rpb24uY3BwOgorICAg
ICAgICAoS0pTOjpGdW5jdGlvbkltcDo6RnVuY3Rpb25JbXApOgorICAgICAgICAoS0pTOjpHbG9i
YWxGdW5jSW1wOjpHbG9iYWxGdW5jSW1wKToKKyAgICAgICAgKiBranMvZnVuY3Rpb24uaDoKKyAg
ICAgICAgKiBranMvZnVuY3Rpb25fb2JqZWN0LmNwcDoKKyAgICAgICAgKEZ1bmN0aW9uUHJvdG90
eXBlOjpGdW5jdGlvblByb3RvdHlwZSk6CisgICAgICAgIChGdW5jdGlvblByb3RvRnVuYzo6RnVu
Y3Rpb25Qcm90b0Z1bmMpOgorICAgICAgICAoRnVuY3Rpb25Qcm90b0Z1bmM6OmNhbGxBc0Z1bmN0
aW9uKToKKyAgICAgICAgKiBranMvZnVuY3Rpb25fb2JqZWN0Lmg6CisgICAgICAgICoga2pzL2lu
dGVybmFsLmNwcDoKKyAgICAgICAgKEtKUzo6SW50ZXJwcmV0ZXJJbXA6OmluaXRHbG9iYWxPYmpl
Y3QpOgorICAgICAgICAoS0pTOjpJbnRlcm5hbEZ1bmN0aW9uSW1wOjpJbnRlcm5hbEZ1bmN0aW9u
SW1wKToKKyAgICAgICAgKiBranMvaW50ZXJuYWwuaDoKKyAgICAgICAgKEtKUzo6SW50ZXJuYWxG
dW5jdGlvbkltcDo6ZnVuY3Rpb25OYW1lKToKKyAgICAgICAgKiBranMvbG9va3VwLmg6CisgICAg
ICAgIChLSlM6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKEtKUzo6SGFzaEVudHJ5
RnVuY3Rpb246Okhhc2hFbnRyeUZ1bmN0aW9uKToKKyAgICAgICAgKEtKUzo6SGFzaEVudHJ5RnVu
Y3Rpb246OmltcGxlbWVudHNDYWxsKToKKyAgICAgICAgKEtKUzo6SGFzaEVudHJ5RnVuY3Rpb246
OnRvQm9vbGVhbik6CisgICAgICAgIChLSlM6Okhhc2hFbnRyeUZ1bmN0aW9uOjppbXBsZW1lbnRz
SGFzSW5zdGFuY2UpOgorICAgICAgICAoS0pTOjpIYXNoRW50cnlGdW5jdGlvbjo6aGFzSW5zdGFu
Y2UpOgorICAgICAgICAqIGtqcy9tYXRoX29iamVjdC5jcHA6CisgICAgICAgIChNYXRoRnVuY0lt
cDo6TWF0aEZ1bmNJbXApOgorICAgICAgICAqIGtqcy9tYXRoX29iamVjdC5oOgorICAgICAgICAq
IGtqcy9udW1iZXJfb2JqZWN0LmNwcDoKKyAgICAgICAgKE51bWJlclByb3RvdHlwZTo6TnVtYmVy
UHJvdG90eXBlKToKKyAgICAgICAgKE51bWJlclByb3RvRnVuYzo6TnVtYmVyUHJvdG9GdW5jKToK
KyAgICAgICAgKiBranMvbnVtYmVyX29iamVjdC5oOgorICAgICAgICAqIGtqcy9vYmplY3QuY3Bw
OgorICAgICAgICAoS0pTOjpKU09iamVjdDo6cHV0RGlyZWN0RnVuY3Rpb24pOgorICAgICAgICAo
S0pTOjpFcnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBranMvb2JqZWN0Lmg6CisgICAgICAgICog
a2pzL29iamVjdF9vYmplY3QuY3BwOgorICAgICAgICAoT2JqZWN0UHJvdG90eXBlOjpPYmplY3RQ
cm90b3R5cGUpOgorICAgICAgICAoT2JqZWN0UHJvdG9GdW5jOjpPYmplY3RQcm90b0Z1bmMpOgor
ICAgICAgICAqIGtqcy9vYmplY3Rfb2JqZWN0Lmg6CisgICAgICAgICoga2pzL3JlZ2V4cF9vYmpl
Y3QuY3BwOgorICAgICAgICAoUmVnRXhwUHJvdG90eXBlOjpSZWdFeHBQcm90b3R5cGUpOgorICAg
ICAgICAoUmVnRXhwUHJvdG9GdW5jOjpSZWdFeHBQcm90b0Z1bmMpOgorICAgICAgICAqIGtqcy9y
ZWdleHBfb2JqZWN0Lmg6CisgICAgICAgICoga2pzL3N0cmluZ19vYmplY3QuY3BwOgorICAgICAg
ICAoU3RyaW5nUHJvdG9GdW5jOjpTdHJpbmdQcm90b0Z1bmMpOgorICAgICAgICAoU3RyaW5nT2Jq
ZWN0SW1wOjpTdHJpbmdPYmplY3RJbXApOgorICAgICAgICAoU3RyaW5nT2JqZWN0RnVuY0ltcDo6
U3RyaW5nT2JqZWN0RnVuY0ltcCk6CisgICAgICAgICoga2pzL3N0cmluZ19vYmplY3QuaDoKKyAg
ICAgICAgCiAyMDA2LTAyLTE5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICAtIHJlbmFtZWQgRVJST1IgdG8gTE9HX0VSUk9SIHRvIGZpeCBidWlsZApJbmRleDogSmF2
YVNjcmlwdENvcmUva2pzL2FycmF5X29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL2tqcy9hcnJheV9vYmplY3QuaAkocmV2aXNpb24gMTI4OTkpCisrKyBKYXZhU2NyaXB0Q29y
ZS9ranMvYXJyYXlfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNp
Zm5kZWYgX0FSUkFZX09CSkVDVF9IXwogI2RlZmluZSBfQVJSQVlfT0JKRUNUX0hfCiAKKyNpbmNs
dWRlICJhcnJheV9pbnN0YW5jZS5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5jbHVkZSAi
ZnVuY3Rpb25fb2JqZWN0LmgiCiAKQEAgLTM4LDcgKzM5LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAK
ICAgY2xhc3MgQXJyYXlQcm90b0Z1bmMgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbkltcCB7CiAg
IHB1YmxpYzoKLSAgICBBcnJheVByb3RvRnVuYyhFeGVjU3RhdGUgKmV4ZWMsIGludCBpLCBpbnQg
bGVuKTsKKyAgICBBcnJheVByb3RvRnVuYyhFeGVjU3RhdGUgKmV4ZWMsIGludCBpLCBpbnQgbGVu
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRz
Q2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0
YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9ranMvaW50ZXJuYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL2tqcy9pbnRlcm5hbC5jcHAJKHJldmlzaW9uIDEyODk5KQorKysgSmF2YVNjcmlwdENvcmUv
a2pzL2ludGVybmFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU0LDcgKzQ1NCw3IEBAIHZvaWQg
SW50ZXJwcmV0ZXJJbXA6OmluaXRHbG9iYWxPYmplY3QoKQogICBiX3VyaUVycm9yID0gbmV3IE5h
dGl2ZUVycm9ySW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBiX3VyaUVycm9yUHJvdG90eXBlKTsK
IAogICAvLyBFQ01BIDE1LjMuNC4xCi0gIGZ1bmNQcm90by0+cHV0KCZnbG9iRXhlYywgImNvbnN0
cnVjdG9yIiwgYl9GdW5jdGlvbiwgRG9udEVudW0pOworICBmdW5jUHJvdG8tPnB1dCgmZ2xvYkV4
ZWMsIGNvbnN0cnVjdG9yUHJvcGVydHlOYW1lLCBiX0Z1bmN0aW9uLCBEb250RW51bSk7CiAKICAg
Z2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiT2JqZWN0IiwgYl9PYmplY3QsIERvbnRFbnVtKTsKICAg
Z2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiRnVuY3Rpb24iLCBiX0Z1bmN0aW9uLCBEb250RW51bSk7
CkBAIC00NzQsMjIgKzQ3NCwyMiBAQCB2b2lkIEludGVycHJldGVySW1wOjppbml0R2xvYmFsT2Jq
ZWN0KCkKICAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiVHlwZUVycm9yIixiX3R5cGVFcnJvciwg
SW50ZXJuYWwpOwogICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMsICJVUklFcnJvciIsYl91cmlFcnJv
ciwgSW50ZXJuYWwpOwogCi0gIC8vIFNldCB0aGUgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBvZiBh
bGwgYnVpbHRpbiBjb25zdHJ1Y3RvcnMKLSAgb2JqUHJvdG8tPnB1dCgmZ2xvYkV4ZWMsICJjb25z
dHJ1Y3RvciIsIGJfT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7Ci0g
IGZ1bmNQcm90by0+cHV0KCZnbG9iRXhlYywgImNvbnN0cnVjdG9yIiwgYl9GdW5jdGlvbiwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwotICBhcnJheVByb3RvLT5wdXQoJmdsb2JF
eGVjLCAiY29uc3RydWN0b3IiLCBiX0FycmF5LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSk7Ci0gIGJvb2xlYW5Qcm90by0+cHV0KCZnbG9iRXhlYywgImNvbnN0cnVjdG9yIiwgYl9C
b29sZWFuLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7Ci0gIHN0cmluZ1Byb3Rv
LT5wdXQoJmdsb2JFeGVjLCAiY29uc3RydWN0b3IiLCBiX1N0cmluZywgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpOwotICBudW1iZXJQcm90by0+cHV0KCZnbG9iRXhlYywgImNvbnN0
cnVjdG9yIiwgYl9OdW1iZXIsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKLSAg
ZGF0ZVByb3RvLT5wdXQoJmdsb2JFeGVjLCAiY29uc3RydWN0b3IiLCBiX0RhdGUsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKLSAgcmVnZXhwUHJvdG8tPnB1dCgmZ2xvYkV4ZWMs
ICJjb25zdHJ1Y3RvciIsIGJfUmVnRXhwLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSk7Ci0gIGVycm9yUHJvdG8tPnB1dCgmZ2xvYkV4ZWMsICJjb25zdHJ1Y3RvciIsIGJfRXJyb3Is
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKLSAgYl9ldmFsRXJyb3JQcm90b3R5
cGUtPnB1dCgmZ2xvYkV4ZWMsICJjb25zdHJ1Y3RvciIsIGJfZXZhbEVycm9yLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSk7Ci0gIGJfcmFuZ2VFcnJvclByb3RvdHlwZS0+cHV0KCZn
bG9iRXhlYywgImNvbnN0cnVjdG9yIiwgYl9yYW5nZUVycm9yLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSk7Ci0gIGJfcmVmZXJlbmNlRXJyb3JQcm90b3R5cGUtPnB1dCgmZ2xvYkV4
ZWMsICJjb25zdHJ1Y3RvciIsIGJfcmVmZXJlbmNlRXJyb3IsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KTsKLSAgYl9zeW50YXhFcnJvclByb3RvdHlwZS0+cHV0KCZnbG9iRXhlYywg
ImNvbnN0cnVjdG9yIiwgYl9zeW50YXhFcnJvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpOwotICBiX3R5cGVFcnJvclByb3RvdHlwZS0+cHV0KCZnbG9iRXhlYywgImNvbnN0cnVj
dG9yIiwgYl90eXBlRXJyb3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKLSAg
Yl91cmlFcnJvclByb3RvdHlwZS0+cHV0KCZnbG9iRXhlYywgImNvbnN0cnVjdG9yIiwgYl91cmlF
cnJvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAvLyBTZXQgdGhlIGNv
bnN0cnVjdG9yUHJvcGVydHlOYW1lIHByb3BlcnR5IG9mIGFsbCBidWlsdGluIGNvbnN0cnVjdG9y
cworICBvYmpQcm90by0+cHV0KCZnbG9iRXhlYywgY29uc3RydWN0b3JQcm9wZXJ0eU5hbWUsIGJf
T2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgIGZ1bmNQcm90by0+
cHV0KCZnbG9iRXhlYywgY29uc3RydWN0b3JQcm9wZXJ0eU5hbWUsIGJfRnVuY3Rpb24sIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgYXJyYXlQcm90by0+cHV0KCZnbG9iRXhl
YywgY29uc3RydWN0b3JQcm9wZXJ0eU5hbWUsIGJfQXJyYXksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KTsKKyAgYm9vbGVhblByb3RvLT5wdXQoJmdsb2JFeGVjLCBjb25zdHJ1Y3Rv
clByb3BlcnR5TmFtZSwgYl9Cb29sZWFuLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSk7CisgIHN0cmluZ1Byb3RvLT5wdXQoJmdsb2JFeGVjLCBjb25zdHJ1Y3RvclByb3BlcnR5TmFt
ZSwgYl9TdHJpbmcsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgbnVtYmVy
UHJvdG8tPnB1dCgmZ2xvYkV4ZWMsIGNvbnN0cnVjdG9yUHJvcGVydHlOYW1lLCBiX051bWJlciwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICBkYXRlUHJvdG8tPnB1dCgmZ2xv
YkV4ZWMsIGNvbnN0cnVjdG9yUHJvcGVydHlOYW1lLCBiX0RhdGUsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KTsKKyAgcmVnZXhwUHJvdG8tPnB1dCgmZ2xvYkV4ZWMsIGNvbnN0cnVj
dG9yUHJvcGVydHlOYW1lLCBiX1JlZ0V4cCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpOworICBlcnJvclByb3RvLT5wdXQoJmdsb2JFeGVjLCBjb25zdHJ1Y3RvclByb3BlcnR5TmFt
ZSwgYl9FcnJvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICBiX2V2YWxF
cnJvclByb3RvdHlwZS0+cHV0KCZnbG9iRXhlYywgY29uc3RydWN0b3JQcm9wZXJ0eU5hbWUsIGJf
ZXZhbEVycm9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgIGJfcmFuZ2VF
cnJvclByb3RvdHlwZS0+cHV0KCZnbG9iRXhlYywgY29uc3RydWN0b3JQcm9wZXJ0eU5hbWUsIGJf
cmFuZ2VFcnJvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICBiX3JlZmVy
ZW5jZUVycm9yUHJvdG90eXBlLT5wdXQoJmdsb2JFeGVjLCBjb25zdHJ1Y3RvclByb3BlcnR5TmFt
ZSwgYl9yZWZlcmVuY2VFcnJvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwor
ICBiX3N5bnRheEVycm9yUHJvdG90eXBlLT5wdXQoJmdsb2JFeGVjLCBjb25zdHJ1Y3RvclByb3Bl
cnR5TmFtZSwgYl9zeW50YXhFcnJvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
OworICBiX3R5cGVFcnJvclByb3RvdHlwZS0+cHV0KCZnbG9iRXhlYywgY29uc3RydWN0b3JQcm9w
ZXJ0eU5hbWUsIGJfdHlwZUVycm9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7
CisgIGJfdXJpRXJyb3JQcm90b3R5cGUtPnB1dCgmZ2xvYkV4ZWMsIGNvbnN0cnVjdG9yUHJvcGVy
dHlOYW1lLCBiX3VyaUVycm9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAK
ICAgLy8gYnVpbHQtaW4gdmFsdWVzCiAgIGdsb2JhbC0+cHV0KCZnbG9iRXhlYywgIk5hTiIsICAg
ICAgICBqc05hTigpLCBEb250RW51bXxEb250RGVsZXRlKTsKQEAgLTQ5NywxOSArNDk3LDE5IEBA
IHZvaWQgSW50ZXJwcmV0ZXJJbXA6OmluaXRHbG9iYWxPYmplY3QoKQogICBnbG9iYWwtPnB1dCgm
Z2xvYkV4ZWMsICJ1bmRlZmluZWQiLCAganNVbmRlZmluZWQoKSwgRG9udEVudW18RG9udERlbGV0
ZSk7CiAKICAgLy8gYnVpbHQtaW4gZnVuY3Rpb25zCi0gIGdsb2JhbC0+cHV0KCZnbG9iRXhlYywg
ImV2YWwiLCAgICAgICBuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQcm90bywgR2xv
YmFsRnVuY0ltcDo6RXZhbCwgMSksIERvbnRFbnVtKTsKLSAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVj
LCAicGFyc2VJbnQiLCAgIG5ldyBHbG9iYWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBH
bG9iYWxGdW5jSW1wOjpQYXJzZUludCwgMiksIERvbnRFbnVtKTsKLSAgZ2xvYmFsLT5wdXQoJmds
b2JFeGVjLCAicGFyc2VGbG9hdCIsIG5ldyBHbG9iYWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1By
b3RvLCBHbG9iYWxGdW5jSW1wOjpQYXJzZUZsb2F0LCAxKSwgRG9udEVudW0pOwotICBnbG9iYWwt
PnB1dCgmZ2xvYkV4ZWMsICJpc05hTiIsICAgICAgbmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVj
LCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OklzTmFOLCAxKSwgRG9udEVudW0pOwotICBnbG9i
YWwtPnB1dCgmZ2xvYkV4ZWMsICJpc0Zpbml0ZSIsICAgbmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JF
eGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OklzRmluaXRlLCAxKSwgRG9udEVudW0pOwot
ICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMsICJlc2NhcGUiLCAgICAgbmV3IEdsb2JhbEZ1bmNJbXAo
Jmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OkVzY2FwZSwgMSksIERvbnRFbnVt
KTsKLSAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAidW5lc2NhcGUiLCAgIG5ldyBHbG9iYWxGdW5j
SW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBHbG9iYWxGdW5jSW1wOjpVbkVzY2FwZSwgMSksIERv
bnRFbnVtKTsKLSAgZ2xvYmFsLT5wdXQoJmdsb2JFeGVjLCAiZGVjb2RlVVJJIiwgIG5ldyBHbG9i
YWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBHbG9iYWxGdW5jSW1wOjpEZWNvZGVVUkks
IDEpLCBEb250RW51bSk7Ci0gIGdsb2JhbC0+cHV0KCZnbG9iRXhlYywgImRlY29kZVVSSUNvbXBv
bmVudCIsIG5ldyBHbG9iYWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBHbG9iYWxGdW5j
SW1wOjpEZWNvZGVVUklDb21wb25lbnQsIDEpLCBEb250RW51bSk7Ci0gIGdsb2JhbC0+cHV0KCZn
bG9iRXhlYywgImVuY29kZVVSSSIsICBuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQ
cm90bywgR2xvYmFsRnVuY0ltcDo6RW5jb2RlVVJJLCAxKSwgRG9udEVudW0pOwotICBnbG9iYWwt
PnB1dCgmZ2xvYkV4ZWMsICJlbmNvZGVVUklDb21wb25lbnQiLCBuZXcgR2xvYmFsRnVuY0ltcCgm
Z2xvYkV4ZWMsIGZ1bmNQcm90bywgR2xvYmFsRnVuY0ltcDo6RW5jb2RlVVJJQ29tcG9uZW50LCAx
KSwgRG9udEVudW0pOworICBnbG9iYWwtPnB1dERpcmVjdEZ1bmN0aW9uKG5ldyBHbG9iYWxGdW5j
SW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBHbG9iYWxGdW5jSW1wOjpFdmFsLCAxLCAiZXZhbCIp
LCBEb250RW51bSk7CisgIGdsb2JhbC0+cHV0RGlyZWN0RnVuY3Rpb24obmV3IEdsb2JhbEZ1bmNJ
bXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OlBhcnNlSW50LCAyLCAicGFy
c2VJbnQiKSwgRG9udEVudW0pOworICBnbG9iYWwtPnB1dERpcmVjdEZ1bmN0aW9uKG5ldyBHbG9i
YWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBHbG9iYWxGdW5jSW1wOjpQYXJzZUZsb2F0
LCAxLCAicGFyc2VGbG9hdCIpLCBEb250RW51bSk7CisgIGdsb2JhbC0+cHV0RGlyZWN0RnVuY3Rp
b24obmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6
OklzTmFOLCAxLCAiaXNOYU4iKSwgRG9udEVudW0pOworICBnbG9iYWwtPnB1dERpcmVjdEZ1bmN0
aW9uKG5ldyBHbG9iYWxGdW5jSW1wKCZnbG9iRXhlYywgZnVuY1Byb3RvLCBHbG9iYWxGdW5jSW1w
OjpJc0Zpbml0ZSwgMSwgImlzRmluaXRlIiksIERvbnRFbnVtKTsKKyAgZ2xvYmFsLT5wdXREaXJl
Y3RGdW5jdGlvbihuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQcm90bywgR2xvYmFs
RnVuY0ltcDo6RXNjYXBlLCAxLCAiZXNjYXBlIiksIERvbnRFbnVtKTsKKyAgZ2xvYmFsLT5wdXRE
aXJlY3RGdW5jdGlvbihuZXcgR2xvYmFsRnVuY0ltcCgmZ2xvYkV4ZWMsIGZ1bmNQcm90bywgR2xv
YmFsRnVuY0ltcDo6VW5Fc2NhcGUsIDEsICJ1bmVzY2FwZSIpLCBEb250RW51bSk7CisgIGdsb2Jh
bC0+cHV0RGlyZWN0RnVuY3Rpb24obmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJv
dG8sIEdsb2JhbEZ1bmNJbXA6OkRlY29kZVVSSSwgMSwgImRlY29kZVVSSSIpLCBEb250RW51bSk7
CisgIGdsb2JhbC0+cHV0RGlyZWN0RnVuY3Rpb24obmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVj
LCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OkRlY29kZVVSSUNvbXBvbmVudCwgMSwgImRlY29k
ZVVSSUNvbXBvbmVudCIpLCBEb250RW51bSk7CisgIGdsb2JhbC0+cHV0RGlyZWN0RnVuY3Rpb24o
bmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJbXA6OkVu
Y29kZVVSSSwgMSwgImVuY29kZVVSSSIpLCBEb250RW51bSk7CisgIGdsb2JhbC0+cHV0RGlyZWN0
RnVuY3Rpb24obmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1
bmNJbXA6OkVuY29kZVVSSUNvbXBvbmVudCwgMSwgImVuY29kZVVSSUNvbXBvbmVudCIpLCBEb250
RW51bSk7CiAjaWZuZGVmIE5ERUJVRwotICBnbG9iYWwtPnB1dCgmZ2xvYkV4ZWMsICJranNwcmlu
dCIsICAgbmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2JhbEZ1bmNJ
bXA6OktKU1ByaW50LCAxKSwgRG9udEVudW0pOworICBnbG9iYWwtPnB1dERpcmVjdEZ1bmN0aW9u
KCZnbG9iRXhlYywgbmV3IEdsb2JhbEZ1bmNJbXAoJmdsb2JFeGVjLCBmdW5jUHJvdG8sIEdsb2Jh
bEZ1bmNJbXA6OktKU1ByaW50LCAxLCAia2pzcHJpbnQiKSwgRG9udEVudW0pOwogI2VuZGlmCiAK
ICAgLy8gYnVpbHQtaW4gb2JqZWN0cwpAQCAtNzEwLDExICs3MTAsMTcgQEAgSW50ZXJuYWxGdW5j
dGlvbkltcDo6SW50ZXJuYWxGdW5jdGlvbkltcAogewogfQogCi1JbnRlcm5hbEZ1bmN0aW9uSW1w
OjpJbnRlcm5hbEZ1bmN0aW9uSW1wKEZ1bmN0aW9uUHJvdG90eXBlICpmdW5jUHJvdG8pCitJbnRl
cm5hbEZ1bmN0aW9uSW1wOjpJbnRlcm5hbEZ1bmN0aW9uSW1wKEZ1bmN0aW9uUHJvdG90eXBlKiBm
dW5jUHJvdG8pCiAgIDogSlNPYmplY3QoZnVuY1Byb3RvKQogewogfQogCitJbnRlcm5hbEZ1bmN0
aW9uSW1wOjpJbnRlcm5hbEZ1bmN0aW9uSW1wKEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jUHJvdG8s
IGNvbnN0IElkZW50aWZpZXImIG5hbWUpCisgIDogSlNPYmplY3QoZnVuY1Byb3RvKQorICAsIG1f
bmFtZShuYW1lKQoreworfQorCiBib29sIEludGVybmFsRnVuY3Rpb25JbXA6OmltcGxlbWVudHNI
YXNJbnN0YW5jZSgpIGNvbnN0CiB7CiAgIHJldHVybiB0cnVlOwpJbmRleDogSmF2YVNjcmlwdENv
cmUva2pzL3JlZ2V4cF9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tq
cy9yZWdleHBfb2JqZWN0LmNwcAkocmV2aXNpb24gMTI4OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9r
anMvcmVnZXhwX29iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDE3ICs1NCwxNiBAQCBS
ZWdFeHBQcm90b3R5cGU6OlJlZ0V4cFByb3RvdHlwZShFeGVjU3RhCiAgIC8vIFRoZSBjb25zdHJ1
Y3RvciB3aWxsIGJlIGFkZGVkIGxhdGVyIGluIFJlZ0V4cE9iamVjdCdzIGNvbnN0cnVjdG9yICg/
KQogCiAgIHN0YXRpYyBjb25zdCBJZGVudGlmaWVyIGV4ZWNQcm9wZXJ0eU5hbWUoImV4ZWMiKTsK
LSAgcHV0RGlyZWN0KGV4ZWNQcm9wZXJ0eU5hbWUsICAgICBuZXcgUmVnRXhwUHJvdG9GdW5jKGV4
ZWMsZnVuY1Byb3RvLFJlZ0V4cFByb3RvRnVuYzo6RXhlYywgICAgIDApLCBEb250RW51bSk7CiAg
IHN0YXRpYyBjb25zdCBJZGVudGlmaWVyIHRlc3RQcm9wZXJ0eU5hbWUoInRlc3QiKTsKLSAgcHV0
RGlyZWN0KHRlc3RQcm9wZXJ0eU5hbWUsICAgICBuZXcgUmVnRXhwUHJvdG9GdW5jKGV4ZWMsZnVu
Y1Byb3RvLFJlZ0V4cFByb3RvRnVuYzo6VGVzdCwgICAgIDApLCBEb250RW51bSk7Ci0gIHB1dERp
cmVjdCh0b1N0cmluZ1Byb3BlcnR5TmFtZSwgbmV3IFJlZ0V4cFByb3RvRnVuYyhleGVjLGZ1bmNQ
cm90byxSZWdFeHBQcm90b0Z1bmM6OlRvU3RyaW5nLCAwKSwgRG9udEVudW0pOworICBwdXREaXJl
Y3RGdW5jdGlvbihuZXcgUmVnRXhwUHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgUmVnRXhwUHJv
dG9GdW5jOjpFeGVjLCAwLCBleGVjUHJvcGVydHlOYW1lKSwgRG9udEVudW0pOworICBwdXREaXJl
Y3RGdW5jdGlvbihuZXcgUmVnRXhwUHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgUmVnRXhwUHJv
dG9GdW5jOjpUZXN0LCAwLCB0ZXN0UHJvcGVydHlOYW1lKSwgRG9udEVudW0pOworICBwdXREaXJl
Y3RGdW5jdGlvbihuZXcgUmVnRXhwUHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgUmVnRXhwUHJv
dG9GdW5jOjpUb1N0cmluZywgMCwgdG9TdHJpbmdQcm9wZXJ0eU5hbWUpLCBEb250RW51bSk7CiB9
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZWdFeHBQcm90b0Z1bmMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVJlZ0V4cFByb3RvRnVuYzo6UmVnRXhwUHJvdG9G
dW5jKEV4ZWNTdGF0ZSAqZXhlYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZ1bmN0aW9uUHJvdG90eXBlICpmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVuKQotICA6IElu
dGVybmFsRnVuY3Rpb25JbXAoZnVuY1Byb3RvKSwgaWQoaSkKK1JlZ0V4cFByb3RvRnVuYzo6UmVn
RXhwUHJvdG9GdW5jKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jUHJvdG8sIGlu
dCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQorICAgOiBJbnRlcm5hbEZ1bmN0
aW9uSW1wKGZ1bmNQcm90bywgbmFtZSksIGlkKGkpCiB7CiAgIHB1dERpcmVjdChsZW5ndGhQcm9w
ZXJ0eU5hbWUsIGxlbiwgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bSk7CiB9CkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9ranMvbnVtYmVyX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9udW1iZXJfb2JqZWN0LmgJKHJldmlzaW9uIDEyODk5KQorKysgSmF2YVNjcmlw
dENvcmUva2pzL251bWJlcl9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsOCArNTYsNyBA
QCBuYW1lc3BhY2UgS0pTIHsKICAgICovCiAgIGNsYXNzIE51bWJlclByb3RvRnVuYyA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uSW1wIHsKICAgcHVibGljOgotICAgIE51bWJlclByb3RvRnVuYyhF
eGVjU3RhdGUgKmV4ZWMsIEZ1bmN0aW9uUHJvdG90eXBlICpmdW5jUHJvdG8sCi0gICAgICAgICAg
ICAgICAgICAgICAgIGludCBpLCBpbnQgbGVuKTsKKyAgICBOdW1iZXJQcm90b0Z1bmMoRXhlY1N0
YXRlKiwgRnVuY3Rpb25Qcm90b3R5cGUqLCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmll
ciYpOwogCiAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBKU1ZhbHVlICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0
aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9mdW5j
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9mdW5jdGlvbi5oCShyZXZp
c2lvbiAxMjg5OSkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9mdW5jdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNCw3ICsyNCw2IEBACiAjaWZuZGVmIEtKU19GVU5DVElPTl9ICiAjZGVmaW5lIEtK
U19GVU5DVElPTl9ICiAKLSNpbmNsdWRlICJhcnJheV9pbnN0YW5jZS5oIgogI2luY2x1ZGUgImlu
dGVybmFsLmgiCiAjaW5jbHVkZSA8a3htbGNvcmUvT3duUHRyLmg+CiAKQEAgLTU2LDEzICs1NSwx
MSBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2aXJ0dWFsIENvZGVUeXBlIGNvZGVUeXBlKCkgY29u
c3QgPSAwOwogCiAgICAgdmlydHVhbCBDb21wbGV0aW9uIGV4ZWN1dGUoRXhlY1N0YXRlICpleGVj
KSA9IDA7Ci0gICAgSWRlbnRpZmllciBuYW1lKCkgY29uc3QgeyByZXR1cm4gaWRlbnQ7IH0KIAog
ICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvICpjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAm
aW5mbzsgfQogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKICAgcHJvdGVjdGVkOgog
ICAgIE93blB0cjxQYXJhbWV0ZXI+IHBhcmFtOwotICAgIElkZW50aWZpZXIgaWRlbnQ7CiAKICAg
cHJpdmF0ZToKICAgICBzdGF0aWMgSlNWYWx1ZSAqYXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSAq
LCBKU09iamVjdCAqLCBjb25zdCBJZGVudGlmaWVyICYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwpA
QCAtOTgsNyArOTUsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICBJZGVudGlmaWVyJiBvcGVyYXRv
cltdKGludCBpbmRleCk7CiAgICAgSWRlbnRpZmllciYgb3BlcmF0b3JbXShjb25zdCBJZGVudGlm
aWVyICZpbmRleElkZW50aWZpZXIpOwogICAgIGJvb2wgaXNNYXBwZWQoY29uc3QgSWRlbnRpZmll
ciAmaW5kZXgpIGNvbnN0OwotICAgIHZvaWQgSW5kZXhUb05hbWVNYXA6OnVuTWFwKGNvbnN0IElk
ZW50aWZpZXIgJmluZGV4KTsKKyAgICB2b2lkIHVuTWFwKGNvbnN0IElkZW50aWZpZXIgJmluZGV4
KTsKICAgICAKICAgcHJpdmF0ZToKICAgICBJbmRleFRvTmFtZU1hcCgpOyAvLyBwcmV2ZW50IGNv
bnN0cnVjdGlvbiB3L28gcGFyYW1ldGVycwpAQCAtMTQ4LDcgKzE0NSw3IEBAIG5hbWVzcGFjZSBL
SlMgewogCiAgIGNsYXNzIEdsb2JhbEZ1bmNJbXAgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbklt
cCB7CiAgIHB1YmxpYzoKLSAgICBHbG9iYWxGdW5jSW1wKEV4ZWNTdGF0ZSAqZXhlYywgRnVuY3Rp
b25Qcm90b3R5cGUgKmZ1bmNQcm90bywgaW50IGksIGludCBsZW4pOworICAgIEdsb2JhbEZ1bmNJ
bXAoRXhlY1N0YXRlKiwgRnVuY3Rpb25Qcm90b3R5cGUqLCBpbnQgaSwgaW50IGxlbiwgY29uc3Qg
SWRlbnRpZmllciYpOwogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09i
amVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAgICAgdmlydHVhbCBDb2RlVHlwZSBj
b2RlVHlwZSgpIGNvbnN0OwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9vYmplY3Rfb2JqZWN0LmNwcAko
cmV2aXNpb24gMTI4OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0X29iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDMwICszNCwzNiBAQCB1c2luZyBuYW1lc3BhY2UgS0pTOwog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gT2JqZWN0UHJvdG90eXBlIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU9iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJv
dG90eXBlKEV4ZWNTdGF0ZSAqZXhlYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZ1bmN0aW9uUHJvdG90eXBlICpmdW5jUHJvdG8pCitPYmplY3RQcm90b3R5cGU6Ok9i
amVjdFByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jUHJv
dG8pCiAgIDogSlNPYmplY3QoKSAvLyBbW1Byb3RvdHlwZV1dIGlzIG51bGwKIHsKLSAgICBwdXRE
aXJlY3QodG9TdHJpbmdQcm9wZXJ0eU5hbWUsIG5ldyBPYmplY3RQcm90b0Z1bmMoZXhlYywgZnVu
Y1Byb3RvLCBPYmplY3RQcm90b0Z1bmM6OlRvU3RyaW5nLCAgICAgICAgICAgICAgIDApLCBEb250
RW51bSk7Ci0gICAgcHV0RGlyZWN0KHRvTG9jYWxlU3RyaW5nUHJvcGVydHlOYW1lLCBuZXcgT2Jq
ZWN0UHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpUb0xvY2FsZVN0
cmluZywgICAwKSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdCh2YWx1ZU9mUHJvcGVydHlOYW1l
LCBuZXcgT2JqZWN0UHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpW
YWx1ZU9mLCAgICAgICAgICAgICAgICAgMCksIERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3QoImhh
c093blByb3BlcnR5IiwgbmV3IE9iamVjdFByb3RvRnVuYyhleGVjLCBmdW5jUHJvdG8sIE9iamVj
dFByb3RvRnVuYzo6SGFzT3duUHJvcGVydHksICAgICAgICAgICAgIDEpLCBEb250RW51bSk7Ci0g
ICAgcHV0RGlyZWN0KCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIG5ldyBPYmplY3RQcm90b0Z1bmMo
ZXhlYywgZnVuY1Byb3RvLCBPYmplY3RQcm90b0Z1bmM6OlByb3BlcnR5SXNFbnVtZXJhYmxlLCAx
KSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdCgiaXNQcm90b3R5cGVPZiIsIG5ldyBPYmplY3RQ
cm90b0Z1bmMoZXhlYywgZnVuY1Byb3RvLCBPYmplY3RQcm90b0Z1bmM6OklzUHJvdG90eXBlT2Ys
ICAgICAgICAgICAgICAgMSksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbihuZXcg
T2JqZWN0UHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpUb1N0cmlu
ZywgMCwgdG9TdHJpbmdQcm9wZXJ0eU5hbWUpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0RnVu
Y3Rpb24obmV3IE9iamVjdFByb3RvRnVuYyhleGVjLCBmdW5jUHJvdG8sIE9iamVjdFByb3RvRnVu
Yzo6VG9Mb2NhbGVTdHJpbmcsIDAsIHRvTG9jYWxlU3RyaW5nUHJvcGVydHlOYW1lKSwgRG9udEVu
dW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uKG5ldyBPYmplY3RQcm90b0Z1bmMoZXhlYywgZnVu
Y1Byb3RvLCBPYmplY3RQcm90b0Z1bmM6OlZhbHVlT2YsIDAsIHZhbHVlT2ZQcm9wZXJ0eU5hbWUp
LCBEb250RW51bSk7CisgICAgc3RhdGljIElkZW50aWZpZXIgaGFzT3duUHJvcGVydHlQcm9wZXJ0
eU5hbWUoImhhc093blByb3BlcnR5Iik7CisgICAgc3RhdGljIElkZW50aWZpZXIgcHJvcGVydHlJ
c0VudW1lcmFibGVQcm9wZXJ0eU5hbWUoInByb3BlcnR5SXNFbnVtZXJhYmxlIik7CisgICAgc3Rh
dGljIElkZW50aWZpZXIgaXNQcm90b3R5cGVPZlByb3BlcnR5TmFtZSgiaXNQcm90b3R5cGVPZiIp
OworICAgIHB1dERpcmVjdEZ1bmN0aW9uKG5ldyBPYmplY3RQcm90b0Z1bmMoZXhlYywgZnVuY1By
b3RvLCBPYmplY3RQcm90b0Z1bmM6Okhhc093blByb3BlcnR5LCAxLCBoYXNPd25Qcm9wZXJ0eVBy
b3BlcnR5TmFtZSksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbihuZXcgT2JqZWN0
UHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpQcm9wZXJ0eUlzRW51
bWVyYWJsZSwgMSwgcHJvcGVydHlJc0VudW1lcmFibGVQcm9wZXJ0eU5hbWUpLCBEb250RW51bSk7
CisgICAgcHV0RGlyZWN0RnVuY3Rpb24obmV3IE9iamVjdFByb3RvRnVuYyhleGVjLCBmdW5jUHJv
dG8sIE9iamVjdFByb3RvRnVuYzo6SXNQcm90b3R5cGVPZiwgMSwgaXNQcm90b3R5cGVPZlByb3Bl
cnR5TmFtZSksIERvbnRFbnVtKTsKKwogICAgIC8vIE1vemlsbGEgZXh0ZW5zaW9ucwotICAgIHB1
dERpcmVjdCgiX19kZWZpbmVHZXR0ZXJfXyIsIG5ldyBPYmplY3RQcm90b0Z1bmMoZXhlYywgZnVu
Y1Byb3RvLCBPYmplY3RQcm90b0Z1bmM6OkRlZmluZUdldHRlciwgICAgICAgICAgICAgMiksIERv
bnRFbnVtKTsKLSAgICBwdXREaXJlY3QoIl9fZGVmaW5lU2V0dGVyX18iLCBuZXcgT2JqZWN0UHJv
dG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpEZWZpbmVTZXR0ZXIsICAg
ICAgICAgICAgIDIpLCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KCJfX2xvb2t1cEdldHRlcl9f
IiwgbmV3IE9iamVjdFByb3RvRnVuYyhleGVjLCBmdW5jUHJvdG8sIE9iamVjdFByb3RvRnVuYzo6
TG9va3VwR2V0dGVyLCAgICAgICAgICAgICAxKSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdCgi
X19sb29rdXBTZXR0ZXJfXyIsIG5ldyBPYmplY3RQcm90b0Z1bmMoZXhlYywgZnVuY1Byb3RvLCBP
YmplY3RQcm90b0Z1bmM6Okxvb2t1cFNldHRlciwgICAgICAgICAgICAgMSksIERvbnRFbnVtKTsK
KyAgICBzdGF0aWMgY29uc3QgSWRlbnRpZmllciBkZWZpbmVHZXR0ZXJQcm9wZXJ0eU5hbWUoIl9f
ZGVmaW5lR2V0dGVyX18iKTsKKyAgICBzdGF0aWMgY29uc3QgSWRlbnRpZmllciBkZWZpbmVTZXR0
ZXJQcm9wZXJ0eU5hbWUoIl9fZGVmaW5lU2V0dGVyX18iKTsKKyAgICBzdGF0aWMgY29uc3QgSWRl
bnRpZmllciBsb29rdXBHZXR0ZXJQcm9wZXJ0eU5hbWUoIl9fbG9va3VwR2V0dGVyX18iKTsKKyAg
ICBzdGF0aWMgY29uc3QgSWRlbnRpZmllciBsb29rdXBTZXR0ZXJQcm9wZXJ0eU5hbWUoIl9fbG9v
a3VwU2V0dGVyX18iKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbihuZXcgT2JqZWN0UHJvdG9GdW5j
KGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpEZWZpbmVHZXR0ZXIsIDIsIGRlZmlu
ZUdldHRlclByb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbihu
ZXcgT2JqZWN0UHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpEZWZp
bmVTZXR0ZXIsIDIsIGRlZmluZVNldHRlclByb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3RGdW5jdGlvbihuZXcgT2JqZWN0UHJvdG9GdW5jKGV4ZWMsIGZ1bmNQcm90bywgT2Jq
ZWN0UHJvdG9GdW5jOjpMb29rdXBHZXR0ZXIsIDEsIGxvb2t1cEdldHRlclByb3BlcnR5TmFtZSks
IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbihuZXcgT2JqZWN0UHJvdG9GdW5jKGV4
ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jOjpMb29rdXBTZXR0ZXIsIDEsIGxvb2t1cFNl
dHRlclByb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKIH0KIAogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gT2JqZWN0UHJvdG9GdW5jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLU9iamVjdFByb3RvRnVuYzo6T2JqZWN0UHJvdG9GdW5jKEV4ZWNTdGF0ZSAqZXhl
YywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHJvdG90
eXBlICpmdW5jUHJvdG8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgaSwgaW50IGxlbikKLSAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1wKGZ1bmNQcm90byksIGlkKGkp
CitPYmplY3RQcm90b0Z1bmM6Ok9iamVjdFByb3RvRnVuYyhFeGVjU3RhdGUqLCBGdW5jdGlvblBy
b3RvdHlwZSAqZnVuY1Byb3RvLCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYgbmFt
ZSkKKyAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1wKGZ1bmNQcm90bywgbmFtZSkKKyAgLCBpZChpKQog
ewogICBwdXREaXJlY3QobGVuZ3RoUHJvcGVydHlOYW1lLCBsZW4sIERvbnREZWxldGV8UmVhZE9u
bHl8RG9udEVudW0pOwogfQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL3N0cmluZ19vYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9zdHJpbmdfb2JqZWN0LmNwcAko
cmV2aXNpb24gMTI4OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvc3RyaW5nX29iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE2NywxMCArMTY3LDkgQEAgYm9vbCBTdHJpbmdQcm90b3R5cGU6
OmdldE93blByb3BlcnR5U2xvdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
U3RyaW5nUHJvdG9GdW5jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1TdHJpbmdQcm90
b0Z1bmM6OlN0cmluZ1Byb3RvRnVuYyhFeGVjU3RhdGUgKmV4ZWMsIGludCBpLCBpbnQgbGVuKQot
ICA6IEludGVybmFsRnVuY3Rpb25JbXAoCi0gICAgc3RhdGljX2Nhc3Q8RnVuY3Rpb25Qcm90b3R5
cGUqPihleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+YnVpbHRpbkZ1bmN0aW9uUHJvdG90eXBl
KCkpCi0gICAgKSwgaWQoaSkKK1N0cmluZ1Byb3RvRnVuYzo6U3RyaW5nUHJvdG9GdW5jKEV4ZWNT
dGF0ZSAqZXhlYywgaW50IGksIGludCBsZW4sIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCisgIDog
SW50ZXJuYWxGdW5jdGlvbkltcChzdGF0aWNfY2FzdDxGdW5jdGlvblByb3RvdHlwZSo+KGV4ZWMt
PmxleGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluRnVuY3Rpb25Qcm90b3R5cGUoKSksIG5hbWUp
CisgICwgaWQoaSkKIHsKICAgcHV0RGlyZWN0KGxlbmd0aFByb3BlcnR5TmFtZSwgbGVuLCBEb250
RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KQEAgLTY5OSw3ICs2OTgsNyBAQCBTdHJpbmdP
YmplY3RJbXA6OlN0cmluZ09iamVjdEltcChFeGVjU3RhCiAgIC8vIEVDTUEgMTUuNS4zLjEgU3Ry
aW5nLnByb3RvdHlwZQogICBwdXREaXJlY3QocHJvdG90eXBlUHJvcGVydHlOYW1lLCBzdHJpbmdQ
cm90bywgRG9udEVudW18RG9udERlbGV0ZXxSZWFkT25seSk7CiAKLSAgcHV0RGlyZWN0KGZyb21D
aGFyQ29kZVByb3BlcnR5TmFtZSwgbmV3IFN0cmluZ09iamVjdEZ1bmNJbXAoZXhlYywgZnVuY1By
b3RvKSwgRG9udEVudW0pOworICBwdXREaXJlY3RGdW5jdGlvbihuZXcgU3RyaW5nT2JqZWN0RnVu
Y0ltcChleGVjLCBmdW5jUHJvdG8sIGZyb21DaGFyQ29kZVByb3BlcnR5TmFtZSksIERvbnRFbnVt
KTsKIAogICAvLyBuby4gb2YgYXJndW1lbnRzIGZvciBjb25zdHJ1Y3RvcgogICBwdXREaXJlY3Qo
bGVuZ3RoUHJvcGVydHlOYW1lLCBqc051bWJlcigxKSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250
RW51bSk7CkBAIC03MzksOCArNzM4LDggQEAgSlNWYWx1ZSAqU3RyaW5nT2JqZWN0SW1wOjpjYWxs
QXNGdW5jdGlvbgogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmluZ09iamVj
dEZ1bmNJbXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLy8gRUNNQSAxNS41LjMuMiBm
cm9tQ2hhckNvZGUoKQotU3RyaW5nT2JqZWN0RnVuY0ltcDo6U3RyaW5nT2JqZWN0RnVuY0ltcChF
eGVjU3RhdGUgKmV4ZWMsIEZ1bmN0aW9uUHJvdG90eXBlICpmdW5jUHJvdG8pCi0gIDogSW50ZXJu
YWxGdW5jdGlvbkltcChmdW5jUHJvdG8pCitTdHJpbmdPYmplY3RGdW5jSW1wOjpTdHJpbmdPYmpl
Y3RGdW5jSW1wKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jUHJvdG8sIGNvbnN0
IElkZW50aWZpZXImIG5hbWUpCisgIDogSW50ZXJuYWxGdW5jdGlvbkltcChmdW5jUHJvdG8sIG5h
bWUpCiB7CiAgIHB1dERpcmVjdChsZW5ndGhQcm9wZXJ0eU5hbWUsIGpzTnVtYmVyKDEpLCBEb250
RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9v
YmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9vYmplY3QuY3BwCShy
ZXZpc2lvbiAxMjg5OSkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9vYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NDEsNiArNTQxLDExIEBAIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdChjb25z
dCBJZGVudGlmaWUKICAgICBfcHJvcC5wdXQocHJvcGVydHlOYW1lLCBqc051bWJlcih2YWx1ZSks
IGF0dHIpOwogfQogCit2b2lkIEpTT2JqZWN0OjpwdXREaXJlY3RGdW5jdGlvbihJbnRlcm5hbEZ1
bmN0aW9uSW1wKiBmdW5jLCBpbnQgYXR0cikKK3sKKyAgICBwdXREaXJlY3QoZnVuYy0+ZnVuY3Rp
b25OYW1lKCksIGZ1bmMsIGF0dHIpOyAKK30KKwogdm9pZCBKU09iamVjdDo6ZmlsbEdldHRlclBy
b3BlcnR5U2xvdChQcm9wZXJ0eVNsb3QmIHNsb3QsIEpTVmFsdWUgKipsb2NhdGlvbikKIHsKICAg
ICBHZXR0ZXJTZXR0ZXJJbXAgKmdzID0gc3RhdGljX2Nhc3Q8R2V0dGVyU2V0dGVySW1wICo+KCps
b2NhdGlvbik7CkBAIC02MTIsNyArNjE3LDcgQEAgSlNPYmplY3QgKkVycm9yOjpjcmVhdGUoRXhl
Y1N0YXRlICpleGVjLAogCiAvKgogI2lmbmRlZiBOREVCVUcKLSAgY29uc3QgY2hhciAqbXNnID0g
ZXJyLT5nZXQoIm1lc3NhZ2UiKS0+dG9TdHJpbmcoKS52YWx1ZSgpLmFzY2lpKCk7CisgIGNvbnN0
IGNoYXIgKm1zZyA9IGVyci0+Z2V0KG1lc3NhZ2VQcm9wZXJ0eU5hbWUpLT50b1N0cmluZygpLnZh
bHVlKCkuYXNjaWkoKTsKICAgaWYgKGwgPj0gMCkKICAgICAgIGZwcmludGYoc3RkZXJyLCAiS0pT
OiAlcyBhdCBsaW5lICVkLiAlc1xuIiwgZXN0ciwgbCwgbXNnKTsKICAgZWxzZQpJbmRleDogSmF2
YVNjcmlwdENvcmUva2pzL2Z1bmN0aW9uX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9mdW5jdGlvbl9vYmplY3QuaAkocmV2aXNpb24gMTI4OTkpCisrKyBKYXZhU2Ny
aXB0Q29yZS9ranMvZnVuY3Rpb25fb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDggKzUx
LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAqLwogICBjbGFzcyBGdW5jdGlvblByb3RvRnVuYyA6
IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uSW1wIHsKICAgcHVibGljOgotICAgIEZ1bmN0aW9uUHJv
dG9GdW5jKEV4ZWNTdGF0ZSAqZXhlYywKLSAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9u
UHJvdG90eXBlICpmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVuKTsKKyAgICBGdW5jdGlvblByb3Rv
RnVuYyhFeGVjU3RhdGUqLCBGdW5jdGlvblByb3RvdHlwZSosIGludCBpLCBpbnQgbGVuLCBjb25z
dCBJZGVudGlmaWVyJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25z
dDsKICAgICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywg
SlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwpJbmRleDogSmF2YVNjcmlwdENv
cmUva2pzL2ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2ludGVy
bmFsLmgJKHJldmlzaW9uIDEyODk5KQorKysgSmF2YVNjcmlwdENvcmUva2pzL2ludGVybmFsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM0OCwxMiArMzQ4LDE2IEBAIG5hbWVzcGFjZSBLSlMgewogICBj
bGFzcyBJbnRlcm5hbEZ1bmN0aW9uSW1wIDogcHVibGljIEpTT2JqZWN0IHsKICAgcHVibGljOgog
ICAgIEludGVybmFsRnVuY3Rpb25JbXAoKTsKLSAgICBJbnRlcm5hbEZ1bmN0aW9uSW1wKEZ1bmN0
aW9uUHJvdG90eXBlICpmdW5jUHJvdG8pOworICAgIEludGVybmFsRnVuY3Rpb25JbXAoRnVuY3Rp
b25Qcm90b3R5cGUqKTsKKyAgICBJbnRlcm5hbEZ1bmN0aW9uSW1wKEZ1bmN0aW9uUHJvdG90eXBl
KiwgY29uc3QgSWRlbnRpZmllciYpOwogICAgIGJvb2wgaW1wbGVtZW50c0hhc0luc3RhbmNlKCkg
Y29uc3Q7CiAgICAgYm9vbCBoYXNJbnN0YW5jZShFeGVjU3RhdGUgKmV4ZWMsIEpTVmFsdWUgKnZh
bHVlKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvICpjbGFzc0luZm8oKSBjb25zdCB7
IHJldHVybiAmaW5mbzsgfQogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKKyAgICBj
b25zdCBJZGVudGlmaWVyJiBmdW5jdGlvbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0K
KyAgcHJpdmF0ZToKKyAgICBJZGVudGlmaWVyIG1fbmFtZTsKICAgfTsKIAogICAvLyBoZWxwZXIg
ZnVuY3Rpb24gZm9yIHRvSW50ZWdlciwgdG9JbnQzMiwgdG9VSW50MzIgYW5kIHRvVUludDE2Cklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbWF0aF9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9ranMvbWF0aF9vYmplY3QuaAkocmV2aXNpb24gMTI4OTkpCisrKyBKYXZhU2Ny
aXB0Q29yZS9ranMvbWF0aF9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBA
QCBuYW1lc3BhY2UgS0pTIHsKIAogICBjbGFzcyBNYXRoRnVuY0ltcCA6IHB1YmxpYyBJbnRlcm5h
bEZ1bmN0aW9uSW1wIHsKICAgcHVibGljOgotICAgIE1hdGhGdW5jSW1wKEV4ZWNTdGF0ZSAqZXhl
YywgaW50IGksIGludCBsKTsKKyAgICBNYXRoRnVuY0ltcChFeGVjU3RhdGUgKmV4ZWMsIGludCBp
LCBpbnQgbCwgY29uc3QgSWRlbnRpZmllciYpOwogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRz
Q2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0
YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAgIHByaXZh
dGU6CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvZXJyb3Jfb2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUva2pzL2Vycm9yX29iamVjdC5oCShyZXZpc2lvbiAxMjg5OSkKKysr
IEphdmFTY3JpcHRDb3JlL2tqcy9lcnJvcl9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDQs
NyArNDQsNyBAQCBuYW1lc3BhY2UgS0pTIHsKIAogICBjbGFzcyBFcnJvclByb3RvRnVuYyA6IHB1
YmxpYyBJbnRlcm5hbEZ1bmN0aW9uSW1wIHsKICAgcHVibGljOgotICAgIEVycm9yUHJvdG9GdW5j
KEV4ZWNTdGF0ZSAqZXhlYywgRnVuY3Rpb25Qcm90b3R5cGUgKmZ1bmNQcm90byk7CisgICAgRXJy
b3JQcm90b0Z1bmMoRXhlY1N0YXRlKiwgRnVuY3Rpb25Qcm90b3R5cGUqLCBjb25zdCBJZGVudGlm
aWVyJik7CiAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBKU1ZhbHVlICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0
aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKICAgfTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tq
cy9mdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2Z1bmN0aW9u
LmNwcAkocmV2aXNpb24gMTI4OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01Niw5ICs1Niw5IEBAIGNvbnN0IENsYXNzSW5mbyBGdW5jdGlv
bkltcDo6aW5mbyA9IHsiRnUKICAgfTsKIAogRnVuY3Rpb25JbXA6OkZ1bmN0aW9uSW1wKEV4ZWNT
dGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmbikKLSAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1w
KAotICAgICAgc3RhdGljX2Nhc3Q8RnVuY3Rpb25Qcm90b3R5cGUqPihleGVjLT5sZXhpY2FsSW50
ZXJwcmV0ZXIoKS0+YnVpbHRpbkZ1bmN0aW9uUHJvdG90eXBlKCkpCi0gICAgICApLCBwYXJhbSgw
TCksIGlkZW50KG4pCisgIDogSW50ZXJuYWxGdW5jdGlvbkltcChzdGF0aWNfY2FzdDxGdW5jdGlv
blByb3RvdHlwZSo+CisgICAgICAgICAgICAgICAgICAgICAgICAoZXhlYy0+bGV4aWNhbEludGVy
cHJldGVyKCktPmJ1aWx0aW5GdW5jdGlvblByb3RvdHlwZSgpKSwgbikKKyAgLCBwYXJhbSgwTCkK
IHsKIH0KIApAQCAtNTU3LDggKzU1Nyw5IEBAIHZvaWQgQWN0aXZhdGlvbkltcDo6Y3JlYXRlQXJn
dW1lbnRzT2JqZWMKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBHbG9iYWxGdW5j
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIAotR2xvYmFsRnVuY0ltcDo6
R2xvYmFsRnVuY0ltcChFeGVjU3RhdGUgKmV4ZWMsIEZ1bmN0aW9uUHJvdG90eXBlICpmdW5jUHJv
dG8sIGludCBpLCBpbnQgbGVuKQotICA6IEludGVybmFsRnVuY3Rpb25JbXAoZnVuY1Byb3RvKSwg
aWQoaSkKK0dsb2JhbEZ1bmNJbXA6Okdsb2JhbEZ1bmNJbXAoRXhlY1N0YXRlKiwgRnVuY3Rpb25Q
cm90b3R5cGUqIGZ1bmNQcm90bywgaW50IGksIGludCBsZW4sIGNvbnN0IElkZW50aWZpZXImIG5h
bWUpCisgIDogSW50ZXJuYWxGdW5jdGlvbkltcChmdW5jUHJvdG8sIG5hbWUpCisgICwgaWQoaSkK
IHsKICAgcHV0RGlyZWN0KGxlbmd0aFByb3BlcnR5TmFtZSwgbGVuLCBEb250RGVsZXRlfFJlYWRP
bmx5fERvbnRFbnVtKTsKIH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHBfb2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL3JlZ2V4cF9vYmplY3QuaAkocmV2
aXNpb24gMTI4OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwX29iamVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw4ICs0MCw3IEBAIG5hbWVzcGFjZSBLSlMgewogCiAgIGNsYXNzIFJl
Z0V4cFByb3RvRnVuYyA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uSW1wIHsKICAgcHVibGljOgot
ICAgIFJlZ0V4cFByb3RvRnVuYyhFeGVjU3RhdGUgKmV4ZWMsCi0gICAgICAgICAgICAgICAgICAg
ICAgIEZ1bmN0aW9uUHJvdG90eXBlICpmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVuKTsKKyAgICBS
ZWdFeHBQcm90b0Z1bmMoRXhlY1N0YXRlKiwgRnVuY3Rpb25Qcm90b3R5cGUqLCBpbnQgaSwgaW50
IGxlbiwgY29uc3QgSWRlbnRpZmllciYpOwogCiAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHND
YWxsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBKU1ZhbHVlICpjYWxsQXNGdW5jdGlvbihFeGVjU3Rh
dGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2tqcy9ib29sX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL2tqcy9ib29sX29iamVjdC5oCShyZXZpc2lvbiAxMjg5OSkKKysrIEphdmFTY3JpcHRDb3Jl
L2tqcy9ib29sX29iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw3IEBAIG5hbWVz
cGFjZSBLSlMgewogICAgKi8KICAgY2xhc3MgQm9vbGVhblByb3RvRnVuYyA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uSW1wIHsKICAgcHVibGljOgotICAgIEJvb2xlYW5Qcm90b0Z1bmMoRXhlY1N0
YXRlICpleGVjLAotICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb25Qcm90b3R5cGUgKmZ1
bmNQcm90bywgaW50IGksIGludCBsZW4pOworICAgIEJvb2xlYW5Qcm90b0Z1bmMoRXhlY1N0YXRl
KiwgRnVuY3Rpb25Qcm90b3R5cGUqLCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYp
OwogCiAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmlydHVh
bCBKU1ZhbHVlICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlz
T2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9zdHJpbmdf
b2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL3N0cmluZ19vYmplY3Qu
aAkocmV2aXNpb24gMTI4OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvc3RyaW5nX29iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgKi8K
ICAgY2xhc3MgU3RyaW5nUHJvdG9GdW5jIDogcHVibGljIEludGVybmFsRnVuY3Rpb25JbXAgewog
ICBwdWJsaWM6Ci0gICAgU3RyaW5nUHJvdG9GdW5jKEV4ZWNTdGF0ZSAqZXhlYywgaW50IGksIGlu
dCBsZW4pOworICAgIFN0cmluZ1Byb3RvRnVuYyhFeGVjU3RhdGUgKmV4ZWMsIGludCBpLCBpbnQg
bGVuLCBjb25zdCBJZGVudGlmaWVyJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0Nh
bGwoKSBjb25zdDsKICAgICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0
ZSAqZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwpAQCAtMTEwLDcg
KzExMCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgKi8KICAgY2xhc3MgU3RyaW5nT2JqZWN0RnVu
Y0ltcCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uSW1wIHsKICAgcHVibGljOgotICAgIFN0cmlu
Z09iamVjdEZ1bmNJbXAoRXhlY1N0YXRlICpleGVjLCBGdW5jdGlvblByb3RvdHlwZSAqZnVuY1By
b3RvKTsKKyAgICBTdHJpbmdPYmplY3RGdW5jSW1wKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uUHJvdG90
eXBlKiwgY29uc3QgSWRlbnRpZmllciYpOwogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2Fs
bCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRl
ICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAgIH07CkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0X29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL2tqcy9vYmplY3Rfb2JqZWN0LmgJKHJldmlzaW9uIDEyODk5KQorKysgSmF2YVNj
cmlwdENvcmUva2pzL29iamVjdF9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMs
NyBAQAogI2RlZmluZSBfT0JKRUNUX09CSkVDVF9IXwogCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIK
KyNpbmNsdWRlICJmdW5jdGlvbi5oIgogCiBuYW1lc3BhY2UgS0pTIHsKIApAQCAtNDcsNyArNDgs
NyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICovCiAgIGNsYXNzIE9iamVjdFByb3RvRnVuYyA6IHB1
YmxpYyBJbnRlcm5hbEZ1bmN0aW9uSW1wIHsKICAgcHVibGljOgotICAgIE9iamVjdFByb3RvRnVu
YyhFeGVjU3RhdGUgKmV4ZWMsIEZ1bmN0aW9uUHJvdG90eXBlICpmdW5jUHJvdG8sIGludCBpLCBp
bnQgbGVuKTsKKyAgICBPYmplY3RQcm90b0Z1bmMoRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvblBy
b3RvdHlwZSogZnVuY1Byb3RvLCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYpOwog
CiAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBK
U1ZhbHVlICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKiwgSlNPYmplY3QgKiwgY29uc3QgTGlz
dCAmYXJncyk7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb25fb2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb25fb2JqZWN0LmNwcAkocmV2
aXNpb24gMTI4OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb25fb2JqZWN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDAsMTIgKzQwLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBLSlM7CiAK
IEZ1bmN0aW9uUHJvdG90eXBlOjpGdW5jdGlvblByb3RvdHlwZShFeGVjU3RhdGUgKmV4ZWMpCiB7
Ci0gIHB1dERpcmVjdChsZW5ndGhQcm9wZXJ0eU5hbWUsICAganNOdW1iZXIoMCksICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnREZWxldGV8
UmVhZE9ubHl8RG9udEVudW0pOwotICBwdXREaXJlY3QodG9TdHJpbmdQcm9wZXJ0eU5hbWUsIG5l
dyBGdW5jdGlvblByb3RvRnVuYyhleGVjLCB0aGlzLCBGdW5jdGlvblByb3RvRnVuYzo6VG9TdHJp
bmcsIDApLCBEb250RW51bSk7CisgIHB1dERpcmVjdChsZW5ndGhQcm9wZXJ0eU5hbWUsIGpzTnVt
YmVyKDApLCBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKKyAgcHV0RGlyZWN0RnVuY3Rp
b24obmV3IEZ1bmN0aW9uUHJvdG9GdW5jKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG9GdW5jOjpU
b1N0cmluZywgMCwgdG9TdHJpbmdQcm9wZXJ0eU5hbWUpLCBEb250RW51bSk7CiAgIHN0YXRpYyBj
b25zdCBJZGVudGlmaWVyIGFwcGx5UHJvcGVydHlOYW1lKCJhcHBseSIpOwotICBwdXREaXJlY3Qo
YXBwbHlQcm9wZXJ0eU5hbWUsICAgIG5ldyBGdW5jdGlvblByb3RvRnVuYyhleGVjLCB0aGlzLCBG
dW5jdGlvblByb3RvRnVuYzo6QXBwbHksICAgIDIpLCBEb250RW51bSk7CisgIHB1dERpcmVjdEZ1
bmN0aW9uKG5ldyBGdW5jdGlvblByb3RvRnVuYyhleGVjLCB0aGlzLCBGdW5jdGlvblByb3RvRnVu
Yzo6QXBwbHksIDIsIGFwcGx5UHJvcGVydHlOYW1lKSwgRG9udEVudW0pOwogICBzdGF0aWMgY29u
c3QgSWRlbnRpZmllciBjYWxsUHJvcGVydHlOYW1lKCJjYWxsIik7Ci0gIHB1dERpcmVjdChjYWxs
UHJvcGVydHlOYW1lLCAgICAgbmV3IEZ1bmN0aW9uUHJvdG9GdW5jKGV4ZWMsIHRoaXMsIEZ1bmN0
aW9uUHJvdG9GdW5jOjpDYWxsLCAgICAgMSksIERvbnRFbnVtKTsKKyAgcHV0RGlyZWN0RnVuY3Rp
b24obmV3IEZ1bmN0aW9uUHJvdG9GdW5jKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG9GdW5jOjpD
YWxsLCAxLCBjYWxsUHJvcGVydHlOYW1lKSwgRG9udEVudW0pOwogfQogCiBGdW5jdGlvblByb3Rv
dHlwZTo6fkZ1bmN0aW9uUHJvdG90eXBlKCkKQEAgLTY1LDkgKzY1LDkgQEAgSlNWYWx1ZSAqRnVu
Y3Rpb25Qcm90b3R5cGU6OmNhbGxBc0Z1bmN0aQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gRnVuY3Rpb25Qcm90b0Z1bmMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1G
dW5jdGlvblByb3RvRnVuYzo6RnVuY3Rpb25Qcm90b0Z1bmMoRXhlY1N0YXRlICpleGVjLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvblByb3RvdHlwZSAq
ZnVuY1Byb3RvLCBpbnQgaSwgaW50IGxlbikKLSAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1wKGZ1bmNQ
cm90byksIGlkKGkpCitGdW5jdGlvblByb3RvRnVuYzo6RnVuY3Rpb25Qcm90b0Z1bmMoRXhlY1N0
YXRlKiwgRnVuY3Rpb25Qcm90b3R5cGUqIGZ1bmNQcm90bywgaW50IGksIGludCBsZW4sIGNvbnN0
IElkZW50aWZpZXImIG5hbWUpCisgIDogSW50ZXJuYWxGdW5jdGlvbkltcChmdW5jUHJvdG8sIG5h
bWUpCisgICwgaWQoaSkKIHsKICAgcHV0RGlyZWN0KGxlbmd0aFByb3BlcnR5TmFtZSwgbGVuLCBE
b250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KQEAgLTgzLDggKzgzLDcgQEAgSlNWYWx1
ZSAqRnVuY3Rpb25Qcm90b0Z1bmM6OmNhbGxBc0Z1bmN0aQogICBKU1ZhbHVlICpyZXN1bHQgPSBO
VUxMOwogCiAgIHN3aXRjaCAoaWQpIHsKLSAgY2FzZSBUb1N0cmluZzogewotICAgIC8vICMjIyBh
bHNvIG1ha2UgdGhpcyB3b3JrIGZvciBpbnRlcm5hbCBmdW5jdGlvbnMKKyAgY2FzZSBUb1N0cmlu
ZzoKICAgICBpZiAoIXRoaXNPYmogfHwgIXRoaXNPYmotPmluaGVyaXRzKCZJbnRlcm5hbEZ1bmN0
aW9uSW1wOjppbmZvKSkgewogI2lmbmRlZiBOREVCVUcKICAgICAgIGZwcmludGYoc3RkZXJyLCJh
dHRlbXB0ZWQgdG9TdHJpbmcoKSBjYWxsIG9uIG51bGwgb3Igbm9uLWZ1bmN0aW9uIG9iamVjdFxu
Iik7CkBAIC05MiwxNyArOTEsMTUgQEAgSlNWYWx1ZSAqRnVuY3Rpb25Qcm90b0Z1bmM6OmNhbGxB
c0Z1bmN0aQogICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICB9
CiAgICAgaWYgKHRoaXNPYmotPmluaGVyaXRzKCZEZWNsYXJlZEZ1bmN0aW9uSW1wOjppbmZvKSkg
ewotICAgICAgIERlY2xhcmVkRnVuY3Rpb25JbXAgKmZpID0gc3RhdGljX2Nhc3Q8RGVjbGFyZWRG
dW5jdGlvbkltcCo+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpc09iaik7
Ci0gICAgICAgcmV0dXJuIGpzU3RyaW5nKCJmdW5jdGlvbiAiICsgZmktPm5hbWUoKS51c3RyaW5n
KCkgKyAiKCIgKwotICAgICAgICAgZmktPnBhcmFtZXRlclN0cmluZygpICsgIikgIiArIGZpLT5i
b2R5LT50b1N0cmluZygpKTsKLSAgICB9IGVsc2UgaWYgKHRoaXNPYmotPmluaGVyaXRzKCZGdW5j
dGlvbkltcDo6aW5mbykgJiYKLSAgICAgICAgIXN0YXRpY19jYXN0PEZ1bmN0aW9uSW1wKj4odGhp
c09iaiktPm5hbWUoKS5pc051bGwoKSkgewotICAgICAgcmVzdWx0ID0ganNTdHJpbmcoImZ1bmN0
aW9uICIgKyBzdGF0aWNfY2FzdDxGdW5jdGlvbkltcCo+KHRoaXNPYmopLT5uYW1lKCkudXN0cmlu
ZygpICsgIigpIik7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgcmVzdWx0ID0ganNTdHJpbmco
IihJbnRlcm5hbCBGdW5jdGlvbikiKTsKLSAgICB9CisgICAgICAgIERlY2xhcmVkRnVuY3Rpb25J
bXAgKmZpID0gc3RhdGljX2Nhc3Q8RGVjbGFyZWRGdW5jdGlvbkltcCo+KHRoaXNPYmopOworICAg
ICAgICByZXR1cm4ganNTdHJpbmcoImZ1bmN0aW9uICIgKyBmaS0+ZnVuY3Rpb25OYW1lKCkudXN0
cmluZygpICsgIigiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpLT5wYXJhbWV0ZXJTdHJp
bmcoKSArICIpICIgKyBmaS0+Ym9keS0+dG9TdHJpbmcoKSk7CisgICAgIH0gZWxzZSBpZiAodGhp
c09iai0+aW5oZXJpdHMoJkludGVybmFsRnVuY3Rpb25JbXA6OmluZm8pICYmCisgICAgICAgICAg
ICAgICAgIXN0YXRpY19jYXN0PEludGVybmFsRnVuY3Rpb25JbXAqPih0aGlzT2JqKS0+ZnVuY3Rp
b25OYW1lKCkuaXNOdWxsKCkpIHsKKyAgICAgICByZXN1bHQgPSBqc1N0cmluZygiXG5mdW5jdGlv
biAiICsgc3RhdGljX2Nhc3Q8SW50ZXJuYWxGdW5jdGlvbkltcCo+KHRoaXNPYmopLT5mdW5jdGlv
bk5hbWUoKS51c3RyaW5nKCkgKyAiKCkge1xuIgorICAgICAgICAgICAgICAgICAgICAgICAiICAg
IFtuYXRpdmUgY29kZV1cbn1cbiIpOworICAgIH0gZWxzZSB7CisgICAgICByZXN1bHQgPSBqc1N0
cmluZygiW2Z1bmN0aW9uXSIpOwogICAgIH0KICAgICBicmVhazsKICAgY2FzZSBBcHBseTogewpJ
bmRleDogSmF2YVNjcmlwdENvcmUva2pzL29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9vYmplY3QuaAkocmV2aXNpb24gMTI4OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9r
anMvb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIEtK
UyB7CiAgIGNsYXNzIEhhc2hUYWJsZTsKICAgY2xhc3MgSGFzaEVudHJ5OwogICBjbGFzcyBMaXN0
SW1wOworICBjbGFzcyBJbnRlcm5hbEZ1bmN0aW9uSW1wOwogCiAgIC8vIEVDTUEgMjYyLTMgOC42
LjEKICAgLy8gUHJvcGVydHkgYXR0cmlidXRlcwpAQCAtNTA5LDYgKzUxMCw5IEBAIG5hbWVzcGFj
ZSBLSlMgewogICAgIHZvaWQgcHV0RGlyZWN0KGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSAqdmFsdWUsIGludCBhdHRyID0gMCk7CiAgICAgdm9pZCBwdXREaXJlY3QoY29u
c3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBpbnQgdmFsdWUsIGludCBhdHRyID0gMCk7CiAK
KyAgICAvLyBjb252ZW5pZW5jZSB0byBhZGQgYSBmdW5jdGlvbiBwcm9wZXJ0eSB1bmRlciB0aGUg
ZnVuY3Rpb24ncyBvd24gYnVpbHQtaW4gbmFtZQorICAgIHZvaWQgcHV0RGlyZWN0RnVuY3Rpb24o
SW50ZXJuYWxGdW5jdGlvbkltcCosIGludCBhdHRyID0gMCk7CisKICAgICB2b2lkIGZpbGxHZXR0
ZXJQcm9wZXJ0eVNsb3QoUHJvcGVydHlTbG90JiBzbG90LCBKU1ZhbHVlICoqbG9jYXRpb24pOwog
CiAgICAgdm9pZCBkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0ICpnZXR0ZXJGdW5jKTsKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL2tqcy9lcnJvcl9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tq
cy9lcnJvcl9vYmplY3QuY3BwCShyZXZpc2lvbiAxMjg5OSkKKysrIEphdmFTY3JpcHRDb3JlL2tq
cy9lcnJvcl9vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MywxMyArNTMsMTMgQEAgRXJy
b3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZQogCiAgIHB1dChleGVjLCBuYW1l
UHJvcGVydHlOYW1lLCAgICAganNTdHJpbmcoIkVycm9yIiksIERvbnRFbnVtKTsKICAgcHV0KGV4
ZWMsIG1lc3NhZ2VQcm9wZXJ0eU5hbWUsICBqc1N0cmluZygiVW5rbm93biBlcnJvciIpLCBEb250
RW51bSk7Ci0gIHB1dERpcmVjdCh0b1N0cmluZ1Byb3BlcnR5TmFtZSwgbmV3IEVycm9yUHJvdG9G
dW5jKGV4ZWMsZnVuY1Byb3RvKSwgRG9udEVudW0pOworICBwdXREaXJlY3RGdW5jdGlvbihuZXcg
RXJyb3JQcm90b0Z1bmMoZXhlYywgZnVuY1Byb3RvLCB0b1N0cmluZ1Byb3BlcnR5TmFtZSksIERv
bnRFbnVtKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEVycm9yUHJv
dG9GdW5jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRXJyb3JQcm90b0Z1bmM6OkVy
cm9yUHJvdG9GdW5jKEV4ZWNTdGF0ZSAqZXhlYywgRnVuY3Rpb25Qcm90b3R5cGUgKmZ1bmNQcm90
bykKLSAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1wKGZ1bmNQcm90bykKK0Vycm9yUHJvdG9GdW5jOjpF
cnJvclByb3RvRnVuYyhFeGVjU3RhdGUqLCBGdW5jdGlvblByb3RvdHlwZSogZnVuY1Byb3RvLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lKQorICA6IEludGVybmFsRnVuY3Rpb25JbXAoZnVuY1Byb3Rv
LCBuYW1lKQogewogICBwdXREaXJlY3QobGVuZ3RoUHJvcGVydHlOYW1lLCBqc051bWJlcigwKSwg
RG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bSk7CiB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9r
anMvbWF0aF9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9tYXRo
X29iamVjdC5jcHAJKHJldmlzaW9uIDEyODk5KQorKysgSmF2YVNjcmlwdENvcmUva2pzL21hdGhf
b2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDEwICsxNTMsOSBAQCBKU1ZhbHVlICpN
YXRoT2JqZWN0SW1wOjpnZXRWYWx1ZVByb3BlcnR5CiAKIHN0YXRpYyBib29sIHJhbmRvbVNlZWRl
ZCA9IGZhbHNlOwogCi1NYXRoRnVuY0ltcDo6TWF0aEZ1bmNJbXAoRXhlY1N0YXRlICpleGVjLCBp
bnQgaSwgaW50IGwpCi0gIDogSW50ZXJuYWxGdW5jdGlvbkltcCgKLSAgICBzdGF0aWNfY2FzdDxG
dW5jdGlvblByb3RvdHlwZSo+KGV4ZWMtPmxleGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluRnVu
Y3Rpb25Qcm90b3R5cGUoKSkKLSAgICApLCBpZChpKQorTWF0aEZ1bmNJbXA6Ok1hdGhGdW5jSW1w
KEV4ZWNTdGF0ZSogZXhlYywgaW50IGksIGludCBsLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQor
ICA6IEludGVybmFsRnVuY3Rpb25JbXAoc3RhdGljX2Nhc3Q8RnVuY3Rpb25Qcm90b3R5cGUqPihl
eGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+YnVpbHRpbkZ1bmN0aW9uUHJvdG90eXBlKCkpLCBu
YW1lKQorICAsIGlkKGkpCiB7CiAgIHB1dERpcmVjdChsZW5ndGhQcm9wZXJ0eU5hbWUsIGwsIERv
bnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0pOwogfQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pz
L2Jvb2xfb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvYm9vbF9v
YmplY3QuY3BwCShyZXZpc2lvbiAxMjg5OSkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ib29sX29i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDI0ICs0NiwyMiBAQCBCb29sZWFuSW5zdGFu
Y2U6OkJvb2xlYW5JbnN0YW5jZShKU09iamVjCiAKIC8vIEVDTUEgMTUuNi40CiAKLUJvb2xlYW5Q
cm90b3R5cGU6OkJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRlICpleGVjLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RQcm90b3R5cGUgKm9iamVjdFByb3Rv
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvblByb3Rv
dHlwZSAqZnVuY1Byb3RvKQorQm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblByb3RvdHlwZShFeGVj
U3RhdGUqIGV4ZWMsIE9iamVjdFByb3RvdHlwZSogb2JqZWN0UHJvdG8sIEZ1bmN0aW9uUHJvdG90
eXBlKiBmdW5jUHJvdG8pCiAgIDogQm9vbGVhbkluc3RhbmNlKG9iamVjdFByb3RvKQogewogICAv
LyBUaGUgY29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciBieSBJbnRlcnByZXRlckltcDo6
SW50ZXJwcmV0ZXJJbXAoKQogCi0gIHB1dERpcmVjdCh0b1N0cmluZ1Byb3BlcnR5TmFtZSwgbmV3
IEJvb2xlYW5Qcm90b0Z1bmMoZXhlYyxmdW5jUHJvdG8sQm9vbGVhblByb3RvRnVuYzo6VG9TdHJp
bmcsMCksIERvbnRFbnVtKTsKLSAgcHV0RGlyZWN0KHZhbHVlT2ZQcm9wZXJ0eU5hbWUsICBuZXcg
Qm9vbGVhblByb3RvRnVuYyhleGVjLGZ1bmNQcm90byxCb29sZWFuUHJvdG9GdW5jOjpWYWx1ZU9m
LDApLCAgRG9udEVudW0pOworICBwdXREaXJlY3RGdW5jdGlvbihuZXcgQm9vbGVhblByb3RvRnVu
YyhleGVjLCBmdW5jUHJvdG8sIEJvb2xlYW5Qcm90b0Z1bmM6OlRvU3RyaW5nLCAwLCB0b1N0cmlu
Z1Byb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKKyAgcHV0RGlyZWN0RnVuY3Rpb24obmV3IEJvb2xl
YW5Qcm90b0Z1bmMoZXhlYywgZnVuY1Byb3RvLCBCb29sZWFuUHJvdG9GdW5jOjpWYWx1ZU9mLCAw
LCB2YWx1ZU9mUHJvcGVydHlOYW1lKSwgIERvbnRFbnVtKTsKICAgc2V0SW50ZXJuYWxWYWx1ZShq
c0Jvb2xlYW4oZmFsc2UpKTsKIH0KIAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gQm9vbGVhblByb3RvRnVuYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1Cb29sZWFu
UHJvdG9GdW5jOjpCb29sZWFuUHJvdG9GdW5jKEV4ZWNTdGF0ZSAqZXhlYywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb25Qcm90b3R5cGUgKmZ1bmNQcm90
bywgaW50IGksIGludCBsZW4pCi0gIDogSW50ZXJuYWxGdW5jdGlvbkltcChmdW5jUHJvdG8pLCBp
ZChpKQorQm9vbGVhblByb3RvRnVuYzo6Qm9vbGVhblByb3RvRnVuYyhFeGVjU3RhdGUqLCBGdW5j
dGlvblByb3RvdHlwZSogZnVuY1Byb3RvLCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSkKKyAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1wKGZ1bmNQcm90bywgbmFtZSkKKyAgLCBp
ZChpKQogewogICBwdXREaXJlY3QobGVuZ3RoUHJvcGVydHlOYW1lLCBsZW4sIERvbnREZWxldGV8
UmVhZE9ubHl8RG9udEVudW0pOwogfQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2RhdGVfb2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZGF0ZV9vYmplY3QuY3Bw
CShyZXZpc2lvbiAxMjg5OSkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9kYXRlX29iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgKi8KIGNs
YXNzIERhdGVQcm90b0Z1bmMgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbkltcCB7CiBwdWJsaWM6
Ci0gICAgRGF0ZVByb3RvRnVuYyhFeGVjU3RhdGUgKiwgaW50IGksIGludCBsZW4pOworICAgIERh
dGVQcm90b0Z1bmMoRXhlY1N0YXRlICosIGludCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVy
JiBkYXRlKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICosIEpTT2JqZWN0ICp0
aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgog
ICovCiBjbGFzcyBEYXRlT2JqZWN0RnVuY0ltcCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uSW1w
IHsKIHB1YmxpYzoKLSAgICBEYXRlT2JqZWN0RnVuY0ltcChFeGVjU3RhdGUgKiwgRnVuY3Rpb25Q
cm90b3R5cGUgKiwgaW50IGksIGludCBsZW4pOworICAgIERhdGVPYmplY3RGdW5jSW1wKEV4ZWNT
dGF0ZSAqLCBGdW5jdGlvblByb3RvdHlwZSAqLCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRp
ZmllciYgKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICosIEpTT2JqZWN0ICp0
aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKQEAgLTUzOSw5ICs1MzksMTAgQEAgYm9vbCBEYXRl
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gRGF0ZVByb3RvRnVuYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
Ci1EYXRlUHJvdG9GdW5jOjpEYXRlUHJvdG9GdW5jKEV4ZWNTdGF0ZSAqZXhlYywgaW50IGksIGlu
dCBsZW4pCi0gIDogSW50ZXJuYWxGdW5jdGlvbkltcChzdGF0aWNfY2FzdDxGdW5jdGlvblByb3Rv
dHlwZSo+KGV4ZWMtPmxleGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluRnVuY3Rpb25Qcm90b3R5
cGUoKSkpLAotICAgIGlkKGFicyhpKSksIHV0YyhpPDApCitEYXRlUHJvdG9GdW5jOjpEYXRlUHJv
dG9GdW5jKEV4ZWNTdGF0ZSAqZXhlYywgaW50IGksIGludCBsZW4sIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUpCisgIDogSW50ZXJuYWxGdW5jdGlvbkltcChzdGF0aWNfY2FzdDxGdW5jdGlvblByb3Rv
dHlwZSo+KGV4ZWMtPmxleGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluRnVuY3Rpb25Qcm90b3R5
cGUoKSksIG5hbWUpCisgICwgaWQoYWJzKGkpKQorICAsIHV0YyhpPDApCiAgIC8vIFdlIHVzZSBh
IG5lZ2F0aXZlIElEIHRvIGRlbm90ZSB0aGUgIlVUQyIgdmFyaWFudC4KIHsKICAgICBwdXREaXJl
Y3QobGVuZ3RoUHJvcGVydHlOYW1lLCBsZW4sIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0p
OwpAQCAtNzE5LDkgKzcyMCw5IEBAIERhdGVPYmplY3RJbXA6OkRhdGVPYmplY3RJbXAoRXhlY1N0
YXRlICoKICAgcHV0RGlyZWN0KHByb3RvdHlwZVByb3BlcnR5TmFtZSwgZGF0ZVByb3RvLCBEb250
RW51bXxEb250RGVsZXRlfFJlYWRPbmx5KTsKIAogICBzdGF0aWMgY29uc3QgSWRlbnRpZmllciBw
YXJzZVByb3BlcnR5TmFtZSgicGFyc2UiKTsKLSAgcHV0RGlyZWN0KHBhcnNlUHJvcGVydHlOYW1l
LCBuZXcgRGF0ZU9iamVjdEZ1bmNJbXAoZXhlYyxmdW5jUHJvdG8sRGF0ZU9iamVjdEZ1bmNJbXA6
OlBhcnNlLCAxKSwgRG9udEVudW0pOworICBwdXREaXJlY3RGdW5jdGlvbihuZXcgRGF0ZU9iamVj
dEZ1bmNJbXAoZXhlYywgZnVuY1Byb3RvLCBEYXRlT2JqZWN0RnVuY0ltcDo6UGFyc2UsIDEsIHBh
cnNlUHJvcGVydHlOYW1lKSwgRG9udEVudW0pOwogICBzdGF0aWMgY29uc3QgSWRlbnRpZmllciBV
VENQcm9wZXJ0eU5hbWUoIlVUQyIpOwotICBwdXREaXJlY3QoVVRDUHJvcGVydHlOYW1lLCAgIG5l
dyBEYXRlT2JqZWN0RnVuY0ltcChleGVjLGZ1bmNQcm90byxEYXRlT2JqZWN0RnVuY0ltcDo6VVRD
LCAgIDcpLCAgIERvbnRFbnVtKTsKKyAgcHV0RGlyZWN0RnVuY3Rpb24obmV3IERhdGVPYmplY3RG
dW5jSW1wKGV4ZWMsIGZ1bmNQcm90bywgRGF0ZU9iamVjdEZ1bmNJbXA6OlVUQywgNywgVVRDUHJv
cGVydHlOYW1lKSwgRG9udEVudW0pOwogCiAgIC8vIG5vLiBvZiBhcmd1bWVudHMgZm9yIGNvbnN0
cnVjdG9yCiAgIHB1dERpcmVjdChsZW5ndGhQcm9wZXJ0eU5hbWUsIDcsIFJlYWRPbmx5fERvbnRE
ZWxldGV8RG9udEVudW0pOwpAQCAtODEwLDggKzgxMSw4IEBAIEpTVmFsdWUgKkRhdGVPYmplY3RJ
bXA6OmNhbGxBc0Z1bmN0aW9uKEUKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IERhdGVPYmplY3RGdW5jSW1wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRGF0ZU9i
amVjdEZ1bmNJbXA6OkRhdGVPYmplY3RGdW5jSW1wKEV4ZWNTdGF0ZSAqZXhlYywgRnVuY3Rpb25Q
cm90b3R5cGUgKmZ1bmNQcm90bywgaW50IGksIGludCBsZW4pCi0gICAgOiBJbnRlcm5hbEZ1bmN0
aW9uSW1wKGZ1bmNQcm90byksIGlkKGkpCitEYXRlT2JqZWN0RnVuY0ltcDo6RGF0ZU9iamVjdEZ1
bmNJbXAoRXhlY1N0YXRlICpleGVjLCBGdW5jdGlvblByb3RvdHlwZSAqZnVuY1Byb3RvLCBpbnQg
aSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKKyAgICA6IEludGVybmFsRnVuY3Rp
b25JbXAoZnVuY1Byb3RvLCBuYW1lKSwgaWQoaSkKIHsKICAgICBwdXREaXJlY3QobGVuZ3RoUHJv
cGVydHlOYW1lLCBsZW4sIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0pOwogfQpJbmRleDog
SmF2YVNjcmlwdENvcmUva2pzL2FycmF5X29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUva2pzL2FycmF5X29iamVjdC5jcHAJKHJldmlzaW9uIDEyODk5KQorKysgSmF2YVNj
cmlwdENvcmUva2pzL2FycmF5X29iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzMywxMCAr
NDMzLDEwIEBAIGJvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCgKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFycmF5UHJvdG9GdW5jIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAotQXJyYXlQcm90b0Z1bmM6OkFycmF5UHJvdG9GdW5jKEV4ZWNT
dGF0ZSAqZXhlYywgaW50IGksIGludCBsZW4pCi0gIDogSW50ZXJuYWxGdW5jdGlvbkltcCgKLSAg
ICBzdGF0aWNfY2FzdDxGdW5jdGlvblByb3RvdHlwZSo+KGV4ZWMtPmxleGljYWxJbnRlcnByZXRl
cigpLT5idWlsdGluRnVuY3Rpb25Qcm90b3R5cGUoKSkKLSAgICApLCBpZChpKQorQXJyYXlQcm90
b0Z1bmM6OkFycmF5UHJvdG9GdW5jKEV4ZWNTdGF0ZSAqZXhlYywgaW50IGksIGludCBsZW4sIGNv
bnN0IElkZW50aWZpZXImIG5hbWUpCisgIDogSW50ZXJuYWxGdW5jdGlvbkltcChzdGF0aWNfY2Fz
dDxGdW5jdGlvblByb3RvdHlwZSo+CisgICAgICAgICAgICAgICAgICAgICAgICAoZXhlYy0+bGV4
aWNhbEludGVycHJldGVyKCktPmJ1aWx0aW5GdW5jdGlvblByb3RvdHlwZSgpKSwgbmFtZSkKKyAg
LCBpZChpKQogewogICBwdXQoZXhlYyxsZW5ndGhQcm9wZXJ0eU5hbWUsanNOdW1iZXIobGVuKSxE
b250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tq
cy9udW1iZXJfb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbnVt
YmVyX29iamVjdC5jcHAJKHJldmlzaW9uIDEyODk5KQorKysgSmF2YVNjcmlwdENvcmUva2pzL251
bWJlcl9vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCwyMCArNjAsMjAgQEAgTnVtYmVy
UHJvdG90eXBlOjpOdW1iZXJQcm90b3R5cGUoRXhlY1N0YQogCiAgIC8vIFRoZSBjb25zdHJ1Y3Rv
ciB3aWxsIGJlIGFkZGVkIGxhdGVyLCBhZnRlciBOdW1iZXJPYmplY3RJbXAgaGFzIGJlZW4gY29u
c3RydWN0ZWQKIAotICBwdXREaXJlY3QodG9TdHJpbmdQcm9wZXJ0eU5hbWUsICAgICAgIG5ldyBO
dW1iZXJQcm90b0Z1bmMoZXhlYyxmdW5jUHJvdG8sTnVtYmVyUHJvdG9GdW5jOjpUb1N0cmluZywg
ICAgICAgMSksIERvbnRFbnVtKTsKLSAgcHV0RGlyZWN0KHRvTG9jYWxlU3RyaW5nUHJvcGVydHlO
YW1lLCBuZXcgTnVtYmVyUHJvdG9GdW5jKGV4ZWMsZnVuY1Byb3RvLE51bWJlclByb3RvRnVuYzo6
VG9Mb2NhbGVTdHJpbmcsIDApLCBEb250RW51bSk7Ci0gIHB1dERpcmVjdCh2YWx1ZU9mUHJvcGVy
dHlOYW1lLCAgICAgICAgbmV3IE51bWJlclByb3RvRnVuYyhleGVjLGZ1bmNQcm90byxOdW1iZXJQ
cm90b0Z1bmM6OlZhbHVlT2YsICAgICAgICAwKSwgRG9udEVudW0pOwotICBwdXREaXJlY3QodG9G
aXhlZFByb3BlcnR5TmFtZSwgICAgICAgIG5ldyBOdW1iZXJQcm90b0Z1bmMoZXhlYyxmdW5jUHJv
dG8sTnVtYmVyUHJvdG9GdW5jOjpUb0ZpeGVkLCAgICAgICAgMSksIERvbnRFbnVtKTsKLSAgcHV0
RGlyZWN0KHRvRXhwb25lbnRpYWxQcm9wZXJ0eU5hbWUsICBuZXcgTnVtYmVyUHJvdG9GdW5jKGV4
ZWMsZnVuY1Byb3RvLE51bWJlclByb3RvRnVuYzo6VG9FeHBvbmVudGlhbCwgIDEpLCBEb250RW51
bSk7Ci0gIHB1dERpcmVjdCh0b1ByZWNpc2lvblByb3BlcnR5TmFtZSwgICAgbmV3IE51bWJlclBy
b3RvRnVuYyhleGVjLGZ1bmNQcm90byxOdW1iZXJQcm90b0Z1bmM6OlRvUHJlY2lzaW9uLCAgICAx
KSwgRG9udEVudW0pOworICBwdXREaXJlY3RGdW5jdGlvbihuZXcgTnVtYmVyUHJvdG9GdW5jKGV4
ZWMsIGZ1bmNQcm90bywgTnVtYmVyUHJvdG9GdW5jOjpUb1N0cmluZywgICAgICAgMSwgdG9TdHJp
bmdQcm9wZXJ0eU5hbWUpLCBEb250RW51bSk7CisgIHB1dERpcmVjdEZ1bmN0aW9uKG5ldyBOdW1i
ZXJQcm90b0Z1bmMoZXhlYywgZnVuY1Byb3RvLCBOdW1iZXJQcm90b0Z1bmM6OlRvTG9jYWxlU3Ry
aW5nLCAwLCB0b0xvY2FsZVN0cmluZ1Byb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKKyAgcHV0RGly
ZWN0RnVuY3Rpb24obmV3IE51bWJlclByb3RvRnVuYyhleGVjLCBmdW5jUHJvdG8sIE51bWJlclBy
b3RvRnVuYzo6VmFsdWVPZiwgICAgICAgIDAsIHZhbHVlT2ZQcm9wZXJ0eU5hbWUpLCBEb250RW51
bSk7CisgIHB1dERpcmVjdEZ1bmN0aW9uKG5ldyBOdW1iZXJQcm90b0Z1bmMoZXhlYywgZnVuY1By
b3RvLCBOdW1iZXJQcm90b0Z1bmM6OlRvRml4ZWQsICAgICAgICAxLCB0b0ZpeGVkUHJvcGVydHlO
YW1lKSwgRG9udEVudW0pOworICBwdXREaXJlY3RGdW5jdGlvbihuZXcgTnVtYmVyUHJvdG9GdW5j
KGV4ZWMsIGZ1bmNQcm90bywgTnVtYmVyUHJvdG9GdW5jOjpUb0V4cG9uZW50aWFsLCAgMSwgdG9F
eHBvbmVudGlhbFByb3BlcnR5TmFtZSksIERvbnRFbnVtKTsKKyAgcHV0RGlyZWN0RnVuY3Rpb24o
bmV3IE51bWJlclByb3RvRnVuYyhleGVjLCBmdW5jUHJvdG8sIE51bWJlclByb3RvRnVuYzo6VG9Q
cmVjaXNpb24sICAgIDEsIHRvUHJlY2lzaW9uUHJvcGVydHlOYW1lKSwgRG9udEVudW0pOwogfQog
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBOdW1iZXJQcm90b0Z1bmMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU51bWJlclByb3RvRnVuYzo6TnVtYmVyUHJvdG9G
dW5jKEV4ZWNTdGF0ZSAqZXhlYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZ1bmN0aW9uUHJvdG90eXBlICpmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVuKQotICA6IElu
dGVybmFsRnVuY3Rpb25JbXAoZnVuY1Byb3RvKSwgaWQoaSkKK051bWJlclByb3RvRnVuYzo6TnVt
YmVyUHJvdG9GdW5jKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jUHJvdG8sIGlu
dCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQorICAgOiBJbnRlcm5hbEZ1bmN0
aW9uSW1wKGZ1bmNQcm90bywgbmFtZSkKKyAgICwgaWQoaSkKIHsKICAgcHV0RGlyZWN0KGxlbmd0
aFByb3BlcnR5TmFtZSwgbGVuLCBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9sb29rdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9ranMvbG9va3VwLmgJKHJldmlzaW9uIDEyODk5KQorKysgSmF2YVNjcmlwdENvcmUva2pz
L2xvb2t1cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAjaWZuZGVmIF9LSlNM
T09LVVBfSF8KICNkZWZpbmUgX0tKU0xPT0tVUF9IXwogCisjaW5jbHVkZSAiZnVuY3Rpb25fb2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiaW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJpZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAib2JqZWN0LmgiCkBAIC0xMzAsNyArMTMxLDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgICAgICAgIHJldHVybiBjYWNoZWRWYWw7CiAKICAgICAgIGNvbnN0IEhhc2hFbnRyeSAqZW50
cnkgPSBzbG90LnN0YXRpY0VudHJ5KCk7Ci0gICAgICBKU1ZhbHVlICp2YWwgPSBuZXcgRnVuY0lt
cChleGVjLCBlbnRyeS0+dmFsdWUsIGVudHJ5LT5wYXJhbXMpOworICAgICAgSlNWYWx1ZSAqdmFs
ID0gbmV3IEZ1bmNJbXAoZXhlYywgZW50cnktPnZhbHVlLCBlbnRyeS0+cGFyYW1zLCBwcm9wZXJ0
eU5hbWUpOwogICAgICAgdGhpc09iai0+cHV0RGlyZWN0KHByb3BlcnR5TmFtZSwgdmFsLCBlbnRy
eS0+YXR0cik7CiAgICAgICByZXR1cm4gdmFsOwogICB9CkBAIC0yNDcsNiArMjQ4LDIwIEBAIG5h
bWVzcGFjZSBLSlMgewogICAgIGVsc2UKICAgICAgIHRoaXNPYmotPnB1dFZhbHVlUHJvcGVydHko
ZXhlYywgZW50cnktPnZhbHVlLCB2YWx1ZSwgYXR0cik7CiAgIH0KKworCisgIGNsYXNzIEhhc2hF
bnRyeUZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb25JbXAgeworICBwcm90ZWN0ZWQ6
CisgICAgICBIYXNoRW50cnlGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIG5hbWUpIAorICAgICAgICA6IEludGVybmFsRnVuY3Rpb25JbXAoc3RhdGljX2Nhc3Q8RnVu
Y3Rpb25Qcm90b3R5cGUqPihleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+YnVpbHRpbkZ1bmN0
aW9uUHJvdG90eXBlKCkpLCBuYW1lKQorICAgICAgeworICAgICAgfQorICBwdWJsaWM6CisgICAg
ICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICB2aXJ0dWFsIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgIGJvb2wgaW1wbGVtZW50c0hhc0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICAgIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSopIHsg
cmV0dXJuIGZhbHNlOyB9CisgIH07CiAgIAogfSAvLyBuYW1lc3BhY2UKIApAQCAtMzQwLDkgKzM1
NSwxMSBAQCBpbmxpbmUgS0pTOjpKU09iamVjdCAqY2FjaGVHbG9iYWxPYmplY3QoCiAgICAgfQog
CiAjZGVmaW5lIEtKU19JTVBMRU1FTlRfUFJPVE9GVU5DKENsYXNzRnVuYykgXAotICBjbGFzcyBD
bGFzc0Z1bmMgOiBwdWJsaWMgRE9NRnVuY3Rpb24geyBcCisgIGNsYXNzIENsYXNzRnVuYyA6IHB1
YmxpYyBIYXNoRW50cnlGdW5jdGlvbiB7IFwKICAgcHVibGljOiBcCi0gICAgQ2xhc3NGdW5jKEV4
ZWNTdGF0ZSAqZXhlYywgaW50IGksIGludCBsZW4pIDogaWQoaSkgXAorICAgIENsYXNzRnVuYyhF
eGVjU3RhdGUqIGV4ZWMsIGludCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKSBc
CisgICAgICA6IEhhc2hFbnRyeUZ1bmN0aW9uKGV4ZWMsIG5hbWUpIFwKKyAgICAgICwgaWQoaSkg
XAogICAgIHsgXAogICAgICAgIHB1dChleGVjLCBsZW5ndGhQcm9wZXJ0eU5hbWUsIGpzTnVtYmVy
KGxlbiksIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0pOyBcCiAgICAgfSBcCkluZGV4OiBK
YXZhU2NyaXB0Q29yZS90ZXN0cy9tb3ppbGxhL2V4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUvdGVzdHMvbW96aWxsYS9leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxMjg5
OSkKKysrIEphdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNywxMSArNywxMSBAQAogPHAgY2xhc3M9J3Jlc3VsdHNfc3VtbWFyeSc+CiBU
ZXN0IExpc3Q6IEFsbCB0ZXN0czxicj4KIFNraXAgTGlzdDogKG5vbmUpPGJyPgotMTEzNSB0ZXN0
KHMpIHNlbGVjdGVkLCAxMTI3IHRlc3QocykgY29tcGxldGVkLCA3NiBmYWlsdXJlcyByZXBvcnRl
ZCAoNi43NCUgZmFpbGVkKTxicj4KLUVuZ2luZSBjb21tYW5kIGxpbmU6IC9Vc2Vycy9nZ2FyZW4v
c3ltcm9vdHMvRGV2ZWxvcG1lbnQvdGVzdGtqcyA8YnI+Ci1PUyB0eXBlOiBEYXJ3aW4gZ2VvZmZy
ZXktZ2FyZW5zLXBvd2VyYm9vay1nNC0xNy5sb2NhbCA4LjQuMCBEYXJ3aW4gS2VybmVsIFZlcnNp
b24gOC40LjA6IFRodSBEZWMgIDggMDk6Mjc6NTEgUFNUIDIwMDU7IHJvb3Q6eG51LTc5Mi42LjU1
Lm9ian4xL1JFTEVBU0VfUFBDIFBvd2VyIE1hY2ludG9zaCBwb3dlcnBjPGJyPgotVGVzdGNhc2Ug
ZXhlY3V0aW9uIHRpbWU6IDUgbWludXRlcywgNDkgc2Vjb25kcy48YnI+Ci1UZXN0cyBjb21wbGV0
ZWQgb24gV2VkIEphbiAgNCAxMzoyNzozNCAyMDA2Ljxicj48YnI+CisxMTM1IHRlc3Qocykgc2Vs
ZWN0ZWQsIDExMjcgdGVzdChzKSBjb21wbGV0ZWQsIDc1IGZhaWx1cmVzIHJlcG9ydGVkICg2LjY1
JSBmYWlsZWQpPGJyPgorRW5naW5lIGNvbW1hbmQgbGluZTogL1VzZXJzL21qcy9Xb3JrL3N5bXJv
b3RzL1JlbGVhc2UvdGVzdGtqcyA8YnI+CitPUyB0eXBlOiBEYXJ3aW4gbWFjaWVqLXN0YWNob3dp
YWtzLXBvd2VyYm9vay1nNC0xNy5sb2NhbCA4LjMuMCBEYXJ3aW4gS2VybmVsIFZlcnNpb24gOC4z
LjA6IE1vbiBPY3QgIDMgMjA6MDQ6MDQgUERUIDIwMDU7IHJvb3Q6eG51LTc5Mi42LjIyLm9ian4y
L1JFTEVBU0VfUFBDIFBvd2VyIE1hY2ludG9zaCBwb3dlcnBjPGJyPgorVGVzdGNhc2UgZXhlY3V0
aW9uIHRpbWU6IDIgbWludXRlcywgNSBzZWNvbmRzLjxicj4KK1Rlc3RzIGNvbXBsZXRlZCBvbiBN
b24gRmViIDIwIDA1OjExOjA1IDIwMDYuPGJyPjxicj4KIFsgPGEgaHJlZj0nI2ZhaWxfZGV0YWls
Jz5GYWlsdXJlIERldGFpbHM8L2E+IHwgPGEgaHJlZj0nI3JldGVzdF9saXN0Jz5SZXRlc3QgTGlz
dDwvYT4gfCA8YSBocmVmPSdtZW51Lmh0bWwnPlRlc3QgU2VsZWN0aW9uIFBhZ2U8L2E+IF08YnI+
CiA8aHI+CiA8YSBuYW1lPSdmYWlsX2RldGFpbCc+PC9hPgpAQCAtNDQsMTAgKzQ0LDYgQEAgRmFp
bHVyZSBtZXNzYWdlcyB3ZXJlOjxicj4KIC0tPiBwYXJzZUZsb2F0KCIxZTIwMDAiKSA9IE5hTiBG
QUlMRUQhIGV4cGVjdGVkOiBJbmZpbml0eTxicj4KIC0tPiAtczIgPT0gLUluZmluaXR5IHx8IC1z
MiA9PSAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggID0gZmFsc2UgRkFJTEVEISBleHBlY3RlZDog
dHJ1ZTxicj4KIC0tPiAtczMgPT0gLUluZmluaXR5IHx8IC1zMyA9PSAtMS43OTc2OTMxMzQ4NjIz
MTU3ZSszMDggPSBmYWxzZSBGQUlMRUQhIGV4cGVjdGVkOiB0cnVlPGJyPgotLS0+IHBhcnNlSW50
KHMxLDEwKSA9PSAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCB8fCBwYXJzZUludChzMSwxMCkgPT0g
SW5maW5pdHkgPSBmYWxzZSBGQUlMRUQhIGV4cGVjdGVkOiB0cnVlPGJyPgotLS0+IHBhcnNlSW50
KHMyLDEwKSA9PSBJbmZpbml0eSB8fCBwYXJzZUludChzMiwxMCkgPT0gMS43OTc2OTMxMzQ4NjIz
MTU3ZSszMDggPSBmYWxzZSBGQUlMRUQhIGV4cGVjdGVkOiB0cnVlPGJyPgotLS0+IHBhcnNlSW50
KHMxKSA9PSAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCB8fCBwYXJzZUludChzMSkgPT0gSW5maW5p
dHkgPSBmYWxzZSBGQUlMRUQhIGV4cGVjdGVkOiB0cnVlPGJyPgotLS0+IHBhcnNlSW50KHMyKSA9
PSBJbmZpbml0eSB8fCBwYXJzZUludChzMikgPT0gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggPSBm
YWxzZSBGQUlMRUQhIGV4cGVjdGVkOiB0cnVlPGJyPgogLS0+IDB4MTAwMDAwMDAwMDAwMDA4MSA9
IDExNTI5MjE1MDQ2MDY4NDcwMDAgRkFJTEVEISBleHBlY3RlZDogMTE1MjkyMTUwNDYwNjg0NzIw
MDxicj4KIC0tPiAweDEwMDAwMDAwMDAwMDAyODEgPSAxMTUyOTIxNTA0NjA2ODQ3NTAwIEZBSUxF
RCEgZXhwZWN0ZWQ6IDExNTI5MjE1MDQ2MDY4NDc3MDA8YnI+CiAtLT4gcGFyc2VJbnQoIjAwMDAw
MDEwMDAwMDAwMDEwMDEwMDAxMTAxMDAwMTAxMDExMDAxMTExMDAwMTAwMTEwMTAxMDExMTEwMTEi
LDIpID0gMTgwNTQ0MzA1MDYxNjk3MjAgRkFJTEVEISBleHBlY3RlZDogMTgwNTQ0MzA1MDYxNjk3
MjQ8YnI+CkBAIC03Miw3ICs2OCw3IEBAIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwg
MDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgogLS0+IFJlZ0V4cC9oZXgt
MDAxLmpzIEpTIHJlZ2V4cCBhbmNob3Jpbmcgb24gZW1wdHkgbWF0Y2ggYnVnPGJyPgogLS0+IEJV
R05VTUJFUjogaHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU3
PGJyPgotRXhjZXB0aW9uLCBsaW5lIDE5OiBUeXBlRXJyb3I6IE9iamVjdCAvYXx8Yi8gKHJlc3Vs
dCBvZiBleHByZXNzaW9uIGF8fGIpIGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK0V4Y2VwdGlv
biwgbGluZSAxOTogPGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlNic+PC9hPjxkZD48
Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9lY21hXzIvUmVnRXhw
L3VuaWNvZGUtMDAxLmpzJz5lY21hXzIvUmVnRXhwL3VuaWNvZGUtMDAxLmpzPC9hPiBmYWlsZWQ8
L2I+IDxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlNSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8
YSBocmVmPScjZmFpbHVyZTcnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9w
Jz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KQEAgLTgwLDggKzc2LDcgQEAgRXhjZXB0aW9uLCBsaW5l
IDE5OiBUeXBlRXJyb3I6IE9iamVjdCAvYQogVGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25h
bCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CiAtLT4gUmVnRXhwL3Vu
aWNvZGUtMDAxLmpzIG5ldyBSZWdFeHAoIHBhdHRlcm4sIGZsYWdzICk8YnI+Ci1LSlM6IHBjcmVf
Y29tcGlsZSgpIGZhaWxlZCB3aXRoICdQQ1JFIGRvZXMgbm90IHN1cHBvcnQgXEwsIFxsLCBcTiwg
XFUsIG9yIFx1Jzxicj4KLUV4Y2VwdGlvbiwgbGluZSAzNDogVHlwZUVycm9yOiBOdWxsIHZhbHVl
PGJyPgorRXhjZXB0aW9uLCBsaW5lIDM0OiA8YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1
cmU3Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScu
L2VjbWFfMy9EYXRlLzE1LjkuNS43LmpzJz5lY21hXzMvRGF0ZS8xNS45LjUuNy5qczwvYT4gZmFp
bGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTYnPlByZXZpb3VzIEZhaWx1cmU8L2E+
IHwgPGEgaHJlZj0nI2ZhaWx1cmU4Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5
X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CkBAIC05Niw4ICs5MSw4IEBAIEZhaWx1cmUgbWVz
c2FnZXMgd2VyZTo8YnI+CiAtLT4gKE1vbiBGZWIgMjggMjAwMCAxNjowMDowMCBHTVQtMDgwMCku
dG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSA0OjAwOjAwIFBNIFBTVCBGQUlMRUQhIGV4cGVjdGVkOiAx
NjowMDowMDxicj4KIC0tPiAoTW9uIEZlYiAyOCAyMDAwIDE1OjU5OjU5IEdNVC0wODAwKS50b0xv
Y2FsZVRpbWVTdHJpbmcoKSA9IDM6NTk6NTkgUE0gUFNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDE1OjU5
OjU5PGJyPgogLS0+IChUdWUgRmViIDI5IDIwMDAgMDA6MDA6MDAgR01ULTA4MDApLnRvTG9jYWxl
VGltZVN0cmluZygpID0gMTI6MDA6MDAgQU0gUFNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDAwOjAwOjAw
PGJyPgotLS0+IChXZWQgSmFuIDA0IDIwMDYgMTM6MjY6NDYgR01ULTA4MDApLnRvTG9jYWxlVGlt
ZVN0cmluZygpID0gMToyNjo0NiBQTSBQU1QgRkFJTEVEISBleHBlY3RlZDogMTM6MjY6NDY8YnI+
Ci0tLT4gKFdlZCBKYW4gMDQgMjAwNiAyMToyNjo0NiBHTVQtMDgwMCkudG9Mb2NhbGVUaW1lU3Ry
aW5nKCkgPSA5OjI2OjQ2IFBNIFBTVCBGQUlMRUQhIGV4cGVjdGVkOiAyMToyNjo0Njxicj4KKy0t
PiAoTW9uIEZlYiAyMCAyMDA2IDA1OjEwOjM5IEdNVC0wODAwKS50b0xvY2FsZVRpbWVTdHJpbmco
KSA9IDU6MTA6MzkgQU0gUFNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDA1OjEwOjM5PGJyPgorLS0+IChN
b24gRmViIDIwIDIwMDYgMTM6MTA6MzkgR01ULTA4MDApLnRvTG9jYWxlVGltZVN0cmluZygpID0g
MToxMDozOSBQTSBQU1QgRkFJTEVEISBleHBlY3RlZDogMTM6MTA6Mzk8YnI+CiAtLT4gKEZyaSBE
ZWMgMzEgMjAwNCAxNjowMDowMCBHTVQtMDgwMCkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSA0OjAw
OjAwIFBNIFBTVCBGQUlMRUQhIGV4cGVjdGVkOiAxNjowMDowMDxicj4KIC0tPiAoRnJpIERlYyAz
MSAyMDA0IDE1OjU5OjU5IEdNVC0wODAwKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDM6NTk6NTkg
UE0gUFNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDE1OjU5OjU5PGJyPgogLS0+IChTYXQgSmFuIDAxIDIw
MDUgMDA6MDA6MDAgR01ULTA4MDApLnRvTG9jYWxlVGltZVN0cmluZygpID0gMTI6MDA6MDAgQU0g
UFNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDAwOjAwOjAwPGJyPgpAQCAtMTA3LDcgKzEwMiw3IEBAIEZh
aWx1cmUgbWVzc2FnZXMgd2VyZTo8YnI+CiA8dHQ+RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAz
PGJyPgogVGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVz
dGNhc2Ugb3V0cHV0IHdhczo8YnI+Ci1FeGNlcHRpb24sIGxpbmUgMjY6IFN5bnRheEVycm9yOiBQ
YXJzZSBlcnJvcjxicj4KK0V4Y2VwdGlvbiwgbGluZSAyNjogPGJyPgogPC90dD48YnI+CiA8YSBu
YW1lPSdmYWlsdXJlOSc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRv
dycgaHJlZj0nLi9lY21hXzMvUmVnRXhwLzE1LjEwLjItMS5qcyc+ZWNtYV8zL1JlZ0V4cC8xNS4x
MC4yLTEuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0naHR0cDovL2J1Z3ppbGxhLm1vemlsbGEu
b3JnL3Nob3dfYnVnLmNnaT9pZD0obm9uZSknIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVt
YmVyIChub25lKTwvYT48YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTgnPlByZXZpb3VzIEZhaWx1
cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmUxMCc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9
JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtMjEyLDE2ICsyMDcsMTYgQEAg
RmFpbHVyZSBtZXNzYWdlcyB3ZXJlOjxicj4KIEZhaWx1cmUgbWVzc2FnZXMgd2VyZTo8YnI+CiAt
LT4gRkFJTEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgpXSBTZWN0aW9uIDMgb2YgdGVzdCAtPGJy
PgogLS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBmcm9tIHRlc3QoKV0gcmVnZXhwID0gL1tcU10rLzxi
cj4KLS0tPiBGQUlMRUQhOiBbcmVwb3J0ZWQgZnJvbSB0ZXN0KCldIHN0cmluZyA9ICc8YnI+Cist
LT4gRkFJTEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgpXSBzdHJpbmcgPSAn5LiA6rCA5LiD5LiA
Jzxicj4KIC0tPiBGQUlMRUQhOiBbcmVwb3J0ZWQgZnJvbSB0ZXN0KCldIEVSUk9SICEhISByZWdl
eHAgRkFJTEVEIHRvIG1hdGNoIGFueXRoaW5nICEhITxicj4KLS0tPiBGQUlMRUQhOiBbcmVwb3J0
ZWQgZnJvbSB0ZXN0KCldIEV4cGVjdDogWyI8YnI+CistLT4gRkFJTEVEITogW3JlcG9ydGVkIGZy
b20gdGVzdCgpXSBFeHBlY3Q6IFsi5LiA6rCA5LiD5LiAIl08YnI+CiAtLT4gRkFJTEVEITogW3Jl
cG9ydGVkIGZyb20gdGVzdCgpXSBBY3R1YWw6IG51bGw8YnI+CiAtLT4gRkFJTEVEITogW3JlcG9y
dGVkIGZyb20gdGVzdCgpXSA8YnI+CiAtLT4gRkFJTEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgp
XSBTZWN0aW9uIDQgb2YgdGVzdCAtPGJyPgogLS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBmcm9tIHRl
c3QoKV0gcmVnZXhwID0gL1tcU10rLzxicj4KLS0tPiBGQUlMRUQhOiBbcmVwb3J0ZWQgZnJvbSB0
ZXN0KCldIHN0cmluZyA9ICc8YnI+CistLT4gRkFJTEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgp
XSBzdHJpbmcgPSAn5LiA6rCAIOS4g+S4gCc8YnI+CiAtLT4gRkFJTEVEITogW3JlcG9ydGVkIGZy
b20gdGVzdCgpXSBFUlJPUiAhISEgcmVnZXhwIEZBSUxFRCB0byBtYXRjaCBhbnl0aGluZyAhISE8
YnI+Ci0tLT4gRkFJTEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgpXSBFeHBlY3Q6IFsiPGJyPgor
LS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBmcm9tIHRlc3QoKV0gRXhwZWN0OiBbIuS4gOqwgCJdPGJy
PgogLS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBmcm9tIHRlc3QoKV0gQWN0dWFsOiBudWxsPGJyPgog
LS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBmcm9tIHRlc3QoKV0gPGJyPgogPC90dD48YnI+CkBAIC0y
NDksMjIzICsyNDQsMjIzIEBAIEZhaWx1cmUgbWVzc2FnZXMgd2VyZTo8YnI+CiA8dHQ+LS0+IFNU
QVRVUzogUGVyZm9ybWFuY2U6IGV4ZWN1dGlvbiBvZiByZWd1bGFyIGV4cHJlc3Npb248YnI+CiBG
YWlsdXJlIG1lc3NhZ2VzIHdlcmU6PGJyPgogLS0+IEZBSUxFRCE6IFNlY3Rpb24gNCBvZiB0ZXN0
IC08YnI+Ci0tLT4gRkFJTEVEITogcmVnZXhwID0gL1sgCV0qKD86XChbXlxcgC3/PGJyPgorLS0+
IEZBSUxFRCE6IHJlZ2V4cCA9IC9bIAldKig/OlwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6
IAotKCldKig/Oig/OlxcW16ALf9dfFwoW15cXIAt/zxicj4KKygpXSooPzooPzpcXFtewoAtw79d
fFwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/OlxcW16ALf9dW15cXIAt/zxi
cj4KKygpXSooPzpcXFtewoAtw79dW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKikq
XCkpW15cXIAt/zxicj4KKygpXSopKlwpKVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKICgp
XSopKlwpWyAJXSopKig/Oig/OlteKCA8PkAsOzoiLlxcXFtcXTxicj4KIC0tPiBGQUlMRUQhOiAK
LSJdKig/OlxcW16ALf9dW15cXIAt/zxicj4KKyJdKig/OlxcW17CgC3Dv11bXlxcwoAtw788YnI+
CiAtLT4gRkFJTEVEITogCi0iXSopKiIpW14oKTw+QCw7OiIuXFxcW1xdgC3/PGJyPgotLS0+IEZB
SUxFRCE6IC0fXSooPzooPzpcKFteXFyALf88YnI+CisiXSopKiIpW14oKTw+QCw7OiIuXFxcW1xd
woAtw788YnI+CistLT4gRkFJTEVEITogLR9dKig/Oig/OlwoW15cXMKALcO/PGJyPgogLS0+IEZB
SUxFRCE6IAotKCldKig/Oig/OlxcW16ALf9dfFwoW15cXIAt/zxicj4KKygpXSooPzooPzpcXFte
woAtw79dfFwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/OlxcW16ALf9dW15c
XIAt/zxicj4KKygpXSooPzpcXFtewoAtw79dW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAot
KCldKikqXCkpW15cXIAt/zxicj4KKygpXSopKlwpKVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQh
OiAKLSgpXSopKlwpfCJbXlxcgC3/PGJyPgorKCldKikqXCl8IlteXFzCgC3Dvzxicj4KIC0tPiBG
QUlMRUQhOiAKLSJdKig/OlxcW16ALf9dW15cXIAt/zxicj4KKyJdKig/OlxcW17CgC3Dv11bXlxc
woAtw788YnI+CiAtLT4gRkFJTEVEITogCi0iXSopKiIpW14oKTw+QCw7OiIuXFxcW1xdgC3/PGJy
PgotLS0+IEZBSUxFRCE6IC0fXSopKjxbIAldKig/OlwoW15cXIAt/zxicj4KKyJdKikqIilbXigp
PD5ALDs6Ii5cXFxbXF3CgC3Dvzxicj4KKy0tPiBGQUlMRUQhOiAtH10qKSo8WyAJXSooPzpcKFte
XFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgpXSooPzooPzpcXFtegC3/XXxcKFteXFyALf88
YnI+CisoKV0qKD86KD86XFxbXsKALcO/XXxcKFteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAK
LSgpXSooPzpcXFtegC3/XVteXFyALf88YnI+CisoKV0qKD86XFxbXsKALcO/XVteXFzCgC3Dvzxi
cj4KIC0tPiBGQUlMRUQhOiAKLSgpXSopKlwpKVteXFyALf88YnI+CisoKV0qKSpcKSlbXlxcwoAt
w788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKSpcKVsgCV0qKSooPzpAWyAJXSooPzpcKFteXFyA
Lf88YnI+CisoKV0qKSpcKVsgCV0qKSooPzpAWyAJXSooPzpcKFteXFzCgC3Dvzxicj4KIC0tPiBG
QUlMRUQhOiAKLSgpXSooPzooPzpcXFtegC3/XXxcKFteXFyALf88YnI+CisoKV0qKD86KD86XFxb
XsKALcO/XXxcKFteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgpXSooPzpcXFtegC3/XVte
XFyALf88YnI+CisoKV0qKD86XFxbXsKALcO/XVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAK
LSgpXSopKlwpKVteXFyALf88YnI+CisoKV0qKSpcKSlbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVE
ITogCiAoKV0qKSpcKVsgCV0qKSooPzpbXiggPD5ALDs6Ii5cXFxbXF08YnI+CiAtLT4gRkFJTEVE
ITogCi1cW1xdXXxcXFtegC3/XSkqXF0pWyAJXSooPzpcKFteXFyALf88YnI+CitcW1xdXXxcXFte
woAtw79dKSpcXSlbIAldKig/OlwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/
Oig/OlxcW16ALf9dfFwoW15cXIAt/zxicj4KKygpXSooPzooPzpcXFtewoAtw79dfFwoW15cXMKA
LcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/OlxcW16ALf9dW15cXIAt/zxicj4KKygpXSoo
PzpcXFtewoAtw79dW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKikqXCkpW15cXIAt
/zxicj4KKygpXSopKlwpKVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgpXSopKlwpWyAJ
XSopKig/Oi5bIAldKig/OlwoW15cXIAt/zxicj4KKygpXSopKlwpWyAJXSopKig/Oi5bIAldKig/
OlwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/Oig/OlxcW16ALf9dfFwoW15c
XIAt/zxicj4KKygpXSooPzooPzpcXFtewoAtw79dfFwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxF
RCE6IAotKCldKig/OlxcW16ALf9dW15cXIAt/zxicj4KKygpXSooPzpcXFtewoAtw79dW15cXMKA
LcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKikqXCkpW15cXIAt/zxicj4KKygpXSopKlwpKVte
XFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKICgpXSopKlwpWyAJXSopKig/OlteKCA8PkAsOzoi
LlxcXFtcXTxicj4KIC0tPiBGQUlMRUQhOiAKLVxbXF1dfFxcW16ALf9dKSpcXSlbIAldKig/Olwo
W15cXIAt/zxicj4KK1xbXF1dfFxcW17CgC3Dv10pKlxdKVsgCV0qKD86XChbXlxcwoAtw788YnI+
CiAtLT4gRkFJTEVEITogCi0oKV0qKD86KD86XFxbXoAt/118XChbXlxcgC3/PGJyPgorKCldKig/
Oig/OlxcW17CgC3Dv118XChbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86XFxb
XoAt/11bXlxcgC3/PGJyPgorKCldKig/OlxcW17CgC3Dv11bXlxcwoAtw788YnI+CiAtLT4gRkFJ
TEVEITogCi0oKV0qKSpcKSlbXlxcgC3/PGJyPgorKCldKikqXCkpW15cXMKALcO/PGJyPgogLS0+
IEZBSUxFRCE6IAotKCldKikqXClbIAldKikqKSooPzosWyAJXSooPzpcKFteXFyALf88YnI+Ciso
KV0qKSpcKVsgCV0qKSopKig/OixbIAldKig/OlwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6
IAotKCldKig/Oig/OlxcW16ALf9dfFwoW15cXIAt/zxicj4KKygpXSooPzooPzpcXFtewoAtw79d
fFwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/OlxcW16ALf9dW15cXIAt/zxi
cj4KKygpXSooPzpcXFtewoAtw79dW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKikq
XCkpW15cXIAt/zxicj4KKygpXSopKlwpKVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgp
XSopKlwpWyAJXSopKkBbIAldKig/OlwoW15cXIAt/zxicj4KKygpXSopKlwpWyAJXSopKkBbIAld
Kig/OlwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/Oig/OlxcW16ALf9dfFwo
W15cXIAt/zxicj4KKygpXSooPzooPzpcXFtewoAtw79dfFwoW15cXMKALcO/PGJyPgogLS0+IEZB
SUxFRCE6IAotKCldKig/OlxcW16ALf9dW15cXIAt/zxicj4KKygpXSooPzpcXFtewoAtw79dW15c
XMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKikqXCkpW15cXIAt/zxicj4KKygpXSopKlwp
KVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKICgpXSopKlwpWyAJXSopKig/OlteKCA8PkAs
OzoiLlxcXFtcXTxicj4KIC0tPiBGQUlMRUQhOiAKLVxbXF1dfFxcW16ALf9dKSpcXSlbIAldKig/
OlwoW15cXIAt/zxicj4KK1xbXF1dfFxcW17CgC3Dv10pKlxdKVsgCV0qKD86XChbXlxcwoAtw788
YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86KD86XFxbXoAt/118XChbXlxcgC3/PGJyPgorKCld
Kig/Oig/OlxcW17CgC3Dv118XChbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86
XFxbXoAt/11bXlxcgC3/PGJyPgorKCldKig/OlxcW17CgC3Dv11bXlxcwoAtw788YnI+CiAtLT4g
RkFJTEVEITogCi0oKV0qKSpcKSlbXlxcgC3/PGJyPgorKCldKikqXCkpW15cXMKALcO/PGJyPgog
LS0+IEZBSUxFRCE6IAotKCldKikqXClbIAldKikqKD86LlsgCV0qKD86XChbXlxcgC3/PGJyPgor
KCldKikqXClbIAldKikqKD86LlsgCV0qKD86XChbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITog
Ci0oKV0qKD86KD86XFxbXoAt/118XChbXlxcgC3/PGJyPgorKCldKig/Oig/OlxcW17CgC3Dv118
XChbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86XFxbXoAt/11bXlxcgC3/PGJy
PgorKCldKig/OlxcW17CgC3Dv11bXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKSpc
KSlbXlxcgC3/PGJyPgorKCldKikqXCkpW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAogKCld
KikqXClbIAldKikqKD86W14oIDw+QCw7OiIuXFxcW1xdPGJyPgogLS0+IEZBSUxFRCE6IAotXFtc
XV18XFxbXoAt/10pKlxdKVsgCV0qKD86XChbXlxcgC3/PGJyPgorXFtcXV18XFxbXsKALcO/XSkq
XF0pWyAJXSooPzpcKFteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgpXSooPzooPzpcXFte
gC3/XXxcKFteXFyALf88YnI+CisoKV0qKD86KD86XFxbXsKALcO/XXxcKFteXFzCgC3Dvzxicj4K
IC0tPiBGQUlMRUQhOiAKLSgpXSooPzpcXFtegC3/XVteXFyALf88YnI+CisoKV0qKD86XFxbXsKA
LcO/XVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgpXSopKlwpKVteXFyALf88YnI+Ciso
KV0qKSpcKSlbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKSpcKVsgCV0qKSopKikq
OlsgCV0qKD86XChbXlxcgC3/PGJyPgorKCldKikqXClbIAldKikqKSopKjpbIAldKig/OlwoW15c
XMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/Oig/OlxcW16ALf9dfFwoW15cXIAt/zxi
cj4KKygpXSooPzooPzpcXFtewoAtw79dfFwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAot
KCldKig/OlxcW16ALf9dW15cXIAt/zxicj4KKygpXSooPzpcXFtewoAtw79dW15cXMKALcO/PGJy
PgogLS0+IEZBSUxFRCE6IAotKCldKikqXCkpW15cXIAt/zxicj4KKygpXSopKlwpKVteXFzCgC3D
vzxicj4KIC0tPiBGQUlMRUQhOiAKICgpXSopKlwpWyAJXSopKik/KD86W14oIDw+QCw7OiIuXFxc
W1xdPGJyPgogLS0+IEZBSUxFRCE6IAotIl0qKD86XFxbXoAt/11bXlxcgC3/PGJyPgorIl0qKD86
XFxbXsKALcO/XVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSJdKikqIilbIAldKig/Olwo
W15cXIAt/zxicj4KKyJdKikqIilbIAldKig/OlwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6
IAotKCldKig/Oig/OlxcW16ALf9dfFwoW15cXIAt/zxicj4KKygpXSooPzooPzpcXFtewoAtw79d
fFwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/OlxcW16ALf9dW15cXIAt/zxi
cj4KKygpXSooPzpcXFtewoAtw79dW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKikq
XCkpW15cXIAt/zxicj4KKygpXSopKlwpKVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgp
XSopKlwpWyAJXSopKkBbIAldKig/OlwoW15cXIAt/zxicj4KKygpXSopKlwpWyAJXSopKkBbIAld
Kig/OlwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/Oig/OlxcW16ALf9dfFwo
W15cXIAt/zxicj4KKygpXSooPzooPzpcXFtewoAtw79dfFwoW15cXMKALcO/PGJyPgogLS0+IEZB
SUxFRCE6IAotKCldKig/OlxcW16ALf9dW15cXIAt/zxicj4KKygpXSooPzpcXFtewoAtw79dW15c
XMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKikqXCkpW15cXIAt/zxicj4KKygpXSopKlwp
KVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKICgpXSopKlwpWyAJXSopKig/OlteKCA8PkAs
OzoiLlxcXFtcXTxicj4KIC0tPiBGQUlMRUQhOiAKLVxbXF1dfFxcW16ALf9dKSpcXSlbIAldKig/
OlwoW15cXIAt/zxicj4KK1xbXF1dfFxcW17CgC3Dv10pKlxdKVsgCV0qKD86XChbXlxcwoAtw788
YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86KD86XFxbXoAt/118XChbXlxcgC3/PGJyPgorKCld
Kig/Oig/OlxcW17CgC3Dv118XChbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86
XFxbXoAt/11bXlxcgC3/PGJyPgorKCldKig/OlxcW17CgC3Dv11bXlxcwoAtw788YnI+CiAtLT4g
RkFJTEVEITogCi0oKV0qKSpcKSlbXlxcgC3/PGJyPgorKCldKikqXCkpW15cXMKALcO/PGJyPgog
LS0+IEZBSUxFRCE6IAotKCldKikqXClbIAldKikqKD86LlsgCV0qKD86XChbXlxcgC3/PGJyPgor
KCldKikqXClbIAldKikqKD86LlsgCV0qKD86XChbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITog
Ci0oKV0qKD86KD86XFxbXoAt/118XChbXlxcgC3/PGJyPgorKCldKig/Oig/OlxcW17CgC3Dv118
XChbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86XFxbXoAt/11bXlxcgC3/PGJy
PgorKCldKig/OlxcW17CgC3Dv11bXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKSpc
KSlbXlxcgC3/PGJyPgorKCldKikqXCkpW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAogKCld
KikqXClbIAldKikqKD86W14oIDw+QCw7OiIuXFxcW1xdPGJyPgogLS0+IEZBSUxFRCE6IAotXFtc
XV18XFxbXoAt/10pKlxdKVsgCV0qKD86XChbXlxcgC3/PGJyPgorXFtcXV18XFxbXsKALcO/XSkq
XF0pWyAJXSooPzpcKFteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgpXSooPzooPzpcXFte
gC3/XXxcKFteXFyALf88YnI+CisoKV0qKD86KD86XFxbXsKALcO/XXxcKFteXFzCgC3Dvzxicj4K
IC0tPiBGQUlMRUQhOiAKLSgpXSooPzpcXFtegC3/XVteXFyALf88YnI+CisoKV0qKD86XFxbXsKA
LcO/XVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgpXSopKlwpKVteXFyALf88YnI+Ciso
KV0qKSpcKSlbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCiAoKV0qKSpcKVsgCV0qKSopKj58
KD86W14oIDw+QCw7OiIuXFxcW1xdPGJyPgogLS0+IEZBSUxFRCE6IAotIl0qKD86XFxbXoAt/11b
XlxcgC3/PGJyPgorIl0qKD86XFxbXsKALcO/XVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAK
LSJdKikqIilbIAldKig/OlwoW15cXIAt/zxicj4KKyJdKikqIilbIAldKig/OlwoW15cXMKALcO/
PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/Oig/OlxcW16ALf9dfFwoW15cXIAt/zxicj4KKygp
XSooPzooPzpcXFtewoAtw79dfFwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/
OlxcW16ALf9dW15cXIAt/zxicj4KKygpXSooPzpcXFtewoAtw79dW15cXMKALcO/PGJyPgogLS0+
IEZBSUxFRCE6IAotKCldKikqXCkpW15cXIAt/zxicj4KKygpXSopKlwpKVteXFzCgC3Dvzxicj4K
IC0tPiBGQUlMRUQhOiAKLSgpXSopKlwpWyAJXSopKkBbIAldKig/OlwoW15cXIAt/zxicj4KKygp
XSopKlwpWyAJXSopKkBbIAldKig/OlwoW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCld
Kig/Oig/OlxcW16ALf9dfFwoW15cXIAt/zxicj4KKygpXSooPzooPzpcXFtewoAtw79dfFwoW15c
XMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKig/OlxcW16ALf9dW15cXIAt/zxicj4KKygp
XSooPzpcXFtewoAtw79dW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKikqXCkpW15c
XIAt/zxicj4KKygpXSopKlwpKVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKICgpXSopKlwp
WyAJXSopKig/OlteKCA8PkAsOzoiLlxcXFtcXTxicj4KIC0tPiBGQUlMRUQhOiAKLVxbXF1dfFxc
W16ALf9dKSpcXSlbIAldKig/OlwoW15cXIAt/zxicj4KK1xbXF1dfFxcW17CgC3Dv10pKlxdKVsg
CV0qKD86XChbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86KD86XFxbXoAt/118
XChbXlxcgC3/PGJyPgorKCldKig/Oig/OlxcW17CgC3Dv118XChbXlxcwoAtw788YnI+CiAtLT4g
RkFJTEVEITogCi0oKV0qKD86XFxbXoAt/11bXlxcgC3/PGJyPgorKCldKig/OlxcW17CgC3Dv11b
XlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKSpcKSlbXlxcgC3/PGJyPgorKCldKikq
XCkpW15cXMKALcO/PGJyPgogLS0+IEZBSUxFRCE6IAotKCldKikqXClbIAldKikqKD86LlsgCV0q
KD86XChbXlxcgC3/PGJyPgorKCldKikqXClbIAldKikqKD86LlsgCV0qKD86XChbXlxcwoAtw788
YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86KD86XFxbXoAt/118XChbXlxcgC3/PGJyPgorKCld
Kig/Oig/OlxcW17CgC3Dv118XChbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCi0oKV0qKD86
XFxbXoAt/11bXlxcgC3/PGJyPgorKCldKig/OlxcW17CgC3Dv11bXlxcwoAtw788YnI+CiAtLT4g
RkFJTEVEITogCi0oKV0qKSpcKSlbXlxcgC3/PGJyPgorKCldKikqXCkpW15cXMKALcO/PGJyPgog
LS0+IEZBSUxFRCE6IAogKCldKikqXClbIAldKikqKD86W14oIDw+QCw7OiIuXFxcW1xdPGJyPgog
LS0+IEZBSUxFRCE6IAotXFtcXV18XFxbXoAt/10pKlxdKVsgCV0qKD86XChbXlxcgC3/PGJyPgor
XFtcXV18XFxbXsKALcO/XSkqXF0pWyAJXSooPzpcKFteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQh
OiAKLSgpXSooPzooPzpcXFtegC3/XXxcKFteXFyALf88YnI+CisoKV0qKD86KD86XFxbXsKALcO/
XXxcKFteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgpXSooPzpcXFtegC3/XVteXFyALf88
YnI+CisoKV0qKD86XFxbXsKALcO/XVteXFzCgC3Dvzxicj4KIC0tPiBGQUlMRUQhOiAKLSgpXSop
KlwpKVteXFyALf88YnI+CisoKV0qKSpcKSlbXlxcwoAtw788YnI+CiAtLT4gRkFJTEVEITogCiAo
KV0qKSpcKVsgCV0qKSopKikvZzxicj4KIC0tPiBGQUlMRUQhOiBzdHJpbmcgPSAnSmVmZnk8IlRo
YXQgVGFsbCBHdXkiQG9yYS5jb20gKHRoaXMgYWRkcmVzcyBpcyBubyBsb25nZXIgYWN0aVx2ZSk+
Jzxicj4KQEAgLTY4NCw3ICs2NzksNyBAQCBGYWlsdXJlIG1lc3NhZ2VzIHdlcmU6PGJyPgogPHR0
PkV4cGVjdGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0
aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgotRXhjZXB0
aW9uLCBsaW5lIDE6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvcjxicj4KK0V4Y2VwdGlvbiwgbGlu
ZSAxOiA8YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1cmUyMCc+PC9hPjxkZD48Yj5UZXN0
Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9lY21hXzMvVW5pY29kZS91Yy0w
MDIuanMnPmVjbWFfMy9Vbmljb2RlL3VjLTAwMi5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdo
dHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEzJyB0YXJnZXQ9
J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciAyMzYxMzwvYT48YnI+CiAgWyA8YSBocmVmPScjZmFp
bHVyZTE5Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlMjEnPk5leHQg
RmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4K
QEAgLTcwMCw3ICs2OTUsNyBAQCBGYWlsdXJlIG1lc3NhZ2VzIHdlcmU6PGJyPgogVGVzdGNhc2Ug
dGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdh
czo8YnI+CiAtLT4gSlMxXzIgT2JqZWN0LnRvU3RyaW5nKCk8YnI+Ci1FeGNlcHRpb24sIGxpbmUg
MTA0OiBUeXBlRXJyb3I6IE9iamVjdCAvXlx7KC4qKVx9JC8gKHJlc3VsdCBvZiBleHByZXNzaW9u
IF5ceyguKilcfSQpIGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK0V4Y2VwdGlvbiwgbGluZSAx
MDQ6IDxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTIyJz48L2E+PGRkPjxiPlRlc3Rj
YXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV8yL1N0cmluZy9jb25jYXQu
anMnPmpzMV8yL1N0cmluZy9jb25jYXQuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgogIFsgPGEgaHJl
Zj0nI2ZhaWx1cmUyMSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTIz
Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+
IF08YnI+CkBAIC03NDgsNyArNzQzLDcgQEAgT0suPGJyPgogVGVzdGNhc2UgdGVybWluYXRlZCB3
aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CiAtLT4g
SlNfMS4yIFRoZSB2YXJpYWJsZSBzdGF0bWVudDxicj4KLUV4Y2VwdGlvbiwgbGluZSA4MTogVHlw
ZUVycm9yOiBPYmplY3QgL2FiYy8gKHJlc3VsdCBvZiBleHByZXNzaW9uIHgpIGRvZXMgbm90IGFs
bG93IGNhbGxzLjxicj4KK0V4Y2VwdGlvbiwgbGluZSA4MTogPGJyPgogPC90dD48YnI+CiA8YSBu
YW1lPSdmYWlsdXJlMjgnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5k
b3cnIGhyZWY9Jy4vanMxXzIvZnVuY3Rpb24vdG9zdHJpbmctMS5qcyc+anMxXzIvZnVuY3Rpb24v
dG9zdHJpbmctMS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTI3
Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlMjknPk5leHQgRmFpbHVy
ZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KQEAgLTgy
MSw3ICs4MTYsNyBAQCBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21w
bGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIC0tPiBFeGVjdXRpbmcgc2NyaXB0OiBjb21w
aWxlLmpzPGJyPgogLS0+IEFzIGRlc2NyaWJlZCBpbiBOZXRzY2FwZSBkb2MgIldoYXRzIG5ldyBp
biBKYXZhU2NyaXB0IDEuMiIgUmVnRXhwOiBjb21waWxlPGJyPgotRXhjZXB0aW9uLCBsaW5lIDQ0
OiBUeXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gcmVndWxh
ckV4cHJlc3Npb24uY29tcGlsZSkgaXMgbm90IG9iamVjdC48YnI+CitFeGNlcHRpb24sIGxpbmUg
NDQ6IDxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTM2Jz48L2E+PGRkPjxiPlRlc3Rj
YXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV8yL3JlZ2V4cC9lbmRMaW5l
LmpzJz5qczFfMi9yZWdleHAvZW5kTGluZS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBo
cmVmPScjZmFpbHVyZTM1Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJl
MzcnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwv
YT4gXTxicj4KQEAgLTgzNSw3ICs4MzAsNyBAQCB4eXonLm1hdGNoKG5ldyBSZWdFeHAoJ1xkKyQn
KSkgPSBudWxsIEZBCiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21w
bGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIC0tPiBCVUdOVU1CRVI6IGh0dHA6Ly9idWd6
aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1OTxicj4KLUV4Y2VwdGlvbiwgbGlu
ZSA1NzogVHlwZUVycm9yOiBPYmplY3QgLyhhKiliXDErLyAocmVzdWx0IG9mIGV4cHJlc3Npb24g
KGEqKWJcMSspIGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK0V4Y2VwdGlvbiwgbGluZSA1Nzog
PGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlMzgnPjwvYT48ZGQ+PGI+VGVzdGNhc2Ug
PGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzIvcmVnZXhwL3JlZ3Jlc3MtOTE0
MS5qcyc+anMxXzIvcmVnZXhwL3JlZ3Jlc3MtOTE0MS5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVm
PSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPWh0dHA6Ly9idWd6
aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE0MScgdGFyZ2V0PSdvdGhlcl93aW5k
b3cnPkJ1ZyBOdW1iZXIgaHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MTQxPC9hPjxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlMzcnPlByZXZpb3VzIEZhaWx1cmU8
L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmUzOSc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0
aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtODQzLDcgKzgzOCw3IEBAIEV4Y2Vw
dGlvbiwgbGluZSA1NzogVHlwZUVycm9yOiBPYmplY3QgLygKIFRlc3RjYXNlIHRlcm1pbmF0ZWQg
d2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgogLS0+
IEJVR05VTUJFUjogaHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD05
MTQxPGJyPgotRXhjZXB0aW9uLCBsaW5lIDc0OiBUeXBlRXJyb3I6IE9iamVjdCAvKD86eHh8eCkq
LyAocmVzdWx0IG9mIGV4cHJlc3Npb24gKD86eHh8eCkqKSBkb2VzIG5vdCBhbGxvdyBjYWxscy48
YnI+CitFeGNlcHRpb24sIGxpbmUgNzQ6IDxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVy
ZTM5Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScu
L2pzMV8yL3JlZ2V4cC9zaW1wbGVfZm9ybS5qcyc+anMxXzIvcmVnZXhwL3NpbXBsZV9mb3JtLmpz
PC9hPiBmYWlsZWQ8L2I+IDxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlMzgnPlByZXZpb3VzIEZh
aWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU0MCc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhy
ZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtODUyLDcgKzg0Nyw3IEBA
IFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNl
IG91dHB1dCB3YXM6PGJyPgogLS0+IEV4ZWN1dGluZyBzY3JpcHQ6IHNpbXBsZV9mb3JtLmpzPGJy
PgogLS0+IEFzIGRlc2NyaWJlZCBpbiBOZXRzY2FwZSBkb2MgIldoYXRzIG5ldyBpbiBKYXZhU2Ny
aXB0IDEuMiIgUmVnRXhwOiBzaW1wbGUgZm9ybTxicj4KLUV4Y2VwdGlvbiwgbGluZSA0NDogVHlw
ZUVycm9yOiBPYmplY3QgL1swLTldezN9LyAocmVzdWx0IG9mIGV4cHJlc3Npb24gWzAtOV17M30p
IGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK0V4Y2VwdGlvbiwgbGluZSA0NDogPGJyPgogPC90
dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlNDAnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0
PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzIvcmVnZXhwL3NwZWNpYWxfY2hhcmFjdGVycy5q
cyc+anMxXzIvcmVnZXhwL3NwZWNpYWxfY2hhcmFjdGVycy5qczwvYT4gZmFpbGVkPC9iPiA8YnI+
CiAgWyA8YSBocmVmPScjZmFpbHVyZTM5Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9
JyNmYWlsdXJlNDEnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Ag
b2YgUGFnZTwvYT4gXTxicj4KQEAgLTg5OSw3ICs4OTQsNyBAQCBPSy48YnI+CiBUZXN0Y2FzZSB0
ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2Fz
Ojxicj4KIC0tPiBzY3JpcHQtMDAxIE5hdGl2ZVNjcmlwdDxicj4KLUV4Y2VwdGlvbiwgbGluZSAx
MzQ6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTY3JpcHQ8YnI+CitFeGNl
cHRpb24sIGxpbmUgMTM0OiA8YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1cmU0Nic+PC9h
PjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfMy9y
ZWdyZXNzL2Z1bmN0aW9uLTAwMS1uLmpzJz5qczFfMy9yZWdyZXNzL2Z1bmN0aW9uLTAwMS1uLmpz
PC9hPiBmYWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAyNzgnIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDEwMjc4
PC9hPjxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlNDUnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwg
PGEgaHJlZj0nI2ZhaWx1cmU0Nyc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90
b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtOTExLDEwOSArOTA2LDEwMyBAQCBDb21wbGV0
ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIC0tPiBldmFsKCJmdW5jdGlvbiBmKCl7fWZ1bmN0
aW9uIGcoKXt9IikgPSB1bmRlZmluZWQgRkFJTEVEISBleHBlY3RlZDogZXJyb3I8YnI+CiBPSy48
YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU0Nyc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8
YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNC9SZWdyZXNzL2Z1bmN0aW9uLTAw
My5qcyc+anMxXzQvUmVncmVzcy9mdW5jdGlvbi0wMDMuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJl
Zj0naHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTA1MTQnIHRh
cmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDMxMDUxNDwvYT48YnI+Cis8YSBuYW1lPSdm
YWlsdXJlNDcnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhy
ZWY9Jy4vanMxXzUvRXhjZXB0aW9ucy9jYXRjaGd1YXJkLTAwMS5qcyc+anMxXzUvRXhjZXB0aW9u
cy9jYXRjaGd1YXJkLTAwMS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFp
bHVyZTQ2Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNDgnPk5leHQg
RmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4K
LTx0dD48YnI+Ci1GYWlsdXJlIG1lc3NhZ2VzIHdlcmU6PGJyPgotLS0+IFN0cmlwU3BhY2VzKEFy
cmF5LnByb3RvdHlwZS5jb25jYXQudG9TdHJpbmcoKSkuc3Vic3RyaW5nKDAsMTcpID0gKEludGVy
bmFsRnVuY3Rpb24gRkFJTEVEISBleHBlY3RlZDogZnVuY3Rpb25jb25jYXQoKXs8YnI+Cis8dHQ+
RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAzPGJyPgorVGVzdGNhc2UgdGVybWluYXRlZCB3aXRo
IHNpZ25hbCAwPGJyPgorQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CitFeGNlcHRp
b24sIGxpbmUgNDI6IDxicj4KIDwvdHQ+PGJyPgotPGEgbmFtZT0nZmFpbHVyZTQ4Jz48L2E+PGRk
PjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L0V4Y2Vw
dGlvbnMvY2F0Y2hndWFyZC0wMDEuanMnPmpzMV81L0V4Y2VwdGlvbnMvY2F0Y2hndWFyZC0wMDEu
anM8L2E+IGZhaWxlZDwvYj4gPGJyPgorPGEgbmFtZT0nZmFpbHVyZTQ4Jz48L2E+PGRkPjxiPlRl
c3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L0V4Y2VwdGlvbnMv
Y2F0Y2hndWFyZC0wMDIuanMnPmpzMV81L0V4Y2VwdGlvbnMvY2F0Y2hndWFyZC0wMDIuanM8L2E+
IGZhaWxlZDwvYj4gPGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU0Nyc+UHJldmlvdXMgRmFpbHVy
ZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTQ5Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0n
I3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CiA8dHQ+RXhwZWN0ZWQgZXhpdCBjb2Rl
IDAsIGdvdCAzPGJyPgogVGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29t
cGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+Ci1FeGNlcHRpb24sIGxpbmUgNDI6IFN5bnRh
eEVycm9yOiBQYXJzZSBlcnJvcjxicj4KK0V4Y2VwdGlvbiwgbGluZSA0MjogPGJyPgogPC90dD48
YnI+Ci08YSBuYW1lPSdmYWlsdXJlNDknPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdv
dGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzUvRXhjZXB0aW9ucy9jYXRjaGd1YXJkLTAwMi5qcyc+
anMxXzUvRXhjZXB0aW9ucy9jYXRjaGd1YXJkLTAwMi5qczwvYT4gZmFpbGVkPC9iPiA8YnI+Cis8
YSBuYW1lPSdmYWlsdXJlNDknPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93
aW5kb3cnIGhyZWY9Jy4vanMxXzUvRXhjZXB0aW9ucy9jYXRjaGd1YXJkLTAwMy5qcyc+anMxXzUv
RXhjZXB0aW9ucy9jYXRjaGd1YXJkLTAwMy5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBo
cmVmPScjZmFpbHVyZTQ4Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJl
NTAnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwv
YT4gXTxicj4KIDx0dD5FeHBlY3RlZCBleGl0IGNvZGUgMCwgZ290IDM8YnI+CiBUZXN0Y2FzZSB0
ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2Fz
Ojxicj4KLUV4Y2VwdGlvbiwgbGluZSA0MjogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yPGJyPgor
RXhjZXB0aW9uLCBsaW5lIDQyOiA8YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU1MCc+
PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFf
NS9FeGNlcHRpb25zL2NhdGNoZ3VhcmQtMDAzLmpzJz5qczFfNS9FeGNlcHRpb25zL2NhdGNoZ3Vh
cmQtMDAzLmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KKzxhIG5hbWU9J2ZhaWx1cmU1MCc+PC9hPjxk
ZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9FeGNl
cHRpb25zL2VycnN0YWNrLTAwMS5qcyc+anMxXzUvRXhjZXB0aW9ucy9lcnJzdGFjay0wMDEuanM8
L2E+IGZhaWxlZDwvYj4gPGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU0OSc+UHJldmlvdXMgRmFp
bHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTUxJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJl
Zj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CiA8dHQ+RXhwZWN0ZWQgZXhpdCBj
b2RlIDAsIGdvdCAzPGJyPgogVGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgog
Q29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+Ci1FeGNlcHRpb24sIGxpbmUgNDI6IFN5
bnRheEVycm9yOiBQYXJzZSBlcnJvcjxicj4KK0V4Y2VwdGlvbiwgbGluZSAyNDg6IDxicj4KIDwv
dHQ+PGJyPgotPGEgbmFtZT0nZmFpbHVyZTUxJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdl
dD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L0V4Y2VwdGlvbnMvZXJyc3RhY2stMDAxLmpz
Jz5qczFfNS9FeGNlcHRpb25zL2VycnN0YWNrLTAwMS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+Cis8
YSBuYW1lPSdmYWlsdXJlNTEnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93
aW5kb3cnIGhyZWY9Jy4vanMxXzUvRXhjZXB0aW9ucy9yZWdyZXNzLTUwNDQ3LmpzJz5qczFfNS9F
eGNlcHRpb25zL3JlZ3Jlc3MtNTA0NDcuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0naHR0cDov
L2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD01MDQ0NycgdGFyZ2V0PSdvdGhl
cl93aW5kb3cnPkJ1ZyBOdW1iZXIgNTA0NDc8L2E+PGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU1
MCc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTUyJz5OZXh0IEZhaWx1
cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CiA8dHQ+
RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAzPGJyPgogVGVzdGNhc2UgdGVybWluYXRlZCB3aXRo
IHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+Ci1FeGNlcHRp
b24sIGxpbmUgMjQ4OiBUeXBlRXJyb3I6IFVuZGVmaW5lZCB2YWx1ZTxicj4KKy0tPiBCVUdOVU1C
RVI6IDUwNDQ3PGJyPgorLS0+IFNUQVRVUzogVGVzdCAobm9uLUVDTUEpIEVycm9yIG9iamVjdCBw
cm9wZXJ0aWVzIGZpbGVOYW1lLCBsaW5lTnVtYmVyPGJyPgorRXhjZXB0aW9uLCBsaW5lIDY2OiA8
YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU1Mic+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8
YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9FeGNlcHRpb25zL3JlZ3Jlc3Mt
NTA0NDcuanMnPmpzMV81L0V4Y2VwdGlvbnMvcmVncmVzcy01MDQ0Ny5qczwvYT4gZmFpbGVkPC9i
PiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTUw
NDQ3JyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciA1MDQ0NzwvYT48YnI+Cis8YSBu
YW1lPSdmYWlsdXJlNTInPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5k
b3cnIGhyZWY9Jy4vanMxXzUvR2V0U2V0L2dldHNldC0wMDEuanMnPmpzMV81L0dldFNldC9nZXRz
ZXQtMDAxLmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlNTEnPlBy
ZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU1Myc+TmV4dCBGYWlsdXJlPC9h
PiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0PkV4cGVj
dGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWdu
YWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgotLS0+IEJVR05VTUJF
UjogNTA0NDc8YnI+Ci0tLT4gU1RBVFVTOiBUZXN0IChub24tRUNNQSkgRXJyb3Igb2JqZWN0IHBy
b3BlcnRpZXMgZmlsZU5hbWUsIGxpbmVOdW1iZXI8YnI+Ci1FeGNlcHRpb24sIGxpbmUgNjY6IFR5
cGVFcnJvcjogVW5kZWZpbmVkIHZhbHVlPGJyPgorRXhjZXB0aW9uLCBsaW5lIDMzOiA8YnI+CiA8
L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU1Myc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJn
ZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9HZXRTZXQvZ2V0c2V0LTAwMS5qcyc+anMx
XzUvR2V0U2V0L2dldHNldC0wMDEuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgorPGEgbmFtZT0nZmFp
bHVyZTUzJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVm
PScuL2pzMV81L0dldFNldC9nZXRzZXQtMDAyLmpzJz5qczFfNS9HZXRTZXQvZ2V0c2V0LTAwMi5q
czwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTUyJz5QcmV2aW91cyBG
YWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNTQnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBo
cmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KIDx0dD5FeHBlY3RlZCBleGl0
IGNvZGUgMCwgZ290IDM8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+
CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KLUV4Y2VwdGlvbiwgbGluZSAzMzog
U3ludGF4RXJyb3I6IFBhcnNlIGVycm9yPGJyPgorRXhjZXB0aW9uLCBsaW5lIDI5OiA8YnI+CiA8
L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU1NCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJn
ZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9HZXRTZXQvZ2V0c2V0LTAwMi5qcyc+anMx
XzUvR2V0U2V0L2dldHNldC0wMDIuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgorPGEgbmFtZT0nZmFp
bHVyZTU0Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVm
PScuL2pzMV81L0dldFNldC9nZXRzZXQtMDAzLmpzJz5qczFfNS9HZXRTZXQvZ2V0c2V0LTAwMy5q
czwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTUzJz5QcmV2aW91cyBG
YWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNTUnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBo
cmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KIDx0dD5FeHBlY3RlZCBleGl0
IGNvZGUgMCwgZ290IDM8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+
CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KLUV4Y2VwdGlvbiwgbGluZSAyOTog
U3ludGF4RXJyb3I6IFBhcnNlIGVycm9yPGJyPgorRXhjZXB0aW9uLCBsaW5lIDQ4OiA8YnI+CiA8
L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU1NSc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJn
ZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9HZXRTZXQvZ2V0c2V0LTAwMy5qcyc+anMx
XzUvR2V0U2V0L2dldHNldC0wMDMuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgorPGEgbmFtZT0nZmFp
bHVyZTU1Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVm
PScuL2pzMV81L09iamVjdC9yZWdyZXNzLTkwNTk2LTAwMS5qcyc+anMxXzUvT2JqZWN0L3JlZ3Jl
c3MtOTA1OTYtMDAxLmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJl
NTQnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU1Nic+TmV4dCBGYWls
dXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0
PkV4cGVjdGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0
aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgotRXhjZXB0
aW9uLCBsaW5lIDQ4OiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3I8YnI+CitFeGNlcHRpb24sIGxp
bmUgNDk6IDxicj4KIDwvdHQ+PGJyPgotPGEgbmFtZT0nZmFpbHVyZTU2Jz48L2E+PGRkPjxiPlRl
c3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L09iamVjdC9yZWdy
ZXNzLTkwNTk2LTAwMS5qcyc+anMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTA1OTYtMDAxLmpzPC9hPiBm
YWlsZWQ8L2I+IDxicj4KKzxhIG5hbWU9J2ZhaWx1cmU1Nic+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8
YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9PYmplY3QvcmVncmVzcy05MDU5
Ni0wMDIuanMnPmpzMV81L09iamVjdC9yZWdyZXNzLTkwNTk2LTAwMi5qczwvYT4gZmFpbGVkPC9i
PiA8YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTU1Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxh
IGhyZWY9JyNmYWlsdXJlNTcnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9w
Jz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KIDx0dD5FeHBlY3RlZCBleGl0IGNvZGUgMCwgZ290IDM8
YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0
Y2FzZSBvdXRwdXQgd2FzOjxicj4KLUV4Y2VwdGlvbiwgbGluZSA0OTogVHlwZUVycm9yOiBWYWx1
ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBleHByZXNzaW9uIG9iai50b1NvdXJjZSkgaXMgbm90IG9i
amVjdC48YnI+CitFeGNlcHRpb24sIGxpbmUgNDk6IDxicj4KIDwvdHQ+PGJyPgotPGEgbmFtZT0n
ZmFpbHVyZTU3Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBo
cmVmPScuL2pzMV81L09iamVjdC9yZWdyZXNzLTkwNTk2LTAwMi5qcyc+anMxXzUvT2JqZWN0L3Jl
Z3Jlc3MtOTA1OTYtMDAyLmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KKzxhIG5hbWU9J2ZhaWx1cmU1
Nyc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9q
czFfNS9PYmplY3QvcmVncmVzcy05NjI4NC0wMDEuanMnPmpzMV81L09iamVjdC9yZWdyZXNzLTk2
Mjg0LTAwMS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTU2Jz5Q
cmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNTgnPk5leHQgRmFpbHVyZTwv
YT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KIDx0dD5FeHBl
Y3RlZCBleGl0IGNvZGUgMCwgZ290IDM8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2ln
bmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KLUV4Y2VwdGlvbiwg
bGluZSA0OTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVuZXZhbDxicj4K
K0V4Y2VwdGlvbiwgbGluZSA1MDogPGJyPgogPC90dD48YnI+Ci08YSBuYW1lPSdmYWlsdXJlNTgn
PjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMx
XzUvT2JqZWN0L3JlZ3Jlc3MtOTYyODQtMDAxLmpzJz5qczFfNS9PYmplY3QvcmVncmVzcy05NjI4
NC0wMDEuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgorPGEgbmFtZT0nZmFpbHVyZTU4Jz48L2E+PGRk
PjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L09iamVj
dC9yZWdyZXNzLTk2Mjg0LTAwMi5qcyc+anMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTYyODQtMDAyLmpz
PC9hPiBmYWlsZWQ8L2I+IDxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlNTcnPlByZXZpb3VzIEZh
aWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU1OSc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhy
ZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0PkV4cGVjdGVkIGV4aXQg
Y29kZSAwLCBnb3QgMzxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4K
IENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgotRXhjZXB0aW9uLCBsaW5lIDUwOiBU
eXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gb2JqMS50b1Nv
dXJjZSkgaXMgbm90IG9iamVjdC48YnI+CitFeGNlcHRpb24sIGxpbmUgNTA6IDxicj4KIDwvdHQ+
PGJyPgotPGEgbmFtZT0nZmFpbHVyZTU5Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0n
b3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L09iamVjdC9yZWdyZXNzLTk2Mjg0LTAwMi5qcyc+
anMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTYyODQtMDAyLmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KKzxh
IG5hbWU9J2ZhaWx1cmU1OSc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dp
bmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtNDQwMDkuanMnPmpzMV81L1JlZ3Jl
c3MvcmVncmVzcy00NDAwOS5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRwOi8vYnVnemls
bGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MDA5JyB0YXJnZXQ9J290aGVyX3dpbmRv
dyc+QnVnIE51bWJlciA0NDAwOTwvYT48YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTU4Jz5QcmV2
aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNjAnPk5leHQgRmFpbHVyZTwvYT4g
fCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KIDx0dD5FeHBlY3Rl
ZCBleGl0IGNvZGUgMCwgZ290IDM8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFs
IDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KLUV4Y2VwdGlvbiwgbGlu
ZSA1MDogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVuZXZhbDxicj4KLTwv
dHQ+PGJyPgotPGEgbmFtZT0nZmFpbHVyZTYwJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdl
dD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy00NDAwOS5qcyc+
anMxXzUvUmVncmVzcy9yZWdyZXNzLTQ0MDA5LmpzPC9hPiBmYWlsZWQ8L2I+IDxhIGhyZWY9J2h0
dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQwMDknIHRhcmdldD0n
b3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDQ0MDA5PC9hPjxicj4KLSBbIDxhIGhyZWY9JyNmYWls
dXJlNTknPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU2MSc+TmV4dCBG
YWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgot
PHR0PkV4cGVjdGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4KLVRlc3RjYXNlIHRlcm1pbmF0ZWQg
d2l0aCBzaWduYWwgMDxicj4KLUNvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgogLS0+
IEJVR05VTUJFUjogNDQwMDk8YnI+CiAtLT4gU1RBVFVTOiBUZXN0aW5nIHRoYXQgd2UgZG9uJ3Qg
Y3Jhc2ggb24gb2JqLnRvU291cmNlKCk8YnI+Ci1FeGNlcHRpb24sIGxpbmUgNjE6IFR5cGVFcnJv
cjogVmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVzc2lvbiBvYmoudG9Tb3VyY2UpIGlz
IG5vdCBvYmplY3QuPGJyPgorRXhjZXB0aW9uLCBsaW5lIDYxOiA8YnI+CiA8L3R0Pjxicj4KLTxh
IG5hbWU9J2ZhaWx1cmU2MSc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dp
bmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtNjg0OTgtMDAzLmpzJz5qczFfNS9S
ZWdyZXNzL3JlZ3Jlc3MtNjg0OTgtMDAzLmpzPC9hPiBmYWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6
Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0OTgnIHRhcmdldD0nb3Ro
ZXJfd2luZG93Jz5CdWcgTnVtYmVyIDY4NDk4PC9hPjxicj4KLSBbIDxhIGhyZWY9JyNmYWlsdXJl
NjAnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU2Mic+TmV4dCBGYWls
dXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgorPGEg
bmFtZT0nZmFpbHVyZTYwJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2lu
ZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy02ODQ5OC0wMDMuanMnPmpzMV81L1Jl
Z3Jlc3MvcmVncmVzcy02ODQ5OC0wMDMuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0naHR0cDov
L2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ5OCcgdGFyZ2V0PSdvdGhl
cl93aW5kb3cnPkJ1ZyBOdW1iZXIgNjg0OTg8L2E+PGJyPgorIFsgPGEgaHJlZj0nI2ZhaWx1cmU1
OSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTYxJz5OZXh0IEZhaWx1
cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CiA8dHQ+
LS0+IFNUQVRVUzogVGVzdGluZyBjYWxsaW5nIG9iai5ldmFsKHN0cik8YnI+CiBGYWlsdXJlIG1l
c3NhZ2VzIHdlcmU6PGJyPgogLS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBmcm9tIHRlc3QoKV0gVGVz
dGluZyBjYWxsaW5nIG9iai5ldmFsKHN0cik7IGN1cnJlbnRseSBhdCBleHBlY3RbMV0gd2l0aGlu
IHRlc3QgLTxicj4KQEAgLTEwMjEsOCArMTAxMCw4IEBAIEZhaWx1cmUgbWVzc2FnZXMgd2VyZTo8
YnI+CiAtLT4gRkFJTEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgpXSBFeHBlY3RlZCB2YWx1ZSAn
NDMnLCBBY3R1YWwgdmFsdWUgJ2ZhbHNlJzxicj4KIC0tPiBGQUlMRUQhOiBbcmVwb3J0ZWQgZnJv
bSB0ZXN0KCldIDxicj4KIDwvdHQ+PGJyPgotPGEgbmFtZT0nZmFpbHVyZTYyJz48L2E+PGRkPjxi
PlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3Mv
cmVncmVzcy0xMDM2MDIuanMnPmpzMV81L1JlZ3Jlc3MvcmVncmVzcy0xMDM2MDIuanM8L2E+IGZh
aWxlZDwvYj4gPGEgaHJlZj0naHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDM2MDInIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDEwMzYwMjwvYT48
YnI+Ci0gWyA8YSBocmVmPScjZmFpbHVyZTYxJz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhy
ZWY9JyNmYWlsdXJlNjMnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5U
b3Agb2YgUGFnZTwvYT4gXTxicj4KKzxhIG5hbWU9J2ZhaWx1cmU2MSc+PC9hPjxkZD48Yj5UZXN0
Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNzL3JlZ3Jl
c3MtMTAzNjAyLmpzJz5qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTAzNjAyLmpzPC9hPiBmYWlsZWQ8
L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzNjAyJyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciAxMDM2MDI8L2E+PGJyPgor
IFsgPGEgaHJlZj0nI2ZhaWx1cmU2MCc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScj
ZmFpbHVyZTYyJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9m
IFBhZ2U8L2E+IF08YnI+CiA8dHQ+LS0+IFNUQVRVUzogUmVhc3NpZ25tZW50IHRvIGEgY29uc3Qg
aXMgTk9UIGFuIGVycm9yIHBlciBFQ01BPGJyPgogRmFpbHVyZSBtZXNzYWdlcyB3ZXJlOjxicj4K
IC0tPiBGQUlMRUQhOiBbcmVwb3J0ZWQgZnJvbSB0ZXN0KCldIFNlY3Rpb24gMSBvZiB0ZXN0IC08
YnI+CkBAIC0xMDMyLDI5ICsxMDIxLDI5IEBAIEZhaWx1cmUgbWVzc2FnZXMgd2VyZTo8YnI+CiAt
LT4gRkFJTEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgpXSBFeHBlY3RlZCB2YWx1ZSAnMScsIEFj
dHVhbCB2YWx1ZSAnMic8YnI+CiAtLT4gRkFJTEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgpXSA8
YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU2Myc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8
YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTA0
MDc3LmpzJz5qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTA0MDc3LmpzPC9hPiBmYWlsZWQ8L2I+IDxi
cj4KLSBbIDxhIGhyZWY9JyNmYWlsdXJlNjInPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJl
Zj0nI2ZhaWx1cmU2NCc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRv
cCBvZiBQYWdlPC9hPiBdPGJyPgorPGEgbmFtZT0nZmFpbHVyZTYyJz48L2E+PGRkPjxiPlRlc3Rj
YXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3MvcmVncmVz
cy0xMDQwNzcuanMnPmpzMV81L1JlZ3Jlc3MvcmVncmVzcy0xMDQwNzcuanM8L2E+IGZhaWxlZDwv
Yj4gPGJyPgorIFsgPGEgaHJlZj0nI2ZhaWx1cmU2MSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8
YSBocmVmPScjZmFpbHVyZTYzJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3Rv
cCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CiA8dHQ+RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAz
PGJyPgogVGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVz
dGNhc2Ugb3V0cHV0IHdhczo8YnI+Ci1FeGNlcHRpb24sIGxpbmUgMzUxOiBTeW50YXhFcnJvcjog
UGFyc2UgZXJyb3I8YnI+CitFeGNlcHRpb24sIGxpbmUgMzUxOiA8YnI+CiA8L3R0Pjxicj4KLTxh
IG5hbWU9J2ZhaWx1cmU2NCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dp
bmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTI3NTU3LmpzJz5qczFfNS9SZWdy
ZXNzL3JlZ3Jlc3MtMTI3NTU3LmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KLSBbIDxhIGhyZWY9JyNm
YWlsdXJlNjMnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU2NSc+TmV4
dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJy
PgorPGEgbmFtZT0nZmFpbHVyZTYzJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3Ro
ZXJfd2luZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy0xMjc1NTcuanMnPmpzMV81
L1JlZ3Jlc3MvcmVncmVzcy0xMjc1NTcuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgorIFsgPGEgaHJl
Zj0nI2ZhaWx1cmU2Mic+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTY0
Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+
IF08YnI+CiA8dHQ+RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAzPGJyPgogVGVzdGNhc2UgdGVy
bWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8
YnI+Ci1FeGNlcHRpb24sIGxpbmUgNzY6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBjbG9uZTxicj4KK0V4Y2VwdGlvbiwgbGluZSA3NjogPGJyPgogPC90dD48YnI+Ci08YSBu
YW1lPSdmYWlsdXJlNjUnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5k
b3cnIGhyZWY9Jy4vanMxXzUvUmVncmVzcy9yZWdyZXNzLTE3MjY5OS5qcyc+anMxXzUvUmVncmVz
cy9yZWdyZXNzLTE3MjY5OS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+Ci0gWyA8YSBocmVmPScjZmFp
bHVyZTY0Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNjYnPk5leHQg
RmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4K
KzxhIG5hbWU9J2ZhaWx1cmU2NCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVy
X3dpbmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTcyNjk5LmpzJz5qczFfNS9S
ZWdyZXNzL3JlZ3Jlc3MtMTcyNjk5LmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KKyBbIDxhIGhyZWY9
JyNmYWlsdXJlNjMnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU2NSc+
TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBd
PGJyPgogPHR0PkV4cGVjdGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4KIFRlc3RjYXNlIHRlcm1p
bmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJy
PgotRXhjZXB0aW9uLCBsaW5lIDYyOiBVUklFcnJvcjogVVJJIGVycm9yPGJyPgorRXhjZXB0aW9u
LCBsaW5lIDYyOiA8YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU2Nic+PC9hPjxkZD48
Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNz
L3JlZ3Jlc3MtMTc5NTI0LmpzJz5qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTc5NTI0LmpzPC9hPiBm
YWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc5NTI0JyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciAxNzk1MjQ8L2E+
PGJyPgotIFsgPGEgaHJlZj0nI2ZhaWx1cmU2NSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBo
cmVmPScjZmFpbHVyZTY3Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+
VG9wIG9mIFBhZ2U8L2E+IF08YnI+Cis8YSBuYW1lPSdmYWlsdXJlNjUnPjwvYT48ZGQ+PGI+VGVz
dGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzUvUmVncmVzcy9yZWdy
ZXNzLTE3OTUyNC5qcyc+anMxXzUvUmVncmVzcy9yZWdyZXNzLTE3OTUyNC5qczwvYT4gZmFpbGVk
PC9iPiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lk
PTE3OTUyNCcgdGFyZ2V0PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgMTc5NTI0PC9hPjxicj4K
KyBbIDxhIGhyZWY9JyNmYWlsdXJlNjQnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0n
I2ZhaWx1cmU2Nic+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBv
ZiBQYWdlPC9hPiBdPGJyPgogPHR0Pi0tPiBTVEFUVVM6IERvbid0IGNyYXNoIG9uIGV4dHJhbmVv
dXMgYXJndW1lbnRzIHRvIHN0ci5tYXRjaCgpLCBldGMuPGJyPgogRmFpbHVyZSBtZXNzYWdlcyB3
ZXJlOjxicj4KIC0tPiBGQUlMRUQhOiBbcmVwb3J0ZWQgZnJvbSB0ZXN0KCldIFNlY3Rpb24gMTQg
b2YgdGVzdCAtPGJyPgpAQCAtMTEwNCwxNiArMTA5MywxNiBAQCBGYWlsdXJlIG1lc3NhZ2VzIHdl
cmU6PGJyPgogLS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBmcm9tIHRlc3QoKV0gRXhwZWN0ZWQgdmFs
dWUgJ1NIT1VMRCBIQVZFIEZBTExFTiBJTlRPIENBVENILUJMT0NLIScsIEFjdHVhbCB2YWx1ZSAn
QUJDIFpiYyc8YnI+CiAtLT4gRkFJTEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgpXSA8YnI+CiA8
L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU2Nyc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJn
ZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTg1MTY1Lmpz
Jz5qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTg1MTY1LmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KLSBb
IDxhIGhyZWY9JyNmYWlsdXJlNjYnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2Zh
aWx1cmU2OCc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQ
YWdlPC9hPiBdPGJyPgorPGEgbmFtZT0nZmFpbHVyZTY2Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxh
IHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy0xODUx
NjUuanMnPmpzMV81L1JlZ3Jlc3MvcmVncmVzcy0xODUxNjUuanM8L2E+IGZhaWxlZDwvYj4gPGJy
PgorIFsgPGEgaHJlZj0nI2ZhaWx1cmU2NSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVm
PScjZmFpbHVyZTY3Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9w
IG9mIFBhZ2U8L2E+IF08YnI+CiA8dHQ+RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAzPGJyPgog
VGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ug
b3V0cHV0IHdhczo8YnI+CiB5eWxleDogRVJST1IuPGJyPgotRXhjZXB0aW9uLCBsaW5lIDM6IFN5
bnRheEVycm9yOiBQYXJzZSBlcnJvcjxicj4KK0V4Y2VwdGlvbiwgbGluZSAzOiA8YnI+CiA8L3R0
Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU2OCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9
J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9TY29wZS9yZWdyZXNzLTE4NTQ4NS5qcyc+anMx
XzUvU2NvcGUvcmVncmVzcy0xODU0ODUuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0naHR0cDov
L2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU0ODUnIHRhcmdldD0nb3Ro
ZXJfd2luZG93Jz5CdWcgTnVtYmVyIDE4NTQ4NTwvYT48YnI+Ci0gWyA8YSBocmVmPScjZmFpbHVy
ZTY3Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNjknPk5leHQgRmFp
bHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KKzxh
IG5hbWU9J2ZhaWx1cmU2Nyc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dp
bmRvdycgaHJlZj0nLi9qczFfNS9TY29wZS9yZWdyZXNzLTE4NTQ4NS5qcyc+anMxXzUvU2NvcGUv
cmVncmVzcy0xODU0ODUuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0naHR0cDovL2J1Z3ppbGxh
Lm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU0ODUnIHRhcmdldD0nb3RoZXJfd2luZG93
Jz5CdWcgTnVtYmVyIDE4NTQ4NTwvYT48YnI+CisgWyA8YSBocmVmPScjZmFpbHVyZTY2Jz5QcmV2
aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNjgnPk5leHQgRmFpbHVyZTwvYT4g
fCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KIDx0dD4tLT4gU1RB
VFVTOiBUZXN0aW5nIHx3aXRoICh4KSB7ZnVuY3Rpb24gZigpIHt9fXwgd2hlbiB8eC5mfCBhbHJl
YWR5IGV4aXN0czxicj4KIEZhaWx1cmUgbWVzc2FnZXMgd2VyZTo8YnI+CiAtLT4gRkFJTEVEITog
W3JlcG9ydGVkIGZyb20gdGVzdCgpXSBTZWN0aW9uIDIgb2YgdGVzdCAtPGJyPgpAQCAtMTEyOCwx
NSArMTExNywxNSBAQCBGYWlsdXJlIG1lc3NhZ2VzIHdlcmU6PGJyPgogLS0+IEZBSUxFRCE6IFty
ZXBvcnRlZCBmcm9tIHRlc3QoKV0gfScsIEFjdHVhbCB2YWx1ZSAnMCc8YnI+CiAtLT4gRkFJTEVE
ITogW3JlcG9ydGVkIGZyb20gdGVzdCgpXSA8YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1
cmU2OSc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0n
Li9qczFfNS9TY29wZS9yZWdyZXNzLTIyMDU4NC5qcyc+anMxXzUvU2NvcGUvcmVncmVzcy0yMjA1
ODQuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgotIFsgPGEgaHJlZj0nI2ZhaWx1cmU2OCc+UHJldmlv
dXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTcwJz5OZXh0IEZhaWx1cmU8L2E+IHwg
PGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+Cis8YSBuYW1lPSdmYWls
dXJlNjgnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9
Jy4vanMxXzUvU2NvcGUvcmVncmVzcy0yMjA1ODQuanMnPmpzMV81L1Njb3BlL3JlZ3Jlc3MtMjIw
NTg0LmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KKyBbIDxhIGhyZWY9JyNmYWlsdXJlNjcnPlByZXZp
b3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU2OSc+TmV4dCBGYWlsdXJlPC9hPiB8
IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0PkV4cGVjdGVk
IGV4aXQgY29kZSAwLCBnb3QgMzxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwg
MDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgotRXhjZXB0aW9uLCBsaW5l
IDU3OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2NyaXB0PGJyPgorRXhj
ZXB0aW9uLCBsaW5lIDU3OiA8YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU3MCc+PC9h
PjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9T
Y29wZS9zY29wZS0wMDEuanMnPmpzMV81L1Njb3BlL3Njb3BlLTAwMS5qczwvYT4gZmFpbGVkPC9i
PiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTUz
MjY4JyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciA1MzI2ODwvYT48YnI+Ci0gWyA8
YSBocmVmPScjZmFpbHVyZTY5Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWls
dXJlNzEnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFn
ZTwvYT4gXTxicj4KKzxhIG5hbWU9J2ZhaWx1cmU2OSc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0
YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9TY29wZS9zY29wZS0wMDEuanMnPmpz
MV81L1Njb3BlL3Njb3BlLTAwMS5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRwOi8vYnVn
emlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjY4JyB0YXJnZXQ9J290aGVyX3dp
bmRvdyc+QnVnIE51bWJlciA1MzI2ODwvYT48YnI+CisgWyA8YSBocmVmPScjZmFpbHVyZTY4Jz5Q
cmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNzAnPk5leHQgRmFpbHVyZTwv
YT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KIDx0dD4tLT4g
U1RBVFVTOiBUZXN0aW5nIHNjb3BlIGFmdGVyIGNoYW5naW5nIG9iai5fX3Byb3RvX188YnI+CiBG
YWlsdXJlIG1lc3NhZ2VzIHdlcmU6PGJyPgogLS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBmcm9tIHRl
c3QoKV0gU3RlcCAxOiAgc2V0dGluZyBvYmouX19wcm90b19fID0gZ2xvYmFsIG9iamVjdDxicj4K
QEAgLTExNDcsOCArMTEzNiw4IEBAIEZhaWx1cmUgbWVzc2FnZXMgd2VyZTo8YnI+CiAtLT4gRkFJ
TEVEITogW3JlcG9ydGVkIGZyb20gdGVzdCgpXSBFeHBlY3RlZCB2YWx1ZSAndW5kZWZpbmVkJywg
QWN0dWFsIHZhbHVlICcxJzxicj4KIC0tPiBGQUlMRUQhOiBbcmVwb3J0ZWQgZnJvbSB0ZXN0KCld
IDxicj4KIDwvdHQ+PGJyPgotPGEgbmFtZT0nZmFpbHVyZTcxJz48L2E+PGRkPjxiPlRlc3RjYXNl
IDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV82L0FycmF5L3JlZ3Jlc3MtMzA0
ODI4LmpzJz5qczFfNi9BcnJheS9yZWdyZXNzLTMwNDgyOC5qczwvYT4gZmFpbGVkPC9iPiA8YSBo
cmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDgyOCcg
dGFyZ2V0PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgMzA0ODI4PC9hPjxicj4KLSBbIDxhIGhy
ZWY9JyNmYWlsdXJlNzAnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3
Mic+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9h
PiBdPGJyPgorPGEgbmFtZT0nZmFpbHVyZTcwJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdl
dD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV82L0FycmF5L3JlZ3Jlc3MtMzA0ODI4LmpzJz5q
czFfNi9BcnJheS9yZWdyZXNzLTMwNDgyOC5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRw
Oi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDgyOCcgdGFyZ2V0PSdv
dGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgMzA0ODI4PC9hPjxicj4KKyBbIDxhIGhyZWY9JyNmYWls
dXJlNjknPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3MSc+TmV4dCBG
YWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgog
PHR0Pi0tPiBTVEFUVVM6IEFycmF5IEdlbmVyaWMgTWV0aG9kczxicj4KIEZhaWx1cmUgbWVzc2Fn
ZXMgd2VyZTo8YnI+CiAtLT4gRkFJTEVEITogQXJyYXkgR2VuZXJpYyBNZXRob2RzOiBsYXN0SW5k
ZXhPZjxicj4KQEAgLTExNTYsMTcgKzExNDUsMTcgQEAgRmFpbHVyZSBtZXNzYWdlcyB3ZXJlOjxi
cj4KIC0tPiBGQUlMRUQhOiBFeHBlY3RlZCB2YWx1ZSAnNCcsIEFjdHVhbCB2YWx1ZSAnVHlwZUVy
cm9yOiBVbmRlZmluZWQgdmFsdWUnPGJyPgogLS0+IEZBSUxFRCE6IDxicj4KIDwvdHQ+PGJyPgot
PGEgbmFtZT0nZmFpbHVyZTcyJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJf
d2luZG93JyBocmVmPScuL2pzMV82L0FycmF5L3JlZ3Jlc3MtMzEwNDI1LTAxLmpzJz5qczFfNi9B
cnJheS9yZWdyZXNzLTMxMDQyNS0wMS5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRwOi8v
YnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDQyNScgdGFyZ2V0PSdvdGhl
cl93aW5kb3cnPkJ1ZyBOdW1iZXIgMzEwNDI1PC9hPjxicj4KLSBbIDxhIGhyZWY9JyNmYWlsdXJl
NzEnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3Myc+TmV4dCBGYWls
dXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgorPGEg
bmFtZT0nZmFpbHVyZTcxJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2lu
ZG93JyBocmVmPScuL2pzMV82L0FycmF5L3JlZ3Jlc3MtMzEwNDI1LTAxLmpzJz5qczFfNi9BcnJh
eS9yZWdyZXNzLTMxMDQyNS0wMS5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRwOi8vYnVn
emlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDQyNScgdGFyZ2V0PSdvdGhlcl93
aW5kb3cnPkJ1ZyBOdW1iZXIgMzEwNDI1PC9hPjxicj4KKyBbIDxhIGhyZWY9JyNmYWlsdXJlNzAn
PlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3Mic+TmV4dCBGYWlsdXJl
PC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0PkV4
cGVjdGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBz
aWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgogLS0+IEJVR05V
TUJFUjogMzEwNDI1PGJyPgogLS0+IFNUQVRVUzogQXJyYXkuaW5kZXhPZi9sYXN0SW5kZXhPZiBl
ZGdlIGNhc2VzPGJyPgotRXhjZXB0aW9uLCBsaW5lIDQ4OiBUeXBlRXJyb3I6IFZhbHVlIHVuZGVm
aW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gW10ubGFzdEluZGV4T2YpIGlzIG5vdCBvYmplY3Qu
PGJyPgorRXhjZXB0aW9uLCBsaW5lIDQ4OiA8YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1
cmU3Myc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0n
Li9qczFfNi9SZWdyZXNzL3JlZ3Jlc3MtMzAxNTc0LmpzJz5qczFfNi9SZWdyZXNzL3JlZ3Jlc3Mt
MzAxNTc0LmpzPC9hPiBmYWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxh
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNTc0JyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51
bWJlciAzMDE1NzQ8L2E+PGJyPgotIFsgPGEgaHJlZj0nI2ZhaWx1cmU3Mic+UHJldmlvdXMgRmFp
bHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTc0Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJl
Zj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+Cis8YSBuYW1lPSdmYWlsdXJlNzIn
PjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMx
XzYvUmVncmVzcy9yZWdyZXNzLTMwMTU3NC5qcyc+anMxXzYvUmVncmVzcy9yZWdyZXNzLTMwMTU3
NC5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcv
c2hvd19idWcuY2dpP2lkPTMwMTU3NCcgdGFyZ2V0PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIg
MzAxNTc0PC9hPjxicj4KKyBbIDxhIGhyZWY9JyNmYWlsdXJlNzEnPlByZXZpb3VzIEZhaWx1cmU8
L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3Myc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0
aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0Pi0tPiBTVEFUVVM6IEU0WCBzaG91
bGQgYmUgZW5hYmxlZCBldmVuIHdoZW4gZTR4PTEgbm90IHNwZWNpZmllZDxicj4KIEZhaWx1cmUg
bWVzc2FnZXMgd2VyZTo8YnI+CiAtLT4gRkFJTEVEITogRTRYIHNob3VsZCBiZSBlbmFibGVkIGV2
ZW4gd2hlbiBlNHg9MSBub3Qgc3BlY2lmaWVkOiBYTUwoKTxicj4KQEAgLTExNzYsMjkgKzExNjUs
MjkgQEAgRmFpbHVyZSBtZXNzYWdlcyB3ZXJlOjxicj4KIC0tPiBGQUlMRUQhOiBFeHBlY3RlZCB2
YWx1ZSAnTm8gZXJyb3InLCBBY3R1YWwgdmFsdWUgJ2Vycm9yOiBSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogWE1MJzxicj4KIC0tPiBGQUlMRUQhOiA8YnI+CiA8L3R0Pjxicj4K
LTxhIG5hbWU9J2ZhaWx1cmU3NCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVy
X3dpbmRvdycgaHJlZj0nLi9qczFfNi9SZWdyZXNzL3JlZ3Jlc3MtMzA5MjQyLmpzJz5qczFfNi9S
ZWdyZXNzL3JlZ3Jlc3MtMzA5MjQyLmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KLSBbIDxhIGhyZWY9
JyNmYWlsdXJlNzMnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3NSc+
TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBd
PGJyPgorPGEgbmFtZT0nZmFpbHVyZTczJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0n
b3RoZXJfd2luZG93JyBocmVmPScuL2pzMV82L1JlZ3Jlc3MvcmVncmVzcy0zMDkyNDIuanMnPmpz
MV82L1JlZ3Jlc3MvcmVncmVzcy0zMDkyNDIuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgorIFsgPGEg
aHJlZj0nI2ZhaWx1cmU3Mic+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVy
ZTc0Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8
L2E+IF08YnI+CiA8dHQ+RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAzPGJyPgogVGVzdGNhc2Ug
dGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdh
czo8YnI+Ci1FeGNlcHRpb24sIGxpbmUgNzE6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvcjxicj4K
K0V4Y2VwdGlvbiwgbGluZSA3MTogPGJyPgogPC90dD48YnI+Ci08YSBuYW1lPSdmYWlsdXJlNzUn
PjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMx
XzYvUmVncmVzcy9yZWdyZXNzLTMxNDg4Ny5qcyc+anMxXzYvUmVncmVzcy9yZWdyZXNzLTMxNDg4
Ny5qczwvYT4gZmFpbGVkPC9iPiA8YnI+Ci0gWyA8YSBocmVmPScjZmFpbHVyZTc0Jz5QcmV2aW91
cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNzYnPk5leHQgRmFpbHVyZTwvYT4gfCA8
YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KKzxhIG5hbWU9J2ZhaWx1
cmU3NCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0n
Li9qczFfNi9SZWdyZXNzL3JlZ3Jlc3MtMzE0ODg3LmpzJz5qczFfNi9SZWdyZXNzL3JlZ3Jlc3Mt
MzE0ODg3LmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KKyBbIDxhIGhyZWY9JyNmYWlsdXJlNzMnPlBy
ZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3NSc+TmV4dCBGYWlsdXJlPC9h
PiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0PkV4cGVj
dGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWdu
YWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgotRXhjZXB0aW9uLCBs
aW5lIDQ3OiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3I8YnI+CitFeGNlcHRpb24sIGxpbmUgNDc6
IDxicj4KIDwvdHQ+PGJyPgotPGEgbmFtZT0nZmFpbHVyZTc2Jz48L2E+PGRkPjxiPlRlc3RjYXNl
IDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV82L1N0cmluZy9yZWdyZXNzLTMw
NjU5MS5qcyc+anMxXzYvU3RyaW5nL3JlZ3Jlc3MtMzA2NTkxLmpzPC9hPiBmYWlsZWQ8L2I+IDxh
IGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA2NTkx
JyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciAzMDY1OTE8L2E+PGJyPgotIFsgPGEg
aHJlZj0nI2ZhaWx1cmU3NSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVy
ZTc3Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8
L2E+IF08YnI+Cis8YSBuYW1lPSdmYWlsdXJlNzUnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFy
Z2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzYvU3RyaW5nL3JlZ3Jlc3MtMzA2NTkxLmpz
Jz5qczFfNi9TdHJpbmcvcmVncmVzcy0zMDY1OTEuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0n
aHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDY1OTEnIHRhcmdl
dD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDMwNjU5MTwvYT48YnI+CisgWyA8YSBocmVmPScj
ZmFpbHVyZTc0Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNzYnPk5l
eHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxi
cj4KIDx0dD5FeHBlY3RlZCBleGl0IGNvZGUgMCwgZ290IDM8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5h
dGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4K
IC0tPiBCVUdOVU1CRVI6IDMwNjU5MTxicj4KIC0tPiBTVEFUVVM6IFN0cmluZyBzdGF0aWMgbWV0
aG9kczxicj4KIC0tPiBTVEFUVVM6IFNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3No
b3dfYnVnLmNnaT9pZD0zMDQ4Mjg8YnI+Ci1FeGNlcHRpb24sIGxpbmUgNDk6IFR5cGVFcnJvcjog
VmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVzc2lvbiBTdHJpbmcuc3BsaXQpIGlzIG5v
dCBvYmplY3QuPGJyPgorRXhjZXB0aW9uLCBsaW5lIDQ5OiA8YnI+CiA8L3R0Pjxicj4KIDwvZGw+
CiBbIDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiB8IDxhIGhyZWY9JyNmYWls
X2RldGFpbCc+VG9wIG9mIEZhaWx1cmVzPC9hPiBdPGJyPgpAQCAtMTIwNiw5ICsxMTk1LDkgQEAg
RXhjZXB0aW9uLCBsaW5lIDQ5OiBUeXBlRXJyb3I6IFZhbHVlIHVuZAogPHByZT4KIDxhIG5hbWU9
J3JldGVzdF9saXN0Jz48L2E+CiA8aDI+UmV0ZXN0IExpc3Q8L2gyPjxicj4KLSMgUmV0ZXN0IExp
c3QsIGtqcywgZ2VuZXJhdGVkIFdlZCBKYW4gIDQgMTM6Mjc6MzQgMjAwNi4KKyMgUmV0ZXN0IExp
c3QsIGtqcywgZ2VuZXJhdGVkIE1vbiBGZWIgMjAgMDU6MTE6MDUgMjAwNi4KICMgT3JpZ2luYWwg
dGVzdCBiYXNlIHdhczogQWxsIHRlc3RzLgotIyAxMTI3IG9mIDExMzUgdGVzdChzKSB3ZXJlIGNv
bXBsZXRlZCwgNzYgZmFpbHVyZXMgcmVwb3J0ZWQuCisjIDExMjcgb2YgMTEzNSB0ZXN0KHMpIHdl
cmUgY29tcGxldGVkLCA3NSBmYWlsdXJlcyByZXBvcnRlZC4KIGVjbWEvR2xvYmFsT2JqZWN0LzE1
LjEuMi4yLTIuanMKIGVjbWEvTGV4aWNhbENvbnZlbnRpb25zLzcuNy4zLTEuanMKIGVjbWEvVHlw
ZUNvbnZlcnNpb24vOS4zLjEtMy5qcwpAQCAtMTI1NSw3ICsxMjQ0LDYgQEAganMxXzIvdmVyc2lv
bjEyMC9yZWdyZXNzLTk5NjYzLmpzCiBqczFfMy9TY3JpcHQvZnVuY3Rpb24tMDAxLW4uanMKIGpz
MV8zL1NjcmlwdC9zY3JpcHQtMDAxLmpzCiBqczFfMy9yZWdyZXNzL2Z1bmN0aW9uLTAwMS1uLmpz
Ci1qczFfNC9SZWdyZXNzL2Z1bmN0aW9uLTAwMy5qcwoganMxXzUvRXhjZXB0aW9ucy9jYXRjaGd1
YXJkLTAwMS5qcwoganMxXzUvRXhjZXB0aW9ucy9jYXRjaGd1YXJkLTAwMi5qcwoganMxXzUvRXhj
ZXB0aW9ucy9jYXRjaGd1YXJkLTAwMy5qcwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTI4OTkpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAw
Ni0wMi0yMCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUGF0Y2ggZnJvbSBN
YWtzIE9ybG92aWNoLCBiYXNlZCBvbiB3b3JrIGJ5IERhdmlkIEZhdXJlLCBoYW5kLWFwcGxpZWQg
YW5kIAorICAgICAgICBzaWduaWZpY2FudGx5IHJld29ya2VkIGJ5IG1lLgorICAgICAgICAKKyAg
ICAgICAgLSBQYXRjaDogZ2l2ZSBpbnRlcm5hbCBmdW5jdGlvbiBuYW1lcyAoS0pTIG1lcmdlKQor
ICAgICAgICBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTYy
NzkKKyAgICAgICAgCisgICAgICAgIFVwZGF0ZWQgdGVzdCByZXN1bHRzLCBub3cgc2hvd2luZyBj
b3JyZWN0IGZ1bmN0aW9uIHN0cmluZy4KKworICAgICAgICAqIGZhc3QvZG9tL3htbGh0dHByZXF1
ZXN0LWdldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9qcy9rZGUvZnVuY3Rpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvanMva2RlL2luYnVpbHRfZnVuY3Rpb25fdG9zdHJp
bmctZXhwZWN0ZWQudHh0OgorCiAyMDA2LTAyLTE4ICBNaXR6IFBldHRlbCAgPG9wZW5kYXJ3aW4u
b3JnQG1pdHpwZXR0ZWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3htbGh0dHByZXF1ZXN0LWdldC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20veG1saHR0cHJlcXVlc3QtZ2V0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTI4OTkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS94bWxodHRw
cmVxdWVzdC1nZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIsMjMg
QEAgY2xpcGJvYXJkRGF0YSA6ICd1bmRlZmluZWQnCiBjdXJyZW50VGFyZ2V0IDogJ251bGwnCiBk
YXRhVHJhbnNmZXIgOiAndW5kZWZpbmVkJwogZXZlbnRQaGFzZSA6ICcwJwotaW5pdEV2ZW50IDog
J1tmdW5jdGlvbl0nCi1wcmV2ZW50RGVmYXVsdCA6ICdbZnVuY3Rpb25dJworaW5pdEV2ZW50IDog
JworZnVuY3Rpb24gaW5pdEV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30KKycKK3ByZXZl
bnREZWZhdWx0IDogJworZnVuY3Rpb24gcHJldmVudERlZmF1bHQoKSB7CisgICAgW25hdGl2ZSBj
b2RlXQorfQorJwogcmV0dXJuVmFsdWUgOiAndHJ1ZScKIHNyY0VsZW1lbnQgOiAnbnVsbCcKLXN0
b3BQcm9wYWdhdGlvbiA6ICdbZnVuY3Rpb25dJworc3RvcFByb3BhZ2F0aW9uIDogJworZnVuY3Rp
b24gc3RvcFByb3BhZ2F0aW9uKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30KKycKIHRhcmdldCA6
ICdudWxsJwogdHlwZSA6ICdsb2FkJwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9p
bmJ1aWx0X2Z1bmN0aW9uX3Rvc3RyaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2pzL2tkZS9pbmJ1aWx0X2Z1bmN0aW9uX3Rvc3RyaW5nLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTI4OTkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9pbmJ1aWx0X2Z1
bmN0aW9uX3Rvc3RyaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMywxMzggKzMs
MTM4IEBAIEtERSBKUyBUZXN0CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotRkFJTCBT
dHJpcFNwYWNlcyhldmFsLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmV2YWwoKXtbbmF0
aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKHBhcnNl
SW50LnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnBhcnNlSW50KCl7W25hdGl2ZWNvZGVd
fS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhwYXJzZUZsb2F0LnRv
U3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnBhcnNlRmxvYXQoKXtbbmF0aXZlY29kZV19LiBX
YXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKGlzTmFOLnRvU3RyaW5nKCkp
IHNob3VsZCBiZSBmdW5jdGlvbmlzTmFOKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1
bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhpc0Zpbml0ZS50b1N0cmluZygpKSBzaG91bGQgYmUg
ZnVuY3Rpb25pc0Zpbml0ZSgpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikK
LUZBSUwgU3RyaXBTcGFjZXMoZXNjYXBlLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmVz
Y2FwZSgpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBT
cGFjZXModW5lc2NhcGUudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9udW5lc2NhcGUoKXtb
bmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9udG9T
dHJpbmcoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlw
U3BhY2VzKE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcudG9TdHJpbmcoKSkgc2hvdWxk
IGJlIGZ1bmN0aW9udG9Mb2NhbGVTdHJpbmcoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFs
RnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKE9iamVjdC5wcm90b3R5cGUudmFsdWVPZi50b1N0
cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb252YWx1ZU9mKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJ
bnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhPYmplY3QucHJvdG90eXBlLmhhc093
blByb3BlcnR5LnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmhhc093blByb3BlcnR5KCl7
W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhP
YmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0
aW9uaXNQcm90b3R5cGVPZigpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikK
LUZBSUwgU3RyaXBTcGFjZXMoT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS50
b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25wcm9wZXJ0eUlzRW51bWVyYWJsZSgpe1tuYXRp
dmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoRnVuY3Rp
b24ucHJvdG90eXBlLnRvU3RyaW5nLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnRvU3Ry
aW5nKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNw
YWNlcyhGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0
aW9uYXBwbHkoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0
cmlwU3BhY2VzKEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBm
dW5jdGlvbmNhbGwoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlM
IFN0cmlwU3BhY2VzKEFycmF5LnByb3RvdHlwZS50b1N0cmluZy50b1N0cmluZygpKSBzaG91bGQg
YmUgZnVuY3Rpb250b1N0cmluZygpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlv
bikKLUZBSUwgU3RyaXBTcGFjZXMoQXJyYXkucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLnRvU3Ry
aW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnRvTG9jYWxlU3RyaW5nKCl7W25hdGl2ZWNvZGVdfS4g
V2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhBcnJheS5wcm90b3R5cGUu
Y29uY2F0LnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmNvbmNhdCgpe1tuYXRpdmVjb2Rl
XX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoQXJyYXkucHJvdG90
eXBlLmpvaW4udG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uam9pbigpe1tuYXRpdmVjb2Rl
XX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoQXJyYXkucHJvdG90
eXBlLnBvcC50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25wb3AoKXtbbmF0aXZlY29kZV19
LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKEFycmF5LnByb3RvdHlw
ZS5wdXNoLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnB1c2goKXtbbmF0aXZlY29kZV19
LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKEFycmF5LnByb3RvdHlw
ZS5yZXZlcnNlLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnJldmVyc2UoKXtbbmF0aXZl
Y29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKEFycmF5LnBy
b3RvdHlwZS5zaGlmdC50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25zaGlmdCgpe1tuYXRp
dmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoQXJyYXku
cHJvdG90eXBlLnNsaWNlLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnNsaWNlKCl7W25h
dGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhBcnJh
eS5wcm90b3R5cGUuc29ydC50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25zb3J0KCl7W25h
dGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhBcnJh
eS5wcm90b3R5cGUuc3BsaWNlLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnNwbGljZSgp
e1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMo
QXJyYXkucHJvdG90eXBlLnVuc2hpZnQudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9udW5z
aGlmdCgpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBT
cGFjZXMoU3RyaW5nLnByb3RvdHlwZS50b1N0cmluZy50b1N0cmluZygpKSBzaG91bGQgYmUgZnVu
Y3Rpb250b1N0cmluZygpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZB
SUwgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS52YWx1ZU9mLnRvU3RyaW5nKCkpIHNob3Vs
ZCBiZSBmdW5jdGlvbnZhbHVlT2YoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rp
b24pCi1GQUlMIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuY2hhckF0LnRvU3RyaW5nKCkp
IHNob3VsZCBiZSBmdW5jdGlvbmNoYXJBdCgpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxG
dW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5jaGFyQ29kZUF0LnRv
U3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmNoYXJDb2RlQXQoKXtbbmF0aXZlY29kZV19LiBX
YXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUu
Y29uY2F0LnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmNvbmNhdCgpe1tuYXRpdmVjb2Rl
XX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3Rv
dHlwZS5pbmRleE9mLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmluZGV4T2YoKXtbbmF0
aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKFN0cmlu
Zy5wcm90b3R5cGUubGFzdEluZGV4T2YudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9ubGFz
dEluZGV4T2YoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0
cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUubWF0Y2gudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1
bmN0aW9ubWF0Y2goKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlM
IFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUucmVwbGFjZS50b1N0cmluZygpKSBzaG91bGQg
YmUgZnVuY3Rpb25yZXBsYWNlKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9u
KQotRkFJTCBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLnNlYXJjaC50b1N0cmluZygpKSBz
aG91bGQgYmUgZnVuY3Rpb25zZWFyY2goKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVu
Y3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuc2xpY2UudG9TdHJpbmco
KSkgc2hvdWxkIGJlIGZ1bmN0aW9uc2xpY2UoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFs
RnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuc3BsaXQudG9TdHJp
bmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uc3BsaXQoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVy
bmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuc3Vic3RyLnRv
U3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnN1YnN0cigpe1tuYXRpdmVjb2RlXX0uIFdhcyAo
SW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5zdWJz
dHJpbmcudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uc3Vic3RyaW5nKCl7W25hdGl2ZWNv
ZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhTdHJpbmcucHJv
dG90eXBlLnRvTG93ZXJDYXNlLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnRvTG93ZXJD
YXNlKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNw
YWNlcyhTdHJpbmcucHJvdG90eXBlLnRvVXBwZXJDYXNlLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBm
dW5jdGlvbnRvVXBwZXJDYXNlKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9u
KQotRkFJTCBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLmJpZy50b1N0cmluZygpKSBzaG91
bGQgYmUgZnVuY3Rpb25iaWcoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24p
Ci1GQUlMIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuc21hbGwudG9TdHJpbmcoKSkgc2hv
dWxkIGJlIGZ1bmN0aW9uc21hbGwoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rp
b24pCi1GQUlMIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuYmxpbmsudG9TdHJpbmcoKSkg
c2hvdWxkIGJlIGZ1bmN0aW9uYmxpbmsoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVu
Y3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuYm9sZC50b1N0cmluZygp
KSBzaG91bGQgYmUgZnVuY3Rpb25ib2xkKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1
bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLmZpeGVkLnRvU3RyaW5n
KCkpIHNob3VsZCBiZSBmdW5jdGlvbmZpeGVkKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5h
bEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLml0YWxpY3MudG9T
dHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uaXRhbGljcygpe1tuYXRpdmVjb2RlXX0uIFdhcyAo
SW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5zdHJp
a2UudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uc3RyaWtlKCl7W25hdGl2ZWNvZGVdfS4g
V2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBl
LnN1Yi50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25zdWIoKXtbbmF0aXZlY29kZV19LiBX
YXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUu
c3VwLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnN1cCgpe1tuYXRpdmVjb2RlXX0uIFdh
cyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5m
b250Y29sb3IudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uZm9udGNvbG9yKCl7W25hdGl2
ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhTdHJpbmcu
cHJvdG90eXBlLmZvbnRzaXplLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmZvbnRzaXpl
KCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNl
cyhTdHJpbmcucHJvdG90eXBlLmFuY2hvci50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25h
bmNob3IoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlw
U3BhY2VzKFN0cmluZy5wcm90b3R5cGUubGluay50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rp
b25saW5rKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJp
cFNwYWNlcyhCb29sZWFuLnByb3RvdHlwZS50b1N0cmluZy50b1N0cmluZygpKSBzaG91bGQgYmUg
ZnVuY3Rpb250b1N0cmluZygpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikK
LUZBSUwgU3RyaXBTcGFjZXMoQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi50b1N0cmluZygpKSBz
aG91bGQgYmUgZnVuY3Rpb252YWx1ZU9mKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1
bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhOdW1iZXIucHJvdG90eXBlLnRvU3RyaW5nLnRvU3Ry
aW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnRvU3RyaW5nKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJ
bnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhOdW1iZXIucHJvdG90eXBlLnRvTG9j
YWxlU3RyaW5nLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnRvTG9jYWxlU3RyaW5nKCl7
W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhO
dW1iZXIucHJvdG90eXBlLnZhbHVlT2YudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9udmFs
dWVPZigpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBT
cGFjZXMoTnVtYmVyLnByb3RvdHlwZS50b0ZpeGVkLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5j
dGlvbnRvRml4ZWQoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlM
IFN0cmlwU3BhY2VzKE51bWJlci5wcm90b3R5cGUudG9FeHBvbmVudGlhbC50b1N0cmluZygpKSBz
aG91bGQgYmUgZnVuY3Rpb250b0V4cG9uZW50aWFsKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRl
cm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhOdW1iZXIucHJvdG90eXBlLnRvUHJlY2lz
aW9uLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnRvUHJlY2lzaW9uKCl7W25hdGl2ZWNv
ZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhNYXRoLmFicy50
b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25hYnMoKXtbbmF0aXZlY29kZV19LiBXYXMgKElu
dGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKE1hdGguYWNvcy50b1N0cmluZygpKSBz
aG91bGQgYmUgZnVuY3Rpb25hY29zKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0
aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhNYXRoLmFzaW4udG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1
bmN0aW9uYXNpbigpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwg
U3RyaXBTcGFjZXMoTWF0aC5hdGFuLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmF0YW4o
KXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2Vz
KE1hdGguYXRhbjIudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uYXRhbjIoKXtbbmF0aXZl
Y29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKE1hdGguY2Vp
bC50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25jZWlsKCl7W25hdGl2ZWNvZGVdfS4gV2Fz
IChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhNYXRoLmNvcy50b1N0cmluZygp
KSBzaG91bGQgYmUgZnVuY3Rpb25jb3MoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVu
Y3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKE1hdGguZXhwLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBm
dW5jdGlvbmV4cCgpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwg
U3RyaXBTcGFjZXMoTWF0aC5mbG9vci50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25mbG9v
cigpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFj
ZXMoTWF0aC5sb2cudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9ubG9nKCl7W25hdGl2ZWNv
ZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhNYXRoLm1heC50
b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25tYXgoKXtbbmF0aXZlY29kZV19LiBXYXMgKElu
dGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKE1hdGgubWluLnRvU3RyaW5nKCkpIHNo
b3VsZCBiZSBmdW5jdGlvbm1pbigpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlv
bikKLUZBSUwgU3RyaXBTcGFjZXMoTWF0aC5wb3cudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0
aW9ucG93KCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJp
cFNwYWNlcyhNYXRoLnJhbmRvbS50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25yYW5kb20o
KXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2Vz
KE1hdGgucm91bmQudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9ucm91bmQoKXtbbmF0aXZl
Y29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKE1hdGguc2lu
LnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnNpbigpe1tuYXRpdmVjb2RlXX0uIFdhcyAo
SW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoTWF0aC5zcXJ0LnRvU3RyaW5nKCkp
IHNob3VsZCBiZSBmdW5jdGlvbnNxcnQoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVu
Y3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKE1hdGgudGFuLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBm
dW5jdGlvbnRhbigpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwg
U3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcudG9TdHJpbmcoKSkgc2hvdWxkIGJl
IGZ1bmN0aW9udG9TdHJpbmcoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24p
Ci1GQUlMIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLnRvU3RyaW5nKCkp
IHNob3VsZCBiZSBmdW5jdGlvbnRvVVRDU3RyaW5nKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRl
cm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS50b0RhdGVTdHJp
bmcudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9udG9EYXRlU3RyaW5nKCl7W25hdGl2ZWNv
ZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3Rv
dHlwZS50b1RpbWVTdHJpbmcudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9udG9UaW1lU3Ry
aW5nKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNw
YWNlcyhEYXRlLnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy50b1N0cmluZygpKSBzaG91bGQgYmUg
ZnVuY3Rpb250b0xvY2FsZVN0cmluZygpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5j
dGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUudG9Mb2NhbGVEYXRlU3RyaW5n
LnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnRvTG9jYWxlRGF0ZVN0cmluZygpe1tuYXRp
dmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoRGF0ZS5w
cm90b3R5cGUudG9Mb2NhbGVUaW1lU3RyaW5nLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlv
bnRvTG9jYWxlVGltZVN0cmluZygpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlv
bikKLUZBSUwgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUudmFsdWVPZi50b1N0cmluZygpKSBz
aG91bGQgYmUgZnVuY3Rpb252YWx1ZU9mKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1
bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5nZXRUaW1lLnRvU3RyaW5n
KCkpIHNob3VsZCBiZSBmdW5jdGlvbmdldFRpbWUoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVy
bmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLmdldEZ1bGxZZWFy
LnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmdldEZ1bGxZZWFyKCl7W25hdGl2ZWNvZGVd
fS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlw
ZS5nZXRVVENGdWxsWWVhci50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25nZXRVVENGdWxs
WWVhcigpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBT
cGFjZXMoRGF0ZS5wcm90b3R5cGUudG9HTVRTdHJpbmcudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1
bmN0aW9udG9HTVRTdHJpbmcoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24p
Ci1GQUlMIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLmdldE1vbnRoLnRvU3RyaW5nKCkpIHNo
b3VsZCBiZSBmdW5jdGlvbmdldE1vbnRoKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1
bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5nZXRVVENNb250aC50b1N0
cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25nZXRVVENNb250aCgpe1tuYXRpdmVjb2RlXX0uIFdh
cyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUuZ2V0
RGF0ZS50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25nZXREYXRlKCl7W25hdGl2ZWNvZGVd
fS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlw
ZS5nZXRVVENEYXRlLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmdldFVUQ0RhdGUoKXtb
bmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKERh
dGUucHJvdG90eXBlLmdldERheS50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25nZXREYXko
KXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2Vz
KERhdGUucHJvdG90eXBlLmdldFVUQ0RheS50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25n
ZXRVVENEYXkoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0
cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLmdldEhvdXJzLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBm
dW5jdGlvbmdldEhvdXJzKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQot
RkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5nZXRVVENIb3Vycy50b1N0cmluZygpKSBz
aG91bGQgYmUgZnVuY3Rpb25nZXRVVENIb3Vycygpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJu
YWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUuZ2V0TWludXRlcy50
b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25nZXRNaW51dGVzKCl7W25hdGl2ZWNvZGVdfS4g
V2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5n
ZXRVVENNaW51dGVzLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbmdldFVUQ01pbnV0ZXMo
KXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2Vz
KERhdGUucHJvdG90eXBlLmdldFNlY29uZHMudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9u
Z2V0U2Vjb25kcygpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwg
U3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUuZ2V0VVRDU2Vjb25kcy50b1N0cmluZygpKSBzaG91
bGQgYmUgZnVuY3Rpb25nZXRVVENTZWNvbmRzKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5h
bEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5nZXRNaWxsaXNlY29u
ZHMudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uZ2V0TWlsbGlzZWNvbmRzKCl7W25hdGl2
ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnBy
b3RvdHlwZS5nZXRVVENNaWxsaXNlY29uZHMudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9u
Z2V0VVRDTWlsbGlzZWNvbmRzKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9u
KQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5nZXRUaW1lem9uZU9mZnNldC50b1N0
cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25nZXRUaW1lem9uZU9mZnNldCgpe1tuYXRpdmVjb2Rl
XX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5
cGUuc2V0VGltZS50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25zZXRUaW1lKCl7W25hdGl2
ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnBy
b3RvdHlwZS5zZXRNaWxsaXNlY29uZHMudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uc2V0
TWlsbGlzZWNvbmRzKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJ
TCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXRVVENNaWxsaXNlY29uZHMudG9TdHJpbmco
KSkgc2hvdWxkIGJlIGZ1bmN0aW9uc2V0VVRDTWlsbGlzZWNvbmRzKCl7W25hdGl2ZWNvZGVdfS4g
V2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5z
ZXRTZWNvbmRzLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnNldFNlY29uZHMoKXtbbmF0
aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKERhdGUu
cHJvdG90eXBlLnNldFVUQ1NlY29uZHMudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uc2V0
VVRDU2Vjb25kcygpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwg
U3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUuc2V0TWludXRlcy50b1N0cmluZygpKSBzaG91bGQg
YmUgZnVuY3Rpb25zZXRNaW51dGVzKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0
aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXRVVENNaW51dGVzLnRvU3Ry
aW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnNldFVUQ01pbnV0ZXMoKXtbbmF0aXZlY29kZV19LiBX
YXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnNl
dEhvdXJzLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnNldEhvdXJzKCl7W25hdGl2ZWNv
ZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3Rv
dHlwZS5zZXRVVENIb3Vycy50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25zZXRVVENIb3Vy
cygpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFj
ZXMoRGF0ZS5wcm90b3R5cGUuc2V0RGF0ZS50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25z
ZXREYXRlKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJp
cFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXRVVENEYXRlLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBm
dW5jdGlvbnNldFVUQ0RhdGUoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24p
Ci1GQUlMIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnNldE1vbnRoLnRvU3RyaW5nKCkpIHNo
b3VsZCBiZSBmdW5jdGlvbnNldE1vbnRoKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1
bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXRVVENNb250aC50b1N0
cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25zZXRVVENNb250aCgpe1tuYXRpdmVjb2RlXX0uIFdh
cyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUuc2V0
RnVsbFllYXIudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9uc2V0RnVsbFllYXIoKXtbbmF0
aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKERhdGUu
cHJvdG90eXBlLnNldFVUQ0Z1bGxZZWFyLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnNl
dFVUQ0Z1bGxZZWFyKCl7W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJ
TCBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXRZZWFyLnRvU3RyaW5nKCkpIHNob3VsZCBi
ZSBmdW5jdGlvbnNldFllYXIoKXtbbmF0aXZlY29kZV19LiBXYXMgKEludGVybmFsRnVuY3Rpb24p
Ci1GQUlMIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLmdldFllYXIudG9TdHJpbmcoKSkgc2hv
dWxkIGJlIGZ1bmN0aW9uZ2V0WWVhcigpe1tuYXRpdmVjb2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5j
dGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUudG9HTVRTdHJpbmcudG9TdHJp
bmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9udG9HTVRTdHJpbmcoKXtbbmF0aXZlY29kZV19LiBXYXMg
KEludGVybmFsRnVuY3Rpb24pCi1GQUlMIFN0cmlwU3BhY2VzKFJlZ0V4cC5wcm90b3R5cGUuZXhl
Yy50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb25leGVjKCl7W25hdGl2ZWNvZGVdfS4gV2Fz
IChJbnRlcm5hbEZ1bmN0aW9uKQotRkFJTCBTdHJpcFNwYWNlcyhSZWdFeHAucHJvdG90eXBlLnRl
c3QudG9TdHJpbmcoKSkgc2hvdWxkIGJlIGZ1bmN0aW9udGVzdCgpe1tuYXRpdmVjb2RlXX0uIFdh
cyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoUmVnRXhwLnByb3RvdHlwZS50
b1N0cmluZy50b1N0cmluZygpKSBzaG91bGQgYmUgZnVuY3Rpb250b1N0cmluZygpe1tuYXRpdmVj
b2RlXX0uIFdhcyAoSW50ZXJuYWxGdW5jdGlvbikKLUZBSUwgU3RyaXBTcGFjZXMoRXJyb3IucHJv
dG90eXBlLnRvU3RyaW5nLnRvU3RyaW5nKCkpIHNob3VsZCBiZSBmdW5jdGlvbnRvU3RyaW5nKCl7
W25hdGl2ZWNvZGVdfS4gV2FzIChJbnRlcm5hbEZ1bmN0aW9uKQorUEFTUyBTdHJpcFNwYWNlcyhl
dmFsLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmV2YWwoKXtbbmF0aXZlY29kZV19IgorUEFTUyBT
dHJpcFNwYWNlcyhwYXJzZUludC50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25wYXJzZUludCgpe1tu
YXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKHBhcnNlRmxvYXQudG9TdHJpbmcoKSkgaXMg
ImZ1bmN0aW9ucGFyc2VGbG9hdCgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKGlz
TmFOLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmlzTmFOKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1Mg
U3RyaXBTcGFjZXMoaXNGaW5pdGUudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uaXNGaW5pdGUoKXtb
bmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhlc2NhcGUudG9TdHJpbmcoKSkgaXMgImZ1
bmN0aW9uZXNjYXBlKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXModW5lc2NhcGUu
dG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9udW5lc2NhcGUoKXtbbmF0aXZlY29kZV19IgorUEFTUyBT
dHJpcFNwYWNlcyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLnRvU3RyaW5nKCkpIGlzICJmdW5j
dGlvbnRvU3RyaW5nKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoT2JqZWN0LnBy
b3RvdHlwZS50b0xvY2FsZVN0cmluZy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250b0xvY2FsZVN0
cmluZygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKE9iamVjdC5wcm90b3R5cGUu
dmFsdWVPZi50b1N0cmluZygpKSBpcyAiZnVuY3Rpb252YWx1ZU9mKCl7W25hdGl2ZWNvZGVdfSIK
K1BBU1MgU3RyaXBTcGFjZXMoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS50b1N0cmlu
ZygpKSBpcyAiZnVuY3Rpb25oYXNPd25Qcm9wZXJ0eSgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0
cmlwU3BhY2VzKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi50b1N0cmluZygpKSBpcyAi
ZnVuY3Rpb25pc1Byb3RvdHlwZU9mKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMo
T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS50b1N0cmluZygpKSBpcyAiZnVu
Y3Rpb25wcm9wZXJ0eUlzRW51bWVyYWJsZSgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3Bh
Y2VzKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250
b1N0cmluZygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKEZ1bmN0aW9uLnByb3Rv
dHlwZS5hcHBseS50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25hcHBseSgpe1tuYXRpdmVjb2RlXX0i
CitQQVNTIFN0cmlwU3BhY2VzKEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLnRvU3RyaW5nKCkpIGlz
ICJmdW5jdGlvbmNhbGwoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhBcnJheS5w
cm90b3R5cGUudG9TdHJpbmcudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9udG9TdHJpbmcoKXtbbmF0
aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhBcnJheS5wcm90b3R5cGUudG9Mb2NhbGVTdHJp
bmcudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9udG9Mb2NhbGVTdHJpbmcoKXtbbmF0aXZlY29kZV19
IgorUEFTUyBTdHJpcFNwYWNlcyhBcnJheS5wcm90b3R5cGUuY29uY2F0LnRvU3RyaW5nKCkpIGlz
ICJmdW5jdGlvbmNvbmNhdCgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKEFycmF5
LnByb3RvdHlwZS5qb2luLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmpvaW4oKXtbbmF0aXZlY29k
ZV19IgorUEFTUyBTdHJpcFNwYWNlcyhBcnJheS5wcm90b3R5cGUucG9wLnRvU3RyaW5nKCkpIGlz
ICJmdW5jdGlvbnBvcCgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKEFycmF5LnBy
b3RvdHlwZS5wdXNoLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnB1c2goKXtbbmF0aXZlY29kZV19
IgorUEFTUyBTdHJpcFNwYWNlcyhBcnJheS5wcm90b3R5cGUucmV2ZXJzZS50b1N0cmluZygpKSBp
cyAiZnVuY3Rpb25yZXZlcnNlKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoQXJy
YXkucHJvdG90eXBlLnNoaWZ0LnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnNoaWZ0KCl7W25hdGl2
ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoQXJyYXkucHJvdG90eXBlLnNsaWNlLnRvU3RyaW5n
KCkpIGlzICJmdW5jdGlvbnNsaWNlKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMo
QXJyYXkucHJvdG90eXBlLnNvcnQudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uc29ydCgpe1tuYXRp
dmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKEFycmF5LnByb3RvdHlwZS5zcGxpY2UudG9TdHJp
bmcoKSkgaXMgImZ1bmN0aW9uc3BsaWNlKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFj
ZXMoQXJyYXkucHJvdG90eXBlLnVuc2hpZnQudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9udW5zaGlm
dCgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUudG9T
dHJpbmcudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9udG9TdHJpbmcoKXtbbmF0aXZlY29kZV19Igor
UEFTUyBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLnZhbHVlT2YudG9TdHJpbmcoKSkgaXMg
ImZ1bmN0aW9udmFsdWVPZigpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKFN0cmlu
Zy5wcm90b3R5cGUuY2hhckF0LnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmNoYXJBdCgpe1tuYXRp
dmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuY2hhckNvZGVBdC50
b1N0cmluZygpKSBpcyAiZnVuY3Rpb25jaGFyQ29kZUF0KCl7W25hdGl2ZWNvZGVdfSIKK1BBU1Mg
U3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5jb25jYXQudG9TdHJpbmcoKSkgaXMgImZ1bmN0
aW9uY29uY2F0KCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3Rv
dHlwZS5pbmRleE9mLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmluZGV4T2YoKXtbbmF0aXZlY29k
ZV19IgorUEFTUyBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLmxhc3RJbmRleE9mLnRvU3Ry
aW5nKCkpIGlzICJmdW5jdGlvbmxhc3RJbmRleE9mKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3Ry
aXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5tYXRjaC50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25t
YXRjaCgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUu
cmVwbGFjZS50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25yZXBsYWNlKCl7W25hdGl2ZWNvZGVdfSIK
K1BBU1MgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5zZWFyY2gudG9TdHJpbmcoKSkgaXMg
ImZ1bmN0aW9uc2VhcmNoKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoU3RyaW5n
LnByb3RvdHlwZS5zbGljZS50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25zbGljZSgpe1tuYXRpdmVj
b2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuc3BsaXQudG9TdHJpbmco
KSkgaXMgImZ1bmN0aW9uc3BsaXQoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhT
dHJpbmcucHJvdG90eXBlLnN1YnN0ci50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25zdWJzdHIoKXtb
bmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLnN1YnN0cmlu
Zy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25zdWJzdHJpbmcoKXtbbmF0aXZlY29kZV19IgorUEFT
UyBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLnRvTG93ZXJDYXNlLnRvU3RyaW5nKCkpIGlz
ICJmdW5jdGlvbnRvTG93ZXJDYXNlKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMo
U3RyaW5nLnByb3RvdHlwZS50b1VwcGVyQ2FzZS50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250b1Vw
cGVyQ2FzZSgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5
cGUuYmlnLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmJpZygpe1tuYXRpdmVjb2RlXX0iCitQQVNT
IFN0cmlwU3BhY2VzKFN0cmluZy5wcm90b3R5cGUuc21hbGwudG9TdHJpbmcoKSkgaXMgImZ1bmN0
aW9uc21hbGwoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90
eXBlLmJsaW5rLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmJsaW5rKCl7W25hdGl2ZWNvZGVdfSIK
K1BBU1MgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5ib2xkLnRvU3RyaW5nKCkpIGlzICJm
dW5jdGlvbmJvbGQoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhTdHJpbmcucHJv
dG90eXBlLmZpeGVkLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmZpeGVkKCl7W25hdGl2ZWNvZGVd
fSIKK1BBU1MgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5pdGFsaWNzLnRvU3RyaW5nKCkp
IGlzICJmdW5jdGlvbml0YWxpY3MoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhT
dHJpbmcucHJvdG90eXBlLnN0cmlrZS50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25zdHJpa2UoKXtb
bmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLnN1Yi50b1N0
cmluZygpKSBpcyAiZnVuY3Rpb25zdWIoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNl
cyhTdHJpbmcucHJvdG90eXBlLnN1cC50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25zdXAoKXtbbmF0
aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLmZvbnRjb2xvci50
b1N0cmluZygpKSBpcyAiZnVuY3Rpb25mb250Y29sb3IoKXtbbmF0aXZlY29kZV19IgorUEFTUyBT
dHJpcFNwYWNlcyhTdHJpbmcucHJvdG90eXBlLmZvbnRzaXplLnRvU3RyaW5nKCkpIGlzICJmdW5j
dGlvbmZvbnRzaXplKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoU3RyaW5nLnBy
b3RvdHlwZS5hbmNob3IudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uYW5jaG9yKCl7W25hdGl2ZWNv
ZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoU3RyaW5nLnByb3RvdHlwZS5saW5rLnRvU3RyaW5nKCkp
IGlzICJmdW5jdGlvbmxpbmsoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhCb29s
ZWFuLnByb3RvdHlwZS50b1N0cmluZy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250b1N0cmluZygp
e1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKEJvb2xlYW4ucHJvdG90eXBlLnZhbHVl
T2YudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9udmFsdWVPZigpe1tuYXRpdmVjb2RlXX0iCitQQVNT
IFN0cmlwU3BhY2VzKE51bWJlci5wcm90b3R5cGUudG9TdHJpbmcudG9TdHJpbmcoKSkgaXMgImZ1
bmN0aW9udG9TdHJpbmcoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhOdW1iZXIu
cHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnRvTG9jYWxl
U3RyaW5nKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoTnVtYmVyLnByb3RvdHlw
ZS52YWx1ZU9mLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnZhbHVlT2YoKXtbbmF0aXZlY29kZV19
IgorUEFTUyBTdHJpcFNwYWNlcyhOdW1iZXIucHJvdG90eXBlLnRvRml4ZWQudG9TdHJpbmcoKSkg
aXMgImZ1bmN0aW9udG9GaXhlZCgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKE51
bWJlci5wcm90b3R5cGUudG9FeHBvbmVudGlhbC50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250b0V4
cG9uZW50aWFsKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoTnVtYmVyLnByb3Rv
dHlwZS50b1ByZWNpc2lvbi50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250b1ByZWNpc2lvbigpe1tu
YXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKE1hdGguYWJzLnRvU3RyaW5nKCkpIGlzICJm
dW5jdGlvbmFicygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKE1hdGguYWNvcy50
b1N0cmluZygpKSBpcyAiZnVuY3Rpb25hY29zKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBT
cGFjZXMoTWF0aC5hc2luLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmFzaW4oKXtbbmF0aXZlY29k
ZV19IgorUEFTUyBTdHJpcFNwYWNlcyhNYXRoLmF0YW4udG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9u
YXRhbigpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKE1hdGguYXRhbjIudG9TdHJp
bmcoKSkgaXMgImZ1bmN0aW9uYXRhbjIoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNl
cyhNYXRoLmNlaWwudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uY2VpbCgpe1tuYXRpdmVjb2RlXX0i
CitQQVNTIFN0cmlwU3BhY2VzKE1hdGguY29zLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbmNvcygp
e1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKE1hdGguZXhwLnRvU3RyaW5nKCkpIGlz
ICJmdW5jdGlvbmV4cCgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKE1hdGguZmxv
b3IudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZmxvb3IoKXtbbmF0aXZlY29kZV19IgorUEFTUyBT
dHJpcFNwYWNlcyhNYXRoLmxvZy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25sb2coKXtbbmF0aXZl
Y29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhNYXRoLm1heC50b1N0cmluZygpKSBpcyAiZnVuY3Rp
b25tYXgoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhNYXRoLm1pbi50b1N0cmlu
ZygpKSBpcyAiZnVuY3Rpb25taW4oKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhN
YXRoLnBvdy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25wb3coKXtbbmF0aXZlY29kZV19IgorUEFT
UyBTdHJpcFNwYWNlcyhNYXRoLnJhbmRvbS50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25yYW5kb20o
KXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhNYXRoLnJvdW5kLnRvU3RyaW5nKCkp
IGlzICJmdW5jdGlvbnJvdW5kKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoTWF0
aC5zaW4udG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uc2luKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1Mg
U3RyaXBTcGFjZXMoTWF0aC5zcXJ0LnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnNxcnQoKXtbbmF0
aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhNYXRoLnRhbi50b1N0cmluZygpKSBpcyAiZnVu
Y3Rpb250YW4oKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlw
ZS50b1N0cmluZy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250b1N0cmluZygpe1tuYXRpdmVjb2Rl
XX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLnRvU3RyaW5n
KCkpIGlzICJmdW5jdGlvbnRvVVRDU3RyaW5nKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBT
cGFjZXMoRGF0ZS5wcm90b3R5cGUudG9EYXRlU3RyaW5nLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlv
bnRvRGF0ZVN0cmluZygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJv
dG90eXBlLnRvVGltZVN0cmluZy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250b1RpbWVTdHJpbmco
KXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS50b0xvY2Fs
ZVN0cmluZy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250b0xvY2FsZVN0cmluZygpe1tuYXRpdmVj
b2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnRvTG9jYWxlRGF0ZVN0cmlu
Zy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb250b0xvY2FsZURhdGVTdHJpbmcoKXtbbmF0aXZlY29k
ZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS50b0xvY2FsZVRpbWVTdHJpbmcu
dG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9udG9Mb2NhbGVUaW1lU3RyaW5nKCl7W25hdGl2ZWNvZGVd
fSIKK1BBU1MgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUudmFsdWVPZi50b1N0cmluZygpKSBp
cyAiZnVuY3Rpb252YWx1ZU9mKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoRGF0
ZS5wcm90b3R5cGUuZ2V0VGltZS50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25nZXRUaW1lKCl7W25h
dGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUuZ2V0RnVsbFllYXIu
dG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0RnVsbFllYXIoKXtbbmF0aXZlY29kZV19IgorUEFT
UyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5nZXRVVENGdWxsWWVhci50b1N0cmluZygpKSBp
cyAiZnVuY3Rpb25nZXRVVENGdWxsWWVhcigpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3Bh
Y2VzKERhdGUucHJvdG90eXBlLnRvR01UU3RyaW5nLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnRv
R01UU3RyaW5nKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5
cGUuZ2V0TW9udGgudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0TW9udGgoKXtbbmF0aXZlY29k
ZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5nZXRVVENNb250aC50b1N0cmlu
ZygpKSBpcyAiZnVuY3Rpb25nZXRVVENNb250aCgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlw
U3BhY2VzKERhdGUucHJvdG90eXBlLmdldERhdGUudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0
RGF0ZSgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLmdl
dFVUQ0RhdGUudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0VVRDRGF0ZSgpe1tuYXRpdmVjb2Rl
XX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLmdldERheS50b1N0cmluZygpKSBp
cyAiZnVuY3Rpb25nZXREYXkoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRl
LnByb3RvdHlwZS5nZXRVVENEYXkudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0VVRDRGF5KCl7
W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUuZ2V0SG91cnMu
dG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0SG91cnMoKXtbbmF0aXZlY29kZV19IgorUEFTUyBT
dHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5nZXRVVENIb3Vycy50b1N0cmluZygpKSBpcyAiZnVu
Y3Rpb25nZXRVVENIb3Vycygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUu
cHJvdG90eXBlLmdldE1pbnV0ZXMudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0TWludXRlcygp
e1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLmdldFVUQ01p
bnV0ZXMudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0VVRDTWludXRlcygpe1tuYXRpdmVjb2Rl
XX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLmdldFNlY29uZHMudG9TdHJpbmco
KSkgaXMgImZ1bmN0aW9uZ2V0U2Vjb25kcygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3Bh
Y2VzKERhdGUucHJvdG90eXBlLmdldFVUQ1NlY29uZHMudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9u
Z2V0VVRDU2Vjb25kcygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJv
dG90eXBlLmdldE1pbGxpc2Vjb25kcy50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25nZXRNaWxsaXNl
Y29uZHMoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5n
ZXRVVENNaWxsaXNlY29uZHMudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0VVRDTWlsbGlzZWNv
bmRzKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUuZ2V0
VGltZXpvbmVPZmZzZXQudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0VGltZXpvbmVPZmZzZXQo
KXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXRUaW1l
LnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnNldFRpbWUoKXtbbmF0aXZlY29kZV19IgorUEFTUyBT
dHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXRNaWxsaXNlY29uZHMudG9TdHJpbmcoKSkgaXMg
ImZ1bmN0aW9uc2V0TWlsbGlzZWNvbmRzKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFj
ZXMoRGF0ZS5wcm90b3R5cGUuc2V0VVRDTWlsbGlzZWNvbmRzLnRvU3RyaW5nKCkpIGlzICJmdW5j
dGlvbnNldFVUQ01pbGxpc2Vjb25kcygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2Vz
KERhdGUucHJvdG90eXBlLnNldFNlY29uZHMudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uc2V0U2Vj
b25kcygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnNl
dFVUQ1NlY29uZHMudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uc2V0VVRDU2Vjb25kcygpe1tuYXRp
dmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnNldE1pbnV0ZXMudG9T
dHJpbmcoKSkgaXMgImZ1bmN0aW9uc2V0TWludXRlcygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0
cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnNldFVUQ01pbnV0ZXMudG9TdHJpbmcoKSkgaXMgImZ1
bmN0aW9uc2V0VVRDTWludXRlcygpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERh
dGUucHJvdG90eXBlLnNldEhvdXJzLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnNldEhvdXJzKCl7
W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoRGF0ZS5wcm90b3R5cGUuc2V0VVRDSG91
cnMudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uc2V0VVRDSG91cnMoKXtbbmF0aXZlY29kZV19Igor
UEFTUyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXREYXRlLnRvU3RyaW5nKCkpIGlzICJm
dW5jdGlvbnNldERhdGUoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRlLnBy
b3RvdHlwZS5zZXRVVENEYXRlLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnNldFVUQ0RhdGUoKXtb
bmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXRNb250aC50
b1N0cmluZygpKSBpcyAiZnVuY3Rpb25zZXRNb250aCgpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0
cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnNldFVUQ01vbnRoLnRvU3RyaW5nKCkpIGlzICJmdW5j
dGlvbnNldFVUQ01vbnRoKCl7W25hdGl2ZWNvZGVdfSIKK1BBU1MgU3RyaXBTcGFjZXMoRGF0ZS5w
cm90b3R5cGUuc2V0RnVsbFllYXIudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uc2V0RnVsbFllYXIo
KXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhEYXRlLnByb3RvdHlwZS5zZXRVVENG
dWxsWWVhci50b1N0cmluZygpKSBpcyAiZnVuY3Rpb25zZXRVVENGdWxsWWVhcigpe1tuYXRpdmVj
b2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnNldFllYXIudG9TdHJpbmco
KSkgaXMgImZ1bmN0aW9uc2V0WWVhcigpe1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2Vz
KERhdGUucHJvdG90eXBlLmdldFllYXIudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9uZ2V0WWVhcigp
e1tuYXRpdmVjb2RlXX0iCitQQVNTIFN0cmlwU3BhY2VzKERhdGUucHJvdG90eXBlLnRvR01UU3Ry
aW5nLnRvU3RyaW5nKCkpIGlzICJmdW5jdGlvbnRvR01UU3RyaW5nKCl7W25hdGl2ZWNvZGVdfSIK
K1BBU1MgU3RyaXBTcGFjZXMoUmVnRXhwLnByb3RvdHlwZS5leGVjLnRvU3RyaW5nKCkpIGlzICJm
dW5jdGlvbmV4ZWMoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhSZWdFeHAucHJv
dG90eXBlLnRlc3QudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9udGVzdCgpe1tuYXRpdmVjb2RlXX0i
CitQQVNTIFN0cmlwU3BhY2VzKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcudG9TdHJpbmcoKSkg
aXMgImZ1bmN0aW9udG9TdHJpbmcoKXtbbmF0aXZlY29kZV19IgorUEFTUyBTdHJpcFNwYWNlcyhF
cnJvci5wcm90b3R5cGUudG9TdHJpbmcudG9TdHJpbmcoKSkgaXMgImZ1bmN0aW9udG9TdHJpbmco
KXtbbmF0aXZlY29kZV19IgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9mdW5jdGlvbi1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvZnVuY3Rpb24tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxMjg5OSkKKysrIExheW91dFRlc3RzL2Zhc3QvanMva2RlL2Z1
bmN0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTEgKzMyLDcgQEAgUEFT
UyBhcnJbMF0gaXMgOTkKIFBBU1MgdHlwZW9mIG9yZ0Z1bmNDbG9uZSBpcyAnZnVuY3Rpb24nCiBQ
QVNTIG9yZ0Z1bmNDbG9uZSgnd29ybGQnKSBpcyAnSGVsbG8gd29ybGQnCiBQQVNTIGdyb3VwQ2xv
bmUoMSwgMikgaXMgOQotRkFJTCBTdHJpbmcoTWF0aC5zaW4pIHNob3VsZCBiZSAKLWZ1bmN0aW9u
IHNpbigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19Ci0uIFdhcyAoSW50ZXJuYWwgRnVuY3Rpb24p
CitQQVNTIFN0cmluZyhNYXRoLnNpbikgaXMgc2luU3RyCiBQQVNTIHNoYWRvdygpIGlzIDIKIFBB
U1MgbmVzdGVkcmV0IGlzICdvdXRlciBuZXN0JwogUEFTUyBub3RfbmVzdGVkcmV0IGlzICdnbG9i
YWwgbmVzdCcKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfaHRtbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9raHRtbC9lY21hL2tqc19odG1sLmNwcAkocmV2aXNpb24gMTI4OTkpCisr
KyBXZWJDb3JlL2todG1sL2VjbWEva2pzX2h0bWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw5
ICs4OSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBET006OkV2ZW50TmFtZXM7CiAKIG5hbWVzcGFjZSBL
SlMgewogCi1jbGFzcyBIVE1MRWxlbWVudEZ1bmN0aW9uIDogcHVibGljIERPTUZ1bmN0aW9uIHsK
K2NsYXNzIEhUTUxFbGVtZW50RnVuY3Rpb24gOiBwdWJsaWMgSGFzaEVudHJ5RnVuY3Rpb24gewog
cHVibGljOgotICBIVE1MRWxlbWVudEZ1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgaW50IGksIGlu
dCBsZW4pOworICBIVE1MRWxlbWVudEZ1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgaW50IGksIGlu
dCBsZW4sIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxB
c0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3Qm
YXJncyk7CiBwcml2YXRlOgogICBpbnQgaWQ7CkBAIC0yMjQ1LDggKzIyNDUsOSBAQCB2b2lkIEtK
Uzo6SFRNTEVsZW1lbnQ6OnB1c2hFdmVudEhhbmRsZXJTCiAgIHNjb3BlLnB1c2goc3RhdGljX2Nh
c3Q8SlNPYmplY3QgKj4oZ2V0RE9NTm9kZShleGVjLCBlbGVtZW50KSkpOwogfQogCi1IVE1MRWxl
bWVudEZ1bmN0aW9uOjpIVE1MRWxlbWVudEZ1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgaW50IGks
IGludCBsZW4pCi0gIDogRE9NRnVuY3Rpb24oKSwgaWQoaSkKK0hUTUxFbGVtZW50RnVuY3Rpb246
OkhUTUxFbGVtZW50RnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBpbnQgaSwgaW50IGxlbiwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSkKKyAgOiBIYXNoRW50cnlGdW5jdGlvbihleGVjLCBuYW1lKQor
ICAsIGlkKGkpCiB7CiAgIHB1dChleGVjLGxlbmd0aFByb3BlcnR5TmFtZSxqc051bWJlcihsZW4p
LERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0pOwogfQpJbmRleDogV2ViQ29yZS9raHRtbC9l
Y21hL2tqc19iaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9raHRtbC9lY21hL2tqc19i
aW5kaW5nLmgJKHJldmlzaW9uIDEyODk5KQorKysgV2ViQ29yZS9raHRtbC9lY21hL2tqc19iaW5k
aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDkgQEAKICNpZm5kZWYgS0pTX0JJTkRJ
TkdfSF8KICNkZWZpbmUgS0pTX0JJTkRJTkdfSF8KIAorI2luY2x1ZGUgPGtqcy9mdW5jdGlvbl9v
YmplY3QuaD4KICNpbmNsdWRlIDxranMvaW50ZXJwcmV0ZXIuaD4KKyNpbmNsdWRlIDxranMvaW50
ZXJuYWwuaD4KICNpbmNsdWRlIDxranMvbG9va3VwLmg+CiAKICNpZiBfX0FQUExFX18KQEAgLTQ4
LDE5ICs1MCw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmlu
ZyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0OwogICB9OwogCi0gIC8qKgotICAgKiBCYXNlIGNsYXNz
IGZvciBhbGwgZnVuY3Rpb25zIGluIHRoaXMgYmluZGluZy4KLSAgICovCi0gIGNsYXNzIERPTUZ1
bmN0aW9uIDogcHVibGljIEpTT2JqZWN0IHsKLSAgcHJvdGVjdGVkOgotICAgIERPTUZ1bmN0aW9u
KCkgOiBKU09iamVjdCgpIHt9Ci0gIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50
c0NhbGwoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIHRvQm9vbGVh
bihFeGVjU3RhdGUgKikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgSlNWYWx1
ZSAqdG9QcmltaXRpdmUoRXhlY1N0YXRlICpleGVjLCBKU1R5cGUpIGNvbnN0IHsgcmV0dXJuIGpz
U3RyaW5nKHRvU3RyaW5nKGV4ZWMpKTsgfQotICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhF
eGVjU3RhdGUgKikgY29uc3QgeyByZXR1cm4gVVN0cmluZygiW2Z1bmN0aW9uXSIpOyB9Ci0gIH07
Ci0KICAgY2xhc3MgRE9NTm9kZTsKIAogICAvKioKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjg5OSkKKysrIFdlYkNv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDYtMDItMjAg
IE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBmcm9tIE1ha3MgT3Jsb3ZpY2gsIGJh
c2VkIG9uIHdvcmsgYnkgRGF2aWQgRmF1cmUsIGhhbmQtYXBwbGllZCBhbmQgCisgICAgICAgIHNp
Z25pZmljYW50bHkgcmV3b3JrZWQgYnkgbWUuCisgICAgICAgIAorICAgICAgICAtIFBhdGNoOiBn
aXZlIGludGVybmFsIGZ1bmN0aW9uIG5hbWVzIChLSlMgbWVyZ2UpCisgICAgICAgIGh0dHA6Ly9i
dWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3OQorCisgICAgICAgICog
Rm9yd2FyZGluZ0hlYWRlcnMva2pzL2Z1bmN0aW9uX29iamVjdC5oOiBBZGRlZC4KKyAgICAgICAg
KiBraHRtbC9lY21hL2tqc19iaW5kaW5nLmg6CisgICAgICAgICoga2h0bWwvZWNtYS9ranNfaHRt
bC5jcHA6CisgICAgICAgIChLSlM6OkhUTUxFbGVtZW50RnVuY3Rpb246OkhUTUxFbGVtZW50RnVu
Y3Rpb24pOgorICAgICAgICAqIGt3cS9XZWJDb3JlU2NyaXB0RGVidWdnZXIubW06CisgICAgICAg
ICgtW1dlYkNvcmVTY3JpcHRDYWxsRnJhbWUgZnVuY3Rpb25OYW1lXSk6CisKIDIwMDYtMDItMTkg
IERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1h
Y2llai4KSW5kZXg6IFdlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMva2pzL2Z1bmN0aW9uX29iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMva2pzL2Z1bmN0aW9u
X29iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ranMv
ZnVuY3Rpb25fb2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKyNpbXBvcnQgPEph
dmFTY3JpcHRDb3JlL2Z1bmN0aW9uX29iamVjdC5oPgpJbmRleDogV2ViQ29yZS9rd3EvV2ViQ29y
ZVNjcmlwdERlYnVnZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3dxL1dlYkNvcmVTY3Jp
cHREZWJ1Z2dlci5tbQkocmV2aXNpb24gMTI4OTkpCisrKyBXZWJDb3JlL2t3cS9XZWJDb3JlU2Ny
aXB0RGVidWdnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4Nyw3ICsyODcsNyBAQCBjbGFzcyBX
ZWJDb3JlU2NyaXB0RGVidWdnZXJJbXAgOiBwdWJsaWMgCiAgICAgaWYgKGNvbnRleHQpIHsKICAg
ICAgICAgRnVuY3Rpb25JbXAgKmZ1bmMgPSBjb250ZXh0LT5mdW5jdGlvbigpOwogICAgICAgICBp
ZiAoZnVuYykgewotICAgICAgICAgICAgSWRlbnRpZmllciBmbiA9IGZ1bmMtPm5hbWUoKTsKKyAg
ICAgICAgICAgIElkZW50aWZpZXIgZm4gPSBmdW5jLT5mdW5jdGlvbk5hbWUoKTsKICAgICAgICAg
ICAgIHJldHVybiB0b05TU3RyaW5nKGZuLnVzdHJpbmcoKSk7CiAgICAgICAgIH0KICAgICB9Cg==
</data>
<flag name="review"
          id="1661"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>