<?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>244526</bug_id>
          
          <creation_ts>2022-08-29 19:38:06 -0700</creation_ts>
          <short_desc>TextureMapper: Attach a depth buffer for BitmapTextureGL for 3D transform</short_desc>
          <delta_ts>2023-03-22 02:44:53 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=90078</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=254262</see_also>
          <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>241699</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>magomez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1894708</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-08-29 19:38:06 -0700</bug_when>
    <thetext>TextureMapper: Attach a depth buffer for BitmapTextureGL for 3D transform

The current implementation is using only the depth buffer of the default framebuffer.
To support nesting 3D rendering context (bug#241699), I&apos;m going to attach a depth buffer for BitmapTextureGL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1894709</commentid>
    <comment_count>1</comment_count>
      <attachid>461998</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-08-29 19:44:48 -0700</bug_when>
    <thetext>Created attachment 461998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1894899</commentid>
    <comment_count>2</comment_count>
      <attachid>461998</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-08-30 13:03:57 -0700</bug_when>
    <thetext>Comment on attachment 461998
Patch

GTK EWS reported test failures.
depth bits isn&apos;t enough. Using GL_DEPTH_COMPONENT24 passes the tests, But, this isn&apos;t available for ES2.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1895409</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-08-31 21:21:04 -0700</bug_when>
    <thetext>I found out another problem for WinCairo.
It seems that ANGLE can&apos;t attach both a depth buffer and a stencil buffer to a fbo.
WinCairo has to use a single depth/stencil buffer of GL_DEPTH24_STENCIL8_OES.
Linux doesn&apos;t seem to have such problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1896410</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-09-05 19:39:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/99581351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902183</commentid>
    <comment_count>5</comment_count>
      <attachid>462718</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-09-29 14:38:43 -0700</bug_when>
    <thetext>Created attachment 462718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902188</commentid>
    <comment_count>6</comment_count>
      <attachid>462718</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2022-09-29 15:02:05 -0700</bug_when>
    <thetext>Comment on attachment 462718
Patch

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

r=me with nits

&gt; Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h:45
&gt; +#if OS(WINDOWS)
&gt; +#define USE_TEXMAP_DEPTH_STENCIL_BUFFER 1
&gt; +#else
&gt; +#define USE_TEXMAP_DEPTH_STENCIL_BUFFER 0
&gt; +#endif

From your commit message it seems like this might be better to be `#if USE(ANGLE)`?

Also I feel like this should be in a WTF header not just hanging out here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902223</commentid>
    <comment_count>7</comment_count>
      <attachid>462718</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-09-29 17:00:58 -0700</bug_when>
    <thetext>Comment on attachment 462718
Patch

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

Thank you very much for the review.

&gt;&gt; Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h:45
&gt;&gt; +#endif
&gt; 
&gt; From your commit message it seems like this might be better to be `#if USE(ANGLE)`?
&gt; 
&gt; Also I feel like this should be in a WTF header not just hanging out here.

GTK and WPE also enable USE_ANGLE. USE_ANGLE is nonsense anymore. We should remove it.
I don&apos;t want to recompile whole WebKit just by changing TextureMapper configs.
Not all USE_ macro definitions are in WTF. I think it&apos;s OK to be here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902270</commentid>
    <comment_count>8</comment_count>
      <attachid>462723</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-09-29 21:45:12 -0700</bug_when>
    <thetext>Created attachment 462723
[fast-cq] Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902271</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-09-29 21:47:46 -0700</bug_when>
    <thetext>Committed 255021@main (0793eb5a3182): &lt;https://commits.webkit.org/255021@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 462723.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461998</attachid>
            <date>2022-08-29 19:44:48 -0700</date>
            <delta_ts>2022-09-29 14:38:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244526-20220830114447.patch</filename>
            <type>text/plain</type>
            <size>14164</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSA1MDQ3NGMzM2M4ZTFiNDA2ZDdhMzgyZTRjOGVjOTQ2ZGIyNmNlNDk1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTE6Mzg6MzQgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBUZXh0dXJlTWFwcGVyOiBBdHRhY2ggYSBkZXB0aCBidWZmZXIgZm9yIEJpdG1hcFRleHR1cmVH
TCBmb3IKIDNEIHRyYW5zZm9ybSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjQ0NTI2CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRleHR1cmVNYXBwZXJHTCB3
YXMgdXNpbmcgb25seSB0aGUgZGVwdGggYnVmZmVyIG9mIHRoZSBkZWZhdWx0CmZyYW1lYnVmZmVy
IGZvciAzRCB0cmFuc2Zvcm0uIFRoaXMgY2hhbmdlIGF0dGFjaGVzIGEgZGVwdGggYnVmZmVyIGZv
cgpCaXRtYXBUZXh0dXJlR0wuIFRoaXMgaXNuJ3QgYSBiZWhhdmlvciBjaGFuZ2UuIFRoaXMgY2hh
bmdlIGlzIGEKcHJlcGFyYXRpb24gdG8gc3VwcG9ydCBuZXN0aW5nIDNEIHJlbmRlcmluZyBjb250
ZXh0IChidWcjMjQxNjk5KS4KCiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWds
L0dMQ29udGV4dEVHTC5jcHA6CihXZWJDb3JlOjpHTENvbnRleHRFR0w6OmdldEVHTENvbmZpZyk6
CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmUu
aDoKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVy
ZUdMLmNwcDoKKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6Y2xlYXJJZk5lZWRlZCk6CihXZWJD
b3JlOjpCaXRtYXBUZXh0dXJlR0w6OmNyZWF0ZUZib0lmTmVlZGVkKToKKFdlYkNvcmU6OkJpdG1h
cFRleHR1cmVHTDo6YmluZEFzU3VyZmFjZSk6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlUG9vbC5jcHA6CihXZWJDb3JlOjpCaXRtYXBU
ZXh0dXJlUG9vbDo6YWNxdWlyZVRleHR1cmUpOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpi
ZWdpblByZXNlcnZlczNEKTogRGVsZXRlZC4KKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OmVuZFBy
ZXNlcnZlczNEKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6YmVn
aW5QYWludGluZyk6CihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmJpbmREZWZhdWx0U3VyZmFj
ZSk6CihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmJlZ2luUHJlc2VydmVzM0QpOiBEZWxldGVk
LgooV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjplbmRQcmVzZXJ2ZXMzRCk6IERlbGV0ZWQuCiog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5o
OgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuY3BwOgooV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpwYWludFNlbGZBbmRDaGls
ZHJlbik6CihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50UmVjdXJzaXZlKToKKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRXaXRoM0RSZW5kZXJpbmdDb250ZXh0KToK
KiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmg6Ci0tLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwICAg
IHwgIDIgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5oICB8
ICAzICstCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAgICAgICAgfCAg
OCArKy0KIC4uLi9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmggICAgICAgICB8ICAx
IC0KIC4uLi9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZVBvb2wuY3BwICAgICB8ICA2ICst
CiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCAgfCAgMiAtCiAu
Li4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgICAgICAgfCAxMyArLS0tCiAu
Li4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oICAgICAgICAgfCAgMiAtCiAuLi4v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgICAgfCA3MiArKysrKysrKysr
KysrLS0tLS0tCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oICAgICAg
fCAgMSArCiAxMCBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0wuY3BwCmluZGV4IDI2MmIyZmI5MDIzNy4uM2U4ZWI3MzZmYjNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNw
cApAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgR0xDb250ZXh0RUdMOjpnZXRFR0xDb25maWcoRUdM
RGlzcGxheSBkaXNwbGF5LCBFR0xDb25maWcqIGNvbmZpZywgRUdMU3VyZmFjCiAgICAgICAgIEVH
TF9BTFBIQV9TSVpFLCByZ2JhU2l6ZVszXSwKICAgICAgICAgRUdMX1NURU5DSUxfU0laRSwgOCwK
ICAgICAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdMX05PTkUsCi0gICAgICAgIEVHTF9ERVBUSF9T
SVpFLCA4LAorICAgICAgICBFR0xfREVQVEhfU0laRSwgMCwKICAgICAgICAgRUdMX05PTkUKICAg
ICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvQml0bWFwVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0JpdG1hcFRleHR1cmUuaAppbmRleCAzNmJlOTQwNDlmNTEuLmM2Nzg4OTE3YjhlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRl
eHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0
bWFwVGV4dHVyZS5oCkBAIC00NSw3ICs0NSw4IEBAIGNsYXNzIEJpdG1hcFRleHR1cmUgOiBwdWJs
aWMgUmVmQ291bnRlZDxCaXRtYXBUZXh0dXJlPiB7CiBwdWJsaWM6CiAgICAgZW51bSBGbGFnIHsK
ICAgICAgICAgTm9GbGFnID0gMCwKLSAgICAgICAgU3VwcG9ydHNBbHBoYSA9IDB4MDEsCisgICAg
ICAgIFN1cHBvcnRzQWxwaGEgPSAxIDw8IDAsCisgICAgICAgIERlcHRoQnVmZmVyID0gMSA8PCAx
LAogICAgIH07CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIEZsYWdzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdM
LmNwcAppbmRleCA3YjY5ZjhhZDkzZjEuLjBjYTI5OWY0NDgyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVH
TC5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6Y2xlYXJJZk5l
ZWRlZCgpCiAgICAgbV9jbGlwU3RhY2sucmVzZXQoSW50UmVjdChJbnRQb2ludDo6emVybygpLCBt
X3RleHR1cmVTaXplKSwgQ2xpcFN0YWNrOjpZQXhpc01vZGU6OkRlZmF1bHQpOwogICAgIG1fY2xp
cFN0YWNrLmFwcGx5SWZOZWVkZWQoKTsKICAgICBnbENsZWFyQ29sb3IoMCwgMCwgMCwgMCk7Ci0g
ICAgZ2xDbGVhcihHTF9DT0xPUl9CVUZGRVJfQklUKTsKKyAgICBnbENsZWFyKEdMX0NPTE9SX0JV
RkZFUl9CSVQgfCBHTF9ERVBUSF9CVUZGRVJfQklUKTsKICAgICBtX3Nob3VsZENsZWFyID0gZmFs
c2U7CiB9CiAKQEAgLTI4OSw2ICsyODksOCBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6Y3JlYXRl
RmJvSWZOZWVkZWQoKQogICAgIGdsR2VuRnJhbWVidWZmZXJzKDEsICZtX2Zibyk7CiAgICAgZ2xC
aW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICBnbEZyYW1lYnVmZmVy
VGV4dHVyZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVS
RV8yRCwgaWQoKSwgMCk7CisgICAgaWYgKGZsYWdzKCkgJiBEZXB0aEJ1ZmZlcikKKyAgICAgICAg
aW5pdGlhbGl6ZURlcHRoQnVmZmVyKCk7CiAgICAgbV9zaG91bGRDbGVhciA9IHRydWU7CiB9CiAK
QEAgLTI5OCw2ICszMDAsMTAgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6OmJpbmRBc1N1cmZhY2Uo
KQogICAgIGNyZWF0ZUZib0lmTmVlZGVkKCk7CiAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJB
TUVCVUZGRVIsIG1fZmJvKTsKICAgICBnbFZpZXdwb3J0KDAsIDAsIG1fdGV4dHVyZVNpemUud2lk
dGgoKSwgbV90ZXh0dXJlU2l6ZS5oZWlnaHQoKSk7CisgICAgaWYgKGZsYWdzKCkgJiBEZXB0aEJ1
ZmZlcikKKyAgICAgICAgZ2xFbmFibGUoR0xfREVQVEhfVEVTVCk7CisgICAgZWxzZQorICAgICAg
ICBnbERpc2FibGUoR0xfREVQVEhfVEVTVCk7CiAgICAgY2xlYXJJZk5lZWRlZCgpOwogICAgIG1f
Y2xpcFN0YWNrLmFwcGx5KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKaW5kZXggYjJhOTE4MjAwYTYz
Li5kMDQ3YzNiY2QzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKQEAgLTkwLDcgKzkwLDYgQEAgcHJp
dmF0ZToKIAogICAgIEdMdWludCBtX2lkIHsgMCB9OwogICAgIEludFNpemUgbV90ZXh0dXJlU2l6
ZTsKLSAgICBJbnRSZWN0IG1fZGlydHlSZWN0OwogICAgIEdMdWludCBtX2ZibyB7IDAgfTsKICAg
ICBHTHVpbnQgbV9yYm8geyAwIH07CiAgICAgR0x1aW50IG1fZGVwdGhCdWZmZXJPYmplY3QgeyAw
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Qml0bWFwVGV4dHVyZVBvb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVQb29sLmNwcAppbmRleCA4MTIyMDQ4NTM2ZDMuLmNkNzQ2NTkw
NDA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0JpdG1hcFRleHR1cmVQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZVBvb2wuY3BwCkBAIC00Nyw3ICs0NywxMSBAQCBCaXRt
YXBUZXh0dXJlUG9vbDo6Qml0bWFwVGV4dHVyZVBvb2woY29uc3QgVGV4dHVyZU1hcHBlckNvbnRl
eHRBdHRyaWJ1dGVzJiBjb250ZQogUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVQ
b29sOjphY3F1aXJlVGV4dHVyZShjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBCaXRtYXBUZXh0
dXJlOjpGbGFncyBmbGFncykKIHsKICAgICBFbnRyeSogc2VsZWN0ZWRFbnRyeSA9IHN0ZDo6Zmlu
ZF9pZihtX3RleHR1cmVzLmJlZ2luKCksIG1fdGV4dHVyZXMuZW5kKCksCi0gICAgICAgIFsmc2l6
ZV0oRW50cnkmIGVudHJ5KSB7IHJldHVybiBlbnRyeS5tX3RleHR1cmUtPnJlZkNvdW50KCkgPT0g
MSAmJiBlbnRyeS5tX3RleHR1cmUtPnNpemUoKSA9PSBzaXplOyB9KTsKKyAgICAgICAgWyZdKEVu
dHJ5JiBlbnRyeSkgeworICAgICAgICAgICAgcmV0dXJuIGVudHJ5Lm1fdGV4dHVyZS0+cmVmQ291
bnQoKSA9PSAxCisgICAgICAgICAgICAgICAgJiYgZW50cnkubV90ZXh0dXJlLT5zaXplKCkgPT0g
c2l6ZQorICAgICAgICAgICAgICAgICYmIChlbnRyeS5tX3RleHR1cmUtPmZsYWdzKCkgJiBCaXRt
YXBUZXh0dXJlOjpEZXB0aEJ1ZmZlcikgPT0gKGZsYWdzICYgQml0bWFwVGV4dHVyZTo6RGVwdGhC
dWZmZXIpOworICAgICAgICB9KTsKIAogICAgIGlmIChzZWxlY3RlZEVudHJ5ID09IG1fdGV4dHVy
ZXMuZW5kKCkpIHsKICAgICAgICAgbV90ZXh0dXJlcy5hcHBlbmQoRW50cnkoY3JlYXRlVGV4dHVy
ZShmbGFncykpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCmluZGV4IDMzNGRjYWU4NTcwZS4uZmZhYzU0NzIyZjhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmgKQEAgLTc5LDggKzc5LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJv
dW5kZWRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRDbGlwKCkgPSAwOwogICAgIHZp
cnR1YWwgSW50UmVjdCBjbGlwQm91bmRzKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBiZWdpblBy
ZXNlcnZlczNEKCkgeyB9OwotICAgIHZpcnR1YWwgdm9pZCBlbmRQcmVzZXJ2ZXMzRCgpIHsgfTsK
ICAgICB2aXJ0dWFsIFJlZjxCaXRtYXBUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKCkgPSAwOwogICAg
IHZpcnR1YWwgUmVmPEJpdG1hcFRleHR1cmU+IGNyZWF0ZVRleHR1cmUoaW50IGludGVybmFsRm9y
bWF0KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggYjg1YzgwZWQzMTNiLi40MWIw
YWQ2NTM2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC0yMDEsNyArMjAxLDYgQEAgdm9p
ZCBUZXh0dXJlTWFwcGVyR0w6OmJlZ2luUGFpbnRpbmcoUGFpbnRGbGFncyBmbGFncykKICAgICBn
bEdldEludGVnZXJ2KEdMX0NVUlJFTlRfUFJPR1JBTSwgJmRhdGEoKS5wcmV2aW91c1Byb2dyYW0p
OwogICAgIGRhdGEoKS5wcmV2aW91c1NjaXNzb3JTdGF0ZSA9IGdsSXNFbmFibGVkKEdMX1NDSVNT
T1JfVEVTVCk7CiAgICAgZGF0YSgpLnByZXZpb3VzRGVwdGhTdGF0ZSA9IGdsSXNFbmFibGVkKEdM
X0RFUFRIX1RFU1QpOwotICAgIGdsRGlzYWJsZShHTF9ERVBUSF9URVNUKTsKICAgICBnbERlcHRo
RnVuYyhHTF9MRVFVQUwpOwogICAgIGdsRW5hYmxlKEdMX1NDSVNTT1JfVEVTVCk7CiAgICAgZGF0
YSgpLmRpZE1vZGlmeVN0ZW5jaWwgPSBmYWxzZTsKQEAgLTg4OSw2ICs4ODgsNyBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNlKCkKICAgICBhdXRvJiB2aWV3cG9ydCA9
IGRhdGEoKS52aWV3cG9ydDsKICAgICBkYXRhKCkucHJvamVjdGlvbk1hdHJpeCA9IGNyZWF0ZVBy
b2plY3Rpb25NYXRyaXgoSW50U2l6ZSh2aWV3cG9ydFsyXSwgdmlld3BvcnRbM10pLCBkYXRhKCku
UGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAgIGdsVmlld3BvcnQodmlld3BvcnRb
MF0sIHZpZXdwb3J0WzFdLCB2aWV3cG9ydFsyXSwgdmlld3BvcnRbM10pOworICAgIGdsRGlzYWJs
ZShHTF9ERVBUSF9URVNUKTsKICAgICBtX2NsaXBTdGFjay5hcHBseSgpOwogICAgIGRhdGEoKS5j
dXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9CkBAIC0xMDI1LDE3ICsxMDI1LDYgQEAgSW50UmVj
dCBUZXh0dXJlTWFwcGVyR0w6OmNsaXBCb3VuZHMoKQogICAgIHJldHVybiBjbGlwU3RhY2soKS5j
dXJyZW50KCkuc2Npc3NvckJveDsKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmJlZ2luUHJl
c2VydmVzM0QoKQotewotICAgIGdsRW5hYmxlKEdMX0RFUFRIX1RFU1QpOwotICAgIGdsQ2xlYXIo
R0xfREVQVEhfQlVGRkVSX0JJVCk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlckdMOjplbmRQcmVz
ZXJ2ZXMzRCgpCi17Ci0gICAgZ2xEaXNhYmxlKEdMX0RFUFRIX1RFU1QpOwotfQotCiBSZWY8Qml0
bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBlckdMOjpjcmVhdGVUZXh0dXJlKEdMaW50IGludGVybmFs
Rm9ybWF0KQogewogICAgIHJldHVybiBCaXRtYXBUZXh0dXJlR0w6OmNyZWF0ZShtX2NvbnRleHRB
dHRyaWJ1dGVzLCBpbnRlcm5hbEZvcm1hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKaW5kZXggNjgwNmU1
NjliNGI5Li5mZjMwMDEyZTA3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKQEAgLTc5LDggKzc5LDYg
QEAgcHVibGljOgogICAgIHZvaWQgYmVnaW5QYWludGluZyhQYWludEZsYWdzID0gMCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBlbmRQYWludGluZygpIG92ZXJyaWRlOwogICAgIHZvaWQgZW5kQ2xpcCgp
IG92ZXJyaWRlOwotICAgIHZvaWQgYmVnaW5QcmVzZXJ2ZXMzRCgpIG92ZXJyaWRlOwotICAgIHZv
aWQgZW5kUHJlc2VydmVzM0QoKSBvdmVycmlkZTsKICAgICBJbnRSZWN0IGNsaXBCb3VuZHMoKSBv
dmVycmlkZTsKICAgICBJbnRTaXplIG1heFRleHR1cmVTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gSW50U2l6ZSgyMDAwLCAyMDAwKTsgfQogICAgIFJlZjxCaXRtYXBUZXh0dXJlPiBjcmVh
dGVUZXh0dXJlKCkgb3ZlcnJpZGUgeyByZXR1cm4gY3JlYXRlVGV4dHVyZShHTF9ET05UX0NBUkUp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IDg3N2ViY2RmNzM4YS4uMDM1YWZi
NzhkNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMjIxLDI3ICsyMjEsNiBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmQW5kQ2hpbGRyZW4oVGV4dHVyZU1h
cHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogICAgIGlmIChtX3N0YXRlLmJhY2tkcm9wTGF5ZXIg
JiYgbV9zdGF0ZS5iYWNrZHJvcExheWVyID09IG9wdGlvbnMuYmFja2Ryb3BMYXllcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc3RydWN0IFByZXNlcnZlczNEU2NvcGUgewotICAgICAgICBQcmVz
ZXJ2ZXMzRFNjb3BlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIHBhc3NlZE9wdGlvbnMsIGJv
b2wgcGFzc2VkRW5hYmxlKQotICAgICAgICAgICAgOiBvcHRpb25zKHBhc3NlZE9wdGlvbnMpCi0g
ICAgICAgICAgICAsIGVuYWJsZShwYXNzZWRFbmFibGUpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGlmIChlbmFibGUpIHsKLSAgICAgICAgICAgICAgICBvcHRpb25zLnByZXNlcnZlczNEID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuYmVnaW5QcmVzZXJ2ZXMz
RCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIH5QcmVzZXJ2ZXMzRFNjb3Bl
KCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGVuYWJsZSkgewotICAgICAgICAgICAgICAg
IG9wdGlvbnMucHJlc2VydmVzM0QgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBvcHRpb25zLnRl
eHR1cmVNYXBwZXIuZW5kUHJlc2VydmVzM0QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zOwotICAgICAgICBib29s
IGVuYWJsZTsKLSAgICB9IHNjb3BlZFByZXNlcnZlczNEKG9wdGlvbnMsIG1fc3RhdGUucHJlc2Vy
dmVzM0QgJiYgIW9wdGlvbnMucHJlc2VydmVzM0QpOwotCiAgICAgaWYgKG1fc3RhdGUuYmFja2Ry
b3BMYXllciAmJiAhb3B0aW9ucy5iYWNrZHJvcExheWVyKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IGNsaXBUcmFuc2Zvcm07CiAgICAgICAgIGNsaXBUcmFuc2Zvcm0udHJhbnNsYXRl
KG9wdGlvbnMub2Zmc2V0LndpZHRoKCksIG9wdGlvbnMub2Zmc2V0LmhlaWdodCgpKTsKQEAgLTU3
MCwxMiArNTQ5LDYxIEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFJlY3Vyc2l2ZShU
ZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogCiAgICAgU2V0Rm9yU2NvcGUgc2Nv
cGVkT3BhY2l0eShvcHRpb25zLm9wYWNpdHksIG9wdGlvbnMub3BhY2l0eSAqIG1fY3VycmVudE9w
YWNpdHkpOwogCi0gICAgaWYgKHNob3VsZEJsZW5kKCkpCisgICAgaWYgKG1fc3RhdGUucHJlc2Vy
dmVzM0QpCisgICAgICAgIHBhaW50V2l0aDNEUmVuZGVyaW5nQ29udGV4dChvcHRpb25zKTsKKyAg
ICBlbHNlIGlmIChzaG91bGRCbGVuZCgpKQogICAgICAgICBwYWludFVzaW5nT3ZlcmxhcFJlZ2lv
bnMob3B0aW9ucyk7CiAgICAgZWxzZQogICAgICAgICBwYWludFNlbGZDaGlsZHJlblJlcGxpY2FG
aWx0ZXJBbmRNYXNrKG9wdGlvbnMpOwogfQogCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFp
bnRXaXRoM0RSZW5kZXJpbmdDb250ZXh0KFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlv
bnMpCit7CisgICAgaWYgKG9wdGlvbnMucHJlc2VydmVzM0QpIHsKKyAgICAgICAgcGFpbnRTZWxm
QW5kQ2hpbGRyZW5XaXRoUmVwbGljYShvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBTZXRGb3JTY29wZSBzY29wZWRQcmVzZXJ2ZXMzRChvcHRpb25zLnByZXNlcnZlczNELCB0
cnVlKTsKKworICAgIFJlZ2lvbiBvdmVybGFwUmVnaW9uOworICAgIFJlZ2lvbiBub25PdmVybGFw
UmVnaW9uOworICAgIENvbXB1dGVPdmVybGFwUmVnaW9uRGF0YSBkYXRhIHsKKyAgICAgICAgQ29t
cHV0ZU92ZXJsYXBSZWdpb25Nb2RlOjpVbmlvbiwKKyAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFw
cGVyLmNsaXBCb3VuZHMoKSwKKyAgICAgICAgb3ZlcmxhcFJlZ2lvbiwKKyAgICAgICAgbm9uT3Zl
cmxhcFJlZ2lvbgorICAgIH07CisgICAgZGF0YS5jbGlwQm91bmRzLm1vdmUoLW9wdGlvbnMub2Zm
c2V0KTsKKyAgICBjb21wdXRlT3ZlcmxhcFJlZ2lvbnMoZGF0YSwgb3B0aW9ucy50cmFuc2Zvcm0s
IGZhbHNlKTsKKyAgICBBU1NFUlQobm9uT3ZlcmxhcFJlZ2lvbi5pc0VtcHR5KCkpOworCisgICAg
YXV0byByZWN0cyA9IG92ZXJsYXBSZWdpb24ucmVjdHMoKTsKKyAgICBzdGF0aWMgY29uc3Qgc2l6
ZV90IE92ZXJsYXBSZWdpb25Db25zb2xpZGF0aW9uVGhyZXNob2xkID0gNDsKKyAgICBpZiAocmVj
dHMuc2l6ZSgpID4gT3ZlcmxhcFJlZ2lvbkNvbnNvbGlkYXRpb25UaHJlc2hvbGQpIHsKKyAgICAg
ICAgcmVjdHMuY2xlYXIoKTsKKyAgICAgICAgcmVjdHMuYXBwZW5kKG92ZXJsYXBSZWdpb24uYm91
bmRzKCkpOworICAgIH0KKworICAgIEludFNpemUgbWF4VGV4dHVyZVNpemUgPSBvcHRpb25zLnRl
eHR1cmVNYXBwZXIubWF4VGV4dHVyZVNpemUoKTsKKyAgICBmb3IgKGF1dG8mIHJlY3QgOiByZWN0
cykgeworICAgICAgICBmb3IgKGludCB4ID0gcmVjdC54KCk7IHggPCByZWN0Lm1heFgoKTsgeCAr
PSBtYXhUZXh0dXJlU2l6ZS53aWR0aCgpKSB7CisgICAgICAgICAgICBmb3IgKGludCB5ID0gcmVj
dC55KCk7IHkgPCByZWN0Lm1heFkoKTsgeSArPSBtYXhUZXh0dXJlU2l6ZS5oZWlnaHQoKSkgewor
ICAgICAgICAgICAgICAgIEludFJlY3QgdGlsZVJlY3QoSW50UG9pbnQoeCwgeSksIG1heFRleHR1
cmVTaXplKTsKKyAgICAgICAgICAgICAgICB0aWxlUmVjdC5pbnRlcnNlY3QocmVjdCk7CisgICAg
ICAgICAgICAgICAgYXV0byBzdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmFjcXVpcmVU
ZXh0dXJlRnJvbVBvb2wodGlsZVJlY3Quc2l6ZSgpLCBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0Fs
cGhhIHwgQml0bWFwVGV4dHVyZTo6RGVwdGhCdWZmZXIpOworICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgU2V0Rm9yU2NvcGUgc2NvcGVkU3VyZmFjZShvcHRpb25zLnN1cmZh
Y2UsIHN1cmZhY2UpOworICAgICAgICAgICAgICAgICAgICBTZXRGb3JTY29wZSBzY29wZWRPZmZz
ZXQob3B0aW9ucy5vZmZzZXQsIC10b0ludFNpemUodGlsZVJlY3QubG9jYXRpb24oKSkpOworCisg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci5iaW5kU3VyZmFjZShvcHRp
b25zLnN1cmZhY2UuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBwYWludFNlbGZBbmRDaGls
ZHJlbldpdGhSZXBsaWNhKG9wdGlvbnMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBjb21taXRTdXJmYWNlKG9wdGlvbnMsICpzdXJmYWNlLCB0aWxlUmVjdCwgb3B0aW9ucy5v
cGFjaXR5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBUZXh0
dXJlTWFwcGVyTGF5ZXI6OnNldENoaWxkcmVuKGNvbnN0IFZlY3RvcjxUZXh0dXJlTWFwcGVyTGF5
ZXIqPiYgbmV3Q2hpbGRyZW4pCiB7CiAgICAgcmVtb3ZlQWxsQ2hpbGRyZW4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTGF5ZXIuaAppbmRleCBhZmY2ZWQ5NzJhNWIuLmJlOTc3MzAxNzBhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTGF5ZXIuaApAQCAtMTMzLDYgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBj
b21wdXRlT3ZlcmxhcFJlZ2lvbnMoQ29tcHV0ZU92ZXJsYXBSZWdpb25EYXRhJiwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBib29sIGluY2x1ZGVzUmVwbGljYSA9IHRydWUpOwogCiAgICAg
dm9pZCBwYWludFJlY3Vyc2l2ZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJik7CisgICAgdm9p
ZCBwYWludFdpdGgzRFJlbmRlcmluZ0NvbnRleHQoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYp
OwogICAgIHZvaWQgcGFpbnRTZWxmQ2hpbGRyZW5SZXBsaWNhRmlsdGVyQW5kTWFzayhUZXh0dXJl
TWFwcGVyUGFpbnRPcHRpb25zJik7CiAgICAgdm9pZCBwYWludFVzaW5nT3ZlcmxhcFJlZ2lvbnMo
VGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYpOwogICAgIHZvaWQgcGFpbnRJbnRvU3VyZmFjZShU
ZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462718</attachid>
            <date>2022-09-29 14:38:43 -0700</date>
            <delta_ts>2022-09-29 21:45:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244526-20220930063841.patch</filename>
            <type>text/plain</type>
            <size>17320</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSBlMTA2NzU3NTM4NGJjNzZiODYwNGY0NjY5Y2NjMzczZTg2OWJjYmJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTE6Mzg6MzQgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBUZXh0dXJlTWFwcGVyOiBBdHRhY2ggYSBkZXB0aCBidWZmZXIgZm9yIEJpdG1hcFRleHR1cmVH
TCBmb3IKIDNEIHRyYW5zZm9ybSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjQ0NTI2CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRleHR1cmVNYXBwZXJHTCB3
YXMgdXNpbmcgdGhlIGRlcHRoIGJ1ZmZlciBvZiB0aGUgZGVmYXVsdCBmcmFtZWJ1ZmZlcgpmb3Ig
M0QgcmVuZGVyaW5nIGNvbnRleHQuIFRoaXMgY2hhbmdlIGF0dGFjaGVzIGEgZGVwdGggYnVmZmVy
IGZvcgpCaXRtYXBUZXh0dXJlR0wuIFRoaXMgY2hhbmdlIGlzIGEgcHJlcGFyYXRpb24gdG8gc3Vw
cG9ydCB0aGUgbmVzdGluZwozRCByZW5kZXJpbmcgY29udGV4dCAoYnVnIzI0MTY5OSkuCgpXaW5D
YWlybyBpcyB1c2luZyBBTkdMRSBmb3IgVGV4dHVyZU1hcHBlci4gQU5HTEUgc2VlbXMgdG8gaGF2
ZSBhCnByb2JsZW0gdG8gYXR0YWNoIGJvdGggYSBkZXB0aCBidWZmZXIgYW5kIGEgc3RlbmNpbCBi
dWZmZXIgdG8gYSBmYm8uClRoZW4sIFdpbkNhaXJvIGhhcyB0byB1c2UgYSBzaW5nbGUgZGVwdGgv
c3RlbmNpbCBidWZmZXIgb2YKR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVMuIExpbnV4IGRvZXNuJ3Qg
c2VlbSB0byBoYXZlIHN1Y2ggYSBwcm9ibGVtLgpCZWNhdXNlIEdMX0RFUFRIMjRfU1RFTkNJTDhf
T0VTIGlzIGEgZXh0ZW5zaW9uLCBpbmNsdWRlZAo8R0xFUzIvZ2wyZXh0Lmg+LgoKKiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKFdlYkNvcmU6
OkdMQ29udGV4dEVHTDo6Z2V0RUdMQ29uZmlnKToKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwOgooV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZUdMOjpjbGVhcklmTmVlZGVkKToKKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6Y3JlYXRl
RmJvSWZOZWVkZWQpOgooV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjpiaW5kQXNTdXJmYWNlKToK
KiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdM
Lmg6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1
cmVQb29sLmNwcDoKKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVQb29sOjphY3F1aXJlVGV4dHVyZSk6
CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIu
aDoKKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OmJlZ2luUHJlc2VydmVzM0QpOiBEZWxldGVkLgoo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6ZW5kUHJlc2VydmVzM0QpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgoo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpiZWdpblBhaW50aW5nKToKKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNlKToKKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6YmVnaW5QcmVzZXJ2ZXMzRCk6IERlbGV0ZWQuCihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6
OmVuZFByZXNlcnZlczNEKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CihXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyTGF5ZXI6OnBhaW50U2VsZkFuZENoaWxkcmVuKToKKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRSZWN1cnNpdmUpOgooV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpw
YWludFdpdGgzRFJlbmRlcmluZ0NvbnRleHQpOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaDoKLS0tCiAuLi4vcGxhdGZvcm0vZ3Jh
cGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgICAgfCAgMiArLQogLi4uL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmggIHwgIDMgKy0KIC4uLi9ncmFwaGljcy90ZXhtYXAv
Qml0bWFwVGV4dHVyZUdMLmNwcCAgICAgICB8IDIxICsrKysrLQogLi4uL2dyYXBoaWNzL3RleG1h
cC9CaXRtYXBUZXh0dXJlR0wuaCAgICAgICAgIHwgIDkgKystCiAuLi4vZ3JhcGhpY3MvdGV4bWFw
L0JpdG1hcFRleHR1cmVQb29sLmNwcCAgICAgfCAgNiArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyLmggIHwgIDIgLQogLi4uL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0wuY3BwICAgICAgIHwgMTMgKy0tLQogLi4uL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0wuaCAgICAgICAgIHwgIDIgLQogLi4uL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0xIZWFkZXJzLmggIHwgIDEgKwogLi4uL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuY3BwICAgIHwgNzMgKysrKysrKysrKysrKy0tLS0tLQogLi4uL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCAgICAgIHwgIDEgKwogMTEgZmlsZXMgY2hhbmdlZCwg
ODkgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCA2YzI3ZTRm
OTZkNjcuLmQ3NGJmNTkxNzU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBib29s
IEdMQ29udGV4dEVHTDo6Z2V0RUdMQ29uZmlnKEVHTERpc3BsYXkgZGlzcGxheSwgRUdMQ29uZmln
KiBjb25maWcsIEVHTFN1cmZhYwogICAgICAgICBFR0xfQUxQSEFfU0laRSwgcmdiYVNpemVbM10s
CiAgICAgICAgIEVHTF9TVEVOQ0lMX1NJWkUsIDgsCiAgICAgICAgIEVHTF9TVVJGQUNFX1RZUEUs
IEVHTF9OT05FLAotICAgICAgICBFR0xfREVQVEhfU0laRSwgOCwKKyAgICAgICAgRUdMX0RFUFRI
X1NJWkUsIDAsCiAgICAgICAgIEVHTF9OT05FCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmgKaW5kZXgg
MzZiZTk0MDQ5ZjUxLi5jNjc4ODkxN2I4ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuaApAQCAtNDUsNyArNDUs
OCBAQCBjbGFzcyBCaXRtYXBUZXh0dXJlIDogcHVibGljIFJlZkNvdW50ZWQ8Qml0bWFwVGV4dHVy
ZT4gewogcHVibGljOgogICAgIGVudW0gRmxhZyB7CiAgICAgICAgIE5vRmxhZyA9IDAsCi0gICAg
ICAgIFN1cHBvcnRzQWxwaGEgPSAweDAxLAorICAgICAgICBTdXBwb3J0c0FscGhhID0gMSA8PCAw
LAorICAgICAgICBEZXB0aEJ1ZmZlciA9IDEgPDwgMSwKICAgICB9OwogCiAgICAgdHlwZWRlZiB1
bnNpZ25lZCBGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggN2I2OWY4YWQ5M2YxLi5l
YWU5ZWEzMmYzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwCkBAIC0yNDUsNiArMjQ1LDcgQEAg
UmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRleHR1
cmVNYXBwZXImIHRleHR1cmVNYXBwZXIKIAogdm9pZCBCaXRtYXBUZXh0dXJlR0w6OmluaXRpYWxp
emVTdGVuY2lsKCkKIHsKKyNpZiAhVVNFKFRFWE1BUF9ERVBUSF9TVEVOQ0lMX0JVRkZFUikKICAg
ICBpZiAobV9yYm8pCiAgICAgICAgIHJldHVybjsKIApAQCAtMjU1LDYgKzI1Niw3IEBAIHZvaWQg
Qml0bWFwVGV4dHVyZUdMOjppbml0aWFsaXplU3RlbmNpbCgpCiAgICAgZ2xGcmFtZWJ1ZmZlclJl
bmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9SRU5E
RVJCVUZGRVIsIG1fcmJvKTsKICAgICBnbENsZWFyU3RlbmNpbCgwKTsKICAgICBnbENsZWFyKEdM
X1NURU5DSUxfQlVGRkVSX0JJVCk7CisjZW5kaWYKIH0KIAogdm9pZCBCaXRtYXBUZXh0dXJlR0w6
OmluaXRpYWxpemVEZXB0aEJ1ZmZlcigpCkBAIC0yNjIsOSArMjY0LDE1IEBAIHZvaWQgQml0bWFw
VGV4dHVyZUdMOjppbml0aWFsaXplRGVwdGhCdWZmZXIoKQogICAgIGlmIChtX2RlcHRoQnVmZmVy
T2JqZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZiBVU0UoVEVYTUFQX0RFUFRIX1NURU5DSUxf
QlVGRkVSKQorICAgIEdMZW51bSBmb3JtYXQgPSBHTF9ERVBUSDI0X1NURU5DSUw4X09FUzsKKyNl
bHNlCisgICAgR0xlbnVtIGZvcm1hdCA9IEdMX0RFUFRIX0NPTVBPTkVOVDE2OworI2VuZGlmCisg
ICAgCiAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyT2JqZWN0KTsKICAg
ICBnbEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoQnVmZmVyT2JqZWN0
KTsKLSAgICBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0xfUkVOREVSQlVGRkVSLCBHTF9ERVBUSF9D
T01QT05FTlQxNiwgbV90ZXh0dXJlU2l6ZS53aWR0aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgp
KTsKKyAgICBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0xfUkVOREVSQlVGRkVSLCBmb3JtYXQsIG1f
dGV4dHVyZVNpemUud2lkdGgoKSwgbV90ZXh0dXJlU2l6ZS5oZWlnaHQoKSk7CiAgICAgZ2xCaW5k
UmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgMCk7CiAgICAgZ2xGcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfREVQVEhfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVG
RkVSLCBtX2RlcHRoQnVmZmVyT2JqZWN0KTsKIH0KQEAgLTI3Nyw3ICsyODUsOCBAQCB2b2lkIEJp
dG1hcFRleHR1cmVHTDo6Y2xlYXJJZk5lZWRlZCgpCiAgICAgbV9jbGlwU3RhY2sucmVzZXQoSW50
UmVjdChJbnRQb2ludDo6emVybygpLCBtX3RleHR1cmVTaXplKSwgQ2xpcFN0YWNrOjpZQXhpc01v
ZGU6OkRlZmF1bHQpOwogICAgIG1fY2xpcFN0YWNrLmFwcGx5SWZOZWVkZWQoKTsKICAgICBnbENs
ZWFyQ29sb3IoMCwgMCwgMCwgMCk7Ci0gICAgZ2xDbGVhcihHTF9DT0xPUl9CVUZGRVJfQklUKTsK
KyAgICBnbENsZWFyU3RlbmNpbCgwKTsKKyAgICBnbENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQg
fCBHTF9ERVBUSF9CVUZGRVJfQklUIHwgR0xfU1RFTkNJTF9CVUZGRVJfQklUKTsKICAgICBtX3No
b3VsZENsZWFyID0gZmFsc2U7CiB9CiAKQEAgLTI4OSw2ICsyOTgsOCBAQCB2b2lkIEJpdG1hcFRl
eHR1cmVHTDo6Y3JlYXRlRmJvSWZOZWVkZWQoKQogICAgIGdsR2VuRnJhbWVidWZmZXJzKDEsICZt
X2Zibyk7CiAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAg
ICBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hN
RU5UMCwgR0xfVEVYVFVSRV8yRCwgaWQoKSwgMCk7CisgICAgaWYgKGZsYWdzKCkgJiBEZXB0aEJ1
ZmZlcikKKyAgICAgICAgaW5pdGlhbGl6ZURlcHRoQnVmZmVyKCk7CiAgICAgbV9zaG91bGRDbGVh
ciA9IHRydWU7CiB9CiAKQEAgLTI5OCw2ICszMDksMTAgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6
OmJpbmRBc1N1cmZhY2UoKQogICAgIGNyZWF0ZUZib0lmTmVlZGVkKCk7CiAgICAgZ2xCaW5kRnJh
bWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICBnbFZpZXdwb3J0KDAsIDAsIG1f
dGV4dHVyZVNpemUud2lkdGgoKSwgbV90ZXh0dXJlU2l6ZS5oZWlnaHQoKSk7CisgICAgaWYgKGZs
YWdzKCkgJiBEZXB0aEJ1ZmZlcikKKyAgICAgICAgZ2xFbmFibGUoR0xfREVQVEhfVEVTVCk7Cisg
ICAgZWxzZQorICAgICAgICBnbERpc2FibGUoR0xfREVQVEhfVEVTVCk7CiAgICAgY2xlYXJJZk5l
ZWRlZCgpOwogICAgIG1fY2xpcFN0YWNrLmFwcGx5KCk7CiB9CkBAIC0zMTAsOCArMzI1LDEwIEBA
IEJpdG1hcFRleHR1cmVHTDo6fkJpdG1hcFRleHR1cmVHTCgpCiAgICAgaWYgKG1fZmJvKQogICAg
ICAgICBnbERlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9mYm8pOwogCisjaWYgIVVTRShURVhNQVBf
REVQVEhfU1RFTkNJTF9CVUZGRVIpCiAgICAgaWYgKG1fcmJvKQogICAgICAgICBnbERlbGV0ZVJl
bmRlcmJ1ZmZlcnMoMSwgJm1fcmJvKTsKKyNlbmRpZgogCiAgICAgaWYgKG1fZGVwdGhCdWZmZXJP
YmplY3QpCiAgICAgICAgIGdsRGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aEJ1ZmZlck9i
amVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvQml0bWFwVGV4dHVyZUdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKaW5kZXggZDRjNjgzZjUyOGYyLi40ZTI5ZTdmMjUxZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRt
YXBUZXh0dXJlR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvQml0bWFwVGV4dHVyZUdMLmgKQEAgLTM4LDYgKzM4LDEyIEBAIGNsYXNzIFRleHR1cmVNYXBw
ZXI7CiBjbGFzcyBUZXh0dXJlTWFwcGVyR0w7CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb247CiAKKyNp
ZiBPUyhXSU5ET1dTKQorI2RlZmluZSBVU0VfVEVYTUFQX0RFUFRIX1NURU5DSUxfQlVGRkVSIDEK
KyNlbHNlCisjZGVmaW5lIFVTRV9URVhNQVBfREVQVEhfU1RFTkNJTF9CVUZGRVIgMAorI2VuZGlm
CisKIGNsYXNzIEJpdG1hcFRleHR1cmVHTCA6IHB1YmxpYyBCaXRtYXBUZXh0dXJlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPEJpdG1hcFRleHR1cmU+IGNyZWF0ZShjb25zdCBUZXh0dXJlTWFw
cGVyQ29udGV4dEF0dHJpYnV0ZXMmIGNvbnRleHRBdHRyaWJ1dGVzLCBjb25zdCBGbGFncyBmbGFn
cyA9IE5vRmxhZywgR0xpbnQgaW50ZXJuYWxGb3JtYXQgPSBHTF9ET05UX0NBUkUpCkBAIC05MCw5
ICs5NiwxMCBAQCBwcml2YXRlOgogCiAgICAgR0x1aW50IG1faWQgeyAwIH07CiAgICAgSW50U2l6
ZSBtX3RleHR1cmVTaXplOwotICAgIEludFJlY3QgbV9kaXJ0eVJlY3Q7CiAgICAgR0x1aW50IG1f
ZmJvIHsgMCB9OworI2lmICFVU0UoVEVYTUFQX0RFUFRIX1NURU5DSUxfQlVGRkVSKQogICAgIEdM
dWludCBtX3JibyB7IDAgfTsKKyNlbmRpZgogICAgIEdMdWludCBtX2RlcHRoQnVmZmVyT2JqZWN0
IHsgMCB9OwogICAgIGJvb2wgbV9zaG91bGRDbGVhciB7IHRydWUgfTsKICAgICBDbGlwU3RhY2sg
bV9jbGlwU3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZVBvb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVQb29sLmNwcAppbmRleCA4MTIyMDQ4NTM2ZDMu
LmNkNzQ2NTkwNDA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0JpdG1hcFRleHR1cmVQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZVBvb2wuY3BwCkBAIC00Nyw3ICs0Nywx
MSBAQCBCaXRtYXBUZXh0dXJlUG9vbDo6Qml0bWFwVGV4dHVyZVBvb2woY29uc3QgVGV4dHVyZU1h
cHBlckNvbnRleHRBdHRyaWJ1dGVzJiBjb250ZQogUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1h
cFRleHR1cmVQb29sOjphY3F1aXJlVGV4dHVyZShjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBC
aXRtYXBUZXh0dXJlOjpGbGFncyBmbGFncykKIHsKICAgICBFbnRyeSogc2VsZWN0ZWRFbnRyeSA9
IHN0ZDo6ZmluZF9pZihtX3RleHR1cmVzLmJlZ2luKCksIG1fdGV4dHVyZXMuZW5kKCksCi0gICAg
ICAgIFsmc2l6ZV0oRW50cnkmIGVudHJ5KSB7IHJldHVybiBlbnRyeS5tX3RleHR1cmUtPnJlZkNv
dW50KCkgPT0gMSAmJiBlbnRyeS5tX3RleHR1cmUtPnNpemUoKSA9PSBzaXplOyB9KTsKKyAgICAg
ICAgWyZdKEVudHJ5JiBlbnRyeSkgeworICAgICAgICAgICAgcmV0dXJuIGVudHJ5Lm1fdGV4dHVy
ZS0+cmVmQ291bnQoKSA9PSAxCisgICAgICAgICAgICAgICAgJiYgZW50cnkubV90ZXh0dXJlLT5z
aXplKCkgPT0gc2l6ZQorICAgICAgICAgICAgICAgICYmIChlbnRyeS5tX3RleHR1cmUtPmZsYWdz
KCkgJiBCaXRtYXBUZXh0dXJlOjpEZXB0aEJ1ZmZlcikgPT0gKGZsYWdzICYgQml0bWFwVGV4dHVy
ZTo6RGVwdGhCdWZmZXIpOworICAgICAgICB9KTsKIAogICAgIGlmIChzZWxlY3RlZEVudHJ5ID09
IG1fdGV4dHVyZXMuZW5kKCkpIHsKICAgICAgICAgbV90ZXh0dXJlcy5hcHBlbmQoRW50cnkoY3Jl
YXRlVGV4dHVyZShmbGFncykpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCmluZGV4IDE4NmVmODMwZDg5Zi4uYWVl
MDMzYTA2Mzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTc5LDggKzc5LDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25z
dCBGbG9hdFJvdW5kZWRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRDbGlwKCkgPSAw
OwogICAgIHZpcnR1YWwgSW50UmVjdCBjbGlwQm91bmRzKCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBiZWdpblByZXNlcnZlczNEKCkgeyB9OwotICAgIHZpcnR1YWwgdm9pZCBlbmRQcmVzZXJ2ZXMz
RCgpIHsgfTsKICAgICB2aXJ0dWFsIFJlZjxCaXRtYXBUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKCkg
PSAwOwogICAgIHZpcnR1YWwgUmVmPEJpdG1hcFRleHR1cmU+IGNyZWF0ZVRleHR1cmUoaW50IGlu
dGVybmFsRm9ybWF0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlcHRoUmFuZ2UoZG91Ymxl
IHpOZWFyLCBkb3VibGUgekZhcikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCA0MWZm
NjMxYmFlMmYuLjMyNWU2OTBjNWJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTIwMiw3
ICsyMDIsNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmVnaW5QYWludGluZyhQYWludEZsYWdz
IGZsYWdzKQogICAgIGdsR2V0SW50ZWdlcnYoR0xfQ1VSUkVOVF9QUk9HUkFNLCAmZGF0YSgpLnBy
ZXZpb3VzUHJvZ3JhbSk7CiAgICAgZGF0YSgpLnByZXZpb3VzU2Npc3NvclN0YXRlID0gZ2xJc0Vu
YWJsZWQoR0xfU0NJU1NPUl9URVNUKTsKICAgICBkYXRhKCkucHJldmlvdXNEZXB0aFN0YXRlID0g
Z2xJc0VuYWJsZWQoR0xfREVQVEhfVEVTVCk7Ci0gICAgZ2xEaXNhYmxlKEdMX0RFUFRIX1RFU1Qp
OwogICAgIGdsRGVwdGhGdW5jKEdMX0xFUVVBTCk7CiAgICAgZ2xFbmFibGUoR0xfU0NJU1NPUl9U
RVNUKTsKICAgICBkYXRhKCkuZGlkTW9kaWZ5U3RlbmNpbCA9IGZhbHNlOwpAQCAtODg1LDYgKzg4
NCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiaW5kRGVmYXVsdFN1cmZhY2UoKQogICAgIGF1
dG8mIHZpZXdwb3J0ID0gZGF0YSgpLnZpZXdwb3J0OwogICAgIGRhdGEoKS5wcm9qZWN0aW9uTWF0
cml4ID0gY3JlYXRlUHJvamVjdGlvbk1hdHJpeChJbnRTaXplKHZpZXdwb3J0WzJdLCB2aWV3cG9y
dFszXSksIGRhdGEoKS5QYWludEZsYWdzICYgUGFpbnRpbmdNaXJyb3JlZCwgZGF0YSgpLnpOZWFy
LCBkYXRhKCkuekZhcik7CiAgICAgZ2xWaWV3cG9ydCh2aWV3cG9ydFswXSwgdmlld3BvcnRbMV0s
IHZpZXdwb3J0WzJdLCB2aWV3cG9ydFszXSk7CisgICAgZ2xEaXNhYmxlKEdMX0RFUFRIX1RFU1Qp
OwogICAgIG1fY2xpcFN0YWNrLmFwcGx5KCk7CiAgICAgZGF0YSgpLmN1cnJlbnRTdXJmYWNlID0g
bnVsbHB0cjsKIH0KQEAgLTEwMjEsMTcgKzEwMjEsNiBAQCBJbnRSZWN0IFRleHR1cmVNYXBwZXJH
TDo6Y2xpcEJvdW5kcygpCiAgICAgcmV0dXJuIGNsaXBTdGFjaygpLmN1cnJlbnQoKS5zY2lzc29y
Qm94OwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJHTDo6YmVnaW5QcmVzZXJ2ZXMzRCgpCi17Ci0g
ICAgZ2xFbmFibGUoR0xfREVQVEhfVEVTVCk7Ci0gICAgZ2xDbGVhcihHTF9ERVBUSF9CVUZGRVJf
QklUKTsKLX0KLQotdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmVuZFByZXNlcnZlczNEKCkKLXsKLSAg
ICBnbERpc2FibGUoR0xfREVQVEhfVEVTVCk7Ci19Ci0KIFJlZjxCaXRtYXBUZXh0dXJlPiBUZXh0
dXJlTWFwcGVyR0w6OmNyZWF0ZVRleHR1cmUoR0xpbnQgaW50ZXJuYWxGb3JtYXQpCiB7CiAgICAg
cmV0dXJuIEJpdG1hcFRleHR1cmVHTDo6Y3JlYXRlKG1fY29udGV4dEF0dHJpYnV0ZXMsIGludGVy
bmFsRm9ybWF0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAppbmRleCA2ODkyM2ZmMzk0N2YuLjljYjE3ZjNh
OWJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApAQCAtNzksOCArNzksNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBiZWdpblBhaW50aW5nKFBhaW50RmxhZ3MgPSAwKSBvdmVycmlkZTsKICAgICB2b2lkIGVu
ZFBhaW50aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbmRDbGlwKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBiZWdpblByZXNlcnZlczNEKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbmRQcmVzZXJ2ZXMz
RCgpIG92ZXJyaWRlOwogICAgIEludFJlY3QgY2xpcEJvdW5kcygpIG92ZXJyaWRlOwogICAgIElu
dFNpemUgbWF4VGV4dHVyZVNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBJbnRTaXplKDIw
MDAsIDIwMDApOyB9CiAgICAgUmVmPEJpdG1hcFRleHR1cmU+IGNyZWF0ZVRleHR1cmUoKSBvdmVy
cmlkZSB7IHJldHVybiBjcmVhdGVUZXh0dXJlKEdMX0RPTlRfQ0FSRSk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0xI
ZWFkZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMSGVhZGVycy5oCmluZGV4IDk5MzUxYTdhNGRhOC4uM2Y2NzBkNmVmOTY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdMSGVhZGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0xIZWFkZXJzLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
IDxlcG94eS9nbC5oPgogI2VsaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxHTEVTMi9nbDIu
aD4KKyNpbmNsdWRlIDxHTEVTMi9nbDJleHQuaD4KICNlbHNlCiAjaW5jbHVkZSAiT3BlbkdMU2hp
bXMuaCIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCA5MDBiNTk2Y2Nl
NWUuLmY4OTFkOWJjOGM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTI1NSwy
NyArMjU1LDYgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZkFuZENoaWxkcmVu
KFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMKICAgICBpZiAobV9zdGF0ZS5iYWNr
ZHJvcExheWVyICYmIG1fc3RhdGUuYmFja2Ryb3BMYXllciA9PSBvcHRpb25zLmJhY2tkcm9wTGF5
ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN0cnVjdCBQcmVzZXJ2ZXMzRFNjb3BlIHsKLSAg
ICAgICAgUHJlc2VydmVzM0RTY29wZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBwYXNzZWRP
cHRpb25zLCBib29sIHBhc3NlZEVuYWJsZSkKLSAgICAgICAgICAgIDogb3B0aW9ucyhwYXNzZWRP
cHRpb25zKQotICAgICAgICAgICAgLCBlbmFibGUocGFzc2VkRW5hYmxlKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAoZW5hYmxlKSB7Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy5wcmVzZXJ2
ZXMzRCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmJlZ2lu
UHJlc2VydmVzM0QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB+UHJlc2Vy
dmVzM0RTY29wZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChlbmFibGUpIHsKLSAgICAg
ICAgICAgICAgICBvcHRpb25zLnByZXNlcnZlczNEID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLmVuZFByZXNlcnZlczNEKCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgICAgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9uczsKLSAg
ICAgICAgYm9vbCBlbmFibGU7Ci0gICAgfSBzY29wZWRQcmVzZXJ2ZXMzRChvcHRpb25zLCBtX3N0
YXRlLnByZXNlcnZlczNEICYmICFvcHRpb25zLnByZXNlcnZlczNEKTsKLQogICAgIGlmIChtX3N0
YXRlLmJhY2tkcm9wTGF5ZXIgJiYgIW9wdGlvbnMuYmFja2Ryb3BMYXllcikgewogICAgICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBjbGlwVHJhbnNmb3JtOwogICAgICAgICBjbGlwVHJhbnNmb3Jt
LnRyYW5zbGF0ZShvcHRpb25zLm9mZnNldC53aWR0aCgpLCBvcHRpb25zLm9mZnNldC5oZWlnaHQo
KSk7CkBAIC03NzUsMTIgKzc1NCw2MiBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRS
ZWN1cnNpdmUoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykKIAogICAgIFNldEZv
clNjb3BlIHNjb3BlZE9wYWNpdHkob3B0aW9ucy5vcGFjaXR5LCBvcHRpb25zLm9wYWNpdHkgKiBt
X2N1cnJlbnRPcGFjaXR5KTsKIAotICAgIGlmIChzaG91bGRCbGVuZCgpKQorICAgIGlmIChtX3N0
YXRlLnByZXNlcnZlczNEKQorICAgICAgICBwYWludFdpdGgzRFJlbmRlcmluZ0NvbnRleHQob3B0
aW9ucyk7CisgICAgZWxzZSBpZiAoc2hvdWxkQmxlbmQoKSkKICAgICAgICAgcGFpbnRVc2luZ092
ZXJsYXBSZWdpb25zKG9wdGlvbnMpOwogICAgIGVsc2UKICAgICAgICAgcGFpbnRTZWxmQ2hpbGRy
ZW5SZXBsaWNhRmlsdGVyQW5kTWFzayhvcHRpb25zKTsKIH0KIAordm9pZCBUZXh0dXJlTWFwcGVy
TGF5ZXI6OnBhaW50V2l0aDNEUmVuZGVyaW5nQ29udGV4dChUZXh0dXJlTWFwcGVyUGFpbnRPcHRp
b25zJiBvcHRpb25zKQoreworICAgIGlmIChvcHRpb25zLnByZXNlcnZlczNEKSB7CisgICAgICAg
IHBhaW50U2VsZkFuZENoaWxkcmVuV2l0aFJlcGxpY2Eob3B0aW9ucyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgU2V0Rm9yU2NvcGUgc2NvcGVkUHJlc2VydmVzM0Qob3B0aW9ucy5wcmVz
ZXJ2ZXMzRCwgdHJ1ZSk7CisKKyAgICBSZWdpb24gb3ZlcmxhcFJlZ2lvbjsKKyAgICBSZWdpb24g
bm9uT3ZlcmxhcFJlZ2lvbjsKKyAgICBDb21wdXRlT3ZlcmxhcFJlZ2lvbkRhdGEgZGF0YSB7Cisg
ICAgICAgIENvbXB1dGVPdmVybGFwUmVnaW9uTW9kZTo6VW5pb24sCisgICAgICAgIG9wdGlvbnMu
dGV4dHVyZU1hcHBlci5jbGlwQm91bmRzKCksCisgICAgICAgIG92ZXJsYXBSZWdpb24sCisgICAg
ICAgIG5vbk92ZXJsYXBSZWdpb24KKyAgICB9OworICAgIGRhdGEuY2xpcEJvdW5kcy5tb3ZlKC1v
cHRpb25zLm9mZnNldCk7CisgICAgY29tcHV0ZU92ZXJsYXBSZWdpb25zKGRhdGEsIG9wdGlvbnMu
dHJhbnNmb3JtLCBmYWxzZSk7CisgICAgQVNTRVJUKG5vbk92ZXJsYXBSZWdpb24uaXNFbXB0eSgp
KTsKKworICAgIGF1dG8gcmVjdHMgPSBvdmVybGFwUmVnaW9uLnJlY3RzKCk7CisgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBPdmVybGFwUmVnaW9uQ29uc29saWRhdGlvblRocmVzaG9sZCA9IDQ7Cisg
ICAgaWYgKHJlY3RzLnNpemUoKSA+IE92ZXJsYXBSZWdpb25Db25zb2xpZGF0aW9uVGhyZXNob2xk
KSB7CisgICAgICAgIHJlY3RzLmNsZWFyKCk7CisgICAgICAgIHJlY3RzLmFwcGVuZChvdmVybGFw
UmVnaW9uLmJvdW5kcygpKTsKKyAgICB9CisKKyAgICBJbnRTaXplIG1heFRleHR1cmVTaXplID0g
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLm1heFRleHR1cmVTaXplKCk7CisgICAgZm9yIChhdXRvJiBy
ZWN0IDogcmVjdHMpIHsKKyAgICAgICAgZm9yIChpbnQgeCA9IHJlY3QueCgpOyB4IDwgcmVjdC5t
YXhYKCk7IHggKz0gbWF4VGV4dHVyZVNpemUud2lkdGgoKSkgeworICAgICAgICAgICAgZm9yIChp
bnQgeSA9IHJlY3QueSgpOyB5IDwgcmVjdC5tYXhZKCk7IHkgKz0gbWF4VGV4dHVyZVNpemUuaGVp
Z2h0KCkpIHsKKyAgICAgICAgICAgICAgICBJbnRSZWN0IHRpbGVSZWN0KEludFBvaW50KHgsIHkp
LCBtYXhUZXh0dXJlU2l6ZSk7CisgICAgICAgICAgICAgICAgdGlsZVJlY3QuaW50ZXJzZWN0KHJl
Y3QpOworICAgICAgICAgICAgICAgIGF1dG8gc3VyZmFjZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBl
ci5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKHRpbGVSZWN0LnNpemUoKSwgQml0bWFwVGV4dHVyZTo6
U3VwcG9ydHNBbHBoYSB8IEJpdG1hcFRleHR1cmU6OkRlcHRoQnVmZmVyKTsKKyAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgIFNldEZvclNjb3BlIHNjb3BlZFN1cmZhY2Uob3B0
aW9ucy5zdXJmYWNlLCBzdXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgU2V0Rm9yU2NvcGUg
c2NvcGVkT2Zmc2V0KG9wdGlvbnMub2Zmc2V0LCAtdG9JbnRTaXplKHRpbGVSZWN0LmxvY2F0aW9u
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgU2V0Rm9yU2NvcGUgc2NvcGVkT3BhY2l0eShvcHRp
b25zLm9wYWNpdHksIDEpOworCisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1h
cHBlci5iaW5kU3VyZmFjZShvcHRpb25zLnN1cmZhY2UuZ2V0KCkpOworICAgICAgICAgICAgICAg
ICAgICBwYWludFNlbGZBbmRDaGlsZHJlbldpdGhSZXBsaWNhKG9wdGlvbnMpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb21taXRTdXJmYWNlKG9wdGlvbnMsICpzdXJmYWNl
LCB0aWxlUmVjdCwgb3B0aW9ucy5vcGFjaXR5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KK30KKwogdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldENoaWxkcmVuKGNvbnN0IFZl
Y3RvcjxUZXh0dXJlTWFwcGVyTGF5ZXIqPiYgbmV3Q2hpbGRyZW4pCiB7CiAgICAgcmVtb3ZlQWxs
Q2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaAppbmRleCAwYjQ5YzFmNGRlNTYuLmU4
N2YxMWM4ZTFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaApAQCAtMTM3LDYgKzEzNyw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlT3ZlcmxhcFJlZ2lvbnMoQ29tcHV0ZU92ZXJsYXBS
ZWdpb25EYXRhJiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBib29sIGluY2x1ZGVzUmVw
bGljYSA9IHRydWUpOwogCiAgICAgdm9pZCBwYWludFJlY3Vyc2l2ZShUZXh0dXJlTWFwcGVyUGFp
bnRPcHRpb25zJik7CisgICAgdm9pZCBwYWludFdpdGgzRFJlbmRlcmluZ0NvbnRleHQoVGV4dHVy
ZU1hcHBlclBhaW50T3B0aW9ucyYpOwogICAgIHZvaWQgcGFpbnRTZWxmQ2hpbGRyZW5SZXBsaWNh
RmlsdGVyQW5kTWFzayhUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJik7CiAgICAgdm9pZCBwYWlu
dFVzaW5nT3ZlcmxhcFJlZ2lvbnMoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYpOwogICAgIHZv
aWQgcGFpbnRJbnRvU3VyZmFjZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462723</attachid>
            <date>2022-09-29 21:45:12 -0700</date>
            <delta_ts>2022-09-29 21:47:47 -0700</delta_ts>
            <desc>[fast-cq] Patch for landing</desc>
            <filename>bug-244526-20220930134511.patch</filename>
            <type>text/plain</type>
            <size>18346</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSBhZDUxOTYxMTRmMjYxMGQwMmVhOWQ2ZDZmYjhhNmIwZmY3ZDg3MjcyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTE6Mzg6MzQgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBUZXh0dXJlTWFwcGVyOiBBdHRhY2ggYSBkZXB0aCBidWZmZXIgZm9yIEJpdG1hcFRleHR1cmVH
TCBmb3IKIDNEIHRyYW5zZm9ybSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjQ0NTI2CgpSZXZpZXdlZCBieSBEb24gT2xtc3RlYWQuCgpUZXh0dXJlTWFwcGVyR0wgd2Fz
IHVzaW5nIHRoZSBkZXB0aCBidWZmZXIgb2YgdGhlIGRlZmF1bHQgZnJhbWVidWZmZXIKZm9yIDNE
IHJlbmRlcmluZyBjb250ZXh0LiBUaGlzIGNoYW5nZSBhdHRhY2hlcyBhIGRlcHRoIGJ1ZmZlciBm
b3IKQml0bWFwVGV4dHVyZUdMLiBUaGlzIGNoYW5nZSBpcyBhIHByZXBhcmF0aW9uIHRvIHN1cHBv
cnQgdGhlIG5lc3RpbmcKM0QgcmVuZGVyaW5nIGNvbnRleHQgKGJ1ZyMyNDE2OTkpLgoKV2luQ2Fp
cm8gaXMgdXNpbmcgQU5HTEUgZm9yIFRleHR1cmVNYXBwZXIuIEFOR0xFIHNlZW1zIHRvIGhhdmUg
YQpwcm9ibGVtIHRvIGF0dGFjaCBib3RoIGEgZGVwdGggYnVmZmVyIGFuZCBhIHN0ZW5jaWwgYnVm
ZmVyIHRvIGEgZmJvLgpUaGVuLCBXaW5DYWlybyBoYXMgdG8gdXNlIGEgc2luZ2xlIGRlcHRoL3N0
ZW5jaWwgYnVmZmVyIG9mCkdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTLiBMaW51eCBkb2Vzbid0IHNl
ZW0gdG8gaGF2ZSBzdWNoIGEgcHJvYmxlbS4KQmVjYXVzZSBHTF9ERVBUSDI0X1NURU5DSUw4X09F
UyBpcyBhIGV4dGVuc2lvbiwgaW5jbHVkZWQKPEdMRVMyL2dsMmV4dC5oPi4KCiogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwOgooV2ViQ29yZTo6R0xDb250ZXh0RUdM
OjpnZXRFR0xDb25maWcpOgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9CaXRtYXBUZXh0dXJlLmg6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0JpdG1hcFRleHR1cmVHTC5jcHA6CihXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OmNsZWFy
SWZOZWVkZWQpOgooV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjpjcmVhdGVGYm9JZk5lZWRlZCk6
CihXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OmJpbmRBc1N1cmZhY2UpOgoqIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZVBvb2wuY3BwOgoo
V2ViQ29yZTo6Qml0bWFwVGV4dHVyZVBvb2w6OmFjcXVpcmVUZXh0dXJlKToKKiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oOgooV2ViQ29yZTo6
VGV4dHVyZU1hcHBlcjo6YmVnaW5QcmVzZXJ2ZXMzRCk6IERlbGV0ZWQuCihXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyOjplbmRQcmVzZXJ2ZXMzRCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CihXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyR0w6OmJlZ2luUGFpbnRpbmcpOgooV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpi
aW5kRGVmYXVsdFN1cmZhY2UpOgooV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpiZWdpblByZXNl
cnZlczNEKTogRGVsZXRlZC4KKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZW5kUHJlc2VydmVz
M0QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuaDoKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6
cGFpbnRTZWxmQW5kQ2hpbGRyZW4pOgooV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpwYWlu
dFJlY3Vyc2l2ZSk6CihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50V2l0aDNEUmVu
ZGVyaW5nQ29udGV4dCk6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5oOgotLS0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RUdMLmNwcCAgICB8ICAyICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0Jp
dG1hcFRleHR1cmUuaCAgfCAgMyArLQogLi4uL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJl
R0wuY3BwICAgICAgIHwgMjEgKysrKystCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1
cmVHTC5oICAgICAgICAgfCAgOSArKy0KIC4uLi9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVy
ZVBvb2wuY3BwICAgICB8ICA2ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXIuaCAgfCAgMiAtCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5j
cHAgICAgICAgfCAxMyArLS0tCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5o
ICAgICAgICAgfCAgMiAtCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTEhlYWRl
cnMuaCAgfCAgMSArCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAg
ICAgfCA3MyArKysrKysrKysrKysrLS0tLS0tCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJMYXllci5oICAgICAgfCAgMSArCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RF
eHBlY3RhdGlvbnMgICAgfCAgMiArCiAxMiBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCsp
LCA0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IDZjMjdlNGY5NmQ2Ny4uZDc0YmY1OTE3
NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIGJvb2wgR0xDb250ZXh0RUdMOjpn
ZXRFR0xDb25maWcoRUdMRGlzcGxheSBkaXNwbGF5LCBFR0xDb25maWcqIGNvbmZpZywgRUdMU3Vy
ZmFjCiAgICAgICAgIEVHTF9BTFBIQV9TSVpFLCByZ2JhU2l6ZVszXSwKICAgICAgICAgRUdMX1NU
RU5DSUxfU0laRSwgOCwKICAgICAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdMX05PTkUsCi0gICAg
ICAgIEVHTF9ERVBUSF9TSVpFLCA4LAorICAgICAgICBFR0xfREVQVEhfU0laRSwgMCwKICAgICAg
ICAgRUdMX05PTkUKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuaAppbmRleCAzNmJlOTQwNDlmNTEuLmM2
Nzg4OTE3YjhlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5oCkBAIC00NSw3ICs0NSw4IEBAIGNsYXNzIEJpdG1h
cFRleHR1cmUgOiBwdWJsaWMgUmVmQ291bnRlZDxCaXRtYXBUZXh0dXJlPiB7CiBwdWJsaWM6CiAg
ICAgZW51bSBGbGFnIHsKICAgICAgICAgTm9GbGFnID0gMCwKLSAgICAgICAgU3VwcG9ydHNBbHBo
YSA9IDB4MDEsCisgICAgICAgIFN1cHBvcnRzQWxwaGEgPSAxIDw8IDAsCisgICAgICAgIERlcHRo
QnVmZmVyID0gMSA8PCAxLAogICAgIH07CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIEZsYWdzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1h
cFRleHR1cmVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Qml0bWFwVGV4dHVyZUdMLmNwcAppbmRleCA3YjY5ZjhhZDkzZjEuLmVhZTllYTMyZjNiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRl
eHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI0NSw2ICsyNDUsNyBAQCBSZWZQdHI8Qml0bWFwVGV4
dHVyZT4gQml0bWFwVGV4dHVyZUdMOjphcHBseUZpbHRlcnMoVGV4dHVyZU1hcHBlciYgdGV4dHVy
ZU1hcHBlcgogCiB2b2lkIEJpdG1hcFRleHR1cmVHTDo6aW5pdGlhbGl6ZVN0ZW5jaWwoKQogewor
I2lmICFVU0UoVEVYTUFQX0RFUFRIX1NURU5DSUxfQlVGRkVSKQogICAgIGlmIChtX3JibykKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yNTUsNiArMjU2LDcgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6
OmluaXRpYWxpemVTdGVuY2lsKCkKICAgICBnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9yYm8p
OwogICAgIGdsQ2xlYXJTdGVuY2lsKDApOwogICAgIGdsQ2xlYXIoR0xfU1RFTkNJTF9CVUZGRVJf
QklUKTsKKyNlbmRpZgogfQogCiB2b2lkIEJpdG1hcFRleHR1cmVHTDo6aW5pdGlhbGl6ZURlcHRo
QnVmZmVyKCkKQEAgLTI2Miw5ICsyNjQsMTUgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6OmluaXRp
YWxpemVEZXB0aEJ1ZmZlcigpCiAgICAgaWYgKG1fZGVwdGhCdWZmZXJPYmplY3QpCiAgICAgICAg
IHJldHVybjsKIAorI2lmIFVTRShURVhNQVBfREVQVEhfU1RFTkNJTF9CVUZGRVIpCisgICAgR0xl
bnVtIGZvcm1hdCA9IEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTOworI2Vsc2UKKyAgICBHTGVudW0g
Zm9ybWF0ID0gR0xfREVQVEhfQ09NUE9ORU5UMTY7CisjZW5kaWYKKyAgICAKICAgICBnbEdlblJl
bmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhCdWZmZXJPYmplY3QpOwogICAgIGdsQmluZFJlbmRlcmJ1
ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhCdWZmZXJPYmplY3QpOwotICAgIGdsUmVuZGVy
YnVmZmVyU3RvcmFnZShHTF9SRU5ERVJCVUZGRVIsIEdMX0RFUFRIX0NPTVBPTkVOVDE2LCBtX3Rl
eHR1cmVTaXplLndpZHRoKCksIG1fdGV4dHVyZVNpemUuaGVpZ2h0KCkpOworICAgIGdsUmVuZGVy
YnVmZmVyU3RvcmFnZShHTF9SRU5ERVJCVUZGRVIsIGZvcm1hdCwgbV90ZXh0dXJlU2l6ZS53aWR0
aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKICAgICBnbEJpbmRSZW5kZXJidWZmZXIoR0xf
UkVOREVSQlVGRkVSLCAwKTsKICAgICBnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1F
QlVGRkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhCdWZm
ZXJPYmplY3QpOwogfQpAQCAtMjc3LDcgKzI4NSw4IEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpj
bGVhcklmTmVlZGVkKCkKICAgICBtX2NsaXBTdGFjay5yZXNldChJbnRSZWN0KEludFBvaW50Ojp6
ZXJvKCksIG1fdGV4dHVyZVNpemUpLCBDbGlwU3RhY2s6OllBeGlzTW9kZTo6RGVmYXVsdCk7CiAg
ICAgbV9jbGlwU3RhY2suYXBwbHlJZk5lZWRlZCgpOwogICAgIGdsQ2xlYXJDb2xvcigwLCAwLCAw
LCAwKTsKLSAgICBnbENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOworICAgIGdsQ2xlYXJTdGVu
Y2lsKDApOworICAgIGdsQ2xlYXIoR0xfQ09MT1JfQlVGRkVSX0JJVCB8IEdMX0RFUFRIX0JVRkZF
Ul9CSVQgfCBHTF9TVEVOQ0lMX0JVRkZFUl9CSVQpOwogICAgIG1fc2hvdWxkQ2xlYXIgPSBmYWxz
ZTsKIH0KIApAQCAtMjg5LDYgKzI5OCw4IEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpjcmVhdGVG
Ym9JZk5lZWRlZCgpCiAgICAgZ2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKICAgICBnbEJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgIGdsRnJhbWVidWZmZXJU
ZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJF
XzJELCBpZCgpLCAwKTsKKyAgICBpZiAoZmxhZ3MoKSAmIERlcHRoQnVmZmVyKQorICAgICAgICBp
bml0aWFsaXplRGVwdGhCdWZmZXIoKTsKICAgICBtX3Nob3VsZENsZWFyID0gdHJ1ZTsKIH0KIApA
QCAtMjk4LDYgKzMwOSwxMCBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6YmluZEFzU3VyZmFjZSgp
CiAgICAgY3JlYXRlRmJvSWZOZWVkZWQoKTsKICAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFN
RUJVRkZFUiwgbV9mYm8pOwogICAgIGdsVmlld3BvcnQoMCwgMCwgbV90ZXh0dXJlU2l6ZS53aWR0
aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKKyAgICBpZiAoZmxhZ3MoKSAmIERlcHRoQnVm
ZmVyKQorICAgICAgICBnbEVuYWJsZShHTF9ERVBUSF9URVNUKTsKKyAgICBlbHNlCisgICAgICAg
IGdsRGlzYWJsZShHTF9ERVBUSF9URVNUKTsKICAgICBjbGVhcklmTmVlZGVkKCk7CiAgICAgbV9j
bGlwU3RhY2suYXBwbHkoKTsKIH0KQEAgLTMxMCw4ICszMjUsMTAgQEAgQml0bWFwVGV4dHVyZUdM
Ojp+Qml0bWFwVGV4dHVyZUdMKCkKICAgICBpZiAobV9mYm8pCiAgICAgICAgIGdsRGVsZXRlRnJh
bWVidWZmZXJzKDEsICZtX2Zibyk7CiAKKyNpZiAhVVNFKFRFWE1BUF9ERVBUSF9TVEVOQ0lMX0JV
RkZFUikKICAgICBpZiAobV9yYm8pCiAgICAgICAgIGdsRGVsZXRlUmVuZGVyYnVmZmVycygxLCAm
bV9yYm8pOworI2VuZGlmCiAKICAgICBpZiAobV9kZXB0aEJ1ZmZlck9iamVjdCkKICAgICAgICAg
Z2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyT2JqZWN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJl
R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0
dXJlR0wuaAppbmRleCBkNGM2ODNmNTI4ZjIuLjRlMjllN2YyNTFkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJl
R0wuaApAQCAtMzgsNiArMzgsMTIgQEAgY2xhc3MgVGV4dHVyZU1hcHBlcjsKIGNsYXNzIFRleHR1
cmVNYXBwZXJHTDsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIAorI2lmIE9TKFdJTkRPV1MpCisj
ZGVmaW5lIFVTRV9URVhNQVBfREVQVEhfU1RFTkNJTF9CVUZGRVIgMQorI2Vsc2UKKyNkZWZpbmUg
VVNFX1RFWE1BUF9ERVBUSF9TVEVOQ0lMX0JVRkZFUiAwCisjZW5kaWYKKwogY2xhc3MgQml0bWFw
VGV4dHVyZUdMIDogcHVibGljIEJpdG1hcFRleHR1cmUgewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8Qml0bWFwVGV4dHVyZT4gY3JlYXRlKGNvbnN0IFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmli
dXRlcyYgY29udGV4dEF0dHJpYnV0ZXMsIGNvbnN0IEZsYWdzIGZsYWdzID0gTm9GbGFnLCBHTGlu
dCBpbnRlcm5hbEZvcm1hdCA9IEdMX0RPTlRfQ0FSRSkKQEAgLTkwLDkgKzk2LDEwIEBAIHByaXZh
dGU6CiAKICAgICBHTHVpbnQgbV9pZCB7IDAgfTsKICAgICBJbnRTaXplIG1fdGV4dHVyZVNpemU7
Ci0gICAgSW50UmVjdCBtX2RpcnR5UmVjdDsKICAgICBHTHVpbnQgbV9mYm8geyAwIH07CisjaWYg
IVVTRShURVhNQVBfREVQVEhfU1RFTkNJTF9CVUZGRVIpCiAgICAgR0x1aW50IG1fcmJvIHsgMCB9
OworI2VuZGlmCiAgICAgR0x1aW50IG1fZGVwdGhCdWZmZXJPYmplY3QgeyAwIH07CiAgICAgYm9v
bCBtX3Nob3VsZENsZWFyIHsgdHJ1ZSB9OwogICAgIENsaXBTdGFjayBtX2NsaXBTdGFjazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBU
ZXh0dXJlUG9vbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Qml0bWFwVGV4dHVyZVBvb2wuY3BwCmluZGV4IDgxMjIwNDg1MzZkMy4uY2Q3NDY1OTA0MDQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFw
VGV4dHVyZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlUG9vbC5jcHAKQEAgLTQ3LDcgKzQ3LDExIEBAIEJpdG1hcFRleHR1
cmVQb29sOjpCaXRtYXBUZXh0dXJlUG9vbChjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJp
YnV0ZXMmIGNvbnRlCiBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gQml0bWFwVGV4dHVyZVBvb2w6OmFj
cXVpcmVUZXh0dXJlKGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEJpdG1hcFRleHR1cmU6OkZs
YWdzIGZsYWdzKQogewogICAgIEVudHJ5KiBzZWxlY3RlZEVudHJ5ID0gc3RkOjpmaW5kX2lmKG1f
dGV4dHVyZXMuYmVnaW4oKSwgbV90ZXh0dXJlcy5lbmQoKSwKLSAgICAgICAgWyZzaXplXShFbnRy
eSYgZW50cnkpIHsgcmV0dXJuIGVudHJ5Lm1fdGV4dHVyZS0+cmVmQ291bnQoKSA9PSAxICYmIGVu
dHJ5Lm1fdGV4dHVyZS0+c2l6ZSgpID09IHNpemU7IH0pOworICAgICAgICBbJl0oRW50cnkmIGVu
dHJ5KSB7CisgICAgICAgICAgICByZXR1cm4gZW50cnkubV90ZXh0dXJlLT5yZWZDb3VudCgpID09
IDEKKyAgICAgICAgICAgICAgICAmJiBlbnRyeS5tX3RleHR1cmUtPnNpemUoKSA9PSBzaXplCisg
ICAgICAgICAgICAgICAgJiYgKGVudHJ5Lm1fdGV4dHVyZS0+ZmxhZ3MoKSAmIEJpdG1hcFRleHR1
cmU6OkRlcHRoQnVmZmVyKSA9PSAoZmxhZ3MgJiBCaXRtYXBUZXh0dXJlOjpEZXB0aEJ1ZmZlcik7
CisgICAgICAgIH0pOwogCiAgICAgaWYgKHNlbGVjdGVkRW50cnkgPT0gbV90ZXh0dXJlcy5lbmQo
KSkgewogICAgICAgICBtX3RleHR1cmVzLmFwcGVuZChFbnRyeShjcmVhdGVUZXh0dXJlKGZsYWdz
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmgKaW5kZXggMTg2ZWY4MzBkODlmLi5hZWUwMzNhMDYzODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXIuaApAQCAtNzksOCArNzksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJl
Z2luQ2xpcChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0Um91bmRlZFJl
Y3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGVuZENsaXAoKSA9IDA7CiAgICAgdmlydHVhbCBJ
bnRSZWN0IGNsaXBCb3VuZHMoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGJlZ2luUHJlc2VydmVz
M0QoKSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIGVuZFByZXNlcnZlczNEKCkgeyB9OwogICAgIHZp
cnR1YWwgUmVmPEJpdG1hcFRleHR1cmU+IGNyZWF0ZVRleHR1cmUoKSA9IDA7CiAgICAgdmlydHVh
bCBSZWY8Qml0bWFwVGV4dHVyZT4gY3JlYXRlVGV4dHVyZShpbnQgaW50ZXJuYWxGb3JtYXQpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVwdGhSYW5nZShkb3VibGUgek5lYXIsIGRvdWJsZSB6
RmFyKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDQxZmY2MzFiYWUyZi4uMzI1ZTY5
MGM1YmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtMjAyLDcgKzIwMiw2IEBAIHZvaWQg
VGV4dHVyZU1hcHBlckdMOjpiZWdpblBhaW50aW5nKFBhaW50RmxhZ3MgZmxhZ3MpCiAgICAgZ2xH
ZXRJbnRlZ2VydihHTF9DVVJSRU5UX1BST0dSQU0sICZkYXRhKCkucHJldmlvdXNQcm9ncmFtKTsK
ICAgICBkYXRhKCkucHJldmlvdXNTY2lzc29yU3RhdGUgPSBnbElzRW5hYmxlZChHTF9TQ0lTU09S
X1RFU1QpOwogICAgIGRhdGEoKS5wcmV2aW91c0RlcHRoU3RhdGUgPSBnbElzRW5hYmxlZChHTF9E
RVBUSF9URVNUKTsKLSAgICBnbERpc2FibGUoR0xfREVQVEhfVEVTVCk7CiAgICAgZ2xEZXB0aEZ1
bmMoR0xfTEVRVUFMKTsKICAgICBnbEVuYWJsZShHTF9TQ0lTU09SX1RFU1QpOwogICAgIGRhdGEo
KS5kaWRNb2RpZnlTdGVuY2lsID0gZmFsc2U7CkBAIC04ODUsNiArODg0LDcgQEAgdm9pZCBUZXh0
dXJlTWFwcGVyR0w6OmJpbmREZWZhdWx0U3VyZmFjZSgpCiAgICAgYXV0byYgdmlld3BvcnQgPSBk
YXRhKCkudmlld3BvcnQ7CiAgICAgZGF0YSgpLnByb2plY3Rpb25NYXRyaXggPSBjcmVhdGVQcm9q
ZWN0aW9uTWF0cml4KEludFNpemUodmlld3BvcnRbMl0sIHZpZXdwb3J0WzNdKSwgZGF0YSgpLlBh
aW50RmxhZ3MgJiBQYWludGluZ01pcnJvcmVkLCBkYXRhKCkuek5lYXIsIGRhdGEoKS56RmFyKTsK
ICAgICBnbFZpZXdwb3J0KHZpZXdwb3J0WzBdLCB2aWV3cG9ydFsxXSwgdmlld3BvcnRbMl0sIHZp
ZXdwb3J0WzNdKTsKKyAgICBnbERpc2FibGUoR0xfREVQVEhfVEVTVCk7CiAgICAgbV9jbGlwU3Rh
Y2suYXBwbHkoKTsKICAgICBkYXRhKCkuY3VycmVudFN1cmZhY2UgPSBudWxscHRyOwogfQpAQCAt
MTAyMSwxNyArMTAyMSw2IEBAIEludFJlY3QgVGV4dHVyZU1hcHBlckdMOjpjbGlwQm91bmRzKCkK
ICAgICByZXR1cm4gY2xpcFN0YWNrKCkuY3VycmVudCgpLnNjaXNzb3JCb3g7CiB9CiAKLXZvaWQg
VGV4dHVyZU1hcHBlckdMOjpiZWdpblByZXNlcnZlczNEKCkKLXsKLSAgICBnbEVuYWJsZShHTF9E
RVBUSF9URVNUKTsKLSAgICBnbENsZWFyKEdMX0RFUFRIX0JVRkZFUl9CSVQpOwotfQotCi12b2lk
IFRleHR1cmVNYXBwZXJHTDo6ZW5kUHJlc2VydmVzM0QoKQotewotICAgIGdsRGlzYWJsZShHTF9E
RVBUSF9URVNUKTsKLX0KLQogUmVmPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBwZXJHTDo6Y3Jl
YXRlVGV4dHVyZShHTGludCBpbnRlcm5hbEZvcm1hdCkKIHsKICAgICByZXR1cm4gQml0bWFwVGV4
dHVyZUdMOjpjcmVhdGUobV9jb250ZXh0QXR0cmlidXRlcywgaW50ZXJuYWxGb3JtYXQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5oCmluZGV4IDY4OTIzZmYzOTQ3Zi4uOWNiMTdmM2E5YmZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdM
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5oCkBAIC03OSw4ICs3OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGJlZ2luUGFpbnRp
bmcoUGFpbnRGbGFncyA9IDApIG92ZXJyaWRlOwogICAgIHZvaWQgZW5kUGFpbnRpbmcoKSBvdmVy
cmlkZTsKICAgICB2b2lkIGVuZENsaXAoKSBvdmVycmlkZTsKLSAgICB2b2lkIGJlZ2luUHJlc2Vy
dmVzM0QoKSBvdmVycmlkZTsKLSAgICB2b2lkIGVuZFByZXNlcnZlczNEKCkgb3ZlcnJpZGU7CiAg
ICAgSW50UmVjdCBjbGlwQm91bmRzKCkgb3ZlcnJpZGU7CiAgICAgSW50U2l6ZSBtYXhUZXh0dXJl
U2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFNpemUoMjAwMCwgMjAwMCk7IH0KICAg
ICBSZWY8Qml0bWFwVGV4dHVyZT4gY3JlYXRlVGV4dHVyZSgpIG92ZXJyaWRlIHsgcmV0dXJuIGNy
ZWF0ZVRleHR1cmUoR0xfRE9OVF9DQVJFKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTEhlYWRlcnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0xIZWFkZXJz
LmgKaW5kZXggOTkzNTFhN2E0ZGE4Li4zZjY3MGQ2ZWY5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0xIZWFkZXJzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTEhlYWRlcnMuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPGVwb3h5L2dsLmg+CiAj
ZWxpZiBVU0UoT1BFTkdMX0VTKQogI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPEdM
RVMyL2dsMmV4dC5oPgogI2Vsc2UKICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IDkwMGI1OTZjY2U1ZS4uZjg5MWQ5YmM4Yzcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMjU1LDI3ICsyNTUsNiBAQCB2b2lk
IFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmQW5kQ2hpbGRyZW4oVGV4dHVyZU1hcHBlclBh
aW50T3B0aW9ucyYgb3B0aW9ucwogICAgIGlmIChtX3N0YXRlLmJhY2tkcm9wTGF5ZXIgJiYgbV9z
dGF0ZS5iYWNrZHJvcExheWVyID09IG9wdGlvbnMuYmFja2Ryb3BMYXllcikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc3RydWN0IFByZXNlcnZlczNEU2NvcGUgewotICAgICAgICBQcmVzZXJ2ZXMz
RFNjb3BlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIHBhc3NlZE9wdGlvbnMsIGJvb2wgcGFz
c2VkRW5hYmxlKQotICAgICAgICAgICAgOiBvcHRpb25zKHBhc3NlZE9wdGlvbnMpCi0gICAgICAg
ICAgICAsIGVuYWJsZShwYXNzZWRFbmFibGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChl
bmFibGUpIHsKLSAgICAgICAgICAgICAgICBvcHRpb25zLnByZXNlcnZlczNEID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuYmVnaW5QcmVzZXJ2ZXMzRCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIH5QcmVzZXJ2ZXMzRFNjb3BlKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgaWYgKGVuYWJsZSkgewotICAgICAgICAgICAgICAgIG9wdGlv
bnMucHJlc2VydmVzM0QgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBvcHRpb25zLnRleHR1cmVN
YXBwZXIuZW5kUHJlc2VydmVzM0QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zOwotICAgICAgICBib29sIGVuYWJs
ZTsKLSAgICB9IHNjb3BlZFByZXNlcnZlczNEKG9wdGlvbnMsIG1fc3RhdGUucHJlc2VydmVzM0Qg
JiYgIW9wdGlvbnMucHJlc2VydmVzM0QpOwotCiAgICAgaWYgKG1fc3RhdGUuYmFja2Ryb3BMYXll
ciAmJiAhb3B0aW9ucy5iYWNrZHJvcExheWVyKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IGNsaXBUcmFuc2Zvcm07CiAgICAgICAgIGNsaXBUcmFuc2Zvcm0udHJhbnNsYXRlKG9wdGlv
bnMub2Zmc2V0LndpZHRoKCksIG9wdGlvbnMub2Zmc2V0LmhlaWdodCgpKTsKQEAgLTc3NSwxMiAr
NzU0LDYyIEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFJlY3Vyc2l2ZShUZXh0dXJl
TWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogCiAgICAgU2V0Rm9yU2NvcGUgc2NvcGVkT3Bh
Y2l0eShvcHRpb25zLm9wYWNpdHksIG9wdGlvbnMub3BhY2l0eSAqIG1fY3VycmVudE9wYWNpdHkp
OwogCi0gICAgaWYgKHNob3VsZEJsZW5kKCkpCisgICAgaWYgKG1fc3RhdGUucHJlc2VydmVzM0Qp
CisgICAgICAgIHBhaW50V2l0aDNEUmVuZGVyaW5nQ29udGV4dChvcHRpb25zKTsKKyAgICBlbHNl
IGlmIChzaG91bGRCbGVuZCgpKQogICAgICAgICBwYWludFVzaW5nT3ZlcmxhcFJlZ2lvbnMob3B0
aW9ucyk7CiAgICAgZWxzZQogICAgICAgICBwYWludFNlbGZDaGlsZHJlblJlcGxpY2FGaWx0ZXJB
bmRNYXNrKG9wdGlvbnMpOwogfQogCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRXaXRo
M0RSZW5kZXJpbmdDb250ZXh0KFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCit7
CisgICAgaWYgKG9wdGlvbnMucHJlc2VydmVzM0QpIHsKKyAgICAgICAgcGFpbnRTZWxmQW5kQ2hp
bGRyZW5XaXRoUmVwbGljYShvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBT
ZXRGb3JTY29wZSBzY29wZWRQcmVzZXJ2ZXMzRChvcHRpb25zLnByZXNlcnZlczNELCB0cnVlKTsK
KworICAgIFJlZ2lvbiBvdmVybGFwUmVnaW9uOworICAgIFJlZ2lvbiBub25PdmVybGFwUmVnaW9u
OworICAgIENvbXB1dGVPdmVybGFwUmVnaW9uRGF0YSBkYXRhIHsKKyAgICAgICAgQ29tcHV0ZU92
ZXJsYXBSZWdpb25Nb2RlOjpVbmlvbiwKKyAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmNs
aXBCb3VuZHMoKSwKKyAgICAgICAgb3ZlcmxhcFJlZ2lvbiwKKyAgICAgICAgbm9uT3ZlcmxhcFJl
Z2lvbgorICAgIH07CisgICAgZGF0YS5jbGlwQm91bmRzLm1vdmUoLW9wdGlvbnMub2Zmc2V0KTsK
KyAgICBjb21wdXRlT3ZlcmxhcFJlZ2lvbnMoZGF0YSwgb3B0aW9ucy50cmFuc2Zvcm0sIGZhbHNl
KTsKKyAgICBBU1NFUlQobm9uT3ZlcmxhcFJlZ2lvbi5pc0VtcHR5KCkpOworCisgICAgYXV0byBy
ZWN0cyA9IG92ZXJsYXBSZWdpb24ucmVjdHMoKTsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IE92
ZXJsYXBSZWdpb25Db25zb2xpZGF0aW9uVGhyZXNob2xkID0gNDsKKyAgICBpZiAocmVjdHMuc2l6
ZSgpID4gT3ZlcmxhcFJlZ2lvbkNvbnNvbGlkYXRpb25UaHJlc2hvbGQpIHsKKyAgICAgICAgcmVj
dHMuY2xlYXIoKTsKKyAgICAgICAgcmVjdHMuYXBwZW5kKG92ZXJsYXBSZWdpb24uYm91bmRzKCkp
OworICAgIH0KKworICAgIEludFNpemUgbWF4VGV4dHVyZVNpemUgPSBvcHRpb25zLnRleHR1cmVN
YXBwZXIubWF4VGV4dHVyZVNpemUoKTsKKyAgICBmb3IgKGF1dG8mIHJlY3QgOiByZWN0cykgewor
ICAgICAgICBmb3IgKGludCB4ID0gcmVjdC54KCk7IHggPCByZWN0Lm1heFgoKTsgeCArPSBtYXhU
ZXh0dXJlU2l6ZS53aWR0aCgpKSB7CisgICAgICAgICAgICBmb3IgKGludCB5ID0gcmVjdC55KCk7
IHkgPCByZWN0Lm1heFkoKTsgeSArPSBtYXhUZXh0dXJlU2l6ZS5oZWlnaHQoKSkgeworICAgICAg
ICAgICAgICAgIEludFJlY3QgdGlsZVJlY3QoSW50UG9pbnQoeCwgeSksIG1heFRleHR1cmVTaXpl
KTsKKyAgICAgICAgICAgICAgICB0aWxlUmVjdC5pbnRlcnNlY3QocmVjdCk7CisgICAgICAgICAg
ICAgICAgYXV0byBzdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmFjcXVpcmVUZXh0dXJl
RnJvbVBvb2wodGlsZVJlY3Quc2l6ZSgpLCBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhhIHwg
Qml0bWFwVGV4dHVyZTo6RGVwdGhCdWZmZXIpOworICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgU2V0Rm9yU2NvcGUgc2NvcGVkU3VyZmFjZShvcHRpb25zLnN1cmZhY2UsIHN1
cmZhY2UpOworICAgICAgICAgICAgICAgICAgICBTZXRGb3JTY29wZSBzY29wZWRPZmZzZXQob3B0
aW9ucy5vZmZzZXQsIC10b0ludFNpemUodGlsZVJlY3QubG9jYXRpb24oKSkpOworICAgICAgICAg
ICAgICAgICAgICBTZXRGb3JTY29wZSBzY29wZWRPcGFjaXR5KG9wdGlvbnMub3BhY2l0eSwgMSk7
CisKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmJpbmRTdXJmYWNl
KG9wdGlvbnMuc3VyZmFjZS5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIHBhaW50U2VsZkFu
ZENoaWxkcmVuV2l0aFJlcGxpY2Eob3B0aW9ucyk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGNvbW1pdFN1cmZhY2Uob3B0aW9ucywgKnN1cmZhY2UsIHRpbGVSZWN0LCBvcHRp
b25zLm9wYWNpdHkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCiB2b2lk
IFRleHR1cmVNYXBwZXJMYXllcjo6c2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPFRleHR1cmVNYXBw
ZXJMYXllcio+JiBuZXdDaGlsZHJlbikKIHsKICAgICByZW1vdmVBbGxDaGlsZHJlbigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJMYXllci5oCmluZGV4IDBiNDljMWY0ZGU1Ni4uZTg3ZjExYzhlMWY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5oCkBAIC0xMzcsNiArMTM3LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNvbXB1dGVPdmVybGFwUmVnaW9ucyhDb21wdXRlT3ZlcmxhcFJlZ2lvbkRhdGEmLCBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGJvb2wgaW5jbHVkZXNSZXBsaWNhID0gdHJ1ZSk7CiAK
ICAgICB2b2lkIHBhaW50UmVjdXJzaXZlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKKyAg
ICB2b2lkIHBhaW50V2l0aDNEUmVuZGVyaW5nQ29udGV4dChUZXh0dXJlTWFwcGVyUGFpbnRPcHRp
b25zJik7CiAgICAgdm9pZCBwYWludFNlbGZDaGlsZHJlblJlcGxpY2FGaWx0ZXJBbmRNYXNrKFRl
eHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKICAgICB2b2lkIHBhaW50VXNpbmdPdmVybGFwUmVn
aW9ucyhUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJik7CiAgICAgdm9pZCBwYWludEludG9TdXJm
YWNlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2ds
aWIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3NzdlZjM3OGM0MTIuLmZhNTE5ZDgyOWRkOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjkzLDYgKzY5
Myw4IEBAIHdlYmtpdC5vcmcvYi8yMzAyNzcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXRyYW5zZm9ybXMvY29tcG9zaXRlCiB3ZWJraXQub3JnL2IvMjMwMjc3IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1m
aXhlZC1iZy0wMDcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIzMDI3
NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9wZXJz
cGVjdGl2ZS1zcGxpdC1ieS16ZXJvLXcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCit3ZWJr
aXQub3JnL2IvMjQ1ODYyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10
cmFuc2Zvcm1zL3BlcnNwZWN0aXZlLXRyYW5zZm9ybXMtZXF1aXZhbGVuY2UuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQorCiB3ZWJraXQub3JnL2IvMjQ1NzE2IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybTNkLXJvdGF0ZXgtcGVyc3Bl
Y3RpdmUtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIzNzUw
MiBmYXN0L2RvbS9SYW5nZS9nZXRDbGllbnRSZWN0cy5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>