<?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>240866</bug_id>
          
          <creation_ts>2022-05-24 05:13:07 -0700</creation_ts>
          <short_desc>Support multiple options for specifying the result native image out of  ImageBuffer::copyNativeImage()</short_desc>
          <delta_ts>2022-05-31 05:14:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>Safari 15</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>240639</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1871463</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-05-24 05:13:07 -0700</bug_when>
    <thetext>Support multiple options for specifying the result native image out of  ImageBuffer::copyNativeImage()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871465</commentid>
    <comment_count>1</comment_count>
      <attachid>459716</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-05-24 05:21:43 -0700</bug_when>
    <thetext>Created attachment 459716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871466</commentid>
    <comment_count>2</comment_count>
      <attachid>459717</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-05-24 05:25:53 -0700</bug_when>
    <thetext>Created attachment 459717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872936</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-31 05:14:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/94145177&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459716</attachid>
            <date>2022-05-24 05:21:43 -0700</date>
            <delta_ts>2022-05-24 05:25:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240866-20220524152141.patch</filename>
            <type>text/plain</type>
            <size>55969</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">RnJvbSAzMDQxYzNhNWUwYjU1ZDBjNmYwMTIwZDEwMGY1YjNjMTVkNDQ0ZjU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLaW1tbyBLaW5udW5lbiA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAyNCBNYXkgMjAyMiAxNToxMDozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIFN1
cHBvcnQgbXVsdGlwbGUgb3B0aW9ucyBmb3Igc3BlY2lmeWluZyB0aGUgcmVzdWx0IG5hdGl2ZQog
aW1hZ2Ugb3V0IG9mICBJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2ZUltYWdlKCkKIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA4NjYKClJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgoKUmVuYW1lIGVudW0gQmFja2luZ1N0b3JlQ29weSB0byBCYWNraW5nU3RvcmVPcHRp
b25zID0gT3B0aW9uU2V0PEJhY2tpbmdTdG9yZU9wdGlvbj4uClRoaXMgd2F5IG5ldyBvcHRpb25z
IGNhbiBjb25maWd1cmUgaG93IHRoZSBJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2ZUltYWdlIHNob3Vs
ZCBjb25maWd1cmUKdGhlIHJlc3VsdGluZyBOYXRpdmVJbWFnZS4gVGhpcyB3YXkgdmFyaW91cyB1
c2UtY2FzZXMsIHN1Y2ggYXMgZGF0YSBVUkwgZW5jb2RpbmcKY2FuIHVzZSB0aGUgZ2VuZXJhbCBw
dXJwb3NlIGNvcHlOYXRpdmVJbWFnZSBpbnN0ZWFkIG9mIG5lZWRpbmcgaW5kaXZpZHVhbCBJbWFn
ZUJ1ZmZlciBtZXRob2RzLgoKVG8gYmUgdXNlZCBpbiBzY2VuYXJpbyB3aGVyZSBpbnN0ZWFkIG9m
IGNhbGxpbmcKIFN0cmluZyBkID0gaW1hZ2VCdWZmZXItPnRvRGF0YVVSTCgpOwpXZSB3b3VsZCBj
YWxsCiBTdHJpbmcgZCA9IGRhdGFVUkwoaW1hZ2VCdWZmZXItPmNvcHlOYXRpdmVJbWFnZSh7IEJh
Y2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlLCBCYWNraW5nU3RvcmVPcHRpb246OkltYWdlRm9y
bWF0UkdCWCB9KTsKClRoZSBmdXR1cmUgQmFja2luZ1N0b3JlT3B0aW9uOjpJbWFnZUZvcm1hdFJH
Qlggd291bGQgYmUgQ0ctc3BlY2lmaWMgZmxhZyBmb3IgQ0dJbWFnZS4gVGhlIHBsYXRmb3JtLXNw
ZWNpZmljCmVuY29kaW5nIG5lZWRzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBpbWFnZSBmb3JtYXQg
aW4gc29tZSBjYXNlcy4KCkNhbiBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8gYWxzbyBjb21iaW5l
IFByZXNlcnZlUmVzb2x1dGlvbiwgc28gdGhhdCBmdXJ0aGVyIGNhbGxzIHN1Y2ggYXMgSW1hZ2VC
dWZmZXI6OmNvcHlJbWFnZSgpIGNhbgpiZSBpbXBsZW1lbnRlZCBvbiB0b3Agb2YgSW1hZ2VCdWZm
ZXI6OmNvcHlOYXRpdmVJbWFnZSgpLgoKKiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyOgoq
IFNvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwOgooV2ViQ29yZTo6Q3Vz
dG9tUGFpbnRDYW52YXM6OmNvcGllZEltYWdlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojpjb3Bp
ZWRJbWFnZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3Bw
OgooV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpjb3BpZWRJbWFnZSBjb25zdCk6CiogU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CihXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZVNvdXJjZUhlbHBlcik6CihX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3SW1hZ2VJbnRvQnVmZmVyKToK
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZpZGVvRnJhbWVUb0ltYWdlKToK
KiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6
CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5o
OgooV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2ZUltYWdlKToKKFdlYkNv
cmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNvcHlJbWFnZSk6CiogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29weUltYWdlT3B0aW9ucy5oOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CihXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y29weU5h
dGl2ZUltYWdlKToKKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjb3B5SW1hZ2UpOgoqIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHA6CihXZWJDb3Jl
OjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnNpbmtJbnRvTmF0aXZlSW1hZ2UpOgooV2ViQ29yZTo6SW1h
Z2VCdWZmZXJCYWNrZW5kOjpzaW5rSW50b0ltYWdlKToKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5jcHA6CihXZWJDb3JlOjpTb3VyY2VJbWFnZTo6bmF0aXZl
SW1hZ2UgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Nh
aXJvT3BlcmF0aW9ucy5jcHA6CihXZWJDb3JlOjpDYWlybzo6ZHJhd1NoYWRvd0xheWVyQnVmZmVy
KToKKFdlYkNvcmU6OkNhaXJvOjpkcmF3U2hhZG93SW1hZ2UpOgooV2ViQ29yZTo6Q2Fpcm86OmZp
bGxTaGFkb3dCdWZmZXIpOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dENhaXJv
OjpjbGlwVG9JbWFnZUJ1ZmZlcik6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwOgooV2ViQ29yZTo6SW1hZ2VCdWZmZXJD
YWlyb0JhY2tlbmQ6OmNvcHlJbWFnZSBjb25zdCk6CihXZWJDb3JlOjpJbWFnZUJ1ZmZlckNhaXJv
QmFja2VuZDo6Y2xpcFRvTWFzayk6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaDoKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuY3BwOgooV2Vi
Q29yZTo6SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UgY29u
c3QpOgooV2ViQ29yZTo6SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kOjpjYWlyb1N1cmZh
Y2VDb2VyY2VUb0ltYWdlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuaDoKKiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHA6CihXZWJDb3Jl
OjpJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29weUltYWdlIGNvbnN0KToKKFdlYkNvcmU6OkltYWdl
QnVmZmVyQ0dCYWNrZW5kOjpjbGlwVG9NYXNrKToKKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCYWNr
ZW5kOjpjb3B5Q0dJbWFnZUZvckVuY29kaW5nIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcDoKKFdl
YkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UgY29uc3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kLmg6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZDo6Y29weU5hdGl2ZUltYWdlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlv
blJlY29yZGVyLmNwcDoKKE5pY29zaWE6OkNhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdJbWFn
ZUJ1ZmZlcik6CihOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcik6CihOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpjbGlwVG9JbWFn
ZUJ1ZmZlcik6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1h
cFRleHR1cmUuY3BwOgooV2ViQ29yZTo6Qml0bWFwVGV4dHVyZTo6dXBkYXRlQ29udGVudHMpOgoq
IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcDoKKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y2FjaGVOYXRpdmVJbWFnZVdp
dGhRdWFsaWZpZWRJZGVudGlmaWVyKToKKiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZC5jcHA6CihXZWJLaXQ6OkNHRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZSBjb25zdCk6CiogU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ckJhY2tlbmQuaDoKKiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaDoKKFdl
YktpdDo6U2hhcmVhYmxlQml0bWFwOjpjcmVhdGVQbGF0Zm9ybUltYWdlKToKKiBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJJbWFnZS5jcHA6CihXZWJLaXQ6OldlYkltYWdlOjpjb3B5TmF0aXZlSW1h
Z2UgY29uc3QpOgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkltYWdlLmg6CihXZWJLaXQ6Oldl
YkltYWdlOjpjb3B5TmF0aXZlSW1hZ2UpOgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJl
YWJsZUJpdG1hcENHLmNwcDoKKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpjcmVhdGVQbGF0Zm9y
bUltYWdlKToKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50
Lm1tOgooLVtXS1RleHRGaW5kZXJDbGllbnQgZGlkR2V0SW1hZ2VGb3JNYXRjaFJlc3VsdDpdKToK
KiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVh
YmxlQml0bWFwQmFja2VuZC5jcHA6CihXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZDo6Y29weU5hdGl2ZUltYWdlIGNvbnN0KToKKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2UgY29uc3QpOgoqIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmg6
CiogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5Lmg6CihXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNvcHlOYXRpdmVJbWFn
ZSk6CihXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNvcHlJbWFnZSk6CiogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlP
U3VyZmFjZUJhY2tlbmQuY3BwOgooV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJh
Y2tlbmQ6OmNvcHlOYXRpdmVJbWFnZSBjb25zdCk6CihXZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3Rl
SU9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlIGNvbnN0KToKKiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2Vu
ZC5oOgoqIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKFdlYktpdDo6SW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UgY29u
c3QpOgoqIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmg6CiogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2Rl
SGFuZGxlLm1tOgooLVtXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIHJlbmRlcmVkSW1hZ2VX
aXRoT3B0aW9uczp3aWR0aDpdKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyICAg
ICAgICAgICAgICAgICAgfCAgNCArLS0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRD
YW52YXMuY3BwICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcCAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMu
Y3BwICAgICAgIHwgIDIgKy0KIC4uLi9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcCB8IDEwICsrKy0tLQogLi4uL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaCAgIHwgIDIgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVm
ZmVyLmggICB8ICA4ICsrLS0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvQ29weUltYWdlT3B0aW9u
cy5oICAgICAgfCAgOCArKystLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaCAgIHwgIDQgKy0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNr
ZW5kLmNwcCAgfCAgNCArLS0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tl
bmQuaCAgICB8ICA0ICstLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlSW1h
Z2UuY3BwIHwgIDIgKy0KIC4uLi9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwICAg
ICAgICB8ICA2ICsrLS0KIC4uLi9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5j
cHAgICB8ICAyICstCiAuLi4vY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwICAgICAg
ICAgfCAgNCArLS0KIC4uLi9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5o
ICB8ICAyICstCiAuLi4vY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcCAg
fCAzNSArKysrKysrKy0tLS0tLS0tLS0tCiAuLi4vY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZh
Y2VCYWNrZW5kLmggICAgfCAgMiArLQogLi4uL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNr
ZW5kLmNwcCAgICAgIHwgMTAgKysrLS0tCiAuLi4vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQuaCAgICAgICAgfCAgMiArLQogLi4uL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5k
LmNwcCAgICAgICAgIHwgMTIgKystLS0tLQogLi4uL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dC
aXRtYXBCYWNrZW5kLmggIHwgIDIgKy0KIC4uLi9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQuY3BwICAgICAgICB8ICAyICstCiAuLi4vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kLmggfCAgMiArLQogLi4uL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29y
ZGVyLmNwcCAgIHwgIDYgKystLQogLi4uL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNw
cCAgICAgICAgIHwgIDIgKy0KIC4uLi9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cCAgICAgICB8ICAyICstCiAuLi4vQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZC5jcHAg
ICAgICAgfCAgMiArLQogLi4uL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuaCAgICAg
ICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oICAgICAg
ICB8ICA0ICstLQogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSW1hZ2UuY3BwICAgICAgICAgICAg
IHwgIDIgKy0KIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkltYWdlLmggICAgICAgICAgICAgICB8
ICAyICstCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAgfCAg
NCArLS0KIC4uLi9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbSAgICAgICB8ICAy
ICstCiAuLi4vSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcCAgICAgfCAgNCAr
LS0KIC4uLi9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAgICAgICB8ICA0ICst
LQogLi4uL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggICAgIHwgIDggKyst
LS0KIC4uLi9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuY3BwICAgICB8ICA0ICst
LQogLi4uL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oIHwgIDQgKy0t
CiAuLi5lQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgfCAgMiArLQog
Li4uYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oIHwgIDIgKy0KIC4u
Li9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5tbSB8ICAyICstCiA0MiBm
aWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCAxMDEgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIKaW5kZXggYzQ4OThkNmRiNmJmLi4xN2YxMWU3Yjg1MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5v
cmRlcgpAQCAtNTE0NCw3ICs1MTQ0LDcgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQx
MWNsZWFyU2hhZG93RXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTljbGVhclBsYXRm
b3JtU2hhZG93RXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTVkcmF3SW1hZ2VCdWZm
ZXJFUE5TXzExSW1hZ2VCdWZmZXJFTlNfMTBDb2xvclNwYWNlRVJLTlNfOUZsb2F0UmVjdEVTNl9O
U18xN0NvbXBvc2l0ZU9wZXJhdG9yRU5TXzlCbGVuZE1vZGVFYgogX19aTjdXZWJDb3JlMTFJbWFn
ZUJ1ZmZlcjRkcmF3RVBOU18xNUdyYXBoaWNzQ29udGV4dEVOU18xMENvbG9yU3BhY2VFUktOU185
RmxvYXRSZWN0RVM2X05TXzE3Q29tcG9zaXRlT3BlcmF0b3JFTlNfOUJsZW5kTW9kZUViCi1fX1pO
SzdXZWJDb3JlMTFJbWFnZUJ1ZmZlcjE1Y29weU5hdGl2ZUltYWdlRU5TXzE2QmFja2luZ1N0b3Jl
Q29weUUKK19fWk5LN1dlYkNvcmUxMUltYWdlQnVmZmVyMTVjb3B5TmF0aXZlSW1hZ2VFTlNfMTZC
YWNraW5nU3RvcmVPcHRpb25zRQogX19aTjdXZWJDb3JlMTNzdWJpbWFnZUNhY2hlRXYKIF9fWk43
V2ViQ29yZTIyU3ViaW1hZ2VDYWNoZVdpdGhUaW1lcjExZ2V0U3ViaW1hZ2VFUDdDR0ltYWdlUktO
U185RmxvYXRSZWN0RQogX19aTjNXVEY5SGFzaFRhYmxlSU43V2ViQ29yZTIyU3ViaW1hZ2VDYWNo
ZVdpdGhUaW1lcjE4U3ViaW1hZ2VDYWNoZUVudHJ5RVMzX05TXzE3SWRlbnRpdHlFeHRyYWN0b3JF
TlMyXzE3U3ViaW1hZ2VDYWNoZUhhc2hFTlMyXzI0U3ViaW1hZ2VDYWNoZUVudHJ5VHJhaXRzRVM2
X0UxNmxvb2t1cEZvcldyaXRpbmdJTlNfMjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySVM1X0VFUzNf
RUVOU3QzX18xNHBhaXJJUFMzX2JFRVJLVDBfCkBAIC0xMjc5MSw3ICsxMjc5MSw3IEBAIF9fWk5L
N1dlYkNvcmU4R3JhZGllbnQ4aGFzQWxwaGFFdgogX19aTks3V2ViQ29yZTE1R3JhcGhpY3NDb250
ZXh0MjJjcmVhdGVDb21wYXRpYmxlQnVmZmVyRVJLTlNfN0ludFNpemVFYgogX19aTjdXZWJDb3Jl
MTFJbWFnZUJ1ZmZlcjIyY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlckVSS05TXzdJbnRTaXplRWZOU18x
MENvbG9yU3BhY2VFUEtOU18xNUdyYXBoaWNzQ29udGV4dEViCiBfX1pON1dlYkNvcmUxNUdyYXBo
aWNzQ29udGV4dDhmaWxsUmVjdEVSS05TXzlGbG9hdFJlY3RFUk5TXzhHcmFkaWVudEUKLV9fWk5L
N1dlYkNvcmUxMUltYWdlQnVmZmVyOWNvcHlJbWFnZUVOU18xNkJhY2tpbmdTdG9yZUNvcHlFTlNf
MTNTY2FsZUJlaGF2aW9yRQorX19aTks3V2ViQ29yZTExSW1hZ2VCdWZmZXI5Y29weUltYWdlRU5T
XzE2QmFja2luZ1N0b3JlT3B0aW9uc0VOU18xM1NjYWxlQmVoYXZpb3JFCiBfX1pON1dlYkNvcmUy
MkpTSFRNTFBhcmFncmFwaEVsZW1lbnQzcHV0RVBOM0pTQzZKU0NlbGxFUE5TMV85RXhlY1N0YXRl
RU5TMV8xMlByb3BlcnR5TmFtZUVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEUK
IF9fWk43V2ViQ29yZTIxanNDaGFyYWN0ZXJEYXRhTGVuZ3RoRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRU5TMF8xMlByb3BlcnR5TmFtZUUKIF9fWk43V2ViQ29yZUwxOWZvbnRGYW1pbHlG
cm9tU3R5bGVFUE5TXzExUmVuZGVyU3R5bGVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFp
bnRDYW52YXMuY3BwCmluZGV4IDg3MzhmYjI3NmI0YS4uMDA3YWU2OTA3ZjJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIElt
YWdlKiBDdXN0b21QYWludENhbnZhczo6Y29waWVkSW1hZ2UoKSBjb25zdAogICAgICAgICBtX2Nv
bnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCk7CiAgICAgbV9kZXN0aW5hdGlv
bkdyYXBoaWNzQ29udGV4dCA9IG51bGxwdHI7CiAKLSAgICBtX2NvcGllZEltYWdlID0gbV9jb3Bp
ZWRCdWZmZXItPmNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSwgUHJlc2VydmVSZXNvbHV0
aW9uOjpZZXMpOworICAgIG1fY29waWVkSW1hZ2UgPSBtX2NvcGllZEJ1ZmZlci0+Y29weUltYWdl
KEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlLCBQcmVzZXJ2ZVJlc29sdXRpb246Olllcyk7
CiAgICAgcmV0dXJuIG1fY29waWVkSW1hZ2UuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMzIyNzJlMDM4NWQwLi4xM2Y0MDRiZmYyMzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC05NDAsNyAr
OTQwLDcgQEAgSW1hZ2UqIEhUTUxDYW52YXNFbGVtZW50Ojpjb3BpZWRJbWFnZSgpIGNvbnN0CiAg
ICAgaWYgKCFtX2NvcGllZEltYWdlICYmIGJ1ZmZlcigpKSB7CiAgICAgICAgIGlmIChtX2NvbnRl
eHQpCiAgICAgICAgICAgICBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFz
KCk7Ci0gICAgICAgIG1fY29waWVkSW1hZ2UgPSBidWZmZXIoKS0+Y29weUltYWdlKENvcHlCYWNr
aW5nU3RvcmUsIFByZXNlcnZlUmVzb2x1dGlvbjo6WWVzKTsKKyAgICAgICAgbV9jb3BpZWRJbWFn
ZSA9IGJ1ZmZlcigpLT5jb3B5SW1hZ2UoeyB9LCBQcmVzZXJ2ZVJlc29sdXRpb246Olllcyk7CiAg
ICAgfQogICAgIHJldHVybiBtX2NvcGllZEltYWdlLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9PZmZzY3JlZW5DYW52YXMuY3BwCmluZGV4IDg4ZDlmNzhjOWE1Yy4uNmQ4NTUzZTI2YjliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBAIC0zODIsNyArMzgyLDcg
QEAgSW1hZ2UqIE9mZnNjcmVlbkNhbnZhczo6Y29waWVkSW1hZ2UoKSBjb25zdAogICAgIGlmICgh
bV9jb3BpZWRJbWFnZSAmJiBidWZmZXIoKSkgewogICAgICAgICBpZiAobV9jb250ZXh0KQogICAg
ICAgICAgICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygpOwotICAg
ICAgICBtX2NvcGllZEltYWdlID0gYnVmZmVyKCktPmNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3Jl
LCBQcmVzZXJ2ZVJlc29sdXRpb246Olllcyk7CisgICAgICAgIG1fY29waWVkSW1hZ2UgPSBidWZm
ZXIoKS0+Y29weUltYWdlKHsgfSwgUHJlc2VydmVSZXNvbHV0aW9uOjpZZXMpOwogICAgIH0KICAg
ICByZXR1cm4gbV9jb3BpZWRJbWFnZS5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggYTlk
MjI2NTJlYzRiLi45ODg2ZWU3MmVmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00OTYwLDcgKzQ5
NjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJ
bWFnZVNvdXJjZUhlbHBlcihUZXhJbWFnZUZ1bmN0aQogI2VuZGlmIC8vICFVU0UoQU5HTEUpCiAK
ICAgICAgICAgLy8gRmFsbGJhY2sgcHVyZSBTVyBwYXRoLgotICAgICAgICBSZWZQdHI8SW1hZ2U+
IGltYWdlID0gYnVmZmVyLT5jb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOworICAgICAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gYnVmZmVyLT5jb3B5SW1hZ2UoQmFja2luZ1N0b3JlT3B0
aW9uOjpSZWZlcmVuY2UpOwogICAgICAgICAvLyBUaGUgcHJlbXVsdGlwbHlBbHBoYSBhbmQgZmxp
cFkgcGl4ZWwgdW5wYWNrIHBhcmFtZXRlcnMgYXJlIGlnbm9yZWQgZm9yIEltYWdlQml0bWFwcy4K
ICAgICAgICAgaWYgKGltYWdlKQogICAgICAgICAgICAgdGV4SW1hZ2VJbXBsKGZ1bmN0aW9uSUQs
IHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCB4b2Zmc2V0LCB5b2Zmc2V0LCB6b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHRHTDo6RE9NU291cmNl
OjpJbWFnZSwgZmFsc2UsIGJpdG1hcC0+cHJlbXVsdGlwbHlBbHBoYSgpLCBiaXRtYXAtPmZvcmNp
Ymx5UHJlbXVsdGlwbHlBbHBoYSgpLCBzb3VyY2VJbWFnZVJlY3QsIGRlcHRoLCB1bnBhY2tJbWFn
ZUhlaWdodCk7CkBAIC01MTQwLDcgKzUxNDAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZVNvdXJjZUhlbHBlcihUZXhJbWFnZUZ1bmN0aQog
ICAgICAgICB9CiAKICAgICAgICAgLy8gRmFsbGJhY2sgcHVyZSBTVyBwYXRoLgotICAgICAgICBS
ZWZQdHI8SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIERvbnRD
b3B5QmFja2luZ1N0b3JlLCBmdW5jdGlvbk5hbWUpOworICAgICAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEJhY2tpbmdTdG9yZU9wdGlvbjo6
UmVmZXJlbmNlLCBmdW5jdGlvbk5hbWUpOwogICAgICAgICBpZiAoIWltYWdlKQogICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICAgICAgdGV4SW1hZ2VJbXBsKGZ1bmN0aW9uSUQsIHRhcmdldCwg
bGV2ZWwsIGludGVybmFsZm9ybWF0LCB4b2Zmc2V0LCB5b2Zmc2V0LCB6b2Zmc2V0LCBmb3JtYXQs
IHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHRHTDo6RE9NU291cmNlOjpWaWRlbywg
bV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhLCBmYWxzZSwgaW5wdXRTb3Vy
Y2VJbWFnZVJlY3QsIGRlcHRoLCB1bnBhY2tJbWFnZUhlaWdodCk7CkBAIC01OTY5LDEyICs1OTY5
LDEyIEBAIFJlZlB0cjxJbWFnZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0ltYWdl
SW50b0J1ZmZlcihJbWFnZSYgaW1hZ2UsIGludCB3CiAgICAgRmxvYXRSZWN0IHNyY1JlY3QoRmxv
YXRQb2ludCgpLCBpbWFnZS5zaXplKCkpOwogICAgIEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBv
aW50KCksIHNpemUpOwogICAgIGJ1Zi0+Y29udGV4dCgpLmRyYXdJbWFnZShpbWFnZSwgZGVzdFJl
Y3QsIHNyY1JlY3QpOwotICAgIHJldHVybiBidWYtPmNvcHlJbWFnZShEb250Q29weUJhY2tpbmdT
dG9yZSk7CisgICAgcmV0dXJuIGJ1Zi0+Y29weUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVm
ZXJlbmNlKTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykKIAotUmVmUHRyPEltYWdlPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp2aWRlb0ZyYW1lVG9JbWFnZShIVE1MVmlkZW9FbGVtZW50KiB2
aWRlbywgQmFja2luZ1N0b3JlQ29weSBiYWNraW5nU3RvcmVDb3B5LCBjb25zdCBjaGFyKiBmdW5j
dGlvbk5hbWUpCitSZWZQdHI8SW1hZ2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZpZGVv
RnJhbWVUb0ltYWdlKEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvLCBCYWNraW5nU3RvcmVPcHRpb25z
IGNvcHlCZWhhdmlvciwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKQogewogICAgIEltYWdlQnVm
ZmVyKiBpbWFnZUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgLy8gRklYTUU6IFdoZW4gdGV4SW1hZ2Uy
RCBpcyBwYXNzZWQgYW4gSFRNTFZpZGVvRWxlbWVudCwgaW1wbGVtZW50YXRpb25zCkBAIC02MDIx
LDcgKzYwMjEsNyBAQCBSZWZQdHI8SW1hZ2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZp
ZGVvRnJhbWVUb0ltYWdlKEhUTUxWaWRlb0VsZW1lbnQqIHZpZAogICAgICAgICB9CiAgICAgICAg
IHZpZGVvLT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChpbWFnZUJ1ZmZlci0+Y29udGV4dCgp
LCB7IHsgfSwgdmlkZW9TaXplIH0pOwogICAgIH0KLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0g
aW1hZ2VCdWZmZXItPmNvcHlJbWFnZShiYWNraW5nU3RvcmVDb3B5KTsKKyAgICBSZWZQdHI8SW1h
Z2U+IGltYWdlID0gaW1hZ2VCdWZmZXItPmNvcHlJbWFnZShjb3B5QmVoYXZpb3IpOwogICAgIGlm
ICghaW1hZ2UpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6
Ok9VVF9PRl9NRU1PUlksIGZ1bmN0aW9uTmFtZSwgIm91dCBvZiBtZW1vcnkiKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggNTJlMjZiNjNiM2U3Li5lNTY1N2I2YzQ5
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgKQEAgLTUzNCw3ICs1MzQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVm
UHRyPEltYWdlPiBkcmF3SW1hZ2VJbnRvQnVmZmVyKEltYWdlJiwgaW50IHdpZHRoLCBpbnQgaGVp
Z2h0LCBpbnQgZGV2aWNlU2NhbGVGYWN0b3IsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSk7CiAK
ICNpZiBFTkFCTEUoVklERU8pCi0gICAgUmVmUHRyPEltYWdlPiB2aWRlb0ZyYW1lVG9JbWFnZShI
VE1MVmlkZW9FbGVtZW50KiwgQmFja2luZ1N0b3JlQ29weSwgY29uc3QgY2hhciogZnVuY3Rpb25O
YW1lKTsKKyAgICBSZWZQdHI8SW1hZ2U+IHZpZGVvRnJhbWVUb0ltYWdlKEhUTUxWaWRlb0VsZW1l
bnQqLCBCYWNraW5nU3RvcmVPcHRpb25zLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpOwogI2Vu
ZGlmCiAKICAgICBXZWJHTFRleHR1cmU6OlRleHR1cmVFeHRlbnNpb25GbGFnIHRleHR1cmVFeHRl
bnNpb25GbGFncygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IGIxMjhkN2JmZjA0Ni4uMGM0OWU0
ODI3Y2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25j
cmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0xMzAsNyArMTMwLDcgQEAgcHJvdGVjdGVkOgogICAg
ICAgICByZXR1cm4gQmFja2VuZFR5cGU6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29zdChtX3Bh
cmFtZXRlcnMpOwogICAgIH0KIAotICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUlt
YWdlKEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2aW9yID0gQ29weUJhY2tpbmdTdG9yZSkgY29u
c3Qgb3ZlcnJpZGUKKyAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShCYWNr
aW5nU3RvcmVPcHRpb25zIGNvcHlCZWhhdmlvciA9IHsgfSkgY29uc3Qgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIGlmIChhdXRvKiBiYWNrZW5kID0gZW5zdXJlQmFja2VuZENyZWF0ZWQoKSkgewog
ICAgICAgICAgICAgY29uc3RfY2FzdDxDb25jcmV0ZUltYWdlQnVmZmVyJj4oKnRoaXMpLmZsdXNo
RHJhd2luZ0NvbnRleHQoKTsKQEAgLTEzOSw3ICsxMzksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxJbWFnZT4gY29weUltYWdlKEJh
Y2tpbmdTdG9yZUNvcHkgY29weUJlaGF2aW9yID0gQ29weUJhY2tpbmdTdG9yZSwgUHJlc2VydmVS
ZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1dGlvbiA9IFByZXNlcnZlUmVzb2x1dGlvbjo6Tm8pIGNv
bnN0IG92ZXJyaWRlCisgICAgUmVmUHRyPEltYWdlPiBjb3B5SW1hZ2UoQmFja2luZ1N0b3JlT3B0
aW9ucyBjb3B5QmVoYXZpb3IgPSB7IH0sIFByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29s
dXRpb24gPSBQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7CiAgICAg
ICAgICAgICBjb25zdF9jYXN0PENvbmNyZXRlSW1hZ2VCdWZmZXImPigqdGhpcykuZmx1c2hEcmF3
aW5nQ29udGV4dCgpOwpAQCAtMTc0LDcgKzE3NCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgc3Jj
UmVjdFNjYWxlZC5zY2FsZShyZXNvbHV0aW9uU2NhbGUoKSk7CiAKICAgICAgICAgaWYgKGF1dG8q
IGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7Ci0gICAgICAgICAgICBpZiAoYXV0
byBpbWFnZSA9IGNvcHlOYXRpdmVJbWFnZSgmZGVzdENvbnRleHQgPT0gJmNvbnRleHQoKSA/IENv
cHlCYWNraW5nU3RvcmUgOiBEb250Q29weUJhY2tpbmdTdG9yZSkpCisgICAgICAgICAgICBpZiAo
YXV0byBpbWFnZSA9IGNvcHlOYXRpdmVJbWFnZSgmZGVzdENvbnRleHQgPT0gJmNvbnRleHQoKSA/
IEJhY2tpbmdTdG9yZU9wdGlvbnMgeyB9IDogQmFja2luZ1N0b3JlT3B0aW9uOjpSZWZlcmVuY2Up
KQogICAgICAgICAgICAgICAgIGRlc3RDb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGJh
Y2tlbmRTaXplKCksIGRlc3RSZWN0LCBzcmNSZWN0U2NhbGVkLCBvcHRpb25zKTsKICAgICAgICAg
ICAgIGJhY2tlbmQtPmZpbmFsaXplRHJhd0ludG9Db250ZXh0KGRlc3RDb250ZXh0KTsKICAgICAg
ICAgfQpAQCAtMTg2LDcgKzE4Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgYWRqdXN0ZWRTcmNS
ZWN0LnNjYWxlKHJlc29sdXRpb25TY2FsZSgpKTsKIAogICAgICAgICBpZiAoYXV0byogYmFja2Vu
ZCA9IGVuc3VyZUJhY2tlbmRDcmVhdGVkKCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIGltYWdl
ID0gY29weUltYWdlKCZkZXN0Q29udGV4dCA9PSAmY29udGV4dCgpID8gQ29weUJhY2tpbmdTdG9y
ZSA6IERvbnRDb3B5QmFja2luZ1N0b3JlKSkKKyAgICAgICAgICAgIGlmIChhdXRvIGltYWdlID0g
Y29weUltYWdlKCZkZXN0Q29udGV4dCA9PSAmY29udGV4dCgpID8gQmFja2luZ1N0b3JlT3B0aW9u
IHsgfSA6IEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlKSkKICAgICAgICAgICAgICAgICBp
bWFnZS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3Qs
IHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvcHlJ
bWFnZU9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvcHlJbWFn
ZU9wdGlvbnMuaAppbmRleCA4YTFhNTk2ZmEwNmEuLmExZTg1YWQ3NWE1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29weUltYWdlT3B0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvcHlJbWFnZU9wdGlvbnMuaApAQCAt
MjQsMTQgKzI0LDE2IEBACiAgKi8KIAogI3ByYWdtYSBvbmNlCisjaW5jbHVkZSA8d3RmL09wdGlv
blNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gQmFja2luZ1N0b3JlQ29weSB7
Ci0gICAgQ29weUJhY2tpbmdTdG9yZSwgLy8gR3VhcmFudGVlIHN1YnNlcXVlbnQgZHJhd3MgZG9u
J3QgYWZmZWN0IHRoZSBjb3B5LgotICAgIERvbnRDb3B5QmFja2luZ1N0b3JlIC8vIFN1YnNlcXVl
bnQgZHJhd3MgbWF5IGFmZmVjdCB0aGUgY29weS4KK2VudW0gQmFja2luZ1N0b3JlT3B0aW9uIHsK
KyAgICBSZWZlcmVuY2UgPSAxIC8vIFN1YnNlcXVlbnQgZHJhd3MgbWF5IGFmZmVjdCB0aGUgY29w
eS4gSWYgYWJzZW50LCBzdWJzZXF1ZW50IGRyYXdzIGFyZSBndWFyYW50ZWVkIHRvIG5vdCBhZmZl
Y3QgdGhlIGNvcHkuCiB9OwogCit1c2luZyBCYWNraW5nU3RvcmVPcHRpb25zID0gT3B0aW9uU2V0
PEJhY2tpbmdTdG9yZU9wdGlvbj47CisKIGVudW0gY2xhc3MgU2hvdWxkSW50ZXJwb2xhdGUgOiBi
b29sIHsKICAgICBZZXMsIC8vIEFwcGx5IGEgcGl4ZWwtc21vb3RoaW5nIGFsZ29yaXRobSB0byB0
aGUgaW1hZ2UuCiAgICAgTm8gLy8gRWRnZXMgb2YgdGhlIGltYWdlIG1heSBhcHBlYXIgcGl4ZWxh
dGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgK
aW5kZXggZmI0ZDI2NWY3ZDM1Li5jNzgzY2U2YWNmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMTI0LDggKzEyNCw4IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFRocmVhZFNhZmVJbWFnZUJ1ZmZlckZs
dXNoZXI+IGNyZWF0ZUZsdXNoZXIoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxOYXRpdmVJ
bWFnZT4gY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgPSBDb3B5QmFja2luZ1N0b3Jl
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IGNvcHlJbWFnZShCYWNraW5n
U3RvcmVDb3B5ID0gQ29weUJhY2tpbmdTdG9yZSwgUHJlc2VydmVSZXNvbHV0aW9uID0gUHJlc2Vy
dmVSZXNvbHV0aW9uOjpObykgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPE5hdGl2ZUlt
YWdlPiBjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucyA9IHsgfSkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgUmVmUHRyPEltYWdlPiBjb3B5SW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9u
cyA9IHsgfSwgUHJlc2VydmVSZXNvbHV0aW9uID0gUHJlc2VydmVSZXNvbHV0aW9uOjpObykgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPEltYWdlPiBmaWx0ZXJlZEltYWdlKEZpbHRlciYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgw
LCAwLCAtMSwgLTEpLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJh
Y2tlbmQuY3BwCmluZGV4IGQwZTMxMzQyMDBiNi4uNDg1OWQyYjk4MzVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5j
cHAKQEAgLTU3LDEyICs1NywxMiBAQCBJbWFnZUJ1ZmZlckJhY2tlbmQ6On5JbWFnZUJ1ZmZlckJh
Y2tlbmQoKSA9IGRlZmF1bHQ7CiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJCYWNr
ZW5kOjpzaW5rSW50b05hdGl2ZUltYWdlKCkKIHsKLSAgICByZXR1cm4gY29weU5hdGl2ZUltYWdl
KERvbnRDb3B5QmFja2luZ1N0b3JlKTsKKyAgICByZXR1cm4gY29weU5hdGl2ZUltYWdlKEJhY2tp
bmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlKTsKIH0KIAogUmVmUHRyPEltYWdlPiBJbWFnZUJ1ZmZl
ckJhY2tlbmQ6OnNpbmtJbnRvSW1hZ2UoUHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1
dGlvbikKIHsKLSAgICByZXR1cm4gY29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlLCBwcmVz
ZXJ2ZVJlc29sdXRpb24pOworICAgIHJldHVybiBjb3B5SW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9u
OjpSZWZlcmVuY2UsIHByZXNlcnZlUmVzb2x1dGlvbik7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXJC
YWNrZW5kOjpjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggNjU0ODEwOTQy
Mzk3Li42NjZlNDVkN2I3ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCkBAIC0xMDksOCArMTA5LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgSW50U2l6ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsg
fQogCiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplRHJhd0ludG9Db250ZXh0KEdyYXBoaWNzQ29u
dGV4dCYpIHsgfQotICAgIHZpcnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBjb3B5TmF0aXZlSW1h
Z2UoQmFja2luZ1N0b3JlQ29weSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPEltYWdl
PiBjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29weSwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShCYWNr
aW5nU3RvcmVPcHRpb25zKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IGNv
cHlJbWFnZShCYWNraW5nU3RvcmVPcHRpb25zLCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0ID0g
MDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBzaW5r
SW50b05hdGl2ZUltYWdlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBSZWZQdHI8SW1h
Z2U+IHNpbmtJbnRvSW1hZ2UoUHJlc2VydmVSZXNvbHV0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUltYWdlLmNwcAppbmRleCA0ZmI2MmE1ZTQ3MDUu
LjliYjc2NjIxODRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU291cmNlSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NvdXJjZUltYWdlLmNwcApAQCAtNTUsNyArNTUsNyBAQCBOYXRpdmVJbWFnZSogU291cmNlSW1h
Z2U6Om5hdGl2ZUltYWdlKCkgY29uc3QKICAgICBpZiAoIW1fdHJhbnNmb3JtZWRJbWFnZVZhcmlh
bnQpIHsKICAgICAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IHN0ZDo6Z2V0PFJlZjxJbWFnZUJ1ZmZl
cj4+KG1faW1hZ2VWYXJpYW50KTsKIAotICAgICAgICBhdXRvIG5hdGl2ZUltYWdlID0gaW1hZ2VC
dWZmZXItPmNvcHlOYXRpdmVJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7CisgICAgICAgIGF1
dG8gbmF0aXZlSW1hZ2UgPSBpbWFnZUJ1ZmZlci0+Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9y
ZU9wdGlvbjo6UmVmZXJlbmNlKTsKICAgICAgICAgaWYgKCFuYXRpdmVJbWFnZSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAppbmRleCBhMmUyZTkzNDAz
NjMuLjc5NzJkY2MzZGY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCkBAIC0xNzQsNyArMTc0LDcg
QEAgZW51bSBQYXRoRHJhd2luZ1N0eWxlIHsKIAogc3RhdGljIHZvaWQgZHJhd1NoYWRvd0xheWVy
QnVmZmVyKEdyYXBoaWNzQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIEltYWdlQnVmZmVy
JiBsYXllckltYWdlLCBjb25zdCBGbG9hdFBvaW50JiBsYXllck9yaWdpbiwgY29uc3QgRmxvYXRT
aXplJiBsYXllclNpemUsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKLSAgICBp
ZiAoYXV0byBuYXRpdmVJbWFnZSA9IGxheWVySW1hZ2UuY29weU5hdGl2ZUltYWdlKERvbnRDb3B5
QmFja2luZ1N0b3JlKSkgeworICAgIGlmIChhdXRvIG5hdGl2ZUltYWdlID0gbGF5ZXJJbWFnZS5j
b3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9uOjpSZWZlcmVuY2UpKSB7CiAgICAgICAg
IGRyYXdQbGF0Zm9ybUltYWdlKHBsYXRmb3JtQ29udGV4dCwgbmF0aXZlSW1hZ2UtPnBsYXRmb3Jt
SW1hZ2UoKS5nZXQoKSwgRmxvYXRSZWN0KHJvdW5kZWRJbnRQb2ludChsYXllck9yaWdpbiksIGxh
eWVyU2l6ZSksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGxheWVyU2l6ZSksIHsgc2hhZG93U3Rh
dGUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0b3IgfSwgc2hhZG93U3RhdGUuZ2xvYmFsQWxwaGEsIFNo
YWRvd1N0YXRlKCkpOwogICAgIH0KIH0KQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMgdm9pZCBk
cmF3U2hhZG93TGF5ZXJCdWZmZXIoR3JhcGhpY3NDb250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4
dCwgSW1hZ2VCdQogLy8gRklYTUU6IFRoaXMgaXMgbW9zdGx5IHNhbWUgYXMgZHJhd1NoYWRvd0xh
eWVyQnVmZmVyLCBzbyB3ZSBzaG91bGQgbWVyZ2UgdHdvLgogc3RhdGljIHZvaWQgZHJhd1NoYWRv
d0ltYWdlKEdyYXBoaWNzQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIEltYWdlQnVmZmVy
JiBsYXllckltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKLSAgICBpZiAoYXV0
byBuYXRpdmVJbWFnZSA9IGxheWVySW1hZ2UuY29weU5hdGl2ZUltYWdlKERvbnRDb3B5QmFja2lu
Z1N0b3JlKSkgeworICAgIGlmIChhdXRvIG5hdGl2ZUltYWdlID0gbGF5ZXJJbWFnZS5jb3B5TmF0
aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9uOjpSZWZlcmVuY2UpKSB7CiAgICAgICAgIGRyYXdQ
bGF0Zm9ybUltYWdlKHBsYXRmb3JtQ29udGV4dCwgbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2Uo
KS5nZXQoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIHsgc2hhZG93U3RhdGUuZ2xvYmFsQ29tcG9zaXRl
T3BlcmF0b3IgfSwgc2hhZG93U3RhdGUuZ2xvYmFsQWxwaGEsIFNoYWRvd1N0YXRlKCkpOwogICAg
IH0KIH0KQEAgLTE5MSw3ICsxOTEsNyBAQCBzdGF0aWMgdm9pZCBmaWxsU2hhZG93QnVmZmVyKEdy
YXBoaWNzQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIEltYWdlQnVmZmVyJgogewogICAg
IHBsYXRmb3JtQ29udGV4dC5zYXZlKCk7CiAKLSAgICBpZiAoYXV0byBuYXRpdmVJbWFnZSA9IGxh
eWVySW1hZ2UuY29weU5hdGl2ZUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKSkKKyAgICBpZiAo
YXV0byBuYXRpdmVJbWFnZSA9IGxheWVySW1hZ2UuY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9y
ZU9wdGlvbjo6UmVmZXJlbmNlKSkKICAgICAgICAgY2xpcFRvSW1hZ2VCdWZmZXIocGxhdGZvcm1D
b250ZXh0LCBuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpLCBGbG9hdFJlY3QobGF5
ZXJPcmlnaW4sIGV4cGFuZGVkSW50U2l6ZShsYXllclNpemUpKSk7CiAKICAgICBGaWxsU291cmNl
IGZpbGxTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggMjYyZjBkNjAy
YjgwLi40YzViYWM4NGQ0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTIy
OSw3ICsyMjksNyBAQCBJbnRSZWN0IEdyYXBoaWNzQ29udGV4dENhaXJvOjpjbGlwQm91bmRzKCkg
Y29uc3QKIAogdm9pZCBHcmFwaGljc0NvbnRleHRDYWlybzo6Y2xpcFRvSW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXImIGJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKIHsKLSAgICBpZiAo
YXV0byBuYXRpdmVJbWFnZSA9IGJ1ZmZlci5jb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNraW5n
U3RvcmUpKQorICAgIGlmIChhdXRvIG5hdGl2ZUltYWdlID0gYnVmZmVyLmNvcHlOYXRpdmVJbWFn
ZShCYWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSkpCiAgICAgICAgIENhaXJvOjpjbGlwVG9J
bWFnZUJ1ZmZlcigqdGhpcywgbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSwgZGVz
dFJlY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAKaW5kZXggZDhl
NjUxMDQ4YzZjLi41MzczNzA4NWY0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2Vu
ZC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWZQdHI8
SW1hZ2U+IEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29w
eSBjb3B5QmVoYXZpb3IsIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QKK1JlZlB0cjxJbWFnZT4g
SW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OmNvcHlJbWFnZShCYWNraW5nU3RvcmVPcHRpb25zIGNv
cHlCZWhhdmlvciwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdAogewogICAgIC8vIEJpdG1hcElt
YWdlIHdpbGwgcmVsZWFzZSB0aGUgcGFzc2VkIGluIHN1cmZhY2Ugb24gZGVzdHJ1Y3Rpb24KICAg
ICByZXR1cm4gQml0bWFwSW1hZ2U6OmNyZWF0ZShjb3B5TmF0aXZlSW1hZ2UoY29weUJlaGF2aW9y
KSk7CkBAIC01Myw3ICs1Myw3IEBAIFJlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXJDYWlyb0JhY2tl
bmQ6OmNvcHlJbWFnZShCYWNraW5nU3RvcmVDb3B5IGNvcHlCZWhhdmlvciwKIAogdm9pZCBJbWFn
ZUJ1ZmZlckNhaXJvQmFja2VuZDo6Y2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQogewotICAgIGlmIChhdXRvIGltYWdlID0g
Y29weU5hdGl2ZUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKSkKKyAgICBpZiAoYXV0byBpbWFn
ZSA9IGNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSkpCiAgICAg
ICAgIENhaXJvOjpjbGlwVG9JbWFnZUJ1ZmZlcigqZGVzdENvbnRleHQucGxhdGZvcm1Db250ZXh0
KCksIGltYWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIGRlc3RSZWN0KTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyb0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKaW5kZXggNmY4NjI3ZTRmMGRiLi42MGRkNDcwZWU1NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdl
QnVmZmVyQ2Fpcm9CYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kIDogcHVibGlj
IEltYWdlQnVmZmVyQmFja2VuZCB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPEltYWdlPiBjb3B5SW1h
Z2UoQmFja2luZ1N0b3JlQ29weSA9IENvcHlCYWNraW5nU3RvcmUsIFByZXNlcnZlUmVzb2x1dGlv
biA9IFByZXNlcnZlUmVzb2x1dGlvbjo6Tm8pIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxJ
bWFnZT4gY29weUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbnMsIFByZXNlcnZlUmVzb2x1dGlvbikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNl
QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFn
ZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDY5Y2I3ODU4OGRkZC4uYjZjODhj
NDM5NzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5j
cHAKQEAgLTY1LDI4ICs2NSwyMSBAQCB1bnNpZ25lZCBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJh
Y2tlbmQ6OmJ5dGVzUGVyUm93KCkgY29uc3QKICAgICByZXR1cm4gY2Fpcm9faW1hZ2Vfc3VyZmFj
ZV9nZXRfc3RyaWRlKG1fc3VyZmFjZS5nZXQoKSk7CiB9CiAKLVJlZlB0cjxOYXRpdmVJbWFnZT4g
SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0
b3JlQ29weSBjb3B5QmVoYXZpb3IpIGNvbnN0CitSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVm
ZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZU9wdGlv
bnMgY29weUJlaGF2aW9yKSBjb25zdAogewotICAgIHN3aXRjaCAoY29weUJlaGF2aW9yKSB7Ci0g
ICAgY2FzZSBDb3B5QmFja2luZ1N0b3JlOiB7Ci0gICAgICAgIGF1dG8gY29weSA9IGFkb3B0UmVm
KGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsCi0gICAgICAg
IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3dpZHRoKG1fc3VyZmFjZS5nZXQoKSksCi0gICAgICAg
IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hlaWdodChtX3N1cmZhY2UuZ2V0KCkpKSk7Ci0KLSAg
ICAgICAgYXV0byBjciA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0ZShjb3B5LmdldCgpKSk7Ci0gICAg
ICAgIGNhaXJvX3NldF9vcGVyYXRvcihjci5nZXQoKSwgQ0FJUk9fT1BFUkFUT1JfU09VUkNFKTsK
LSAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNyLmdldCgpLCBtX3N1cmZhY2UuZ2V0
KCksIDAsIDApOwotICAgICAgICBjYWlyb19wYWludChjci5nZXQoKSk7CisgICAgaWYgKGNvcHlC
ZWhhdmlvci5jb250YWlucyhCYWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSkpCisgICAgICAg
IHJldHVybiBOYXRpdmVJbWFnZTo6Y3JlYXRlKFJlZlB0ciB7IG1fc3VyZmFjZS5nZXQoKSB9KTsK
IAotICAgICAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKGNvcHkpKTsKLSAg
ICB9CisgICAgYXV0byBjb3B5ID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGUo
Q0FJUk9fRk9STUFUX0FSR0IzMiwKKyAgICBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aCht
X3N1cmZhY2UuZ2V0KCkpLAorICAgIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hlaWdodChtX3N1
cmZhY2UuZ2V0KCkpKSk7CiAKLSAgICBjYXNlIERvbnRDb3B5QmFja2luZ1N0b3JlOgotICAgICAg
ICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0ZShSZWZQdHIgeyBtX3N1cmZhY2UuZ2V0KCkgfSk7
Ci0gICAgfQorICAgIGF1dG8gY3IgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoY29weS5nZXQoKSkp
OworICAgIGNhaXJvX3NldF9vcGVyYXRvcihjci5nZXQoKSwgQ0FJUk9fT1BFUkFUT1JfU09VUkNF
KTsKKyAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY3IuZ2V0KCksIG1fc3VyZmFjZS5nZXQo
KSwgMCwgMCk7CisgICAgY2Fpcm9fcGFpbnQoY3IuZ2V0KCkpOwogCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIE5hdGl2ZUltYWdlOjpj
cmVhdGUoV1RGTW92ZShjb3B5KSk7CiB9CiAKIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IEltYWdl
QnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlQ2Fpcm9TdXJmYWNlKCkKQEAgLTk2LDEx
ICs4OSwxMSBAQCBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFj
ZUJhY2tlbmQ6OmNyZWF0ZUNhaXJvU3VyZmFjZSgpCiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gSW1h
Z2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kOjpjYWlyb1N1cmZhY2VDb2VyY2VUb0ltYWdlKCkg
Y29uc3QKIHsKLSAgICBCYWNraW5nU3RvcmVDb3B5IGNvcHlCZWhhdmlvcjsKKyAgICBCYWNraW5n
U3RvcmVPcHRpb25zIGNvcHlCZWhhdmlvcjsKICAgICBpZiAoY2Fpcm9fc3VyZmFjZV9nZXRfdHlw
ZShtX3N1cmZhY2UuZ2V0KCkpID09IENBSVJPX1NVUkZBQ0VfVFlQRV9JTUFHRSAmJiBjYWlyb19z
dXJmYWNlX2dldF9jb250ZW50KG1fc3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fQ09OVEVOVF9DT0xP
Ul9BTFBIQSkKLSAgICAgICAgY29weUJlaGF2aW9yID0gRG9udENvcHlCYWNraW5nU3RvcmU7Cisg
ICAgICAgIGNvcHlCZWhhdmlvciA9IEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlOwogICAg
IGVsc2UKLSAgICAgICAgY29weUJlaGF2aW9yID0gQ29weUJhY2tpbmdTdG9yZTsKKyAgICAgICAg
Y29weUJlaGF2aW9yID0geyB9OwogICAgIHJldHVybiBjb3B5TmF0aXZlSW1hZ2UoY29weUJlaGF2
aW9yKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuaApp
bmRleCA5OWJiYzVmMjRmNmQuLjRiN2U3YjY3YjMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZm
ZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiAgICAg
SW50U2l6ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPE5hdGl2
ZUltYWdlPiBjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weSkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0
aW9ucykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjcmVh
dGVDYWlyb1N1cmZhY2UoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCmluZGV4
IGZiOGEwZGE4MmU3Ny4uZTM2MWQ5MDdmM2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCkBA
IC0xMTQsMTMgKzExNCwxMyBAQCBzdGF0aWMgUmVmUHRyPEltYWdlPiBjcmVhdGVCaXRtYXBJbWFn
ZUFmdGVyU2NhbGluZ0lmTmVlZGVkKFJlZlB0cjxOYXRpdmVJbWFnZT4mJgogICAgIHJldHVybiBC
aXRtYXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUoaW1hZ2UpKTsKIH0KIAotUmVmUHRyPEltYWdlPiBJ
bWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29weUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2
aW9yLCBQcmVzZXJ2ZVJlc29sdXRpb24gcHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdAorUmVmUHRy
PEltYWdlPiBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29weUltYWdlKEJhY2tpbmdTdG9yZU9wdGlv
bnMgY29weUJlaGF2aW9yLCBQcmVzZXJ2ZVJlc29sdXRpb24gcHJlc2VydmVSZXNvbHV0aW9uKSBj
b25zdAogewogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gaW1hZ2U7CiAgICAgaWYgKHJlc29sdXRp
b25TY2FsZSgpID09IDEgfHwgcHJlc2VydmVSZXNvbHV0aW9uID09IFByZXNlcnZlUmVzb2x1dGlv
bjo6WWVzKQogICAgICAgICBpbWFnZSA9IGNvcHlOYXRpdmVJbWFnZShjb3B5QmVoYXZpb3IpOwog
ICAgIGVsc2UKLSAgICAgICAgaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNraW5n
U3RvcmUpOworICAgICAgICBpbWFnZSA9IGNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVPcHRp
b246OlJlZmVyZW5jZSk7CiAgICAgcmV0dXJuIGNyZWF0ZUJpdG1hcEltYWdlQWZ0ZXJTY2FsaW5n
SWZOZWVkZWQoV1RGTW92ZShpbWFnZSksIGxvZ2ljYWxTaXplKCksIGJhY2tlbmRTaXplKCksIHJl
c29sdXRpb25TY2FsZSgpLCBwcmVzZXJ2ZVJlc29sdXRpb24pOwogfQogCkBAIC0xMzMsNyArMTMz
LDcgQEAgUmVmUHRyPEltYWdlPiBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6c2lua0ludG9JbWFnZShQ
cmVzZXJ2ZVJlc29sdXRpb24gcHJlc2VydmVSZXMKIAogdm9pZCBJbWFnZUJ1ZmZlckNHQmFja2Vu
ZDo6Y2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0KQogewotICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2Uo
RG9udENvcHlCYWNraW5nU3RvcmUpOworICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBjb3B5TmF0aXZl
SW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9uOjpSZWZlcmVuY2UpOwogICAgIGlmICghbmF0aXZlSW1h
Z2UpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTE3NiwxMyArMTc2LDEzIEBAIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29weUNHSW1hZ2VGb3JFbmNvZGlu
ZyhDRlN0cmluZ1JlZiBkCiAgICAgfQogCiAgICAgaWYgKHJlc29sdXRpb25TY2FsZSgpID09IDEg
fHwgcHJlc2VydmVSZXNvbHV0aW9uID09IFByZXNlcnZlUmVzb2x1dGlvbjo6WWVzKSB7Ci0gICAg
ICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoQ29weUJhY2tpbmdTdG9yZSk7
CisgICAgICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoeyB9KTsKICAgICAg
ICAgaWYgKCFuYXRpdmVJbWFnZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAg
ICByZXR1cm4gY3JlYXRlQ3JvcHBlZEltYWdlSWZOZWNlc3NhcnkobmF0aXZlSW1hZ2UtPnBsYXRm
b3JtSW1hZ2UoKS5nZXQoKSwgYmFja2VuZFNpemUoKSk7CiAgICAgfQogICAgIAotICAgIGF1dG8g
bmF0aXZlSW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOworICAg
IGF1dG8gbmF0aXZlSW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9uOjpS
ZWZlcmVuY2UpOwogICAgIGlmICghbmF0aXZlSW1hZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGF1dG8gaW1hZ2UgPSBuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFnZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCYWNrZW5kLmgKaW5kZXggYzg3MjQxOTZmZmMwLi4zOTEzOGUyZjE1NGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
R0JhY2tlbmQuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgdXNp
bmcgSW1hZ2VCdWZmZXJCYWNrZW5kOjpJbWFnZUJ1ZmZlckJhY2tlbmQ7CiAKLSAgICBSZWZQdHI8
SW1hZ2U+IGNvcHlJbWFnZShCYWNraW5nU3RvcmVDb3B5ID0gQ29weUJhY2tpbmdTdG9yZSwgUHJl
c2VydmVSZXNvbHV0aW9uID0gUHJlc2VydmVSZXNvbHV0aW9uOjpObykgY29uc3Qgb3ZlcnJpZGU7
CisgICAgUmVmUHRyPEltYWdlPiBjb3B5SW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucywgUHJlc2Vy
dmVSZXNvbHV0aW9uKSBjb25zdCBvdmVycmlkZTsKICAgICBSZWZQdHI8SW1hZ2U+IHNpbmtJbnRv
SW1hZ2UoUHJlc2VydmVSZXNvbHV0aW9uKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY2xpcFRvTWFz
ayhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcAppbmRleCA1ZTIzMDdhZTBkNWYuLmUx
N2QzODczNzZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcApAQCAtMTM3
LDIyICsxMzcsMTYgQEAgdW5zaWduZWQgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmJ5dGVz
UGVyUm93KCkgY29uc3QKICAgICByZXR1cm4gY2FsY3VsYXRlQnl0ZXNQZXJSb3coYmFja2VuZFNp
emUpOwogfQogCi1SZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5k
Ojpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weSBjb3B5QmVoYXZpb3IpIGNvbnN0CitS
ZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5TmF0aXZl
SW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucyBjb3B5QmVoYXZpb3IpIGNvbnN0CiB7Ci0gICAgc3dp
dGNoIChjb3B5QmVoYXZpb3IpIHsKLSAgICBjYXNlIENvcHlCYWNraW5nU3RvcmU6Ci0gICAgICAg
IHJldHVybiBOYXRpdmVJbWFnZTo6Y3JlYXRlKGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRl
SW1hZ2UoY29udGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpKSkpOwotCi0gICAgY2FzZSBEb250Q29w
eUJhY2tpbmdTdG9yZToKKyAgICBpZiAoY29weUJlaGF2aW9yLmNvbnRhaW5zKEJhY2tpbmdTdG9y
ZU9wdGlvbjo6UmVmZXJlbmNlKSkgewogICAgICAgICBhdXRvIGJhY2tlbmRTaXplID0gdGhpcy0+
YmFja2VuZFNpemUoKTsKICAgICAgICAgcmV0dXJuIE5hdGl2ZUltYWdlOjpjcmVhdGUoYWRvcHRD
RihDR0ltYWdlQ3JlYXRlKAogICAgICAgICAgICAgYmFja2VuZFNpemUud2lkdGgoKSwgYmFja2Vu
ZFNpemUuaGVpZ2h0KCksIDgsIDMyLCBieXRlc1BlclJvdygpLAogICAgICAgICAgICAgY29sb3JT
cGFjZSgpLnBsYXRmb3JtQ29sb3JTcGFjZSgpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oa0NHSW1h
Z2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCkgfCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oa0NHQml0
bWFwQnl0ZU9yZGVyMzJIb3N0KSwgbV9kYXRhUHJvdmlkZXIuZ2V0KCksCiAgICAgICAgICAgICAw
LCB0cnVlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KSkpOwogICAgIH0KLQotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBOYXRpdmVJ
bWFnZTo6Y3JlYXRlKGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlSW1hZ2UoY29udGV4dCgp
LnBsYXRmb3JtQ29udGV4dCgpKSkpOwogfQogCiBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBJ
bWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZm
ZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oCmluZGV4IGFmYjY0NDg3ZjQ1MC4uYzdlZTk3OTc1
ZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKQEAgLTU1LDcgKzU1LDcgQEAg
cHJpdmF0ZToKICAgICBJbnRTaXplIGJhY2tlbmRTaXplKCkgY29uc3QgZmluYWw7CiAgICAgdW5z
aWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBmaW5hbDsKIAotICAgIFJlZlB0cjxOYXRpdmVJbWFn
ZT4gY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgPSBDb3B5QmFja2luZ1N0b3JlKSBj
b25zdCBmaW5hbDsKKyAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShCYWNr
aW5nU3RvcmVPcHRpb25zKSBjb25zdCBmaW5hbDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxC
dWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3Jt
YXQsIGNvbnN0IEludFJlY3QmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVy
KGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9p
bnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGRkOWNjYmJmN2ExYS4u
OGNkNzE3ZmUxNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKQEAg
LTE2Myw3ICsxNjMsNyBAQCB2b2lkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6aW52YWxp
ZGF0ZUNhY2hlZE5hdGl2ZUltYWdlKCkgY29uc3QKICAgICBjb250ZXh0KCkuZmlsbFJlY3QoeyB9
KTsKIH0KIAotUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6
OmNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5KSBjb25zdAorUmVmUHRyPE5hdGl2ZUlt
YWdlPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5n
U3RvcmVPcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBOYXRpdmVJbWFnZTo6Y3JlYXRlKG1f
c3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZC5oCmluZGV4IGI5NmFkZTYxNDZhNy4uMGQ1NzU2MGIzYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAg
ICAgSW50U2l6ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIFJlZlB0
cjxOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgPSBDb3B5QmFj
a2luZ1N0b3JlKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGNvcHlO
YXRpdmVJbWFnZShCYWNraW5nU3RvcmVPcHRpb25zKSBjb25zdCBvdmVycmlkZTsKICAgICBSZWZQ
dHI8TmF0aXZlSW1hZ2U+IHNpbmtJbnRvTmF0aXZlSW1hZ2UoKSBvdmVycmlkZTsKIAogICAgIHN0
ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
Rm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8v
Tmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5j
cHAKaW5kZXggZTdlNmU2YTI3MzM4Li44MGIxODliNTFlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0
aW9uUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCkBAIC01NTYsNyAr
NTU2LDcgQEAgdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXImIGJ1ZmZlciwgY29uc3QgRmxvYXRSZWMKICAgICAgICAgfQogICAgIH07CiAKLSAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gYnVmZmVyLmNvcHlJbWFnZShEb250Q29weUJhY2tpbmdT
dG9yZSk7CisgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci5jb3B5SW1hZ2UoQmFja2lu
Z1N0b3JlT3B0aW9uOjpSZWZlcmVuY2UpOwogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNTk0LDcgKzU5NCw3IEBAIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNyY0ltYWdlLCBjb25zCiAgICAgaWYg
KCFpbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPEltYWdlPiBpbWFn
ZSA9IGltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOworICAgIFJl
ZlB0cjxJbWFnZT4gaW1hZ2UgPSBpbWFnZUJ1ZmZlci0+Y29weUltYWdlKEJhY2tpbmdTdG9yZU9w
dGlvbjo6UmVmZXJlbmNlKTsKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm47CiAKQEAg
LTExNDksNyArMTE0OSw3IEBAIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6Y2xpcFRvSW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXImIGJ1ZmZlciwgY29uc3QgRmxvYXRSCiAgICAgICAgIH0KICAg
ICB9OwogCi0gICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci5jb3B5SW1hZ2UoRG9udENv
cHlCYWNraW5nU3RvcmUpOworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBidWZmZXIuY29weUlt
YWdlKEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlKTsKICAgICBpZiAoIWltYWdlKQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcAppbmRleCBkMzRlNTg4ZDI0ODcuLjYwNDEw
NGVkODY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0JpdG1hcFRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lkIEJpdG1h
cFRleHR1cmU6OnVwZGF0ZUNvbnRlbnRzKEdyYXBoaWNzTGF5ZXIqIHNvdXJjZUxheWVyLCBjb25z
dCBJbnRSZWN0JiB0YQogCiAgICAgc291cmNlTGF5ZXItPnBhaW50R3JhcGhpY3NMYXllckNvbnRl
bnRzKGNvbnRleHQsIHNvdXJjZVJlY3QpOwogCi0gICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGlt
YWdlQnVmZmVyLT5jb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOworICAgIFJlZlB0cjxJ
bWFnZT4gaW1hZ2UgPSBpbWFnZUJ1ZmZlci0+Y29weUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbjo6
UmVmZXJlbmNlKTsKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcAppbmRleCA5MzQ4NmM3ODZjZTIuLmZiNzQ5Yjk1OWYyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcApAQCAtMzQ4LDcgKzM0OCw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Y2FjaGVOYXRpdmVJbWFnZVdpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNvbnN0IFNo
YXJlCiAgICAgaWYgKCFiaXRtYXApCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gaW1hZ2Ug
PSBOYXRpdmVJbWFnZTo6Y3JlYXRlKGJpdG1hcC0+Y3JlYXRlUGxhdGZvcm1JbWFnZShEb250Q29w
eUJhY2tpbmdTdG9yZSwgU2hvdWxkSW50ZXJwb2xhdGU6OlllcyksIG5hdGl2ZUltYWdlUmVzb3Vy
Y2VJZGVudGlmaWVyLm9iamVjdCgpKTsKKyAgICBhdXRvIGltYWdlID0gTmF0aXZlSW1hZ2U6OmNy
ZWF0ZShiaXRtYXAtPmNyZWF0ZVBsYXRmb3JtSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9uOjpSZWZl
cmVuY2UsIFNob3VsZEludGVycG9sYXRlOjpZZXMpLCBuYXRpdmVJbWFnZVJlc291cmNlSWRlbnRp
Zmllci5vYmplY3QoKSk7CiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvQ0dEaXNwbGF5TGlz
dEltYWdlQnVmZmVyQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZC5jcHAKaW5kZXggYjMyMzc4ZDcx
NTY2Li45ZjVmYjk2M2I5MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVy
QmFja2VuZC5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCB1bnNpZ25lZCBDR0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXJCYWNrZW5kOjpieXRlc1BlclJvdygpIGNvbnN0CiAgICAgcmV0dXJuIGNhbGN1bGF0
ZUJ5dGVzUGVyUm93KGJhY2tlbmRTaXplKCkpOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6TmF0aXZl
SW1hZ2U+IENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZShX
ZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUlt
YWdlPiBDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoV2Vi
Q29yZTo6QmFja2luZ1N0b3JlT3B0aW9ucykgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVm
ZmVyQmFja2VuZC5oCmluZGV4IGY0NWRmZTM0ZDExNy4uMDAxOTYzODIyNjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdl
QnVmZmVyQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVi
bGljOgogICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVCYWNrZW5kSGFuZGxlKFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbiA9IFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZFdy
aXRlKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIE5PVEU6IFRoZXNlIGFsbCBBU1NFUlRfTk9UX1JF
QUNIRUQoKS4KLSAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFn
ZShXZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5ID0gV2ViQ29yZTo6Q29weUJhY2tpbmdTdG9yZSkg
Y29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0aXZl
SW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlT3B0aW9ucykgY29uc3QgZmluYWw7CiAgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgV2Vi
Q29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29y
ZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0
aW9uIGRlc3RGb3JtYXQpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9TaGFyZWFibGVCaXRtYXAuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1h
cC5oCmluZGV4IDM5YzBkN2Y3OTUxZi4uMmM3NjIzZDUwZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9TaGFyZWFibGVCaXRtYXAuaApAQCAtMTE3LDE0ICsxMTcsMTQgQEAgcHVibGljOgogICAgIC8v
IFRoaXMgaXMgb25seSBzYWZlIHRvIHVzZSB3aGVuIHdlIGtub3cgdGhhdCB0aGUgY29udGVudHMg
b2YgdGhlIHNoYXJlYWJsZSBiaXRtYXAgd29uJ3QgY2hhbmdlLgogICAgIFJldGFpblB0cjxDR0lt
YWdlUmVmPiBtYWtlQ0dJbWFnZShXZWJDb3JlOjpTaG91bGRJbnRlcnBvbGF0ZSA9IFdlYkNvcmU6
OlNob3VsZEludGVycG9sYXRlOjpObyk7CiAKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybUltYWdlUHRy
IGNyZWF0ZVBsYXRmb3JtSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSA9IFdlYkNvcmU6
OkNvcHlCYWNraW5nU3RvcmUsIFdlYkNvcmU6OlNob3VsZEludGVycG9sYXRlID0gV2ViQ29yZTo6
U2hvdWxkSW50ZXJwb2xhdGU6Ok5vKTsKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybUltYWdlUHRyIGNy
ZWF0ZVBsYXRmb3JtSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlT3B0aW9ucyA9IHsgfSwgV2Vi
Q29yZTo6U2hvdWxkSW50ZXJwb2xhdGUgPSBXZWJDb3JlOjpTaG91bGRJbnRlcnBvbGF0ZTo6Tm8p
OwogI2VsaWYgVVNFKENBSVJPKQogICAgIC8vIFRoaXMgY3JlYXRlcyBhIEJpdG1hcEltYWdlIHRo
YXQgZGlyZWN0bHkgcmVmZXJlbmNlcyB0aGUgc2hhcmVkIGJpdG1hcCBkYXRhLgogICAgIC8vIFRo
aXMgaXMgb25seSBzYWZlIHRvIHVzZSB3aGVuIHdlIGtub3cgdGhhdCB0aGUgY29udGVudHMgb2Yg
dGhlIHNoYXJlYWJsZSBiaXRtYXAgd29uJ3QgY2hhbmdlLgogICAgIFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IGNyZWF0ZVBlcnNpc3RlbnRDYWlyb1N1cmZhY2UoKTsKICAgICBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBjcmVhdGVDYWlyb1N1cmZhY2UoKTsKIAotICAgIFdlYkNvcmU6OlBsYXRmb3Jt
SW1hZ2VQdHIgY3JlYXRlUGxhdGZvcm1JbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5ID0g
V2ViQ29yZTo6Q29weUJhY2tpbmdTdG9yZSwgV2ViQ29yZTo6U2hvdWxkSW50ZXJwb2xhdGUgPSBX
ZWJDb3JlOjpTaG91bGRJbnRlcnBvbGF0ZTo6Tm8pIHsgcmV0dXJuIGNyZWF0ZUNhaXJvU3VyZmFj
ZSgpOyB9CisgICAgV2ViQ29yZTo6UGxhdGZvcm1JbWFnZVB0ciBjcmVhdGVQbGF0Zm9ybUltYWdl
KFdlYkNvcmU6OkJhY2tpbmdTdG9yZU9wdGlvbnMgPSB7IH0sIFdlYkNvcmU6OlNob3VsZEludGVy
cG9sYXRlID0gV2ViQ29yZTo6U2hvdWxkSW50ZXJwb2xhdGU6Ok5vKSB7IHJldHVybiBjcmVhdGVD
YWlyb1N1cmZhY2UoKTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJJbWFn
ZS5jcHAKaW5kZXggODU3ZjZmNzJjMjQ4Li5kMWIzODFiZThkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJJbWFnZS5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgR3JhcGhpY3NDb250ZXh0JiBXZWJJbWFnZTo6
Y29udGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYnVmZmVyLT5jb250ZXh0KCk7CiB9CiAKLVJl
ZlB0cjxOYXRpdmVJbWFnZT4gV2ViSW1hZ2U6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVD
b3B5IGNvcHlCZWhhdmlvcikgY29uc3QKK1JlZlB0cjxOYXRpdmVJbWFnZT4gV2ViSW1hZ2U6OmNv
cHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVPcHRpb25zIGNvcHlCZWhhdmlvcikgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9idWZmZXItPmNvcHlOYXRpdmVJbWFnZShjb3B5QmVoYXZpb3IpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSW1hZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkltYWdlLmgKaW5kZXggNWI3OTEwNmVlOWQzLi41NTViZTVhN2ZjMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkltYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViSW1hZ2UuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAKICAgICBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdDsKIAotICAgIFJlZlB0cjxX
ZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9y
ZUNvcHkgPSBXZWJDb3JlOjpDb3B5QmFja2luZ1N0b3JlKSBjb25zdDsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVP
cHRpb25zID0geyB9KSBjb25zdDsKICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAo
KSBjb25zdDsKICNpZiBVU0UoQ0FJUk8pCiAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY3Jl
YXRlQ2Fpcm9TdXJmYWNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9T
aGFyZWFibGVCaXRtYXBDRy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVC
aXRtYXBDRy5jcHAKaW5kZXggYjQ2NGI5Nzg0NDJmLi4zNDY2NzU0NWZjZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKQEAgLTE4OSw5ICsxODks
OSBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gU2hhcmVhYmxlQml0bWFwOjptYWtlQ0dJbWFnZShT
aG91bGRJbnRlcnBvbGF0ZSBzaG91bGRJbnRlcgogICAgIHJldHVybiBjcmVhdGVDR0ltYWdlKGRh
dGFQcm92aWRlci5nZXQoKSwgc2hvdWxkSW50ZXJwb2xhdGUpOwogfQogCi1QbGF0Zm9ybUltYWdl
UHRyIFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlUGxhdGZvcm1JbWFnZShCYWNraW5nU3RvcmVDb3B5
IGNvcHlCZWhhdmlvciwgU2hvdWxkSW50ZXJwb2xhdGUgc2hvdWxkSW50ZXJwb2xhdGUpCitQbGF0
Zm9ybUltYWdlUHRyIFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlUGxhdGZvcm1JbWFnZShCYWNraW5n
U3RvcmVPcHRpb25zIGNvcHlCZWhhdmlvciwgU2hvdWxkSW50ZXJwb2xhdGUgc2hvdWxkSW50ZXJw
b2xhdGUpCiB7Ci0gICAgaWYgKGNvcHlCZWhhdmlvciA9PSBDb3B5QmFja2luZ1N0b3JlKQorICAg
IGlmICghY29weUJlaGF2aW9yLmNvbnRhaW5zKEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNl
KSkKICAgICAgICAgcmV0dXJuIG1ha2VDR0ltYWdlQ29weSgpOwogICAgIHJldHVybiBtYWtlQ0dJ
bWFnZShzaG91bGRJbnRlcnBvbGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQppbmRleCBkZmE2NjM2Nzg4ZTkuLjE1N2NlMjFj
MDg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRl
ckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVy
Q2xpZW50Lm1tCkBAIC0yOTcsNyArMjk3LDcgQEAgLSAodm9pZClkaWRHZXRJbWFnZUZvck1hdGNo
UmVzdWx0OihXZWJLaXQ6OldlYkltYWdlICopaW1hZ2UKICAgICBhdXRvIHNpemUgPSBpbWFnZS0+
c2l6ZSgpOwogICAgIHNpemUuc2NhbGUoMSAvIF9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsK
ICAgICAKLSAgICBhdXRvIG5hdGl2ZUltYWdlID0gaW1hZ2UtPmNvcHlOYXRpdmVJbWFnZShXZWJD
b3JlOjpEb250Q29weUJhY2tpbmdTdG9yZSk7CisgICAgYXV0byBuYXRpdmVJbWFnZSA9IGltYWdl
LT5jb3B5TmF0aXZlSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlT3B0aW9uOjpSZWZlcmVuY2Up
OwogICAgIGlmICghbmF0aXZlSW1hZ2UpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCmluZGV4IGQ3ZTNkYTcyOWM2
OC4uNzcxZjAzYmJmYzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJp
dG1hcEJhY2tlbmQuY3BwCkBAIC0xNDgsMTIgKzE0OCwxMiBAQCBSZWZQdHI8Y2Fpcm9fc3VyZmFj
ZV90PiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZUNhaXJvU3VyZmFj
ZSgpCiB9CiAjZW5kaWYKIAotUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5IGNvcHlCZWhh
dmlvcikgY29uc3QKK1JlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRt
YXBCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucyBjb3B5QmVoYXZp
b3IpIGNvbnN0CiB7CiAgICAgcmV0dXJuIE5hdGl2ZUltYWdlOjpjcmVhdGUobV9iaXRtYXAtPmNy
ZWF0ZVBsYXRmb3JtSW1hZ2UoY29weUJlaGF2aW9yKSk7CiB9CiAKLVJlZlB0cjxJbWFnZT4gSW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29w
eSwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdAorUmVmUHRyPEltYWdlPiBJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZShCYWNraW5nU3RvcmVPcHRpb25zLCBQcmVz
ZXJ2ZVJlc29sdXRpb24pIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fYml0bWFwLT5jcmVhdGVJbWFn
ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgK
aW5kZXggZjU5ODIyNTdiYmExLi44YzNjNjc3YzIzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaApAQCAtNjIsOCArNjIsOCBAQCBwdWJsaWM6CiAg
ICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY3JlYXRlQ2Fpcm9TdXJmYWNlKCkgZmluYWw7CiAj
ZW5kaWYKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdl
KFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHkgPSBXZWJDb3JlOjpDb3B5QmFja2luZ1N0b3JlKSBj
b25zdCBmaW5hbDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGNvcHlJbWFnZShXZWJDb3Jl
OjpCYWNraW5nU3RvcmVDb3B5ID0gV2ViQ29yZTo6Q29weUJhY2tpbmdTdG9yZSwgV2ViQ29yZTo6
UHJlc2VydmVSZXNvbHV0aW9uID0gV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uOjpObykgY29u
c3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0aXZlSW1h
Z2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlT3B0aW9ucykgY29uc3QgZmluYWw7CisgICAgUmVmUHRy
PFdlYkNvcmU6OkltYWdlPiBjb3B5SW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlT3B0aW9ucywg
V2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBmaW5hbDsKIAogICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBp
eGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBk
ZXN0Rm9ybWF0KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggOGEyZTM2
NmM2NGYyLi4wYzA1MmE3NjQ5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0x
NzUsNyArMTc1LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHktPmdldERhdGFGb3JJbWFnZUJ1ZmZlcihtaW1lVHlwZSwgcXVhbGl0eSwg
bV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0KIAotICAgIFJlZlB0cjxXZWJD
b3JlOjpOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNv
cHkgY29weUJlaGF2aW9yID0gV2ViQ29yZTo6Q29weUJhY2tpbmdTdG9yZSkgY29uc3QgZmluYWwK
KyAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShXZWJDb3Jl
OjpCYWNraW5nU3RvcmVPcHRpb25zIGNvcHlCZWhhdmlvciA9IHsgfSkgY29uc3QgZmluYWwKICAg
ICB7CiAgICAgICAgIGlmIChVTkxJS0VMWSghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkp
KQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE4NywxMCArMTg3LDEwIEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgYXV0byBiaXRtYXAgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+
Z2V0U2hhcmVhYmxlQml0bWFwKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQcmVzZXJ2ZVJlc29sdXRpb246Olllcyk7CiAgICAgICAgIGlmICghYml0bWFwKQogICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjpj
cmVhdGUoYml0bWFwLT5jcmVhdGVQbGF0Zm9ybUltYWdlKFdlYkNvcmU6OkRvbnRDb3B5QmFja2lu
Z1N0b3JlKSk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXRpdmVJbWFnZTo6Y3JlYXRlKGJp
dG1hcC0+Y3JlYXRlUGxhdGZvcm1JbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVPcHRpb246OlJl
ZmVyZW5jZSkpOwogICAgIH0KIAotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gY29weUltYWdl
KFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2aW9yID0gV2ViQ29yZTo6Q29weUJh
Y2tpbmdTdG9yZSwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1dGlv
biA9IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbjo6Tm8pIGNvbnN0IGZpbmFsCisgICAgUmVm
UHRyPFdlYkNvcmU6OkltYWdlPiBjb3B5SW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlT3B0aW9u
cyBjb3B5QmVoYXZpb3IgPSB7IH0sIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2
ZVJlc29sdXRpb24gPSBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKSBjb25zdCBmaW5h
bAogICAgIHsKICAgICAgICAgaWYgKFVOTElLRUxZKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSkpCiAgICAgICAgICAgICByZXR1cm4geyB9OwpAQCAtMjE4LDcgKzIxOCw3IEBAIHByb3Rl
Y3RlZDoKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gc2lua0ludG9JbWFnZShXZWJDb3Jl
OjpQcmVzZXJ2ZVJlc29sdXRpb24gcHJlc2VydmVSZXNvbHV0aW9uID0gV2ViQ29yZTo6UHJlc2Vy
dmVSZXNvbHV0aW9uOjpObykgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBjb3B5SW1hZ2Uo
V2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weTo6Q29weUJhY2tpbmdTdG9yZSwgcHJlc2VydmVSZXNv
bHV0aW9uKTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbWFnZSh7IH0sIHByZXNlcnZlUmVzb2x1dGlv
bik7CiAgICAgfQogCiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBmaWx0ZXJlZEltYWdlKFdl
YkNvcmU6OkZpbHRlciYgZmlsdGVyKSBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDIwMzE3YzY0ZDBlNy4u
ZWRkMTA3MjEzZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJl
bW90ZUlPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCB1bnNpZ25lZCBJ
bWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmJ5dGVzUGVyUm93KCkgY29uc3QKICAg
ICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVCeXRlc1BlclJv
dyhiYWNrZW5kU2l6ZSk7CiB9CiAKLVJlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJSZW1v
dGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weSkgY29u
c3QKK1JlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5k
Ojpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucykgY29uc3QKIHsKICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiB7IH07CiB9CiAKLVJlZlB0cjxJ
bWFnZT4gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2lu
Z1N0b3JlQ29weSwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdAorUmVmUHRyPEltYWdlPiBJbWFn
ZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZShCYWNraW5nU3RvcmVPcHRp
b25zLCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggN2EwZmRkZGRlY2Q3Li42MGZh
MDhiYzE2MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlP
U3VyZmFjZUJhY2tlbmQuaApAQCAtNTksOCArNTksOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgV2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdT
dG9yZUNvcHkpIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gY29weUlt
YWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlv
bikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0
aXZlSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlT3B0aW9ucykgY29uc3QgZmluYWw7CisgICAg
UmVmUHRyPFdlYkNvcmU6OkltYWdlPiBjb3B5SW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlT3B0
aW9ucywgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91Ymxl
PiBxdWFsaXR5LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0IGZpbmFsOwogICAg
IFZlY3Rvcjx1aW50OF90PiB0b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRp
b25hbDxkb3VibGU+IHF1YWxpdHkpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVm
ZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
Y29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCA4MDgyNzUxZjFkNGUuLjUwZTg0
ZWUwNDUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtODMsNyArODMsNyBAQCB2
b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJz
aGlwSWRlbnRpdHkoY29uc3QgV2ViQwogICAgIG1fc3VyZmFjZS0+c2V0T3duZXJzaGlwSWRlbnRp
dHkocmVzb3VyY2VPd25lcik7CiB9CiAKLVJlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJT
aGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0
b3JlQ29weSBjb3B5QmVoYXZpb3IpIGNvbnN0CitSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tp
bmdTdG9yZU9wdGlvbnMgY29weUJlaGF2aW9yKSBjb25zdAogewogICAgIGF1dG8gY3VycmVudFNl
ZWQgPSBtX3N1cmZhY2UtPnNlZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggODc2
NzBjMzkxZjllLi4wNjZhM2I1Nzk2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZh
Y2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApAQCAtNTQs
NyArNTQsNyBAQCBwcml2YXRlOgogICAgIC8vIEltYWdlQnVmZmVyQmFja2VuZFNoYXJpbmcKICAg
ICBJbWFnZUJ1ZmZlckJhY2tlbmRTaGFyaW5nKiB0b0JhY2tlbmRTaGFyaW5nKCkgZmluYWwgeyBy
ZXR1cm4gdGhpczsgfQogCi0gICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0
aXZlSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSA9IFdlYkNvcmU6OkNvcHlCYWNraW5n
U3RvcmUpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29w
eU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZU9wdGlvbnMpIGNvbnN0IGZpbmFsOwog
CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpJT1N1cmZhY2VTZWVkIG1fbGFzdFNlZWRXaGVuQ29weWlu
Z0ltYWdlIHsgMCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5tbQppbmRleCA5MzkwYWUzODk5MzkuLmIxMzdiZTViYTMw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
Tm9kZUhhbmRsZS5tbQpAQCAtNzQsNyArNzQsNyBAQCAtIChDb2NvYUltYWdlICopcmVuZGVyZWRJ
bWFnZVdpdGhPcHRpb25zOihXS1NuYXBzaG90T3B0aW9ucylvcHRpb25zIHdpZHRoOihOU051bQog
ICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBhdXRvIG5hdGl2ZUlt
YWdlID0gaW1hZ2UtPmNvcHlOYXRpdmVJbWFnZShXZWJDb3JlOjpEb250Q29weUJhY2tpbmdTdG9y
ZSk7CisgICAgYXV0byBuYXRpdmVJbWFnZSA9IGltYWdlLT5jb3B5TmF0aXZlSW1hZ2UoV2ViQ29y
ZTo6QmFja2luZ1N0b3JlT3B0aW9uOjpSZWZlcmVuY2UpOwogICAgIGlmICghbmF0aXZlSW1hZ2Up
CiAgICAgICAgIHJldHVybiBuaWw7CiAKLS0gCjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459717</attachid>
            <date>2022-05-24 05:25:53 -0700</date>
            <delta_ts>2022-05-24 22:05:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240866-20220524152551.patch</filename>
            <type>text/plain</type>
            <size>56264</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">RnJvbSA2Mzk0MDRiMjVjNDZhN2RjZTYxZjE0ZGViMDI1YzRmODI4ZmU0MDY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLaW1tbyBLaW5udW5lbiA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAyNCBNYXkgMjAyMiAxNToxMDozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIFN1
cHBvcnQgbXVsdGlwbGUgb3B0aW9ucyBmb3Igc3BlY2lmeWluZyB0aGUgcmVzdWx0IG5hdGl2ZQog
aW1hZ2Ugb3V0IG9mICBJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2ZUltYWdlKCkKIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA4NjYKClJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgoKUmVuYW1lIGVudW0gQmFja2luZ1N0b3JlQ29weSB0byBCYWNraW5nU3RvcmVPcHRp
b25zID0gT3B0aW9uU2V0PEJhY2tpbmdTdG9yZU9wdGlvbj4uClRoaXMgd2F5IG5ldyBvcHRpb25z
IGNhbiBjb25maWd1cmUgaG93IHRoZSBJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2ZUltYWdlIHNob3Vs
ZCBjb25maWd1cmUKdGhlIHJlc3VsdGluZyBOYXRpdmVJbWFnZS4gVGhpcyB3YXkgdmFyaW91cyB1
c2UtY2FzZXMsIHN1Y2ggYXMgZGF0YSBVUkwgZW5jb2RpbmcKY2FuIHVzZSB0aGUgZ2VuZXJhbCBw
dXJwb3NlIGNvcHlOYXRpdmVJbWFnZSBpbnN0ZWFkIG9mIG5lZWRpbmcgaW5kaXZpZHVhbCBJbWFn
ZUJ1ZmZlciBtZXRob2RzLgoKVG8gYmUgdXNlZCBpbiBzY2VuYXJpbyB3aGVyZSBpbnN0ZWFkIG9m
IGNhbGxpbmcKIFN0cmluZyBkID0gaW1hZ2VCdWZmZXItPnRvRGF0YVVSTCgpOwpXZSB3b3VsZCBj
YWxsCiBTdHJpbmcgZCA9IGRhdGFVUkwoaW1hZ2VCdWZmZXItPmNvcHlOYXRpdmVJbWFnZSh7IEJh
Y2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlLCBCYWNraW5nU3RvcmVPcHRpb246OkltYWdlRm9y
bWF0UkdCWCB9KTsKClRoZSBmdXR1cmUgQmFja2luZ1N0b3JlT3B0aW9uOjpJbWFnZUZvcm1hdFJH
Qlggd291bGQgYmUgQ0ctc3BlY2lmaWMgZmxhZyBmb3IgQ0dJbWFnZS4gVGhlIHBsYXRmb3JtLXNw
ZWNpZmljCmVuY29kaW5nIG5lZWRzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBpbWFnZSBmb3JtYXQg
aW4gc29tZSBjYXNlcy4KCkNhbiBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8gYWxzbyBjb21iaW5l
IFByZXNlcnZlUmVzb2x1dGlvbiwgc28gdGhhdCBmdXJ0aGVyIGNhbGxzIHN1Y2ggYXMgSW1hZ2VC
dWZmZXI6OmNvcHlJbWFnZSgpIGNhbgpiZSBpbXBsZW1lbnRlZCBvbiB0b3Agb2YgSW1hZ2VCdWZm
ZXI6OmNvcHlOYXRpdmVJbWFnZSgpLgoKQWxzbyByZW1vdmVzIGFsbCByZWxhdGVkIGRlZmF1bHQg
YXJndW1lbnRzIGZyb20gSW1hZ2VCdWZmZXJCYWNrZW5kIGFuZCBpdHMgc3ViY2xhc3Nlcy4gVGhl
IGNsYXNzIGlzCmltcGxlbWVudGF0aW9uIGRldGFpbCBvZiBJbWFnZUJ1ZmZlciwgYW5kIHRoZXJl
IGFyZSBubyBjb252ZW5pZW5jZSBjYWxscyB0byBpdCB2aWEgZGVmYXVsdGVkIGFyZ3VtZW50cy4K
QWxsIGNhbGwgc2l0ZXMgbXVzdCBiZSBmdWxseSBzcGVjaWZpZWQsIGFzIHRoZXkncmUgZm9yd2Fy
ZGluZyBJbWFnZUJ1ZmZlciBjYWxsIGFyZ3VtZW50cy4KCiogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlcjoKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcDoKKFdl
YkNvcmU6OkN1c3RvbVBhaW50Q2FudmFzOjpjb3BpZWRJbWFnZSBjb25zdCk6CiogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CihXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVu
Q2FudmFzLmNwcDoKKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6Y29waWVkSW1hZ2UgY29uc3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwOgooV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2VTb3VyY2VI
ZWxwZXIpOgooV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0ltYWdlSW50
b0J1ZmZlcik6CihXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2aWRlb0ZyYW1l
VG9JbWFnZSk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1h
Z2VCdWZmZXIuaDoKKFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNvcHlOYXRpdmVJbWFn
ZSk6CihXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyOjpjb3B5SW1hZ2UpOgoqIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvcHlJbWFnZU9wdGlvbnMuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oOgooV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OmNvcHlOYXRpdmVJbWFnZSk6CihXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y29weUltYWdlKToK
KiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3Bw
OgooV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpzaW5rSW50b05hdGl2ZUltYWdlKToKKFdl
YkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6c2lua0ludG9JbWFnZSk6CiogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CiogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlSW1hZ2UuY3BwOgooV2ViQ29yZTo6U291cmNlSW1h
Z2U6Om5hdGl2ZUltYWdlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwOgooV2ViQ29yZTo6Q2Fpcm86OmRyYXdTaGFkb3dM
YXllckJ1ZmZlcik6CihXZWJDb3JlOjpDYWlybzo6ZHJhd1NoYWRvd0ltYWdlKToKKFdlYkNvcmU6
OkNhaXJvOjpmaWxsU2hhZG93QnVmZmVyKToKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHA6CihXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRDYWlybzo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmNwcDoKKFdlYkNvcmU6Oklt
YWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjpjb3B5SW1hZ2UgY29uc3QpOgooV2ViQ29yZTo6SW1hZ2VC
dWZmZXJDYWlyb0JhY2tlbmQ6OmNsaXBUb01hc2spOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmg6CiogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5k
LmNwcDoKKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2
ZUltYWdlIGNvbnN0KToKKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6
Y2Fpcm9TdXJmYWNlQ29lcmNlVG9JbWFnZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmg6CiogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3Bw
OgooV2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OmNvcHlJbWFnZSBjb25zdCk6CihXZWJD
b3JlOjpJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y2xpcFRvTWFzayk6CihXZWJDb3JlOjpJbWFnZUJ1
ZmZlckNHQmFja2VuZDo6Y29weUNHSW1hZ2VGb3JFbmNvZGluZyBjb25zdCk6CiogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2Vu
ZC5jcHA6CihXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y29weU5hdGl2ZUlt
YWdlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZC5oOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHA6CihXZWJDb3JlOjpJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZSBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg6Ciog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fp
cm9PcGVyYXRpb25SZWNvcmRlci5jcHA6CihOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVy
OjpkcmF3SW1hZ2VCdWZmZXIpOgooTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgooTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6
Y2xpcFRvSW1hZ2VCdWZmZXIpOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlLmNwcDoKKFdlYkNvcmU6OkJpdG1hcFRleHR1cmU6OnVwZGF0ZUNv
bnRlbnRzKToKKiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHA6CihXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNhY2hlTmF0
aXZlSW1hZ2VXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CiogU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwOgooV2Vi
S2l0OjpDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UgY29u
c3QpOgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9DR0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXJCYWNrZW5kLmg6CiogU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0
bWFwLmg6CihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlUGxhdGZvcm1JbWFnZSk6Ciog
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViSW1hZ2UuY3BwOgooV2ViS2l0OjpXZWJJbWFnZTo6Y29w
eU5hdGl2ZUltYWdlIGNvbnN0KToKKiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJJbWFnZS5oOgoo
V2ViS2l0OjpXZWJJbWFnZTo6Y29weU5hdGl2ZUltYWdlKToKKiBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHA6CihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6Y3Jl
YXRlUGxhdGZvcm1JbWFnZSk6CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZp
bmRlckNsaWVudC5tbToKKC1bV0tUZXh0RmluZGVyQ2xpZW50IGRpZEdldEltYWdlRm9yTWF0Y2hS
ZXN1bHQ6XSk6CiogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwOgooV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZSBjb25zdCk6CihXZWJLaXQ6OkltYWdl
QnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y29weUltYWdlIGNvbnN0KToKKiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5oOgoqIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oOgooV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Ojpjb3B5
TmF0aXZlSW1hZ2UpOgooV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Ojpjb3B5SW1hZ2Up
OgoqIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJ
T1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UgY29uc3QpOgooV2ViS2l0OjpJbWFnZUJ1
ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZSBjb25zdCk6CiogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3Vy
ZmFjZUJhY2tlbmQuaDoKKiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHA6CihXZWJL
aXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2
ZUltYWdlIGNvbnN0KToKKiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOgoqIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luTm9kZUhhbmRsZS5tbToKKC1bV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSByZW5k
ZXJlZEltYWdlV2l0aE9wdGlvbnM6d2lkdGg6XSk6Ci0tLQogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlciAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBTb3VyY2UvV2ViQ29yZS9odG1sL0N1
c3RvbVBhaW50Q2FudmFzLmNwcCAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2Ny
ZWVuQ2FudmFzLmNwcCAgICAgICB8ICAyICstCiAuLi4vaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHAgfCAxMCArKystLS0KIC4uLi9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmggICB8ICAyICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3Jl
dGVJbWFnZUJ1ZmZlci5oICAgfCAgOCArKy0tLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL0NvcHlJ
bWFnZU9wdGlvbnMuaCAgICAgIHwgIDggKysrLS0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmggICB8ICA0ICstLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyQmFja2VuZC5jcHAgIHwgIDQgKy0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJCYWNrZW5kLmggICAgfCAgNCArLS0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NvdXJjZUltYWdlLmNwcCB8ICAyICstCiAuLi4vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRp
b25zLmNwcCAgICAgICAgfCAgNiArKy0tCiAuLi4vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwICAgfCAgMiArLQogLi4uL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5k
LmNwcCAgICAgICAgIHwgIDQgKy0tCiAuLi4vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWly
b0JhY2tlbmQuaCAgfCAgMiArLQogLi4uL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFj
a2VuZC5jcHAgIHwgMzUgKysrKysrKystLS0tLS0tLS0tLQogLi4uL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9TdXJmYWNlQmFja2VuZC5oICAgIHwgIDIgKy0KIC4uLi9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQmFja2VuZC5jcHAgICAgICB8IDEwICsrKy0tLQogLi4uL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0dCYWNrZW5kLmggICAgICAgIHwgIDIgKy0KIC4uLi9jZy9JbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZC5jcHAgICAgICAgICB8IDEyICsrLS0tLS0KIC4uLi9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oICB8ICAyICstCiAuLi4vY2cvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmNwcCAgICAgICAgfCAgMiArLQogLi4uL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZC5oIHwgIDIgKy0KIC4uLi9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVy
YXRpb25SZWNvcmRlci5jcHAgICB8ICA2ICsrLS0KIC4uLi9ncmFwaGljcy90ZXhtYXAvQml0bWFw
VGV4dHVyZS5jcHAgICAgICAgICB8ICAyICstCiAuLi4vZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5jcHAgICAgICAgfCAgMiArLQogLi4uL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJh
Y2tlbmQuY3BwICAgICAgIHwgIDIgKy0KIC4uLi9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNr
ZW5kLmggICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVCaXRt
YXAuaCAgICAgICAgfCAgNCArLS0KIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkltYWdlLmNwcCAg
ICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJJbWFnZS5oICAgICAg
ICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFw
Q0cuY3BwIHwgIDQgKy0tCiAuLi4vVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0g
ICAgICAgfCAgMiArLQogLi4uL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAg
ICAgIHwgIDQgKy0tCiAuLi4vSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggICAg
ICAgfCAgNCArLS0KIC4uLi9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICAg
ICB8ICA4ICsrLS0tCiAuLi4vSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAg
ICAgfCAgNCArLS0KIC4uLi9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQu
aCB8ICA0ICstLQogLi4uZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3Bw
IHwgIDIgKy0KIC4uLmFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCB8
ICAyICstCiAuLi4vQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUubW0gfCAg
MiArLQogNDIgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgMTAxIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IGM0ODk4ZDZkYjZiZi4uMTdmMTFlN2I4NTJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIKQEAgLTUxNDQsNyArNTE0NCw3IEBAIF9fWk43V2ViQ29yZTE1R3JhcGhp
Y3NDb250ZXh0MTFjbGVhclNoYWRvd0V2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDE5
Y2xlYXJQbGF0Zm9ybVNoYWRvd0V2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDE1ZHJh
d0ltYWdlQnVmZmVyRVBOU18xMUltYWdlQnVmZmVyRU5TXzEwQ29sb3JTcGFjZUVSS05TXzlGbG9h
dFJlY3RFUzZfTlNfMTdDb21wb3NpdGVPcGVyYXRvckVOU185QmxlbmRNb2RlRWIKIF9fWk43V2Vi
Q29yZTExSW1hZ2VCdWZmZXI0ZHJhd0VQTlNfMTVHcmFwaGljc0NvbnRleHRFTlNfMTBDb2xvclNw
YWNlRVJLTlNfOUZsb2F0UmVjdEVTNl9OU18xN0NvbXBvc2l0ZU9wZXJhdG9yRU5TXzlCbGVuZE1v
ZGVFYgotX19aTks3V2ViQ29yZTExSW1hZ2VCdWZmZXIxNWNvcHlOYXRpdmVJbWFnZUVOU18xNkJh
Y2tpbmdTdG9yZUNvcHlFCitfX1pOSzdXZWJDb3JlMTFJbWFnZUJ1ZmZlcjE1Y29weU5hdGl2ZUlt
YWdlRU5TXzE2QmFja2luZ1N0b3JlT3B0aW9uc0UKIF9fWk43V2ViQ29yZTEzc3ViaW1hZ2VDYWNo
ZUV2CiBfX1pON1dlYkNvcmUyMlN1YmltYWdlQ2FjaGVXaXRoVGltZXIxMWdldFN1YmltYWdlRVA3
Q0dJbWFnZVJLTlNfOUZsb2F0UmVjdEUKIF9fWk4zV1RGOUhhc2hUYWJsZUlON1dlYkNvcmUyMlN1
YmltYWdlQ2FjaGVXaXRoVGltZXIxOFN1YmltYWdlQ2FjaGVFbnRyeUVTM19OU18xN0lkZW50aXR5
RXh0cmFjdG9yRU5TMl8xN1N1YmltYWdlQ2FjaGVIYXNoRU5TMl8yNFN1YmltYWdlQ2FjaGVFbnRy
eVRyYWl0c0VTNl9FMTZsb29rdXBGb3JXcml0aW5nSU5TXzIySWRlbnRpdHlIYXNoVHJhbnNsYXRv
cklTNV9FRVMzX0VFTlN0M19fMTRwYWlySVBTM19iRUVSS1QwXwpAQCAtMTI3OTEsNyArMTI3OTEs
NyBAQCBfX1pOSzdXZWJDb3JlOEdyYWRpZW50OGhhc0FscGhhRXYKIF9fWk5LN1dlYkNvcmUxNUdy
YXBoaWNzQ29udGV4dDIyY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlckVSS05TXzdJbnRTaXplRWIKIF9f
Wk43V2ViQ29yZTExSW1hZ2VCdWZmZXIyMmNyZWF0ZUNvbXBhdGlibGVCdWZmZXJFUktOU183SW50
U2l6ZUVmTlNfMTBDb2xvclNwYWNlRVBLTlNfMTVHcmFwaGljc0NvbnRleHRFYgogX19aTjdXZWJD
b3JlMTVHcmFwaGljc0NvbnRleHQ4ZmlsbFJlY3RFUktOU185RmxvYXRSZWN0RVJOU184R3JhZGll
bnRFCi1fX1pOSzdXZWJDb3JlMTFJbWFnZUJ1ZmZlcjljb3B5SW1hZ2VFTlNfMTZCYWNraW5nU3Rv
cmVDb3B5RU5TXzEzU2NhbGVCZWhhdmlvckUKK19fWk5LN1dlYkNvcmUxMUltYWdlQnVmZmVyOWNv
cHlJbWFnZUVOU18xNkJhY2tpbmdTdG9yZU9wdGlvbnNFTlNfMTNTY2FsZUJlaGF2aW9yRQogX19a
TjdXZWJDb3JlMjJKU0hUTUxQYXJhZ3JhcGhFbGVtZW50M3B1dEVQTjNKU0M2SlNDZWxsRVBOUzFf
OUV4ZWNTdGF0ZUVOUzFfMTJQcm9wZXJ0eU5hbWVFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9w
ZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmUyMWpzQ2hhcmFjdGVyRGF0YUxlbmd0aEVQTjNKU0M5RXhl
Y1N0YXRlRU5TMF83SlNWYWx1ZUVOUzBfMTJQcm9wZXJ0eU5hbWVFCiBfX1pON1dlYkNvcmVMMTlm
b250RmFtaWx5RnJvbVN0eWxlRVBOU18xMVJlbmRlclN0eWxlRQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0N1c3RvbVBhaW50Q2FudmFzLmNwcAppbmRleCA4NzM4ZmIyNzZiNGEuLjAwN2FlNjkwN2YyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKQEAgLTEwMSw3ICsx
MDEsNyBAQCBJbWFnZSogQ3VzdG9tUGFpbnRDYW52YXM6OmNvcGllZEltYWdlKCkgY29uc3QKICAg
ICAgICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygpOwogICAgIG1f
ZGVzdGluYXRpb25HcmFwaGljc0NvbnRleHQgPSBudWxscHRyOwogCi0gICAgbV9jb3BpZWRJbWFn
ZSA9IG1fY29waWVkQnVmZmVyLT5jb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUsIFByZXNl
cnZlUmVzb2x1dGlvbjo6WWVzKTsKKyAgICBtX2NvcGllZEltYWdlID0gbV9jb3BpZWRCdWZmZXIt
PmNvcHlJbWFnZShCYWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSwgUHJlc2VydmVSZXNvbHV0
aW9uOjpZZXMpOwogICAgIHJldHVybiBtX2NvcGllZEltYWdlLmdldCgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDMyMjcyZTAzODVkMC4uMTNm
NDA0YmZmMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApA
QCAtOTQwLDcgKzk0MCw3IEBAIEltYWdlKiBIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2Uo
KSBjb25zdAogICAgIGlmICghbV9jb3BpZWRJbWFnZSAmJiBidWZmZXIoKSkgewogICAgICAgICBp
ZiAobV9jb250ZXh0KQogICAgICAgICAgICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3Vs
dHNUb0NhbnZhcygpOwotICAgICAgICBtX2NvcGllZEltYWdlID0gYnVmZmVyKCktPmNvcHlJbWFn
ZShDb3B5QmFja2luZ1N0b3JlLCBQcmVzZXJ2ZVJlc29sdXRpb246Olllcyk7CisgICAgICAgIG1f
Y29waWVkSW1hZ2UgPSBidWZmZXIoKS0+Y29weUltYWdlKHsgfSwgUHJlc2VydmVSZXNvbHV0aW9u
OjpZZXMpOwogICAgIH0KICAgICByZXR1cm4gbV9jb3BpZWRJbWFnZS5nZXQoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAppbmRleCA4OGQ5Zjc4YzlhNWMuLjZkODU1
M2UyNmI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApAQCAtMzgy
LDcgKzM4Miw3IEBAIEltYWdlKiBPZmZzY3JlZW5DYW52YXM6OmNvcGllZEltYWdlKCkgY29uc3QK
ICAgICBpZiAoIW1fY29waWVkSW1hZ2UgJiYgYnVmZmVyKCkpIHsKICAgICAgICAgaWYgKG1fY29u
dGV4dCkKICAgICAgICAgICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52
YXMoKTsKLSAgICAgICAgbV9jb3BpZWRJbWFnZSA9IGJ1ZmZlcigpLT5jb3B5SW1hZ2UoQ29weUJh
Y2tpbmdTdG9yZSwgUHJlc2VydmVSZXNvbHV0aW9uOjpZZXMpOworICAgICAgICBtX2NvcGllZElt
YWdlID0gYnVmZmVyKCktPmNvcHlJbWFnZSh7IH0sIFByZXNlcnZlUmVzb2x1dGlvbjo6WWVzKTsK
ICAgICB9CiAgICAgcmV0dXJuIG1fY29waWVkSW1hZ2UuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGE5ZDIyNjUyZWM0Yi4uOTg4NmVlNzJlZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAt
NDk2MCw3ICs0OTYwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6dGV4SW1hZ2VTb3VyY2VIZWxwZXIoVGV4SW1hZ2VGdW5jdGkKICNlbmRpZiAvLyAhVVNF
KEFOR0xFKQogCiAgICAgICAgIC8vIEZhbGxiYWNrIHB1cmUgU1cgcGF0aC4KLSAgICAgICAgUmVm
UHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3Jl
KTsKKyAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKEJhY2tp
bmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlKTsKICAgICAgICAgLy8gVGhlIHByZW11bHRpcGx5QWxw
aGEgYW5kIGZsaXBZIHBpeGVsIHVucGFjayBwYXJhbWV0ZXJzIGFyZSBpZ25vcmVkIGZvciBJbWFn
ZUJpdG1hcHMuCiAgICAgICAgIGlmIChpbWFnZSkKICAgICAgICAgICAgIHRleEltYWdlSW1wbChm
dW5jdGlvbklELCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgeG9mZnNldCwgeW9mZnNl
dCwgem9mZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0R0w6
OkRPTVNvdXJjZTo6SW1hZ2UsIGZhbHNlLCBiaXRtYXAtPnByZW11bHRpcGx5QWxwaGEoKSwgYml0
bWFwLT5mb3JjaWJseVByZW11bHRpcGx5QWxwaGEoKSwgc291cmNlSW1hZ2VSZWN0LCBkZXB0aCwg
dW5wYWNrSW1hZ2VIZWlnaHQpOwpAQCAtNTE0MCw3ICs1MTQwLDcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2VTb3VyY2VIZWxwZXIoVGV4SW1h
Z2VGdW5jdGkKICAgICAgICAgfQogCiAgICAgICAgIC8vIEZhbGxiYWNrIHB1cmUgU1cgcGF0aC4K
LSAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IHZpZGVvRnJhbWVUb0ltYWdlKHZpZGVvLmdl
dCgpLCBEb250Q29weUJhY2tpbmdTdG9yZSwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgUmVmUHRy
PEltYWdlPiBpbWFnZSA9IHZpZGVvRnJhbWVUb0ltYWdlKHZpZGVvLmdldCgpLCBCYWNraW5nU3Rv
cmVPcHRpb246OlJlZmVyZW5jZSwgZnVuY3Rpb25OYW1lKTsKICAgICAgICAgaWYgKCFpbWFnZSkK
ICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIHRleEltYWdlSW1wbChmdW5jdGlvbklE
LCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgeG9mZnNldCwgeW9mZnNldCwgem9mZnNl
dCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0R0w6OkRPTVNvdXJj
ZTo6VmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSwgZmFsc2Us
IGlucHV0U291cmNlSW1hZ2VSZWN0LCBkZXB0aCwgdW5wYWNrSW1hZ2VIZWlnaHQpOwpAQCAtNTk2
OSwxMiArNTk2OSwxMiBAQCBSZWZQdHI8SW1hZ2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRyYXdJbWFnZUludG9CdWZmZXIoSW1hZ2UmIGltYWdlLCBpbnQgdwogICAgIEZsb2F0UmVjdCBz
cmNSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2Uuc2l6ZSgpKTsKICAgICBGbG9hdFJlY3QgZGVzdFJl
Y3QoRmxvYXRQb2ludCgpLCBzaXplKTsKICAgICBidWYtPmNvbnRleHQoKS5kcmF3SW1hZ2UoaW1h
Z2UsIGRlc3RSZWN0LCBzcmNSZWN0KTsKLSAgICByZXR1cm4gYnVmLT5jb3B5SW1hZ2UoRG9udENv
cHlCYWNraW5nU3RvcmUpOworICAgIHJldHVybiBidWYtPmNvcHlJbWFnZShCYWNraW5nU3RvcmVP
cHRpb246OlJlZmVyZW5jZSk7CiB9CiAKICNpZiBFTkFCTEUoVklERU8pCiAKLVJlZlB0cjxJbWFn
ZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmlkZW9GcmFtZVRvSW1hZ2UoSFRNTFZpZGVv
RWxlbWVudCogdmlkZW8sIEJhY2tpbmdTdG9yZUNvcHkgYmFja2luZ1N0b3JlQ29weSwgY29uc3Qg
Y2hhciogZnVuY3Rpb25OYW1lKQorUmVmUHRyPEltYWdlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp2aWRlb0ZyYW1lVG9JbWFnZShIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywgQmFja2luZ1N0
b3JlT3B0aW9ucyBjb3B5QmVoYXZpb3IsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSkKIHsKICAg
ICBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIgPSBudWxscHRyOwogICAgIC8vIEZJWE1FOiBXaGVu
IHRleEltYWdlMkQgaXMgcGFzc2VkIGFuIEhUTUxWaWRlb0VsZW1lbnQsIGltcGxlbWVudGF0aW9u
cwpAQCAtNjAyMSw3ICs2MDIxLDcgQEAgUmVmUHRyPEltYWdlPiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp2aWRlb0ZyYW1lVG9JbWFnZShIVE1MVmlkZW9FbGVtZW50KiB2aWQKICAgICAgICAg
fQogICAgICAgICB2aWRlby0+cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoaW1hZ2VCdWZmZXIt
PmNvbnRleHQoKSwgeyB7IH0sIHZpZGVvU2l6ZSB9KTsKICAgICB9Ci0gICAgUmVmUHRyPEltYWdl
PiBpbWFnZSA9IGltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoYmFja2luZ1N0b3JlQ29weSk7CisgICAg
UmVmUHRyPEltYWdlPiBpbWFnZSA9IGltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoY29weUJlaGF2aW9y
KTsKICAgICBpZiAoIWltYWdlKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dEdMOjpPVVRfT0ZfTUVNT1JZLCBmdW5jdGlvbk5hbWUsICJvdXQgb2YgbWVtb3J5Iik7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDUyZTI2YjYzYjNlNy4u
ZTU2NTdiNmM0OTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC01MzQsNyArNTM0LDcgQEAgcHJvdGVjdGVk
OgogICAgIFJlZlB0cjxJbWFnZT4gZHJhd0ltYWdlSW50b0J1ZmZlcihJbWFnZSYsIGludCB3aWR0
aCwgaW50IGhlaWdodCwgaW50IGRldmljZVNjYWxlRmFjdG9yLCBjb25zdCBjaGFyKiBmdW5jdGlv
bk5hbWUpOwogCiAjaWYgRU5BQkxFKFZJREVPKQotICAgIFJlZlB0cjxJbWFnZT4gdmlkZW9GcmFt
ZVRvSW1hZ2UoSFRNTFZpZGVvRWxlbWVudCosIEJhY2tpbmdTdG9yZUNvcHksIGNvbnN0IGNoYXIq
IGZ1bmN0aW9uTmFtZSk7CisgICAgUmVmUHRyPEltYWdlPiB2aWRlb0ZyYW1lVG9JbWFnZShIVE1M
VmlkZW9FbGVtZW50KiwgQmFja2luZ1N0b3JlT3B0aW9ucywgY29uc3QgY2hhciogZnVuY3Rpb25O
YW1lKTsKICNlbmRpZgogCiAgICAgV2ViR0xUZXh0dXJlOjpUZXh0dXJlRXh0ZW5zaW9uRmxhZyB0
ZXh0dXJlRXh0ZW5zaW9uRmxhZ3MoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCBiMTI4ZDdiZmYw
NDYuLjBjNDllNDgyN2NjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgcmV0dXJuIEJhY2tlbmRUeXBlOjpjYWxjdWxhdGVFeHRlcm5hbE1lbW9y
eUNvc3QobV9wYXJhbWV0ZXJzKTsKICAgICB9CiAKLSAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGNv
cHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5IGNvcHlCZWhhdmlvciA9IENvcHlCYWNraW5n
U3RvcmUpIGNvbnN0IG92ZXJyaWRlCisgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBjb3B5TmF0aXZl
SW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucyBjb3B5QmVoYXZpb3IgPSB7IH0pIGNvbnN0IG92ZXJy
aWRlCiAgICAgewogICAgICAgICBpZiAoYXV0byogYmFja2VuZCA9IGVuc3VyZUJhY2tlbmRDcmVh
dGVkKCkpIHsKICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Q29uY3JldGVJbWFnZUJ1ZmZlciY+KCp0
aGlzKS5mbHVzaERyYXdpbmdDb250ZXh0KCk7CkBAIC0xMzksNyArMTM5LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBSZWZQdHI8SW1hZ2U+IGNv
cHlJbWFnZShCYWNraW5nU3RvcmVDb3B5IGNvcHlCZWhhdmlvciA9IENvcHlCYWNraW5nU3RvcmUs
IFByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24gPSBQcmVzZXJ2ZVJlc29sdXRp
b246Ok5vKSBjb25zdCBvdmVycmlkZQorICAgIFJlZlB0cjxJbWFnZT4gY29weUltYWdlKEJhY2tp
bmdTdG9yZU9wdGlvbnMgY29weUJlaGF2aW9yID0geyB9LCBQcmVzZXJ2ZVJlc29sdXRpb24gcHJl
c2VydmVSZXNvbHV0aW9uID0gUHJlc2VydmVSZXNvbHV0aW9uOjpObykgY29uc3Qgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIGlmIChhdXRvKiBiYWNrZW5kID0gZW5zdXJlQmFja2VuZENyZWF0ZWQo
KSkgewogICAgICAgICAgICAgY29uc3RfY2FzdDxDb25jcmV0ZUltYWdlQnVmZmVyJj4oKnRoaXMp
LmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKQEAgLTE3NCw3ICsxNzQsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHNyY1JlY3RTY2FsZWQuc2NhbGUocmVzb2x1dGlvblNjYWxlKCkpOwogCiAgICAgICAg
IGlmIChhdXRvKiBiYWNrZW5kID0gZW5zdXJlQmFja2VuZENyZWF0ZWQoKSkgewotICAgICAgICAg
ICAgaWYgKGF1dG8gaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoJmRlc3RDb250ZXh0ID09ICZjb250
ZXh0KCkgPyBDb3B5QmFja2luZ1N0b3JlIDogRG9udENvcHlCYWNraW5nU3RvcmUpKQorICAgICAg
ICAgICAgaWYgKGF1dG8gaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoJmRlc3RDb250ZXh0ID09ICZj
b250ZXh0KCkgPyBCYWNraW5nU3RvcmVPcHRpb25zIHsgfSA6IEJhY2tpbmdTdG9yZU9wdGlvbjo6
UmVmZXJlbmNlKSkKICAgICAgICAgICAgICAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2Uo
KmltYWdlLCBiYWNrZW5kU2l6ZSgpLCBkZXN0UmVjdCwgc3JjUmVjdFNjYWxlZCwgb3B0aW9ucyk7
CiAgICAgICAgICAgICBiYWNrZW5kLT5maW5hbGl6ZURyYXdJbnRvQ29udGV4dChkZXN0Q29udGV4
dCk7CiAgICAgICAgIH0KQEAgLTE4Niw3ICsxODYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGFk
anVzdGVkU3JjUmVjdC5zY2FsZShyZXNvbHV0aW9uU2NhbGUoKSk7CiAKICAgICAgICAgaWYgKGF1
dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7Ci0gICAgICAgICAgICBpZiAo
YXV0byBpbWFnZSA9IGNvcHlJbWFnZSgmZGVzdENvbnRleHQgPT0gJmNvbnRleHQoKSA/IENvcHlC
YWNraW5nU3RvcmUgOiBEb250Q29weUJhY2tpbmdTdG9yZSkpCisgICAgICAgICAgICBpZiAoYXV0
byBpbWFnZSA9IGNvcHlJbWFnZSgmZGVzdENvbnRleHQgPT0gJmNvbnRleHQoKSA/IEJhY2tpbmdT
dG9yZU9wdGlvbiB7IH0gOiBCYWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSkpCiAgICAgICAg
ICAgICAgICAgaW1hZ2UtPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRqdXN0
ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db3B5SW1hZ2VPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db3B5SW1hZ2VPcHRpb25zLmgKaW5kZXggOGExYTU5NmZhMDZhLi5hMWU4NWFkNzVhNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvcHlJbWFnZU9wdGlv
bnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db3B5SW1hZ2VPcHRp
b25zLmgKQEAgLTI0LDE0ICsyNCwxNiBAQAogICovCiAKICNwcmFnbWEgb25jZQorI2luY2x1ZGUg
PHd0Zi9PcHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIEJhY2tpbmdT
dG9yZUNvcHkgewotICAgIENvcHlCYWNraW5nU3RvcmUsIC8vIEd1YXJhbnRlZSBzdWJzZXF1ZW50
IGRyYXdzIGRvbid0IGFmZmVjdCB0aGUgY29weS4KLSAgICBEb250Q29weUJhY2tpbmdTdG9yZSAv
LyBTdWJzZXF1ZW50IGRyYXdzIG1heSBhZmZlY3QgdGhlIGNvcHkuCitlbnVtIEJhY2tpbmdTdG9y
ZU9wdGlvbiB7CisgICAgUmVmZXJlbmNlID0gMSAvLyBTdWJzZXF1ZW50IGRyYXdzIG1heSBhZmZl
Y3QgdGhlIGNvcHkuIElmIGFic2VudCwgc3Vic2VxdWVudCBkcmF3cyBhcmUgZ3VhcmFudGVlZCB0
byBub3QgYWZmZWN0IHRoZSBjb3B5LgogfTsKIAordXNpbmcgQmFja2luZ1N0b3JlT3B0aW9ucyA9
IE9wdGlvblNldDxCYWNraW5nU3RvcmVPcHRpb24+OworCiBlbnVtIGNsYXNzIFNob3VsZEludGVy
cG9sYXRlIDogYm9vbCB7CiAgICAgWWVzLCAvLyBBcHBseSBhIHBpeGVsLXNtb290aGluZyBhbGdv
cml0aG0gdG8gdGhlIGltYWdlLgogICAgIE5vIC8vIEVkZ2VzIG9mIHRoZSBpbWFnZSBtYXkgYXBw
ZWFyIHBpeGVsYXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCmluZGV4IGZiNGQyNjVmN2QzNS4uYzc4M2NlNmFjZjdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTEyNCw4ICsxMjQs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRTYWZlSW1h
Z2VCdWZmZXJGbHVzaGVyPiBjcmVhdGVGbHVzaGVyKCkgPSAwOwogCi0gICAgdmlydHVhbCBSZWZQ
dHI8TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5ID0gQ29weUJh
Y2tpbmdTdG9yZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPEltYWdlPiBjb3B5SW1h
Z2UoQmFja2luZ1N0b3JlQ29weSA9IENvcHlCYWNraW5nU3RvcmUsIFByZXNlcnZlUmVzb2x1dGlv
biA9IFByZXNlcnZlUmVzb2x1dGlvbjo6Tm8pIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0
cjxOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbnMgPSB7IH0p
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZT4gY29weUltYWdlKEJhY2tpbmdT
dG9yZU9wdGlvbnMgPSB7IH0sIFByZXNlcnZlUmVzb2x1dGlvbiA9IFByZXNlcnZlUmVzb2x1dGlv
bjo6Tm8pIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZT4gZmlsdGVyZWRJbWFn
ZShGaWx0ZXImKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBG
bG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXJCYWNrZW5kLmNwcAppbmRleCBkMGUzMTM0MjAwYjYuLjQ4NTlkMmI5ODM1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ckJhY2tlbmQuY3BwCkBAIC01NywxMiArNTcsMTIgQEAgSW1hZ2VCdWZmZXJCYWNrZW5kOjp+SW1h
Z2VCdWZmZXJCYWNrZW5kKCkgPSBkZWZhdWx0OwogCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdl
QnVmZmVyQmFja2VuZDo6c2lua0ludG9OYXRpdmVJbWFnZSgpCiB7Ci0gICAgcmV0dXJuIGNvcHlO
YXRpdmVJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7CisgICAgcmV0dXJuIGNvcHlOYXRpdmVJ
bWFnZShCYWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSk7CiB9CiAKIFJlZlB0cjxJbWFnZT4g
SW1hZ2VCdWZmZXJCYWNrZW5kOjpzaW5rSW50b0ltYWdlKFByZXNlcnZlUmVzb2x1dGlvbiBwcmVz
ZXJ2ZVJlc29sdXRpb24pCiB7Ci0gICAgcmV0dXJuIGNvcHlJbWFnZShEb250Q29weUJhY2tpbmdT
dG9yZSwgcHJlc2VydmVSZXNvbHV0aW9uKTsKKyAgICByZXR1cm4gY29weUltYWdlKEJhY2tpbmdT
dG9yZU9wdGlvbjo6UmVmZXJlbmNlLCBwcmVzZXJ2ZVJlc29sdXRpb24pOwogfQogCiB2b2lkIElt
YWdlQnVmZmVyQmFja2VuZDo6Y29udmVydFRvTHVtaW5hbmNlTWFzaygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCmluZGV4
IDY1NDgxMDk0MjM5Ny4uNjY2ZTQ1ZDdiN2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaApAQCAtMTA5LDggKzEwOSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEludFNpemUgYmFja2VuZFNpemUoKSBjb25zdCB7IHJl
dHVybiB7IH07IH0KIAogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZURyYXdJbnRvQ29udGV4dChH
cmFwaGljc0NvbnRleHQmKSB7IH0KLSAgICB2aXJ0dWFsIFJlZlB0cjxOYXRpdmVJbWFnZT4gY29w
eU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJl
ZlB0cjxJbWFnZT4gY29weUltYWdlKEJhY2tpbmdTdG9yZUNvcHksIFByZXNlcnZlUmVzb2x1dGlv
bikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBjb3B5TmF0aXZl
SW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucykgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRy
PEltYWdlPiBjb3B5SW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucywgUHJlc2VydmVSZXNvbHV0aW9u
KSBjb25zdCA9IDA7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFJlZlB0cjxOYXRpdmVJ
bWFnZT4gc2lua0ludG9OYXRpdmVJbWFnZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
UmVmUHRyPEltYWdlPiBzaW5rSW50b0ltYWdlKFByZXNlcnZlUmVzb2x1dGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5jcHAKaW5kZXggNGZi
NjJhNWU0NzA1Li45YmI3NjYyMTg0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NvdXJjZUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgTmF0aXZlSW1hZ2Uq
IFNvdXJjZUltYWdlOjpuYXRpdmVJbWFnZSgpIGNvbnN0CiAgICAgaWYgKCFtX3RyYW5zZm9ybWVk
SW1hZ2VWYXJpYW50KSB7CiAgICAgICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBzdGQ6OmdldDxSZWY8
SW1hZ2VCdWZmZXI+PihtX2ltYWdlVmFyaWFudCk7CiAKLSAgICAgICAgYXV0byBuYXRpdmVJbWFn
ZSA9IGltYWdlQnVmZmVyLT5jb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOwor
ICAgICAgICBhdXRvIG5hdGl2ZUltYWdlID0gaW1hZ2VCdWZmZXItPmNvcHlOYXRpdmVJbWFnZShC
YWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSk7CiAgICAgICAgIGlmICghbmF0aXZlSW1hZ2Up
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKaW5kZXgg
YTJlMmU5MzQwMzYzLi43OTcyZGNjM2RmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcApAQCAtMTc0
LDcgKzE3NCw3IEBAIGVudW0gUGF0aERyYXdpbmdTdHlsZSB7CiAKIHN0YXRpYyB2b2lkIGRyYXdT
aGFkb3dMYXllckJ1ZmZlcihHcmFwaGljc0NvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBJ
bWFnZUJ1ZmZlciYgbGF5ZXJJbWFnZSwgY29uc3QgRmxvYXRQb2ludCYgbGF5ZXJPcmlnaW4sIGNv
bnN0IEZsb2F0U2l6ZSYgbGF5ZXJTaXplLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUp
CiB7Ci0gICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSBsYXllckltYWdlLmNvcHlOYXRpdmVJbWFn
ZShEb250Q29weUJhY2tpbmdTdG9yZSkpIHsKKyAgICBpZiAoYXV0byBuYXRpdmVJbWFnZSA9IGxh
eWVySW1hZ2UuY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlKSkg
ewogICAgICAgICBkcmF3UGxhdGZvcm1JbWFnZShwbGF0Zm9ybUNvbnRleHQsIG5hdGl2ZUltYWdl
LT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIEZsb2F0UmVjdChyb3VuZGVkSW50UG9pbnQobGF5ZXJP
cmlnaW4pLCBsYXllclNpemUpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBsYXllclNpemUpLCB7
IHNoYWRvd1N0YXRlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdG9yIH0sIHNoYWRvd1N0YXRlLmdsb2Jh
bEFscGhhLCBTaGFkb3dTdGF0ZSgpKTsKICAgICB9CiB9CkBAIC0xODIsNyArMTgyLDcgQEAgc3Rh
dGljIHZvaWQgZHJhd1NoYWRvd0xheWVyQnVmZmVyKEdyYXBoaWNzQ29udGV4dENhaXJvJiBwbGF0
Zm9ybUNvbnRleHQsIEltYWdlQnUKIC8vIEZJWE1FOiBUaGlzIGlzIG1vc3RseSBzYW1lIGFzIGRy
YXdTaGFkb3dMYXllckJ1ZmZlciwgc28gd2Ugc2hvdWxkIG1lcmdlIHR3by4KIHN0YXRpYyB2b2lk
IGRyYXdTaGFkb3dJbWFnZShHcmFwaGljc0NvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBJ
bWFnZUJ1ZmZlciYgbGF5ZXJJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCiB7Ci0g
ICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSBsYXllckltYWdlLmNvcHlOYXRpdmVJbWFnZShEb250
Q29weUJhY2tpbmdTdG9yZSkpIHsKKyAgICBpZiAoYXV0byBuYXRpdmVJbWFnZSA9IGxheWVySW1h
Z2UuY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlKSkgewogICAg
ICAgICBkcmF3UGxhdGZvcm1JbWFnZShwbGF0Zm9ybUNvbnRleHQsIG5hdGl2ZUltYWdlLT5wbGF0
Zm9ybUltYWdlKCkuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCB7IHNoYWRvd1N0YXRlLmdsb2Jh
bENvbXBvc2l0ZU9wZXJhdG9yIH0sIHNoYWRvd1N0YXRlLmdsb2JhbEFscGhhLCBTaGFkb3dTdGF0
ZSgpKTsKICAgICB9CiB9CkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIHZvaWQgZmlsbFNoYWRv
d0J1ZmZlcihHcmFwaGljc0NvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBJbWFnZUJ1ZmZl
ciYKIHsKICAgICBwbGF0Zm9ybUNvbnRleHQuc2F2ZSgpOwogCi0gICAgaWYgKGF1dG8gbmF0aXZl
SW1hZ2UgPSBsYXllckltYWdlLmNvcHlOYXRpdmVJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSkp
CisgICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSBsYXllckltYWdlLmNvcHlOYXRpdmVJbWFnZShC
YWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSkpCiAgICAgICAgIGNsaXBUb0ltYWdlQnVmZmVy
KHBsYXRmb3JtQ29udGV4dCwgbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSwgRmxv
YXRSZWN0KGxheWVyT3JpZ2luLCBleHBhbmRlZEludFNpemUobGF5ZXJTaXplKSkpOwogCiAgICAg
RmlsbFNvdXJjZSBmaWxsU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4
IDI2MmYwZDYwMmI4MC4uNGM1YmFjODRkNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwCkBAIC0yMjksNyArMjI5LDcgQEAgSW50UmVjdCBHcmFwaGljc0NvbnRleHRDYWlybzo6Y2xp
cEJvdW5kcygpIGNvbnN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0Q2Fpcm86OmNsaXBUb0ltYWdl
QnVmZmVyKEltYWdlQnVmZmVyJiBidWZmZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCiB7
Ci0gICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSBidWZmZXIuY29weU5hdGl2ZUltYWdlKERvbnRD
b3B5QmFja2luZ1N0b3JlKSkKKyAgICBpZiAoYXV0byBuYXRpdmVJbWFnZSA9IGJ1ZmZlci5jb3B5
TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9uOjpSZWZlcmVuY2UpKQogICAgICAgICBDYWly
bzo6Y2xpcFRvSW1hZ2VCdWZmZXIoKnRoaXMsIG5hdGl2ZUltYWdlLT5wbGF0Zm9ybUltYWdlKCku
Z2V0KCksIGRlc3RSZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3Bw
CmluZGV4IGQ4ZTY1MTA0OGM2Yy4uNTM3MzcwODVmNDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyb0JhY2tlbmQuY3BwCkBAIC00NSw3ICs0NSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUmVmUHRyPEltYWdlPiBJbWFnZUJ1ZmZlckNhaXJvQmFja2VuZDo6Y29weUltYWdlKEJhY2tp
bmdTdG9yZUNvcHkgY29weUJlaGF2aW9yLCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0CitSZWZQ
dHI8SW1hZ2U+IEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3Jl
T3B0aW9ucyBjb3B5QmVoYXZpb3IsIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QKIHsKICAgICAv
LyBCaXRtYXBJbWFnZSB3aWxsIHJlbGVhc2UgdGhlIHBhc3NlZCBpbiBzdXJmYWNlIG9uIGRlc3Ry
dWN0aW9uCiAgICAgcmV0dXJuIEJpdG1hcEltYWdlOjpjcmVhdGUoY29weU5hdGl2ZUltYWdlKGNv
cHlCZWhhdmlvcikpOwpAQCAtNTMsNyArNTMsNyBAQCBSZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVy
Q2Fpcm9CYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29weSBjb3B5QmVoYXZpb3IsCiAK
IHZvaWQgSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OmNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0
JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKIHsKLSAgICBpZiAoYXV0
byBpbWFnZSA9IGNvcHlOYXRpdmVJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSkpCisgICAgaWYg
KGF1dG8gaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9uOjpSZWZlcmVu
Y2UpKQogICAgICAgICBDYWlybzo6Y2xpcFRvSW1hZ2VCdWZmZXIoKmRlc3RDb250ZXh0LnBsYXRm
b3JtQ29udGV4dCgpLCBpbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpLCBkZXN0UmVjdCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCmluZGV4IDZmODYyN2U0ZjBkYi4uNjBk
ZDQ3MGVlNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKQEAgLTM3LDcgKzM3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbWFnZUJ1ZmZlckNhaXJvQmFja2Vu
ZCA6IHB1YmxpYyBJbWFnZUJ1ZmZlckJhY2tlbmQgewogcHVibGljOgotICAgIFJlZlB0cjxJbWFn
ZT4gY29weUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgPSBDb3B5QmFja2luZ1N0b3JlLCBQcmVzZXJ2
ZVJlc29sdXRpb24gPSBQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBSZWZQdHI8SW1hZ2U+IGNvcHlJbWFnZShCYWNraW5nU3RvcmVPcHRpb25zLCBQcmVzZXJ2ZVJl
c29sdXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpIG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNh
aXJvU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCA2OWNiNzg1ODhk
ZGQuLmI2Yzg4YzQzOTcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFj
ZUJhY2tlbmQuY3BwCkBAIC02NSwyOCArNjUsMjEgQEAgdW5zaWduZWQgSW1hZ2VCdWZmZXJDYWly
b1N1cmZhY2VCYWNrZW5kOjpieXRlc1BlclJvdygpIGNvbnN0CiAgICAgcmV0dXJuIGNhaXJvX2lt
YWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShtX3N1cmZhY2UuZ2V0KCkpOwogfQogCi1SZWZQdHI8TmF0
aXZlSW1hZ2U+IEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdl
KEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2aW9yKSBjb25zdAorUmVmUHRyPE5hdGl2ZUltYWdl
PiBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5n
U3RvcmVPcHRpb25zIGNvcHlCZWhhdmlvcikgY29uc3QKIHsKLSAgICBzd2l0Y2ggKGNvcHlCZWhh
dmlvcikgewotICAgIGNhc2UgQ29weUJhY2tpbmdTdG9yZTogewotICAgICAgICBhdXRvIGNvcHkg
PSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMy
LAotICAgICAgICBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChtX3N1cmZhY2UuZ2V0KCkp
LAotICAgICAgICBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQobV9zdXJmYWNlLmdldCgp
KSkpOwotCi0gICAgICAgIGF1dG8gY3IgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoY29weS5nZXQo
KSkpOwotICAgICAgICBjYWlyb19zZXRfb3BlcmF0b3IoY3IuZ2V0KCksIENBSVJPX09QRVJBVE9S
X1NPVVJDRSk7Ci0gICAgICAgIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZShjci5nZXQoKSwgbV9z
dXJmYWNlLmdldCgpLCAwLCAwKTsKLSAgICAgICAgY2Fpcm9fcGFpbnQoY3IuZ2V0KCkpOworICAg
IGlmIChjb3B5QmVoYXZpb3IuY29udGFpbnMoQmFja2luZ1N0b3JlT3B0aW9uOjpSZWZlcmVuY2Up
KQorICAgICAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0ZShSZWZQdHIgeyBtX3N1cmZhY2Uu
Z2V0KCkgfSk7CiAKLSAgICAgICAgcmV0dXJuIE5hdGl2ZUltYWdlOjpjcmVhdGUoV1RGTW92ZShj
b3B5KSk7Ci0gICAgfQorICAgIGF1dG8gY29weSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZh
Y2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsCisgICAgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9n
ZXRfd2lkdGgobV9zdXJmYWNlLmdldCgpKSwKKyAgICBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9o
ZWlnaHQobV9zdXJmYWNlLmdldCgpKSkpOwogCi0gICAgY2FzZSBEb250Q29weUJhY2tpbmdTdG9y
ZToKLSAgICAgICAgcmV0dXJuIE5hdGl2ZUltYWdlOjpjcmVhdGUoUmVmUHRyIHsgbV9zdXJmYWNl
LmdldCgpIH0pOwotICAgIH0KKyAgICBhdXRvIGNyID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKGNv
cHkuZ2V0KCkpKTsKKyAgICBjYWlyb19zZXRfb3BlcmF0b3IoY3IuZ2V0KCksIENBSVJPX09QRVJB
VE9SX1NPVVJDRSk7CisgICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNyLmdldCgpLCBtX3N1
cmZhY2UuZ2V0KCksIDAsIDApOworICAgIGNhaXJvX3BhaW50KGNyLmdldCgpKTsKIAotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBOYXRp
dmVJbWFnZTo6Y3JlYXRlKFdURk1vdmUoY29weSkpOwogfQogCiBSZWZQdHI8Y2Fpcm9fc3VyZmFj
ZV90PiBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUNhaXJvU3VyZmFjZSgp
CkBAIC05NiwxMSArODksMTEgQEAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gSW1hZ2VCdWZmZXJD
YWlyb1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVDYWlyb1N1cmZhY2UoKQogCiBSZWZQdHI8TmF0aXZl
SW1hZ2U+IEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y2Fpcm9TdXJmYWNlQ29lcmNl
VG9JbWFnZSgpIGNvbnN0CiB7Ci0gICAgQmFja2luZ1N0b3JlQ29weSBjb3B5QmVoYXZpb3I7Cisg
ICAgQmFja2luZ1N0b3JlT3B0aW9ucyBjb3B5QmVoYXZpb3I7CiAgICAgaWYgKGNhaXJvX3N1cmZh
Y2VfZ2V0X3R5cGUobV9zdXJmYWNlLmdldCgpKSA9PSBDQUlST19TVVJGQUNFX1RZUEVfSU1BR0Ug
JiYgY2Fpcm9fc3VyZmFjZV9nZXRfY29udGVudChtX3N1cmZhY2UuZ2V0KCkpID09IENBSVJPX0NP
TlRFTlRfQ09MT1JfQUxQSEEpCi0gICAgICAgIGNvcHlCZWhhdmlvciA9IERvbnRDb3B5QmFja2lu
Z1N0b3JlOworICAgICAgICBjb3B5QmVoYXZpb3IgPSBCYWNraW5nU3RvcmVPcHRpb246OlJlZmVy
ZW5jZTsKICAgICBlbHNlCi0gICAgICAgIGNvcHlCZWhhdmlvciA9IENvcHlCYWNraW5nU3RvcmU7
CisgICAgICAgIGNvcHlCZWhhdmlvciA9IHsgfTsKICAgICByZXR1cm4gY29weU5hdGl2ZUltYWdl
KGNvcHlCZWhhdmlvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VC
YWNrZW5kLmgKaW5kZXggOTliYmM1ZjI0ZjZkLi40YjdlN2I2N2IzMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJm
YWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oCkBAIC00Miw3ICs0Miw3IEBAIHB1Ymxp
YzoKIAogICAgIEludFNpemUgYmFja2VuZFNpemUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFJl
ZlB0cjxOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0
IG92ZXJyaWRlOworICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdlKEJhY2tp
bmdTdG9yZU9wdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4gY3JlYXRlQ2Fpcm9TdXJmYWNlKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5k
LmNwcAppbmRleCBmYjhhMGRhODJlNzcuLmUzNjFkOTA3ZjNlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNr
ZW5kLmNwcApAQCAtMTE0LDEzICsxMTQsMTMgQEAgc3RhdGljIFJlZlB0cjxJbWFnZT4gY3JlYXRl
Qml0bWFwSW1hZ2VBZnRlclNjYWxpbmdJZk5lZWRlZChSZWZQdHI8TmF0aXZlSW1hZ2U+JiYKICAg
ICByZXR1cm4gQml0bWFwSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKGltYWdlKSk7CiB9CiAKLVJlZlB0
cjxJbWFnZT4gSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OmNvcHlJbWFnZShCYWNraW5nU3RvcmVDb3B5
IGNvcHlCZWhhdmlvciwgUHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1dGlvbikgY29u
c3QKK1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OmNvcHlJbWFnZShCYWNraW5n
U3RvcmVPcHRpb25zIGNvcHlCZWhhdmlvciwgUHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVz
b2x1dGlvbikgY29uc3QKIHsKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGltYWdlOwogICAgIGlm
IChyZXNvbHV0aW9uU2NhbGUoKSA9PSAxIHx8IHByZXNlcnZlUmVzb2x1dGlvbiA9PSBQcmVzZXJ2
ZVJlc29sdXRpb246OlllcykKICAgICAgICAgaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoY29weUJl
aGF2aW9yKTsKICAgICBlbHNlCi0gICAgICAgIGltYWdlID0gY29weU5hdGl2ZUltYWdlKERvbnRD
b3B5QmFja2luZ1N0b3JlKTsKKyAgICAgICAgaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoQmFja2lu
Z1N0b3JlT3B0aW9uOjpSZWZlcmVuY2UpOwogICAgIHJldHVybiBjcmVhdGVCaXRtYXBJbWFnZUFm
dGVyU2NhbGluZ0lmTmVlZGVkKFdURk1vdmUoaW1hZ2UpLCBsb2dpY2FsU2l6ZSgpLCBiYWNrZW5k
U2l6ZSgpLCByZXNvbHV0aW9uU2NhbGUoKSwgcHJlc2VydmVSZXNvbHV0aW9uKTsKIH0KIApAQCAt
MTMzLDcgKzEzMyw3IEBAIFJlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OnNpbmtJ
bnRvSW1hZ2UoUHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzCiAKIHZvaWQgSW1hZ2VCdWZm
ZXJDR0JhY2tlbmQ6OmNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKIHsKLSAgICBhdXRvIG5hdGl2ZUltYWdlID0gY29weU5h
dGl2ZUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKTsKKyAgICBhdXRvIG5hdGl2ZUltYWdlID0g
Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlKTsKICAgICBpZiAo
IW5hdGl2ZUltYWdlKQogICAgICAgICByZXR1cm47CiAgICAgCkBAIC0xNzYsMTMgKzE3NiwxMyBA
QCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OmNvcHlDR0ltYWdl
Rm9yRW5jb2RpbmcoQ0ZTdHJpbmdSZWYgZAogICAgIH0KIAogICAgIGlmIChyZXNvbHV0aW9uU2Nh
bGUoKSA9PSAxIHx8IHByZXNlcnZlUmVzb2x1dGlvbiA9PSBQcmVzZXJ2ZVJlc29sdXRpb246Olll
cykgewotICAgICAgICBhdXRvIG5hdGl2ZUltYWdlID0gY29weU5hdGl2ZUltYWdlKENvcHlCYWNr
aW5nU3RvcmUpOworICAgICAgICBhdXRvIG5hdGl2ZUltYWdlID0gY29weU5hdGl2ZUltYWdlKHsg
fSk7CiAgICAgICAgIGlmICghbmF0aXZlSW1hZ2UpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAgICAgcmV0dXJuIGNyZWF0ZUNyb3BwZWRJbWFnZUlmTmVjZXNzYXJ5KG5hdGl2ZUlt
YWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIGJhY2tlbmRTaXplKCkpOwogICAgIH0KICAgICAK
LSAgICBhdXRvIG5hdGl2ZUltYWdlID0gY29weU5hdGl2ZUltYWdlKERvbnRDb3B5QmFja2luZ1N0
b3JlKTsKKyAgICBhdXRvIG5hdGl2ZUltYWdlID0gY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9y
ZU9wdGlvbjo6UmVmZXJlbmNlKTsKICAgICBpZiAoIW5hdGl2ZUltYWdlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBhdXRvIGltYWdlID0gbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2Uo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0dCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHQmFja2VuZC5oCmluZGV4IGM4NzI0MTk2ZmZjMC4uMzkxMzhlMmYxNTRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0dCYWNrZW5kLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogcHJvdGVjdGVk
OgogICAgIHVzaW5nIEltYWdlQnVmZmVyQmFja2VuZDo6SW1hZ2VCdWZmZXJCYWNrZW5kOwogCi0g
ICAgUmVmUHRyPEltYWdlPiBjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29weSA9IENvcHlCYWNraW5n
U3RvcmUsIFByZXNlcnZlUmVzb2x1dGlvbiA9IFByZXNlcnZlUmVzb2x1dGlvbjo6Tm8pIGNvbnN0
IG92ZXJyaWRlOworICAgIFJlZlB0cjxJbWFnZT4gY29weUltYWdlKEJhY2tpbmdTdG9yZU9wdGlv
bnMsIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPEltYWdl
PiBzaW5rSW50b0ltYWdlKFByZXNlcnZlUmVzb2x1dGlvbikgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAKaW5kZXggNWUyMzA3
YWUwZDVmLi5lMTdkMzg3Mzc2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5j
cHAKQEAgLTEzNywyMiArMTM3LDE2IEBAIHVuc2lnbmVkIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNr
ZW5kOjpieXRlc1BlclJvdygpIGNvbnN0CiAgICAgcmV0dXJuIGNhbGN1bGF0ZUJ5dGVzUGVyUm93
KGJhY2tlbmRTaXplKTsKIH0KIAotUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2aW9y
KSBjb25zdAorUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6
Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbnMgY29weUJlaGF2aW9yKSBjb25zdAog
ewotICAgIHN3aXRjaCAoY29weUJlaGF2aW9yKSB7Ci0gICAgY2FzZSBDb3B5QmFja2luZ1N0b3Jl
OgotICAgICAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0ZShhZG9wdENGKENHQml0bWFwQ29u
dGV4dENyZWF0ZUltYWdlKGNvbnRleHQoKS5wbGF0Zm9ybUNvbnRleHQoKSkpKTsKLQotICAgIGNh
c2UgRG9udENvcHlCYWNraW5nU3RvcmU6CisgICAgaWYgKGNvcHlCZWhhdmlvci5jb250YWlucyhC
YWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSkpIHsKICAgICAgICAgYXV0byBiYWNrZW5kU2l6
ZSA9IHRoaXMtPmJhY2tlbmRTaXplKCk7CiAgICAgICAgIHJldHVybiBOYXRpdmVJbWFnZTo6Y3Jl
YXRlKGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZSgKICAgICAgICAgICAgIGJhY2tlbmRTaXplLndpZHRo
KCksIGJhY2tlbmRTaXplLmhlaWdodCgpLCA4LCAzMiwgYnl0ZXNQZXJSb3coKSwKICAgICAgICAg
ICAgIGNvbG9yU3BhY2UoKS5wbGF0Zm9ybUNvbG9yU3BhY2UoKSwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QpIHwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCksIG1fZGF0YVByb3ZpZGVyLmdldCgpLAogICAg
ICAgICAgICAgMCwgdHJ1ZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCkpKTsKICAgICB9Ci0K
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gTmF0aXZlSW1hZ2U6OmNyZWF0ZShhZG9wdENGKENHQml0bWFwQ29udGV4dENyZWF0ZUltYWdl
KGNvbnRleHQoKS5wbGF0Zm9ybUNvbnRleHQoKSkpKTsKIH0KIAogc3RkOjpvcHRpb25hbDxQaXhl
bEJ1ZmZlcj4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmdldFBpeGVsQnVmZmVyKGNvbnN0
IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3Qp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaAppbmRleCBhZmI2NDQ4N2Y0NTAu
LmM3ZWU5Nzk3NWQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oCkBAIC01NSw3
ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IGZpbmFs
OwogICAgIHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3QgZmluYWw7CiAKLSAgICBSZWZQdHI8
TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5ID0gQ29weUJhY2tp
bmdTdG9yZSkgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBjb3B5TmF0aXZl
SW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucykgY29uc3QgZmluYWw7CiAKICAgICBzdGQ6Om9wdGlv
bmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYg
b3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwdXRQ
aXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1h
dCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBkZDlj
Y2JiZjdhMWEuLjhjZDcxN2ZlMTU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQ6OmludmFsaWRhdGVDYWNoZWROYXRpdmVJbWFnZSgpIGNvbnN0CiAgICAgY29udGV4dCgpLmZp
bGxSZWN0KHsgfSk7CiB9CiAKLVJlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weSkgY29uc3QKK1JlZlB0
cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1h
Z2UoQmFja2luZ1N0b3JlT3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4gTmF0aXZlSW1hZ2U6
OmNyZWF0ZShtX3N1cmZhY2UtPmNyZWF0ZUltYWdlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQuaAppbmRleCBiOTZhZGU2MTQ2YTcuLjBkNTc1NjBiM2FjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogcHJv
dGVjdGVkOgogICAgIEludFNpemUgYmFja2VuZFNpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICAK
LSAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5
ID0gQ29weUJhY2tpbmdTdG9yZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVmUHRyPE5hdGl2ZUlt
YWdlPiBjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucykgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBzaW5rSW50b05hdGl2ZUltYWdlKCkgb3ZlcnJpZGU7
CiAKICAgICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQ
aXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9u
UmVjb3JkZXIuY3BwCmluZGV4IGU3ZTZlNmEyNzMzOC4uODBiMTg5YjUxZTUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFD
YWlyb09wZXJhdGlvblJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcApA
QCAtNTU2LDcgKzU1Niw3IEBAIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd0ltYWdl
QnVmZmVyKEltYWdlQnVmZmVyJiBidWZmZXIsIGNvbnN0IEZsb2F0UmVjCiAgICAgICAgIH0KICAg
ICB9OwogCi0gICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci5jb3B5SW1hZ2UoRG9udENv
cHlCYWNraW5nU3RvcmUpOworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBidWZmZXIuY29weUlt
YWdlKEJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlKTsKICAgICBpZiAoIWltYWdlKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTU5NCw3ICs1OTQsNyBAQCB2b2lkIENhaXJvT3BlcmF0aW9uUmVj
b3JkZXI6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBzcmNJbWFnZSwgY29u
cwogICAgIGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxJ
bWFnZT4gaW1hZ2UgPSBpbWFnZUJ1ZmZlci0+Y29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3Jl
KTsKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gaW1hZ2VCdWZmZXItPmNvcHlJbWFnZShCYWNr
aW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSk7CiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0xMTQ5LDcgKzExNDksNyBAQCB2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6
OmNsaXBUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBidWZmZXIsIGNvbnN0IEZsb2F0UgogICAg
ICAgICB9CiAgICAgfTsKIAotICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBidWZmZXIuY29weUlt
YWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKTsKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gYnVm
ZmVyLmNvcHlJbWFnZShCYWNraW5nU3RvcmVPcHRpb246OlJlZmVyZW5jZSk7CiAgICAgaWYgKCFp
bWFnZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAKaW5kZXggZDM0ZTU4OGQy
NDg3Li42MDQxMDRlZDg2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAg
dm9pZCBCaXRtYXBUZXh0dXJlOjp1cGRhdGVDb250ZW50cyhHcmFwaGljc0xheWVyKiBzb3VyY2VM
YXllciwgY29uc3QgSW50UmVjdCYgdGEKIAogICAgIHNvdXJjZUxheWVyLT5wYWludEdyYXBoaWNz
TGF5ZXJDb250ZW50cyhjb250ZXh0LCBzb3VyY2VSZWN0KTsKIAotICAgIFJlZlB0cjxJbWFnZT4g
aW1hZ2UgPSBpbWFnZUJ1ZmZlci0+Y29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKTsKKyAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gaW1hZ2VCdWZmZXItPmNvcHlJbWFnZShCYWNraW5nU3Rv
cmVPcHRpb246OlJlZmVyZW5jZSk7CiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggOTM0ODZjNzg2Y2UyLi5mYjc0OWI5NTlmMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmNhY2hlTmF0aXZlSW1hZ2VXaXRoUXVhbGlmaWVkSWRlbnRpZmll
cihjb25zdCBTaGFyZQogICAgIGlmICghYml0bWFwKQogICAgICAgICByZXR1cm47CiAKLSAgICBh
dXRvIGltYWdlID0gTmF0aXZlSW1hZ2U6OmNyZWF0ZShiaXRtYXAtPmNyZWF0ZVBsYXRmb3JtSW1h
Z2UoRG9udENvcHlCYWNraW5nU3RvcmUsIFNob3VsZEludGVycG9sYXRlOjpZZXMpLCBuYXRpdmVJ
bWFnZVJlc291cmNlSWRlbnRpZmllci5vYmplY3QoKSk7CisgICAgYXV0byBpbWFnZSA9IE5hdGl2
ZUltYWdlOjpjcmVhdGUoYml0bWFwLT5jcmVhdGVQbGF0Zm9ybUltYWdlKEJhY2tpbmdTdG9yZU9w
dGlvbjo6UmVmZXJlbmNlLCBTaG91bGRJbnRlcnBvbGF0ZTo6WWVzKSwgbmF0aXZlSW1hZ2VSZXNv
dXJjZUlkZW50aWZpZXIub2JqZWN0KCkpOwogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NH
RGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCmluZGV4
IGIzMjM3OGQ3MTU2Ni4uOWY1ZmI5NjNiOTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJ
bWFnZUJ1ZmZlckJhY2tlbmQuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgdW5zaWduZWQgQ0dEaXNw
bGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZDo6Ynl0ZXNQZXJSb3coKSBjb25zdAogICAgIHJldHVy
biBjYWxjdWxhdGVCeXRlc1BlclJvdyhiYWNrZW5kU2l6ZSgpKTsKIH0KIAotUmVmUHRyPFdlYkNv
cmU6Ok5hdGl2ZUltYWdlPiBDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5TmF0
aXZlSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSkgY29uc3QKK1JlZlB0cjxXZWJDb3Jl
OjpOYXRpdmVJbWFnZT4gQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZDo6Y29weU5hdGl2
ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZU9wdGlvbnMpIGNvbnN0CiB7CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFj
a2VuZC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxp
c3RJbWFnZUJ1ZmZlckJhY2tlbmQuaAppbmRleCBmNDVkZmUzNGQxMTcuLjAwMTk2MzgyMjY4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxh
eUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1v
dGVMYXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZC5oCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlQmFja2Vu
ZEhhbmRsZShTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gPSBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRXcml0ZSkgY29uc3QgZmluYWw7CiAKICAgICAvLyBOT1RFOiBUaGVzZSBhbGwgQVNT
RVJUX05PVF9SRUFDSEVEKCkuCi0gICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5
TmF0aXZlSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSA9IFdlYkNvcmU6OkNvcHlCYWNr
aW5nU3RvcmUpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4g
Y29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZU9wdGlvbnMpIGNvbnN0IGZpbmFs
OwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNv
bnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFy
ZWFibGVCaXRtYXAuaAppbmRleCAzOWMwZDdmNzk1MWYuLjJjNzYyM2Q1MGZmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKQEAgLTExNywxNCArMTE3LDE0IEBAIHB1Ymxp
YzoKICAgICAvLyBUaGlzIGlzIG9ubHkgc2FmZSB0byB1c2Ugd2hlbiB3ZSBrbm93IHRoYXQgdGhl
IGNvbnRlbnRzIG9mIHRoZSBzaGFyZWFibGUgYml0bWFwIHdvbid0IGNoYW5nZS4KICAgICBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gbWFrZUNHSW1hZ2UoV2ViQ29yZTo6U2hvdWxkSW50ZXJwb2xhdGUg
PSBXZWJDb3JlOjpTaG91bGRJbnRlcnBvbGF0ZTo6Tm8pOwogCi0gICAgV2ViQ29yZTo6UGxhdGZv
cm1JbWFnZVB0ciBjcmVhdGVQbGF0Zm9ybUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHkg
PSBXZWJDb3JlOjpDb3B5QmFja2luZ1N0b3JlLCBXZWJDb3JlOjpTaG91bGRJbnRlcnBvbGF0ZSA9
IFdlYkNvcmU6OlNob3VsZEludGVycG9sYXRlOjpObyk7CisgICAgV2ViQ29yZTo6UGxhdGZvcm1J
bWFnZVB0ciBjcmVhdGVQbGF0Zm9ybUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZU9wdGlvbnMg
PSB7IH0sIFdlYkNvcmU6OlNob3VsZEludGVycG9sYXRlID0gV2ViQ29yZTo6U2hvdWxkSW50ZXJw
b2xhdGU6Ok5vKTsKICNlbGlmIFVTRShDQUlSTykKICAgICAvLyBUaGlzIGNyZWF0ZXMgYSBCaXRt
YXBJbWFnZSB0aGF0IGRpcmVjdGx5IHJlZmVyZW5jZXMgdGhlIHNoYXJlZCBiaXRtYXAgZGF0YS4K
ICAgICAvLyBUaGlzIGlzIG9ubHkgc2FmZSB0byB1c2Ugd2hlbiB3ZSBrbm93IHRoYXQgdGhlIGNv
bnRlbnRzIG9mIHRoZSBzaGFyZWFibGUgYml0bWFwIHdvbid0IGNoYW5nZS4KICAgICBSZWZQdHI8
Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVQZXJzaXN0ZW50Q2Fpcm9TdXJmYWNlKCk7CiAgICAgUmVm
UHRyPGNhaXJvX3N1cmZhY2VfdD4gY3JlYXRlQ2Fpcm9TdXJmYWNlKCk7CiAKLSAgICBXZWJDb3Jl
OjpQbGF0Zm9ybUltYWdlUHRyIGNyZWF0ZVBsYXRmb3JtSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0
b3JlQ29weSA9IFdlYkNvcmU6OkNvcHlCYWNraW5nU3RvcmUsIFdlYkNvcmU6OlNob3VsZEludGVy
cG9sYXRlID0gV2ViQ29yZTo6U2hvdWxkSW50ZXJwb2xhdGU6Ok5vKSB7IHJldHVybiBjcmVhdGVD
YWlyb1N1cmZhY2UoKTsgfQorICAgIFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIgY3JlYXRlUGxh
dGZvcm1JbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVPcHRpb25zID0geyB9LCBXZWJDb3JlOjpT
aG91bGRJbnRlcnBvbGF0ZSA9IFdlYkNvcmU6OlNob3VsZEludGVycG9sYXRlOjpObykgeyByZXR1
cm4gY3JlYXRlQ2Fpcm9TdXJmYWNlKCk7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSW1hZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViSW1hZ2UuY3BwCmluZGV4IDg1N2Y2ZjcyYzI0OC4uZDFiMzgxYmU4ZDlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViSW1hZ2UuY3BwCkBAIC05Miw3ICs5Miw3IEBAIEdyYXBoaWNzQ29udGV4dCYg
V2ViSW1hZ2U6OmNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBtX2J1ZmZlci0+Y29udGV4dCgp
OwogfQogCi1SZWZQdHI8TmF0aXZlSW1hZ2U+IFdlYkltYWdlOjpjb3B5TmF0aXZlSW1hZ2UoQmFj
a2luZ1N0b3JlQ29weSBjb3B5QmVoYXZpb3IpIGNvbnN0CitSZWZQdHI8TmF0aXZlSW1hZ2U+IFdl
YkltYWdlOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlT3B0aW9ucyBjb3B5QmVoYXZpb3Ip
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fYnVmZmVyLT5jb3B5TmF0aXZlSW1hZ2UoY29weUJlaGF2
aW9yKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkltYWdlLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJJbWFnZS5oCmluZGV4IDViNzkxMDZlZTlkMy4uNTU1YmU1
YTdmYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJJbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkltYWdlLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGlj
OgogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3Q7CiAKLSAg
ICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShXZWJDb3JlOjpC
YWNraW5nU3RvcmVDb3B5ID0gV2ViQ29yZTo6Q29weUJhY2tpbmdTdG9yZSkgY29uc3Q7CisgICAg
UmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0aXZlSW1hZ2UoV2ViQ29yZTo6QmFj
a2luZ1N0b3JlT3B0aW9ucyA9IHsgfSkgY29uc3Q7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4gYml0bWFwKCkgY29uc3Q7CiAjaWYgVVNFKENBSVJPKQogICAgIFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IGNyZWF0ZUNhaXJvU3VyZmFjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2cv
U2hhcmVhYmxlQml0bWFwQ0cuY3BwCmluZGV4IGI0NjRiOTc4NDQyZi4uMzQ2Njc1NDVmY2YwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCkBAIC0x
ODksOSArMTg5LDkgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IFNoYXJlYWJsZUJpdG1hcDo6bWFr
ZUNHSW1hZ2UoU2hvdWxkSW50ZXJwb2xhdGUgc2hvdWxkSW50ZXIKICAgICByZXR1cm4gY3JlYXRl
Q0dJbWFnZShkYXRhUHJvdmlkZXIuZ2V0KCksIHNob3VsZEludGVycG9sYXRlKTsKIH0KIAotUGxh
dGZvcm1JbWFnZVB0ciBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVBsYXRmb3JtSW1hZ2UoQmFja2lu
Z1N0b3JlQ29weSBjb3B5QmVoYXZpb3IsIFNob3VsZEludGVycG9sYXRlIHNob3VsZEludGVycG9s
YXRlKQorUGxhdGZvcm1JbWFnZVB0ciBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVBsYXRmb3JtSW1h
Z2UoQmFja2luZ1N0b3JlT3B0aW9ucyBjb3B5QmVoYXZpb3IsIFNob3VsZEludGVycG9sYXRlIHNo
b3VsZEludGVycG9sYXRlKQogewotICAgIGlmIChjb3B5QmVoYXZpb3IgPT0gQ29weUJhY2tpbmdT
dG9yZSkKKyAgICBpZiAoIWNvcHlCZWhhdmlvci5jb250YWlucyhCYWNraW5nU3RvcmVPcHRpb246
OlJlZmVyZW5jZSkpCiAgICAgICAgIHJldHVybiBtYWtlQ0dJbWFnZUNvcHkoKTsKICAgICByZXR1
cm4gbWFrZUNHSW1hZ2Uoc2hvdWxkSW50ZXJwb2xhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0KaW5kZXggZGZhNjYzNjc4OGU5
Li4xNTdjZTIxYzA4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1RleHRGaW5kZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
VGV4dEZpbmRlckNsaWVudC5tbQpAQCAtMjk3LDcgKzI5Nyw3IEBAIC0gKHZvaWQpZGlkR2V0SW1h
Z2VGb3JNYXRjaFJlc3VsdDooV2ViS2l0OjpXZWJJbWFnZSAqKWltYWdlCiAgICAgYXV0byBzaXpl
ID0gaW1hZ2UtPnNpemUoKTsKICAgICBzaXplLnNjYWxlKDEgLyBfcGFnZS0+ZGV2aWNlU2NhbGVG
YWN0b3IoKSk7CiAgICAgCi0gICAgYXV0byBuYXRpdmVJbWFnZSA9IGltYWdlLT5jb3B5TmF0aXZl
SW1hZ2UoV2ViQ29yZTo6RG9udENvcHlCYWNraW5nU3RvcmUpOworICAgIGF1dG8gbmF0aXZlSW1h
Z2UgPSBpbWFnZS0+Y29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZU9wdGlvbjo6
UmVmZXJlbmNlKTsKICAgICBpZiAoIW5hdGl2ZUltYWdlKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAppbmRleCBk
N2UzZGE3MjljNjguLjc3MWYwM2JiZmM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcApAQCAtMTQ4LDEyICsxNDgsMTIgQEAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGVD
YWlyb1N1cmZhY2UoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZm
ZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29w
eSBjb3B5QmVoYXZpb3IpIGNvbnN0CitSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbnMg
Y29weUJlaGF2aW9yKSBjb25zdAogewogICAgIHJldHVybiBOYXRpdmVJbWFnZTo6Y3JlYXRlKG1f
Yml0bWFwLT5jcmVhdGVQbGF0Zm9ybUltYWdlKGNvcHlCZWhhdmlvcikpOwogfQogCi1SZWZQdHI8
SW1hZ2U+IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y29weUltYWdlKEJhY2tp
bmdTdG9yZUNvcHksIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QKK1JlZlB0cjxJbWFnZT4gSW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlT3B0
aW9ucywgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdAogewogICAgIHJldHVybiBtX2JpdG1hcC0+
Y3JlYXRlSW1hZ2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5oCmluZGV4IGY1OTgyMjU3YmJhMS4uOGMzYzY3N2MyMzgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxl
Qml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTYyLDggKzYyLDggQEAg
cHVibGljOgogICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZUNhaXJvU3VyZmFjZSgp
IGZpbmFsOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlO
YXRpdmVJbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5ID0gV2ViQ29yZTo6Q29weUJhY2tp
bmdTdG9yZSkgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBjb3B5SW1h
Z2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSA9IFdlYkNvcmU6OkNvcHlCYWNraW5nU3RvcmUs
IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiA9IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlv
bjo6Tm8pIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29w
eU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZU9wdGlvbnMpIGNvbnN0IGZpbmFsOwor
ICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gY29weUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9y
ZU9wdGlvbnMsIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QgZmluYWw7CiAKICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25z
dCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBX
ZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlw
bGljYXRpb24gZGVzdEZvcm1hdCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmlu
ZGV4IDhhMmUzNjZjNjRmMi4uMGMwNTJhNzY0OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaApAQCAtMTc1LDcgKzE3NSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5nZXREYXRhRm9ySW1hZ2VCdWZmZXIobWltZVR5cGUs
IHF1YWxpdHksIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKLSAgICBS
ZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShXZWJDb3JlOjpCYWNr
aW5nU3RvcmVDb3B5IGNvcHlCZWhhdmlvciA9IFdlYkNvcmU6OkNvcHlCYWNraW5nU3RvcmUpIGNv
bnN0IGZpbmFsCisgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0aXZlSW1h
Z2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlT3B0aW9ucyBjb3B5QmVoYXZpb3IgPSB7IH0pIGNvbnN0
IGZpbmFsCiAgICAgewogICAgICAgICBpZiAoVU5MSUtFTFkoIW1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KSkKICAgICAgICAgICAgIHJldHVybiB7IH07CkBAIC0xODcsMTAgKzE4NywxMCBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIGF1dG8gYml0bWFwID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHktPmdldFNoYXJlYWJsZUJpdG1hcChtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uOjpZZXMpOwogICAgICAgICBpZiAoIWJpdG1h
cCkKICAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXRp
dmVJbWFnZTo6Y3JlYXRlKGJpdG1hcC0+Y3JlYXRlUGxhdGZvcm1JbWFnZShXZWJDb3JlOjpEb250
Q29weUJhY2tpbmdTdG9yZSkpOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF0aXZlSW1hZ2U6
OmNyZWF0ZShiaXRtYXAtPmNyZWF0ZVBsYXRmb3JtSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3Jl
T3B0aW9uOjpSZWZlcmVuY2UpKTsKICAgICB9CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+
IGNvcHlJbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5IGNvcHlCZWhhdmlvciA9IFdlYkNv
cmU6OkNvcHlCYWNraW5nU3RvcmUsIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2
ZVJlc29sdXRpb24gPSBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKSBjb25zdCBmaW5h
bAorICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gY29weUltYWdlKFdlYkNvcmU6OkJhY2tpbmdT
dG9yZU9wdGlvbnMgY29weUJlaGF2aW9yID0geyB9LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRp
b24gcHJlc2VydmVSZXNvbHV0aW9uID0gV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uOjpObykg
Y29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIGlmIChVTkxJS0VMWSghbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTIxOCw3ICsyMTgs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IHNpbmtJbnRvSW1h
Z2UoV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1dGlvbiA9IFdlYkNv
cmU6OlByZXNlcnZlUmVzb2x1dGlvbjo6Tm8pIGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4g
Y29weUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHk6OkNvcHlCYWNraW5nU3RvcmUsIHBy
ZXNlcnZlUmVzb2x1dGlvbik7CisgICAgICAgIHJldHVybiBjb3B5SW1hZ2UoeyB9LCBwcmVzZXJ2
ZVJlc29sdXRpb24pOwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gZmlsdGVy
ZWRJbWFnZShXZWJDb3JlOjpGaWx0ZXImIGZpbHRlcikgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJ
T1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCAyMDMx
N2M2NGQwZTcuLmVkZDEwNzIxM2ZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMTA2LDEzICsxMDYsMTMgQEAg
dW5zaWduZWQgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpieXRlc1BlclJvdygp
IGNvbnN0CiAgICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRl
Qnl0ZXNQZXJSb3coYmFja2VuZFNpemUpOwogfQogCi1SZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdl
QnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9y
ZUNvcHkpIGNvbnN0CitSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJm
YWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZU9wdGlvbnMpIGNvbnN0CiB7
CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4geyB9OwogfQog
Ci1SZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y29weUlt
YWdlKEJhY2tpbmdTdG9yZUNvcHksIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QKK1JlZlB0cjxJ
bWFnZT4gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2lu
Z1N0b3JlT3B0aW9ucywgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdAogewogICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJ
T1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IDdhMGZkZGRk
ZWNkNy4uNjBmYTA4YmMxNjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTU5LDggKzU5LDggQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNpemUoKSBjb25zdCBmaW5hbDsK
LSAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShXZWJDb3Jl
OjpCYWNraW5nU3RvcmVDb3B5KSBjb25zdCBmaW5hbDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1h
Z2U+IGNvcHlJbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5LCBXZWJDb3JlOjpQcmVzZXJ2
ZVJlc29sdXRpb24pIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFn
ZT4gY29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZU9wdGlvbnMpIGNvbnN0IGZp
bmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gY29weUltYWdlKFdlYkNvcmU6OkJhY2tp
bmdTdG9yZU9wdGlvbnMsIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QgZmluYWw7
CiAgICAgU3RyaW5nIHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBm
aW5hbDsKICAgICBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5KSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3Jl
OjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdl
QnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggODA4Mjc1MWYx
ZDRlLi41MGU4NGVlMDQ1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTgzLDcg
KzgzLDcgQEAgdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6
OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkMKICAgICBtX3N1cmZhY2UtPnNldE93bmVy
c2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQogCi1SZWZQdHI8TmF0aXZlSW1hZ2U+IElt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdl
KEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2aW9yKSBjb25zdAorUmVmUHRyPE5hdGl2ZUltYWdl
PiBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJ
bWFnZShCYWNraW5nU3RvcmVPcHRpb25zIGNvcHlCZWhhdmlvcikgY29uc3QKIHsKICAgICBhdXRv
IGN1cnJlbnRTZWVkID0gbV9zdXJmYWNlLT5zZWVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5o
CmluZGV4IDg3NjcwYzM5MWY5ZS4uMDY2YTNiNTc5NjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFw
cGVkSU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBJbWFnZUJ1ZmZlckJhY2tlbmRT
aGFyaW5nCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kU2hhcmluZyogdG9CYWNrZW5kU2hhcmluZygp
IGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KIAotICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFn
ZT4gY29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHkgPSBXZWJDb3JlOjpD
b3B5QmFja2luZ1N0b3JlKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZl
SW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVPcHRpb25zKSBjb25z
dCBmaW5hbDsKIAogICAgIG11dGFibGUgV2ViQ29yZTo6SU9TdXJmYWNlU2VlZCBtX2xhc3RTZWVk
V2hlbkNvcHlpbmdJbWFnZSB7IDAgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVI
YW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUubW0KaW5kZXggOTM5MGFlMzg5OTM5Li5i
MTM3YmU1YmEzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbk5vZGVIYW5kbGUubW0KQEAgLTc0LDcgKzc0LDcgQEAgLSAoQ29jb2FJbWFnZSAq
KXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyB3aWR0
aDooTlNOdW0KICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0
byBuYXRpdmVJbWFnZSA9IGltYWdlLT5jb3B5TmF0aXZlSW1hZ2UoV2ViQ29yZTo6RG9udENvcHlC
YWNraW5nU3RvcmUpOworICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBpbWFnZS0+Y29weU5hdGl2ZUlt
YWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZU9wdGlvbjo6UmVmZXJlbmNlKTsKICAgICBpZiAoIW5h
dGl2ZUltYWdlKQogICAgICAgICByZXR1cm4gbmlsOwogCi0tIAoyLjMyLjAgKEFwcGxlIEdpdC0x
MzIpCgo=
</data>
<flag name="review"
          id="488829"
          type_id="1"
          status="?"
          setter="kkinnunen"
    />
    <flag name="commit-queue"
          id="488854"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>