<?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>231447</bug_id>
          
          <creation_ts>2021-10-08 13:47:57 -0700</creation_ts>
          <short_desc>DrawImageBuffer, DrawNativeImage and DrawPattern should not be inline items</short_desc>
          <delta_ts>2022-02-10 16:37:16 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>230860</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>mmaxfield</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1802222</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-08 13:47:57 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802240</commentid>
    <comment_count>1</comment_count>
      <attachid>440670</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-08 14:04:34 -0700</bug_when>
    <thetext>Created attachment 440670
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802254</commentid>
    <comment_count>2</comment_count>
      <attachid>440670</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-08 14:35:34 -0700</bug_when>
    <thetext>Comment on attachment 440670
For EWS

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

Thanks for the review!

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:1165
&gt;      std::optional&lt;FloatRect&gt; globalBounds() const { return std::nullopt; }

(It just occurred to me that I forgot to remove the now-unnecessary `isValid()` method in DrawPattern, so I&apos;ll do that before landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802255</commentid>
    <comment_count>3</comment_count>
      <attachid>440674</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-08 14:36:54 -0700</bug_when>
    <thetext>Created attachment 440674
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802338</commentid>
    <comment_count>4</comment_count>
      <attachid>440696</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-08 17:57:56 -0700</bug_when>
    <thetext>Created attachment 440696
Fix failing tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802364</commentid>
    <comment_count>5</comment_count>
      <attachid>440696</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-09 00:41:52 -0700</bug_when>
    <thetext>Comment on attachment 440696
Fix failing tests

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        These three display list items all contain ImagePaintingOptions, which (in turn) contains strongly typed enums.

nit: ImagePaintingOptions is plural, so it should use &quot;contain&quot; instead of &quot;contains.&quot; Or maybe &quot;Each of which contain&quot;

&gt; Source/WebCore/ChangeLog:13
&gt; +        we should just make them non-inline and implement encoding/decoding logic as static methods on the items

This is unclear. If they&apos;re just enums, why should they be out-of-line items? Enums are tiny.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802393</commentid>
    <comment_count>6</comment_count>
      <attachid>440696</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-09 10:51:20 -0700</bug_when>
    <thetext>Comment on attachment 440696
Fix failing tests

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        These three display list items all contain ImagePaintingOptions, which (in turn) contains strongly typed enums.
&gt; 
&gt; nit: ImagePaintingOptions is plural, so it should use &quot;contain&quot; instead of &quot;contains.&quot; Or maybe &quot;Each of which contain&quot;

Fixed!

&gt;&gt; Source/WebCore/ChangeLog:13
&gt;&gt; +        we should just make them non-inline and implement encoding/decoding logic as static methods on the items
&gt; 
&gt; This is unclear. If they&apos;re just enums, why should they be out-of-line items? Enums are tiny.

The issue is that we don&apos;t have a mechanism for validating the underlying types of these strongly typed enums when `memcpy`-ing these items cross-process, which triggers UB.

It&apos;s technically possible to address this by storing all of these as the underlying type directly (e.g. `uint8_t`) when sending them to the GPUP so we can validate the values, but in the streamable IPC world, this won&apos;t really make a difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802394</commentid>
    <comment_count>7</comment_count>
      <attachid>440713</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-09 11:10:37 -0700</bug_when>
    <thetext>Created attachment 440713
Fix ChangeLog typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802463</commentid>
    <comment_count>8</comment_count>
      <attachid>440713</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-10-10 10:21:09 -0700</bug_when>
    <thetext>Comment on attachment 440713
Fix ChangeLog typo

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        Instead of adding SimpleArgumentCoder support for these display list item types when implementing streaming IPC,
&gt; +        we should just make them non-inline and implement encoding/decoding logic as static methods on the items
&gt; +        themselves.

Why is it better to make them out of line than add the enum traits / argument coder support for these enums?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802467</commentid>
    <comment_count>9</comment_count>
      <attachid>440713</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-10 10:41:20 -0700</bug_when>
    <thetext>Comment on attachment 440713
Fix ChangeLog typo

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

&gt;&gt; Source/WebCore/ChangeLog:14
&gt;&gt; +        themselves.
&gt; 
&gt; Why is it better to make them out of line than add the enum traits / argument coder support for these enums?

Hm.. not sure what you mean by this — we already have enum traits / argument coder support for these enums (and the options struct).

Making these items &quot;out of line&quot; means making these display list items work with argument coders, as opposed to being memcpy&apos;d directly in and out of shared memory. Currently, we only do the latter, which bypasses validation for these enum types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802500</commentid>
    <comment_count>10</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-10 17:02:08 -0700</bug_when>
    <thetext>I think I&apos;m going to adjust my approach here, such that I won&apos;t require this patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440670</attachid>
            <date>2021-10-08 14:04:34 -0700</date>
            <delta_ts>2021-10-08 14:36:52 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231447-20211008140433.patch</filename>
            <type>text/plain</type>
            <size>15834</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVmYzljMjMxMjBkNjlj
NTA0YTkzOWI2YWI0YzUzZTM1YWEwMmMzYS4uM2E2YzYxYWE5MTA3OWZiYjUwNWQ5ZmY3YTczNTI5
YzdlYTRkOGI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEwLTA4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYXdJbWFnZUJ1
ZmZlciwgRHJhd05hdGl2ZUltYWdlIGFuZCBEcmF3UGF0dGVybiBzaG91bGQgbm90IGJlIGlubGlu
ZSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxNDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlc2UgdGhyZWUgZGlzcGxheSBsaXN0IGl0ZW1zIGFsbCBjb250YWluIEltYWdlUGFpbnRpbmdP
cHRpb25zLCB3aGljaCAoaW4gdHVybikgY29udGFpbnMgc3Ryb25nbHkgdHlwZWQgZW51bXMuCisg
ICAgICAgIFdlIGN1cnJlbnRseSBgbWVtY3B5YCB0aGVzZSBhcyBQT0QgdHlwZXMsIGJ1dCBkb24n
dCBoYXZlIGFueSBsb2dpYyB0byBhZGRpdGlvbmFsbHkgdmFsaWRhdGUgdGhhdCB0aGVzZSBlbnVt
CisgICAgICAgIHZhbHVlcyBhcmUgdmFsaWQuCisKKyAgICAgICAgSW5zdGVhZCBvZiBhZGRpbmcg
U2ltcGxlQXJndW1lbnRDb2RlciBzdXBwb3J0IGZvciB0aGVzZSBkaXNwbGF5IGxpc3QgaXRlbSB0
eXBlcyB3aGVuIGltcGxlbWVudGluZyBzdHJlYW1pbmcgSVBDLAorICAgICAgICB3ZSBzaG91bGQg
anVzdCBtYWtlIHRoZW0gbm9uLWlubGluZSBhbmQgaW1wbGVtZW50IGVuY29kaW5nL2RlY29kaW5n
IGxvZ2ljIGFzIHN0YXRpYyBtZXRob2RzIG9uIHRoZSBpdGVtcworICAgICAgICB0aGVtc2VsdmVz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6
OmFwcGVuZCk6CisKKyAgICAgICAgQWRkaXRpb25hbGx5IGFkanVzdCB0aGlzIGNvbXBpbGUtdGlt
ZSBhc3NlcnRpb24gdG8gY2hlY2sgdGhhdCBgVDo6aXNJbmxpbmVJdGVtYCBpbXBsaWVzCisgICAg
ICAgIGBpc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+YCwgcmF0aGVyIHRoYW4gYFQ6OmlzSW5s
aW5lSXRlbSA9PSBpc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+YC4gVGhpcyBpcyBiZWNhdXNl
CisgICAgICAgIGJlaW5nIHRyaXZpYWxseSBkZXN0cnVjdGlibGUgaXNuJ3Qgc3VmZmljaWVudCB0
byBndWFyYW50ZWUgdGhhdCBhIGRpc3BsYXkgbGlzdCBpdGVtIGNhbiBiZSB0cmVhdGVkIGFzIGFu
IGlubGluZQorICAgICAgICBpdGVtIChhcyBkZW1vbnN0cmF0ZWQgYnkgdGhlIHRocmVlIGRpc3Bs
YXkgbGlzdCBpdGVtcyBjaGFuZ2VkIGluIHRoaXMgcGF0Y2gpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzSW5saW5lSXRlbSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9wdGlvbnMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmRlY29k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpkZXN0
aW5hdGlvblJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdO
YXRpdmVJbWFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3TmF0aXZlSW1hZ2U6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd1BhdHRlcm46OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd1BhdHRlcm46OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0ltYWdlQnVmZmVyOjppc1ZhbGlkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmlzVmFsaWQgY29uc3QpOiBEZWxl
dGVkLgorCiAyMDIxLTEwLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFNwbGl0IERpc3BsYXlMaXN0OjpSZWNvcmRlciBpbnRvIGFuIGFic3RyYWN0
IGJhc2UgY2xhc3MgYW5kIGEgY29uY3JldGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Ey
NTNhZmYwMzUxYWI0Njk1OTAyZWE2MTRlMmUwZWI3ZmJiZjg1Mi4uMmQ5NzgxZTdlNzIyZTlmMDUz
ZDg2MWMzZjVmNWM2ZjBjMDA4OGQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0x
MC0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBE
cmF3SW1hZ2VCdWZmZXIsIERyYXdOYXRpdmVJbWFnZSBhbmQgRHJhd1BhdHRlcm4gc2hvdWxkIG5v
dCBiZSBpbmxpbmUgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTQ0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNlZSBXZWJDb3JlL0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSk6CisKIDIw
MjEtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3BsaXQgRGlzcGxheUxpc3Q6OlJlY29yZGVyIGludG8gYW4gYWJzdHJhY3QgYmFzZSBjbGFz
cyBhbmQgYSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbUJ1ZmZlci5oCmluZGV4IGM4NzMxOTgyZWY4MzkzMWJiYWUzMWI3ODY1MGFjMGRhMjBh
MDVmYzUuLmJhNTIyZDYyZTk5OTFlNWE4YzIyNjZkMzhmNmQ1OTEwNTE5NGQ5YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKQEAgLTE3NSwxNyArMTc1LDE0IEBA
IHB1YmxpYzoKICAgICAvLyBkYXRhIGJhY2sgaW50byBhbiBpdGVtIG9mIHR5cGUgVC4KICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcy4uLiBBcmdzPiB2b2lkIGFwcGVuZChBcmdzJiYuLi4g
YXJncykKICAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVz
dHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSA9PSBUOjppc0lubGluZUl0ZW0pOwotCiAgICAgICAgIGlmIGNv
bnN0ZXhwciAoIVQ6OmlzSW5saW5lSXRlbSkgewogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
bV93cml0aW5nQ2xpZW50KTsKICAgICAgICAgICAgIGFwcGVuZChEaXNwbGF5TGlzdEl0ZW0oVChz
dGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKSk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5
X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpOworICAgICAgICAgICAgYXV0byBidWZmZXJDaGFuZ2Vk
ID0gc3dhcFdyaXRhYmxlQnVmZmVySWZOZWVkZWQocGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5
dGVzKFQ6Oml0ZW1UeXBlKSk7CisgICAgICAgICAgICB1bmNoZWNrZWRBcHBlbmQ8VD4oYnVmZmVy
Q2hhbmdlZCwgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICAgICAgfQotCi0gICAg
ICAgIGF1dG8gYnVmZmVyQ2hhbmdlZCA9IHN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKHBhZGRl
ZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhUOjppdGVtVHlwZSkpOwotCi0gICAgICAgIHVuY2hl
Y2tlZEFwcGVuZDxUPihidWZmZXJDaGFuZ2VkLCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4p
OwogICAgIH0KIAogICAgIHZvaWQgc2V0Q2xpZW50KEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50KiBj
bGllbnQpIHsgbV93cml0aW5nQ2xpZW50ID0gY2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtVHlwZS5jcHAKaW5kZXggNDI2NDRlMTY0MmNlMmRhYjA3NWUyYWM3ZDQ5NTFj
MDc5YzJkYTc4MC4uNzU5YzhjNzJhNDJhMDQxNTUzYzJkZjI1NzBhOWM3ZjBlOTU1NjM3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcApAQCAtMzAxLDYgKzMwMSw5
IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6
RHJhd0dseXBoczoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZXNGb3JUZXh0OgogICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdQYXRoOgorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZl
cjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6CisgICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd1BhdHRlcm46CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbENvbXBvc2l0ZWRSZWN0Ogog
ICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxQYXRoOgogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0
V2l0aENvbG9yOgpAQCAtMzI4LDkgKzMzMSw2IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBl
IHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06CiAgICAgY2FzZSBJdGVt
VHlwZTo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
RWxsaXBzZToKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJu
OgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdMaW5lOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdS
ZWN0OgogICAgIGNhc2UgSXRlbVR5cGU6OkVuZFRyYW5zcGFyZW5jeUxheWVyOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggMDExYjQxZDliMWI1Mzk3MDMzZmM5MGY2ZGQyYmJl
MGI1ZjBmYmQyZS4uZjJjZTBkOWRlOTE1MmVmOTVlMDVkNWQ5MTY3Y2I5NjNmZGExNGI0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC05OTYsNyArOTk2LDcgQEAgc3RkOjpv
cHRpb25hbDxEcmF3R2x5cGhzPiBEcmF3R2x5cGhzOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
IGNsYXNzIERyYXdJbWFnZUJ1ZmZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJ
dGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGlzSW5saW5lSXRlbSA9IGZhbHNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBp
c0RyYXdpbmdJdGVtID0gdHJ1ZTsKIAogICAgIERyYXdJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQpAQCAtMTAxMSw4ICsxMDExLDYgQEAgcHVibGljOgogICAgIEZsb2F0UmVj
dCBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NyY1JlY3Q7IH0KICAgICBGbG9hdFJlY3QgZGVz
dGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblJlY3Q7IH0KICAgICBJ
bWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9
Ci0gICAgLy8gRklYTUU6IFdlIG1pZ2h0IHdhbnQgdG8gdmFsaWRhdGUgSW1hZ2VQYWludGluZ09w
dGlvbnMuCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUJ1ZmZlcklk
ZW50aWZpZXIuaXNWYWxpZCgpOyB9CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYs
IFdlYkNvcmU6OkltYWdlQnVmZmVyJikgY29uc3Q7CiAKQEAgLTEwMjEsNiArMTAxOSw5IEBAIHB1
YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3Qg
eyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGxv
Y2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGlu
YXRpb25SZWN0OyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8RHJhd0ltYWdlQnVmZmVyPiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgog
ICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsK
ICAgICBGbG9hdFJlY3QgbV9kZXN0aW5hdGlvblJlY3Q7CkBAIC0xMDI4LDEwICsxMDI5LDQ1IEBA
IHByaXZhdGU6CiAgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9vcHRpb25zOwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRHJhd0ltYWdlQnVmZmVyOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1faW1hZ2VCdWZmZXJJZGVudGlm
aWVyOworICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvblJlY3Q7CisgICAgZW5jb2RlciA8PCBt
X3NyY1JlY3Q7CisgICAgZW5jb2RlciA8PCBtX29wdGlvbnM7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPERyYXdJbWFnZUJ1ZmZlcj4gRHJhd0ltYWdlQnVmZmVy
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4gaW1hZ2VCdWZmZXJJZGVudGlmaWVyOworICAgIGRlY29kZXIg
Pj4gaW1hZ2VCdWZmZXJJZGVudGlmaWVyOworICAgIGlmICghaW1hZ2VCdWZmZXJJZGVudGlmaWVy
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9h
dFJlY3Q+IGRlc3RpbmF0aW9uUmVjdDsKKyAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uUmVjdDsK
KyAgICBpZiAoIWRlc3RpbmF0aW9uUmVjdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBzcmNSZWN0OworICAgIGRlY29kZXIgPj4g
c3JjUmVjdDsKKyAgICBpZiAoIXNyY1JlY3QpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPEltYWdlUGFpbnRpbmdPcHRpb25zPiBvcHRpb25zOworICAg
IGRlY29kZXIgPj4gb3B0aW9uczsKKyAgICBpZiAoIW9wdGlvbnMpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICppbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFdU
Rk1vdmUoKmRlc3RpbmF0aW9uUmVjdCksIFdURk1vdmUoKnNyY1JlY3QpLCBXVEZNb3ZlKCpvcHRp
b25zKSB9IH07Cit9CisKIGNsYXNzIERyYXdOYXRpdmVJbWFnZSB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1h
Z2U7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IGZhbHNlOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gdHJ1ZTsKIAogICAgIERyYXdOYXRpdmVJbWFn
ZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKQEAgLTEw
NDYsOCArMTA4Miw2IEBAIHB1YmxpYzoKICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
aW1hZ2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUlkZW50aWZpZXI7IH0KICAg
ICBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQog
ICAgIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvblJlY3Q7IH0KLSAgICAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byB2YWxpZGF0
ZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biBtX2ltYWdlSWRlbnRpZmllci5pc1ZhbGlkKCk7IH0KIAogICAgIE5PX1JFVFVSTl9EVUVfVE9f
QVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJbWFnZSYpIGNvbnN0OwpAQCAtMTA1NSw2ICsxMDg5
LDkgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMo
KSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0
UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3QgeyByZXR1cm4g
bV9kZXN0aW5hdGlvblJlY3Q7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxEcmF3TmF0aXZlSW1hZ2U+IGRlY29kZShEZWNvZGVyJik7CisKIHBy
aXZhdGU6CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VJZGVudGlmaWVy
OwogICAgIEZsb2F0U2l6ZSBtX2ltYWdlU2l6ZTsKQEAgLTEwNjMsMTAgKzExMDAsNTEgQEAgcHJp
dmF0ZToKICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX29wdGlvbnM7CiB9OwogCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9pbWFnZUlkZW50aWZpZXI7CisgICAg
ZW5jb2RlciA8PCBtX2ltYWdlU2l6ZTsKKyAgICBlbmNvZGVyIDw8IG1fZGVzdGluYXRpb25SZWN0
OworICAgIGVuY29kZXIgPDwgbV9zcmNSZWN0OworICAgIGVuY29kZXIgPDwgbV9vcHRpb25zOwor
fQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxEcmF3TmF0aXZlSW1h
Z2U+IERyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3Rk
OjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGltYWdlSWRlbnRpZmllcjsK
KyAgICBkZWNvZGVyID4+IGltYWdlSWRlbnRpZmllcjsKKyAgICBpZiAoIWltYWdlSWRlbnRpZmll
cikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Rmxv
YXRTaXplPiBpbWFnZVNpemU7CisgICAgZGVjb2RlciA+PiBpbWFnZVNpemU7CisgICAgaWYgKCFp
bWFnZVNpemUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPEZsb2F0UmVjdD4gZGVzdGluYXRpb25SZWN0OworICAgIGRlY29kZXIgPj4gZGVzdGluYXRp
b25SZWN0OworICAgIGlmICghZGVzdGluYXRpb25SZWN0KQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHNyY1JlY3Q7CisgICAgZGVj
b2RlciA+PiBzcmNSZWN0OworICAgIGlmICghc3JjUmVjdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VQYWludGluZ09wdGlvbnM+IG9wdGlv
bnM7CisgICAgZGVjb2RlciA+PiBvcHRpb25zOworICAgIGlmICghb3B0aW9ucykKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgKmltYWdlSWRlbnRpZmllciwg
KmltYWdlU2l6ZSwgV1RGTW92ZSgqZGVzdGluYXRpb25SZWN0KSwgV1RGTW92ZSgqc3JjUmVjdCks
IFdURk1vdmUoKm9wdGlvbnMpIH0gfTsKK30KKwogY2xhc3MgRHJhd1BhdHRlcm4gewogcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6RHJh
d1BhdHRlcm47Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IGZhbHNlOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gdHJ1ZTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgY29uc3QgRmxv
YXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiA9IHsgfSk7CkBAIC0xMDg3LDYgKzExNjUsOSBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IGdsb2JhbEJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsgfQogICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFw
aGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CiAKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RHJhd1BhdHRlcm4+IGRl
Y29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIG1faW1hZ2VJZGVudGlmaWVyOwogICAgIEZsb2F0U2l6ZSBtX2ltYWdlU2l6ZTsKQEAgLTEw
OTgsNiArMTE3OSw2NSBAQCBwcml2YXRlOgogICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1fb3B0
aW9uczsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIERyYXdQYXR0ZXJuOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1faW1hZ2VJ
ZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgbV9pbWFnZVNpemU7CisgICAgZW5jb2RlciA8PCBt
X2Rlc3RpbmF0aW9uOworICAgIGVuY29kZXIgPDwgbV90aWxlUmVjdDsKKyAgICBlbmNvZGVyIDw8
IG1fcGF0dGVyblRyYW5zZm9ybTsKKyAgICBlbmNvZGVyIDw8IG1fcGhhc2U7CisgICAgZW5jb2Rl
ciA8PCBtX3NwYWNpbmc7CisgICAgZW5jb2RlciA8PCBtX29wdGlvbnM7Cit9CisKK3RlbXBsYXRl
PGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPERyYXdQYXR0ZXJuPiBEcmF3UGF0dGVybjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+IGltYWdlSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGltYWdl
SWRlbnRpZmllcjsKKyAgICBpZiAoIWltYWdlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRTaXplPiBpbWFnZVNpemU7Cisg
ICAgZGVjb2RlciA+PiBpbWFnZVNpemU7CisgICAgaWYgKCFpbWFnZVNpemUpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gZGVzdGlu
YXRpb247CisgICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvbjsKKyAgICBpZiAoIWRlc3RpbmF0aW9u
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9h
dFJlY3Q+IHRpbGVSZWN0OworICAgIGRlY29kZXIgPj4gdGlsZVJlY3Q7CisgICAgaWYgKCF0aWxl
UmVjdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
QWZmaW5lVHJhbnNmb3JtPiBwYXR0ZXJuVHJhbnNmb3JtOworICAgIGRlY29kZXIgPj4gcGF0dGVy
blRyYW5zZm9ybTsKKyAgICBpZiAoIXBhdHRlcm5UcmFuc2Zvcm0pCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBoYXNlOworICAg
IGRlY29kZXIgPj4gcGhhc2U7CisgICAgaWYgKCFwaGFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRTaXplPiBzcGFjaW5nOworICAgIGRl
Y29kZXIgPj4gc3BhY2luZzsKKyAgICBpZiAoIXNwYWNpbmcpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEltYWdlUGFpbnRpbmdPcHRpb25zPiBvcHRp
b25zOworICAgIGRlY29kZXIgPj4gb3B0aW9uczsKKyAgICBpZiAoIW9wdGlvbnMpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICppbWFnZUlkZW50aWZpZXIs
ICppbWFnZVNpemUsIFdURk1vdmUoKmRlc3RpbmF0aW9uKSwgV1RGTW92ZSgqdGlsZVJlY3QpLCBX
VEZNb3ZlKCpwYXR0ZXJuVHJhbnNmb3JtKSwgKnBoYXNlLCAqc3BhY2luZywgV1RGTW92ZSgqb3B0
aW9ucykgfSB9OworfQorCiBjbGFzcyBCZWdpblRyYW5zcGFyZW5jeUxheWVyIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OkJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggYjdmMGZmODZl
NmY4ZTE0ZmZmOGI1MjhiOTE5OTA1MWU4YTllNDBlYS4uYTY5YmJlYWY0YzA0ODczMGZiZWE1ODVl
NzhhNmZmN2UyYTUwMzhmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNjU1LDYgKzY1
NSwxMiBAQCBzdGQ6Om9wdGlvbmFsPERpc3BsYXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNF
RF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZAogICAgICAgICByZXR1cm4gZGVjb2RlQW5k
Q3JlYXRlPERpc3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUmVjdHM+KGRhdGEsIGxlbmd0aCwgaGFu
ZGxlTG9jYXRpb24pOwogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3R2x5cGhz
OgogICAgICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRlPERpc3BsYXlMaXN0OjpEcmF3R2x5cGhz
PihkYXRhLCBsZW5ndGgsIGhhbmRsZUxvY2F0aW9uKTsKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRl
PERpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRp
b24pOworICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6Cisg
ICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFn
ZT4oZGF0YSwgbGVuZ3RoLCBoYW5kbGVMb2NhdGlvbik7CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgorICAgICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRlPERp
c3BsYXlMaXN0OjpEcmF3UGF0dGVybj4oZGF0YSwgbGVuZ3RoLCBoYW5kbGVMb2NhdGlvbik7CiAg
ICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdMaW5lc0ZvclRleHQ6CiAgICAgICAg
IHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxheUxpc3Q6OkRyYXdMaW5lc0ZvclRleHQ+KGRh
dGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOwogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpEcmF3UGF0aDoKQEAgLTY5Niw5ICs3MDIsNiBAQCBzdGQ6Om9wdGlvbmFsPERpc3BsYXlM
aXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZAogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKICAgICBj
YXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjoKICAg
ICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0VsbGlwc2U6Ci0gICAgY2FzZSBEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKLSAgICBjYXNlIERpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpEcmF3UGF0dGVybjoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0xp
bmU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdSZWN0OgogICAgIGNhc2Ug
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXllcjoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440674</attachid>
            <date>2021-10-08 14:36:54 -0700</date>
            <delta_ts>2021-10-08 17:57:54 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231447-20211008143653.patch</filename>
            <type>text/plain</type>
            <size>16294</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVmYzljMjMxMjBkNjlj
NTA0YTkzOWI2YWI0YzUzZTM1YWEwMmMzYS4uZTlmODM2NzA3MWRjNDU4ZjkyZmZhMTRlYWM0ODJl
ZGU2NzRkYWRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEwLTA4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYXdJbWFnZUJ1
ZmZlciwgRHJhd05hdGl2ZUltYWdlIGFuZCBEcmF3UGF0dGVybiBzaG91bGQgbm90IGJlIGlubGlu
ZSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxNDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBUaGVz
ZSB0aHJlZSBkaXNwbGF5IGxpc3QgaXRlbXMgYWxsIGNvbnRhaW4gSW1hZ2VQYWludGluZ09wdGlv
bnMsIHdoaWNoIChpbiB0dXJuKSBjb250YWlucyBzdHJvbmdseSB0eXBlZCBlbnVtcy4KKyAgICAg
ICAgV2UgY3VycmVudGx5IGBtZW1jcHlgIHRoZXNlIGFzIFBPRCB0eXBlcywgYnV0IGRvbid0IGhh
dmUgYW55IGxvZ2ljIHRvIGFkZGl0aW9uYWxseSB2YWxpZGF0ZSB0aGF0IHRoZXNlIGVudW0KKyAg
ICAgICAgdmFsdWVzIGFyZSB2YWxpZC4KKworICAgICAgICBJbnN0ZWFkIG9mIGFkZGluZyBTaW1w
bGVBcmd1bWVudENvZGVyIHN1cHBvcnQgZm9yIHRoZXNlIGRpc3BsYXkgbGlzdCBpdGVtIHR5cGVz
IHdoZW4gaW1wbGVtZW50aW5nIHN0cmVhbWluZyBJUEMsCisgICAgICAgIHdlIHNob3VsZCBqdXN0
IG1ha2UgdGhlbSBub24taW5saW5lIGFuZCBpbXBsZW1lbnQgZW5jb2RpbmcvZGVjb2RpbmcgbG9n
aWMgYXMgc3RhdGljIG1ldGhvZHMgb24gdGhlIGl0ZW1zCisgICAgICAgIHRoZW1zZWx2ZXMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
QnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6YXBw
ZW5kKToKKworICAgICAgICBBZGRpdGlvbmFsbHkgYWRqdXN0IHRoaXMgY29tcGlsZS10aW1lIGFz
c2VydGlvbiB0byBjaGVjayB0aGF0IGBUOjppc0lubGluZUl0ZW1gIGltcGxpZXMKKyAgICAgICAg
YGlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD5gLCByYXRoZXIgdGhhbiBgVDo6aXNJbmxpbmVJ
dGVtID09IGlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD5gLiBUaGlzIGlzIGJlY2F1c2UKKyAg
ICAgICAgYmVpbmcgdHJpdmlhbGx5IGRlc3RydWN0aWJsZSBpc24ndCBzdWZmaWNpZW50IHRvIGd1
YXJhbnRlZSB0aGF0IGEgZGlzcGxheSBsaXN0IGl0ZW0gY2FuIGJlIHRyZWF0ZWQgYXMgYW4gaW5s
aW5lCisgICAgICAgIGl0ZW0gKGFzIGRlbW9uc3RyYXRlZCBieSB0aGUgdGhyZWUgZGlzcGxheSBs
aXN0IGl0ZW1zIGNoYW5nZWQgaW4gdGhpcyBwYXRjaCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6b3B0aW9ucyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmRlc3RpbmF0
aW9uUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2
ZUltYWdlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdOYXRpdmVJbWFnZTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3UGF0dGVybjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3UGF0dGVybjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3SW1hZ2VCdWZmZXI6OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6aXNWYWxpZCBjb25zdCk6IERlbGV0ZWQu
CisKIDIwMjEtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3BsaXQgRGlzcGxheUxpc3Q6OlJlY29yZGVyIGludG8gYW4gYWJzdHJhY3QgYmFz
ZSBjbGFzcyBhbmQgYSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzYTI1M2Fm
ZjAzNTFhYjQ2OTU5MDJlYTYxNGUyZTBlYjdmYmJmODUyLi4wZjEyY2U3Yzg3YjRlNDYzMmIxMDE1
NDYzNTc2MDYwM2Y0OWFkZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTEwLTA4
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYXdJ
bWFnZUJ1ZmZlciwgRHJhd05hdGl2ZUltYWdlIGFuZCBEcmF3UGF0dGVybiBzaG91bGQgbm90IGJl
IGlubGluZSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlY29kZUl0ZW0pOgorCiAyMDIxLTEwLTA4
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFNwbGl0
IERpc3BsYXlMaXN0OjpSZWNvcmRlciBpbnRvIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgYW5kIGEg
Y29uY3JldGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1C
dWZmZXIuaAppbmRleCBjODczMTk4MmVmODM5MzFiYmFlMzFiNzg2NTBhYzBkYTIwYTA1ZmM1Li5i
YTUyMmQ2MmU5OTkxZTVhOGMyMjY2ZDM4ZjZkNTkxMDUxOTRkOWI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oCkBAIC0xNzUsMTcgKzE3NSwxNCBAQCBwdWJsaWM6
CiAgICAgLy8gZGF0YSBiYWNrIGludG8gYW4gaXRlbSBvZiB0eXBlIFQuCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgY2xhc3MuLi4gQXJncz4gdm9pZCBhcHBlbmQoQXJncyYmLi4uIGFyZ3MpCiAg
ICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJs
ZTxUPjo6dmFsdWUgPT0gVDo6aXNJbmxpbmVJdGVtKTsKLQogICAgICAgICBpZiBjb25zdGV4cHIg
KCFUOjppc0lubGluZUl0ZW0pIHsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fd3JpdGlu
Z0NsaWVudCk7CiAgICAgICAgICAgICBhcHBlbmQoRGlzcGxheUxpc3RJdGVtKFQoc3RkOjpmb3J3
YXJkPEFyZ3M+KGFyZ3MpLi4uKSkpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8VD46OnZhbHVlKTsKKyAgICAgICAgICAgIGF1dG8gYnVmZmVyQ2hhbmdlZCA9IHN3YXBX
cml0YWJsZUJ1ZmZlcklmTmVlZGVkKHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhUOjpp
dGVtVHlwZSkpOworICAgICAgICAgICAgdW5jaGVja2VkQXBwZW5kPFQ+KGJ1ZmZlckNoYW5nZWQs
IHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CiAgICAgICAgIH0KLQotICAgICAgICBhdXRv
IGJ1ZmZlckNoYW5nZWQgPSBzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChwYWRkZWRTaXplT2ZU
eXBlQW5kSXRlbUluQnl0ZXMoVDo6aXRlbVR5cGUpKTsKLQotICAgICAgICB1bmNoZWNrZWRBcHBl
bmQ8VD4oYnVmZmVyQ2hhbmdlZCwgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICB9
CiAKICAgICB2b2lkIHNldENsaWVudChJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCogY2xpZW50KSB7
IG1fd3JpdGluZ0NsaWVudCA9IGNsaWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbVR5cGUuY3BwCmluZGV4IDQyNjQ0ZTE2NDJjZTJkYWIwNzVlMmFjN2Q0OTUxYzA3OWMyZGE3
ODAuLjc1OWM4YzcyYTQyYTA0MTU1M2MyZGYyNTcwYTljN2YwZTk1NTYzNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1UeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKQEAgLTMwMSw2ICszMDEsOSBAQCBib29s
IGlzSW5saW5lSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlw
aHM6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0xpbmVzRm9yVGV4dDoKICAgICBjYXNlIEl0ZW1U
eXBlOjpEcmF3UGF0aDoKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CisgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQ
YXR0ZXJuOgogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxDb21wb3NpdGVkUmVjdDoKICAgICBjYXNl
IEl0ZW1UeXBlOjpGaWxsUGF0aDoKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUmVjdFdpdGhDb2xv
cjoKQEAgLTMyOCw5ICszMzEsNiBAQCBib29sIGlzSW5saW5lSXRlbShJdGVtVHlwZSB0eXBlKQog
ICAgIGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgIGNhc2UgSXRlbVR5cGU6OkRy
YXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0VsbGlwc2U6
Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgotICAgIGNhc2UgSXRlbVR5cGU6
OkRyYXdOYXRpdmVJbWFnZToKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKICAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3TGluZToKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UmVjdDoKICAg
ICBjYXNlIEl0ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXllcjoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCmluZGV4IDAxMWI0MWQ5YjFiNTM5NzAzM2ZjOTBmNmRkMmJiZTBiNWYwZmJk
MmUuLjNhZTU5NDVlNzkyZjI4ZDFmZDE2NzliNTc1MGIzZjMzZTdiOGQ2ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtOTk2LDcgKzk5Niw3IEBAIHN0ZDo6b3B0aW9uYWw8
RHJhd0dseXBocz4gRHJhd0dseXBoczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiBjbGFzcyBE
cmF3SW1hZ2VCdWZmZXIgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUg
aXRlbVR5cGUgPSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOwotICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBp
c0lubGluZUl0ZW0gPSBmYWxzZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5n
SXRlbSA9IHRydWU7CiAKICAgICBEcmF3SW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0
aW9ucykKQEAgLTEwMTEsOCArMTAxMSw2IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3Qgc291cmNl
KCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CiAgICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9u
UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CiAgICAgSW1hZ2VQYWlu
dGluZ09wdGlvbnMgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQotICAgIC8v
IEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHZhbGlkYXRlIEltYWdlUGFpbnRpbmdPcHRpb25zLgot
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVy
LmlzVmFsaWQoKTsgfQogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBXZWJDb3Jl
OjpJbWFnZUJ1ZmZlciYpIGNvbnN0OwogCkBAIC0xMDIxLDYgKzEwMTksOSBAQCBwdWJsaWM6CiAg
ICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGdsb2JhbEJvdW5kcygpIGNvbnN0IHsgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsgfQogICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5k
cyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVj
dDsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PERyYXdJbWFnZUJ1ZmZlcj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7CiAgICAgRmxv
YXRSZWN0IG1fZGVzdGluYXRpb25SZWN0OwpAQCAtMTAyOCwxMCArMTAyOSw0NSBAQCBwcml2YXRl
OgogICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1fb3B0aW9uczsKIH07CiAKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsKKyAg
ICBlbmNvZGVyIDw8IG1fZGVzdGluYXRpb25SZWN0OworICAgIGVuY29kZXIgPDwgbV9zcmNSZWN0
OworICAgIGVuY29kZXIgPDwgbV9vcHRpb25zOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
Pgorc3RkOjpvcHRpb25hbDxEcmF3SW1hZ2VCdWZmZXI+IERyYXdJbWFnZUJ1ZmZlcjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+IGltYWdlQnVmZmVySWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGltYWdl
QnVmZmVySWRlbnRpZmllcjsKKyAgICBpZiAoIWltYWdlQnVmZmVySWRlbnRpZmllcikKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBk
ZXN0aW5hdGlvblJlY3Q7CisgICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvblJlY3Q7CisgICAgaWYg
KCFkZXN0aW5hdGlvblJlY3QpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBz
dGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gc3JjUmVjdDsKKyAgICBkZWNvZGVyID4+IHNyY1JlY3Q7
CisgICAgaWYgKCFzcmNSZWN0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gb3B0aW9uczsKKyAgICBkZWNvZGVy
ID4+IG9wdGlvbnM7CisgICAgaWYgKCFvcHRpb25zKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgcmV0dXJuIHsgeyAqaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXVEZNb3ZlKCpk
ZXN0aW5hdGlvblJlY3QpLCBXVEZNb3ZlKCpzcmNSZWN0KSwgV1RGTW92ZSgqb3B0aW9ucykgfSB9
OworfQorCiBjbGFzcyBEcmF3TmF0aXZlSW1hZ2UgewogcHVibGljOgogICAgIHN0YXRpYyBjb25z
dGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOwotICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSBmYWxzZTsKICAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgaXNEcmF3aW5nSXRlbSA9IHRydWU7CiAKICAgICBEcmF3TmF0aXZlSW1hZ2UoUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCkBAIC0xMDQ2LDggKzEw
ODIsNiBAQCBwdWJsaWM6CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VJZGVudGlmaWVyOyB9CiAgICAgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NyY1JlY3Q7IH0KICAgICBjb25z
dCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRp
b25SZWN0OyB9Ci0gICAgLy8gRklYTUU6IFdlIG1pZ2h0IHdhbnQgdG8gdmFsaWRhdGUgSW1hZ2VQ
YWludGluZ09wdGlvbnMuCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pbWFn
ZUlkZW50aWZpZXIuaXNWYWxpZCgpOyB9CiAKICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2
b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogICAgIHZvaWQgYXBwbHkoR3JhcGhp
Y3NDb250ZXh0JiwgTmF0aXZlSW1hZ2UmKSBjb25zdDsKQEAgLTEwNTUsNiArMTA4OSw5IEBAIHB1
YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3Qg
eyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGxv
Y2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGlu
YXRpb25SZWN0OyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8RHJhd05hdGl2ZUltYWdlPiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgog
ICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdlSWRlbnRpZmllcjsKICAgICBG
bG9hdFNpemUgbV9pbWFnZVNpemU7CkBAIC0xMDYzLDEwICsxMTAwLDUxIEBAIHByaXZhdGU6CiAg
ICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9vcHRpb25zOwogfTsKIAordGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KK3ZvaWQgRHJhd05hdGl2ZUltYWdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1faW1hZ2VJZGVudGlmaWVyOworICAgIGVuY29kZXIg
PDwgbV9pbWFnZVNpemU7CisgICAgZW5jb2RlciA8PCBtX2Rlc3RpbmF0aW9uUmVjdDsKKyAgICBl
bmNvZGVyIDw8IG1fc3JjUmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fb3B0aW9uczsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8RHJhd05hdGl2ZUltYWdlPiBEcmF3
TmF0aXZlSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBpbWFnZUlkZW50aWZpZXI7CisgICAgZGVj
b2RlciA+PiBpbWFnZUlkZW50aWZpZXI7CisgICAgaWYgKCFpbWFnZUlkZW50aWZpZXIpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0U2l6ZT4g
aW1hZ2VTaXplOworICAgIGRlY29kZXIgPj4gaW1hZ2VTaXplOworICAgIGlmICghaW1hZ2VTaXpl
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9h
dFJlY3Q+IGRlc3RpbmF0aW9uUmVjdDsKKyAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uUmVjdDsK
KyAgICBpZiAoIWRlc3RpbmF0aW9uUmVjdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBzcmNSZWN0OworICAgIGRlY29kZXIgPj4g
c3JjUmVjdDsKKyAgICBpZiAoIXNyY1JlY3QpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPEltYWdlUGFpbnRpbmdPcHRpb25zPiBvcHRpb25zOworICAg
IGRlY29kZXIgPj4gb3B0aW9uczsKKyAgICBpZiAoIW9wdGlvbnMpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICppbWFnZUlkZW50aWZpZXIsICppbWFnZVNp
emUsIFdURk1vdmUoKmRlc3RpbmF0aW9uUmVjdCksIFdURk1vdmUoKnNyY1JlY3QpLCBXVEZNb3Zl
KCpvcHRpb25zKSB9IH07Cit9CisKIGNsYXNzIERyYXdQYXR0ZXJuIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OkRyYXdQYXR0ZXJu
OwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSBmYWxzZTsKICAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IHRydWU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBE
cmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYg
aW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7
IH0pOwpAQCAtMTA3OCw4ICsxMTU2LDYgQEAgcHVibGljOgogICAgIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0dGVyblRyYW5zZm9y
bTsgfQogICAgIEZsb2F0UG9pbnQgcGhhc2UoKSBjb25zdCB7IHJldHVybiBtX3BoYXNlOyB9CiAg
ICAgRmxvYXRTaXplIHNwYWNpbmcoKSBjb25zdCB7IHJldHVybiBtX3NwYWNpbmc7IH0KLSAgICAv
LyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byB2YWxpZGF0ZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4K
LSAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlSWRlbnRpZmllci5pc1Zh
bGlkKCk7IH0KIAogICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhp
Y3NDb250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBOYXRp
dmVJbWFnZSYpIGNvbnN0OwpAQCAtMTA4Nyw2ICsxMTYzLDkgQEAgcHVibGljOgogICAgIHN0ZDo6
b3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBzdGQ6Om51
bGxvcHQ7IH0KICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3Qg
R3JhcGhpY3NDb250ZXh0JikgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbjsgfQogCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERyYXdQYXR0ZXJu
PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciBtX2ltYWdlSWRlbnRpZmllcjsKICAgICBGbG9hdFNpemUgbV9pbWFnZVNpemU7CkBA
IC0xMDk4LDYgKzExNzcsNjUgQEAgcHJpdmF0ZToKICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBt
X29wdGlvbnM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEcmF3UGF0dGVy
bjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2lt
YWdlSWRlbnRpZmllcjsKKyAgICBlbmNvZGVyIDw8IG1faW1hZ2VTaXplOworICAgIGVuY29kZXIg
PDwgbV9kZXN0aW5hdGlvbjsKKyAgICBlbmNvZGVyIDw8IG1fdGlsZVJlY3Q7CisgICAgZW5jb2Rl
ciA8PCBtX3BhdHRlcm5UcmFuc2Zvcm07CisgICAgZW5jb2RlciA8PCBtX3BoYXNlOworICAgIGVu
Y29kZXIgPDwgbV9zcGFjaW5nOworICAgIGVuY29kZXIgPDwgbV9vcHRpb25zOworfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxEcmF3UGF0dGVybj4gRHJhd1BhdHRl
cm46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyPiBpbWFnZUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBp
bWFnZUlkZW50aWZpZXI7CisgICAgaWYgKCFpbWFnZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0U2l6ZT4gaW1hZ2VTaXpl
OworICAgIGRlY29kZXIgPj4gaW1hZ2VTaXplOworICAgIGlmICghaW1hZ2VTaXplKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGRl
c3RpbmF0aW9uOworICAgIGRlY29kZXIgPj4gZGVzdGluYXRpb247CisgICAgaWYgKCFkZXN0aW5h
dGlvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
RmxvYXRSZWN0PiB0aWxlUmVjdDsKKyAgICBkZWNvZGVyID4+IHRpbGVSZWN0OworICAgIGlmICgh
dGlsZVJlY3QpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPEFmZmluZVRyYW5zZm9ybT4gcGF0dGVyblRyYW5zZm9ybTsKKyAgICBkZWNvZGVyID4+IHBh
dHRlcm5UcmFuc2Zvcm07CisgICAgaWYgKCFwYXR0ZXJuVHJhbnNmb3JtKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiBwaGFzZTsK
KyAgICBkZWNvZGVyID4+IHBoYXNlOworICAgIGlmICghcGhhc2UpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0U2l6ZT4gc3BhY2luZzsKKyAg
ICBkZWNvZGVyID4+IHNwYWNpbmc7CisgICAgaWYgKCFzcGFjaW5nKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4g
b3B0aW9uczsKKyAgICBkZWNvZGVyID4+IG9wdGlvbnM7CisgICAgaWYgKCFvcHRpb25zKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyAqaW1hZ2VJZGVudGlm
aWVyLCAqaW1hZ2VTaXplLCBXVEZNb3ZlKCpkZXN0aW5hdGlvbiksIFdURk1vdmUoKnRpbGVSZWN0
KSwgV1RGTW92ZSgqcGF0dGVyblRyYW5zZm9ybSksICpwaGFzZSwgKnNwYWNpbmcsIFdURk1vdmUo
Km9wdGlvbnMpIH0gfTsKK30KKwogY2xhc3MgQmVnaW5UcmFuc3BhcmVuY3lMYXllciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpC
ZWdpblRyYW5zcGFyZW5jeUxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGI3ZjBm
Zjg2ZTZmOGUxNGZmZjhiNTI4YjkxOTkwNTFlOGE5ZTQwZWEuLmE2OWJiZWFmNGMwNDg3MzBmYmVh
NTg1ZTc4YTZmZjdlMmE1MDM4ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTY1NSw2
ICs2NTUsMTIgQEAgc3RkOjpvcHRpb25hbDxEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZT4gV0FSTl9V
TlVTRURfUkVUVVJOIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQKICAgICAgICAgcmV0dXJuIGRlY29k
ZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6RHJhd0ZvY3VzUmluZ1JlY3RzPihkYXRhLCBsZW5ndGgs
IGhhbmRsZUxvY2F0aW9uKTsKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0ds
eXBoczoKICAgICAgICAgcmV0dXJuIGRlY29kZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6RHJhd0ds
eXBocz4oZGF0YSwgbGVuZ3RoLCBoYW5kbGVMb2NhdGlvbik7CisgICAgY2FzZSBEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKKyAgICAgICAgcmV0dXJuIGRlY29kZUFuZENy
ZWF0ZTxEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyPihkYXRhLCBsZW5ndGgsIGhhbmRsZUxv
Y2F0aW9uKTsKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdl
OgorICAgICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRlPERpc3BsYXlMaXN0OjpEcmF3TmF0aXZl
SW1hZ2U+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOworICAgIGNhc2UgRGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKKyAgICAgICAgcmV0dXJuIGRlY29kZUFuZENyZWF0
ZTxEaXNwbGF5TGlzdDo6RHJhd1BhdHRlcm4+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24p
OwogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3TGluZXNGb3JUZXh0OgogICAg
ICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRlPERpc3BsYXlMaXN0OjpEcmF3TGluZXNGb3JUZXh0
PihkYXRhLCBsZW5ndGgsIGhhbmRsZUxvY2F0aW9uKTsKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6RHJhd1BhdGg6CkBAIC02OTYsOSArNzAyLDYgQEAgc3RkOjpvcHRpb25hbDxEaXNw
bGF5TGlzdDo6SXRlbUhhbmRsZT4gV0FSTl9VTlVTRURfUkVUVVJOIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06CiAg
ICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6
CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdFbGxpcHNlOgotICAgIGNhc2Ug
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6Ci0gICAgY2FzZSBEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6RHJhd1BhdHRlcm46CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRy
YXdMaW5lOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UmVjdDoKICAgICBj
YXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RW5kVHJhbnNwYXJlbmN5TGF5ZXI6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440696</attachid>
            <date>2021-10-08 17:57:56 -0700</date>
            <delta_ts>2021-10-09 11:10:35 -0700</delta_ts>
            <desc>Fix failing tests</desc>
            <filename>bug-231447-20211008175755.patch</filename>
            <type>text/plain</type>
            <size>23225</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVmYzljMjMxMjBkNjlj
NTA0YTkzOWI2YWI0YzUzZTM1YWEwMmMzYS4uMTc0NjYxYTRiNDY1OGJlMWY0NTA0OWQ5N2VlZTJk
MDcyOTI2NTQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIxLTEwLTA4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYXdJbWFnZUJ1
ZmZlciwgRHJhd05hdGl2ZUltYWdlIGFuZCBEcmF3UGF0dGVybiBzaG91bGQgbm90IGJlIGlubGlu
ZSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxNDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlc2UgdGhyZWUgZGlzcGxheSBsaXN0IGl0ZW1zIGFsbCBjb250YWluIEltYWdlUGFpbnRpbmdP
cHRpb25zLCB3aGljaCAoaW4gdHVybikgY29udGFpbnMgc3Ryb25nbHkgdHlwZWQgZW51bXMuCisg
ICAgICAgIFdlIGN1cnJlbnRseSBgbWVtY3B5YCB0aGVzZSBhcyBQT0QgdHlwZXMsIGJ1dCBkb24n
dCBoYXZlIGFueSBsb2dpYyB0byBhZGRpdGlvbmFsbHkgdmFsaWRhdGUgdGhhdCB0aGVzZSBlbnVt
CisgICAgICAgIHZhbHVlcyBhcmUgdmFsaWQuCisKKyAgICAgICAgSW5zdGVhZCBvZiBhZGRpbmcg
U2ltcGxlQXJndW1lbnRDb2RlciBzdXBwb3J0IGZvciB0aGVzZSBkaXNwbGF5IGxpc3QgaXRlbSB0
eXBlcyB3aGVuIGltcGxlbWVudGluZyBzdHJlYW1pbmcgSVBDLAorICAgICAgICB3ZSBzaG91bGQg
anVzdCBtYWtlIHRoZW0gbm9uLWlubGluZSBhbmQgaW1wbGVtZW50IGVuY29kaW5nL2RlY29kaW5n
IGxvZ2ljIGFzIHN0YXRpYyBtZXRob2RzIG9uIHRoZSBpdGVtcworICAgICAgICB0aGVtc2VsdmVz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6
OmFwcGVuZCk6CisKKyAgICAgICAgQWRkaXRpb25hbGx5IGFkanVzdCB0aGlzIGNvbXBpbGUtdGlt
ZSBhc3NlcnRpb24gdG8gY2hlY2sgdGhhdCBgVDo6aXNJbmxpbmVJdGVtYCBpbXBsaWVzCisgICAg
ICAgIGBpc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+YCwgcmF0aGVyIHRoYW4gYFQ6OmlzSW5s
aW5lSXRlbSA9PSBpc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+YC4gVGhpcyBpcyBiZWNhdXNl
CisgICAgICAgIGJlaW5nIHRyaXZpYWxseSBkZXN0cnVjdGlibGUgaXNuJ3Qgc3VmZmljaWVudCB0
byBndWFyYW50ZWUgdGhhdCBhIGRpc3BsYXkgbGlzdCBpdGVtIGNhbiBiZSB0cmVhdGVkIGFzIGFu
IGlubGluZQorICAgICAgICBpdGVtIChhcyBkZW1vbnN0cmF0ZWQgYnkgdGhlIHRocmVlIGRpc3Bs
YXkgbGlzdCBpdGVtcyBjaGFuZ2VkIGluIHRoaXMgcGF0Y2gpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmNyZWF0ZURpc3BsYXlMaXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Om1fY29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQ6OnJlcGxheURpc3BsYXlMaXN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
aW5nQ29udGV4dC5oOgorCisgICAgICAgIFJlZmFjdG9yIERpc3BsYXlMaXN0OjpEcmF3aW5nQ29u
dGV4dCB0byBpbml0aWFsaXplIGFuIEluTWVtb3J5RGlzcGxheUxpc3QgYnkgZGVmYXVsdCwgdW5s
ZXNzIHRoZSByZWNvcmRlcgorICAgICAgICBkZWxlZ2F0ZSBpbmRpY2F0ZXMgdGhhdCBpdCB3aWxs
IHBlcmZvcm0gaXRzIG93biBjdXN0b20gaXRlbSBlbmNvZGluZy4gVGhpcyBlbnN1cmVzIHRoYXQg
aW4tcHJvY2VzcyBEaXNwbGF5TGlzdAorICAgICAgICByZWNvcmRpbmcgY2xpZW50cyB0aGF0IGF0
dGVtcHQgdG8gYXBwZW5kIG91dCBvZiBsaW5lIGl0ZW1zIHdpbGwgbm90IGNyYXNoIHdoZW4gZG9p
bmcgc28uIE5vdGFibHksIHRoaXMgY2hhbmdlCisgICAgICAgIGVuc3VyZXMgdGhhdCB0aGUgbGF5
b3V0IHRlc3QgZmFzdC9jc3MtY3VzdG9tLXBhaW50L2ltYWdlLmh0bWwgY29udGludWVzIHRvIHBh
c3MuCisKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6ZGlz
cGxheUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0
OjpkaXNwbGF5TGlzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d2luZ0NvbnRleHQ6OnRha2VEaXNwbGF5TGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmFwcGVuZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzSW5saW5lSXRlbSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6Om9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6
OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdl
OjpkZXN0aW5hdGlvblJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdOYXRpdmVJbWFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6RHJhd1BhdHRlcm46OnNwYWNpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdQYXR0ZXJuOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRyYXdQYXR0ZXJuOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6aXNWYWxpZCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjppc1ZhbGlkIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3UGF0dGVy
bjo6aXNWYWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZTo6dXNlc0N1c3RvbUl0ZW1FbmNv
ZGluZyk6CisKIDIwMjEtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgU3BsaXQgRGlzcGxheUxpc3Q6OlJlY29yZGVyIGludG8gYW4gYWJzdHJh
Y3QgYmFzZSBjbGFzcyBhbmQgYSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAz
YTI1M2FmZjAzNTFhYjQ2OTU5MDJlYTYxNGUyZTBlYjdmYmJmODUyLi4yZDk3ODFlN2U3MjJlOWYw
NTNkODYxYzNmNWY1YzZmMGMwMDg4ZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIx
LTEwLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IERyYXdJbWFnZUJ1ZmZlciwgRHJhd05hdGl2ZUltYWdlIGFuZCBEcmF3UGF0dGVybiBzaG91bGQg
bm90IGJlIGlubGluZSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxNDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU2VlIFdlYkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWNvZGVJdGVtKToKKwog
MjAyMS0xMC0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTcGxpdCBEaXNwbGF5TGlzdDo6UmVjb3JkZXIgaW50byBhbiBhYnN0cmFjdCBiYXNlIGNs
YXNzIGFuZCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKaW5kZXggMzYyZDQzNjc1MmFjNzNhOWJjM2Iz
Y2M4YzA1NmFhNGQ3ZjA3YjI0NS4uNDIxODdlZjA1ZjFiYjZmZDNkOTAzY2IwMTc5NjA5MDRiNTJk
M2Q4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0
LmNwcApAQCAtMjksMTIgKzI5LDIxIEBACiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAj
aW5jbHVkZSAiRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaCIKICNpbmNsdWRlICJEaXNwbGF5TGlz
dFJlcGxheWVyLmgiCisjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5TGlzdC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogCitzdGF0aWMgVW5pcXVlUmVm
PERpc3BsYXlMaXN0PiBjcmVhdGVEaXNwbGF5TGlzdChSZWNvcmRlckltcGw6OkRlbGVnYXRlKiBk
ZWxlZ2F0ZSkKK3sKKyAgICBpZiAoZGVsZWdhdGUgJiYgZGVsZWdhdGUtPnVzZXNDdXN0b21JdGVt
RW5jb2RpbmcoKSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8RGlzcGxheUxpc3Q+KCk7
CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8SW5NZW1vcnlEaXNwbGF5TGlzdD4oKTsKK30KKwog
RHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgUmVjb3JkZXJJbXBsOjpEZWxl
Z2F0ZSogZGVsZWdhdGUpCi0gICAgOiBtX2NvbnRleHQobV9kaXNwbGF5TGlzdCwgR3JhcGhpY3ND
b250ZXh0U3RhdGUoKSwgRmxvYXRSZWN0KHsgfSwgbG9naWNhbFNpemUpLCBpbml0aWFsQ1RNLCBk
ZWxlZ2F0ZSkKKyAgICA6IG1fZGlzcGxheUxpc3QoY3JlYXRlRGlzcGxheUxpc3QoZGVsZWdhdGUp
KQorICAgICwgbV9jb250ZXh0KG1fZGlzcGxheUxpc3QsIEdyYXBoaWNzQ29udGV4dFN0YXRlKCks
IEZsb2F0UmVjdCh7IH0sIGxvZ2ljYWxTaXplKSwgaW5pdGlhbENUTSwgZGVsZWdhdGUpCiB7CiB9
CiAKQEAgLTQ2LDcgKzU1LDcgQEAgdm9pZCBEcmF3aW5nQ29udGV4dDo6c2V0VHJhY2tzRGlzcGxh
eUxpc3RSZXBsYXkoYm9vbCB0cmFja3NEaXNwbGF5TGlzdFJlcGxheSkKIAogdm9pZCBEcmF3aW5n
Q29udGV4dDo6cmVwbGF5RGlzcGxheUxpc3QoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCkK
IHsKLSAgICBpZiAobV9kaXNwbGF5TGlzdC5pc0VtcHR5KCkpCisgICAgaWYgKG1fZGlzcGxheUxp
c3QtPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVwbGF5ZXIgcmVwbGF5ZXIo
ZGVzdENvbnRleHQsIG1fZGlzcGxheUxpc3QpOwpAQCAtNTQsNyArNjMsNyBAQCB2b2lkIERyYXdp
bmdDb250ZXh0OjpyZXBsYXlEaXNwbGF5TGlzdChHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0
KQogICAgICAgICBtX3JlcGxheWVkRGlzcGxheUxpc3QgPSByZXBsYXllci5yZXBsYXkoeyB9LCBt
X3RyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KS50cmFja2VkRGlzcGxheUxpc3Q7CiAgICAgZWxzZQog
ICAgICAgICByZXBsYXllci5yZXBsYXkoKTsKLSAgICBtX2Rpc3BsYXlMaXN0LmNsZWFyKCk7Cisg
ICAgbV9kaXNwbGF5TGlzdC0+Y2xlYXIoKTsKIH0KIAogfSAvLyBEaXNwbGF5TGlzdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0RHJhd2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKaW5kZXggMTdmMjJlOTAz
ZWE2MGQwOWU5MGUyMGMzZTk3YmMxM2JjYWM3MjNkYy4uYmFiNzJiYjExMDNhMjYzMDFmMGNmNzM1
YjllZjFiODYwYWU3ZDJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3
aW5nQ29udGV4dC5oCkBAIC00MSwxNyArNDEsMTYgQEAgcHVibGljOgogCiAgICAgR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxEcmF3aW5nQ29udGV4
dCY+KCp0aGlzKS5tX2NvbnRleHQ7IH0KICAgICBSZWNvcmRlckltcGwmIHJlY29yZGVyKCkgeyBy
ZXR1cm4gbV9jb250ZXh0OyB9OwotICAgIERpc3BsYXlMaXN0IHRha2VEaXNwbGF5TGlzdCgpIHsg
cmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9kaXNwbGF5TGlzdCwgeyB9KTsgfQotICAgIERpc3BsYXlM
aXN0JiBkaXNwbGF5TGlzdCgpIHsgcmV0dXJuIG1fZGlzcGxheUxpc3Q7IH0KLSAgICBjb25zdCBE
aXNwbGF5TGlzdCYgZGlzcGxheUxpc3QoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlMaXN0OyB9
CisgICAgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KCkgeyByZXR1cm4gbV9kaXNwbGF5TGlzdC5n
ZXQoKTsgfQorICAgIGNvbnN0IERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCgpIGNvbnN0IHsgcmV0
dXJuIG1fZGlzcGxheUxpc3QuZ2V0KCk7IH0KICAgICBjb25zdCBJbk1lbW9yeURpc3BsYXlMaXN0
KiByZXBsYXllZERpc3BsYXlMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXBsYXllZERpc3BsYXlM
aXN0LmdldCgpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRyYWNrc0Rpc3BsYXlM
aXN0UmVwbGF5KGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGF5RGlzcGxheUxp
c3QoR3JhcGhpY3NDb250ZXh0Jik7CiAKIHByb3RlY3RlZDoKKyAgICBVbmlxdWVSZWY8RGlzcGxh
eUxpc3Q+IG1fZGlzcGxheUxpc3Q7CiAgICAgUmVjb3JkZXJJbXBsIG1fY29udGV4dDsKLSAgICBE
aXNwbGF5TGlzdCBtX2Rpc3BsYXlMaXN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbk1lbW9yeURp
c3BsYXlMaXN0PiBtX3JlcGxheWVkRGlzcGxheUxpc3Q7CiAgICAgYm9vbCBtX3RyYWNrc0Rpc3Bs
YXlMaXN0UmVwbGF5IHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtQnVmZmVyLmgKaW5kZXggYzg3MzE5ODJlZjgzOTMxYmJhZTMxYjc4NjUwYWMwZGEyMGEwNWZj
NS4uYmE1MjJkNjJlOTk5MWU1YThjMjI2NmQzOGY2ZDU5MTA1MTk0ZDliOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaApAQCAtMTc1LDE3ICsxNzUsMTQgQEAgcHVi
bGljOgogICAgIC8vIGRhdGEgYmFjayBpbnRvIGFuIGl0ZW0gb2YgdHlwZSBULgogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIGNsYXNzLi4uIEFyZ3M+IHZvaWQgYXBwZW5kKEFyZ3MmJi4uLiBhcmdz
KQogICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8VD46OnZhbHVlID09IFQ6OmlzSW5saW5lSXRlbSk7Ci0KICAgICAgICAgaWYgY29uc3Rl
eHByICghVDo6aXNJbmxpbmVJdGVtKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dy
aXRpbmdDbGllbnQpOwogICAgICAgICAgICAgYXBwZW5kKERpc3BsYXlMaXN0SXRlbShUKHN0ZDo6
Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVz
dHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSk7CisgICAgICAgICAgICBhdXRvIGJ1ZmZlckNoYW5nZWQgPSBz
d2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMo
VDo6aXRlbVR5cGUpKTsKKyAgICAgICAgICAgIHVuY2hlY2tlZEFwcGVuZDxUPihidWZmZXJDaGFu
Z2VkLCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwogICAgICAgICB9Ci0KLSAgICAgICAg
YXV0byBidWZmZXJDaGFuZ2VkID0gc3dhcFdyaXRhYmxlQnVmZmVySWZOZWVkZWQocGFkZGVkU2l6
ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKFQ6Oml0ZW1UeXBlKSk7Ci0KLSAgICAgICAgdW5jaGVja2Vk
QXBwZW5kPFQ+KGJ1ZmZlckNoYW5nZWQsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CiAg
ICAgfQogCiAgICAgdm9pZCBzZXRDbGllbnQoSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQqIGNsaWVu
dCkgeyBtX3dyaXRpbmdDbGllbnQgPSBjbGllbnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmNwcAppbmRleCA0MjY0NGUxNjQyY2UyZGFiMDc1ZTJhYzdkNDk1MWMwNzlj
MmRhNzgwLi43NTljOGM3MmE0MmEwNDE1NTNjMmRmMjU3MGE5YzdmMGU5NTU2Mzc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC0zMDEsNiArMzAxLDkgQEAg
Ym9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
R2x5cGhzOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdMaW5lc0ZvclRleHQ6CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RHJhd1BhdGg6CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgor
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKKyAgICBjYXNlIEl0ZW1UeXBlOjpE
cmF3UGF0dGVybjoKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsQ29tcG9zaXRlZFJlY3Q6CiAgICAg
Y2FzZSBJdGVtVHlwZTo6RmlsbFBhdGg6CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJlY3RXaXRo
Q29sb3I6CkBAIC0zMjgsOSArMzMxLDYgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlw
ZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKICAgICBjYXNlIEl0ZW1UeXBl
OjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdFbGxp
cHNlOgotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKLSAgICBjYXNlIEl0ZW1U
eXBlOjpEcmF3TmF0aXZlSW1hZ2U6Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CiAg
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd0xpbmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1JlY3Q6
CiAgICAgY2FzZSBJdGVtVHlwZTo6RW5kVHJhbnNwYXJlbmN5TGF5ZXI6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaAppbmRleCAwMTFiNDFkOWIxYjUzOTcwMzNmYzkwZjZkZDJiYmUwYjVm
MGZiZDJlLi4zYWU1OTQ1ZTc5MmYyOGQxZmQxNjc5YjU3NTBiM2YzM2U3YjhkNmQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTk5Niw3ICs5OTYsNyBAQCBzdGQ6Om9wdGlv
bmFsPERyYXdHbHlwaHM+IERyYXdHbHlwaHM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogY2xh
c3MgRHJhd0ltYWdlQnVmZmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1U
eXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjsKLSAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJh
d2luZ0l0ZW0gPSB0cnVlOwogCiAgICAgRHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG9wdGlvbnMpCkBAIC0xMDExLDggKzEwMTEsNiBAQCBwdWJsaWM6CiAgICAgRmxvYXRSZWN0IHNv
dXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQogICAgIEZsb2F0UmVjdCBkZXN0aW5h
dGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQogICAgIEltYWdl
UGFpbnRpbmdPcHRpb25zIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KLSAg
ICAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byB2YWxpZGF0ZSBJbWFnZVBhaW50aW5nT3B0aW9u
cy4KLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVySWRlbnRp
Zmllci5pc1ZhbGlkKCk7IH0KIAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgV2Vi
Q29yZTo6SW1hZ2VCdWZmZXImKSBjb25zdDsKIApAQCAtMTAyMSw2ICsxMDE5LDkgQEAgcHVibGlj
OgogICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJl
dHVybiBzdGQ6Om51bGxvcHQ7IH0KICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxC
b3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlv
blJlY3Q7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxEcmF3SW1hZ2VCdWZmZXI+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwogICAg
IEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uUmVjdDsKQEAgLTEwMjgsMTAgKzEwMjksNDUgQEAgcHJp
dmF0ZToKICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX29wdGlvbnM7CiB9OwogCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEcmF3SW1hZ2VCdWZmZXI6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7
CisgICAgZW5jb2RlciA8PCBtX2Rlc3RpbmF0aW9uUmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fc3Jj
UmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fb3B0aW9uczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK3N0ZDo6b3B0aW9uYWw8RHJhd0ltYWdlQnVmZmVyPiBEcmF3SW1hZ2VCdWZmZXI6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyPiBpbWFnZUJ1ZmZlcklkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBp
bWFnZUJ1ZmZlcklkZW50aWZpZXI7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVj
dD4gZGVzdGluYXRpb25SZWN0OworICAgIGRlY29kZXIgPj4gZGVzdGluYXRpb25SZWN0OworICAg
IGlmICghZGVzdGluYXRpb25SZWN0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHNyY1JlY3Q7CisgICAgZGVjb2RlciA+PiBzcmNS
ZWN0OworICAgIGlmICghc3JjUmVjdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VQYWludGluZ09wdGlvbnM+IG9wdGlvbnM7CisgICAgZGVj
b2RlciA+PiBvcHRpb25zOworICAgIGlmICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgKmltYWdlQnVmZmVySWRlbnRpZmllciwgV1RGTW92
ZSgqZGVzdGluYXRpb25SZWN0KSwgV1RGTW92ZSgqc3JjUmVjdCksIFdURk1vdmUoKm9wdGlvbnMp
IH0gfTsKK30KKwogY2xhc3MgRHJhd05hdGl2ZUltYWdlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
Y29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZTsK
LSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSB0cnVlOwogCiAgICAgRHJhd05hdGl2ZUltYWdlKFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQpAQCAtMTA0Niw4
ICsxMDgyLDYgQEAgcHVibGljOgogICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlSWRlbnRpZmllcjsgfQogICAgIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CiAgICAg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Rlc3Rp
bmF0aW9uUmVjdDsgfQotICAgIC8vIEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHZhbGlkYXRlIElt
YWdlUGFpbnRpbmdPcHRpb25zLgotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aW1hZ2VJZGVudGlmaWVyLmlzVmFsaWQoKTsgfQogCiAgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NF
UlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKICAgICB2b2lkIGFwcGx5KEdy
YXBoaWNzQ29udGV4dCYsIE5hdGl2ZUltYWdlJikgY29uc3Q7CkBAIC0xMDU1LDYgKzEwODksOSBA
QCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGdsb2JhbEJvdW5kcygpIGNv
bnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0
PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBtX2Rl
c3RpbmF0aW9uUmVjdDsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPERyYXdOYXRpdmVJbWFnZT4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0
ZToKICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUlkZW50aWZpZXI7CiAg
ICAgRmxvYXRTaXplIG1faW1hZ2VTaXplOwpAQCAtMTA2MywxMCArMTEwMCw1MSBAQCBwcml2YXRl
OgogICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1fb3B0aW9uczsKIH07CiAKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIERyYXdOYXRpdmVJbWFnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2ltYWdlSWRlbnRpZmllcjsKKyAgICBlbmNv
ZGVyIDw8IG1faW1hZ2VTaXplOworICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlvblJlY3Q7Cisg
ICAgZW5jb2RlciA8PCBtX3NyY1JlY3Q7CisgICAgZW5jb2RlciA8PCBtX29wdGlvbnM7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPERyYXdOYXRpdmVJbWFnZT4g
RHJhd05hdGl2ZUltYWdlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9w
dGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW1hZ2VJZGVudGlmaWVyOworICAg
IGRlY29kZXIgPj4gaW1hZ2VJZGVudGlmaWVyOworICAgIGlmICghaW1hZ2VJZGVudGlmaWVyKQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFNp
emU+IGltYWdlU2l6ZTsKKyAgICBkZWNvZGVyID4+IGltYWdlU2l6ZTsKKyAgICBpZiAoIWltYWdl
U2l6ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
RmxvYXRSZWN0PiBkZXN0aW5hdGlvblJlY3Q7CisgICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvblJl
Y3Q7CisgICAgaWYgKCFkZXN0aW5hdGlvblJlY3QpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gc3JjUmVjdDsKKyAgICBkZWNvZGVy
ID4+IHNyY1JlY3Q7CisgICAgaWYgKCFzcmNSZWN0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgc3RkOjpvcHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4gb3B0aW9uczsK
KyAgICBkZWNvZGVyID4+IG9wdGlvbnM7CisgICAgaWYgKCFvcHRpb25zKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyAqaW1hZ2VJZGVudGlmaWVyLCAqaW1h
Z2VTaXplLCBXVEZNb3ZlKCpkZXN0aW5hdGlvblJlY3QpLCBXVEZNb3ZlKCpzcmNSZWN0KSwgV1RG
TW92ZSgqb3B0aW9ucykgfSB9OworfQorCiBjbGFzcyBEcmF3UGF0dGVybiB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpEcmF3UGF0
dGVybjsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSB0cnVlOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgRHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0geyB9KTsKQEAgLTEwNzgsOCArMTE1Niw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3BhdHRlcm5UcmFu
c2Zvcm07IH0KICAgICBGbG9hdFBvaW50IHBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9waGFzZTsg
fQogICAgIEZsb2F0U2l6ZSBzcGFjaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zcGFjaW5nOyB9Ci0g
ICAgLy8gRklYTUU6IFdlIG1pZ2h0IHdhbnQgdG8gdmFsaWRhdGUgSW1hZ2VQYWludGluZ09wdGlv
bnMuCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUlkZW50aWZpZXIu
aXNWYWxpZCgpOyB9CiAKICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGFwcGx5KEdy
YXBoaWNzQ29udGV4dCYpIGNvbnN0OwogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0Jiwg
TmF0aXZlSW1hZ2UmKSBjb25zdDsKQEAgLTEwODcsNiArMTE2Myw5IEBAIHB1YmxpYzoKICAgICBz
dGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gc3Rk
OjpudWxsb3B0OyB9CiAgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNv
bnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KIAor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxEcmF3UGF0
dGVybj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgbV9pbWFnZUlkZW50aWZpZXI7CiAgICAgRmxvYXRTaXplIG1faW1hZ2VTaXpl
OwpAQCAtMTA5OCw2ICsxMTc3LDY1IEBAIHByaXZhdGU6CiAgICAgSW1hZ2VQYWludGluZ09wdGlv
bnMgbV9vcHRpb25zOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRHJhd1Bh
dHRlcm46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwg
bV9pbWFnZUlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCBtX2ltYWdlU2l6ZTsKKyAgICBlbmNv
ZGVyIDw8IG1fZGVzdGluYXRpb247CisgICAgZW5jb2RlciA8PCBtX3RpbGVSZWN0OworICAgIGVu
Y29kZXIgPDwgbV9wYXR0ZXJuVHJhbnNmb3JtOworICAgIGVuY29kZXIgPDwgbV9waGFzZTsKKyAg
ICBlbmNvZGVyIDw8IG1fc3BhY2luZzsKKyAgICBlbmNvZGVyIDw8IG1fb3B0aW9uczsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8RHJhd1BhdHRlcm4+IERyYXdQ
YXR0ZXJuOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW1hZ2VJZGVudGlmaWVyOworICAgIGRlY29kZXIg
Pj4gaW1hZ2VJZGVudGlmaWVyOworICAgIGlmICghaW1hZ2VJZGVudGlmaWVyKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFNpemU+IGltYWdl
U2l6ZTsKKyAgICBkZWNvZGVyID4+IGltYWdlU2l6ZTsKKyAgICBpZiAoIWltYWdlU2l6ZSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0
PiBkZXN0aW5hdGlvbjsKKyAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uOworICAgIGlmICghZGVz
dGluYXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPEZsb2F0UmVjdD4gdGlsZVJlY3Q7CisgICAgZGVjb2RlciA+PiB0aWxlUmVjdDsKKyAgICBp
ZiAoIXRpbGVSZWN0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxBZmZpbmVUcmFuc2Zvcm0+IHBhdHRlcm5UcmFuc2Zvcm07CisgICAgZGVjb2RlciA+
PiBwYXR0ZXJuVHJhbnNmb3JtOworICAgIGlmICghcGF0dGVyblRyYW5zZm9ybSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gcGhh
c2U7CisgICAgZGVjb2RlciA+PiBwaGFzZTsKKyAgICBpZiAoIXBoYXNlKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFNpemU+IHNwYWNpbmc7
CisgICAgZGVjb2RlciA+PiBzcGFjaW5nOworICAgIGlmICghc3BhY2luZykKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VQYWludGluZ09wdGlv
bnM+IG9wdGlvbnM7CisgICAgZGVjb2RlciA+PiBvcHRpb25zOworICAgIGlmICghb3B0aW9ucykK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgKmltYWdlSWRl
bnRpZmllciwgKmltYWdlU2l6ZSwgV1RGTW92ZSgqZGVzdGluYXRpb24pLCBXVEZNb3ZlKCp0aWxl
UmVjdCksIFdURk1vdmUoKnBhdHRlcm5UcmFuc2Zvcm0pLCAqcGhhc2UsICpzcGFjaW5nLCBXVEZN
b3ZlKCpvcHRpb25zKSB9IH07Cit9CisKIGNsYXNzIEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIgewog
cHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlw
ZTo6QmVnaW5UcmFuc3BhcmVuY3lMYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXJJbXBsLmgKaW5kZXggZTZmYzU4OGNmNWI2MWFmM2E5MGJmYmU0ZDAyN2I2OWY3YTFi
MjU2Yi4uMDgyZjE0MTIxYThlYzM5ZThkNWNmZTVlMTNkNjVhMDVmMDNiZjIyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKQEAgLTQ2LDYgKzQ2LDcgQEAg
cHVibGljOgogICAgIGNsYXNzIERlbGVnYXRlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1
YWwgfkRlbGVnYXRlKCkgeyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCB1c2VzQ3VzdG9tSXRlbUVu
Y29kaW5nKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuQXBwZW5k
SXRlbU9mVHlwZShJdGVtVHlwZSkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCB2
b2lkIHJlY29yZE5hdGl2ZUltYWdlVXNlKE5hdGl2ZUltYWdlJikgeyB9CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBpc0NhY2hlZEltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBiN2YwZmY4NmU2Zjhl
MTRmZmY4YjUyOGI5MTk5MDUxZThhOWU0MGVhLi5hNjliYmVhZjRjMDQ4NzMwZmJlYTU4NWU3OGE2
ZmY3ZTJhNTAzOGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC02NTUsNiArNjU1LDEy
IEBAIHN0ZDo6b3B0aW9uYWw8RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JF
VFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kCiAgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVh
dGU8RGlzcGxheUxpc3Q6OkRyYXdGb2N1c1JpbmdSZWN0cz4oZGF0YSwgbGVuZ3RoLCBoYW5kbGVM
b2NhdGlvbik7CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAg
ICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM+KGRh
dGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOworICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpEcmF3SW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlz
cGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcj4oZGF0YSwgbGVuZ3RoLCBoYW5kbGVMb2NhdGlvbik7
CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKKyAgICAg
ICAgcmV0dXJuIGRlY29kZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlPihk
YXRhLCBsZW5ndGgsIGhhbmRsZUxvY2F0aW9uKTsKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RHJhd1BhdHRlcm46CisgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxh
eUxpc3Q6OkRyYXdQYXR0ZXJuPihkYXRhLCBsZW5ndGgsIGhhbmRsZUxvY2F0aW9uKTsKICAgICBj
YXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0xpbmVzRm9yVGV4dDoKICAgICAgICAgcmV0
dXJuIGRlY29kZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6RHJhd0xpbmVzRm9yVGV4dD4oZGF0YSwg
bGVuZ3RoLCBoYW5kbGVMb2NhdGlvbik7CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkRyYXdQYXRoOgpAQCAtNjk2LDkgKzcwMiw2IEBAIHN0ZDo6b3B0aW9uYWw8RGlzcGxheUxpc3Q6
Okl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kCiAg
ICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgIGNhc2Ug
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgogICAgIGNh
c2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKLSAgICBjYXNlIERpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkRyYXdQYXR0ZXJuOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3TGluZToK
ICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1JlY3Q6CiAgICAgY2FzZSBEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OkVuZFRyYW5zcGFyZW5jeUxheWVyOgpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE0OGQxYTRjMDMwOGRiNGE1YTM4
MjkwODFhNWFmNDM1OWU1NjZmZjEuLmI0NWFiMmU5NzFmZjUwOTI1ZTM5ODNkYzFjOGZjODhmMmI1
NzM1ODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMC0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBEcmF3SW1hZ2VCdWZmZXIsIERyYXdOYXRpdmVJbWFnZSBh
bmQgRHJhd1BhdHRlcm4gc2hvdWxkIG5vdCBiZSBpbmxpbmUgaXRlbXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdCBhIGxheW91dCB0ZXN0IHRv
IHVzZSBJbk1lbW9yeURpc3BsYXlMaXN0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKwogMjAyMS0xMC0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBTcGxpdCBEaXNwbGF5TGlzdDo6UmVjb3JkZXIgaW50byBhbiBh
YnN0cmFjdCBiYXNlIGNsYXNzIGFuZCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0
c0NHLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlz
dFRlc3RzQ0cuY3BwCmluZGV4IDhhMTM1OWRmZTgzNmIwMzllZWJmMjY3YmYzNDcwNmFmY2RkOWI2
ZmYuLjRmZjFmYTlkNjQ1NjE1NWExMjc4NTM5ZDQ3NjE4ZWNjMjg4N2YyZGQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlz
dFRlc3RzQ0cuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgUmVw
bGF5V2l0aE1pc3NpbmdSZXNvdXJjZSkKIAogICAgIGF1dG8gaW1hZ2VCdWZmZXJJZGVudGlmaWVy
ID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogCi0gICAgRGlzcGxh
eUxpc3QgbGlzdDsKKyAgICBJbk1lbW9yeURpc3BsYXlMaXN0IGxpc3Q7CiAKICAgICBsaXN0LmFw
cGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KENvbG9yOjpncmVlbik7CiAgICAgbGlzdC5hcHBlbmQ8
RmlsbFJlY3Q+KGNvbnRleHRCb3VuZHMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440713</attachid>
            <date>2021-10-09 11:10:37 -0700</date>
            <delta_ts>2022-02-10 16:37:16 -0800</delta_ts>
            <desc>Fix ChangeLog typo</desc>
            <filename>bug-231447-20211009111036.patch</filename>
            <type>text/plain</type>
            <size>23224</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc5NWE0MTUzNjlmYjMy
NGEwOGI4ZWNmMWQ0YjAwZmQwZTcyYzk4Ni4uY2QyMDcyMGRhNzFlY2RiNjllY2NlMDliM2MzOTY4
OTRmODk1YWE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIxLTEwLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYXdJbWFnZUJ1
ZmZlciwgRHJhd05hdGl2ZUltYWdlIGFuZCBEcmF3UGF0dGVybiBzaG91bGQgbm90IGJlIGlubGlu
ZSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxNDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlc2UgdGhyZWUgZGlzcGxheSBsaXN0IGl0ZW1zIGFsbCBjb250YWluIEltYWdlUGFpbnRpbmdP
cHRpb25zLCBlYWNoIG9mIHdoaWNoIGNvbnRhaW5zIHN0cm9uZ2x5IHR5cGVkIGVudW1zLgorICAg
ICAgICBXZSBjdXJyZW50bHkgYG1lbWNweWAgdGhlc2UgYXMgUE9EIHR5cGVzLCBidXQgZG9uJ3Qg
aGF2ZSBhbnkgbG9naWMgdG8gYWRkaXRpb25hbGx5IHZhbGlkYXRlIHRoYXQgdGhlc2UgZW51bQor
ICAgICAgICB2YWx1ZXMgYXJlIHZhbGlkLgorCisgICAgICAgIEluc3RlYWQgb2YgYWRkaW5nIFNp
bXBsZUFyZ3VtZW50Q29kZXIgc3VwcG9ydCBmb3IgdGhlc2UgZGlzcGxheSBsaXN0IGl0ZW0gdHlw
ZXMgd2hlbiBpbXBsZW1lbnRpbmcgc3RyZWFtaW5nIElQQywKKyAgICAgICAgd2Ugc2hvdWxkIGp1
c3QgbWFrZSB0aGVtIG5vbi1pbmxpbmUgYW5kIGltcGxlbWVudCBlbmNvZGluZy9kZWNvZGluZyBs
b2dpYyBhcyBzdGF0aWMgbWV0aG9kcyBvbiB0aGUgaXRlbXMKKyAgICAgICAgdGhlbXNlbHZlcy4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1CdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyOjph
cHBlbmQpOgorCisgICAgICAgIEFkZGl0aW9uYWxseSBhZGp1c3QgdGhpcyBjb21waWxlLXRpbWUg
YXNzZXJ0aW9uIHRvIGNoZWNrIHRoYXQgYFQ6OmlzSW5saW5lSXRlbWAgaW1wbGllcworICAgICAg
ICBgaXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPmAsIHJhdGhlciB0aGFuIGBUOjppc0lubGlu
ZUl0ZW0gPT0gaXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPmAuIFRoaXMgaXMgYmVjYXVzZQor
ICAgICAgICBiZWluZyB0cml2aWFsbHkgZGVzdHJ1Y3RpYmxlIGlzbid0IHN1ZmZpY2llbnQgdG8g
Z3VhcmFudGVlIHRoYXQgYSBkaXNwbGF5IGxpc3QgaXRlbSBjYW4gYmUgdHJlYXRlZCBhcyBhbiBp
bmxpbmUKKyAgICAgICAgaXRlbSAoYXMgZGVtb25zdHJhdGVkIGJ5IHRoZSB0aHJlZSBkaXNwbGF5
IGxpc3QgaXRlbXMgY2hhbmdlZCBpbiB0aGlzIHBhdGNoKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpjcmVhdGVEaXNwbGF5TGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjptX2NvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0OjpyZXBsYXlEaXNwbGF5TGlzdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2lu
Z0NvbnRleHQuaDoKKworICAgICAgICBSZWZhY3RvciBEaXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRl
eHQgdG8gaW5pdGlhbGl6ZSBhbiBJbk1lbW9yeURpc3BsYXlMaXN0IGJ5IGRlZmF1bHQsIHVubGVz
cyB0aGUgcmVjb3JkZXIKKyAgICAgICAgZGVsZWdhdGUgaW5kaWNhdGVzIHRoYXQgaXQgd2lsbCBw
ZXJmb3JtIGl0cyBvd24gY3VzdG9tIGl0ZW0gZW5jb2RpbmcuIFRoaXMgZW5zdXJlcyB0aGF0IGlu
LXByb2Nlc3MgRGlzcGxheUxpc3QKKyAgICAgICAgcmVjb3JkaW5nIGNsaWVudHMgdGhhdCBhdHRl
bXB0IHRvIGFwcGVuZCBvdXQgb2YgbGluZSBpdGVtcyB3aWxsIG5vdCBjcmFzaCB3aGVuIGRvaW5n
IHNvLiBOb3RhYmx5LCB0aGlzIGNoYW5nZQorICAgICAgICBlbnN1cmVzIHRoYXQgdGhlIGxheW91
dCB0ZXN0IGZhc3QvY3NzLWN1c3RvbS1wYWludC9pbWFnZS5odG1sIGNvbnRpbnVlcyB0byBwYXNz
LgorCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQ6OmRpc3Bs
YXlMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6
ZGlzcGxheUxpc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdp
bmdDb250ZXh0Ojp0YWtlRGlzcGxheUxpc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyOjphcHBlbmQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpvcHRpb25zIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpk
ZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6
ZGVzdGluYXRpb25SZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3TmF0aXZlSW1hZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRyYXdQYXR0ZXJuOjpzcGFjaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3UGF0dGVybjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3UGF0dGVybjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6aXNWYWxpZCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdHRlcm46
OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVsZWdhdGU6OnVzZXNDdXN0b21JdGVtRW5jb2Rp
bmcpOgorCiAyMDIxLTEwLTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIHN1cHBvcnQgcmVuZGVyaW5nIEFwcGxlIFBheSBsb2dvcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBjMTk5ZmY5NmViZTcwYTVjNDIxOWE2ZjdhZDg0OTYxZDc1YzA5M2NmLi4xYzI1
NDQzYzllYTRiNWM2NTVkZTAyMDYwNjMxNGY1MzA2ZDIwYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIxLTEwLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIERyYXdJbWFnZUJ1ZmZlciwgRHJhd05hdGl2ZUltYWdlIGFuZCBEcmF3UGF0
dGVybiBzaG91bGQgbm90IGJlIGlubGluZSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWNv
ZGVJdGVtKToKKwogMjAyMS0xMC0wOCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYSB3YXkgZm9yIF9XS0luc3BlY3Rv
ckV4dGVuc2lvbiBjbGllbnRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGluc3BlY3RlZCBwYWdl
IG5hdmlnYXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRl
eHQuY3BwCmluZGV4IDM2MmQ0MzY3NTJhYzczYTliYzNiM2NjOGMwNTZhYTRkN2YwN2IyNDUuLjQy
MTg3ZWYwNWYxYmI2ZmQzZDkwM2NiMDE3OTYwOTA0YjUyZDNkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKQEAgLTI5LDEyICsyOSwyMSBA
QAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVj
b3JkZXJJbXBsLmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RSZXBsYXllci5oIgorI2luY2x1ZGUg
IkluTWVtb3J5RGlzcGxheUxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNl
IERpc3BsYXlMaXN0IHsKIAorc3RhdGljIFVuaXF1ZVJlZjxEaXNwbGF5TGlzdD4gY3JlYXRlRGlz
cGxheUxpc3QoUmVjb3JkZXJJbXBsOjpEZWxlZ2F0ZSogZGVsZWdhdGUpCit7CisgICAgaWYgKGRl
bGVnYXRlICYmIGRlbGVnYXRlLT51c2VzQ3VzdG9tSXRlbUVuY29kaW5nKCkpCisgICAgICAgIHJl
dHVybiBtYWtlVW5pcXVlUmVmPERpc3BsYXlMaXN0PigpOworICAgIHJldHVybiBtYWtlVW5pcXVl
UmVmPEluTWVtb3J5RGlzcGxheUxpc3Q+KCk7Cit9CisKIERyYXdpbmdDb250ZXh0OjpEcmF3aW5n
Q29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIGluaXRpYWxDVE0sIFJlY29yZGVySW1wbDo6RGVsZWdhdGUqIGRlbGVnYXRlKQotICAgIDog
bV9jb250ZXh0KG1fZGlzcGxheUxpc3QsIEdyYXBoaWNzQ29udGV4dFN0YXRlKCksIEZsb2F0UmVj
dCh7IH0sIGxvZ2ljYWxTaXplKSwgaW5pdGlhbENUTSwgZGVsZWdhdGUpCisgICAgOiBtX2Rpc3Bs
YXlMaXN0KGNyZWF0ZURpc3BsYXlMaXN0KGRlbGVnYXRlKSkKKyAgICAsIG1fY29udGV4dChtX2Rp
c3BsYXlMaXN0LCBHcmFwaGljc0NvbnRleHRTdGF0ZSgpLCBGbG9hdFJlY3QoeyB9LCBsb2dpY2Fs
U2l6ZSksIGluaXRpYWxDVE0sIGRlbGVnYXRlKQogewogfQogCkBAIC00Niw3ICs1NSw3IEBAIHZv
aWQgRHJhd2luZ0NvbnRleHQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KGJvb2wgdHJhY2tz
RGlzcGxheUxpc3RSZXBsYXkpCiAKIHZvaWQgRHJhd2luZ0NvbnRleHQ6OnJlcGxheURpc3BsYXlM
aXN0KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQpCiB7Ci0gICAgaWYgKG1fZGlzcGxheUxp
c3QuaXNFbXB0eSgpKQorICAgIGlmIChtX2Rpc3BsYXlMaXN0LT5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFJlcGxheWVyIHJlcGxheWVyKGRlc3RDb250ZXh0LCBtX2Rpc3BsYXlM
aXN0KTsKQEAgLTU0LDcgKzYzLDcgQEAgdm9pZCBEcmF3aW5nQ29udGV4dDo6cmVwbGF5RGlzcGxh
eUxpc3QoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCkKICAgICAgICAgbV9yZXBsYXllZERp
c3BsYXlMaXN0ID0gcmVwbGF5ZXIucmVwbGF5KHsgfSwgbV90cmFja3NEaXNwbGF5TGlzdFJlcGxh
eSkudHJhY2tlZERpc3BsYXlMaXN0OwogICAgIGVsc2UKICAgICAgICAgcmVwbGF5ZXIucmVwbGF5
KCk7Ci0gICAgbV9kaXNwbGF5TGlzdC5jbGVhcigpOworICAgIG1fZGlzcGxheUxpc3QtPmNsZWFy
KCk7CiB9CiAKIH0gLy8gRGlzcGxheUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3REcmF3aW5nQ29udGV4dC5oCmluZGV4IDE3ZjIyZTkwM2VhNjBkMDllOTBlMjBjM2U5N2JjMTNi
Y2FjNzIzZGMuLmJhYjcyYmIxMTAzYTI2MzAxZjBjZjczNWI5ZWYxYjg2MGFlN2QyZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaApAQCAtNDEsMTcg
KzQxLDE2IEBAIHB1YmxpYzoKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0
IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8RHJhd2luZ0NvbnRleHQmPigqdGhpcykubV9jb250ZXh0OyB9
CiAgICAgUmVjb3JkZXJJbXBsJiByZWNvcmRlcigpIHsgcmV0dXJuIG1fY29udGV4dDsgfTsKLSAg
ICBEaXNwbGF5TGlzdCB0YWtlRGlzcGxheUxpc3QoKSB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1f
ZGlzcGxheUxpc3QsIHsgfSk7IH0KLSAgICBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QoKSB7IHJl
dHVybiBtX2Rpc3BsYXlMaXN0OyB9Ci0gICAgY29uc3QgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0
KCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5TGlzdDsgfQorICAgIERpc3BsYXlMaXN0JiBkaXNw
bGF5TGlzdCgpIHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuZ2V0KCk7IH0KKyAgICBjb25zdCBEaXNw
bGF5TGlzdCYgZGlzcGxheUxpc3QoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlMaXN0LmdldCgp
OyB9CiAgICAgY29uc3QgSW5NZW1vcnlEaXNwbGF5TGlzdCogcmVwbGF5ZWREaXNwbGF5TGlzdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVwbGF5ZWREaXNwbGF5TGlzdC5nZXQoKTsgfQogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShib29sKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxheURpc3BsYXlMaXN0KEdyYXBoaWNzQ29udGV4dCYpOwog
CiBwcm90ZWN0ZWQ6CisgICAgVW5pcXVlUmVmPERpc3BsYXlMaXN0PiBtX2Rpc3BsYXlMaXN0Owog
ICAgIFJlY29yZGVySW1wbCBtX2NvbnRleHQ7Ci0gICAgRGlzcGxheUxpc3QgbV9kaXNwbGF5TGlz
dDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5TGlzdD4gbV9yZXBsYXllZERp
c3BsYXlMaXN0OwogICAgIGJvb2wgbV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSB7IGZhbHNlIH07
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oCmluZGV4IGM4NzMx
OTgyZWY4MzkzMWJiYWUzMWI3ODY1MGFjMGRhMjBhMDVmYzUuLmJhNTIyZDYyZTk5OTFlNWE4YzIy
NjZkMzhmNmQ1OTEwNTE5NGQ5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
QnVmZmVyLmgKQEAgLTE3NSwxNyArMTc1LDE0IEBAIHB1YmxpYzoKICAgICAvLyBkYXRhIGJhY2sg
aW50byBhbiBpdGVtIG9mIHR5cGUgVC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcy4u
LiBBcmdzPiB2b2lkIGFwcGVuZChBcmdzJiYuLi4gYXJncykKICAgICB7Ci0gICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSA9PSBUOjpp
c0lubGluZUl0ZW0pOwotCiAgICAgICAgIGlmIGNvbnN0ZXhwciAoIVQ6OmlzSW5saW5lSXRlbSkg
ewogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV93cml0aW5nQ2xpZW50KTsKICAgICAgICAg
ICAgIGFwcGVuZChEaXNwbGF5TGlzdEl0ZW0oVChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4p
KSk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpOwor
ICAgICAgICAgICAgYXV0byBidWZmZXJDaGFuZ2VkID0gc3dhcFdyaXRhYmxlQnVmZmVySWZOZWVk
ZWQocGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKFQ6Oml0ZW1UeXBlKSk7CisgICAgICAg
ICAgICB1bmNoZWNrZWRBcHBlbmQ8VD4oYnVmZmVyQ2hhbmdlZCwgc3RkOjpmb3J3YXJkPEFyZ3M+
KGFyZ3MpLi4uKTsKICAgICAgICAgfQotCi0gICAgICAgIGF1dG8gYnVmZmVyQ2hhbmdlZCA9IHN3
YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhU
OjppdGVtVHlwZSkpOwotCi0gICAgICAgIHVuY2hlY2tlZEFwcGVuZDxUPihidWZmZXJDaGFuZ2Vk
LCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwogICAgIH0KIAogICAgIHZvaWQgc2V0Q2xp
ZW50KEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50KiBjbGllbnQpIHsgbV93cml0aW5nQ2xpZW50ID0g
Y2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKaW5kZXgg
NDI2NDRlMTY0MmNlMmRhYjA3NWUyYWM3ZDQ5NTFjMDc5YzJkYTc4MC4uNzU5YzhjNzJhNDJhMDQx
NTUzYzJkZjI1NzBhOWM3ZjBlOTU1NjM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1UeXBlLmNwcApAQCAtMzAxLDYgKzMwMSw5IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1U
eXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0dseXBoczoKICAgICBjYXNlIEl0ZW1U
eXBlOjpEcmF3TGluZXNGb3JUZXh0OgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXRoOgorICAg
IGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
TmF0aXZlSW1hZ2U6CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RmlsbENvbXBvc2l0ZWRSZWN0OgogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxQYXRo
OgogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0V2l0aENvbG9yOgpAQCAtMzI4LDkgKzMzMSw2
IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6
Q29uY2F0ZW5hdGVDVE06CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0RvdHNGb3JEb2N1bWVudE1h
cmtlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKLSAgICBjYXNlIEl0ZW1UeXBl
OjpEcmF3SW1hZ2VCdWZmZXI6Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgot
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdM
aW5lOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdSZWN0OgogICAgIGNhc2UgSXRlbVR5cGU6OkVu
ZFRyYW5zcGFyZW5jeUxheWVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXgg
MDExYjQxZDliMWI1Mzk3MDMzZmM5MGY2ZGQyYmJlMGI1ZjBmYmQyZS4uM2FlNTk0NWU3OTJmMjhk
MWZkMTY3OWI1NzUwYjNmMzNlN2I4ZDZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5oCkBAIC05OTYsNyArOTk2LDcgQEAgc3RkOjpvcHRpb25hbDxEcmF3R2x5cGhzPiBEcmF3R2x5
cGhzOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIGNsYXNzIERyYXdJbWFnZUJ1ZmZlciB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBl
OjpEcmF3SW1hZ2VCdWZmZXI7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRl
bSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IGZhbHNl
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gdHJ1ZTsKIAogICAg
IERyYXdJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQpAQCAtMTAxMSw4ICsx
MDExLDYgQEAgcHVibGljOgogICAgIEZsb2F0UmVjdCBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBt
X3NyY1JlY3Q7IH0KICAgICBGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1
cm4gbV9kZXN0aW5hdGlvblJlY3Q7IH0KICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25z
KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9Ci0gICAgLy8gRklYTUU6IFdlIG1pZ2h0IHdh
bnQgdG8gdmFsaWRhdGUgSW1hZ2VQYWludGluZ09wdGlvbnMuCi0gICAgYm9vbCBpc1ZhbGlkKCkg
Y29uc3QgeyByZXR1cm4gbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIuaXNWYWxpZCgpOyB9CiAKICAg
ICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkltYWdlQnVmZmVyJikgY29u
c3Q7CiAKQEAgLTEwMjEsNiArMTAxOSw5IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPEZs
b2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAg
ICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29u
dGV4dCYpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CiAKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RHJhd0ltYWdlQnVmZmVyPiBk
ZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsKICAgICBGbG9hdFJlY3QgbV9kZXN0aW5hdGlv
blJlY3Q7CkBAIC0xMDI4LDEwICsxMDI5LDQ1IEBAIHByaXZhdGU6CiAgICAgSW1hZ2VQYWludGlu
Z09wdGlvbnMgbV9vcHRpb25zOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
RHJhd0ltYWdlQnVmZmVyOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgbV9kZXN0
aW5hdGlvblJlY3Q7CisgICAgZW5jb2RlciA8PCBtX3NyY1JlY3Q7CisgICAgZW5jb2RlciA8PCBt
X29wdGlvbnM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPERy
YXdJbWFnZUJ1ZmZlcj4gRHJhd0ltYWdlQnVmZmVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW1hZ2VC
dWZmZXJJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gaW1hZ2VCdWZmZXJJZGVudGlmaWVyOwor
ICAgIGlmICghaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGRlc3RpbmF0aW9uUmVjdDsKKyAg
ICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uUmVjdDsKKyAgICBpZiAoIWRlc3RpbmF0aW9uUmVjdCkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRS
ZWN0PiBzcmNSZWN0OworICAgIGRlY29kZXIgPj4gc3JjUmVjdDsKKyAgICBpZiAoIXNyY1JlY3Qp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEltYWdl
UGFpbnRpbmdPcHRpb25zPiBvcHRpb25zOworICAgIGRlY29kZXIgPj4gb3B0aW9uczsKKyAgICBp
ZiAoIW9wdGlvbnMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
eyB7ICppbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFdURk1vdmUoKmRlc3RpbmF0aW9uUmVjdCksIFdU
Rk1vdmUoKnNyY1JlY3QpLCBXVEZNb3ZlKCpvcHRpb25zKSB9IH07Cit9CisKIGNsYXNzIERyYXdO
YXRpdmVJbWFnZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVt
VHlwZSA9IEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGlzSW5saW5lSXRlbSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5s
aW5lSXRlbSA9IGZhbHNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVt
ID0gdHJ1ZTsKIAogICAgIERyYXdOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgb3B0aW9ucykKQEAgLTEwNDYsOCArMTA4Miw2IEBAIHB1YmxpYzoKICAg
ICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbWFnZUlkZW50aWZpZXI7IH0KICAgICBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQogICAgIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblJlY3Q7IH0KLSAgICAvLyBG
SVhNRTogV2UgbWlnaHQgd2FudCB0byB2YWxpZGF0ZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KLSAg
ICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlSWRlbnRpZmllci5pc1ZhbGlk
KCk7IH0KIAogICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJ
bWFnZSYpIGNvbnN0OwpAQCAtMTA1NSw2ICsxMDg5LDkgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0
aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxv
cHQ7IH0KICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3Jh
cGhpY3NDb250ZXh0JikgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblJlY3Q7IH0KIAorICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxEcmF3TmF0aXZl
SW1hZ2U+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIG1faW1hZ2VJZGVudGlmaWVyOwogICAgIEZsb2F0U2l6ZSBtX2ltYWdlU2l6
ZTsKQEAgLTEwNjMsMTAgKzExMDAsNTEgQEAgcHJpdmF0ZToKICAgICBJbWFnZVBhaW50aW5nT3B0
aW9ucyBtX29wdGlvbnM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEcmF3
TmF0aXZlSW1hZ2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgbV9pbWFnZUlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCBtX2ltYWdlU2l6ZTsKKyAg
ICBlbmNvZGVyIDw8IG1fZGVzdGluYXRpb25SZWN0OworICAgIGVuY29kZXIgPDwgbV9zcmNSZWN0
OworICAgIGVuY29kZXIgPDwgbV9vcHRpb25zOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
Pgorc3RkOjpvcHRpb25hbDxEcmF3TmF0aXZlSW1hZ2U+IERyYXdOYXRpdmVJbWFnZTo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+IGltYWdlSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGltYWdlSWRlbnRp
ZmllcjsKKyAgICBpZiAoIWltYWdlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRTaXplPiBpbWFnZVNpemU7CisgICAgZGVj
b2RlciA+PiBpbWFnZVNpemU7CisgICAgaWYgKCFpbWFnZVNpemUpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gZGVzdGluYXRpb25S
ZWN0OworICAgIGRlY29kZXIgPj4gZGVzdGluYXRpb25SZWN0OworICAgIGlmICghZGVzdGluYXRp
b25SZWN0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25h
bDxGbG9hdFJlY3Q+IHNyY1JlY3Q7CisgICAgZGVjb2RlciA+PiBzcmNSZWN0OworICAgIGlmICgh
c3JjUmVjdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9u
YWw8SW1hZ2VQYWludGluZ09wdGlvbnM+IG9wdGlvbnM7CisgICAgZGVjb2RlciA+PiBvcHRpb25z
OworICAgIGlmICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHJldHVybiB7IHsgKmltYWdlSWRlbnRpZmllciwgKmltYWdlU2l6ZSwgV1RGTW92ZSgqZGVzdGlu
YXRpb25SZWN0KSwgV1RGTW92ZSgqc3JjUmVjdCksIFdURk1vdmUoKm9wdGlvbnMpIH0gfTsKK30K
KwogY2xhc3MgRHJhd1BhdHRlcm4gewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRl
bVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6RHJhd1BhdHRlcm47Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGlzSW5saW5lSXRlbSA9IGZhbHNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdp
bmdJdGVtID0gdHJ1ZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIERyYXdQYXR0ZXJuKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNw
YWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CkBAIC0xMDc4LDggKzEx
NTYsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtKCkgY29uc3QgeyByZXR1cm4gbV9wYXR0ZXJuVHJhbnNmb3JtOyB9CiAgICAgRmxvYXRQb2lu
dCBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGhhc2U7IH0KICAgICBGbG9hdFNpemUgc3BhY2lu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fc3BhY2luZzsgfQotICAgIC8vIEZJWE1FOiBXZSBtaWdodCB3
YW50IHRvIHZhbGlkYXRlIEltYWdlUGFpbnRpbmdPcHRpb25zLgotICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VJZGVudGlmaWVyLmlzVmFsaWQoKTsgfQogCiAgICAgTk9f
UkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsK
ICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYsIE5hdGl2ZUltYWdlJikgY29uc3Q7CkBA
IC0xMDg3LDYgKzExNjMsOSBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+
IGdsb2JhbEJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogICAgIHN0ZDo6
b3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBj
b25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RHJhd1BhdHRlcm4+IGRlY29kZShEZWNvZGVyJik7
CisKIHByaXZhdGU6CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VJZGVu
dGlmaWVyOwogICAgIEZsb2F0U2l6ZSBtX2ltYWdlU2l6ZTsKQEAgLTEwOTgsNiArMTE3Nyw2NSBA
QCBwcml2YXRlOgogICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1fb3B0aW9uczsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIERyYXdQYXR0ZXJuOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1faW1hZ2VJZGVudGlmaWVyOworICAg
IGVuY29kZXIgPDwgbV9pbWFnZVNpemU7CisgICAgZW5jb2RlciA8PCBtX2Rlc3RpbmF0aW9uOwor
ICAgIGVuY29kZXIgPDwgbV90aWxlUmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fcGF0dGVyblRyYW5z
Zm9ybTsKKyAgICBlbmNvZGVyIDw8IG1fcGhhc2U7CisgICAgZW5jb2RlciA8PCBtX3NwYWNpbmc7
CisgICAgZW5jb2RlciA8PCBtX29wdGlvbnM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitzdGQ6Om9wdGlvbmFsPERyYXdQYXR0ZXJuPiBEcmF3UGF0dGVybjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXI+IGltYWdlSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGltYWdlSWRlbnRpZmllcjsKKyAg
ICBpZiAoIWltYWdlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRTaXplPiBpbWFnZVNpemU7CisgICAgZGVjb2RlciA+PiBp
bWFnZVNpemU7CisgICAgaWYgKCFpbWFnZVNpemUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gZGVzdGluYXRpb247CisgICAgZGVj
b2RlciA+PiBkZXN0aW5hdGlvbjsKKyAgICBpZiAoIWRlc3RpbmF0aW9uKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHRpbGVSZWN0
OworICAgIGRlY29kZXIgPj4gdGlsZVJlY3Q7CisgICAgaWYgKCF0aWxlUmVjdCkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8QWZmaW5lVHJhbnNmb3Jt
PiBwYXR0ZXJuVHJhbnNmb3JtOworICAgIGRlY29kZXIgPj4gcGF0dGVyblRyYW5zZm9ybTsKKyAg
ICBpZiAoIXBhdHRlcm5UcmFuc2Zvcm0pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBoYXNlOworICAgIGRlY29kZXIgPj4gcGhh
c2U7CisgICAgaWYgKCFwaGFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8RmxvYXRTaXplPiBzcGFjaW5nOworICAgIGRlY29kZXIgPj4gc3BhY2lu
ZzsKKyAgICBpZiAoIXNwYWNpbmcpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBzdGQ6Om9wdGlvbmFsPEltYWdlUGFpbnRpbmdPcHRpb25zPiBvcHRpb25zOworICAgIGRlY29k
ZXIgPj4gb3B0aW9uczsKKyAgICBpZiAoIW9wdGlvbnMpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICppbWFnZUlkZW50aWZpZXIsICppbWFnZVNpemUsIFdU
Rk1vdmUoKmRlc3RpbmF0aW9uKSwgV1RGTW92ZSgqdGlsZVJlY3QpLCBXVEZNb3ZlKCpwYXR0ZXJu
VHJhbnNmb3JtKSwgKnBoYXNlLCAqc3BhY2luZywgV1RGTW92ZSgqb3B0aW9ucykgfSB9OworfQor
CiBjbGFzcyBCZWdpblRyYW5zcGFyZW5jeUxheWVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oCmluZGV4IGM1
ODUzNTRlNzQ1Y2M4MzQyNWZiODUzYmRhNzg4NDQ2ZmRjMTU0MzkuLjhlNDM4ODE1ZmVkNDM1Mzc5
MGU0MGJlY2MyNmZkMTk4NTkzYzhjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVySW1wbC5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICBjbGFzcyBEZWxl
Z2F0ZSB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5EZWxlZ2F0ZSgpIHsgfQorICAg
ICAgICB2aXJ0dWFsIGJvb2wgdXNlc0N1c3RvbUl0ZW1FbmNvZGluZygpIHsgcmV0dXJuIHRydWU7
IH0KICAgICAgICAgdmlydHVhbCBib29sIGNhbkFwcGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUpIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWNvcmROYXRpdmVJbWFnZVVz
ZShOYXRpdmVJbWFnZSYpIHsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDYWNoZWRJbWFnZUJ1
ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKaW5kZXggZmNjZWQ3ZDUxYTIxMjJhNjAwNDg5OWUxOWUzODBjYmQ1ODU3
MjFmMS4uZjdlOGRkODJiNjllN2Q3ODNjZjEyMzBlNTUzNzg0NzY1MzU5ZmRhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcApAQCAtNjY3LDYgKzY2NywxMiBAQCBzdGQ6Om9wdGlvbmFsPERpc3Bs
YXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZAogICAgICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRlPERpc3BsYXlMaXN0OjpEcmF3Rm9j
dXNSaW5nUmVjdHM+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOwogICAgIGNhc2UgRGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3R2x5cGhzOgogICAgICAgICByZXR1cm4gZGVjb2RlQW5k
Q3JlYXRlPERpc3BsYXlMaXN0OjpEcmF3R2x5cGhzPihkYXRhLCBsZW5ndGgsIGhhbmRsZUxvY2F0
aW9uKTsKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgor
ICAgICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRlPERpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZm
ZXI+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOworICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6CisgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVh
dGU8RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZT4oZGF0YSwgbGVuZ3RoLCBoYW5kbGVMb2Nh
dGlvbik7CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgorICAg
ICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRlPERpc3BsYXlMaXN0OjpEcmF3UGF0dGVybj4oZGF0
YSwgbGVuZ3RoLCBoYW5kbGVMb2NhdGlvbik7CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkRyYXdMaW5lc0ZvclRleHQ6CiAgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlz
cGxheUxpc3Q6OkRyYXdMaW5lc0ZvclRleHQ+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24p
OwogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UGF0aDoKQEAgLTcwOCw5ICs3
MTQsNiBAQCBzdGQ6Om9wdGlvbmFsPERpc3BsYXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNF
RF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZAogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RHJhd0VsbGlwc2U6Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFn
ZUJ1ZmZlcjoKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdl
OgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKICAgICBjYXNl
IERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0xpbmU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OkRyYXdSZWN0OgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpFbmRU
cmFuc3BhcmVuY3lMYXllcjoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA0NmJmZTcxYmNhYjlkNjVmMzVkOTcwMDYwNDEzMDQyMGEwZjMzOTI2Li43
OTEyMTI0MDIwNGU3YzE0MzQ0MDk4MWY3OGUxMTdhOWUwZTkxZDU0IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEt
MTAtMDkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
RHJhd0ltYWdlQnVmZmVyLCBEcmF3TmF0aXZlSW1hZ2UgYW5kIERyYXdQYXR0ZXJuIHNob3VsZCBu
b3QgYmUgaW5saW5lIGl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE0NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGp1c3QgYSBsYXlvdXQgdGVzdCB0byB1c2UgSW5NZW1vcnlEaXNwbGF5TGlz
dC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlz
dFRlc3RzQ0cuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMTAt
MDggIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5z
cGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0
byBiZSBub3RpZmllZCB3aGVuIHRoZSBpbnNwZWN0ZWQgcGFnZSBuYXZpZ2F0ZXMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3Rz
Q0cuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0
VGVzdHNDRy5jcHAKaW5kZXggOGExMzU5ZGZlODM2YjAzOWVlYmYyNjdiZjM0NzA2YWZjZGQ5YjZm
Zi4uNGZmMWZhOWQ2NDU2MTU1YTEyNzg1MzlkNDc2MThlY2MyODg3ZjJkZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0
VGVzdHNDRy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBSZXBs
YXlXaXRoTWlzc2luZ1Jlc291cmNlKQogCiAgICAgYXV0byBpbWFnZUJ1ZmZlcklkZW50aWZpZXIg
PSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAKLSAgICBEaXNwbGF5
TGlzdCBsaXN0OworICAgIEluTWVtb3J5RGlzcGxheUxpc3QgbGlzdDsKIAogICAgIGxpc3QuYXBw
ZW5kPFNldElubGluZUZpbGxDb2xvcj4oQ29sb3I6OmdyZWVuKTsKICAgICBsaXN0LmFwcGVuZDxG
aWxsUmVjdD4oY29udGV4dEJvdW5kcyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>