<?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>226813</bug_id>
          
          <creation_ts>2021-06-09 06:35:08 -0700</creation_ts>
          <short_desc>WebGL context image buffer accumulates the NativeImage contents when drawn to RemoteImageBufferProxy</short_desc>
          <delta_ts>2021-08-31 00:37:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>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=229668</see_also>
          <bug_file_loc>https://ciechanow.ski/internal-combustion-engine/</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="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1768155</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-09 06:35:08 -0700</bug_when>
    <thetext>WebGL context image buffer accumulates the NativeImage contents when drawn to RemoteImageBufferProxy
Causes leaks
https://ciechanow.ski/internal-combustion-engine/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768156</commentid>
    <comment_count>1</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-09 06:35:42 -0700</bug_when>
    <thetext>&lt;rdar://77421966&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768223</commentid>
    <comment_count>2</comment_count>
      <attachid>430975</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-09 10:23:13 -0700</bug_when>
    <thetext>Created attachment 430975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768233</commentid>
    <comment_count>3</comment_count>
      <attachid>430975</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-09 10:34:39 -0700</bug_when>
    <thetext>Comment on attachment 430975
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.cpp:69
&gt; +    for (auto imageBuffer : m_displayList.imageBuffers().values())

auto&amp; to avoid ref counting churn.

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.cpp:71
&gt; +    for (auto imageBuffer : m_displayList.imageBuffers().values())

ditto.

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.h:41
&gt; +    WEBCORE_EXPORT ~DrawingContext();

Do we construct / destroy a lot of DrawingContext objects? If so, we could consider putting this custom destructor in  #if ASSERT_ENABLED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768360</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-06-09 15:11:09 -0700</bug_when>
    <thetext>Looks like this introduced some nullptr crashes, perhaps due to clearing more frequently?

Application Specific Information:
CRASHING TEST: fast/canvas/canvas-as-image-hidpi.html

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x00000001318c9c60 WebCore::ImageBufferIOSurfaceBackend::context() const + 16
1   com.apple.WebKit              	0x0000000109c27757 WebCore::DisplayList::ImageBuffer&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::~ImageBuffer() + 33
2   com.apple.WebKit              	0x0000000109c26a9c WebKit::RemoteImageBufferProxy&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::~RemoteImageBufferProxy() + 14
3   com.apple.WebCore             	0x00000001312c0d65 WebCore::HTMLCanvasElement::reset() + 1205
4   com.apple.WebCore             	0x00000001312c1119 WebCore::HTMLCanvasElement::setSize(WebCore::IntSize const&amp;) + 265
5   com.apple.WebCore             	0x00000001310d4001 WebCore::Document::getCSSCanvasContext(WTF::String const&amp;, WTF::String const&amp;, int, int) + 65
6   com.apple.WebCore             	0x0000000130351d28 WebCore::jsDocumentPrototypeFunction_getCSSCanvasContext(JSC::JSGlobalObject*, JSC::CallFrame*) + 504
7   ???                           	0x000053a3598011d8 0 + 91961046340056
8   com.apple.JavaScriptCore      	0x0000000135a05587 llint_entry + 110528
9   com.apple.JavaScriptCore      	0x00000001359ea3c6 vmEntryToJavaScript + 216
10  com.apple.JavaScriptCore      	0x000000013616960b JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 555
11  com.apple.JavaScriptCore      	0x00000001364149c4 JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 164
12  com.apple.JavaScriptCore      	0x0000000135aa2fa5 JSObjectCallAsFunction + 661
13  com.apple.WebKitTestRunner.InjectedBundle	0x000000013a84c897 WTR::callTestRunnerCallback(unsigned int, unsigned long, OpaqueJSValue const* const*) + 98 (TestRunner.cpp:675)
14  com.apple.WebKit              	0x0000000109c65a35 WebKit::InjectedBundleClient::didReceiveMessageToPage(WebKit::InjectedBundle&amp;, WebKit::WebPage&amp;, WTF::String const&amp;, API::Object*) + 179
15  com.apple.WebKit              	0x0000000109d697f8 WebKit::WebPage::postInjectedBundleMessage(WTF::String const&amp;, WebKit::UserData const&amp;) + 78
16  com.apple.WebKit              	0x0000000109d84fdd WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&amp;, IPC::Decoder&amp;) + 4793</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768492</commentid>
    <comment_count>5</comment_count>
      <attachid>431055</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-10 03:07:09 -0700</bug_when>
    <thetext>Created attachment 431055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768511</commentid>
    <comment_count>6</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-10 04:58:07 -0700</bug_when>
    <thetext>&gt; Do we construct / destroy a lot of DrawingContext objects? If so, we could consider putting this custom destructor in  #if ASSERT_ENABLED

No, they&apos;re very few (one per ImageBuffer).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768527</commentid>
    <comment_count>7</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-10 06:28:42 -0700</bug_when>
    <thetext>This should be ready for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768569</commentid>
    <comment_count>8</comment_count>
      <attachid>431087</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-10 09:08:55 -0700</bug_when>
    <thetext>Created attachment 431087
Workaround</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768571</commentid>
    <comment_count>9</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-10 09:15:14 -0700</bug_when>
    <thetext>Unclear why the media/modern-media-controls/overflow-support/chapters.html would fail on Mac-AS with the patch.
Maybe it&apos;s better to merge the workaround while I debug the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768574</commentid>
    <comment_count>10</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-10 09:22:19 -0700</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #9)
&gt; Unclear why the media/modern-media-controls/overflow-support/chapters.html
&gt; would fail on Mac-AS with the patch.
&gt; Maybe it&apos;s better to merge the workaround while I debug the test.

I believe this test failure is being tracked here: https://bugs.webkit.org/show_bug.cgi?id=226828</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768622</commentid>
    <comment_count>11</comment_count>
      <attachid>431096</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-10 11:25:07 -0700</bug_when>
    <thetext>Created attachment 431096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768630</commentid>
    <comment_count>12</comment_count>
      <attachid>431099</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-10 11:32:46 -0700</bug_when>
    <thetext>Created attachment 431099
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768642</commentid>
    <comment_count>13</comment_count>
      <attachid>431099</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-10 11:49:08 -0700</bug_when>
    <thetext>Comment on attachment 431099
Patch for landing

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

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1225
&gt; +            base.buffer()-&gt;flushDrawingContext();
&gt;              m_context-&gt;paintCompositedResultsToCanvas(*base.buffer());

I think another approach might be the following:

1. Since GraphicsContextGLOpenGL::paintToCanvas() is static function, it can be a function of GraphicContext named something like GraphicContext::drawPixelBuffer(PixelBuffer&amp;, ...). I think the difference between this function and ImageBuffer::putPixelBuffer() is this function can scale the PixelBuffer since it puts the pixels into a NativeImage which can be scaled when drawing.
2. Add a DisplayList item DrawPixelBuffer which should be similar to PutPixelBuffer
3. Let creating the NativeImage from the PixelBuffer happen in GPUP so no NativeImage caching will be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768889</commentid>
    <comment_count>14</comment_count>
      <attachid>431099</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-11 01:16:55 -0700</bug_when>
    <thetext>Comment on attachment 431099
Patch for landing

The Mac-AS retry seemed to time out with substantial amount of failed and flakey tests. The failures before the test run timed out all seem unrelated. Taking the liberty to cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768890</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-11 01:24:30 -0700</bug_when>
    <thetext>Committed r278756 (238717@main): &lt;https://commits.webkit.org/238717@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431099.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430975</attachid>
            <date>2021-06-09 10:23:13 -0700</date>
            <delta_ts>2021-06-10 03:07:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226813-20210609202311.patch</filename>
            <type>text/plain</type>
            <size>31185</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmZmY4NGQwNDc4MTMx
ZjVkYjUxMDVlM2E5NzFkYmMyODMzYmM2NC4uY2I4MWZjYzU1MmI4ZTY3NGRmMTExYmI5MDQ2NTlh
ZTJkZmE3ODM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIxLTA2LTA5ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBpbWFnZSBidWZmZXIgYWNjdW11bGF0ZXMgdGhlIE5hdGl2ZUltYWdlIGNvbnRlbnRzIHdoZW4g
ZHJhd24gdG8gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2ODEzCisgICAgICAgIDxyZGFyOi8vNzc0MjE5NjY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJ5
IGltcGxlbWVudGluZyBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQ6OmRpc2Nh
cmREaXNwbGF5TGlzdC4gVGhlIGZ1bmN0aW9uCisgICAgICAgIHNob3VsZCBiZSBjYWxsZWQgaWYg
dGhlIGRpc3BsYXkgbGlzdCBpcyBub3QgYXBwbGllZCB3aXRoIERyYXdpbmdDb250ZXh0OjpyZXBs
YXlEaXNwbGF5TGlzdAorICAgICAgICBidXQgZGlzY2FyZGVkLiBUaGUgZnVuY3Rpb24gd2lsbCBt
YWtlIHN1cmUgdGhhdCB0aGUgaW1hZ2UgYnVmZmVycyByZWZlcmVuY2VkIGJ5IHRoZSBkaXNwbGF5
CisgICAgICAgIGxpc3QgYXJlIGZsdXNoZWQsIHNpbWlsYXIgdG8gdGhlIGJlaGF2aW9yIGFzIHdo
ZW4gZGlzcGxheSBsaXN0IGlzIGFwcGxpZWQuCisKKyAgICAgICAgVGVzdDogd2ViZ2wvZHJhdy13
ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgUmVtb3ZlIG1v
dmUgY29uc3RydWN0b3IgYW5kIG1vdmUgYXNzaWdubWVudAorICAgICAgICBhcyBwZXIgdGhlIGRl
ZHVjdGlvbiB0aGF0IERpc3BsYXlMaXN0IChzZWUgYmVsb3cpIGlzIG5vdCBtb3ZhYmxlIGFuZCB0
aGUgZnVuY3Rpb25zCisgICAgICAgIGFyZSBub3QgdXNlZC4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6fkRyYXdpbmdDb250
ZXh0KToKKyAgICAgICAgQWRkIGFuIGFzc2VydCB0byBlbmZvcmNlIHRoYXQgZWl0aGVyIHJlcGxh
eURpc3BsYXlMaXN0IG9yCisgICAgICAgIGRpc2NhcmREaXNwbGF5TGlzdCBzaG91bGQgYmUgY2Fs
bGVkLCBpbiBvcmRlciB0byBndWFyYW50ZWUgdGhlIHJ1bGUgb2YKKyAgICAgICAgZmx1c2hpbmcg
dGhlIHJlZmVyZW5jZWQgSW1hZ2VCdWZmZXJzLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdpbmdDb250ZXh0OjpkaXNjYXJkRGlzcGxheUxpc3QpOgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaDoK
KyAgICAgICAgUmVtb3ZlIHRha2VEaXNwbGF5TGlzdCBhcyB0aGF0IGlzIG5vdCBjb3JyZWN0IGZ1
bmN0aW9uLiBUaGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb2YgZGlzY2FyZERpc3BsYXlMaXN0
IHNob3VsZCB1c2UgdGhpcyBmdW5jdGlvbiBpZiBpdCB3YXMgcG9zc2libGUuIEhvd2V2ZXIsCisg
ICAgICAgIGRpc3BsYXkgbGlzdCBjb250YWlucyBjdXN0b21pemluZyBkZWxlZ2F0ZSBvYmplY3Rz
IChJdGVtQnVmZmVyUmVhZGVyL1dyaXRlckNsaWVudCkuCisgICAgICAgIFRob3NlIGRvIG5vdCBt
YWtlIHNlbnNlIHRvIGJlIG1vdmVkIGFuZCBpZiBtb3ZlZCBhd2F5LCB0aGUgdGFrZURpc3BsYXlM
aXN0IHNvdXJjZQorICAgICAgICBpcyByZW5kZXJlZCBpbmNvcnJlY3QuIFRoaXMgbWVhbnMgRGlz
cGxheUxpc3QgaXMgbm90IG1vdmFibGUgYW5kIHRoZSB0YWtlRGlzcGxheUxpc3QKKyAgICAgICAg
Y2Fubm90IGJlIHVzZWQgYW5kIGFzIHN1Y2ggc2hvdWxkIG5vdCBiZSBpbXBsZW1lbnRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6cmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0OjpoYXNQZW5kaW5n
V29yayBjb25zdCk6CisgICAgICAgIEFkZCBhIGZ1bmN0aW9uIHRvIGVuY2Fwc3VsYXRlIERyYXdp
bmdDb250ZXh0IGltcGxlbWVudGF0aW9uIGZyb20gdGhlIHRoZSBjYWxsZXJzIG1vcmUuCisgICAg
ICAgIEkuZS4gdGhlIGNhbGxlcnMgc2hvdWxkbid0IGFjY2VzcyB0aGUgZGlzcGxheSBsaXN0IGRp
cmVjdGx5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyKToKKyAgICAgICAgQWRk
IGEgZnVuY3Rpb24gdG8gZW5jYXBzdWxhdGUgUmVjb2RlciBpbXBsZW1lbnRhdGlvbiBmcm9tIHRo
ZSB0aGUgY2FsbGVycyBtb3JlLgorICAgICAgICBJLmUuIHRoZSBjYWxsZXJzIHNob3VsZG4ndCBh
Y2Nlc3MgdGhlIGRpc3BsYXkgbGlzdCBkaXJlY3RseS4KKwogMjAyMS0wNi0wOCAgRnLDqWTDqXJp
YyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBJbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmYWJiOTRiOGJiYjRi
ZjlkMGI4YTc1ZTQ2YWYzMzA2NjNmZDQ0MGYuLjMyNTgyZWYxYTMzYzdhYTUwMWJiZTVmMTgwMmU2
NWJmMjgwNTQyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDYtMDkgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJHTCBjb250ZXh0
IGltYWdlIGJ1ZmZlciBhY2N1bXVsYXRlcyB0aGUgTmF0aXZlSW1hZ2UgY29udGVudHMgd2hlbiBk
cmF3biB0byBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY4MTMKKyAgICAgICAgPHJkYXI6Ly83NzQyMTk2Nj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1
cmUgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSBuZXZlciBkaXJlY3RseSBjbGVhcnMgaXRzIGRpc3Bs
YXkgbGlzdC4KKyAgICAgICAgV2hlbiBJbWFnZUJ1ZmZlcnMgYXJlIHB1dCB0byB0aGUgZGlzcGxh
eSBsaXN0LCB0aGUgZXhwZWN0YXRpb24gaXMgdGhhdAorICAgICAgICB0aGV5IGFyZSBmbHVzaGVk
IHdoZW4gdGhlaXIgY29tbWFuZCBpcyBleGVjdXRlZC4gSWYgdGhlIGZsdXNoIGlzIG5vdCBkb25l
LAorICAgICAgICB0aGUgZGlzcGxheSBsaXN0IGdyb3dzIHVuYm91bmRlZC4gQ2FzZXMgd2hlcmUg
aXRlbXMgY29udGFpbiBiaXRtYXBzIHN1Y2gKKyAgICAgICAgYXMgTmF0aXZlSW1hZ2VzIHdpbGwg
Y29uc3VtZSBhIGxvdCBvZiBtZW1vcnkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6On5SZW1vdGVJbWFnZUJ1ZmZlclByb3h5KToKKwogMjAyMS0wNi0wOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuMzMuMiByZWxl
YXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBmYWQ2YTY5NTAwN2E5NjY0NWMyNzEx
ZDhmMDkxMGVhODU2NDNmNTI4Li42NTc1ODQ1NzUxZWI5N2YzYmI1NGEyNmY4ODNmZmRkNTJjNGQ3
NzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTUxLDE0ICs1MSw2IEBAIHZvaWQg
RGlzcGxheUxpc3Q6OmR1bXAoKSBjb25zdAogfQogI2VuZGlmCiAKLURpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdChEaXNwbGF5TGlzdCYmIG90aGVyKQotICAgIDogbV9pbWFnZUJ1ZmZlcnMoc3RkOjpl
eGNoYW5nZShvdGhlci5tX2ltYWdlQnVmZmVycywgeyB9KSkKLSAgICAsIG1fbmF0aXZlSW1hZ2Vz
KHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9uYXRpdmVJbWFnZXMsIHsgfSkpCi0gICAgLCBtX2l0ZW1z
KHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pdGVtcywgbnVsbHB0cikpCi0gICAgLCBtX2RyYXdpbmdJ
dGVtRXh0ZW50cyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZHJhd2luZ0l0ZW1FeHRlbnRzLCB7IH0p
KQotewotfQotCiBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QoSXRlbUJ1ZmZlckhhbmRsZXMmJiBo
YW5kbGVzKQogICAgIDogbV9pdGVtcyhtYWtlVW5pcXVlPEl0ZW1CdWZmZXI+KFdURk1vdmUoaGFu
ZGxlcykpKQogewpAQCAtNjcsMTUgKzU5LDYgQEAgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0KEl0
ZW1CdWZmZXJIYW5kbGVzJiYgaGFuZGxlcykKIERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCgpID0g
ZGVmYXVsdDsKIERpc3BsYXlMaXN0Ojp+RGlzcGxheUxpc3QoKSA9IGRlZmF1bHQ7CiAKLURpc3Bs
YXlMaXN0JiBEaXNwbGF5TGlzdDo6b3BlcmF0b3I9KERpc3BsYXlMaXN0JiYgb3RoZXIpCi17Ci0g
ICAgbV9pbWFnZUJ1ZmZlcnMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faW1hZ2VCdWZmZXJzLCB7
IH0pOwotICAgIG1fbmF0aXZlSW1hZ2VzID0gc3RkOjpleGNoYW5nZShvdGhlci5tX25hdGl2ZUlt
YWdlcywgeyB9KTsKLSAgICBtX2l0ZW1zID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2l0ZW1zLCBu
dWxscHRyKTsKLSAgICBtX2RyYXdpbmdJdGVtRXh0ZW50cyA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIu
bV9kcmF3aW5nSXRlbUV4dGVudHMsIHsgfSk7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCiB2b2lk
IERpc3BsYXlMaXN0OjpjbGVhcigpCiB7CiAgICAgaWYgKG1faXRlbXMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdC5oCmluZGV4IDRhYzVkYjJlODRmZTc0OGJkMzc2MjdlODg0OGEzYThlMTQ0Y2EwN2UuLjhk
OWYzODc1NGNmZWZiY2YwOTNkNzlhM2Y3MWEzNTdhYWY4Y2I0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdC5oCkBAIC01OCwxMyArNTgsMTAgQEAgY2xhc3MgRGlzcGxheUxpc3QgewogICAgIGZyaWVu
ZCBjbGFzcyBSZXBsYXllcjsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBEaXNwbGF5TGlz
dCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIERpc3BsYXlMaXN0KERpc3BsYXlMaXN0JiYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIERpc3BsYXlMaXN0KEl0ZW1CdWZmZXJIYW5kbGVzJiYpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgfkRpc3BsYXlMaXN0KCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBEaXNw
bGF5TGlzdCYgb3BlcmF0b3I9KERpc3BsYXlMaXN0JiYpOwotCiAgICAgdm9pZCBkdW1wKFdURjo6
VGV4dFN0cmVhbSYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCmluZGV4
IDM5NTdjNDU3NmZlOTEyZDY4MTAyMDc2MTAwMWNjMjRmNjg2ODg2MmEuLmY0Zjc0OTY0Yzc0Mzlm
ZTIyNzFhNzMzNjNlOGY2MGI5ZjRjYTIxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKQEAgLTM4LDYgKzM4LDExIEBAIERyYXdpbmdDb250
ZXh0OjpEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBB
ZmZpbmVUcmFuc2ZvCiB7CiB9CiAKK0RyYXdpbmdDb250ZXh0Ojp+RHJhd2luZ0NvbnRleHQoKQor
eworICAgIEFTU0VSVCghaGFzUGVuZGluZ1dvcmsoKSk7Cit9CisKIHZvaWQgRHJhd2luZ0NvbnRl
eHQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KGJvb2wgdHJhY2tzRGlzcGxheUxpc3RSZXBs
YXkpCiB7CiAgICAgbV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSA9IHRyYWNrc0Rpc3BsYXlMaXN0
UmVwbGF5OwpAQCAtNTcsNSArNjIsMTYgQEAgdm9pZCBEcmF3aW5nQ29udGV4dDo6cmVwbGF5RGlz
cGxheUxpc3QoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCkKICAgICBtX2Rpc3BsYXlMaXN0
LmNsZWFyKCk7CiB9CiAKK3ZvaWQgRHJhd2luZ0NvbnRleHQ6OmRpc2NhcmREaXNwbGF5TGlzdCgp
Cit7CisgICAgaWYgKG1fZGlzcGxheUxpc3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47Cisg
ICAgZm9yIChhdXRvIGltYWdlQnVmZmVyIDogbV9kaXNwbGF5TGlzdC5pbWFnZUJ1ZmZlcnMoKS52
YWx1ZXMoKSkKKyAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoRHJhd2luZ0NvbnRleHRBc3luYygp
OworICAgIGZvciAoYXV0byBpbWFnZUJ1ZmZlciA6IG1fZGlzcGxheUxpc3QuaW1hZ2VCdWZmZXJz
KCkudmFsdWVzKCkpCisgICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0KCk7
CisgICAgbV9kaXNwbGF5TGlzdC5jbGVhcigpOworfQorCiB9IC8vIERpc3BsYXlMaXN0CiB9IC8v
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5o
CmluZGV4IDk2NTYzNjM0ZDU3ZjQwOTRiM2MyY2JhNmYwNjc0MGY1MDYzZGQ0YmYuLjhjNjVmMTIy
NGVlMzYzZGZlMzNmNTJmNGI2NWRmNzlhNDQyZDg1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaApAQCAtMzgsMTYgKzM4LDE5IEBAIGNsYXNzIERy
YXdpbmdDb250ZXh0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0gPSB7IH0sIFJlY29yZGVyOjpE
ZWxlZ2F0ZSogPSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+RHJhd2luZ0NvbnRleHQo
KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0
X2Nhc3Q8RHJhd2luZ0NvbnRleHQmPigqdGhpcykubV9jb250ZXh0OyB9CiAgICAgUmVjb3JkZXIm
IHJlY29yZGVyKCkgeyByZXR1cm4gbV9jb250ZXh0OyB9OwotICAgIERpc3BsYXlMaXN0IHRha2VE
aXNwbGF5TGlzdCgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9kaXNwbGF5TGlzdCwgeyB9KTsg
fQogICAgIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCgpIHsgcmV0dXJuIG1fZGlzcGxheUxpc3Q7
IH0KICAgICBjb25zdCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QoKSBjb25zdCB7IHJldHVybiBt
X2Rpc3BsYXlMaXN0OyB9CiAgICAgY29uc3QgSW5NZW1vcnlEaXNwbGF5TGlzdCogcmVwbGF5ZWRE
aXNwbGF5TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGF5ZWREaXNwbGF5TGlzdC5nZXQoKTsg
fQogCisgICAgYm9vbCBoYXNQZW5kaW5nV29yaygpIGNvbnN0IHsgcmV0dXJuICFtX2Rpc3BsYXlM
aXN0LmlzRW1wdHkoKTsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUcmFja3NEaXNw
bGF5TGlzdFJlcGxheShib29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxheURpc3Bs
YXlMaXN0KEdyYXBoaWNzQ29udGV4dCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzY2Fy
ZERpc3BsYXlMaXN0KCk7CiAKIHByb3RlY3RlZDoKICAgICBSZWNvcmRlciBtX2NvbnRleHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAppbmRleCA4MWI5MjQ3NGUy
NGVjZDIzNmYyMjA3NzRlZDFjYmNmODQ2OWYzMjc4Li4wZDBlYTlmNDIyMTQ4M2FjOTM0NjRjMGVl
YmU0YWNiZGUyMDAwMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVm
ZmVyLmgKQEAgLTgzLDEzICs4MywxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZsdXNoRHJhd2lu
Z0NvbnRleHQoKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgaWYgKCFtX2RyYXdpbmdDb250ZXh0
LmRpc3BsYXlMaXN0KCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5y
ZXBsYXlEaXNwbGF5TGlzdChCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29udGV4dCgpKTsKKyAg
ICAgICAgbV9kcmF3aW5nQ29udGV4dC5yZXBsYXlEaXNwbGF5TGlzdChCYXNlQ29uY3JldGVJbWFn
ZUJ1ZmZlcjo6Y29udGV4dCgpKTsKICAgICB9CiAKICAgICB2b2lkIGNsZWFyQmFja2VuZCgpIG92
ZXJyaWRlCiAgICAgewotICAgICAgICBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCkuY2xl
YXIoKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNjYXJkRGlzcGxheUxpc3QoKTsKICAg
ICAgICAgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNsZWFyQmFja2VuZCgpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNjFiZjc5ZDQ4MDhkYTYw
Y2JhOTVhNDMwMTM2MDA1ZGY2YWE0ZjBjMy4uMWQ4MmQ5YmMyOTk4NTExYTYzY2Q1MGU2MWMzYjIx
M2IwYzExZDE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC03
NCw3ICs3NCwxMCBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHZvaWQgZmx1c2hDb250ZXh0KEZs
dXNoSWRlbnRpZmllciBpZGVudGlmaWVyKSB7IGFwcGVuZDxGbHVzaENvbnRleHQ+KGlkZW50aWZp
ZXIpOyB9Ci0KKyAgICB2b2lkIGNoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIoUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIG5leHRJbWFnZUJ1ZmZlcikKKyAgICB7CisgICAgICAgIG1fZGlz
cGxheUxpc3QuYXBwZW5kPE1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcj4o
bmV4dEltYWdlQnVmZmVyKTsKKyAgICB9CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBEcmF3
R2x5cGhzUmVjb3JkZXI7CiAgICAgUmVjb3JkZXIoUmVjb3JkZXImIHBhcmVudCwgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApp
bmRleCA2ZGNmMWQ1MmYxYThhMTk4MTdmNWE1MWMwYmQwMzk3MzQ5YzkxNDdhLi43YzlhMjExMGZk
N2FmZmQzOTBjMmZjMTFjNDMyYzAzNGEyZjkxMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgflJlbW90ZUltYWdlQnVmZmVyUHJv
eHkoKQogICAgIHsKICAgICAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkg
ewotICAgICAgICAgICAgY2xlYXJEaXNwbGF5TGlzdCgpOworICAgICAgICAgICAgbV9kcmF3aW5n
Q29udGV4dC5kaXNjYXJkRGlzcGxheUxpc3QoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCkBAIC0yNTgsMTMgKzI1OCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGlmIChVTkxJ
S0VMWSghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIGlmICghbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLmlzRW1wdHko
KSkgeworICAgICAgICBpZiAobV9kcmF3aW5nQ29udGV4dC5oYXNQZW5kaW5nV29yaygpKSB7CiAg
ICAgICAgICAgICBtX3NlbnRGbHVzaElkZW50aWZpZXIgPSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Rmx1c2hJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogICAgICAgICAgICAgbV9kcmF3aW5nQ29udGV4
dC5yZWNvcmRlcigpLmZsdXNoQ29udGV4dChtX3NlbnRGbHVzaElkZW50aWZpZXIpOwogICAgICAg
ICB9CiAKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnNlbmREZWZlcnJl
ZFdha2V1cE1lc3NhZ2VJZk5lZWRlZCgpOwotICAgICAgICBjbGVhckRpc3BsYXlMaXN0KCk7Cisg
ICAgICAgIG1fZHJhd2luZ0NvbnRleHQuZGlzY2FyZERpc3BsYXlMaXN0KCk7CiAgICAgfQogCiAg
ICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKFdlYkNvcmU6Ok5hdGl2ZUltYWdlJiBpbWFnZSkgb3Zl
cnJpZGUKQEAgLTI4NCwxMCArMjg0LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY2hhbmdl
RGVzdGluYXRpb25JbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgbmV4dEltYWdlQnVmZmVyKSBmaW5hbAogICAgIHsKLSAgICAgICAgYm9vbCB3YXNFbXB0eSA9
IG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKS5pc0VtcHR5KCk7Ci0gICAgICAgIG1fZHJh
d2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKS50ZW1wbGF0ZSBhcHBlbmQ8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcj4obmV4dEltYWdl
QnVmZmVyKTsKKyAgICAgICAgYm9vbCB3YXNFbXB0eSA9ICFtX2RyYXdpbmdDb250ZXh0Lmhhc1Bl
bmRpbmdXb3JrKCk7CisgICAgICAgIG1fZHJhd2luZ0NvbnRleHQucmVjb3JkZXIoKS5jaGFuZ2VE
ZXN0aW5hdGlvbkltYWdlQnVmZmVyKG5leHRJbWFnZUJ1ZmZlcik7CiAgICAgICAgIGlmICh3YXNF
bXB0eSkKLSAgICAgICAgICAgIGNsZWFyRGlzcGxheUxpc3QoKTsKKyAgICAgICAgICAgIG1fZHJh
d2luZ0NvbnRleHQuZGlzY2FyZERpc3BsYXlMaXN0KCk7CiAgICAgfQogCiAgICAgdm9pZCBwcmVw
YXJlVG9BcHBlbmREaXNwbGF5TGlzdEl0ZW1zKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVm
ZmVySGFuZGxlJiYgaGFuZGxlKSBmaW5hbApAQCAtMjk1LDExICsyOTUsNiBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKS5wcmVwYXJlVG9BcHBlbmQo
V1RGTW92ZShoYW5kbGUpKTsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFyRGlzcGxheUxpc3QoKQot
ICAgIHsKLSAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLmNsZWFyKCk7Ci0g
ICAgfQotCiAgICAgYm9vbCBjYW5BcHBlbmRJdGVtT2ZUeXBlKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChVTkxJS0VMWSghbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY5NDE2ZWM4MzUxZmIzNThkNDdlN2I4ODA2YzdkOGU5NWE0
OTlhODkuLjg4MjQ2ODIzMzdjMGQ4ZjVkYTU1ZWQ5YjNlYjBhOTU0MDE4YmZkNDMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBA
QAorMjAyMS0wNi0wOSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYkdMIGNvbnRleHQgaW1hZ2UgYnVmZmVyIGFjY3VtdWxhdGVzIHRoZSBOYXRpdmVJ
bWFnZSBjb250ZW50cyB3aGVuIGRyYXduIHRvIFJlbW90ZUltYWdlQnVmZmVyUHJveHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjgxMworICAgICAg
ICA8cmRhcjovLzc3NDIxOTY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIHRlc3QgZXhwbGFpbmluZyBub24tR1BVUCwgbm9ybWFsIGRpc3Bs
YXkgbGlzdCBjb250cmFjdCBhYm91dCB0aGUKKyAgICAgICAgSW1hZ2VCdWZmZXI6OmZsdXNoRHJh
d2luZ0NvbnRleHQgY2F1c2luZyBmbHVzaCBvbiB0aGUgcmVmZXJlbmNlZAorICAgICAgICBJbWFn
ZUJ1ZmZlcnMuCisKKyAgICAgICAgTm90ZTogdGhlIHRlc3QtY2FzZSBkb2N1bWVudHMgZXhpc3Rp
bmcgYmVoYXZpb3IgaW4gbm9uLUdQVVAgY2FzZSwgYW5kCisgICAgICAgIGNhbm5vdCBhdCB0aGUg
bW9tZW50IHRlc3QgdGhlIEdQVVAgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2FwaV90ZXN0cy9tYW5hZ2VyLnB5OgorICAgICAgICAoTWFuYWdlci5fdGVzdF9s
aXN0X2Zyb21fb3V0cHV0KToKKyAgICAgICAgRml4IHJ1bi1hcGktdGVzdHMgdG8gYmUgYWJsZSB0
byBjb25zdW1lIG5hbWVzIG9mIHZhbHVlLXBhcmFtZXRyaXplZCB0ZXN0cy4KKyAgICAgICAgZm9y
bWF0IGlzOgorICAgICAgICBEZWZhdWx0RGlzcGxheUxpc3RJbWFnZUJ1ZmZlclRlc3RzL0Rpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXJUZXN0cy4KKyAgICAgICAgICAgIEZsdXNoRmxhdHRlbnNTZWxmLzAg
ICMgR2V0UGFyYW0oKSA9ICgxLWJ5dGUgb2JqZWN0IDwwMT4sIDEtYnl0ZSBvYmplY3QgPDAwPikK
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9JbWFnZUJ1
ZmZlclRlc3RzLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjcmVhdGVNb2Nr
SW1hZ2VCdWZmZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9QKToKKwogMjAyMS0w
Ni0wOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0ZsYXRwYWsgU0RLXSBBbGxvdyBjdXN0b20gYnVpbGQgZGlyZWN0b3JpZXMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL21hbmFnZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9tYW5hZ2VyLnB5CmluZGV4IGMzNDFkZmYzZTgyZTg0NjVh
MDc1MDM2ZGM3NWYzZWJjMDVlNGNhMzMuLmU0NTFiOGE3MTM5YjlkNjUyMjlmMDU0MzAyYTA1YTQw
ZDFlMDI4MWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL21h
bmFnZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvbWFuYWdlci5w
eQpAQCAtNTUsNiArNTUsNyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHJlc3Vs
dCA9IFtdCiAgICAgICAgIGN1cnJlbnRfdGVzdF9zdWl0ZSA9IE5vbmUKICAgICAgICAgZm9yIGxp
bmUgaW4gb3V0cHV0LnNwbGl0KCdcbicpOgorICAgICAgICAgICAgbGluZSA9IGxpbmUuc3BsaXQo
IiMiKVswXSAgIyBWYWx1ZS1wYXJhbWV0cml6ZWQgdGVzdHMgaGF2ZSBjb21tZW50cyBpbiB0aGUg
bmFtZSBsaW5lLgogICAgICAgICAgICAgc3RyaXBlZF9saW5lID0gbGluZS5sc3RyaXAoKS5yc3Ry
aXAoKQogICAgICAgICAgICAgaWYgbm90IHN0cmlwZWRfbGluZToKICAgICAgICAgICAgICAgICBj
b250aW51ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMzUxMzIxYzI5ODJhOTFlYjRjNmNj
MjdlNDQ1YTE3M2VjNGQ1ZDBkLi5hMTI1ZDI0Y2YzYThmZjc5MTlkM2I5MzM3ZTQ0Yjg2OWNjYTVl
NWFmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTkxLDYgKzU5MSw3IEBACiAJCTdBRUFE
NDgxMUUyMDEyMjcwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QUVBRDQ3RDFFMjAxMTRFMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1lQWNjZXNz
Lmh0bWwgKi87IH07CiAJCTdCMjczOUYzMjYzMkFCNjQwMDQwRjE4MiAvKiBUaHJlYWRBc3NlcnRp
b25zVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QjI3MzlGMjI2MzJBQjY0MDA0MEYxODIgLyogVGhyZWFkQXNzZXJ0aW9uc1Rlc3QuY3BwICov
OyB9OwogCQk3QjdEMDk2QTI1MTlGOEY5MDAxN0EwNzggLyogV2ViR0xOb0NyYXNoT25PdGhlclRo
cmVhZEFjY2Vzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCN0QwOTY5MjUxOUY4RjkwMDE3QTA3OCAvKiBXZWJHTE5vQ3Jhc2hPbk90aGVyVGhyZWFk
QWNjZXNzLm1tICovOyB9OworCQk3QkEyRTk2NzI2NkY3QTlGMDAyRjNCMEQgLyogSW1hZ2VCdWZm
ZXJUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QkEyRTk2NjI2NkY3QTlGMDAyRjNCMEQgLyogSW1hZ2VCdWZmZXJUZXN0cy5jcHAgKi87IH07
CiAJCTdDMUFGNzk1MUU4RENCQUIwMDI2NDVCOSAvKiBQcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MxQUY3OTMx
RThEQ0JBQjAwMjY0NUI5IC8qIFByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0gKi87IH07CiAJCTdD
Mzk2NTA2MUNERDc0RjkwMDk0REJCOCAvKiBDb2xvclRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzk2NTA1MUNERDc0RjkwMDk0REJCOCAv
KiBDb2xvclRlc3RzLmNwcCAqLzsgfTsKIAkJN0MzREI4RTQxRDEyMTI5QjAwQUU4Q0MzIC8qIENv
bW1hbmRCYWNrRm9yd2FyZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDM0RCOEUyMUQxMjEyOUIwMEFFOENDMyAvKiBDb21tYW5kQmFja0ZvcndhcmQu
bW0gKi87IH07CkBAIC0yNDU3LDYgKzI0NTgsNyBAQAogCQk3QUVBRDQ3RDFFMjAxMTRFMDA0MTZF
RkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1lQWNjZXNzLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IG5hbWUgPSBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MuaHRtbDsgcGF0aCA9
IFRlc3RzL21hYy9Dcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MuaHRtbDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQk3QjI3MzlGMjI2MzJBQjY0MDA0MEYxODIgLyogVGhyZWFk
QXNzZXJ0aW9uc1Rlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGhyZWFkQXNzZXJ0aW9uc1Rlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjdEMDk2OTI1MTlGOEY5MDAxN0EwNzggLyogV2ViR0xOb0NyYXNoT25PdGhlclRocmVhZEFjY2Vz
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdMTm9DcmFzaE9uT3RoZXJUaHJlYWRBY2Nl
c3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTJFOTY2MjY2RjdBOUYwMDJG
M0IwRCAvKiBJbWFnZUJ1ZmZlclRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlQnVmZmVyVGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QzFBRjc5MzFFOERDQkFCMDAyNjQ1QjkgLyogUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByZXBhcmVGb3JNb3Zl
VG9XaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMzk2NTA1MUNERDc0
RjkwMDk0REJCOCAvKiBDb2xvclRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENvbG9yVGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzNEQjhFMjFEMTIxMjlCMDBBRThDQzMgLyogQ29tbWFuZEJhY2tGb3J3YXJkLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29tbWFuZEJhY2tGb3J3YXJkLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzcwMyw2ICszNzA1LDcgQEAKIAkJCQkyNkY2
RTFFRjFBREM3NDlCMDBERTY5NkIgLyogREZBTWluaW1pemVyLmNwcCAqLywKIAkJCQlGNDA5NEND
NjI1NTQ1QkQ1MDAzRDczRTMgLyogRGlzcGxheUxpc3RUZXN0cy5jcHAgKi8sCiAJCQkJOTM5MTVB
MTYyNERCNjZDNzAwMTlGRjQzIC8qIERvY3VtZW50T3JkZXIuY3BwICovLAorCQkJCTdCQTJFOTY2
MjY2RjdBOUYwMDJGM0IwRCAvKiBJbWFnZUJ1ZmZlclRlc3RzLmNwcCAqLywKIAkJCQk1Nzk2NTFF
NjIxNkJGRDUzMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VUZXN0LmNwcCAqLywKIAkJCQk1NzJC
NDAzNTIxNzZBMDI5MDAwQUQ0M0UgLyogRmlkb1Rlc3REYXRhLmggKi8sCiAJCQkJN0EzMkQ3NDkx
RjAyMTUxNTAwMTYyQzQ0IC8qIEZpbGVNb25pdG9yLmNwcCAqLywKQEAgLTUzMTQsNiArNTMxNyw3
IEBACiAJCQkJN0NDRTdFQjQxQTQxMUE3RTAwNDQ3QzRDIC8qIEF0dHJpYnV0ZWRTdHJpbmcubW0g
aW4gU291cmNlcyAqLywKIAkJCQlGNEZBMkE0RjI0RDFGMDU3MDA2MThBNDYgLyogQXR0cmlidXRl
ZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzYwQzRG
MTIxMTI0OUFGMDAyMzNBQ0MgLyogQXR0clN0eWxlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJN0JB
MkU5NjcyNjZGN0E5RjAwMkYzQjBEIC8qIEltYWdlQnVmZmVyVGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDcxMzcwNEEyNjUzMjBFNTAwQ0EyQzlBIC8qIEF1ZGlvQnVmZmVyU2l6ZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCUNERUQzNDJGMjQ5RERFMEUwMDAyQUU3QSAvKiBBdWRpb1JvdXRp
bmdBcmJpdHJhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQzhFNDhEMUJDNUNCNDUwMDU5
NEZFQyAvKiBBdWRpb1Nlc3Npb25DYXRlZ29yeUlPUy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ltYWdlQnVmZmVyVGVzdHMu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ltYWdlQnVmZmVyVGVzdHMu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdiYzI0MjY5YjZkN2MwZDlmZDg2M2QwODU0Y2U0NGIzNGE2ZTkwZGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSW1h
Z2VCdWZmZXJUZXN0cy5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BpeGVsQnVm
ZmVyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyBSZWY8SW1hZ2VCdWZmZXI+
IGNyZWF0ZU1vY2tJbWFnZUJ1ZmZlcigpCit7CisgICAgLy8gRm9yIG5vdyB3ZSBqdXN0IHVzZSBh
IHJlYWwgSW1hZ2VCdWZmZXJzIHNpbmNlIHRoZXkgc3VwcG9ydCBXZWFrUHRyLgorICAgIHJldHVy
biAqSW1hZ2VCdWZmZXI6OmNyZWF0ZSh7IDUsIDYgfSwgUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0
ZWQsIFNob3VsZFVzZURpc3BsYXlMaXN0OjpZZXMsIFJlbmRlcmluZ1B1cnBvc2U6OlVuc3BlY2lm
aWVkLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgUGl4ZWxGb3JtYXQ6OkJHUkE4
LCBudWxscHRyKTsKK30KKworbmFtZXNwYWNlIHsKK2NsYXNzIERpc3BsYXlMaXN0SW1hZ2VCdWZm
ZXJUZXN0cyA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPHN0ZDo6dHVwbGU8UmVuZGVy
aW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZT4+IHsKK3B1YmxpYzoKKyAgICBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUoKSB7IHJldHVybiBzdGQ6OmdldDwwPihHZXRQYXJhbSgpKTsgfQorICAg
IFJlbmRlcmluZ1B1cnBvc2UgcmVuZGVyaW5nUHVycG9zZSgpIHsgcmV0dXJuIHN0ZDo6Z2V0PDE+
KEdldFBhcmFtKCkpOyB9Cit9OworfQorCisvLyBUZXN0cyB0aGF0IGBJbWFnZUJ1ZmZlcjo6Zmx1
c2hEcmF3aW5nQ29udGV4dCgpYCBmbGF0dGVucyB0aGUgZGlzcGxheSBsaXN0LgorVEVTVF9QKERp
c3BsYXlMaXN0SW1hZ2VCdWZmZXJUZXN0cywgRmx1c2hGbGF0dGVuc1NlbGYpCit7CisgICAgYXV0
byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoeyAxMDAsIDEwMCB9LCByZW5kZXJp
bmdNb2RlKCksIFNob3VsZFVzZURpc3BsYXlMaXN0OjpZZXMsIHJlbmRlcmluZ1B1cnBvc2UoKSwg
MSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIFBpeGVsRm9ybWF0OjpCR1JBOCwgbnVs
bHB0cik7CisgICAgV2Vha1B0cjxJbWFnZUJ1ZmZlcj4gd2Vha0ltYWdlQnVmZmVyOworICAgIHsK
KyAgICAgICAgYXV0byBJbWFnZUJ1ZmZlciA9IGNyZWF0ZU1vY2tJbWFnZUJ1ZmZlcigpOworICAg
ICAgICB3ZWFrSW1hZ2VCdWZmZXIgPSBtYWtlV2Vha1B0cihJbWFnZUJ1ZmZlci5nZXQoKSk7Cisg
ICAgICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkuZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVy
LCB7IDAuZiwgMC5mIH0pOworICAgIH0KKyAgICBFWFBFQ1RfTkUobnVsbHB0ciwgd2Vha0ltYWdl
QnVmZmVyLmdldCgpKTsKKyAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5nQ29udGV4dCgpOwor
ICAgIEVYUEVDVF9FUShudWxscHRyLCB3ZWFrSW1hZ2VCdWZmZXIuZ2V0KCkpOworfQorCisvLyBU
ZXN0cyB0aGF0IGBJbWFnZUJ1ZmZlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dCgpYCBmbGF0dGVucyB0
aGUgZGlzcGxheSBsaXN0IG9mIGFsbCB0aGUgc291cmNlIGltYWdlIGJ1ZmZlcnMgb2YgYSBpbWFn
ZSBidWZmZXIuCisvLyBBdCB0aGUgdGltZSBvZiB3cml0aW5nLCB0aGlzIGJlaGF2aW9yIHdhcyBl
eHBlY3RlZCBpbiBvcmRlciB0byBub3QgZ3JvdyB0aGUgaW50ZXJtZWRpYXRlIGltYWdlIGJ1ZmZl
ciB1bmJvdW5kZWQuCitURVNUX1AoRGlzcGxheUxpc3RJbWFnZUJ1ZmZlclRlc3RzLCBGbHVzaEZs
YXR0ZW5zU291cmNlcykKK3sKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZSh7IDEwMCwgMTAwIH0sIHJlbmRlcmluZ01vZGUoKSwgU2hvdWxkVXNlRGlzcGxheUxpc3Q6
OlllcywgcmVuZGVyaW5nUHVycG9zZSgpLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0Io
KSwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBudWxscHRyKTsKKyAgICBhdXRvIGludGVybWVkaWF0ZUlt
YWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh7IDEwMCwgMTAwIH0sIHJlbmRlcmluZ01v
ZGUoKSwgU2hvdWxkVXNlRGlzcGxheUxpc3Q6OlllcywgcmVuZGVyaW5nUHVycG9zZSgpLCAxLCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBudWxscHRy
KTsKKyAgICBXZWFrUHRyPEltYWdlQnVmZmVyPiB3ZWFrSW1hZ2VCdWZmZXI7CisgICAgeworICAg
ICAgICBhdXRvIEltYWdlQnVmZmVyID0gY3JlYXRlTW9ja0ltYWdlQnVmZmVyKCk7CisgICAgICAg
IHdlYWtJbWFnZUJ1ZmZlciA9IG1ha2VXZWFrUHRyKEltYWdlQnVmZmVyLmdldCgpKTsKKyAgICAg
ICAgaW50ZXJtZWRpYXRlSW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXIsIHsgMC5mLCAwLmYgfSk7CisgICAgfQorICAgIGltYWdlQnVmZmVyLT5jb250ZXh0
KCkuZHJhd0ltYWdlQnVmZmVyKCppbnRlcm1lZGlhdGVJbWFnZUJ1ZmZlciwgeyAwLmYsIDAuZiB9
KTsKKyAgICBFWFBFQ1RfTkUobnVsbHB0ciwgd2Vha0ltYWdlQnVmZmVyLmdldCgpKTsKKyAgICBp
bWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5nQ29udGV4dCgpOworICAgIEVYUEVDVF9FUShudWxscHRy
LCB3ZWFrSW1hZ2VCdWZmZXIuZ2V0KCkpOworCisgICAgV2Vha1B0cjxJbWFnZUJ1ZmZlcj4gd2Vh
a090aGVySW1hZ2VCdWZmZXI7CisgICAgeworICAgICAgICBhdXRvIG90aGVySW1hZ2VCdWZmZXIg
PSBjcmVhdGVNb2NrSW1hZ2VCdWZmZXIoKTsKKyAgICAgICAgd2Vha090aGVySW1hZ2VCdWZmZXIg
PSBtYWtlV2Vha1B0cihvdGhlckltYWdlQnVmZmVyLmdldCgpKTsKKyAgICAgICAgaW50ZXJtZWRp
YXRlSW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIob3RoZXJJbWFnZUJ1ZmZl
ciwgeyAwLmYsIDAuZiB9KTsKKyAgICB9CisgICAgRVhQRUNUX05FKG51bGxwdHIsIHdlYWtPdGhl
ckltYWdlQnVmZmVyLmdldCgpKTsKKyAgICBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLmRyYXdJbWFn
ZUJ1ZmZlcigqaW50ZXJtZWRpYXRlSW1hZ2VCdWZmZXIsIHsgMC5mLCAwLmYgfSk7CisgICAgRVhQ
RUNUX05FKG51bGxwdHIsIHdlYWtPdGhlckltYWdlQnVmZmVyLmdldCgpKTsKKyAgICBpbWFnZUJ1
ZmZlci0+Zmx1c2hEcmF3aW5nQ29udGV4dCgpOworICAgIEVYUEVDVF9FUShudWxscHRyLCB3ZWFr
T3RoZXJJbWFnZUJ1ZmZlci5nZXQoKSk7Cit9CisKKy8vIFRlc3RzIHRoYXQgdGhlcmUgaXMgbm8g
b2J2aW91cyBvcGVyYXRpb24gdGhhdCB3b3VsZCByZW5kZXIgYEltYWdlQnVmZmVyOjpmbHVzaERy
YXdpbmdDb250ZXh0KClgIHJlZHVuZGFudC4KK1RFU1RfUChEaXNwbGF5TGlzdEltYWdlQnVmZmVy
VGVzdHMsIEZsdXNoSXNOZWVkZWQpCit7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUoeyAxMDAsIDEwMCB9LCByZW5kZXJpbmdNb2RlKCksIFNob3VsZFVzZURpc3Bs
YXlMaXN0OjpZZXMsIHJlbmRlcmluZ1B1cnBvc2UoKSwgMSwgRGVzdGluYXRpb25Db2xvclNwYWNl
OjpTUkdCKCksIFBpeGVsRm9ybWF0OjpCR1JBOCwgbnVsbHB0cik7CisgICAgV2Vha1B0cjxJbWFn
ZUJ1ZmZlcj4gd2Vha0ltYWdlQnVmZmVyOworICAgIHsKKyAgICAgICAgYXV0byBJbWFnZUJ1ZmZl
ciA9IGNyZWF0ZU1vY2tJbWFnZUJ1ZmZlcigpOworICAgICAgICB3ZWFrSW1hZ2VCdWZmZXIgPSBt
YWtlV2Vha1B0cihJbWFnZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgIGltYWdlQnVmZmVyLT5jb250
ZXh0KCkuZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyLCB7IDAuZiwgMC5mLCAxMDAuZiwgMTAw
LmYgfSk7CisgICAgfQorICAgIEVYUEVDVF9ORShudWxscHRyLCB3ZWFrSW1hZ2VCdWZmZXIuZ2V0
KCkpOworICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkuY2xlYXJSZWN0KHsgMC5mLCAwLmYsIDEw
MDAuZiwgMTAwMC5mIH0pOworICAgIEVYUEVDVF9ORShudWxscHRyLCB3ZWFrSW1hZ2VCdWZmZXIu
Z2V0KCkpOworICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgRVhQ
RUNUX0VRKG51bGxwdHIsIHdlYWtJbWFnZUJ1ZmZlci5nZXQoKSk7Cit9CisKK0lOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUChEZWZhdWx0RGlzcGxheUxpc3RJbWFnZUJ1ZmZlclRlc3RzLCBEaXNwbGF5
TGlzdEltYWdlQnVmZmVyVGVzdHMsIHRlc3Rpbmc6OkNvbWJpbmUoCisgICAgdGVzdGluZzo6VmFs
dWVzKFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkKSwKKyAgICB0ZXN0aW5nOjpWYWx1ZXMoUmVuZGVyaW5nUHVycG9zZTo6VW5zcGVjaWZpZWQs
IFJlbmRlcmluZ1B1cnBvc2U6OkNhbnZhcywgUmVuZGVyaW5nUHVycG9zZTo6RE9NLCBSZW5kZXJp
bmdQdXJwb3NlOjpNZWRpYVBhaW50aW5nKSkpOworCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjI0YzkxMGQ1NDdjNTI0
NTkzMjgwZTRmM2ZkZjRkMWMwMGE0MWViYS4uNjI5MWIwMzRlNjk5NGUyOGM3MWNhNzUyNzllYjNi
NzFkZDRiMzdkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA2LTA5ICBLaW1tbyBLaW5u
dW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4dCBpbWFn
ZSBidWZmZXIgYWNjdW11bGF0ZXMgdGhlIE5hdGl2ZUltYWdlIGNvbnRlbnRzIHdoZW4gZHJhd24g
dG8gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2ODEzCisgICAgICAgIDxyZGFyOi8vNzc0MjE5NjY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0
aGF0IHdvdWxkIGNyYXNoIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAgICAgICAgb24gc29tZSBk
ZXZpY2VzLgorCisgICAgICAgICogd2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5
LXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9kcmF3LXdlYmdsLXRv
LWNvbnRleHQyZC1tZW1vcnktdGVzdC5odG1sOiBBZGRlZC4KKwogMjAyMS0wNi0wOCAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9d
IFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mODcwOGNhNTczYjliODk1Mzc0OTIzYjM4YWNjZGZiNGRmZTlmZjU0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvZHJhdy13ZWJnbC10by1jb250
ZXh0MmQtbWVtb3J5LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjAgQEAKK1RoaXMgdGVz
dCBjaGVja2luZyB0aGF0IGRyYXdpbmcgV2ViR0wgY2FudmFzIHRvIENvbnRleHQyRCBjYW52YXMg
d2l0aCBkcmF3SW1hZ2UgZG9lcyBub3QgdXNlIHVuYm91bmRlZCBhbW91bnQgb2YgbWVtb3J5Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUg
WzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwg
MTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0K
K1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3
SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hv
dWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0
LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTky
LCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BB
U1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1h
Z2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxk
IGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAx
MjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAy
NTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1Mg
ZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6
IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJl
IFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgs
IDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVd
CitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJh
d0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNo
b3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2
NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5
MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQ
QVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0lt
YWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3Vs
ZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwg
MTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5Miwg
MjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNT
IGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdl
OiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBi
ZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4
LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1
XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRy
YXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBT
aG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBb
NjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAx
OTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQor
UEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJ
bWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91
bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQs
IDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIs
IDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFT
UyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDJhMTRmNzBkZGE2MWYzYzAzYzhjODRkOGQ2ZmYxYTE0MDViNzI1NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10
ZXN0Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDYW52YXMgdG8gQ29udGV4dDJEIENhbnZhcyBNZW1vcnkg
VGVzdDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzLy9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvL2pzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhczJk
IiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiPjwvY2FudmFzPgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0
IjsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tpbmcgdGhhdCBkcmF3aW5nIFdlYkdMIGNh
bnZhcyB0byBDb250ZXh0MkQgY2FudmFzIHdpdGggZHJhd0ltYWdlIGRvZXMgbm90IHVzZSB1bmJv
dW5kZWQgYW1vdW50IG9mIG1lbW9yeS4iKTsKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3Zh
ciBjYW52YXMyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMyZCIpOwordmFyIGN0
eDJkID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKK3ZhciBjYW52YXNXZWJHTCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworY2FudmFzV2ViR0wud2lkdGggPSA0MDAwOwor
Y2FudmFzV2ViR0wuaGVpZ2h0ID0gNDAwMDsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
Y2FudmFzV2ViR0wpOworaWYgKCFnbCkgeworICAgIHRlc3RGYWlsZWQoImNvbnRleHQgZG9lcyBu
b3QgZXhpc3QiKTsKK30gZWxzZSB7CisgICAgZ2wuY2xlYXJDb2xvcigwLjI1LCAwLjUsIDAuNzUs
IDEpOworICAgIGZvciAodmFyIGNvdW50ID0gMDsgY291bnQgPCA1MDsgY291bnQrKykgeworICAg
ICAgICBjdHgyZC5jbGVhclJlY3QoMCwgMCwgY2FudmFzMmQud2lkdGgsIGNhbnZhczJkLmhlaWdo
dCk7CisgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZG
RVJfQklUKTsKKyAgICAgICAgY3R4MmQuZHJhd0ltYWdlKGNhbnZhc1dlYkdMLCAwLCAwLCBjYW52
YXMyZC53aWR0aCwgY2FudmFzMmQuaGVpZ2h0KTsKKyAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVj
dChjdHgyZCwgMCwgMCwgY2FudmFzMmQud2lkdGgsIGNhbnZhczJkLmhlaWdodCwgWzY0LCAxMjgs
IDE5MiwgMjU1XSwgImRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0iLCAy
KTsKKyAgICB9CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAg
IGRlYnVnKCIiKTsKKyAgICBmaW5pc2hUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431055</attachid>
            <date>2021-06-10 03:07:09 -0700</date>
            <delta_ts>2021-06-10 11:24:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226813-20210610130707.patch</filename>
            <type>text/plain</type>
            <size>30606</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmZmY4NGQwNDc4MTMx
ZjVkYjUxMDVlM2E5NzFkYmMyODMzYmM2NC4uY2I4MWZjYzU1MmI4ZTY3NGRmMTExYmI5MDQ2NTlh
ZTJkZmE3ODM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIxLTA2LTA5ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBpbWFnZSBidWZmZXIgYWNjdW11bGF0ZXMgdGhlIE5hdGl2ZUltYWdlIGNvbnRlbnRzIHdoZW4g
ZHJhd24gdG8gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2ODEzCisgICAgICAgIDxyZGFyOi8vNzc0MjE5NjY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJ5
IGltcGxlbWVudGluZyBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQ6OmRpc2Nh
cmREaXNwbGF5TGlzdC4gVGhlIGZ1bmN0aW9uCisgICAgICAgIHNob3VsZCBiZSBjYWxsZWQgaWYg
dGhlIGRpc3BsYXkgbGlzdCBpcyBub3QgYXBwbGllZCB3aXRoIERyYXdpbmdDb250ZXh0OjpyZXBs
YXlEaXNwbGF5TGlzdAorICAgICAgICBidXQgZGlzY2FyZGVkLiBUaGUgZnVuY3Rpb24gd2lsbCBt
YWtlIHN1cmUgdGhhdCB0aGUgaW1hZ2UgYnVmZmVycyByZWZlcmVuY2VkIGJ5IHRoZSBkaXNwbGF5
CisgICAgICAgIGxpc3QgYXJlIGZsdXNoZWQsIHNpbWlsYXIgdG8gdGhlIGJlaGF2aW9yIGFzIHdo
ZW4gZGlzcGxheSBsaXN0IGlzIGFwcGxpZWQuCisKKyAgICAgICAgVGVzdDogd2ViZ2wvZHJhdy13
ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgUmVtb3ZlIG1v
dmUgY29uc3RydWN0b3IgYW5kIG1vdmUgYXNzaWdubWVudAorICAgICAgICBhcyBwZXIgdGhlIGRl
ZHVjdGlvbiB0aGF0IERpc3BsYXlMaXN0IChzZWUgYmVsb3cpIGlzIG5vdCBtb3ZhYmxlIGFuZCB0
aGUgZnVuY3Rpb25zCisgICAgICAgIGFyZSBub3QgdXNlZC4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6fkRyYXdpbmdDb250
ZXh0KToKKyAgICAgICAgQWRkIGFuIGFzc2VydCB0byBlbmZvcmNlIHRoYXQgZWl0aGVyIHJlcGxh
eURpc3BsYXlMaXN0IG9yCisgICAgICAgIGRpc2NhcmREaXNwbGF5TGlzdCBzaG91bGQgYmUgY2Fs
bGVkLCBpbiBvcmRlciB0byBndWFyYW50ZWUgdGhlIHJ1bGUgb2YKKyAgICAgICAgZmx1c2hpbmcg
dGhlIHJlZmVyZW5jZWQgSW1hZ2VCdWZmZXJzLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdpbmdDb250ZXh0OjpkaXNjYXJkRGlzcGxheUxpc3QpOgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaDoK
KyAgICAgICAgUmVtb3ZlIHRha2VEaXNwbGF5TGlzdCBhcyB0aGF0IGlzIG5vdCBjb3JyZWN0IGZ1
bmN0aW9uLiBUaGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb2YgZGlzY2FyZERpc3BsYXlMaXN0
IHNob3VsZCB1c2UgdGhpcyBmdW5jdGlvbiBpZiBpdCB3YXMgcG9zc2libGUuIEhvd2V2ZXIsCisg
ICAgICAgIGRpc3BsYXkgbGlzdCBjb250YWlucyBjdXN0b21pemluZyBkZWxlZ2F0ZSBvYmplY3Rz
IChJdGVtQnVmZmVyUmVhZGVyL1dyaXRlckNsaWVudCkuCisgICAgICAgIFRob3NlIGRvIG5vdCBt
YWtlIHNlbnNlIHRvIGJlIG1vdmVkIGFuZCBpZiBtb3ZlZCBhd2F5LCB0aGUgdGFrZURpc3BsYXlM
aXN0IHNvdXJjZQorICAgICAgICBpcyByZW5kZXJlZCBpbmNvcnJlY3QuIFRoaXMgbWVhbnMgRGlz
cGxheUxpc3QgaXMgbm90IG1vdmFibGUgYW5kIHRoZSB0YWtlRGlzcGxheUxpc3QKKyAgICAgICAg
Y2Fubm90IGJlIHVzZWQgYW5kIGFzIHN1Y2ggc2hvdWxkIG5vdCBiZSBpbXBsZW1lbnRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6cmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0OjpoYXNQZW5kaW5n
V29yayBjb25zdCk6CisgICAgICAgIEFkZCBhIGZ1bmN0aW9uIHRvIGVuY2Fwc3VsYXRlIERyYXdp
bmdDb250ZXh0IGltcGxlbWVudGF0aW9uIGZyb20gdGhlIHRoZSBjYWxsZXJzIG1vcmUuCisgICAg
ICAgIEkuZS4gdGhlIGNhbGxlcnMgc2hvdWxkbid0IGFjY2VzcyB0aGUgZGlzcGxheSBsaXN0IGRp
cmVjdGx5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpjaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyKToKKyAgICAgICAgQWRk
IGEgZnVuY3Rpb24gdG8gZW5jYXBzdWxhdGUgUmVjb2RlciBpbXBsZW1lbnRhdGlvbiBmcm9tIHRo
ZSB0aGUgY2FsbGVycyBtb3JlLgorICAgICAgICBJLmUuIHRoZSBjYWxsZXJzIHNob3VsZG4ndCBh
Y2Nlc3MgdGhlIGRpc3BsYXkgbGlzdCBkaXJlY3RseS4KKwogMjAyMS0wNi0wOCAgRnLDqWTDqXJp
YyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBJbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmYWJiOTRiOGJiYjRi
ZjlkMGI4YTc1ZTQ2YWYzMzA2NjNmZDQ0MGYuLjMyNTgyZWYxYTMzYzdhYTUwMWJiZTVmMTgwMmU2
NWJmMjgwNTQyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDYtMDkgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJHTCBjb250ZXh0
IGltYWdlIGJ1ZmZlciBhY2N1bXVsYXRlcyB0aGUgTmF0aXZlSW1hZ2UgY29udGVudHMgd2hlbiBk
cmF3biB0byBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY4MTMKKyAgICAgICAgPHJkYXI6Ly83NzQyMTk2Nj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1
cmUgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSBuZXZlciBkaXJlY3RseSBjbGVhcnMgaXRzIGRpc3Bs
YXkgbGlzdC4KKyAgICAgICAgV2hlbiBJbWFnZUJ1ZmZlcnMgYXJlIHB1dCB0byB0aGUgZGlzcGxh
eSBsaXN0LCB0aGUgZXhwZWN0YXRpb24gaXMgdGhhdAorICAgICAgICB0aGV5IGFyZSBmbHVzaGVk
IHdoZW4gdGhlaXIgY29tbWFuZCBpcyBleGVjdXRlZC4gSWYgdGhlIGZsdXNoIGlzIG5vdCBkb25l
LAorICAgICAgICB0aGUgZGlzcGxheSBsaXN0IGdyb3dzIHVuYm91bmRlZC4gQ2FzZXMgd2hlcmUg
aXRlbXMgY29udGFpbiBiaXRtYXBzIHN1Y2gKKyAgICAgICAgYXMgTmF0aXZlSW1hZ2VzIHdpbGwg
Y29uc3VtZSBhIGxvdCBvZiBtZW1vcnkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6On5SZW1vdGVJbWFnZUJ1ZmZlclByb3h5KToKKwogMjAyMS0wNi0wOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuMzMuMiByZWxl
YXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBmYWQ2YTY5NTAwN2E5NjY0NWMyNzEx
ZDhmMDkxMGVhODU2NDNmNTI4Li4xZjk3Y2ZkNGU4MmJmY2YyNjZkMDY4NzlmOWE1YmE5OGJlMzZh
ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTUxLDE0ICs1MSw2IEBAIHZvaWQg
RGlzcGxheUxpc3Q6OmR1bXAoKSBjb25zdAogfQogI2VuZGlmCiAKLURpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdChEaXNwbGF5TGlzdCYmIG90aGVyKQotICAgIDogbV9pbWFnZUJ1ZmZlcnMoc3RkOjpl
eGNoYW5nZShvdGhlci5tX2ltYWdlQnVmZmVycywgeyB9KSkKLSAgICAsIG1fbmF0aXZlSW1hZ2Vz
KHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9uYXRpdmVJbWFnZXMsIHsgfSkpCi0gICAgLCBtX2l0ZW1z
KHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pdGVtcywgbnVsbHB0cikpCi0gICAgLCBtX2RyYXdpbmdJ
dGVtRXh0ZW50cyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZHJhd2luZ0l0ZW1FeHRlbnRzLCB7IH0p
KQotewotfQotCiBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QoSXRlbUJ1ZmZlckhhbmRsZXMmJiBo
YW5kbGVzKQogICAgIDogbV9pdGVtcyhtYWtlVW5pcXVlPEl0ZW1CdWZmZXI+KFdURk1vdmUoaGFu
ZGxlcykpKQogewpAQCAtNjcsMjIgKzU5LDIyIEBAIERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdChJ
dGVtQnVmZmVySGFuZGxlcyYmIGhhbmRsZXMpCiBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QoKSA9
IGRlZmF1bHQ7CiBEaXNwbGF5TGlzdDo6fkRpc3BsYXlMaXN0KCkgPSBkZWZhdWx0OwogCi1EaXNw
bGF5TGlzdCYgRGlzcGxheUxpc3Q6Om9wZXJhdG9yPShEaXNwbGF5TGlzdCYmIG90aGVyKQordm9p
ZCBEaXNwbGF5TGlzdDo6Y2xlYXIoKQogewotICAgIG1faW1hZ2VCdWZmZXJzID0gc3RkOjpleGNo
YW5nZShvdGhlci5tX2ltYWdlQnVmZmVycywgeyB9KTsKLSAgICBtX25hdGl2ZUltYWdlcyA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9uYXRpdmVJbWFnZXMsIHsgfSk7Ci0gICAgbV9pdGVtcyA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pdGVtcywgbnVsbHB0cik7Ci0gICAgbV9kcmF3aW5nSXRlbUV4
dGVudHMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZHJhd2luZ0l0ZW1FeHRlbnRzLCB7IH0pOwot
ICAgIHJldHVybiAqdGhpczsKKyAgICBpZiAobV9pdGVtcykKKyAgICAgICAgbV9pdGVtcy0+Y2xl
YXIoKTsKKyAgICBtX2RyYXdpbmdJdGVtRXh0ZW50cy5jbGVhcigpOworICAgIG1faW1hZ2VCdWZm
ZXJzLmNsZWFyKCk7CisgICAgbV9uYXRpdmVJbWFnZXMuY2xlYXIoKTsKIH0KIAotdm9pZCBEaXNw
bGF5TGlzdDo6Y2xlYXIoKQorSW1hZ2VCdWZmZXJIYXNoTWFwIERpc3BsYXlMaXN0OjpjbGVhckZv
ckRpc2NhcmQoKQogewogICAgIGlmIChtX2l0ZW1zKQogICAgICAgICBtX2l0ZW1zLT5jbGVhcigp
OwogICAgIG1fZHJhd2luZ0l0ZW1FeHRlbnRzLmNsZWFyKCk7Ci0gICAgbV9pbWFnZUJ1ZmZlcnMu
Y2xlYXIoKTsKICAgICBtX25hdGl2ZUltYWdlcy5jbGVhcigpOworICAgIHJldHVybiBzdGQ6OmV4
Y2hhbmdlKG1faW1hZ2VCdWZmZXJzLCB7IH0pOwogfQogCiBib29sIERpc3BsYXlMaXN0OjpzaG91
bGREdW1wRm9yRmxhZ3MoQXNUZXh0RmxhZ3MgZmxhZ3MsIEl0ZW1IYW5kbGUgaXRlbSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0LmgKaW5kZXggNGFjNWRiMmU4NGZlNzQ4YmQzNzYyN2U4ODQ4YTNhOGUxNDRj
YTA3ZS4uYmVkNzFkODE3MWU3MDNiMmVlZDJhYWY5OTJjMTI3OGZjN2JhZjAwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0LmgKQEAgLTU4LDE2ICs1OCwxNCBAQCBjbGFzcyBEaXNwbGF5TGlzdCB7CiAg
ICAgZnJpZW5kIGNsYXNzIFJlcGxheWVyOwogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIERp
c3BsYXlMaXN0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgRGlzcGxheUxpc3QoRGlzcGxheUxpc3Qm
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgRGlzcGxheUxpc3QoSXRlbUJ1ZmZlckhhbmRsZXMmJik7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB+RGlzcGxheUxpc3QoKTsKIAotICAgIFdFQkNPUkVfRVhQ
T1JUIERpc3BsYXlMaXN0JiBvcGVyYXRvcj0oRGlzcGxheUxpc3QmJik7Ci0KICAgICB2b2lkIGR1
bXAoV1RGOjpUZXh0U3RyZWFtJikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNs
ZWFyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VCdWZmZXJIYXNoTWFwIGNsZWFyRm9yRGlz
Y2FyZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogICAgIFdF
QkNPUkVfRVhQT1JUIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKaW5kZXggMzk1N2M0NTc2ZmU5
MTJkNjgxMDIwNzYxMDAxY2MyNGY2ODY4ODYyYS4uMjQ2NmZmODRkNTkwZGY0NTQ0Zjc5NDk2NDhj
YWNkNjJmNzEwOWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdp
bmdDb250ZXh0LmNwcApAQCAtMzgsNiArMzgsMTEgQEAgRHJhd2luZ0NvbnRleHQ6OkRyYXdpbmdD
b250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm8K
IHsKIH0KIAorRHJhd2luZ0NvbnRleHQ6On5EcmF3aW5nQ29udGV4dCgpCit7CisgICAgQVNTRVJU
KCFoYXNQZW5kaW5nV29yaygpKTsKK30KKwogdm9pZCBEcmF3aW5nQ29udGV4dDo6c2V0VHJhY2tz
RGlzcGxheUxpc3RSZXBsYXkoYm9vbCB0cmFja3NEaXNwbGF5TGlzdFJlcGxheSkKIHsKICAgICBt
X3RyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5ID0gdHJhY2tzRGlzcGxheUxpc3RSZXBsYXk7CkBAIC01
Nyw1ICs2MiwxNiBAQCB2b2lkIERyYXdpbmdDb250ZXh0OjpyZXBsYXlEaXNwbGF5TGlzdChHcmFw
aGljc0NvbnRleHQmIGRlc3RDb250ZXh0KQogICAgIG1fZGlzcGxheUxpc3QuY2xlYXIoKTsKIH0K
IAordm9pZCBEcmF3aW5nQ29udGV4dDo6ZGlzY2FyZERpc3BsYXlMaXN0KCkKK3sKKyAgICBpZiAo
bV9kaXNwbGF5TGlzdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGltYWdl
QnVmZmVycyA9IG1fZGlzcGxheUxpc3QuY2xlYXJGb3JEaXNjYXJkKCk7CisgICAgZm9yIChhdXRv
JiBpbWFnZUJ1ZmZlciA6IGltYWdlQnVmZmVycy52YWx1ZXMoKSkKKyAgICAgICAgaW1hZ2VCdWZm
ZXItPmZsdXNoRHJhd2luZ0NvbnRleHRBc3luYygpOworICAgIGZvciAoYXV0byYgaW1hZ2VCdWZm
ZXIgOiBpbWFnZUJ1ZmZlcnMudmFsdWVzKCkpCisgICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERy
YXdpbmdDb250ZXh0KCk7Cit9CisKIH0gLy8gRGlzcGxheUxpc3QKIH0gLy8gV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKaW5kZXggOTY1NjM2
MzRkNTdmNDA5NGIzYzJjYmE2ZjA2NzQwZjUwNjNkZDRiZi4uOGM2NWYxMjI0ZWUzNjNkZmUzM2Y1
MmY0YjY1ZGY3OWE0NDJkODViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RE
cmF3aW5nQ29udGV4dC5oCkBAIC0zOCwxNiArMzgsMTkgQEAgY2xhc3MgRHJhd2luZ0NvbnRleHQg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIERyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSA9IHsgfSwgUmVjb3JkZXI6OkRlbGVnYXRlKiA9IG51
bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIH5EcmF3aW5nQ29udGV4dCgpOwogCiAgICAgR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxEcmF3aW5n
Q29udGV4dCY+KCp0aGlzKS5tX2NvbnRleHQ7IH0KICAgICBSZWNvcmRlciYgcmVjb3JkZXIoKSB7
IHJldHVybiBtX2NvbnRleHQ7IH07Ci0gICAgRGlzcGxheUxpc3QgdGFrZURpc3BsYXlMaXN0KCkg
eyByZXR1cm4gc3RkOjpleGNoYW5nZShtX2Rpc3BsYXlMaXN0LCB7IH0pOyB9CiAgICAgRGlzcGxh
eUxpc3QmIGRpc3BsYXlMaXN0KCkgeyByZXR1cm4gbV9kaXNwbGF5TGlzdDsgfQogICAgIGNvbnN0
IERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3Q7
IH0KICAgICBjb25zdCBJbk1lbW9yeURpc3BsYXlMaXN0KiByZXBsYXllZERpc3BsYXlMaXN0KCkg
Y29uc3QgeyByZXR1cm4gbV9yZXBsYXllZERpc3BsYXlMaXN0LmdldCgpOyB9CiAKKyAgICBib29s
IGhhc1BlbmRpbmdXb3JrKCkgY29uc3QgeyByZXR1cm4gIW1fZGlzcGxheUxpc3QuaXNFbXB0eSgp
OyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5
KGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGF5RGlzcGxheUxpc3QoR3JhcGhp
Y3NDb250ZXh0Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNjYXJkRGlzcGxheUxpc3Qo
KTsKIAogcHJvdGVjdGVkOgogICAgIFJlY29yZGVyIG1fY29udGV4dDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdElt
YWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCmluZGV4IDgxYjkyNDc0ZTI0ZWNkMjM2ZjIyMDc3
NGVkMWNiY2Y4NDY5ZjMyNzguLmI3ZjA4ZDEzNjI0NmIyYTcyMTY5M2FjYWE1OTdkNTZkNDY5ZTk3
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaApAQCAtODMs
MTMgKzgzLDEzIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dCgpIG92
ZXJyaWRlCiAgICAgewotICAgICAgICBpZiAoIW1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3Qo
KS5pc0VtcHR5KCkpCisgICAgICAgIGlmIChtX2RyYXdpbmdDb250ZXh0Lmhhc1BlbmRpbmdXb3Jr
KCkpCiAgICAgICAgICAgICBtX2RyYXdpbmdDb250ZXh0LnJlcGxheURpc3BsYXlMaXN0KEJhc2VD
b25jcmV0ZUltYWdlQnVmZmVyOjpjb250ZXh0KCkpOwogICAgIH0KIAogICAgIHZvaWQgY2xlYXJC
YWNrZW5kKCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIG1fZHJhd2luZ0NvbnRleHQuZGlzcGxh
eUxpc3QoKS5jbGVhcigpOworICAgICAgICBtX2RyYXdpbmdDb250ZXh0LmRpc2NhcmREaXNwbGF5
TGlzdCgpOwogICAgICAgICBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Y2xlYXJCYWNrZW5kKCk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA2MWJm
NzlkNDgwOGRhNjBjYmE5NWE0MzAxMzYwMDVkZjZhYTRmMGMzLi4xZDgyZDliYzI5OTg1MTFhNjNj
ZDUwZTYxYzNiMjEzYjBjMTFkMTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmgKQEAgLTc0LDcgKzc0LDEwIEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgdm9pZCBmbHVz
aENvbnRleHQoRmx1c2hJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgYXBwZW5kPEZsdXNoQ29udGV4
dD4oaWRlbnRpZmllcik7IH0KLQorICAgIHZvaWQgY2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZl
cihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbmV4dEltYWdlQnVmZmVyKQorICAgIHsKKyAg
ICAgICAgbV9kaXNwbGF5TGlzdC5hcHBlbmQ8TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbklt
YWdlQnVmZmVyPihuZXh0SW1hZ2VCdWZmZXIpOworICAgIH0KIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIERyYXdHbHlwaHNSZWNvcmRlcjsKICAgICBSZWNvcmRlcihSZWNvcmRlciYgcGFyZW50
LCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENs
aXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oCmluZGV4IDZkY2YxZDUyZjFhOGExOTgxN2Y1YTUxYzBiZDAzOTczNDljOTE0N2Eu
LjdjOWEyMTEwZmQ3YWZmZDM5MGMyZmMxMWM0MzJjMDM0YTJmOTExYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB+UmVtb3RlSW1h
Z2VCdWZmZXJQcm94eSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KSB7Ci0gICAgICAgICAgICBjbGVhckRpc3BsYXlMaXN0KCk7CisgICAgICAgICAg
ICBtX2RyYXdpbmdDb250ZXh0LmRpc2NhcmREaXNwbGF5TGlzdCgpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKQEAgLTI1OCwxMyArMjU4LDEzIEBAIHByb3RlY3RlZDoKICAgICAg
ICAgaWYgKFVOTElLRUxZKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKCFtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0
KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChtX2RyYXdpbmdDb250ZXh0Lmhhc1BlbmRpbmdX
b3JrKCkpIHsKICAgICAgICAgICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9IFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAgICAgICAgICAgICBtX2Ry
YXdpbmdDb250ZXh0LnJlY29yZGVyKCkuZmx1c2hDb250ZXh0KG1fc2VudEZsdXNoSWRlbnRpZmll
cik7CiAgICAgICAgIH0KIAogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+
c2VuZERlZmVycmVkV2FrZXVwTWVzc2FnZUlmTmVlZGVkKCk7Ci0gICAgICAgIGNsZWFyRGlzcGxh
eUxpc3QoKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNjYXJkRGlzcGxheUxpc3QoKTsK
ICAgICB9CiAKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2Um
IGltYWdlKSBvdmVycmlkZQpAQCAtMjg0LDEwICsyODQsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAg
dm9pZCBjaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBuZXh0SW1hZ2VCdWZmZXIpIGZpbmFsCiAgICAgewotICAgICAgICBib29s
IHdhc0VtcHR5ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLmlzRW1wdHkoKTsKLSAg
ICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnRlbXBsYXRlIGFwcGVuZDxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVy
PihuZXh0SW1hZ2VCdWZmZXIpOworICAgICAgICBib29sIHdhc0VtcHR5ID0gIW1fZHJhd2luZ0Nv
bnRleHQuaGFzUGVuZGluZ1dvcmsoKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5yZWNvcmRl
cigpLmNoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIobmV4dEltYWdlQnVmZmVyKTsKICAgICAg
ICAgaWYgKHdhc0VtcHR5KQotICAgICAgICAgICAgY2xlYXJEaXNwbGF5TGlzdCgpOworICAgICAg
ICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNjYXJkRGlzcGxheUxpc3QoKTsKICAgICB9CiAKICAg
ICB2b2lkIHByZXBhcmVUb0FwcGVuZERpc3BsYXlMaXN0SXRlbXMoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1CdWZmZXJIYW5kbGUmJiBoYW5kbGUpIGZpbmFsCkBAIC0yOTUsMTEgKzI5NSw2IEBA
IHByb3RlY3RlZDoKICAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnByZXBh
cmVUb0FwcGVuZChXVEZNb3ZlKGhhbmRsZSkpOwogICAgIH0KIAotICAgIHZvaWQgY2xlYXJEaXNw
bGF5TGlzdCgpCi0gICAgewotICAgICAgICBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCku
Y2xlYXIoKTsKLSAgICB9Ci0KICAgICBib29sIGNhbkFwcGVuZEl0ZW1PZlR5cGUoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKFVOTElL
RUxZKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkpCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjk0MTZlYzgzNTFmYjM1OGQ0N2U3Yjg4
MDZjN2Q4ZTk1YTQ5OWE4OS4uODgyNDY4MjMzN2MwZDhmNWRhNTVlZDliM2ViMGE5NTQwMThiZmQ0
MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMwIEBACisyMDIxLTA2LTA5ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4dCBpbWFnZSBidWZmZXIgYWNjdW11bGF0ZXMg
dGhlIE5hdGl2ZUltYWdlIGNvbnRlbnRzIHdoZW4gZHJhd24gdG8gUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
ODEzCisgICAgICAgIDxyZGFyOi8vNzc0MjE5NjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCBleHBsYWluaW5nIG5vbi1HUFVQLCBu
b3JtYWwgZGlzcGxheSBsaXN0IGNvbnRyYWN0IGFib3V0IHRoZQorICAgICAgICBJbWFnZUJ1ZmZl
cjo6Zmx1c2hEcmF3aW5nQ29udGV4dCBjYXVzaW5nIGZsdXNoIG9uIHRoZSByZWZlcmVuY2VkCisg
ICAgICAgIEltYWdlQnVmZmVycy4KKworICAgICAgICBOb3RlOiB0aGUgdGVzdC1jYXNlIGRvY3Vt
ZW50cyBleGlzdGluZyBiZWhhdmlvciBpbiBub24tR1BVUCBjYXNlLCBhbmQKKyAgICAgICAgY2Fu
bm90IGF0IHRoZSBtb21lbnQgdGVzdCB0aGUgR1BVUCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL21hbmFnZXIucHk6CisgICAgICAgIChNYW5h
Z2VyLl90ZXN0X2xpc3RfZnJvbV9vdXRwdXQpOgorICAgICAgICBGaXggcnVuLWFwaS10ZXN0cyB0
byBiZSBhYmxlIHRvIGNvbnN1bWUgbmFtZXMgb2YgdmFsdWUtcGFyYW1ldHJpemVkIHRlc3RzLgor
ICAgICAgICBmb3JtYXQgaXM6CisgICAgICAgIERlZmF1bHREaXNwbGF5TGlzdEltYWdlQnVmZmVy
VGVzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlclRlc3RzLgorICAgICAgICAgICAgRmx1c2hGbGF0
dGVuc1NlbGYvMCAgIyBHZXRQYXJhbSgpID0gKDEtYnl0ZSBvYmplY3QgPDAxPiwgMS1ieXRlIG9i
amVjdCA8MDA+KQorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ltYWdlQnVmZmVyVGVzdHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmNyZWF0ZU1vY2tJbWFnZUJ1ZmZlcik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX1Ap
OgorCiAyMDIxLTA2LTA4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbRmxhdHBhayBTREtdIEFsbG93IGN1c3RvbSBidWlsZCBkaXJlY3Rvcmllcwpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvbWFuYWdlci5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL21hbmFnZXIucHkKaW5kZXggYzM0MWRm
ZjNlODJlODQ2NWEwNzUwMzZkYzc1ZjNlYmMwNWU0Y2EzMy4uZTQ1MWI4YTcxMzliOWQ2NTIyOWYw
NTQzMDJhMDVhNDBkMWUwMjgxZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9h
cGlfdGVzdHMvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0
cy9tYW5hZ2VyLnB5CkBAIC01NSw2ICs1NSw3IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAg
ICAgICAgcmVzdWx0ID0gW10KICAgICAgICAgY3VycmVudF90ZXN0X3N1aXRlID0gTm9uZQogICAg
ICAgICBmb3IgbGluZSBpbiBvdXRwdXQuc3BsaXQoJ1xuJyk6CisgICAgICAgICAgICBsaW5lID0g
bGluZS5zcGxpdCgiIyIpWzBdICAjIFZhbHVlLXBhcmFtZXRyaXplZCB0ZXN0cyBoYXZlIGNvbW1l
bnRzIGluIHRoZSBuYW1lIGxpbmUuCiAgICAgICAgICAgICBzdHJpcGVkX2xpbmUgPSBsaW5lLmxz
dHJpcCgpLnJzdHJpcCgpCiAgICAgICAgICAgICBpZiBub3Qgc3RyaXBlZF9saW5lOgogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYzNTEzMjFjMjk4
MmE5MWViNGM2Y2MyN2U0NDVhMTczZWM0ZDVkMGQuLmEyNDZiMzgzOTMxNWVmY2MxMjZiNDE5OWU4
MTgxYjMyNGVmNTE1M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTEsNiArNTkxLDcg
QEAKIAkJN0FFQUQ0ODExRTIwMTIyNzAwNDE2RUZFIC8qIENyb3NzUGFydGl0aW9uRmlsZVNjaGVt
ZUFjY2Vzcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdBRUFENDdEMUUyMDExNEUwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVT
Y2hlbWVBY2Nlc3MuaHRtbCAqLzsgfTsKIAkJN0IyNzM5RjMyNjMyQUI2NDAwNDBGMTgyIC8qIFRo
cmVhZEFzc2VydGlvbnNUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCMjczOUYyMjYzMkFCNjQwMDQwRjE4MiAvKiBUaHJlYWRBc3NlcnRpb25z
VGVzdC5jcHAgKi87IH07CiAJCTdCN0QwOTZBMjUxOUY4RjkwMDE3QTA3OCAvKiBXZWJHTE5vQ3Jh
c2hPbk90aGVyVGhyZWFkQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0I3RDA5NjkyNTE5RjhGOTAwMTdBMDc4IC8qIFdlYkdMTm9DcmFzaE9u
T3RoZXJUaHJlYWRBY2Nlc3MubW0gKi87IH07CisJCTdCQTJFOTY3MjY2RjdBOUYwMDJGM0IwRCAv
KiBJbWFnZUJ1ZmZlclRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCQTJFOTY2MjY2RjdBOUYwMDJGM0IwRCAvKiBJbWFnZUJ1ZmZlclRlc3Rz
LmNwcCAqLzsgfTsKIAkJN0MxQUY3OTUxRThEQ0JBQjAwMjY0NUI5IC8qIFByZXBhcmVGb3JNb3Zl
VG9XaW5kb3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzFBRjc5MzFFOERDQkFCMDAyNjQ1QjkgLyogUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbSAq
LzsgfTsKIAkJN0MzOTY1MDYxQ0RENzRGOTAwOTREQkI4IC8qIENvbG9yVGVzdHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOTY1MDUxQ0RENzRG
OTAwOTREQkI4IC8qIENvbG9yVGVzdHMuY3BwICovOyB9OwogCQk3QzNEQjhFNDFEMTIxMjlCMDBB
RThDQzMgLyogQ29tbWFuZEJhY2tGb3J3YXJkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzREI4RTIxRDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRC
YWNrRm9yd2FyZC5tbSAqLzsgfTsKQEAgLTI0NTcsNiArMjQ1OCw3IEBACiAJCTdBRUFENDdEMUUy
MDExNEUwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9IENyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5o
dG1sOyBwYXRoID0gVGVzdHMvbWFjL0Nyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5odG1s
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTdCMjczOUYyMjYzMkFCNjQwMDQwRjE4
MiAvKiBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCN0QwOTY5MjUxOUY4RjkwMDE3QTA3OCAvKiBXZWJHTE5vQ3Jhc2hPbk90aGVy
VGhyZWFkQWNjZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR0xOb0NyYXNoT25PdGhl
clRocmVhZEFjY2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JBMkU5NjYy
NjZGN0E5RjAwMkYzQjBEIC8qIEltYWdlQnVmZmVyVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDMUFGNzkzMUU4RENCQUIwMDI2NDVCOSAvKiBQcmVwYXJlRm9yTW92
ZVRvV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJl
cGFyZUZvck1vdmVUb1dpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Mz
OTY1MDUxQ0RENzRGOTAwOTREQkI4IC8qIENvbG9yVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDM0RCOEUyMUQxMjEyOUIwMEFFOENDMyAvKiBDb21tYW5kQmFja0ZvcndhcmQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb21tYW5kQmFja0Zv
cndhcmQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNzE1LDYgKzM3MTcsNyBA
QAogCQkJCTVDQTFERUM3MUY3MUY0MDcwMEU3MUJEMyAvKiBIVFRQSGVhZGVyRmllbGQuY3BwICov
LAogCQkJCTQ2RkEyRkVEMjM4NDZDOUEwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCAqLywK
IAkJCQk2QjlBQkUxMTIwODY5NTJGMDBENzVERTYgLyogSFRUUFBhcnNlcnMuY3BwICovLAorCQkJ
CTdCQTJFOTY2MjY2RjdBOUYwMDJGM0IwRCAvKiBJbWFnZUJ1ZmZlclRlc3RzLmNwcCAqLywKIAkJ
CQk3QTkwOUE3MzFEODc3NDc1MDA3RTEwRjggLyogSW50UG9pbnRUZXN0cy5jcHAgKi8sCiAJCQkJ
N0E5MDlBNzQxRDg3NzQ3NTAwN0UxMEY4IC8qIEludFJlY3RUZXN0cy5jcHAgKi8sCiAJCQkJN0E5
MDlBNzUxRDg3NzQ3NTAwN0UxMEY4IC8qIEludFNpemVUZXN0cy5jcHAgKi8sCkBAIC01NTA0LDYg
KzU1MDcsNyBAQAogCQkJCTUxMDQ3Nzc4MUQyOTkyM0IwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNv
dmVyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMTBGQ0ZBMUUwMUNEQjgwMDZGOEQwQiAvKiBJ
REJJbmRleFVwZ3JhZGVUb1YyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCQ0JDODMyM0NDNkYy
QTAwQ0EyMjIxIC8qIElEQk9iamVjdFN0b3JlSW5mb1VwZ3JhZGVUb1YyLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJN0JBMkU5NjcyNjZGN0E5RjAwMkYzQjBEIC8qIEltYWdlQnVmZmVyVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0QTlBRjcyNjQ5QkJERDAwRTdDQjE2IC8qIEltbWVkaWF0
ZUFjdGlvblRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlBRUVGNkQyNDA3MzU5RDAwQzg3
RTRDIC8qIEluQXBwQnJvd3NlclByaXZhY3kubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUE1ODc4
NjFEMjczQUE5MDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbSBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ltYWdlQnVmZmVyVGVzdHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ltYWdlQnVmZmVyVGVzdHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YzM4YTM1YjJkMDBkZjNlMDQxNDgz
YjRiNmMxM2NkZjhhYmYwYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvSW1hZ2VCdWZmZXJUZXN0cy5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBo
aWNzQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1BpeGVsQnVmZmVyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRp
YyBSZWY8SW1hZ2VCdWZmZXI+IGNyZWF0ZU1vY2tJbWFnZUJ1ZmZlcigpCit7CisgICAgLy8gRm9y
IG5vdyB3ZSBqdXN0IHVzZSBhIHJlYWwgSW1hZ2VCdWZmZXJzIHNpbmNlIHRoZXkgYWxyZWFkeSBz
dXBwb3J0IFdlYWtQdHIuCisgICAgcmV0dXJuICpJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHsgNSwgNiB9
LCBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCwgU2hvdWxkVXNlRGlzcGxheUxpc3Q6Olllcywg
UmVuZGVyaW5nUHVycG9zZTo6VW5zcGVjaWZpZWQsIDEsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6
U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdSQTgsIG51bGxwdHIpOworfQorCituYW1lc3BhY2Ugewor
Y2xhc3MgRGlzcGxheUxpc3RJbWFnZUJ1ZmZlclRlc3RzIDogcHVibGljIHRlc3Rpbmc6OlRlc3RX
aXRoUGFyYW08c3RkOjp0dXBsZTxSZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlPj4gewor
cHVibGljOgorICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIHsgcmV0dXJuIHN0ZDo6
Z2V0PDA+KEdldFBhcmFtKCkpOyB9CisgICAgUmVuZGVyaW5nUHVycG9zZSByZW5kZXJpbmdQdXJw
b3NlKCkgeyByZXR1cm4gc3RkOjpnZXQ8MT4oR2V0UGFyYW0oKSk7IH0KK307Cit9CisKKy8vIFRl
c3RzIHRoYXQgYEltYWdlQnVmZmVyOjpmbHVzaERyYXdpbmdDb250ZXh0KClgIGZsYXR0ZW5zIHRo
ZSBkaXNwbGF5IGxpc3QuCitURVNUX1AoRGlzcGxheUxpc3RJbWFnZUJ1ZmZlclRlc3RzLCBGbHVz
aEZsYXR0ZW5zU2VsZikKK3sKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZSh7IDEwMCwgMTAwIH0sIHJlbmRlcmluZ01vZGUoKSwgU2hvdWxkVXNlRGlzcGxheUxpc3Q6
OlllcywgcmVuZGVyaW5nUHVycG9zZSgpLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0Io
KSwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBudWxscHRyKTsKKyAgICBXZWFrUHRyPEltYWdlQnVmZmVy
PiB3ZWFrSW1hZ2VCdWZmZXI7CisgICAgeworICAgICAgICBhdXRvIEltYWdlQnVmZmVyID0gY3Jl
YXRlTW9ja0ltYWdlQnVmZmVyKCk7CisgICAgICAgIHdlYWtJbWFnZUJ1ZmZlciA9IG1ha2VXZWFr
UHRyKEltYWdlQnVmZmVyLmdldCgpKTsKKyAgICAgICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5k
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIsIHsgMC5mLCAwLmYgfSk7CisgICAgfQorICAgIEVY
UEVDVF9ORShudWxscHRyLCB3ZWFrSW1hZ2VCdWZmZXIuZ2V0KCkpOworICAgIGltYWdlQnVmZmVy
LT5mbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgRVhQRUNUX0VRKG51bGxwdHIsIHdlYWtJbWFn
ZUJ1ZmZlci5nZXQoKSk7Cit9CisKKy8vIFRlc3RzIHRoYXQgYEltYWdlQnVmZmVyOjpmbHVzaERy
YXdpbmdDb250ZXh0KClgIGZsYXR0ZW5zIHRoZSBkaXNwbGF5IGxpc3Qgb2YgYWxsIHRoZSBzb3Vy
Y2UgaW1hZ2UgYnVmZmVycyBvZiBhIGltYWdlIGJ1ZmZlci4KKy8vIEF0IHRoZSB0aW1lIG9mIHdy
aXRpbmcsIHRoaXMgYmVoYXZpb3Igd2FzIGV4cGVjdGVkIGluIG9yZGVyIHRvIG5vdCBncm93IHRo
ZSBpbnRlcm1lZGlhdGUgaW1hZ2UgYnVmZmVyIHVuYm91bmRlZC4KK1RFU1RfUChEaXNwbGF5TGlz
dEltYWdlQnVmZmVyVGVzdHMsIEZsdXNoRmxhdHRlbnNTb3VyY2VzKQoreworICAgIGF1dG8gaW1h
Z2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHsgMTAwLCAxMDAgfSwgcmVuZGVyaW5nTW9k
ZSgpLCBTaG91bGRVc2VEaXNwbGF5TGlzdDo6WWVzLCByZW5kZXJpbmdQdXJwb3NlKCksIDEsIERl
c3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdSQTgsIG51bGxwdHIp
OworICAgIGF1dG8gaW50ZXJtZWRpYXRlSW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHsgMTAwLCAxMDAgfSwgcmVuZGVyaW5nTW9kZSgpLCBTaG91bGRVc2VEaXNwbGF5TGlzdDo6WWVz
LCByZW5kZXJpbmdQdXJwb3NlKCksIDEsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBQ
aXhlbEZvcm1hdDo6QkdSQTgsIG51bGxwdHIpOworICAgIFdlYWtQdHI8SW1hZ2VCdWZmZXI+IHdl
YWtJbWFnZUJ1ZmZlcjsKKyAgICB7CisgICAgICAgIGF1dG8gSW1hZ2VCdWZmZXIgPSBjcmVhdGVN
b2NrSW1hZ2VCdWZmZXIoKTsKKyAgICAgICAgd2Vha0ltYWdlQnVmZmVyID0gbWFrZVdlYWtQdHIo
SW1hZ2VCdWZmZXIuZ2V0KCkpOworICAgICAgICBpbnRlcm1lZGlhdGVJbWFnZUJ1ZmZlci0+Y29u
dGV4dCgpLmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciwgeyAwLmYsIDAuZiB9KTsKKyAgICB9
CisgICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIoKmludGVybWVkaWF0
ZUltYWdlQnVmZmVyLCB7IDAuZiwgMC5mIH0pOworICAgIEVYUEVDVF9ORShudWxscHRyLCB3ZWFr
SW1hZ2VCdWZmZXIuZ2V0KCkpOworICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0
KCk7CisgICAgRVhQRUNUX0VRKG51bGxwdHIsIHdlYWtJbWFnZUJ1ZmZlci5nZXQoKSk7CisKKyAg
ICBXZWFrUHRyPEltYWdlQnVmZmVyPiB3ZWFrT3RoZXJJbWFnZUJ1ZmZlcjsKKyAgICB7CisgICAg
ICAgIGF1dG8gb3RoZXJJbWFnZUJ1ZmZlciA9IGNyZWF0ZU1vY2tJbWFnZUJ1ZmZlcigpOworICAg
ICAgICB3ZWFrT3RoZXJJbWFnZUJ1ZmZlciA9IG1ha2VXZWFrUHRyKG90aGVySW1hZ2VCdWZmZXIu
Z2V0KCkpOworICAgICAgICBpbnRlcm1lZGlhdGVJbWFnZUJ1ZmZlci0+Y29udGV4dCgpLmRyYXdJ
bWFnZUJ1ZmZlcihvdGhlckltYWdlQnVmZmVyLCB7IDAuZiwgMC5mIH0pOworICAgIH0KKyAgICBF
WFBFQ1RfTkUobnVsbHB0ciwgd2Vha090aGVySW1hZ2VCdWZmZXIuZ2V0KCkpOworICAgIGltYWdl
QnVmZmVyLT5jb250ZXh0KCkuZHJhd0ltYWdlQnVmZmVyKCppbnRlcm1lZGlhdGVJbWFnZUJ1ZmZl
ciwgeyAwLmYsIDAuZiB9KTsKKyAgICBFWFBFQ1RfTkUobnVsbHB0ciwgd2Vha090aGVySW1hZ2VC
dWZmZXIuZ2V0KCkpOworICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0KCk7Cisg
ICAgRVhQRUNUX0VRKG51bGxwdHIsIHdlYWtPdGhlckltYWdlQnVmZmVyLmdldCgpKTsKK30KKwor
Ly8gVGVzdHMgdGhhdCB0aGVyZSBpcyBubyBvYnZpb3VzIG9wZXJhdGlvbiB0aGF0IHdvdWxkIHJl
bmRlciBgSW1hZ2VCdWZmZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQoKWAgcmVkdW5kYW50LgorVEVT
VF9QKERpc3BsYXlMaXN0SW1hZ2VCdWZmZXJUZXN0cywgRmx1c2hJc05lZWRlZCkKK3sKKyAgICBh
dXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh7IDEwMCwgMTAwIH0sIHJlbmRl
cmluZ01vZGUoKSwgU2hvdWxkVXNlRGlzcGxheUxpc3Q6OlllcywgcmVuZGVyaW5nUHVycG9zZSgp
LCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBu
dWxscHRyKTsKKyAgICBXZWFrUHRyPEltYWdlQnVmZmVyPiB3ZWFrSW1hZ2VCdWZmZXI7CisgICAg
eworICAgICAgICBhdXRvIEltYWdlQnVmZmVyID0gY3JlYXRlTW9ja0ltYWdlQnVmZmVyKCk7Cisg
ICAgICAgIHdlYWtJbWFnZUJ1ZmZlciA9IG1ha2VXZWFrUHRyKEltYWdlQnVmZmVyLmdldCgpKTsK
KyAgICAgICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZm
ZXIsIHsgMC5mLCAwLmYsIDEwMC5mLCAxMDAuZiB9KTsKKyAgICB9CisgICAgRVhQRUNUX05FKG51
bGxwdHIsIHdlYWtJbWFnZUJ1ZmZlci5nZXQoKSk7CisgICAgaW1hZ2VCdWZmZXItPmNvbnRleHQo
KS5jbGVhclJlY3QoeyAwLmYsIDAuZiwgMTAwMC5mLCAxMDAwLmYgfSk7CisgICAgRVhQRUNUX05F
KG51bGxwdHIsIHdlYWtJbWFnZUJ1ZmZlci5nZXQoKSk7CisgICAgaW1hZ2VCdWZmZXItPmZsdXNo
RHJhd2luZ0NvbnRleHQoKTsKKyAgICBFWFBFQ1RfRVEobnVsbHB0ciwgd2Vha0ltYWdlQnVmZmVy
LmdldCgpKTsKK30KKworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKERlZmF1bHREaXNwbGF5TGlz
dEltYWdlQnVmZmVyVGVzdHMsIERpc3BsYXlMaXN0SW1hZ2VCdWZmZXJUZXN0cywgdGVzdGluZzo6
Q29tYmluZSgKKyAgICB0ZXN0aW5nOjpWYWx1ZXMoUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQs
IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpLAorICAgIHRlc3Rpbmc6OlZhbHVlcyhSZW5k
ZXJpbmdQdXJwb3NlOjpVbnNwZWNpZmllZCwgUmVuZGVyaW5nUHVycG9zZTo6Q2FudmFzLCBSZW5k
ZXJpbmdQdXJwb3NlOjpET00sIFJlbmRlcmluZ1B1cnBvc2U6Ok1lZGlhUGFpbnRpbmcpKSk7CisK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBiMjRjOTEwZDU0N2M1MjQ1OTMyODBlNGYzZmRmNGQxYzAwYTQxZWJhLi42Mjkx
YjAzNGU2OTk0ZTI4YzcxY2E3NTI3OWViM2I3MWRkNGIzN2Q1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjEtMDYtMDkgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWJHTCBjb250ZXh0IGltYWdlIGJ1ZmZlciBhY2N1bXVsYXRlcyB0aGUgTmF0aXZl
SW1hZ2UgY29udGVudHMgd2hlbiBkcmF3biB0byBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY4MTMKKyAgICAg
ICAgPHJkYXI6Ly83NzQyMTk2Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgd291bGQgY3Jhc2ggdGhlIFdlYkNvbnRlbnQg
cHJvY2VzcworICAgICAgICBvbiBzb21lIGRldmljZXMuCisKKyAgICAgICAgKiB3ZWJnbC9kcmF3
LXdlYmdsLXRvLWNvbnRleHQyZC1tZW1vcnktdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0Lmh0bWw6IEFk
ZGVkLgorCiAyMDIxLTA2LTA4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnku
Y29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5
LXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvZHJhdy13ZWJnbC10by1jb250
ZXh0MmQtbWVtb3J5LXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiNzU5M2NlYzU3Y2Ex
OTRiMGUzN2Q2OTdhMDcyMDk3M2NhZTc5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRleHQyZC1tZW1vcnktdGVzdC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzNSBAQAorVGhpcyB0ZXN0IGNoZWNraW5nIHRoYXQgZHJhd2luZyBXZWJHTCBj
YW52YXMgdG8gQ29udGV4dDJEIGNhbnZhcyB3aXRoIGRyYXdJbWFnZSBkb2VzIG5vdCB1c2UgdW5i
b3VuZGVkIGFtb3VudCBvZiBtZW1vcnkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
UEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJ
bWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91
bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQs
IDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIs
IDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFT
UyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFn
ZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQg
YmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEy
OCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1
NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBk
cmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTog
U2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUg
WzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwg
MTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0K
K1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3
SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hv
dWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0
LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTky
LCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BB
U1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1h
Z2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvZHJhdy13
ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2Ry
YXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFmMmVk
MDUxNDkyOTc4OGJlZTgzMTdlNGM0YTRjMjJiZmNkMWVkYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0Lmh0bWwK
QEAgLTAsMCArMSwzOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBDYW52YXMgdG8gQ29udGV4dDJEIENhbnZhcyBNZW1vcnkgVGVzdDwvdGl0
bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzLy9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhczJkIiB3aWR0aD0i
NDAiIGhlaWdodD0iNDAiPjwvY2FudmFzPgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2Ny
aXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tpbmcgdGhhdCBkcmF3aW5nIFdlYkdMIGNhbnZhcyB0byBD
b250ZXh0MkQgY2FudmFzIHdpdGggZHJhd0ltYWdlIGRvZXMgbm90IHVzZSB1bmJvdW5kZWQgYW1v
dW50IG9mIG1lbW9yeS4iKTsKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBjYW52YXMy
ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMyZCIpOwordmFyIGN0eDJkID0gY2Fu
dmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKK3ZhciBjYW52YXNXZWJHTCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImNhbnZhcyIpOworY2FudmFzV2ViR0wud2lkdGggPSA0MDAwOworY2FudmFzV2Vi
R0wuaGVpZ2h0ID0gNDAwMDsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzV2Vi
R0wpOworaWYgKCFnbCkgeworICAgIHRlc3RGYWlsZWQoImNvbnRleHQgZG9lcyBub3QgZXhpc3Qi
KTsKK30gZWxzZSB7CisgICAgZ2wuY2xlYXJDb2xvcigwLjI1LCAwLjUsIDAuNzUsIDEpOworICAg
IGZvciAodmFyIGNvdW50ID0gMDsgY291bnQgPCAyNTsgY291bnQrKykgeworICAgICAgICBjdHgy
ZC5jbGVhclJlY3QoMCwgMCwgY2FudmFzMmQud2lkdGgsIGNhbnZhczJkLmhlaWdodCk7CisgICAg
ICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsK
KyAgICAgICAgY3R4MmQuZHJhd0ltYWdlKGNhbnZhc1dlYkdMLCAwLCAwLCBjYW52YXMyZC53aWR0
aCwgY2FudmFzMmQuaGVpZ2h0KTsKKyAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChjdHgyZCwg
MCwgMCwgY2FudmFzMmQud2lkdGgsIGNhbnZhczJkLmhlaWdodCwgWzY0LCAxMjgsIDE5MiwgMjU1
XSwgImRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0iLCAyKTsKKyAgICB9
CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIGRlYnVnKCIi
KTsKKyAgICBmaW5pc2hUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431087</attachid>
            <date>2021-06-10 09:08:55 -0700</date>
            <delta_ts>2021-06-10 11:25:01 -0700</delta_ts>
            <desc>Workaround</desc>
            <filename>bug-226813-20210610190853.patch</filename>
            <type>text/plain</type>
            <size>7046</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmZmY4NGQwNDc4MTMx
ZjVkYjUxMDVlM2E5NzFkYmMyODMzYmM2NC4uMTYwZDQ0OTg4ODM2NmUyNTkzMmMzMjA4ZGQ0YmRh
MjY0YjFiMmQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA2LTEwICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBpbWFnZSBidWZmZXIgYWNjdW11bGF0ZXMgdGhlIE5hdGl2ZUltYWdlIGNvbnRlbnRzIHdoZW4g
ZHJhd24gdG8gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2ODEzCisgICAgICAgIDxyZGFyOi8vNzc0MjE5NjY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
d29ya2Fyb3VuZCB0byBmbHVzaCBXZWJHTCBlbGVtZW50IGltYWdlIGJ1ZmZlciBiZWZvcmUKKyAg
ICAgICAgZXZlcnkgbmV3IGZyYW1lIGluIG9yZGVyIHRvIGNsZWFyIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3Mgc2lkZQorICAgICAgICBOYXRpdmVJbWFnZSBjYWNoZXMuCisKKyAgICAgICAgVGVzdDog
d2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QuaHRtbAorCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNU
b0NhbnZhcyk6CisKIDIwMjEtMDYtMDggIEZyw6lkw6lyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5j
b20+CiAKICAgICAgICAgQ3Jhc2ggaW4gSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6
ZG9BcHBseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA2ZDdjOWM4YjBkODM0YjliZTNkODQ1NGIyMjEz
YWUwZGExNGE2NjhiLi4zN2NmOWI4MDhjZWFiYjA3MDU5NTU1NDQ0OTZkM2E1MzUzMTk4ZDNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcApAQCAtMTIxOCw2ICsxMjE4LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQogICAgICAgICAg
ICAgYXV0byYgYmFzZSA9IGNhbnZhc0Jhc2UoKTsKICAgICAgICAgICAgIGJhc2UuY2xlYXJDb3Bp
ZWRJbWFnZSgpOwogICAgICAgICAgICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IGZhbHNlOworICAg
ICAgICAgICAgLy8gRklYTUU6IFJlbW90ZSBJbWFnZUJ1ZmZlcnMgZG8gbm90IGZsdXNoIHRoZSBi
dWZmZXJzIHRoYXQgYXJlIGRyYXduIHRvIGEgYnVmZmVyLgorICAgICAgICAgICAgLy8gQXZvaWQg
bGVha2luZyB0aGUgV2ViR0wgY29udGVudCBpbiB0aGUgY2FzZXMgd2hlcmUgYSBXZWJHTCBjYW52
YXMgZWxlbWVudCBpcyBkcmF3biB0byBhIENvbnRleHQyRAorICAgICAgICAgICAgLy8gY2FudmFz
IGVsZW1lbnQgcmVwZWF0ZWRseS4KKyAgICAgICAgICAgIGJhc2UuYnVmZmVyKCktPmZsdXNoRHJh
d2luZ0NvbnRleHQoKTsKICAgICAgICAgICAgIG1fY29udGV4dC0+cGFpbnRDb21wb3NpdGVkUmVz
dWx0c1RvQ2FudmFzKCpiYXNlLmJ1ZmZlcigpKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47
CkBAIC0xMjMyLDcgKzEyMzYsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpw
YWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygpCiAgICAgYmFzZS5jbGVhckNvcGllZEltYWdl
KCk7CiAKICAgICBtX21hcmtlZENhbnZhc0RpcnR5ID0gZmFsc2U7Ci0KKyAgICAvLyBGSVhNRTog
UmVtb3RlIEltYWdlQnVmZmVycyBkbyBub3QgZmx1c2ggdGhlIGJ1ZmZlcnMgdGhhdCBhcmUgZHJh
d24gdG8gYSBidWZmZXIuCisgICAgLy8gQXZvaWQgbGVha2luZyB0aGUgV2ViR0wgY29udGVudCBp
biB0aGUgY2FzZXMgd2hlcmUgYSBXZWJHTCBjYW52YXMgZWxlbWVudCBpcyBkcmF3biB0byBhIENv
bnRleHQyRAorICAgIC8vIGNhbnZhcyBlbGVtZW50IHJlcGVhdGVkbHkuCisgICAgYmFzZS5idWZm
ZXIoKS0+Zmx1c2hEcmF3aW5nQ29udGV4dCgpOwogICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJp
bmdSZXN1bHRzVG9DYW52YXMoKmJhc2UuYnVmZmVyKCkpOwogfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjI0YzkxMGQ1
NDdjNTI0NTkzMjgwZTRmM2ZkZjRkMWMwMGE0MWViYS4uNGVjNjkwZWY4MzI3MThjNzRiMDY1Yzcw
ZDFhZGIwOTg5YTFmZDBiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA2LTEwICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBpbWFnZSBidWZmZXIgYWNjdW11bGF0ZXMgdGhlIE5hdGl2ZUltYWdlIGNvbnRlbnRzIHdoZW4g
ZHJhd24gdG8gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2ODEzCisgICAgICAgIDxyZGFyOi8vNzc0MjE5NjY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
dGVzdCB0aGF0IHNob3VsZCBjcmFzaCBvbiBzb21lIGRldmljZXMgd2l0aCBsb3cKKyAgICAgICAg
bWVtb3J5IGxpbWl0cy4KKworICAgICAgICAqIHdlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJk
LW1lbW9yeS10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvZHJhdy13
ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QuaHRtbDogQWRkZWQuCisKIDIwMjEtMDYtMDgg
IEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dp
bkNhaXJvXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRleHQyZC1tZW1vcnktdGVzdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRleHQyZC1tZW1vcnktdGVzdC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I3NTkzY2VjNTdjYTE5NGIwZTM3ZDY5N2EwNzIwOTcz
Y2FlNzljOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wt
dG8tY29udGV4dDJkLW1lbW9yeS10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitU
aGlzIHRlc3QgY2hlY2tpbmcgdGhhdCBkcmF3aW5nIFdlYkdMIGNhbnZhcyB0byBDb250ZXh0MkQg
Y2FudmFzIHdpdGggZHJhd0ltYWdlIGRvZXMgbm90IHVzZSB1bmJvdW5kZWQgYW1vdW50IG9mIG1l
bW9yeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGRyYXdJbWFnZTogU2hv
dWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0
LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTky
LCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BB
U1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1h
Z2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxk
IGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAx
MjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAy
NTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1Mg
ZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6
IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJl
IFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgs
IDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVd
CitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJh
d0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNo
b3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2
NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5
MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQ
QVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0lt
YWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3Vs
ZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwg
MTI4LCAxOTIsIDI1NV0KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRleHQyZC1t
ZW1vcnktdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0
MmQtbWVtb3J5LXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWYyZWQwNTE0OTI5Nzg4YmVlODMxN2U0
YzRhNGMyMmJmY2QxZWRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvZHJh
dy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QuaHRtbApAQCAtMCwwICsxLDM5IEBACis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENhbnZh
cyB0byBDb250ZXh0MkQgQ2FudmFzIE1lbW9yeSBUZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
L2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy8vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzMmQiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCI+PC9j
YW52YXM+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBj
aGVja2luZyB0aGF0IGRyYXdpbmcgV2ViR0wgY2FudmFzIHRvIENvbnRleHQyRCBjYW52YXMgd2l0
aCBkcmF3SW1hZ2UgZG9lcyBub3QgdXNlIHVuYm91bmRlZCBhbW91bnQgb2YgbWVtb3J5LiIpOwor
dmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNhbnZhczJkIik7Cit2YXIgY3R4MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIy
ZCIpOwordmFyIGNhbnZhc1dlYkdMID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7
CitjYW52YXNXZWJHTC53aWR0aCA9IDQwMDA7CitjYW52YXNXZWJHTC5oZWlnaHQgPSA0MDAwOwor
dmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXNXZWJHTCk7CitpZiAoIWdsKSB7Cisg
ICAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworfSBlbHNlIHsKKyAgICBn
bC5jbGVhckNvbG9yKDAuMjUsIDAuNSwgMC43NSwgMSk7CisgICAgZm9yICh2YXIgY291bnQgPSAw
OyBjb3VudCA8IDI1OyBjb3VudCsrKSB7CisgICAgICAgIGN0eDJkLmNsZWFyUmVjdCgwLCAwLCBj
YW52YXMyZC53aWR0aCwgY2FudmFzMmQuaGVpZ2h0KTsKKyAgICAgICAgZ2wuY2xlYXIoZ2wuQ09M
T1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAgICAgICBjdHgyZC5kcmF3
SW1hZ2UoY2FudmFzV2ViR0wsIDAsIDAsIGNhbnZhczJkLndpZHRoLCBjYW52YXMyZC5oZWlnaHQp
OworICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGN0eDJkLCAwLCAwLCBjYW52YXMyZC53aWR0
aCwgY2FudmFzMmQuaGVpZ2h0LCBbNjQsIDEyOCwgMTkyLCAyNTVdLCAiZHJhd0ltYWdlOiBTaG91
bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XSIsIDIpOworICAgIH0KKyAgICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgZGVidWcoIiIpOworICAgIGZpbmlzaFRlc3Qo
KTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431096</attachid>
            <date>2021-06-10 11:25:07 -0700</date>
            <delta_ts>2021-06-10 11:32:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226813-20210610212506.patch</filename>
            <type>text/plain</type>
            <size>2516</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTM3ZjUyZWYxZDc0ZTBk
ZDhmNmQ1NDU1YTExYzdhNDRjOTM2OTk1MC4uZGM0NGY4MDcyMmRkNDI5OWRiMzMyY2U5ZWQwYWIw
MDg5ODY5NmRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA2LTEwICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBpbWFnZSBidWZmZXIgYWNjdW11bGF0ZXMgdGhlIE5hdGl2ZUltYWdlIGNvbnRlbnRzIHdoZW4g
ZHJhd24gdG8gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2ODEzCisgICAgICAgIDxyZGFyOi8vNzc0MjE5NjY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
d29ya2Fyb3VuZCB0byBmbHVzaCBXZWJHTCBlbGVtZW50IGltYWdlIGJ1ZmZlciBiZWZvcmUKKyAg
ICAgICAgZXZlcnkgbmV3IGZyYW1lIGluIG9yZGVyIHRvIGNsZWFyIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3Mgc2lkZQorICAgICAgICBOYXRpdmVJbWFnZSBjYWNoZXMuCisKKyAgICAgICAgVGVzdGVk
IHdpdGggYSBtYW51YWwgdGVzdGNhc2UgdGhhdCB3aWxsIGJlIGFkZGVkIHdoZW4gdGhlIHdvcmth
cm91bmQKKyAgICAgICAgaXMgcmVtb3ZlZC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMpOgorCiAyMDIxLTA2
LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNvbWUg
aW5lZmZpY2llbnQgdXNlcyBvZiBTaGFyZWRCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggMDI2
Y2ViYjJiMjc4YjM4NzUwMmUzMDI2OTQ4NDA4Njk0ZmJlYjc4MC4uODdiMTRjNDdkMzZkYmI3Zjcy
NDllNjg0NWE1NDUyNjFmZTEzMGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTEyMTgsNiArMTIx
OCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnBhaW50UmVuZGVyaW5nUmVz
dWx0c1RvQ2FudmFzKCkKICAgICAgICAgICAgIGF1dG8mIGJhc2UgPSBjYW52YXNCYXNlKCk7CiAg
ICAgICAgICAgICBiYXNlLmNsZWFyQ29waWVkSW1hZ2UoKTsKICAgICAgICAgICAgIG1fbWFya2Vk
Q2FudmFzRGlydHkgPSBmYWxzZTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBSZW1vdGUgSW1hZ2VC
dWZmZXJzIGRvIG5vdCBmbHVzaCB0aGUgYnVmZmVycyB0aGF0IGFyZSBkcmF3biB0byBhIGJ1ZmZl
ci4KKyAgICAgICAgICAgIC8vIEF2b2lkIGxlYWtpbmcgdGhlIFdlYkdMIGNvbnRlbnQgaW4gdGhl
IGNhc2VzIHdoZXJlIGEgV2ViR0wgY2FudmFzIGVsZW1lbnQgaXMgZHJhd24gdG8gYSBDb250ZXh0
MkQKKyAgICAgICAgICAgIC8vIGNhbnZhcyBlbGVtZW50IHJlcGVhdGVkbHkuCisgICAgICAgICAg
ICBiYXNlLmJ1ZmZlcigpLT5mbHVzaERyYXdpbmdDb250ZXh0KCk7CiAgICAgICAgICAgICBtX2Nv
bnRleHQtPnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcygqYmFzZS5idWZmZXIoKSk7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpAQCAtMTIzMiw3ICsxMjM2LDEwIEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQog
ICAgIGJhc2UuY2xlYXJDb3BpZWRJbWFnZSgpOwogCiAgICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9
IGZhbHNlOwotCisgICAgLy8gRklYTUU6IFJlbW90ZSBJbWFnZUJ1ZmZlcnMgZG8gbm90IGZsdXNo
IHRoZSBidWZmZXJzIHRoYXQgYXJlIGRyYXduIHRvIGEgYnVmZmVyLgorICAgIC8vIEF2b2lkIGxl
YWtpbmcgdGhlIFdlYkdMIGNvbnRlbnQgaW4gdGhlIGNhc2VzIHdoZXJlIGEgV2ViR0wgY2FudmFz
IGVsZW1lbnQgaXMgZHJhd24gdG8gYSBDb250ZXh0MkQKKyAgICAvLyBjYW52YXMgZWxlbWVudCBy
ZXBlYXRlZGx5LgorICAgIGJhc2UuYnVmZmVyKCktPmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKICAg
ICBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCpiYXNlLmJ1ZmZlcigp
KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431099</attachid>
            <date>2021-06-10 11:32:46 -0700</date>
            <delta_ts>2021-06-11 01:24:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226813-20210610213245.patch</filename>
            <type>text/plain</type>
            <size>7994</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTM3ZjUyZWYxZDc0ZTBk
ZDhmNmQ1NDU1YTExYzdhNDRjOTM2OTk1MC4uYWE1ZTk1YzlmNGFmODI5NzdiNTg5YzBlY2E4MTJl
M2ViZGRjZTIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA2LTEwICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBpbWFnZSBidWZmZXIgYWNjdW11bGF0ZXMgdGhlIE5hdGl2ZUltYWdlIGNvbnRlbnRzIHdoZW4g
ZHJhd24gdG8gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2ODEzCisgICAgICAgIDxyZGFyOi8vNzc0MjE5NjY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCBhIHdv
cmthcm91bmQgdG8gZmx1c2ggV2ViR0wgZWxlbWVudCBpbWFnZSBidWZmZXIgYmVmb3JlCisgICAg
ICAgIGV2ZXJ5IG5ldyBmcmFtZSBpbiBvcmRlciB0byBjbGVhciB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzIHNpZGUKKyAgICAgICAgTmF0aXZlSW1hZ2UgY2FjaGVzLgorCisgICAgICAgIFRlc3Q6IHdl
YmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0Lmh0bWwKKworICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9D
YW52YXMpOgorCiAyMDIxLTA2LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IHNvbWUgaW5lZmZpY2llbnQgdXNlcyBvZiBTaGFyZWRCdWZmZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHAKaW5kZXggMDI2Y2ViYjJiMjc4YjM4NzUwMmUzMDI2OTQ4NDA4Njk0ZmJlYjc4MC4u
ODdiMTRjNDdkMzZkYmI3ZjcyNDllNjg0NWE1NDUyNjFmZTEzMGYyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5j
cHAKQEAgLTEyMTgsNiArMTIxOCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkKICAgICAgICAgICAgIGF1dG8mIGJhc2Ug
PSBjYW52YXNCYXNlKCk7CiAgICAgICAgICAgICBiYXNlLmNsZWFyQ29waWVkSW1hZ2UoKTsKICAg
ICAgICAgICAgIG1fbWFya2VkQ2FudmFzRGlydHkgPSBmYWxzZTsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBSZW1vdGUgSW1hZ2VCdWZmZXJzIGRvIG5vdCBmbHVzaCB0aGUgYnVmZmVycyB0aGF0IGFy
ZSBkcmF3biB0byBhIGJ1ZmZlci4KKyAgICAgICAgICAgIC8vIEF2b2lkIGxlYWtpbmcgdGhlIFdl
YkdMIGNvbnRlbnQgaW4gdGhlIGNhc2VzIHdoZXJlIGEgV2ViR0wgY2FudmFzIGVsZW1lbnQgaXMg
ZHJhd24gdG8gYSBDb250ZXh0MkQKKyAgICAgICAgICAgIC8vIGNhbnZhcyBlbGVtZW50IHJlcGVh
dGVkbHkuCisgICAgICAgICAgICBiYXNlLmJ1ZmZlcigpLT5mbHVzaERyYXdpbmdDb250ZXh0KCk7
CiAgICAgICAgICAgICBtX2NvbnRleHQtPnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcygq
YmFzZS5idWZmZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpAQCAtMTIzMiw3ICsx
MjM2LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMoKQogICAgIGJhc2UuY2xlYXJDb3BpZWRJbWFnZSgpOwogCiAgICAgbV9t
YXJrZWRDYW52YXNEaXJ0eSA9IGZhbHNlOwotCisgICAgLy8gRklYTUU6IFJlbW90ZSBJbWFnZUJ1
ZmZlcnMgZG8gbm90IGZsdXNoIHRoZSBidWZmZXJzIHRoYXQgYXJlIGRyYXduIHRvIGEgYnVmZmVy
LgorICAgIC8vIEF2b2lkIGxlYWtpbmcgdGhlIFdlYkdMIGNvbnRlbnQgaW4gdGhlIGNhc2VzIHdo
ZXJlIGEgV2ViR0wgY2FudmFzIGVsZW1lbnQgaXMgZHJhd24gdG8gYSBDb250ZXh0MkQKKyAgICAv
LyBjYW52YXMgZWxlbWVudCByZXBlYXRlZGx5LgorICAgIGJhc2UuYnVmZmVyKCktPmZsdXNoRHJh
d2luZ0NvbnRleHQoKTsKICAgICBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2Fu
dmFzKCpiYXNlLmJ1ZmZlcigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI1YTUxNjAxZmM5ZGE1NDA2NzlkNTZm
MTViYjkxZGM0YzUxZWQ3ODMuLmNmMzAyNDJkMTA0NDI1NTY3Y2Y0NjhkMTVjZDk1Mzk5M2FhMzY4
NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNi0xMCAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkdMIGNvbnRleHQgaW1hZ2UgYnVmZmVy
IGFjY3VtdWxhdGVzIHRoZSBOYXRpdmVJbWFnZSBjb250ZW50cyB3aGVuIGRyYXduIHRvIFJlbW90
ZUltYWdlQnVmZmVyUHJveHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjgxMworICAgICAgICA8cmRhcjovLzc3NDIxOTY2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgc2hvdWxk
IGNyYXNoIG9uIHNvbWUgZGV2aWNlcyB3aXRoIGxvdworICAgICAgICBtZW1vcnkgbGltaXRzLgor
CisgICAgICAgICogd2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRleHQy
ZC1tZW1vcnktdGVzdC5odG1sOiBBZGRlZC4KKwogMjAyMS0wNi0xMCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGxpYndlYnJ0YyB0byBNOTIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBiNzE3ZjNkYmYwM2M3ZWNlY2QxNDVhMWIyMDNiMTM2NGQwMDZkZTVmLi43ODNmNjA4
ZGVjNDM5NWQ2MTBmYmMxMGNkY2U4NWNiNDg0ZTcwMjVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zCkBAIC05NSw2ICs5NSw5
IEBAIHdlYmtpdC5vcmcvYi8xODk2ODYgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL2J1ZmZlcnMv
b25lLWxhcmdlLXVuaWZvcm0tYnVmZmVyLmh0CiAjIHRvIGRyYXcgbG90cyBvZiBub3RoaW5nLgog
d2Via2l0Lm9yZy9iLzIwOTQxNiBmYXN0L2NhbnZhcy93ZWJnbC9vdXQtb2YtYm91bmRzLXNpbXVs
YXRlZC12ZXJ0ZXhBdHRyaWIwLWRyYXdBcnJheXMuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKKyMg
VGVzdCBpcyBzbG93Lgord2Via2l0Lm9yZy9iLzIyNjgxMyB3ZWJnbC9kcmF3LXdlYmdsLXRvLWNv
bnRleHQyZC1tZW1vcnktdGVzdC5odG1sIFsgU2tpcCBdCisKIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1saXN0cy9jb250ZW50LXByb3BlcnR5L21hcmtlci10ZXh0LW1h
dGNoZXMtZ2VvcmdpYW4uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWxpc3RzL2NvbnRlbnQtcHJvcGVydHkvbWFya2VyLXRl
eHQtbWF0Y2hlcy1sb3dlci1ncmVlay5odG1sIFsgUGFzcyBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtbGlzdHMvbGlzdC1hbmQtd3JpdGluZy1tb2RlLTAwMS5odG1s
IFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9kcmF3LXdlYmdsLXRv
LWNvbnRleHQyZC1tZW1vcnktdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9k
cmF3LXdlYmdsLXRvLWNvbnRleHQyZC1tZW1vcnktdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2I3NTkzY2VjNTdjYTE5NGIwZTM3ZDY5N2EwNzIwOTczY2FlNzljOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10
ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitUaGlzIHRlc3QgY2hlY2tpbmcgdGhh
dCBkcmF3aW5nIFdlYkdMIGNhbnZhcyB0byBDb250ZXh0MkQgY2FudmFzIHdpdGggZHJhd0ltYWdl
IGRvZXMgbm90IHVzZSB1bmJvdW5kZWQgYW1vdW50IG9mIG1lbW9yeS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIs
IDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFT
UyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFn
ZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQg
YmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEy
OCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1
NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBk
cmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTog
U2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUg
WzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwg
MTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0K
K1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3
SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hv
dWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0
LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTky
LCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BB
U1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1h
Z2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxk
IGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAx
MjgsIDE5MiwgMjU1XQorUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAy
NTVdCitQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KK1BBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6CisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRleHQyZC1tZW1vcnktdGVzdC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44MWYyZWQwNTE0OTI5Nzg4YmVlODMxN2U0YzRhNGMyMmJmY2QxZWRjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQt
bWVtb3J5LXRlc3QuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENhbnZhcyB0byBDb250ZXh0MkQgQ2FudmFz
IE1lbW9yeSBUZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvL2pzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy8vanMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0i
Y2FudmFzMmQiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCI+PC9jYW52YXM+Cis8c2NyaXB0PgorInVz
ZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja2luZyB0aGF0IGRyYXdpbmcg
V2ViR0wgY2FudmFzIHRvIENvbnRleHQyRCBjYW52YXMgd2l0aCBkcmF3SW1hZ2UgZG9lcyBub3Qg
dXNlIHVuYm91bmRlZCBhbW91bnQgb2YgbWVtb3J5LiIpOwordmFyIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwordmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczJkIik7
Cit2YXIgY3R4MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOwordmFyIGNhbnZhc1dlYkdM
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CitjYW52YXNXZWJHTC53aWR0aCA9
IDQwMDA7CitjYW52YXNXZWJHTC5oZWlnaHQgPSA0MDAwOwordmFyIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dChjYW52YXNXZWJHTCk7CitpZiAoIWdsKSB7CisgICAgdGVzdEZhaWxlZCgiY29udGV4
dCBkb2VzIG5vdCBleGlzdCIpOworfSBlbHNlIHsKKyAgICBnbC5jbGVhckNvbG9yKDAuMjUsIDAu
NSwgMC43NSwgMSk7CisgICAgZm9yICh2YXIgY291bnQgPSAwOyBjb3VudCA8IDI1OyBjb3VudCsr
KSB7CisgICAgICAgIGN0eDJkLmNsZWFyUmVjdCgwLCAwLCBjYW52YXMyZC53aWR0aCwgY2FudmFz
MmQuaGVpZ2h0KTsKKyAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRF
UFRIX0JVRkZFUl9CSVQpOworICAgICAgICBjdHgyZC5kcmF3SW1hZ2UoY2FudmFzV2ViR0wsIDAs
IDAsIGNhbnZhczJkLndpZHRoLCBjYW52YXMyZC5oZWlnaHQpOworICAgICAgICB3dHUuY2hlY2tD
YW52YXNSZWN0KGN0eDJkLCAwLCAwLCBjYW52YXMyZC53aWR0aCwgY2FudmFzMmQuaGVpZ2h0LCBb
NjQsIDEyOCwgMTkyLCAyNTVdLCAiZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5Miwg
MjU1XSIsIDIpOworICAgIH0KKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
Uik7CisgICAgZGVidWcoIiIpOworICAgIGZpbmlzaFRlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>