<?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>69810</bug_id>
          
          <creation_ts>2011-10-10 18:55:43 -0700</creation_ts>
          <short_desc>Rename getOwnPropertySlot to getOwnPropertySlotVirtual</short_desc>
          <delta_ts>2011-10-15 13:09:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>67690</blocked>
    
    <blocked>69807</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>481386</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-10 18:55:43 -0700</bug_when>
    <thetext>The compiler gets confused when we try to put getOwnPropertySlot into the method table when there is both a virtual and static version of the method (but it doesn&apos;t get confused when there are two static methods with different types).  Therefore, we need to temporarily rename the virtual version of getOwnPropertySlot to getOwnPropertySlotVirtual.  This will avoid the conflict later on when we add getOwnPropertySlot to the MethodTable in ClassInfo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481403</commentid>
    <comment_count>1</comment_count>
      <attachid>110461</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-10 19:47:12 -0700</bug_when>
    <thetext>Created attachment 110461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481406</commentid>
    <comment_count>2</comment_count>
      <attachid>110464</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-10 19:56:24 -0700</bug_when>
    <thetext>Created attachment 110464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481410</commentid>
    <comment_count>3</comment_count>
      <attachid>110466</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-10 20:10:52 -0700</bug_when>
    <thetext>Created attachment 110466
Reset bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481716</commentid>
    <comment_count>4</comment_count>
      <attachid>110534</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-11 10:32:03 -0700</bug_when>
    <thetext>Created attachment 110534
Fix windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481901</commentid>
    <comment_count>5</comment_count>
      <attachid>110573</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-11 14:08:21 -0700</bug_when>
    <thetext>Created attachment 110573
Fix windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483290</commentid>
    <comment_count>6</comment_count>
      <attachid>110874</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-13 10:37:22 -0700</bug_when>
    <thetext>Created attachment 110874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484079</commentid>
    <comment_count>7</comment_count>
      <attachid>110874</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-14 11:14:41 -0700</bug_when>
    <thetext>Comment on attachment 110874
Patch

rs=me if it builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484125</commentid>
    <comment_count>8</comment_count>
      <attachid>111036</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-14 11:42:49 -0700</bug_when>
    <thetext>Created attachment 111036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484458</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-14 18:59:39 -0700</bug_when>
    <thetext>Committed r97537: &lt;http://trac.webkit.org/changeset/97537&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484625</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-10-15 13:09:23 -0700</bug_when>
    <thetext>This patch broke the Apple Windows build:

&lt;http://build.webkit.org/builders/Windows%20Release%20%28Build%29/builds/22163/steps/compile-webkit/logs/stdio&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110461</attachid>
            <date>2011-10-10 19:47:12 -0700</date>
            <delta_ts>2011-10-10 19:56:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69810-20111010194713.patch</filename>
            <type>text/plain</type>
            <size>141833</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcwNjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggNTcxMzM3YWViNjg5MzA5ODJhNzMxNThjNDJiNmNiMmU0
ODYxODhmNi4uMWViZTNhZDhlNDdhNjFmYWNhNjE3MDg5NWY2NGQ1OWE1NDVlYWU4OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE3OCw3ICsx
NzgsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05h
bWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAogICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAppbmRleCAyM2QxYThjMjg4MmY4ZGFkZTZhYTZkZWIzYjdiNmYxNTM4
NGRlYzkwLi5mN2NlZjg0MjhmOWIyODRlZTgyOTJjMTEzMzEwOGJmMzI5YTFlY2IwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaApAQCAtMTI0LDIwICsxMjQsMjcgQEAgVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmNsYXNzTmFtZSgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1ib29s
IEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KK2Jv
b2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CiAgICAgSlNDb250ZXh0UmVmIGN0
eCA9IHRvUmVmKGV4ZWMpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsK
KyAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYodGhpc09iamVjdCk7CiAgICAgUmVmUHRy
PE9wYXF1ZUpTU3RyaW5nPiBwcm9wZXJ0eU5hbWVSZWY7CiAgICAgCi0gICAgZm9yIChKU0NsYXNz
UmVmIGpzQ2xhc3MgPSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFy
ZW50Q2xhc3MpIHsKKyAgICBmb3IgKEpTQ2xhc3NSZWYganNDbGFzcyA9IHRoaXNPYmplY3QtPmNs
YXNzUmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNzLT5wYXJlbnRDbGFzcykgewogICAg
ICAgICAvLyBvcHRpb25hbCBvcHRpbWl6YXRpb24gdG8gYnlwYXNzIGdldFByb3BlcnR5IGluIGNh
c2VzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGtub3cgaWYgdGhlIHByb3BlcnR5IGV4aXN0cwogICAg
ICAgICBpZiAoSlNPYmplY3RIYXNQcm9wZXJ0eUNhbGxiYWNrIGhhc1Byb3BlcnR5ID0ganNDbGFz
cy0+aGFzUHJvcGVydHkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQogICAg
ICAgICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocHJv
cGVydHlOYW1lLnVzdHJpbmcoKSk7CiAgICAgICAgICAgICBBUElDYWxsYmFja1NoaW0gY2FsbGJh
Y2tTaGltKGV4ZWMpOwogICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KGN0eCwgdGhpc1JlZiwg
cHJvcGVydHlOYW1lUmVmLmdldCgpKSkgewotICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIGNhbGxiYWNrR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzT2JqZWN0LCBjYWxsYmFja0dldHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNh
bGxiYWNrIGdldFByb3BlcnR5ID0ganNDbGFzcy0+Z2V0UHJvcGVydHkpIHsKQEAgLTE2Miw3ICsx
NjksNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAgICAgICAgaWYgKE9w
YXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3Rh
dGljVmFsdWVzKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAoc3RhdGljVmFsdWVzLT5jb250YWlu
cyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBnZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgICAgIEpT
VmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0LT5nZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICBz
bG90LnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC0xNzIsMjAgKzE3OSwyMCBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAg
ICAgICAgaWYgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNGdW5jdGlvbnNUYWJsZSogc3RhdGljRnVuY3Rp
b25zID0ganNDbGFzcy0+c3RhdGljRnVuY3Rpb25zKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAo
c3RhdGljRnVuY3Rpb25zLT5jb250YWlucyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAg
ICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKTsKKyAg
ICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNGdW5jdGlvbkdl
dHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIHRl
bXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgUHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKGdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CisgICAgaWYgKGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBJZGVhbGx5IHdlIHNob3VsZCByZXR1
cm4gYW4gYWNjZXNzIGRlc2NyaXB0b3IsIGJ1dCByZXR1cm5pbmcgYSB2YWx1ZSBkZXNjcmlwdG9y
IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICghZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCkBAIC02MDIsNyArNjA5LDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZQogICAgIAog
ICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHkuCiAgICAgUHJvcGVy
dHlTbG90IHNsb3QyKHRoaXNPYmopOwotICAgIGlmICh0aGlzT2JqLT5QYXJlbnQ6OmdldE93blBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QyKSkKKyAgICBpZiAoUGFyZW50Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90MikpCiAg
ICAgICAgIHJldHVybiBzbG90Mi5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIAog
ICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iai0+Y2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCAzNjZlNWZlZDBhODMzZmM4MDdhMGNiOGJkODQxMzkwNjc1MmNhMzI3Li5iMTk1MzFk
NDFjNWY4MGJiNzFhODljNTlmMTg0MmY0ZDhmYjZjNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDEgQEAKKzIwMTEtMTAtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRv
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdmlydHVhbCB2ZXJzaW9uIG9mIGdldE93blBy
b3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGluIHByZXBh
cmF0aW9uIGZvciB3aGVuIHdlIGFkZCB0aGUgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCB0byB0
aGUgTWV0aG9kVGFibGUgCisgICAgICAgIGluIENsYXNzSW5mby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgZmV3IHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgZnVuY3Rpb25zIHdoZXJlIHRoZXkg
aGFkIGJlZW4gb3Zlcmxvb2tlZCAKKyAgICAgICAgYmVmb3JlIChlc3BlY2lhbGx5IGluIENvZGVH
ZW5lcmF0b3JKUy5wbSkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAg
ICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoSlNDOjo6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KToKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGlt
ZS9BcnJheUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAg
KiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmg6Cisg
ICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRl
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkVycm9yUHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBl
Lmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpK
U0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChK
U0M6OkpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU0Fy
cmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0JvdW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0J5dGVB
cnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93blByb3BlcnR5TmFt
ZXMpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6aGFzT3duUHJvcGVydHlGb3JXcml0ZSk6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6
OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SlNPTk9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OldhbGtlcjo6d2Fsayk6
CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAg
ICAgIChKU0M6OkpTT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9K
U09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6ZmFzdEdldE93blByb3BlcnR5U2xvdCk6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjpnZXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTU3RhdGljU2NvcGVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdHJpbmcuY3BwOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKiBydW50
aW1lL0xvb2t1cC5oOgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAoSlNDOjpnZXRTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAoSlNDOjpnZXRTdGF0
aWNWYWx1ZVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6Ok1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAq
IHJ1bnRpbWUvTWF0aE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6TnVtYmVy
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1l
L051bWJlclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJv
dG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL09i
amVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNo
ZXNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisKIDIwMTEtMTAtMTAgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI5NzA0NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
CmluZGV4IDhhMzA4ODRmMmJmMjQxYzU1YTY4MWY2NzZlZmMzN2JkN2JlYzZmNzguLjI5MGRlMWE5
MWEzMTMxMTNkMzI5MTMwNmY0MGNiZmIyMjI4MDI4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTQ4LDggKzE0OCw2IEBAIF9fWk4zSlNDMTJTbWFsbFN0
cmluZ3MxN2NyZWF0ZUVtcHR5U3RyaW5nRVBOU18xMkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDMTJT
bWFsbFN0cmluZ3MyN2NyZWF0ZVNpbmdsZUNoYXJhY3RlclN0cmluZ0VQTlNfMTJKU0dsb2JhbERh
dGFFaAogX19aTjNKU0MxMlN0cmluZ09iamVjdDE0ZGVsZXRlUHJvcGVydHlFUE5TXzlFeGVjU3Rh
dGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTRmaW5pc2hDcmVh
dGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzhKU1N0cmluZ0UKLV9fWk4zSlNDMTJTdHJpbmdP
YmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVSTlNfMTJQcm9wZXJ0eVNsb3RFCi1fX1pOM0pTQzEyU3RyaW5nT2JqZWN0MThnZXRPd25Qcm9w
ZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTJT
dHJpbmdPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJv
cGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzEyU3RyaW5nT2Jq
ZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50
aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDNw
dXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0
UHJvcGVydHlTbG90RQpAQCAtMTY3LDggKzE2NSw5IEBAIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVj
dDEzY2xlYXJSYXJlRGF0YUVQTlNfNkpTQ2VsbEUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEz
dmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90VmlzaXRvckUKIF9fWk4zSlNDMTRK
U0dsb2JhbE9iamVjdDE2YWRkU3RhdGljR2xvYmFsc0VQTlMwXzE4R2xvYmFsUHJvcGVydHlJbmZv
RWkKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFagotX19aTjNKU0MxNEpTR2xvYmFs
T2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MThnZXRPd25Q
cm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
Uk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MjRnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJv
cGVydHlEZXNjcmlwdG9yRQorX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MjVnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3Bl
cnR5U2xvdEUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RSAgCiBfX1pO
M0pTQzE0SlNHbG9iYWxPYmplY3Q0aW5pdEVQTlNfOEpTT2JqZWN0RQogX19aTjNKU0MxNEpTR2xv
YmFsT2JqZWN0NnNfaW5mb0UKQEAgLTI2MSw4ICsyNjAsOCBAQCBfX1pOM0pTQzZKU0NlbGwxNGRl
bGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M2
SlNDZWxsMTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzZKU0NlbGwx
NmdldENvbnN0cnVjdERhdGFFUk5TXzEzQ29uc3RydWN0RGF0YUUKIF9fWk4zSlNDNkpTQ2VsbDE4
Z2V0Q2FsbERhdGFWaXJ0dWFsRVJOU184Q2FsbERhdGFFCi1fX1pOM0pTQzZKU0NlbGwxOGdldE93
blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9w
ZXJ0eVNsb3RFCi1fX1pOM0pTQzZKU0NlbGwxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNT
dGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNKU0M2SlNDZWxsMjVnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3Bl
cnR5U2xvdEUKK19fWk4zSlNDNkpTQ2VsbDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNf
OUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M2SlNDZWxsM3B1dEVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0
eVNsb3RFCiBfX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUg
IAogX19aTjNKU0M2SlNDZWxsOWdldE9iamVjdEV2CkBAIC0yODEsNyArMjgwLDcgQEAgX19aTjNK
U0M3SlNBcnJheTEzdmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90VmlzaXRvckUK
IF9fWk4zSlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUUKIF9f
Wk4zSlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzdB
cmdMaXN0RQogX19aTjNKU0M3SlNBcnJheTE1c2V0U3ViY2xhc3NEYXRhRVB2Ci1fX1pOM0pTQzdK
U0FycmF5MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5
U2xvdEUKK19fWk4zSlNDN0pTQXJyYXkxOGdldE93blByb3BlcnR5U2xvdEVQTlNfNkpTQ2VsbEVQ
TlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M3SlNBcnJheTZzX2lu
Zm9FCiBfX1pOM0pTQzdKU0FycmF5OXNldExlbmd0aEVqCiBfX1pOM0pTQzdKU0FycmF5QzFFUk5T
XzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRQpAQCAtMzI0LDEyICszMjMsMTIgQEAgX19a
TjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJ
ZGVudGlmaWVyRU5TXzdKU1ZhbHUKIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRl
c0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVqYlJOU18xNVB1
dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNf
OUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFagogX19aTjNKU0M4SlNPYmplY3QxOGdldE93blByb3Bl
cnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQot
X19aTjNKU0M4SlNPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5T
XzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNF
UE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1v
ZGVFCiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlND
OEpTT2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5U2xvdEVQTlNf
MTZXcml0ZUJhcnJpZXJCYXNlSU5TXzdVbmtub3duRUVFCiBfX1pOM0pTQzhKU09iamVjdDIzYWxs
b2NhdGVQcm9wZXJ0eVN0b3JhZ2VFUk5TXzEySlNHbG9iYWxEYXRhRW1tCiBfX1pOM0pTQzhKU09i
amVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19fWk4zSlNDOEpTT2JqZWN0MjVnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RF
CiBfX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
TlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QzcHV0
RVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUKIF9fWk4zSlNDOEpTT2JqZWN0M3B1dEVQTlNf
NkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNf
MTVQdXRQcm9wZXJ0eVNsb3RFCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IDBjZjk3ZjI1OTc3OTg1NjJmMzQ0Yzg2
NjlkYTFkN2JjYTRiOWFiYWQuLjRlOTA2ODBjODJhZGZjN2YyYmRkZDZlNzU4NTE5MzIxMTI0NTNj
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uY3BwCkBAIC02MCwxNCArNjAsMTQgQEAgVVN0cmluZyBEZWJ1Z2dlckFjdGl2
YXRpb246OmNsYXNzTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYWN0aXZhdGlvbi0+Y2xhc3NO
YW1lKCk7CiB9CiAKLWJvb2wgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIERlYnVnZ2VyQWN0aXZhdGlv
bjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4oY2VsbCktPm1fYWN0aXZhdGlv
bi0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2FjdGl2YXRpb24t
PmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
IAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
QWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0
aXZhdGlvbi5oCmluZGV4IDdhNTVhN2EzOTU4NGFlN2Q5YmI1YWU5NGRjYTAwZDU5ZDU5NDQ5OTUu
LjRkZWYwZWI3YzBlOTVlNTY5NTNhYjQ5NzAwNzY5MzQ4YTg1Njc1MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKQEAgLTQz
LDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRD
aGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcg
Y2xhc3NOYW1lKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQg
cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzLmNwcAppbmRleCBjNDk0ZGExMzJjMmEzMDU5NDMyZjIyMjIxNGM5NWNmMDRl
OWM0YWI1Li4zNTVkZDIwMzc0NTcyZDNhMDAxNWI3ZmJmYzUxNzkxYTY0MGQ1OTllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTE0NSw3ICsxNDUs
NyBAQCB2b2lkIEFyZ3VtZW50czo6ZmlsbEFyZ0xpc3QoRXhlY1N0YXRlKiBleGVjLCBNYXJrZWRB
cmd1bWVudEJ1ZmZlciYgYXJncykKICAgICB9CiB9CiAKLWJvb2wgQXJndW1lbnRzOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCitib29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGksIHNsb3QpOwogfQpAQCAtMTg4LDM1ICsxODgs
NDEgQEAgdm9pZCBBcmd1bWVudHM6OmNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgZGVmaW5lT3duUHJvcGVydHkoZXhlYywgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmNhbGxlZSwgZGVzY3JpcHRvciwgZmFsc2UpOwogfQogCi1ib29sIEFyZ3VtZW50
czo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEFyZ3VtZW50czo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBBcmd1
bWVudHM6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7Cisg
ICAgQXJndW1lbnRzKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7
CiAgICAgYm9vbCBpc0FycmF5SW5kZXg7CiAgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS50
b0FycmF5SW5kZXgoaXNBcnJheUluZGV4KTsKLSAgICBpZiAoaXNBcnJheUluZGV4ICYmIGkgPCBk
LT5udW1Bcmd1bWVudHMgJiYgKCFkLT5kZWxldGVkQXJndW1lbnRzIHx8ICFkLT5kZWxldGVkQXJn
dW1lbnRzW2ldKSkgewotICAgICAgICBpZiAoaSA8IGQtPm51bVBhcmFtZXRlcnMpIHsKLSAgICAg
ICAgICAgIHNsb3Quc2V0VmFsdWUoZC0+cmVnaXN0ZXJzW2QtPmZpcnN0UGFyYW1ldGVySW5kZXgg
KyBpXS5nZXQoKSk7CisgICAgaWYgKGlzQXJyYXlJbmRleCAmJiBpIDwgdGhpc09iamVjdC0+ZC0+
bnVtQXJndW1lbnRzICYmICghdGhpc09iamVjdC0+ZC0+ZGVsZXRlZEFyZ3VtZW50cyB8fCAhdGhp
c09iamVjdC0+ZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkpIHsKKyAgICAgICAgaWYgKGkgPCB0aGlz
T2JqZWN0LT5kLT5udW1QYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QtPmQtPnJlZ2lzdGVyc1t0aGlzT2JqZWN0LT5kLT5maXJzdFBhcmFtZXRlckluZGV4
ICsgaV0uZ2V0KCkpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUo
ZC0+ZXh0cmFBcmd1bWVudHNbaSAtIGQtPm51bVBhcmFtZXRlcnNdLmdldCgpKTsKKyAgICAgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+ZC0+ZXh0cmFBcmd1bWVudHNbaSAtIHRoaXNP
YmplY3QtPmQtPm51bVBhcmFtZXRlcnNdLmdldCgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoICYmIExJS0VMWSghZC0+b3ZlcnJvZGVMZW5ndGgpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFs
dWUoanNOdW1iZXIoZC0+bnVtQXJndW1lbnRzKSk7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoICYmIExJS0VMWSghdGhpc09iamVjdC0+ZC0+b3Zl
cnJvZGVMZW5ndGgpKSB7CisgICAgICAgIHNsb3Quc2V0VmFsdWUoanNOdW1iZXIodGhpc09iamVj
dC0+ZC0+bnVtQXJndW1lbnRzKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlZSAmJiBMSUtF
TFkoIWQtPm92ZXJyb2RlQ2FsbGVlKSkgewotICAgICAgICBpZiAoIWQtPmlzU3RyaWN0TW9kZSkg
ewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZShkLT5jYWxsZWUuZ2V0KCkpOworICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlZSAmJiBMSUtFTFkoIXRo
aXNPYmplY3QtPmQtPm92ZXJyb2RlQ2FsbGVlKSkgeworICAgICAgICBpZiAoIXRoaXNPYmplY3Qt
PmQtPmlzU3RyaWN0TW9kZSkgeworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LT5kLT5jYWxsZWUuZ2V0KCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
LSAgICAgICAgY3JlYXRlU3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KGV4ZWMpOworICAgICAg
ICB0aGlzT2JqZWN0LT5jcmVhdGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNlc3NhcnkoZXhlYyk7CiAg
ICAgfQogCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2Fs
bGVyICYmIGQtPmlzU3RyaWN0TW9kZSkKLSAgICAgICAgY3JlYXRlU3RyaWN0TW9kZUNhbGxlcklm
TmVjZXNzYXJ5KGV4ZWMpOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlO
YW1lcygpLmNhbGxlciAmJiB0aGlzT2JqZWN0LT5kLT5pc1N0cmljdE1vZGUpCisgICAgICAgIHRo
aXNPYmplY3QtPmNyZWF0ZVN0cmljdE1vZGVDYWxsZXJJZk5lY2Vzc2FyeShleGVjKTsKIAotICAg
IHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBBcmd1bWVudHM6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCA2YjFmYTA4OGJiNTc3YjI5NzU0MzNl
MjUxNTYxYTk4YTdmNjc0OWQ2Li5iNThmOTU3YTZlMmRlMzRkZDAyOGExZGQwZWEwOTIwMTFhNDQ2
NzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtMTI0
LDkgKzEyNCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9p
ZCBnZXRBcmd1bWVudHNEYXRhKENhbGxGcmFtZSosIEpTRnVuY3Rpb24qJiwgcHRyZGlmZl90JiBm
aXJzdFBhcmFtZXRlckluZGV4LCBSZWdpc3RlciomIGFyZ3YsIGludCYgYXJnYyk7Ci0gICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0g
RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCmluZGV4IGI1NjYyMjk2YTBmMmU2ZjY1OWZi
M2Y1YmJlZGRhMWExOWYxZjBhODIuLmVjMWRmNDhlYjYyZjI0Njk4YmE4MGMyYzA1YzllNDNhNTc3
MDJlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuY3BwCkBAIC02Myw5ICs2MywxNCBAQCB2b2lkIEFycmF5Q29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlQcm90b3R5cGUqIGFycmF5UHJvdAog
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+
cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0g
fCBEb250RGVsZXRlKTsKIH0KIAotYm9vbCBBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90ICZzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNs
b3Q8SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjphcnJheUNvbnN0cnVjdG9yVGFi
bGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blBy
b3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEFy
cmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNs
b3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxJbnRlcm5hbEZ1bmN0aW9u
PihleGVjLCBFeGVjU3RhdGU6OmFycmF5Q29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGljX2Nh
c3Q8QXJyYXlDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBi
b29sIEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlD
b25zdHJ1Y3Rvci5oCmluZGV4IDI4OTkwOTg3ZjcwNzA2ODk0OGQ2ZDE1YTUyODE5ZGI2MGIyNTJi
NDcuLjAwMjdhYWQ3MWU0YTFjZTllNDUxYTAwNjg1Mzc3ZTdmMjk4Mzk4OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAgLTUxLDcg
KzUxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBBcnJheUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7Ci0gICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggY2YxNjE2MDNhMzRmMTU5MzM2YmMzOTVlN2RkODI0
OWExZjU3ZWNlZC4uODllY2FhOTk0ZjE1YzA2ODdkOThkYjZmYzc1YzYyMDQ1NDI2MDAwNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApA
QCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKIH0KIAotYm9vbCBBcnJheVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCitib29sIEFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmgKaW5kZXggOWM4NjBjNmM0M2U5ZmE5MzhhOGZhMWU3ZmNiNTYyOWQyYjky
ZjM4Mi4uYjIzYzc2NjM2NTJhMTRlZWYyOTY3Y2I3YTgxYjE4NDc5N2VhYmE3MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCkBAIC00MCw3ICs0
MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAg
ICAgICAgfQogICAgICAgICAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5j
cHAKaW5kZXggZTc0OGRlMmIxOWI1ODdhM2RiZmQ3YzI4YzI2Zjc2ZjRhZmE0MWM4NS4uNzYwOWQ0
ZTc1OGMwMWE2OTdlY2ZlODczMTY3NzYxYTUzYjkwMTQzYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKQEAgLTYyLDcgKzYyLDcg
QEAgdm9pZCBCb29sZWFuUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KikKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1i
b29sIEJvb2xlYW5Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9v
bCBCb29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3Qp
CiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
blByb3RvdHlwZS5oCmluZGV4IGIwYjRmNTUwZWYyOTM4NjZhMDU3ZTEyNTRjMWFlMDVmZjRlMGE0
NmYuLjcwN2E3ZWYwOTBlYzc2OWZjM2EyMTA2Mzg4MjU1MzJjMmUwM2M1NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKQEAgLTQ5LDcg
KzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBCb29sZWFu
UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZjg5YWJhNDUyNWI0ODkxODRmYWZhODZiZWU3NzZlMWQz
NzZkY2IwMi4uNTU2MWU2NGU5MzIzYThhMjUyNTczMzBmMjQ0MzA2M2E3YTRhOTk0NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIHZvaWQgRGF0ZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIERhdGVQcm90b3R5cGUqIGRhdGVQcm90b3R5CiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
bGVuZ3RoLCBqc051bWJlcig3KSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwog
fQogCi1ib29sIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3Qp
Citib29sIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZz
bG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnN0cnVjdG9yLmgKaW5kZXggMGFjMjVkMGNhOWZmYTBlMzM5ZTY4ZWQ3NWJmNWVhZWFjOWE5
ZTVjOS4uMWEwZmZlYzMwYjYyYWUzYjExNjc4NmFhMWI2ZmFiZjQ4YzQ4YjVmNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKQEAgLTU2LDcg
KzU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNj
cmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuY3BwCmluZGV4IGE2OGY0ODM4YmIwNjI2NWM5N2JjMDQ2NDJkZjFjOTQ2NzdjOGE4MDcuLmM2
OGIyZDIzM2E3M2JjZTQ0YTVkMjQzMWE0ZTUxNTk5YWRkM2RjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC00NDMsNyArNDQzLDcg
QEAgdm9pZCBEYXRlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KikKICAgICAvLyBUaGUgY29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRl
ciwgYWZ0ZXIgRGF0ZUNvbnN0cnVjdG9yIGhhcyBiZWVuIGJ1aWx0LgogfQogCi1ib29sIERhdGVQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBEYXRlUHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJu
IGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCmluZGV4IDcy
MDUyNjJkMjliNDg3OGJiYWUwNzQ0MmEyNWU0NGM0ZmRlNzBhNjguLmRkZDY1NGI3YTI4ZDA3ZGM5
OWRjMzNmNWJlNjBmYjllNDg5YWNmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlUHJvdG90eXBlLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7
CiAgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggNDM5ZDlhODMxNDdmOGYwMTRkNzQ2Y2ZmN2Q4
MzJlZWZmYTRjNTJkMy4uYThhOTU4MThhODQxOWFhNGUyZjU2MjlhM2VlZTFjZjI0MGE0NDE3MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNw
cApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubmFtZSwganNOb250cml2aWFsU3RyaW5n
KGV4ZWMsICJFcnJvciIpLCBEb250RW51bSk7CiB9CiAKLWJvb2wgRXJyb3JQcm90b3R5cGU6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCmluZGV4IDY1ZjNmZmY1ZjZl
MGZkMzUxNjVkNTNlOWJiM2EyNTE5NWNjMTFmNzkuLmY2MmRkNTUxMzlmYTQxOTExZmJjYzYyOTI5
Zjc3ZDQzMzA4N2Y1ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgRXJyb3JJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRl
OgotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggOTBmOTExMDk0
NGUxNDE0NTIxM2QzZDBlOWU1ZGMyMTM2ZWRjMzZhOC4uMWEzMmFmZGQ2ZTNjMjkwNWRiMWQzMjQ4
Y2QzYzhjYzljOWE0ZTA4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FjdGl2YXRpb24uY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgaW5saW5lIGJvb2wgSlNBY3RpdmF0
aW9uOjpzeW1ib2xUYWJsZVB1dFdpdGhBdHRyaWJ1dGVzKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IDdiZWQyOWZkMzBjMGI1NmZjMjI3Y2UzOGY2
MjNiMDliOTFjMTMzY2IuLjIzYjk3ZDZjMmRiMjQ5ZGExYTM3YTY1ZDJkMWZmOWJiNjQ3NWQwNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02
MSw3ICs2MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0Fj
dGl2YXRpb25PYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVt
ZXJhdGlvbk1vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3Bw
CmluZGV4IDIxNzNmZjE2ZDg0YTNlNWU5NWMwYjU0ZWE2NGY4NGFkYTE1MWM0MTQuLmY5ZjZjNTIw
MGRmZTM0NTA4NTdlY2Q1ZmU5NWUzNTVlZGRhMzViZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgSlNBcnJheTo6fkpTQXJy
YXkoKQogICAgIGZhc3RGcmVlKG1fc3RvcmFnZS0+bV9hbGxvY0Jhc2UpOwogfQogCi1ib29sIEpT
QXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFBy
b3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGksIHNsb3QpOwogfQpAQCAt
MjU3LDcgKzI1Nyw3IEBAIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBQcm9wCiAgICAgCiAgICAgaWYgKGkg
Pj0gc3RvcmFnZS0+bV9sZW5ndGgpIHsKICAgICAgICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgp
Ci0gICAgICAgICAgICByZXR1cm4gdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMs
IElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIHRo
aXNPYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJv
bShleGVjLCBpKSwgc2xvdCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTI4
MCw3ICsyODAsNyBAQCBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcAogICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20o
ZXhlYywgaSksIHNsb3QpOwogfQogCi1ib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQorYm9vbCBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
CmluZGV4IGRiZmMxNzExNDI1OGExMzc4MjE4NDNjYjk1NzhiM2E5Y2RkMTZkMzguLjlhZDk1NDBi
MTJhMTJhZjU1ZjM1NDgxMjg4MWVmNjRkZTA1YTM0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5LmgKQEAgLTk0LDkgKzk0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUpOyAvLyBGSVhNRTogTWFrZSBwcm90ZWN0ZWQgYW5kIGFkZCBzZXRJdGVt
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5j
cHAKaW5kZXggNzFlZDM4MGEyMzY3OTdmZDZlNmVkODRjMTA2ZWViYTNmYWU4ZjU3Yi4uMDI0ODdk
ODM5YTMzOWFmZmE3MzlhMmU1Mjc2MmIwYWYxOTM1NTA3NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC05Niw3ICs5Niw3IEBA
IGJvb2wgSlNCb3VuZEZ1bmN0aW9uOjpoYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgdmFsdWUsIEpTVmFsdWUpCiAgICAgcmV0dXJuIG1fdGFyZ2V0RnVuY3Rpb24tPmhhc0luc3Rh
bmNlKGV4ZWMsIHZhbHVlLCBwcm90byk7CiB9CiAKLWJvb2wgSlNCb3VuZEZ1bmN0aW9uOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNCb3VuZEZ1bmN0aW9uOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAppbmRleCBjYzUxNjkzNzYx
ZmFjODk0ZDA5MDNjMGIxY2UyOTVmZDFmNTkwYmEzLi5iNDVlMmQ5YmFiNjVhNDA4MzJhNmYyZjA4
MTkyY2NiMmQzYmZlYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JvdW5kRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JvdW5kRnVuY3Rpb24uaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNCb3VuZEZ1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU09i
amVjdCogdGFyZ2V0RnVuY3Rpb24sIEpTVmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJn
cywgaW50LCBjb25zdCBJZGVudGlmaWVyJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
KyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4IDhhYjQ3
MjZlM2VhMWY1ZjkxMDBmMGI0MDYyMWYzMTQ3N2JkNjM5NmEuLjUxNTcxMDNlZGZhNWI3ZjgwNjE0
MWUyNGUwMjA2NjUzMGVlNWI4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0J5dGVBcnJheS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgU3RydWN0dXJlKiBKU0J5dGVBcnJh
eTo6Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgY2xhc3NJ
bmZvKTsKIH0KIAotYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCitib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQpAQCAtODIsNyArODIsNyBAQCBib29sIEpTQnl0ZUFycmF5OjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cgogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLWJvb2wgSlNCeXRlQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQorYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVB
cnJheS5oCmluZGV4IDQwZjBhYTFhN2I3YTRhZTZmNTMwMjY1NDJkMTc5NDVhNjU1MWRmMTAuLjRk
ZjM2NmIxODVjZDcyMmY5NjRmYWQ4YWQyZDM1ZDViNDg3MWE2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaApAQCAtODgsOSArODgsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlND
OjpDbGFzc0luZm8qID0gJnNfaW5mbyk7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25l
ZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1
ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuY3BwCmluZGV4IDNkNjI3ZTFmZWRmNDUwNTllMmJkYjRiMWYzZGJlN2I2Njc3YjQ5Zjcu
LmM3OWQ0YjZiNWYzYzA0M2E3MTAyYTE4ZDcwNzZlMDJjNTU3ZmMwYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtNzQsNyArNzQsNyBAQCBDb25zdHJ1Y3RU
eXBlIEpTQ2VsbDo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJikKICAg
ICByZXR1cm4gQ29uc3RydWN0VHlwZU5vbmU7CiB9CiAKLWJvb2wgSlNDZWxsOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMs
IGlkZW50aWZpZXIsIHNsb3QpOwogfQpAQCAtOTEsNyArOTEsNyBAQCBib29sIEpTQ2VsbDo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwgUHJvcGVydHlTbG90
JiBzbG90KQorYm9vbCBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggNzJmNTVhMWIxZjA4
M2I0YjU0ZDM0OGFiNGY1MDM3MDI5YmYzMzRhZi4uMTExNjgyZTA5NTU3YTI0ZGRlMWY0ODU3YTk2
N2Y2NzdjNWI1MTQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAg
LTEzNiw5ICsxMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IC8vIEJhc2UgaW1wbGVtZW50YXRpb247IGZvciBub24tb2JqZWN0IGNsYXNzZXMgaW1wbGVtZW50
cyBnZXRQcm9wZXJ0eVNsb3QuCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIAogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNjJm
ZGY0ZjliMDVhNTRlZjY3ZjFjN2Y0OGIyY2UyMjQ0ZTkxMTk0Ni4uZGJjNWVkZmVlNmUwZDEwZDcw
ZDdjMGFmMjA0NzczOWQ1NzI0ZjMyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCBKU1ZhbHVlIEpTRnVuY3Rpb246
Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlm
aWVyJgogICAgIHJldHVybiBqc051bWJlcih0aGlzT2JqLT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1l
dGVyQ291bnQoKSk7CiB9CiAKLWJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCitib29sIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CkBAIC0yNjMsNyArMjYzLDcgQEAgYm9vbCBKU0Z1bmN0aW9u
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm8KICAgICAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5wcm90b3R5cGUpIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIGdl
dE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAg
IHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yKTsKICAgICB9CiAgICAgCkBAIC0yOTYsNyArMjk2LDcgQEAgdm9pZCBKU0Z1
bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1l
QXJyYXkmIHByb3BlcnQKICAgICBpZiAoIWlzSG9zdEZ1bmN0aW9uKCkgJiYgKG1vZGUgPT0gSW5j
bHVkZURvbnRFbnVtUHJvcGVydGllcykpIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHByb3RvdHlw
ZSBoYXMgYmVlbiByZWlmaWVkLgogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAg
Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUs
IHNsb3QpOworICAgICAgICBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIHNsb3QpOwogCiAgICAgICAgIHByb3BlcnR5TmFtZXMu
YWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpOwogICAgICAgICBwcm9wZXJ0eU5h
bWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyKTsKQEAgLTMyMSw3ICszMjEsNyBA
QCB2b2lkIEpTRnVuY3Rpb246OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYQogICAgICAgICAvLyBNYWtlIHN1cmUgcHJvdG90eXBl
IGhhcyBiZWVuIHJlaWZpZWQsIHN1Y2ggdGhhdCBpdCBjYW4gb25seSBiZSBvdmVyd3JpdHRlbgog
ICAgICAgICAvLyBmb2xsb3dpbmcgdGhlIHJ1bGVzIHNldCBvdXQgaW4gRUNNQS0yNjIgOC4xMi45
LgogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgdGhpc09iamVjdC0+Z2V0T3du
UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHRoaXNPYmpl
Y3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
ICAgICB9CiAgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUo
KSkgewogICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5h
cmd1bWVudHMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApp
bmRleCAyNDA5ZDRlZTg1ZTgyZDdiZjMzZTcxZmIwNTliOWNiYmNiZjc0NGY2Li5kOTY3ODAxNmI1
OTA4OWQyNzBjYTg2OTNiYTc0YjMxZGNhMDg0YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC0xMzIsNyArMTMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgTmF0aXZlRXhlY3V0YWJs
ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogICAgICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSosIFNjb3BlQ2hhaW5O
b2RlKik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFy
cmF5JiwgRW51bWVyYXRpb25Nb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXgg
NmM2OGIyZThhMDc1NTc5MGQxMDY3ZDQ4MzEwNTNlOTc0ZGIzYTMzZS4uYjQ4MDVlZTdkNzIxYWMw
ZTEyMjgwODI5ZGY5N2ZiNmU3ZWVhZjk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNDIwLDcgKzQyMCw3IEBAIHZvaWQgSlNH
bG9iYWxPYmplY3Q6OmFkZFN0YXRpY0dsb2JhbHMoR2xvYmFsUHJvcGVydHlJbmZvKiBnbG9iYWxz
LCBpbnQgY291bnQpCiAgICAgfQogfQogCi1ib29sIEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA4N2YwZjRiMTBjYTljNzZiNTQz
NTY0OWE3YmQwMmZkMjZkZDU0MGJhLi4yOTkzYmE1MTc4YmQzOTA0NTA1OGNiNTIzZDQ5YjQ1Nzli
YWVjZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0
aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKLSAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25Q
cm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKQEAgLTM0MCw3
ICszNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgYm9vbCBKU0dsb2JhbE9iamVj
dDo6aGFzT3duUHJvcGVydHlGb3JXcml0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAg
ICAgICBpZiAoSlNWYXJpYWJsZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCkpCisgICAgICAgIGlmIChKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBib29sIHNsb3RJc1dyaXRlYWJsZTsKICAgICAgICAgcmV0dXJu
IHN5bWJvbFRhYmxlR2V0KHByb3BlcnR5TmFtZSwgc2xvdCwgc2xvdElzV3JpdGVhYmxlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKaW5kZXgg
ZTE0YTY4YmQ5NGZhMTRlZTBjZDY0ZDBmMzQyN2FhMmNjNDZkYjlkOS4uMDcyZDgyNTZmZDY3ODYz
MjkzN2ZkYzNkNjE2ZmYwYjI0M2ZjODVkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgVVN0cmluZyBKU05v
dEFuT2JqZWN0Ojp0b1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuICIi
OwogfQogCi1ib29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkK
K2Jvb2wgSlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIs
IHNsb3QpOwogfQpAQCAtNjksNyArNjksNyBAQCBib29sIEpTTm90QW5PYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK2Jvb2wgSlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmpl
Y3QuaAppbmRleCBiOGYwZmFhODU2MjI2MjNjMjA3OWM5YzljNzEzN2Q3ZDdiMjg1MWY3Li4wNjc4
ODcxNDk0MTExYTk5YjEzMjQzYmYyNzUwZjViNWEzOGQwN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCkBAIC03MCw5ICs3MCw5IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikg
Y29uc3Q7CiAKICAgICAgICAgLy8gSlNPYmplY3QgbWV0aG9kcwotICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApp
bmRleCA2ZWYyMTU2MDBiMDc3OTlmNWMxNDkzMjU4ZTljOWY3MDVkNTZkZTk4Li5lYTI3MWQ5ZmNk
ZmM3YjNmMzFlMDNkYzhmY2JiZjNhMWY4NGZkMjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgU3RyaW5n
aWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmll
ciwgVVN0cmluZ0J1CiAgICAgICAgICAgICB2YWx1ZSA9IGFzQXJyYXkobV9vYmplY3QuZ2V0KCkp
LT5nZXRJbmRleChpbmRleCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUHJvcGVydHlT
bG90IHNsb3QobV9vYmplY3QuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKCFtX29iamVjdC0+Z2V0
T3duUHJvcGVydHlTbG90KGV4ZWMsIGluZGV4LCBzbG90KSkKKyAgICAgICAgICAgIGlmICghbV9v
YmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgaW5kZXgsIHNsb3QpKQogICAg
ICAgICAgICAgICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTQxLDcg
KzU0MSw3IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0
cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgVVN0cmluZ0J1CiAgICAgICAgIC8vIEdldCB0aGUgdmFs
dWUuCiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KG1fb2JqZWN0LmdldCgpKTsKICAgICAgICAg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVW
ZWN0b3IoKVtpbmRleF07Ci0gICAgICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAoIW1fb2JqZWN0LT5nZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHNsb3QuZ2V0VmFsdWUo
ZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQpA
QCAtNTk4LDcgKzU5OCw3IEBAIGNvbnN0IENsYXNzSW5mbyBKU09OT2JqZWN0OjpzX2luZm8gPSB7
ICJKU09OIiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlCiAKIC8vIEVDTUEgMTUu
OAogCi1ib29sIEpTT05PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9v
bCBKU09OT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQpAQCAtNjkzLDcgKzY5Myw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6
d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBh
cnJheS0+Z2V0SW5kZXgoaW5kZXgpOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFy
cmF5LT5nZXRPd25Qcm9wZXJ0eVNsb3QobV9leGVjLCBpbmRleCwgc2xvdCkpCisgICAgICAgICAg
ICAgICAgICAgIGlmIChhcnJheS0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChtX2V4ZWMsIGlu
ZGV4LCBzbG90KSkKICAgICAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBzbG90LmdldFZh
bHVlKG1fZXhlYywgaW5kZXgpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgICAgICBpblZhbHVlID0ganNVbmRlZmluZWQoKTsKQEAgLTc1NSw3ICs3NTUsNyBA
QCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+Z2V0
T3duUHJvcGVydHlTbG90KG1fZXhlYywgcHJvcGVydGllc1tpbmRleF0sIHNsb3QpKQorICAgICAg
ICAgICAgICAgIGlmIChvYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVjLCBw
cm9wZXJ0aWVzW2luZGV4XSwgc2xvdCkpCiAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBz
bG90LmdldFZhbHVlKG1fZXhlYywgcHJvcGVydGllc1tpbmRleF0pOwogICAgICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICAgICAgaW5WYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggMjhkMjg2MmY4ZDRh
NWMwOGU4MzZkMzU4YjE2N2NjZWYzNjZjZTI1Yi4uNDg3ZmNmMGZlMmQ3Mjg0ZTRjMTk1NzExYzE3
NWM4MmM1Y2FjZGFhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPTk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuaApAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIEpTT05PYmplY3QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAppbmRleCBmOTRjMTYyYTdmODk2ZDhkYzBjMWIyNjcyY2Q5ODBmYzI4
ZWE0YjJiLi4xOWY1YzVkZmNlNzZkZTY5M2E4ZTc5ZDExNzhkYzRlNTNiZDMwZDFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC05MywxNCArOTMsMTQg
QEAgVVN0cmluZyBKU09iamVjdDo6Y2xhc3NOYW1lKCkgY29uc3QKICAgICByZXR1cm4gaW5mby0+
Y2xhc3NOYW1lOwogfQogCi1ib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jv
b2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAK
IGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCktPmdldE93blByb3BlcnR5U2xv
dChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KGNlbGwpLT5nZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7
CiB9CiAKIHN0YXRpYyB2b2lkIHRocm93U2V0dGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjKQpAQCAt
Mjc3LDcgKzI3Nyw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwCiBib29sIEpTT2JqZWN0Ojpo
YXNPd25Qcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSkgY29uc3QKIHsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICByZXR1cm4gY29uc3Rf
Y2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKKyAgICByZXR1cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJv
b2wgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXgg
YzhmM2RlOTdhNzI0OWE2ZGY3MDM5MzIyMzFlOGQxODExOWQ5MjJkZi4uMjExYTVmYmFhOTUyY2Vk
OTUxZTAxNzZiYTJkNzhkZTBmNWI0ZTMyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCkBAIC0xMDEsOSArMTAxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IGJvb2wgZ2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIGJvb2wgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKQEAgLTUxNCw3ICs1MTQsNyBAQCBBTFdB
WVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmlubGluZUdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQUxXQVlTX0lOTElO
RSBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK0FMV0FZU19J
TkxJTkUgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KQEAgLTUzMSw3ICs1MzEsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlND
ZWxsOjpmYXN0R2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZgogewogICAgIGlmICghc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90KCkpCiAgICAgICAgIHJldHVybiBhc09iamVjdCh0aGlzKS0+aW5saW5lR2V0T3du
UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgcmV0dXJuIGdldE93
blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIC8v
IEZhc3QgY2FsbCB0byBnZXQgYSBwcm9wZXJ0eSB3aGVyZSB3ZSBtYXkgbm90IHlldCBoYXZlIGNv
bnZlcnRlZCB0aGUgc3RyaW5nIHRvIGFuCkBAIC01NjksNyArNTY5LDcgQEAgQUxXQVlTX0lOTElO
RSBib29sIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBwcm9wZXJ0eU4KIHsKICAgICBKU09iamVjdCogb2JqZWN0ID0gdGhpczsKICAgICB3aGlsZSAo
dHJ1ZSkgewotICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gb2JqZWN0LT5wcm90b3R5cGUoKTsKICAg
ICAgICAgaWYgKCFwcm90b3R5cGUuaXNPYmplY3QoKSkKQEAgLTc5MCw3ICs3OTAsNyBAQCBpbmxp
bmUgSlNWYWx1ZSBKU1ZhbHVlOjpnZXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdAogICAgIH0KICAgICBKU0NlbGwqIGNlbGwgPSBjb25zdF9jYXN0
PEpTQ2VsbCo+KGFzQ2VsbCgpKTsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY2Vs
bC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAg
IGlmIChjZWxsLT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCkpCiAgICAgICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IGFzT2JqZWN0KGNlbGwpLT5wcm90b3R5
cGUoKTsKICAgICAgICAgaWYgKCFwcm90b3R5cGUuaXNPYmplY3QoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKaW5kZXgg
OGQwZmRhOTAzNzMyMmRmMTczMDY1ZGM2MWNjOTE0ZTUzMDA3YmYwMi4uMjJlNmFmY2RkZDY4NWJh
MTIzNWQ4YmRjNjFlOWRhMWQyMGRlZGM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAg
Ym9vbCBKU1N0YXRpY1Njb3BlT2JqZWN0Ojppc0R5bmFtaWNTY29wZShib29sJikgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgSlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTU3RhdGljU2NvcGVPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXggZGMy
ODc3OTVkZDlmMTYwNGY2YjUxZjI0NmI2Y2E5MmVmOThhMTgwNS4uYTkwZGRkNWM2OTFiZTk4MGM5
MTg2MjI2Yjk2M2QwYTdhNzhiYzhmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3Bh
Y2UgSlNDewogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RW
aXNpdG9yJik7CiAgICAgICAgIGJvb2wgaXNEeW5hbWljU2NvcGUoYm9vbCYgcmVxdWlyZXNEeW5h
bWljQ2hlY2tzKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9UaGlzT2JqZWN0
KEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmNwcAppbmRleCBjNzNmNGEyZWUyYzg1NzVmYjBkMDQ4OWI4ZDYzOGUwMGFiMTNiNWIxLi4y
Nzg3NjM3YWEyZDFlOWU2NTQyM2ZhOWJmMzM5OWZhNDA3MjUxMDU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgSlNPYmpl
Y3QqIEpTU3RyaW5nOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJl
dHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCksIGNvbnN0X2Nhc3Q8SlNTdHJpbmcqPih0aGlzKSk7CiB9CiAKLWJvb2wgSlNTdHJpbmc6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTMzMyw3ICszMzMsNyBA
QCBib29sIEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIEpTT2JqZWN0KiBvYmplY3Q7CiAgICAgZm9y
IChKU1ZhbHVlIHByb3RvdHlwZSA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5n
UHJvdG90eXBlKCk7ICFwcm90b3R5cGUuaXNOdWxsKCk7IHByb3RvdHlwZSA9IG9iamVjdC0+cHJv
dG90eXBlKCkpIHsKICAgICAgICAgb2JqZWN0ID0gYXNPYmplY3QocHJvdG90eXBlKTsKLSAgICAg
ICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCkpCisgICAgICAgIGlmIChvYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAg
ICBzbG90LnNldFVuZGVmaW5lZCgpOwpAQCAtMzY3LDcgKzM2Nyw3IEBAIGJvb2wgSlNTdHJpbmc6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSlNTdHJpbmc6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQorYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmlu
ZGV4IDcyMGQ2MmJkNmNmMzI3MzExNWY2MmYyZTM4MTQwMTk0ZGJjYjg4ZWYuLmQ4MjE1ZTJlZTU0
NzI3YzRkMGI4ODgxODQxZDcyMGRhMzJmYjlhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdHJpbmcuaApAQCAtNTA3LDkgKzUwNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAK
ICAgICAgICAgLy8gQWN0dWFsbHkgZ2V0UHJvcGVydHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlT
bG90IChzZWUgSlNDZWxsKS4KLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKaW5kZXggNzgyZGMwZmJjNzBjODNhOTJhZTEwZjEwNDlh
ZmZkYzAzMjY5ODgxYy4uYTZkNDhiZDhkYzBlOWY0MDQ1ODMwMDkwODBkMDhmZTVjMzA1MzgyNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKQEAgLTIxMyw3ICsyMTMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxl
LT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwogCiAgICAgICAgIGlmICghZW50cnkpIC8vIG5v
dCBmb3VuZCwgZm9yd2FyZCB0byBwYXJlbnQKLSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqLT5Q
YXJlbnRJbXA6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgICAgICAgICAgcmV0dXJuIFBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmos
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAKICAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1
dGVzKCkgJiBGdW5jdGlvbikKICAgICAgICAgICAgIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KGV4
ZWMsIGVudHJ5LCB0aGlzT2JqLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwpAQCAtMjQ5LDcgKzI0OSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnRJbXA+CiAgICAg
aW5saW5lIGJvb2wgZ2V0U3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SGFzaFRhYmxlKiB0YWJsZSwgSlNPYmplY3QqIHRoaXNPYmosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogICAgIHsKLSAgICAgICAgaWYgKHN0YXRp
Y19jYXN0PFBhcmVudEltcCo+KHRoaXNPYmopLT5QYXJlbnRJbXA6OmdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAoUGFyZW50SW1wOjpnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSB0
YWJsZS0+ZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTsKQEAgLTI5MSw3ICsyOTEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRy
eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogCiAgICAgICAgIGlmICghZW50cnkpIC8vIG5vdCBmb3Vu
ZCwgZm9yd2FyZCB0byBwYXJlbnQKLSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqLT5QYXJlbnRJ
bXA6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAg
ICAgICAgcmV0dXJuIFBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmosIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiAKICAgICAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0
ZXMoKSAmIEZ1bmN0aW9uKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hdGhPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0
aE9iamVjdC5jcHAKaW5kZXggNzlmZWVlN2UxOWVkZTJmZjEwM2MwNjAzZmQ0YTk3ZWZhMDBlYjZh
My4uNjI0ZjRkZGJiZDNlOTA3MDc2OGVjMWZlOTNkOTEzMDc5YzVlY2Q4MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBA
QCB2b2lkIE1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgIlNRUlQyIiksIGpzTnVtYmVyKHNx
cnQoMi4wKSksIERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBN
YXRoT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgTWF0aE9iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRleCAyZTJkNzJkZWJm
NDgwZDdjZmUyNzQwNGQ3NjM5YjQ5Y2U1ZDQ4NDBiLi4yNDI0YTcxZTVlZTllMWI3NDU0MDk3MWY4
YTdkZjgyNWJiMTc1MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9i
amVjdC5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgb2Jq
ZWN0LT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOwogICAgICAgICAgICAgcmV0
dXJuIG9iamVjdDsKICAgICAgICAgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IDkxMzA5YTRjYTNkMzgzYzY1Zjg4ODllOWJiMzUyMGQwNmEwZjlmMTQu
LjM1OTBjNjU5Njg4MjI1MDdmYjM4ZTYwNjkwYTI1YjlhZmYwNTc1MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTcx
LDcgKzcxLDcgQEAgdm9pZCBOdW1iZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0
YXRlKiBleGVjLCBOdW1iZXJQcm90b3R5cGUqIG51bWJlclAKICAgICBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5n
dGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAK
LWJvb2wgTnVtYmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJDb25zdHJ1Y3Rvci5oCmluZGV4IDQ1N2IxZDI1Y2ZjOGE3NTdmYmI3MTM0YmI1Y2EzNzIy
ODUwZWY5MzkuLmRiZTNhZDNhOWZkZWU3MTBlZTEwNjliOGZjMGI3ZGQ3NTRhNTU4YmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaApA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjb25z
dHJ1Y3RvcjsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgICAgICBKU1ZhbHVlIGdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiwgaW50IHRva2Vu
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
clByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90
b3R5cGUuY3BwCmluZGV4IGY2ZjAxNmU0ZTNlNTdmMjIwZTc4ZjI1ZWNhZTgxMmY0N2QyZGEwYzku
LjRmYjI5YjU1ZDZkNmUwZjY1ZDBlMGEyYWM0OTlmZTUwNDU2MDU2YjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAtODMsNyAr
ODMsNyBAQCB2b2lkIE51bWJlclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0K
IAotYm9vbCBOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQor
Ym9vbCBOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
clByb3RvdHlwZS5oCmluZGV4IDFhNTY4NmFlNTkwYTVjMDQzMGEyMzVhOTUwNWIyOWUyZDNiY2Nh
YTkuLmJlYmI1ZTczYTIxNDc3NjgwNTlmNGJiOGUzNzQwM2U5YzE5YjViZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCkBAIC00OSw3ICs0
OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgTnVtYmVyUHJv
dG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDJkMjE4YTk1MTVmZWFlZTA3MGY2ZmI1ODVi
OTA4ZTBlNDEyMDkyZDEuLmFjZDY1ZDRlZTI4MmI5YzMyZmM5YzZjNTI4MGM1ZDFiNzRjOWNhMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBPYmplY3RQcm90b3R5cGUqIG9iamVjdFAKICAgICBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9u
dERlbGV0ZSk7CiB9CiAKLWJvb2wgT2JqZWN0Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90ICZzbG90KQorYm9vbCBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCmluZGV4IDAzYmI1MTNlM2NlNzIzZTdi
YWNhNWZhMjM5MzgwMDJhMDg5YTllOTEuLjE3Y2E0OWQ3NmZmYjQwZTJlNmI4YmQxODZlMjQ0M2Qx
ODEwNjFkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCA5OWE1YmIyMjhiZjI3ZWMxYWQ0MWE5ZGI0NDRlMjNl
NzVmODRmNTdhLi5lYTdjODliMTUzODJmNDI5ZmRiMzRjNGYzNWM0YTMyNzcyOTRiZmFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAK
QEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGUKICAgICB9CiB9CiAKLWJv
b2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgT2JqZWN0UHJv
dG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMTA1
LDcgKzEwNSw3IEBAIGJvb2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkCiAgICAgcmV0dXJuIEpTTm9uRmlu
YWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQogCi1ib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCitib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5kZXggZTM5MDAyMmY2N2M3NTQyMDViZTMyMWVm
N2NiMDlkNDVmZDU1ZTE0OC4uNzZhMzNjNDc5Yjk2NjViYjEzNzA0OWIzZTJjOGIzMWU5NGVkZDY4
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBl
LmgKQEAgLTUzLDkgKzUzLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTg2NzY5NGI0MGFj
Y2RlNjA3YzE3ZDU1ZjdkODhjNjA1MTkyM2UzMi4uNzE0YTY3YTNkZDVlMmY5NTBmOTNlNjljMDU1
YmZiMWI1ZmM0ZjIwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMjAyLDcgKzIwMiw3IEBAIEpTVmFsdWUgUmVnRXhw
Q29uc3RydWN0b3I6OmdldFJpZ2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAg
cmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CiB9CiAgICAgCi1ib29sIFJlZ0V4cENvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgUmVnRXhwQ29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApp
bmRleCBkOWZkZmNlYWNmNTRlYWU5MTNhYzk1NzkyOGIxNjZmYzlkNzkwM2ZjLi5iYTU1MWZlYzJk
OTYwNDdmN2JmMmE0ZTkxYTI1MGVkMzI5MGM0NDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKLSAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNj
cmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
TWF0Y2hlc0FycmF5LmgKaW5kZXggZTc1ZDYyMTkxNWQyNGE1ZTg2YjdhNzU2NGE5MjVhMjZmMDY5
MDExZC4uMTJiZDAyNmVmM2Q5MTQ4YzQxMDlhNWFmMDc1YWNkMjZmMTFhNzM4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAg
LTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxEYXRhJiwgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKTsKIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgICAgICB9CkBAIC01Niw3ICs1
Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAg
ICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogICAgICAgICB7
CiAgICAgICAgICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IDY2MGIyZTMwYTU0YjkxYzk5MGNhZGFiNGFhMmY2
NDM4MzVjMTk1OGMuLjgwOGVkN2Y5NzA1OGJjMDgyZmNkNWQzODVjMzhjNDdlNjJjZjAyZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAt
OTEsNyArOTEsNyBAQCB2b2lkIFJlZ0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNl
bGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09i
amVjdC0+ZC0+bGFzdEluZGV4KTsKIH0KIAotYm9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCmluZGV4IGMwZjgzZDU0MmNiZGViZDlhZWRiYmQ4NzVj
MDFiYmZlOGIyMDMyMzkuLmEzZjc3YzViOTM4YjI4ZDM5MmRiMjJlOTQ2MGNjYjY3YjQ1ZDAxZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02
NSw3ICs2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIHRlc3QoRXhlY1N0
YXRlKik7CiAgICAgICAgIEpTVmFsdWUgZXhlYyhFeGVjU3RhdGUqKTsKIAotICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggM2Uz
YTE2OWZhOWIwNjJjZGMyZTQyOTdmNTY5NjA5YWQyMWYzYWM0MS4uODMwNGU2MmUxOGMwZGU3ZTY5
NDdjMTFlZDg4OTY5ZTRiZjBjMDhjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFJlZ0V4cFByb3Rv
dHlwZTo6UmVnRXhwUHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0CiB7CiB9CiAKLWJvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAppbmRleCBjYzg0MDNhNzViNGJmM2I5MmRl
NWE4NGFiMjNjYTgyYTE2MjQyMTNmLi44YzkyYjIyZTQ0MTg3YmMwZWQyNGE1NzliNjEzZDc2ZTVh
Nzk4NGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90
b3R5cGUuaApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgUmVnRXhwT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2VlMjBm
YWIwODdkOWRiYmQ1NDIzNjA2NDRlZWYxMDVjZDY1Yjg4OC4uMDkwYjNhZjcxYmM3ZmEzMDExNWYw
NGExM2UxZmNkMDY1YTQ4YjQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFN0cmlu
Z0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZ1Byb3Rv
dHlwZSogc3RyaW5nUAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2Jh
bERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRP
bmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKIH0KIAotYm9vbCBTdHJpbmdDb25zdHJ1Y3Rv
cjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIFN0cmluZ0NvbnN0cnVjdG9y
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5k
ZXggMGViMGY2MTM5NTA0YTcyZTA3OTYxOWQyN2U1N2EwNThiNjJkNGRiMC4uOTg3ODJiYTU5NjAw
MjgzNjhmNzEyMmUxNjE4OGRlODZjZjFhMDE1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChD
YWxsRGF0YSYpOwogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5k
ZXggNmQ1NDhjZDZmMWFmNGUyYzZkZGU5YWY2ZjRmY2ZlODY3NzIyZTdhMS4uMGU5Y2Q3ZGMzNWZl
MTA3NjA4ZDY0NDgxZjUyYjlkMmRmZjA3YTczMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHZvaWQgU3RyaW5n
T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTU3RyaW5n
KiBzdHJpbmcpCiAgICAgc2V0SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBzdHJpbmcpOwogfQog
Ci1ib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29s
IFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KQEAgLTU0LDcgKzU0LDcgQEAgYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnQKICAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogICAgIAotYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQorYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09i
amVjdC5oCmluZGV4IDg3MmEyYzEzM2I2NmE2ZDIxN2FjOWM5YmU1NjQ5ZjgyZTVjYzExOGIuLmU2
YjM3YmMwODllM2YyYzEzMGQ1ODM0NDBhMmNkZDlhOTI3YmE2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC00Niw5ICs0Niw5IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3QqIGNyZWF0
ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKik7CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwCmluZGV4IDg4ZmIyZTkyMWFlN2RmYTNjMDNhYzgwNmUzMzI5N2UzNGJk
MmVmMWUuLmU4ZjRmZDNiNGYzZDJhMTIzYTQ3NTZhZTVjYWNkNzgzNDZlNjc5ZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAt
MTQ1LDcgKzE0NSw3IEBAIHZvaWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqCiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
bGVuZ3RoLCBqc051bWJlcigwKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwog
fQogCi1ib29sIFN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3Qp
Citib29sIFN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZz
bG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmgKaW5kZXggYzg5YTg5YmE5NTJkOTZmODVmYjkxYTcwYTQ5MmY4ZDdmMTA4
ZGEyMS4uNDcxMGE1YzA4MzhlNzQ1MDQzMGYxMzc0OWI1YjNlYTE4YmQxMDQyZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTQyLDcg
KzQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwog
ICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmlu
ZGV4IDBiMWI0NTY1MTMxNGYyNDRmZTRlY2JmNTIxZjZlYjcyZWFjMjJmMTAuLjQxMzE1NGQ0NzE4
MmU2ZjI4OTNiYzgwMDk2ZTNhNmJmODA3OTBkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDExLTEwLTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIGdldE93blByb3BlcnR5U2xvdCB0byBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02OTgxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbmFtZWQgdGhlIHZpcnR1YWwgdmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0
eVNsb3QgdG8gZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbAorICAgICAgICBpbiBwcmVwYXJhdGlv
biBmb3Igd2hlbiB3ZSBhZGQgdGhlIHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gdGhlIE1l
dGhvZFRhYmxlIAorICAgICAgICBpbiBDbGFzc0luZm8uCisKKyAgICAgICAgQWxzbyBhZGRlZCBh
IGZldyBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IGZ1bmN0aW9ucyB3aGVyZSB0aGV5IGhhZCBi
ZWVuIG92ZXJsb29rZWQgCisgICAgICAgIGJlZm9yZSAoZXNwZWNpYWxseSBpbiBDb2RlR2VuZXJh
dG9ySlMucG0pLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2Vy
T2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBVc2VyT2Jq
ZWN0SW1wLmg6CisKIDIwMTEtMTAtMDggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgc3RhdGljIHZlcnNpb24gb2YgSlNDZWxsOjpnZXRPd25Q
cm9wZXJ0eVNsb3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCA3
YjYwODkzYTg2ODMyZTc3NDhkOWQxNmMzNjA3NTQ3ZjRiMzljYWRjLi5mNzA4ODI5ZDExYTY4OGQ4
MDYzNTE1MGRmMjlmZDlhYWQ1ODM2ZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgSlNWYWx1ZSBVc2VyT2JqZWN0SW1wOjp1c2Vy
T2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW4KICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIFVzZXJPYmplY3RJbXA6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQorYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2Jq
ZWN0SW1wLmgKaW5kZXggNmRjNTk1MTA0ZjdlOTJkMGM1NDIwYmNkZWI5NTE0M2EwZTNhYjBiMy4u
OTY0Yzc5Nzk0YmYxZDhkM2IwNzE3OTdlN2UwZTNlZjgyNGMwNjY2OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAK
ICAgICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
ICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YTZhZDFjMTM1OTJiZDQ0ODQ3NTk2MjQ4
MzdmMGMwYzY1MzE2MTNmLi5jYTJkMmRjZTg5YTY5MmY1MDgxZWZjYmM2OGQ0MzY2NGI1ZGQ2ODA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTEtMTAtMTAgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVy
dHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIFJlbmFt
ZWQgdGhlIHZpcnR1YWwgdmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbAorICAgICAgICBpbiBwcmVwYXJhdGlvbiBmb3Igd2hlbiB3ZSBhZGQg
dGhlIHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gdGhlIE1ldGhvZFRhYmxlIAorICAgICAg
ICBpbiBDbGFzc0luZm8uCisKKyAgICAgICAgQWxzbyBhZGRlZCBhIGZldyBzdGF0aWMgZ2V0T3du
UHJvcGVydHlTbG90IGZ1bmN0aW9ucyB3aGVyZSB0aGV5IGhhZCBiZWVuIG92ZXJsb29rZWQgCisg
ICAgICAgIGJlZm9yZSAoZXNwZWNpYWxseSBpbiBDb2RlR2VuZXJhdG9ySlMucG0pLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmdldE93blByb3Bl
cnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpEaWFsb2dIYW5kbGVyOjpyZXR1cm5WYWx1ZSk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dv
cmtlckNvbnRleHQ6OmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xv
bmVTZXJpYWxpemVyOjpnZXRTcGFyc2VJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNl
cmlhbGl6ZXI6OmdldFByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSk6
CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0
aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6CisgICAgICAgICogYnJpZGdlL29iamMv
b2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgor
ICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwOgor
ICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRJbnN0YW5jZTo6Z2V0T3duUHJvcGVydHlTbG90KToK
KyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAg
ICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmg6Cisg
ICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1l
QXJyYXk6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAg
ICAgKEpTQzo6UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5o
OgorCiAyMDExLTEwLTEwICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBNYWtlIHN0YXRpYyBmdW5jdGlvbnMgaW4gSFRNTFNlbGVjdEVsZW1lbnQuY3BwIG1lbWJl
ciBmdW5jdGlvbnMgb2YgSFRNTFNlbGVjdEVsZW1lbnQgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggMWRmNGQ3ZmYxMjk1MDBiYzdmNjc2YzBjYjUxNDhlYzk3MmEwOGZmYS4uMjgyMWFhYTM2
OTQ5ODE2Mjg1N2RhNmU4OGE1OWYzZTk3M2EyNmY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTE2ODIsOCArMTY4Miw5IEBAIF9fWk43V2ViQ29yZTVGcmFtZTI2c2VuZE9yaWVudGF0aW9uQ2hh
bmdlRXZlbnRFaQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxMWdldENhbGxEYXRhRVBOU182SlND
ZWxsRVJOU184Q2FsbERhdGFFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDE0ZmluaXNoQ3JlYXRp
b25FUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxM1J1bnRp
bWVNZXRob2QxOGdldENhbGxEYXRhVmlydHVhbEVSTlNfOENhbGxEYXRhRQotX19aTjNKU0MxM1J1
bnRpbWVNZXRob2QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzEzUnVudGltZU1ldGhvZDE4Z2V0
T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMjRnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4
UHJvcGVydHlEZXNjcmlwdG9yRQorX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNWdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJv
cGVydHlTbG90RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2Q2c19pbmZvRQogX19aTjNKU0MxM1J1
bnRpbWVNZXRob2RDMkVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUVSTjNXVEY2
VmVjdG9ySVBOU184QmluZGluZ3M2TWV0aG9kRUxtMEVFRQogX19aTjNKU0M4QmluZGluZ3MxMFJv
b3RPYmplY3REMUV2CkBAIC0xNjkyLDkgKzE2OTMsMTAgQEAgX19aTjNKU0M4QmluZGluZ3MxM1J1
bnRpbWVPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVQTlNf
MTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTZnZXRD
b25zdHJ1Y3REYXRhRVJOU18xM0NvbnN0cnVjdERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVu
dGltZU9iamVjdDE4Z2V0Q2FsbERhdGFWaXJ0dWFsRVJOU184Q2FsbERhdGFFCi1fX1pOM0pTQzhC
aW5kaW5nczEzUnVudGltZU9iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKK19fWk4zSlNDOEJpbmRpbmdz
MTNSdW50aW1lT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4Qmlu
ZGluZ3MxM1J1bnRpbWVPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVF
Uk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhC
aW5kaW5nczEzUnVudGltZU9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhl
Y1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19fWk4z
SlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4z
SlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5k
aW5nczEzUnVudGltZU9iamVjdDZzX2luZm9FCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9i
amVjdEMyRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJl
RU4zV1RGMTBQYXNzUmVmUHRySU5TMF84SW5zdGFuY2VFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAwNGI1Yjk3NjUyN2E0ZmQx
OTViNDVhYjI4NDk1NjRlYWM4NWQyZTY4Li4zZGYwZWQ2MmFlZWY5ZDgzMmRmNzY1Y2IzMGQ3ZDcz
NmIzYWZhN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCkBAIC0xMjEsOCArMTIxLDE0IEBAIHN0YXRpYyBKU1ZhbHVlIG5hbWVkSXRl
bUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZp
CiAgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iaiwgY29sbGVjdGlvbi5nZXQoKSk7CiB9CiAK
LWJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAg
IHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKK30KKworYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PEpTRE9NV2luZG93Kj4oY2VsbCk7CiAgICAgLy8gV2hlbiBhY2Nlc3NpbmcgYSBXaW5kb3cg
Y3Jvc3MtZG9tYWluLCBmdW5jdGlvbnMgYXJlIGFsd2F5cyB0aGUgbmF0aXZlIGJ1aWx0LWluIG9u
ZXMsIGFuZCB0aGV5CiAgICAgLy8gYXJlIG5vdCBhZmZlY3RlZCBieSBwcm9wZXJ0aWVzIGNoYW5n
ZWQgb24gdGhlIFdpbmRvdyBvciBhbnl0aGluZyBpbiBpdHMgcHJvdG90eXBlIGNoYWluLgogICAg
IC8vIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBiZWhhdmlvciBvZiBGaXJlZm94LgpAQCAt
MTMyLDE3ICsxMzgsMTcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAgICAvLyBXZSBkb24n
dCB3YW50IGFueSBwcm9wZXJ0aWVzIG90aGVyIHRoYW4gImNsb3NlIiBhbmQgImNsb3NlZCIgb24g
YSBmcmFtZWxlc3Mgd2luZG93IChpLmUuIG9uZSB3aG9zZSBwYWdlIGdvdCBjbG9zZWQsCiAgICAg
Ly8gb3Igd2hvc2UgaWZyYW1lIGdvdCByZW1vdmVkKS4KICAgICAvLyBGSVhNRTogVGhpcyBkb2Vz
bid0IGZ1bGx5IG1hdGNoIEZpcmVmb3gsIHdoaWNoIGFsbG93cyBhdCBsZWFzdCB0b1N0cmluZyBp
biBhZGRpdGlvbiB0byB0aG9zZS4KLSAgICBpZiAoIWltcGwoKS0+ZnJhbWUoKSkgeworICAgIGlm
ICghdGhpc09iamVjdC0+aW1wbCgpLT5mcmFtZSgpKSB7CiAgICAgICAgIC8vIFRoZSBmb2xsb3dp
bmcgY29kZSBpcyBzYWZlIGZvciBjcm9zcy1kb21haW4gYW5kIHNhbWUgZG9tYWluIHVzZS4KICAg
ICAgICAgLy8gSXQgaWdub3JlcyBhbnkgY3VzdG9tIHByb3BlcnRpZXMgdGhhdCBtaWdodCBiZSBz
ZXQgb24gdGhlIERPTVdpbmRvdyAoaW5jbHVkaW5nIGEgY3VzdG9tIHByb3RvdHlwZSkuCiAgICAg
ICAgIGVudHJ5ID0gc19pbmZvLnByb3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3Bl
cnR5TmFtZSk7CiAgICAgICAgIGlmIChlbnRyeSAmJiAhKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBG
dW5jdGlvbikgJiYgZW50cnktPnByb3BlcnR5R2V0dGVyKCkgPT0ganNET01XaW5kb3dDbG9zZWQp
IHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGVudHJ5LT5wcm9wZXJ0eUdldHRl
cigpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGVudHJ5LT5wcm9w
ZXJ0eUdldHRlcigpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAg
ICAgIGVudHJ5ID0gSlNET01XaW5kb3dQcm90b3R5cGU6OnNfaW5mby5wcm9wSGFzaFRhYmxlKGV4
ZWMpLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAoZW50cnkgJiYgKGVu
dHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbikgJiYgZW50cnktPmZ1bmN0aW9uKCkgPT0ganNE
T01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlKSB7Ci0gICAgICAgICAgICBzbG90LnNldEN1
c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90
b3R5cGVGdW5jdGlvbkNsb3NlLCAwPik7CisgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlz
T2JqZWN0LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5
cGVGdW5jdGlvbkNsb3NlLCAwPik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogCkBAIC0xNTYsMTEgKzE2MiwxMSBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgIC8v
IGJlY2F1c2Ugd2UgYWx3YXlzIGFsbG93IGFjY2VzcyB0byBzb21lIGZ1bmN0aW9uLCBqdXN0IGRp
ZmZlcmVudCBvbmVzIGRlcGVuZGluZyB3aGV0aGVyIGFjY2VzcwogICAgIC8vIGlzIGFsbG93ZWQu
CiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBib29sIGFsbG93c0FjY2VzcyA9IGFsbG93
c0FjY2Vzc0Zyb20oZXhlYywgZXJyb3JNZXNzYWdlKTsKKyAgICBib29sIGFsbG93c0FjY2VzcyA9
IHRoaXNPYmplY3QtPmFsbG93c0FjY2Vzc0Zyb20oZXhlYywgZXJyb3JNZXNzYWdlKTsKIAogICAg
IC8vIExvb2sgZm9yIG92ZXJyaWRlcyBiZWZvcmUgbG9va2luZyBhdCBhbnkgb2Ygb3VyIG93biBw
cm9wZXJ0aWVzLCBidXQgaWdub3JlIG92ZXJyaWRlcyBjb21wbGV0ZWx5CiAgICAgLy8gaWYgdGhp
cyBpcyBjcm9zcy1kb21haW4gYWNjZXNzLgotICAgIGlmIChhbGxvd3NBY2Nlc3MgJiYgSlNHbG9i
YWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQor
ICAgIGlmIChhbGxvd3NBY2Nlc3MgJiYgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIC8vIFdlIG5lZWQgdGhpcyBjb2RlIGhlcmUgYmVjYXVzZSBvdGhlcndpc2Ug
SlNET01XaW5kb3dCYXNlIHdpbGwgc3RvcCB0aGUgc2VhcmNoIGJlZm9yZSB3ZSBldmVuIGdldCB0
byB0aGUKQEAgLTE3MiwyNiArMTc4LDI2IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAg
ICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgRnVuY3Rpb24pIHsKICAgICAgICAgICAgIGlm
IChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQmx1cikg
ewogICAgICAgICAgICAgICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxq
c0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQmx1ciwgMD4pOworICAgICAgICAgICAgICAgICAg
ICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0
ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkJsdXIsIDA+KTsKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNl
IGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xv
c2UpIHsKICAgICAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAgICAg
ICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0
ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlLCAwPik7CisgICAgICAgICAgICAg
ICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlv
bkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2UsIDA+KTsKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0
aW9uRm9jdXMpIHsKICAgICAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAg
ICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rp
b25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkZvY3VzLCAwPik7CisgICAgICAg
ICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNG
dW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uRm9jdXMsIDA+KTsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlw
ZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpIHsKICAgICAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2Vz
cykgewotICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5n
U3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNz
YWdlLCAyPik7CisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3Qs
IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0
aW9uUG9zdE1lc3NhZ2UsIDI+KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24o
KSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhpbXBsKCktPmZy
YW1lKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFET01XaW5kb3c6OmNhblNob3dNb2RhbERp
YWxvZyh0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1lKCkpKSB7CiAgICAgICAgICAgICAgICAgICAg
IHNsb3Quc2V0VW5kZWZpbmVkKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICAgICAgICAgIH0KQEAgLTIwMSw3ICsyMDcsNyBAQCBib29sIEpTRE9NV2luZG93Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eQogICAgICAgICAvLyBBbGxvdyBhY2Nlc3MgdG8gdG9TdHJpbmcoKSBjcm9zcy1kb21haW4s
IGJ1dCBhbHdheXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy4KICAgICAgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9TdHJpbmcpIHsKICAgICAgICAgICAg
IGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhp
cywgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcik7CisgICAgICAgICAgICAgICAgc2xvdC5z
ZXRDdXN0b20odGhpc09iamVjdCwgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcik7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIw
OSw3ICsyMTUsNyBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogCiAgICAgZW50cnkgPSBKU0RP
TVdpbmRvdzo6c19pbmZvLnByb3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5
TmFtZSk7CiAgICAgaWYgKGVudHJ5KSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGVu
dHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVj
dCwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKQEAgLTIxOCwxOCArMjI0LDE4IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgLy8g
bmFtaW5nIGZyYW1lcyB0aGluZ3MgdGhhdCBjb25mbGljdCB3aXRoIHdpbmRvdyBwcm9wZXJ0aWVz
IHRoYXQKICAgICAvLyBhcmUgaW4gTW96IGJ1dCBub3QgSUUuIFNpbmNlIHdlIGhhdmUgc29tZSBv
ZiB0aGVzZSwgd2UgaGF2ZSB0byBkbwogICAgIC8vIGl0IHRoZSBNb3ogd2F5LgotICAgIGlmIChp
bXBsKCktPmZyYW1lKCktPnRyZWUoKS0+Y2hpbGQoaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHBy
b3BlcnR5TmFtZSkpKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGNoaWxkRnJhbWVH
ZXR0ZXIpOworICAgIGlmICh0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1lKCktPnRyZWUoKS0+Y2hp
bGQoaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKSB7CisgICAgICAgIHNs
b3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGNoaWxkRnJhbWVHZXR0ZXIpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBEbyBwcm90b3R5cGUgbG9va3VwIGVhcmx5IHNvIHRo
YXQgZnVuY3Rpb25zIGFuZCBhdHRyaWJ1dGVzIGluIHRoZSBwcm90b3R5cGUgY2FuIGhhdmUKICAg
ICAvLyBwcmVjZWRlbmNlIG92ZXIgdGhlIGluZGV4IGFuZCBuYW1lIGdldHRlcnMuICAKLSAgICBK
U1ZhbHVlIHByb3RvID0gcHJvdG90eXBlKCk7CisgICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmpl
Y3QtPnByb3RvdHlwZSgpOwogICAgIGlmIChwcm90by5pc09iamVjdCgpKSB7CiAgICAgICAgIGlm
IChhc09iamVjdChwcm90byktPmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKSB7CiAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAgICAgICAg
IHByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CisgICAgICAgICAgICAgICAgdGhpc09i
amVjdC0+cHJpbnRFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKICAgICAgICAgICAgICAgICBz
bG90LnNldFVuZGVmaW5lZCgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CkBAIC0yNDIsMjggKzI0OCwyOCBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgIC8v
IGFsbG93IHdpbmRvd1sxXSBvciBwYXJlbnRbMV0gZXRjLiAoIzU2OTgzKQogICAgIGJvb2wgb2s7
CiAgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS50b0FycmF5SW5kZXgob2spOwotICAgIGlm
IChvayAmJiBpIDwgaW1wbCgpLT5mcmFtZSgpLT50cmVlKCktPmNoaWxkQ291bnQoKSkgewotICAg
ICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXMsIGksIGluZGV4R2V0dGVyKTsKKyAgICBpZiAo
b2sgJiYgaSA8IHRoaXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGlsZENvdW50
KCkpIHsKKyAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzT2JqZWN0LCBpLCBpbmRleEdl
dHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmICghYWxsb3dzQWNj
ZXNzKSB7Ci0gICAgICAgIHByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CisgICAgICAg
IHRoaXNPYmplY3QtPnByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAgIHNs
b3Quc2V0VW5kZWZpbmVkKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8v
IEFsbG93IHNob3J0Y3V0cyBsaWtlICdJbWFnZTEnIGluc3RlYWQgb2YgZG9jdW1lbnQuaW1hZ2Vz
LkltYWdlMQotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1l
bnQoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1l
KCktPmRvY3VtZW50KCk7CiAgICAgaWYgKGRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgpKSB7CiAg
ICAgICAgIEF0b21pY1N0cmluZ0ltcGwqIGF0b21pY1Byb3BlcnR5TmFtZSA9IGZpbmRBdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKTsKICAgICAgICAgaWYgKGF0b21pY1Byb3BlcnR5TmFtZSAmJiAo
c3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oZG9jdW1lbnQpLT5oYXNOYW1lZEl0ZW0oYXRvbWlj
UHJvcGVydHlOYW1lKSB8fCBkb2N1bWVudC0+aGFzRWxlbWVudFdpdGhJZChhdG9taWNQcm9wZXJ0
eU5hbWUpKSkgewotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbmFtZWRJdGVtR2V0
dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5hbWVkSXRlbUdl
dHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KIAotICAg
IHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKKyAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtNjgzLDcgKzY4OSw3IEBA
IGlubGluZSBKU1ZhbHVlIERpYWxvZ0hhbmRsZXI6OnJldHVyblZhbHVlKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKG1fZXhl
YywgInJldHVyblZhbHVlIik7CiAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKCFnbG9i
YWxPYmplY3QtPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQor
ICAgIGlmICghZ2xvYmFsT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhlYywg
aWRlbnRpZmllciwgc2xvdCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIHJl
dHVybiBzbG90LmdldFZhbHVlKG1fZXhlYywgaWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCmluZGV4IDZkMjZmOTg1Yzcx
YjZjNGI4M2IwYTMwMjk4OWIwN2YwYmEzMjdiMWUuLmZhNjFiNDk2YjI4NDdmZWI1NmM2NmMzOTA3
NWMyODY0YWQwOTM0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuY3BwCkBAIC0xMDAsMTQgKzEwMCwxNCBAQCBVU3RyaW5nIEpTRE9NV2luZG93
U2hlbGw6OmNsYXNzTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fd2luZG93LT5jbGFzc05hbWUo
KTsKIH0KIAotYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK2Jvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oY2VsbCktPm1fd2luZG93LT5nZXRPd25Qcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpLT5tX3dpbmRvdy0+Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9NV2luZG93U2hl
bGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IGI1ZGQz
YTZhMTZjMmNkOGE2M2Y5OGEzZjkyNzk4MzUyYmRmMGQ2NzcuLjZhYzkxYmNhZjI3YzNhMjAyNDgw
YjlmOTFmN2M0YmY4YzZjNTFlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmgKQEAgLTgwLDcgKzgwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpKU0NlbGwqLCBKU0M6OlNs
b3RWaXNpdG9yJik7CiAgICAgICAgIHZpcnR1YWwgSlNDOjpVU3RyaW5nIGNsYXNzTmFtZSgpIGNv
bnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcApp
bmRleCA2N2YyZTk5YmE2NDBlM2M2NjUzYTdmZGJkNjg2Nzc5NWVjZjNhN2I3Li5mZWM0MTlmYjc0
MDQ2ZmMyYzA3Y2Y4NTAwYTE1YzBkNTViYzdiNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKQEAgLTcyLDcgKzcyLDcg
QEAgdm9pZCBKU1dvcmtlckNvbnRleHQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKIGJvb2wgSlNXb3JrZXJDb250ZXh0OjpnZXRPd25Qcm9wZXJ0eVNs
b3REZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIC8vIExvb2sgZm9yIG92ZXJyaWRlcyBiZWZv
cmUgbG9va2luZyBhdCBhbnkgb2Ygb3VyIG93biBwcm9wZXJ0aWVzLgotICAgIGlmIChKU0dsb2Jh
bE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisg
ICAgaWYgKEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAKaW5kZXggOGRiZTNlYTA5YzdjN2ZiZjVkNDlkN2U1MGZjZmExZDQzNGQxNDBi
OS4uYjEwZjFkN2NjMWJlMTUyNTI1NjBlYzQzNWNiYjQ0YzJjMjU0Yzc2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBA
IC0zMzMsMTEgKzMzMywxMSBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgUHJvcGVydHlTbG90
IHNsb3QoYXJyYXkpOwogICAgICAgICBpZiAoaXNKU0FycmF5KCZtX2V4ZWMtPmdsb2JhbERhdGEo
KSwgYXJyYXkpKSB7Ci0gICAgICAgICAgICBpZiAoYXJyYXktPkpTQXJyYXk6OmdldE93blByb3Bl
cnR5U2xvdChtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgICAgIGlmIChK
U0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoYXJyYXksIG1fZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KSkgewogICAgICAgICAgICAgICAgIGhhc0luZGV4ID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gc2xvdC5nZXRWYWx1ZShtX2V4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoYXJyYXktPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgfSBlbHNlIGlmIChhcnJheS0+Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAg
ICAgICAgIGhhc0luZGV4ID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVl
KG1fZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgfQpAQCAtMzQ4LDcgKzM0OCw3IEBAIHBy
aXZhdGU6CiAgICAgSlNWYWx1ZSBnZXRQcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xv
dChvYmplY3QpOwotICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QobV9leGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKG1fZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJl
dHVybiBzbG90LmdldFZhbHVlKG1fZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgcmV0dXJu
IEpTVmFsdWUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDlkZmQxMmMxOTA5MDFlM2FiNjc1Njg5NmMyMGFi
OWUzNjM0OWZhZTkuLjFmOTg3ZTI4MWIyMjQyYTQ3YWYxMWY2OTI0NzkzOWI2NjcyNmIzYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC00MzAsNyArNDMwLDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9k
eQogICAgIG15IEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsID0gKCk7CiAKICAgICBpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIk5hbWVkTm9kZU1hcCIgb3IgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxDb2xs
ZWN0aW9uIiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTEFsbENvbGxlY3Rpb24iKSB7Ci0gICAg
ICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgJHtuYW1lc3BhY2VNYXliZX1K
U1ZhbHVlIHByb3RvID0gcHJvdG90eXBlKCk7XG4iKTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJv
cGVydHlTbG90SW1wbCwgIiAgICAke25hbWVzcGFjZU1heWJlfUpTVmFsdWUgcHJvdG8gPSB0aGlz
T2JqZWN0LT5wcm90b3R5cGUoKTtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNs
b3RJbXBsLCAiICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIHN0YXRpY19jYXN0PCR7bmFtZXNw
YWNlTWF5YmV9SlNPYmplY3QqPihhc09iamVjdChwcm90bykpLT5oYXNQcm9wZXJ0eShleGVjLCBw
cm9wZXJ0eU5hbWUpKVxuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGws
ICIgICAgICAgIHJldHVybiBmYWxzZTtcblxuIik7CiAgICAgfQpAQCAtNDQwLDcgKzQ0MCw3IEBA
IHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAgICAgICAgaWYgKCRyZXF1aXJl
c01hbnVhbExvb2t1cCkgewogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1w
bCwgIiAgICBjb25zdCAke25hbWVzcGFjZU1heWJlfUhhc2hFbnRyeSogZW50cnkgPSAke2NsYXNz
TmFtZX1UYWJsZS5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChlbnRyeSkge1xuIik7Ci0gICAg
ICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1
c3RvbSh0aGlzLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNP
YmplY3QsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChA
Z2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgfVxuIik7CiAgICAgICAg
IH0KQEAgLTQ1OSwyMCArNDU5LDIwIEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJv
ZHkKICAgICAgICAgaWYgKEluZGV4R2V0dGVyUmV0dXJuc1N0cmluZ3MoJGltcGxDbGFzc05hbWUp
KSB7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChv
aykge1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChvayAmJiBpbmRleCA8IHN0YXRpY19jYXN0PCRpbXBsQ2xh
c3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChAZ2V0
T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAob2sgJiYgaW5kZXggPCBzdGF0aWNfY2FzdDwk
aW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKICAg
ICAgICAgfQogICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
Q3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJI
YXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewotICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVy
dHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZShnZXRCeUluZGV4KGV4ZWMsIGluZGV4
KSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCkpO1xu
Iik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNs
b3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXMsIGluZGV4LCBpbmRleEdl
dHRlcik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIg
ICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpc09iamVjdCwgaW5kZXgsIGluZGV4R2V0dGVy
KTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGws
ICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
U2xvdEltcGwsICIgICAgfVxuIik7CiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ikhhc05hbWVHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9KSB7Ci0gICAgICAgIHB1c2goQGdl
dE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKGNhbkdldEl0ZW1zRm9yTmFtZShleGVjLCBz
dGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGltcGwoKSksIHByb3BlcnR5TmFtZSkpIHtcbiIp
OwotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzLCBuYW1lR2V0dGVyKTtcbiIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChjYW5HZXRJdGVtc0Zvck5hbWUoZXhlYywgc3RhdGljX2Nh
c3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLCBwcm9wZXJ0eU5hbWUpKSB7
XG4iKTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xv
dC5zZXRDdXN0b20odGhpc09iamVjdCwgdGhpc09iamVjdC0+bmFtZUdldHRlcik7XG4iKTsKICAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7
XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICB9XG4iKTsK
ICAgICAgICAgaWYgKCRpbmxpbmVkKSB7CkBAIC00ODcsMTkgKzQ4NywxOSBAQCBzdWIgR2VuZXJh
dGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifSkgewotICAg
ICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChnZXRPd25Qcm9wZXJ0
eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7CisgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKHRoaXNPYmplY3QtPmdldE93blBy
b3BlcnR5U2xvdERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKICAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4i
KTsKICAgICB9CiAKICAgICBpZiAoJGhhc0F0dHJpYnV0ZXMpIHsKICAgICAgICAgaWYgKCRpbmxp
bmVkKSB7CiAgICAgICAgICAgICBkaWUgIkNhbm5vdCBpbmxpbmUgaWYgTm9TdGF0aWNUYWJsZXMg
aXMgc2V0LiIgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFi
bGVzIn0pOwotICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBy
ZXR1cm4gJHtuYW1lc3BhY2VNYXliZX1nZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFtZSwgQmFz
ZT4oZXhlYywgc19pbmZvLnN0YXRpY1Byb3BIYXNoVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIg
ICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVTbG90PCRjbGFzc05hbWUs
IEJhc2U+KGV4ZWMsIHNfaW5mby5zdGF0aWNQcm9wSGFzaFRhYmxlLCB0aGlzT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdl
dFN0YXRpY1ZhbHVlU2xvdDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCAiIC4gaGFzaFRhYmxlQWNj
ZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwg
JGNsYXNzTmFtZSkgLiAiLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFj
ZU1heWJlfWdldFN0YXRpY1ZhbHVlU2xvdDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCAiIC4gaGFz
aFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNU
YWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
O1xuIik7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNs
b3RJbXBsLCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgIH0KIAogICAgIHJldHVybiBAZ2V0
T3duUHJvcGVydHlTbG90SW1wbDsKQEAgLTc3MCw5ICs3NzAsMTEgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAKICAgICAjIEdldHRlcnMKICAgICBpZiAoJGhhc0dldHRlcikgewotICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4i
KTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlm
ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0p
ICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdl
dHRlciJ9OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgJiYgISRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn07CisgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7XG4iKSBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
SW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0
b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051
bWVyaWNJbmRleEdldHRlciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBib29sIGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvckRlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwg
SlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgJHN0cnVj
dHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCJ9ID0gMTsKQEAgLTk2
OCw5ICs5NzAsMTQgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIn07XG5cbiIpOwogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IklubGluZUdldE93blByb3BlcnR5U2xvdCJ9ICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QifSkgewotICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIkFMV0FZU19JTkxJTkUgYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAie1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOworICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAifVxuXG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZ
U19JTkxJTkUgYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2Vs
bCogY2VsbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAie1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
JHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2Vs
bCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7CiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSgkZGF0YU5vZGUsICRp
bnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMg
PiAwLCAxKSk7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9XG5cbiIpOwogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpXG4iKTsKQEAgLTEwMzYsNyArMTA0Myw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8g
c19pbmZvO1xuIik7CiAgICAgaWYgKCRudW1GdW5jdGlvbnMgPiAwIHx8ICRudW1Db25zdGFudHMg
PiAwIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5
cGVHZXRPd25Qcm9wZXJ0eVNsb3QifSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CisgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3Bl
cnR5U2xvdCYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJv
cGVydHlEZXNjcmlwdG9yJik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICBib29sIGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNs
b3QifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckRlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifTsK
QEAgLTE0MzQsMjIgKzE0NDIsMjggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KICAgICBpZiAoJG51bUNvbnN0
YW50cyA+IDAgfHwgJG51bUZ1bmN0aW9ucyA+IDAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiYm9vbCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdClcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG5cbiIpOworICAgICAgICAKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJi
b29sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwor
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihjZWxsKTtcbiIp
OwogCiAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0
aW5nUHJvdG90eXBlR2V0T3duUHJvcGVydHlTbG90In0pIHsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGlmIChnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAodGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoJG51bUNvbnN0
YW50cyBlcSAwICYmICRudW1GdW5jdGlvbnMgZXEgMCkgewotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpO1xuIik7ICAgICAgICAKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOyAgICAgICAgCiAgICAgICAgIH0gZWxzaWYgKCRu
dW1Db25zdGFudHMgZXEgMCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
cmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlw
ZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3Rh
dGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRp
Y0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vz
c29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRj
bGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAg
ICAgICB9IGVsc2lmICgkbnVtRnVuY3Rpb25zIGVxIDApIHsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjbGFzc05hbWV9UHJv
dG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05h
bWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDwke2NsYXNzTmFt
ZX1Qcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNz
b3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNs
YXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
Z2V0U3RhdGljUHJvcGVydHlTbG90PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4
ZWMsICIgLiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBKU09i
amVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhp
c09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIApAQCAtMTU3Myw5ICsxNTg3LDE0IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgIyBBdHRyaWJ1dGVzCiAgICAgaWYgKCRoYXNHZXR0
ZXIpIHsKICAgICAgICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmxp
bmVHZXRPd25Qcm9wZXJ0eVNsb3QifSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90In0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCAmc19pbmZvKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVy
YXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xh
c3NOYW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAwKSk7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVz
Y3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwpAQCAtMTU4NywxOCArMTYwNiwyMyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgIGlmICgoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAKICAgICAgICAgICAgICAgICAmJiAh
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIi
fSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5m
byk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChwcm9wZXJ0
eU5hbWUgPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGltcGwoKSktPmxlbmd0aCgpKSB7
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdClcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmpl
Y3QsICZzX2luZm8pO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBp
ZiAocHJvcGVydHlOYW1lIDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0
LT5pbXBsKCkpLT5sZW5ndGgoKSkge1xuIik7CiAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewotICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90LnNldFZhbHVlKGdldEJ5
SW5kZXgoZXhlYywgcHJvcGVydHlOYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5nZXRCeUluZGV4
KGV4ZWMsIHByb3BlcnR5TmFtZSkpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4
KHRoaXMsIHByb3BlcnR5TmFtZSwgaW5kZXhHZXR0ZXIpO1xuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpc09iamVj
dCwgcHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0LT5pbmRleEdldHRlcik7XG4iKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1
ZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7Ci0gICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiB0aGlzT2JqZWN0LT5n
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJv
cGVydHlOYW1lKSwgc2xvdCk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuXG4iKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTMxNTcsNyArMzE4MSw4IEBAIHN1YiBH
ZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgICAgIHJldHVybiBwdHI7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxu
XG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3Bl
cnR5U2xvdCYpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7CiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsK
IApAQCAtMzIxMiw5ICszMjM3LDE0IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlv
bgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigke251bWJlck9mY29u
c3RydWN0UGFyYW1ldGVyc30pLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7XG4i
KSBpZiAkbnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzOwogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIn1cblxuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y29uc3RydWN0
b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIntcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0T3duUHJv
cGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAgIAorICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
ImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsK
LSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDwk
e2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwgSlNET01XcmFwcGVyPihleGVjLCAmJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX1UYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PCR7Y29uc3Ry
dWN0b3JDbGFzc05hbWV9LCBKU0RPTVdyYXBwZXI+KGV4ZWMsICYke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfVRhYmxlLCBzdGF0aWNfY2FzdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSo+KGNlbGwpLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4i
KTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFt
ZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IDI5NGQ5ODRk
ZGUwYmI4YTVmMzA3NDAwNmU1ODU1YjYwY2E0OTFlNmUuLjk0ZmIyZDllNzVhZmU4ZWExODkwMmZl
NTViODNmYWZiZmM2YWJhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5oCkBAIC0xMjMsNyArMTIzLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBPYmpj
RmFsbGJhY2tPYmplY3RJbXAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBPYmpjSW5zdGFu
Y2UqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpT
T2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFs
IHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUubW0KaW5kZXggMTYwZjc4ZjEwZmNjNzFmODgwMjRhOTIzNGFlMGExYmUyM2IyY2I3
Ny4uOGVhYjViOGRkMjM2MGFjNDY2OWUxNmYwMTI3NDkzYjdhZGVjM2ZjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjA1LDcgKzIwNSw3IEBAIHZv
aWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKLWJvb2wg
T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29s
IE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZp
ZXIsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2lu
c3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKaW5k
ZXggMGQ2MWE2MDIyOTAyYjBjYzZmNTY0OTAyMjZlNjQ5MDU5ZWEzM2JiNC4uYWU3NGRhOWFhMDNl
OWM1NThkZDQwZjFiMDY2ZDFjNTNiMjNmMTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfaW5zdGFuY2UuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgUGFzc1JlZlB0cjxRdEluc3RhbmNl
PiBRdEluc3RhbmNlOjpnZXRRdEluc3RhbmNlKFFPYmplY3QqIG8sIFBhc3NSZWZQdHI8Um9vdE9i
amUKIAogYm9vbCBRdEluc3RhbmNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVj
dCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gb2JqZWN0LT5KU09iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
fQogCiB2b2lkIFF0SW5zdGFuY2U6OnB1dChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmlu
ZGV4IGZjMWMzMTEwNTY4M2JjYzQ4NWEzMDE0ZTllZmU5ZjdhNjkwNjg1ODIuLmY5MjcxOTdmZDkw
ZDU2ZWNjNTg3ZjZjNGYxNWIxOTMwYmUyYTZiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcnVudGltZS5jcHAKQEAgLTE0OTksNyArMTQ5OSw3IEBAIENhbGxUeXBlIFF0UnVudGltZU1l
dGFNZXRob2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICBy
ZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1ib29sIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blBy
b3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMTc1MSw3
ICsxNzUxLDcgQEAgQ2FsbFR5cGUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7
CiB9CiAKLWJvb2wgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCitib29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X3J1bnRpbWUuaAppbmRleCBmMjc0N2IxNmZhYmUwMjJhMDIyNzAxOWM3OTBiZDRmNTgz
NTExYzZhLi5mOWQ5YjRiYTVkMDgxNTc4NGVmNGZlMmE3MDQ3ODY1ZWZlMjE0OTcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBtZXRob2Q7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3Bl
cnRpZXMpOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1ldGhv
ZDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0
aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggODBlMmE4Zjk1MWUxY2U1M2IyZjM2YTZmYjE1
NWMyM2I0OGU4ODliOC4uYjY0OWM0N2UyZjM4YmFmNWJmNmEzMDY3M2Y2OTRiYTc4ZjQ4MjEyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNzgsNyArNzgsNyBA
QCB2b2lkIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZQogICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi1ib29sIFJ1bnRpbWVBcnJheTo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTEyNiw3ICsx
MjYsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcAogICAgIHJldHVybiBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9
CiAKLWJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVj
LCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBSdW50aW1lQXJyYXk6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlICpleGVjLCB1bnNpZ25lZCBpbmRl
eCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpcywgZXhlYywgaW5kZXgsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmgKaW5kZXggYTNkNDQ1OGI2Yjg4ZDMzYzk0MzNkNjA5OTI2OGYyNGEzNDA4MjdkZi4uZGE5
M2M5NDVkNTFhMzdkM2Y4MTEwMmQ1NGRmOGM2OGJhYWM5YjgyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5oCkBAIC01MCw5ICs1MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5SdW50aW1lQXJyYXkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVz
KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBF
eGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2ln
bmVkLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRleCA5ZmRlM2IyZjFiNjI3YjA3YzZlYmQwMGRkN2Fh
YjJiYzFjMWNiMGVmLi42M2YyZGEwMDgyNzg2ZGJlNzVkNTU0YTI2ZTY2OTQ4ZmUzMGU0NGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAgLTY5LDcgKzY5LDcg
QEAgSlNWYWx1ZSBSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1
ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmkKICAgICByZXR1cm4ganNOdW1iZXIodGhpc09iai0+
X21ldGhvZExpc3QtPmF0KDApLT5udW1QYXJhbWV0ZXJzKCkpOwogfQogCi1ib29sIFJ1bnRpbWVN
ZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBSdW50aW1lTWV0aG9k
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCAyOWUzNjY0ODQ0ZjFiNjE1ZDYz
ODRmMTI4MmFkMDIxYTAzZTQyMWZmLi43YjhjMmRiNDMxN2QxYzk4NmQ1MzFjYmNlYzY5YzI5OTcx
YjIyYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtNjcsNyAr
NjcsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIEpTVmFsdWUgbGVuZ3Ro
R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKLSAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5k
ZXggYTg1ZjlhOTM1ODQ4YzA1NDcwZTgzZTQzNjc4ODYxNDE1YWRlYWJjMS4uZGVhNWJhOTcxMWE0
NDliNzc0YWVkNjE4OTI5NmIzZWM2MGZjNjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgSlNWYWx1ZSBSdW50aW1lT2JqZWN0
OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJ
ZGUKICAgICByZXR1cm4gbWV0aG9kOwogfQogCi1ib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuaAppbmRleCBmNzMzMDRmODdiYWQ2MzM1YTNjNjE2ZGFkNzgzM2YwY2Vh
MTk1ZjFmLi44MDU5YjRmZjA3YWMxODE1NjBkNzM2ODhlYTdkNjM3MjcxZWNjYTllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIH5SdW50aW1lT2JqZWN0KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAg
dmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDE2MTRkZTg3N2Mw
MGY3YTI3NDJjMDVjMjdkMDk0MTFiZGI5MzgyNGYuLjAwODliZDJmNzM1YTUyNjcxMzA2MTQ1OWRm
YWQ4OWFhZWMyMjA1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMC0xMCAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFt
ZSBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWVkIHRoZSB2aXJ0
dWFsIHZlcnNpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwKKyAgICAgICAgaW4gcHJlcGFyYXRpb24gZm9yIHdoZW4gd2UgYWRkIHRoZSBzdGF0aWMg
Z2V0T3duUHJvcGVydHlTbG90IHRvIHRoZSBNZXRob2RUYWJsZSAKKyAgICAgICAgaW4gQ2xhc3NJ
bmZvLgorCisgICAgICAgIEFsc28gYWRkZWQgYSBmZXcgc3RhdGljIGdldE93blByb3BlcnR5U2xv
dCBmdW5jdGlvbnMgd2hlcmUgdGhleSBoYWQgYmVlbiBvdmVybG9va2VkIAorICAgICAgICBiZWZv
cmUgKGVzcGVjaWFsbHkgaW4gQ29kZUdlbmVyYXRvckpTLnBtKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKwogMjAxMS0xMC0xMCAgU2ltb24g
SGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBGaXgg
YnVpbGQgd2l0aCBxcmVhbCA9PSBmbG9hdCBvbiBNZWVHbyAxLjIgSGFybWF0dGFuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5jcHAKaW5kZXggZWMxM2UxY2NlOTQ1ZTNlNzFiYWFlMjY3YmI2ZjU3MzBjMjg3NDUxYi4u
ODk2M2Y3ZGEwYjNhNDY3MjRkNWMyYWU5OTkzZmZlMTA2ZGUzYzgwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0
LmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIENvbnN0cnVjdFR5cGUgSlNOUE9iamVjdDo6Z2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqIGNlbGwsIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjCiAgICAgcmV0
dXJuIENvbnN0cnVjdFR5cGVIb3N0OwogfQogCi1ib29sIEpTTlBPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggZjNjMjg0
M2MyN2Y4OGM4NDk2OWEyZmNmYjk2Mzc0YTIzYTQ4MDMyNi4uYTUxOWJkNWE4ZjUxY2FlNTU4MWE3
NWRmOWJkYTdhMzAxOWQ0MDNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCkBAIC04NCw3ICs4NCw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShK
U0M6OkNvbnN0cnVjdERhdGEmKTsKICAgICBzdGF0aWMgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENv
bnN0cnVjdERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNvbnN0cnVjdERhdGEmKTsKIAotICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110464</attachid>
            <date>2011-10-10 19:56:24 -0700</date>
            <delta_ts>2011-10-10 20:10:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69810-20111010195625.patch</filename>
            <type>text/plain</type>
            <size>141910</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxMTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggYTU2MDM1YjlhNGQzM2UyOTFiNTYwYTU2NzE2YzMwMmFh
ZWJhODM0YS4uNjM1ZDljZmQwNGFmMGU1ODFmNGEyMzFhODM3MzkxNWI5ZWU5NDBkMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE3OCw3ICsx
NzgsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05h
bWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAogICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAppbmRleCA4ZWUwNjA2MjdlYjQ2YmFhMjZkYWFkZTBkYzQyMTc5ZTdk
ZDVhY2JlLi5hZmIwZWNiNmUzNzdiN2U2N2U5ZTA3OWMzZjdiNDJhNTBiOGY0YzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaApAQCAtMTI0LDIwICsxMjQsMjcgQEAgVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmNsYXNzTmFtZSgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1ib29s
IEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KK2Jv
b2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CiAgICAgSlNDb250ZXh0UmVmIGN0
eCA9IHRvUmVmKGV4ZWMpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsK
KyAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYodGhpc09iamVjdCk7CiAgICAgUmVmUHRy
PE9wYXF1ZUpTU3RyaW5nPiBwcm9wZXJ0eU5hbWVSZWY7CiAgICAgCi0gICAgZm9yIChKU0NsYXNz
UmVmIGpzQ2xhc3MgPSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFy
ZW50Q2xhc3MpIHsKKyAgICBmb3IgKEpTQ2xhc3NSZWYganNDbGFzcyA9IHRoaXNPYmplY3QtPmNs
YXNzUmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNzLT5wYXJlbnRDbGFzcykgewogICAg
ICAgICAvLyBvcHRpb25hbCBvcHRpbWl6YXRpb24gdG8gYnlwYXNzIGdldFByb3BlcnR5IGluIGNh
c2VzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGtub3cgaWYgdGhlIHByb3BlcnR5IGV4aXN0cwogICAg
ICAgICBpZiAoSlNPYmplY3RIYXNQcm9wZXJ0eUNhbGxiYWNrIGhhc1Byb3BlcnR5ID0ganNDbGFz
cy0+aGFzUHJvcGVydHkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQogICAg
ICAgICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocHJv
cGVydHlOYW1lLnVzdHJpbmcoKSk7CiAgICAgICAgICAgICBBUElDYWxsYmFja1NoaW0gY2FsbGJh
Y2tTaGltKGV4ZWMpOwogICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KGN0eCwgdGhpc1JlZiwg
cHJvcGVydHlOYW1lUmVmLmdldCgpKSkgewotICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIGNhbGxiYWNrR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzT2JqZWN0LCBjYWxsYmFja0dldHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNh
bGxiYWNrIGdldFByb3BlcnR5ID0ganNDbGFzcy0+Z2V0UHJvcGVydHkpIHsKQEAgLTE2Miw3ICsx
NjksNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAgICAgICAgaWYgKE9w
YXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3Rh
dGljVmFsdWVzKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAoc3RhdGljVmFsdWVzLT5jb250YWlu
cyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBnZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgICAgIEpT
VmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0LT5nZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICBz
bG90LnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC0xNzIsMjAgKzE3OSwyMCBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAg
ICAgICAgaWYgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNGdW5jdGlvbnNUYWJsZSogc3RhdGljRnVuY3Rp
b25zID0ganNDbGFzcy0+c3RhdGljRnVuY3Rpb25zKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAo
c3RhdGljRnVuY3Rpb25zLT5jb250YWlucyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAg
ICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKTsKKyAg
ICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNGdW5jdGlvbkdl
dHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIHRl
bXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgUHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKGdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CisgICAgaWYgKGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBJZGVhbGx5IHdlIHNob3VsZCByZXR1
cm4gYW4gYWNjZXNzIGRlc2NyaXB0b3IsIGJ1dCByZXR1cm5pbmcgYSB2YWx1ZSBkZXNjcmlwdG9y
IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICghZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCkBAIC01OTYsNyArNjAzLDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZQogICAgIAog
ICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHkuCiAgICAgUHJvcGVy
dHlTbG90IHNsb3QyKHRoaXNPYmopOwotICAgIGlmICh0aGlzT2JqLT5QYXJlbnQ6OmdldE93blBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QyKSkKKyAgICBpZiAoUGFyZW50Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90MikpCiAg
ICAgICAgIHJldHVybiBzbG90Mi5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIAog
ICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iai0+Y2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA4ZmE2ODUwODk2YTY2M2YyNjU1NDRmMDhkNzI5ZTRkN2ViMzgyMTc3Li4zZTFiOWYx
NmYyYTdkMTU4NGZjODNmY2Q1Mzg2YjM5ZWMyZmJkYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDEgQEAKKzIwMTEtMTAtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRv
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdmlydHVhbCB2ZXJzaW9uIG9mIGdldE93blBy
b3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGluIHByZXBh
cmF0aW9uIGZvciB3aGVuIHdlIGFkZCB0aGUgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCB0byB0
aGUgTWV0aG9kVGFibGUgCisgICAgICAgIGluIENsYXNzSW5mby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgZmV3IHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgZnVuY3Rpb25zIHdoZXJlIHRoZXkg
aGFkIGJlZW4gb3Zlcmxvb2tlZCAKKyAgICAgICAgYmVmb3JlIChlc3BlY2lhbGx5IGluIENvZGVH
ZW5lcmF0b3JKUy5wbSkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAg
ICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoSlNDOjo6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KToKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGlt
ZS9BcnJheUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAg
KiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmg6Cisg
ICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRl
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkVycm9yUHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBl
Lmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpK
U0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChK
U0M6OkpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU0Fy
cmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0JvdW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0J5dGVB
cnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93blByb3BlcnR5TmFt
ZXMpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6aGFzT3duUHJvcGVydHlGb3JXcml0ZSk6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6
OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SlNPTk9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OldhbGtlcjo6d2Fsayk6
CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAg
ICAgIChKU0M6OkpTT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9K
U09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6ZmFzdEdldE93blByb3BlcnR5U2xvdCk6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjpnZXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTU3RhdGljU2NvcGVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdHJpbmcuY3BwOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKiBydW50
aW1lL0xvb2t1cC5oOgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAoSlNDOjpnZXRTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAoSlNDOjpnZXRTdGF0
aWNWYWx1ZVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6Ok1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAq
IHJ1bnRpbWUvTWF0aE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6TnVtYmVy
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1l
L051bWJlclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJv
dG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL09i
amVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNo
ZXNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisKIDIwMTEtMTAtMTAgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgSlNWQUxVRTY0IHNwaWxsL2ZpbGwg
Y29kZSBzaG91bGQgbm90IGJveCBpbnRlZ2VycyBhbmQgZG91YmxlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggZmFhNWVjMjk1NmJjMWNjYzViM2E4N2U3ZDU5
ZmMxY2M2YzI0MTMzNC4uMTgyZmY1YzZlZGIzMzEwMzQ1OGUxNzQ5MmQ5ZGNiZjZmOTg4N2I2NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0xNDgsOCArMTQ4
LDYgQEAgX19aTjNKU0MxMlNtYWxsU3RyaW5nczE3Y3JlYXRlRW1wdHlTdHJpbmdFUE5TXzEySlNH
bG9iYWxEYXRhRQogX19aTjNKU0MxMlNtYWxsU3RyaW5nczI3Y3JlYXRlU2luZ2xlQ2hhcmFjdGVy
U3RyaW5nRVBOU18xMkpTR2xvYmFsRGF0YUVoCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTJT
dHJpbmdPYmplY3QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTU3Ry
aW5nRQotX19aTjNKU0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhl
Y1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDMTJT
dHJpbmdPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJv
cGVydHlTbG90RQogX19aTjNKU0MxMlN0cmluZ09iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQ
TlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9k
ZUUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBf
X1pOM0pTQzEyU3RyaW5nT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCkBAIC0xNjcsOCArMTY1LDkgQEAg
X19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTNjbGVhclJhcmVEYXRhRVBOU182SlNDZWxsRQogX19a
TjNKU0MxNEpTR2xvYmFsT2JqZWN0MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNs
b3RWaXNpdG9yRQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBO
UzBfMThHbG9iYWxQcm9wZXJ0eUluZm9FaQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdwdXRX
aXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1
ZUVqCi1fX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzE0
SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNH
bG9iYWxPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCitfX1pOM0pTQzE0SlNHbG9i
YWxPYmplY3QyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0
M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQ
dXRQcm9wZXJ0eVNsb3RFICAKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDRpbml0RVBOU184SlNP
YmplY3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q2c19pbmZvRQpAQCAtMjYwLDggKzI1OSw4
IEBAIF9fWk4zSlNDNkpTQ2VsbDExZ2V0Q2FsbERhdGFFUFMwX1JOU184Q2FsbERhdGFFCiBfX1pO
M0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBf
X1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVjdERhdGFFUk5TXzEzQ29uc3RydWN0RGF0YUUKLV9f
Wk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJ
ZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJv
cGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzZK
U0NlbGwyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNKU0M2SlNDZWxsMjVnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pO
M0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1Zh
bHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5TXzlFeGVj
U3RhdGVFak5TXzdKU1ZhbHVlRSAgCiBfX1pOM0pTQzZKU0NlbGw5Z2V0T2JqZWN0RXYKQEAgLTI4
MCw3ICsyNzksNyBAQCBfX1pOM0pTQzdKU0FycmF5MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxs
RVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNKU0M3SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5T
XzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0M3SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5TXzEy
SlNHbG9iYWxEYXRhRVJLTlNfN0FyZ0xpc3RFCiBfX1pOM0pTQzdKU0FycmF5MTVzZXRTdWJjbGFz
c0RhdGFFUHYKLV9fWk4zSlNDN0pTQXJyYXkxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNT
dGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNKU0M3SlNBcnJheTE4Z2V0T3duUHJvcGVy
dHlTbG90RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBf
X1pOM0pTQzdKU0FycmF5NnNfaW5mb0UKIF9fWk4zSlNDN0pTQXJyYXk5c2V0TGVuZ3RoRWoKIF9f
Wk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCkBAIC0z
MjMsMTIgKzMyMiwxMiBAQCBfX1pOM0pTQzhKU09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5T
XzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdQogX19aTjNKU0M4SlNPYmpl
Y3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5T
XzdKU1ZhbHVlRWpiUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QxN3B1
dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUVqCiBfX1pOM0pTQzhK
U09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWpS
TlNfMTJQcm9wZXJ0eVNsb3RFCi1fX1pOM0pTQzhKU09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90
RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDE5
Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJh
eUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURl
c2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlE
ZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3QyMmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RFUk5T
XzEyUHJvcGVydHlTbG90RVBOU18xNldyaXRlQmFycmllckJhc2VJTlNfN1Vua25vd25FRUUKIF9f
Wk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERh
dGFFbW0KIF9fWk4zSlNDOEpTT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQorX19a
TjNKU0M4SlNPYmplY3QyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVF
alJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBf
X1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNK
U0M4SlNPYmplY3QzcHV0RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXggMGNm
OTdmMjU5Nzc5ODU2MmYzNDRjODY2OWRhMWQ3YmNhNGI5YWJhZC4uNGU5MDY4MGM4MmFkZmM3ZjJi
ZGRkNmU3NTg1MTkzMjExMjQ1M2M0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTYwLDE0ICs2MCwxNCBAQCBV
U3RyaW5nIERlYnVnZ2VyQWN0aXZhdGlvbjo6Y2xhc3NOYW1lKCkgY29uc3QKICAgICByZXR1cm4g
bV9hY3RpdmF0aW9uLT5jbGFzc05hbWUoKTsKIH0KIAotYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJv
b2wgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24q
PihjZWxsKS0+bV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4o
Y2VsbCktPm1fYWN0aXZhdGlvbi0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXggN2E1NWE3YTM5NTg0YWU3ZDliYjVh
ZTk0ZGNhMDBkNTlkNTk0NDk5NS4uNGRlZjBlYjdjMGU5NWU1Njk1M2FiNDk3MDA3NjkzNDhhODU2
NzUyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
QWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uaApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAg
ICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IGM0OTRkYTEzMmMyYTMw
NTk0MzJmMjIyMjE0Yzk1Y2YwNGU5YzRhYjUuLjM1NWRkMjAzNzQ1NzJkM2EwMDE1YjdmYmZjNTE3
OTFhNjQwZDU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgQXJndW1lbnRzOjpmaWxsQXJnTGlzdChFeGVj
U3RhdGUqIGV4ZWMsIE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzKQogICAgIH0KIH0KIAotYm9v
bCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IGksIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaSwgc2xvdCk7
CiB9CkBAIC0xODgsMzUgKzE4OCw0MSBAQCB2b2lkIEFyZ3VtZW50czo6Y3JlYXRlU3RyaWN0TW9k
ZUNhbGxlZUlmTmVjZXNzYXJ5KEV4ZWNTdGF0ZSogZXhlYykKICAgICBkZWZpbmVPd25Qcm9wZXJ0
eShleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVlLCBkZXNjcmlwdG9yLCBmYWxzZSk7
CiB9CiAKLWJvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jv
b2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Cisg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworfQorCitib29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKK3sKKyAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxBcmd1bWVudHMqPihjZWxsKTsKICAgICBib29sIGlzQXJyYXlJbmRleDsKICAgICB1bnNpZ25l
ZCBpID0gcHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChpc0FycmF5SW5kZXgpOwotICAgIGlmIChp
c0FycmF5SW5kZXggJiYgaSA8IGQtPm51bUFyZ3VtZW50cyAmJiAoIWQtPmRlbGV0ZWRBcmd1bWVu
dHMgfHwgIWQtPmRlbGV0ZWRBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgIGlmIChpIDwgZC0+bnVt
UGFyYW1ldGVycykgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZShkLT5yZWdpc3RlcnNbZC0+
Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGldLmdldCgpKTsKKyAgICBpZiAoaXNBcnJheUluZGV4ICYm
IGkgPCB0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHMgJiYgKCF0aGlzT2JqZWN0LT5kLT5kZWxl
dGVkQXJndW1lbnRzIHx8ICF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzW2ldKSkgewor
ICAgICAgICBpZiAoaSA8IHRoaXNPYmplY3QtPmQtPm51bVBhcmFtZXRlcnMpIHsKKyAgICAgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+ZC0+cmVnaXN0ZXJzW3RoaXNPYmplY3QtPmQt
PmZpcnN0UGFyYW1ldGVySW5kZXggKyBpXS5nZXQoKSk7CiAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgc2xvdC5zZXRWYWx1ZShkLT5leHRyYUFyZ3VtZW50c1tpIC0gZC0+bnVtUGFyYW1ldGVy
c10uZ2V0KCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5kLT5leHRy
YUFyZ3VtZW50c1tpIC0gdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVyc10uZ2V0KCkpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5sZW5ndGggJiYgTElLRUxZKCFkLT5vdmVycm9kZUxlbmd0aCkpIHsK
LSAgICAgICAgc2xvdC5zZXRWYWx1ZShqc051bWJlcihkLT5udW1Bcmd1bWVudHMpKTsKKyAgICBp
ZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGggJiYgTElLRUxZ
KCF0aGlzT2JqZWN0LT5kLT5vdmVycm9kZUxlbmd0aCkpIHsKKyAgICAgICAgc2xvdC5zZXRWYWx1
ZShqc051bWJlcih0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHMpKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkuY2FsbGVlICYmIExJS0VMWSghZC0+b3ZlcnJvZGVDYWxsZWUpKSB7Ci0gICAgICAgIGlm
ICghZC0+aXNTdHJpY3RNb2RlKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKGQtPmNhbGxl
ZS5nZXQoKSk7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
Y2FsbGVlICYmIExJS0VMWSghdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVDYWxsZWUpKSB7CisgICAg
ICAgIGlmICghdGhpc09iamVjdC0+ZC0+aXNTdHJpY3RNb2RlKSB7CisgICAgICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QtPmQtPmNhbGxlZS5nZXQoKSk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBjcmVhdGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNl
c3NhcnkoZXhlYyk7CisgICAgICAgIHRoaXNPYmplY3QtPmNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJ
Zk5lY2Vzc2FyeShleGVjKTsKICAgICB9CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5jYWxsZXIgJiYgZC0+aXNTdHJpY3RNb2RlKQotICAgICAgICBjcmVh
dGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhlYyk7CisgICAgaWYgKHByb3BlcnR5TmFt
ZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyICYmIHRoaXNPYmplY3QtPmQtPmlzU3Ry
aWN0TW9kZSkKKyAgICAgICAgdGhpc09iamVjdC0+Y3JlYXRlU3RyaWN0TW9kZUNhbGxlcklmTmVj
ZXNzYXJ5KGV4ZWMpOwogCi0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBi
b29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDZi
MWZhMDg4YmI1NzdiMjk3NTQzM2UyNTE1NjFhOThhN2Y2NzQ5ZDYuLmI1OGY5NTdhNmUyZGUzNGRk
MDI4YTFkZDBlYTA5MjAxMWE0NDY3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyZ3VtZW50cy5oCkBAIC0xMjQsOSArMTI0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBw
cml2YXRlOgogICAgICAgICB2b2lkIGdldEFyZ3VtZW50c0RhdGEoQ2FsbEZyYW1lKiwgSlNGdW5j
dGlvbiomLCBwdHJkaWZmX3QmIGZpcnN0UGFyYW1ldGVySW5kZXgsIFJlZ2lzdGVyKiYgYXJndiwg
aW50JiBhcmdjKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51
bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
ZjU1NGU0MWE0ZmNhZmY5ZTkwMjkzNjc5NjA5NWJiZmExZWE0ZGMxNy4uMThjOTY5ZGMzNzY2ZGY0
NGEwOTcwMGU2YmE2NDZmMmFiMTE2NzA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzLDkgKzYzLDE0IEBAIHZvaWQg
QXJyYXlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBBcnJheVBy
b3RvdHlwZSogYXJyYXlQcm90CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigxKSwg
UmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogfQogCi1ib29sIEFycmF5Q29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBBcnJheUNvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7Ci0gICAgcmV0dXJu
IGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6
OmFycmF5Q29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7Cit9CisKK2Jvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25T
bG90PEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlDb25zdHJ1Y3RvclRh
YmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxBcnJheUNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKaW5kZXggMGVhM2U0MmJjZDIxOTEzYjY4
MzhkMjZlYWIwMTUzMWM5NTM4N2FhYS4uYWZmNzFiZThiNGU4MWNkZTRlOWEyMjMyMWY0MjcyNmQ3
OTc5MWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaApAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIEFycmF5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCBjZjE2MTYwM2Ez
NGYxNTkzMzZiYzM5NWU3ZGQ4MjQ5YTFmNTdlY2VkLi44OWVjYWE5OTRmMTVjMDY4N2Q5OGRiNmZj
NzVjNjIwNDU0MjYwMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBBcnJheVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBBU1NF
UlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1ib29sIEFycmF5UHJvdG90eXBlOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCA5Yzg2MGM2YzQzZTlmYTkz
OGE4ZmExZTdmY2I1NjI5ZDJiOTJmMzgyLi5iMjNjNzY2MzY1MmExNGVlZjI5NjdjYjdhODFiMTg0
Nzk3ZWFiYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBy
ZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCBlNzQ4ZGUyYjE5YjU4N2EzZGJmZDdjMjhjMjZm
NzZmNGFmYTQxYzg1Li43NjA5ZDRlNzU4YzAxYTY5N2VjZmU4NzMxNjc3NjFhNTNiOTAxNDNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEJvb2xlYW5Qcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiB9CiAKLWJvb2wgQm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QgJnNsb3QpCitib29sIEJvb2xlYW5Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKaW5kZXggYjBiNGY1NTBlZjI5Mzg2NmEw
NTdlMTI1NGMxYWUwNWZmNGUwYTQ2Zi4uNzA3YTdlZjA5MGVjNzY5ZmMzYTIxMDYzODgyNTUzMmMy
ZTAzYzU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
blByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuaApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIEJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBmNDQwYTY0YmZhNWY2
NTMwY2RjZWY3NDJkOTNkZGNjZWEyYWExMzIxLi4xZGRmNmYwMDY3NmYyN2MwYjI1MWVmNzJkNTUw
YjJmNWYxZDVmOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBEYXRlQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZVByb3RvdHlwZSogZGF0ZVByb3Rv
dHkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDcpLCBSZWFkT25seSB8IERvbnRF
bnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wgRGF0ZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgRGF0ZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRleCBmODM3ZDY2YWFlZDFjM2Ji
YmVlMzliN2QyMDY1Y2RjZWU0ODNiMjIxLi4zZjNiNjYxMmNhOWM3ZDVkM2Y5ZWRiMjM0MzQ3N2Q5
YmRjZGMzMTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuaApAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IGE2OGY0ODM4
YmIwNjI2NWM5N2JjMDQ2NDJkZjFjOTQ2NzdjOGE4MDcuLmM2OGIyZDIzM2E3M2JjZTQ0YTVkMjQz
MWE0ZTUxNTk5YWRkM2RjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuY3BwCkBAIC00NDMsNyArNDQzLDcgQEAgdm9pZCBEYXRlUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKICAgICAv
LyBUaGUgY29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgRGF0ZUNvbnN0cnVj
dG9yIGhhcyBiZWVuIGJ1aWx0LgogfQogCi1ib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBEYXRlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCmluZGV4IDcyMDUyNjJkMjliNDg3OGJiYWUwNzQ0
MmEyNWU0NGM0ZmRlNzBhNjguLmRkZDY1NGI3YTI4ZDA3ZGM5OWRjMzNmNWJlNjBmYjllNDg5YWNm
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgK
QEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBwcm90b3R5cGUt
PmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICByZXR1cm4g
cHJvdG90eXBlOwogICAgICAgICB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5j
cHAKaW5kZXggNDM5ZDlhODMxNDdmOGYwMTRkNzQ2Y2ZmN2Q4MzJlZWZmYTRjNTJkMy4uYThhOTU4
MThhODQxOWFhNGUyZjU2MjlhM2VlZTFjZjI0MGE0NDE3MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2
b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KikKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkubmFtZSwganNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJFcnJvciIpLCBEb250
RW51bSk7CiB9CiAKLWJvb2wgRXJyb3JQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
ICZzbG90KQorYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5oCmluZGV4IDY1ZjNmZmY1ZjZlMGZkMzUxNjVkNTNlOWJiM2EyNTE5
NWNjMTFmNzkuLmY2MmRkNTUxMzlmYTQxOTExZmJjYzYyOTI5Zjc3ZDQzMzA4N2Y1ZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaApAQCAtNTIs
NyArNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0
YW5jZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggOTBmOTExMDk0NGUxNDE0NTIxM2QzZDBlOWU1ZGMy
MTM2ZWRjMzZhOC4uMWEzMmFmZGQ2ZTNjMjkwNWRiMWQzMjQ4Y2QzYzhjYzljOWE0ZTA4NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC0x
NDEsNyArMTQxLDcgQEAgaW5saW5lIGJvb2wgSlNBY3RpdmF0aW9uOjpzeW1ib2xUYWJsZVB1dFdp
dGhBdHRyaWJ1dGVzKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlv
bi5oCmluZGV4IDdiZWQyOWZkMzBjMGI1NmZjMjI3Y2UzOGY2MjNiMDliOTFjMTMzY2IuLjIzYjk3
ZDZjMmRiMjQ5ZGExYTM3YTY1ZDJkMWZmOWJiNjQ3NWQwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02MSw3ICs2MSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2YXRpb25PYmplY3QoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDIxNzNmZjE2ZDg0YTNl
NWU5NWMwYjU0ZWE2NGY4NGFkYTE1MWM0MTQuLmY5ZjZjNTIwMGRmZTM0NTA4NTdlY2Q1ZmU5NWUz
NTVlZGRhMzViZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3Bw
CkBAIC0yNDUsNyArMjQ1LDcgQEAgSlNBcnJheTo6fkpTQXJyYXkoKQogICAgIGZhc3RGcmVlKG1f
c3RvcmFnZS0+bV9hbGxvY0Jhc2UpOwogfQogCi1ib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jv
b2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIGksIHNsb3QpOwogfQpAQCAtMjU3LDcgKzI1Nyw3IEBAIGJvb2wg
SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCBpLCBQcm9wCiAgICAgCiAgICAgaWYgKGkgPj0gc3RvcmFnZS0+bV9sZW5ndGgp
IHsKICAgICAgICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpCi0gICAgICAgICAgICByZXR1cm4g
dGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhl
YywgaSksIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTI4MCw3ICsyODAsNyBAQCBib29sIEpT
QXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgaSwgUHJvcAogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHNsb3QpOwogfQog
Ci1ib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0Fy
cmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJu
IGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IGRiZmMxNzExNDI1OGEx
Mzc4MjE4NDNjYjk1NzhiM2E5Y2RkMTZkMzguLjlhZDk1NDBiMTJhMTJhZjU1ZjM1NDgxMjg4MWVm
NjRkZTA1YTM0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAg
LTk0LDkgKzk0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gYXJyYXk7
CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOyAvLyBG
SVhNRTogTWFrZSBwcm90ZWN0ZWQgYW5kIGFkZCBzZXRJdGVtLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKaW5kZXggNzFlZDM4MGEyMzY3
OTdmZDZlNmVkODRjMTA2ZWViYTNmYWU4ZjU3Yi4uMDI0ODdkODM5YTMzOWFmZmE3MzlhMmU1Mjc2
MmIwYWYxOTM1NTA3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JvdW5kRnVuY3Rpb24uY3BwCkBAIC05Niw3ICs5Niw3IEBAIGJvb2wgSlNCb3VuZEZ1bmN0aW9u
OjpoYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUpCiAg
ICAgcmV0dXJuIG1fdGFyZ2V0RnVuY3Rpb24tPmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90
byk7CiB9CiAKLWJvb2wgSlNCb3VuZEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK2Jvb2wgSlNCb3VuZEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JvdW5kRnVuY3Rpb24uaAppbmRleCBjYzUxNjkzNzYxZmFjODk0ZDA5MDNjMGIxY2UyOTVm
ZDFmNTkwYmEzLi5iNDVlMmQ5YmFiNjVhNDA4MzJhNmYyZjA4MTkyY2NiMmQzYmZlYzNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaApAQCAt
MzksNyArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNCb3VuZEZ1bmN0aW9uKiBjcmVh
dGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24s
IEpTVmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJncywgaW50LCBjb25zdCBJZGVudGlm
aWVyJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4IDhhYjQ3MjZlM2VhMWY1ZjkxMDBmMGI0MDYy
MWYzMTQ3N2JkNjM5NmEuLjUxNTcxMDNlZGZhNWI3ZjgwNjE0MWUyNGUwMjA2NjUzMGVlNWI4Mzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAg
LTU0LDcgKzU0LDcgQEAgU3RydWN0dXJlKiBKU0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgY2xhc3NJbmZvKTsKIH0KIAotYm9vbCBKU0J5
dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQnl0ZUFycmF5
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAt
ODIsNyArODIsNyBAQCBib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRv
cik7CiB9CiAKLWJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IDQwZjBhYTFh
N2I3YTRhZTZmNTMwMjY1NDJkMTc5NDVhNjU1MWRmMTAuLjRkZjM2NmIxODVjZDcyMmY5NjRmYWQ4
YWQyZDM1ZDViNDg3MWE2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuaApAQCAtODgsOSArODgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfaW5m
byk7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNs
b3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDg5NzNk
YzMwMDQ0ZmJmZjc4ZjBmMDYzNjIzOGI5ZjhiZTM5ZTk3OTEuLjYzYTY5ZGU2ZjllMTQyMzQ5MDc4
OGZmMDM0MmNkNDkzNTRkNGYxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmNwcApAQCAtNjksNyArNjksNyBAQCBDb25zdHJ1Y3RUeXBlIEpTQ2VsbDo6Z2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJikKICAgICByZXR1cm4gQ29uc3RydWN0VHlw
ZU5vbmU7CiB9CiAKLWJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiti
b29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwog
fQpAQCAtODYsNyArODYsNyBAQCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJgogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0NlbGw6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVu
dGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5
U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggMjNmMGZkNWMwZmFmNzU0OWZlNzYwOGUwZTRlYjBmNTNm
MzIwNmJlNy4uZWEyNzJkZmE5MzEyOTdjMDFmNmNkYmQ4YWU1MmNiM2ZiY2Q2M2Y2MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTEzNSw5ICsxMzUsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIEJhc2UgaW1wbGVtZW50YXRp
b247IGZvciBub24tb2JqZWN0IGNsYXNzZXMgaW1wbGVtZW50cyBnZXRQcm9wZXJ0eVNsb3QuCi0g
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIAogICAgICAgICBX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNDkzMzMwNDZjZDc5Yjg5ODVkZDc1ZmNh
ZmU1YjE2Y2E3ZTQzY2EyNS4uNDMwMjY5YTM2YjRlNTcyZjJjZmQ5N2FiN2M1Yjk2YzFhYTNjMzRl
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAg
LTE5Nyw3ICsxOTcsNyBAQCBKU1ZhbHVlIEpTRnVuY3Rpb246Omxlbmd0aEdldHRlcihFeGVjU3Rh
dGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJgogICAgIHJldHVybiBqc051
bWJlcih0aGlzT2JqLT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1ldGVyQ291bnQoKSk7CiB9CiAKLWJv
b2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTRnVu
Y3Rpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CkBAIC0yNTgsNyArMjU4LDcgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm8KICAgICAKICAgICBp
ZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUpIHsKICAg
ICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIGdldE93blByb3BlcnR5U2xvdChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICB9
CiAgICAgCkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnQKICAgICBp
ZiAoIWlzSG9zdEZ1bmN0aW9uKCkgJiYgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGll
cykpIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHByb3RvdHlwZSBoYXMgYmVlbiByZWlmaWVkLgog
ICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgZ2V0T3duUHJvcGVydHlTbG90KGV4
ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIHNsb3QpOworICAgICAgICBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5
cGUsIHNsb3QpOwogCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5hcmd1bWVudHMpOwogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuY2FsbGVyKTsKQEAgLTMxNiw3ICszMTYsNyBAQCB2b2lkIEpTRnVuY3Rpb246OnB1
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYQogICAgICAgICAvLyBNYWtlIHN1cmUgcHJvdG90eXBlIGhhcyBiZWVuIHJlaWZpZWQsIHN1
Y2ggdGhhdCBpdCBjYW4gb25seSBiZSBvdmVyd3JpdHRlbgogICAgICAgICAvLyBmb2xsb3dpbmcg
dGhlIHJ1bGVzIHNldCBvdXQgaW4gRUNNQS0yNjIgOC4xMi45LgogICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdDsKLSAgICAgICAgdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9CiAgICAgaWYgKHRoaXNP
YmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgewogICAgICAgICBpZiAocHJv
cGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA5YjlkYTljZTlmYWI3NTQ3
MWRhOGNmOWFjMTdmZmJjMGQ3NzNiYzM2Li5lMzViMTdlNDc1MTY4M2NjNjhmOTY5YjlkMjg5ODI3
ZmMyNWJhZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5o
CkBAIC0xMzEsNyArMTMxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oRXhlY1N0YXRlKiwgTmF0aXZlRXhlY3V0YWJsZSosIGludCBsZW5ndGgsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUpOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0
ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2Rl
ID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMGZlNDM2ZGI3MmNkMDY0MGIzODU4
MjA1ZmE0MWI5NDAzZThmNDAzMC4uOTJkZmRjMGMyMGRkZmFhYzliOTQwNDNmNjY3MjI5NTdhMTZh
MWNmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcApAQCAtNDIzLDcgKzQyMyw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmFkZFN0YXRp
Y0dsb2JhbHMoR2xvYmFsUHJvcGVydHlJbmZvKiBnbG9iYWxzLCBpbnQgY291bnQpCiAgICAgfQog
fQogCi1ib29sIEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
K2Jvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAppbmRleCAxMTVkNWNiNmJkOTU0ODM3M2FhY2U4MDEzOGM4ZWFmMjYzYTNhNjc4
Li5iMGZlNDc0Njk3NGE3YmQ3N2Q3OTk5OTExMTAwNGIwNWY3YjQxMjMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE4MCw3ICsxODAs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVu
KEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKQEAgLTM0Miw3ICszNDIsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBpbmxpbmUgYm9vbCBKU0dsb2JhbE9iamVjdDo6aGFzT3duUHJvcGVydHlGb3JX
cml0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKICAg
ICB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBpZiAoSlNWYXJpYWJsZU9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAg
ICAgIGlmIChKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBi
b29sIHNsb3RJc1dyaXRlYWJsZTsKICAgICAgICAgcmV0dXJuIHN5bWJvbFRhYmxlR2V0KHByb3Bl
cnR5TmFtZSwgc2xvdCwgc2xvdElzV3JpdGVhYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKaW5kZXggZTE0YTY4YmQ5NGZhMTRlZTBjZDY0
ZDBmMzQyN2FhMmNjNDZkYjlkOS4uMDcyZDgyNTZmZDY3ODYzMjkzN2ZkYzNkNjE2ZmYwYjI0M2Zj
ODVkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgVVN0cmluZyBKU05vdEFuT2JqZWN0Ojp0b1N0cmluZyhF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuICIiOwogfQogCi1ib29sIEpTTm90QW5P
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNOb3RBbk9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3du
UHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwogfQpAQCAtNjksNyAr
NjksNyBAQCBib29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
Ym9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNOb3RBbk9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBiOGYwZmFhODU2
MjI2MjNjMjA3OWM5YzljNzEzN2Q3ZDdiMjg1MWY3Li4wNjc4ODcxNDk0MTExYTk5YjEzMjQzYmYy
NzUwZjViNWEzOGQwN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5oCkBAIC03MCw5ICs3MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2
aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgLy8g
SlNPYmplY3QgbWV0aG9kcwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCBkM2ZjMzU5OTMxZTAxNjkx
MDg3NWZjODg5Y2JjZmMyODg1YzNjYzNlLi41NWFjZTkwZWQzNzE5NjM0OGU4MWU0MDczNDNiOGJk
YTMxZDg2NDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcApAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5k
TmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgVVN0cmluZ0J1CiAgICAgICAg
ICAgICB2YWx1ZSA9IGFzQXJyYXkobV9vYmplY3QuZ2V0KCkpLT5nZXRJbmRleChpbmRleCk7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QobV9vYmplY3QuZ2V0
KCkpOwotICAgICAgICAgICAgaWYgKCFtX29iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMs
IGluZGV4LCBzbG90KSkKKyAgICAgICAgICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoZXhlYywgaW5kZXgsIHNsb3QpKQogICAgICAgICAgICAgICAgIHNsb3Quc2V0
VW5kZWZpbmVkKCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTQxLDcgKzU0MSw3IEBAIGJvb2wgU3RyaW5n
aWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmll
ciwgVVN0cmluZ0J1CiAgICAgICAgIC8vIEdldCB0aGUgdmFsdWUuCiAgICAgICAgIFByb3BlcnR5
U2xvdCBzbG90KG1fb2JqZWN0LmdldCgpKTsKICAgICAgICAgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKVtpbmRleF07Ci0gICAg
ICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQorICAgICAgICBpZiAoIW1fb2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKTsK
ICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQpAQCAtNTk4LDcgKzU5OCw3IEBAIGNv
bnN0IENsYXNzSW5mbyBKU09OT2JqZWN0OjpzX2luZm8gPSB7ICJKU09OIiwgJkpTTm9uRmluYWxP
YmplY3Q6OnNfaW5mbywgMCwgRXhlCiAKIC8vIEVDTUEgMTUuOAogCi1ib29sIEpTT05PYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU09OT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtNjkzLDcgKzY5
Myw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVy
ZWQpCiAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBhcnJheS0+Z2V0SW5kZXgoaW5kZXgp
OwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFycmF5LT5nZXRPd25Qcm9wZXJ0eVNs
b3QobV9leGVjLCBpbmRleCwgc2xvdCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcnJheS0+
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChtX2V4ZWMsIGluZGV4LCBzbG90KSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIGluVmFsdWUgPSBzbG90LmdldFZhbHVlKG1fZXhlYywgaW5kZXgpOwog
ICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBpblZhbHVl
ID0ganNVbmRlZmluZWQoKTsKQEAgLTc1NSw3ICs3NTUsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1
ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IHNs
b3Q7Ci0gICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KG1fZXhl
YywgcHJvcGVydGllc1tpbmRleF0sIHNsb3QpKQorICAgICAgICAgICAgICAgIGlmIChvYmplY3Qt
PmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVjLCBwcm9wZXJ0aWVzW2luZGV4XSwgc2xv
dCkpCiAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBzbG90LmdldFZhbHVlKG1fZXhlYywg
cHJvcGVydGllc1tpbmRleF0pOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgaW5WYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmgKaW5kZXggMjhkMjg2MmY4ZDRhNWMwOGU4MzZkMzU4YjE2N2NjZWYz
NjZjZTI1Yi4uNDg3ZmNmMGZlMmQ3Mjg0ZTRjMTk1NzExYzE3NWM4MmM1Y2FjZGFhNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtNTYsNyArNTYsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpTT05PYmplY3QoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRl
eCBhYWNlYzZkNDM3NjcwZWEzZmEwMTAwM2Q3OGVhMDczM2U0OWUwZTRkLi41YzQ0NThjNzdlZjM4
ODNlZDgxN2Y1MTNjNTg2ZmIwNGJiNWYxNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuY3BwCkBAIC05MywxNCArOTMsMTQgQEAgVVN0cmluZyBKU09iamVjdDo6
Y2xhc3NOYW1lKCkgY29uc3QKICAgICByZXR1cm4gaW5mby0+Y2xhc3NOYW1lOwogfQogCi1ib29s
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4oY2VsbCktPmdldE93blByb3BlcnR5U2xvdChleGVjLCBJZGVudGlmaWVyOjpm
cm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxK
U09iamVjdCo+KGNlbGwpLT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIElkZW50aWZp
ZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7CiB9CiAKIHN0YXRpYyB2b2lkIHRo
cm93U2V0dGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjc3LDcgKzI3Nyw3IEBAIGJvb2wg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwCiBib29sIEpTT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKICAgICBQ
cm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICByZXR1cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMp
LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1
cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggM2FkNzBjNTBhYWQ2MWFkMzdmY2My
ZmE5YjkwNGE3MGIzN2ZmMzNiMi4uYTgyNDI1NjkyZmRkYTQ3YmEwMzJjOTljZGNlMTIyYjcwNzhi
YWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMDEs
OSArMTAxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgZ2V0UHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIGJvb2wgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKLSAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNj
cmlwdG9yJik7CiAKQEAgLTUyMSw3ICs1MjEsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmpl
Y3Q6OmlubGluZUdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK0FMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTUz
OCw3ICs1MzgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNDZWxsOjpmYXN0R2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogewogICAgIGlmICghc3RydWN0
dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KCkpCiAgICAgICAg
IHJldHVybiBhc09iamVjdCh0aGlzKS0+aW5saW5lR2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdChleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIC8vIEZhc3QgY2FsbCB0byBnZXQgYSBw
cm9wZXJ0eSB3aGVyZSB3ZSBtYXkgbm90IHlldCBoYXZlIGNvbnZlcnRlZCB0aGUgc3RyaW5nIHRv
IGFuCkBAIC01NzYsNyArNTc2LDcgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRQ
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU4KIHsKICAgICBK
U09iamVjdCogb2JqZWN0ID0gdGhpczsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAo
b2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAg
ICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIEpTVmFsdWUg
cHJvdG90eXBlID0gb2JqZWN0LT5wcm90b3R5cGUoKTsKICAgICAgICAgaWYgKCFwcm90b3R5cGUu
aXNPYmplY3QoKSkKQEAgLTc5Nyw3ICs3OTcsNyBAQCBpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjpn
ZXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdAog
ICAgIH0KICAgICBKU0NlbGwqIGNlbGwgPSBjb25zdF9jYXN0PEpTQ2VsbCo+KGFzQ2VsbCgpKTsK
ICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY2VsbC0+Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIGlmIChjZWxsLT5nZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICBy
ZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBKU1ZhbHVl
IHByb3RvdHlwZSA9IGFzT2JqZWN0KGNlbGwpLT5wcm90b3R5cGUoKTsKICAgICAgICAgaWYgKCFw
cm90b3R5cGUuaXNPYmplY3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKaW5kZXggOGQwZmRhOTAzNzMyMmRmMTczMDY1
ZGM2MWNjOTE0ZTUzMDA3YmYwMi4uMjJlNmFmY2RkZDY4NWJhMTIzNWQ4YmRjNjFlOWRhMWQyMGRl
ZGM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBKU1N0YXRpY1Njb3BlT2Jq
ZWN0Ojppc0R5bmFtaWNTY29wZShib29sJikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LWJvb2wgSlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTU3RhdGljU2NvcGVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXggZGMyODc3OTVkZDlmMTYwNGY2YjUxZjI0
NmI2Y2E5MmVmOThhMTgwNS4uYTkwZGRkNWM2OTFiZTk4MGM5MTg2MjI2Yjk2M2QwYTdhNzhiYzhm
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2Nv
cGVPYmplY3QuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDewogICAgICAgICBzdGF0
aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAgICAgIGJv
b2wgaXNEeW5hbWljU2NvcGUoYm9vbCYgcmVxdWlyZXNEeW5hbWljQ2hlY2tzKSBjb25zdDsKICAg
ICAgICAgdmlydHVhbCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0Owot
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRleCBjNzNmNGEy
ZWUyYzg1NzVmYjBkMDQ4OWI4ZDYzOGUwMGFiMTNiNWIxLi4yNzg3NjM3YWEyZDFlOWU2NTQyM2Zh
OWJmMzM5OWZhNDA3MjUxMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgSlNPYmplY3QqIEpTU3RyaW5nOjp0b1RoaXNP
YmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiBTdHJpbmdPYmplY3Q6OmNy
ZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGNvbnN0X2Nhc3Q8SlNTdHJp
bmcqPih0aGlzKSk7CiB9CiAKLWJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQorYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KQEAgLTMzMyw3ICszMzMsNyBAQCBib29sIEpTU3RyaW5nOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZQogICAgIEpTT2JqZWN0KiBvYmplY3Q7CiAgICAgZm9yIChKU1ZhbHVlIHByb3RvdHlwZSA9
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5nUHJvdG90eXBlKCk7ICFwcm90b3R5
cGUuaXNOdWxsKCk7IHByb3RvdHlwZSA9IG9iamVjdC0+cHJvdG90eXBlKCkpIHsKICAgICAgICAg
b2JqZWN0ID0gYXNPYmplY3QocHJvdG90eXBlKTsKLSAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3du
UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIGlmIChvYmpl
Y3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBzbG90LnNldFVuZGVmaW5lZCgp
OwpAQCAtMzY3LDcgKzM2Nyw3IEBAIGJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDcyMGQ2MmJkNmNmMzI3MzEx
NWY2MmYyZTM4MTQwMTk0ZGJjYjg4ZWYuLmQ4MjE1ZTJlZTU0NzI3YzRkMGI4ODgxODQxZDcyMGRh
MzJmYjlhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAt
NTA3LDkgKzUwNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0
KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgLy8gQWN0dWFsbHkg
Z2V0UHJvcGVydHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlTbG90IChzZWUgSlNDZWxsKS4KLSAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmgKaW5kZXggNzgyZGMwZmJjNzBjODNhOTJhZTEwZjEwNDlhZmZkYzAzMjY5ODgxYy4uYTZkNDhi
ZDhkYzBlOWY0MDQ1ODMwMDkwODBkMDhmZTVjMzA1MzgyNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTG9va3VwLmgKQEAgLTIxMyw3ICsyMTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0
eU5hbWUpOwogCiAgICAgICAgIGlmICghZW50cnkpIC8vIG5vdCBmb3VuZCwgZm9yd2FyZCB0byBw
YXJlbnQKLSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqLT5QYXJlbnRJbXA6OmdldE93blByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIFBh
cmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmosIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiAKICAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbikKICAg
ICAgICAgICAgIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KGV4ZWMsIGVudHJ5LCB0aGlzT2JqLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnRJbXA+CiAgICAgaW5saW5lIGJvb2wgZ2V0U3RhdGlj
RnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSGFzaFRhYmxlKiB0YWJsZSwgSlNP
YmplY3QqIHRoaXNPYmosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PFBhcmVudEltcCo+KHRo
aXNPYmopLT5QYXJlbnRJbXA6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQorICAgICAgICBpZiAoUGFyZW50SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
aiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSB0YWJsZS0+ZW50cnkoZXhlYywgcHJv
cGVydHlOYW1lKTsKQEAgLTI5MSw3ICsyOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Y29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUp
OwogCiAgICAgICAgIGlmICghZW50cnkpIC8vIG5vdCBmb3VuZCwgZm9yd2FyZCB0byBwYXJlbnQK
LSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqLT5QYXJlbnRJbXA6OmdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIFBhcmVudElt
cDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmosIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiAKICAgICAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKaW5kZXggNzlm
ZWVlN2UxOWVkZTJmZjEwM2MwNjAzZmQ0YTk3ZWZhMDBlYjZhMy4uNjI0ZjRkZGJiZDNlOTA3MDc2
OGVjMWZlOTNkOTEzMDc5YzVlY2Q4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWF0aE9iamVjdC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIE1hdGhPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIElk
ZW50aWZpZXIoZXhlYywgIlNRUlQyIiksIGpzTnVtYmVyKHNxcnQoMi4wKSksIERvbnREZWxldGUg
fCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBNYXRoT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgTWF0aE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hdGhPYmplY3QuaAppbmRleCAyZTJkNzJkZWJmNDgwZDdjZmUyNzQwNGQ3NjM5YjQ5
Y2U1ZDQ4NDBiLi4yNDI0YTcxZTVlZTllMWI3NDU0MDk3MWY4YTdkZjgyNWJiMTc1MGYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zOCw3ICszOCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihl
eGVjLCBnbG9iYWxPYmplY3QpOwogICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAg
fQotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDNjNjVl
OWYwOGZlM2RjNDEyYWNiMDNjYTU2YjRjNTBjNzAxNmI0ODcuLjU0YWZiZDhjNzZkYzUxMDhiMmFi
M2VkNGU0YzM0MjMwZjFmMmU1N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBOdW1i
ZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBOdW1iZXJQcm90
b3R5cGUqIG51bWJlclAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFk
T25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wgTnVtYmVyQ29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBOdW1iZXJDb25zdHJ1Y3Rv
cjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmlu
ZGV4IDcwNTZkZGY3NWJiOTc1ZTlhMDMwMmVkZjMxMTI3YmZlNmEzZmMxNDMuLjYxMjcxYTk1NGY5
MDA3YTc2NTJkNzhjMWJkYzdmNjU1Zjk5ZWNjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICAgICAgfQog
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICBKU1ZhbHVlIGdl
dFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IGY2ZjAx
NmU0ZTNlNTdmMjIwZTc4ZjI1ZWNhZTgxMmY0N2QyZGEwYzkuLjRmYjI5YjU1ZDZkNmUwZjY1ZDBl
MGEyYWM0OTlmZTUwNDU2MDU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lkIE51bWJlclBy
b3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCop
CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotYm9vbCBOdW1iZXJQcm90b3R5
cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBOdW1iZXJQcm90b3R5cGU6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCmluZGV4IDFh
NTY4NmFlNTkwYTVjMDQzMGEyMzVhOTUwNWIyOWUyZDNiY2NhYTkuLmJlYmI1ZTczYTIxNDc3Njgw
NTlmNGJiOGUzNzQwM2U5YzE5YjViZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlclByb3RvdHlwZS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgTnVtYmVyUHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwCmluZGV4IDkwZWRmYTUzN2M5MmNlNTE2MDc5OTZiYzVjODJhYTU3NWEwMTY0MDEuLjBiM2Ix
OTcwMGFiYTEwZDdlMmQ3MTBiMzdhZjExMzIzZjZhNzZiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTg5LDcgKzg5
LDcgQEAgdm9pZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBl
eGVjLCBPYmplY3RQcm90b3R5cGUqIG9iamVjdFAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpz
TnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wg
T2JqZWN0Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBP
YmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQog
ewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5oCmluZGV4IDIyMjE1OWY1M2E0ZjhmMWI4ZDY1ODJjYzcwY2IwZmIwZjdmZWM4
MzcuLmFhNjhjY2RhYWE4MzNiZmI3NmY1MjAwMTNiYTY1MTk1NmUxZjYwNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtMzgs
NyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3Rv
cjsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApp
bmRleCA5OWE1YmIyMjhiZjI3ZWMxYWQ0MWE5ZGI0NDRlMjNlNzVmODRmNTdhLi5lYTdjODliMTUz
ODJmNDI5ZmRiMzRjNGYzNWM0YTMyNzcyOTRiZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9p
ZCBPYmplY3RQcm90b3R5cGU6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGUKICAgICB9CiB9CiAKLWJvb2wgT2JqZWN0UHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgT2Jq
ZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkCiAgICAgcmV0dXJuIEpTTm9uRmluYWxPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29s
IE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIE9i
amVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmgKaW5kZXggZTM5MDAyMmY2N2M3NTQyMDViZTMyMWVmN2NiMDlkNDVmZDU1ZTE0OC4uNzZh
MzNjNDc5Yjk2NjViYjEzNzA0OWIzZTJjOGIzMWU5NGVkZDY4OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKQEAgLTUzLDkgKzUzLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDBkNDkxNDY0NGM5ODYzYmMyNDRjMWQ0YjMxZGNiYmFk
YTFlYzcwMC4uNWIwNzBmMDc0MGNjYjEyN2ZiMmViZDFmYjc0MjZiZGUxODFjYjYzYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cApAQCAtMjAyLDcgKzIwMiw3IEBAIEpTVmFsdWUgUmVnRXhwQ29uc3RydWN0b3I6OmdldFJpZ2h0
Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmco
ZXhlYyk7CiB9CiAgICAgCi1ib29sIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKK2Jvb2wgUmVnRXhwQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCA1ZTEzMTc2NGQ0OTI1Yjcw
Y2IzODY2NzljNzdlNmE0MDJhMzYxYzRjLi5hYWY0MjZhOWFkMjIxZmViMGIyZDdkZTRlZmMzNmMw
MTUwZThhYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXgg
ZTc1ZDYyMTkxNWQyNGE1ZTg2YjdhNzU2NGE5MjVhMjZmMDY5MDExZC4uMTJiZDAyNmVmM2Q5MTQ4
YzQxMDlhNWFmMDc1YWNkMjZmMTFhNzM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgUmVn
RXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKKyAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAgICAgewog
ICAgICAgICAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogICAgICAgICB9CkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgICAgICB9CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
CmluZGV4IDY2MGIyZTMwYTU0YjkxYzk5MGNhZGFiNGFhMmY2NDM4MzVjMTk1OGMuLjgwOGVkN2Y5
NzA1OGJjMDgyZmNkNWQzODVjMzhjNDdlNjJjZjAyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFJl
Z0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+ZC0+bGFzdEluZGV4KTsK
IH0KIAotYm9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5oCmluZGV4IGMwZjgzZDU0MmNiZGViZDlhZWRiYmQ4NzVjMDFiYmZlOGIyMDMyMzkuLmEzZjc3
YzViOTM4YjI4ZDM5MmRiMjJlOTQ2MGNjYjY3YjQ1ZDAxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02NSw3ICs2NSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBKU1ZhbHVlIHRlc3QoRXhlY1N0YXRlKik7CiAgICAgICAgIEpTVmFs
dWUgZXhlYyhFeGVjU3RhdGUqKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggM2UzYTE2OWZhOWIwNjJjZGMyZTQyOTdm
NTY5NjA5YWQyMWYzYWM0MS4uODMwNGU2MmUxOGMwZGU3ZTY5NDdjMTFlZDg4OTY5ZTRiZjBjMDhj
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFJlZ0V4cFByb3RvdHlwZTo6UmVnRXhwUHJvdG90eXBl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0CiB7CiB9CiAK
LWJvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jv
b2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3Qp
CiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuaAppbmRleCBjYzg0MDNhNzViNGJmM2I5MmRlNWE4NGFiMjNjYTgyYTE2MjQyMTNm
Li44YzkyYjIyZTQ0MTg3YmMwZWQyNGE1NzliNjEzZDc2ZTVhNzk4NGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtNDksNyArNDks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgUmVnRXhwT2JqZWN0OjpT
dHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZjM5ZGQ3YTVhYTAwNzhhYzZmZDIzZDgyZTdl
YjBiYWRiYTdkNzk4Yi4uMjhlODQ1MTIyYmRjMjRhMzkxMWExYTZlMmVhMmU0YzMwZmRkNjc5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVj
dG9yLmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFN0cmluZ0NvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZ1Byb3RvdHlwZSogc3RyaW5nUAogICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250
RGVsZXRlKTsKIH0KIAotYm9vbCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QgJnNsb3QpCitib29sIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggYTcxOTE0ODQ4MzkyOWE2OGVl
YzM4OTJiM2JjY2Y4NWM3MmVlZjMxYi4uMzk1Zjk5MzQwZjM2YWYxMDg2YWVjZGY2NmI0YjI1Zjk5
ZmU2NmQxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBz
dGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmKTsKICAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCmluZGV4IDZk
NTQ4Y2Q2ZjFhZjRlMmM2ZGRlOWFmNmY0ZmNmZTg2NzcyMmU3YTEuLjBlOWNkN2RjMzVmZTEwNzYw
OGQ2NDQ4MWY1MmI5ZDJkZmYwN2E3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApAQCAtNDEsNyArNDEsNyBAQCB2b2lkIFN0cmluZ09iamVj
dDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1N0cmluZyogc3Ry
aW5nKQogICAgIHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwgc3RyaW5nKTsKIH0KIAotYm9v
bCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBTdHJp
bmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50CiAgICAgcmV0dXJu
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KICAgICAKLWJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK2Jvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3Qu
aAppbmRleCA4NzJhMmMxMzNiNjZhNmQyMTdhYzljOWJlNTY0OWY4MmU1Y2MxMThiLi5lNmIzN2Jj
MDg5ZTNmMmMxMzBkNTgzNDQwYTJjZGQ5YTkyN2JhNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNDYsOSArNDYsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgfQogICAgICAgICBzdGF0aWMgU3RyaW5nT2JqZWN0KiBjcmVhdGUoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopOwogCi0gICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmNwcAppbmRleCA4OGZiMmU5MjFhZTdkZmEzYzAzYWM4MDZlMzMyOTdlMzRiZDJlZjFl
Li5lOGY0ZmQzYjRmM2QyYTEyM2E0NzU2YWU1Y2FjZDc4MzQ2ZTY3OWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTE0NSw3
ICsxNDUsNyBAQCB2b2lkIFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKgogICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0
aCwganNOdW1iZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIAot
Ym9vbCBTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9v
bCBTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkK
IHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5oCmluZGV4IGM4OWE4OWJhOTUyZDk2Zjg1ZmI5MWE3MGE0OTJmOGQ3ZjEwOGRhMjEu
LjQ3MTBhNWMwODM4ZTc0NTA0MzBmMTM3NDliNWIzZWExOGJkMTA0MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCkBAIC00Miw3ICs0Miw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICAg
ICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCAw
ZTczNTBmM2IwYzJjZjVkNmJiN2UyN2EyZjEwMWY5NzAwNmUyNDU1Li40N2NlMDI4YzVlZWQ0MDYw
NjRkOWYzZTM0ODcwYzk5ODFiMWVjOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMyBAQAogMjAxMS0xMC0xMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgogCisgICAgICAgIFJlbmFtZSBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk4MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW5hbWVkIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90
IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaW4gcHJlcGFyYXRpb24gZm9y
IHdoZW4gd2UgYWRkIHRoZSBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IHRvIHRoZSBNZXRob2RU
YWJsZSAKKyAgICAgICAgaW4gQ2xhc3NJbmZvLgorCisgICAgICAgIEFsc28gYWRkZWQgYSBmZXcg
c3RhdGljIGdldE93blByb3BlcnR5U2xvdCBmdW5jdGlvbnMgd2hlcmUgdGhleSBoYWQgYmVlbiBv
dmVybG9va2VkIAorICAgICAgICBiZWZvcmUgKGVzcGVjaWFsbHkgaW4gQ29kZUdlbmVyYXRvckpT
LnBtKS4KKworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAoVXNlck9iamVj
dEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogVXNlck9iamVjdElt
cC5oOgorCisyMDExLTEwLTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5j
b20+CisKICAgICAgICAgUmVtb3ZlIGdldENhbGxEYXRhVmlydHVhbCBtZXRob2RzCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE4NgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggNmY5OWE0Yzg0NjZiNGE1NTU2ZDlh
NzA1NDYwNmRkZTdiYTNjZTk1YS4uMTkxYzI1MzlkYWQ2ZGRjY2U3NzE4M2QwOTZlOGZlOTQ3NTZk
YTdiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMTIzLDcg
KzEyMyw3IEBAIEpTVmFsdWUgVXNlck9iamVjdEltcDo6dXNlck9iamVjdEdldHRlcihFeGVjU3Rh
dGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVuCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jv
b2wgVXNlck9iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUgKmV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IGFjZTE5
MzM3NjY3NzUzMGVlMmY2MTM5YzEwZDZhZjdlM2I1MjVkYzQuLjNkNThlZjM1YjkwYmUxMGM0NGM2
OGEyOTNiMjM1ODk4YmM2MGI0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
aApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCiAgICAgdmlydHVhbCBKU1ZhbHVl
IGNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYyk7Ci0gICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUgKmV4ZWMs
IGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZjBhNDZmYTE2ZjgwZjEzMmQ5NWYyNjExODViYTA2MzJiZWZlZTMyYy4uYzA1
OGRiOTU3NDUzYWE2ZmI5NGYzMzRjNDJmMGU5M2M4YWZhYmZjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDU4IEBACisyMDExLTEwLTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVuYW1lIGdldE93blByb3BlcnR5U2xvdCB0byBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02OTgxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICBSZW5hbWVkIHRoZSB2aXJ0dWFsIHZlcnNp
b24gb2YgZ2V0T3duUHJvcGVydHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAg
ICAgICAgaW4gcHJlcGFyYXRpb24gZm9yIHdoZW4gd2UgYWRkIHRoZSBzdGF0aWMgZ2V0T3duUHJv
cGVydHlTbG90IHRvIHRoZSBNZXRob2RUYWJsZSAKKyAgICAgICAgaW4gQ2xhc3NJbmZvLgorCisg
ICAgICAgIEFsc28gYWRkZWQgYSBmZXcgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCBmdW5jdGlv
bnMgd2hlcmUgdGhleSBoYWQgYmVlbiBvdmVybG9va2VkIAorICAgICAgICBiZWZvcmUgKGVzcGVj
aWFsbHkgaW4gQ29kZUdlbmVyYXRvckpTLnBtKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmlu
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlhbG9nSGFuZGxlcjo6cmV0dXJuVmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dT
aGVsbDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXb3JrZXJDb250ZXh0OjpnZXRPd25Q
cm9wZXJ0eVNsb3REZWxlZ2F0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6Z2V0U3Bh
cnNlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpnZXRQcm9wZXJ0
eSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkpOgorICAgICAgICAoR2VuZXJhdGVI
ZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5l
cmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24pOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3Rv
ckRlZmluaXRpb24pOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAg
ICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGlu
Z3M6Ok9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6Cisg
ICAgICAgICogYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGlu
Z3M6OlF0SW5zdGFuY2U6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYnJpZGdlL3F0
L3F0X3J1bnRpbWUuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lTWV0YU1l
dGhvZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToK
KyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAg
ICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRo
b2Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1l
X21ldGhvZC5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAxMS0xMC0xMCAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MDI0NjEzNz4gRHVwbGljYXRlIDo6YWZ0ZXIgY29udGVudCB3aGVuIGJvdGggOjpiZWZvcmUgYW5k
IDo6YWZ0ZXIgYXJlIHN0eWxlZCBhcyB0YWJsZSBwYXJ0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA0MjRlNDIzY2Q4OTFkZWQ5ZWRkN2M3NzcwNjNiZGQ0OGM0ZmU5MDNjLi4wMDBmMjkzOTc4ZmRi
MTk5YTlmYmE0ZGM2M2U3ZmUzYjBiOGM0YzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTY4
MSw4ICsxNjgxLDkgQEAgX19aTjdXZWJDb3JlNUZyYW1lMjZzZW5kT3JpZW50YXRpb25DaGFuZ2VF
dmVudEVpCiAjaWYgVVNFKFBMVUdJTl9IT1NUX1BST0NFU1MpCiBfX1pOM0pTQzEzUnVudGltZU1l
dGhvZDExZ2V0Q2FsbERhdGFFUE5TXzZKU0NlbGxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDMTNS
dW50aW1lTWV0aG9kMTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUktOU18xMElk
ZW50aWZpZXJFCi1fX1pOM0pTQzEzUnVudGltZU1ldGhvZDE4Z2V0T3duUHJvcGVydHlTbG90RVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKK19fWk4z
SlNDMTNSdW50aW1lTWV0aG9kMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0Mx
M1J1bnRpbWVNZXRob2QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCitfX1pOM0pTQzEzUnVu
dGltZU1ldGhvZDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhv
ZDZzX2luZm9FCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0
RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0b3JJUE5TXzhCaW5kaW5nczZNZXRob2RFTG0wRUVF
CiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdEQxRXYKQEAgLTE2OTAsOSArMTY5MSwxMCBA
QCBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDExZ2V0Q2FsbERhdGFFUE5TXzZKU0Nl
bGxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEJp
bmRpbmdzMTNSdW50aW1lT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVQTlNfMTRKU0dsb2JhbE9iamVj
dEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTZnZXRDb25zdHJ1Y3REYXRhRVJO
U18xM0NvbnN0cnVjdERhdGFFCi1fX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE4Z2V0
T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlBy
b3BlcnR5U2xvdEUKK19fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThnZXRPd25Qcm9w
ZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5T
XzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOWdldE93
blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNf
MTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDI0Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJO
U18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0
MjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0
M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQ
dXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDZzX2luZm9F
CiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdEMyRVBOU185RXhlY1N0YXRlRVBOU18x
NEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRU4zV1RGMTBQYXNzUmVmUHRySU5TMF84SW5z
dGFuY2VFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcAppbmRleCAwNGI1Yjk3NjUyN2E0ZmQxOTViNDVhYjI4NDk1NjRlYWM4NWQyZTY4Li4z
ZGYwZWQ2MmFlZWY5ZDgzMmRmNzY1Y2IzMGQ3ZDczNmIzYWZhN2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0xMjEsOCArMTIx
LDE0IEBAIHN0YXRpYyBKU1ZhbHVlIG5hbWVkSXRlbUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpCiAgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhp
c09iaiwgY29sbGVjdGlvbi5nZXQoKSk7CiB9CiAKLWJvb2wgSlNET01XaW5kb3c6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU0RPTVdpbmRvdzo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0RP
TVdpbmRvdyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4oY2VsbCk7CiAg
ICAgLy8gV2hlbiBhY2Nlc3NpbmcgYSBXaW5kb3cgY3Jvc3MtZG9tYWluLCBmdW5jdGlvbnMgYXJl
IGFsd2F5cyB0aGUgbmF0aXZlIGJ1aWx0LWluIG9uZXMsIGFuZCB0aGV5CiAgICAgLy8gYXJlIG5v
dCBhZmZlY3RlZCBieSBwcm9wZXJ0aWVzIGNoYW5nZWQgb24gdGhlIFdpbmRvdyBvciBhbnl0aGlu
ZyBpbiBpdHMgcHJvdG90eXBlIGNoYWluLgogICAgIC8vIFRoaXMgaXMgY29uc2lzdGVudCB3aXRo
IHRoZSBiZWhhdmlvciBvZiBGaXJlZm94LgpAQCAtMTMyLDE3ICsxMzgsMTcgQEAgYm9vbCBKU0RP
TVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHkKICAgICAvLyBXZSBkb24ndCB3YW50IGFueSBwcm9wZXJ0aWVzIG90aGVy
IHRoYW4gImNsb3NlIiBhbmQgImNsb3NlZCIgb24gYSBmcmFtZWxlc3Mgd2luZG93IChpLmUuIG9u
ZSB3aG9zZSBwYWdlIGdvdCBjbG9zZWQsCiAgICAgLy8gb3Igd2hvc2UgaWZyYW1lIGdvdCByZW1v
dmVkKS4KICAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IGZ1bGx5IG1hdGNoIEZpcmVmb3gsIHdo
aWNoIGFsbG93cyBhdCBsZWFzdCB0b1N0cmluZyBpbiBhZGRpdGlvbiB0byB0aG9zZS4KLSAgICBp
ZiAoIWltcGwoKS0+ZnJhbWUoKSkgeworICAgIGlmICghdGhpc09iamVjdC0+aW1wbCgpLT5mcmFt
ZSgpKSB7CiAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBpcyBzYWZlIGZvciBjcm9zcy1k
b21haW4gYW5kIHNhbWUgZG9tYWluIHVzZS4KICAgICAgICAgLy8gSXQgaWdub3JlcyBhbnkgY3Vz
dG9tIHByb3BlcnRpZXMgdGhhdCBtaWdodCBiZSBzZXQgb24gdGhlIERPTVdpbmRvdyAoaW5jbHVk
aW5nIGEgY3VzdG9tIHByb3RvdHlwZSkuCiAgICAgICAgIGVudHJ5ID0gc19pbmZvLnByb3BIYXNo
VGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmIChlbnRy
eSAmJiAhKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbikgJiYgZW50cnktPnByb3BlcnR5
R2V0dGVyKCkgPT0ganNET01XaW5kb3dDbG9zZWQpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKHRoaXMsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0
Q3VzdG9tKHRoaXNPYmplY3QsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGVudHJ5ID0gSlNET01XaW5kb3dQcm90
b3R5cGU6OnNfaW5mby5wcm9wSGFzaFRhYmxlKGV4ZWMpLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICBpZiAoZW50cnkgJiYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlv
bikgJiYgZW50cnktPmZ1bmN0aW9uKCkgPT0ganNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNs
b3NlKSB7Ci0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGlj
RnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlLCAwPik7Cisg
ICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBub25DYWNoaW5nU3RhdGljRnVu
Y3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlLCAwPik7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC0xNTYsMTEgKzE2MiwxMSBAQCBi
b29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgIC8vIGJlY2F1c2Ugd2UgYWx3YXlzIGFsbG93IGFj
Y2VzcyB0byBzb21lIGZ1bmN0aW9uLCBqdXN0IGRpZmZlcmVudCBvbmVzIGRlcGVuZGluZyB3aGV0
aGVyIGFjY2VzcwogICAgIC8vIGlzIGFsbG93ZWQuCiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsK
LSAgICBib29sIGFsbG93c0FjY2VzcyA9IGFsbG93c0FjY2Vzc0Zyb20oZXhlYywgZXJyb3JNZXNz
YWdlKTsKKyAgICBib29sIGFsbG93c0FjY2VzcyA9IHRoaXNPYmplY3QtPmFsbG93c0FjY2Vzc0Zy
b20oZXhlYywgZXJyb3JNZXNzYWdlKTsKIAogICAgIC8vIExvb2sgZm9yIG92ZXJyaWRlcyBiZWZv
cmUgbG9va2luZyBhdCBhbnkgb2Ygb3VyIG93biBwcm9wZXJ0aWVzLCBidXQgaWdub3JlIG92ZXJy
aWRlcyBjb21wbGV0ZWx5CiAgICAgLy8gaWYgdGhpcyBpcyBjcm9zcy1kb21haW4gYWNjZXNzLgot
ICAgIGlmIChhbGxvd3NBY2Nlc3MgJiYgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIGlmIChhbGxvd3NBY2Nlc3MgJiYgSlNH
bG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIG5lZWQgdGhp
cyBjb2RlIGhlcmUgYmVjYXVzZSBvdGhlcndpc2UgSlNET01XaW5kb3dCYXNlIHdpbGwgc3RvcCB0
aGUgc2VhcmNoIGJlZm9yZSB3ZSBldmVuIGdldCB0byB0aGUKQEAgLTE3MiwyNiArMTc4LDI2IEBA
IGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygp
ICYgRnVuY3Rpb24pIHsKICAgICAgICAgICAgIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RP
TVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQmx1cikgewogICAgICAgICAgICAgICAgIGlmICghYWxs
b3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG5v
bkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9u
Qmx1ciwgMD4pOworICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0
LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5j
dGlvbkJsdXIsIDA+KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBq
c0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2UpIHsKICAgICAgICAgICAgICAgICBpZiAo
IWFsbG93c0FjY2VzcykgewotICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlz
LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5j
dGlvbkNsb3NlLCAwPik7CisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNP
YmplY3QsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlw
ZUZ1bmN0aW9uQ2xvc2UsIDA+KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24o
KSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uRm9jdXMpIHsKICAgICAgICAgICAgICAg
ICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3Rv
bSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5
cGVGdW5jdGlvbkZvY3VzLCAwPik7CisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1By
b3RvdHlwZUZ1bmN0aW9uRm9jdXMsIDA+KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVu
Y3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpIHsKICAg
ICAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAgICAgICAgICAgICBz
bG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01X
aW5kb3dQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlLCAyPik7CisgICAgICAgICAgICAgICAg
ICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdl
dHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIDI+KTsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1
bmN0aW9uU2hvd01vZGFsRGlhbG9nKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFET01XaW5kb3c6
OmNhblNob3dNb2RhbERpYWxvZyhpbXBsKCktPmZyYW1lKCkpKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyh0aGlzT2JqZWN0LT5pbXBsKCktPmZy
YW1lKCkpKSB7CiAgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KQEAgLTIwMSw3
ICsyMDcsNyBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgICAgICAvLyBBbGxvdyBhY2Nl
c3MgdG8gdG9TdHJpbmcoKSBjcm9zcy1kb21haW4sIGJ1dCBhbHdheXMgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy4KICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkudG9TdHJpbmcpIHsKICAgICAgICAgICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAg
ICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdl
dHRlcik7CisgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgb2JqZWN0
VG9TdHJpbmdGdW5jdGlvbkdldHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIwOSw3ICsyMTUsNyBAQCBib29sIEpTRE9NV2lu
ZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eQogCiAgICAgZW50cnkgPSBKU0RPTVdpbmRvdzo6c19pbmZvLnByb3BIYXNoVGFi
bGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKGVudHJ5KSB7Ci0g
ICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKKyAg
ICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIxOCwxOCArMjI0LDE4IEBAIGJv
b2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgLy8gbmFtaW5nIGZyYW1lcyB0aGluZ3MgdGhhdCBj
b25mbGljdCB3aXRoIHdpbmRvdyBwcm9wZXJ0aWVzIHRoYXQKICAgICAvLyBhcmUgaW4gTW96IGJ1
dCBub3QgSUUuIFNpbmNlIHdlIGhhdmUgc29tZSBvZiB0aGVzZSwgd2UgaGF2ZSB0byBkbwogICAg
IC8vIGl0IHRoZSBNb3ogd2F5LgotICAgIGlmIChpbXBsKCktPmZyYW1lKCktPnRyZWUoKS0+Y2hp
bGQoaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKSB7Ci0gICAgICAgIHNs
b3Quc2V0Q3VzdG9tKHRoaXMsIGNoaWxkRnJhbWVHZXR0ZXIpOworICAgIGlmICh0aGlzT2JqZWN0
LT5pbXBsKCktPmZyYW1lKCktPnRyZWUoKS0+Y2hpbGQoaWRlbnRpZmllclRvQXRvbWljU3RyaW5n
KHByb3BlcnR5TmFtZSkpKSB7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGNo
aWxkRnJhbWVHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBE
byBwcm90b3R5cGUgbG9va3VwIGVhcmx5IHNvIHRoYXQgZnVuY3Rpb25zIGFuZCBhdHRyaWJ1dGVz
IGluIHRoZSBwcm90b3R5cGUgY2FuIGhhdmUKICAgICAvLyBwcmVjZWRlbmNlIG92ZXIgdGhlIGlu
ZGV4IGFuZCBuYW1lIGdldHRlcnMuICAKLSAgICBKU1ZhbHVlIHByb3RvID0gcHJvdG90eXBlKCk7
CisgICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPnByb3RvdHlwZSgpOwogICAgIGlmIChw
cm90by5pc09iamVjdCgpKSB7CiAgICAgICAgIGlmIChhc09iamVjdChwcm90byktPmdldFByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBpZiAoIWFs
bG93c0FjY2VzcykgewotICAgICAgICAgICAgICAgIHByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVz
c2FnZSk7CisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cHJpbnRFcnJvck1lc3NhZ2UoZXJy
b3JNZXNzYWdlKTsKICAgICAgICAgICAgICAgICBzbG90LnNldFVuZGVmaW5lZCgpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yNDIsMjggKzI0OCwyOCBAQCBi
b29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgIC8vIGFsbG93IHdpbmRvd1sxXSBvciBwYXJlbnRb
MV0gZXRjLiAoIzU2OTgzKQogICAgIGJvb2wgb2s7CiAgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5
TmFtZS50b0FycmF5SW5kZXgob2spOwotICAgIGlmIChvayAmJiBpIDwgaW1wbCgpLT5mcmFtZSgp
LT50cmVlKCktPmNoaWxkQ291bnQoKSkgewotICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRo
aXMsIGksIGluZGV4R2V0dGVyKTsKKyAgICBpZiAob2sgJiYgaSA8IHRoaXNPYmplY3QtPmltcGwo
KS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGlsZENvdW50KCkpIHsKKyAgICAgICAgc2xvdC5zZXRDdXN0
b21JbmRleCh0aGlzT2JqZWN0LCBpLCBpbmRleEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAogICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgIHByaW50RXJyb3JN
ZXNzYWdlKGVycm9yTWVzc2FnZSk7CisgICAgICAgIHRoaXNPYmplY3QtPnByaW50RXJyb3JNZXNz
YWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIEFsbG93IHNob3J0Y3V0cyBsaWtlICdJbWFn
ZTEnIGluc3RlYWQgb2YgZG9jdW1lbnQuaW1hZ2VzLkltYWdlMQotICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IGltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSB0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1lKCktPmRvY3VtZW50KCk7CiAgICAgaWYgKGRv
Y3VtZW50LT5pc0hUTUxEb2N1bWVudCgpKSB7CiAgICAgICAgIEF0b21pY1N0cmluZ0ltcGwqIGF0
b21pY1Byb3BlcnR5TmFtZSA9IGZpbmRBdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKTsKICAgICAg
ICAgaWYgKGF0b21pY1Byb3BlcnR5TmFtZSAmJiAoc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4o
ZG9jdW1lbnQpLT5oYXNOYW1lZEl0ZW0oYXRvbWljUHJvcGVydHlOYW1lKSB8fCBkb2N1bWVudC0+
aGFzRWxlbWVudFdpdGhJZChhdG9taWNQcm9wZXJ0eU5hbWUpKSkgewotICAgICAgICAgICAgc2xv
dC5zZXRDdXN0b20odGhpcywgbmFtZWRJdGVtR2V0dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0
Q3VzdG9tKHRoaXNPYmplY3QsIG5hbWVkSXRlbUdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gQmFzZTo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAK
IGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQpAQCAtNjgzLDcgKzY4OSw3IEBAIGlubGluZSBKU1ZhbHVlIERpYWxvZ0hhbmRs
ZXI6OnJldHVyblZhbHVlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAg
ICAgSWRlbnRpZmllciBpZGVudGlmaWVyKG1fZXhlYywgInJldHVyblZhbHVlIik7CiAgICAgUHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QtPmdldE93blByb3BlcnR5U2xv
dChtX2V4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQorICAgIGlmICghZ2xvYmFsT2JqZWN0LT5nZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhlYywgaWRlbnRpZmllciwgc2xvdCkpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIHJldHVybiBzbG90LmdldFZhbHVlKG1fZXhlYywg
aWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwCmluZGV4IDZkMjZmOTg1YzcxYjZjNGI4M2IwYTMwMjk4OWIwN2YwYmEzMjdi
MWUuLmZhNjFiNDk2YjI4NDdmZWI1NmM2NmMzOTA3NWMyODY0YWQwOTM0OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMDAsMTQg
KzEwMCwxNCBAQCBVU3RyaW5nIEpTRE9NV2luZG93U2hlbGw6OmNsYXNzTmFtZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fd2luZG93LT5jbGFzc05hbWUoKTsKIH0KIAotYm9vbCBKU0RPTVdpbmRvd1No
ZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNET01XaW5kb3dTaGVs
bDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAog
Ym9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4o
Y2VsbCktPm1fd2luZG93LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpLT5t
X3dpbmRvdy0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCiBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5oCmluZGV4IGI1ZGQzYTZhMTZjMmNkOGE2M2Y5OGEzZjkyNzk4MzUy
YmRmMGQ2NzcuLjZhYzkxYmNhZjI3YzNhMjAyNDgwYjlmOTFmN2M0YmY4YzZjNTFlZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKQEAgLTgwLDcg
KzgwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDOjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAgICAgICAgIHZpcnR1
YWwgSlNDOjpVU3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6UHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA2N2YyZTk5YmE2NDBlM2M2NjUzYTdm
ZGJkNjg2Nzc5NWVjZjNhN2I3Li5mZWM0MTlmYjc0MDQ2ZmMyYzA3Y2Y4NTAwYTE1YzBkNTViYzdi
NzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEN1c3RvbS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBKU1dvcmtlckNvbnRleHQ6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIGJvb2wgSlNX
b3JrZXJDb250ZXh0OjpnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIC8vIExvb2sgZm9yIG92ZXJyaWRlcyBiZWZvcmUgbG9va2luZyBhdCBhbnkgb2Ygb3VyIG93
biBwcm9wZXJ0aWVzLgotICAgIGlmIChKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgaWYgKEpTR2xvYmFsT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggOGRiZTNlYTA5
YzdjN2ZiZjVkNDlkN2U1MGZjZmExZDQzNGQxNDBiOS4uYjEwZjFkN2NjMWJlMTUyNTI1NjBlYzQz
NWNiYjQ0YzJjMjU0Yzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0zMzMsMTEgKzMzMywxMSBAQCBwcml2YXRl
OgogICAgIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoYXJyYXkpOwogICAgICAgICBpZiAo
aXNKU0FycmF5KCZtX2V4ZWMtPmdsb2JhbERhdGEoKSwgYXJyYXkpKSB7Ci0gICAgICAgICAgICBp
ZiAoYXJyYXktPkpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpIHsKKyAgICAgICAgICAgIGlmIChKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
YXJyYXksIG1fZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgICAgIGhh
c0luZGV4ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShtX2V4
ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoYXJy
YXktPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAg
ICAgICAgfSBlbHNlIGlmIChhcnJheS0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChtX2V4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgIGhhc0luZGV4ID0gdHJ1ZTsKICAg
ICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKG1fZXhlYywgcHJvcGVydHlOYW1lKTsKICAg
ICAgICAgfQpAQCAtMzQ4LDcgKzM0OCw3IEBAIHByaXZhdGU6CiAgICAgSlNWYWx1ZSBnZXRQcm9w
ZXJ0eShKU09iamVjdCogb2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAg
ICAgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QpOwotICAgICAgICBpZiAob2Jq
ZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QobV9leGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAg
ICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKG1fZXhlYywg
cHJvcGVydHlOYW1lKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4
IDJkODEzNDcwYzdjYTE3MzkyZGVmYjIxMWQ2MjUyMTgyZDk2ZjBhMWEuLmY2YWQ3MTRmNGIyYTFi
ZmUxMWRkMTZlMzE3ZTkyY2ZkMjQ4NGQ3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00MzAsNyArNDMwLDcgQEAgc3Vi
IEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQogICAgIG15IEBnZXRPd25Qcm9wZXJ0eVNs
b3RJbXBsID0gKCk7CiAKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5hbWVkTm9kZU1hcCIg
b3IgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAkaW50ZXJmYWNlTmFtZSBl
cSAiSFRNTEFsbENvbGxlY3Rpb24iKSB7Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xv
dEltcGwsICIgICAgJHtuYW1lc3BhY2VNYXliZX1KU1ZhbHVlIHByb3RvID0gcHJvdG90eXBlKCk7
XG4iKTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAke25hbWVz
cGFjZU1heWJlfUpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5wcm90b3R5cGUoKTtcbiIpOwog
ICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChwcm90by5pc09i
amVjdCgpICYmIHN0YXRpY19jYXN0PCR7bmFtZXNwYWNlTWF5YmV9SlNPYmplY3QqPihhc09iamVj
dChwcm90bykpLT5oYXNQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpKVxuIik7CiAgICAgICAg
IHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHJldHVybiBmYWxzZTtcblxu
Iik7CiAgICAgfQpAQCAtNDQwLDcgKzQ0MCw3IEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5
U2xvdEJvZHkKICAgICAgICAgaWYgKCRyZXF1aXJlc01hbnVhbExvb2t1cCkgewogICAgICAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBjb25zdCAke25hbWVzcGFjZU1h
eWJlfUhhc2hFbnRyeSogZW50cnkgPSAke2NsYXNzTmFtZX1UYWJsZS5lbnRyeShleGVjLCBwcm9w
ZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBs
LCAiICAgIGlmIChlbnRyeSkge1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0
eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBlbnRyeS0+cHJvcGVydHlH
ZXR0ZXIoKSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGws
ICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGVudHJ5LT5wcm9wZXJ0eUdldHRl
cigpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAg
ICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
U2xvdEltcGwsICIgICAgfVxuIik7CiAgICAgICAgIH0KQEAgLTQ1OSwyMCArNDU5LDIwIEBAIHN1
YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAgICAgICAgaWYgKEluZGV4R2V0dGVy
UmV0dXJuc1N0cmluZ3MoJGltcGxDbGFzc05hbWUpKSB7CiAgICAgICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChvaykge1xuIik7CiAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChvayAm
JiBpbmRleCA8IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkp
IHtcbiIpOworICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBp
ZiAob2sgJiYgaW5kZXggPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3Qt
PmltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKICAgICAgICAgfQogICAgICAgICBpZiAoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewot
ICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5z
ZXRWYWx1ZShnZXRCeUluZGV4KGV4ZWMsIGluZGV4KSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2go
QGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCkpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1
c3RvbUluZGV4KHRoaXMsIGluZGV4LCBpbmRleEdldHRlcik7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgo
dGhpc09iamVjdCwgaW5kZXgsIGluZGV4R2V0dGVyKTtcbiIpOwogICAgICAgICB9CiAgICAgICAg
IHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7
CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgfVxuIik7CiAgICAg
fQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc05hbWVHZXR0
ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFt
ZUdldHRlciJ9KSB7Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAg
aWYgKGNhbkdldEl0ZW1zRm9yTmFtZShleGVjLCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+
KGltcGwoKSksIHByb3BlcnR5TmFtZSkpIHtcbiIpOwotICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBuYW1lR2V0dGVyKTtc
biIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChjYW5H
ZXRJdGVtc0Zvck5hbWUoZXhlYywgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2Jq
ZWN0LT5pbXBsKCkpLCBwcm9wZXJ0eU5hbWUpKSB7XG4iKTsKKyAgICAgICAgcHVzaChAZ2V0T3du
UHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgdGhp
c09iamVjdC0+bmFtZUdldHRlcik7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlT
bG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3du
UHJvcGVydHlTbG90SW1wbCwgIiAgICB9XG4iKTsKICAgICAgICAgaWYgKCRpbmxpbmVkKSB7CkBA
IC00ODcsMTkgKzQ4NywxOSBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAg
ICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRp
bmdHZXRPd25Qcm9wZXJ0eVNsb3QifSkgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNs
b3RJbXBsLCAiICAgIGlmIChnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKVxuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGws
ICIgICAgaWYgKHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90
SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICB9CiAKICAgICBpZiAoJGhhc0F0
dHJpYnV0ZXMpIHsKICAgICAgICAgaWYgKCRpbmxpbmVkKSB7CiAgICAgICAgICAgICBkaWUgIkNh
bm5vdCBpbmxpbmUgaWYgTm9TdGF0aWNUYWJsZXMgaXMgc2V0LiIgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0pOwotICAgICAgICAgICAgcHVzaChA
Z2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICByZXR1cm4gJHtuYW1lc3BhY2VNYXliZX1nZXRT
dGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFtZSwgQmFzZT4oZXhlYywgc19pbmZvLnN0YXRpY1Byb3BI
YXNoVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9
Z2V0U3RhdGljVmFsdWVTbG90PCRjbGFzc05hbWUsIEJhc2U+KGV4ZWMsIHNfaW5mby5zdGF0aWNQ
cm9wSGFzaFRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAi
ICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0YXRpY1ZhbHVlU2xvdDwkY2xhc3NOYW1l
LCBCYXNlPihleGVjLCAiIC4gaGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNs
b3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0YXRpY1ZhbHVlU2xvdDwk
Y2xhc3NOYW1lLCBCYXNlPihleGVjLCAiIC4gaGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0
aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0KICAgICB9IGVs
c2UgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiBC
YXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwor
ICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtc
biIpOwogICAgIH0KIAogICAgIHJldHVybiBAZ2V0T3duUHJvcGVydHlTbG90SW1wbDsKQEAgLTc3
MCw5ICs3NzAsMTEgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIEdldHRlcnMKICAgICBp
ZiAoJGhhc0dldHRlcikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRv
ciYpO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9OworICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpT
Qzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
O1xuIikgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVy
In0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0
ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhH
ZXR0ZXIifSkgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRp
bmdOYW1lR2V0dGVyIn07CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKSBpZiAoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAmJiAhJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIifTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5U2xv
dERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRl
bGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvckRlbGVnYXRlKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtc
biIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Q
cm9wZXJ0eVNsb3QifTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCJ9ID0gMTsKQEAgLTk2Nyw5ICs5NjksMTQgQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn07XG5cbiIpOwogCiAgICAgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklubGluZUdldE93blByb3BlcnR5U2xvdCJ9
ICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0
eVNsb3QifSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBi
b29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
IHNsb3QpXG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZU19JTkxJTkUg
Ym9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAie1xuIik7
Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifVxuXG4iKTsKKyAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZU19JTkxJTkUgYm9vbCAke2NsYXNzTmFtZX06
OmdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCogY2VsbCwgSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYgc2xvdClcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAie1xuIik7CisgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZz
X2luZm8pO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIEdlbmVyYXRlR2V0T3du
UHJvcGVydHlTbG90Qm9keSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAk
aW1wbENsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAxKSk7CiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxX
QVlTX0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKQEAgLTEwMzUsNyArMTA0
Miw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7CiAgICAgaWYgKCRudW1G
dW5jdGlvbnMgPiAwIHx8ICRudW1Db25zdGFudHMgPiAwIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifSkgewot
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlBy
b3BlcnR5U2xvdCYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CisgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6
OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7XG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5U2xvdERl
bGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVn
YXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvckRlbGVnYXRlKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0
b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQ
cm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifTsKQEAgLTE0MzMsMjIgKzE0NDEsMjggQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5c
biIpOwogICAgIH0KICAgICBpZiAoJG51bUNvbnN0YW50cyA+IDAgfHwgJG51bUZ1bmN0aW9ucyA+
IDAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlw
ZUdldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9v
bCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxu
Iik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX1Qcm90b3R5
cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2Ns
YXNzTmFtZX1Qcm90b3R5cGUqPihjZWxsKTtcbiIpOwogCiAgICAgICAgIGlmICgkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlR2V0T3duUHJvcGVydHlT
bG90In0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChnZXRPd25Q
cm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodGhpc09iamVjdC0+Z2V0T3duUHJv
cGVydHlTbG90RGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSlcbiIpOwogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAoJG51bUNvbnN0YW50cyBlcSAwICYmICRudW1GdW5jdGlvbnMg
ZXEgMCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEJhc2U6
OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7ICAgICAg
ICAKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBCYXNlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIp
OyAgICAgICAgCiAgICAgICAgIH0gZWxzaWYgKCRudW1Db25zdGFudHMgZXEgMCkgewotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xv
dDxKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4g
IiwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhl
YywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgICAgICB9IGVsc2lmICgkbnVtRnVuY3Rpb25z
IGVxIDApIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRT
dGF0aWNWYWx1ZVNsb3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAu
IHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1l
LCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
IGdldFN0YXRpY1ZhbHVlU2xvdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUsIEpTT2JqZWN0PihleGVj
LCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlTbG90PCR7Y2xh
c3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVIYXNoVGFibGVB
Y2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9
LCAkY2xhc3NOYW1lKSAuICIsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNs
b3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhh
c2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGlj
VGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90
KTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
IApAQCAtMTU3Miw5ICsxNTg2LDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
IyBBdHRyaWJ1dGVzCiAgICAgaWYgKCRoYXNHZXR0ZXIpIHsKICAgICAgICAgaWYgKCEkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QifSAmJiAh
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90
In0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFt
ZX0qPihjZWxsKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTtcbiIpOwogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSgk
ZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZSwgJG51
bUF0dHJpYnV0ZXMgPiAwLCAwKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
blxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwpA
QCAtMTU4NiwxOCArMTYwNSwyMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAg
ICAgIGlmICgoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIi
fSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRl
ciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdl
dHRlciJ9KSAKICAgICAgICAgICAgICAgICAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIifSkgewotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7XG4iKTsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmIChwcm9wZXJ0eU5hbWUgPCBzdGF0aWNfY2FzdDwkaW1wbENs
YXNzTmFtZSo+KGltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG5cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1l
fTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1l
fSo+KGNlbGwpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAocHJvcGVydHlOYW1lIDwgc3RhdGljX2Nh
c3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgoKSkge1xuIik7
CiAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3Vz
dG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNO
dW1lcmljSW5kZXhHZXR0ZXIifSkgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICAgICBzbG90LnNldFZhbHVlKGdldEJ5SW5kZXgoZXhlYywgcHJvcGVydHlOYW1lKSk7
XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LT5nZXRCeUluZGV4KGV4ZWMsIHByb3BlcnR5TmFtZSkpO1xuIik7
CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXMsIHByb3BlcnR5TmFtZSwgaW5kZXhH
ZXR0ZXIpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0
LT5pbmRleEdldHRlcik7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgfVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhl
YywgcHJvcGVydHlOYW1lKSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiB0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4
ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7XG4iKTsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICAgICAgfQogICAgICAg
ICAKQEAgLTMxNTYsNyArMzE4MCw4IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRp
b24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBwdHI7XG4iKTsKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxuXG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJv
cGVydHlTbG90Jik7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvciYpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBjb25z
dCBKU0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKIApAQCAtMzIxMSw5ICszMjM2LDE0IEBAIHN1
YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
bGVuZ3RoLCBqc051bWJlcigke251bWJlck9mY29uc3RydWN0UGFyYW1ldGVyc30pLCBSZWFkT25s
eSB8IERvbnREZWxldGUgfCBEb250RW51bSk7XG4iKSBpZiAkbnVtYmVyT2Zjb25zdHJ1Y3RQYXJh
bWV0ZXJzOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiAKLSAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJib29sICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtj
b25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dClcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOworICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwor
ICAgIAorICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFt
ZX06OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwgSlNE
T01XcmFwcGVyPihleGVjLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwgdGhpcywgcHJv
cGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1
cm4gZ2V0U3RhdGljVmFsdWVTbG90PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9LCBKU0RPTVdyYXBw
ZXI+KGV4ZWMsICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCBzdGF0aWNfY2FzdDwke2Nv
bnN0cnVjdG9yQ2xhc3NOYW1lfSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L29iamNfcnVudGltZS5oCmluZGV4IGE5OGE5MGUxOTc1MGFkYmY5MzZlZGI3Njk3MWUxNzE0YTVh
ZGI2ZWYuLjcxYzQzNzgxMzA1ZDI1MGNjOTM4ZTI1NWI4MGE4YjY5ODdiODY5MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMjMsNyArMTIzLDcgQEAg
cHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBPYmpjRmFsbGJhY2tPYmplY3RJbXAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggNGNmYzM4NGFl
NTU2M2Q3ZDE4M2U3MWZlZDdkNmEwMTFmZDM1MjU1OS4uOWIwMTJkNDQ5MTdkNTQ5NjEwMjYzZTlk
OTFlZmYwYjllZTBhY2U0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5tbQpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpm
aW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiB9CiAKLWJvb2wgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlm
aWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJv
cGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKaW5kZXggMGQ2MWE2MDIyOTAyYjBjYzZmNTY0OTAy
MjZlNjQ5MDU5ZWEzM2JiNC4uYWU3NGRhOWFhMDNlOWM1NThkZDQwZjFiMDY2ZDFjNTNiMjNmMTM3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCkBAIC0xNTMsNyAr
MTUzLDcgQEAgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBRdEluc3RhbmNlOjpnZXRRdEluc3RhbmNl
KFFPYmplY3QqIG8sIFBhc3NSZWZQdHI8Um9vdE9iamUKIAogYm9vbCBRdEluc3RhbmNlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1
cm4gb2JqZWN0LT5KU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiB2b2lkIFF0SW5zdGFuY2U6OnB1dChK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IGMzYTdhM2QwYTY1ZDA1N2E0MmRlZmI0
MDRiNDA2NzFmOTg2ODUzMTAuLjdjNmUzYTQ0YWE0N2ExNjIxZGRjNmE1MjA0MjM2MmVhZTBkOWU1
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKQEAgLTE0OTQsNyAr
MTQ5NCw3IEBAIENhbGxUeXBlIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1i
b29sIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMTc0MSw3ICsxNzQxLDcgQEAgQ2FsbFR5cGUgUXRSdW50
aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxE
YXRhKQogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CiB9CiAKLWJvb2wgUXRSdW50aW1lQ29ubmVj
dGlvbk1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFF0UnVudGlt
ZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVu
dGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAppbmRleCA5ODE5
N2Y1OTk4Mjc0NDE5YzEwMmMzZTM4NTk2OTQzYjVmYjY2ODVkLi5hYTlkNThkOGI1NWEwMzI1YjE3
MzQ0OGFiNGU2MGVmNmM0M2JkMjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cXQvcXRfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1l
LmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtZXRob2Q7CiAg
ICAgfQogCi0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCos
IEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIGdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1v
ZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpAQCAtMjA1LDcgKzIwNSw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1ldGhvZDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUq
LCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRF
bnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5k
ZXggODBlMmE4Zjk1MWUxY2U1M2IyZjM2YTZmYjE1NWMyM2I0OGU4ODliOC4uYjY0OWM0N2UyZjM4
YmFmNWJmNmEzMDY3M2Y2OTRiYTc4ZjQ4MjEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcApAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZQog
ICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1v
ZGUpOwogfQogCi1ib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCitib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcAogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMs
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLWJvb2wgUnVudGltZUFycmF5OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlT
bG90JiBzbG90KQorYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlICpleGVjLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaW5kZXgsIHNsb3QpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXggYTNkNDQ1OGI2Yjg4ZDMz
Yzk0MzNkNjA5OTI2OGYyNGEzNDA4MjdkZi4uZGE5M2M5NDVkNTFhMzdkM2Y4MTEwMmQ1NGRmOGM2
OGJhYWM5YjgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJy
YXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC01MCw5
ICs1MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SdW50aW1lQXJyYXkoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFy
cmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsK
LSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsK
KyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1
bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRl
eCA1OTUzMGFlNzdkNjYzOTMyMmIyYjk4OGYzMDZjNmEwMGMyNjg4ODE1Li5jYTkxYjhkMTU4ZWU5
NDczYjE4NTg0YzIwZGU3ZmU5MTgwMDliNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX21ldGhvZC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgSlNWYWx1ZSBSdW50aW1lTWV0aG9kOjps
ZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmkK
ICAgICByZXR1cm4ganNOdW1iZXIodGhpc09iai0+X21ldGhvZExpc3QtPmF0KDApLT5udW1QYXJh
bWV0ZXJzKCkpOwogfQogCi1ib29sIFJ1bnRpbWVNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90ICZzbG90KQorYm9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRo
b2QuaAppbmRleCBjNWY2NmE2MmY2MWI4MmNlNjk1NzkzMTEwNTAwOWFiY2MxMDgwNGM3Li4wODg1
ZGJlNmUxZDFkYTY0N2I5OTNhYjRjZmU1Y2RhMjIzMDU4N2E2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9tZXRob2QuaApAQCAtNjYsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZh
dGU6CiAgICAgc3RhdGljIEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUs
IGNvbnN0IElkZW50aWZpZXImKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggMTMzOGNmODY1Y2U0Y2Y0YWJkZTA2YTk0
ZGE0MmY3NjQxMjQ0NzE2Zi4uOWIzZjA4MWQxYzU5NDc1ZDdhODdkMGQzYmZjNDE1ZDZmMTAwNWI2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0xMTYsNyAr
MTE2LDcgQEAgSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGUKICAgICByZXR1cm4gbWV0aG9kOwogfQog
Ci1ib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9v
bCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCAwNjZk
NzczN2UzMjQ2NGU1ODYyMTE4NWU2NGE1NzMzZGIxZWVkZWZjLi44YzViNTA1ZDc0MjY3YjVlOTg4
MjA0MmI1ODQ0OTRmNDhmMzZiYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5SdW50aW1lT2Jq
ZWN0KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGYzYmZmYmMwMmY5MTk3ZTcyNmIyOTg3NzdhMWVhNDdiOWRhZmU5
ZjguLmY2MTYzZjUzZjE3NzYwMmJkZDc4MTBhODFjMTg1NWMxYWEzMGNmNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMC0xMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJl
cmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk4MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWVkIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2YgZ2V0T3duUHJvcGVy
dHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaW4gcHJlcGFyYXRp
b24gZm9yIHdoZW4gd2UgYWRkIHRoZSBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IHRvIHRoZSBN
ZXRob2RUYWJsZSAKKyAgICAgICAgaW4gQ2xhc3NJbmZvLgorCisgICAgICAgIEFsc28gYWRkZWQg
YSBmZXcgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCBmdW5jdGlvbnMgd2hlcmUgdGhleSBoYWQg
YmVlbiBvdmVybG9va2VkIAorICAgICAgICBiZWZvcmUgKGVzcGVjaWFsbHkgaW4gQ29kZUdlbmVy
YXRvckpTLnBtKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuaDoKKwogMjAxMS0xMC0xMCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFVzZSBhIENhY2hlZEltYWdlQ2xpZW50IGluc3RlYWQgb2YgQ2FjaGVkUmVz
b3VyY2VDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCA1M2Y1ODYwMWMwYTk2NjgxYzg1NDE4
YmNkMzRkY2FiNDJlMDBhMWY0Li40NmFjMzhmM2JjMTRkM2QwM2E1ZjFmNDUyM2E3YWE1MTA2ZDc4
ZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC0yNTIsNyArMjUyLDcgQEAgQ29uc3RydWN0VHlw
ZSBKU05QT2JqZWN0OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCogY2VsbCwgQ29uc3RydWN0RGF0
YSYgY29uc3RydWMKICAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7CiB9CiAKLWJvb2wgSlNO
UE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTTlBPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuaAppbmRleCAyM2ZmYzhmYzkyMzJkYjM0YWYwMjEzY2Y3M2U3MWNhZTI5NzU2MTYwLi43
NzkzODY5Nzc2ZmExNDdiMDE4NGVlN2IwNWMyYTE4N2I5YWE3ZWU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgK
QEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEpTQzo6Q29uc3RydWN0VHlw
ZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29uc3RydWN0RGF0YSYpOwogICAgIHN0YXRpYyBKU0M6
OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q29uc3Ry
dWN0RGF0YSYpOwogCi0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1
dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110466</attachid>
            <date>2011-10-10 20:10:52 -0700</date>
            <delta_ts>2011-10-11 10:31:59 -0700</delta_ts>
            <desc>Reset bindings</desc>
            <filename>bug-69810-20111010201053.patch</filename>
            <type>text/plain</type>
            <size>174497</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxMTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggYTU2MDM1YjlhNGQzM2UyOTFiNTYwYTU2NzE2YzMwMmFh
ZWJhODM0YS4uNjM1ZDljZmQwNGFmMGU1ODFmNGEyMzFhODM3MzkxNWI5ZWU5NDBkMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE3OCw3ICsx
NzgsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05h
bWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAogICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAppbmRleCA4ZWUwNjA2MjdlYjQ2YmFhMjZkYWFkZTBkYzQyMTc5ZTdk
ZDVhY2JlLi5hZmIwZWNiNmUzNzdiN2U2N2U5ZTA3OWMzZjdiNDJhNTBiOGY0YzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaApAQCAtMTI0LDIwICsxMjQsMjcgQEAgVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmNsYXNzTmFtZSgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1ib29s
IEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KK2Jv
b2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CiAgICAgSlNDb250ZXh0UmVmIGN0
eCA9IHRvUmVmKGV4ZWMpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsK
KyAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYodGhpc09iamVjdCk7CiAgICAgUmVmUHRy
PE9wYXF1ZUpTU3RyaW5nPiBwcm9wZXJ0eU5hbWVSZWY7CiAgICAgCi0gICAgZm9yIChKU0NsYXNz
UmVmIGpzQ2xhc3MgPSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFy
ZW50Q2xhc3MpIHsKKyAgICBmb3IgKEpTQ2xhc3NSZWYganNDbGFzcyA9IHRoaXNPYmplY3QtPmNs
YXNzUmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNzLT5wYXJlbnRDbGFzcykgewogICAg
ICAgICAvLyBvcHRpb25hbCBvcHRpbWl6YXRpb24gdG8gYnlwYXNzIGdldFByb3BlcnR5IGluIGNh
c2VzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGtub3cgaWYgdGhlIHByb3BlcnR5IGV4aXN0cwogICAg
ICAgICBpZiAoSlNPYmplY3RIYXNQcm9wZXJ0eUNhbGxiYWNrIGhhc1Byb3BlcnR5ID0ganNDbGFz
cy0+aGFzUHJvcGVydHkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQogICAg
ICAgICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocHJv
cGVydHlOYW1lLnVzdHJpbmcoKSk7CiAgICAgICAgICAgICBBUElDYWxsYmFja1NoaW0gY2FsbGJh
Y2tTaGltKGV4ZWMpOwogICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KGN0eCwgdGhpc1JlZiwg
cHJvcGVydHlOYW1lUmVmLmdldCgpKSkgewotICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIGNhbGxiYWNrR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzT2JqZWN0LCBjYWxsYmFja0dldHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNh
bGxiYWNrIGdldFByb3BlcnR5ID0ganNDbGFzcy0+Z2V0UHJvcGVydHkpIHsKQEAgLTE2Miw3ICsx
NjksNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAgICAgICAgaWYgKE9w
YXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3Rh
dGljVmFsdWVzKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAoc3RhdGljVmFsdWVzLT5jb250YWlu
cyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBnZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgICAgIEpT
VmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0LT5nZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICBz
bG90LnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC0xNzIsMjAgKzE3OSwyMCBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAg
ICAgICAgaWYgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNGdW5jdGlvbnNUYWJsZSogc3RhdGljRnVuY3Rp
b25zID0ganNDbGFzcy0+c3RhdGljRnVuY3Rpb25zKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAo
c3RhdGljRnVuY3Rpb25zLT5jb250YWlucyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAg
ICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKTsKKyAg
ICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNGdW5jdGlvbkdl
dHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIHRl
bXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgUHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKGdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CisgICAgaWYgKGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBJZGVhbGx5IHdlIHNob3VsZCByZXR1
cm4gYW4gYWNjZXNzIGRlc2NyaXB0b3IsIGJ1dCByZXR1cm5pbmcgYSB2YWx1ZSBkZXNjcmlwdG9y
IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICghZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCkBAIC01OTYsNyArNjAzLDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZQogICAgIAog
ICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHkuCiAgICAgUHJvcGVy
dHlTbG90IHNsb3QyKHRoaXNPYmopOwotICAgIGlmICh0aGlzT2JqLT5QYXJlbnQ6OmdldE93blBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QyKSkKKyAgICBpZiAoUGFyZW50Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90MikpCiAg
ICAgICAgIHJldHVybiBzbG90Mi5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIAog
ICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iai0+Y2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA4ZmE2ODUwODk2YTY2M2YyNjU1NDRmMDhkNzI5ZTRkN2ViMzgyMTc3Li4zZTFiOWYx
NmYyYTdkMTU4NGZjODNmY2Q1Mzg2YjM5ZWMyZmJkYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDEgQEAKKzIwMTEtMTAtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRv
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdmlydHVhbCB2ZXJzaW9uIG9mIGdldE93blBy
b3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGluIHByZXBh
cmF0aW9uIGZvciB3aGVuIHdlIGFkZCB0aGUgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCB0byB0
aGUgTWV0aG9kVGFibGUgCisgICAgICAgIGluIENsYXNzSW5mby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgZmV3IHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgZnVuY3Rpb25zIHdoZXJlIHRoZXkg
aGFkIGJlZW4gb3Zlcmxvb2tlZCAKKyAgICAgICAgYmVmb3JlIChlc3BlY2lhbGx5IGluIENvZGVH
ZW5lcmF0b3JKUy5wbSkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAg
ICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoSlNDOjo6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KToKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGlt
ZS9BcnJheUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAg
KiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmg6Cisg
ICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRl
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkVycm9yUHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBl
Lmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpK
U0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChK
U0M6OkpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU0Fy
cmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0JvdW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0J5dGVB
cnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93blByb3BlcnR5TmFt
ZXMpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6aGFzT3duUHJvcGVydHlGb3JXcml0ZSk6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6
OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SlNPTk9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OldhbGtlcjo6d2Fsayk6
CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAg
ICAgIChKU0M6OkpTT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9K
U09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6ZmFzdEdldE93blByb3BlcnR5U2xvdCk6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjpnZXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTU3RhdGljU2NvcGVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdHJpbmcuY3BwOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKiBydW50
aW1lL0xvb2t1cC5oOgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAoSlNDOjpnZXRTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAoSlNDOjpnZXRTdGF0
aWNWYWx1ZVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6Ok1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAq
IHJ1bnRpbWUvTWF0aE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6TnVtYmVy
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1l
L051bWJlclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJv
dG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL09i
amVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNo
ZXNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisKIDIwMTEtMTAtMTAgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgSlNWQUxVRTY0IHNwaWxsL2ZpbGwg
Y29kZSBzaG91bGQgbm90IGJveCBpbnRlZ2VycyBhbmQgZG91YmxlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggZmFhNWVjMjk1NmJjMWNjYzViM2E4N2U3ZDU5
ZmMxY2M2YzI0MTMzNC4uMTgyZmY1YzZlZGIzMzEwMzQ1OGUxNzQ5MmQ5ZGNiZjZmOTg4N2I2NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0xNDgsOCArMTQ4
LDYgQEAgX19aTjNKU0MxMlNtYWxsU3RyaW5nczE3Y3JlYXRlRW1wdHlTdHJpbmdFUE5TXzEySlNH
bG9iYWxEYXRhRQogX19aTjNKU0MxMlNtYWxsU3RyaW5nczI3Y3JlYXRlU2luZ2xlQ2hhcmFjdGVy
U3RyaW5nRVBOU18xMkpTR2xvYmFsRGF0YUVoCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTJT
dHJpbmdPYmplY3QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTU3Ry
aW5nRQotX19aTjNKU0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhl
Y1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDMTJT
dHJpbmdPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJv
cGVydHlTbG90RQogX19aTjNKU0MxMlN0cmluZ09iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQ
TlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9k
ZUUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBf
X1pOM0pTQzEyU3RyaW5nT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCkBAIC0xNjcsOCArMTY1LDkgQEAg
X19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTNjbGVhclJhcmVEYXRhRVBOU182SlNDZWxsRQogX19a
TjNKU0MxNEpTR2xvYmFsT2JqZWN0MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNs
b3RWaXNpdG9yRQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBO
UzBfMThHbG9iYWxQcm9wZXJ0eUluZm9FaQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdwdXRX
aXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1
ZUVqCi1fX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzE0
SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNH
bG9iYWxPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCitfX1pOM0pTQzE0SlNHbG9i
YWxPYmplY3QyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0
M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQ
dXRQcm9wZXJ0eVNsb3RFICAKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDRpbml0RVBOU184SlNP
YmplY3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q2c19pbmZvRQpAQCAtMjYwLDggKzI1OSw4
IEBAIF9fWk4zSlNDNkpTQ2VsbDExZ2V0Q2FsbERhdGFFUFMwX1JOU184Q2FsbERhdGFFCiBfX1pO
M0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBf
X1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVjdERhdGFFUk5TXzEzQ29uc3RydWN0RGF0YUUKLV9f
Wk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJ
ZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJv
cGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzZK
U0NlbGwyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNKU0M2SlNDZWxsMjVnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pO
M0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1Zh
bHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5TXzlFeGVj
U3RhdGVFak5TXzdKU1ZhbHVlRSAgCiBfX1pOM0pTQzZKU0NlbGw5Z2V0T2JqZWN0RXYKQEAgLTI4
MCw3ICsyNzksNyBAQCBfX1pOM0pTQzdKU0FycmF5MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxs
RVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNKU0M3SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5T
XzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0M3SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5TXzEy
SlNHbG9iYWxEYXRhRVJLTlNfN0FyZ0xpc3RFCiBfX1pOM0pTQzdKU0FycmF5MTVzZXRTdWJjbGFz
c0RhdGFFUHYKLV9fWk4zSlNDN0pTQXJyYXkxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNT
dGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNKU0M3SlNBcnJheTE4Z2V0T3duUHJvcGVy
dHlTbG90RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBf
X1pOM0pTQzdKU0FycmF5NnNfaW5mb0UKIF9fWk4zSlNDN0pTQXJyYXk5c2V0TGVuZ3RoRWoKIF9f
Wk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCkBAIC0z
MjMsMTIgKzMyMiwxMiBAQCBfX1pOM0pTQzhKU09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5T
XzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdQogX19aTjNKU0M4SlNPYmpl
Y3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5T
XzdKU1ZhbHVlRWpiUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QxN3B1
dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUVqCiBfX1pOM0pTQzhK
U09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWpS
TlNfMTJQcm9wZXJ0eVNsb3RFCi1fX1pOM0pTQzhKU09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90
RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDE5
Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJh
eUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURl
c2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlE
ZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3QyMmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RFUk5T
XzEyUHJvcGVydHlTbG90RVBOU18xNldyaXRlQmFycmllckJhc2VJTlNfN1Vua25vd25FRUUKIF9f
Wk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERh
dGFFbW0KIF9fWk4zSlNDOEpTT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQorX19a
TjNKU0M4SlNPYmplY3QyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVF
alJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBf
X1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNK
U0M4SlNPYmplY3QzcHV0RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXggMGNm
OTdmMjU5Nzc5ODU2MmYzNDRjODY2OWRhMWQ3YmNhNGI5YWJhZC4uNGU5MDY4MGM4MmFkZmM3ZjJi
ZGRkNmU3NTg1MTkzMjExMjQ1M2M0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTYwLDE0ICs2MCwxNCBAQCBV
U3RyaW5nIERlYnVnZ2VyQWN0aXZhdGlvbjo6Y2xhc3NOYW1lKCkgY29uc3QKICAgICByZXR1cm4g
bV9hY3RpdmF0aW9uLT5jbGFzc05hbWUoKTsKIH0KIAotYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJv
b2wgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24q
PihjZWxsKS0+bV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4o
Y2VsbCktPm1fYWN0aXZhdGlvbi0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXggN2E1NWE3YTM5NTg0YWU3ZDliYjVh
ZTk0ZGNhMDBkNTlkNTk0NDk5NS4uNGRlZjBlYjdjMGU5NWU1Njk1M2FiNDk3MDA3NjkzNDhhODU2
NzUyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
QWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uaApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAg
ICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IGM0OTRkYTEzMmMyYTMw
NTk0MzJmMjIyMjE0Yzk1Y2YwNGU5YzRhYjUuLjM1NWRkMjAzNzQ1NzJkM2EwMDE1YjdmYmZjNTE3
OTFhNjQwZDU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgQXJndW1lbnRzOjpmaWxsQXJnTGlzdChFeGVj
U3RhdGUqIGV4ZWMsIE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzKQogICAgIH0KIH0KIAotYm9v
bCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IGksIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaSwgc2xvdCk7
CiB9CkBAIC0xODgsMzUgKzE4OCw0MSBAQCB2b2lkIEFyZ3VtZW50czo6Y3JlYXRlU3RyaWN0TW9k
ZUNhbGxlZUlmTmVjZXNzYXJ5KEV4ZWNTdGF0ZSogZXhlYykKICAgICBkZWZpbmVPd25Qcm9wZXJ0
eShleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVlLCBkZXNjcmlwdG9yLCBmYWxzZSk7
CiB9CiAKLWJvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jv
b2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Cisg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworfQorCitib29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKK3sKKyAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxBcmd1bWVudHMqPihjZWxsKTsKICAgICBib29sIGlzQXJyYXlJbmRleDsKICAgICB1bnNpZ25l
ZCBpID0gcHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChpc0FycmF5SW5kZXgpOwotICAgIGlmIChp
c0FycmF5SW5kZXggJiYgaSA8IGQtPm51bUFyZ3VtZW50cyAmJiAoIWQtPmRlbGV0ZWRBcmd1bWVu
dHMgfHwgIWQtPmRlbGV0ZWRBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgIGlmIChpIDwgZC0+bnVt
UGFyYW1ldGVycykgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZShkLT5yZWdpc3RlcnNbZC0+
Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGldLmdldCgpKTsKKyAgICBpZiAoaXNBcnJheUluZGV4ICYm
IGkgPCB0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHMgJiYgKCF0aGlzT2JqZWN0LT5kLT5kZWxl
dGVkQXJndW1lbnRzIHx8ICF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzW2ldKSkgewor
ICAgICAgICBpZiAoaSA8IHRoaXNPYmplY3QtPmQtPm51bVBhcmFtZXRlcnMpIHsKKyAgICAgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+ZC0+cmVnaXN0ZXJzW3RoaXNPYmplY3QtPmQt
PmZpcnN0UGFyYW1ldGVySW5kZXggKyBpXS5nZXQoKSk7CiAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgc2xvdC5zZXRWYWx1ZShkLT5leHRyYUFyZ3VtZW50c1tpIC0gZC0+bnVtUGFyYW1ldGVy
c10uZ2V0KCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5kLT5leHRy
YUFyZ3VtZW50c1tpIC0gdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVyc10uZ2V0KCkpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5sZW5ndGggJiYgTElLRUxZKCFkLT5vdmVycm9kZUxlbmd0aCkpIHsK
LSAgICAgICAgc2xvdC5zZXRWYWx1ZShqc051bWJlcihkLT5udW1Bcmd1bWVudHMpKTsKKyAgICBp
ZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGggJiYgTElLRUxZ
KCF0aGlzT2JqZWN0LT5kLT5vdmVycm9kZUxlbmd0aCkpIHsKKyAgICAgICAgc2xvdC5zZXRWYWx1
ZShqc051bWJlcih0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHMpKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkuY2FsbGVlICYmIExJS0VMWSghZC0+b3ZlcnJvZGVDYWxsZWUpKSB7Ci0gICAgICAgIGlm
ICghZC0+aXNTdHJpY3RNb2RlKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKGQtPmNhbGxl
ZS5nZXQoKSk7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
Y2FsbGVlICYmIExJS0VMWSghdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVDYWxsZWUpKSB7CisgICAg
ICAgIGlmICghdGhpc09iamVjdC0+ZC0+aXNTdHJpY3RNb2RlKSB7CisgICAgICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QtPmQtPmNhbGxlZS5nZXQoKSk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBjcmVhdGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNl
c3NhcnkoZXhlYyk7CisgICAgICAgIHRoaXNPYmplY3QtPmNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJ
Zk5lY2Vzc2FyeShleGVjKTsKICAgICB9CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5jYWxsZXIgJiYgZC0+aXNTdHJpY3RNb2RlKQotICAgICAgICBjcmVh
dGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhlYyk7CisgICAgaWYgKHByb3BlcnR5TmFt
ZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyICYmIHRoaXNPYmplY3QtPmQtPmlzU3Ry
aWN0TW9kZSkKKyAgICAgICAgdGhpc09iamVjdC0+Y3JlYXRlU3RyaWN0TW9kZUNhbGxlcklmTmVj
ZXNzYXJ5KGV4ZWMpOwogCi0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBi
b29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDZi
MWZhMDg4YmI1NzdiMjk3NTQzM2UyNTE1NjFhOThhN2Y2NzQ5ZDYuLmI1OGY5NTdhNmUyZGUzNGRk
MDI4YTFkZDBlYTA5MjAxMWE0NDY3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyZ3VtZW50cy5oCkBAIC0xMjQsOSArMTI0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBw
cml2YXRlOgogICAgICAgICB2b2lkIGdldEFyZ3VtZW50c0RhdGEoQ2FsbEZyYW1lKiwgSlNGdW5j
dGlvbiomLCBwdHJkaWZmX3QmIGZpcnN0UGFyYW1ldGVySW5kZXgsIFJlZ2lzdGVyKiYgYXJndiwg
aW50JiBhcmdjKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51
bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
ZjU1NGU0MWE0ZmNhZmY5ZTkwMjkzNjc5NjA5NWJiZmExZWE0ZGMxNy4uMThjOTY5ZGMzNzY2ZGY0
NGEwOTcwMGU2YmE2NDZmMmFiMTE2NzA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzLDkgKzYzLDE0IEBAIHZvaWQg
QXJyYXlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBBcnJheVBy
b3RvdHlwZSogYXJyYXlQcm90CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigxKSwg
UmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogfQogCi1ib29sIEFycmF5Q29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBBcnJheUNvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7Ci0gICAgcmV0dXJu
IGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6
OmFycmF5Q29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7Cit9CisKK2Jvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25T
bG90PEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlDb25zdHJ1Y3RvclRh
YmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxBcnJheUNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKaW5kZXggMGVhM2U0MmJjZDIxOTEzYjY4
MzhkMjZlYWIwMTUzMWM5NTM4N2FhYS4uYWZmNzFiZThiNGU4MWNkZTRlOWEyMjMyMWY0MjcyNmQ3
OTc5MWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaApAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIEFycmF5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCBjZjE2MTYwM2Ez
NGYxNTkzMzZiYzM5NWU3ZGQ4MjQ5YTFmNTdlY2VkLi44OWVjYWE5OTRmMTVjMDY4N2Q5OGRiNmZj
NzVjNjIwNDU0MjYwMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBBcnJheVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBBU1NF
UlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1ib29sIEFycmF5UHJvdG90eXBlOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCA5Yzg2MGM2YzQzZTlmYTkz
OGE4ZmExZTdmY2I1NjI5ZDJiOTJmMzgyLi5iMjNjNzY2MzY1MmExNGVlZjI5NjdjYjdhODFiMTg0
Nzk3ZWFiYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBy
ZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCBlNzQ4ZGUyYjE5YjU4N2EzZGJmZDdjMjhjMjZm
NzZmNGFmYTQxYzg1Li43NjA5ZDRlNzU4YzAxYTY5N2VjZmU4NzMxNjc3NjFhNTNiOTAxNDNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEJvb2xlYW5Qcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiB9CiAKLWJvb2wgQm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QgJnNsb3QpCitib29sIEJvb2xlYW5Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKaW5kZXggYjBiNGY1NTBlZjI5Mzg2NmEw
NTdlMTI1NGMxYWUwNWZmNGUwYTQ2Zi4uNzA3YTdlZjA5MGVjNzY5ZmMzYTIxMDYzODgyNTUzMmMy
ZTAzYzU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
blByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuaApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIEJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBmNDQwYTY0YmZhNWY2
NTMwY2RjZWY3NDJkOTNkZGNjZWEyYWExMzIxLi4xZGRmNmYwMDY3NmYyN2MwYjI1MWVmNzJkNTUw
YjJmNWYxZDVmOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBEYXRlQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZVByb3RvdHlwZSogZGF0ZVByb3Rv
dHkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDcpLCBSZWFkT25seSB8IERvbnRF
bnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wgRGF0ZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgRGF0ZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRleCBmODM3ZDY2YWFlZDFjM2Ji
YmVlMzliN2QyMDY1Y2RjZWU0ODNiMjIxLi4zZjNiNjYxMmNhOWM3ZDVkM2Y5ZWRiMjM0MzQ3N2Q5
YmRjZGMzMTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuaApAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IGE2OGY0ODM4
YmIwNjI2NWM5N2JjMDQ2NDJkZjFjOTQ2NzdjOGE4MDcuLmM2OGIyZDIzM2E3M2JjZTQ0YTVkMjQz
MWE0ZTUxNTk5YWRkM2RjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuY3BwCkBAIC00NDMsNyArNDQzLDcgQEAgdm9pZCBEYXRlUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKICAgICAv
LyBUaGUgY29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgRGF0ZUNvbnN0cnVj
dG9yIGhhcyBiZWVuIGJ1aWx0LgogfQogCi1ib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBEYXRlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCmluZGV4IDcyMDUyNjJkMjliNDg3OGJiYWUwNzQ0
MmEyNWU0NGM0ZmRlNzBhNjguLmRkZDY1NGI3YTI4ZDA3ZGM5OWRjMzNmNWJlNjBmYjllNDg5YWNm
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgK
QEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBwcm90b3R5cGUt
PmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICByZXR1cm4g
cHJvdG90eXBlOwogICAgICAgICB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5j
cHAKaW5kZXggNDM5ZDlhODMxNDdmOGYwMTRkNzQ2Y2ZmN2Q4MzJlZWZmYTRjNTJkMy4uYThhOTU4
MThhODQxOWFhNGUyZjU2MjlhM2VlZTFjZjI0MGE0NDE3MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2
b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KikKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkubmFtZSwganNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJFcnJvciIpLCBEb250
RW51bSk7CiB9CiAKLWJvb2wgRXJyb3JQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
ICZzbG90KQorYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5oCmluZGV4IDY1ZjNmZmY1ZjZlMGZkMzUxNjVkNTNlOWJiM2EyNTE5
NWNjMTFmNzkuLmY2MmRkNTUxMzlmYTQxOTExZmJjYzYyOTI5Zjc3ZDQzMzA4N2Y1ZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaApAQCAtNTIs
NyArNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0
YW5jZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggOTBmOTExMDk0NGUxNDE0NTIxM2QzZDBlOWU1ZGMy
MTM2ZWRjMzZhOC4uMWEzMmFmZGQ2ZTNjMjkwNWRiMWQzMjQ4Y2QzYzhjYzljOWE0ZTA4NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC0x
NDEsNyArMTQxLDcgQEAgaW5saW5lIGJvb2wgSlNBY3RpdmF0aW9uOjpzeW1ib2xUYWJsZVB1dFdp
dGhBdHRyaWJ1dGVzKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlv
bi5oCmluZGV4IDdiZWQyOWZkMzBjMGI1NmZjMjI3Y2UzOGY2MjNiMDliOTFjMTMzY2IuLjIzYjk3
ZDZjMmRiMjQ5ZGExYTM3YTY1ZDJkMWZmOWJiNjQ3NWQwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02MSw3ICs2MSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2YXRpb25PYmplY3QoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDIxNzNmZjE2ZDg0YTNl
NWU5NWMwYjU0ZWE2NGY4NGFkYTE1MWM0MTQuLmY5ZjZjNTIwMGRmZTM0NTA4NTdlY2Q1ZmU5NWUz
NTVlZGRhMzViZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3Bw
CkBAIC0yNDUsNyArMjQ1LDcgQEAgSlNBcnJheTo6fkpTQXJyYXkoKQogICAgIGZhc3RGcmVlKG1f
c3RvcmFnZS0+bV9hbGxvY0Jhc2UpOwogfQogCi1ib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jv
b2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIGksIHNsb3QpOwogfQpAQCAtMjU3LDcgKzI1Nyw3IEBAIGJvb2wg
SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCBpLCBQcm9wCiAgICAgCiAgICAgaWYgKGkgPj0gc3RvcmFnZS0+bV9sZW5ndGgp
IHsKICAgICAgICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpCi0gICAgICAgICAgICByZXR1cm4g
dGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhl
YywgaSksIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTI4MCw3ICsyODAsNyBAQCBib29sIEpT
QXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgaSwgUHJvcAogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHNsb3QpOwogfQog
Ci1ib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0Fy
cmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJu
IGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IGRiZmMxNzExNDI1OGEx
Mzc4MjE4NDNjYjk1NzhiM2E5Y2RkMTZkMzguLjlhZDk1NDBiMTJhMTJhZjU1ZjM1NDgxMjg4MWVm
NjRkZTA1YTM0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAg
LTk0LDkgKzk0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gYXJyYXk7
CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOyAvLyBG
SVhNRTogTWFrZSBwcm90ZWN0ZWQgYW5kIGFkZCBzZXRJdGVtLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKaW5kZXggNzFlZDM4MGEyMzY3
OTdmZDZlNmVkODRjMTA2ZWViYTNmYWU4ZjU3Yi4uMDI0ODdkODM5YTMzOWFmZmE3MzlhMmU1Mjc2
MmIwYWYxOTM1NTA3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JvdW5kRnVuY3Rpb24uY3BwCkBAIC05Niw3ICs5Niw3IEBAIGJvb2wgSlNCb3VuZEZ1bmN0aW9u
OjpoYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUpCiAg
ICAgcmV0dXJuIG1fdGFyZ2V0RnVuY3Rpb24tPmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90
byk7CiB9CiAKLWJvb2wgSlNCb3VuZEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK2Jvb2wgSlNCb3VuZEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JvdW5kRnVuY3Rpb24uaAppbmRleCBjYzUxNjkzNzYxZmFjODk0ZDA5MDNjMGIxY2UyOTVm
ZDFmNTkwYmEzLi5iNDVlMmQ5YmFiNjVhNDA4MzJhNmYyZjA4MTkyY2NiMmQzYmZlYzNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaApAQCAt
MzksNyArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNCb3VuZEZ1bmN0aW9uKiBjcmVh
dGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24s
IEpTVmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJncywgaW50LCBjb25zdCBJZGVudGlm
aWVyJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4IDhhYjQ3MjZlM2VhMWY1ZjkxMDBmMGI0MDYy
MWYzMTQ3N2JkNjM5NmEuLjUxNTcxMDNlZGZhNWI3ZjgwNjE0MWUyNGUwMjA2NjUzMGVlNWI4Mzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAg
LTU0LDcgKzU0LDcgQEAgU3RydWN0dXJlKiBKU0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgY2xhc3NJbmZvKTsKIH0KIAotYm9vbCBKU0J5
dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQnl0ZUFycmF5
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAt
ODIsNyArODIsNyBAQCBib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRv
cik7CiB9CiAKLWJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IDQwZjBhYTFh
N2I3YTRhZTZmNTMwMjY1NDJkMTc5NDVhNjU1MWRmMTAuLjRkZjM2NmIxODVjZDcyMmY5NjRmYWQ4
YWQyZDM1ZDViNDg3MWE2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuaApAQCAtODgsOSArODgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfaW5m
byk7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNs
b3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDg5NzNk
YzMwMDQ0ZmJmZjc4ZjBmMDYzNjIzOGI5ZjhiZTM5ZTk3OTEuLjYzYTY5ZGU2ZjllMTQyMzQ5MDc4
OGZmMDM0MmNkNDkzNTRkNGYxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmNwcApAQCAtNjksNyArNjksNyBAQCBDb25zdHJ1Y3RUeXBlIEpTQ2VsbDo6Z2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJikKICAgICByZXR1cm4gQ29uc3RydWN0VHlw
ZU5vbmU7CiB9CiAKLWJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiti
b29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwog
fQpAQCAtODYsNyArODYsNyBAQCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJgogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0NlbGw6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVu
dGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5
U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggMjNmMGZkNWMwZmFmNzU0OWZlNzYwOGUwZTRlYjBmNTNm
MzIwNmJlNy4uZWEyNzJkZmE5MzEyOTdjMDFmNmNkYmQ4YWU1MmNiM2ZiY2Q2M2Y2MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTEzNSw5ICsxMzUsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIEJhc2UgaW1wbGVtZW50YXRp
b247IGZvciBub24tb2JqZWN0IGNsYXNzZXMgaW1wbGVtZW50cyBnZXRQcm9wZXJ0eVNsb3QuCi0g
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIAogICAgICAgICBX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNDkzMzMwNDZjZDc5Yjg5ODVkZDc1ZmNh
ZmU1YjE2Y2E3ZTQzY2EyNS4uNDMwMjY5YTM2YjRlNTcyZjJjZmQ5N2FiN2M1Yjk2YzFhYTNjMzRl
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAg
LTE5Nyw3ICsxOTcsNyBAQCBKU1ZhbHVlIEpTRnVuY3Rpb246Omxlbmd0aEdldHRlcihFeGVjU3Rh
dGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJgogICAgIHJldHVybiBqc051
bWJlcih0aGlzT2JqLT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1ldGVyQ291bnQoKSk7CiB9CiAKLWJv
b2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTRnVu
Y3Rpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CkBAIC0yNTgsNyArMjU4LDcgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm8KICAgICAKICAgICBp
ZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUpIHsKICAg
ICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIGdldE93blByb3BlcnR5U2xvdChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICB9
CiAgICAgCkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnQKICAgICBp
ZiAoIWlzSG9zdEZ1bmN0aW9uKCkgJiYgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGll
cykpIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHByb3RvdHlwZSBoYXMgYmVlbiByZWlmaWVkLgog
ICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgZ2V0T3duUHJvcGVydHlTbG90KGV4
ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIHNsb3QpOworICAgICAgICBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5
cGUsIHNsb3QpOwogCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5hcmd1bWVudHMpOwogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuY2FsbGVyKTsKQEAgLTMxNiw3ICszMTYsNyBAQCB2b2lkIEpTRnVuY3Rpb246OnB1
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYQogICAgICAgICAvLyBNYWtlIHN1cmUgcHJvdG90eXBlIGhhcyBiZWVuIHJlaWZpZWQsIHN1
Y2ggdGhhdCBpdCBjYW4gb25seSBiZSBvdmVyd3JpdHRlbgogICAgICAgICAvLyBmb2xsb3dpbmcg
dGhlIHJ1bGVzIHNldCBvdXQgaW4gRUNNQS0yNjIgOC4xMi45LgogICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdDsKLSAgICAgICAgdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9CiAgICAgaWYgKHRoaXNP
YmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgewogICAgICAgICBpZiAocHJv
cGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA5YjlkYTljZTlmYWI3NTQ3
MWRhOGNmOWFjMTdmZmJjMGQ3NzNiYzM2Li5lMzViMTdlNDc1MTY4M2NjNjhmOTY5YjlkMjg5ODI3
ZmMyNWJhZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5o
CkBAIC0xMzEsNyArMTMxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oRXhlY1N0YXRlKiwgTmF0aXZlRXhlY3V0YWJsZSosIGludCBsZW5ndGgsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUpOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0
ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2Rl
ID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMGZlNDM2ZGI3MmNkMDY0MGIzODU4
MjA1ZmE0MWI5NDAzZThmNDAzMC4uOTJkZmRjMGMyMGRkZmFhYzliOTQwNDNmNjY3MjI5NTdhMTZh
MWNmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcApAQCAtNDIzLDcgKzQyMyw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmFkZFN0YXRp
Y0dsb2JhbHMoR2xvYmFsUHJvcGVydHlJbmZvKiBnbG9iYWxzLCBpbnQgY291bnQpCiAgICAgfQog
fQogCi1ib29sIEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
K2Jvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAppbmRleCAxMTVkNWNiNmJkOTU0ODM3M2FhY2U4MDEzOGM4ZWFmMjYzYTNhNjc4
Li5iMGZlNDc0Njk3NGE3YmQ3N2Q3OTk5OTExMTAwNGIwNWY3YjQxMjMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE4MCw3ICsxODAs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVu
KEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKQEAgLTM0Miw3ICszNDIsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBpbmxpbmUgYm9vbCBKU0dsb2JhbE9iamVjdDo6aGFzT3duUHJvcGVydHlGb3JX
cml0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKICAg
ICB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBpZiAoSlNWYXJpYWJsZU9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAg
ICAgIGlmIChKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBi
b29sIHNsb3RJc1dyaXRlYWJsZTsKICAgICAgICAgcmV0dXJuIHN5bWJvbFRhYmxlR2V0KHByb3Bl
cnR5TmFtZSwgc2xvdCwgc2xvdElzV3JpdGVhYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKaW5kZXggZTE0YTY4YmQ5NGZhMTRlZTBjZDY0
ZDBmMzQyN2FhMmNjNDZkYjlkOS4uMDcyZDgyNTZmZDY3ODYzMjkzN2ZkYzNkNjE2ZmYwYjI0M2Zj
ODVkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgVVN0cmluZyBKU05vdEFuT2JqZWN0Ojp0b1N0cmluZyhF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuICIiOwogfQogCi1ib29sIEpTTm90QW5P
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNOb3RBbk9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3du
UHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwogfQpAQCAtNjksNyAr
NjksNyBAQCBib29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
Ym9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNOb3RBbk9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBiOGYwZmFhODU2
MjI2MjNjMjA3OWM5YzljNzEzN2Q3ZDdiMjg1MWY3Li4wNjc4ODcxNDk0MTExYTk5YjEzMjQzYmYy
NzUwZjViNWEzOGQwN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5oCkBAIC03MCw5ICs3MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2
aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgLy8g
SlNPYmplY3QgbWV0aG9kcwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCBkM2ZjMzU5OTMxZTAxNjkx
MDg3NWZjODg5Y2JjZmMyODg1YzNjYzNlLi41NWFjZTkwZWQzNzE5NjM0OGU4MWU0MDczNDNiOGJk
YTMxZDg2NDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcApAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5k
TmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgVVN0cmluZ0J1CiAgICAgICAg
ICAgICB2YWx1ZSA9IGFzQXJyYXkobV9vYmplY3QuZ2V0KCkpLT5nZXRJbmRleChpbmRleCk7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QobV9vYmplY3QuZ2V0
KCkpOwotICAgICAgICAgICAgaWYgKCFtX29iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMs
IGluZGV4LCBzbG90KSkKKyAgICAgICAgICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoZXhlYywgaW5kZXgsIHNsb3QpKQogICAgICAgICAgICAgICAgIHNsb3Quc2V0
VW5kZWZpbmVkKCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTQxLDcgKzU0MSw3IEBAIGJvb2wgU3RyaW5n
aWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmll
ciwgVVN0cmluZ0J1CiAgICAgICAgIC8vIEdldCB0aGUgdmFsdWUuCiAgICAgICAgIFByb3BlcnR5
U2xvdCBzbG90KG1fb2JqZWN0LmdldCgpKTsKICAgICAgICAgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKVtpbmRleF07Ci0gICAg
ICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQorICAgICAgICBpZiAoIW1fb2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKTsK
ICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQpAQCAtNTk4LDcgKzU5OCw3IEBAIGNv
bnN0IENsYXNzSW5mbyBKU09OT2JqZWN0OjpzX2luZm8gPSB7ICJKU09OIiwgJkpTTm9uRmluYWxP
YmplY3Q6OnNfaW5mbywgMCwgRXhlCiAKIC8vIEVDTUEgMTUuOAogCi1ib29sIEpTT05PYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU09OT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtNjkzLDcgKzY5
Myw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVy
ZWQpCiAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBhcnJheS0+Z2V0SW5kZXgoaW5kZXgp
OwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFycmF5LT5nZXRPd25Qcm9wZXJ0eVNs
b3QobV9leGVjLCBpbmRleCwgc2xvdCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcnJheS0+
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChtX2V4ZWMsIGluZGV4LCBzbG90KSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIGluVmFsdWUgPSBzbG90LmdldFZhbHVlKG1fZXhlYywgaW5kZXgpOwog
ICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBpblZhbHVl
ID0ganNVbmRlZmluZWQoKTsKQEAgLTc1NSw3ICs3NTUsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1
ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IHNs
b3Q7Ci0gICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KG1fZXhl
YywgcHJvcGVydGllc1tpbmRleF0sIHNsb3QpKQorICAgICAgICAgICAgICAgIGlmIChvYmplY3Qt
PmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVjLCBwcm9wZXJ0aWVzW2luZGV4XSwgc2xv
dCkpCiAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBzbG90LmdldFZhbHVlKG1fZXhlYywg
cHJvcGVydGllc1tpbmRleF0pOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgaW5WYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmgKaW5kZXggMjhkMjg2MmY4ZDRhNWMwOGU4MzZkMzU4YjE2N2NjZWYz
NjZjZTI1Yi4uNDg3ZmNmMGZlMmQ3Mjg0ZTRjMTk1NzExYzE3NWM4MmM1Y2FjZGFhNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtNTYsNyArNTYsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpTT05PYmplY3QoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRl
eCBhYWNlYzZkNDM3NjcwZWEzZmEwMTAwM2Q3OGVhMDczM2U0OWUwZTRkLi41YzQ0NThjNzdlZjM4
ODNlZDgxN2Y1MTNjNTg2ZmIwNGJiNWYxNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuY3BwCkBAIC05MywxNCArOTMsMTQgQEAgVVN0cmluZyBKU09iamVjdDo6
Y2xhc3NOYW1lKCkgY29uc3QKICAgICByZXR1cm4gaW5mby0+Y2xhc3NOYW1lOwogfQogCi1ib29s
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4oY2VsbCktPmdldE93blByb3BlcnR5U2xvdChleGVjLCBJZGVudGlmaWVyOjpm
cm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxK
U09iamVjdCo+KGNlbGwpLT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIElkZW50aWZp
ZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7CiB9CiAKIHN0YXRpYyB2b2lkIHRo
cm93U2V0dGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjc3LDcgKzI3Nyw3IEBAIGJvb2wg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwCiBib29sIEpTT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKICAgICBQ
cm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICByZXR1cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMp
LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1
cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggM2FkNzBjNTBhYWQ2MWFkMzdmY2My
ZmE5YjkwNGE3MGIzN2ZmMzNiMi4uYTgyNDI1NjkyZmRkYTQ3YmEwMzJjOTljZGNlMTIyYjcwNzhi
YWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMDEs
OSArMTAxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgZ2V0UHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIGJvb2wgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKLSAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNj
cmlwdG9yJik7CiAKQEAgLTUyMSw3ICs1MjEsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmpl
Y3Q6OmlubGluZUdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK0FMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTUz
OCw3ICs1MzgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNDZWxsOjpmYXN0R2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogewogICAgIGlmICghc3RydWN0
dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KCkpCiAgICAgICAg
IHJldHVybiBhc09iamVjdCh0aGlzKS0+aW5saW5lR2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdChleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIC8vIEZhc3QgY2FsbCB0byBnZXQgYSBw
cm9wZXJ0eSB3aGVyZSB3ZSBtYXkgbm90IHlldCBoYXZlIGNvbnZlcnRlZCB0aGUgc3RyaW5nIHRv
IGFuCkBAIC01NzYsNyArNTc2LDcgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRQ
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU4KIHsKICAgICBK
U09iamVjdCogb2JqZWN0ID0gdGhpczsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAo
b2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAg
ICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIEpTVmFsdWUg
cHJvdG90eXBlID0gb2JqZWN0LT5wcm90b3R5cGUoKTsKICAgICAgICAgaWYgKCFwcm90b3R5cGUu
aXNPYmplY3QoKSkKQEAgLTc5Nyw3ICs3OTcsNyBAQCBpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjpn
ZXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdAog
ICAgIH0KICAgICBKU0NlbGwqIGNlbGwgPSBjb25zdF9jYXN0PEpTQ2VsbCo+KGFzQ2VsbCgpKTsK
ICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY2VsbC0+Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIGlmIChjZWxsLT5nZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICBy
ZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBKU1ZhbHVl
IHByb3RvdHlwZSA9IGFzT2JqZWN0KGNlbGwpLT5wcm90b3R5cGUoKTsKICAgICAgICAgaWYgKCFw
cm90b3R5cGUuaXNPYmplY3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKaW5kZXggOGQwZmRhOTAzNzMyMmRmMTczMDY1
ZGM2MWNjOTE0ZTUzMDA3YmYwMi4uMjJlNmFmY2RkZDY4NWJhMTIzNWQ4YmRjNjFlOWRhMWQyMGRl
ZGM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBKU1N0YXRpY1Njb3BlT2Jq
ZWN0Ojppc0R5bmFtaWNTY29wZShib29sJikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LWJvb2wgSlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTU3RhdGljU2NvcGVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXggZGMyODc3OTVkZDlmMTYwNGY2YjUxZjI0
NmI2Y2E5MmVmOThhMTgwNS4uYTkwZGRkNWM2OTFiZTk4MGM5MTg2MjI2Yjk2M2QwYTdhNzhiYzhm
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2Nv
cGVPYmplY3QuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDewogICAgICAgICBzdGF0
aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAgICAgIGJv
b2wgaXNEeW5hbWljU2NvcGUoYm9vbCYgcmVxdWlyZXNEeW5hbWljQ2hlY2tzKSBjb25zdDsKICAg
ICAgICAgdmlydHVhbCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0Owot
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRleCBjNzNmNGEy
ZWUyYzg1NzVmYjBkMDQ4OWI4ZDYzOGUwMGFiMTNiNWIxLi4yNzg3NjM3YWEyZDFlOWU2NTQyM2Zh
OWJmMzM5OWZhNDA3MjUxMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgSlNPYmplY3QqIEpTU3RyaW5nOjp0b1RoaXNP
YmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiBTdHJpbmdPYmplY3Q6OmNy
ZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGNvbnN0X2Nhc3Q8SlNTdHJp
bmcqPih0aGlzKSk7CiB9CiAKLWJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQorYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KQEAgLTMzMyw3ICszMzMsNyBAQCBib29sIEpTU3RyaW5nOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZQogICAgIEpTT2JqZWN0KiBvYmplY3Q7CiAgICAgZm9yIChKU1ZhbHVlIHByb3RvdHlwZSA9
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5nUHJvdG90eXBlKCk7ICFwcm90b3R5
cGUuaXNOdWxsKCk7IHByb3RvdHlwZSA9IG9iamVjdC0+cHJvdG90eXBlKCkpIHsKICAgICAgICAg
b2JqZWN0ID0gYXNPYmplY3QocHJvdG90eXBlKTsKLSAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3du
UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIGlmIChvYmpl
Y3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBzbG90LnNldFVuZGVmaW5lZCgp
OwpAQCAtMzY3LDcgKzM2Nyw3IEBAIGJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDcyMGQ2MmJkNmNmMzI3MzEx
NWY2MmYyZTM4MTQwMTk0ZGJjYjg4ZWYuLmQ4MjE1ZTJlZTU0NzI3YzRkMGI4ODgxODQxZDcyMGRh
MzJmYjlhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAt
NTA3LDkgKzUwNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0
KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgLy8gQWN0dWFsbHkg
Z2V0UHJvcGVydHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlTbG90IChzZWUgSlNDZWxsKS4KLSAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmgKaW5kZXggNzgyZGMwZmJjNzBjODNhOTJhZTEwZjEwNDlhZmZkYzAzMjY5ODgxYy4uYTZkNDhi
ZDhkYzBlOWY0MDQ1ODMwMDkwODBkMDhmZTVjMzA1MzgyNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTG9va3VwLmgKQEAgLTIxMyw3ICsyMTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0
eU5hbWUpOwogCiAgICAgICAgIGlmICghZW50cnkpIC8vIG5vdCBmb3VuZCwgZm9yd2FyZCB0byBw
YXJlbnQKLSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqLT5QYXJlbnRJbXA6OmdldE93blByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIFBh
cmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmosIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiAKICAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbikKICAg
ICAgICAgICAgIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KGV4ZWMsIGVudHJ5LCB0aGlzT2JqLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnRJbXA+CiAgICAgaW5saW5lIGJvb2wgZ2V0U3RhdGlj
RnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSGFzaFRhYmxlKiB0YWJsZSwgSlNP
YmplY3QqIHRoaXNPYmosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PFBhcmVudEltcCo+KHRo
aXNPYmopLT5QYXJlbnRJbXA6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQorICAgICAgICBpZiAoUGFyZW50SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
aiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSB0YWJsZS0+ZW50cnkoZXhlYywgcHJv
cGVydHlOYW1lKTsKQEAgLTI5MSw3ICsyOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Y29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUp
OwogCiAgICAgICAgIGlmICghZW50cnkpIC8vIG5vdCBmb3VuZCwgZm9yd2FyZCB0byBwYXJlbnQK
LSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqLT5QYXJlbnRJbXA6OmdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIFBhcmVudElt
cDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmosIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiAKICAgICAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKaW5kZXggNzlm
ZWVlN2UxOWVkZTJmZjEwM2MwNjAzZmQ0YTk3ZWZhMDBlYjZhMy4uNjI0ZjRkZGJiZDNlOTA3MDc2
OGVjMWZlOTNkOTEzMDc5YzVlY2Q4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWF0aE9iamVjdC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIE1hdGhPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIElk
ZW50aWZpZXIoZXhlYywgIlNRUlQyIiksIGpzTnVtYmVyKHNxcnQoMi4wKSksIERvbnREZWxldGUg
fCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBNYXRoT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgTWF0aE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hdGhPYmplY3QuaAppbmRleCAyZTJkNzJkZWJmNDgwZDdjZmUyNzQwNGQ3NjM5YjQ5
Y2U1ZDQ4NDBiLi4yNDI0YTcxZTVlZTllMWI3NDU0MDk3MWY4YTdkZjgyNWJiMTc1MGYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zOCw3ICszOCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihl
eGVjLCBnbG9iYWxPYmplY3QpOwogICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAg
fQotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDNjNjVl
OWYwOGZlM2RjNDEyYWNiMDNjYTU2YjRjNTBjNzAxNmI0ODcuLjU0YWZiZDhjNzZkYzUxMDhiMmFi
M2VkNGU0YzM0MjMwZjFmMmU1N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBOdW1i
ZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBOdW1iZXJQcm90
b3R5cGUqIG51bWJlclAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFk
T25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wgTnVtYmVyQ29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBOdW1iZXJDb25zdHJ1Y3Rv
cjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmlu
ZGV4IDcwNTZkZGY3NWJiOTc1ZTlhMDMwMmVkZjMxMTI3YmZlNmEzZmMxNDMuLjYxMjcxYTk1NGY5
MDA3YTc2NTJkNzhjMWJkYzdmNjU1Zjk5ZWNjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICAgICAgfQog
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICBKU1ZhbHVlIGdl
dFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IGY2ZjAx
NmU0ZTNlNTdmMjIwZTc4ZjI1ZWNhZTgxMmY0N2QyZGEwYzkuLjRmYjI5YjU1ZDZkNmUwZjY1ZDBl
MGEyYWM0OTlmZTUwNDU2MDU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lkIE51bWJlclBy
b3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCop
CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotYm9vbCBOdW1iZXJQcm90b3R5
cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBOdW1iZXJQcm90b3R5cGU6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCmluZGV4IDFh
NTY4NmFlNTkwYTVjMDQzMGEyMzVhOTUwNWIyOWUyZDNiY2NhYTkuLmJlYmI1ZTczYTIxNDc3Njgw
NTlmNGJiOGUzNzQwM2U5YzE5YjViZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlclByb3RvdHlwZS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgTnVtYmVyUHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwCmluZGV4IDkwZWRmYTUzN2M5MmNlNTE2MDc5OTZiYzVjODJhYTU3NWEwMTY0MDEuLjBiM2Ix
OTcwMGFiYTEwZDdlMmQ3MTBiMzdhZjExMzIzZjZhNzZiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTg5LDcgKzg5
LDcgQEAgdm9pZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBl
eGVjLCBPYmplY3RQcm90b3R5cGUqIG9iamVjdFAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpz
TnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wg
T2JqZWN0Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBP
YmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQog
ewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5oCmluZGV4IDIyMjE1OWY1M2E0ZjhmMWI4ZDY1ODJjYzcwY2IwZmIwZjdmZWM4
MzcuLmFhNjhjY2RhYWE4MzNiZmI3NmY1MjAwMTNiYTY1MTk1NmUxZjYwNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtMzgs
NyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3Rv
cjsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApp
bmRleCA5OWE1YmIyMjhiZjI3ZWMxYWQ0MWE5ZGI0NDRlMjNlNzVmODRmNTdhLi5lYTdjODliMTUz
ODJmNDI5ZmRiMzRjNGYzNWM0YTMyNzcyOTRiZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9p
ZCBPYmplY3RQcm90b3R5cGU6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGUKICAgICB9CiB9CiAKLWJvb2wgT2JqZWN0UHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgT2Jq
ZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkCiAgICAgcmV0dXJuIEpTTm9uRmluYWxPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29s
IE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIE9i
amVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmgKaW5kZXggZTM5MDAyMmY2N2M3NTQyMDViZTMyMWVmN2NiMDlkNDVmZDU1ZTE0OC4uNzZh
MzNjNDc5Yjk2NjViYjEzNzA0OWIzZTJjOGIzMWU5NGVkZDY4OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKQEAgLTUzLDkgKzUzLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDBkNDkxNDY0NGM5ODYzYmMyNDRjMWQ0YjMxZGNiYmFk
YTFlYzcwMC4uNWIwNzBmMDc0MGNjYjEyN2ZiMmViZDFmYjc0MjZiZGUxODFjYjYzYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cApAQCAtMjAyLDcgKzIwMiw3IEBAIEpTVmFsdWUgUmVnRXhwQ29uc3RydWN0b3I6OmdldFJpZ2h0
Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmco
ZXhlYyk7CiB9CiAgICAgCi1ib29sIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKK2Jvb2wgUmVnRXhwQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCA1ZTEzMTc2NGQ0OTI1Yjcw
Y2IzODY2NzljNzdlNmE0MDJhMzYxYzRjLi5hYWY0MjZhOWFkMjIxZmViMGIyZDdkZTRlZmMzNmMw
MTUwZThhYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXgg
ZTc1ZDYyMTkxNWQyNGE1ZTg2YjdhNzU2NGE5MjVhMjZmMDY5MDExZC4uMTJiZDAyNmVmM2Q5MTQ4
YzQxMDlhNWFmMDc1YWNkMjZmMTFhNzM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgUmVn
RXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKKyAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAgICAgewog
ICAgICAgICAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogICAgICAgICB9CkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgICAgICB9CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
CmluZGV4IDY2MGIyZTMwYTU0YjkxYzk5MGNhZGFiNGFhMmY2NDM4MzVjMTk1OGMuLjgwOGVkN2Y5
NzA1OGJjMDgyZmNkNWQzODVjMzhjNDdlNjJjZjAyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFJl
Z0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+ZC0+bGFzdEluZGV4KTsK
IH0KIAotYm9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5oCmluZGV4IGMwZjgzZDU0MmNiZGViZDlhZWRiYmQ4NzVjMDFiYmZlOGIyMDMyMzkuLmEzZjc3
YzViOTM4YjI4ZDM5MmRiMjJlOTQ2MGNjYjY3YjQ1ZDAxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02NSw3ICs2NSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBKU1ZhbHVlIHRlc3QoRXhlY1N0YXRlKik7CiAgICAgICAgIEpTVmFs
dWUgZXhlYyhFeGVjU3RhdGUqKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggM2UzYTE2OWZhOWIwNjJjZGMyZTQyOTdm
NTY5NjA5YWQyMWYzYWM0MS4uODMwNGU2MmUxOGMwZGU3ZTY5NDdjMTFlZDg4OTY5ZTRiZjBjMDhj
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFJlZ0V4cFByb3RvdHlwZTo6UmVnRXhwUHJvdG90eXBl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0CiB7CiB9CiAK
LWJvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jv
b2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3Qp
CiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuaAppbmRleCBjYzg0MDNhNzViNGJmM2I5MmRlNWE4NGFiMjNjYTgyYTE2MjQyMTNm
Li44YzkyYjIyZTQ0MTg3YmMwZWQyNGE1NzliNjEzZDc2ZTVhNzk4NGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtNDksNyArNDks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgUmVnRXhwT2JqZWN0OjpT
dHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZjM5ZGQ3YTVhYTAwNzhhYzZmZDIzZDgyZTdl
YjBiYWRiYTdkNzk4Yi4uMjhlODQ1MTIyYmRjMjRhMzkxMWExYTZlMmVhMmU0YzMwZmRkNjc5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVj
dG9yLmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFN0cmluZ0NvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZ1Byb3RvdHlwZSogc3RyaW5nUAogICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250
RGVsZXRlKTsKIH0KIAotYm9vbCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QgJnNsb3QpCitib29sIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggYTcxOTE0ODQ4MzkyOWE2OGVl
YzM4OTJiM2JjY2Y4NWM3MmVlZjMxYi4uMzk1Zjk5MzQwZjM2YWYxMDg2YWVjZGY2NmI0YjI1Zjk5
ZmU2NmQxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBz
dGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmKTsKICAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCmluZGV4IDZk
NTQ4Y2Q2ZjFhZjRlMmM2ZGRlOWFmNmY0ZmNmZTg2NzcyMmU3YTEuLjBlOWNkN2RjMzVmZTEwNzYw
OGQ2NDQ4MWY1MmI5ZDJkZmYwN2E3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApAQCAtNDEsNyArNDEsNyBAQCB2b2lkIFN0cmluZ09iamVj
dDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1N0cmluZyogc3Ry
aW5nKQogICAgIHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwgc3RyaW5nKTsKIH0KIAotYm9v
bCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBTdHJp
bmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50CiAgICAgcmV0dXJu
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KICAgICAKLWJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK2Jvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3Qu
aAppbmRleCA4NzJhMmMxMzNiNjZhNmQyMTdhYzljOWJlNTY0OWY4MmU1Y2MxMThiLi5lNmIzN2Jj
MDg5ZTNmMmMxMzBkNTgzNDQwYTJjZGQ5YTkyN2JhNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNDYsOSArNDYsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgfQogICAgICAgICBzdGF0aWMgU3RyaW5nT2JqZWN0KiBjcmVhdGUoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopOwogCi0gICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmNwcAppbmRleCA4OGZiMmU5MjFhZTdkZmEzYzAzYWM4MDZlMzMyOTdlMzRiZDJlZjFl
Li5lOGY0ZmQzYjRmM2QyYTEyM2E0NzU2YWU1Y2FjZDc4MzQ2ZTY3OWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTE0NSw3
ICsxNDUsNyBAQCB2b2lkIFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKgogICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0
aCwganNOdW1iZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIAot
Ym9vbCBTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9v
bCBTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkK
IHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5oCmluZGV4IGM4OWE4OWJhOTUyZDk2Zjg1ZmI5MWE3MGE0OTJmOGQ3ZjEwOGRhMjEu
LjQ3MTBhNWMwODM4ZTc0NTA0MzBmMTM3NDliNWIzZWExOGJkMTA0MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCkBAIC00Miw3ICs0Miw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICAg
ICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCAw
ZTczNTBmM2IwYzJjZjVkNmJiN2UyN2EyZjEwMWY5NzAwNmUyNDU1Li40N2NlMDI4YzVlZWQ0MDYw
NjRkOWYzZTM0ODcwYzk5ODFiMWVjOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMyBAQAogMjAxMS0xMC0xMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgogCisgICAgICAgIFJlbmFtZSBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk4MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW5hbWVkIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90
IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaW4gcHJlcGFyYXRpb24gZm9y
IHdoZW4gd2UgYWRkIHRoZSBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IHRvIHRoZSBNZXRob2RU
YWJsZSAKKyAgICAgICAgaW4gQ2xhc3NJbmZvLgorCisgICAgICAgIEFsc28gYWRkZWQgYSBmZXcg
c3RhdGljIGdldE93blByb3BlcnR5U2xvdCBmdW5jdGlvbnMgd2hlcmUgdGhleSBoYWQgYmVlbiBv
dmVybG9va2VkIAorICAgICAgICBiZWZvcmUgKGVzcGVjaWFsbHkgaW4gQ29kZUdlbmVyYXRvckpT
LnBtKS4KKworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAoVXNlck9iamVj
dEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogVXNlck9iamVjdElt
cC5oOgorCisyMDExLTEwLTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5j
b20+CisKICAgICAgICAgUmVtb3ZlIGdldENhbGxEYXRhVmlydHVhbCBtZXRob2RzCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE4NgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggNmY5OWE0Yzg0NjZiNGE1NTU2ZDlh
NzA1NDYwNmRkZTdiYTNjZTk1YS4uMTkxYzI1MzlkYWQ2ZGRjY2U3NzE4M2QwOTZlOGZlOTQ3NTZk
YTdiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMTIzLDcg
KzEyMyw3IEBAIEpTVmFsdWUgVXNlck9iamVjdEltcDo6dXNlck9iamVjdEdldHRlcihFeGVjU3Rh
dGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVuCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jv
b2wgVXNlck9iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUgKmV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IGFjZTE5
MzM3NjY3NzUzMGVlMmY2MTM5YzEwZDZhZjdlM2I1MjVkYzQuLjNkNThlZjM1YjkwYmUxMGM0NGM2
OGEyOTNiMjM1ODk4YmM2MGI0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
aApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCiAgICAgdmlydHVhbCBKU1ZhbHVl
IGNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYyk7Ci0gICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUgKmV4ZWMs
IGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZjBhNDZmYTE2ZjgwZjEzMmQ5NWYyNjExODViYTA2MzJiZWZlZTMyYy4uMDcx
Y2E2YTlmY2NkYmQ4ZTZhOTljNzIxOTcxMzk5OWM1OTI0OTk0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEwMiBAQAorMjAxMS0xMC0xMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIFJlbmFtZSBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk4MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdmlydHVhbCB2ZXJz
aW9uIG9mIGdldE93blByb3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisg
ICAgICAgIGluIHByZXBhcmF0aW9uIGZvciB3aGVuIHdlIGFkZCB0aGUgc3RhdGljIGdldE93blBy
b3BlcnR5U2xvdCB0byB0aGUgTWV0aG9kVGFibGUgCisgICAgICAgIGluIENsYXNzSW5mby4KKwor
ICAgICAgICBBbHNvIGFkZGVkIGEgZmV3IHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgZnVuY3Rp
b25zIHdoZXJlIHRoZXkgaGFkIGJlZW4gb3Zlcmxvb2tlZCAKKyAgICAgICAgYmVmb3JlIChlc3Bl
Y2lhbGx5IGluIENvZGVHZW5lcmF0b3JKUy5wbSkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5p
bjoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpYWxvZ0hhbmRsZXI6OnJldHVyblZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93
U2hlbGw6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNE
T01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTV29ya2VyQ29udGV4dDo6Z2V0T3du
UHJvcGVydHlTbG90RGVsZWdhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmdldFNw
YXJzZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6Z2V0UHJvcGVy
dHkpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAg
ICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KToKKyAgICAgICAgKEdlbmVyYXRl
SGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0
b3JEZWZpbml0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0SW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0
cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5
cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4VGVzdEludGVyZmFjZTo6ZXhpc3RpbmdXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
VGVzdEludGVyZmFjZTo6d3JhcCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmV4aXN0aW5nV3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFwKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpJbnRlcm5hbDo6cmVhZE9ubHlUZXN0T2JqQXR0ckF0dHJHZXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpjYWNoZWRBdHRyaWJ1dGUxQXR0ckdldHRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTJBdHRyR2V0
dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpWOFRlc3RPYmo6OmV4aXN0aW5nV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpWOFRlc3RPYmo6OndyYXApOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6ZXhpc3RpbmdXcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZTo6d3JhcCk6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAg
ICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAg
ICAgICAgKiBicmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6UXRJbnN0YW5jZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBicmlkZ2UvcXQv
cXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRhTWV0
aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6
OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgor
ICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhv
ZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwp
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDExLTEwLTEwICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEw
MjQ2MTM3PiBEdXBsaWNhdGUgOjphZnRlciBjb250ZW50IHdoZW4gYm90aCA6OmJlZm9yZSBhbmQg
OjphZnRlciBhcmUgc3R5bGVkIGFzIHRhYmxlIHBhcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDQyNGU0MjNjZDg5MWRlZDllZGQ3Yzc3NzA2M2JkZDQ4YzRmZTkwM2MuLjAwMGYyOTM5NzhmZGIx
OTlhOWZiYTRkYzYzZTdmZTNiMGI4YzRjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNjgx
LDggKzE2ODEsOSBAQCBfX1pON1dlYkNvcmU1RnJhbWUyNnNlbmRPcmllbnRhdGlvbkNoYW5nZUV2
ZW50RWkKICNpZiBVU0UoUExVR0lOX0hPU1RfUFJPQ0VTUykKIF9fWk4zSlNDMTNSdW50aW1lTWV0
aG9kMTFnZXRDYWxsRGF0YUVQTlNfNkpTQ2VsbEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0MxM1J1
bnRpbWVNZXRob2QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEwSWRl
bnRpZmllckUKLV9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5T
XzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNK
U0MxM1J1bnRpbWVNZXRob2QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEz
UnVudGltZU1ldGhvZDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19fWk4zSlNDMTNSdW50
aW1lTWV0aG9kMjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNf
MTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9k
NnNfaW5mb0UKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kQzJFUE5TXzE0SlNHbG9iYWxPYmplY3RF
UE5TXzlTdHJ1Y3R1cmVFUk4zV1RGNlZlY3RvcklQTlNfOEJpbmRpbmdzNk1ldGhvZEVMbTBFRUUK
IF9fWk4zSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0RDFFdgpAQCAtMTY5MCw5ICsxNjkxLDEwIEBA
IF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTFnZXRDYWxsRGF0YUVQTlNfNkpTQ2Vs
bEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGRlbGV0
ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M4Qmlu
ZGluZ3MxM1J1bnRpbWVPYmplY3QxNGZpbmlzaENyZWF0aW9uRVBOU18xNEpTR2xvYmFsT2JqZWN0
RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNmdldENvbnN0cnVjdERhdGFFUk5T
XzEzQ29uc3RydWN0RGF0YUUKLV9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThnZXRP
d25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJv
cGVydHlTbG90RQorX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOGdldE93blByb3Bl
cnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNf
MTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE5Z2V0T3du
UHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18x
NUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MjRnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5T
XzE4UHJvcGVydHlEZXNjcmlwdG9yRQorX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3Qy
NWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3Qz
cHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1
dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0NnNfaW5mb0UK
IF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0QzJFUE5TXzlFeGVjU3RhdGVFUE5TXzE0
SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzhJbnN0
YW5jZUVFRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCmluZGV4IDA0YjViOTc2NTI3YTRmZDE5NWI0NWFiMjg0OTU2NGVhYzg1ZDJlNjguLjNk
ZjBlZDYyYWVlZjlkODMyZGY3NjVjYjMwZDdkNzM2YjNhZmE3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTEyMSw4ICsxMjEs
MTQgQEAgc3RhdGljIEpTVmFsdWUgbmFtZWRJdGVtR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmkKICAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlz
T2JqLCBjb2xsZWN0aW9uLmdldCgpKTsKIH0KIAotYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTRE9NV2luZG93Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpTRE9N
V2luZG93KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cqPihjZWxsKTsKICAg
ICAvLyBXaGVuIGFjY2Vzc2luZyBhIFdpbmRvdyBjcm9zcy1kb21haW4sIGZ1bmN0aW9ucyBhcmUg
YWx3YXlzIHRoZSBuYXRpdmUgYnVpbHQtaW4gb25lcywgYW5kIHRoZXkKICAgICAvLyBhcmUgbm90
IGFmZmVjdGVkIGJ5IHByb3BlcnRpZXMgY2hhbmdlZCBvbiB0aGUgV2luZG93IG9yIGFueXRoaW5n
IGluIGl0cyBwcm90b3R5cGUgY2hhaW4uCiAgICAgLy8gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGgg
dGhlIGJlaGF2aW9yIG9mIEZpcmVmb3guCkBAIC0xMzIsMTcgKzEzOCwxNyBAQCBib29sIEpTRE9N
V2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eQogICAgIC8vIFdlIGRvbid0IHdhbnQgYW55IHByb3BlcnRpZXMgb3RoZXIg
dGhhbiAiY2xvc2UiIGFuZCAiY2xvc2VkIiBvbiBhIGZyYW1lbGVzcyB3aW5kb3cgKGkuZS4gb25l
IHdob3NlIHBhZ2UgZ290IGNsb3NlZCwKICAgICAvLyBvciB3aG9zZSBpZnJhbWUgZ290IHJlbW92
ZWQpLgogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgZnVsbHkgbWF0Y2ggRmlyZWZveCwgd2hp
Y2ggYWxsb3dzIGF0IGxlYXN0IHRvU3RyaW5nIGluIGFkZGl0aW9uIHRvIHRob3NlLgotICAgIGlm
ICghaW1wbCgpLT5mcmFtZSgpKSB7CisgICAgaWYgKCF0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1l
KCkpIHsKICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGlzIHNhZmUgZm9yIGNyb3NzLWRv
bWFpbiBhbmQgc2FtZSBkb21haW4gdXNlLgogICAgICAgICAvLyBJdCBpZ25vcmVzIGFueSBjdXN0
b20gcHJvcGVydGllcyB0aGF0IG1pZ2h0IGJlIHNldCBvbiB0aGUgRE9NV2luZG93IChpbmNsdWRp
bmcgYSBjdXN0b20gcHJvdG90eXBlKS4KICAgICAgICAgZW50cnkgPSBzX2luZm8ucHJvcEhhc2hU
YWJsZShleGVjKS0+ZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgaWYgKGVudHJ5
ICYmICEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKSAmJiBlbnRyeS0+cHJvcGVydHlH
ZXR0ZXIoKSA9PSBqc0RPTVdpbmRvd0Nsb3NlZCkgewotICAgICAgICAgICAgc2xvdC5zZXRDdXN0
b20odGhpcywgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOworICAgICAgICAgICAgc2xvdC5zZXRD
dXN0b20odGhpc09iamVjdCwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgZW50cnkgPSBKU0RPTVdpbmRvd1Byb3Rv
dHlwZTo6c19pbmZvLnByb3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CiAgICAgICAgIGlmIChlbnRyeSAmJiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9u
KSAmJiBlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xv
c2UpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG5vbkNhY2hpbmdTdGF0aWNG
dW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2UsIDA+KTsKKyAg
ICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNGdW5j
dGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2UsIDA+KTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKQEAgLTE1NiwxMSArMTYyLDExIEBAIGJv
b2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgLy8gYmVjYXVzZSB3ZSBhbHdheXMgYWxsb3cgYWNj
ZXNzIHRvIHNvbWUgZnVuY3Rpb24sIGp1c3QgZGlmZmVyZW50IG9uZXMgZGVwZW5kaW5nIHdoZXRo
ZXIgYWNjZXNzCiAgICAgLy8gaXMgYWxsb3dlZC4KICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwot
ICAgIGJvb2wgYWxsb3dzQWNjZXNzID0gYWxsb3dzQWNjZXNzRnJvbShleGVjLCBlcnJvck1lc3Nh
Z2UpOworICAgIGJvb2wgYWxsb3dzQWNjZXNzID0gdGhpc09iamVjdC0+YWxsb3dzQWNjZXNzRnJv
bShleGVjLCBlcnJvck1lc3NhZ2UpOwogCiAgICAgLy8gTG9vayBmb3Igb3ZlcnJpZGVzIGJlZm9y
ZSBsb29raW5nIGF0IGFueSBvZiBvdXIgb3duIHByb3BlcnRpZXMsIGJ1dCBpZ25vcmUgb3ZlcnJp
ZGVzIGNvbXBsZXRlbHkKICAgICAvLyBpZiB0aGlzIGlzIGNyb3NzLWRvbWFpbiBhY2Nlc3MuCi0g
ICAgaWYgKGFsbG93c0FjY2VzcyAmJiBKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgaWYgKGFsbG93c0FjY2VzcyAmJiBKU0ds
b2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gV2UgbmVlZCB0aGlz
IGNvZGUgaGVyZSBiZWNhdXNlIG90aGVyd2lzZSBKU0RPTVdpbmRvd0Jhc2Ugd2lsbCBzdG9wIHRo
ZSBzZWFyY2ggYmVmb3JlIHdlIGV2ZW4gZ2V0IHRvIHRoZQpAQCAtMTcyLDI2ICsxNzgsMjYgQEAg
Ym9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkg
JiBGdW5jdGlvbikgewogICAgICAgICAgICAgaWYgKGVudHJ5LT5mdW5jdGlvbigpID09IGpzRE9N
V2luZG93UHJvdG90eXBlRnVuY3Rpb25CbHVyKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFhbGxv
d3NBY2Nlc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbm9u
Q2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25C
bHVyLCAwPik7CisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3Qs
IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0
aW9uQmx1ciwgMD4pOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5LT5mdW5jdGlvbigpID09IGpz
RE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25DbG9zZSkgewogICAgICAgICAgICAgICAgIGlmICgh
YWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMs
IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0
aW9uQ2xvc2UsIDA+KTsKKyAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09i
amVjdCwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93UHJvdG90eXBl
RnVuY3Rpb25DbG9zZSwgMD4pOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5LT5mdW5jdGlvbigp
ID09IGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25Gb2N1cykgewogICAgICAgICAgICAgICAg
IGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlw
ZUZ1bmN0aW9uRm9jdXMsIDA+KTsKKyAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20o
dGhpc09iamVjdCwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93UHJv
dG90eXBlRnVuY3Rpb25Gb2N1cywgMD4pOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5LT5mdW5j
dGlvbigpID09IGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSkgewogICAg
ICAgICAgICAgICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNs
b3Quc2V0Q3VzdG9tKHRoaXMsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdp
bmRvd1Byb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIDI+KTsKKyAgICAgICAgICAgICAgICAg
ICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0
dGVyPGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSwgMj4pOwogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGVudHJ5LT5mdW5jdGlvbigpID09IGpzRE9NV2luZG93UHJvdG90eXBlRnVu
Y3Rpb25TaG93TW9kYWxEaWFsb2cpIHsKLSAgICAgICAgICAgICAgICBpZiAoIURPTVdpbmRvdzo6
Y2FuU2hvd01vZGFsRGlhbG9nKGltcGwoKS0+ZnJhbWUoKSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIURPTVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKHRoaXNPYmplY3QtPmltcGwoKS0+ZnJh
bWUoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQpAQCAtMjAxLDcg
KzIwNyw3IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgICAgIC8vIEFsbG93IGFjY2Vz
cyB0byB0b1N0cmluZygpIGNyb3NzLWRvbWFpbiwgYnV0IGFsd2F5cyBPYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nLgogICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS50b1N0cmluZykgewogICAgICAgICAgICAgaWYgKCFhbGxvd3NBY2Nlc3MpIHsKLSAgICAg
ICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBvYmplY3RUb1N0cmluZ0Z1bmN0aW9uR2V0
dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBvYmplY3RU
b1N0cmluZ0Z1bmN0aW9uR2V0dGVyKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjA5LDcgKzIxNSw3IEBAIGJvb2wgSlNET01XaW5k
b3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5CiAKICAgICBlbnRyeSA9IEpTRE9NV2luZG93OjpzX2luZm8ucHJvcEhhc2hUYWJs
ZShleGVjKS0+ZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICBpZiAoZW50cnkpIHsKLSAg
ICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOworICAg
ICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjE4LDE4ICsyMjQsMTggQEAgYm9v
bCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHkKICAgICAvLyBuYW1pbmcgZnJhbWVzIHRoaW5ncyB0aGF0IGNv
bmZsaWN0IHdpdGggd2luZG93IHByb3BlcnRpZXMgdGhhdAogICAgIC8vIGFyZSBpbiBNb3ogYnV0
IG5vdCBJRS4gU2luY2Ugd2UgaGF2ZSBzb21lIG9mIHRoZXNlLCB3ZSBoYXZlIHRvIGRvCiAgICAg
Ly8gaXQgdGhlIE1veiB3YXkuCi0gICAgaWYgKGltcGwoKS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGls
ZChpZGVudGlmaWVyVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpIHsKLSAgICAgICAgc2xv
dC5zZXRDdXN0b20odGhpcywgY2hpbGRGcmFtZUdldHRlcik7CisgICAgaWYgKHRoaXNPYmplY3Qt
PmltcGwoKS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGlsZChpZGVudGlmaWVyVG9BdG9taWNTdHJpbmco
cHJvcGVydHlOYW1lKSkpIHsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgY2hp
bGRGcmFtZUdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIERv
IHByb3RvdHlwZSBsb29rdXAgZWFybHkgc28gdGhhdCBmdW5jdGlvbnMgYW5kIGF0dHJpYnV0ZXMg
aW4gdGhlIHByb3RvdHlwZSBjYW4gaGF2ZQogICAgIC8vIHByZWNlZGVuY2Ugb3ZlciB0aGUgaW5k
ZXggYW5kIG5hbWUgZ2V0dGVycy4gIAotICAgIEpTVmFsdWUgcHJvdG8gPSBwcm90b3R5cGUoKTsK
KyAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+cHJvdG90eXBlKCk7CiAgICAgaWYgKHBy
b3RvLmlzT2JqZWN0KCkpIHsKICAgICAgICAgaWYgKGFzT2JqZWN0KHByb3RvKS0+Z2V0UHJvcGVy
dHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgIGlmICghYWxs
b3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRFcnJvck1lc3NhZ2UoZXJyb3JNZXNz
YWdlKTsKKyAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5wcmludEVycm9yTWVzc2FnZShlcnJv
ck1lc3NhZ2UpOwogICAgICAgICAgICAgICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI0MiwyOCArMjQ4LDI4IEBAIGJv
b2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgLy8gYWxsb3cgd2luZG93WzFdIG9yIHBhcmVudFsx
XSBldGMuICgjNTY5ODMpCiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBpID0gcHJvcGVydHlO
YW1lLnRvQXJyYXlJbmRleChvayk7Ci0gICAgaWYgKG9rICYmIGkgPCBpbXBsKCktPmZyYW1lKCkt
PnRyZWUoKS0+Y2hpbGRDb3VudCgpKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhp
cywgaSwgaW5kZXhHZXR0ZXIpOworICAgIGlmIChvayAmJiBpIDwgdGhpc09iamVjdC0+aW1wbCgp
LT5mcmFtZSgpLT50cmVlKCktPmNoaWxkQ291bnQoKSkgeworICAgICAgICBzbG90LnNldEN1c3Rv
bUluZGV4KHRoaXNPYmplY3QsIGksIGluZGV4R2V0dGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3MpIHsKLSAgICAgICAgcHJpbnRFcnJvck1l
c3NhZ2UoZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgdGhpc09iamVjdC0+cHJpbnRFcnJvck1lc3Nh
Z2UoZXJyb3JNZXNzYWdlKTsKICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgLy8gQWxsb3cgc2hvcnRjdXRzIGxpa2UgJ0ltYWdl
MScgaW5zdGVhZCBvZiBkb2N1bWVudC5pbWFnZXMuSW1hZ2UxCi0gICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gaW1wbCgpLT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IHRoaXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKICAgICBpZiAoZG9j
dW1lbnQtPmlzSFRNTERvY3VtZW50KCkpIHsKICAgICAgICAgQXRvbWljU3RyaW5nSW1wbCogYXRv
bWljUHJvcGVydHlOYW1lID0gZmluZEF0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpOwogICAgICAg
ICBpZiAoYXRvbWljUHJvcGVydHlOYW1lICYmIChzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihk
b2N1bWVudCktPmhhc05hbWVkSXRlbShhdG9taWNQcm9wZXJ0eU5hbWUpIHx8IGRvY3VtZW50LT5o
YXNFbGVtZW50V2l0aElkKGF0b21pY1Byb3BlcnR5TmFtZSkpKSB7Ci0gICAgICAgICAgICBzbG90
LnNldEN1c3RvbSh0aGlzLCBuYW1lZEl0ZW1HZXR0ZXIpOworICAgICAgICAgICAgc2xvdC5zZXRD
dXN0b20odGhpc09iamVjdCwgbmFtZWRJdGVtR2V0dGVyKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5
U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAog
Ym9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IpCkBAIC02ODMsNyArNjg5LDcgQEAgaW5saW5lIEpTVmFsdWUgRGlhbG9nSGFuZGxl
cjo6cmV0dXJuVmFsdWUoKSBjb25zdAogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAg
ICBJZGVudGlmaWVyIGlkZW50aWZpZXIobV9leGVjLCAicmV0dXJuVmFsdWUiKTsKICAgICBQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICBpZiAoIWdsb2JhbE9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90
KG1fZXhlYywgaWRlbnRpZmllciwgc2xvdCkpCisgICAgaWYgKCFnbG9iYWxPYmplY3QtPmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVjLCBpZGVudGlmaWVyLCBzbG90KSkKICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUobV9leGVjLCBp
ZGVudGlmaWVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dTaGVsbC5jcHAKaW5kZXggNmQyNmY5ODVjNzFiNmM0YjgzYjBhMzAyOTg5YjA3ZjBiYTMyN2Ix
ZS4uZmE2MWI0OTZiMjg0N2ZlYjU2YzY2YzM5MDc1YzI4NjRhZDA5MzQ4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTEwMCwxNCAr
MTAwLDE0IEBAIFVTdHJpbmcgSlNET01XaW5kb3dTaGVsbDo6Y2xhc3NOYW1lKCkgY29uc3QKICAg
ICByZXR1cm4gbV93aW5kb3ctPmNsYXNzTmFtZSgpOwogfQogCi1ib29sIEpTRE9NV2luZG93U2hl
bGw6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0RPTVdpbmRvd1NoZWxs
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBi
b29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihj
ZWxsKS0+bV93aW5kb3ctPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oY2VsbCktPm1f
d2luZG93LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggYjVkZDNhNmExNmMyY2Q4YTYzZjk4YTNmOTI3OTgzNTJi
ZGYwZDY3Ny4uNmFjOTFiY2FmMjdjM2EyMDI0ODBiOWY5MWY3YzRiZjhjNmM1MWVlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApAQCAtODAsNyAr
ODAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRD
aGlsZHJlbihKU0M6OkpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVh
bCBKU0M6OlVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlND
OjpQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCmluZGV4IDY3ZjJlOTliYTY0MGUzYzY2NTNhN2Zk
YmQ2ODY3Nzk1ZWNmM2E3YjcuLmZlYzQxOWZiNzQwNDZmYzJjMDdjZjg1MDBhMTVjMGQ1NWJjN2I3
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIEpTV29ya2VyQ29udGV4dDo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogYm9vbCBKU1dv
cmtlckNvbnRleHQ6OmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgLy8gTG9vayBmb3Igb3ZlcnJpZGVzIGJlZm9yZSBsb29raW5nIGF0IGFueSBvZiBvdXIgb3du
IHByb3BlcnRpZXMuCi0gICAgaWYgKEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICBpZiAoSlNHbG9iYWxPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA4ZGJlM2VhMDlj
N2M3ZmJmNWQ0OWQ3ZTUwZmNmYTFkNDM0ZDE0MGI5Li5iMTBmMWQ3Y2MxYmUxNTI1MjU2MGVjNDM1
Y2JiNDRjMmMyNTRjNzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTMzMywxMSArMzMzLDExIEBAIHByaXZhdGU6
CiAgICAgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChhcnJheSk7CiAgICAgICAgIGlmIChp
c0pTQXJyYXkoJm1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBhcnJheSkpIHsKLSAgICAgICAgICAgIGlm
IChhcnJheS0+SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KG1fZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KSkgeworICAgICAgICAgICAgaWYgKEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChh
cnJheSwgbV9leGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICAgICAgaGFz
SW5kZXggPSB0cnVlOwogICAgICAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKG1fZXhl
YywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChhcnJh
eS0+Z2V0T3duUHJvcGVydHlTbG90KG1fZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkgeworICAg
ICAgICB9IGVsc2UgaWYgKGFycmF5LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgaGFzSW5kZXggPSB0cnVlOwogICAg
ICAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUobV9leGVjLCBwcm9wZXJ0eU5hbWUpOwogICAg
ICAgICB9CkBAIC0zNDgsNyArMzQ4LDcgQEAgcHJpdmF0ZToKICAgICBKU1ZhbHVlIGdldFByb3Bl
cnR5KEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKICAg
ICB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KG9iamVjdCk7Ci0gICAgICAgIGlmIChvYmpl
Y3QtPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAg
ICAgIGlmIChvYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUobV9leGVjLCBw
cm9wZXJ0eU5hbWUpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXgg
MmQ4MTM0NzBjN2NhMTczOTJkZWZiMjExZDYyNTIxODJkOTZmMGExYS4uZjZhZDcxNGY0YjJhMWJm
ZTExZGQxNmUzMTdlOTJjZmQyNDg0ZDc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTQzMCw3ICs0MzAsNyBAQCBzdWIg
R2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAgICAgbXkgQGdldE93blByb3BlcnR5U2xv
dEltcGwgPSAoKTsKIAogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTmFtZWROb2RlTWFwIiBv
ciAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTENvbGxlY3Rpb24iIG9yICRpbnRlcmZhY2VOYW1lIGVx
ICJIVE1MQWxsQ29sbGVjdGlvbiIpIHsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90
SW1wbCwgIiAgICAke25hbWVzcGFjZU1heWJlfUpTVmFsdWUgcHJvdG8gPSBwcm90b3R5cGUoKTtc
biIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICR7bmFtZXNw
YWNlTWF5YmV9SlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPnByb3RvdHlwZSgpO1xuIik7CiAg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKHByb3RvLmlzT2Jq
ZWN0KCkgJiYgc3RhdGljX2Nhc3Q8JHtuYW1lc3BhY2VNYXliZX1KU09iamVjdCo+KGFzT2JqZWN0
KHByb3RvKSktPmhhc1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSkpXG4iKTsKICAgICAgICAg
cHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4i
KTsKICAgICB9CkBAIC00NDAsNyArNDQwLDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlT
bG90Qm9keQogICAgICAgICBpZiAoJHJlcXVpcmVzTWFudWFsTG9va3VwKSB7CiAgICAgICAgICAg
ICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGNvbnN0ICR7bmFtZXNwYWNlTWF5
YmV9SGFzaEVudHJ5KiBlbnRyeSA9ICR7Y2xhc3NOYW1lfVRhYmxlLmVudHJ5KGV4ZWMsIHByb3Bl
cnR5TmFtZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGws
ICIgICAgaWYgKGVudHJ5KSB7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGVudHJ5LT5wcm9wZXJ0eUdl
dHRlcigpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwg
IiAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgZW50cnktPnByb3BlcnR5R2V0dGVy
KCkpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAg
ICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlT
bG90SW1wbCwgIiAgICB9XG4iKTsKICAgICAgICAgfQpAQCAtNDU5LDIwICs0NTksMjAgQEAgc3Vi
IEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQogICAgICAgICBpZiAoSW5kZXhHZXR0ZXJS
ZXR1cm5zU3RyaW5ncygkaW1wbENsYXNzTmFtZSkpIHsKICAgICAgICAgICAgIHB1c2goQGdldE93
blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKG9rKSB7XG4iKTsKICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKG9rICYm
IGluZGV4IDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihpbXBsKCkpLT5sZW5ndGgoKSkg
e1xuIik7CisgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlm
IChvayAmJiBpbmRleCA8IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4odGhpc09iamVjdC0+
aW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOwogICAgICAgICB9CiAgICAgICAgIGlmICgkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7Ci0g
ICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNl
dFZhbHVlKGdldEJ5SW5kZXgoZXhlYywgaW5kZXgpKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
Z2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LT5nZXRCeUluZGV4KGV4ZWMsIGluZGV4KSk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tSW5kZXgodGhpcywgaW5kZXgsIGluZGV4R2V0dGVyKTtcbiIpOworICAgICAgICAgICAgcHVz
aChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0
aGlzT2JqZWN0LCBpbmRleCwgaW5kZXhHZXR0ZXIpO1xuIik7CiAgICAgICAgIH0KICAgICAgICAg
cHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsK
ICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICB9XG4iKTsKICAgICB9
CiAKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTmFtZUdldHRl
ciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1l
R2V0dGVyIn0pIHsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBp
ZiAoY2FuR2V0SXRlbXNGb3JOYW1lKGV4ZWMsIHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4o
aW1wbCgpKSwgcHJvcGVydHlOYW1lKSkge1xuIik7Ci0gICAgICAgIHB1c2goQGdldE93blByb3Bl
cnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG5hbWVHZXR0ZXIpO1xu
Iik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKGNhbkdl
dEl0ZW1zRm9yTmFtZShleGVjLCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmpl
Y3QtPmltcGwoKSksIHByb3BlcnR5TmFtZSkpIHtcbiIpOworICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCB0aGlz
T2JqZWN0LT5uYW1lR2V0dGVyKTtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNs
b3RJbXBsLCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eVNsb3RJbXBsLCAiICAgIH1cbiIpOwogICAgICAgICBpZiAoJGlubGluZWQpIHsKQEAg
LTQ4NywxOSArNDg3LDE5IEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAg
ICB9CiAKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGlu
Z0dldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xv
dEltcGwsICIgICAgaWYgKGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCkpXG4iKTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwg
IiAgICBpZiAodGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KSlcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJ
bXBsLCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgIH0KIAogICAgIGlmICgkaGFzQXR0
cmlidXRlcykgewogICAgICAgICBpZiAoJGlubGluZWQpIHsKICAgICAgICAgICAgIGRpZSAiQ2Fu
bm90IGlubGluZSBpZiBOb1N0YXRpY1RhYmxlcyBpcyBzZXQuIiBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSk7Ci0gICAgICAgICAgICBwdXNoKEBn
ZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0
YXRpY1ZhbHVlU2xvdDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCBzX2luZm8uc3RhdGljUHJvcEhh
c2hUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVz
aChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICByZXR1cm4gJHtuYW1lc3BhY2VNYXliZX1n
ZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFtZSwgQmFzZT4oZXhlYywgc19pbmZvLnN0YXRpY1By
b3BIYXNoVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIg
ICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVTbG90PCRjbGFzc05hbWUs
IEJhc2U+KGV4ZWMsICIgLiBoYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xv
dEltcGwsICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVTbG90PCRj
bGFzc05hbWUsIEJhc2U+KGV4ZWMsICIgLiBoYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRo
aXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKICAgICAgICAgfQogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7Cisg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgcmV0dXJuIEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xu
Iik7CiAgICAgfQogCiAgICAgcmV0dXJuIEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsOwpAQCAtNzcw
LDkgKzc3MCwxMSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgICMgR2V0dGVycwogICAgIGlm
ICgkaGFzR2V0dGVyKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CisgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9y
Jik7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn07CisgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlND
OjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
XG4iKSBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIi
fSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRl
ciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdl
dHRlciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGlu
Z05hbWVHZXR0ZXIifTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICgkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pICYmICEkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9Owog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlBy
b3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVs
ZWdhdGluZ0dldE93blByb3BlcnR5U2xvdCJ9OwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xu
IikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ0dldE93blBy
b3BlcnR5U2xvdCJ9OwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90In0gPSAxOwpAQCAtOTY3LDkgKzk2OSwxNCBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifTtcblxuIik7CiAKICAgICBpZiAoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5saW5lR2V0T3duUHJvcGVydHlTbG90In0g
JiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5
U2xvdCJ9KSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJBTFdBWVNfSU5MSU5FIGJv
b2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYg
c2xvdClcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBi
b29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ7XG4iKTsK
LSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXMsICZzX2luZm8pO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9XG5cbiIpOworICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiBjZWxsLCBKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
JiBzbG90KVxuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ7XG4iKTsKKyAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNf
aW5mbyk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgR2VuZXJhdGVHZXRPd25Q
cm9wZXJ0eVNsb3RCb2R5KCRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRp
bXBsQ2xhc3NOYW1lLCAkbnVtQXR0cmlidXRlcyA+IDAsIDEpKTsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJBTFdB
WVNfSU5MSU5FIGJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwpAQCAtMTAzNSw3ICsxMDQy
LDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKICAgICBpZiAoJG51bUZ1
bmN0aW9ucyA+IDAgfHwgJG51bUNvbnN0YW50cyA+IDAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0g
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJv
cGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90RGVs
ZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3Bl
cnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdh
dGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9OwogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRv
ciYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1By
b3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9OwpAQCAtMTQzMywyMiArMTQ0MSwyOCBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxu
Iik7CiAgICAgfQogICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCB8fCAkbnVtRnVuY3Rpb25zID4g
MCB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBl
R2V0T3duUHJvcGVydHlTbG90In0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29s
ICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgICAgIAor
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xh
c3NOYW1lfVByb3RvdHlwZSo+KGNlbGwpO1xuIik7CiAKICAgICAgICAgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNs
b3QifSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGdldE93blBy
b3BlcnR5U2xvdERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0LT5nZXRPd25Qcm9w
ZXJ0eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAg
ICAgfQogCiAgICAgICAgIGlmICgkbnVtQ29uc3RhbnRzIGVxIDAgJiYgJG51bUZ1bmN0aW9ucyBl
cSAwKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gQmFzZTo6
Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsgICAgICAg
IAorICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEJhc2U6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7
ICAgICAgICAKICAgICAgICAgfSBlbHNpZiAoJG51bUNvbnN0YW50cyBlcSAwKSB7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90
PEpTT2JqZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAi
LCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVj
LCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0gZWxzaWYgKCRudW1GdW5jdGlvbnMg
ZXEgMCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlU2xvdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAiIC4g
cHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
Z2V0U3RhdGljVmFsdWVTbG90PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMs
ICIgLiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8JHtjbGFz
c05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFj
Y2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0s
ICRjbGFzc05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY1Byb3BlcnR5U2xv
dDwke2NsYXNzTmFtZX1Qcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFz
aFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNU
YWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
O1xuIik7CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwog
CkBAIC0xNTcyLDkgKzE1ODYsMTQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAj
IEF0dHJpYnV0ZXMKICAgICBpZiAoJGhhc0dldHRlcikgewogICAgICAgICBpZiAoISRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklubGluZUdldE93blByb3BlcnR5U2xvdCJ9ICYmICEk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3Qi
fSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdClcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsK
LSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpcywgJnNfaW5mbyk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1l
fSo+KGNlbGwpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KCRk
YXRhTm9kZSwgJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lLCAkbnVt
QXR0cmlidXRlcyA+IDAsIDApKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CkBA
IC0xNTg2LDE4ICsxNjA1LDIzIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAg
ICAgaWYgKCgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVy
In0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0
dGVyIn0pIAogICAgICAgICAgICAgICAgICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIntcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOwotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKHByb3BlcnR5TmFtZSA8IHN0YXRpY19jYXN0PCRpbXBsQ2xh
c3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
blxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9
Kj4oY2VsbCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChwcm9wZXJ0eU5hbWUgPCBzdGF0aWNfY2Fz
dDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsK
ICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0
b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051
bWVyaWNJbmRleEdldHRlciJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHNsb3Quc2V0VmFsdWUoZ2V0QnlJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUpKTtc
biIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QtPmdldEJ5SW5kZXgoZXhlYywgcHJvcGVydHlOYW1lKSk7XG4iKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpcywgcHJvcGVydHlOYW1lLCBpbmRleEdl
dHRlcik7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
c2xvdC5zZXRDdXN0b21JbmRleCh0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHRoaXNPYmplY3Qt
PmluZGV4R2V0dGVyKTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICB9XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVj
LCBwcm9wZXJ0eU5hbWUpLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuIHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhl
YywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTtcbiIpOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICB9CiAgICAgICAg
IApAQCAtMzE1Niw3ICszMTgwLDggQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlv
bgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHB0cjtcbiIpOwogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG5cbiIpOwogCi0gICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CisgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNj
cmlwdG9yJik7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwogCkBAIC0zMjExLDkgKzMyMzYsMTQgQEAgc3Vi
IEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgsIGpzTnVtYmVyKCR7bnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzfSksIFJlYWRPbmx5
IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTtcbiIpIGlmICRudW1iZXJPZmNvbnN0cnVjdFBhcmFt
ZXRlcnM7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIAotICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2Nv
bnN0cnVjdG9yQ2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CisgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7Cisg
ICAgCisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1l
fTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9LCBKU0RP
TVdyYXBwZXI+KGV4ZWMsICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCB0aGlzLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVy
biBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0sIEpTRE9NV3JhcHBl
cj4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIHN0YXRpY19jYXN0PCR7Y29u
c3RydWN0b3JDbGFzc05hbWV9Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogCiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiYm9vbCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXgg
ZGE5OTExZWM1ZDJiZTgxNmYwMmExNGM4M2MwOGUyZGUyMmYwMDI4Yy4uYTAwZGU0NGYwM2ExMDZl
MzU4ZTEwNDI5YjJkN2RiZmUzOGMzYzEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTg2
LDcgKzg2LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNf
aW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTE0LDkgKzExNSwxNCBAQCB2b2lkIEpTVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZQogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6c2VsZihl
eGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogfQogCi1ib29sIEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
K2Jvb2wgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3RvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwor
Ym9vbCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVz
Y3JpcHRvcikKQEAgLTE4OCwxMCArMTk0LDE2IEBAIEpTT2JqZWN0KiBKU1Rlc3RJbnRlcmZhY2U6
OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgcmV0dXJuIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMtPmdsb2JhbERh
dGEoKSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CiB9CiAKLWJvb2wgSlNUZXN0SW50ZXJmYWNlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0SW50ZXJmYWNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpT
VGVzdEludGVyZmFjZSwgQmFzZT4oZXhlYywgJkpTVGVzdEludGVyZmFjZVRhYmxlLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rlc3RJbnRlcmZhY2U6Omdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNUZXN0
SW50ZXJmYWNlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oY2Vs
bCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsK
KyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdEludGVyZmFjZSwgQmFzZT4oZXhl
YywgJkpTVGVzdEludGVyZmFjZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQogCiBib29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggNWJmZDg5ZjIyM2E3
NWY4NTllN2YzM2NkYjI4MTg5NWEwYzc3OTAyZC4uZDA4YTk0OGIyZmU3MTk0MDQxMWNmNmNiMzUz
MTdlNzY5YTZmMmZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaApAQCAtNDIsNyArNDIsOCBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggM2JmNDM4OWQyMmI2
MDgwMDUxZGViYjQzMjY3ZDBkNTA1NjJiZTNiOC4uYTFjNjQyZTRkN2Y4Yzc2MmVjMWE2YzU3YmUy
OTY3NTM2YmRmNGIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcApAQCAtODcsNyArODcsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwdHI7CiAg
ICAgfQogCi0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlND
OjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xMTIsOSArMTEzLDE0
IEBAIHZvaWQgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTCiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lclByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpOwogfQogCi1ib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25z
dHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3JUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1l
LCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
eworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyQ29uc3RydWN0b3JUYWJsZSwgc3RhdGljX2Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lckNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAK
IGJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAgLTE0OSw5ICsxNTUsMTUg
QEAgSlNPYmplY3QqIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OnNlbGYo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE8KICAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBlPEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKLWJv
b2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5
cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisK
K2Jvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGlj
RnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
clByb3RvdHlwZVRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKj4oY2VsbCk7CisgICAgcmV0dXJu
IGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgJkpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJQcm90b3R5cGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAgLTE3OCwxMCAr
MTkwLDE2IEBAIEpTT2JqZWN0KiBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGVQ
cm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhCiAgICAgcmV0dXJuIEpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmNyZWF0ZShleGVjLT5nbG9iYWxEYXRhKCksIGds
b2JhbE9iamVjdCwgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Y3JlYXRl
U3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKIH0KIAotYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogewotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Ci0g
ICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LCBCYXNlPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclRhYmxlLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
eworICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4oY2VsbCk7CisgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAgICByZXR1cm4gZ2V0U3Rh
dGljVmFsdWVTbG90PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIsIEJhc2U+KGV4ZWMsICZK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCA2YzE0MmU5ZDlmYTZkZjE0ZTk5Y2Vm
NzQxMzI3ODFlMmM5Njk0MjE2Li45YjdlMzYyNGQ0YjVmYmVjMGY0OWJhYThlOWQ5Y2IyZDg2Njk5
OTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTQw
LDcgKzQwLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBj
cmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0g
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNf
aW5mbzsKIApAQCAtNzUsNyArNzYsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90
Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwog
ICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBjMDI0YTQ1MWQ3OTAzMmZl
YTU4ZjRiYTliMjg0OWZiZTUxMDYyNjhjLi5iZDJhZGU0YWU1MTI3MzlmMjMxOTM1YjA5N2IwMTYz
ZTdmZmNlZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTg5LDcgKzE4OSw4IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIHB0cjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7
CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOwog
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAg
IHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkK
QEAgLTIxNCw5ICsyMTUsMTQgQEAgdm9pZCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2wKICAgICBwdXREaXJl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBK
U1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVl
U2xvdDxKU1Rlc3RPYmpDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0T2Jq
Q29uc3RydWN0b3JUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisK
K2Jvb2wgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RP
YmpDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0T2JqQ29uc3RydWN0b3JU
YWJsZSwgc3RhdGljX2Nhc3Q8SlNUZXN0T2JqQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0zMDYsOSArMzEyLDE1IEBA
IEpTT2JqZWN0KiBKU1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIGdldERPTVByb3RvdHlwZTxKU1Rl
c3RPYmo+KGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKLWJvb2wgSlNUZXN0T2JqUHJvdG90eXBl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0T2JqUHJvdG90eXBl
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCiti
b29sIEpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlTbG90PEpTVGVzdE9i
alByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSwgdGhp
cywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBKU1Rlc3RPYmpQcm90b3R5cGUqIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihjZWxsKTsKKyAgICByZXR1cm4g
Z2V0U3RhdGljUHJvcGVydHlTbG90PEpTVGVzdE9ialByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMs
ICZKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3RPYmpQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtMzM1LDEwICszNDcsMTYgQEAgSlNPYmplY3Qq
IEpTVGVzdE9iajo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNUZXN0T2JqUHJvdG90eXBlOjpjcmVhdGUoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIEpTVGVzdE9ialByb3RvdHlwZTo6Y3JlYXRl
U3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKIH0KIAotYm9vbCBKU1Rlc3RPYmo6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXMsICZzX2luZm8pOwotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0T2Jq
LCBCYXNlPihleGVjLCAmSlNUZXN0T2JqVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworfQorCitib29sIEpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1Rlc3RPYmoqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RPYmoqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsICZzX2luZm8pOworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0
T2JqLCBCYXNlPihleGVjLCAmSlNUZXN0T2JqVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCBjM2QxYjI0Y2JiMTcxYTY0ZjI2OTIz
Zjg3ZmFlYjU3MWFkNWM4ZDMzLi40OGJjMTVkNmE5NjNkMDY5MmE2YmI1ZjBkNjA4NDc2MmRmNmNm
Y2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oCkBAIC00MCw3ICs0MCw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9p
ZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lk
IHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKQEAg
LTg5LDcgKzkwLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNs
YXNzSW5mbyBzX2luZm87Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7
CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMg
SlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggMmFkNjEwYmI2Yjc0MWMwMWI4ODM5ZmQyYjg2NTQ1
Y2VmZDFkYmY2Ni4uN2YxYjkzYTAzNTllMzY1NTczMzgxNzA1M2I1OGM2NDhhM2QzZmQ1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5jcHAKQEAgLTg4LDcgKzg4LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcHRyOwogICAg
IH0KIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6
Q2xhc3NJbmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTEzLDkgKzExNCwxNCBA
QCB2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqCiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIERvbnRE
ZWxldGUgfCBSZWFkT25seSk7CiB9CiAKLWJvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9v
bCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNW
YWx1ZVNsb3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3Is
IEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cnVjdG9yVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJu
IGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQor
Citib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVy
biBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yVGFibGUsIHN0YXRpY19jYXN0PEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KQpAQCAtMTY4LDEwICsxNzQsMTYgQEAgSlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZTo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywKICAgICByZXR1
cm4gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkp
KTsKIH0KIAotYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2U6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwotICAgIHJldHVybiBn
ZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLCBC
YXNlPihleGVjLCAmSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVGFibGUsIHRo
aXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK3sKKyAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uq
IHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3Qs
ICZzX2luZm8pOworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLCBCYXNlPihleGVjLCAmSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKIGJvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCBmMWZhNGQ0NGYw
YmU1YTMwNjJiNmI5NzA4YTRlYmFhZDM2NzUzODcxLi41MWU2OGJlMDUwMTY4NDZjMDE2YjA3ZGQ1
NmU3ZTYxNTNiOThhOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC00Miw3ICs0Miw4IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0
YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaAppbmRl
eCA1MjdkMWI3NTdiYWQ2YTBlMTFkNWQ3Nzg0Y2E0YTUxZTFjNTU2MzJiLi4wMzYyYjM1MzlmZmM2
OTY3NzYzNGJkZjlhNzU5YjliN2UyYWQ0YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oCkBAIC00Nywx
NCArNDcsMjAgQEAgcHVibGljOgogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAg
ICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncyk7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxk
Q291bnQgPSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKKyAgICBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBleGlzdGluZ1dyYXBwZXIoVGVzdEludGVyZmFjZSop
OworCiBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93
KFRlc3RJbnRlcmZhY2UqKTsKIH07CiAKK0FMV0FZU19JTkxJTkUgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBWOFRlc3RJbnRlcmZhY2U6OmV4aXN0aW5nV3JhcHBlcihUZXN0SW50ZXJmYWNlKiBpbXBs
KQoreworICAgIHJldHVybiBnZXRET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7Cit9CiAKIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0SW50ZXJmYWNlOjp3cmFwKFRlc3RJbnRlcmZhY2UqIGlt
cGwpCiB7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERPTU9i
amVjdE1hcCgpLmdldChpbXBsKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gZXhpc3RpbmdXcmFwcGVyKGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0
eSgpKQogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgcmV0dXJuIFY4VGVzdEludGVy
ZmFjZTo6d3JhcFNsb3coaW1wbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaAppbmRleCBjY2VkYjE3ZDliMzU5YmU2MzY4YWU0M2E2NmIyN2JjOGJkMDc5YzhhLi5l
ZTBhOTYwZWUyMGE1ZGI2NWI3OGE2NzBjNmMzMzk4ZDE0NzIzODA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTQ0LDE0ICs0NCwyMCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAgIHN0YXRpYyBXcmFwcGVy
VHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9
IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOworICAgIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IGV4aXN0aW5nV3JhcHBlcihUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciopOworCiBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdy
YXBTbG93KFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKik7CiB9OwogCitBTFdBWVNfSU5MSU5F
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6ZXhp
c3RpbmdXcmFwcGVyKFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBpbXBsKQoreworICAgIHJl
dHVybiBnZXRET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7Cit9CiAKIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6d3JhcChUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lciogaW1wbCkKIHsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KGltcGwpOworICAgICAgICB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXBwZXIgPSBleGlzdGluZ1dyYXBwZXIoaW1wbCk7CiAgICAgICAgIGlmICgh
d3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICByZXR1
cm4gVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6d3JhcFNsb3coaW1wbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CmluZGV4IDg1MjJkNmY1ZjdjMGNiOWY1NDJmNmNhZmE0YzA4NzNkZmU3OTIxMmEuLmEzYzRmMGM1
YWRiYmRhYWE4YzI4NTk5ODI3MTAzOGZlODg0ODExYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC04Niw3ICs4
Niw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVhZE9ubHlUZXN0T2JqQXR0ckF0
dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9i
ai5yZWFkT25seVRlc3RPYmpBdHRyLl9nZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFJlZlB0cjxUZXN0T2JqPiByZXN1bHQg
PSBpbXAtPnJlYWRPbmx5VGVzdE9iakF0dHIoKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
d3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IGdldERPTU9iamVjdE1hcCgpLmdldChyZXN1bHQuZ2V0
KCkpIDogdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHdyYXBwZXIgPSByZXN1bHQuZ2V0KCkgPyBWOFRlc3RPYmo6OmV4aXN0aW5nV3JhcHBlcihyZXN1
bHQuZ2V0KCkpIDogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpOwogICAgIGlmICh3cmFwcGVyLklz
RW1wdHkoKSkgewogICAgICAgICB3cmFwcGVyID0gdG9WOChyZXN1bHQuZ2V0KCkpOwogICAgICAg
ICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQpAQCAtNTg3LDcgKzU4Nyw3IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRlMUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hCiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUx
Ll9nZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9s
ZGVyKCkpOwogICAgIFJlZlB0cjxhbnk+IHJlc3VsdCA9IGltcC0+Y2FjaGVkQXR0cmlidXRlMSgp
OwotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gZ2V0
RE9NT2JqZWN0TWFwKCkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4o
KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IFY4
YW55OjpleGlzdGluZ1dyYXBwZXIocmVzdWx0LmdldCgpKSA6IHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4oKTsKICAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKICAgICAgICAgd3JhcHBlciA9IHRv
VjgocmVzdWx0LmdldCgpKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKQEAgLTYw
MSw3ICs2MDEsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNhY2hlZEF0dHJpYnV0
ZTJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYQogICAgIElOQ19TVEFUUygiRE9N
LlRlc3RPYmouY2FjaGVkQXR0cmlidXRlMi5fZ2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBSZWZQdHI8YW55PiByZXN1bHQg
PSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTIoKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3Jh
cHBlciA9IHJlc3VsdC5nZXQoKSA/IGdldERPTU9iamVjdE1hcCgpLmdldChyZXN1bHQuZ2V0KCkp
IDogdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdy
YXBwZXIgPSByZXN1bHQuZ2V0KCkgPyBWOGFueTo6ZXhpc3RpbmdXcmFwcGVyKHJlc3VsdC5nZXQo
KSkgOiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7CiAgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgp
KSB7CiAgICAgICAgIHdyYXBwZXIgPSB0b1Y4KHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGlmICgh
d3JhcHBlci5Jc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgKaW5kZXggNGJjNDFjY2ZlOTUxZWMyMmNiZDQwMWNjMTA5
OGNjNmZhYzkwMmM5ZC4uMzRhYTQ3Njk3MmM2ZWFjZjZkMGE5Yzk2NGNhYjA1ZTNkMTYwMTQxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouaApAQCAtNDksMTQgKzQ5LDIwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGN1c3RvbUF0dHJBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbyk7CiAgICAgc3RhdGljIHZvaWQg
Y3VzdG9tQXR0ckFjY2Vzc29yU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6
TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbyk7CiAg
ICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFwcGVy
SW50ZXJuYWxGaWVsZENvdW50ICsgMDsKKyAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBleGlzdGluZ1dyYXBwZXIoVGVzdE9iaiopOworCiBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFRlc3RPYmoqKTsKIH07CiAKK0FMV0FZU19JTkxJ
TkUgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RPYmo6OmV4aXN0aW5nV3JhcHBlcihUZXN0
T2JqKiBpbXBsKQoreworICAgIHJldHVybiBnZXRET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7Cit9
CiAKIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0T2JqOjp3cmFwKFRlc3RPYmoqIGltcGwp
CiB7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERPTU9iamVj
dE1hcCgpLmdldChpbXBsKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
ID0gZXhpc3RpbmdXcmFwcGVyKGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgp
KQogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgcmV0dXJuIFY4VGVzdE9iajo6d3Jh
cFNsb3coaW1wbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmgKaW5kZXggMjkzOTZmYmJiZTFhOWU3ZmE5NjUxYWRkZDBkY2UyNmMzY2I3
NTE2MS4uYThlYzNjZTg4MGU3MThkNjNhYzE2ZWUwODc2YzUzMGY5Njc2ZGRkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAt
NDYsMTQgKzQ2LDIwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lk
Kik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRpYyBjb25zdCBp
bnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3Vu
dCArIDA7CisgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZXhpc3RpbmdXcmFwcGVy
KFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKTsKKwogcHJpdmF0ZToKICAgICBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKik7CiB9OwogCitBTFdBWVNfSU5MSU5FIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpleGlzdGluZ1dyYXBw
ZXIoVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogaW1wbCkKK3sKKyAgICByZXR1
cm4gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KGltcGwpOworfQogCiB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6d3JhcChUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBpbXBsKQogewotICAgICAgICB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7CisgICAgICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGV4aXN0aW5nV3JhcHBlcihpbXBsKTsK
ICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB3cmFw
cGVyOwogICAgIHJldHVybiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6Ondy
YXBTbG93KGltcGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaApp
bmRleCBhOThhOTBlMTk3NTBhZGJmOTM2ZWRiNzY5NzFlMTcxNGE1YWRiNmVmLi43MWM0Mzc4MTMw
NWQyNTBjYzkzOGUyNTViODBhOGI2OTg3Yjg2OTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX3J1bnRpbWUuaApAQCAtMTIzLDcgKzEyMyw3IEBAIHByb3RlY3RlZDoKIHByaXZh
dGU6CiAgICAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
KiwgT2JqY0luc3RhbmNlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDRjZmMzODRhZTU1NjNkN2QxODNlNzFmZWQ3
ZDZhMDExZmQzNTI1NTkuLjliMDEyZDQ0OTE3ZDU0OTYxMDI2M2U5ZDkxZWZmMGI5ZWUwYWNlNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIwNSw3
ICsyMDUsNyBAQCB2b2lkIE9iamNGYWxsYmFja09iamVjdEltcDo6ZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogfQogCi1ib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvcGVydHlTbG90
JiBzbG90KQorYm9vbCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBl
eGVjLCBpZGVudGlmaWVyLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5z
dGFuY2UuY3BwCmluZGV4IDBkNjFhNjAyMjkwMmIwY2M2ZjU2NDkwMjI2ZTY0OTA1OWVhMzNiYjQu
LmFlNzRkYTlhYTAzZTljNTU4ZGQ0MGYxYjA2NmQxYzUzYjIzZjEzN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIFBhc3NSZWZQ
dHI8UXRJbnN0YW5jZT4gUXRJbnN0YW5jZTo6Z2V0UXRJbnN0YW5jZShRT2JqZWN0KiBvLCBQYXNz
UmVmUHRyPFJvb3RPYmplCiAKIGJvb2wgUXRJbnN0YW5jZTo6Z2V0T3duUHJvcGVydHlTbG90KEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIG9iamVjdC0+SlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogdm9pZCBRdEluc3RhbmNlOjpwdXQoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9y
dW50aW1lLmNwcAppbmRleCBjM2E3YTNkMGE2NWQwNTdhNDJkZWZiNDA0YjQwNjcxZjk4Njg1MzEw
Li43YzZlM2E0NGFhNDdhMTYyMWRkYzZhNTIwNDIzNjJlYWUwZDllNTY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCkBAIC0xNDk0LDcgKzE0OTQsNyBAQCBDYWxsVHlw
ZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2Fs
bERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIAotYm9vbCBRdFJ1bnRpbWVNZXRh
TWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgUXRSdW50aW1lTWV0
YU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJl
dHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KQEAgLTE3NDEsNyArMTc0MSw3IEBAIENhbGxUeXBlIFF0UnVudGltZUNvbm5lY3Rpb25NZXRo
b2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICByZXR1cm4g
Q2FsbFR5cGVIb3N0OwogfQogCi1ib29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9k
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKaW5kZXggOTgxOTdmNTk5ODI3NDQxOWMxMDJj
M2UzODU5Njk0M2I1ZmI2Njg1ZC4uYWE5ZDU4ZDhiNTVhMDMyNWIxNzM0NDhhYjRlNjBlZjZjNDNi
ZDI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCkBAIC0xNjQsNyArMTY0
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbWV0aG9kOwogICAgIH0KIAotICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUgKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRl
RG9udEVudW1Qcm9wZXJ0aWVzKTsKQEAgLTIwNSw3ICsyMDUsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBtZXRob2Q7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmly
dHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJy
YXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IDgwZTJhOGY5NTFlMWNl
NTNiMmYzNmE2ZmIxNTVjMjNiNDhlODg5YjguLmI2NDljNDdlMmYzOGJhZjViZjZhMzA2NzNmNjk0
YmE3OGY0ODIxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAg
LTc4LDcgKzc4LDcgQEAgdm9pZCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhl
Y1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGUKICAgICBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotYm9vbCBS
dW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBSdW50aW1l
QXJyYXk6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CkBAIC0xMjYsNyArMTI2LDcgQEAgYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHAKICAgICByZXR1cm4g
SlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IpOwogfQogCi1ib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSAqZXhlYywgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wg
UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqZXhlYywg
dW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3du
UHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGluZGV4LCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5oCmluZGV4IGEzZDQ0NThiNmI4OGQzM2M5NDMzZDYwOTkyNjhmMjRh
MzQwODI3ZGYuLmRhOTNjOTQ1ZDUxYTM3ZDNmODExMDJkNTRkZjhjNjhiYWFjOWI4MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtNTAsOSArNTAsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB+UnVudGltZUFycmF5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9u
TW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7Ci0gICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQsIFByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKaW5kZXggNTk1MzBhZTc3ZDY2Mzkz
MjJiMmI5ODhmMzA2YzZhMDBjMjY4ODgxNS4uY2E5MWI4ZDE1OGVlOTQ3M2IxODU4NGMyMGRlN2Zl
OTE4MDA5YjYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCkBA
IC02OSw3ICs2OSw3IEBAIEpTVmFsdWUgUnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNT
dGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpCiAgICAgcmV0dXJuIGpzTnVt
YmVyKHRoaXNPYmotPl9tZXRob2RMaXN0LT5hdCgwKS0+bnVtUGFyYW1ldGVycygpKTsKIH0KIAot
Ym9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wg
UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewog
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKaW5kZXggYzVmNjZh
NjJmNjFiODJjZTY5NTc5MzExMDUwMDlhYmNjMTA4MDRjNy4uMDg4NWRiZTZlMWQxZGE2NDdiOTkz
YWI0Y2ZlNWNkYTIyMzA1ODdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHN0YXRpYyBK
U1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVy
Jik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuY3BwCmluZGV4IDEzMzhjZjg2NWNlNGNmNGFiZGUwNmE5NGRhNDJmNzY0MTI0NDcxNmYu
LjliM2YwODFkMWM1OTQ3NWQ3YTg3ZDBkM2JmYzQxNWQ2ZjEwMDViNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIEpTVmFsdWUg
UnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90
QmFzZSwgY29uc3QgSWRlCiAgICAgcmV0dXJuIG1ldGhvZDsKIH0KIAotYm9vbCBSdW50aW1lT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgUnVudGltZU9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggMDY2ZDc3MzdlMzI0NjRlNTg2MjEx
ODVlNjRhNTczM2RiMWVlZGVmYy4uOGM1YjUwNWQ3NDI2N2I1ZTk4ODIwNDJiNTg0NDk0ZjQ4ZjM2
YmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UnVudGltZU9iamVjdCgpOwogCi0gICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCBmM2JmZmJjMDJmOTE5N2U3MjZiMjk4Nzc3YTFlYTQ3YjlkYWZlOWY4Li5mNjE2M2Y1M2YxNzc2
MDJiZGQ3ODEwYTgxYzE4NTVjMWFhMzBjZjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTEtMTAtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5
ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
YW1lZCB0aGUgdmlydHVhbCB2ZXJzaW9uIG9mIGdldE93blByb3BlcnR5U2xvdCB0byBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGluIHByZXBhcmF0aW9uIGZvciB3aGVuIHdlIGFk
ZCB0aGUgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCB0byB0aGUgTWV0aG9kVGFibGUgCisgICAg
ICAgIGluIENsYXNzSW5mby4KKworICAgICAgICBBbHNvIGFkZGVkIGEgZmV3IHN0YXRpYyBnZXRP
d25Qcm9wZXJ0eVNsb3QgZnVuY3Rpb25zIHdoZXJlIHRoZXkgaGFkIGJlZW4gb3Zlcmxvb2tlZCAK
KyAgICAgICAgYmVmb3JlIChlc3BlY2lhbGx5IGluIENvZGVHZW5lcmF0b3JKUy5wbSkuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisKIDIwMTEt
MTAtMTAgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVc2Ug
YSBDYWNoZWRJbWFnZUNsaWVudCBpbnN0ZWFkIG9mIENhY2hlZFJlc291cmNlQ2xpZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5jcHAKaW5kZXggNTNmNTg2MDFjMGE5NjY4MWM4NTQxOGJjZDM0ZGNhYjQyZTAwYTFm
NC4uNDZhYzM4ZjNiYzE0ZDNkMDNhNWYxZjQ1MjNhN2FhNTEwNmQ3OGVmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmNwcApAQCAtMjUyLDcgKzI1Miw3IEBAIENvbnN0cnVjdFR5cGUgSlNOUE9iamVjdDo6Z2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqIGNlbGwsIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjCiAgICAg
cmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwogfQogCi1ib29sIEpTTlBPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMjNm
ZmM4ZmM5MjMyZGIzNGFmMDIxM2NmNzNlNzFjYWUyOTc1NjE2MC4uNzc5Mzg2OTc3NmZhMTQ3YjAx
ODRlZTdiMDVjMmExODdiOWFhN2VlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCkBAIC04Myw3ICs4Myw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0M6OkNvbnN0cnVjdERhdGEmKTsKICAgICBzdGF0aWMgSlNDOjpDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNvbnN0cnVjdERhdGEmKTsKIAotICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwog
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OlB1dFByb3BlcnR5U2xvdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110534</attachid>
            <date>2011-10-11 10:32:03 -0700</date>
            <delta_ts>2011-10-11 14:08:18 -0700</delta_ts>
            <desc>Fix windows</desc>
            <filename>bug-69810-20111011103205.patch</filename>
            <type>text/plain</type>
            <size>168175</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxNjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggYTU2MDM1YjlhNGQzM2UyOTFiNTYwYTU2NzE2YzMwMmFh
ZWJhODM0YS4uNjM1ZDljZmQwNGFmMGU1ODFmNGEyMzFhODM3MzkxNWI5ZWU5NDBkMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE3OCw3ICsx
NzgsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05h
bWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAogICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAppbmRleCA4ZWUwNjA2MjdlYjQ2YmFhMjZkYWFkZTBkYzQyMTc5ZTdk
ZDVhY2JlLi5hZmIwZWNiNmUzNzdiN2U2N2U5ZTA3OWMzZjdiNDJhNTBiOGY0YzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaApAQCAtMTI0LDIwICsxMjQsMjcgQEAgVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmNsYXNzTmFtZSgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1ib29s
IEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KK2Jv
b2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CiAgICAgSlNDb250ZXh0UmVmIGN0
eCA9IHRvUmVmKGV4ZWMpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsK
KyAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYodGhpc09iamVjdCk7CiAgICAgUmVmUHRy
PE9wYXF1ZUpTU3RyaW5nPiBwcm9wZXJ0eU5hbWVSZWY7CiAgICAgCi0gICAgZm9yIChKU0NsYXNz
UmVmIGpzQ2xhc3MgPSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFy
ZW50Q2xhc3MpIHsKKyAgICBmb3IgKEpTQ2xhc3NSZWYganNDbGFzcyA9IHRoaXNPYmplY3QtPmNs
YXNzUmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNzLT5wYXJlbnRDbGFzcykgewogICAg
ICAgICAvLyBvcHRpb25hbCBvcHRpbWl6YXRpb24gdG8gYnlwYXNzIGdldFByb3BlcnR5IGluIGNh
c2VzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGtub3cgaWYgdGhlIHByb3BlcnR5IGV4aXN0cwogICAg
ICAgICBpZiAoSlNPYmplY3RIYXNQcm9wZXJ0eUNhbGxiYWNrIGhhc1Byb3BlcnR5ID0ganNDbGFz
cy0+aGFzUHJvcGVydHkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQogICAg
ICAgICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocHJv
cGVydHlOYW1lLnVzdHJpbmcoKSk7CiAgICAgICAgICAgICBBUElDYWxsYmFja1NoaW0gY2FsbGJh
Y2tTaGltKGV4ZWMpOwogICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KGN0eCwgdGhpc1JlZiwg
cHJvcGVydHlOYW1lUmVmLmdldCgpKSkgewotICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIGNhbGxiYWNrR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzT2JqZWN0LCBjYWxsYmFja0dldHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNh
bGxiYWNrIGdldFByb3BlcnR5ID0ganNDbGFzcy0+Z2V0UHJvcGVydHkpIHsKQEAgLTE2Miw3ICsx
NjksNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAgICAgICAgaWYgKE9w
YXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3Rh
dGljVmFsdWVzKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAoc3RhdGljVmFsdWVzLT5jb250YWlu
cyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBnZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgICAgIEpT
VmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0LT5nZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICBz
bG90LnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC0xNzIsMjAgKzE3OSwyMCBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAg
ICAgICAgaWYgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNGdW5jdGlvbnNUYWJsZSogc3RhdGljRnVuY3Rp
b25zID0ganNDbGFzcy0+c3RhdGljRnVuY3Rpb25zKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAo
c3RhdGljRnVuY3Rpb25zLT5jb250YWlucyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAg
ICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKTsKKyAg
ICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNGdW5jdGlvbkdl
dHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIHRl
bXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgUHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKGdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CisgICAgaWYgKGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBJZGVhbGx5IHdlIHNob3VsZCByZXR1
cm4gYW4gYWNjZXNzIGRlc2NyaXB0b3IsIGJ1dCByZXR1cm5pbmcgYSB2YWx1ZSBkZXNjcmlwdG9y
IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICghZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCkBAIC01OTYsNyArNjAzLDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZQogICAgIAog
ICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHkuCiAgICAgUHJvcGVy
dHlTbG90IHNsb3QyKHRoaXNPYmopOwotICAgIGlmICh0aGlzT2JqLT5QYXJlbnQ6OmdldE93blBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QyKSkKKyAgICBpZiAoUGFyZW50Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90MikpCiAg
ICAgICAgIHJldHVybiBzbG90Mi5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIAog
ICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iai0+Y2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA0NzJjYTk0ZGI5ODFmM2Q4YjAxYzc3MDI5NzMyNjM4YTdiNjkyOGFmLi45NzcwZGJm
ZWM1NmEwM2I1ZDUzYzYwOTJjOTY0YjUzMGJhNWQyZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDIgQEAKKzIwMTEtMTAtMTEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRv
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdmlydHVhbCB2ZXJzaW9uIG9mIGdldE93blBy
b3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGluIHByZXBh
cmF0aW9uIGZvciB3aGVuIHdlIGFkZCB0aGUgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCB0byB0
aGUgTWV0aG9kVGFibGUgCisgICAgICAgIGluIENsYXNzSW5mby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgZmV3IHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgZnVuY3Rpb25zIHdoZXJlIHRoZXkg
aGFkIGJlZW4gb3Zlcmxvb2tlZCAKKyAgICAgICAgYmVmb3JlIChlc3BlY2lhbGx5IGluIENvZGVH
ZW5lcmF0b3JKUy5wbSkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAg
ICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoSlNDOjo6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6Cisg
ICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6Omdl
dE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6QXJy
YXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwp
OgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L0Jvb2xlYW5Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90
b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpEYXRlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAg
ICAgIChKU0M6OkpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXku
Y3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToK
KyAgICAgICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6
CisgICAgICAgIChKU0M6OkpTQm91bmRGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50
aW1lL0pTQnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnB1dCk6CisgICAgICAg
ICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmpl
Y3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpT
dHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkpOgorICAgICAgICAoSlNDOjpK
U09OT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6V2Fs
a2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omhhc093blByb3BlcnR5KToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpmYXN0R2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmdldCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0
Lmg6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6OkpTU3Ry
aW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6OmdldFN0YXRpY1Byb3BlcnR5
U2xvdCk6CisgICAgICAgIChKU0M6OmdldFN0YXRpY0Z1bmN0aW9uU2xvdCk6CisgICAgICAgIChK
U0M6OmdldFN0YXRpY1ZhbHVlU2xvdCk6CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6
CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9y
Lmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlND
OjpPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAq
IHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmg6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwTWF0Y2hlc0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmpl
Y3QuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OlJlZ0V4cFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAg
ICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0
cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGlt
ZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6
CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaDoKKwogMjAxMS0xMC0xMSAg
R2F2aW4gQmFycmFjbG91Z2ggIDxiYXJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBTd2l0
Y2ggUmVnaXN0ZXJTaXplZEJvb2xlYW4vZGZnQ29udmVydEpTVmFsdWVUb0ludDMyIHJldHVybiB0
eXBlIHRvIHNpemVfdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5k
ZXggZmFhNWVjMjk1NmJjMWNjYzViM2E4N2U3ZDU5ZmMxY2M2YzI0MTMzNC4uMTgyZmY1YzZlZGIz
MzEwMzQ1OGUxNzQ5MmQ5ZGNiZjZmOTg4N2I2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCkBAIC0xNDgsOCArMTQ4LDYgQEAgX19aTjNKU0MxMlNtYWxsU3RyaW5n
czE3Y3JlYXRlRW1wdHlTdHJpbmdFUE5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0MxMlNtYWxs
U3RyaW5nczI3Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3RyaW5nRVBOU18xMkpTR2xvYmFsRGF0YUVo
CiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QxNGZpbmlzaENyZWF0aW9u
RVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTU3RyaW5nRQotX19aTjNKU0MxMlN0cmluZ09iamVj
dDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJO
U18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDMTJTdHJpbmdPYmplY3QxOGdldE93blByb3BlcnR5
U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxMlN0cmlu
Z09iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0
eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3Qy
NGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0M3B1dEVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9w
ZXJ0eVNsb3RFCkBAIC0xNjcsOCArMTY1LDkgQEAgX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTNj
bGVhclJhcmVEYXRhRVBOU182SlNDZWxsRQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTN2aXNp
dENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNKU0MxNEpTR2xv
YmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBOUzBfMThHbG9iYWxQcm9wZXJ0eUluZm9FaQog
X19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVqCi1fX1pOM0pTQzE0SlNHbG9iYWxPYmpl
Y3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVS
TlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3Bl
cnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNf
MTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNGdldE93blByb3BlcnR5
RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0
eURlc2NyaXB0b3JFCitfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNWdldE93blByb3BlcnR5U2xv
dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlT
bG90RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFICAKIF9fWk4zSlND
MTRKU0dsb2JhbE9iamVjdDRpbml0RVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxP
YmplY3Q2c19pbmZvRQpAQCAtMjYwLDggKzI1OSw4IEBAIF9fWk4zSlNDNkpTQ2VsbDExZ2V0Q2Fs
bERhdGFFUFMwX1JOU184Q2FsbERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVj
dERhdGFFUk5TXzEzQ29uc3RydWN0RGF0YUUKLV9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVy
dHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xv
dEUKLV9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpS
TlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzZKU0NlbGwyNWdldE93blByb3BlcnR5U2xvdFZp
cnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90
RQorX19aTjNKU0M2SlNDZWxsMjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0
YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUK
IF9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRSAgCiBfX1pO
M0pTQzZKU0NlbGw5Z2V0T2JqZWN0RXYKQEAgLTI4MCw3ICsyNzksNyBAQCBfX1pOM0pTQzdKU0Fy
cmF5MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNK
U0M3SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0M3
SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN0FyZ0xpc3RF
CiBfX1pOM0pTQzdKU0FycmF5MTVzZXRTdWJjbGFzc0RhdGFFUHYKLV9fWk4zSlNDN0pTQXJyYXkx
OGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQor
X19aTjNKU0M3SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhl
Y1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzdKU0FycmF5NnNfaW5mb0UKIF9f
Wk4zSlNDN0pTQXJyYXk5c2V0TGVuZ3RoRWoKIF9fWk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0ds
b2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCkBAIC0zMjMsMTIgKzMyMiwxMiBAQCBfX1pOM0pTQzhK
U09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFTlNfN0pTVmFsdQogX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185
RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRWpiUk5TXzE1UHV0UHJvcGVy
dHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0
YXRlRWpOU183SlNWYWx1ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90
RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCi1fX1pOM0pT
QzhKU09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9w
ZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4
ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9f
Wk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmpl
Y3QyMmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RFUk5TXzEyUHJvcGVydHlTbG90RVBOU18xNldyaXRl
QmFycmllckJhc2VJTlNfN1Vua25vd25FRUUKIF9fWk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0ZVBy
b3BlcnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERhdGFFbW0KIF9fWk4zSlNDOEpTT2JqZWN0MjRn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
Uk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQorX19aTjNKU0M4SlNPYmplY3QyNWdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4z
SlNDOEpTT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNW
YWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlF
eGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QzcHV0RVBOU182SlNDZWxs
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFBy
b3BlcnR5U2xvdEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYKaW5kZXggN2M3OTdkM2EzOGI3NjQzODkwNWUxMWRiMmVkMGZjOWI0OWZmYmJm
Yy4uMjA5MWZmMDAyYTI4NTA2Yzk2ODIwMjgyMGI4ZTAzYWEzNzg3YzQxOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTE5OSwx
NSArMTk5LDYgQEAgRVhQT1JUUwogICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTT2JqZWN0QEpT
Q0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlv
bk1vZGVAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTVmFyaWFibGVPYmplY3RASlND
QEBVQUVYUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVydHlOYW1lQXJyYXlAMkBXNEVudW1lcmF0aW9u
TW9kZUAyQEBaCiAgICAgP2dldE93blByb3BlcnR5TmFtZXNAU3RyaW5nT2JqZWN0QEpTQ0BAVUFF
WFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVA
MkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RASlNBcnJheUBKU0NAQFVBRV9OUEFWRXhlY1N0
YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEBKU0Nl
bGxASlNDQEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eVNs
b3RAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RASlNDZWxsQEpTQ0BARUFFX05QQVZFeGVj
U3RhdGVAMkBJQUFWUHJvcGVydHlTbG90QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpT
R2xvYmFsT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFW
UHJvcGVydHlTbG90QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTT2JqZWN0QEpTQ0BA
VUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90QDJAQFoKLSAgICA/Z2V0T3duUHJv
cGVydHlTbG90QEpTU3RyaW5nQEpTQ0BARUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVy
QDJAQUFWUHJvcGVydHlTbG90QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTU3RyaW5n
QEpTQ0BARUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90QDJAQFoKLSAgICA/Z2V0
T3duUHJvcGVydHlTbG90QFN0cmluZ09iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJW
SWRlbnRpZmllckAyQEFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xv
dEBTdHJpbmdPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RA
MkBAWgogICAgID9nZXRQcm9wZXJ0eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBRQUVfTlBBVkV4
ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAg
ID9nZXRQcm9wZXJ0eU5hbWVzQEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlBy
b3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgogICAgID9nZXRTbGljZUBB
cmdMaXN0QEpTQ0BAUUJFWEhBQVYxMkBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCAwY2Y5N2YyNTk3Nzk4NTYy
ZjM0NGM4NjY5ZGExZDdiY2E0YjlhYmFkLi40ZTkwNjgwYzgyYWRmYzdmMmJkZGQ2ZTc1ODUxOTMy
MTEyNDUzYzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIFVTdHJpbmcgRGVidWdn
ZXJBY3RpdmF0aW9uOjpjbGFzc05hbWUoKSBjb25zdAogICAgIHJldHVybiBtX2FjdGl2YXRpb24t
PmNsYXNzTmFtZSgpOwogfQogCi1ib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBEZWJ1Z2dlckFj
dGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2Fj
dGl2YXRpb24tPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3Rp
dmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CiAKIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckFjdGl2YXRpb24uaAppbmRleCA3YTU1YTdhMzk1ODRhZTdkOWJiNWFlOTRkY2EwMGQ1OWQ1
OTQ0OTk1Li40ZGVmMGViN2MwZTk1ZTU2OTUzYWI0OTcwMDc2OTM0OGE4NTY3NTJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5o
CkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyB2b2lk
IHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVhbCBV
U3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKaW5kZXggYzQ5NGRhMTMyYzJhMzA1OTQzMmYyMjIyMTRj
OTVjZjA0ZTljNGFiNS4uMzU1ZGQyMDM3NDU3MmQzYTAwMTViN2ZiZmM1MTc5MWE2NDBkNTk5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0xNDUs
NyArMTQ1LDcgQEAgdm9pZCBBcmd1bWVudHM6OmZpbGxBcmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywg
TWFya2VkQXJndW1lbnRCdWZmZXImIGFyZ3MpCiAgICAgfQogfQogCi1ib29sIEFyZ3VtZW50czo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlT
bG90JiBzbG90KQorYm9vbCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0
dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpLCBzbG90KTsKIH0KQEAgLTE4OCwz
NSArMTg4LDQxIEBAIHZvaWQgQXJndW1lbnRzOjpjcmVhdGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNl
c3NhcnkoRXhlY1N0YXRlKiBleGVjKQogICAgIGRlZmluZU93blByb3BlcnR5KGV4ZWMsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5jYWxsZWUsIGRlc2NyaXB0b3IsIGZhbHNlKTsKIH0KIAotYm9vbCBB
cmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBBcmd1bWVudHM6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jv
b2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQoreworICAgIEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+
KGNlbGwpOwogICAgIGJvb2wgaXNBcnJheUluZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0
eU5hbWUudG9BcnJheUluZGV4KGlzQXJyYXlJbmRleCk7Ci0gICAgaWYgKGlzQXJyYXlJbmRleCAm
JiBpIDwgZC0+bnVtQXJndW1lbnRzICYmICghZC0+ZGVsZXRlZEFyZ3VtZW50cyB8fCAhZC0+ZGVs
ZXRlZEFyZ3VtZW50c1tpXSkpIHsKLSAgICAgICAgaWYgKGkgPCBkLT5udW1QYXJhbWV0ZXJzKSB7
Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKGQtPnJlZ2lzdGVyc1tkLT5maXJzdFBhcmFtZXRl
ckluZGV4ICsgaV0uZ2V0KCkpOworICAgIGlmIChpc0FycmF5SW5kZXggJiYgaSA8IHRoaXNPYmpl
Y3QtPmQtPm51bUFyZ3VtZW50cyAmJiAoIXRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHMg
fHwgIXRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHNbaV0pKSB7CisgICAgICAgIGlmIChp
IDwgdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVycykgeworICAgICAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LT5kLT5yZWdpc3RlcnNbdGhpc09iamVjdC0+ZC0+Zmlyc3RQYXJhbWV0
ZXJJbmRleCArIGldLmdldCgpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzbG90LnNl
dFZhbHVlKGQtPmV4dHJhQXJndW1lbnRzW2kgLSBkLT5udW1QYXJhbWV0ZXJzXS5nZXQoKSk7Cisg
ICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QtPmQtPmV4dHJhQXJndW1lbnRzW2kg
LSB0aGlzT2JqZWN0LT5kLT5udW1QYXJhbWV0ZXJzXS5nZXQoKSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLmxlbmd0aCAmJiBMSUtFTFkoIWQtPm92ZXJyb2RlTGVuZ3RoKSkgewotICAgICAgICBzbG90
LnNldFZhbHVlKGpzTnVtYmVyKGQtPm51bUFyZ3VtZW50cykpOworICAgIGlmIChwcm9wZXJ0eU5h
bWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCAmJiBMSUtFTFkoIXRoaXNPYmplY3Qt
PmQtPm92ZXJyb2RlTGVuZ3RoKSkgeworICAgICAgICBzbG90LnNldFZhbHVlKGpzTnVtYmVyKHRo
aXNPYmplY3QtPmQtPm51bUFyZ3VtZW50cykpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUg
JiYgTElLRUxZKCFkLT5vdmVycm9kZUNhbGxlZSkpIHsKLSAgICAgICAgaWYgKCFkLT5pc1N0cmlj
dE1vZGUpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUoZC0+Y2FsbGVlLmdldCgpKTsKKyAg
ICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUgJiYgTElL
RUxZKCF0aGlzT2JqZWN0LT5kLT5vdmVycm9kZUNhbGxlZSkpIHsKKyAgICAgICAgaWYgKCF0aGlz
T2JqZWN0LT5kLT5pc1N0cmljdE1vZGUpIHsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdC0+ZC0+Y2FsbGVlLmdldCgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9Ci0gICAgICAgIGNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShleGVjKTsK
KyAgICAgICAgdGhpc09iamVjdC0+Y3JlYXRlU3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KGV4
ZWMpOwogICAgIH0KIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLmNhbGxlciAmJiBkLT5pc1N0cmljdE1vZGUpCi0gICAgICAgIGNyZWF0ZVN0cmljdE1vZGVD
YWxsZXJJZk5lY2Vzc2FyeShleGVjKTsKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5jYWxsZXIgJiYgdGhpc09iamVjdC0+ZC0+aXNTdHJpY3RNb2RlKQorICAg
ICAgICB0aGlzT2JqZWN0LT5jcmVhdGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhlYyk7
CiAKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgQXJndW1lbnRz
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggNmIxZmEwODhiYjU3N2Iy
OTc1NDMzZTI1MTU2MWE5OGE3ZjY3NDlkNi4uYjU4Zjk1N2E2ZTJkZTM0ZGQwMjhhMWRkMGVhMDky
MDExYTQ0NjcxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgK
QEAgLTEyNCw5ICsxMjQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIHZvaWQgZ2V0QXJndW1lbnRzRGF0YShDYWxsRnJhbWUqLCBKU0Z1bmN0aW9uKiYsIHB0cmRp
ZmZfdCYgZmlyc3RQYXJhbWV0ZXJJbmRleCwgUmVnaXN0ZXIqJiBhcmd2LCBpbnQmIGFyZ2MpOwot
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAppbmRleCBmNTU0ZTQxYTRmY2Fm
ZjllOTAyOTM2Nzk2MDk1YmJmYTFlYTRkYzE3Li4xOGM5NjlkYzM3NjZkZjQ0YTA5NzAwZTZiYTY0
NmYyYWIxMTY3MDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheUNvbnN0cnVjdG9yLmNwcApAQCAtNjMsOSArNjMsMTQgQEAgdm9pZCBBcnJheUNvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEFycmF5UHJvdG90eXBlKiBhcnJh
eVByb3QKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCks
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERv
bnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIEFycmF5Q29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVu
Y3Rpb25TbG90PEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlDb25zdHJ1
Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwor
Ym9vbCBBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90ICZzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SW50ZXJuYWxG
dW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjphcnJheUNvbnN0cnVjdG9yVGFibGUoZXhlYyksIHN0
YXRpY19jYXN0PEFycmF5Q29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KIAogYm9vbCBBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVz
Y3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuaAppbmRleCAwZWEzZTQyYmNkMjE5MTNiNjgzOGQyNmVhYjAxNTMx
Yzk1Mzg3YWFhLi5hZmY3MWJlOGI0ZTgxY2RlNGU5YTIyMzIxZjQyNzI2ZDc5NzkxYzk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCkBA
IC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
QXJyYXlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwotICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IGNmMTYxNjAzYTM0ZjE1OTMzNmJjMzk1
ZTdkZDgyNDlhMWY1N2VjZWQuLjg5ZWNhYTk5NGYxNWMwNjg3ZDk4ZGI2ZmM3NWM2MjA0NTQyNjAw
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiB9CiAKLWJvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQorYm9vbCBBcnJheVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5oCmluZGV4IDljODYwYzZjNDNlOWZhOTM4YThmYTFlN2ZjYjU2
MjlkMmI5MmYzODIuLmIyM2M3NjYzNjUyYTE0ZWVmMjk2N2NiN2E4MWIxODQ3OTdlYWJhNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApAQCAt
NDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBwcm90b3R5
cGU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFu
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90
b3R5cGUuY3BwCmluZGV4IGU3NDhkZTJiMTliNTg3YTNkYmZkN2MyOGMyNmY3NmY0YWZhNDFjODUu
Ljc2MDlkNGU3NThjMDFhNjk3ZWNmZTg3MzE2Nzc2MWE1M2I5MDE0M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCkBAIC02Miw3
ICs2Miw3IEBAIHZvaWQgQm9vbGVhblByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsK
IH0KIAotYm9vbCBCb29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xv
dCkKK2Jvb2wgQm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Qcm90b3R5cGUuaAppbmRleCBiMGI0ZjU1MGVmMjkzODY2YTA1N2UxMjU0YzFhZTA1
ZmY0ZTBhNDZmLi43MDdhN2VmMDkwZWM3NjlmYzNhMjEwNjM4ODI1NTMyYzJlMDNjNTVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oCkBA
IC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
Qm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmluZGV4IGY0NDBhNjRiZmE1ZjY1MzBjZGNlZjc0MmQ5
M2RkY2NlYTJhYTEzMjEuLjFkZGY2ZjAwNjc2ZjI3YzBiMjUxZWY3MmQ1NTBiMmY1ZjFkNWY4ZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9y
LmNwcApAQCAtODUsNyArODUsNyBAQCB2b2lkIERhdGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oRXhlY1N0YXRlKiBleGVjLCBEYXRlUHJvdG90eXBlKiBkYXRlUHJvdG90eQogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlO
YW1lcygpLmxlbmd0aCwganNOdW1iZXIoNyksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVs
ZXRlKTsKIH0KIAotYm9vbCBEYXRlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
ICZzbG90KQorYm9vbCBEYXRlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCmluZGV4IGY4MzdkNjZhYWVkMWMzYmJiZWUzOWI3ZDIwNjVj
ZGNlZTQ4M2IyMjEuLjNmM2I2NjEyY2E5YzdkNWQzZjllZGIyMzQzNDc3ZDliZGNkYzMxNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCkBA
IC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgQ29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKICAgICAgICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggYTY4ZjQ4MzhiYjA2MjY1Yzk3YmMw
NDY0MmRmMWM5NDY3N2M4YTgwNy4uYzY4YjJkMjMzYTczYmNlNDRhNWQyNDMxYTRlNTE1OTlhZGQz
ZGM0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIERhdGVQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogICAgIC8vIFRoZSBjb25zdHJ1
Y3RvciB3aWxsIGJlIGFkZGVkIGxhdGVyLCBhZnRlciBEYXRlQ29uc3RydWN0b3IgaGFzIGJlZW4g
YnVpbHQuCiB9CiAKLWJvb2wgRGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCitib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlUHJvdG90eXBlLmgKaW5kZXggNzIwNTI2MmQyOWI0ODc4YmJhZTA3NDQyYTI1ZTQ0YzRmZGU3
MGE2OC4uZGRkNjU0YjdhMjhkMDdkYzk5ZGMzM2Y1YmU2MGZiOWU0ODlhY2Y3MiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaApAQCAtNDAsNyArNDAs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHByb3RvdHlwZS0+ZmluaXNoQ3JlYXRp
b24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAg
ICAgICAgIH0KLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAppbmRleCA0Mzlk
OWE4MzE0N2Y4ZjAxNGQ3NDZjZmY3ZDgzMmVlZmZhNGM1MmQzLi5hOGE5NTgxOGE4NDE5YWE0ZTJm
NTYyOWEzZWVlMWNmMjQwYTQ0MTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgRXJyb3JQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQog
ICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5u
YW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKIH0KIAot
Ym9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29s
IEVycm9yUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7
CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90
eXBlLmgKaW5kZXggNjVmM2ZmZjVmNmUwZmQzNTE2NWQ1M2U5YmIzYTI1MTk1Y2MxMWY3OS4uZjYy
ZGQ1NTEzOWZhNDE5MTFmYmNjNjI5MjlmNzdkNDMzMDg3ZjVlZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCkBAIC01Miw3ICs1Miw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBFcnJvckluc3RhbmNlOjpTdHJ1Y3R1
cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcAppbmRleCA5MGY5MTEwOTQ0ZTE0MTQ1MjEzZDNkMGU5ZTVkYzIxMzZlZGMzNmE4Li4x
YTMyYWZkZDZlM2MyOTA1ZGIxZDMyNDhjZDNjOGNjOWM5YTRlMDg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKQEAgLTE0MSw3ICsxNDEsNyBA
QCBpbmxpbmUgYm9vbCBKU0FjdGl2YXRpb246OnN5bWJvbFRhYmxlUHV0V2l0aEF0dHJpYnV0ZXMo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpT
QWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQWN0aXZh
dGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKaW5kZXggN2Jl
ZDI5ZmQzMGMwYjU2ZmMyMjdjZTM4ZjYyM2IwOWI5MWMxMzNjYi4uMjNiOTdkNmMyZGIyNDlkYTFh
MzdhNjVkMmQxZmY5YmI2NDc1ZDA3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmgKQEAgLTYxLDcgKzYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgdmlydHVhbCBib29sIGlzQWN0aXZhdGlvbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggMjE3M2ZmMTZkODRhM2U1ZTk1YzBiNTRlYTY0
Zjg0YWRhMTUxYzQxNC4uZjlmNmM1MjAwZGZlMzQ1MDg1N2VjZDVmZTk1ZTM1NWVkZGEzNWJkMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTI0NSw3ICsy
NDUsNyBAQCBKU0FycmF5Ojp+SlNBcnJheSgpCiAgICAgZmFzdEZyZWUobV9zdG9yYWdlLT5tX2Fs
bG9jQmFzZSk7CiB9CiAKLWJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0FycmF5Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJv
cGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgaSwgc2xvdCk7CiB9CkBAIC0yNTcsNyArMjU3LDcgQEAgYm9vbCBKU0FycmF5OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGks
IFByb3AKICAgICAKICAgICBpZiAoaSA+PSBzdG9yYWdlLT5tX2xlbmd0aCkgewogICAgICAgICBp
ZiAoaSA+IE1BWF9BUlJBWV9JTkRFWCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqZWN0LT5n
ZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7
CisgICAgICAgICAgICByZXR1cm4gdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpLCBzbG90KTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIApAQCAtMjgwLDcgKzI4MCw3IEBAIGJvb2wgSlNBcnJheTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBQ
cm9wCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwg
ZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7CiB9CiAKLWJvb2wgSlNBcnJh
eTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggZGJmYzE3MTE0MjU4YTEzNzgyMTg0M2NiOTU3
OGIzYTljZGQxNmQzOC4uOWFkOTU0MGIxMmExMmFmNTVmMzU0ODEyODgxZWY2NGRlMDVhMzQ4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtOTQsOSArOTQsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQog
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHBy
b3RlY3RlZCBhbmQgYWRkIHNldEl0ZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAppbmRleCA3MWVkMzgwYTIzNjc5N2ZkNmU2ZWQ4NGMx
MDZlZWJhM2ZhZThmNTdiLi4wMjQ4N2Q4MzlhMzM5YWZmYTczOWEyZTUyNzYyYjBhZjE5MzU1MDc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlv
bi5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgYm9vbCBKU0JvdW5kRnVuY3Rpb246Omhhc0luc3RhbmNl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSkKICAgICByZXR1cm4gbV90
YXJnZXRGdW5jdGlvbi0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIHByb3RvKTsKIH0KIAotYm9v
bCBKU0JvdW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U0JvdW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5j
dGlvbi5oCmluZGV4IGNjNTE2OTM3NjFmYWM4OTRkMDkwM2MwYjFjZTI5NWZkMWY1OTBiYTMuLmI0
NWUyZDliYWI2NWE0MDgzMmE2ZjJmMDgxOTJjY2IyZDNiZmVjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCkBAIC0zOSw3ICszOSw3IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0JvdW5kRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlvbiwgSlNWYWx1ZSBib3Vu
ZFRoaXMsIEpTVmFsdWUgYm91bmRBcmdzLCBpbnQsIGNvbnN0IElkZW50aWZpZXImKTsKIAotICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5
dGVBcnJheS5jcHAKaW5kZXggOGFiNDcyNmUzZWExZjVmOTEwMGYwYjQwNjIxZjMxNDc3YmQ2Mzk2
YS4uNTE1NzEwM2VkZmE1YjdmODA2MTQxZTI0ZTAyMDY2NTMwZWU1YjgzOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtNTQsNyArNTQsNyBA
QCBTdHJ1Y3R1cmUqIEpTQnl0ZUFycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBjbGFzc0luZm8pOwogfQogCi1ib29sIEpTQnl0ZUFycmF5OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CkBAIC04Miw3ICs4Miw3IEBA
IGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotYm9v
bCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQnl0ZUFycmF5Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5
U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggNDBmMGFhMWE3YjdhNGFlNmY1MzAy
NjU0MmQxNzk0NWE2NTUxZGYxMC4uNGRmMzY2YjE4NWNkNzIyZjk2NGZhZDhhZDJkMzVkNWI0ODcx
YTZkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBA
IC04OCw5ICs4OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpTVmFs
dWUgcHJvdG90eXBlLCBjb25zdCBKU0M6OkNsYXNzSW5mbyogPSAmc19pbmZvKTsKIAotICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCos
IEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpT
Qzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBK
U0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKaW5kZXggODk3M2RjMzAwNDRmYmZmNzhm
MGYwNjM2MjM4YjlmOGJlMzllOTc5MS4uNjNhNjlkZTZmOWUxNDIzNDkwNzg4ZmYwMzQyY2Q0OTM1
NGQ0ZjE5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxs
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC02
OSw3ICs2OSw3IEBAIENvbnN0cnVjdFR5cGUgSlNDZWxsOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2Vs
bCosIENvbnN0cnVjdERhdGEmKQogICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlTm9uZTsKIH0KIAot
Ym9vbCBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNDZWxsOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaWRlbnRpZmllciwgc2xvdCk7CiB9CkBAIC04Niw3ICs4
Niw3IEBAIGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBp
ZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuaAppbmRleCAyM2YwZmQ1YzBmYWY3NTQ5ZmU3NjA4ZTBlNGViMGY1M2YzMjA2YmU3Li5lYTI3
MmRmYTkzMTI5N2MwMWY2Y2RiZDhhZTUyY2IzZmJjZDYzZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaApAQCAtMTM1LDkgKzEzNSw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gQmFzZSBpbXBsZW1lbnRhdGlvbjsgZm9yIG5vbi1v
YmplY3QgY2xhc3NlcyBpbXBsZW1lbnRzIGdldFByb3BlcnR5U2xvdC4KLSAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgCiAgICAgICAgIFdyaXRlQmFycmllcjxT
dHJ1Y3R1cmU+IG1fc3RydWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcAppbmRleCA0OTMzMzA0NmNkNzliODk4NWRkNzVmY2FmZTViMTZjYTdlNDNj
YTI1Li40MzAyNjlhMzZiNGU1NzJmMmNmZDk3YWI3YzViOTZjMWFhM2MzNGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMTk3LDcgKzE5Nyw3
IEBAIEpTVmFsdWUgSlNGdW5jdGlvbjo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUg
c2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImCiAgICAgcmV0dXJuIGpzTnVtYmVyKHRoaXNPYmot
PmpzRXhlY3V0YWJsZSgpLT5wYXJhbWV0ZXJDb3VudCgpKTsKIH0KIAotYm9vbCBKU0Z1bmN0aW9u
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTI1OCw3ICsy
NTgsNyBAQCBib29sIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBybwogICAgIAogICAgIGlmIChwcm9wZXJ0eU5h
bWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSkgewogICAgICAgICBQcm9wZXJ0
eVNsb3Qgc2xvdDsKLSAgICAgICAgZ2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CisgICAgICAgIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKICAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgIH0KICAgICAKQEAgLTI5
MSw3ICsyOTEsNyBAQCB2b2lkIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydAogICAgIGlmICghaXNIb3N0RnVu
Y3Rpb24oKSAmJiAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKSkgewogICAgICAg
ICAvLyBNYWtlIHN1cmUgcHJvdG90eXBlIGhhcyBiZWVuIHJlaWZpZWQuCiAgICAgICAgIFByb3Bl
cnR5U2xvdCBzbG90OwotICAgICAgICBnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgZXhlYy0+cHJv
cGVydHlOYW1lcygpLnByb3RvdHlwZSwgc2xvdCk7CisgICAgICAgIGdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgc2xvdCk7CiAK
ICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50
cyk7CiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxs
ZXIpOwpAQCAtMzE2LDcgKzMxNiw3IEBAIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hCiAgICAgICAg
IC8vIE1ha2Ugc3VyZSBwcm90b3R5cGUgaGFzIGJlZW4gcmVpZmllZCwgc3VjaCB0aGF0IGl0IGNh
biBvbmx5IGJlIG92ZXJ3cml0dGVuCiAgICAgICAgIC8vIGZvbGxvd2luZyB0aGUgcnVsZXMgc2V0
IG91dCBpbiBFQ01BLTI2MiA4LjEyLjkuCiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAg
ICAgICB0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICAgICAgdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIH0KICAgICBpZiAodGhpc09iamVjdC0+anNFeGVj
dXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7CiAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDliOWRhOWNlOWZhYjc1NDcxZGE4Y2Y5YWMxN2Zm
YmMwZDc3M2JjMzYuLmUzNWIxN2U0NzUxNjgzY2M2OGY5NjliOWQyODk4MjdmYzI1YmFmYzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTEzMSw3ICsx
MzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqLCBOYXRpdmVFeGVjdXRhYmxlKiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYg
bmFtZSk7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgRnVuY3Rpb25F
eGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgPSBFeGNsdWRlRG9u
dEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAppbmRleCAwZmU0MzZkYjcyY2QwNjQwYjM4NTgyMDVmYTQxYjk0MDNl
OGY0MDMwLi45MmRmZGMwYzIwZGRmYWFjOWI5NDA0M2Y2NjcyMjk1N2ExNmExY2Y3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC00
MjMsNyArNDIzLDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6YWRkU3RhdGljR2xvYmFscyhHbG9i
YWxQcm9wZXJ0eUluZm8qIGdsb2JhbHMsIGludCBjb3VudCkKICAgICB9CiB9CiAKLWJvb2wgSlNH
bG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0dsb2Jh
bE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJl
dHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmlu
ZGV4IDExNWQ1Y2I2YmQ5NTQ4MzczYWFjZTgwMTM4YzhlYWYyNjNhM2E2NzguLmIwZmU0NzQ2OTc0
YTdiZDc3ZDc5OTk5MTExMDA0YjA1ZjdiNDEyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTgwLDcgKzE4MCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xv
dFZpc2l0b3ImKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGhhc093blByb3BlcnR5Rm9yV3JpdGUoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYpOwpAQCAtMzQyLDcgKzM0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGlu
bGluZSBib29sIEpTR2xvYmFsT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAg
UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIGlmIChKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKEpTVmFy
aWFibGVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGJvb2wgc2xvdElzV3Jp
dGVhYmxlOwogICAgICAgICByZXR1cm4gc3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90
LCBzbG90SXNXcml0ZWFibGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmNwcAppbmRleCBlMTRhNjhiZDk0ZmExNGVlMGNkNjRkMGYzNDI3YWEyY2M0
NmRiOWQ5Li4wNzJkODI1NmZkNjc4NjMyOTM3ZmRjM2Q2MTZmZjBiMjQzZmM4NWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApAQCAtNTcs
NyArNTcsNyBAQCBVU3RyaW5nIEpTTm90QW5PYmplY3Q6OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKICAgICByZXR1cm4gIiI7CiB9CiAKLWJvb2wgSlNOb3RBbk9iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmll
ciwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmll
ciwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpcywgZXhlYywgaWRlbnRpZmllciwgc2xvdCk7CiB9CkBAIC02OSw3ICs2OSw3IEBAIGJvb2wg
SlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEpTTm90QW5P
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IGI4ZjBmYWE4NTYyMjYyM2MyMDc5Yzlj
OWM3MTM3ZDdkN2IyODUxZjcuLjA2Nzg4NzE0OTQxMTFhOTliMTMyNDNiZjI3NTBmNWI1YTM4ZDA3
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgK
QEAgLTcwLDkgKzcwLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgVVN0cmlu
ZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgICAgICAvLyBKU09iamVjdCBtZXRo
b2RzCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGQzZmMzNTk5MzFlMDE2OTEwODc1ZmM4ODljYmNm
YzI4ODVjM2NjM2UuLjU1YWNlOTBlZDM3MTk2MzQ4ZTgxZTQwNzM0M2I4YmRhMzFkODY0MWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC01MjMs
NyArNTIzLDcgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHko
U3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBVU3RyaW5nQnUKICAgICAgICAgICAgIHZhbHVlID0g
YXNBcnJheShtX29iamVjdC5nZXQoKSktPmdldEluZGV4KGluZGV4KTsKICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChtX29iamVjdC5nZXQoKSk7Ci0gICAgICAg
ICAgICBpZiAoIW1fb2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgaW5kZXgsIHNsb3Qp
KQorICAgICAgICAgICAgaWYgKCFtX29iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChl
eGVjLCBpbmRleCwgc2xvdCkpCiAgICAgICAgICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsK
ICAgICAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC01NDEsNyArNTQxLDcgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVy
OjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBVU3RyaW5nQnUK
ICAgICAgICAgLy8gR2V0IHRoZSB2YWx1ZS4KICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QobV9v
YmplY3QuZ2V0KCkpOwogICAgICAgICBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUgPSBtX3Byb3Bl
cnR5TmFtZXMtPnByb3BlcnR5TmFtZVZlY3RvcigpW2luZGV4XTsKLSAgICAgICAgaWYgKCFtX29i
amVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAg
ICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBKU1ZhbHVl
IHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCkBAIC01OTgsNyArNTk4LDcgQEAgY29uc3QgQ2xhc3NJbmZv
IEpTT05PYmplY3Q6OnNfaW5mbyA9IHsgIkpTT04iLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZv
LCAwLCBFeGUKIAogLy8gRUNNQSAxNS44CiAKLWJvb2wgSlNPTk9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTT05PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CkBAIC02OTMsNyArNjkzLDcgQEAgTkVWRVJf
SU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAg
ICAgICAgICAgICAgaW5WYWx1ZSA9IGFycmF5LT5nZXRJbmRleChpbmRleCk7CiAgICAgICAgICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAg
ICAgICAgICAgICAgICAgICBpZiAoYXJyYXktPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIGlu
ZGV4LCBzbG90KSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFycmF5LT5nZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKG1fZXhlYywgaW5kZXgsIHNsb3QpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgaW5WYWx1ZSA9IHNsb3QuZ2V0VmFsdWUobV9leGVjLCBpbmRleCk7CiAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBqc1VuZGVmaW5l
ZCgpOwpAQCAtNzU1LDcgKzc1NSw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2Fs
ayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAg
ICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QobV9leGVjLCBwcm9wZXJ0aWVz
W2luZGV4XSwgc2xvdCkpCisgICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChtX2V4ZWMsIHByb3BlcnRpZXNbaW5kZXhdLCBzbG90KSkKICAgICAgICAg
ICAgICAgICAgICAgaW5WYWx1ZSA9IHNsb3QuZ2V0VmFsdWUobV9leGVjLCBwcm9wZXJ0aWVzW2lu
ZGV4XSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBpblZhbHVl
ID0ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuaAppbmRleCAyOGQyODYyZjhkNGE1YzA4ZTgzNmQzNThiMTY3Y2NlZjM2NmNlMjViLi40ODdm
Y2YwZmUyZDcyODRlNGMxOTU3MTFjMTc1YzgyYzVjYWNkYWE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgSlNPTk9iamVjdChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IGFhY2VjNmQ0Mzc2
NzBlYTNmYTAxMDAzZDc4ZWEwNzMzZTQ5ZTBlNGQuLjVjNDQ1OGM3N2VmMzg4M2VkODE3ZjUxM2M1
ODZmYjA0YmI1ZjE2ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAKQEAgLTkzLDE0ICs5MywxNCBAQCBVU3RyaW5nIEpTT2JqZWN0OjpjbGFzc05hbWUoKSBj
b25zdAogICAgIHJldHVybiBpbmZvLT5jbGFzc05hbWU7CiB9CiAKLWJvb2wgSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihj
ZWxsKS0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJv
cGVydHlOYW1lKSwgc2xvdCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2Vs
bCktPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVj
LCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKIH0KIAogc3RhdGljIHZvaWQgdGhyb3dTZXR0ZXJFcnJv
cihFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yNzcsNyArMjc3LDcgQEAgYm9vbCBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHAKIGJvb2wgSlNPYmplY3Q6Omhhc093blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKSBjb25zdAogewogICAgIFByb3BlcnR5U2xvdCBz
bG90OwotICAgIHJldHVybiBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldE93blByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBjb25zdF9jYXN0
PEpTT2JqZWN0Kj4odGhpcyktPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCAzYWQ3MGM1MGFhZDYxYWQzN2ZjYzJmYTliOTA0YTcwYjM3
ZmYzM2IyLi5hODI0MjU2OTJmZGRhNDdiYTAzMmM5OWNkY2UxMjJiNzA3OGJhZDIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEwMSw5ICsxMDEsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgYm9vbCBnZXRQ
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApA
QCAtNTIxLDcgKzUyMSw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6aW5saW5lR2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1BTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQorQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtNTM4LDcgKzUzOCw3IEBA
IEFMV0FZU19JTkxJTkUgYm9vbCBKU0NlbGw6OmZhc3RHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmCiB7CiAgICAgaWYgKCFzdHJ1Y3R1cmUoKS0+dHlwZUlu
Zm8oKS5vdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoKSkKICAgICAgICAgcmV0dXJuIGFzT2Jq
ZWN0KHRoaXMpLT5pbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAogLy8gRmFzdCBjYWxsIHRvIGdldCBhIHByb3BlcnR5IHdoZXJl
IHdlIG1heSBub3QgeWV0IGhhdmUgY29udmVydGVkIHRoZSBzdHJpbmcgdG8gYW4KQEAgLTU3Niw3
ICs1NzYsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TgogewogICAgIEpTT2JqZWN0KiBvYmpl
Y3QgPSB0aGlzOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChvYmplY3QtPmdldE93
blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAob2Jq
ZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBv
YmplY3QtPnByb3RvdHlwZSgpOwogICAgICAgICBpZiAoIXByb3RvdHlwZS5pc09iamVjdCgpKQpA
QCAtNzk3LDcgKzc5Nyw3IEBAIGlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90CiAgICAgfQogICAgIEpT
Q2VsbCogY2VsbCA9IGNvbnN0X2Nhc3Q8SlNDZWxsKj4oYXNDZWxsKCkpOwogICAgIHdoaWxlICh0
cnVlKSB7Ci0gICAgICAgIGlmIChjZWxsLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKGNlbGwtPmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiBzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0g
YXNPYmplY3QoY2VsbCktPnByb3RvdHlwZSgpOwogICAgICAgICBpZiAoIXByb3RvdHlwZS5pc09i
amVjdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRp
Y1Njb3BlT2JqZWN0LmNwcAppbmRleCA4ZDBmZGE5MDM3MzIyZGYxNzMwNjVkYzYxY2M5MTRlNTMw
MDdiZjAyLi4yMmU2YWZjZGRkNjg1YmExMjM1ZDhiZGM2MWU5ZGExZDIwZGVkYzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0
LmNwcApAQCAtOTEsNyArOTEsNyBAQCBib29sIEpTU3RhdGljU2NvcGVPYmplY3Q6OmlzRHluYW1p
Y1Njb3BlKGJvb2wmKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU1N0YXRp
Y1Njb3BlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNTdGF0
aWNTY29wZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Rh
dGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGlj
U2NvcGVPYmplY3QuaAppbmRleCBkYzI4Nzc5NWRkOWYxNjA0ZjZiNTFmMjQ2YjZjYTkyZWY5OGEx
ODA1Li5hOTBkZGQ1YzY5MWJlOTgwYzkxODYyMjZiOTYzZDBhN2E3OGJjOGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBA
IC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICAgICAgYm9vbCBpc0R5bmFtaWNT
Y29wZShib29sJiByZXF1aXJlc0R5bmFtaWNDaGVja3MpIGNvbnN0OwogICAgICAgICB2aXJ0dWFs
IEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCmluZGV4IGM3M2Y0YTJlZTJjODU3NWZiMGQw
NDg5YjhkNjM4ZTAwYWIxM2I1YjEuLjI3ODc2MzdhYTJkMWU5ZTY1NDIzZmE5YmYzMzk5ZmE0MDcy
NTEwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKQEAg
LTMxMyw3ICszMTMsNyBAQCBKU09iamVjdCogSlNTdHJpbmc6OnRvVGhpc09iamVjdChFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZ09iamVjdDo6Y3JlYXRlKGV4ZWMsIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgY29uc3RfY2FzdDxKU1N0cmluZyo+KHRoaXMpKTsK
IH0KIAotYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29s
IEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQpAQCAtMzMzLDcgKzMzMyw3IEBAIGJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllCiAgICAgSlNP
YmplY3QqIG9iamVjdDsKICAgICBmb3IgKEpTVmFsdWUgcHJvdG90eXBlID0gZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5zdHJpbmdQcm90b3R5cGUoKTsgIXByb3RvdHlwZS5pc051bGwoKTsg
cHJvdG90eXBlID0gb2JqZWN0LT5wcm90b3R5cGUoKSkgewogICAgICAgICBvYmplY3QgPSBhc09i
amVjdChwcm90b3R5cGUpOwotICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3Qo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CkBAIC0zNjcsNyAr
MzY3LDcgQEAgYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTU3RyaW5nOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggNzIwZDYyYmQ2Y2YzMjczMTE1ZjYyZjJlMzgxNDAx
OTRkYmNiODhlZi4uZDgyMTVlMmVlNTQ3MjdjNGQwYjg4ODE4NDFkNzIwZGEzMmZiOWFhMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC01MDcsOSArNTA3LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVj
dChFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgICAgICAvLyBBY3R1YWxseSBnZXRQcm9wZXJ0eVNs
b3QsIG5vdCBnZXRPd25Qcm9wZXJ0eVNsb3QgKHNlZSBKU0NlbGwpLgotICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9v
a3VwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAppbmRleCA3ODJk
YzBmYmM3MGM4M2E5MmFlMTBmMTA0OWFmZmRjMDMyNjk4ODFjLi5hNmQ0OGJkOGRjMGU5ZjQwNDU4
MzAwOTA4MGQwOGZlNWMzMDUzODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Mb29rdXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29r
dXAuaApAQCAtMjEzLDcgKzIxMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBI
YXNoRW50cnkqIGVudHJ5ID0gdGFibGUtPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAKICAg
ICAgICAgaWYgKCFlbnRyeSkgLy8gbm90IGZvdW5kLCBmb3J3YXJkIHRvIHBhcmVudAotICAgICAg
ICAgICAgcmV0dXJuIHRoaXNPYmotPlBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgICAgICByZXR1cm4gUGFyZW50SW1wOjpnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAg
ICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKQogICAgICAgICAgICAgc2V0
VXBTdGF0aWNGdW5jdGlvblNsb3QoZXhlYywgZW50cnksIHRoaXNPYmosIHByb3BlcnR5TmFtZSwg
c2xvdCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgdGVtcGxhdGUg
PGNsYXNzIFBhcmVudEltcD4KICAgICBpbmxpbmUgYm9vbCBnZXRTdGF0aWNGdW5jdGlvblNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBIYXNoVGFibGUqIHRhYmxlLCBKU09iamVjdCogdGhpc09i
aiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiAg
ICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8UGFyZW50SW1wKj4odGhpc09iaiktPlBhcmVu
dEltcDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAg
ICAgIGlmIChQYXJlbnRJbXA6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgY29u
c3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwpA
QCAtMjkxLDcgKzI5MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBIYXNoRW50
cnkqIGVudHJ5ID0gdGFibGUtPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAKICAgICAgICAg
aWYgKCFlbnRyeSkgLy8gbm90IGZvdW5kLCBmb3J3YXJkIHRvIHBhcmVudAotICAgICAgICAgICAg
cmV0dXJuIHRoaXNPYmotPlBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgICAgICAgICByZXR1cm4gUGFyZW50SW1wOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAgICAgICBB
U1NFUlQoIShlbnRyeS0+YXR0cmlidXRlcygpICYgRnVuY3Rpb24pKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAppbmRleCA3OWZlZWU3ZTE5ZWRlMmZm
MTAzYzA2MDNmZDRhOTdlZmEwMGViNmEzLi42MjRmNGRkYmJkM2U5MDcwNzY4ZWMxZmU5M2Q5MTMw
NzljNWVjZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRo
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24o
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgSWRlbnRpZmllcihleGVj
LCAiU1FSVDIiKSwganNOdW1iZXIoc3FydCgyLjApKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwg
UmVhZE9ubHkpOwogfQogCi1ib29sIE1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
ICZzbG90KQorYm9vbCBNYXRoT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qg
JnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWF0aE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9i
amVjdC5oCmluZGV4IDJlMmQ3MmRlYmY0ODBkN2NmZTI3NDA0ZDc2MzliNDljZTVkNDg0MGIuLjI0
MjRhNzFlNWVlOWUxYjc0NTQwOTcxZjhhN2RmODI1YmIxNzUwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9i
amVjdCk7CiAgICAgICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgICAgICB9Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2M2NWU5ZjA4ZmUzZGM0MTJh
Y2IwM2NhNTZiNGM1MGM3MDE2YjQ4Ny4uNTRhZmJkOGM3NmRjNTEwOGIyYWIzZWQ0ZTRjMzQyMzBm
MWYyZTU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
ckNvbnN0cnVjdG9yLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIE51bWJlckNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIE51bWJlclByb3RvdHlwZSogbnVtYmVy
UAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVu
dW0gfCBEb250RGVsZXRlKTsKIH0KIAotYm9vbCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIE51bWJlckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5
U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggNzA1NmRkZjc1
YmI5NzVlOWEwMzAyZWRmMzExMjdiZmU2YTNmYzE0My4uNjEyNzFhOTU0ZjkwMDdhNzY1MmQ3OGMx
YmRjN2Y2NTVmOTllY2MwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogICAgICAgICB9CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIEpTVmFsdWUgZ2V0VmFsdWVQcm9wZXJ0
eShFeGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggZjZmMDE2ZTRlM2U1N2YyMjBl
NzhmMjVlY2FlODEyZjQ3ZDJkYTBjOS4uNGZiMjliNTVkNmQ2ZTBmNjVkMGUwYTJhYzQ5OWZlNTA0
NTYwNTZiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQ
cm90b3R5cGUuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgTnVtYmVyUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1ib29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKaW5kZXggMWE1Njg2YWU1OTBhNWMw
NDMwYTIzNWE5NTA1YjI5ZTJkM2JjY2FhOS4uYmViYjVlNzNhMjE0Nzc2ODA1OWY0YmI4ZTM3NDAz
ZTljMTliNWJmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2
YXRlOgogICAgICAgICBOdW1iZXJQcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOTBl
ZGZhNTM3YzkyY2U1MTYwNzk5NmJjNWM4MmFhNTc1YTAxNjQwMS4uMGIzYjE5NzAwYWJhMTBkN2Uy
ZDcxMGIzN2FmMTEzMjNmNmE3NmJlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIE9i
amVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIE9iamVjdFBy
b3RvdHlwZSogb2JqZWN0UAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmds
b2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJl
YWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKIH0KIAotYm9vbCBPYmplY3RDb25zdHJ1
Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIE9iamVjdENvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJu
IGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgK
aW5kZXggMjIyMTU5ZjUzYTRmOGYxYjhkNjU4MmNjNzBjYjBmYjBmN2ZlYzgzNy4uYWE2OGNjZGFh
YTgzM2JmYjc2ZjUyMDAxM2JhNjUxOTU2ZTFmNjA2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC0zOCw3ICszOCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogICAgICAgICB9
CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDk5YTViYjIy
OGJmMjdlYzFhZDQxYTlkYjQ0NGUyM2U3NWY4NGY1N2EuLmVhN2M4OWIxNTM4MmY0MjlmZGIzNGM0
ZjM1YzRhMzI3NzI5NGJmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIE9iamVjdFByb3Rv
dHlwZTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZQogICAgIH0KIH0KIAotYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQorYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBPYmplY3RQcm90b3R5cGU6
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQKICAgICByZXR1cm4gSlNOb25GaW5hbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgT2JqZWN0UHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgT2JqZWN0UHJvdG90eXBl
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCBl
MzkwMDIyZjY3Yzc1NDIwNWJlMzIxZWY3Y2IwOWQ0NWZkNTVlMTQ4Li43NmEzM2M0NzliOTY2NWJi
MTM3MDQ5YjNlMmM4YjMxZTk0ZWRkNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtNTMsOSArNTMsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChK
U0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcAppbmRleCA0MGQ0OTE0NjQ0Yzk4NjNiYzI0NGMxZDRiMzFkY2JiYWRhMWVjNzAwLi41YjA3
MGYwNzQwY2NiMTI3ZmIyZWJkMWZiNzQyNmJkZTE4MWNiNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yMDIsNyAr
MjAyLDcgQEAgSlNWYWx1ZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0UmlnaHRDb250ZXh0KEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsKIH0KICAg
ICAKLWJvb2wgUmVnRXhwQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQorYm9vbCBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDVlMTMxNzY0ZDQ5MjViNzBjYjM4NjY3OWM3N2U2
YTQwMmEzNjFjNGMuLmFhZjQyNmE5YWQyMjFmZWIwYjJkN2RlNGVmYzM2YzAxNTBlOGFhYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
aApAQCAtNzQsNyArNzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lk
IHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAppbmRleCBlNzVkNjIxOTE1ZDI0
YTVlODZiN2E3NTY0YTkyNWEyNmYwNjkwMTFkLi4xMmJkMDI2ZWYzZDkxNDhjNDEwOWE1YWYwNzVh
Y2QyNmYxMWE3MzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBNYXRjaGVzQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBNYXRjaGVzQXJyYXkuaApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBSZWdFeHBDb25zdHJ1Y3Rv
clByaXZhdGUqIGRhdGEpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiAgICAgICAgIH0KQEAgLTU2LDcgKzU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICByZXR1cm4gSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggNjYwYjJl
MzBhNTRiOTFjOTkwY2FkYWI0YWEyZjY0MzgzNWMxOTU4Yy4uODA4ZWQ3Zjk3MDU4YmMwODJmY2Q1
ZDM4NWMzOGM0N2U2MmNmMDJmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVnRXhwT2JqZWN0Ojp2
aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAg
IHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5kLT5sYXN0SW5kZXgpOwogfQogCi1ib29sIFJl
Z0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFJlZ0V4cE9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggYzBm
ODNkNTQyY2JkZWJkOWFlZGJiZDg3NWMwMWJiZmU4YjIwMzIzOS4uYTNmNzdjNWI5MzhiMjhkMzky
ZGIyMmU5NDYwY2NiNjdiNDVkMDFkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwT2JqZWN0LmgKQEAgLTY1LDcgKzY1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIEpTVmFsdWUgdGVzdChFeGVjU3RhdGUqKTsKICAgICAgICAgSlNWYWx1ZSBleGVjKEV4ZWNT
dGF0ZSopOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
UHJvdG90eXBlLmNwcAppbmRleCAzZTNhMTY5ZmE5YjA2MmNkYzJlNDI5N2Y1Njk2MDlhZDIxZjNh
YzQxLi44MzA0ZTYyZTE4YzBkZTdlNjk0N2MxMWVkODg5NjllNGJmMGMwOGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTY3
LDcgKzY3LDcgQEAgUmVnRXhwUHJvdG90eXBlOjpSZWdFeHBQcm90b3R5cGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3QKIHsKIH0KIAotYm9vbCBSZWdFeHBQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBSZWdFeHBQcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmlu
ZGV4IGNjODQwM2E3NWI0YmYzYjkyZGU1YTg0YWIyM2NhODJhMTYyNDIxM2YuLjhjOTJiMjJlNDQx
ODdiYzBlZDI0YTU3OWI2MTNkNzZlNWE3OTg0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBSZWdFeHBPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAg
ICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0
cnVjdG9yLmNwcAppbmRleCBmMzlkZDdhNWFhMDA3OGFjNmZkMjNkODJlN2ViMGJhZGJhN2Q3OThi
Li4yOGU4NDUxMjJiZGMyNGEzOTExYTFhNmUyZWEyZTRjMzBmZGQ2NzllIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC01
OSw3ICs1OSw3IEBAIHZvaWQgU3RyaW5nQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgU3RyaW5nUHJvdG90eXBlKiBzdHJpbmdQCiAgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogfQog
Ci1ib29sIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkK
K2Jvb2wgU3RyaW5nQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAm
c2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCBhNzE5MTQ4NDgzOTI5YTY4ZWVjMzg5MmIzYmNjZjg1
YzcyZWVmMzFiLi4zOTVmOTkzNDBmMzZhZjEwODZhZWNkZjY2YjRiMjVmOTlmZTY2ZDEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgK
QEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDb25zdHJ1
Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwogICAgICAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXggNmQ1NDhjZDZmMWFmNGUy
YzZkZGU5YWY2ZjRmY2ZlODY3NzIyZTdhMS4uMGU5Y2Q3ZGMzNWZlMTA3NjA4ZDY0NDgxZjUyYjlk
MmRmZjA3YTczMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHZvaWQgU3RyaW5nT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTU3RyaW5nKiBzdHJpbmcpCiAgICAgc2V0
SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBzdHJpbmcpOwogfQogCi1ib29sIFN0cmluZ09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFN0cmluZ09iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTU0LDcg
KzU0LDcgQEAgYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnQKICAgICByZXR1cm4gSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
fQogICAgIAotYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBT
dHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IDg3MmEy
YzEzM2I2NmE2ZDIxN2FjOWM5YmU1NjQ5ZjgyZTVjYzExOGIuLmU2YjM3YmMwODllM2YyYzEzMGQ1
ODM0NDBhMmNkZDlhOTI3YmE2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5oCkBAIC00Niw5ICs0Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB9CiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU0ds
b2JhbE9iamVjdCosIEpTU3RyaW5nKik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmlu
ZGV4IDg4ZmIyZTkyMWFlN2RmYTNjMDNhYzgwNmUzMzI5N2UzNGJkMmVmMWUuLmU4ZjRmZDNiNGYz
ZDJhMTIzYTQ3NTZhZTVjYWNkNzgzNDZlNjc5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZv
aWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiwgSlNTdHJpbmcqCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigw
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCi1ib29sIFN0cmluZ1By
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIFN0cmluZ1Byb3Rv
dHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKaW5k
ZXggYzg5YTg5YmE5NTJkOTZmODVmYjkxYTcwYTQ5MmY4ZDdmMTA4ZGEyMS4uNDcxMGE1YzA4Mzhl
NzQ1MDQzMGYxMzc0OWI1YjNlYTE4YmQxMDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IDBlNzM1MGYzYjBjMmNm
NWQ2YmI3ZTI3YTJmMTAxZjk3MDA2ZTI0NTUuLjFmYjgwZjY3NGNmNTdlNjBhZmUzZTJlNWI5MmUz
ZWIwYzQ1YjAxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDExLTEwLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVuYW1lIGdldE93blByb3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgx
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFt
ZWQgdGhlIHZpcnR1YWwgdmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbAorICAgICAgICBpbiBwcmVwYXJhdGlvbiBmb3Igd2hlbiB3ZSBhZGQg
dGhlIHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gdGhlIE1ldGhvZFRhYmxlIAorICAgICAg
ICBpbiBDbGFzc0luZm8uCisKKyAgICAgICAgQWxzbyBhZGRlZCBhIGZldyBzdGF0aWMgZ2V0T3du
UHJvcGVydHlTbG90IGZ1bmN0aW9ucyB3aGVyZSB0aGV5IGhhZCBiZWVuIG92ZXJsb29rZWQgCisg
ICAgICAgIGJlZm9yZSAoZXNwZWNpYWxseSBpbiBDb2RlR2VuZXJhdG9ySlMucG0pLgorCisgICAg
ICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisKIDIwMTEt
MTAtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgZ2V0Q2FsbERhdGFWaXJ0dWFsIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmNwcAppbmRleCA2Zjk5YTRjODQ2NmI0YTU1NTZkOWE3MDU0NjA2ZGRlN2Jh
M2NlOTVhLi4xOTFjMjUzOWRhZDZkZGNjZTc3MTgzZDA5NmU4ZmU5NDc1NmRhN2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgSlNW
YWx1ZSBVc2VyT2JqZWN0SW1wOjp1c2VyT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUg
c2xvdEJhc2UsIGNvbnN0IElkZW4KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIFVzZXJP
YmplY3RJbXA6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBVc2VyT2JqZWN0
SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJu
IGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggYWNlMTkzMzc2Njc3NTMwZWUy
ZjYxMzljMTBkNmFmN2UzYjUyNWRjNC4uM2Q1OGVmMzViOTBiZTEwYzQ0YzY4YTI5M2IyMzU4OThi
YzYwYjRhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC01NCw3ICs1
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVj
U3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVk
ZURvbnRFbnVtUHJvcGVydGllcyk7CiAKICAgICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFzRnVuY3Rp
b24oRXhlY1N0YXRlICpleGVjKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlICosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRp
ZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3
NTU4MGYxNGM3OGM2MzY5YTlkNDMzNzA3ZjFjNWVmYzQ4YTU4MGQwLi4wMzM2MWRmYzhhODdhMzU2
YmE5ODBjZjMwZTNhMGY0ZjZjZjQ3ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODYgQEAKKzIw
MTEtMTAtMTEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODEw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLgorCisgICAgICAgIFJlbmFtZWQgdGhlIHZpcnR1YWwgdmVyc2lvbiBvZiBnZXRPd25Q
cm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbAorICAgICAgICBpbiBwcmVw
YXJhdGlvbiBmb3Igd2hlbiB3ZSBhZGQgdGhlIHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8g
dGhlIE1ldGhvZFRhYmxlIAorICAgICAgICBpbiBDbGFzc0luZm8uCisKKyAgICAgICAgQWxzbyBh
ZGRlZCBhIGZldyBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IGZ1bmN0aW9ucyB3aGVyZSB0aGV5
IGhhZCBiZWVuIG92ZXJsb29rZWQgCisgICAgICAgIGJlZm9yZSAoZXNwZWNpYWxseSBpbiBDb2Rl
R2VuZXJhdG9ySlMucG0pLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpEaWFs
b2dIYW5kbGVyOjpyZXR1cm5WYWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5k
b3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnRleHQ6OmdldE93blByb3BlcnR5U2xvdERl
bGVnYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpnZXRTcGFyc2VJbmRleCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmdldFByb3BlcnR5KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRl
R2V0T3duUHJvcGVydHlTbG90Qm9keSk6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAg
ICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0
b3JEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdElu
dGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RJbnRlcmZhY2U6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmdldE93
blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iakNvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0T2JqUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93
blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2U6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUuaDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAg
IChKU0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHA6CisgICAgICAg
IChKU0M6OkJpbmRpbmdzOjpRdEluc3RhbmNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0
UnVudGltZU1ldGFNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuaDoKKyAgICAgICAg
KiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJy
YXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlND
OjpSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIw
MTEtMTAtMTEgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBHdGtBdXRoZW50aWNhdGlvbkRpYWxvZzogdXNlIEd0a0dyaWQgaW5zdGVhZCBv
ZiBHdGtUYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBkYjZlMzA5MDI2Zjc4ODY1NDM1ZGZk
Y2IwZmJjNzAzNTcyYWZlM2QzLi42MDUzMDUzZmYwZTYwMTJiY2Q0ODM3OTQ4ZmJjNmYyODc3Nzhh
MzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTY4Miw4ICsxNjgyLDkgQEAgX19aTjdXZWJD
b3JlNUZyYW1lMjZzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudEVpCiAjaWYgVVNFKFBMVUdJTl9I
T1NUX1BST0NFU1MpCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDExZ2V0Q2FsbERhdGFFUE5TXzZK
U0NlbGxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMTRmaW5pc2hDcmVh
dGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUktOU18xMElkZW50aWZpZXJFCi1fX1pOM0pTQzEzUnVu
dGltZU1ldGhvZDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKK19fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRP
d25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNGdldE93blBy
b3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQ
cm9wZXJ0eURlc2NyaXB0b3JFCitfX1pOM0pTQzEzUnVudGltZU1ldGhvZDI1Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9w
ZXJ0eVNsb3RFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDZzX2luZm9FCiBfX1pOM0pTQzEzUnVu
dGltZU1ldGhvZEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZW
ZWN0b3JJUE5TXzhCaW5kaW5nczZNZXRob2RFTG0wRUVFCiBfX1pOM0pTQzhCaW5kaW5nczEwUm9v
dE9iamVjdEQxRXYKQEAgLTE2OTEsOSArMTY5MiwxMCBAQCBfX1pOM0pTQzhCaW5kaW5nczEzUnVu
dGltZU9iamVjdDExZ2V0Q2FsbERhdGFFUE5TXzZKU0NlbGxFUk5TXzhDYWxsRGF0YUUKIF9fWk4z
SlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRm
aW5pc2hDcmVhdGlvbkVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNS
dW50aW1lT2JqZWN0MTZnZXRDb25zdHJ1Y3REYXRhRVJOU18xM0NvbnN0cnVjdERhdGFFCi1fX1pO
M0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhl
Y1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKK19fWk4zSlNDOEJp
bmRpbmdzMTNSdW50aW1lT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5T
XzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNK
U0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVj
U3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pO
M0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUK
K19fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUK
IF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pT
QzhCaW5kaW5nczEzUnVudGltZU9iamVjdDZzX2luZm9FCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVu
dGltZU9iamVjdEMyRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3Ry
dWN0dXJlRU4zV1RGMTBQYXNzUmVmUHRySU5TMF84SW5zdGFuY2VFRUUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAwNGI1Yjk3NjUy
N2E0ZmQxOTViNDVhYjI4NDk1NjRlYWM4NWQyZTY4Li4zZGYwZWQ2MmFlZWY5ZDgzMmRmNzY1Y2Iz
MGQ3ZDczNmIzYWZhN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dDdXN0b20uY3BwCkBAIC0xMjEsOCArMTIxLDE0IEBAIHN0YXRpYyBKU1ZhbHVlIG5h
bWVkSXRlbUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElk
ZW50aWZpCiAgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iaiwgY29sbGVjdGlvbi5nZXQoKSk7
CiB9CiAKLWJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQog
eworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKK30KKworYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9IHN0
YXRpY19jYXN0PEpTRE9NV2luZG93Kj4oY2VsbCk7CiAgICAgLy8gV2hlbiBhY2Nlc3NpbmcgYSBX
aW5kb3cgY3Jvc3MtZG9tYWluLCBmdW5jdGlvbnMgYXJlIGFsd2F5cyB0aGUgbmF0aXZlIGJ1aWx0
LWluIG9uZXMsIGFuZCB0aGV5CiAgICAgLy8gYXJlIG5vdCBhZmZlY3RlZCBieSBwcm9wZXJ0aWVz
IGNoYW5nZWQgb24gdGhlIFdpbmRvdyBvciBhbnl0aGluZyBpbiBpdHMgcHJvdG90eXBlIGNoYWlu
LgogICAgIC8vIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBiZWhhdmlvciBvZiBGaXJlZm94
LgpAQCAtMTMyLDE3ICsxMzgsMTcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAgICAvLyBX
ZSBkb24ndCB3YW50IGFueSBwcm9wZXJ0aWVzIG90aGVyIHRoYW4gImNsb3NlIiBhbmQgImNsb3Nl
ZCIgb24gYSBmcmFtZWxlc3Mgd2luZG93IChpLmUuIG9uZSB3aG9zZSBwYWdlIGdvdCBjbG9zZWQs
CiAgICAgLy8gb3Igd2hvc2UgaWZyYW1lIGdvdCByZW1vdmVkKS4KICAgICAvLyBGSVhNRTogVGhp
cyBkb2Vzbid0IGZ1bGx5IG1hdGNoIEZpcmVmb3gsIHdoaWNoIGFsbG93cyBhdCBsZWFzdCB0b1N0
cmluZyBpbiBhZGRpdGlvbiB0byB0aG9zZS4KLSAgICBpZiAoIWltcGwoKS0+ZnJhbWUoKSkgewor
ICAgIGlmICghdGhpc09iamVjdC0+aW1wbCgpLT5mcmFtZSgpKSB7CiAgICAgICAgIC8vIFRoZSBm
b2xsb3dpbmcgY29kZSBpcyBzYWZlIGZvciBjcm9zcy1kb21haW4gYW5kIHNhbWUgZG9tYWluIHVz
ZS4KICAgICAgICAgLy8gSXQgaWdub3JlcyBhbnkgY3VzdG9tIHByb3BlcnRpZXMgdGhhdCBtaWdo
dCBiZSBzZXQgb24gdGhlIERPTVdpbmRvdyAoaW5jbHVkaW5nIGEgY3VzdG9tIHByb3RvdHlwZSku
CiAgICAgICAgIGVudHJ5ID0gc19pbmZvLnByb3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMs
IHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmIChlbnRyeSAmJiAhKGVudHJ5LT5hdHRyaWJ1dGVz
KCkgJiBGdW5jdGlvbikgJiYgZW50cnktPnByb3BlcnR5R2V0dGVyKCkgPT0ganNET01XaW5kb3dD
bG9zZWQpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGVudHJ5LT5wcm9wZXJ0
eUdldHRlcigpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGVudHJ5
LT5wcm9wZXJ0eUdldHRlcigpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
CiAgICAgICAgIGVudHJ5ID0gSlNET01XaW5kb3dQcm90b3R5cGU6OnNfaW5mby5wcm9wSGFzaFRh
YmxlKGV4ZWMpLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAoZW50cnkg
JiYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbikgJiYgZW50cnktPmZ1bmN0aW9uKCkg
PT0ganNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlKSB7Ci0gICAgICAgICAgICBzbG90
LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5k
b3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlLCAwPik7CisgICAgICAgICAgICBzbG90LnNldEN1c3Rv
bSh0aGlzT2JqZWN0LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQ
cm90b3R5cGVGdW5jdGlvbkNsb3NlLCAwPik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogCkBAIC0xNTYsMTEgKzE2MiwxMSBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQog
ICAgIC8vIGJlY2F1c2Ugd2UgYWx3YXlzIGFsbG93IGFjY2VzcyB0byBzb21lIGZ1bmN0aW9uLCBq
dXN0IGRpZmZlcmVudCBvbmVzIGRlcGVuZGluZyB3aGV0aGVyIGFjY2VzcwogICAgIC8vIGlzIGFs
bG93ZWQuCiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBib29sIGFsbG93c0FjY2VzcyA9
IGFsbG93c0FjY2Vzc0Zyb20oZXhlYywgZXJyb3JNZXNzYWdlKTsKKyAgICBib29sIGFsbG93c0Fj
Y2VzcyA9IHRoaXNPYmplY3QtPmFsbG93c0FjY2Vzc0Zyb20oZXhlYywgZXJyb3JNZXNzYWdlKTsK
IAogICAgIC8vIExvb2sgZm9yIG92ZXJyaWRlcyBiZWZvcmUgbG9va2luZyBhdCBhbnkgb2Ygb3Vy
IG93biBwcm9wZXJ0aWVzLCBidXQgaWdub3JlIG92ZXJyaWRlcyBjb21wbGV0ZWx5CiAgICAgLy8g
aWYgdGhpcyBpcyBjcm9zcy1kb21haW4gYWNjZXNzLgotICAgIGlmIChhbGxvd3NBY2Nlc3MgJiYg
SlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKQorICAgIGlmIChhbGxvd3NBY2Nlc3MgJiYgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIG5lZWQgdGhpcyBjb2RlIGhlcmUgYmVjYXVzZSBvdGhl
cndpc2UgSlNET01XaW5kb3dCYXNlIHdpbGwgc3RvcCB0aGUgc2VhcmNoIGJlZm9yZSB3ZSBldmVu
IGdldCB0byB0aGUKQEAgLTE3MiwyNiArMTc4LDI2IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
CiAgICAgICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgRnVuY3Rpb24pIHsKICAgICAgICAg
ICAgIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9u
Qmx1cikgewogICAgICAgICAgICAgICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdl
dHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQmx1ciwgMD4pOworICAgICAgICAgICAg
ICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBub25DYWNoaW5nU3RhdGljRnVuY3Rp
b25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkJsdXIsIDA+KTsKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0
aW9uQ2xvc2UpIHsKICAgICAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAg
ICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rp
b25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlLCAwPik7CisgICAgICAg
ICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNG
dW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2UsIDA+KTsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlw
ZUZ1bmN0aW9uRm9jdXMpIHsKICAgICAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2Vzcykgewot
ICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGlj
RnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkZvY3VzLCAwPik7Cisg
ICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdT
dGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uRm9jdXMsIDA+
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1By
b3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpIHsKICAgICAgICAgICAgICAgICBpZiAoIWFsbG93
c0FjY2VzcykgewotICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25D
YWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvblBv
c3RNZXNzYWdlLCAyPik7CisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNP
YmplY3QsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlw
ZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIDI+KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVu
Y3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhpbXBs
KCktPmZyYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFET01XaW5kb3c6OmNhblNob3dN
b2RhbERpYWxvZyh0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1lKCkpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICAgICAgICAgIH0KQEAgLTIwMSw3ICsyMDcsNyBAQCBib29sIEpTRE9NV2lu
ZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eQogICAgICAgICAvLyBBbGxvdyBhY2Nlc3MgdG8gdG9TdHJpbmcoKSBjcm9zcy1k
b21haW4sIGJ1dCBhbHdheXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy4KICAgICAgICAgaWYg
KHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9TdHJpbmcpIHsKICAgICAg
ICAgICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0
b20odGhpcywgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcik7CisgICAgICAgICAgICAgICAg
c2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcik7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
QEAgLTIwOSw3ICsyMTUsNyBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogCiAgICAgZW50cnkg
PSBKU0RPTVdpbmRvdzo6c19pbmZvLnByb3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHBy
b3BlcnR5TmFtZSk7CiAgICAgaWYgKGVudHJ5KSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRo
aXMsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhp
c09iamVjdCwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKQEAgLTIxOCwxOCArMjI0LDE4IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAg
ICAgLy8gbmFtaW5nIGZyYW1lcyB0aGluZ3MgdGhhdCBjb25mbGljdCB3aXRoIHdpbmRvdyBwcm9w
ZXJ0aWVzIHRoYXQKICAgICAvLyBhcmUgaW4gTW96IGJ1dCBub3QgSUUuIFNpbmNlIHdlIGhhdmUg
c29tZSBvZiB0aGVzZSwgd2UgaGF2ZSB0byBkbwogICAgIC8vIGl0IHRoZSBNb3ogd2F5LgotICAg
IGlmIChpbXBsKCktPmZyYW1lKCktPnRyZWUoKS0+Y2hpbGQoaWRlbnRpZmllclRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGNoaWxk
RnJhbWVHZXR0ZXIpOworICAgIGlmICh0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1lKCktPnRyZWUo
KS0+Y2hpbGQoaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKSB7CisgICAg
ICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGNoaWxkRnJhbWVHZXR0ZXIpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBEbyBwcm90b3R5cGUgbG9va3VwIGVhcmx5
IHNvIHRoYXQgZnVuY3Rpb25zIGFuZCBhdHRyaWJ1dGVzIGluIHRoZSBwcm90b3R5cGUgY2FuIGhh
dmUKICAgICAvLyBwcmVjZWRlbmNlIG92ZXIgdGhlIGluZGV4IGFuZCBuYW1lIGdldHRlcnMuICAK
LSAgICBKU1ZhbHVlIHByb3RvID0gcHJvdG90eXBlKCk7CisgICAgSlNWYWx1ZSBwcm90byA9IHRo
aXNPYmplY3QtPnByb3RvdHlwZSgpOwogICAgIGlmIChwcm90by5pc09iamVjdCgpKSB7CiAgICAg
ICAgIGlmIChhc09iamVjdChwcm90byktPmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAg
ICAgICAgIHByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CisgICAgICAgICAgICAgICAg
dGhpc09iamVjdC0+cHJpbnRFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKICAgICAgICAgICAg
ICAgICBzbG90LnNldFVuZGVmaW5lZCgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CkBAIC0yNDIsMjggKzI0OCwyOCBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQog
ICAgIC8vIGFsbG93IHdpbmRvd1sxXSBvciBwYXJlbnRbMV0gZXRjLiAoIzU2OTgzKQogICAgIGJv
b2wgb2s7CiAgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS50b0FycmF5SW5kZXgob2spOwot
ICAgIGlmIChvayAmJiBpIDwgaW1wbCgpLT5mcmFtZSgpLT50cmVlKCktPmNoaWxkQ291bnQoKSkg
ewotICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXMsIGksIGluZGV4R2V0dGVyKTsKKyAg
ICBpZiAob2sgJiYgaSA8IHRoaXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGls
ZENvdW50KCkpIHsKKyAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzT2JqZWN0LCBpLCBp
bmRleEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmICghYWxs
b3dzQWNjZXNzKSB7Ci0gICAgICAgIHByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7Cisg
ICAgICAgIHRoaXNPYmplY3QtPnByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAg
ICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAog
ICAgIC8vIEFsbG93IHNob3J0Y3V0cyBsaWtlICdJbWFnZTEnIGluc3RlYWQgb2YgZG9jdW1lbnQu
aW1hZ2VzLkltYWdlMQotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGltcGwoKS0+ZnJhbWUoKS0+
ZG9jdW1lbnQoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCkt
PmZyYW1lKCktPmRvY3VtZW50KCk7CiAgICAgaWYgKGRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgp
KSB7CiAgICAgICAgIEF0b21pY1N0cmluZ0ltcGwqIGF0b21pY1Byb3BlcnR5TmFtZSA9IGZpbmRB
dG9taWNTdHJpbmcocHJvcGVydHlOYW1lKTsKICAgICAgICAgaWYgKGF0b21pY1Byb3BlcnR5TmFt
ZSAmJiAoc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oZG9jdW1lbnQpLT5oYXNOYW1lZEl0ZW0o
YXRvbWljUHJvcGVydHlOYW1lKSB8fCBkb2N1bWVudC0+aGFzRWxlbWVudFdpdGhJZChhdG9taWNQ
cm9wZXJ0eU5hbWUpKSkgewotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbmFtZWRJ
dGVtR2V0dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5hbWVk
SXRlbUdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0K
IAotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKKyAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3c6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtNjgzLDcgKzY4
OSw3IEBAIGlubGluZSBKU1ZhbHVlIERpYWxvZ0hhbmRsZXI6OnJldHVyblZhbHVlKCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgSWRlbnRpZmllciBpZGVudGlmaWVy
KG1fZXhlYywgInJldHVyblZhbHVlIik7CiAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgaWYg
KCFnbG9iYWxPYmplY3QtPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIGlkZW50aWZpZXIsIHNs
b3QpKQorICAgIGlmICghZ2xvYmFsT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1f
ZXhlYywgaWRlbnRpZmllciwgc2xvdCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
ICAgIHJldHVybiBzbG90LmdldFZhbHVlKG1fZXhlYywgaWRlbnRpZmllcik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCmluZGV4IDZkMjZm
OTg1YzcxYjZjNGI4M2IwYTMwMjk4OWIwN2YwYmEzMjdiMWUuLmZhNjFiNDk2YjI4NDdmZWI1NmM2
NmMzOTA3NWMyODY0YWQwOTM0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMDAsMTQgKzEwMCwxNCBAQCBVU3RyaW5nIEpTRE9N
V2luZG93U2hlbGw6OmNsYXNzTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fd2luZG93LT5jbGFz
c05hbWUoKTsKIH0KIAotYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oY2VsbCktPm1fd2luZG93LT5nZXRPd25Q
cm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpLT5tX3dpbmRvdy0+Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9NV2lu
ZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4
IGI1ZGQzYTZhMTZjMmNkOGE2M2Y5OGEzZjkyNzk4MzUyYmRmMGQ2NzcuLjZhYzkxYmNhZjI3YzNh
MjAyNDgwYjlmOTFmN2M0YmY4YzZjNTFlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKQEAgLTgwLDcgKzgwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpKU0NlbGwqLCBK
U0M6OlNsb3RWaXNpdG9yJik7CiAgICAgICAgIHZpcnR1YWwgSlNDOjpVU3RyaW5nIGNsYXNzTmFt
ZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9t
LmNwcAppbmRleCA2N2YyZTk5YmE2NDBlM2M2NjUzYTdmZGJkNjg2Nzc5NWVjZjNhN2I3Li5mZWM0
MTlmYjc0MDQ2ZmMyYzA3Y2Y4NTAwYTE1YzBkNTViYzdiNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKQEAgLTcyLDcg
KzcyLDcgQEAgdm9pZCBKU1dvcmtlckNvbnRleHQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKIGJvb2wgSlNXb3JrZXJDb250ZXh0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3REZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIC8vIExvb2sgZm9yIG92ZXJyaWRl
cyBiZWZvcmUgbG9va2luZyBhdCBhbnkgb2Ygb3VyIG93biBwcm9wZXJ0aWVzLgotICAgIGlmIChK
U0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCkpCisgICAgaWYgKEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgcmV0dXJu
IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggOGRiZTNlYTA5YzdjN2ZiZjVkNDlkN2U1MGZjZmExZDQz
NGQxNDBiOS4uYjEwZjFkN2NjMWJlMTUyNTI1NjBlYzQzNWNiYjQ0YzJjMjU0Yzc2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwCkBAIC0zMzMsMTEgKzMzMywxMSBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgUHJvcGVy
dHlTbG90IHNsb3QoYXJyYXkpOwogICAgICAgICBpZiAoaXNKU0FycmF5KCZtX2V4ZWMtPmdsb2Jh
bERhdGEoKSwgYXJyYXkpKSB7Ci0gICAgICAgICAgICBpZiAoYXJyYXktPkpTQXJyYXk6OmdldE93
blByb3BlcnR5U2xvdChtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgICAg
IGlmIChKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoYXJyYXksIG1fZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KSkgewogICAgICAgICAgICAgICAgIGhhc0luZGV4ID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShtX2V4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoYXJyYXktPmdldE93blByb3BlcnR5U2xvdCht
X2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgfSBlbHNlIGlmIChhcnJheS0+
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsK
ICAgICAgICAgICAgIGhhc0luZGV4ID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVybiBzbG90Lmdl
dFZhbHVlKG1fZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgfQpAQCAtMzQ4LDcgKzM0OCw3
IEBAIHByaXZhdGU6CiAgICAgSlNWYWx1ZSBnZXRQcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdChvYmplY3QpOwotICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3Qo
bV9leGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAg
ICAgIHJldHVybiBzbG90LmdldFZhbHVlKG1fZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAg
cmV0dXJuIEpTVmFsdWUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDJkODEzNDcwYzdjYTE3MzkyZGVmYjIx
MWQ2MjUyMTgyZDk2ZjBhMWEuLmY2YWQ3MTRmNGIyYTFiZmUxMWRkMTZlMzE3ZTkyY2ZkMjQ4NGQ3
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC00MzAsNyArNDMwLDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlT
bG90Qm9keQogICAgIG15IEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsID0gKCk7CiAKICAgICBpZiAo
JGludGVyZmFjZU5hbWUgZXEgIk5hbWVkTm9kZU1hcCIgb3IgJGludGVyZmFjZU5hbWUgZXEgIkhU
TUxDb2xsZWN0aW9uIiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTEFsbENvbGxlY3Rpb24iKSB7
Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgJHtuYW1lc3BhY2VN
YXliZX1KU1ZhbHVlIHByb3RvID0gcHJvdG90eXBlKCk7XG4iKTsKKyAgICAgICAgcHVzaChAZ2V0
T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAke25hbWVzcGFjZU1heWJlfUpTVmFsdWUgcHJvdG8g
PSB0aGlzT2JqZWN0LT5wcm90b3R5cGUoKTtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIHN0YXRpY19jYXN0PCR7
bmFtZXNwYWNlTWF5YmV9SlNPYmplY3QqPihhc09iamVjdChwcm90bykpLT5oYXNQcm9wZXJ0eShl
eGVjLCBwcm9wZXJ0eU5hbWUpKVxuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xv
dEltcGwsICIgICAgICAgIHJldHVybiBmYWxzZTtcblxuIik7CiAgICAgfQpAQCAtNDQwLDcgKzQ0
MCw3IEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAgICAgICAgaWYgKCRy
ZXF1aXJlc01hbnVhbExvb2t1cCkgewogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlT
bG90SW1wbCwgIiAgICBjb25zdCAke25hbWVzcGFjZU1heWJlfUhhc2hFbnRyeSogZW50cnkgPSAk
e2NsYXNzTmFtZX1UYWJsZS5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAg
ICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChlbnRyeSkge1xuIik7
Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90
LnNldEN1c3RvbSh0aGlzLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7XG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXNPYmplY3QsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTtcbiIpOwogICAgICAgICAgICAg
cHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgfVxuIik7CiAg
ICAgICAgIH0KQEAgLTQ1OSwyMCArNDU5LDIwIEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5
U2xvdEJvZHkKICAgICAgICAgaWYgKEluZGV4R2V0dGVyUmV0dXJuc1N0cmluZ3MoJGltcGxDbGFz
c05hbWUpKSB7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAg
IGlmIChvaykge1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChvayAmJiBpbmRleCA8IHN0YXRpY19jYXN0PCRp
bXBsQ2xhc3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOworICAgICAgICAgICAgcHVz
aChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAob2sgJiYgaW5kZXggPCBzdGF0aWNf
Y2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgpKSB7XG4i
KTsKICAgICAgICAgfQogICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewotICAgICAgICAgICAgcHVzaChAZ2V0T3du
UHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZShnZXRCeUluZGV4KGV4ZWMs
IGluZGV4KSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGws
ICIgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRl
eCkpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXMsIGluZGV4LCBp
bmRleEdldHRlcik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdElt
cGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpc09iamVjdCwgaW5kZXgsIGluZGV4
R2V0dGVyKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xv
dEltcGwsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blBy
b3BlcnR5U2xvdEltcGwsICIgICAgfVxuIik7CiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc05hbWVHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9KSB7Ci0gICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKGNhbkdldEl0ZW1zRm9yTmFtZShl
eGVjLCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGltcGwoKSksIHByb3BlcnR5TmFtZSkp
IHtcbiIpOwotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBz
bG90LnNldEN1c3RvbSh0aGlzLCBuYW1lR2V0dGVyKTtcbiIpOworICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChjYW5HZXRJdGVtc0Zvck5hbWUoZXhlYywgc3Rh
dGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLCBwcm9wZXJ0eU5h
bWUpKSB7XG4iKTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAg
ICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgdGhpc09iamVjdC0+bmFtZUdldHRlcik7XG4i
KTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJu
IHRydWU7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICB9
XG4iKTsKICAgICAgICAgaWYgKCRpbmxpbmVkKSB7CkBAIC00ODcsMTkgKzQ4NywxOSBAQCBzdWIg
R2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifSkg
ewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChnZXRPd25Q
cm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7CisgICAg
ICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKHRoaXNPYmplY3QtPmdl
dE93blByb3BlcnR5U2xvdERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsK
ICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRy
dWU7XG4iKTsKICAgICB9CiAKICAgICBpZiAoJGhhc0F0dHJpYnV0ZXMpIHsKICAgICAgICAgaWYg
KCRpbmxpbmVkKSB7CiAgICAgICAgICAgICBkaWUgIkNhbm5vdCBpbmxpbmUgaWYgTm9TdGF0aWNU
YWJsZXMgaXMgc2V0LiIgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3Rh
dGljVGFibGVzIn0pOwotICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwg
IiAgICByZXR1cm4gJHtuYW1lc3BhY2VNYXliZX1nZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFt
ZSwgQmFzZT4oZXhlYywgc19pbmZvLnN0YXRpY1Byb3BIYXNoVGFibGUsIHRoaXMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdElt
cGwsICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVTbG90PCRjbGFz
c05hbWUsIEJhc2U+KGV4ZWMsIHNfaW5mby5zdGF0aWNQcm9wSGFzaFRhYmxlLCB0aGlzT2JqZWN0
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1h
eWJlfWdldFN0YXRpY1ZhbHVlU2xvdDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCAiIC4gaGFzaFRh
YmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJs
ZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiAke25h
bWVzcGFjZU1heWJlfWdldFN0YXRpY1ZhbHVlU2xvdDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCAi
IC4gaGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9T
dGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IHNsb3QpO1xuIik7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgIH0KIAogICAgIHJldHVy
biBAZ2V0T3duUHJvcGVydHlTbG90SW1wbDsKQEAgLTc3MCw5ICs3NzAsMTEgQEAgc3ViIEdlbmVy
YXRlSGVhZGVyCiAKICAgICAjIEdldHRlcnMKICAgICBpZiAoJGhhc0dldHRlcikgewotICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7Ci0gICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtc
biIpIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVy
In0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0
dGVyIn0pICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5n
TmFtZUdldHRlciJ9OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgJiYgISRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn07CisgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90Jik7XG4iKSBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJI
YXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNs
b3QifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckRlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAg
JHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCJ9ID0gMTsK
QEAgLTk2Nyw5ICs5NjksMTQgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIn07XG5cbiIpOwogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IklubGluZUdldE93blByb3BlcnR5U2xvdCJ9ICYmICEkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QifSkgewotICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIkFMV0FZU19JTkxJTkUgYm9vbCAke2NsYXNzTmFtZX06OmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAie1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIp
OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAifVxuXG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IkFMV0FZU19JTkxJTkUgYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0M6
OkpTQ2VsbCogY2VsbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAie1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9
Kj4oY2VsbCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSgkZGF0YU5v
ZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJp
YnV0ZXMgPiAwLCAxKSk7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9XG5cbiIpOwog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xhc3NO
YW1lfTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
IGRlc2NyaXB0b3IpXG4iKTsKQEAgLTEwMzUsNyArMTA0Miw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvO1xuIik7CiAgICAgaWYgKCRudW1GdW5jdGlvbnMgPiAwIHx8ICRudW1Db25z
dGFudHMgPiAwIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQ
cm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CisgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6
OlByb3BlcnR5U2xvdCYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yJik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICBib29sIGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9w
ZXJ0eVNsb3QifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvckRlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNs
b3QifTsKQEAgLTE0MzMsMjIgKzE0NDEsMjggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KICAgICBpZiAoJG51
bUNvbnN0YW50cyA+IDAgfHwgJG51bUZ1bmN0aW9ucyA+IDAgfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9KSB7
Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJib29sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5
cGUqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihjZWxs
KTtcbiIpOwogCiAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
ZWxlZ2F0aW5nUHJvdG90eXBlR2V0T3duUHJvcGVydHlTbG90In0pIHsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmIChnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAodGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoJG51
bUNvbnN0YW50cyBlcSAwICYmICRudW1GdW5jdGlvbnMgZXEgMCkgewotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7ICAgICAgICAKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOyAgICAgICAgCiAgICAgICAgIH0gZWxz
aWYgKCRudW1Db25zdGFudHMgZXEgMCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgIiAuIHBy
b3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1lLCBz
bG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdl
dFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJs
ZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVz
In0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIp
OwogICAgICAgICB9IGVsc2lmICgkbnVtRnVuY3Rpb25zIGVxIDApIHsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjbGFzc05h
bWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vz
c29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRj
bGFzc05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDwke2Ns
YXNzTmFtZX1Qcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxl
QWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMi
fSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlTbG90PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmpl
Y3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8JHtjbGFzc05hbWV9UHJvdG90eXBl
LCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4g
IiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgICAgICB9CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIApAQCAtMTU3Miw5ICsxNTg2LDE0IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgIyBBdHRyaWJ1dGVzCiAgICAgaWYgKCRo
YXNHZXR0ZXIpIHsKICAgICAgICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QifSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90In0pIHsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFz
c05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJv
cGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzT2JqZWN0LCAmc19pbmZvKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
IEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1l
LCAkY2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAwKSk7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwpAQCAtMTU4NiwxOCArMTYwNSwyMyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgIGlmICgoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAKICAgICAgICAgICAgICAg
ICAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVH
ZXR0ZXIifSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NO
YW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywg
JnNfaW5mbyk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChw
cm9wZXJ0eU5hbWUgPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGltcGwoKSktPmxlbmd0
aCgpKSB7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsICZzX2luZm8pO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAocHJvcGVydHlOYW1lIDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlz
T2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgoKSkge1xuIik7CiAgICAgICAgICAgICBpZiAoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewot
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90LnNldFZhbHVl
KGdldEJ5SW5kZXgoZXhlYywgcHJvcGVydHlOYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5nZXRC
eUluZGV4KGV4ZWMsIHByb3BlcnR5TmFtZSkpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90LnNldEN1c3Rv
bUluZGV4KHRoaXMsIHByb3BlcnR5TmFtZSwgaW5kZXhHZXR0ZXIpO1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhp
c09iamVjdCwgcHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0LT5pbmRleEdldHRlcik7XG4iKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1
cm4gdHJ1ZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiB0aGlzT2Jq
ZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhl
YywgcHJvcGVydHlOYW1lKSwgc2xvdCk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAifVxuXG4iKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTMxNTYsNyArMzE4MCw4IEBA
IHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgICAgIHJldHVybiBwdHI7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgfVxuXG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6
OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87
XG4iKTsKIApAQCAtMzIxMSw5ICszMjM2LDE0IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVm
aW5pdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigke251bWJl
ck9mY29uc3RydWN0UGFyYW1ldGVyc30pLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51
bSk7XG4iKSBpZiAkbnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzOwogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIn1cblxuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y29u
c3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwor
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06Omdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIntcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAgIAorICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7
XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVl
U2xvdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwgSlNET01XcmFwcGVyPihleGVjLCAmJHtjb25z
dHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwor
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PCR7
Y29uc3RydWN0b3JDbGFzc05hbWV9LCBKU0RPTVdyYXBwZXI+KGV4ZWMsICYke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfVRhYmxlLCBzdGF0aWNfY2FzdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSo+KGNl
bGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
fVxuXG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNs
YXNzTmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KVxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGRhOTkxMWVjNWQyYmU4MTZmMDJhMTRj
ODNjMDhlMmRlMjJmMDAyOGMuLmEwMGRlNDRmMDNhMTA2ZTM1OGUxMDQyOWIyZDdkYmZlMzhjM2Mx
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC04Niw3ICs4Niw4IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90
Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwog
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlw
ZSkKQEAgLTExNCw5ICsxMTUsMTQgQEAgdm9pZCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamUKICAgICBwdXRE
aXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
LCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
cjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAg
cmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciwgSlNE
T01XcmFwcGVyPihleGVjLCAmSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgdGhpcywg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7
CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
ciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwg
c3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0xODgsMTAgKzE5
NCwxNiBAQCBKU09iamVjdCogSlNUZXN0SW50ZXJmYWNlOjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBKU1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGU6OmNyZWF0ZShleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgSlNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkp
OwogfQogCi1ib29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCitib29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7
Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RJbnRlcmZhY2UsIEJhc2U+KGV4
ZWMsICZKU1Rlc3RJbnRlcmZhY2VUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Cit9CisKK2Jvb2wgSlNUZXN0SW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpTVGVzdEludGVyZmFjZSogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTVGVzdEludGVyZmFjZSo+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7CisgICAgcmV0dXJuIGdldFN0YXRpY1Zh
bHVlU2xvdDxKU1Rlc3RJbnRlcmZhY2UsIEJhc2U+KGV4ZWMsICZKU1Rlc3RJbnRlcmZhY2VUYWJs
ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbnRl
cmZhY2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5oCmluZGV4IDViZmQ4OWYyMjNhNzVmODU5ZTdmMzNjZGIyODE4OTVhMGM3
NzkwMmQuLmQwOGE5NDhiMmZlNzE5NDA0MTFjZjZjYjM1MzE3ZTc2OWE2ZjJmYzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmgKQEAgLTQyLDcgKzQyLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwCmluZGV4IDNiZjQzODlkMjJiNjA4MDA1MWRlYmI0MzI2N2QwZDUwNTYy
YmUzYjguLmExYzY0MmU0ZDdmOGM3NjJlYzFhNmM1N2JlMjk2NzUzNmJkZjRiMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTg3LDcgKzg3LDgg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAg
ICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
VmFsdWUgcHJvdG90eXBlKQpAQCAtMTEyLDkgKzExMywxNCBAQCB2b2lkIEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVj
LCBKUwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5wcm90b3R5cGUsIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OnNl
bGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KIAotYm9v
bCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1
cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1
Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNv
bnN0cnVjdG9yVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCiti
b29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGlj
VmFsdWVTbG90PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvciwgSlNET01X
cmFwcGVyPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yVGFi
bGUsIHN0YXRpY19jYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcio+
KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IpCkBAIC0xNDksOSArMTU1LDE1IEBAIEpTT2JqZWN0KiBKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPCiAgICAgcmV0dXJuIGdldERPTVByb3RvdHlwZTxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyPihleGVjLCBnbG9iYWxPYmplY3QpOwogfQogCi1ib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4o
ZXhlYywgJkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGVUYWJsZSwgdGhpcywg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJv
dG90eXBlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lclByb3RvdHlwZSo+KGNlbGwpOworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8
SlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlVGFi
bGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0xNzgsMTAgKzE5MCwxNiBAQCBKU09iamVjdCogSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYQogICAgIHJldHVybiBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90
eXBlOjpjcmVhdGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIEpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlw
ZSgpKSk7CiB9CiAKLWJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1
ZVNsb3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciwgQmFzZT4oZXhlYywgJkpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Cit9CisKK2Jvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcio+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgJnNfaW5mbyk7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLCBCYXNlPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lclRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmgKaW5kZXggNmMxNDJlOWQ5ZmE2ZGYxNGU5OWNlZjc0MTMyNzgxZTJjOTY5NDIxNi4uOWI3
ZTM2MjRkNGI1ZmJlYzBmNDliYWE4ZTlkOWNiMmQ4NjY5OTk5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00MCw3ICs0MCw4IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwog
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKQEAgLTc1LDcgKzc2LDgg
QEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2lu
Zm87Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAg
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAKaW5kZXggYzAyNGE0NTFkNzkwMzJmZWE1OGY0YmE5YjI4NDlmYmU1MTA2MjY4
Yy4uYmQyYWRlNGFlNTEyNzM5ZjIzMTkzNWIwOTdiMDE2M2U3ZmZjZWY2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAK
QEAgLTE4OSw3ICsxODksOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0yMTQsOSArMjE1LDE0IEBAIHZv
aWQgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsCiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxm
KGV4ZWMsIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiB9CiAKLWJvb2wg
SlNUZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9v
bCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0T2JqQ29uc3RydWN0
b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGUsIHRoaXMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTVGVzdE9iakNvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0T2JqQ29uc3RydWN0b3IsIEpTRE9NV3Jh
cHBlcj4oZXhlYywgJkpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGUsIHN0YXRpY19jYXN0PEpTVGVz
dE9iakNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wg
SlNUZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKQpAQCAtMzA2LDkgKzMxMiwxNSBAQCBKU09iamVjdCogSlNUZXN0T2JqUHJv
dG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dAogICAgIHJldHVybiBnZXRET01Qcm90b3R5cGU8SlNUZXN0T2JqPihleGVjLCBnbG9iYWxPYmpl
Y3QpOwogfQogCi1ib29sIEpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCitib29sIEpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rlc3RPYmpQcm90b3R5cGU6
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0
dXJuIGdldFN0YXRpY1Byb3BlcnR5U2xvdDxKU1Rlc3RPYmpQcm90b3R5cGUsIEpTT2JqZWN0Pihl
eGVjLCAmSlNUZXN0T2JqUHJvdG90eXBlVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CisgICAgSlNUZXN0T2JqUHJvdG90eXBlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0
T2JqUHJvdG90eXBlKj4oY2VsbCk7CisgICAgcmV0dXJuIGdldFN0YXRpY1Byb3BlcnR5U2xvdDxK
U1Rlc3RPYmpQcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAmSlNUZXN0T2JqUHJvdG90eXBlVGFi
bGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0T2Jq
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKQEAgLTMzNSwxMCArMzQ3LDE2IEBAIEpTT2JqZWN0KiBKU1Rlc3RPYmo6OmNyZWF0ZVByb3Rv
dHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0
dXJuIEpTVGVzdE9ialByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0LCBKU1Rlc3RPYmpQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlw
ZSgpKSk7CiB9CiAKLWJvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKK2Jvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICBy
ZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE9iaiwgQmFzZT4oZXhlYywgJkpTVGVzdE9i
alRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rl
c3RPYmo6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7Cisg
ICAgSlNUZXN0T2JqKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oY2VsbCk7
CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAg
ICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE9iaiwgQmFzZT4oZXhlYywgJkpTVGVz
dE9ialRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpT
VGVzdE9iajo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgKaW5kZXggYzNkMWIyNGNiYjE3MWE2NGYyNjkyM2Y4N2ZhZWI1NzFhZDVjOGQzMy4uNDhi
YzE1ZDZhOTYzZDA2OTJhNmJiNWYwZDYwODQ3NjJkZjZjZmNmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtNDAsNyAr
NDAsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0
ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CkBAIC04OSw3ICs5MCw4IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwotICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmlu
ZGV4IDJhZDYxMGJiNmI3NDFjMDFiODgzOWZkMmI4NjU0NWNlZmQxZGJmNjYuLjdmMWI5M2EwMzU5
ZTM2NTU3MzM4MTcwNTNiNThjNjQ4YTNkM2ZkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC04OCw3ICs4OCw4IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAg
c3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1Zh
bHVlIHByb3RvdHlwZSkKQEAgLTExMyw5ICsxMTQsMTQgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KgogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5wcm90b3R5cGUsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlw
ZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogfQog
Ci1ib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlLCB0aGlz
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBw
ZXI+KGV4ZWMsICZKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rv
clRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VD
b25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAgLTE2OCwxMCArMTc0LDE2IEBA
IEpTT2JqZWN0KiBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmNyZWF0ZVBy
b3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsCiAgICAgcmV0dXJuIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xv
YmFsT2JqZWN0LCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CiB9CiAKLWJvb2wgSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKK2Jvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSwgQmFzZT4oZXhlYywgJkpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKK30KKworYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oY2VsbCk7CisgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAgICByZXR1cm4g
Z2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSwg
QmFzZT4oZXhlYywgJkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVRhYmxlLCB0
aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggZjFmYTRkNDRmMGJlNWEzMDYyYjZiOTcwOGE0ZWJhYWQz
Njc1Mzg3MS4uNTFlNjhiZTA1MDE2ODQ2YzAxNmIwN2RkNTZlN2U2MTUzYjk4YTk2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApA
QCAtNDIsNyArNDIsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0lu
Zm8gc19pbmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmlu
ZGV4IGE5OGE5MGUxOTc1MGFkYmY5MzZlZGI3Njk3MWUxNzE0YTVhZGI2ZWYuLjcxYzQzNzgxMzA1
ZDI1MGNjOTM4ZTI1NWI4MGE4YjY5ODdiODY5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfcnVudGltZS5oCkBAIC0xMjMsNyArMTIzLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0
ZToKICAgICBPYmpjRmFsbGJhY2tPYmplY3RJbXAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggNGNmYzM4NGFlNTU2M2Q3ZDE4M2U3MWZlZDdk
NmEwMTFmZDM1MjU1OS4uOWIwMTJkNDQ5MTdkNTQ5NjEwMjYzZTlkOTFlZmYwYjllZTBhY2U0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjA1LDcg
KzIwNSw3IEBAIHZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7
CiB9CiAKLWJvb2wgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCitib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3F0L3F0X2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0
YW5jZS5jcHAKaW5kZXggMGQ2MWE2MDIyOTAyYjBjYzZmNTY0OTAyMjZlNjQ5MDU5ZWEzM2JiNC4u
YWU3NGRhOWFhMDNlOWM1NThkZDQwZjFiMDY2ZDFjNTNiMjNmMTM3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgUGFzc1JlZlB0
cjxRdEluc3RhbmNlPiBRdEluc3RhbmNlOjpnZXRRdEluc3RhbmNlKFFPYmplY3QqIG8sIFBhc3NS
ZWZQdHI8Um9vdE9iamUKIAogYm9vbCBRdEluc3RhbmNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gb2JqZWN0LT5KU09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0
dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQogCiB2b2lkIFF0SW5zdGFuY2U6OnB1dChKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1
bnRpbWUuY3BwCmluZGV4IGMzYTdhM2QwYTY1ZDA1N2E0MmRlZmI0MDRiNDA2NzFmOTg2ODUzMTAu
LjdjNmUzYTQ0YWE0N2ExNjIxZGRjNmE1MjA0MjM2MmVhZTBkOWU1NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKQEAgLTE0OTQsNyArMTQ5NCw3IEBAIENhbGxUeXBl
IFF0UnVudGltZU1ldGFNZXRob2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1ib29sIFF0UnVudGltZU1ldGFN
ZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBRdFJ1bnRpbWVNZXRh
TWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0
dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
fQpAQCAtMTc0MSw3ICsxNzQxLDcgQEAgQ2FsbFR5cGUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhv
ZDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogICAgIHJldHVybiBD
YWxsVHlwZUhvc3Q7CiB9CiAKLWJvb2wgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAppbmRleCA5ODE5N2Y1OTk4Mjc0NDE5YzEwMmMz
ZTM4NTk2OTQzYjVmYjY2ODVkLi5hYTlkNThkOGI1NWEwMzI1YjE3MzQ0OGFiNGU2MGVmNmM0M2Jk
MjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKQEAgLTE2NCw3ICsxNjQs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtZXRob2Q7CiAgICAgfQogCi0gICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVE
b250RW51bVByb3BlcnRpZXMpOwpAQCAtMjA1LDcgKzIwNSw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIG1ldGhvZDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlICosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggODBlMmE4Zjk1MWUxY2U1
M2IyZjM2YTZmYjE1NWMyM2I0OGU4ODliOC4uYjY0OWM0N2UyZjM4YmFmNWJmNmEzMDY3M2Y2OTRi
YTc4ZjQ4MjEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJy
YXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAt
NzgsNyArNzgsNyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZQogICAgIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi1ib29sIFJ1
bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFJ1bnRpbWVB
cnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
QEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcAogICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvcik7CiB9CiAKLWJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlICpleGVjLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBS
dW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlICpleGVjLCB1
bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaW5kZXgsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX2FycmF5LmgKaW5kZXggYTNkNDQ1OGI2Yjg4ZDMzYzk0MzNkNjA5OTI2OGYyNGEz
NDA4MjdkZi4uZGE5M2M5NDVkNTFhMzdkM2Y4MTEwMmQ1NGRmOGM2OGJhYWM5YjgyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC01MCw5ICs1MCw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5SdW50aW1lQXJyYXkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25N
b2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKLSAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlT
bG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRleCA1OTUzMGFlNzdkNjYzOTMy
MmIyYjk4OGYzMDZjNmEwMGMyNjg4ODE1Li5jYTkxYjhkMTU4ZWU5NDczYjE4NTg0YzIwZGU3ZmU5
MTgwMDliNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRo
b2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAg
LTY5LDcgKzY5LDcgQEAgSlNWYWx1ZSBSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0
YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmkKICAgICByZXR1cm4ganNOdW1i
ZXIodGhpc09iai0+X21ldGhvZExpc3QtPmF0KDApLT5udW1QYXJhbWV0ZXJzKCkpOwogfQogCi1i
b29sIFJ1bnRpbWVNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBS
dW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCBjNWY2NmE2
MmY2MWI4MmNlNjk1NzkzMTEwNTAwOWFiY2MxMDgwNGM3Li4wODg1ZGJlNmUxZDFkYTY0N2I5OTNh
YjRjZmU1Y2RhMjIzMDU4N2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
aApAQCAtNjYsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIEpT
VmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXIm
KTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5jcHAKaW5kZXggMTMzOGNmODY1Y2U0Y2Y0YWJkZTA2YTk0ZGE0MmY3NjQxMjQ0NzE2Zi4u
OWIzZjA4MWQxYzU5NDc1ZDdhODdkMGQzYmZjNDE1ZDZmMTAwNWI2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgSlNWYWx1ZSBS
dW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBjb25zdCBJZGUKICAgICByZXR1cm4gbWV0aG9kOwogfQogCi1ib29sIFJ1bnRpbWVPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBSdW50aW1lT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCAwNjZkNzczN2UzMjQ2NGU1ODYyMTE4
NWU2NGE1NzMzZGIxZWVkZWZjLi44YzViNTA1ZDc0MjY3YjVlOTg4MjA0MmI1ODQ0OTRmNDhmMzZi
YjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtNDUsNyArNDUs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5SdW50aW1lT2JqZWN0KCk7CiAKLSAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDdhNjY5YjY3NjA3NTRhYWU3ZTY1YmIzMjUwOTFjZGNjYzBmMTU1YWYuLmM3NGNjNDE1ZjYzNjQ5
YzQ1MDJiM2NhNzU5NjdiOGY5OWY1ZWMxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMS0xMC0xMSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5h
bWVkIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90IHRvIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaW4gcHJlcGFyYXRpb24gZm9yIHdoZW4gd2UgYWRk
IHRoZSBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IHRvIHRoZSBNZXRob2RUYWJsZSAKKyAgICAg
ICAgaW4gQ2xhc3NJbmZvLgorCisgICAgICAgIEFsc28gYWRkZWQgYSBmZXcgc3RhdGljIGdldE93
blByb3BlcnR5U2xvdCBmdW5jdGlvbnMgd2hlcmUgdGhleSBoYWQgYmVlbiBvdmVybG9va2VkIAor
ICAgICAgICBiZWZvcmUgKGVzcGVjaWFsbHkgaW4gQ29kZUdlbmVyYXRvckpTLnBtKS4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKwogMjAxMS0x
MC0xMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFj
XSBTaG91bGQgYmUgYWJsZSB0byBkaXNwbGF5IG11bHRpLXBhZ2UgUERGcyBpbiBzdWJmcmFtZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmNwcAppbmRleCA1M2Y1ODYwMWMwYTk2NjgxYzg1NDE4YmNkMzRkY2FiNDJl
MDBhMWY0Li40NmFjMzhmM2JjMTRkM2QwM2E1ZjFmNDUyM2E3YWE1MTA2ZDc4ZWY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuY3BwCkBAIC0yNTIsNyArMjUyLDcgQEAgQ29uc3RydWN0VHlwZSBKU05QT2JqZWN0
OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCogY2VsbCwgQ29uc3RydWN0RGF0YSYgY29uc3RydWMK
ICAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7CiB9CiAKLWJvb2wgSlNOUE9iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTTlBPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRl
eCAyM2ZmYzhmYzkyMzJkYjM0YWYwMjEzY2Y3M2U3MWNhZTI5NzU2MTYwLi43NzkzODY5Nzc2ZmEx
NDdiMDE4NGVlN2IwNWMyYTE4N2I5YWE3ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKQEAgLTgzLDcgKzgz
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1
Y3REYXRhKEpTQzo6Q29uc3RydWN0RGF0YSYpOwogICAgIHN0YXRpYyBKU0M6OkNvbnN0cnVjdFR5
cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q29uc3RydWN0RGF0YSYpOwog
Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwor
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUs
IEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110573</attachid>
            <date>2011-10-11 14:08:21 -0700</date>
            <delta_ts>2011-10-13 10:37:19 -0700</delta_ts>
            <desc>Fix windows</desc>
            <filename>bug-69810-20111011140823.patch</filename>
            <type>text/plain</type>
            <size>168550</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxNjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggYTU2MDM1YjlhNGQzM2UyOTFiNTYwYTU2NzE2YzMwMmFh
ZWJhODM0YS4uNjM1ZDljZmQwNGFmMGU1ODFmNGEyMzFhODM3MzkxNWI5ZWU5NDBkMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE3OCw3ICsx
NzgsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05h
bWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAogICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAppbmRleCA4ZWUwNjA2MjdlYjQ2YmFhMjZkYWFkZTBkYzQyMTc5ZTdk
ZDVhY2JlLi5hZmIwZWNiNmUzNzdiN2U2N2U5ZTA3OWMzZjdiNDJhNTBiOGY0YzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaApAQCAtMTI0LDIwICsxMjQsMjcgQEAgVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmNsYXNzTmFtZSgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1ib29s
IEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KK2Jv
b2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CiAgICAgSlNDb250ZXh0UmVmIGN0
eCA9IHRvUmVmKGV4ZWMpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsK
KyAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYodGhpc09iamVjdCk7CiAgICAgUmVmUHRy
PE9wYXF1ZUpTU3RyaW5nPiBwcm9wZXJ0eU5hbWVSZWY7CiAgICAgCi0gICAgZm9yIChKU0NsYXNz
UmVmIGpzQ2xhc3MgPSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFy
ZW50Q2xhc3MpIHsKKyAgICBmb3IgKEpTQ2xhc3NSZWYganNDbGFzcyA9IHRoaXNPYmplY3QtPmNs
YXNzUmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNzLT5wYXJlbnRDbGFzcykgewogICAg
ICAgICAvLyBvcHRpb25hbCBvcHRpbWl6YXRpb24gdG8gYnlwYXNzIGdldFByb3BlcnR5IGluIGNh
c2VzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGtub3cgaWYgdGhlIHByb3BlcnR5IGV4aXN0cwogICAg
ICAgICBpZiAoSlNPYmplY3RIYXNQcm9wZXJ0eUNhbGxiYWNrIGhhc1Byb3BlcnR5ID0ganNDbGFz
cy0+aGFzUHJvcGVydHkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQogICAg
ICAgICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocHJv
cGVydHlOYW1lLnVzdHJpbmcoKSk7CiAgICAgICAgICAgICBBUElDYWxsYmFja1NoaW0gY2FsbGJh
Y2tTaGltKGV4ZWMpOwogICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KGN0eCwgdGhpc1JlZiwg
cHJvcGVydHlOYW1lUmVmLmdldCgpKSkgewotICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIGNhbGxiYWNrR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzT2JqZWN0LCBjYWxsYmFja0dldHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNh
bGxiYWNrIGdldFByb3BlcnR5ID0ganNDbGFzcy0+Z2V0UHJvcGVydHkpIHsKQEAgLTE2Miw3ICsx
NjksNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAgICAgICAgaWYgKE9w
YXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3Rh
dGljVmFsdWVzKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAoc3RhdGljVmFsdWVzLT5jb250YWlu
cyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBnZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgICAgIEpT
VmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0LT5nZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICBz
bG90LnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC0xNzIsMjAgKzE3OSwyMCBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAg
ICAgICAgaWYgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNGdW5jdGlvbnNUYWJsZSogc3RhdGljRnVuY3Rp
b25zID0ganNDbGFzcy0+c3RhdGljRnVuY3Rpb25zKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAo
c3RhdGljRnVuY3Rpb25zLT5jb250YWlucyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAg
ICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKTsKKyAg
ICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNGdW5jdGlvbkdl
dHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIHRl
bXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgUHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKGdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CisgICAgaWYgKGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBJZGVhbGx5IHdlIHNob3VsZCByZXR1
cm4gYW4gYWNjZXNzIGRlc2NyaXB0b3IsIGJ1dCByZXR1cm5pbmcgYSB2YWx1ZSBkZXNjcmlwdG9y
IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICghZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCkBAIC01OTYsNyArNjAzLDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZQogICAgIAog
ICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHkuCiAgICAgUHJvcGVy
dHlTbG90IHNsb3QyKHRoaXNPYmopOwotICAgIGlmICh0aGlzT2JqLT5QYXJlbnQ6OmdldE93blBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QyKSkKKyAgICBpZiAoUGFyZW50Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90MikpCiAg
ICAgICAgIHJldHVybiBzbG90Mi5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIAog
ICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iai0+Y2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA0NzJjYTk0ZGI5ODFmM2Q4YjAxYzc3MDI5NzMyNjM4YTdiNjkyOGFmLi45NzcwZGJm
ZWM1NmEwM2I1ZDUzYzYwOTJjOTY0YjUzMGJhNWQyZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDIgQEAKKzIwMTEtMTAtMTEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRv
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdmlydHVhbCB2ZXJzaW9uIG9mIGdldE93blBy
b3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGluIHByZXBh
cmF0aW9uIGZvciB3aGVuIHdlIGFkZCB0aGUgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCB0byB0
aGUgTWV0aG9kVGFibGUgCisgICAgICAgIGluIENsYXNzSW5mby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgZmV3IHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgZnVuY3Rpb25zIHdoZXJlIHRoZXkg
aGFkIGJlZW4gb3Zlcmxvb2tlZCAKKyAgICAgICAgYmVmb3JlIChlc3BlY2lhbGx5IGluIENvZGVH
ZW5lcmF0b3JKUy5wbSkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAg
ICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoSlNDOjo6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6Cisg
ICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6Omdl
dE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6QXJy
YXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwp
OgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L0Jvb2xlYW5Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90
b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpEYXRlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAg
ICAgIChKU0M6OkpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXku
Y3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToK
KyAgICAgICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6
CisgICAgICAgIChKU0M6OkpTQm91bmRGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50
aW1lL0pTQnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnB1dCk6CisgICAgICAg
ICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmpl
Y3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpT
dHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkpOgorICAgICAgICAoSlNDOjpK
U09OT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6V2Fs
a2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omhhc093blByb3BlcnR5KToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpmYXN0R2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmdldCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0
Lmg6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6OkpTU3Ry
aW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6OmdldFN0YXRpY1Byb3BlcnR5
U2xvdCk6CisgICAgICAgIChKU0M6OmdldFN0YXRpY0Z1bmN0aW9uU2xvdCk6CisgICAgICAgIChK
U0M6OmdldFN0YXRpY1ZhbHVlU2xvdCk6CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6
CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9y
Lmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlND
OjpPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAq
IHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmg6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwTWF0Y2hlc0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmpl
Y3QuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OlJlZ0V4cFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAg
ICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0
cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGlt
ZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6
CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaDoKKwogMjAxMS0xMC0xMSAg
R2F2aW4gQmFycmFjbG91Z2ggIDxiYXJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBTd2l0
Y2ggUmVnaXN0ZXJTaXplZEJvb2xlYW4vZGZnQ29udmVydEpTVmFsdWVUb0ludDMyIHJldHVybiB0
eXBlIHRvIHNpemVfdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5k
ZXggZmFhNWVjMjk1NmJjMWNjYzViM2E4N2U3ZDU5ZmMxY2M2YzI0MTMzNC4uMTgyZmY1YzZlZGIz
MzEwMzQ1OGUxNzQ5MmQ5ZGNiZjZmOTg4N2I2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCkBAIC0xNDgsOCArMTQ4LDYgQEAgX19aTjNKU0MxMlNtYWxsU3RyaW5n
czE3Y3JlYXRlRW1wdHlTdHJpbmdFUE5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0MxMlNtYWxs
U3RyaW5nczI3Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3RyaW5nRVBOU18xMkpTR2xvYmFsRGF0YUVo
CiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QxNGZpbmlzaENyZWF0aW9u
RVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTU3RyaW5nRQotX19aTjNKU0MxMlN0cmluZ09iamVj
dDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJO
U18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDMTJTdHJpbmdPYmplY3QxOGdldE93blByb3BlcnR5
U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxMlN0cmlu
Z09iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0
eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3Qy
NGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0M3B1dEVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9w
ZXJ0eVNsb3RFCkBAIC0xNjcsOCArMTY1LDkgQEAgX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTNj
bGVhclJhcmVEYXRhRVBOU182SlNDZWxsRQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTN2aXNp
dENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNKU0MxNEpTR2xv
YmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBOUzBfMThHbG9iYWxQcm9wZXJ0eUluZm9FaQog
X19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVqCi1fX1pOM0pTQzE0SlNHbG9iYWxPYmpl
Y3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVS
TlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3Bl
cnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNf
MTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNGdldE93blByb3BlcnR5
RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0
eURlc2NyaXB0b3JFCitfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNWdldE93blByb3BlcnR5U2xv
dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlT
bG90RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFICAKIF9fWk4zSlND
MTRKU0dsb2JhbE9iamVjdDRpbml0RVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxP
YmplY3Q2c19pbmZvRQpAQCAtMjYwLDggKzI1OSw4IEBAIF9fWk4zSlNDNkpTQ2VsbDExZ2V0Q2Fs
bERhdGFFUFMwX1JOU184Q2FsbERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVj
dERhdGFFUk5TXzEzQ29uc3RydWN0RGF0YUUKLV9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVy
dHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xv
dEUKLV9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpS
TlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzZKU0NlbGwyNWdldE93blByb3BlcnR5U2xvdFZp
cnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90
RQorX19aTjNKU0M2SlNDZWxsMjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0
YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUK
IF9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRSAgCiBfX1pO
M0pTQzZKU0NlbGw5Z2V0T2JqZWN0RXYKQEAgLTI4MCw3ICsyNzksNyBAQCBfX1pOM0pTQzdKU0Fy
cmF5MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNK
U0M3SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0M3
SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN0FyZ0xpc3RF
CiBfX1pOM0pTQzdKU0FycmF5MTVzZXRTdWJjbGFzc0RhdGFFUHYKLV9fWk4zSlNDN0pTQXJyYXkx
OGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQor
X19aTjNKU0M3SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhl
Y1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzdKU0FycmF5NnNfaW5mb0UKIF9f
Wk4zSlNDN0pTQXJyYXk5c2V0TGVuZ3RoRWoKIF9fWk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0ds
b2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCkBAIC0zMjMsMTIgKzMyMiwxMiBAQCBfX1pOM0pTQzhK
U09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFTlNfN0pTVmFsdQogX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185
RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRWpiUk5TXzE1UHV0UHJvcGVy
dHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0
YXRlRWpOU183SlNWYWx1ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90
RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCi1fX1pOM0pT
QzhKU09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9w
ZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4
ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9f
Wk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmpl
Y3QyMmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RFUk5TXzEyUHJvcGVydHlTbG90RVBOU18xNldyaXRl
QmFycmllckJhc2VJTlNfN1Vua25vd25FRUUKIF9fWk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0ZVBy
b3BlcnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERhdGFFbW0KIF9fWk4zSlNDOEpTT2JqZWN0MjRn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
Uk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQorX19aTjNKU0M4SlNPYmplY3QyNWdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4z
SlNDOEpTT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNW
YWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlF
eGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QzcHV0RVBOU182SlNDZWxs
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFBy
b3BlcnR5U2xvdEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYKaW5kZXggN2M3OTdkM2EzOGI3NjQzODkwNWUxMWRiMmVkMGZjOWI0OWZmYmJm
Yy4uZjBjODdhNjU0ODEyOGEzNTBjZWI3NDEyZDFjNmIwMmY5YmY1YTc0MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTE5OSwx
NSArMTk5LDEwIEBAIEVYUE9SVFMKICAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU09iamVjdEBK
U0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRp
b25Nb2RlQDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU1ZhcmlhYmxlT2JqZWN0QEpT
Q0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlv
bk1vZGVAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQFN0cmluZ09iamVjdEBKU0NAQFVB
RVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRpb25Nb2Rl
QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTQXJyYXlASlNDQEBVQUVfTlBBVkV4ZWNT
dGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RASlND
ZWxsQEpTQ0BARUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlT
bG90QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTQ2VsbEBKU0NAQEVBRV9OUEFWRXhl
Y1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEBK
U0dsb2JhbE9iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFB
VlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEBKU09iamVjdEBKU0NA
QFVBRV9OUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blBy
b3BlcnR5U2xvdEBKU1N0cmluZ0BKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmll
ckAyQEFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEBKU1N0cmlu
Z0BKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dl
dE93blByb3BlcnR5U2xvdEBTdHJpbmdPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFC
VklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eVNs
b3RAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90
QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTQXJyYXlASlNDQEBTQV9OUEFWSlNDZWxs
QDJAUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCisgICAgP2dldE93blByb3Bl
cnR5U2xvdFZpcnR1YWxASlNDZWxsQEpTQ0BARUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVy
dHlTbG90QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEBKU0dsb2JhbE9iamVj
dEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5U2xv
dEAyQEBaCisgICAgP2dldE93blByb3BlcnR5U2xvdFZpcnR1YWxASlNPYmplY3RASlNDQEBVQUVf
TlBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgogICAgID9nZXRQcm9wZXJ0eURl
c2NyaXB0b3JASlNPYmplY3RASlNDQEBRQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJA
MkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRQcm9wZXJ0eU5hbWVzQEpTT2Jq
ZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVt
ZXJhdGlvbk1vZGVAMkBAWgogICAgID9nZXRTbGljZUBBcmdMaXN0QEpTQ0BAUUJFWEhBQVYxMkBA
WgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0
aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3Rp
dmF0aW9uLmNwcAppbmRleCAwY2Y5N2YyNTk3Nzk4NTYyZjM0NGM4NjY5ZGExZDdiY2E0YjlhYmFk
Li40ZTkwNjgwYzgyYWRmYzdmMmJkZGQ2ZTc1ODUxOTMyMTEyNDUzYzQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApA
QCAtNjAsMTQgKzYwLDE0IEBAIFVTdHJpbmcgRGVidWdnZXJBY3RpdmF0aW9uOjpjbGFzc05hbWUo
KSBjb25zdAogICAgIHJldHVybiBtX2FjdGl2YXRpb24tPmNsYXNzTmFtZSgpOwogfQogCi1ib29s
IERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29s
IERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2FjdGl2YXRpb24tPmdldE93blByb3BlcnR5
U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxE
ZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIHZvaWQgRGVidWdnZXJB
Y3RpdmF0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCA3
YTU1YTdhMzk1ODRhZTdkOWJiNWFlOTRkY2EwMGQ1OWQ1OTQ0OTk1Li40ZGVmMGViN2MwZTk1ZTU2
OTUzYWI0OTcwMDc2OTM0OGE4NTY3NTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwg
U2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0
OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAK
aW5kZXggYzQ5NGRhMTMyYzJhMzA1OTQzMmYyMjIyMTRjOTVjZjA0ZTljNGFiNS4uMzU1ZGQyMDM3
NDU3MmQzYTAwMTViN2ZiZmM1MTc5MWE2NDBkNTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBBcmd1bWVu
dHM6OmZpbGxBcmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywgTWFya2VkQXJndW1lbnRCdWZmZXImIGFy
Z3MpCiAgICAgfQogfQogCi1ib29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBBcmd1bWVu
dHM6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBp
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBpLCBzbG90KTsKIH0KQEAgLTE4OCwzNSArMTg4LDQxIEBAIHZvaWQgQXJndW1l
bnRzOjpjcmVhdGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNlc3NhcnkoRXhlY1N0YXRlKiBleGVjKQog
ICAgIGRlZmluZU93blByb3BlcnR5KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUs
IGRlc2NyaXB0b3IsIGZhbHNlKTsKIH0KIAotYm9vbCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQorYm9vbCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEFyZ3VtZW50cyogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+KGNlbGwpOwogICAgIGJvb2wgaXNBcnJh
eUluZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9BcnJheUluZGV4KGlzQXJy
YXlJbmRleCk7Ci0gICAgaWYgKGlzQXJyYXlJbmRleCAmJiBpIDwgZC0+bnVtQXJndW1lbnRzICYm
ICghZC0+ZGVsZXRlZEFyZ3VtZW50cyB8fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkpIHsKLSAg
ICAgICAgaWYgKGkgPCBkLT5udW1QYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZh
bHVlKGQtPnJlZ2lzdGVyc1tkLT5maXJzdFBhcmFtZXRlckluZGV4ICsgaV0uZ2V0KCkpOworICAg
IGlmIChpc0FycmF5SW5kZXggJiYgaSA8IHRoaXNPYmplY3QtPmQtPm51bUFyZ3VtZW50cyAmJiAo
IXRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHMgfHwgIXRoaXNPYmplY3QtPmQtPmRlbGV0
ZWRBcmd1bWVudHNbaV0pKSB7CisgICAgICAgIGlmIChpIDwgdGhpc09iamVjdC0+ZC0+bnVtUGFy
YW1ldGVycykgeworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5kLT5yZWdp
c3RlcnNbdGhpc09iamVjdC0+ZC0+Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGldLmdldCgpKTsKICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzbG90LnNldFZhbHVlKGQtPmV4dHJhQXJndW1lbnRz
W2kgLSBkLT5udW1QYXJhbWV0ZXJzXS5nZXQoKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QtPmQtPmV4dHJhQXJndW1lbnRzW2kgLSB0aGlzT2JqZWN0LT5kLT5udW1QYXJh
bWV0ZXJzXS5nZXQoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCAmJiBMSUtFTFkoIWQt
Pm92ZXJyb2RlTGVuZ3RoKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKGpzTnVtYmVyKGQtPm51
bUFyZ3VtZW50cykpOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLmxlbmd0aCAmJiBMSUtFTFkoIXRoaXNPYmplY3QtPmQtPm92ZXJyb2RlTGVuZ3RoKSkgewor
ICAgICAgICBzbG90LnNldFZhbHVlKGpzTnVtYmVyKHRoaXNPYmplY3QtPmQtPm51bUFyZ3VtZW50
cykpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUgJiYgTElLRUxZKCFkLT5vdmVycm9kZUNh
bGxlZSkpIHsKLSAgICAgICAgaWYgKCFkLT5pc1N0cmljdE1vZGUpIHsKLSAgICAgICAgICAgIHNs
b3Quc2V0VmFsdWUoZC0+Y2FsbGVlLmdldCgpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUgJiYgTElLRUxZKCF0aGlzT2JqZWN0LT5kLT5vdmVy
cm9kZUNhbGxlZSkpIHsKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5kLT5pc1N0cmljdE1vZGUp
IHsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+ZC0+Y2FsbGVlLmdldCgp
KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9Ci0gICAgICAgIGNyZWF0ZVN0
cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShleGVjKTsKKyAgICAgICAgdGhpc09iamVjdC0+Y3Jl
YXRlU3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KGV4ZWMpOwogICAgIH0KIAotICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlciAmJiBkLT5pc1N0cmlj
dE1vZGUpCi0gICAgICAgIGNyZWF0ZVN0cmljdE1vZGVDYWxsZXJJZk5lY2Vzc2FyeShleGVjKTsK
KyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIgJiYg
dGhpc09iamVjdC0+ZC0+aXNTdHJpY3RNb2RlKQorICAgICAgICB0aGlzT2JqZWN0LT5jcmVhdGVT
dHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhlYyk7CiAKLSAgICByZXR1cm4gSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVy
biBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzLmgKaW5kZXggNmIxZmEwODhiYjU3N2IyOTc1NDMzZTI1MTU2MWE5OGE3ZjY3NDlk
Ni4uYjU4Zjk1N2E2ZTJkZTM0ZGQwMjhhMWRkMGVhMDkyMDExYTQ0NjcxMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTEyNCw5ICsxMjQsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZ2V0QXJndW1lbnRzRGF0
YShDYWxsRnJhbWUqLCBKU0Z1bmN0aW9uKiYsIHB0cmRpZmZfdCYgZmlyc3RQYXJhbWV0ZXJJbmRl
eCwgUmVnaXN0ZXIqJiBhcmd2LCBpbnQmIGFyZ2MpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVBy
b3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmNwcAppbmRleCBmNTU0ZTQxYTRmY2FmZjllOTAyOTM2Nzk2MDk1YmJmYTFlYTRk
YzE3Li4xOGM5NjlkYzM3NjZkZjQ0YTA5NzAwZTZiYTY0NmYyYWIxMTY3MDU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcApAQCAt
NjMsOSArNjMsMTQgQEAgdm9pZCBBcnJheUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEFycmF5UHJvdG90eXBlKiBhcnJheVByb3QKICAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9
CiAKLWJvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3Qp
Citib29sIEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAm
c2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEludGVybmFsRnVuY3Rp
b24+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBBcnJheUNvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQoreworICAgIHJldHVy
biBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRl
OjphcnJheUNvbnN0cnVjdG9yVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PEFycmF5Q29uc3RydWN0
b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBBcnJheUNvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAppbmRl
eCAwZWEzZTQyYmNkMjE5MTNiNjgzOGQyNmVhYjAxNTMxYzk1Mzg3YWFhLi5hZmY3MWJlOGI0ZTgx
Y2RlNGU5YTIyMzIxZjQyNzI2ZDc5NzkxYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQXJyYXlDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCmluZGV4IGNmMTYxNjAzYTM0ZjE1OTMzNmJjMzk1ZTdkZDgyNDlhMWY1N2VjZWQuLjg5ZWNh
YTk5NGYxNWMwNjg3ZDk4ZGI2ZmM3NWM2MjA0NTQyNjAwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEyNSw3ICsxMjUsNyBA
QCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKLWJvb2wgQXJy
YXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBBcnJheVBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJl
dHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCmlu
ZGV4IDljODYwYzZjNDNlOWZhOTM4YThmYTFlN2ZjYjU2MjlkMmI5MmYzODIuLmIyM2M3NjYzNjUy
YTE0ZWVmMjk2N2NiN2E4MWIxODQ3OTdlYWJhNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgICAgIH0KICAgICAgICAg
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCmluZGV4IGU3NDhkZTJi
MTliNTg3YTNkYmZkN2MyOGMyNmY3NmY0YWZhNDFjODUuLjc2MDlkNGU3NThjMDFhNjk3ZWNmZTg3
MzE2Nzc2MWE1M2I5MDE0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgQm9vbGVhblBy
b3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCop
CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotYm9vbCBCb29sZWFuUHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgQm9vbGVhblByb3RvdHlw
ZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAppbmRl
eCBiMGI0ZjU1MGVmMjkzODY2YTA1N2UxMjU0YzFhZTA1ZmY0ZTBhNDZmLi43MDdhN2VmMDkwZWM3
NjlmYzNhMjEwNjM4ODI1NTMyYzJlMDNjNTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQm9vbGVhblByb3RvdHlwZShFeGVjU3Rh
dGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3Bw
CmluZGV4IGY0NDBhNjRiZmE1ZjY1MzBjZGNlZjc0MmQ5M2RkY2NlYTJhYTEzMjEuLjFkZGY2ZjAw
Njc2ZjI3YzBiMjUxZWY3MmQ1NTBiMmY1ZjFkNWY4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtODUsNyArODUsNyBAQCB2
b2lkIERhdGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBEYXRl
UHJvdG90eXBlKiBkYXRlUHJvdG90eQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4
ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIo
NyksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKIH0KIAotYm9vbCBEYXRlQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBEYXRlQ29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCmlu
ZGV4IGY4MzdkNjZhYWVkMWMzYmJiZWUzOWI3ZDIwNjVjZGNlZTQ4M2IyMjEuLjNmM2I2NjEyY2E5
YzdkNWQzZjllZGIyMzQzNDc3ZDliZGNkYzMxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmKTsKICAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAKaW5kZXggYTY4ZjQ4MzhiYjA2MjY1Yzk3YmMwNDY0MmRmMWM5NDY3N2M4YTgwNy4uYzY4
YjJkMjMzYTczYmNlNDRhNWQyNDMxYTRlNTE1OTlhZGQzZGM0NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAgLTQ0Myw3ICs0NDMsNyBA
QCB2b2lkIERhdGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqKQogICAgIC8vIFRoZSBjb25zdHJ1Y3RvciB3aWxsIGJlIGFkZGVkIGxhdGVy
LCBhZnRlciBEYXRlQ29uc3RydWN0b3IgaGFzIGJlZW4gYnVpbHQuCiB9CiAKLWJvb2wgRGF0ZVBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIERhdGVQcm90b3R5
cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKaW5kZXggNzIw
NTI2MmQyOWI0ODc4YmJhZTA3NDQyYTI1ZTQ0YzRmZGU3MGE2OC4uZGRkNjU0YjdhMjhkMDdkYzk5
ZGMzM2Y1YmU2MGZiOWU0ODlhY2Y3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVQcm90b3R5cGUuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIHByb3RvdHlwZS0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsK
ICAgICAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgICAgIH0KLSAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmNwcAppbmRleCA0MzlkOWE4MzE0N2Y4ZjAxNGQ3NDZjZmY3ZDgz
MmVlZmZhNGM1MmQzLi5hOGE5NTgxOGE4NDE5YWE0ZTJmNTYyOWEzZWVlMWNmMjQwYTQ0MTcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3Bw
CkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgRXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogICAgIHB1dERpcmVjdChleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmco
ZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKIH0KIAotYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIEVycm9yUHJvdG90eXBlOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKaW5kZXggNjVmM2ZmZjVmNmUw
ZmQzNTE2NWQ1M2U5YmIzYTI1MTk1Y2MxMWY3OS4uZjYyZGQ1NTEzOWZhNDE5MTFmYmNjNjI5Mjlm
NzdkNDMzMDg3ZjVlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
clByb3RvdHlwZS5oCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBFcnJvckluc3RhbmNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCA5MGY5MTEwOTQ0
ZTE0MTQ1MjEzZDNkMGU5ZTVkYzIxMzZlZGMzNmE4Li4xYTMyYWZkZDZlM2MyOTA1ZGIxZDMyNDhj
ZDNjOGNjOWM5YTRlMDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBpbmxpbmUgYm9vbCBKU0FjdGl2YXRp
b246OnN5bWJvbFRhYmxlUHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKaW5kZXggN2JlZDI5ZmQzMGMwYjU2ZmMyMjdjZTM4ZjYy
M2IwOWI5MWMxMzNjYi4uMjNiOTdkNmMyZGIyNDlkYTFhMzdhNjVkMmQxZmY5YmI2NDc1ZDA3MiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKQEAgLTYx
LDcgKzYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzQWN0
aXZhdGlvbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1l
cmF0aW9uTW9kZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAK
aW5kZXggMjE3M2ZmMTZkODRhM2U1ZTk1YzBiNTRlYTY0Zjg0YWRhMTUxYzQxNC4uZjlmNmM1MjAw
ZGZlMzQ1MDg1N2VjZDVmZTk1ZTM1NWVkZGEzNWJkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBKU0FycmF5Ojp+SlNBcnJh
eSgpCiAgICAgZmFzdEZyZWUobV9zdG9yYWdlLT5tX2FsbG9jQmFzZSk7CiB9CiAKLWJvb2wgSlNB
cnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJv
cGVydHlTbG90JiBzbG90KQorYm9vbCBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAg
IHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaSwgc2xvdCk7CiB9CkBAIC0y
NTcsNyArMjU3LDcgQEAgYm9vbCBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3AKICAgICAKICAgICBpZiAoaSA+
PSBzdG9yYWdlLT5tX2xlbmd0aCkgewogICAgICAgICBpZiAoaSA+IE1BWF9BUlJBWV9JTkRFWCkK
LSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywg
SWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7CisgICAgICAgICAgICByZXR1cm4gdGhp
c09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBJZGVudGlmaWVyOjpmcm9t
KGV4ZWMsIGkpLCBzbG90KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMjgw
LDcgKzI4MCw3IEBAIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBQcm9wCiAgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShl
eGVjLCBpKSwgc2xvdCk7CiB9CiAKLWJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCitib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgK
aW5kZXggZGJmYzE3MTE0MjU4YTEzNzgyMTg0M2NiOTU3OGIzYTljZGQxNmQzOC4uOWFkOTU0MGIx
MmExMmFmNTVmMzU0ODEyODgxZWY2NGRlMDVhMzQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXkuaApAQCAtOTQsOSArOTQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHByb3RlY3RlZCBhbmQgYWRkIHNldEl0ZW0u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNw
cAppbmRleCA3MWVkMzgwYTIzNjc5N2ZkNmU2ZWQ4NGMxMDZlZWJhM2ZhZThmNTdiLi4wMjQ4N2Q4
MzlhMzM5YWZmYTczOWEyZTUyNzYyYjBhZjE5MzU1MDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKQEAgLTk2LDcgKzk2LDcgQEAg
Ym9vbCBKU0JvdW5kRnVuY3Rpb246Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2YWx1ZSwgSlNWYWx1ZSkKICAgICByZXR1cm4gbV90YXJnZXRGdW5jdGlvbi0+aGFzSW5zdGFu
Y2UoZXhlYywgdmFsdWUsIHByb3RvKTsKIH0KIAotYm9vbCBKU0JvdW5kRnVuY3Rpb246OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0JvdW5kRnVuY3Rpb246OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCmluZGV4IGNjNTE2OTM3NjFm
YWM4OTRkMDkwM2MwYjFjZTI5NWZkMWY1OTBiYTMuLmI0NWUyZDliYWI2NWE0MDgzMmE2ZjJmMDgx
OTJjY2IyZDNiZmVjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQm91bmRGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Qm91bmRGdW5jdGlvbi5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBK
U0JvdW5kRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTT2Jq
ZWN0KiB0YXJnZXRGdW5jdGlvbiwgSlNWYWx1ZSBib3VuZFRoaXMsIEpTVmFsdWUgYm91bmRBcmdz
LCBpbnQsIGNvbnN0IElkZW50aWZpZXImKTsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwor
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKaW5kZXggOGFiNDcy
NmUzZWExZjVmOTEwMGYwYjQwNjIxZjMxNDc3YmQ2Mzk2YS4uNTE1NzEwM2VkZmE1YjdmODA2MTQx
ZTI0ZTAyMDY2NTMwZWU1YjgzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQnl0ZUFycmF5LmNwcApAQCAtNTQsNyArNTQsNyBAQCBTdHJ1Y3R1cmUqIEpTQnl0ZUFycmF5
OjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dAogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBjbGFzc0lu
Zm8pOwogfQogCi1ib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKK2Jvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CkBAIC04Miw3ICs4Miw3IEBAIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
CiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCitib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmgKaW5kZXggNDBmMGFhMWE3YjdhNGFlNmY1MzAyNjU0MmQxNzk0NWE2NTUxZGYxMC4uNGRm
MzY2YjE4NWNkNzIyZjk2NGZhZDhhZDJkMzVkNWI0ODcxYTZkZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBAIC04OCw5ICs4OCw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBKU0M6
OkNsYXNzSW5mbyogPSAmc19pbmZvKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVl
LCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5jcHAKaW5kZXggODk3M2RjMzAwNDRmYmZmNzhmMGYwNjM2MjM4YjlmOGJlMzllOTc5MS4u
NjNhNjlkZTZmOWUxNDIzNDkwNzg4ZmYwMzQyY2Q0OTM1NGQ0ZjE5MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC02OSw3ICs2OSw3IEBAIENvbnN0cnVjdFR5
cGUgSlNDZWxsOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKQogICAg
IHJldHVybiBDb25zdHJ1Y3RUeXBlTm9uZTsKIH0KIAotYm9vbCBKU0NlbGw6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
aWRlbnRpZmllciwgc2xvdCk7CiB9CkBAIC04Niw3ICs4Niw3IEBAIGJvb2wgSlNDZWxsOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCitib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCAyM2YwZmQ1YzBmYWY3
NTQ5ZmU3NjA4ZTBlNGViMGY1M2YzMjA2YmU3Li5lYTI3MmRmYTkzMTI5N2MwMWY2Y2RiZDhhZTUy
Y2IzZmJjZDYzZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAt
MTM1LDkgKzEzNSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
Ly8gQmFzZSBpbXBsZW1lbnRhdGlvbjsgZm9yIG5vbi1vYmplY3QgY2xhc3NlcyBpbXBsZW1lbnRz
IGdldFByb3BlcnR5U2xvdC4KLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgCiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc3RydWN0dXJlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCA0OTMz
MzA0NmNkNzliODk4NWRkNzVmY2FmZTViMTZjYTdlNDNjYTI1Li40MzAyNjlhMzZiNGU1NzJmMmNm
ZDk3YWI3YzViOTZjMWFhM2MzNGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIEpTVmFsdWUgSlNGdW5jdGlvbjo6
bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZp
ZXImCiAgICAgcmV0dXJuIGpzTnVtYmVyKHRoaXNPYmotPmpzRXhlY3V0YWJsZSgpLT5wYXJhbWV0
ZXJDb3VudCgpKTsKIH0KIAotYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKK2Jvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTI1OCw3ICsyNTgsNyBAQCBib29sIEpTRnVuY3Rpb246
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHBybwogICAgIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLnByb3RvdHlwZSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgZ2V0
T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIGdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAg
cmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUs
IGRlc2NyaXB0b3IpOwogICAgIH0KICAgICAKQEAgLTI5MSw3ICsyOTEsNyBAQCB2b2lkIEpTRnVu
Y3Rpb246OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVydAogICAgIGlmICghaXNIb3N0RnVuY3Rpb24oKSAmJiAobW9kZSA9PSBJbmNs
dWRlRG9udEVudW1Qcm9wZXJ0aWVzKSkgewogICAgICAgICAvLyBNYWtlIHN1cmUgcHJvdG90eXBl
IGhhcyBiZWVuIHJlaWZpZWQuCiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBn
ZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwg
c2xvdCk7CisgICAgICAgIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgZXhlYy0+cHJv
cGVydHlOYW1lcygpLnByb3RvdHlwZSwgc2xvdCk7CiAKICAgICAgICAgcHJvcGVydHlOYW1lcy5h
ZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cyk7CiAgICAgICAgIHByb3BlcnR5TmFt
ZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIpOwpAQCAtMzE2LDcgKzMxNiw3IEBA
IHZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hCiAgICAgICAgIC8vIE1ha2Ugc3VyZSBwcm90b3R5cGUg
aGFzIGJlZW4gcmVpZmllZCwgc3VjaCB0aGF0IGl0IGNhbiBvbmx5IGJlIG92ZXJ3cml0dGVuCiAg
ICAgICAgIC8vIGZvbGxvd2luZyB0aGUgcnVsZXMgc2V0IG91dCBpbiBFQ01BLTI2MiA4LjEyLjku
CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICB0aGlzT2JqZWN0LT5nZXRPd25Q
cm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgdGhpc09iamVj
dC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
ICAgIH0KICAgICBpZiAodGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgp
KSB7CiAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmFy
Z3VtZW50cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmlu
ZGV4IDliOWRhOWNlOWZhYjc1NDcxZGE4Y2Y5YWMxN2ZmYmMwZDc3M2JjMzYuLmUzNWIxN2U0NzUx
NjgzY2M2OGY5NjliOWQyODk4MjdmYzI1YmFmYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTEzMSw3ICsxMzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBOYXRpdmVFeGVjdXRhYmxl
KiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAgICAgICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5v
ZGUqKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJy
YXkmLCBFbnVtZXJhdGlvbk1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAw
ZmU0MzZkYjcyY2QwNjQwYjM4NTgyMDVmYTQxYjk0MDNlOGY0MDMwLi45MmRmZGMwYzIwZGRmYWFj
OWI5NDA0M2Y2NjcyMjk1N2ExNmExY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC00MjMsNyArNDIzLDcgQEAgdm9pZCBKU0ds
b2JhbE9iamVjdDo6YWRkU3RhdGljR2xvYmFscyhHbG9iYWxQcm9wZXJ0eUluZm8qIGdsb2JhbHMs
IGludCBjb3VudCkKICAgICB9CiB9CiAKLWJvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDExNWQ1Y2I2YmQ5NTQ4MzczYWFj
ZTgwMTM4YzhlYWYyNjNhM2E2NzguLmIwZmU0NzQ2OTc0YTdiZDc3ZDc5OTk5MTExMDA0YjA1Zjdi
NDEyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaApAQCAtMTgwLDcgKzE4MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRp
YyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAotICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCBib29sIGhhc093blBy
b3BlcnR5Rm9yV3JpdGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpOwpAQCAtMzQyLDcg
KzM0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGlubGluZSBib29sIEpTR2xvYmFsT2JqZWN0
OjpoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAg
ICAgIGlmIChKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKEpTVmFyaWFibGVPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIGJvb2wgc2xvdElzV3JpdGVhYmxlOwogICAgICAgICByZXR1cm4g
c3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90LCBzbG90SXNXcml0ZWFibGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAppbmRleCBl
MTRhNjhiZDk0ZmExNGVlMGNkNjRkMGYzNDI3YWEyY2M0NmRiOWQ5Li4wNzJkODI1NmZkNjc4NjMy
OTM3ZmRjM2Q2MTZmZjBiMjQzZmM4NWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApAQCAtNTcsNyArNTcsNyBAQCBVU3RyaW5nIEpTTm90
QW5PYmplY3Q6OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gIiI7
CiB9CiAKLWJvb2wgSlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaWRlbnRpZmllciwg
c2xvdCk7CiB9CkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgSlNOb3RBbk9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQorYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oCmluZGV4IGI4ZjBmYWE4NTYyMjYyM2MyMDc5YzljOWM3MTM3ZDdkN2IyODUxZjcuLjA2Nzg4
NzE0OTQxMTFhOTliMTMyNDNiZjI3NTBmNWI1YTM4ZDA3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTcwLDkgKzcwLDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBj
b25zdDsKIAogICAgICAgICAvLyBKU09iamVjdCBtZXRob2RzCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmlu
ZGV4IGQzZmMzNTk5MzFlMDE2OTEwODc1ZmM4ODljYmNmYzI4ODVjM2NjM2UuLjU1YWNlOTBlZDM3
MTk2MzQ4ZTgxZTQwNzM0M2I4YmRhMzFkODY0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC01MjMsNyArNTIzLDcgQEAgYm9vbCBTdHJpbmdp
Zmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVy
LCBVU3RyaW5nQnUKICAgICAgICAgICAgIHZhbHVlID0gYXNBcnJheShtX29iamVjdC5nZXQoKSkt
PmdldEluZGV4KGluZGV4KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdChtX29iamVjdC5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoIW1fb2JqZWN0LT5nZXRP
d25Qcm9wZXJ0eVNsb3QoZXhlYywgaW5kZXgsIHNsb3QpKQorICAgICAgICAgICAgaWYgKCFtX29i
amVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBpbmRleCwgc2xvdCkpCiAgICAg
ICAgICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKICAgICAgICAgICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01NDEsNyAr
NTQxLDcgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3Ry
aW5naWZpZXImIHN0cmluZ2lmaWVyLCBVU3RyaW5nQnUKICAgICAgICAgLy8gR2V0IHRoZSB2YWx1
ZS4KICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QobV9vYmplY3QuZ2V0KCkpOwogICAgICAgICBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUgPSBtX3Byb3BlcnR5TmFtZXMtPnByb3BlcnR5TmFtZVZl
Y3RvcigpW2luZGV4XTsKLSAgICAgICAgaWYgKCFtX29iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIGlmICghbV9vYmplY3QtPmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShl
eGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCkBA
IC01OTgsNyArNTk4LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEpTT05PYmplY3Q6OnNfaW5mbyA9IHsg
IkpTT04iLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCBFeGUKIAogLy8gRUNNQSAxNS44
CiAKLWJvb2wgSlNPTk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29s
IEpTT05PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CkBAIC02OTMsNyArNjkzLDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3
YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICAgICAgaW5WYWx1ZSA9IGFy
cmF5LT5nZXRJbmRleChpbmRleCk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgICAgICAgICBpZiAoYXJy
YXktPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIGluZGV4LCBzbG90KSkKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGFycmF5LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhlYywgaW5k
ZXgsIHNsb3QpKQogICAgICAgICAgICAgICAgICAgICAgICAgaW5WYWx1ZSA9IHNsb3QuZ2V0VmFs
dWUobV9leGVjLCBpbmRleCk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgIGluVmFsdWUgPSBqc1VuZGVmaW5lZCgpOwpAQCAtNzU1LDcgKzc1NSw3IEBA
IE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5nZXRP
d25Qcm9wZXJ0eVNsb3QobV9leGVjLCBwcm9wZXJ0aWVzW2luZGV4XSwgc2xvdCkpCisgICAgICAg
ICAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChtX2V4ZWMsIHBy
b3BlcnRpZXNbaW5kZXhdLCBzbG90KSkKICAgICAgICAgICAgICAgICAgICAgaW5WYWx1ZSA9IHNs
b3QuZ2V0VmFsdWUobV9leGVjLCBwcm9wZXJ0aWVzW2luZGV4XSk7CiAgICAgICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgICAgICBpblZhbHVlID0ganNVbmRlZmluZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAppbmRleCAyOGQyODYyZjhkNGE1
YzA4ZTgzNmQzNThiMTY3Y2NlZjM2NmNlMjViLi40ODdmY2YwZmUyZDcyODRlNGMxOTU3MTFjMTc1
YzgyYzVjYWNkYWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVj
dC5oCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgSlNPTk9iamVjdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwotICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCmluZGV4IGFhY2VjNmQ0Mzc2NzBlYTNmYTAxMDAzZDc4ZWEwNzMzZTQ5
ZTBlNGQuLjVjNDQ1OGM3N2VmMzg4M2VkODE3ZjUxM2M1ODZmYjA0YmI1ZjE2ZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTkzLDE0ICs5MywxNCBA
QCBVU3RyaW5nIEpTT2JqZWN0OjpjbGFzc05hbWUoKSBjb25zdAogICAgIHJldHVybiBpbmZvLT5j
bGFzc05hbWU7CiB9CiAKLWJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9v
bCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAog
Ym9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihjZWxsKS0+Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCktPmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsK
IH0KIAogc3RhdGljIHZvaWQgdGhyb3dTZXR0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCkBAIC0y
NzcsNyArMjc3LDcgQEAgYm9vbCBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHAKIGJvb2wgSlNPYmplY3Q6Omhh
c093blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKSBjb25zdAogewogICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgIHJldHVybiBjb25zdF9j
YXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworICAgIHJldHVybiBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9v
bCBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCAz
YWQ3MGM1MGFhZDYxYWQzN2ZjYzJmYTliOTA0YTcwYjM3ZmYzM2IyLi5hODI0MjU2OTJmZGRhNDdi
YTAzMmM5OWNkY2UxMjJiNzA3OGJhZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgKQEAgLTEwMSw5ICsxMDEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Ym9vbCBnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgYm9vbCBnZXRQcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApAQCAtNTIxLDcgKzUyMSw3IEBAIEFMV0FZ
U19JTkxJTkUgYm9vbCBKU09iamVjdDo6aW5saW5lR2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1BTFdBWVNfSU5MSU5F
IGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorQUxXQVlTX0lO
TElORSBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQpAQCAtNTM4LDcgKzUzOCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU0Nl
bGw6OmZhc3RHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
CiB7CiAgICAgaWYgKCFzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QoKSkKICAgICAgICAgcmV0dXJuIGFzT2JqZWN0KHRoaXMpLT5pbmxpbmVHZXRPd25Q
cm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKLSAgICByZXR1cm4gZ2V0T3du
UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogLy8g
RmFzdCBjYWxsIHRvIGdldCBhIHByb3BlcnR5IHdoZXJlIHdlIG1heSBub3QgeWV0IGhhdmUgY29u
dmVydGVkIHRoZSBzdHJpbmcgdG8gYW4KQEAgLTU3Niw3ICs1NzYsNyBAQCBBTFdBWVNfSU5MSU5F
IGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TgogewogICAgIEpTT2JqZWN0KiBvYmplY3QgPSB0aGlzOwogICAgIHdoaWxlICh0
cnVlKSB7Ci0gICAgICAgIGlmIChvYmplY3QtPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBvYmplY3QtPnByb3RvdHlwZSgpOwogICAg
ICAgICBpZiAoIXByb3RvdHlwZS5pc09iamVjdCgpKQpAQCAtNzk3LDcgKzc5Nyw3IEBAIGlubGlu
ZSBKU1ZhbHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90CiAgICAgfQogICAgIEpTQ2VsbCogY2VsbCA9IGNvbnN0X2Nhc3Q8
SlNDZWxsKj4oYXNDZWxsKCkpOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChjZWxs
LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAg
aWYgKGNlbGwtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KSkKICAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gYXNPYmplY3QoY2VsbCktPnByb3RvdHlw
ZSgpOwogICAgICAgICBpZiAoIXByb3RvdHlwZS5pc09iamVjdCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAppbmRleCA4
ZDBmZGE5MDM3MzIyZGYxNzMwNjVkYzYxY2M5MTRlNTMwMDdiZjAyLi4yMmU2YWZjZGRkNjg1YmEx
MjM1ZDhiZGM2MWU5ZGExZDIwZGVkYzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcApAQCAtOTEsNyArOTEsNyBAQCBi
b29sIEpTU3RhdGljU2NvcGVPYmplY3Q6OmlzRHluYW1pY1Njb3BlKGJvb2wmKSBjb25zdAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU1N0YXRpY1Njb3BlT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCBkYzI4
Nzc5NWRkOWYxNjA0ZjZiNTFmMjQ2YjZjYTkyZWY5OGExODA1Li5hOTBkZGQ1YzY5MWJlOTgwYzkx
ODYyMjZiOTYzZDBhN2E3OGJjOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFj
ZSBKU0N7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZp
c2l0b3ImKTsKICAgICAgICAgYm9vbCBpc0R5bmFtaWNTY29wZShib29sJiByZXF1aXJlc0R5bmFt
aWNDaGVja3MpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3Qo
RXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMg
dm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdHJpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuY3BwCmluZGV4IGM3M2Y0YTJlZTJjODU3NWZiMGQwNDg5YjhkNjM4ZTAwYWIxM2I1YjEuLjI3
ODc2MzdhYTJkMWU5ZTY1NDIzZmE5YmYzMzk5ZmE0MDcyNTEwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKQEAgLTMxMyw3ICszMTMsNyBAQCBKU09iamVj
dCogSlNTdHJpbmc6OnRvVGhpc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0
dXJuIFN0cmluZ09iamVjdDo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgY29uc3RfY2FzdDxKU1N0cmluZyo+KHRoaXMpKTsKIH0KIAotYm9vbCBKU1N0cmluZzo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMzMzLDcgKzMzMyw3IEBA
IGJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllCiAgICAgSlNPYmplY3QqIG9iamVjdDsKICAgICBmb3Ig
KEpTVmFsdWUgcHJvdG90eXBlID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5zdHJpbmdQ
cm90b3R5cGUoKTsgIXByb3RvdHlwZS5pc051bGwoKTsgcHJvdG90eXBlID0gb2JqZWN0LT5wcm90
b3R5cGUoKSkgewogICAgICAgICBvYmplY3QgPSBhc09iamVjdChwcm90b3R5cGUpOwotICAgICAg
ICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KSkKKyAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAg
IHNsb3Quc2V0VW5kZWZpbmVkKCk7CkBAIC0zNjcsNyArMzY3LDcgQEAgYm9vbCBKU1N0cmluZzo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCitib29sIEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5k
ZXggNzIwZDYyYmQ2Y2YzMjczMTE1ZjYyZjJlMzgxNDAxOTRkYmNiODhlZi4uZDgyMTVlMmVlNTQ3
MjdjNGQwYjg4ODE4NDFkNzIwZGEzMmZiOWFhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5oCkBAIC01MDcsOSArNTA3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKIAog
ICAgICAgICAvLyBBY3R1YWxseSBnZXRQcm9wZXJ0eVNsb3QsIG5vdCBnZXRPd25Qcm9wZXJ0eVNs
b3QgKHNlZSBKU0NlbGwpLgotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Mb29rdXAuaAppbmRleCA3ODJkYzBmYmM3MGM4M2E5MmFlMTBmMTA0OWFm
ZmRjMDMyNjk4ODFjLi5hNmQ0OGJkOGRjMGU5ZjQwNDU4MzAwOTA4MGQwOGZlNWMzMDUzODI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaApAQCAtMjEzLDcgKzIxMyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0gdGFibGUt
PmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAKICAgICAgICAgaWYgKCFlbnRyeSkgLy8gbm90
IGZvdW5kLCBmb3J3YXJkIHRvIHBhcmVudAotICAgICAgICAgICAgcmV0dXJuIHRoaXNPYmotPlBh
cmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cisg
ICAgICAgICAgICByZXR1cm4gUGFyZW50SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iaiwg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAgICAgICBpZiAoZW50cnktPmF0dHJpYnV0
ZXMoKSAmIEZ1bmN0aW9uKQogICAgICAgICAgICAgc2V0VXBTdGF0aWNGdW5jdGlvblNsb3QoZXhl
YywgZW50cnksIHRoaXNPYmosIHByb3BlcnR5TmFtZSwgc2xvdCk7CkBAIC0yNDksNyArMjQ5LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFBhcmVudEltcD4KICAgICBp
bmxpbmUgYm9vbCBnZXRTdGF0aWNGdW5jdGlvblNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBI
YXNoVGFibGUqIHRhYmxlLCBKU09iamVjdCogdGhpc09iaiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiAgICAgewotICAgICAgICBpZiAoc3RhdGlj
X2Nhc3Q8UGFyZW50SW1wKj4odGhpc09iaiktPlBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIGlmIChQYXJlbnRJbXA6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRh
YmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwpAQCAtMjkxLDcgKzI5MSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0gdGFibGUtPmVudHJ5
KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAKICAgICAgICAgaWYgKCFlbnRyeSkgLy8gbm90IGZvdW5k
LCBmb3J3YXJkIHRvIHBhcmVudAotICAgICAgICAgICAgcmV0dXJuIHRoaXNPYmotPlBhcmVudElt
cDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAg
ICAgICByZXR1cm4gUGFyZW50SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAgICAgICBBU1NFUlQoIShlbnRyeS0+YXR0cmlidXRl
cygpICYgRnVuY3Rpb24pKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWF0aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRo
T2JqZWN0LmNwcAppbmRleCA3OWZlZWU3ZTE5ZWRlMmZmMTAzYzA2MDNmZDRhOTdlZmEwMGViNmEz
Li42MjRmNGRkYmJkM2U5MDcwNzY4ZWMxZmU5M2Q5MTMwNzljNWVjZDgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBA
IHZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4
ZWMtPmdsb2JhbERhdGEoKSwgSWRlbnRpZmllcihleGVjLCAiU1FSVDIiKSwganNOdW1iZXIoc3Fy
dCgyLjApKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgUmVhZE9ubHkpOwogfQogCi1ib29sIE1h
dGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBNYXRoT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCmluZGV4IDJlMmQ3MmRlYmY0
ODBkN2NmZTI3NDA0ZDc2MzliNDljZTVkNDg0MGIuLjI0MjRhNzFlNWVlOWUxYjc0NTQwOTcxZjhh
N2RmODI1YmIxNzUwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2Jq
ZWN0LmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBvYmpl
Y3QtPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICByZXR1
cm4gb2JqZWN0OwogICAgICAgICB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggM2M2NWU5ZjA4ZmUzZGM0MTJhY2IwM2NhNTZiNGM1MGM3MDE2YjQ4Ny4u
NTRhZmJkOGM3NmRjNTEwOGIyYWIzZWQ0ZTRjMzQyMzBmMWYyZTU3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcApAQCAtNzEs
NyArNzEsNyBAQCB2b2lkIE51bWJlckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIE51bWJlclByb3RvdHlwZSogbnVtYmVyUAogICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0
aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKIH0KIAot
Ym9vbCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiti
b29sIE51bWJlckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggNzA1NmRkZjc1YmI5NzVlOWEwMzAyZWRmMzExMjdiZmU2
YTNmYzE0My4uNjEyNzFhOTU0ZjkwMDdhNzY1MmQ3OGMxYmRjN2Y2NTVmOTllY2MwMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBA
IC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGNvbnN0
cnVjdG9yOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAgICAgICAgIEpTVmFsdWUgZ2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqLCBpbnQgdG9rZW4p
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3Rv
dHlwZS5jcHAKaW5kZXggZjZmMDE2ZTRlM2U1N2YyMjBlNzhmMjVlY2FlODEyZjQ3ZDJkYTBjOS4u
NGZiMjliNTVkNmQ2ZTBmNjVkMGUwYTJhYzQ5OWZlNTA0NTYwNTZiOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC04Myw3ICs4
Myw3IEBAIHZvaWQgTnVtYmVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KikKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQog
Ci1ib29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiti
b29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90
KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmgKaW5kZXggMWE1Njg2YWU1OTBhNWMwNDMwYTIzNWE5NTA1YjI5ZTJkM2JjY2Fh
OS4uYmViYjVlNzNhMjE0Nzc2ODA1OWY0YmI4ZTM3NDAzZTljMTliNWJmOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBOdW1iZXJQcm90
b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOTBlZGZhNTM3YzkyY2U1MTYwNzk5NmJjNWM4
MmFhNTc1YTAxNjQwMS4uMGIzYjE5NzAwYWJhMTBkN2UyZDcxMGIzN2FmMTEzMjNmNmE3NmJlMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIE9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIE9iamVjdFByb3RvdHlwZSogb2JqZWN0UAogICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250
RGVsZXRlKTsKIH0KIAotYm9vbCBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QgJnNsb3QpCitib29sIE9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggMjIyMTU5ZjUzYTRmOGYxYjhk
NjU4MmNjNzBjYjBmYjBmN2ZlYzgzNy4uYWE2OGNjZGFhYTgzM2JmYjc2ZjUyMDAxM2JhNjUxOTU2
ZTFmNjA2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDk5YTViYjIyOGJmMjdlYzFhZDQxYTlkYjQ0NGUyM2U3
NWY4NGY1N2EuLmVhN2M4OWIxNTM4MmY0MjlmZGIzNGM0ZjM1YzRhMzI3NzI5NGJmYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApA
QCAtOTIsNyArOTIsNyBAQCB2b2lkIE9iamVjdFByb3RvdHlwZTo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZQogICAgIH0KIH0KIAotYm9v
bCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBPYmplY3RQcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3du
UHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CkBAIC0xMDUs
NyArMTA1LDcgQEAgYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQKICAgICByZXR1cm4gSlNOb25GaW5h
bE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CiAKLWJvb2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCBlMzkwMDIyZjY3Yzc1NDIwNWJlMzIxZWY3
Y2IwOWQ0NWZkNTVlMTQ4Li43NmEzM2M0NzliOTY2NWJiMTM3MDQ5YjNlMmM4YjMxZTk0ZWRkNjg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUu
aApAQCAtNTMsOSArNTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lk
IHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0MGQ0OTE0NjQ0Yzk4
NjNiYzI0NGMxZDRiMzFkY2JiYWRhMWVjNzAwLi41YjA3MGYwNzQwY2NiMTI3ZmIyZWJkMWZiNzQy
NmJkZTE4MWNiNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yMDIsNyArMjAyLDcgQEAgSlNWYWx1ZSBSZWdFeHBD
b25zdHJ1Y3Rvcjo6Z2V0UmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBy
ZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsKIH0KICAgICAKLWJvb2wgUmVnRXhwQ29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBSZWdFeHBDb25zdHJ1Y3Rv
cjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmlu
ZGV4IDVlMTMxNzY0ZDQ5MjViNzBjYjM4NjY3OWM3N2U2YTQwMmEzNjFjNGMuLmFhZjQyNmE5YWQy
MjFmZWIwYjJkN2RlNGVmYzM2YzAxNTBlOGFhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNzQsNyArNzQsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAotICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwTWF0Y2hlc0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBN
YXRjaGVzQXJyYXkuaAppbmRleCBlNzVkNjIxOTE1ZDI0YTVlODZiN2E3NTY0YTkyNWEyNmYwNjkw
MTFkLi4xMmJkMDI2ZWYzZDkxNDhjNDEwOWE1YWYwNzVhY2QyNmYxMWE3MzhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaApAQCAt
NDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0dsb2JhbERhdGEmLCBSZWdFeHBDb25zdHJ1Y3RvclByaXZhdGUqIGRhdGEpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQorICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIH0KQEAgLTU2LDcgKzU2
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gSlNBcnJheTo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAg
ICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCisgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggNjYwYjJlMzBhNTRiOTFjOTkwY2FkYWI0YWEyZjY0
MzgzNWMxOTU4Yy4uODA4ZWQ3Zjk3MDU4YmMwODJmY2Q1ZDM4NWMzOGM0N2U2MmNmMDJmYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC05
MSw3ICs5MSw3IEBAIHZvaWQgUmVnRXhwT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2Jq
ZWN0LT5kLT5sYXN0SW5kZXgpOwogfQogCi1ib29sIFJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggYzBmODNkNTQyY2JkZWJkOWFlZGJiZDg3NWMw
MWJiZmU4YjIwMzIzOS4uYTNmNzdjNWI5MzhiMjhkMzkyZGIyMmU5NDYwY2NiNjdiNDVkMDFkMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTY1
LDcgKzY1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTVmFsdWUgdGVzdChFeGVjU3Rh
dGUqKTsKICAgICAgICAgSlNWYWx1ZSBleGVjKEV4ZWNTdGF0ZSopOwogCi0gICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAppbmRleCAzZTNh
MTY5ZmE5YjA2MmNkYzJlNDI5N2Y1Njk2MDlhZDIxZjNhYzQxLi44MzA0ZTYyZTE4YzBkZTdlNjk0
N2MxMWVkODg5NjllNGJmMGMwOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgUmVnRXhwUHJvdG90
eXBlOjpSZWdFeHBQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3QKIHsKIH0KIAotYm9vbCBSZWdFeHBQcm90b3R5cGU6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90ICZzbG90KQorYm9vbCBSZWdFeHBQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmluZGV4IGNjODQwM2E3NWI0YmYzYjkyZGU1
YTg0YWIyM2NhODJhMTYyNDIxM2YuLjhjOTJiMjJlNDQxODdiYzBlZDI0YTU3OWI2MTNkNzZlNWE3
OTg0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3Rv
dHlwZS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBSZWdFeHBPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCBmMzlkZDdh
NWFhMDA3OGFjNmZkMjNkODJlN2ViMGJhZGJhN2Q3OThiLi4yOGU4NDUxMjJiZGMyNGEzOTExYTFh
NmUyZWEyZTRjMzBmZGQ2NzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU3RyaW5n
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nUHJvdG90
eXBlKiBzdHJpbmdQCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFs
RGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9u
bHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogfQogCi1ib29sIFN0cmluZ0NvbnN0cnVjdG9y
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgU3RyaW5nQ29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRl
eCBhNzE5MTQ4NDgzOTI5YTY4ZWVjMzg5MmIzYmNjZjg1YzcyZWVmMzFiLi4zOTVmOTkzNDBmMzZh
ZjEwODZhZWNkZjY2YjRiMjVmOTlmZTY2ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEo
SlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z09iamVjdC5jcHAKaW5kZXggNmQ1NDhjZDZmMWFmNGUyYzZkZGU5YWY2ZjRmY2ZlODY3NzIyZTdh
MS4uMGU5Y2Q3ZGMzNWZlMTA3NjA4ZDY0NDgxZjUyYjlkMmRmZjA3YTczMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC00MSw3ICs0MSw3
IEBAIHZvaWQgU3RyaW5nT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTU3RyaW5nKiBzdHJpbmcpCiAgICAgc2V0SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRh
LCBzdHJpbmcpOwogfQogCi1ib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCitib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTU0LDcgKzU0LDcgQEAgYm9vbCBTdHJpbmdPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnQKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogICAgIAotYm9vbCBTdHJpbmdPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IDg3MmEyYzEzM2I2NmE2ZDIxN2FjOWM5YmU1NjQ5
ZjgyZTVjYzExOGIuLmU2YjM3YmMwODllM2YyYzEzMGQ1ODM0NDBhMmNkZDlhOTI3YmE2NTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC00Niw5
ICs0Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIHN0YXRpYyBTdHJp
bmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKik7
CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDg4ZmIyZTkyMWFlN2RmYTNjMDNh
YzgwNmUzMzI5N2UzNGJkMmVmMWUuLmU4ZjRmZDNiNGYzZDJhMTIzYTQ3NTZhZTVjYWNkNzgzNDZl
Njc5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgU3RyaW5nUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqCiAg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigwKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgRG9udEVudW0pOwogfQogCi1ib29sIFN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QgJnNsb3QpCitib29sIFN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKaW5kZXggYzg5YTg5YmE5NTJkOTZmODVmYjkx
YTcwYTQ5MmY4ZDdmMTA4ZGEyMS4uNDcxMGE1YzA4MzhlNzQ1MDQzMGYxMzc0OWI1YjNlYTE4YmQx
MDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1
cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvQ2hhbmdlTG9nCmluZGV4IDBlNzM1MGYzYjBjMmNmNWQ2YmI3ZTI3YTJmMTAxZjk3MDA2ZTI0
NTUuLjFmYjgwZjY3NGNmNTdlNjBhZmUzZTJlNWI5MmUzZWIwYzQ1YjAxN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRH
bHVlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEwLTExICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIGdldE93blByb3Bl
cnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdGhlIHZpcnR1YWwgdmVyc2lvbiBv
ZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbAorICAgICAg
ICBpbiBwcmVwYXJhdGlvbiBmb3Igd2hlbiB3ZSBhZGQgdGhlIHN0YXRpYyBnZXRPd25Qcm9wZXJ0
eVNsb3QgdG8gdGhlIE1ldGhvZFRhYmxlIAorICAgICAgICBpbiBDbGFzc0luZm8uCisKKyAgICAg
ICAgQWxzbyBhZGRlZCBhIGZldyBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IGZ1bmN0aW9ucyB3
aGVyZSB0aGV5IGhhZCBiZWVuIG92ZXJsb29rZWQgCisgICAgICAgIGJlZm9yZSAoZXNwZWNpYWxs
eSBpbiBDb2RlR2VuZXJhdG9ySlMucG0pLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6
CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAg
ICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisKIDIwMTEtMTAtMTAgIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZ2V0Q2FsbERhdGFWaXJ0
dWFsIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCA2
Zjk5YTRjODQ2NmI0YTU1NTZkOWE3MDU0NjA2ZGRlN2JhM2NlOTVhLi4xOTFjMjUzOWRhZDZkZGNj
ZTc3MTgzZDA5NmU4ZmU5NDc1NmRhN2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgSlNWYWx1ZSBVc2VyT2JqZWN0SW1wOjp1c2Vy
T2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW4KICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIFVzZXJPYmplY3RJbXA6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQorYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2Jq
ZWN0SW1wLmgKaW5kZXggYWNlMTkzMzc2Njc3NTMwZWUyZjYxMzljMTBkNmFmN2UzYjUyNWRjNC4u
M2Q1OGVmMzViOTBiZTEwYzQ0YzY4YTI5M2IyMzU4OThiYzYwYjRhNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAK
ICAgICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
ICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NTU4MGYxNGM3OGM2MzY5YTlkNDMzNzA3
ZjFjNWVmYzQ4YTU4MGQwLi4wMzM2MWRmYzhhODdhMzU2YmE5ODBjZjMwZTNhMGY0ZjZjZjQ3ZDRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODYgQEAKKzIwMTEtMTAtMTEgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVy
dHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIFJlbmFt
ZWQgdGhlIHZpcnR1YWwgdmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbAorICAgICAgICBpbiBwcmVwYXJhdGlvbiBmb3Igd2hlbiB3ZSBhZGQg
dGhlIHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gdGhlIE1ldGhvZFRhYmxlIAorICAgICAg
ICBpbiBDbGFzc0luZm8uCisKKyAgICAgICAgQWxzbyBhZGRlZCBhIGZldyBzdGF0aWMgZ2V0T3du
UHJvcGVydHlTbG90IGZ1bmN0aW9ucyB3aGVyZSB0aGV5IGhhZCBiZWVuIG92ZXJsb29rZWQgCisg
ICAgICAgIGJlZm9yZSAoZXNwZWNpYWxseSBpbiBDb2RlR2VuZXJhdG9ySlMucG0pLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmdldE93blByb3Bl
cnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpEaWFsb2dIYW5kbGVyOjpyZXR1cm5WYWx1ZSk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dv
cmtlckNvbnRleHQ6OmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xv
bmVTZXJpYWxpemVyOjpnZXRTcGFyc2VJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNl
cmlhbGl6ZXI6OmdldFByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSk6
CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0
aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlT
bG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2U6OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Q
cm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqUHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9ialByb3Rv
dHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
aDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFs
bGJhY2tPYmplY3RJbXA6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJy
aWRnZS9xdC9xdF9pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdEluc3Rh
bmNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1l
LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGFNZXRob2Q6OmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1l
Q29ubmVjdGlvbk1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICog
YnJpZGdlL3F0L3F0X3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5j
cHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2Uv
cnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6UnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIwMTEtMTAtMTEgIENsYXVkaW8gU2FhdmVk
cmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBHdGtBdXRoZW50aWNh
dGlvbkRpYWxvZzogdXNlIEd0a0dyaWQgaW5zdGVhZCBvZiBHdGtUYWJsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCBkYjZlMzA5MDI2Zjc4ODY1NDM1ZGZkY2IwZmJjNzAzNTcyYWZlM2QzLi42MDUz
MDUzZmYwZTYwMTJiY2Q0ODM3OTQ4ZmJjNmYyODc3NzhhMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMTY4Miw4ICsxNjgyLDkgQEAgX19aTjdXZWJDb3JlNUZyYW1lMjZzZW5kT3JpZW50YXRp
b25DaGFuZ2VFdmVudEVpCiAjaWYgVVNFKFBMVUdJTl9IT1NUX1BST0NFU1MpCiBfX1pOM0pTQzEz
UnVudGltZU1ldGhvZDExZ2V0Q2FsbERhdGFFUE5TXzZKU0NlbGxFUk5TXzhDYWxsRGF0YUUKIF9f
Wk4zSlNDMTNSdW50aW1lTWV0aG9kMTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFF
UktOU18xMElkZW50aWZpZXJFCi1fX1pOM0pTQzEzUnVudGltZU1ldGhvZDE4Z2V0T3duUHJvcGVy
dHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xv
dEUKK19fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0Nl
bGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQog
X19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCitfX1pO
M0pTQzEzUnVudGltZU1ldGhvZDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEzUnVu
dGltZU1ldGhvZDZzX2luZm9FCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZEMyRVBOU18xNEpTR2xv
YmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0b3JJUE5TXzhCaW5kaW5nczZNZXRo
b2RFTG0wRUVFCiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdEQxRXYKQEAgLTE2OTEsOSAr
MTY5MiwxMCBAQCBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDExZ2V0Q2FsbERhdGFF
UE5TXzZKU0NlbGxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2Jq
ZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9f
Wk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVQTlNfMTRKU0ds
b2JhbE9iamVjdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTZnZXRDb25zdHJ1
Y3REYXRhRVJOU18xM0NvbnN0cnVjdERhdGFFCi1fX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9i
amVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RVJOU18xMlByb3BlcnR5U2xvdEUKK19fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThn
ZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50
aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmpl
Y3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1l
QXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9i
amVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19fWk4zSlNDOEJpbmRpbmdzMTNSdW50
aW1lT2JqZWN0MjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNf
MTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50
aW1lT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1
ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVj
dDZzX2luZm9FCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdEMyRVBOU185RXhlY1N0
YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TMF84SW5zdGFuY2VFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcAppbmRleCAwNGI1Yjk3NjUyN2E0ZmQxOTViNDVhYjI4NDk1NjRlYWM4
NWQyZTY4Li4zZGYwZWQ2MmFlZWY5ZDgzMmRmNzY1Y2IzMGQ3ZDczNmIzYWZhN2RkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0x
MjEsOCArMTIxLDE0IEBAIHN0YXRpYyBKU1ZhbHVlIG5hbWVkSXRlbUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpCiAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgdGhpc09iaiwgY29sbGVjdGlvbi5nZXQoKSk7CiB9CiAKLWJvb2wgSlNET01XaW5kb3c6
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU0RP
TVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sK
KyAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4o
Y2VsbCk7CiAgICAgLy8gV2hlbiBhY2Nlc3NpbmcgYSBXaW5kb3cgY3Jvc3MtZG9tYWluLCBmdW5j
dGlvbnMgYXJlIGFsd2F5cyB0aGUgbmF0aXZlIGJ1aWx0LWluIG9uZXMsIGFuZCB0aGV5CiAgICAg
Ly8gYXJlIG5vdCBhZmZlY3RlZCBieSBwcm9wZXJ0aWVzIGNoYW5nZWQgb24gdGhlIFdpbmRvdyBv
ciBhbnl0aGluZyBpbiBpdHMgcHJvdG90eXBlIGNoYWluLgogICAgIC8vIFRoaXMgaXMgY29uc2lz
dGVudCB3aXRoIHRoZSBiZWhhdmlvciBvZiBGaXJlZm94LgpAQCAtMTMyLDE3ICsxMzgsMTcgQEAg
Ym9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAgICAvLyBXZSBkb24ndCB3YW50IGFueSBwcm9wZXJ0
aWVzIG90aGVyIHRoYW4gImNsb3NlIiBhbmQgImNsb3NlZCIgb24gYSBmcmFtZWxlc3Mgd2luZG93
IChpLmUuIG9uZSB3aG9zZSBwYWdlIGdvdCBjbG9zZWQsCiAgICAgLy8gb3Igd2hvc2UgaWZyYW1l
IGdvdCByZW1vdmVkKS4KICAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IGZ1bGx5IG1hdGNoIEZp
cmVmb3gsIHdoaWNoIGFsbG93cyBhdCBsZWFzdCB0b1N0cmluZyBpbiBhZGRpdGlvbiB0byB0aG9z
ZS4KLSAgICBpZiAoIWltcGwoKS0+ZnJhbWUoKSkgeworICAgIGlmICghdGhpc09iamVjdC0+aW1w
bCgpLT5mcmFtZSgpKSB7CiAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBpcyBzYWZlIGZv
ciBjcm9zcy1kb21haW4gYW5kIHNhbWUgZG9tYWluIHVzZS4KICAgICAgICAgLy8gSXQgaWdub3Jl
cyBhbnkgY3VzdG9tIHByb3BlcnRpZXMgdGhhdCBtaWdodCBiZSBzZXQgb24gdGhlIERPTVdpbmRv
dyAoaW5jbHVkaW5nIGEgY3VzdG9tIHByb3RvdHlwZSkuCiAgICAgICAgIGVudHJ5ID0gc19pbmZv
LnByb3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAg
IGlmIChlbnRyeSAmJiAhKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbikgJiYgZW50cnkt
PnByb3BlcnR5R2V0dGVyKCkgPT0ganNET01XaW5kb3dDbG9zZWQpIHsKLSAgICAgICAgICAgIHNs
b3Quc2V0Q3VzdG9tKHRoaXMsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKKyAgICAgICAgICAg
IHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGVudHJ5ID0gSlNET01X
aW5kb3dQcm90b3R5cGU6OnNfaW5mby5wcm9wSGFzaFRhYmxlKGV4ZWMpLT5lbnRyeShleGVjLCBw
cm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAoZW50cnkgJiYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkg
JiBGdW5jdGlvbikgJiYgZW50cnktPmZ1bmN0aW9uKCkgPT0ganNET01XaW5kb3dQcm90b3R5cGVG
dW5jdGlvbkNsb3NlKSB7Ci0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNo
aW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3Nl
LCAwPik7CisgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBub25DYWNoaW5n
U3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlLCAw
Pik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC0xNTYsMTEgKzE2
MiwxMSBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgIC8vIGJlY2F1c2Ugd2UgYWx3YXlz
IGFsbG93IGFjY2VzcyB0byBzb21lIGZ1bmN0aW9uLCBqdXN0IGRpZmZlcmVudCBvbmVzIGRlcGVu
ZGluZyB3aGV0aGVyIGFjY2VzcwogICAgIC8vIGlzIGFsbG93ZWQuCiAgICAgU3RyaW5nIGVycm9y
TWVzc2FnZTsKLSAgICBib29sIGFsbG93c0FjY2VzcyA9IGFsbG93c0FjY2Vzc0Zyb20oZXhlYywg
ZXJyb3JNZXNzYWdlKTsKKyAgICBib29sIGFsbG93c0FjY2VzcyA9IHRoaXNPYmplY3QtPmFsbG93
c0FjY2Vzc0Zyb20oZXhlYywgZXJyb3JNZXNzYWdlKTsKIAogICAgIC8vIExvb2sgZm9yIG92ZXJy
aWRlcyBiZWZvcmUgbG9va2luZyBhdCBhbnkgb2Ygb3VyIG93biBwcm9wZXJ0aWVzLCBidXQgaWdu
b3JlIG92ZXJyaWRlcyBjb21wbGV0ZWx5CiAgICAgLy8gaWYgdGhpcyBpcyBjcm9zcy1kb21haW4g
YWNjZXNzLgotICAgIGlmIChhbGxvd3NBY2Nlc3MgJiYgSlNHbG9iYWxPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIGlmIChhbGxvd3NBY2Nl
c3MgJiYgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdl
IG5lZWQgdGhpcyBjb2RlIGhlcmUgYmVjYXVzZSBvdGhlcndpc2UgSlNET01XaW5kb3dCYXNlIHdp
bGwgc3RvcCB0aGUgc2VhcmNoIGJlZm9yZSB3ZSBldmVuIGdldCB0byB0aGUKQEAgLTE3MiwyNiAr
MTc4LDI2IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgICAgIGlmIChlbnRyeS0+YXR0
cmlidXRlcygpICYgRnVuY3Rpb24pIHsKICAgICAgICAgICAgIGlmIChlbnRyeS0+ZnVuY3Rpb24o
KSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQmx1cikgewogICAgICAgICAgICAgICAg
IGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlw
ZUZ1bmN0aW9uQmx1ciwgMD4pOworICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzT2JqZWN0LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90
b3R5cGVGdW5jdGlvbkJsdXIsIDA+KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rp
b24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2UpIHsKICAgICAgICAgICAg
ICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1
c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90
b3R5cGVGdW5jdGlvbkNsb3NlLCAwPik7CisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRv
d1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2UsIDA+KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS0+
ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uRm9jdXMpIHsKICAgICAg
ICAgICAgICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAgICAgICAgICAgICBzbG90
LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5k
b3dQcm90b3R5cGVGdW5jdGlvbkZvY3VzLCAwPik7CisgICAgICAgICAgICAgICAgICAgIHNsb3Qu
c2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RP
TVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uRm9jdXMsIDA+KTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmIChl
bnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3Nh
Z2UpIHsKICAgICAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAgICAg
ICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0
ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlLCAyPik7CisgICAgICAg
ICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNG
dW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIDI+
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1By
b3RvdHlwZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFE
T01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhpbXBsKCktPmZyYW1lKCkpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyh0aGlzT2JqZWN0LT5p
bXBsKCktPmZyYW1lKCkpKSB7CiAgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0VW5kZWZpbmVk
KCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0K
QEAgLTIwMSw3ICsyMDcsNyBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgICAgICAvLyBB
bGxvdyBhY2Nlc3MgdG8gdG9TdHJpbmcoKSBjcm9zcy1kb21haW4sIGJ1dCBhbHdheXMgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy4KICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkudG9TdHJpbmcpIHsKICAgICAgICAgICAgIGlmICghYWxsb3dzQWNjZXNz
KSB7Ci0gICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgb2JqZWN0VG9TdHJpbmdG
dW5jdGlvbkdldHRlcik7CisgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVj
dCwgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIwOSw3ICsyMTUsNyBAQCBib29s
IEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eQogCiAgICAgZW50cnkgPSBKU0RPTVdpbmRvdzo6c19pbmZvLnBy
b3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKGVu
dHJ5KSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGVudHJ5LT5wcm9wZXJ0eUdldHRl
cigpKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgZW50cnktPnByb3BlcnR5
R2V0dGVyKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIxOCwxOCArMjI0
LDE4IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgLy8gbmFtaW5nIGZyYW1lcyB0aGlu
Z3MgdGhhdCBjb25mbGljdCB3aXRoIHdpbmRvdyBwcm9wZXJ0aWVzIHRoYXQKICAgICAvLyBhcmUg
aW4gTW96IGJ1dCBub3QgSUUuIFNpbmNlIHdlIGhhdmUgc29tZSBvZiB0aGVzZSwgd2UgaGF2ZSB0
byBkbwogICAgIC8vIGl0IHRoZSBNb3ogd2F5LgotICAgIGlmIChpbXBsKCktPmZyYW1lKCktPnRy
ZWUoKS0+Y2hpbGQoaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKSB7Ci0g
ICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGNoaWxkRnJhbWVHZXR0ZXIpOworICAgIGlmICh0
aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1lKCktPnRyZWUoKS0+Y2hpbGQoaWRlbnRpZmllclRvQXRv
bWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKSB7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNP
YmplY3QsIGNoaWxkRnJhbWVHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
ICAgICAvLyBEbyBwcm90b3R5cGUgbG9va3VwIGVhcmx5IHNvIHRoYXQgZnVuY3Rpb25zIGFuZCBh
dHRyaWJ1dGVzIGluIHRoZSBwcm90b3R5cGUgY2FuIGhhdmUKICAgICAvLyBwcmVjZWRlbmNlIG92
ZXIgdGhlIGluZGV4IGFuZCBuYW1lIGdldHRlcnMuICAKLSAgICBKU1ZhbHVlIHByb3RvID0gcHJv
dG90eXBlKCk7CisgICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPnByb3RvdHlwZSgpOwog
ICAgIGlmIChwcm90by5pc09iamVjdCgpKSB7CiAgICAgICAgIGlmIChhc09iamVjdChwcm90bykt
PmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAg
ICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAgICAgICAgIHByaW50RXJyb3JNZXNzYWdl
KGVycm9yTWVzc2FnZSk7CisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+cHJpbnRFcnJvck1l
c3NhZ2UoZXJyb3JNZXNzYWdlKTsKICAgICAgICAgICAgICAgICBzbG90LnNldFVuZGVmaW5lZCgp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yNDIsMjggKzI0
OCwyOCBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgIC8vIGFsbG93IHdpbmRvd1sxXSBv
ciBwYXJlbnRbMV0gZXRjLiAoIzU2OTgzKQogICAgIGJvb2wgb2s7CiAgICAgdW5zaWduZWQgaSA9
IHByb3BlcnR5TmFtZS50b0FycmF5SW5kZXgob2spOwotICAgIGlmIChvayAmJiBpIDwgaW1wbCgp
LT5mcmFtZSgpLT50cmVlKCktPmNoaWxkQ291bnQoKSkgewotICAgICAgICBzbG90LnNldEN1c3Rv
bUluZGV4KHRoaXMsIGksIGluZGV4R2V0dGVyKTsKKyAgICBpZiAob2sgJiYgaSA8IHRoaXNPYmpl
Y3QtPmltcGwoKS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGlsZENvdW50KCkpIHsKKyAgICAgICAgc2xv
dC5zZXRDdXN0b21JbmRleCh0aGlzT2JqZWN0LCBpLCBpbmRleEdldHRlcik7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgIHBy
aW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CisgICAgICAgIHRoaXNPYmplY3QtPnByaW50
RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIEFsbG93IHNob3J0Y3V0cyBs
aWtlICdJbWFnZTEnIGluc3RlYWQgb2YgZG9jdW1lbnQuaW1hZ2VzLkltYWdlMQotICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IGltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1lKCktPmRvY3VtZW50KCk7CiAg
ICAgaWYgKGRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgpKSB7CiAgICAgICAgIEF0b21pY1N0cmlu
Z0ltcGwqIGF0b21pY1Byb3BlcnR5TmFtZSA9IGZpbmRBdG9taWNTdHJpbmcocHJvcGVydHlOYW1l
KTsKICAgICAgICAgaWYgKGF0b21pY1Byb3BlcnR5TmFtZSAmJiAoc3RhdGljX2Nhc3Q8SFRNTERv
Y3VtZW50Kj4oZG9jdW1lbnQpLT5oYXNOYW1lZEl0ZW0oYXRvbWljUHJvcGVydHlOYW1lKSB8fCBk
b2N1bWVudC0+aGFzRWxlbWVudFdpdGhJZChhdG9taWNQcm9wZXJ0eU5hbWUpKSkgewotICAgICAg
ICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbmFtZWRJdGVtR2V0dGVyKTsKKyAgICAgICAgICAg
IHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5hbWVkSXRlbUdldHRlcik7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gQmFz
ZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtNjgzLDcgKzY4OSw3IEBAIGlubGluZSBKU1ZhbHVlIERp
YWxvZ0hhbmRsZXI6OnJldHVyblZhbHVlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKG1fZXhlYywgInJldHVyblZhbHVlIik7
CiAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QtPmdldE93blBy
b3BlcnR5U2xvdChtX2V4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQorICAgIGlmICghZ2xvYmFsT2Jq
ZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhlYywgaWRlbnRpZmllciwgc2xvdCkp
CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIHJldHVybiBzbG90LmdldFZhbHVl
KG1fZXhlYywgaWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuY3BwCmluZGV4IDZkMjZmOTg1YzcxYjZjNGI4M2IwYTMwMjk4OWIw
N2YwYmEzMjdiMWUuLmZhNjFiNDk2YjI4NDdmZWI1NmM2NmMzOTA3NWMyODY0YWQwOTM0OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBA
IC0xMDAsMTQgKzEwMCwxNCBAQCBVU3RyaW5nIEpTRE9NV2luZG93U2hlbGw6OmNsYXNzTmFtZSgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fd2luZG93LT5jbGFzc05hbWUoKTsKIH0KIAotYm9vbCBKU0RP
TVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNET01X
aW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAg
IHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTVdpbmRv
d1NoZWxsKj4oY2VsbCktPm1fd2luZG93LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+
KGNlbGwpLT5tX3dpbmRvdy0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IGI1ZGQzYTZhMTZjMmNkOGE2M2Y5OGEz
ZjkyNzk4MzUyYmRmMGQ2NzcuLjZhYzkxYmNhZjI3YzNhMjAyNDgwYjlmOTFmN2M0YmY4YzZjNTFl
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgK
QEAgLTgwLDcgKzgwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyB2
b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAgICAg
ICAgIHZpcnR1YWwgSlNDOjpVU3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0OwotICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA2N2YyZTk5YmE2NDBl
M2M2NjUzYTdmZGJkNjg2Nzc5NWVjZjNhN2I3Li5mZWM0MTlmYjc0MDQ2ZmMyYzA3Y2Y4NTAwYTE1
YzBkNTViYzdiNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEN1c3RvbS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBKU1dvcmtlckNv
bnRleHQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IGJvb2wgSlNXb3JrZXJDb250ZXh0OjpnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIC8vIExvb2sgZm9yIG92ZXJyaWRlcyBiZWZvcmUgbG9va2luZyBhdCBhbnkg
b2Ygb3VyIG93biBwcm9wZXJ0aWVzLgotICAgIGlmIChKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgaWYgKEpTR2xvYmFsT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXgg
OGRiZTNlYTA5YzdjN2ZiZjVkNDlkN2U1MGZjZmExZDQzNGQxNDBiOS4uYjEwZjFkN2NjMWJlMTUy
NTI1NjBlYzQzNWNiYjQ0YzJjMjU0Yzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0zMzMsMTEgKzMzMywxMSBA
QCBwcml2YXRlOgogICAgIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoYXJyYXkpOwogICAg
ICAgICBpZiAoaXNKU0FycmF5KCZtX2V4ZWMtPmdsb2JhbERhdGEoKSwgYXJyYXkpKSB7Ci0gICAg
ICAgICAgICBpZiAoYXJyYXktPkpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgICAgIGlmIChKU0FycmF5OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoYXJyYXksIG1fZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAg
ICAgICAgIGhhc0luZGV4ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICByZXR1cm4gc2xvdC5nZXRW
YWx1ZShtX2V4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSBpZiAoYXJyYXktPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCkpIHsKKyAgICAgICAgfSBlbHNlIGlmIChhcnJheS0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgIGhhc0luZGV4ID0g
dHJ1ZTsKICAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKG1fZXhlYywgcHJvcGVydHlO
YW1lKTsKICAgICAgICAgfQpAQCAtMzQ4LDcgKzM0OCw3IEBAIHByaXZhdGU6CiAgICAgSlNWYWx1
ZSBnZXRQcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpCiAgICAgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QpOwotICAgICAg
ICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QobV9leGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKQorICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVl
KG1fZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCmluZGV4IDJkODEzNDcwYzdjYTE3MzkyZGVmYjIxMWQ2MjUyMTgyZDk2ZjBhMWEuLmY2YWQ3
MTRmNGIyYTFiZmUxMWRkMTZlMzE3ZTkyY2ZkMjQ4NGQ3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00MzAsNyArNDMw
LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQogICAgIG15IEBnZXRPd25Q
cm9wZXJ0eVNsb3RJbXBsID0gKCk7CiAKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5hbWVk
Tm9kZU1hcCIgb3IgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAkaW50ZXJm
YWNlTmFtZSBlcSAiSFRNTEFsbENvbGxlY3Rpb24iKSB7Ci0gICAgICAgIHB1c2goQGdldE93blBy
b3BlcnR5U2xvdEltcGwsICIgICAgJHtuYW1lc3BhY2VNYXliZX1KU1ZhbHVlIHByb3RvID0gcHJv
dG90eXBlKCk7XG4iKTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAg
ICAke25hbWVzcGFjZU1heWJlfUpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5wcm90b3R5cGUo
KTtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChw
cm90by5pc09iamVjdCgpICYmIHN0YXRpY19jYXN0PCR7bmFtZXNwYWNlTWF5YmV9SlNPYmplY3Qq
Pihhc09iamVjdChwcm90bykpLT5oYXNQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpKVxuIik7
CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHJldHVybiBm
YWxzZTtcblxuIik7CiAgICAgfQpAQCAtNDQwLDcgKzQ0MCw3IEBAIHN1YiBHZW5lcmF0ZUdldE93
blByb3BlcnR5U2xvdEJvZHkKICAgICAgICAgaWYgKCRyZXF1aXJlc01hbnVhbExvb2t1cCkgewog
ICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBjb25zdCAke25h
bWVzcGFjZU1heWJlfUhhc2hFbnRyeSogZW50cnkgPSAke2NsYXNzTmFtZX1UYWJsZS5lbnRyeShl
eGVjLCBwcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0
eVNsb3RJbXBsLCAiICAgIGlmIChlbnRyeSkge1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBlbnRyeS0+
cHJvcGVydHlHZXR0ZXIoKSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGVudHJ5LT5wcm9w
ZXJ0eUdldHRlcigpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90
SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGdldE93
blByb3BlcnR5U2xvdEltcGwsICIgICAgfVxuIik7CiAgICAgICAgIH0KQEAgLTQ1OSwyMCArNDU5
LDIwIEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAgICAgICAgaWYgKElu
ZGV4R2V0dGVyUmV0dXJuc1N0cmluZ3MoJGltcGxDbGFzc05hbWUpKSB7CiAgICAgICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChvaykge1xuIik7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAg
IGlmIChvayAmJiBpbmRleCA8IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oaW1wbCgpKS0+
bGVuZ3RoKCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1w
bCwgIiAgICBpZiAob2sgJiYgaW5kZXggPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRo
aXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKICAgICAgICAgfQogICAgICAgICBp
ZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIi
fSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0
ZXIifSkgewotICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAg
ICAgc2xvdC5zZXRWYWx1ZShnZXRCeUluZGV4KGV4ZWMsIGluZGV4KSk7XG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCkpO1xuIik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBz
bG90LnNldEN1c3RvbUluZGV4KHRoaXMsIGluZGV4LCBpbmRleEdldHRlcik7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tSW5kZXgodGhpc09iamVjdCwgaW5kZXgsIGluZGV4R2V0dGVyKTtcbiIpOwogICAgICAgICB9
CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHJldHVybiB0
cnVlO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgfVxu
Iik7CiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhh
c05hbWVHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVy
cmlkaW5nTmFtZUdldHRlciJ9KSB7Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdElt
cGwsICIgICAgaWYgKGNhbkdldEl0ZW1zRm9yTmFtZShleGVjLCBzdGF0aWNfY2FzdDwkaW1wbENs
YXNzTmFtZSo+KGltcGwoKSksIHByb3BlcnR5TmFtZSkpIHtcbiIpOwotICAgICAgICBwdXNoKEBn
ZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBuYW1l
R2V0dGVyKTtcbiIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAg
IGlmIChjYW5HZXRJdGVtc0Zvck5hbWUoZXhlYywgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUq
Pih0aGlzT2JqZWN0LT5pbXBsKCkpLCBwcm9wZXJ0eU5hbWUpKSB7XG4iKTsKKyAgICAgICAgcHVz
aChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09i
amVjdCwgdGhpc09iamVjdC0+bmFtZUdldHRlcik7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3du
UHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAgICAgcHVz
aChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICB9XG4iKTsKICAgICAgICAgaWYgKCRpbmxp
bmVkKSB7CkBAIC00ODcsMTkgKzQ4NywxOSBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNs
b3RCb2R5CiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifSkgewotICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
U2xvdEltcGwsICIgICAgaWYgKHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5U2xvdERlbGVnYXRl
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJv
cGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICB9CiAKICAgICBp
ZiAoJGhhc0F0dHJpYnV0ZXMpIHsKICAgICAgICAgaWYgKCRpbmxpbmVkKSB7CiAgICAgICAgICAg
ICBkaWUgIkNhbm5vdCBpbmxpbmUgaWYgTm9TdGF0aWNUYWJsZXMgaXMgc2V0LiIgaWYgKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0pOwotICAgICAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICByZXR1cm4gJHtuYW1lc3BhY2VN
YXliZX1nZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFtZSwgQmFzZT4oZXhlYywgc19pbmZvLnN0
YXRpY1Byb3BIYXNoVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgcmV0dXJuICR7bmFtZXNw
YWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVTbG90PCRjbGFzc05hbWUsIEJhc2U+KGV4ZWMsIHNfaW5m
by5zdGF0aWNQcm9wSGFzaFRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xu
Iik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNs
b3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0YXRpY1ZhbHVlU2xvdDwk
Y2xhc3NOYW1lLCBCYXNlPihleGVjLCAiIC4gaGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0
aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0YXRpY1Zh
bHVlU2xvdDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCAiIC4gaGFzaFRhYmxlQWNjZXNzb3IoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFt
ZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAg
IHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTtcbiIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTtcbiIpOwogICAgIH0KIAogICAgIHJldHVybiBAZ2V0T3duUHJvcGVydHlTbG90SW1w
bDsKQEAgLTc3MCw5ICs3NzAsMTEgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIEdldHRl
cnMKICAgICBpZiAoJGhhc0dldHRlcikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIp
OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpK
U0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
RGVzY3JpcHRvciYpO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pICYmICEkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9OworICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYpO1xuIikgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0lu
ZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9t
SW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1l
cmljSW5kZXhHZXR0ZXIifSkgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhh
c092ZXJyaWRpbmdOYW1lR2V0dGVyIn07CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKSBp
ZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9
KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVH
ZXR0ZXIifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blBy
b3BlcnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvckRlbGVnYXRlKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2Ny
aXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRp
bmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCJ9ID0gMTsKQEAgLTk2Nyw5ICs5NjksMTQgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn07XG5cbiIpOwogCiAg
ICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklubGluZUdldE93blByb3Bl
cnR5U2xvdCJ9ICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRP
d25Qcm9wZXJ0eVNsb3QifSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlT
X0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZ
U19JTkxJTkUgYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAie1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifVxuXG4i
KTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZU19JTkxJTkUgYm9vbCAke2Ns
YXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCogY2VsbCwgSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAie1xu
Iik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKKyAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmplY3QsICZzX2luZm8pO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIEdlbmVy
YXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xh
c3NOYW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAxKSk7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKQEAgLTEw
MzUsNyArMTA0Miw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7CiAgICAg
aWYgKCRudW1GdW5jdGlvbnMgPiAwIHx8ICRudW1Db25zdGFudHMgPiAwIHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNs
b3QifSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
LCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7Cisg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7
XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3Bl
cnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvckRlbGVn
YXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRl
bGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifTsKQEAgLTE0MzMsMjIgKzE0NDEs
MjggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG5cbiIpOwogICAgIH0KICAgICBpZiAoJG51bUNvbnN0YW50cyA+IDAgfHwgJG51bUZ1
bmN0aW9ucyA+IDAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGlu
Z1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiYm9vbCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFt
ZX1Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwor
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwor
ICAgICAgICAKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfVBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihjZWxsKTtcbiIpOwogCiAgICAgICAgIGlmICgk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlR2V0T3du
UHJvcGVydHlTbG90In0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
IChnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodGhpc09iamVjdC0+
Z2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSlcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xu
Iik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoJG51bUNvbnN0YW50cyBlcSAwICYmICRudW1G
dW5jdGlvbnMgZXEgMCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0
dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xu
Iik7ICAgICAgICAKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBC
YXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTtcbiIpOyAgICAgICAgCiAgICAgICAgIH0gZWxzaWYgKCRudW1Db25zdGFudHMgZXEgMCkg
ewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY0Z1
bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29y
KCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFz
c05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09i
amVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhp
c09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgICAgICB9IGVsc2lmICgkbnVt
RnVuY3Rpb25zIGVxIDApIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJl
dHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4o
ZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpcywgcHJv
cGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUsIEpTT2Jq
ZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlz
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlT
bG90PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVI
YXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRp
Y1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNQ
cm9wZXJ0eVNsb3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHBy
b3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBzbG90KTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuXG4iKTsKIApAQCAtMTU3Miw5ICsxNTg2LDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgIyBBdHRyaWJ1dGVzCiAgICAgaWYgKCRoYXNHZXR0ZXIpIHsKICAgICAgICAgaWYg
KCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmxpbmVHZXRPd25Qcm9wZXJ0eVNs
b3QifSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJv
cGVydHlTbG90In0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2Ns
YXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFt
ZX06OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDwk
e2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTtcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlT
bG90Qm9keSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW1wbENsYXNz
TmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAwKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtj
bGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cilcbiIpOwpAQCAtMTU4NiwxOCArMTYwNSwyMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogCiAgICAgICAgIGlmICgoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5k
ZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21J
bmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVy
aWNJbmRleEdldHRlciJ9KSAKICAgICAgICAgICAgICAgICAmJiAhJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIifSkgewotICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFt
ZX06OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7XG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChwcm9wZXJ0eU5hbWUgPCBzdGF0aWNfY2Fz
dDwkaW1wbENsYXNzTmFtZSo+KGltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7
Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7
Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAocHJvcGVydHlOYW1lIDwg
c3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgo
KSkge1xuIik7CiAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewotICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICBzbG90LnNldFZhbHVlKGdldEJ5SW5kZXgoZXhlYywgcHJvcGVy
dHlOYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5nZXRCeUluZGV4KGV4ZWMsIHByb3BlcnR5TmFt
ZSkpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXMsIHByb3BlcnR5TmFt
ZSwgaW5kZXhHZXR0ZXIpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCB0
aGlzT2JqZWN0LT5pbmRleEdldHRlcik7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6
OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHJldHVybiB0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7
XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICAgICAg
fQogICAgICAgICAKQEAgLTMxNTYsNyArMzE4MCw4IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9y
RGVjbGFyYXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBwdHI7
XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxuXG4iKTsKIAotICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtc
biIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYs
IEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlBy
b3BlcnR5RGVzY3JpcHRvciYpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0
YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKIApAQCAtMzIxMSw5ICszMjM2
LDE0IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigke251bWJlck9mY29uc3RydWN0UGFyYW1ldGVyc30p
LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7XG4iKSBpZiAkbnVtYmVyT2Zjb25z
dHJ1Y3RQYXJhbWV0ZXJzOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiAKLSAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
ImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdClcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOworICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9
XG5cbiIpOworICAgIAorICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDwke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfSwgSlNET01XcmFwcGVyPihleGVjLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwg
dGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9LCBK
U0RPTVdyYXBwZXI+KGV4ZWMsICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCBzdGF0aWNf
Y2FzdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
O1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIAogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwCmluZGV4IGRhOTkxMWVjNWQyYmU4MTZmMDJhMTRjODNjMDhlMmRlMjJmMDAyOGMuLmEwMGRl
NDRmMDNhMTA2ZTM1OGUxMDQyOWIyZDdkYmZlMzhjM2MxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwCkBAIC04Niw3ICs4Niw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNs
YXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTExNCw5ICsxMTUsMTQgQEAg
dm9pZCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamUKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0K
IAotYm9vbCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCitib29sIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xv
dDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Cit9CisKK2Jvb2wgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRpY1Zh
bHVlU2xvdDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAm
SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgc3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBK
U1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0xODgsMTAgKzE5NCwxNiBAQCBKU09iamVjdCogSlNUZXN0
SW50ZXJmYWNlOjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYgogICAgIHJldHVybiBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OmNyZWF0ZShleGVj
LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwogfQogCi1ib29sIEpTVGVzdEludGVy
ZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdEludGVyZmFj
ZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1Zh
bHVlU2xvdDxKU1Rlc3RJbnRlcmZhY2UsIEJhc2U+KGV4ZWMsICZKU1Rlc3RJbnRlcmZhY2VUYWJs
ZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNUZXN0SW50
ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorewor
ICAgIEpTVGVzdEludGVyZmFjZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTVGVzdEludGVy
ZmFjZSo+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
JnNfaW5mbyk7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RJbnRlcmZhY2Us
IEJhc2U+KGV4ZWMsICZKU1Rlc3RJbnRlcmZhY2VUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbnRlcmZhY2U6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCmluZGV4IDVi
ZmQ4OWYyMjNhNzVmODU5ZTdmMzNjZGIyODE4OTVhMGM3NzkwMmQuLmQwOGE5NDhiMmZlNzE5NDA0
MTFjZjZjYjM1MzE3ZTc2OWE2ZjJmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKQEAgLTQyLDcgKzQy
LDggQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQ
cm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDNi
ZjQzODlkMjJiNjA4MDA1MWRlYmI0MzI2N2QwZDUwNTYyYmUzYjguLmExYzY0MmU0ZDdmOGM3NjJl
YzFhNmM1N2JlMjk2NzUzNmJkZjRiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAKQEAgLTg3LDcgKzg3LDggQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gcHRyOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYp
OworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTEy
LDkgKzExMywxNCBAQCB2b2lkIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rv
cjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKUwogICAgIHB1dERpcmVjdChleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVj
LCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yVGFibGUsIHRoaXMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yVGFibGUsIHN0YXRpY19jYXN0PEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCiBib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0xNDks
OSArMTU1LDE1IEBAIEpTT2JqZWN0KiBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90
eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPCiAgICAgcmV0dXJuIGdldERPTVBy
b3RvdHlwZTxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPihleGVjLCBnbG9iYWxPYmplY3Qp
OwogfQogCi1ib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7Cisg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworfQorCitib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6Omdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJu
IGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgJkpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJQcm90b3R5cGVUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAg
ICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSo+KGNlbGwpOwor
ICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3Rv
dHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBA
IC0xNzgsMTAgKzE5MCwxNiBAQCBKU09iamVjdCogSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cjo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYQogICAgIHJldHVybiBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpjcmVhdGUoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBnbG9iYWxPYmplY3QsIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CiB9CiAKLWJvb2wgSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiti
b29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZz
X2luZm8pOwotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lciwgQmFzZT4oZXhlYywgJkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUYWJs
ZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKK3sKKyAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0aGlzT2JqZWN0
ID0gc3RhdGljX2Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KGNlbGwpOworICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7CisgICAgcmV0
dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLCBCYXNl
PihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclRhYmxlLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXI6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggNmMxNDJlOWQ5ZmE2
ZGYxNGU5OWNlZjc0MTMyNzgxZTJjOTY5NDIxNi4uOWI3ZTM2MjRkNGI1ZmJlYzBmNDliYWE4ZTlk
OWNiMmQ4NjY5OTk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oCkBAIC00MCw3ICs0MCw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2Vs
bCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNs
YXNzSW5mbyBzX2luZm87CiAKQEAgLTc1LDcgKzc2LDggQEAgcHVibGljOgogICAgIH0KIAogICAg
IHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87Ci0gICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYs
IEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggYzAyNGE0
NTFkNzkwMzJmZWE1OGY0YmE5YjI4NDlmYmU1MTA2MjY4Yy4uYmQyYWRlNGFlNTEyNzM5ZjIzMTkz
NWIwOTdiMDE2M2U3ZmZjZWY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE4OSw3ICsxODksOCBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpT
Qzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2Vs
bCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRp
YyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBw
cm90b3R5cGUpCkBAIC0yMTQsOSArMjE1LDE0IEBAIHZvaWQgSlNUZXN0T2JqQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsCiAg
ICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZSwgSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIERv
bnREZWxldGUgfCBSZWFkT25seSk7CiB9CiAKLWJvb2wgSlNUZXN0T2JqQ29uc3RydWN0b3I6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRT
dGF0aWNWYWx1ZVNsb3Q8SlNUZXN0T2JqQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywg
JkpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cisg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworfQorCitib29sIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNs
b3Q8SlNUZXN0T2JqQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdE9iakNv
bnN0cnVjdG9yVGFibGUsIHN0YXRpY19jYXN0PEpTVGVzdE9iakNvbnN0cnVjdG9yKj4oY2VsbCks
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0T2JqQ29uc3RydWN0b3I6Omdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtMzA2LDkg
KzMxMiwxNSBAQCBKU09iamVjdCogSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVybiBnZXRET01Qcm90
b3R5cGU8SlNUZXN0T2JqPihleGVjLCBnbG9iYWxPYmplY3QpOwogfQogCi1ib29sIEpTVGVzdE9i
alByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE9i
alByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAg
IHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKK30KKworYm9vbCBKU1Rlc3RPYmpQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1Byb3BlcnR5U2xv
dDxKU1Rlc3RPYmpQcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAmSlNUZXN0T2JqUHJvdG90eXBl
VGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgSlNUZXN0T2JqUHJvdG90eXBl
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oY2VsbCk7Cisg
ICAgcmV0dXJuIGdldFN0YXRpY1Byb3BlcnR5U2xvdDxKU1Rlc3RPYmpQcm90b3R5cGUsIEpTT2Jq
ZWN0PihleGVjLCAmSlNUZXN0T2JqUHJvdG90eXBlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0T2JqUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAgLTMzNSwxMCArMzQ3LDE2IEBA
IEpTT2JqZWN0KiBKU1Rlc3RPYmo6OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVGVzdE9ialByb3RvdHlwZTo6
Y3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmpQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CiB9CiAKLWJvb2wgSlNUZXN0
T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0T2JqOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90
PEpTVGVzdE9iaiwgQmFzZT4oZXhlYywgJkpTVGVzdE9ialRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNUZXN0T2JqKiB0aGlzT2JqZWN0
ID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oY2VsbCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVT
bG90PEpTVGVzdE9iaiwgQmFzZT4oZXhlYywgJkpTVGVzdE9ialRhYmxlLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggYzNkMWIyNGNiYjE3
MWE2NGYyNjkyM2Y4N2ZhZWI1NzFhZDVjOGQzMy4uNDhiYzE1ZDZhOTYzZDA2OTJhNmJiNWYwZDYw
ODQ3NjJkZjZjZmNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtNDAsNyArNDAsOCBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2
aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBz
dGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlT
bG90Jik7CkBAIC04OSw3ICs5MCw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgY29u
c3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7
CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAg
ICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDJhZDYxMGJiNmI3NDFjMDFiODgz
OWZkMmI4NjU0NWNlZmQxZGJmNjYuLjdmMWI5M2EwMzU5ZTM2NTU3MzM4MTcwNTNiNThjNjQ4YTNk
M2ZkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCkBAIC04OCw3ICs4OCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IHB0cjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
KyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBj
b25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTExMyw5
ICsxMTQsMTQgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKgogICAgIHB1dERpcmVjdChleGVjLT5n
bG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmpl
Y3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogfQogCi1ib29sIEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK2Jvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4g
Z2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNv
bnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKK30KKworYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sK
KyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKQEAgLTE2OCwxMCArMTc0LDE2IEBAIEpTT2JqZWN0KiBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMs
CiAgICAgcmV0dXJuIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlw
ZTo6Y3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZSgpKSk7CiB9CiAKLWJvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAg
ICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZSwgQmFzZT4oZXhlYywgJkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKj4oY2VsbCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSwgQmFzZT4oZXhlYywgJkpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQogCiBib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXgg
ZjFmYTRkNDRmMGJlNWEzMDYyYjZiOTcwOGE0ZWJhYWQzNjc1Mzg3MS4uNTFlNjhiZTA1MDE2ODQ2
YzAxNmIwN2RkNTZlN2U2MTUzYjk4YTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtNDIsNyArNDIsOCBAQCBwdWJsaWM6
CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IGE5OGE5MGUxOTc1MGFkYmY5MzZl
ZGI3Njk3MWUxNzE0YTVhZGI2ZWYuLjcxYzQzNzgxMzA1ZDI1MGNjOTM4ZTI1NWI4MGE4YjY5ODdi
ODY5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGlt
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0x
MjMsNyArMTIzLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBPYmpjRmFsbGJhY2tPYmpl
Y3RJbXAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1
Y3R1cmVGbGFnczsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0K
aW5kZXggNGNmYzM4NGFlNTU2M2Q3ZDE4M2U3MWZlZDdkNmEwMTFmZDM1MjU1OS4uOWIwMTJkNDQ5
MTdkNTQ5NjEwMjYzZTlkOTFlZmYwYjllZTBhY2U0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgT2JqY0ZhbGxi
YWNrT2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKLWJvb2wgT2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIE9iamNGYWxsYmFj
a09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKaW5kZXggMGQ2MWE2MDIy
OTAyYjBjYzZmNTY0OTAyMjZlNjQ5MDU5ZWEzM2JiNC4uYWU3NGRhOWFhMDNlOWM1NThkZDQwZjFi
MDY2ZDFjNTNiMjNmMTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2Uu
Y3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBRdEluc3RhbmNl
OjpnZXRRdEluc3RhbmNlKFFPYmplY3QqIG8sIFBhc3NSZWZQdHI8Um9vdE9iamUKIAogYm9vbCBR
dEluc3RhbmNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKLSAgICByZXR1cm4gb2JqZWN0LT5KU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3Qob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiB2b2lkIFF0
SW5zdGFuY2U6OnB1dChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IGMzYTdhM2Qw
YTY1ZDA1N2E0MmRlZmI0MDRiNDA2NzFmOTg2ODUzMTAuLjdjNmUzYTQ0YWE0N2ExNjIxZGRjNmE1
MjA0MjM2MmVhZTBkOWU1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5j
cHAKQEAgLTE0OTQsNyArMTQ5NCw3IEBAIENhbGxUeXBlIFF0UnVudGltZU1ldGFNZXRob2Q6Omdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICByZXR1cm4gQ2FsbFR5
cGVIb3N0OwogfQogCi1ib29sIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQorYm9vbCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMTc0MSw3ICsxNzQxLDcgQEAg
Q2FsbFR5cGUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CiB9CiAKLWJvb2wg
UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRp
bWUuaAppbmRleCA5ODE5N2Y1OTk4Mjc0NDE5YzEwMmMzZTM4NTk2OTQzYjVmYjY2ODVkLi5hYTlk
NThkOGI1NWEwMzI1YjE3MzQ0OGFiNGU2MGVmNmM0M2JkMjY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9xdC9xdF9ydW50aW1lLmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBtZXRob2Q7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVh
bCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkm
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpAQCAt
MjA1LDcgKzIwNSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1ldGhvZDsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0
YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2Rl
ID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9hcnJheS5jcHAKaW5kZXggODBlMmE4Zjk1MWUxY2U1M2IyZjM2YTZmYjE1NWMyM2I0OGU4ODli
OC4uYjY0OWM0N2UyZjM4YmFmNWJmNmEzMDY3M2Y2OTRiYTc4ZjQ4MjEyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFJ1bnRp
bWVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZQogICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHBy
b3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi1ib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTEyNiw3ICsxMjYsNyBAQCBib29s
IFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcAogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLWJvb2wgUnVu
dGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCB1bnNpZ25lZCBp
bmRleCwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlICpleGVjLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
aW5kZXgsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXgg
YTNkNDQ1OGI2Yjg4ZDMzYzk0MzNkNjA5OTI2OGYyNGEzNDA4MjdkZi4uZGE5M2M5NDVkNTFhMzdk
M2Y4MTEwMmQ1NGRmOGM2OGJhYWM5YjgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5oCkBAIC01MCw5ICs1MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SdW50aW1lQXJy
YXkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSos
IFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVu
dW1Qcm9wZXJ0aWVzKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQ
cm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0
dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmNwcAppbmRleCA1OTUzMGFlNzdkNjYzOTMyMmIyYjk4OGYzMDZjNmEwMGMyNjg4ODE1
Li5jYTkxYjhkMTU4ZWU5NDczYjE4NTg0YzIwZGU3ZmU5MTgwMDliNjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgSlNWYWx1ZSBS
dW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwg
Y29uc3QgSWRlbnRpZmkKICAgICByZXR1cm4ganNOdW1iZXIodGhpc09iai0+X21ldGhvZExpc3Qt
PmF0KDApLT5udW1QYXJhbWV0ZXJzKCkpOwogfQogCi1ib29sIFJ1bnRpbWVNZXRob2Q6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5
U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9tZXRob2QuaAppbmRleCBjNWY2NmE2MmY2MWI4MmNlNjk1NzkzMTEwNTAwOWFi
Y2MxMDgwNGM3Li4wODg1ZGJlNmUxZDFkYTY0N2I5OTNhYjRjZmU1Y2RhMjIzMDU4N2E2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtNjYsNyArNjYsNyBAQCBwcm90
ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNT
dGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggMTMzOGNmODY1
Y2U0Y2Y0YWJkZTA2YTk0ZGE0MmY3NjQxMjQ0NzE2Zi4uOWIzZjA4MWQxYzU5NDc1ZDdhODdkMGQz
YmZjNDE1ZDZmMTAwNWI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
Y3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGUKICAgICByZXR1
cm4gbWV0aG9kOwogfQogCi1ib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQorYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaAppbmRleCAwNjZkNzczN2UzMjQ2NGU1ODYyMTE4NWU2NGE1NzMzZGIxZWVkZWZjLi44YzVi
NTA1ZDc0MjY3YjVlOTg4MjA0MmI1ODQ0OTRmNDhmMzZiYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIH5SdW50aW1lT2JqZWN0KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lk
IHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdhNjY5YjY3NjA3NTRhYWU3ZTY1YmIz
MjUwOTFjZGNjYzBmMTU1YWYuLmM3NGNjNDE1ZjYzNjQ5YzQ1MDJiM2NhNzU5NjdiOGY5OWY1ZWMx
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMC0xMSAgTWFyayBIYWhuZW5i
ZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBnZXRPd25Qcm9w
ZXJ0eVNsb3QgdG8gZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4MTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWVkIHRoZSB2aXJ0dWFsIHZlcnNpb24g
b2YgZ2V0T3duUHJvcGVydHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAg
ICAgaW4gcHJlcGFyYXRpb24gZm9yIHdoZW4gd2UgYWRkIHRoZSBzdGF0aWMgZ2V0T3duUHJvcGVy
dHlTbG90IHRvIHRoZSBNZXRob2RUYWJsZSAKKyAgICAgICAgaW4gQ2xhc3NJbmZvLgorCisgICAg
ICAgIEFsc28gYWRkZWQgYSBmZXcgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCBmdW5jdGlvbnMg
d2hlcmUgdGhleSBoYWQgYmVlbiBvdmVybG9va2VkIAorICAgICAgICBiZWZvcmUgKGVzcGVjaWFs
bHkgaW4gQ29kZUdlbmVyYXRvckpTLnBtKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKwogMjAxMS0xMC0xMSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBTaG91bGQgYmUgYWJsZSB0byBkaXNw
bGF5IG11bHRpLXBhZ2UgUERGcyBpbiBzdWJmcmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCA1
M2Y1ODYwMWMwYTk2NjgxYzg1NDE4YmNkMzRkY2FiNDJlMDBhMWY0Li40NmFjMzhmM2JjMTRkM2Qw
M2E1ZjFmNDUyM2E3YWE1MTA2ZDc4ZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC0yNTIsNyAr
MjUyLDcgQEAgQ29uc3RydWN0VHlwZSBKU05QT2JqZWN0OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2Vs
bCogY2VsbCwgQ29uc3RydWN0RGF0YSYgY29uc3RydWMKICAgICByZXR1cm4gQ29uc3RydWN0VHlw
ZUhvc3Q7CiB9CiAKLWJvb2wgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCitib29sIEpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCAyM2ZmYzhmYzkyMzJkYjM0YWYwMjEz
Y2Y3M2U3MWNhZTI5NzU2MTYwLi43NzkzODY5Nzc2ZmExNDdiMDE4NGVlN2IwNWMyYTE4N2I5YWE3
ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29uc3RydWN0RGF0
YSYpOwogICAgIHN0YXRpYyBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6
OkpTQ2VsbCosIEpTQzo6Q29uc3RydWN0RGF0YSYpOwogCi0gICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7
CiAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110874</attachid>
            <date>2011-10-13 10:37:22 -0700</date>
            <delta_ts>2011-10-14 11:42:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69810-20111013103722.patch</filename>
            <type>text/plain</type>
            <size>168764</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxNjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggYTU2MDM1YjlhNGQzM2UyOTFiNTYwYTU2NzE2YzMwMmFh
ZWJhODM0YS4uNjM1ZDljZmQwNGFmMGU1ODFmNGEyMzFhODM3MzkxNWI5ZWU5NDBkMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE3OCw3ICsx
NzgsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05h
bWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAogICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAppbmRleCA4ZWUwNjA2MjdlYjQ2YmFhMjZkYWFkZTBkYzQyMTc5ZTdk
ZDVhY2JlLi5hZmIwZWNiNmUzNzdiN2U2N2U5ZTA3OWMzZjdiNDJhNTBiOGY0YzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaApAQCAtMTI0LDIwICsxMjQsMjcgQEAgVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmNsYXNzTmFtZSgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1ib29s
IEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KK2Jv
b2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CiAgICAgSlNDb250ZXh0UmVmIGN0
eCA9IHRvUmVmKGV4ZWMpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsK
KyAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYodGhpc09iamVjdCk7CiAgICAgUmVmUHRy
PE9wYXF1ZUpTU3RyaW5nPiBwcm9wZXJ0eU5hbWVSZWY7CiAgICAgCi0gICAgZm9yIChKU0NsYXNz
UmVmIGpzQ2xhc3MgPSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFy
ZW50Q2xhc3MpIHsKKyAgICBmb3IgKEpTQ2xhc3NSZWYganNDbGFzcyA9IHRoaXNPYmplY3QtPmNs
YXNzUmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNzLT5wYXJlbnRDbGFzcykgewogICAg
ICAgICAvLyBvcHRpb25hbCBvcHRpbWl6YXRpb24gdG8gYnlwYXNzIGdldFByb3BlcnR5IGluIGNh
c2VzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGtub3cgaWYgdGhlIHByb3BlcnR5IGV4aXN0cwogICAg
ICAgICBpZiAoSlNPYmplY3RIYXNQcm9wZXJ0eUNhbGxiYWNrIGhhc1Byb3BlcnR5ID0ganNDbGFz
cy0+aGFzUHJvcGVydHkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQogICAg
ICAgICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocHJv
cGVydHlOYW1lLnVzdHJpbmcoKSk7CiAgICAgICAgICAgICBBUElDYWxsYmFja1NoaW0gY2FsbGJh
Y2tTaGltKGV4ZWMpOwogICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KGN0eCwgdGhpc1JlZiwg
cHJvcGVydHlOYW1lUmVmLmdldCgpKSkgewotICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIGNhbGxiYWNrR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzT2JqZWN0LCBjYWxsYmFja0dldHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNh
bGxiYWNrIGdldFByb3BlcnR5ID0ganNDbGFzcy0+Z2V0UHJvcGVydHkpIHsKQEAgLTE2Miw3ICsx
NjksNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAgICAgICAgaWYgKE9w
YXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3Rh
dGljVmFsdWVzKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAoc3RhdGljVmFsdWVzLT5jb250YWlu
cyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBnZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgICAgIEpT
VmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0LT5nZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICBz
bG90LnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC0xNzIsMjAgKzE3OSwyMCBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAg
ICAgICAgaWYgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNGdW5jdGlvbnNUYWJsZSogc3RhdGljRnVuY3Rp
b25zID0ganNDbGFzcy0+c3RhdGljRnVuY3Rpb25zKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAo
c3RhdGljRnVuY3Rpb25zLT5jb250YWlucyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAg
ICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKTsKKyAg
ICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNGdW5jdGlvbkdl
dHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIHRl
bXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgUHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKGdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CisgICAgaWYgKGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBJZGVhbGx5IHdlIHNob3VsZCByZXR1
cm4gYW4gYWNjZXNzIGRlc2NyaXB0b3IsIGJ1dCByZXR1cm5pbmcgYSB2YWx1ZSBkZXNjcmlwdG9y
IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICghZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCkBAIC01OTYsNyArNjAzLDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZQogICAgIAog
ICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHkuCiAgICAgUHJvcGVy
dHlTbG90IHNsb3QyKHRoaXNPYmopOwotICAgIGlmICh0aGlzT2JqLT5QYXJlbnQ6OmdldE93blBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QyKSkKKyAgICBpZiAoUGFyZW50Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90MikpCiAg
ICAgICAgIHJldHVybiBzbG90Mi5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIAog
ICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iai0+Y2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA0NzJjYTk0ZGI5ODFmM2Q4YjAxYzc3MDI5NzMyNjM4YTdiNjkyOGFmLi45NzcwZGJm
ZWM1NmEwM2I1ZDUzYzYwOTJjOTY0YjUzMGJhNWQyZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDIgQEAKKzIwMTEtMTAtMTEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRv
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdmlydHVhbCB2ZXJzaW9uIG9mIGdldE93blBy
b3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGluIHByZXBh
cmF0aW9uIGZvciB3aGVuIHdlIGFkZCB0aGUgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCB0byB0
aGUgTWV0aG9kVGFibGUgCisgICAgICAgIGluIENsYXNzSW5mby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgZmV3IHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgZnVuY3Rpb25zIHdoZXJlIHRoZXkg
aGFkIGJlZW4gb3Zlcmxvb2tlZCAKKyAgICAgICAgYmVmb3JlIChlc3BlY2lhbGx5IGluIENvZGVH
ZW5lcmF0b3JKUy5wbSkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAg
ICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoSlNDOjo6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6Cisg
ICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6Omdl
dE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6QXJy
YXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwp
OgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L0Jvb2xlYW5Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90
b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpEYXRlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAg
ICAgIChKU0M6OkpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXku
Y3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToK
KyAgICAgICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6
CisgICAgICAgIChKU0M6OkpTQm91bmRGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50
aW1lL0pTQnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnB1dCk6CisgICAgICAg
ICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmpl
Y3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpT
dHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkpOgorICAgICAgICAoSlNDOjpK
U09OT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6V2Fs
a2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omhhc093blByb3BlcnR5KToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpmYXN0R2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmdldCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0
Lmg6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6OkpTU3Ry
aW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6OmdldFN0YXRpY1Byb3BlcnR5
U2xvdCk6CisgICAgICAgIChKU0M6OmdldFN0YXRpY0Z1bmN0aW9uU2xvdCk6CisgICAgICAgIChK
U0M6OmdldFN0YXRpY1ZhbHVlU2xvdCk6CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6
CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9y
Lmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlND
OjpPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAq
IHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmg6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwTWF0Y2hlc0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmpl
Y3QuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OlJlZ0V4cFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAg
ICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0
cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGlt
ZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6
CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaDoKKwogMjAxMS0xMC0xMSAg
R2F2aW4gQmFycmFjbG91Z2ggIDxiYXJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBTd2l0
Y2ggUmVnaXN0ZXJTaXplZEJvb2xlYW4vZGZnQ29udmVydEpTVmFsdWVUb0ludDMyIHJldHVybiB0
eXBlIHRvIHNpemVfdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5k
ZXggZmFhNWVjMjk1NmJjMWNjYzViM2E4N2U3ZDU5ZmMxY2M2YzI0MTMzNC4uMTgyZmY1YzZlZGIz
MzEwMzQ1OGUxNzQ5MmQ5ZGNiZjZmOTg4N2I2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCkBAIC0xNDgsOCArMTQ4LDYgQEAgX19aTjNKU0MxMlNtYWxsU3RyaW5n
czE3Y3JlYXRlRW1wdHlTdHJpbmdFUE5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0MxMlNtYWxs
U3RyaW5nczI3Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3RyaW5nRVBOU18xMkpTR2xvYmFsRGF0YUVo
CiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QxNGZpbmlzaENyZWF0aW9u
RVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTU3RyaW5nRQotX19aTjNKU0MxMlN0cmluZ09iamVj
dDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJO
U18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDMTJTdHJpbmdPYmplY3QxOGdldE93blByb3BlcnR5
U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxMlN0cmlu
Z09iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0
eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3Qy
NGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0M3B1dEVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9w
ZXJ0eVNsb3RFCkBAIC0xNjcsOCArMTY1LDkgQEAgX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTNj
bGVhclJhcmVEYXRhRVBOU182SlNDZWxsRQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTN2aXNp
dENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNKU0MxNEpTR2xv
YmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBOUzBfMThHbG9iYWxQcm9wZXJ0eUluZm9FaQog
X19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVqCi1fX1pOM0pTQzE0SlNHbG9iYWxPYmpl
Y3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVS
TlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3Bl
cnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNf
MTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNGdldE93blByb3BlcnR5
RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0
eURlc2NyaXB0b3JFCitfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNWdldE93blByb3BlcnR5U2xv
dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlT
bG90RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFICAKIF9fWk4zSlND
MTRKU0dsb2JhbE9iamVjdDRpbml0RVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxP
YmplY3Q2c19pbmZvRQpAQCAtMjYwLDggKzI1OSw4IEBAIF9fWk4zSlNDNkpTQ2VsbDExZ2V0Q2Fs
bERhdGFFUFMwX1JOU184Q2FsbERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVj
dERhdGFFUk5TXzEzQ29uc3RydWN0RGF0YUUKLV9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVy
dHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xv
dEUKLV9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpS
TlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzZKU0NlbGwyNWdldE93blByb3BlcnR5U2xvdFZp
cnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90
RQorX19aTjNKU0M2SlNDZWxsMjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0
YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUK
IF9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRSAgCiBfX1pO
M0pTQzZKU0NlbGw5Z2V0T2JqZWN0RXYKQEAgLTI4MCw3ICsyNzksNyBAQCBfX1pOM0pTQzdKU0Fy
cmF5MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNK
U0M3SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0M3
SlNBcnJheTE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN0FyZ0xpc3RF
CiBfX1pOM0pTQzdKU0FycmF5MTVzZXRTdWJjbGFzc0RhdGFFUHYKLV9fWk4zSlNDN0pTQXJyYXkx
OGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQor
X19aTjNKU0M3SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhl
Y1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzdKU0FycmF5NnNfaW5mb0UKIF9f
Wk4zSlNDN0pTQXJyYXk5c2V0TGVuZ3RoRWoKIF9fWk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0ds
b2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCkBAIC0zMjMsMTIgKzMyMiwxMiBAQCBfX1pOM0pTQzhK
U09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFTlNfN0pTVmFsdQogX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185
RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRWpiUk5TXzE1UHV0UHJvcGVy
dHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0
YXRlRWpOU183SlNWYWx1ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90
RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCi1fX1pOM0pT
QzhKU09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9w
ZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4
ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9f
Wk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmpl
Y3QyMmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RFUk5TXzEyUHJvcGVydHlTbG90RVBOU18xNldyaXRl
QmFycmllckJhc2VJTlNfN1Vua25vd25FRUUKIF9fWk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0ZVBy
b3BlcnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERhdGFFbW0KIF9fWk4zSlNDOEpTT2JqZWN0MjRn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
Uk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQorX19aTjNKU0M4SlNPYmplY3QyNWdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4z
SlNDOEpTT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNW
YWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlF
eGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QzcHV0RVBOU182SlNDZWxs
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFBy
b3BlcnR5U2xvdEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYKaW5kZXggN2M3OTdkM2EzOGI3NjQzODkwNWUxMWRiMmVkMGZjOWI0OWZmYmJm
Yy4uNWNjNDRkYjM4NDJlYzEzMTUzODMyNGM0ZTU0NWU5ZTY2Mzc1MzYwMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTE5OSwx
NSArMTk5LDEyIEBAIEVYUE9SVFMKICAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU09iamVjdEBK
U0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRp
b25Nb2RlQDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU1ZhcmlhYmxlT2JqZWN0QEpT
Q0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlv
bk1vZGVAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQFN0cmluZ09iamVjdEBKU0NAQFVB
RVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRpb25Nb2Rl
QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTQXJyYXlASlNDQEBVQUVfTlBBVkV4ZWNT
dGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RASlND
ZWxsQEpTQ0BARUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlT
bG90QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTQ2VsbEBKU0NAQEVBRV9OUEFWRXhl
Y1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEBK
U0dsb2JhbE9iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFB
VlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEBKU09iamVjdEBKU0NA
QFVBRV9OUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blBy
b3BlcnR5U2xvdEBKU1N0cmluZ0BKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmll
ckAyQEFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEBKU1N0cmlu
Z0BKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dl
dE93blByb3BlcnR5U2xvdEBTdHJpbmdPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFC
VklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eVNs
b3RAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90
QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTQXJyYXlASlNDQEBTQV9OUEFWSlNDZWxs
QDJAUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCisgICAgP2dldE93blByb3Bl
cnR5U2xvdEBKU0dsb2JhbE9iamVjdEBKU0NAQFNBX05QQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVA
MkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlTbG90QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbEBKU0NlbGxASlNDQEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZp
ZXJAMkBBQVZQcm9wZXJ0eVNsb3RAMkBAWgorICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
QEpTQ2VsbEBKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCisg
ICAgP2dldE93blByb3BlcnR5U2xvdFZpcnR1YWxASlNHbG9iYWxPYmplY3RASlNDQEBVQUVfTlBB
VkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eVNsb3RAMkBAWgorICAgID9n
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsQEpTT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVA
MkBJQUFWUHJvcGVydHlTbG90QDJAQFoKICAgICA/Z2V0UHJvcGVydHlEZXNjcmlwdG9yQEpTT2Jq
ZWN0QEpTQ0BAUUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlE
ZXNjcmlwdG9yQDJAQFoKICAgICA/Z2V0UHJvcGVydHlOYW1lc0BKU09iamVjdEBKU0NAQFVBRVhQ
QVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRpb25Nb2RlQDJA
QFoKICAgICA/Z2V0U2xpY2VAQXJnTGlzdEBKU0NAQFFCRVhIQUFWMTJAQFoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5k
ZXggMGNmOTdmMjU5Nzc5ODU2MmYzNDRjODY2OWRhMWQ3YmNhNGI5YWJhZC4uNGU5MDY4MGM4MmFk
ZmM3ZjJiZGRkNmU3NTg1MTkzMjExMjQ1M2M0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTYwLDE0ICs2MCwx
NCBAQCBVU3RyaW5nIERlYnVnZ2VyQWN0aXZhdGlvbjo6Y2xhc3NOYW1lKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9hY3RpdmF0aW9uLT5jbGFzc05hbWUoKTsKIH0KIAotYm9vbCBEZWJ1Z2dlckFjdGl2
YXRpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBEZWJ1Z2dlckFjdGl2
YXRpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKIGJvb2wgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2
YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0
aW9uKj4oY2VsbCktPm1fYWN0aXZhdGlvbi0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXggN2E1NWE3YTM5NTg0YWU3
ZDliYjVhZTk0ZGNhMDBkNTlkNTk0NDk5NS4uNGRlZjBlYjdjMGU5NWU1Njk1M2FiNDk3MDA3Njkz
NDhhODU2NzUyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7
CiAgICAgICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IGM0OTRkYTEz
MmMyYTMwNTk0MzJmMjIyMjE0Yzk1Y2YwNGU5YzRhYjUuLjM1NWRkMjAzNzQ1NzJkM2EwMDE1Yjdm
YmZjNTE3OTFhNjQwZDU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgQXJndW1lbnRzOjpmaWxsQXJnTGlz
dChFeGVjU3RhdGUqIGV4ZWMsIE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzKQogICAgIH0KIH0K
IAotYm9vbCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaSwg
c2xvdCk7CiB9CkBAIC0xODgsMzUgKzE4OCw0MSBAQCB2b2lkIEFyZ3VtZW50czo6Y3JlYXRlU3Ry
aWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KEV4ZWNTdGF0ZSogZXhlYykKICAgICBkZWZpbmVPd25Q
cm9wZXJ0eShleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVlLCBkZXNjcmlwdG9yLCBm
YWxzZSk7CiB9CiAKLWJvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKK2Jvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworfQorCitib29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxBcmd1bWVudHMqPihjZWxsKTsKICAgICBib29sIGlzQXJyYXlJbmRleDsKICAgICB1
bnNpZ25lZCBpID0gcHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChpc0FycmF5SW5kZXgpOwotICAg
IGlmIChpc0FycmF5SW5kZXggJiYgaSA8IGQtPm51bUFyZ3VtZW50cyAmJiAoIWQtPmRlbGV0ZWRB
cmd1bWVudHMgfHwgIWQtPmRlbGV0ZWRBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgIGlmIChpIDwg
ZC0+bnVtUGFyYW1ldGVycykgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZShkLT5yZWdpc3Rl
cnNbZC0+Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGldLmdldCgpKTsKKyAgICBpZiAoaXNBcnJheUlu
ZGV4ICYmIGkgPCB0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHMgJiYgKCF0aGlzT2JqZWN0LT5k
LT5kZWxldGVkQXJndW1lbnRzIHx8ICF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzW2ld
KSkgeworICAgICAgICBpZiAoaSA8IHRoaXNPYmplY3QtPmQtPm51bVBhcmFtZXRlcnMpIHsKKyAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+ZC0+cmVnaXN0ZXJzW3RoaXNPYmpl
Y3QtPmQtPmZpcnN0UGFyYW1ldGVySW5kZXggKyBpXS5nZXQoKSk7CiAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZShkLT5leHRyYUFyZ3VtZW50c1tpIC0gZC0+bnVtUGFy
YW1ldGVyc10uZ2V0KCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5k
LT5leHRyYUFyZ3VtZW50c1tpIC0gdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVyc10uZ2V0KCkp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGggJiYgTElLRUxZKCFkLT5vdmVycm9kZUxlbmd0
aCkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZShqc051bWJlcihkLT5udW1Bcmd1bWVudHMpKTsK
KyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGggJiYg
TElLRUxZKCF0aGlzT2JqZWN0LT5kLT5vdmVycm9kZUxlbmd0aCkpIHsKKyAgICAgICAgc2xvdC5z
ZXRWYWx1ZShqc051bWJlcih0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHMpKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuY2FsbGVlICYmIExJS0VMWSghZC0+b3ZlcnJvZGVDYWxsZWUpKSB7Ci0gICAg
ICAgIGlmICghZC0+aXNTdHJpY3RNb2RlKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKGQt
PmNhbGxlZS5nZXQoKSk7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkuY2FsbGVlICYmIExJS0VMWSghdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVDYWxsZWUpKSB7
CisgICAgICAgIGlmICghdGhpc09iamVjdC0+ZC0+aXNTdHJpY3RNb2RlKSB7CisgICAgICAgICAg
ICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QtPmQtPmNhbGxlZS5nZXQoKSk7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBjcmVhdGVTdHJpY3RNb2RlQ2FsbGVl
SWZOZWNlc3NhcnkoZXhlYyk7CisgICAgICAgIHRoaXNPYmplY3QtPmNyZWF0ZVN0cmljdE1vZGVD
YWxsZWVJZk5lY2Vzc2FyeShleGVjKTsKICAgICB9CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIgJiYgZC0+aXNTdHJpY3RNb2RlKQotICAgICAg
ICBjcmVhdGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhlYyk7CisgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyICYmIHRoaXNPYmplY3QtPmQt
PmlzU3RyaWN0TW9kZSkKKyAgICAgICAgdGhpc09iamVjdC0+Y3JlYXRlU3RyaWN0TW9kZUNhbGxl
cklmTmVjZXNzYXJ5KGV4ZWMpOwogCi0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
fQogCiBib29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3Im
IGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmlu
ZGV4IDZiMWZhMDg4YmI1NzdiMjk3NTQzM2UyNTE1NjFhOThhN2Y2NzQ5ZDYuLmI1OGY5NTdhNmUy
ZGUzNGRkMDI4YTFkZDBlYTA5MjAxMWE0NDY3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5oCkBAIC0xMjQsOSArMTI0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGdldEFyZ3VtZW50c0RhdGEoQ2FsbEZyYW1lKiwg
SlNGdW5jdGlvbiomLCBwdHJkaWZmX3QmIGZpcnN0UGFyYW1ldGVySW5kZXgsIFJlZ2lzdGVyKiYg
YXJndiwgaW50JiBhcmdjKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5
JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggZjU1NGU0MWE0ZmNhZmY5ZTkwMjkzNjc5NjA5NWJiZmExZWE0ZGMxNy4uMThjOTY5ZGMz
NzY2ZGY0NGEwOTcwMGU2YmE2NDZmMmFiMTE2NzA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzLDkgKzYzLDE0IEBA
IHZvaWQgQXJyYXlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBB
cnJheVByb3RvdHlwZSogYXJyYXlQcm90CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJl
cigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogfQogCi1ib29sIEFycmF5
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBBcnJheUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7Ci0gICAg
cmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVj
U3RhdGU6OmFycmF5Q29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVu
Y3Rpb25TbG90PEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlDb25zdHJ1
Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxBcnJheUNvbnN0cnVjdG9yKj4oY2VsbCksIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKaW5kZXggMGVhM2U0MmJjZDIx
OTEzYjY4MzhkMjZlYWIwMTUzMWM5NTM4N2FhYS4uYWZmNzFiZThiNGU4MWNkZTRlOWEyMjMyMWY0
MjcyNmQ3OTc5MWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuaApAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
IHByaXZhdGU6CiAgICAgICAgIEFycmF5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCBjZjE2
MTYwM2EzNGYxNTkzMzZiYzM5NWU3ZGQ4MjQ5YTFmNTdlY2VkLi44OWVjYWE5OTRmMTVjMDY4N2Q5
OGRiNmZjNzVjNjIwNDU0MjYwMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBBcnJheVBy
b3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1ib29sIEFycmF5UHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJv
cGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCA5Yzg2MGM2YzQz
ZTlmYTkzOGE4ZmExZTdmY2I1NjI5ZDJiOTJmMzgyLi5iMjNjNzY2MzY1MmExNGVlZjI5NjdjYjdh
ODFiMTg0Nzk3ZWFiYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCBlNzQ4ZGUyYjE5YjU4N2EzZGJmZDdj
MjhjMjZmNzZmNGFmYTQxYzg1Li43NjA5ZDRlNzU4YzAxYTY5N2VjZmU4NzMxNjc3NjFhNTNiOTAx
NDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEJvb2xlYW5Qcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiB9CiAKLWJvb2wgQm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIEJvb2xlYW5Qcm90b3R5cGU6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKaW5kZXggYjBiNGY1NTBlZjI5
Mzg2NmEwNTdlMTI1NGMxYWUwNWZmNGUwYTQ2Zi4uNzA3YTdlZjA5MGVjNzY5ZmMzYTIxMDYzODgy
NTUzMmMyZTAzYzU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5Qcm90b3R5cGUuaApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
IHByaXZhdGU6CiAgICAgICAgIEJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJl
Kik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBmNDQwYTY0
YmZhNWY2NTMwY2RjZWY3NDJkOTNkZGNjZWEyYWExMzIxLi4xZGRmNmYwMDY3NmYyN2MwYjI1MWVm
NzJkNTUwYjJmNWYxZDVmOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBEYXRlQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZVByb3RvdHlwZSogZGF0
ZVByb3RvdHkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRh
KCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDcpLCBSZWFkT25seSB8
IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wgRGF0ZUNvbnN0cnVjdG9yOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgRGF0ZUNvbnN0cnVjdG9yOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRleCBmODM3ZDY2YWFl
ZDFjM2JiYmVlMzliN2QyMDY1Y2RjZWU0ODNiMjIxLi4zZjNiNjYxMmNhOWM3ZDVkM2Y5ZWRiMjM0
MzQ3N2Q5YmRjZGMzMTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuaApAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IGE2
OGY0ODM4YmIwNjI2NWM5N2JjMDQ2NDJkZjFjOTQ2NzdjOGE4MDcuLmM2OGIyZDIzM2E3M2JjZTQ0
YTVkMjQzMWE0ZTUxNTk5YWRkM2RjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC00NDMsNyArNDQzLDcgQEAgdm9pZCBEYXRlUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikK
ICAgICAvLyBUaGUgY29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgRGF0ZUNv
bnN0cnVjdG9yIGhhcyBiZWVuIGJ1aWx0LgogfQogCi1ib29sIERhdGVQcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBEYXRlUHJvdG90eXBlOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5
U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCmluZGV4IDcyMDUyNjJkMjliNDg3OGJi
YWUwNzQ0MmEyNWU0NGM0ZmRlNzBhNjguLmRkZDY1NGI3YTI4ZDA3ZGM5OWRjMzNmNWJlNjBmYjll
NDg5YWNmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQ
cm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90
eXBlLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBwcm90
b3R5cGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICBy
ZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNj
cmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
clByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3Rv
dHlwZS5jcHAKaW5kZXggNDM5ZDlhODMxNDdmOGYwMTRkNzQ2Y2ZmN2Q4MzJlZWZmYTRjNTJkMy4u
YThhOTU4MThhODQxOWFhNGUyZjU2MjlhM2VlZTFjZjI0MGE0NDE3MSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtNjIsNyArNjIs
NyBAQCB2b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KikKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkubmFtZSwganNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJFcnJvciIp
LCBEb250RW51bSk7CiB9CiAKLWJvb2wgRXJyb3JQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90ICZzbG90KQorYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5oCmluZGV4IDY1ZjNmZmY1ZjZlMGZkMzUxNjVkNTNlOWJi
M2EyNTE5NWNjMTFmNzkuLmY2MmRkNTUxMzlmYTQxOTExZmJjYzYyOTI5Zjc3ZDQzMzA4N2Y1ZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaApA
QCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRXJy
b3JJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggOTBmOTExMDk0NGUxNDE0NTIxM2QzZDBl
OWU1ZGMyMTM2ZWRjMzZhOC4uMWEzMmFmZGQ2ZTNjMjkwNWRiMWQzMjQ4Y2QzYzhjYzljOWE0ZTA4
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3Bw
CkBAIC0xNDEsNyArMTQxLDcgQEAgaW5saW5lIGJvb2wgSlNBY3RpdmF0aW9uOjpzeW1ib2xUYWJs
ZVB1dFdpdGhBdHRyaWJ1dGVzKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQorYm9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0
aXZhdGlvbi5oCmluZGV4IDdiZWQyOWZkMzBjMGI1NmZjMjI3Y2UzOGY2MjNiMDliOTFjMTMzY2Iu
LjIzYjk3ZDZjMmRiMjQ5ZGExYTM3YTY1ZDJkMWZmOWJiNjQ3NWQwNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02MSw3ICs2MSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2YXRpb25PYmplY3Qo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDIxNzNmZjE2
ZDg0YTNlNWU5NWMwYjU0ZWE2NGY4NGFkYTE1MWM0MTQuLmY5ZjZjNTIwMGRmZTM0NTA4NTdlY2Q1
ZmU5NWUzNTVlZGRhMzViZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgSlNBcnJheTo6fkpTQXJyYXkoKQogICAgIGZhc3RG
cmVlKG1fc3RvcmFnZS0+bV9hbGxvY0Jhc2UpOwogfQogCi1ib29sIEpTQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xv
dCkKK2Jvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3du
UHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGksIHNsb3QpOwogfQpAQCAtMjU3LDcgKzI1Nyw3IEBA
IGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBpLCBQcm9wCiAgICAgCiAgICAgaWYgKGkgPj0gc3RvcmFnZS0+bV9s
ZW5ndGgpIHsKICAgICAgICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpCi0gICAgICAgICAgICBy
ZXR1cm4gdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZy
b20oZXhlYywgaSksIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xv
dCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTI4MCw3ICsyODAsNyBAQCBi
b29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgaSwgUHJvcAogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHNsb3Qp
OwogfQogCi1ib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9v
bCBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IGRiZmMxNzEx
NDI1OGExMzc4MjE4NDNjYjk1NzhiM2E5Y2RkMTZkMzguLjlhZDk1NDBiMTJhMTJhZjU1ZjM1NDgx
Mjg4MWVmNjRkZTA1YTM0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5
LmgKQEAgLTk0LDkgKzk0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4g
YXJyYXk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUp
OyAvLyBGSVhNRTogTWFrZSBwcm90ZWN0ZWQgYW5kIGFkZCBzZXRJdGVtLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKaW5kZXggNzFlZDM4
MGEyMzY3OTdmZDZlNmVkODRjMTA2ZWViYTNmYWU4ZjU3Yi4uMDI0ODdkODM5YTMzOWFmZmE3Mzlh
MmU1Mjc2MmIwYWYxOTM1NTA3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC05Niw3ICs5Niw3IEBAIGJvb2wgSlNCb3VuZEZ1
bmN0aW9uOjpoYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEpTVmFs
dWUpCiAgICAgcmV0dXJuIG1fdGFyZ2V0RnVuY3Rpb24tPmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVl
LCBwcm90byk7CiB9CiAKLWJvb2wgSlNCb3VuZEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgSlNCb3VuZEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAppbmRleCBjYzUxNjkzNzYxZmFjODk0ZDA5MDNjMGIx
Y2UyOTVmZDFmNTkwYmEzLi5iNDVlMmQ5YmFiNjVhNDA4MzJhNmYyZjA4MTkyY2NiMmQzYmZlYzNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rp
b24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24u
aApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNCb3VuZEZ1bmN0aW9u
KiBjcmVhdGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogdGFyZ2V0RnVu
Y3Rpb24sIEpTVmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJncywgaW50LCBjb25zdCBJ
ZGVudGlmaWVyJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4IDhhYjQ3MjZlM2VhMWY1ZjkxMDBm
MGI0MDYyMWYzMTQ3N2JkNjM5NmEuLjUxNTcxMDNlZGZhNWI3ZjgwNjE0MWUyNGUwMjA2NjUzMGVl
NWI4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5j
cHAKQEAgLTU0LDcgKzU0LDcgQEAgU3RydWN0dXJlKiBKU0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgY2xhc3NJbmZvKTsKIH0KIAotYm9v
bCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQnl0
ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0
dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
fQpAQCAtODIsNyArODIsNyBAQCBib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvcik7CiB9CiAKLWJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJl
dHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IDQw
ZjBhYTFhN2I3YTRhZTZmNTMwMjY1NDJkMTc5NDVhNjU1MWRmMTAuLjRkZjM2NmIxODVjZDcyMmY5
NjRmYWQ4YWQyZDM1ZDViNDg3MWE2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCeXRlQXJyYXkuaApAQCAtODgsOSArODgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNH
bG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0g
JnNfaW5mbyk7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9w
ZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4
IDg5NzNkYzMwMDQ0ZmJmZjc4ZjBmMDYzNjIzOGI5ZjhiZTM5ZTk3OTEuLjYzYTY5ZGU2ZjllMTQy
MzQ5MDc4OGZmMDM0MmNkNDkzNTRkNGYxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmNwcApAQCAtNjksNyArNjksNyBAQCBDb25zdHJ1Y3RUeXBlIEpTQ2VsbDo6Z2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJikKICAgICByZXR1cm4gQ29uc3Ry
dWN0VHlwZU5vbmU7CiB9CiAKLWJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCitib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNs
b3QpOwogfQpAQCAtODYsNyArODYsNyBAQCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJgogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U0NlbGw6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blBy
b3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggMjNmMGZkNWMwZmFmNzU0OWZlNzYwOGUwZTRl
YjBmNTNmMzIwNmJlNy4uZWEyNzJkZmE5MzEyOTdjMDFmNmNkYmQ4YWU1MmNiM2ZiY2Q2M2Y2MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTEzNSw5ICsxMzUsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIEJhc2UgaW1wbGVt
ZW50YXRpb247IGZvciBub24tb2JqZWN0IGNsYXNzZXMgaW1wbGVtZW50cyBnZXRQcm9wZXJ0eVNs
b3QuCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIAogICAg
ICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNDkzMzMwNDZjZDc5Yjg5ODVk
ZDc1ZmNhZmU1YjE2Y2E3ZTQzY2EyNS4uNDMwMjY5YTM2YjRlNTcyZjJjZmQ5N2FiN2M1Yjk2YzFh
YTNjMzRlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBKU1ZhbHVlIEpTRnVuY3Rpb246Omxlbmd0aEdldHRlcihF
eGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJgogICAgIHJldHVy
biBqc051bWJlcih0aGlzT2JqLT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1ldGVyQ291bnQoKSk7CiB9
CiAKLWJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29s
IEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CkBAIC0yNTgsNyArMjU4LDcgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm8KICAgICAK
ICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUp
IHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIGdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIHJldHVybiBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsK
ICAgICB9CiAgICAgCkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBKU0Z1bmN0aW9uOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnQK
ICAgICBpZiAoIWlzSG9zdEZ1bmN0aW9uKCkgJiYgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJv
cGVydGllcykpIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHByb3RvdHlwZSBoYXMgYmVlbiByZWlm
aWVkLgogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgZ2V0T3duUHJvcGVydHlT
bG90KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIHNsb3QpOworICAgICAg
ICBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5w
cm90b3R5cGUsIHNsb3QpOwogCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5hcmd1bWVudHMpOwogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuY2FsbGVyKTsKQEAgLTMxNiw3ICszMTYsNyBAQCB2b2lkIEpTRnVuY3Rp
b246OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYQogICAgICAgICAvLyBNYWtlIHN1cmUgcHJvdG90eXBlIGhhcyBiZWVuIHJlaWZp
ZWQsIHN1Y2ggdGhhdCBpdCBjYW4gb25seSBiZSBvdmVyd3JpdHRlbgogICAgICAgICAvLyBmb2xs
b3dpbmcgdGhlIHJ1bGVzIHNldCBvdXQgaW4gRUNNQS0yNjIgOC4xMi45LgogICAgICAgICBQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHRoaXNPYmplY3QtPmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9CiAgICAgaWYg
KHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgewogICAgICAgICBp
ZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA5YjlkYTljZTlm
YWI3NTQ3MWRhOGNmOWFjMTdmZmJjMGQ3NzNiYzM2Li5lMzViMTdlNDc1MTY4M2NjNjhmOTY5Yjlk
Mjg5ODI3ZmMyNWJhZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5oCkBAIC0xMzEsNyArMTMxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgTmF0aXZlRXhlY3V0YWJsZSosIGludCBsZW5ndGgs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRp
b25Nb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMGZlNDM2ZGI3MmNkMDY0
MGIzODU4MjA1ZmE0MWI5NDAzZThmNDAzMC4uOTJkZmRjMGMyMGRkZmFhYzliOTQwNDNmNjY3MjI5
NTdhMTZhMWNmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcApAQCAtNDIzLDcgKzQyMyw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmFk
ZFN0YXRpY0dsb2JhbHMoR2xvYmFsUHJvcGVydHlJbmZvKiBnbG9iYWxzLCBpbnQgY291bnQpCiAg
ICAgfQogfQogCi1ib29sIEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK2Jvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAppbmRleCAxMTVkNWNiNmJkOTU0ODM3M2FhY2U4MDEzOGM4ZWFmMjYz
YTNhNjc4Li5iMGZlNDc0Njk3NGE3YmQ3N2Q3OTk5OTExMTAwNGIwNWY3YjQxMjMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE4MCw3
ICsxODAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENo
aWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25Qcm9wZXJ0eUZvcldyaXRl
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKQEAgLTM0Miw3ICszNDIsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBpbmxpbmUgYm9vbCBKU0dsb2JhbE9iamVjdDo6aGFzT3duUHJvcGVy
dHlGb3JXcml0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSkKICAgICB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBpZiAoSlNWYXJp
YWJsZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkp
CisgICAgICAgIGlmIChKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICBib29sIHNsb3RJc1dyaXRlYWJsZTsKICAgICAgICAgcmV0dXJuIHN5bWJvbFRhYmxlR2V0
KHByb3BlcnR5TmFtZSwgc2xvdCwgc2xvdElzV3JpdGVhYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKaW5kZXggZTE0YTY4YmQ5NGZhMTRl
ZTBjZDY0ZDBmMzQyN2FhMmNjNDZkYjlkOS4uMDcyZDgyNTZmZDY3ODYzMjkzN2ZkYzNkNjE2ZmYw
YjI0M2ZjODVkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RB
bk9iamVjdC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgVVN0cmluZyBKU05vdEFuT2JqZWN0Ojp0b1N0
cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuICIiOwogfQogCi1ib29sIEpT
Tm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNOb3RBbk9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwogfQpAQCAt
NjksNyArNjksNyBAQCBib29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNO
b3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBiOGYw
ZmFhODU2MjI2MjNjMjA3OWM5YzljNzEzN2Q3ZDdiMjg1MWY3Li4wNjc4ODcxNDk0MTExYTk5YjEz
MjQzYmYyNzUwZjViNWEzOGQwN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05vdEFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNOb3RBbk9iamVjdC5oCkBAIC03MCw5ICs3MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAg
ICAgLy8gSlNPYmplY3QgbWV0aG9kcwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwot
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCBkM2ZjMzU5OTMx
ZTAxNjkxMDg3NWZjODg5Y2JjZmMyODg1YzNjYzNlLi41NWFjZTkwZWQzNzE5NjM0OGU4MWU0MDcz
NDNiOGJkYTMxZDg2NDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcApAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6
YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgVVN0cmluZ0J1CiAg
ICAgICAgICAgICB2YWx1ZSA9IGFzQXJyYXkobV9vYmplY3QuZ2V0KCkpLT5nZXRJbmRleChpbmRl
eCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QobV9vYmpl
Y3QuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKCFtX29iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIGluZGV4LCBzbG90KSkKKyAgICAgICAgICAgIGlmICghbV9vYmplY3QtPmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgaW5kZXgsIHNsb3QpKQogICAgICAgICAgICAgICAgIHNs
b3Quc2V0VW5kZWZpbmVkKCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTQxLDcgKzU0MSw3IEBAIGJvb2wg
U3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJp
bmdpZmllciwgVVN0cmluZ0J1CiAgICAgICAgIC8vIEdldCB0aGUgdmFsdWUuCiAgICAgICAgIFBy
b3BlcnR5U2xvdCBzbG90KG1fb2JqZWN0LmdldCgpKTsKICAgICAgICAgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKVtpbmRleF07
Ci0gICAgICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAoIW1fb2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlO
YW1lKTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQpAQCAtNTk4LDcgKzU5OCw3
IEBAIGNvbnN0IENsYXNzSW5mbyBKU09OT2JqZWN0OjpzX2luZm8gPSB7ICJKU09OIiwgJkpTTm9u
RmluYWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlCiAKIC8vIEVDTUEgMTUuOAogCi1ib29sIEpTT05P
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU09OT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtNjkz
LDcgKzY5Myw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVu
ZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBhcnJheS0+Z2V0SW5kZXgo
aW5kZXgpOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFycmF5LT5nZXRPd25Qcm9w
ZXJ0eVNsb3QobV9leGVjLCBpbmRleCwgc2xvdCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChh
cnJheS0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChtX2V4ZWMsIGluZGV4LCBzbG90KSkKICAg
ICAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBzbG90LmdldFZhbHVlKG1fZXhlYywgaW5k
ZXgpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBp
blZhbHVlID0ganNVbmRlZmluZWQoKTsKQEAgLTc1NSw3ICs3NTUsNyBAQCBORVZFUl9JTkxJTkUg
SlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgUHJvcGVydHlT
bG90IHNsb3Q7Ci0gICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90
KG1fZXhlYywgcHJvcGVydGllc1tpbmRleF0sIHNsb3QpKQorICAgICAgICAgICAgICAgIGlmIChv
YmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVjLCBwcm9wZXJ0aWVzW2luZGV4
XSwgc2xvdCkpCiAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBzbG90LmdldFZhbHVlKG1f
ZXhlYywgcHJvcGVydGllc1tpbmRleF0pOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgaW5WYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggMjhkMjg2MmY4ZDRhNWMwOGU4MzZkMzU4YjE2
N2NjZWYzNjZjZTI1Yi4uNDg3ZmNmMGZlMmQ3Mjg0ZTRjMTk1NzExYzE3NWM4MmM1Y2FjZGFhNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtNTYsNyAr
NTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpTT05PYmpl
Y3QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNw
cAppbmRleCBhYWNlYzZkNDM3NjcwZWEzZmEwMTAwM2Q3OGVhMDczM2U0OWUwZTRkLi41YzQ0NThj
NzdlZjM4ODNlZDgxN2Y1MTNjNTg2ZmIwNGJiNWYxNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC05MywxNCArOTMsMTQgQEAgVVN0cmluZyBKU09i
amVjdDo6Y2xhc3NOYW1lKCkgY29uc3QKICAgICByZXR1cm4gaW5mby0+Y2xhc3NOYW1lOwogfQog
Ci1ib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEpTT2JqZWN0Kj4oY2VsbCktPmdldE93blByb3BlcnR5U2xvdChleGVjLCBJZGVudGlm
aWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxKU09iamVjdCo+KGNlbGwpLT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIElk
ZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7CiB9CiAKIHN0YXRpYyB2
b2lkIHRocm93U2V0dGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjc3LDcgKzI3Nyw3IEBA
IGJvb2wgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwCiBib29sIEpTT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkgY29uc3QKIHsK
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICByZXR1cm4gY29uc3RfY2FzdDxKU09iamVjdCo+
KHRoaXMpLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAg
ICByZXR1cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggM2FkNzBjNTBhYWQ2MWFk
MzdmY2MyZmE5YjkwNGE3MGIzN2ZmMzNiMi4uYTgyNDI1NjkyZmRkYTQ3YmEwMzJjOTljZGNlMTIy
YjcwNzhiYWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBA
IC0xMDEsOSArMTAxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgZ2V0UHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIGJvb2wgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKLSAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7CiAKQEAgLTUyMSw3ICs1MjEsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wg
SlNPYmplY3Q6OmlubGluZUdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK0FMV0FZU19JTkxJTkUgYm9vbCBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
QEAgLTUzOCw3ICs1MzgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNDZWxsOjpmYXN0R2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogewogICAgIGlmICgh
c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KCkpCiAg
ICAgICAgIHJldHVybiBhc09iamVjdCh0aGlzKS0+aW5saW5lR2V0T3duUHJvcGVydHlTbG90KGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdChl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIC8vIEZhc3QgY2FsbCB0byBn
ZXQgYSBwcm9wZXJ0eSB3aGVyZSB3ZSBtYXkgbm90IHlldCBoYXZlIGNvbnZlcnRlZCB0aGUgc3Ry
aW5nIHRvIGFuCkBAIC01NzYsNyArNTc2LDcgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0
OjpnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU4KIHsK
ICAgICBKU09iamVjdCogb2JqZWN0ID0gdGhpczsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAg
ICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KSkKKyAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIEpT
VmFsdWUgcHJvdG90eXBlID0gb2JqZWN0LT5wcm90b3R5cGUoKTsKICAgICAgICAgaWYgKCFwcm90
b3R5cGUuaXNPYmplY3QoKSkKQEAgLTc5Nyw3ICs3OTcsNyBAQCBpbmxpbmUgSlNWYWx1ZSBKU1Zh
bHVlOjpnZXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdAogICAgIH0KICAgICBKU0NlbGwqIGNlbGwgPSBjb25zdF9jYXN0PEpTQ2VsbCo+KGFzQ2Vs
bCgpKTsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY2VsbC0+Z2V0T3duUHJvcGVy
dHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIGlmIChjZWxsLT5nZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAg
ICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBK
U1ZhbHVlIHByb3RvdHlwZSA9IGFzT2JqZWN0KGNlbGwpLT5wcm90b3R5cGUoKTsKICAgICAgICAg
aWYgKCFwcm90b3R5cGUuaXNPYmplY3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKaW5kZXggOGQwZmRhOTAzNzMyMmRm
MTczMDY1ZGM2MWNjOTE0ZTUzMDA3YmYwMi4uMjJlNmFmY2RkZDY4NWJhMTIzNWQ4YmRjNjFlOWRh
MWQyMGRlZGM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dGF0aWNTY29wZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdGF0aWNTY29wZU9iamVjdC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBKU1N0YXRpY1Nj
b3BlT2JqZWN0Ojppc0R5bmFtaWNTY29wZShib29sJikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWJvb2wgSlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCitib29sIEpTU3RhdGljU2NvcGVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXggZGMyODc3OTVkZDlmMTYwNGY2
YjUxZjI0NmI2Y2E5MmVmOThhMTgwNS4uYTkwZGRkNWM2OTFiZTk4MGM5MTg2MjI2Yjk2M2QwYTdh
NzhiYzhmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Rh
dGljU2NvcGVPYmplY3QuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDewogICAgICAg
ICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAg
ICAgIGJvb2wgaXNEeW5hbWljU2NvcGUoYm9vbCYgcmVxdWlyZXNEeW5hbWljQ2hlY2tzKSBjb25z
dDsKICAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNv
bnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRleCBj
NzNmNGEyZWUyYzg1NzVmYjBkMDQ4OWI4ZDYzOGUwMGFiMTNiNWIxLi4yNzg3NjM3YWEyZDFlOWU2
NTQyM2ZhOWJmMzM5OWZhNDA3MjUxMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmcuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgSlNPYmplY3QqIEpTU3RyaW5nOjp0
b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiBTdHJpbmdPYmpl
Y3Q6OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGNvbnN0X2Nhc3Q8
SlNTdHJpbmcqPih0aGlzKSk7CiB9CiAKLWJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQorYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTMzMyw3ICszMzMsNyBAQCBib29sIEpTU3RyaW5n
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZQogICAgIEpTT2JqZWN0KiBvYmplY3Q7CiAgICAgZm9yIChKU1ZhbHVlIHByb3Rv
dHlwZSA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5nUHJvdG90eXBlKCk7ICFw
cm90b3R5cGUuaXNOdWxsKCk7IHByb3RvdHlwZSA9IG9iamVjdC0+cHJvdG90eXBlKCkpIHsKICAg
ICAgICAgb2JqZWN0ID0gYXNPYmplY3QocHJvdG90eXBlKTsKLSAgICAgICAgaWYgKG9iamVjdC0+
Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIGlm
IChvYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBzbG90LnNldFVuZGVm
aW5lZCgpOwpAQCAtMzY3LDcgKzM2Nyw3IEBAIGJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDcyMGQ2MmJkNmNm
MzI3MzExNWY2MmYyZTM4MTQwMTk0ZGJjYjg4ZWYuLmQ4MjE1ZTJlZTU0NzI3YzRkMGI4ODgxODQx
ZDcyMGRhMzJmYjlhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcu
aApAQCAtNTA3LDkgKzUwNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIEpT
T2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgLy8gQWN0
dWFsbHkgZ2V0UHJvcGVydHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlTbG90IChzZWUgSlNDZWxs
KS4KLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TG9va3VwLmgKaW5kZXggNzgyZGMwZmJjNzBjODNhOTJhZTEwZjEwNDlhZmZkYzAzMjY5ODgxYy4u
YTZkNDhiZDhkYzBlOWY0MDQ1ODMwMDkwODBkMDhmZTVjMzA1MzgyNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKQEAgLTIxMyw3ICsyMTMsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBw
cm9wZXJ0eU5hbWUpOwogCiAgICAgICAgIGlmICghZW50cnkpIC8vIG5vdCBmb3VuZCwgZm9yd2Fy
ZCB0byBwYXJlbnQKLSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqLT5QYXJlbnRJbXA6OmdldE93
blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICAgICAgcmV0
dXJuIFBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmosIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiAKICAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlv
bikKICAgICAgICAgICAgIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KGV4ZWMsIGVudHJ5LCB0aGlz
T2JqLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnRJbXA+CiAgICAgaW5saW5lIGJvb2wgZ2V0
U3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSGFzaFRhYmxlKiB0YWJs
ZSwgSlNPYmplY3QqIHRoaXNPYmosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQogICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PFBhcmVudElt
cCo+KHRoaXNPYmopLT5QYXJlbnRJbXA6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAoUGFyZW50SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSB0YWJsZS0+ZW50cnkoZXhl
YywgcHJvcGVydHlOYW1lKTsKQEAgLTI5MSw3ICsyOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0
eU5hbWUpOwogCiAgICAgICAgIGlmICghZW50cnkpIC8vIG5vdCBmb3VuZCwgZm9yd2FyZCB0byBw
YXJlbnQKLSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqLT5QYXJlbnRJbXA6OmdldE93blByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIFBh
cmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmosIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiAKICAgICAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9u
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKaW5k
ZXggNzlmZWVlN2UxOWVkZTJmZjEwM2MwNjAzZmQ0YTk3ZWZhMDBlYjZhMy4uNjI0ZjRkZGJiZDNl
OTA3MDc2OGVjMWZlOTNkOTEzMDc5YzVlY2Q4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIE1hdGhPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRh
KCksIElkZW50aWZpZXIoZXhlYywgIlNRUlQyIiksIGpzTnVtYmVyKHNxcnQoMi4wKSksIERvbnRE
ZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBNYXRoT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wgTWF0aE9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRleCAyZTJkNzJkZWJmNDgwZDdjZmUyNzQwNGQ3
NjM5YjQ5Y2U1ZDQ4NDBiLi4yNDI0YTcxZTVlZTllMWI3NDU0MDk3MWY4YTdkZjgyNWJiMTc1MGYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zOCw3
ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVh
dGlvbihleGVjLCBnbG9iYWxPYmplY3QpOwogICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAg
ICAgICAgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4
IDNjNjVlOWYwOGZlM2RjNDEyYWNiMDNjYTU2YjRjNTBjNzAxNmI0ODcuLjU0YWZiZDhjNzZkYzUx
MDhiMmFiM2VkNGU0YzM0MjMwZjFmMmU1N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9p
ZCBOdW1iZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBOdW1i
ZXJQcm90b3R5cGUqIG51bWJlclAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEp
LCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wgTnVtYmVyQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBOdW1iZXJDb25z
dHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJl
dHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0
cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5oCmluZGV4IDcwNTZkZGY3NWJiOTc1ZTlhMDMwMmVkZjMxMTI3YmZlNmEzZmMxNDMuLjYxMjcx
YTk1NGY5MDA3YTc2NTJkNzhjMWJkYzdmNjU1Zjk5ZWNjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaApAQCAtMzgsNyArMzgsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICAg
ICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICBKU1Zh
bHVlIGdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4
IGY2ZjAxNmU0ZTNlNTdmMjIwZTc4ZjI1ZWNhZTgxMmY0N2QyZGEwYzkuLjRmYjI5YjU1ZDZkNmUw
ZjY1ZDBlMGEyYWM0OTlmZTUwNDU2MDU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lkIE51
bWJlclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotYm9vbCBOdW1iZXJQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBOdW1iZXJQcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCmlu
ZGV4IDFhNTY4NmFlNTkwYTVjMDQzMGEyMzVhOTUwNWIyOWUyZDNiY2NhYTkuLmJlYmI1ZTczYTIx
NDc3NjgwNTlmNGJiOGUzNzQwM2U5YzE5YjViZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgTnVtYmVyUHJvdG90eXBlKEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAg
ICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3Ry
dWN0b3IuY3BwCmluZGV4IDkwZWRmYTUzN2M5MmNlNTE2MDc5OTZiYzVjODJhYTU3NWEwMTY0MDEu
LjBiM2IxOTcwMGFiYTEwZDdlMmQ3MTBiMzdhZjExMzIzZjZhNzZiZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTg5
LDcgKzg5LDcgQEAgdm9pZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0
YXRlKiBleGVjLCBPYmplY3RQcm90b3R5cGUqIG9iamVjdFAKICAgICBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5n
dGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAK
LWJvb2wgT2JqZWN0Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQor
Ym9vbCBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZz
bG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5oCmluZGV4IDIyMjE1OWY1M2E0ZjhmMWI4ZDY1ODJjYzcwY2IwZmIw
ZjdmZWM4MzcuLmFhNjhjY2RhYWE4MzNiZmI3NmY1MjAwMTNiYTY1MTk1NmUxZjYwNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjb25z
dHJ1Y3RvcjsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBl
LmNwcAppbmRleCA5OWE1YmIyMjhiZjI3ZWMxYWQ0MWE5ZGI0NDRlMjNlNzVmODRmNTdhLi5lYTdj
ODliMTUzODJmNDI5ZmRiMzRjNGYzNWM0YTMyNzcyOTRiZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTkyLDcgKzkyLDcg
QEAgdm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGUKICAgICB9CiB9CiAKLWJvb2wgT2JqZWN0UHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJv
b2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkCiAgICAgcmV0dXJuIEpTTm9uRmluYWxPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQog
Ci1ib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiti
b29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmgKaW5kZXggZTM5MDAyMmY2N2M3NTQyMDViZTMyMWVmN2NiMDlkNDVmZDU1ZTE0
OC4uNzZhMzNjNDc5Yjk2NjViYjEzNzA0OWIzZTJjOGIzMWU5NGVkZDY4OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKQEAgLTUzLDkgKzUz
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDBkNDkxNDY0NGM5ODYzYmMyNDRjMWQ0YjMx
ZGNiYmFkYTFlYzcwMC4uNWIwNzBmMDc0MGNjYjEyN2ZiMmViZDFmYjc0MjZiZGUxODFjYjYzYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcApAQCAtMjAyLDcgKzIwMiw3IEBAIEpTVmFsdWUgUmVnRXhwQ29uc3RydWN0b3I6Omdl
dFJpZ2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGpzRW1wdHlT
dHJpbmcoZXhlYyk7CiB9CiAgICAgCi1ib29sIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgUmVnRXhwQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCA1ZTEzMTc2NGQ0
OTI1YjcwY2IzODY2NzljNzdlNmE0MDJhMzYxYzRjLi5hYWY0MjZhOWFkMjIxZmViMGIyZDdkZTRl
ZmMzNmMwMTUwZThhYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZv
aWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJh
eS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgK
aW5kZXggZTc1ZDYyMTkxNWQyNGE1ZTg2YjdhNzU2NGE5MjVhMjZmMDY5MDExZC4uMTJiZDAyNmVm
M2Q5MTQ4YzQxMDlhNWFmMDc1YWNkMjZmMTFhNzM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTQzLDcgKzQzLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRh
JiwgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKTsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKKyAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAg
ICAgewogICAgICAgICAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgICAgICB9CkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgICAgICB9CiAKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuY3BwCmluZGV4IDY2MGIyZTMwYTU0YjkxYzk5MGNhZGFiNGFhMmY2NDM4MzVjMTk1OGMuLjgw
OGVkN2Y5NzA1OGJjMDgyZmNkNWQzODVjMzhjNDdlNjJjZjAyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtOTEsNyArOTEsNyBAQCB2
b2lkIFJlZ0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+ZC0+bGFzdElu
ZGV4KTsKIH0KIAotYm9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQorYm9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oCmluZGV4IGMwZjgzZDU0MmNiZGViZDlhZWRiYmQ4NzVjMDFiYmZlOGIyMDMyMzku
LmEzZjc3YzViOTM4YjI4ZDM5MmRiMjJlOTQ2MGNjYjY3YjQ1ZDAxZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02NSw3ICs2NSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIHRlc3QoRXhlY1N0YXRlKik7CiAgICAgICAg
IEpTVmFsdWUgZXhlYyhFeGVjU3RhdGUqKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggM2UzYTE2OWZhOWIwNjJjZGMy
ZTQyOTdmNTY5NjA5YWQyMWYzYWM0MS4uODMwNGU2MmUxOGMwZGU3ZTY5NDdjMTFlZDg4OTY5ZTRi
ZjBjMDhjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFJlZ0V4cFByb3RvdHlwZTo6UmVnRXhwUHJv
dG90eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0CiB7
CiB9CiAKLWJvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xv
dCkKK2Jvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qg
JnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBQcm90b3R5cGUuaAppbmRleCBjYzg0MDNhNzViNGJmM2I5MmRlNWE4NGFiMjNjYTgyYTE2
MjQyMTNmLi44YzkyYjIyZTQ0MTg3YmMwZWQyNGE1NzliNjEzZDc2ZTVhNzk4NGIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtNDks
NyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgUmVnRXhwT2Jq
ZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZjM5ZGQ3YTVhYTAwNzhhYzZmZDIz
ZDgyZTdlYjBiYWRiYTdkNzk4Yi4uMjhlODQ1MTIyYmRjMjRhMzkxMWExYTZlMmVhMmU0YzMwZmRk
Njc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFN0cmluZ0NvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZ1Byb3RvdHlwZSogc3RyaW5nUAog
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+
cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0g
fCBEb250RGVsZXRlKTsKIH0KIAotYm9vbCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggYTcxOTE0ODQ4Mzky
OWE2OGVlYzM4OTJiM2JjY2Y4NWM3MmVlZjMxYi4uMzk1Zjk5MzQwZjM2YWYxMDg2YWVjZGY2NmI0
YjI1Zjk5ZmU2NmQxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdDb25zdHJ1Y3Rvci5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0
cnVjdERhdGEmKTsKICAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCmlu
ZGV4IDZkNTQ4Y2Q2ZjFhZjRlMmM2ZGRlOWFmNmY0ZmNmZTg2NzcyMmU3YTEuLjBlOWNkN2RjMzVm
ZTEwNzYwOGQ2NDQ4MWY1MmI5ZDJkZmYwN2E3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApAQCAtNDEsNyArNDEsNyBAQCB2b2lkIFN0cmlu
Z09iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1N0cmlu
Zyogc3RyaW5nKQogICAgIHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwgc3RyaW5nKTsKIH0K
IAotYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9v
bCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiB9CkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50CiAgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KICAgICAKLWJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuaAppbmRleCA4NzJhMmMxMzNiNjZhNmQyMTdhYzljOWJlNTY0OWY4MmU1Y2MxMThiLi5l
NmIzN2JjMDg5ZTNmMmMxMzBkNTgzNDQwYTJjZGQ5YTkyN2JhNjUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNDYsOSArNDYsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgfQogICAgICAgICBzdGF0aWMgU3RyaW5nT2JqZWN0KiBjcmVh
dGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopOwogCi0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
KyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmNwcAppbmRleCA4OGZiMmU5MjFhZTdkZmEzYzAzYWM4MDZlMzMyOTdlMzRi
ZDJlZjFlLi5lOGY0ZmQzYjRmM2QyYTEyM2E0NzU2YWU1Y2FjZDc4MzQ2ZTY3OWU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAg
LTE0NSw3ICsxNDUsNyBAQCB2b2lkIFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKgogICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmxlbmd0aCwganNOdW1iZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsK
IH0KIAotYm9vbCBTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90
KQorYm9vbCBTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAm
c2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5oCmluZGV4IGM4OWE4OWJhOTUyZDk2Zjg1ZmI5MWE3MGE0OTJmOGQ3ZjEw
OGRhMjEuLjQ3MTBhNWMwODM4ZTc0NTA0MzBmMTM3NDliNWIzZWExOGJkMTA0MmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCkBAIC00Miw3
ICs0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsK
ICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
KyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpp
bmRleCAwZTczNTBmM2IwYzJjZjVkNmJiN2UyN2EyZjEwMWY5NzAwNmUyNDU1Li4xZmI4MGY2NzRj
ZjU3ZTYwYWZlM2UyZTViOTJlM2ViMGM0NWIwMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMC0xMSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJl
cmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk4MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWVkIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2YgZ2V0T3duUHJvcGVy
dHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaW4gcHJlcGFyYXRp
b24gZm9yIHdoZW4gd2UgYWRkIHRoZSBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IHRvIHRoZSBN
ZXRob2RUYWJsZSAKKyAgICAgICAgaW4gQ2xhc3NJbmZvLgorCisgICAgICAgIEFsc28gYWRkZWQg
YSBmZXcgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCBmdW5jdGlvbnMgd2hlcmUgdGhleSBoYWQg
YmVlbiBvdmVybG9va2VkIAorICAgICAgICBiZWZvcmUgKGVzcGVjaWFsbHkgaW4gQ29kZUdlbmVy
YXRvckpTLnBtKS4KKworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAoVXNl
ck9iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogVXNlck9i
amVjdEltcC5oOgorCiAyMDExLTEwLTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGdldENhbGxEYXRhVmlydHVhbCBtZXRob2RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggNmY5OWE0Yzg0NjZiNGE1
NTU2ZDlhNzA1NDYwNmRkZTdiYTNjZTk1YS4uMTkxYzI1MzlkYWQ2ZGRjY2U3NzE4M2QwOTZlOGZl
OTQ3NTZkYTdiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJ
bXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAt
MTIzLDcgKzEyMyw3IEBAIEpTVmFsdWUgVXNlck9iamVjdEltcDo6dXNlck9iamVjdEdldHRlcihF
eGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVuCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
ICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKK2Jvb2wgVXNlck9iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2Vy
T2JqZWN0SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4
IGFjZTE5MzM3NjY3NzUzMGVlMmY2MTM5YzEwZDZhZjdlM2I1MjVkYzQuLjNkNThlZjM1YjkwYmUx
MGM0NGM2OGEyOTNiMjM1ODk4YmM2MGI0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE93
blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlv
bk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCiAgICAgdmlydHVhbCBK
U1ZhbHVlIGNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYyk7Ci0gICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUg
KmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNzU1ODBmMTRjNzhjNjM2OWE5ZDQzMzcwN2YxYzVlZmM0OGE1ODBk
MC4uMDMzNjFkZmM4YTg3YTM1NmJhOTgwY2YzMGUzYTBmNGY2Y2Y0N2Q0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDg2IEBACisyMDExLTEwLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIGdldE93blByb3BlcnR5U2xvdCB0byBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02OTgxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICBSZW5hbWVkIHRoZSB2aXJ0dWFs
IHZlcnNpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwKKyAgICAgICAgaW4gcHJlcGFyYXRpb24gZm9yIHdoZW4gd2UgYWRkIHRoZSBzdGF0aWMgZ2V0
T3duUHJvcGVydHlTbG90IHRvIHRoZSBNZXRob2RUYWJsZSAKKyAgICAgICAgaW4gQ2xhc3NJbmZv
LgorCisgICAgICAgIEFsc28gYWRkZWQgYSBmZXcgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCBm
dW5jdGlvbnMgd2hlcmUgdGhleSBoYWQgYmVlbiBvdmVybG9va2VkIAorICAgICAgICBiZWZvcmUg
KGVzcGVjaWFsbHkgaW4gQ29kZUdlbmVyYXRvckpTLnBtKS4KKworICAgICAgICAqIFdlYkNvcmUu
ZXhwLmluOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlhbG9nSGFuZGxlcjo6cmV0dXJuVmFsdWUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXb3JrZXJDb250ZXh0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6
Z2V0U3BhcnNlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpnZXRQ
cm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkpOgorICAgICAgICAoR2Vu
ZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24pOgorICAgICAgICAoR2VuZXJhdGVDb25z
dHJ1Y3RvckRlZmluaXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2U6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpQcm90b3R5cGU6OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6CisgICAgICAgICog
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1w
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfaW5z
dGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRJbnN0YW5jZTo6Z2V0T3duUHJv
cGVydHlTbG90KToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAg
IChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRo
b2Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9y
dW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAo
SlNDOjpSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAq
IGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX29iamVjdC5oOgorCiAyMDExLTEwLTExICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gR3RrQXV0aGVudGljYXRpb25EaWFsb2c6IHVz
ZSBHdGtHcmlkIGluc3RlYWQgb2YgR3RrVGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZGI2
ZTMwOTAyNmY3ODg2NTQzNWRmZGNiMGZiYzcwMzU3MmFmZTNkMy4uNjA1MzA1M2ZmMGU2MDEyYmNk
NDgzNzk0OGZiYzZmMjg3Nzc4YTM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE2ODIsOCAr
MTY4Miw5IEBAIF9fWk43V2ViQ29yZTVGcmFtZTI2c2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnRF
aQogI2lmIFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2Qx
MWdldENhbGxEYXRhRVBOU182SlNDZWxsRVJOU184Q2FsbERhdGFFCiBfX1pOM0pTQzEzUnVudGlt
ZU1ldGhvZDE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfMTBJZGVudGlm
aWVyRQotX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzEz
UnVudGltZU1ldGhvZDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTNSdW50
aW1lTWV0aG9kMjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQorX19aTjNKU0MxM1J1bnRpbWVN
ZXRob2QyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2Q2c19p
bmZvRQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2RDMkVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNf
OVN0cnVjdHVyZUVSTjNXVEY2VmVjdG9ySVBOU184QmluZGluZ3M2TWV0aG9kRUxtMEVFRQogX19a
TjNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3REMUV2CkBAIC0xNjkxLDkgKzE2OTIsMTAgQEAgX19a
TjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMWdldENhbGxEYXRhRVBOU182SlNDZWxsRVJO
U184Q2FsbERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0ZGVsZXRlUHJv
cGVydHlFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzhCaW5kaW5n
czEzUnVudGltZU9iamVjdDE0ZmluaXNoQ3JlYXRpb25FUE5TXzE0SlNHbG9iYWxPYmplY3RFCiBf
X1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE2Z2V0Q29uc3RydWN0RGF0YUVSTlNfMTND
b25zdHJ1Y3REYXRhRQotX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOGdldE93blBy
b3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0
eVNsb3RFCitfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE4Z2V0T3duUHJvcGVydHlT
bG90RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlBy
b3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTlnZXRPd25Qcm9w
ZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51
bWVyYXRpb25Nb2RlRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QyNGdldE93blBy
b3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQ
cm9wZXJ0eURlc2NyaXB0b3JFCitfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDI1Z2V0
T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVS
TlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDNwdXRF
UE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJv
cGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3Q2c19pbmZvRQogX19a
TjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3RDMkVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0ds
b2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfOEluc3RhbmNl
RUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5j
cHAKaW5kZXggMDRiNWI5NzY1MjdhNGZkMTk1YjQ1YWIyODQ5NTY0ZWFjODVkMmU2OC4uM2RmMGVk
NjJhZWVmOWQ4MzJkZjc2NWNiMzBkN2Q3MzZiM2FmYTdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTIxLDggKzEyMSwxNCBA
QCBzdGF0aWMgSlNWYWx1ZSBuYW1lZEl0ZW1HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaQogICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmos
IGNvbGxlY3Rpb24uZ2V0KCkpOwogfQogCi1ib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNET01XaW5kb3c6OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNET01XaW5k
b3cqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvdyo+KGNlbGwpOwogICAgIC8v
IFdoZW4gYWNjZXNzaW5nIGEgV2luZG93IGNyb3NzLWRvbWFpbiwgZnVuY3Rpb25zIGFyZSBhbHdh
eXMgdGhlIG5hdGl2ZSBidWlsdC1pbiBvbmVzLCBhbmQgdGhleQogICAgIC8vIGFyZSBub3QgYWZm
ZWN0ZWQgYnkgcHJvcGVydGllcyBjaGFuZ2VkIG9uIHRoZSBXaW5kb3cgb3IgYW55dGhpbmcgaW4g
aXRzIHByb3RvdHlwZSBjaGFpbi4KICAgICAvLyBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUg
YmVoYXZpb3Igb2YgRmlyZWZveC4KQEAgLTEzMiwxNyArMTM4LDE3IEBAIGJvb2wgSlNET01XaW5k
b3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5CiAgICAgLy8gV2UgZG9uJ3Qgd2FudCBhbnkgcHJvcGVydGllcyBvdGhlciB0aGFu
ICJjbG9zZSIgYW5kICJjbG9zZWQiIG9uIGEgZnJhbWVsZXNzIHdpbmRvdyAoaS5lLiBvbmUgd2hv
c2UgcGFnZSBnb3QgY2xvc2VkLAogICAgIC8vIG9yIHdob3NlIGlmcmFtZSBnb3QgcmVtb3ZlZCku
CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBmdWxseSBtYXRjaCBGaXJlZm94LCB3aGljaCBh
bGxvd3MgYXQgbGVhc3QgdG9TdHJpbmcgaW4gYWRkaXRpb24gdG8gdGhvc2UuCi0gICAgaWYgKCFp
bXBsKCktPmZyYW1lKCkpIHsKKyAgICBpZiAoIXRoaXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKSkg
ewogICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgaXMgc2FmZSBmb3IgY3Jvc3MtZG9tYWlu
IGFuZCBzYW1lIGRvbWFpbiB1c2UuCiAgICAgICAgIC8vIEl0IGlnbm9yZXMgYW55IGN1c3RvbSBw
cm9wZXJ0aWVzIHRoYXQgbWlnaHQgYmUgc2V0IG9uIHRoZSBET01XaW5kb3cgKGluY2x1ZGluZyBh
IGN1c3RvbSBwcm90b3R5cGUpLgogICAgICAgICBlbnRyeSA9IHNfaW5mby5wcm9wSGFzaFRhYmxl
KGV4ZWMpLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAoZW50cnkgJiYg
IShlbnRyeS0+YXR0cmlidXRlcygpICYgRnVuY3Rpb24pICYmIGVudHJ5LT5wcm9wZXJ0eUdldHRl
cigpID09IGpzRE9NV2luZG93Q2xvc2VkKSB7Ci0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7CisgICAgICAgICAgICBzbG90LnNldEN1c3Rv
bSh0aGlzT2JqZWN0LCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBlbnRyeSA9IEpTRE9NV2luZG93UHJvdG90eXBl
OjpzX2luZm8ucHJvcEhhc2hUYWJsZShleGVjKS0+ZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTsK
ICAgICAgICAgaWYgKGVudHJ5ICYmIChlbnRyeS0+YXR0cmlidXRlcygpICYgRnVuY3Rpb24pICYm
IGVudHJ5LT5mdW5jdGlvbigpID09IGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25DbG9zZSkg
ewotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0
aW9uR2V0dGVyPGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25DbG9zZSwgMD4pOworICAgICAg
ICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9u
R2V0dGVyPGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25DbG9zZSwgMD4pOwogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIApAQCAtMTU2LDExICsxNjIsMTEgQEAgYm9vbCBK
U0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHkKICAgICAvLyBiZWNhdXNlIHdlIGFsd2F5cyBhbGxvdyBhY2Nlc3Mg
dG8gc29tZSBmdW5jdGlvbiwganVzdCBkaWZmZXJlbnQgb25lcyBkZXBlbmRpbmcgd2hldGhlciBh
Y2Nlc3MKICAgICAvLyBpcyBhbGxvd2VkLgogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAg
Ym9vbCBhbGxvd3NBY2Nlc3MgPSBhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMsIGVycm9yTWVzc2FnZSk7
CisgICAgYm9vbCBhbGxvd3NBY2Nlc3MgPSB0aGlzT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGV4
ZWMsIGVycm9yTWVzc2FnZSk7CiAKICAgICAvLyBMb29rIGZvciBvdmVycmlkZXMgYmVmb3JlIGxv
b2tpbmcgYXQgYW55IG9mIG91ciBvd24gcHJvcGVydGllcywgYnV0IGlnbm9yZSBvdmVycmlkZXMg
Y29tcGxldGVseQogICAgIC8vIGlmIHRoaXMgaXMgY3Jvc3MtZG9tYWluIGFjY2Vzcy4KLSAgICBp
ZiAoYWxsb3dzQWNjZXNzICYmIEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICBpZiAoYWxsb3dzQWNjZXNzICYmIEpTR2xvYmFs
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBXZSBuZWVkIHRoaXMgY29k
ZSBoZXJlIGJlY2F1c2Ugb3RoZXJ3aXNlIEpTRE9NV2luZG93QmFzZSB3aWxsIHN0b3AgdGhlIHNl
YXJjaCBiZWZvcmUgd2UgZXZlbiBnZXQgdG8gdGhlCkBAIC0xNzIsMjYgKzE3OCwyNiBAQCBib29s
IEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1
bmN0aW9uKSB7CiAgICAgICAgICAgICBpZiAoZW50cnktPmZ1bmN0aW9uKCkgPT0ganNET01XaW5k
b3dQcm90b3R5cGVGdW5jdGlvbkJsdXIpIHsKICAgICAgICAgICAgICAgICBpZiAoIWFsbG93c0Fj
Y2VzcykgewotICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBub25DYWNo
aW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkJsdXIs
IDA+KTsKKyAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbm9u
Q2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25C
bHVyLCAwPik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnktPmZ1bmN0aW9uKCkgPT0ganNET01X
aW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFhbGxv
d3NBY2Nlc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbm9u
Q2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25D
bG9zZSwgMD4pOworICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0
LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5cGVGdW5j
dGlvbkNsb3NlLCAwPik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnktPmZ1bmN0aW9uKCkgPT0g
anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkZvY3VzKSB7CiAgICAgICAgICAgICAgICAgaWYg
KCFhbGxvd3NBY2Nlc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhp
cywgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93UHJvdG90eXBlRnVu
Y3Rpb25Gb2N1cywgMD4pOworICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlz
T2JqZWN0LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dQcm90b3R5
cGVGdW5jdGlvbkZvY3VzLCAwPik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnktPmZ1bmN0aW9u
KCkgPT0ganNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKCFhbGxvd3NBY2Nlc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgc2xvdC5z
ZXRDdXN0b20odGhpcywgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93
UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSwgMj4pOworICAgICAgICAgICAgICAgICAgICBz
bG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8
anNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlLCAyPik7CiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoZW50cnktPmZ1bmN0aW9uKCkgPT0ganNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlv
blNob3dNb2RhbERpYWxvZykgewotICAgICAgICAgICAgICAgIGlmICghRE9NV2luZG93OjpjYW5T
aG93TW9kYWxEaWFsb2coaW1wbCgpLT5mcmFtZSgpKSkgeworICAgICAgICAgICAgICAgIGlmICgh
RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2codGhpc09iamVjdC0+aW1wbCgpLT5mcmFtZSgp
KSkgewogICAgICAgICAgICAgICAgICAgICBzbG90LnNldFVuZGVmaW5lZCgpOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CkBAIC0yMDEsNyArMjA3
LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAgICAgICAgLy8gQWxsb3cgYWNjZXNzIHRv
IHRvU3RyaW5nKCkgY3Jvc3MtZG9tYWluLCBidXQgYWx3YXlzIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuCiAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygp
LnRvU3RyaW5nKSB7CiAgICAgICAgICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICAg
ICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIp
OworICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG9iamVjdFRvU3Ry
aW5nRnVuY3Rpb25HZXR0ZXIpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC0yMDksNyArMjE1LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHkKIAogICAgIGVudHJ5ID0gSlNET01XaW5kb3c6OnNfaW5mby5wcm9wSGFzaFRhYmxlKGV4
ZWMpLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIGlmIChlbnRyeSkgewotICAgICAg
ICBzbG90LnNldEN1c3RvbSh0aGlzLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7CisgICAgICAg
IHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yMTgsMTggKzIyNCwxOCBAQCBib29sIEpT
RE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eQogICAgIC8vIG5hbWluZyBmcmFtZXMgdGhpbmdzIHRoYXQgY29uZmxp
Y3Qgd2l0aCB3aW5kb3cgcHJvcGVydGllcyB0aGF0CiAgICAgLy8gYXJlIGluIE1veiBidXQgbm90
IElFLiBTaW5jZSB3ZSBoYXZlIHNvbWUgb2YgdGhlc2UsIHdlIGhhdmUgdG8gZG8KICAgICAvLyBp
dCB0aGUgTW96IHdheS4KLSAgICBpZiAoaW1wbCgpLT5mcmFtZSgpLT50cmVlKCktPmNoaWxkKGlk
ZW50aWZpZXJUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKSkgewotICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzLCBjaGlsZEZyYW1lR2V0dGVyKTsKKyAgICBpZiAodGhpc09iamVjdC0+aW1w
bCgpLT5mcmFtZSgpLT50cmVlKCktPmNoaWxkKGlkZW50aWZpZXJUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKSkgeworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBjaGlsZEZy
YW1lR2V0dGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgLy8gRG8gcHJv
dG90eXBlIGxvb2t1cCBlYXJseSBzbyB0aGF0IGZ1bmN0aW9ucyBhbmQgYXR0cmlidXRlcyBpbiB0
aGUgcHJvdG90eXBlIGNhbiBoYXZlCiAgICAgLy8gcHJlY2VkZW5jZSBvdmVyIHRoZSBpbmRleCBh
bmQgbmFtZSBnZXR0ZXJzLiAgCi0gICAgSlNWYWx1ZSBwcm90byA9IHByb3RvdHlwZSgpOworICAg
IEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5wcm90b3R5cGUoKTsKICAgICBpZiAocHJvdG8u
aXNPYmplY3QoKSkgewogICAgICAgICBpZiAoYXNPYmplY3QocHJvdG8pLT5nZXRQcm9wZXJ0eVNs
b3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgaWYgKCFhbGxvd3NB
Y2Nlc3MpIHsKLSAgICAgICAgICAgICAgICBwcmludEVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2Up
OworICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVz
c2FnZSk7CiAgICAgICAgICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMjQyLDI4ICsyNDgsMjggQEAgYm9vbCBK
U0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHkKICAgICAvLyBhbGxvdyB3aW5kb3dbMV0gb3IgcGFyZW50WzFdIGV0
Yy4gKCM1Njk4MykKICAgICBib29sIG9rOwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUu
dG9BcnJheUluZGV4KG9rKTsKLSAgICBpZiAob2sgJiYgaSA8IGltcGwoKS0+ZnJhbWUoKS0+dHJl
ZSgpLT5jaGlsZENvdW50KCkpIHsKLSAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzLCBp
LCBpbmRleEdldHRlcik7CisgICAgaWYgKG9rICYmIGkgPCB0aGlzT2JqZWN0LT5pbXBsKCktPmZy
YW1lKCktPnRyZWUoKS0+Y2hpbGRDb3VudCgpKSB7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5k
ZXgodGhpc09iamVjdCwgaSwgaW5kZXhHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKICAgICBpZiAoIWFsbG93c0FjY2VzcykgewotICAgICAgICBwcmludEVycm9yTWVzc2Fn
ZShlcnJvck1lc3NhZ2UpOworICAgICAgICB0aGlzT2JqZWN0LT5wcmludEVycm9yTWVzc2FnZShl
cnJvck1lc3NhZ2UpOwogICAgICAgICBzbG90LnNldFVuZGVmaW5lZCgpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBBbGxvdyBzaG9ydGN1dHMgbGlrZSAnSW1hZ2UxJyBp
bnN0ZWFkIG9mIGRvY3VtZW50LmltYWdlcy5JbWFnZTEKLSAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBpbXBsKCktPmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
dGhpc09iamVjdC0+aW1wbCgpLT5mcmFtZSgpLT5kb2N1bWVudCgpOwogICAgIGlmIChkb2N1bWVu
dC0+aXNIVE1MRG9jdW1lbnQoKSkgewogICAgICAgICBBdG9taWNTdHJpbmdJbXBsKiBhdG9taWNQ
cm9wZXJ0eU5hbWUgPSBmaW5kQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlm
IChhdG9taWNQcm9wZXJ0eU5hbWUgJiYgKHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KGRvY3Vt
ZW50KS0+aGFzTmFtZWRJdGVtKGF0b21pY1Byb3BlcnR5TmFtZSkgfHwgZG9jdW1lbnQtPmhhc0Vs
ZW1lbnRXaXRoSWQoYXRvbWljUHJvcGVydHlOYW1lKSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0
Q3VzdG9tKHRoaXMsIG5hbWVkSXRlbUdldHRlcik7CisgICAgICAgICAgICBzbG90LnNldEN1c3Rv
bSh0aGlzT2JqZWN0LCBuYW1lZEl0ZW1HZXR0ZXIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29s
IEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikKQEAgLTY4Myw3ICs2ODksNyBAQCBpbmxpbmUgSlNWYWx1ZSBEaWFsb2dIYW5kbGVyOjpy
ZXR1cm5WYWx1ZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIElk
ZW50aWZpZXIgaWRlbnRpZmllcihtX2V4ZWMsICJyZXR1cm5WYWx1ZSIpOwogICAgIFByb3BlcnR5
U2xvdCBzbG90OwotICAgIGlmICghZ2xvYmFsT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QobV9l
eGVjLCBpZGVudGlmaWVyLCBzbG90KSkKKyAgICBpZiAoIWdsb2JhbE9iamVjdC0+Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChtX2V4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShtX2V4ZWMsIGlkZW50
aWZpZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1No
ZWxsLmNwcAppbmRleCA2ZDI2Zjk4NWM3MWI2YzRiODNiMGEzMDI5ODliMDdmMGJhMzI3YjFlLi5m
YTYxYjQ5NmIyODQ3ZmViNTZjNjZjMzkwNzVjMjg2NGFkMDkzNDhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtMTAwLDE0ICsxMDAs
MTQgQEAgVVN0cmluZyBKU0RPTVdpbmRvd1NoZWxsOjpjbGFzc05hbWUoKSBjb25zdAogICAgIHJl
dHVybiBtX3dpbmRvdy0+Y2xhc3NOYW1lKCk7CiB9CiAKLWJvb2wgSlNET01XaW5kb3dTaGVsbDo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTRE9NV2luZG93U2hlbGw6Omdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3du
UHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wg
SlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwp
LT5tX3dpbmRvdy0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihjZWxsKS0+bV93aW5k
b3ctPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KIAogYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVz
Y3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaAppbmRleCBiNWRkM2E2YTE2YzJjZDhhNjNmOThhM2Y5Mjc5ODM1MmJkZjBk
Njc3Li42YWM5MWJjYWYyN2MzYTIwMjQ4MGI5ZjkxZjdjNGJmOGM2YzUxZWU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCkBAIC04MCw3ICs4MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxk
cmVuKEpTQzo6SlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIEpT
Qzo6VVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNjdmMmU5OWJhNjQwZTNjNjY1M2E3ZmRiZDY4
Njc3OTVlY2YzYTdiNy4uZmVjNDE5ZmI3NDA0NmZjMmMwN2NmODUwMGExNWMwZDU1YmM3Yjc1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgSlNXb3JrZXJDb250ZXh0Ojp2aXNpdENo
aWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiBib29sIEpTV29ya2Vy
Q29udGV4dDo6Z2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICAv
LyBMb29rIGZvciBvdmVycmlkZXMgYmVmb3JlIGxvb2tpbmcgYXQgYW55IG9mIG91ciBvd24gcHJv
cGVydGllcy4KLSAgICBpZiAoSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIGlmIChKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDhkYmUzZWEwOWM3Yzdm
YmY1ZDQ5ZDdlNTBmY2ZhMWQ0MzRkMTQwYjkuLmIxMGYxZDdjYzFiZTE1MjUyNTYwZWM0MzVjYmI0
NGMyYzI1NGM3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMzMzLDExICszMzMsMTEgQEAgcHJpdmF0ZToKICAg
ICB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KGFycmF5KTsKICAgICAgICAgaWYgKGlzSlNB
cnJheSgmbV9leGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KSkgewotICAgICAgICAgICAgaWYgKGFy
cmF5LT5KU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QobV9leGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKSB7CisgICAgICAgICAgICBpZiAoSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KGFycmF5
LCBtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgICAgICBoYXNJbmRl
eCA9IHRydWU7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUobV9leGVjLCBw
cm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKGFycmF5LT5n
ZXRPd25Qcm9wZXJ0eVNsb3QobV9leGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CisgICAgICAg
IH0gZWxzZSBpZiAoYXJyYXktPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBoYXNJbmRleCA9IHRydWU7CiAgICAgICAg
ICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShtX2V4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAg
IH0KQEAgLTM0OCw3ICszNDgsNyBAQCBwcml2YXRlOgogICAgIEpTVmFsdWUgZ2V0UHJvcGVydHko
SlNPYmplY3QqIG9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgIHsK
ICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Qob2JqZWN0KTsKLSAgICAgICAgaWYgKG9iamVjdC0+
Z2V0T3duUHJvcGVydHlTbG90KG1fZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAg
aWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChtX2V4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpCiAgICAgICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShtX2V4ZWMsIHByb3Bl
cnR5TmFtZSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAyZDgx
MzQ3MGM3Y2ExNzM5MmRlZmIyMTFkNjI1MjE4MmQ5NmYwYTFhLi5mNmFkNzE0ZjRiMmExYmZlMTFk
ZDE2ZTMxN2U5MmNmZDI0ODRkNzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNDMwLDcgKzQzMCw3IEBAIHN1YiBHZW5l
cmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAgICBteSBAZ2V0T3duUHJvcGVydHlTbG90SW1w
bCA9ICgpOwogCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOYW1lZE5vZGVNYXAiIG9yICRp
bnRlcmZhY2VOYW1lIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IgJGludGVyZmFjZU5hbWUgZXEgIkhU
TUxBbGxDb2xsZWN0aW9uIikgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBs
LCAiICAgICR7bmFtZXNwYWNlTWF5YmV9SlNWYWx1ZSBwcm90byA9IHByb3RvdHlwZSgpO1xuIik7
CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgJHtuYW1lc3BhY2VN
YXliZX1KU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+cHJvdG90eXBlKCk7XG4iKTsKICAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAocHJvdG8uaXNPYmplY3Qo
KSAmJiBzdGF0aWNfY2FzdDwke25hbWVzcGFjZU1heWJlfUpTT2JqZWN0Kj4oYXNPYmplY3QocHJv
dG8pKS0+aGFzUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKSlcbiIpOwogICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiIpOwog
ICAgIH0KQEAgLTQ0MCw3ICs0NDAsNyBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RC
b2R5CiAgICAgICAgIGlmICgkcmVxdWlyZXNNYW51YWxMb29rdXApIHsKICAgICAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgY29uc3QgJHtuYW1lc3BhY2VNYXliZX1I
YXNoRW50cnkqIGVudHJ5ID0gJHtjbGFzc05hbWV9VGFibGUuZW50cnkoZXhlYywgcHJvcGVydHlO
YW1lKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAg
ICBpZiAoZW50cnkpIHtcbiIpOwotICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90
SW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgZW50cnktPnByb3BlcnR5R2V0dGVy
KCkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAg
ICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7
XG4iKTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAg
IHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJ
bXBsLCAiICAgIH1cbiIpOwogICAgICAgICB9CkBAIC00NTksMjAgKzQ1OSwyMCBAQCBzdWIgR2Vu
ZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAgICAgICAgIGlmIChJbmRleEdldHRlclJldHVy
bnNTdHJpbmdzKCRpbXBsQ2xhc3NOYW1lKSkgewogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJv
cGVydHlTbG90SW1wbCwgIiAgICBpZiAob2spIHtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAob2sgJiYgaW5k
ZXggPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGltcGwoKSktPmxlbmd0aCgpKSB7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKG9r
ICYmIGluZGV4IDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBs
KCkpLT5sZW5ndGgoKSkge1xuIik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKLSAgICAg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0VmFs
dWUoZ2V0QnlJbmRleChleGVjLCBpbmRleCkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QtPmdl
dEJ5SW5kZXgoZXhlYywgaW5kZXgpKTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b21J
bmRleCh0aGlzLCBpbmRleCwgaW5kZXhHZXR0ZXIpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBn
ZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXNP
YmplY3QsIGluZGV4LCBpbmRleEdldHRlcik7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAg
ICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIH1cbiIpOwogICAgIH0KIAog
ICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOYW1lR2V0dGVyIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0
ZXIifSkgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChj
YW5HZXRJdGVtc0Zvck5hbWUoZXhlYywgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihpbXBs
KCkpLCBwcm9wZXJ0eU5hbWUpKSB7XG4iKTsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlT
bG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbmFtZUdldHRlcik7XG4iKTsK
KyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAoY2FuR2V0SXRl
bXNGb3JOYW1lKGV4ZWMsIHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4odGhpc09iamVjdC0+
aW1wbCgpKSwgcHJvcGVydHlOYW1lKSkge1xuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3Bl
cnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHRoaXNPYmpl
Y3QtPm5hbWVHZXR0ZXIpO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdElt
cGwsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3Bl
cnR5U2xvdEltcGwsICIgICAgfVxuIik7CiAgICAgICAgIGlmICgkaW5saW5lZCkgewpAQCAtNDg3
LDE5ICs0ODcsMTkgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQogICAgIH0K
IAogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nR2V0
T3duUHJvcGVydHlTbG90In0pIHsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1w
bCwgIiAgICBpZiAoZ2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KSlcbiIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAg
IGlmICh0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKVxuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGws
ICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgfQogCiAgICAgaWYgKCRoYXNBdHRyaWJ1
dGVzKSB7CiAgICAgICAgIGlmICgkaW5saW5lZCkgewogICAgICAgICAgICAgZGllICJDYW5ub3Qg
aW5saW5lIGlmIE5vU3RhdGljVGFibGVzIGlzIHNldC4iIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9KTsKLSAgICAgICAgICAgIHB1c2goQGdldE93
blByb3BlcnR5U2xvdEltcGwsICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGlj
VmFsdWVTbG90PCRjbGFzc05hbWUsIEJhc2U+KGV4ZWMsIHNfaW5mby5zdGF0aWNQcm9wSGFzaFRh
YmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBn
ZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0
YXRpY1ZhbHVlU2xvdDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCBzX2luZm8uc3RhdGljUHJvcEhh
c2hUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBy
ZXR1cm4gJHtuYW1lc3BhY2VNYXliZX1nZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFtZSwgQmFz
ZT4oZXhlYywgIiAuIGhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlO
YW1lLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1w
bCwgIiAgICByZXR1cm4gJHtuYW1lc3BhY2VNYXliZX1nZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNz
TmFtZSwgQmFzZT4oZXhlYywgIiAuIGhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09i
amVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICByZXR1cm4gQmFzZTo6
Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICByZXR1cm4gQmFzZTo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsK
ICAgICB9CiAKICAgICByZXR1cm4gQGdldE93blByb3BlcnR5U2xvdEltcGw7CkBAIC03NzAsOSAr
NzcwLDExIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBHZXR0ZXJzCiAgICAgaWYgKCRo
YXNHZXR0ZXIpIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtc
biIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90Jik7XG4iKSBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJI
YXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIifTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIp
IGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVy
In0pICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFt
ZUdldHRlciJ9OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgJiYgISRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn07CiAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3REZWxl
Z2F0ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVy
dHlTbG90Jik7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0
aW5nR2V0T3duUHJvcGVydHlTbG90In07CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JEZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7XG4iKSBp
ZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nR2V0T3duUHJvcGVy
dHlTbG90In07CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QifSA9IDE7CkBAIC05NjcsOSArOTY5LDE0IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKIAogICAgIGlmICgkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QifSAmJiAh
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90
In0pIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZU19JTkxJTkUgYm9vbCAk
e2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90JiBzbG90
KVxuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJBTFdBWVNfSU5MSU5FIGJvb2wg
JHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmIHNsb3QpXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIntcbiIpOwotICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpcywgJnNfaW5mbyk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn1cblxuIik7CisgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJBTFdBWVNfSU5MSU5FIGJvb2wgJHtjbGFzc05hbWV9OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqIGNlbGwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmIHNs
b3QpXG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIntcbiIpOworICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZv
KTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZUdldE93blByb3Bl
cnR5U2xvdEJvZHkoJGRhdGFOb2RlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxD
bGFzc05hbWUsICRudW1BdHRyaWJ1dGVzID4gMCwgMSkpOwogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAifVxuXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZU19J
TkxJTkUgYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CkBAIC0xMDM1LDcgKzEwNDIsOCBA
QCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3Rh
dGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwogICAgIGlmICgkbnVtRnVuY3Rp
b25zID4gMCB8fCAkbnVtQ29uc3RhbnRzID4gMCB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlR2V0T3duUHJvcGVydHlTbG90In0pIHsKLSAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0
ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlT
bG90Jik7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5n
UHJvdG90eXBlR2V0T3duUHJvcGVydHlTbG90In07CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JEZWxlZ2F0ZShKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7
XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90
eXBlR2V0T3duUHJvcGVydHlTbG90In07CkBAIC0xNDMzLDIyICsxNDQxLDI4IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
ICAgICB9CiAgICAgaWYgKCRudW1Db25zdGFudHMgPiAwIHx8ICRudW1GdW5jdGlvbnMgPiAwIHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRP
d25Qcm9wZXJ0eVNsb3QifSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtj
bGFzc05hbWV9UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwor
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0
dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xu
Iik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKyAgICAgICAgCisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JHtjbGFzc05hbWV9UHJvdG90eXBlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05h
bWV9UHJvdG90eXBlKj4oY2VsbCk7XG4iKTsKIAogICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9
KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZ2V0T3duUHJvcGVy
dHlTbG90RGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSlcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5
U2xvdERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKCRudW1Db25zdGFudHMgZXEgMCAmJiAkbnVtRnVuY3Rpb25zIGVxIDAp
IHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBCYXNlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOyAgICAgICAgCisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsgICAg
ICAgIAogICAgICAgICB9IGVsc2lmICgkbnVtQ29uc3RhbnRzIGVxIDApIHsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNP
YmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRo
aXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsICIg
LiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7XG4iKTsKICAgICAgICAgfSBlbHNpZiAoJG51bUZ1bmN0aW9ucyBlcSAw
KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGlj
VmFsdWVTbG90PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90
b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJO
b1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRT
dGF0aWNWYWx1ZVNsb3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAu
IHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVy
dHlOYW1lLCBzbG90KTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY1Byb3BlcnR5U2xvdDwke2NsYXNzTmFt
ZX1Qcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNz
b3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNs
YXNzTmFtZSkgLiAiLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlTbG90PCR7
Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVIYXNoVGFi
bGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxl
cyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4i
KTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKQEAg
LTE1NzIsOSArMTU4NiwxNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICMgQXR0
cmlidXRlcwogICAgIGlmICgkaGFzR2V0dGVyKSB7CiAgICAgICAgIGlmICghJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5saW5lR2V0T3duUHJvcGVydHlTbG90In0gJiYgISRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5U2xvdCJ9KSB7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
Uyh0aGlzLCAmc19pbmZvKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4o
Y2VsbCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkoJGRhdGFO
b2RlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUsICRudW1BdHRy
aWJ1dGVzID4gMCwgMCkpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKQEAgLTE1
ODYsMTggKzE2MDUsMjMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICBp
ZiAoKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIi
fSkgCiAgICAgICAgICAgICAgICAgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAocHJvcGVydHlOYW1lIDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05h
bWUqPihpbXBsKCkpLT5sZW5ndGgoKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06Omdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0qPihj
ZWxsKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKHByb3BlcnR5TmFtZSA8IHN0YXRpY19jYXN0PCRp
bXBsQ2xhc3NOYW1lKj4odGhpc09iamVjdC0+aW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOwogICAg
ICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUlu
ZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJp
Y0luZGV4R2V0dGVyIn0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgc2xvdC5zZXRWYWx1ZShnZXRCeUluZGV4KGV4ZWMsIHByb3BlcnR5TmFtZSkpO1xuIik7
CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0VmFs
dWUodGhpc09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUpKTtcbiIpOwogICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzLCBwcm9wZXJ0eU5hbWUsIGluZGV4R2V0dGVy
KTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90
LnNldEN1c3RvbUluZGV4KHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgdGhpc09iamVjdC0+aW5k
ZXhHZXR0ZXIpO1xuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIH1cbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHBy
b3BlcnR5TmFtZSksIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICByZXR1cm4gdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBJ
ZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpO1xuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgIH0KICAgICAgICAgCkBA
IC0zMTU2LDcgKzMxODAsOCBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uCiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gcHRyO1xuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIH1cblxuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5
U2xvdCYpO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0
b3ImKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgY29uc3QgSlND
OjpDbGFzc0luZm8gc19pbmZvO1xuIik7CiAKQEAgLTMyMTEsOSArMzIzNiwxNCBAQCBzdWIgR2Vu
ZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0
aCwganNOdW1iZXIoJHtudW1iZXJPZmNvbnN0cnVjdFBhcmFtZXRlcnN9KSwgUmVhZE9ubHkgfCBE
b250RGVsZXRlIHwgRG9udEVudW0pO1xuIikgaWYgJG51bWJlck9mY29uc3RydWN0UGFyYW1ldGVy
czsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogCi0gICAgcHVzaChAJG91dHB1
dEFycmF5LCAiYm9vbCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y29uc3Ry
dWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKKyAgICAK
KyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJl
dHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0sIEpTRE9NV3Jh
cHBlcj4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIHRoaXMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdl
dFN0YXRpY1ZhbHVlU2xvdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwgSlNET01XcmFwcGVyPihl
eGVjLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwgc3RhdGljX2Nhc3Q8JHtjb25zdHJ1
Y3RvckNsYXNzTmFtZX0qPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJi
b29sICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVz
Y3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCBkYTk5
MTFlYzVkMmJlODE2ZjAyYTE0YzgzYzA4ZTJkZTIyZjAwMjhjLi5hMDBkZTQ0ZjAzYTEwNmUzNThl
MTA0MjliMmQ3ZGJmZTM4YzNjMTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtODYsNyAr
ODYsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCi0gICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
LCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZv
OwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xMTQsOSArMTE1LDE0IEBAIHZvaWQgSlNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplCiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLnByb3RvdHlwZSwgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpzZWxmKGV4ZWMs
IGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiB9CiAKLWJvb2wgSlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9v
bCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29s
IEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yVGFibGUsIHN0YXRpY19jYXN0PEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQpAQCAtMTg4LDEwICsxOTQsMTYgQEAgSlNPYmplY3QqIEpTVGVzdEludGVyZmFjZTo6Y3Jl
YXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBy
ZXR1cm4gSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGUoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBnbG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+
b2JqZWN0UHJvdG90eXBlKCkpKTsKIH0KIAotYm9vbCBKU1Rlc3RJbnRlcmZhY2U6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RJbnRlcmZhY2U6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXMsICZzX2luZm8pOwotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0
SW50ZXJmYWNlLCBCYXNlPihleGVjLCAmSlNUZXN0SW50ZXJmYWNlVGFibGUsIHRoaXMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1Rlc3RJbnRl
cmZhY2UqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihjZWxsKTsK
KyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0SW50ZXJmYWNlLCBCYXNlPihleGVjLCAm
SlNUZXN0SW50ZXJmYWNlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKIGJvb2wgSlNUZXN0SW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCA1YmZkODlmMjIzYTc1Zjg1
OWU3ZjMzY2RiMjgxODk1YTBjNzc5MDJkLi5kMDhhOTQ4YjJmZTcxOTQwNDExY2Y2Y2IzNTMxN2U3
NjlhNmYyZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBAIC00Miw3ICs0Miw4IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCAzYmY0Mzg5ZDIyYjYwODAw
NTFkZWJiNDMyNjdkMGQ1MDU2MmJlM2I4Li5hMWM2NDJlNGQ3ZjhjNzYyZWMxYTZjNTdiZTI5Njc1
MzZiZGY0YjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwCkBAIC04Nyw3ICs4Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNs
YXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTExMiw5ICsxMTMsMTQgQEAg
dm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlMKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBS
ZWFkT25seSk7CiB9CiAKLWJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7Cisg
ICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Q29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDb25zdHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9v
bCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtMTQ5LDkgKzE1NSwxNSBAQCBK
U09iamVjdCogSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6c2VsZihFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsTwogICAgIHJldHVybiBnZXRET01Qcm90b3R5cGU8SlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotYm9vbCBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9v
bCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5j
dGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJv
dG90eXBlVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqPihjZWxsKTsKKyAgICByZXR1cm4gZ2V0
U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lclByb3RvdHlwZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
fQogCiBib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtMTc4LDEwICsxOTAs
MTYgQEAgSlNPYmplY3QqIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZVByb3Rv
dHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmEKICAgICByZXR1cm4gSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0LCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwogfQogCi1ib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICBy
ZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIsIEJh
c2U+KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVGFibGUsIHRoaXMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7Cisg
ICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworICAgIHJldHVybiBnZXRTdGF0aWNW
YWx1ZVNsb3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciwgQmFzZT4oZXhlYywgJkpTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KIAogYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IDZjMTQyZTlkOWZhNmRmMTRlOTljZWY3NDEz
Mjc4MWUyYzk2OTQyMTYuLjliN2UzNjI0ZDRiNWZiZWMwZjQ5YmFhOGU5ZDljYjJkODY2OTk5OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtNDAsNyAr
NDAsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0
ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZv
OwogCkBAIC03NSw3ICs3Niw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3Qg
SlNDOjpDbGFzc0luZm8gc19pbmZvOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5
U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
KyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAg
c3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGMwMjRhNDUxZDc5MDMyZmVhNThm
NGJhOWIyODQ5ZmJlNTEwNjI2OGMuLmJkMmFkZTRhZTUxMjczOWYyMzE5MzViMDk3YjAxNjNlN2Zm
Y2VmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0xODksNyArMTg5LDggQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xv
dCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3Rh
dGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQpAQCAt
MjE0LDkgKzIxNSwxNCBAQCB2b2lkIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbAogICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTVGVz
dE9ialByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpOwogfQogCi1ib29sIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90
PEpTVGVzdE9iakNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RPYmpDb25z
dHJ1Y3RvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9v
bCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE9iakNv
bnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxl
LCBzdGF0aWNfY2FzdDxKU1Rlc3RPYmpDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQogCiBib29sIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAgLTMwNiw5ICszMTIsMTUgQEAgSlNP
YmplY3QqIEpTVGVzdE9ialByb3RvdHlwZTo6c2VsZihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBlPEpTVGVzdE9i
aj4oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotYm9vbCBKU1Rlc3RPYmpQcm90b3R5cGU6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RPYmpQcm90b3R5cGU6Omdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0T3du
UHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wg
SlNUZXN0T2JqUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8SlNUZXN0T2JqUHJv
dG90eXBlLCBKU09iamVjdD4oZXhlYywgJkpTVGVzdE9ialByb3RvdHlwZVRhYmxlLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIEpTVGVzdE9ialByb3RvdHlwZSogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KGNlbGwpOworICAgIHJldHVybiBnZXRT
dGF0aWNQcm9wZXJ0eVNsb3Q8SlNUZXN0T2JqUHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgJkpT
VGVzdE9ialByb3RvdHlwZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
fQogCiBib29sIEpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0zMzUsMTAgKzM0NywxNiBAQCBKU09iamVjdCogSlNU
ZXN0T2JqOjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZQogICAgIHJldHVybiBKU1Rlc3RPYmpQcm90b3R5cGU6OmNyZWF0ZShleGVjLT5n
bG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgSlNUZXN0T2JqUHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwogfQogCi1ib29sIEpTVGVzdE9iajo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
cywgJnNfaW5mbyk7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RPYmosIEJh
c2U+KGV4ZWMsICZKU1Rlc3RPYmpUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Cit9CisKK2Jvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQoreworICAgIEpTVGVzdE9iaiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PEpTVGVzdE9iaio+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgJnNfaW5mbyk7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RPYmos
IEJhc2U+KGV4ZWMsICZKU1Rlc3RPYmpUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KIAogYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IGMzZDFiMjRjYmIxNzFhNjRmMjY5MjNmODdm
YWViNTcxYWQ1YzhkMzMuLjQ4YmMxNWQ2YTk2M2QwNjkyYTZiYjVmMGQ2MDg0NzYyZGY2Y2ZjZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKQEAgLTQwLDcgKzQwLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1
dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0
KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwpAQCAtODks
NyArOTAsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJ
bmZvIHNfaW5mbzsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBKU0M6
OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcAppbmRleCAyYWQ2MTBiYjZiNzQxYzAxYjg4MzlmZDJiODY1NDVjZWZk
MWRiZjY2Li43ZjFiOTNhMDM1OWUzNjU1NzMzODE3MDUzYjU4YzY0OGEzZDNmZDUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNw
cApAQCAtODgsNyArODgsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xMTMsOSArMTE0LDE0IEBAIHZv
aWQgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKEV4ZWNTdGF0ZSoKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVl
U2xvdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvciwgSlNE
T01XcmFwcGVyPihleGVjLCAmSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29u
c3RydWN0b3JUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jv
b2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdl
dFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgc3RhdGljX2Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBA
IC0xNjgsMTAgKzE3NCwxNiBAQCBKU09iamVjdCogSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlOjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLAogICAgIHJldHVybiBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OmNyZWF0ZShleGVj
LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCksIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwog
fQogCi1ib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Ci0gICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlU2xvdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UsIEJhc2U+
KGV4ZWMsICZKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VUYWJsZSwgdGhpcywg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQoreworICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZSo+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNf
aW5mbyk7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UsIEJhc2U+KGV4ZWMsICZKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAog
Ym9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IGYxZmE0ZDQ0ZjBiZTVh
MzA2MmI2Yjk3MDhhNGViYWFkMzY3NTM4NzEuLjUxZTY4YmUwNTAxNjg0NmMwMTZiMDdkZDU2ZTdl
NjE1M2I5OGE5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmgKQEAgLTQyLDcgKzQyLDggQEAgcHVibGljOgogICAgIH0KIAogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUuaAppbmRleCBhOThhOTBlMTk3NTBhZGJmOTM2ZWRiNzY5NzFlMTcxNGE1
YWRiNmVmLi43MWM0Mzc4MTMwNWQyNTBjYzkzOGUyNTViODBhOGI2OTg3Yjg2OTAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaApAQCAtMTIzLDcgKzEyMyw3IEBA
IHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKiwgT2JqY0luc3RhbmNlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7Ci0g
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDRjZmMzODRh
ZTU1NjNkN2QxODNlNzFmZWQ3ZDZhMDExZmQzNTI1NTkuLjliMDEyZDQ0OTE3ZDU0OTYxMDI2M2U5
ZDkxZWZmMGI5ZWUwYWNlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUubW0KQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIE9iamNGYWxsYmFja09iamVjdEltcDo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1ib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRp
ZmllciwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6Omdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blBy
b3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCmluZGV4IDBkNjFhNjAyMjkwMmIwY2M2ZjU2NDkw
MjI2ZTY0OTA1OWVhMzNiYjQuLmFlNzRkYTlhYTAzZTljNTU4ZGQ0MGYxYjA2NmQxYzUzYjIzZjEz
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcApAQCAtMTUzLDcg
KzE1Myw3IEBAIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gUXRJbnN0YW5jZTo6Z2V0UXRJbnN0YW5j
ZShRT2JqZWN0KiBvLCBQYXNzUmVmUHRyPFJvb3RPYmplCiAKIGJvb2wgUXRJbnN0YW5jZTo6Z2V0
T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0
dXJuIG9iamVjdC0+SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVj
dCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogdm9pZCBRdEluc3RhbmNlOjpwdXQo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRleCBjM2E3YTNkMGE2NWQwNTdhNDJkZWZi
NDA0YjQwNjcxZjk4Njg1MzEwLi43YzZlM2E0NGFhNDdhMTYyMWRkYzZhNTIwNDIzNjJlYWUwZDll
NTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCkBAIC0xNDk0LDcg
KzE0OTQsNyBAQCBDYWxsVHlwZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIAot
Ym9vbCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
K2Jvb2wgUXRSdW50aW1lTWV0YU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTE3NDEsNyArMTc0MSw3IEBAIENhbGxUeXBlIFF0UnVu
dGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1ib29sIFF0UnVudGltZUNvbm5l
Y3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBRdFJ1bnRp
bWVDb25uZWN0aW9uTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1
bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKaW5kZXggOTgx
OTdmNTk5ODI3NDQxOWMxMDJjM2UzODU5Njk0M2I1ZmI2Njg1ZC4uYWE5ZDU4ZDhiNTVhMDMyNWIx
NzM0NDhhYjRlNjBlZjZjNDNiZDI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGlt
ZS5oCkBAIC0xNjQsNyArMTY0LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbWV0aG9kOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25N
b2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKQEAgLTIwNSw3ICsyMDUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtZXRob2Q7CiAgICAgfQogCi0gICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNj
cmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250
RW51bVByb3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmlu
ZGV4IDgwZTJhOGY5NTFlMWNlNTNiMmYzNmE2ZmIxNTVjMjNiNDhlODg5YjguLmI2NDljNDdlMmYz
OGJhZjViZjZhMzA2NzNmNjk0YmE3OGY0ODIxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBSdW50aW1lQXJyYXk6OmdldE93
blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGUK
ICAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBt
b2RlKTsKIH0KIAotYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQorYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CkBAIC0xMjYsNyArMTI2LDcgQEAgYm9vbCBSdW50aW1lQXJyYXk6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHAKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVj
LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi1ib29sIFJ1bnRpbWVBcnJheTo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqZXhlYywgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSAqZXhlYywgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGluZGV4LCBzbG90KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IGEzZDQ0NThiNmI4OGQz
M2M5NDMzZDYwOTkyNjhmMjRhMzQwODI3ZGYuLmRhOTNjOTQ1ZDUxYTM3ZDNmODExMDJkNTRkZjhj
NjhiYWFjOWI4MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtNTAs
OSArNTAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UnVudGltZUFycmF5KCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVB
cnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7
Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7
CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwg
dW5zaWduZWQsIFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKaW5k
ZXggNTk1MzBhZTc3ZDY2MzkzMjJiMmI5ODhmMzA2YzZhMDBjMjY4ODgxNS4uY2E5MWI4ZDE1OGVl
OTQ3M2IxODU4NGMyMGRlN2ZlOTE4MDA5YjYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIEpTVmFsdWUgUnVudGltZU1ldGhvZDo6
bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZp
CiAgICAgcmV0dXJuIGpzTnVtYmVyKHRoaXNPYmotPl9tZXRob2RMaXN0LT5hdCgwKS0+bnVtUGFy
YW1ldGVycygpKTsKIH0KIAotYm9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCAmc2xvdCkKK2Jvb2wgUnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmgKaW5kZXggYzVmNjZhNjJmNjFiODJjZTY5NTc5MzExMDUwMDlhYmNjMTA4MDRjNy4uMDg4
NWRiZTZlMWQxZGE2NDdiOTkzYWI0Y2ZlNWNkYTIyMzA1ODdhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2
YXRlOgogICAgIHN0YXRpYyBKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBjb25zdCBJZGVudGlmaWVyJik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDEzMzhjZjg2NWNlNGNmNGFiZGUwNmE5
NGRhNDJmNzY0MTI0NDcxNmYuLjliM2YwODFkMWM1OTQ3NWQ3YTg3ZDBkM2JmYzQxNWQ2ZjEwMDVi
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMTE2LDcg
KzExNiw3IEBAIEpTVmFsdWUgUnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlCiAgICAgcmV0dXJuIG1ldGhvZDsKIH0K
IAotYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jv
b2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUgKmV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggMDY2
ZDc3MzdlMzI0NjRlNTg2MjExODVlNjRhNTczM2RiMWVlZGVmYy4uOGM1YjUwNWQ3NDI2N2I1ZTk4
ODIwNDJiNTg0NDk0ZjQ4ZjM2YmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UnVudGltZU9i
amVjdCgpOwogCi0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA3YTY2OWI2NzYwNzU0YWFlN2U2NWJiMzI1MDkxY2RjY2MwZjE1
NWFmLi5jNzRjYzQxNWY2MzY0OWM0NTAyYjNjYTc1OTY3YjhmOTlmNWVjMTc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTAtMTEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5i
ZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRvIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdmlydHVhbCB2ZXJzaW9uIG9mIGdldE93blByb3Bl
cnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGluIHByZXBhcmF0
aW9uIGZvciB3aGVuIHdlIGFkZCB0aGUgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCB0byB0aGUg
TWV0aG9kVGFibGUgCisgICAgICAgIGluIENsYXNzSW5mby4KKworICAgICAgICBBbHNvIGFkZGVk
IGEgZmV3IHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgZnVuY3Rpb25zIHdoZXJlIHRoZXkgaGFk
IGJlZW4gb3Zlcmxvb2tlZCAKKyAgICAgICAgYmVmb3JlIChlc3BlY2lhbGx5IGluIENvZGVHZW5l
cmF0b3JKUy5wbSkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0Lmg6CisKIDIwMTEtMTAtMTEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgW01hY10gU2hvdWxkIGJlIGFibGUgdG8gZGlzcGxheSBtdWx0aS1wYWdl
IFBERnMgaW4gc3ViZnJhbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggNTNmNTg2MDFjMGE5NjY4
MWM4NTQxOGJjZDM0ZGNhYjQyZTAwYTFmNC4uNDZhYzM4ZjNiYzE0ZDNkMDNhNWYxZjQ1MjNhN2Fh
NTEwNmQ3OGVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtMjUyLDcgKzI1Miw3IEBAIENvbnN0
cnVjdFR5cGUgSlNOUE9iamVjdDo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqIGNlbGwsIENvbnN0
cnVjdERhdGEmIGNvbnN0cnVjCiAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwogfQogCi1i
b29sIEpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU05Q
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0
dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmgKaW5kZXggMjNmZmM4ZmM5MjMyZGIzNGFmMDIxM2NmNzNlNzFjYWUyOTc1
NjE2MC4uNzc5Mzg2OTc3NmZhMTQ3YjAxODRlZTdiMDVjMmExODdiOWFhN2VlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5oCkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBKU0M6OkNvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmKTsKICAgICBzdGF0
aWMgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6
OkNvbnN0cnVjdERhdGEmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwg
dm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111036</attachid>
            <date>2011-10-14 11:42:49 -0700</date>
            <delta_ts>2011-10-14 11:42:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69810-20111014114248.patch</filename>
            <type>text/plain</type>
            <size>168868</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0NzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggMDIyZjJhODk4NDZjMTMwMzhhYTVhNmU0Mjc2YTY2N2U1
YjY2N2RiNy4uNmZlMzM4NDUyYTY1OWQ1Y2Q4ZjU5NWQ2ZGZmMDY1NzAwNWExMWQ0NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE3OCw3ICsx
NzgsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05h
bWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAogICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAppbmRleCA4MGRlMWUwMGJlODhjNGNlMjVhMDFkYjJmNjI4NzdhMGFl
ZjkxNmM3Li4zZDJmODViNzhmNDI0NmQ5ZWQ5NzJkZThmNzE5ZmNhNjcyM2RkZmRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaApAQCAtMTI0LDIwICsxMjQsMjcgQEAgVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmNsYXNzTmFtZSgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1ib29s
IEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KK2Jv
b2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CiAgICAgSlNDb250ZXh0UmVmIGN0
eCA9IHRvUmVmKGV4ZWMpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsK
KyAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYodGhpc09iamVjdCk7CiAgICAgUmVmUHRy
PE9wYXF1ZUpTU3RyaW5nPiBwcm9wZXJ0eU5hbWVSZWY7CiAgICAgCi0gICAgZm9yIChKU0NsYXNz
UmVmIGpzQ2xhc3MgPSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFy
ZW50Q2xhc3MpIHsKKyAgICBmb3IgKEpTQ2xhc3NSZWYganNDbGFzcyA9IHRoaXNPYmplY3QtPmNs
YXNzUmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNzLT5wYXJlbnRDbGFzcykgewogICAg
ICAgICAvLyBvcHRpb25hbCBvcHRpbWl6YXRpb24gdG8gYnlwYXNzIGdldFByb3BlcnR5IGluIGNh
c2VzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGtub3cgaWYgdGhlIHByb3BlcnR5IGV4aXN0cwogICAg
ICAgICBpZiAoSlNPYmplY3RIYXNQcm9wZXJ0eUNhbGxiYWNrIGhhc1Byb3BlcnR5ID0ganNDbGFz
cy0+aGFzUHJvcGVydHkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQogICAg
ICAgICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocHJv
cGVydHlOYW1lLnVzdHJpbmcoKSk7CiAgICAgICAgICAgICBBUElDYWxsYmFja1NoaW0gY2FsbGJh
Y2tTaGltKGV4ZWMpOwogICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KGN0eCwgdGhpc1JlZiwg
cHJvcGVydHlOYW1lUmVmLmdldCgpKSkgewotICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIGNhbGxiYWNrR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzT2JqZWN0LCBjYWxsYmFja0dldHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNh
bGxiYWNrIGdldFByb3BlcnR5ID0ganNDbGFzcy0+Z2V0UHJvcGVydHkpIHsKQEAgLTE2Miw3ICsx
NjksNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAgICAgICAgaWYgKE9w
YXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3Rh
dGljVmFsdWVzKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAoc3RhdGljVmFsdWVzLT5jb250YWlu
cyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBnZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgICAgIEpT
VmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0LT5nZXRTdGF0aWNWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICBz
bG90LnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC0xNzIsMjAgKzE3OSwyMCBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgICAgICAKICAg
ICAgICAgaWYgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNGdW5jdGlvbnNUYWJsZSogc3RhdGljRnVuY3Rp
b25zID0ganNDbGFzcy0+c3RhdGljRnVuY3Rpb25zKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAo
c3RhdGljRnVuY3Rpb25zLT5jb250YWlucyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkgewotICAgICAg
ICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKTsKKyAg
ICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNGdW5jdGlvbkdl
dHRlcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIFBhcmVudDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIHRl
bXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgUHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKGdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CisgICAgaWYgKGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBJZGVhbGx5IHdlIHNob3VsZCByZXR1
cm4gYW4gYWNjZXNzIGRlc2NyaXB0b3IsIGJ1dCByZXR1cm5pbmcgYSB2YWx1ZSBkZXNjcmlwdG9y
IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICghZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCkBAIC01MzYsNyArNTQzLDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZQogICAgIAog
ICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHkuCiAgICAgUHJvcGVy
dHlTbG90IHNsb3QyKHRoaXNPYmopOwotICAgIGlmICh0aGlzT2JqLT5QYXJlbnQ6OmdldE93blBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QyKSkKKyAgICBpZiAoUGFyZW50Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90MikpCiAg
ICAgICAgIHJldHVybiBzbG90Mi5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIAog
ICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iai0+Y2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCAxOTYyZTlkMDMxY2M4ZTRmOTMzZDljYmNlODJhOGZhMzg0NjJhYzM5Li4zYThhMjEw
ZjNmZDg4OGQxOGI1YzMyNTZkZDRhMWU0OTRjNWYxMGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDIgQEAKKzIwMTEtMTAtMTQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgZ2V0T3duUHJvcGVydHlTbG90IHRv
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdmlydHVhbCB2ZXJzaW9uIG9mIGdldE93blBy
b3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGluIHByZXBh
cmF0aW9uIGZvciB3aGVuIHdlIGFkZCB0aGUgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCB0byB0
aGUgTWV0aG9kVGFibGUgCisgICAgICAgIGluIENsYXNzSW5mby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgZmV3IHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgZnVuY3Rpb25zIHdoZXJlIHRoZXkg
aGFkIGJlZW4gb3Zlcmxvb2tlZCAKKyAgICAgICAgYmVmb3JlIChlc3BlY2lhbGx5IGluIENvZGVH
ZW5lcmF0b3JKUy5wbSkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAg
ICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoSlNDOjo6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6Cisg
ICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6Omdl
dE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6QXJy
YXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwp
OgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L0Jvb2xlYW5Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90
b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpEYXRlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAg
ICAgIChKU0M6OkpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAg
ICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXku
Y3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToK
KyAgICAgICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6
CisgICAgICAgIChKU0M6OkpTQm91bmRGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50
aW1lL0pTQnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnB1dCk6CisgICAgICAg
ICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmpl
Y3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpT
dHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkpOgorICAgICAgICAoSlNDOjpK
U09OT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6V2Fs
a2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omhhc093blByb3BlcnR5KToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpmYXN0R2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmdldCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0
Lmg6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6OkpTU3Ry
aW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6OmdldFN0YXRpY1Byb3BlcnR5
U2xvdCk6CisgICAgICAgIChKU0M6OmdldFN0YXRpY0Z1bmN0aW9uU2xvdCk6CisgICAgICAgIChK
U0M6OmdldFN0YXRpY1ZhbHVlU2xvdCk6CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6
CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9y
Lmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlND
OjpPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAq
IHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmg6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwTWF0Y2hlc0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmpl
Y3QuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OlJlZ0V4cFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAg
ICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0
cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogcnVudGlt
ZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6
CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaDoKKwogMjAxMS0xMC0xNCAg
WXVxaWFuZyBYaWFuICA8eXVxaWFuZy54aWFuQGludGVsLmNvbT4KIAogICAgICAgICBERkcgSklU
IDMyXzY0IC0gUGVyZm9ybWFuY2UgZml4IGZvciBSZXNvbHZlR2xvYmFsCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCA1YjJlZmM1NTdlZTFlMjg3MjFlNTA5ZjNh
YjE5MzhkODljN2I0OWQ4Li5iOGQyNDBiOWEwNTc0YmE0YjI5ZjkxY2Y1NzUxYmQzZjk3YmIxMmY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTE0OCw4ICsx
NDgsNiBAQCBfX1pOM0pTQzEyU21hbGxTdHJpbmdzMTdjcmVhdGVFbXB0eVN0cmluZ0VQTlNfMTJK
U0dsb2JhbERhdGFFCiBfX1pOM0pTQzEyU21hbGxTdHJpbmdzMjdjcmVhdGVTaW5nbGVDaGFyYWN0
ZXJTdHJpbmdFUE5TXzEySlNHbG9iYWxEYXRhRWgKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QxNGRl
bGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0Mx
MlN0cmluZ09iamVjdDE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVBOU184SlNT
dHJpbmdFCi1fX1pOM0pTQzEyU3RyaW5nT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQotX19aTjNKU0Mx
MlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQ
cm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVz
RVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25N
b2RlRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUK
IF9fWk4zSlNDMTJTdHJpbmdPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKQEAgLTE2Nyw4ICsxNjUsOSBA
QCBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxM2NsZWFyUmFyZURhdGFFUE5TXzZKU0NlbGxFCiBf
X1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxFUk5TXzEx
U2xvdFZpc2l0b3JFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxNmFkZFN0YXRpY0dsb2JhbHNF
UE5TMF8xOEdsb2JhbFByb3BlcnR5SW5mb0VpCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxN3B1
dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1Zh
bHVlRWoKLV9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185
RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKK19fWk4zSlND
MTRKU0dsb2JhbE9iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhl
Y1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTRK
U0dsb2JhbE9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19fWk4zSlNDMTRKU0ds
b2JhbE9iamVjdDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmpl
Y3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18x
NVB1dFByb3BlcnR5U2xvdEUgIAogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0NGluaXRFUE5TXzhK
U09iamVjdEUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDZzX2luZm9FCkBAIC0yNTksOCArMjU4
LDggQEAgX19aTjNKU0M0Y2FsbEVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUVOU184Q2FsbFR5
cGVFUktOU184Q2FsbERhdGFFUzJfUktOU183QXIKIF9fWk4zSlNDNkpTQ2VsbDExZ2V0Q2FsbERh
dGFFUFMwX1JOU184Q2FsbERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5RVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQ
cm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCi1fX1pOM0pTQzZKU0NlbGwxOGdldE93blByb3BlcnR5
U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RF
Ci1fX1pOM0pTQzZKU0NlbGwxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5T
XzEyUHJvcGVydHlTbG90RQorX19aTjNKU0M2SlNDZWxsMjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUK
K19fWk4zSlNDNkpTQ2VsbDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNfOUV4ZWNTdGF0
ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M2SlNDZWxsMjNnZXRDb25zdHJ1Y3REYXRh
VmlydHVhbEVSTlNfMTNDb25zdHJ1Y3REYXRhRQogX19aTjNKU0M2SlNDZWxsM3B1dEVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNs
b3RFCiBfX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUgIApA
QCAtMjgwLDcgKzI3OSw3IEBAIF9fWk4zSlNDN0pTQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZK
U0NlbGxFUk5TXzExU2xvdFZpc2l0b3JFCiBfX1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlv
bkVSTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVS
TlNfMTJKU0dsb2JhbERhdGFFUktOU183QXJnTGlzdEUKIF9fWk4zSlNDN0pTQXJyYXkxNXNldFN1
YmNsYXNzRGF0YUVQdgotX19aTjNKU0M3SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185
RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzdKU0FycmF5MThnZXRPd25Q
cm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xv
dEUKIF9fWk4zSlNDN0pTQXJyYXk2c19pbmZvRQogX19aTjNKU0M3SlNBcnJheTlzZXRMZW5ndGhF
agogX19aTjNKU0M3SlNBcnJheUMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUK
QEAgLTMyMywxMiArMzIyLDEyIEBAIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRl
c0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1CiBfX1pOM0pTQzhK
U09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFTlNfN0pTVmFsdWVFamJSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVj
dDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRWoKIF9fWk4z
SlNDOEpTT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3Rh
dGVFalJOU18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDOEpTT2JqZWN0MThnZXRPd25Qcm9wZXJ0
eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2Jq
ZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFt
ZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQogX19aTjNKU0M4SlNPYmplY3QyMWdldFByb3Bl
cnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzhKU09iamVjdDIyZmlsbEdldHRlclByb3BlcnR5U2xv
dEVSTlNfMTJQcm9wZXJ0eVNsb3RFUE5TXzE2V3JpdGVCYXJyaWVyQmFzZUlOU183VW5rbm93bkVF
RQogX19aTjNKU0M4SlNPYmplY3QyM2FsbG9jYXRlUHJvcGVydHlTdG9yYWdlRVJOU18xMkpTR2xv
YmFsRGF0YUVtbQogX19aTjNKU0M4SlNPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JF
CitfX1pOM0pTQzhKU09iamVjdDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNfOUV4ZWNT
dGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QzcHV0RVBOU185RXhl
Y1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xv
dEUKIF9fWk4zSlNDOEpTT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFCiBf
X1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCBjZTQ3MGNm
MmIwNDAxMmVlOTc2OWU5YWY5NmEyMmVmNjk4NmE3N2E3Li4xZmRlZGFhNjcxYjEzMmU2OTQyZmMw
MTZjZDlmMGIxYjZhMDMxOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTk5LDE1ICsxOTksMTIgQEAgRVhQT1JUUwogICAg
ID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFB
VlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgogICAgID9nZXRPd25Q
cm9wZXJ0eU5hbWVzQEpTVmFyaWFibGVPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUFW
UHJvcGVydHlOYW1lQXJyYXlAMkBXNEVudW1lcmF0aW9uTW9kZUAyQEBaCiAgICAgP2dldE93blBy
b3BlcnR5TmFtZXNAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3Bl
cnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0
eVNsb3RASlNBcnJheUBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAy
QEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEBKU0NlbGxASlNDQEBFQUVfTlBBVkV4ZWNTdGF0
ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9nZXRPd25Qcm9w
ZXJ0eVNsb3RASlNDZWxsQEpTQ0BARUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90
QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTR2xvYmFsT2JqZWN0QEpTQ0BAVUFFX05Q
QVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlTbG90QDJAQFoKLSAgICA/
Z2V0T3duUHJvcGVydHlTbG90QEpTT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBJQUFW
UHJvcGVydHlTbG90QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTU3RyaW5nQEpTQ0BA
RUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlTbG90QDJAQFoK
LSAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTU3RyaW5nQEpTQ0BARUFFX05QQVZFeGVjU3RhdGVA
MkBJQUFWUHJvcGVydHlTbG90QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90QFN0cmluZ09i
amVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5
U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEBTdHJpbmdPYmplY3RASlNDQEBVQUVf
TlBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgorICAgID9nZXRPd25Qcm9wZXJ0
eVNsb3RASlNBcnJheUBKU0NAQFNBX05QQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVAMkBJQUFWUHJv
cGVydHlTbG90QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTR2xvYmFsT2JqZWN0QEpT
Q0BAU0FfTlBBVkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9w
ZXJ0eVNsb3RAMkBAWgorICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsQEpTQ2VsbEBKU0NA
QEVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5U2xvdEAyQEBa
CisgICAgP2dldE93blByb3BlcnR5U2xvdFZpcnR1YWxASlNDZWxsQEpTQ0BARUFFX05QQVZFeGVj
U3RhdGVAMkBJQUFWUHJvcGVydHlTbG90QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbEBKU0dsb2JhbE9iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmll
ckAyQEFBVlByb3BlcnR5U2xvdEAyQEBaCisgICAgP2dldE93blByb3BlcnR5U2xvdFZpcnR1YWxA
SlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgog
ICAgID9nZXRQcm9wZXJ0eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBRQUVfTlBBVkV4ZWNTdGF0
ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRQ
cm9wZXJ0eU5hbWVzQEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5
TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgogICAgID9nZXRTbGljZUBBcmdMaXN0
QEpTQ0BAUUJFWEhBQVYxMkBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCAwY2Y5N2YyNTk3Nzk4NTYyZjM0NGM4
NjY5ZGExZDdiY2E0YjlhYmFkLi40ZTkwNjgwYzgyYWRmYzdmMmJkZGQ2ZTc1ODUxOTMyMTEyNDUz
YzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIFVTdHJpbmcgRGVidWdnZXJBY3Rp
dmF0aW9uOjpjbGFzc05hbWUoKSBjb25zdAogICAgIHJldHVybiBtX2FjdGl2YXRpb24tPmNsYXNz
TmFtZSgpOwogfQogCi1ib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCitib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBEZWJ1Z2dlckFjdGl2YXRp
b246OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2FjdGl2YXRp
b24tPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9u
LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uaAppbmRleCA3YTU1YTdhMzk1ODRhZTdkOWJiNWFlOTRkY2EwMGQ1OWQ1OTQ0OTk1
Li40ZGVmMGViN2MwZTk1ZTU2OTUzYWI0OTcwMDc2OTM0OGE4NTY3NTJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00
Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVhbCBVU3RyaW5n
IGNsYXNzTmFtZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50cy5jcHAKaW5kZXggYzQ5NGRhMTMyYzJhMzA1OTQzMmYyMjIyMTRjOTVjZjA0
ZTljNGFiNS4uMzU1ZGQyMDM3NDU3MmQzYTAwMTViN2ZiZmM1MTc5MWE2NDBkNTk5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0xNDUsNyArMTQ1
LDcgQEAgdm9pZCBBcmd1bWVudHM6OmZpbGxBcmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywgTWFya2Vk
QXJndW1lbnRCdWZmZXImIGFyZ3MpCiAgICAgfQogfQogCi1ib29sIEFyZ3VtZW50czo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBz
bG90KQorYm9vbCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBpLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpLCBzbG90KTsKIH0KQEAgLTE4OCwzNSArMTg4
LDQxIEBAIHZvaWQgQXJndW1lbnRzOjpjcmVhdGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNlc3Nhcnko
RXhlY1N0YXRlKiBleGVjKQogICAgIGRlZmluZU93blByb3BlcnR5KGV4ZWMsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5jYWxsZWUsIGRlc2NyaXB0b3IsIGZhbHNlKTsKIH0KIAotYm9vbCBBcmd1bWVu
dHM6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBBcmd1bWVudHM6OmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICByZXR1cm4gZ2V0T3duUHJv
cGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgQXJn
dW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorewor
ICAgIEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+KGNlbGwp
OwogICAgIGJvb2wgaXNBcnJheUluZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUu
dG9BcnJheUluZGV4KGlzQXJyYXlJbmRleCk7Ci0gICAgaWYgKGlzQXJyYXlJbmRleCAmJiBpIDwg
ZC0+bnVtQXJndW1lbnRzICYmICghZC0+ZGVsZXRlZEFyZ3VtZW50cyB8fCAhZC0+ZGVsZXRlZEFy
Z3VtZW50c1tpXSkpIHsKLSAgICAgICAgaWYgKGkgPCBkLT5udW1QYXJhbWV0ZXJzKSB7Ci0gICAg
ICAgICAgICBzbG90LnNldFZhbHVlKGQtPnJlZ2lzdGVyc1tkLT5maXJzdFBhcmFtZXRlckluZGV4
ICsgaV0uZ2V0KCkpOworICAgIGlmIChpc0FycmF5SW5kZXggJiYgaSA8IHRoaXNPYmplY3QtPmQt
Pm51bUFyZ3VtZW50cyAmJiAoIXRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHMgfHwgIXRo
aXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHNbaV0pKSB7CisgICAgICAgIGlmIChpIDwgdGhp
c09iamVjdC0+ZC0+bnVtUGFyYW1ldGVycykgeworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LT5kLT5yZWdpc3RlcnNbdGhpc09iamVjdC0+ZC0+Zmlyc3RQYXJhbWV0ZXJJbmRl
eCArIGldLmdldCgpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzbG90LnNldFZhbHVl
KGQtPmV4dHJhQXJndW1lbnRzW2kgLSBkLT5udW1QYXJhbWV0ZXJzXS5nZXQoKSk7CisgICAgICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QtPmQtPmV4dHJhQXJndW1lbnRzW2kgLSB0aGlz
T2JqZWN0LT5kLT5udW1QYXJhbWV0ZXJzXS5nZXQoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxl
bmd0aCAmJiBMSUtFTFkoIWQtPm92ZXJyb2RlTGVuZ3RoKSkgewotICAgICAgICBzbG90LnNldFZh
bHVlKGpzTnVtYmVyKGQtPm51bUFyZ3VtZW50cykpOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCAmJiBMSUtFTFkoIXRoaXNPYmplY3QtPmQtPm92
ZXJyb2RlTGVuZ3RoKSkgeworICAgICAgICBzbG90LnNldFZhbHVlKGpzTnVtYmVyKHRoaXNPYmpl
Y3QtPmQtPm51bUFyZ3VtZW50cykpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUgJiYgTElL
RUxZKCFkLT5vdmVycm9kZUNhbGxlZSkpIHsKLSAgICAgICAgaWYgKCFkLT5pc1N0cmljdE1vZGUp
IHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUoZC0+Y2FsbGVlLmdldCgpKTsKKyAgICBpZiAo
cHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUgJiYgTElLRUxZKCF0
aGlzT2JqZWN0LT5kLT5vdmVycm9kZUNhbGxlZSkpIHsKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0
LT5kLT5pc1N0cmljdE1vZGUpIHsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dC0+ZC0+Y2FsbGVlLmdldCgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
Ci0gICAgICAgIGNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShleGVjKTsKKyAgICAg
ICAgdGhpc09iamVjdC0+Y3JlYXRlU3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KGV4ZWMpOwog
ICAgIH0KIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNh
bGxlciAmJiBkLT5pc1N0cmljdE1vZGUpCi0gICAgICAgIGNyZWF0ZVN0cmljdE1vZGVDYWxsZXJJ
Zk5lY2Vzc2FyeShleGVjKTsKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5jYWxsZXIgJiYgdGhpc09iamVjdC0+ZC0+aXNTdHJpY3RNb2RlKQorICAgICAgICB0
aGlzT2JqZWN0LT5jcmVhdGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhlYyk7CiAKLSAg
ICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgQXJndW1lbnRzOjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggMDQyY2ZkMTBkNDc3YjA0Mzc5NWYx
NjlmZjU4YWQ1NmIyNWQ1ZjdmZC4uNmFhYzAyOWE1ZWVmMGQ0NmFiNThiMTE0ZjNjNzA3ODBkNmY1
MTBlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTEz
Myw5ICsxMzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZv
aWQgZ2V0QXJndW1lbnRzRGF0YShDYWxsRnJhbWUqLCBKU0Z1bmN0aW9uKiYsIHB0cmRpZmZfdCYg
Zmlyc3RQYXJhbWV0ZXJJbmRleCwgUmVnaXN0ZXIqJiBhcmd2LCBpbnQmIGFyZ2MpOwotICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25l
ZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9
IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAppbmRleCBkNGQ3N2YyM2JmYzY1MjE0ZmQy
ZTZjMGY4ODhiYjg4MGNjMmYxMDEyLi41MGM4YWUxNTg1ODk4ZmQyYmFiNTNlN2ExMWQyM2JhZjFh
YzYzNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmNwcApAQCAtNjMsOSArNjMsMTQgQEAgdm9pZCBBcnJheUNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEFycmF5UHJvdG90eXBlKiBhcnJheVByb3QK
ICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVt
IHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25T
bG90PEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlDb25zdHJ1Y3RvclRh
YmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBB
cnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZz
bG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SW50ZXJuYWxGdW5jdGlv
bj4oZXhlYywgRXhlY1N0YXRlOjphcnJheUNvbnN0cnVjdG9yVGFibGUoZXhlYyksIHN0YXRpY19j
YXN0PEFycmF5Q29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAog
Ym9vbCBBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuaAppbmRleCA5MzA0NTk5YzUyMDFmYTQ0NTRhYTQ0NDQ4OWVkZDA3MzA5M2Uw
MTIyLi4yNTgzNDg5YzQzYjMzZjVjNDBmNTJhMWI5MzZiYWFiMTdjMDAyOTFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCkBAIC01MSw3
ICs1MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQXJyYXlD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IGNmMTYxNjAzYTM0ZjE1OTMzNmJjMzk1ZTdkZDgy
NDlhMWY1N2VjZWQuLjg5ZWNhYTk5NGYxNWMwNjg3ZDk4ZGI2ZmM3NWM2MjA0NTQyNjAwMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAK
QEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CiB9CiAKLWJvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQorYm9vbCBBcnJheVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5oCmluZGV4IDljODYwYzZjNDNlOWZhOTM4YThmYTFlN2ZjYjU2MjlkMmI5
MmYzODIuLmIyM2M3NjYzNjUyYTE0ZWVmMjk2N2NiN2E4MWIxODQ3OTdlYWJhNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAg
ICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUu
Y3BwCmluZGV4IGU3NDhkZTJiMTliNTg3YTNkYmZkN2MyOGMyNmY3NmY0YWZhNDFjODUuLjc2MDlk
NGU3NThjMDFhNjk3ZWNmZTg3MzE2Nzc2MWE1M2I5MDE0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCkBAIC02Miw3ICs2Miw3
IEBAIHZvaWQgQm9vbGVhblByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAot
Ym9vbCBCb29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jv
b2wgQm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90
KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Qcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Qcm90b3R5cGUuaAppbmRleCBiMGI0ZjU1MGVmMjkzODY2YTA1N2UxMjU0YzFhZTA1ZmY0ZTBh
NDZmLi43MDdhN2VmMDkwZWM3NjlmYzNhMjEwNjM4ODI1NTMyYzJlMDNjNTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oCkBAIC00OSw3
ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQm9vbGVh
blByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuY3BwCmluZGV4IDhjZTBiMTE4MWNiMTIzZDVhNGE0MzRjMjg2ZGViNzEy
OTYwZWJkYzkuLmZiNzhmYjE4MTNmMzcwZGYxNDg4NThlZjE4ODE4MmQ1YTZmNGNlYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApA
QCAtODUsNyArODUsNyBAQCB2b2lkIERhdGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBEYXRlUHJvdG90eXBlKiBkYXRlUHJvdG90eQogICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmxlbmd0aCwganNOdW1iZXIoNyksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsK
IH0KIAotYm9vbCBEYXRlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90
KQorYm9vbCBEYXRlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAm
c2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb25zdHJ1Y3Rvci5oCmluZGV4IDljNGZmYzQ2MWM4ZmIxMWQzMzlkZTdjNDFkMjZkNDBkOGM0
MzBmOGQuLmM3NzM0YjEwMjAyNmYyZjY4MGUyYjMyMGE4ZGU5ZTcwN2QwMmQ1NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCkBAIC01NSw3
ICs1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKICAgICAgICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggYTY4ZjQ4MzhiYjA2MjY1Yzk3YmMwNDY0MmRm
MWM5NDY3N2M4YTgwNy4uYzY4YjJkMjMzYTczYmNlNDRhNWQyNDMxYTRlNTE1OTlhZGQzZGM0NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAK
QEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIERhdGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogICAgIC8vIFRoZSBjb25zdHJ1Y3RvciB3
aWxsIGJlIGFkZGVkIGxhdGVyLCBhZnRlciBEYXRlQ29uc3RydWN0b3IgaGFzIGJlZW4gYnVpbHQu
CiB9CiAKLWJvb2wgRGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJv
dG90eXBlLmgKaW5kZXggNzIwNTI2MmQyOWI0ODc4YmJhZTA3NDQyYTI1ZTQ0YzRmZGU3MGE2OC4u
ZGRkNjU0YjdhMjhkMDdkYzk5ZGMzM2Y1YmU2MGZiOWU0ODlhY2Y3MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaApAQCAtNDAsNyArNDAsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHByb3RvdHlwZS0+ZmluaXNoQ3JlYXRpb24oZXhl
YywgZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgICAg
IH0KLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAppbmRleCA0MzlkOWE4MzE0
N2Y4ZjAxNGQ3NDZjZmY3ZDgzMmVlZmZhNGM1MmQzLi5hOGE5NTgxOGE4NDE5YWE0ZTJmNTYyOWEz
ZWVlMWNmMjQwYTQ0MTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JQcm90b3R5cGUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgRXJyb3JQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogICAgIHB1
dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBq
c05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKIH0KIAotYm9vbCBF
cnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIEVycm9y
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90
b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgK
aW5kZXggNjVmM2ZmZjVmNmUwZmQzNTE2NWQ1M2U5YmIzYTI1MTk1Y2MxMWY3OS4uZjYyZGQ1NTEz
OWZhNDE5MTFmYmNjNjI5MjlmNzdkNDMzMDg3ZjVlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBFcnJvckluc3RhbmNlOjpTdHJ1Y3R1cmVGbGFn
czsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwog
ICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNw
cAppbmRleCA5MGY5MTEwOTQ0ZTE0MTQ1MjEzZDNkMGU5ZTVkYzIxMzZlZGMzNmE4Li4xYTMyYWZk
ZDZlM2MyOTA1ZGIxZDMyNDhjZDNjOGNjOWM5YTRlMDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBpbmxp
bmUgYm9vbCBKU0FjdGl2YXRpb246OnN5bWJvbFRhYmxlUHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpTQWN0aXZh
dGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQWN0aXZhdGlvbjo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKaW5kZXggN2JlZDI5ZmQz
MGMwYjU2ZmMyMjdjZTM4ZjYyM2IwOWI5MWMxMzNjYi4uMjNiOTdkNmMyZGIyNDlkYTFhMzdhNjVk
MmQxZmY5YmI2NDc1ZDA3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
Y3RpdmF0aW9uLmgKQEAgLTYxLDcgKzYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
dmlydHVhbCBib29sIGlzQWN0aXZhdGlvbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
IAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggMjE3M2ZmMTZkODRhM2U1ZTk1YzBiNTRlYTY0Zjg0YWRh
MTUxYzQxNC4uZjlmNmM1MjAwZGZlMzQ1MDg1N2VjZDVmZTk1ZTM1NWVkZGEzNWJkMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTI0NSw3ICsyNDUsNyBA
QCBKU0FycmF5Ojp+SlNBcnJheSgpCiAgICAgZmFzdEZyZWUobV9zdG9yYWdlLT5tX2FsbG9jQmFz
ZSk7CiB9CiAKLWJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0FycmF5OjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
aSwgc2xvdCk7CiB9CkBAIC0yNTcsNyArMjU3LDcgQEAgYm9vbCBKU0FycmF5OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3AK
ICAgICAKICAgICBpZiAoaSA+PSBzdG9yYWdlLT5tX2xlbmd0aCkgewogICAgICAgICBpZiAoaSA+
IE1BWF9BUlJBWV9JTkRFWCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzT2JqZWN0LT5nZXRPd25Q
cm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7CisgICAg
ICAgICAgICByZXR1cm4gdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVj
LCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpLCBzbG90KTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIApAQCAtMjgwLDcgKzI4MCw3IEBAIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBQcm9wCiAg
ICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywg
SWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7CiB9CiAKLWJvb2wgSlNBcnJheTo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5LmgKaW5kZXggZGJmYzE3MTE0MjU4YTEzNzgyMTg0M2NiOTU3OGIzYTlj
ZGQxNmQzOC4uOWFkOTU0MGIxMmExMmFmNTVmMzU0ODEyODgxZWY2NGRlMDVhMzQ4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtOTQsOSArOTQsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQogCi0gICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHByb3RlY3Rl
ZCBhbmQgYWRkIHNldEl0ZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCb3VuZEZ1bmN0aW9uLmNwcAppbmRleCA3MWVkMzgwYTIzNjc5N2ZkNmU2ZWQ4NGMxMDZlZWJh
M2ZhZThmNTdiLi4wMjQ4N2Q4MzlhMzM5YWZmYTczOWEyZTUyNzYyYjBhZjE5MzU1MDc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAK
QEAgLTk2LDcgKzk2LDcgQEAgYm9vbCBKU0JvdW5kRnVuY3Rpb246Omhhc0luc3RhbmNlKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSkKICAgICByZXR1cm4gbV90YXJnZXRG
dW5jdGlvbi0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIHByb3RvKTsKIH0KIAotYm9vbCBKU0Jv
dW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0JvdW5k
RnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVu
Y3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5o
CmluZGV4IGNjNTE2OTM3NjFmYWM4OTRkMDkwM2MwYjFjZTI5NWZkMWY1OTBiYTMuLmI0NWUyZDli
YWI2NWE0MDgzMmE2ZjJmMDgxOTJjY2IyZDNiZmVjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCkBAIC0zOSw3ICszOSw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBKU0JvdW5kRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqLCBKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlvbiwgSlNWYWx1ZSBib3VuZFRoaXMs
IEpTVmFsdWUgYm91bmRBcmdzLCBpbnQsIGNvbnN0IElkZW50aWZpZXImKTsKIAotICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJh
eS5jcHAKaW5kZXggOGFiNDcyNmUzZWExZjVmOTEwMGYwYjQwNjIxZjMxNDc3YmQ2Mzk2YS4uNTE1
NzEwM2VkZmE1YjdmODA2MTQxZTI0ZTAyMDY2NTMwZWU1YjgzOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtNTQsNyArNTQsNyBAQCBTdHJ1
Y3R1cmUqIEpTQnl0ZUFycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBjbGFzc0luZm8pOwogfQogCi1ib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CkBAIC04Miw3ICs4Miw3IEBAIGJvb2wg
SlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotYm9vbCBKU0J5
dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggNDBmMGFhMWE3YjdhNGFlNmY1MzAyNjU0MmQx
Nzk0NWE2NTUxZGYxMC4uNGRmMzY2YjE4NWNkNzIyZjk2NGZhZDhhZDJkMzVkNWI0ODcxYTZkZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBAIC04OCw5
ICs4OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJv
dG90eXBlLCBjb25zdCBKU0M6OkNsYXNzSW5mbyogPSAmc19pbmZvKTsKIAotICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKaW5kZXggMGFjMzY0ZjgyY2E5ZTc2ZmZhYzRmYWJk
ODNiOGI1YjU0ZjUzMWRkZi4uNTQ2NTg4NDk0ZDhjMzAwNDBlZWJjNTg5MWNiZDcyOGQzMzg3MDQy
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC02OSw3ICs2
OSw3IEBAIENvbnN0cnVjdFR5cGUgSlNDZWxsOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmKQogICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlTm9uZTsKIH0KIAotYm9vbCBK
U0NlbGw6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNDZWxsOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRl
bnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpcywgZXhlYywgaWRlbnRpZmllciwgc2xvdCk7CiB9CkBAIC04Niw3ICs4Niw3IEBA
IGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSlND
ZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlm
aWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlk
ZW50aWZpZXIsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApp
bmRleCAwNDRmNjRmNThlYWE0OGUxY2YyYTA0ZjQ0MTlmYTdmNzNmNzRmMmIxLi4yNzgzMGE3MGFk
MWJiNTdjNGYwOTI1NTdhYTk4ODQ5MTJlZGExNWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuaApAQCAtMTM1LDkgKzEzNSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
cHJpdmF0ZToKICAgICAgICAgLy8gQmFzZSBpbXBsZW1lbnRhdGlvbjsgZm9yIG5vbi1vYmplY3Qg
Y2xhc3NlcyBpbXBsZW1lbnRzIGdldFByb3BlcnR5U2xvdC4KLSAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25l
ZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgCiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fc3RydWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAppbmRleCAzNGI4YjZkMmQwOWIyZDFiNTM1NTdjMGU2MGEyNTUyMzU5ZmQ2ZTgzLi5l
NzEyNGZlM2I4OGU4YWU3MWE2MjlkYTcxY2EyMjZhNzI1ZTlkNDFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIEpT
VmFsdWUgSlNGdW5jdGlvbjo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJh
c2UsIGNvbnN0IElkZW50aWZpZXImCiAgICAgcmV0dXJuIGpzTnVtYmVyKHRoaXNPYmotPmpzRXhl
Y3V0YWJsZSgpLT5wYXJhbWV0ZXJDb3VudCgpKTsKIH0KIAotYm9vbCBKU0Z1bmN0aW9uOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTI1OCw3ICsyNTgsNyBA
QCBib29sIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHBybwogICAgIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdDsKLSAgICAgICAgZ2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CisgICAgICAgIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKICAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgIH0KICAgICAKQEAgLTI5MSw3ICsy
OTEsNyBAQCB2b2lkIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydAogICAgIGlmICghaXNIb3N0RnVuY3Rpb24o
KSAmJiAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKSkgewogICAgICAgICAvLyBN
YWtlIHN1cmUgcHJvdG90eXBlIGhhcyBiZWVuIHJlaWZpZWQuCiAgICAgICAgIFByb3BlcnR5U2xv
dCBzbG90OwotICAgICAgICBnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgZXhlYy0+cHJvcGVydHlO
YW1lcygpLnByb3RvdHlwZSwgc2xvdCk7CisgICAgICAgIGdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgc2xvdCk7CiAKICAgICAg
ICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cyk7CiAg
ICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIpOwpA
QCAtMzE2LDcgKzMxNiw3IEBAIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hCiAgICAgICAgIC8vIE1h
a2Ugc3VyZSBwcm90b3R5cGUgaGFzIGJlZW4gcmVpZmllZCwgc3VjaCB0aGF0IGl0IGNhbiBvbmx5
IGJlIG92ZXJ3cml0dGVuCiAgICAgICAgIC8vIGZvbGxvd2luZyB0aGUgcnVsZXMgc2V0IG91dCBp
biBFQ01BLTI2MiA4LjEyLjkuCiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICB0
aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICAgICAgdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogICAgIH0KICAgICBpZiAodGhpc09iamVjdC0+anNFeGVjdXRhYmxl
KCktPmlzU3RyaWN0TW9kZSgpKSB7CiAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+
cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5oCmluZGV4IDdmNTE2ZjY4Njg3MTA4NTI1MWIwZWJmMDYxY2VjMWZhMmNk
NGUyZjguLmRlMjNmOWMyZmQwNjZhOTExNWVmNTk1Y2VlMjA3NGMzZDFhN2JjMjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTEzMSw3ICsxMzEsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUq
LCBOYXRpdmVFeGVjdXRhYmxlKiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7
CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRh
YmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
KyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgPSBFeGNsdWRlRG9udEVudW1Q
cm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcAppbmRleCAwZmU0MzZkYjcyY2QwNjQwYjM4NTgyMDVmYTQxYjk0MDNlOGY0MDMw
Li45MmRmZGMwYzIwZGRmYWFjOWI5NDA0M2Y2NjcyMjk1N2ExNmExY2Y3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC00MjMsNyAr
NDIzLDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6YWRkU3RhdGljR2xvYmFscyhHbG9iYWxQcm9w
ZXJ0eUluZm8qIGdsb2JhbHMsIGludCBjb3VudCkKICAgICB9CiB9CiAKLWJvb2wgSlNHbG9iYWxP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0dsb2JhbE9iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDEx
NWQ1Y2I2YmQ5NTQ4MzczYWFjZTgwMTM4YzhlYWYyNjNhM2E2NzguLmIwZmU0NzQ2OTc0YTdiZDc3
ZDc5OTk5MTExMDA0YjA1ZjdiNDEyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTgwLDcgKzE4MCw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0
b3ImKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmly
dHVhbCBib29sIGhhc093blByb3BlcnR5Rm9yV3JpdGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYpOwpAQCAtMzQyLDcgKzM0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGlubGluZSBi
b29sIEpTR2xvYmFsT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAgUHJvcGVy
dHlTbG90IHNsb3Q7Ci0gICAgICAgIGlmIChKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKEpTVmFyaWFibGVP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGJvb2wgc2xvdElzV3JpdGVhYmxl
OwogICAgICAgICByZXR1cm4gc3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90LCBzbG90
SXNXcml0ZWFibGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNOb3RBbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFu
T2JqZWN0LmNwcAppbmRleCAyYWY3NGZkYTFiMDZiOTI0ZTU2NjNjNTg3NmMxYjc2MTIzNTEzOGZh
Li45MDZhOWIwZTE3N2UyMmFjMzIyNmZhYWZkMWI5OWU2MGU4MDBlMTM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApAQCAtNDUsNyArNDUs
NyBAQCBKU1ZhbHVlIEpTTm90QW5PYmplY3Q6OmRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMs
IFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbgogICAgIHJldHVybiBqc051bWJlcigwKTsKIH0K
IAotYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29s
IEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90
KTsKIH0KQEAgLTU3LDcgKzU3LDcgQEAgYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWUKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLWJvb2wgSlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Citib29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFu
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgK
aW5kZXggOTM0YWE2YzFiMmVjNTM1NmEyOTI1ZTE5Yjk2ODEzMGExMmNlOTEyOC4uZDMyZjZiM2Iw
YzhkNzFmYmVhZTU3ZDZkNWIwMDM3NDViZDM3MzRhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNjgsOSArNjgsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdmlydHVhbCBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQ
cmVmZXJyZWRQcmltaXRpdmVUeXBlKSBjb25zdDsKIAogICAgICAgICAvLyBKU09iamVjdCBtZXRo
b2RzCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGQzZmMzNTk5MzFlMDE2OTEwODc1ZmM4ODljYmNm
YzI4ODVjM2NjM2UuLjU1YWNlOTBlZDM3MTk2MzQ4ZTgxZTQwNzM0M2I4YmRhMzFkODY0MWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC01MjMs
NyArNTIzLDcgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHko
U3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBVU3RyaW5nQnUKICAgICAgICAgICAgIHZhbHVlID0g
YXNBcnJheShtX29iamVjdC5nZXQoKSktPmdldEluZGV4KGluZGV4KTsKICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChtX29iamVjdC5nZXQoKSk7Ci0gICAgICAg
ICAgICBpZiAoIW1fb2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgaW5kZXgsIHNsb3Qp
KQorICAgICAgICAgICAgaWYgKCFtX29iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChl
eGVjLCBpbmRleCwgc2xvdCkpCiAgICAgICAgICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsK
ICAgICAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC01NDEsNyArNTQxLDcgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVy
OjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBVU3RyaW5nQnUK
ICAgICAgICAgLy8gR2V0IHRoZSB2YWx1ZS4KICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QobV9v
YmplY3QuZ2V0KCkpOwogICAgICAgICBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUgPSBtX3Byb3Bl
cnR5TmFtZXMtPnByb3BlcnR5TmFtZVZlY3RvcigpW2luZGV4XTsKLSAgICAgICAgaWYgKCFtX29i
amVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAg
ICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBKU1ZhbHVl
IHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCkBAIC01OTgsNyArNTk4LDcgQEAgY29uc3QgQ2xhc3NJbmZv
IEpTT05PYmplY3Q6OnNfaW5mbyA9IHsgIkpTT04iLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZv
LCAwLCBFeGUKIAogLy8gRUNNQSAxNS44CiAKLWJvb2wgSlNPTk9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTT05PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CkBAIC02OTMsNyArNjkzLDcgQEAgTkVWRVJf
SU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAg
ICAgICAgICAgICAgaW5WYWx1ZSA9IGFycmF5LT5nZXRJbmRleChpbmRleCk7CiAgICAgICAgICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAg
ICAgICAgICAgICAgICAgICBpZiAoYXJyYXktPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIGlu
ZGV4LCBzbG90KSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFycmF5LT5nZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKG1fZXhlYywgaW5kZXgsIHNsb3QpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgaW5WYWx1ZSA9IHNsb3QuZ2V0VmFsdWUobV9leGVjLCBpbmRleCk7CiAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBqc1VuZGVmaW5l
ZCgpOwpAQCAtNzU1LDcgKzc1NSw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2Fs
ayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAg
ICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QobV9leGVjLCBwcm9wZXJ0aWVz
W2luZGV4XSwgc2xvdCkpCisgICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChtX2V4ZWMsIHByb3BlcnRpZXNbaW5kZXhdLCBzbG90KSkKICAgICAgICAg
ICAgICAgICAgICAgaW5WYWx1ZSA9IHNsb3QuZ2V0VmFsdWUobV9leGVjLCBwcm9wZXJ0aWVzW2lu
ZGV4XSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBpblZhbHVl
ID0ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuaAppbmRleCAyOGQyODYyZjhkNGE1YzA4ZTgzNmQzNThiMTY3Y2NlZjM2NmNlMjViLi40ODdm
Y2YwZmUyZDcyODRlNGMxOTU3MTFjMTc1YzgyYzVjYWNkYWE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgSlNPTk9iamVjdChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IGFhY2VjNmQ0Mzc2
NzBlYTNmYTAxMDAzZDc4ZWEwNzMzZTQ5ZTBlNGQuLjVjNDQ1OGM3N2VmMzg4M2VkODE3ZjUxM2M1
ODZmYjA0YmI1ZjE2ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAKQEAgLTkzLDE0ICs5MywxNCBAQCBVU3RyaW5nIEpTT2JqZWN0OjpjbGFzc05hbWUoKSBj
b25zdAogICAgIHJldHVybiBpbmZvLT5jbGFzc05hbWU7CiB9CiAKLWJvb2wgSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihj
ZWxsKS0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJv
cGVydHlOYW1lKSwgc2xvdCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2Vs
bCktPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVj
LCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKIH0KIAogc3RhdGljIHZvaWQgdGhyb3dTZXR0ZXJFcnJv
cihFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yNzcsNyArMjc3LDcgQEAgYm9vbCBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHAKIGJvb2wgSlNPYmplY3Q6Omhhc093blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKSBjb25zdAogewogICAgIFByb3BlcnR5U2xvdCBz
bG90OwotICAgIHJldHVybiBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldE93blByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBjb25zdF9jYXN0
PEpTT2JqZWN0Kj4odGhpcyktPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCBmN2FiZjNlYzhlOTE0MjBhNjFkNjU3MjE3NzQ0ZjEzOWNi
ZjMzNTBhLi5mOGEzYTc1ZmMzNzU0YzJhYzgxYmNlMWY1NGJkNGE0ZTdmY2U4ZjRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEwMSw5ICsxMDEsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgYm9vbCBnZXRQ
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApA
QCAtNTIxLDcgKzUyMSw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6aW5saW5lR2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1BTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQorQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtNTM4LDcgKzUzOCw3IEBA
IEFMV0FZU19JTkxJTkUgYm9vbCBKU0NlbGw6OmZhc3RHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmCiB7CiAgICAgaWYgKCFzdHJ1Y3R1cmUoKS0+dHlwZUlu
Zm8oKS5vdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoKSkKICAgICAgICAgcmV0dXJuIGFzT2Jq
ZWN0KHRoaXMpLT5pbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAogLy8gRmFzdCBjYWxsIHRvIGdldCBhIHByb3BlcnR5IHdoZXJl
IHdlIG1heSBub3QgeWV0IGhhdmUgY29udmVydGVkIHRoZSBzdHJpbmcgdG8gYW4KQEAgLTU3Niw3
ICs1NzYsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TgogewogICAgIEpTT2JqZWN0KiBvYmpl
Y3QgPSB0aGlzOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChvYmplY3QtPmdldE93
blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAob2Jq
ZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBv
YmplY3QtPnByb3RvdHlwZSgpOwogICAgICAgICBpZiAoIXByb3RvdHlwZS5pc09iamVjdCgpKQpA
QCAtNzk3LDcgKzc5Nyw3IEBAIGlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90CiAgICAgfQogICAgIEpT
Q2VsbCogY2VsbCA9IGNvbnN0X2Nhc3Q8SlNDZWxsKj4oYXNDZWxsKCkpOwogICAgIHdoaWxlICh0
cnVlKSB7Ci0gICAgICAgIGlmIChjZWxsLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKGNlbGwtPmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiBzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0g
YXNPYmplY3QoY2VsbCktPnByb3RvdHlwZSgpOwogICAgICAgICBpZiAoIXByb3RvdHlwZS5pc09i
amVjdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRp
Y1Njb3BlT2JqZWN0LmNwcAppbmRleCA4ZDBmZGE5MDM3MzIyZGYxNzMwNjVkYzYxY2M5MTRlNTMw
MDdiZjAyLi4yMmU2YWZjZGRkNjg1YmExMjM1ZDhiZGM2MWU5ZGExZDIwZGVkYzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0
LmNwcApAQCAtOTEsNyArOTEsNyBAQCBib29sIEpTU3RhdGljU2NvcGVPYmplY3Q6OmlzRHluYW1p
Y1Njb3BlKGJvb2wmKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU1N0YXRp
Y1Njb3BlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNTdGF0
aWNTY29wZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Rh
dGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGlj
U2NvcGVPYmplY3QuaAppbmRleCBkYzI4Nzc5NWRkOWYxNjA0ZjZiNTFmMjQ2YjZjYTkyZWY5OGEx
ODA1Li5hOTBkZGQ1YzY5MWJlOTgwYzkxODYyMjZiOTYzZDBhN2E3OGJjOGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBA
IC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICAgICAgYm9vbCBpc0R5bmFtaWNT
Y29wZShib29sJiByZXF1aXJlc0R5bmFtaWNDaGVja3MpIGNvbnN0OwogICAgICAgICB2aXJ0dWFs
IEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCmluZGV4IGM3M2Y0YTJlZTJjODU3NWZiMGQw
NDg5YjhkNjM4ZTAwYWIxM2I1YjEuLjI3ODc2MzdhYTJkMWU5ZTY1NDIzZmE5YmYzMzk5ZmE0MDcy
NTEwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKQEAg
LTMxMyw3ICszMTMsNyBAQCBKU09iamVjdCogSlNTdHJpbmc6OnRvVGhpc09iamVjdChFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZ09iamVjdDo6Y3JlYXRlKGV4ZWMsIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgY29uc3RfY2FzdDxKU1N0cmluZyo+KHRoaXMpKTsK
IH0KIAotYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29s
IEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQpAQCAtMzMzLDcgKzMzMyw3IEBAIGJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllCiAgICAgSlNP
YmplY3QqIG9iamVjdDsKICAgICBmb3IgKEpTVmFsdWUgcHJvdG90eXBlID0gZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5zdHJpbmdQcm90b3R5cGUoKTsgIXByb3RvdHlwZS5pc051bGwoKTsg
cHJvdG90eXBlID0gb2JqZWN0LT5wcm90b3R5cGUoKSkgewogICAgICAgICBvYmplY3QgPSBhc09i
amVjdChwcm90b3R5cGUpOwotICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3Qo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CkBAIC0zNjcsNyAr
MzY3LDcgQEAgYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTU3RyaW5nOjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggM2VlZDg5M2Q3OGZhMTgxNTE3ZDJmOTcwMWEzYTUz
N2FlZTZjODEwMC4uNDY5NjUyYjAxOGM1MjBmMjMzNjk5MzBmMTY1MDZjOGVkNzJhOTkwOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC01MDYsOSArNTA2LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVj
dChFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgICAgICAvLyBBY3R1YWxseSBnZXRQcm9wZXJ0eVNs
b3QsIG5vdCBnZXRPd25Qcm9wZXJ0eVNsb3QgKHNlZSBKU0NlbGwpLgotICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9v
a3VwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAppbmRleCA3ODJk
YzBmYmM3MGM4M2E5MmFlMTBmMTA0OWFmZmRjMDMyNjk4ODFjLi5hNmQ0OGJkOGRjMGU5ZjQwNDU4
MzAwOTA4MGQwOGZlNWMzMDUzODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Mb29rdXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29r
dXAuaApAQCAtMjEzLDcgKzIxMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBI
YXNoRW50cnkqIGVudHJ5ID0gdGFibGUtPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAKICAg
ICAgICAgaWYgKCFlbnRyeSkgLy8gbm90IGZvdW5kLCBmb3J3YXJkIHRvIHBhcmVudAotICAgICAg
ICAgICAgcmV0dXJuIHRoaXNPYmotPlBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgICAgICByZXR1cm4gUGFyZW50SW1wOjpnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAg
ICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKQogICAgICAgICAgICAgc2V0
VXBTdGF0aWNGdW5jdGlvblNsb3QoZXhlYywgZW50cnksIHRoaXNPYmosIHByb3BlcnR5TmFtZSwg
c2xvdCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgdGVtcGxhdGUg
PGNsYXNzIFBhcmVudEltcD4KICAgICBpbmxpbmUgYm9vbCBnZXRTdGF0aWNGdW5jdGlvblNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBIYXNoVGFibGUqIHRhYmxlLCBKU09iamVjdCogdGhpc09i
aiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiAg
ICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8UGFyZW50SW1wKj4odGhpc09iaiktPlBhcmVu
dEltcDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAg
ICAgIGlmIChQYXJlbnRJbXA6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgY29u
c3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwpA
QCAtMjkxLDcgKzI5MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBIYXNoRW50
cnkqIGVudHJ5ID0gdGFibGUtPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAKICAgICAgICAg
aWYgKCFlbnRyeSkgLy8gbm90IGZvdW5kLCBmb3J3YXJkIHRvIHBhcmVudAotICAgICAgICAgICAg
cmV0dXJuIHRoaXNPYmotPlBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgICAgICAgICByZXR1cm4gUGFyZW50SW1wOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpc09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAgICAgICBB
U1NFUlQoIShlbnRyeS0+YXR0cmlidXRlcygpICYgRnVuY3Rpb24pKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAppbmRleCA3OWZlZWU3ZTE5ZWRlMmZm
MTAzYzA2MDNmZDRhOTdlZmEwMGViNmEzLi42MjRmNGRkYmJkM2U5MDcwNzY4ZWMxZmU5M2Q5MTMw
NzljNWVjZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRo
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24o
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgSWRlbnRpZmllcihleGVj
LCAiU1FSVDIiKSwganNOdW1iZXIoc3FydCgyLjApKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwg
UmVhZE9ubHkpOwogfQogCi1ib29sIE1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
ICZzbG90KQorYm9vbCBNYXRoT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qg
JnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWF0aE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9i
amVjdC5oCmluZGV4IDJlMmQ3MmRlYmY0ODBkN2NmZTI3NDA0ZDc2MzliNDljZTVkNDg0MGIuLjI0
MjRhNzFlNWVlOWUxYjc0NTQwOTcxZjhhN2RmODI1YmIxNzUwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9i
amVjdCk7CiAgICAgICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgICAgICB9Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMWM2ZTQ1MzNjZjEwNmM0YWU1
ZmIwMWM1ZDEwZDZiYzExNThlYjAwNS4uYzg5MzU0YzNiZTVmMjgyNTUyMGI3OTEyZjg5YmEyMzFl
ZmJiM2NmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
ckNvbnN0cnVjdG9yLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIE51bWJlckNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIE51bWJlclByb3RvdHlwZSogbnVtYmVy
UAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVu
dW0gfCBEb250RGVsZXRlKTsKIH0KIAotYm9vbCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIE51bWJlckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5
U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggY2I4NjZmMDU2
NDllNmFhZTY2NjJhMTdkMWM1OTc2NzI2ZjdkMDE2Zi4uMTkxZjRhYTI5MTUwOThhNWFmZTdjN2Y0
ZGUwMDQwNWI1MDc0YjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogICAgICAgICB9CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIEpTVmFsdWUgZ2V0VmFsdWVQcm9wZXJ0
eShFeGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggZjZmMDE2ZTRlM2U1N2YyMjBl
NzhmMjVlY2FlODEyZjQ3ZDJkYTBjOS4uNGZiMjliNTVkNmQ2ZTBmNjVkMGUwYTJhYzQ5OWZlNTA0
NTYwNTZiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQ
cm90b3R5cGUuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgTnVtYmVyUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1ib29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKaW5kZXggMWE1Njg2YWU1OTBhNWMw
NDMwYTIzNWE5NTA1YjI5ZTJkM2JjY2FhOS4uYmViYjVlNzNhMjE0Nzc2ODA1OWY0YmI4ZTM3NDAz
ZTljMTliNWJmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2
YXRlOgogICAgICAgICBOdW1iZXJQcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMmIw
NTliNTk2MjNjYTlkYTcxMjE4MzVhNTc0N2I2OWIzMTVmYWRkMC4uZmQ4YWUzZTczNmFhYjBlOGI1
Yjg2ZGYwYjkxNmY0ZTBjYTc1ZjIzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIE9i
amVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIE9iamVjdFBy
b3RvdHlwZSogb2JqZWN0UAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmds
b2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJl
YWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKIH0KIAotYm9vbCBPYmplY3RDb25zdHJ1
Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIE9iamVjdENvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJu
IGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgK
aW5kZXggNWNkMjhhNjVhY2U1NzJhY2VhYjQwMDBjNDIxNWY2ZTZhYmZkZGZmMi4uY2Q2MjRjM2Zi
NjgzZGQ4MzNiZGM0ZWQwYTE2NmI0YmUwYTBjMzljYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC0zOCw3ICszOCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogICAgICAgICB9
CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDk5YTViYjIy
OGJmMjdlYzFhZDQxYTlkYjQ0NGUyM2U3NWY4NGY1N2EuLmVhN2M4OWIxNTM4MmY0MjlmZGIzNGM0
ZjM1YzRhMzI3NzI5NGJmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIE9iamVjdFByb3Rv
dHlwZTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZQogICAgIH0KIH0KIAotYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQorYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBPYmplY3RQcm90b3R5cGU6
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQKICAgICByZXR1cm4gSlNOb25GaW5hbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgT2JqZWN0UHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgT2JqZWN0UHJvdG90eXBl
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCBl
MzkwMDIyZjY3Yzc1NDIwNWJlMzIxZWY3Y2IwOWQ0NWZkNTVlMTQ4Li43NmEzM2M0NzliOTY2NWJi
MTM3MDQ5YjNlMmM4YjMxZTk0ZWRkNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtNTMsOSArNTMsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChK
U0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcAppbmRleCBkM2U0NDhmZTZjMmFkNWEwODA2YjJiY2EyMDMxYTFmMTc1Nzg0ZjcwLi5lYTk5
M2RiZDI0MzI1OWY1MmY5MzQyODJhYzQwMmVjMjYwNjQ5NjZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yMDIsNyAr
MjAyLDcgQEAgSlNWYWx1ZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0UmlnaHRDb250ZXh0KEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsKIH0KICAg
ICAKLWJvb2wgUmVnRXhwQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQorYm9vbCBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDIyNTZjYjA5YjI2ZjgzYmJlNjQ0NmFkNmQxMzky
ZWE4NmU5MzU2MWYuLjc0OTI3ZjA4YjkyZGI1MWNiMDI2YWZjMTBjNDFmM2Q1ZDRlYzI5MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
aApAQCAtNzQsNyArNzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lk
IHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAppbmRleCBlNzVkNjIxOTE1ZDI0
YTVlODZiN2E3NTY0YTkyNWEyNmYwNjkwMTFkLi4xMmJkMDI2ZWYzZDkxNDhjNDEwOWE1YWYwNzVh
Y2QyNmYxMWE3MzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBNYXRjaGVzQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBNYXRjaGVzQXJyYXkuaApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBSZWdFeHBDb25zdHJ1Y3Rv
clByaXZhdGUqIGRhdGEpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiAgICAgICAgIH0KQEAgLTU2LDcgKzU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICByZXR1cm4gSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggNjYwYjJl
MzBhNTRiOTFjOTkwY2FkYWI0YWEyZjY0MzgzNWMxOTU4Yy4uODA4ZWQ3Zjk3MDU4YmMwODJmY2Q1
ZDM4NWMzOGM0N2U2MmNmMDJmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVnRXhwT2JqZWN0Ojp2
aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAg
IHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5kLT5sYXN0SW5kZXgpOwogfQogCi1ib29sIFJl
Z0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFJlZ0V4cE9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggYzBm
ODNkNTQyY2JkZWJkOWFlZGJiZDg3NWMwMWJiZmU4YjIwMzIzOS4uYTNmNzdjNWI5MzhiMjhkMzky
ZGIyMmU5NDYwY2NiNjdiNDVkMDFkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwT2JqZWN0LmgKQEAgLTY1LDcgKzY1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIEpTVmFsdWUgdGVzdChFeGVjU3RhdGUqKTsKICAgICAgICAgSlNWYWx1ZSBleGVjKEV4ZWNT
dGF0ZSopOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
UHJvdG90eXBlLmNwcAppbmRleCAzZTNhMTY5ZmE5YjA2MmNkYzJlNDI5N2Y1Njk2MDlhZDIxZjNh
YzQxLi44MzA0ZTYyZTE4YzBkZTdlNjk0N2MxMWVkODg5NjllNGJmMGMwOGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTY3
LDcgKzY3LDcgQEAgUmVnRXhwUHJvdG90eXBlOjpSZWdFeHBQcm90b3R5cGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3QKIHsKIH0KIAotYm9vbCBSZWdFeHBQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQorYm9vbCBSZWdFeHBQcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmlu
ZGV4IGNjODQwM2E3NWI0YmYzYjkyZGU1YTg0YWIyM2NhODJhMTYyNDIxM2YuLjhjOTJiMjJlNDQx
ODdiYzBlZDI0YTU3OWI2MTNkNzZlNWE3OTg0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBSZWdFeHBPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAg
ICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0
cnVjdG9yLmNwcAppbmRleCA1ZGUzNzUxYmM5MDY0MjkwMjY4ZGNmOWI4YzZlNWFkMmNhNmNjNWNi
Li45NjZmODhhOWZiZDFjNmQzNjRhZWRiMzE5NzY1NTBkZjg0Nzc1ODIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC01
OSw3ICs1OSw3IEBAIHZvaWQgU3RyaW5nQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgU3RyaW5nUHJvdG90eXBlKiBzdHJpbmdQCiAgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogfQog
Ci1ib29sIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkK
K2Jvb2wgU3RyaW5nQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAm
c2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCBmZWFiMTg4OTg2ZjMyZDRmMGFlMzA3Njg0Y2U0NWQ5
NGExYzk1Zjg5Li41ODRkYjVjNjM1ODhhMWNjYjRkMTEzNzgwNjliNWY0OTUxM2QzZmU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgK
QEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDb25zdHJ1
Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwogICAgICAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXggNmQ1NDhjZDZmMWFmNGUy
YzZkZGU5YWY2ZjRmY2ZlODY3NzIyZTdhMS4uMGU5Y2Q3ZGMzNWZlMTA3NjA4ZDY0NDgxZjUyYjlk
MmRmZjA3YTczMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHZvaWQgU3RyaW5nT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTU3RyaW5nKiBzdHJpbmcpCiAgICAgc2V0
SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBzdHJpbmcpOwogfQogCi1ib29sIFN0cmluZ09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFN0cmluZ09iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KQEAgLTU0LDcg
KzU0LDcgQEAgYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnQKICAgICByZXR1cm4gSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
fQogICAgIAotYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBT
dHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IDg3MmEy
YzEzM2I2NmE2ZDIxN2FjOWM5YmU1NjQ5ZjgyZTVjYzExOGIuLmU2YjM3YmMwODllM2YyYzEzMGQ1
ODM0NDBhMmNkZDlhOTI3YmE2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5oCkBAIC00Niw5ICs0Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB9CiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU0ds
b2JhbE9iamVjdCosIEpTU3RyaW5nKik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmlu
ZGV4IDg4ZmIyZTkyMWFlN2RmYTNjMDNhYzgwNmUzMzI5N2UzNGJkMmVmMWUuLmU4ZjRmZDNiNGYz
ZDJhMTIzYTQ3NTZhZTVjYWNkNzgzNDZlNjc5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZv
aWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiwgSlNTdHJpbmcqCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigw
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCi1ib29sIFN0cmluZ1By
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIFN0cmluZ1Byb3Rv
dHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKaW5k
ZXggYzg5YTg5YmE5NTJkOTZmODVmYjkxYTcwYTQ5MmY4ZDdmMTA4ZGEyMS4uNDcxMGE1YzA4Mzhl
NzQ1MDQzMGYxMzc0OWI1YjNlYTE4YmQxMDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IGNmMmNhMzQ2NDE3NjU2
M2E3MjJkMmYyYWFkMjE5YzE1N2YxMDZlMWYuLmE2Zjg5YTFhNDljNDA4MTVmNDUxZWZiNzc2M2Zm
YTE4YTc1ZTk4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDExLTEwLTE0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVuYW1lIGdldE93blByb3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgx
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFt
ZWQgdGhlIHZpcnR1YWwgdmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbAorICAgICAgICBpbiBwcmVwYXJhdGlvbiBmb3Igd2hlbiB3ZSBhZGQg
dGhlIHN0YXRpYyBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gdGhlIE1ldGhvZFRhYmxlIAorICAgICAg
ICBpbiBDbGFzc0luZm8uCisKKyAgICAgICAgQWxzbyBhZGRlZCBhIGZldyBzdGF0aWMgZ2V0T3du
UHJvcGVydHlTbG90IGZ1bmN0aW9ucyB3aGVyZSB0aGV5IGhhZCBiZWVuIG92ZXJsb29rZWQgCisg
ICAgICAgIGJlZm9yZSAoZXNwZWNpYWxseSBpbiBDb2RlR2VuZXJhdG9ySlMucG0pLgorCisgICAg
ICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisKIDIwMTEt
MTAtMTMgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBEZS12aXJ0dWFsaXplZCBKU0NlbGw6OnRvTnVtYmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNl
ck9iamVjdEltcC5jcHAKaW5kZXggNTU1NzBmMGI2ZDVkZjVmYTQyN2Q5MzE0YzA5NzQ0Y2ZhNjQ2
NjBhMC4uNjE4Zjk4NGFhMjhhN2Y0ZTViYjIxMDBjZjdjMmUxNmI4NzQxNTczYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMTIzLDcgKzEyMyw3IEBAIEpTVmFs
dWUgVXNlck9iamVjdEltcDo6dXNlck9iamVjdEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIHNs
b3RCYXNlLCBjb25zdCBJZGVuCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBVc2VyT2Jq
ZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgVXNlck9iamVjdElt
cDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDc5MDA3MWJmYTgzYTg4MjY4NGVk
ZTVjM2YxN2ZjNDJhOGExYmQ5N2MuLjNkMzc5NTZlYWNkYWNjNGM3NzE3NDUxYzkxZmQ4MzIwYTUw
ODgwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaApAQCAtNTQsNyArNTQs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVE
b250RW51bVByb3BlcnRpZXMpOwogCiAgICAgdmlydHVhbCBKU1ZhbHVlIGNhbGxBc0Z1bmN0aW9u
KEV4ZWNTdGF0ZSAqZXhlYyk7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZp
ZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjk2
MWU5ZDQwOTRkYTE1NmMyZGYyOTI4MjI4ZjZjMTIwODVmNGVmMC4uY2M2MGU3ZDI3ZTE5YmQ5OGMy
YzA0NDM1MWE2MDYxMTUzZDhhNDRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEx
LTEwLTE0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVuYW1lIGdldE93blByb3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgxMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4KKworICAgICAgICBSZW5hbWVkIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2YgZ2V0T3duUHJv
cGVydHlTbG90IHRvIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKKyAgICAgICAgaW4gcHJlcGFy
YXRpb24gZm9yIHdoZW4gd2UgYWRkIHRoZSBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IHRvIHRo
ZSBNZXRob2RUYWJsZSAKKyAgICAgICAgaW4gQ2xhc3NJbmZvLgorCisgICAgICAgIEFsc28gYWRk
ZWQgYSBmZXcgc3RhdGljIGdldE93blByb3BlcnR5U2xvdCBmdW5jdGlvbnMgd2hlcmUgdGhleSBo
YWQgYmVlbiBvdmVybG9va2VkIAorICAgICAgICBiZWZvcmUgKGVzcGVjaWFsbHkgaW4gQ29kZUdl
bmVyYXRvckpTLnBtKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
RE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlhbG9n
SGFuZGxlcjo6cmV0dXJuVmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93
U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNXb3JrZXJDb250ZXh0OjpnZXRPd25Qcm9wZXJ0eVNsb3REZWxl
Z2F0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6Z2V0U3BhcnNlSW5kZXgpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpnZXRQcm9wZXJ0eSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUdl
dE93blByb3BlcnR5U2xvdEJvZHkpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAg
ICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
RGVjbGFyYXRpb24pOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24pOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRl
cmZhY2U6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0SW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Q
cm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rv
cjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RP
YmpDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RPYmpQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Q
cm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwOgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6UXRJbnN0YW5jZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAg
KiBicmlkZ2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1
bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKEpT
Qzo6QmluZGluZ3M6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmg6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6Omdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5
Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6
UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbCk6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDEx
LTEwLTEzICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBNaWNyb2Rh
dGE6IEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIGRvY3VtZW50LmdldEl0ZW1zKCkgbWV0aG9kLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzMDEyZTRkMzBjMDcyNGMyNzIxYWQyZWY2NDM3MzU3ZWY4
ODUzNTNjLi5hYzIzYzQyNzhhNjU5MzA5ZGE0OGE1OGFiYWVlMzdkNDc3MzM0YWM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTY4MywxOCArMTY4MywyMCBAQCBfX1pON1dlYkNvcmU1RnJhbWUy
NnNlbmRPcmllbnRhdGlvbkNoYW5nZUV2ZW50RWkKICNpZiBVU0UoUExVR0lOX0hPU1RfUFJPQ0VT
UykKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMTFnZXRDYWxsRGF0YUVQTlNfNkpTQ2VsbEVSTlNf
OENhbGxEYXRhRQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxNGZpbmlzaENyZWF0aW9uRVJOU18x
MkpTR2xvYmFsRGF0YUVSS05TXzEwSWRlbnRpZmllckUKLV9fWk4zSlNDMTNSdW50aW1lTWV0aG9k
MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5T
XzEyUHJvcGVydHlTbG90RQorX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxOGdldE93blByb3BlcnR5
U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQ
cm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDI0Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVz
Y3JpcHRvckUKK19fWk4zSlNDMTNSdW50aW1lTWV0aG9kMjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUK
IF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kNnNfaW5mb0UKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9k
QzJFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFUk4zV1RGNlZlY3RvcklQTlNf
OEJpbmRpbmdzNk1ldGhvZEVMbTBFRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0RDFF
dgogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMWdldENhbGxEYXRhRVBOU182SlND
ZWxsRVJOU184Q2FsbERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0ZGVs
ZXRlUHJvcGVydHlFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzhC
aW5kaW5nczEzUnVudGltZU9iamVjdDE0ZmluaXNoQ3JlYXRpb25FUE5TXzE0SlNHbG9iYWxPYmpl
Y3RFCi1fX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKK19f
Wk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZK
U0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90
RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNF
UE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1v
ZGVFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDIzZ2V0Q29uc3RydWN0RGF0YVZp
cnR1YWxFUk5TXzEzQ29uc3RydWN0RGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2Jq
ZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50
aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQorX19aTjNKU0M4QmluZGluZ3MxM1J1bnRp
bWVPYmplY3QyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRp
bWVPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVl
RVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0
NnNfaW5mb0UKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0QzJFUE5TXzlFeGVjU3Rh
dGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFTjNXVEYxMFBhc3NSZWZQdHJJ
TlMwXzhJbnN0YW5jZUVFRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dDdXN0b20uY3BwCmluZGV4IDA0YjViOTc2NTI3YTRmZDE5NWI0NWFiMjg0OTU2NGVhYzg1
ZDJlNjguLjNkZjBlZDYyYWVlZjlkODMyZGY3NjVjYjMwZDdkNzM2YjNhZmE3ZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTEy
MSw4ICsxMjEsMTQgQEAgc3RhdGljIEpTVmFsdWUgbmFtZWRJdGVtR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmkKICAgICByZXR1cm4gdG9KUyhl
eGVjLCB0aGlzT2JqLCBjb2xsZWN0aW9uLmdldCgpKTsKIH0KIAotYm9vbCBKU0RPTVdpbmRvdzo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTRE9NV2luZG93OjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTRE9N
V2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorewor
ICAgIEpTRE9NV2luZG93KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cqPihj
ZWxsKTsKICAgICAvLyBXaGVuIGFjY2Vzc2luZyBhIFdpbmRvdyBjcm9zcy1kb21haW4sIGZ1bmN0
aW9ucyBhcmUgYWx3YXlzIHRoZSBuYXRpdmUgYnVpbHQtaW4gb25lcywgYW5kIHRoZXkKICAgICAv
LyBhcmUgbm90IGFmZmVjdGVkIGJ5IHByb3BlcnRpZXMgY2hhbmdlZCBvbiB0aGUgV2luZG93IG9y
IGFueXRoaW5nIGluIGl0cyBwcm90b3R5cGUgY2hhaW4uCiAgICAgLy8gVGhpcyBpcyBjb25zaXN0
ZW50IHdpdGggdGhlIGJlaGF2aW9yIG9mIEZpcmVmb3guCkBAIC0xMzIsMTcgKzEzOCwxNyBAQCBi
b29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgIC8vIFdlIGRvbid0IHdhbnQgYW55IHByb3BlcnRp
ZXMgb3RoZXIgdGhhbiAiY2xvc2UiIGFuZCAiY2xvc2VkIiBvbiBhIGZyYW1lbGVzcyB3aW5kb3cg
KGkuZS4gb25lIHdob3NlIHBhZ2UgZ290IGNsb3NlZCwKICAgICAvLyBvciB3aG9zZSBpZnJhbWUg
Z290IHJlbW92ZWQpLgogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgZnVsbHkgbWF0Y2ggRmly
ZWZveCwgd2hpY2ggYWxsb3dzIGF0IGxlYXN0IHRvU3RyaW5nIGluIGFkZGl0aW9uIHRvIHRob3Nl
LgotICAgIGlmICghaW1wbCgpLT5mcmFtZSgpKSB7CisgICAgaWYgKCF0aGlzT2JqZWN0LT5pbXBs
KCktPmZyYW1lKCkpIHsKICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGlzIHNhZmUgZm9y
IGNyb3NzLWRvbWFpbiBhbmQgc2FtZSBkb21haW4gdXNlLgogICAgICAgICAvLyBJdCBpZ25vcmVz
IGFueSBjdXN0b20gcHJvcGVydGllcyB0aGF0IG1pZ2h0IGJlIHNldCBvbiB0aGUgRE9NV2luZG93
IChpbmNsdWRpbmcgYSBjdXN0b20gcHJvdG90eXBlKS4KICAgICAgICAgZW50cnkgPSBzX2luZm8u
cHJvcEhhc2hUYWJsZShleGVjKS0+ZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAg
aWYgKGVudHJ5ICYmICEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKSAmJiBlbnRyeS0+
cHJvcGVydHlHZXR0ZXIoKSA9PSBqc0RPTVdpbmRvd0Nsb3NlZCkgewotICAgICAgICAgICAgc2xv
dC5zZXRDdXN0b20odGhpcywgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOworICAgICAgICAgICAg
c2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgZW50cnkgPSBKU0RPTVdp
bmRvd1Byb3RvdHlwZTo6c19pbmZvLnByb3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgIGlmIChlbnRyeSAmJiAoZW50cnktPmF0dHJpYnV0ZXMoKSAm
IEZ1bmN0aW9uKSAmJiBlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1
bmN0aW9uQ2xvc2UpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG5vbkNhY2hp
bmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2Us
IDA+KTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5vbkNhY2hpbmdT
dGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2UsIDA+
KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKQEAgLTE1NiwxMSArMTYy
LDExIEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgLy8gYmVjYXVzZSB3ZSBhbHdheXMg
YWxsb3cgYWNjZXNzIHRvIHNvbWUgZnVuY3Rpb24sIGp1c3QgZGlmZmVyZW50IG9uZXMgZGVwZW5k
aW5nIHdoZXRoZXIgYWNjZXNzCiAgICAgLy8gaXMgYWxsb3dlZC4KICAgICBTdHJpbmcgZXJyb3JN
ZXNzYWdlOwotICAgIGJvb2wgYWxsb3dzQWNjZXNzID0gYWxsb3dzQWNjZXNzRnJvbShleGVjLCBl
cnJvck1lc3NhZ2UpOworICAgIGJvb2wgYWxsb3dzQWNjZXNzID0gdGhpc09iamVjdC0+YWxsb3dz
QWNjZXNzRnJvbShleGVjLCBlcnJvck1lc3NhZ2UpOwogCiAgICAgLy8gTG9vayBmb3Igb3ZlcnJp
ZGVzIGJlZm9yZSBsb29raW5nIGF0IGFueSBvZiBvdXIgb3duIHByb3BlcnRpZXMsIGJ1dCBpZ25v
cmUgb3ZlcnJpZGVzIGNvbXBsZXRlbHkKICAgICAvLyBpZiB0aGlzIGlzIGNyb3NzLWRvbWFpbiBh
Y2Nlc3MuCi0gICAgaWYgKGFsbG93c0FjY2VzcyAmJiBKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgaWYgKGFsbG93c0FjY2Vz
cyAmJiBKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gV2Ug
bmVlZCB0aGlzIGNvZGUgaGVyZSBiZWNhdXNlIG90aGVyd2lzZSBKU0RPTVdpbmRvd0Jhc2Ugd2ls
bCBzdG9wIHRoZSBzZWFyY2ggYmVmb3JlIHdlIGV2ZW4gZ2V0IHRvIHRoZQpAQCAtMTcyLDI2ICsx
NzgsMjYgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAgICAgICAgaWYgKGVudHJ5LT5hdHRy
aWJ1dGVzKCkgJiBGdW5jdGlvbikgewogICAgICAgICAgICAgaWYgKGVudHJ5LT5mdW5jdGlvbigp
ID09IGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25CbHVyKSB7CiAgICAgICAgICAgICAgICAg
aWYgKCFhbGxvd3NBY2Nlc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20o
dGhpcywgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93UHJvdG90eXBl
RnVuY3Rpb25CbHVyLCAwPik7CisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRo
aXNPYmplY3QsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3Rv
dHlwZUZ1bmN0aW9uQmx1ciwgMD4pOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5LT5mdW5jdGlv
bigpID09IGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25DbG9zZSkgewogICAgICAgICAgICAg
ICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKHRoaXMsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3Rv
dHlwZUZ1bmN0aW9uQ2xvc2UsIDA+KTsKKyAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0
b20odGhpc09iamVjdCwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93
UHJvdG90eXBlRnVuY3Rpb25DbG9zZSwgMD4pOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5LT5m
dW5jdGlvbigpID09IGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25Gb2N1cykgewogICAgICAg
ICAgICAgICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3Qu
c2V0Q3VzdG9tKHRoaXMsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRv
d1Byb3RvdHlwZUZ1bmN0aW9uRm9jdXMsIDA+KTsKKyAgICAgICAgICAgICAgICAgICAgc2xvdC5z
ZXRDdXN0b20odGhpc09iamVjdCwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9N
V2luZG93UHJvdG90eXBlRnVuY3Rpb25Gb2N1cywgMD4pOwogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGVu
dHJ5LT5mdW5jdGlvbigpID09IGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2Fn
ZSkgewogICAgICAgICAgICAgICAgIGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRl
cjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIDI+KTsKKyAgICAgICAg
ICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbm9uQ2FjaGluZ1N0YXRpY0Z1
bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSwgMj4p
OwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5LT5mdW5jdGlvbigpID09IGpzRE9NV2luZG93UHJv
dG90eXBlRnVuY3Rpb25TaG93TW9kYWxEaWFsb2cpIHsKLSAgICAgICAgICAgICAgICBpZiAoIURP
TVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKGltcGwoKS0+ZnJhbWUoKSkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIURPTVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKHRoaXNPYmplY3QtPmlt
cGwoKS0+ZnJhbWUoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQo
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQpA
QCAtMjAxLDcgKzIwNyw3IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgICAgIC8vIEFs
bG93IGFjY2VzcyB0byB0b1N0cmluZygpIGNyb3NzLWRvbWFpbiwgYnV0IGFsd2F5cyBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLgogICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS50b1N0cmluZykgewogICAgICAgICAgICAgaWYgKCFhbGxvd3NBY2Nlc3Mp
IHsKLSAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBvYmplY3RUb1N0cmluZ0Z1
bmN0aW9uR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0
LCBvYmplY3RUb1N0cmluZ0Z1bmN0aW9uR2V0dGVyKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjA5LDcgKzIxNSw3IEBAIGJvb2wg
SlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5CiAKICAgICBlbnRyeSA9IEpTRE9NV2luZG93OjpzX2luZm8ucHJv
cEhhc2hUYWJsZShleGVjKS0+ZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICBpZiAoZW50
cnkpIHsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgZW50cnktPnByb3BlcnR5R2V0dGVy
KCkpOworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBlbnRyeS0+cHJvcGVydHlH
ZXR0ZXIoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjE4LDE4ICsyMjQs
MTggQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAgICAvLyBuYW1pbmcgZnJhbWVzIHRoaW5n
cyB0aGF0IGNvbmZsaWN0IHdpdGggd2luZG93IHByb3BlcnRpZXMgdGhhdAogICAgIC8vIGFyZSBp
biBNb3ogYnV0IG5vdCBJRS4gU2luY2Ugd2UgaGF2ZSBzb21lIG9mIHRoZXNlLCB3ZSBoYXZlIHRv
IGRvCiAgICAgLy8gaXQgdGhlIE1veiB3YXkuCi0gICAgaWYgKGltcGwoKS0+ZnJhbWUoKS0+dHJl
ZSgpLT5jaGlsZChpZGVudGlmaWVyVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpIHsKLSAg
ICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgY2hpbGRGcmFtZUdldHRlcik7CisgICAgaWYgKHRo
aXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGlsZChpZGVudGlmaWVyVG9BdG9t
aWNTdHJpbmcocHJvcGVydHlOYW1lKSkpIHsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09i
amVjdCwgY2hpbGRGcmFtZUdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAog
ICAgIC8vIERvIHByb3RvdHlwZSBsb29rdXAgZWFybHkgc28gdGhhdCBmdW5jdGlvbnMgYW5kIGF0
dHJpYnV0ZXMgaW4gdGhlIHByb3RvdHlwZSBjYW4gaGF2ZQogICAgIC8vIHByZWNlZGVuY2Ugb3Zl
ciB0aGUgaW5kZXggYW5kIG5hbWUgZ2V0dGVycy4gIAotICAgIEpTVmFsdWUgcHJvdG8gPSBwcm90
b3R5cGUoKTsKKyAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+cHJvdG90eXBlKCk7CiAg
ICAgaWYgKHByb3RvLmlzT2JqZWN0KCkpIHsKICAgICAgICAgaWYgKGFzT2JqZWN0KHByb3RvKS0+
Z2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAg
IGlmICghYWxsb3dzQWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRFcnJvck1lc3NhZ2Uo
ZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5wcmludEVycm9yTWVz
c2FnZShlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICAgICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI0MiwyOCArMjQ4
LDI4IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgLy8gYWxsb3cgd2luZG93WzFdIG9y
IHBhcmVudFsxXSBldGMuICgjNTY5ODMpCiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBpID0g
cHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChvayk7Ci0gICAgaWYgKG9rICYmIGkgPCBpbXBsKCkt
PmZyYW1lKCktPnRyZWUoKS0+Y2hpbGRDb3VudCgpKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9t
SW5kZXgodGhpcywgaSwgaW5kZXhHZXR0ZXIpOworICAgIGlmIChvayAmJiBpIDwgdGhpc09iamVj
dC0+aW1wbCgpLT5mcmFtZSgpLT50cmVlKCktPmNoaWxkQ291bnQoKSkgeworICAgICAgICBzbG90
LnNldEN1c3RvbUluZGV4KHRoaXNPYmplY3QsIGksIGluZGV4R2V0dGVyKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3MpIHsKLSAgICAgICAgcHJp
bnRFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgdGhpc09iamVjdC0+cHJpbnRF
cnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgLy8gQWxsb3cgc2hvcnRjdXRzIGxp
a2UgJ0ltYWdlMScgaW5zdGVhZCBvZiBkb2N1bWVudC5pbWFnZXMuSW1hZ2UxCi0gICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gaW1wbCgpLT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKICAg
ICBpZiAoZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkpIHsKICAgICAgICAgQXRvbWljU3RyaW5n
SW1wbCogYXRvbWljUHJvcGVydHlOYW1lID0gZmluZEF0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUp
OwogICAgICAgICBpZiAoYXRvbWljUHJvcGVydHlOYW1lICYmIChzdGF0aWNfY2FzdDxIVE1MRG9j
dW1lbnQqPihkb2N1bWVudCktPmhhc05hbWVkSXRlbShhdG9taWNQcm9wZXJ0eU5hbWUpIHx8IGRv
Y3VtZW50LT5oYXNFbGVtZW50V2l0aElkKGF0b21pY1Byb3BlcnR5TmFtZSkpKSB7Ci0gICAgICAg
ICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBuYW1lZEl0ZW1HZXR0ZXIpOworICAgICAgICAgICAg
c2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbmFtZWRJdGVtR2V0dGVyKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OmdldE93
blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBCYXNl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCkBAIC02ODMsNyArNjg5LDcgQEAgaW5saW5lIEpTVmFsdWUgRGlh
bG9nSGFuZGxlcjo6cmV0dXJuVmFsdWUoKSBjb25zdAogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKICAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIobV9leGVjLCAicmV0dXJuVmFsdWUiKTsK
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBpZiAoIWdsb2JhbE9iamVjdC0+Z2V0T3duUHJv
cGVydHlTbG90KG1fZXhlYywgaWRlbnRpZmllciwgc2xvdCkpCisgICAgaWYgKCFnbG9iYWxPYmpl
Y3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVjLCBpZGVudGlmaWVyLCBzbG90KSkK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUo
bV9leGVjLCBpZGVudGlmaWVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggNmQyNmY5ODVjNzFiNmM0YjgzYjBhMzAyOTg5YjA3
ZjBiYTMyN2IxZS4uZmE2MWI0OTZiMjg0N2ZlYjU2YzY2YzM5MDc1YzI4NjRhZDA5MzQ4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAg
LTEwMCwxNCArMTAwLDE0IEBAIFVTdHJpbmcgSlNET01XaW5kb3dTaGVsbDo6Y2xhc3NOYW1lKCkg
Y29uc3QKICAgICByZXR1cm4gbV93aW5kb3ctPmNsYXNzTmFtZSgpOwogfQogCi1ib29sIEpTRE9N
V2luZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0RPTVdp
bmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQogCiBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTRE9NV2luZG93
U2hlbGwqPihjZWxsKS0+bV93aW5kb3ctPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4o
Y2VsbCktPm1fd2luZG93LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggYjVkZDNhNmExNmMyY2Q4YTYzZjk4YTNm
OTI3OTgzNTJiZGYwZDY3Ny4uNmFjOTFiY2FmMjdjM2EyMDI0ODBiOWY5MWY3YzRiZjhjNmM1MWVl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApA
QCAtODAsNyArODAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIHZv
aWQgdmlzaXRDaGlsZHJlbihKU0M6OkpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTsKICAgICAg
ICAgdmlydHVhbCBKU0M6OlVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNW
YWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCmluZGV4IDY3ZjJlOTliYTY0MGUz
YzY2NTNhN2ZkYmQ2ODY3Nzk1ZWNmM2E3YjcuLmZlYzQxOWZiNzQwNDZmYzJjMDdjZjg1MDBhMTVj
MGQ1NWJjN2I3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0Q3VzdG9tLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIEpTV29ya2VyQ29u
dGV4dDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQog
Ym9vbCBKU1dvcmtlckNvbnRleHQ6OmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgLy8gTG9vayBmb3Igb3ZlcnJpZGVzIGJlZm9yZSBsb29raW5nIGF0IGFueSBv
ZiBvdXIgb3duIHByb3BlcnRpZXMuCi0gICAgaWYgKEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICBpZiAoSlNHbG9iYWxPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA4
ZGJlM2VhMDljN2M3ZmJmNWQ0OWQ3ZTUwZmNmYTFkNDM0ZDE0MGI5Li5iMTBmMWQ3Y2MxYmUxNTI1
MjU2MGVjNDM1Y2JiNDRjMmMyNTRjNzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTMzMywxMSArMzMzLDExIEBA
IHByaXZhdGU6CiAgICAgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChhcnJheSk7CiAgICAg
ICAgIGlmIChpc0pTQXJyYXkoJm1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBhcnJheSkpIHsKLSAgICAg
ICAgICAgIGlmIChhcnJheS0+SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KG1fZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KSkgeworICAgICAgICAgICAgaWYgKEpTQXJyYXk6OmdldE93blByb3Bl
cnR5U2xvdChhcnJheSwgbV9leGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAg
ICAgICAgaGFzSW5kZXggPSB0cnVlOwogICAgICAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZh
bHVlKG1fZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNl
IGlmIChhcnJheS0+Z2V0T3duUHJvcGVydHlTbG90KG1fZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KSkgeworICAgICAgICB9IGVsc2UgaWYgKGFycmF5LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KG1fZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgaGFzSW5kZXggPSB0
cnVlOwogICAgICAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUobV9leGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICB9CkBAIC0zNDgsNyArMzQ4LDcgQEAgcHJpdmF0ZToKICAgICBKU1ZhbHVl
IGdldFByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSkKICAgICB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KG9iamVjdCk7Ci0gICAgICAg
IGlmIChvYmplY3QtPmdldE93blByb3BlcnR5U2xvdChtX2V4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCkpCisgICAgICAgIGlmIChvYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUo
bV9leGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KaW5kZXggYTRhMTg1ZGExMDgxYzc5ZDVjYjgyM2IwMzg3MjQxMDI4MWNiNDgxZi4uOGU0Mjk3
MDNhZjY4N2M0NTgxZjc1MTRiMDA2NDNhZjg1ZjE0MjMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTQzMCw3ICs0MzAs
NyBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAgICAgbXkgQGdldE93blBy
b3BlcnR5U2xvdEltcGwgPSAoKTsKIAogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTmFtZWRO
b2RlTWFwIiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTENvbGxlY3Rpb24iIG9yICRpbnRlcmZh
Y2VOYW1lIGVxICJIVE1MQWxsQ29sbGVjdGlvbiIpIHsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJv
cGVydHlTbG90SW1wbCwgIiAgICAke25hbWVzcGFjZU1heWJlfUpTVmFsdWUgcHJvdG8gPSBwcm90
b3R5cGUoKTtcbiIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAg
ICR7bmFtZXNwYWNlTWF5YmV9SlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPnByb3RvdHlwZSgp
O1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKHBy
b3RvLmlzT2JqZWN0KCkgJiYgc3RhdGljX2Nhc3Q8JHtuYW1lc3BhY2VNYXliZX1KU09iamVjdCo+
KGFzT2JqZWN0KHByb3RvKSktPmhhc1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSkpXG4iKTsK
ICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIGZh
bHNlO1xuXG4iKTsKICAgICB9CkBAIC00NDAsNyArNDQwLDcgQEAgc3ViIEdlbmVyYXRlR2V0T3du
UHJvcGVydHlTbG90Qm9keQogICAgICAgICBpZiAoJHJlcXVpcmVzTWFudWFsTG9va3VwKSB7CiAg
ICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGNvbnN0ICR7bmFt
ZXNwYWNlTWF5YmV9SGFzaEVudHJ5KiBlbnRyeSA9ICR7Y2xhc3NOYW1lfVRhYmxlLmVudHJ5KGV4
ZWMsIHByb3BlcnR5TmFtZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
U2xvdEltcGwsICIgICAgaWYgKGVudHJ5KSB7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGdldE93
blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGVudHJ5LT5w
cm9wZXJ0eUdldHRlcigpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlT
bG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgZW50cnktPnByb3Bl
cnR5R2V0dGVyKCkpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJ
bXBsLCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAZ2V0T3du
UHJvcGVydHlTbG90SW1wbCwgIiAgICB9XG4iKTsKICAgICAgICAgfQpAQCAtNDU5LDIwICs0NTks
MjAgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQogICAgICAgICBpZiAoSW5k
ZXhHZXR0ZXJSZXR1cm5zU3RyaW5ncygkaW1wbENsYXNzTmFtZSkpIHsKICAgICAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKG9rKSB7XG4iKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAg
aWYgKG9rICYmIGluZGV4IDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihpbXBsKCkpLT5s
ZW5ndGgoKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBs
LCAiICAgIGlmIChvayAmJiBpbmRleCA8IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4odGhp
c09iamVjdC0+aW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOwogICAgICAgICB9CiAgICAgICAgIGlm
ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRl
ciJ9KSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAg
ICBzbG90LnNldFZhbHVlKGdldEJ5SW5kZXgoZXhlYywgaW5kZXgpKTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LT5nZXRCeUluZGV4KGV4ZWMsIGluZGV4KSk7XG4iKTsKICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNs
b3Quc2V0Q3VzdG9tSW5kZXgodGhpcywgaW5kZXgsIGluZGV4R2V0dGVyKTtcbiIpOworICAgICAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0
b21JbmRleCh0aGlzT2JqZWN0LCBpbmRleCwgaW5kZXhHZXR0ZXIpO1xuIik7CiAgICAgICAgIH0K
ICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgcmV0dXJuIHRy
dWU7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICB9XG4i
KTsKICAgICB9CiAKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
TmFtZUdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJy
aWRpbmdOYW1lR2V0dGVyIn0pIHsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1w
bCwgIiAgICBpZiAoY2FuR2V0SXRlbXNGb3JOYW1lKGV4ZWMsIHN0YXRpY19jYXN0PCRpbXBsQ2xh
c3NOYW1lKj4oaW1wbCgpKSwgcHJvcGVydHlOYW1lKSkge1xuIik7Ci0gICAgICAgIHB1c2goQGdl
dE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG5hbWVH
ZXR0ZXIpO1xuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAg
aWYgKGNhbkdldEl0ZW1zRm9yTmFtZShleGVjLCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+
KHRoaXNPYmplY3QtPmltcGwoKSksIHByb3BlcnR5TmFtZSkpIHtcbiIpOworICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2Jq
ZWN0LCB0aGlzT2JqZWN0LT5uYW1lR2V0dGVyKTtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIH1cbiIpOwogICAgICAgICBpZiAoJGlubGlu
ZWQpIHsKQEAgLTQ4NywxOSArNDg3LDE5IEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xv
dEJvZHkKICAgICB9CiAKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RGVsZWdhdGluZ0dldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAgICAgIHB1c2goQGdldE93blBy
b3BlcnR5U2xvdEltcGwsICIgICAgaWYgKGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlT
bG90SW1wbCwgIiAgICBpZiAodGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSlcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eVNsb3RJbXBsLCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgIH0KIAogICAgIGlm
ICgkaGFzQXR0cmlidXRlcykgewogICAgICAgICBpZiAoJGlubGluZWQpIHsKICAgICAgICAgICAg
IGRpZSAiQ2Fubm90IGlubGluZSBpZiBOb1N0YXRpY1RhYmxlcyBpcyBzZXQuIiBpZiAoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSk7Ci0gICAgICAgICAg
ICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1h
eWJlfWdldFN0YXRpY1ZhbHVlU2xvdDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCBzX2luZm8uc3Rh
dGljUHJvcEhhc2hUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICByZXR1cm4gJHtuYW1lc3Bh
Y2VNYXliZX1nZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFtZSwgQmFzZT4oZXhlYywgc19pbmZv
LnN0YXRpY1Byb3BIYXNoVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4i
KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xv
dEltcGwsICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVTbG90PCRj
bGFzc05hbWUsIEJhc2U+KGV4ZWMsICIgLiBoYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRo
aXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blBy
b3BlcnR5U2xvdEltcGwsICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFs
dWVTbG90PCRjbGFzc05hbWUsIEJhc2U+KGV4ZWMsICIgLiBoYXNoVGFibGVBY2Nlc3NvcigkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1l
KSAuICIsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKICAgICAgICAgfQog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAg
cmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
O1xuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgcmV0dXJu
IEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpO1xuIik7CiAgICAgfQogCiAgICAgcmV0dXJuIEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBs
OwpAQCAtNzcwLDkgKzc3MCwxMSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgICMgR2V0dGVy
cwogICAgIGlmICgkaGFzR2V0dGVyKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7
CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlE
ZXNjcmlwdG9yJik7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgJiYgISRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn07CisgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7XG4iKSBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5k
ZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21J
bmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVy
aWNJbmRleEdldHRlciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
T3ZlcnJpZGluZ05hbWVHZXR0ZXIifTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlm
ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0p
ICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdl
dHRlciJ9OwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
LCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiRGVsZWdhdGluZ0dldE93blByb3BlcnR5U2xvdCJ9OwogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3Jp
cHRvciYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGlu
Z0dldE93blByb3BlcnR5U2xvdCJ9OwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90In0gPSAxOwpAQCAtOTY3LDkgKzk2OSwxNCBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifTtcblxuIik7CiAKICAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5saW5lR2V0T3duUHJvcGVy
dHlTbG90In0gJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93
blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJBTFdBWVNf
SU5MSU5FIGJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlT
X0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJ7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9XG5cbiIp
OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xh
c3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiBjZWxsLCBKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ7XG4i
KTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOworICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgJnNfaW5mbyk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgR2VuZXJh
dGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KCRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUsICRjbGFz
c05hbWUsICRpbXBsQ2xhc3NOYW1lLCAkbnVtQXR0cmlidXRlcyA+IDAsIDEpKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJBTFdBWVNfSU5MSU5FIGJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwpAQCAtMTAz
NSw3ICsxMDQyLDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKICAgICBp
ZiAoJG51bUZ1bmN0aW9ucyA+IDAgfHwgJG51bUNvbnN0YW50cyA+IDAgfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xv
dCJ9KSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYs
IEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtc
biIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBK
U0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9OwogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdh
dGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5
RGVzY3JpcHRvciYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVs
ZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9OwpAQCAtMTQzMywyMiArMTQ0MSwy
OCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CiAgICAgfQogICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCB8fCAkbnVtRnVu
Y3Rpb25zID4gMCB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5n
UHJvdG90eXBlR2V0T3duUHJvcGVydHlTbG90In0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJib29sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1l
fVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Cisg
ICAgICAgIAorICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9UHJv
dG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KGNlbGwpO1xuIik7CiAKICAgICAgICAgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Q
cm9wZXJ0eVNsb3QifSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYg
KGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0LT5n
ZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4i
KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICgkbnVtQ29uc3RhbnRzIGVxIDAgJiYgJG51bUZ1
bmN0aW9ucyBlcSAwKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1
cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4i
KTsgICAgICAgIAorICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpO1xuIik7ICAgICAgICAKICAgICAgICAgfSBlbHNpZiAoJG51bUNvbnN0YW50cyBlcSAwKSB7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljRnVu
Y3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3Io
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNz
TmFtZSkgLiAiLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2Jq
ZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlz
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0gZWxzaWYgKCRudW1G
dW5jdGlvbnMgZXEgMCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0
dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUsIEpTT2JqZWN0Pihl
eGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmpl
Y3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNs
b3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhh
c2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGlj
VGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY1By
b3BlcnR5U2xvdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAiIC4gcHJv
dG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Tm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG5cbiIpOwogCkBAIC0xNTcyLDkgKzE1ODYsMTQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICAjIEF0dHJpYnV0ZXMKICAgICBpZiAoJGhhc0dldHRlcikgewogICAgICAgICBpZiAo
ISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklubGluZUdldE93blByb3BlcnR5U2xv
dCJ9ICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9w
ZXJ0eVNsb3QifSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xh
c3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG5cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1l
fTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7
Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNs
b3RCb2R5KCRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NO
YW1lLCAkbnVtQXR0cmlidXRlcyA+IDAsIDApKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAifVxuXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2Ns
YXNzTmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KVxuIik7CkBAIC0xNTg2LDE4ICsxNjA1LDIzIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAKICAgICAgICAgaWYgKCgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRl
eEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUlu
ZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJp
Y0luZGV4R2V0dGVyIn0pIAogICAgICAgICAgICAgICAgICYmICEkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9KSB7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dClcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1l
fTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOwotICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKHByb3BlcnR5TmFtZSA8IHN0YXRpY19jYXN0
PCRpbXBsQ2xhc3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cblxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtj
bGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtj
bGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChwcm9wZXJ0eU5hbWUgPCBz
dGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgp
KSB7XG4iKTsKICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0VmFsdWUoZ2V0QnlJbmRleChleGVjLCBwcm9wZXJ0
eU5hbWUpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QtPmdldEJ5SW5kZXgoZXhlYywgcHJvcGVydHlOYW1l
KSk7XG4iKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpcywgcHJvcGVydHlOYW1l
LCBpbmRleEdldHRlcik7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHRo
aXNPYmplY3QtPmluZGV4R2V0dGVyKTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcjo6
ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTtc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICB9
CiAgICAgICAgIApAQCAtMzE1Niw3ICszMTgwLDggQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JE
ZWNsYXJhdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHB0cjtc
biIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG5cbiIpOwogCi0gICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xu
Iik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJv
cGVydHlEZXNjcmlwdG9yJik7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3Rh
dGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwogCkBAIC0zMjExLDkgKzMyMzYs
MTQgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uCiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKCR7bnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzfSks
IFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTtcbiIpIGlmICRudW1iZXJPZmNvbnN0
cnVjdFBhcmFtZXRlcnM7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIAotICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
Ym9vbCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CisgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1c
blxuIik7CisgICAgCisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClc
biIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PCR7Y29uc3RydWN0b3JDbGFzc05h
bWV9LCBKU0RPTVdyYXBwZXI+KGV4ZWMsICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCB0
aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0sIEpT
RE9NV3JhcHBlcj4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIHN0YXRpY19j
YXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7
XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogCiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiYm9vbCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHAKaW5kZXggYmJlNjA2YmRjMGIwOTMwNjA2ZDUzZGU5NzlhNTM1NGFmODU0ZjAxYy4uYzliNTY4
YjQyYjNjYjkxMzEwZDcwN2VhMmVhZTYzM2M2ZmRkODc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHAKQEAgLTg2LDcgKzg2LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0K
IAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xh
c3NJbmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTE0LDkgKzExNSwxNCBAQCB2
b2lkIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZQogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCks
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTVGVzdEludGVyZmFjZVByb3RvdHlw
ZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogfQog
Ci1ib29sIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKK2Jvb2wgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90
PEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAg
IHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKK30KKworYm9vbCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFs
dWVTbG90PEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZK
U1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvcikKQEAgLTE4OCwxMCArMTk0LDE2IEBAIEpTT2JqZWN0KiBKU1Rlc3RJ
bnRlcmZhY2U6OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iCiAgICAgcmV0dXJuIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CiB9CiAKLWJvb2wgSlNUZXN0SW50ZXJm
YWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0SW50ZXJmYWNl
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFs
dWVTbG90PEpTVGVzdEludGVyZmFjZSwgQmFzZT4oZXhlYywgJkpTVGVzdEludGVyZmFjZVRhYmxl
LCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rlc3RJbnRl
cmZhY2U6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7Cisg
ICAgSlNUZXN0SW50ZXJmYWNlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJm
YWNlKj4oY2VsbCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAm
c19pbmZvKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdEludGVyZmFjZSwg
QmFzZT4oZXhlYywgJkpTVGVzdEludGVyZmFjZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggNWJm
ZDg5ZjIyM2E3NWY4NTllN2YzM2NkYjI4MTg5NWEwYzc3OTAyZC4uZDA4YTk0OGIyZmU3MTk0MDQx
MWNmNmNiMzUzMTdlNzY5YTZmMmZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaApAQCAtNDIsNyArNDIs
OCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVBy
b3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggM2Jm
NDM4OWQyMmI2MDgwMDUxZGViYjQzMjY3ZDBkNTA1NjJiZTNiOC4uYTFjNjQyZTRkN2Y4Yzc2MmVj
MWE2YzU3YmUyOTY3NTM2YmRmNGIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcApAQCAtODcsNyArODcsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBwdHI7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7
CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMg
Y29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xMTIs
OSArMTEzLDE0IEBAIHZvaWQgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTCiAgICAgcHV0RGlyZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpOwogfQogCi1ib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMs
ICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3JUYWJsZSwgdGhpcywgcHJv
cGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3JUYWJsZSwgc3RhdGljX2Nhc3Q8SlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CiAKIGJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAgLTE0OSw5
ICsxNTUsMTUgQEAgSlNPYmplY3QqIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5
cGU6OnNlbGYoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE8KICAgICByZXR1cm4gZ2V0RE9NUHJv
dG90eXBlPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KGV4ZWMsIGdsb2JhbE9iamVjdCk7
CiB9CiAKLWJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Cit9CisKK2Jvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4g
Z2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lclByb3RvdHlwZVRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAg
IEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKj4oY2VsbCk7Cisg
ICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgJkpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAg
LTE3OCwxMCArMTkwLDE2IEBAIEpTT2JqZWN0KiBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
OjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhCiAgICAgcmV0dXJuIEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmNyZWF0ZShleGVjLT5nbG9iYWxE
YXRhKCksIGdsb2JhbE9iamVjdCwgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKIH0KIAotYm9vbCBKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jv
b2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogewotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNf
aW5mbyk7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLCBCYXNlPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclRhYmxl
LCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQoreworICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRoaXNPYmplY3Qg
PSBzdGF0aWNfY2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4oY2VsbCk7CisgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAgICByZXR1
cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIsIEJhc2U+
KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVGFibGUsIHRoaXNPYmplY3QsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCA2YzE0MmU5ZDlmYTZk
ZjE0ZTk5Y2VmNzQxMzI3ODFlMmM5Njk0MjE2Li45YjdlMzYyNGQ0YjVmYmVjMGY0OWJhYThlOWQ5
Y2IyZDg2Njk5OTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKQEAgLTQwLDcgKzQwLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxs
KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xh
c3NJbmZvIHNfaW5mbzsKIApAQCAtNzUsNyArNzYsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJv
cGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3Jp
cHRvciYpOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBjMDI0YTQ1
MWQ3OTAzMmZlYTU4ZjRiYTliMjg0OWZiZTUxMDYyNjhjLi5iZDJhZGU0YWU1MTI3MzlmMjMxOTM1
YjA5N2IwMTYzZTdmZmNlZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTg5LDcgKzE4OSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxs
KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRv
ciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGlj
IEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkKQEAgLTIxNCw5ICsyMTUsMTQgQEAgdm9pZCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2wKICAg
ICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJv
dG90eXBlLCBKU1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlU2xvdDxKU1Rlc3RPYmpDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAm
SlNUZXN0T2JqQ29uc3RydWN0b3JUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAg
ICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Cit9CisKK2Jvb2wgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xv
dDxKU1Rlc3RPYmpDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0T2JqQ29u
c3RydWN0b3JUYWJsZSwgc3RhdGljX2Nhc3Q8SlNUZXN0T2JqQ29uc3RydWN0b3IqPihjZWxsKSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0zMDYsOSAr
MzEyLDE1IEBAIEpTT2JqZWN0KiBKU1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIGdldERPTVByb3Rv
dHlwZTxKU1Rlc3RPYmo+KGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKLWJvb2wgSlNUZXN0T2Jq
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0T2Jq
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworfQorCitib29sIEpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlTbG90
PEpTVGVzdE9ialByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBKU1Rlc3RPYmpQcm90b3R5cGUq
IHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihjZWxsKTsKKyAg
ICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlTbG90PEpTVGVzdE9ialByb3RvdHlwZSwgSlNPYmpl
Y3Q+KGV4ZWMsICZKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RPYmpQcm90b3R5cGU6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtMzM1LDEwICszNDcsMTYgQEAg
SlNPYmplY3QqIEpTVGVzdE9iajo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNUZXN0T2JqUHJvdG90eXBlOjpj
cmVhdGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIEpTVGVzdE9ialByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKIH0KIAotYm9vbCBKU1Rlc3RP
Ymo6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RPYmo6OmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8
SlNUZXN0T2JqLCBCYXNlPihleGVjLCAmSlNUZXN0T2JqVGFibGUsIHRoaXMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1Rlc3RPYmoqIHRoaXNPYmplY3Qg
PSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNs
b3Q8SlNUZXN0T2JqLCBCYXNlPihleGVjLCAmSlNUZXN0T2JqVGFibGUsIHRoaXNPYmplY3QsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCBjM2QxYjI0Y2JiMTcx
YTY0ZjI2OTIzZjg3ZmFlYjU3MWFkNWM4ZDMzLi40OGJjMTVkNmE5NjNkMDY5MmE2YmI1ZjBkNjA4
NDc2MmRmNmNmY2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC00MCw3ICs0MCw4IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZp
cnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0
YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNs
b3QmKTsKQEAgLTg5LDcgKzkwLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBjb25z
dCBKU0M6OkNsYXNzSW5mbyBzX2luZm87Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYp
OworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAg
ICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggMmFkNjEwYmI2Yjc0MWMwMWI4ODM5
ZmQyYjg2NTQ1Y2VmZDFkYmY2Ni4uN2YxYjkzYTAzNTllMzY1NTczMzgxNzA1M2I1OGM2NDhhM2Qz
ZmQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5jcHAKQEAgLTg4LDcgKzg4LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
cHRyOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOwor
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTEzLDkg
KzExNCwxNCBAQCB2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqCiAgICAgcHV0RGlyZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVj
dCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiB9CiAKLWJvb2wgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQorYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rv
cjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBn
ZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29u
c3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNvbnN0cnVjdG9yVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cisg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworfQorCitib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0
cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorewor
ICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yVGFibGUsIHN0YXRpY19jYXN0PEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQpAQCAtMTY4LDEwICsxNzQsMTYgQEAgSlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywK
ICAgICByZXR1cm4gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBl
OjpjcmVhdGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpKTsKIH0KIAotYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwotICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLCBCYXNlPihleGVjLCAmSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
VGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsICZzX2luZm8pOworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLCBCYXNlPihleGVjLCAmSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCBm
MWZhNGQ0NGYwYmU1YTMwNjJiNmI5NzA4YTRlYmFhZDM2NzUzODcxLi41MWU2OGJlMDUwMTY4NDZj
MDE2YjA3ZGQ1NmU3ZTYxNTNiOThhOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC00Miw3ICs0Miw4IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggYTk4YTkwZTE5NzUwYWRiZjkzNmVk
Yjc2OTcxZTE3MTRhNWFkYjZlZi4uNzFjNDM3ODEzMDVkMjUwY2M5MzhlMjU1YjgwYThiNjk4N2I4
NjkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTEy
Myw3ICsxMjMsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIE9iamNGYWxsYmFja09iamVj
dEltcChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVj
dHVyZUZsYWdzOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
cnVudGltZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpp
bmRleCA0Y2ZjMzg0YWU1NTYzZDdkMTgzZTcxZmVkN2Q2YTAxMWZkMzUyNTU5Li45YjAxMmQ0NDkx
N2Q1NDk2MTAyNjNlOWQ5MWVmZjBiOWVlMGFjZTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLm1tCkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBPYmpjRmFsbGJh
Y2tPYmplY3RJbXA6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotYm9vbCBPYmpjRmFsbGJhY2tP
YmplY3RJbXA6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgT2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJl
dHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaWRlbnRpZmllciwgc2xvdCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAppbmRleCAwZDYxYTYwMjI5
MDJiMGNjNmY1NjQ5MDIyNmU2NDkwNTllYTMzYmI0Li5hZTc0ZGE5YWEwM2U5YzU1OGRkNDBmMWIw
NjZkMWM1M2IyM2YxMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRf
aW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5j
cHAKQEAgLTE1Myw3ICsxNTMsNyBAQCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IFF0SW5zdGFuY2U6
OmdldFF0SW5zdGFuY2UoUU9iamVjdCogbywgUGFzc1JlZlB0cjxSb290T2JqZQogCiBib29sIFF0
SW5zdGFuY2U6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQogewotICAgIHJldHVybiBvYmplY3QtPkpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIHZvaWQgUXRJ
bnN0YW5jZTo6cHV0KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggYzNhN2EzZDBh
NjVkMDU3YTQyZGVmYjQwNGI0MDY3MWY5ODY4NTMxMC4uN2M2ZTNhNDRhYTQ3YTE2MjFkZGM2YTUy
MDQyMzYyZWFlMGQ5ZTU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cApAQCAtMTQ5NCw3ICsxNDk0LDcgQEAgQ2FsbFR5cGUgUXRSdW50aW1lTWV0YU1ldGhvZDo6Z2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogICAgIHJldHVybiBDYWxsVHlw
ZUhvc3Q7CiB9CiAKLWJvb2wgUXRSdW50aW1lTWV0YU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCitib29sIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CkBAIC0xNzQxLDcgKzE3NDEsNyBAQCBD
YWxsVHlwZSBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYgY2FsbERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIAotYm9vbCBR
dFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
K2Jvb2wgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGlt
ZS5oCmluZGV4IDk4MTk3ZjU5OTgyNzQ0MTljMTAyYzNlMzg1OTY5NDNiNWZiNjY4NWQuLmFhOWQ1
OGQ4YjU1YTAzMjViMTczNDQ4YWI0ZTYwZWY2YzQzYmQyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X3J1bnRpbWUuaApAQCAtMTY0LDcgKzE2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIG1ldGhvZDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlICosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYs
IEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CkBAIC0y
MDUsNyArMjA1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbWV0aG9kOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3Rh
dGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUg
PSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcAppbmRleCA4MGUyYThmOTUxZTFjZTUzYjJmMzZhNmZiMTU1YzIzYjQ4ZTg4OWI4
Li5iNjQ5YzQ3ZTJmMzhiYWY1YmY2YTMwNjczZjY5NGJhNzhmNDgyMTI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgUnVudGlt
ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1l
QXJyYXkmIHByb3BlCiAgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJv
cGVydHlOYW1lcywgbW9kZSk7CiB9CiAKLWJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMTI2LDcgKzEyNiw3IEBAIGJvb2wg
UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotYm9vbCBSdW50
aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIGlu
ZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBp
bmRleCwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBh
M2Q0NDU4YjZiODhkMzNjOTQzM2Q2MDk5MjY4ZjI0YTM0MDgyN2RmLi5kYTkzYzk0NWQ1MWEzN2Qz
ZjgxMTAyZDU0ZGY4YzY4YmFhYzliODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmgKQEAgLTUwLDkgKzUwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJ1bnRpbWVBcnJh
eSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwg
UHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51
bVByb3BlcnRpZXMpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQsIFBy
b3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQsIFByb3BlcnR5
U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1
YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwCmluZGV4IDU5NTMwYWU3N2Q2NjM5MzIyYjJiOTg4ZjMwNmM2YTAwYzI2ODg4MTUu
LmNhOTFiOGQxNThlZTk0NzNiMTg1ODRjMjBkZTdmZTkxODAwOWI2MzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNjksNyArNjksNyBAQCBKU1ZhbHVlIFJ1
bnRpbWVNZXRob2Q6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBj
b25zdCBJZGVudGlmaQogICAgIHJldHVybiBqc051bWJlcih0aGlzT2JqLT5fbWV0aG9kTGlzdC0+
YXQoMCktPm51bVBhcmFtZXRlcnMoKSk7CiB9CiAKLWJvb2wgUnVudGltZU1ldGhvZDo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCitib29sIFJ1bnRpbWVNZXRob2Q6OmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IGM1ZjY2YTYyZjYxYjgyY2U2OTU3OTMxMTA1MDA5YWJj
YzEwODA0YzcuLjA4ODVkYmU2ZTFkMWRhNjQ3Yjk5M2FiNGNmZTVjZGEyMjMwNTg3YTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCkBAIC02Niw3ICs2Niw3IEBAIHByb3Rl
Y3RlZDoKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0
YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCBmN2YzMDY4Yjk1
MjIwNWEyYTAwNzBlNzg3YzBiZWJjMjI2NTE2Y2JiLi40ODJmOTg4NmQyZjUwNThjNmUzZWM4NGM2
MGFlOWIyMDFkODMzMjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5j
cHAKQEAgLTExNiw3ICsxMTYsNyBAQCBKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZQogICAgIHJldHVy
biBtZXRob2Q7CiB9CiAKLWJvb2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCitib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5oCmluZGV4IDBjNmE5MTVkYTgyZDU5ODc3NzY1ZTJkYjI4NjY0ZWIwZWFjZWEzMGEuLjE0YWY0
NjM1ZmEwY2VkMzc1MzJhYmM3Zjc3ZTgwYWY3ZTI3ZDgwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgflJ1bnRpbWVPYmplY3QoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjA4NjBmM2ZiZDI1MmYzNmMxNGUxNjE4
MjZiZWMwNzVjMjUzYjI4Ni4uZWExM2Y3ZGI3ZGI5ZTMwOTc3ZDZiOTQ0OTNmOGFlOWZlNmI0NmRl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEwLTE0ICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIGdldE93blByb3Bl
cnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdGhlIHZpcnR1YWwgdmVyc2lvbiBv
ZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbAorICAgICAg
ICBpbiBwcmVwYXJhdGlvbiBmb3Igd2hlbiB3ZSBhZGQgdGhlIHN0YXRpYyBnZXRPd25Qcm9wZXJ0
eVNsb3QgdG8gdGhlIE1ldGhvZFRhYmxlIAorICAgICAgICBpbiBDbGFzc0luZm8uCisKKyAgICAg
ICAgQWxzbyBhZGRlZCBhIGZldyBzdGF0aWMgZ2V0T3duUHJvcGVydHlTbG90IGZ1bmN0aW9ucyB3
aGVyZSB0aGV5IGhhZCBiZWVuIG92ZXJsb29rZWQgCisgICAgICAgIGJlZm9yZSAoZXNwZWNpYWxs
eSBpbiBDb2RlR2VuZXJhdG9ySlMucG0pLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oOgorCiAyMDExLTEwLTE0ICBOYXlhbiBLdW1hciBLICA8bmF5
YW5ra0Btb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0dUS10gcjk3NDM4OiBJbmNvbnNpc3RlbnQg
dXNlIG9mIGZsYXR0ZW5pbmcgdnMgZmxhdHRlcmluZyBpbiBmdW5jdGlvbiBuYW1lcy9jb21tZW50
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IGVjNWVlMmJlZjk5NmUwY2FlY2VmOTUwNmRjNmFjMzJj
MGQwZjE4MWIuLmJmNDZlNDg0ZDM4Y2JlNzg0ZmJiZWFkMTg3MTNkNTFjZWZkZDhkMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5jcHAKQEAgLTI1Miw3ICsyNTIsNyBAQCBDb25zdHJ1Y3RUeXBlIEpTTlBPYmpl
Y3Q6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiBjZWxsLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1
YwogICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlSG9zdDsKIH0KIAotYm9vbCBKU05QT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNOUE9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmlu
ZGV4IDA4NjQzZjc2NWE5NGQ1MGI3MDY0NmY1NTdkYzBiODAxYTcyYjJiMWMuLjQzZGRiYmZhODY1
OGI0YzA0YjZhMzA1Yjk4MjFmZjY3YmIzNGVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaApAQCAtODMsNyAr
ODMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0
cnVjdERhdGFWaXJ0dWFsKEpTQzo6Q29uc3RydWN0RGF0YSYpOwogICAgIHN0YXRpYyBKU0M6OkNv
bnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q29uc3RydWN0
RGF0YSYpOwogCi0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>