<?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>222410</bug_id>
          
          <creation_ts>2021-02-25 03:47:52 -0800</creation_ts>
          <short_desc>RemoteGraphicsContextGL ReadPixels does not preserve contents for area that is not part of the Framebuffer</short_desc>
          <delta_ts>2022-03-08 22:51:05 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=234536</see_also>
          <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>
          
          <blocked>217211</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="John Cunningham">johncunningham</assigned_to>
          <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733278</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-25 03:47:52 -0800</bug_when>
    <thetext>RemoteGraphicsContext ReadPixels does not preserve contents for area that is not written

When readPixels is used with source rectangle that contains areas that are not part of the Framebuffer, then the memory contents of the buffer should not be changed for that part.

E.g. when doing
data[0] = 77;
 readPixels(-1, -1, 10000000, 10000000, .., data)

then data[0] should be preserved as 77 as -1,-1 is not part of the framebuffer being read.

Problem since the webp-&gt;gpup does not don&apos;t transfer the buffer, but also does not risk the calculations to only populate part of the result buffer.

webgl/2.0.0/conformance/reading/read-pixels-test.html [ Failure ]
webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters.html [ Failure ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735735</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-04 01:34:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/75025951&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848350</commentid>
    <comment_count>2</comment_count>
      <attachid>453856</attachid>
    <who name="John Cunningham">johncunningham</who>
    <bug_when>2022-03-04 10:44:48 -0800</bug_when>
    <thetext>Created attachment 453856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848659</commentid>
    <comment_count>3</comment_count>
      <attachid>453856</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-07 02:56:56 -0800</bug_when>
    <thetext>Comment on attachment 453856
Patch

Looks good.
Can you remove the entry at the bottom of LayoutTests/platform/ios-wk2/TestExpectations

webkit.org/b/234536 webgl/2.0.0/conformance/reading/read-pixels-test.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848825</commentid>
    <comment_count>4</comment_count>
      <attachid>454000</attachid>
    <who name="John Cunningham">johncunningham</who>
    <bug_when>2022-03-07 10:44:49 -0800</bug_when>
    <thetext>Created attachment 454000
Patch for Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849347</commentid>
    <comment_count>5</comment_count>
      <attachid>454137</attachid>
    <who name="John Cunningham">johncunningham</who>
    <bug_when>2022-03-08 11:46:16 -0800</bug_when>
    <thetext>Created attachment 454137
Patch for Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849546</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-08 22:51:02 -0800</bug_when>
    <thetext>Committed r291032 (248206@main): &lt;https://commits.webkit.org/248206@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454137.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453856</attachid>
            <date>2022-03-04 10:44:48 -0800</date>
            <delta_ts>2022-03-07 10:44:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222410-20220304104447.patch</filename>
            <type>text/plain</type>
            <size>15901</size>
            <attacher name="John Cunningham">johncunningham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxMzA2NTAyMzhjZTY5NTVk
YmY4YjViNjEzZWZlMWQ0NDhjNjA1ZDkuLmQ1MGFjYTgzMGVhODVlNTViNjBmN2U5ZDUxYWIyNjVm
YzA2ZjE0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDMtMDQgIEpvaG4gQ3Vu
bmluZ2hhbSAgPGpvaG5jdW5uaW5naGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTCBSZWFkUGl4ZWxzIGRvZXMgbm90IHByZXNlcnZlIGNvbnRlbnRzIGZvciBh
cmVhIHRoYXQgaXMgbm90IHBhcnQgb2YgdGhlIEZyYW1lYnVmZmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MTAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzc1MDI1OTUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1ha2UgYSBjb3B5IG9mIHRoZSBkYXRhIGJ1ZmZlciBwYXNzZWQgaW50byByZWFk
bnBpeGVscyBzbyB0aGF0IHJlYWRzIG91dHNpZGUgdGhlIGZyYW1lYnVmZmVyIGNvbnRhaW4KKyAg
ICAgICAgdGhlIGV4cGVjdGVkIHJlc3VsdHMsIHJhdGhlciB0aGFuIGJlaW5nIHplcm8nZC4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cmVhZG5QaXhlbHMw
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnJlYWRuUGl4ZWxz
MSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oOgorICAgICAgICAoYnVmZmVyU3ViRGF0
YSk6CisgICAgICAgIChyZWFkblBpeGVsczApOiBEZWxldGVkLgorICAgICAgICAocmVhZG5QaXhl
bHMxKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTo6cmVhZG5QaXhlbHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25z
R2VuZXJhdGVkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eTo6cmVhZG5QaXhlbHMpOiBEZWxldGVkLgorCiAyMDIyLTAzLTAyICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgTWVkaWFTYW1wbGVBVkZPYmpD
OjpjcmVhdGVJbWFnZVNhbXBsZSB0byBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhl
bEJ1ZmZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggYTY1OGZhZDk1YjRiMjNjYTc4
YWNmYTQ1MDRiNmFhYTczYzM2MGVmNS4uN2Y2Y2VjOWMyYzNkMWU5M2Q1YjVkZmY1NGRiOTRiODIy
N2E4ZmUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0zMDMsNiArMzAzLDIwIEBA
IHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMCiAgICAgbV9jb250ZXh0LT5zaW11bGF0ZUV2ZW50Rm9y
VGVzdGluZyhldmVudCk7CiB9CiAKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnJlYWRu
UGl4ZWxzMChpbnQzMl90IHgsIGludDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWln
aHQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgSVBDOjpBcnJheVJlZmVyZW5jZTx1
aW50OF90PiYmIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpBcnJheVJlZmVyZW5j
ZTx1aW50OF90Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXNzZXJ0SXNDdXJyZW50
KHdvcmtRdWV1ZSgpKTsKKyAgICBWZWN0b3I8dWludDhfdCwgND4gcGl4ZWxzKGRhdGEpOworICAg
IG1fY29udGV4dC0+cmVhZG5QaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBl
LCBwaXhlbHMpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6QXJyYXlSZWZlcmVuY2U8dWlu
dDhfdD4ocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ocGl4ZWxzLmRhdGEoKSksIHBpeGVscy5z
aXplKCkpKTsKK30KKwordm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cmVhZG5QaXhlbHMx
KGludDMyX3QgeCwgaW50MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgdWlu
dDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCB1aW50NjRfdCBvZmZzZXQpCit7CisgICAgYXNz
ZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKKyAgICBtX2NvbnRleHQtPnJlYWRuUGl4ZWxzKHgs
IHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3RhdGljX2Nhc3Q8R0NHTGludHB0cj4o
b2Zmc2V0KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmgKaW5kZXggOWUwNTRjZGI3MTQ4NzkxYmNlOGEwMWZlM2VlOWQ1ZTdkMGY1NWZl
MC4uZTgwZGYwNzkyNzgzM2JjZWY1NGQ0ODNlMDczMjlhMGM4MjM3ODNmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmgKQEAgLTEyNiw2ICsxMjYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb3B5
VGV4dHVyZUZyb21WaWRlb0ZyYW1lKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlLCB1aW50
MzJfdCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGlu
dGVybmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSwgYm9vbCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CiAjZW5kaWYKICAgICB2b2lkIHNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMOjpTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcpOworICAgIHZvaWQgcmVhZG5Q
aXhlbHMwKGludDMyX3QgeCwgaW50MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdo
dCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBJUEM6OkFycmF5UmVmZXJlbmNlPHVp
bnQ4X3Q+JiYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkFycmF5UmVmZXJlbmNl
PHVpbnQ4X3Q+KT4mJik7CisgICAgdm9pZCByZWFkblBpeGVsczEoaW50MzJfdCB4LCBpbnQzMl90
IHksIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQz
Ml90IHR5cGUsIHVpbnQ2NF90IG9mZnNldCk7CiAKICNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oIiAvLyBOT0xJTlQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluCmluZGV4IGQyNzY1ODVhMjJjZGJkMzdlNTkwZGY2ZDgz
MDIzYjdhMzRkMGM0N2UuLjZjYzhhNTA4NTBkMmMwYjQ3MTQ1YmVhM2RiNDRmZTFjNjc0OTc4MWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4KQEAgLTQ4LDYgKzQ4
LDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgTm90UmVmQ291bnRlZCBT
dHJlYW0gewogICAgIHZvaWQgUGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGll
cz4gcHJvcGVydGllcykgU3luY2hyb25vdXMKICNlbmRpZgogICAgIHZvaWQgU2ltdWxhdGVFdmVu
dEZvclRlc3RpbmcoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlNpbXVsYXRlZEV2ZW50Rm9y
VGVzdGluZyBldmVudCkKKyAgICB2b2lkIFJlYWRuUGl4ZWxzMChpbnQzMl90IHgsIGludDMyX3Qg
eSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMy
X3QgdHlwZSwgSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90PiBkYXRhKSAtPiAoSVBDOjpBcnJh
eVJlZmVyZW5jZTx1aW50OF90PiBkYXRhKSBTeW5jaHJvbm91cworICAgIHZvaWQgUmVhZG5QaXhl
bHMxKGludDMyX3QgeCwgaW50MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwg
dWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCB1aW50NjRfdCBvZmZzZXQpCiAKICAgICB2
b2lkIE1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlzdCgpIC0+IChib29sIHJldHVyblZhbHVl
KSBTeW5jaHJvbm91cwogICAgIHZvaWQgQWN0aXZlVGV4dHVyZSh1aW50MzJfdCB0ZXh0dXJlKQpA
QCAtMTgzLDggKzE4NSw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIE5v
dFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICB2b2lkIEJ1ZmZlckRhdGEwKHVpbnQzMl90IHRhcmdl
dCwgdWludDY0X3QgYXJnMSwgdWludDMyX3QgdXNhZ2UpCiAgICAgdm9pZCBCdWZmZXJEYXRhMSh1
aW50MzJfdCB0YXJnZXQsIElQQzo6QXJyYXlSZWZlcmVuY2U8dWludDhfdD4gZGF0YSwgdWludDMy
X3QgdXNhZ2UpCiAgICAgdm9pZCBCdWZmZXJTdWJEYXRhKHVpbnQzMl90IHRhcmdldCwgdWludDY0
X3Qgb2Zmc2V0LCBJUEM6OkFycmF5UmVmZXJlbmNlPHVpbnQ4X3Q+IGRhdGEpCi0gICAgdm9pZCBS
ZWFkblBpeGVsczAoaW50MzJfdCB4LCBpbnQzMl90IHksIGludDMyX3Qgd2lkdGgsIGludDMyX3Qg
aGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIHVpbnQ2NF90IGRhdGFTaXpl
KSAtPiAoSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90PiBkYXRhKSBTeW5jaHJvbm91cwotICAg
IHZvaWQgUmVhZG5QaXhlbHMxKGludDMyX3QgeCwgaW50MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBp
bnQzMl90IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCB1aW50NjRfdCBv
ZmZzZXQpCiAgICAgdm9pZCBUZXhJbWFnZTJEMCh1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2
ZWwsIHVpbnQzMl90IGludGVybmFsZm9ybWF0LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdo
dCwgaW50MzJfdCBib3JkZXIsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgSVBDOjpB
cnJheVJlZmVyZW5jZTx1aW50OF90PiBwaXhlbHMpCiAgICAgdm9pZCBUZXhJbWFnZTJEMSh1aW50
MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVybmFsZm9ybWF0LCBpbnQz
Ml90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgaW50MzJfdCBib3JkZXIsIHVpbnQzMl90IGZvcm1h
dCwgdWludDMyX3QgdHlwZSwgdWludDY0X3Qgb2Zmc2V0KQogICAgIHZvaWQgVGV4U3ViSW1hZ2Uy
RDAodWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCBpbnQzMl90IHhvZmZzZXQsIGludDMy
X3QgeW9mZnNldCwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGZvcm1h
dCwgdWludDMyX3QgdHlwZSwgSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90PiBwaXhlbHMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oCmlu
ZGV4IGE1OWU4Y2EwOTg5OTg5MGEyNGFjN2JkODMyYzdjYzFjZmUwZDNjZjkuLjRhNTNmODg3MzZm
OGUwYzllOWQ5ZDM4MDAxZmZlZDM1Mjk3N2NkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVy
YXRlZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oCkBAIC03NzgsMTggKzc3OCw2IEBACiAg
ICAgICAgIGFzc2VydElzQ3VycmVudCh3b3JrUXVldWUoKSk7CiAgICAgICAgIG1fY29udGV4dC0+
YnVmZmVyU3ViRGF0YSh0YXJnZXQsIHN0YXRpY19jYXN0PEdDR0xpbnRwdHI+KG9mZnNldCksIG1h
a2VHQ0dMU3BhbihyZWludGVycHJldF9jYXN0PGNvbnN0IEdDR0x2b2lkKj4oZGF0YS5kYXRhKCkp
LCBkYXRhLnNpemUoKSkpOwogICAgIH0KLSAgICB2b2lkIHJlYWRuUGl4ZWxzMChpbnQzMl90IHgs
IGludDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGZvcm1h
dCwgdWludDMyX3QgdHlwZSwgdWludDY0X3QgZGF0YVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi0g
ICAgewotICAgICAgICBWZWN0b3I8R0NHTGNoYXIsIDQ+IGRhdGEoc3RhdGljX2Nhc3Q8c2l6ZV90
PihkYXRhU2l6ZSksIDApOwotICAgICAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOwot
ICAgICAgICBtX2NvbnRleHQtPnJlYWRuUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgZGF0YSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6QXJyYXlSZWZl
cmVuY2U8dWludDhfdD4ocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YS5kYXRhKCkpLCBk
YXRhLnNpemUoKSkpOwotICAgIH0KLSAgICB2b2lkIHJlYWRuUGl4ZWxzMShpbnQzMl90IHgsIGlu
dDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwg
dWludDMyX3QgdHlwZSwgdWludDY0X3Qgb2Zmc2V0KQotICAgIHsKLSAgICAgICAgYXNzZXJ0SXND
dXJyZW50KHdvcmtRdWV1ZSgpKTsKLSAgICAgICAgbV9jb250ZXh0LT5yZWFkblBpeGVscyh4LCB5
LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN0YXRpY19jYXN0PEdDR0xpbnRwdHI+KG9m
ZnNldCkpOwotICAgIH0KICAgICB2b2lkIHRleEltYWdlMkQwKHVpbnQzMl90IHRhcmdldCwgaW50
MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxmb3JtYXQsIGludDMyX3Qgd2lkdGgsIGludDMy
X3QgaGVpZ2h0LCBpbnQzMl90IGJvcmRlciwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBl
LCBJUEM6OkFycmF5UmVmZXJlbmNlPHVpbnQ4X3Q+JiYgcGl4ZWxzKQogICAgIHsKICAgICAgICAg
YXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHkuY3BwCmluZGV4IGEyNjUwZWVhZTM4NTllNDQ5MTIxNmI2OWI5ZTU4MDhlMGMx
ZjAzNWQuLjFiMjNjZjYwNDNkYTZlYWZlY2U3NzJiMzZkYjZjYmI2ZDE3YmRhMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcApAQCAtMjMzLDYgKzIzMywyNyBA
QCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnNpbXVsYXRlRXZlbnRGb3JUZXN0
aW5nKFNpbXVsYXRlZEV2ZW50Rm9yVGVzdAogICAgIH0KIH0KIAordm9pZCBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5OjpyZWFkblBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNp
emVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5
cGUsIEdDR0xTcGFuPEdDR0x2b2lkPiBkYXRhKQoreworICAgIElQQzo6QXJyYXlSZWZlcmVuY2U8
dWludDhfdD4gZGF0YVJlcGx5OworICAgIGlmICghaXNDb250ZXh0TG9zdCgpKSB7CisgICAgICAg
IGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTDo6UmVhZG5QaXhlbHMwKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgSVBD
OjpBcnJheVJlZmVyZW5jZTx1aW50OF90PihyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRh
LmRhdGEpLCBkYXRhLmJ1ZlNpemUpKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
OjpSZWFkblBpeGVsczA6OlJlcGx5KGRhdGFSZXBseSkpOworICAgICAgICBpZiAoIXNlbmRSZXN1
bHQpCisgICAgICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbWVtY3B5KGRhdGEuZGF0YSwgZGF0YVJlcGx5LmRhdGEoKSwgZGF0YS5idWZTaXplICog
c2l6ZW9mKHVpbnQ4X3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eTo6cmVhZG5QaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0
aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dM
aW50cHRyIG9mZnNldCkKK3sKKyAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkgeworICAgICAgICBh
dXRvIHNlbmRSZXN1bHQgPSBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6
UmVhZG5QaXhlbHMxKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KG9mZnNldCkpKTsKKyAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQorICAgICAg
ICAgICAgbWFya0NvbnRleHRMb3N0KCk7CisgICAgfQorfQorCiB2b2lkIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHk6Ondhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9y
ZSYmIHNlbWFwaG9yZSwgU3RyaW5nJiYgYXZhaWxhYmxlRXh0ZW5zaW9ucywgU3RyaW5nJiYgcmVx
dWVzdGVkRXh0ZW5zaW9ucykKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAppbmRleCBmNzY1NDAzYTU2OTcwYTQ3YTFkM2Y2
YzMxM2IwNWI3MDgwMThmMzQzLi5mMGI4Y2E5OGY5MGIzMTZmZmQwNWQzOWIzOGU4MmIxM2NiYmM0
NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaApAQCAtNzcsNiAr
NzcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpN
ZWRpYVBsYXllciYsIFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBH
Q0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBH
Q0dMZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIGZpbmFsOwog
I2VuZGlmCiAgICAgdm9pZCBzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhTaW11bGF0ZWRFdmVudEZv
clRlc3RpbmcpIGZpbmFsOworICAgIHZvaWQgcmVhZG5QaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50
IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBH
Q0dMZW51bSB0eXBlLCBHQ0dMU3BhbjxHQ0dMdm9pZD4gZGF0YSkgZmluYWw7CisgICAgdm9pZCBy
ZWFkblBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6
ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEdDR0xpbnRwdHIgb2Zm
c2V0KSBmaW5hbDsKIAogICAgIC8vIEZ1bmN0aW9ucyB3aXRoIGEgZ2VuZXJhdGVkIGltcGxlbWVu
dGF0aW9uLiBUaGlzIGxpc3QgaXMgdXNlZCBieSBnZW5lcmF0ZS1ncHVwLXdlYmdsIHNjcmlwdC4K
ICAgICBib29sIG1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlzdCgpIGZpbmFsOwpAQCAtMjEz
LDggKzIxNSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGJ1ZmZlckRhdGEoR0NHTGVudW0gdGFyZ2V0
LCBHQ0dMc2l6ZWlwdHIgYXJnMSwgR0NHTGVudW0gdXNhZ2UpIGZpbmFsOwogICAgIHZvaWQgYnVm
ZmVyRGF0YShHQ0dMZW51bSB0YXJnZXQsIEdDR0xTcGFuPGNvbnN0IEdDR0x2b2lkPiBkYXRhLCBH
Q0dMZW51bSB1c2FnZSkgZmluYWw7CiAgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDR0xlbnVtIHRh
cmdldCwgR0NHTGludHB0ciBvZmZzZXQsIEdDR0xTcGFuPGNvbnN0IEdDR0x2b2lkPiBkYXRhKSBm
aW5hbDsKLSAgICB2b2lkIHJlYWRuUGl4ZWxzKEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6
ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlw
ZSwgR0NHTFNwYW48R0NHTHZvaWQ+IGRhdGEpIGZpbmFsOwotICAgIHZvaWQgcmVhZG5QaXhlbHMo
R0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwg
R0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dMaW50cHRyIG9mZnNldCkgZmluYWw7
CiAgICAgdm9pZCB0ZXhJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NH
TGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwg
R0NHTGludCBib3JkZXIsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTFNwYW48
Y29uc3QgR0NHTHZvaWQ+IHBpeGVscykgZmluYWw7CiAgICAgdm9pZCB0ZXhJbWFnZTJEKEdDR0xl
bnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDR0xz
aXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGludCBib3JkZXIsIEdDR0xlbnVtIGZv
cm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTGludHB0ciBvZmZzZXQpIGZpbmFsOwogICAgIHZvaWQg
dGV4U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgeG9m
ZnNldCwgR0NHTGludCB5b2Zmc2V0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQs
IEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTFNwYW48Y29uc3QgR0NHTHZvaWQ+
IHBpeGVscykgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcAppbmRleCAxNzkwOGY3NmZjNzhk
MjExYjUxM2E0M2VkMjQxYWY3NDhkZDU4NTc3Li4xZjI5NjA2ZmJiMzgzNTRlMDg3NWU4NWU3M2Rj
Njg2YjUzOTE4ZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKQEAgLTEzMjgsMjcgKzEzMjgs
NiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmJ1ZmZlclN1YkRhdGEoR0NH
TGVudW0gdGFyZ2V0LCBHQ0dMaW50cHRyIG9mZgogICAgIH0KIH0KIAotdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5OjpyZWFkblBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NH
THNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVt
IHR5cGUsIEdDR0xTcGFuPEdDR0x2b2lkPiBkYXRhKQotewotICAgIElQQzo6QXJyYXlSZWZlcmVu
Y2U8dWludDhfdD4gZGF0YVJlcGx5OwotICAgIGlmICghaXNDb250ZXh0TG9zdCgpKSB7Ci0gICAg
ICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTDo6UmVhZG5QaXhlbHMwKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwg
ZGF0YS5idWZTaXplKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpSZWFkblBp
eGVsczA6OlJlcGx5KGRhdGFSZXBseSkpOwotICAgICAgICBpZiAoIXNlbmRSZXN1bHQpCi0gICAg
ICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbWVt
Y3B5KGRhdGEuZGF0YSwgZGF0YVJlcGx5LmRhdGEoKSwgZGF0YS5idWZTaXplICogc2l6ZW9mKHVp
bnQ4X3QpKTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6
cmVhZG5QaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNp
emVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dMaW50cHRyIG9m
ZnNldCkKLXsKLSAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkgewotICAgICAgICBhdXRvIHNlbmRS
ZXN1bHQgPSBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVhZG5QaXhl
bHMxKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KG9mZnNldCkpKTsKLSAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQotICAgICAgICAgICAgbWFy
a0NvbnRleHRMb3N0KCk7Ci0gICAgfQotfQotCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHk6OnRleEltYWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dM
aW50IGJvcmRlciwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dMU3Bhbjxjb25z
dCBHQ0dMdm9pZD4gcGl4ZWxzKQogewogICAgIGlmICghaXNDb250ZXh0TG9zdCgpKSB7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzBiODViMzAy
MzRhYWJjY2U4ZTIyZTZjNTdjOTEyN2E0MzVmNjg5OS4uMjhmNjQ2NDc1OTM4MWMwYWQyZTA0OWJj
Y2U5YmVmYTk1YTFmMjZlOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAzLTA0ICBKb2huIEN1bm5pbmdoYW0g
IDxqb2huY3VubmluZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wgUmVhZFBpeGVscyBkb2VzIG5vdCBwcmVzZXJ2ZSBjb250ZW50cyBmb3IgYXJlYSB0aGF0
IGlzIG5vdCBwYXJ0IG9mIHRoZSBGcmFtZWJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
NTAyNTk1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIGEgY29weSBvZiB0aGUgZGF0YSBidWZmZXIgcGFzc2VkIGludG8gcmVhZG5waXhlbHMg
c28gdGhhdCByZWFkcyBvdXRzaWRlIHRoZSBmcmFtZWJ1ZmZlciBjb250YWluCisgICAgICAgIHRo
ZSBleHBlY3RlZCByZXN1bHRzLCByYXRoZXIgdGhhbiBiZWluZyB6ZXJvJ2QuCisKKyAgICAgICAg
KiBTY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2w6CisKIDIwMjItMDMtMDIgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgU1BJIF9XS0Rh
dGFUYXNrCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wgYi9U
b29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wKaW5kZXggZWM1Y2QxODY0MTljOTI3MThh
NDk5OTBkODA4NzhhYjcxM2ZkNjNhZC4uOGVjYTVjNzIzM2Q5M2RkYzdhM2EwYzkyZDYzYjlmOGZh
ZmM4M2U2OSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9nZW5lcmF0ZS1ncHVwLXdlYmdsCisr
KyBiL1Rvb2xzL1NjcmlwdHMvZ2VuZXJhdGUtZ3B1cC13ZWJnbApAQCAtMTEyLDYgKzExMiw4IEBA
IG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQgU3RyZWFt
IHt7CiAgICAgdm9pZCBQYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiBw
cm9wZXJ0aWVzKSBTeW5jaHJvbm91cwogI2VuZGlmCiAgICAgdm9pZCBTaW11bGF0ZUV2ZW50Rm9y
VGVzdGluZyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVkRXZlbnRGb3JUZXN0
aW5nIGV2ZW50KQorICAgIHZvaWQgUmVhZG5QaXhlbHMwKGludDMyX3QgeCwgaW50MzJfdCB5LCBp
bnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0
eXBlLCBJUEM6OkFycmF5UmVmZXJlbmNlPHVpbnQ4X3Q+IGRhdGEpIC0+IChJUEM6OkFycmF5UmVm
ZXJlbmNlPHVpbnQ4X3Q+IGRhdGEpIFN5bmNocm9ub3VzCisgICAgdm9pZCBSZWFkblBpeGVsczEo
aW50MzJfdCB4LCBpbnQzMl90IHksIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCB1aW50
MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIHVpbnQ2NF90IG9mZnNldCkKIHt9CiB9fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454000</attachid>
            <date>2022-03-07 10:44:49 -0800</date>
            <delta_ts>2022-03-08 11:46:14 -0800</delta_ts>
            <desc>Patch for Landing</desc>
            <filename>bug-222410-20220307104448.patch</filename>
            <type>text/plain</type>
            <size>17472</size>
            <attacher name="John Cunningham">johncunningham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxMzA2NTAyMzhjZTY5NTVk
YmY4YjViNjEzZWZlMWQ0NDhjNjA1ZDkuLmIyYTNlZDUwN2VjYTk4Nzk2ZmMxNzViZGY4NWVjMDkx
NWZjZjZmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDMtMDcgIEpvaG4gQ3Vu
bmluZ2hhbSAgPGpvaG5jdW5uaW5naGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTCBSZWFkUGl4ZWxzIGRvZXMgbm90IHByZXNlcnZlIGNvbnRlbnRzIGZvciBh
cmVhIHRoYXQgaXMgbm90IHBhcnQgb2YgdGhlIEZyYW1lYnVmZmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MTAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzc1MDI1OTUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IEtpbW1vIEtpbm51bmVuLgor
CisgICAgICAgIE1ha2UgYSBjb3B5IG9mIHRoZSBkYXRhIGJ1ZmZlciBwYXNzZWQgaW50byByZWFk
bnBpeGVscyBzbyB0aGF0IHJlYWRzIG91dHNpZGUgdGhlIGZyYW1lYnVmZmVyIGNvbnRhaW4KKyAg
ICAgICAgdGhlIGV4cGVjdGVkIHJlc3VsdHMsIHJhdGhlciB0aGFuIGJlaW5nIHplcm8nZC4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cmVhZG5QaXhlbHMw
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnJlYWRuUGl4ZWxz
MSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oOgorICAgICAgICAoYnVmZmVyU3ViRGF0
YSk6CisgICAgICAgIChyZWFkblBpeGVsczApOiBEZWxldGVkLgorICAgICAgICAocmVhZG5QaXhl
bHMxKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTo6cmVhZG5QaXhlbHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25z
R2VuZXJhdGVkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eTo6cmVhZG5QaXhlbHMpOiBEZWxldGVkLgorCiAyMDIyLTAzLTAyICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgTWVkaWFTYW1wbGVBVkZPYmpD
OjpjcmVhdGVJbWFnZVNhbXBsZSB0byBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhl
bEJ1ZmZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggYTY1OGZhZDk1YjRiMjNjYTc4
YWNmYTQ1MDRiNmFhYTczYzM2MGVmNS4uN2Y2Y2VjOWMyYzNkMWU5M2Q1YjVkZmY1NGRiOTRiODIy
N2E4ZmUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0zMDMsNiArMzAzLDIwIEBA
IHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMCiAgICAgbV9jb250ZXh0LT5zaW11bGF0ZUV2ZW50Rm9y
VGVzdGluZyhldmVudCk7CiB9CiAKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnJlYWRu
UGl4ZWxzMChpbnQzMl90IHgsIGludDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWln
aHQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgSVBDOjpBcnJheVJlZmVyZW5jZTx1
aW50OF90PiYmIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpBcnJheVJlZmVyZW5j
ZTx1aW50OF90Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXNzZXJ0SXNDdXJyZW50
KHdvcmtRdWV1ZSgpKTsKKyAgICBWZWN0b3I8dWludDhfdCwgND4gcGl4ZWxzKGRhdGEpOworICAg
IG1fY29udGV4dC0+cmVhZG5QaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBl
LCBwaXhlbHMpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6QXJyYXlSZWZlcmVuY2U8dWlu
dDhfdD4ocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ocGl4ZWxzLmRhdGEoKSksIHBpeGVscy5z
aXplKCkpKTsKK30KKwordm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cmVhZG5QaXhlbHMx
KGludDMyX3QgeCwgaW50MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgdWlu
dDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCB1aW50NjRfdCBvZmZzZXQpCit7CisgICAgYXNz
ZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKKyAgICBtX2NvbnRleHQtPnJlYWRuUGl4ZWxzKHgs
IHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3RhdGljX2Nhc3Q8R0NHTGludHB0cj4o
b2Zmc2V0KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmgKaW5kZXggOWUwNTRjZGI3MTQ4NzkxYmNlOGEwMWZlM2VlOWQ1ZTdkMGY1NWZl
MC4uZTgwZGYwNzkyNzgzM2JjZWY1NGQ0ODNlMDczMjlhMGM4MjM3ODNmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmgKQEAgLTEyNiw2ICsxMjYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb3B5
VGV4dHVyZUZyb21WaWRlb0ZyYW1lKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlLCB1aW50
MzJfdCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGlu
dGVybmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSwgYm9vbCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CiAjZW5kaWYKICAgICB2b2lkIHNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMOjpTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcpOworICAgIHZvaWQgcmVhZG5Q
aXhlbHMwKGludDMyX3QgeCwgaW50MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdo
dCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBJUEM6OkFycmF5UmVmZXJlbmNlPHVp
bnQ4X3Q+JiYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkFycmF5UmVmZXJlbmNl
PHVpbnQ4X3Q+KT4mJik7CisgICAgdm9pZCByZWFkblBpeGVsczEoaW50MzJfdCB4LCBpbnQzMl90
IHksIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQz
Ml90IHR5cGUsIHVpbnQ2NF90IG9mZnNldCk7CiAKICNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oIiAvLyBOT0xJTlQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluCmluZGV4IGQyNzY1ODVhMjJjZGJkMzdlNTkwZGY2ZDgz
MDIzYjdhMzRkMGM0N2UuLjZjYzhhNTA4NTBkMmMwYjQ3MTQ1YmVhM2RiNDRmZTFjNjc0OTc4MWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4KQEAgLTQ4LDYgKzQ4
LDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgTm90UmVmQ291bnRlZCBT
dHJlYW0gewogICAgIHZvaWQgUGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGll
cz4gcHJvcGVydGllcykgU3luY2hyb25vdXMKICNlbmRpZgogICAgIHZvaWQgU2ltdWxhdGVFdmVu
dEZvclRlc3RpbmcoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlNpbXVsYXRlZEV2ZW50Rm9y
VGVzdGluZyBldmVudCkKKyAgICB2b2lkIFJlYWRuUGl4ZWxzMChpbnQzMl90IHgsIGludDMyX3Qg
eSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMy
X3QgdHlwZSwgSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90PiBkYXRhKSAtPiAoSVBDOjpBcnJh
eVJlZmVyZW5jZTx1aW50OF90PiBkYXRhKSBTeW5jaHJvbm91cworICAgIHZvaWQgUmVhZG5QaXhl
bHMxKGludDMyX3QgeCwgaW50MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwg
dWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCB1aW50NjRfdCBvZmZzZXQpCiAKICAgICB2
b2lkIE1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlzdCgpIC0+IChib29sIHJldHVyblZhbHVl
KSBTeW5jaHJvbm91cwogICAgIHZvaWQgQWN0aXZlVGV4dHVyZSh1aW50MzJfdCB0ZXh0dXJlKQpA
QCAtMTgzLDggKzE4NSw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIE5v
dFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICB2b2lkIEJ1ZmZlckRhdGEwKHVpbnQzMl90IHRhcmdl
dCwgdWludDY0X3QgYXJnMSwgdWludDMyX3QgdXNhZ2UpCiAgICAgdm9pZCBCdWZmZXJEYXRhMSh1
aW50MzJfdCB0YXJnZXQsIElQQzo6QXJyYXlSZWZlcmVuY2U8dWludDhfdD4gZGF0YSwgdWludDMy
X3QgdXNhZ2UpCiAgICAgdm9pZCBCdWZmZXJTdWJEYXRhKHVpbnQzMl90IHRhcmdldCwgdWludDY0
X3Qgb2Zmc2V0LCBJUEM6OkFycmF5UmVmZXJlbmNlPHVpbnQ4X3Q+IGRhdGEpCi0gICAgdm9pZCBS
ZWFkblBpeGVsczAoaW50MzJfdCB4LCBpbnQzMl90IHksIGludDMyX3Qgd2lkdGgsIGludDMyX3Qg
aGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIHVpbnQ2NF90IGRhdGFTaXpl
KSAtPiAoSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90PiBkYXRhKSBTeW5jaHJvbm91cwotICAg
IHZvaWQgUmVhZG5QaXhlbHMxKGludDMyX3QgeCwgaW50MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBp
bnQzMl90IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCB1aW50NjRfdCBv
ZmZzZXQpCiAgICAgdm9pZCBUZXhJbWFnZTJEMCh1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2
ZWwsIHVpbnQzMl90IGludGVybmFsZm9ybWF0LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdo
dCwgaW50MzJfdCBib3JkZXIsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgSVBDOjpB
cnJheVJlZmVyZW5jZTx1aW50OF90PiBwaXhlbHMpCiAgICAgdm9pZCBUZXhJbWFnZTJEMSh1aW50
MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVybmFsZm9ybWF0LCBpbnQz
Ml90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgaW50MzJfdCBib3JkZXIsIHVpbnQzMl90IGZvcm1h
dCwgdWludDMyX3QgdHlwZSwgdWludDY0X3Qgb2Zmc2V0KQogICAgIHZvaWQgVGV4U3ViSW1hZ2Uy
RDAodWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCBpbnQzMl90IHhvZmZzZXQsIGludDMy
X3QgeW9mZnNldCwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGZvcm1h
dCwgdWludDMyX3QgdHlwZSwgSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90PiBwaXhlbHMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oCmlu
ZGV4IGE1OWU4Y2EwOTg5OTg5MGEyNGFjN2JkODMyYzdjYzFjZmUwZDNjZjkuLjRhNTNmODg3MzZm
OGUwYzllOWQ5ZDM4MDAxZmZlZDM1Mjk3N2NkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVy
YXRlZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oCkBAIC03NzgsMTggKzc3OCw2IEBACiAg
ICAgICAgIGFzc2VydElzQ3VycmVudCh3b3JrUXVldWUoKSk7CiAgICAgICAgIG1fY29udGV4dC0+
YnVmZmVyU3ViRGF0YSh0YXJnZXQsIHN0YXRpY19jYXN0PEdDR0xpbnRwdHI+KG9mZnNldCksIG1h
a2VHQ0dMU3BhbihyZWludGVycHJldF9jYXN0PGNvbnN0IEdDR0x2b2lkKj4oZGF0YS5kYXRhKCkp
LCBkYXRhLnNpemUoKSkpOwogICAgIH0KLSAgICB2b2lkIHJlYWRuUGl4ZWxzMChpbnQzMl90IHgs
IGludDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGZvcm1h
dCwgdWludDMyX3QgdHlwZSwgdWludDY0X3QgZGF0YVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi0g
ICAgewotICAgICAgICBWZWN0b3I8R0NHTGNoYXIsIDQ+IGRhdGEoc3RhdGljX2Nhc3Q8c2l6ZV90
PihkYXRhU2l6ZSksIDApOwotICAgICAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOwot
ICAgICAgICBtX2NvbnRleHQtPnJlYWRuUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgZGF0YSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6QXJyYXlSZWZl
cmVuY2U8dWludDhfdD4ocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YS5kYXRhKCkpLCBk
YXRhLnNpemUoKSkpOwotICAgIH0KLSAgICB2b2lkIHJlYWRuUGl4ZWxzMShpbnQzMl90IHgsIGlu
dDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwg
dWludDMyX3QgdHlwZSwgdWludDY0X3Qgb2Zmc2V0KQotICAgIHsKLSAgICAgICAgYXNzZXJ0SXND
dXJyZW50KHdvcmtRdWV1ZSgpKTsKLSAgICAgICAgbV9jb250ZXh0LT5yZWFkblBpeGVscyh4LCB5
LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN0YXRpY19jYXN0PEdDR0xpbnRwdHI+KG9m
ZnNldCkpOwotICAgIH0KICAgICB2b2lkIHRleEltYWdlMkQwKHVpbnQzMl90IHRhcmdldCwgaW50
MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxmb3JtYXQsIGludDMyX3Qgd2lkdGgsIGludDMy
X3QgaGVpZ2h0LCBpbnQzMl90IGJvcmRlciwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBl
LCBJUEM6OkFycmF5UmVmZXJlbmNlPHVpbnQ4X3Q+JiYgcGl4ZWxzKQogICAgIHsKICAgICAgICAg
YXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHkuY3BwCmluZGV4IGEyNjUwZWVhZTM4NTllNDQ5MTIxNmI2OWI5ZTU4MDhlMGMx
ZjAzNWQuLjFiMjNjZjYwNDNkYTZlYWZlY2U3NzJiMzZkYjZjYmI2ZDE3YmRhMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcApAQCAtMjMzLDYgKzIzMywyNyBA
QCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnNpbXVsYXRlRXZlbnRGb3JUZXN0
aW5nKFNpbXVsYXRlZEV2ZW50Rm9yVGVzdAogICAgIH0KIH0KIAordm9pZCBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5OjpyZWFkblBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNp
emVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5
cGUsIEdDR0xTcGFuPEdDR0x2b2lkPiBkYXRhKQoreworICAgIElQQzo6QXJyYXlSZWZlcmVuY2U8
dWludDhfdD4gZGF0YVJlcGx5OworICAgIGlmICghaXNDb250ZXh0TG9zdCgpKSB7CisgICAgICAg
IGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTDo6UmVhZG5QaXhlbHMwKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgSVBD
OjpBcnJheVJlZmVyZW5jZTx1aW50OF90PihyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRh
LmRhdGEpLCBkYXRhLmJ1ZlNpemUpKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
OjpSZWFkblBpeGVsczA6OlJlcGx5KGRhdGFSZXBseSkpOworICAgICAgICBpZiAoIXNlbmRSZXN1
bHQpCisgICAgICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbWVtY3B5KGRhdGEuZGF0YSwgZGF0YVJlcGx5LmRhdGEoKSwgZGF0YS5idWZTaXplICog
c2l6ZW9mKHVpbnQ4X3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eTo6cmVhZG5QaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0
aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dM
aW50cHRyIG9mZnNldCkKK3sKKyAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkgeworICAgICAgICBh
dXRvIHNlbmRSZXN1bHQgPSBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6
UmVhZG5QaXhlbHMxKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KG9mZnNldCkpKTsKKyAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQorICAgICAg
ICAgICAgbWFya0NvbnRleHRMb3N0KCk7CisgICAgfQorfQorCiB2b2lkIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHk6Ondhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9y
ZSYmIHNlbWFwaG9yZSwgU3RyaW5nJiYgYXZhaWxhYmxlRXh0ZW5zaW9ucywgU3RyaW5nJiYgcmVx
dWVzdGVkRXh0ZW5zaW9ucykKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAppbmRleCBmNzY1NDAzYTU2OTcwYTQ3YTFkM2Y2
YzMxM2IwNWI3MDgwMThmMzQzLi5mMGI4Y2E5OGY5MGIzMTZmZmQwNWQzOWIzOGU4MmIxM2NiYmM0
NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaApAQCAtNzcsNiAr
NzcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpN
ZWRpYVBsYXllciYsIFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBH
Q0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBH
Q0dMZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIGZpbmFsOwog
I2VuZGlmCiAgICAgdm9pZCBzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhTaW11bGF0ZWRFdmVudEZv
clRlc3RpbmcpIGZpbmFsOworICAgIHZvaWQgcmVhZG5QaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50
IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBH
Q0dMZW51bSB0eXBlLCBHQ0dMU3BhbjxHQ0dMdm9pZD4gZGF0YSkgZmluYWw7CisgICAgdm9pZCBy
ZWFkblBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6
ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEdDR0xpbnRwdHIgb2Zm
c2V0KSBmaW5hbDsKIAogICAgIC8vIEZ1bmN0aW9ucyB3aXRoIGEgZ2VuZXJhdGVkIGltcGxlbWVu
dGF0aW9uLiBUaGlzIGxpc3QgaXMgdXNlZCBieSBnZW5lcmF0ZS1ncHVwLXdlYmdsIHNjcmlwdC4K
ICAgICBib29sIG1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlzdCgpIGZpbmFsOwpAQCAtMjEz
LDggKzIxNSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGJ1ZmZlckRhdGEoR0NHTGVudW0gdGFyZ2V0
LCBHQ0dMc2l6ZWlwdHIgYXJnMSwgR0NHTGVudW0gdXNhZ2UpIGZpbmFsOwogICAgIHZvaWQgYnVm
ZmVyRGF0YShHQ0dMZW51bSB0YXJnZXQsIEdDR0xTcGFuPGNvbnN0IEdDR0x2b2lkPiBkYXRhLCBH
Q0dMZW51bSB1c2FnZSkgZmluYWw7CiAgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDR0xlbnVtIHRh
cmdldCwgR0NHTGludHB0ciBvZmZzZXQsIEdDR0xTcGFuPGNvbnN0IEdDR0x2b2lkPiBkYXRhKSBm
aW5hbDsKLSAgICB2b2lkIHJlYWRuUGl4ZWxzKEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6
ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlw
ZSwgR0NHTFNwYW48R0NHTHZvaWQ+IGRhdGEpIGZpbmFsOwotICAgIHZvaWQgcmVhZG5QaXhlbHMo
R0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwg
R0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dMaW50cHRyIG9mZnNldCkgZmluYWw7
CiAgICAgdm9pZCB0ZXhJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NH
TGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwg
R0NHTGludCBib3JkZXIsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTFNwYW48
Y29uc3QgR0NHTHZvaWQ+IHBpeGVscykgZmluYWw7CiAgICAgdm9pZCB0ZXhJbWFnZTJEKEdDR0xl
bnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDR0xz
aXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGludCBib3JkZXIsIEdDR0xlbnVtIGZv
cm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTGludHB0ciBvZmZzZXQpIGZpbmFsOwogICAgIHZvaWQg
dGV4U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgeG9m
ZnNldCwgR0NHTGludCB5b2Zmc2V0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQs
IEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTFNwYW48Y29uc3QgR0NHTHZvaWQ+
IHBpeGVscykgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcAppbmRleCAxNzkwOGY3NmZjNzhk
MjExYjUxM2E0M2VkMjQxYWY3NDhkZDU4NTc3Li4xZjI5NjA2ZmJiMzgzNTRlMDg3NWU4NWU3M2Rj
Njg2YjUzOTE4ZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKQEAgLTEzMjgsMjcgKzEzMjgs
NiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmJ1ZmZlclN1YkRhdGEoR0NH
TGVudW0gdGFyZ2V0LCBHQ0dMaW50cHRyIG9mZgogICAgIH0KIH0KIAotdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5OjpyZWFkblBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NH
THNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVt
IHR5cGUsIEdDR0xTcGFuPEdDR0x2b2lkPiBkYXRhKQotewotICAgIElQQzo6QXJyYXlSZWZlcmVu
Y2U8dWludDhfdD4gZGF0YVJlcGx5OwotICAgIGlmICghaXNDb250ZXh0TG9zdCgpKSB7Ci0gICAg
ICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTDo6UmVhZG5QaXhlbHMwKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwg
ZGF0YS5idWZTaXplKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpSZWFkblBp
eGVsczA6OlJlcGx5KGRhdGFSZXBseSkpOwotICAgICAgICBpZiAoIXNlbmRSZXN1bHQpCi0gICAg
ICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbWVt
Y3B5KGRhdGEuZGF0YSwgZGF0YVJlcGx5LmRhdGEoKSwgZGF0YS5idWZTaXplICogc2l6ZW9mKHVp
bnQ4X3QpKTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6
cmVhZG5QaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNp
emVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dMaW50cHRyIG9m
ZnNldCkKLXsKLSAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkgewotICAgICAgICBhdXRvIHNlbmRS
ZXN1bHQgPSBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVhZG5QaXhl
bHMxKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KG9mZnNldCkpKTsKLSAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQotICAgICAgICAgICAgbWFy
a0NvbnRleHRMb3N0KCk7Ci0gICAgfQotfQotCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHk6OnRleEltYWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dM
aW50IGJvcmRlciwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dMU3Bhbjxjb25z
dCBHQ0dMdm9pZD4gcGl4ZWxzKQogewogICAgIGlmICghaXNDb250ZXh0TG9zdCgpKSB7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzBiODViMzAy
MzRhYWJjY2U4ZTIyZTZjNTdjOTEyN2E0MzVmNjg5OS4uMzNhNDk3ZWEyYzU2NGMzZTczZTllZDFh
MmY4N2QzZGQ3YjI1MmM0NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAzLTA3ICBKb2huIEN1bm5pbmdoYW0g
IDxqb2huY3VubmluZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wgUmVhZFBpeGVscyBkb2VzIG5vdCBwcmVzZXJ2ZSBjb250ZW50cyBmb3IgYXJlYSB0aGF0
IGlzIG5vdCBwYXJ0IG9mIHRoZSBGcmFtZWJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
NTAyNTk1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBLaW1tbyBLaW5udW5lbi4KKworICAgICAg
ICBNYWtlIGEgY29weSBvZiB0aGUgZGF0YSBidWZmZXIgcGFzc2VkIGludG8gcmVhZG5waXhlbHMg
c28gdGhhdCByZWFkcyBvdXRzaWRlIHRoZSBmcmFtZWJ1ZmZlciBjb250YWluCisgICAgICAgIHRo
ZSBleHBlY3RlZCByZXN1bHRzLCByYXRoZXIgdGhhbiBiZWluZyB6ZXJvJ2QuCisKKyAgICAgICAg
KiBTY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2w6CisKIDIwMjItMDMtMDIgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgU1BJIF9XS0Rh
dGFUYXNrCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wgYi9U
b29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wKaW5kZXggZWM1Y2QxODY0MTljOTI3MThh
NDk5OTBkODA4NzhhYjcxM2ZkNjNhZC4uOGVjYTVjNzIzM2Q5M2RkYzdhM2EwYzkyZDYzYjlmOGZh
ZmM4M2U2OSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9nZW5lcmF0ZS1ncHVwLXdlYmdsCisr
KyBiL1Rvb2xzL1NjcmlwdHMvZ2VuZXJhdGUtZ3B1cC13ZWJnbApAQCAtMTEyLDYgKzExMiw4IEBA
IG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQgU3RyZWFt
IHt7CiAgICAgdm9pZCBQYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiBw
cm9wZXJ0aWVzKSBTeW5jaHJvbm91cwogI2VuZGlmCiAgICAgdm9pZCBTaW11bGF0ZUV2ZW50Rm9y
VGVzdGluZyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVkRXZlbnRGb3JUZXN0
aW5nIGV2ZW50KQorICAgIHZvaWQgUmVhZG5QaXhlbHMwKGludDMyX3QgeCwgaW50MzJfdCB5LCBp
bnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0
eXBlLCBJUEM6OkFycmF5UmVmZXJlbmNlPHVpbnQ4X3Q+IGRhdGEpIC0+IChJUEM6OkFycmF5UmVm
ZXJlbmNlPHVpbnQ4X3Q+IGRhdGEpIFN5bmNocm9ub3VzCisgICAgdm9pZCBSZWFkblBpeGVsczEo
aW50MzJfdCB4LCBpbnQzMl90IHksIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCB1aW50
MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIHVpbnQ2NF90IG9mZnNldCkKIHt9CiB9fQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMGVlNzM2NzM5ZTk1NTA3Njg1NzE1Zjg4Y2FmZmRjNTVlYzRmMWM1YS4uYjNiMTJlNTI2
NDc5NDQzYzg4MGY3NzE3MjI1YzhhOTFhNjZjMzBkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIyLTAzLTA3ICBKb2huIEN1bm5pbmdoYW0gIDxqb2huY3VubmluZ2hhbUBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgUmVhZFBpeGVscyBkb2VzIG5vdCBwcmVz
ZXJ2ZSBjb250ZW50cyBmb3IgYXJlYSB0aGF0IGlzIG5vdCBwYXJ0IG9mIHRoZSBGcmFtZWJ1ZmZl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEw
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTAyNTk1MT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBLaW1tbyBLaW5udW5lbi4KKworICAgICAgICBEb24ndCBvdmVyd3JpdGUgdGhlIGRhdGEgYnVm
ZmVyIGZvciByZWFkUGl4ZWxzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMjItMDMtMDIgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtSVExdIEltYWdlIGFsdCB0ZXh0IGhhcyBpbmNvcnJlY3QgYmlkaSByZW9yZGVy
aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggOTIxYTMwZTEyNWRjNjIyZWQxMDgwMjZiMzNiOTNmYTNiMDU3OTMxOS4uNTU4OGNhM2M3ZGY3
YmQwYTY4ODIwODRlMGY4NThhMzkzMzkyODAzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjIwNSw3ICsyMjA1LDYgQEAgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGlj
cy90aGUtYS1lbGVtZW4KIGh0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50
aWNzL3RoZS1hLWVsZW1lbnQvYS1kb3dubG9hZC1jbGljay00MDQuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCiAKICMgVGVzdCBmYWlsdXJlcyBmcm9tIHR1cm5pbmcgR1BVIFByb2Nlc3Mgb24gYnkgZGVm
YXVsdAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9yZWFkaW5n
L3JlYWQtcGl4ZWxzLXRlc3QuaHRtbAogd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYW55LWNv
bnRleHRzLWFjY2Vzcy1hZnRlci1sb3NzLmh0bWwKIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wv
bWFueS1jb250ZXh0cy5odG1sCiB3ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUt
Y29udGV4dHMtY29uc29sZS13YXJuaW5nLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454137</attachid>
            <date>2022-03-08 11:46:16 -0800</date>
            <delta_ts>2022-03-08 22:51:04 -0800</delta_ts>
            <desc>Patch for Landing</desc>
            <filename>bug-222410-20220308114615.patch</filename>
            <type>text/plain</type>
            <size>17465</size>
            <attacher name="John Cunningham">johncunningham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3ZDQzZWE0YTM0MDNjNmE0
MzY2YjU3OTNmMWRiZDVjNTljOGYyZGIuLmZmY2MxYTUwNzAzYTBlY2VhYmMxNTljODVhM2FmYzUw
ZThmN2MwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDMtMDggIEpvaG4gQ3Vu
bmluZ2hhbSAgPGpvaG5jdW5uaW5naGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTCBSZWFkUGl4ZWxzIGRvZXMgbm90IHByZXNlcnZlIGNvbnRlbnRzIGZvciBh
cmVhIHRoYXQgaXMgbm90IHBhcnQgb2YgdGhlIEZyYW1lYnVmZmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MTAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzc1MDI1OTUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IEtpbW1vIEtpbm51bmVuLgor
CisgICAgICAgIE1ha2UgYSBjb3B5IG9mIHRoZSBkYXRhIGJ1ZmZlciBwYXNzZWQgaW50byByZWFk
bnBpeGVscyBzbyB0aGF0IHJlYWRzIG91dHNpZGUgdGhlIGZyYW1lYnVmZmVyIGNvbnRhaW4KKyAg
ICAgICAgdGhlIGV4cGVjdGVkIHJlc3VsdHMsIHJhdGhlciB0aGFuIGJlaW5nIHplcm8nZC4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cmVhZG5QaXhlbHMw
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnJlYWRuUGl4ZWxz
MSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oOgorICAgICAgICAoYnVmZmVyU3ViRGF0
YSk6CisgICAgICAgIChyZWFkblBpeGVsczApOiBEZWxldGVkLgorICAgICAgICAocmVhZG5QaXhl
bHMxKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTo6cmVhZG5QaXhlbHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25z
R2VuZXJhdGVkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eTo6cmVhZG5QaXhlbHMpOiBEZWxldGVkLgorCiAyMDIyLTAzLTA4ICBTaWh1aSBMaXUgIDxz
aWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgQ0ZVUkxDYWNoZSBpbiBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IGE2NThmYWQ5NWI0YjIzY2E3OGFjZmE0
NTA0YjZhYWE3M2MzNjBlZjUuLjdmNmNlYzljMmMzZDFlOTNkNWI1ZGZmNTRkYjk0YjgyMjdhOGZl
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtMzAzLDYgKzMwMywyMCBAQCB2b2lk
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTAogICAgIG1fY29udGV4dC0+c2ltdWxhdGVFdmVudEZvclRlc3Rp
bmcoZXZlbnQpOwogfQogCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpyZWFkblBpeGVs
czAoaW50MzJfdCB4LCBpbnQzMl90IHksIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCB1
aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIElQQzo6QXJyYXlSZWZlcmVuY2U8dWludDhf
dD4mJiBkYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6QXJyYXlSZWZlcmVuY2U8dWlu
dDhfdD4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGFzc2VydElzQ3VycmVudCh3b3Jr
UXVldWUoKSk7CisgICAgVmVjdG9yPHVpbnQ4X3QsIDQ+IHBpeGVscyhkYXRhKTsKKyAgICBtX2Nv
bnRleHQtPnJlYWRuUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGl4
ZWxzKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkFycmF5UmVmZXJlbmNlPHVpbnQ4X3Q+
KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KHBpeGVscy5kYXRhKCkpLCBwaXhlbHMuc2l6ZSgp
KSk7Cit9CisKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnJlYWRuUGl4ZWxzMShpbnQz
Ml90IHgsIGludDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQzMl90
IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgdWludDY0X3Qgb2Zmc2V0KQoreworICAgIGFzc2VydElz
Q3VycmVudCh3b3JrUXVldWUoKSk7CisgICAgbV9jb250ZXh0LT5yZWFkblBpeGVscyh4LCB5LCB3
aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN0YXRpY19jYXN0PEdDR0xpbnRwdHI+KG9mZnNl
dCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTC5oCmluZGV4IDllMDU0Y2RiNzE0ODc5MWJjZThhMDFmZTNlZTlkNWU3ZDBmNTVmZTAuLmU4
MGRmMDc5Mjc4MzNiY2VmNTRkNDgzZTA3MzI5YTBjODIzNzgzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTC5oCkBAIC0xMjYsNiArMTI2LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY29weVRleHR1
cmVGcm9tVmlkZW9GcmFtZShSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSwgdWludDMyX3Qg
dGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5h
bEZvcm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5
QWxwaGEsIGJvb2wgZmxpcFksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2Vu
ZGlmCiAgICAgdm9pZCBzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTDo6U2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nKTsKKyAgICB2b2lkIHJlYWRuUGl4ZWxz
MChpbnQzMl90IHgsIGludDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVp
bnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90
PiYmIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50
OF90Pik+JiYpOworICAgIHZvaWQgcmVhZG5QaXhlbHMxKGludDMyX3QgeCwgaW50MzJfdCB5LCBp
bnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0
eXBlLCB1aW50NjRfdCBvZmZzZXQpOwogCiAjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xGdW5jdGlvbnNHZW5lcmF0ZWQuaCIgLy8gTk9MSU5UCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTC5tZXNzYWdlcy5pbgppbmRleCBkMjc2NTg1YTIyY2RiZDM3ZTU5MGRmNmQ4MzAyM2I3
YTM0ZDBjNDdlLi42Y2M4YTUwODUwZDJjMGI0NzE0NWJlYTNkYjQ0ZmUxYzY3NDk3ODFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluCkBAIC00OCw2ICs0OCw4IEBA
IG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQgU3RyZWFt
IHsKICAgICB2b2lkIFBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkgLT4gKHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+IHBy
b3BlcnRpZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYKICAgICB2b2lkIFNpbXVsYXRlRXZlbnRGb3JU
ZXN0aW5nKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpTaW11bGF0ZWRFdmVudEZvclRlc3Rp
bmcgZXZlbnQpCisgICAgdm9pZCBSZWFkblBpeGVsczAoaW50MzJfdCB4LCBpbnQzMl90IHksIGlu
dDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5
cGUsIElQQzo6QXJyYXlSZWZlcmVuY2U8dWludDhfdD4gZGF0YSkgLT4gKElQQzo6QXJyYXlSZWZl
cmVuY2U8dWludDhfdD4gZGF0YSkgU3luY2hyb25vdXMKKyAgICB2b2lkIFJlYWRuUGl4ZWxzMShp
bnQzMl90IHgsIGludDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIHVpbnQz
Ml90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgdWludDY0X3Qgb2Zmc2V0KQogCiAgICAgdm9pZCBN
b3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSkgU3lu
Y2hyb25vdXMKICAgICB2b2lkIEFjdGl2ZVRleHR1cmUodWludDMyX3QgdGV4dHVyZSkKQEAgLTE4
Myw4ICsxODUsNiBAQCBtZXNzYWdlcyAtPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTCBOb3RSZWZD
b3VudGVkIFN0cmVhbSB7CiAgICAgdm9pZCBCdWZmZXJEYXRhMCh1aW50MzJfdCB0YXJnZXQsIHVp
bnQ2NF90IGFyZzEsIHVpbnQzMl90IHVzYWdlKQogICAgIHZvaWQgQnVmZmVyRGF0YTEodWludDMy
X3QgdGFyZ2V0LCBJUEM6OkFycmF5UmVmZXJlbmNlPHVpbnQ4X3Q+IGRhdGEsIHVpbnQzMl90IHVz
YWdlKQogICAgIHZvaWQgQnVmZmVyU3ViRGF0YSh1aW50MzJfdCB0YXJnZXQsIHVpbnQ2NF90IG9m
ZnNldCwgSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90PiBkYXRhKQotICAgIHZvaWQgUmVhZG5Q
aXhlbHMwKGludDMyX3QgeCwgaW50MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdo
dCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCB1aW50NjRfdCBkYXRhU2l6ZSkgLT4g
KElQQzo6QXJyYXlSZWZlcmVuY2U8dWludDhfdD4gZGF0YSkgU3luY2hyb25vdXMKLSAgICB2b2lk
IFJlYWRuUGl4ZWxzMShpbnQzMl90IHgsIGludDMyX3QgeSwgaW50MzJfdCB3aWR0aCwgaW50MzJf
dCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgdWludDY0X3Qgb2Zmc2V0
KQogICAgIHZvaWQgVGV4SW1hZ2UyRDAodWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1
aW50MzJfdCBpbnRlcm5hbGZvcm1hdCwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIGlu
dDMyX3QgYm9yZGVyLCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIElQQzo6QXJyYXlS
ZWZlcmVuY2U8dWludDhfdD4gcGl4ZWxzKQogICAgIHZvaWQgVGV4SW1hZ2UyRDEodWludDMyX3Qg
dGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbGZvcm1hdCwgaW50MzJfdCB3
aWR0aCwgaW50MzJfdCBoZWlnaHQsIGludDMyX3QgYm9yZGVyLCB1aW50MzJfdCBmb3JtYXQsIHVp
bnQzMl90IHR5cGUsIHVpbnQ2NF90IG9mZnNldCkKICAgICB2b2lkIFRleFN1YkltYWdlMkQwKHVp
bnQzMl90IHRhcmdldCwgaW50MzJfdCBsZXZlbCwgaW50MzJfdCB4b2Zmc2V0LCBpbnQzMl90IHlv
ZmZzZXQsIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIHVp
bnQzMl90IHR5cGUsIElQQzo6QXJyYXlSZWZlcmVuY2U8dWludDhfdD4gcGl4ZWxzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQuaAppbmRleCBh
NTllOGNhMDk4OTk4OTBhMjRhYzdiZDgzMmM3Y2MxY2ZlMGQzY2Y5Li40YTUzZjg4NzM2ZjhlMGM5
ZTlkOWQzODAwMWZmZWQzNTI5NzdjZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQuaApAQCAtNzc4LDE4ICs3NzgsNiBAQAogICAgICAg
ICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOwogICAgICAgICBtX2NvbnRleHQtPmJ1ZmZl
clN1YkRhdGEodGFyZ2V0LCBzdGF0aWNfY2FzdDxHQ0dMaW50cHRyPihvZmZzZXQpLCBtYWtlR0NH
TFNwYW4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBHQ0dMdm9pZCo+KGRhdGEuZGF0YSgpKSwgZGF0
YS5zaXplKCkpKTsKICAgICB9Ci0gICAgdm9pZCByZWFkblBpeGVsczAoaW50MzJfdCB4LCBpbnQz
Ml90IHksIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIHVp
bnQzMl90IHR5cGUsIHVpbnQ2NF90IGRhdGFTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQ
Qzo6QXJyYXlSZWZlcmVuY2U8dWludDhfdD4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotICAgIHsK
LSAgICAgICAgVmVjdG9yPEdDR0xjaGFyLCA0PiBkYXRhKHN0YXRpY19jYXN0PHNpemVfdD4oZGF0
YVNpemUpLCAwKTsKLSAgICAgICAgYXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKLSAgICAg
ICAgbV9jb250ZXh0LT5yZWFkblBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5
cGUsIGRhdGEpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkFycmF5UmVmZXJlbmNl
PHVpbnQ4X3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGRhdGEuZGF0YSgpKSwgZGF0YS5z
aXplKCkpKTsKLSAgICB9Ci0gICAgdm9pZCByZWFkblBpeGVsczEoaW50MzJfdCB4LCBpbnQzMl90
IHksIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQz
Ml90IHR5cGUsIHVpbnQ2NF90IG9mZnNldCkKLSAgICB7Ci0gICAgICAgIGFzc2VydElzQ3VycmVu
dCh3b3JrUXVldWUoKSk7Ci0gICAgICAgIG1fY29udGV4dC0+cmVhZG5QaXhlbHMoeCwgeSwgd2lk
dGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBzdGF0aWNfY2FzdDxHQ0dMaW50cHRyPihvZmZzZXQp
KTsKLSAgICB9CiAgICAgdm9pZCB0ZXhJbWFnZTJEMCh1aW50MzJfdCB0YXJnZXQsIGludDMyX3Qg
bGV2ZWwsIHVpbnQzMl90IGludGVybmFsZm9ybWF0LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhl
aWdodCwgaW50MzJfdCBib3JkZXIsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgSVBD
OjpBcnJheVJlZmVyZW5jZTx1aW50OF90PiYmIHBpeGVscykKICAgICB7CiAgICAgICAgIGFzc2Vy
dElzQ3VycmVudCh3b3JrUXVldWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmNwcAppbmRleCBhMjY1MGVlYWUzODU5ZTQ0OTEyMTZiNjliOWU1ODA4ZTBjMWYwMzVk
Li4xYjIzY2Y2MDQzZGE2ZWFmZWNlNzcyYjM2ZGI2Y2JiNmQxN2JkYTMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKQEAgLTIzMyw2ICsyMzMsMjcgQEAgdm9p
ZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhT
aW11bGF0ZWRFdmVudEZvclRlc3QKICAgICB9CiB9CiAKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6cmVhZG5QaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3
aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBH
Q0dMU3BhbjxHQ0dMdm9pZD4gZGF0YSkKK3sKKyAgICBJUEM6OkFycmF5UmVmZXJlbmNlPHVpbnQ4
X3Q+IGRhdGFSZXBseTsKKyAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkgeworICAgICAgICBhdXRv
IHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OlJlYWRuUGl4ZWxzMCh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIElQQzo6QXJy
YXlSZWZlcmVuY2U8dWludDhfdD4ocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YS5kYXRh
KSwgZGF0YS5idWZTaXplKSksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVh
ZG5QaXhlbHMwOjpSZXBseShkYXRhUmVwbHkpKTsKKyAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQor
ICAgICAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG1lbWNweShkYXRhLmRhdGEsIGRhdGFSZXBseS5kYXRhKCksIGRhdGEuYnVmU2l6ZSAqIHNpemVv
Zih1aW50OF90KSk7CisgICAgfQorfQorCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHk6OnJlYWRuUGl4ZWxzKEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdD
R0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTGludHB0
ciBvZmZzZXQpCit7CisgICAgaWYgKCFpc0NvbnRleHRMb3N0KCkpIHsKKyAgICAgICAgYXV0byBz
ZW5kUmVzdWx0ID0gc2VuZChNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlJlYWRu
UGl4ZWxzMSh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN0YXRpY19jYXN0PHVp
bnQ2NF90PihvZmZzZXQpKSk7CisgICAgICAgIGlmICghc2VuZFJlc3VsdCkKKyAgICAgICAgICAg
IG1hcmtDb250ZXh0TG9zdCgpOworICAgIH0KK30KKwogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5Ojp3YXNDcmVhdGVkKGJvb2wgZGlkU3VjY2VlZCwgSVBDOjpTZW1hcGhvcmUmJiBz
ZW1hcGhvcmUsIFN0cmluZyYmIGF2YWlsYWJsZUV4dGVuc2lvbnMsIFN0cmluZyYmIHJlcXVlc3Rl
ZEV4dGVuc2lvbnMpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5LmgKaW5kZXggZjc2NTQwM2E1Njk3MGE0N2ExZDNmNmMzMTNi
MDViNzA4MDE4ZjM0My4uZjBiOGNhOThmOTBiMzE2ZmZkMDVkMzliMzhlODJiMTNjYmJjNDY4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKQEAgLTc3LDYgKzc3LDgg
QEAgcHVibGljOgogICAgIGJvb2wgY29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXImLCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGlu
dCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVu
dW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKSBmaW5hbDsKICNlbmRp
ZgogICAgIHZvaWQgc2ltdWxhdGVFdmVudEZvclRlc3RpbmcoU2ltdWxhdGVkRXZlbnRGb3JUZXN0
aW5nKSBmaW5hbDsKKyAgICB2b2lkIHJlYWRuUGl4ZWxzKEdDR0xpbnQgeCwgR0NHTGludCB5LCBH
Q0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVu
dW0gdHlwZSwgR0NHTFNwYW48R0NHTHZvaWQ+IGRhdGEpIGZpbmFsOworICAgIHZvaWQgcmVhZG5Q
aXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhl
aWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dMaW50cHRyIG9mZnNldCkg
ZmluYWw7CiAKICAgICAvLyBGdW5jdGlvbnMgd2l0aCBhIGdlbmVyYXRlZCBpbXBsZW1lbnRhdGlv
bi4gVGhpcyBsaXN0IGlzIHVzZWQgYnkgZ2VuZXJhdGUtZ3B1cC13ZWJnbCBzY3JpcHQuCiAgICAg
Ym9vbCBtb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKSBmaW5hbDsKQEAgLTIxMyw4ICsy
MTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBidWZmZXJEYXRhKEdDR0xlbnVtIHRhcmdldCwgR0NH
THNpemVpcHRyIGFyZzEsIEdDR0xlbnVtIHVzYWdlKSBmaW5hbDsKICAgICB2b2lkIGJ1ZmZlckRh
dGEoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMU3Bhbjxjb25zdCBHQ0dMdm9pZD4gZGF0YSwgR0NHTGVu
dW0gdXNhZ2UpIGZpbmFsOwogICAgIHZvaWQgYnVmZmVyU3ViRGF0YShHQ0dMZW51bSB0YXJnZXQs
IEdDR0xpbnRwdHIgb2Zmc2V0LCBHQ0dMU3Bhbjxjb25zdCBHQ0dMdm9pZD4gZGF0YSkgZmluYWw7
Ci0gICAgdm9pZCByZWFkblBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdp
ZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEdD
R0xTcGFuPEdDR0x2b2lkPiBkYXRhKSBmaW5hbDsKLSAgICB2b2lkIHJlYWRuUGl4ZWxzKEdDR0xp
bnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xl
bnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTGludHB0ciBvZmZzZXQpIGZpbmFsOwogICAg
IHZvaWQgdGV4SW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVt
IGludGVybmFsZm9ybWF0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xp
bnQgYm9yZGVyLCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEdDR0xTcGFuPGNvbnN0
IEdDR0x2b2lkPiBwaXhlbHMpIGZpbmFsOwogICAgIHZvaWQgdGV4SW1hZ2UyRChHQ0dMZW51bSB0
YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsZm9ybWF0LCBHQ0dMc2l6ZWkg
d2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xpbnQgYm9yZGVyLCBHQ0dMZW51bSBmb3JtYXQs
IEdDR0xlbnVtIHR5cGUsIEdDR0xpbnRwdHIgb2Zmc2V0KSBmaW5hbDsKICAgICB2b2lkIHRleFN1
YkltYWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMaW50IHhvZmZzZXQs
IEdDR0xpbnQgeW9mZnNldCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dM
ZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEdDR0xTcGFuPGNvbnN0IEdDR0x2b2lkPiBwaXhl
bHMpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKaW5kZXggMTc5MDhmNzZmYzc4ZDIxMWI1
MTNhNDNlZDI0MWFmNzQ4ZGQ1ODU3Ny4uMWYyOTYwNmZiYjM4MzU0ZTA4NzVlODVlNzNkYzY4NmI1
MzkxOGViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3BwCkBAIC0xMzI4LDI3ICsxMzI4LDYgQEAg
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpidWZmZXJTdWJEYXRhKEdDR0xlbnVt
IHRhcmdldCwgR0NHTGludHB0ciBvZmYKICAgICB9CiB9CiAKLXZvaWQgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6cmVhZG5QaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXpl
aSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBl
LCBHQ0dMU3BhbjxHQ0dMdm9pZD4gZGF0YSkKLXsKLSAgICBJUEM6OkFycmF5UmVmZXJlbmNlPHVp
bnQ4X3Q+IGRhdGFSZXBseTsKLSAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkgewotICAgICAgICBh
dXRvIHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OlJlYWRuUGl4ZWxzMCh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGRhdGEu
YnVmU2l6ZSksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVhZG5QaXhlbHMw
OjpSZXBseShkYXRhUmVwbHkpKTsKLSAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQotICAgICAgICAg
ICAgbWFya0NvbnRleHRMb3N0KCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1lbWNweShk
YXRhLmRhdGEsIGRhdGFSZXBseS5kYXRhKCksIGRhdGEuYnVmU2l6ZSAqIHNpemVvZih1aW50OF90
KSk7Ci0gICAgfQotfQotCi12b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnJlYWRu
UGl4ZWxzKEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBo
ZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTGludHB0ciBvZmZzZXQp
Ci17Ci0gICAgaWYgKCFpc0NvbnRleHRMb3N0KCkpIHsKLSAgICAgICAgYXV0byBzZW5kUmVzdWx0
ID0gc2VuZChNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlJlYWRuUGl4ZWxzMSh4
LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihv
ZmZzZXQpKSk7Ci0gICAgICAgIGlmICghc2VuZFJlc3VsdCkKLSAgICAgICAgICAgIG1hcmtDb250
ZXh0TG9zdCgpOwotICAgIH0KLX0KLQogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
Ojp0ZXhJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50
ZXJuYWxmb3JtYXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGludCBi
b3JkZXIsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTFNwYW48Y29uc3QgR0NH
THZvaWQ+IHBpeGVscykKIHsKICAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkgewpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZjZDg3MjM3N2M0Mjkw
Njc2OWU5MDE5ZmRkOGJmY2VjYzRkZTViZDguLjMyMjg0ODY3YTY1NGViZDUxYzhmYmJmODE5MGE2
MDdkMTkzYzYyOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMi0wMy0wOCAgSm9obiBDdW5uaW5naGFtICA8am9o
bmN1bm5pbmdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
IFJlYWRQaXhlbHMgZG9lcyBub3QgcHJlc2VydmUgY29udGVudHMgZm9yIGFyZWEgdGhhdCBpcyBu
b3QgcGFydCBvZiB0aGUgRnJhbWVidWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzUwMjU5
NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2ltbW8gS2lubnVuZW4uCisKKyAgICAgICAgTWFr
ZSBhIGNvcHkgb2YgdGhlIGRhdGEgYnVmZmVyIHBhc3NlZCBpbnRvIHJlYWRucGl4ZWxzIHNvIHRo
YXQgcmVhZHMgb3V0c2lkZSB0aGUgZnJhbWVidWZmZXIgY29udGFpbgorICAgICAgICB0aGUgZXhw
ZWN0ZWQgcmVzdWx0cywgcmF0aGVyIHRoYW4gYmVpbmcgemVybydkLgorCisgICAgICAgICogU2Ny
aXB0cy9nZW5lcmF0ZS1ncHVwLXdlYmdsOgorCiAyMDIyLTAzLTA4ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIHRvIG11dGUgdmlk
ZW8gY2FwdHVyZSBpbiBjYXNlIGF1ZGlvIGNhcHR1cmUgZ2V0cyBpbnRlcnJ1cHRlZApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9nZW5lcmF0ZS1ncHVwLXdlYmdsIGIvVG9vbHMvU2NyaXB0cy9n
ZW5lcmF0ZS1ncHVwLXdlYmdsCmluZGV4IGVjNWNkMTg2NDE5YzkyNzE4YTQ5OTkwZDgwODc4YWI3
MTNmZDYzYWQuLjhlY2E1YzcyMzNkOTNkZGM3YTNhMGM5MmQ2M2I5ZjhmYWZjODNlNjkgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvZ2VuZXJhdGUtZ3B1cC13ZWJnbAorKysgYi9Ub29scy9TY3Jp
cHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wKQEAgLTExMiw2ICsxMTIsOCBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7ewogICAgIHZvaWQg
UGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcz4gcHJvcGVydGllcykgU3lu
Y2hyb25vdXMKICNlbmRpZgogICAgIHZvaWQgU2ltdWxhdGVFdmVudEZvclRlc3RpbmcoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0w6OlNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZyBldmVudCkKKyAg
ICB2b2lkIFJlYWRuUGl4ZWxzMChpbnQzMl90IHgsIGludDMyX3QgeSwgaW50MzJfdCB3aWR0aCwg
aW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgSVBDOjpBcnJh
eVJlZmVyZW5jZTx1aW50OF90PiBkYXRhKSAtPiAoSVBDOjpBcnJheVJlZmVyZW5jZTx1aW50OF90
PiBkYXRhKSBTeW5jaHJvbm91cworICAgIHZvaWQgUmVhZG5QaXhlbHMxKGludDMyX3QgeCwgaW50
MzJfdCB5LCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCB1
aW50MzJfdCB0eXBlLCB1aW50NjRfdCBvZmZzZXQpCiB7fQogfX0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEyODQ4YTU3
MTc2OGNiN2UxOTNhYmZkNmNjNDMxMGRhYWQyODFjNGYuLjQ5YzE3YWJjMGNjZWIxODg5NzYxMmM3
OTdiNmE4NTA1Y2Y1ZDcwZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wMy0wOCAgSm9o
biBDdW5uaW5naGFtICA8am9obmN1bm5pbmdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMIFJlYWRQaXhlbHMgZG9lcyBub3QgcHJlc2VydmUgY29udGVudHMg
Zm9yIGFyZWEgdGhhdCBpcyBub3QgcGFydCBvZiB0aGUgRnJhbWVidWZmZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzUwMjU5NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2ltbW8gS2lubnVu
ZW4uCisKKyAgICAgICAgRG9uJ3Qgb3ZlcndyaXRlIHRoZSBkYXRhIGJ1ZmZlciBmb3IgcmVhZFBp
eGVscworCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAy
MDIyLTAzLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgc2lsZW5jZSBjb25zb2xlIGxvZ2dpbmcgZm9yIGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29va2llLW1vZHVsZS1pbXBvcnQtcHJvcGFnYXRlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmNjcxY2ZiYWQ5NDU3OWNhYmY2NGEy
Njg3Yzk1ZWYxNDcwNThhNDg0Li5mYjg1MWVkOGM0ODcwMThiYWEzNzRjMzI4NDgyYTE1NjhhMzAx
OTJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yMjI3LDcgKzIyMjcsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1hLWVsZW1lbgogaHR0cC93cHQv
aHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWEtZWxlbWVudC9hLWRvd25s
b2FkLWNsaWNrLTQwNC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBUZXN0IGZhaWx1cmVzIGZy
b20gdHVybmluZyBHUFUgUHJvY2VzcyBvbiBieSBkZWZhdWx0Ci13ZWJraXQub3JnL2IvMjM0NTM2
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3JlYWRpbmcvcmVhZC1waXhlbHMtdGVzdC5odG1sCiB3
ZWJraXQub3JnL2IvMjM0NTM2IHdlYnhyL2hpZ2gtcGVyZm9ybWFuY2UuaHRtbAogd2Via2l0Lm9y
Zy9iLzIzNDUzNiB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNh
bGxzLmh0bWwgWyBUaW1lb3V0IF0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>