<?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>226108</bug_id>
          
          <creation_ts>2021-05-21 13:34:31 -0700</creation_ts>
          <short_desc>Rename ImageBuffer::transformColorSpace to transformToColorSpace, and it should take a single argument</short_desc>
          <delta_ts>2021-05-25 23:31:23 -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>
          
          
          <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="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1762560</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-21 13:34:31 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from bug #225907 comment #11)
&gt; Comment on attachment 429266 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429266&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.cpp:103
&gt; &gt; +    m_parameters.colorSpace = destColorSpace;
&gt; &gt; +
&gt; 
&gt; This change suggests that transformColorSpace() should take only
&gt; destColorSpace. I checked the callers of this function and I found they all
&gt; pass the same colorSpace they used to create the ImageBuffer with. So I
&gt; would suggest:
&gt; 1. Change the name of this function to transformToColorSpace
&gt; 2. Make it take only a newColorSpace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762952</commentid>
    <comment_count>1</comment_count>
      <attachid>429477</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-23 13:46:40 -0700</bug_when>
    <thetext>Created attachment 429477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763048</commentid>
    <comment_count>2</comment_count>
      <attachid>429511</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-24 00:49:35 -0700</bug_when>
    <thetext>Created attachment 429511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763186</commentid>
    <comment_count>3</comment_count>
      <attachid>429511</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-24 10:30:40 -0700</bug_when>
    <thetext>Comment on attachment 429511
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +

Can you say something about this change? For example, &quot;The &apos;srcColorSpace&apos; argument of ImageBuffer::transformColorSpace() should be removed because it is redundant and it is the same as ImageBuffer::colorSpace().&quot;

&gt; Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.cpp:115
&gt; +    } else if (newColorSpace == DestinationColorSpace::SRGB()) {

I think there is no need to check if (newColorSpace == DestinationColorSpace::SRGB())

    } else {
       ....
    }

Since we checked above newColorSpace is either DestinationColorSpace::LinearSRGB() or destColorSpace == DestinationColorSpace::SRGB().

&gt; Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp:-125
&gt; -#if !USE(CG)
&gt; -    maskerData-&gt;maskImage-&gt;transformColorSpace(DestinationColorSpace::SRGB(), colorSpace);
&gt; -#else
&gt; -    UNUSED_PARAM(colorSpace);
&gt; -#endif

Why this block was removed? Should not the function just be renamed and the argument &apos;colorSpace&apos; be removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763220</commentid>
    <comment_count>4</comment_count>
      <attachid>429511</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-24 12:56:26 -0700</bug_when>
    <thetext>Comment on attachment 429511
Patch

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

&gt;&gt; Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp:-125
&gt;&gt; -#endif
&gt; 
&gt; Why this block was removed? Should not the function just be renamed and the argument &apos;colorSpace&apos; be removed?

Agreed, seems weird to remove this. Though I am not sure this ever really did what was intended. What is happening here is that if svgStyle.colorInterpolation() == ColorInterpolation::LinearRGB, an ImageBuffer is created with a LinearSRGB colorSpace. This works for the CG ports, with drawing happening in LinearSRGB space. 

For the cairo ports, the drawing happens in normal SRGB space, and then I guess the idea was to transform the whole image buffer to LinearSRGB here. 

It&apos;s not clear to me that those two operations are equivalent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763226</commentid>
    <comment_count>5</comment_count>
      <attachid>429511</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-24 13:19:23 -0700</bug_when>
    <thetext>Comment on attachment 429511
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:7
&gt;&gt; +
&gt; 
&gt; Can you say something about this change? For example, &quot;The &apos;srcColorSpace&apos; argument of ImageBuffer::transformColorSpace() should be removed because it is redundant and it is the same as ImageBuffer::colorSpace().&quot;

Agreed.

&gt;&gt; Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.cpp:115
&gt;&gt; +    } else if (newColorSpace == DestinationColorSpace::SRGB()) {
&gt; 
&gt; I think there is no need to check if (newColorSpace == DestinationColorSpace::SRGB())
&gt; 
&gt;     } else {
&gt;        ....
&gt;     }
&gt; 
&gt; Since we checked above newColorSpace is either DestinationColorSpace::LinearSRGB() or destColorSpace == DestinationColorSpace::SRGB().

I think so. Will fix.

&gt;&gt;&gt; Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp:-125
&gt;&gt;&gt; -#endif
&gt;&gt; 
&gt;&gt; Why this block was removed? Should not the function just be renamed and the argument &apos;colorSpace&apos; be removed?
&gt; 
&gt; Agreed, seems weird to remove this. Though I am not sure this ever really did what was intended. What is happening here is that if svgStyle.colorInterpolation() == ColorInterpolation::LinearRGB, an ImageBuffer is created with a LinearSRGB colorSpace. This works for the CG ports, with drawing happening in LinearSRGB space. 
&gt; 
&gt; For the cairo ports, the drawing happens in normal SRGB space, and then I guess the idea was to transform the whole image buffer to LinearSRGB here. 
&gt; 
&gt; It&apos;s not clear to me that those two operations are equivalent.

Good point. I think I should do the following for cairo case

1. SVGRenderingContext::createImageBuffer with SRGB
2. Call SVGRenderingContext::renderSubtreeToContext (this always renders in SRGB)
3. Do maskerData-&gt;maskImage-&gt;transformToColorSpace(colorSpace)

I will study more and revise the patch. Thank you very much for pointing out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763422</commentid>
    <comment_count>6</comment_count>
      <attachid>429624</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-24 20:55:07 -0700</bug_when>
    <thetext>Created attachment 429624
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763425</commentid>
    <comment_count>7</comment_count>
      <attachid>429625</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-24 21:02:00 -0700</bug_when>
    <thetext>Created attachment 429625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763441</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-24 22:58:42 -0700</bug_when>
    <thetext>svg/custom/grayscale-gradient-mask-2.svg is another test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763825</commentid>
    <comment_count>9</comment_count>
      <attachid>429625</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-25 22:17:08 -0700</bug_when>
    <thetext>Comment on attachment 429625
Patch

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

&gt; Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp:82
&gt; +#if USE(CG)
&gt; +        auto renderingColorSpace = colorSpace;
&gt; +#else
&gt; +        auto renderingColorSpace = DestinationColorSpace::SRGB();
&gt; +#endif

I think combining the calculation of colorSpace and renderingColorSpace might be more clear. I would suggest something like this:

    auto maskColorSpace = DestinationColorSpace::SRGB();
    auto drawColorSpace = DestinationColorSpace::SRGB();

#if ENABLE(DESTINATION_COLOR_SPACE_LINEAR_SRGB)
    if (svgStyle.colorInterpolation() == ColorInterpolation::LinearRGB) {
#if USE(CG)
        maskColorSpace = DestinationColorSpace::LinearSRGB();
#endif      
        drawColorSpace = DestinationColorSpace::LinearSRGB();
    }
#endif

So this code is saying the default colorSpace for the mask and the drawing is SRGB. The exception happens if svgStyle.colorInterpolation is LinearRGB. In this case, the drawing colorSpace will be LinearSRGB. And the CG ports will have an exception also. The mask image will be created with LinearSRGB colorSpace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763826</commentid>
    <comment_count>10</comment_count>
      <attachid>429729</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-25 22:36:10 -0700</bug_when>
    <thetext>Created attachment 429729
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763830</commentid>
    <comment_count>11</comment_count>
      <attachid>429731</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-25 23:01:59 -0700</bug_when>
    <thetext>Created attachment 429731
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763832</commentid>
    <comment_count>12</comment_count>
      <attachid>429731</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-25 23:30:12 -0700</bug_when>
    <thetext>Comment on attachment 429731
Patch for landing

Clearing flags on attachment: 429731

Committed r278078 (238157@main): &lt;https://commits.webkit.org/238157@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763833</commentid>
    <comment_count>13</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-05-25 23:30:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763835</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-25 23:31:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/78496702&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429477</attachid>
            <date>2021-05-23 13:46:40 -0700</date>
            <delta_ts>2021-05-24 00:39:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226108-20210524054639.patch</filename>
            <type>text/plain</type>
            <size>10921</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkyY2FkOTdjMDBmYmFj
YzZmOWVmODg4OTQ3ZWFlZDM4NDAwZDMzYy4uNWY1ZDUyMDBmYWExYzU2ZmI5Nzc5NzY5Zjk1M2M2
YzUyZDU3NWI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTIzICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbmFtZSBJ
bWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZSB0byB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2Us
IGFuZCBpdCBzaG91bGQgdGFrZSBhIHNpbmdsZSBhcmd1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTA4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0
ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6dHJhbnNmb3JtVG9Db2xvclNwYWNl
KTogVGFrZSBhIHNpbmdsZSBhcmd1bWVudCAnbmV3Q29sb3JTcGFjZScuCisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRyYW5zZm9ybUNvbG9yU3BhY2UpOiBSZW5hbWVkIHRv
IHRyYW5zZm9ybVRvQ29sb3JTcGFjZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3JtVG9Db2xvclNwYWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjp0cmFuc2Zvcm1Db2xvclNwYWNlKTogUmVuYW1l
ZCB0byB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q6OnRyYW5zZm9ybVJlc3VsdENvbG9yU3BhY2UpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50SW50b01hc2tJbWFnZSk6CisgICAgICAg
IFJlbW92ZWQgJ2NvbG9yU3BhY2UnIGFyZ3VtZW50IGJlY2F1c2UgaXQgZG9lc24ndCBuZWVkIHRv
IHRyYW5zZm9ybQorICAgICAgICB0aGUgY29sb3Igc3BhY2UuCisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkg
YXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oCmluZGV4IDNiZmNhOWI2NWE1ZTVhYzQ4MzM5NmQwZGU0YzExMGRmYmYwYTJmZTcu
LjNjZjAwNmE5OTUxMDc0ZWZhMGZkY2IxOTUyYzE0OTQ3MzcyZTdjOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgK
QEAgLTE5NSwxMiArMTk1LDEyIEBAIHByb3RlY3RlZDoKICAgICAgICAgfQogICAgIH0KIAotICAg
IHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2Ugc3JjQ29sb3JT
cGFjZSwgRGVzdGluYXRpb25Db2xvclNwYWNlIGRlc3RDb2xvclNwYWNlKSBvdmVycmlkZQorICAg
IHZvaWQgdHJhbnNmb3JtVG9Db2xvclNwYWNlKERlc3RpbmF0aW9uQ29sb3JTcGFjZSBuZXdDb2xv
clNwYWNlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1
cmVCYWNrZW5kQ3JlYXRlZCgpKSB7CiAgICAgICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7
Ci0gICAgICAgICAgICBiYWNrZW5kLT50cmFuc2Zvcm1Db2xvclNwYWNlKHNyY0NvbG9yU3BhY2Us
IGRlc3RDb2xvclNwYWNlKTsKLSAgICAgICAgICAgIG1fcGFyYW1ldGVycy5jb2xvclNwYWNlID0g
ZGVzdENvbG9yU3BhY2U7CisgICAgICAgICAgICBiYWNrZW5kLT50cmFuc2Zvcm1Ub0NvbG9yU3Bh
Y2UobmV3Q29sb3JTcGFjZSk7CisgICAgICAgICAgICBtX3BhcmFtZXRlcnMuY29sb3JTcGFjZSA9
IG5ld0NvbG9yU3BhY2U7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDM4MWY4ZGJiZmVlODUyY2VhZjg0
NGU0NzZkOTFiOWRhMjg4OWVjNDguLjg5YjM5NTI3YTNiMGVkZGU1ZTY1MGRlNmRiZjc1MGI5MTRl
OGFlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xpcFRv
TWFzayhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KSA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY29udmVydFRvTHVtaW5hbmNlTWFzaygpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2Ugc3JjQ29s
b3JTcGFjZSwgRGVzdGluYXRpb25Db2xvclNwYWNlIGRzdENvbG9yU3BhY2UpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdHJhbnNmb3JtVG9Db2xvclNwYWNlKERlc3RpbmF0aW9uQ29sb3JTcGFjZSkg
PSAwOwogCiAgICAgdmlydHVhbCBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSA9IFdURjo6bnVsbG9wdCwgUHJlc2VydmVSZXNv
bHV0aW9uID0gUHJlc2VydmVSZXNvbHV0aW9uOjpObykgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
VmVjdG9yPHVpbnQ4X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxk
b3VibGU+IHF1YWxpdHkgPSBXVEY6Om51bGxvcHQpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXgg
YjgxMTY1ZTFiMTFlNmI4OWVlYzM0OTMwZDE4ZTY1OGM2NGU4ODY5ZS4uYzcyMzgwZGYxMDI3NDM3
NjFhNTAzMTkwZmU3N2U3OWRiZTU5MGYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTEwMiw3ICsxMDIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JikgeyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnZlcnRU
b0x1bWluYW5jZU1hc2soKTsKLSAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSkgeyB9CisgICAgdmly
dHVhbCB2b2lkIHRyYW5zZm9ybVRvQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2UpIHsg
fQogCiAgICAgdmlydHVhbCBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tl
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZm
ZXJDYWlyb0JhY2tlbmQuY3BwCmluZGV4IGM5ZTcwODAxNDZjN2YyMzI3MjdkMWE0MjdlMTFlNmJj
OGQwODE4ZjIuLmYwNTBhYWNhMzM0MmYwMzgwOTU3YjVmZjgzMjU1MjVlYzZmMzg4ZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAKQEAgLTg5LDE5ICs4OSwxOSBAQCB2b2lk
IEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjpjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYgZGVz
dENvbnRleHQsIGNvbnN0IEZsbwogICAgICAgICBDYWlybzo6Y2xpcFRvSW1hZ2VCdWZmZXIoKmRl
c3RDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgp
LCBkZXN0UmVjdCk7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OnRyYW5zZm9y
bUNvbG9yU3BhY2UoRGVzdGluYXRpb25Db2xvclNwYWNlIHNyY0NvbG9yU3BhY2UsIERlc3RpbmF0
aW9uQ29sb3JTcGFjZSBkZXN0Q29sb3JTcGFjZSkKK3ZvaWQgSW1hZ2VCdWZmZXJDYWlyb0JhY2tl
bmQ6OnRyYW5zZm9ybVRvQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2UgbmV3Q29sb3JT
cGFjZSkKIHsKLSAgICBpZiAoc3JjQ29sb3JTcGFjZSA9PSBkZXN0Q29sb3JTcGFjZSkKKyAgICBp
ZiAobV9wYXJhbWV0ZXJzLmNvbG9yU3BhY2UgPT0gbmV3Q29sb3JTcGFjZSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gb25seSBzUkdCIDwtPiBsaW5lYXJSR0IgYXJlIHN1cHBvcnRlZCBhdCB0
aGUgbW9tZW50Ci0gICAgaWYgKChzcmNDb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6TGluZWFyU1JHQiAmJiBzcmNDb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6
U1JHQikKLSAgICAgICAgfHwgKGRlc3RDb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6TGluZWFyU1JHQiAmJiBkZXN0Q29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6
OlNSR0IpKQorICAgIGlmICgobV9wYXJhbWV0ZXJzLmNvbG9yU3BhY2UgIT0gRGVzdGluYXRpb25D
b2xvclNwYWNlOjpMaW5lYXJTUkdCICYmIG1fcGFyYW1ldGVycy5jb2xvclNwYWNlICE9IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQikKKyAgICAgICAgfHwgKG5ld0NvbG9yU3BhY2UgIT0gRGVz
dGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCICYmIG5ld0NvbG9yU3BhY2UgIT0gRGVzdGlu
YXRpb25Db2xvclNwYWNlOjpTUkdCKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYXJhbWV0
ZXJzLmNvbG9yU3BhY2UgPSBkZXN0Q29sb3JTcGFjZTsKKyAgICBtX3BhcmFtZXRlcnMuY29sb3JT
cGFjZSA9IG5ld0NvbG9yU3BhY2U7CiAKLSAgICBpZiAoZGVzdENvbG9yU3BhY2UgPT0gRGVzdGlu
YXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCKSB7CisgICAgaWYgKG5ld0NvbG9yU3BhY2UgPT0g
RGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCKSB7CiAgICAgICAgIHN0YXRpYyBjb25z
dCBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4gbGluZWFyUmdiTFVUID0gW10gewogICAgICAgICAg
ICAgc3RkOjphcnJheTx1aW50OF90LCAyNTY+IGFycmF5OwogICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IDI1NjsgaSsrKSB7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBJbWFn
ZUJ1ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3JtQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9y
U3BhY2Ugc3JjQ29sb3IKICAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfSgpOwog
ICAgICAgICBwbGF0Zm9ybVRyYW5zZm9ybUNvbG9yU3BhY2UobGluZWFyUmdiTFVUKTsKLSAgICB9
IGVsc2UgaWYgKGRlc3RDb2xvclNwYWNlID09IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQikg
eworICAgIH0gZWxzZSBpZiAobmV3Q29sb3JTcGFjZSA9PSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6
OlNSR0IpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PiBk
ZXZpY2VSZ2JMVVQ9IFtdIHsKICAgICAgICAgICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PiBh
cnJheTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyNTY7IGkrKykgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyb0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKaW5kZXggZGFhZjk5ZGUxYzdjZTAwYjBkYTZj
NWNlMmQwNWQwYmQyYmVkMDE3NS4uZTJlNTFkMTAwN2I2YTQ0MjQ4ZWM4OGJiZTExZWE4MGQ2OGZk
OGQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCkBAIC00NCw3ICs0NCw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0KSBvdmVycmlkZTsKIAotICAgIHZvaWQgdHJhbnNmb3JtQ29sb3JT
cGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2Ugc3JjQ29sb3JTcGFjZSwgRGVzdGluYXRpb25Db2xv
clNwYWNlIGRlc3RDb2xvclNwYWNlKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYW5zZm9ybVRvQ29s
b3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2UpIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nIHRv
RGF0YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+IHF1YWxpdHks
IFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IHRvRGF0YShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+IHF1YWxpdHkp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmluZGV4IGFjMjZkMjAxN2M3NDU1MDk3
ZDdjYzdmZjA3NGM0M2JkM2VhOWNhZTUuLmRhNjlmY2E5NDAzNTU2ZDQzNDg1YTYzYmFmYmYxZjg4
OTgyNDk3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTY0Nyw3ICs2NDcsNyBAQCB2b2lkIEZp
bHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UgZGVzdGluYXRpb25DbwogCiAgICAgLy8gRklYTUU6IFdlIGNhbiBhdm9pZCB0aGlzIHBvdGVu
dGlhbGx5IHVubmVjZXNzYXJ5IEltYWdlQnVmZmVyIGNvbnZlcnNpb24gYnkgYWRkaW5nCiAgICAg
Ly8gY29sb3Igc3BhY2UgdHJhbnNmb3JtIHN1cHBvcnQgZm9yIHRoZSB7cHJlLHVufW11bHRpcGxp
ZWQgYXJyYXlzLgotICAgIGltYWdlQnVmZmVyUmVzdWx0KCktPnRyYW5zZm9ybUNvbG9yU3BhY2Uo
bV9yZXN1bHRDb2xvclNwYWNlLCBkZXN0aW5hdGlvbkNvbG9yU3BhY2UpOworICAgIGltYWdlQnVm
ZmVyUmVzdWx0KCktPnRyYW5zZm9ybVRvQ29sb3JTcGFjZShkZXN0aW5hdGlvbkNvbG9yU3BhY2Up
OwogCiAgICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZGVzdGluYXRpb25Db2xvclNwYWNlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
TWFza2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXIuY3BwCmluZGV4IDc3NWNkOThlNWRlNjJhYTk3MTk4ZmEzZTBjM2ZmMWFjMmNjNjU3
NjcuLmE1YzEzNzQxNWIwYThiZDQzNzQ1MjRhN2QwMDI5YTQ0OTE5NDNhMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNr
ZXIuY3BwCkBAIC04MSw3ICs4MSw3IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFw
cGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlCiAgICAgICAg
IGlmICghbWFza2VyRGF0YS0+bWFza0ltYWdlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgICAgIGlmICghZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKG1hc2tlckRhdGEsIGNvbG9y
U3BhY2UsICZyZW5kZXJlcikpCisgICAgICAgIGlmICghZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdl
KG1hc2tlckRhdGEsICZyZW5kZXJlcikpCiAgICAgICAgICAgICBtYXNrZXJEYXRhLT5tYXNrSW1h
Z2UgPSBudWxscHRyOwogICAgIH0KIApAQCAtOTIsNyArOTIsNyBAQCBib29sIFJlbmRlclNWR1Jl
c291cmNlTWFza2VyOjphcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25z
dCBSZW5kZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlbmRlclNWR1Jlc291cmNlTWFz
a2VyOjpkcmF3Q29udGVudEludG9NYXNrSW1hZ2UoTWFza2VyRGF0YSogbWFza2VyRGF0YSwgRGVz
dGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlck9iamVjdCogb2JqZWN0KQorYm9v
bCBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKE1hc2tl
ckRhdGEqIG1hc2tlckRhdGEsIFJlbmRlck9iamVjdCogb2JqZWN0KQogewogICAgIEdyYXBoaWNz
Q29udGV4dCYgbWFza0ltYWdlQ29udGV4dCA9IG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+Y29udGV4
dCgpOwogCkBAIC0xMTgsMTIgKzExOCw2IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6
OmRyYXdDb250ZW50SW50b01hc2tJbWFnZShNYXNrZXJEYXRhKiBtYXNrZXJEYXRhLCBECiAgICAg
ICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OnJlbmRlclN1YnRyZWVUb0NvbnRleHQobWFza0ltYWdl
Q29udGV4dCwgKnJlbmRlcmVyLCBtYXNrQ29udGVudFRyYW5zZm9ybWF0aW9uKTsKICAgICB9CiAK
LSNpZiAhVVNFKENHKQotICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+dHJhbnNmb3JtQ29sb3JT
cGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IsIGNvbG9yU3BhY2UpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oY29sb3JTcGFjZSk7Ci0jZW5kaWYKLQogICAgIC8vIENyZWF0ZSB0aGUg
bHVtaW5hbmNlIG1hc2suCiAgICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5tYXNrVHlwZSgpID09
IE1hc2tUeXBlOjpMdW1pbmFuY2UpCiAgICAgICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+Y29u
dmVydFRvTHVtaW5hbmNlTWFzaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oCmluZGV4IGExZmQ4NTUyODlmOGEzZTYw
ZjQ3Yjg4ODZhYjEwMDgzODY4MWU1YTkuLjU3NDk3MTFhOGQxODU1ZDA3ZDg3N2UwZmIwNTQzYTcx
ODAyNTYyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlTWFza2VyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAg
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXIiOyB9CiAKLSAgICBib29sIGRyYXdDb250ZW50SW50b01hc2tJbWFn
ZShNYXNrZXJEYXRhKiwgRGVzdGluYXRpb25Db2xvclNwYWNlLCBSZW5kZXJPYmplY3QqKTsKKyAg
ICBib29sIGRyYXdDb250ZW50SW50b01hc2tJbWFnZShNYXNrZXJEYXRhKiwgUmVuZGVyT2JqZWN0
Kik7CiAgICAgdm9pZCBjYWxjdWxhdGVNYXNrQ29udGVudFJlcGFpbnRSZWN0KCk7CiAKICAgICBG
bG9hdFJlY3QgbV9tYXNrQ29udGVudEJvdW5kYXJpZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429511</attachid>
            <date>2021-05-24 00:49:35 -0700</date>
            <delta_ts>2021-05-24 21:01:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226108-20210524164934.patch</filename>
            <type>text/plain</type>
            <size>11020</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhkOGFlNWMwY2NmYmU3
NmM4NGI4ZWY4OGRmODFlMmQ0YWVhZTIyOS4uOGE2NTRlMDhkYWUzNjViNTdkZmJmMmI3NDU2OTRi
ZGE2MzI1Y2E0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTI0ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbmFtZSBJ
bWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZSB0byB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2Us
IGFuZCBpdCBzaG91bGQgdGFrZSBhIHNpbmdsZSBhcmd1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTA4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0
ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6dHJhbnNmb3JtVG9Db2xvclNwYWNl
KTogVGFrZSBhIHNpbmdsZSBhcmd1bWVudCAnbmV3Q29sb3JTcGFjZScuCisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRyYW5zZm9ybUNvbG9yU3BhY2UpOiBSZW5hbWVkIHRv
IHRyYW5zZm9ybVRvQ29sb3JTcGFjZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3JtVG9Db2xvclNwYWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjp0cmFuc2Zvcm1Db2xvclNwYWNlKTogUmVuYW1l
ZCB0byB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q6OnRyYW5zZm9ybVJlc3VsdENvbG9yU3BhY2UpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50SW50b01hc2tJbWFnZSk6CisgICAgICAg
IFJlbW92ZWQgJ2NvbG9yU3BhY2UnIGFyZ3VtZW50IGJlY2F1c2UgaXQgZG9lc24ndCBuZWVkIHRv
IHRyYW5zZm9ybQorICAgICAgICB0aGUgY29sb3Igc3BhY2UuCisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVm
YXVsdCBMb2NrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggZTJlMmM0NGQ2ZTIyMTNiZjFkY2Y0NTk5YTU3M2Vj
M2U2MDVjNzIzYi4uYWNmNDM1OWViMGJjODdiYzNiZGVhZDkwNTNiMmUxZGUzZmZjNTIzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1h
Z2VCdWZmZXIuaApAQCAtMTk1LDEyICsxOTUsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICB9CiAg
ICAgfQogCi0gICAgdm9pZCB0cmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9uQ29s
b3JTcGFjZSYgc3JjQ29sb3JTcGFjZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBkZXN0
Q29sb3JTcGFjZSkgb3ZlcnJpZGUKKyAgICB2b2lkIHRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb25z
dCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIG5ld0NvbG9yU3BhY2UpIG92ZXJyaWRlCiAgICAgewog
ICAgICAgICBpZiAoYXV0byogYmFja2VuZCA9IGVuc3VyZUJhY2tlbmRDcmVhdGVkKCkpIHsKICAg
ICAgICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoKTsKLSAgICAgICAgICAgIGJhY2tlbmQtPnRy
YW5zZm9ybUNvbG9yU3BhY2Uoc3JjQ29sb3JTcGFjZSwgZGVzdENvbG9yU3BhY2UpOwotICAgICAg
ICAgICAgbV9wYXJhbWV0ZXJzLmNvbG9yU3BhY2UgPSBkZXN0Q29sb3JTcGFjZTsKKyAgICAgICAg
ICAgIGJhY2tlbmQtPnRyYW5zZm9ybVRvQ29sb3JTcGFjZShuZXdDb2xvclNwYWNlKTsKKyAgICAg
ICAgICAgIG1fcGFyYW1ldGVycy5jb2xvclNwYWNlID0gbmV3Q29sb3JTcGFjZTsKICAgICAgICAg
fQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKaW5kZXggMGQ4MmViM2FkNDJkOTI1MjMyZTJiMjgwYWVkNTY2YzNlMzIyNGIwMy4uZmFl
MGVkNjQ0Y2Q3NGZkYTM5N2VlZTRlMmI2Yzc0OWU4M2YwYjk1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0xMjAsNyArMTIwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0
VG9MdW1pbmFuY2VNYXNrKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Db2xvclNw
YWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgc3JjQ29sb3JTcGFjZSwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiBkc3RDb2xvclNwYWNlKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmKSA9IDA7
CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
T3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5ID0gV1RGOjpudWxsb3B0LCBQcmVzZXJ2ZVJlc29sdXRp
b24gPSBQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBWZWN0
b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGlvbmFsPGRvdWJs
ZT4gcXVhbGl0eSA9IFdURjo6bnVsbG9wdCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaAppbmRleCAxYmE5
YTJmNDc0MzEyMGRkMWRmMDdkMmNlNTkxOTNiMjkwMjg0ZGZlLi5lNzNhMmE5ZjNiYmJlMDViODE5
MzZiNjhkOTE3YjExY2FkZGMxYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSB7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udmVydFRvTHVt
aW5hbmNlTWFzaygpOwotICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0
IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRp
b25Db2xvclNwYWNlJikgeyB9CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0b0RhdGFVUkwoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBQcmVzZXJ2ZVJlc29s
dXRpb24pIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFZlY3Rvcjx1aW50OF90PiB0b0RhdGEoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5KSBjb25zdCA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFn
ZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAKaW5kZXggZDM3ZmI2NjM3M2FhYzkz
MmE3MTQ4MjUzNDg1ZjMzNDkxMTg2ODVkNC4uOTEzMDMwZDMyZjk0YjAyYjZkNzZhZTc0MWM2YzY4
OTE4MmYzMjlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmNwcApAQCAtODks
MTkgKzg5LDE5IEBAIHZvaWQgSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OmNsaXBUb01hc2soR3Jh
cGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvCiAgICAgICAgIENhaXJvOjpjbGlw
VG9JbWFnZUJ1ZmZlcigqZGVzdENvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGltYWdlLT5wbGF0
Zm9ybUltYWdlKCkuZ2V0KCksIGRlc3RSZWN0KTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZlckNhaXJv
QmFja2VuZDo6dHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2Um
IHNyY0NvbG9yU3BhY2UsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgZGVzdENvbG9yU3Bh
Y2UpCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjp0cmFuc2Zvcm1Ub0NvbG9yU3BhY2Uo
Y29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBuZXdDb2xvclNwYWNlKQogewotICAgIGlmIChz
cmNDb2xvclNwYWNlID09IGRlc3RDb2xvclNwYWNlKQorICAgIGlmIChtX3BhcmFtZXRlcnMuY29s
b3JTcGFjZSA9PSBuZXdDb2xvclNwYWNlKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBvbmx5
IHNSR0IgPC0+IGxpbmVhclJHQiBhcmUgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnQKLSAgICBpZiAo
KHNyY0NvbG9yU3BhY2UgIT0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCKCkgJiYg
c3JjQ29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSkKLSAgICAgICAg
fHwgKGRlc3RDb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGluZWFyU1JHQigp
ICYmIGRlc3RDb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKSkKKyAg
ICBpZiAoKG1fcGFyYW1ldGVycy5jb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6
TGluZWFyU1JHQigpICYmIG1fcGFyYW1ldGVycy5jb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29s
b3JTcGFjZTo6U1JHQigpKQorICAgICAgICB8fCAobmV3Q29sb3JTcGFjZSAhPSBEZXN0aW5hdGlv
bkNvbG9yU3BhY2U6OkxpbmVhclNSR0IoKSAmJiBuZXdDb2xvclNwYWNlICE9IERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6U1JHQigpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYXJhbWV0ZXJz
LmNvbG9yU3BhY2UgPSBkZXN0Q29sb3JTcGFjZTsKKyAgICBtX3BhcmFtZXRlcnMuY29sb3JTcGFj
ZSA9IG5ld0NvbG9yU3BhY2U7CiAKLSAgICBpZiAoZGVzdENvbG9yU3BhY2UgPT0gRGVzdGluYXRp
b25Db2xvclNwYWNlOjpMaW5lYXJTUkdCKCkpIHsKKyAgICBpZiAobmV3Q29sb3JTcGFjZSA9PSBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0IoKSkgewogICAgICAgICBzdGF0aWMgY29u
c3Qgc3RkOjphcnJheTx1aW50OF90LCAyNTY+IGxpbmVhclJnYkxVVCA9IFtdIHsKICAgICAgICAg
ICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PiBhcnJheTsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCAyNTY7IGkrKykgewpAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgSW1h
Z2VCdWZmZXJDYWlyb0JhY2tlbmQ6OnRyYW5zZm9ybUNvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRp
b25Db2xvclNwYWNlJiBzCiAgICAgICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgICAgIH0oKTsK
ICAgICAgICAgcGxhdGZvcm1UcmFuc2Zvcm1Db2xvclNwYWNlKGxpbmVhclJnYkxVVCk7Ci0gICAg
fSBlbHNlIGlmIChkZXN0Q29sb3JTcGFjZSA9PSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0Io
KSkgeworICAgIH0gZWxzZSBpZiAobmV3Q29sb3JTcGFjZSA9PSBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OlNSR0IoKSkgewogICAgICAgICBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCAy
NTY+IGRldmljZVJnYkxVVD0gW10gewogICAgICAgICAgICAgc3RkOjphcnJheTx1aW50OF90LCAy
NTY+IGFycmF5OwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDI1NjsgaSsr
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaAppbmRleCBkODMwNDQ3NzUwMmMwY2E4
MWVmZjhjY2IyNzQwNWQ1OWZiOTJlOTJjLi43YjcwNzllODhhZmM2YWVjMTU5MmJkYzZiYWNmMTdj
MmZiMmY1MjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB0cmFuc2Zvcm1D
b2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgc3JjQ29sb3JTcGFjZSwgY29u
c3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBkZXN0Q29sb3JTcGFjZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikg
b3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBvdmVy
cmlkZTsKICAgICBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5j
cHAKaW5kZXggNmU5ZWUzZDQwNGE1MjFmN2M1ODJkMjlhODE0MGU3ZTY3MTM2ZDJlMC4uYzAwYjI5
MTI2NmVhY2M4NzFhODE5OTA3MjQ0ODBkZjU5ZTlhYzY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApA
QCAtNjQ3LDcgKzY0Nyw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xv
clNwYWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgZGVzdGluCiAKICAgICAvLyBGSVhN
RTogV2UgY2FuIGF2b2lkIHRoaXMgcG90ZW50aWFsbHkgdW5uZWNlc3NhcnkgSW1hZ2VCdWZmZXIg
Y29udmVyc2lvbiBieSBhZGRpbmcKICAgICAvLyBjb2xvciBzcGFjZSB0cmFuc2Zvcm0gc3VwcG9y
dCBmb3IgdGhlIHtwcmUsdW59bXVsdGlwbGllZCBhcnJheXMuCi0gICAgaW1hZ2VCdWZmZXJSZXN1
bHQoKS0+dHJhbnNmb3JtQ29sb3JTcGFjZShtX3Jlc3VsdENvbG9yU3BhY2UsIGRlc3RpbmF0aW9u
Q29sb3JTcGFjZSk7CisgICAgaW1hZ2VCdWZmZXJSZXN1bHQoKS0+dHJhbnNmb3JtVG9Db2xvclNw
YWNlKGRlc3RpbmF0aW9uQ29sb3JTcGFjZSk7CiAKICAgICBtX3Jlc3VsdENvbG9yU3BhY2UgPSBk
ZXN0aW5hdGlvbkNvbG9yU3BhY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKaW5kZXggMzgzNzNiZWZiMDE2
MDU1MGJhZWEyYTcyNDE4NGYxNGNhYzE4OGVkMi4uMzM1ZjUwNTljOTUyNTQ1OTlhNTZkODkwMjk4
YjY4NjRjNzM4OWEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBS
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6YXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiByZW5k
ZXJlciwgY29uc3QgUmVuZGUKICAgICAgICAgaWYgKCFtYXNrZXJEYXRhLT5tYXNrSW1hZ2UpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKCFkcmF3Q29udGVudEludG9N
YXNrSW1hZ2UobWFza2VyRGF0YSwgY29sb3JTcGFjZSwgJnJlbmRlcmVyKSkKKyAgICAgICAgaWYg
KCFkcmF3Q29udGVudEludG9NYXNrSW1hZ2UobWFza2VyRGF0YSwgJnJlbmRlcmVyKSkKICAgICAg
ICAgICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZSA9IG51bGxwdHI7CiAgICAgfQogCkBAIC05Miw3
ICs5Miw3IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVzb3VyY2UoUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50SW50b01hc2tJbWFnZShN
YXNrZXJEYXRhKiBtYXNrZXJEYXRhLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9y
U3BhY2UsIFJlbmRlck9iamVjdCogb2JqZWN0KQorYm9vbCBSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
cjo6ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKE1hc2tlckRhdGEqIG1hc2tlckRhdGEsIFJlbmRl
ck9iamVjdCogb2JqZWN0KQogewogICAgIEdyYXBoaWNzQ29udGV4dCYgbWFza0ltYWdlQ29udGV4
dCA9IG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+Y29udGV4dCgpOwogCkBAIC0xMTgsMTIgKzExOCw2
IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50SW50b01hc2tJbWFn
ZShNYXNrZXJEYXRhKiBtYXNrZXJEYXRhLCBjCiAgICAgICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6
OnJlbmRlclN1YnRyZWVUb0NvbnRleHQobWFza0ltYWdlQ29udGV4dCwgKnJlbmRlcmVyLCBtYXNr
Q29udGVudFRyYW5zZm9ybWF0aW9uKTsKICAgICB9CiAKLSNpZiAhVVNFKENHKQotICAgIG1hc2tl
ckRhdGEtPm1hc2tJbWFnZS0+dHJhbnNmb3JtQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OlNSR0IoKSwgY29sb3JTcGFjZSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjb2xvclNw
YWNlKTsKLSNlbmRpZgotCiAgICAgLy8gQ3JlYXRlIHRoZSBsdW1pbmFuY2UgbWFzay4KICAgICBp
ZiAoc3R5bGUoKS5zdmdTdHlsZSgpLm1hc2tUeXBlKCkgPT0gTWFza1R5cGU6Okx1bWluYW5jZSkK
ICAgICAgICAgbWFza2VyRGF0YS0+bWFza0ltYWdlLT5jb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlTWFza2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlTWFza2VyLmgKaW5kZXggYjE3ODczZjQ4OTczZDk0ZjYzYWNkMjJjOWVhMDBjYmUxYjRiMDgy
Yy4uNTc0OTcxMWE4ZDE4NTVkMDdkODc3ZTBmYjA1NDNhNzE4MDI1NjI2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIu
aApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgY2hhciogcmVuZGVyTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciI7IH0K
IAotICAgIGJvb2wgZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKE1hc2tlckRhdGEqLCBjb25zdCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBSZW5kZXJPYmplY3QqKTsKKyAgICBib29sIGRyYXdDb250
ZW50SW50b01hc2tJbWFnZShNYXNrZXJEYXRhKiwgUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBj
YWxjdWxhdGVNYXNrQ29udGVudFJlcGFpbnRSZWN0KCk7CiAKICAgICBGbG9hdFJlY3QgbV9tYXNr
Q29udGVudEJvdW5kYXJpZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>429624</attachid>
            <date>2021-05-24 20:55:07 -0700</date>
            <delta_ts>2021-05-24 20:55:07 -0700</delta_ts>
            <desc>test case</desc>
            <filename>a.svg</filename>
            <type>image/svg+xml</type>
            <size>1099</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAg
ICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAg
ICA8bGluZWFyR3JhZGllbnQgaWQ9ImdyYWQiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIx
MDAlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3Rv
cC1vcGFjaXR5OjEiIC8+CiAgICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3R5bGU9InN0b3AtY29s
b3I6YmxhY2s7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgoKICAgIDxt
YXNrIGlkPSJtc3JnYiIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHN0eWxl
PSJtYXNrLXR5cGU6bHVtaW5hbmNlO2NvbG9yLWludGVycG9sYXRpb246c1JHQiI+CiAgICAgIDxy
ZWN0IHg9Ii4xIiB5PSIuMSIgd2lkdGg9Ii44IiBoZWlnaHQ9Ii44IiBmaWxsPSJ1cmwoI2dyYWQp
Ii8+CiAgICA8L21hc2s+CiAgICA8bWFzayBpZD0ibWxpbmVhciIgbWFza0NvbnRlbnRVbml0cz0i
b2JqZWN0Qm91bmRpbmdCb3giIHN0eWxlPSJtYXNrLXR5cGU6bHVtaW5hbmNlO2NvbG9yLWludGVy
cG9sYXRpb246bGluZWFyUkdCIj4KICAgICAgPHJlY3QgeD0iLjEiIHk9Ii4xIiB3aWR0aD0iLjgi
IGhlaWdodD0iLjgiIGZpbGw9InVybCgjZ3JhZCkiLz4KICAgIDwvbWFzaz4KICA8L2RlZnM+Cgog
IDxyZWN0IHg9IjAiICAgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImJsdWUiIC8+CiAg
PHJlY3QgeD0iMCIgICB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0icmVkIiBzdHlsZT0i
bWFzazp1cmwoI21zcmdiKSIgLz4KCiAgPHJlY3QgeD0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEwMCIgZmlsbD0iYmx1ZSIgLz4KICA8cmVjdCB4PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0i
MTAwIiBmaWxsPSJyZWQiIHN0eWxlPSJtYXNrOnVybCgjbWxpbmVhcikiIC8+CgogIDx0ZXh0IHk9
IjEzMCI+cmlnaHQgKGxpbmVhclJHQikgc2hvdWxkIGJlIHNob3J0ZXIgdGhhbiBsZWZ0IChzUkdC
KTwvdGV4dD4KPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429625</attachid>
            <date>2021-05-24 21:02:00 -0700</date>
            <delta_ts>2021-05-25 22:36:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226108-20210525130159.patch</filename>
            <type>text/plain</type>
            <size>10288</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg5ZmZlMGYwYjA5ZTNk
Y2EyOGMzNmQxZTcwYjBiYmQwODcyMDMwMy4uNDYwZWY0NzBkNWU5YzBkZjQxN2U5ZDgwZDdlZTBi
NTNkY2FlYWI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTI0ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbmFtZSBJ
bWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZSB0byB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2Us
IGFuZCBpdCBzaG91bGQgdGFrZSBhIHNpbmdsZSBhcmd1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTA4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlICdzcmNDb2xvclNwYWNlJyBhcmd1bWVu
dCBvZiBJbWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZSgpCisgICAgICAgIHNob3VsZCBi
ZSByZW1vdmVkIGJlY2F1c2UgaXQgaXMgcmVkdW5kYW50IGFuZCBpdCBpcyB0aGUgc2FtZSBhcwor
ICAgICAgICBJbWFnZUJ1ZmZlcjo6Y29sb3JTcGFjZSgpLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJCYWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRyYW5z
Zm9ybVRvQ29sb3JTcGFjZSk6IFRha2UgYSBzaW5nbGUgYXJndW1lbnQgJ25ld0NvbG9yU3BhY2Un
LgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjp0cmFuc2Zvcm1Db2xvclNw
YWNlKTogUmVuYW1lZCB0byB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OnRyYW5zZm9ybVRvQ29sb3JTcGFjZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3JtQ29s
b3JTcGFjZSk6IFJlbmFtZWQgdG8gdHJhbnNmb3JtVG9Db2xvclNwYWNlLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlTWFza2VyOjphcHBseVJlc291cmNlKTogQWRkZWQg
YSBuZXcgbG9jYWwgdmFyaWFibGUgJ3JlbmRlcmluZ0NvbG9yU3BhY2UnLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50SW50b01hc2tJbWFnZSk6
CisKIDIwMjEtMDUtMjQgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IENvbnZlcnQgRGVzdGluYXRpb25Db2xvclNwYWNlIGZyb20gYW4gZW51bSB0byBjbGFzcyB3cmFw
cGluZyBhIHBsYXRmb3JtIGNvbG9yIHNwYWNlIChDR0NvbG9yU3BhY2VSZWYgZm9yIENHIHBvcnRz
LCBldGMuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29u
Y3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29u
Y3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IGUyZTJjNDRkNmUyMjEzYmYxZGNmNDU5OWE1NzNlYzNl
NjA1YzcyM2IuLmFjZjQzNTllYjBiYzg3YmMzYmRlYWQ5MDUzYjJlMWRlM2ZmYzUyMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdl
QnVmZmVyLmgKQEAgLTE5NSwxMiArMTk1LDEyIEBAIHByb3RlY3RlZDoKICAgICAgICAgfQogICAg
IH0KIAotICAgIHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlvbkNvbG9y
U3BhY2UmIHNyY0NvbG9yU3BhY2UsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgZGVzdENv
bG9yU3BhY2UpIG92ZXJyaWRlCisgICAgdm9pZCB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3Qg
RGVzdGluYXRpb25Db2xvclNwYWNlJiBuZXdDb2xvclNwYWNlKSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7CiAgICAg
ICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7Ci0gICAgICAgICAgICBiYWNrZW5kLT50cmFu
c2Zvcm1Db2xvclNwYWNlKHNyY0NvbG9yU3BhY2UsIGRlc3RDb2xvclNwYWNlKTsKLSAgICAgICAg
ICAgIG1fcGFyYW1ldGVycy5jb2xvclNwYWNlID0gZGVzdENvbG9yU3BhY2U7CisgICAgICAgICAg
ICBiYWNrZW5kLT50cmFuc2Zvcm1Ub0NvbG9yU3BhY2UobmV3Q29sb3JTcGFjZSk7CisgICAgICAg
ICAgICBtX3BhcmFtZXRlcnMuY29sb3JTcGFjZSA9IG5ld0NvbG9yU3BhY2U7CiAgICAgICAgIH0K
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5oCmluZGV4IDBkODJlYjNhZDQyZDkyNTIzMmUyYjI4MGFlZDU2NmMzZTMyMjRiMDMuLmZhZTBl
ZDY0NGNkNzRmZGEzOTdlZWU0ZTJiNmM3NDllODNmMGI5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29udmVydFRv
THVtaW5hbmNlTWFzaygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFj
ZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIHNyY0NvbG9yU3BhY2UsIGNvbnN0IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZSYgZHN0Q29sb3JTcGFjZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0
cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgPSAwOwog
CiAgICAgdmlydHVhbCBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9w
dGlvbmFsPGRvdWJsZT4gcXVhbGl0eSA9IFdURjo6bnVsbG9wdCwgUHJlc2VydmVSZXNvbHV0aW9u
ID0gUHJlc2VydmVSZXNvbHV0aW9uOjpObykgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgVmVjdG9y
PHVpbnQ4X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+
IHF1YWxpdHkgPSBXVEY6Om51bGxvcHQpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggMWJhOWEy
ZjQ3NDMxMjBkZDFkZjA3ZDJjZTU5MTkzYjI5MDI4NGRmZS4uZTczYTJhOWYzYmJiZTA1YjgxOTM2
YjY4ZDkxN2IxMWNhZGRjMWFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JikgeyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnZlcnRUb0x1bWlu
YW5jZU1hc2soKTsKLSAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9u
Q29sb3JTcGFjZSYpIHsgfQogCiAgICAgdmlydHVhbCBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgUHJlc2VydmVSZXNvbHV0
aW9uKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSkgY29uc3QgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyb0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwCmluZGV4IGQzN2ZiNjYzNzNhYWM5MzJh
NzE0ODI1MzQ4NWYzMzQ5MTE4Njg1ZDQuLmE1MmFmM2NmYmI0MjJjZDljNzU3NjE0MWYxYmE3ZDAz
NDlkMDMzNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAKQEAgLTg5LDE5
ICs4OSwxOSBAQCB2b2lkIEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjpjbGlwVG9NYXNrKEdyYXBo
aWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsbwogICAgICAgICBDYWlybzo6Y2xpcFRv
SW1hZ2VCdWZmZXIoKmRlc3RDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS0+cGxhdGZv
cm1JbWFnZSgpLmdldCgpLCBkZXN0UmVjdCk7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXJDYWlyb0Jh
Y2tlbmQ6OnRyYW5zZm9ybUNvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBz
cmNDb2xvclNwYWNlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGRlc3RDb2xvclNwYWNl
KQordm9pZCBJbWFnZUJ1ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3JtVG9Db2xvclNwYWNlKGNv
bnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgbmV3Q29sb3JTcGFjZSkKIHsKLSAgICBpZiAoc3Jj
Q29sb3JTcGFjZSA9PSBkZXN0Q29sb3JTcGFjZSkKKyAgICBpZiAobV9wYXJhbWV0ZXJzLmNvbG9y
U3BhY2UgPT0gbmV3Q29sb3JTcGFjZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gb25seSBz
UkdCIDwtPiBsaW5lYXJSR0IgYXJlIHN1cHBvcnRlZCBhdCB0aGUgbW9tZW50Ci0gICAgaWYgKChz
cmNDb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGluZWFyU1JHQigpICYmIHNy
Y0NvbG9yU3BhY2UgIT0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpCi0gICAgICAgIHx8
IChkZXN0Q29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0IoKSAm
JiBkZXN0Q29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSkpCisgICAg
aWYgKChtX3BhcmFtZXRlcnMuY29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6Okxp
bmVhclNSR0IoKSAmJiBtX3BhcmFtZXRlcnMuY29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9y
U3BhY2U6OlNSR0IoKSkKKyAgICAgICAgfHwgKG5ld0NvbG9yU3BhY2UgIT0gRGVzdGluYXRpb25D
b2xvclNwYWNlOjpMaW5lYXJTUkdCKCkgJiYgbmV3Q29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OlNSR0IoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFyYW1ldGVycy5j
b2xvclNwYWNlID0gZGVzdENvbG9yU3BhY2U7CisgICAgbV9wYXJhbWV0ZXJzLmNvbG9yU3BhY2Ug
PSBuZXdDb2xvclNwYWNlOwogCi0gICAgaWYgKGRlc3RDb2xvclNwYWNlID09IERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6TGluZWFyU1JHQigpKSB7CisgICAgaWYgKG5ld0NvbG9yU3BhY2UgPT0gRGVz
dGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCKCkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0
IHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PiBsaW5lYXJSZ2JMVVQgPSBbXSB7CiAgICAgICAgICAg
ICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4gYXJyYXk7CiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIEltYWdl
QnVmZmVyQ2Fpcm9CYWNrZW5kOjp0cmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9u
Q29sb3JTcGFjZSYgcwogICAgICAgICAgICAgcmV0dXJuIGFycmF5OwogICAgICAgICB9KCk7CiAg
ICAgICAgIHBsYXRmb3JtVHJhbnNmb3JtQ29sb3JTcGFjZShsaW5lYXJSZ2JMVVQpOwotICAgIH0g
ZWxzZSBpZiAoZGVzdENvbG9yU3BhY2UgPT0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkp
IHsKKyAgICB9IGVsc2UgewogICAgICAgICBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTx1aW50OF90
LCAyNTY+IGRldmljZVJnYkxVVD0gW10gewogICAgICAgICAgICAgc3RkOjphcnJheTx1aW50OF90
LCAyNTY+IGFycmF5OwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDI1Njsg
aSsrKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaAppbmRleCBkODMwNDQ3NzUwMmMw
Y2E4MWVmZjhjY2IyNzQwNWQ1OWZiOTJlOTJjLi43YjcwNzllODhhZmM2YWVjMTU5MmJkYzZiYWNm
MTdjMmZiMmY1MjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKQEAgLTQ0LDcg
KzQ0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB0cmFuc2Zv
cm1Db2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgc3JjQ29sb3JTcGFjZSwg
Y29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBkZXN0Q29sb3JTcGFjZSkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNl
Jikgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBv
dmVycmlkZTsKICAgICBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dC5jcHAKaW5kZXggNmU5ZWUzZDQwNGE1MjFmN2M1ODJkMjlhODE0MGU3ZTY3MTM2ZDJlMC4uYzAw
YjI5MTI2NmVhY2M4NzFhODE5OTA3MjQ0ODBkZjU5ZTlhYzY3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNw
cApAQCAtNjQ3LDcgKzY0Nyw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRD
b2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgZGVzdGluCiAKICAgICAvLyBG
SVhNRTogV2UgY2FuIGF2b2lkIHRoaXMgcG90ZW50aWFsbHkgdW5uZWNlc3NhcnkgSW1hZ2VCdWZm
ZXIgY29udmVyc2lvbiBieSBhZGRpbmcKICAgICAvLyBjb2xvciBzcGFjZSB0cmFuc2Zvcm0gc3Vw
cG9ydCBmb3IgdGhlIHtwcmUsdW59bXVsdGlwbGllZCBhcnJheXMuCi0gICAgaW1hZ2VCdWZmZXJS
ZXN1bHQoKS0+dHJhbnNmb3JtQ29sb3JTcGFjZShtX3Jlc3VsdENvbG9yU3BhY2UsIGRlc3RpbmF0
aW9uQ29sb3JTcGFjZSk7CisgICAgaW1hZ2VCdWZmZXJSZXN1bHQoKS0+dHJhbnNmb3JtVG9Db2xv
clNwYWNlKGRlc3RpbmF0aW9uQ29sb3JTcGFjZSk7CiAKICAgICBtX3Jlc3VsdENvbG9yU3BhY2Ug
PSBkZXN0aW5hdGlvbkNvbG9yU3BhY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKaW5kZXggMzgzNzNiZWZi
MDE2MDU1MGJhZWEyYTcyNDE4NGYxNGNhYzE4OGVkMi4uNzYyZTZmM2JmOWZkOTVjN2YyYzBkZjFk
ZWE5NThmYTcxYzM3YmMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKQEAgLTc1LDkgKzc1LDE0IEBAIGJv
b2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYg
cmVuZGVyZXIsIGNvbnN0IFJlbmRlCiAjZWxzZQogICAgICAgICBhdXRvIGNvbG9yU3BhY2UgPSBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKTsKICNlbmRpZgotCisjaWYgVVNFKENHKQorICAg
ICAgICBhdXRvIHJlbmRlcmluZ0NvbG9yU3BhY2UgPSBjb2xvclNwYWNlOworI2Vsc2UKKyAgICAg
ICAgYXV0byByZW5kZXJpbmdDb2xvclNwYWNlID0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdC
KCk7CisjZW5kaWYKKyAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FICgxNDk0NzApOiBUaGlzIGlt
YWdlIGJ1ZmZlciBzaG91bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkLiBN
YWtpbmcgaXQgbWF0Y2ggdGhlIGNvbnRleHQgYnJlYWtzIGFscGhhIG1hc2tpbmcsIHRob3VnaC4K
LSAgICAgICAgbWFza2VyRGF0YS0+bWFza0ltYWdlID0gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBjb2xvclNwYWNl
LCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBjb250ZXh0KTsKKyAgICAgICAgbWFza2Vy
RGF0YS0+bWFza0ltYWdlID0gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIo
cmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCByZW5kZXJpbmdDb2xvclNwYWNlLCBSZW5k
ZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBjb250ZXh0KTsKICAgICAgICAgaWYgKCFtYXNrZXJE
YXRhLT5tYXNrSW1hZ2UpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTExOSw3ICsx
MjQsNyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjpkcmF3Q29udGVudEludG9NYXNr
SW1hZ2UoTWFza2VyRGF0YSogbWFza2VyRGF0YSwgYwogICAgIH0KIAogI2lmICFVU0UoQ0cpCi0g
ICAgbWFza2VyRGF0YS0+bWFza0ltYWdlLT50cmFuc2Zvcm1Db2xvclNwYWNlKERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6U1JHQigpLCBjb2xvclNwYWNlKTsKKyAgICBtYXNrZXJEYXRhLT5tYXNrSW1h
Z2UtPnRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb2xvclNwYWNlKTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKGNvbG9yU3BhY2UpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429729</attachid>
            <date>2021-05-25 22:36:10 -0700</date>
            <delta_ts>2021-05-25 22:36:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226108-20210526143609.patch</filename>
            <type>text/plain</type>
            <size>11016</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ExMWI2YWZjN2EwZjg3
YzNjZmNjODJjOTgyNGRiMTI4MzM3MGQzNC4uZjI5M2E3ZDI0YzY1MGZkYzkwZjc5NzFkMjE1NDgx
NmY4YmRiMzk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTI1ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbmFtZSBJ
bWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZSB0byB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2Us
IGFuZCBpdCBzaG91bGQgdGFrZSBhIHNpbmdsZSBhcmd1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTA4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2FpZCBBYm91LUhhbGxhd2EuCisKKyAgICAgICAgVGhlICdzcmNDb2xvclNwYWNlJyBhcmd1
bWVudCBvZiBJbWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZSgpCisgICAgICAgIHNob3Vs
ZCBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaXMgcmVkdW5kYW50IGFuZCBpdCBpcyB0aGUgc2FtZSBh
cworICAgICAgICBJbWFnZUJ1ZmZlcjo6Y29sb3JTcGFjZSgpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJCYWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRy
YW5zZm9ybVRvQ29sb3JTcGFjZSk6IFRha2UgYSBzaW5nbGUgYXJndW1lbnQgJ25ld0NvbG9yU3Bh
Y2UnLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjp0cmFuc2Zvcm1Db2xv
clNwYWNlKTogUmVuYW1lZCB0byB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OnRyYW5zZm9ybVRvQ29sb3JTcGFj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3Jt
Q29sb3JTcGFjZSk6IFJlbmFtZWQgdG8gdHJhbnNmb3JtVG9Db2xvclNwYWNlLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlTWFza2VyOjphcHBseVJlc291cmNlKTogQWRk
ZWQgYSBuZXcgbG9jYWwgdmFyaWFibGUgJ3JlbmRlcmluZ0NvbG9yU3BhY2UnLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50SW50b01hc2tJbWFn
ZSk6CisKIDIwMjEtMDUtMjUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAg
ICAgIFN1cHBvcnQgYnl0ZSBjb21wb25lbnRzIGZvciBhbGwgYm91bmRlZCBSR0IgY29sb3IgdHlw
ZXMsIG5vdCBqdXN0IFNSR0JBCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggZTJlMmM0NGQ2ZTIyMTNiZjFkY2Y0
NTk5YTU3M2VjM2U2MDVjNzIzYi4uYWNmNDM1OWViMGJjODdiYzNiZGVhZDkwNTNiMmUxZGUzZmZj
NTIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3Jl
dGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAtMTk1LDEyICsxOTUsMTIgQEAgcHJvdGVjdGVkOgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgdm9pZCB0cmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZSYgc3JjQ29sb3JTcGFjZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNw
YWNlJiBkZXN0Q29sb3JTcGFjZSkgb3ZlcnJpZGUKKyAgICB2b2lkIHRyYW5zZm9ybVRvQ29sb3JT
cGFjZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIG5ld0NvbG9yU3BhY2UpIG92ZXJyaWRl
CiAgICAgewogICAgICAgICBpZiAoYXV0byogYmFja2VuZCA9IGVuc3VyZUJhY2tlbmRDcmVhdGVk
KCkpIHsKICAgICAgICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoKTsKLSAgICAgICAgICAgIGJh
Y2tlbmQtPnRyYW5zZm9ybUNvbG9yU3BhY2Uoc3JjQ29sb3JTcGFjZSwgZGVzdENvbG9yU3BhY2Up
OwotICAgICAgICAgICAgbV9wYXJhbWV0ZXJzLmNvbG9yU3BhY2UgPSBkZXN0Q29sb3JTcGFjZTsK
KyAgICAgICAgICAgIGJhY2tlbmQtPnRyYW5zZm9ybVRvQ29sb3JTcGFjZShuZXdDb2xvclNwYWNl
KTsKKyAgICAgICAgICAgIG1fcGFyYW1ldGVycy5jb2xvclNwYWNlID0gbmV3Q29sb3JTcGFjZTsK
ICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKaW5kZXggMGQ4MmViM2FkNDJkOTI1MjMyZTJiMjgwYWVkNTY2YzNlMzIy
NGIwMy4uZmFlMGVkNjQ0Y2Q3NGZkYTM5N2VlZTRlMmI2Yzc0OWU4M2YwYjk1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0xMjAsNyAr
MTIwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zv
cm1Db2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgc3JjQ29sb3JTcGFjZSwg
Y29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBkc3RDb2xvclNwYWNlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UmKSA9IDA7CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5ID0gV1RGOjpudWxsb3B0LCBQcmVzZXJ2
ZVJlc29sdXRpb24gPSBQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGlv
bmFsPGRvdWJsZT4gcXVhbGl0eSA9IFdURjo6bnVsbG9wdCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaApp
bmRleCAxYmE5YTJmNDc0MzEyMGRkMWRmMDdkMmNlNTkxOTNiMjkwMjg0ZGZlLi5lNzNhMmE5ZjNi
YmJlMDViODE5MzZiNjhkOTE3YjExY2FkZGMxYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaApAQCAtMTAyLDcgKzEw
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmKSB7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29u
dmVydFRvTHVtaW5hbmNlTWFzaygpOwotICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Db2xvclNw
YWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JT
cGFjZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3Qg
RGVzdGluYXRpb25Db2xvclNwYWNlJikgeyB9CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0b0RhdGFV
UkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBQcmVz
ZXJ2ZVJlc29sdXRpb24pIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFZlY3Rvcjx1aW50OF90PiB0
b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5KSBj
b25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAKaW5kZXggYTU4ZGRi
OTY4Mjc1MmU3OTUwMGYzMjJiYzUzY2YwNGQ2MDcwM2M3ZC4uZDJjODllNGFhOTRjZGVjMGMzMWM3
YjkzM2Y2MzM5YWVhNTg1Mjk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmNw
cApAQCAtODksMTkgKzg5LDE5IEBAIHZvaWQgSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OmNsaXBU
b01hc2soR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvCiAgICAgICAgIENh
aXJvOjpjbGlwVG9JbWFnZUJ1ZmZlcigqZGVzdENvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGlt
YWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIGRlc3RSZWN0KTsKIH0KIAotdm9pZCBJbWFnZUJ1
ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2UmIHNyY0NvbG9yU3BhY2UsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgZGVz
dENvbG9yU3BhY2UpCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjp0cmFuc2Zvcm1Ub0Nv
bG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBuZXdDb2xvclNwYWNlKQogewot
ICAgIGlmIChzcmNDb2xvclNwYWNlID09IGRlc3RDb2xvclNwYWNlKQorICAgIGlmIChtX3BhcmFt
ZXRlcnMuY29sb3JTcGFjZSA9PSBuZXdDb2xvclNwYWNlKQogICAgICAgICByZXR1cm47CiAKICAg
ICAvLyBvbmx5IHNSR0IgPC0+IGxpbmVhclJHQiBhcmUgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnQK
LSAgICBpZiAoKHNyY0NvbG9yU3BhY2UgIT0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJT
UkdCKCkgJiYgc3JjQ29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSkK
LSAgICAgICAgfHwgKGRlc3RDb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGlu
ZWFyU1JHQigpICYmIGRlc3RDb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JH
QigpKSkKKyAgICBpZiAoKG1fcGFyYW1ldGVycy5jb2xvclNwYWNlICE9IERlc3RpbmF0aW9uQ29s
b3JTcGFjZTo6TGluZWFyU1JHQigpICYmIG1fcGFyYW1ldGVycy5jb2xvclNwYWNlICE9IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKQorICAgICAgICB8fCAobmV3Q29sb3JTcGFjZSAhPSBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0IoKSAmJiBuZXdDb2xvclNwYWNlICE9IERl
c3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9w
YXJhbWV0ZXJzLmNvbG9yU3BhY2UgPSBkZXN0Q29sb3JTcGFjZTsKKyAgICBtX3BhcmFtZXRlcnMu
Y29sb3JTcGFjZSA9IG5ld0NvbG9yU3BhY2U7CiAKLSAgICBpZiAoZGVzdENvbG9yU3BhY2UgPT0g
RGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCKCkpIHsKKyAgICBpZiAobmV3Q29sb3JT
cGFjZSA9PSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0IoKSkgewogICAgICAgICBz
dGF0aWMgY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCAyNTY+IGxpbmVhclJnYkxVVCA9IFtdIHsK
ICAgICAgICAgICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PiBhcnJheTsKICAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyNTY7IGkrKykgewpAQCAtMTEyLDcgKzExMiw3IEBA
IHZvaWQgSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OnRyYW5zZm9ybUNvbG9yU3BhY2UoY29uc3Qg
RGVzdGluYXRpb25Db2xvclNwYWNlJiBzCiAgICAgICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAg
ICAgIH0oKTsKICAgICAgICAgcGxhdGZvcm1UcmFuc2Zvcm1Db2xvclNwYWNlKGxpbmVhclJnYkxV
VCk7Ci0gICAgfSBlbHNlIGlmIChkZXN0Q29sb3JTcGFjZSA9PSBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OlNSR0IoKSkgeworICAgIH0gZWxzZSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzdGQ6OmFy
cmF5PHVpbnQ4X3QsIDI1Nj4gZGV2aWNlUmdiTFVUPSBbXSB7CiAgICAgICAgICAgICBzdGQ6OmFy
cmF5PHVpbnQ4X3QsIDI1Nj4gYXJyYXk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgMjU2OyBpKyspIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCmluZGV4IGQ4
MzA0NDc3NTAyYzBjYTgxZWZmOGNjYjI3NDA1ZDU5ZmI5MmU5MmMuLjdiNzA3OWU4OGFmYzZhZWMx
NTkyYmRjNmJhY2YxN2MyZmIyZjUyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQu
aApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsaXBUb01hc2soR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkgb3ZlcnJpZGU7CiAKLSAgICB2
b2lkIHRyYW5zZm9ybUNvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBzcmND
b2xvclNwYWNlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGRlc3RDb2xvclNwYWNlKSBv
dmVycmlkZTsKKyAgICB2b2lkIHRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UmKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyB0b0RhdGFVUkwoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBQcmVzZXJ2ZVJlc29sdXRp
b24pIGNvbnN0IG92ZXJyaWRlOwogICAgIFZlY3Rvcjx1aW50OF90PiB0b0RhdGEoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5KSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyRWZmZWN0LmNwcAppbmRleCA2ZTllZTNkNDA0YTUyMWY3YzU4MmQyOWE4MTQwZTdlNjcx
MzZkMmUwLi5jMDBiMjkxMjY2ZWFjYzg3MWE4MTk5MDcyNDQ4MGRmNTllOWFjNjc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJFZmZlY3QuY3BwCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBGaWx0ZXJFZmZlY3Q6OnRyYW5z
Zm9ybVJlc3VsdENvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBkZXN0aW4K
IAogICAgIC8vIEZJWE1FOiBXZSBjYW4gYXZvaWQgdGhpcyBwb3RlbnRpYWxseSB1bm5lY2Vzc2Fy
eSBJbWFnZUJ1ZmZlciBjb252ZXJzaW9uIGJ5IGFkZGluZwogICAgIC8vIGNvbG9yIHNwYWNlIHRy
YW5zZm9ybSBzdXBwb3J0IGZvciB0aGUge3ByZSx1bn1tdWx0aXBsaWVkIGFycmF5cy4KLSAgICBp
bWFnZUJ1ZmZlclJlc3VsdCgpLT50cmFuc2Zvcm1Db2xvclNwYWNlKG1fcmVzdWx0Q29sb3JTcGFj
ZSwgZGVzdGluYXRpb25Db2xvclNwYWNlKTsKKyAgICBpbWFnZUJ1ZmZlclJlc3VsdCgpLT50cmFu
c2Zvcm1Ub0NvbG9yU3BhY2UoZGVzdGluYXRpb25Db2xvclNwYWNlKTsKIAogICAgIG1fcmVzdWx0
Q29sb3JTcGFjZSA9IGRlc3RpbmF0aW9uQ29sb3JTcGFjZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAppbmRl
eCAzODM3M2JlZmIwMTYwNTUwYmFlYTJhNzI0MTg0ZjE0Y2FjMTg4ZWQyLi41N2ZlOWZjZTg5MDVm
ZDY0NmY4YjU5OTY2MjcwN2I2OGRjYjY0OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcApAQCAtNzAsMTgg
KzcwLDI0IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVzb3VyY2UoUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlCiAgICAgaWYgKCFtYXNrZXJEYXRhLT5t
YXNrSW1hZ2UgJiYgIXJlcGFpbnRSZWN0LmlzRW1wdHkoKSkgewogICAgICAgICBjb25zdCBTVkdS
ZW5kZXJTdHlsZSYgc3ZnU3R5bGUgPSBzdHlsZSgpLnN2Z1N0eWxlKCk7CiAKKyAgICAgICAgYXV0
byBtYXNrQ29sb3JTcGFjZSA9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpOworICAgICAg
ICBhdXRvIGRyYXdDb2xvclNwYWNlID0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCk7CisK
ICNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IpCi0gICAgICAg
IGF1dG8gY29sb3JTcGFjZSA9IHN2Z1N0eWxlLmNvbG9ySW50ZXJwb2xhdGlvbigpID09IENvbG9y
SW50ZXJwb2xhdGlvbjo6TGluZWFyUkdCID8gRGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJT
UkdCKCkgOiBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKTsKLSNlbHNlCi0gICAgICAgIGF1
dG8gY29sb3JTcGFjZSA9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpOworICAgICAgICBp
ZiAoc3ZnU3R5bGUuY29sb3JJbnRlcnBvbGF0aW9uKCkgPT0gQ29sb3JJbnRlcnBvbGF0aW9uOjpM
aW5lYXJSR0IpIHsKKyNpZiBVU0UoQ0cpCisgICAgICAgICAgICBtYXNrQ29sb3JTcGFjZSA9IERl
c3RpbmF0aW9uQ29sb3JTcGFjZTo6TGluZWFyU1JHQigpOworI2VuZGlmICAgICAgCisgICAgICAg
ICAgICBkcmF3Q29sb3JTcGFjZSA9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGluZWFyU1JHQigp
OworICAgICAgICB9CiAjZW5kaWYKLQorICAgICAgICAKICAgICAgICAgLy8gRklYTUUgKDE0OTQ3
MCk6IFRoaXMgaW1hZ2UgYnVmZmVyIHNob3VsZCBub3QgYmUgdW5jb25kaXRpb25hbGx5IHVuYWNj
ZWxlcmF0ZWQuIE1ha2luZyBpdCBtYXRjaCB0aGUgY29udGV4dCBicmVha3MgYWxwaGEgbWFza2lu
ZywgdGhvdWdoLgotICAgICAgICBtYXNrZXJEYXRhLT5tYXNrSW1hZ2UgPSBTVkdSZW5kZXJpbmdD
b250ZXh0OjpjcmVhdGVJbWFnZUJ1ZmZlcihyZXBhaW50UmVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0s
IGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIGNvbnRleHQpOworICAg
ICAgICBtYXNrZXJEYXRhLT5tYXNrSW1hZ2UgPSBTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJ
bWFnZUJ1ZmZlcihyZXBhaW50UmVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0sIG1hc2tDb2xvclNwYWNl
LCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBjb250ZXh0KTsKICAgICAgICAgaWYgKCFt
YXNrZXJEYXRhLT5tYXNrSW1hZ2UpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAg
ICAgaWYgKCFkcmF3Q29udGVudEludG9NYXNrSW1hZ2UobWFza2VyRGF0YSwgY29sb3JTcGFjZSwg
JnJlbmRlcmVyKSkKKyAgICAgICAgaWYgKCFkcmF3Q29udGVudEludG9NYXNrSW1hZ2UobWFza2Vy
RGF0YSwgZHJhd0NvbG9yU3BhY2UsICZyZW5kZXJlcikpCiAgICAgICAgICAgICBtYXNrZXJEYXRh
LT5tYXNrSW1hZ2UgPSBudWxscHRyOwogICAgIH0KIApAQCAtMTE5LDcgKzEyNSw3IEBAIGJvb2wg
UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50SW50b01hc2tJbWFnZShNYXNrZXJE
YXRhKiBtYXNrZXJEYXRhLCBjCiAgICAgfQogCiAjaWYgIVVTRShDRykKLSAgICBtYXNrZXJEYXRh
LT5tYXNrSW1hZ2UtPnRyYW5zZm9ybUNvbG9yU3BhY2UoRGVzdGluYXRpb25Db2xvclNwYWNlOjpT
UkdCKCksIGNvbG9yU3BhY2UpOworICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+dHJhbnNmb3Jt
VG9Db2xvclNwYWNlKGNvbG9yU3BhY2UpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY29sb3JT
cGFjZSk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429731</attachid>
            <date>2021-05-25 23:01:59 -0700</date>
            <delta_ts>2021-05-25 23:01:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226108-20210526150158.patch</filename>
            <type>text/plain</type>
            <size>11214</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ExMWI2YWZjN2EwZjg3
YzNjZmNjODJjOTgyNGRiMTI4MzM3MGQzNC4uZjRlZGExZTBkZDNkYzQ2MzZiNTIzODRkNzJjOWI5
ZTMwNzI1OTU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA1LTI1ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbmFtZSBJ
bWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZSB0byB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2Us
IGFuZCBpdCBzaG91bGQgdGFrZSBhIHNpbmdsZSBhcmd1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTA4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2FpZCBBYm91LUhhbGxhd2EuCisKKyAgICAgICAgVGhlICdzcmNDb2xvclNwYWNlJyBhcmd1
bWVudCBvZiBJbWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZSgpCisgICAgICAgIHNob3Vs
ZCBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaXMgcmVkdW5kYW50IGFuZCBpdCBpcyB0aGUgc2FtZSBh
cworICAgICAgICBJbWFnZUJ1ZmZlcjo6Y29sb3JTcGFjZSgpLgorCisgICAgICAgIFJlbmRlclNW
R1Jlc291cmNlTWFza2VyOjphcHBseVJlc291cmNlIGNyZWF0ZXMgYSBpbWFnZSBidWZmZXIgZm9y
CisgICAgICAgIGEgbWFzayBpbWFnZS4gSW4gQ2Fpcm8sIHJlbmRlcmluZyBoYXBwZW5zIGluIHNS
R0IgY29sb3Igc3BhY2UuIFNvLAorICAgICAgICBjcmVhdGUgYSBpbWFnZSBidWZmZXIgaW4gc1JH
QiwgdGhlbiByZW5kZXJzIHRoZSBjb250ZW50IGFuZAorICAgICAgICB0cmFuc2Zvcm1zIHRvIGxp
bmVhciBzUkdCLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1
ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRyYW5zZm9ybVRvQ29sb3JTcGFjZSk6IFRha2Ug
YSBzaW5nbGUgYXJndW1lbnQgJ25ld0NvbG9yU3BhY2UnLgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VCdWZmZXJCYWNrZW5kOjp0cmFuc2Zvcm1Db2xvclNwYWNlKTogUmVuYW1lZCB0byB0cmFuc2Zv
cm1Ub0NvbG9yU3BhY2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyb0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDYWly
b0JhY2tlbmQ6OnRyYW5zZm9ybVRvQ29sb3JTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3JtQ29sb3JTcGFjZSk6IFJlbmFtZWQgdG8gdHJh
bnNmb3JtVG9Db2xvclNwYWNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0Ojp0
cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlTWFza2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291
cmNlTWFza2VyOjphcHBseVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jl
c291cmNlTWFza2VyOjpkcmF3Q29udGVudEludG9NYXNrSW1hZ2UpOgorCiAyMDIxLTA1LTI1ICBT
YW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGJ5dGUgY29t
cG9uZW50cyBmb3IgYWxsIGJvdW5kZWQgUkdCIGNvbG9yIHR5cGVzLCBub3QganVzdCBTUkdCQQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oCmluZGV4IGUyZTJjNDRkNmUyMjEzYmYxZGNmNDU5OWE1NzNlYzNlNjA1YzcyM2Iu
LmFjZjQzNTllYjBiYzg3YmMzYmRlYWQ5MDUzYjJlMWRlM2ZmYzUyMzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgK
QEAgLTE5NSwxMiArMTk1LDEyIEBAIHByb3RlY3RlZDoKICAgICAgICAgfQogICAgIH0KIAotICAg
IHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIHNy
Y0NvbG9yU3BhY2UsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgZGVzdENvbG9yU3BhY2Up
IG92ZXJyaWRlCisgICAgdm9pZCB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRp
b25Db2xvclNwYWNlJiBuZXdDb2xvclNwYWNlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYg
KGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7CiAgICAgICAgICAgICBm
bHVzaERyYXdpbmdDb250ZXh0KCk7Ci0gICAgICAgICAgICBiYWNrZW5kLT50cmFuc2Zvcm1Db2xv
clNwYWNlKHNyY0NvbG9yU3BhY2UsIGRlc3RDb2xvclNwYWNlKTsKLSAgICAgICAgICAgIG1fcGFy
YW1ldGVycy5jb2xvclNwYWNlID0gZGVzdENvbG9yU3BhY2U7CisgICAgICAgICAgICBiYWNrZW5k
LT50cmFuc2Zvcm1Ub0NvbG9yU3BhY2UobmV3Q29sb3JTcGFjZSk7CisgICAgICAgICAgICBtX3Bh
cmFtZXRlcnMuY29sb3JTcGFjZSA9IG5ld0NvbG9yU3BhY2U7CiAgICAgICAgIH0KICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4
IDBkODJlYjNhZDQyZDkyNTIzMmUyYjI4MGFlZDU2NmMzZTMyMjRiMDMuLmZhZTBlZDY0NGNkNzRm
ZGEzOTdlZWU0ZTJiNmM3NDllODNmMGI5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29udmVydFRvTHVtaW5hbmNl
TWFzaygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UmIHNyY0NvbG9yU3BhY2UsIGNvbnN0IERlc3RpbmF0aW9uQ29s
b3JTcGFjZSYgZHN0Q29sb3JTcGFjZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1U
b0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgPSAwOwogCiAgICAgdmly
dHVhbCBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGlvbmFsPGRv
dWJsZT4gcXVhbGl0eSA9IFdURjo6bnVsbG9wdCwgUHJlc2VydmVSZXNvbHV0aW9uID0gUHJlc2Vy
dmVSZXNvbHV0aW9uOjpObykgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgVmVjdG9yPHVpbnQ4X3Q+
IHRvRGF0YShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+IHF1YWxpdHkg
PSBXVEY6Om51bGxvcHQpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggMWJhOWEyZjQ3NDMxMjBk
ZDFkZjA3ZDJjZTU5MTkzYjI5MDI4NGRmZS4uZTczYTJhOWYzYmJiZTA1YjgxOTM2YjY4ZDkxN2Ix
MWNhZGRjMWFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JikgeyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnZlcnRUb0x1bWluYW5jZU1hc2so
KTsKLSAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UmLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgdHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFj
ZSYpIHsgfQogCiAgICAgdmlydHVhbCBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWly
b0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwCmluZGV4IGE1OGRkYjk2ODI3NTJlNzk1MDBmMzIyYmM1
M2NmMDRkNjA3MDNjN2QuLmQyYzg5ZTRhYTk0Y2RlYzBjMzFjN2I5MzNmNjMzOWFlYTU4NTI5ODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdl
QnVmZmVyQ2Fpcm9CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAKQEAgLTg5LDE5ICs4OSwxOSBA
QCB2b2lkIEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjpjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4
dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsbwogICAgICAgICBDYWlybzo6Y2xpcFRvSW1hZ2VCdWZm
ZXIoKmRlc3RDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS0+cGxhdGZvcm1JbWFnZSgp
LmdldCgpLCBkZXN0UmVjdCk7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OnRy
YW5zZm9ybUNvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBzcmNDb2xvclNw
YWNlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGRlc3RDb2xvclNwYWNlKQordm9pZCBJ
bWFnZUJ1ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbnN0IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZSYgbmV3Q29sb3JTcGFjZSkKIHsKLSAgICBpZiAoc3JjQ29sb3JTcGFj
ZSA9PSBkZXN0Q29sb3JTcGFjZSkKKyAgICBpZiAobV9wYXJhbWV0ZXJzLmNvbG9yU3BhY2UgPT0g
bmV3Q29sb3JTcGFjZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gb25seSBzUkdCIDwtPiBs
aW5lYXJSR0IgYXJlIHN1cHBvcnRlZCBhdCB0aGUgbW9tZW50Ci0gICAgaWYgKChzcmNDb2xvclNw
YWNlICE9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGluZWFyU1JHQigpICYmIHNyY0NvbG9yU3Bh
Y2UgIT0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpCi0gICAgICAgIHx8IChkZXN0Q29s
b3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0IoKSAmJiBkZXN0Q29s
b3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSkpCisgICAgaWYgKChtX3Bh
cmFtZXRlcnMuY29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0Io
KSAmJiBtX3BhcmFtZXRlcnMuY29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNS
R0IoKSkKKyAgICAgICAgfHwgKG5ld0NvbG9yU3BhY2UgIT0gRGVzdGluYXRpb25Db2xvclNwYWNl
OjpMaW5lYXJTUkdCKCkgJiYgbmV3Q29sb3JTcGFjZSAhPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6
OlNSR0IoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFyYW1ldGVycy5jb2xvclNwYWNl
ID0gZGVzdENvbG9yU3BhY2U7CisgICAgbV9wYXJhbWV0ZXJzLmNvbG9yU3BhY2UgPSBuZXdDb2xv
clNwYWNlOwogCi0gICAgaWYgKGRlc3RDb2xvclNwYWNlID09IERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6TGluZWFyU1JHQigpKSB7CisgICAgaWYgKG5ld0NvbG9yU3BhY2UgPT0gRGVzdGluYXRpb25D
b2xvclNwYWNlOjpMaW5lYXJTUkdCKCkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHN0ZDo6YXJy
YXk8dWludDhfdCwgMjU2PiBsaW5lYXJSZ2JMVVQgPSBbXSB7CiAgICAgICAgICAgICBzdGQ6OmFy
cmF5PHVpbnQ4X3QsIDI1Nj4gYXJyYXk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgMjU2OyBpKyspIHsKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIEltYWdlQnVmZmVyQ2Fp
cm9CYWNrZW5kOjp0cmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFj
ZSYgcwogICAgICAgICAgICAgcmV0dXJuIGFycmF5OwogICAgICAgICB9KCk7CiAgICAgICAgIHBs
YXRmb3JtVHJhbnNmb3JtQ29sb3JTcGFjZShsaW5lYXJSZ2JMVVQpOwotICAgIH0gZWxzZSBpZiAo
ZGVzdENvbG9yU3BhY2UgPT0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpIHsKKyAgICB9
IGVsc2UgewogICAgICAgICBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCAyNTY+IGRl
dmljZVJnYkxVVD0gW10gewogICAgICAgICAgICAgc3RkOjphcnJheTx1aW50OF90LCAyNTY+IGFy
cmF5OwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDI1NjsgaSsrKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaAppbmRleCBkODMwNDQ3NzUwMmMwY2E4MWVmZjhj
Y2IyNzQwNWQ1OWZiOTJlOTJjLi43YjcwNzllODhhZmM2YWVjMTU5MmJkYzZiYWNmMTdjMmZiMmY1
MjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKQEAgLTQ0LDcgKzQ0LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB0cmFuc2Zvcm1Db2xvclNw
YWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgc3JjQ29sb3JTcGFjZSwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiBkZXN0Q29sb3JTcGFjZSkgb3ZlcnJpZGU7CisgICAgdm9pZCB0
cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgb3ZlcnJp
ZGU7CiAKICAgICBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGlv
bmFsPGRvdWJsZT4gcXVhbGl0eSwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBvdmVycmlkZTsK
ICAgICBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGlv
bmFsPGRvdWJsZT4gcXVhbGl0eSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5k
ZXggNmU5ZWUzZDQwNGE1MjFmN2M1ODJkMjlhODE0MGU3ZTY3MTM2ZDJlMC4uYzAwYjI5MTI2NmVh
Y2M4NzFhODE5OTA3MjQ0ODBkZjU5ZTlhYzY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtNjQ3
LDcgKzY0Nyw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNl
KGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgZGVzdGluCiAKICAgICAvLyBGSVhNRTogV2Ug
Y2FuIGF2b2lkIHRoaXMgcG90ZW50aWFsbHkgdW5uZWNlc3NhcnkgSW1hZ2VCdWZmZXIgY29udmVy
c2lvbiBieSBhZGRpbmcKICAgICAvLyBjb2xvciBzcGFjZSB0cmFuc2Zvcm0gc3VwcG9ydCBmb3Ig
dGhlIHtwcmUsdW59bXVsdGlwbGllZCBhcnJheXMuCi0gICAgaW1hZ2VCdWZmZXJSZXN1bHQoKS0+
dHJhbnNmb3JtQ29sb3JTcGFjZShtX3Jlc3VsdENvbG9yU3BhY2UsIGRlc3RpbmF0aW9uQ29sb3JT
cGFjZSk7CisgICAgaW1hZ2VCdWZmZXJSZXN1bHQoKS0+dHJhbnNmb3JtVG9Db2xvclNwYWNlKGRl
c3RpbmF0aW9uQ29sb3JTcGFjZSk7CiAKICAgICBtX3Jlc3VsdENvbG9yU3BhY2UgPSBkZXN0aW5h
dGlvbkNvbG9yU3BhY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKaW5kZXggMzgzNzNiZWZiMDE2MDU1MGJh
ZWEyYTcyNDE4NGYxNGNhYzE4OGVkMi4uYmFkNTVkNzg5ZjA3ZGQ3ZGMwNDVkNjEzNmZmZjJhNzcw
N2IzZGRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZU1hc2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKQEAgLTcwLDE4ICs3MCwyNCBAQCBib29sIFJlbmRl
clNWR1Jlc291cmNlTWFza2VyOjphcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVy
LCBjb25zdCBSZW5kZQogICAgIGlmICghbWFza2VyRGF0YS0+bWFza0ltYWdlICYmICFyZXBhaW50
UmVjdC5pc0VtcHR5KCkpIHsKICAgICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUmIHN2Z1N0eWxl
ID0gc3R5bGUoKS5zdmdTdHlsZSgpOwogCisgICAgICAgIGF1dG8gbWFza0NvbG9yU3BhY2UgPSBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKTsKKyAgICAgICAgYXV0byBkcmF3Q29sb3JTcGFj
ZSA9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpOworCiAjaWYgRU5BQkxFKERFU1RJTkFU
SU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQotICAgICAgICBhdXRvIGNvbG9yU3BhY2UgPSBz
dmdTdHlsZS5jb2xvckludGVycG9sYXRpb24oKSA9PSBDb2xvckludGVycG9sYXRpb246OkxpbmVh
clJHQiA/IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGluZWFyU1JHQigpIDogRGVzdGluYXRpb25D
b2xvclNwYWNlOjpTUkdCKCk7Ci0jZWxzZQotICAgICAgICBhdXRvIGNvbG9yU3BhY2UgPSBEZXN0
aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKTsKKyAgICAgICAgaWYgKHN2Z1N0eWxlLmNvbG9ySW50
ZXJwb2xhdGlvbigpID09IENvbG9ySW50ZXJwb2xhdGlvbjo6TGluZWFyUkdCKSB7CisjaWYgVVNF
KENHKQorICAgICAgICAgICAgbWFza0NvbG9yU3BhY2UgPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6
OkxpbmVhclNSR0IoKTsKKyNlbmRpZiAgICAgIAorICAgICAgICAgICAgZHJhd0NvbG9yU3BhY2Ug
PSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0IoKTsKKyAgICAgICAgfQogI2VuZGlm
CiAKICAgICAgICAgLy8gRklYTUUgKDE0OTQ3MCk6IFRoaXMgaW1hZ2UgYnVmZmVyIHNob3VsZCBu
b3QgYmUgdW5jb25kaXRpb25hbGx5IHVuYWNjZWxlcmF0ZWQuIE1ha2luZyBpdCBtYXRjaCB0aGUg
Y29udGV4dCBicmVha3MgYWxwaGEgbWFza2luZywgdGhvdWdoLgotICAgICAgICBtYXNrZXJEYXRh
LT5tYXNrSW1hZ2UgPSBTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJbWFnZUJ1ZmZlcihyZXBh
aW50UmVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0sIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGU6OlVu
YWNjZWxlcmF0ZWQsIGNvbnRleHQpOworICAgICAgICBtYXNrZXJEYXRhLT5tYXNrSW1hZ2UgPSBT
VkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJbWFnZUJ1ZmZlcihyZXBhaW50UmVjdCwgYWJzb2x1
dGVUcmFuc2Zvcm0sIG1hc2tDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVk
LCBjb250ZXh0KTsKICAgICAgICAgaWYgKCFtYXNrZXJEYXRhLT5tYXNrSW1hZ2UpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKCFkcmF3Q29udGVudEludG9NYXNrSW1h
Z2UobWFza2VyRGF0YSwgY29sb3JTcGFjZSwgJnJlbmRlcmVyKSkKKyAgICAgICAgaWYgKCFkcmF3
Q29udGVudEludG9NYXNrSW1hZ2UobWFza2VyRGF0YSwgZHJhd0NvbG9yU3BhY2UsICZyZW5kZXJl
cikpCiAgICAgICAgICAgICBtYXNrZXJEYXRhLT5tYXNrSW1hZ2UgPSBudWxscHRyOwogICAgIH0K
IApAQCAtMTE5LDcgKzEyNSw3IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdD
b250ZW50SW50b01hc2tJbWFnZShNYXNrZXJEYXRhKiBtYXNrZXJEYXRhLCBjCiAgICAgfQogCiAj
aWYgIVVTRShDRykKLSAgICBtYXNrZXJEYXRhLT5tYXNrSW1hZ2UtPnRyYW5zZm9ybUNvbG9yU3Bh
Y2UoRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIGNvbG9yU3BhY2UpOworICAgIG1hc2tl
ckRhdGEtPm1hc2tJbWFnZS0+dHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbG9yU3BhY2UpOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0oY29sb3JTcGFjZSk7CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>