<?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>227519</bug_id>
          
          <creation_ts>2021-06-29 23:33:33 -0700</creation_ts>
          <short_desc>[GPU Process] Canvas image rendering can render arbitrary DOM content in the GPU process, which is against policy (for now)</short_desc>
          <delta_ts>2022-02-16 12:44:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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=227550</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=227748</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=231001</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fujii</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>heycam</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1773666</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-29 23:33:33 -0700</bug_when>
    <thetext>[GPU Process] Canvas image rendering can render arbitrary DOM content in the GPU process, which is against policy (for now)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773667</commentid>
    <comment_count>1</comment_count>
      <attachid>432568</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-29 23:34:33 -0700</bug_when>
    <thetext>Created attachment 432568
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773668</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-29 23:34:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/76678163&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773871</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-30 13:29:52 -0700</bug_when>
    <thetext>The test failure might be rdar://77527267</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773872</commentid>
    <comment_count>4</comment_count>
      <attachid>432622</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-30 13:42:08 -0700</bug_when>
    <thetext>Created attachment 432622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773910</commentid>
    <comment_count>5</comment_count>
      <attachid>432622</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-30 15:38:09 -0700</bug_when>
    <thetext>Comment on attachment 432622
Patch

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

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:284
&gt; +            return ImageDrawResult::DidDraw;

I should probably add

    if (imageObserver())
        imageObserver()-&gt;didDraw(*this);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775024</commentid>
    <comment_count>6</comment_count>
      <attachid>432957</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-06 12:10:18 -0700</bug_when>
    <thetext>Created attachment 432957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775031</commentid>
    <comment_count>7</comment_count>
      <attachid>432957</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-06 12:16:17 -0700</bug_when>
    <thetext>Comment on attachment 432957
Patch

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

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:278
&gt; +    // Display list drawing can&apos;t handle arbitrary DOM content.
&gt; +    // FIXME: Remove this when it can.
&gt; +    if (!context.hasPlatformContext()) {

Would be nice if there was a way we we&apos;re guaranteed to find this when we go to do that later, but I don’t immediately have an idea of how.

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:281
&gt; +            if (static_cast&lt;ImageOrientation::Orientation&gt;(options.orientation()) == ImageOrientation::Orientation::FromImage)

Writing this as a static_cast is ugly. Let’s find a way to do without that; the static_cast makes it look like there is an unsafe conversion between enumeration types. Simplest way is to use a local variable:

    ImageOrientation::Orientation orientation = options.orientation();

Another way would be to add a member function to ImageOrientation to fetch the orientation value or an operator== overload to compare with a specific orientation enumeration value. Generally speaking not sure why we store the orientation enumeration in a class, ImageOrientation, with no other members. That leads to this kind of confusing code. We could instead just have a set of functions that take an ImageOrientation enumeration value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775033</commentid>
    <comment_count>8</comment_count>
      <attachid>432957</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-06 12:20:18 -0700</bug_when>
    <thetext>Comment on attachment 432957
Patch

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

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:277
&gt; +    // FIXME: Remove this when it can.

FIXME comments should come with bug numbers.

&gt;&gt; Source/WebCore/svg/graphics/SVGImage.cpp:281
&gt;&gt; +            if (static_cast&lt;ImageOrientation::Orientation&gt;(options.orientation()) == ImageOrientation::Orientation::FromImage)
&gt; 
&gt; Writing this as a static_cast is ugly. Let’s find a way to do without that; the static_cast makes it look like there is an unsafe conversion between enumeration types. Simplest way is to use a local variable:
&gt; 
&gt;     ImageOrientation::Orientation orientation = options.orientation();
&gt; 
&gt; Another way would be to add a member function to ImageOrientation to fetch the orientation value or an operator== overload to compare with a specific orientation enumeration value. Generally speaking not sure why we store the orientation enumeration in a class, ImageOrientation, with no other members. That leads to this kind of confusing code. We could instead just have a set of functions that take an ImageOrientation enumeration value.

Why do we ever need to consult ImageOrientation? SVG images don&apos;t have EXIF data.

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:284
&gt; +            context.drawNativeImage(*nativeImage, size(), dstRect, srcRect, localImagePaintingOptions);

Will this cause blurriness if a small SVG images is scaled up in the canvas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775042</commentid>
    <comment_count>9</comment_count>
      <attachid>432957</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-06 12:33:20 -0700</bug_when>
    <thetext>Comment on attachment 432957
Patch

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

&gt;&gt; Source/WebCore/svg/graphics/SVGImage.cpp:278
&gt;&gt; +    if (!context.hasPlatformContext()) {
&gt; 
&gt; Would be nice if there was a way we we&apos;re guaranteed to find this when we go to do that later, but I don’t immediately have an idea of how.

I think this can be done if we just move some of the code around:

1. Override DisplayList::Recorder::drawImage():

ImageDrawResult Recorder::drawImage(Image&amp; image, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; options)
{
    InterpolationQualityMaintainer interpolationQualityForThisScope(*this, options.interpolationQuality());
    if (image.isSVGImage())
        return downcast&lt;SVGImage&gt;(image).drawAsNativeImage(*this, destination, source, options);
    return image.draw(*this, destination, source, options);
}

Add SVG:: drawAsNativeImage():

ImageDrawResult SVGImage::drawAsNativeImage(GraphicsContext&amp; context, const FloatRect&amp; dstRect, const FloatRect&amp; srcRect, const ImagePaintingOptions&amp; options)
{
    auto nativeImage = this-&gt;nativeImage(nullptr);
    if (nativeImage)
        return ImageDrawResult::DidNothing;

    auto localImagePaintingOptions = options;
    if (static_cast&lt;ImageOrientation::Orientation&gt;(options.orientation()) == ImageOrientation::Orientation::FromImage)
        localImagePaintingOptions = ImagePaintingOptions(options, ImageOrientation::Orientation::None);

    context.drawNativeImage(*nativeImage, size(), dstRect, srcRect, localImagePaintingOptions);
    if (imageObserver())
        imageObserver()-&gt;didDraw(*this);

    return ImageDrawResult::DidDraw;
}

Then we can leave SVG::draw() untouched.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775347</commentid>
    <comment_count>10</comment_count>
      <attachid>432957</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-07 11:21:44 -0700</bug_when>
    <thetext>Comment on attachment 432957
Patch

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

&gt;&gt;&gt; Source/WebCore/svg/graphics/SVGImage.cpp:278
&gt;&gt;&gt; +    if (!context.hasPlatformContext()) {
&gt;&gt; 
&gt;&gt; Would be nice if there was a way we we&apos;re guaranteed to find this when we go to do that later, but I don’t immediately have an idea of how.
&gt; 
&gt; I think this can be done if we just move some of the code around:
&gt; 
&gt; 1. Override DisplayList::Recorder::drawImage():
&gt; 
&gt; ImageDrawResult Recorder::drawImage(Image&amp; image, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; options)
&gt; {
&gt;     InterpolationQualityMaintainer interpolationQualityForThisScope(*this, options.interpolationQuality());
&gt;     if (image.isSVGImage())
&gt;         return downcast&lt;SVGImage&gt;(image).drawAsNativeImage(*this, destination, source, options);
&gt;     return image.draw(*this, destination, source, options);
&gt; }
&gt; 
&gt; Add SVG:: drawAsNativeImage():
&gt; 
&gt; ImageDrawResult SVGImage::drawAsNativeImage(GraphicsContext&amp; context, const FloatRect&amp; dstRect, const FloatRect&amp; srcRect, const ImagePaintingOptions&amp; options)
&gt; {
&gt;     auto nativeImage = this-&gt;nativeImage(nullptr);
&gt;     if (nativeImage)
&gt;         return ImageDrawResult::DidNothing;
&gt; 
&gt;     auto localImagePaintingOptions = options;
&gt;     if (static_cast&lt;ImageOrientation::Orientation&gt;(options.orientation()) == ImageOrientation::Orientation::FromImage)
&gt;         localImagePaintingOptions = ImagePaintingOptions(options, ImageOrientation::Orientation::None);
&gt; 
&gt;     context.drawNativeImage(*nativeImage, size(), dstRect, srcRect, localImagePaintingOptions);
&gt;     if (imageObserver())
&gt;         imageObserver()-&gt;didDraw(*this);
&gt; 
&gt;     return ImageDrawResult::DidDraw;
&gt; }
&gt; 
&gt; Then we can leave SVG::draw() untouched.

Good idea! I&apos;ll do this.

Pretty cool how Recorder just inherits from GraphicsContext!!!

&gt;&gt;&gt; Source/WebCore/svg/graphics/SVGImage.cpp:281
&gt;&gt;&gt; +            if (static_cast&lt;ImageOrientation::Orientation&gt;(options.orientation()) == ImageOrientation::Orientation::FromImage)
&gt;&gt; 
&gt;&gt; Writing this as a static_cast is ugly. Let’s find a way to do without that; the static_cast makes it look like there is an unsafe conversion between enumeration types. Simplest way is to use a local variable:
&gt;&gt; 
&gt;&gt;     ImageOrientation::Orientation orientation = options.orientation();
&gt;&gt; 
&gt;&gt; Another way would be to add a member function to ImageOrientation to fetch the orientation value or an operator== overload to compare with a specific orientation enumeration value. Generally speaking not sure why we store the orientation enumeration in a class, ImageOrientation, with no other members. That leads to this kind of confusing code. We could instead just have a set of functions that take an ImageOrientation enumeration value.
&gt; 
&gt; Why do we ever need to consult ImageOrientation? SVG images don&apos;t have EXIF data.

drawNativeImage() in BitmapImage.cpp says if (options.orientation().usesWidthAsHeight())

usesWidthAsHeight() says ASSERT(isValidEXIFOrientation(m_orientation));

FromImage is the only non-EXIF orientation.

&gt;&gt; Source/WebCore/svg/graphics/SVGImage.cpp:284
&gt;&gt; +            context.drawNativeImage(*nativeImage, size(), dstRect, srcRect, localImagePaintingOptions);
&gt; 
&gt; Will this cause blurriness if a small SVG images is scaled up in the canvas?

Yes! Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775448</commentid>
    <comment_count>11</comment_count>
      <attachid>433072</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-07 14:09:47 -0700</bug_when>
    <thetext>Created attachment 433072
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775455</commentid>
    <comment_count>12</comment_count>
      <attachid>433072</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-07 14:13:25 -0700</bug_when>
    <thetext>Comment on attachment 433072
Patch for committing

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

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:337
&gt; +    FloatRect rectInNativeImage(FloatPoint(), destination.size());

The cool kids write this as 
auto rectInNativeImage = FloatRect { { }, destination.size() };

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:343
&gt; +    ImageOrientation::Orientation orientation = options.orientation();

auto?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775457</commentid>
    <comment_count>13</comment_count>
      <attachid>433072</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-07 14:14:35 -0700</bug_when>
    <thetext>Comment on attachment 433072
Patch for committing

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

&gt;&gt; Source/WebCore/svg/graphics/SVGImage.cpp:343
&gt;&gt; +    ImageOrientation::Orientation orientation = options.orientation();
&gt; 
&gt; auto?

See earlier discussion with Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775459</commentid>
    <comment_count>14</comment_count>
      <attachid>433075</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-07 14:15:13 -0700</bug_when>
    <thetext>Created attachment 433075
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775613</commentid>
    <comment_count>15</comment_count>
      <attachid>432957</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-07 23:14:42 -0700</bug_when>
    <thetext>Comment on attachment 432957
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/svg/graphics/SVGImage.cpp:278
&gt;&gt;&gt;&gt; +    if (!context.hasPlatformContext()) {
&gt;&gt;&gt; 
&gt;&gt;&gt; Would be nice if there was a way we we&apos;re guaranteed to find this when we go to do that later, but I don’t immediately have an idea of how.
&gt;&gt; 
&gt;&gt; I think this can be done if we just move some of the code around:
&gt;&gt; 
&gt;&gt; 1. Override DisplayList::Recorder::drawImage():
&gt;&gt; 
&gt;&gt; ImageDrawResult Recorder::drawImage(Image&amp; image, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; options)
&gt;&gt; {
&gt;&gt;     InterpolationQualityMaintainer interpolationQualityForThisScope(*this, options.interpolationQuality());
&gt;&gt;     if (image.isSVGImage())
&gt;&gt;         return downcast&lt;SVGImage&gt;(image).drawAsNativeImage(*this, destination, source, options);
&gt;&gt;     return image.draw(*this, destination, source, options);
&gt;&gt; }
&gt;&gt; 
&gt;&gt; Add SVG:: drawAsNativeImage():
&gt;&gt; 
&gt;&gt; ImageDrawResult SVGImage::drawAsNativeImage(GraphicsContext&amp; context, const FloatRect&amp; dstRect, const FloatRect&amp; srcRect, const ImagePaintingOptions&amp; options)
&gt;&gt; {
&gt;&gt;     auto nativeImage = this-&gt;nativeImage(nullptr);
&gt;&gt;     if (nativeImage)
&gt;&gt;         return ImageDrawResult::DidNothing;
&gt;&gt; 
&gt;&gt;     auto localImagePaintingOptions = options;
&gt;&gt;     if (static_cast&lt;ImageOrientation::Orientation&gt;(options.orientation()) == ImageOrientation::Orientation::FromImage)
&gt;&gt;         localImagePaintingOptions = ImagePaintingOptions(options, ImageOrientation::Orientation::None);
&gt;&gt; 
&gt;&gt;     context.drawNativeImage(*nativeImage, size(), dstRect, srcRect, localImagePaintingOptions);
&gt;&gt;     if (imageObserver())
&gt;&gt;         imageObserver()-&gt;didDraw(*this);
&gt;&gt; 
&gt;&gt;     return ImageDrawResult::DidDraw;
&gt;&gt; }
&gt;&gt; 
&gt;&gt; Then we can leave SVG::draw() untouched.
&gt; 
&gt; Good idea! I&apos;ll do this.
&gt; 
&gt; Pretty cool how Recorder just inherits from GraphicsContext!!!

Uh oh. isSVGImage() returns true on both SVGImageForContainer and SVGImage, and these are both distinct types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775619</commentid>
    <comment_count>16</comment_count>
      <attachid>432957</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-07 23:42:00 -0700</bug_when>
    <thetext>Comment on attachment 432957
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/svg/graphics/SVGImage.cpp:278
&gt;&gt;&gt;&gt;&gt; +    if (!context.hasPlatformContext()) {
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Would be nice if there was a way we we&apos;re guaranteed to find this when we go to do that later, but I don’t immediately have an idea of how.
&gt;&gt;&gt; 
&gt;&gt;&gt; I think this can be done if we just move some of the code around:
&gt;&gt;&gt; 
&gt;&gt;&gt; 1. Override DisplayList::Recorder::drawImage():
&gt;&gt;&gt; 
&gt;&gt;&gt; ImageDrawResult Recorder::drawImage(Image&amp; image, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; options)
&gt;&gt;&gt; {
&gt;&gt;&gt;     InterpolationQualityMaintainer interpolationQualityForThisScope(*this, options.interpolationQuality());
&gt;&gt;&gt;     if (image.isSVGImage())
&gt;&gt;&gt;         return downcast&lt;SVGImage&gt;(image).drawAsNativeImage(*this, destination, source, options);
&gt;&gt;&gt;     return image.draw(*this, destination, source, options);
&gt;&gt;&gt; }
&gt;&gt;&gt; 
&gt;&gt;&gt; Add SVG:: drawAsNativeImage():
&gt;&gt;&gt; 
&gt;&gt;&gt; ImageDrawResult SVGImage::drawAsNativeImage(GraphicsContext&amp; context, const FloatRect&amp; dstRect, const FloatRect&amp; srcRect, const ImagePaintingOptions&amp; options)
&gt;&gt;&gt; {
&gt;&gt;&gt;     auto nativeImage = this-&gt;nativeImage(nullptr);
&gt;&gt;&gt;     if (nativeImage)
&gt;&gt;&gt;         return ImageDrawResult::DidNothing;
&gt;&gt;&gt; 
&gt;&gt;&gt;     auto localImagePaintingOptions = options;
&gt;&gt;&gt;     if (static_cast&lt;ImageOrientation::Orientation&gt;(options.orientation()) == ImageOrientation::Orientation::FromImage)
&gt;&gt;&gt;         localImagePaintingOptions = ImagePaintingOptions(options, ImageOrientation::Orientation::None);
&gt;&gt;&gt; 
&gt;&gt;&gt;     context.drawNativeImage(*nativeImage, size(), dstRect, srcRect, localImagePaintingOptions);
&gt;&gt;&gt;     if (imageObserver())
&gt;&gt;&gt;         imageObserver()-&gt;didDraw(*this);
&gt;&gt;&gt; 
&gt;&gt;&gt;     return ImageDrawResult::DidDraw;
&gt;&gt;&gt; }
&gt;&gt;&gt; 
&gt;&gt;&gt; Then we can leave SVG::draw() untouched.
&gt;&gt; 
&gt;&gt; Good idea! I&apos;ll do this.
&gt;&gt; 
&gt;&gt; Pretty cool how Recorder just inherits from GraphicsContext!!!
&gt; 
&gt; Uh oh. isSVGImage() returns true on both SVGImageForContainer and SVGImage, and these are both distinct types.

I&apos;m starting to think this isn&apos;t worth it. This design requires:

1. Adding isSVGImageForContainer() in Image and SVGImageForContainer

2. Recorder::drawImage() becomes:

ImageDrawResult Recorder::drawImage(Image&amp; image, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; options)
{
    if (is&lt;SVGImage&gt;(image)) {
        // Display list drawing can&apos;t handle arbitrary DOM content.
        // FIXME https://bugs.webkit.org/show_bug.cgi?id=227748: Remove this when it can.
        InterpolationQualityMaintainer interpolationQualityForThisScope(*this, options.interpolationQuality());
        if (is&lt;SVGImageForContainer&gt;(image))
            downcast&lt;SVGImageForContainer&gt;(image).drawAsNativeImage(*this, destination, source, options);
        else
            return downcast&lt;SVGImage&gt;(image).drawAsNativeImage(*this, destination, source, options);
    }
    return GraphicsContext::drawImage(image, destination, source, options);
}

3. SVGImageForContainer::drawAsNativeImage() needs to be added: 

ImageDrawResult SVGImageForContainer::drawAsNativeImage(GraphicsContext&amp; context, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; options)
{
    return m_image-&gt;drawAsNativeImageForContainer(context, m_containerSize, m_containerZoom, m_initialFragmentURL, dstRect, srcRect, options);
}

4. SVGImage::drawAsNativeImageForContainer() needs to be added, because SVGImage::drawForContainer() calls SVGImage::draw()

5. SVGImage::drawForContainer() needs to be refactored to share code with SVGImage::drawAsNativeImageForContainer()

In the end, it doesn&apos;t seem worth it to do all this just to move the FIXME from SVGImage::draw() to Recorder::drawImage().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775623</commentid>
    <comment_count>17</comment_count>
      <attachid>433121</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-07 23:56:58 -0700</bug_when>
    <thetext>Created attachment 433121
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775676</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-08 08:53:00 -0700</bug_when>
    <thetext>Committed r279722 (239510@main): &lt;https://commits.webkit.org/239510@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433121.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775905</commentid>
    <comment_count>19</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-07-08 19:45:32 -0700</bug_when>
    <thetext>*** Bug 227824 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432568</attachid>
            <date>2021-06-29 23:34:33 -0700</date>
            <delta_ts>2021-06-30 13:42:06 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-227519-20210629233432.patch</filename>
            <type>text/plain</type>
            <size>5491</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2JmZDU3OTJhOWEzZGE2
ZGFkZjkwNTY4YTlkMzU1OWZjMDQ3ZmY4MS4uMzE1NTlkZjljZDMyYjY5MzExOTVjYjFiMDkwYzZi
OWQ2ODc5MmM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA2LTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBDYW52YXMgaW1hZ2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJiaXRyYXJ5IERPTSBjb250
ZW50IGluIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBwb2xpY3kgKGZvciBub3cp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpkcmF3KToKKyAgICAgICAgKiBzdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRyYXcpOgorCiAy
MDIxLTA2LTI5ICBKb2huc29uIFpob3UgIDxxaWFvc29uZ196aG91QGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbmNvZGluZyBzcGVjaWZpZWQgaW4gdGhlICdjaGFyc2V0JyBhdHRyaWJ1dGUgc2hvdWxk
IGhhdmUgcHJlY2VkZW5jZSBvdmVyICdjb250ZW50JyBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAK
aW5kZXggZGM0OTg1ZjljNTlhYWFjZDNkZjViNWRjNTZiOWQ4OTA4NDgxYmY5Yi4uYjA5MzU2YzA3
NDc0NGJjNTU3ZWNkMGQwMDA0NjVkYTcyMjBhOGU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKQEAgLTI2
Myw2ICsyNjMsMzEgQEAgSW1hZ2VEcmF3UmVzdWx0IFBERkRvY3VtZW50SW1hZ2U6OmRyYXcoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QKICAgICBpZiAoIW1fZG9jdW1l
bnQgfHwgIW1faGFzUGFnZSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90
aGluZzsKIAorICAgIC8vIERpc3BsYXkgbGlzdCBkcmF3aW5nIGNhbid0IGhhbmRsZSBhcmJpdHJh
cnkgRE9NIGNvbnRlbnQuCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gaXQgY2FuLgor
ICAgIGlmICghY29udGV4dC5oYXNQbGF0Zm9ybUNvbnRleHQoKSkgeworICAgICAgICBhdXRvIGlt
YWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6OlVu
YWNjZWxlcmF0ZWQsIDEsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1h
dDo6QkdSQTgpOworICAgICAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICAgICAgcmV0dXJu
IEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKKworICAgICAgICBJbWFnZU9ic2VydmVyKiBv
YnNlcnZlciA9IGltYWdlT2JzZXJ2ZXIoKTsKKworICAgICAgICBzZXRJbWFnZU9ic2VydmVyKG51
bGxwdHIpOworCisgICAgICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkuZHJhd0ltYWdlKCp0aGlz
LCBGbG9hdFBvaW50KDAsIDApKTsKKworICAgICAgICBzZXRJbWFnZU9ic2VydmVyKG9ic2VydmVy
KTsKKworICAgICAgICBpZiAoYXV0byBuYXRpdmVJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5rSW50
b05hdGl2ZUltYWdlKFdURk1vdmUoaW1hZ2VCdWZmZXIpKSkgeworICAgICAgICAgICAgYXV0byBs
b2NhbEltYWdlUGFpbnRpbmdPcHRpb25zID0gb3B0aW9uczsKKyAgICAgICAgICAgIGlmIChzdGF0
aWNfY2FzdDxJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbj4ob3B0aW9ucy5vcmllbnRhdGlv
bigpKSA9PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6RnJvbUltYWdlKQorICAgICAg
ICAgICAgICAgIGxvY2FsSW1hZ2VQYWludGluZ09wdGlvbnMgPSBJbWFnZVBhaW50aW5nT3B0aW9u
cyhvcHRpb25zLCBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgICAg
ICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqbmF0aXZlSW1hZ2UsIHNpemUoKSwgZHN0UmVj
dCwgc3JjUmVjdCwgbG9jYWxJbWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgICAgICAgICByZXR1
cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OworICAgICAgICB9CisgICAgICAgIHJldHVybiBJ
bWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CisgICAgfQorCiAgICAgdXBkYXRlQ2FjaGVkSW1h
Z2VJZk5lZWRlZChjb250ZXh0LCBkc3RSZWN0LCBzcmNSZWN0KTsKIAogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IGU3Njk3MTI0ZDE4NTI2ZTgxMTgy
NzA2ZmVhMWZjOGVjODNlMDYxMGEuLjg1ZmU2NWM2ZDkxNGE2NDEzY2M0Nzg5YjY2ODVhNDg0ZjA3
MDYyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMjcz
LDYgKzI3MywxOSBAQCBJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlYwogICAgIGlmICghbV9wYWdlKQog
ICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCisgICAgLy8gRGlz
cGxheSBsaXN0IGRyYXdpbmcgY2FuJ3QgaGFuZGxlIGFyYml0cmFyeSBET00gY29udGVudC4KKyAg
ICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBpdCBjYW4uCisgICAgaWYgKCFjb250ZXh0Lmhh
c1BsYXRmb3JtQ29udGV4dCgpKSB7CisgICAgICAgIGlmIChhdXRvIG5hdGl2ZUltYWdlID0gdGhp
cy0+bmF0aXZlSW1hZ2UobnVsbHB0cikpIHsKKyAgICAgICAgICAgIGF1dG8gbG9jYWxJbWFnZVBh
aW50aW5nT3B0aW9ucyA9IG9wdGlvbnM7CisgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8SW1h
Z2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24+KG9wdGlvbnMub3JpZW50YXRpb24oKSkgPT0gSW1h
Z2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246OkZyb21JbWFnZSkKKyAgICAgICAgICAgICAgICBs
b2NhbEltYWdlUGFpbnRpbmdPcHRpb25zID0gSW1hZ2VQYWludGluZ09wdGlvbnMob3B0aW9ucywg
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok5vbmUpOworICAgICAgICAgICAgY29udGV4
dC5kcmF3TmF0aXZlSW1hZ2UoKm5hdGl2ZUltYWdlLCBzaXplKCksIGRzdFJlY3QsIHNyY1JlY3Qs
IGxvY2FsSW1hZ2VQYWludGluZ09wdGlvbnMpOworICAgICAgICAgICAgcmV0dXJuIEltYWdlRHJh
d1Jlc3VsdDo6RGlkRHJhdzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVz
dWx0OjpEaWROb3RoaW5nOworICAgIH0KKwogICAgIGF1dG8gdmlldyA9IG1ha2VSZWZQdHIoZnJh
bWVWaWV3KCkpOwogICAgIEFTU0VSVCh2aWV3KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2ViS2l0Lnhjc2NoZW1l
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMv
V2ViS2l0Lnhjc2NoZW1lCmluZGV4IDYxMDM5YjFjNzE3MzhmMzIzM2RiOGIzNTk4NDNjNDRjODNl
ZjljOWYuLjVhOGQwYjllNjcxNjE4MzRmYzNhMzI4NTliMjhkM2QzZTdlOGZmYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVz
L1dlYktpdC54Y3NjaGVtZQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2oveGNz
aGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJLaXQueGNzY2hlbWUKQEAgLTMxLDcgKzMxLDcgQEAKICAg
ICAgIDwvVGVzdGFibGVzPgogICAgPC9UZXN0QWN0aW9uPgogICAgPExhdW5jaEFjdGlvbgotICAg
ICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCisgICAgICBidWlsZENvbmZpZ3VyYXRp
b24gPSAiRGVidWciCiAgICAgICBzZWxlY3RlZERlYnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5E
ZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExEQiIKICAgICAgIHNlbGVjdGVkTGF1bmNoZXJJ
ZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5MYXVuY2hlci5MTERCIgogICAg
ICAgbGF1bmNoU3R5bGUgPSAiMCIKQEAgLTQwLDYgKzQwLDIzIEBACiAgICAgICBkZWJ1Z0RvY3Vt
ZW50VmVyc2lvbmluZyA9ICJZRVMiCiAgICAgICBkZWJ1Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50
ZXJuYWwiCiAgICAgICBhbGxvd0xvY2F0aW9uU2ltdWxhdGlvbiA9ICJZRVMiPgorICAgICAgPFBh
dGhSdW5uYWJsZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiCisgICAgICAg
ICBCdW5kbGVJZGVudGlmaWVyID0gIm9yZy53ZWJraXQuTWluaUJyb3dzZXIiCisgICAgICAgICBG
aWxlUGF0aCA9ICIvVXNlcnMvbW1heGZpZWxkL0J1aWxkL1Byb2R1Y3RzL0RlYnVnL01pbmlCcm93
c2VyLmFwcCI+CisgICAgICA8L1BhdGhSdW5uYWJsZT4KKyAgICAgIDxFbnZpcm9ubWVudFZhcmlh
Ymxlcz4KKyAgICAgICAgIDxFbnZpcm9ubWVudFZhcmlhYmxlCisgICAgICAgICAgICBrZXkgPSAi
TWFsbG9jIgorICAgICAgICAgICAgdmFsdWUgPSAiMSIKKyAgICAgICAgICAgIGlzRW5hYmxlZCA9
ICJZRVMiPgorICAgICAgICAgPC9FbnZpcm9ubWVudFZhcmlhYmxlPgorICAgICAgICAgPEVudmly
b25tZW50VmFyaWFibGUKKyAgICAgICAgICAgIGtleSA9ICJfX1hQQ19NYWxsb2MiCisgICAgICAg
ICAgICB2YWx1ZSA9ICIxIgorICAgICAgICAgICAgaXNFbmFibGVkID0gIllFUyI+CisgICAgICAg
ICA8L0Vudmlyb25tZW50VmFyaWFibGU+CisgICAgICA8L0Vudmlyb25tZW50VmFyaWFibGVzPgog
ICAgPC9MYXVuY2hBY3Rpb24+CiAgICA8UHJvZmlsZUFjdGlvbgogICAgICAgYnVpbGRDb25maWd1
cmF0aW9uID0gIlJlbGVhc2UiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432622</attachid>
            <date>2021-06-30 13:42:08 -0700</date>
            <delta_ts>2021-07-06 12:10:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227519-20210630134207.patch</filename>
            <type>text/plain</type>
            <size>5921</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2JmZDU3OTJhOWEzZGE2
ZGFkZjkwNTY4YTlkMzU1OWZjMDQ3ZmY4MS4uMjZjMTQxMjNmZjNiNDc2YTdkZWJkMzE4MDVkYWEx
OTNjN2EyNDFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA2LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBDYW52YXMgaW1hZ2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJiaXRyYXJ5IERPTSBjb250
ZW50IGluIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBwb2xpY3kgKGZvciBub3cp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlcmluZyBhcmJpdHJhcnkgRE9NIGNvbnRl
bnQgaW4gdGhlIEdQVSBwcm9jZXNzIGlzbid0IHN1cHBvcnRlZCB5ZXQsIGJ1dCBjYW52YXMgcmVu
ZGVyaW5nIGlzLiBIb3dldmVyLAorICAgICAgICBjYW52YXMgaGFzIGEgZHJhd0ltYWdlKCkgZnVu
Y3Rpb24gd2hpY2ggY2FuIGFjY2VwdCBhbiBIVE1MSW1hZ2VFbGVtZW50IGFzIGl0cyBzb3VyY2Us
IGFuZCBhbiBIVE1MSW1hZ2VFbGVtZW50CisgICAgICAgIGNhbiBoYXZlIGFuIFNWRyBkb2N1bWVu
dCBhcyBpdHMgc291cmNlLCB3aGljaCB3b3VsZCBlbmQgdXAgdHJpZ2dlcmluZyBvdXIgRE9NIGNv
ZGVwYXRoIGluIGNhbnZhcyBhbmQgdGh1cworICAgICAgICBpbiB0aGUgR1BVIHByb2Nlc3MuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBkaXNhYmxlcyB0aGlzIGZvciBub3csIGJ5IHJlbmRlcmluZyB0
aGUgU1ZHIGludG8gYW4gSW1hZ2VCdWZmZXIgYW5kIHRoZW4gZHJhd2luZyB0aGUgSW1hZ2VCdWZm
ZXIKKyAgICAgICAgaW4gdGhlIEdQVSBwcm9jZXNzLiBXaGVuIHdlIGV2ZW50dWFsbHkgaW1wbGVt
ZW50IGFyYml0cmFyeSBET00gcmVuZGVyaW5nIGluIHRoZSBHUFUgcHJvY2VzcywgdGhpcyBwYXRj
aCB3aWxsCisgICAgICAgIG5lZWQgdG8gYmUgcmV2ZXJ0ZWQuCisKKyAgICAgICAgVGVzdDogZmFz
dC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWwKKworICAgICAgICAqIHN2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZHJhdyk6CisKIDIw
MjEtMDYtMjkgIEpvaG5zb24gWmhvdSAgPHFpYW9zb25nX3pob3VAYXBwbGUuY29tPgogCiAgICAg
ICAgIEVuY29kaW5nIHNwZWNpZmllZCBpbiB0aGUgJ2NoYXJzZXQnIGF0dHJpYnV0ZSBzaG91bGQg
aGF2ZSBwcmVjZWRlbmNlIG92ZXIgJ2NvbnRlbnQnIGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggZTc2OTcxMjRkMTg1MjZlODExODI3MDZmZWEx
ZmM4ZWM4M2UwNjEwYS4uODVmZTY1YzZkOTE0YTY0MTNjYzQ3ODliNjY4NWE0ODRmMDcwNjIyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBAIC0yNzMsNiArMjcz
LDE5IEBAIEltYWdlRHJhd1Jlc3VsdCBTVkdJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjCiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAg
IHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKKyAgICAvLyBEaXNwbGF5IGxp
c3QgZHJhd2luZyBjYW4ndCBoYW5kbGUgYXJiaXRyYXJ5IERPTSBjb250ZW50LgorICAgIC8vIEZJ
WE1FOiBSZW1vdmUgdGhpcyB3aGVuIGl0IGNhbi4KKyAgICBpZiAoIWNvbnRleHQuaGFzUGxhdGZv
cm1Db250ZXh0KCkpIHsKKyAgICAgICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSB0aGlzLT5uYXRp
dmVJbWFnZShudWxscHRyKSkgeworICAgICAgICAgICAgYXV0byBsb2NhbEltYWdlUGFpbnRpbmdP
cHRpb25zID0gb3B0aW9uczsKKyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxJbWFnZU9yaWVu
dGF0aW9uOjpPcmllbnRhdGlvbj4ob3B0aW9ucy5vcmllbnRhdGlvbigpKSA9PSBJbWFnZU9yaWVu
dGF0aW9uOjpPcmllbnRhdGlvbjo6RnJvbUltYWdlKQorICAgICAgICAgICAgICAgIGxvY2FsSW1h
Z2VQYWludGluZ09wdGlvbnMgPSBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcHRpb25zLCBJbWFnZU9y
aWVudGF0aW9uOjpPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgICAgICAgICBjb250ZXh0LmRyYXdO
YXRpdmVJbWFnZSgqbmF0aXZlSW1hZ2UsIHNpemUoKSwgZHN0UmVjdCwgc3JjUmVjdCwgbG9jYWxJ
bWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0
OjpEaWREcmF3OworICAgICAgICB9CisgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRp
ZE5vdGhpbmc7CisgICAgfQorCiAgICAgYXV0byB2aWV3ID0gbWFrZVJlZlB0cihmcmFtZVZpZXco
KSk7CiAgICAgQVNTRVJUKHZpZXcpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjhhMWM2NTNlNGM0NmZiNzkwMWEwNjlj
ZWE3NDEwNWY0YWI0NGVkYS4uMDg2OTc5M2Y1MjcyN2YzNjBjMmE0MTliY2EzY2E4MTVjMmRkYzYy
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAg
PG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDYW52YXMgaW1h
Z2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJiaXRyYXJ5IERPTSBjb250ZW50IGluIHRoZSBHUFUg
cHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBwb2xpY3kgKGZvciBub3cpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL21hc2suc3ZnOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2ltYWdlcy9zdmctbWFzay1pbi1jYW52YXMtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWw6IEFkZGVk
LgorCiAyMDIxLTA2LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVzeW5jIHNwZWVjaC1hcGkgV1BUIHRlc3RzIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9tYXNrLnN2ZyBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9tYXNrLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGQ0YmM0YmYyYTk1
NzNhZDNlOTkwN2FjNGY3YzZiODk5NGIyNGFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL21hc2suc3ZnCkBAIC0wLDAgKzEsOSBAQAorPCFET0NU
WVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5v
cmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
bGluayIgd2lkdGg9IjMwMHB4IiBoZWlnaHQ9IjMwMHB4IiB2aWV3Qm94PSIwIDAgMzAwIDMwMCIg
dmVyc2lvbj0iMS4xIj4KKyAgICA8ZGVmcz4KKyAgICAgICAgPG1hc2sgaWQ9Im1hc2siIG1hc2tV
bml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAw
Ij4KKyAgICAgICAgICAgIDxyZWN0IHg9IjUwIiB5PSI1MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIy
MDAiIGZpbGw9IndoaXRlIi8+CisgICAgICAgIDwvbWFzaz4KKyAgICA8L2RlZnM+CisgICAgPHJl
Y3QgeD0iMTAwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjMwMCIgZmlsbD0iYmxhY2siIG1h
c2s9InVybCgjbWFzaykiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9zdmctbWFzay1pbi1jYW52YXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWJl
MzY1OTY4YmYyYzIxM2MwYzdlY2VlNzJhNmQyNjFlNDA4MDFjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBibGFjayByZWN0YW5n
bGUgYmVsb3cuPC9wPgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+Cis8ZGl2IHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwMHB4OyB0b3A6IDUwcHg7IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3Zn
LW1hc2staW4tY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zdmctbWFzay1p
bi1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjhjZjg0NzM2OGZiNTg0NzYwYzhiNmVjZTU3NTc4
MzFmNjc4YTliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3Zn
LW1hc2staW4tY2FudmFzLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlv
dSBzZWUgYSBibGFjayByZWN0YW5nbGUgYmVsb3cuPC9wPgorPGNhbnZhcyBpZD0iY2FudmFzIiB3
aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIvPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK2xldCBjYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CitsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250
ZXh0KCIyZCIpOworbGV0IGltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Citp
bWFnZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24oKSB7CisgICAgY29udGV4dC5k
cmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIDMwMCwgMzAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7CitpbWFnZS5zcmMgPSAi
cmVzb3VyY2VzL21hc2suc3ZnIjsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432957</attachid>
            <date>2021-07-06 12:10:18 -0700</date>
            <delta_ts>2021-07-06 14:21:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227519-20210706121017.patch</filename>
            <type>text/plain</type>
            <size>9205</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTgwODkxY2I2NWIxZTRm
MDMzMzUxNzg2OWZiODM4YWU3NGQyMjdkZi4uMWE4Yjc5M2RmM2NhNTc1ZmFkMWIzN2YzNTdmNjJh
MjM4YzM4YjE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA2LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBDYW52YXMgaW1hZ2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJiaXRyYXJ5IERPTSBjb250
ZW50IGluIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBwb2xpY3kgKGZvciBub3cp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlcmluZyBhcmJpdHJhcnkgRE9NIGNvbnRl
bnQgaW4gdGhlIEdQVSBwcm9jZXNzIGlzbid0IHN1cHBvcnRlZCB5ZXQsIGJ1dCBjYW52YXMgcmVu
ZGVyaW5nIGlzLiBIb3dldmVyLAorICAgICAgICBjYW52YXMgaGFzIGEgZHJhd0ltYWdlKCkgZnVu
Y3Rpb24gd2hpY2ggY2FuIGFjY2VwdCBhbiBIVE1MSW1hZ2VFbGVtZW50IGFzIGl0cyBzb3VyY2Us
IGFuZCBhbiBIVE1MSW1hZ2VFbGVtZW50CisgICAgICAgIGNhbiBoYXZlIGFuIFNWRyBkb2N1bWVu
dCBhcyBpdHMgc291cmNlLCB3aGljaCB3b3VsZCBlbmQgdXAgdHJpZ2dlcmluZyBvdXIgRE9NIGNv
ZGVwYXRoIGluIGNhbnZhcyBhbmQgdGh1cworICAgICAgICBpbiB0aGUgR1BVIHByb2Nlc3MuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBkaXNhYmxlcyB0aGlzIGZvciBub3csIGJ5IHJlbmRlcmluZyB0
aGUgU1ZHIGludG8gYW4gSW1hZ2VCdWZmZXIgYW5kIHRoZW4gZHJhd2luZyB0aGUgSW1hZ2VCdWZm
ZXIKKyAgICAgICAgaW4gdGhlIEdQVSBwcm9jZXNzLiBXaGVuIHdlIGV2ZW50dWFsbHkgaW1wbGVt
ZW50IGFyYml0cmFyeSBET00gcmVuZGVyaW5nIGluIHRoZSBHUFUgcHJvY2VzcywgdGhpcyBwYXRj
aCB3aWxsCisgICAgICAgIG5lZWQgdG8gYmUgcmV2ZXJ0ZWQuCisKKyAgICAgICAgVGVzdDogZmFz
dC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWwKKworICAgICAgICAqIHN2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZHJhdyk6CisKIDIw
MjEtMDctMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBsb2FkU2ltdWxhdGVkUmVxdWVzdDogc2hvdWxkIGRvIHNhbWUgZGVsZWdhdGUgY2Fs
bGJhY2tzIGFzIGxvYWRIVE1MU3RyaW5nIGFuZCBsb2FkRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggZTc2OTcxMjRkMTg1MjZlODExODI3MDZmZWExZmM4
ZWM4M2UwNjEwYS4uMmExMmNlMzI4MjA1ZWFhMGZiMzgwNDcyYzE3OWU0Y2Y0Yjc4MzMyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBAIC0yNzMsNiArMjczLDI0
IEBAIEltYWdlRHJhd1Jlc3VsdCBTVkdJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjCiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJl
dHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKKyAgICAvLyBEaXNwbGF5IGxpc3Qg
ZHJhd2luZyBjYW4ndCBoYW5kbGUgYXJiaXRyYXJ5IERPTSBjb250ZW50LgorICAgIC8vIEZJWE1F
OiBSZW1vdmUgdGhpcyB3aGVuIGl0IGNhbi4KKyAgICBpZiAoIWNvbnRleHQuaGFzUGxhdGZvcm1D
b250ZXh0KCkpIHsKKyAgICAgICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSB0aGlzLT5uYXRpdmVJ
bWFnZShudWxscHRyKSkgeworICAgICAgICAgICAgYXV0byBsb2NhbEltYWdlUGFpbnRpbmdPcHRp
b25zID0gb3B0aW9uczsKKyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxJbWFnZU9yaWVudGF0
aW9uOjpPcmllbnRhdGlvbj4ob3B0aW9ucy5vcmllbnRhdGlvbigpKSA9PSBJbWFnZU9yaWVudGF0
aW9uOjpPcmllbnRhdGlvbjo6RnJvbUltYWdlKQorICAgICAgICAgICAgICAgIGxvY2FsSW1hZ2VQ
YWludGluZ09wdGlvbnMgPSBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcHRpb25zLCBJbWFnZU9yaWVu
dGF0aW9uOjpPcmllbnRhdGlvbjo6Tm9uZSk7CisKKyAgICAgICAgICAgIGNvbnRleHQuZHJhd05h
dGl2ZUltYWdlKCpuYXRpdmVJbWFnZSwgc2l6ZSgpLCBkc3RSZWN0LCBzcmNSZWN0LCBsb2NhbElt
YWdlUGFpbnRpbmdPcHRpb25zKTsKKworICAgICAgICAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkK
KyAgICAgICAgICAgICAgICBpbWFnZU9ic2VydmVyKCktPmRpZERyYXcoKnRoaXMpOworCisgICAg
ICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CisgICAgfQorCiAgICAgYXV0
byB2aWV3ID0gbWFrZVJlZlB0cihmcmFtZVZpZXcoKSk7CiAgICAgQVNTRVJUKHZpZXcpOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMjRkYzg1OGY0YTc2NWRjNGMzYzRjMTYxYjQ4ZDU5NTM4OGU4ZTkwNy4uZWNkNTU0ZGM4
MDQ0ZWZiNTIwMWVlNjRjNDRkOTA4MjhkYWZkN2I5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIxLTA2LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0dQVSBQcm9jZXNzXSBDYW52YXMgaW1hZ2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJi
aXRyYXJ5IERPTSBjb250ZW50IGluIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBw
b2xpY3kgKGZvciBub3cpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjc1MTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9pbWFnZXMv
cmVzb3VyY2VzL21hc2suc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9zdmctbWFz
ay1pbi1jYW52YXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMv
c3ZnLW1hc2staW4tY2FudmFzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9pbWFnZWJpdG1hcC9jcmVhdGVJ
bWFnZUJpdG1hcC1mbGlwWS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisKIDIwMjEtMDctMDYgIEVy
aWMgSHV0Y2hpc29uICA8ZWh1dGNoaXNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0JpZ1N1ciBF
IFdrMiBSZWxlYXNlXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBTZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRtbCBpbiBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvbWFzay5z
dmcgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvbWFzay5zdmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzRkNGJjNGJmMmE5NTczYWQzZTk5MDdhYzRmN2M2Yjg5OTRiMjRhYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9tYXNrLnN2ZwpAQCAtMCww
ICsxLDkgQEAKKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cis8c3Zn
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzMDBweCIgaGVpZ2h0PSIzMDBweCIgdmlld0Jv
eD0iMCAwIDMwMCAzMDAiIHZlcnNpb249IjEuMSI+CisgICAgPGRlZnM+CisgICAgICAgIDxtYXNr
IGlkPSJtYXNrIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0i
MzAwIiBoZWlnaHQ9IjMwMCI+CisgICAgICAgICAgICA8cmVjdCB4PSI1MCIgeT0iNTAiIHdpZHRo
PSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJ3aGl0ZSIvPgorICAgICAgICA8L21hc2s+CisgICAg
PC9kZWZzPgorICAgIDxyZWN0IHg9IjEwMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIzMDAi
IGZpbGw9ImJsYWNrIiBtYXNrPSJ1cmwoI21hc2spIi8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2Zy1tYXNrLWluLWNhbnZhcy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGIwOWNlMWUwYzRiYjJmMDNkNTFmZWFmYjBiZDgxYWE2MDJhNzg0ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2Zy1tYXNrLWluLWNhbnZh
cy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2Vl
IGEgYmxhY2sgcmVjdGFuZ2xlIHdpdGggYSBncmVlbiBib3JkZXIgYmVsb3cuPC9wPgorPGRpdiBz
dHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAxMDBweDsgdG9wOiA1MHB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMjAw
cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyB0b3A6IDQ3cHg7IGxlZnQ6IDk3cHg7IHdpZHRoOiA2cHg7IGhlaWdodDogMjA2
cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyB0b3A6IDQ3cHg7IGxlZnQ6IDE5N3B4OyB3aWR0aDogNnB4OyBoZWlnaHQ6IDIw
NnB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgdG9wOiA0N3B4OyBsZWZ0OiA5N3B4OyB3aWR0aDogMTA2cHg7IGhlaWdodDog
NnB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgdG9wOiAyNDdweDsgbGVmdDogOTdweDsgd2lkdGg6IDEwNnB4OyBoZWlnaHQ6
IDZweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zdmctbWFzay1pbi1jYW52YXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNmZkZTU5MTQ1N2Q5OTIxYjRiNzViMWEzYjlkZmI0MmY5MWFkNDY3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFz
Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBibGFjayBy
ZWN0YW5nbGUgd2l0aCBhIGdyZWVuIGJvcmRlciBiZWxvdy48L3A+Cis8ZGl2IHN0eWxlPSJwb3Np
dGlvbjogcmVsYXRpdmU7Ij4KKyAgICA8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIzMDAiIGhl
aWdodD0iMzAwIj48L2NhbnZhcz4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IHRvcDogNDdweDsgbGVmdDogOTdweDsgd2lkdGg6IDZweDsgaGVpZ2h0OiAyMDZweDsgYmFja2dy
b3VuZDogZ3JlZW47Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IHRvcDogNDdweDsgbGVmdDogMTk3cHg7IHdpZHRoOiA2cHg7IGhlaWdodDogMjA2cHg7IGJhY2tn
cm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyB0b3A6IDQ3cHg7IGxlZnQ6IDk3cHg7IHdpZHRoOiAxMDZweDsgaGVpZ2h0OiA2cHg7IGJhY2tn
cm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyB0b3A6IDI0N3B4OyBsZWZ0OiA5N3B4OyB3aWR0aDogMTA2cHg7IGhlaWdodDogNnB4OyBiYWNr
Z3JvdW5kOiBncmVlbjsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworbGV0IGNhbnZhcyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK2xldCBjb250ZXh0ID0gY2FudmFzLmdl
dENvbnRleHQoIjJkIik7CitsZXQgaW1hZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWci
KTsKK2ltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbigpIHsKKyAgICBjb250
ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgMzAwLCAzMDApOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKK2ltYWdlLnNy
YyA9ICJyZXNvdXJjZXMvbWFzay5zdmciOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLWZsaXBZLWV4
cGVjdGVkLnR4dAppbmRleCA2Mjk0ZWUxYTBlNzA3YjQ0ZDcxNTZkYWQ3M2M1MGQ1NzQ2ZDAxYmYy
Li44MGYwNzljYmI3OTA0YjBmZmZlZjIyZjdjODI1OGVhY2I1NGY1MTYzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvZWxlbWVudC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1mbGlwWS1leHBlY3RlZC50
eHQKQEAgLTgsNyArOCw3IEBAIFBBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhbiBIVE1MVmlk
ZW9FbGVtZW50IGZyb20gYSBkYXRhIFVSTCBpbWFnZU9yaWVudGF0aW9uCiBQQVNTIGNyZWF0ZUlt
YWdlQml0bWFwIGZyb20gYSBiaXRtYXAgSFRNTEltYWdlRWxlbWVudCBpbWFnZU9yaWVudGF0aW9u
OiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKIFBBU1Mg
Y3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBIVE1MSW1hZ2VFbGVtZW50IGltYWdlT3Jp
ZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRt
YXAKIFBBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIHZlY3RvciBIVE1MSW1hZ2VFbGVtZW50
IGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJ
bWFnZUJpdG1hcAotRkFJTCBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgdmVjdG9yIEhUTUxJbWFn
ZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUg
Y3JlYXRlZCBJbWFnZUJpdG1hcCBhc3NlcnRfYXBwcm94X2VxdWFsczogUmVkIGNoYW5uZWwgb2Yg
dGhlIHBpeGVsIGF0ICg1LCAxNSkgZXhwZWN0ZWQgMjU1ICsvLSAxMCBidXQgZ290IDAKK1BBU1Mg
Y3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIHZlY3RvciBIVE1MSW1hZ2VFbGVtZW50IGltYWdlT3Jp
ZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRt
YXAKIEZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBTVkdJbWFnZUVsZW1lbnQg
aW1hZ2VPcmllbnRhdGlvbjogIm5vbmUiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIElt
YWdlQml0bWFwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJv
bSBhIGJpdG1hcCBTVkdJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5k
IGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3Ii
CiBGQUlMIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYSB2ZWN0b3IgU1ZHSW1hZ2VFbGVtZW50IGlt
YWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFn
ZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCg==
</data>
<flag name="review"
          id="455049"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="455066"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433072</attachid>
            <date>2021-07-07 14:09:47 -0700</date>
            <delta_ts>2021-07-07 14:15:38 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-227519-20210707140946.patch</filename>
            <type>text/plain</type>
            <size>20164</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM5MjYxMTdlODIyYzU4
ZjcxMTFkNGNhNjgxYjg2ZjI0ZWFhNDMyMy4uMzMzNzc5OThhYmI0NzBlZTAyZmU0MTQ2MTZhMDRh
MzhiODRjNGQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA3LTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBDYW52YXMgaW1hZ2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJiaXRyYXJ5IERPTSBjb250
ZW50IGluIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBwb2xpY3kgKGZvciBub3cp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlbmRlcmluZyBhcmJpdHJhcnkgRE9NIGNvbnRlbnQg
aW4gdGhlIEdQVSBwcm9jZXNzIGlzbid0IHN1cHBvcnRlZCB5ZXQsIGJ1dCBjYW52YXMgcmVuZGVy
aW5nIGlzLiBIb3dldmVyLAorICAgICAgICBjYW52YXMgaGFzIGEgZHJhd0ltYWdlKCkgZnVuY3Rp
b24gd2hpY2ggY2FuIGFjY2VwdCBhbiBIVE1MSW1hZ2VFbGVtZW50IGFzIGl0cyBzb3VyY2UsIGFu
ZCBhbiBIVE1MSW1hZ2VFbGVtZW50CisgICAgICAgIGNhbiBoYXZlIGFuIFNWRyBkb2N1bWVudCBh
cyBpdHMgc291cmNlLCB3aGljaCB3b3VsZCBlbmQgdXAgdHJpZ2dlcmluZyBvdXIgRE9NIGNvZGVw
YXRoIGluIGNhbnZhcyBhbmQgdGh1cworICAgICAgICBpbiB0aGUgR1BVIHByb2Nlc3MuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBkaXNhYmxlcyB0aGlzIGZvciBub3csIGJ5IHJlbmRlcmluZyB0aGUg
U1ZHIGludG8gYW4gSW1hZ2VCdWZmZXIgYW5kIHRoZW4gZHJhd2luZyB0aGUgSW1hZ2VCdWZmZXIK
KyAgICAgICAgaW4gdGhlIEdQVSBwcm9jZXNzLiBXaGVuIHdlIGV2ZW50dWFsbHkgaW1wbGVtZW50
IGFyYml0cmFyeSBET00gcmVuZGVyaW5nIGluIHRoZSBHUFUgcHJvY2VzcywgdGhpcyBwYXRjaCB3
aWxsCisgICAgICAgIG5lZWQgdG8gYmUgcmV2ZXJ0ZWQuCisKKyAgICAgICAgVGVzdDogZmFzdC9p
bWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3SW1hZ2UpOgorICAgICAgICAqIHN2
Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6bmF0
aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRyYXdBc05hdGl2ZUltYWdl
KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDoKKwogMjAyMS0wNy0wNyAgVGlt
IE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBzZXRCb29sZWFuQXR0cmli
dXRlIGluc3RlYWQgb2Ygc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihYLCBZID8g
ZW1wdHlBdG9tKCkgOiBudWxsQXRvbSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcAppbmRleCBiOGEyZGI5Y2UwZGYxYzk5MmI1ZWM0N2VhMDcwN2M4ZmI1Zjg1OGJh
Li5iM2RhOWVkY2RjNzRjMjMyOTRmZGQ2MTI1YmFkMTE1Njc2MWM4NzQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTVkdJbWFnZS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0
cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC0xOTgsNiArMTk5
LDE3IEBAIHZvaWQgUmVjb3JkZXI6OmFwcGVuZERyYXdHbHlwaHNJdGVtV2l0aENhY2hlZEZvbnQo
Y29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCCiAgICAgYXBwZW5kPERyYXdHbHlwaHM+KGZv
bnQsIGdseXBocywgYWR2YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hvciwgc21vb3RoaW5nTW9kZSk7
CiB9CiAKK0ltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIGlmIChpczxTVkdJbWFn
ZT4oaW1hZ2UpKSB7CisgICAgICAgIC8vIERpc3BsYXkgbGlzdCBkcmF3aW5nIGNhbid0IGhhbmRs
ZSBhcmJpdHJhcnkgRE9NIGNvbnRlbnQuCisgICAgICAgIC8vIEZJWE1FIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3NDg6IFJlbW92ZSB0aGlzIHdoZW4gaXQgY2Fu
LgorICAgICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1
YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7
CisgICAgICAgIHJldHVybiBkb3duY2FzdDxTVkdJbWFnZT4oaW1hZ2UpLmRyYXdBc05hdGl2ZUlt
YWdlKCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKKyAgICB9CisgICAgcmV0
dXJuIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNl
LCBvcHRpb25zKTsKK30KKwogdm9pZCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6
OkltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKICAgICBpZiAoIWNhbkRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDYxYmY3OWQ0ODA4ZGE2MGNiYTk1
YTQzMDEzNjAwNWRmNmFhNGYwYzMuLmNkZTRiZWE1YWM0ODY0YmYxNTFmNGFiZjhmOWNhYjhlMThl
NjIxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMTIzLDYg
KzEyMyw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFwcGVuZERyYXdHbHlwaHNJdGVtV2l0aENh
Y2hlZEZvbnQoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlw
aEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxB
bmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlKTsKIAorICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9u
OjpGcm9tSW1hZ2UgfSkgZmluYWw7CisKICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3Jl
OjpJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwogICAgIHZv
aWQgZHJhd05hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKICAgICB2b2lkIGRyYXdQYXR0ZXJu
KE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IGU3Njk3MTI0ZDE4NTI2ZTgxMTgyNzA2ZmVhMWZjOGVj
ODNlMDYxMGEuLjY2ZTZlNDVhMzM5YjA5NGRhMTk5MGUxMTM0OGJkOGY3MGNiZjNmM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMjEzLDE5ICsyMTMsMjYg
QEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJh
bWUoY29uc3QgR3JhcGhpY3NDb250ZXh0KgogfQogCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IFNWR0lt
YWdlOjpuYXRpdmVJbWFnZShjb25zdCBHcmFwaGljc0NvbnRleHQqKQoreworICAgIHJldHVybiBu
YXRpdmVJbWFnZShzaXplKCksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNpemUoKSkpOworfQor
CitSZWZQdHI8TmF0aXZlSW1hZ2U+IFNWR0ltYWdlOjpuYXRpdmVJbWFnZShjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VSZWN0KQogewogICAgIGlmICgh
bV9wYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIg
PSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRl
ZCwgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIFBpeGVsRm9ybWF0OjpCR1JBOCk7
CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoaW1hZ2VTaXplLCBS
ZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNS
R0IoKSwgUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gaW1hZ2VP
YnNlcnZlcigpOwotCiAgICAgc2V0SW1hZ2VPYnNlcnZlcihudWxscHRyKTsKLSAgICBzZXRDb250
YWluZXJTaXplKHNpemUoKSk7CiAKKyAgICBhdXRvIHNjYWxlRmFjdG9yID0gaW1hZ2VTaXplIC8g
c291cmNlUmVjdC5zaXplKCk7CisgICAgc2V0Q29udGFpbmVyU2l6ZShzaXplKCkpOworICAgIGlt
YWdlQnVmZmVyLT5jb250ZXh0KCkuc2NhbGUoc2NhbGVGYWN0b3IpOworICAgIGltYWdlQnVmZmVy
LT5jb250ZXh0KCkudHJhbnNsYXRlKC1zb3VyY2VSZWN0LmxvY2F0aW9uKCkpOwogICAgIGltYWdl
QnVmZmVyLT5jb250ZXh0KCkuZHJhd0ltYWdlKCp0aGlzLCBGbG9hdFBvaW50KDAsIDApKTsKIAog
ICAgIHNldEltYWdlT2JzZXJ2ZXIob2JzZXJ2ZXIpOwpAQCAtMzIyLDYgKzMyOSwyOSBAQCBJbWFn
ZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIGRzdFJlYwogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7
CiB9CiAKKworSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3QXNOYXRpdmVJbWFnZShHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
K3sKKyAgICBBU1NFUlQoIWNvbnRleHQuaGFzUGxhdGZvcm1Db250ZXh0KCkpOworCisgICAgRmxv
YXRSZWN0IHJlY3RJbk5hdGl2ZUltYWdlKEZsb2F0UG9pbnQoKSwgZGVzdGluYXRpb24uc2l6ZSgp
KTsKKyAgICBhdXRvIG5hdGl2ZUltYWdlID0gdGhpcy0+bmF0aXZlSW1hZ2UocmVjdEluTmF0aXZl
SW1hZ2Uuc2l6ZSgpLCBzb3VyY2UpOworICAgIGlmICghbmF0aXZlSW1hZ2UpCisgICAgICAgIHJl
dHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CisKKyAgICBhdXRvIGxvY2FsSW1hZ2VQ
YWludGluZ09wdGlvbnMgPSBvcHRpb25zOworICAgIEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0
aW9uIG9yaWVudGF0aW9uID0gb3B0aW9ucy5vcmllbnRhdGlvbigpOworICAgIGlmIChvcmllbnRh
dGlvbiA9PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6RnJvbUltYWdlKQorICAgICAg
ICBsb2NhbEltYWdlUGFpbnRpbmdPcHRpb25zID0gSW1hZ2VQYWludGluZ09wdGlvbnMob3B0aW9u
cywgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok5vbmUpOworCisgICAgY29udGV4dC5k
cmF3TmF0aXZlSW1hZ2UoKm5hdGl2ZUltYWdlLCByZWN0SW5OYXRpdmVJbWFnZS5zaXplKCksIGRl
c3RpbmF0aW9uLCByZWN0SW5OYXRpdmVJbWFnZSwgbG9jYWxJbWFnZVBhaW50aW5nT3B0aW9ucyk7
CisKKyAgICBpZiAoaW1hZ2VPYnNlcnZlcigpKQorICAgICAgICBpbWFnZU9ic2VydmVyKCktPmRp
ZERyYXcoKnRoaXMpOworCisgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsKK30K
KwogUmVuZGVyQm94KiBTVkdJbWFnZTo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKIHsKICAg
ICBhdXRvIHJvb3RFbGVtZW50ID0gdGhpcy0+cm9vdEVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggMmI1NWYwNjBiYTRkNmRiNjVkMWQ0YzZlNDhiMzFh
NGI4OGVlOTVmNi4uNWQ3YjkzNTAxMDk3Y2Y5YTQxMDVlN2I3M2FlNWRlMzk3OGYyMGQ4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKQEAgLTY0LDYgKzY0LDggQEAgcHVi
bGljOgogCiAgICAgUGFnZSogaW50ZXJuYWxQYWdlKCkgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9
CiAKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0FzTmF0aXZlSW1hZ2UoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2Us
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CisKIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIFNWR0ltYWdlQ2hyb21lQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBTVkdJbWFn
ZUZvckNvbnRhaW5lcjsKQEAgLTg4LDExICs5MCwxMiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRy
PE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZShjb25zdCBHcmFwaGljc0Nv
bnRleHQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZShjb25zdCBHcmFwaGljc0NvbnRleHQqID0gbnVsbHB0cikgZmluYWw7CisgICAgUmVmUHRy
PE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZShjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2VSZWN0KTsKIAogICAgIHZvaWQgc3RhcnRBbmltYXRpb25UaW1l
ckZpcmVkKCk7CiAKICAgICBleHBsaWNpdCBTVkdJbWFnZShJbWFnZU9ic2VydmVyJik7Ci0gICAg
SW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBm
cm9tUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiA9IHsgfSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3Vy
Y2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAgICAgSW1hZ2VE
cmF3UmVzdWx0IGRyYXdGb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRT
aXplIGNvbnRhaW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlh
bEZyYWdtZW50VVJMLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKICAgICB2b2lkIGRy
YXdQYXR0ZXJuRm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSYg
Y29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJh
Z21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDBmZTBkNjhhODlkZjQ3MDA2NjAyM2IzMzk1ZjUzNTQ1NGZkOTIxZDguLjY4ZGIwNzU1YzEz
Yzc1NzY3NWVjOGY5ZmRjMWQ0YzFkMmZjYTcwMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0wNy0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtHUFUgUHJvY2Vzc10gQ2FudmFzIGltYWdlIHJlbmRlcmluZyBjYW4gcmVuZGVyIGFyYml0
cmFyeSBET00gY29udGVudCBpbiB0aGUgR1BVIHByb2Nlc3MsIHdoaWNoIGlzIGFnYWluc3QgcG9s
aWN5IChmb3Igbm93KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjY3ODE2Mz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc291
cmNlcy9tYXNrLnN2ZzogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4t
Y2FudmFzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3N2Zy1t
YXNrLWluLWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9pbWFnZWJp
dG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1mbGlwWS1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxl
bWVudC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1mbGlwWS1leHBlY3RlZC50eHQuCisK
IDIwMjEtMDctMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBT
dWJ0bGVDcnlwdG8gc2hvdWxkIG9ubHkgYmUgZXhwb3NlZCB0byBzZWN1cmUgY29udGV4dHMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDVkNjJhNmU1YmYwODMzYmQ3MGI0ZTg2Njdi
YjViODMwMDgxODQ3MzEuLjA3NzI4Y2M0MWQzNjEwOTA4Y2ZlMTFlZjlkZWYxZGI3NzUwMDY5MDMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA3
LTA3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVSBQcm9jZXNzXSBDYW52YXMgaW1hZ2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJiaXRyYXJ5
IERPTSBjb250ZW50IGluIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBwb2xpY3kg
KGZvciBub3cpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjc1MTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhw
ZWN0ZWQudHh0OgorCiAyMDIxLTA3LTA2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3OTU0NiwgcjI3OTU1
NCwgcjI3OTU1OCBhbmQgcjI3OTU2Ny4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3Jlc291cmNlcy9tYXNrLnN2ZyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNl
cy9tYXNrLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGQ0YmM0YmYyYTk1NzNhZDNlOTkwN2FjNGY3YzZiODk5
NGIyNGFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3Vy
Y2VzL21hc2suc3ZnCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1cz
Qy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9E
VEQvc3ZnMTEuZHRkIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4
bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjMwMHB4IiBo
ZWlnaHQ9IjMwMHB4IiB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgdmVyc2lvbj0iMS4xIj4KKyAgICA8
ZGVmcz4KKyAgICAgICAgPG1hc2sgaWQ9Im1hc2siIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2Ui
IHg9IjAiIHk9IjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj4KKyAgICAgICAgICAgIDxyZWN0
IHg9IjUwIiB5PSI1MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZpbGw9IndoaXRlIi8+Cisg
ICAgICAgIDwvbWFzaz4KKyAgICA8L2RlZnM+CisgICAgPHJlY3QgeD0iMTAwIiB5PSIwIiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjMwMCIgZmlsbD0iYmxhY2siIG1hc2s9InVybCgjbWFzaykiLz4KKzwv
c3ZnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4tY2Fu
dmFzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zdmctbWFzay1pbi1j
YW52YXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjA5Y2UxZTBjNGJiMmYwM2Q1MWZlYWZi
MGJkODFhYTYwMmE3ODRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvc3ZnLW1hc2staW4tY2FudmFzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRl
c3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBibGFjayByZWN0YW5nbGUgd2l0aCBhIGdyZWVuIGJvcmRl
ciBiZWxvdy48L3A+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij4KKyAgICA8ZGl2
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwMHB4OyB0b3A6IDUwcHg7IHdpZHRo
OiAxMDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKyAgICA8
ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDdweDsgbGVmdDogOTdweDsgd2lk
dGg6IDZweDsgaGVpZ2h0OiAyMDZweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKyAgICA8
ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDdweDsgbGVmdDogMTk3cHg7IHdp
ZHRoOiA2cHg7IGhlaWdodDogMjA2cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAg
PGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQ3cHg7IGxlZnQ6IDk3cHg7IHdp
ZHRoOiAxMDZweDsgaGVpZ2h0OiA2cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAg
PGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDI0N3B4OyBsZWZ0OiA5N3B4OyB3
aWR0aDogMTA2cHg7IGhlaWdodDogNnB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2PgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9zdmctbWFzay1pbi1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2Zy1t
YXNrLWluLWNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2ZmRlNTkxNDU3ZDk5MjFiNGI3NWIxYTNi
OWRmYjQyZjkxYWQ0NjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9zdmctbWFzay1pbi1jYW52YXMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBwYXNzZXMg
aWYgeW91IHNlZSBhIGJsYWNrIHJlY3RhbmdsZSB3aXRoIGEgZ3JlZW4gYm9yZGVyIGJlbG93Ljwv
cD4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsiPgorICAgIDxjYW52YXMgaWQ9ImNh
bnZhcyIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiPjwvY2FudmFzPgorICAgIDxkaXYgc3R5bGU9
InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0N3B4OyBsZWZ0OiA5N3B4OyB3aWR0aDogNnB4OyBo
ZWlnaHQ6IDIwNnB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9
InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0N3B4OyBsZWZ0OiAxOTdweDsgd2lkdGg6IDZweDsg
aGVpZ2h0OiAyMDZweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDdweDsgbGVmdDogOTdweDsgd2lkdGg6IDEwNnB4
OyBoZWlnaHQ6IDZweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjQ3cHg7IGxlZnQ6IDk3cHg7IHdpZHRoOiAxMDZw
eDsgaGVpZ2h0OiA2cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CitsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworbGV0
IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK2xldCBpbWFnZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpOworaW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1
bmN0aW9uKCkgeworICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCAzMDAsIDMwMCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKK30pOworaW1hZ2Uuc3JjID0gInJlc291cmNlcy9tYXNrLnN2ZyI7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9pbWFnZWJpdG1hcC9jcmVhdGVJ
bWFnZUJpdG1hcC1mbGlwWS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRl
SW1hZ2VCaXRtYXAtZmxpcFktZXhwZWN0ZWQudHh0CmluZGV4IDYyOTRlZTFhMGU3MDdiNDRkNzE1
NmRhZDczYzUwZDU3NDZkMDFiZjIuLjgwZjA3OWNiYjc5MDRiMGZmZmVmMjJmN2M4MjU4ZWFjYjU0
ZjUxNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1m
bGlwWS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0
bWFwLWZsaXBZLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDcgQEAgUEFTUyBjcmVhdGVJbWFnZUJp
dG1hcCBmcm9tIGFuIEhUTUxWaWRlb0VsZW1lbnQgZnJvbSBhIGRhdGEgVVJMIGltYWdlT3JpZW50
YXRpb24KIFBBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBIVE1MSW1hZ2VFbGVt
ZW50IGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRl
ZCBJbWFnZUJpdG1hcAogUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgYml0bWFwIEhUTUxJ
bWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0
aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAogUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgdmVj
dG9yIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogIm5vbmUiLCBhbmQgZHJhd0lt
YWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwCi1GQUlMIGNyZWF0ZUltYWdlQml0bWFwIGZy
b20gYSB2ZWN0b3IgSFRNTEltYWdlRWxlbWVudCBpbWFnZU9yaWVudGF0aW9uOiAiZmxpcFkiLCBh
bmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwIGFzc2VydF9hcHByb3hfZXF1
YWxzOiBSZWQgY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDE1KSBleHBlY3RlZCAyNTUgKy8t
IDEwIGJ1dCBnb3QgMAorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgdmVjdG9yIEhUTUxJ
bWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0
aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAogRkFJTCBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgYml0
bWFwIFNWR0ltYWdlRWxlbWVudCBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBkcmF3SW1h
Z2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgogRkFJTCBj
cmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgYml0bWFwIFNWR0ltYWdlRWxlbWVudCBpbWFnZU9yaWVu
dGF0aW9uOiAiZmxpcFkiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFw
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIHZlY3Rv
ciBTVkdJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogIm5vbmUiLCBhbmQgZHJhd0ltYWdl
IG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFw
LWZsaXBZLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFw
L2NyZWF0ZUltYWdlQml0bWFwLWZsaXBZLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Mjk0ZWUx
YTBlNzA3YjQ0ZDcxNTZkYWQ3M2M1MGQ1NzQ2ZDAxYmYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKKworUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBm
cm9tIGFuIEhUTUxDYW52YXNFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRy
YXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAorUEFTUyBjcmVhdGVJbWFnZUJpdG1h
cCBmcm9tIGFuIEhUTUxDYW52YXNFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJmbGlwWSIsIGFu
ZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VC
aXRtYXAgZnJvbSBhbiBIVE1MVmlkZW9FbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJub25lIiwg
YW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAorUEFTUyBjcmVhdGVJbWFn
ZUJpdG1hcCBmcm9tIGFuIEhUTUxWaWRlb0VsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZ
IiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAorUEFTUyBjcmVhdGVJ
bWFnZUJpdG1hcCBmcm9tIGFuIEhUTUxWaWRlb0VsZW1lbnQgZnJvbSBhIGRhdGEgVVJMIGltYWdl
T3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJp
dG1hcAorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGFuIEhUTUxWaWRlb0VsZW1lbnQgZnJv
bSBhIGRhdGEgVVJMIGltYWdlT3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24g
dGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJp
dG1hcCBIVE1MSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJ
bWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBm
cm9tIGEgYml0bWFwIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwg
YW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAorUEFTUyBjcmVhdGVJbWFn
ZUJpdG1hcCBmcm9tIGEgdmVjdG9yIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjog
Im5vbmUiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwCitGQUlMIGNy
ZWF0ZUltYWdlQml0bWFwIGZyb20gYSB2ZWN0b3IgSFRNTEltYWdlRWxlbWVudCBpbWFnZU9yaWVu
dGF0aW9uOiAiZmxpcFkiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFw
IGFzc2VydF9hcHByb3hfZXF1YWxzOiBSZWQgY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDE1
KSBleHBlY3RlZCAyNTUgKy8tIDEwIGJ1dCBnb3QgMAorRkFJTCBjcmVhdGVJbWFnZUJpdG1hcCBm
cm9tIGEgYml0bWFwIFNWR0ltYWdlRWxlbWVudCBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFu
ZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9y
IgorRkFJTCBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgYml0bWFwIFNWR0ltYWdlRWxlbWVudCBp
bWFnZU9yaWVudGF0aW9uOiAiZmxpcFkiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIElt
YWdlQml0bWFwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJv
bSBhIHZlY3RvciBTVkdJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogIm5vbmUiLCBhbmQg
ZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIK
K0ZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIHZlY3RvciBTVkdJbWFnZUVsZW1lbnQgaW1h
Z2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFn
ZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCitGQUlMIGNyZWF0ZUltYWdlQml0bWFwIGZyb20g
YW4gT2Zmc2NyZWVuQ2FudmFzIGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFn
ZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogT2Zmc2NyZWVuQ2FudmFzIgorRkFJTCBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGFuIE9m
ZnNjcmVlbkNhbnZhcyBpbWFnZU9yaWVudGF0aW9uOiAiZmxpcFkiLCBhbmQgZHJhd0ltYWdlIG9u
IHRoZSBjcmVhdGVkIEltYWdlQml0bWFwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBPZmZzY3JlZW5DYW52YXMiCitQQVNTIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYW4gSW1hZ2VE
YXRhIGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRl
ZCBJbWFnZUJpdG1hcAorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGFuIEltYWdlRGF0YSBp
bWFnZU9yaWVudGF0aW9uOiAiZmxpcFkiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIElt
YWdlQml0bWFwCitQQVNTIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYW4gSW1hZ2VCaXRtYXAgaW1h
Z2VPcmllbnRhdGlvbjogIm5vbmUiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdl
Qml0bWFwCitQQVNTIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYW4gSW1hZ2VCaXRtYXAgaW1hZ2VP
cmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJp
dG1hcAorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgQmxvYiBpbWFnZU9yaWVudGF0aW9u
OiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1Mg
Y3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIEJsb2IgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwg
YW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433075</attachid>
            <date>2021-07-07 14:15:13 -0700</date>
            <delta_ts>2021-07-07 23:55:02 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-227519-20210707141512.patch</filename>
            <type>text/plain</type>
            <size>20165</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM5MjYxMTdlODIyYzU4
ZjcxMTFkNGNhNjgxYjg2ZjI0ZWFhNDMyMy4uMzMzNzc5OThhYmI0NzBlZTAyZmU0MTQ2MTZhMDRh
MzhiODRjNGQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA3LTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBDYW52YXMgaW1hZ2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJiaXRyYXJ5IERPTSBjb250
ZW50IGluIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBwb2xpY3kgKGZvciBub3cp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlbmRlcmluZyBhcmJpdHJhcnkgRE9NIGNvbnRlbnQg
aW4gdGhlIEdQVSBwcm9jZXNzIGlzbid0IHN1cHBvcnRlZCB5ZXQsIGJ1dCBjYW52YXMgcmVuZGVy
aW5nIGlzLiBIb3dldmVyLAorICAgICAgICBjYW52YXMgaGFzIGEgZHJhd0ltYWdlKCkgZnVuY3Rp
b24gd2hpY2ggY2FuIGFjY2VwdCBhbiBIVE1MSW1hZ2VFbGVtZW50IGFzIGl0cyBzb3VyY2UsIGFu
ZCBhbiBIVE1MSW1hZ2VFbGVtZW50CisgICAgICAgIGNhbiBoYXZlIGFuIFNWRyBkb2N1bWVudCBh
cyBpdHMgc291cmNlLCB3aGljaCB3b3VsZCBlbmQgdXAgdHJpZ2dlcmluZyBvdXIgRE9NIGNvZGVw
YXRoIGluIGNhbnZhcyBhbmQgdGh1cworICAgICAgICBpbiB0aGUgR1BVIHByb2Nlc3MuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBkaXNhYmxlcyB0aGlzIGZvciBub3csIGJ5IHJlbmRlcmluZyB0aGUg
U1ZHIGludG8gYW4gSW1hZ2VCdWZmZXIgYW5kIHRoZW4gZHJhd2luZyB0aGUgSW1hZ2VCdWZmZXIK
KyAgICAgICAgaW4gdGhlIEdQVSBwcm9jZXNzLiBXaGVuIHdlIGV2ZW50dWFsbHkgaW1wbGVtZW50
IGFyYml0cmFyeSBET00gcmVuZGVyaW5nIGluIHRoZSBHUFUgcHJvY2VzcywgdGhpcyBwYXRjaCB3
aWxsCisgICAgICAgIG5lZWQgdG8gYmUgcmV2ZXJ0ZWQuCisKKyAgICAgICAgVGVzdDogZmFzdC9p
bWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3SW1hZ2UpOgorICAgICAgICAqIHN2
Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6bmF0
aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRyYXdBc05hdGl2ZUltYWdl
KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDoKKwogMjAyMS0wNy0wNyAgVGlt
IE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBzZXRCb29sZWFuQXR0cmli
dXRlIGluc3RlYWQgb2Ygc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihYLCBZID8g
ZW1wdHlBdG9tKCkgOiBudWxsQXRvbSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcAppbmRleCBiOGEyZGI5Y2UwZGYxYzk5MmI1ZWM0N2VhMDcwN2M4ZmI1Zjg1OGJh
Li5iM2RhOWVkY2RjNzRjMjMyOTRmZGQ2MTI1YmFkMTE1Njc2MWM4NzQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTVkdJbWFnZS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0
cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC0xOTgsNiArMTk5
LDE3IEBAIHZvaWQgUmVjb3JkZXI6OmFwcGVuZERyYXdHbHlwaHNJdGVtV2l0aENhY2hlZEZvbnQo
Y29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCCiAgICAgYXBwZW5kPERyYXdHbHlwaHM+KGZv
bnQsIGdseXBocywgYWR2YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hvciwgc21vb3RoaW5nTW9kZSk7
CiB9CiAKK0ltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIGlmIChpczxTVkdJbWFn
ZT4oaW1hZ2UpKSB7CisgICAgICAgIC8vIERpc3BsYXkgbGlzdCBkcmF3aW5nIGNhbid0IGhhbmRs
ZSBhcmJpdHJhcnkgRE9NIGNvbnRlbnQuCisgICAgICAgIC8vIEZJWE1FIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3NDg6IFJlbW92ZSB0aGlzIHdoZW4gaXQgY2Fu
LgorICAgICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1
YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7
CisgICAgICAgIHJldHVybiBkb3duY2FzdDxTVkdJbWFnZT4oaW1hZ2UpLmRyYXdBc05hdGl2ZUlt
YWdlKCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKKyAgICB9CisgICAgcmV0
dXJuIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNl
LCBvcHRpb25zKTsKK30KKwogdm9pZCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6
OkltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKICAgICBpZiAoIWNhbkRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDYxYmY3OWQ0ODA4ZGE2MGNiYTk1
YTQzMDEzNjAwNWRmNmFhNGYwYzMuLmNkZTRiZWE1YWM0ODY0YmYxNTFmNGFiZjhmOWNhYjhlMThl
NjIxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMTIzLDYg
KzEyMyw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFwcGVuZERyYXdHbHlwaHNJdGVtV2l0aENh
Y2hlZEZvbnQoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlw
aEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxB
bmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlKTsKIAorICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9u
OjpGcm9tSW1hZ2UgfSkgZmluYWw7CisKICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3Jl
OjpJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwogICAgIHZv
aWQgZHJhd05hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKICAgICB2b2lkIGRyYXdQYXR0ZXJu
KE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IGU3Njk3MTI0ZDE4NTI2ZTgxMTgyNzA2ZmVhMWZjOGVj
ODNlMDYxMGEuLjIyNTE5YWZiZDIyYzFhMDJiMTM1MzMxNzhkMTkxMTMyODY0OTZlM2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMjEzLDE5ICsyMTMsMjYg
QEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJh
bWUoY29uc3QgR3JhcGhpY3NDb250ZXh0KgogfQogCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IFNWR0lt
YWdlOjpuYXRpdmVJbWFnZShjb25zdCBHcmFwaGljc0NvbnRleHQqKQoreworICAgIHJldHVybiBu
YXRpdmVJbWFnZShzaXplKCksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNpemUoKSkpOworfQor
CitSZWZQdHI8TmF0aXZlSW1hZ2U+IFNWR0ltYWdlOjpuYXRpdmVJbWFnZShjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VSZWN0KQogewogICAgIGlmICgh
bV9wYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIg
PSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRl
ZCwgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIFBpeGVsRm9ybWF0OjpCR1JBOCk7
CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoaW1hZ2VTaXplLCBS
ZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNS
R0IoKSwgUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gaW1hZ2VP
YnNlcnZlcigpOwotCiAgICAgc2V0SW1hZ2VPYnNlcnZlcihudWxscHRyKTsKLSAgICBzZXRDb250
YWluZXJTaXplKHNpemUoKSk7CiAKKyAgICBhdXRvIHNjYWxlRmFjdG9yID0gaW1hZ2VTaXplIC8g
c291cmNlUmVjdC5zaXplKCk7CisgICAgc2V0Q29udGFpbmVyU2l6ZShzaXplKCkpOworICAgIGlt
YWdlQnVmZmVyLT5jb250ZXh0KCkuc2NhbGUoc2NhbGVGYWN0b3IpOworICAgIGltYWdlQnVmZmVy
LT5jb250ZXh0KCkudHJhbnNsYXRlKC1zb3VyY2VSZWN0LmxvY2F0aW9uKCkpOwogICAgIGltYWdl
QnVmZmVyLT5jb250ZXh0KCkuZHJhd0ltYWdlKCp0aGlzLCBGbG9hdFBvaW50KDAsIDApKTsKIAog
ICAgIHNldEltYWdlT2JzZXJ2ZXIob2JzZXJ2ZXIpOwpAQCAtMzIyLDYgKzMyOSwyOSBAQCBJbWFn
ZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIGRzdFJlYwogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7
CiB9CiAKKworSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3QXNOYXRpdmVJbWFnZShHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
K3sKKyAgICBBU1NFUlQoIWNvbnRleHQuaGFzUGxhdGZvcm1Db250ZXh0KCkpOworCisgICAgYXV0
byByZWN0SW5OYXRpdmVJbWFnZSA9IEZsb2F0UmVjdCB7IHsgfSwgZGVzdGluYXRpb24uc2l6ZSgp
IH07CisgICAgYXV0byBuYXRpdmVJbWFnZSA9IHRoaXMtPm5hdGl2ZUltYWdlKHJlY3RJbk5hdGl2
ZUltYWdlLnNpemUoKSwgc291cmNlKTsKKyAgICBpZiAoIW5hdGl2ZUltYWdlKQorICAgICAgICBy
ZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOworCisgICAgYXV0byBsb2NhbEltYWdl
UGFpbnRpbmdPcHRpb25zID0gb3B0aW9uczsKKyAgICBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRh
dGlvbiBvcmllbnRhdGlvbiA9IG9wdGlvbnMub3JpZW50YXRpb24oKTsKKyAgICBpZiAob3JpZW50
YXRpb24gPT0gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246OkZyb21JbWFnZSkKKyAgICAg
ICAgbG9jYWxJbWFnZVBhaW50aW5nT3B0aW9ucyA9IEltYWdlUGFpbnRpbmdPcHRpb25zKG9wdGlv
bnMsIEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uOjpOb25lKTsKKworICAgIGNvbnRleHQu
ZHJhd05hdGl2ZUltYWdlKCpuYXRpdmVJbWFnZSwgcmVjdEluTmF0aXZlSW1hZ2Uuc2l6ZSgpLCBk
ZXN0aW5hdGlvbiwgcmVjdEluTmF0aXZlSW1hZ2UsIGxvY2FsSW1hZ2VQYWludGluZ09wdGlvbnMp
OworCisgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKKyAgICAgICAgaW1hZ2VPYnNlcnZlcigpLT5k
aWREcmF3KCp0aGlzKTsKKworICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7Cit9
CisKIFJlbmRlckJveCogU1ZHSW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0CiB7CiAg
ICAgYXV0byByb290RWxlbWVudCA9IHRoaXMtPnJvb3RFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdJbWFnZS5oCmluZGV4IDJiNTVmMDYwYmE0ZDZkYjY1ZDFkNGM2ZTQ4YjMx
YTRiODhlZTk1ZjYuLjVkN2I5MzUwMTA5N2NmOWE0MTA1ZTdiNzNhZTVkZTM5NzhmMjBkOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC02NCw2ICs2NCw4IEBAIHB1
YmxpYzoKIAogICAgIFBhZ2UqIGludGVybmFsUGFnZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsg
fQogCisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdBc05hdGl2ZUltYWdlKEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBTVkdJbWFnZUNocm9tZUNsaWVudDsKICAgICBmcmllbmQgY2xhc3MgU1ZHSW1h
Z2VGb3JDb250YWluZXI7CkBAIC04OCwxMSArOTAsMTIgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0
cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoY29uc3QgR3JhcGhpY3ND
b250ZXh0KiA9IG51bGxwdHIpIGZpbmFsOwogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZl
SW1hZ2UoY29uc3QgR3JhcGhpY3NDb250ZXh0KiA9IG51bGxwdHIpIGZpbmFsOworICAgIFJlZlB0
cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2UoY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlUmVjdCk7CiAKICAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uVGlt
ZXJGaXJlZCgpOwogCiAgICAgZXhwbGljaXQgU1ZHSW1hZ2UoSW1hZ2VPYnNlcnZlciYpOwotICAg
IEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYg
ZnJvbVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdG9SZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgPSB7IH0pIGZpbmFsOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291
cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOwogICAgIEltYWdl
RHJhd1Jlc3VsdCBkcmF3Rm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
U2l6ZSBjb250YWluZXJTaXplLCBmbG9hdCBjb250YWluZXJab29tLCBjb25zdCBVUkwmIGluaXRp
YWxGcmFnbWVudFVSTCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAgICAgdm9pZCBk
cmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFNpemUm
IGNvbnRhaW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZy
YWdtZW50VVJMLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAwZmUwZDY4YTg5ZGY0NzAwNjYwMjNiMzM5NWY1MzU0NTRmZDkyMWQ4Li42OGRiMDc1NWMx
M2M3NTc2NzVlYzhmOWZkYzFkNGMxZDJmY2E3MDJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjEtMDctMDcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAg
ICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBpbWFnZSByZW5kZXJpbmcgY2FuIHJlbmRlciBhcmJp
dHJhcnkgRE9NIGNvbnRlbnQgaW4gdGhlIEdQVSBwcm9jZXNzLCB3aGljaCBpcyBhZ2FpbnN0IHBv
bGljeSAoZm9yIG5vdykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzUxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzY2NzgxNjM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9yZXNv
dXJjZXMvbWFzay5zdmc6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3N2Zy1tYXNrLWlu
LWNhbnZhcy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9zdmct
bWFzay1pbi1jYW52YXMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2Vi
aXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhwZWN0ZWQudHh0Lgor
CiAyMDIxLTA3LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
U3VidGxlQ3J5cHRvIHNob3VsZCBvbmx5IGJlIGV4cG9zZWQgdG8gc2VjdXJlIGNvbnRleHRzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA1ZDYyYTZlNWJmMDgzM2JkNzBiNGU4NjY3
YmI1YjgzMDA4MTg0NzMxLi4wNzcyOGNjNDFkMzYxMDkwOGNmZTExZWY5ZGVmMWRiNzc1MDA2OTAz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0w
Ny0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAg
IFtHUFUgUHJvY2Vzc10gQ2FudmFzIGltYWdlIHJlbmRlcmluZyBjYW4gcmVuZGVyIGFyYml0cmFy
eSBET00gY29udGVudCBpbiB0aGUgR1BVIHByb2Nlc3MsIHdoaWNoIGlzIGFnYWluc3QgcG9saWN5
IChmb3Igbm93KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI3NTE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjY3ODE2Mz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLWZsaXBZLWV4
cGVjdGVkLnR4dDoKKwogMjAyMS0wNy0wNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzk1NDYsIHIyNzk1
NTQsIHIyNzk1NTggYW5kIHIyNzk1NjcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9yZXNvdXJjZXMvbWFzay5zdmcgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJj
ZXMvbWFzay5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRkNGJjNGJmMmE5NTczYWQzZTk5MDdhYzRmN2M2Yjg5
OTRiMjRhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291
cmNlcy9tYXNrLnN2ZwpAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9X
M0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEv
RFREL3N2ZzExLmR0ZCI+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIg
eG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzMDBweCIg
aGVpZ2h0PSIzMDBweCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIHZlcnNpb249IjEuMSI+CisgICAg
PGRlZnM+CisgICAgICAgIDxtYXNrIGlkPSJtYXNrIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNl
IiB4PSIwIiB5PSIwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCI+CisgICAgICAgICAgICA8cmVj
dCB4PSI1MCIgeT0iNTAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJ3aGl0ZSIvPgor
ICAgICAgICA8L21hc2s+CisgICAgPC9kZWZzPgorICAgIDxyZWN0IHg9IjEwMCIgeT0iMCIgd2lk
dGg9IjEwMCIgaGVpZ2h0PSIzMDAiIGZpbGw9ImJsYWNrIiBtYXNrPSJ1cmwoI21hc2spIi8+Cis8
L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2Zy1tYXNrLWluLWNh
bnZhcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4t
Y2FudmFzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIwOWNlMWUwYzRiYjJmMDNkNTFmZWFm
YjBiZDgxYWE2MDJhNzg0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3N2Zy1tYXNrLWluLWNhbnZhcy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgYmxhY2sgcmVjdGFuZ2xlIHdpdGggYSBncmVlbiBib3Jk
ZXIgYmVsb3cuPC9wPgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CisgICAgPGRp
diBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMDBweDsgdG9wOiA1MHB4OyB3aWR0
aDogMTAwcHg7IGhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAg
PGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQ3cHg7IGxlZnQ6IDk3cHg7IHdp
ZHRoOiA2cHg7IGhlaWdodDogMjA2cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAg
PGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQ3cHg7IGxlZnQ6IDE5N3B4OyB3
aWR0aDogNnB4OyBoZWlnaHQ6IDIwNnB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2PgorICAg
IDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0N3B4OyBsZWZ0OiA5N3B4OyB3
aWR0aDogMTA2cHg7IGhlaWdodDogNnB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2PgorICAg
IDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAyNDdweDsgbGVmdDogOTdweDsg
d2lkdGg6IDEwNnB4OyBoZWlnaHQ6IDZweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zdmct
bWFzay1pbi1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmZkZTU5MTQ1N2Q5OTIxYjRiNzViMWEz
YjlkZmI0MmY5MWFkNDY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcGFzc2Vz
IGlmIHlvdSBzZWUgYSBibGFjayByZWN0YW5nbGUgd2l0aCBhIGdyZWVuIGJvcmRlciBiZWxvdy48
L3A+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij4KKyAgICA8Y2FudmFzIGlkPSJj
YW52YXMiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj48L2NhbnZhcz4KKyAgICA8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDdweDsgbGVmdDogOTdweDsgd2lkdGg6IDZweDsg
aGVpZ2h0OiAyMDZweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDdweDsgbGVmdDogMTk3cHg7IHdpZHRoOiA2cHg7
IGhlaWdodDogMjA2cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAgPGRpdiBzdHls
ZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQ3cHg7IGxlZnQ6IDk3cHg7IHdpZHRoOiAxMDZw
eDsgaGVpZ2h0OiA2cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAgPGRpdiBzdHls
ZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDI0N3B4OyBsZWZ0OiA5N3B4OyB3aWR0aDogMTA2
cHg7IGhlaWdodDogNnB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2PgorPC9kaXY+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK2xl
dCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CitsZXQgaW1hZ2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbWciKTsKK2ltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBm
dW5jdGlvbigpIHsKKyAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgMzAwLCAzMDAp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Cit9KTsKK2ltYWdlLnNyYyA9ICJyZXNvdXJjZXMvbWFzay5zdmciOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRl
SW1hZ2VCaXRtYXAtZmxpcFktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2NyZWF0
ZUltYWdlQml0bWFwLWZsaXBZLWV4cGVjdGVkLnR4dAppbmRleCA2Mjk0ZWUxYTBlNzA3YjQ0ZDcx
NTZkYWQ3M2M1MGQ1NzQ2ZDAxYmYyLi44MGYwNzljYmI3OTA0YjBmZmZlZjIyZjdjODI1OGVhY2I1
NGY1MTYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAt
ZmxpcFktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJp
dG1hcC1mbGlwWS1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3IEBAIFBBU1MgY3JlYXRlSW1hZ2VC
aXRtYXAgZnJvbSBhbiBIVE1MVmlkZW9FbGVtZW50IGZyb20gYSBkYXRhIFVSTCBpbWFnZU9yaWVu
dGF0aW9uCiBQQVNTIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYSBiaXRtYXAgSFRNTEltYWdlRWxl
bWVudCBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0
ZWQgSW1hZ2VCaXRtYXAKIFBBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBIVE1M
SW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24g
dGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKIFBBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIHZl
Y3RvciBIVE1MSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJ
bWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAotRkFJTCBjcmVhdGVJbWFnZUJpdG1hcCBm
cm9tIGEgdmVjdG9yIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwg
YW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBhc3NlcnRfYXBwcm94X2Vx
dWFsczogUmVkIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCAxNSkgZXhwZWN0ZWQgMjU1ICsv
LSAxMCBidXQgZ290IDAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIHZlY3RvciBIVE1M
SW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24g
dGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKIEZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJp
dG1hcCBTVkdJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogIm5vbmUiLCBhbmQgZHJhd0lt
YWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwg
Y3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBTVkdJbWFnZUVsZW1lbnQgaW1hZ2VPcmll
bnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1h
cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IFR5cGUgZXJyb3IiCiBGQUlMIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYSB2ZWN0
b3IgU1ZHSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFn
ZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1h
cC1mbGlwWS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9pbWFnZWJpdG1h
cC9jcmVhdGVJbWFnZUJpdG1hcC1mbGlwWS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI5NGVl
MWEwZTcwN2I0NGQ3MTU2ZGFkNzNjNTBkNTc0NmQwMWJmMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLWZsaXBZ
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACisKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAg
ZnJvbSBhbiBIVE1MQ2FudmFzRWxlbWVudCBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBk
cmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRt
YXAgZnJvbSBhbiBIVE1MQ2FudmFzRWxlbWVudCBpbWFnZU9yaWVudGF0aW9uOiAiZmxpcFkiLCBh
bmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwCitQQVNTIGNyZWF0ZUltYWdl
Qml0bWFwIGZyb20gYW4gSFRNTFZpZGVvRWxlbWVudCBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIs
IGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1h
Z2VCaXRtYXAgZnJvbSBhbiBIVE1MVmlkZW9FbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJmbGlw
WSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRl
SW1hZ2VCaXRtYXAgZnJvbSBhbiBIVE1MVmlkZW9FbGVtZW50IGZyb20gYSBkYXRhIFVSTCBpbWFn
ZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VC
aXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhbiBIVE1MVmlkZW9FbGVtZW50IGZy
b20gYSBkYXRhIFVSTCBpbWFnZU9yaWVudGF0aW9uOiAiZmxpcFkiLCBhbmQgZHJhd0ltYWdlIG9u
IHRoZSBjcmVhdGVkIEltYWdlQml0bWFwCitQQVNTIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYSBi
aXRtYXAgSFRNTEltYWdlRWxlbWVudCBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBkcmF3
SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAg
ZnJvbSBhIGJpdG1hcCBIVE1MSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJmbGlwWSIs
IGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1h
Z2VCaXRtYXAgZnJvbSBhIHZlY3RvciBIVE1MSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246
ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAorRkFJTCBj
cmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgdmVjdG9yIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2VPcmll
bnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1h
cCBhc3NlcnRfYXBwcm94X2VxdWFsczogUmVkIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCAx
NSkgZXhwZWN0ZWQgMjU1ICsvLSAxMCBidXQgZ290IDAKK0ZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAg
ZnJvbSBhIGJpdG1hcCBTVkdJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogIm5vbmUiLCBh
bmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJv
ciIKK0ZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBTVkdJbWFnZUVsZW1lbnQg
aW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJ
bWFnZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCitGQUlMIGNyZWF0ZUltYWdlQml0bWFwIGZy
b20gYSB2ZWN0b3IgU1ZHSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5k
IGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3Ii
CitGQUlMIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYSB2ZWN0b3IgU1ZHSW1hZ2VFbGVtZW50IGlt
YWdlT3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1h
Z2VCaXRtYXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgorRkFJTCBjcmVhdGVJbWFnZUJpdG1hcCBmcm9t
IGFuIE9mZnNjcmVlbkNhbnZhcyBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBkcmF3SW1h
Z2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IE9mZnNjcmVlbkNhbnZhcyIKK0ZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhbiBP
ZmZzY3JlZW5DYW52YXMgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBv
biB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogT2Zmc2NyZWVuQ2FudmFzIgorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGFuIEltYWdl
RGF0YSBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0
ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhbiBJbWFnZURhdGEg
aW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJ
bWFnZUJpdG1hcAorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGFuIEltYWdlQml0bWFwIGlt
YWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFn
ZUJpdG1hcAorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGFuIEltYWdlQml0bWFwIGltYWdl
T3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VC
aXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIEJsb2IgaW1hZ2VPcmllbnRhdGlv
bjogIm5vbmUiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwCitQQVNT
IGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYSBCbG9iIGltYWdlT3JpZW50YXRpb246ICJmbGlwWSIs
IGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKKwo=
</data>
<flag name="commit-queue"
          id="455219"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433121</attachid>
            <date>2021-07-07 23:56:58 -0700</date>
            <delta_ts>2021-07-08 08:53:01 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-227519-20210707235657.patch</filename>
            <type>text/plain</type>
            <size>17336</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Njc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc0NzY5NjA4M2M0MjY2
NTA4ZTgxOTY5ZmRmZTcxMzcyZThlMDEwNy4uNGEzMTc4MDQzODM5ZTMxMDM1OWY5MTllNWExNzE0
MjY3ZTVhYTJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA3LTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBDYW52YXMgaW1hZ2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJiaXRyYXJ5IERPTSBjb250
ZW50IGluIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBwb2xpY3kgKGZvciBub3cp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlbmRlcmluZyBhcmJpdHJhcnkgRE9NIGNvbnRlbnQg
aW4gdGhlIEdQVSBwcm9jZXNzIGlzbid0IHN1cHBvcnRlZCB5ZXQsIGJ1dCBjYW52YXMgcmVuZGVy
aW5nIGlzLiBIb3dldmVyLAorICAgICAgICBjYW52YXMgaGFzIGEgZHJhd0ltYWdlKCkgZnVuY3Rp
b24gd2hpY2ggY2FuIGFjY2VwdCBhbiBIVE1MSW1hZ2VFbGVtZW50IGFzIGl0cyBzb3VyY2UsIGFu
ZCBhbiBIVE1MSW1hZ2VFbGVtZW50CisgICAgICAgIGNhbiBoYXZlIGFuIFNWRyBkb2N1bWVudCBh
cyBpdHMgc291cmNlLCB3aGljaCB3b3VsZCBlbmQgdXAgdHJpZ2dlcmluZyBvdXIgRE9NIGNvZGVw
YXRoIGluIGNhbnZhcyBhbmQgdGh1cworICAgICAgICBpbiB0aGUgR1BVIHByb2Nlc3MuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBkaXNhYmxlcyB0aGlzIGZvciBub3csIGJ5IHJlbmRlcmluZyB0aGUg
U1ZHIGludG8gYW4gSW1hZ2VCdWZmZXIgYW5kIHRoZW4gZHJhd2luZyB0aGUgSW1hZ2VCdWZmZXIK
KyAgICAgICAgaW4gdGhlIEdQVSBwcm9jZXNzLiBXaGVuIHdlIGV2ZW50dWFsbHkgaW1wbGVtZW50
IGFyYml0cmFyeSBET00gcmVuZGVyaW5nIGluIHRoZSBHUFUgcHJvY2VzcywgdGhpcyBwYXRjaCB3
aWxsCisgICAgICAgIG5lZWQgdG8gYmUgcmV2ZXJ0ZWQuCisKKyAgICAgICAgVGVzdDogZmFzdC9p
bWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWwKKworICAgICAgICAqIHN2Zy9ncmFwaGljcy9T
VkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6bmF0aXZlSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
SW1hZ2U6OmRyYXdBc05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuaDoKKwogMjAyMS0wNy0wNyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBVbmV4cGVjdGVkIGNvbnRlbnQgd3JhcCB3aGVuIHRoZSBjb250YWlu
aW5nIGJsb2NrIHdpZHRoIGlzIGZpeGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmNwcAppbmRleCBlNzY5NzEyNGQxODUyNmU4MTE4MjcwNmZlYTFmYzhlYzgzZTA2MTBhLi5k
NjM5M2QyMmM5YmU5Yzc0YmJhNzc1YWM1YTIxZTVkYzc1YWMwMDQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTIxMywxOSArMjEzLDI2IEBAIFJlZlB0cjxO
YXRpdmVJbWFnZT4gU1ZHSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKGNvbnN0IEdy
YXBoaWNzQ29udGV4dCoKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBTVkdJbWFnZTo6bmF0aXZl
SW1hZ2UoY29uc3QgR3JhcGhpY3NDb250ZXh0KikKK3sKKyAgICByZXR1cm4gbmF0aXZlSW1hZ2Uo
c2l6ZSgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzaXplKCkpKTsKK30KKworUmVmUHRyPE5h
dGl2ZUltYWdlPiBTVkdJbWFnZTo6bmF0aXZlSW1hZ2UoY29uc3QgRmxvYXRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlUmVjdCkKIHsKICAgICBpZiAoIW1fcGFnZSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZm
ZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEsIERlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdSQTgpOworICAgIGF1dG8g
aW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGltYWdlU2l6ZSwgUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZCwgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIFBpeGVs
Rm9ybWF0OjpCR1JBOCk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IGltYWdlT2JzZXJ2ZXIoKTsK
LQogICAgIHNldEltYWdlT2JzZXJ2ZXIobnVsbHB0cik7CiAgICAgc2V0Q29udGFpbmVyU2l6ZShz
aXplKCkpOwogCisgICAgYXV0byBzY2FsZUZhY3RvciA9IGltYWdlU2l6ZSAvIHNvdXJjZVJlY3Qu
c2l6ZSgpOworICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkuc2NhbGUoc2NhbGVGYWN0b3IpOwor
ICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkudHJhbnNsYXRlKC1zb3VyY2VSZWN0LmxvY2F0aW9u
KCkpOwogICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkuZHJhd0ltYWdlKCp0aGlzLCBGbG9hdFBv
aW50KDAsIDApKTsKIAogICAgIHNldEltYWdlT2JzZXJ2ZXIob2JzZXJ2ZXIpOwpAQCAtMjczLDYg
KzI4MCwxMiBAQCBJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlYwogICAgIGlmICghbV9wYWdlKQogICAg
ICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCisgICAgaWYgKCFjb250
ZXh0Lmhhc1BsYXRmb3JtQ29udGV4dCgpKSB7CisgICAgICAgIC8vIERpc3BsYXkgbGlzdCBkcmF3
aW5nIGNhbid0IGhhbmRsZSBhcmJpdHJhcnkgRE9NIGNvbnRlbnQuCisgICAgICAgIC8vIEZJWE1F
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3NDg6IFJlbW92ZSB0
aGlzIHdoZW4gaXQgY2FuLgorICAgICAgICByZXR1cm4gZHJhd0FzTmF0aXZlSW1hZ2UoY29udGV4
dCwgZHN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CisgICAgfQorCiAgICAgYXV0byB2aWV3ID0g
bWFrZVJlZlB0cihmcmFtZVZpZXcoKSk7CiAgICAgQVNTRVJUKHZpZXcpOwogCkBAIC0zMjIsNiAr
MzM1LDI5IEBAIEltYWdlRHJhd1Jlc3VsdCBTVkdJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjCiAgICAgcmV0dXJuIEltYWdlRHJhd1Jl
c3VsdDo6RGlkRHJhdzsKIH0KIAorCitJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXdBc05h
dGl2ZUltYWdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQoreworICAgIEFTU0VSVCghY29udGV4dC5oYXNQbGF0Zm9ybUNvbnRleHQo
KSk7CisKKyAgICBhdXRvIHJlY3RJbk5hdGl2ZUltYWdlID0gRmxvYXRSZWN0IHsgeyB9LCBkZXN0
aW5hdGlvbi5zaXplKCkgfTsKKyAgICBhdXRvIG5hdGl2ZUltYWdlID0gdGhpcy0+bmF0aXZlSW1h
Z2UocmVjdEluTmF0aXZlSW1hZ2Uuc2l6ZSgpLCBzb3VyY2UpOworICAgIGlmICghbmF0aXZlSW1h
Z2UpCisgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CisKKyAgICBh
dXRvIGxvY2FsSW1hZ2VQYWludGluZ09wdGlvbnMgPSBvcHRpb25zOworICAgIEltYWdlT3JpZW50
YXRpb246Ok9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gb3B0aW9ucy5vcmllbnRhdGlvbigpOwor
ICAgIGlmIChvcmllbnRhdGlvbiA9PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbjo6RnJv
bUltYWdlKQorICAgICAgICBsb2NhbEltYWdlUGFpbnRpbmdPcHRpb25zID0gSW1hZ2VQYWludGlu
Z09wdGlvbnMob3B0aW9ucywgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb246Ok5vbmUpOwor
CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKm5hdGl2ZUltYWdlLCByZWN0SW5OYXRpdmVJ
bWFnZS5zaXplKCksIGRlc3RpbmF0aW9uLCByZWN0SW5OYXRpdmVJbWFnZSwgbG9jYWxJbWFnZVBh
aW50aW5nT3B0aW9ucyk7CisKKyAgICBpZiAoaW1hZ2VPYnNlcnZlcigpKQorICAgICAgICBpbWFn
ZU9ic2VydmVyKCktPmRpZERyYXcoKnRoaXMpOworCisgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3Vs
dDo6RGlkRHJhdzsKK30KKwogUmVuZGVyQm94KiBTVkdJbWFnZTo6ZW1iZWRkZWRDb250ZW50Qm94
KCkgY29uc3QKIHsKICAgICBhdXRvIHJvb3RFbGVtZW50ID0gdGhpcy0+cm9vdEVsZW1lbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggMmI1NWYwNjBiYTRkNmRi
NjVkMWQ0YzZlNDhiMzFhNGI4OGVlOTVmNi4uZDBmZjA1MzA4YjljMWQ0NDNhMmFjYjBlNzYwN2Zj
NmViYWIxYTNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKQEAgLTg4
LDExICs4OCwxMyBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRGcmFtZShjb25zdCBHcmFwaGljc0NvbnRleHQqID0gbnVsbHB0cikgZmlu
YWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZShjb25zdCBHcmFwaGljc0Nv
bnRleHQqID0gbnVsbHB0cikgZmluYWw7CisgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZShjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VS
ZWN0KTsKIAogICAgIHZvaWQgc3RhcnRBbmltYXRpb25UaW1lckZpcmVkKCk7CiAKICAgICBleHBs
aWNpdCBTVkdJbWFnZShJbWFnZU9ic2VydmVyJik7Ci0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXco
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBmcm9tUmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiB0b1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7Cisg
ICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdBc05hdGl2
ZUltYWdlKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0p
OwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3Rm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0U2l6ZSBjb250YWluZXJTaXplLCBmbG9hdCBjb250YWluZXJab29tLCBjb25z
dCBVUkwmIGluaXRpYWxGcmFnbWVudFVSTCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7
CiAgICAgdm9pZCBkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFNpemUmIGNvbnRhaW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVS
TCYgaW5pdGlhbEZyYWdtZW50VVJMLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUm
IHNwYWNpbmcsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9
IHsgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA3YmY3NmJlYTU5YTExZGUwYzZiMzJiYjY0Y2U2ODc1ZGUwNTIxODc0
Li41ZDlkM2RlNGIzZjRjOGNlOWRiZmRkY2I4ODE0Njk1ZDMzODY0NTVjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjEtMDctMDcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBpbWFnZSByZW5kZXJpbmcgY2Fu
IHJlbmRlciBhcmJpdHJhcnkgRE9NIGNvbnRlbnQgaW4gdGhlIEdQVSBwcm9jZXNzLCB3aGljaCBp
cyBhZ2FpbnN0IHBvbGljeSAoZm9yIG5vdykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNzUxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzY2Nzgx
NjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBmYXN0
L2ltYWdlcy9yZXNvdXJjZXMvbWFzay5zdmc6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L3N2Zy1tYXNrLWluLWNhbnZhcy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ltYWdlcy9zdmctbWFzay1pbi1jYW52YXMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhwZWN0ZWQudHh0OiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhw
ZWN0ZWQudHh0LgorCiAyMDIxLTA3LTA3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIFVuZXhwZWN0ZWQgY29udGVudCB3cmFwIHdoZW4gdGhlIGNv
bnRhaW5pbmcgYmxvY2sgd2lkdGggaXMgcmVsYXRpdmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IGY2OGQ5MDRmZmVhNDJkZGY3Nzc3MDc3NzFjYmRiZGJmMzRhYTBiYjEuLmU2MWQ2
MTkzZjMyZjhiNzczMTdiMjQ2YTRhODk0MzRjNThmYTAwNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA3LTA3ICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDYW52YXMg
aW1hZ2UgcmVuZGVyaW5nIGNhbiByZW5kZXIgYXJiaXRyYXJ5IERPTSBjb250ZW50IGluIHRoZSBH
UFUgcHJvY2Vzcywgd2hpY2ggaXMgYWdhaW5zdCBwb2xpY3kgKGZvciBub3cpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc2Njc4MTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvaW1h
Z2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA3
LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSURCSW5kZXgu
a2V5UGF0aCBzaG91bGQga2VlcCByZXR1cm5pbmcgdGhlIHNhbWUgb2JqZWN0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvbWFzay5zdmcgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvbWFzay5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRkNGJjNGJmMmE5
NTczYWQzZTk5MDdhYzRmN2M2Yjg5OTRiMjRhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9tYXNrLnN2ZwpAQCAtMCwwICsxLDkgQEAKKzwhRE9D
VFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMu
b3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cis8c3ZnIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGxpbmsiIHdpZHRoPSIzMDBweCIgaGVpZ2h0PSIzMDBweCIgdmlld0JveD0iMCAwIDMwMCAzMDAi
IHZlcnNpb249IjEuMSI+CisgICAgPGRlZnM+CisgICAgICAgIDxtYXNrIGlkPSJtYXNrIiBtYXNr
VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMw
MCI+CisgICAgICAgICAgICA8cmVjdCB4PSI1MCIgeT0iNTAiIHdpZHRoPSIyMDAiIGhlaWdodD0i
MjAwIiBmaWxsPSJ3aGl0ZSIvPgorICAgICAgICA8L21hc2s+CisgICAgPC9kZWZzPgorICAgIDxy
ZWN0IHg9IjEwMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIzMDAiIGZpbGw9ImJsYWNrIiBt
YXNrPSJ1cmwoI21hc2spIi8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3N2Zy1tYXNrLWluLWNhbnZhcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIw
OWNlMWUwYzRiYjJmMDNkNTFmZWFmYjBiZDgxYWE2MDJhNzg0ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2Zy1tYXNrLWluLWNhbnZhcy1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgYmxhY2sgcmVjdGFu
Z2xlIHdpdGggYSBncmVlbiBib3JkZXIgYmVsb3cuPC9wPgorPGRpdiBzdHlsZT0icG9zaXRpb246
IHJlbGF0aXZlOyI+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAx
MDBweDsgdG9wOiA1MHB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6
IGJsYWNrOyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6
IDQ3cHg7IGxlZnQ6IDk3cHg7IHdpZHRoOiA2cHg7IGhlaWdodDogMjA2cHg7IGJhY2tncm91bmQ6
IGdyZWVuOyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6
IDQ3cHg7IGxlZnQ6IDE5N3B4OyB3aWR0aDogNnB4OyBoZWlnaHQ6IDIwNnB4OyBiYWNrZ3JvdW5k
OiBncmVlbjsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9w
OiA0N3B4OyBsZWZ0OiA5N3B4OyB3aWR0aDogMTA2cHg7IGhlaWdodDogNnB4OyBiYWNrZ3JvdW5k
OiBncmVlbjsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9w
OiAyNDdweDsgbGVmdDogOTdweDsgd2lkdGg6IDEwNnB4OyBoZWlnaHQ6IDZweDsgYmFja2dyb3Vu
ZDogZ3JlZW47Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9zdmctbWFzay1pbi1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmZk
ZTU5MTQ1N2Q5OTIxYjRiNzViMWEzYjlkZmI0MmY5MWFkNDY3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLW1hc2staW4tY2FudmFzLmh0bWwKQEAgLTAsMCAr
MSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+
Cis8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBibGFjayByZWN0YW5nbGUgd2l0aCBh
IGdyZWVuIGJvcmRlciBiZWxvdy48L3A+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7
Ij4KKyAgICA8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj48L2Nh
bnZhcz4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDdweDsgbGVm
dDogOTdweDsgd2lkdGg6IDZweDsgaGVpZ2h0OiAyMDZweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48
L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDdweDsgbGVm
dDogMTk3cHg7IHdpZHRoOiA2cHg7IGhlaWdodDogMjA2cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+
PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQ3cHg7IGxl
ZnQ6IDk3cHg7IHdpZHRoOiAxMDZweDsgaGVpZ2h0OiA2cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+
PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDI0N3B4OyBs
ZWZ0OiA5N3B4OyB3aWR0aDogMTA2cHg7IGhlaWdodDogNnB4OyBiYWNrZ3JvdW5kOiBncmVlbjsi
PjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjYW52YXMiKTsKK2xldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7
CitsZXQgaW1hZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKK2ltYWdlLmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbigpIHsKKyAgICBjb250ZXh0LmRyYXdJbWFnZShp
bWFnZSwgMCwgMCwgMzAwLCAzMDApOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKK2ltYWdlLnNyYyA9ICJyZXNvdXJjZXMv
bWFzay5zdmciOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1l
bnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVt
ZW50L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLWZsaXBZLWV4cGVjdGVkLnR4dAppbmRl
eCA2Mjk0ZWUxYTBlNzA3YjQ0ZDcxNTZkYWQ3M2M1MGQ1NzQ2ZDAxYmYyLi44MGYwNzljYmI3OTA0
YjBmZmZlZjIyZjdjODI1OGVhY2I1NGY1MTYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRt
YXAvY3JlYXRlSW1hZ2VCaXRtYXAtZmxpcFktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9pbWFn
ZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1mbGlwWS1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3
IEBAIFBBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhbiBIVE1MVmlkZW9FbGVtZW50IGZyb20g
YSBkYXRhIFVSTCBpbWFnZU9yaWVudGF0aW9uCiBQQVNTIGNyZWF0ZUltYWdlQml0bWFwIGZyb20g
YSBiaXRtYXAgSFRNTEltYWdlRWxlbWVudCBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBk
cmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKIFBBU1MgY3JlYXRlSW1hZ2VCaXRt
YXAgZnJvbSBhIGJpdG1hcCBIVE1MSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJmbGlw
WSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKIFBBU1MgY3JlYXRl
SW1hZ2VCaXRtYXAgZnJvbSBhIHZlY3RvciBIVE1MSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRp
b246ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAotRkFJ
TCBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgdmVjdG9yIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2VP
cmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJp
dG1hcCBhc3NlcnRfYXBwcm94X2VxdWFsczogUmVkIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1
LCAxNSkgZXhwZWN0ZWQgMjU1ICsvLSAxMCBidXQgZ290IDAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRt
YXAgZnJvbSBhIHZlY3RvciBIVE1MSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJmbGlw
WSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKIEZBSUwgY3JlYXRl
SW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBTVkdJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlv
bjogIm5vbmUiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogVHlwZSBlcnJvciIKIEZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBTVkdJ
bWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0
aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCiBGQUlMIGNyZWF0ZUlt
YWdlQml0bWFwIGZyb20gYSB2ZWN0b3IgU1ZHSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246
ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IFR5cGUgZXJyb3IiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9pbWFnZWJp
dG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1mbGlwWS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvZWxlbWVudC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1mbGlwWS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjI5NGVlMWEwZTcwN2I0NGQ3MTU2ZGFkNzNjNTBkNTc0NmQwMWJmMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2Ny
ZWF0ZUltYWdlQml0bWFwLWZsaXBZLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACisKK1BB
U1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhbiBIVE1MQ2FudmFzRWxlbWVudCBpbWFnZU9yaWVu
dGF0aW9uOiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAK
K1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhbiBIVE1MQ2FudmFzRWxlbWVudCBpbWFnZU9y
aWVudGF0aW9uOiAiZmxpcFkiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0
bWFwCitQQVNTIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYW4gSFRNTFZpZGVvRWxlbWVudCBpbWFn
ZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VC
aXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhbiBIVE1MVmlkZW9FbGVtZW50IGlt
YWdlT3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1h
Z2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhbiBIVE1MVmlkZW9FbGVtZW50
IGZyb20gYSBkYXRhIFVSTCBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ug
b24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBh
biBIVE1MVmlkZW9FbGVtZW50IGZyb20gYSBkYXRhIFVSTCBpbWFnZU9yaWVudGF0aW9uOiAiZmxp
cFkiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0bWFwCitQQVNTIGNyZWF0
ZUltYWdlQml0bWFwIGZyb20gYSBiaXRtYXAgSFRNTEltYWdlRWxlbWVudCBpbWFnZU9yaWVudGF0
aW9uOiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BB
U1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBIVE1MSW1hZ2VFbGVtZW50IGltYWdl
T3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VC
aXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIHZlY3RvciBIVE1MSW1hZ2VFbGVt
ZW50IGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRl
ZCBJbWFnZUJpdG1hcAorRkFJTCBjcmVhdGVJbWFnZUJpdG1hcCBmcm9tIGEgdmVjdG9yIEhUTUxJ
bWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0
aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBhc3NlcnRfYXBwcm94X2VxdWFsczogUmVkIGNoYW5uZWwg
b2YgdGhlIHBpeGVsIGF0ICg1LCAxNSkgZXhwZWN0ZWQgMjU1ICsvLSAxMCBidXQgZ290IDAKK0ZB
SUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcCBTVkdJbWFnZUVsZW1lbnQgaW1hZ2VP
cmllbnRhdGlvbjogIm5vbmUiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVhdGVkIEltYWdlQml0
bWFwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJp
dG1hcCBTVkdJbWFnZUVsZW1lbnQgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJ
bWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCitGQUlM
IGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYSB2ZWN0b3IgU1ZHSW1hZ2VFbGVtZW50IGltYWdlT3Jp
ZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1h
cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IFR5cGUgZXJyb3IiCitGQUlMIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYSB2ZWN0
b3IgU1ZHSW1hZ2VFbGVtZW50IGltYWdlT3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1h
Z2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgorRkFJTCBj
cmVhdGVJbWFnZUJpdG1hcCBmcm9tIGFuIE9mZnNjcmVlbkNhbnZhcyBpbWFnZU9yaWVudGF0aW9u
OiAibm9uZSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IE9mZnNjcmVlbkNhbnZhcyIKK0ZBSUwgY3JlYXRl
SW1hZ2VCaXRtYXAgZnJvbSBhbiBPZmZzY3JlZW5DYW52YXMgaW1hZ2VPcmllbnRhdGlvbjogImZs
aXBZIiwgYW5kIGRyYXdJbWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcCBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJv
cjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogT2Zmc2NyZWVuQ2FudmFzIgorUEFTUyBjcmVhdGVJbWFn
ZUJpdG1hcCBmcm9tIGFuIEltYWdlRGF0YSBpbWFnZU9yaWVudGF0aW9uOiAibm9uZSIsIGFuZCBk
cmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRt
YXAgZnJvbSBhbiBJbWFnZURhdGEgaW1hZ2VPcmllbnRhdGlvbjogImZsaXBZIiwgYW5kIGRyYXdJ
bWFnZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBm
cm9tIGFuIEltYWdlQml0bWFwIGltYWdlT3JpZW50YXRpb246ICJub25lIiwgYW5kIGRyYXdJbWFn
ZSBvbiB0aGUgY3JlYXRlZCBJbWFnZUJpdG1hcAorUEFTUyBjcmVhdGVJbWFnZUJpdG1hcCBmcm9t
IGFuIEltYWdlQml0bWFwIGltYWdlT3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ug
b24gdGhlIGNyZWF0ZWQgSW1hZ2VCaXRtYXAKK1BBU1MgY3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBh
IEJsb2IgaW1hZ2VPcmllbnRhdGlvbjogIm5vbmUiLCBhbmQgZHJhd0ltYWdlIG9uIHRoZSBjcmVh
dGVkIEltYWdlQml0bWFwCitQQVNTIGNyZWF0ZUltYWdlQml0bWFwIGZyb20gYSBCbG9iIGltYWdl
T3JpZW50YXRpb246ICJmbGlwWSIsIGFuZCBkcmF3SW1hZ2Ugb24gdGhlIGNyZWF0ZWQgSW1hZ2VC
aXRtYXAKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>