<?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>199325</bug_id>
          
          <creation_ts>2019-06-28 10:32:47 -0700</creation_ts>
          <short_desc>Make ScrollbarControlSize an enum class</short_desc>
          <delta_ts>2020-07-17 11:39:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1548868</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-28 10:32:47 -0700</bug_when>
    <thetext>Make ScrollbarControlSize an enum class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548869</commentid>
    <comment_count>1</comment_count>
      <attachid>373129</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-28 10:33:33 -0700</bug_when>
    <thetext>Created attachment 373129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548872</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-28 10:36:01 -0700</bug_when>
    <thetext>Attachment 373129 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/ScrollbarThemeMac.mm:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550483</commentid>
    <comment_count>3</comment_count>
      <attachid>373129</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-07-05 12:59:37 -0700</bug_when>
    <thetext>Comment on attachment 373129
Patch

rs=me, but please get it building first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672187</commentid>
    <comment_count>4</comment_count>
      <attachid>404466</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-07-16 11:07:06 -0700</bug_when>
    <thetext>Created attachment 404466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672424</commentid>
    <comment_count>5</comment_count>
      <attachid>404548</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-07-17 01:02:26 -0700</bug_when>
    <thetext>Created attachment 404548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672436</commentid>
    <comment_count>6</comment_count>
      <attachid>404554</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-07-17 03:57:45 -0700</bug_when>
    <thetext>Created attachment 404554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672440</commentid>
    <comment_count>7</comment_count>
      <attachid>404555</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-07-17 04:23:54 -0700</bug_when>
    <thetext>Created attachment 404555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672533</commentid>
    <comment_count>8</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-07-17 10:22:52 -0700</bug_when>
    <thetext>Simon, it looks like this works after rebasing, so if you still want it feel free to commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672563</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-17 11:38:09 -0700</bug_when>
    <thetext>Committed r264525: &lt;https://trac.webkit.org/changeset/264525&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404555.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672565</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-17 11:39:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/65736048&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373129</attachid>
            <date>2019-06-28 10:33:33 -0700</date>
            <delta_ts>2020-07-16 11:07:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199325-20190628103332.patch</filename>
            <type>text/plain</type>
            <size>23665</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRhNzNhNzE0YTdjMjUy
N2IzNTgwMmE0YzAyYzQ3YTViZGNjYjRkNS4uYjJlMDBlNmNlOGQ5ZjY1Y2QzNDIzMDZiYmZiYjdi
NmI5MWNkN2I1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA2LTI4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
YmFyQ29udHJvbFNpemUgYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTY3JvbGxiYXJDb250cm9sU2l6ZSBhbiBlbnVtIGNs
YXNzLCBhbmQgbWFrZSBzb21lIFJlbmRlclNjcm9sbGJhciBtZXRob2RzIGNvbnN0LgorCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmNyZWF0ZVNjcm9sbGJhcik6
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGJhclRoZW1lOjpzY3JvbGxiYXJUaGlja25lc3MpOgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9TY3JvbGxiYXJUaGVtZUlPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxi
YXJUaGVtZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhclNpemVUb0luZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpoYXNCdXR0b25zKToKKyAgICAgICAgKFdlYkNvcmU6
OmJ1dHRvblJlcGFpbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFj
OjpiYWNrQnV0dG9uUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6
Zm9yd2FyZEJ1dHRvblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6
OnRyYWNrUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2su
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9wbGF5c3RhdGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0
aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpjcmVhdGVTY3JvbGxiYXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTY3Jv
bGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjpSZW5kZXJTY3Jv
bGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjpidXR0b25SZWN0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6dHJhY2tSZWN0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6dHJhY2tQaWVjZVJlY3RXaXRo
TWFyZ2lucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXI6Om1pbmlt
dW1UaHVtYkxlbmd0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXI6
Om9wYWNpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjpidXR0
b25SZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6dHJh
Y2tSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6dHJh
Y2tQaWVjZVJlY3RXaXRoTWFyZ2lucyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTY3JvbGxiYXI6Om1pbmltdW1UaHVtYkxlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTY3JvbGxiYXI6Om9wYWNpdHkpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTY3JvbGxiYXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzY3JvbGxiYXJDb250cm9sU2l6ZUZv
clBhcnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorCiAyMDE5LTA2
LTI3ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAg
IFtXaW5DYWlyb11bTWVkaWFGb3VuZGF0aW9uXSBTdG9wIHVzaW5nIHNvZnQgbGlua2luZyBmb3Ig
TWVkaWEgRm91bmRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxM2RiZDc2ZjNiMTIzOWUyMWUyYTljYjUxZjZh
NjEzMjNkMjFkNWIyLi45MzU1MDkzNzU4YzVjNDQwOGFiYmY1Njc1N2JkZGFkNmIwZmY3MTExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA2LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xsYmFyQ29udHJvbFNpemUg
YW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk5MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFrZSBTY3JvbGxiYXJDb250cm9sU2l6ZSBhbiBlbnVtIGNsYXNzLCBhbmQgbWFrZSBz
b21lIFJlbmRlclNjcm9sbGJhciBtZXRob2RzIGNvbnN0LgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6
Y3JlYXRlU2Nyb2xsYmFyKToKKwogMjAxOS0wNi0yNyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUHJvdmlkZSBvdmVycmlkZXMgZm9yIFVJS2l0J3Mgc3VnZ2VzdGVk
IGFjdGlvbnMgaW4gVUlDb250ZXh0TWVudUludGVyYWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVHlwZXMuaAppbmRleCA4OTExNDkxMDNkMzZjZTNhYTYzNDQ1MDEyOGJjODljNDQwMmZi
YThjLi4wM2NmNDI3NzkxMDlmZjE3OWFjN2JjYjkxYWQzNDIyYzNjZmIyMjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKQEAgLTEzNiw5ICsxMzYsOSBAQCBlbnVtIFNjcm9s
bGJhck1vZGUgOiB1aW50OF90IHsKICAgICBTY3JvbGxiYXJBbHdheXNPbgogfTsKIAotZW51bSBT
Y3JvbGxiYXJDb250cm9sU2l6ZSA6IHVpbnQ4X3QgewotICAgIFJlZ3VsYXJTY3JvbGxiYXIsCi0g
ICAgU21hbGxTY3JvbGxiYXIKK2VudW0gY2xhc3MgU2Nyb2xsYmFyQ29udHJvbFNpemUgOiB1aW50
OF90IHsKKyAgICBSZWd1bGFyLAorICAgIFNtYWxsCiB9OwogCiBlbnVtIGNsYXNzIFNjcm9sbGJh
ckV4cGFuc2lvblN0YXRlIDogdWludDhfdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwCmluZGV4IGIxMjZhOWMyYjcwNmExMTczNDZjNTc0MDc4NTFlMzg1NTgyY2M5NjguLmVj
ZWY3NzNlOWNjNmU4YmIwYmIxYjc0Yzk1ZTQwOTZiNzlmZDNkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgYm9vbCBTY3JvbGxWaWV3
OjpzZXRIYXNTY3JvbGxiYXJJbnRlcm5hbChSZWZQdHI8U2Nyb2xsYmFyPiYgc2Nyb2xsYmFyLCBT
Y3JvbGxiYXIKIAogUmVmPFNjcm9sbGJhcj4gU2Nyb2xsVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNj
cm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogewotICAgIHJldHVybiBTY3JvbGxiYXI6
OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhpcywgb3JpZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxi
YXIpOworICAgIHJldHVybiBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhpcywg
b3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyKTsKIH0KIAogdm9pZCBT
Y3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250YWxNb2Rl
LCBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsTW9kZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxiYXJUaGVtZS5oCmluZGV4IGIyOTFkN2EwZDQ5NTM4YWE4ZGFmYzFmNTM1NDI5YTE3N2JmZmFm
NDEuLjVjMTZmOWExODkzZjUxODJlNzdhYTE2ZDRiY2FiYmM5YjQyNzkxOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHBhaW50KFNjcm9sbGJhciYsIEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEludFJlY3QmIC8qZGFtYWdlUmVjdCovKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgU2Nyb2xsYmFyUGFydCBoaXRUZXN0KFNjcm9sbGJhciYsIGNvbnN0IEludFBvaW50JikgeyBy
ZXR1cm4gTm9QYXJ0OyB9CiAgICAgCi0gICAgdmlydHVhbCBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNz
KFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxhclNjcm9sbGJhciwgU2Nyb2xsYmFyRXhwYW5z
aW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIHsgcmV0dXJuIDA7
IH0KKyAgICB2aXJ0dWFsIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNp
emUgPSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3Rh
dGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIHsgcmV0dXJuIDA7IH0KIAog
ICAgIHZpcnR1YWwgU2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVudCBidXR0b25zUGxhY2VtZW50KCkg
Y29uc3QgeyByZXR1cm4gU2Nyb2xsYmFyQnV0dG9uc1NpbmdsZTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsYmFyVGhlbWVJT1MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxiYXJUaGVtZUlPUy5oCmluZGV4IDNiMmE5MDgxMGY3
ZmE2MzMxODYxNDIzMjhlYmQ4MjkwY2NmZDU4NjYuLjc4YzNmYWQ0NzE3ZDgzODNlOGFjODM0OTI5
YWNiOTE2MTA2OGZjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9T
Y3JvbGxiYXJUaGVtZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3Jv
bGxiYXJUaGVtZUlPUy5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcGFp
bnQoU2Nyb2xsYmFyJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVj
dCkgb3ZlcnJpZGU7CiAKLSAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRy
b2xTaXplID0gUmVndWxhclNjcm9sbGJhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3Jv
bGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOworICAgIGludCBzY3JvbGxi
YXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6
UmVndWxhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0
ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOwogICAgIAogICAgIGJvb2wgc3VwcG9ydHNDb250cm9sVGlu
dHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmgKaW5kZXggY2YwZWVhZjJhMTNmN2Nh
ZDhkZDI3NzBlNzY0MDVmMGJjMTdiNTY1NS4uZTA4NGI5Y2MxYWZhZDk2N2YxNTEzN2M4OTkzYzdi
NjQ1MGMxOWNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJh
clRoZW1lTWFjLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIGJvb2wgcGFpbnQoU2Ny
b2xsYmFyJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBwYWludFNjcm9sbENvcm5lcihHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBJbnRSZWN0JiBjb3JuZXJSZWN0KSBvdmVycmlkZTsKIAotICAgIGludCBzY3JvbGxiYXJUaGlj
a25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJF
eHBhbnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJp
ZGU7CisgICAgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFNj
cm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNj
cm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgYm9v
bCBzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
ICAgICBib29sIHVzZXNPdmVybGF5U2Nyb2xsYmFycygpIGNvbnN0ICBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCAz
NWExNDFhN2U3NmI4Mzg3NDdlNzc3OWM5YTRlZTdjN2VmMGI0Y2QzLi4yYWU4NjYyNWE1MzIyNDVj
ZjA1YWM3OWNkMDliNTBhNWQ1OWEzNWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xNDQsOSArMTQ0LDkgQEAgc3RhdGljIFNj
cm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRv
bnNEb3VibGVFbmQ7CiBzdGF0aWMgTlNDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6ZVRv
TlNDb250cm9sU2l6ZShTY3JvbGxiYXJDb250cm9sU2l6ZSBjb250cm9sU2l6ZSkKIHsKICAgICBz
d2l0Y2ggKGNvbnRyb2xTaXplKSB7Ci0gICAgY2FzZSBSZWd1bGFyU2Nyb2xsYmFyOgorICAgIGNh
c2UgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXI6CiAgICAgICAgIHJldHVybiBOU0NvbnRy
b2xTaXplUmVndWxhcjsKLSAgICBjYXNlIFNtYWxsU2Nyb2xsYmFyOgorICAgIGNhc2UgU2Nyb2xs
YmFyQ29udHJvbFNpemU6OlNtYWxsOgogICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxs
OwogICAgIH0KIApAQCAtMjg0LDEyICsyODQsMjEgQEAgU2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVu
dCBTY3JvbGxiYXJUaGVtZU1hYzo6YnV0dG9uc1BsYWNlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJu
IGdCdXR0b25QbGFjZW1lbnQ7CiB9CiAKK2lubGluZSBjb25zdGV4cHIgdW5zaWduZWQgc2Nyb2xs
YmFyU2l6ZVRvSW5kZXgoU2Nyb2xsYmFyQ29udHJvbFNpemUgc2Nyb2xsYmFyU2l6ZSkKK3sKKyAg
ICBzd2l0Y2ggKHNjcm9sbGJhclNpemUpIHsKKyAgICBjYXNlIFNjcm9sbGJhckNvbnRyb2xTaXpl
OjpSZWd1bGFyOiByZXR1cm4gMDsKKyAgICBjYXNlIFNjcm9sbGJhckNvbnRyb2xTaXplOjpTbWFs
bDogcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCiBib29sIFNjcm9sbGJhclRo
ZW1lTWFjOjpoYXNCdXR0b25zKFNjcm9sbGJhciYgc2Nyb2xsYmFyKQogewogICAgIHJldHVybiBz
Y3JvbGxiYXIuZW5hYmxlZCgpICYmIGJ1dHRvbnNQbGFjZW1lbnQoKSAhPSBTY3JvbGxiYXJCdXR0
b25zTm9uZQogICAgICAgICAgICAgICYmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBIb3Jp
em9udGFsU2Nyb2xsYmFyCiAgICAgICAgICAgICAgPyBzY3JvbGxiYXIud2lkdGgoKQotICAgICAg
ICAgICAgIDogc2Nyb2xsYmFyLmhlaWdodCgpKSA+PSAyICogKGNSZWFsQnV0dG9uTGVuZ3RoW3Nj
cm9sbGJhci5jb250cm9sU2l6ZSgpXSAtIGNCdXR0b25IaXRJbnNldFtzY3JvbGxiYXIuY29udHJv
bFNpemUoKV0pOworICAgICAgICAgICAgIDogc2Nyb2xsYmFyLmhlaWdodCgpKSA+PSAyICogKGNS
ZWFsQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5jb250cm9sU2l6
ZSgpKV0gLSBjQnV0dG9uSGl0SW5zZXRbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNv
bnRyb2xTaXplKCkpXSk7CiB9CiAKIGJvb2wgU2Nyb2xsYmFyVGhlbWVNYWM6Omhhc1RodW1iKFNj
cm9sbGJhciYgc2Nyb2xsYmFyKQpAQCAtMzExLDEzICszMjAsMTMgQEAgc3RhdGljIEludFJlY3Qg
YnV0dG9uUmVwYWludFJlY3QoY29uc3QgSW50UmVjdCYgYnV0dG9uUmVjdCwgU2Nyb2xsYmFyT3Jp
ZW50YXRpb24KIAogICAgIEludFJlY3QgcGFpbnRSZWN0KGJ1dHRvblJlY3QpOwogICAgIGlmIChv
cmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSB7Ci0gICAgICAgIHBhaW50UmVjdC5z
ZXRXaWR0aChjUmVhbEJ1dHRvbkxlbmd0aFtjb250cm9sU2l6ZV0pOworICAgICAgICBwYWludFJl
Y3Quc2V0V2lkdGgoY1JlYWxCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoY29udHJv
bFNpemUpXSk7CiAgICAgICAgIGlmICghc3RhcnQpCi0gICAgICAgICAgICBwYWludFJlY3Quc2V0
WChidXR0b25SZWN0LngoKSAtIChjUmVhbEJ1dHRvbkxlbmd0aFtjb250cm9sU2l6ZV0gLSBidXR0
b25SZWN0LndpZHRoKCkpKTsKKyAgICAgICAgICAgIHBhaW50UmVjdC5zZXRYKGJ1dHRvblJlY3Qu
eCgpIC0gKGNSZWFsQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KGNvbnRyb2xTaXpl
KV0gLSBidXR0b25SZWN0LndpZHRoKCkpKTsKICAgICB9IGVsc2UgewotICAgICAgICBwYWludFJl
Y3Quc2V0SGVpZ2h0KGNSZWFsQnV0dG9uTGVuZ3RoW2NvbnRyb2xTaXplXSk7CisgICAgICAgIHBh
aW50UmVjdC5zZXRIZWlnaHQoY1JlYWxCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgo
Y29udHJvbFNpemUpXSk7CiAgICAgICAgIGlmICghc3RhcnQpCi0gICAgICAgICAgICBwYWludFJl
Y3Quc2V0WShidXR0b25SZWN0LnkoKSAtIChjUmVhbEJ1dHRvbkxlbmd0aFtjb250cm9sU2l6ZV0g
LSBidXR0b25SZWN0LmhlaWdodCgpKSk7CisgICAgICAgICAgICBwYWludFJlY3Quc2V0WShidXR0
b25SZWN0LnkoKSAtIChjUmVhbEJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChjb250
cm9sU2l6ZSldIC0gYnV0dG9uUmVjdC5oZWlnaHQoKSkpOwogICAgIH0KIAogICAgIHJldHVybiBw
YWludFJlY3Q7CkBAIC0zMzcsMTkgKzM0NiwxOSBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lTWFj
OjpiYWNrQnV0dG9uUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgU2Nyb2xsYmFyUGFydCBwYQog
ICAgIGJvb2wgb3V0ZXJCdXR0b24gPSBwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQgJiYgKGJ1
dHRvbnNQbGFjZW1lbnQoKSA9PSBTY3JvbGxiYXJCdXR0b25zRG91YmxlU3RhcnQgfHwgYnV0dG9u
c1BsYWNlbWVudCgpID09IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVCb3RoKTsKICAgICBpZiAob3V0
ZXJCdXR0b24pIHsKICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IEhvcml6
b250YWxTY3JvbGxiYXIpCi0gICAgICAgICAgICByZXN1bHQgPSBJbnRSZWN0KHNjcm9sbGJhci54
KCksIHNjcm9sbGJhci55KCksIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNp
emUoKV0gKyAocGFpbnRpbmcgPyBjT3V0ZXJCdXR0b25PdmVybGFwIDogMCksIHRoaWNrbmVzcyk7
CisgICAgICAgICAgICByZXN1bHQgPSBJbnRSZWN0KHNjcm9sbGJhci54KCksIHNjcm9sbGJhci55
KCksIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29u
dHJvbFNpemUoKSldICsgKHBhaW50aW5nID8gY091dGVyQnV0dG9uT3ZlcmxhcCA6IDApLCB0aGlj
a25lc3MpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSBJbnRSZWN0KHNjcm9s
bGJhci54KCksIHNjcm9sbGJhci55KCksIHRoaWNrbmVzcywgY091dGVyQnV0dG9uTGVuZ3RoW3Nj
cm9sbGJhci5jb250cm9sU2l6ZSgpXSArIChwYWludGluZyA/IGNPdXRlckJ1dHRvbk92ZXJsYXAg
OiAwKSk7CisgICAgICAgICAgICByZXN1bHQgPSBJbnRSZWN0KHNjcm9sbGJhci54KCksIHNjcm9s
bGJhci55KCksIHRoaWNrbmVzcywgY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0lu
ZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKV0gKyAocGFpbnRpbmcgPyBjT3V0ZXJCdXR0b25P
dmVybGFwIDogMCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKICAgICAv
LyBPdXIgcmVwYWludCByZWN0IGlzIHNsaWdodGx5IGxhcmdlciwgc2luY2Ugd2UgYXJlIGEgYnV0
dG9uIHRoYXQgaXMgYWRqYWNlbnQgdG8gdGhlIHRyYWNrLgogICAgIGlmIChzY3JvbGxiYXIub3Jp
ZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSB7Ci0gICAgICAgIGludCBzdGFydCA9
IHBhcnQgPT0gQmFja0J1dHRvblN0YXJ0UGFydCA/IHNjcm9sbGJhci54KCkgOiBzY3JvbGxiYXIu
eCgpICsgc2Nyb2xsYmFyLndpZHRoKCkgLSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNv
bnRyb2xTaXplKCldIC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV07Ci0g
ICAgICAgIHJlc3VsdCA9IEludFJlY3Qoc3RhcnQsIHNjcm9sbGJhci55KCksIGNCdXR0b25MZW5n
dGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldLCB0aGlja25lc3MpOworICAgICAgICBpbnQgc3Rh
cnQgPSBwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQgPyBzY3JvbGxiYXIueCgpIDogc2Nyb2xs
YmFyLngoKSArIHNjcm9sbGJhci53aWR0aCgpIC0gY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJh
clNpemVUb0luZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKV0gLSBjQnV0dG9uTGVuZ3RoW3Nj
cm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKV07CisgICAgICAgIHJl
c3VsdCA9IEludFJlY3Qoc3RhcnQsIHNjcm9sbGJhci55KCksIGNCdXR0b25MZW5ndGhbc2Nyb2xs
YmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXSwgdGhpY2tuZXNzKTsKICAg
ICB9IGVsc2UgewotICAgICAgICBpbnQgc3RhcnQgPSBwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBh
cnQgPyBzY3JvbGxiYXIueSgpIDogc2Nyb2xsYmFyLnkoKSArIHNjcm9sbGJhci5oZWlnaHQoKSAt
IGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV0gLSBjQnV0dG9uTGVu
Z3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXTsKLSAgICAgICAgcmVzdWx0ID0gSW50UmVjdChz
Y3JvbGxiYXIueCgpLCBzdGFydCwgdGhpY2tuZXNzLCBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5j
b250cm9sU2l6ZSgpXSk7CisgICAgICAgIGludCBzdGFydCA9IHBhcnQgPT0gQmFja0J1dHRvblN0
YXJ0UGFydCA/IHNjcm9sbGJhci55KCkgOiBzY3JvbGxiYXIueSgpICsgc2Nyb2xsYmFyLmhlaWdo
dCgpIC0gY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5j
b250cm9sU2l6ZSgpKV0gLSBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KHNjcm9s
bGJhci5jb250cm9sU2l6ZSgpKV07CisgICAgICAgIHJlc3VsdCA9IEludFJlY3Qoc2Nyb2xsYmFy
LngoKSwgc3RhcnQsIHRoaWNrbmVzcywgY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRl
eChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldKTsKICAgICB9CiAgICAgCiAgICAgaWYgKHBhaW50
aW5nKQpAQCAtMzY4LDggKzM3Nyw4IEBAIEludFJlY3QgU2Nyb2xsYmFyVGhlbWVNYWM6OmZvcndh
cmRCdXR0b25SZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0CiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgIAogICAgIGludCB0aGlja25lc3MgPSBzY3JvbGxiYXJU
aGlja25lc3Moc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpOwotICAgIGludCBvdXRlckJ1dHRvbkxl
bmd0aCA9IGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV07Ci0gICAg
aW50IGJ1dHRvbkxlbmd0aCA9IGNCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCld
OworICAgIGludCBvdXRlckJ1dHRvbkxlbmd0aCA9IGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxi
YXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldOworICAgIGludCBidXR0b25M
ZW5ndGggPSBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5jb250
cm9sU2l6ZSgpKV07CiAgICAgCiAgICAgYm9vbCBvdXRlckJ1dHRvbiA9IHBhcnQgPT0gRm9yd2Fy
ZEJ1dHRvbkVuZFBhcnQgJiYgKGJ1dHRvbnNQbGFjZW1lbnQoKSA9PSBTY3JvbGxiYXJCdXR0b25z
RG91YmxlRW5kIHx8IGJ1dHRvbnNQbGFjZW1lbnQoKSA9PSBTY3JvbGxiYXJCdXR0b25zRG91Ymxl
Qm90aCk7CiAgICAgaWYgKG91dGVyQnV0dG9uKSB7CkBAIC00MDYsOCArNDE1LDggQEAgSW50UmVj
dCBTY3JvbGxiYXJUaGVtZU1hYzo6dHJhY2tSZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBib29s
IHBhaW50aW5nKQogICAgIGludCB0aGlja25lc3MgPSBzY3JvbGxiYXJUaGlja25lc3Moc2Nyb2xs
YmFyLmNvbnRyb2xTaXplKCkpOwogICAgIGludCBzdGFydFdpZHRoID0gMDsKICAgICBpbnQgZW5k
V2lkdGggPSAwOwotICAgIGludCBvdXRlckJ1dHRvbkxlbmd0aCA9IGNPdXRlckJ1dHRvbkxlbmd0
aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV07Ci0gICAgaW50IGJ1dHRvbkxlbmd0aCA9IGNCdXR0
b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldOworICAgIGludCBvdXRlckJ1dHRvbkxl
bmd0aCA9IGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIu
Y29udHJvbFNpemUoKSldOworICAgIGludCBidXR0b25MZW5ndGggPSBjQnV0dG9uTGVuZ3RoW3Nj
cm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKV07CiAgICAgaW50IGRv
dWJsZUJ1dHRvbkxlbmd0aCA9IG91dGVyQnV0dG9uTGVuZ3RoICsgYnV0dG9uTGVuZ3RoOwogICAg
IHN3aXRjaCAoYnV0dG9uc1BsYWNlbWVudCgpKSB7CiAgICAgICAgIGNhc2UgU2Nyb2xsYmFyQnV0
dG9uc1NpbmdsZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Ny
b2xsYmFyVGhlbWVNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJh
clRoZW1lTW9jay5oCmluZGV4IGYwNjRlMmU1NzQzNzIzNmUxYzA2Y2VkY2U3YzlhY2IyMWUwYTcx
OGUuLjJlMGMwYmQyYTc4MDFiMzEwZTAyMjBlOGYwMzgyNTQzMTJjOTAwNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaApAQCAtMzMs
NyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBTY3JvbGxiYXIgdGhlbWUgdXNlZCBp
biBpbWFnZSBzbmFwc2hvdHMsIHRvIGVsaW1pbmF0ZSBhcHBlYXJhbmNlIGRpZmZlcmVuY2VzIGJl
dHdlZW4gcGxhdGZvcm1zLgogY2xhc3MgU2Nyb2xsYmFyVGhlbWVNb2NrIDogcHVibGljIFNjcm9s
bGJhclRoZW1lQ29tcG9zaXRlIHsKIHB1YmxpYzoKLSAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNz
KFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxhclNjcm9sbGJhciwgU2Nyb2xsYmFyRXhwYW5z
aW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOwor
ICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBTY3JvbGxi
YXJDb250cm9sU2l6ZTo6UmVndWxhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxi
YXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBoYXNCdXR0b25zKFNjcm9sbGJhciYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wbGF5c3RhdGlvbi9TY3JvbGxiYXJU
aGVtZVBsYXlTdGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wbGF5c3RhdGlvbi9T
Y3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uLmgKaW5kZXggMDQzNmI5ZmNkZjk3OGUwODhhMDIxMGIw
NzA0MDhhZDc5MmUwNWJkMS4uYzY3MTExYmIwZjE5YTAxNDY4YjE0Zjg4MDIyOGI4NDYyNGQyODcy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcGxheXN0YXRpb24vU2Nyb2xs
YmFyVGhlbWVQbGF5U3RhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3BsYXlz
dGF0aW9uL1Njcm9sbGJhclRoZW1lUGxheVN0YXRpb24uaApAQCAtMzQsNyArMzQsNyBAQCBwdWJs
aWM6CiAgICAgU2Nyb2xsYmFyVGhlbWVQbGF5U3RhdGlvbigpID0gZGVmYXVsdDsKICAgICB2aXJ0
dWFsIH5TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uKCkgPSBkZWZhdWx0OwogCi0gICAgaW50IHNj
cm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIs
IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFu
ZGVkKSBvdmVycmlkZTsKKyAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRy
b2xTaXplID0gU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFNjcm9sbGJhckV4cGFuc2lv
blN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlkZTsKIAog
ICAgIGJvb2wgaGFzQnV0dG9ucyhTY3JvbGxiYXImKSBvdmVycmlkZTsKICAgICBib29sIGhhc1Ro
dW1iKFNjcm9sbGJhciYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU2Nyb2xsYmFyVGhlbWVXaW4uaAppbmRleCAwNTVlOGVmNmNmOTExM2M2YzA5NTAwMTkzYjI3
OWY2N2NiYjliN2NkLi45NjZjNjg0ZGQzMjEyZjZhM2EwNzBiY2M0NDMyZjkzYjVhMGFhNjE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Nyb2xsYmFyVGhlbWVXaW4u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Nyb2xsYmFyVGhlbWVXaW4uaApA
QCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsYmFyVGhlbWVXaW4oKTsKICAgICB2
aXJ0dWFsIH5TY3JvbGxiYXJUaGVtZVdpbigpOwogCi0gICAgaW50IHNjcm9sbGJhclRoaWNrbmVz
cyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIsIFNjcm9sbGJhckV4cGFu
c2lvblN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlkZTsK
KyAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gU2Nyb2xs
YmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlID0gU2Nyb2xs
YmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlkZTsKIAogICAgIHZvaWQgdGhlbWVD
aGFuZ2VkKCkgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAppbmRleCA3OWIxYzg3MmYyNGRiNWViNjZiMGNjNTZmNzlmOGM0MzExNjliNGY3Li43
YzA0ODY0Yzk0ZjBjY2M2NzY2NmQxNzFlZTNiZGM4YWUwN2UyNGJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTMyNzUsNyArMzI3NSw3IEBAIFJlZjxTY3Jv
bGxiYXI+IFJlbmRlckxheWVyOjpjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24g
b3JpZW50YXRpb24pCiAgICAgaWYgKGhhc0N1c3RvbVNjcm9sbGJhclN0eWxlKQogICAgICAgICB3
aWRnZXQgPSBSZW5kZXJTY3JvbGxiYXI6OmNyZWF0ZUN1c3RvbVNjcm9sbGJhcigqdGhpcywgb3Jp
ZW50YXRpb24sIGRvd25jYXN0PFJlbmRlckJveD4oYWN0dWFsUmVuZGVyZXIpLmVsZW1lbnQoKSk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIHdpZGdldCA9IFNjcm9sbGJhcjo6Y3JlYXRlTmF0aXZlU2Ny
b2xsYmFyKCp0aGlzLCBvcmllbnRhdGlvbiwgUmVndWxhclNjcm9sbGJhcik7CisgICAgICAgIHdp
ZGdldCA9IFNjcm9sbGJhcjo6Y3JlYXRlTmF0aXZlU2Nyb2xsYmFyKCp0aGlzLCBvcmllbnRhdGlv
biwgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIpOwogICAgICAgICBkaWRBZGRTY3JvbGxi
YXIod2lkZ2V0LmdldCgpLCBvcmllbnRhdGlvbik7CiAgICAgICAgIGlmIChwYWdlKCkuZXhwZWN0
c1doZWVsRXZlbnRUcmlnZ2VycygpKQogICAgICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5zZXRX
aGVlbEV2ZW50VGVzdFRyaWdnZXIocGFnZSgpLnRlc3RUcmlnZ2VyKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcAppbmRleCAzMDhkMjM3NmNmN2VhOTJi
YWYwNjg5MGI0YjgzZDQ2N2Y0OGQ2YTY4Li5mZWQzYmQ5NjcwYTk2MGFlYjM5YmFjZDUyNTA4Mzgw
Y2UzZTViZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Ny
b2xsYmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFy
LmNwcApAQCAtNDIsNyArNDIsNyBAQCBSZWY8U2Nyb2xsYmFyPiBSZW5kZXJTY3JvbGxiYXI6OmNy
ZWF0ZUN1c3RvbVNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZQogfQogCiBSZW5k
ZXJTY3JvbGxiYXI6OlJlbmRlclNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFy
ZWEsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBFbGVtZW50KiBvd25lckVsZW1l
bnQsIEZyYW1lKiBvd25pbmdGcmFtZSkKLSAgICA6IFNjcm9sbGJhcihzY3JvbGxhYmxlQXJlYSwg
b3JpZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIsIFJlbmRlclNjcm9sbGJhclRoZW1lOjpyZW5k
ZXJTY3JvbGxiYXJUaGVtZSgpKQorICAgIDogU2Nyb2xsYmFyKHNjcm9sbGFibGVBcmVhLCBvcmll
bnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFJlbmRlclNjcm9sbGJhclRo
ZW1lOjpyZW5kZXJTY3JvbGxiYXJUaGVtZSgpKQogICAgICwgbV9vd25lckVsZW1lbnQob3duZXJF
bGVtZW50KQogICAgICwgbV9vd25pbmdGcmFtZShvd25pbmdGcmFtZSkKIHsKQEAgLTI1OCw3ICsy
NTgsNyBAQCB2b2lkIFJlbmRlclNjcm9sbGJhcjo6cGFpbnRQYXJ0KEdyYXBoaWNzQ29udGV4dCYg
Z3JhcGhpY3NDb250ZXh0LCBTY3JvbGxiYXJQYXJ0CiAgICAgcGFydFJlbmRlcmVyLT5wYWludElu
dG9SZWN0KGdyYXBoaWNzQ29udGV4dCwgbG9jYXRpb24oKSwgcmVjdCk7CiB9CiAKLUludFJlY3Qg
UmVuZGVyU2Nyb2xsYmFyOjpidXR0b25SZWN0KFNjcm9sbGJhclBhcnQgcGFydFR5cGUpCitJbnRS
ZWN0IFJlbmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdChTY3JvbGxiYXJQYXJ0IHBhcnRUeXBlKSBj
b25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnRSZW5kZXJlciA9IG1fcGFydHMu
Z2V0KHBhcnRUeXBlKTsKICAgICBpZiAoIXBhcnRSZW5kZXJlcikKQEAgLTI5MCw3ICsyOTAsNyBA
QCBJbnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdChTY3JvbGxiYXJQYXJ0IHBhcnRU
eXBlKQogICAgICAgICAgICAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGhlaWdodCgpIDogcGl4ZWxT
bmFwcGVkSW50U2l6ZS5oZWlnaHQoKSk7CiB9CiAKLUludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjp0
cmFja1JlY3QoaW50IHN0YXJ0TGVuZ3RoLCBpbnQgZW5kTGVuZ3RoKQorSW50UmVjdCBSZW5kZXJT
Y3JvbGxiYXI6OnRyYWNrUmVjdChpbnQgc3RhcnRMZW5ndGgsIGludCBlbmRMZW5ndGgpIGNvbnN0
CiB7CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcGFydCA9IG1fcGFydHMuZ2V0KFRyYWNrQkdQ
YXJ0KTsKICAgICBpZiAocGFydCkKQEAgLTMxNCw3ICszMTQsNyBAQCBJbnRSZWN0IFJlbmRlclNj
cm9sbGJhcjo6dHJhY2tSZWN0KGludCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0aCkKICAgICBy
ZXR1cm4gSW50UmVjdCh4KCksIHkoKSArIHN0YXJ0TGVuZ3RoLCB3aWR0aCgpLCBoZWlnaHQoKSAt
IHRvdGFsTGVuZ3RoKTsKIH0KIAotSW50UmVjdCBSZW5kZXJTY3JvbGxiYXI6OnRyYWNrUGllY2VS
ZWN0V2l0aE1hcmdpbnMoU2Nyb2xsYmFyUGFydCBwYXJ0VHlwZSwgY29uc3QgSW50UmVjdCYgb2xk
UmVjdCkKK0ludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjp0cmFja1BpZWNlUmVjdFdpdGhNYXJnaW5z
KFNjcm9sbGJhclBhcnQgcGFydFR5cGUsIGNvbnN0IEludFJlY3QmIG9sZFJlY3QpIGNvbnN0CiB7
CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcGFydFJlbmRlcmVyID0gbV9wYXJ0cy5nZXQocGFy
dFR5cGUpOwogICAgIGlmICghcGFydFJlbmRlcmVyKQpAQCAtMzMzLDcgKzMzMyw3IEBAIEludFJl
Y3QgUmVuZGVyU2Nyb2xsYmFyOjp0cmFja1BpZWNlUmVjdFdpdGhNYXJnaW5zKFNjcm9sbGJhclBh
cnQgcGFydFR5cGUsIGNvbnN0CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLWludCBSZW5kZXJTY3Jv
bGxiYXI6Om1pbmltdW1UaHVtYkxlbmd0aCgpCitpbnQgUmVuZGVyU2Nyb2xsYmFyOjptaW5pbXVt
VGh1bWJMZW5ndGgoKSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnRSZW5k
ZXJlciA9IG1fcGFydHMuZ2V0KFRodW1iUGFydCk7CiAgICAgaWYgKCFwYXJ0UmVuZGVyZXIpCkBA
IC0zNDIsNyArMzQyLDcgQEAgaW50IFJlbmRlclNjcm9sbGJhcjo6bWluaW11bVRodW1iTGVuZ3Ro
KCkKICAgICByZXR1cm4gb3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyID8gcGFy
dFJlbmRlcmVyLT53aWR0aCgpIDogcGFydFJlbmRlcmVyLT5oZWlnaHQoKTsKIH0KIAotZmxvYXQg
UmVuZGVyU2Nyb2xsYmFyOjpvcGFjaXR5KCkKK2Zsb2F0IFJlbmRlclNjcm9sbGJhcjo6b3BhY2l0
eSgpIGNvbnN0CiB7CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcGFydFJlbmRlcmVyID0gbV9w
YXJ0cy5nZXQoU2Nyb2xsYmFyQkdQYXJ0KTsKICAgICBpZiAoIXBhcnRSZW5kZXJlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuaAppbmRleCBlNTg1NjA1ZWJlZjg0
Yzg2MTEwMzdmNzI2ZWE4ZDdmMGNhYWRlOGU0Li5iOWY5ZjIyNThmOTU2YWNkOWU4NzExYzMwNjA0
ZDViNzFhNDE3MjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2Nyb2xsYmFyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJh
ci5oCkBAIC00OCwxMyArNDgsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBwYWludFBhcnQoR3Jh
cGhpY3NDb250ZXh0JiwgU2Nyb2xsYmFyUGFydCwgY29uc3QgSW50UmVjdCYpOwogCi0gICAgSW50
UmVjdCBidXR0b25SZWN0KFNjcm9sbGJhclBhcnQpOwotICAgIEludFJlY3QgdHJhY2tSZWN0KGlu
dCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0aCk7Ci0gICAgSW50UmVjdCB0cmFja1BpZWNlUmVj
dFdpdGhNYXJnaW5zKFNjcm9sbGJhclBhcnQsIGNvbnN0IEludFJlY3QmKTsKKyAgICBJbnRSZWN0
IGJ1dHRvblJlY3QoU2Nyb2xsYmFyUGFydCkgY29uc3Q7CisgICAgSW50UmVjdCB0cmFja1JlY3Qo
aW50IHN0YXJ0TGVuZ3RoLCBpbnQgZW5kTGVuZ3RoKSBjb25zdDsKKyAgICBJbnRSZWN0IHRyYWNr
UGllY2VSZWN0V2l0aE1hcmdpbnMoU2Nyb2xsYmFyUGFydCwgY29uc3QgSW50UmVjdCYpIGNvbnN0
OwogCi0gICAgaW50IG1pbmltdW1UaHVtYkxlbmd0aCgpOworICAgIGludCBtaW5pbXVtVGh1bWJM
ZW5ndGgoKSBjb25zdDsKIAotICAgIGZsb2F0IG9wYWNpdHkoKTsKKyAgICBmbG9hdCBvcGFjaXR5
KCkgY29uc3Q7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IGdldFNjcm9sbGJh
clBzZXVkb1N0eWxlKFNjcm9sbGJhclBhcnQsIFBzZXVkb0lkKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCAzYWY1NmFlNTZiOTQxODgyNDIxNzA5YzcwMWRjZmVm
OGE1YTk4MWNkLi5lN2E4MWQ2ZDg1NzI4MDRiOWU3N2M2YmNjODZkNDI1ZjljNDllMTZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTg2LDcgKzE4Niw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcG9wdXBPcHRpb25TdXBwb3J0c1RleHRJbmRlbnQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGU6OlBvcHVw
TWVudVNpemUgcG9wdXBNZW51U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYsIEludFJlY3QmKSBjb25z
dCB7IHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsgfQogCi0gICAg
dmlydHVhbCBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQo
Q29udHJvbFBhcnQpIHsgcmV0dXJuIFJlZ3VsYXJTY3JvbGxiYXI7IH0KKyAgICB2aXJ0dWFsIFNj
cm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplRm9yUGFydChDb250cm9sUGFy
dCkgeyByZXR1cm4gU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXI7IH0KIAogICAgIC8vIFJl
dHVybnMgdGhlIHJlcGVhdCBpbnRlcnZhbCBvZiB0aGUgYW5pbWF0aW9uIGZvciB0aGUgcHJvZ3Jl
c3MgYmFyLgogICAgIHZpcnR1YWwgU2Vjb25kcyBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclBy
b2dyZXNzQmFyKFJlbmRlclByb2dyZXNzJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IGExMzYxYWY4MjIxOTg4YTZjZDUyMmMwNzA2MGE3YzFm
MzA1MGJjYWQuLmMyZGNiYWFkOTQ3MDM1YTlhODdmMjYwNmY1MGEyM2NhZGI5YmJlYjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC02Niw3ICs2Niw3IEBA
IHB1YmxpYzoKICAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogICAgIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAotICAgIFNjcm9sbGJhckNvbnRyb2xTaXpl
IHNjcm9sbGJhckNvbnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgZmluYWwgeyByZXR1cm4g
U21hbGxTY3JvbGxiYXI7IH0KKyAgICBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250
cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJuIFNjcm9sbGJhckNvbnRy
b2xTaXplOjpTbWFsbDsgfQogCiAgICAgaW50IG1pbmltdW1NZW51TGlzdFNpemUoY29uc3QgUmVu
ZGVyU3R5bGUmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggZjZmNDFmOTIzNDIwM2JiYWNjY2EzMjBm
OWYyN2NiNWZhNzk2MmJiYi4uMzU3ZmRkMDI0ZmU0NDg0NWM5ZGVmODRmYTRlNjEyZDcwOThjOThi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tCkBAIC03NjYsNyArNzY2LDcgQEAgY29uc3QgUGx1Z2luVmlldyogUERGUGx1Z2luOjpw
bHVnaW5WaWV3KCkgY29uc3QKIAogUmVmPFNjcm9sbGJhcj4gUERGUGx1Z2luOjpjcmVhdGVTY3Jv
bGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAgYXV0byB3aWRn
ZXQgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhpcywgb3JpZW50YXRpb24s
IFJlZ3VsYXJTY3JvbGxiYXIpOworICAgIGF1dG8gd2lkZ2V0ID0gU2Nyb2xsYmFyOjpjcmVhdGVO
YXRpdmVTY3JvbGxiYXIoKnRoaXMsIG9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250cm9sU2l6ZTo6
UmVndWxhcik7CiAgICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpIHsK
ICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIgPSBhZG9wdE5TKFtbV0tQREZQbHVn
aW5TY3JvbGxiYXJMYXllciBhbGxvY10gaW5pdFdpdGhQREZQbHVnaW46dGhpc10pOwogICAgICAg
ICBbbV9jb250YWluZXJMYXllciBhZGRTdWJsYXllcjptX2hvcml6b250YWxTY3JvbGxiYXJMYXll
ci5nZXQoKV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404466</attachid>
            <date>2020-07-16 11:07:06 -0700</date>
            <delta_ts>2020-07-17 01:02:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199325-20200716190705.patch</filename>
            <type>text/plain</type>
            <size>24406</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRhMGE3NWJlYThiMmNl
MmE2ZDQzYjQ4ODkxM2FkNDUyZThmNDhjMi4uMzRlZjU1MTNkODhlYzhhODU1M2U4ZjZmYTk2ODcw
OTAxZWQyNzUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA3LTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
YmFyQ29udHJvbFNpemUgYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KKworICAgICAgICBNYWtlIFNjcm9sbGJhckNvbnRyb2xTaXplIGFuIGVudW0gY2xhc3Ms
IGFuZCBtYWtlIHNvbWUgUmVuZGVyU2Nyb2xsYmFyIG1ldGhvZHMgY29uc3QuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyVGhlbWU6OnNjcm9sbGJhclRoaWNrbmVzcyk6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L1Njcm9sbGJhclRoZW1lSU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyU2l6ZVRvSW5kZXgpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsYmFyVGhlbWVNYWM6Omhhc0J1dHRvbnMpOgorICAgICAgICAoV2ViQ29yZTo6YnV0
dG9uUmVwYWludFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OmJh
Y2tCdXR0b25SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpmb3J3
YXJkQnV0dG9uUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6dHJh
Y2tSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5oOgor
ICAgICAgICAqIHBsYXRmb3JtL3BsYXlzdGF0aW9uL1Njcm9sbGJhclRoZW1lUGxheVN0YXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2Nyb2xsYmFyVGhlbWVXaW4uaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmNyZWF0ZVNjcm9sbGJhcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJh
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXI6OlJlbmRlclNjcm9sbGJh
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXI6OmJ1dHRvblJlY3QgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjp0cmFja1JlY3QgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjp0cmFja1BpZWNlUmVjdFdpdGhNYXJn
aW5zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6bWluaW11bVRo
dW1iTGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6b3Bh
Y2l0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXI6OmJ1dHRvblJl
Y3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjp0cmFja1Jl
Y3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjp0cmFja1Bp
ZWNlUmVjdFdpdGhNYXJnaW5zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNj
cm9sbGJhcjo6bWluaW11bVRodW1iTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNjcm9sbGJhcjo6b3BhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclNjcm9sbGJhci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnNjcm9sbGJhckNvbnRyb2xTaXplRm9yUGFy
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisKIDIwMjAtMDctMTYg
IEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBkb0FYQXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZV1uZWVkcyB0byBhdXRvcmVsZWFzZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gdGhlIG1h
aW4gdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBkNDNlZjYyZjMwMGJkNGFkNGNiNWFjYjEyOGNhMWU4NzUz
MjczYTU4Li5lYmEwMjM3Mjg0N2I2ZWZiYTYwZDE4MGJjYTBiNjQxZjU4OTU2ZmZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA3LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xsYmFyQ29udHJvbFNpemUgYW4gZW51
bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk5MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBNYWtl
IFNjcm9sbGJhckNvbnRyb2xTaXplIGFuIGVudW0gY2xhc3MsIGFuZCBtYWtlIHNvbWUgUmVuZGVy
U2Nyb2xsYmFyIG1ldGhvZHMgY29uc3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpjcmVhdGVTY3Jv
bGxiYXIpOgorCiAyMDIwLTA3LTE2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBzeXNjYWxsIHRvIFdlYkNvbnRlbnQgc2FuZGJveApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggMzE3YjY1MmZjZTRjYjkzMTE1
YTZkM2Q0OTRjZTQ3ZTY4NjcwMjc4My4uNzVkN2E0NGE3M2RjMmExNTRmNDJmYTFhMGRiYmQzYWVk
NmVmNWI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC0xNDgsOSAr
MTQ4LDkgQEAgZW51bSBTY3JvbGxiYXJNb2RlIDogdWludDhfdCB7CiAgICAgU2Nyb2xsYmFyQWx3
YXlzT24KIH07CiAKLWVudW0gU2Nyb2xsYmFyQ29udHJvbFNpemUgOiB1aW50OF90IHsKLSAgICBS
ZWd1bGFyU2Nyb2xsYmFyLAotICAgIFNtYWxsU2Nyb2xsYmFyCitlbnVtIGNsYXNzIFNjcm9sbGJh
ckNvbnRyb2xTaXplIDogdWludDhfdCB7CisgICAgUmVndWxhciwKKyAgICBTbWFsbAogfTsKIAog
ZW51bSBjbGFzcyBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA6IHVpbnQ4X3QgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2NDk0YzlmZTUyNGZjYWU3NzllYzBiOGQ2
YmI0NzA1NTkwYTM1NDNhLi44ZGU0NDA0ZjU1ODJiMzc3YjkxOWRlOGFjYTEyNjg4NjNmYzc0ZGU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtMTAzLDcgKzEwMyw3
IEBAIGJvb2wgU2Nyb2xsVmlldzo6c2V0SGFzU2Nyb2xsYmFySW50ZXJuYWwoUmVmUHRyPFNjcm9s
bGJhcj4mIHNjcm9sbGJhciwgU2Nyb2xsYmFyCiAKIFJlZjxTY3JvbGxiYXI+IFNjcm9sbFZpZXc6
OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKLSAg
ICByZXR1cm4gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIoKnRoaXMsIG9yaWVudGF0
aW9uLCBSZWd1bGFyU2Nyb2xsYmFyKTsKKyAgICByZXR1cm4gU2Nyb2xsYmFyOjpjcmVhdGVOYXRp
dmVTY3JvbGxiYXIoKnRoaXMsIG9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVn
dWxhcik7CiB9CiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFyTW9kZXMoU2Nyb2xsYmFy
TW9kZSBob3Jpem9udGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbE1vZGUsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaAppbmRleCBiMjkxZDdhMGQ0OTUzOGFhOGRh
ZmMxZjUzNTQyOWExNzdiZmZhZjQxLi41YzE2ZjlhMTg5M2Y1MTgyZTc3YWExNmQ0YmNhYmJjOWI0
Mjc5MTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVt
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmgKQEAgLTUx
LDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwYWludChTY3JvbGxiYXImLCBH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiAvKmRhbWFnZVJlY3QqLykgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIFNjcm9sbGJhclBhcnQgaGl0VGVzdChTY3JvbGxiYXImLCBj
b25zdCBJbnRQb2ludCYpIHsgcmV0dXJuIE5vUGFydDsgfQogICAgIAotICAgIHZpcnR1YWwgaW50
IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxi
YXIsIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4
cGFuZGVkKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNz
KFNjcm9sbGJhckNvbnRyb2xTaXplID0gU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFNj
cm9sbGJhckV4cGFuc2lvblN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVk
KSB7IHJldHVybiAwOyB9CiAKICAgICB2aXJ0dWFsIFNjcm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQg
YnV0dG9uc1BsYWNlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFNjcm9sbGJhckJ1dHRvbnNTaW5nbGU7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbGJhclRo
ZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsYmFyVGhlbWVJT1Mu
aAppbmRleCAzYjJhOTA4MTBmN2ZhNjMzMTg2MTQyMzI4ZWJkODI5MGNjZmQ1ODY2Li43OGMzZmFk
NDcxN2Q4MzgzZThhYzgzNDkyOWFjYjkxNjEwNjhmY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsYmFyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsYmFyVGhlbWVJT1MuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJs
aWM6CiAKICAgICBib29sIHBhaW50KFNjcm9sbGJhciYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEludFJlY3QmIGRhbWFnZVJlY3QpIG92ZXJyaWRlOwogCi0gICAgaW50IHNjcm9sbGJhclRoaWNr
bmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIsIFNjcm9sbGJhckV4
cGFuc2lvblN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlk
ZTsKKyAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gU2Ny
b2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlID0gU2Ny
b2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlkZTsKICAgICAKICAgICBib29s
IHN1cHBvcnRzQ29udHJvbFRpbnRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVN
YWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCmlu
ZGV4IGVlZTkzZTJjZmZkNDcxOWFmOWNmYmJmZjNlZTMxMGY2ZWQxZjI1OTUuLmI4Mzk4Yzk5MDk2
MjA4YjE0YzNkOTJiYzU5ZjM2MGIwODA1Y2VmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIHBhaW50KFNjcm9sbGJhciYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJl
Y3QmIGRhbWFnZVJlY3QpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRTY3JvbGxDb3JuZXIoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgY29ybmVyUmVjdCkgb3ZlcnJpZGU7CiAKLSAg
ICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxhclNj
cm9sbGJhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0
ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOworICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xs
YmFyQ29udHJvbFNpemUgPSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhciwgU2Nyb2xsYmFy
RXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJy
aWRlOwogICAgIAogICAgIGJvb2wgc3VwcG9ydHNDb250cm9sVGludHMoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCB1c2VzT3ZlcmxheVNjcm9sbGJhcnMoKSBjb25z
dCAgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsYmFyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFy
VGhlbWVNYWMubW0KaW5kZXggN2ViZTc1ZDZhNzZkOTkxMDAyNTBhZTc3OGJlZjI4YjBmNDA2YTc5
NS4uMzIyMjAxMzAzODljNGNkOTFhMzViMGU0Zjk1MzkwNDZkYjJiNTczNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtMTQ0LDkg
KzE0NCw5IEBAIHN0YXRpYyBTY3JvbGxiYXJCdXR0b25zUGxhY2VtZW50IGdCdXR0b25QbGFjZW1l
bnQgPSBTY3JvbGxiYXJCdXR0b25zRG91YmxlRW5kOwogc3RhdGljIE5TQ29udHJvbFNpemUgc2Ny
b2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29u
dHJvbFNpemUpCiB7CiAgICAgc3dpdGNoIChjb250cm9sU2l6ZSkgewotICAgIGNhc2UgUmVndWxh
clNjcm9sbGJhcjoKKyAgICBjYXNlIFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyOgogICAg
ICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7Ci0gICAgY2FzZSBTbWFsbFNjcm9sbGJh
cjoKKyAgICBjYXNlIFNjcm9sbGJhckNvbnRyb2xTaXplOjpTbWFsbDoKICAgICAgICAgcmV0dXJu
IE5TQ29udHJvbFNpemVTbWFsbDsKICAgICB9CiAKQEAgLTI4NSwxMiArMjg1LDIxIEBAIFNjcm9s
bGJhckJ1dHRvbnNQbGFjZW1lbnQgU2Nyb2xsYmFyVGhlbWVNYWM6OmJ1dHRvbnNQbGFjZW1lbnQo
KSBjb25zdAogICAgIHJldHVybiBnQnV0dG9uUGxhY2VtZW50OwogfQogCitpbmxpbmUgY29uc3Rl
eHByIHVuc2lnbmVkIHNjcm9sbGJhclNpemVUb0luZGV4KFNjcm9sbGJhckNvbnRyb2xTaXplIHNj
cm9sbGJhclNpemUpCit7CisgICAgc3dpdGNoIChzY3JvbGxiYXJTaXplKSB7CisgICAgY2FzZSBT
Y3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhcjogcmV0dXJuIDA7CisgICAgY2FzZSBTY3JvbGxi
YXJDb250cm9sU2l6ZTo6U21hbGw6IHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30K
KwogYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6aGFzQnV0dG9ucyhTY3JvbGxiYXImIHNjcm9sbGJh
cikKIHsKICAgICByZXR1cm4gc2Nyb2xsYmFyLmVuYWJsZWQoKSAmJiBidXR0b25zUGxhY2VtZW50
KCkgIT0gU2Nyb2xsYmFyQnV0dG9uc05vbmUKICAgICAgICAgICAgICAmJiAoc2Nyb2xsYmFyLm9y
aWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhcgogICAgICAgICAgICAgID8gc2Nyb2xs
YmFyLndpZHRoKCkKLSAgICAgICAgICAgICA6IHNjcm9sbGJhci5oZWlnaHQoKSkgPj0gMiAqIChj
UmVhbEJ1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV0gLSBjQnV0dG9uSGl0SW5z
ZXRbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldKTsKKyAgICAgICAgICAgICA6IHNjcm9sbGJhci5o
ZWlnaHQoKSkgPj0gMiAqIChjUmVhbEJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChz
Y3JvbGxiYXIuY29udHJvbFNpemUoKSldIC0gY0J1dHRvbkhpdEluc2V0W3Njcm9sbGJhclNpemVU
b0luZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKV0pOwogfQogCiBib29sIFNjcm9sbGJhclRo
ZW1lTWFjOjpoYXNUaHVtYihTY3JvbGxiYXImIHNjcm9sbGJhcikKQEAgLTMxMiwxMyArMzIxLDEz
IEBAIHN0YXRpYyBJbnRSZWN0IGJ1dHRvblJlcGFpbnRSZWN0KGNvbnN0IEludFJlY3QmIGJ1dHRv
blJlY3QsIFNjcm9sbGJhck9yaWVudGF0aW9uCiAKICAgICBJbnRSZWN0IHBhaW50UmVjdChidXR0
b25SZWN0KTsKICAgICBpZiAob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgewot
ICAgICAgICBwYWludFJlY3Quc2V0V2lkdGgoY1JlYWxCdXR0b25MZW5ndGhbY29udHJvbFNpemVd
KTsKKyAgICAgICAgcGFpbnRSZWN0LnNldFdpZHRoKGNSZWFsQnV0dG9uTGVuZ3RoW3Njcm9sbGJh
clNpemVUb0luZGV4KGNvbnRyb2xTaXplKV0pOwogICAgICAgICBpZiAoIXN0YXJ0KQotICAgICAg
ICAgICAgcGFpbnRSZWN0LnNldFgoYnV0dG9uUmVjdC54KCkgLSAoY1JlYWxCdXR0b25MZW5ndGhb
Y29udHJvbFNpemVdIC0gYnV0dG9uUmVjdC53aWR0aCgpKSk7CisgICAgICAgICAgICBwYWludFJl
Y3Quc2V0WChidXR0b25SZWN0LngoKSAtIChjUmVhbEJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXpl
VG9JbmRleChjb250cm9sU2l6ZSldIC0gYnV0dG9uUmVjdC53aWR0aCgpKSk7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgcGFpbnRSZWN0LnNldEhlaWdodChjUmVhbEJ1dHRvbkxlbmd0aFtjb250cm9s
U2l6ZV0pOworICAgICAgICBwYWludFJlY3Quc2V0SGVpZ2h0KGNSZWFsQnV0dG9uTGVuZ3RoW3Nj
cm9sbGJhclNpemVUb0luZGV4KGNvbnRyb2xTaXplKV0pOwogICAgICAgICBpZiAoIXN0YXJ0KQot
ICAgICAgICAgICAgcGFpbnRSZWN0LnNldFkoYnV0dG9uUmVjdC55KCkgLSAoY1JlYWxCdXR0b25M
ZW5ndGhbY29udHJvbFNpemVdIC0gYnV0dG9uUmVjdC5oZWlnaHQoKSkpOworICAgICAgICAgICAg
cGFpbnRSZWN0LnNldFkoYnV0dG9uUmVjdC55KCkgLSAoY1JlYWxCdXR0b25MZW5ndGhbc2Nyb2xs
YmFyU2l6ZVRvSW5kZXgoY29udHJvbFNpemUpXSAtIGJ1dHRvblJlY3QuaGVpZ2h0KCkpKTsKICAg
ICB9CiAKICAgICByZXR1cm4gcGFpbnRSZWN0OwpAQCAtMzM4LDE5ICszNDcsMTkgQEAgSW50UmVj
dCBTY3JvbGxiYXJUaGVtZU1hYzo6YmFja0J1dHRvblJlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIs
IFNjcm9sbGJhclBhcnQgcGEKICAgICBib29sIG91dGVyQnV0dG9uID0gcGFydCA9PSBCYWNrQnV0
dG9uU3RhcnRQYXJ0ICYmIChidXR0b25zUGxhY2VtZW50KCkgPT0gU2Nyb2xsYmFyQnV0dG9uc0Rv
dWJsZVN0YXJ0IHx8IGJ1dHRvbnNQbGFjZW1lbnQoKSA9PSBTY3JvbGxiYXJCdXR0b25zRG91Ymxl
Qm90aCk7CiAgICAgaWYgKG91dGVyQnV0dG9uKSB7CiAgICAgICAgIGlmIChzY3JvbGxiYXIub3Jp
ZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICAgICAgcmVzdWx0ID0g
SW50UmVjdChzY3JvbGxiYXIueCgpLCBzY3JvbGxiYXIueSgpLCBjT3V0ZXJCdXR0b25MZW5ndGhb
c2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldICsgKHBhaW50aW5nID8gY091dGVyQnV0dG9uT3Zlcmxh
cCA6IDApLCB0aGlja25lc3MpOworICAgICAgICAgICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxi
YXIueCgpLCBzY3JvbGxiYXIueSgpLCBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRv
SW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXSArIChwYWludGluZyA/IGNPdXRlckJ1dHRv
bk92ZXJsYXAgOiAwKSwgdGhpY2tuZXNzKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVz
dWx0ID0gSW50UmVjdChzY3JvbGxiYXIueCgpLCBzY3JvbGxiYXIueSgpLCB0aGlja25lc3MsIGNP
dXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV0gKyAocGFpbnRpbmcgPyBj
T3V0ZXJCdXR0b25PdmVybGFwIDogMCkpOworICAgICAgICAgICAgcmVzdWx0ID0gSW50UmVjdChz
Y3JvbGxiYXIueCgpLCBzY3JvbGxiYXIueSgpLCB0aGlja25lc3MsIGNPdXRlckJ1dHRvbkxlbmd0
aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldICsgKHBhaW50
aW5nID8gY091dGVyQnV0dG9uT3ZlcmxhcCA6IDApKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAgICAgCiAgICAgLy8gT3VyIHJlcGFpbnQgcmVjdCBpcyBzbGlnaHRseSBsYXJnZXIs
IHNpbmNlIHdlIGFyZSBhIGJ1dHRvbiB0aGF0IGlzIGFkamFjZW50IHRvIHRoZSB0cmFjay4KICAg
ICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgewot
ICAgICAgICBpbnQgc3RhcnQgPSBwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQgPyBzY3JvbGxi
YXIueCgpIDogc2Nyb2xsYmFyLngoKSArIHNjcm9sbGJhci53aWR0aCgpIC0gY091dGVyQnV0dG9u
TGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXSAtIGNCdXR0b25MZW5ndGhbc2Nyb2xsYmFy
LmNvbnRyb2xTaXplKCldOwotICAgICAgICByZXN1bHQgPSBJbnRSZWN0KHN0YXJ0LCBzY3JvbGxi
YXIueSgpLCBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXSwgdGhpY2tuZXNz
KTsKKyAgICAgICAgaW50IHN0YXJ0ID0gcGFydCA9PSBCYWNrQnV0dG9uU3RhcnRQYXJ0ID8gc2Ny
b2xsYmFyLngoKSA6IHNjcm9sbGJhci54KCkgKyBzY3JvbGxiYXIud2lkdGgoKSAtIGNPdXRlckJ1
dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSld
IC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNp
emUoKSldOworICAgICAgICByZXN1bHQgPSBJbnRSZWN0KHN0YXJ0LCBzY3JvbGxiYXIueSgpLCBj
QnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgp
KV0sIHRoaWNrbmVzcyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaW50IHN0YXJ0ID0gcGFydCA9
PSBCYWNrQnV0dG9uU3RhcnRQYXJ0ID8gc2Nyb2xsYmFyLnkoKSA6IHNjcm9sbGJhci55KCkgKyBz
Y3JvbGxiYXIuaGVpZ2h0KCkgLSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xT
aXplKCldIC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV07Ci0gICAgICAg
IHJlc3VsdCA9IEludFJlY3Qoc2Nyb2xsYmFyLngoKSwgc3RhcnQsIHRoaWNrbmVzcywgY0J1dHRv
bkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV0pOworICAgICAgICBpbnQgc3RhcnQgPSBw
YXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQgPyBzY3JvbGxiYXIueSgpIDogc2Nyb2xsYmFyLnko
KSArIHNjcm9sbGJhci5oZWlnaHQoKSAtIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXpl
VG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldIC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxi
YXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldOworICAgICAgICByZXN1bHQg
PSBJbnRSZWN0KHNjcm9sbGJhci54KCksIHN0YXJ0LCB0aGlja25lc3MsIGNCdXR0b25MZW5ndGhb
c2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXSk7CiAgICAgfQog
ICAgIAogICAgIGlmIChwYWludGluZykKQEAgLTM2OSw4ICszNzgsOCBAQCBJbnRSZWN0IFNjcm9s
bGJhclRoZW1lTWFjOjpmb3J3YXJkQnV0dG9uUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgU2Ny
b2xsYmFyUGFydAogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKICAgICBpbnQgdGhp
Y2tuZXNzID0gc2Nyb2xsYmFyVGhpY2tuZXNzKHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKTsKLSAg
ICBpbnQgb3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNv
bnRyb2xTaXplKCldOwotICAgIGludCBidXR0b25MZW5ndGggPSBjQnV0dG9uTGVuZ3RoW3Njcm9s
bGJhci5jb250cm9sU2l6ZSgpXTsKKyAgICBpbnQgb3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0ZXJC
dXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkp
XTsKKyAgICBpbnQgYnV0dG9uTGVuZ3RoID0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9J
bmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldOwogICAgIAogICAgIGJvb2wgb3V0ZXJCdXR0
b24gPSBwYXJ0ID09IEZvcndhcmRCdXR0b25FbmRQYXJ0ICYmIChidXR0b25zUGxhY2VtZW50KCkg
PT0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZUVuZCB8fCBidXR0b25zUGxhY2VtZW50KCkgPT0gU2Ny
b2xsYmFyQnV0dG9uc0RvdWJsZUJvdGgpOwogICAgIGlmIChvdXRlckJ1dHRvbikgewpAQCAtNDA3
LDggKzQxNiw4IEBAIEludFJlY3QgU2Nyb2xsYmFyVGhlbWVNYWM6OnRyYWNrUmVjdChTY3JvbGxi
YXImIHNjcm9sbGJhciwgYm9vbCBwYWludGluZykKICAgICBpbnQgdGhpY2tuZXNzID0gc2Nyb2xs
YmFyVGhpY2tuZXNzKHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKTsKICAgICBpbnQgc3RhcnRXaWR0
aCA9IDA7CiAgICAgaW50IGVuZFdpZHRoID0gMDsKLSAgICBpbnQgb3V0ZXJCdXR0b25MZW5ndGgg
PSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldOwotICAgIGludCBi
dXR0b25MZW5ndGggPSBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXTsKKyAg
ICBpbnQgb3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6
ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXTsKKyAgICBpbnQgYnV0dG9uTGVuZ3Ro
ID0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNp
emUoKSldOwogICAgIGludCBkb3VibGVCdXR0b25MZW5ndGggPSBvdXRlckJ1dHRvbkxlbmd0aCAr
IGJ1dHRvbkxlbmd0aDsKICAgICBzd2l0Y2ggKGJ1dHRvbnNQbGFjZW1lbnQoKSkgewogICAgICAg
ICBjYXNlIFNjcm9sbGJhckJ1dHRvbnNTaW5nbGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAKaW5kZXggNjBjYWZmZjU0MWJlYjc5
NjkwMzgyZmZjZTA3NWZhOTU5MjZlMzdmZS4uNzgxNTkwZTY4ZDZjM2NkODAwOTNmOGZkNjc5MTAw
YzE2OGU4NDJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3Jv
bGxiYXJUaGVtZU1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Ny
b2xsYmFyVGhlbWVNb2NrLmNwcApAQCAtNDEsNyArNDEsNyBAQCBJbnRSZWN0IFNjcm9sbGJhclRo
ZW1lTW9jazo6dHJhY2tSZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBib29sKQogCiBpbnQgU2Ny
b2xsYmFyVGhlbWVNb2NrOjpzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUg
Y29udHJvbFNpemUsIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlKQogewotICAgIHJldHVybiBjU2Ny
b2xsYmFyVGhpY2tuZXNzW2NvbnRyb2xTaXplXTsKKyAgICByZXR1cm4gY1Njcm9sbGJhclRoaWNr
bmVzc1tzdGF0aWNfY2FzdDx1aW50OF90Pihjb250cm9sU2l6ZSldOwogfQogCiB2b2lkIFNjcm9s
bGJhclRoZW1lTW9jazo6cGFpbnRUcmFja0JhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgdHJhY2tSZWN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmgKaW5k
ZXggZjA2NGUyZTU3NDM3MjM2ZTFjMDZjZWRjZTdjOWFjYjIxZTBhNzE4ZS4uMmUwYzBiZDJhNzgw
MWIzMTBlMDIyMGU4ZjAzODI1NDMxMmM5MDA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIC8vIFNjcm9sbGJhciB0aGVtZSB1c2VkIGluIGltYWdlIHNuYXBzaG90
cywgdG8gZWxpbWluYXRlIGFwcGVhcmFuY2UgZGlmZmVyZW5jZXMgYmV0d2VlbiBwbGF0Zm9ybXMu
CiBjbGFzcyBTY3JvbGxiYXJUaGVtZU1vY2sgOiBwdWJsaWMgU2Nyb2xsYmFyVGhlbWVDb21wb3Np
dGUgewogcHVibGljOgotICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJv
bFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9s
bGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CisgICAgaW50IHNjcm9sbGJh
clRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFNjcm9sbGJhckNvbnRyb2xTaXplOjpS
ZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRl
OjpFeHBhbmRlZCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBib29sIGhhc0J1dHRvbnMo
U2Nyb2xsYmFyJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3BsYXlzdGF0aW9uL1Njcm9sbGJhclRoZW1lUGxheVN0YXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3BsYXlzdGF0aW9uL1Njcm9sbGJhclRoZW1lUGxh
eVN0YXRpb24uaAppbmRleCAwNDM2YjlmY2RmOTc4ZTA4OGEwMjEwYjA3MDQwOGFkNzkyZTA1YmQx
Li5jNjcxMTFiYjBmMTlhMDE0NjhiMTRmODgwMjI4Yjg0NjI0ZDI4NzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wbGF5c3RhdGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcGxheXN0YXRpb24vU2Nyb2xsYmFy
VGhlbWVQbGF5U3RhdGlvbi5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBTY3JvbGxi
YXJUaGVtZVBsYXlTdGF0aW9uKCkgPSBkZWZhdWx0OwogICAgIHZpcnR1YWwgflNjcm9sbGJhclRo
ZW1lUGxheVN0YXRpb24oKSA9IGRlZmF1bHQ7CiAKLSAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNz
KFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxhclNjcm9sbGJhciwgU2Nyb2xsYmFyRXhwYW5z
aW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOwor
ICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBTY3JvbGxi
YXJDb250cm9sU2l6ZTo6UmVndWxhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxi
YXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYXNCdXR0
b25zKFNjcm9sbGJhciYpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFyJikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Nyb2xs
YmFyVGhlbWVXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVt
ZVdpbi5oCmluZGV4IDA1NWU4ZWY2Y2Y5MTEzYzZjMDk1MDAxOTNiMjc5ZjY3Y2JiOWI3Y2QuLjk2
NmM2ODRkZDMyMTJmNmEzYTA3MGJjYzQ0MzJmOTNiNWEwYWE2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVtZVdpbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVtZVdpbi5oCkBAIC0zNSw3ICszNSw3IEBA
IHB1YmxpYzoKICAgICBTY3JvbGxiYXJUaGVtZVdpbigpOwogICAgIHZpcnR1YWwgflNjcm9sbGJh
clRoZW1lV2luKCk7CiAKLSAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRy
b2xTaXplID0gUmVndWxhclNjcm9sbGJhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3Jv
bGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOworICAgIGludCBzY3JvbGxi
YXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6
UmVndWxhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0
ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCB0aGVtZUNoYW5nZWQoKSBvdmVycmlk
ZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDIz
ZmM5ZWMxNDA4MDcwMjM5ZmY3NmU3ZmM1NWNiOTMxMzFmMTVjNjYuLjk3NGU4Njk3MGQ3MzY4MTA3
NDM5YjRlYTUxNGI5NzJjNDZjODI2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcApAQCAtMzQ3Nyw3ICszNDc3LDcgQEAgUmVmPFNjcm9sbGJhcj4gUmVuZGVyTGF5
ZXI6OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKICAg
ICBpZiAoaGFzQ3VzdG9tU2Nyb2xsYmFyU3R5bGUpCiAgICAgICAgIHdpZGdldCA9IFJlbmRlclNj
cm9sbGJhcjo6Y3JlYXRlQ3VzdG9tU2Nyb2xsYmFyKCp0aGlzLCBvcmllbnRhdGlvbiwgZG93bmNh
c3Q8UmVuZGVyQm94PihhY3R1YWxSZW5kZXJlcikuZWxlbWVudCgpKTsKICAgICBlbHNlIHsKLSAg
ICAgICAgd2lkZ2V0ID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIoKnRoaXMsIG9y
aWVudGF0aW9uLCBSZWd1bGFyU2Nyb2xsYmFyKTsKKyAgICAgICAgd2lkZ2V0ID0gU2Nyb2xsYmFy
OjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIoKnRoaXMsIG9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250
cm9sU2l6ZTo6UmVndWxhcik7CiAgICAgICAgIGRpZEFkZFNjcm9sbGJhcih3aWRnZXQuZ2V0KCks
IG9yaWVudGF0aW9uKTsKICAgICAgICAgaWYgKHBhZ2UoKS5pc01vbml0b3JpbmdXaGVlbEV2ZW50
cygpKQogICAgICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0
b3IocGFnZSgpLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKaW5kZXggNWUzNmQxYTc2Mjg5YTFkZjdiMGQyYTQz
ZjI1NjU3NDI4NTNhMzZkNi4uYWIxN2FlODE3NzFkODdhOGZhMThmYzQyN2Q0YzcwY2FkYzBkNzQ2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKQEAg
LTQyLDcgKzQyLDcgQEAgUmVmPFNjcm9sbGJhcj4gUmVuZGVyU2Nyb2xsYmFyOjpjcmVhdGVDdXN0
b21TY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGUKIH0KIAogUmVuZGVyU2Nyb2xs
YmFyOjpSZW5kZXJTY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBTY3Jv
bGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRWxlbWVudCogb3duZXJFbGVtZW50LCBGcmFt
ZSogb3duaW5nRnJhbWUpCi0gICAgOiBTY3JvbGxiYXIoc2Nyb2xsYWJsZUFyZWEsIG9yaWVudGF0
aW9uLCBSZWd1bGFyU2Nyb2xsYmFyLCBSZW5kZXJTY3JvbGxiYXJUaGVtZTo6cmVuZGVyU2Nyb2xs
YmFyVGhlbWUoKSwgdHJ1ZSkKKyAgICA6IFNjcm9sbGJhcihzY3JvbGxhYmxlQXJlYSwgb3JpZW50
YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyLCBSZW5kZXJTY3JvbGxiYXJUaGVt
ZTo6cmVuZGVyU2Nyb2xsYmFyVGhlbWUoKSwgdHJ1ZSkKICAgICAsIG1fb3duZXJFbGVtZW50KG93
bmVyRWxlbWVudCkKICAgICAsIG1fb3duaW5nRnJhbWUob3duaW5nRnJhbWUpCiB7CkBAIC0yNjcs
NyArMjY3LDcgQEAgdm9pZCBSZW5kZXJTY3JvbGxiYXI6OnBhaW50UGFydChHcmFwaGljc0NvbnRl
eHQmIGdyYXBoaWNzQ29udGV4dCwgU2Nyb2xsYmFyUGFydAogICAgIHBhcnRSZW5kZXJlci0+cGFp
bnRJbnRvUmVjdChncmFwaGljc0NvbnRleHQsIGxvY2F0aW9uKCksIHJlY3QpOwogfQogCi1JbnRS
ZWN0IFJlbmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdChTY3JvbGxiYXJQYXJ0IHBhcnRUeXBlKQor
SW50UmVjdCBSZW5kZXJTY3JvbGxiYXI6OmJ1dHRvblJlY3QoU2Nyb2xsYmFyUGFydCBwYXJ0VHlw
ZSkgY29uc3QKIHsKICAgICBSZW5kZXJTY3JvbGxiYXJQYXJ0KiBwYXJ0UmVuZGVyZXIgPSBtX3Bh
cnRzLmdldChwYXJ0VHlwZSk7CiAgICAgaWYgKCFwYXJ0UmVuZGVyZXIpCkBAIC0yOTksNyArMjk5
LDcgQEAgSW50UmVjdCBSZW5kZXJTY3JvbGxiYXI6OmJ1dHRvblJlY3QoU2Nyb2xsYmFyUGFydCBw
YXJ0VHlwZSkKICAgICAgICAgICAgICAgICAgICBpc0hvcml6b250YWwgPyBoZWlnaHQoKSA6IHBp
eGVsU25hcHBlZEludFNpemUuaGVpZ2h0KCkpOwogfQogCi1JbnRSZWN0IFJlbmRlclNjcm9sbGJh
cjo6dHJhY2tSZWN0KGludCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0aCkKK0ludFJlY3QgUmVu
ZGVyU2Nyb2xsYmFyOjp0cmFja1JlY3QoaW50IHN0YXJ0TGVuZ3RoLCBpbnQgZW5kTGVuZ3RoKSBj
b25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnQgPSBtX3BhcnRzLmdldChUcmFj
a0JHUGFydCk7CiAgICAgaWYgKHBhcnQpCkBAIC0zMjMsNyArMzIzLDcgQEAgSW50UmVjdCBSZW5k
ZXJTY3JvbGxiYXI6OnRyYWNrUmVjdChpbnQgc3RhcnRMZW5ndGgsIGludCBlbmRMZW5ndGgpCiAg
ICAgcmV0dXJuIEludFJlY3QoeCgpLCB5KCkgKyBzdGFydExlbmd0aCwgd2lkdGgoKSwgaGVpZ2h0
KCkgLSB0b3RhbExlbmd0aCk7CiB9CiAKLUludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjp0cmFja1Bp
ZWNlUmVjdFdpdGhNYXJnaW5zKFNjcm9sbGJhclBhcnQgcGFydFR5cGUsIGNvbnN0IEludFJlY3Qm
IG9sZFJlY3QpCitJbnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6dHJhY2tQaWVjZVJlY3RXaXRoTWFy
Z2lucyhTY3JvbGxiYXJQYXJ0IHBhcnRUeXBlLCBjb25zdCBJbnRSZWN0JiBvbGRSZWN0KSBjb25z
dAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnRSZW5kZXJlciA9IG1fcGFydHMuZ2V0
KHBhcnRUeXBlKTsKICAgICBpZiAoIXBhcnRSZW5kZXJlcikKQEAgLTM0Miw3ICszNDIsNyBAQCBJ
bnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6dHJhY2tQaWVjZVJlY3RXaXRoTWFyZ2lucyhTY3JvbGxi
YXJQYXJ0IHBhcnRUeXBlLCBjb25zdAogICAgIHJldHVybiByZWN0OwogfQogCi1pbnQgUmVuZGVy
U2Nyb2xsYmFyOjptaW5pbXVtVGh1bWJMZW5ndGgoKQoraW50IFJlbmRlclNjcm9sbGJhcjo6bWlu
aW11bVRodW1iTGVuZ3RoKCkgY29uc3QKIHsKICAgICBSZW5kZXJTY3JvbGxiYXJQYXJ0KiBwYXJ0
UmVuZGVyZXIgPSBtX3BhcnRzLmdldChUaHVtYlBhcnQpOwogICAgIGlmICghcGFydFJlbmRlcmVy
KQpAQCAtMzUxLDcgKzM1MSw3IEBAIGludCBSZW5kZXJTY3JvbGxiYXI6Om1pbmltdW1UaHVtYkxl
bmd0aCgpCiAgICAgcmV0dXJuIG9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/
IHBhcnRSZW5kZXJlci0+d2lkdGgoKSA6IHBhcnRSZW5kZXJlci0+aGVpZ2h0KCk7CiB9CiAKLWZs
b2F0IFJlbmRlclNjcm9sbGJhcjo6b3BhY2l0eSgpCitmbG9hdCBSZW5kZXJTY3JvbGxiYXI6Om9w
YWNpdHkoKSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnRSZW5kZXJlciA9
IG1fcGFydHMuZ2V0KFNjcm9sbGJhckJHUGFydCk7CiAgICAgaWYgKCFwYXJ0UmVuZGVyZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmgKaW5kZXggYmExNzIzNWIx
N2M0YmY1NTUxM2I0OGFiMTRhNDFmYWNjNzMwOTdmNi4uYmYxNjI0NTg4M2IwNjJiZGQyY2QyNGZj
YWM3YWExYTUyMWFiOGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNjcm9sbGJhci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3Jv
bGxiYXIuaApAQCAtNDgsMTMgKzQ4LDEzIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFpbnRQYXJ0
KEdyYXBoaWNzQ29udGV4dCYsIFNjcm9sbGJhclBhcnQsIGNvbnN0IEludFJlY3QmKTsKIAotICAg
IEludFJlY3QgYnV0dG9uUmVjdChTY3JvbGxiYXJQYXJ0KTsKLSAgICBJbnRSZWN0IHRyYWNrUmVj
dChpbnQgc3RhcnRMZW5ndGgsIGludCBlbmRMZW5ndGgpOwotICAgIEludFJlY3QgdHJhY2tQaWVj
ZVJlY3RXaXRoTWFyZ2lucyhTY3JvbGxiYXJQYXJ0LCBjb25zdCBJbnRSZWN0Jik7CisgICAgSW50
UmVjdCBidXR0b25SZWN0KFNjcm9sbGJhclBhcnQpIGNvbnN0OworICAgIEludFJlY3QgdHJhY2tS
ZWN0KGludCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0aCkgY29uc3Q7CisgICAgSW50UmVjdCB0
cmFja1BpZWNlUmVjdFdpdGhNYXJnaW5zKFNjcm9sbGJhclBhcnQsIGNvbnN0IEludFJlY3QmKSBj
b25zdDsKIAotICAgIGludCBtaW5pbXVtVGh1bWJMZW5ndGgoKTsKKyAgICBpbnQgbWluaW11bVRo
dW1iTGVuZ3RoKCkgY29uc3Q7CiAKLSAgICBmbG9hdCBvcGFjaXR5KCk7CisgICAgZmxvYXQgb3Bh
Y2l0eSgpIGNvbnN0OwogICAgIAogICAgIGJvb2wgaXNIaWRkZW5CeVN0eWxlKCkgY29uc3QgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggZWI3YjkxMzIy
N2I2NWM2MjlmYjhjM2IyYjdjNWM3NmVlNmY4N2E3NS4uYmM2ZWMzZjE5ZjdlNWU4MzY2MDA0ZmQz
ZjlhZWE5ODgwNDI3NmNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgK
QEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHBvcHVwT3B0aW9u
U3VwcG9ydHNUZXh0SW5kZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplIHBvcHVwTWVudVNpemUoY29uc3QgUmVuZGVy
U3R5bGUmLCBJbnRSZWN0JikgY29uc3QgeyByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVu
dVNpemVOb3JtYWw7IH0KIAotICAgIHZpcnR1YWwgU2Nyb2xsYmFyQ29udHJvbFNpemUgc2Nyb2xs
YmFyQ29udHJvbFNpemVGb3JQYXJ0KENvbnRyb2xQYXJ0KSB7IHJldHVybiBSZWd1bGFyU2Nyb2xs
YmFyOyB9CisgICAgdmlydHVhbCBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9s
U2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIHsgcmV0dXJuIFNjcm9sbGJhckNvbnRyb2xTaXplOjpS
ZWd1bGFyOyB9CiAKICAgICAvLyBSZXR1cm5zIHRoZSByZXBlYXQgaW50ZXJ2YWwgb2YgdGhlIGFu
aW1hdGlvbiBmb3IgdGhlIHByb2dyZXNzIGJhci4KICAgICB2aXJ0dWFsIFNlY29uZHMgYW5pbWF0
aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9ncmVzcyYpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCAzYTUyM2FiMjNl
MGQ3YjY5NDU0MDY3YWQ4MzZlM2JlNjM3NjUwOWE3Li5kOWI4MDc0Yjg2YTljZTA1YjU2N2M1Zjg4
MzUyNmE1MDg0MDUzMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMuaApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1Jp
bmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogICAg
IENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAKLSAgICBTY3JvbGxiYXJDb250cm9sU2l6ZSBz
Y3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJuIFNt
YWxsU2Nyb2xsYmFyOyB9CisgICAgU2Nyb2xsYmFyQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29udHJv
bFNpemVGb3JQYXJ0KENvbnRyb2xQYXJ0KSBmaW5hbCB7IHJldHVybiBTY3JvbGxiYXJDb250cm9s
U2l6ZTo6U21hbGw7IH0KIAogICAgIGludCBtaW5pbXVtTWVudUxpc3RTaXplKGNvbnN0IFJlbmRl
clN0eWxlJikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDIwN2YyYTg0YmNiNWFkMzk5ZTQzYjEwMzJk
ZDkyMmYyYTcwMzE3MTcuLmU3OGE1YjQ2YmYzMGUwNmM5ZjEzZmU3MGI2M2I5YTAzYWI0ZDRlOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQpAQCAtMTI4Niw3ICsxMjg2LDcgQEAgY29uc3QgUGx1Z2luVmlldyogUERGUGx1Z2luOjpw
bHVnaW5WaWV3KCkgY29uc3QKIAogUmVmPFNjcm9sbGJhcj4gUERGUGx1Z2luOjpjcmVhdGVTY3Jv
bGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAgYXV0byB3aWRn
ZXQgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhpcywgb3JpZW50YXRpb24s
IFJlZ3VsYXJTY3JvbGxiYXIpOworICAgIGF1dG8gd2lkZ2V0ID0gU2Nyb2xsYmFyOjpjcmVhdGVO
YXRpdmVTY3JvbGxiYXIoKnRoaXMsIG9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250cm9sU2l6ZTo6
UmVndWxhcik7CiAgICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpIHsK
ICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIgPSBhZG9wdE5TKFtbV0tQREZQbHVn
aW5TY3JvbGxiYXJMYXllciBhbGxvY10gaW5pdFdpdGhQREZQbHVnaW46dGhpc10pOwogICAgICAg
ICBbbV9jb250YWluZXJMYXllciBhZGRTdWJsYXllcjptX2hvcml6b250YWxTY3JvbGxiYXJMYXll
ci5nZXQoKV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404548</attachid>
            <date>2020-07-17 01:02:26 -0700</date>
            <delta_ts>2020-07-17 03:57:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199325-20200717090224.patch</filename>
            <type>text/plain</type>
            <size>25960</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjczNTZjZGY4Njg1MjE1
MTc5YjBjNTA1ZmYyNzhjYWY1ZTA5NWEyYi4uZjJjY2Q1NzhkMDYzMzNkYTk2OGJhMGRkMjVjNmE3
MGI4NGI5MjIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA3LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
YmFyQ29udHJvbFNpemUgYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KKworICAgICAgICBNYWtlIFNjcm9sbGJhckNvbnRyb2xTaXplIGFuIGVudW0gY2xhc3Ms
IGFuZCBtYWtlIHNvbWUgUmVuZGVyU2Nyb2xsYmFyIG1ldGhvZHMgY29uc3QuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyVGhlbWU6OnNjcm9sbGJhclRoaWNrbmVzcyk6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L1Njcm9sbGJhclRoZW1lSU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyU2l6ZVRvSW5kZXgpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsYmFyVGhlbWVNYWM6Omhhc0J1dHRvbnMpOgorICAgICAgICAoV2ViQ29yZTo6YnV0
dG9uUmVwYWludFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OmJh
Y2tCdXR0b25SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpmb3J3
YXJkQnV0dG9uUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6dHJh
Y2tSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1vY2s6OnNjcm9sbGJhclRoaWNrbmVz
cyk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9wbGF5c3RhdGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpj
YWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TY3JvbGxi
YXJUaGVtZVdpbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNj
cm9sbGJhcjo6UmVuZGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9s
bGJhcjo6YnV0dG9uUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxi
YXI6OnRyYWNrUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXI6
OnRyYWNrUGllY2VSZWN0V2l0aE1hcmdpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2Nyb2xsYmFyOjptaW5pbXVtVGh1bWJMZW5ndGggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU2Nyb2xsYmFyOjpvcGFjaXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTY3JvbGxiYXI6OnRyYWNrUmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTY3JvbGxiYXI6OnRyYWNrUGllY2VSZWN0V2l0aE1hcmdpbnMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjptaW5pbXVtVGh1bWJMZW5ndGgpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjpvcGFjaXR5KTogRGVsZXRl
ZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6c2Ny
b2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaDoKKwogMjAyMC0wNy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIE1ha2UgRG9jdW1lbnRQYXJzZXIuUGFyc2VyU3RhdGUgYW4gZW51bSBjbGFzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAyNmZlYWU1NzI1ZTdlMTBmYzBhY2UwNzlkNDdmZGE3NjkzYmUyMDE5Li5jN2Y3MjVm
ZDZmOWEwOTQ2Yzc3YTMyZGZjODYyNGM0YTQ3NTNlMDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIwLTA3LTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgU2Nyb2xsYmFyQ29udHJvbFNpemUgYW4gZW51bSBjbGFzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzI1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBNYWtlIFNjcm9sbGJhckNvbnRy
b2xTaXplIGFuIGVudW0gY2xhc3MsIGFuZCBtYWtlIHNvbWUgUmVuZGVyU2Nyb2xsYmFyIG1ldGhv
ZHMgY29uc3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpjcmVhdGVTY3JvbGxiYXIpOgorCiAyMDIw
LTA3LTE2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YkF1dGhuXSBBZGQgYSBjb25zb2xlIG1lc3NhZ2U6ICJVc2VyIGdlc3R1cmUgaXMgcmVxdWlyZWQg
dG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxUeXBlcy5oCmluZGV4IDMxN2I2NTJmY2U0Y2I5MzExNWE2ZDNkNDk0Y2U0N2U2ODY3MDI3
ODMuLjc1ZDdhNDRhNzNkYzJhMTU0ZjQyZmExYTBkYmJkM2FlZDZlZjViOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtMTQ4LDkgKzE0OCw5IEBAIGVudW0gU2Nyb2xs
YmFyTW9kZSA6IHVpbnQ4X3QgewogICAgIFNjcm9sbGJhckFsd2F5c09uCiB9OwogCi1lbnVtIFNj
cm9sbGJhckNvbnRyb2xTaXplIDogdWludDhfdCB7Ci0gICAgUmVndWxhclNjcm9sbGJhciwKLSAg
ICBTbWFsbFNjcm9sbGJhcgorZW51bSBjbGFzcyBTY3JvbGxiYXJDb250cm9sU2l6ZSA6IHVpbnQ4
X3QgeworICAgIFJlZ3VsYXIsCisgICAgU21hbGwKIH07CiAKIGVudW0gY2xhc3MgU2Nyb2xsYmFy
RXhwYW5zaW9uU3RhdGUgOiB1aW50OF90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKaW5kZXggNjQ5NGM5ZmU1MjRmY2FlNzc5ZWMwYjhkNmJiNDcwNTU5MGEzNTQzYS4uOGRl
NDQwNGY1NTgyYjM3N2I5MTlkZThhY2ExMjY4ODYzZmM3NGRlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIFNjcm9sbFZpZXc6
OnNldEhhc1Njcm9sbGJhckludGVybmFsKFJlZlB0cjxTY3JvbGxiYXI+JiBzY3JvbGxiYXIsIFNj
cm9sbGJhcgogCiBSZWY8U2Nyb2xsYmFyPiBTY3JvbGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIoU2Ny
b2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAgcmV0dXJuIFNjcm9sbGJhcjo6
Y3JlYXRlTmF0aXZlU2Nyb2xsYmFyKCp0aGlzLCBvcmllbnRhdGlvbiwgUmVndWxhclNjcm9sbGJh
cik7CisgICAgcmV0dXJuIFNjcm9sbGJhcjo6Y3JlYXRlTmF0aXZlU2Nyb2xsYmFyKCp0aGlzLCBv
cmllbnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIpOwogfQogCiB2b2lkIFNj
cm9sbFZpZXc6OnNldFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1vZGUs
IFNjcm9sbGJhck1vZGUgdmVydGljYWxNb2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGJhclRoZW1lLmgKaW5kZXggYjI5MWQ3YTBkNDk1MzhhYThkYWZjMWY1MzU0MjlhMTc3YmZmYWY0
MS4uNWMxNmY5YTE4OTNmNTE4MmU3N2FhMTZkNGJjYWJiYzliNDI3OTE5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnQoU2Nyb2xsYmFyJiwgR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgSW50UmVjdCYgLypkYW1hZ2VSZWN0Ki8pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBTY3JvbGxiYXJQYXJ0IGhpdFRlc3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UG9pbnQmKSB7IHJl
dHVybiBOb1BhcnQ7IH0KICAgICAKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxiYXJUaGlja25lc3Mo
U2Nyb2xsYmFyQ29udHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJFeHBhbnNp
b25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgeyByZXR1cm4gMDsg
fQorICAgIHZpcnR1YWwgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6
ZSA9IFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0
ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgeyByZXR1cm4gMDsgfQogCiAg
ICAgdmlydHVhbCBTY3JvbGxiYXJCdXR0b25zUGxhY2VtZW50IGJ1dHRvbnNQbGFjZW1lbnQoKSBj
b25zdCB7IHJldHVybiBTY3JvbGxiYXJCdXR0b25zU2luZ2xlOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxiYXJUaGVtZUlPUy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbGJhclRoZW1lSU9TLmgKaW5kZXggM2IyYTkwODEwZjdm
YTYzMzE4NjE0MjMyOGViZDgyOTBjY2ZkNTg2Ni4uNzhjM2ZhZDQ3MTdkODM4M2U4YWM4MzQ5Mjlh
Y2I5MTYxMDY4ZmNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Nj
cm9sbGJhclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9s
bGJhclRoZW1lSU9TLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBwYWlu
dChTY3JvbGxiYXImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0
KSBvdmVycmlkZTsKIAotICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJv
bFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9s
bGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CisgICAgaW50IHNjcm9sbGJh
clRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFNjcm9sbGJhckNvbnRyb2xTaXplOjpS
ZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRl
OjpFeHBhbmRlZCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgYm9vbCBzdXBwb3J0c0NvbnRyb2xUaW50
cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAppbmRleCBlZWU5M2UyY2ZmZDQ3MTlh
ZjljZmJiZmYzZWUzMTBmNmVkMWYyNTk1Li5iODM5OGM5OTA5NjIwOGIxNGMzZDkyYmM1OWYzNjBi
MDgwNWNlZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
YmFyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFy
VGhlbWVNYWMuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYWludChTY3Jv
bGxiYXImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KSBvdmVy
cmlkZTsKICAgICB2b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEludFJlY3QmIGNvcm5lclJlY3QpIG92ZXJyaWRlOwogCi0gICAgaW50IHNjcm9sbGJhclRoaWNr
bmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIsIFNjcm9sbGJhckV4
cGFuc2lvblN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlk
ZTsKKyAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gU2Ny
b2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlID0gU2Ny
b2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlkZTsKICAgICAKICAgICBib29s
IHN1cHBvcnRzQ29udHJvbFRpbnRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIGJvb2wgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCkgY29uc3QgIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IDdl
YmU3NWQ2YTc2ZDk5MTAwMjUwYWU3NzhiZWYyOGIwZjQwNmE3OTUuLjMyMjIwMTMwMzg5YzRjZDkx
YTM1YjBlNGY5NTM5MDQ2ZGIyYjU3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTE0NCw5ICsxNDQsOSBAQCBzdGF0aWMgU2Ny
b2xsYmFyQnV0dG9uc1BsYWNlbWVudCBnQnV0dG9uUGxhY2VtZW50ID0gU2Nyb2xsYmFyQnV0dG9u
c0RvdWJsZUVuZDsKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplVG9O
U0NvbnRyb2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewogICAgIHN3
aXRjaCAoY29udHJvbFNpemUpIHsKLSAgICBjYXNlIFJlZ3VsYXJTY3JvbGxiYXI6CisgICAgY2Fz
ZSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhcjoKICAgICAgICAgcmV0dXJuIE5TQ29udHJv
bFNpemVSZWd1bGFyOwotICAgIGNhc2UgU21hbGxTY3JvbGxiYXI6CisgICAgY2FzZSBTY3JvbGxi
YXJDb250cm9sU2l6ZTo6U21hbGw6CiAgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7
CiAgICAgfQogCkBAIC0yODUsMTIgKzI4NSwyMSBAQCBTY3JvbGxiYXJCdXR0b25zUGxhY2VtZW50
IFNjcm9sbGJhclRoZW1lTWFjOjpidXR0b25zUGxhY2VtZW50KCkgY29uc3QKICAgICByZXR1cm4g
Z0J1dHRvblBsYWNlbWVudDsKIH0KIAoraW5saW5lIGNvbnN0ZXhwciB1bnNpZ25lZCBzY3JvbGxi
YXJTaXplVG9JbmRleChTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJTaXplKQoreworICAg
IHN3aXRjaCAoc2Nyb2xsYmFyU2l6ZSkgeworICAgIGNhc2UgU2Nyb2xsYmFyQ29udHJvbFNpemU6
OlJlZ3VsYXI6IHJldHVybiAwOworICAgIGNhc2UgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlNtYWxs
OiByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgU2Nyb2xsYmFyVGhl
bWVNYWM6Omhhc0J1dHRvbnMoU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCiB7CiAgICAgcmV0dXJuIHNj
cm9sbGJhci5lbmFibGVkKCkgJiYgYnV0dG9uc1BsYWNlbWVudCgpICE9IFNjcm9sbGJhckJ1dHRv
bnNOb25lCiAgICAgICAgICAgICAgJiYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IEhvcml6
b250YWxTY3JvbGxiYXIKICAgICAgICAgICAgICA/IHNjcm9sbGJhci53aWR0aCgpCi0gICAgICAg
ICAgICAgOiBzY3JvbGxiYXIuaGVpZ2h0KCkpID49IDIgKiAoY1JlYWxCdXR0b25MZW5ndGhbc2Ny
b2xsYmFyLmNvbnRyb2xTaXplKCldIC0gY0J1dHRvbkhpdEluc2V0W3Njcm9sbGJhci5jb250cm9s
U2l6ZSgpXSk7CisgICAgICAgICAgICAgOiBzY3JvbGxiYXIuaGVpZ2h0KCkpID49IDIgKiAoY1Jl
YWxCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXpl
KCkpXSAtIGNCdXR0b25IaXRJbnNldFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29u
dHJvbFNpemUoKSldKTsKIH0KIAogYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6aGFzVGh1bWIoU2Ny
b2xsYmFyJiBzY3JvbGxiYXIpCkBAIC0zMTIsMTMgKzMyMSwxMyBAQCBzdGF0aWMgSW50UmVjdCBi
dXR0b25SZXBhaW50UmVjdChjb25zdCBJbnRSZWN0JiBidXR0b25SZWN0LCBTY3JvbGxiYXJPcmll
bnRhdGlvbgogCiAgICAgSW50UmVjdCBwYWludFJlY3QoYnV0dG9uUmVjdCk7CiAgICAgaWYgKG9y
aWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpIHsKLSAgICAgICAgcGFpbnRSZWN0LnNl
dFdpZHRoKGNSZWFsQnV0dG9uTGVuZ3RoW2NvbnRyb2xTaXplXSk7CisgICAgICAgIHBhaW50UmVj
dC5zZXRXaWR0aChjUmVhbEJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChjb250cm9s
U2l6ZSldKTsKICAgICAgICAgaWYgKCFzdGFydCkKLSAgICAgICAgICAgIHBhaW50UmVjdC5zZXRY
KGJ1dHRvblJlY3QueCgpIC0gKGNSZWFsQnV0dG9uTGVuZ3RoW2NvbnRyb2xTaXplXSAtIGJ1dHRv
blJlY3Qud2lkdGgoKSkpOworICAgICAgICAgICAgcGFpbnRSZWN0LnNldFgoYnV0dG9uUmVjdC54
KCkgLSAoY1JlYWxCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoY29udHJvbFNpemUp
XSAtIGJ1dHRvblJlY3Qud2lkdGgoKSkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHBhaW50UmVj
dC5zZXRIZWlnaHQoY1JlYWxCdXR0b25MZW5ndGhbY29udHJvbFNpemVdKTsKKyAgICAgICAgcGFp
bnRSZWN0LnNldEhlaWdodChjUmVhbEJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChj
b250cm9sU2l6ZSldKTsKICAgICAgICAgaWYgKCFzdGFydCkKLSAgICAgICAgICAgIHBhaW50UmVj
dC5zZXRZKGJ1dHRvblJlY3QueSgpIC0gKGNSZWFsQnV0dG9uTGVuZ3RoW2NvbnRyb2xTaXplXSAt
IGJ1dHRvblJlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgICAgIHBhaW50UmVjdC5zZXRZKGJ1dHRv
blJlY3QueSgpIC0gKGNSZWFsQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KGNvbnRy
b2xTaXplKV0gLSBidXR0b25SZWN0LmhlaWdodCgpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHBh
aW50UmVjdDsKQEAgLTMzOCwxOSArMzQ3LDE5IEBAIEludFJlY3QgU2Nyb2xsYmFyVGhlbWVNYWM6
OmJhY2tCdXR0b25SZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0IHBhCiAg
ICAgYm9vbCBvdXRlckJ1dHRvbiA9IHBhcnQgPT0gQmFja0J1dHRvblN0YXJ0UGFydCAmJiAoYnV0
dG9uc1BsYWNlbWVudCgpID09IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVTdGFydCB8fCBidXR0b25z
UGxhY2VtZW50KCkgPT0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZUJvdGgpOwogICAgIGlmIChvdXRl
ckJ1dHRvbikgewogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gSG9yaXpv
bnRhbFNjcm9sbGJhcikKLSAgICAgICAgICAgIHJlc3VsdCA9IEludFJlY3Qoc2Nyb2xsYmFyLngo
KSwgc2Nyb2xsYmFyLnkoKSwgY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6
ZSgpXSArIChwYWludGluZyA/IGNPdXRlckJ1dHRvbk92ZXJsYXAgOiAwKSwgdGhpY2tuZXNzKTsK
KyAgICAgICAgICAgIHJlc3VsdCA9IEludFJlY3Qoc2Nyb2xsYmFyLngoKSwgc2Nyb2xsYmFyLnko
KSwgY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5jb250
cm9sU2l6ZSgpKV0gKyAocGFpbnRpbmcgPyBjT3V0ZXJCdXR0b25PdmVybGFwIDogMCksIHRoaWNr
bmVzcyk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9IEludFJlY3Qoc2Nyb2xs
YmFyLngoKSwgc2Nyb2xsYmFyLnkoKSwgdGhpY2tuZXNzLCBjT3V0ZXJCdXR0b25MZW5ndGhbc2Ny
b2xsYmFyLmNvbnRyb2xTaXplKCldICsgKHBhaW50aW5nID8gY091dGVyQnV0dG9uT3ZlcmxhcCA6
IDApKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IEludFJlY3Qoc2Nyb2xsYmFyLngoKSwgc2Nyb2xs
YmFyLnkoKSwgdGhpY2tuZXNzLCBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5k
ZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXSArIChwYWludGluZyA/IGNPdXRlckJ1dHRvbk92
ZXJsYXAgOiAwKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAogICAgIC8v
IE91ciByZXBhaW50IHJlY3QgaXMgc2xpZ2h0bHkgbGFyZ2VyLCBzaW5jZSB3ZSBhcmUgYSBidXR0
b24gdGhhdCBpcyBhZGphY2VudCB0byB0aGUgdHJhY2suCiAgICAgaWYgKHNjcm9sbGJhci5vcmll
bnRhdGlvbigpID09IEhvcml6b250YWxTY3JvbGxiYXIpIHsKLSAgICAgICAgaW50IHN0YXJ0ID0g
cGFydCA9PSBCYWNrQnV0dG9uU3RhcnRQYXJ0ID8gc2Nyb2xsYmFyLngoKSA6IHNjcm9sbGJhci54
KCkgKyBzY3JvbGxiYXIud2lkdGgoKSAtIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29u
dHJvbFNpemUoKV0gLSBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXTsKLSAg
ICAgICAgcmVzdWx0ID0gSW50UmVjdChzdGFydCwgc2Nyb2xsYmFyLnkoKSwgY0J1dHRvbkxlbmd0
aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV0sIHRoaWNrbmVzcyk7CisgICAgICAgIGludCBzdGFy
dCA9IHBhcnQgPT0gQmFja0J1dHRvblN0YXJ0UGFydCA/IHNjcm9sbGJhci54KCkgOiBzY3JvbGxi
YXIueCgpICsgc2Nyb2xsYmFyLndpZHRoKCkgLSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFy
U2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXSAtIGNCdXR0b25MZW5ndGhbc2Ny
b2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXTsKKyAgICAgICAgcmVz
dWx0ID0gSW50UmVjdChzdGFydCwgc2Nyb2xsYmFyLnkoKSwgY0J1dHRvbkxlbmd0aFtzY3JvbGxi
YXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldLCB0aGlja25lc3MpOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIGludCBzdGFydCA9IHBhcnQgPT0gQmFja0J1dHRvblN0YXJ0UGFy
dCA/IHNjcm9sbGJhci55KCkgOiBzY3JvbGxiYXIueSgpICsgc2Nyb2xsYmFyLmhlaWdodCgpIC0g
Y091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXSAtIGNCdXR0b25MZW5n
dGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldOwotICAgICAgICByZXN1bHQgPSBJbnRSZWN0KHNj
cm9sbGJhci54KCksIHN0YXJ0LCB0aGlja25lc3MsIGNCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNv
bnRyb2xTaXplKCldKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gcGFydCA9PSBCYWNrQnV0dG9uU3Rh
cnRQYXJ0ID8gc2Nyb2xsYmFyLnkoKSA6IHNjcm9sbGJhci55KCkgKyBzY3JvbGxiYXIuaGVpZ2h0
KCkgLSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNv
bnRyb2xTaXplKCkpXSAtIGNCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xs
YmFyLmNvbnRyb2xTaXplKCkpXTsKKyAgICAgICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxiYXIu
eCgpLCBzdGFydCwgdGhpY2tuZXNzLCBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4
KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKV0pOwogICAgIH0KICAgICAKICAgICBpZiAocGFpbnRp
bmcpCkBAIC0zNjksOCArMzc4LDggQEAgSW50UmVjdCBTY3JvbGxiYXJUaGVtZU1hYzo6Zm9yd2Fy
ZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgCiAgICAgaW50IHRoaWNrbmVzcyA9IHNjcm9sbGJhclRo
aWNrbmVzcyhzY3JvbGxiYXIuY29udHJvbFNpemUoKSk7Ci0gICAgaW50IG91dGVyQnV0dG9uTGVu
Z3RoID0gY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXTsKLSAgICBp
bnQgYnV0dG9uTGVuZ3RoID0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV07
CisgICAgaW50IG91dGVyQnV0dG9uTGVuZ3RoID0gY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJh
clNpemVUb0luZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKV07CisgICAgaW50IGJ1dHRvbkxl
bmd0aCA9IGNCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRy
b2xTaXplKCkpXTsKICAgICAKICAgICBib29sIG91dGVyQnV0dG9uID0gcGFydCA9PSBGb3J3YXJk
QnV0dG9uRW5kUGFydCAmJiAoYnV0dG9uc1BsYWNlbWVudCgpID09IFNjcm9sbGJhckJ1dHRvbnNE
b3VibGVFbmQgfHwgYnV0dG9uc1BsYWNlbWVudCgpID09IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVC
b3RoKTsKICAgICBpZiAob3V0ZXJCdXR0b24pIHsKQEAgLTQwNyw4ICs0MTYsOCBAQCBJbnRSZWN0
IFNjcm9sbGJhclRoZW1lTWFjOjp0cmFja1JlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGJvb2wg
cGFpbnRpbmcpCiAgICAgaW50IHRoaWNrbmVzcyA9IHNjcm9sbGJhclRoaWNrbmVzcyhzY3JvbGxi
YXIuY29udHJvbFNpemUoKSk7CiAgICAgaW50IHN0YXJ0V2lkdGggPSAwOwogICAgIGludCBlbmRX
aWR0aCA9IDA7Ci0gICAgaW50IG91dGVyQnV0dG9uTGVuZ3RoID0gY091dGVyQnV0dG9uTGVuZ3Ro
W3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXTsKLSAgICBpbnQgYnV0dG9uTGVuZ3RoID0gY0J1dHRv
bkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUoKV07CisgICAgaW50IG91dGVyQnV0dG9uTGVu
Z3RoID0gY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5j
b250cm9sU2l6ZSgpKV07CisgICAgaW50IGJ1dHRvbkxlbmd0aCA9IGNCdXR0b25MZW5ndGhbc2Ny
b2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXTsKICAgICBpbnQgZG91
YmxlQnV0dG9uTGVuZ3RoID0gb3V0ZXJCdXR0b25MZW5ndGggKyBidXR0b25MZW5ndGg7CiAgICAg
c3dpdGNoIChidXR0b25zUGxhY2VtZW50KCkpIHsKICAgICAgICAgY2FzZSBTY3JvbGxiYXJCdXR0
b25zU2luZ2xlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3Jv
bGxiYXJUaGVtZU1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxi
YXJUaGVtZU1vY2suY3BwCmluZGV4IDYwY2FmZmY1NDFiZWI3OTY5MDM4MmZmY2UwNzVmYTk1OTI2
ZTM3ZmUuLjc4MTU5MGU2OGQ2YzNjZDgwMDkzZjhmZDY3OTEwMGMxNjhlODQyYmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAK
QEAgLTQxLDcgKzQxLDcgQEAgSW50UmVjdCBTY3JvbGxiYXJUaGVtZU1vY2s6OnRyYWNrUmVjdChT
Y3JvbGxiYXImIHNjcm9sbGJhciwgYm9vbCkKIAogaW50IFNjcm9sbGJhclRoZW1lTW9jazo6c2Ny
b2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplLCBTY3JvbGxi
YXJFeHBhbnNpb25TdGF0ZSkKIHsKLSAgICByZXR1cm4gY1Njcm9sbGJhclRoaWNrbmVzc1tjb250
cm9sU2l6ZV07CisgICAgcmV0dXJuIGNTY3JvbGxiYXJUaGlja25lc3Nbc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oY29udHJvbFNpemUpXTsKIH0KIAogdm9pZCBTY3JvbGxiYXJUaGVtZU1vY2s6OnBhaW50
VHJhY2tCYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgU2Nyb2xsYmFyJiBzY3Jv
bGxiYXIsIGNvbnN0IEludFJlY3QmIHRyYWNrUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5oCmluZGV4IGYwNjRlMmU1NzQzNzIzNmUx
YzA2Y2VkY2U3YzlhY2IyMWUwYTcxOGUuLjJlMGMwYmQyYTc4MDFiMzEwZTAyMjBlOGYwMzgyNTQz
MTJjOTAwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xs
YmFyVGhlbWVNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxi
YXJUaGVtZU1vY2suaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBT
Y3JvbGxiYXIgdGhlbWUgdXNlZCBpbiBpbWFnZSBzbmFwc2hvdHMsIHRvIGVsaW1pbmF0ZSBhcHBl
YXJhbmNlIGRpZmZlcmVuY2VzIGJldHdlZW4gcGxhdGZvcm1zLgogY2xhc3MgU2Nyb2xsYmFyVGhl
bWVNb2NrIDogcHVibGljIFNjcm9sbGJhclRoZW1lQ29tcG9zaXRlIHsKIHB1YmxpYzoKLSAgICBp
bnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxhclNjcm9s
bGJhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6
RXhwYW5kZWQpIG92ZXJyaWRlOworICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFy
Q29udHJvbFNpemUgPSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhciwgU2Nyb2xsYmFyRXhw
YW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRl
OwogCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBoYXNCdXR0b25zKFNjcm9sbGJhciYpIG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9w
bGF5c3RhdGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9wbGF5c3RhdGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uLmgKaW5kZXggMDQz
NmI5ZmNkZjk3OGUwODhhMDIxMGIwNzA0MDhhZDc5MmUwNWJkMS4uYzY3MTExYmIwZjE5YTAxNDY4
YjE0Zjg4MDIyOGI4NDYyNGQyODcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcGxheXN0YXRpb24vU2Nyb2xsYmFyVGhlbWVQbGF5U3RhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3BsYXlzdGF0aW9uL1Njcm9sbGJhclRoZW1lUGxheVN0YXRpb24uaApA
QCAtMzQsNyArMzQsNyBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsYmFyVGhlbWVQbGF5U3RhdGlvbigp
ID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIH5TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uKCkgPSBk
ZWZhdWx0OwogCi0gICAgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6
ZSA9IFJlZ3VsYXJTY3JvbGxiYXIsIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlID0gU2Nyb2xsYmFy
RXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlkZTsKKyAgICBpbnQgc2Nyb2xsYmFyVGhp
Y2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3Vs
YXIsIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4
cGFuZGVkKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaGFzQnV0dG9ucyhTY3JvbGxiYXImKSBvdmVy
cmlkZTsKICAgICBib29sIGhhc1RodW1iKFNjcm9sbGJhciYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAppbmRleCAzMWQ5MzU0ODgzOGEw
NGU3NjcwNDhjODUwMzZlNzRjMjcxMTdkMTNhLi4zNWEzZjBjMTE3YWQzNTc2YjBjMDgwMWYzZTQ4
N2RiMDRjMzZhNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9w
dXBNZW51V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgUG9wdXBNZW51V2luOjpzaG93KGNvbnN0
IEludFJlY3QmIHIsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogCiAgICAgaWYgKCFtX3Nj
cm9sbGJhciAmJiB2aXNpYmxlSXRlbXMoKSA8IGNsaWVudCgpLT5saXN0U2l6ZSgpKSB7CiAgICAg
ICAgIC8vIFdlIG5lZWQgYSBzY3JvbGwgYmFyCi0gICAgICAgIG1fc2Nyb2xsYmFyID0gY2xpZW50
KCktPmNyZWF0ZVNjcm9sbGJhcigqdGhpcywgVmVydGljYWxTY3JvbGxiYXIsIFNtYWxsU2Nyb2xs
YmFyKTsKKyAgICAgICAgbV9zY3JvbGxiYXIgPSBjbGllbnQoKS0+Y3JlYXRlU2Nyb2xsYmFyKCp0
aGlzLCBWZXJ0aWNhbFNjcm9sbGJhciwgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlNtYWxsKTsKICAg
ICAgICAgbV9zY3JvbGxiYXItPnN0eWxlQ2hhbmdlZCgpOwogICAgIH0KIApAQCAtMzU2LDcgKzM1
Niw3IEBAIHZvaWQgUG9wdXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3Qg
SW50UmVjdCYgciwgRnJhbWVWaWV3KiB2KQogCiAgICAgaWYgKG5hdHVyYWxIZWlnaHQgPiBtYXhQ
b3B1cEhlaWdodCkKICAgICAgICAgLy8gV2UgbmVlZCByb29tIGZvciBhIHNjcm9sbGJhcgotICAg
ICAgICBwb3B1cFdpZHRoICs9IFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpLnNjcm9sbGJhclRoaWNr
bmVzcyhTbWFsbFNjcm9sbGJhcik7CisgICAgICAgIHBvcHVwV2lkdGggKz0gU2Nyb2xsYmFyVGhl
bWU6OnRoZW1lKCkuc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplOjpTbWFs
bCk7CiAKICAgICAvLyBBZGQgcGFkZGluZyB0byBhbGlnbiB0aGUgcG9wdXAgdGV4dCB3aXRoIHRo
ZSA8c2VsZWN0PiB0ZXh0CiAgICAgcG9wdXBXaWR0aCArPSBzdGQ6Om1heDxpbnQ+KDAsIGNsaWVu
dCgpLT5jbGllbnRQYWRkaW5nUmlnaHQoKSAtIGNsaWVudCgpLT5jbGllbnRJbnNldFJpZ2h0KCkp
ICsgc3RkOjptYXg8aW50PigwLCBjbGllbnQoKS0+Y2xpZW50UGFkZGluZ0xlZnQoKSAtIGNsaWVu
dCgpLT5jbGllbnRJbnNldExlZnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vU2Nyb2xsYmFyVGhlbWVXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9TY3JvbGxiYXJUaGVtZVdpbi5oCmluZGV4IDA1NWU4ZWY2Y2Y5MTEzYzZjMDk1MDAxOTNiMjc5
ZjY3Y2JiOWI3Y2QuLjk2NmM2ODRkZDMyMTJmNmEzYTA3MGJjYzQ0MzJmOTNiNWEwYWE2MTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVtZVdpbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVtZVdpbi5oCkBA
IC0zNSw3ICszNSw3IEBAIHB1YmxpYzoKICAgICBTY3JvbGxiYXJUaGVtZVdpbigpOwogICAgIHZp
cnR1YWwgflNjcm9sbGJhclRoZW1lV2luKCk7CiAKLSAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNz
KFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxhclNjcm9sbGJhciwgU2Nyb2xsYmFyRXhwYW5z
aW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOwor
ICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBTY3JvbGxi
YXJDb250cm9sU2l6ZTo6UmVndWxhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxi
YXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCB0aGVtZUNo
YW5nZWQoKSBvdmVycmlkZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IDIzZmM5ZWMxNDA4MDcwMjM5ZmY3NmU3ZmM1NWNiOTMxMzFmMTVjNjYuLjk3
NGU4Njk3MGQ3MzY4MTA3NDM5YjRlYTUxNGI5NzJjNDZjODI2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzQ3Nyw3ICszNDc3LDcgQEAgUmVmPFNjcm9s
bGJhcj4gUmVuZGVyTGF5ZXI6OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxiYXJPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKICAgICBpZiAoaGFzQ3VzdG9tU2Nyb2xsYmFyU3R5bGUpCiAgICAgICAgIHdp
ZGdldCA9IFJlbmRlclNjcm9sbGJhcjo6Y3JlYXRlQ3VzdG9tU2Nyb2xsYmFyKCp0aGlzLCBvcmll
bnRhdGlvbiwgZG93bmNhc3Q8UmVuZGVyQm94PihhY3R1YWxSZW5kZXJlcikuZWxlbWVudCgpKTsK
ICAgICBlbHNlIHsKLSAgICAgICAgd2lkZ2V0ID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3Jv
bGxiYXIoKnRoaXMsIG9yaWVudGF0aW9uLCBSZWd1bGFyU2Nyb2xsYmFyKTsKKyAgICAgICAgd2lk
Z2V0ID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIoKnRoaXMsIG9yaWVudGF0aW9u
LCBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhcik7CiAgICAgICAgIGRpZEFkZFNjcm9sbGJh
cih3aWRnZXQuZ2V0KCksIG9yaWVudGF0aW9uKTsKICAgICAgICAgaWYgKHBhZ2UoKS5pc01vbml0
b3JpbmdXaGVlbEV2ZW50cygpKQogICAgICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5zZXRXaGVl
bEV2ZW50VGVzdE1vbml0b3IocGFnZSgpLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKaW5kZXggNWUzNmQxYTc2
Mjg5YTFkZjdiMGQyYTQzZjI1NjU3NDI4NTNhMzZkNi4uYWIxN2FlODE3NzFkODdhOGZhMThmYzQy
N2Q0YzcwY2FkYzBkNzQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNjcm9sbGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNj
cm9sbGJhci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgUmVmPFNjcm9sbGJhcj4gUmVuZGVyU2Nyb2xs
YmFyOjpjcmVhdGVDdXN0b21TY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGUKIH0K
IAogUmVuZGVyU2Nyb2xsYmFyOjpSZW5kZXJTY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEmIHNjcm9s
bGFibGVBcmVhLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRWxlbWVudCogb3du
ZXJFbGVtZW50LCBGcmFtZSogb3duaW5nRnJhbWUpCi0gICAgOiBTY3JvbGxiYXIoc2Nyb2xsYWJs
ZUFyZWEsIG9yaWVudGF0aW9uLCBSZWd1bGFyU2Nyb2xsYmFyLCBSZW5kZXJTY3JvbGxiYXJUaGVt
ZTo6cmVuZGVyU2Nyb2xsYmFyVGhlbWUoKSwgdHJ1ZSkKKyAgICA6IFNjcm9sbGJhcihzY3JvbGxh
YmxlQXJlYSwgb3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyLCBSZW5k
ZXJTY3JvbGxiYXJUaGVtZTo6cmVuZGVyU2Nyb2xsYmFyVGhlbWUoKSwgdHJ1ZSkKICAgICAsIG1f
b3duZXJFbGVtZW50KG93bmVyRWxlbWVudCkKICAgICAsIG1fb3duaW5nRnJhbWUob3duaW5nRnJh
bWUpCiB7CkBAIC0yNjcsNyArMjY3LDcgQEAgdm9pZCBSZW5kZXJTY3JvbGxiYXI6OnBhaW50UGFy
dChHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgU2Nyb2xsYmFyUGFydAogICAgIHBh
cnRSZW5kZXJlci0+cGFpbnRJbnRvUmVjdChncmFwaGljc0NvbnRleHQsIGxvY2F0aW9uKCksIHJl
Y3QpOwogfQogCi1JbnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdChTY3JvbGxiYXJQ
YXJ0IHBhcnRUeXBlKQorSW50UmVjdCBSZW5kZXJTY3JvbGxiYXI6OmJ1dHRvblJlY3QoU2Nyb2xs
YmFyUGFydCBwYXJ0VHlwZSkgY29uc3QKIHsKICAgICBSZW5kZXJTY3JvbGxiYXJQYXJ0KiBwYXJ0
UmVuZGVyZXIgPSBtX3BhcnRzLmdldChwYXJ0VHlwZSk7CiAgICAgaWYgKCFwYXJ0UmVuZGVyZXIp
CkBAIC0yOTksNyArMjk5LDcgQEAgSW50UmVjdCBSZW5kZXJTY3JvbGxiYXI6OmJ1dHRvblJlY3Qo
U2Nyb2xsYmFyUGFydCBwYXJ0VHlwZSkKICAgICAgICAgICAgICAgICAgICBpc0hvcml6b250YWwg
PyBoZWlnaHQoKSA6IHBpeGVsU25hcHBlZEludFNpemUuaGVpZ2h0KCkpOwogfQogCi1JbnRSZWN0
IFJlbmRlclNjcm9sbGJhcjo6dHJhY2tSZWN0KGludCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0
aCkKK0ludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjp0cmFja1JlY3QoaW50IHN0YXJ0TGVuZ3RoLCBp
bnQgZW5kTGVuZ3RoKSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnQgPSBt
X3BhcnRzLmdldChUcmFja0JHUGFydCk7CiAgICAgaWYgKHBhcnQpCkBAIC0zMjMsNyArMzIzLDcg
QEAgSW50UmVjdCBSZW5kZXJTY3JvbGxiYXI6OnRyYWNrUmVjdChpbnQgc3RhcnRMZW5ndGgsIGlu
dCBlbmRMZW5ndGgpCiAgICAgcmV0dXJuIEludFJlY3QoeCgpLCB5KCkgKyBzdGFydExlbmd0aCwg
d2lkdGgoKSwgaGVpZ2h0KCkgLSB0b3RhbExlbmd0aCk7CiB9CiAKLUludFJlY3QgUmVuZGVyU2Ny
b2xsYmFyOjp0cmFja1BpZWNlUmVjdFdpdGhNYXJnaW5zKFNjcm9sbGJhclBhcnQgcGFydFR5cGUs
IGNvbnN0IEludFJlY3QmIG9sZFJlY3QpCitJbnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6dHJhY2tQ
aWVjZVJlY3RXaXRoTWFyZ2lucyhTY3JvbGxiYXJQYXJ0IHBhcnRUeXBlLCBjb25zdCBJbnRSZWN0
JiBvbGRSZWN0KSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnRSZW5kZXJl
ciA9IG1fcGFydHMuZ2V0KHBhcnRUeXBlKTsKICAgICBpZiAoIXBhcnRSZW5kZXJlcikKQEAgLTM0
Miw3ICszNDIsNyBAQCBJbnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6dHJhY2tQaWVjZVJlY3RXaXRo
TWFyZ2lucyhTY3JvbGxiYXJQYXJ0IHBhcnRUeXBlLCBjb25zdAogICAgIHJldHVybiByZWN0Owog
fQogCi1pbnQgUmVuZGVyU2Nyb2xsYmFyOjptaW5pbXVtVGh1bWJMZW5ndGgoKQoraW50IFJlbmRl
clNjcm9sbGJhcjo6bWluaW11bVRodW1iTGVuZ3RoKCkgY29uc3QKIHsKICAgICBSZW5kZXJTY3Jv
bGxiYXJQYXJ0KiBwYXJ0UmVuZGVyZXIgPSBtX3BhcnRzLmdldChUaHVtYlBhcnQpOwogICAgIGlm
ICghcGFydFJlbmRlcmVyKQpAQCAtMzUxLDcgKzM1MSw3IEBAIGludCBSZW5kZXJTY3JvbGxiYXI6
Om1pbmltdW1UaHVtYkxlbmd0aCgpCiAgICAgcmV0dXJuIG9yaWVudGF0aW9uKCkgPT0gSG9yaXpv
bnRhbFNjcm9sbGJhciA/IHBhcnRSZW5kZXJlci0+d2lkdGgoKSA6IHBhcnRSZW5kZXJlci0+aGVp
Z2h0KCk7CiB9CiAKLWZsb2F0IFJlbmRlclNjcm9sbGJhcjo6b3BhY2l0eSgpCitmbG9hdCBSZW5k
ZXJTY3JvbGxiYXI6Om9wYWNpdHkoKSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQq
IHBhcnRSZW5kZXJlciA9IG1fcGFydHMuZ2V0KFNjcm9sbGJhckJHUGFydCk7CiAgICAgaWYgKCFw
YXJ0UmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2Nyb2xsYmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmgK
aW5kZXggYmExNzIzNWIxN2M0YmY1NTUxM2I0OGFiMTRhNDFmYWNjNzMwOTdmNi4uYmYxNjI0NTg4
M2IwNjJiZGQyY2QyNGZjYWM3YWExYTUyMWFiOGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTY3JvbGxiYXIuaApAQCAtNDgsMTMgKzQ4LDEzIEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcGFpbnRQYXJ0KEdyYXBoaWNzQ29udGV4dCYsIFNjcm9sbGJhclBhcnQsIGNvbnN0IElu
dFJlY3QmKTsKIAotICAgIEludFJlY3QgYnV0dG9uUmVjdChTY3JvbGxiYXJQYXJ0KTsKLSAgICBJ
bnRSZWN0IHRyYWNrUmVjdChpbnQgc3RhcnRMZW5ndGgsIGludCBlbmRMZW5ndGgpOwotICAgIElu
dFJlY3QgdHJhY2tQaWVjZVJlY3RXaXRoTWFyZ2lucyhTY3JvbGxiYXJQYXJ0LCBjb25zdCBJbnRS
ZWN0Jik7CisgICAgSW50UmVjdCBidXR0b25SZWN0KFNjcm9sbGJhclBhcnQpIGNvbnN0OworICAg
IEludFJlY3QgdHJhY2tSZWN0KGludCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0aCkgY29uc3Q7
CisgICAgSW50UmVjdCB0cmFja1BpZWNlUmVjdFdpdGhNYXJnaW5zKFNjcm9sbGJhclBhcnQsIGNv
bnN0IEludFJlY3QmKSBjb25zdDsKIAotICAgIGludCBtaW5pbXVtVGh1bWJMZW5ndGgoKTsKKyAg
ICBpbnQgbWluaW11bVRodW1iTGVuZ3RoKCkgY29uc3Q7CiAKLSAgICBmbG9hdCBvcGFjaXR5KCk7
CisgICAgZmxvYXQgb3BhY2l0eSgpIGNvbnN0OwogICAgIAogICAgIGJvb2wgaXNIaWRkZW5CeVN0
eWxlKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgK
aW5kZXggNWU0OGYwNGY2MjliODQzMzRmZjBjM2U4ZTI5NTA5N2JlYzBiNmNiNy4uYjM2ZWFkZjYy
OGNlNTUyODJlNWFkNjVhNmMxMjdjZGRkYzM3NmRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKQEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHBvcHVwT3B0aW9uU3VwcG9ydHNUZXh0SW5kZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplIHBvcHVwTWVudVNp
emUoY29uc3QgUmVuZGVyU3R5bGUmLCBJbnRSZWN0JikgY29uc3QgeyByZXR1cm4gUG9wdXBNZW51
U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7IH0KIAotICAgIHZpcnR1YWwgU2Nyb2xsYmFyQ29u
dHJvbFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KENvbnRyb2xQYXJ0KSB7IHJldHVy
biBSZWd1bGFyU2Nyb2xsYmFyOyB9CisgICAgdmlydHVhbCBTY3JvbGxiYXJDb250cm9sU2l6ZSBz
Y3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIHsgcmV0dXJuIFNjcm9sbGJh
ckNvbnRyb2xTaXplOjpSZWd1bGFyOyB9CiAKICAgICAvLyBSZXR1cm5zIHRoZSByZXBlYXQgaW50
ZXJ2YWwgb2YgdGhlIGFuaW1hdGlvbiBmb3IgdGhlIHByb2dyZXNzIGJhci4KICAgICB2aXJ0dWFs
IFNlY29uZHMgYW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9n
cmVzcyYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApp
bmRleCAzYTUyM2FiMjNlMGQ3YjY5NDU0MDY3YWQ4MzZlM2JlNjM3NjUwOWE3Li5kOWI4MDc0Yjg2
YTljZTA1YjU2N2M1Zjg4MzUyNmE1MDg0MDUzMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgQ29sb3Ig
cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwogICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAKLSAgICBTY3JvbGxi
YXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZp
bmFsIHsgcmV0dXJuIFNtYWxsU2Nyb2xsYmFyOyB9CisgICAgU2Nyb2xsYmFyQ29udHJvbFNpemUg
c2Nyb2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KENvbnRyb2xQYXJ0KSBmaW5hbCB7IHJldHVybiBT
Y3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGw7IH0KIAogICAgIGludCBtaW5pbXVtTWVudUxpc3RT
aXplKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDIwN2YyYTg0YmNi
NWFkMzk5ZTQzYjEwMzJkZDkyMmYyYTcwMzE3MTcuLmU3OGE1YjQ2YmYzMGUwNmM5ZjEzZmU3MGI2
M2I5YTAzYWI0ZDRlOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTI4Niw3ICsxMjg2LDcgQEAgY29uc3QgUGx1Z2luVmll
dyogUERGUGx1Z2luOjpwbHVnaW5WaWV3KCkgY29uc3QKIAogUmVmPFNjcm9sbGJhcj4gUERGUGx1
Z2luOjpjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7
Ci0gICAgYXV0byB3aWRnZXQgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhp
cywgb3JpZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIpOworICAgIGF1dG8gd2lkZ2V0ID0gU2Ny
b2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIoKnRoaXMsIG9yaWVudGF0aW9uLCBTY3JvbGxi
YXJDb250cm9sU2l6ZTo6UmVndWxhcik7CiAgICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6b250
YWxTY3JvbGxiYXIpIHsKICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIgPSBhZG9w
dE5TKFtbV0tQREZQbHVnaW5TY3JvbGxiYXJMYXllciBhbGxvY10gaW5pdFdpdGhQREZQbHVnaW46
dGhpc10pOwogICAgICAgICBbbV9jb250YWluZXJMYXllciBhZGRTdWJsYXllcjptX2hvcml6b250
YWxTY3JvbGxiYXJMYXllci5nZXQoKV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404554</attachid>
            <date>2020-07-17 03:57:45 -0700</date>
            <delta_ts>2020-07-17 04:23:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199325-20200717115744.patch</filename>
            <type>text/plain</type>
            <size>27507</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjczNTZjZGY4Njg1MjE1
MTc5YjBjNTA1ZmYyNzhjYWY1ZTA5NWEyYi4uZjJjY2Q1NzhkMDYzMzNkYTk2OGJhMGRkMjVjNmE3
MGI4NGI5MjIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA3LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
YmFyQ29udHJvbFNpemUgYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KKworICAgICAgICBNYWtlIFNjcm9sbGJhckNvbnRyb2xTaXplIGFuIGVudW0gY2xhc3Ms
IGFuZCBtYWtlIHNvbWUgUmVuZGVyU2Nyb2xsYmFyIG1ldGhvZHMgY29uc3QuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyVGhlbWU6OnNjcm9sbGJhclRoaWNrbmVzcyk6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L1Njcm9sbGJhclRoZW1lSU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyU2l6ZVRvSW5kZXgpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsYmFyVGhlbWVNYWM6Omhhc0J1dHRvbnMpOgorICAgICAgICAoV2ViQ29yZTo6YnV0
dG9uUmVwYWludFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OmJh
Y2tCdXR0b25SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpmb3J3
YXJkQnV0dG9uUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6dHJh
Y2tSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1vY2s6OnNjcm9sbGJhclRoaWNrbmVz
cyk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9wbGF5c3RhdGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpj
YWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TY3JvbGxi
YXJUaGVtZVdpbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNj
cm9sbGJhcjo6UmVuZGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9s
bGJhcjo6YnV0dG9uUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxi
YXI6OnRyYWNrUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXI6
OnRyYWNrUGllY2VSZWN0V2l0aE1hcmdpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2Nyb2xsYmFyOjptaW5pbXVtVGh1bWJMZW5ndGggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU2Nyb2xsYmFyOjpvcGFjaXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTY3JvbGxiYXI6OnRyYWNrUmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTY3JvbGxiYXI6OnRyYWNrUGllY2VSZWN0V2l0aE1hcmdpbnMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjptaW5pbXVtVGh1bWJMZW5ndGgpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjpvcGFjaXR5KTogRGVsZXRl
ZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6c2Ny
b2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaDoKKwogMjAyMC0wNy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIE1ha2UgRG9jdW1lbnRQYXJzZXIuUGFyc2VyU3RhdGUgYW4gZW51bSBjbGFzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAyNmZlYWU1NzI1ZTdlMTBmYzBhY2UwNzlkNDdmZGE3NjkzYmUyMDE5Li43ZDI1ZTBm
NWM3MTRjZTY0ZDE4M2IxOTcwMDVkZWNjODg0OGNiZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIwLTA3LTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgU2Nyb2xsYmFyQ29udHJvbFNpemUgYW4gZW51bSBjbGFzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzI1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBNYWtlIFNjcm9sbGJhckNvbnRy
b2xTaXplIGFuIGVudW0gY2xhc3MsIGFuZCBtYWtlIHNvbWUgUmVuZGVyU2Nyb2xsYmFyIG1ldGhv
ZHMgY29uc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2lu
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlXaW46OnNob3dQb3B1cE1l
bnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eVdpbjo6Y2FsY3VsYXRlUG9z
aXRpb25BbmRTaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpjcmVhdGVTY3JvbGxiYXIpOgorCiAy
MDIwLTA3LTE2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W1dlYkF1dGhuXSBBZGQgYSBjb25zb2xlIG1lc3NhZ2U6ICJVc2VyIGdlc3R1cmUgaXMgcmVxdWly
ZWQgdG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLiIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oCmluZGV4IDMxN2I2NTJmY2U0Y2I5MzExNWE2ZDNkNDk0Y2U0N2U2ODY3
MDI3ODMuLjc1ZDdhNDRhNzNkYzJhMTU0ZjQyZmExYTBkYmJkM2FlZDZlZjViOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtMTQ4LDkgKzE0OCw5IEBAIGVudW0gU2Ny
b2xsYmFyTW9kZSA6IHVpbnQ4X3QgewogICAgIFNjcm9sbGJhckFsd2F5c09uCiB9OwogCi1lbnVt
IFNjcm9sbGJhckNvbnRyb2xTaXplIDogdWludDhfdCB7Ci0gICAgUmVndWxhclNjcm9sbGJhciwK
LSAgICBTbWFsbFNjcm9sbGJhcgorZW51bSBjbGFzcyBTY3JvbGxiYXJDb250cm9sU2l6ZSA6IHVp
bnQ4X3QgeworICAgIFJlZ3VsYXIsCisgICAgU21hbGwKIH07CiAKIGVudW0gY2xhc3MgU2Nyb2xs
YmFyRXhwYW5zaW9uU3RhdGUgOiB1aW50OF90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAKaW5kZXggNjQ5NGM5ZmU1MjRmY2FlNzc5ZWMwYjhkNmJiNDcwNTU5MGEzNTQzYS4u
OGRlNDQwNGY1NTgyYjM3N2I5MTlkZThhY2ExMjY4ODYzZmM3NGRlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIFNjcm9sbFZp
ZXc6OnNldEhhc1Njcm9sbGJhckludGVybmFsKFJlZlB0cjxTY3JvbGxiYXI+JiBzY3JvbGxiYXIs
IFNjcm9sbGJhcgogCiBSZWY8U2Nyb2xsYmFyPiBTY3JvbGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAgcmV0dXJuIFNjcm9sbGJh
cjo6Y3JlYXRlTmF0aXZlU2Nyb2xsYmFyKCp0aGlzLCBvcmllbnRhdGlvbiwgUmVndWxhclNjcm9s
bGJhcik7CisgICAgcmV0dXJuIFNjcm9sbGJhcjo6Y3JlYXRlTmF0aXZlU2Nyb2xsYmFyKCp0aGlz
LCBvcmllbnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIpOwogfQogCiB2b2lk
IFNjcm9sbFZpZXc6OnNldFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1v
ZGUsIFNjcm9sbGJhck1vZGUgdmVydGljYWxNb2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhclRoZW1lLmgKaW5kZXggYjI5MWQ3YTBkNDk1MzhhYThkYWZjMWY1MzU0MjlhMTc3YmZm
YWY0MS4uNWMxNmY5YTE4OTNmNTE4MmU3N2FhMTZkNGJjYWJiYzliNDI3OTE5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnQoU2Nyb2xsYmFyJiwgR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgSW50UmVjdCYgLypkYW1hZ2VSZWN0Ki8pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBTY3JvbGxiYXJQYXJ0IGhpdFRlc3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UG9pbnQmKSB7
IHJldHVybiBOb1BhcnQ7IH0KICAgICAKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxiYXJUaGlja25l
c3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJFeHBh
bnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgeyByZXR1cm4g
MDsgfQorICAgIHZpcnR1YWwgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9s
U2l6ZSA9IFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25T
dGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgeyByZXR1cm4gMDsgfQog
CiAgICAgdmlydHVhbCBTY3JvbGxiYXJCdXR0b25zUGxhY2VtZW50IGJ1dHRvbnNQbGFjZW1lbnQo
KSBjb25zdCB7IHJldHVybiBTY3JvbGxiYXJCdXR0b25zU2luZ2xlOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxiYXJUaGVtZUlPUy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbGJhclRoZW1lSU9TLmgKaW5kZXggM2IyYTkwODEw
ZjdmYTYzMzE4NjE0MjMyOGViZDgyOTBjY2ZkNTg2Ni4uNzhjM2ZhZDQ3MTdkODM4M2U4YWM4MzQ5
MjlhY2I5MTYxMDY4ZmNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Njcm9sbGJhclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Nj
cm9sbGJhclRoZW1lSU9TLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBw
YWludChTY3JvbGxiYXImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VS
ZWN0KSBvdmVycmlkZTsKIAotICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29u
dHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNj
cm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CisgICAgaW50IHNjcm9s
bGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFNjcm9sbGJhckNvbnRyb2xTaXpl
OjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0
YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgYm9vbCBzdXBwb3J0c0NvbnRyb2xU
aW50cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAppbmRleCBlZWU5M2UyY2ZmZDQ3
MTlhZjljZmJiZmYzZWUzMTBmNmVkMWYyNTk1Li5iODM5OGM5OTA5NjIwOGIxNGMzZDkyYmM1OWYz
NjBiMDgwNWNlZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsYmFyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
YmFyVGhlbWVNYWMuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYWludChT
Y3JvbGxiYXImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KSBv
dmVycmlkZTsKICAgICB2b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEludFJlY3QmIGNvcm5lclJlY3QpIG92ZXJyaWRlOwogCi0gICAgaW50IHNjcm9sbGJhclRo
aWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIsIFNjcm9sbGJh
ckV4cGFuc2lvblN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVy
cmlkZTsKKyAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0g
U2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlID0g
U2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlkZTsKICAgICAKICAgICBi
b29sIHN1cHBvcnRzQ29udHJvbFRpbnRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIGJvb2wgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCkgY29uc3QgIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4
IDdlYmU3NWQ2YTc2ZDk5MTAwMjUwYWU3NzhiZWYyOGIwZjQwNmE3OTUuLjE4ZWFlMTQ0NDVmMzUw
ODZhOGE1NjFkZmY5NDAwOTZiYzNlMjBjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTE0NCw5ICsxNDQsOSBAQCBzdGF0aWMg
U2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVudCBnQnV0dG9uUGxhY2VtZW50ID0gU2Nyb2xsYmFyQnV0
dG9uc0RvdWJsZUVuZDsKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXpl
VG9OU0NvbnRyb2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewogICAg
IHN3aXRjaCAoY29udHJvbFNpemUpIHsKLSAgICBjYXNlIFJlZ3VsYXJTY3JvbGxiYXI6CisgICAg
Y2FzZSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhcjoKICAgICAgICAgcmV0dXJuIE5TQ29u
dHJvbFNpemVSZWd1bGFyOwotICAgIGNhc2UgU21hbGxTY3JvbGxiYXI6CisgICAgY2FzZSBTY3Jv
bGxiYXJDb250cm9sU2l6ZTo6U21hbGw6CiAgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21h
bGw7CiAgICAgfQogCkBAIC0yODUsMTIgKzI4NSwyMCBAQCBTY3JvbGxiYXJCdXR0b25zUGxhY2Vt
ZW50IFNjcm9sbGJhclRoZW1lTWFjOjpidXR0b25zUGxhY2VtZW50KCkgY29uc3QKICAgICByZXR1
cm4gZ0J1dHRvblBsYWNlbWVudDsKIH0KIAoraW5saW5lIGNvbnN0ZXhwciB1bnNpZ25lZCBzY3Jv
bGxiYXJTaXplVG9JbmRleChTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJTaXplKQorewor
ICAgIHN3aXRjaCAoc2Nyb2xsYmFyU2l6ZSkgeworICAgIGNhc2UgU2Nyb2xsYmFyQ29udHJvbFNp
emU6OlJlZ3VsYXI6IHJldHVybiAwOworICAgIGNhc2UgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlNt
YWxsOiByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgU2Nyb2xsYmFy
VGhlbWVNYWM6Omhhc0J1dHRvbnMoU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCiB7Ci0gICAgcmV0dXJu
IHNjcm9sbGJhci5lbmFibGVkKCkgJiYgYnV0dG9uc1BsYWNlbWVudCgpICE9IFNjcm9sbGJhckJ1
dHRvbnNOb25lCi0gICAgICAgICAgICAgJiYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IEhv
cml6b250YWxTY3JvbGxiYXIKLSAgICAgICAgICAgICA/IHNjcm9sbGJhci53aWR0aCgpCi0gICAg
ICAgICAgICAgOiBzY3JvbGxiYXIuaGVpZ2h0KCkpID49IDIgKiAoY1JlYWxCdXR0b25MZW5ndGhb
c2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldIC0gY0J1dHRvbkhpdEluc2V0W3Njcm9sbGJhci5jb250
cm9sU2l6ZSgpXSk7CisgICAgaWYgKHNjcm9sbGJhci5lbmFibGVkKCkgJiYgYnV0dG9uc1BsYWNl
bWVudCgpICE9IFNjcm9sbGJhckJ1dHRvbnNOb25lICYmIChzY3JvbGxiYXIub3JpZW50YXRpb24o
KSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQorICAgICAgICByZXR1cm4gc2Nyb2xsYmFyLndpZHRo
KCk7CisgICAgcmV0dXJuIHNjcm9sbGJhci5oZWlnaHQoKSkgPj0gMiAqIChjUmVhbEJ1dHRvbkxl
bmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldIC0gY0J1
dHRvbkhpdEluc2V0W3Njcm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgp
KV0pOwogfQogCiBib29sIFNjcm9sbGJhclRoZW1lTWFjOjpoYXNUaHVtYihTY3JvbGxiYXImIHNj
cm9sbGJhcikKQEAgLTMxMiwxMyArMzIwLDEzIEBAIHN0YXRpYyBJbnRSZWN0IGJ1dHRvblJlcGFp
bnRSZWN0KGNvbnN0IEludFJlY3QmIGJ1dHRvblJlY3QsIFNjcm9sbGJhck9yaWVudGF0aW9uCiAK
ICAgICBJbnRSZWN0IHBhaW50UmVjdChidXR0b25SZWN0KTsKICAgICBpZiAob3JpZW50YXRpb24g
PT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgewotICAgICAgICBwYWludFJlY3Quc2V0V2lkdGgoY1Jl
YWxCdXR0b25MZW5ndGhbY29udHJvbFNpemVdKTsKKyAgICAgICAgcGFpbnRSZWN0LnNldFdpZHRo
KGNSZWFsQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KGNvbnRyb2xTaXplKV0pOwog
ICAgICAgICBpZiAoIXN0YXJ0KQotICAgICAgICAgICAgcGFpbnRSZWN0LnNldFgoYnV0dG9uUmVj
dC54KCkgLSAoY1JlYWxCdXR0b25MZW5ndGhbY29udHJvbFNpemVdIC0gYnV0dG9uUmVjdC53aWR0
aCgpKSk7CisgICAgICAgICAgICBwYWludFJlY3Quc2V0WChidXR0b25SZWN0LngoKSAtIChjUmVh
bEJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChjb250cm9sU2l6ZSldIC0gYnV0dG9u
UmVjdC53aWR0aCgpKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcGFpbnRSZWN0LnNldEhlaWdo
dChjUmVhbEJ1dHRvbkxlbmd0aFtjb250cm9sU2l6ZV0pOworICAgICAgICBwYWludFJlY3Quc2V0
SGVpZ2h0KGNSZWFsQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KGNvbnRyb2xTaXpl
KV0pOwogICAgICAgICBpZiAoIXN0YXJ0KQotICAgICAgICAgICAgcGFpbnRSZWN0LnNldFkoYnV0
dG9uUmVjdC55KCkgLSAoY1JlYWxCdXR0b25MZW5ndGhbY29udHJvbFNpemVdIC0gYnV0dG9uUmVj
dC5oZWlnaHQoKSkpOworICAgICAgICAgICAgcGFpbnRSZWN0LnNldFkoYnV0dG9uUmVjdC55KCkg
LSAoY1JlYWxCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoY29udHJvbFNpemUpXSAt
IGJ1dHRvblJlY3QuaGVpZ2h0KCkpKTsKICAgICB9CiAKICAgICByZXR1cm4gcGFpbnRSZWN0OwpA
QCAtMzM4LDE5ICszNDYsMTkgQEAgSW50UmVjdCBTY3JvbGxiYXJUaGVtZU1hYzo6YmFja0J1dHRv
blJlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQgcGEKICAgICBib29sIG91
dGVyQnV0dG9uID0gcGFydCA9PSBCYWNrQnV0dG9uU3RhcnRQYXJ0ICYmIChidXR0b25zUGxhY2Vt
ZW50KCkgPT0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZVN0YXJ0IHx8IGJ1dHRvbnNQbGFjZW1lbnQo
KSA9PSBTY3JvbGxiYXJCdXR0b25zRG91YmxlQm90aCk7CiAgICAgaWYgKG91dGVyQnV0dG9uKSB7
CiAgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xs
YmFyKQotICAgICAgICAgICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxiYXIueCgpLCBzY3JvbGxi
YXIueSgpLCBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldICsgKHBh
aW50aW5nID8gY091dGVyQnV0dG9uT3ZlcmxhcCA6IDApLCB0aGlja25lc3MpOworICAgICAgICAg
ICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxiYXIueCgpLCBzY3JvbGxiYXIueSgpLCBjT3V0ZXJC
dXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkp
XSArIChwYWludGluZyA/IGNPdXRlckJ1dHRvbk92ZXJsYXAgOiAwKSwgdGhpY2tuZXNzKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxiYXIueCgpLCBz
Y3JvbGxiYXIueSgpLCB0aGlja25lc3MsIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29u
dHJvbFNpemUoKV0gKyAocGFpbnRpbmcgPyBjT3V0ZXJCdXR0b25PdmVybGFwIDogMCkpOworICAg
ICAgICAgICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxiYXIueCgpLCBzY3JvbGxiYXIueSgpLCB0
aGlja25lc3MsIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxi
YXIuY29udHJvbFNpemUoKSldICsgKHBhaW50aW5nID8gY091dGVyQnV0dG9uT3ZlcmxhcCA6IDAp
KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCiAgICAgLy8gT3VyIHJlcGFp
bnQgcmVjdCBpcyBzbGlnaHRseSBsYXJnZXIsIHNpbmNlIHdlIGFyZSBhIGJ1dHRvbiB0aGF0IGlz
IGFkamFjZW50IHRvIHRoZSB0cmFjay4KICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkg
PT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgewotICAgICAgICBpbnQgc3RhcnQgPSBwYXJ0ID09IEJh
Y2tCdXR0b25TdGFydFBhcnQgPyBzY3JvbGxiYXIueCgpIDogc2Nyb2xsYmFyLngoKSArIHNjcm9s
bGJhci53aWR0aCgpIC0gY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgp
XSAtIGNCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldOwotICAgICAgICByZXN1
bHQgPSBJbnRSZWN0KHN0YXJ0LCBzY3JvbGxiYXIueSgpLCBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJh
ci5jb250cm9sU2l6ZSgpXSwgdGhpY2tuZXNzKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gcGFydCA9
PSBCYWNrQnV0dG9uU3RhcnRQYXJ0ID8gc2Nyb2xsYmFyLngoKSA6IHNjcm9sbGJhci54KCkgKyBz
Y3JvbGxiYXIud2lkdGgoKSAtIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRl
eChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldIC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXpl
VG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldOworICAgICAgICByZXN1bHQgPSBJbnRS
ZWN0KHN0YXJ0LCBzY3JvbGxiYXIueSgpLCBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0lu
ZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKV0sIHRoaWNrbmVzcyk7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgaW50IHN0YXJ0ID0gcGFydCA9PSBCYWNrQnV0dG9uU3RhcnRQYXJ0ID8gc2Nyb2xs
YmFyLnkoKSA6IHNjcm9sbGJhci55KCkgKyBzY3JvbGxiYXIuaGVpZ2h0KCkgLSBjT3V0ZXJCdXR0
b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldIC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxi
YXIuY29udHJvbFNpemUoKV07Ci0gICAgICAgIHJlc3VsdCA9IEludFJlY3Qoc2Nyb2xsYmFyLngo
KSwgc3RhcnQsIHRoaWNrbmVzcywgY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUo
KV0pOworICAgICAgICBpbnQgc3RhcnQgPSBwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQgPyBz
Y3JvbGxiYXIueSgpIDogc2Nyb2xsYmFyLnkoKSArIHNjcm9sbGJhci5oZWlnaHQoKSAtIGNPdXRl
ckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUo
KSldIC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJv
bFNpemUoKSldOworICAgICAgICByZXN1bHQgPSBJbnRSZWN0KHNjcm9sbGJhci54KCksIHN0YXJ0
LCB0aGlja25lc3MsIGNCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFy
LmNvbnRyb2xTaXplKCkpXSk7CiAgICAgfQogICAgIAogICAgIGlmIChwYWludGluZykKQEAgLTM2
OSw4ICszNzcsOCBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lTWFjOjpmb3J3YXJkQnV0dG9uUmVj
dChTY3JvbGxiYXImIHNjcm9sbGJhciwgU2Nyb2xsYmFyUGFydAogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgICAgICAKICAgICBpbnQgdGhpY2tuZXNzID0gc2Nyb2xsYmFyVGhpY2tuZXNzKHNj
cm9sbGJhci5jb250cm9sU2l6ZSgpKTsKLSAgICBpbnQgb3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0
ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldOwotICAgIGludCBidXR0b25M
ZW5ndGggPSBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXTsKKyAgICBpbnQg
b3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5k
ZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXTsKKyAgICBpbnQgYnV0dG9uTGVuZ3RoID0gY0J1
dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSld
OwogICAgIAogICAgIGJvb2wgb3V0ZXJCdXR0b24gPSBwYXJ0ID09IEZvcndhcmRCdXR0b25FbmRQ
YXJ0ICYmIChidXR0b25zUGxhY2VtZW50KCkgPT0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZUVuZCB8
fCBidXR0b25zUGxhY2VtZW50KCkgPT0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZUJvdGgpOwogICAg
IGlmIChvdXRlckJ1dHRvbikgewpAQCAtNDA3LDggKzQxNSw4IEBAIEludFJlY3QgU2Nyb2xsYmFy
VGhlbWVNYWM6OnRyYWNrUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgYm9vbCBwYWludGluZykK
ICAgICBpbnQgdGhpY2tuZXNzID0gc2Nyb2xsYmFyVGhpY2tuZXNzKHNjcm9sbGJhci5jb250cm9s
U2l6ZSgpKTsKICAgICBpbnQgc3RhcnRXaWR0aCA9IDA7CiAgICAgaW50IGVuZFdpZHRoID0gMDsK
LSAgICBpbnQgb3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFy
LmNvbnRyb2xTaXplKCldOwotICAgIGludCBidXR0b25MZW5ndGggPSBjQnV0dG9uTGVuZ3RoW3Nj
cm9sbGJhci5jb250cm9sU2l6ZSgpXTsKKyAgICBpbnQgb3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0
ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXpl
KCkpXTsKKyAgICBpbnQgYnV0dG9uTGVuZ3RoID0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXpl
VG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldOwogICAgIGludCBkb3VibGVCdXR0b25M
ZW5ndGggPSBvdXRlckJ1dHRvbkxlbmd0aCArIGJ1dHRvbkxlbmd0aDsKICAgICBzd2l0Y2ggKGJ1
dHRvbnNQbGFjZW1lbnQoKSkgewogICAgICAgICBjYXNlIFNjcm9sbGJhckJ1dHRvbnNTaW5nbGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1l
TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9j
ay5jcHAKaW5kZXggNjBjYWZmZjU0MWJlYjc5NjkwMzgyZmZjZTA3NWZhOTU5MjZlMzdmZS4uNzgx
NTkwZTY4ZDZjM2NkODAwOTNmOGZkNjc5MTAwYzE2OGU4NDJiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcApAQCAtNDEsNyAr
NDEsNyBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lTW9jazo6dHJhY2tSZWN0KFNjcm9sbGJhciYg
c2Nyb2xsYmFyLCBib29sKQogCiBpbnQgU2Nyb2xsYmFyVGhlbWVNb2NrOjpzY3JvbGxiYXJUaGlj
a25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUsIFNjcm9sbGJhckV4cGFuc2lv
blN0YXRlKQogewotICAgIHJldHVybiBjU2Nyb2xsYmFyVGhpY2tuZXNzW2NvbnRyb2xTaXplXTsK
KyAgICByZXR1cm4gY1Njcm9sbGJhclRoaWNrbmVzc1tzdGF0aWNfY2FzdDx1aW50OF90Pihjb250
cm9sU2l6ZSldOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lTW9jazo6cGFpbnRUcmFja0JhY2tn
cm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgdHJhY2tSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svU2Nyb2xsYmFyVGhlbWVNb2NrLmgKaW5kZXggZjA2NGUyZTU3NDM3MjM2ZTFjMDZjZWRjZTdj
OWFjYjIxZTBhNzE4ZS4uMmUwYzBiZDJhNzgwMWIzMTBlMDIyMGU4ZjAzODI1NDMxMmM5MDA0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1v
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9j
ay5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIFNjcm9sbGJhciB0
aGVtZSB1c2VkIGluIGltYWdlIHNuYXBzaG90cywgdG8gZWxpbWluYXRlIGFwcGVhcmFuY2UgZGlm
ZmVyZW5jZXMgYmV0d2VlbiBwbGF0Zm9ybXMuCiBjbGFzcyBTY3JvbGxiYXJUaGVtZU1vY2sgOiBw
dWJsaWMgU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUgewogcHVibGljOgotICAgIGludCBzY3JvbGxi
YXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3Jv
bGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkg
b3ZlcnJpZGU7CisgICAgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6
ZSA9IFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0
ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CiAKIHByb3Rl
Y3RlZDoKICAgICBib29sIGhhc0J1dHRvbnMoU2Nyb2xsYmFyJikgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3BsYXlzdGF0aW9u
L1Njcm9sbGJhclRoZW1lUGxheVN0YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bs
YXlzdGF0aW9uL1Njcm9sbGJhclRoZW1lUGxheVN0YXRpb24uaAppbmRleCAwNDM2YjlmY2RmOTc4
ZTA4OGEwMjEwYjA3MDQwOGFkNzkyZTA1YmQxLi5jNjcxMTFiYjBmMTlhMDE0NjhiMTRmODgwMjI4
Yjg0NjI0ZDI4NzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wbGF5c3Rh
dGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcGxheXN0YXRpb24vU2Nyb2xsYmFyVGhlbWVQbGF5U3RhdGlvbi5oCkBAIC0zNCw3ICsz
NCw3IEBAIHB1YmxpYzoKICAgICBTY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uKCkgPSBkZWZhdWx0
OwogICAgIHZpcnR1YWwgflNjcm9sbGJhclRoZW1lUGxheVN0YXRpb24oKSA9IGRlZmF1bHQ7CiAK
LSAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxh
clNjcm9sbGJhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25T
dGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOworICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Ny
b2xsYmFyQ29udHJvbFNpemUgPSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhciwgU2Nyb2xs
YmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBoYXNCdXR0b25zKFNjcm9sbGJhciYpIG92ZXJyaWRlOwogICAg
IGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFyJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCmluZGV4IDMxZDkzNTQ4ODM4YTA0ZTc2NzA0OGM4
NTAzNmU3NGMyNzExN2QxM2EuLjM1YTNmMGMxMTdhZDM1NzZiMGMwODAxZjNlNDg3ZGIwNGMzNmE0
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCkBA
IC0xNDEsNyArMTQxLDcgQEAgdm9pZCBQb3B1cE1lbnVXaW46OnNob3coY29uc3QgSW50UmVjdCYg
ciwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAKICAgICBpZiAoIW1fc2Nyb2xsYmFyICYm
IHZpc2libGVJdGVtcygpIDwgY2xpZW50KCktPmxpc3RTaXplKCkpIHsKICAgICAgICAgLy8gV2Ug
bmVlZCBhIHNjcm9sbCBiYXIKLSAgICAgICAgbV9zY3JvbGxiYXIgPSBjbGllbnQoKS0+Y3JlYXRl
U2Nyb2xsYmFyKCp0aGlzLCBWZXJ0aWNhbFNjcm9sbGJhciwgU21hbGxTY3JvbGxiYXIpOworICAg
ICAgICBtX3Njcm9sbGJhciA9IGNsaWVudCgpLT5jcmVhdGVTY3JvbGxiYXIoKnRoaXMsIFZlcnRp
Y2FsU2Nyb2xsYmFyLCBTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGwpOwogICAgICAgICBtX3Nj
cm9sbGJhci0+c3R5bGVDaGFuZ2VkKCk7CiAgICAgfQogCkBAIC0zNTYsNyArMzU2LDcgQEAgdm9p
ZCBQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiBy
LCBGcmFtZVZpZXcqIHYpCiAKICAgICBpZiAobmF0dXJhbEhlaWdodCA+IG1heFBvcHVwSGVpZ2h0
KQogICAgICAgICAvLyBXZSBuZWVkIHJvb20gZm9yIGEgc2Nyb2xsYmFyCi0gICAgICAgIHBvcHVw
V2lkdGggKz0gU2Nyb2xsYmFyVGhlbWU6OnRoZW1lKCkuc2Nyb2xsYmFyVGhpY2tuZXNzKFNtYWxs
U2Nyb2xsYmFyKTsKKyAgICAgICAgcG9wdXBXaWR0aCArPSBTY3JvbGxiYXJUaGVtZTo6dGhlbWUo
KS5zY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemU6OlNtYWxsKTsKIAogICAg
IC8vIEFkZCBwYWRkaW5nIHRvIGFsaWduIHRoZSBwb3B1cCB0ZXh0IHdpdGggdGhlIDxzZWxlY3Q+
IHRleHQKICAgICBwb3B1cFdpZHRoICs9IHN0ZDo6bWF4PGludD4oMCwgY2xpZW50KCktPmNsaWVu
dFBhZGRpbmdSaWdodCgpIC0gY2xpZW50KCktPmNsaWVudEluc2V0UmlnaHQoKSkgKyBzdGQ6Om1h
eDxpbnQ+KDAsIGNsaWVudCgpLT5jbGllbnRQYWRkaW5nTGVmdCgpIC0gY2xpZW50KCktPmNsaWVu
dEluc2V0TGVmdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9T
Y3JvbGxiYXJUaGVtZVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbGJh
clRoZW1lV2luLmgKaW5kZXggMDU1ZThlZjZjZjkxMTNjNmMwOTUwMDE5M2IyNzlmNjdjYmI5Yjdj
ZC4uOTY2YzY4NGRkMzIxMmY2YTNhMDcwYmNjNDQzMmY5M2I1YTBhYTYxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmgKQEAgLTM1LDcgKzM1
LDcgQEAgcHVibGljOgogICAgIFNjcm9sbGJhclRoZW1lV2luKCk7CiAgICAgdmlydHVhbCB+U2Ny
b2xsYmFyVGhlbWVXaW4oKTsKIAotICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFy
Q29udHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9
IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CisgICAgaW50IHNj
cm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFNjcm9sbGJhckNvbnRyb2xT
aXplOjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lv
blN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHRoZW1lQ2hhbmdlZCgpIG92
ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5k
ZXggMjNmYzllYzE0MDgwNzAyMzlmZjc2ZTdmYzU1Y2I5MzEzMWYxNWM2Ni4uOTc0ZTg2OTcwZDcz
NjgxMDc0MzliNGVhNTE0Yjk3MmM0NmM4MjZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCkBAIC0zNDc3LDcgKzM0NzcsNyBAQCBSZWY8U2Nyb2xsYmFyPiBSZW5k
ZXJMYXllcjo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9u
KQogICAgIGlmIChoYXNDdXN0b21TY3JvbGxiYXJTdHlsZSkKICAgICAgICAgd2lkZ2V0ID0gUmVu
ZGVyU2Nyb2xsYmFyOjpjcmVhdGVDdXN0b21TY3JvbGxiYXIoKnRoaXMsIG9yaWVudGF0aW9uLCBk
b3duY2FzdDxSZW5kZXJCb3g+KGFjdHVhbFJlbmRlcmVyKS5lbGVtZW50KCkpOwogICAgIGVsc2Ug
ewotICAgICAgICB3aWRnZXQgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhp
cywgb3JpZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIpOworICAgICAgICB3aWRnZXQgPSBTY3Jv
bGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhpcywgb3JpZW50YXRpb24sIFNjcm9sbGJh
ckNvbnRyb2xTaXplOjpSZWd1bGFyKTsKICAgICAgICAgZGlkQWRkU2Nyb2xsYmFyKHdpZGdldC5n
ZXQoKSwgb3JpZW50YXRpb24pOwogICAgICAgICBpZiAocGFnZSgpLmlzTW9uaXRvcmluZ1doZWVs
RXZlbnRzKCkpCiAgICAgICAgICAgICBzY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0
TW9uaXRvcihwYWdlKCkud2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcAppbmRleCA1ZTM2ZDFhNzYyODlhMWRmN2Iw
ZDJhNDNmMjU2NTc0Mjg1M2EzNmQ2Li5hYjE3YWU4MTc3MWQ4N2E4ZmExOGZjNDI3ZDRjNzBjYWRj
MGQ3NDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xs
YmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNw
cApAQCAtNDIsNyArNDIsNyBAQCBSZWY8U2Nyb2xsYmFyPiBSZW5kZXJTY3JvbGxiYXI6OmNyZWF0
ZUN1c3RvbVNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZQogfQogCiBSZW5kZXJT
Y3JvbGxiYXI6OlJlbmRlclNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEs
IFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBFbGVtZW50KiBvd25lckVsZW1lbnQs
IEZyYW1lKiBvd25pbmdGcmFtZSkKLSAgICA6IFNjcm9sbGJhcihzY3JvbGxhYmxlQXJlYSwgb3Jp
ZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIsIFJlbmRlclNjcm9sbGJhclRoZW1lOjpyZW5kZXJT
Y3JvbGxiYXJUaGVtZSgpLCB0cnVlKQorICAgIDogU2Nyb2xsYmFyKHNjcm9sbGFibGVBcmVhLCBv
cmllbnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFJlbmRlclNjcm9sbGJh
clRoZW1lOjpyZW5kZXJTY3JvbGxiYXJUaGVtZSgpLCB0cnVlKQogICAgICwgbV9vd25lckVsZW1l
bnQob3duZXJFbGVtZW50KQogICAgICwgbV9vd25pbmdGcmFtZShvd25pbmdGcmFtZSkKIHsKQEAg
LTI2Nyw3ICsyNjcsNyBAQCB2b2lkIFJlbmRlclNjcm9sbGJhcjo6cGFpbnRQYXJ0KEdyYXBoaWNz
Q29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBTY3JvbGxiYXJQYXJ0CiAgICAgcGFydFJlbmRlcmVy
LT5wYWludEludG9SZWN0KGdyYXBoaWNzQ29udGV4dCwgbG9jYXRpb24oKSwgcmVjdCk7CiB9CiAK
LUludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjpidXR0b25SZWN0KFNjcm9sbGJhclBhcnQgcGFydFR5
cGUpCitJbnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdChTY3JvbGxiYXJQYXJ0IHBh
cnRUeXBlKSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnRSZW5kZXJlciA9
IG1fcGFydHMuZ2V0KHBhcnRUeXBlKTsKICAgICBpZiAoIXBhcnRSZW5kZXJlcikKQEAgLTI5OSw3
ICsyOTksNyBAQCBJbnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdChTY3JvbGxiYXJQ
YXJ0IHBhcnRUeXBlKQogICAgICAgICAgICAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGhlaWdodCgp
IDogcGl4ZWxTbmFwcGVkSW50U2l6ZS5oZWlnaHQoKSk7CiB9CiAKLUludFJlY3QgUmVuZGVyU2Ny
b2xsYmFyOjp0cmFja1JlY3QoaW50IHN0YXJ0TGVuZ3RoLCBpbnQgZW5kTGVuZ3RoKQorSW50UmVj
dCBSZW5kZXJTY3JvbGxiYXI6OnRyYWNrUmVjdChpbnQgc3RhcnRMZW5ndGgsIGludCBlbmRMZW5n
dGgpIGNvbnN0CiB7CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcGFydCA9IG1fcGFydHMuZ2V0
KFRyYWNrQkdQYXJ0KTsKICAgICBpZiAocGFydCkKQEAgLTMyMyw3ICszMjMsNyBAQCBJbnRSZWN0
IFJlbmRlclNjcm9sbGJhcjo6dHJhY2tSZWN0KGludCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0
aCkKICAgICByZXR1cm4gSW50UmVjdCh4KCksIHkoKSArIHN0YXJ0TGVuZ3RoLCB3aWR0aCgpLCBo
ZWlnaHQoKSAtIHRvdGFsTGVuZ3RoKTsKIH0KIAotSW50UmVjdCBSZW5kZXJTY3JvbGxiYXI6OnRy
YWNrUGllY2VSZWN0V2l0aE1hcmdpbnMoU2Nyb2xsYmFyUGFydCBwYXJ0VHlwZSwgY29uc3QgSW50
UmVjdCYgb2xkUmVjdCkKK0ludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjp0cmFja1BpZWNlUmVjdFdp
dGhNYXJnaW5zKFNjcm9sbGJhclBhcnQgcGFydFR5cGUsIGNvbnN0IEludFJlY3QmIG9sZFJlY3Qp
IGNvbnN0CiB7CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcGFydFJlbmRlcmVyID0gbV9wYXJ0
cy5nZXQocGFydFR5cGUpOwogICAgIGlmICghcGFydFJlbmRlcmVyKQpAQCAtMzQyLDcgKzM0Miw3
IEBAIEludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjp0cmFja1BpZWNlUmVjdFdpdGhNYXJnaW5zKFNj
cm9sbGJhclBhcnQgcGFydFR5cGUsIGNvbnN0CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLWludCBS
ZW5kZXJTY3JvbGxiYXI6Om1pbmltdW1UaHVtYkxlbmd0aCgpCitpbnQgUmVuZGVyU2Nyb2xsYmFy
OjptaW5pbXVtVGh1bWJMZW5ndGgoKSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQq
IHBhcnRSZW5kZXJlciA9IG1fcGFydHMuZ2V0KFRodW1iUGFydCk7CiAgICAgaWYgKCFwYXJ0UmVu
ZGVyZXIpCkBAIC0zNTEsNyArMzUxLDcgQEAgaW50IFJlbmRlclNjcm9sbGJhcjo6bWluaW11bVRo
dW1iTGVuZ3RoKCkKICAgICByZXR1cm4gb3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xs
YmFyID8gcGFydFJlbmRlcmVyLT53aWR0aCgpIDogcGFydFJlbmRlcmVyLT5oZWlnaHQoKTsKIH0K
IAotZmxvYXQgUmVuZGVyU2Nyb2xsYmFyOjpvcGFjaXR5KCkKK2Zsb2F0IFJlbmRlclNjcm9sbGJh
cjo6b3BhY2l0eSgpIGNvbnN0CiB7CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcGFydFJlbmRl
cmVyID0gbV9wYXJ0cy5nZXQoU2Nyb2xsYmFyQkdQYXJ0KTsKICAgICBpZiAoIXBhcnRSZW5kZXJl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuaAppbmRleCBiYTE3
MjM1YjE3YzRiZjU1NTEzYjQ4YWIxNGE0MWZhY2M3MzA5N2Y2Li5iZjE2MjQ1ODgzYjA2MmJkZDJj
ZDI0ZmNhYzdhYTFhNTIxYWI4Y2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2Nyb2xsYmFyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNjcm9sbGJhci5oCkBAIC00OCwxMyArNDgsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBwYWlu
dFBhcnQoR3JhcGhpY3NDb250ZXh0JiwgU2Nyb2xsYmFyUGFydCwgY29uc3QgSW50UmVjdCYpOwog
Ci0gICAgSW50UmVjdCBidXR0b25SZWN0KFNjcm9sbGJhclBhcnQpOwotICAgIEludFJlY3QgdHJh
Y2tSZWN0KGludCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0aCk7Ci0gICAgSW50UmVjdCB0cmFj
a1BpZWNlUmVjdFdpdGhNYXJnaW5zKFNjcm9sbGJhclBhcnQsIGNvbnN0IEludFJlY3QmKTsKKyAg
ICBJbnRSZWN0IGJ1dHRvblJlY3QoU2Nyb2xsYmFyUGFydCkgY29uc3Q7CisgICAgSW50UmVjdCB0
cmFja1JlY3QoaW50IHN0YXJ0TGVuZ3RoLCBpbnQgZW5kTGVuZ3RoKSBjb25zdDsKKyAgICBJbnRS
ZWN0IHRyYWNrUGllY2VSZWN0V2l0aE1hcmdpbnMoU2Nyb2xsYmFyUGFydCwgY29uc3QgSW50UmVj
dCYpIGNvbnN0OwogCi0gICAgaW50IG1pbmltdW1UaHVtYkxlbmd0aCgpOworICAgIGludCBtaW5p
bXVtVGh1bWJMZW5ndGgoKSBjb25zdDsKIAotICAgIGZsb2F0IG9wYWNpdHkoKTsKKyAgICBmbG9h
dCBvcGFjaXR5KCkgY29uc3Q7CiAgICAgCiAgICAgYm9vbCBpc0hpZGRlbkJ5U3R5bGUoKSBjb25z
dCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCA1ZTQ4
ZjA0ZjYyOWI4NDMzNGZmMGMzZThlMjk1MDk3YmVjMGI2Y2I3Li5iMzZlYWRmNjI4Y2U1NTI4MmU1
YWQ2NWE2YzEyN2NkZGRjMzc2ZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaApAQCAtMTk5LDcgKzE5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcG9wdXBP
cHRpb25TdXBwb3J0c1RleHRJbmRlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgcG9wdXBNZW51U2l6ZShjb25zdCBS
ZW5kZXJTdHlsZSYsIEludFJlY3QmKSBjb25zdCB7IHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9w
dXBNZW51U2l6ZU5vcm1hbDsgfQogCi0gICAgdmlydHVhbCBTY3JvbGxiYXJDb250cm9sU2l6ZSBz
Y3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIHsgcmV0dXJuIFJlZ3VsYXJT
Y3JvbGxiYXI7IH0KKyAgICB2aXJ0dWFsIFNjcm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJhckNv
bnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgeyByZXR1cm4gU2Nyb2xsYmFyQ29udHJvbFNp
emU6OlJlZ3VsYXI7IH0KIAogICAgIC8vIFJldHVybnMgdGhlIHJlcGVhdCBpbnRlcnZhbCBvZiB0
aGUgYW5pbWF0aW9uIGZvciB0aGUgcHJvZ3Jlc3MgYmFyLgogICAgIHZpcnR1YWwgU2Vjb25kcyBh
bmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzJikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IDNhNTIz
YWIyM2UwZDdiNjk0NTQwNjdhZDgzNmUzYmU2Mzc2NTA5YTcuLmQ5YjgwNzRiODZhOWNlMDViNTY3
YzVmODgzNTI2YTUwODQwNTMyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBDb2xvciBwbGF0Zm9ybUZv
Y3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7
CiAgICAgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAotICAgIFNjcm9sbGJhckNvbnRyb2xT
aXplIHNjcm9sbGJhckNvbnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgZmluYWwgeyByZXR1
cm4gU21hbGxTY3JvbGxiYXI7IH0KKyAgICBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJD
b250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJuIFNjcm9sbGJhckNv
bnRyb2xTaXplOjpTbWFsbDsgfQogCiAgICAgaW50IG1pbmltdW1NZW51TGlzdFNpemUoY29uc3Qg
UmVuZGVyU3R5bGUmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHAKaW5kZXggNGNlOTdhYjQ5YjJkNjg3
NzgxZWYyODdkOGIzNDlkZGU5N2Q1YTk0OC4uM2NhY2I5YWVjNjRjODlhNTEyMDg3MDAwZDI2YTU3
ZTA2ZTE4MWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBv
cHVwTWVudVByb3h5V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2Vi
UG9wdXBNZW51UHJveHlXaW4uY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eVdpbjo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0
aW9uLCBkb3UKICAgICBIV05EIGhvc3RXaW5kb3cgPSBtX3dlYlZpZXctPndpbmRvdygpOwogCiAg
ICAgaWYgKCFtX3Njcm9sbGJhciAmJiB2aXNpYmxlSXRlbXMoKSA8IG1faXRlbXMuc2l6ZSgpKSB7
Ci0gICAgICAgIG1fc2Nyb2xsYmFyID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIo
KnRoaXMsIFZlcnRpY2FsU2Nyb2xsYmFyLCBTbWFsbFNjcm9sbGJhcik7CisgICAgICAgIG1fc2Ny
b2xsYmFyID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIoKnRoaXMsIFZlcnRpY2Fs
U2Nyb2xsYmFyLCBTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGwpOwogICAgICAgICBtX3Njcm9s
bGJhci0+c3R5bGVDaGFuZ2VkKCk7CiAgICAgfQogCkBAIC0zODQsNyArMzg0LDcgQEAgdm9pZCBX
ZWJQb3B1cE1lbnVQcm94eVdpbjo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAKICAgICBpZiAobmF0dXJhbEhlaWdodCA+IG1heFBvcHVwSGVpZ2h0KSB7CiAg
ICAgICAgIC8vIFdlIG5lZWQgcm9vbSBmb3IgYSBzY3JvbGxiYXIKLSAgICAgICAgcG9wdXBXaWR0
aCArPSBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKS5zY3JvbGxiYXJUaGlja25lc3MoU21hbGxTY3Jv
bGxiYXIpOworICAgICAgICBwb3B1cFdpZHRoICs9IFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpLnNj
cm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGwpOwogICAgIH0KIAog
ICAgIHBvcHVwSGVpZ2h0ICs9IDIgKiBwb3B1cFdpbmRvd0JvcmRlcldpZHRoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggMjA3
ZjJhODRiY2I1YWQzOTllNDNiMTAzMmRkOTIyZjJhNzAzMTcxNy4uZTc4YTViNDZiZjMwZTA2Yzlm
MTNmZTcwYjYzYjlhMDNhYjRkNGU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xMjg2LDcgKzEyODYsNyBAQCBjb25zdCBQ
bHVnaW5WaWV3KiBQREZQbHVnaW46OnBsdWdpblZpZXcoKSBjb25zdAogCiBSZWY8U2Nyb2xsYmFy
PiBQREZQbHVnaW46OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRh
dGlvbikKIHsKLSAgICBhdXRvIHdpZGdldCA9IFNjcm9sbGJhcjo6Y3JlYXRlTmF0aXZlU2Nyb2xs
YmFyKCp0aGlzLCBvcmllbnRhdGlvbiwgUmVndWxhclNjcm9sbGJhcik7CisgICAgYXV0byB3aWRn
ZXQgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhpcywgb3JpZW50YXRpb24s
IFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyKTsKICAgICBpZiAob3JpZW50YXRpb24gPT0g
SG9yaXpvbnRhbFNjcm9sbGJhcikgewogICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXJMYXll
ciA9IGFkb3B0TlMoW1tXS1BERlBsdWdpblNjcm9sbGJhckxheWVyIGFsbG9jXSBpbml0V2l0aFBE
RlBsdWdpbjp0aGlzXSk7CiAgICAgICAgIFttX2NvbnRhaW5lckxheWVyIGFkZFN1YmxheWVyOm1f
aG9yaXpvbnRhbFNjcm9sbGJhckxheWVyLmdldCgpXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404555</attachid>
            <date>2020-07-17 04:23:54 -0700</date>
            <delta_ts>2020-07-17 11:38:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199325-20200717122353.patch</filename>
            <type>text/plain</type>
            <size>27507</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjczNTZjZGY4Njg1MjE1
MTc5YjBjNTA1ZmYyNzhjYWY1ZTA5NWEyYi4uZjJjY2Q1NzhkMDYzMzNkYTk2OGJhMGRkMjVjNmE3
MGI4NGI5MjIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA3LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
YmFyQ29udHJvbFNpemUgYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KKworICAgICAgICBNYWtlIFNjcm9sbGJhckNvbnRyb2xTaXplIGFuIGVudW0gY2xhc3Ms
IGFuZCBtYWtlIHNvbWUgUmVuZGVyU2Nyb2xsYmFyIG1ldGhvZHMgY29uc3QuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyVGhlbWU6OnNjcm9sbGJhclRoaWNrbmVzcyk6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L1Njcm9sbGJhclRoZW1lSU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyU2l6ZVRvSW5kZXgpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsYmFyVGhlbWVNYWM6Omhhc0J1dHRvbnMpOgorICAgICAgICAoV2ViQ29yZTo6YnV0
dG9uUmVwYWludFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OmJh
Y2tCdXR0b25SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpmb3J3
YXJkQnV0dG9uUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6dHJh
Y2tSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1vY2s6OnNjcm9sbGJhclRoaWNrbmVz
cyk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9wbGF5c3RhdGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpj
YWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TY3JvbGxi
YXJUaGVtZVdpbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNj
cm9sbGJhcjo6UmVuZGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9s
bGJhcjo6YnV0dG9uUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxi
YXI6OnRyYWNrUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXI6
OnRyYWNrUGllY2VSZWN0V2l0aE1hcmdpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2Nyb2xsYmFyOjptaW5pbXVtVGh1bWJMZW5ndGggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU2Nyb2xsYmFyOjpvcGFjaXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTY3JvbGxiYXI6OnRyYWNrUmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTY3JvbGxiYXI6OnRyYWNrUGllY2VSZWN0V2l0aE1hcmdpbnMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjptaW5pbXVtVGh1bWJMZW5ndGgpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjpvcGFjaXR5KTogRGVsZXRl
ZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6c2Ny
b2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaDoKKwogMjAyMC0wNy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIE1ha2UgRG9jdW1lbnRQYXJzZXIuUGFyc2VyU3RhdGUgYW4gZW51bSBjbGFzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAyNmZlYWU1NzI1ZTdlMTBmYzBhY2UwNzlkNDdmZGE3NjkzYmUyMDE5Li43ZDI1ZTBm
NWM3MTRjZTY0ZDE4M2IxOTcwMDVkZWNjODg0OGNiZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIwLTA3LTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgU2Nyb2xsYmFyQ29udHJvbFNpemUgYW4gZW51bSBjbGFzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzI1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBNYWtlIFNjcm9sbGJhckNvbnRy
b2xTaXplIGFuIGVudW0gY2xhc3MsIGFuZCBtYWtlIHNvbWUgUmVuZGVyU2Nyb2xsYmFyIG1ldGhv
ZHMgY29uc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2lu
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlXaW46OnNob3dQb3B1cE1l
bnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eVdpbjo6Y2FsY3VsYXRlUG9z
aXRpb25BbmRTaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpjcmVhdGVTY3JvbGxiYXIpOgorCiAy
MDIwLTA3LTE2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W1dlYkF1dGhuXSBBZGQgYSBjb25zb2xlIG1lc3NhZ2U6ICJVc2VyIGdlc3R1cmUgaXMgcmVxdWly
ZWQgdG8gdXNlIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLiIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oCmluZGV4IDMxN2I2NTJmY2U0Y2I5MzExNWE2ZDNkNDk0Y2U0N2U2ODY3
MDI3ODMuLjc1ZDdhNDRhNzNkYzJhMTU0ZjQyZmExYTBkYmJkM2FlZDZlZjViOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtMTQ4LDkgKzE0OCw5IEBAIGVudW0gU2Ny
b2xsYmFyTW9kZSA6IHVpbnQ4X3QgewogICAgIFNjcm9sbGJhckFsd2F5c09uCiB9OwogCi1lbnVt
IFNjcm9sbGJhckNvbnRyb2xTaXplIDogdWludDhfdCB7Ci0gICAgUmVndWxhclNjcm9sbGJhciwK
LSAgICBTbWFsbFNjcm9sbGJhcgorZW51bSBjbGFzcyBTY3JvbGxiYXJDb250cm9sU2l6ZSA6IHVp
bnQ4X3QgeworICAgIFJlZ3VsYXIsCisgICAgU21hbGwKIH07CiAKIGVudW0gY2xhc3MgU2Nyb2xs
YmFyRXhwYW5zaW9uU3RhdGUgOiB1aW50OF90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAKaW5kZXggNjQ5NGM5ZmU1MjRmY2FlNzc5ZWMwYjhkNmJiNDcwNTU5MGEzNTQzYS4u
OGRlNDQwNGY1NTgyYjM3N2I5MTlkZThhY2ExMjY4ODYzZmM3NGRlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIFNjcm9sbFZp
ZXc6OnNldEhhc1Njcm9sbGJhckludGVybmFsKFJlZlB0cjxTY3JvbGxiYXI+JiBzY3JvbGxiYXIs
IFNjcm9sbGJhcgogCiBSZWY8U2Nyb2xsYmFyPiBTY3JvbGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAgcmV0dXJuIFNjcm9sbGJh
cjo6Y3JlYXRlTmF0aXZlU2Nyb2xsYmFyKCp0aGlzLCBvcmllbnRhdGlvbiwgUmVndWxhclNjcm9s
bGJhcik7CisgICAgcmV0dXJuIFNjcm9sbGJhcjo6Y3JlYXRlTmF0aXZlU2Nyb2xsYmFyKCp0aGlz
LCBvcmllbnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIpOwogfQogCiB2b2lk
IFNjcm9sbFZpZXc6OnNldFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1v
ZGUsIFNjcm9sbGJhck1vZGUgdmVydGljYWxNb2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhclRoZW1lLmgKaW5kZXggYjI5MWQ3YTBkNDk1MzhhYThkYWZjMWY1MzU0MjlhMTc3YmZm
YWY0MS4uNWMxNmY5YTE4OTNmNTE4MmU3N2FhMTZkNGJjYWJiYzliNDI3OTE5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnQoU2Nyb2xsYmFyJiwgR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgSW50UmVjdCYgLypkYW1hZ2VSZWN0Ki8pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBTY3JvbGxiYXJQYXJ0IGhpdFRlc3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UG9pbnQmKSB7
IHJldHVybiBOb1BhcnQ7IH0KICAgICAKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxiYXJUaGlja25l
c3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJFeHBh
bnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgeyByZXR1cm4g
MDsgfQorICAgIHZpcnR1YWwgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9s
U2l6ZSA9IFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25T
dGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgeyByZXR1cm4gMDsgfQog
CiAgICAgdmlydHVhbCBTY3JvbGxiYXJCdXR0b25zUGxhY2VtZW50IGJ1dHRvbnNQbGFjZW1lbnQo
KSBjb25zdCB7IHJldHVybiBTY3JvbGxiYXJCdXR0b25zU2luZ2xlOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxiYXJUaGVtZUlPUy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbGJhclRoZW1lSU9TLmgKaW5kZXggM2IyYTkwODEw
ZjdmYTYzMzE4NjE0MjMyOGViZDgyOTBjY2ZkNTg2Ni4uNzhjM2ZhZDQ3MTdkODM4M2U4YWM4MzQ5
MjlhY2I5MTYxMDY4ZmNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Njcm9sbGJhclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Nj
cm9sbGJhclRoZW1lSU9TLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBw
YWludChTY3JvbGxiYXImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VS
ZWN0KSBvdmVycmlkZTsKIAotICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29u
dHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNj
cm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CisgICAgaW50IHNjcm9s
bGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFNjcm9sbGJhckNvbnRyb2xTaXpl
OjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0
YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgYm9vbCBzdXBwb3J0c0NvbnRyb2xU
aW50cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAppbmRleCBlZWU5M2UyY2ZmZDQ3
MTlhZjljZmJiZmYzZWUzMTBmNmVkMWYyNTk1Li5iODM5OGM5OTA5NjIwOGIxNGMzZDkyYmM1OWYz
NjBiMDgwNWNlZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsYmFyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
YmFyVGhlbWVNYWMuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYWludChT
Y3JvbGxiYXImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KSBv
dmVycmlkZTsKICAgICB2b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEludFJlY3QmIGNvcm5lclJlY3QpIG92ZXJyaWRlOwogCi0gICAgaW50IHNjcm9sbGJhclRo
aWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIsIFNjcm9sbGJh
ckV4cGFuc2lvblN0YXRlID0gU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVy
cmlkZTsKKyAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0g
U2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlID0g
U2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKSBvdmVycmlkZTsKICAgICAKICAgICBi
b29sIHN1cHBvcnRzQ29udHJvbFRpbnRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIGJvb2wgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCkgY29uc3QgIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4
IDdlYmU3NWQ2YTc2ZDk5MTAwMjUwYWU3NzhiZWYyOGIwZjQwNmE3OTUuLmRjZThmY2MxODQ1YmY2
ZDI4YTZjYTRkYjk3NWI2MmYyOGJkNmMyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTE0NCw5ICsxNDQsOSBAQCBzdGF0aWMg
U2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVudCBnQnV0dG9uUGxhY2VtZW50ID0gU2Nyb2xsYmFyQnV0
dG9uc0RvdWJsZUVuZDsKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXpl
VG9OU0NvbnRyb2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewogICAg
IHN3aXRjaCAoY29udHJvbFNpemUpIHsKLSAgICBjYXNlIFJlZ3VsYXJTY3JvbGxiYXI6CisgICAg
Y2FzZSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhcjoKICAgICAgICAgcmV0dXJuIE5TQ29u
dHJvbFNpemVSZWd1bGFyOwotICAgIGNhc2UgU21hbGxTY3JvbGxiYXI6CisgICAgY2FzZSBTY3Jv
bGxiYXJDb250cm9sU2l6ZTo6U21hbGw6CiAgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21h
bGw7CiAgICAgfQogCkBAIC0yODUsMTIgKzI4NSwyMCBAQCBTY3JvbGxiYXJCdXR0b25zUGxhY2Vt
ZW50IFNjcm9sbGJhclRoZW1lTWFjOjpidXR0b25zUGxhY2VtZW50KCkgY29uc3QKICAgICByZXR1
cm4gZ0J1dHRvblBsYWNlbWVudDsKIH0KIAoraW5saW5lIGNvbnN0ZXhwciB1bnNpZ25lZCBzY3Jv
bGxiYXJTaXplVG9JbmRleChTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJTaXplKQorewor
ICAgIHN3aXRjaCAoc2Nyb2xsYmFyU2l6ZSkgeworICAgIGNhc2UgU2Nyb2xsYmFyQ29udHJvbFNp
emU6OlJlZ3VsYXI6IHJldHVybiAwOworICAgIGNhc2UgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlNt
YWxsOiByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgU2Nyb2xsYmFy
VGhlbWVNYWM6Omhhc0J1dHRvbnMoU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCiB7Ci0gICAgcmV0dXJu
IHNjcm9sbGJhci5lbmFibGVkKCkgJiYgYnV0dG9uc1BsYWNlbWVudCgpICE9IFNjcm9sbGJhckJ1
dHRvbnNOb25lCi0gICAgICAgICAgICAgJiYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IEhv
cml6b250YWxTY3JvbGxiYXIKLSAgICAgICAgICAgICA/IHNjcm9sbGJhci53aWR0aCgpCi0gICAg
ICAgICAgICAgOiBzY3JvbGxiYXIuaGVpZ2h0KCkpID49IDIgKiAoY1JlYWxCdXR0b25MZW5ndGhb
c2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldIC0gY0J1dHRvbkhpdEluc2V0W3Njcm9sbGJhci5jb250
cm9sU2l6ZSgpXSk7CisgICAgaWYgKHNjcm9sbGJhci5lbmFibGVkKCkgJiYgYnV0dG9uc1BsYWNl
bWVudCgpICE9IFNjcm9sbGJhckJ1dHRvbnNOb25lICYmIChzY3JvbGxiYXIub3JpZW50YXRpb24o
KSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbGJhci53aWR0
aCgpOworICAgIHJldHVybiBzY3JvbGxiYXIuaGVpZ2h0KCkgPj0gMiAqIChjUmVhbEJ1dHRvbkxl
bmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldIC0gY0J1
dHRvbkhpdEluc2V0W3Njcm9sbGJhclNpemVUb0luZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgp
KV0pOwogfQogCiBib29sIFNjcm9sbGJhclRoZW1lTWFjOjpoYXNUaHVtYihTY3JvbGxiYXImIHNj
cm9sbGJhcikKQEAgLTMxMiwxMyArMzIwLDEzIEBAIHN0YXRpYyBJbnRSZWN0IGJ1dHRvblJlcGFp
bnRSZWN0KGNvbnN0IEludFJlY3QmIGJ1dHRvblJlY3QsIFNjcm9sbGJhck9yaWVudGF0aW9uCiAK
ICAgICBJbnRSZWN0IHBhaW50UmVjdChidXR0b25SZWN0KTsKICAgICBpZiAob3JpZW50YXRpb24g
PT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgewotICAgICAgICBwYWludFJlY3Quc2V0V2lkdGgoY1Jl
YWxCdXR0b25MZW5ndGhbY29udHJvbFNpemVdKTsKKyAgICAgICAgcGFpbnRSZWN0LnNldFdpZHRo
KGNSZWFsQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KGNvbnRyb2xTaXplKV0pOwog
ICAgICAgICBpZiAoIXN0YXJ0KQotICAgICAgICAgICAgcGFpbnRSZWN0LnNldFgoYnV0dG9uUmVj
dC54KCkgLSAoY1JlYWxCdXR0b25MZW5ndGhbY29udHJvbFNpemVdIC0gYnV0dG9uUmVjdC53aWR0
aCgpKSk7CisgICAgICAgICAgICBwYWludFJlY3Quc2V0WChidXR0b25SZWN0LngoKSAtIChjUmVh
bEJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChjb250cm9sU2l6ZSldIC0gYnV0dG9u
UmVjdC53aWR0aCgpKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcGFpbnRSZWN0LnNldEhlaWdo
dChjUmVhbEJ1dHRvbkxlbmd0aFtjb250cm9sU2l6ZV0pOworICAgICAgICBwYWludFJlY3Quc2V0
SGVpZ2h0KGNSZWFsQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0luZGV4KGNvbnRyb2xTaXpl
KV0pOwogICAgICAgICBpZiAoIXN0YXJ0KQotICAgICAgICAgICAgcGFpbnRSZWN0LnNldFkoYnV0
dG9uUmVjdC55KCkgLSAoY1JlYWxCdXR0b25MZW5ndGhbY29udHJvbFNpemVdIC0gYnV0dG9uUmVj
dC5oZWlnaHQoKSkpOworICAgICAgICAgICAgcGFpbnRSZWN0LnNldFkoYnV0dG9uUmVjdC55KCkg
LSAoY1JlYWxCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoY29udHJvbFNpemUpXSAt
IGJ1dHRvblJlY3QuaGVpZ2h0KCkpKTsKICAgICB9CiAKICAgICByZXR1cm4gcGFpbnRSZWN0OwpA
QCAtMzM4LDE5ICszNDYsMTkgQEAgSW50UmVjdCBTY3JvbGxiYXJUaGVtZU1hYzo6YmFja0J1dHRv
blJlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQgcGEKICAgICBib29sIG91
dGVyQnV0dG9uID0gcGFydCA9PSBCYWNrQnV0dG9uU3RhcnRQYXJ0ICYmIChidXR0b25zUGxhY2Vt
ZW50KCkgPT0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZVN0YXJ0IHx8IGJ1dHRvbnNQbGFjZW1lbnQo
KSA9PSBTY3JvbGxiYXJCdXR0b25zRG91YmxlQm90aCk7CiAgICAgaWYgKG91dGVyQnV0dG9uKSB7
CiAgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xs
YmFyKQotICAgICAgICAgICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxiYXIueCgpLCBzY3JvbGxi
YXIueSgpLCBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldICsgKHBh
aW50aW5nID8gY091dGVyQnV0dG9uT3ZlcmxhcCA6IDApLCB0aGlja25lc3MpOworICAgICAgICAg
ICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxiYXIueCgpLCBzY3JvbGxiYXIueSgpLCBjT3V0ZXJC
dXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkp
XSArIChwYWludGluZyA/IGNPdXRlckJ1dHRvbk92ZXJsYXAgOiAwKSwgdGhpY2tuZXNzKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxiYXIueCgpLCBz
Y3JvbGxiYXIueSgpLCB0aGlja25lc3MsIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29u
dHJvbFNpemUoKV0gKyAocGFpbnRpbmcgPyBjT3V0ZXJCdXR0b25PdmVybGFwIDogMCkpOworICAg
ICAgICAgICAgcmVzdWx0ID0gSW50UmVjdChzY3JvbGxiYXIueCgpLCBzY3JvbGxiYXIueSgpLCB0
aGlja25lc3MsIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxi
YXIuY29udHJvbFNpemUoKSldICsgKHBhaW50aW5nID8gY091dGVyQnV0dG9uT3ZlcmxhcCA6IDAp
KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCiAgICAgLy8gT3VyIHJlcGFp
bnQgcmVjdCBpcyBzbGlnaHRseSBsYXJnZXIsIHNpbmNlIHdlIGFyZSBhIGJ1dHRvbiB0aGF0IGlz
IGFkamFjZW50IHRvIHRoZSB0cmFjay4KICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkg
PT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgewotICAgICAgICBpbnQgc3RhcnQgPSBwYXJ0ID09IEJh
Y2tCdXR0b25TdGFydFBhcnQgPyBzY3JvbGxiYXIueCgpIDogc2Nyb2xsYmFyLngoKSArIHNjcm9s
bGJhci53aWR0aCgpIC0gY091dGVyQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgp
XSAtIGNCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldOwotICAgICAgICByZXN1
bHQgPSBJbnRSZWN0KHN0YXJ0LCBzY3JvbGxiYXIueSgpLCBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJh
ci5jb250cm9sU2l6ZSgpXSwgdGhpY2tuZXNzKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gcGFydCA9
PSBCYWNrQnV0dG9uU3RhcnRQYXJ0ID8gc2Nyb2xsYmFyLngoKSA6IHNjcm9sbGJhci54KCkgKyBz
Y3JvbGxiYXIud2lkdGgoKSAtIGNPdXRlckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRl
eChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldIC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXpl
VG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldOworICAgICAgICByZXN1bHQgPSBJbnRS
ZWN0KHN0YXJ0LCBzY3JvbGxiYXIueSgpLCBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhclNpemVUb0lu
ZGV4KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKV0sIHRoaWNrbmVzcyk7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgaW50IHN0YXJ0ID0gcGFydCA9PSBCYWNrQnV0dG9uU3RhcnRQYXJ0ID8gc2Nyb2xs
YmFyLnkoKSA6IHNjcm9sbGJhci55KCkgKyBzY3JvbGxiYXIuaGVpZ2h0KCkgLSBjT3V0ZXJCdXR0
b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldIC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxi
YXIuY29udHJvbFNpemUoKV07Ci0gICAgICAgIHJlc3VsdCA9IEludFJlY3Qoc2Nyb2xsYmFyLngo
KSwgc3RhcnQsIHRoaWNrbmVzcywgY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXIuY29udHJvbFNpemUo
KV0pOworICAgICAgICBpbnQgc3RhcnQgPSBwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQgPyBz
Y3JvbGxiYXIueSgpIDogc2Nyb2xsYmFyLnkoKSArIHNjcm9sbGJhci5oZWlnaHQoKSAtIGNPdXRl
ckJ1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUo
KSldIC0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJv
bFNpemUoKSldOworICAgICAgICByZXN1bHQgPSBJbnRSZWN0KHNjcm9sbGJhci54KCksIHN0YXJ0
LCB0aGlja25lc3MsIGNCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFy
LmNvbnRyb2xTaXplKCkpXSk7CiAgICAgfQogICAgIAogICAgIGlmIChwYWludGluZykKQEAgLTM2
OSw4ICszNzcsOCBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lTWFjOjpmb3J3YXJkQnV0dG9uUmVj
dChTY3JvbGxiYXImIHNjcm9sbGJhciwgU2Nyb2xsYmFyUGFydAogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgICAgICAKICAgICBpbnQgdGhpY2tuZXNzID0gc2Nyb2xsYmFyVGhpY2tuZXNzKHNj
cm9sbGJhci5jb250cm9sU2l6ZSgpKTsKLSAgICBpbnQgb3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0
ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCldOwotICAgIGludCBidXR0b25M
ZW5ndGggPSBjQnV0dG9uTGVuZ3RoW3Njcm9sbGJhci5jb250cm9sU2l6ZSgpXTsKKyAgICBpbnQg
b3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5k
ZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXplKCkpXTsKKyAgICBpbnQgYnV0dG9uTGVuZ3RoID0gY0J1
dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXplVG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSld
OwogICAgIAogICAgIGJvb2wgb3V0ZXJCdXR0b24gPSBwYXJ0ID09IEZvcndhcmRCdXR0b25FbmRQ
YXJ0ICYmIChidXR0b25zUGxhY2VtZW50KCkgPT0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZUVuZCB8
fCBidXR0b25zUGxhY2VtZW50KCkgPT0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZUJvdGgpOwogICAg
IGlmIChvdXRlckJ1dHRvbikgewpAQCAtNDA3LDggKzQxNSw4IEBAIEludFJlY3QgU2Nyb2xsYmFy
VGhlbWVNYWM6OnRyYWNrUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgYm9vbCBwYWludGluZykK
ICAgICBpbnQgdGhpY2tuZXNzID0gc2Nyb2xsYmFyVGhpY2tuZXNzKHNjcm9sbGJhci5jb250cm9s
U2l6ZSgpKTsKICAgICBpbnQgc3RhcnRXaWR0aCA9IDA7CiAgICAgaW50IGVuZFdpZHRoID0gMDsK
LSAgICBpbnQgb3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFy
LmNvbnRyb2xTaXplKCldOwotICAgIGludCBidXR0b25MZW5ndGggPSBjQnV0dG9uTGVuZ3RoW3Nj
cm9sbGJhci5jb250cm9sU2l6ZSgpXTsKKyAgICBpbnQgb3V0ZXJCdXR0b25MZW5ndGggPSBjT3V0
ZXJCdXR0b25MZW5ndGhbc2Nyb2xsYmFyU2l6ZVRvSW5kZXgoc2Nyb2xsYmFyLmNvbnRyb2xTaXpl
KCkpXTsKKyAgICBpbnQgYnV0dG9uTGVuZ3RoID0gY0J1dHRvbkxlbmd0aFtzY3JvbGxiYXJTaXpl
VG9JbmRleChzY3JvbGxiYXIuY29udHJvbFNpemUoKSldOwogICAgIGludCBkb3VibGVCdXR0b25M
ZW5ndGggPSBvdXRlckJ1dHRvbkxlbmd0aCArIGJ1dHRvbkxlbmd0aDsKICAgICBzd2l0Y2ggKGJ1
dHRvbnNQbGFjZW1lbnQoKSkgewogICAgICAgICBjYXNlIFNjcm9sbGJhckJ1dHRvbnNTaW5nbGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1l
TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9j
ay5jcHAKaW5kZXggNjBjYWZmZjU0MWJlYjc5NjkwMzgyZmZjZTA3NWZhOTU5MjZlMzdmZS4uNzgx
NTkwZTY4ZDZjM2NkODAwOTNmOGZkNjc5MTAwYzE2OGU4NDJiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcApAQCAtNDEsNyAr
NDEsNyBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lTW9jazo6dHJhY2tSZWN0KFNjcm9sbGJhciYg
c2Nyb2xsYmFyLCBib29sKQogCiBpbnQgU2Nyb2xsYmFyVGhlbWVNb2NrOjpzY3JvbGxiYXJUaGlj
a25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUsIFNjcm9sbGJhckV4cGFuc2lv
blN0YXRlKQogewotICAgIHJldHVybiBjU2Nyb2xsYmFyVGhpY2tuZXNzW2NvbnRyb2xTaXplXTsK
KyAgICByZXR1cm4gY1Njcm9sbGJhclRoaWNrbmVzc1tzdGF0aWNfY2FzdDx1aW50OF90Pihjb250
cm9sU2l6ZSldOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lTW9jazo6cGFpbnRUcmFja0JhY2tn
cm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgdHJhY2tSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svU2Nyb2xsYmFyVGhlbWVNb2NrLmgKaW5kZXggZjA2NGUyZTU3NDM3MjM2ZTFjMDZjZWRjZTdj
OWFjYjIxZTBhNzE4ZS4uMmUwYzBiZDJhNzgwMWIzMTBlMDIyMGU4ZjAzODI1NDMxMmM5MDA0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1v
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9j
ay5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIFNjcm9sbGJhciB0
aGVtZSB1c2VkIGluIGltYWdlIHNuYXBzaG90cywgdG8gZWxpbWluYXRlIGFwcGVhcmFuY2UgZGlm
ZmVyZW5jZXMgYmV0d2VlbiBwbGF0Zm9ybXMuCiBjbGFzcyBTY3JvbGxiYXJUaGVtZU1vY2sgOiBw
dWJsaWMgU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUgewogcHVibGljOgotICAgIGludCBzY3JvbGxi
YXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3Jv
bGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkg
b3ZlcnJpZGU7CisgICAgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6
ZSA9IFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0
ZSA9IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CiAKIHByb3Rl
Y3RlZDoKICAgICBib29sIGhhc0J1dHRvbnMoU2Nyb2xsYmFyJikgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3BsYXlzdGF0aW9u
L1Njcm9sbGJhclRoZW1lUGxheVN0YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bs
YXlzdGF0aW9uL1Njcm9sbGJhclRoZW1lUGxheVN0YXRpb24uaAppbmRleCAwNDM2YjlmY2RmOTc4
ZTA4OGEwMjEwYjA3MDQwOGFkNzkyZTA1YmQxLi5jNjcxMTFiYjBmMTlhMDE0NjhiMTRmODgwMjI4
Yjg0NjI0ZDI4NzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wbGF5c3Rh
dGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcGxheXN0YXRpb24vU2Nyb2xsYmFyVGhlbWVQbGF5U3RhdGlvbi5oCkBAIC0zNCw3ICsz
NCw3IEBAIHB1YmxpYzoKICAgICBTY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uKCkgPSBkZWZhdWx0
OwogICAgIHZpcnR1YWwgflNjcm9sbGJhclRoZW1lUGxheVN0YXRpb24oKSA9IGRlZmF1bHQ7CiAK
LSAgICBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxh
clNjcm9sbGJhciwgU2Nyb2xsYmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25T
dGF0ZTo6RXhwYW5kZWQpIG92ZXJyaWRlOworICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Ny
b2xsYmFyQ29udHJvbFNpemUgPSBTY3JvbGxiYXJDb250cm9sU2l6ZTo6UmVndWxhciwgU2Nyb2xs
YmFyRXhwYW5zaW9uU3RhdGUgPSBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZTo6RXhwYW5kZWQpIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBoYXNCdXR0b25zKFNjcm9sbGJhciYpIG92ZXJyaWRlOwogICAg
IGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFyJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCmluZGV4IDMxZDkzNTQ4ODM4YTA0ZTc2NzA0OGM4
NTAzNmU3NGMyNzExN2QxM2EuLjM1YTNmMGMxMTdhZDM1NzZiMGMwODAxZjNlNDg3ZGIwNGMzNmE0
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCkBA
IC0xNDEsNyArMTQxLDcgQEAgdm9pZCBQb3B1cE1lbnVXaW46OnNob3coY29uc3QgSW50UmVjdCYg
ciwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAKICAgICBpZiAoIW1fc2Nyb2xsYmFyICYm
IHZpc2libGVJdGVtcygpIDwgY2xpZW50KCktPmxpc3RTaXplKCkpIHsKICAgICAgICAgLy8gV2Ug
bmVlZCBhIHNjcm9sbCBiYXIKLSAgICAgICAgbV9zY3JvbGxiYXIgPSBjbGllbnQoKS0+Y3JlYXRl
U2Nyb2xsYmFyKCp0aGlzLCBWZXJ0aWNhbFNjcm9sbGJhciwgU21hbGxTY3JvbGxiYXIpOworICAg
ICAgICBtX3Njcm9sbGJhciA9IGNsaWVudCgpLT5jcmVhdGVTY3JvbGxiYXIoKnRoaXMsIFZlcnRp
Y2FsU2Nyb2xsYmFyLCBTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGwpOwogICAgICAgICBtX3Nj
cm9sbGJhci0+c3R5bGVDaGFuZ2VkKCk7CiAgICAgfQogCkBAIC0zNTYsNyArMzU2LDcgQEAgdm9p
ZCBQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiBy
LCBGcmFtZVZpZXcqIHYpCiAKICAgICBpZiAobmF0dXJhbEhlaWdodCA+IG1heFBvcHVwSGVpZ2h0
KQogICAgICAgICAvLyBXZSBuZWVkIHJvb20gZm9yIGEgc2Nyb2xsYmFyCi0gICAgICAgIHBvcHVw
V2lkdGggKz0gU2Nyb2xsYmFyVGhlbWU6OnRoZW1lKCkuc2Nyb2xsYmFyVGhpY2tuZXNzKFNtYWxs
U2Nyb2xsYmFyKTsKKyAgICAgICAgcG9wdXBXaWR0aCArPSBTY3JvbGxiYXJUaGVtZTo6dGhlbWUo
KS5zY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemU6OlNtYWxsKTsKIAogICAg
IC8vIEFkZCBwYWRkaW5nIHRvIGFsaWduIHRoZSBwb3B1cCB0ZXh0IHdpdGggdGhlIDxzZWxlY3Q+
IHRleHQKICAgICBwb3B1cFdpZHRoICs9IHN0ZDo6bWF4PGludD4oMCwgY2xpZW50KCktPmNsaWVu
dFBhZGRpbmdSaWdodCgpIC0gY2xpZW50KCktPmNsaWVudEluc2V0UmlnaHQoKSkgKyBzdGQ6Om1h
eDxpbnQ+KDAsIGNsaWVudCgpLT5jbGllbnRQYWRkaW5nTGVmdCgpIC0gY2xpZW50KCktPmNsaWVu
dEluc2V0TGVmdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9T
Y3JvbGxiYXJUaGVtZVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbGJh
clRoZW1lV2luLmgKaW5kZXggMDU1ZThlZjZjZjkxMTNjNmMwOTUwMDE5M2IyNzlmNjdjYmI5Yjdj
ZC4uOTY2YzY4NGRkMzIxMmY2YTNhMDcwYmNjNDQzMmY5M2I1YTBhYTYxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmgKQEAgLTM1LDcgKzM1
LDcgQEAgcHVibGljOgogICAgIFNjcm9sbGJhclRoZW1lV2luKCk7CiAgICAgdmlydHVhbCB+U2Ny
b2xsYmFyVGhlbWVXaW4oKTsKIAotICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFy
Q29udHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9
IFNjcm9sbGJhckV4cGFuc2lvblN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CisgICAgaW50IHNj
cm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFNjcm9sbGJhckNvbnRyb2xT
aXplOjpSZWd1bGFyLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSA9IFNjcm9sbGJhckV4cGFuc2lv
blN0YXRlOjpFeHBhbmRlZCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHRoZW1lQ2hhbmdlZCgpIG92
ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5k
ZXggMjNmYzllYzE0MDgwNzAyMzlmZjc2ZTdmYzU1Y2I5MzEzMWYxNWM2Ni4uOTc0ZTg2OTcwZDcz
NjgxMDc0MzliNGVhNTE0Yjk3MmM0NmM4MjZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCkBAIC0zNDc3LDcgKzM0NzcsNyBAQCBSZWY8U2Nyb2xsYmFyPiBSZW5k
ZXJMYXllcjo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9u
KQogICAgIGlmIChoYXNDdXN0b21TY3JvbGxiYXJTdHlsZSkKICAgICAgICAgd2lkZ2V0ID0gUmVu
ZGVyU2Nyb2xsYmFyOjpjcmVhdGVDdXN0b21TY3JvbGxiYXIoKnRoaXMsIG9yaWVudGF0aW9uLCBk
b3duY2FzdDxSZW5kZXJCb3g+KGFjdHVhbFJlbmRlcmVyKS5lbGVtZW50KCkpOwogICAgIGVsc2Ug
ewotICAgICAgICB3aWRnZXQgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhp
cywgb3JpZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIpOworICAgICAgICB3aWRnZXQgPSBTY3Jv
bGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhpcywgb3JpZW50YXRpb24sIFNjcm9sbGJh
ckNvbnRyb2xTaXplOjpSZWd1bGFyKTsKICAgICAgICAgZGlkQWRkU2Nyb2xsYmFyKHdpZGdldC5n
ZXQoKSwgb3JpZW50YXRpb24pOwogICAgICAgICBpZiAocGFnZSgpLmlzTW9uaXRvcmluZ1doZWVs
RXZlbnRzKCkpCiAgICAgICAgICAgICBzY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0
TW9uaXRvcihwYWdlKCkud2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcAppbmRleCA1ZTM2ZDFhNzYyODlhMWRmN2Iw
ZDJhNDNmMjU2NTc0Mjg1M2EzNmQ2Li5hYjE3YWU4MTc3MWQ4N2E4ZmExOGZjNDI3ZDRjNzBjYWRj
MGQ3NDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xs
YmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNw
cApAQCAtNDIsNyArNDIsNyBAQCBSZWY8U2Nyb2xsYmFyPiBSZW5kZXJTY3JvbGxiYXI6OmNyZWF0
ZUN1c3RvbVNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZQogfQogCiBSZW5kZXJT
Y3JvbGxiYXI6OlJlbmRlclNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEs
IFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBFbGVtZW50KiBvd25lckVsZW1lbnQs
IEZyYW1lKiBvd25pbmdGcmFtZSkKLSAgICA6IFNjcm9sbGJhcihzY3JvbGxhYmxlQXJlYSwgb3Jp
ZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIsIFJlbmRlclNjcm9sbGJhclRoZW1lOjpyZW5kZXJT
Y3JvbGxiYXJUaGVtZSgpLCB0cnVlKQorICAgIDogU2Nyb2xsYmFyKHNjcm9sbGFibGVBcmVhLCBv
cmllbnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemU6OlJlZ3VsYXIsIFJlbmRlclNjcm9sbGJh
clRoZW1lOjpyZW5kZXJTY3JvbGxiYXJUaGVtZSgpLCB0cnVlKQogICAgICwgbV9vd25lckVsZW1l
bnQob3duZXJFbGVtZW50KQogICAgICwgbV9vd25pbmdGcmFtZShvd25pbmdGcmFtZSkKIHsKQEAg
LTI2Nyw3ICsyNjcsNyBAQCB2b2lkIFJlbmRlclNjcm9sbGJhcjo6cGFpbnRQYXJ0KEdyYXBoaWNz
Q29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBTY3JvbGxiYXJQYXJ0CiAgICAgcGFydFJlbmRlcmVy
LT5wYWludEludG9SZWN0KGdyYXBoaWNzQ29udGV4dCwgbG9jYXRpb24oKSwgcmVjdCk7CiB9CiAK
LUludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjpidXR0b25SZWN0KFNjcm9sbGJhclBhcnQgcGFydFR5
cGUpCitJbnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdChTY3JvbGxiYXJQYXJ0IHBh
cnRUeXBlKSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnRSZW5kZXJlciA9
IG1fcGFydHMuZ2V0KHBhcnRUeXBlKTsKICAgICBpZiAoIXBhcnRSZW5kZXJlcikKQEAgLTI5OSw3
ICsyOTksNyBAQCBJbnRSZWN0IFJlbmRlclNjcm9sbGJhcjo6YnV0dG9uUmVjdChTY3JvbGxiYXJQ
YXJ0IHBhcnRUeXBlKQogICAgICAgICAgICAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGhlaWdodCgp
IDogcGl4ZWxTbmFwcGVkSW50U2l6ZS5oZWlnaHQoKSk7CiB9CiAKLUludFJlY3QgUmVuZGVyU2Ny
b2xsYmFyOjp0cmFja1JlY3QoaW50IHN0YXJ0TGVuZ3RoLCBpbnQgZW5kTGVuZ3RoKQorSW50UmVj
dCBSZW5kZXJTY3JvbGxiYXI6OnRyYWNrUmVjdChpbnQgc3RhcnRMZW5ndGgsIGludCBlbmRMZW5n
dGgpIGNvbnN0CiB7CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcGFydCA9IG1fcGFydHMuZ2V0
KFRyYWNrQkdQYXJ0KTsKICAgICBpZiAocGFydCkKQEAgLTMyMyw3ICszMjMsNyBAQCBJbnRSZWN0
IFJlbmRlclNjcm9sbGJhcjo6dHJhY2tSZWN0KGludCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0
aCkKICAgICByZXR1cm4gSW50UmVjdCh4KCksIHkoKSArIHN0YXJ0TGVuZ3RoLCB3aWR0aCgpLCBo
ZWlnaHQoKSAtIHRvdGFsTGVuZ3RoKTsKIH0KIAotSW50UmVjdCBSZW5kZXJTY3JvbGxiYXI6OnRy
YWNrUGllY2VSZWN0V2l0aE1hcmdpbnMoU2Nyb2xsYmFyUGFydCBwYXJ0VHlwZSwgY29uc3QgSW50
UmVjdCYgb2xkUmVjdCkKK0ludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjp0cmFja1BpZWNlUmVjdFdp
dGhNYXJnaW5zKFNjcm9sbGJhclBhcnQgcGFydFR5cGUsIGNvbnN0IEludFJlY3QmIG9sZFJlY3Qp
IGNvbnN0CiB7CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcGFydFJlbmRlcmVyID0gbV9wYXJ0
cy5nZXQocGFydFR5cGUpOwogICAgIGlmICghcGFydFJlbmRlcmVyKQpAQCAtMzQyLDcgKzM0Miw3
IEBAIEludFJlY3QgUmVuZGVyU2Nyb2xsYmFyOjp0cmFja1BpZWNlUmVjdFdpdGhNYXJnaW5zKFNj
cm9sbGJhclBhcnQgcGFydFR5cGUsIGNvbnN0CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLWludCBS
ZW5kZXJTY3JvbGxiYXI6Om1pbmltdW1UaHVtYkxlbmd0aCgpCitpbnQgUmVuZGVyU2Nyb2xsYmFy
OjptaW5pbXVtVGh1bWJMZW5ndGgoKSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhclBhcnQq
IHBhcnRSZW5kZXJlciA9IG1fcGFydHMuZ2V0KFRodW1iUGFydCk7CiAgICAgaWYgKCFwYXJ0UmVu
ZGVyZXIpCkBAIC0zNTEsNyArMzUxLDcgQEAgaW50IFJlbmRlclNjcm9sbGJhcjo6bWluaW11bVRo
dW1iTGVuZ3RoKCkKICAgICByZXR1cm4gb3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xs
YmFyID8gcGFydFJlbmRlcmVyLT53aWR0aCgpIDogcGFydFJlbmRlcmVyLT5oZWlnaHQoKTsKIH0K
IAotZmxvYXQgUmVuZGVyU2Nyb2xsYmFyOjpvcGFjaXR5KCkKK2Zsb2F0IFJlbmRlclNjcm9sbGJh
cjo6b3BhY2l0eSgpIGNvbnN0CiB7CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcGFydFJlbmRl
cmVyID0gbV9wYXJ0cy5nZXQoU2Nyb2xsYmFyQkdQYXJ0KTsKICAgICBpZiAoIXBhcnRSZW5kZXJl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuaAppbmRleCBiYTE3
MjM1YjE3YzRiZjU1NTEzYjQ4YWIxNGE0MWZhY2M3MzA5N2Y2Li5iZjE2MjQ1ODgzYjA2MmJkZDJj
ZDI0ZmNhYzdhYTFhNTIxYWI4Y2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2Nyb2xsYmFyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNjcm9sbGJhci5oCkBAIC00OCwxMyArNDgsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBwYWlu
dFBhcnQoR3JhcGhpY3NDb250ZXh0JiwgU2Nyb2xsYmFyUGFydCwgY29uc3QgSW50UmVjdCYpOwog
Ci0gICAgSW50UmVjdCBidXR0b25SZWN0KFNjcm9sbGJhclBhcnQpOwotICAgIEludFJlY3QgdHJh
Y2tSZWN0KGludCBzdGFydExlbmd0aCwgaW50IGVuZExlbmd0aCk7Ci0gICAgSW50UmVjdCB0cmFj
a1BpZWNlUmVjdFdpdGhNYXJnaW5zKFNjcm9sbGJhclBhcnQsIGNvbnN0IEludFJlY3QmKTsKKyAg
ICBJbnRSZWN0IGJ1dHRvblJlY3QoU2Nyb2xsYmFyUGFydCkgY29uc3Q7CisgICAgSW50UmVjdCB0
cmFja1JlY3QoaW50IHN0YXJ0TGVuZ3RoLCBpbnQgZW5kTGVuZ3RoKSBjb25zdDsKKyAgICBJbnRS
ZWN0IHRyYWNrUGllY2VSZWN0V2l0aE1hcmdpbnMoU2Nyb2xsYmFyUGFydCwgY29uc3QgSW50UmVj
dCYpIGNvbnN0OwogCi0gICAgaW50IG1pbmltdW1UaHVtYkxlbmd0aCgpOworICAgIGludCBtaW5p
bXVtVGh1bWJMZW5ndGgoKSBjb25zdDsKIAotICAgIGZsb2F0IG9wYWNpdHkoKTsKKyAgICBmbG9h
dCBvcGFjaXR5KCkgY29uc3Q7CiAgICAgCiAgICAgYm9vbCBpc0hpZGRlbkJ5U3R5bGUoKSBjb25z
dCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCA1ZTQ4
ZjA0ZjYyOWI4NDMzNGZmMGMzZThlMjk1MDk3YmVjMGI2Y2I3Li5iMzZlYWRmNjI4Y2U1NTI4MmU1
YWQ2NWE2YzEyN2NkZGRjMzc2ZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaApAQCAtMTk5LDcgKzE5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcG9wdXBP
cHRpb25TdXBwb3J0c1RleHRJbmRlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgcG9wdXBNZW51U2l6ZShjb25zdCBS
ZW5kZXJTdHlsZSYsIEludFJlY3QmKSBjb25zdCB7IHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9w
dXBNZW51U2l6ZU5vcm1hbDsgfQogCi0gICAgdmlydHVhbCBTY3JvbGxiYXJDb250cm9sU2l6ZSBz
Y3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIHsgcmV0dXJuIFJlZ3VsYXJT
Y3JvbGxiYXI7IH0KKyAgICB2aXJ0dWFsIFNjcm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJhckNv
bnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgeyByZXR1cm4gU2Nyb2xsYmFyQ29udHJvbFNp
emU6OlJlZ3VsYXI7IH0KIAogICAgIC8vIFJldHVybnMgdGhlIHJlcGVhdCBpbnRlcnZhbCBvZiB0
aGUgYW5pbWF0aW9uIGZvciB0aGUgcHJvZ3Jlc3MgYmFyLgogICAgIHZpcnR1YWwgU2Vjb25kcyBh
bmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzJikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IDNhNTIz
YWIyM2UwZDdiNjk0NTQwNjdhZDgzNmUzYmU2Mzc2NTA5YTcuLmQ5YjgwNzRiODZhOWNlMDViNTY3
YzVmODgzNTI2YTUwODQwNTMyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBDb2xvciBwbGF0Zm9ybUZv
Y3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7
CiAgICAgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAotICAgIFNjcm9sbGJhckNvbnRyb2xT
aXplIHNjcm9sbGJhckNvbnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgZmluYWwgeyByZXR1
cm4gU21hbGxTY3JvbGxiYXI7IH0KKyAgICBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJD
b250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJuIFNjcm9sbGJhckNv
bnRyb2xTaXplOjpTbWFsbDsgfQogCiAgICAgaW50IG1pbmltdW1NZW51TGlzdFNpemUoY29uc3Qg
UmVuZGVyU3R5bGUmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHAKaW5kZXggNGNlOTdhYjQ5YjJkNjg3
NzgxZWYyODdkOGIzNDlkZGU5N2Q1YTk0OC4uM2NhY2I5YWVjNjRjODlhNTEyMDg3MDAwZDI2YTU3
ZTA2ZTE4MWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBv
cHVwTWVudVByb3h5V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2Vi
UG9wdXBNZW51UHJveHlXaW4uY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eVdpbjo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0
aW9uLCBkb3UKICAgICBIV05EIGhvc3RXaW5kb3cgPSBtX3dlYlZpZXctPndpbmRvdygpOwogCiAg
ICAgaWYgKCFtX3Njcm9sbGJhciAmJiB2aXNpYmxlSXRlbXMoKSA8IG1faXRlbXMuc2l6ZSgpKSB7
Ci0gICAgICAgIG1fc2Nyb2xsYmFyID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIo
KnRoaXMsIFZlcnRpY2FsU2Nyb2xsYmFyLCBTbWFsbFNjcm9sbGJhcik7CisgICAgICAgIG1fc2Ny
b2xsYmFyID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIoKnRoaXMsIFZlcnRpY2Fs
U2Nyb2xsYmFyLCBTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGwpOwogICAgICAgICBtX3Njcm9s
bGJhci0+c3R5bGVDaGFuZ2VkKCk7CiAgICAgfQogCkBAIC0zODQsNyArMzg0LDcgQEAgdm9pZCBX
ZWJQb3B1cE1lbnVQcm94eVdpbjo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAKICAgICBpZiAobmF0dXJhbEhlaWdodCA+IG1heFBvcHVwSGVpZ2h0KSB7CiAg
ICAgICAgIC8vIFdlIG5lZWQgcm9vbSBmb3IgYSBzY3JvbGxiYXIKLSAgICAgICAgcG9wdXBXaWR0
aCArPSBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKS5zY3JvbGxiYXJUaGlja25lc3MoU21hbGxTY3Jv
bGxiYXIpOworICAgICAgICBwb3B1cFdpZHRoICs9IFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpLnNj
cm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGwpOwogICAgIH0KIAog
ICAgIHBvcHVwSGVpZ2h0ICs9IDIgKiBwb3B1cFdpbmRvd0JvcmRlcldpZHRoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggMjA3
ZjJhODRiY2I1YWQzOTllNDNiMTAzMmRkOTIyZjJhNzAzMTcxNy4uZTc4YTViNDZiZjMwZTA2Yzlm
MTNmZTcwYjYzYjlhMDNhYjRkNGU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xMjg2LDcgKzEyODYsNyBAQCBjb25zdCBQ
bHVnaW5WaWV3KiBQREZQbHVnaW46OnBsdWdpblZpZXcoKSBjb25zdAogCiBSZWY8U2Nyb2xsYmFy
PiBQREZQbHVnaW46OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRh
dGlvbikKIHsKLSAgICBhdXRvIHdpZGdldCA9IFNjcm9sbGJhcjo6Y3JlYXRlTmF0aXZlU2Nyb2xs
YmFyKCp0aGlzLCBvcmllbnRhdGlvbiwgUmVndWxhclNjcm9sbGJhcik7CisgICAgYXV0byB3aWRn
ZXQgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcigqdGhpcywgb3JpZW50YXRpb24s
IFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFyKTsKICAgICBpZiAob3JpZW50YXRpb24gPT0g
SG9yaXpvbnRhbFNjcm9sbGJhcikgewogICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXJMYXll
ciA9IGFkb3B0TlMoW1tXS1BERlBsdWdpblNjcm9sbGJhckxheWVyIGFsbG9jXSBpbml0V2l0aFBE
RlBsdWdpbjp0aGlzXSk7CiAgICAgICAgIFttX2NvbnRhaW5lckxheWVyIGFkZFN1YmxheWVyOm1f
aG9yaXpvbnRhbFNjcm9sbGJhckxheWVyLmdldCgpXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>