<?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>65720</bug_id>
          
          <creation_ts>2011-08-04 14:29:02 -0700</creation_ts>
          <short_desc>Add code to determine whether a Range in inside fixed position content</short_desc>
          <delta_ts>2011-08-04 23:20:29 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>joepeck</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>446784</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-04 14:29:02 -0700</bug_when>
    <thetext>I need to be able to determine whether a Range is partially, or entirely within fixed position content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446786</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-04 14:29:41 -0700</bug_when>
    <thetext>Going to bring back some of the changes from r89754 for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446788</commentid>
    <comment_count>2</comment_count>
      <attachid>102982</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-04 14:31:37 -0700</bug_when>
    <thetext>Created attachment 102982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446815</commentid>
    <comment_count>3</comment_count>
      <attachid>102982</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 15:08:47 -0700</bug_when>
    <thetext>Comment on attachment 102982
Patch

Attachment 102982 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9304635</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446919</commentid>
    <comment_count>4</comment_count>
      <attachid>102982</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-04 17:27:58 -0700</bug_when>
    <thetext>Comment on attachment 102982
Patch

Landed in http://trac.webkit.org/changeset/92434 with build fix in http://trac.webkit.org/changeset/92435</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446923</commentid>
    <comment_count>5</comment_count>
      <attachid>103010</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-04 17:33:56 -0700</bug_when>
    <thetext>Created attachment 103010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446931</commentid>
    <comment_count>6</comment_count>
      <attachid>103010</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-08-04 17:46:33 -0700</bug_when>
    <thetext>Comment on attachment 103010
Patch

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

&gt; Source/WebCore/rendering/RenderBlock.h:653
&gt; +    virtual void absoluteQuads(Vector&lt;FloatQuad&gt;&amp;, bool*);

This bool should have a parameter name.

&gt; Source/WebCore/rendering/RenderBox.h:231
&gt; +    virtual void absoluteQuads(Vector&lt;FloatQuad&gt;&amp;, bool*);

This bool should have a parameter name.

&gt; Source/WebCore/rendering/RenderInline.h:50
&gt; +    virtual void absoluteQuads(Vector&lt;FloatQuad&gt;&amp;, bool*);

This bool should have a parameter name.

&gt; Source/WebCore/rendering/svg/RenderSVGModelObject.h:59
&gt; +    virtual void absoluteQuads(Vector&lt;FloatQuad&gt;&amp;, bool*);

This bool should have a parameter name.

&gt; Source/WebCore/rendering/svg/RenderSVGText.h:63
&gt; +    virtual void absoluteQuads(Vector&lt;FloatQuad&gt;&amp;, bool*);

This bool should have a parameter name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446942</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-04 18:07:34 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/92438</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447060</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-04 23:20:29 -0700</bug_when>
    <thetext>It appears that scrollbars/scrollbar-drag-thumb-with-large-content.html started failing on Qt after this patch (this test is skipped on Snow Leopard per bug 65434):
http://build.webkit.org/builders/Qt%20Linux%20Release/builds/36170
http://build.webkit.org/builders/Qt%20Linux%20Release/builds/36171</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102982</attachid>
            <date>2011-08-04 14:31:37 -0700</date>
            <delta_ts>2011-08-04 17:27:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65720-20110804143136.patch</filename>
            <type>text/plain</type>
            <size>26747</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzOTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYjg0Y2JkNzFjZWIzNThi
MGY0OTM0YWMzMDYxNzk3YmQ0NTMzOWE5Li43ZTM5MGFmNTdhMGRkYzQzNTMxZmNkZjg2MjBkNzIy
MmU3ODg3Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDgtMDQgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvZGUgdG8g
ZGV0ZXJtaW5lIHdoZXRoZXIgYSBSYW5nZSBpbiBpbnNpZGUgZml4ZWQgcG9zaXRpb24gY29udGVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3MjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4g
b3V0IHBhcmFtIGZvciB2YXJpb3VzIGNvb3JkaW5hdGUgbWFwcGluZyBmdW5jdGlvbnMKKyAgICAg
ICAgdGhhdCB0ZWxscyB1cyB3aGV0aGVyIHRoZSBwb2ludCBvciByZWN0YW5nbGUgYmVpbmcKKyAg
ICAgICAgbWFwcGVkIGlzIGluc2lkZSBmaXhlZC1wb3NpdGlvbiBjb250ZW50LgorICAgICAgICAK
KyAgICAgICAgVGhpcyBicmluZ3MgYmFjayBzb21lIG9mIHRoZSBjaGFuZ2VzIGZyb20gcjg5NzU0
LgorICAgICAgICAKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlcywgc28gbm8gdGVzdHMuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVh
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQWJzb2x1dGVRdWFkKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjptYXBMb2Nh
bFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVj
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250
YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oOgorCiAy
MDExLTA4LTA0ICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
d2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ3MgZWxlbWVudCBhcmd1bWVudCBuZWVkcyB0byBi
ZSBtYXJrZWQgb3B0aW9uYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5k
ZXggMGI0MTA3MTE5NDBmMmI2OGM3ZWNlNjhiYjM4ZTJiNmM3NDI0NWZhNS4uMmMwMjU1NThlNGYx
NmE3Njk0NjkwMzRkZDNiNzBlZmM2Njg5ZGY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKQEAgLTEyMDgsNyArMTIwOCw3IEBAIGludCBSZW5kZXJCb3g6OnBlcnBlbmRp
Y3VsYXJDb250YWluaW5nQmxvY2tMb2dpY2FsSGVpZ2h0KCkgY29uc3QKICAgICByZXR1cm4gY2It
PmNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0TGVuZ3RoLnZhbHVl
KCkpOwogfQogCi12b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zv
cm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlckJv
eDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIGlmIChyZXBhaW50Q29u
dGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVybjsKQEAgLTEyMzgsNiArMTIzOCw4IEBAIHZv
aWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBib29sCiAgICAgICAgIGZpeGVkICY9IGlzRml4ZWRQb3M7CiAgICAg
fSBlbHNlCiAgICAgICAgIGZpeGVkIHw9IGlzRml4ZWRQb3M7CisgICAgaWYgKHdhc0ZpeGVkKQor
ICAgICAgICAqd2FzRml4ZWQgPSBmaXhlZDsKICAgICAKICAgICBMYXlvdXRTaXplIGNvbnRhaW5l
ck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgcm91bmRlZExheW91dFBvaW50KHRyYW5z
Zm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKICAgICAKQEAgLTEyNTcsNyArMTI1OSw3IEBAIHZv
aWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBib29sCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
by0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlVHJhbnNm
b3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIocmVwYWlu
dENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhl
ZCk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZp
eGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBhMmNjMzQ0MGIzMGZh
YTFiYjhhMTAzZDg4MDk2MzVlMzg2OGEyMjE3Li5hZDEyYzY0Nzc1ZDk1MGZhODhkOWI2YTY2ZmFl
NTdhMjZlZTg0ZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00MzMs
NyArNDMzLDcgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDb21w
dXRlU2l6ZUFzUmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBpc1JlcGxhY2VkKCkgJiYgIWlzSW5s
aW5lQmxvY2tPcklubGluZVRhYmxlKCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZp
eGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3Rh
dGUmLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNv
bHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9y
bVN0YXRlJikgY29uc3Q7CiAKICAgICB2b2lkIHBhaW50Um9vdEJveEZpbGxMYXllcnMoY29uc3Qg
UGFpbnRJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmlu
ZGV4IDE1N2ViZTRlZGY2YjMxYmVhMzk0MzhmNjAyYzgxNmNlN2VkNjM0MGMuLjJkYjg1Y2NiMzkw
ZGIzMGZmODNmZTM5YTUzZjk2NDAyYmQ0Nzk1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCkBAIC0xMTE0LDcgKzExMTQsNyBAQCBMYXlvdXRTaXplIFJlbmRl
cklubGluZTo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIGNvbnRhaW5lciwgY29u
c3QgTGF5bwogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKLXZvaWQgUmVuZGVySW5saW5lOjptYXBM
b2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBi
b29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1T
dGF0ZSkgY29uc3QKK3ZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRl
ckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRy
YW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQp
IGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0
dXJuOwpAQCAtMTE1Nyw3ICsxMTU3LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9D
b250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGIKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENv
bnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBvLT5t
YXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1z
LCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwogfQogCiB2b2lkIFJlbmRlcklubGluZTo6bWFw
QWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmgKaW5kZXggYzVmNTY0NTg3YWI4NzdjODlmNDg5NzgyMjYyMTFiZjgxNzVm
ZmVjZi4uYjRkMDI4YjRlN2MyOTk1ODAzYWU0NGJhODgwMzIxMjVlYjRiMDEwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBJbnRSZWN0IHJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGludCBvdXRsaW5lV2lkdGgpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmLCBib29sIGZpeGVkKSBjb25zdDsKIAot
ICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5z
Zm9ybVN0YXRlJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wg
dXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBi
b29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKICAgICB2aXJ0dWFs
IFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDUwZGJiNmYxZWQx
MzRkNTE2YjNlMjgwNGNkZGMxODZhMDVkODIwYWEuLjJiOGRkZGY3ODcwYThiNzhlZDJiYTJlNzhh
YmNlNDYyYTNhZGIzZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCkBAIC0xODM5LDcgKzE4MzksNyBAQCBGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6YWJzb2x1
dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmIGNvbnRhaW5lclBvaW50LCBib29sCiAgICAgcmV0
dXJuIHRyYW5zZm9ybVN0YXRlLmxhc3RQbGFuYXJQb2ludCgpOwogfQogCi12b2lkIFJlbmRlck9i
amVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYg
dHJhbnNmb3JtU3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwg
Ym9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAogewogICAgIGlmIChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpCiAg
ICAgICAgIHJldHVybjsKQEAgLTE4NjAsNyArMTg2MCw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBiCiAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKQogICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5tb3ZlKC10b1JlbmRlckJveChvKS0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkp
OwogCi0gICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhlZCwg
dXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIG8tPm1hcExvY2FsVG9Db250YWlu
ZXIocmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRl
LCB3YXNGaXhlZCk7CiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0OjptYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFu
c2Zvcm1TdGF0ZSkgY29uc3QKQEAgLTE5MTEsMTIgKzE5MTEsMTIgQEAgdm9pZCBSZW5kZXJPYmpl
Y3Q6OmdldFRyYW5zZm9ybUZyb21Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBjb250YWlu
ZXJPYmplY3QKICNlbmRpZgogfQogCi1GbG9hdFF1YWQgUmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29u
dGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmIGxvY2FsUXVhZCwgUmVuZGVyQm94TW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQpIGNvbnN0CitGbG9hdFF1YWQgUmVuZGVy
T2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmIGxvY2FsUXVhZCwg
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAogewogICAgIC8vIFRyYWNrIHRoZSBwb2ludCBhdCB0aGUgY2VudGVy
IG9mIHRoZSBxdWFkJ3MgYm91bmRpbmcgYm94LiBBcyBtYXBMb2NhbFRvQ29udGFpbmVyKCkgY2Fs
bHMgb2Zmc2V0RnJvbUNvbnRhaW5lcigpLAogICAgIC8vIGl0IHdpbGwgdXNlIHRoYXQgcG9pbnQg
YXMgdGhlIHJlZmVyZW5jZSBwb2ludCB0byBkZWNpZGUgd2hpY2ggY29sdW1uJ3MgdHJhbnNmb3Jt
IHRvIGFwcGx5IGluIG11bHRpcGxlLWNvbHVtbiBibG9ja3MuCiAgICAgVHJhbnNmb3JtU3RhdGUg
dHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3RhdGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBs
b2NhbFF1YWQuYm91bmRpbmdCb3goKS5jZW50ZXIoKSwgbG9jYWxRdWFkKTsKLSAgICBtYXBMb2Nh
bFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB0cnVlLCB0cmFuc2Zvcm1TdGF0
ZSk7CisgICAgbWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdHJ1
ZSwgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsKICAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVu
KCk7CiAgICAgCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLmxhc3RQbGFuYXJRdWFkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMTI1YWJiOGM0OWUwOGVm
ZTdjN2FkY2M5NzM0ZDZiZGQzMjYwZTgzMi4uNDQxOTE0ZDI0NzJiZGQwOTg3MjI5MjQwNmYzMWYx
NzA5MTI1MGFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAt
NTg4LDEyICs1ODgsMTIgQEAgcHVibGljOgogICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVUb0xvY2Fs
KGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wgdXNlVHJhbnNmb3Jt
cyA9IGZhbHNlKSBjb25zdDsKIAogICAgIC8vIENvbnZlcnQgYSBsb2NhbCBxdWFkIHRvIGFic29s
dXRlIGNvb3JkaW5hdGVzLCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQuCi0gICAgRmxv
YXRRdWFkIGxvY2FsVG9BYnNvbHV0ZVF1YWQoY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBib29sIGZp
eGVkID0gZmFsc2UpIGNvbnN0CisgICAgRmxvYXRRdWFkIGxvY2FsVG9BYnNvbHV0ZVF1YWQoY29u
c3QgRmxvYXRRdWFkJiBxdWFkLCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0g
MCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBsb2NhbFRvQ29udGFpbmVyUXVhZChxdWFk
LCAwLCBmaXhlZCk7CisgICAgICAgIHJldHVybiBsb2NhbFRvQ29udGFpbmVyUXVhZChxdWFkLCAw
LCBmaXhlZCwgd2FzRml4ZWQpOwogICAgIH0KICAgICAvLyBDb252ZXJ0IGEgbG9jYWwgcXVhZCBp
bnRvIHRoZSBjb29yZGluYXRlIHN5c3RlbSBvZiBjb250YWluZXIsIHRha2luZyB0cmFuc2Zvcm1z
IGludG8gYWNjb3VudC4KLSAgICBGbG9hdFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3Qg
RmxvYXRRdWFkJiwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wg
Zml4ZWQgPSBmYWxzZSkgY29uc3Q7CisgICAgRmxvYXRRdWFkIGxvY2FsVG9Db250YWluZXJRdWFk
KGNvbnN0IEZsb2F0UXVhZCYsIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CiAKICAgICAv
LyBSZXR1cm4gdGhlIG9mZnNldCBmcm9tIHRoZSBjb250YWluZXIoKSByZW5kZXJlciAoZXhjbHVk
aW5nIHRyYW5zZm9ybXMpLiBJbiBtdWx0aS1jb2x1bW4gbGF5b3V0LAogICAgIC8vIGRpZmZlcmVu
dCBvZmZzZXRzIGFwcGx5IGF0IGRpZmZlcmVudCBwb2ludHMsIHNvIHJldHVybiB0aGUgb2Zmc2V0
IHRoYXQgYXBwbGllcyB0byB0aGUgZ2l2ZW4gcG9pbnQuCkBAIC03ODUsNyArNzg1LDcgQEAgcHVi
bGljOgogCiAgICAgLy8gTWFwIHBvaW50cyBhbmQgcXVhZHMgdGhyb3VnaCBlbGVtZW50cywgcG90
ZW50aWFsbHkgdmlhIDNkIHRyYW5zZm9ybXMuIFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBjYWxs
IHRoZXNlIGRpcmVjdGx5OyB1c2UKICAgICAvLyBsb2NhbFRvQWJzb2x1dGUvYWJzb2x1dGVUb0xv
Y2FsIG1ldGhvZHMgaW5zdGVhZC4KLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5l
cihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zv
cm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJiwgYm9v
bCogd2FzRml4ZWQgPSAwKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVUb0xv
Y2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYp
IGNvbnN0OwogCiAgICAgYm9vbCBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKGNvbnN0
IFJlbmRlck9iamVjdCogY29udGFpbmVyKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcAppbmRleCBhOTVjNDljOTRmYTJhYTYyMzk1Njc5OGY4OWQ1MGEyMjk5YTMz
OTljLi5kZWM4MWIyYTAzZGU4MjEzOGUzNmI4ZWM0OTRmYzBiZDc2YTA1ZjY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC0xMzcsMTEgKzEzNywxMyBAQCB2b2lk
IFJlbmRlclZpZXc6OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCi12
b2lkIFJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJWaWV3OjptYXBMb2Nh
bFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29s
IGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgLy8gSWYgYSBjb250YWluZXIgd2FzIHNw
ZWNpZmllZCwgYW5kIHdhcyBub3QgMCBvciB0aGUgUmVuZGVyVmlldywKICAgICAvLyB0aGVuIHdl
IHNob3VsZCBoYXZlIGZvdW5kIGl0IGJ5IG5vdy4KICAgICBBU1NFUlRfQVJHKHJlcGFpbnRDb250
YWluZXIsICFyZXBhaW50Q29udGFpbmVyIHx8IHJlcGFpbnRDb250YWluZXIgPT0gdGhpcyk7Cisg
ICAgQVNTRVJUKCF3YXNGaXhlZCB8fCAqd2FzRml4ZWQgPT0gZml4ZWQpOworICAgIFVOVVNFRF9Q
QVJBTShmaXhlZCk7CiAKICAgICBpZiAoIXJlcGFpbnRDb250YWluZXIgJiYgdXNlVHJhbnNmb3Jt
cyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKDApKSB7CiAgICAgICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRl
eCA3NzEzM2M3ZTlmNzYwOGIxYjEwMGI2MzBhNDRiYjQwN2UzNTA2YzQyLi5lYTMyZjEyZTQyOThl
ODJiNTBiNDY5ODE3YjEyMzA4YjdiNzJkYWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRy
YW5zZm9ybVN0YXRlJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWlu
ZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNm
b3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVk
LCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVp
Z25PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3Jl
aWduT2JqZWN0LmNwcAppbmRleCA1MTVkMDQwMmEyMzM2ZmViNWFiMDg3ZDNkYWJiNzc4ZmYxYjIw
MGU3Li4wMjEwNDYzM2NiMTY0YWRmMzkxNDBiODg2Y2Q0MzZlNTg0NGRiMjdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHAKQEAgLTE1OSwxMiArMTU5LDEyIEBAIGJvb2wgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6
bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBm
aXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUp
IGNvbnN0Cit2b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIo
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wg
dXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKIHsKICAgICAvLyBXaGVuIGNyYXdsaW5nIHVwIHRoZSBoaWVyYWNoeSBzdGFy
dGluZyBmcm9tIGZvcmVpZ25PYmplY3QgY2hpbGQgY29udGVudCwgdXNlVHJhbnNmb3JtcyBtYXkg
bm90IGJlIHNldCB0byB0cnVlLgogICAgIGlmICghdXNlVHJhbnNmb3JtcykKICAgICAgICAgdXNl
VHJhbnNmb3JtcyA9IHRydWU7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRh
aW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNm
b3JtU3RhdGUpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhp
cywgcmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRl
LCB3YXNGaXhlZCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKaW5kZXggNmQ2YzRiZWNkZWExMTIzODdlYmU4
MzRhNGQzMDVkMTU1NDMwYTNjYi4uZTY0ZWVkNTBjZDBhZGYzNGY0MGRmNGZhYzE1MDM5NGYzYmQy
ZThiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdGb3JlaWduT2JqZWN0LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBj
b25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFj
Y3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdG
b3JlaWduT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lk
IG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIGJvb2wgZml4ZWQgLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29u
c3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3Jtcywg
VHJhbnNmb3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA9
IHRydWU7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCA2NTU3ZGJlYzc4ODU2YjlmYmMwYWE4NWIxY2YxM2Uy
MDgyOTNjMjQ3Li4xNTdkNTc5ODFjM2Y5ZDNlMzQxMGE4Zjk5MzQ0MTA5ZjkzNTEyN2FkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCkBA
IC03Nyw5ICs3Nyw5IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFp
bnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluCiAgICAgU1ZHUmVuZGVyU3Vw
cG9ydDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFp
bnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29u
dGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRy
YW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29u
c3QKK3ZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4
ZWQsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBh
aW50Q29udGFpbmVyLCB1c2VUcmFuc2Zvcm1zLCBmaXhlZCwgdHJhbnNmb3JtU3RhdGUpOworICAg
IFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRh
aW5lciwgdXNlVHJhbnNmb3JtcywgZml4ZWQsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9
CiAKIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+
JiBxdWFkcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGlu
ZS5oCmluZGV4IDcwMGY3ZTVkNGJiYWNiNDg1MTQxMDJhOGVmODBmYjc2MzcxNjdmYTAuLjg3NTBi
ZDQ0MmJmOWYzN2E3ZGZjZTY4MDIzNDFjOGRkODg5ZTU0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIEludFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIEludFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0OwotICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0
YXRlJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9v
bCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUmLCAgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmNwcAppbmRleCAyN2E5MjEyMTVjYzQ5NjNmZGQwZmJiYzNhNDZlNDI3Y2RiZDI1
NjdiLi5hY2ZkOTc2ZjBhNDNjNjg4MDIxMTQ3ZmE4NDVjMDBhOGViNDVmYTk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNw
cApAQCAtNTMsOSArNTMsOSBAQCB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpjb21wdXRlUmVj
dEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDbwogICAgIFNWR1JlbmRl
clN1cHBvcnQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCBy
ZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBM
b2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBi
b29sIGZpeGVkICwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3Jt
U3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFp
bmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBi
b29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCog
d2FzRml4ZWQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRh
aW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNm
b3JtU3RhdGUpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhp
cywgcmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRl
LCB3YXNGaXhlZCk7CiB9CiAKIC8vIENvcGllZCBmcm9tIFJlbmRlckJveCwgdGhpcyBtZXRob2Qg
bGlrZWx5IHJlcXVpcmVzIGZ1cnRoZXIgcmVmYWN0b3JpbmcgdG8gd29yayBlYXNpbHkgZm9yIGJv
dGggU1ZHIGFuZCBDU1MgQm94IE1vZGVsIGNvbnRlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5kZXggOTU0ODIzMzJmZjk5
ZGZhMjk1ODgyMjFhOTgxOWRkYWFhYjQ3MGY4Ny4uMGVmMjFjM2U5NTdmM2FhOWY4YTNhMjE5MWFk
ODRlYjc5NTgwYzU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0
UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFk
cyhWZWN0b3I8RmxvYXRRdWFkPiYpOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJh
bnNmb3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYs
IGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENo
YW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAg
dmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4
IDE3NjdhZjRiNGM5MzFhZWNiZWM4ODg5MWYyOTJkNTkzZTA1Y2Y0YjIuLjk5N2FlZWY0OWVhNzhh
OTdiYjY1ZGNmOTgxYzNkNmU3NGYxMmNmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtNDE1LDE0ICs0MTUsMTQgQEAgdm9pZCBSZW5k
ZXJTVkdSb290Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIKICAgICBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBh
aW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR1Jv
b3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGJvb2wgZml4ZWQgLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0
cmFuc2Zvcm1TdGF0ZSkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwg
Ym9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAogewogICAgIEFTU0VSVCghZml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2
ZSBubyBmaXhlZCBjb250ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCiAgICAgQVNTRVJU
KHVzZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJlc3Bl
Y3RpbmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgogCiAgICAgLy8gVHJhbnNmb3JtIHRvIG91ciBi
b3JkZXIgYm94IGFuZCBsZXQgUmVuZGVyQm94IHRyYW5zZm9ybSB0aGUgcmVzdCBvZiB0aGUgd2F5
LgogICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKGxvY2FsVG9Cb3JkZXJCb3hUcmFu
c2Zvcm0oKSk7Ci0gICAgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250
YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgUmVuZGVy
Qm94OjptYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFu
c2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwogfQogCiB2b2lkIFJlbmRlclNWR1Jv
b3Q6OnVwZGF0ZUNhY2hlZEJvdW5kYXJpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuaAppbmRleCBiYWE0ZWUwMDRlYjQzYjZkNDE4N2ZlNWQ4ODhiMjJl
Zjk2OWRmMTRjLi5kYWY3MGNiZTcwNmZlZGVmMTI0OTU1MzE3ZThiY2Q1N2JkNmVhYzNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaApAQCAtODMsNyAr
ODMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSW50UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0
Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Q7
CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgSW50UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQp
IGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBm
aXhlZCwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1
c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVk
ID0gMCkgY29uc3Q7CiAKICAgICB2b2lkIGNhbGNWaWV3cG9ydCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAppbmRleCBjZjg2OGZhOTMwMWFm
MTU3OTI2YzA3OTc4YjVjMDQxNWJmMTE5MjFiLi45NTA0YjM5ZTBkZjU2NzEwZjQxZDFhMTYxNjFj
YjRmOTljY2JkZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dC5jcHAKQEAgLTkyLDkgKzkyLDkgQEAgdm9pZCBSZW5kZXJTVkdUZXh0Ojpjb21wdXRl
UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIKICAg
ICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENv
bnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdUZXh0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1
c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wqIHdhc0Zp
eGVkKSBjb25zdAogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIo
dGhpcywgcmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0
YXRlKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJl
cGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSwgd2Fz
Rml4ZWQpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcmVjdXJzaXZlVXBkYXRlU2NhbGVkRm9u
dChSZW5kZXJPYmplY3QqIHN0YXJ0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1RleHQuaAppbmRleCBkZTVmZjRmODdlMmY5MTUwNGFjZjNjYTNiYjVkNGVkMDQ2MGI1
YjNjLi5iNDc5ZTdhNmU0MWQxMDBkZGMxOWJiZDIwZGZiMjk1M2FiY2E1N2VlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaApAQCAtNjUsNyArNjUsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgSW50UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgSW50UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Q7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFu
c2Zvcm1TdGF0ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVy
KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9y
bXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25z
dDsKIAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgeyBy
ZXR1cm4gZnJhbWVSZWN0KCk7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGlu
Z0JveCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAKaW5kZXggNmYzM2YwZmQyNmQ4MzlkZjBiNWRhYTU3MWIxYzQ3NjBiYTk2
YjlmNC4uNjhlMThlZTBiZDRkZjI3NmJmYjY5OGVmNjQ0YjU2NWZiZjI3OTY3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCkBAIC03
MCwxMiArNzAsMTIgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlUmVjdEZvclJlcGFp
bnQoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlckIKICAgICBvYmplY3QtPnBhcmVu
dCgpLT5jb21wdXRlUmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3Qs
IGZpeGVkKTsKIH0KIAotdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVy
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCBmaXhlZCAsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3Rh
dGUmIHRyYW5zZm9ybVN0YXRlKQordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wqIHdhc0ZpeGVkKQogewogICAgIEFTU0VSVCgh
Zml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2ZSBubyBmaXhlZCBjb250ZW50IGluIHRoZSBTVkcgcmVu
ZGVyaW5nIHRyZWUuCiAgICAgQVNTRVJUKHVzZVRyYW5zZm9ybXMpOyAvLyBNYXBwaW5nIGEgcG9p
bnQgdGhyb3VnaCBTVkcgdy9vIHJlc3BlY3RpbmcgdHJhbnNmb3JtcyBpcyB1c2VsZXNzLgogICAg
IHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKG9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5z
Zm9ybSgpKTsKLSAgICBvYmplY3QtPnBhcmVudCgpLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFp
bnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAg
b2JqZWN0LT5wYXJlbnQoKS0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBm
aXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsKIH0KIAogYm9v
bCBTVkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVj
dCogb2JqZWN0LCBQYWludEluZm8mIHBhaW50SW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKaW5kZXggMGFiOWNhMjZjNzY0M2YzMTczM2Jk
NTc4YmM1Njg0MTIwN2EzNmExNi4uODA2ZDNjZjQyZDhjMzQwNzU1N2UyZjBjNDgwY2U0YWIyZjAw
ZWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJT
dXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBw
b3J0LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIC8vIEltcG9ydGFudCBmdW5jdGlv
bnMgdXNlZCBieSBuZWFybHkgYWxsIFNWRyByZW5kZXJlcnMgY2VudHJhbGl6aW5nIGNvb3JkaW5h
dGUgdHJhbnNmb3JtYXRpb25zIC8gcmVwYWludCByZWN0IGNhbGN1bGF0aW9ucwogICAgIHN0YXRp
YyBJbnRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVj
dCosIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKTsKICAgICBzdGF0aWMg
dm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmLCBib29sIGZpeGVkKTsKLSAg
ICBzdGF0aWMgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIFJl
bmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMs
IGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJik7CisgICAgc3RhdGljIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1T
dGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CiAKICAgICAvLyBTaGFyZWQgYmV0d2VlbiBTVkcg
cmVuZGVyZXJzIGFuZCByZXNvdXJjZXMuCiAgICAgc3RhdGljIHZvaWQgYXBwbHlTdHJva2VTdHls
ZVRvQ29udGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJl
bmRlck9iamVjdCopOwo=
</data>
<flag name="review"
          id="98408"
          type_id="1"
          status="+"
          setter="mitz"
    />
    <flag name="commit-queue"
          id="98416"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103010</attachid>
            <date>2011-08-04 17:33:56 -0700</date>
            <delta_ts>2011-08-04 17:46:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65720-20110804173355.patch</filename>
            <type>text/plain</type>
            <size>29012</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0MzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzYWMzZGMwZmE0MDk3OWRj
Y2UwZTI0MWE1MjliYTY0YTc5YmNmNDYzLi4wMzM3ODg5YmQ2NGU0ZjI3MjQ5OTk2ODUzZDA3Yjc0
ODE0MDRhYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTUgQEAKIDIwMTEtMDgtMDQgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIGNvZGUgdG8g
ZGV0ZXJtaW5lIHdoZXRoZXIgYSBSYW5nZSBpbiBpbnNpZGUgZml4ZWQgcG9zaXRpb24gY29udGVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3MjAK
KworICAgICAgICBQcm9wYWdhdGUgdGhlICd3YXNGaXhlZCcgZmxhZyBvdXQgZnJvbSB2YXJpb3Vz
IG1ldGhvZHMgdGhhdAorICAgICAgICBhcmUgdXNlZCB3aGVuIGNvbXB1dGluZyB0aGUgY29sbGVj
dGlvbiBvZiByZWN0cyBvciBxdWFkcworICAgICAgICBmb3IgYSByYW5nZS4gVXNlIHRoZSBmbGFn
IGluIFJhbmdlIHRvIGNvbXB1dGVyIHdoZXRoZXIKKyAgICAgICAgdGhlIFJhbmdlIGlzIGVudGly
ZWx5IHdpdGhpbiwgcGFydGlhbGx5IHdpdGhpbiwgb3Igb3V0c2lkZQorICAgICAgICBvZiBmaXhl
ZC1wb3NpdGlvbiBjb250ZW50LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCk6Cisg
ICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjp0ZXh0UmVj
dHMpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnRleHRRdWFkcyk6CisgICAgICAgICogZG9t
L1JhbmdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjphYnNvbHV0ZVF1YWRzKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YWJzb2x1dGVRdWFkcyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjphYnNvbHV0ZVF1YWRzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphYnNvbHV0ZVF1YWRz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0OjphYnNvbHV0ZVJlY3RzRm9yUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0
OjphYnNvbHV0ZVF1YWRzRm9yUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6YWJzb2x1dGVRdWFkcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OmFic29s
dXRlUXVhZHMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lOjphYnNvbHV0ZVF1YWRzKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFic29sdXRlUXVhZHMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Rl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6YWJzb2x1dGVRdWFkcyk6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisKKzIwMTEtMDgtMDQg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgRml4IHJl
bGVhc2UgYnVpbGQgZmFpbHVyZSB3aXRoIGxhc3QgY29tbWl0LgogCiAgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclZpZXcuY3BwOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhMjVlZWNmYWY3Nzc1
OWI5ZTM0MWViOWNlNzljMTM1OTViMjA5OGQxLi5iNDEyOTk4MWIzMWY3NGU3MDA4ZWI0ZjM3MjUx
NzU1MDlmMzg2MzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzU2LDcgKzc1Niw3IEBAIF9f
Wk43V2ViQ29yZTVSYW5nZTE0aXNQb2ludEluUmFuZ2VFUE5TXzROb2RlRWlSaQogX19aTjdXZWJD
b3JlNVJhbmdlNmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0cklOU184RG9jdW1lbnRFRUVOUzJfSU5T
XzROb2RlRUVFaVM2X2kKIF9fWk43V2ViQ29yZTVSYW5nZTZzZXRFbmRFTjNXVEYxMFBhc3NSZWZQ
dHJJTlNfNE5vZGVFRUVpUmkKIF9fWk43V2ViQ29yZTVSYW5nZThzZXRTdGFydEVOM1dURjEwUGFz
c1JlZlB0cklOU180Tm9kZUVFRWlSaQotX19aTjdXZWJDb3JlNVJhbmdlOXRleHRSZWN0c0VSTjNX
VEY2VmVjdG9ySU5TXzdJbnRSZWN0RUxtMEVFRWIKK19fWk43V2ViQ29yZTVSYW5nZTl0ZXh0UmVj
dHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVMbTBFRUViUE5TMF8yMFJhbmdlSW5GaXhlZFBv
c2l0aW9uRQogX19aTjdXZWJDb3JlNVJhbmdlRDFFdgogX19aTjdXZWJDb3JlNkNocm9tZTE2c2V0
U3RhdHVzYmFyVGV4dEVQTlNfNUZyYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNkN1
cnNvcjhmcm9tVHlwZUVOUzBfNFR5cGVFCkBAIC0xMjYxLDcgKzEyNjEsNyBAQCBfX1pOSzdXZWJD
b3JlNVJhbmdlMjFjb21wYXJlQm91bmRhcnlQb2ludHNFTlMwXzEwQ29tcGFyZUhvd0VQS1MwX1Jp
CiBfX1pOSzdXZWJDb3JlNVJhbmdlNHRleHRFdgogX19aTks3V2ViQ29yZTVSYW5nZTllbmRPZmZz
ZXRFUmkKIF9fWk5LN1dlYkNvcmU1UmFuZ2U5Zmlyc3ROb2RlRXYKLV9fWk5LN1dlYkNvcmU1UmFu
Z2U5dGV4dFF1YWRzRVJOM1dURjZWZWN0b3JJTlNfOUZsb2F0UXVhZEVMbTBFRUViCitfX1pOSzdX
ZWJDb3JlNVJhbmdlOXRleHRRdWFkc0VSTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTG0wRUVF
YlBOUzBfMjBSYW5nZUluRml4ZWRQb3NpdGlvbkUKIF9fWk5LN1dlYkNvcmU2Q2hyb21lMTJjcmVh
dGVXaW5kb3dFUE5TXzVGcmFtZUVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEVSS05TXzE0V2luZG93
RmVhdHVyZXNFUktOU18xNk5hdmlnYXRpb25BY3Rpb25FCiBfX1pOSzdXZWJDb3JlNkN1cnNvcjE0
cGxhdGZvcm1DdXJzb3JFdgogX19aTks3V2ViQ29yZTZFZGl0b3IxMnNlbGVjdGVkVGV4dEV2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcAppbmRleCA5NDE0ZDNjYTljMGFkM2U5MDIwODBkMjgwNWUwZWVhMmM4
NzJlYzc5Li40NjcyNDQ3MmJhOGQ2NjJhOGEyNmJjNDYzODAxMjNlOWM0OWQ1ODQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKQEAgLTE0MjgsNyArMTQyOCw3IEBAIEludFJlY3QgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKICAgICAvLyBGb3IgYSB3ZWIg
YXJlYSwgd2hpY2ggd2lsbCBoYXZlIHRoZSBtb3N0IGVsZW1lbnRzIG9mIGFueSBlbGVtZW50LCBh
YnNvbHV0ZVF1YWRzIHNob3VsZCBiZSB1c2VkLgogICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRz
OwogICAgIGlmIChvYmotPmlzVGV4dCgpKQotICAgICAgICB0b1JlbmRlclRleHQob2JqKS0+YWJz
b2x1dGVRdWFkcyhxdWFkcywgUmVuZGVyVGV4dDo6Q2xpcFRvRWxsaXBzaXMpOworICAgICAgICB0
b1JlbmRlclRleHQob2JqKS0+YWJzb2x1dGVRdWFkcyhxdWFkcywgMCwgUmVuZGVyVGV4dDo6Q2xp
cFRvRWxsaXBzaXMpOwogICAgIGVsc2UgaWYgKGlzV2ViQXJlYSgpKQogICAgICAgICBvYmotPmFi
c29sdXRlUXVhZHMocXVhZHMpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IGEyNjAy
ZWU1NWI1MDQ3Y2Q0MmNmZDdmMTUyZGMyNDZhZTIyNjQ3NTcuLmE5MDc0MGUyN2RmMGZlNGY5YmVk
MTliYTJlMTNhOWMxODk5ZjhhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtMTYzMywxMyArMTYz
MywxOSBAQCBJbnRSZWN0IFJhbmdlOjpib3VuZGluZ0JveCgpCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotdm9pZCBSYW5nZTo6dGV4dFJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGJvb2wg
dXNlU2VsZWN0aW9uSGVpZ2h0KQordm9pZCBSYW5nZTo6dGV4dFJlY3RzKFZlY3RvcjxJbnRSZWN0
PiYgcmVjdHMsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0LCBSYW5nZUluRml4ZWRQb3NpdGlvbiog
aW5GaXhlZCkKIHsKICAgICBOb2RlKiBzdGFydENvbnRhaW5lciA9IG1fc3RhcnQuY29udGFpbmVy
KCk7CiAgICAgTm9kZSogZW5kQ29udGFpbmVyID0gbV9lbmQuY29udGFpbmVyKCk7CiAKLSAgICBp
ZiAoIXN0YXJ0Q29udGFpbmVyIHx8ICFlbmRDb250YWluZXIpCisgICAgaWYgKCFzdGFydENvbnRh
aW5lciB8fCAhZW5kQ29udGFpbmVyKSB7CisgICAgICAgIGlmIChpbkZpeGVkKQorICAgICAgICAg
ICAgKmluRml4ZWQgPSBOb3RGaXhlZFBvc2l0aW9uOwogICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYm9vbCBhbGxGaXhlZCA9IHRydWU7CisgICAgYm9vbCBzb21lRml4ZWQgPSBmYWxzZTsK
IAogICAgIE5vZGUqIHN0b3BOb2RlID0gcGFzdExhc3ROb2RlKCk7CiAgICAgZm9yIChOb2RlKiBu
b2RlID0gZmlyc3ROb2RlKCk7IG5vZGUgIT0gc3RvcE5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJz
ZU5leHROb2RlKCkpIHsKQEAgLTE2NDksMTcgKzE2NTUsMjkgQEAgdm9pZCBSYW5nZTo6dGV4dFJl
Y3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0KQogICAg
ICAgICBSZW5kZXJUZXh0KiByZW5kZXJUZXh0ID0gdG9SZW5kZXJUZXh0KHIpOwogICAgICAgICBp
bnQgc3RhcnRPZmZzZXQgPSBub2RlID09IHN0YXJ0Q29udGFpbmVyID8gbV9zdGFydC5vZmZzZXQo
KSA6IDA7CiAgICAgICAgIGludCBlbmRPZmZzZXQgPSBub2RlID09IGVuZENvbnRhaW5lciA/IG1f
ZW5kLm9mZnNldCgpIDogbnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7Ci0gICAgICAgIHJlbmRl
clRleHQtPmFic29sdXRlUmVjdHNGb3JSYW5nZShyZWN0cywgc3RhcnRPZmZzZXQsIGVuZE9mZnNl
dCwgdXNlU2VsZWN0aW9uSGVpZ2h0KTsKKyAgICAgICAgYm9vbCBpc0ZpeGVkID0gZmFsc2U7Cisg
ICAgICAgIHJlbmRlclRleHQtPmFic29sdXRlUmVjdHNGb3JSYW5nZShyZWN0cywgc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCAmaXNGaXhlZCk7CisgICAgICAgIGFs
bEZpeGVkICY9IGlzRml4ZWQ7CisgICAgICAgIHNvbWVGaXhlZCB8PSBpc0ZpeGVkOwogICAgIH0K
KyAgICAKKyAgICBpZiAoaW5GaXhlZCkKKyAgICAgICAgKmluRml4ZWQgPSBhbGxGaXhlZCA/IEVu
dGlyZWx5Rml4ZWRQb3NpdGlvbiA6IChzb21lRml4ZWQgPyBQYXJ0aWFsbHlGaXhlZFBvc2l0aW9u
IDogTm90Rml4ZWRQb3NpdGlvbik7CiB9CiAKLXZvaWQgUmFuZ2U6OnRleHRRdWFkcyhWZWN0b3I8
RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0KSBjb25zdAordm9pZCBS
YW5nZTo6dGV4dFF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCB1c2VTZWxlY3Rp
b25IZWlnaHQsIFJhbmdlSW5GaXhlZFBvc2l0aW9uKiBpbkZpeGVkKSBjb25zdAogewogICAgIE5v
ZGUqIHN0YXJ0Q29udGFpbmVyID0gbV9zdGFydC5jb250YWluZXIoKTsKICAgICBOb2RlKiBlbmRD
b250YWluZXIgPSBtX2VuZC5jb250YWluZXIoKTsKIAotICAgIGlmICghc3RhcnRDb250YWluZXIg
fHwgIWVuZENvbnRhaW5lcikKKyAgICBpZiAoIXN0YXJ0Q29udGFpbmVyIHx8ICFlbmRDb250YWlu
ZXIpIHsKKyAgICAgICAgaWYgKGluRml4ZWQpCisgICAgICAgICAgICAqaW5GaXhlZCA9IE5vdEZp
eGVkUG9zaXRpb247CiAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBib29sIGFsbEZpeGVk
ID0gdHJ1ZTsKKyAgICBib29sIHNvbWVGaXhlZCA9IGZhbHNlOwogCiAgICAgTm9kZSogc3RvcE5v
ZGUgPSBwYXN0TGFzdE5vZGUoKTsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBmaXJzdE5vZGUoKTsg
bm9kZSAhPSBzdG9wTm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgewpAQCAt
MTY2OSw4ICsxNjg3LDE0IEBAIHZvaWQgUmFuZ2U6OnRleHRRdWFkcyhWZWN0b3I8RmxvYXRRdWFk
PiYgcXVhZHMsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0KSBjb25zdAogICAgICAgICBSZW5kZXJU
ZXh0KiByZW5kZXJUZXh0ID0gdG9SZW5kZXJUZXh0KHIpOwogICAgICAgICBpbnQgc3RhcnRPZmZz
ZXQgPSBub2RlID09IHN0YXJ0Q29udGFpbmVyID8gbV9zdGFydC5vZmZzZXQoKSA6IDA7CiAgICAg
ICAgIGludCBlbmRPZmZzZXQgPSBub2RlID09IGVuZENvbnRhaW5lciA/IG1fZW5kLm9mZnNldCgp
IDogbnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7Ci0gICAgICAgIHJlbmRlclRleHQtPmFic29s
dXRlUXVhZHNGb3JSYW5nZShxdWFkcywgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCwgdXNlU2VsZWN0
aW9uSGVpZ2h0KTsKKyAgICAgICAgYm9vbCBpc0ZpeGVkID0gZmFsc2U7CisgICAgICAgIHJlbmRl
clRleHQtPmFic29sdXRlUXVhZHNGb3JSYW5nZShxdWFkcywgc3RhcnRPZmZzZXQsIGVuZE9mZnNl
dCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCAmaXNGaXhlZCk7CisgICAgICAgIGFsbEZpeGVkICY9IGlz
Rml4ZWQ7CisgICAgICAgIHNvbWVGaXhlZCB8PSBpc0ZpeGVkOwogICAgIH0KKworICAgIGlmIChp
bkZpeGVkKQorICAgICAgICAqaW5GaXhlZCA9IGFsbEZpeGVkID8gRW50aXJlbHlGaXhlZFBvc2l0
aW9uIDogKHNvbWVGaXhlZCA/IFBhcnRpYWxseUZpeGVkUG9zaXRpb24gOiBOb3RGaXhlZFBvc2l0
aW9uKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggZTUwOWY4ZDgwNTI0
MjNjNTdmOTM2ZDM0MTEyYThkYzQ2YTZjZWNlZi4uMWYyN2U4YmNiYzFmMDQwMDA5OWJmMzVmNDBi
YTA4NjQ5MjY1NDhmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTExMiwxMCArMTEyLDE3IEBAIHB1Ymxp
YzoKICAgICBOb2RlKiBzaGFkb3dUcmVlUm9vdE5vZGUoKSBjb25zdDsKIAogICAgIEludFJlY3Qg
Ym91bmRpbmdCb3goKTsKKyAgICAKKyAgICBlbnVtIFJhbmdlSW5GaXhlZFBvc2l0aW9uIHsKKyAg
ICAgICAgTm90Rml4ZWRQb3NpdGlvbiwKKyAgICAgICAgUGFydGlhbGx5Rml4ZWRQb3NpdGlvbiwK
KyAgICAgICAgRW50aXJlbHlGaXhlZFBvc2l0aW9uCisgICAgfTsKKyAgICAKICAgICAvLyBOb3Qg
dHJhbnNmb3JtLWZyaWVuZGx5Ci0gICAgdm9pZCB0ZXh0UmVjdHMoVmVjdG9yPEludFJlY3Q+Jiwg
Ym9vbCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxzZSk7CisgICAgdm9pZCB0ZXh0UmVjdHMoVmVj
dG9yPEludFJlY3Q+JiwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxzZSwgUmFuZ2VJbkZp
eGVkUG9zaXRpb24qID0gMCk7CiAgICAgLy8gVHJhbnNmb3JtLWZyaWVuZGx5Ci0gICAgdm9pZCB0
ZXh0UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCA9IGZh
bHNlKSBjb25zdDsKKyAgICB2b2lkIHRleHRRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wg
dXNlU2VsZWN0aW9uSGVpZ2h0ID0gZmFsc2UsIFJhbmdlSW5GaXhlZFBvc2l0aW9uKiA9IDApIGNv
bnN0OwogICAgIHZvaWQgZ2V0Qm9yZGVyQW5kVGV4dFF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+Jikg
Y29uc3Q7CiAgICAgRmxvYXRSZWN0IGJvdW5kaW5nUmVjdCgpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAyNzI3NmIxZGU5MzMwMDNhNGI0ZTMy
ZjZlYjIzYzU4ZmUxYWVlZDEyLi4yNjMyZGQ1M2YyOWY5NDk4NWI4NTEzYTA4NzBkYzE3YTUzYjUw
Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTU4MTIs
NyArNTgxMiw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMoVmVjdG9yPExheW91
dFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmIGFjCiAgICAgICAgIHJlY3RzLmFwcGVu
ZChMYXlvdXRSZWN0KGFjY3VtdWxhdGVkT2Zmc2V0LCBzaXplKCkpKTsKIH0KIAotdm9pZCBSZW5k
ZXJCbG9jazo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCit2b2lkIFJl
bmRlckJsb2NrOjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCog
d2FzRml4ZWQpCiB7CiAgICAgLy8gRm9yIGJsb2NrcyBpbnNpZGUgaW5saW5lcywgd2UgZ28gYWhl
YWQgYW5kIGluY2x1ZGUgbWFyZ2lucyBzbyB0aGF0IHdlIHJ1biByaWdodCB1cCB0byB0aGUKICAg
ICAvLyBpbmxpbmUgYm94ZXMgYWJvdmUgYW5kIGJlbG93IHVzICh0aHVzIGdldHRpbmcgbWVyZ2Vk
IHdpdGggdGhlbSB0byBmb3JtIGEgc2luZ2xlIGlycmVndWxhcgpAQCAtNTgyMiwxMCArNTgyMiwx
MCBAQCB2b2lkIFJlbmRlckJsb2NrOjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBx
dWFkcykKICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ2NzgxCiAgICAgICAgIEZsb2F0UmVjdCBsb2NhbFJlY3QoMCwgLWNvbGxhcHNlZE1hcmdpbkJl
Zm9yZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCksIGhlaWdodCgpICsg
Y29sbGFwc2VkTWFyZ2luQmVmb3JlKCkgKyBjb2xsYXBzZWRNYXJnaW5BZnRlcigpKTsKLSAgICAg
ICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0KSk7Ci0gICAgICAg
IGNvbnRpbnVhdGlvbigpLT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKKyAgICAgICAgcXVhZHMuYXBw
ZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0LCBmYWxzZSwgd2FzRml4ZWQpKTsKKyAg
ICAgICAgY29udGludWF0aW9uKCktPmFic29sdXRlUXVhZHMocXVhZHMsIHdhc0ZpeGVkKTsKICAg
ICB9IGVsc2UKLSAgICAgICAgcXVhZHMuYXBwZW5kKFJlbmRlckJveDo6bG9jYWxUb0Fic29sdXRl
UXVhZChGbG9hdFJlY3QoMCwgMCwgd2lkdGgoKSwgaGVpZ2h0KCkpKSk7CisgICAgICAgIHF1YWRz
LmFwcGVuZChSZW5kZXJCb3g6OmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KDAsIDAsIHdp
ZHRoKCksIGhlaWdodCgpKSwgZmFsc2UsIHdhc0ZpeGVkKSk7CiB9CiAKIEludFJlY3QgUmVuZGVy
QmxvY2s6OnJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIGludCBvdXRsaW5lV2lkdGgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCmluZGV4IGNkNjEwY2RmMmM3YjZiODExZmFiN2RjYWEzN2IzYTE4
YjI0YjY0OWQuLjFhYTRkMTkxY2JjYWM5NGU5M2RmMzFkMTUzMjcxNWFiNDgzYzRkMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC02NTAsNyArNjUwLDcgQEAgcHJp
dmF0ZToKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodFNlbGVjdGlvbk9mZnNldChSZW5kZXJC
bG9jayogcm9vdEJsb2NrLCBMYXlvdXRVbml0IHBvc2l0aW9uKTsKICAgICAKICAgICB2aXJ0dWFs
IHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8TGF5b3V0UmVjdD4mLCBjb25zdCBMYXlvdXRQb2lu
dCYgYWNjdW11bGF0ZWRPZmZzZXQpOwotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZl
Y3RvcjxGbG9hdFF1YWQ+Jik7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9y
PEZsb2F0UXVhZD4mLCBib29sKik7CiAKICAgICBMYXlvdXRVbml0IGRlc2lyZWRDb2x1bW5XaWR0
aCgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGRlc2lyZWRDb2x1bW5Db3VudCgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBmNWIwYWRiNzRhYmQ2YTBkZmY0
NWJhNjkwZDE2ZjYyMDZhOGQ0Mzg0Li40NTYxZTQxZGFjNDlmNmZiNTA0YTZmNzBlNDJjOTA5MzBm
YjVmODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDYzLDkg
KzQ2Myw5IEBAIHZvaWQgUmVuZGVyQm94OjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxMYXlvdXRSZWN0
PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1CiAgICAgcmVjdHMuYXBwZW5kKExheW91
dFJlY3QoYWNjdW11bGF0ZWRPZmZzZXQsIHNpemUoKSkpOwogfQogCi12b2lkIFJlbmRlckJveDo6
YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCit2b2lkIFJlbmRlckJveDo6
YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wqIHdhc0ZpeGVkKQog
ewotICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCgwLCAwLCB3
aWR0aCgpLCBoZWlnaHQoKSkpKTsKKyAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVh
ZChGbG9hdFJlY3QoMCwgMCwgd2lkdGgoKSwgaGVpZ2h0KCkpLCBmYWxzZSwgd2FzRml4ZWQpKTsK
IH0KIAogdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUxheWVyVHJhbnNmb3JtKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBhZDEyYzY0Nzc1ZDk1MGZhODhkOWI2YTY2ZmFlNTdh
MjZlZTg0ZGFhLi42OGYxNGM1ZTQwN2NjODg2ZTBjNjE1MzMwM2M1NmY1MTE1ZjE1N2Q3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0yMjgsNyArMjI4LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb2xsYXBzZWRNYXJnaW5BZnRlcigpIGNvbnN0IHsg
cmV0dXJuIG1hcmdpbkFmdGVyKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3Rz
KFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCk7
Ci0gICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqKTsK
ICAgICAKICAgICBJbnRSZWN0IHJlZmxlY3Rpb25Cb3goKSBjb25zdDsKICAgICBpbnQgcmVmbGVj
dGlvbk9mZnNldCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmNwcAppbmRleCAyZGI4NWNjYjM5MGRiMzBmZjgzZmUzOWE1M2Y5NjQwMmJkNDc5NTliLi4yZTY0
NDk3YzNhMzRmNjhkZDA1ZWMwODIzZTA2ODI4ZDE3YmRmYjY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtNTUyLDIwICs1NTIsMjAgQEAgdm9pZCBSZW5k
ZXJJbmxpbmU6OmN1bGxlZElubGluZUFic29sdXRlUmVjdHMoY29uc3QgUmVuZGVySW5saW5lKiBj
b250YWluZXIsIFZlY3QKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVySW5saW5lOjphYnNvbHV0ZVF1
YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKK3ZvaWQgUmVuZGVySW5saW5lOjphYnNvbHV0
ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCogd2FzRml4ZWQpCiB7CiAgICAg
aWYgKCFhbHdheXNDcmVhdGVMaW5lQm94ZXMoKSkKICAgICAgICAgY3VsbGVkSW5saW5lQWJzb2x1
dGVRdWFkcyh0aGlzLCBxdWFkcyk7CiAgICAgZWxzZSBpZiAoSW5saW5lRmxvd0JveCogY3VyciA9
IGZpcnN0TGluZUJveCgpKSB7CiAgICAgICAgIGZvciAoOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4
dExpbmVCb3goKSkgewogICAgICAgICAgICAgRmxvYXRSZWN0IGxvY2FsUmVjdChjdXJyLT54KCks
IGN1cnItPnkoKSwgY3Vyci0+d2lkdGgoKSwgY3Vyci0+aGVpZ2h0KCkpOwotICAgICAgICAgICAg
cXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0KSk7CisgICAgICAgICAg
ICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJlY3QsIGZhbHNlLCB3YXNG
aXhlZCkpOwogICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIHF1YWRzLmFwcGVuZChsb2Nh
bFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCgpKSk7CisgICAgICAgIHF1YWRzLmFwcGVuZChsb2Nh
bFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCgpLCBmYWxzZSwgd2FzRml4ZWQpKTsKIAogICAgIGlm
IChjb250aW51YXRpb24oKSkKLSAgICAgICAgY29udGludWF0aW9uKCktPmFic29sdXRlUXVhZHMo
cXVhZHMpOworICAgICAgICBjb250aW51YXRpb24oKS0+YWJzb2x1dGVRdWFkcyhxdWFkcywgd2Fz
Rml4ZWQpOwogfQogCiB2b2lkIFJlbmRlcklubGluZTo6Y3VsbGVkSW5saW5lQWJzb2x1dGVRdWFk
cyhjb25zdCBSZW5kZXJJbmxpbmUqIGNvbnRhaW5lciwgVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCmluZGV4IGI0ZDAyOGI0ZTdj
Mjk5NTgwM2FlNDRiYTg4MDMyMTI1ZWI0YjAxMGUuLjZlMjBkZDQyNzIzZTMxMTA5ODU0ZWQxYmEx
ZmEzYTA2ZTRmOWIzMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgK
QEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5F
bmQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxMYXlv
dXRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCk7Ci0gICAgdmly
dHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqKTsKIAogICAgIHZp
cnR1YWwgTGF5b3V0U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCosIGNvbnN0
IExheW91dFBvaW50JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAppbmRleCA0NDE5MTRkMjQ3MmJkZDA5ODcyMjkyNDA2ZjMxZjE3MDkxMjUwYWE3Li44MDYy
NjY5NzFlZTc4ZmFjMzgyYWUyZTQ2YzNmOTM1MDg5ZTE0OGM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC02MDYsNyArNjA2LDcgQEAgcHVibGljOgogICAgIElu
dFJlY3QgYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoYm9vbCB1c2VUcmFuc2Zvcm1zID0gZmFsc2Up
OwogCiAgICAgLy8gQnVpbGQgYW4gYXJyYXkgb2YgcXVhZHMgaW4gYWJzb2x1dGUgY29vcmRzIGZv
ciBsaW5lIGJveGVzCi0gICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0
UXVhZD4mKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRR
dWFkPiYsIGJvb2wqIC8qd2FzRml4ZWQqLyA9IDApIHsgfQogCiAgICAgdm9pZCBhYnNvbHV0ZUZv
Y3VzUmluZ1F1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcAppbmRleCA0YmZmZGE4YTFiYjRhMzcxZmNkMWIzYTUwMWYyMjI2NGJl
ODk5OWNkLi5lNTFlZThhMmViODk2Y2M0ZjliMzM3NzUxZjQwMjE3MjE4NTJhZTRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0yOTMsNyArMjkzLDcgQEAgc3Rh
dGljIEZsb2F0UmVjdCBhYnNvbHV0ZVF1YWRGb3JUZXh0Qm94KElubGluZVRleHRCb3gqIGJveCwg
dW5zaWduZWQgc3RhcnQsIHVuc2kKICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiB9CiAKLXZvaWQg
UmVuZGVyVGV4dDo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0KQor
dm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVJlY3RzRm9yUmFuZ2UoVmVjdG9yPEludFJlY3Q+JiBy
ZWN0cywgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWln
aHQsIGJvb2wqIHdhc0ZpeGVkKQogewogICAgIC8vIFdvcmsgYXJvdW5kIHNpZ25lZC91bnNpZ25l
ZCBpc3N1ZXMuIFRoaXMgZnVuY3Rpb24gdGFrZXMgdW5zaWduZWRzLCBhbmQgaXMgb2Z0ZW4gcGFz
c2VkIFVJTlRfTUFYCiAgICAgLy8gdG8gbWVhbiAiYWxsIHRoZSB3YXkgdG8gdGhlIGVuZCIuIElu
bGluZVRleHRCb3ggY29vcmRpbmF0ZXMgYXJlIHVuc2lnbmVkcywgc28gY2hhbmdpbmcgdGhpcyAK
QEAgLTMxOSwxMSArMzE5LDEyIEBAIHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVSZWN0c0ZvclJh
bmdlKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIHVuc2lnbmVkIHN0YXJ0LCB1CiAgICAgICAgICAg
ICAgICAgICAgIHIuc2V0WChzZWxlY3Rpb25SZWN0LngoKSk7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVjdHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1
YWQoRmxvYXRRdWFkKHIpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKKyAgICAgICAgICAgIHJl
Y3RzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChyKSwgZmFsc2UsIHdhc0Zp
eGVkKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgaXMgd3JvbmcuIEl0J3MgY29udmVydGluZyBsb2NhbCB0
byBhYnNvbHV0ZSB0d2ljZS4gaHR0cDovL3dlYmtpdC5vcmcvYi82NTcyMgogICAgICAgICAgICAg
RmxvYXRSZWN0IHJlY3QgPSBhYnNvbHV0ZVF1YWRGb3JUZXh0Qm94KGJveCwgc3RhcnQsIGVuZCwg
dXNlU2VsZWN0aW9uSGVpZ2h0KTsKICAgICAgICAgICAgIGlmICghcmVjdC5pc1plcm8oKSkKLSAg
ICAgICAgICAgICAgICByZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyZWN0KS5lbmNs
b3NpbmdCb3VuZGluZ0JveCgpKTsKKyAgICAgICAgICAgICAgICByZWN0cy5hcHBlbmQobG9jYWxU
b0Fic29sdXRlUXVhZChyZWN0LCBmYWxzZSwgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5kaW5nQm94
KCkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzUyLDcgKzM1Myw3IEBAIHN0YXRpYyBJbnRS
ZWN0IGVsbGlwc2lzUmVjdEZvckJveChJbmxpbmVUZXh0Qm94KiBib3gsIHVuc2lnbmVkIHN0YXJ0
UG9zLCB1bnNpZ25lCiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KICAgICAKLXZvaWQgUmVuZGVy
VGV4dDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMsIENsaXBwaW5nT3B0
aW9uIG9wdGlvbikKK3ZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRR
dWFkPiYgcXVhZHMsIGJvb2wqIHdhc0ZpeGVkLCBDbGlwcGluZ09wdGlvbiBvcHRpb24pCiB7CiAg
ICAgZm9yIChJbmxpbmVUZXh0Qm94KiBib3ggPSBmaXJzdFRleHRCb3goKTsgYm94OyBib3ggPSBi
b3gtPm5leHRUZXh0Qm94KCkpIHsKICAgICAgICAgSW50UmVjdCBib3VuZGFyaWVzID0gYm94LT5j
YWxjdWxhdGVCb3VuZGFyaWVzKCk7CkBAIC0zNjUsMTYgKzM2NiwxNiBAQCB2b2lkIFJlbmRlclRl
eHQ6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBDbGlwcGluZ09wdGlv
biBvcHRpb24pCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYm91bmRhcmllcy5z
ZXRIZWlnaHQoZWxsaXBzaXNSZWN0Lm1heFkoKSAtIGJvdW5kYXJpZXMueSgpKTsKICAgICAgICAg
fQotICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoYm91
bmRhcmllcykpKTsKKyAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxv
YXRSZWN0KGJvdW5kYXJpZXMpLCBmYWxzZSwgd2FzRml4ZWQpKTsKICAgICB9CiB9CiAgICAgCi12
b2lkIFJlbmRlclRleHQ6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKQor
dm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywg
Ym9vbCogd2FzRml4ZWQpCiB7Ci0gICAgYWJzb2x1dGVRdWFkcyhxdWFkcywgTm9DbGlwcGluZyk7
CisgICAgYWJzb2x1dGVRdWFkcyhxdWFkcywgd2FzRml4ZWQsIE5vQ2xpcHBpbmcpOwogfQogCi12
b2lkIFJlbmRlclRleHQ6OmFic29sdXRlUXVhZHNGb3JSYW5nZShWZWN0b3I8RmxvYXRRdWFkPiYg
cXVhZHMsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGJvb2wgdXNlU2VsZWN0aW9uSGVp
Z2h0KQordm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzRm9yUmFuZ2UoVmVjdG9yPEZsb2F0
UXVhZD4mIHF1YWRzLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBib29sIHVzZVNlbGVj
dGlvbkhlaWdodCwgYm9vbCogd2FzRml4ZWQpCiB7CiAgICAgLy8gV29yayBhcm91bmQgc2lnbmVk
L3Vuc2lnbmVkIGlzc3Vlcy4gVGhpcyBmdW5jdGlvbiB0YWtlcyB1bnNpZ25lZHMsIGFuZCBpcyBv
ZnRlbiBwYXNzZWQgVUlOVF9NQVgKICAgICAvLyB0byBtZWFuICJhbGwgdGhlIHdheSB0byB0aGUg
ZW5kIi4gSW5saW5lVGV4dEJveCBjb29yZGluYXRlcyBhcmUgdW5zaWduZWRzLCBzbyBjaGFuZ2lu
ZyB0aGlzIApAQCAtNDAwLDExICs0MDEsMTEgQEAgdm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1
YWRzRm9yUmFuZ2UoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCB1bnNpZ25lZCBzdGFydCwKICAg
ICAgICAgICAgICAgICAgICAgci5zZXRYKHNlbGVjdGlvblJlY3QueCgpKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fi
c29sdXRlUXVhZChGbG9hdFJlY3QocikpKTsKKyAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2Nh
bFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChyKSwgZmFsc2UsIHdhc0ZpeGVkKSk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IGFic29sdXRlUXVhZEZvclRl
eHRCb3goYm94LCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQpOwogICAgICAgICAgICAg
aWYgKCFyZWN0LmlzWmVybygpKQotICAgICAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRv
QWJzb2x1dGVRdWFkKHJlY3QpKTsKKyAgICAgICAgICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxU
b0Fic29sdXRlUXVhZChyZWN0LCBmYWxzZSwgd2FzRml4ZWQpKTsKICAgICAgICAgfQogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCmluZGV4IGM0MTI2ZGZkYmUyM2Rm
YjhiZjc5NTBhYTNjMmM2MTdjZTFkYWE3NzkuLjZlNTFmZmNiZDM5Nzg4ZTlkYjc4NTBhZWJmZGY4
OTk5NWE2Mzk5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaApAQCAtNTUs
MTMgKzU1LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpcnR5TGluZUJveGVzKGJvb2wgZnVsbExh
eW91dCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8TGF5b3V0UmVj
dD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpOwotICAgIHZvaWQgYWJz
b2x1dGVSZWN0c0ZvclJhbmdlKFZlY3RvcjxJbnRSZWN0PiYsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0
ID0gMCwgdW5zaWduZWQgZW5kT2Zmc2V0ID0gVUlOVF9NQVgsIGJvb2wgdXNlU2VsZWN0aW9uSGVp
Z2h0ID0gZmFsc2UpOworICAgIHZvaWQgYWJzb2x1dGVSZWN0c0ZvclJhbmdlKFZlY3RvcjxJbnRS
ZWN0PiYsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gMCwgdW5zaWduZWQgZW5kT2Zmc2V0ID0gVUlO
VF9NQVgsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0ID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0g
MCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYp
OwotICAgIHZvaWQgYWJzb2x1dGVRdWFkc0ZvclJhbmdlKFZlY3RvcjxGbG9hdFF1YWQ+JiwgdW5z
aWduZWQgc3RhcnRPZmZzZXQgPSAwLCB1bnNpZ25lZCBlbmRPZmZzZXQgPSBVSU5UX01BWCwgYm9v
bCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxzZSk7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRl
UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKik7CisgICAgdm9pZCBhYnNvbHV0ZVF1YWRz
Rm9yUmFuZ2UoVmVjdG9yPEZsb2F0UXVhZD4mLCB1bnNpZ25lZCBzdGFydE9mZnNldCA9IDAsIHVu
c2lnbmVkIGVuZE9mZnNldCA9IFVJTlRfTUFYLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCA9IGZh
bHNlLCBib29sKiB3YXNGaXhlZCA9IDApOwogCiAgICAgZW51bSBDbGlwcGluZ09wdGlvbiB7IE5v
Q2xpcHBpbmcsIENsaXBUb0VsbGlwc2lzIH07Ci0gICAgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3Rv
cjxGbG9hdFF1YWQ+JiwgQ2xpcHBpbmdPcHRpb24gb3B0aW9uID0gTm9DbGlwcGluZyk7CisgICAg
dm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQgPSAw
LCBDbGlwcGluZ09wdGlvbiA9IE5vQ2xpcHBpbmcpOwogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9z
aXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggN2JkN2YyM2JjZGZlMzMwNTMxZWFlZmY0
ZWEwMWNkN2RjOTY1NWVhZC4uMTJkMzY5MjE1MjI4NTJhMThlNTU5MjE4N2ZiZWRiMzAwNmU5ZmVj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMzMzLDggKzMz
MywxMCBAQCB2b2lkIFJlbmRlclZpZXc6OmFic29sdXRlUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+
JiByZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmIGFjYwogICAgIHJlY3RzLmFwcGVuZChMYXlvdXRS
ZWN0KGFjY3VtdWxhdGVkT2Zmc2V0LCBtX2xheWVyLT5zaXplKCkpKTsKIH0KIAotdm9pZCBSZW5k
ZXJWaWV3OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKK3ZvaWQgUmVu
ZGVyVmlldzo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wqIHdh
c0ZpeGVkKQogeworICAgIGlmICh3YXNGaXhlZCkKKyAgICAgICAgKndhc0ZpeGVkID0gZmFsc2U7
CiAgICAgcXVhZHMuYXBwZW5kKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIG1fbGF5ZXItPnNpemUo
KSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA5MTQ0ZDRm
ZTBlMTRmYTMwYmY3NzEyNjAzMGJhM2JhYmQ3ZjE2YmQwLi40ZDFmODJmZTkzNWNjYjMyMzZmOGIw
MGJjYmRlMWUyNGI4MTQwMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
QEAgLTg3LDcgKzg3LDcgQEAgcHVibGljOgogICAgIGJvb2wgcHJpbnRpbmcoKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxMYXlvdXRSZWN0PiYsIGNvbnN0
IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCk7Ci0gICAgdmlydHVhbCB2b2lkIGFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVR
dWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICB2b2lkIHNldE1heGltYWxPdXRsaW5lU2l6ZShpbnQgbyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRh
aW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNv
bnRhaW5lci5jcHAKaW5kZXggODZiZDZmNzYzOTQxZWM1YWVhMTJiMmY4MDc3YjQ3ZTlmOGJmZDU4
Yy4uMDlmN2ZjMzY2MmIyMjg4NTVhMTZmMWVlZjM2OWQ5YWE5N2E4OGFhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lkIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcjo6
cGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmKQogICAgIC8vIFRoaXMgc3VidHJlZSBk
b2VzIG5vdCBwYWludC4KIH0KIAotdm9pZCBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OmFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mKQordm9pZCBSZW5kZXJTVkdIaWRkZW5Db250YWlu
ZXI6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKikKIHsKICAgICAvLyBU
aGlzIHN1YnRyZWUgZG9lcyBub3QgdGFrZSB1cCBzcGFjZSBvciBwYWludAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVy
LmgKaW5kZXggN2IxZGJjMzhmMGU1NjNjNTNmNTA4NDc5YTY4Yjc2OGE2ODA1NmJhZi4uZDVjYTI1
YWM2ZGYzMjI5Y2NiZjJkYjYyYWQxNzYyNTc2MDMwMTNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oCkBAIC00
NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgCiAgICAgdmlydHVhbCBJbnRSZWN0IGNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KikgY29uc3QgeyByZXR1
cm4gSW50UmVjdCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZs
b2F0UXVhZD4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRR
dWFkPiYsIGJvb2wqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNvbnN0
IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50
SW5QYXJlbnQsIEhpdFRlc3RBY3Rpb24pOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCAxNTdkNTc5ODFjM2Y5ZDNlMzQxMGE4
Zjk5MzQ0MTA5ZjkzNTEyN2FkLi5mZGYzOGRmYjJlMTc1NTExMTQzN2I4MmFjMDY5NWQxMDRlMGUy
NDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lu
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmUuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRv
Q29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyCiAgICAgU1ZH
UmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVy
LCB1c2VUcmFuc2Zvcm1zLCBmaXhlZCwgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsKIH0KIAot
dm9pZCBSZW5kZXJTVkdJbmxpbmU6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1
YWRzKQordm9pZCBSZW5kZXJTVkdJbmxpbmU6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVh
ZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlZCkKIHsKICAgICBSZW5kZXJPYmplY3QqIG9iamVjdCA9
IFJlbmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKTsKICAgICBp
ZiAoIW9iamVjdCkKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKQogCiAgICAgRmxvYXRSZWN0IHRleHRC
b3VuZGluZ0JveCA9IG9iamVjdC0+c3Ryb2tlQm91bmRpbmdCb3goKTsKICAgICBmb3IgKElubGlu
ZUZsb3dCb3gqIGJveCA9IGZpcnN0TGluZUJveCgpOyBib3g7IGJveCA9IGJveC0+bmV4dExpbmVC
b3goKSkKLSAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0
KHRleHRCb3VuZGluZ0JveC54KCkgKyBib3gtPngoKSwgdGV4dEJvdW5kaW5nQm94LnkoKSArIGJv
eC0+eSgpLCBib3gtPmxvZ2ljYWxXaWR0aCgpLCBib3gtPmxvZ2ljYWxIZWlnaHQoKSkpKTsKKyAg
ICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHRleHRCb3Vu
ZGluZ0JveC54KCkgKyBib3gtPngoKSwgdGV4dEJvdW5kaW5nQm94LnkoKSArIGJveC0+eSgpLCBi
b3gtPmxvZ2ljYWxXaWR0aCgpLCBib3gtPmxvZ2ljYWxIZWlnaHQoKSksIGZhbHNlLCB3YXNGaXhl
ZCkpOwogfQogCiB2b2lkIFJlbmRlclNWR0lubGluZTo6d2lsbEJlRGVzdHJveWVkKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCmluZGV4IDg3NTBi
ZDQ0MmJmOWYzN2E3ZGZjZTY4MDIzNDFjOGRkODg5ZTU0MzYuLjE3ZmNhZmZjYTM0NjQzOGI0Yjc2
OTU0NTE1MWI5NWJmYTg4NTJjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBJbnRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJl
Y3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBJbnRS
ZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9v
bCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYsICBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxG
bG9hdFF1YWQ+Jik7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0
UXVhZD4mLCBib29sKik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbmxpbmVGbG93Qm94KiBj
cmVhdGVJbmxpbmVGbG93Qm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IGFjZmQ5NzZmMGE0M2M2ODgwMjEx
NDdmYTg0NWMwMGE4ZWI0NWZhOTQuLjA3M2QwYjgzODI4OWY1MzJhMzlhMmI4ZGE1ZTljM2JmOGUz
NzVlYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwCkBAIC03Niw5ICs3Niw5IEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OmFic29sdXRlUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9p
bnQmCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKQordm9pZCBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMs
IGJvb2wqIHdhc0ZpeGVkKQogewotICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFk
KHN0cm9rZUJvdW5kaW5nQm94KCkpKTsKKyAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRl
UXVhZChzdHJva2VCb3VuZGluZ0JveCgpLCBmYWxzZSwgd2FzRml4ZWQpKTsKIH0KIAogdm9pZCBS
ZW5kZXJTVkdNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCAwZWYyMWMz
ZTk1N2YzYWE5ZjhhM2EyMTkxYWQ4NGViNzk1ODBjNTVhLi42MmRlNjk0MzhiZDEwMjVlOTVjMThk
NjVlYzM1MjM1ZGRmYjIwZjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEludFJlY3Qgb3V0bGluZUJvdW5kc0ZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFBvaW50KikgY29uc3Q7CiAKICAgICB2aXJ0dWFs
IHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8TGF5b3V0UmVjdD4mLCBjb25zdCBMYXlvdXRQb2lu
dCYgYWNjdW11bGF0ZWRPZmZzZXQpOwotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZl
Y3RvcjxGbG9hdFF1YWQ+Jik7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9y
PEZsb2F0UXVhZD4mLCBib29sKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFu
c2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAppbmRleCA5NTA0YjM5ZTBkZjU2NzEwZjQxZDFhMTYx
NjFjYjRmOTljY2JkZjJjLi5jMTMwYjNmMTFhMzAyMmU5NThkN2EwMDZlNGE0YWMwOTdhZDFiMjEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAK
QEAgLTIyNCw5ICsyMjQsOSBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyU1ZHVGV4dDo6cG9zaXRp
b25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRlbgogICAgIHJldHVybiBj
bG9zZXN0Qm94LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KExheW91dFBvaW50KHBvaW50
SW5Db250ZW50cy54KCksIGNsb3Nlc3RCb3gtPnkoKSkpOwogfQogCi12b2lkIFJlbmRlclNWR1Rl
eHQ6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKQordm9pZCBSZW5kZXJT
VkdUZXh0OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCogd2Fz
Rml4ZWQpCiB7Ci0gICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoc3Ryb2tlQm91
bmRpbmdCb3goKSkpOworICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHN0cm9r
ZUJvdW5kaW5nQm94KCksIGZhbHNlLCB3YXNGaXhlZCkpOwogfQogCiB2b2lkIFJlbmRlclNWR1Rl
eHQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4IGI0NzllN2E2ZTQx
ZDEwMGRkYzE5YmJkMjBkZmIyOTUzYWJjYTU3ZWUuLmYwZDY0ZDEzNGRjNzk3YzNhMGVmNjQ4ZTEz
MzE0MWYyZmU4NzJkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dC5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJl
cXVpcmVzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBs
YXlvdXQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1
YWQ+Jik7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4m
LCBib29sKik7CiAKICAgICB2aXJ0dWFsIEludFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0Owo=
</data>
<flag name="review"
          id="98453"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>