<?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>209809</bug_id>
          
          <creation_ts>2020-03-31 07:52:34 -0700</creation_ts>
          <short_desc>Add WebGL(2) context support to OffscreenCanvas</short_desc>
          <delta_ts>2020-08-28 01:47:13 -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>Canvas</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>
          <dependson>202797</dependson>
          <blocked>183720</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1636014</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-03-31 07:52:34 -0700</bug_when>
    <thetext>After bug 202797, OffscreenCanvas works with 2d canvas contexts (minus text functions), but does not work for WebGL contexts. A lot of the WebGL code assumes an HTMLCanvasElement (mostly unnecessarily) - this bug covers the work needed to have it work with an OffscreenCanvas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683312</commentid>
    <comment_count>1</comment_count>
      <attachid>407383</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-08-27 01:30:42 -0700</bug_when>
    <thetext>Created attachment 407383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683313</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-08-27 01:31:39 -0700</bug_when>
    <thetext>(In reply to Chris Lord from comment #0)
&gt; After bug 202797, OffscreenCanvas works with 2d canvas contexts (minus text
&gt; functions), but does not work for WebGL contexts. A lot of the WebGL code
&gt; assumes an HTMLCanvasElement (mostly unnecessarily) - this bug covers the
&gt; work needed to have it work with an OffscreenCanvas.

Far less than I thought actually, I&apos;d made some wrong assumptions on an initial read of the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683476</commentid>
    <comment_count>3</comment_count>
      <attachid>407383</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-27 13:32:26 -0700</bug_when>
    <thetext>Comment on attachment 407383
Patch

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

Exciting to see this support being integrated! One small question.

&gt; LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt:3
&gt; +FAIL Test that getContext with supported string returns correct results Can&apos;t find variable: WebGL2RenderingContext

Is this particular failure mode expected? Does this mean that WebGL2RenderingContext wasn&apos;t properly exposed on a worker context?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683593</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-08-28 00:43:17 -0700</bug_when>
    <thetext>(In reply to Kenneth Russell from comment #3)
&gt; Comment on attachment 407383 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=407383&amp;action=review
&gt; 
&gt; Exciting to see this support being integrated! One small question.
&gt; 
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt:3
&gt; &gt; +FAIL Test that getContext with supported string returns correct results Can&apos;t find variable: WebGL2RenderingContext
&gt; 
&gt; Is this particular failure mode expected? Does this mean that
&gt; WebGL2RenderingContext wasn&apos;t properly exposed on a worker context?

This is just because WebGL2 requires ANGLE, which isn&apos;t used (by default? yet?) on WPE/GTK - this ought to work on Mac, but I don&apos;t have one to test that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683595</commentid>
    <comment_count>5</comment_count>
      <attachid>407454</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-08-28 01:06:48 -0700</bug_when>
    <thetext>Created attachment 407454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683599</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-28 01:46:50 -0700</bug_when>
    <thetext>Committed r266275: &lt;https://trac.webkit.org/changeset/266275&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407454.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683600</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-28 01:47:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/67927342&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407383</attachid>
            <date>2020-08-27 01:30:42 -0700</date>
            <delta_ts>2020-08-28 01:06:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209809-20200827093040.patch</filename>
            <type>text/plain</type>
            <size>27688</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI1ODg1YTU0OTc2MDlj
MTUwNDUyYWM5MWYzN2UxMTg4NDI3MTc5OS4uYTk0ODQwODA4YjE3YzNlMzIzYmJiZjcyYmUzNDg0
ZDYzYzViODQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA4LTI2ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgV2ViR0woMikgY29udGV4
dCBzdXBwb3J0IHRvIE9mZnNjcmVlbkNhbnZhcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5ODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIFdlYkdMIGNvbnRleHRzIHdpdGggT2Zmc2NyZWVu
Q2FudmFzIGJ5IG1ha2luZyBzdXJlIHRoZSByZXF1aXJlZAorICAgICAgICBzZXR0aW5ncyBhcmUg
bWFyc2hhbGxlZCB0byB3b3JrZXJzIGFuZCB0aGF0IGFueSBmdW5jdGlvbmFsaXR5IHRoYXQKKyAg
ICAgICAgZG9lc24ndCByZXF1aXJlIGFuIEhUTUxDYW52YXNFbGVtZW50IHVzZXMgQ2FudmFzQmFz
ZSBpbnN0ZWFkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3Rpbmcg
dGVzdC4KKworICAgICAgICAqIGh0bWwvQ2FudmFzQmFzZS5oOgorICAgICAgICAqIGh0bWwvQ3Vz
dG9tUGFpbnRDYW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tUGFpbnRDYW52YXM6
OmNsZWFyQ29waWVkSW1hZ2UgY29uc3QpOgorICAgICAgICAqIGh0bWwvQ3VzdG9tUGFpbnRDYW52
YXMuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlIGNvbnN0KToKKyAgICAg
ICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5D
YW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yV2ViR0wpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkRW5hYmxlV2ViR0wpOgorICAg
ICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAg
ICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KToKKyAgICAgICAgKiBo
dG1sL09mZnNjcmVlbkNhbnZhcy5oOgorICAgICAgICAqIGh0bWwvT2Zmc2NyZWVuQ2FudmFzLmlk
bDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmlkbDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXJrQ29u
dGV4dENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6
Oldvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6YWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2Nv
cGU6OndlYkdMRW5hYmxlZCBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3Rh
cnRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5IGNvbnN0
KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisKIDIwMjAtMDgt
MjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIHBpcGVUaHJv
dWdoIHNob3VsZCBjaGVjayBmb3IgcmVhZGFibGVTdHJlYW0gdHlwZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NhbnZh
c0Jhc2UuaAppbmRleCAwZGE2ZThiNjJlZDgwYjk1Mzg0NzcyNzUwZmE0NDkxZmIzYWMwYWQ2Li4w
YTE1OTc3OWJkM2NhMDczOGMwZTlmNjIzYWZlYTA0MTM4MjM2NDgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0NhbnZhc0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Nh
bnZhc0Jhc2UuaApAQCAtMTAxLDYgKzEwMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmKSA9IDA7CiAKICAgICB2aXJ0dWFsIEltYWdlKiBjb3Bp
ZWRJbWFnZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb3BpZWRJbWFnZSgp
IGNvbnN0ID0gMDsKKwogICAgIGJvb2wgY2FsbFRyYWNpbmdBY3RpdmUoKSBjb25zdDsKIAogcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZh
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcAppbmRleCAx
YzYwZGQxZTdhNjNkOTkxODZiZmQ3ZTAwMzdkNmFiYjEzMGE2MzliLi5lNDUwNDRmNzA5NDhkNGYz
OTNiZDk2OGQ0NzlmMzhiNzdmZGY5M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0N1c3RvbVBhaW50Q2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBh
aW50Q2FudmFzLmNwcApAQCAtMTA1LDYgKzEwNSwxMSBAQCBJbWFnZSogQ3VzdG9tUGFpbnRDYW52
YXM6OmNvcGllZEltYWdlKCkgY29uc3QKICAgICByZXR1cm4gbV9jb3BpZWRJbWFnZS5nZXQoKTsK
IH0KIAordm9pZCBDdXN0b21QYWludENhbnZhczo6Y2xlYXJDb3BpZWRJbWFnZSgpIGNvbnN0Cit7
CisgICAgbV9jb3BpZWRJbWFnZSA9IG51bGxwdHI7Cit9CisKIEdyYXBoaWNzQ29udGV4dCogQ3Vz
dG9tUGFpbnRDYW52YXM6OmRyYXdpbmdDb250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9k
ZXN0aW5hdGlvbkdyYXBoaWNzQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ3VzdG9tUGFpbnRDYW52YXMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRD
YW52YXMuaAppbmRleCBmNDA0MDZmMGJhMGNjNDFjNGI5ODMyODMyZDVlODI1ZTI5MmVhN2I3Li4y
ZjRhYjUwOWZkNWMyMWU5ZjA3ZDhkZDEwMThkYjA0NzRiNjJkZDIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9DdXN0b21QYWludENhbnZhcy5oCkBAIC02Myw2ICs2Myw4IEBAIHB1YmxpYzoKIAogICAg
IEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgZmluYWwgeyBBU1NFUlQobV9k
ZXN0aW5hdGlvbkdyYXBoaWNzQ29udGV4dCAmJiBtX2NvcGllZEJ1ZmZlcik7IHJldHVybiBtX2Nv
cGllZEJ1ZmZlci0+YmFzZVRyYW5zZm9ybSgpOyB9CiAgICAgSW1hZ2UqIGNvcGllZEltYWdlKCkg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBjbGVhckNvcGllZEltYWdlKCkgY29uc3QgZmluYWw7CisK
ICAgICB2b2lkIHJlcGxheURpc3BsYXlMaXN0KEdyYXBoaWNzQ29udGV4dCopIGNvbnN0OwogCiAg
ICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcAppbmRleCAzZjM3NzFlYzVhYWQ0MmRhYWNiZDI5ZjZiODJlYjUyOWQyOWYzZTUy
Li5kZmIzZmIyZTIyY2FjYjA2NDA0MjlhYTFkOTE2Yjg0ZGVjZjhkY2I4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTAwMiw3ICsxMDAyLDcgQEAgdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgfQogfQog
Ci12b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKK3ZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVkSW1hZ2UoKSBjb25zdAogewogICAgIG1fY29waWVkSW1h
Z2UgPSBudWxscHRyOwogICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDZiNDFjNDYzMjEyOWRiNjBkMjE1
M2QxZTkwZGQxYjU4ZTdhZjMyZTAuLjMwOTVjYzM0Y2NkZjAxOGRlMWRlYzFiN2EzOGI0MGE0ZmE5
YWVhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTExMyw3
ICsxMTMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIEltYWdlKiBjb3BpZWRJbWFnZSgpIGNv
bnN0IGZpbmFsOwotICAgIHZvaWQgY2xlYXJDb3BpZWRJbWFnZSgpOworICAgIHZvaWQgY2xlYXJD
b3BpZWRJbWFnZSgpIGNvbnN0IGZpbmFsOwogICAgIFJlZlB0cjxJbWFnZURhdGE+IGdldEltYWdl
RGF0YSgpOwogICAgIHZvaWQgbWFrZVByZXNlbnRhdGlvbkNvcHkoKTsKICAgICB2b2lkIGNsZWFy
UHJlc2VudGF0aW9uQ29weSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZz
Y3JlZW5DYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3Bw
CmluZGV4IDczNGI3OWQ1ZmFhMDJjNWJhMmIzY2UwN2YxMzk1NDk3NDQ3Yzk3MGEuLjQ2YzI1ZjEz
ZTRiMjNmYjRiN2RlNDNjMTViYjdmY2EyYzg4YWU5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09m
ZnNjcmVlbkNhbnZhcy5jcHAKQEAgLTM5LDEwICszOSwxOCBAQAogI2luY2x1ZGUgIk1JTUVUeXBl
UmVnaXN0cnkuaCIKICNpbmNsdWRlICJPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aCIKICNpbmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKLSNpbmNsdWRlICJX
ZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKKyNpZiBFTkFCTEUoV0VCR0wpCisj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIK
KworI2lmIEVOQUJMRShXRUJHTDIpCisjaW5jbHVkZSAiV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5o
IgorI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChPZmZzY3JlZW5DYW52YXMpOwpAQCAtMTQx
LDYgKzE0OSw0OCBAQCB2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2V0U2l6ZShjb25zdCBJbnRTaXpl
JiBuZXdTaXplKQogICAgIHJlc2V0KCk7CiB9CiAKKyNpZiBFTkFCTEUoV0VCR0wpCitzdGF0aWMg
Ym9vbCByZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JXZWJHTCgpCit7CisjaWYgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pCisgICAgcmV0dXJuIGZhbHNlOworI2Vs
c2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCitzdGF0aWMgYm9vbCBzaG91bGRFbmFi
bGVXZWJHTChib29sIHdlYkdMRW5hYmxlZCwgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCkKK3sKKyAgICBpZiAoIXdlYkdMRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFyZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JXZWJHTCgpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZDsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZUNvbnRleHRXZWJHTChSZW5k
ZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyYmIGF0
dHJzKQoreworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKworICAgIGF1dG8gY29udGV4dCA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoY29udGV4dC0+aXNXb3JrZXJHbG9iYWxT
Y29wZSgpKSB7CisgICAgICAgIFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSA9
IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCk7CisgICAgICAgIGlmICghc2hv
dWxkRW5hYmxlV2ViR0wod29ya2VyR2xvYmFsU2NvcGUud2ViR0xFbmFibGVkKCksIHdvcmtlckds
b2JhbFNjb3BlLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgIH0gZWxzZSBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7CisgICAgICAg
IGF1dG8mIHNldHRpbmdzID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5zZXR0aW5ncygp
OworICAgICAgICBpZiAoIXNob3VsZEVuYWJsZVdlYkdMKHNldHRpbmdzLndlYkdMRW5hYmxlZCgp
LCBzZXR0aW5ncy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpKSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb250ZXh0ID0g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRycywgKGNvbnRleHRU
eXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpXZWJnbCkgPyAid2ViZ2wiIDogIndlYmdsMiIp
OworfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQorCiBFeGNlcHRpb25PcjxPcHRpb25hbDxP
ZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0Pj4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpT
Qzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlw
ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQogewogICAg
IGlmIChtX2RldGFjaGVkKQpAQCAtMTYwLDEwICsyMTAsMTQgQEAgRXhjZXB0aW9uT3I8T3B0aW9u
YWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4
dChKU0MKICAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
KCptX2NvbnRleHQpIH0gfSB9OwogICAgIH0KICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgaWYgKGNv
bnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpXZWJnbCkgeworICAgIGVsc2Ugewog
ICAgICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJp
bmdDb250ZXh0PigqbV9jb250ZXh0KSkKICAgICAgICAgICAgICAgICByZXR1cm4geyB7IFJlZlB0
cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4oKm1fY29udGV4dCkgfSB9IH07CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgICAgIGlm
IChpczxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4geyB7IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH0gfTsKKyNlbmRpZgogICAgICAg
ICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9OwogICAgICAgICB9CiAKQEAgLTE3MSwx
MCArMjI1LDE0IEBAIEV4Y2VwdGlvbk9yPE9wdGlvbmFsPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRl
eHQ+PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDCiAgICAgICAgIGF1dG8gYXR0cmli
dXRlcyA9IGNvbnZlcnQ8SURMRGljdGlvbmFyeTxXZWJHTENvbnRleHRBdHRyaWJ1dGVzPj4oc3Rh
dGUsICFhcmd1bWVudHMuaXNFbXB0eSgpID8gYXJndW1lbnRzWzBdLmdldCgpIDogSlNDOjpqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhjZXB0aW9u
IHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9KTsKIAotICAgICAgICBtX2NvbnRleHQgPSBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJpYnV0ZXMsICJ3ZWJnbCIp
OworICAgICAgICBjcmVhdGVDb250ZXh0V2ViR0woY29udGV4dFR5cGUsIFdURk1vdmUoYXR0cmli
dXRlcykpOwogICAgICAgICBpZiAoIW1fY29udGV4dCkKICAgICAgICAgICAgIHJldHVybiB7IHsg
V1RGOjpudWxsb3B0IH0gfTsKIAorI2lmIEVOQUJMRShXRUJHTDIpCisgICAgICAgIGlmIChpczxX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkKKyAgICAgICAgICAgIHJldHVybiB7
IHsgUmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfSB9OworI2VuZGlmCiAgICAgICAgIHJldHVybiB7
IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJp
bmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH0gfTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL09mZnNjcmVlbkNhbnZhcy5oCmluZGV4IDdjYmUxZWFlNDUxOGMwNjgzNDY2YWJjMmY1ZTEw
NTMxYzc4Yjg5ZjUuLjIwZGQwM2Y1MzMyNTRhNzJlZjk5MzNkMzQyMTJlZmM5OTExM2U0ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaApAQCAtNDAsNiArNDAsMTAgQEAKICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaWYgRU5BQkxFKFdFQkdMKQorI2luY2x1ZGUg
IldlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIKKyNlbmRpZgorCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNTAsMTMgKzU0LDE5IEBAIGNsYXNzIEhUTUxDYW52YXNFbGVtZW50OwogY2xhc3Mg
SW1hZ2VCaXRtYXA7CiBjbGFzcyBJbWFnZURhdGE7CiBjbGFzcyBPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ7CitjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OwogY2xhc3MgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OworY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIAor
dXNpbmcgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dCA9IFZhcmlhbnQ8CiAjaWYgRU5BQkxFKFdF
QkdMKQotdXNpbmcgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dCA9IFZhcmlhbnQ8UmVmUHRyPE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4sIFJlZlB0cjxXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ+PjsKLSNlbHNlCi11c2luZyBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0ID0gVmFyaWFu
dDxSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPj47CisgICAgUmVmUHRy
PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4sCiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAg
IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiwKKyNlbmRpZgorICAgIFJlZlB0cjxPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+Cis+OwogCiBjbGFzcyBEZXRhY2hlZE9mZnNj
cmVlbkNhbnZhcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV0YWNoZWRPZmZzY3JlZW5D
YW52YXMpOwpAQCAtOTYsNyArMTA2LDggQEAgcHVibGljOgogCiAgICAgZW51bSBjbGFzcyBSZW5k
ZXJpbmdDb250ZXh0VHlwZSB7CiAgICAgICAgIF8yZCwKLSAgICAgICAgV2ViZ2wKKyAgICAgICAg
V2ViZ2wsCisgICAgICAgIFdlYmdsMgogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPE9mZnNjcmVl
bkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNpZ25lZCB3aWR0aCwg
dW5zaWduZWQgaGVpZ2h0KTsKQEAgLTExOCw2ICsxMjksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWREcmF3KGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwogCiAgICAgSW1hZ2UqIGNvcGllZEltYWdl
KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBjbGVhckNvcGllZEltYWdlKCkgY29uc3QgZmluYWw7
CisKICAgICBib29sIGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyOyB9CiAKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJp
dHlPcmlnaW4oKSBjb25zdCBmaW5hbDsKQEAgLTE0OSwxMyArMTYyLDE2IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkZXJlZkNhbnZhc0Jhc2UoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHZvaWQg
c2V0U2l6ZShjb25zdCBJbnRTaXplJikgZmluYWw7CisKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAg
dm9pZCBjcmVhdGVDb250ZXh0V2ViR0woUmVuZGVyaW5nQ29udGV4dFR5cGUsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMmJiA9IHsgfSk7CisjZW5kaWYKKwogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZm
ZXIoKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHRha2VJ
bWFnZUJ1ZmZlcigpIGNvbnN0OwogCiAgICAgdm9pZCByZXNldCgpOwogCi0gICAgdm9pZCBjbGVh
ckNvcGllZEltYWdlKCkgY29uc3Q7Ci0KICAgICB2b2lkIHNldFBsYWNlaG9sZGVyQ2FudmFzKEhU
TUxDYW52YXNFbGVtZW50Jik7CiAgICAgdm9pZCBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpOwog
ICAgIHZvaWQgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL09mZnNjcmVlbkNhbnZhcy5pZGwKaW5kZXggZmZmMmJmZGNkMjdiMjM4YjM3YWY4YzJl
MThkNzMyNDFhMzRiNWVlOC4uYWQ5NDkwOWIwNjc1ZGJmZTkxMTgzZWM5YjJlYWQzODY4MjkyN2Ey
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmlkbApAQCAtMjMsMTEgKzIz
LDE0IEBACiAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICovCiAKK3R5cGVkZWYg
KAogI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMKSAmJiBFTkFCTEVfV0VCR0wKLXR5cGVkZWYgKE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBvciBXZWJHTFJlbmRlcmluZ0NvbnRleHQp
IE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ7Ci0jZWxzZQotdHlwZWRlZiAoT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEKSBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0OworICAgIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCBvcgogI2VuZGlmCisjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wy
KSAmJiBFTkFCTEVfV0VCR0wyCisgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCBvcgorI2VuZGlm
CisgICAgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBPZmZzY3JlZW5SZW5kZXJp
bmdDb250ZXh0OwogCiBkaWN0aW9uYXJ5IEltYWdlRW5jb2RlT3B0aW9ucwogewpAQCAtMzgsNyAr
NDEsOCBAQCBkaWN0aW9uYXJ5IEltYWdlRW5jb2RlT3B0aW9ucwogZW51bSBPZmZzY3JlZW5SZW5k
ZXJpbmdDb250ZXh0VHlwZQogewogICAgIjJkIiwKLSAgICJ3ZWJnbCIKKyAgICJ3ZWJnbCIsCisg
ICAid2ViZ2wyIgogfTsKIAogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmlkbAppbmRleCBhNmJiMzFkMDg1N2MwMmNjODU4ZjZm
ZDA3ZTllZDFkOWU4Yzg3MzhiLi4yNjk3Zjk5ZGY0NzhlY2U2ZjFkZDU5YmYwMjEwYzRkOTQ5MjIy
Y2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJp
bmdDb250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmlkbApAQCAtNTgsNiArNTgsNyBAQCB0eXBlZGVmIChJbWFnZUJpdG1hcCBv
ciBJbWFnZURhdGEgb3IgSFRNTEltYWdlRWxlbWVudCBvciBIVE1MQ2FudmFzRWxlbWVudCkgVGV4
SQogICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAog
ICAgIERvTm90Q2hlY2tDb25zdGFudHMsCisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAg
ICAgQ2FsbFRyYWNpbmdDYWxsYmFjaz1yZWNvcmRDYW52YXNBY3Rpb24sCiBdIGludGVyZmFjZSBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwKaW5kZXggNGQwNGU0MWM2MjQ2NTc4NGI0
NTk5NjliZTIxOWE3YzMxNGJiMWQ5Zi4uZjNjZTk5NzgxMDE2NjQ4Y2UzNmJkZGNmNjMyYzViZmZh
NWYzNGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaWRsCkBAIC00MSw2ICs0MSw3IEBAIHR5cGVkZWYgKEltYWdlQml0bWFw
IG9yIEltYWdlRGF0YSBvciBIVE1MSW1hZ2VFbGVtZW50IG9yIEhUTUxDYW52YXNFbGVtZW50KSBU
ZXhJCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgRG9Ob3RDaGVja0NvbnN0YW50cywK
ICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKKyAgICBFeHBvc2VkPShXaW5kb3csV29y
a2VyKSwKICAgICBDYWxsVHJhY2luZ0NhbGxiYWNrPXJlY29yZENhbnZhc0FjdGlvbiwKIF0gaW50
ZXJmYWNlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCBi
NTkzNmUyNzNmODdlNmY4MjM4ZWQ1ZWNkZjdjNDE2NThkZTQ0N2FkLi42NDcyMjAyNDc0OWZkOGI4
MThkMjA0MzM4NjE2NjlhYmVmY2Y4N2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNzUxLDcgKzc1
MSw4IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UoQ2FudmFzQmFzZSYgY2FudmFzLCBXZWJHTENvCiAgICAgbV9yZXN0b3JlVGltZXIuc3VzcGVu
ZElmTmVlZGVkKCk7CiAKICAgICByZWdpc3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcigpOwotICAg
IG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXIuc3RhcnRPbmVTaG90KGNoZWNrQ29u
dGV4dExvc3NIYW5kbGluZ0RlbGF5KTsKKyAgICBpZiAoY2FudmFzLmlzSFRNTENhbnZhc0VsZW1l
bnQoKSkKKyAgICAgICAgbV9jaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmdUaW1lci5zdGFydE9u
ZVNob3QoY2hlY2tDb250ZXh0TG9zc0hhbmRsaW5nRGVsYXkpOwogfQogCiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZh
cywgUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiYmIGNvbnRleHQsIFdlYkdMQ29udGV4dEF0
dHJpYnV0ZXMgYXR0cmlidXRlcykKQEAgLTc3OCw3ICs3NzksOCBAQCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZhcywg
UmVmPEdyYQogICAgIHNldHVwRmxhZ3MoKTsKIAogICAgIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVU
cmFja2VyKCk7Ci0gICAgbV9jaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmdUaW1lci5zdGFydE9u
ZVNob3QoY2hlY2tDb250ZXh0TG9zc0hhbmRsaW5nRGVsYXkpOworICAgIGlmIChjYW52YXMuaXNI
VE1MQ2FudmFzRWxlbWVudCgpKQorICAgICAgICBtX2NoZWNrRm9yQ29udGV4dExvc3NIYW5kbGlu
Z1RpbWVyLnN0YXJ0T25lU2hvdChjaGVja0NvbnRleHRMb3NzSGFuZGxpbmdEZWxheSk7CiAKICAg
ICBhZGRBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXJJZk5lY2Vzc2FyeSgpOwogfQpAQCAtMTA2
NywyMSArMTA2OSwyMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1hcmtDb250
ZXh0Q2hhbmdlZCgpCiAKICAgICBtX2xheWVyQ2xlYXJlZCA9IGZhbHNlOwogCi0gICAgYXV0byog
Y2FudmFzID0gaHRtbENhbnZhcygpOwotICAgIGlmICghY2FudmFzKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IGNhbnZhcy0+cmVuZGVyQm94KCk7Ci0gICAg
aWYgKGlzQWNjZWxlcmF0ZWQoKSAmJiByZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nKCkpIHsKLSAgICAgICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IHRydWU7
Ci0gICAgICAgIGh0bWxDYW52YXMoKS0+Y2xlYXJDb3BpZWRJbWFnZSgpOwotICAgICAgICByZW5k
ZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZhc1BpeGVsc0NoYW5nZWQpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmICghbV9tYXJrZWRDYW52YXNEaXJ0eSkgeworICAgIGlmIChhdXRvKiBjYW52
YXMgPSBodG1sQ2FudmFzKCkpIHsKKyAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52
YXMtPnJlbmRlckJveCgpOworICAgICAgICBpZiAoaXNBY2NlbGVyYXRlZCgpICYmIHJlbmRlckJv
eCAmJiByZW5kZXJCb3gtPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkgewogICAgICAgICAg
ICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IHRydWU7Ci0gICAgICAgICAgICBjYW52YXMtPmRpZERy
YXcoRmxvYXRSZWN0KEZsb2F0UG9pbnQoMCwgMCksIGNsYW1wZWRDYW52YXNTaXplKCkpKTsKKyAg
ICAgICAgICAgIGNhbnZhcy0+Y2xlYXJDb3BpZWRJbWFnZSgpOworICAgICAgICAgICAgcmVuZGVy
Qm94LT5jb250ZW50Q2hhbmdlZChDYW52YXNQaXhlbHNDaGFuZ2VkKTsKKyAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KKworICAgIGlmICghbV9tYXJrZWRDYW52YXNEaXJ0eSkg
eworICAgICAgICBtX21hcmtlZENhbnZhc0RpcnR5ID0gdHJ1ZTsKKyAgICAgICAgY2FudmFzQmFz
ZSgpLmRpZERyYXcoRmxvYXRSZWN0KEZsb2F0UG9pbnQoMCwgMCksIGNsYW1wZWRDYW52YXNTaXpl
KCkpKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWFya0Nv
bnRleHRDaGFuZ2VkQW5kTm90aWZ5Q2FudmFzT2JzZXJ2ZXIoKQpAQCAtMTE4OCwzMCArMTE4OSwz
MSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnBhaW50UmVuZGVyaW5nUmVzdWx0
c1RvQ2FudmFzKCkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBhdXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7Ci0gICAgaWYgKCFjYW52
YXMpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoYXV0byogY2FudmFzID0gaHRtbENhbnZhcygp
KSB7CisgICAgICAgIGlmIChjYW52YXMtPmRvY3VtZW50KCkucHJpbnRpbmcoKSB8fCAoY2FudmFz
LT5pc1NuYXBzaG90dGluZygpICYmIGNhbnZhcy0+ZG9jdW1lbnQoKS5wYWdlKCktPmlzVmlzaWJs
ZSgpKSkKKyAgICAgICAgICAgIGNhbnZhcy0+Y2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CiAKLSAg
ICBpZiAoY2FudmFzLT5kb2N1bWVudCgpLnByaW50aW5nKCkgfHwgKGNhbnZhcy0+aXNTbmFwc2hv
dHRpbmcoKSAmJiBjYW52YXMtPmRvY3VtZW50KCkucGFnZSgpLT5pc1Zpc2libGUoKSkpCi0gICAg
ICAgIGNhbnZhcy0+Y2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CisgICAgICAgIC8vIFVudGlsIHRo
ZSBjYW52YXMgaXMgd3JpdHRlbiB0byBieSB0aGUgYXBwbGljYXRpb24sIHRoZSBjbGVhciB0aGF0
CisgICAgICAgIC8vIGhhcHBlbmVkIGFmdGVyIGl0IHdhcyBjb21wb3NpdGVkIHNob3VsZCBiZSBp
Z25vcmVkIGJ5IHRoZSBjb21wb3NpdG9yLgorICAgICAgICBpZiAobV9jb250ZXh0LT5sYXllckNv
bXBvc2l0ZWQoKSAmJiAhbV9hdHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcikgeworICAg
ICAgICAgICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhjYW52YXMt
PmJ1ZmZlcigpKTsKIAotICAgIC8vIFVudGlsIHRoZSBjYW52YXMgaXMgd3JpdHRlbiB0byBieSB0
aGUgYXBwbGljYXRpb24sIHRoZSBjbGVhciB0aGF0Ci0gICAgLy8gaGFwcGVuZWQgYWZ0ZXIgaXQg
d2FzIGNvbXBvc2l0ZWQgc2hvdWxkIGJlIGlnbm9yZWQgYnkgdGhlIGNvbXBvc2l0b3IuCi0gICAg
aWYgKG1fY29udGV4dC0+bGF5ZXJDb21wb3NpdGVkKCkgJiYgIW1fYXR0cmlidXRlcy5wcmVzZXJ2
ZURyYXdpbmdCdWZmZXIpIHsKLSAgICAgICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3Vs
dHNUb0NhbnZhcyhjYW52YXMtPmJ1ZmZlcigpKTsKKyAgICAgICAgICAgIGNhbnZhcy0+bWFrZVBy
ZXNlbnRhdGlvbkNvcHkoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBjYW52YXMtPmNs
ZWFyUHJlc2VudGF0aW9uQ29weSgpOworICAgIH0KIAotICAgICAgICBjYW52YXMtPm1ha2VQcmVz
ZW50YXRpb25Db3B5KCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNhbnZhcy0+Y2xlYXJQcmVzZW50
YXRpb25Db3B5KCk7CiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKIAogICAgIGlmICghbV9tYXJr
ZWRDYW52YXNEaXJ0eSAmJiAhbV9sYXllckNsZWFyZWQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGNhbnZhcy0+Y2xlYXJDb3BpZWRJbWFnZSgpOworICAgIGF1dG8mIGJhc2UgPSBjYW52YXNCYXNl
KCk7CisgICAgYmFzZS5jbGVhckNvcGllZEltYWdlKCk7CisKICAgICBtX21hcmtlZENhbnZhc0Rp
cnR5ID0gZmFsc2U7CiAKLSAgICBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2Fu
dmFzKGNhbnZhcy0+YnVmZmVyKCkpOworICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1
bHRzVG9DYW52YXMoYmFzZS5idWZmZXIoKSk7CiB9CiAKIFJlZlB0cjxJbWFnZURhdGE+IFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggOTBl
NmE5OGI2MWNjOGVkNzI5ZDhkMzJlOWMzNjRlZjZhOWRiNDJkYS4uYjJmMzMxMmNmNGIwNDYxYjg3
ZmFhYWMzOWNkNDJhMDYzZTU4YWM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKQEAgLTc5LDYgKzc5LDggQEAgV29ya2VyR2xvYmFsU2NvcGU6Oldv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFdvcmtlclBhcmFtZXRlcnMmIHBhcmFtcywgUmVmPFNlY3Vy
aXQKICAgICAsIG1fcGVyZm9ybWFuY2UoUGVyZm9ybWFuY2U6OmNyZWF0ZSh0aGlzLCBwYXJhbXMu
dGltZU9yaWdpbikpCiAgICAgLCBtX3JlZmVycmVyUG9saWN5KHBhcmFtcy5yZWZlcnJlclBvbGlj
eSkKICAgICAsIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZChwYXJhbXMucmVxdWVzdEFu
aW1hdGlvbkZyYW1lRW5hYmxlZCkKKyAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQocGFyYW1zLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKQorICAgICwgbV93ZWJHTEVu
YWJsZWQocGFyYW1zLndlYkdMRW5hYmxlZCkKIHsKICNpZiAhRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb25Qcm94eSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYmFkMTUxZTRmMzk5MjY2MmFmYWUwODg5
NWJiY2RjYWNkOTZjZDFmOS4uYmQ5Y2YxNDBkZDUyZmI4NDk4YjlmYTQxMDYwYzkzYWJmYTY4Mzg1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTQy
LDYgKzE0Miw4IEBAIHB1YmxpYzoKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgp
IGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkOyB9CisgICAgYm9v
bCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7IH0KKyAgICBib29sIHdlYkdMRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fd2ViR0xFbmFibGVkOyB9CiAKIHByb3RlY3RlZDoKICAgICBXb3JrZXJHbG9i
YWxTY29wZShjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBX
b3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBJREJDbGllbnQ6
OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CkBAIC0yMjMsNiArMjI1LDgg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTVmFsdWVQb29sPiBtX2Nzc1ZhbHVl
UG9vbDsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5OwogICAgIGJvb2wgbV9y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkOworICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZDsKKyAgICBib29sIG1fd2ViR0xFbmFibGVkOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAppbmRleCBiOWQxOTcwZmRiNGU3NzQ4ZDZmZjM1Mzc2NDJhOWQwOWJiODEyOWE3
Li5jNDIxMmIyNjU4Mjk3YjNlNDEzYTEyZDU1NWE5ODJmYjg3NjUwNWNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtODksNyArODks
NyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogCiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tl
dFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJvdmlkZXIoKTsKIAotICAgIFdvcmtlclBhcmFt
ZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwg
aXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCByZWZlcnJlclBv
bGljeSwgZG9jdW1lbnQuc2V0dGluZ3MoKS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKCkg
fTsKKyAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2NyaXB0VVJMLCBuYW1lLCBpZGVu
dGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdGlt
ZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50LnNldHRpbmdzKCkucmVxdWVzdEFuaW1h
dGlvbkZyYW1lRW5hYmxlZCgpLCBkb2N1bWVudC5zZXR0aW5ncygpLmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKCksIGRvY3VtZW50LnNldHRpbmdzKCkud2ViR0xFbmFibGVkKCkgfTsKICAg
ICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHBhcmFtcywgc291
cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBkb2N1bWVudC50b3BPcmln
aW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3MpOwogCiAgICAgd29ya2Vy
VGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuY3BwCmluZGV4IDcyMTk2YTA1NzdmMDBjZThhMDI3ZmU1NTZmOTJlMzE2NGQ2YmUyYjAu
LjU5NjRkNTExMTc5YjBmODVlZmRhZjEzMTI2MDFkMTM0OWI5YWY5NWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTgyLDYgKzgyLDggQEAgV29ya2VyUGFyYW1l
dGVycyBXb3JrZXJQYXJhbWV0ZXJzOjppc29sYXRlZENvcHkoKSBjb25zdAogICAgICAgICB0aW1l
T3JpZ2luLAogICAgICAgICByZWZlcnJlclBvbGljeSwKICAgICAgICAgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lRW5hYmxlZCwKKyAgICAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsCisg
ICAgICAgIHdlYkdMRW5hYmxlZCwKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuaAppbmRleCBjNjI1ZTQyZWRkMWEyOTVmMTgyZWI4MWIwNGI4MGE1ZDc0NTJkMzdh
Li5kNzc2MzNjMDU0NmY0M2RlZGZkNWEwNGM2ZTQ0M2E4OWY5OTBmMjNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTY5LDYgKzY5LDggQEAgcHVibGljOgogICAgIE1v
bm90b25pY1RpbWUgdGltZU9yaWdpbjsKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGlj
eTsKICAgICBib29sIHJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQ7CisgICAgYm9vbCBhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAgICBib29sIHdlYkdMRW5hYmxlZDsKIAogICAg
IFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcAppbmRleCBkMmYzZTc3NGUwOGYxZGYyMTRjMGU0NTgxYWJkMzhjMDEzNTA2
OTI4Li4wZGFmMWIyYzRkMTYwYzljNWZhMDRmMDQ3MDFlOWFmZWFlYWUwMGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtNzQsNyArNzQsNyBAQCBwcml2YXRlOgogLy8gRklYTUU6
IFVzZSB2YWxpZCBydW50aW1lIGZsYWdzCiAKIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VX
b3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcm
JiB1c2VyQWdlbnQsIFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdn
ZXJQcm94eSYgZGVidWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlk
YkNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDog
V29ya2VyVGhyZWFkKHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29y
a2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigp
LCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVn
eSgpLT5pc09uTGluZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90
b25pY1RpbWU6Om5vdygpLCB7IH0sIHRydWUgfSwgZGF0YS5zY3JpcHQsIGxvYWRlclByb3h5LCBk
ZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCksIFdv
cmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJlZ2lzdHJhdGlvbi5rZXkudG9wT3Jp
Z2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQ
cm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSkKKyAgICA6IFdv
cmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdvcmtl
cjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwg
V1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3ko
KS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25vdG9u
aWNUaW1lOjpub3coKSwgeyB9LCB0cnVlLCB0cnVlLCB0cnVlIH0sIGRhdGEuc2NyaXB0LCBsb2Fk
ZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNo
YXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24u
a2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94
eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkp
CiAgICAgLCBtX2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0
UHJveHkoRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogICAgICwgbV9o
ZWFydEJlYXRUaW1lb3V0KFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24o
KS0+c2hvdWxkVXNlU2hvcnRUaW1lb3V0KCkgPyBoZWFydEJlYXRUaW1lb3V0Rm9yVGVzdCA6IGhl
YXJ0QmVhdFRpbWVvdXQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAwNTEwZGM1
Y2NhYjE5MzQ5OWMzOTI1NTgxNTg3Y2Q4MWEwMDI1NDgwLi5mY2VlNDdlZjc3YmEyN2U4ZTMzNjM4
NGJiNWJiMjBkZGE4OGRjNTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0wOC0yNiAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisK
KyAgICAgICAgQWRkIFdlYkdMKDIpIGNvbnRleHQgc3VwcG9ydCB0byBPZmZzY3JlZW5DYW52YXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTgwOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxp
bmUgT2Zmc2NyZWVuQ2FudmFzIHRlc3RzIGFmdGVyIGVuYWJsaW5nIFdlYkdMIGNvbnRleHRzLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0
Lndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDgtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIHBpcGVUaHJvdWdoIHNob3VsZCBjaGVjayBmb3IgcmVh
ZGFibGVTdHJlYW0gdHlwZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4
dC1leHBlY3RlZC50eHQKaW5kZXggYzU3YTI5M2VjNGE5YmQ2OGM2ZDkxZjlhYmM4MjU1NGM0ZGY4
OGY2YS4uYzBlOWRiMDViNWRmNDA5MGNhOTdmZjY2MzQ2NTc0YzE0NWExMWVhMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5n
ZXRjb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDYg
KzEsNiBAQAogCiBQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0
cmluZyB0aHJvd3MgYSBUeXBlRXJyb3IuIAotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRo
IHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQXJndW1lbnQgMSAoJ2Nv
bnRleHRUeXBlJykgdG8gT2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQgbXVzdCBiZSBvbmUgb2Y6
ICIyZCIsICJ3ZWJnbCIKK0ZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQg
c3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRzIENhbid0IGZpbmQgdmFyaWFibGU6IFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQKIFBBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0aCBk
aWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUgCiBQQVNT
IFRlc3QgdGhhdCAyZGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9m
ZnNjcmVlbkNhbnZhcyAKIFBBU1MgVGVzdCB0aGF0IHdlYmdsY29udGV4dC5jYW52YXMgc2hvdWxk
IHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0
Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAz
OWZjMmNmOWFhZGRlN2YyZGIxYjNlMmUzMzY4OWVkNzA3MTc4Y2ExLi5jMGU5ZGIwNWI1ZGY0MDkw
Y2E5N2ZmNjYzNDY1NzRjMTQ1YTExZWExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAK
IAogUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHVuLXN1cHBvcnRlZCBzdHJpbmcgdGhy
b3dzIGEgVHlwZUVycm9yLiAKLUZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0
ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRzIENhbid0IGZpbmQgdmFyaWFibGU6IFdl
YkdMUmVuZGVyaW5nQ29udGV4dAorRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBv
cnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTog
V2ViR0wyUmVuZGVyaW5nQ29udGV4dAogUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3
aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSAK
IFBBU1MgVGVzdCB0aGF0IDJkY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2lu
YWwgT2Zmc2NyZWVuQ2FudmFzIAogUEFTUyBUZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBz
aG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407454</attachid>
            <date>2020-08-28 01:06:48 -0700</date>
            <delta_ts>2020-08-28 01:46:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209809-20200828090646.patch</filename>
            <type>text/plain</type>
            <size>27684</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI1ODg1YTU0OTc2MDlj
MTUwNDUyYWM5MWYzN2UxMTg4NDI3MTc5OS4uZDE1ZDE1NTU2MjZhOWQwYzdmZGJkMWY2YjEzNzk3
MGUzZjQxOGEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA4LTI2ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgV2ViR0woMikgY29udGV4
dCBzdXBwb3J0IHRvIE9mZnNjcmVlbkNhbnZhcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5ODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBK
YWNrc29uLgorCisgICAgICAgIEVuYWJsZSBXZWJHTCBjb250ZXh0cyB3aXRoIE9mZnNjcmVlbkNh
bnZhcyBieSBtYWtpbmcgc3VyZSB0aGUgcmVxdWlyZWQKKyAgICAgICAgc2V0dGluZ3MgYXJlIG1h
cnNoYWxsZWQgdG8gd29ya2VycyBhbmQgdGhhdCBhbnkgZnVuY3Rpb25hbGl0eSB0aGF0CisgICAg
ICAgIGRvZXNuJ3QgcmVxdWlyZSBhbiBIVE1MQ2FudmFzRWxlbWVudCB1c2VzIENhbnZhc0Jhc2Ug
aW5zdGVhZC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRl
c3QuCisKKyAgICAgICAgKiBodG1sL0NhbnZhc0Jhc2UuaDoKKyAgICAgICAgKiBodG1sL0N1c3Rv
bVBhaW50Q2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbVBhaW50Q2FudmFzOjpj
bGVhckNvcGllZEltYWdlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0N1c3RvbVBhaW50Q2FudmFz
Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3BpZWRJbWFnZSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0ZvcldlYkdMKToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEVuYWJsZVdlYkdMKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlQ29udGV4dFdlYkdMKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dCk6CisgICAgICAgICogaHRt
bC9PZmZzY3JlZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5pZGw6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGw6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWFya0NvbnRl
eHRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpX
b3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5o
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3Bl
Ojp3ZWJHTEVuYWJsZWQgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0
V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSBjb25zdCk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQpOgorCiAyMDIwLTA4LTI2
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBwaXBlVGhyb3Vn
aCBzaG91bGQgY2hlY2sgZm9yIHJlYWRhYmxlU3RyZWFtIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNC
YXNlLmgKaW5kZXggMGRhNmU4YjYyZWQ4MGI5NTM4NDc3Mjc1MGZhNDQ5MWZiM2FjMGFkNi4uMGEx
NTk3NzliZDNjYTA3MzhjMGU5ZjYyM2FmZWEwNDEzODIzNjQ4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52
YXNCYXNlLmgKQEAgLTEwMSw2ICsxMDEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZERyYXcoY29uc3QgRmxvYXRSZWN0JikgPSAwOwogCiAgICAgdmlydHVhbCBJbWFnZSogY29waWVk
SW1hZ2UoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ29waWVkSW1hZ2UoKSBj
b25zdCA9IDA7CisKICAgICBib29sIGNhbGxUcmFjaW5nQWN0aXZlKCkgY29uc3Q7CiAKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRDYW52YXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKaW5kZXggMWM2
MGRkMWU3YTYzZDk5MTg2YmZkN2UwMDM3ZDZhYmIxMzBhNjM5Yi4uZTQ1MDQ0ZjcwOTQ4ZDRmMzkz
YmQ5NjhkNDc5ZjM4Yjc3ZmRmOTNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9D
dXN0b21QYWludENhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWlu
dENhbnZhcy5jcHAKQEAgLTEwNSw2ICsxMDUsMTEgQEAgSW1hZ2UqIEN1c3RvbVBhaW50Q2FudmFz
Ojpjb3BpZWRJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29waWVkSW1hZ2UuZ2V0KCk7CiB9
CiAKK3ZvaWQgQ3VzdG9tUGFpbnRDYW52YXM6OmNsZWFyQ29waWVkSW1hZ2UoKSBjb25zdAorewor
ICAgIG1fY29waWVkSW1hZ2UgPSBudWxscHRyOworfQorCiBHcmFwaGljc0NvbnRleHQqIEN1c3Rv
bVBhaW50Q2FudmFzOjpkcmF3aW5nQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGVz
dGluYXRpb25HcmFwaGljc0NvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0N1c3RvbVBhaW50Q2FudmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2Fu
dmFzLmgKaW5kZXggZjQwNDA2ZjBiYTBjYzQxYzRiOTgzMjgzMmQ1ZTgyNWUyOTJlYTdiNy4uMmY0
YWI1MDlmZDVjMjFlOWYwN2Q4ZGQxMDE4ZGIwNDc0YjYyZGQyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ3VzdG9tUGFpbnRDYW52YXMuaApAQCAtNjMsNiArNjMsOCBAQCBwdWJsaWM6CiAKICAgICBB
ZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNvbnN0IGZpbmFsIHsgQVNTRVJUKG1fZGVz
dGluYXRpb25HcmFwaGljc0NvbnRleHQgJiYgbV9jb3BpZWRCdWZmZXIpOyByZXR1cm4gbV9jb3Bp
ZWRCdWZmZXItPmJhc2VUcmFuc2Zvcm0oKTsgfQogICAgIEltYWdlKiBjb3BpZWRJbWFnZSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgY2xlYXJDb3BpZWRJbWFnZSgpIGNvbnN0IGZpbmFsOworCiAg
ICAgdm9pZCByZXBsYXlEaXNwbGF5TGlzdChHcmFwaGljc0NvbnRleHQqKSBjb25zdDsKIAogICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAKaW5kZXggM2YzNzcxZWM1YWFkNDJkYWFjYmQyOWY2YjgyZWI1MjlkMjlmM2U1Mi4u
ZGZiM2ZiMmUyMmNhY2IwNjQwNDI5YWExZDkxNmI4NGRlY2Y4ZGNiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTEwMDIsNyArMTAwMiw3IEBAIHZvaWQg
SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIH0KIH0KIAot
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3BpZWRJbWFnZSgpCit2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkgY29uc3QKIHsKICAgICBtX2NvcGllZEltYWdl
ID0gbnVsbHB0cjsKICAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIgPSBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA2YjQxYzQ2MzIxMjlkYjYwZDIxNTNk
MWU5MGRkMWI1OGU3YWYzMmUwLi4zMDk1Y2MzNGNjZGYwMThkZTFkZWMxYjdhMzhiNDBhNGZhOWFl
YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0xMTMsNyAr
MTEzLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBJbWFnZSogY29waWVkSW1hZ2UoKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIGNsZWFyQ29waWVkSW1hZ2UoKTsKKyAgICB2b2lkIGNsZWFyQ29w
aWVkSW1hZ2UoKSBjb25zdCBmaW5hbDsKICAgICBSZWZQdHI8SW1hZ2VEYXRhPiBnZXRJbWFnZURh
dGEoKTsKICAgICB2b2lkIG1ha2VQcmVzZW50YXRpb25Db3B5KCk7CiAgICAgdm9pZCBjbGVhclBy
ZXNlbnRhdGlvbkNvcHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2Ny
ZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApp
bmRleCA3MzRiNzlkNWZhYTAyYzViYTJiM2NlMDdmMTM5NTQ5NzQ0N2M5NzBhLi40NmMyNWYxM2U0
YjIzZmI0YjdkZTQzYzE1YmI3ZmNhMmM4OGFlOWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZz
Y3JlZW5DYW52YXMuY3BwCkBAIC0zOSwxMCArMzksMTggQEAKICNpbmNsdWRlICJNSU1FVHlwZVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgi
CiAjaW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSAiV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCisjaWYgRU5BQkxFKFdFQkdMKQorI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisK
KyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIK
KyNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoT2Zmc2NyZWVuQ2FudmFzKTsKQEAgLTE0MSw2
ICsxNDksNDggQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYg
bmV3U2l6ZSkKICAgICByZXNldCgpOwogfQogCisjaWYgRU5BQkxFKFdFQkdMKQorc3RhdGljIGJv
b2wgcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yV2ViR0woKQoreworI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV0lOX0NBSVJPKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNl
CisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKworc3RhdGljIGJvb2wgc2hvdWxkRW5hYmxl
V2ViR0woYm9vbCB3ZWJHTEVuYWJsZWQsIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQpCit7CisgICAgaWYgKCF3ZWJHTEVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmICghcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yV2ViR0woKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQ7Cit9CisKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGVDb250ZXh0V2ViR0woUmVuZGVy
aW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiBhdHRy
cykKK3sKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7CisKKyAgICBhdXRvIGNvbnRleHQgPSBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKGNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2Nv
cGUoKSkgeworICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUgPSBk
b3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpOworICAgICAgICBpZiAoIXNob3Vs
ZEVuYWJsZVdlYkdMKHdvcmtlckdsb2JhbFNjb3BlLndlYkdMRW5hYmxlZCgpLCB3b3JrZXJHbG9i
YWxTY29wZS5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICB9IGVsc2UgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgeworICAgICAgICBh
dXRvJiBzZXR0aW5ncyA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkuc2V0dGluZ3MoKTsK
KyAgICAgICAgaWYgKCFzaG91bGRFbmFibGVXZWJHTChzZXR0aW5ncy53ZWJHTEVuYWJsZWQoKSwg
c2V0dGluZ3MuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKSkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udGV4dCA9IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSgqdGhpcywgYXR0cnMsIChjb250ZXh0VHlw
ZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6V2ViZ2wpID8gIndlYmdsIiA6ICJ3ZWJnbDIiKTsK
K30KKworI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKKwogRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zm
c2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6
OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgUmVuZGVyaW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUs
IFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKICAgICBp
ZiAobV9kZXRhY2hlZCkKQEAgLTE2MCwxMCArMjEwLDE0IEBAIEV4Y2VwdGlvbk9yPE9wdGlvbmFs
PE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQo
SlNDCiAgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigq
bV9jb250ZXh0KSB9IH0gfTsKICAgICB9CiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIGlmIChjb250
ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6V2ViZ2wpIHsKKyAgICBlbHNlIHsKICAg
ICAgICAgaWYgKG1fY29udGV4dCkgewogICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5n
Q29udGV4dD4oKm1fY29udGV4dCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8
V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
KCptX2NvbnRleHQpIH0gfSB9OworI2lmIEVOQUJMRShXRUJHTDIpCisgICAgICAgICAgICBpZiAo
aXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHsgeyBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkgfSB9IH07CisjZW5kaWYKICAgICAgICAg
ICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKICAgICAgICAgfQogCkBAIC0xNzEsMTAg
KzIyNSwxNCBAQCBFeGNlcHRpb25PcjxPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0
Pj4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQwogICAgICAgICBhdXRvIGF0dHJpYnV0
ZXMgPSBjb252ZXJ0PElETERpY3Rpb25hcnk8V2ViR0xDb250ZXh0QXR0cmlidXRlcz4+KHN0YXRl
LCAhYXJndW1lbnRzLmlzRW1wdHkoKSA/IGFyZ3VtZW50c1swXS5nZXQoKSA6IEpTQzo6anNVbmRl
ZmluZWQoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEV4Y2VwdGlvbiB7
IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAKLSAgICAgICAgbV9jb250ZXh0ID0gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRyaWJ1dGVzLCAid2ViZ2wiKTsK
KyAgICAgICAgY3JlYXRlQ29udGV4dFdlYkdMKGNvbnRleHRUeXBlLCBXVEZNb3ZlKGF0dHJpYnV0
ZXMpKTsKICAgICAgICAgaWYgKCFtX2NvbnRleHQpCiAgICAgICAgICAgICByZXR1cm4geyB7IFdU
Rjo6bnVsbG9wdCB9IH07CiAKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBpZiAoaXM8V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkpCisgICAgICAgICAgICByZXR1cm4geyB7
IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJp
bmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH0gfTsKKyNlbmRpZgogICAgICAgICByZXR1cm4geyB7
IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5n
Q29udGV4dD4oKm1fY29udGV4dCkgfSB9IH07CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9PZmZzY3JlZW5DYW52YXMuaAppbmRleCA3Y2JlMWVhZTQ1MThjMDY4MzQ2NmFiYzJmNWUxMDUz
MWM3OGI4OWY1Li4yMGRkMDNmNTMzMjU0YTcyZWY5OTMzZDM0MjEyZWZjOTkxMTNlNGVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKQEAgLTQwLDYgKzQwLDEwIEBACiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2lmIEVOQUJMRShXRUJHTCkKKyNpbmNsdWRlICJX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgiCisjZW5kaWYKKwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTUwLDEzICs1NCwxOSBAQCBjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKIGNsYXNzIElt
YWdlQml0bWFwOwogY2xhc3MgSW1hZ2VEYXRhOwogY2xhc3MgT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOworY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDsKK2NsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAKK3Vz
aW5nIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PAogI2lmIEVOQUJMRShXRUJH
TCkKLXVzaW5nIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PFJlZlB0cjxPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+LCBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250
ZXh0Pj47Ci0jZWxzZQotdXNpbmcgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dCA9IFZhcmlhbnQ8
UmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4+OworICAgIFJlZlB0cjxX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ+LAogI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICBS
ZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4sCisjZW5kaWYKKyAgICBSZWZQdHI8T2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPgorPjsKIAogY2xhc3MgRGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERldGFjaGVkT2Zmc2NyZWVuQ2Fu
dmFzKTsKQEAgLTk2LDcgKzEwNiw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgUmVuZGVy
aW5nQ29udGV4dFR5cGUgewogICAgICAgICBfMmQsCi0gICAgICAgIFdlYmdsCisgICAgICAgIFdl
YmdsLAorICAgICAgICBXZWJnbDIKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxPZmZzY3JlZW5D
YW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgdW5zaWduZWQgd2lkdGgsIHVu
c2lnbmVkIGhlaWdodCk7CkBAIC0xMTgsNiArMTI5LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlk
RHJhdyhjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKIAogICAgIEltYWdlKiBjb3BpZWRJbWFnZSgp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgY2xlYXJDb3BpZWRJbWFnZSgpIGNvbnN0IGZpbmFsOwor
CiAgICAgYm9vbCBoYXNDcmVhdGVkSW1hZ2VCdWZmZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlcjsgfQogCiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgZmluYWw7CkBAIC0xNDksMTMgKzE2MiwxNiBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGVyZWZDYW52YXNCYXNlKCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAgICB2b2lkIHNl
dFNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOworCisjaWYgRU5BQkxFKFdFQkdMKQorICAgIHZv
aWQgY3JlYXRlQ29udGV4dFdlYkdMKFJlbmRlcmluZ0NvbnRleHRUeXBlLCBXZWJHTENvbnRleHRB
dHRyaWJ1dGVzJiYgPSB7IH0pOworI2VuZGlmCisKICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVy
KCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiB0YWtlSW1h
Z2VCdWZmZXIoKSBjb25zdDsKIAogICAgIHZvaWQgcmVzZXQoKTsKIAotICAgIHZvaWQgY2xlYXJD
b3BpZWRJbWFnZSgpIGNvbnN0OwotCiAgICAgdm9pZCBzZXRQbGFjZWhvbGRlckNhbnZhcyhIVE1M
Q2FudmFzRWxlbWVudCYpOwogICAgIHZvaWQgcHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKTsKICAg
ICB2b2lkIHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9PZmZzY3JlZW5DYW52YXMuaWRsCmluZGV4IGZmZjJiZmRjZDI3YjIzOGIzN2FmOGMyZTE4
ZDczMjQxYTM0YjVlZTguLmFkOTQ5MDliMDY3NWRiZmU5MTE4M2VjOWIyZWFkMzg2ODI5MjdhMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5pZGwKQEAgLTIzLDExICsyMywx
NCBAQAogKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwogCit0eXBlZGVmICgK
ICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHTCkgJiYgRU5BQkxFX1dFQkdMCi10eXBlZGVmIChPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgb3IgV2ViR0xSZW5kZXJpbmdDb250ZXh0KSBP
ZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0OwotI2Vsc2UKLXR5cGVkZWYgKE9mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCkgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dDsKKyAgICBXZWJH
TFJlbmRlcmluZ0NvbnRleHQgb3IKICNlbmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMMikg
JiYgRU5BQkxFX1dFQkdMMgorICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQgb3IKKyNlbmRpZgor
ICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgT2Zmc2NyZWVuUmVuZGVyaW5n
Q29udGV4dDsKIAogZGljdGlvbmFyeSBJbWFnZUVuY29kZU9wdGlvbnMKIHsKQEAgLTM4LDcgKzQx
LDggQEAgZGljdGlvbmFyeSBJbWFnZUVuY29kZU9wdGlvbnMKIGVudW0gT2Zmc2NyZWVuUmVuZGVy
aW5nQ29udGV4dFR5cGUKIHsKICAgICIyZCIsCi0gICAid2ViZ2wiCisgICAid2ViZ2wiLAorICAg
IndlYmdsMiIKIH07CiAKIFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwKaW5kZXggYTZiYjMxZDA4NTdjMDJjYzg1OGY2ZmQw
N2U5ZWQxZDllOGM4NzM4Yi4uMjY5N2Y5OWRmNDc4ZWNlNmYxZGQ1OWJmMDIxMGM0ZDk0OTIyMmNi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5pZGwKQEAgLTU4LDYgKzU4LDcgQEAgdHlwZWRlZiAoSW1hZ2VCaXRtYXAgb3Ig
SW1hZ2VEYXRhIG9yIEhUTUxJbWFnZUVsZW1lbnQgb3IgSFRNTENhbnZhc0VsZW1lbnQpIFRleEkK
ICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAg
ICBEb05vdENoZWNrQ29uc3RhbnRzLAorICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAg
IENhbGxUcmFjaW5nQ2FsbGJhY2s9cmVjb3JkQ2FudmFzQWN0aW9uLAogXSBpbnRlcmZhY2UgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCmluZGV4IDRkMDRlNDFjNjI0NjU3ODRiNDU5
OTY5YmUyMTlhN2MzMTRiYjFkOWYuLmYzY2U5OTc4MTAxNjY0OGNlMzZiZGRjZjYzMmM1YmZmYTVm
MzRlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmlkbApAQCAtNDEsNiArNDEsNyBAQCB0eXBlZGVmIChJbWFnZUJpdG1hcCBv
ciBJbWFnZURhdGEgb3IgSFRNTEltYWdlRWxlbWVudCBvciBIVE1MQ2FudmFzRWxlbWVudCkgVGV4
SQogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgIERvTm90Q2hlY2tDb25zdGFudHMsCiAg
ICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtl
ciksCiAgICAgQ2FsbFRyYWNpbmdDYWxsYmFjaz1yZWNvcmRDYW52YXNBY3Rpb24sCiBdIGludGVy
ZmFjZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggYjU5
MzZlMjczZjg3ZTZmODIzOGVkNWVjZGY3YzQxNjU4ZGU0NDdhZC4uNjQ3MjIwMjQ3NDlmZDhiODE4
ZDIwNDMzODYxNjY5YWJlZmNmODdiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTc1MSw3ICs3NTEs
OCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KENhbnZhc0Jhc2UmIGNhbnZhcywgV2ViR0xDbwogICAgIG1fcmVzdG9yZVRpbWVyLnN1c3BlbmRJ
Zk5lZWRlZCgpOwogCiAgICAgcmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIoKTsKLSAgICBt
X2NoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZ1RpbWVyLnN0YXJ0T25lU2hvdChjaGVja0NvbnRl
eHRMb3NzSGFuZGxpbmdEZWxheSk7CisgICAgaWYgKGNhbnZhcy5pc0hUTUxDYW52YXNFbGVtZW50
KCkpCisgICAgICAgIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXIuc3RhcnRPbmVT
aG90KGNoZWNrQ29udGV4dExvc3NIYW5kbGluZ0RlbGF5KTsKIH0KIAogV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMs
IFJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4mJiBjb250ZXh0LCBXZWJHTENvbnRleHRBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMpCkBAIC03NzgsNyArNzc5LDggQEAgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFJl
ZjxHcmEKICAgICBzZXR1cEZsYWdzKCk7CiAKICAgICByZWdpc3RlcldpdGhXZWJHTFN0YXRlVHJh
Y2tlcigpOwotICAgIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXIuc3RhcnRPbmVT
aG90KGNoZWNrQ29udGV4dExvc3NIYW5kbGluZ0RlbGF5KTsKKyAgICBpZiAoY2FudmFzLmlzSFRN
TENhbnZhc0VsZW1lbnQoKSkKKyAgICAgICAgbV9jaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmdU
aW1lci5zdGFydE9uZVNob3QoY2hlY2tDb250ZXh0TG9zc0hhbmRsaW5nRGVsYXkpOwogCiAgICAg
YWRkQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVySWZOZWNlc3NhcnkoKTsKIH0KQEAgLTEwNjcs
MjEgKzEwNjksMjAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXJrQ29udGV4
dENoYW5nZWQoKQogCiAgICAgbV9sYXllckNsZWFyZWQgPSBmYWxzZTsKIAotICAgIGF1dG8qIGNh
bnZhcyA9IGh0bWxDYW52YXMoKTsKLSAgICBpZiAoIWNhbnZhcykKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52YXMtPnJlbmRlckJveCgpOwotICAgIGlm
IChpc0FjY2VsZXJhdGVkKCkgJiYgcmVuZGVyQm94ICYmIHJlbmRlckJveC0+aGFzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZygpKSB7Ci0gICAgICAgIG1fbWFya2VkQ2FudmFzRGlydHkgPSB0cnVlOwot
ICAgICAgICBodG1sQ2FudmFzKCktPmNsZWFyQ29waWVkSW1hZ2UoKTsKLSAgICAgICAgcmVuZGVy
Qm94LT5jb250ZW50Q2hhbmdlZChDYW52YXNQaXhlbHNDaGFuZ2VkKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBpZiAoIW1fbWFya2VkQ2FudmFzRGlydHkpIHsKKyAgICBpZiAoYXV0byogY2FudmFz
ID0gaHRtbENhbnZhcygpKSB7CisgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gY2FudmFz
LT5yZW5kZXJCb3goKTsKKyAgICAgICAgaWYgKGlzQWNjZWxlcmF0ZWQoKSAmJiByZW5kZXJCb3gg
JiYgcmVuZGVyQm94LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpIHsKICAgICAgICAgICAg
IG1fbWFya2VkQ2FudmFzRGlydHkgPSB0cnVlOwotICAgICAgICAgICAgY2FudmFzLT5kaWREcmF3
KEZsb2F0UmVjdChGbG9hdFBvaW50KDAsIDApLCBjbGFtcGVkQ2FudmFzU2l6ZSgpKSk7CisgICAg
ICAgICAgICBjYW52YXMtPmNsZWFyQ29waWVkSW1hZ2UoKTsKKyAgICAgICAgICAgIHJlbmRlckJv
eC0+Y29udGVudENoYW5nZWQoQ2FudmFzUGl4ZWxzQ2hhbmdlZCk7CisgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAoIW1fbWFya2VkQ2FudmFzRGlydHkpIHsK
KyAgICAgICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IHRydWU7CisgICAgICAgIGNhbnZhc0Jhc2Uo
KS5kaWREcmF3KEZsb2F0UmVjdChGbG9hdFBvaW50KDAsIDApLCBjbGFtcGVkQ2FudmFzU2l6ZSgp
KSk7CisgICAgfQogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1hcmtDb250
ZXh0Q2hhbmdlZEFuZE5vdGlmeUNhbnZhc09ic2VydmVyKCkKQEAgLTExODgsMzAgKzExODksMzEg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNU
b0NhbnZhcygpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byogY2FudmFzID0gaHRtbENhbnZhcygpOwotICAgIGlmICghY2FudmFz
KQotICAgICAgICByZXR1cm47CisgICAgaWYgKGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKSkg
eworICAgICAgICBpZiAoY2FudmFzLT5kb2N1bWVudCgpLnByaW50aW5nKCkgfHwgKGNhbnZhcy0+
aXNTbmFwc2hvdHRpbmcoKSAmJiBjYW52YXMtPmRvY3VtZW50KCkucGFnZSgpLT5pc1Zpc2libGUo
KSkpCisgICAgICAgICAgICBjYW52YXMtPmNsZWFyUHJlc2VudGF0aW9uQ29weSgpOwogCi0gICAg
aWYgKGNhbnZhcy0+ZG9jdW1lbnQoKS5wcmludGluZygpIHx8IChjYW52YXMtPmlzU25hcHNob3R0
aW5nKCkgJiYgY2FudmFzLT5kb2N1bWVudCgpLnBhZ2UoKS0+aXNWaXNpYmxlKCkpKQotICAgICAg
ICBjYW52YXMtPmNsZWFyUHJlc2VudGF0aW9uQ29weSgpOworICAgICAgICAvLyBVbnRpbCB0aGUg
Y2FudmFzIGlzIHdyaXR0ZW4gdG8gYnkgdGhlIGFwcGxpY2F0aW9uLCB0aGUgY2xlYXIgdGhhdAor
ICAgICAgICAvLyBoYXBwZW5lZCBhZnRlciBpdCB3YXMgY29tcG9zaXRlZCBzaG91bGQgYmUgaWdu
b3JlZCBieSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgaWYgKG1fY29udGV4dC0+bGF5ZXJDb21w
b3NpdGVkKCkgJiYgIW1fYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpIHsKKyAgICAg
ICAgICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoY2FudmFzLT5i
dWZmZXIoKSk7CiAKLSAgICAvLyBVbnRpbCB0aGUgY2FudmFzIGlzIHdyaXR0ZW4gdG8gYnkgdGhl
IGFwcGxpY2F0aW9uLCB0aGUgY2xlYXIgdGhhdAotICAgIC8vIGhhcHBlbmVkIGFmdGVyIGl0IHdh
cyBjb21wb3NpdGVkIHNob3VsZCBiZSBpZ25vcmVkIGJ5IHRoZSBjb21wb3NpdG9yLgotICAgIGlm
IChtX2NvbnRleHQtPmxheWVyQ29tcG9zaXRlZCgpICYmICFtX2F0dHJpYnV0ZXMucHJlc2VydmVE
cmF3aW5nQnVmZmVyKSB7Ci0gICAgICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRz
VG9DYW52YXMoY2FudmFzLT5idWZmZXIoKSk7CisgICAgICAgICAgICBjYW52YXMtPm1ha2VQcmVz
ZW50YXRpb25Db3B5KCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY2FudmFzLT5jbGVh
clByZXNlbnRhdGlvbkNvcHkoKTsKKyAgICB9CiAKLSAgICAgICAgY2FudmFzLT5tYWtlUHJlc2Vu
dGF0aW9uQ29weSgpOwotICAgIH0gZWxzZQotICAgICAgICBjYW52YXMtPmNsZWFyUHJlc2VudGF0
aW9uQ29weSgpOwogICAgIGNsZWFySWZDb21wb3NpdGVkKCk7CiAKICAgICBpZiAoIW1fbWFya2Vk
Q2FudmFzRGlydHkgJiYgIW1fbGF5ZXJDbGVhcmVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBj
YW52YXMtPmNsZWFyQ29waWVkSW1hZ2UoKTsKKyAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgp
OworICAgIGJhc2UuY2xlYXJDb3BpZWRJbWFnZSgpOworCiAgICAgbV9tYXJrZWRDYW52YXNEaXJ0
eSA9IGZhbHNlOwogCi0gICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZh
cyhjYW52YXMtPmJ1ZmZlcigpKTsKKyAgICBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0
c1RvQ2FudmFzKGJhc2UuYnVmZmVyKCkpOwogfQogCiBSZWZQdHI8SW1hZ2VEYXRhPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDkwZTZh
OThiNjFjYzhlZDcyOWQ4ZDMyZTljMzY0ZWY2YTlkYjQyZGEuLmIyZjMzMTJjZjRiMDQ2MWI4N2Zh
YWFjMzljZDQyYTA2M2U1OGFjNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCkBAIC03OSw2ICs3OSw4IEBAIFdvcmtlckdsb2JhbFNjb3BlOjpXb3Jr
ZXJHbG9iYWxTY29wZShjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiBwYXJhbXMsIFJlZjxTZWN1cml0
CiAgICAgLCBtX3BlcmZvcm1hbmNlKFBlcmZvcm1hbmNlOjpjcmVhdGUodGhpcywgcGFyYW1zLnRp
bWVPcmlnaW4pKQogICAgICwgbV9yZWZlcnJlclBvbGljeShwYXJhbXMucmVmZXJyZXJQb2xpY3kp
CiAgICAgLCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQocGFyYW1zLnJlcXVlc3RBbmlt
YXRpb25GcmFtZUVuYWJsZWQpCisgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KHBhcmFtcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCkKKyAgICAsIG1fd2ViR0xFbmFi
bGVkKHBhcmFtcy53ZWJHTEVuYWJsZWQpCiB7CiAjaWYgIUVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uUHJveHkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGJhZDE1MWU0ZjM5OTI2NjJhZmFlMDg4OTVi
YmNkY2FjZDk2Y2QxZjkuLmJkOWNmMTQwZGQ1MmZiODQ5OGI5ZmE0MTA2MGM5M2FiZmE2ODM4NWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTE0Miw2
ICsxNDIsOCBAQCBwdWJsaWM6CiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBj
b25zdCBmaW5hbDsKIAogICAgIGJvb2wgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZDsgfQorICAgIGJvb2wg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkOyB9CisgICAgYm9vbCB3ZWJHTEVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX3dlYkdMRW5hYmxlZDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgV29ya2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgV29y
a2VyVGhyZWFkJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOwpAQCAtMjIzLDYgKzIyNSw4IEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1ZhbHVlUG9vbD4gbV9jc3NWYWx1ZVBv
b2w7CiAgICAgUmVmZXJyZXJQb2xpY3kgbV9yZWZlcnJlclBvbGljeTsKICAgICBib29sIG1fcmVx
dWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZDsKKyAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQ7CisgICAgYm9vbCBtX3dlYkdMRW5hYmxlZDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAKaW5kZXggYjlkMTk3MGZkYjRlNzc0OGQ2ZmYzNTM3NjQyYTlkMDliYjgxMjlhNy4u
YzQyMTJiMjY1ODI5N2IzZTQxM2ExMmQ1NTVhOTgyZmI4NzY1MDVjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTg5LDcgKzg5LDcg
QEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25z
dCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3QKIAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQ
cm92aWRlciA9IGRvY3VtZW50LnNvY2tldFByb3ZpZGVyKCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0
ZXJzIHBhcmFtcyA9IHsgc2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlz
T25saW5lLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xp
Y3ksIGRvY3VtZW50LnNldHRpbmdzKCkucmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpIH07
CisgICAgV29ya2VyUGFyYW1ldGVycyBwYXJhbXMgPSB7IHNjcmlwdFVSTCwgbmFtZSwgaWRlbnRp
ZmllciwgdXNlckFnZW50LCBpc09ubGluZSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRpbWVP
cmlnaW4sIHJlZmVycmVyUG9saWN5LCBkb2N1bWVudC5zZXR0aW5ncygpLnJlcXVlc3RBbmltYXRp
b25GcmFtZUVuYWJsZWQoKSwgZG9jdW1lbnQuc2V0dGluZ3MoKS5hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCgpLCBkb2N1bWVudC5zZXR0aW5ncygpLndlYkdMRW5hYmxlZCgpIH07CiAgICAg
YXV0byB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwYXJhbXMsIHNvdXJj
ZUNvZGUsICp0aGlzLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgZG9jdW1lbnQudG9wT3JpZ2lu
KCksIHByb3h5LCBzb2NrZXRQcm92aWRlciwgcnVudGltZUZsYWdzKTsKIAogICAgIHdvcmtlclRo
cmVhZENyZWF0ZWQodGhyZWFkLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcAppbmRleCA3MjE5NmEwNTc3ZjAwY2U4YTAyN2ZlNTU2ZjkyZTMxNjRkNmJlMmIwLi41
OTY0ZDUxMTE3OWIwZjg1ZWZkYWYxMzEyNjAxZDEzNDliOWFmOTVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC04Miw2ICs4Miw4IEBAIFdvcmtlclBhcmFtZXRl
cnMgV29ya2VyUGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICAgICAgdGltZU9y
aWdpbiwKICAgICAgICAgcmVmZXJyZXJQb2xpY3ksCiAgICAgICAgIHJlcXVlc3RBbmltYXRpb25G
cmFtZUVuYWJsZWQsCisgICAgICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkLAorICAg
ICAgICB3ZWJHTEVuYWJsZWQsCiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmgKaW5kZXggYzYyNWU0MmVkZDFhMjk1ZjE4MmViODFiMDRiODBhNWQ3NDUyZDM3YS4u
ZDc3NjMzYzA1NDZmNDNkZWRmZDVhMDRjNmU0NDNhODlmOTkwZjIzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC02OSw2ICs2OSw4IEBAIHB1YmxpYzoKICAgICBNb25v
dG9uaWNUaW1lIHRpbWVPcmlnaW47CiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3k7
CiAgICAgYm9vbCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkOworICAgIGJvb2wgYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7CisgICAgYm9vbCB3ZWJHTEVuYWJsZWQ7CiAKICAgICBX
b3JrZXJQYXJhbWV0ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAKaW5kZXggZDJmM2U3NzRlMDhmMWRmMjE0YzBlNDU4MWFiZDM4YzAxMzUwNjky
OC4uMGRhZjFiMmM0ZDE2MGM5YzVmYTA0ZjA0NzAxZTlhZmVhZWFlMDBlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBV
c2UgdmFsaWQgcnVudGltZSBmbGFncwogCiBTZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29y
a2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU3RyaW5nJiYg
dXNlckFnZW50LCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2Vy
UHJveHkmIGRlYnVnZ2VyUHJveHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJD
b25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKLSAgICA6IFdv
cmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdvcmtl
cjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwg
V1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3ko
KS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25vdG9u
aWNUaW1lOjpub3coKSwgeyB9LCB0cnVlIH0sIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVi
dWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3Jr
ZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdp
bigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJv
dmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkpCisgICAgOiBXb3Jr
ZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwgInNlcnZpY2V3b3JrZXI6
IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCksIFdU
Rk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCkt
PmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBmYWxzZSwgTW9ub3Rvbmlj
VGltZTo6bm93KCksIHsgfSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSB9LCBkYXRhLnNjcmlwdCwgbG9hZGVy
UHJveHksIGRlYnVnZ2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFy
ZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtl
eS50b3BPcmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHks
IHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQog
ICAgICwgbV9kYXRhKGRhdGEuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFBy
b3h5KER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKICAgICAsIG1faGVh
cnRCZWF0VGltZW91dChTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkt
PnNob3VsZFVzZVNob3J0VGltZW91dCgpID8gaGVhcnRCZWF0VGltZW91dEZvclRlc3QgOiBoZWFy
dEJlYXRUaW1lb3V0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDUxMGRjNWNj
YWIxOTM0OTljMzkyNTU4MTU4N2NkODFhMDAyNTQ4MC4uYzU0ODhmNGJjYTA4ZjlkYzg1NGZiNjM0
NzcyMzRlMTQ0NTExMzM1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMjAtMDgtMjYgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIEFkZCBXZWJHTCgyKSBjb250ZXh0IHN1cHBvcnQgdG8gT2Zmc2NyZWVuQ2FudmFzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4MDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgUmViYXNlbGluZSBP
ZmZzY3JlZW5DYW52YXMgdGVzdHMgYWZ0ZXIgZW5hYmxpbmcgV2ViR0wgY29udGV4dHMuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90
aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9t
YW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29y
a2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOC0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgcGlwZVRocm91Z2ggc2hvdWxkIGNoZWNrIGZvciByZWFkYWJs
ZVN0cmVhbSB0eXBlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4
cGVjdGVkLnR4dAppbmRleCBjNTdhMjkzZWM0YTliZDY4YzZkOTFmOWFiYzgyNTU0YzRkZjg4ZjZh
Li5jMGU5ZGIwNWI1ZGY0MDkwY2E5N2ZmNjYzNDY1NzRjMTQ1YTExZWExIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNv
bnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNh
bnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2
IEBACiAKIFBBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQgc3RyaW5n
IHRocm93cyBhIFR5cGVFcnJvci4gCi1GQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3Vw
cG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBBcmd1bWVudCAxICgnY29udGV4
dFR5cGUnKSB0byBPZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCBtdXN0IGJlIG9uZSBvZjogIjJk
IiwgIndlYmdsIgorRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJp
bmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dAogUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZl
cmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSAKIFBBU1MgVGVz
dCB0aGF0IDJkY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2Ny
ZWVuQ2FudmFzIAogUEFTUyBUZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0
dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9t
YW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29y
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDM5ZmMy
Y2Y5YWFkZGU3ZjJkYjFiM2UyZTMzNjg5ZWQ3MDcxNzhjYTEuLmMwZTlkYjA1YjVkZjQwOTBjYTk3
ZmY2NjM0NjU3NGMxNDVhMTFlYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCiBQ
QVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0cmluZyB0aHJvd3Mg
YSBUeXBlRXJyb3IuIAotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBz
dHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV2ViR0xS
ZW5kZXJpbmdDb250ZXh0CitGQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVk
IHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0CiBQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGgg
ZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIAogUEFT
UyBUZXN0IHRoYXQgMmRjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBP
ZmZzY3JlZW5DYW52YXMgCiBQQVNTIFRlc3QgdGhhdCB3ZWJnbGNvbnRleHQuY2FudmFzIHNob3Vs
ZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAK
</data>

          </attachment>
      

    </bug>

</bugzilla>