<?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>233123</bug_id>
          
          <creation_ts>2021-11-15 05:42:54 -0800</creation_ts>
          <short_desc>Canvas rendering context should not be tied to PlatformLayer</short_desc>
          <delta_ts>2021-11-18 12:38:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>233175</dependson>
          <blocked>231009</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>dino</cc>
    
    <cc>fujii</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815028</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-15 05:42:54 -0800</bug_when>
    <thetext>Canvas rendering context should not be tied to PlatformLayer

Currently CanvasRenderingContext &quot;draws to&quot; PlatformLayer, i.e. has CanvasRenderingContext::platformLayer().
This does not work for UI-side compositing, as we do not want the WebGL graphics context need CALayer in the UI process.

Instead there should be some sort of abstraction that can be used in conjunction with GraphicsLayer contents property, so that what CanvasRenderingContext draws can be shown as GraphicsLayer contents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815037</commentid>
    <comment_count>1</comment_count>
      <attachid>444245</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-15 06:20:56 -0800</bug_when>
    <thetext>Created attachment 444245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815473</commentid>
    <comment_count>2</comment_count>
      <attachid>444380</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-16 07:39:00 -0800</bug_when>
    <thetext>Created attachment 444380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815475</commentid>
    <comment_count>3</comment_count>
      <attachid>444381</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-16 07:43:05 -0800</bug_when>
    <thetext>Created attachment 444381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816511</commentid>
    <comment_count>4</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-18 10:51:33 -0800</bug_when>
    <thetext>Currently implemented as part of the parent patch in bug 231009</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444245</attachid>
            <date>2021-11-15 06:20:56 -0800</date>
            <delta_ts>2021-11-16 07:38:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233123-20211115162054.patch</filename>
            <type>text/plain</type>
            <size>79827</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNlMTkwYTQwYmRiZWVh
NWFkN2NkMmU1MjcwM2RiZDQ0NWNiYTFmYS4uZDg2ZDE1OThkZGNkMWFjNzI2Yjg3MGFjY2YwYjdk
MTdkYjg4NGZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDIxLTExLTE1ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzIHJlbmRl
cmluZyBjb250ZXh0IHNob3VsZCBub3QgYmUgdGllZCB0byBQbGF0Zm9ybUxheWVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxMjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVA6IElzIG1pc3Npbmcg
R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIGltcGxlbWVudGF0aW9uCisgICAg
ICAgIGZvciBjdXJyZW50IENhaXJvIFdlYkdML0NhbnZhcyBpbXBsZW1lbnRhdGlvbi4KKworICAg
ICAgICBBZGQgR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIGludGVyZmFjZSwg
d2hpY2ggY2FuIGJlCisgICAgICAgIHVzZWQgdG8gcnVuIGNsaWVudCBzcGVjaWZpYyBjb2RlIGR1
cmluZyBjb21wb3NpdG9yIGxheWVyIGNvbnRlbnRzIHVwZGF0ZQorICAgICAgICBwaGFzZSAoaS5l
LiBsYXllciBkaXNwbGF5IHBoYXNlKS4KKyAgICAgICAgTWFrZSBDYW52YXNSZW5kZXJpbmdDb250
ZXh0IHJldHVybiB0aGlzIG9iamVjdCBpbnN0ZWFkIG9mIFBsYXRmb3JtTGF5ZXIuCisgICAgICAg
IFRoaXMgd2F5IGZ1dHVyZSBDb2NvYSBXZWJHTCBVSS1zaWRlIGNvbXBvc2l0aW5nIGltcGxlbWVu
dGF0aW9uIGNhbgorICAgICAgICB1c2UgUGxhdGZvcm1DQUxheWVyIGNhbGxzIHRvIHNldHVwIGVh
Y2ggZGlzcGxheWVkIGZyYW1lLCBpbnN0ZWFkIG9mIHNldHRpbmcKKyAgICAgICAgdGhlIGNvbnRl
bnRzIHRvIENBTGF5ZXIuIFRoaXMgYWxsb3dzIHRoZSBmdXR1cmUgUGxhdGZvcm1DQUxheWVyUmVt
b3RlIHRvCisgICAgICAgIHN5bmNocm9uaXplIHRoZXNlIHByb3BlcnRpZXMgYXMgZmlyc3QtY2xh
c3MsIGluc3RlYWQgb2YgdXNpbmcgaG9zdGVkIENBTGF5ZXIuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCByZWZhY3Rvci4KKworICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
Q29yZS5vcmRlcjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpsYXllckNvbnRlbnRzRGlzcGxh
eURlbGVnYXRlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpwbGF0Zm9ybUxh
eWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGxhdGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpzZXRDb250ZW50c0Zyb21EaXNwbGF5RGVsZWdhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlOjpvcmllbnRh
dGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6
OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzRnJv
bURpc3BsYXlEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6Omxh
eWVyRGlkRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUNvbnRlbnRzUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2Ev
UGxhdGZvcm1DQUxheWVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5
ZXJDb2NvYTo6bGF5ZXJUeXBlRm9yUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXJDb2NvYTo6UGxhdGZvcm1DQUxheWVyQ29jb2EpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyQ29jb2E6OmNvbW1vbkluaXQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZGlzcGxheUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6bWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGxh
dGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRp
YWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29tcG9zaXRlZFJl
c3VsdHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSBDb2NvYSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbiB0byB0aGUgY29uY3JldGUgY2xhc3MgV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5CisgICAgICAgIHRvIHNpbXBsaWZ5IHRoZSBjbGFzcyBoaWVyYXJj
aHkgYW5kIHJlbW92ZSB0aGUgbmVlZCB0byBpZmRlZiBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjbGFz
cyBoaWVyYXJjaHkuCisgICAgICAgIFRoZSBjb25jcmV0ZSBjbGFzcyBuZWVkcyB0aGUgcGxhdGZv
cm0gZGVwZW5kZW50IHByb3BlcnRpZXMgYW55d2F5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW06IFJlbW92ZWQuCisgICAgICAgICgtW1dlYkdMTGF5
ZXIgaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmNvbnRlbnRzT3BhcXVlOl0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXZWJHTExheWVyIHNldFRyYW5zZm9ybTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV2ViR0xMYXllciBzZXRBbmNob3JQb2ludDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2Vi
R0xMYXllciBkaXNwbGF5XSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2VXQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisKIDIwMjEtMTEtMTEgIEtpbW1vIEtpbm51
bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0
dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1NDMy
ZjUxYTg3YjlhNGJmODlhMTM2YWM5YjRlOTc4YTQ1ZmU5YzJhLi5mNWI3MGRjYjg5YzJjMDc0YmM5
NjhiYjA2NzhiZTRkNjA4NmFmNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTEx
LTE1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2Fu
dmFzIHJlbmRlcmluZyBjb250ZXh0IHNob3VsZCBub3QgYmUgdGllZCB0byBQbGF0Zm9ybUxheWVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxMjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHksIGkuZS4gdGhlIFdlYkNvbnRlbnQKKyAgICAgICAg
cHJvY2VzcyBzaWRlIEdyYXBoaWNzQ29udGV4dEdMIGltcGxlbWVudGF0aW9uLCB0byBleHBvcnQK
KyAgICAgICAgdGhlIFdlYkdMIGFzIEdyYXBoaWNzTGF5ZXIgY29udGVudHMgdmlhIEdyYXBoaWNz
TGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS4KKworICAgICAgICBBZGRzIGEgcmVhbCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hIHN1YmNsYXNzIHRoYXQgaW1wbGVtZW50cyB0aGUgcGxh
dGZvcm0KKyAgICAgICAgc3BlY2lmaWMgcGFydHMuCisKKyAgICAgICAgQWRkIGEgd29ya2Fyb3Vu
ZCB0aGF0IGltcGxlbWVudHMgdGhlIFBsYXRmb3JtQ0FMYXllciBjb250ZW50cyBwcm9wZXJ0eSBl
eGFjdGx5CisgICAgICAgIHRoZSBzYW1lIGFzIGJlZm9yZSwgdmlhIGhvc3RlZCBDQUxheWVyLiBJ
biB0aGUgZnV0dXJlLCB0aGlzIGlzIHJlbW92ZWQgYW5kCisgICAgICAgIFBsYXRmb3JtQ0FMYXll
ciBjb250ZW50cyBwcm9wZXJ0eSB3aWxsIGJlIGltcGxlbWVudGVkIGFzIHBhcnQgb2YgdGhlCisg
ICAgICAgIGxheWVyIHByb3BlcnRpZXMgZm9yIHRoZSBVSS1zaWRlIGNvbXBvc2l0aW5nIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5OjpsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgIE1vdmUgdGhl
IHBsYXRmb3JtIGRlZmluZWQgZnVuY3Rpb25zIHRvIHRoZSBzdWJjbGFzcyB0byBhdm9pZCBpZmRl
ZmZpbmcuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1t
OgorICAgICAgICAoLVtXS0NvbnRlbnRzUHJvdmlkZWRMYXllciBpbml0XSk6CisgICAgICAgICgt
W1dLQ29udGVudHNQcm92aWRlZExheWVyIGRpc3BsYXldKToKKyAgICAgICAgKFdlYktpdDo6UGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpjcmVhdGVDb250ZW50c1Byb3ZpZGVkTGF5ZXIpOgor
ICAgICAgICBBZGQgYSB0ZW1wb3JhcnkgaW1wbGVtZW50YXRpb24gdGhhdCBzdGlsbCB1c2VzIENB
TGF5ZXIgaG9zdGluZyB0bworICAgICAgICBzaG93IHRoZSBXZWJHTCB0aGF0IGlzIGltcG9ydGVk
IHRvIHRocm91Z2ggQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuCisgICAgICAgIFRoZSBjdXJyZW50
IFBsYXRmb3JtQ0FMYXllclJlbW90ZSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBoYXZlCisgICAg
ICAgIHRoZSBleHBsaWNpdCBub3Rpb24gb2YgZXhwb3J0aW5nIHRoZSAiY29udGVudHMiIHByb3Bl
cnR5IHdpdGhvdXQKKyAgICAgICAgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuCisKIDIwMjEtMTEt
MTEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBJT1N1
cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggZDNhMmZiYmI4NjgyZDE2ZDBjMzVjNzE4MjNhNWQzNGRmMWM1
MmI2NC4uYmE5YzIwMzllZTE4ZTZjM2Q2NWNiMDUwZDdmOTMzNTVjZTljZjI4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC0xMzEyLDYgKzEzMTIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyRmFjdG9yeS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclRyYW5z
Zm9ybS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDEzNjg4MDNiYTQwN2ZkYTgxNzAx
OTlhZjEwYmI2M2YxMzAwYjM3YTMuLjlmYTAwOWUwOGViZDE3NWRjNTdjOTI2N2IyYzE2OTg1ZDRm
MmZkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMjcsMTAgKzMyNywxMCBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUubW0KICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQotICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVk
aW9VdGlsaXRpZXNDb2NvYS5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCiAKKwogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0
ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggODQzMDQx
NWYxYzQ3MjcyODdmNDc3ZDM1ZjkwZTQyNTM1NzE0YWZiOS4uODljODM4NmEzN2ExYWRjMjE4OTYx
MTEyMTZiNzdhNWNhZDc0OWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIwMjAsNiArMjAyMCw3IEBA
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0xJbWFnZUV4dHJhY3Rvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CitwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVHJhbnNmb3JtLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc1R5cGVzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYjkwZmY1MTFhNDZl
M2VkNTAxODkyYzdjMTY1ZTdkOTMwZWVkNjhiMy4uOGQzM2U1MWQxZmMyMTM5MjE4ZTAwMTE3Mzdl
YWZkYmI5MjRlMmU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zODYsNyArMzg2LDYg
QEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0gQG5vLXVuaWZ5
CiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdh
dGUubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KLXBs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CmluZGV4IDlmODVlNDk4NmM1M2ExY2M4ZDYzYjMzOTRkM2Y3Mjk1ODMyYWYzODcuLjMzYWMzNWRm
N2QzZDU4M2M4NmQyNzU2NTRjYWRjMWNhZjc1YjA3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAt
MjA0NzIsOCArMjA0NzIsNiBAQCBfT0JKQ19DTEFTU18kX1dlYkNvcmVGdWxsU2NyZWVuV2Fybmlu
Z1ZpZXcKIF9PQkpDX01FVEFDTEFTU18kX1dlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcKIF9P
QkpDX0NMQVNTXyRfV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cKIF9PQkpDX01FVEFDTEFTU18kX1dl
YkNvcmVGdWxsU2NyZWVuV2luZG93Ci1fT0JKQ19DTEFTU18kX1dlYkdMTGF5ZXIKLV9PQkpDX01F
VEFDTEFTU18kX1dlYkdMTGF5ZXIKIF9PQkpDX0NMQVNTXyRfV2ViTGF5ZXIKIF9PQkpDX01FVEFD
TEFTU18kX1dlYkxheWVyCiBfT0JKQ19DTEFTU18kX1dlYlNjcmlwdE9iamVjdApAQCAtMzA2NDMs
OCArMzA2NDEsNiBAQCBfT0JKQ19JVkFSXyRfV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZp
ZXcuX2V4aXRXYXJuaW5nCiBfT0JKQ19JVkFSXyRfV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRl
clZpZXcuX3RhcmdldAogX09CSkNfSVZBUl8kX1dlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJW
aWV3Ll9hY3Rpb24KIF9PQkpDX0lWQVJfJF9XZWJDb3JlRnVsbFNjcmVlbldhcm5pbmdWaWV3Ll90
ZXh0RmllbGQKLV9PQkpDX0lWQVJfJF9XZWJHTExheWVyLm1fY29udGV4dAotX09CSkNfSVZBUl8k
X1dlYkdMTGF5ZXIubV9sYXllck93bmVyCiBfT0JKQ19JVkFSXyRfV2ViU2NyaXB0T2JqZWN0UHJp
dmF0ZS5pbXAKIF9PQkpDX0lWQVJfJF9XZWJTY3JpcHRPYmplY3RQcml2YXRlLnJvb3RPYmplY3QK
IF9PQkpDX0lWQVJfJF9XZWJTY3JpcHRPYmplY3RQcml2YXRlLm9yaWdpblJvb3RPYmplY3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA4OGVmYjUzZjlhNzRhMWMxYzIwOWQ0ZjE0OWNjMDk2NTlhZWNiMjg1Li5jZmFlZjk4YmYyYmYz
MDM2NTRmZDY5NWM5MjY4Yjg2MTQ4M2NlYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDMzLDcgKzE0MzMsNiBAQAogCQk0
OUVDRUI3MDE0OTk3OTBEMDBDREQzQTQgLyogRmlsdGVyT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFQ0VCNjYxNDk5NzkwRDAwQ0RE
M0E0IC8qIEZpbHRlck9wZXJhdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0OUVFRDE0NTEwNTE5Njk0MDAwOTlGQUIgLyogSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5RUVEMTNGMTA1MTk2OTQwMDA5OUZBQiAvKiBKU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oICovOyB9OwogCQk0OUVFRDE0NzEwNTE5Njk0MDAwOTlGQUIgLyogSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5RUVEMTQxMTA1MTk2OTQwMDA5OUZBQiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5oICovOyB9OwotCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlGRkJGM0QxMUM5
M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0QTBEQTJGRjEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFz
c29jaWF0ZWRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QTBEQTJGRDEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEEw
RkZBOUUxQUFGNUU3RTAwNjI4MDNCIC8qIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTBGRkE5QzFB
QUY1RTZDMDA2MjgwM0IgLyogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0QTBGRkFBMjFBQUY1
RUEyMDA2MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEwRkZBQTAxQUFGNUVBMjAwNjI4MDNC
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjM1OCw2ICsyMzU3LDcgQEAKIAkJN0FGOUIyMEYx
OENGQjVGNDAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpT
VlRUUmVnaW9uTGlzdC5oICovOyB9OwogCQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3Jh
cGhpY3NDb250ZXh0R0xDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0IxMDMzOUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1Yu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEw
MzM5RjI1NDk3MjFFMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAx
MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0I1ODJERDgyNzE2RjU1QjAwNEI5MkQw
IC8qIEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I1ODJERDYyNzE2RjU1QTAwNEI5MkQw
IC8qIEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNjA5NEREMjcwQzQ0QkQwMDY0
ODM1QyAvKiBBTkdMRVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xFVXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2
REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENo
YWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjZE
QzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hh
aW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3MzEx
RkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTA2MCw4
ICs5MDYwLDYgQEAKIAkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5RkFCIC8qIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDlGQzdBNEYxNDQ0QUY1RjAwQTVEODY0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5UmVmcmVz
aE1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUZGQkYxQzExQzg1
NTBFMDA2QTcxMTggLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RkZCRjNEMTFDOTNFRTMwMDZB
NzExOCAvKiBXZWJHTExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkdMTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlGRkJGM0UxMUM5M0VF
MzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJHTExheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
QTBEQTJGQzEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMERBMkZEMTI5QjI0MTkwMEFCNjFF
MSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTRBMEZGQTlCMUFBRjVFNkMwMDYyODAzQiAvKiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MTAyMCw2ICsxMTAxOCw3IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGlj
c0NvbnRleHRHTENWQU5HTEUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkFO
R0xFLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dEdMQ1YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgw
RTAwQzQwRUFDIC8qIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCNTgyREQ2MjcxNkY1NUEwMDRC
OTJEMCAvKiBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVn
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNjRDMEI0MjU0QzNCMTYwMDA2
QjRBRiAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8q
IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWlu
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgw
QzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWlu
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTAzNCw2ICsxMTAzMyw3IEBACiAJ
CTdCQjM0QTQ3MjUzNzc2QzcwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFj
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkI2ODBCNzI1QkExQkUzMDAy
Qjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDaGVja3NNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QkI2ODBCODI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDaGVja3NNYWMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JCRkRFQ0QyNzQyOEY1NDAwRUQwQjc3IC8qIEdy
YXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QkNENDJEODI3MDU5OUVGMDBFQjIxMjcgLyogQU5HTEVVdGlsaXRp
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQU5HTEVVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QkNENDJEQTI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVVdGls
aXRpZXNDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBTkdMRVV0aWxpdGllc0NvY29hLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JDRDQyREMyNzA1Qzk0OTAwRUIyMTI3
IC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVVdGlsaXRpZXND
b2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5NDEsMTEgKzE4OTQxLDEx
IEBACiAJCTFBNTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlF
OCAvKiBqc2MgKi8sCiAJCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJ
CQkJNTk5RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5
MEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBG
MzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oICovLAotCQkJCTU5QjU5NzcxMTEwODY1
NTYwMDcxNTlFOCAvKiBqc2MgKi8sCiAJCQkJMUE1NjlDRUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1
bnRpbWVfYXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50
aW1lX2FycmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVf
bWV0aG9kLmNwcCAqLywKQEAgLTI3OTE4LDYgKzI3OTE4LDggQEAKIAkJCQkwRjU4MEIwOTBGMTJB
MjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllci5jcHAgKi8sCiAJCQkJMEY1ODBCMEEwRjEyQTI2
OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuaCAqLywKIAkJCQkwRjU4MEIwQjBGMTJBMjY5MDA1
MUQ2ODkgLyogR3JhcGhpY3NMYXllckNsaWVudC5oICovLAorCQkJCTdCNTgyREQ2MjcxNkY1NUEw
MDRCOTJEMCAvKiBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLywKKwkJ
CQk3QkJGREVDRDI3NDI4RjU0MDBFRDBCNzcgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxh
eURlbGVnYXRlLmNwcCAqLywKIAkJCQkxQUM2OTU5MjE2MUExRTUzMDAzNzMyQ0IgLyogR3JhcGhp
Y3NMYXllckZhY3RvcnkuaCAqLywKIAkJCQkwRkEyNEQ3NzE2MkRGOTE5MDBBM0Y0QzAgLyogR3Jh
cGhpY3NMYXllclVwZGF0ZXIuY3BwICovLAogCQkJCTBGQTI0RDc4MTYyREY5MTkwMEEzRjRDMCAv
KiBHcmFwaGljc0xheWVyVXBkYXRlci5oICovLApAQCAtMjgyMjksOCArMjgyMzEsNiBAQAogCQkJ
CTJEM0VGNDQ3MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5tbSAqLywK
IAkJCQlDRDVEMjc3NjFFODMxOEUwMDBEODBBM0QgLyogV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uLmggKi8sCiAJCQkJQ0Q1RDI3NzUxRTgzMThFMDAwRDgwQTNEIC8qIFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbi5tbSAqLywKLQkJCQk0OUZGQkYzRDExQzkzRUUzMDA2QTcxMTggLyogV2Vi
R0xMYXllci5oICovLAotCQkJCTQ5RkZCRjNFMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVy
Lm1tICovLAogCQkJCTA3RjVDRkY0MjU4MkE0RjgwMDY2MkVGNSAvKiBXZWJNQXVkaW9VdGlsaXRp
ZXNDb2NvYS5oICovLAogCQkJCTA3RjVDRkYyMjU4MkE0RjgwMDY2MkVGNSAvKiBXZWJNQXVkaW9V
dGlsaXRpZXNDb2NvYS5tbSAqLywKIAkJCQk3QjE2MTkxMDI3MTk4ODBFMDBDNDBFQUMgLyogV2Vi
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gKi8sCkBAIC0zMzU3NCw2ICsz
MzU3NCw3IEBACiAJCQkJMEY1ODBCMEQwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ5OUIzRUQ3MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGlj
c0xheWVyQ0EuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwQjBFMEYxMkEyNjkwMDUxRDY4OSAv
KiBHcmFwaGljc0xheWVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjU4MkREODI3MTZG
NTVCMDA0QjkyRDAgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUM2OTU5MzE2MUExRTUzMDAzNzMyQ0IgLyogR3JhcGhpY3NMYXll
ckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQTI0RDdBMTYyREY5MTkwMEEzRjRDMCAv
KiBHcmFwaGljc0xheWVyVXBkYXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMDE1QUIwQUY2
Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMzY3OTcs
NyArMzY3OTgsNiBAQAogCQkJCTVCMzA2OTVFMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdC
dWZmZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUJGMEU1NTEyQTg5Mjk4MDBEQjE3MDkgLyog
V2ViR0xFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUNGMTA0MkQzMkYwMDA5
RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUZGQkYzRjEx
QzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMUQ1
QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZFQzM2MkQ5MjVCNEM1NDUwMDkzN0Y4NSAvKiBXZWJHTE11bHRpRHJhdy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDlDN0I5RDUxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMT2JqZWN0LmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggYjc5ZjZhMjA4ZDNjYjU4MWY5YWEyZDVjMjViNmJh
ZWEyMjNmNTY3Yi4uNzJiMmNjZTc0ZGI5NzJiODRiMjA4ZGU3M2E4MDJkZTI4ZGY2Y2UzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2lu
Y2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJEZXN0aW5hdGlvbkNvbG9yU3BhY2Uu
aCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCIKICNp
bmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCkBAIC04Myw2ICs4NCwxMSBAQCB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OmRlcmVmKCkKICAgICBtX2NhbnZhcy5kZXJlZkNhbnZh
c0Jhc2UoKTsKIH0KIAorUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0
ZT4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgp
Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIFBpeGVsRm9ybWF0IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQ6OnBpeGVsRm9ybWF0KCkgY29uc3QKIHsKICAgICByZXR1cm4gUGl4ZWxGb3JtYXQ6
OkJHUkE4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5oCmluZGV4IDM3MjAwNzkwNDZmZTAyZjU2ODQ1MjA1ZDJhN2RlYjk5NzhlODAy
M2UuLjVhZTc5YmYwYjllMzkwYjNhYTYxNTNkMjYwMThkN2ZiMWJlYzk1MjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKQEAg
LTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIC8vIHVzZWQgZm9yIGNvbXBvc2l0aW5nIHB1cnBv
c2VzLgogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yRGlzcGxheVdpdGhQYWludCgpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygpIHsgfQotICAg
IHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdh
dGU+IGxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUoKTsKIAogICAgIGJvb2wgaGFzQWN0aXZl
SW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlcigpIGNvbnN0IHsgcmV0dXJuIG1faGFzQWN0aXZlSW5z
cGVjdG9yQ2FudmFzQ2FsbFRyYWNlcjsgfQogICAgIHZvaWQgc2V0SGFzQWN0aXZlSW5zcGVjdG9y
Q2FudmFzQ2FsbFRyYWNlcihib29sIGhhc0FjdGl2ZUluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIp
IHsgbV9oYXNBY3RpdmVJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyID0gaGFzQWN0aXZlSW5zcGVj
dG9yQ2FudmFzQ2FsbFRyYWNlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCAzMzkyNWJjNmFjOGQ4
N2I0MTA2YjA2MzFlZDM0MjkwMzlhNzhhZmU0Li43YjMwODEzYWE5YjA3YTY0YWFhNGZkYWI2ZTE1
YWIyZjEyOGRjYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMSW1hZ2VF
eHRyYWN0b3IuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIkhU
TUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKQEAgLTY0NDUsOSArNjQ0NiwxMSBAQCBib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzQ29udGV4dFVucmVjb3ZlcmFibHlMb3N0KCkgY29uc3QK
ICAgICByZXR1cm4gbV9jb250ZXh0TG9zdCAmJiAhbV9yZXN0b3JlQWxsb3dlZDsKIH0KIAotUGxh
dGZvcm1MYXllciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGxhdGZvcm1MYXllcigpIGNv
bnN0CitSZWZQdHI8R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkKIHsKLSAg
ICByZXR1cm4gKCFpc0NvbnRleHRMb3N0KCkgJiYgIW1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlv
bikgPyBtX2NvbnRleHQtPnBsYXRmb3JtTGF5ZXIoKSA6IDA7CisgICAgaWYgKGlzQ29udGV4dExv
c3QoKSB8fCBtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBtX2NvbnRleHQtPmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUo
KTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmpl
Y3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA2NTI0YzkxNzM3
NTcwOWEyYzY1MGUyYWI4MTYxMzlkZjUwNTgxNjA4Li5iNTQ1N2U3MTM3Zjg0MjZkYzAzMTA0YjRj
NGU2YTNmYjIyMjRjM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0zODYsNyArMzg2LDcgQEAgcHVibGlj
OgogCiAgICAgR3JhcGhpY3NDb250ZXh0R0wqIGdyYXBoaWNzQ29udGV4dEdMKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAgICAgV2ViR0xDb250ZXh0R3JvdXAqIGNvbnRleHRH
cm91cCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dEdyb3VwLmdldCgpOyB9Ci0gICAgUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxHcmFw
aGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+IGxheWVyQ29udGVudHNEaXNwbGF5RGVs
ZWdhdGUoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWln
aHQpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCBlZGFhNGNlNWVhNzJlNzMwYmM1MjU0NmM3MDA2
ZWQyMzcyNzM5NjBkLi4zZjkwM2NiOWM1OWQ2ZjhkYWI1ZDYxMjcwZWVkZDFkNTY3Njc1ZGQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dEdMLmgKQEAgLTI4LDEyICsyOCwxMiBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5
ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5o
IgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIklu
dFNpemUuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTGF5
ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03ODYsNyArNzg2LDcgQEAg
cHVibGljOgogICAgICAgICBZZXMKICAgICB9OwogCi0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPEdyYXBoaWNz
TGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4gbGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0
ZSgpID0gMDsKIAogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEoRGF0YUZv
cm1hdCBmb3JtYXQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCBjNzVkYTU2YTgzNjE1NmNjMGQ1ZTVhN2RmMWJm
YjBjNGIyYjI2MmM3Li4xYmI3N2Y0NzcxZjhiZWRjMjBjYzgwYTcwNzQ2MzM5MTFmZTc3Mjk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJH
cmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCIKICNpbmNsdWRlICJMYXlvdXRS
ZWN0LmgiCiAjaW5jbHVkZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KQEAgLTYxMiw2ICs2MTMsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpy
ZXN1bWVBbmltYXRpb25zKCkKIHsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50
c0Zyb21EaXNwbGF5RGVsZWdhdGUoUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlE
ZWxlZ2F0ZT4mJiwgQ29udGVudHNMYXllclB1cnBvc2UpCit7Cit9CisKIHZvaWQgR3JhcGhpY3NM
YXllcjo6Z2V0RGVidWdCb3JkZXJJbmZvKENvbG9yJiBjb2xvciwgZmxvYXQmIHdpZHRoKSBjb25z
dAogewogICAgIHdpZHRoID0gMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCBiZjk1MDlmMThjY2I5NTk5MjNkZDlmNWQ1ZmIyNTJi
ZTE4Yjk4OTljLi4xNjFlM2I5N2I1ODlkZGEwMDc4NDljZDgwODdlYTk1NmI5NTIwOWVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBA
IC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFuaW1hdGlvbjsKIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OworY2xhc3Mg
R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlOwogY2xhc3MgSW1hZ2U7CiBjbGFz
cyBNb2RlbDsKIGNsYXNzIFRpbGVkQmFja2luZzsKQEAgLTUyMiw2ICs1MjMsNyBAQCBwdWJsaWM6
CiAgICAgLy8gUGFzcyBhbiBpbnZhbGlkIGNvbG9yIHRvIHJlbW92ZSB0aGUgY29udGVudHMgbGF5
ZXIuCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9y
JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRm
b3JtTGF5ZXIqLCBDb250ZW50c0xheWVyUHVycG9zZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNl
dENvbnRlbnRzRnJvbURpc3BsYXlEZWxlZ2F0ZShSZWZQdHI8R3JhcGhpY3NMYXllckNvbnRlbnRz
RGlzcGxheURlbGVnYXRlPiYmLCBDb250ZW50c0xheWVyUHVycG9zZSk7CiAjaWYgRU5BQkxFKE1P
REVMX0VMRU1FTlQpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9Nb2RlbChSZWZQdHI8
TW9kZWw+JiYpIHsgfQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllcklEIGNvbnRlbnRzTGF5ZXJJ
REZvck1vZGVsKCkgY29uc3QgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFjZTNlNGZjMDM5YjBlMDMyODFj
N2JlNDdlODM2NWYwMTljZjNjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5jcHAK
QEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyQ29udGVu
dHNEaXNwbGF5RGVsZWdhdGUuaCIKKworI2lmIFVTRShDQSkKKyNpbmNsdWRlICJHcmFwaGljc0xh
eWVyQ0EuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dyYXBoaWNzTGF5ZXJD
b250ZW50c0Rpc3BsYXlEZWxlZ2F0ZTo6fkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxl
Z2F0ZSgpID0gZGVmYXVsdDsKKworI2lmIFVTRShDQSkKK0dyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0
aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVs
ZWdhdGU6Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gR3JhcGhpY3NMYXllckNB
OjpkZWZhdWx0Q29udGVudHNPcmllbnRhdGlvbjsKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ29udGVudHNE
aXNwbGF5RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NzczZjJlM2M3
YzdlNjMwOTViMDkyOWRkZWI0MGIxZDAxOGY5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVs
ZWdhdGUuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2lm
IFVTRShDQSkKK2NsYXNzIFBsYXRmb3JtQ0FMYXllcjsKKyNlbmRpZgorCisvLyBQbGF0Zm9ybSBz
cGVjaWZpYyBpbnRlcmZhY2UgZm9yIGF0dGFjaGluZyBjb250ZW50cyB0byBHcmFwaGljc0xheWVy
LgorLy8gUmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIGNvbXBvc2l0b3IgcmVzb3VyY2VzIHRvIHNo
b3cgdGhlIHBhcnRpY3VsYXIgY29udGVudHMKKy8vIGluIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBH
cmFwaGljc0xheWVyLgorY2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NMYXllckNvbnRlbnRz
RGlzcGxheURlbGVnYXRlIDogcHVibGljIFJlZkNvdW50ZWQ8R3JhcGhpY3NMYXllckNvbnRlbnRz
RGlzcGxheURlbGVnYXRlPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlKCk7CisKKyNpZiBVU0UoQ0EpCisgICAgdmlydHVhbCB2b2lk
IHdpbGxEZWxlZ2F0ZURpc3BsYXkoUGxhdGZvcm1DQUxheWVyJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaXNwbGF5KFBsYXRmb3JtQ0FMYXllciYpID0gMDsKKyAgICB2aXJ0dWFsIEdyYXBoaWNz
TGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNv
bnN0OworI2VuZGlmCit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZS5jcHAKaW5kZXggOGM4Y2MyODhmMjhjYmMyNWJlNTg0NzNlMWU3OWYwNTI1ZTM0M2Y4Yy4uMWUw
YTQzMDcwMzMzZGQyZGI1MzIwMGUwYTgyODA4ZjJmYWY3ZDdhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcApAQCAtMjksMTAgKzI5LDYgQEAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiSU9TdXJmYWNlLmgiCi0jZW5kaWYK
LQogI2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllci5oIgogI2VuZGlmCkBAIC00Miw3ICszOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJzKQog
ICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cnMpCiB7Ci0gICAgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CiB9CiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjp+UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2UoKSA9IGRlZmF1bHQ7CkBAIC0xMzQsMTYgKzEyOSw2IEBAIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OmluaXRpYWxpemUoY29uc3QgU3Ry
aW5nJiBhdmFpbGFibGVFeHRlbnNpCiAgICAgICAgIG1fcmVxdWVzdGFibGVFeHRlbnNpb25zLmFk
ZChleHRlbnNpb24pOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKEdSQVBISUNT
X0xBWUVSX1dDKQotdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZv
cm1Jbml0aWFsaXplKCkKLXsKLX0KLQotUGxhdGZvcm1MYXllciogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAotewotICAgIHJldHVybiBudWxs
cHRyOwotfQotI2VuZGlmCiAjaWYgIVVTRShBTkdMRSkKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2U6OnJlYWRuUGl4ZWxzRVhUKEdDR0xpbnQsIEdDR0xpbnQsIEdDR0xzaXpl
aSwgR0NHTHNpemVpLCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xzaXplaSwgR0NHTHZvaWQqKQog
ewpAQCAtMTU4LDExICsxNDMsNSBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlOjpnZXRuVW5pZm9ybWl2RVhUKEdDR0x1aW50LCBHQ0dMaW50LCBHQ0dMcwogfQogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiAhUExBVEZPUk0oQ09DT0EpCi1SZWZQdHI8
TWVkaWFTYW1wbGU+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwYWludENvbXBv
c2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpCi17Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0j
ZW5kaWYKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgKaW5k
ZXggZjFlZWQ1ZjRjNDZjMTg1NDMzYjA5YjdkNjQwNDAwNzc4OTA5MTk4OS4uN2I5Y2IyZTdlZmI1
MjM0OWUwNTIzMjA4N2JjZjk1N2FhZDNlNzY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oCkBAIC0zMywyMSArMzMsOCBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NP
QSkKLU9CSkNfQ0xBU1MgV2ViR0xMYXllcjsKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLWNsYXNzIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNl
U3dhcENoYWluOwotY2xhc3MgSU9TdXJmYWNlOwotI2VuZGlmCi0KIC8vIEEgYmFzZSBjbGFzcyBm
b3IgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgcHJveHkgc2lkZSBpbXBsZW1lbnRhdGlvbgogLy8g
VGhpcyBpbXBsZW1lbnRzIHRoZSBwYXJ0cyB0aGF0IGFyZSB1c2luZyBXZWJDb3JlIGludGVybmFs
IGZ1bmN0aW9uYWxpdHk6CiAvLyAtIERyYXdpbmcgYnVmZmVyIHRyYWNraW5nIG1hbmFnZW1lbnQu
CkBAIC01OSw3ICs0Niw2IEBAIHB1YmxpYzoKIAogICAgIC8vIE90aGVyIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMIG92ZXJyaWRlcy4KICAgICB1c2luZyBHcmFwaGljc0NvbnRleHRHTDo6aXNF
bmFibGVkOwotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbDsK
ICAgICBFeHRlbnNpb25zR0wmIGdldEV4dGVuc2lvbnMoKSBmaW5hbDsKICAgICB2b2lkIHNldENv
bnRleHRWaXNpYmlsaXR5KGJvb2wpIGZpbmFsOwogICAgIGJvb2wgaXNHTEVTMkNvbXBsaWFudCgp
IGNvbnN0IGZpbmFsOwpAQCAtODMsOSArNjksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRuVW5p
Zm9ybWZ2RVhUKEdDR0x1aW50LCBHQ0dMaW50LCBHQ0dMc2l6ZWksIEdDR0xmbG9hdCopIGZpbmFs
OwogICAgIHZvaWQgZ2V0blVuaWZvcm1pdkVYVChHQ0dMdWludCwgR0NHTGludCwgR0NHTHNpemVp
LCBHQ0dMaW50KikgZmluYWw7CiAjZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAg
IFJlZlB0cjxNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUo
KSBmaW5hbDsKLSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0
IFN0cmluZyYgYXZhaWxhYmxlRXh0ZW5zaW9ucywgY29uc3QgU3RyaW5nJiByZXF1ZXN0YWJsZUV4
dGVuc2lvbnMpOwpAQCAtOTMsMTYgKzc2LDExIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeU1hcmtDb250ZXh0Q2hhbmdlZCgpID0gMDsKIAotI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIFJldGFpblB0cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPElPU3VyZmFjZT4gbV9kaXNwbGF5QnVmZmVyOwotI2VsaWYgVVNFKEdSQVBISUNT
X0xBWUVSX1dDKQorI2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykKICAgICB2b2lkIHNldFBsYXRm
b3JtTGF5ZXIoUGxhdGZvcm1MYXllckNvbnRhaW5lciYmKTsKICAgICBQbGF0Zm9ybUxheWVyQ29u
dGFpbmVyIG1fcGxhdGZvcm1MYXllcjsKICNlbmRpZgogcHJpdmF0ZToKLSAgICB2b2lkIHBsYXRm
b3JtSW5pdGlhbGl6ZSgpOwotCiAgICAgLy8gR3VhcmRlZCBieSB3YWl0VW50aWxJbml0aWFsaXpl
ZCgpLgogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2F2YWlsYWJsZUV4dGVuc2lvbnM7CiAgICAgSGFz
aFNldDxTdHJpbmc+IG1fcmVxdWVzdGFibGVFeHRlbnNpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVB
VkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAppbmRleCAyNzdlOGY4ODg3ZTIyYWEwMjgwM2E1MDM2
MGViM2RjMzJmYzRlN2ViLi5lYWEwYTFkNDFmNmUyNjA5ZTQwMDJmZjQyNmY3NTcwODgwM2M5YThl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaApAQCAtNDIs
NyArNDIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+IGNy
ZWF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIEF0b21TdHJpbmcgdHJhY2tJRCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNhbXBsZUFWRk9iakMoc2FtcGxlLCB0cmFja0lEKSk7IH0K
ICAgICBzdGF0aWMgUmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlKENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZSwgVmlkZW9Sb3RhdGlvbiByb3RhdGlvbiA9IFZpZGVvUm90YXRpb246Ok5vbmUs
IGJvb2wgbWlycm9yZWQgPSBmYWxzZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNhbXBs
ZUFWRk9iakMoc2FtcGxlLCByb3RhdGlvbiwgbWlycm9yZWQpKTsgfQogICAgIHN0YXRpYyBSZWZQ
dHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVhdGVJbWFnZVNhbXBsZShQaXhlbEJ1ZmZlciYmKTsK
LSAgICBzdGF0aWMgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlSW1hZ2VTYW1wbGUo
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIFZpZGVvUm90YXRpb24sIGJvb2wgbWlycm9y
ZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpD
PiBjcmVhdGVJbWFnZVNhbXBsZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgVmlkZW9S
b3RhdGlvbiwgYm9vbCBtaXJyb3JlZCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9p
ZCBzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYpOwogICAgIHN0YXRpYyBSZXRh
aW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNsb25lU2FtcGxlQnVmZmVyQW5kU2V0QXNEaXNwbGF5
SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZmZXJSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggNTE5MGEz
ODY1NDMwMDcyMDA1MDljZjkwNWI3MGY1NWQwN2I1N2I0Ny4uMmUxNmE1N2U5YWZkMThjZDRmZjYz
OWVkOTEyZjFkOTllY2JlZDhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRGlzcGxheUxpc3RSZXBsYXllci5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lv
bi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJGYWN0b3J5Lmgi
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCkBA
IC0xMzQ4LDYgKzEzNDksMjcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9Q
bGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIEMKICAgICBub3RlTGF5
ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNQbGF0Zm9ybUxheWVyQ2hhbmdlZCk7CiB9CiAKK3Zv
aWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c0Zyb21EaXNwbGF5RGVsZWdhdGUoUmVmUHRy
PEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4mJiBwcm92aWRlciwgQ29udGVu
dHNMYXllclB1cnBvc2UgcHVycG9zZSkKK3sKKyAgICBpZiAobV9jb250ZW50c0xheWVyICYmIHBy
b3ZpZGVyID09IG1fY29udGVudHNEaXNwbGF5RGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIpCisgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0T3du
ZXIobnVsbHB0cik7CisgICAgbV9jb250ZW50c0xheWVyID0gbnVsbHB0cjsKKyAgICBtX2NvbnRl
bnRzRGlzcGxheURlbGVnYXRlID0gbnVsbHB0cjsKKyAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3Nl
ID0gQ29udGVudHNMYXllclB1cnBvc2U6Ok5vbmU7CisgICAgaWYgKHByb3ZpZGVyKSB7CisgICAg
ICAgIG1fY29udGVudHNMYXllciA9IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZUNvbnRlbnRzUHJvdmlkZWRMYXllciwgdGhpcyk7CisgICAgICAgIG1fY29u
dGVudHNEaXNwbGF5RGVsZWdhdGUgPSBXVEZNb3ZlKHByb3ZpZGVyKTsKKyAgICAgICAgbV9jb250
ZW50c0xheWVyUHVycG9zZSA9IHB1cnBvc2U7CisgICAgICAgIG1fY29udGVudHNEaXNwbGF5RGVs
ZWdhdGUtPndpbGxEZWxlZ2F0ZURpc3BsYXkoKm1fY29udGVudHNMYXllcik7CisgICAgfQorCisg
ICAgbm90ZVN1YmxheWVyc0NoYW5nZWQoKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQo
Q29udGVudHNQbGF0Zm9ybUxheWVyQ2hhbmdlZCk7Cit9CisKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogUGxhdGZvcm1MYXllciogR3JhcGhpY3NMYXllckNBOjpjb250ZW50c0xheWVyRm9yTWVk
aWEoKSBjb25zdAogewpAQCAtMTM3Myw2ICsxMzk1LDkgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnNldENvbnRlbnRzTWFnbmlmaWNhdGlvbkZpbHRlcihTY2FsaW5nRmlsdGVyIGZpbHRlcikKIAog
dm9pZCBHcmFwaGljc0xheWVyQ0E6OmxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqIGxh
eWVyKQogeworICAgIGlmIChtX2NvbnRlbnRzRGlzcGxheURlbGVnYXRlICYmIGxheWVyID09IG1f
Y29udGVudHNMYXllcikKKyAgICAgICAgbV9jb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS0+ZGlzcGxh
eSgqbGF5ZXIpOworCiAgICAgaWYgKCFtX2xheWVyQ2xvbmVzKQogICAgICAgICByZXR1cm47CiAK
QEAgLTI3OTIsNyArMjgxNyw4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50
c1BsYXRmb3JtTGF5ZXIoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBQbGF0Zm9ybSBsYXll
ciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwgYW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVw
ZGF0ZVN1YmxheWVyTGlzdCgpLgotICAgIHNldHVwQ29udGVudHNMYXllcihtX2NvbnRlbnRzTGF5
ZXIuZ2V0KCkpOworICAgIGF1dG8gb3JpZW50YXRpb24gPSBtX2NvbnRlbnRzRGlzcGxheURlbGVn
YXRlID8gbV9jb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS0+b3JpZW50YXRpb24oKSA6IGRlZmF1bHRD
b250ZW50c09yaWVudGF0aW9uOworICAgIHNldHVwQ29udGVudHNMYXllcihtX2NvbnRlbnRzTGF5
ZXIuZ2V0KCksIG9yaWVudGF0aW9uKTsKIAogICAgIGlmIChtX2NvbnRlbnRzTGF5ZXJQdXJwb3Nl
ID09IENvbnRlbnRzTGF5ZXJQdXJwb3NlOjpDYW52YXMpCiAgICAgICAgIG1fY29udGVudHNMYXll
ci0+c2V0TmVlZHNEaXNwbGF5KCk7CkBAIC00NDEyLDE5ICs0NDM4LDEzIEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpjaGFuZ2VMYXllclR5cGVUbyhQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBu
ZXdMYXllclR5cGUpCiAgICAgICAgIGNsaWVudCgpLnRpbGVkQmFja2luZ1VzYWdlQ2hhbmdlZCh0
aGlzLCBpc1RpbGVkTGF5ZXIpOwogfQogCi1HcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3Jk
aW5hdGVzT3JpZW50YXRpb24gR3JhcGhpY3NMYXllckNBOjpkZWZhdWx0Q29udGVudHNPcmllbnRh
dGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRh
dGlvbjo6VG9wRG93bjsKLX0KLQotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNM
YXllcihQbGF0Zm9ybUNBTGF5ZXIqIGNvbnRlbnRzTGF5ZXIpCit2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6c2V0dXBDb250ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllciogY29udGVudHNMYXllciwgQ29t
cG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogewogICAgIC8vIFR1
cm4gb2ZmIGltcGxpY2l0IGFuaW1hdGlvbnMgb24gdGhlIGlubmVyIGxheWVyLgogI2lmICFQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIGNvbnRlbnRzTGF5ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1
ZSk7CiAjZW5kaWYKLQotICAgIGlmIChkZWZhdWx0Q29udGVudHNPcmllbnRhdGlvbigpID09IENv
bXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbjo6Qm90dG9tVXApIHsKKyAgICBpZiAob3Jp
ZW50YXRpb24gPT0gQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uOjpCb3R0b21VcCkg
ewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBmbGlwcGVyKAogICAgICAgICAgICAgMS4w
ZiwgMC4wZiwgMC4wZiwgMC4wZiwKICAgICAgICAgICAgIDAuMGYsIC0xLjBmLCAwLjBmLCAwLjBm
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaAppbmRleCA5ZDQ0ZjZhYjM4MGM4ODY2NjM0ZjNiZjc0MDllZWM3ZjM5YjQ4ZDg3
Li4yMjliMWNmN2I1YTU5N2Y2MDQ2ZDcwNjY4ZTRmMTNhZjc5NjY1OWUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApA
QCAtMTUwLDYgKzE1MCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUxh
eWVyKiBjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1M
YXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKSBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldENvbnRlbnRzRnJvbURpc3BsYXlEZWxlZ2F0ZShSZWZQdHI8R3JhcGhpY3NMYXll
ckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiYmLCBDb250ZW50c0xheWVyUHVycG9zZSkgb3ZlcnJp
ZGU7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNv
bnN0IENvbG9yJikgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRDb250ZW50c1RvTW9kZWwoUmVmUHRyPE1vZGVsPiYmKSBvdmVy
cmlkZTsKQEAgLTMwMCwxMCArMzAyLDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcmVxdWlyZXNU
aWxlZExheWVyKGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikgY29uc3Q7CiAgICAgdm9pZCBjaGFuZ2VM
YXllclR5cGVUbyhQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSk7Ci0KLSAgICBDb21wb3NpdGlu
Z0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gZGVmYXVsdENvbnRlbnRzT3JpZW50YXRpb24oKSBjb25z
dDsKLQotICAgIHZvaWQgc2V0dXBDb250ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllciopOworICAg
IGNvbnN0ZXhwciBzdGF0aWMgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIGRlZmF1
bHRDb250ZW50c09yaWVudGF0aW9uID0gQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9u
OjpUb3BEb3duOworICAgIHZvaWQgc2V0dXBDb250ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllcios
IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiA9IGRlZmF1bHRDb250ZW50c09yaWVu
dGF0aW9uKTsKICAgICBQbGF0Zm9ybUNBTGF5ZXIqIGNvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnRlbnRzTGF5ZXIuZ2V0KCk7IH0KIAogICAgIHZvaWQgdXBkYXRlQ2xpcHBpbmdT
dHJhdGVneShQbGF0Zm9ybUNBTGF5ZXImLCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiYgc2hhcGVN
YXNrTGF5ZXIsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmKTsKQEAgLTY0NCw2ICs2NDQsNyBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQogICAgIFJlZlB0cjxNb2RlbD4gbV9j
b250ZW50c01vZGVsOwogI2VuZGlmCisgICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rp
c3BsYXlEZWxlZ2F0ZT4gbV9jb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZTsKIAogICAgIFZlY3RvcjxM
YXllclByb3BlcnR5QW5pbWF0aW9uPiBtX2FuaW1hdGlvbnM7CiAgICAgVmVjdG9yPExheWVyUHJv
cGVydHlBbmltYXRpb24+IG1fYmFzZVZhbHVlVHJhbnNmb3JtQW5pbWF0aW9uczsKQEAgLTY2Myw2
ICs2NjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNFdmVyUGFpbnRlZCA6IDE7CiAgICAg
Ym9vbCBtX2hhc0Rlc2NlbmRhbnRzV2l0aFJ1bm5pbmdUcmFuc2Zvcm1BbmltYXRpb25zIDogMTsK
ICAgICBib29sIG1faGFzRGVzY2VuZGFudHNXaXRoVW5jb21taXR0ZWRDaGFuZ2VzIDogMTsKKyAg
ICBmcmllbmQgY2xhc3MgR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5t
bQppbmRleCAzNGUyNTkwZjU3NzI5NmIyMjM5YmYyODY4MmZjNzU2YWM2NjkwM2FhLi5jYmQ2MzUx
Zjg3MTY2YTEwYTU0NzQzY2QwNzU1Zjg3YmYwNDA3ZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
TGF5ZXJDb2NvYS5tbQpAQCAtNDAsNyArNDAsNiBAQAogI2ltcG9ydCAiVGlsZWRCYWNraW5nLmgi
CiAjaW1wb3J0ICJXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCIKICNpbXBvcnQg
IldlYkNvcmVDQUxheWVyRXh0cmFzLmgiCi0jaW1wb3J0ICJXZWJHTExheWVyLmgiCiAjaW1wb3J0
ICJXZWJWaWRlb0NvbnRhaW5lckxheWVyLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0
ekNvcmVTUEkuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgpAQCAtMjExLDkgKzIxMCw2
IEBAIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIFBsYXRmb3JtQ0FMYXllckNvY29hOjpsYXll
clR5cGVGb3JQbGF0Zm9ybUxheWVyKFBsYXRmCiAgICAgICAgICYmIFsoV2ViVmlkZW9Db250YWlu
ZXJMYXllciopbGF5ZXIgcGxheWVyTGF5ZXJdKQogICAgICAgICByZXR1cm4gTGF5ZXJUeXBlQVZQ
bGF5ZXJMYXllcjsKIAotICAgIGlmIChbbGF5ZXIgaXNLaW5kT2ZDbGFzczpbV2ViR0xMYXllciBj
bGFzc11dKQotICAgICAgICByZXR1cm4gTGF5ZXJUeXBlQ29udGVudHNQcm92aWRlZExheWVyOwot
CiAgICAgcmV0dXJuIExheWVyVHlwZUN1c3RvbTsKIH0KIApAQCAtMjM0LDYgKzIzMCw3IEBAIFBs
YXRmb3JtQ0FMYXllckNvY29hOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYShMYXllclR5cGUgbGF5ZXJU
eXBlLCBQbGF0Zm9ybUNBTGF5ZXJDCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGF5ZXJUeXBl
U2ltcGxlTGF5ZXI6CiAgICAgY2FzZSBMYXllclR5cGVUaWxlZEJhY2tpbmdUaWxlTGF5ZXI6Cisg
ICAgY2FzZSBMYXllclR5cGVDb250ZW50c1Byb3ZpZGVkTGF5ZXI6CiAgICAgICAgIGxheWVyQ2xh
c3MgPSBbV2ViU2ltcGxlTGF5ZXIgY2xhc3NdOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExh
eWVyVHlwZVRyYW5zZm9ybUxheWVyOgpAQCAtMjY1LDEwICsyNjIsNiBAQCBQbGF0Zm9ybUNBTGF5
ZXJDb2NvYTo6UGxhdGZvcm1DQUxheWVyQ29jb2EoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZv
cm1DQUxheWVyQwogICAgICAgICBpZiAoUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWls
YWJsZSgpKQogICAgICAgICAgICAgbGF5ZXJDbGFzcyA9IFBBTDo6Z2V0QVZQbGF5ZXJMYXllckNs
YXNzKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTGF5ZXJUeXBlQ29udGVudHNQcm92aWRl
ZExheWVyOgotICAgICAgICAvLyBXZSBkb24ndCBjcmVhdGUgUGxhdGZvcm1DQUxheWVyQ29jb2Fz
IHdyYXBwZWQgYXJvdW5kIFdlYkdMTGF5ZXJzLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCiAgICAgY2FzZSBM
YXllclR5cGVNb2RlbExheWVyOgogICAgICAgICBsYXllckNsYXNzID0gW0NBTGF5ZXIgY2xhc3Nd
OwpAQCAtMzEwLDcgKzMwMyw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmNvbW1vbklu
aXQoKQogICAgIH0KICAgICAKICAgICAvLyBDbGVhciBhbGwgdGhlIGltcGxpY2l0IGFuaW1hdGlv
bnMgb24gdGhlIENBTGF5ZXIKLSAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5
ZXJMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDb250ZW50c1Byb3ZpZGVkTGF5ZXIg
fHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlU2Nyb2xsQ29udGFpbmVyTGF5ZXIgfHwgbV9sYXll
clR5cGUgPT0gTGF5ZXJUeXBlQ3VzdG9tKQorICAgIGlmIChtX2xheWVyVHlwZSA9PSBMYXllclR5
cGVBVlBsYXllckxheWVyIHx8IG1fbGF5ZXJUeXBlID09IExheWVyVHlwZVNjcm9sbENvbnRhaW5l
ckxheWVyIHx8IG1fbGF5ZXJUeXBlID09IExheWVyVHlwZUN1c3RvbSkKICAgICAgICAgW21fbGF5
ZXIgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKICAgICBlbHNlCiAgICAgICAgIFttX2xheWVyIHNl
dERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCAxOTc5ZGE1Njcy
NGJhMGQyNWFkYTVkMTQxYjYzZjVhYjVmMWU3YTk0Li4zODE3M2NhMDE3NjFmZWNmNTdiNzQ4OTM2
ZWYyZTg3ZDYxZDI2NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW0KQEAgLTU5LDYgKzU5LDcgQEAgV1RGX1dFQUtfTElOS19GT1JDRV9JTVBPUlQoRUdMX0lu
aXRpYWxpemUpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKwogYm9vbCBwbGF0Zm9ybUlzQU5H
TEVBdmFpbGFibGUoKQogewogICAgIC8vIFRoZSBBTkdMRSBpcyB3ZWFrIGxpbmtlZCBpbiBmdWxs
LCBhbmQgdGhlIEVHTF9Jbml0aWFsaXplIGlzIGV4cGxpY2l0bHkgd2VhayBsaW5rZWQgYWJvdmUK
QEAgLTQzNSwxMSArNDM2LDYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNWYWxp
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fdGV4dHVyZTsKIH0KIAotUGxhdGZvcm1MYXllciogR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAotewotICAgIHJldHVy
biBudWxscHRyOwotfQotCiBHQ0dMZW51bSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZHJhd2lu
Z0J1ZmZlclRleHR1cmVUYXJnZXQoKQogewogICAgIGlmIChtX2RyYXdpbmdCdWZmZXJUZXh0dXJl
VGFyZ2V0ID09IC0xKQpAQCAtNzM3LDcgKzczMyw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OnByZXBhcmVGb3JEaXNwbGF5KCkKICAgICB9CiB9CiAKLQogI2lmIEVOQUJMRShWSURF
TykgJiYgVVNFKEFWRk9VTkRBVElPTikKIEdyYXBoaWNzQ29udGV4dEdMQ1YqIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjphc0NWKCkKIHsKQEAgLTc5OSw2ICs3OTQsMTcgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6cGxhdGZvcm1SZWxlYXNlVGhyZWFkUmVzb3VyY2VzKCkKICAgICBj
dXJyZW50Q29udGV4dCA9IG51bGxwdHI7CiB9CiAKK0lPU3VyZmFjZSogR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmRpc3BsYXlCdWZmZXIoKQoreworICAgIEFTU0VSVChtX3N3YXBDaGFpbi5kaXNw
bGF5QnVmZmVyKCkuc3VyZmFjZSk7CisgICAgcmV0dXJuIG1fc3dhcENoYWluLmRpc3BsYXlCdWZm
ZXIoKS5zdXJmYWNlLmdldCgpOworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpt
YXJrRGlzcGxheUJ1ZmZlckluVXNlKCkKK3sKKyAgICBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1
ZmZlckluVXNlKCk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tCmluZGV4
IGI3MjU4ZTg2NDVmMTQwNDYzMmJiMDI4NGVkODlkZjc5MDgzZGUxMjAuLmFlYTQ4NjEwNDMzNzdk
NjQ0NjI0MDU4YzliMjY3YjQ3NGNjYTRkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQpAQCAtMjgsMzQgKzI4LDggQEAKIAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQTEFURk9STShDT0NP
QSkKIAotI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIKLSNp
bXBvcnQgIldlYkdMTGF5ZXIuaCIKLSNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+
Ci0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKLSNp
bXBvcnQgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Jbml0
aWFsaXplKCkKLXsKLSAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKLSAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBtX3dlYkdMTGF5ZXIgPSBhZG9wdE5TKFtb
V2ViR0xMYXllciBhbGxvY10gaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmF0dHJzLmRldmljZVBp
eGVsUmF0aW8gY29udGVudHNPcGFxdWU6IWF0dHJzLmFscGhhXSk7Ci0jaWZuZGVmIE5ERUJVRwot
ICAgIFttX3dlYkdMTGF5ZXIgc2V0TmFtZTpAIldlYkdMIExheWVyIl07Ci0jZW5kaWYKLSAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCi19Ci0KLQotUGxhdGZvcm1MYXllciogUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAotewotICAgIHJl
dHVybiBtX3dlYkdMTGF5ZXIuZ2V0KCk7Ci19Ci0KICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShB
VkZPVU5EQVRJT04pCiBHcmFwaGljc0NvbnRleHRHTENWKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZTo6YXNDVigpCiB7CkBAIC02MywxNyArMzcsNSBAQCBHcmFwaGljc0NvbnRleHRH
TENWKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6YXNDVigpCiB9CiAjZW5kaWYK
IAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi1SZWZQdHI8TWVkaWFTYW1wbGU+IFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNh
bXBsZSgpCi17Ci0gICAgaWYgKCFtX2Rpc3BsYXlCdWZmZXIpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVhdGVDVlBpeGVsQnVmZmVyKG1fZGlzcGxh
eUJ1ZmZlci0+c3VyZmFjZSgpKTsKLSAgICBpZiAoIXBpeGVsQnVmZmVyKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNh
bXBsZShXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksIE1lZGlhU2FtcGxlQVZGT2JqQzo6VmlkZW9Sb3Rh
dGlvbjo6VXBzaWRlRG93biwgdHJ1ZSk7Ci19Ci0jZW5kaWYKLQogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjMjJmNWQ2NGQ4OGM5N2ZiZTQ4YjJmYWY0ZDZj
ZDQ1ZDU3YmI0NWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCisr
KyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+
Ci0KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0KLS8vIEEgbGF5ZXIgY2xh
c3Mgc2hvd2luZyBvbmUgSU9TdXJmYWNlLgotQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXll
cgotCi0tIChpZClpbml0V2l0aERldmljZVBpeGVsUmF0aW86KGZsb2F0KWRldmljZVBpeGVsUmF0
aW8gY29udGVudHNPcGFxdWU6KGJvb2wpY29udGVudHNPcGFxdWU7Ci0KLUBlbmQKLQotQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZGU5MDMxNTU2OTExMTM2YzMxZjVkNjhlZTI0M2Y2N2VmNjZkZThjOS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCisrKyAvZGV2L251bGwKQEAgLTEs
NzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKQotI2ltcG9ydCAi
V2ViR0xMYXllci5oIgotCi0jaW1wb3J0ICJHcmFwaGljc0xheWVyLmgiCi0jaW1wb3J0ICJHcmFw
aGljc0xheWVyQ0EuaCIKLSNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllci5oIgotCi1AaW1wbGVtZW50
YXRpb24gV2ViR0xMYXllcgotCi0tIChpZClpbml0V2l0aERldmljZVBpeGVsUmF0aW86KGZsb2F0
KWRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6KGJvb2wpY29udGVudHNPcGFxdWUKLXsK
LSAgICBzZWxmID0gW3N1cGVyIGluaXRdOwotICAgIHNlbGYudHJhbnNmb3JtID0gQ0FUcmFuc2Zv
cm0zRElkZW50aXR5OwotICAgIHNlbGYuY29udGVudHNPcGFxdWUgPSBjb250ZW50c09wYXF1ZTsK
LSAgICBzZWxmLmNvbnRlbnRzU2NhbGUgPSBkZXZpY2VQaXhlbFJhdGlvOwotICAgIHJldHVybiBz
ZWxmOwotfQotCi0vLyBXaGVuIHVzaW5nIGFuIElPU3VyZmFjZSBhcyBsYXllciBjb250ZW50cywg
d2UgbmVlZCB0byBmbGlwIHRoZQotLy8gbGF5ZXIgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhhdCB0
aGUgSU9TdXJmYWNlIHByb3ZpZGVzIGNvbnRlbnQKLS8vIGluIFktdXAuIFRoaXMgbWVhbnMgdGhh
dCBhbnkgaW5jb21pbmcgdHJhbnNmb3JtICh1bmxpa2VseSwgc2luY2UKLS8vIHRoaXMgaXMgYSBj
b250ZW50cyBsYXllcikgYW5kIGFuY2hvciBwb2ludCBtdXN0IGFkZCBhIFkgc2NhbGUgb2YKLS8v
IC0xIGFuZCBtYWtlIHN1cmUgdGhlIHRyYW5zZm9ybSBoYXBwZW5zIGZyb20gdGhlIHRvcC4KLQot
LSAodm9pZClzZXRUcmFuc2Zvcm06KENBVHJhbnNmb3JtM0QpdAotewotICAgIFtzdXBlciBzZXRU
cmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRFNjYWxlKHQsIDEsIC0xLCAxKV07Ci19Ci0KLS0gKHZvaWQp
c2V0QW5jaG9yUG9pbnQ6KENHUG9pbnQpcAotewotICAgIFtzdXBlciBzZXRBbmNob3JQb2ludDpD
R1BvaW50TWFrZShwLngsIDEuMCAtIHAueSldOwotfQotCi0tICh2b2lkKWRpc3BsYXkKLXsKLSAg
ICAvLyBTaG93IHRoZSBzZWxmLmNvbnRlbnRzIGFzIHRoZSBjb250ZW50cyBieSBub3QgZG9pbmcg
YW55dGhpbmcgaW4gdGhpcyBmdW5jdGlvbi4KLSAgICBhdXRvIGxheWVyID0gV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9pZCopc2Vs
Zik7Ci0gICAgaWYgKGxheWVyICYmIGxheWVyLT5vd25lcigpKQotICAgICAgICBsYXllci0+b3du
ZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyLmdldCgpKTsKLQotfQot
Ci1AZW5kCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IGNhYzQ0YTFkYjRk
ZmMwZjcxNzA0Yzc0MTg0ZGE0NjM3MmIzMTIzYWYuLmYzMjgwZjBjN2JkZGY2ZjZjNDk4N2M2OTli
ZTNmNTg0YjdlMjZjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0yOSw1MyArMjksNTkgQEAKICNpZiBFTkFCTEUo
V0VCR0wpCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIiAvLyBOT0xJTlQKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgotI2ltcG9ydCAiV2ViR0xM
YXllci5oIgotI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIHsKIAotc3RhdGljIFJldGFpblB0cjxXZWJHTExheWVyPiBj
cmVhdGVXZWJHTExheWVyKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmli
dXRlcykKLXsKLSAgICBSZXRhaW5QdHI8V2ViR0xMYXllcj4gbGF5ZXI7Ci0gICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCi0gICAgbGF5ZXIgPSBhZG9wdE5TKFtbV2ViR0xMYXllciBhbGxv
Y10gaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmF0dHJpYnV0ZXMuZGV2aWNlUGl4ZWxSYXRpbyBj
b250ZW50c09wYXF1ZTohYXR0cmlidXRlcy5hbHBoYV0pOwotI2lmbmRlZiBOREVCVUcKLSAgICBb
bGF5ZXIgc2V0TmFtZTpAIldlYkdMIExheWVyIl07Ci0jZW5kaWYKLSAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TCi0gICAgcmV0dXJuIGxheWVyOwotfQotCiAvLyBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTCB0eXBlIHRoYXQgaXMgdXNlZCB3aGVuIFdlYkdMIGlzIHJ1biBpbi1wcm9jZXNzIGlu
IFdlYkNvbnRlbnQgcHJvY2Vzcy4KIGNsYXNzIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CiBwdWJsaWM6CiAg
ICAgfldlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTCgpID0gZGVmYXVsdDsKLSAgICBi
b29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNW
YWxpZCgpICYmIG1fd2ViR0xMYXllcjsgfQogICAgIC8vIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
IG92ZXJyaWRlcy4KLSAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVyKj4obV93ZWJHTExheWVyLmdldCgp
KTsgfQotICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsKKyAgICBSZWZQdHI8R3Jh
cGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURl
bGVnYXRlKCkgZmluYWw7CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICAgICAg
OiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB7IH0pCi0gICAg
ICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIoYXR0cmlidXRlcykpCiAgICAgewog
ICAgIH0KLSAgICBSZXRhaW5QdHI8V2ViR0xMYXllcj4gbV93ZWJHTExheWVyOwotCiAgICAgZnJp
ZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOwogfTsKIAotdm9pZCBXZWJQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnByZXBhcmVGb3JEaXNwbGF5KCkKK2NsYXNzIERpc3Bs
YXlCdWZmZXJDb250ZW50c1Byb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxE
aXNwbGF5QnVmZmVyQ29udGVudHNQcm92aWRlcj4gY3JlYXRlKFJlZjxXZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w+IGNvbnRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBEaXNwbGF5QnVmZmVyQ29udGVudHNQcm92aWRlcihXVEZNb3ZlKGNvbnRleHQpKSk7
CisgICAgfQorICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxl
Z2F0ZSBvdmVycmlkZXMuCisgICAgdm9pZCB3aWxsRGVsZWdhdGVEaXNwbGF5KFBsYXRmb3JtQ0FM
YXllciYgbGF5ZXIpIGZpbmFsCisgICAgeworICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBtX2Nv
bnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgICAgIGxheWVyLnNldE9wYXF1ZSghYXR0
cmlidXRlcy5hbHBoYSk7CisgICAgICAgIGxheWVyLnNldENvbnRlbnRzU2NhbGUoYXR0cmlidXRl
cy5kZXZpY2VQaXhlbFJhdGlvKTsKKyAgICB9CisgICAgdm9pZCBkaXNwbGF5KFBsYXRmb3JtQ0FM
YXllciYgbGF5ZXIpIGZpbmFsCisgICAgeworICAgICAgICBpZiAoYXV0byBkaXNwbGF5QnVmZmVy
ID0gbV9jb250ZXh0LT5kaXNwbGF5QnVmZmVyKCkpCisgICAgICAgICAgICBsYXllci5zZXRDb250
ZW50cyhkaXNwbGF5QnVmZmVyLT5hc0xheWVyQ29udGVudHMoKSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGxheWVyLnNldENvbnRlbnRzKG51bGxwdHIpOworICAgIH0KKyAgICBHcmFwaGlj
c0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBj
b25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0
aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbjo6Qm90dG9tVXA7CisgICAgfQorcHJpdmF0ZToKKyAg
ICBEaXNwbGF5QnVmZmVyQ29udGVudHNQcm92aWRlcihSZWY8V2ViUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMPiBjb250ZXh0KQorICAgICAgICA6IG1fY29udGV4dChXVEZNb3ZlKGNvbnRl
eHQpKQorICAgIHsKKyAgICB9CisgICAgUmVmPFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTD4gbV9jb250ZXh0OworfTsKKworUmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjps
YXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkKIHsKLSAgICBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6cHJlcGFyZUZvckRpc3BsYXkoKTsKLSAgICBhdXRvIHN1cmZhY2UgPSBtX3N3YXBDaGFp
bi5kaXNwbGF5QnVmZmVyKCkuc3VyZmFjZS5nZXQoKTsKLSAgICBpZiAoIXN1cmZhY2UpCi0gICAg
ICAgIHJldHVybjsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV93ZWJH
TExheWVyIHNldENvbnRlbnRzOnN1cmZhY2UtPmFzTGF5ZXJDb250ZW50cygpXTsKLSAgICBbbV93
ZWJHTExheWVyIHNldE5lZWRzRGlzcGxheV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UworICAgIHJldHVybiBEaXNwbGF5QnVmZmVyQ29udGVudHNQcm92aWRlcjo6Y3JlYXRlKCp0aGlz
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCBmZTEzZWFm
ZjRkNzNmYTY3MDE2MzYwZThkMmI4Y2Y4ZDMzYWM4ZTUzLi4zZDM0MWJlNzM5MDI0Yzg1NTAxM2M5
ODkwN2MyMWYwZWM4NzdmZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApA
QCAtNjYsOCArNjYsNiBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLU9CSkNfQ0xB
U1MgQ0FMYXllcjsKLU9CSkNfQ0xBU1MgV2ViR0xMYXllcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRTsKIH0KQEAgLTEwNCw3ICsxMDIsNiBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRl
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyopOwogICAgIHZpcnR1YWwg
fkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGlzcGxheU9iajsgfQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgcGxh
dGZvcm1Db25maWcoKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ09iajsgfQogICAgIHN0YXRpYyBH
Q0dMZW51bSBkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldFF1ZXJ5Rm9yRHJhd2luZ1RhcmdldChH
Q0dMZW51bSBkcmF3aW5nVGFyZ2V0KTsKQEAgLTE0NSw2ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCB0ZXhJbWFnZTJEUmVzb3VyY2VTYWZlKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZl
bCwgR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhl
aWdodCwgR0NHTGludCBib3JkZXIsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NH
TGludCBhbGlnbm1lbnQgPSA0KTsKICNlbmRpZgogCisgICAgLy8gR3JhcGhpY3NDb250ZXh0R0wg
b3ZlcnJpZGVzLgogICAgIGJvb2wgaXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0IGZpbmFsOwogCiAg
ICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NjQsNiArNDYyLDEwIEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVk
UmVzdWx0c1RvTWVkaWFTYW1wbGUoKSBmaW5hbDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpOworICAgIHZvaWQgbWFya0Rpc3BsYXlC
dWZmZXJJblVzZSgpOworI2VuZGlmCiAKICAgICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBy
ZWFkUmVuZGVyaW5nUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhl
bEJ1ZmZlcj4gcmVhZENvbXBvc2l0ZWRSZXN1bHRzRm9yUGFpbnRpbmcoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlCYXNlV0MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKaW5kZXggYzMxOTcyYzE0MWNh
OTA1NGRjYzk0ZGJlMTI4MzJjNDYwZDZiN2QxYi4uZWE4ZjgyNDQ2MWQwNTgyZTQzNjMyYTA2NTNk
OWMxMjAyZjFjMjdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2VXQy5jcHAKQEAgLTMyLDEwICszMiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXpl
KCkKLXsKLX0KLQogUGxhdGZvcm1MYXllciogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX3BsYXRmb3JtTGF5ZXIu
Z2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCmluZGV4IGE3ODRkYmJiODM3ZjdiN2U0MTdiMjY5YjZiNzBiYzkyNzIzNGQ1MWQuLjgzZTli
YmU2NjYyMjVjMTg3N2Q2ZGRhMzkwZWQxNDYzNTI1NDQ1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xMDg5LDcgKzEwODksNyBA
QCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbihjb25zdCBSZW5k
ZXJMYXllciogY29tcG9zaXRpbmdBbmNlcwogICAgIGVsc2UgaWYgKHJlbmRlcmVyKCkuaXNDYW52
YXMoKSAmJiBjYW52YXNDb21wb3NpdGluZ1N0cmF0ZWd5KHJlbmRlcmVyKCkpID09IENhbnZhc0Fz
TGF5ZXJDb250ZW50cykgewogICAgICAgICBjb25zdCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFz
ID0gZG93bmNhc3Q8SFRNTENhbnZhc0VsZW1lbnQ+KHJlbmRlcmVyKCkuZWxlbWVudCgpKTsKICAg
ICAgICAgaWYgKGF1dG8qIGNvbnRleHQgPSBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSkKLSAg
ICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoY29u
dGV4dC0+cGxhdGZvcm1MYXllcigpLCBHcmFwaGljc0xheWVyOjpDb250ZW50c0xheWVyUHVycG9z
ZTo6Q2FudmFzKTsKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNGcm9t
RGlzcGxheURlbGVnYXRlKGNvbnRleHQtPmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUoKSwg
R3JhcGhpY3NMYXllcjo6Q29udGVudHNMYXllclB1cnBvc2U6OkNhbnZhcyk7CiAKICAgICAgICAg
bGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMLmgKaW5kZXggZTcyOWEzYTcxNTQ1MmMzYWQ0NjRjN2NjOWVkNWMwZWNiM2IxMWUwOC4uNjMw
ZTM3YTAwOThiMjgyMjlhZDUyOWJmOTc2NjBhNjNkYTcwZmVlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0wuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnRleHQ7CiAgICAgfQotCisgICAgUmVmUHRy
PFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4gbGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBXZWJDb3JlOjpJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIoKSB7IHJl
dHVybiBtX3N3YXBDaGFpbi5kaXNwbGF5QnVmZmVyKCkuc3VyZmFjZS5nZXQoKTsgfQogICAgIHZv
aWQgbWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpIHsgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNw
bGF5QnVmZmVySW5Vc2UoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNjQzMWQ0MGIwNTZhNWFkZDJjNDFmMTFhMzVkMDRhNTRlZjEy
ODAzMS4uNzQzYjdiYjAwMWU0NDg4MjI4YjRjZTI3NTkyNWQxNjRmM2Y1N2QxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTc1LDYg
KzQ1NzUsNyBAQAogCQk3QjQ4M0YxQzI1Q0REQTlCMDAxMjA0ODYgLyogTWVzc2FnZVJlY2VpdmVR
dWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNzYWdlUmVjZWl2ZVF1
ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNDgzRjFEMjVDRERBOUIwMDEy
MDQ4NiAvKiBNZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlUXVldWVNYXAuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QjQ4M0YxRTI1Q0REQTlCMDAxMjA0ODYgLyogTWVzc2FnZVJlY2Vp
dmVRdWV1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY2Vp
dmVRdWV1ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I1MzAwRTcyNzE4MjE3
QTAwMDgyMDg2IC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2NEMwQjYyNTRDNUMyNTAwMDZCNEFGIC8qIEdy
YXBoaWNzQ29udGV4dEdMSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRl
eHRHTElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzEyMzEy
NUNDODUyMzAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjczMTIzMjI1Q0M4NTIzMDAzQjI3OTYgLyogU3RyZWFtQ29u
bmVjdGlvbldvcmtRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCmluZGV4IDExNDIx
NjZkMmUxNTVmYWI1ZWU4MWJkNWNhMjlhNmJmMDdmZmM3MGEuLjE4YmJmMmUyZGNjNzU2MDViODll
NzRmMzFlOWY0YjZlN2U3Y2VlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmNwcApAQCAtMzUsMTEgKzM1LDYgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0j
aW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaD4KLSNlbmRpZgotCiAjaWYgVVNF
KEdSQVBISUNTX0xBWUVSX1dDKQogI2luY2x1ZGUgIldDUGxhdGZvcm1MYXllckdDR0wuaCIKICNl
bmRpZgpAQCAtNDgsMTAgKzQzLDEyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAorI2lmICFQTEFURk9STShDT0NPQSkKIFJlZlB0cjxSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5PiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVhdGUo
Y29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBSZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQogewogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eShXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNr
ZW5kKSk7CiB9CisjZW5kaWYKIAogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZGVmYXVsdFN0cmVh
bVNpemUgPSAxIDw8IDIxOwogCkBAIC04OCw2ICs4NSwxMSBAQCB2b2lkIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHk6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogfQogCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQorUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxl
Z2F0ZT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6bGF5ZXJDb250ZW50c0Rpc3BsYXlE
ZWxlZ2F0ZSgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIHZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkoKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oCmluZGV4IGRk
MmU4MGI2NWQyMzRkNjk4ZTkwYzgzYTBjNWRjMzk5NTg3ZGQ3YWQuLjBiZDU2MmQ4MmMyNTU5NTdm
NzI2MTJjNDRjY2MyM2M5NGVjN2FiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eS5oCkBAIC00NywyMCArNDcsMTkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyBjb252
ZXJ0cyB0aGUgaW50ZXJmYWNlIHRvIGEgc2VxdWVuY2Ugb2YgSVBDIG1lc3NhZ2VzIGFuZCBzZW5k
cyB0aGUgbWVzc2FnZXMgdG8KIC8vIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIGluIEdQVSBwcm9j
ZXNzLgogLy8gVGhlIGltcGxlbWVudGF0aW9uIGlzIGxhcmdlbHkgZ2VuZXJhdGVkIGJ5IHJ1bm5p
bmcgVG9vbHMvU2NyaXB0cy9nZW5lcmF0ZS1ncHVwLXdlYmdsLgotY2xhc3MgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eSBmaW5hbAorY2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eQogICAgIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgICwgcHJpdmF0ZSBHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKLSAgICB+
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSgpIGZpbmFsOworICAgIH5SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5KCk7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciBvdmVycmlk
ZXMuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKIAogICAgIC8vIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNl
IG92ZXJyaWRlcy4KICAgICB2b2lkIHJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSBmaW5h
bDsKLSAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7CiAgICAgdXNpbmcgV2ViQ29y
ZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OmlzRW5hYmxlZDsKICAgICB2b2lk
IGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJiBleHRlbnNpb24pIGZpbmFsOwog
ICAgIHZvaWQgbm90aWZ5TWFya0NvbnRleHRDaGFuZ2VkKCkgZmluYWw7CkBAIC0zMTksNiArMzE4
LDggQEAgcHVibGljOgogICAgIC8vIEVuZCBvZiBsaXN0IHVzZWQgYnkgZ2VuZXJhdGUtZ3B1cC13
ZWJnbCBzY3JpcHQuCiAKIHByb3RlY3RlZDoKKyAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworCiAgICAgLy8gUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQgd2FpdFVu
dGlsSW5pdGlhbGl6ZWQoKSBmaW5hbDsKIApAQCAtMzUwLDcgKzM1MSw2IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaXNjb25uZWN0R3B1UHJvY2Vzc0lmTmVlZGVkKCk7CiAgICAgdm9pZCBhYmFuZG9u
R3B1UHJvY2VzcygpOwogCi0gICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eShHUFVQcm9j
ZXNzQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlv
biogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKICAgICBib29sIG1fZGlkSW5pdGlhbGl6ZSB7IGZh
bHNlIH07CiAgICAgR0NHTGVudW0gbV9lcnJvcldoZW5Db250ZXh0SXNMb3N0ID0gTk9fRVJST1I7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hLm1tCmluZGV4IDU0OTNmZmUwYzc0M2Q5ZGMxNzRhNTZiZmM2ZjE0OThjZDkwOTFlNzUuLjBk
NjVkYTFiYzkyYmZhZGZmYjVjN2VlMGFlNDZjOTEyM2VkMDYzNjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tCkBAIC0yOCwx
NCArMjgsNzcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKQog
I2ltcG9ydCAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oIgorI2ltcG9ydCA8V2Vi
Q29yZS9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSU9TdXJmYWNlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkdMTGF5ZXIuaD4KLSNpbXBv
cnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
Q0FMYXllci5oPgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpbXBvcnQgPFdlYkNvcmUv
Q1ZVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+Cisj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSgpCitu
YW1lc3BhY2UgeworCitjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EgZmlu
YWwgOiBwdWJsaWMgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSB7CitwdWJsaWM6CisgICAg
Ly8gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSBvdmVycmlkZXMuCisgICAgUmVmUHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4gbGF5ZXJDb250ZW50
c0Rpc3BsYXlEZWxlZ2F0ZSgpIGZpbmFsOworICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBm
aW5hbDsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRp
YVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSBmaW5hbDsKKyNl
bmRpZgorCisgICAgV2ViQ29yZTo6SU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9kaXNwbGF5QnVmZmVyLmdldCgpOyB9Citwcml2YXRlOgorICAgIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlDb2NvYShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0
cmlidXRlcywgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKKyAg
ICAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KGdwdVByb2Nlc3NDb25uZWN0aW9u
LCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNrZW5kKQorICAgIHsKKyAgICB9CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gbV9kaXNwbGF5QnVmZmVyOworICAgIGZyaWVu
ZCBjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OworfTsKKworY2xhc3MgRGlzcGxh
eUJ1ZmZlckNvbnRlbnRzUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERp
c3BsYXlCdWZmZXJDb250ZW50c1Byb3ZpZGVyPiBjcmVhdGUoUmVmPFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYT4gY29udGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERpc3BsYXlCdWZmZXJDb250ZW50c1Byb3ZpZGVyKFdURk1vdmUoY29udGV4dCkpKTsK
KyAgICB9CisgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVn
YXRlIG92ZXJyaWRlcy4KKyAgICB2b2lkIHdpbGxEZWxlZ2F0ZURpc3BsYXkoV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyJiBsYXllcikgZmluYWwKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBtb3Zl
IHRoZXNlIHRvIGNhbGxlci4KKyAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gbV9jb250ZXh0LT5j
b250ZXh0QXR0cmlidXRlcygpOworICAgICAgICBsYXllci5zZXRPcGFxdWUoIWF0dHJpYnV0ZXMu
YWxwaGEpOworICAgICAgICBsYXllci5zZXRDb250ZW50c1NjYWxlKGF0dHJpYnV0ZXMuZGV2aWNl
UGl4ZWxSYXRpbyk7CisgICAgfQorICAgIHZvaWQgZGlzcGxheShXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXImIGxheWVyKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gZGlzcGxheUJ1ZmZl
ciA9IG1fY29udGV4dC0+ZGlzcGxheUJ1ZmZlcigpKQorICAgICAgICAgICAgbGF5ZXIuc2V0Q29u
dGVudHMoZGlzcGxheUJ1ZmZlci0+YXNMYXllckNvbnRlbnRzKCkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBsYXllci5zZXRDb250ZW50cyhudWxscHRyKTsKKyAgICB9CisgICAgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVu
dGF0aW9uKCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb246OkJvdHRvbVVwOwor
ICAgIH0KK3ByaXZhdGU6CisgICAgRGlzcGxheUJ1ZmZlckNvbnRlbnRzUHJvdmlkZXIoUmVmPFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYT4gY29udGV4dCkKKyAgICAgICAgOiBtX2Nv
bnRleHQoV1RGTW92ZShjb250ZXh0KSkKKyAgICB7CisgICAgfQorICAgIFJlZjxSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5Q29jb2E+IG1fY29udGV4dDsKK307CisKK1JlZlB0cjxXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+IFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYTo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpCit7CisgICAg
cmV0dXJuIERpc3BsYXlCdWZmZXJDb250ZW50c1Byb3ZpZGVyOjpjcmVhdGUoKnRoaXMpOworfQor
Cit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYTo6cHJlcGFyZUZvckRpc3Bs
YXkoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTUz
LDEyICsxMTYsMjggQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJl
Rm9yRGlzcGxheSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9kaXNwbGF5QnVmZmVy
ID0gV1RGTW92ZShkaXNwbGF5QnVmZmVyKTsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKLSAgICBbbV93ZWJHTExheWVyIHNldENvbnRlbnRzOm1fZGlzcGxheUJ1ZmZlci0+YXNMYXll
ckNvbnRlbnRzKCldOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBtYXJrTGF5
ZXJDb21wb3NpdGVkKCk7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorUmVmUHRyPFdl
YkNvcmU6Ok1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2E6OnBh
aW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkKK3sKKyAgICBpZiAoIW1fZGlzcGxh
eUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9
IFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXIobV9kaXNwbGF5QnVmZmVyLT5zdXJmYWNlKCkp
OworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFdURk1v
dmUoKnBpeGVsQnVmZmVyKSwgV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpWaWRlb1JvdGF0
aW9uOjpVcHNpZGVEb3duLCB0cnVlKTsKK30KKyNlbmRpZgorCit9CisKK1JlZlB0cjxSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5PiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVh
dGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVz
LCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQoreworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hKFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCksIGF0dHJpYnV0
ZXMsIHJlbmRlcmluZ0JhY2tlbmQpKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggNWQwZWE4YmRiOTFhYjE0
MTg3NTAwNDFiNzllZDVmZWFlNzcyM2JhMC4uZjY2MmYwZjkzNmI0ZDkzZDkxYzk2NzJkYTc4YTIx
ZjM1OTdiY2RjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJl
bW90ZS5jcHAKQEAgLTUxLDcgKzUxLDEwIEBAIFJlZjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IFBs
YXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsCiAKICAg
ICBpZiAobGF5ZXJUeXBlID09IExheWVyVHlwZVRpbGVkQmFja2luZ0xheWVyIHx8ICBsYXllclR5
cGUgPT0gTGF5ZXJUeXBlUGFnZVRpbGVkQmFja2luZ0xheWVyKQogICAgICAgICBsYXllciA9IGFk
b3B0UmVmKG5ldyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcobGF5ZXJUeXBlLCBv
d25lciwgY29udGV4dCkpOwotICAgIGVsc2UKKyAgICBlbHNlIGlmIChsYXllclR5cGUgPT0gTGF5
ZXJUeXBlQ29udGVudHNQcm92aWRlZExheWVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdp
bGwgYmUgcmVtb3ZlZCBvbmNlIHByb3BlcnRpZXMgY29udGFpbiBmaWVsZHMgbmVlZGVkIGZvciBD
b250ZW50c1Byb3ZpZGVkLgorICAgICAgICBsYXllciA9IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1
c3RvbTo6Y3JlYXRlQ29udGVudHNQcm92aWRlZExheWVyKG93bmVyLCBjb250ZXh0KTsKKyAgICB9
IGVsc2UKICAgICAgICAgbGF5ZXIgPSBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
KGxheWVyVHlwZSwgb3duZXIsIGNvbnRleHQpKTsKIAogICAgIGNvbnRleHQubGF5ZXJEaWRFbnRl
ckNvbnRleHQoKmxheWVyLCBsYXllclR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1
c3RvbS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oCmluZGV4IGU2MjQ3ZGFhNmRiMDBlMjUwODI0
ZjY4YzkxODU2NTcxMDYwMzQ2MzQuLjljMDkxZDE4ZWI4YWEzZDdjMmFjNWMxMzU1MTExZGFkNGZk
NzEzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tLmgKQEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
Q3VzdG9tIGZpbmFsIDogcHVibGljIFBsYXRmb3JtQ0FMYXllclJlbW90ZSB7CiAgICAgZnJpZW5k
IGNsYXNzIFBsYXRmb3JtQ0FMYXllclJlbW90ZTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBs
YXRmb3JtQ0FMYXllclJlbW90ZT4gY3JlYXRlKFBsYXRmb3JtTGF5ZXIgKiwgV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyQ2xpZW50KiwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYpOworICAgIHN0YXRp
YyBSZWY8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBjcmVhdGVDb250ZW50c1Byb3ZpZGVkTGF5ZXIo
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYp
OwogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCmlu
ZGV4IDI3YjBmYzAwNTE4NWRhZDQ1YjZjYTNiNzhkODMwMjEzMDhlNDhmNGUuLmNlZDhlMzMzZWMw
NGY4MzIyZmNjNGFhYzEzYTdlZGQxMDU3MzNjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVD
dXN0b20ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbQpAQCAtMzQsMTUgKzM0LDM1IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDQS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
bGF0Zm9ybUNBTGF5ZXJDb2NvYS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlQ0FMYXllckV4
dHJhcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJMYXllci5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgogCiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KIAor
c3RhdGljIE5TU3RyaW5nICogY29uc3QgcGxhdGZvcm1DQUxheWVyUG9pbnRlciA9IEAiV0tQbGF0
Zm9ybUNBTGF5ZXIiOworCitAaW50ZXJmYWNlIFdLQ29udGVudHNQcm92aWRlZExheWVyIDogQ0FM
YXllcgorQGVuZAorQGltcGxlbWVudGF0aW9uIFdLQ29udGVudHNQcm92aWRlZExheWVyCistIChp
ZClpbml0Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICByZXR1cm4gc2VsZjsKK30K
Ky0gKHZvaWQpZGlzcGxheQoreworICAgIE5TVmFsdWUqIGxheWVyUG9pbnRlciA9IFtzZWxmIHZh
bHVlRm9yS2V5OnBsYXRmb3JtQ0FMYXllclBvaW50ZXJdOworICAgIGlmICghbGF5ZXJQb2ludGVy
KQorICAgICAgICByZXR1cm47CisgICAgV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0
b20qIGxheWVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90
ZUN1c3RvbSo+KFtsYXllclBvaW50ZXIgcG9pbnRlclZhbHVlXSk7CisgICAgaWYgKGxheWVyICYm
IGxheWVyLT5vd25lcigpKQorICAgICAgICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVy
TGF5ZXJEaWREaXNwbGF5KGxheWVyKTsKK30KK0BlbmQKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3RhdGljIE5TU3RyaW5nICogY29uc3QgcGxhdGZv
cm1DQUxheWVyUG9pbnRlciA9IEAiV0tQbGF0Zm9ybUNBTGF5ZXIiOwotCiBSZWY8UGxhdGZvcm1D
QUxheWVyUmVtb3RlPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OmNyZWF0ZShQbGF0Zm9y
bUxheWVyICpwbGF0Zm9ybUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1v
dGVMYXllclRyZWVDb250ZXh0JiBjb250ZXh0KQogewogICAgIGF1dG8gbGF5ZXIgPSBhZG9wdFJl
ZigqbmV3IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6
bGF5ZXJUeXBlRm9yUGxhdGZvcm1MYXllcihwbGF0Zm9ybUxheWVyKSwgcGxhdGZvcm1MYXllciwg
b3duZXIsIGNvbnRleHQpKTsKQEAgLTUwLDYgKzcwLDE1IEBAIFJlZjxQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU+IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6Y3JlYXRlKFBsYXRmb3JtTGF5ZXIg
KnBsCiAgICAgcmV0dXJuIFdURk1vdmUobGF5ZXIpOwogfQogCitSZWY8UGxhdGZvcm1DQUxheWVy
UmVtb3RlPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OmNyZWF0ZUNvbnRlbnRzUHJvdmlk
ZWRMYXllcihQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250
ZXh0JiBjb250ZXh0KQoreworICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBvbmNl
IHByb3BlcnRpZXMgY29udGFpbiBmaWVsZHMgbmVlZGVkIGZvciBDb250ZW50c1Byb3ZpZGVkLgor
ICAgIGF1dG8gcGxhdGZvcm1MYXllciA9IGFkb3B0TlMoW1tXS0NvbnRlbnRzUHJvdmlkZWRMYXll
ciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gbGF5ZXIgPSBhZG9wdFJlZigqbmV3IFBsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbShMYXllclR5cGVDb250ZW50c1Byb3ZpZGVkTGF5ZXIsIHBsYXRm
b3JtTGF5ZXIuZ2V0KCksIG93bmVyLCBjb250ZXh0KSk7CisgICAgY29udGV4dC5sYXllckRpZEVu
dGVyQ29udGV4dChsYXllci5nZXQoKSwgbGF5ZXItPmxheWVyVHlwZSgpKTsKKyAgICByZXR1cm4g
V1RGTW92ZShsYXllcik7Cit9CisKIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6UGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtTGF5ZXIg
KiBjdXN0b21MYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dCYgY29udGV4dCkKICAgICA6IFBsYXRmb3JtQ0FMYXllclJlbW90ZShsYXllclR5
cGUsIG93bmVyLCBjb250ZXh0KQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGQxMzc5YTliZjdjZjY1OWJlNGUzYWEzMTM3MjllMzc3NDA0ZTYz
Y2MuLjdlMzkwOWFmNmQyZTRmYjYxNmJhNjUwOTQxNGQyYTgwZDFlYjI0ZGUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0xMS0xNSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIENhbnZhcyByZW5kZXJpbmcgY29udGV4dCBzaG91bGQgbm90IGJlIHRpZWQgdG8gUGxhdGZv
cm1MYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMzMTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMQ29jb2EubW06CisgICAgICAgIEFkZCBhIGR1bW15IG92ZXJyaWRlIG9mIHRoZSBuZXcg
bWVtYmVyIGZ1bmN0aW9uIGxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuCisKIDIwMjEtMTEt
MTEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBJT1N1
cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RH
cmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4
IDhjOGVhOGZkOGJlMzFiMGRmY2E4MDdlYjY1ZDBlMjcxODFiOGRkOWMuLmUxMzc4ZDJjYzllZWZm
ZjUyMWJiMDgyNTYyZjA5MGE2NzZhYWE5Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTM1LDEzICszNSwxNCBAQCBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIHsK
LWNsYXNzIFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIDogcHVibGljIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMIHsKK2NsYXNzIFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZpbmFs
IDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmUHRyPFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGUoR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgewogICAgICAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFJlZigqbmV3IFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0
cmlidXRlcyksIHsgfSkpOwogICAgICAgICByZXR1cm4gY29udGV4dDsKICAgICB9CisgICAgUmVm
UHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4gbGF5ZXJD
b250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KIHByaXZh
dGU6CiAgICAgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3du
ZXIpCiAgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVz
KSwgV1RGTW92ZShyZXNvdXJjZU93bmVyKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444380</attachid>
            <date>2021-11-16 07:39:00 -0800</date>
            <delta_ts>2021-11-16 07:42:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233123-20211116173858.patch</filename>
            <type>text/plain</type>
            <size>74147</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU2MDJiNTA0NWQzOWFi
MDYwNjdjZmU0MDdlYTJmZjc2YWE1MjhhZS4uMGM2NzJjNWQyMjcyYTRjZmUxYmMzODY1MWNiMGQ3
OTRiNmNiZGE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDIxLTExLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzIHJlbmRl
cmluZyBjb250ZXh0IHNob3VsZCBub3QgYmUgdGllZCB0byBQbGF0Zm9ybUxheWVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxMjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVA6IElzIG1pc3Npbmcg
R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIGltcGxlbWVudGF0aW9uCisgICAg
ICAgIGZvciBjdXJyZW50IENhaXJvIFdlYkdML0NhbnZhcyBpbXBsZW1lbnRhdGlvbi4KKworICAg
ICAgICBBZGQgR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIGludGVyZmFjZSwg
d2hpY2ggY2FuIGJlCisgICAgICAgIHVzZWQgdG8gcnVuIGNsaWVudCBzcGVjaWZpYyBjb2RlIGR1
cmluZyBjb21wb3NpdG9yIGxheWVyIGNvbnRlbnRzIHVwZGF0ZQorICAgICAgICBwaGFzZSAoaS5l
LiBsYXllciBkaXNwbGF5IHBoYXNlKS4KKyAgICAgICAgTWFrZSBDYW52YXNSZW5kZXJpbmdDb250
ZXh0IHJldHVybiB0aGlzIG9iamVjdCBpbnN0ZWFkIG9mIFBsYXRmb3JtTGF5ZXIuCisgICAgICAg
IFRoaXMgd2F5IGZ1dHVyZSBDb2NvYSBXZWJHTCBVSS1zaWRlIGNvbXBvc2l0aW5nIGltcGxlbWVu
dGF0aW9uIGNhbgorICAgICAgICB1c2UgUGxhdGZvcm1DQUxheWVyIGNhbGxzIHRvIHNldHVwIGVh
Y2ggZGlzcGxheWVkIGZyYW1lLCBpbnN0ZWFkIG9mIHNldHRpbmcKKyAgICAgICAgdGhlIGNvbnRl
bnRzIHRvIENBTGF5ZXIuIFRoaXMgYWxsb3dzIHRoZSBmdXR1cmUgUGxhdGZvcm1DQUxheWVyUmVt
b3RlIHRvCisgICAgICAgIHN5bmNocm9uaXplIHRoZXNlIHByb3BlcnRpZXMgYXMgZmlyc3QtY2xh
c3MsIGluc3RlYWQgb2YgdXNpbmcgaG9zdGVkIENBTGF5ZXIuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCByZWZhY3Rvci4KKworICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
Q29yZS5vcmRlcjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpsYXllckNvbnRlbnRzRGlzcGxh
eURlbGVnYXRlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpwbGF0Zm9ybUxh
eWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGxhdGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpzZXRDb250ZW50c0Zyb21EaXNwbGF5RGVsZWdhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlOjpvcmllbnRh
dGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6
OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzRnJv
bURpc3BsYXlEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6Omxh
eWVyRGlkRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUNvbnRlbnRzUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2Ev
UGxhdGZvcm1DQUxheWVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5
ZXJDb2NvYTo6bGF5ZXJUeXBlRm9yUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXJDb2NvYTo6UGxhdGZvcm1DQUxheWVyQ29jb2EpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyQ29jb2E6OmNvbW1vbkluaXQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZGlzcGxheUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6bWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGxh
dGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRp
YWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29tcG9zaXRlZFJl
c3VsdHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSBDb2NvYSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbiB0byB0aGUgY29uY3JldGUgY2xhc3MgV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5CisgICAgICAgIHRvIHNpbXBsaWZ5IHRoZSBjbGFzcyBoaWVyYXJj
aHkgYW5kIHJlbW92ZSB0aGUgbmVlZCB0byBpZmRlZiBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjbGFz
cyBoaWVyYXJjaHkuCisgICAgICAgIFRoZSBjb25jcmV0ZSBjbGFzcyBuZWVkcyB0aGUgcGxhdGZv
cm0gZGVwZW5kZW50IHByb3BlcnRpZXMgYW55d2F5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW06IFJlbW92ZWQuCisgICAgICAgICgtW1dlYkdMTGF5
ZXIgaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmNvbnRlbnRzT3BhcXVlOl0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXZWJHTExheWVyIHNldFRyYW5zZm9ybTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV2ViR0xMYXllciBzZXRBbmNob3JQb2ludDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2Vi
R0xMYXllciBkaXNwbGF5XSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2VXQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisKIDIwMjEtMTEtMTYgIEtpbW1vIEtpbm51
bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZSBzaG91bGQgbm90IGhhdmUgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50
YXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDFkYjRmMDZmZTVjZjM3YmI5MzQ5YWNiMzNkYmJmZTgwMjcyOTRk
ZTkuLjk3OTIwZGE1YjAzZDM5OWZiNzI3ZDAzNGY3M2Q4Y2NlODQ5NWMxYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDggQEAKKzIwMjEtMTEtMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFw
cGxlLmNvbT4KKworICAgICAgICBDYW52YXMgcmVuZGVyaW5nIGNvbnRleHQgc2hvdWxkIG5vdCBi
ZSB0aWVkIHRvIFBsYXRmb3JtTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMzEyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2UgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSwgaS5lLiB0
aGUgV2ViQ29udGVudAorICAgICAgICBwcm9jZXNzIHNpZGUgR3JhcGhpY3NDb250ZXh0R0wgaW1w
bGVtZW50YXRpb24sIHRvIGV4cG9ydAorICAgICAgICB0aGUgV2ViR0wgYXMgR3JhcGhpY3NMYXll
ciBjb250ZW50cyB2aWEgR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLgorCisg
ICAgICAgIEFkZHMgYSByZWFsIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2Egc3ViY2xhc3Mg
dGhhdCBpbXBsZW1lbnRzIHRoZSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBwYXJ0cy4KKwor
ICAgICAgICBBZGQgYSB3b3JrYXJvdW5kIHRoYXQgaW1wbGVtZW50cyB0aGUgUGxhdGZvcm1DQUxh
eWVyIGNvbnRlbnRzIHByb3BlcnR5IGV4YWN0bHkKKyAgICAgICAgdGhlIHNhbWUgYXMgYmVmb3Jl
LCB2aWEgaG9zdGVkIENBTGF5ZXIuIEluIHRoZSBmdXR1cmUsIHRoaXMgaXMgcmVtb3ZlZCBhbmQK
KyAgICAgICAgUGxhdGZvcm1DQUxheWVyIGNvbnRlbnRzIHByb3BlcnR5IHdpbGwgYmUgaW1wbGVt
ZW50ZWQgYXMgcGFydCBvZiB0aGUKKyAgICAgICAgbGF5ZXIgcHJvcGVydGllcyBmb3IgdGhlIFVJ
LXNpZGUgY29tcG9zaXRpbmcgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmxheWVyQ29udGVudHNEaXNwbGF5
RGVsZWdhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KTogRGVs
ZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgcGxhdGZvcm0gZGVmaW5lZCBmdW5jdGlvbnMgdG8gdGhl
IHN1YmNsYXNzIHRvIGF2b2lkIGlmZGVmZmluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9t
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b20ubW06CisgICAgICAgICgtW1dLQ29udGVudHNQcm92aWRlZExh
eWVyIGluaXRdKToKKyAgICAgICAgKC1bV0tDb250ZW50c1Byb3ZpZGVkTGF5ZXIgZGlzcGxheV0p
OgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OmNyZWF0ZUNv
bnRlbnRzUHJvdmlkZWRMYXllcik6CisgICAgICAgIEFkZCBhIHRlbXBvcmFyeSBpbXBsZW1lbnRh
dGlvbiB0aGF0IHN0aWxsIHVzZXMgQ0FMYXllciBob3N0aW5nIHRvCisgICAgICAgIHNob3cgdGhl
IFdlYkdMIHRoYXQgaXMgaW1wb3J0ZWQgdG8gdGhyb3VnaCBDb250ZW50c0Rpc3BsYXlEZWxlZ2F0
ZS4KKyAgICAgICAgVGhlIGN1cnJlbnQgUGxhdGZvcm1DQUxheWVyUmVtb3RlIGltcGxlbWVudGF0
aW9uIGRvZXMgbm90IGhhdmUKKyAgICAgICAgdGhlIGV4cGxpY2l0IG5vdGlvbiBvZiBleHBvcnRp
bmcgdGhlICJjb250ZW50cyIgcHJvcGVydHkgd2l0aG91dAorICAgICAgICBSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS4KKwogMjAyMS0xMS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlIHNob3Vs
ZCBub3QgaGF2ZSBwbGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IDUwYTk2NjljOTY4YzhiNGVmMjkwYTlhZGMwZTFjOWY2ZTQ1YWQ4NTAuLjBiMjk2
Mzg4ODUzM2JlODNmNWRiMGY1YTY3Y2EwMzFhZTRiZDg1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtMTMxMiw2ICsxMzEyLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3Rv
cnkuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJUcmFuc2Zvcm0uaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAxMzY4ODAzYmE0MDdmZGE4MTcwMTk5YWYxMGJiNjNm
MTMwMGIzN2EzLi5lNmY1YzhmNjY5ODJhZjQ0ZTM0ZjlhMGJjMmM2OWFjODg1YjA4OGUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMzI3LDcgKzMyNyw2IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkFjdGlvbkRpc2Fi
bGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNv
cmVDQUxheWVyRXh0cmFzLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uLm1tCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0Nv
Y29hLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA1YWRmODZlNmM2NDI2YmU0
NmQ1OTIzYWFmZmUyYjIzM2EzYzJhOTQ4Li5jZDllZmU0MzY5NjZjZDQ0MmI4YWY2NzA4MDMxOWU3
NmJkMDQ2MjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjAyMSw2ICsyMDIxLDcgQEAgcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0R0wuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEltYWdlRXh0
cmFjdG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJUcmFuc2Zvcm0uY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAxYTQ2Njg2Zjc4Y2RjYjIzOGJhZDVm
MmFjMzJhNzJjNTQxNzQ2M2RlLi44YTcxZDJjZDAxMDllZDE4NGZmODRhMTcyOGJjMzMzYjExOTdj
ZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5MCw3ICszOTAsNiBAQCBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbSBAbm8tdW5pZnkKIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbQogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQotcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0
L0RyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggOWY4
NWU0OTg2YzUzYTFjYzhkNjNiMzM5NGQzZjcyOTU4MzJhZjM4Ny4uMzNhYzM1ZGY3ZDNkNTgzYzg2
ZDI3NTY1NGNhZGMxY2FmNzViMDc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0yMDQ3Miw4ICsy
MDQ3Miw2IEBAIF9PQkpDX0NMQVNTXyRfV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldwogX09C
SkNfTUVUQUNMQVNTXyRfV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldwogX09CSkNfQ0xBU1Nf
JF9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdwogX09CSkNfTUVUQUNMQVNTXyRfV2ViQ29yZUZ1bGxT
Y3JlZW5XaW5kb3cKLV9PQkpDX0NMQVNTXyRfV2ViR0xMYXllcgotX09CSkNfTUVUQUNMQVNTXyRf
V2ViR0xMYXllcgogX09CSkNfQ0xBU1NfJF9XZWJMYXllcgogX09CSkNfTUVUQUNMQVNTXyRfV2Vi
TGF5ZXIKIF9PQkpDX0NMQVNTXyRfV2ViU2NyaXB0T2JqZWN0CkBAIC0zMDY0Myw4ICszMDY0MSw2
IEBAIF9PQkpDX0lWQVJfJF9XZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5fZXhpdFdh
cm5pbmcKIF9PQkpDX0lWQVJfJF9XZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5fdGFy
Z2V0CiBfT0JKQ19JVkFSXyRfV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuX2FjdGlv
bgogX09CSkNfSVZBUl8kX1dlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuX3RleHRGaWVsZAot
X09CSkNfSVZBUl8kX1dlYkdMTGF5ZXIubV9jb250ZXh0Ci1fT0JKQ19JVkFSXyRfV2ViR0xMYXll
ci5tX2xheWVyT3duZXIKIF9PQkpDX0lWQVJfJF9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmltcAog
X09CSkNfSVZBUl8kX1dlYlNjcmlwdE9iamVjdFByaXZhdGUucm9vdE9iamVjdAogX09CSkNfSVZB
Ul8kX1dlYlNjcmlwdE9iamVjdFByaXZhdGUub3JpZ2luUm9vdE9iamVjdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUwMTU4YzRh
M2ZmMDRhMTAzNGNmMTc3ZTYyM2JhMzI2ZDcxZDgwZTguLjM2ZWNlYzc4MDBhOTVjYzg0YTNjNjAy
ZjBiMWYwM2NiZTEyMDQxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzMsNyArMTQzMyw2IEBACiAJCTQ5RUNFQjcwMTQ5
OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVDRUI2NjE0OTk3OTBEMDBDREQzQTQgLyogRmls
dGVyT3BlcmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ5RUVEMTQ1MTA1MTk2OTQwMDA5OUZBQiAvKiBKU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlFRUQxM0YxMDUxOTY5NDAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgg
Ki87IH07CiAJCTQ5RUVEMTQ3MTA1MTk2OTQwMDA5OUZBQiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlF
RUQxNDExMDUxOTY5NDAwMDk5RkFCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggKi87IH07
Ci0JCTQ5RkZCRjNGMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUZGQkYzRDExQzkzRUUzMDA2QTcx
MTggLyogV2ViR0xMYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTRBMERBMkZGMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
MERBMkZEMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0QTBGRkE5RTFBQUY1
RTdFMDA2MjgwM0IgLyogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMEZGQTlDMUFBRjVFNkMwMDYy
ODAzQiAvKiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRBMEZGQUEyMUFBRjVFQTIwMDYyODAz
QiAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTBGRkFBMDFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0yMzU5LDggKzIzNTgsMTAgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAw
QzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9u
TGlzdC5oICovOyB9OwogCQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250
ZXh0R0xDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0IxMDMzOUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3
MjFFMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMg
LyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0I1ODJERDgyNzE2RjU1QjAwNEI5MkQwIC8qIChudWxs
KSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjYwOTRERDI3MEM0NEJEMDA2NDgzNUMgLyog
QU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBBTkdMRVV0aWxpdGllcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNkRDODE5MjU3
MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I2REM4MTcyNTcx
MkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0I3MjBCMEMy
NzQzREJBNzAwMDhBQkVEIC8qIEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3MjBCMEEy
NzQzREJBNjAwMDhBQkVEIC8qIEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNzMx
MUZCMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjczMTFGQTI1
QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCOEVENUYwMjZG
MEMxM0QwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I5MDQxNzAyNTUwMTE0MjAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjkw
NDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTA2
Myw4ICs5MDY0LDYgQEAKIAkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5RkFCIC8qIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDlGQzdBNEYxNDQ0QUY1RjAwQTVEODY0IC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5UmVm
cmVzaE1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUZGQkYxQzEx
Qzg1NTBFMDA2QTcxMTggLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RkZCRjNEMTFDOTNFRTMw
MDZBNzExOCAvKiBXZWJHTExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdMTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlGRkJGM0UxMUM5
M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJHTExheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0QTBEQTJGQzEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Bc3NvY2lhdGVkRWxlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMERBMkZEMTI5QjI0MTkwMEFC
NjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTRBMEZGQTlCMUFBRjVFNkMwMDYyODAzQiAvKiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMTAyOSw2ICsxMTAyOCw3IEBACiAJCTdCMTYxOTEwMjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3Jh
cGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I3MjBCMEEyNzQzREJBNjAwMDhBQkVEIC8qIEdyYXBo
aWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3Bl
ZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1ZVdGlsaXRpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I4RUQ1RUYyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0
aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ1ZVdGlsaXRp
ZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTA0MCw2ICsxMTA0MCw3IEBA
CiAJCTdCQjM0QTQ3MjUzNzc2QzcwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0
cmFjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRy
YWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkI2ODBCNzI1QkExQkUz
MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDaGVja3NNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QkI2ODBCODI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDaGVja3NNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JCRkRFQ0QyNzQyOEY1NDAwRUQwQjc3IC8q
IEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QkNENDJEODI3MDU5OUVGMDBFQjIxMjcgLyogQU5HTEVVdGls
aXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQU5HTEVVdGlsaXRpZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QkNENDJEQTI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVV
dGlsaXRpZXNDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBTkdMRVV0aWxpdGllc0NvY29h
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JDRDQyREMyNzA1Qzk0OTAwRUIy
MTI3IC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVVdGlsaXRp
ZXNDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc5MzUsNiArMjc5MzYs
OCBAQAogCQkJCTBGNTgwQjA5MEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyLmNwcCAq
LywKIAkJCQkwRjU4MEIwQTBGMTJBMjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllci5oICovLAog
CQkJCTBGNTgwQjBCMEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyQ2xpZW50LmggKi8s
CisJCQkJN0JCRkRFQ0QyNzQyOEY1NDAwRUQwQjc3IC8qIEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rp
c3BsYXlEZWxlZ2F0ZS5jcHAgKi8sCisJCQkJN0I3MjBCMEEyNzQzREJBNjAwMDhBQkVEIC8qIEdy
YXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oICovLAogCQkJCTFBQzY5NTkyMTYx
QTFFNTMwMDM3MzJDQiAvKiBHcmFwaGljc0xheWVyRmFjdG9yeS5oICovLAogCQkJCTBGQTI0RDc3
MTYyREY5MTkwMEEzRjRDMCAvKiBHcmFwaGljc0xheWVyVXBkYXRlci5jcHAgKi8sCiAJCQkJMEZB
MjRENzgxNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmggKi8sCkBAIC0y
ODI0NSw4ICsyODI0OCw2IEBACiAJCQkJMkQzRUY0NDcxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNv
cmVDQUxheWVyRXh0cmFzLm1tICovLAogCQkJCUNENUQyNzc2MUU4MzE4RTAwMEQ4MEEzRCAvKiBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCAqLywKIAkJCQlDRDVEMjc3NTFFODMxOEUwMDBE
ODBBM0QgLyogV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tICovLAotCQkJCTQ5RkZCRjNE
MTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLmggKi8sCi0JCQkJNDlGRkJGM0UxMUM5M0VF
MzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8sCiAJCQkJMDdGNUNGRjQyNTgyQTRGODAwNjYy
RUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLmggKi8sCiAJCQkJMDdGNUNGRjIyNTgyQTRG
ODAwNjYyRUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLm1tICovLAogCQkJCTdCMTYxOTEw
MjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbSAqLywKQEAgLTMzNjExLDYgKzMzNjEyLDcgQEAKIAkJCQkwRjU4MEIwRDBGMTJBMjY5MDA1
MUQ2ODkgLyogR3JhcGhpY3NMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5QjNFRDcxMjhD
RDMxNDAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJDQS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1
ODBCMEUwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTdCNTgyREQ4MjcxNkY1NUIwMDRCOTJEMCAvKiAobnVsbCkgaW4gSGVhZGVycyAq
LywKIAkJCQkxQUM2OTU5MzE2MUExRTUzMDAzNzMyQ0IgLyogR3JhcGhpY3NMYXllckZhY3Rvcnku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQTI0RDdBMTYyREY5MTkwMEEzRjRDMCAvKiBHcmFwaGlj
c0xheWVyVXBkYXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMDE1QUIwQUY2Q0Q1MzAwNkJD
RTBFIC8qIEdyYXBoaWNzVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ0MTQsNiArMzQ0MTYs
NyBAQAogCQkJCUE4MEU3QjBDMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDc1NkQ0MTQyMzlBNEYwMDQxNDE2MSAvKiBKU0hUTUxU
cmFja0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODVCMjExMEExQjI1ODcwMEQ4Qzg3
QyAvKiBKU0hUTUxVTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCNzIwQjBDMjc0
M0RCQTcwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTZFNEFCQ0Q1MTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtu
b3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjE0MTcwQ0Q2ODI2OTAwRkFEQTc1
IC8qIEpTSFRNTFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODFCRTIwRDMxMUY0
QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLywKQEAgLTM2ODM3LDcg
KzM2ODQwLDYgQEAKIAkJCQk1QjMwNjk1RTE4QjNEMzQ1MDA5OUQ1RTggLyogV2ViR0xEcmF3QnVm
ZmVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCRjBFNTUxMkE4OTI5ODAwREIxNzA5IC8qIFdl
YkdMRXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlDRjEwNDJEMzJGMDAwOUQ0
NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlGRkJGM0YxMUM5
M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjFENUJC
MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2RUMzNjJEOTI1QjRDNTQ1MDA5MzdGODUgLyogV2ViR0xNdWx0aURyYXcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUQ1MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGI3OWY2YTIwOGQzY2I1ODFmOWFhMmQ1YzI1YjZiYWVh
MjIzZjU2N2IuLjcyYjJjY2U3NGRiOTcyYjg0YjIwOGRlNzNhODAyZGUyOGRmNmNlM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNs
dWRlICJDYW52YXNQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiRGVzdGluYXRpb25Db2xvclNwYWNlLmgi
CisjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmgiCiAjaW5j
bHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgpAQCAtODMsNiArODQsMTEgQEAgdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0OjpkZXJlZigpCiAgICAgbV9jYW52YXMuZGVyZWZDYW52YXNC
YXNlKCk7CiB9CiAKK1JlZlB0cjxHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUoKQor
eworICAgIHJldHVybiBudWxscHRyOworfQorCiBQaXhlbEZvcm1hdCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0OjpwaXhlbEZvcm1hdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFBpeGVsRm9ybWF0OjpC
R1JBODsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuaAppbmRleCAzNzIwMDc5MDQ2ZmUwMmY1Njg0NTIwNWQyYTdkZWI5OTc4ZTgwMjNl
Li41YWU3OWJmMGI5ZTM5MGIzYWE2MTUzZDI2MDE4ZDdmYjFiZWM5NTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCkBAIC03
Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAvLyB1c2VkIGZvciBjb21wb3NpdGluZyBwdXJwb3Nl
cy4KICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRpc3BsYXlXaXRoUGFpbnQoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKSB7IH0KLSAgICB2
aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9
CisgICAgdmlydHVhbCBSZWZQdHI8R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRl
PiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCk7CiAKICAgICBib29sIGhhc0FjdGl2ZUlu
c3BlY3RvckNhbnZhc0NhbGxUcmFjZXIoKSBjb25zdCB7IHJldHVybiBtX2hhc0FjdGl2ZUluc3Bl
Y3RvckNhbnZhc0NhbGxUcmFjZXI7IH0KICAgICB2b2lkIHNldEhhc0FjdGl2ZUluc3BlY3RvckNh
bnZhc0NhbGxUcmFjZXIoYm9vbCBoYXNBY3RpdmVJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyKSB7
IG1faGFzQWN0aXZlSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlciA9IGhhc0FjdGl2ZUluc3BlY3Rv
ckNhbnZhc0NhbGxUcmFjZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggMzM5MjViYzZhYzhkODdi
NDEwNmIwNjMxZWQzNDI5MDM5YTc4YWZlNC4uN2IzMDgxM2FhOWIwN2E2NGFhYTRmZGFiNmUxNWFi
MmYxMjhkY2IxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0
cmFjdG9yLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCIKKyNpbmNsdWRl
ICJHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCIKICNpbmNsdWRlICJIVE1M
Q2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MVmlkZW9FbGVtZW50LmgiCkBAIC02NDQ1LDkgKzY0NDYsMTEgQEAgYm9vbCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjppc0NvbnRleHRVbnJlY292ZXJhYmx5TG9zdCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fY29udGV4dExvc3QgJiYgIW1fcmVzdG9yZUFsbG93ZWQ7CiB9CiAKLVBsYXRm
b3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25z
dAorUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpCiB7Ci0gICAg
cmV0dXJuICghaXNDb250ZXh0TG9zdCgpICYmICFtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24p
ID8gbV9jb250ZXh0LT5wbGF0Zm9ybUxheWVyKCkgOiAwOworICAgIGlmIChpc0NvbnRleHRMb3N0
KCkgfHwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gbV9jb250ZXh0LT5sYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCk7
CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlU2hhcmVkT2JqZWN0
KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggNjUyNGM5MTczNzU3
MDlhMmM2NTBlMmFiODE2MTM5ZGY1MDU4MTYwOC4uYjU0NTdlNzEzN2Y4NDI2ZGMwMzEwNGI0YzRl
NmEzZmIyMjI0YzNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtMzg2LDcgKzM4Niw3IEBAIHB1YmxpYzoK
IAogICAgIEdyYXBoaWNzQ29udGV4dEdMKiBncmFwaGljc0NvbnRleHRHTCgpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGV4dC5nZXQoKTsgfQogICAgIFdlYkdMQ29udGV4dEdyb3VwKiBjb250ZXh0R3Jv
dXAoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRHcm91cC5nZXQoKTsgfQotICAgIFBsYXRmb3Jt
TGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8R3JhcGhp
Y3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVn
YXRlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0
KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggZWRhYTRjZTVlYTcyZTczMGJjNTI1NDZjNzAwNmVk
MjM3MjczOTYwZC4uM2Y5MDNjYjljNTlkNmY4ZGFiNWQ2MTI3MGVlZGQxZDU2NzY3NWRkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRHTC5oCkBAIC0yOCwxMiArMjgsMTIgQEAKICNpZiBFTkFCTEUoV0VCR0wpCiAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVy
Q29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIK
ICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRT
aXplLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUxheWVy
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzg2LDcgKzc4Niw3IEBAIHB1
YmxpYzoKICAgICAgICAgWWVzCiAgICAgfTsKIAotICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxHcmFwaGljc0xh
eWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+IGxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUo
KSA9IDA7CiAKICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGhhc0FscGhhKERhdGFGb3Jt
YXQgZm9ybWF0KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYzc1ZGE1NmE4MzYxNTZjYzBkNWU1YTdkZjFiZmIw
YzRiMmIyNjJjNy4uMWJiNzdmNDc3MWY4YmVkYzIwY2M4MGE3MDc0NjMzOTExZmU3NzI5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVj
dC5oIgogI2luY2x1ZGUgIlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CkBAIC02MTIsNiArNjEzLDEwIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6cmVz
dW1lQW5pbWF0aW9ucygpCiB7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNG
cm9tRGlzcGxheURlbGVnYXRlKFJlZlB0cjxHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVs
ZWdhdGU+JiYsIENvbnRlbnRzTGF5ZXJQdXJwb3NlKQoreworfQorCiB2b2lkIEdyYXBoaWNzTGF5
ZXI6OmdldERlYnVnQm9yZGVySW5mbyhDb2xvciYgY29sb3IsIGZsb2F0JiB3aWR0aCkgY29uc3QK
IHsKICAgICB3aWR0aCA9IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmgKaW5kZXggYmY5NTA5ZjE4Y2NiOTU5OTIzZGQ5ZjVkNWZiMjUyYmUx
OGI5ODk5Yy4uMTYxZTNiOTdiNTg5ZGRhMDA3ODQ5Y2Q4MDg3ZWE5NTZiOTUyMDllZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAt
NTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBbmltYXRpb247CiBjbGFz
cyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeTsKK2NsYXNzIEdy
YXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZTsKIGNsYXNzIEltYWdlOwogY2xhc3Mg
TW9kZWw7CiBjbGFzcyBUaWxlZEJhY2tpbmc7CkBAIC01MjIsNiArNTIzLDcgQEAgcHVibGljOgog
ICAgIC8vIFBhc3MgYW4gaW52YWxpZCBjb2xvciB0byByZW1vdmUgdGhlIGNvbnRlbnRzIGxheWVy
LgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9y
bUxheWVyKiwgQ29udGVudHNMYXllclB1cnBvc2UpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c0Zyb21EaXNwbGF5RGVsZWdhdGUoUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rp
c3BsYXlEZWxlZ2F0ZT4mJiwgQ29udGVudHNMYXllclB1cnBvc2UpOwogI2lmIEVOQUJMRShNT0RF
TF9FTEVNRU5UKQogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvTW9kZWwoUmVmUHRyPE1v
ZGVsPiYmKSB7IH0KICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXJJRCBjb250ZW50c0xheWVySURG
b3JNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ29udGVu
dHNEaXNwbGF5RGVsZWdhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxY2UzZTRmYzAzOWIwZTAzMjgxYzdi
ZTQ3ZTgzNjVmMDE5Y2YzYzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY3BwCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNvbnRlbnRz
RGlzcGxheURlbGVnYXRlLmgiCisKKyNpZiBVU0UoQ0EpCisjaW5jbHVkZSAiR3JhcGhpY3NMYXll
ckNBLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGU6On5HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdh
dGUoKSA9IGRlZmF1bHQ7CisKKyNpZiBVU0UoQ0EpCitHcmFwaGljc0xheWVyOjpDb21wb3NpdGlu
Z0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVn
YXRlOjpvcmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEdyYXBoaWNzTGF5ZXJDQTo6
ZGVmYXVsdENvbnRlbnRzT3JpZW50YXRpb247Cit9CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTc3M2YyZTNjN2M3
ZTYzMDk1YjA5MjlkZGViNDBiMWQwMThmOTgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVn
YXRlLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpZiBV
U0UoQ0EpCitjbGFzcyBQbGF0Zm9ybUNBTGF5ZXI7CisjZW5kaWYKKworLy8gUGxhdGZvcm0gc3Bl
Y2lmaWMgaW50ZXJmYWNlIGZvciBhdHRhY2hpbmcgY29udGVudHMgdG8gR3JhcGhpY3NMYXllci4K
Ky8vIFJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBjb21wb3NpdG9yIHJlc291cmNlcyB0byBzaG93
IHRoZSBwYXJ0aWN1bGFyIGNvbnRlbnRzCisvLyBpbiB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgR3Jh
cGhpY3NMYXllci4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rp
c3BsYXlEZWxlZ2F0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rp
c3BsYXlEZWxlZ2F0ZT4geworcHVibGljOgorICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpOworCisjaWYgVVNFKENBKQorICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVsZWdhdGVEaXNwbGF5KFBsYXRmb3JtQ0FMYXllciYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGxheShQbGF0Zm9ybUNBTGF5ZXImKSA9IDA7CisgICAgdmlydHVhbCBHcmFwaGljc0xh
eWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25z
dDsKKyNlbmRpZgorfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggNTE5MGEzODY1NDMwMDcyMDA1
MDljZjkwNWI3MGY1NWQwN2I1N2I0Ny4uZjJlNmNlZTdjYjBhOGZiOTQwMTI4NDA2ZTc4ZDNjMWI4
YjE0YmZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRGlz
cGxheUxpc3RSZXBsYXllci5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlE
ZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJGYWN0b3J5LmgiCiAjaW5jbHVkZSAi
SW1hZ2UuaCIKICNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCkBAIC0xMzQ4LDYgKzEz
NDksMjcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVy
KFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIEMKICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNo
YW5nZWQoQ29udGVudHNQbGF0Zm9ybUxheWVyQ2hhbmdlZCk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NM
YXllckNBOjpzZXRDb250ZW50c0Zyb21EaXNwbGF5RGVsZWdhdGUoUmVmUHRyPEdyYXBoaWNzTGF5
ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4mJiBwcm92aWRlciwgQ29udGVudHNMYXllclB1cnBv
c2UgcHVycG9zZSkKK3sKKyAgICBpZiAobV9jb250ZW50c0xheWVyICYmIHByb3ZpZGVyID09IG1f
Y29udGVudHNEaXNwbGF5RGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nv
bnRlbnRzTGF5ZXIpCisgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0T3duZXIobnVsbHB0cik7
CisgICAgbV9jb250ZW50c0xheWVyID0gbnVsbHB0cjsKKyAgICBtX2NvbnRlbnRzRGlzcGxheURl
bGVnYXRlID0gbnVsbHB0cjsKKyAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gQ29udGVudHNM
YXllclB1cnBvc2U6Ok5vbmU7CisgICAgaWYgKHByb3ZpZGVyKSB7CisgICAgICAgIG1fY29udGVu
dHNMYXllciA9IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlw
ZUNvbnRlbnRzUHJvdmlkZWRMYXllciwgdGhpcyk7CisgICAgICAgIG1fY29udGVudHNEaXNwbGF5
RGVsZWdhdGUgPSBXVEZNb3ZlKHByb3ZpZGVyKTsKKyAgICAgICAgbV9jb250ZW50c0xheWVyUHVy
cG9zZSA9IHB1cnBvc2U7CisgICAgICAgIG1fY29udGVudHNEaXNwbGF5RGVsZWdhdGUtPndpbGxE
ZWxlZ2F0ZURpc3BsYXkoKm1fY29udGVudHNMYXllcik7CisgICAgfQorCisgICAgbm90ZVN1Ymxh
eWVyc0NoYW5nZWQoKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNQbGF0
Zm9ybUxheWVyQ2hhbmdlZCk7Cit9CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogUGxhdGZv
cm1MYXllciogR3JhcGhpY3NMYXllckNBOjpjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdAog
ewpAQCAtMTM3MSw2ICsxMzkzLDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50
c01hZ25pZmljYXRpb25GaWx0ZXIoU2NhbGluZ0ZpbHRlciBmaWx0ZXIpCiAgICAgbm90ZUxheWVy
UHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzU2NhbGluZ0ZpbHRlcnNDaGFuZ2VkKTsKIH0KIAorYm9v
bCBHcmFwaGljc0xheWVyQ0E6OmxheWVyRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQor
eworICAgIGlmIChtX2NvbnRlbnRzRGlzcGxheURlbGVnYXRlICYmIGxheWVyID09IG1fY29udGVu
dHNMYXllcikgeworICAgICAgICBtX2NvbnRlbnRzRGlzcGxheURlbGVnYXRlLT5kaXNwbGF5KCps
YXllcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpsYXllckRpZERpc3BsYXkoUGxhdGZvcm1DQUxheWVy
KiBsYXllcikKIHsKICAgICBpZiAoIW1fbGF5ZXJDbG9uZXMpCkBAIC0yNzkyLDcgKzI4MjMsOCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gUGxhdGZvcm0gbGF5ZXIgd2FzIHNldCBhcyBtX2NvbnRl
bnRzTGF5ZXIsIGFuZCB3aWxsIGdldCBwYXJlbnRlZCBpbiB1cGRhdGVTdWJsYXllckxpc3QoKS4K
LSAgICBzZXR1cENvbnRlbnRzTGF5ZXIobV9jb250ZW50c0xheWVyLmdldCgpKTsKKyAgICBhdXRv
IG9yaWVudGF0aW9uID0gbV9jb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSA/IG1fY29udGVudHNEaXNw
bGF5RGVsZWdhdGUtPm9yaWVudGF0aW9uKCkgOiBkZWZhdWx0Q29udGVudHNPcmllbnRhdGlvbjsK
KyAgICBzZXR1cENvbnRlbnRzTGF5ZXIobV9jb250ZW50c0xheWVyLmdldCgpLCBvcmllbnRhdGlv
bik7CiAKICAgICBpZiAobV9jb250ZW50c0xheWVyUHVycG9zZSA9PSBDb250ZW50c0xheWVyUHVy
cG9zZTo6Q2FudmFzKQogICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgp
OwpAQCAtNDQxMiwxOSArNDQ0NCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y2hhbmdlTGF5
ZXJUeXBlVG8oUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgbmV3TGF5ZXJUeXBlKQogICAgICAg
ICBjbGllbnQoKS50aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQodGhpcywgaXNUaWxlZExheWVyKTsK
IH0KIAotR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIEdy
YXBoaWNzTGF5ZXJDQTo6ZGVmYXVsdENvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdAotewotICAg
IHJldHVybiBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb246OlRvcERvd247Ci19Ci0K
LXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXR1cENvbnRlbnRzTGF5ZXIoUGxhdGZvcm1DQUxheWVy
KiBjb250ZW50c0xheWVyKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNMYXll
cihQbGF0Zm9ybUNBTGF5ZXIqIGNvbnRlbnRzTGF5ZXIsIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNP
cmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKICAgICAvLyBUdXJuIG9mZiBpbXBsaWNpdCBhbmlt
YXRpb25zIG9uIHRoZSBpbm5lciBsYXllci4KICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBjb250ZW50c0xheWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOwogI2VuZGlmCi0KLSAgICBp
ZiAoZGVmYXVsdENvbnRlbnRzT3JpZW50YXRpb24oKSA9PSBDb21wb3NpdGluZ0Nvb3JkaW5hdGVz
T3JpZW50YXRpb246OkJvdHRvbVVwKSB7CisgICAgaWYgKG9yaWVudGF0aW9uID09IENvbXBvc2l0
aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbjo6Qm90dG9tVXApIHsKICAgICAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggZmxpcHBlcigKICAgICAgICAgICAgIDEuMGYsIDAuMGYsIDAuMGYsIDAuMGYs
CiAgICAgICAgICAgICAwLjBmLCAtMS4wZiwgMC4wZiwgMC4wZiwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggOWQ0
NGY2YWIzODBjODg2NjYzNGYzYmY3NDA5ZWVjN2YzOWI0OGQ4Ny4uMzFiOTljMjJhZDA4NTA2Yjk0
NzIzMGNlMDc0NWFlYWY4YTkzNzljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTE1MCw2ICsxNTAsOCBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUGxhdGZvcm1MYXllciogY29udGVudHNMYXllckZv
ck1lZGlhKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBDb250ZW50c0xheWVy
UHVycG9zZSkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb250ZW50c0Zy
b21EaXNwbGF5RGVsZWdhdGUoUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxl
Z2F0ZT4mJiwgQ29udGVudHNMYXllclB1cnBvc2UpIG92ZXJyaWRlOworCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpIG92ZXJyaWRl
OwogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
Q29udGVudHNUb01vZGVsKFJlZlB0cjxNb2RlbD4mJikgb3ZlcnJpZGU7CkBAIC0yMTIsNiArMjE0
LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGxhdGZvcm1DQUxheWVyQ29udGVudHNPcGFxdWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjb250ZW50c09wYXF1ZSgpOyB9CiAgICAgYm9vbCBw
bGF0Zm9ybUNBTGF5ZXJEcmF3c0NvbnRlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBkcmF3
c0NvbnRlbnQoKTsgfQorICAgIGJvb2wgcGxhdGZvcm1DQUxheWVyTGF5ZXJEaXNwbGF5KFBsYXRm
b3JtQ0FMYXllciogbGF5ZXIpIG92ZXJyaWRlIHsgcmV0dXJuIGxheWVyRGlzcGxheShsYXllcik7
IH0KICAgICB2b2lkIHBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5
ZXIqIGxheWVyKSBvdmVycmlkZSB7IHJldHVybiBsYXllckRpZERpc3BsYXkobGF5ZXIpOyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVkc1RvUmV2YWxpZGF0
ZVRpbGVzKCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgZmxvYXQgcGxhdGZvcm1DQUxh
eWVyRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKQEAgLTI0Miw2ICsyNDUsNyBA
QCBwcml2YXRlOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRSZXBhaW50T25TaXpl
Q2hhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGxheWVy
RGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxheWVy
RGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqKTsKIAogICAgIHZpcnR1YWwgUmVmPFBsYXRmb3Jt
Q0FMYXllcj4gY3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBl
LCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKTsKQEAgLTMwMCwxMCArMzA0LDggQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgcmVxdWlyZXNUaWxlZExheWVyKGZsb2F0IHBhZ2VTY2FsZUZhY3Rv
cikgY29uc3Q7CiAgICAgdm9pZCBjaGFuZ2VMYXllclR5cGVUbyhQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZSk7Ci0KLSAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gZGVmYXVs
dENvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdDsKLQotICAgIHZvaWQgc2V0dXBDb250ZW50c0xh
eWVyKFBsYXRmb3JtQ0FMYXllciopOworICAgIGNvbnN0ZXhwciBzdGF0aWMgQ29tcG9zaXRpbmdD
b29yZGluYXRlc09yaWVudGF0aW9uIGRlZmF1bHRDb250ZW50c09yaWVudGF0aW9uID0gQ29tcG9z
aXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uOjpUb3BEb3duOworICAgIHZvaWQgc2V0dXBDb250
ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllciosIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRh
dGlvbiA9IGRlZmF1bHRDb250ZW50c09yaWVudGF0aW9uKTsKICAgICBQbGF0Zm9ybUNBTGF5ZXIq
IGNvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzTGF5ZXIuZ2V0KCk7IH0K
IAogICAgIHZvaWQgdXBkYXRlQ2xpcHBpbmdTdHJhdGVneShQbGF0Zm9ybUNBTGF5ZXImLCBSZWZQ
dHI8UGxhdGZvcm1DQUxheWVyPiYgc2hhcGVNYXNrTGF5ZXIsIGNvbnN0IEZsb2F0Um91bmRlZFJl
Y3QmKTsKQEAgLTY0NCw2ICs2NDYsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNT0RFTF9FTEVN
RU5UKQogICAgIFJlZlB0cjxNb2RlbD4gbV9jb250ZW50c01vZGVsOwogI2VuZGlmCisgICAgUmVm
UHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4gbV9jb250ZW50c0Rpc3Bs
YXlEZWxlZ2F0ZTsKIAogICAgIFZlY3RvcjxMYXllclByb3BlcnR5QW5pbWF0aW9uPiBtX2FuaW1h
dGlvbnM7CiAgICAgVmVjdG9yPExheWVyUHJvcGVydHlBbmltYXRpb24+IG1fYmFzZVZhbHVlVHJh
bnNmb3JtQW5pbWF0aW9uczsKQEAgLTY2Myw2ICs2NjYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9oYXNFdmVyUGFpbnRlZCA6IDE7CiAgICAgYm9vbCBtX2hhc0Rlc2NlbmRhbnRzV2l0aFJ1bm5p
bmdUcmFuc2Zvcm1BbmltYXRpb25zIDogMTsKICAgICBib29sIG1faGFzRGVzY2VuZGFudHNXaXRo
VW5jb21taXR0ZWRDaGFuZ2VzIDogMTsKKyAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxh
eWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9y
bUNBTGF5ZXJDbGllbnQuaAppbmRleCA2Nzc4ZGU3MTljNTBlMWE0NWZjODI0NmQ3M2E5MDhhYmZi
YWQxMzA2Li5iNDBhZmJiNzhhOGI0ZGZhM2M4ZmI4ZTcwYWY4MTNmMTVhYzM4YzkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9y
bUNBTGF5ZXJDbGllbnQuaApAQCAtNTEsNiArNTEsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmly
dHVhbCBib29sIHBsYXRmb3JtQ0FMYXllckNvbnRlbnRzT3BhcXVlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJEcmF3c0NvbnRlbnQoKSBjb25zdCA9IDA7Cisg
ICAgLy8gUmV0dXJucyB0cnVlIGlmIGRlbGVnYXRlZCBkaXNwbGF5IHdhcyBkb25lIHdpdGhpbiB0
aGlzIGNhbGxiYWNrIGRlZmF1bHQgZGlzcGxheQorICAgIC8vIHNob3VsZCBiZSBza2lwcGVkLiAK
KyAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyTGF5ZXJEaXNwbGF5KFBsYXRmb3JtQ0FM
YXllciopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXll
ckxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVkc1RvUmV2YWxpZGF0ZVRpbGVzKCkgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
TGF5ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29h
L1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCmluZGV4IDM0ZTI1OTBmNTc3Mjk2YjIyMzliZjI4Njgy
ZmM3NTZhYzY2OTAzYWEuLmNiZDYzNTFmODcxNjZhMTBhNTQ3NDNjZDA3NTVmODdiZjA0MDdmMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1Bs
YXRmb3JtQ0FMYXllckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCkBAIC00MCw3ICs0MCw2IEBACiAj
aW1wb3J0ICJUaWxlZEJhY2tpbmcuaCIKICNpbXBvcnQgIldlYkFjdGlvbkRpc2FibGluZ0NBTGF5
ZXJEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKLSNpbXBvcnQg
IldlYkdMTGF5ZXIuaCIKICNpbXBvcnQgIldlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCIKICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5r
aW5nLmg+CkBAIC0yMTEsOSArMjEwLDYgQEAgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgUGxh
dGZvcm1DQUxheWVyQ29jb2E6OmxheWVyVHlwZUZvclBsYXRmb3JtTGF5ZXIoUGxhdGYKICAgICAg
ICAgJiYgWyhXZWJWaWRlb0NvbnRhaW5lckxheWVyKilsYXllciBwbGF5ZXJMYXllcl0pCiAgICAg
ICAgIHJldHVybiBMYXllclR5cGVBVlBsYXllckxheWVyOwogCi0gICAgaWYgKFtsYXllciBpc0tp
bmRPZkNsYXNzOltXZWJHTExheWVyIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBMYXllclR5cGVD
b250ZW50c1Byb3ZpZGVkTGF5ZXI7Ci0KICAgICByZXR1cm4gTGF5ZXJUeXBlQ3VzdG9tOwogfQog
CkBAIC0yMzQsNiArMjMwLDcgQEAgUGxhdGZvcm1DQUxheWVyQ29jb2E6OlBsYXRmb3JtQ0FMYXll
ckNvY29hKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckMKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBMYXllclR5cGVTaW1wbGVMYXllcjoKICAgICBjYXNlIExheWVyVHlwZVRp
bGVkQmFja2luZ1RpbGVMYXllcjoKKyAgICBjYXNlIExheWVyVHlwZUNvbnRlbnRzUHJvdmlkZWRM
YXllcjoKICAgICAgICAgbGF5ZXJDbGFzcyA9IFtXZWJTaW1wbGVMYXllciBjbGFzc107CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTGF5ZXJUeXBlVHJhbnNmb3JtTGF5ZXI6CkBAIC0yNjUsMTAg
KzI2Miw2IEBAIFBsYXRmb3JtQ0FMYXllckNvY29hOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYShMYXll
clR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDCiAgICAgICAgIGlmIChQQUw6OmlzQVZG
b3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgICAgICBsYXllckNsYXNzID0g
UEFMOjpnZXRBVlBsYXllckxheWVyQ2xhc3MoKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBM
YXllclR5cGVDb250ZW50c1Byb3ZpZGVkTGF5ZXI6Ci0gICAgICAgIC8vIFdlIGRvbid0IGNyZWF0
ZSBQbGF0Zm9ybUNBTGF5ZXJDb2NvYXMgd3JhcHBlZCBhcm91bmQgV2ViR0xMYXllcnMuCi0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoTU9E
RUxfRUxFTUVOVCkKICAgICBjYXNlIExheWVyVHlwZU1vZGVsTGF5ZXI6CiAgICAgICAgIGxheWVy
Q2xhc3MgPSBbQ0FMYXllciBjbGFzc107CkBAIC0zMTAsNyArMzAzLDcgQEAgdm9pZCBQbGF0Zm9y
bUNBTGF5ZXJDb2NvYTo6Y29tbW9uSW5pdCgpCiAgICAgfQogICAgIAogICAgIC8vIENsZWFyIGFs
bCB0aGUgaW1wbGljaXQgYW5pbWF0aW9ucyBvbiB0aGUgQ0FMYXllcgotICAgIGlmIChtX2xheWVy
VHlwZSA9PSBMYXllclR5cGVBVlBsYXllckxheWVyIHx8IG1fbGF5ZXJUeXBlID09IExheWVyVHlw
ZUNvbnRlbnRzUHJvdmlkZWRMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVTY3JvbGxD
b250YWluZXJMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDdXN0b20pCisgICAgaWYg
KG1fbGF5ZXJUeXBlID09IExheWVyVHlwZUFWUGxheWVyTGF5ZXIgfHwgbV9sYXllclR5cGUgPT0g
TGF5ZXJUeXBlU2Nyb2xsQ29udGFpbmVyTGF5ZXIgfHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBl
Q3VzdG9tKQogICAgICAgICBbbV9sYXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOwogICAgIGVs
c2UKICAgICAgICAgW21fbGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5
ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tCmluZGV4IDE5NzlkYTU2NzI0YmEwZDI1YWRhNWQxNDFiNjNmNWFiNWYxZTdhOTQuLjM4
MTczY2EwMTc2MWZlY2Y1N2I3NDg5MzZlZjJlODdkNjFkMjY2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtNTksNiArNTksNyBAQCBXVEZfV0VBS19M
SU5LX0ZPUkNFX0lNUE9SVChFR0xfSW5pdGlhbGl6ZSk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorCiBib29sIHBsYXRmb3JtSXNBTkdMRUF2YWlsYWJsZSgpCiB7CiAgICAgLy8gVGhlIEFOR0xF
IGlzIHdlYWsgbGlua2VkIGluIGZ1bGwsIGFuZCB0aGUgRUdMX0luaXRpYWxpemUgaXMgZXhwbGlj
aXRseSB3ZWFrIGxpbmtlZCBhYm92ZQpAQCAtNDM1LDExICs0MzYsNiBAQCBib29sIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjppc1ZhbGlkKCkgY29uc3QKICAgICByZXR1cm4gbV90ZXh0dXJlOwog
fQogCi1QbGF0Zm9ybUxheWVyKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGxhdGZvcm1MYXll
cigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIEdDR0xlbnVtIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjpkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpCiB7CiAgICAgaWYg
KG1fZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQgPT0gLTEpCkBAIC03MzcsNyArNzMzLDYgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFyZUZvckRpc3BsYXkoKQogICAgIH0K
IH0KIAotCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogR3JhcGhpY3ND
b250ZXh0R0xDViogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFzQ1YoKQogewpAQCAtNzk5LDYg
Kzc5NCwxNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwbGF0Zm9ybVJlbGVhc2VU
aHJlYWRSZXNvdXJjZXMoKQogICAgIGN1cnJlbnRDb250ZXh0ID0gbnVsbHB0cjsKIH0KIAorSU9T
dXJmYWNlKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZGlzcGxheUJ1ZmZlcigpCit7CisgICAg
QVNTRVJUKG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKS5zdXJmYWNlKTsKKyAgICByZXR1cm4g
bV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpLnN1cmZhY2UuZ2V0KCk7Cit9CisKK3ZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6Om1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKQoreworICAgIG1f
c3dhcENoYWluLm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKK30KKwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViR0xMYXllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NmRhMGZl
MGY0NGEzYTg0NDBlNjYzOWVhOWQ3ZTBhODk2MDY4OGUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFF1
YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgotCi1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgotCi0vLyBBIGxheWVyIGNsYXNzIHNob3dpbmcgb25lIElPU3VyZmFjZS4KLVdFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIKLQotLSAoaWQpaW5pdFdpdGhE
ZXZpY2VQaXhlbFJhdGlvOihmbG9hdClkZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOihi
b29sKWNvbnRlbnRzT3BhcXVlOwotCi1AZW5kCi0KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR0xMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdMTGF5ZXIubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlOTAzMTU1Njkx
MTEzNmMzMWY1ZDY4ZWUyNDNmNjdlZjY2ZGU4YzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR0xMYXllci5tbQorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkKLSNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKLQotI2lt
cG9ydCAiR3JhcGhpY3NMYXllci5oIgotI2ltcG9ydCAiR3JhcGhpY3NMYXllckNBLmgiCi0jaW1w
b3J0ICJQbGF0Zm9ybUNBTGF5ZXIuaCIKLQotQGltcGxlbWVudGF0aW9uIFdlYkdMTGF5ZXIKLQot
LSAoaWQpaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOihmbG9hdClkZXZpY2VQaXhlbFJhdGlvIGNv
bnRlbnRzT3BhcXVlOihib29sKWNvbnRlbnRzT3BhcXVlCi17Ci0gICAgc2VsZiA9IFtzdXBlciBp
bml0XTsKLSAgICBzZWxmLnRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RJZGVudGl0eTsKLSAgICBz
ZWxmLmNvbnRlbnRzT3BhcXVlID0gY29udGVudHNPcGFxdWU7Ci0gICAgc2VsZi5jb250ZW50c1Nj
YWxlID0gZGV2aWNlUGl4ZWxSYXRpbzsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLy8gV2hlbiB1
c2luZyBhbiBJT1N1cmZhY2UgYXMgbGF5ZXIgY29udGVudHMsIHdlIG5lZWQgdG8gZmxpcCB0aGUK
LS8vIGxheWVyIHRvIHRha2UgaW50byBhY2NvdW50IHRoYXQgdGhlIElPU3VyZmFjZSBwcm92aWRl
cyBjb250ZW50Ci0vLyBpbiBZLXVwLiBUaGlzIG1lYW5zIHRoYXQgYW55IGluY29taW5nIHRyYW5z
Zm9ybSAodW5saWtlbHksIHNpbmNlCi0vLyB0aGlzIGlzIGEgY29udGVudHMgbGF5ZXIpIGFuZCBh
bmNob3IgcG9pbnQgbXVzdCBhZGQgYSBZIHNjYWxlIG9mCi0vLyAtMSBhbmQgbWFrZSBzdXJlIHRo
ZSB0cmFuc2Zvcm0gaGFwcGVucyBmcm9tIHRoZSB0b3AuCi0KLS0gKHZvaWQpc2V0VHJhbnNmb3Jt
OihDQVRyYW5zZm9ybTNEKXQKLXsKLSAgICBbc3VwZXIgc2V0VHJhbnNmb3JtOkNBVHJhbnNmb3Jt
M0RTY2FsZSh0LCAxLCAtMSwgMSldOwotfQotCi0tICh2b2lkKXNldEFuY2hvclBvaW50OihDR1Bv
aW50KXAKLXsKLSAgICBbc3VwZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UocC54LCAxLjAg
LSBwLnkpXTsKLX0KLQotLSAodm9pZClkaXNwbGF5Ci17Ci0gICAgLy8gU2hvdyB0aGUgc2VsZi5j
b250ZW50cyBhcyB0aGUgY29udGVudHMgYnkgbm90IGRvaW5nIGFueXRoaW5nIGluIHRoaXMgZnVu
Y3Rpb24uCi0gICAgYXV0byBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZv
cm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwotICAgIGlmIChsYXllciAm
JiBsYXllci0+b3duZXIoKSkKLSAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXll
ckxheWVyRGlkRGlzcGxheShsYXllci5nZXQoKSk7Ci0KLX0KLQotQGVuZAotCi0jZW5kaWYgLy8g
RU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCBjYWM0NGExZGI0ZGZjMGY3MTcwNGM3NDE4NGRhNDYz
NzJiMzEyM2FmLi5mMzI4MGYwYzdiZGRmNmY2YzQ5ODdjNjk5YmUzZjU4NGI3ZTI2Y2I0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQpAQCAtMjksNTMgKzI5LDU5IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9ydCAiR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuaCIgLy8gTk9MSU5UCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTE1hbmFnZXIuaCIKLSNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKLSNpbXBvcnQgPHd0
Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFj
ZSB7CiAKLXN0YXRpYyBSZXRhaW5QdHI8V2ViR0xMYXllcj4gY3JlYXRlV2ViR0xMYXllcihjb25z
dCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCi17Ci0gICAgUmV0YWlu
UHRyPFdlYkdMTGF5ZXI+IGxheWVyOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwot
ICAgIGxheWVyID0gYWRvcHROUyhbW1dlYkdMTGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlUGl4
ZWxSYXRpbzphdHRyaWJ1dGVzLmRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6IWF0dHJp
YnV0ZXMuYWxwaGFdKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgW2xheWVyIHNldE5hbWU6QCJXZWJH
TCBMYXllciJdOwotI2VuZGlmCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIHJl
dHVybiBsYXllcjsKLX0KLQogLy8gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgdHlwZSB0aGF0IGlz
IHVzZWQgd2hlbiBXZWJHTCBpcyBydW4gaW4tcHJvY2VzcyBpbiBXZWJDb250ZW50IHByb2Nlc3Mu
CiBjbGFzcyBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgewogcHVibGljOgogICAgIH5XZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woKSA9IGRlZmF1bHQ7Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qg
eyByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQoKSAmJiBtX3dlYkdMTGF5
ZXI7IH0KICAgICAvLyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBvdmVycmlkZXMuCi0gICAgUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8Q0FMYXllcio+KG1fd2ViR0xMYXllci5nZXQoKSk7IH0KLSAgICB2b2lkIHByZXBh
cmVGb3JEaXNwbGF5KCkgZmluYWw7CisgICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rp
c3BsYXlEZWxlZ2F0ZT4gbGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpIGZpbmFsOwogcHJp
dmF0ZToKICAgICBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KQotICAgICAgICAsIG1fd2ViR0xMYXllcihj
cmVhdGVXZWJHTExheWVyKGF0dHJpYnV0ZXMpKQogICAgIHsKICAgICB9Ci0gICAgUmV0YWluUHRy
PFdlYkdMTGF5ZXI+IG1fd2ViR0xMYXllcjsKLQogICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDsKIH07CiAKLXZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpwcmVwYXJlRm9yRGlzcGxheSgpCitjbGFzcyBEaXNwbGF5QnVmZmVyQ29udGVudHNQcm92
aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5
RGVsZWdhdGUgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGlzcGxheUJ1ZmZlckNvbnRlbnRz
UHJvdmlkZXI+IGNyZWF0ZShSZWY8V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBj
b250ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheUJ1ZmZl
ckNvbnRlbnRzUHJvdmlkZXIoV1RGTW92ZShjb250ZXh0KSkpOworICAgIH0KKyAgICAvLyBXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUgb3ZlcnJpZGVzLgorICAg
IHZvaWQgd2lsbERlbGVnYXRlRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXImIGxheWVyKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gbV9jb250ZXh0LT5jb250ZXh0QXR0cmli
dXRlcygpOworICAgICAgICBsYXllci5zZXRPcGFxdWUoIWF0dHJpYnV0ZXMuYWxwaGEpOworICAg
ICAgICBsYXllci5zZXRDb250ZW50c1NjYWxlKGF0dHJpYnV0ZXMuZGV2aWNlUGl4ZWxSYXRpbyk7
CisgICAgfQorICAgIHZvaWQgZGlzcGxheShQbGF0Zm9ybUNBTGF5ZXImIGxheWVyKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgaWYgKGF1dG8gZGlzcGxheUJ1ZmZlciA9IG1fY29udGV4dC0+ZGlzcGxh
eUJ1ZmZlcigpKQorICAgICAgICAgICAgbGF5ZXIuc2V0Q29udGVudHMoZGlzcGxheUJ1ZmZlci0+
YXNMYXllckNvbnRlbnRzKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsYXllci5zZXRD
b250ZW50cyhudWxscHRyKTsKKyAgICB9CisgICAgR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdD
b29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgZmluYWwKKyAgICB7Cisg
ICAgICAgIHJldHVybiBHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50
YXRpb246OkJvdHRvbVVwOworICAgIH0KK3ByaXZhdGU6CisgICAgRGlzcGxheUJ1ZmZlckNvbnRl
bnRzUHJvdmlkZXIoUmVmPFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY29udGV4
dCkKKyAgICAgICAgOiBtX2NvbnRleHQoV1RGTW92ZShjb250ZXh0KSkKKyAgICB7CisgICAgfQor
ICAgIFJlZjxXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IG1fY29udGV4dDsKK307
CisKK1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+
IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6bGF5ZXJDb250ZW50c0Rpc3BsYXlE
ZWxlZ2F0ZSgpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnByZXBhcmVGb3JEaXNw
bGF5KCk7Ci0gICAgYXV0byBzdXJmYWNlID0gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpLnN1
cmZhY2UuZ2V0KCk7Ci0gICAgaWYgKCFzdXJmYWNlKQotICAgICAgICByZXR1cm47Ci0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fd2ViR0xMYXllciBzZXRDb250ZW50czpz
dXJmYWNlLT5hc0xheWVyQ29udGVudHMoKV07Ci0gICAgW21fd2ViR0xMYXllciBzZXROZWVkc0Rp
c3BsYXldOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICByZXR1cm4gRGlzcGxh
eUJ1ZmZlckNvbnRlbnRzUHJvdmlkZXI6OmNyZWF0ZSgqdGhpcyk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KaW5kZXgg
NDA3MjcwNDNmZDEyZDYyYTRjYmQ3ZGJiNTllNDExNjBhMjhkZGYyMi4uMzI2ZjA0MzJiNDg2MjIx
OTYyYzc1ZWZjNmRlMDFlZDhhZGM5ZTY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KQEAgLTI2LDcgKzI2LDkgQEAKICNpbXBv
cnQgImNvbmZpZy5oIgogI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKIAorI2ltcG9ydCAiQ29sb3JT
cGFjZUNHLmgiCiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvY2Yv
VHlwZUNhc3RzQ0YuaD4KICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9X
ZWJMYXllci5tbQppbmRleCA1NTQ4MGI1MmI5MWUwMjg2MmZmMGJmYzEzMDZkYTgwZDYwM2M1NDJj
Li4zYjIzYTQwN2RiMGYyNDliNjQ2ZmE3MGRhOTU3MmI4ODg0NDJmZTQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCkBAIC0xMTMsOCAr
MTEzLDEyIEBACiAgICAgICAgIFdlYlRocmVhZExvY2soKTsKICNlbmRpZgogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgW3N1cGVyIGRpc3BsYXldOwogICAgIGF1dG8gbGF5ZXIgPSBX
ZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKChfX2JyaWRn
ZSB2b2lkKilzZWxmKTsKKyAgICBib29sIGRpZERlbGVnYXRlRGlzcGxheSA9IGZhbHNlOworICAg
IGlmIChsYXllciAmJiBsYXllci0+b3duZXIoKSkKKyAgICAgICAgZGlkRGVsZWdhdGVEaXNwbGF5
ID0gbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlzcGxheShsYXllci5nZXQo
KSk7CisgICAgaWYgKCFkaWREZWxlZ2F0ZURpc3BsYXkpCisgICAgICAgIFtzdXBlciBkaXNwbGF5
XTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkpCiAgICAgICAgIGxheWVyLT5vd25l
cigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIuZ2V0KCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCBmZTEzZWFmZjRkNzNmYTY3MDE2MzYw
ZThkMmI4Y2Y4ZDMzYWM4ZTUzLi4zZDM0MWJlNzM5MDI0Yzg1NTAxM2M5ODkwN2MyMWYwZWM4Nzdm
ZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtNjYsOCArNjYsNiBA
QAogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLU9CSkNfQ0xBU1MgQ0FMYXllcjsKLU9C
SkNfQ0xBU1MgV2ViR0xMYXllcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dEdMQ1ZBTkdMRTsKIH0KQEAgLTEwNCw3ICsxMDIsNiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyopOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgUGxhdGZvcm1MYXllciogcGxh
dGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheU9iajsg
fQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBj
b25zdCB7IHJldHVybiBtX2NvbmZpZ09iajsgfQogICAgIHN0YXRpYyBHQ0dMZW51bSBkcmF3aW5n
QnVmZmVyVGV4dHVyZVRhcmdldFF1ZXJ5Rm9yRHJhd2luZ1RhcmdldChHQ0dMZW51bSBkcmF3aW5n
VGFyZ2V0KTsKQEAgLTE0NSw2ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB0ZXhJbWFnZTJE
UmVzb3VyY2VTYWZlKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50
ZXJuYWxmb3JtYXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGludCBi
b3JkZXIsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTGludCBhbGlnbm1lbnQg
PSA0KTsKICNlbmRpZgogCisgICAgLy8gR3JhcGhpY3NDb250ZXh0R0wgb3ZlcnJpZGVzLgogICAg
IGJvb2wgaXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCkBAIC00NjQsNiArNDYyLDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFT
YW1wbGUoKSBmaW5hbDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIElPU3VyZmFj
ZSogZGlzcGxheUJ1ZmZlcigpOworICAgIHZvaWQgbWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwor
I2VuZGlmCiAKICAgICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiByZWFkUmVuZGVyaW5nUmVz
dWx0c0ZvclBhaW50aW5nKCk7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcmVhZENv
bXBvc2l0ZWRSZXN1bHRzRm9yUGFpbnRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYTc4NGRiYmI4MzdmN2I3ZTQxN2IyNjli
NmI3MGJjOTI3MjM0ZDUxZC4uODNlOWJiZTY2NjIyNWMxODc3ZDZkZGEzOTBlZDE0NjM1MjU0NDVk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKQEAgLTEwODksNyArMTA4OSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVD
b25maWd1cmF0aW9uKGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzCiAgICAgZWxz
ZSBpZiAocmVuZGVyZXIoKS5pc0NhbnZhcygpICYmIGNhbnZhc0NvbXBvc2l0aW5nU3RyYXRlZ3ko
cmVuZGVyZXIoKSkgPT0gQ2FudmFzQXNMYXllckNvbnRlbnRzKSB7CiAgICAgICAgIGNvbnN0IEhU
TUxDYW52YXNFbGVtZW50KiBjYW52YXMgPSBkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4ocmVu
ZGVyZXIoKS5lbGVtZW50KCkpOwogICAgICAgICBpZiAoYXV0byogY29udGV4dCA9IGNhbnZhcy0+
cmVuZGVyaW5nQ29udGV4dCgpKQotICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250
ZW50c1RvUGxhdGZvcm1MYXllcihjb250ZXh0LT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5
ZXI6OkNvbnRlbnRzTGF5ZXJQdXJwb3NlOjpDYW52YXMpOworICAgICAgICAgICAgbV9ncmFwaGlj
c0xheWVyLT5zZXRDb250ZW50c0Zyb21EaXNwbGF5RGVsZWdhdGUoY29udGV4dC0+bGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpLCBHcmFwaGljc0xheWVyOjpDb250ZW50c0xheWVyUHVycG9z
ZTo6Q2FudmFzKTsKIAogICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9H
UFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCBlNzI5YTNhNzE1NDUyYzNhZDQ2NGM3
Y2M5ZWQ1YzBlY2IzYjExZTA4Li42MzBlMzdhMDA5OGIyODIyOWFkNTI5YmY5NzY2MGE2M2RhNzBm
ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCkBAIC00MCw3ICs0MCw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29udGV4
dDsKICAgICB9Ci0KKyAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkgZmluYWwgeyByZXR1
cm4gbnVsbHB0cjsgfQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdlYkNvcmU6OklPU3VyZmFj
ZSogZGlzcGxheUJ1ZmZlcigpIHsgcmV0dXJuIG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKS5z
dXJmYWNlLmdldCgpOyB9CiAgICAgdm9pZCBtYXJrRGlzcGxheUJ1ZmZlckluVXNlKCkgeyByZXR1
cm4gbV9zd2FwQ2hhaW4ubWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NDMxZDQwYjA1NmE1
YWRkMmM0MWYxMWEzNWQwNGE1NGVmMTI4MDMxLi43NDNiN2JiMDAxZTQ0ODgyMjhiNGNlMjc1OTI1
ZDE2NGYzZjU3ZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTQ1NzUsNiArNDU3NSw3IEBACiAJCTdCNDgzRjFDMjVDRERBOUIwMDEy
MDQ4NiAvKiBNZXNzYWdlUmVjZWl2ZVF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lc3NhZ2VSZWNlaXZlUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0I0ODNGMUQyNUNEREE5QjAwMTIwNDg2IC8qIE1lc3NhZ2VSZWNlaXZlUXVldWVNYXAuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVRdWV1
ZU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNDgzRjFFMjVDRERBOUIw
MDEyMDQ4NiAvKiBNZXNzYWdlUmVjZWl2ZVF1ZXVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZXNzYWdlUmVjZWl2ZVF1ZXVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3QjUzMDBFNzI3MTgyMTdBMDAwODIwODYgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjY0QzBC
NjI1NEM1QzI1MDAwNkI0QUYgLyogR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QjczMTIzMTI1Q0M4NTIzMDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlv
bkJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1Db25uZWN0
aW9uQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzMxMjMyMjVDQzg1
MjMwMDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbQppbmRleCAxNDI0ZWY4YTBmM2JkOWY2NTY2
OWZmN2U4NzE2MjcyZjlhNTVhZWI1Li4yNjUzOWM5MDM3NmM5OWViNmFkZWIyYzFjM2U1ZDEyNjBh
Y2NjNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlDb2NvYS5tbQpAQCAtMzIsMTIgKzMyLDEwIEBACiAjaW1wb3J0ICJSZW1vdGVHcmFw
aGljc0NvbnRleHRHTE1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0
IDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4
dENHLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENo
YWluLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxl
Z2F0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUv
TWVkaWFTYW1wbGVBVkZPYmpDLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkdMTGF5ZXIuaD4KLSNp
bXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtQ0FMYXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDUsMTEgKzQzLDEwIEBA
IG5hbWVzcGFjZSB7CiAKIGNsYXNzIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYSBm
aW5hbCA6IHB1YmxpYyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IHsKIHB1YmxpYzoKLSAg
ICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX3dlYkdMTGF5ZXI7IH0KICAgICBXZWJD
b3JlOjpJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlC
dWZmZXIuZ2V0KCk7IH0KIAogICAgIC8vIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkgb3Zl
cnJpZGVzLgotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3dlYkdMTGF5ZXIuZ2V0KCk7IH0KKyAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVn
YXRlKCkgZmluYWw7CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOwogI2lmIEVO
QUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENWKiBhc0NWKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQpAQCAtNTksNyArNTYs
NiBAQCBwdWJsaWM6CiAjZW5kaWYKIHByaXZhdGU6CiAgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUNvY29hKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwotICAg
IFJldGFpblB0cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OklPU3VyZmFjZT4gbV9kaXNwbGF5QnVmZmVyOwogICAgIGZyaWVuZCBjbGFzcyBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OwogfTsKQEAgLTY3LDEzICs2Myw0NCBAQCBwcml2
YXRlOgogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hOjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5Q29jb2EoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0
aW9uLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0
ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCiAgICAgOiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KGdwdVByb2Nlc3NDb25uZWN0aW9uLCBhdHRyaWJ1
dGVzLCByZW5kZXJpbmdCYWNrZW5kKQogewotICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmli
dXRlcygpOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIG1fd2ViR0xMYXll
ciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBpeGVsUmF0aW86
YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1ZTohYXR0cnMuYWxwaGFdKTsKLSNp
Zm5kZWYgTkRFQlVHCi0gICAgW21fd2ViR0xMYXllciBzZXROYW1lOkAiV2ViR0wgTGF5ZXIiXTsK
LSNlbmRpZgotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKK30KKworY2xhc3MgRGlzcGxh
eUJ1ZmZlckNvbnRlbnRzUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERp
c3BsYXlCdWZmZXJDb250ZW50c1Byb3ZpZGVyPiBjcmVhdGUoUmVmPFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYT4gY29udGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERpc3BsYXlCdWZmZXJDb250ZW50c1Byb3ZpZGVyKFdURk1vdmUoY29udGV4dCkpKTsK
KyAgICB9CisgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVn
YXRlIG92ZXJyaWRlcy4KKyAgICB2b2lkIHdpbGxEZWxlZ2F0ZURpc3BsYXkoV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyJiBsYXllcikgZmluYWwKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBtb3Zl
IHRoZXNlIHRvIGNhbGxlci4KKyAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gbV9jb250ZXh0LT5j
b250ZXh0QXR0cmlidXRlcygpOworICAgICAgICBsYXllci5zZXRPcGFxdWUoIWF0dHJpYnV0ZXMu
YWxwaGEpOworICAgICAgICBsYXllci5zZXRDb250ZW50c1NjYWxlKGF0dHJpYnV0ZXMuZGV2aWNl
UGl4ZWxSYXRpbyk7CisgICAgfQorICAgIHZvaWQgZGlzcGxheShXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXImIGxheWVyKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gZGlzcGxheUJ1ZmZl
ciA9IG1fY29udGV4dC0+ZGlzcGxheUJ1ZmZlcigpKQorICAgICAgICAgICAgbGF5ZXIuc2V0Q29u
dGVudHMoZGlzcGxheUJ1ZmZlci0+YXNMYXllckNvbnRlbnRzKCkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBsYXllci5zZXRDb250ZW50cyhudWxscHRyKTsKKyAgICB9CisgICAgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVu
dGF0aW9uKCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb246OkJvdHRvbVVwOwor
ICAgIH0KK3ByaXZhdGU6CisgICAgRGlzcGxheUJ1ZmZlckNvbnRlbnRzUHJvdmlkZXIoUmVmPFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYT4gY29udGV4dCkKKyAgICAgICAgOiBtX2Nv
bnRleHQoV1RGTW92ZShjb250ZXh0KSkKKyAgICB7CisgICAgfQorICAgIFJlZjxSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5Q29jb2E+IG1fY29udGV4dDsKK307CisKK1JlZlB0cjxXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+IFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYTo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpCit7CisgICAg
cmV0dXJuIERpc3BsYXlCdWZmZXJDb250ZW50c1Byb3ZpZGVyOjpjcmVhdGUoKnRoaXMpOwogfQog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTEwNiw5ICsxMzMsNiBAQCB2b2lkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIG1fZGlzcGxheUJ1ZmZlciA9IFdURk1vdmUoZGlzcGxheUJ1
ZmZlcik7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fd2ViR0xMYXll
ciBzZXRDb250ZW50czptX2Rpc3BsYXlCdWZmZXItPmFzTGF5ZXJDb250ZW50cygpXTsKLSAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOwogfQog
CkBAIC0xMTYsMTAgKzE0MCw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSgpCiAKIFJlZlB0cjxSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5PiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBSZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQogewotICAgIGF1dG8gY29udGV4dCA9IGFk
b3B0UmVmKG5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EoV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgYXR0cmlidXRlcywgcmVu
ZGVyaW5nQmFja2VuZCkpOwotICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gY29udGV4dDsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYShXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdC
YWNrZW5kKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5jcHAKaW5kZXggNWQwZWE4YmRiOTFhYjE0MTg3NTAwNDFiNzllZDVmZWFlNzcyM2Jh
MC4uODc4YzFhMzZkNzYyMjlhZThhOWMzY2QzYjUzYmVkOGI2N2ZiNmQxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTUxLDcgKzUxLDEw
IEBAIFJlZjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3Jl
YXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsCiAKICAgICBpZiAobGF5ZXJUeXBlID09IExheWVy
VHlwZVRpbGVkQmFja2luZ0xheWVyIHx8ICBsYXllclR5cGUgPT0gTGF5ZXJUeXBlUGFnZVRpbGVk
QmFja2luZ0xheWVyKQogICAgICAgICBsYXllciA9IGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVUaWxlZEJhY2tpbmcobGF5ZXJUeXBlLCBvd25lciwgY29udGV4dCkpOwotICAgIGVs
c2UKKyAgICBlbHNlIGlmIChsYXllclR5cGUgPT0gTGF5ZXJUeXBlQ29udGVudHNQcm92aWRlZExh
eWVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBvbmNlIHByb3Bl
cnRpZXMgY29udGFpbiBmaWVsZHMgbmVlZGVkIGZvciBDb250ZW50c1Byb3ZpZGVkLgorICAgICAg
ICBsYXllciA9IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6Y3JlYXRlQ29udGVudHNQcm92
aWRlZExheWVyKG93bmVyLCBjb250ZXh0KTsKKyAgICB9IGVsc2UKICAgICAgICAgbGF5ZXIgPSBh
ZG9wdFJlZihuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlKGxheWVyVHlwZSwgb3duZXIsIGNvbnRl
eHQpKTsKIAogICAgIGNvbnRleHQubGF5ZXJEaWRFbnRlckNvbnRleHQoKmxheWVyLCBsYXllclR5
cGUpOwpAQCAtMTczLDE0ICsxNzYsMTYgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJl
Y3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYgY28KICAgICBB
U1NFUlQoIW1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUgfHwgb3duZXIoKSk7CiAgICAgUkVMRUFT
RV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigmY29udGV4dCA9PSBtX2NvbnRleHQp
OwogICAgIAotICAgIGlmIChtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlICYmICghb3duZXIoKSB8
fCAhb3duZXIoKS0+cGxhdGZvcm1DQUxheWVyRHJhd3NDb250ZW50KCkpKSB7Ci0gICAgICAgIG1f
cHJvcGVydGllcy5iYWNraW5nU3RvcmUgPSBudWxscHRyOwotICAgICAgICBtX3Byb3BlcnRpZXMu
bm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCYWNraW5n
U3RvcmVDaGFuZ2VkKTsKKyAgICBpZiAob3duZXIoKSAmJiBvd25lcigpLT5wbGF0Zm9ybUNBTGF5
ZXJMYXllckRpc3BsYXkobV9sYXllcikpCisgICAgICAgIG93bmVyKCktPnBsYXRmb3JtQ0FMYXll
ckxheWVyRGlkRGlzcGxheShtX2xheWVyKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKG1fcHJv
cGVydGllcy5iYWNraW5nU3RvcmUgJiYgKCFvd25lcigpIHx8ICFvd25lcigpLT5wbGF0Zm9ybUNB
TGF5ZXJEcmF3c0NvbnRlbnQoKSkpIHsKKyAgICAgICAgICAgIG1fcHJvcGVydGllcy5iYWNraW5n
U3RvcmUgPSBudWxscHRyOworICAgICAgICAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVz
Q2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6QmFja2luZ1N0b3JlQ2hhbmdlZCk7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUgJiYgbV9w
cm9wZXJ0aWVzLmJhY2tpbmdTdG9yZUF0dGFjaGVkICYmIG1fcHJvcGVydGllcy5iYWNraW5nU3Rv
cmUtPmRpc3BsYXkoKSkKKyAgICAgICAgICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0No
YW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkJhY2tpbmdTdG9yZUNoYW5nZWQpOwog
ICAgIH0KLQotICAgIGlmIChtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlICYmIG1fcHJvcGVydGll
cy5iYWNraW5nU3RvcmVBdHRhY2hlZCAmJiBtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlLT5kaXNw
bGF5KCkpCi0gICAgICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkJhY2tpbmdTdG9yZUNoYW5nZWQpOwotCiAgICAgaWYgKG1f
cHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcykgewogICAgICAgICBpZiAobV9wcm9wZXJ0aWVz
LmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNoaWxkcmVu
Q2hhbmdlZCkgewogICAgICAgICAgICAgbV9wcm9wZXJ0aWVzLmNoaWxkcmVuLnJlc2l6ZShtX2No
aWxkcmVuLnNpemUoKSk7CkBAIC02ODMsNiArNjg4LDcgQEAgQ0ZUeXBlUmVmIFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6Y29udGVudHMoKSBjb25zdAogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6c2V0Q29udGVudHMoQ0ZUeXBlUmVmIHZhbHVlKQogeworICAgIC8vIFRPRE86IHNldCB2YWx1
ZSB0byBtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlLgogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgKaW5kZXgg
ZTYyNDdkYWE2ZGIwMGUyNTA4MjRmNjhjOTE4NTY1NzEwNjAzNDYzNC4uOWMwOTFkMThlYjhhYTNk
N2MyYWM1YzEzNTUxMTFkYWQ0ZmQ3MTMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaApAQCAtMzYsNiArMzYsNyBAQCBjbGFzcyBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20gZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1DQUxheWVy
UmVtb3RlIHsKICAgICBmcmllbmQgY2xhc3MgUGxhdGZvcm1DQUxheWVyUmVtb3RlOwogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBjcmVhdGUoUGxhdGZvcm1M
YXllciAqLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVD
b250ZXh0Jik7CisgICAgc3RhdGljIFJlZjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IGNyZWF0ZUNv
bnRlbnRzUHJvdmlkZWRMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqLCBSZW1v
dGVMYXllclRyZWVDb250ZXh0Jik7CiAKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVDdXN0b20oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVDdXN0b20ubW0KaW5kZXggMjdiMGZjMDA1MTg1ZGFkNDViNmNhM2I3OGQ4MzAyMTMw
OGU0OGY0ZS4uY2VkOGUzMzNlYzA0ZjgzMjJmY2M0YWFjMTNhN2VkZDEwNTczM2MxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1t
CkBAIC0zNCwxNSArMzQsMzUgQEAKICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNBLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllckNvY29hLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVDQUxheWVyRXh0cmFzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkxheWVyLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oPgogCitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBwbGF0Zm9ybUNBTGF5
ZXJQb2ludGVyID0gQCJXS1BsYXRmb3JtQ0FMYXllciI7CisKK0BpbnRlcmZhY2UgV0tDb250ZW50
c1Byb3ZpZGVkTGF5ZXIgOiBDQUxheWVyCitAZW5kCitAaW1wbGVtZW50YXRpb24gV0tDb250ZW50
c1Byb3ZpZGVkTGF5ZXIKKy0gKGlkKWluaXQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOwor
ICAgIHJldHVybiBzZWxmOworfQorLSAodm9pZClkaXNwbGF5Cit7CisgICAgTlNWYWx1ZSogbGF5
ZXJQb2ludGVyID0gW3NlbGYgdmFsdWVGb3JLZXk6cGxhdGZvcm1DQUxheWVyUG9pbnRlcl07Cisg
ICAgaWYgKCFsYXllclBvaW50ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJLaXQ6OlBsYXRm
b3JtQ0FMYXllclJlbW90ZUN1c3RvbSogbGF5ZXIgPSByZWludGVycHJldF9jYXN0PFdlYktpdDo6
UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKj4oW2xheWVyUG9pbnRlciBwb2ludGVyVmFsdWVd
KTsKKyAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkpCisgICAgICAgIGxheWVyLT5vd25l
cigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIpOworfQorQGVuZAorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0aWMgTlNT
dHJpbmcgKiBjb25zdCBwbGF0Zm9ybUNBTGF5ZXJQb2ludGVyID0gQCJXS1BsYXRmb3JtQ0FMYXll
ciI7Ci0KIFJlZjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1
c3RvbTo6Y3JlYXRlKFBsYXRmb3JtTGF5ZXIgKnBsYXRmb3JtTGF5ZXIsIFBsYXRmb3JtQ0FMYXll
ckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAg
YXV0byBsYXllciA9IGFkb3B0UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKFBs
YXRmb3JtQ0FMYXllckNvY29hOjpsYXllclR5cGVGb3JQbGF0Zm9ybUxheWVyKHBsYXRmb3JtTGF5
ZXIpLCBwbGF0Zm9ybUxheWVyLCBvd25lciwgY29udGV4dCkpOwpAQCAtNTAsNiArNzAsMTUgQEAg
UmVmPFBsYXRmb3JtQ0FMYXllclJlbW90ZT4gUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpj
cmVhdGUoUGxhdGZvcm1MYXllciAqcGwKICAgICByZXR1cm4gV1RGTW92ZShsYXllcik7CiB9CiAK
K1JlZjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6
Y3JlYXRlQ29udGVudHNQcm92aWRlZExheWVyKFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIs
IFJlbW90ZUxheWVyVHJlZUNvbnRleHQmIGNvbnRleHQpCit7CisgICAgLy8gRklYTUU6IFRoaXMg
d2lsbCBiZSByZW1vdmVkIG9uY2UgcHJvcGVydGllcyBjb250YWluIGZpZWxkcyBuZWVkZWQgZm9y
IENvbnRlbnRzUHJvdmlkZWQuCisgICAgYXV0byBwbGF0Zm9ybUxheWVyID0gYWRvcHROUyhbW1dL
Q29udGVudHNQcm92aWRlZExheWVyIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBsYXllciA9IGFk
b3B0UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKExheWVyVHlwZUNvbnRlbnRz
UHJvdmlkZWRMYXllciwgcGxhdGZvcm1MYXllci5nZXQoKSwgb3duZXIsIGNvbnRleHQpKTsKKyAg
ICBjb250ZXh0LmxheWVyRGlkRW50ZXJDb250ZXh0KGxheWVyLmdldCgpLCBsYXllci0+bGF5ZXJU
eXBlKCkpOworICAgIHJldHVybiBXVEZNb3ZlKGxheWVyKTsKK30KKwogUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tOjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oTGF5ZXJUeXBlIGxheWVy
VHlwZSwgUGxhdGZvcm1MYXllciAqIGN1c3RvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQq
IG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0JiBjb250ZXh0KQogICAgIDogUGxhdGZvcm1D
QUxheWVyUmVtb3RlKGxheWVyVHlwZSwgb3duZXIsIGNvbnRleHQpCiB7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTZiZGRlYzlmM2RjY2U0ZjQz
ZTI0YjgzN2YwY2M2Yzc4OTNmM2MxMS4uYTNkZWY2ZmM0MmIyNmMxOGY0YTg2ODAzMDU2OTc1NWU4
ODg2NWIyYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTExLTE2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0IHNob3VsZCBu
b3QgYmUgdGllZCB0byBQbGF0Zm9ybUxheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9U
ZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgQWRkIGEgZHVtbXkg
b3ZlcnJpZGUgb2YgdGhlIG5ldyBtZW1iZXIgZnVuY3Rpb24gbGF5ZXJDb250ZW50c0Rpc3BsYXlE
ZWxlZ2F0ZS4KKwogMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1
c2UgaW4gY29uc3RydWN0b3JzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMQ29jb2EubW0KaW5kZXggOGM4ZWE4ZmQ4YmUzMWIwZGZjYTgwN2ViNjVkMGUyNzE4MWI4
ZGQ5Yy4uZTEzNzhkMmNjOWVlZmZmNTIxYmIwODI1NjJmMDkwYTY3NmFhYTljZSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMzUsMTMg
KzM1LDE0IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgewotY2xhc3MgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wg
OiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgeworY2xhc3MgVGVzdGVkR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgewog
cHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+
IGNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICB7CiAg
ICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgVGVzdGVkR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KSk7CiAgICAgICAgIHJldHVybiBjb250
ZXh0OwogICAgIH0KKyAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkgZmluYWwgeyByZXR1
cm4gbnVsbHB0cjsgfQogcHJpdmF0ZToKICAgICBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5H
TChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJ
ZGVudGl0eT4gcmVzb3VyY2VPd25lcikKICAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444381</attachid>
            <date>2021-11-16 07:43:05 -0800</date>
            <delta_ts>2021-11-16 07:43:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233123-20211116174303.patch</filename>
            <type>text/plain</type>
            <size>74018</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU2MDJiNTA0NWQzOWFi
MDYwNjdjZmU0MDdlYTJmZjc2YWE1MjhhZS4uMGM2NzJjNWQyMjcyYTRjZmUxYmMzODY1MWNiMGQ3
OTRiNmNiZGE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDIxLTExLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzIHJlbmRl
cmluZyBjb250ZXh0IHNob3VsZCBub3QgYmUgdGllZCB0byBQbGF0Zm9ybUxheWVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxMjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVA6IElzIG1pc3Npbmcg
R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIGltcGxlbWVudGF0aW9uCisgICAg
ICAgIGZvciBjdXJyZW50IENhaXJvIFdlYkdML0NhbnZhcyBpbXBsZW1lbnRhdGlvbi4KKworICAg
ICAgICBBZGQgR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIGludGVyZmFjZSwg
d2hpY2ggY2FuIGJlCisgICAgICAgIHVzZWQgdG8gcnVuIGNsaWVudCBzcGVjaWZpYyBjb2RlIGR1
cmluZyBjb21wb3NpdG9yIGxheWVyIGNvbnRlbnRzIHVwZGF0ZQorICAgICAgICBwaGFzZSAoaS5l
LiBsYXllciBkaXNwbGF5IHBoYXNlKS4KKyAgICAgICAgTWFrZSBDYW52YXNSZW5kZXJpbmdDb250
ZXh0IHJldHVybiB0aGlzIG9iamVjdCBpbnN0ZWFkIG9mIFBsYXRmb3JtTGF5ZXIuCisgICAgICAg
IFRoaXMgd2F5IGZ1dHVyZSBDb2NvYSBXZWJHTCBVSS1zaWRlIGNvbXBvc2l0aW5nIGltcGxlbWVu
dGF0aW9uIGNhbgorICAgICAgICB1c2UgUGxhdGZvcm1DQUxheWVyIGNhbGxzIHRvIHNldHVwIGVh
Y2ggZGlzcGxheWVkIGZyYW1lLCBpbnN0ZWFkIG9mIHNldHRpbmcKKyAgICAgICAgdGhlIGNvbnRl
bnRzIHRvIENBTGF5ZXIuIFRoaXMgYWxsb3dzIHRoZSBmdXR1cmUgUGxhdGZvcm1DQUxheWVyUmVt
b3RlIHRvCisgICAgICAgIHN5bmNocm9uaXplIHRoZXNlIHByb3BlcnRpZXMgYXMgZmlyc3QtY2xh
c3MsIGluc3RlYWQgb2YgdXNpbmcgaG9zdGVkIENBTGF5ZXIuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCByZWZhY3Rvci4KKworICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
Q29yZS5vcmRlcjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpsYXllckNvbnRlbnRzRGlzcGxh
eURlbGVnYXRlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpwbGF0Zm9ybUxh
eWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGxhdGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpzZXRDb250ZW50c0Zyb21EaXNwbGF5RGVsZWdhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlOjpvcmllbnRh
dGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6
OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzRnJv
bURpc3BsYXlEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6Omxh
eWVyRGlkRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUNvbnRlbnRzUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2Ev
UGxhdGZvcm1DQUxheWVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5
ZXJDb2NvYTo6bGF5ZXJUeXBlRm9yUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXJDb2NvYTo6UGxhdGZvcm1DQUxheWVyQ29jb2EpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyQ29jb2E6OmNvbW1vbkluaXQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZGlzcGxheUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6bWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGxh
dGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRp
YWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29tcG9zaXRlZFJl
c3VsdHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSBDb2NvYSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbiB0byB0aGUgY29uY3JldGUgY2xhc3MgV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5CisgICAgICAgIHRvIHNpbXBsaWZ5IHRoZSBjbGFzcyBoaWVyYXJj
aHkgYW5kIHJlbW92ZSB0aGUgbmVlZCB0byBpZmRlZiBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjbGFz
cyBoaWVyYXJjaHkuCisgICAgICAgIFRoZSBjb25jcmV0ZSBjbGFzcyBuZWVkcyB0aGUgcGxhdGZv
cm0gZGVwZW5kZW50IHByb3BlcnRpZXMgYW55d2F5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW06IFJlbW92ZWQuCisgICAgICAgICgtW1dlYkdMTGF5
ZXIgaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmNvbnRlbnRzT3BhcXVlOl0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXZWJHTExheWVyIHNldFRyYW5zZm9ybTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV2ViR0xMYXllciBzZXRBbmNob3JQb2ludDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2Vi
R0xMYXllciBkaXNwbGF5XSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2VXQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisKIDIwMjEtMTEtMTYgIEtpbW1vIEtpbm51
bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZSBzaG91bGQgbm90IGhhdmUgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50
YXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDFkYjRmMDZmZTVjZjM3YmI5MzQ5YWNiMzNkYmJmZTgwMjcyOTRk
ZTkuLjk3OTIwZGE1YjAzZDM5OWZiNzI3ZDAzNGY3M2Q4Y2NlODQ5NWMxYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDggQEAKKzIwMjEtMTEtMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFw
cGxlLmNvbT4KKworICAgICAgICBDYW52YXMgcmVuZGVyaW5nIGNvbnRleHQgc2hvdWxkIG5vdCBi
ZSB0aWVkIHRvIFBsYXRmb3JtTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMzEyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2UgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSwgaS5lLiB0
aGUgV2ViQ29udGVudAorICAgICAgICBwcm9jZXNzIHNpZGUgR3JhcGhpY3NDb250ZXh0R0wgaW1w
bGVtZW50YXRpb24sIHRvIGV4cG9ydAorICAgICAgICB0aGUgV2ViR0wgYXMgR3JhcGhpY3NMYXll
ciBjb250ZW50cyB2aWEgR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLgorCisg
ICAgICAgIEFkZHMgYSByZWFsIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2Egc3ViY2xhc3Mg
dGhhdCBpbXBsZW1lbnRzIHRoZSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBwYXJ0cy4KKwor
ICAgICAgICBBZGQgYSB3b3JrYXJvdW5kIHRoYXQgaW1wbGVtZW50cyB0aGUgUGxhdGZvcm1DQUxh
eWVyIGNvbnRlbnRzIHByb3BlcnR5IGV4YWN0bHkKKyAgICAgICAgdGhlIHNhbWUgYXMgYmVmb3Jl
LCB2aWEgaG9zdGVkIENBTGF5ZXIuIEluIHRoZSBmdXR1cmUsIHRoaXMgaXMgcmVtb3ZlZCBhbmQK
KyAgICAgICAgUGxhdGZvcm1DQUxheWVyIGNvbnRlbnRzIHByb3BlcnR5IHdpbGwgYmUgaW1wbGVt
ZW50ZWQgYXMgcGFydCBvZiB0aGUKKyAgICAgICAgbGF5ZXIgcHJvcGVydGllcyBmb3IgdGhlIFVJ
LXNpZGUgY29tcG9zaXRpbmcgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmxheWVyQ29udGVudHNEaXNwbGF5
RGVsZWdhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KTogRGVs
ZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgcGxhdGZvcm0gZGVmaW5lZCBmdW5jdGlvbnMgdG8gdGhl
IHN1YmNsYXNzIHRvIGF2b2lkIGlmZGVmZmluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9t
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b20ubW06CisgICAgICAgICgtW1dLQ29udGVudHNQcm92aWRlZExh
eWVyIGluaXRdKToKKyAgICAgICAgKC1bV0tDb250ZW50c1Byb3ZpZGVkTGF5ZXIgZGlzcGxheV0p
OgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OmNyZWF0ZUNv
bnRlbnRzUHJvdmlkZWRMYXllcik6CisgICAgICAgIEFkZCBhIHRlbXBvcmFyeSBpbXBsZW1lbnRh
dGlvbiB0aGF0IHN0aWxsIHVzZXMgQ0FMYXllciBob3N0aW5nIHRvCisgICAgICAgIHNob3cgdGhl
IFdlYkdMIHRoYXQgaXMgaW1wb3J0ZWQgdG8gdGhyb3VnaCBDb250ZW50c0Rpc3BsYXlEZWxlZ2F0
ZS4KKyAgICAgICAgVGhlIGN1cnJlbnQgUGxhdGZvcm1DQUxheWVyUmVtb3RlIGltcGxlbWVudGF0
aW9uIGRvZXMgbm90IGhhdmUKKyAgICAgICAgdGhlIGV4cGxpY2l0IG5vdGlvbiBvZiBleHBvcnRp
bmcgdGhlICJjb250ZW50cyIgcHJvcGVydHkgd2l0aG91dAorICAgICAgICBSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS4KKwogMjAyMS0xMS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlIHNob3Vs
ZCBub3QgaGF2ZSBwbGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IDUwYTk2NjljOTY4YzhiNGVmMjkwYTlhZGMwZTFjOWY2ZTQ1YWQ4NTAuLjBiMjk2
Mzg4ODUzM2JlODNmNWRiMGY1YTY3Y2EwMzFhZTRiZDg1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtMTMxMiw2ICsxMzEyLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3Rv
cnkuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJUcmFuc2Zvcm0uaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAxMzY4ODAzYmE0MDdmZGE4MTcwMTk5YWYxMGJiNjNm
MTMwMGIzN2EzLi5lNmY1YzhmNjY5ODJhZjQ0ZTM0ZjlhMGJjMmM2OWFjODg1YjA4OGUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMzI3LDcgKzMyNyw2IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkFjdGlvbkRpc2Fi
bGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNv
cmVDQUxheWVyRXh0cmFzLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uLm1tCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0Nv
Y29hLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA1YWRmODZlNmM2NDI2YmU0
NmQ1OTIzYWFmZmUyYjIzM2EzYzJhOTQ4Li5jZDllZmU0MzY5NjZjZDQ0MmI4YWY2NzA4MDMxOWU3
NmJkMDQ2MjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjAyMSw2ICsyMDIxLDcgQEAgcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0R0wuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEltYWdlRXh0
cmFjdG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJUcmFuc2Zvcm0uY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAxYTQ2Njg2Zjc4Y2RjYjIzOGJhZDVm
MmFjMzJhNzJjNTQxNzQ2M2RlLi44YTcxZDJjZDAxMDllZDE4NGZmODRhMTcyOGJjMzMzYjExOTdj
ZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5MCw3ICszOTAsNiBAQCBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbSBAbm8tdW5pZnkKIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbQogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQotcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0
L0RyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggOWY4
NWU0OTg2YzUzYTFjYzhkNjNiMzM5NGQzZjcyOTU4MzJhZjM4Ny4uMzNhYzM1ZGY3ZDNkNTgzYzg2
ZDI3NTY1NGNhZGMxY2FmNzViMDc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0yMDQ3Miw4ICsy
MDQ3Miw2IEBAIF9PQkpDX0NMQVNTXyRfV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldwogX09C
SkNfTUVUQUNMQVNTXyRfV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldwogX09CSkNfQ0xBU1Nf
JF9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdwogX09CSkNfTUVUQUNMQVNTXyRfV2ViQ29yZUZ1bGxT
Y3JlZW5XaW5kb3cKLV9PQkpDX0NMQVNTXyRfV2ViR0xMYXllcgotX09CSkNfTUVUQUNMQVNTXyRf
V2ViR0xMYXllcgogX09CSkNfQ0xBU1NfJF9XZWJMYXllcgogX09CSkNfTUVUQUNMQVNTXyRfV2Vi
TGF5ZXIKIF9PQkpDX0NMQVNTXyRfV2ViU2NyaXB0T2JqZWN0CkBAIC0zMDY0Myw4ICszMDY0MSw2
IEBAIF9PQkpDX0lWQVJfJF9XZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5fZXhpdFdh
cm5pbmcKIF9PQkpDX0lWQVJfJF9XZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5fdGFy
Z2V0CiBfT0JKQ19JVkFSXyRfV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuX2FjdGlv
bgogX09CSkNfSVZBUl8kX1dlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuX3RleHRGaWVsZAot
X09CSkNfSVZBUl8kX1dlYkdMTGF5ZXIubV9jb250ZXh0Ci1fT0JKQ19JVkFSXyRfV2ViR0xMYXll
ci5tX2xheWVyT3duZXIKIF9PQkpDX0lWQVJfJF9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmltcAog
X09CSkNfSVZBUl8kX1dlYlNjcmlwdE9iamVjdFByaXZhdGUucm9vdE9iamVjdAogX09CSkNfSVZB
Ul8kX1dlYlNjcmlwdE9iamVjdFByaXZhdGUub3JpZ2luUm9vdE9iamVjdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUwMTU4YzRh
M2ZmMDRhMTAzNGNmMTc3ZTYyM2JhMzI2ZDcxZDgwZTguLjljN2U5ODRjNzY1ZDRlYjg2MTgyMzYy
YzljZjc5MDU1YmNmNjUwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzMsNyArMTQzMyw2IEBACiAJCTQ5RUNFQjcwMTQ5
OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVDRUI2NjE0OTk3OTBEMDBDREQzQTQgLyogRmls
dGVyT3BlcmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ5RUVEMTQ1MTA1MTk2OTQwMDA5OUZBQiAvKiBKU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlFRUQxM0YxMDUxOTY5NDAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgg
Ki87IH07CiAJCTQ5RUVEMTQ3MTA1MTk2OTQwMDA5OUZBQiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlF
RUQxNDExMDUxOTY5NDAwMDk5RkFCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggKi87IH07
Ci0JCTQ5RkZCRjNGMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUZGQkYzRDExQzkzRUUzMDA2QTcx
MTggLyogV2ViR0xMYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTRBMERBMkZGMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
MERBMkZEMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0QTBGRkE5RTFBQUY1
RTdFMDA2MjgwM0IgLyogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMEZGQTlDMUFBRjVFNkMwMDYy
ODAzQiAvKiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRBMEZGQUEyMUFBRjVFQTIwMDYyODAz
QiAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTBGRkFBMDFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0yMzU5LDggKzIzNTgsMTAgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAw
QzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9u
TGlzdC5oICovOyB9OwogCQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250
ZXh0R0xDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0IxMDMzOUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3
MjFFMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMg
LyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0I1ODJERDgyNzE2RjU1QjAwNEI5MkQwIC8qIChudWxs
KSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjYwOTRERDI3MEM0NEJEMDA2NDgzNUMgLyog
QU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBBTkdMRVV0aWxpdGllcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNkRDODE5MjU3
MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I2REM4MTcyNTcx
MkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0I3MjBCMEMy
NzQzREJBNzAwMDhBQkVEIC8qIEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3MjBCMEEy
NzQzREJBNjAwMDhBQkVEIC8qIEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNzMx
MUZCMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjczMTFGQTI1
QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCOEVENUYwMjZG
MEMxM0QwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I5MDQxNzAyNTUwMTE0MjAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjkw
NDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTA2
Myw4ICs5MDY0LDYgQEAKIAkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5RkFCIC8qIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDlGQzdBNEYxNDQ0QUY1RjAwQTVEODY0IC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5UmVm
cmVzaE1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUZGQkYxQzEx
Qzg1NTBFMDA2QTcxMTggLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RkZCRjNEMTFDOTNFRTMw
MDZBNzExOCAvKiBXZWJHTExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdMTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlGRkJGM0UxMUM5
M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJHTExheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0QTBEQTJGQzEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Bc3NvY2lhdGVkRWxlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMERBMkZEMTI5QjI0MTkwMEFC
NjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTRBMEZGQTlCMUFBRjVFNkMwMDYyODAzQiAvKiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMTAyOSw2ICsxMTAyOCw3IEBACiAJCTdCMTYxOTEwMjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3Jh
cGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I3MjBCMEEyNzQzREJBNjAwMDhBQkVEIC8qIEdyYXBo
aWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3Bl
ZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1ZVdGlsaXRpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I4RUQ1RUYyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0
aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ1ZVdGlsaXRp
ZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTA0MCw2ICsxMTA0MCw3IEBA
CiAJCTdCQjM0QTQ3MjUzNzc2QzcwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0
cmFjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRy
YWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkI2ODBCNzI1QkExQkUz
MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDaGVja3NNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QkI2ODBCODI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDaGVja3NNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JCRkRFQ0QyNzQyOEY1NDAwRUQwQjc3IC8q
IEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QkNENDJEODI3MDU5OUVGMDBFQjIxMjcgLyogQU5HTEVVdGls
aXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQU5HTEVVdGlsaXRpZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QkNENDJEQTI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVV
dGlsaXRpZXNDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBTkdMRVV0aWxpdGllc0NvY29h
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JDRDQyREMyNzA1Qzk0OTAwRUIy
MTI3IC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVVdGlsaXRp
ZXNDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc5MzUsNiArMjc5MzYs
OCBAQAogCQkJCTBGNTgwQjA5MEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyLmNwcCAq
LywKIAkJCQkwRjU4MEIwQTBGMTJBMjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllci5oICovLAog
CQkJCTBGNTgwQjBCMEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyQ2xpZW50LmggKi8s
CisJCQkJN0JCRkRFQ0QyNzQyOEY1NDAwRUQwQjc3IC8qIEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rp
c3BsYXlEZWxlZ2F0ZS5jcHAgKi8sCisJCQkJN0I3MjBCMEEyNzQzREJBNjAwMDhBQkVEIC8qIEdy
YXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oICovLAogCQkJCTFBQzY5NTkyMTYx
QTFFNTMwMDM3MzJDQiAvKiBHcmFwaGljc0xheWVyRmFjdG9yeS5oICovLAogCQkJCTBGQTI0RDc3
MTYyREY5MTkwMEEzRjRDMCAvKiBHcmFwaGljc0xheWVyVXBkYXRlci5jcHAgKi8sCiAJCQkJMEZB
MjRENzgxNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmggKi8sCkBAIC0y
ODI0NSw4ICsyODI0OCw2IEBACiAJCQkJMkQzRUY0NDcxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNv
cmVDQUxheWVyRXh0cmFzLm1tICovLAogCQkJCUNENUQyNzc2MUU4MzE4RTAwMEQ4MEEzRCAvKiBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCAqLywKIAkJCQlDRDVEMjc3NTFFODMxOEUwMDBE
ODBBM0QgLyogV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tICovLAotCQkJCTQ5RkZCRjNE
MTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLmggKi8sCi0JCQkJNDlGRkJGM0UxMUM5M0VF
MzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8sCiAJCQkJMDdGNUNGRjQyNTgyQTRGODAwNjYy
RUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLmggKi8sCiAJCQkJMDdGNUNGRjIyNTgyQTRG
ODAwNjYyRUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLm1tICovLAogCQkJCTdCMTYxOTEw
MjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbSAqLywKQEAgLTMyMjk1LDYgKzMyMjk2LDcgQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWls
ZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAor
CQkJCTdCNTgyREQ4MjcxNkY1NUIwMDRCOTJEMCAvKiAobnVsbCkgaW4gSGVhZGVycyAqLywKIAkJ
CQk3Q0QwRTJCODFGODBBNDgyMDAxNkE0Q0UgLyogQWJvcnRDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3Q0QwRTJCRjFGODBBNTZFMDAxNkE0Q0UgLyogQWJvcnRTaWduYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQ2Qjk1MTk1MjA3RDYzMzQwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdp
bmRvdy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzYxMSw2ICszMzYxMyw3IEBACiAJCQkJMEY1ODBC
MEQwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5OUIzRUQ3MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNTgwQjBFMEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjcyMEIwQzI3NDNEQkE3MDAwOEFCRUQgLyogR3JhcGhp
Y3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUM2
OTU5MzE2MUExRTUzMDAzNzMyQ0IgLyogR3JhcGhpY3NMYXllckZhY3RvcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQTI0RDdBMTYyREY5MTkwMEEzRjRDMCAvKiBHcmFwaGljc0xheWVyVXBkYXRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMDE1QUIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBo
aWNzVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMzY4MzcsNyArMzY4NDAsNiBAQAogCQkJCTVC
MzA2OTVFMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2RUJGMEU1NTEyQTg5Mjk4MDBEQjE3MDkgLyogV2ViR0xFeHRlbnNpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQ5QzdCOUNGMTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcxMTggLyogV2Vi
R0xMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8q
IFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFQzM2MkQ5MjVCNEM1NDUw
MDkzN0Y4NSAvKiBXZWJHTE11bHRpRHJhdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5RDUx
MDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMT2JqZWN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggYjc5ZjZhMjA4ZDNjYjU4MWY5YWEyZDVjMjViNmJhZWEyMjNmNTY3Yi4uNzJiMmNjZTc0
ZGI5NzJiODRiMjA4ZGU3M2E4MDJkZTI4ZGY2Y2UzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4u
aCIKICNpbmNsdWRlICJEZXN0aW5hdGlvbkNvbG9yU3BhY2UuaCIKKyNpbmNsdWRlICJHcmFwaGlj
c0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVmlk
ZW9FbGVtZW50LmgiCkBAIC04Myw2ICs4NCwxMSBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQ6OmRlcmVmKCkKICAgICBtX2NhbnZhcy5kZXJlZkNhbnZhc0Jhc2UoKTsKIH0KIAorUmVmUHRy
PEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4gQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpCit7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKIFBpeGVsRm9ybWF0IENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OnBpeGVsRm9ybWF0
KCkgY29uc3QKIHsKICAgICByZXR1cm4gUGl4ZWxGb3JtYXQ6OkJHUkE4OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDM3
MjAwNzkwNDZmZTAyZjU2ODQ1MjA1ZDJhN2RlYjk5NzhlODAyM2UuLjVhZTc5YmYwYjllMzkwYjNh
YTYxNTNkMjYwMThkN2ZiMWJlYzk1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGlj
OgogICAgIC8vIHVzZWQgZm9yIGNvbXBvc2l0aW5nIHB1cnBvc2VzLgogICAgIHZpcnR1YWwgdm9p
ZCBwcmVwYXJlRm9yRGlzcGxheVdpdGhQYWludCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygpIHsgfQotICAgIHZpcnR1YWwgUGxhdGZvcm1MYXll
ciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFJlZlB0
cjxHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+IGxheWVyQ29udGVudHNEaXNw
bGF5RGVsZWdhdGUoKTsKIAogICAgIGJvb2wgaGFzQWN0aXZlSW5zcGVjdG9yQ2FudmFzQ2FsbFRy
YWNlcigpIGNvbnN0IHsgcmV0dXJuIG1faGFzQWN0aXZlSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNl
cjsgfQogICAgIHZvaWQgc2V0SGFzQWN0aXZlSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlcihib29s
IGhhc0FjdGl2ZUluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIpIHsgbV9oYXNBY3RpdmVJbnNwZWN0
b3JDYW52YXNDYWxsVHJhY2VyID0gaGFzQWN0aXZlSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlcjsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcAppbmRleCAzMzkyNWJjNmFjOGQ4N2I0MTA2YjA2MzFlZDM0MjkwMzlh
NzhhZmU0Li43YjMwODEzYWE5YjA3YTY0YWFhNGZkYWI2ZTE1YWIyZjEyOGRjYjEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQu
aCIKQEAgLTY0NDUsOSArNjQ0NiwxMSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmlzQ29udGV4dFVucmVjb3ZlcmFibHlMb3N0KCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0
TG9zdCAmJiAhbV9yZXN0b3JlQWxsb3dlZDsKIH0KIAotUGxhdGZvcm1MYXllciogV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CitSZWZQdHI8R3JhcGhpY3NM
YXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjps
YXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkKIHsKLSAgICByZXR1cm4gKCFpc0NvbnRleHRM
b3N0KCkgJiYgIW1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikgPyBtX2NvbnRleHQtPnBsYXRm
b3JtTGF5ZXIoKSA6IDA7CisgICAgaWYgKGlzQ29udGV4dExvc3QoKSB8fCBtX2lzUGVuZGluZ1Bv
bGljeVJlc29sdXRpb24pCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBtX2Nv
bnRleHQtPmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUoKTsKIH0KIAogdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3Qm
IG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA2NTI0YzkxNzM3NTcwOWEyYzY1MGUyYWI4MTYxMzlk
ZjUwNTgxNjA4Li5iNTQ1N2U3MTM3Zjg0MjZkYzAzMTA0YjRjNGU2YTNmYjIyMjRjM2JjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oCkBAIC0zODYsNyArMzg2LDcgQEAgcHVibGljOgogCiAgICAgR3JhcGhpY3NDb250
ZXh0R0wqIGdyYXBoaWNzQ29udGV4dEdMKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgp
OyB9CiAgICAgV2ViR0xDb250ZXh0R3JvdXAqIGNvbnRleHRHcm91cCgpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGV4dEdyb3VwLmdldCgpOyB9Ci0gICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxHcmFwaGljc0xheWVyQ29udGVudHNEaXNw
bGF5RGVsZWdhdGU+IGxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUoKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgcmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpIG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRH
TC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wu
aAppbmRleCBlZGFhNGNlNWVhNzJlNzMwYmM1MjU0NmM3MDA2ZWQyMzcyNzM5NjBkLi4zZjkwM2Ni
OWM1OWQ2ZjhkYWI1ZDYxMjcwZWVkZDFkNTY3Njc1ZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTI4LDEyICsy
OCwxMiBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxl
Z2F0ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgogI2luY2x1ZGUgIkltYWdlLmgi
CiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CkBAIC03ODYsNyArNzg2LDcgQEAgcHVibGljOgogICAgICAgICBZZXMK
ICAgICB9OwogCi0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlE
ZWxlZ2F0ZT4gbGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpID0gMDsKIAogICAgIEFMV0FZ
U19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEoRGF0YUZvcm1hdCBmb3JtYXQpCiAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cAppbmRleCBjNzVkYTU2YTgzNjE1NmNjMGQ1ZTVhN2RmMWJmYjBjNGIyYjI2MmM3Li4xYmI3N2Y0
NzcxZjhiZWRjMjBjYzgwYTcwNzQ2MzM5MTFmZTc3Mjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyQ29udGVudHNE
aXNwbGF5RGVsZWdhdGUuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiUm90
YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTYx
Miw2ICs2MTMsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpyZXN1bWVBbmltYXRpb25zKCkKIHsK
IH0KIAordm9pZCBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c0Zyb21EaXNwbGF5RGVsZWdhdGUo
UmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4mJiwgQ29udGVudHNM
YXllclB1cnBvc2UpCit7Cit9CisKIHZvaWQgR3JhcGhpY3NMYXllcjo6Z2V0RGVidWdCb3JkZXJJ
bmZvKENvbG9yJiBjb2xvciwgZmxvYXQmIHdpZHRoKSBjb25zdAogewogICAgIHdpZHRoID0gMjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApp
bmRleCBiZjk1MDlmMThjY2I5NTk5MjNkZDlmNWQ1ZmIyNTJiZTE4Yjk4OTljLi4xNjFlM2I5N2I1
ODlkZGEwMDc4NDljZDgwODdlYTk1NmI5NTIwOWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC01OCw2ICs1OCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFuaW1hdGlvbjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsK
IGNsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OworY2xhc3MgR3JhcGhpY3NMYXllckNvbnRlbnRz
RGlzcGxheURlbGVnYXRlOwogY2xhc3MgSW1hZ2U7CiBjbGFzcyBNb2RlbDsKIGNsYXNzIFRpbGVk
QmFja2luZzsKQEAgLTUyMiw2ICs1MjMsNyBAQCBwdWJsaWM6CiAgICAgLy8gUGFzcyBhbiBpbnZh
bGlkIGNvbG9yIHRvIHJlbW92ZSB0aGUgY29udGVudHMgbGF5ZXIuCiAgICAgdmlydHVhbCB2b2lk
IHNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBDb250ZW50c0xh
eWVyUHVycG9zZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzRnJvbURpc3BsYXlE
ZWxlZ2F0ZShSZWZQdHI8R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiYmLCBD
b250ZW50c0xheWVyUHVycG9zZSk7CiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCiAgICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9Nb2RlbChSZWZQdHI8TW9kZWw+JiYpIHsgfQogICAgIHZp
cnR1YWwgUGxhdGZvcm1MYXllcklEIGNvbnRlbnRzTGF5ZXJJREZvck1vZGVsKCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODFjZTNlNGZjMDM5YjBlMDMyODFjN2JlNDdlODM2NWYwMTljZjNjMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCIK
KworI2lmIFVTRShDQSkKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0EuaCIKKyNlbmRpZgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0dyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0
ZTo6fkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpID0gZGVmYXVsdDsKKwor
I2lmIFVTRShDQSkKK0dyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRh
dGlvbiBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU6Om9yaWVudGF0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gR3JhcGhpY3NMYXllckNBOjpkZWZhdWx0Q29udGVudHNPcmll
bnRhdGlvbjsKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3Bs
YXlEZWxlZ2F0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NzczZjJlM2M3YzdlNjMwOTViMDkyOWRkZWI0MGIx
ZDAxOGY5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2lmIFVTRShDQSkKK2NsYXNzIFBsYXRm
b3JtQ0FMYXllcjsKKyNlbmRpZgorCisvLyBQbGF0Zm9ybSBzcGVjaWZpYyBpbnRlcmZhY2UgZm9y
IGF0dGFjaGluZyBjb250ZW50cyB0byBHcmFwaGljc0xheWVyLgorLy8gUmVzcG9uc2libGUgZm9y
IGNyZWF0aW5nIGNvbXBvc2l0b3IgcmVzb3VyY2VzIHRvIHNob3cgdGhlIHBhcnRpY3VsYXIgY29u
dGVudHMKKy8vIGluIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBHcmFwaGljc0xheWVyLgorY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIDogcHVi
bGljIFJlZkNvdW50ZWQ8R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRl
KCk7CisKKyNpZiBVU0UoQ0EpCisgICAgdmlydHVhbCB2b2lkIHdpbGxEZWxlZ2F0ZURpc3BsYXko
UGxhdGZvcm1DQUxheWVyJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwbGF5KFBsYXRmb3Jt
Q0FMYXllciYpID0gMDsKKyAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29v
cmRpbmF0ZXNPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0OworI2VuZGlmCit9OworCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmNwcAppbmRleCA1MTkwYTM4NjU0MzAwNzIwMDUwOWNmOTA1YjcwZjU1ZDA3YjU3
YjQ3Li5mMmU2Y2VlN2NiMGE4ZmI5NDAxMjg0MDZlNzhkM2MxYjhiMTRiZmRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdFJlcGxheWVyLmgi
CiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisj
aW5jbHVkZSAiR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmgiCiAjaW5jbHVk
ZSAiR3JhcGhpY3NMYXllckZhY3RvcnkuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUg
IkluTWVtb3J5RGlzcGxheUxpc3QuaCIKQEAgLTEzNDgsNiArMTM0OSwyNyBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciogcGxh
dGZvcm1MYXllciwgQwogICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1BsYXRm
b3JtTGF5ZXJDaGFuZ2VkKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRz
RnJvbURpc3BsYXlEZWxlZ2F0ZShSZWZQdHI8R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURl
bGVnYXRlPiYmIHByb3ZpZGVyLCBDb250ZW50c0xheWVyUHVycG9zZSBwdXJwb3NlKQoreworICAg
IGlmIChtX2NvbnRlbnRzTGF5ZXIgJiYgcHJvdmlkZXIgPT0gbV9jb250ZW50c0Rpc3BsYXlEZWxl
Z2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fY29udGVudHNMYXllcikKKyAgICAg
ICAgbV9jb250ZW50c0xheWVyLT5zZXRPd25lcihudWxscHRyKTsKKyAgICBtX2NvbnRlbnRzTGF5
ZXIgPSBudWxscHRyOworICAgIG1fY29udGVudHNEaXNwbGF5RGVsZWdhdGUgPSBudWxscHRyOwor
ICAgIG1fY29udGVudHNMYXllclB1cnBvc2UgPSBDb250ZW50c0xheWVyUHVycG9zZTo6Tm9uZTsK
KyAgICBpZiAocHJvdmlkZXIpIHsKKyAgICAgICAgbV9jb250ZW50c0xheWVyID0gY3JlYXRlUGxh
dGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQ29udGVudHNQcm92aWRlZExh
eWVyLCB0aGlzKTsKKyAgICAgICAgbV9jb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSA9IFdURk1vdmUo
cHJvdmlkZXIpOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gcHVycG9zZTsKKyAg
ICAgICAgbV9jb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS0+d2lsbERlbGVnYXRlRGlzcGxheSgqbV9j
b250ZW50c0xheWVyKTsKKyAgICB9CisKKyAgICBub3RlU3VibGF5ZXJzQ2hhbmdlZCgpOworICAg
IG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1BsYXRmb3JtTGF5ZXJDaGFuZ2VkKTsK
K30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBQbGF0Zm9ybUxheWVyKiBHcmFwaGljc0xh
eWVyQ0E6OmNvbnRlbnRzTGF5ZXJGb3JNZWRpYSgpIGNvbnN0CiB7CkBAIC0xMzcxLDYgKzEzOTMs
MTUgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzTWFnbmlmaWNhdGlvbkZpbHRl
cihTY2FsaW5nRmlsdGVyIGZpbHRlcikKICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29u
dGVudHNTY2FsaW5nRmlsdGVyc0NoYW5nZWQpOwogfQogCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6
bGF5ZXJEaXNwbGF5KFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCit7CisgICAgaWYgKG1fY29udGVu
dHNEaXNwbGF5RGVsZWdhdGUgJiYgbGF5ZXIgPT0gbV9jb250ZW50c0xheWVyKSB7CisgICAgICAg
IG1fY29udGVudHNEaXNwbGF5RGVsZWdhdGUtPmRpc3BsYXkoKmxheWVyKTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OmxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewogICAgIGlm
ICghbV9sYXllckNsb25lcykKQEAgLTI3OTIsNyArMjgyMyw4IEBAIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVDb250ZW50c1BsYXRmb3JtTGF5ZXIoKQogICAgICAgICByZXR1cm47CiAKICAg
ICAvLyBQbGF0Zm9ybSBsYXllciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwgYW5kIHdpbGwg
Z2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlzdCgpLgotICAgIHNldHVwQ29udGVudHNM
YXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOworICAgIGF1dG8gb3JpZW50YXRpb24gPSBtX2Nv
bnRlbnRzRGlzcGxheURlbGVnYXRlID8gbV9jb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS0+b3JpZW50
YXRpb24oKSA6IGRlZmF1bHRDb250ZW50c09yaWVudGF0aW9uOworICAgIHNldHVwQ29udGVudHNM
YXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCksIG9yaWVudGF0aW9uKTsKIAogICAgIGlmIChtX2Nv
bnRlbnRzTGF5ZXJQdXJwb3NlID09IENvbnRlbnRzTGF5ZXJQdXJwb3NlOjpDYW52YXMpCiAgICAg
ICAgIG1fY29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CkBAIC00NDEyLDE5ICs0NDQ0
LDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjaGFuZ2VMYXllclR5cGVUbyhQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZSBuZXdMYXllclR5cGUpCiAgICAgICAgIGNsaWVudCgpLnRpbGVkQmFj
a2luZ1VzYWdlQ2hhbmdlZCh0aGlzLCBpc1RpbGVkTGF5ZXIpOwogfQogCi1HcmFwaGljc0xheWVy
OjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gR3JhcGhpY3NMYXllckNBOjpkZWZh
dWx0Q29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIENvbXBvc2l0aW5n
Q29vcmRpbmF0ZXNPcmllbnRhdGlvbjo6VG9wRG93bjsKLX0KLQotdm9pZCBHcmFwaGljc0xheWVy
Q0E6OnNldHVwQ29udGVudHNMYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGNvbnRlbnRzTGF5ZXIpCit2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBDb250ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllciog
Y29udGVudHNMYXllciwgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0
aW9uKQogewogICAgIC8vIFR1cm4gb2ZmIGltcGxpY2l0IGFuaW1hdGlvbnMgb24gdGhlIGlubmVy
IGxheWVyLgogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvbnRlbnRzTGF5ZXItPnNl
dE1hc2tzVG9Cb3VuZHModHJ1ZSk7CiAjZW5kaWYKLQotICAgIGlmIChkZWZhdWx0Q29udGVudHNP
cmllbnRhdGlvbigpID09IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbjo6Qm90dG9t
VXApIHsKKyAgICBpZiAob3JpZW50YXRpb24gPT0gQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVu
dGF0aW9uOjpCb3R0b21VcCkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBmbGlwcGVy
KAogICAgICAgICAgICAgMS4wZiwgMC4wZiwgMC4wZiwgMC4wZiwKICAgICAgICAgICAgIDAuMGYs
IC0xLjBmLCAwLjBmLCAwLjBmLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCA5ZDQ0ZjZhYjM4MGM4ODY2NjM0ZjNi
Zjc0MDllZWM3ZjM5YjQ4ZDg3Li4zMWI5OWMyMmFkMDg1MDZiOTQ3MjMwY2UwNzQ1YWVhZjhhOTM3
OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaApAQCAtMTUwLDYgKzE1MCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBQbGF0Zm9ybUxheWVyKiBjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdCBvdmVy
cmlkZTsKICNlbmRpZgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKSBvdmVycmlkZTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbnRlbnRzRnJvbURpc3BsYXlEZWxlZ2F0ZShS
ZWZQdHI8R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiYmLCBDb250ZW50c0xh
eWVyUHVycG9zZSkgb3ZlcnJpZGU7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbnRl
bnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJikgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKE1PREVM
X0VMRU1FTlQpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb250ZW50c1RvTW9kZWwoUmVm
UHRyPE1vZGVsPiYmKSBvdmVycmlkZTsKQEAgLTIxMiw2ICsyMTQsNyBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c09wYXF1ZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGNvbnRlbnRzT3BhcXVlKCk7IH0KICAgICBib29sIHBsYXRmb3JtQ0FMYXllckRyYXdz
Q29udGVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGRyYXdzQ29udGVudCgpOyB9CisgICAg
Ym9vbCBwbGF0Zm9ybUNBTGF5ZXJMYXllckRpc3BsYXkoUGxhdGZvcm1DQUxheWVyKiBsYXllcikg
b3ZlcnJpZGUgeyByZXR1cm4gbGF5ZXJEaXNwbGF5KGxheWVyKTsgfQogICAgIHZvaWQgcGxhdGZv
cm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpIG92ZXJyaWRl
IHsgcmV0dXJuIGxheWVyRGlkRGlzcGxheShsYXllcik7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHBsYXRmb3JtQ0FMYXllclNldE5lZWRzVG9SZXZhbGlkYXRlVGlsZXMoKSBvdmVycmlkZTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBmbG9hdCBwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMjQyLDYgKzI0NSw3IEBAIHByaXZhdGU6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNob3VsZFJlcGFpbnRPblNpemVDaGFuZ2UoKSBjb25zdCBvdmVy
cmlkZTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbGF5ZXJEaXNwbGF5KFBsYXRmb3JtQ0FM
YXllciopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbGF5ZXJEaWREaXNwbGF5KFBsYXRmb3Jt
Q0FMYXllciopOwogCiAgICAgdmlydHVhbCBSZWY8UGxhdGZvcm1DQUxheWVyPiBjcmVhdGVQbGF0
Zm9ybUNBTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNs
aWVudCogb3duZXIpOwpAQCAtMzAwLDEwICszMDQsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBy
ZXF1aXJlc1RpbGVkTGF5ZXIoZmxvYXQgcGFnZVNjYWxlRmFjdG9yKSBjb25zdDsKICAgICB2b2lk
IGNoYW5nZUxheWVyVHlwZVRvKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlKTsKLQotICAgIENv
bXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBkZWZhdWx0Q29udGVudHNPcmllbnRhdGlv
bigpIGNvbnN0OwotCi0gICAgdm9pZCBzZXR1cENvbnRlbnRzTGF5ZXIoUGxhdGZvcm1DQUxheWVy
Kik7CisgICAgY29uc3RleHByIHN0YXRpYyBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRp
b24gZGVmYXVsdENvbnRlbnRzT3JpZW50YXRpb24gPSBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3Jp
ZW50YXRpb246OlRvcERvd247CisgICAgdm9pZCBzZXR1cENvbnRlbnRzTGF5ZXIoUGxhdGZvcm1D
QUxheWVyKiwgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uID0gZGVmYXVsdENvbnRl
bnRzT3JpZW50YXRpb24pOwogICAgIFBsYXRmb3JtQ0FMYXllciogY29udGVudHNMYXllcigpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGVudHNMYXllci5nZXQoKTsgfQogCiAgICAgdm9pZCB1cGRhdGVD
bGlwcGluZ1N0cmF0ZWd5KFBsYXRmb3JtQ0FMYXllciYsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+
JiBzaGFwZU1hc2tMYXllciwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYpOwpAQCAtNjQ0LDYgKzY0
Niw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCiAgICAgUmVmUHRyPE1v
ZGVsPiBtX2NvbnRlbnRzTW9kZWw7CiAjZW5kaWYKKyAgICBSZWZQdHI8R3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlPiBtX2NvbnRlbnRzRGlzcGxheURlbGVnYXRlOwogCiAgICAg
VmVjdG9yPExheWVyUHJvcGVydHlBbmltYXRpb24+IG1fYW5pbWF0aW9uczsKICAgICBWZWN0b3I8
TGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbj4gbV9iYXNlVmFsdWVUcmFuc2Zvcm1BbmltYXRpb25zOwpA
QCAtNjYzLDYgKzY2Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0V2ZXJQYWludGVkIDog
MTsKICAgICBib29sIG1faGFzRGVzY2VuZGFudHNXaXRoUnVubmluZ1RyYW5zZm9ybUFuaW1hdGlv
bnMgOiAxOwogICAgIGJvb2wgbV9oYXNEZXNjZW5kYW50c1dpdGhVbmNvbW1pdHRlZENoYW5nZXMg
OiAxOworICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdh
dGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCmlu
ZGV4IDY3NzhkZTcxOWM1MGUxYTQ1ZmM4MjQ2ZDczYTkwOGFiZmJhZDEzMDYuLjNjMTgzNTE3MjM3
Mzk4YmJiMzA2ZjM4NDY0NWNhNGUzYTc1OWU1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCkBA
IC01MSw2ICs1MSw5IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1D
QUxheWVyQ29udGVudHNPcGFxdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIHBsYXRm
b3JtQ0FMYXllckRyYXdzQ29udGVudCgpIGNvbnN0ID0gMDsKKyAgICAvLyBSZXR1cm5zIHRydWUg
aWYgZGVsZWdhdGVkIGRpc3BsYXkgd2FzIGRvbmUgd2l0aGluIHRoaXMgY2FsbGJhY2sgYW5kIGRl
ZmF1bHQgZGlzcGxheQorICAgIC8vIHNob3VsZCBiZSBza2lwcGVkLiAKKyAgICB2aXJ0dWFsIGJv
b2wgcGxhdGZvcm1DQUxheWVyTGF5ZXJEaXNwbGF5KFBsYXRmb3JtQ0FMYXllciopIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxh
eShQbGF0Zm9ybUNBTGF5ZXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5
ZXJTZXROZWVkc1RvUmV2YWxpZGF0ZVRpbGVzKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tCmluZGV4IDM0ZTI1OTBmNTc3Mjk2YjIyMzliZjI4NjgyZmM3NTZhYzY2OTAzYWEu
LmNiZDYzNTFmODcxNjZhMTBhNTQ3NDNjZDA3NTVmODdiZjA0MDdmMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1Bs
YXRmb3JtQ0FMYXllckNvY29hLm1tCkBAIC00MCw3ICs0MCw2IEBACiAjaW1wb3J0ICJUaWxlZEJh
Y2tpbmcuaCIKICNpbXBvcnQgIldlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIgog
I2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKLSNpbXBvcnQgIldlYkdMTGF5ZXIuaCIK
ICNpbXBvcnQgIldlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCIKICNpbXBvcnQgPHBhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CkBAIC0yMTEs
OSArMjEwLDYgQEAgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgUGxhdGZvcm1DQUxheWVyQ29j
b2E6OmxheWVyVHlwZUZvclBsYXRmb3JtTGF5ZXIoUGxhdGYKICAgICAgICAgJiYgWyhXZWJWaWRl
b0NvbnRhaW5lckxheWVyKilsYXllciBwbGF5ZXJMYXllcl0pCiAgICAgICAgIHJldHVybiBMYXll
clR5cGVBVlBsYXllckxheWVyOwogCi0gICAgaWYgKFtsYXllciBpc0tpbmRPZkNsYXNzOltXZWJH
TExheWVyIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBMYXllclR5cGVDb250ZW50c1Byb3ZpZGVk
TGF5ZXI7Ci0KICAgICByZXR1cm4gTGF5ZXJUeXBlQ3VzdG9tOwogfQogCkBAIC0yMzQsNiArMjMw
LDcgQEAgUGxhdGZvcm1DQUxheWVyQ29jb2E6OlBsYXRmb3JtQ0FMYXllckNvY29hKExheWVyVHlw
ZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckMKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBM
YXllclR5cGVTaW1wbGVMYXllcjoKICAgICBjYXNlIExheWVyVHlwZVRpbGVkQmFja2luZ1RpbGVM
YXllcjoKKyAgICBjYXNlIExheWVyVHlwZUNvbnRlbnRzUHJvdmlkZWRMYXllcjoKICAgICAgICAg
bGF5ZXJDbGFzcyA9IFtXZWJTaW1wbGVMYXllciBjbGFzc107CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTGF5ZXJUeXBlVHJhbnNmb3JtTGF5ZXI6CkBAIC0yNjUsMTAgKzI2Miw2IEBAIFBsYXRm
b3JtQ0FMYXllckNvY29hOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYShMYXllclR5cGUgbGF5ZXJUeXBl
LCBQbGF0Zm9ybUNBTGF5ZXJDCiAgICAgICAgIGlmIChQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3
b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgICAgICBsYXllckNsYXNzID0gUEFMOjpnZXRBVlBsYXll
ckxheWVyQ2xhc3MoKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMYXllclR5cGVDb250ZW50
c1Byb3ZpZGVkTGF5ZXI6Ci0gICAgICAgIC8vIFdlIGRvbid0IGNyZWF0ZSBQbGF0Zm9ybUNBTGF5
ZXJDb2NvYXMgd3JhcHBlZCBhcm91bmQgV2ViR0xMYXllcnMuCi0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKICAg
ICBjYXNlIExheWVyVHlwZU1vZGVsTGF5ZXI6CiAgICAgICAgIGxheWVyQ2xhc3MgPSBbQ0FMYXll
ciBjbGFzc107CkBAIC0zMTAsNyArMzAzLDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6
Y29tbW9uSW5pdCgpCiAgICAgfQogICAgIAogICAgIC8vIENsZWFyIGFsbCB0aGUgaW1wbGljaXQg
YW5pbWF0aW9ucyBvbiB0aGUgQ0FMYXllcgotICAgIGlmIChtX2xheWVyVHlwZSA9PSBMYXllclR5
cGVBVlBsYXllckxheWVyIHx8IG1fbGF5ZXJUeXBlID09IExheWVyVHlwZUNvbnRlbnRzUHJvdmlk
ZWRMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVTY3JvbGxDb250YWluZXJMYXllciB8
fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDdXN0b20pCisgICAgaWYgKG1fbGF5ZXJUeXBlID09
IExheWVyVHlwZUFWUGxheWVyTGF5ZXIgfHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlU2Nyb2xs
Q29udGFpbmVyTGF5ZXIgfHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQ3VzdG9tKQogICAgICAg
ICBbbV9sYXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOwogICAgIGVsc2UKICAgICAgICAgW21f
bGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFy
ZWRdXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDE5
NzlkYTU2NzI0YmEwZDI1YWRhNWQxNDFiNjNmNWFiNWYxZTdhOTQuLjM4MTczY2EwMTc2MWZlY2Y1
N2I3NDg5MzZlZjJlODdkNjFkMjY2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbQpAQCAtNTksNiArNTksNyBAQCBXVEZfV0VBS19MSU5LX0ZPUkNFX0lNUE9S
VChFR0xfSW5pdGlhbGl6ZSk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorCiBib29sIHBsYXRm
b3JtSXNBTkdMRUF2YWlsYWJsZSgpCiB7CiAgICAgLy8gVGhlIEFOR0xFIGlzIHdlYWsgbGlua2Vk
IGluIGZ1bGwsIGFuZCB0aGUgRUdMX0luaXRpYWxpemUgaXMgZXhwbGljaXRseSB3ZWFrIGxpbmtl
ZCBhYm92ZQpAQCAtNDM1LDExICs0MzYsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Ojppc1ZhbGlkKCkgY29uc3QKICAgICByZXR1cm4gbV90ZXh0dXJlOwogfQogCi1QbGF0Zm9ybUxh
eWVyKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGxhdGZvcm1MYXllcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIEdDR0xlbnVtIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpCiB7CiAgICAgaWYgKG1fZHJhd2luZ0J1ZmZl
clRleHR1cmVUYXJnZXQgPT0gLTEpCkBAIC03MzcsNyArNzMzLDYgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6cHJlcGFyZUZvckRpc3BsYXkoKQogICAgIH0KIH0KIAotCiAjaWYgRU5B
QkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogR3JhcGhpY3NDb250ZXh0R0xDViogR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OmFzQ1YoKQogewpAQCAtNzk5LDYgKzc5NCwxNyBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwbGF0Zm9ybVJlbGVhc2VUaHJlYWRSZXNvdXJjZXMo
KQogICAgIGN1cnJlbnRDb250ZXh0ID0gbnVsbHB0cjsKIH0KIAorSU9TdXJmYWNlKiBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6ZGlzcGxheUJ1ZmZlcigpCit7CisgICAgQVNTRVJUKG1fc3dhcENo
YWluLmRpc3BsYXlCdWZmZXIoKS5zdXJmYWNlKTsKKyAgICByZXR1cm4gbV9zd2FwQ2hhaW4uZGlz
cGxheUJ1ZmZlcigpLnN1cmZhY2UuZ2V0KCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6Om1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKQoreworICAgIG1fc3dhcENoYWluLm1hcmtE
aXNwbGF5QnVmZmVySW5Vc2UoKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXll
ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NmRhMGZlMGY0NGEzYTg0NDBlNjYz
OWVhOWQ3ZTBhODk2MDY4OGUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6
Q29yZS5oPgotCi1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotCi0vLyBBIGxh
eWVyIGNsYXNzIHNob3dpbmcgb25lIElPU3VyZmFjZS4KLVdFQkNPUkVfRVhQT1JUIEBpbnRlcmZh
Y2UgV2ViR0xMYXllciA6IENBTGF5ZXIKLQotLSAoaWQpaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlv
OihmbG9hdClkZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOihib29sKWNvbnRlbnRzT3Bh
cXVlOwotCi1AZW5kCi0KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlOTAzMTU1NjkxMTEzNmMzMWY1ZDY4ZWUy
NDNmNjdlZjY2ZGU4YzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5t
bQorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLQotI2lmIEVO
QUJMRShXRUJHTCkKLSNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKLQotI2ltcG9ydCAiR3JhcGhpY3NM
YXllci5oIgotI2ltcG9ydCAiR3JhcGhpY3NMYXllckNBLmgiCi0jaW1wb3J0ICJQbGF0Zm9ybUNB
TGF5ZXIuaCIKLQotQGltcGxlbWVudGF0aW9uIFdlYkdMTGF5ZXIKLQotLSAoaWQpaW5pdFdpdGhE
ZXZpY2VQaXhlbFJhdGlvOihmbG9hdClkZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOihi
b29sKWNvbnRlbnRzT3BhcXVlCi17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBzZWxm
LnRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RJZGVudGl0eTsKLSAgICBzZWxmLmNvbnRlbnRzT3Bh
cXVlID0gY29udGVudHNPcGFxdWU7Ci0gICAgc2VsZi5jb250ZW50c1NjYWxlID0gZGV2aWNlUGl4
ZWxSYXRpbzsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLy8gV2hlbiB1c2luZyBhbiBJT1N1cmZh
Y2UgYXMgbGF5ZXIgY29udGVudHMsIHdlIG5lZWQgdG8gZmxpcCB0aGUKLS8vIGxheWVyIHRvIHRh
a2UgaW50byBhY2NvdW50IHRoYXQgdGhlIElPU3VyZmFjZSBwcm92aWRlcyBjb250ZW50Ci0vLyBp
biBZLXVwLiBUaGlzIG1lYW5zIHRoYXQgYW55IGluY29taW5nIHRyYW5zZm9ybSAodW5saWtlbHks
IHNpbmNlCi0vLyB0aGlzIGlzIGEgY29udGVudHMgbGF5ZXIpIGFuZCBhbmNob3IgcG9pbnQgbXVz
dCBhZGQgYSBZIHNjYWxlIG9mCi0vLyAtMSBhbmQgbWFrZSBzdXJlIHRoZSB0cmFuc2Zvcm0gaGFw
cGVucyBmcm9tIHRoZSB0b3AuCi0KLS0gKHZvaWQpc2V0VHJhbnNmb3JtOihDQVRyYW5zZm9ybTNE
KXQKLXsKLSAgICBbc3VwZXIgc2V0VHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RTY2FsZSh0LCAxLCAt
MSwgMSldOwotfQotCi0tICh2b2lkKXNldEFuY2hvclBvaW50OihDR1BvaW50KXAKLXsKLSAgICBb
c3VwZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UocC54LCAxLjAgLSBwLnkpXTsKLX0KLQot
LSAodm9pZClkaXNwbGF5Ci17Ci0gICAgLy8gU2hvdyB0aGUgc2VsZi5jb250ZW50cyBhcyB0aGUg
Y29udGVudHMgYnkgbm90IGRvaW5nIGFueXRoaW5nIGluIHRoaXMgZnVuY3Rpb24uCi0gICAgYXV0
byBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5
ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwotICAgIGlmIChsYXllciAmJiBsYXllci0+b3duZXIo
KSkKLSAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxh
eShsYXllci5nZXQoKSk7Ci0KLX0KLQotQGVuZAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQppbmRleCBjYWM0NGExZGI0ZGZjMGY3MTcwNGM3NDE4NGRhNDYzNzJiMzEyM2FmLi5mMzI4
MGYwYzdiZGRmNmY2YzQ5ODdjNjk5YmUzZjU4NGI3ZTI2Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMjksNTMg
KzI5LDU5IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaCIgLy8gTk9MSU5UCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuaCIKLSNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKLSNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNl
cHRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSB7CiAKLXN0YXRpYyBS
ZXRhaW5QdHI8V2ViR0xMYXllcj4gY3JlYXRlV2ViR0xMYXllcihjb25zdCBHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCi17Ci0gICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+
IGxheWVyOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIGxheWVyID0gYWRv
cHROUyhbW1dlYkdMTGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRyaWJ1
dGVzLmRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6IWF0dHJpYnV0ZXMuYWxwaGFdKTsK
LSNpZm5kZWYgTkRFQlVHCi0gICAgW2xheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOwotI2Vu
ZGlmCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIHJldHVybiBsYXllcjsKLX0K
LQogLy8gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgdHlwZSB0aGF0IGlzIHVzZWQgd2hlbiBXZWJH
TCBpcyBydW4gaW4tcHJvY2VzcyBpbiBXZWJDb250ZW50IHByb2Nlc3MuCiBjbGFzcyBXZWJQcm9j
ZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wgewogcHVibGljOgogICAgIH5XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woKSA9IGRlZmF1bHQ7Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQoKSAmJiBtX3dlYkdMTGF5ZXI7IH0KICAgICAvLyBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCBvdmVycmlkZXMuCi0gICAgUGxhdGZvcm1MYXllciogcGxh
dGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXll
cio+KG1fd2ViR0xMYXllci5nZXQoKSk7IH0KLSAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkg
ZmluYWw7CisgICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4g
bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpIGZpbmFsOwogcHJpdmF0ZToKICAgICBXZWJQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMpCiAgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShh
dHRyaWJ1dGVzKSwgeyB9KQotICAgICAgICAsIG1fd2ViR0xMYXllcihjcmVhdGVXZWJHTExheWVy
KGF0dHJpYnV0ZXMpKQogICAgIHsKICAgICB9Ci0gICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1f
d2ViR0xMYXllcjsKLQogICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsK
IH07CiAKLXZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwcmVwYXJlRm9y
RGlzcGxheSgpCitjbGFzcyBEaXNwbGF5QnVmZmVyQ29udGVudHNQcm92aWRlciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8RGlzcGxheUJ1ZmZlckNvbnRlbnRzUHJvdmlkZXI+IGNyZWF0
ZShSZWY8V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjb250ZXh0KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheUJ1ZmZlckNvbnRlbnRzUHJvdmlk
ZXIoV1RGTW92ZShjb250ZXh0KSkpOworICAgIH0KKyAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUgb3ZlcnJpZGVzLgorICAgIHZvaWQgd2lsbERlbGVn
YXRlRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXImIGxheWVyKSBmaW5hbAorICAgIHsKKyAgICAgICAg
YXV0byBhdHRyaWJ1dGVzID0gbV9jb250ZXh0LT5jb250ZXh0QXR0cmlidXRlcygpOworICAgICAg
ICBsYXllci5zZXRPcGFxdWUoIWF0dHJpYnV0ZXMuYWxwaGEpOworICAgICAgICBsYXllci5zZXRD
b250ZW50c1NjYWxlKGF0dHJpYnV0ZXMuZGV2aWNlUGl4ZWxSYXRpbyk7CisgICAgfQorICAgIHZv
aWQgZGlzcGxheShQbGF0Zm9ybUNBTGF5ZXImIGxheWVyKSBmaW5hbAorICAgIHsKKyAgICAgICAg
aWYgKGF1dG8gZGlzcGxheUJ1ZmZlciA9IG1fY29udGV4dC0+ZGlzcGxheUJ1ZmZlcigpKQorICAg
ICAgICAgICAgbGF5ZXIuc2V0Q29udGVudHMoZGlzcGxheUJ1ZmZlci0+YXNMYXllckNvbnRlbnRz
KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsYXllci5zZXRDb250ZW50cyhudWxscHRy
KTsKKyAgICB9CisgICAgR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVu
dGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBH
cmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb246OkJvdHRvbVVw
OworICAgIH0KK3ByaXZhdGU6CisgICAgRGlzcGxheUJ1ZmZlckNvbnRlbnRzUHJvdmlkZXIoUmVm
PFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY29udGV4dCkKKyAgICAgICAgOiBt
X2NvbnRleHQoV1RGTW92ZShjb250ZXh0KSkKKyAgICB7CisgICAgfQorICAgIFJlZjxXZWJQcm9j
ZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IG1fY29udGV4dDsKK307CisKK1JlZlB0cjxXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+IFdlYlByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpCiB7Ci0g
ICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnByZXBhcmVGb3JEaXNwbGF5KCk7Ci0gICAgYXV0
byBzdXJmYWNlID0gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpLnN1cmZhY2UuZ2V0KCk7Ci0g
ICAgaWYgKCFzdXJmYWNlKQotICAgICAgICByZXR1cm47Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TCi0gICAgW21fd2ViR0xMYXllciBzZXRDb250ZW50czpzdXJmYWNlLT5hc0xheWVy
Q29udGVudHMoKV07Ci0gICAgW21fd2ViR0xMYXllciBzZXROZWVkc0Rpc3BsYXldOwotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICByZXR1cm4gRGlzcGxheUJ1ZmZlckNvbnRlbnRz
UHJvdmlkZXI6OmNyZWF0ZSgqdGhpcyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KaW5kZXggNDA3MjcwNDNmZDEyZDYy
YTRjYmQ3ZGJiNTllNDExNjBhMjhkZGYyMi4uMzI2ZjA0MzJiNDg2MjIxOTYyYzc1ZWZjNmRlMDFl
ZDhhZGM5ZTY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvQ1ZVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvQ1ZVdGlsaXRpZXMubW0KQEAgLTI2LDcgKzI2LDkgQEAKICNpbXBvcnQgImNvbmZpZy5oIgog
I2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKIAorI2ltcG9ydCAiQ29sb3JTcGFjZUNHLmgiCiAjaW1w
b3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4K
ICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQppbmRl
eCA1NTQ4MGI1MmI5MWUwMjg2MmZmMGJmYzEzMDZkYTgwZDYwM2M1NDJjLi4zYjIzYTQwN2RiMGYy
NDliNjQ2ZmE3MGRhOTU3MmI4ODg0NDJmZTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCkBAIC0xMTMsOCArMTEzLDEyIEBACiAgICAg
ICAgIFdlYlRocmVhZExvY2soKTsKICNlbmRpZgogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgW3N1cGVyIGRpc3BsYXldOwogICAgIGF1dG8gbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsK
KyAgICBib29sIGRpZERlbGVnYXRlRGlzcGxheSA9IGZhbHNlOworICAgIGlmIChsYXllciAmJiBs
YXllci0+b3duZXIoKSkKKyAgICAgICAgZGlkRGVsZWdhdGVEaXNwbGF5ID0gbGF5ZXItPm93bmVy
KCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlzcGxheShsYXllci5nZXQoKSk7CisgICAgaWYgKCFk
aWREZWxlZ2F0ZURpc3BsYXkpCisgICAgICAgIFtzdXBlciBkaXNwbGF5XTsKICAgICBpZiAobGF5
ZXIgJiYgbGF5ZXItPm93bmVyKCkpCiAgICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNB
TGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wuaAppbmRleCBmZTEzZWFmZjRkNzNmYTY3MDE2MzYwZThkMmI4Y2Y4ZDMzYWM4
ZTUzLi4zZDM0MWJlNzM5MDI0Yzg1NTAxM2M5ODkwN2MyMWYwZWM4NzdmZmI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtNjYsOCArNjYsNiBAQAogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShDT0NPQSkKLU9CSkNfQ0xBU1MgQ0FMYXllcjsKLU9CSkNfQ0xBU1MgV2ViR0xM
YXllcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdM
RTsKIH0KQEAgLTEwNCw3ICsxMDIsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywg
SG9zdFdpbmRvdyopOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCk7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBsYXRm
b3JtRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheU9iajsgfQogICAgIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0R0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25zdCB7IHJldHVybiBt
X2NvbmZpZ09iajsgfQogICAgIHN0YXRpYyBHQ0dMZW51bSBkcmF3aW5nQnVmZmVyVGV4dHVyZVRh
cmdldFF1ZXJ5Rm9yRHJhd2luZ1RhcmdldChHQ0dMZW51bSBkcmF3aW5nVGFyZ2V0KTsKQEAgLTE0
NSw2ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB0ZXhJbWFnZTJEUmVzb3VyY2VTYWZlKEdD
R0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
R0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGludCBib3JkZXIsIEdDR0xlbnVt
IGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTGludCBhbGlnbm1lbnQgPSA0KTsKICNlbmRpZgog
CisgICAgLy8gR3JhcGhpY3NDb250ZXh0R0wgb3ZlcnJpZGVzLgogICAgIGJvb2wgaXNHTEVTMkNv
bXBsaWFudCgpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NjQsNiAr
NDYyLDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFJlZlB0cjxN
ZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSBmaW5hbDsK
ICNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZl
cigpOworICAgIHZvaWQgbWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOworI2VuZGlmCiAKICAgICBz
dGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiByZWFkUmVuZGVyaW5nUmVzdWx0c0ZvclBhaW50aW5n
KCk7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcmVhZENvbXBvc2l0ZWRSZXN1bHRz
Rm9yUGFpbnRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggYTc4NGRiYmI4MzdmN2I3ZTQxN2IyNjliNmI3MGJjOTI3MjM0ZDUx
ZC4uODNlOWJiZTY2NjIyNWMxODc3ZDZkZGEzOTBlZDE0NjM1MjU0NDVkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwODksNyAr
MTA4OSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKGNv
bnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzCiAgICAgZWxzZSBpZiAocmVuZGVyZXIo
KS5pc0NhbnZhcygpICYmIGNhbnZhc0NvbXBvc2l0aW5nU3RyYXRlZ3kocmVuZGVyZXIoKSkgPT0g
Q2FudmFzQXNMYXllckNvbnRlbnRzKSB7CiAgICAgICAgIGNvbnN0IEhUTUxDYW52YXNFbGVtZW50
KiBjYW52YXMgPSBkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4ocmVuZGVyZXIoKS5lbGVtZW50
KCkpOwogICAgICAgICBpZiAoYXV0byogY29udGV4dCA9IGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4
dCgpKQotICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvUGxhdGZvcm1M
YXllcihjb250ZXh0LT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5
ZXJQdXJwb3NlOjpDYW52YXMpOworICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250
ZW50c0Zyb21EaXNwbGF5RGVsZWdhdGUoY29udGV4dC0+bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxl
Z2F0ZSgpLCBHcmFwaGljc0xheWVyOjpDb250ZW50c0xheWVyUHVycG9zZTo6Q2FudmFzKTsKIAog
ICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0wuaAppbmRleCBlNzI5YTNhNzE1NDUyYzNhZDQ2NGM3Y2M5ZWQ1YzBlY2IzYjEx
ZTA4Li42MzBlMzdhMDA5OGIyODIyOWFkNTI5YmY5NzY2MGE2M2RhNzBmZWU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTC5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29udGV4dDsKICAgICB9Ci0KKyAg
ICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiBs
YXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdlYkNvcmU6OklPU3VyZmFjZSogZGlzcGxheUJ1ZmZl
cigpIHsgcmV0dXJuIG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKS5zdXJmYWNlLmdldCgpOyB9
CiAgICAgdm9pZCBtYXJrRGlzcGxheUJ1ZmZlckluVXNlKCkgeyByZXR1cm4gbV9zd2FwQ2hhaW4u
bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NDMxZDQwYjA1NmE1YWRkMmM0MWYxMWEzNWQw
NGE1NGVmMTI4MDMxLi43NDNiN2JiMDAxZTQ0ODgyMjhiNGNlMjc1OTI1ZDE2NGYzZjU3ZDExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQ1NzUsNiArNDU3NSw3IEBACiAJCTdCNDgzRjFDMjVDRERBOUIwMDEyMDQ4NiAvKiBNZXNzYWdl
UmVjZWl2ZVF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VS
ZWNlaXZlUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I0ODNGMUQyNUNE
REE5QjAwMTIwNDg2IC8qIE1lc3NhZ2VSZWNlaXZlUXVldWVNYXAuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVRdWV1ZU1hcC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNDgzRjFFMjVDRERBOUIwMDEyMDQ4NiAvKiBNZXNz
YWdlUmVjZWl2ZVF1ZXVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNz
YWdlUmVjZWl2ZVF1ZXVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjUzMDBF
NzI3MTgyMTdBMDAwODIwODYgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjY0QzBCNjI1NEM1QzI1MDAwNkI0
QUYgLyogR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBo
aWNzQ29udGV4dEdMSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjczMTIzMTI1Q0M4NTIzMDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzMxMjMyMjVDQzg1MjMwMDNCMjc5NiAvKiBT
dHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlDb2NvYS5tbQppbmRleCAxNDI0ZWY4YTBmM2JkOWY2NTY2OWZmN2U4NzE2MjcyZjlh
NTVhZWI1Li4yNjUzOWM5MDM3NmM5OWViNmFkZWIyYzFjM2U1ZDEyNjBhY2NjNjI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5t
bQpAQCAtMzIsMTIgKzMyLDEwIEBACiAjaW1wb3J0ICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTE1l
c3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NWVXRp
bGl0aWVzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg+CisjaW1wb3J0
IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZP
YmpDLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkdMTGF5ZXIuaD4KLSNpbXBvcnQgPHd0Zi9CbG9j
a09iakNFeGNlcHRpb25zLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDUsMTEgKzQzLDEwIEBAIG5hbWVzcGFjZSB7CiAK
IGNsYXNzIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYSBmaW5hbCA6IHB1YmxpYyBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IHsKIHB1YmxpYzoKLSAgICBib29sIGlzVmFsaWQo
KSBjb25zdCB7IHJldHVybiBtX3dlYkdMTGF5ZXI7IH0KICAgICBXZWJDb3JlOjpJT1N1cmZhY2Uq
IGRpc3BsYXlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlCdWZmZXIuZ2V0KCk7IH0K
IAogICAgIC8vIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkgb3ZlcnJpZGVzLgotICAgIFBs
YXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3dlYkdM
TGF5ZXIuZ2V0KCk7IH0KKyAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRz
RGlzcGxheURlbGVnYXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkgZmluYWw7CiAg
ICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOwogI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEFWRk9VTkRBVElPTikKICAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENWKiBhc0NW
KCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQpAQCAtNTksNyArNTYsNiBAQCBwdWJsaWM6CiAj
ZW5kaWYKIHByaXZhdGU6CiAgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hKEdQ
VVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwotICAgIFJldGFpblB0cjxXZWJH
TExheWVyPiBtX3dlYkdMTGF5ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3Vy
ZmFjZT4gbV9kaXNwbGF5QnVmZmVyOwogICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5OwogfTsKQEAgLTY3LDEzICs2Myw0NCBAQCBwcml2YXRlOgogUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUNvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29j
b2EoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCiAgICAgOiBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5KGdwdVByb2Nlc3NDb25uZWN0aW9uLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdC
YWNrZW5kKQogewotICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIG1fd2ViR0xMYXllciA9IGFkb3B0TlMoW1tX
ZWJHTExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBpeGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4
ZWxSYXRpbyBjb250ZW50c09wYXF1ZTohYXR0cnMuYWxwaGFdKTsKLSNpZm5kZWYgTkRFQlVHCi0g
ICAgW21fd2ViR0xMYXllciBzZXROYW1lOkAiV2ViR0wgTGF5ZXIiXTsKLSNlbmRpZgotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKK30KKworY2xhc3MgRGlzcGxheUJ1ZmZlckNvbnRlbnRz
UHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpc3BsYXlCdWZmZXJDb250
ZW50c1Byb3ZpZGVyPiBjcmVhdGUoUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2Nv
YT4gY29udGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpc3BsYXlC
dWZmZXJDb250ZW50c1Byb3ZpZGVyKFdURk1vdmUoY29udGV4dCkpKTsKKyAgICB9CisgICAgLy8g
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIG92ZXJyaWRlcy4K
KyAgICB2b2lkIHdpbGxEZWxlZ2F0ZURpc3BsYXkoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyJiBs
YXllcikgZmluYWwKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBtb3ZlIHRoZXNlIHRvIGNhbGxl
ci4KKyAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gbV9jb250ZXh0LT5jb250ZXh0QXR0cmlidXRl
cygpOworICAgICAgICBsYXllci5zZXRPcGFxdWUoIWF0dHJpYnV0ZXMuYWxwaGEpOworICAgICAg
ICBsYXllci5zZXRDb250ZW50c1NjYWxlKGF0dHJpYnV0ZXMuZGV2aWNlUGl4ZWxSYXRpbyk7Cisg
ICAgfQorICAgIHZvaWQgZGlzcGxheShXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXImIGxheWVyKSBm
aW5hbAorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gZGlzcGxheUJ1ZmZlciA9IG1fY29udGV4dC0+
ZGlzcGxheUJ1ZmZlcigpKQorICAgICAgICAgICAgbGF5ZXIuc2V0Q29udGVudHMoZGlzcGxheUJ1
ZmZlci0+YXNMYXllckNvbnRlbnRzKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsYXll
ci5zZXRDb250ZW50cyhudWxscHRyKTsKKyAgICB9CisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Qg
ZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDb21w
b3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb246OkJvdHRvbVVwOworICAgIH0KK3ByaXZhdGU6
CisgICAgRGlzcGxheUJ1ZmZlckNvbnRlbnRzUHJvdmlkZXIoUmVmPFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYT4gY29udGV4dCkKKyAgICAgICAgOiBtX2NvbnRleHQoV1RGTW92ZShj
b250ZXh0KSkKKyAgICB7CisgICAgfQorICAgIFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5Q29jb2E+IG1fY29udGV4dDsKK307CisKK1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q29udGVudHNEaXNwbGF5RGVsZWdhdGU+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2Nv
YTo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpCit7CisgICAgcmV0dXJuIERpc3BsYXlC
dWZmZXJDb250ZW50c1Byb3ZpZGVyOjpjcmVhdGUoKnRoaXMpOwogfQogCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKQEAgLTEwNiw5ICsxMzMsNiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoKQogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIG1fZGlzcGxheUJ1ZmZlciA9IFdURk1vdmUoZGlzcGxheUJ1ZmZlcik7Ci0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fd2ViR0xMYXllciBzZXRDb250ZW50czpt
X2Rpc3BsYXlCdWZmZXItPmFzTGF5ZXJDb250ZW50cygpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiAgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOwogfQogCkBAIC0xMTYsMTAgKzE0
MCw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hOjpwcmVwYXJlRm9y
RGlzcGxheSgpCiAKIFJlZlB0cjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5PiBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVhdGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBy
ZW5kZXJpbmdCYWNrZW5kKQogewotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgYXR0cmlidXRlcywgcmVuZGVyaW5nQmFja2VuZCkp
OwotICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICByZXR1cm4gY29udGV4dDsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlDb2NvYShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNrZW5kKSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5k
ZXggNWQwZWE4YmRiOTFhYjE0MTg3NTAwNDFiNzllZDVmZWFlNzcyM2JhMC4uODc4YzFhMzZkNzYy
MjlhZThhOWMzY2QzYjUzYmVkOGI2N2ZiNmQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTUxLDcgKzUxLDEwIEBAIFJlZjxQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKExheWVyVHlwZSBs
YXllclR5cGUsIFBsCiAKICAgICBpZiAobGF5ZXJUeXBlID09IExheWVyVHlwZVRpbGVkQmFja2lu
Z0xheWVyIHx8ICBsYXllclR5cGUgPT0gTGF5ZXJUeXBlUGFnZVRpbGVkQmFja2luZ0xheWVyKQog
ICAgICAgICBsYXllciA9IGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJh
Y2tpbmcobGF5ZXJUeXBlLCBvd25lciwgY29udGV4dCkpOwotICAgIGVsc2UKKyAgICBlbHNlIGlm
IChsYXllclR5cGUgPT0gTGF5ZXJUeXBlQ29udGVudHNQcm92aWRlZExheWVyKSB7CisgICAgICAg
IC8vIEZJWE1FOiBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBvbmNlIHByb3BlcnRpZXMgY29udGFpbiBm
aWVsZHMgbmVlZGVkIGZvciBDb250ZW50c1Byb3ZpZGVkLgorICAgICAgICBsYXllciA9IFBsYXRm
b3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6Y3JlYXRlQ29udGVudHNQcm92aWRlZExheWVyKG93bmVy
LCBjb250ZXh0KTsKKyAgICB9IGVsc2UKICAgICAgICAgbGF5ZXIgPSBhZG9wdFJlZihuZXcgUGxh
dGZvcm1DQUxheWVyUmVtb3RlKGxheWVyVHlwZSwgb3duZXIsIGNvbnRleHQpKTsKIAogICAgIGNv
bnRleHQubGF5ZXJEaWRFbnRlckNvbnRleHQoKmxheWVyLCBsYXllclR5cGUpOwpAQCAtMTczLDE0
ICsxNzYsMTYgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJh
bnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYgY28KICAgICBBU1NFUlQoIW1fcHJvcGVy
dGllcy5iYWNraW5nU3RvcmUgfHwgb3duZXIoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTigmY29udGV4dCA9PSBtX2NvbnRleHQpOwogICAgIAotICAgIGlm
IChtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlICYmICghb3duZXIoKSB8fCAhb3duZXIoKS0+cGxh
dGZvcm1DQUxheWVyRHJhd3NDb250ZW50KCkpKSB7Ci0gICAgICAgIG1fcHJvcGVydGllcy5iYWNr
aW5nU3RvcmUgPSBudWxscHRyOwotICAgICAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXND
aGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCYWNraW5nU3RvcmVDaGFuZ2VkKTsK
KyAgICBpZiAob3duZXIoKSAmJiBvd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpc3BsYXko
bV9sYXllcikpCisgICAgICAgIG93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxh
eShtX2xheWVyKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKG1fcHJvcGVydGllcy5iYWNraW5n
U3RvcmUgJiYgKCFvd25lcigpIHx8ICFvd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJEcmF3c0NvbnRl
bnQoKSkpIHsKKyAgICAgICAgICAgIG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUgPSBudWxscHRy
OworICAgICAgICAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6QmFja2luZ1N0b3JlQ2hhbmdlZCk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUgJiYgbV9wcm9wZXJ0aWVzLmJhY2tp
bmdTdG9yZUF0dGFjaGVkICYmIG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUtPmRpc3BsYXkoKSkK
KyAgICAgICAgICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OkJhY2tpbmdTdG9yZUNoYW5nZWQpOwogICAgIH0KLQotICAgIGlm
IChtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlICYmIG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmVB
dHRhY2hlZCAmJiBtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlLT5kaXNwbGF5KCkpCi0gICAgICAg
IG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OkJhY2tpbmdTdG9yZUNoYW5nZWQpOwotCiAgICAgaWYgKG1fcHJvcGVydGllcy5jaGFu
Z2VkUHJvcGVydGllcykgewogICAgICAgICBpZiAobV9wcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0
aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNoaWxkcmVuQ2hhbmdlZCkgewogICAg
ICAgICAgICAgbV9wcm9wZXJ0aWVzLmNoaWxkcmVuLnJlc2l6ZShtX2NoaWxkcmVuLnNpemUoKSk7
CkBAIC02ODMsNiArNjg4LDcgQEAgQ0ZUeXBlUmVmIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y29u
dGVudHMoKSBjb25zdAogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0Q29udGVudHMo
Q0ZUeXBlUmVmIHZhbHVlKQogeworICAgIC8vIFRPRE86IHNldCB2YWx1ZSB0byBtX3Byb3BlcnRp
ZXMuYmFja2luZ1N0b3JlLgogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0Q29u
dGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgKaW5kZXggZTYyNDdkYWE2ZGIwMGUy
NTA4MjRmNjhjOTE4NTY1NzEwNjAzNDYzNC4uOWMwOTFkMThlYjhhYTNkN2MyYWM1YzEzNTUxMTFk
YWQ0ZmQ3MTMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVDdXN0b20uaApAQCAtMzYsNiArMzYsNyBAQCBjbGFzcyBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b20gZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1DQUxheWVyUmVtb3RlIHsKICAgICBm
cmllbmQgY2xhc3MgUGxhdGZvcm1DQUxheWVyUmVtb3RlOwogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBjcmVhdGUoUGxhdGZvcm1MYXllciAqLCBXZWJDb3Jl
OjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVDb250ZXh0Jik7CisgICAg
c3RhdGljIFJlZjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IGNyZWF0ZUNvbnRlbnRzUHJvdmlkZWRM
YXllcihXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVDb250
ZXh0Jik7CiAKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20u
bW0KaW5kZXggMjdiMGZjMDA1MTg1ZGFkNDViNmNhM2I3OGQ4MzAyMTMwOGU0OGY0ZS4uY2VkOGUz
MzNlYzA0ZjgzMjJmY2M0YWFjMTNhN2VkZDEwNTczM2MxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJl
bW90ZUN1c3RvbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCkBAIC0zNCwxNSArMzQs
MzUgQEAKICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNBLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtQ0FMYXllckNvY29hLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVDQUxh
eWVyRXh0cmFzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkxheWVyLmg+CiAjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CiAKICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5o
PgogCitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBwbGF0Zm9ybUNBTGF5ZXJQb2ludGVyID0gQCJX
S1BsYXRmb3JtQ0FMYXllciI7CisKK0BpbnRlcmZhY2UgV0tDb250ZW50c1Byb3ZpZGVkTGF5ZXIg
OiBDQUxheWVyCitAZW5kCitAaW1wbGVtZW50YXRpb24gV0tDb250ZW50c1Byb3ZpZGVkTGF5ZXIK
Ky0gKGlkKWluaXQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIHJldHVybiBzZWxm
OworfQorLSAodm9pZClkaXNwbGF5Cit7CisgICAgTlNWYWx1ZSogbGF5ZXJQb2ludGVyID0gW3Nl
bGYgdmFsdWVGb3JLZXk6cGxhdGZvcm1DQUxheWVyUG9pbnRlcl07CisgICAgaWYgKCFsYXllclBv
aW50ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90
ZUN1c3RvbSogbGF5ZXIgPSByZWludGVycHJldF9jYXN0PFdlYktpdDo6UGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tKj4oW2xheWVyUG9pbnRlciBwb2ludGVyVmFsdWVdKTsKKyAgICBpZiAobGF5
ZXIgJiYgbGF5ZXItPm93bmVyKCkpCisgICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNB
TGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIpOworfQorQGVuZAorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBw
bGF0Zm9ybUNBTGF5ZXJQb2ludGVyID0gQCJXS1BsYXRmb3JtQ0FMYXllciI7Ci0KIFJlZjxQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU+IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6Y3JlYXRlKFBs
YXRmb3JtTGF5ZXIgKnBsYXRmb3JtTGF5ZXIsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIs
IFJlbW90ZUxheWVyVHJlZUNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgYXV0byBsYXllciA9IGFk
b3B0UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKFBsYXRmb3JtQ0FMYXllckNv
Y29hOjpsYXllclR5cGVGb3JQbGF0Zm9ybUxheWVyKHBsYXRmb3JtTGF5ZXIpLCBwbGF0Zm9ybUxh
eWVyLCBvd25lciwgY29udGV4dCkpOwpAQCAtNTAsNiArNzAsMTUgQEAgUmVmPFBsYXRmb3JtQ0FM
YXllclJlbW90ZT4gUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpjcmVhdGUoUGxhdGZvcm1M
YXllciAqcGwKICAgICByZXR1cm4gV1RGTW92ZShsYXllcik7CiB9CiAKK1JlZjxQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGU+IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6Y3JlYXRlQ29udGVudHNQ
cm92aWRlZExheWVyKFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQmIGNvbnRleHQpCit7CisgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBiZSByZW1vdmVk
IG9uY2UgcHJvcGVydGllcyBjb250YWluIGZpZWxkcyBuZWVkZWQgZm9yIENvbnRlbnRzUHJvdmlk
ZWQuCisgICAgYXV0byBwbGF0Zm9ybUxheWVyID0gYWRvcHROUyhbW1dLQ29udGVudHNQcm92aWRl
ZExheWVyIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBsYXllciA9IGFkb3B0UmVmKCpuZXcgUGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKExheWVyVHlwZUNvbnRlbnRzUHJvdmlkZWRMYXllciwg
cGxhdGZvcm1MYXllci5nZXQoKSwgb3duZXIsIGNvbnRleHQpKTsKKyAgICBjb250ZXh0LmxheWVy
RGlkRW50ZXJDb250ZXh0KGxheWVyLmdldCgpLCBsYXllci0+bGF5ZXJUeXBlKCkpOworICAgIHJl
dHVybiBXVEZNb3ZlKGxheWVyKTsKK30KKwogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1M
YXllciAqIGN1c3RvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVM
YXllclRyZWVDb250ZXh0JiBjb250ZXh0KQogICAgIDogUGxhdGZvcm1DQUxheWVyUmVtb3RlKGxh
eWVyVHlwZSwgb3duZXIsIGNvbnRleHQpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTZiZGRlYzlmM2RjY2U0ZjQzZTI0YjgzN2YwY2M2Yzc4
OTNmM2MxMS4uYTNkZWY2ZmM0MmIyNmMxOGY0YTg2ODAzMDU2OTc1NWU4ODg2NWIyYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDIxLTExLTE2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0IHNob3VsZCBub3QgYmUgdGllZCB0byBQ
bGF0Zm9ybUxheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzMxMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgQWRkIGEgZHVtbXkgb3ZlcnJpZGUgb2YgdGhl
IG5ldyBtZW1iZXIgZnVuY3Rpb24gbGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS4KKwogMjAy
MS0xMS0xMSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IElPU3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0
b3JzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
VGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0K
aW5kZXggOGM4ZWE4ZmQ4YmUzMWIwZGZjYTgwN2ViNjVkMGUyNzE4MWI4ZGQ5Yy4uZTEzNzhkMmNj
OWVlZmZmNTIxYmIwODI1NjJmMDkwYTY3NmFhYTljZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMzUsMTMgKzM1LDE0IEBAIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgewotY2xhc3MgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgOiBwdWJsaWMgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgeworY2xhc3MgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wg
ZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgewogcHVibGljOgogICAgIHN0
YXRpYyBSZWZQdHI8VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICB7CiAgICAgICAgIGF1dG8gY29u
dGV4dCA9IGFkb3B0UmVmKCpuZXcgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92
ZShhdHRyaWJ1dGVzKSwgeyB9KSk7CiAgICAgICAgIHJldHVybiBjb250ZXh0OwogICAgIH0KKyAg
ICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiBs
YXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQog
cHJpdmF0ZToKICAgICBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gcmVzb3Vy
Y2VPd25lcikKICAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJp
YnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>