<?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>238887</bug_id>
          
          <creation_ts>2022-04-06 13:47:36 -0700</creation_ts>
          <short_desc>Have ImageBuffer store the RenderingPurpose, and send it to the GPU process</short_desc>
          <delta_ts>2022-04-07 13:16:17 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1858999</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-06 13:47:36 -0700</bug_when>
    <thetext>Have ImageBuffer store the RenderingPurpose, and send it to the GPU process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859000</commentid>
    <comment_count>1</comment_count>
      <attachid>456857</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-06 13:50:23 -0700</bug_when>
    <thetext>Created attachment 456857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859014</commentid>
    <comment_count>2</comment_count>
      <attachid>456857</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-06 14:21:01 -0700</bug_when>
    <thetext>Comment on attachment 456857
Patch

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

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:452
&gt; +    RenderingPurpose purpose = m_imageBuffer ? m_imageBuffer-&gt;renderingPurpose() : RenderingPurpose::DOM;

I could not understand what this statement means.When can m_imageBuffer be null? And why do we use m_imageBuffer-&gt;renderingPurpose() or RenderingPurpose::DOM as the renderingPurpose of the new compatible ImageBuffer? Suppose RemoteDisplayListRecorderProxy was created for RenderingPurpose::Canvas and we are creating a compatible ImageBuffer for SVG clipper, why is this ImageBuffer created with RenderingPurpose::Canvas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859405</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-07 13:15:32 -0700</bug_when>
    <thetext>I tried plumbing RenderingPurpose through more but it got out of hand. Landing the patch with a FIXME.

https://trac.webkit.org/changeset/292557/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859406</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-07 13:16:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/91440114&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456857</attachid>
            <date>2022-04-06 13:50:23 -0700</date>
            <delta_ts>2022-04-06 16:19:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238887-20220406135022.patch</filename>
            <type>text/plain</type>
            <size>38017</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDYwZjBlMTllMWM5ZTFk
OGJmNTk1Yzg3YjA4OTg2ZTVjMmU2NGYwMC4uNzBlZGNmZWM2MzJjZWYzNmZiNjJkNjIyYzBiMzg5
MWQ3YTJhYjA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTA0LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEhhdmUgSW1hZ2VC
dWZmZXIgc3RvcmUgdGhlIFJlbmRlcmluZ1B1cnBvc2UsIGFuZCBzZW5kIGl0IHRvIHRoZSBHUFUg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM4ODg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIFJlbmRlcmluZ1B1cnBvc2UgdG8gSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzIHNv
IGl0J3Mgc3RvcmVkIG9uIEltYWdlQnVmZmVyQmFja2VuZC9JbWFnZUJ1ZmZlciwKKyAgICAgICAg
YW5kIHByb3BhZ2F0ZSB0aGF0IHRvIHRoZSBHUFUgcHJvY2Vzcy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bmNyZXRlSW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQnVmZmVyQmFja2VuZDo6cmVuZGVyaW5nUHVycG9zZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1JbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJJbWFnZUNvcmVJbWFnZS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbHRlckltYWdlOjppbWFnZUJ1ZmZlckZyb21DSUltYWdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5o
OgorCiAyMDIyLTA0LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdIFVzZSBHQ0Qgd2VicnRjIHRhc2sgcXVldWUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTZmZmRj
NDdlZTRjODgyN2U4ZmQ1MTZhYmNiMWY0NjNhYWZlNDQzZC4uNTA4MDIyMGZmODkwYTNiYzhiZjQ3
YTdiNjRmZTQ2Zjk1MjZiMmMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0wNC0w
NiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBIYXZl
IEltYWdlQnVmZmVyIHN0b3JlIHRoZSBSZW5kZXJpbmdQdXJwb3NlLCBhbmQgc2VuZCBpdCB0byB0
aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzODg4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgQWRkIFJlbmRlcmluZ1B1cnBvc2UgdG8gSW1hZ2VCdWZmZXJCYWNrZW5k
OjpQYXJhbWV0ZXJzIHNvIGl0J3Mgc3RvcmVkIG9uIEltYWdlQnVmZmVyQmFja2VuZC9JbWFnZUJ1
ZmZlciwKKyAgICAgICAgYW5kIHByb3BhZ2F0ZSB0aGF0IHRvIHRoZSBHUFUgcHJvY2Vzcy4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFs
aWZpZWRJZGVudGlmaWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHk6CisgICAgICAgICh0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVk
KToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OmFsbG9jYXRlQnVmZmVy
Rm9yQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW06CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNv
bGxlY3Rpb246OmFsbG9jYXRlQnVmZmVyRm9yQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25z
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Y3JlYXRlUmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorCiAy
MDIyLTA0LTA2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayBzdGFydHMgbGlzdGVuaW5nIGZvciBJUEMgaW4g
Y29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCBmNjU3YWQwOTI5NDBlYmFmNDVkOGJkOTAwZWU0
MDcwNzkyMjk0YTc4Li4xY2FjYzhmNjk0NTZkZWMyN2M0MjNmMGFkZGE4MzlmMDVkZTFlY2Y5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdl
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJ
bWFnZUJ1ZmZlci5oCkBAIC0zNyw5ICszNyw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRU
eXBlPgogY2xhc3MgQ29uY3JldGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBJbWFnZUJ1ZmZlciB7CiBw
dWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW1hZ2VCdWZmZXJUeXBlID0gQ29uY3JldGVJ
bWFnZUJ1ZmZlciwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIHN0YXRpYyBSZWZQdHI8SW1h
Z2VCdWZmZXJUeXBlPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxG
b3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IENyZWF0aW9uQ29udGV4dCYgY3JlYXRpb25Db250ZXh0
LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCisgICAgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZl
clR5cGU+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBw
aXhlbEZvcm1hdCwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBjb25zdCBDcmVhdGlvbkNvbnRl
eHQmIGNyZWF0aW9uQ29udGV4dCwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQogICAgIHsKLSAg
ICAgICAgYXV0byBwYXJhbWV0ZXJzID0gSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzIHsg
c2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCB9OworICAgICAg
ICBhdXRvIHBhcmFtZXRlcnMgPSBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMgeyBzaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBwdXJwb3NlIH07CiAg
ICAgICAgIGF1dG8gYmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUocGFyYW1ldGVycywgY3Jl
YXRpb25Db250ZXh0KTsKICAgICAgICAgaWYgKCFiYWNrZW5kKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CkBAIC00Nyw5ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBJbWFnZUJ1ZmZlclR5cGUgPSBDb25jcmV0ZUltYWdlQnVmZmVyLCB0eXBlbmFt
ZS4uLiBBcmd1bWVudHM+Ci0gICAgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZlclR5cGU+IGNyZWF0
ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
QXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQorICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXJU
eXBlPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25zdCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgQXJndW1lbnRzJiYuLi4gYXJndW1l
bnRzKQogICAgIHsKLSAgICAgICAgYXV0byBwYXJhbWV0ZXJzID0gSW1hZ2VCdWZmZXJCYWNrZW5k
OjpQYXJhbWV0ZXJzIHsgc2l6ZSwgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIFBp
eGVsRm9ybWF0OjpCR1JBOCB9OworICAgICAgICBhdXRvIHBhcmFtZXRlcnMgPSBJbWFnZUJ1ZmZl
ckJhY2tlbmQ6OlBhcmFtZXRlcnMgeyBzaXplLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNS
R0IoKSwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBwdXJwb3NlIH07CiAgICAgICAgIGF1dG8gYmFja2Vu
ZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUocGFyYW1ldGVycywgY29udGV4dCk7CiAgICAgICAgIGlm
ICghYmFja2VuZCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtOTcsNiArOTcsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgSW50U2l6ZSB0cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIEludFNpemUobV9wYXJhbWV0ZXJzLmxvZ2ljYWxTaXplKTsgfSAvLyBZ
b3UgcHJvYmFibHkgc2hvdWxkIGJlIGNhbGxpbmcgbG9naWNhbFNpemUoKSBpbnN0ZWFkLgogICAg
IGZsb2F0IHJlc29sdXRpb25TY2FsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGFyYW1l
dGVycy5yZXNvbHV0aW9uU2NhbGU7IH0KICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JT
cGFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5jb2xvclNwYWNlOyB9
CisgICAgUmVuZGVyaW5nUHVycG9zZSByZW5kZXJpbmdQdXJwb3NlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9wYXJhbWV0ZXJzLnB1cnBvc2U7IH0KICAgICBQaXhlbEZvcm1hdCBwaXhlbEZv
cm1hdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5waXhlbEZvcm1hdDsg
fQogICAgIGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGFyYW1ldGVyczsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKaW5kZXggZWJmMTgwMTI4
MDUwMzEwYjU2YTQ2ZDFmYTJhMWE5YzU0MzY1MDAzYy4uMjU3MzYzMzZiMDRkMjk2OWM3NWM2ODcx
MmNmZjg3Zjk1OTgxYzg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmNwcApAQCAtNDQsMTAgKzQ0LDEwIEBAIFJlZlB0cjxJbWFnZUJ1ZmZl
cj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ1B1
cnBvc2UKICAgICAvLyBHaXZlIFVzZURpc3BsYXlMaXN0IGEgaGlnaGVyIHByZWNlZGVuY2Ugc2lu
Y2UgaXQgaXMgYSBkZWJ1ZyBvcHRpb24uCiAgICAgaWYgKG9wdGlvbnMuY29udGFpbnMoSW1hZ2VC
dWZmZXJPcHRpb25zOjpVc2VEaXNwbGF5TGlzdCkpIHsKICAgICAgICAgaWYgKG9wdGlvbnMuY29u
dGFpbnMoSW1hZ2VCdWZmZXJPcHRpb25zOjpBY2NlbGVyYXRlZCkpCi0gICAgICAgICAgICBpbWFn
ZUJ1ZmZlciA9IERpc3BsYXlMaXN0QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUs
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0aW9uQ29udGV4
dCk7CisgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0QWNjZWxlcmF0ZWRJbWFn
ZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxG
b3JtYXQsIHB1cnBvc2UsIGNyZWF0aW9uQ29udGV4dCk7CiAgICAgICAgIAogICAgICAgICBpZiAo
IWltYWdlQnVmZmVyKQotICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdFVuYWNj
ZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0aW9uQ29udGV4dCk7CisgICAgICAgICAgICBpbWFnZUJ1
ZmZlciA9IERpc3BsYXlMaXN0VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgcHVycG9zZSwgY3JlYXRp
b25Db250ZXh0KTsKICAgICB9CiAgICAgCiAgICAgaWYgKGNyZWF0aW9uQ29udGV4dC5ob3N0V2lu
ZG93ICYmICFpbWFnZUJ1ZmZlcikgewpAQCAtNTksMTAgKzU5LDEwIEBAIFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmlu
Z1B1cnBvc2UKICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwogCiAgICAgaWYgKG9wdGlvbnMu
Y29udGFpbnMoSW1hZ2VCdWZmZXJPcHRpb25zOjpBY2NlbGVyYXRlZCkpCi0gICAgICAgIGltYWdl
QnVmZmVyID0gQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0aW9uQ29udGV4dCk7CisgICAgICAg
IGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHB1cnBvc2UsIGNyZWF0aW9uQ29u
dGV4dCk7CiAgICAgCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAgICAgICAgaW1hZ2VCdWZmZXIg
PSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBjcmVhdGlvbkNvbnRleHQpOworICAgICAgICBpbWFn
ZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHB1cnBvc2UsIGNyZWF0aW9uQ29udGV4
dCk7CiAKICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCBlZDNkZmViMmYwMTUxNWQ1ZmU0NmFi
NWU0ODhlMGIwZmE3NGEwOTg5Li45Y2IwNzhlZTk4ZTc1MTczYjM0ZDY3ZDllYWIxNWE5ZTlkMjA2
YTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW1hZ2VCdWZmZXJCYWNr
ZW5kKiBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgUmVu
ZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVuZGVy
aW5nUHVycG9zZSByZW5kZXJpbmdQdXJwb3NlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBjYW5NYXBCYWNraW5nU3RvcmUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4geyB9OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggNDc3ZmE2NDcxNWU5MDdjMDE2MTJhZjYxZDNh
OTE2M2ExNzE2NTFlMi4uMzI1OGY3MGNhM2U4MGE1ZmM2MTVmZDE0Mjc4ZmE0MDZjMzg2NWE2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJCYWNrZW5kLmgKQEAgLTg5LDYgKzg5LDcgQEAgcHVibGljOgogICAgICAgICBmbG9hdCByZXNv
bHV0aW9uU2NhbGU7CiAgICAgICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlOwog
ICAgICAgICBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdDsKKyAgICAgICAgUmVuZGVyaW5nUHVycG9z
ZSBwdXJwb3NlOwogICAgIH07CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5JbWFnZUJ1
ZmZlckJhY2tlbmQoKTsKQEAgLTE3MSw2ICsxNzIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZmxvYXQg
cmVzb2x1dGlvblNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLnJlc29sdXRpb25T
Y2FsZTsgfQogICAgIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5jb2xvclNwYWNlOyB9CiAgICAgUGl4ZWxGb3JtYXQg
cGl4ZWxGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMucGl4ZWxGb3JtYXQ7IH0K
KyAgICBSZW5kZXJpbmdQdXJwb3NlIHJlbmRlcmluZ1B1cnBvc2UoKSBjb25zdCB7IHJldHVybiBt
X3BhcmFtZXRlcnMucHVycG9zZTsgfQogCiAgICAgSW50UmVjdCBsb2dpY2FsUmVjdCgpIGNvbnN0
IHsgcmV0dXJuIEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgbG9naWNhbFNpemUoKSk7IH07CiAg
ICAgSW50UmVjdCBiYWNrZW5kUmVjdCgpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoSW50UG9pbnQ6
Onplcm8oKSwgYmFja2VuZFNpemUoKSk7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyLmgKaW5kZXggOGQyMTU2ZTlmYmZk
Y2I1YWVjZjQ0ODljMDMxZTIyNTUxZThhYzg2MS4uMGUxMjYyMGIxMmJlMzA5ZjM3N2QxODkxYzE5
NWFlOTJiNWM1ZmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXIuaApAQCAtNjAsMTMgKzYwLDEzIEBAIHVzaW5nIERp
c3BsYXlMaXN0QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZl
cjxBY2NlbGVyYXRlZEltCiBjbGFzcyBJT1N1cmZhY2VJbWFnZUJ1ZmZlciBmaW5hbCA6IHB1Ymxp
YyBDb25jcmV0ZUltYWdlQnVmZmVyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gewogICAg
IHVzaW5nIEJhc2UgPSBDb25jcmV0ZUltYWdlQnVmZmVyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZD47CiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBXZWJDb3JlOjpEZXN0
aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0IHBpeGVs
Rm9ybWF0LCBjb25zdCBDcmVhdGlvbkNvbnRleHQmIGNyZWF0aW9uQ29udGV4dCA9IHsgfSkKKyAg
ICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxG
b3JtYXQgcGl4ZWxGb3JtYXQsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgY29uc3QgQ3JlYXRp
b25Db250ZXh0JiBjcmVhdGlvbkNvbnRleHQgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4g
QmFzZTo6Y3JlYXRlPElPU3VyZmFjZUltYWdlQnVmZmVyPihzaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBjcmVhdGlvbkNvbnRleHQpOworICAgICAgICByZXR1
cm4gQmFzZTo6Y3JlYXRlPElPU3VyZmFjZUltYWdlQnVmZmVyPihzaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBwdXJwb3NlLCBjcmVhdGlvbkNvbnRleHQpOwog
ICAgIH0KLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25z
dCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBSZW5kZXJp
bmdQdXJwb3NlIHB1cnBvc2UpCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZTo6Y3JlYXRlPElP
U3VyZmFjZUltYWdlQnVmZmVyPihzaXplLCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIEJhc2U6
OmNyZWF0ZTxJT1N1cmZhY2VJbWFnZUJ1ZmZlcj4oc2l6ZSwgY29udGV4dCwgcHVycG9zZSk7CiAg
ICAgfQogICAgIHVzaW5nIEJhc2U6OkJhc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJJbWFnZUNvcmVJbWFnZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJJbWFnZUNvcmVJ
bWFnZS5tbQppbmRleCAwNjUxMGQ5NjY2MDdlOGEwY2JmY2EzYjE3ODk0NTExOGQ4ZWZlNDRmLi5k
Y2U5MTlhMTYwNzZhOWQ0MjNkMGFjNzlkMjNjYzM5NWJlZDJiMWQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVySW1hZ2VDb3JlSW1h
Z2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0Zp
bHRlckltYWdlQ29yZUltYWdlLm1tCkBAIC01NSw3ICs1NSw3IEBAIEltYWdlQnVmZmVyKiBGaWx0
ZXJJbWFnZTo6aW1hZ2VCdWZmZXJGcm9tQ0lJbWFnZSgpCiAgICAgaWYgKG1faW1hZ2VCdWZmZXIp
CiAgICAgICAgIHJldHVybiBtX2ltYWdlQnVmZmVyLmdldCgpOwogCi0gICAgbV9pbWFnZUJ1ZmZl
ciA9IElPU3VyZmFjZUltYWdlQnVmZmVyOjpjcmVhdGUobV9hYnNvbHV0ZUltYWdlUmVjdC5zaXpl
KCksIDEsIG1fY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKKyAgICBtX2ltYWdlQnVm
ZmVyID0gSU9TdXJmYWNlSW1hZ2VCdWZmZXI6OmNyZWF0ZShtX2Fic29sdXRlSW1hZ2VSZWN0LnNp
emUoKSwgMSwgbV9jb2xvclNwYWNlLCBQaXhlbEZvcm1hdDo6QkdSQTgsIFJlbmRlcmluZ1B1cnBv
c2U6OlVuc3BlY2lmaWVkKTsKICAgICBpZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaApp
bmRleCA3Zjk4Y2ZmY2ExMTY1YWI2OWMxZjg1N2NhZGYxZjMzOTc3YzRkODkwLi43YmI4ZmZlMGE3
OWViYmEyMjdjYmRlN2Q0Zjc0MjM4YWRlNzlmNTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBjbGFzcyBJbWFnZUJ1ZmZl
ciBmaW5hbCA6IHB1YmxpYyBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiB7CiAgICAg
dXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmJhc2VUcmFuc2Zvcm07CiAKIHB1YmxpYzoK
LSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4
ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyOjpDcmVhdGlv
bkNvbnRleHQmIGNyZWF0aW9uQ29udGV4dCkKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3Qg
RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9u
Q29sb3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIFJlbmRlcmlu
Z1B1cnBvc2UgcHVycG9zZSwgY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkNyZWF0aW9uQ29u
dGV4dCYgY3JlYXRpb25Db250ZXh0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0
ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8SW1hZ2VCdWZmZXI+KHNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0aW9uQ29udGV4dCk7CisgICAg
ICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPEltYWdl
QnVmZmVyPihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBw
dXJwb3NlLCBjcmVhdGlvbkNvbnRleHQpOwogICAgIH0KIAotICAgIHN0YXRpYyBhdXRvIGNyZWF0
ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkK
KyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25zdCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPElt
YWdlQnVmZmVyPihzaXplLCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUlt
YWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8SW1hZ2VCdWZmZXI+KHNpemUsIGNvbnRleHQsIHB1
cnBvc2UpOwogICAgIH0KIAogICAgIEltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyQmFja2Vu
ZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYm
IGJhY2tlbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IDc0OGU2N2IyMzBhZWQxMDRkMzY2ZDNkNTVmZjk1YjQ5
NTk0Nzc5ZDMuLmFmZGE3ZTFkZjQ1MmJlYTc2MDQxYjQzYTQxOTMwY2FmNWRjYjE1MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlci5oCkBAIC00Nyw5ICs0Nyw5IEBAIGNsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGlj
IFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+IHsKICAgICB1c2luZyBC
YXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6cHV0UGl4ZWxCdWZmZXI7CiAKIHB1YmxpYzoKLSAgICBz
dGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29s
b3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgc3RhdGljIGF1
dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2Us
IFdlYkNvcmU6OlBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdQdXJw
b3NlIHB1cnBvc2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXI6OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgbnVsbHB0ciwgcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJuIEJhc2VD
b25jcmV0ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8UmVtb3RlSW1hZ2VCdWZmZXI+KHNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHB1cnBvc2UsIHsg
bnVsbHB0ciB9LCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwogICAgIH0KIAogICAgIFJlbW90ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6Oklt
YWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgc3RkOjp1bmlxdWVfcHRy
PEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZDM2
Y2M0MDI3ZDI2MjYzYzBmNDgwOWQ4MDFjOWIyMDgwZjJmZGExZS4uOGIwNTg0YmUwOGU3MDhhM2Rj
ZTIwN2QzNjFiZGQ3ZDA1MmNkM2UwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtMTY3
LDE0ICsxNjcsMTQgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRGbHVzaChHcmFw
aGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGkKICAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkRpZEZsdXNoKGZsdXNoSWRlbnRpZmllciwg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLm9iamVjdCgpKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1h
Z2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JT
cGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlclJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlIHB1
cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNl
JiBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlQnVmZmVyUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIC8vIEltbWVk
aWF0ZWx5IHR1cm4gdGhlIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciAod2hpY2ggaXMgZXJy
b3ItcHJvbmUpIHRvIGEgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLAogICAg
IC8vIGFuZCB1c2UgYSBoZWxwZXIgZnVuY3Rpb24gdG8gbWFrZSBzdXJlIHRoYXQgZG9uJ3QgYWNj
aWRlbnRhbGx5IHVzZSB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIChiZWNhdXNlIHRo
ZSBoZWxwZXIgZnVuY3Rpb24gY2FuJ3Qgc2VlIGl0KS4KLSAgICBjcmVhdGVJbWFnZUJ1ZmZlcldp
dGhRdWFsaWZpZWRJZGVudGlmaWVyKGxvZ2ljYWxTaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCB7IGltYWdlQnVmZmVyUmVzb3VyY2VJ
ZGVudGlmaWVyLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGlm
aWVyKCkgfSk7CisgICAgY3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihs
b2dpY2FsU2l6ZSwgcmVuZGVyaW5nTW9kZSwgcHVycG9zZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBwaXhlbEZvcm1hdCwgeyBpbWFnZUJ1ZmZlclJlc291cmNlSWRlbnRpZmllciwgbV9n
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0pOwogfQog
Ci12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9u
Q29sb3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIFF1YWxpZmll
ZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlclJlc291cmNlSWRlbnRpZmll
cikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVh
bGlmaWVkSWRlbnRpZmllcihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIFBpeGVs
Rm9ybWF0IHBpeGVsRm9ybWF0LCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
aW1hZ2VCdWZmZXJSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAgICAgQVNTRVJUKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNj
ZWxlcmF0ZWQgfHwgcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVk
KTsKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0
ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoY29uc3QgRmxvYQogICAgIFJlZlB0
cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXI7CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBS
ZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBhY2NlbGVyYXRl
ZEltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2lj
YWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywg
aW1hZ2VCdWZmZXJSZXNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAgICAgIGlmIChhdXRvIGFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUo
bG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHB1
cnBvc2UsICp0aGlzLCBpbWFnZUJ1ZmZlclJlc291cmNlSWRlbnRpZmllcikpIHsKICAgICAgICAg
ICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2Vz
cyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhh
dCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgogICAgICAgICAgICAgaWYgKG1f
cmVzb3VyY2VPd25lcikKICAgICAgICAgICAgICAgICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5z
ZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIpOwpAQCAtMTkxLDcgKzE5MSw3IEBA
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlm
aWVkSWRlbnRpZmllcihjb25zdCBGbG9hCiAgICAgfQogCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikK
LSAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1h
dCwgKnRoaXMsIGltYWdlQnVmZmVyUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaW1hZ2VC
dWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6
ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgcHVycG9zZSwgKnRo
aXMsIGltYWdlQnVmZmVyUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIGlmICghaW1hZ2VCdWZm
ZXIpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApp
bmRleCBmNDM4M2JlZmZlNDcyNTU5ZTU1NDRmM2JhNGVjNzBiZjVhNTRiNDk0Li4wMDUwNTY1Nzcz
NzZjNWU1MWMwMTJhZTFjYzIxMzgzMTY3NzQ2ZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAg
LTEwNyw3ICsxMDcsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNl
aXZlZC4KLSAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgY29uc3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJiwgV2ViQ29yZTo6UGl4
ZWxGb3JtYXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9p
ZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXpl
LCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYs
IFdlYkNvcmU6OlBpeGVsRm9ybWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOwogICAgIHZvaWQgZ2V0UGl4ZWxCdWZmZXJGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiYsIFdl
YkNvcmU6OkludFJlY3QmJiBzcmNSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgZ2V0UGl4ZWxCdWZmZXJGb3JJbWFnZUJ1ZmZlcldpdGhOZXdNZW1vcnkoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYm
LCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYmIGRlc3RpbmF0aW9uRm9ybWF0LCBXZWJDb3Jl
OjpJbnRSZWN0JiYgc3JjUmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIGRlc3Ryb3lHZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeSgpOwpAQCAtMTI1LDcgKzEyNSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmVwYXJlQnVmZmVyc0ZvckRpc3BsYXkoVmVjdG9yPFBy
ZXBhcmVCYWNraW5nU3RvcmVCdWZmZXJzSW5wdXREYXRhPiBzd2FwQnVmZmVyc0lucHV0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxQcmVwYXJlQmFja2luZ1N0b3JlQnVmZmVy
c091dHB1dERhdGE+Jik+JiYpOwogCiAgICAgLy8gUmVjZWl2ZWQgbWVzc2FnZXMgdHJhbnNsYXRl
ZCB0byB1c2UgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLgotICAgIHZvaWQg
Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIFdlYkNv
cmU6OlBpeGVsRm9ybWF0LCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBX
ZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IFdl
YkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIFdlYkNvcmU6OlBpeGVsRm9ybWF0LCBRdWFs
aWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0RGF0YVVSTEZv
ckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1
dGlvbiwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CiAgICAgdm9pZCBnZXREYXRhRm9ySW1hZ2VCdWZmZXJX
aXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gcXVhbGl0eSwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJik7CiAgICAgdm9p
ZCBnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVy
KFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVS
ZXNvbHV0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxl
JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggZGE3
Y2YxYzJkZDM0ZjI3ZWJjMzMzYjJhODMxYjNlMDEzMDE1Y2Q0YS4uOGFiNWQ4MGVhNmY4ODI4Mjk3
YjQ2NGJhMjgxZDQ2NjIwNDc1YzJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVz
c2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1l
c3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgTm90UmVmQ291bnRlZCBTdHJlYW0gewot
ICAgIENyZWF0ZUltYWdlQnVmZmVyKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2Vi
Q29yZTo6UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgQ3JlYXRlSW1h
Z2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2UgcmVuZGVyaW5n
UHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UgY29sb3JTcGFjZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBpeGVsRm9ybWF0IHBpeGVs
Rm9ybWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQogICAgIEdldFBpeGVsQnVmZmVyRm9ySW1hZ2VCdWZmZXIoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVyLCBzdHJ1Y3QgV2ViQ29y
ZTo6UGl4ZWxCdWZmZXJGb3JtYXQgb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1Jl
Y3QpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgR2V0UGl4ZWxCdWZmZXJGb3JJbWFnZUJ1ZmZlcldp
dGhOZXdNZW1vcnkoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVm
ZmVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSwgc3RydWN0IFdlYkNv
cmU6OlBpeGVsQnVmZmVyRm9ybWF0IG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNS
ZWN0KSAtPiAoKSBTeW5jaHJvbm91cyBOb3RTdHJlYW1FbmNvZGFibGUKICAgICBEZXN0cm95R2V0
UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggYWRjMTY0YjBjNWE4MTNlOTZhNDc3MGVjNjVjNDMyOWNiMTY4MDQ1OC4u
NGE4ODA5ODA5YTU2ZjNjZWYyYWRjZTAyMGEzMGY1MGU3Nzk1ZDc4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yOTYsNiArMjk2LDcgQEAgZGVmIHR5cGVz
X3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlJlbmRlcmluZ01vZGUnLAorICAgICAgICAn
V2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZScsCiAgICAgICAgICdXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIn
LApAQCAtODM1LDYgKzgzNiw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAg
ICAnV2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1B1c2hT
dWJzY3JpcHRpb25JZGVudGlmaWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpRdWFkQ3VydmVE
YXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
UmVjZW50U2VhcmNoJzogWyc8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4nXSwKKyAgICAgICAg
J1dlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2UnOiBbJzxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OlJlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0JzogWyc8V2Vi
Q29yZS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeSc6IFsnPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNl
V29ya2VyVHlwZXMuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xs
ZWN0aW9uLm1tCmluZGV4IGIyMDNlMjc4N2Q1ZTZmYmViZTkyNWI4YTY1ZjNhMjA2MGUzMDY3MDcu
LmI5ODEwOGZkMmFmNWU5ZGY1NzQ5NWVlOWVhNjA5NGQ5YWE5YTYzMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZUNvbGxlY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbQpAQCAtMjY0LDkgKzI2NCw5IEBA
IFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xs
ZWN0aW9uOjphbGxvY2F0ZUJ1ZmZlckZvCiB7CiAgICAgc3dpdGNoIChiYWNraW5nU3RvcmUudHlw
ZSgpKSB7CiAgICAgY2FzZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6VHlwZTo6SU9TdXJmYWNl
OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxBY2NlbGVyYXRl
ZEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkQmFja2VuZD46OmNyZWF0ZShiYWNraW5nU3RvcmUu
c2l6ZSgpLCBiYWNraW5nU3RvcmUuc2NhbGUoKSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNw
YWNlOjpTUkdCKCksIGJhY2tpbmdTdG9yZS5waXhlbEZvcm1hdCgpLCB7IG51bGxwdHIsICZXZWJD
b3JlOjpJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCkgfSk7CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZS5zaXplKCksIGJhY2tpbmdTdG9yZS5z
Y2FsZSgpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgYmFja2luZ1N0
b3JlLnBpeGVsRm9ybWF0KCksIFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2U6OkRPTSwgeyBudWxs
cHRyLCAmV2ViQ29yZTo6SU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpIH0pOwogICAgIGNhc2Ug
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OlR5cGU6OkJpdG1hcDoKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVh
YmxlQmFja2VuZD46OmNyZWF0ZShiYWNraW5nU3RvcmUuc2l6ZSgpLCBiYWNraW5nU3RvcmUuc2Nh
bGUoKSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIGJhY2tpbmdTdG9y
ZS5waXhlbEZvcm1hdCgpLCB7IH0pOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29uY3JldGVJ
bWFnZUJ1ZmZlcjxVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjo6Y3Jl
YXRlKGJhY2tpbmdTdG9yZS5zaXplKCksIGJhY2tpbmdTdG9yZS5zY2FsZSgpLCBXZWJDb3JlOjpE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgYmFja2luZ1N0b3JlLnBpeGVsRm9ybWF0KCks
IFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2U6OkRPTSwgeyB9KTsKICAgICB9CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldp
dGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tCmluZGV4IGNlMzI2NzFi
ZTE3NjQ1NmQxNGFhNDQ1M2JmYjZjNmU0Y2NlNmFmNzYuLmFjNTQyYzY1MGZlNTA2YTEzNTBiYzc2
ODlkNmE3YjBhZGFmYzhjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xs
ZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tCkBAIC0x
MDksNyArMTA5LDcgQEAgdm9pZCBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5n
U3RvcmVDb2xsZWN0aW9uOjpwcmVwYXJlQmFja2luZ1N0b3Jlc0YKIFJlZlB0cjxXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcj4gUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29s
bGVjdGlvbjo6YWxsb2NhdGVCdWZmZXJGb3JCYWNraW5nU3RvcmUoY29uc3QgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSkKIHsKICAgICBhdXRvIHJlbmRlcmluZ01vZGUgPSBi
YWNraW5nU3RvcmUudHlwZSgpID09IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpUeXBlOjpJT1N1
cmZhY2UgPyBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFdlYkNvcmU6OlJl
bmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7Ci0gICAgcmV0dXJuIHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSgpLmNyZWF0ZUltYWdlQnVmZmVyKGJhY2tpbmdTdG9yZS5zaXplKCksIHJlbmRl
cmluZ01vZGUsIGJhY2tpbmdTdG9yZS5zY2FsZSgpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2U6OlNSR0IoKSwgYmFja2luZ1N0b3JlLnBpeGVsRm9ybWF0KCkpOworICAgIHJldHVybiBy
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKS5jcmVhdGVJbWFnZUJ1ZmZlcihiYWNraW5nU3Rv
cmUuc2l6ZSgpLCByZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlOjpET00sIGJhY2tpbmdT
dG9yZS5zY2FsZSgpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgYmFj
a2luZ1N0b3JlLnBpeGVsRm9ybWF0KCkpOwogfQogCiBib29sIFJlbW90ZUxheWVyV2l0aFJlbW90
ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246OmNvbGxlY3RCYWNraW5nU3RvcmVCdWZm
ZXJJZGVudGlmaWVyc1RvTWFya1ZvbGF0aWxlKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJiBiYWNr
aW5nU3RvcmUsIE9wdGlvblNldDxWb2xhdGlsaXR5TWFya2luZ0JlaGF2aW9yPiBtYXJraW5nQmVo
YXZpb3IsIE1vbm90b25pY1RpbWUgbm93LCBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyPiYgaWRlbnRpZmllcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCmluZGV4IDliZjRlY2E1MzQ3NWJiYThhZmNkYjRkNGViMzcyNGJk
MzhjNzA2NTguLjRiYzljZDIyZmJjZTk5YTc2N2QzNDllNGExZmYwY2MxZmFlMzdiMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC04NjUsNiAr
ODY1LDE2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UmVuZGVyaW5n
TW9kZT4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OlJlbmRlcmluZ1B1cnBvc2U+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgICAgICBXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlLAorICAgICAgICBXZWJDb3JlOjpSZW5k
ZXJpbmdQdXJwb3NlOjpVbnNwZWNpZmllZCwKKyAgICAgICAgV2ViQ29yZTo6UmVuZGVyaW5nUHVy
cG9zZTo6Q2FudmFzLAorICAgICAgICBXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlOjpET00sCisg
ICAgICAgIFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2U6Ok1lZGlhUGFpbnRpbmcKKyAgICA+Owor
fTsKKwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklOR19JTl9ORVRXT1JLSU5HX1BST0NFU1Mp
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQ+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCmluZGV4IGYw
NTliOTlhN2UwYWQxYTg4MDU0MGE0Y2ZhNDNjNjc3M2UyOTA3NjUuLjVmMjQ0ZTY0N2E2YzI1ZjI0
ODFlYWExNjQ3YTZjNjcyNjFiMDg0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eS5jcHAKQEAgLTQ0OSw3ICs0NDksOCBAQCBSZWZQdHI8SW1hZ2VCdWZmZXI+
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3Qg
RmxvYQogICAgIGlmIChyZW5kZXJpbmdNZXRob2QpCiAgICAgICAgIHJldHVybiBSZWNvcmRlcjo6
Y3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCByZW5k
ZXJpbmdNb2RlLCByZW5kZXJpbmdNZXRob2QpOwogCi0gICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFj
a2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZS52YWx1ZV9vcih0aGlz
LT5yZW5kZXJpbmdNb2RlKCkpLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFBpeGVsRm9y
bWF0OjpCR1JBOCk7CisgICAgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlID0gbV9pbWFnZUJ1ZmZl
ciA/IG1faW1hZ2VCdWZmZXItPnJlbmRlcmluZ1B1cnBvc2UoKSA6IFJlbmRlcmluZ1B1cnBvc2U6
OkRPTTsKKyAgICByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZlcihz
aXplLCByZW5kZXJpbmdNb2RlLnZhbHVlX29yKHRoaXMtPnJlbmRlcmluZ01vZGUoKSksIHB1cnBv
c2UsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKIH0K
IAogUmVmUHRyPEltYWdlQnVmZmVyPiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNy
ZWF0ZUFsaWduZWRJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIGNvbnN0IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdNZXRo
b2Q+IHJlbmRlcmluZ01ldGhvZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5k
ZXggMWFjZWNkOTZmMGQ5ZTA5MGNjYzE5OTlkOTc0YTgyZmU2MDQ2ZjNiOS4uM2RhMzAyNTgwZTAy
Y2FlOGNmZTJjNjliMTc5NmM5YmI0ZjA0MDc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmgKQEAgLTU0LDkgKzU0LDkgQEAgY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1Ymxp
YyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPgogICAgIHVzaW5nIEJh
c2VDb25jcmV0ZUltYWdlQnVmZmVyOjpyZXNvbHV0aW9uU2NhbGU7CiAKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPFJlbW90ZUltYWdlQnVmZmVyUHJveHk+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgV2ViQ29yZTo6
RGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBw
aXhlbEZvcm1hdCwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkpCisgICAgc3RhdGljIFJlZlB0cjxSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PiBj
cmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwgV2Vi
Q29yZTo6UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2Ug
cHVycG9zZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkpCiAgICAgewotICAgICAgICBhdXRvIHBhcmFtZXRlcnMgPSBXZWJDb3JlOjpJbWFn
ZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMgeyBzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIHBpeGVsRm9ybWF0IH07CisgICAgICAgIGF1dG8gcGFyYW1ldGVycyA9IFdlYkNvcmU6
OkltYWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyB7IHNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHB1cnBvc2UgfTsKICAgICAgICAgaWYgKEJhY2tlbmRU
eXBlOjpjYWxjdWxhdGVTYWZlQmFja2VuZFNpemUocGFyYW1ldGVycykuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eShwYXJhbWV0ZXJzLCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCA4MzI3
NjYzM2NiNTc3ZDk1OGI0NDQ1YWE3NGI5NzExNDQ1MDcxNDNmLi5mMDBhMGY2OGQ3ZGY2Y2IzOWNk
NDU4ZGM4ZTU1YmUwYzgxOWYwYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwCkBAIC0xMTksMTAgKzExOSwxMCBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6d2FpdEZvckRpZEZsdXNoKCkKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpjcmVhdGVSZW1vdGVJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpCiB7
CiAgICAgYXV0byBsb2dpY2FsU2l6ZSA9IGltYWdlQnVmZmVyLmxvZ2ljYWxTaXplKCk7Ci0gICAg
c2VuZFRvU3RyZWFtKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFn
ZUJ1ZmZlcihsb2dpY2FsU2l6ZSwgaW1hZ2VCdWZmZXIucmVuZGVyaW5nTW9kZSgpLCBpbWFnZUJ1
ZmZlci5yZXNvbHV0aW9uU2NhbGUoKSwgaW1hZ2VCdWZmZXIuY29sb3JTcGFjZSgpLCBpbWFnZUJ1
ZmZlci5waXhlbEZvcm1hdCgpLCBpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIoKSkpOworICAgIHNlbmRUb1N0cmVhbShNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6Q3JlYXRlSW1hZ2VCdWZmZXIobG9naWNhbFNpemUsIGltYWdlQnVmZmVyLnJlbmRlcmluZ01v
ZGUoKSwgaW1hZ2VCdWZmZXIucmVuZGVyaW5nUHVycG9zZSgpLCBpbWFnZUJ1ZmZlci5yZXNvbHV0
aW9uU2NhbGUoKSwgaW1hZ2VCdWZmZXIuY29sb3JTcGFjZSgpLCBpbWFnZUJ1ZmZlci5waXhlbEZv
cm1hdCgpLCBpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkpOwogfQog
Ci1SZWZQdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNl
JiBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCkKK1JlZlB0cjxJbWFnZUJ1ZmZl
cj4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBG
bG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVy
cG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29s
b3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQpCiB7CiAgICAgUmVm
UHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcjsKIApAQCAtMTMxLDEzICsxMzEsMTMgQEAgUmVm
UHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdl
QnVmZmVyKGNvbnN0IEZsb2F0U2kKICAgICAgICAgLy8gd2UgbmVlZCB0byBjcmVhdGUgSW1hZ2VC
dWZmZXJzIGZvciBlLmcuIENhbnZhcyB0aGF0IGFyZSBhY3R1YWxseSBtYXBwZWQgaW50byB0aGUK
ICAgICAgICAgLy8gV2ViIENvbnRlbnQgcHJvY2Vzcywgc28gdGhleSBjYW4gYmUgcGFpbnRlZCBp
bnRvIHRoZSB0aWxlcy4KICAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zaG91
bGRVc2VSZW1vdGVSZW5kZXJpbmdGb3IoUmVuZGVyaW5nUHVycG9zZTo6RE9NKSkKLSAgICAgICAg
ICAgIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlck1hcHBlZFByb3h5
OjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwg
KnRoaXMpOworICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdl
QnVmZmVyTWFwcGVkUHJveHk6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIHBpeGVsRm9ybWF0LCBwdXJwb3NlLCAqdGhpcyk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVh
dGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMp
OworICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVy
UHJveHk6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9y
bWF0LCBwdXJwb3NlLCAqdGhpcyk7CiAgICAgfQogCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAg
ICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6
Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsICp0
aGlzKTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eTo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxG
b3JtYXQsIHB1cnBvc2UsICp0aGlzKTsKIAogICAgIGlmIChpbWFnZUJ1ZmZlcikgewogICAgICAg
ICBjcmVhdGVSZW1vdGVJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggMWQwMGY0Zjk2Y2U0OGVjYzQ2MjRkMzgyYzUwZTI5
MWYzZTdjNzEyYS4uYzA0MDIwZDQ0YTMzZjUxYzJjZDFkNDY0MDM2NDRiMGNlZGVmMDkxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC04Miw3ICs4Miw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KLSAgICBS
ZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgY29uc3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJiwgV2ViQ29yZTo6UGl4
ZWxGb3JtYXQpOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VC
dWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBX
ZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCk7CiAg
ICAgYm9vbCBnZXRQaXhlbEJ1ZmZlckZvckltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIGRlc3Rp
bmF0aW9uRm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBTcGFuPHVpbnQ4
X3Q+IHJlc3VsdCk7CiAgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlckZvckltYWdlQnVmZmVyKFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZm
ZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3Jt
YXQpOwogICAgIFN0cmluZyBnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlByZXNlcnZl
UmVzb2x1dGlvbiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKaW5kZXggZWM4M2JjYWU3ZGNlMDAzYmM5NWYwYjg0OWI3NWEyNDRhYTVi
MjlhMi4uZWEyNzE4NDA2MDQ0NGZiMjc1MDMzZmU3NzIxNzk2ZjkzZDE0YWU1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKQEAgLTk0Myw3ICs5NDMsNyBAQCBSZWZQdHI8SW1hZ2VCdWZmZXI+IFdl
YkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBS
ZQogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkVXNlUmVtb3RlUmVuZGVy
aW5nRm9yKHB1cnBvc2UpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBt
X3BhZ2UuZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkuY3JlYXRlSW1hZ2VCdWZm
ZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhl
bEZvcm1hdCk7CisgICAgcmV0dXJuIG1fcGFnZS5lbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkoKS5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJwb3NlLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIH0KICNlbmRpZgogCg==
</data>
<flag name="review"
          id="485287"
          type_id="1"
          status="+"
          setter="sabouhallawa"
    />
    <flag name="commit-queue"
          id="485308"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>