<?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>219061</bug_id>
          
          <creation_ts>2020-11-17 18:22:42 -0800</creation_ts>
          <short_desc>[WebGL2] Rasterizer discard interferes with implicit clears</short_desc>
          <delta_ts>2020-11-30 13:55:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jdarpinian</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1708459</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-17 18:22:42 -0800</bug_when>
    <thetext>In Chromium bug http:///crbug.com/1149176 it was pointed out that enabling the RASTERIZER_DISCARD state interferes with the WebGL context&apos;s implicit auto-clears. A conformance test for this was just added in https://github.com/KhronosGroup/WebGL/pull/3183 ; WebKit needs fixes in this area as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708491</commentid>
    <comment_count>1</comment_count>
      <attachid>414410</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-17 21:40:44 -0800</bug_when>
    <thetext>Created attachment 414410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708492</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-17 21:42:07 -0800</bug_when>
    <thetext>Could I ask for a little help with the above patch? The new test fails in TestRunner, though it passes in MiniBrowser. I gather there are compositing differences in the test runner, but couldn&apos;t figure out if there are any Internals methods that can force a composite, for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709634</commentid>
    <comment_count>3</comment_count>
      <attachid>414717</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-20 13:57:51 -0800</bug_when>
    <thetext>Created attachment 414717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709635</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-20 13:58:59 -0800</bug_when>
    <thetext>Removed the new WebGL conformance test as a layout test after discussion with dino and kkinnunen - TestRunner doesn&apos;t pass it, but the browser and MiniBrowser do. Will do follow-on work on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709940</commentid>
    <comment_count>5</comment_count>
      <attachid>414717</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-11-23 13:33:12 -0800</bug_when>
    <thetext>Comment on attachment 414717
Patch

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

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:467
&gt; +        : m_context(context), m_wasEnabled(wasEnabled)

Nit: we do this on two lines.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.h:650
&gt; +    bool m_rasterizerDiscardEnabled;

Not necessary now, but we should probably go through these and give them default values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709948</commentid>
    <comment_count>6</comment_count>
      <attachid>414717</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-23 15:49:13 -0800</bug_when>
    <thetext>Comment on attachment 414717
Patch

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

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:467
&gt;&gt; +        : m_context(context), m_wasEnabled(wasEnabled)
&gt; 
&gt; Nit: we do this on two lines.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.h:650
&gt;&gt; +    bool m_rasterizerDiscardEnabled;
&gt; 
&gt; Not necessary now, but we should probably go through these and give them default values.

Yes, let&apos;s do that - strongly prefer that style. Fixed this new one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709949</commentid>
    <comment_count>7</comment_count>
      <attachid>414815</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-23 15:50:07 -0800</bug_when>
    <thetext>Created attachment 414815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709964</commentid>
    <comment_count>8</comment_count>
      <attachid>414815</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-23 21:24:59 -0800</bug_when>
    <thetext>Comment on attachment 414815
Patch

Forgot that the repo&apos;s closed this week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710126</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-26 03:19:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/71747708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710679</commentid>
    <comment_count>10</comment_count>
      <attachid>414815</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-30 11:06:42 -0800</bug_when>
    <thetext>Comment on attachment 414815
Patch

Attempting cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710688</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-30 11:21:15 -0800</bug_when>
    <thetext>Committed r270253: &lt;https://trac.webkit.org/changeset/270253&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414815.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710756</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-11-30 13:55:55 -0800</bug_when>
    <thetext>For what it&apos;s worth, I analyzed the layout test failures seen by the EWS as being unrelated to this patch. Please tell me if that seems to not be the case.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414410</attachid>
            <date>2020-11-17 21:40:44 -0800</date>
            <delta_ts>2020-11-20 13:57:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219061-20201117214043.patch</filename>
            <type>text/plain</type>
            <size>22525</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhYjU1MTRlNGJiOTgz
YjkwZGFkODI0Y2UxNWIwMTVhYzhiY2JjNC4uMThiMWUzMDJjNTUzM2QwNThhYzYzMGQwNWZhZDVk
YmVmNjVjNzExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTExLTE3ICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtXZWJHTDJdIFJhc3Rl
cml6ZXIgZGlzY2FyZCBpbnRlcmZlcmVzIHdpdGggaW1wbGljaXQgY2xlYXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkwNjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHJhc3Rlcml6ZXIgZGlz
Y2FyZCBpcyBlbmFibGVkLCB1c2VyLWxldmVsIGRyYXcgY2FsbHMgYW5kCisgICAgICAgIGNsZWFy
cyBza2lwIHRoZSBpbXBsaWNpdCBjbGVhciBzaW5jZSB0aGV5IGhhdmUgbm8gZWZmZWN0LgorICAg
ICAgICBSZWFkYmFja3MgYW5kIGNvcGllcyBzdGlsbCBwZXJmb3JtIHRoZSBpbXBsaWNpdCBjbGVh
ci4KKworICAgICAgICBUZXN0OiB3ZWJnbC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL3Jhc3Rlcml6
ZXItZGlzY2FyZC1hbmQtaW1wbGljaXQtY2xlYXIuaHRtbAorCisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojpjb3B5VGV4U3ViSW1hZ2UzRCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4ZWxzKToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjb3Bl
ZERpc2FibGVSYXN0ZXJpemVyRGlzY2FyZDo6U2NvcGVkRGlzYWJsZVJhc3Rlcml6ZXJEaXNjYXJk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZERpc2FibGVSYXN0ZXJpemVyRGlzY2FyZDo6flNj
b3BlZERpc2FibGVSYXN0ZXJpemVyRGlzY2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXplTmV3Q29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjbGVhcklmQ29tcG9zaXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwYWludFJlbmRlcmluZ1Jl
c3VsdHNUb0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjb3B5VGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJheXMpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0VsZW1lbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZWFkUGl4ZWxzKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNvcHlUZXhJbWFnZTJEKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJheXNJ
bnN0YW5jZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZHJhd0VsZW1lbnRzSW5zdGFuY2VkKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmg6CisKIDIwMjAtMTEtMTIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6Y29tcHV0ZWRIZWlnaHRWYWx1ZSBzaG91bGQgaGFuZGxlIG1pbiwgbWF4IGFuZCBmaXQtY29u
dGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJp
bmdDb250ZXh0LmNwcAppbmRleCA2ZTBjZmY2ODNmODdmMjgzNmMyMGQ0YmQxMzExZjVkZGY4ZjJi
Mzc1Li45ZGU1ZTc5ZjdiYjQwMTBiNjJkZGY0ZGY1YWZiYWM0MTIyMmQ5MjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNw
cApAQCAtMTM1MSw3ICsxMzUxLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpjb3B5
VGV4U3ViSW1hZ2UzRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEcKICAgICAgICAg
cmV0dXJuOwogICAgIGlmICghdmFsaWRhdGVUZXh0dXJlM0RCaW5kaW5nKCJjb3B5VGV4U3ViSW1h
Z2UzRCIsIHRhcmdldCkpCiAgICAgICAgIHJldHVybjsKLSAgICBjbGVhcklmQ29tcG9zaXRlZCgp
OworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIpOwogICAgIG1fY29udGV4
dC0+Y29weVRleFN1YkltYWdlM0QodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgem9m
ZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9CiAKQEAgLTM1NDEsNyArMzU0MSw3IEBAIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQg
eSwgR0NHTHNpemVpIHdpZHRoLCBHCiAgICAgLy8gdGFpbnQgdGhlIG9yaWdpbiB1c2luZyB0aGUg
V2ViR0wgQVBJLgogICAgIEFTU0VSVChjYW52YXNCYXNlKCkub3JpZ2luQ2xlYW4oKSk7CiAKLSAg
ICBjbGVhcklmQ29tcG9zaXRlZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVy
T3RoZXIpOwogCiAgICAgR0NHTHNpemVpIGxlbmd0aCwgY29sdW1ucywgcm93czsKICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5yZWFkblBpeGVsc1JvYnVzdEFOR0xFKHgsIHksIHdpZHRo
LCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgMCwgJmxlbmd0aCwgJmNvbHVtbnMsICZyb3dzLCByZWlu
dGVycHJldF9jYXN0PHVpbnQ4X3QqPihvZmZzZXQpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYTE3Y2Q3NTU5ZTlmMzZkOWE1YjUyN2U0NDNlZjkwMzAxOTExZWUyZi4uNGViYjRmNWQ3NDIw
ZDZhNmIwM2E3MDFlMzBlOGRhNjA0ZGRiOWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTQ2MCw2
ICs0NjAsMjYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5hYmxlZDsKIH07CiAKK2NsYXNzIFNj
b3BlZERpc2FibGVSYXN0ZXJpemVyRGlzY2FyZCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU2Nv
cGVkRGlzYWJsZVJhc3Rlcml6ZXJEaXNjYXJkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNv
bnRleHQsIGJvb2wgd2FzRW5hYmxlZCkKKyAgICAgICAgOiBtX2NvbnRleHQoY29udGV4dCksIG1f
d2FzRW5hYmxlZCh3YXNFbmFibGVkKQorICAgIHsKKyAgICAgICAgaWYgKG1fd2FzRW5hYmxlZCkK
KyAgICAgICAgICAgIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHRHTDo6UkFTVEVS
SVpFUl9ESVNDQVJEKTsKKyAgICB9CisKKyAgICB+U2NvcGVkRGlzYWJsZVJhc3Rlcml6ZXJEaXNj
YXJkKCkKKyAgICB7CisgICAgICAgIGlmIChtX3dhc0VuYWJsZWQpCisgICAgICAgICAgICBtX2Nv
bnRleHQtPmVuYWJsZShHcmFwaGljc0NvbnRleHRHTDo6UkFTVEVSSVpFUl9ESVNDQVJEKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogbV9jb250ZXh0
OworICAgIGJvb2wgbV93YXNFbmFibGVkOworfTsKKwogI2RlZmluZSBBRERfVkFMVUVTX1RPX1NF
VChzZXQsIGFycikgXAogICAgIHNldC5hZGQoYXJyLCBhcnIgKyBXVEZfQVJSQVlfTEVOR1RIKGFy
cikpCiAKQEAgLTg2NCw3ICs4ODQsOSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmluaXRpYWxpemVOZXdDb250ZXh0KCkKICAgICBtX3N0ZW5jaWxGdW5jTWFza0JhY2sgPSAweEZG
RkZGRkZGOwogICAgIG1fbGF5ZXJDbGVhcmVkID0gZmFsc2U7CiAgICAgbV9udW1HTEVycm9yc1Rv
Q29uc29sZUFsbG93ZWQgPSBtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGU7Ci0gICAgCisKKyAg
ICBtX3Jhc3Rlcml6ZXJEaXNjYXJkRW5hYmxlZCA9IGZhbHNlOworCiAgICAgbV9jbGVhckNvbG9y
WzBdID0gbV9jbGVhckNvbG9yWzFdID0gbV9jbGVhckNvbG9yWzJdID0gbV9jbGVhckNvbG9yWzNd
ID0gMDsKICAgICBtX3NjaXNzb3JFbmFibGVkID0gZmFsc2U7CiAgICAgbV9jbGVhckRlcHRoID0g
MTsKQEAgLTExMDEsNyArMTEyMyw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
bWFya0NvbnRleHRDaGFuZ2VkQW5kTm90aWZ5Q2FudmFzT2JzZXJ2ZXIoKQogICAgIGNhbnZhcy0+
bm90aWZ5T2JzZXJ2ZXJzQ2FudmFzQ2hhbmdlZChGbG9hdFJlY3QoRmxvYXRQb2ludCgwLCAwKSwg
Y2xhbXBlZENhbnZhc1NpemUoKSkpOwogfQogCi1ib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmNsZWFySWZDb21wb3NpdGVkKEdDR0xiaXRmaWVsZCBtYXNrKQorYm9vbCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpjbGVhcklmQ29tcG9zaXRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpDbGVhckNhbGxlciBjYWxsZXIsIEdDR0xiaXRmaWVsZCBtYXNrKQogewogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTExMTEs
NyArMTEzMyw3IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2xlYXJJZkNvbXBv
c2l0ZWQoR0NHTGJpdGZpZWxkIG1hc2spCiAKICAgICBHQ0dMYml0ZmllbGQgYnVmZmVyc05lZWRp
bmdDbGVhcmluZyA9IG1fY29udGV4dC0+Z2V0QnVmZmVyc1RvQXV0b0NsZWFyKCk7CiAKLSAgICBp
ZiAoIWJ1ZmZlcnNOZWVkaW5nQ2xlYXJpbmcgfHwgKG1hc2sgJiYgbV9mcmFtZWJ1ZmZlckJpbmRp
bmcpKQorICAgIGlmICghYnVmZmVyc05lZWRpbmdDbGVhcmluZyB8fCAobWFzayAmJiBtX2ZyYW1l
YnVmZmVyQmluZGluZykgfHwgKG1fcmFzdGVyaXplckRpc2NhcmRFbmFibGVkICYmIGNhbGxlciA9
PSBDbGVhckNhbGxlckRyYXdPckNsZWFyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Ly8gVXNlIHRoZSB1bmRlcmx5aW5nIEdyYXBoaWNzQ29udGV4dDNEJ3MgYXR0cmlidXRlcyB0byB0
YWtlIGludG8KQEAgLTExNDksMTAgKzExNzEsMTMgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpjbGVhcklmQ29tcG9zaXRlZChHQ0dMYml0ZmllbGQgbWFzaykKICAgICBHQ0dMZW51
bSBiaW5kaW5nUG9pbnQgPSBpc1dlYkdMMigpID8gR3JhcGhpY3NDb250ZXh0R0w6OkRSQVdfRlJB
TUVCVUZGRVIgOiBHcmFwaGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVI7CiAgICAgaWYgKG1fZnJh
bWVidWZmZXJCaW5kaW5nKQogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihiaW5k
aW5nUG9pbnQsIDApOwotICAgIC8vIElmIHRoZSBXZWJHTCAyLjAgY2xlYXJCdWZmZXIgQVBJcyBh
bHJlYWR5IGhhdmUgYmVlbiB1c2VkIHRvCi0gICAgLy8gc2VsZWN0aXZlbHkgY2xlYXIgc29tZSBv
ZiB0aGUgYnVmZmVycywgZG9uJ3QgZGVzdHJveSB0aG9zZQotICAgIC8vIHJlc3VsdHMuCi0gICAg
bV9jb250ZXh0LT5jbGVhcihjbGVhck1hc2sgJiBidWZmZXJzTmVlZGluZ0NsZWFyaW5nKTsKKyAg
ICB7CisgICAgICAgIFNjb3BlZERpc2FibGVSYXN0ZXJpemVyRGlzY2FyZCBkaXNhYmxlKHRoaXMs
IG1fcmFzdGVyaXplckRpc2NhcmRFbmFibGVkKTsKKyAgICAgICAgLy8gSWYgdGhlIFdlYkdMIDIu
MCBjbGVhckJ1ZmZlciBBUElzIGFscmVhZHkgaGF2ZSBiZWVuIHVzZWQgdG8KKyAgICAgICAgLy8g
c2VsZWN0aXZlbHkgY2xlYXIgc29tZSBvZiB0aGUgYnVmZmVycywgZG9uJ3QgZGVzdHJveSB0aG9z
ZQorICAgICAgICAvLyByZXN1bHRzLgorICAgICAgICBtX2NvbnRleHQtPmNsZWFyKGNsZWFyTWFz
ayAmIGJ1ZmZlcnNOZWVkaW5nQ2xlYXJpbmcpOworICAgIH0KICAgICBtX2NvbnRleHQtPnNldEJ1
ZmZlcnNUb0F1dG9DbGVhcigwKTsKIAogICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ2xlYXIoKTsKQEAg
LTEyMDQsNyArMTIyOSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRS
ZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQogICAgICAgICAgICAgY2FudmFzLT5jbGVhclByZXNl
bnRhdGlvbkNvcHkoKTsKICAgICB9CiAKLSAgICBjbGVhcklmQ29tcG9zaXRlZCgpOworICAgIGNs
ZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIpOwogCiAgICAgaWYgKCFtX21hcmtlZENh
bnZhc0RpcnR5ICYmICFtX2xheWVyQ2xlYXJlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTIyMSw3
ICsxMjQ2LDcgQEAgUmVmUHRyPEltYWdlRGF0YT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9JbWFnZURhdGEoKQogewogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGNsZWFySWZDb21w
b3NpdGVkKCk7CisgICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJPdGhlcik7CiAgICAg
cmV0dXJuIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9JbWFnZURhdGEoKTsKIH0K
IApAQCAtMTY4NCw3ICsxNzA5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpj
bGVhcihHQ0dMYml0ZmllbGQgbWFzaykKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgot
ICAgIGlmICghY2xlYXJJZkNvbXBvc2l0ZWQobWFzaykpCisgICAgaWYgKCFjbGVhcklmQ29tcG9z
aXRlZChDbGVhckNhbGxlckRyYXdPckNsZWFyLCBtYXNrKSkKICAgICAgICAgbV9jb250ZXh0LT5j
bGVhcihtYXNrKTsKICAgICBtYXJrQ29udGV4dENoYW5nZWRBbmROb3RpZnlDYW52YXNPYnNlcnZl
cigpOwogfQpAQCAtMTg2Miw3ICsxODg3LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjb3B5VGV4U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwKICNp
ZiBVU0UoQU5HTEUpCiAgICAgaWYgKCF2YWxpZGF0ZVRleHR1cmUyREJpbmRpbmcoImNvcHlUZXhT
dWJJbWFnZTJEIiwgdGFyZ2V0KSkKICAgICAgICAgcmV0dXJuOwotICAgIGNsZWFySWZDb21wb3Np
dGVkKCk7CisgICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJPdGhlcik7CiAgICAgbV9j
b250ZXh0LT5jb3B5VGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKICNlbHNlCiAgICAgaWYgKCF2YWxpZGF0ZVRleEZ1bmNM
ZXZlbCgiY29weVRleFN1YkltYWdlMkQiLCB0YXJnZXQsIGxldmVsKSkKQEAgLTE4OTMsNyArMTkx
OCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y29weVRleFN1YkltYWdlMkQo
R0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiwgImNvcHlU
ZXhTdWJJbWFnZTJEIiwgcmVhc29uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjbGVh
cklmQ29tcG9zaXRlZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIp
OwogCiAgICAgR0NHTGludCBjbGlwcGVkWCwgY2xpcHBlZFk7CiAgICAgR0NHTHNpemVpIGNsaXBw
ZWRXaWR0aCwgY2xpcHBlZEhlaWdodDsKQEAgLTIxNzQsNiArMjE5OSw4IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzYWJsZShHQ0dMZW51bSBjYXApCiAgICAgfQogICAgIGlm
IChjYXAgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlNDSVNTT1JfVEVTVCkKICAgICAgICAgbV9zY2lz
c29yRW5hYmxlZCA9IGZhbHNlOworICAgIGlmIChjYXAgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlJB
U1RFUklaRVJfRElTQ0FSRCkKKyAgICAgICAgbV9yYXN0ZXJpemVyRGlzY2FyZEVuYWJsZWQgPSBm
YWxzZTsKICAgICBtX2NvbnRleHQtPmRpc2FibGUoY2FwKTsKIH0KIApAQCAtMjU0MSw3ICsyNTY4
LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3QXJyYXlzKEdDR0xlbnVt
IG1vZGUsIEdDR0xpbnQgZmlyc3QsIEdDR0xzaXoKICAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAm
JiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoKnRoaXMs
ICptX2N1cnJlbnRQcm9ncmFtKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2xlYXJJZkNvbXBv
c2l0ZWQoKTsKKyAgICBjbGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxlckRyYXdPckNsZWFyKTsK
IAogI2lmICFVU0UoQU5HTEUpCiAgICAgYm9vbCB2ZXJ0ZXhBdHRyaWIwU2ltdWxhdGVkID0gZmFs
c2U7CkBAIC0yNjA0LDcgKzI2MzEsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRyYXdFbGVtZW50cyhHQ0dMZW51bSBtb2RlLCBHQ0dMc2l6ZWkgY291bnQsIEdDRwogICAgIGlm
IChtX2N1cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFBy
b2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0pKQogICAgICAgICByZXR1cm47
CiAKLSAgICBjbGVhcklmQ29tcG9zaXRlZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFy
Q2FsbGVyRHJhd09yQ2xlYXIpOwogCiAjaWYgIVVTRShBTkdMRSkKICAgICBib29sIHZlcnRleEF0
dHJpYjBTaW11bGF0ZWQgPSBmYWxzZTsKQEAgLTI2NTUsNiArMjY4Miw4IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZW5hYmxlKEdDR0xlbnVtIGNhcCkKICAgICB9CiAgICAgaWYg
KGNhcCA9PSBHcmFwaGljc0NvbnRleHRHTDo6U0NJU1NPUl9URVNUKQogICAgICAgICBtX3NjaXNz
b3JFbmFibGVkID0gdHJ1ZTsKKyAgICBpZiAoY2FwID09IEdyYXBoaWNzQ29udGV4dEdMOjpSQVNU
RVJJWkVSX0RJU0NBUkQpCisgICAgICAgIG1fcmFzdGVyaXplckRpc2NhcmRFbmFibGVkID0gdHJ1
ZTsKICAgICBtX2NvbnRleHQtPmVuYWJsZShjYXApOwogfQogCkBAIC00MzQ1LDcgKzQzNzQsNyBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlYWRQaXhlbHMoR0NHTGludCB4LCBH
Q0dMaW50IHksIEdDR0xzaXplaSB3aWR0aAogICAgIH0KICNlbmRpZiAvLyBVU0UoQU5HTEUpCiAK
LSAgICBjbGVhcklmQ29tcG9zaXRlZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2Fs
bGVyT3RoZXIpOwogICAgIHZvaWQqIGRhdGEgPSBwaXhlbHMuYmFzZUFkZHJlc3MoKTsKIAogI2lm
IFVTRShBTkdMRSkKQEAgLTU2MDMsNyArNTYzMiw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Y29weVRleEltYWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBH
CiAgICAgaWYgKCF0ZXgpCiAgICAgICAgIHJldHVybjsKICNpZiBVU0UoQU5HTEUpCi0gICAgY2xl
YXJJZkNvbXBvc2l0ZWQoKTsKKyAgICBjbGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxlck90aGVy
KTsKICAgICBtX2NvbnRleHQtPmNvcHlUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFs
Rm9ybWF0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIpOwogI2Vsc2UKICAgICBpZiAoIWlz
VGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNvbWJpbmF0aW9uVmFsaWQoaW50ZXJuYWxGb3Jt
YXQsIGdldEJvdW5kUmVhZEZyYW1lYnVmZmVyQ29sb3JGb3JtYXQoKSkpIHsKQEAgLTU2MTksNyAr
NTY0OCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y29weVRleEltYWdlMkQo
R0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHCiAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiwgImNv
cHlUZXhJbWFnZTJEIiwgcmVhc29uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjbGVh
cklmQ29tcG9zaXRlZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIp
OwogCiAgICAgR0NHTGludCBjbGlwcGVkWCwgY2xpcHBlZFk7CiAgICAgR0NHTHNpemVpIGNsaXBw
ZWRXaWR0aCwgY2xpcHBlZEhlaWdodDsKQEAgLTc2OTIsNyArNzcyMSw3IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0FycmF5c0luc3RhbmNlZChHQ0dMZW51bSBtb2RlLCBH
Q0dMaW50IGZpcnN0CiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyAhVVNFKEFOR0xFKQogCi0g
ICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKKyAgICBjbGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxl
ckRyYXdPckNsZWFyKTsKIAogI2lmICFVU0UoQU5HTEUpCiAgICAgYm9vbCB2ZXJ0ZXhBdHRyaWIw
U2ltdWxhdGVkID0gZmFsc2U7CkBAIC03NzM4LDcgKzc3NjcsNyBAQCB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50c0luc3RhbmNlZChHQ0dMZW51bSBtb2RlLCBHQ0dM
c2l6ZWkgYwogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKIAotICAgIGNs
ZWFySWZDb21wb3NpdGVkKCk7CisgICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJEcmF3
T3JDbGVhcik7CiAKICNpZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgdmVydGV4QXR0cmliMFNpbXVs
YXRlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDI5MWI5YWVkZjMzODQxNmViYWVkYjM4OWE3
OTVhMjlmYThhZGRiZWIuLjc1NTJlODVjOWE1YWQzMWQyYjYwZDc4ZWQ5NzU2NDRjZmU0MTI2MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgKQEAgLTY0Nyw2ICs2NDcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgR0NHTGlu
dCBtX3N0ZW5jaWxGdW5jUmVmLCBtX3N0ZW5jaWxGdW5jUmVmQmFjazsgLy8gTm90ZSB0aGF0IHRo
ZXNlIGFyZSB0aGUgdXNlciBzcGVjaWZpZWQgdmFsdWVzLCBub3QgdGhlIGludGVybmFsIGNsYW1w
ZWQgdmFsdWUuCiAgICAgR0NHTHVpbnQgbV9zdGVuY2lsRnVuY01hc2ssIG1fc3RlbmNpbEZ1bmNN
YXNrQmFjazsKIAorICAgIGJvb2wgbV9yYXN0ZXJpemVyRGlzY2FyZEVuYWJsZWQ7CisKICAgICBi
b29sIG1faXNHTEVTMkNvbXBsaWFudDsKICAgICBib29sIG1faXNHTEVTMk5QT1RTdHJpY3Q7CiAg
ICAgYm9vbCBtX2lzRGVwdGhTdGVuY2lsU3VwcG9ydGVkOwpAQCAtNzE4LDEwICs3MjAsMTcgQEAg
cHJvdGVjdGVkOgogICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGdldFdlYkdMRmxvYXRBcnJheVBh
cmFtZXRlcihHQ0dMZW51bSk7CiAgICAgUmVmUHRyPEludDMyQXJyYXk+IGdldFdlYkdMSW50QXJy
YXlQYXJhbWV0ZXIoR0NHTGVudW0pOwogCisgICAgZW51bSBDbGVhckNhbGxlciB7CisgICAgICAg
IC8vIENhbGxlciBvZiBDbGVhcklmQ29tcG9zaXRlZCBpcyBhIHVzZXItbGV2ZWwgZHJhdyBvciBj
bGVhciBjYWxsLgorICAgICAgICBDbGVhckNhbGxlckRyYXdPckNsZWFyLAorICAgICAgICAvLyBD
YWxsZXIgb2YgQ2xlYXJJZkNvbXBvc2l0ZWQgaXMgYW55dGhpbmcgZWxzZSwgaW5jbHVkaW5nCisg
ICAgICAgIC8vIHJlYWRiYWNrcyBvciBjb3BpZXMuCisgICAgICAgIENsZWFyQ2FsbGVyT3RoZXIs
CisgICAgfTsKICAgICAvLyBDbGVhciB0aGUgYmFja2J1ZmZlciBpZiBpdCB3YXMgY29tcG9zaXRl
ZCBzaW5jZSB0aGUgbGFzdCBvcGVyYXRpb24uCiAgICAgLy8gY2xlYXJNYXNrIGlzIHNldCB0byB0
aGUgYml0ZmllbGQgb2YgYW55IGNsZWFyIHRoYXQgd291bGQgaGFwcGVuIGFueXdheSBhdCB0aGlz
IHRpbWUKICAgICAvLyBhbmQgdGhlIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBpZiB0aGF0IGNsZWFy
IGlzIG5vdyB1bm5lY2Vzc2FyeS4KLSAgICBib29sIGNsZWFySWZDb21wb3NpdGVkKEdDR0xiaXRm
aWVsZCBjbGVhck1hc2sgPSAwKTsKKyAgICBib29sIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2Fs
bGVyLCBHQ0dMYml0ZmllbGQgY2xlYXJNYXNrID0gMCk7CiAKICAgICAvLyBIZWxwZXIgdG8gcmVz
dG9yZSBzdGF0ZSB0aGF0IGNsZWFyaW5nIHRoZSBmcmFtZWJ1ZmZlciBtYXkgZGVzdHJveS4KICAg
ICB2b2lkIHJlc3RvcmVTdGF0ZUFmdGVyQ2xlYXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MmNkOTNiMGYxMmQxYTdm
NTNiMThmNGFjN2E4NjExMGExOGExNDMxLi4yNjIwMGY1YWUxOWFkYTZlNjBmMGVhNjBjNGFlYjgz
ZGZmZDRhNzU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMTEtMTcgIEtlbm5ldGggUnVz
c2VsbCAgPGtickBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1dlYkdMMl0gUmFzdGVyaXplciBk
aXNjYXJkIGludGVyZmVyZXMgd2l0aCBpbXBsaWNpdCBjbGVhcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTA2MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgbGF5b3V0IHRlc3QsIGNvcGll
ZCBmcm9tIFdlYkdMIGNvbmZvcm1hbmNlIHRlc3QKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29t
L0tocm9ub3NHcm91cC9XZWJHTC9wdWxsLzMxODMgLgorCisgICAgICAgIFRlc3QgaXMgZmFpbGlu
ZyBmb3IgdW5rbm93biByZWFzb25zIGluIFRlc3RSdW5uZXIsIHRob3VnaCBwYXNzaW5nCisgICAg
ICAgIGluIE1pbmlCcm93c2VyLiBUZW1wb3JhcmlseSBtYXJrIGZhaWxpbmcuCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlMi9yZW5kZXJp
bmcvcmFzdGVyaXplci1kaXNjYXJkLWFuZC1pbXBsaWNpdC1jbGVhci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvcmFzdGVyaXplci1k
aXNjYXJkLWFuZC1pbXBsaWNpdC1jbGVhci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL3Jhc3Rlcml6
ZXItZGlzY2FyZC1hbmQtaW1wbGljaXQtY2xlYXIuaHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMTIg
IE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFNpbXBs
aWZ5IG1haW5mcmFtZSB0ZXN0cyB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMTdlMDBlMzk3NWM5YWVlZGU3YzYzNWEwNTE5YWY3NzgxNmI5
NDY2OC4uMTY1NjRjMzBhYmZkNjg1MTFkMGU0NTY0NTVlZTA0NjRiZjlkYWVkNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0zNDMzLDYgKzM0MzMsOSBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL3RleHR1cmUtc2l6ZS1saW1pdC5odG1sIFsgU2xvdyBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3RleHR1cmUtbnBvdC12aWRlby5odG1sIFsgU2tp
cCBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlzYy91bmluaXRpYWxpemVkLXRlc3QtMi5o
dG1sIFsgU2tpcCBdCiAKKyMgRmFpbGluZyBmb3IgdW5rbm93biByZWFzb24gb25seSBpbiBUZXN0
UnVubmVyCit3ZWJraXQub3JnL2IvMjE5MDYxIHdlYmdsL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcv
cmFzdGVyaXplci1kaXNjYXJkLWFuZC1pbXBsaWNpdC1jbGVhci5odG1sIFsgRmFpbHVyZSBdCisK
ICMgcHJlLXdyYXAgcHJvZ3Jlc3Npb24uIE90aGVyIHJlbmRlcmluZyBlbmdpbmVzIGFncmVlIHdp
dGggdGhlIHJlc3VsdC4KIHdlYmtpdC5vcmcvYi8yMDYxNjggWyBEZWJ1ZyBdIGZhc3QvZG9tL2lu
c2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS5odG1sIFsgU2tpcCBdCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvcmFzdGVyaXpl
ci1kaXNjYXJkLWFuZC1pbXBsaWNpdC1jbGVhci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJnbC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL3Jhc3Rlcml6ZXItZGlzY2FyZC1hbmQtaW1wbGlj
aXQtY2xlYXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MGFjNTA3YmUwMDY1MTk3OWQ3ODJm
Mzk0MWI1MThjZjM1NTQ1N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZTIvcmVuZGVyaW5nL3Jhc3Rlcml6ZXItZGlzY2FyZC1hbmQtaW1wbGljaXQtY2xl
YXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
CisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9y
ZW5kZXJpbmcvcmFzdGVyaXplci1kaXNjYXJkLWFuZC1pbXBsaWNpdC1jbGVhci5odG1sCisKK1BB
U1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcv
cmFzdGVyaXplci1kaXNjYXJkLWFuZC1pbXBsaWNpdC1jbGVhci5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9yYXN0ZXJpemVyLWRpc2NhcmQtYW5kLWltcGxp
Y2l0LWNsZWFyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UxYzBiNzY4YjIyNzNlYmFkYzkzZGQyNmRkMTBk
ODQxNDdkOGE1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1h
bmNlMi9yZW5kZXJpbmcvcmFzdGVyaXplci1kaXNjYXJkLWFuZC1pbXBsaWNpdC1jbGVhci5odG1s
CkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIg
Zm9yIHJhc3Rlcml6ZXItZGlzY2FyZC1hbmQtaW1wbGljaXQtY2xlYXIuaHRtbDwvdGl0bGU+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0
OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIv
cmVuZGVyaW5nL3Jhc3Rlcml6ZXItZGlzY2FyZC1hbmQtaW1wbGljaXQtY2xlYXIuaHRtbCI+Li4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9yYXN0
ZXJpemVyLWRpc2NhcmQtYW5kLWltcGxpY2l0LWNsZWFyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJh
bWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlMi9yZW5kZXJpbmcvcmFzdGVyaXplci1kaXNjYXJkLWFuZC1pbXBsaWNpdC1jbGVhci5o
dG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9
InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5n
L3Jhc3Rlcml6ZXItZGlzY2FyZC1hbmQtaW1wbGljaXQtY2xlYXIuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcv
cmFzdGVyaXplci1kaXNjYXJkLWFuZC1pbXBsaWNpdC1jbGVhci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2
MDVhMjVmMjY0NDViZjY1ZWM0NjFiZjRjZDliZjBlY2NiOGU0ODMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZTIvcmVuZGVyaW5nL3Jhc3Rlcml6ZXItZGlzY2FyZC1hbmQtaW1wbGljaXQtY2xlYXIuaHRtbApA
QCAtMCwwICsxLDE0OSBAQAorPCEtLQorQ29weXJpZ2h0IChjKSAyMDIwIFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+UkFTVEVSSVpFUl9ESVNDQVJEIGRvZXNuJ3QgYWZmZWN0IGltcGxpY2l0
IGNsZWFyczwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVy
dGV4Ij4jdmVyc2lvbiAzMDAgZXMKK2xheW91dChsb2NhdGlvbj0wKSBpbiB2ZWMyIHZQb3NpdGlv
bjsKK3VuaWZvcm0gZmxvYXQgeFRyYW5zbGF0aW9uOwordm9pZCBtYWluKHZvaWQpIHsKKyAgZ2xf
UG9zaXRpb24gPSB2ZWM0KHZQb3NpdGlvblswXSArIHhUcmFuc2xhdGlvbiwgdlBvc2l0aW9uWzFd
LCAwLjAsIDEuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingt
c2hhZGVyL3gtZnJhZ21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7Cit1bmlmb3JtIHZlYzQgY29sb3I7CitvdXQgdmVjNCBvdXRDb2xvcjsKK3ZvaWQgbWFpbigp
IHsKKyAgb3V0Q29sb3IgPSBjb2xvcjsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
Y2FudmFzIGlkPSJleGFtcGxlIj48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rl
YnVnKCIiKTsKKworZGVzY3JpcHRpb24oIkVuYWJsaW5nIFJBU1RFUklaRVJfRElTQ0FSRCBzaG91
bGQgbm90IGFmZmVjdCBpbXBsaWNpdCBjbGVhcnMiKTsKKworY29uc3Qgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Citjb25zdCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIp
OworY29uc3Qgc3ogPSBjYW52YXMud2lkdGggPSBjYW52YXMuaGVpZ2h0ID0gMjU2OworY29uc3Qg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgdW5kZWZpbmVkLCAyKTsKK2NvbnN0IE5V
TV9GUkFNRVMgPSAxNTsKK2xldCBmcmFtZXNUb0dvID0gTlVNX0ZSQU1FUzsKK2xldCB4VHJhbnNs
YXRpb25Mb2M7CitsZXQgY29sb3JMb2M7Citjb25zdCBwb3NpdGlvbkxvY2F0aW9uID0gMDsKK2Nv
bnN0IHJlZCA9IFsgMS4wLCAwLjAsIDAuMCwgMS4wIF07Citjb25zdCBncmVlbiA9IFsgMC4wLCAx
LjAsIDAuMCwgMS4wIF07Citjb25zdCB0cmFuc3BhcmVudEJsYWNrUmVuZGVyID0gWyAwLCAwLCAw
LCAwIF07Citjb25zdCBncmVlblJlbmRlciA9IFsgMCwgMjU1LCAwLCAyNTUgXTsKKworaWYgKCFn
bCkgeworICAgIHRlc3RGYWlsZWQoIldlYkdMIGNvbnRleHQgY3JlYXRpb24gZmFpbGVkIik7Cisg
ICAgZmluaXNoVGVzdCgpOworfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJXZWJHTCBjb250ZXh0
IGNyZWF0aW9uIHN1Y2NlZWRlZCIpOworICAgIHJ1bkRyYXdUZXN0KCk7Cit9CisKK2Z1bmN0aW9u
IHJ1bkRyYXdUZXN0KCkgeworICAgIGRlYnVnKCJWZXJpZnkgdGhhdCBkcmF3cyB3aXRoIHJhc3Rl
cml6ZXIgZGlzY2FyZCBlbmFibGVkIGRvIG5vdCBpbnRlcmZlcmUgd2l0aCBpbXBsaWNpdCBjbGVh
cnMiKTsKKyAgICBsZXQgcHJvZyA9IHd0dS5sb2FkUHJvZ3JhbUZyb21TY3JpcHQoZ2wsICJ2c2hh
ZGVyIiwgImZzaGFkZXIiKTsKKyAgICBnbC51c2VQcm9ncmFtKHByb2cpOworICAgIHhUcmFuc2xh
dGlvbkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9nLCAieFRyYW5zbGF0aW9uIik7Cisg
ICAgY29sb3JMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZywgImNvbG9yIik7CisgICAg
bGV0IGxlZnRSZWN0QnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuZW5hYmxlVmVy
dGV4QXR0cmliQXJyYXkocG9zaXRpb25Mb2NhdGlvbik7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5B
UlJBWV9CVUZGRVIsIGxlZnRSZWN0QnVmZmVyKTsKKyAgICAvLyBDcmVhdGUgYSByZWN0YW5nbGUg
Y292ZXJpbmcgdGhlIGxlZnQgaGFsZiBvZiB0aGUgdmlld3BvcnQsIGluCisgICAgLy8gbm9ybWFs
aXplZCBkZXZpY2UgY29vcmRpbmF0ZXMuCisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZG
RVIsIG5ldyBGbG9hdDMyQXJyYXkoWworICAgICAgICAgMC4wLCAgMS4wLAorICAgICAgICAtMS4w
LCAgMS4wLAorICAgICAgICAtMS4wLCAtMS4wLAorICAgICAgICAgMC4wLCAgMS4wLAorICAgICAg
ICAtMS4wLCAtMS4wLAorICAgICAgICAgMC4wLCAtMS4wXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAg
ICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHBvc2l0aW9uTG9jYXRpb24sIDIsIGdsLkZMT0FULCBm
YWxzZSwgMCwgMCk7CisgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlbmRlckRyYXdUZXN0RnJh
bWUpOworfQorCitmdW5jdGlvbiByZW5kZXJEcmF3VGVzdEZyYW1lKCkgeworICAgIC8vIEFuaW1h
dGlvbiBpcyByZXF1aXJlZCBpbiBvcmRlciB0byBleHBvc2UgdGhpcyBidWcuIFdoZW4gaXQKKyAg
ICAvLyBvY2N1cnMsIHRoZSByZWN0YW5nbGUgbGVhdmVzIHRyYWlscyBiZWhpbmQgaXQuCisgICAg
Z2wudW5pZm9ybTFmKHhUcmFuc2xhdGlvbkxvYywgMC4wKTsKKyAgICBnbC5lbmFibGUoZ2wuUkFT
VEVSSVpFUl9ESVNDQVJEKTsKKyAgICBnbC51bmlmb3JtNGZ2KGNvbG9yTG9jLCByZWQpOworICAg
IGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKKyAgICBnbC5kaXNhYmxlKGdsLlJB
U1RFUklaRVJfRElTQ0FSRCk7CisKKyAgICAvLyBBbmltYXRlIHRoZSByZWN0YW5nbGUgZnJvbSB0
aGUgbGVmdCB0byB0aGUgcmlnaHQgaGFsZiBvZiB0aGUgdmlld3BvcnQuCisgICAgZ2wudW5pZm9y
bTFmKHhUcmFuc2xhdGlvbkxvYywgKE5VTV9GUkFNRVMgLSBmcmFtZXNUb0dvKSAvIE5VTV9GUkFN
RVMpOworICAgIC8vIERyYXcgdGhlIGxhc3QgZnJhbWUgd2l0aCBncmVlbiBzbyBhbnkgKGluY29y
cmVjdCkgdHJhaWxzIGFyZSB2aXNpYmx5IHJlZC4KKyAgICBpZiAoZnJhbWVzVG9HbyA9PSAwKQor
ICAgICAgICBnbC51bmlmb3JtNGZ2KGNvbG9yTG9jLCBncmVlbik7CisgICAgZ2wuZHJhd0FycmF5
cyhnbC5UUklBTkdMRVMsIDAsIDYpOworCisgICAgaWYgKGZyYW1lc1RvR28tLSA9PSAwKSB7Cisg
ICAgICAgIC8vIFRoZSBsZWZ0IGhhbGYgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgdHJhbnNwYXJl
bnQgYmxhY2ssCisgICAgICAgIC8vIHdoaWNoIGNvbWVzIGZyb20gdGhlIGltcGxpY2l0IGNsZWFy
IGp1c3QgYmVmb3JlIGRyYXdpbmcgdGhlCisgICAgICAgIC8vIHJlY3RhbmdsZSB3aXRob3V0IHJh
c3Rlcml6ZXIgZGlzY2FyZCBlbmFibGVkLgorICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGds
LCAwLCAwLCBzeiAvIDIsIHN6LCB0cmFuc3BhcmVudEJsYWNrUmVuZGVyLCAibGVmdCBoYWxmIG9m
IGNhbnZhcyBzaG91bGQgYmUgY2xlYXIiLCAzKTsKKyAgICAgICAgLy8gVGhlIHJpZ2h0IGhhbGYg
b2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgc29saWQgZ3JlZW4sIGZyb20KKyAgICAgICAgLy8gdGhl
IGxhc3QgcmVuZGVyIG9mIHRoZSB0cmFuc2xhdGVkIHJlY3RhbmdsZS4KKyAgICAgICAgd3R1LmNo
ZWNrQ2FudmFzUmVjdChnbCwgc3ogLyAyLCAwLCBzeiAvIDIsIHN6LCBncmVlblJlbmRlciwgInJp
Z2h0IGhhbGYgb2YgY2FudmFzIHNob3VsZCBiZSBncmVlbiIsIDMpOworICAgICAgICBydW5SZWFk
UGl4ZWxzVGVzdCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFt
ZShyZW5kZXJEcmF3VGVzdEZyYW1lKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJ1blJlYWRQaXhl
bHNUZXN0KCkgeworICAgIGRlYnVnKCJWZXJpZnkgdGhhdCByZWFkUGl4ZWxzIHdpdGggcmFzdGVy
aXplciBkaXNjYXJkIGVuYWJsZWQgcmVjZWl2ZXMgaW1wbGljaXRseSBjbGVhcmVkIGRhdGEiKTsK
KyAgICBmcmFtZXNUb0dvID0gTlVNX0ZSQU1FUzsgIC8vIFJlc2V0IHN0YXRlLgorICAgIC8vIENs
ZWFyIHRvIHRyYW5zcGFyZW50IGJsYWNrLgorICAgIGdsLmNsZWFyQ29sb3IoMC4wLCAwLjAsIDAu
MCwgMC4wKTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKyAgICAvLyBTdGFy
dCB3aXRoIHJhc3Rlcml6ZXIgZGlzY2FyZCBlbmFibGVkLgorICAgIGdsLmVuYWJsZShnbC5SQVNU
RVJJWkVSX0RJU0NBUkQpOworICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShyZW5kZXJSZWFkUGl4
ZWxzVGVzdEZyYW1lKTsKK30KKworZnVuY3Rpb24gcmVuZGVyUmVhZFBpeGVsc1Rlc3RGcmFtZSgp
IHsKKyAgICAvLyBSYXN0ZXJpemVyIGRpc2NhcmQgaXMgZW5hYmxlZCBhdCB0aGUgYmVnaW5uaW5n
IG9mIHRoaXMgdGVzdC4KKworICAgIC8vIFRoZSBjYW52YXMgc2hvdWxkIGFsd2F5cyBjb250YWlu
IHRyYW5zcGFyZW50IGJsYWNrIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZyYW1lLgorICAgIHd0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIHN6LCBzeiwgdHJhbnNwYXJlbnRCbGFja1JlbmRl
ciwgdW5kZWZpbmVkLCAzKTsKKworICAgIGdsLmRpc2FibGUoZ2wuUkFTVEVSSVpFUl9ESVNDQVJE
KTsKKyAgICAvLyBDbGVhciB0byByZWQuCisgICAgZ2wuY2xlYXJDb2xvcigxLjAsIDAuMCwgMC4w
LCAxLjApOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworICAgIC8vIEVuYWJs
ZSByYXN0ZXJpemVyIGRpc2NhcmQgYWdhaW4uCisgICAgZ2wuZW5hYmxlKGdsLlJBU1RFUklaRVJf
RElTQ0FSRCk7CisKKyAgICBpZiAoLS1mcmFtZXNUb0dvID09IDApIHsKKyAgICAgICAgZmluaXNo
VGVzdCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShyZW5k
ZXJSZWFkUGl4ZWxzVGVzdEZyYW1lKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorCis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414717</attachid>
            <date>2020-11-20 13:57:51 -0800</date>
            <delta_ts>2020-11-23 15:50:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219061-20201120135750.patch</filename>
            <type>text/plain</type>
            <size>13242</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVhZDJlMjgwNTdiYWE3
MjczOGQ4ZDZiMjMwZDRjOWJkM2I0YTM2Mi4uMzA0NmZhN2ZlMGI4ZDc1ZGRiYmQxZDE5MGNmYjhj
M2Y2OTAxNmM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTExLTIwICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtXZWJHTDJdIFJhc3Rl
cml6ZXIgZGlzY2FyZCBpbnRlcmZlcmVzIHdpdGggaW1wbGljaXQgY2xlYXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkwNjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHJhc3Rlcml6ZXIgZGlz
Y2FyZCBpcyBlbmFibGVkLCB1c2VyLWxldmVsIGRyYXcgY2FsbHMgYW5kCisgICAgICAgIGNsZWFy
cyBza2lwIHRoZSBpbXBsaWNpdCBjbGVhciBzaW5jZSB0aGV5IGhhdmUgbm8gZWZmZWN0LgorICAg
ICAgICBSZWFkYmFja3MgYW5kIGNvcGllcyBzdGlsbCBwZXJmb3JtIHRoZSBpbXBsaWNpdCBjbGVh
ci4KKworICAgICAgICBBIG5ldyBXZWJHTCBjb25mb3JtYW5jZSB0ZXN0IGhhcyBiZWVuIGFkZGVk
IGZvciB0aGlzIGluCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9LaHJvbm9zR3JvdXAvV2Vi
R0wvcHVsbC8zMTgzIHdoaWNoIHBhc3NlcyB3aXRoCisgICAgICAgIHRoaXMgZml4LiBXZWJLaXQn
cyBUZXN0UnVubmVyIGRvZXNuJ3QgcnVuIHRoZSBjb21wb3NpdGUgcGhhc2UgYXMKKyAgICAgICAg
dGhlIGJyb3dzZXIgb3IgTWluaUJyb3dzZXIgZG8sIHNvIHdvdWxkbid0IHBhc3MgdGhpcyB0ZXN0
IGFzCisgICAgICAgIGludGVncmF0ZWQgYXMgYSBsYXlvdXQgdGVzdC4gUGVyIGRpc2N1c3Npb24g
d2l0aCBkaW5vIGFuZAorICAgICAgICBra2lubnVuZW4gb24gU2xhY2ssIHdpbGwgYWRkcmVzcyB0
aGlzIGluIGZvbGxvdy1vbiB3b3JrLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250
ZXh0Ojpjb3B5VGV4U3ViSW1hZ2UzRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpyZWFkUGl4ZWxzKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZERpc2FibGVSYXN0
ZXJpemVyRGlzY2FyZDo6U2NvcGVkRGlzYWJsZVJhc3Rlcml6ZXJEaXNjYXJkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjb3BlZERpc2FibGVSYXN0ZXJpemVyRGlzY2FyZDo6flNjb3BlZERpc2FibGVS
YXN0ZXJpemVyRGlzY2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjppbml0aWFsaXplTmV3Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjbGVhcklmQ29tcG9zaXRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwYWludFJl
bmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpjb3B5VGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJheXMpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0VsZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZWFkUGl4ZWxzKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNvcHlUZXhJbWFnZTJEKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJheXNJbnN0YW5jZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0VsZW1lbnRz
SW5zdGFuY2VkKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmg6CisKIDIwMjAtMTEtMjAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gRW5hYmxlIGlubGluZS1ibG9jawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApp
bmRleCA1NWJjMWY4ZGIyNDlkMzM4MjJlNzg4OWNhNzgzZjViZWMwMjVhMjk5Li5lYjNkMzE5MDk1
MGE2ZmU5ZTM4Zjk3MTE1MjNhMGYxMmZhYjE1MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTM0MCw3ICsx
MzQwLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpjb3B5VGV4U3ViSW1hZ2UzRChH
Q0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEcKICAgICAgICAgcmV0dXJuOwogICAgIGlm
ICghdmFsaWRhdGVUZXh0dXJlM0RCaW5kaW5nKCJjb3B5VGV4U3ViSW1hZ2UzRCIsIHRhcmdldCkp
CiAgICAgICAgIHJldHVybjsKLSAgICBjbGVhcklmQ29tcG9zaXRlZCgpOworICAgIGNsZWFySWZD
b21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIpOwogICAgIG1fY29udGV4dC0+Y29weVRleFN1Yklt
YWdlM0QodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgem9mZnNldCwgeCwgeSwgd2lk
dGgsIGhlaWdodCk7CiB9CiAKQEAgLTM1MTUsNyArMzUxNSw3IEBAIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6cmVhZFBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdp
ZHRoLCBHCiAgICAgLy8gdGFpbnQgdGhlIG9yaWdpbiB1c2luZyB0aGUgV2ViR0wgQVBJLgogICAg
IEFTU0VSVChjYW52YXNCYXNlKCkub3JpZ2luQ2xlYW4oKSk7CiAKLSAgICBjbGVhcklmQ29tcG9z
aXRlZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIpOwogCiAgICAg
R0NHTHNpemVpIGxlbmd0aCwgY29sdW1ucywgcm93czsKICAgICBtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5yZWFkblBpeGVsc1JvYnVzdEFOR0xFKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgMCwgJmxlbmd0aCwgJmNvbHVtbnMsICZyb3dzLCByZWludGVycHJldF9jYXN0PHVp
bnQ4X3QqPihvZmZzZXQpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggMTg1ZThjNjJlNmZi
ZTMxZjMxMzg4YzBjOWY4MGQ4MWNlZTI0YTNiMS4uNDcwMjAxNzZjNTA5MjE1NDU2ZWI4NmRjZjRl
M2E2YzBjZjQ4MDIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTQ2MSw2ICs0NjEsMjYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fZW5hYmxlZDsKIH07CiAKK2NsYXNzIFNjb3BlZERpc2FibGVSYXN0
ZXJpemVyRGlzY2FyZCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU2NvcGVkRGlzYWJsZVJhc3Rl
cml6ZXJEaXNjYXJkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRleHQsIGJvb2wgd2Fz
RW5hYmxlZCkKKyAgICAgICAgOiBtX2NvbnRleHQoY29udGV4dCksIG1fd2FzRW5hYmxlZCh3YXNF
bmFibGVkKQorICAgIHsKKyAgICAgICAgaWYgKG1fd2FzRW5hYmxlZCkKKyAgICAgICAgICAgIG1f
Y29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHRHTDo6UkFTVEVSSVpFUl9ESVNDQVJEKTsK
KyAgICB9CisKKyAgICB+U2NvcGVkRGlzYWJsZVJhc3Rlcml6ZXJEaXNjYXJkKCkKKyAgICB7Cisg
ICAgICAgIGlmIChtX3dhc0VuYWJsZWQpCisgICAgICAgICAgICBtX2NvbnRleHQtPmVuYWJsZShH
cmFwaGljc0NvbnRleHRHTDo6UkFTVEVSSVpFUl9ESVNDQVJEKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogbV9jb250ZXh0OworICAgIGJvb2wgbV93
YXNFbmFibGVkOworfTsKKwogI2RlZmluZSBBRERfVkFMVUVTX1RPX1NFVChzZXQsIGFycikgXAog
ICAgIHNldC5hZGQoYXJyLCBhcnIgKyBXVEZfQVJSQVlfTEVOR1RIKGFycikpCiAKQEAgLTg2NSw3
ICs4ODUsOSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxpemVOZXdD
b250ZXh0KCkKICAgICBtX3N0ZW5jaWxGdW5jTWFza0JhY2sgPSAweEZGRkZGRkZGOwogICAgIG1f
bGF5ZXJDbGVhcmVkID0gZmFsc2U7CiAgICAgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQg
PSBtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGU7Ci0gICAgCisKKyAgICBtX3Jhc3Rlcml6ZXJE
aXNjYXJkRW5hYmxlZCA9IGZhbHNlOworCiAgICAgbV9jbGVhckNvbG9yWzBdID0gbV9jbGVhckNv
bG9yWzFdID0gbV9jbGVhckNvbG9yWzJdID0gbV9jbGVhckNvbG9yWzNdID0gMDsKICAgICBtX3Nj
aXNzb3JFbmFibGVkID0gZmFsc2U7CiAgICAgbV9jbGVhckRlcHRoID0gMTsKQEAgLTEwOTcsNyAr
MTExOSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWFya0NvbnRleHRDaGFu
Z2VkQW5kTm90aWZ5Q2FudmFzT2JzZXJ2ZXIoKQogICAgIGNhbnZhcy0+bm90aWZ5T2JzZXJ2ZXJz
Q2FudmFzQ2hhbmdlZChGbG9hdFJlY3QoRmxvYXRQb2ludCgwLCAwKSwgY2xhbXBlZENhbnZhc1Np
emUoKSkpOwogfQogCi1ib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNsZWFySWZDb21w
b3NpdGVkKEdDR0xiaXRmaWVsZCBtYXNrKQorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpjbGVhcklmQ29tcG9zaXRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpDbGVhckNhbGxl
ciBjYWxsZXIsIEdDR0xiaXRmaWVsZCBtYXNrKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTExMDcsNyArMTEyOSw3IEBAIGJv
b2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2xlYXJJZkNvbXBvc2l0ZWQoR0NHTGJpdGZp
ZWxkIG1hc2spCiAKICAgICBHQ0dMYml0ZmllbGQgYnVmZmVyc05lZWRpbmdDbGVhcmluZyA9IG1f
Y29udGV4dC0+Z2V0QnVmZmVyc1RvQXV0b0NsZWFyKCk7CiAKLSAgICBpZiAoIWJ1ZmZlcnNOZWVk
aW5nQ2xlYXJpbmcgfHwgKG1hc2sgJiYgbV9mcmFtZWJ1ZmZlckJpbmRpbmcpKQorICAgIGlmICgh
YnVmZmVyc05lZWRpbmdDbGVhcmluZyB8fCAobWFzayAmJiBtX2ZyYW1lYnVmZmVyQmluZGluZykg
fHwgKG1fcmFzdGVyaXplckRpc2NhcmRFbmFibGVkICYmIGNhbGxlciA9PSBDbGVhckNhbGxlckRy
YXdPckNsZWFyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gVXNlIHRoZSB1bmRl
cmx5aW5nIEdyYXBoaWNzQ29udGV4dDNEJ3MgYXR0cmlidXRlcyB0byB0YWtlIGludG8KQEAgLTEx
NDUsMTAgKzExNjcsMTMgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjbGVhcklm
Q29tcG9zaXRlZChHQ0dMYml0ZmllbGQgbWFzaykKICAgICBHQ0dMZW51bSBiaW5kaW5nUG9pbnQg
PSBpc1dlYkdMMigpID8gR3JhcGhpY3NDb250ZXh0R0w6OkRSQVdfRlJBTUVCVUZGRVIgOiBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVI7CiAgICAgaWYgKG1fZnJhbWVidWZmZXJCaW5kaW5n
KQogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihiaW5kaW5nUG9pbnQsIDApOwot
ICAgIC8vIElmIHRoZSBXZWJHTCAyLjAgY2xlYXJCdWZmZXIgQVBJcyBhbHJlYWR5IGhhdmUgYmVl
biB1c2VkIHRvCi0gICAgLy8gc2VsZWN0aXZlbHkgY2xlYXIgc29tZSBvZiB0aGUgYnVmZmVycywg
ZG9uJ3QgZGVzdHJveSB0aG9zZQotICAgIC8vIHJlc3VsdHMuCi0gICAgbV9jb250ZXh0LT5jbGVh
cihjbGVhck1hc2sgJiBidWZmZXJzTmVlZGluZ0NsZWFyaW5nKTsKKyAgICB7CisgICAgICAgIFNj
b3BlZERpc2FibGVSYXN0ZXJpemVyRGlzY2FyZCBkaXNhYmxlKHRoaXMsIG1fcmFzdGVyaXplckRp
c2NhcmRFbmFibGVkKTsKKyAgICAgICAgLy8gSWYgdGhlIFdlYkdMIDIuMCBjbGVhckJ1ZmZlciBB
UElzIGFscmVhZHkgaGF2ZSBiZWVuIHVzZWQgdG8KKyAgICAgICAgLy8gc2VsZWN0aXZlbHkgY2xl
YXIgc29tZSBvZiB0aGUgYnVmZmVycywgZG9uJ3QgZGVzdHJveSB0aG9zZQorICAgICAgICAvLyBy
ZXN1bHRzLgorICAgICAgICBtX2NvbnRleHQtPmNsZWFyKGNsZWFyTWFzayAmIGJ1ZmZlcnNOZWVk
aW5nQ2xlYXJpbmcpOworICAgIH0KICAgICBtX2NvbnRleHQtPnNldEJ1ZmZlcnNUb0F1dG9DbGVh
cigwKTsKIAogICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ2xlYXIoKTsKQEAgLTEyMDAsNyArMTIyNSw3
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdSZXN1bHRz
VG9DYW52YXMoKQogICAgICAgICAgICAgY2FudmFzLT5jbGVhclByZXNlbnRhdGlvbkNvcHkoKTsK
ICAgICB9CiAKLSAgICBjbGVhcklmQ29tcG9zaXRlZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVk
KENsZWFyQ2FsbGVyT3RoZXIpOwogCiAgICAgaWYgKCFtX21hcmtlZENhbnZhc0RpcnR5ICYmICFt
X2xheWVyQ2xlYXJlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTIxNyw3ICsxMjQyLDcgQEAgUmVm
UHRyPEltYWdlRGF0YT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9JbWFnZURhdGEoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGNsZWFySWZDb21wb3NpdGVkKCk7CisgICAg
Y2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJPdGhlcik7CiAgICAgcmV0dXJuIG1fY29udGV4
dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9JbWFnZURhdGEoKTsKIH0KIApAQCAtMTY4MCw3ICsx
NzA1LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjbGVhcihHQ0dMYml0Zmll
bGQgbWFzaykKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgotICAgIGlmICghY2xlYXJJ
ZkNvbXBvc2l0ZWQobWFzaykpCisgICAgaWYgKCFjbGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxl
ckRyYXdPckNsZWFyLCBtYXNrKSkKICAgICAgICAgbV9jb250ZXh0LT5jbGVhcihtYXNrKTsKICAg
ICBtYXJrQ29udGV4dENoYW5nZWRBbmROb3RpZnlDYW52YXNPYnNlcnZlcigpOwogfQpAQCAtMTg1
Nyw3ICsxODgyLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjb3B5VGV4U3Vi
SW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwKICNpZiBVU0UoQU5HTEUpCiAg
ICAgaWYgKCF2YWxpZGF0ZVRleHR1cmUyREJpbmRpbmcoImNvcHlUZXhTdWJJbWFnZTJEIiwgdGFy
Z2V0KSkKICAgICAgICAgcmV0dXJuOwotICAgIGNsZWFySWZDb21wb3NpdGVkKCk7CisgICAgY2xl
YXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJPdGhlcik7CiAgICAgbV9jb250ZXh0LT5jb3B5VGV4
U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB4LCB5LCB3aWR0aCwg
aGVpZ2h0KTsKICNlbHNlCiAgICAgaWYgKCF2YWxpZGF0ZVRleEZ1bmNMZXZlbCgiY29weVRleFN1
YkltYWdlMkQiLCB0YXJnZXQsIGxldmVsKSkKQEAgLTE4ODgsNyArMTkxMyw3IEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y29weVRleFN1YkltYWdlMkQoR0NHTGVudW0gdGFyZ2V0
LCBHQ0dMaW50IGxldmVsCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dEdMOjpJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiwgImNvcHlUZXhTdWJJbWFnZTJEIiwg
cmVhc29uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjbGVhcklmQ29tcG9zaXRlZCgp
OworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIpOwogCiAgICAgR0NHTGlu
dCBjbGlwcGVkWCwgY2xpcHBlZFk7CiAgICAgR0NHTHNpemVpIGNsaXBwZWRXaWR0aCwgY2xpcHBl
ZEhlaWdodDsKQEAgLTIxNjksNiArMjE5NCw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6ZGlzYWJsZShHQ0dMZW51bSBjYXApCiAgICAgfQogICAgIGlmIChjYXAgPT0gR3JhcGhp
Y3NDb250ZXh0R0w6OlNDSVNTT1JfVEVTVCkKICAgICAgICAgbV9zY2lzc29yRW5hYmxlZCA9IGZh
bHNlOworICAgIGlmIChjYXAgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlJBU1RFUklaRVJfRElTQ0FS
RCkKKyAgICAgICAgbV9yYXN0ZXJpemVyRGlzY2FyZEVuYWJsZWQgPSBmYWxzZTsKICAgICBtX2Nv
bnRleHQtPmRpc2FibGUoY2FwKTsKIH0KIApAQCAtMjUzNiw3ICsyNTYzLDcgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3QXJyYXlzKEdDR0xlbnVtIG1vZGUsIEdDR0xpbnQg
Zmlyc3QsIEdDR0xzaXoKICAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAmJiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoKnRoaXMsICptX2N1cnJlbnRQcm9n
cmFtKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKKyAgICBj
bGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxlckRyYXdPckNsZWFyKTsKIAogI2lmICFVU0UoQU5H
TEUpCiAgICAgYm9vbCB2ZXJ0ZXhBdHRyaWIwU2ltdWxhdGVkID0gZmFsc2U7CkBAIC0yNTk5LDcg
KzI2MjYsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50cyhH
Q0dMZW51bSBtb2RlLCBHQ0dMc2l6ZWkgY291bnQsIEdDRwogICAgIGlmIChtX2N1cnJlbnRQcm9n
cmFtICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZCgq
dGhpcywgKm1fY3VycmVudFByb2dyYW0pKQogICAgICAgICByZXR1cm47CiAKLSAgICBjbGVhcklm
Q29tcG9zaXRlZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyRHJhd09yQ2xl
YXIpOwogCiAjaWYgIVVTRShBTkdMRSkKICAgICBib29sIHZlcnRleEF0dHJpYjBTaW11bGF0ZWQg
PSBmYWxzZTsKQEAgLTI2NTAsNiArMjY3Nyw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6ZW5hYmxlKEdDR0xlbnVtIGNhcCkKICAgICB9CiAgICAgaWYgKGNhcCA9PSBHcmFwaGlj
c0NvbnRleHRHTDo6U0NJU1NPUl9URVNUKQogICAgICAgICBtX3NjaXNzb3JFbmFibGVkID0gdHJ1
ZTsKKyAgICBpZiAoY2FwID09IEdyYXBoaWNzQ29udGV4dEdMOjpSQVNURVJJWkVSX0RJU0NBUkQp
CisgICAgICAgIG1fcmFzdGVyaXplckRpc2NhcmRFbmFibGVkID0gdHJ1ZTsKICAgICBtX2NvbnRl
eHQtPmVuYWJsZShjYXApOwogfQogCkBAIC00MzM0LDcgKzQzNjMsNyBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnJlYWRQaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xz
aXplaSB3aWR0aAogICAgIH0KICNlbmRpZiAvLyBVU0UoQU5HTEUpCiAKLSAgICBjbGVhcklmQ29t
cG9zaXRlZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIpOwogICAg
IHZvaWQqIGRhdGEgPSBwaXhlbHMuYmFzZUFkZHJlc3MoKTsKIAogI2lmIFVTRShBTkdMRSkKQEAg
LTU1OTMsNyArNTYyMiw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y29weVRl
eEltYWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHCiAgICAgaWYgKCF0ZXgp
CiAgICAgICAgIHJldHVybjsKICNpZiBVU0UoQU5HTEUpCi0gICAgY2xlYXJJZkNvbXBvc2l0ZWQo
KTsKKyAgICBjbGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxlck90aGVyKTsKICAgICBtX2NvbnRl
eHQtPmNvcHlUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB4LCB5LCB3
aWR0aCwgaGVpZ2h0LCBib3JkZXIpOwogI2Vsc2UKICAgICBpZiAoIWlzVGV4SW50ZXJuYWxGb3Jt
YXRDb2xvckJ1ZmZlckNvbWJpbmF0aW9uVmFsaWQoaW50ZXJuYWxGb3JtYXQsIGdldEJvdW5kUmVh
ZEZyYW1lYnVmZmVyQ29sb3JGb3JtYXQoKSkpIHsKQEAgLTU2MDksNyArNTYzOCw3IEBAIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y29weVRleEltYWdlMkQoR0NHTGVudW0gdGFyZ2V0
LCBHQ0dMaW50IGxldmVsLCBHCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dEdMOjpJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiwgImNvcHlUZXhJbWFnZTJEIiwg
cmVhc29uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjbGVhcklmQ29tcG9zaXRlZCgp
OworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIpOwogCiAgICAgR0NHTGlu
dCBjbGlwcGVkWCwgY2xpcHBlZFk7CiAgICAgR0NHTHNpemVpIGNsaXBwZWRXaWR0aCwgY2xpcHBl
ZEhlaWdodDsKQEAgLTc2NzQsNyArNzcwMyw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6ZHJhd0FycmF5c0luc3RhbmNlZChHQ0dMZW51bSBtb2RlLCBHQ0dMaW50IGZpcnN0CiAg
ICAgICAgIHJldHVybjsKICNlbmRpZiAvLyAhVVNFKEFOR0xFKQogCi0gICAgY2xlYXJJZkNvbXBv
c2l0ZWQoKTsKKyAgICBjbGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxlckRyYXdPckNsZWFyKTsK
IAogI2lmICFVU0UoQU5HTEUpCiAgICAgYm9vbCB2ZXJ0ZXhBdHRyaWIwU2ltdWxhdGVkID0gZmFs
c2U7CkBAIC03NzIwLDcgKzc3NDksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRyYXdFbGVtZW50c0luc3RhbmNlZChHQ0dMZW51bSBtb2RlLCBHQ0dMc2l6ZWkgYwogICAgICAg
ICByZXR1cm47CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKIAotICAgIGNsZWFySWZDb21wb3NpdGVk
KCk7CisgICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJEcmF3T3JDbGVhcik7CiAKICNp
ZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgdmVydGV4QXR0cmliMFNpbXVsYXRlZCA9IGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oCmluZGV4IGE3MWQwMzZhYTBkZWE1MmI0NTc5MDlmYmZmZGMzYWRmODBmNTEwY2Mu
LjNkNjU3ZDljODcxZWRkOTI1MzkwNTJiZjExNzE3MzUxMzU0OTFhNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgK
QEAgLTY0Nyw2ICs2NDcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgR0NHTGludCBtX3N0ZW5jaWxGdW5j
UmVmLCBtX3N0ZW5jaWxGdW5jUmVmQmFjazsgLy8gTm90ZSB0aGF0IHRoZXNlIGFyZSB0aGUgdXNl
ciBzcGVjaWZpZWQgdmFsdWVzLCBub3QgdGhlIGludGVybmFsIGNsYW1wZWQgdmFsdWUuCiAgICAg
R0NHTHVpbnQgbV9zdGVuY2lsRnVuY01hc2ssIG1fc3RlbmNpbEZ1bmNNYXNrQmFjazsKIAorICAg
IGJvb2wgbV9yYXN0ZXJpemVyRGlzY2FyZEVuYWJsZWQ7CisKICAgICBib29sIG1faXNHTEVTMkNv
bXBsaWFudDsKICAgICBib29sIG1faXNHTEVTMk5QT1RTdHJpY3Q7CiAgICAgYm9vbCBtX2lzRGVw
dGhTdGVuY2lsU3VwcG9ydGVkOwpAQCAtNzE4LDEwICs3MjAsMTcgQEAgcHJvdGVjdGVkOgogICAg
IFJlZlB0cjxGbG9hdDMyQXJyYXk+IGdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihHQ0dMZW51
bSk7CiAgICAgUmVmUHRyPEludDMyQXJyYXk+IGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0NH
TGVudW0pOwogCisgICAgZW51bSBDbGVhckNhbGxlciB7CisgICAgICAgIC8vIENhbGxlciBvZiBD
bGVhcklmQ29tcG9zaXRlZCBpcyBhIHVzZXItbGV2ZWwgZHJhdyBvciBjbGVhciBjYWxsLgorICAg
ICAgICBDbGVhckNhbGxlckRyYXdPckNsZWFyLAorICAgICAgICAvLyBDYWxsZXIgb2YgQ2xlYXJJ
ZkNvbXBvc2l0ZWQgaXMgYW55dGhpbmcgZWxzZSwgaW5jbHVkaW5nCisgICAgICAgIC8vIHJlYWRi
YWNrcyBvciBjb3BpZXMuCisgICAgICAgIENsZWFyQ2FsbGVyT3RoZXIsCisgICAgfTsKICAgICAv
LyBDbGVhciB0aGUgYmFja2J1ZmZlciBpZiBpdCB3YXMgY29tcG9zaXRlZCBzaW5jZSB0aGUgbGFz
dCBvcGVyYXRpb24uCiAgICAgLy8gY2xlYXJNYXNrIGlzIHNldCB0byB0aGUgYml0ZmllbGQgb2Yg
YW55IGNsZWFyIHRoYXQgd291bGQgaGFwcGVuIGFueXdheSBhdCB0aGlzIHRpbWUKICAgICAvLyBh
bmQgdGhlIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBpZiB0aGF0IGNsZWFyIGlzIG5vdyB1bm5lY2Vz
c2FyeS4KLSAgICBib29sIGNsZWFySWZDb21wb3NpdGVkKEdDR0xiaXRmaWVsZCBjbGVhck1hc2sg
PSAwKTsKKyAgICBib29sIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyLCBHQ0dMYml0Zmll
bGQgY2xlYXJNYXNrID0gMCk7CiAKICAgICAvLyBIZWxwZXIgdG8gcmVzdG9yZSBzdGF0ZSB0aGF0
IGNsZWFyaW5nIHRoZSBmcmFtZWJ1ZmZlciBtYXkgZGVzdHJveS4KICAgICB2b2lkIHJlc3RvcmVT
dGF0ZUFmdGVyQ2xlYXIoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414815</attachid>
            <date>2020-11-23 15:50:07 -0800</date>
            <delta_ts>2020-11-30 11:21:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219061-20201123155007.patch</filename>
            <type>text/plain</type>
            <size>13305</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIzYWI2YjRlNmM0NDFj
MDYzZWM1Mzg0YzZmOTA5NDdiZDFhNDY5ZC4uNjVjNDY0OTlmNjc1NGE4YjJkMmFmZjVhODkwNmJi
NWNmOTFmYThjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTExLTIzICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtXZWJHTDJdIFJhc3Rl
cml6ZXIgZGlzY2FyZCBpbnRlcmZlcmVzIHdpdGggaW1wbGljaXQgY2xlYXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkwNjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgV2hlbiByYXN0ZXJpemVyIGRpc2Nh
cmQgaXMgZW5hYmxlZCwgdXNlci1sZXZlbCBkcmF3IGNhbGxzIGFuZAorICAgICAgICBjbGVhcnMg
c2tpcCB0aGUgaW1wbGljaXQgY2xlYXIgc2luY2UgdGhleSBoYXZlIG5vIGVmZmVjdC4KKyAgICAg
ICAgUmVhZGJhY2tzIGFuZCBjb3BpZXMgc3RpbGwgcGVyZm9ybSB0aGUgaW1wbGljaXQgY2xlYXIu
CisKKyAgICAgICAgQSBuZXcgV2ViR0wgY29uZm9ybWFuY2UgdGVzdCBoYXMgYmVlbiBhZGRlZCBm
b3IgdGhpcyBpbgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1dlYkdM
L3B1bGwvMzE4MyB3aGljaCBwYXNzZXMgd2l0aAorICAgICAgICB0aGlzIGZpeC4gV2ViS2l0J3Mg
VGVzdFJ1bm5lciBkb2Vzbid0IHJ1biB0aGUgY29tcG9zaXRlIHBoYXNlIGFzCisgICAgICAgIHRo
ZSBicm93c2VyIG9yIE1pbmlCcm93c2VyIGRvLCBzbyB3b3VsZG4ndCBwYXNzIHRoaXMgdGVzdCBh
cworICAgICAgICBpbnRlZ3JhdGVkIGFzIGEgbGF5b3V0IHRlc3QuIFBlciBkaXNjdXNzaW9uIHdp
dGggZGlubyBhbmQKKyAgICAgICAga2tpbm51bmVuIG9uIFNsYWNrLCB3aWxsIGFkZHJlc3MgdGhp
cyBpbiBmb2xsb3ctb24gd29yay4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Y29weVRleFN1YkltYWdlM0QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6cmVhZFBpeGVscyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWREaXNhYmxlUmFzdGVy
aXplckRpc2NhcmQ6OlNjb3BlZERpc2FibGVSYXN0ZXJpemVyRGlzY2FyZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY29wZWREaXNhYmxlUmFzdGVyaXplckRpc2NhcmQ6On5TY29wZWREaXNhYmxlUmFz
dGVyaXplckRpc2NhcmQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6aW5pdGlhbGl6ZU5ld0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y2xlYXJJZkNvbXBvc2l0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRSZW5k
ZXJpbmdSZXN1bHRzVG9JbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Y29weVRleFN1YkltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3QXJyYXlzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVhZFBpeGVscyk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjb3B5VGV4SW1hZ2UyRCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3QXJyYXlzSW5zdGFuY2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50c0lu
c3RhbmNlZCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oOgorCiAyMDIwLTExLTIyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gQ29udmVydCBzb21lIHJlbWFpbmluZyBJbmxpbmVC
b3ggYWNjZXNzIHRvIHVzZSBpbmxpbmUgaXRlcmF0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNTViYzFmOGRi
MjQ5ZDMzODIyZTc4ODljYTc4M2Y1YmVjMDI1YTI5OS4uZWIzZDMxOTA5NTBhNmZlOWUzOGY5NzEx
NTIzYTBmMTJmYWIxNTJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTEzNDAsNyArMTM0MCw3IEBAIHZvaWQg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29weVRleFN1YkltYWdlM0QoR0NHTGVudW0gdGFyZ2V0
LCBHQ0dMaW50IGxldmVsLCBHCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXZhbGlkYXRlVGV4
dHVyZTNEQmluZGluZygiY29weVRleFN1YkltYWdlM0QiLCB0YXJnZXQpKQogICAgICAgICByZXR1
cm47Ci0gICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKKyAgICBjbGVhcklmQ29tcG9zaXRlZChDbGVh
ckNhbGxlck90aGVyKTsKICAgICBtX2NvbnRleHQtPmNvcHlUZXhTdWJJbWFnZTNEKHRhcmdldCwg
bGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHpvZmZzZXQsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwog
fQogCkBAIC0zNTE1LDcgKzM1MTUsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJl
YWRQaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgRwogICAgIC8v
IHRhaW50IHRoZSBvcmlnaW4gdXNpbmcgdGhlIFdlYkdMIEFQSS4KICAgICBBU1NFUlQoY2FudmFz
QmFzZSgpLm9yaWdpbkNsZWFuKCkpOwogCi0gICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKKyAgICBj
bGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxlck90aGVyKTsKIAogICAgIEdDR0xzaXplaSBsZW5n
dGgsIGNvbHVtbnMsIHJvd3M7CiAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkucmVhZG5Q
aXhlbHNSb2J1c3RBTkdMRSh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIDAsICZs
ZW5ndGgsICZjb2x1bW5zLCAmcm93cywgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ob2Zmc2V0
KSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDE4NWU4YzYyZTZmYmUzMWYzMTM4OGMwYzlm
ODBkODFjZWUyNGEzYjEuLjdjMzUzM2U0MDI3MDg0OWY3YzBiM2FjZTgxNmU4YWNhN2YwNjZjYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC00NjEsNiArNDYxLDI3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2VuYWJsZWQ7CiB9OwogCitjbGFzcyBTY29wZWREaXNhYmxlUmFzdGVyaXplckRpc2NhcmQg
eworcHVibGljOgorICAgIGV4cGxpY2l0IFNjb3BlZERpc2FibGVSYXN0ZXJpemVyRGlzY2FyZChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjb250ZXh0LCBib29sIHdhc0VuYWJsZWQpCisgICAg
ICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgICAgICwgbV93YXNFbmFibGVkKHdhc0VuYWJs
ZWQpCisgICAgeworICAgICAgICBpZiAobV93YXNFbmFibGVkKQorICAgICAgICAgICAgbV9jb250
ZXh0LT5kaXNhYmxlKEdyYXBoaWNzQ29udGV4dEdMOjpSQVNURVJJWkVSX0RJU0NBUkQpOworICAg
IH0KKworICAgIH5TY29wZWREaXNhYmxlUmFzdGVyaXplckRpc2NhcmQoKQorICAgIHsKKyAgICAg
ICAgaWYgKG1fd2FzRW5hYmxlZCkKKyAgICAgICAgICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBo
aWNzQ29udGV4dEdMOjpSQVNURVJJWkVSX0RJU0NBUkQpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBtX2NvbnRleHQ7CisgICAgYm9vbCBtX3dhc0Vu
YWJsZWQ7Cit9OworCiAjZGVmaW5lIEFERF9WQUxVRVNfVE9fU0VUKHNldCwgYXJyKSBcCiAgICAg
c2V0LmFkZChhcnIsIGFyciArIFdURl9BUlJBWV9MRU5HVEgoYXJyKSkKIApAQCAtODY1LDcgKzg4
Niw5IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aW5pdGlhbGl6ZU5ld0NvbnRl
eHQoKQogICAgIG1fc3RlbmNpbEZ1bmNNYXNrQmFjayA9IDB4RkZGRkZGRkY7CiAgICAgbV9sYXll
ckNsZWFyZWQgPSBmYWxzZTsKICAgICBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxsb3dlZCA9IG1h
eEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZTsKLSAgICAKKworICAgIG1fcmFzdGVyaXplckRpc2Nh
cmRFbmFibGVkID0gZmFsc2U7CisKICAgICBtX2NsZWFyQ29sb3JbMF0gPSBtX2NsZWFyQ29sb3Jb
MV0gPSBtX2NsZWFyQ29sb3JbMl0gPSBtX2NsZWFyQ29sb3JbM10gPSAwOwogICAgIG1fc2Npc3Nv
ckVuYWJsZWQgPSBmYWxzZTsKICAgICBtX2NsZWFyRGVwdGggPSAxOwpAQCAtMTA5Nyw3ICsxMTIw
LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXJrQ29udGV4dENoYW5nZWRB
bmROb3RpZnlDYW52YXNPYnNlcnZlcigpCiAgICAgY2FudmFzLT5ub3RpZnlPYnNlcnZlcnNDYW52
YXNDaGFuZ2VkKEZsb2F0UmVjdChGbG9hdFBvaW50KDAsIDApLCBjbGFtcGVkQ2FudmFzU2l6ZSgp
KSk7CiB9CiAKLWJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2xlYXJJZkNvbXBvc2l0
ZWQoR0NHTGJpdGZpZWxkIG1hc2spCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNs
ZWFySWZDb21wb3NpdGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OkNsZWFyQ2FsbGVyIGNh
bGxlciwgR0NHTGJpdGZpZWxkIG1hc2spCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRp
bmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEwNyw3ICsxMTMwLDcgQEAgYm9vbCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjbGVhcklmQ29tcG9zaXRlZChHQ0dMYml0ZmllbGQg
bWFzaykKIAogICAgIEdDR0xiaXRmaWVsZCBidWZmZXJzTmVlZGluZ0NsZWFyaW5nID0gbV9jb250
ZXh0LT5nZXRCdWZmZXJzVG9BdXRvQ2xlYXIoKTsKIAotICAgIGlmICghYnVmZmVyc05lZWRpbmdD
bGVhcmluZyB8fCAobWFzayAmJiBtX2ZyYW1lYnVmZmVyQmluZGluZykpCisgICAgaWYgKCFidWZm
ZXJzTmVlZGluZ0NsZWFyaW5nIHx8IChtYXNrICYmIG1fZnJhbWVidWZmZXJCaW5kaW5nKSB8fCAo
bV9yYXN0ZXJpemVyRGlzY2FyZEVuYWJsZWQgJiYgY2FsbGVyID09IENsZWFyQ2FsbGVyRHJhd09y
Q2xlYXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBVc2UgdGhlIHVuZGVybHlp
bmcgR3JhcGhpY3NDb250ZXh0M0QncyBhdHRyaWJ1dGVzIHRvIHRha2UgaW50bwpAQCAtMTE0NSwx
MCArMTE2OCwxMyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNsZWFySWZDb21w
b3NpdGVkKEdDR0xiaXRmaWVsZCBtYXNrKQogICAgIEdDR0xlbnVtIGJpbmRpbmdQb2ludCA9IGlz
V2ViR0wyKCkgPyBHcmFwaGljc0NvbnRleHRHTDo6RFJBV19GUkFNRUJVRkZFUiA6IEdyYXBoaWNz
Q29udGV4dEdMOjpGUkFNRUJVRkZFUjsKICAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcpCiAg
ICAgICAgIG1fY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKGJpbmRpbmdQb2ludCwgMCk7Ci0gICAg
Ly8gSWYgdGhlIFdlYkdMIDIuMCBjbGVhckJ1ZmZlciBBUElzIGFscmVhZHkgaGF2ZSBiZWVuIHVz
ZWQgdG8KLSAgICAvLyBzZWxlY3RpdmVseSBjbGVhciBzb21lIG9mIHRoZSBidWZmZXJzLCBkb24n
dCBkZXN0cm95IHRob3NlCi0gICAgLy8gcmVzdWx0cy4KLSAgICBtX2NvbnRleHQtPmNsZWFyKGNs
ZWFyTWFzayAmIGJ1ZmZlcnNOZWVkaW5nQ2xlYXJpbmcpOworICAgIHsKKyAgICAgICAgU2NvcGVk
RGlzYWJsZVJhc3Rlcml6ZXJEaXNjYXJkIGRpc2FibGUodGhpcywgbV9yYXN0ZXJpemVyRGlzY2Fy
ZEVuYWJsZWQpOworICAgICAgICAvLyBJZiB0aGUgV2ViR0wgMi4wIGNsZWFyQnVmZmVyIEFQSXMg
YWxyZWFkeSBoYXZlIGJlZW4gdXNlZCB0bworICAgICAgICAvLyBzZWxlY3RpdmVseSBjbGVhciBz
b21lIG9mIHRoZSBidWZmZXJzLCBkb24ndCBkZXN0cm95IHRob3NlCisgICAgICAgIC8vIHJlc3Vs
dHMuCisgICAgICAgIG1fY29udGV4dC0+Y2xlYXIoY2xlYXJNYXNrICYgYnVmZmVyc05lZWRpbmdD
bGVhcmluZyk7CisgICAgfQogICAgIG1fY29udGV4dC0+c2V0QnVmZmVyc1RvQXV0b0NsZWFyKDAp
OwogCiAgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDbGVhcigpOwpAQCAtMTIwMCw3ICsxMjI2LDcgQEAg
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0Nh
bnZhcygpCiAgICAgICAgICAgICBjYW52YXMtPmNsZWFyUHJlc2VudGF0aW9uQ29weSgpOwogICAg
IH0KIAotICAgIGNsZWFySWZDb21wb3NpdGVkKCk7CisgICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xl
YXJDYWxsZXJPdGhlcik7CiAKICAgICBpZiAoIW1fbWFya2VkQ2FudmFzRGlydHkgJiYgIW1fbGF5
ZXJDbGVhcmVkKQogICAgICAgICByZXR1cm47CkBAIC0xMjE3LDcgKzEyNDMsNyBAQCBSZWZQdHI8
SW1hZ2VEYXRhPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwYWludFJlbmRlcmluZ1Jlc3Vs
dHNUb0ltYWdlRGF0YSgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKKyAgICBjbGVh
cklmQ29tcG9zaXRlZChDbGVhckNhbGxlck90aGVyKTsKICAgICByZXR1cm4gbV9jb250ZXh0LT5w
YWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpOwogfQogCkBAIC0xNjgwLDcgKzE3MDYs
NyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNsZWFyKEdDR0xiaXRmaWVsZCBt
YXNrKQogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCi0gICAgaWYgKCFjbGVhcklmQ29t
cG9zaXRlZChtYXNrKSkKKyAgICBpZiAoIWNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyRHJh
d09yQ2xlYXIsIG1hc2spKQogICAgICAgICBtX2NvbnRleHQtPmNsZWFyKG1hc2spOwogICAgIG1h
cmtDb250ZXh0Q2hhbmdlZEFuZE5vdGlmeUNhbnZhc09ic2VydmVyKCk7CiB9CkBAIC0xODU3LDcg
KzE4ODMsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNvcHlUZXhTdWJJbWFn
ZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbAogI2lmIFVTRShBTkdMRSkKICAgICBp
ZiAoIXZhbGlkYXRlVGV4dHVyZTJEQmluZGluZygiY29weVRleFN1YkltYWdlMkQiLCB0YXJnZXQp
KQogICAgICAgICByZXR1cm47Ci0gICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKKyAgICBjbGVhcklm
Q29tcG9zaXRlZChDbGVhckNhbGxlck90aGVyKTsKICAgICBtX2NvbnRleHQtPmNvcHlUZXhTdWJJ
bWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHgsIHksIHdpZHRoLCBoZWln
aHQpOwogI2Vsc2UKICAgICBpZiAoIXZhbGlkYXRlVGV4RnVuY0xldmVsKCJjb3B5VGV4U3ViSW1h
Z2UyRCIsIHRhcmdldCwgbGV2ZWwpKQpAQCAtMTg4OCw3ICsxOTE0LDcgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjb3B5VGV4U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdD
R0xpbnQgbGV2ZWwKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6
OklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiY29weVRleFN1YkltYWdlMkQiLCByZWFz
b24pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNsZWFySWZDb21wb3NpdGVkKCk7Cisg
ICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJPdGhlcik7CiAKICAgICBHQ0dMaW50IGNs
aXBwZWRYLCBjbGlwcGVkWTsKICAgICBHQ0dMc2l6ZWkgY2xpcHBlZFdpZHRoLCBjbGlwcGVkSGVp
Z2h0OwpAQCAtMjE2OSw2ICsyMTk1LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpkaXNhYmxlKEdDR0xlbnVtIGNhcCkKICAgICB9CiAgICAgaWYgKGNhcCA9PSBHcmFwaGljc0Nv
bnRleHRHTDo6U0NJU1NPUl9URVNUKQogICAgICAgICBtX3NjaXNzb3JFbmFibGVkID0gZmFsc2U7
CisgICAgaWYgKGNhcCA9PSBHcmFwaGljc0NvbnRleHRHTDo6UkFTVEVSSVpFUl9ESVNDQVJEKQor
ICAgICAgICBtX3Jhc3Rlcml6ZXJEaXNjYXJkRW5hYmxlZCA9IGZhbHNlOwogICAgIG1fY29udGV4
dC0+ZGlzYWJsZShjYXApOwogfQogCkBAIC0yNTM2LDcgKzI1NjQsNyBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJheXMoR0NHTGVudW0gbW9kZSwgR0NHTGludCBmaXJz
dCwgR0NHTHNpegogICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0p
KQogICAgICAgICByZXR1cm47CiAKLSAgICBjbGVhcklmQ29tcG9zaXRlZCgpOworICAgIGNsZWFy
SWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyRHJhd09yQ2xlYXIpOwogCiAjaWYgIVVTRShBTkdMRSkK
ICAgICBib29sIHZlcnRleEF0dHJpYjBTaW11bGF0ZWQgPSBmYWxzZTsKQEAgLTI1OTksNyArMjYy
Nyw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0VsZW1lbnRzKEdDR0xl
bnVtIG1vZGUsIEdDR0xzaXplaSBjb3VudCwgR0NHCiAgICAgaWYgKG1fY3VycmVudFByb2dyYW0g
JiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbURpc2FibGVkKCp0aGlz
LCAqbV9jdXJyZW50UHJvZ3JhbSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNsZWFySWZDb21w
b3NpdGVkKCk7CisgICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJEcmF3T3JDbGVhcik7
CiAKICNpZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgdmVydGV4QXR0cmliMFNpbXVsYXRlZCA9IGZh
bHNlOwpAQCAtMjY1MCw2ICsyNjc4LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjplbmFibGUoR0NHTGVudW0gY2FwKQogICAgIH0KICAgICBpZiAoY2FwID09IEdyYXBoaWNzQ29u
dGV4dEdMOjpTQ0lTU09SX1RFU1QpCiAgICAgICAgIG1fc2Npc3NvckVuYWJsZWQgPSB0cnVlOwor
ICAgIGlmIChjYXAgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlJBU1RFUklaRVJfRElTQ0FSRCkKKyAg
ICAgICAgbV9yYXN0ZXJpemVyRGlzY2FyZEVuYWJsZWQgPSB0cnVlOwogICAgIG1fY29udGV4dC0+
ZW5hYmxlKGNhcCk7CiB9CiAKQEAgLTQzMzQsNyArNDM2NCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6cmVhZFBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVp
IHdpZHRoCiAgICAgfQogI2VuZGlmIC8vIFVTRShBTkdMRSkKIAotICAgIGNsZWFySWZDb21wb3Np
dGVkKCk7CisgICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJPdGhlcik7CiAgICAgdm9p
ZCogZGF0YSA9IHBpeGVscy5iYXNlQWRkcmVzcygpOwogCiAjaWYgVVNFKEFOR0xFKQpAQCAtNTU5
Myw3ICs1NjIzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjb3B5VGV4SW1h
Z2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEcKICAgICBpZiAoIXRleCkKICAg
ICAgICAgcmV0dXJuOwogI2lmIFVTRShBTkdMRSkKLSAgICBjbGVhcklmQ29tcG9zaXRlZCgpOwor
ICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyT3RoZXIpOwogICAgIG1fY29udGV4dC0+
Y29weVRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHgsIHksIHdpZHRo
LCBoZWlnaHQsIGJvcmRlcik7CiAjZWxzZQogICAgIGlmICghaXNUZXhJbnRlcm5hbEZvcm1hdENv
bG9yQnVmZmVyQ29tYmluYXRpb25WYWxpZChpbnRlcm5hbEZvcm1hdCwgZ2V0Qm91bmRSZWFkRnJh
bWVidWZmZXJDb2xvckZvcm1hdCgpKSkgewpAQCAtNTYwOSw3ICs1NjM5LDcgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjb3B5VGV4SW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdD
R0xpbnQgbGV2ZWwsIEcKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
R0w6OklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiY29weVRleEltYWdlMkQiLCByZWFz
b24pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNsZWFySWZDb21wb3NpdGVkKCk7Cisg
ICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJPdGhlcik7CiAKICAgICBHQ0dMaW50IGNs
aXBwZWRYLCBjbGlwcGVkWTsKICAgICBHQ0dMc2l6ZWkgY2xpcHBlZFdpZHRoLCBjbGlwcGVkSGVp
Z2h0OwpAQCAtNzY3NCw3ICs3NzA0LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpkcmF3QXJyYXlzSW5zdGFuY2VkKEdDR0xlbnVtIG1vZGUsIEdDR0xpbnQgZmlyc3QKICAgICAg
ICAgcmV0dXJuOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCiAKLSAgICBjbGVhcklmQ29tcG9zaXRl
ZCgpOworICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyRHJhd09yQ2xlYXIpOwogCiAj
aWYgIVVTRShBTkdMRSkKICAgICBib29sIHZlcnRleEF0dHJpYjBTaW11bGF0ZWQgPSBmYWxzZTsK
QEAgLTc3MjAsNyArNzc1MCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJh
d0VsZW1lbnRzSW5zdGFuY2VkKEdDR0xlbnVtIG1vZGUsIEdDR0xzaXplaSBjCiAgICAgICAgIHJl
dHVybjsKICNlbmRpZiAvLyAhVVNFKEFOR0xFKQogCi0gICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsK
KyAgICBjbGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxlckRyYXdPckNsZWFyKTsKIAogI2lmICFV
U0UoQU5HTEUpCiAgICAgYm9vbCB2ZXJ0ZXhBdHRyaWIwU2ltdWxhdGVkID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmgKaW5kZXggYTcxZDAzNmFhMGRlYTUyYjQ1NzkwOWZiZmZkYzNhZGY4MGY1MTBjYy4uNTkw
MGI4ZGU2MDNkNzhiMmY3M2FhNWQ1ZjkwY2U4YTY5NWE2ZDNmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAt
NjQ3LDYgKzY0Nyw4IEBAIHByb3RlY3RlZDoKICAgICBHQ0dMaW50IG1fc3RlbmNpbEZ1bmNSZWYs
IG1fc3RlbmNpbEZ1bmNSZWZCYWNrOyAvLyBOb3RlIHRoYXQgdGhlc2UgYXJlIHRoZSB1c2VyIHNw
ZWNpZmllZCB2YWx1ZXMsIG5vdCB0aGUgaW50ZXJuYWwgY2xhbXBlZCB2YWx1ZS4KICAgICBHQ0dM
dWludCBtX3N0ZW5jaWxGdW5jTWFzaywgbV9zdGVuY2lsRnVuY01hc2tCYWNrOwogCisgICAgYm9v
bCBtX3Jhc3Rlcml6ZXJEaXNjYXJkRW5hYmxlZCB7IGZhbHNlIH07CisKICAgICBib29sIG1faXNH
TEVTMkNvbXBsaWFudDsKICAgICBib29sIG1faXNHTEVTMk5QT1RTdHJpY3Q7CiAgICAgYm9vbCBt
X2lzRGVwdGhTdGVuY2lsU3VwcG9ydGVkOwpAQCAtNzE4LDEwICs3MjAsMTcgQEAgcHJvdGVjdGVk
OgogICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihH
Q0dMZW51bSk7CiAgICAgUmVmUHRyPEludDMyQXJyYXk+IGdldFdlYkdMSW50QXJyYXlQYXJhbWV0
ZXIoR0NHTGVudW0pOwogCisgICAgZW51bSBDbGVhckNhbGxlciB7CisgICAgICAgIC8vIENhbGxl
ciBvZiBDbGVhcklmQ29tcG9zaXRlZCBpcyBhIHVzZXItbGV2ZWwgZHJhdyBvciBjbGVhciBjYWxs
LgorICAgICAgICBDbGVhckNhbGxlckRyYXdPckNsZWFyLAorICAgICAgICAvLyBDYWxsZXIgb2Yg
Q2xlYXJJZkNvbXBvc2l0ZWQgaXMgYW55dGhpbmcgZWxzZSwgaW5jbHVkaW5nCisgICAgICAgIC8v
IHJlYWRiYWNrcyBvciBjb3BpZXMuCisgICAgICAgIENsZWFyQ2FsbGVyT3RoZXIsCisgICAgfTsK
ICAgICAvLyBDbGVhciB0aGUgYmFja2J1ZmZlciBpZiBpdCB3YXMgY29tcG9zaXRlZCBzaW5jZSB0
aGUgbGFzdCBvcGVyYXRpb24uCiAgICAgLy8gY2xlYXJNYXNrIGlzIHNldCB0byB0aGUgYml0Zmll
bGQgb2YgYW55IGNsZWFyIHRoYXQgd291bGQgaGFwcGVuIGFueXdheSBhdCB0aGlzIHRpbWUKICAg
ICAvLyBhbmQgdGhlIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBpZiB0aGF0IGNsZWFyIGlzIG5vdyB1
bm5lY2Vzc2FyeS4KLSAgICBib29sIGNsZWFySWZDb21wb3NpdGVkKEdDR0xiaXRmaWVsZCBjbGVh
ck1hc2sgPSAwKTsKKyAgICBib29sIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyLCBHQ0dM
Yml0ZmllbGQgY2xlYXJNYXNrID0gMCk7CiAKICAgICAvLyBIZWxwZXIgdG8gcmVzdG9yZSBzdGF0
ZSB0aGF0IGNsZWFyaW5nIHRoZSBmcmFtZWJ1ZmZlciBtYXkgZGVzdHJveS4KICAgICB2b2lkIHJl
c3RvcmVTdGF0ZUFmdGVyQ2xlYXIoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>