<?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>149883</bug_id>
          
          <creation_ts>2015-10-07 11:52:58 -0700</creation_ts>
          <short_desc>RenderObject::computeRectForRepaint/computeFloatRectForRepaint should return the computed rectangle.</short_desc>
          <delta_ts>2015-10-07 14:14:52 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1131351</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-10-07 11:52:58 -0700</bug_when>
    <thetext>Instead of changing the input rectangle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131355</commentid>
    <comment_count>1</comment_count>
      <attachid>262620</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-10-07 12:00:14 -0700</bug_when>
    <thetext>Created attachment 262620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131381</commentid>
    <comment_count>2</comment_count>
      <attachid>262620</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-07 13:09:57 -0700</bug_when>
    <thetext>Comment on attachment 262620
Patch

You should have the cahones to set r? right away :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131390</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-07 13:30:59 -0700</bug_when>
    <thetext>s/cahones/cojones</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131417</commentid>
    <comment_count>4</comment_count>
      <attachid>262620</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-07 14:14:48 -0700</bug_when>
    <thetext>Comment on attachment 262620
Patch

Clearing flags on attachment: 262620

Committed r190685: &lt;http://trac.webkit.org/changeset/190685&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131418</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-07 14:14:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262620</attachid>
            <date>2015-10-07 12:00:14 -0700</date>
            <delta_ts>2015-10-07 14:14:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149883-20151007115942.patch</filename>
            <type>text/plain</type>
            <size>47068</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkzMWVkNWI3ZWUyYzhj
NzJlYzAyYjE4M2ZlNDE5MzQ5NDA2MmE1NC4uMjY5Y2VlZDRmMTBhYmRhNTEyYzE0MjE4MDE2MzEz
MzRjZDM5Mjk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE1LTEwLTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyT2JqZWN0Ojpjb21w
dXRlUmVjdEZvclJlcGFpbnQvY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQgc2hvdWxkIHJldHVy
biB0aGUgY29tcHV0ZWQgcmVjdGFuZ2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVkdWNlcyBjb2RlIGNvbXBsZXhpdHkgYXQgdGhlIGNhbGxpbmcg
c2l0ZXMuCisgCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6
c2VsZWN0aW9uUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJl
cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6Y29tcHV0ZUFic29sdXRlUmVwYWludFJlY3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJSZXBsYWNlZDo6c2VsZWN0aW9uUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUmVwbGFjZWQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRhYmxlQ2VsbDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGFibGVDZWxsOjpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpjb2xsZWN0U2VsZWN0aW9u
UmVjdHNGb3JMaW5lQm94ZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
Rm9yZWlnbk9iamVjdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTVkdJbmxpbmU6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9k
ZWxPYmplY3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmNvbXB1
dGVGbG9hdFJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oOgorCiAyMDE1LTEwLTA3
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTkwNjY0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAppbmRleCBkMThmYmJkNDA0MWRlOTNlMjNkNmRlMjg2YTM1YmY0OTdjODY1YjUzLi44
NDBjYjJjMmQxYTIzYmZhOTdiODJiOWMyYjE3Yjk1OWJiNDQ2ZDA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMjE0MSw5ICsyMTQxLDcgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJCb3g6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QKICAgICAvLyB0aGF0IHByb2plY3RzIG91dHNpZGUgb2Ygb3VyIG92ZXJmbG93
UmVjdC4KICAgICBBU1NFUlQoc3R5bGUoKS5vdXRsaW5lU2l6ZSgpIDw9IHZpZXcoKS5tYXhpbWFs
T3V0bGluZVNpemUoKSk7CiAgICAgci5pbmZsYXRlKHZpZXcoKS5tYXhpbWFsT3V0bGluZVNpemUo
KSk7Ci0gICAgCi0gICAgY29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHIp
OwotICAgIHJldHVybiByOworICAgIHJldHVybiBjb21wdXRlUmVjdEZvclJlcGFpbnQociwgcmVw
YWludENvbnRhaW5lcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRBcHBseUNvbnRh
aW5lcnNDbGlwQW5kT2Zmc2V0KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFJlbmRlckJveCogY29udGFpbmVyQm94KQpAQCAtMjE2MCw3ICsyMTU4LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNob3VsZEFwcGx5Q29udGFpbmVyc0NsaXBBbmRPZmZzZXQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamUKICNlbmRpZgogfQogCi12b2lkIFJlbmRlckJveDo6Y29t
cHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIExheW91dFJlY3QmIHJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0CitMYXlvdXRSZWN0
IFJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3Qs
IGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4
ZWQpIGNvbnN0CiB7CiAgICAgLy8gVGhlIHJlY3Qgd2UgY29tcHV0ZSBhdCBlYWNoIHN0ZXAgaXMg
c2hpZnRlZCBieSBvdXIgeC95IG9mZnNldCBpbiB0aGUgcGFyZW50IGNvbnRhaW5lcidzIGNvb3Jk
aW5hdGUgc3BhY2UuCiAgICAgLy8gT25seSB3aGVuIHdlIGNyb3NzIGEgd3JpdGluZyBtb2RlIGJv
dW5kYXJ5IHdpbGwgd2UgaGF2ZSB0byBwb3NzaWJseSBmbGlwRm9yV3JpdGluZ01vZGUgKHRvIGNv
bnZlcnQgaW50byBhIG1vcmUgYXBwcm9wcmlhdGUKQEAgLTIxNzAsMzggKzIxNjgsMzkgQEAgdm9p
ZCBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGEKICAgICAvLyBSZW5kZXJWaWV3Ojpjb21wdXRlUmVjdEZvclJl
cGFpbnQgdGhlbiBjb252ZXJ0cyB0aGUgcmVjdCB0byBwaHlzaWNhbCBjb29yZGluYXRlcy4gIFdl
IGFsc28gY29udmVydCB0bwogICAgIC8vIHBoeXNpY2FsIHdoZW4gd2UgaGl0IGEgcmVwYWludENv
bnRhaW5lciBib3VuZGFyeS4gIFRoZXJlZm9yZSB0aGUgZmluYWwgcmVjdCByZXR1cm5lZCBpcyBh
bHdheXMgaW4gdGhlCiAgICAgLy8gcGh5c2ljYWwgY29vcmRpbmF0ZSBzcGFjZSBvZiB0aGUgcmVw
YWludENvbnRhaW5lci4KKyAgICBMYXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IHJlY3Q7CiAgICAg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlVG9Vc2UgPSBzdHlsZSgpOwogICAgIC8vIExheW91dFN0
YXRlIGlzIG9ubHkgdmFsaWQgZm9yIHJvb3QtcmVsYXRpdmUsIG5vbi1maXhlZCBwb3NpdGlvbiBy
ZXBhaW50aW5nCiAgICAgaWYgKHZpZXcoKS5sYXlvdXRTdGF0ZUVuYWJsZWQoKSAmJiAhcmVwYWlu
dENvbnRhaW5lciAmJiBzdHlsZVRvVXNlLnBvc2l0aW9uKCkgIT0gRml4ZWRQb3NpdGlvbikgewog
ICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0U3RhdGUgPSB2aWV3KCkubGF5b3V0U3RhdGUoKTsK
IAogICAgICAgICBpZiAobGF5ZXIoKSAmJiBsYXllcigpLT50cmFuc2Zvcm0oKSkKLSAgICAgICAg
ICAgIHJlY3QgPSBMYXlvdXRSZWN0KGVuY2xvc2VSZWN0VG9EZXZpY2VQaXhlbHMobGF5ZXIoKS0+
dHJhbnNmb3JtKCktPm1hcFJlY3QocmVjdCksIGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3Io
KSkpOworICAgICAgICAgICAgYWRqdXN0ZWRSZWN0ID0gTGF5b3V0UmVjdChlbmNsb3NlUmVjdFRv
RGV2aWNlUGl4ZWxzKGxheWVyKCktPnRyYW5zZm9ybSgpLT5tYXBSZWN0KGFkanVzdGVkUmVjdCks
IGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOwogCiAgICAgICAgIC8vIFdlIGNhbid0
IHRydXN0IHRoZSBiaXRzIG9uIFJlbmRlck9iamVjdCwgYmVjYXVzZSB0aGlzIG1pZ2h0IGJlIGNh
bGxlZCB3aGlsZSByZS1yZXNvbHZpbmcgc3R5bGUuCiAgICAgICAgIGlmIChzdHlsZVRvVXNlLmhh
c0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgIHJlY3QubW92ZShsYXll
cigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIGFkanVzdGVkUmVj
dC5tb3ZlKGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCkpOwogCi0gICAgICAgIHJl
Y3QubW92ZUJ5KGxvY2F0aW9uKCkpOwotICAgICAgICByZWN0Lm1vdmUobGF5b3V0U3RhdGUtPm1f
cGFpbnRPZmZzZXQpOworICAgICAgICBhZGp1c3RlZFJlY3QubW92ZUJ5KGxvY2F0aW9uKCkpOwor
ICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldCk7CiAg
ICAgICAgIGlmIChsYXlvdXRTdGF0ZS0+bV9jbGlwcGVkKQotICAgICAgICAgICAgcmVjdC5pbnRl
cnNlY3QobGF5b3V0U3RhdGUtPm1fY2xpcFJlY3QpOwotICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICBhZGp1c3RlZFJlY3QuaW50ZXJzZWN0KGxheW91dFN0YXRlLT5tX2NsaXBSZWN0KTsKKyAg
ICAgICAgcmV0dXJuIGFkanVzdGVkUmVjdDsKICAgICB9CiAKICAgICBpZiAoaGFzUmVmbGVjdGlv
bigpKQotICAgICAgICByZWN0LnVuaXRlKHJlZmxlY3RlZFJlY3QocmVjdCkpOworICAgICAgICBh
ZGp1c3RlZFJlY3QudW5pdGUocmVmbGVjdGVkUmVjdChhZGp1c3RlZFJlY3QpKTsKIAogICAgIGlm
IChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpIHsKICAgICAgICAgaWYgKHJlcGFpbnRDb250YWlu
ZXItPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAgIGZs
aXBGb3JXcml0aW5nTW9kZShyZWN0KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZmxp
cEZvcldyaXRpbmdNb2RlKGFkanVzdGVkUmVjdCk7CisgICAgICAgIHJldHVybiBhZGp1c3RlZFJl
Y3Q7CiAgICAgfQogCiAgICAgYm9vbCBjb250YWluZXJTa2lwcGVkOwogICAgIGF1dG8qIHJlbmRl
cmVyID0gY29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsICZjb250YWluZXJTa2lwcGVkKTsKICAg
ICBpZiAoIXJlbmRlcmVyKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBhZGp1c3Rl
ZFJlY3Q7CiAgICAgCiAgICAgRVBvc2l0aW9uIHBvc2l0aW9uID0gc3R5bGVUb1VzZS5wb3NpdGlv
bigpOwogCkBAIC0yMjE2LDI4ICsyMjE1LDI4IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhCiAg
ICAgICAgIFJlbmRlclJlZ2lvbiogZmlyc3RSZWdpb24gPSBudWxscHRyOwogICAgICAgICBSZW5k
ZXJSZWdpb24qIGxhc3RSZWdpb24gPSBudWxscHRyOwogICAgICAgICBpZiAoZG93bmNhc3Q8UmVu
ZGVyRmxvd1RocmVhZD4oKnJlbmRlcmVyKS5nZXRSZWdpb25SYW5nZUZvckJveCh0aGlzLCBmaXJz
dFJlZ2lvbiwgbGFzdFJlZ2lvbikpCi0gICAgICAgICAgICByZWN0Lm1vdmVCeShmaXJzdFJlZ2lv
bi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkubG9jYXRpb24oKSk7CisgICAgICAgICAgICBhZGp1
c3RlZFJlY3QubW92ZUJ5KGZpcnN0UmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS5sb2Nh
dGlvbigpKTsKICAgICB9CiAKICAgICBpZiAoaXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgIGZsaXBGb3JXcml0aW5nTW9kZShyZWN0KTsKKyAg
ICAgICAgZmxpcEZvcldyaXRpbmdNb2RlKGFkanVzdGVkUmVjdCk7CiAKICAgICBMYXlvdXRTaXpl
IGxvY2F0aW9uT2Zmc2V0ID0gdGhpcy0+bG9jYXRpb25PZmZzZXQoKTsKICAgICAvLyBGSVhNRTog
VGhpcyBpcyBuZWVkZWQgYXMgbG9uZyBhcyBSZW5kZXJXaWRnZXQgc25hcHMgdG8gaW50ZWdyYWwg
c2l6ZS9wb3NpdGlvbi4KICAgICBpZiAoaXNSZW5kZXJSZXBsYWNlZCgpICYmIGlzV2lkZ2V0KCkp
IHsKICAgICAgICAgTGF5b3V0U2l6ZSBmbG9vcmVkTG9jYXRpb25PZmZzZXQgPSB0b0ludFNpemUo
Zmxvb3JlZEludFBvaW50KGxvY2F0aW9uT2Zmc2V0KSk7Ci0gICAgICAgIHJlY3QuZXhwYW5kKGxv
Y2F0aW9uT2Zmc2V0IC0gZmxvb3JlZExvY2F0aW9uT2Zmc2V0KTsKKyAgICAgICAgYWRqdXN0ZWRS
ZWN0LmV4cGFuZChsb2NhdGlvbk9mZnNldCAtIGZsb29yZWRMb2NhdGlvbk9mZnNldCk7CiAgICAg
ICAgIGxvY2F0aW9uT2Zmc2V0ID0gZmxvb3JlZExvY2F0aW9uT2Zmc2V0OwogICAgIH0KLSAgICBM
YXlvdXRQb2ludCB0b3BMZWZ0ID0gcmVjdC5sb2NhdGlvbigpOworICAgIExheW91dFBvaW50IHRv
cExlZnQgPSBhZGp1c3RlZFJlY3QubG9jYXRpb24oKTsKICAgICB0b3BMZWZ0Lm1vdmUobG9jYXRp
b25PZmZzZXQpOwogCiAgICAgLy8gV2UgYXJlIG5vdyBpbiBvdXIgcGFyZW50IGNvbnRhaW5lcidz
IGNvb3JkaW5hdGUgc3BhY2UuIEFwcGx5IG91ciB0cmFuc2Zvcm0gdG8gb2J0YWluIGEgYm91bmRp
bmcgYm94CiAgICAgLy8gaW4gdGhlIHBhcmVudCdzIGNvb3JkaW5hdGUgc3BhY2UgdGhhdCBlbmNs
b3NlcyB1cy4KICAgICBpZiAoaGFzTGF5ZXIoKSAmJiBsYXllcigpLT50cmFuc2Zvcm0oKSkgewog
ICAgICAgICBmaXhlZCA9IHBvc2l0aW9uID09IEZpeGVkUG9zaXRpb247Ci0gICAgICAgIHJlY3Qg
PSBMYXlvdXRSZWN0KGVuY2xvc2VSZWN0VG9EZXZpY2VQaXhlbHMobGF5ZXIoKS0+dHJhbnNmb3Jt
KCktPm1hcFJlY3QocmVjdCksIGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOwotICAg
ICAgICB0b3BMZWZ0ID0gcmVjdC5sb2NhdGlvbigpOworICAgICAgICBhZGp1c3RlZFJlY3QgPSBM
YXlvdXRSZWN0KGVuY2xvc2VSZWN0VG9EZXZpY2VQaXhlbHMobGF5ZXIoKS0+dHJhbnNmb3JtKCkt
Pm1hcFJlY3QoYWRqdXN0ZWRSZWN0KSwgZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7
CisgICAgICAgIHRvcExlZnQgPSBhZGp1c3RlZFJlY3QubG9jYXRpb24oKTsKICAgICAgICAgdG9w
TGVmdC5tb3ZlKGxvY2F0aW9uT2Zmc2V0KTsKICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09IEZp
eGVkUG9zaXRpb24pCiAgICAgICAgIGZpeGVkID0gdHJ1ZTsKQEAgLTIyNTQsMjQgKzIyNTMsMjMg
QEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGEKIAogICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgdGhl
IGxpZ2h0d2VpZ2h0IGNsaXBwaW5nIHJlY3QgdGhhdCBjb250cm9scyB1c2UsIHNpbmNlIGlmIHxv
fCBpcyBpbiBtaWQtbGF5b3V0LAogICAgIC8vIGl0cyBjb250cm9sQ2xpcFJlY3Qgd2lsbCBiZSB3
cm9uZy4gRm9yIG92ZXJmbG93IGNsaXAgd2UgdXNlIHRoZSB2YWx1ZXMgY2FjaGVkIGJ5IHRoZSBs
YXllci4KLSAgICByZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOworICAgIGFkanVzdGVkUmVjdC5z
ZXRMb2NhdGlvbih0b3BMZWZ0KTsKICAgICBpZiAocmVuZGVyZXItPmhhc092ZXJmbG93Q2xpcCgp
KSB7CiAgICAgICAgIFJlbmRlckJveCYgY29udGFpbmVyQm94ID0gZG93bmNhc3Q8UmVuZGVyQm94
PigqcmVuZGVyZXIpOwogICAgICAgICBpZiAoc2hvdWxkQXBwbHlDb250YWluZXJzQ2xpcEFuZE9m
ZnNldChyZXBhaW50Q29udGFpbmVyLCAmY29udGFpbmVyQm94KSkgewotICAgICAgICAgICAgY29u
dGFpbmVyQm94LmFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFpbnQocmVjdCk7
Ci0gICAgICAgICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgY29udGFpbmVyQm94LmFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbE9mZnNl
dEZvclJlcGFpbnQoYWRqdXN0ZWRSZWN0KTsKKyAgICAgICAgICAgIGlmIChhZGp1c3RlZFJlY3Qu
aXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBhZGp1c3RlZFJlY3Q7CiAgICAgICAg
IH0KICAgICB9CiAKICAgICBpZiAoY29udGFpbmVyU2tpcHBlZCkgewogICAgICAgICAvLyBJZiB0
aGUgcmVwYWludENvbnRhaW5lciBpcyBiZWxvdyBvLCB0aGVuIHdlIG5lZWQgdG8gbWFwIHRoZSBy
ZWN0IGludG8gcmVwYWludENvbnRhaW5lcidzIGNvb3JkaW5hdGVzLgogICAgICAgICBMYXlvdXRT
aXplIGNvbnRhaW5lck9mZnNldCA9IHJlcGFpbnRDb250YWluZXItPm9mZnNldEZyb21BbmNlc3Rv
ckNvbnRhaW5lcigqcmVuZGVyZXIpOwotICAgICAgICByZWN0Lm1vdmUoLWNvbnRhaW5lck9mZnNl
dCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUoLWNvbnRhaW5l
ck9mZnNldCk7CisgICAgICAgIHJldHVybiBhZGp1c3RlZFJlY3Q7CiAgICAgfQotCi0gICAgcmVu
ZGVyZXItPmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZWN0LCBmaXhl
ZCk7CisgICAgcmV0dXJuIHJlbmRlcmVyLT5jb21wdXRlUmVjdEZvclJlcGFpbnQoYWRqdXN0ZWRS
ZWN0LCByZXBhaW50Q29udGFpbmVyLCBmaXhlZCk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjpyZXBh
aW50RHVyaW5nTGF5b3V0SWZNb3ZlZChjb25zdCBMYXlvdXRSZWN0JiBvbGRSZWN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGU1YzdhMWViNTk4OWViYjNiMWRjZTczNmFh
N2FkMTA4ODBlYTA5ZGMuLjZkNTcwM2E4ZWI1NmUzOGNiMjA4ZjI2Y2Q2ODM1ZTU0YWRkNGU0MWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTM4Nyw3ICszODcsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkZWxldGVMaW5lQm94V3JhcHBlcigpOwogCiAgICAgdmlydHVhbCBM
YXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbXB1dGVSZWN0Rm9yUmVwYWlu
dChjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lk
IHJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVkKGNvbnN0IExheW91dFJlY3QmKTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVwYWludE92ZXJoYW5naW5nRmxvYXRzKGJvb2wgcGFpbnRBbGxEZXNjZW5kYW50
cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggYWZm
ZTVkNmJkODk5YzY0ZjBlMzNkYzZlMTMyNTA3YzBhMDRiMjM5MC4uN2M5NzFiYjhmZjQxMDE1NGYy
M2NmMzFjMzI0M2RiNTJmZjI1OGEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKQEAgLTExODcsNyArMTE4Nyw3IEBAIExheW91dFJlY3QgUmVuZGVySW5saW5l
OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
CiAgICAgaWYgKGNvbnRhaW5pbmdCbG9jay0+aGFzT3ZlcmZsb3dDbGlwKCkpCiAgICAgICAgIGNv
bnRhaW5pbmdCbG9jay0+YXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsT2Zmc2V0Rm9yUmVwYWludChy
ZXBhaW50UmVjdCk7CiAKLSAgICBjb250YWluaW5nQmxvY2stPmNvbXB1dGVSZWN0Rm9yUmVwYWlu
dChyZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCk7CisgICAgcmVwYWludFJlY3QgPSBjb250
YWluaW5nQmxvY2stPmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50UmVjdCwgcmVwYWludENv
bnRhaW5lcik7CiAKICAgICBpZiAob3V0bGluZVNpemUpIHsKICAgICAgICAgZm9yIChhdXRvJiBj
aGlsZCA6IGNoaWxkcmVuT2ZUeXBlPFJlbmRlckVsZW1lbnQ+KCp0aGlzKSkKQEAgLTEyMTAsMjgg
KzEyMTAsMjkgQEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OnJlY3RXaXRoT3V0bGluZUZvclJl
cGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCoKICAgICByZXR1cm4gcjsKIH0KIAot
dm9pZCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiByZWN0LCBib29sIGZp
eGVkKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWlu
dChjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkKSBjb25zdAogewogICAgIC8vIExheW91dFN0YXRl
IGlzIG9ubHkgdmFsaWQgZm9yIHJvb3QtcmVsYXRpdmUgcmVwYWludGluZworICAgIExheW91dFJl
Y3QgYWRqdXN0ZWRSZWN0ID0gcmVjdDsKICAgICBpZiAodmlldygpLmxheW91dFN0YXRlRW5hYmxl
ZCgpICYmICFyZXBhaW50Q29udGFpbmVyKSB7CiAgICAgICAgIExheW91dFN0YXRlKiBsYXlvdXRT
dGF0ZSA9IHZpZXcoKS5sYXlvdXRTdGF0ZSgpOwogICAgICAgICBpZiAoc3R5bGUoKS5oYXNJbkZs
b3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0gICAgICAgICAgICByZWN0Lm1vdmUobGF5ZXIoKS0+
b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSk7Ci0gICAgICAgIHJlY3QubW92ZShsYXlvdXRTdGF0
ZS0+bV9wYWludE9mZnNldCk7CisgICAgICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShsYXllcigp
LT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKKyAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUo
bGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQpOwogICAgICAgICBpZiAobGF5b3V0U3RhdGUtPm1f
Y2xpcHBlZCkKLSAgICAgICAgICAgIHJlY3QuaW50ZXJzZWN0KGxheW91dFN0YXRlLT5tX2NsaXBS
ZWN0KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYWRqdXN0ZWRSZWN0LmludGVyc2Vj
dChsYXlvdXRTdGF0ZS0+bV9jbGlwUmVjdCk7CisgICAgICAgIHJldHVybiBhZGp1c3RlZFJlY3Q7
CiAgICAgfQogCiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gYWRqdXN0ZWRSZWN0OwogCiAgICAgYm9vbCBjb250YWluZXJT
a2lwcGVkOwogICAgIFJlbmRlckVsZW1lbnQqIGNvbnRhaW5lciA9IHRoaXMtPmNvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLCAmY29udGFpbmVyU2tpcHBlZCk7CiAgICAgaWYgKCFjb250YWluZXIp
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGFkanVzdGVkUmVjdDsKIAotICAgIExh
eW91dFBvaW50IHRvcExlZnQgPSByZWN0LmxvY2F0aW9uKCk7CisgICAgTGF5b3V0UG9pbnQgdG9w
TGVmdCA9IGFkanVzdGVkUmVjdC5sb2NhdGlvbigpOwogCiAgICAgaWYgKHN0eWxlKCkuaGFzSW5G
bG93UG9zaXRpb24oKSAmJiBsYXllcigpKSB7CiAgICAgICAgIC8vIEFwcGx5IHRoZSBpbi1mbG93
IHBvc2l0aW9uIG9mZnNldCB3aGVuIGludmFsaWRhdGluZyBhIHJlY3RhbmdsZS4gVGhlIGxheWVy
CkBAIC0xMjQzLDIxICsxMjQ0LDIwIEBAIHZvaWQgUmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZv
clJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAgICAgCiAg
ICAgLy8gRklYTUU6IFdlIGlnbm9yZSB0aGUgbGlnaHR3ZWlnaHQgY2xpcHBpbmcgcmVjdCB0aGF0
IGNvbnRyb2xzIHVzZSwgc2luY2UgaWYgfG98IGlzIGluIG1pZC1sYXlvdXQsCiAgICAgLy8gaXRz
IGNvbnRyb2xDbGlwUmVjdCB3aWxsIGJlIHdyb25nLiBGb3Igb3ZlcmZsb3cgY2xpcCB3ZSB1c2Ug
dGhlIHZhbHVlcyBjYWNoZWQgYnkgdGhlIGxheWVyLgotICAgIHJlY3Quc2V0TG9jYXRpb24odG9w
TGVmdCk7CisgICAgYWRqdXN0ZWRSZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOwogICAgIGlmIChj
b250YWluZXItPmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0gICAgICAgIGRvd25jYXN0PFJlbmRlckJv
eD4oKmNvbnRhaW5lcikuYXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsT2Zmc2V0Rm9yUmVwYWludChy
ZWN0KTsKLSAgICAgICAgaWYgKHJlY3QuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBkb3duY2FzdDxSZW5kZXJCb3g+KCpjb250YWluZXIpLmFwcGx5Q2FjaGVkQ2xpcEFu
ZFNjcm9sbE9mZnNldEZvclJlcGFpbnQoYWRqdXN0ZWRSZWN0KTsKKyAgICAgICAgaWYgKGFkanVz
dGVkUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gYWRqdXN0ZWRSZWN0OwogICAg
IH0KIAogICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8vIElmIHRoZSByZXBh
aW50Q29udGFpbmVyIGlzIGJlbG93IG8sIHRoZW4gd2UgbmVlZCB0byBtYXAgdGhlIHJlY3QgaW50
byByZXBhaW50Q29udGFpbmVyJ3MgY29vcmRpbmF0ZXMuCiAgICAgICAgIExheW91dFNpemUgY29u
dGFpbmVyT2Zmc2V0ID0gcmVwYWludENvbnRhaW5lci0+b2Zmc2V0RnJvbUFuY2VzdG9yQ29udGFp
bmVyKCpjb250YWluZXIpOwotICAgICAgICByZWN0Lm1vdmUoLWNvbnRhaW5lck9mZnNldCk7Ci0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUoLWNvbnRhaW5lck9mZnNl
dCk7CisgICAgICAgIHJldHVybiBhZGp1c3RlZFJlY3Q7CiAgICAgfQotICAgIAotICAgIGNvbnRh
aW5lci0+Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlY3QsIGZpeGVk
KTsKKyAgICByZXR1cm4gY29udGFpbmVyLT5jb21wdXRlUmVjdEZvclJlcGFpbnQoYWRqdXN0ZWRS
ZWN0LCByZXBhaW50Q29udGFpbmVyLCBmaXhlZCk7CiB9CiAKIExheW91dFNpemUgUmVuZGVySW5s
aW5lOjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlckVsZW1lbnQmIGNvbnRhaW5lciwgY29uc3Qg
TGF5b3V0UG9pbnQmLCBib29sKiBvZmZzZXREZXBlbmRzT25Qb2ludCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCA5NjQ5NzAwMTk1ZWIyYTI1MGJlZGE3
ODgwNDFhOTUwZGQxZjU4OTNjLi40YTc1NzhhZTQ0ZDNkZjlhMWQ3NTVlMDgzYjFiMThkODJmYzIw
Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBAIC0xNDUsNyAr
MTQ1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZs
b3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIExheW91dFJlY3QgcmVjdFdpdGhP
dXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCkgY29u
c3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbXB1dGVSZWN0Rm9y
UmVwYWludChjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVz
RmxhZ3MsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGNvbnN0
IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3Bw
CmluZGV4IDhiYTBkNmQzMjE0ZjRkYzU2YWNiMDE0ODY0NjE4NjQwNGY3ZTVhYzMuLmI1MWVlMGFi
YmVmODUwMjA3ODNiMDAzNTU4NTRiNzk4ZmY2NTE3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKQEAgLTE4OTQsMTEgKzE4OTQsOCBAQCBMYXlv
dXRSZWN0IFJlbmRlckxpc3RNYXJrZXI6OnNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplYwogICAgIExheW91dFJlY3QgcmVjdCgwLCByb290Qm94LnNlbGVj
dGlvblRvcCgpIC0geSgpLCB3aWR0aCgpLCByb290Qm94LnNlbGVjdGlvbkhlaWdodCgpKTsKICAg
ICAgICAgICAgIAogICAgIGlmIChjbGlwVG9WaXNpYmxlQ29udGVudCkKLSAgICAgICAgY29tcHV0
ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlY3QpOwotICAgIGVsc2UKLSAgICAg
ICAgcmVjdCA9IGxvY2FsVG9Db250YWluZXJRdWFkKEZsb2F0UmVjdChyZWN0KSwgcmVwYWludENv
bnRhaW5lcikuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKLSAgICAKLSAgICByZXR1cm4gcmVjdDsK
KyAgICAgICAgcmV0dXJuIGNvbXB1dGVSZWN0Rm9yUmVwYWludChyZWN0LCByZXBhaW50Q29udGFp
bmVyKTsKKyAgICByZXR1cm4gbG9jYWxUb0NvbnRhaW5lclF1YWQoRmxvYXRSZWN0KHJlY3QpLCBy
ZXBhaW50Q29udGFpbmVyKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IGI5ZGYyNzNiMTNmYThiYjkyOGFhZTMzNzU4ZGRjMDNhNTlhMjU3YzYuLjlhZWNlMmQzZjA5
MDZkMDNhNTU0YzQxMDMwMDk2M2QxNDBiY2Y2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCkBAIC05NDMsOCArOTQzLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6
OnJlcGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgciwgYm9vbCBzaG91bGRDbGlwVG9M
YXllcikKICAgICBkaXJ0eVJlY3QubW92ZSh2aWV3LmxheW91dERlbHRhKCkpOwogCiAgICAgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZvclJlcGFp
bnQoKTsKLSAgICBjb21wdXRlUmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciwgZGlydHlS
ZWN0KTsKLSAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciA/IHJlcGFp
bnRDb250YWluZXIgOiAmdmlldywgZGlydHlSZWN0LCBzaG91bGRDbGlwVG9MYXllcik7CisgICAg
cmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIgPyByZXBhaW50Q29udGFpbmVy
IDogJnZpZXcsIGNvbXB1dGVSZWN0Rm9yUmVwYWludChkaXJ0eVJlY3QsIHJlcGFpbnRDb250YWlu
ZXIpLCBzaG91bGRDbGlwVG9MYXllcik7CiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50
U2xvd1JlcGFpbnRPYmplY3QoKSBjb25zdApAQCAtOTk3LDI1ICs5OTYsMjggQEAgTGF5b3V0UmVj
dCBSZW5kZXJPYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmoKICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwogfQogCi12b2lkIFJlbmRl
ck9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmIHJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0
CitMYXlvdXRSZWN0IFJlbmRlck9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExh
eW91dFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGJvb2wgZml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0g
dGhpcykKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gcmVjdDsKIAotICAgIGlmIChh
dXRvKiBwYXJlbnQgPSB0aGlzLT5wYXJlbnQoKSkgewotICAgICAgICBpZiAocGFyZW50LT5oYXNP
dmVyZmxvd0NsaXAoKSkgewotICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyQm94PigqcGFyZW50
KS5hcHBseUNhY2hlZENsaXBBbmRTY3JvbGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwotICAgICAg
ICAgICAgaWYgKHJlY3QuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQorICAgIGF1dG8qIHBhcmVudCA9IHRoaXMtPnBhcmVudCgpOworICAgIGlmICghcGFyZW50
KQorICAgICAgICByZXR1cm4gcmVjdDsKIAotICAgICAgICBwYXJlbnQtPmNvbXB1dGVSZWN0Rm9y
UmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZWN0LCBmaXhlZCk7CisgICAgTGF5b3V0UmVjdCBh
ZGp1c3RlZFJlY3QgPSByZWN0OworICAgIGlmIChwYXJlbnQtPmhhc092ZXJmbG93Q2xpcCgpKSB7
CisgICAgICAgIGRvd25jYXN0PFJlbmRlckJveD4oKnBhcmVudCkuYXBwbHlDYWNoZWRDbGlwQW5k
U2Nyb2xsT2Zmc2V0Rm9yUmVwYWludChhZGp1c3RlZFJlY3QpOworICAgICAgICBpZiAoYWRqdXN0
ZWRSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBhZGp1c3RlZFJlY3Q7CiAgICAg
fQorICAgIHJldHVybiBwYXJlbnQtPmNvbXB1dGVSZWN0Rm9yUmVwYWludChhZGp1c3RlZFJlY3Qs
IHJlcGFpbnRDb250YWluZXIsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6OmNvbXB1
dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBGbG9h
dFJlY3QmLCBib29sKSBjb25zdAorRmxvYXRSZWN0IFJlbmRlck9iamVjdDo6Y29tcHV0ZUZsb2F0
UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCosIGJvb2wpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIEZsb2F0UmVjdCgpOwogfQogCiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDhjZGNjMThkZjI4ZDM5MjUzNzE1
MDczMjFkNGM0M2M4MDEzMzU3OTYuLmUxYTM4MTcyM2Y0OTNiNDk0OTQxYmU1ZTRlNWNhNmNiMDZm
YjNkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTczMSwx
NCArNzMxLDE0IEBAIHB1YmxpYzoKIAogICAgIC8vIEdpdmVuIGEgcmVjdCBpbiB0aGUgb2JqZWN0
J3MgY29vcmRpbmF0ZSBzcGFjZSwgY29tcHV0ZSBhIHJlY3Qgc3VpdGFibGUgZm9yIHJlcGFpbnRp
bmcKICAgICAvLyB0aGF0IHJlY3QgaW4gdmlldyBjb29yZGluYXRlcy4KLSAgICB2b2lkIGNvbXB1
dGVBYnNvbHV0ZVJlcGFpbnRSZWN0KExheW91dFJlY3QmIHIsIGJvb2wgZml4ZWQgPSBmYWxzZSkg
Y29uc3QKKyAgICBMYXlvdXRSZWN0IGNvbXB1dGVBYnNvbHV0ZVJlcGFpbnRSZWN0KGNvbnN0IExh
eW91dFJlY3QmIHIsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QKICAgICB7Ci0gICAgICAgIGNv
bXB1dGVSZWN0Rm9yUmVwYWludChudWxscHRyLCByLCBmaXhlZCk7CisgICAgICAgIHJldHVybiBj
b21wdXRlUmVjdEZvclJlcGFpbnQociwgbnVsbHB0ciwgZml4ZWQpOwogICAgIH0KICAgICAvLyBH
aXZlbiBhIHJlY3QgaW4gdGhlIG9iamVjdCdzIGNvb3JkaW5hdGUgc3BhY2UsIGNvbXB1dGUgYSBy
ZWN0IHN1aXRhYmxlIGZvciByZXBhaW50aW5nCiAgICAgLy8gdGhhdCByZWN0IGluIHRoZSBjb29y
ZGluYXRlIHNwYWNlIG9mIHJlcGFpbnRDb250YWluZXIuCi0gICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdDsKLSAgICB2aXJ0
dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBm
aXhlZCA9IGZhbHNlKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY29tcHV0ZVJlY3RG
b3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0OworICAgIHZpcnR1
YWwgRmxvYXRSZWN0IGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4
ZWQgPSBmYWxzZSkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGludCBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiAxOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwCmluZGV4IDY1ZmNkYmM5NzRjZjAzMWFjNzY2NGZjOWQwN2I3N2I3MGEzZGM1NWUu
LjM0YjU1ZjI5MjNkOTFhY2NkYjQxMjJlMTUwZGZkYWUyZDA3ZGFmMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtNTUxLDExICs1NTEsOCBAQCBM
YXlvdXRSZWN0IFJlbmRlclJlcGxhY2VkOjpzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KgogICAgIAogICAgIExheW91dFJlY3QgcmVjdCA9IGxvY2Fs
U2VsZWN0aW9uUmVjdCgpOwogICAgIGlmIChjbGlwVG9WaXNpYmxlQ29udGVudCkKLSAgICAgICAg
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlY3QpOwotICAgIGVsc2UK
LSAgICAgICAgcmVjdCA9IGxvY2FsVG9Db250YWluZXJRdWFkKEZsb2F0UmVjdChyZWN0KSwgcmVw
YWludENvbnRhaW5lcikuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKLSAgICAKLSAgICByZXR1cm4g
cmVjdDsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVSZWN0Rm9yUmVwYWludChyZWN0LCByZXBhaW50
Q29udGFpbmVyKTsKKyAgICByZXR1cm4gbG9jYWxUb0NvbnRhaW5lclF1YWQoRmxvYXRSZWN0KHJl
Y3QpLCByZXBhaW50Q29udGFpbmVyKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogfQogCiBMYXlv
dXRSZWN0IFJlbmRlclJlcGxhY2VkOjpsb2NhbFNlbGVjdGlvblJlY3QoYm9vbCBjaGVja1doZXRo
ZXJTZWxlY3RlZCkgY29uc3QKQEAgLTYxNCwxNSArNjExLDExIEBAIExheW91dFJlY3QgUmVuZGVy
UmVwbGFjZWQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPCiAgICAgLy8gVGhlIHNlbGVjdGlvblJlY3QgY2FuIHByb2plY3Qgb3V0c2lkZSBvZiB0
aGUgb3ZlcmZsb3dSZWN0LCBzbyB0YWtlIHRoZWlyIHVuaW9uCiAgICAgLy8gZm9yIHJlcGFpbnRp
bmcgdG8gYXZvaWQgc2VsZWN0aW9uIHBhaW50aW5nIGdsaXRjaGVzLgogICAgIExheW91dFJlY3Qg
ciA9IHVuaW9uUmVjdChsb2NhbFNlbGVjdGlvblJlY3QoZmFsc2UpLCB2aXN1YWxPdmVyZmxvd1Jl
Y3QoKSk7Ci0KICAgICAvLyBGSVhNRTogbGF5b3V0RGVsdGEgbmVlZHMgdG8gYmUgYXBwbGllZCBp
biBwYXJ0cyBiZWZvcmUvYWZ0ZXIgdHJhbnNmb3JtcyBhbmQKICAgICAvLyByZXBhaW50IGNvbnRh
aW5lcnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwOAogICAg
IHIubW92ZSh2aWV3KCkubGF5b3V0RGVsdGEoKSk7Ci0KICAgICByLmluZmxhdGUoc3R5bGUoKS5v
dXRsaW5lU2l6ZSgpKTsKLQotICAgIGNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFp
bmVyLCByKTsKLSAgICByZXR1cm4gcjsKKyAgICByZXR1cm4gY29tcHV0ZVJlY3RGb3JSZXBhaW50
KHIsIHJlcGFpbnRDb250YWluZXIpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IGYyODY2MGY1NmY2NDhlYTI3NDgzNGFjOGFhNjQ4
OWY5ODBlZDUxYmUuLjJjMGJjNDY5YTQ2NGZiNGUxMTY0YzU4MjE4OTI0NmUxODZhMWE0Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC0zODQs
MTggKzM4NCwxNyBAQCBMYXlvdXRSZWN0IFJlbmRlclRhYmxlQ2VsbDo6Y2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbAogICAgIC8vIHJlcGFpbnQgY29u
dGFpbmVycy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzA4CiAg
ICAgci5tb3ZlKHZpZXcoKS5sYXlvdXREZWx0YSgpKTsKIAotICAgIGNvbXB1dGVSZWN0Rm9yUmVw
YWludChyZXBhaW50Q29udGFpbmVyLCByKTsKLSAgICByZXR1cm4gcjsKKyAgICByZXR1cm4gY29t
cHV0ZVJlY3RGb3JSZXBhaW50KHIsIHJlcGFpbnRDb250YWluZXIpOwogfQogCi12b2lkIFJlbmRl
clRhYmxlQ2VsbDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmIHIsIGJvb2wgZml4ZWQpIGNvbnN0
CitMYXlvdXRSZWN0IFJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0
IExheW91dFJlY3QmIHIsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGJvb2wgZml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0g
dGhpcykKLSAgICAgICAgcmV0dXJuOwotICAgIHIuc2V0WShyLnkoKSk7CisgICAgICAgIHJldHVy
biByOworICAgIExheW91dFJlY3QgYWRqdXN0ZWRSZWN0ID0gcjsKICAgICBpZiAoKCF2aWV3KCku
bGF5b3V0U3RhdGVFbmFibGVkKCkgfHwgcmVwYWludENvbnRhaW5lcikgJiYgcGFyZW50KCkpCi0g
ICAgICAgIHIubW92ZUJ5KC1wYXJlbnRCb3goKS0+bG9jYXRpb24oKSk7IC8vIFJvd3MgYXJlIGlu
IHRoZSBzYW1lIGNvb3JkaW5hdGUgc3BhY2UsIHNvIGRvbid0IGFkZCB0aGVpciBvZmZzZXQgaW4u
Ci0gICAgUmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQocmVwYWludENvbnRh
aW5lciwgciwgZml4ZWQpOworICAgICAgICBhZGp1c3RlZFJlY3QubW92ZUJ5KC1wYXJlbnRCb3go
KS0+bG9jYXRpb24oKSk7IC8vIFJvd3MgYXJlIGluIHRoZSBzYW1lIGNvb3JkaW5hdGUgc3BhY2Us
IHNvIGRvbid0IGFkZCB0aGVpciBvZmZzZXQgaW4uCisgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxv
dzo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGFkanVzdGVkUmVjdCwgcmVwYWludENvbnRhaW5lciwg
Zml4ZWQpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlclRhYmxlQ2VsbDo6Y2VsbEJhc2VsaW5lUG9z
aXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5o
CmluZGV4IGU1MWFjNzkzNmMyMmZkNDViNjI4NTM1MzM3NGY3MjU4YmY3Y2FjMDAuLmQzNGVkNGY3
MzkxNDgwMjU3NDE0Njg3ZDRhYjM1YWM4OWNhNGUwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElubGlu
ZUZsb3dCb3gqKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBvZmZz
ZXRGcm9tQ29udGFpbmVyKFJlbmRlckVsZW1lbnQmLCBjb25zdCBMYXlvdXRQb2ludCYsIGJvb2wq
IG9mZnNldERlcGVuZHNPblBvaW50ID0gMCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNv
bnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgaW50IGJv
cmRlckhhbGZMZWZ0KGJvb2wgb3V0ZXIpIGNvbnN0OwogICAgIGludCBib3JkZXJIYWxmUmlnaHQo
Ym9vbCBvdXRlcikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAK
aW5kZXggMmJiNzQ3ODcwZjQxM2FiNzEyOGVjYzBlOWYxOGM4YjA1OTJlYmY1Ni4uZmQwNTc5Y2Uy
MGI5YmVhMTk0NWQ4ZTJkYmEzZGY2YjU3MWM2MGJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcApAQCAtMTMyMSwxMSArMTMyMSw4IEBAIExheW91dFJlY3QgUmVuZGVy
VGV4dDo6Y29sbGVjdFNlbGVjdGlvblJlY3RzRm9yTGluZUJveGVzKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPCiAgICAgfQogCiAgICAgaWYgKGNsaXBUb1Zpc2libGVDb250ZW50KQotICAgICAgICBj
b21wdXRlUmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciwgcmVzdWx0UmVjdCk7Ci0gICAg
ZWxzZQotICAgICAgICByZXN1bHRSZWN0ID0gbG9jYWxUb0NvbnRhaW5lclF1YWQoRmxvYXRSZWN0
KHJlc3VsdFJlY3QpLCByZXBhaW50Q29udGFpbmVyKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwot
Ci0gICAgcmV0dXJuIHJlc3VsdFJlY3Q7CisgICAgICAgIHJldHVybiBjb21wdXRlUmVjdEZvclJl
cGFpbnQocmVzdWx0UmVjdCwgcmVwYWludENvbnRhaW5lcik7CisgICAgcmV0dXJuIGxvY2FsVG9D
b250YWluZXJRdWFkKEZsb2F0UmVjdChyZXN1bHRSZWN0KSwgcmVwYWludENvbnRhaW5lcikuZW5j
bG9zaW5nQm91bmRpbmdCb3goKTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJUZXh0Ojpjb2xsZWN0
U2VsZWN0aW9uUmVjdHNGb3JMaW5lQm94ZXMoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCwgVmVjdG9yPExheW91
dFJlY3Q+JiByZWN0cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRl
eCAyNDZiMDkzNjIzMjM5Y2ZkNTAyNTVhMmUyNjVjYTY1NGQwNWRjYzk2Li45MDI5NWNiMWFjOTVl
NDA5YzQ0OWY5MDk1YjkzZmQ4NmU0ZDcxZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCkBAIC02OTYsMzUgKzY5NiwzNyBAQCBMYXlvdXRSZWN0IFJlbmRlclZpZXc6
OnZpc3VhbE92ZXJmbG93UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6
dmlzdWFsT3ZlcmZsb3dSZWN0KCk7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6Y29tcHV0ZVJlY3RG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IExheW91dFJlY3QmIHJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclZp
ZXc6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkKSBjb25z
dAogewogICAgIC8vIElmIGEgY29udGFpbmVyIHdhcyBzcGVjaWZpZWQsIGFuZCB3YXMgbm90IG51
bGxwdHIgb3IgdGhlIFJlbmRlclZpZXcsCiAgICAgLy8gdGhlbiB3ZSBzaG91bGQgaGF2ZSBmb3Vu
ZCBpdCBieSBub3cuCiAgICAgQVNTRVJUX0FSRyhyZXBhaW50Q29udGFpbmVyLCAhcmVwYWludENv
bnRhaW5lciB8fCByZXBhaW50Q29udGFpbmVyID09IHRoaXMpOwogCiAgICAgaWYgKHByaW50aW5n
KCkpCi0gICAgICAgIHJldHVybjsKLQorICAgICAgICByZXR1cm4gcmVjdDsKKyAgICAKKyAgICBM
YXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IHJlY3Q7CiAgICAgaWYgKHN0eWxlKCkuaXNGbGlwcGVk
QmxvY2tzV3JpdGluZ01vZGUoKSkgewogICAgICAgICAvLyBXZSBoYXZlIHRvIGZsaXAgYnkgaGFu
ZCBzaW5jZSB0aGUgdmlldydzIGxvZ2ljYWwgaGVpZ2h0IGhhcyBub3QgYmVlbiBkZXRlcm1pbmVk
LiAgV2UKICAgICAgICAgLy8gY2FuIHVzZSB0aGUgdmlld3BvcnQgd2lkdGggYW5kIGhlaWdodC4K
ICAgICAgICAgaWYgKHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAgICAg
ICAgIHJlY3Quc2V0WSh2aWV3SGVpZ2h0KCkgLSByZWN0Lm1heFkoKSk7CisgICAgICAgICAgICBh
ZGp1c3RlZFJlY3Quc2V0WSh2aWV3SGVpZ2h0KCkgLSBhZGp1c3RlZFJlY3QubWF4WSgpKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcmVjdC5zZXRYKHZpZXdXaWR0aCgpIC0gcmVjdC5tYXhY
KCkpOworICAgICAgICAgICAgYWRqdXN0ZWRSZWN0LnNldFgodmlld1dpZHRoKCkgLSBhZGp1c3Rl
ZFJlY3QubWF4WCgpKTsKICAgICB9CiAKICAgICBpZiAoZml4ZWQpIHsKICNpZiBQTEFURk9STShJ
T1MpCi0gICAgICAgIHJlY3QubW92ZShmaXhlZFBvc2l0aW9uT2Zmc2V0KGZyYW1lVmlldygpKSk7
CisgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlKGZpeGVkUG9zaXRpb25PZmZzZXQoZnJhbWVWaWV3
KCkpKTsKICNlbHNlCi0gICAgICAgIHJlY3QubW92ZShmcmFtZVZpZXcoKS5zY3JvbGxPZmZzZXRG
b3JGaXhlZFBvc2l0aW9uKCkpOworICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShmcmFtZVZpZXco
KS5zY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkpOwogI2VuZGlmCiAgICAgfQogICAgICAg
ICAKICAgICAvLyBBcHBseSBvdXIgdHJhbnNmb3JtIGlmIHdlIGhhdmUgb25lIChiZWNhdXNlIG9m
IGZ1bGwgcGFnZSB6b29taW5nKS4KICAgICBpZiAoIXJlcGFpbnRDb250YWluZXIgJiYgbGF5ZXIo
KSAmJiBsYXllcigpLT50cmFuc2Zvcm0oKSkKLSAgICAgICAgcmVjdCA9IExheW91dFJlY3QobGF5
ZXIoKS0+dHJhbnNmb3JtKCktPm1hcFJlY3Qoc25hcFJlY3RUb0RldmljZVBpeGVscyhyZWN0LCBk
b2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpKSk7CisgICAgICAgIGFkanVzdGVkUmVjdCA9
IExheW91dFJlY3QobGF5ZXIoKS0+dHJhbnNmb3JtKCktPm1hcFJlY3Qoc25hcFJlY3RUb0Rldmlj
ZVBpeGVscyhhZGp1c3RlZFJlY3QsIGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpKTsK
KyAgICByZXR1cm4gYWRqdXN0ZWRSZWN0OwogfQogCiBib29sIFJlbmRlclZpZXc6OmlzU2Nyb2xs
YWJsZU9yUnViYmVyYmFuZGFibGVCb3goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmgKaW5kZXggZGM0ZjkxOTQ0MGNmM2NlYjk5MWRmYzM2ZDZhMTY1NzQ1ZDVkYTU2Ny4u
OTE4YzA1OTJjMWQ2OTNhODg1MmQ3NjU5ZDI1MDcyMWU3MjFhNzMwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICBGcmFt
ZVZpZXcmIGZyYW1lVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVWaWV3OyB9CiAKICAgICB2
aXJ0dWFsIExheW91dFJlY3QgdmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZh
bHNlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY29tcHV0ZVJlY3RG
b3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZvaWQgcmVwYWludFJvb3RDb250ZW50cygpOwogICAgIHZvaWQgcmVwYWludFZpZXdSZWN0
YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0OwogICAgIHZvaWQgcmVwYWludFZpZXdBbmRD
b21wb3NpdGVkTGF5ZXJzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAppbmRleCBiODc5MWFlNDAyMzQwNGUyY2Jj
MTMyZjVkZGExNDI2OWUwZDJhNzhmLi4wN2U1Mjg5NDYwN2Q3ZDFmODAzMzdkZmEzYjY3ZDViOTU0
OGM0MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ZvcmVpZ25PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKQEAgLTk4LDE2ICs5OCwxNCBAQCBMYXlvdXRSZWN0IFJl
bmRlclNWR0ZvcmVpZ25PYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0
IFJlbmRlckxheQogICAgIHJldHVybiBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dS
ZWN0Rm9yUmVwYWludCgqdGhpcywgcmVwYWludENvbnRhaW5lcik7CiB9CiAKLXZvaWQgUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVj
dCwgYm9vbCBmaXhlZCkgY29uc3QKK0Zsb2F0UmVjdCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpj
b21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVk
KSBjb25zdAogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBh
aW50KCp0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOworICAgIHJl
dHVybiBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCgqdGhpcywg
cmVwYWludFJlY3QsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJT
VkdGb3JlaWduT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJv
b2wgZml4ZWQpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OmNvbXB1
dGVSZWN0Rm9yUmVwYWludChjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCkgY29uc3QK
IHsKLSAgICBGbG9hdFJlY3QgZmxvYXRSZWN0KHJlcGFpbnRSZWN0KTsKLSAgICBjb21wdXRlRmxv
YXRSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCBmbG9hdFJlY3QsIGZpeGVkKTsKLSAg
ICByZXBhaW50UmVjdCA9IGVuY2xvc2luZ0xheW91dFJlY3QoZmxvYXRSZWN0KTsKKyAgICByZXR1
cm4gZW5jbG9zaW5nTGF5b3V0UmVjdChjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChyZXBhaW50
UmVjdCwgcmVwYWludENvbnRhaW5lciwgZml4ZWQpKTsKIH0KIAogY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9y
ZWlnbk9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3Jl
aWduT2JqZWN0LmgKaW5kZXggNjE5YzQ5NDk0ZWVjMTFhYzRmODYwYmI3NWJjNmQ2YmE0YWQ4MjZm
OC4uNzI4MjNhM2ZkODc5ZGJhMGJhMmMzOWUzZDAzNTZhYTZlNTIxZTNlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgK
QEAgLTQwLDggKzQwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludElu
Zm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJv
b2wgZml4ZWQgPSBmYWxzZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBGbG9hdFJlY3Qg
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCA9IGZhbHNlKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY29tcHV0ZVJlY3RGb3JSZXBh
aW50KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCBmMTk0NzAyZGU1
MmRjZWM3NjFlNzA5M2U5MTg3YTYyNTFjMzRhMmU4Li5jM2U0YzcxYmIyMTA5YTM1NDMwOWJiNGRl
MDEzZjA5M2MyZmVmMTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0lubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmUuY3BwCkBAIC03Miw5ICs3Miw5IEBAIExheW91dFJlY3QgUmVuZGVyU1ZH
SW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsCiAgICAgcmV0dXJuIFNWR1JlbmRlclN1cHBvcnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JS
ZXBhaW50KCp0aGlzLCByZXBhaW50Q29udGFpbmVyKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxp
bmU6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQp
IGNvbnN0CitGbG9hdFJlY3QgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChjb25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkKSBjb25zdAogewotICAgIFNWR1Jl
bmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KCp0aGlzLCByZXBhaW50Q29u
dGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOworICAgIHJldHVybiBTVkdSZW5kZXJTdXBwb3J0
Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCgqdGhpcywgcmVwYWludFJlY3QsIHJlcGFpbnRD
b250YWluZXIsIGZpeGVkKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0lubGluZS5oCmluZGV4IGEwMDFmMjlmZjFjMWJiYmI3YjcxOWIyMmViMDJlYWNjNmM4MjFk
ZjMuLjdiMjY4MTY3MmQ1Yjk1N2U1MzgzMDE4MTkxMGY2MDU0ZTllNzc4M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtNTEsNyArNTEs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENv
b3JkaW5hdGVzKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKICAgICB2aXJ0dWFsIExheW91dFJl
Y3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVh
bCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkg
Y29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgY29tcHV0ZUZsb2F0
UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBvdmVycmlk
ZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1h
cENvb3JkaW5hdGVzRmxhZ3MsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBvdmVycmlkZSBmaW5hbDsK
ICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9t
ZXRyeU1hcCYpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0
ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRl
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R01vZGVsT2JqZWN0LmNwcAppbmRleCA2OGIyMGRhNjI1MjUzYjY0NmI1ZGExZmE1NGQwNWNlZDUx
MDIxNWQ2Li4wMzBmMTBiZTM1NjgwZDUwNmI1M2UxMjI0NmI2YTI5ZjZiNzk4MGMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0
LmNwcApAQCAtNTAsOSArNTAsOSBAQCBMYXlvdXRSZWN0IFJlbmRlclNWR01vZGVsT2JqZWN0Ojpj
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllcgogICAgIHJldHVy
biBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCgqdGhpcywg
cmVwYWludENvbnRhaW5lcik7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNvbXB1
dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0CitG
bG9hdFJlY3QgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50
KGNvbnN0IEZsb2F0UmVjdCYgcmVwYWludFJlY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVy
U3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoKnRoaXMsIHJlcGFpbnRDb250YWlu
ZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CisgICAgcmV0dXJuIFNWR1JlbmRlclN1cHBvcnQ6OmNv
bXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KCp0aGlzLCByZXBhaW50UmVjdCwgcmVwYWludENvbnRh
aW5lciwgZml4ZWQpOwogfQogCiB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncywgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5kZXggMDBkMmY2OWYzMDM5YmJjYWQwY2EyYzFmMTE4
NzlhY2FjYWQzMmUyYy4uNmE1ODU3Y2ExYjNlZGZmNGU4ZWQ1ZjE3Y2YxYmZiNWRhNWY1OGQyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBTVkdFbGVtZW50OwogY2xhc3MgUmVuZGVy
U1ZHTW9kZWxPYmplY3QgOiBwdWJsaWMgUmVuZGVyRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0g
ZmFsc2UpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IGNvbXB1
dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Qg
b3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IG91dGxpbmVCb3VuZHNGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNv
bnN0IFJlbmRlckdlb21ldHJ5TWFwKikgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2lu
dCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggYzJmYWFhMjVlMTQz
MmY2MGY3ODkxOGIwZjg1NzVlNDUyN2E4YTQ3MC4uMmE4NjJkYmM0YWI0MGI3MWE1Mjk0ZTliOGM2
N2VmMTc5OGU0MDgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuY3BwCkBAIC0zNDUsMzAgKzM0NSwyNyBAQCBMYXlvdXRSZWN0IFJlbmRlclNWR1Jv
b3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YgogICAgIHJldHVybiBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludCgqdGhpcywgcmVwYWludENvbnRhaW5lcik7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHUm9vdDo6
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkgY29u
c3QKK0Zsb2F0UmVjdCBSZW5kZXJTVkdSb290Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChj
b25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkKSBjb25zdAogewogICAgIC8vIEFwcGx5IG91
ciBsb2NhbCB0cmFuc2Zvcm1zIChleGNlcHQgZm9yIHgveSB0cmFuc2xhdGlvbiksIHRoZW4gb3Vy
IHNoYWRvdywgCiAgICAgLy8gYW5kIHRoZW4gY2FsbCBSZW5kZXJCb3gncyBtZXRob2QgdG8gaGFu
ZGxlIGFsbCB0aGUgbm9ybWFsIENTUyBCb3ggbW9kZWwgYml0cwotICAgIHJlcGFpbnRSZWN0ID0g
bV9sb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtLm1hcFJlY3QocmVwYWludFJlY3QpOworICAgIEZs
b2F0UmVjdCBhZGp1c3RlZFJlY3QgPSBtX2xvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm0ubWFwUmVj
dChyZXBhaW50UmVjdCk7CiAKICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSYgc3ZnU3R5bGUgPSBz
dHlsZSgpLnN2Z1N0eWxlKCk7CiAgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2
Z1N0eWxlLnNoYWRvdygpKQotICAgICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3cocmVw
YWludFJlY3QpOworICAgICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3coYWRqdXN0ZWRS
ZWN0KTsKIAogICAgIC8vIEFwcGx5IGluaXRpYWwgdmlld3BvcnQgY2xpcAogICAgIGlmIChzaG91
bGRBcHBseVZpZXdwb3J0Q2xpcCgpKQotICAgICAgICByZXBhaW50UmVjdC5pbnRlcnNlY3Qoc25h
cHBlZEludFJlY3QoYm9yZGVyQm94UmVjdCgpKSk7CisgICAgICAgIGFkanVzdGVkUmVjdC5pbnRl
cnNlY3Qoc25hcHBlZEludFJlY3QoYm9yZGVyQm94UmVjdCgpKSk7CiAKICAgICBpZiAobV9oYXNC
b3hEZWNvcmF0aW9ucyB8fCBoYXNSZW5kZXJPdmVyZmxvdygpKSB7CiAgICAgICAgIC8vIFRoZSBz
ZWxlY3Rpb25SZWN0IGNhbiBwcm9qZWN0IG91dHNpZGUgb2YgdGhlIG92ZXJmbG93UmVjdCwgc28g
dGFrZSB0aGVpciB1bmlvbgogICAgICAgICAvLyBmb3IgcmVwYWludGluZyB0byBhdm9pZCBzZWxl
Y3Rpb24gcGFpbnRpbmcgZ2xpdGNoZXMuCiAgICAgICAgIExheW91dFJlY3QgZGVjb3JhdGVkUmVw
YWludFJlY3QgPSB1bmlvblJlY3QobG9jYWxTZWxlY3Rpb25SZWN0KGZhbHNlKSwgdmlzdWFsT3Zl
cmZsb3dSZWN0KCkpOwotICAgICAgICByZXBhaW50UmVjdC51bml0ZShkZWNvcmF0ZWRSZXBhaW50
UmVjdCk7CisgICAgICAgIGFkanVzdGVkUmVjdC51bml0ZShkZWNvcmF0ZWRSZXBhaW50UmVjdCk7
CiAgICAgfQotCi0gICAgTGF5b3V0UmVjdCByZWN0ID0gZW5jbG9zaW5nSW50UmVjdChyZXBhaW50
UmVjdCk7Ci0gICAgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50
Q29udGFpbmVyLCByZWN0LCBmaXhlZCk7Ci0gICAgcmVwYWludFJlY3QgPSByZWN0OworICAgIHJl
dHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGVuY2xvc2luZ0ludFJl
Y3QoYWRqdXN0ZWRSZWN0KSwgcmVwYWludENvbnRhaW5lciwgZml4ZWQpOwogfQogCiAvLyBUaGlz
IG1ldGhvZCBleHBlY3RzIGxvY2FsIENTUyBib3ggY29vcmRpbmF0ZXMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDQ5NzgyZWFhNDI5YWNmODZk
NThmMTNlMTY0OWM2MmUxNjlkMWEzNzIuLmJkNWY3ZjU3MmVkMTUzZGJkMWVlZDA3ZThhYmZjMWE2
MjQ3NjJjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5oCkBAIC05NSw3ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgTGF5b3V0
UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgY29tcHV0ZUZsb2F0UmVjdEZv
clJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3Ms
IGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRl
ck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKaW5k
ZXggOTJiNzFlOWM2NDg1MTA4Y2UyYzdiZjM0NzU0MGM4N2E2MmQ2NWYwYy4uMDY4N2VmY2UzODky
OGMwMDBjZGMxYWRlYWE5OTAyZWYzMmE2MzIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCkBAIC05MSwxNiArOTEsMTQgQEAgTGF5b3V0UmVj
dCBSZW5kZXJTVkdUZXh0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2IKICAgICByZXR1cm4gU1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQoKnRoaXMsIHJlcGFpbnRDb250YWluZXIpOwogfQogCi12b2lkIFJl
bmRlclNWR1RleHQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiByZWN0LCBib29sIGZpeGVkKSBj
b25zdAorTGF5b3V0UmVjdCBSZW5kZXJTVkdUZXh0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29u
c3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCBmaXhlZCkgY29uc3QKIHsKLSAgICBGbG9hdFJlY3QgcmVwYWludFJl
Y3QgPSByZWN0OwotICAgIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWlu
ZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7Ci0gICAgcmVjdCA9IGVuY2xvc2luZ0xheW91dFJlY3Qo
cmVwYWludFJlY3QpOworICAgIHJldHVybiBlbmNsb3NpbmdMYXlvdXRSZWN0KGNvbXB1dGVGbG9h
dFJlY3RGb3JSZXBhaW50KHJlY3QsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkKSk7CiB9CiAKLXZv
aWQgUmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVj
dCwgYm9vbCBmaXhlZCkgY29uc3QKK0Zsb2F0UmVjdCBSZW5kZXJTVkdUZXh0Ojpjb21wdXRlRmxv
YXRSZWN0Rm9yUmVwYWludChjb25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkKSBjb25zdAog
ewotICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KCp0aGlz
LCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOworICAgIHJldHVybiBTVkdS
ZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCgqdGhpcywgcmVwYWludFJl
Y3QsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdUZXh0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNG
bGFncywgYm9vbCogd2FzRml4ZWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4IDQ2Mjc3M2QyMTlhMzRjYjYyYTZhYzgxOTIxZGQ5NDRk
MjM1OGQyNmMuLjcxYmUxY2RlMzQ5ODQwYWE4MzJjOTQ5MDE1ZTIxY2EyY2MxZWNhYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC03OCw4ICs3
OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZs
b2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFs
IExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBj
b25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFp
bnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRS
ZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExh
eW91dFJlY3QgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkID0gZmFs
c2UpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IGNvbXB1dGVGbG9hdFJl
Y3RGb3JSZXBhaW50KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAKaW5kZXggMjA4YTFiYmVjYjM4MGM1OWZkNjVkZWZmZjIzMTNhNGY0N2Zj
NGY0OC4uM2RiM2NjOTllZjE3ZGQyYTY4YjE4YWRiNWVmN2FjZDIwOTNkM2UwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCkBAIC02
NywyMCArNjcsMjAgQEAgTGF5b3V0UmVjdCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZs
b3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJFbGVtZW50JgogICAgIGNvbnN0IFNWR1JlbmRl
clN0eWxlJiBzdmdTdHlsZSA9IHJlbmRlcmVyLnN0eWxlKCkuc3ZnU3R5bGUoKTsKICAgICBpZiAo
Y29uc3QgU2hhZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUuc2hhZG93KCkpCiAgICAgICAgIHNo
YWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7Ci0gICAgcmVuZGVyZXIuY29t
cHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QpOwot
ICAgIHJldHVybiBlbmNsb3NpbmdMYXlvdXRSZWN0KHJlcGFpbnRSZWN0KTsKKyAgICByZXR1cm4g
ZW5jbG9zaW5nTGF5b3V0UmVjdChyZW5kZXJlci5jb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChy
ZXBhaW50UmVjdCwgcmVwYWludENvbnRhaW5lcikpOwogfQogCi12b2lkIFNWR1JlbmRlclN1cHBv
cnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRl
cmVyLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9h
dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKQorRmxvYXRSZWN0IFNWR1JlbmRlclN1cHBv
cnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRl
cmVyLCBjb25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkKQogeworICAgIEZsb2F0UmVjdCBh
ZGp1c3RlZFJlY3QgPSByZXBhaW50UmVjdDsKICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSYgc3Zn
U3R5bGUgPSByZW5kZXJlci5zdHlsZSgpLnN2Z1N0eWxlKCk7CiAgICAgaWYgKGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLnNoYWRvdygpKQotICAgICAgICBzaGFkb3ctPmFkanVz
dFJlY3RGb3JTaGFkb3cocmVwYWludFJlY3QpOwotICAgIHJlcGFpbnRSZWN0LmluZmxhdGUocmVu
ZGVyZXIuc3R5bGUoKS5vdXRsaW5lV2lkdGgoKSk7CisgICAgICAgIHNoYWRvdy0+YWRqdXN0UmVj
dEZvclNoYWRvdyhhZGp1c3RlZFJlY3QpOworICAgIGFkanVzdGVkUmVjdC5pbmZsYXRlKHJlbmRl
cmVyLnN0eWxlKCkub3V0bGluZVdpZHRoKCkpOwogCiAgICAgLy8gVHJhbnNsYXRlIHRvIGNvb3Jk
cyBpbiBvdXIgcGFyZW50IHJlbmRlcmVyLCBhbmQgdGhlbiBjYWxsIGNvbXB1dGVGbG9hdFJlY3RG
b3JSZXBhaW50KCkgb24gb3VyIHBhcmVudC4KLSAgICByZXBhaW50UmVjdCA9IHJlbmRlcmVyLmxv
Y2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlcGFpbnRSZWN0KTsKLSAgICByZW5kZXJl
ci5wYXJlbnQoKS0+Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciwg
cmVwYWludFJlY3QsIGZpeGVkKTsKKyAgICBhZGp1c3RlZFJlY3QgPSByZW5kZXJlci5sb2NhbFRv
UGFyZW50VHJhbnNmb3JtKCkubWFwUmVjdChhZGp1c3RlZFJlY3QpOworICAgIHJldHVybiByZW5k
ZXJlci5wYXJlbnQoKS0+Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoYWRqdXN0ZWRSZWN0LCBy
ZXBhaW50Q29udGFpbmVyLCBmaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlckVsZW1lbnQmIFNWR1Jl
bmRlclN1cHBvcnQ6OmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oY29uc3QgUmVuZGVyRWxlbWVudCYg
cmVuZGVyZXIsIEFmZmluZVRyYW5zZm9ybSAmdHJhbnNmb3JtKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAppbmRleCA4ZDdiZGIzY2U3OWI5Y2Q1
YWRkM2FlOWQ0NzNhNjExYzI4Yzk2Y2E3Li4xZGMxZTc3MTU3N2UyMGRkMTcxYjQxOTM4NWI1ZGIx
YmZmMDMzNGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlclN1cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuaApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgLy8gSW1wb3J0YW50IGZ1
bmN0aW9ucyB1c2VkIGJ5IG5lYXJseSBhbGwgU1ZHIHJlbmRlcmVycyBjZW50cmFsaXppbmcgY29v
cmRpbmF0ZSB0cmFuc2Zvcm1hdGlvbnMgLyByZXBhaW50IHJlY3QgY2FsY3VsYXRpb25zCiAgICAg
c3RhdGljIEZsb2F0UmVjdCByZXBhaW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5hdGVz
RXhjbHVkaW5nU1ZHU2hhZG93KGNvbnN0IFJlbmRlckVsZW1lbnQmKTsKICAgICBzdGF0aWMgTGF5
b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJFbGVtZW50
JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7Ci0gICAg
c3RhdGljIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyRWxlbWVu
dCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0
UmVjdCYsIGJvb2wgZml4ZWQpOworICAgIHN0YXRpYyBGbG9hdFJlY3QgY29tcHV0ZUZsb2F0UmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyRWxlbWVudCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQpOwog
ICAgIHN0YXRpYyBjb25zdCBSZW5kZXJFbGVtZW50JiBsb2NhbFRvUGFyZW50VHJhbnNmb3JtKGNv
bnN0IFJlbmRlckVsZW1lbnQmLCBBZmZpbmVUcmFuc2Zvcm0gJik7CiAgICAgc3RhdGljIHZvaWQg
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJFbGVtZW50JiwgY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBib29sKiB3
YXNGaXhlZCk7CiAgICAgc3RhdGljIGNvbnN0IFJlbmRlckVsZW1lbnQqIHB1c2hNYXBwaW5nVG9D
b250YWluZXIoY29uc3QgUmVuZGVyRWxlbWVudCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>