<?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>159966</bug_id>
          
          <creation_ts>2016-07-20 01:12:49 -0700</creation_ts>
          <short_desc>Mark overriden methods in WebCore/svg final classes as final</short_desc>
          <delta_ts>2016-07-20 14:22:23 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rawinder Singh">rawinder.webkit</reporter>
          <assigned_to name="Rawinder Singh">rawinder.webkit</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1212687</commentid>
    <comment_count>0</comment_count>
    <who name="Rawinder Singh">rawinder.webkit</who>
    <bug_when>2016-07-20 01:12:49 -0700</bug_when>
    <thetext>Update WebCore/svg classes so that overriden methods in final classes are marked final.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212691</commentid>
    <comment_count>1</comment_count>
      <attachid>284092</attachid>
    <who name="Rawinder Singh">rawinder.webkit</who>
    <bug_when>2016-07-20 01:18:25 -0700</bug_when>
    <thetext>Created attachment 284092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212871</commentid>
    <comment_count>2</comment_count>
      <attachid>284092</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-07-20 14:00:56 -0700</bug_when>
    <thetext>Comment on attachment 284092
Patch

I really prefer the override keyword; the semantics are identical in a final class, and override is more clear. But this is what the style guide says to do, so guess I&apos;d better get used to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212878</commentid>
    <comment_count>3</comment_count>
      <attachid>284092</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-20 14:22:19 -0700</bug_when>
    <thetext>Comment on attachment 284092
Patch

Clearing flags on attachment: 284092

Committed r203469: &lt;http://trac.webkit.org/changeset/203469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212879</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-20 14:22:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284092</attachid>
            <date>2016-07-20 01:18:25 -0700</date>
            <delta_ts>2016-07-20 14:22:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159966-20160720181612.patch</filename>
            <type>text/plain</type>
            <size>105249</size>
            <attacher name="Rawinder Singh">rawinder.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNkOGIxM2U1NjlhNjRk
YmNjZmViZDFkN2M2NmUxNmE0MGU4Y2Q1OS4uYzFiNjRjMDJhYzUwNTJjNjhmYTdkOWRiYjc1YjVj
NDcxNTMwODc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE2LTA3LTIwICBSYXdp
bmRlciBTaW5naCAgPHJhd2luZGVyLnNpbmdoLXdlYmtpdEBjaXNyYS5jYW5vbi5jb20uYXU+CisK
KyAgICAgICAgTWFyayBvdmVycmlkZW4gbWV0aG9kcyBpbiBXZWJDb3JlL3N2ZyBmaW5hbCBjbGFz
c2VzIGFzIGZpbmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTk5NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgV2ViQ29yZS9zdmcgY2xhc3NlcyBzbyB0aGF0IG92ZXJyaWRlbiBtZXRob2Rz
IGluIGZpbmFsIGNsYXNzZXMgYXJlIG1hcmtlZCBmaW5hbC4KKworICAgICAgICAqIHN2Zy9TVkdB
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZENvbG9yLmg6
CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xp
cFBhdGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHRGVmc0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRGVzY0VsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RkVNZXJnZU5vZGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZh
Y2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZvbnRGYWNlU3JjRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdIS2Vy
bkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0xpbmVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01QYXRoRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNZXRhZGF0
YUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdQYXRoQnVpbGRlci5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoQnl0ZVN0
cmVhbUJ1aWxkZXIuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaDoK
KyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNl
Z0FyY0Ficy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQXJjUmVsLmg6CisgICAgICAgICog
c3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGguaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY0Ficy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmg6
CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5oOgorICAgICAgICAqIHN2
Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1Ntb290aEFicy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1Ntb290aFJlbC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGluZXRvQWJzLmg6
CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmg6CisgICAgICAg
ICogc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLmg6CisgICAgICAgICogc3ZnL1NW
R1BhdGhTZWdMaW5ldG9SZWwuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsQWJzLmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaDoKKyAgICAgICAgKiBzdmcvU1ZH
UGF0aFNlZ0xpc3RTb3VyY2UuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ01vdmV0b0Ficy5o
OgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTW92ZXRvUmVsLmg6CisgICAgICAgICogc3ZnL1NW
R1BhdGhTdHJpbmdTb3VyY2UuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFRyYXZlcnNhbFN0YXRl
QnVpbGRlci5oOgorICAgICAgICAqIHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdSZWN0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxl
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTd2l0Y2hFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR1RSZWZFbGVtZW50LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR1RvT1RGRm9udENvbnZlcnNpb24uY3BwOgorICAgICAgICAqIHN2
Zy9TVkdVbmtub3duRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdWS2VybkVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHVmlld0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHWm9vbUV2
ZW50Lmg6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAg
ICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlQ2xpZW50cy5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRh
aW5lci5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAg
ICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9m
Zi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2Zm
Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJv
cGVydHlUZWFyT2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9m
Zi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFy
T2ZmLmg6CisKIDIwMTYtMDctMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtGZXRjaCBBUEldIEFkZCBhIEpTIGJ1aWx0aW4gdG8gaW1wbGVtZW50IGh0dHBz
Oi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWhlYWRlcnMtZmlsbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQUVsZW1lbnQuaAppbmRleCBjMGY2Y2Q2Y2MyYzM2YTkyZjVhZjIyYjliNDk5YTJlYTA4NGU4
MDkyLi44ZDRkZTRhYzRlNWMxOTM0ODRmMDE0NmJlZWZmMDhiNWU3NDgyMGU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQUVsZW1lbnQuaApAQCAtMzgsMjggKzM4LDI4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgU1ZHQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBi
b29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgp
OyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHVGVzdHM6Omlz
VmFsaWQoKTsgfQogICAgIAotICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0IG92ZXJyaWRlOwotICAg
IFN0cmluZyB0YXJnZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdmdUYXJnZXQoKTsgfQor
ICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyB0YXJnZXQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBzdmdUYXJnZXQoKTsgfQogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCi0gICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKLSAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3Qg
Tm9kZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
JikgZmluYWw7CisgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUm
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92
ZXJyaWRlOworICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIGZpbmFsOwogICAg
IAotICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNN
b3VzZUZvY3VzYWJsZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNLZXlib2FyZEZvY3Vz
YWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0ZvY3VzYWJs
ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmli
dXRlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0
IG92ZXJyaWRlOwotICAgIGludCB0YWJJbmRleCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wg
c3VwcG9ydHNGb2N1cygpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgp
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50
KikgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc0ZvY3VzYWJsZSgpIGNvbnN0IGZpbmFsOworICAg
IGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7CisgICAg
Ym9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIGludCB0YWJJbmRleCgp
IGNvbnN0IGZpbmFsOwogCi0gICAgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygp
IG92ZXJyaWRlOworICAgIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBmaW5h
bDsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdBRWxlbWVudCkK
ICAgICAgICAgLy8gVGhpcyBkZWNsYXJhdGlvbiB1c2VkIHRvIGRlZmluZSBhIG5vbi12aXJ0dWFs
ICJTdHJpbmcmIHRhcmdldCgpIGNvbnN0IiBtZXRob2QsIHRoYXQgY2xhc2hlcyB3aXRoICJ2aXJ0
dWFsIFN0cmluZyBFbGVtZW50Ojp0YXJnZXQoKSBjb25zdCIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKaW5kZXggNGNkNzE3NzQyMDA2MzJhNGM0ZTE3NDA1MmI5
MzlhMzg5MmUzNWY0Yy4uYjFlMWQ4NjE3OThiZmYwNmY0MDczN2I1Yzg5NDRiNDIxMWJhMzYxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaApAQCAtMzUsNyAr
MzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0FsdEdseXBoRGVmRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9v
bCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlw
aEl0ZW1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVu
dC5oCmluZGV4IGI0YTRkNzVhMjM0MThiYWQwOTkwN2ViZTJkMzJmODk0OWVlMGZlMjIuLmZhMGU1
NTA2ZjUwODc4NWFjZjlkMWY4NWNiMjg3YTljMWUyNzFiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIFNWR0FsdEdseXBoSXRlbUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKLSAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCmluZGV4
IGUxMDE5MGZmZjAzZjFiOGMzNjU5NjQ4NDlhYTlkOWJkMDNkOTVlZTQuLjM4NDQ3MGFhYmU2ZTFk
ZTlhYWY1ZjU2YTI0NDI2MTJjM2VkNjM5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCkBAIC0zOSw4ICszOSw4IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAgICAgCi0gICAgYm9vbCBoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKSBv
dmVycmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBib29sIGhhc1ZhbGlkQXR0cmlidXRl
VHlwZSgpIGZpbmFsOworICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOwogCiAgICAgU1ZHVHJhbnNmb3JtOjpTVkdU
cmFuc2Zvcm1UeXBlIG1fdHlwZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3Iu
aAppbmRleCA1MGUxMGZjZDhkMmIyNzVjMjZmYTI3MmQzMGZkNzQ2N2M5NDFjYzE1Li40N2RkNTMy
ZDZmMmViNGMzY2Q4M2U5NmQyZWRjNGVjMDYzNDk2YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZENvbG9yLmgKQEAgLTI5LDE1ICsyOSwxNSBAQCBwdWJsaWM6CiAgICAgU1ZHQW5pbWF0
ZWRDb2xvckFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQmLCBTVkdFbGVtZW50Jik7CiAKIHBy
aXZhdGU6Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZvaWQg
c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
Jikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCByZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiwgU1ZHQW5pbWF0ZWRUeXBlJikgb3ZlcnJpZGUg
eyB9Ci0gICAgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIGFuaW1WYWxEaWRDaGFuZ2UoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9p
ZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIG92
ZXJyaWRlOwotICAgIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdl
LCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBl
KiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7Ci0gICAgZmxv
YXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJp
bmcmIHRvU3RyaW5nKSBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9
CisgICAgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmKSBmaW5hbCB7IH0KKyAgICB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUmKSBm
aW5hbCB7IH0KKyAgICB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYpIGZpbmFsIHsgfQorICAgIHZvaWQgYW5pbVZhbERpZENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBmaW5hbCB7IH0KKyAgICB2b2lk
IGFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgZmlu
YWw7CisgICAgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVu
c2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBT
VkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBmaW5hbDsKKyAgICBmbG9hdCBjYWxj
dWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9T
dHJpbmcpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDaXJjbGVFbGVtZW50LmgKaW5kZXggMGRkY2M5ZThhM2E1MjYwNTg5NDUwZGQ0MTE4YTNh
NzQwZjE3MWExNi4uM2JlNDkzNzdhOTM2YTBmODFkNzdhYzFiODFjNTE2ZWZmZmZhNTIxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCkBAIC0zNiwxNCArMzYsMTQgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBTVkdDaXJjbGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAotICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3Ro
cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHNlbGZIYXNSZWxh
dGl2ZUxlbmd0aHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOworICAgIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikgZmluYWw7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BF
UlRJRVMoU1ZHQ2lyY2xlRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5HVEgo
Q3gsIGN4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCmluZGV4IGQxY2Vm
OWIwMTU5OTM2MTM1ODViOWFiNWQ1OGYxMGVmNTQyMGU5NTkuLjRhZjVkNjE0ZDc0OTU3MDk4YmE4
YmE5MmQzNTM1ZTMxMTNkZDA3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
bGlwUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVt
ZW50LmgKQEAgLTM5LDE2ICszOSwxNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0NsaXBQ
YXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIGJvb2wg
aXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0K
LSAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQotICAgIGJvb2wgbmVlZHNQZW5kaW5nUmVzb3VyY2VIYW5kbGluZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQorICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBuZWVkc1BlbmRpbmdSZXNvdXJjZUhh
bmRsaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHN0YXRpYyBib29s
IGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKLSAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdl
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKKyAgICB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwogCi0gICAgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKSBvdmVycmlkZTsKKyAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IGZpbmFsOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0NsaXBQ
YXRoRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9FTlVNRVJBVElPTihDbGlwUGF0
aFVuaXRzLCBjbGlwUGF0aFVuaXRzLCBTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKaW5kZXggYzhlMjhlMjQ0Yjg1MDNmMzA4YjRiYjBk
YzAwYzI4NGNmZTc3ZTlkZC4uMzBkYWQ5MTBjMTUyYTJhMGM0OWFhZWEwM2UyYmVhZWI4MGY1MGUy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCkBAIC00OCwxNSArNDgsMTUg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdDdXJzb3JFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KIAogICAgIHN0YXRpYyBib29s
IGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKLSAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKLSAgICBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9CiAKLSAgICB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFz
aFNldDxVUkw+JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJp
YnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IGZpbmFsOwogCiAgICAgQkVHSU5fREVD
TEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0N1cnNvckVsZW1lbnQpCiAgICAgICAgIERFQ0xB
UkVfQU5JTUFURURfTEVOR1RIKFgsIHgpCkBAIC02Niw5ICs2Niw5IEBAIHByaXZhdGU6CiAgICAg
RU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogCiAgICAgLy8gU1ZHVGVzdHMKLSAgICB2
b2lkIHN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcygpIG92ZXJyaWRlIHsgU1ZHVGVzdHM6OnN5
bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyh0aGlzKTsgfQotICAgIHZvaWQgc3luY2hyb25pemVS
ZXF1aXJlZEV4dGVuc2lvbnMoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVp
cmVkRXh0ZW5zaW9ucyh0aGlzKTsgfQotICAgIHZvaWQgc3luY2hyb25pemVTeXN0ZW1MYW5ndWFn
ZSgpIG92ZXJyaWRlIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7
IH0KKyAgICB2b2lkIHN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcygpIGZpbmFsIHsgU1ZHVGVz
dHM6OnN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyh0aGlzKTsgfQorICAgIHZvaWQgc3luY2hy
b25pemVSZXF1aXJlZEV4dGVuc2lvbnMoKSBmaW5hbCB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJl
cXVpcmVkRXh0ZW5zaW9ucyh0aGlzKTsgfQorICAgIHZvaWQgc3luY2hyb25pemVTeXN0ZW1MYW5n
dWFnZSgpIGZpbmFsIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7
IH0KIAogICAgIEhhc2hTZXQ8Q1NTQ3Vyc29ySW1hZ2VWYWx1ZSo+IG1fY2xpZW50czsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCmluZGV4IDAxNTQ4NWY0OTU1ZGRkM2JjZDU4YzE3
OWJlMGRhYzE3NjUwNTQ5NDAuLjNiNjhiMTg3NDk4YWVkZTcyNDZjZWI1MmVlYzgyYjY5NTY2MzAz
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCkBAIC0zNSwxMCArMzUsMTAgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBTVkdEZWZzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlOwotICAg
IGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KSBmaW5hbDsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdEZWZz
RWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9CT09MRUFOX09WRVJSSURFKEV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdEZXNjRWxlbWVudC5oCmluZGV4IGZhYWY1ZjdjZjc1MDA3NWY4NzY4MGY1NzAyMDQ2
MmNmOGJlMGQxM2IuLmJmNjRlY2UwNTY5MzBhMGI0ZGNhZjlmNTQ5ZDE3YTA5YWNjOWIyZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgU1ZHRGVzY0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKLSAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCmluZGV4IDM4
ODNmM2YxMGJiZGRmODM5YTE3MWM2NGNlNWU3M2Y0ZWI1MjE0OTcuLjJiYjFiMmVjMmVkM2QyMDhk
ZDhmYjNhZjEzNjhmMWI1ZjVhNTAwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxl
bWVudC5oCkBAIC0zNiwxNCArMzYsMTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdFbGxp
cHNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKLSAgICBi
b29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgp
OyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHVGVzdHM6Omlz
VmFsaWQoKTsgfQogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFs
OwogCi0gICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfTsKKyAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIG92ZXJyaWRlOworICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7
CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRWxsaXBzZUVsZW1l
bnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKEN4LCBjeCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAppbmRleCAyYjc5MTdkMjZkOGIwMTg3MjJh
Zjk1MTUxMGI0NGQ5NzI4NTFhNzAwLi4xMDMwNTY2MmNkZTQ5NjM0ZTY1NDUzMGU5NGFlZWFmNzQ3
MjNiMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCkBA
IC0zMyw5ICszMyw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKLSAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CisgICAgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGRU1lcmdlTm9k
ZUVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfU1RSSU5HKEluMSwgaW4xKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKaW5kZXggNmY4NzFkZWRkZWUzNWU4NjI5N2E0
Zjc5OWNhMzdmN2M1NzJiNzI0OC4uM2Y3NDEyYTZkOWZlMjMwZDAwN2EzMDdkZTgzNTgxZmRmZjQ1
ZDZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBAIC00NiwxNyArNDYs
MTcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdGaWx0ZXJFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgYm9vbCBuZWVkc1BlbmRpbmdSZXNvdXJjZUhh
bmRsaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIG5lZWRz
UGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQog
CiAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQo
Y29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOworICAgIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAKLSAgICBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwotICAgIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKKyAgICBib29sIGNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9vbCBzZWxmSGFz
UmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJv
b2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
IAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGZpbHRlclJlc1hJZGVudGlmaWVyKCk7
CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZmlsdGVyUmVzWUlkZW50aWZpZXIoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKaW5kZXggOGY0MTE3NGYwMGFlYjAzMTJhZjU0
ZTAzYzVlMDk5ZmYzY2U0NjNkOS4uM2Y5MzJjMmFlZjU3ZWMzNzRiOTU3NWJhZDY1Y2U2M2U0YjM3
NGY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBTVkdGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAotICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJT
dHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIEJF
R0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGb250RWxlbWVudCkKICAgICAgICAg
REVDTEFSRV9BTklNQVRFRF9CT09MRUFOX09WRVJSSURFKEV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VFbGVtZW50LmgKaW5kZXggOTVhYjAxMjM2MTU4ZGM5MThhZGE1ZGQxYmE4ODk2NWEyZTdiNDA2
Yy4uODJkYmYxYmQ1MjJmMzMwNjE3NTRlNGM5MWYzNmI2ZTc3OTNhNDNhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaApAQCAtNTUsMTMgKzU1LDEzIEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgU1ZHRm9udEZhY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAKLSAg
ICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwotICAg
IEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUm
KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwor
ICAgIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5v
ZGUmKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBmaW5hbDsK
IAotICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFJlZjxTdHlsZVJ1bGVGb250
RmFjZT4gbV9mb250RmFjZVJ1bGU7CiAgICAgU1ZHRm9udEVsZW1lbnQqIG1fZm9udEVsZW1lbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgKaW5kZXgg
NTM0Yjg4NzdkMGM4NTEyNGQ2NDJmZTY4YjVlMzJmMTNkNGZmZTZkOC4uZTlkYjQxZWIyZTlmNjJh
YzQ2NTJmNjM3MmZlNjVlMjY2MDc2MThhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZUZvcm1hdEVsZW1lbnQuaApAQCAtMzIsOCArMzIsOCBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAotICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikg
b3ZlcnJpZGU7Ci0gICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25z
dCBDaGlsZENoYW5nZSYpIGZpbmFsOworICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1l
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaApp
bmRleCA0ZjdlOWFlNjMzNmQxZGY5Y2E4NjdjOGY2NjA4OTM1ZjEwNDljNGVlLi4xYTU4YTJjOGIz
MDI4ZDI0ZjgzY2I2YjhmZWNhNDI4MzM4YTgwYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZU5hbWVFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBTVkdGb250RmFjZU5hbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCi0gICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
U3JjRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5o
CmluZGV4IDQzMjU1NWUwMzZlOGQzOTIyZTA2NmRjMWViZjAxYjYyZjcxYzc1ZGEuLmI5M2ZlODhj
MDVlZDhmMjlhYjcyZGNjMGYzNThhNjVmY2UyMGE2YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKQEAgLTM2LDggKzM2LDggQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBTVkdGb250RmFjZVNyY0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAgICAgCi0gICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2Um
KSBvdmVycmlkZTsKLSAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNv
bnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CisgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVy
aUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaApp
bmRleCBjMmRhYTg2NTZjZWU0MjdmM2M4YjNiNTk0YzljMmRjNThjZDFjNzk4Li4yYTYxNjQzMTRk
NjgwYjkxYmQ2YzI1NDY0ZDcxYWVhZmI2MzRiYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5oCkBAIC00MCwxMCArNDAsMTAgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBTVkdGb250RmFjZVVyaUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAgICAgCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKLSAgICBJbnNlcnRpb25Ob3RpZmljYXRp
b25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Ci0gICAgYm9v
bCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25z
dCBDaGlsZENoYW5nZSYpIGZpbmFsOworICAgIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3Qg
aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBmaW5hbDsKKyAgICBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
dm9pZCBsb2FkRm9udCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9y
ZWlnbk9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5oCmluZGV4IGExNWI2MWU1ODljNjUwOGIwMmFlNmVhYzMyNzBjNDI3NjgyYjY5MzQu
LjFjMDJmY2Y4ZTkyN2U5ZjZjZWFiOGMzNWEwMzU1OTBmOTJjZjY5MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCkBAIC0zNywxNiArMzcsMTYgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBTVkdGb3JlaWduT2JqZWN0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICBib29sIGlzVmFsaWQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAgICAgc3RhdGljIGJv
b2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYp
IG92ZXJyaWRlOwotICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAotICAgIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKKyAgICBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKKyAgICBib29sIGNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IGZpbmFsOworICAgIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7CiAKLSAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0
aHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBzZWxmSGFzUmVs
YXRpdmVMZW5ndGhzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgQkVHSU5f
REVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KQogICAg
ICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChYLCB4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQu
aAppbmRleCBlYmNjMzQ1NjRhMmFjMTRkZWQxZTU2ZDJhZDU2NTFlNTM0Y2Y5ZDgzLi40YjI4N2E4
MDg0Y2YwMjZmMzQxZDhkZTFkODgxZGY3OWI5Zjg3MTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1l
bnQuaApAQCAtMzYsMTUgKzM2LDE1IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHR0VsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOworICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgZmluYWw7CiAKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCiAgICAgc3RhdGljIGJvb2wgaXNT
dXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJy
aWRlOwotICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAotICAgIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOworICAgIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUSUVTKFNWR0dFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0JPT0xF
QU5fT1ZFUlJJREUoRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAppbmRleCBjZTNmMGVlMzVk
YjZhYmJlNjI4OWFiMzlmZDdiMTI5MGZlNDZhYTM0Li4yOTBkOGQ5ODIzZjVlMGNmZGU4NTM1ZTY5
MjQ2YTI2MzM5MThlZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCkBAIC0z
Nyw3ICszNyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHR2x5cGhFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29s
IHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ds
eXBoUmVmRWxlbWVudC5oCmluZGV4IGE3OWM2ZjFiMDY1ZDg5YmI1MDI4Mzc4ZjAyNDcyNWZmYWU2
NDI2NGUuLmE3YzQ0ZTMwZDgzNzEzNjMzNzZmOWMyNWNkNDRlMjk3MzY4NmQwOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKQEAgLTMyLDcgKzMyLDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8U1ZHR2x5cGhSZWZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29sIGhhc1ZhbGlkR2x5cGhFbGVtZW50KFN0
cmluZyYgZ2x5cGhOYW1lKSBjb25zdDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBm
aW5hbDsKIAogICAgIC8vIERPTSBpbnRlcmZhY2UKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGds
eXBoUmVmKCkgY29uc3Q7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
U1ZHR2x5cGhSZWZFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0g
ICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUSUVTKFNWR0dseXBoUmVmRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRF
RF9TVFJJTkdfT1ZFUlJJREUoSHJlZiwgaHJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdIS2VybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1l
bnQuaAppbmRleCBkNGE3NzI4MjI1YzFkZGI2YmYxODRlMTk3ZjIwZDE2NmEzOWU4MDBkLi4yMzI0
YzMwMjY5Y2QyMDUyZjBmYTg2NmNiZWU3MmZkNDQ1ZDUzMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0hLZXJuRWxlbWVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
U1ZHSEtlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCmluZGV4IDY3YmFjYTZmOGVkZWU0NWQ1ZGIx
NzQ2YmI1NGQxZDNkZTdhODVhMDMuLjEwN2Y1Mzg4NWRhMDIzYmI3MDBkOGQyZWQ2MDM5ZjA2OGU1
MTE0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTQyLDI0ICs0Miwy
NCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0ltYWdlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgYm9vbCBpc1ZhbGlkKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCiAgICAgc3RhdGlj
IGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAotICAgIHZvaWQgZGlkQXR0
YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7Ci0gICAgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQXR0
YWNoUmVuZGVyZXJzKCkgZmluYWw7CisgICAgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBp
bnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogCi0gICAgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKKyAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIGZpbmFsOwogCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBpbWFnZVNvdXJjZVVSTCgp
IGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExp
c3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcm
IGltYWdlU291cmNlVVJMKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBhZGRTdWJyZXNvdXJjZUF0
dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9vbCBo
YXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKSBvdmVycmlkZTsKKyAgICBib29sIGhhdmVMb2Fk
ZWRSZXF1aXJlZFJlc291cmNlcygpIGZpbmFsOwogCi0gICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVM
ZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgZGlkTW92
ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBvdmVycmlkZTsKKyAgICBib29s
IHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpIGZpbmFs
OwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0ltYWdlRWxlbWVu
dCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5HVEgoWCwgeCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVFbGVtZW50LmgKaW5kZXggZjNkZGIzY2Q0MDM1ZmZlYTg1NTczZGI2ZTE4NTQ4ODc1NWVh
ZGJhYy4uZGJkZjIyYjdjZjY5NGY5YzkwMzRjY2FkMDlmNTNhOGFiMWQyZTAzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKQEAgLTM2LDE1ICszNiwxNSBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIFNWR0xpbmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogICAgIAotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNWR1Rl
c3RzOjppc1ZhbGlkKCk7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKICAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsK
KyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIGZpbmFsOwogCi0gICAgYm9vbCBzdXBwb3J0c01hcmtlcnMoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBzdXBwb3J0c01hcmtlcnMoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0
aHMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBj
b25zdCBmaW5hbDsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdM
aW5lRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5HVEgoWDEsIHgxKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCmluZGV4IDQxYjZmZWE4NmNkNDRiNDJmZGE5MDcx
ZTIwYzFlM2ExZDMxMGVkN2YuLmQyZDZhZmJiOGI0YjZkYTZkZDMzMDMyYTMwN2NkODUyOWYzMzY1
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKQEAgLTQ0LDE2ICs0NCwxNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR01QYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGJ1aWxkUGVuZGluZ1Jlc291cmNlKCkgZmluYWw7CiAgICAgdm9pZCBj
bGVhclJlc291cmNlUmVmZXJlbmNlcygpOwotICAgIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVl
c3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92
ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICBJbnNlcnRpb25Ob3RpZmljYXRp
b25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgZmluYWw7CisgICAgdm9pZCBy
ZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsK
LSAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOworICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKLSAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZvaWQgZmlu
aXNoZWRJbnNlcnRpbmdTdWJ0cmVlKCkgb3ZlcnJpZGU7CisgICAgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lk
IGZpbmlzaGVkSW5zZXJ0aW5nU3VidHJlZSgpIGZpbmFsOwogCiAgICAgdm9pZCBub3RpZnlQYXJl
bnRPZlBhdGhDaGFuZ2UoQ29udGFpbmVyTm9kZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxl
bWVudC5oCmluZGV4IDhmOWQ1ZWMzNzMxYWQxNDAyZDRiNjc1ZTdhMDUyOTlhZjg3ZjAwOGIuLmFi
NzQ1ZGU4YmJjNDhlNWEyNmZhYjZhZjZkMTRlMTIzNmJlZmYzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5oCkBAIC00MCwxNyArNDAsMTcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBTVkdNYXNrRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlk
KCk7IH0KLSAgICBib29sIG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICBib29sIG5lZWRzUGVuZGluZ1Jlc291
cmNlSGFuZGxpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgc3RhdGlj
IGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRD
aGFuZ2UmKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOworICAgIHZvaWQgY2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAKLSAgICBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOworICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgZmluYWw7CiAKLSAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhz
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgQkVHSU5fREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUSUVTKFNWR01hc2tFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVE
X0VOVU1FUkFUSU9OKE1hc2tVbml0cywgbWFza1VuaXRzLCBTVkdVbml0VHlwZXM6OlNWR1VuaXRU
eXBlKQpAQCAtNjMsOSArNjMsOSBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVE
X1BST1BFUlRJRVMKIAogICAgIC8vIFNWR1Rlc3RzCi0gICAgdm9pZCBzeW5jaHJvbml6ZVJlcXVp
cmVkRmVhdHVyZXMoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVh
dHVyZXModGhpcyk7IH0KLSAgICB2b2lkIHN5bmNocm9uaXplUmVxdWlyZWRFeHRlbnNpb25zKCkg
b3ZlcnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnModGhpcyk7
IH0KLSAgICB2b2lkIHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rl
c3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CisgICAgdm9pZCBzeW5jaHJv
bml6ZVJlcXVpcmVkRmVhdHVyZXMoKSBmaW5hbCB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVp
cmVkRmVhdHVyZXModGhpcyk7IH0KKyAgICB2b2lkIHN5bmNocm9uaXplUmVxdWlyZWRFeHRlbnNp
b25zKCkgZmluYWwgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnModGhp
cyk7IH0KKyAgICB2b2lkIHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBmaW5hbCB7IFNWR1Rl
c3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmgKaW5kZXggY2FiYmVhOTExOGQ5Yzc4OTg4Mzhm
ZThmZjFkNGY1MjVmZTBkNjM3Ni4uOTcxMzVhMmQ4ZWNjNDNhZDdmMDlmZDhiMWQyODQwNjkwZjQx
OGQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuaApAQCAtMzIsNyAr
MzIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR01ldGFkYXRhRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5oCmluZGV4IGQ5YTM2NWJlYWIwZTgyYTgwZWM3YTM1OTg4NjIx
ZDQxYTk1Njk0MTkuLmQwNTUyNDdkM2FkY2E3MTIzNjc1ZTVmMGU2MjNjMjNlYjFlZWE0MTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaApAQCAtMzMsNyAr
MzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
QnVpbGRlci5oCmluZGV4IDI2MDhiYjk5ZTMzNTQwMDQwYTZiOTdjYzc4ZTRjNzViMWFiYWQxNzIu
LjdlMjQxYjdmYzdlYWVhNDY2OWE3MzYyYmExNWI3YjBjMTc0MmNjZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoQnVpbGRlci5oCkBAIC0zNiwyMiArMzYsMjIgQEAgcHVibGljOgogICAgIFNWR1Bh
dGhCdWlsZGVyKFBhdGgmKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGluY3JlbWVudFBhdGhTZWdt
ZW50Q291bnQoKSBvdmVycmlkZSB7IH0KLSAgICBib29sIGNvbnRpbnVlQ29uc3VtaW5nKCkgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgaW5jcmVtZW50UGF0aFNlZ21lbnRDb3Vu
dCgpIGZpbmFsIHsgfQorICAgIGJvb2wgY29udGludWVDb25zdW1pbmcoKSBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICAvLyBVc2VkIGluIFVuYWx0ZXJlZFBhcnNpbmcvTm9ybWFsaXplZFBh
cnNpbmcgbW9kZXMuCi0gICAgdm9pZCBtb3ZlVG8oY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgY2xv
c2VkLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlOwotICAgIHZvaWQgbGluZVRvKGNvbnN0
IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlOwotICAgIHZvaWQgY3Vy
dmVUb0N1YmljKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxv
YXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjbG9zZVBh
dGgoKSBvdmVycmlkZTsKKyAgICB2b2lkIG1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBj
bG9zZWQsIFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWw7CisgICAgdm9pZCBsaW5lVG8oY29uc3Qg
RmxvYXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWw7CisgICAgdm9pZCBjdXJ2ZVRv
Q3ViaWMoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBv
aW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlUGF0aCgpIGZp
bmFsOwogCiAgICAgLy8gT25seSB1c2VkIGluIFVuYWx0ZXJlZFBhcnNpbmcgbW9kZS4KLSAgICB2
b2lkIGxpbmVUb0hvcml6b250YWwoZmxvYXQsIFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGUg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgbGluZVRvVmVydGljYWwoZmxvYXQs
IFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZvaWQgY3VydmVUb0N1YmljU21vb3RoKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9h
dFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9Ci0gICAgdm9pZCBjdXJ2ZVRvUXVhZHJhdGljKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25z
dCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZSB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCBjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKGNvbnN0IEZsb2F0
UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KLSAgICB2b2lkIGFyY1RvKGZsb2F0LCBmbG9hdCwgZmxvYXQsIGJvb2wsIGJvb2wsIGNv
bnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIGxpbmVUb0hvcml6b250YWwoZmxvYXQsIFBhdGhDb29y
ZGluYXRlTW9kZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgbGlu
ZVRvVmVydGljYWwoZmxvYXQsIFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWwgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQorICAgIHZvaWQgY3VydmVUb0N1YmljU21vb3RoKGNvbnN0IEZsb2F0UG9p
bnQmLCBjb25zdCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbCB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBjdXJ2ZVRvUXVhZHJhdGljKGNvbnN0IEZsb2F0
UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbCB7IEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKGNv
bnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KKyAgICB2b2lkIGFyY1RvKGZsb2F0LCBmbG9hdCwgZmxvYXQsIGJvb2wsIGJv
b2wsIGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KIAogICAgIFBhdGgmIG1fcGF0aDsKICAgICBGbG9hdFBvaW50IG1f
Y3VycmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVh
bUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIu
aAppbmRleCA2ZmUzYzUwOTExYTk3MTNjM2JjMzgzM2ZkYjE5Nzc3ZGE0OWIxZDFkLi43ZTU0ZjQ1
Zjc1MDE0N2QxYjk2MDNlOTllY2U4NjQ1Yjc0YWE4M2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oCkBAIC0zMywyMiArMzMsMjIgQEAgcHVibGlj
OgogICAgIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlcihTVkdQYXRoQnl0ZVN0cmVhbSYpOwogCiBw
cml2YXRlOgotICAgIHZvaWQgaW5jcmVtZW50UGF0aFNlZ21lbnRDb3VudCgpIG92ZXJyaWRlIHsg
fQotICAgIGJvb2wgY29udGludWVDb25zdW1pbmcoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CisgICAgdm9pZCBpbmNyZW1lbnRQYXRoU2VnbWVudENvdW50KCkgZmluYWwgeyB9CisgICAgYm9v
bCBjb250aW51ZUNvbnN1bWluZygpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIFVz
ZWQgaW4gVW5hbHRlcmVkUGFyc2luZy9Ob3JtYWxpemVkUGFyc2luZyBtb2Rlcy4KLSAgICB2b2lk
IG1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBjbG9zZWQsIFBhdGhDb29yZGluYXRlTW9k
ZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsaW5lVG8oY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29y
ZGluYXRlTW9kZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjdXJ2ZVRvQ3ViaWMoY29uc3QgRmxvYXRQ
b2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5h
dGVNb2RlKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsb3NlUGF0aCgpIG92ZXJyaWRlOworICAgIHZv
aWQgbW92ZVRvKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGNsb3NlZCwgUGF0aENvb3JkaW5hdGVN
b2RlKSBmaW5hbDsKKyAgICB2b2lkIGxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiwgUGF0aENvb3Jk
aW5hdGVNb2RlKSBmaW5hbDsKKyAgICB2b2lkIGN1cnZlVG9DdWJpYyhjb25zdCBGbG9hdFBvaW50
JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1v
ZGUpIGZpbmFsOworICAgIHZvaWQgY2xvc2VQYXRoKCkgZmluYWw7CiAKICAgICAvLyBPbmx5IHVz
ZWQgaW4gVW5hbHRlcmVkUGFyc2luZyBtb2RlLgotICAgIHZvaWQgbGluZVRvSG9yaXpvbnRhbChm
bG9hdCwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZTsKLSAgICB2b2lkIGxpbmVUb1ZlcnRp
Y2FsKGZsb2F0LCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlOwotICAgIHZvaWQgY3VydmVU
b0N1YmljU21vb3RoKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgUGF0aENv
b3JkaW5hdGVNb2RlKSBvdmVycmlkZTsKLSAgICB2b2lkIGN1cnZlVG9RdWFkcmF0aWMoY29uc3Qg
RmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJy
aWRlOwotICAgIHZvaWQgY3VydmVUb1F1YWRyYXRpY1Ntb290aChjb25zdCBGbG9hdFBvaW50Jiwg
UGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZTsKLSAgICB2b2lkIGFyY1RvKGZsb2F0LCBmbG9h
dCwgZmxvYXQsIGJvb2wgbGFyZ2VBcmNGbGFnLCBib29sIHN3ZWVwRmxhZywgY29uc3QgRmxvYXRQ
b2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBsaW5lVG9Ib3Jp
em9udGFsKGZsb2F0LCBQYXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsOworICAgIHZvaWQgbGluZVRv
VmVydGljYWwoZmxvYXQsIFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWw7CisgICAgdm9pZCBjdXJ2
ZVRvQ3ViaWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRo
Q29vcmRpbmF0ZU1vZGUpIGZpbmFsOworICAgIHZvaWQgY3VydmVUb1F1YWRyYXRpYyhjb25zdCBG
bG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWw7
CisgICAgdm9pZCBjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRo
Q29vcmRpbmF0ZU1vZGUpIGZpbmFsOworICAgIHZvaWQgYXJjVG8oZmxvYXQsIGZsb2F0LCBmbG9h
dCwgYm9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25zdCBGbG9hdFBvaW50Jiwg
UGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbDsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVU
eXBlPgogICAgIHZvaWQgd3JpdGVUeXBlKGNvbnN0IEJ5dGVUeXBlJiB0eXBlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaAppbmRleCA3NDUyMzQ4NzMwZWE4
ZmVmYjlhNTkzYzE1OTIwMDUxNzZjNzk5ZmY4Li5mMDgyMzkyMzU2MjdjMWZkNGYxOTU5MmJlYjhl
Y2I3MDU4NGM0NzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVT
dHJlYW1Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW1T
b3VyY2UuaApAQCAtMzEsMjAgKzMxLDIwIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBTVkdQYXRo
Qnl0ZVN0cmVhbVNvdXJjZShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYpOwogCiBwcml2YXRlOgot
ICAgIGJvb2wgaGFzTW9yZURhdGEoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIG1vdmVUb05l
eHRUb2tlbigpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29sIHBhcnNlU1ZHU2Vn
bWVudFR5cGUoU1ZHUGF0aFNlZ1R5cGUmKSBvdmVycmlkZTsKLSAgICBTVkdQYXRoU2VnVHlwZSBu
ZXh0Q29tbWFuZChTVkdQYXRoU2VnVHlwZSkgb3ZlcnJpZGU7Ci0KLSAgICBib29sIHBhcnNlTW92
ZVRvU2VnbWVudChGbG9hdFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwYXJzZUxpbmVUb1Nl
Z21lbnQoRmxvYXRQb2ludCYpIG92ZXJyaWRlOwotICAgIGJvb2wgcGFyc2VMaW5lVG9Ib3Jpem9u
dGFsU2VnbWVudChmbG9hdCYpIG92ZXJyaWRlOwotICAgIGJvb2wgcGFyc2VMaW5lVG9WZXJ0aWNh
bFNlZ21lbnQoZmxvYXQmKSBvdmVycmlkZTsKLSAgICBib29sIHBhcnNlQ3VydmVUb0N1YmljU2Vn
bWVudChGbG9hdFBvaW50JiwgRmxvYXRQb2ludCYsIEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKLSAg
ICBib29sIHBhcnNlQ3VydmVUb0N1YmljU21vb3RoU2VnbWVudChGbG9hdFBvaW50JiwgRmxvYXRQ
b2ludCYpIG92ZXJyaWRlOwotICAgIGJvb2wgcGFyc2VDdXJ2ZVRvUXVhZHJhdGljU2VnbWVudChG
bG9hdFBvaW50JiwgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwotICAgIGJvb2wgcGFyc2VDdXJ2ZVRv
UXVhZHJhdGljU21vb3RoU2VnbWVudChGbG9hdFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBw
YXJzZUFyY1RvU2VnbWVudChmbG9hdCYsIGZsb2F0JiwgZmxvYXQmLCBib29sJiwgYm9vbCYsIEZs
b2F0UG9pbnQmKSBvdmVycmlkZTsKKyAgICBib29sIGhhc01vcmVEYXRhKCkgY29uc3QgZmluYWw7
CisgICAgYm9vbCBtb3ZlVG9OZXh0VG9rZW4oKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAg
Ym9vbCBwYXJzZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdUeXBlJikgZmluYWw7CisgICAgU1ZH
UGF0aFNlZ1R5cGUgbmV4dENvbW1hbmQoU1ZHUGF0aFNlZ1R5cGUpIGZpbmFsOworCisgICAgYm9v
bCBwYXJzZU1vdmVUb1NlZ21lbnQoRmxvYXRQb2ludCYpIGZpbmFsOworICAgIGJvb2wgcGFyc2VM
aW5lVG9TZWdtZW50KEZsb2F0UG9pbnQmKSBmaW5hbDsKKyAgICBib29sIHBhcnNlTGluZVRvSG9y
aXpvbnRhbFNlZ21lbnQoZmxvYXQmKSBmaW5hbDsKKyAgICBib29sIHBhcnNlTGluZVRvVmVydGlj
YWxTZWdtZW50KGZsb2F0JikgZmluYWw7CisgICAgYm9vbCBwYXJzZUN1cnZlVG9DdWJpY1NlZ21l
bnQoRmxvYXRQb2ludCYsIEZsb2F0UG9pbnQmLCBGbG9hdFBvaW50JikgZmluYWw7CisgICAgYm9v
bCBwYXJzZUN1cnZlVG9DdWJpY1Ntb290aFNlZ21lbnQoRmxvYXRQb2ludCYsIEZsb2F0UG9pbnQm
KSBmaW5hbDsKKyAgICBib29sIHBhcnNlQ3VydmVUb1F1YWRyYXRpY1NlZ21lbnQoRmxvYXRQb2lu
dCYsIEZsb2F0UG9pbnQmKSBmaW5hbDsKKyAgICBib29sIHBhcnNlQ3VydmVUb1F1YWRyYXRpY1Nt
b290aFNlZ21lbnQoRmxvYXRQb2ludCYpIGZpbmFsOworICAgIGJvb2wgcGFyc2VBcmNUb1NlZ21l
bnQoZmxvYXQmLCBmbG9hdCYsIGZsb2F0JiwgYm9vbCYsIGJvb2wmLCBGbG9hdFBvaW50JikgZmlu
YWw7CiAKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ3MDEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDc3ZDcyY2ZhM2JmNzUwODUyZmU0
YzlkYWVlZDk0ZjllMjkzMDEwZjEuLjZmZDY4NTljOWIzODExNWJkZWRmNzdiOGVkNDliNmJkMDY4
M2Y5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC05MSw3ICs5MSw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgcGF0aFNlZ0xpc3RDaGFuZ2VkKFNWR1BhdGhTZWdSb2xlLCBM
aXN0TW9kaWZpY2F0aW9uID0gTGlzdE1vZGlmaWNhdGlvblVua25vd24pOwogCi0gICAgRmxvYXRS
ZWN0IGdldEJCb3goU3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIG92ZXJy
aWRlOworICAgIEZsb2F0UmVjdCBnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBBbGxvd1N0
eWxlVXBkYXRlKSBmaW5hbDsKIAogICAgIHN0YXRpYyBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIGRQ
cm9wZXJ0eUluZm8oKTsKIApAQCAtMTAxLDE3ICsxMDEsMTcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBhbmltYXRlZFByb3BlcnR5V2lsbEJlRGVsZXRlZCgpOwogCi0gICAgc2l6ZV90IGFwcHJveGlt
YXRlTWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHNpemVfdCBhcHByb3hpbWF0ZU1l
bW9yeUNvc3QoKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBTVkdQYXRoRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIGJvb2wgaXNWYWxpZCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICBib29sIGlz
VmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKICAg
ICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLSAgICBib29sIHN1cHBvcnRzTWFya2VycygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOworICAgIGJv
b2wgc3VwcG9ydHNNYXJrZXJzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAg
Ly8gQ3VzdG9tICdkJyBwcm9wZXJ0eQogICAgIHN0YXRpYyB2b2lkIHN5bmNocm9uaXplRChTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCk7CkBAIC0xMjIsMTAgKzEyMiwxMCBAQCBwcml2YXRlOgog
ICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0JPT0xFQU5fT1ZFUlJJREUoRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAgICBFTkRfREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUSUVTCiAKLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOworICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7CiAK
LSAgICBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250
YWluZXJOb2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2Rl
Jikgb3ZlcnJpZGU7CisgICAgTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNl
cnRlZEludG8oQ29udGFpbmVyTm9kZSYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlZEZyb20oQ29u
dGFpbmVyTm9kZSYpIGZpbmFsOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlTVBhdGhEZXBlbmRlbmNp
ZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmNBYnMu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjQWJzLmgKaW5kZXggYzFjZTg2MjNh
YzliMjA4NTczYzQyYWQ1M2I0YTU5YzY0OWRhNDk3Ny4uNzZlNThlYzJkYzJjYzJkMjkwOTA2MTA5
ZmEzNDEzOWVmOGNhZjVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdBcmNBYnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0FyY0Ficy5oCkBA
IC0zOSw4ICszOSw4IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIHNo
b3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUEFUSFNFR19BUkNfQUJT
OyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAiQSI7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFBBVEhTRUdfQVJDX0FCUzsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkEiOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0FyY1JlbC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmNSZWwuaAppbmRleCA3ZjY2ODE0MmQw
MmJiMDY4NjNhYmIwOTEwZjMwZDgyYmQ3NWYyZGM2Li5hYjFlYzFmZmMyYjEwZTVjOTFjYzE5YzVm
NWU0YWFkMTgyNmJkNDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0FyY1JlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjUmVsLmgKQEAg
LTM5LDggKzM5LDggQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgc2hv
cnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQQVRIU0VHX0FSQ19SRUw7
IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuICJhIjsgfQorICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gUEFUSFNFR19BUkNfUkVMOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYSI7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRo
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oCmluZGV4IGQxMTdm
ZWJhZTYwODMyNmZlYWEyMTlmMDM5MDk0ODQxMmMzMTE3ZTEuLjY5Y2RmZDU2YzIzN2FlZjczNWIx
MzRiZTE2ZDBkZTgxNzU1MzgyNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnQ2xvc2VQYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDbG9z
ZVBhdGguaApAQCAtMzgsOCArMzgsOCBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICB1
bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFBBVEhT
RUdfQ0xPU0VQQVRIOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAiWiI7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ0xPU0VQQVRIOyB9CisgICAgU3RyaW5nIHBh
dGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiWiI7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnQ3VydmV0b0N1YmljQWJzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY0Ficy5oCmluZGV4IDliNTI1ZjA2MjVjYWJjY2NlZmUzMzhhNmQ1ZmFmZmFhZmYw
NzA2MjcuLjY1YWI5NmEzMTk0NTE3MzBmMTRhMmFiMzMwMDUyZjNmODVhNjJmNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuaApAQCAtMzksOCAr
MzksOCBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19B
QlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJDIjsgfQorICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUzsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkMiOyB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1JlbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNSZWwuaAppbmRleCBjZTVjMjg5Zjk3YzkyNTBhYjkzNTFhZGE4ODY0NDRjNTNmNzEz
MTVlLi5lMTAxNjc3OTkzMjZlNWQ0OTFmM2E2ZDA1YjQwODQxZWIzNmY4MWZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmgKQEAgLTM5LDggKzM5
LDggQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgc2hvcnQgcGF0aFNl
Z1R5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfUkVM
OyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAiYyI7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19SRUw7IH0KKyAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJjIjsgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoQWJzLmgKaW5kZXggOGYzNzEwNjg3ZTc5ZTQ2ZDI5MDg4NTNjYzcw
NDFkYjJlZWUzNWExMC4uZmMxM2JmZDVjOTZhNzBkNjE2Zjc4ZWE3YmIxMzAyNzYyOGM1MzcwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9v
dGhBYnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Nt
b290aEFicy5oCkBAIC0zOSw4ICszOSw4IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAg
IHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUEFU
SFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVB
c0xldHRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJTIjsgfQorICAgIHVuc2lnbmVkIHNo
b3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NV
QklDX1NNT09USF9BQlM7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJTIjsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhS
ZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
LmgKaW5kZXggYThmZWZjNTE4OTA1NGZjNGM2MGZjZmNlMGFjNDAyZjk1MGQ2NjM4ZC4uNDBjNzBm
YWVhMmRjZTE1NjNkOGNlYzFjZmIwNGM1ZmUzZmM0NzY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5oCkBAIC0zOSw4ICsz
OSw4IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIHNob3J0IHBhdGhT
ZWdUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX1NN
T09USF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJzIjsgfQorICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUw7IH0KKyAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJzIjsg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaAppbmRleCBmMDg5NDIwYjczMDc1MGVl
ZTNhNzk1YzdmNWNjOTM1Zjk0NDVmZjdmLi40YWMyZGM4N2ZiY2RmYmYyMTEwNDkzMzNmMDlhMWZm
MzhlZTU2NzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnMuaApAQCAtMzksOCArMzksOCBAQCBwcml2YXRlOgogICAgIHsKICAgICB9
CiAKLSAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdU
eXBlQXNMZXR0ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUSI7IH0KKyAgICB1bnNpZ25l
ZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVU
T19RVUFEUkFUSUNfQUJTOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAiUSI7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmgK
aW5kZXggNzQ0YmY2YTQwODUyZGQ0NmVhOTMzNzZhOTVkODUwYTIxMDE2N2VmOC4uYmViYmJhOGY3
YTU2ZmIzNzlmZjYzNmI5ZDA2NDI2NDUyYzVhOTJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmgKQEAgLTM5LDggKzM5LDggQEAg
cHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTDsg
fQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gInEiOyB9CisgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTDsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInEiOyB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5oCmluZGV4IDkxODhlYzJiM2QzNTg2ZjEz
NTM4Y2U5MTk2ZTY1ZDM4YmY3ZDE0ZTcuLjE5YmIzZTk3ZDZjNTQ4MGFlYmFjNzc2NWQ5MTlmZTJj
MzYzMzdkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1Ntb290aEFicy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5oCkBAIC0zOSw4ICszOSw4IEBAIHByaXZhdGU6CiAg
ICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfQUJTOyB9Ci0g
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAi
VCI7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX0FCUzsgfQorICAgIFN0cmluZyBw
YXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlQiOyB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5oCmluZGV4IGY1MjY0NDQ2Y2Y3NDdm
YWEwYjk2ZDJiMTVhMmUwMjY3ZTI1MTdmN2EuLmYwY2M1M2UzOGQyOTFmMWQ0NWYzNjZhNjU5MzNh
MGI0ODc1Mzc5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1Ntb290aFJlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5oCkBAIC0zOSw4ICszOSw4IEBAIHByaXZhdGU6
CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfUkVMOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAidCI7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTDsgfQorICAgIFN0cmlu
ZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInQiOyB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZ0xpbmV0b0Ficy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5l
dG9BYnMuaAppbmRleCBhNDg3MmM0NGM4NzE3YzRmMDJjNDVkMWQ0YmNiOTMzZWU5ZjY3YWRkLi4w
ZGNiYmNmMTMwODliNmIxY2NkM2I2ZmQyMmM1ZTYwMjVhNTAxYjM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b0Ficy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGluZXRvQWJzLmgKQEAgLTM5LDggKzM5LDggQEAgcHJpdmF0ZToKICAg
ICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJMIjsgfQorICAgIHVuc2lnbmVk
IHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9f
QUJTOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiTCI7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmgKaW5kZXggOTZiN2Nh
NmMzYmM5ZGJjNDZhNTExOTlkYzJiYTQzZmM3MzdjOTBlOC4uOWVkYTg0OTkyMDc5ZjBmNzI5Mzcy
YzAyNzU1NGUxYjc1YjQ0MWZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmgKQEAgLTM5LDggKzM5LDggQEAgcHJpdmF0ZToKICAg
ICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCUzsgfQotICAgIFN0cmlu
ZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkgiOyB9Cisg
ICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRI
U0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCUzsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkgiOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxSZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbFJlbC5oCmluZGV4IGUxYmI3ZTc3ODczNDdkZjUzMTVmNGFlNGVjMzYzOGJhZjAwY2NjYzAu
LjNkN2Q2NGE3NGFiZGNmMTdkY2QyMjZlODUyZTkzYTZmMDI2NDk4OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oCkBAIC0zOSw4
ICszOSw4IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIHNob3J0IHBh
dGhTZWdUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fSE9SSVpP
TlRBTF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJoIjsgfQorICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9SRUw7IH0KKyAgICBT
dHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJoIjsgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaW5ldG9SZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
TGluZXRvUmVsLmgKaW5kZXggODY3MTgzZDVkMTk2MjNjMjIzMWNhMDU3MmY0OTQwODU1MzQ5Y2Vk
ZS4uNmZkNTA2NmEzNzBiOTZhZDQzYzBmYTNjZTZmYjdkMzUxMGYwZDczYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9SZWwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1JlbC5oCkBAIC0zOSw4ICszOSw4IEBAIHByaXZhdGU6
CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhT
ZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAibCI7IH0KKyAgICB1bnNp
Z25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElO
RVRPX1JFTDsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gImwiOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmgKaW5kZXggYWFiNTM3
ZTUwYTRjODJjN2RjZDUzZDYwYmRkNDJmY2Q3MDg1YTEzNy4uNTUwMmU0ZDZhMzgzMmI4ZmE4NTRh
MGY0ZjMzYmU2MTE1ZTdjMDNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnTGluZXRvVmVydGljYWxBYnMuaApAQCAtMzksOCArMzksOCBAQCBwcml2YXRlOgogICAgIHsK
ICAgICB9CiAKLSAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FCUzsgfQotICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlYiOyB9CisgICAgdW5z
aWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJ
TkVUT19WRVJUSUNBTF9BQlM7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJWIjsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJl
bC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oCmlu
ZGV4IGY1OTQ1NTVhZmMxZjZjNjQzMzk5ZmNmMWZhMzFjNWJmYzQ5YjZmYzMuLjJkMzdhM2M2OTJj
MDNiOGY2MTg1YTI2NmFmOTJiNzNlZjc5OTVkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmgKQEAgLTM5LDggKzM5LDggQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9SRUw7IH0KLSAgICBT
dHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJ2Ijsg
fQorICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
UEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVMOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAidiI7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1
aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaAppbmRl
eCBiMTUwYzAwYTdlNDQzN2M2ZGViMDkwOWY3MTRjNjkxNTU5M2VhYWU4Li44MGZiM2ViM2Q5ZWE0
ODE4NTA4NzcxNDg3ZTQ4MDc4NTllYzhkNWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaXN0QnVpbGRlci5oCkBAIC0zNywyMiArMzcsMjIgQEAgcHVibGljOgogICAgIFNWR1Bh
dGhTZWdMaXN0QnVpbGRlcihTVkdQYXRoRWxlbWVudCYsIFNWR1BhdGhTZWdMaXN0JiwgU1ZHUGF0
aFNlZ1JvbGUpOwogCiBwcml2YXRlOgotICAgIHZvaWQgaW5jcmVtZW50UGF0aFNlZ21lbnRDb3Vu
dCgpIG92ZXJyaWRlIHsgfQotICAgIGJvb2wgY29udGludWVDb25zdW1pbmcoKSBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBpbmNyZW1lbnRQYXRoU2VnbWVudENvdW50KCkgZmlu
YWwgeyB9CisgICAgYm9vbCBjb250aW51ZUNvbnN1bWluZygpIGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIC8vIFVzZWQgaW4gVW5hbHRlcmVkUGFyc2luZy9Ob3JtYWxpemVkUGFyc2luZyBt
b2Rlcy4KLSAgICB2b2lkIG1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBjbG9zZWQsIFBh
dGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsaW5lVG8oY29uc3QgRmxvYXRQ
b2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjdXJ2ZVRvQ3Vi
aWMoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50
JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsb3NlUGF0aCgpIG92
ZXJyaWRlOworICAgIHZvaWQgbW92ZVRvKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGNsb3NlZCwg
UGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbDsKKyAgICB2b2lkIGxpbmVUbyhjb25zdCBGbG9hdFBv
aW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbDsKKyAgICB2b2lkIGN1cnZlVG9DdWJpYyhj
b25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQ
YXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsOworICAgIHZvaWQgY2xvc2VQYXRoKCkgZmluYWw7CiAK
ICAgICAvLyBPbmx5IHVzZWQgaW4gVW5hbHRlcmVkUGFyc2luZyBtb2RlLgotICAgIHZvaWQgbGlu
ZVRvSG9yaXpvbnRhbChmbG9hdCwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZTsKLSAgICB2
b2lkIGxpbmVUb1ZlcnRpY2FsKGZsb2F0LCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgY3VydmVUb0N1YmljU21vb3RoKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9h
dFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZTsKLSAgICB2b2lkIGN1cnZlVG9R
dWFkcmF0aWMoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRp
bmF0ZU1vZGUpIG92ZXJyaWRlOwotICAgIHZvaWQgY3VydmVUb1F1YWRyYXRpY1Ntb290aChjb25z
dCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZTsKLSAgICB2b2lkIGFy
Y1RvKGZsb2F0LCBmbG9hdCwgZmxvYXQsIGJvb2wgbGFyZ2VBcmNGbGFnLCBib29sIHN3ZWVwRmxh
ZywgY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBsaW5lVG9Ib3Jpem9udGFsKGZsb2F0LCBQYXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsOwor
ICAgIHZvaWQgbGluZVRvVmVydGljYWwoZmxvYXQsIFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWw7
CisgICAgdm9pZCBjdXJ2ZVRvQ3ViaWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZs
b2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsOworICAgIHZvaWQgY3VydmVUb1F1
YWRyYXRpYyhjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29yZGlu
YXRlTW9kZSkgZmluYWw7CisgICAgdm9pZCBjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKGNvbnN0IEZs
b2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsOworICAgIHZvaWQgYXJjVG8oZmxv
YXQsIGZsb2F0LCBmbG9hdCwgYm9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25z
dCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbDsKIAogICAgIFNWR1BhdGhF
bGVtZW50JiBtX3BhdGhFbGVtZW50OwogICAgIFNWR1BhdGhTZWdMaXN0JiBtX3BhdGhTZWdMaXN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuaAppbmRleCBlOGQ3ZTQw
NDkwMjIyYzE0MGQ5NzBjNTYyZjFkYTRmMDNlZDI5Nzc2Li42NzViNDI1MWJhZTQzOTNhNGRhZDgw
Mjg3NzEyYjljYTVkYmIwZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0xpc3RTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RT
b3VyY2UuaApAQCAtMzMsMjAgKzMzLDIwIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBTVkdQYXRo
U2VnTGlzdFNvdXJjZShjb25zdCBTVkdQYXRoU2VnTGlzdCYpOwogCiBwcml2YXRlOgotICAgIGJv
b2wgaGFzTW9yZURhdGEoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIG1vdmVUb05leHRUb2tl
bigpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29sIHBhcnNlU1ZHU2VnbWVudFR5
cGUoU1ZHUGF0aFNlZ1R5cGUmKSBvdmVycmlkZTsKLSAgICBTVkdQYXRoU2VnVHlwZSBuZXh0Q29t
bWFuZChTVkdQYXRoU2VnVHlwZSkgb3ZlcnJpZGU7Ci0KLSAgICBib29sIHBhcnNlTW92ZVRvU2Vn
bWVudChGbG9hdFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwYXJzZUxpbmVUb1NlZ21lbnQo
RmxvYXRQb2ludCYpIG92ZXJyaWRlOwotICAgIGJvb2wgcGFyc2VMaW5lVG9Ib3Jpem9udGFsU2Vn
bWVudChmbG9hdCYpIG92ZXJyaWRlOwotICAgIGJvb2wgcGFyc2VMaW5lVG9WZXJ0aWNhbFNlZ21l
bnQoZmxvYXQmKSBvdmVycmlkZTsKLSAgICBib29sIHBhcnNlQ3VydmVUb0N1YmljU2VnbWVudChG
bG9hdFBvaW50JiwgRmxvYXRQb2ludCYsIEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKLSAgICBib29s
IHBhcnNlQ3VydmVUb0N1YmljU21vb3RoU2VnbWVudChGbG9hdFBvaW50JiwgRmxvYXRQb2ludCYp
IG92ZXJyaWRlOwotICAgIGJvb2wgcGFyc2VDdXJ2ZVRvUXVhZHJhdGljU2VnbWVudChGbG9hdFBv
aW50JiwgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwotICAgIGJvb2wgcGFyc2VDdXJ2ZVRvUXVhZHJh
dGljU21vb3RoU2VnbWVudChGbG9hdFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwYXJzZUFy
Y1RvU2VnbWVudChmbG9hdCYsIGZsb2F0JiwgZmxvYXQmLCBib29sJiwgYm9vbCYsIEZsb2F0UG9p
bnQmKSBvdmVycmlkZTsKKyAgICBib29sIGhhc01vcmVEYXRhKCkgY29uc3QgZmluYWw7CisgICAg
Ym9vbCBtb3ZlVG9OZXh0VG9rZW4oKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBw
YXJzZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdUeXBlJikgZmluYWw7CisgICAgU1ZHUGF0aFNl
Z1R5cGUgbmV4dENvbW1hbmQoU1ZHUGF0aFNlZ1R5cGUpIGZpbmFsOworCisgICAgYm9vbCBwYXJz
ZU1vdmVUb1NlZ21lbnQoRmxvYXRQb2ludCYpIGZpbmFsOworICAgIGJvb2wgcGFyc2VMaW5lVG9T
ZWdtZW50KEZsb2F0UG9pbnQmKSBmaW5hbDsKKyAgICBib29sIHBhcnNlTGluZVRvSG9yaXpvbnRh
bFNlZ21lbnQoZmxvYXQmKSBmaW5hbDsKKyAgICBib29sIHBhcnNlTGluZVRvVmVydGljYWxTZWdt
ZW50KGZsb2F0JikgZmluYWw7CisgICAgYm9vbCBwYXJzZUN1cnZlVG9DdWJpY1NlZ21lbnQoRmxv
YXRQb2ludCYsIEZsb2F0UG9pbnQmLCBGbG9hdFBvaW50JikgZmluYWw7CisgICAgYm9vbCBwYXJz
ZUN1cnZlVG9DdWJpY1Ntb290aFNlZ21lbnQoRmxvYXRQb2ludCYsIEZsb2F0UG9pbnQmKSBmaW5h
bDsKKyAgICBib29sIHBhcnNlQ3VydmVUb1F1YWRyYXRpY1NlZ21lbnQoRmxvYXRQb2ludCYsIEZs
b2F0UG9pbnQmKSBmaW5hbDsKKyAgICBib29sIHBhcnNlQ3VydmVUb1F1YWRyYXRpY1Ntb290aFNl
Z21lbnQoRmxvYXRQb2ludCYpIGZpbmFsOworICAgIGJvb2wgcGFyc2VBcmNUb1NlZ21lbnQoZmxv
YXQmLCBmbG9hdCYsIGZsb2F0JiwgYm9vbCYsIGJvb2wmLCBGbG9hdFBvaW50JikgZmluYWw7CiAK
ICAgICBjb25zdCBTVkdQYXRoU2VnTGlzdCYgbV9wYXRoU2VnTGlzdDsKICAgICBSZWZQdHI8U1ZH
UGF0aFNlZz4gbV9zZWdtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdNb3ZldG9BYnMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTW92ZXRvQWJz
LmgKaW5kZXggZDkwNTllZWI1YzUzZTU4ZGFiZDVmOTAxNzhkMWI1MTFiNmY1MDI1NC4uMDMxMDYz
YmFlNmYxMjk5NWJjN2I3OWM0YWJiNmE5MDBjYWFkNzI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhTZWdNb3ZldG9BYnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZ01vdmV0b0Ficy5oCkBAIC0zOSw4ICszOSw4IEBAIHByaXZhdGU6CiAgICAgewog
ICAgIH0KIAotICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gUEFUSFNFR19NT1ZFVE9fQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTSI7IH0KKyAgICB1bnNpZ25lZCBzaG9y
dCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTU9WRVRPX0FCUzsg
fQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
Ik0iOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ01vdmV0b1JlbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWdNb3ZldG9SZWwuaAppbmRleCAwNzhiODQxMmQ5YjU3YTVmMGQ4ODQ3YWVhYTEyZmFi
Yzk3ZWM0OGFlLi44MzllZTliY2E0ZDE4MmI3NDZjN2IyNWY3N2IyNzViMzBmYWIyMTJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ01vdmV0b1JlbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTW92ZXRvUmVsLmgKQEAgLTM5LDggKzM5LDggQEAg
cHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQQVRIU0VHX01PVkVUT19SRUw7IH0KLSAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJtIjsgfQor
ICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFU
SFNFR19NT1ZFVE9fUkVMOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAibSI7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ1NvdXJjZS5oCmluZGV4IDJmN2E1ZWRlZTllMTBm
NjM2NzAwOTRjMTgxZDMyMWIyMDRjMDRjZTIuLjQxYTkwMmVmYjRiNGU1YjgxOTAwNTcxNjk5MGJj
M2U0NWU0MmRiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5n
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdTb3VyY2UuaApA
QCAtMzEsMjAgKzMxLDIwIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBTVkdQYXRoU3RyaW5nU291
cmNlKGNvbnN0IFN0cmluZyYpOwogCiBwcml2YXRlOgotICAgIGJvb2wgaGFzTW9yZURhdGEoKSBj
b25zdCBvdmVycmlkZTsKLSAgICBib29sIG1vdmVUb05leHRUb2tlbigpIG92ZXJyaWRlOwotICAg
IGJvb2wgcGFyc2VTVkdTZWdtZW50VHlwZShTVkdQYXRoU2VnVHlwZSYpIG92ZXJyaWRlOwotICAg
IFNWR1BhdGhTZWdUeXBlIG5leHRDb21tYW5kKFNWR1BhdGhTZWdUeXBlIHByZXZpb3VzQ29tbWFu
ZCkgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNNb3JlRGF0YSgpIGNvbnN0IGZpbmFsOworICAgIGJv
b2wgbW92ZVRvTmV4dFRva2VuKCkgZmluYWw7CisgICAgYm9vbCBwYXJzZVNWR1NlZ21lbnRUeXBl
KFNWR1BhdGhTZWdUeXBlJikgZmluYWw7CisgICAgU1ZHUGF0aFNlZ1R5cGUgbmV4dENvbW1hbmQo
U1ZHUGF0aFNlZ1R5cGUgcHJldmlvdXNDb21tYW5kKSBmaW5hbDsKIAotICAgIGJvb2wgcGFyc2VN
b3ZlVG9TZWdtZW50KEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKLSAgICBib29sIHBhcnNlTGluZVRv
U2VnbWVudChGbG9hdFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwYXJzZUxpbmVUb0hvcml6
b250YWxTZWdtZW50KGZsb2F0Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwYXJzZUxpbmVUb1ZlcnRp
Y2FsU2VnbWVudChmbG9hdCYpIG92ZXJyaWRlOwotICAgIGJvb2wgcGFyc2VDdXJ2ZVRvQ3ViaWNT
ZWdtZW50KEZsb2F0UG9pbnQmLCBGbG9hdFBvaW50JiwgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwot
ICAgIGJvb2wgcGFyc2VDdXJ2ZVRvQ3ViaWNTbW9vdGhTZWdtZW50KEZsb2F0UG9pbnQmLCBGbG9h
dFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwYXJzZUN1cnZlVG9RdWFkcmF0aWNTZWdtZW50
KEZsb2F0UG9pbnQmLCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwYXJzZUN1cnZl
VG9RdWFkcmF0aWNTbW9vdGhTZWdtZW50KEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKLSAgICBib29s
IHBhcnNlQXJjVG9TZWdtZW50KGZsb2F0JiwgZmxvYXQmLCBmbG9hdCYsIGJvb2wmLCBib29sJiwg
RmxvYXRQb2ludCYpIG92ZXJyaWRlOworICAgIGJvb2wgcGFyc2VNb3ZlVG9TZWdtZW50KEZsb2F0
UG9pbnQmKSBmaW5hbDsKKyAgICBib29sIHBhcnNlTGluZVRvU2VnbWVudChGbG9hdFBvaW50Jikg
ZmluYWw7CisgICAgYm9vbCBwYXJzZUxpbmVUb0hvcml6b250YWxTZWdtZW50KGZsb2F0JikgZmlu
YWw7CisgICAgYm9vbCBwYXJzZUxpbmVUb1ZlcnRpY2FsU2VnbWVudChmbG9hdCYpIGZpbmFsOwor
ICAgIGJvb2wgcGFyc2VDdXJ2ZVRvQ3ViaWNTZWdtZW50KEZsb2F0UG9pbnQmLCBGbG9hdFBvaW50
JiwgRmxvYXRQb2ludCYpIGZpbmFsOworICAgIGJvb2wgcGFyc2VDdXJ2ZVRvQ3ViaWNTbW9vdGhT
ZWdtZW50KEZsb2F0UG9pbnQmLCBGbG9hdFBvaW50JikgZmluYWw7CisgICAgYm9vbCBwYXJzZUN1
cnZlVG9RdWFkcmF0aWNTZWdtZW50KEZsb2F0UG9pbnQmLCBGbG9hdFBvaW50JikgZmluYWw7Cisg
ICAgYm9vbCBwYXJzZUN1cnZlVG9RdWFkcmF0aWNTbW9vdGhTZWdtZW50KEZsb2F0UG9pbnQmKSBm
aW5hbDsKKyAgICBib29sIHBhcnNlQXJjVG9TZWdtZW50KGZsb2F0JiwgZmxvYXQmLCBmbG9hdCYs
IGJvb2wmLCBib29sJiwgRmxvYXRQb2ludCYpIGZpbmFsOwogCiAgICAgU3RyaW5nIG1fc3RyaW5n
OwogICAgIGJvb2wgbV9pczhCaXRTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFRyYXZlcnNhbFN0YXRlQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhUcmF2ZXJzYWxTdGF0ZUJ1aWxkZXIuaAppbmRleCBlZmU0YWI3MzNlYjFjMTY3ZjU2N2Ex
MGIwY2RhMmRkYjRjNzM4OTI0Li42NjgzNDNhMGEwM2ViOWZhZWRmZTJhNjQxZjEyNDY2ZWNhYjg5
ZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFRyYXZlcnNhbFN0YXRl
QnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVHJhdmVyc2FsU3RhdGVC
dWlsZGVyLmgKQEAgLTM3LDI0ICszNywyNCBAQCBwdWJsaWM6CiAgICAgZmxvYXQgdG90YWxMZW5n
dGgoKSBjb25zdDsKICAgICBTVkdQb2ludCBjdXJyZW50UG9pbnQoKSBjb25zdDsKIAotICAgIHZv
aWQgaW5jcmVtZW50UGF0aFNlZ21lbnRDb3VudCgpIG92ZXJyaWRlIHsgKyttX3NlZ21lbnRJbmRl
eDsgfQotICAgIGJvb2wgY29udGludWVDb25zdW1pbmcoKSBvdmVycmlkZTsKKyAgICB2b2lkIGlu
Y3JlbWVudFBhdGhTZWdtZW50Q291bnQoKSBmaW5hbCB7ICsrbV9zZWdtZW50SW5kZXg7IH0KKyAg
ICBib29sIGNvbnRpbnVlQ29uc3VtaW5nKCkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgLy8gVXNl
ZCBpbiBVbmFsdGVyZWRQYXJzaW5nL05vcm1hbGl6ZWRQYXJzaW5nIG1vZGVzLgotICAgIHZvaWQg
bW92ZVRvKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGNsb3NlZCwgUGF0aENvb3JkaW5hdGVNb2Rl
KSBvdmVycmlkZTsKLSAgICB2b2lkIGxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiwgUGF0aENvb3Jk
aW5hdGVNb2RlKSBvdmVycmlkZTsKLSAgICB2b2lkIGN1cnZlVG9DdWJpYyhjb25zdCBGbG9hdFBv
aW50JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0
ZU1vZGUpIG92ZXJyaWRlOwotICAgIHZvaWQgY2xvc2VQYXRoKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBtb3ZlVG8oY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgY2xvc2VkLCBQYXRoQ29vcmRpbmF0ZU1v
ZGUpIGZpbmFsOworICAgIHZvaWQgbGluZVRvKGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRp
bmF0ZU1vZGUpIGZpbmFsOworICAgIHZvaWQgY3VydmVUb0N1YmljKGNvbnN0IEZsb2F0UG9pbnQm
LCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9k
ZSkgZmluYWw7CisgICAgdm9pZCBjbG9zZVBhdGgoKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICAv
LyBOb3QgdXNlZCBmb3IgUGF0aFRyYXZlcnNhbFN0YXRlLgotICAgIHZvaWQgbGluZVRvSG9yaXpv
bnRhbChmbG9hdCwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9Ci0gICAgdm9pZCBsaW5lVG9WZXJ0aWNhbChmbG9hdCwgUGF0aENvb3JkaW5hdGVN
b2RlKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCBjdXJ2ZVRv
Q3ViaWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29v
cmRpbmF0ZU1vZGUpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lk
IGN1cnZlVG9RdWFkcmF0aWMoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQ
YXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAg
ICB2b2lkIGN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29y
ZGluYXRlTW9kZSkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQg
YXJjVG8oZmxvYXQsIGZsb2F0LCBmbG9hdCwgYm9vbCwgYm9vbCwgY29uc3QgRmxvYXRQb2ludCYs
IFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQor
ICAgIHZvaWQgbGluZVRvSG9yaXpvbnRhbChmbG9hdCwgUGF0aENvb3JkaW5hdGVNb2RlKSBmaW5h
bCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBsaW5lVG9WZXJ0aWNhbChmbG9h
dCwgUGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Cisg
ICAgdm9pZCBjdXJ2ZVRvQ3ViaWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0
UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KKyAgICB2b2lkIGN1cnZlVG9RdWFkcmF0aWMoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZs
b2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KKyAgICB2b2lkIGN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYs
IFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAg
IHZvaWQgYXJjVG8oZmxvYXQsIGZsb2F0LCBmbG9hdCwgYm9vbCwgYm9vbCwgY29uc3QgRmxvYXRQ
b2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogCiAgICAgUGF0aFRyYXZlcnNhbFN0YXRlJiBtX3RyYXZlcnNhbFN0YXRlOwogICAgIHVuc2ln
bmVkIG1fc2VnbWVudEluZGV4IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdHRlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1l
bnQuaAppbmRleCBhNzg2Njc5MTkxODhlY2E4ZGNjYTg2ODU4ZTY4YjRlNGZjNzViYWUwLi5jMTAz
MjFhOWNiYTkxNDRmNWUxOTQyZTJmZTU3MTkxMTBmZDU2NTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuaApAQCAtNDksMjIgKzQ5LDIyIEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgY29sbGVjdFBhdHRlcm5BdHRyaWJ1dGVzKFBhdHRlcm5BdHRyaWJ1dGVzJikgY29uc3Q7CiAK
LSAgICBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0oU1ZHTG9j
YXRhYmxlOjpDVE1TY29wZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWZmaW5lVHJhbnNmb3JtIGxv
Y2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNmb3JtKFNWR0xvY2F0YWJsZTo6Q1RNU2NvcGUpIGNvbnN0
IGZpbmFsOwogCiBwcml2YXRlOgogICAgIFNWR1BhdHRlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIAotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KLSAgICBib29sIG5lZWRzUGVuZGlu
Z1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7
IH0KKyAgICBib29sIG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
KSBmaW5hbDsKKyAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGZpbmFsOworICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikg
ZmluYWw7CiAKLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwor
ICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVy
U3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7CiAKLSAgICBib29sIHNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR1BhdHRlcm5F
bGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChYLCB4KQpAQCAtODEsOSAr
ODEsOSBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIAog
ICAgIC8vIFNWR1Rlc3RzCi0gICAgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMoKSBv
dmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXModGhpcyk7IH0K
LSAgICB2b2lkIHN5bmNocm9uaXplUmVxdWlyZWRFeHRlbnNpb25zKCkgb3ZlcnJpZGUgeyBTVkdU
ZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnModGhpcyk7IH0KLSAgICB2b2lkIHN5
bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6
ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CisgICAgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRmVh
dHVyZXMoKSBmaW5hbCB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXModGhp
cyk7IH0KKyAgICB2b2lkIHN5bmNocm9uaXplUmVxdWlyZWRFeHRlbnNpb25zKCkgZmluYWwgeyBT
VkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnModGhpcyk7IH0KKyAgICB2b2lk
IHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBmaW5hbCB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6
ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCmluZGV4IGJiMjQ4YzNjMTcxN2IwMGQ5NjNjYzcw
NTU5YTNiNmY0NmJjNTVhM2QuLjhjYmRmYjQxNmVhMzJiN2NiNDIxNmExZjY3YzI2MmMzNWZhMGI3
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCkBAIC0zNywxNCArMzcsMTQgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBTVkdSZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKICAgICAKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCi0gICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCi0gICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVM
ZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgc2VsZkhh
c1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUm
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisgICAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURf
UFJPUEVSVElFUyhTVkdSZWN0RWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5H
VEgoWCwgeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4IDFjMjE4YTAx
NjZiODg0Nzc2NzRjMzJjOTM3MDgzYzZlZDEzNTE0YjguLmUyMWQzMDlmMDMxMGE4MTk4YzJjZjk3
NTAwYjg5NWQwMDQ4MTBkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApA
QCAtNDAsNDIgKzQwLDQyIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHU2NyaXB0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJz
ZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgSW5z
ZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92
ZXJyaWRlOwotICAgIHZvaWQgZmluaXNoZWRJbnNlcnRpbmdTdWJ0cmVlKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmKSBmaW5hbDsKKyAgICBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVk
SW50byhDb250YWluZXJOb2RlJikgZmluYWw7CisgICAgdm9pZCBmaW5pc2hlZEluc2VydGluZ1N1
YnRyZWUoKSBmaW5hbDsKKyAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5n
ZSYpIGZpbmFsOwogCi0gICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBvdmVycmlkZTsKLSAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBmaW5hbDsKKyAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgZmluYWw7CiAKLSAgICB2
b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hT
ZXQ8VVJMPiYpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9vbCBoYXZlTG9hZGVkUmVxdWlyZWRSZXNv
dXJjZXMoKSBvdmVycmlkZSB7IHJldHVybiBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpo
YXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKTsgfQorICAgIGJvb2wgaGF2ZUxvYWRlZFJlcXVp
cmVkUmVzb3VyY2VzKCkgZmluYWwgeyByZXR1cm4gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZDo6aGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCk7IH0KIAotICAgIFN0cmluZyBzb3VyY2VB
dHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIFN0cmluZyBjaGFyc2V0QXR0cmli
dXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBTdHJpbmcgdHlwZUF0dHJpYnV0ZVZhbHVl
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU3RyaW5nIGxhbmd1YWdlQXR0cmlidXRlVmFsdWUoKSBj
b25zdCBvdmVycmlkZTsKLSAgICBTdHJpbmcgZm9yQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICBTdHJpbmcgZXZlbnRBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wg
ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaGFzU291cmNl
QXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHNvdXJjZUF0dHJpYnV0ZVZh
bHVlKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGNoYXJzZXRBdHRyaWJ1dGVWYWx1ZSgpIGNv
bnN0IGZpbmFsOworICAgIFN0cmluZyB0eXBlQXR0cmlidXRlVmFsdWUoKSBjb25zdCBmaW5hbDsK
KyAgICBTdHJpbmcgbGFuZ3VhZ2VBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IGZpbmFsOworICAgIFN0
cmluZyBmb3JBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBldmVudEF0
dHJpYnV0ZVZhbHVlKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVl
KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgZmlu
YWw7CisgICAgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdCBmaW5hbDsKIAotICAgIHZv
aWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSBvdmVycmlkZSB7IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ6OmRpc3BhdGNoTG9hZEV2ZW50KHRoaXMpOyB9CisgICAgdm9pZCBkaXNwYXRjaExvYWRF
dmVudCgpIGZpbmFsIHsgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlzcGF0Y2hMb2Fk
RXZlbnQodGhpcyk7IH0KIAotICAgIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0
cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJl
bihEb2N1bWVudCYpIGZpbmFsOworICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5k
ZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkCi0gICAgdm9pZCBzZXRIYXZlRmlyZWRMb2FkRXZlbnQoYm9vbCBoYXZl
RmlyZWRMb2FkRXZlbnQpIG92ZXJyaWRlIHsgU2NyaXB0RWxlbWVudDo6c2V0SGF2ZUZpcmVkTG9h
ZEV2ZW50KGhhdmVGaXJlZExvYWRFdmVudCk7IH0KLSAgICBib29sIGlzUGFyc2VySW5zZXJ0ZWQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTY3JpcHRFbGVtZW50Ojppc1BhcnNlckluc2VydGVk
KCk7IH0KLSAgICBib29sIGhhdmVGaXJlZExvYWRFdmVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFNjcmlwdEVsZW1lbnQ6OmhhdmVGaXJlZExvYWRFdmVudCgpOyB9Ci0gICAgVGltZXIqIHN2
Z0xvYWRFdmVudFRpbWVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gJm1fc3ZnTG9hZEV2ZW50VGltZXI7
IH0KKyAgICB2b2lkIHNldEhhdmVGaXJlZExvYWRFdmVudChib29sIGhhdmVGaXJlZExvYWRFdmVu
dCkgZmluYWwgeyBTY3JpcHRFbGVtZW50OjpzZXRIYXZlRmlyZWRMb2FkRXZlbnQoaGF2ZUZpcmVk
TG9hZEV2ZW50KTsgfQorICAgIGJvb2wgaXNQYXJzZXJJbnNlcnRlZCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFNjcmlwdEVsZW1lbnQ6OmlzUGFyc2VySW5zZXJ0ZWQoKTsgfQorICAgIGJvb2wgaGF2
ZUZpcmVkTG9hZEV2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gU2NyaXB0RWxlbWVudDo6aGF2
ZUZpcmVkTG9hZEV2ZW50KCk7IH0KKyAgICBUaW1lciogc3ZnTG9hZEV2ZW50VGltZXIoKSBmaW5h
bCB7IHJldHVybiAmbV9zdmdMb2FkRXZlbnRUaW1lcjsgfQogCiAjaWZuZGVmIE5ERUJVRwotICAg
IGJvb2wgZmlsdGVyT3V0QW5pbWF0YWJsZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBmaWx0ZXJPdXRBbmltYXRhYmxlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAgICAgQkVHSU5fREVD
TEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR1NjcmlwdEVsZW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdG9wRWxlbWVudC5oCmluZGV4IDQ4MGQ0YTkwODRkMTdhMGVlNDc0ZjQ5MDhhZWZiOWYzODc0
ZmE5NzMuLmZjYTQyMTM4M2NiZWM0OWY5MDE4ZmJkMjM0NWNjOGVkMjAzMjM2YzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCkBAIC0zNSwxMyArMzUsMTMgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBTVkdTdG9wRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAotICAg
IGJvb2wgaXNHcmFkaWVudFN0b3AoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgYm9vbCBpc0dyYWRpZW50U3RvcCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAot
ICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVy
U3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CisgICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKKyAgICBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUyhTVkdTdG9wRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9O
VU1CRVIoT2Zmc2V0LCBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3R5bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKaW5k
ZXggYjU3YWU1ZDg2YmFlNjRkZWIzZjI2MzBiZTJmNDFiYTQxY2UwOGNjMy4uYzU2NDc1NTJkMTE3
MWRjZjg5MTAxNzk0YjkxZmM3ZTFmZTRmM2Y4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVs
ZW1lbnQuaApAQCAtNDMsMjUgKzQzLDI1IEBAIHB1YmxpYzoKICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG1lZGlhKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNZWRpYShjb25zdCBBdG9taWNTdHJpbmcm
LCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldFRpdGxlKGNvbnN0
IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAgICBTVkdTdHls
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgSW5zZXJ0aW9uTm90aWZpY2F0aW9u
UmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQg
cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7Cisg
ICAgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9k
ZSYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIGZpbmFsOwor
ICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAKLSAg
ICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQorICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2b2lkIGZpbmlzaFBhcnNpbmdDaGls
ZHJlbigpIG92ZXJyaWRlOworICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgZmluYWw7
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZVNo
ZWV0T3duZXIuaXNMb2FkaW5nKCk7IH0KLSAgICBib29sIHNoZWV0TG9hZGVkKCkgb3ZlcnJpZGUg
eyByZXR1cm4gbV9zdHlsZVNoZWV0T3duZXIuc2hlZXRMb2FkZWQoKnRoaXMpOyB9Ci0gICAgdm9p
ZCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoKSBvdmVycmlkZSB7IG1fc3R5bGVTaGVldE93bmVy
LnN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgqdGhpcyk7IH0KLSAgICBUaW1lciogc3ZnTG9hZEV2
ZW50VGltZXIoKSBvdmVycmlkZSB7IHJldHVybiAmbV9zdmdMb2FkRXZlbnRUaW1lcjsgfQorICAg
IGJvb2wgc2hlZXRMb2FkZWQoKSBmaW5hbCB7IHJldHVybiBtX3N0eWxlU2hlZXRPd25lci5zaGVl
dExvYWRlZCgqdGhpcyk7IH0KKyAgICB2b2lkIHN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgpIGZp
bmFsIHsgbV9zdHlsZVNoZWV0T3duZXIuc3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCp0aGlzKTsg
fQorICAgIFRpbWVyKiBzdmdMb2FkRXZlbnRUaW1lcigpIGZpbmFsIHsgcmV0dXJuICZtX3N2Z0xv
YWRFdmVudFRpbWVyOyB9CiAKICAgICBJbmxpbmVTdHlsZVNoZWV0T3duZXIgbV9zdHlsZVNoZWV0
T3duZXI7CiAgICAgVGltZXIgbV9zdmdMb2FkRXZlbnRUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3dpdGNoRWxlbWVudC5oCmluZGV4IDQyMTBiODBmOGI5MGM1MGJiOTA5YWExOWI1YzQ0ZDExMjdl
MjYwYjAuLmRkYzZkNTNjOThhMzU0ZWZiNWUxZmQ1MzAxNGQ0OTlhNzg3MTg2NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaApAQCAtMzUsMTAgKzM1LDEwIEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgU1ZHU3dpdGNoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKICAgICAKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCi0gICAgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOworICAgIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgZmluYWw7CisgICAgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJP
UEVSVElFUyhTVkdTd2l0Y2hFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0JPT0xF
QU5fT1ZFUlJJREUoRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDVlNDE0YTg1
MzhkNzg4NmJhMTQ0MjZmMzA5MzJhYzYxNzliOGE1NDcuLjY1NTAxOGQ5MzgwMDQ3ZGRkOGI1YzRk
ZjZkYzdmOGM4Yjk1MmY4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVm
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcApA
QCAtNzIsOCArNzIsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNWR1RSZWZU
YXJnZXRFdmVudExpc3RlbmVyKFNWR1RSZWZFbGVtZW50JiB0cmVmRWxlbWVudCk7CiAKLSAgICB2
b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopIG92ZXJyaWRl
OwotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQq
KSBmaW5hbDsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYpIGNvbnN0
IGZpbmFsOwogCiAgICAgU1ZHVFJlZkVsZW1lbnQmIG1fdHJlZkVsZW1lbnQ7CiAgICAgUmVmUHRy
PEVsZW1lbnQ+IG1fdGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rp
dGxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCmluZGV4
IGY2MTZhM2U4ZDZjMGExMDZlMTQxYzllNDlhYTc0NmE3Y2RlMDcwNTEuLjkwM2ViNDM4ZWQxMWRm
YWE0MzgzNmQyMmZkMWFlNjAzZGM2ZWQ4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUaXRsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVt
ZW50LmgKQEAgLTMzLDExICszMywxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR1RpdGxl
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIEluc2VydGlv
bk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOworICAgIElu
c2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBm
aW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBmaW5hbDsKKyAgICB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwogCi0gICAgYm9v
bCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RvT1RGRm9udENvbnZlcnNpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RvT1RGRm9udENvbnZlcnNpb24uY3BwCmluZGV4IDQyZTlk
OTkwNGE4MjA0NzRjYzU3NTZkNjVhYmMyOGRmMzZjNjc1M2QuLmFlZTk0N2MwMTM2ZDljNjBjZTAy
NWNiOTM3MTdmMzRhMWY5Mjg1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
b09URkZvbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVG9PVEZG
b250Q29udmVyc2lvbi5jcHAKQEAgLTExODEsNyArMTE4MSw3IEBAIHByaXZhdGU6CiAgICAgICAg
IG1fY3VycmVudCA9IGRlc3RpbmF0aW9uOwogICAgIH0KIAotICAgIHZvaWQgbW92ZVRvKGNvbnN0
IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBib29sIGNsb3NlZCwgUGF0aENvb3JkaW5hdGVNb2Rl
IG1vZGUpIG92ZXJyaWRlCisgICAgdm9pZCBtb3ZlVG8oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0
UG9pbnQsIGJvb2wgY2xvc2VkLCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkgZmluYWwKICAgICB7
CiAgICAgICAgIGlmIChjbG9zZWQgJiYgIW1fY2ZmRGF0YS5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICBjbG9zZVBhdGgoKTsKQEAgLTEyMDEsNyArMTIwMSw3IEBAIHByaXZhdGU6CiAgICAgICAgIG1f
Y2ZmRGF0YS5hcHBlbmQockxpbmVUbyk7CiAgICAgfQogCi0gICAgdm9pZCBsaW5lVG8oY29uc3Qg
RmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKSBvdmVycmlk
ZQorICAgIHZvaWQgbGluZVRvKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29v
cmRpbmF0ZU1vZGUgbW9kZSkgZmluYWwKICAgICB7CiAgICAgICAgIEZsb2F0UG9pbnQgc2NhbGVk
VGFyZ2V0UG9pbnQgPSBGbG9hdFBvaW50KHRhcmdldFBvaW50LngoKSAqIG1fdW5pdHNQZXJFbVNj
YWxhciwgdGFyZ2V0UG9pbnQueSgpICogbV91bml0c1BlckVtU2NhbGFyKTsKICAgICAgICAgRmxv
YXRQb2ludCBkZXN0aW5hdGlvbiA9IG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcyA/IHNjYWxl
ZFRhcmdldFBvaW50IDogbV9jdXJyZW50ICsgc2NhbGVkVGFyZ2V0UG9pbnQ7CkBAIC0xMjA5LDcg
KzEyMDksNyBAQCBwcml2YXRlOgogICAgICAgICB1bnNjYWxlZExpbmVUbyhkZXN0aW5hdGlvbik7
CiAgICAgfQogCi0gICAgdm9pZCBjdXJ2ZVRvQ3ViaWMoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQx
LCBjb25zdCBGbG9hdFBvaW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MywgUGF0
aENvb3JkaW5hdGVNb2RlIG1vZGUpIG92ZXJyaWRlCisgICAgdm9pZCBjdXJ2ZVRvQ3ViaWMoY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludDIsIGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50MywgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpIGZpbmFsCiAgICAgewog
ICAgICAgICBGbG9hdFBvaW50IHNjYWxlZFBvaW50MSA9IEZsb2F0UG9pbnQocG9pbnQxLngoKSAq
IG1fdW5pdHNQZXJFbVNjYWxhciwgcG9pbnQxLnkoKSAqIG1fdW5pdHNQZXJFbVNjYWxhcik7CiAg
ICAgICAgIEZsb2F0UG9pbnQgc2NhbGVkUG9pbnQyID0gRmxvYXRQb2ludChwb2ludDIueCgpICog
bV91bml0c1BlckVtU2NhbGFyLCBwb2ludDIueSgpICogbV91bml0c1BlckVtU2NhbGFyKTsKQEAg
LTEyMjcsMjEgKzEyMjcsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgbV9jZmZEYXRhLmFwcGVuZChy
ckN1cnZlVG8pOwogICAgIH0KIAotICAgIHZvaWQgY2xvc2VQYXRoKCkgb3ZlcnJpZGUKKyAgICB2
b2lkIGNsb3NlUGF0aCgpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAobV9jdXJyZW50ICE9IG1f
c3RhcnRpbmdQb2ludCkKICAgICAgICAgICAgIHVuc2NhbGVkTGluZVRvKG1fc3RhcnRpbmdQb2lu
dCk7CiAgICAgfQogCi0gICAgdm9pZCBpbmNyZW1lbnRQYXRoU2VnbWVudENvdW50KCkgb3ZlcnJp
ZGUgeyB9Ci0gICAgYm9vbCBjb250aW51ZUNvbnN1bWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2b2lkIGluY3JlbWVudFBhdGhTZWdtZW50Q291bnQoKSBmaW5hbCB7IH0KKyAg
ICBib29sIGNvbnRpbnVlQ29uc3VtaW5nKCkgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
dm9pZCBsaW5lVG9Ib3Jpem9udGFsKGZsb2F0LCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRl
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIGxpbmVUb1ZlcnRpY2FsKGZsb2F0
LCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
LSAgICB2b2lkIGN1cnZlVG9DdWJpY1Ntb290aChjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxv
YXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQotICAgIHZvaWQgY3VydmVUb1F1YWRyYXRpYyhjb25zdCBGbG9hdFBvaW50JiwgY29u
c3QgRmxvYXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQotICAgIHZvaWQgY3VydmVUb1F1YWRyYXRpY1Ntb290aChjb25zdCBGbG9h
dFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9Ci0gICAgdm9pZCBhcmNUbyhmbG9hdCwgZmxvYXQsIGZsb2F0LCBib29sLCBib29sLCBj
b25zdCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZSB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBsaW5lVG9Ib3Jpem9udGFsKGZsb2F0LCBQYXRoQ29v
cmRpbmF0ZU1vZGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIGxp
bmVUb1ZlcnRpY2FsKGZsb2F0LCBQYXRoQ29vcmRpbmF0ZU1vZGUpIGZpbmFsIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIGN1cnZlVG9DdWJpY1Ntb290aChjb25zdCBGbG9hdFBv
aW50JiwgY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWwgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgY3VydmVUb1F1YWRyYXRpYyhjb25zdCBGbG9h
dFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgZmluYWwgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgY3VydmVUb1F1YWRyYXRpY1Ntb290aChj
b25zdCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbCB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CisgICAgdm9pZCBhcmNUbyhmbG9hdCwgZmxvYXQsIGZsb2F0LCBib29sLCBi
b29sLCBjb25zdCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBmaW5hbCB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICBWZWN0b3I8Y2hhcj4mIG1fY2ZmRGF0YTsKICAgICBG
bG9hdFBvaW50IG1fc3RhcnRpbmdQb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVbmtub3duRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vua25vd25FbGVt
ZW50LmgKaW5kZXggZmVjNmU5NWFjNjdmMjcyM2E0ZTg3Mjk5MmQ0ZWM0YjZiN2QxMmFmYS4uY2Q2
YmNiMTc5ZjBmNzBjN2M2NTkyMGMyYmM3N2MyOTYyYmJlZTViMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1Vua25vd25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1Vua25vd25FbGVtZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB7CiAg
ICAgfQogCi0gICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCmluZGV4IDE4ZDQ5M2Zl
ZjIzNTYwY2E2MjViMTM5MDgzOTUyZjIwNDI5MjdlYmMuLjc1MzhmNTBiNzZiYzk5ZGY1NmUzZmIw
MThmZTZkM2E4NTU2Y2U0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2Vy
bkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmgKQEAg
LTM1LDcgKzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdWS2VybkVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3
RWxlbWVudC5oCmluZGV4IDM1ZDRhN2ZlMWQwYzNlZTgyYjQ0ZTMyNWZhZmU5YzY5MDZjY2MxOTMu
LjE4YzFiMGEzNmFhOTJlNjNhNTI5OTg5NWY2N2FjZDYzMDk0NGQ3ZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3RWxlbWVudC5oCkBAIC01MCw5ICs1MCw5IEBAIHByaXZhdGU6CiAgICAgU1ZHVmll
d0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICAvLyBGSVhN
RTogc3ZnQXR0cmlidXRlQ2hhbmdlZCBtaXNzaW5nLgotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIGZpbmFsOwogCi0gICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgQkVH
SU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR1ZpZXdFbGVtZW50KQogICAgICAgICBE
RUNMQVJFX0FOSU1BVEVEX0JPT0xFQU5fT1ZFUlJJREUoRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdab29tRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29tRXZlbnQuaApp
bmRleCBiZjc2NTQ3Mjk1NmM1Y2NmOGViNmZmYzg2MGI4MzNmYzhiMjgzMWE0Li45NzRhZDE4ZWE5
MGZhNjViODU2MDY2OTE4YTc0MTVkZWU3MjhkMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHWm9vbUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1pvb21FdmVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIFNWR1BvaW50IG5ld1RyYW5zbGF0
ZSgpIGNvbnN0OwogCi0gICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IGZpbmFs
OwogCiBwcml2YXRlOgogICAgIFNWR1pvb21FdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAppbmRleCA4YmVkMTc2MmMyMGY2MTA4OWU5
OGY4MTI3ZTFlZTU0ZGE0NWQyNzA3Li5jNDA5YzBmYzMwNzE1MGUyYzhjY2YyZGVjYzQ3N2FlMjgz
NDM3MWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVt
ZW50LmNwcApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICA6IG51bGxwdHI7
CiAgICAgfQogCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIG90aGVy
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5l
ciYgb3RoZXIpIGNvbnN0IGZpbmFsOwogICAgIAogICAgIHZvaWQgZGlzY29ubmVjdEFuaW1hdGlv
bigpCiAgICAgewpAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAg
ICB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopIG92ZXJy
aWRlOworICAgIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50
KikgZmluYWw7CiAKICAgICBTVkdTTUlMRWxlbWVudCogbV9hbmltYXRpb247CiAgICAgU1ZHU01J
TEVsZW1lbnQ6OkNvbmRpdGlvbiogbV9jb25kaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5oCmluZGV4IDE3ZDkwNzI1M2U5ZTNmNzIxY2NkNWExMjZmNDg3NTJmMTg2N2Qx
YTIuLjk5MTlhODhhM2ZlZmM3YzkxZjU0MmU5ZjM3MTE0ZGIxZmQxNGI1ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC01MSwyMiArNTEsMjIgQEAgcHVibGljOgog
ICAgIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3Q7CiAgICAgRnJhbWVWaWV3
KiBmcmFtZVZpZXcoKSBjb25zdDsKIAotICAgIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1faW50cmluc2ljU2l6ZTsgfQorICAgIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1faW50cmluc2ljU2l6ZTsgfQogCiAgICAgdm9pZCBzZXRVUkwoY29uc3QgVVJM
JiB1cmwpIHsgbV91cmwgPSB1cmw7IH0KIAotICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmln
aW4oKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkg
Y29uc3QgZmluYWw7CiAKLSAgICBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBvdmVycmlk
ZTsKLSAgICBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBoYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBoYXNSZWxhdGl2ZUhl
aWdodCgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBzdGFydEFuaW1hdGlvbihDYXRjaFVwQW5p
bWF0aW9uID0gQ2F0Y2hVcCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wQW5pbWF0aW9uKCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCByZXNldEFuaW1hdGlvbigpIG92ZXJyaWRlOworICAgIHZvaWQgc3Rh
cnRBbmltYXRpb24oQ2F0Y2hVcEFuaW1hdGlvbiA9IENhdGNoVXApIGZpbmFsOworICAgIHZvaWQg
c3RvcEFuaW1hdGlvbigpIGZpbmFsOworICAgIHZvaWQgcmVzZXRBbmltYXRpb24oKSBmaW5hbDsK
IAogI2lmIFVTRShDQUlSTykKLSAgICBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJl
bnRGcmFtZSgpIG92ZXJyaWRlOworICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3Vy
cmVudEZyYW1lKCkgZmluYWw7CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTc1LDI2ICs3NSwyNiBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB+U1ZHSW1hZ2UoKTsKIAotICAgIFN0cmluZyBmaWxl
bmFtZUV4dGVuc2lvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIFN0cmluZyBmaWxlbmFtZUV4dGVu
c2lvbigpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBzZXRDb250YWluZXJTaXplKGNvbnN0IEZs
b2F0U2l6ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q29udGFpbmVyU2l6ZShjb25zdCBGbG9h
dFNpemUmKSBmaW5hbDsKICAgICBJbnRTaXplIGNvbnRhaW5lclNpemUoKSBjb25zdDsKLSAgICBi
b29sIHVzZXNDb250YWluZXJTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQot
ICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0
aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIG92
ZXJyaWRlOworICAgIGJvb2wgdXNlc0NvbnRhaW5lclNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CisgICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGlu
dHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5z
aWNSYXRpbykgZmluYWw7CiAKICAgICB2b2lkIHJlcG9ydEFwcHJveGltYXRlTWVtb3J5Q29zdCgp
IGNvbnN0OwotICAgIGJvb2wgZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIG92ZXJy
aWRlOworICAgIGJvb2wgZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIGZpbmFsOwog
CiAgICAgLy8gRklYTUU6IFNWR0ltYWdlcyB3aWxsIGJlIHVuYWJsZSB0byBwcnVuZSBiZWNhdXNl
IHRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIHlldC4KLSAgICB2b2lkIGRlc3Ryb3lE
ZWNvZGVkRGF0YShib29sKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0
YShib29sKSBmaW5hbCB7IH0KIAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyB0byBiZSBs
ZXNzIGNvbnNlcnZhdGl2ZS4KLSAgICBib29sIGN1cnJlbnRGcmFtZUtub3duVG9CZU9wYXF1ZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBjdXJyZW50RnJhbWVLbm93blRv
QmVPcGFxdWUoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBkdW1wKFRleHRT
dHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAoVGV4dFN0cmVhbSYpIGNvbnN0
IGZpbmFsOwogCiAgICAgU1ZHSW1hZ2UoSW1hZ2VPYnNlcnZlciYsIGNvbnN0IFVSTCYpOwotICAg
IHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHRvUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXcoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBmcm9tUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0
b1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbikgZmluYWw7CiAgICAgdm9pZCBkcmF3Rm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEZsb2F0U2l6ZSwgZmxvYXQsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpOwogICAgIHZvaWQgZHJhd1BhdHRl
cm5Gb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRTaXplJiBjb250YWlu
ZXJTaXplLCBmbG9hdCB6b29tLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNw
YWNpbmcsCiAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmLCBCbGVu
ZE1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2xpZW50cy5o
CmluZGV4IDY3OTRjNzJkZWVlYTA3OTVmODk5NDBhOTdlMDZkODM5Y2Q5MjU0M2QuLmZlNmYyZTQz
MWRiMTdiZjBiYWQwNGI3MWFkZTY4YmUzYjBkYzBiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDbGllbnRzLmgKQEAgLTQxLDE2ICs0MSwxNiBAQCBwdWJsaWM6
CiAgICAgewogICAgIH0KICAgICAKLSAgICBib29sIGlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBpc1NWR0ltYWdlQ2hyb21l
Q2xpZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIFNWR0ltYWdlKiBpbWFn
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2U7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgdm9pZCBj
aHJvbWVEZXN0cm95ZWQoKSBvdmVycmlkZQorICAgIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgZmlu
YWwKICAgICB7CiAgICAgICAgIG1faW1hZ2UgPSBudWxscHRyOwogICAgIH0KICAgICAKLSAgICB2
b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHIpIG92ZXJy
aWRlCisgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0
JiByKSBmaW5hbAogICAgIHsKICAgICAgICAgLy8gSWYgbV9pbWFnZS0+bV9wYWdlIGlzIG51bGws
IHdlJ3JlIGJlaW5nIGRlc3RydWN0ZWQsIGRvbid0IGZpcmUgY2hhbmdlZEluUmVjdCgpIGluIHRo
YXQgY2FzZS4KICAgICAgICAgaWYgKG1faW1hZ2UgJiYgbV9pbWFnZS0+aW1hZ2VPYnNlcnZlcigp
ICYmIG1faW1hZ2UtPm1fcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L1NWR0ltYWdlRm9yQ29udGFpbmVyLmgKaW5kZXggZDIyNGZjNDYxMmZkOTVhMWFlYTc3YWZiNDQ3
OTc2OTIzNTI3YWNkNC4uOGZhMDg3ZDA0Nzk2MWY3NzhlZGQwNjVlYmMyZDY4NmRjNDllOGQ5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFp
bmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFp
bmVyLmgKQEAgLTQyLDI4ICs0MiwyOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR0ltYWdlRm9yQ29udGFpbmVyKGltYWdlLCBjb250YWluZXJTaXplLCB6b29tKSk7
CiAgICAgfQogCi0gICAgYm9vbCBpc1NWR0ltYWdlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgRmxvYXRTaXpl
IHNpemUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0VVJMKGNvbnN0IFVSTCYgdXJsKSB7
IG1faW1hZ2UtPnNldFVSTCh1cmwpOyB9CiAKLSAgICBib29sIHVzZXNDb250YWluZXJTaXplKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pbWFnZS0+dXNlc0NvbnRhaW5lclNpemUoKTsgfQot
ICAgIGJvb2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW1h
Z2UtPmhhc1JlbGF0aXZlV2lkdGgoKTsgfQotICAgIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX2ltYWdlLT5oYXNSZWxhdGl2ZUhlaWdodCgpOyB9Ci0g
ICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRo
LCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgb3Zl
cnJpZGUKKyAgICBib29sIHVzZXNDb250YWluZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9pbWFnZS0+dXNlc0NvbnRhaW5lclNpemUoKTsgfQorICAgIGJvb2wgaGFzUmVsYXRpdmVXaWR0
aCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW1hZ2UtPmhhc1JlbGF0aXZlV2lkdGgoKTsgfQor
ICAgIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ltYWdl
LT5oYXNSZWxhdGl2ZUhlaWdodCgpOyB9CisgICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5z
aW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxv
YXRTaXplJiBpbnRyaW5zaWNSYXRpbykgZmluYWwKICAgICB7CiAgICAgICAgIG1faW1hZ2UtPmNv
bXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKGludHJpbnNpY1dpZHRoLCBpbnRyaW5zaWNIZWlnaHQs
IGludHJpbnNpY1JhdGlvKTsKICAgICB9CiAKLSAgICB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uKSBmaW5hbDsKIAotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2lu
dCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3Qm
LCBCbGVuZE1vZGUpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxv
YXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9h
dFJlY3QmLCBCbGVuZE1vZGUpIGZpbmFsOwogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
IHRvIGJlIGxlc3MgY29uc2VydmF0aXZlLgotICAgIGJvb2wgY3VycmVudEZyYW1lS25vd25Ub0Jl
T3BhcXVlKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGN1cnJlbnRGcmFt
ZUtub3duVG9CZU9wYXF1ZSgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBOYXRpdmVJ
bWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIG92ZXJyaWRlOworICAgIE5hdGl2
ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgU1ZHSW1hZ2VGb3JDb250YWluZXIoU1ZHSW1hZ2UqIGltYWdlLCBjb25zdCBGbG9hdFNp
emUmIGNvbnRhaW5lclNpemUsIGZsb2F0IHpvb20pCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6
CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgLypkZXN0
cm95QWxsKi8gPSB0cnVlKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0
YShib29sIC8qZGVzdHJveUFsbCovID0gdHJ1ZSkgZmluYWwgeyB9CiAKICAgICBTVkdJbWFnZSog
bV9pbWFnZTsKICAgICBjb25zdCBGbG9hdFNpemUgbV9jb250YWluZXJTaXplOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCmluZGV4IDU0ZmU5
ZmZjZTRjZWYwOWQyZDRiZWU3NjNmNGNjMjFiZWMxNWZjZTIuLmRmZGZjMjBlMWYyYWMzNGIxMzk0
NTEwMTkyODFjMzY1YmI5ODAzMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvZmlsdGVycy9TVkdGRUltYWdlLmgKQEAgLTM3LDE0ICszNywxNCBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxGRUltYWdlPiBjcmVhdGVXaXRoSW1hZ2UoRmlsdGVyJiwgUmVmUHRyPEltYWdl
PiwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyYpOwogICAgIHN0YXRpYyBSZWY8RkVJbWFn
ZT4gY3JlYXRlV2l0aElSSVJlZmVyZW5jZShGaWx0ZXImLCBEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8mKTsKIAotICAgIHZvaWQgcGxhdGZvcm1B
cHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBmaW5hbDsKKyAgICB2b2lkIGR1bXAoKSBmaW5h
bDsKIAotICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgZmluYWw7CiAKLSAgICBGaWx0ZXJF
ZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGaWx0
ZXJFZmZlY3RUeXBlSW1hZ2U7IH0KKyAgICBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlSW1hZ2U7IH0KIAotICAg
IFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRl
bnRpb24pIGNvbnN0IG92ZXJyaWRlOworICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50
YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0IGZpbmFsOwogICAgIAogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIH5GRUltYWdlKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCmluZGV4IDliYjU1NWYwZGZmNjkxNWU1YzRh
MzU1NGYwOWY1MmI0NWFlNjRkMTIuLjA3YjIyM2QyYjc0OTIzZWI5NmUxZjdlNDJhMDFiNzcyNGNi
M2NiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0Zp
bHRlci5oCkBAIC0zOCwxMiArMzgsMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHRmls
dGVyPiBjcmVhdGUoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCk7CiAKICAgICBGbG9hdFJlY3Qg
ZmlsdGVyUmVnaW9uSW5Vc2VyU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlclJlZ2lvbjsg
fQotICAgIEZsb2F0UmVjdCBmaWx0ZXJSZWdpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2Fic29sdXRlRmlsdGVyUmVnaW9uOyB9CisgICAgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fYWJzb2x1dGVGaWx0ZXJSZWdpb247IH0KIAotICAgIGZsb2F0
IGFwcGx5SG9yaXpvbnRhbFNjYWxlKGZsb2F0IHZhbHVlKSBjb25zdCBvdmVycmlkZTsKLSAgICBm
bG9hdCBhcHBseVZlcnRpY2FsU2NhbGUoZmxvYXQgdmFsdWUpIGNvbnN0IG92ZXJyaWRlOworICAg
IGZsb2F0IGFwcGx5SG9yaXpvbnRhbFNjYWxlKGZsb2F0IHZhbHVlKSBjb25zdCBmaW5hbDsKKyAg
ICBmbG9hdCBhcHBseVZlcnRpY2FsU2NhbGUoZmxvYXQgdmFsdWUpIGNvbnN0IGZpbmFsOwogCi0g
ICAgRmxvYXRSZWN0IHNvdXJjZUltYWdlUmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
YWJzb2x1dGVTb3VyY2VEcmF3aW5nUmVnaW9uOyB9CisgICAgRmxvYXRSZWN0IHNvdXJjZUltYWdl
UmVjdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYWJzb2x1dGVTb3VyY2VEcmF3aW5nUmVnaW9u
OyB9CiAgICAgRmxvYXRSZWN0IHRhcmdldEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV90
YXJnZXRCb3VuZGluZ0JveDsgfQogCiAgICAgYm9vbCBpc1NWR0ZpbHRlcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYu
aAppbmRleCA0ZjBkY2QwY2Y3YTRiOGVjMDU4NWVkNzBhOTc2ODgyZGVmZTgwZTM0Li5iODgzNDM3
MDFjZjliYzAxYjBlNzQyMzg2ZjYwYzExODNmMjBiZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2Zm
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvblByb3BlcnR5VGVhck9mZi5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHRlbXBsYXRlPHR5cGVuYW1lIEVudW1UeXBlPgogY2xhc3MgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvblByb3BlcnR5VGVhck9mZiBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZjx1bnNpZ25lZD4gewogcHVibGljOgotICAgIGNvbnN0IHVuc2lnbmVkJiBiYXNl
VmFsKCkgb3ZlcnJpZGUKKyAgICBjb25zdCB1bnNpZ25lZCYgYmFzZVZhbCgpIGZpbmFsCiAgICAg
ewogICAgICAgICBjb25zdCB1bnNpZ25lZCYgYmFzZVZhbCA9IFNWR0FuaW1hdGVkU3RhdGljUHJv
cGVydHlUZWFyT2ZmOjpiYXNlVmFsKCk7CiAKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYmFzZVZhbDsKICAgICB9CiAKLSAgICBjb25zdCB1bnNpZ25lZCYgYW5pbVZh
bCgpIG92ZXJyaWRlCisgICAgY29uc3QgdW5zaWduZWQmIGFuaW1WYWwoKSBmaW5hbAogICAgIHsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQmIGFuaW1WYWwgPSBTVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZjo6YW5pbVZhbCgpOwogCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFuaW1WYWw7CiAgICAgfQogCi0gICAgdm9pZCBzZXRCYXNlVmFsKGNvbnN0IHVu
c2lnbmVkJiBwcm9wZXJ0eSwgRXhjZXB0aW9uQ29kZSYgZWMpIG92ZXJyaWRlCisgICAgdm9pZCBz
ZXRCYXNlVmFsKGNvbnN0IHVuc2lnbmVkJiBwcm9wZXJ0eSwgRXhjZXB0aW9uQ29kZSYgZWMpIGZp
bmFsCiAgICAgewogICAgICAgICAvLyBBbGwgU1ZHIGVudW1lcmF0aW9uIHZhbHVlcywgdGhhdCBh
cmUgYWxsb3dlZCB0byBiZSBzZXQgdmlhIFNWRyBET00gc3RhcnQgd2l0aCAxLCAwIGNvcnJlc3Bv
bmRzIHRvIHVua25vd24gYW5kIGlzIG5vdCBzZXR0YWJsZSB0aHJvdWdoIFNWRyBET00uCiAgICAg
ICAgIGlmICghcHJvcGVydHkgfHwgcHJvcGVydHkgPiBTVkdJRExFbnVtTGltaXRzPEVudW1UeXBl
Pjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFsdWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZi5oCmluZGV4IDZiYjJiMWQ2MzBiMjQ5YmQxYzc5ZjFlNTdkMjM3YTc3NDdl
YTM3MWYuLjVlNTI3MGY4ZDM2ODc0ZjcxZWZiMDVhNTJkOWE5M2M2YzFkYmZjNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKQEAgLTMxLDcgKzMxLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlU
ZWFyT2ZmIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQ
YXRoU2VnTGlzdD4gewogcHVibGljOgotICAgIFJlZlB0cjxMaXN0UHJvcGVydHk+IGJhc2VWYWwo
KSBvdmVycmlkZQorICAgIFJlZlB0cjxMaXN0UHJvcGVydHk+IGJhc2VWYWwoKSBmaW5hbAogICAg
IHsKICAgICAgICAgaWYgKG1fYmFzZVZhbCkKICAgICAgICAgICAgIHJldHVybiBtX2Jhc2VWYWw7
CkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFdURk1vdmUocHJvcGVy
dHkpOwogICAgIH0KIAotICAgIFJlZlB0cjxMaXN0UHJvcGVydHk+IGFuaW1WYWwoKSBvdmVycmlk
ZQorICAgIFJlZlB0cjxMaXN0UHJvcGVydHk+IGFuaW1WYWwoKSBmaW5hbAogICAgIHsKICAgICAg
ICAgaWYgKG1fYW5pbVZhbCkKICAgICAgICAgICAgIHJldHVybiBtX2FuaW1WYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVh
ck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eVRlYXJPZmYuaAppbmRleCA1NWRmMzNjNTE0NDNjY2UzNWE2NmJhMjM4OTRkZjA5YzdiNWZhNDhl
Li42NGU0YWU0ZGEzMmZmNzdlZmQwYzU1MjgxMGRiM2E5ODBkNTczNWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlU
ZWFyT2ZmLmgKQEAgLTUyLDkgKzUyLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gV1RGTW92
ZShwcm9wZXJ0eSk7CiAgICAgfQogCi0gICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQorICAgIGJvb2wgaXNBbmltYXRpbmco
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHk7IH0KIAotICAgIHZvaWQg
cHJvcGVydHlXaWxsQmVEZWxldGVkKGNvbnN0IFNWR1Byb3BlcnR5JiBwcm9wZXJ0eSkgb3ZlcnJp
ZGUKKyAgICB2b2lkIHByb3BlcnR5V2lsbEJlRGVsZXRlZChjb25zdCBTVkdQcm9wZXJ0eSYgcHJv
cGVydHkpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAoJnByb3BlcnR5ID09IG1fYmFzZVZhbCkK
ICAgICAgICAgICAgIG1fYmFzZVZhbCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJP
ZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdFByb3BlcnR5VGVhck9mZi5oCmluZGV4IDBlZjMxMzkzYTJlODcwOTE2MjA0YThmYjllYmIz
Y2E2YWJiNzgxYWIuLmZlZWQxNmQyMjQxYzY3YjhmY2JlY2E4NjBkNWQyNDU5ZTFlYWEwYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0yOCw3ICsy
OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0UHJvcGVydHlUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0PiB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPExpc3RQcm9w
ZXJ0eT4gYmFzZVZhbCgpIG92ZXJyaWRlCisgICAgUmVmUHRyPExpc3RQcm9wZXJ0eT4gYmFzZVZh
bCgpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAobV9iYXNlVmFsKQogICAgICAgICAgICAgcmV0
dXJuIG1fYmFzZVZhbDsKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
V1RGTW92ZShwcm9wZXJ0eSk7CiAgICAgfQogCi0gICAgUmVmUHRyPExpc3RQcm9wZXJ0eT4gYW5p
bVZhbCgpIG92ZXJyaWRlCisgICAgUmVmUHRyPExpc3RQcm9wZXJ0eT4gYW5pbVZhbCgpIGZpbmFs
CiAgICAgewogICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAgICAgICAgcmV0dXJuIG1fYW5p
bVZhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJp
eFRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJP
ZmYuaAppbmRleCAzZGUxOTQyNDE4ZDI0MTI0YTUwNjQ2Mjg5MTNiMjc4ZWU1NjkwOTY3Li5hN2M3
Njg4NjUwYjAyNGY4ODg3N2M1MGFkNGE1ZmU1NTE5YzI3ODYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCkBAIC0zOCwxMSArMzgsMTEg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIFNWR01hdHJp
eCYgcHJvcGVydHlSZWZlcmVuY2UoKSBvdmVycmlkZSB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVy
dHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKTsgfQorICAgIFNWR01hdHJpeCYgcHJvcGVydHlSZWZl
cmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zdmdN
YXRyaXgoKTsgfQogCi0gICAgdm9pZCBzZXRWYWx1ZShTVkdNYXRyaXgmIHZhbHVlKSBvdmVycmlk
ZSB7IG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeCh2YWx1ZSk7IH0KKyAg
ICB2b2lkIHNldFZhbHVlKFNWR01hdHJpeCYgdmFsdWUpIGZpbmFsIHsgbV9wYXJlbnQtPnByb3Bl
cnR5UmVmZXJlbmNlKCkuc2V0TWF0cml4KHZhbHVlKTsgfQogCi0gICAgdm9pZCBjb21taXRDaGFu
Z2UoKSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwKICAgICB7CiAgICAg
ICAgIG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnVwZGF0ZVNWR01hdHJpeCgpOwogICAg
ICAgICBtX3BhcmVudC0+Y29tbWl0Q2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaApp
bmRleCBmMTZhOGM0NjczZmY5YTY2MmU0MTc0NGU2ZjMxYjRmNmNhY2M2MWE0Li4xZDJhNGE5ZTcx
M2VhZTUwNmZjNDRkM2ZmZTc5MDAzMTE1NzFjZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2Zm
LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgQmFzZTo6bV9yb2xl
OwogCi0gICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Qgb3ZlcnJpZGUKKyAgICBib29sIGlzUmVh
ZE9ubHkoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKG1fcm9sZSA9PSBBbmltVmFs
Um9sZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTM2LDIwICsxMzYsMjAgQEAgcHJp
dmF0ZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHZvaWQgY29tbWl0Q2hh
bmdlKCkgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewogICAg
ICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgTGlzdE1vZGlmaWNhdGlvblVua25v
d24pOwogICAgIH0KIAotICAgIHZvaWQgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb24gbGlz
dE1vZGlmaWNhdGlvbikgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZp
Y2F0aW9uIGxpc3RNb2RpZmljYXRpb24pIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQobV92
YWx1ZXMpOwogICAgICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKG1fYW5pbWF0ZWRQcm9wZXJ0
eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlmaWNhdGlvbik7CiAgICAgfQogCi0gICAgYm9v
bCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRl
bSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpIG92ZXJyaWRlOwotICAgIGJvb2wgcHJvY2Vzc0lu
Y29taW5nTGlzdEl0ZW1XcmFwcGVyKFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+JiwgdW5zaWduZWQq
KSBvdmVycmlkZQorICAgIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBM
aXN0SXRlbVR5cGUmIG5ld0l0ZW0sIHVuc2lnbmVkKiBpbmRleFRvTW9kaWZ5KSBmaW5hbDsKKyAg
ICBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihSZWZQdHI8TGlzdEl0ZW1UZWFy
T2ZmPiYsIHVuc2lnbmVkKikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>