<?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>190638</bug_id>
          
          <creation_ts>2018-10-16 13:46:04 -0700</creation_ts>
          <short_desc>Safari is not able to adapt between H264 streams with EditList and without EditList</short_desc>
          <delta_ts>2018-10-18 19:53:09 -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>Media</component>
          <version>Safari 12</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="KongQun Yang">kqyang</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>aboya</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1469867</commentid>
    <comment_count>0</comment_count>
    <who name="KongQun Yang">kqyang</who>
    <bug_when>2018-10-16 13:46:04 -0700</bug_when>
    <thetext>To re-pro, 

1. Go to https://shaka-player-demo.appspot.com/demo/#asset=https://storage.googleapis.com/wvtest/shaka-packager/historical/v2.2/misc/ClearPackaged/clear_tears.mpd;lang=en-US;build=uncompiled
2. select Load and Begin playback.
3. Tears begins and after a few seconds into playback responds with: Shaka Error MEDIA.VIDEO_ERROR (3,,) with spinner on screen

The problem occurs when player was trying to adapt to a higher resolution.

It is common to see H264 streams with base profile and main profile in the same AdaptationSet. The H264 stream with base profile will not have EditList while it is common for the H264 stream with main profile to contain an EditList.


The same manifest works in other browsers. I don&apos;t see it being disallowed in the spec either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470145</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-17 10:20:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/45342208&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470245</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-17 12:06:56 -0700</bug_when>
    <thetext>Here&apos;s the logging from a debug build of WebKit:

SourceBufferPrivateAVFObjC::layerDidReceiveError(0x553ef7d00): layer(0x7f8d9f75cbb0), error(Error Domain=AVFoundationErrorDomain Code=-11800 &quot;The operation could not be completed&quot; UserInfo={AVErrorMediaSubTypeKey=(
    1635148593
), NSLocalizedDescription=The operation could not be completed, NSLocalizedFailureReason=An unknown error occurred (-8969), AVErrorMediaTypeKey=vide, AVErrorPresentationTimeStampKey=CMTime: {184832/15360 = 12.033}, NSUnderlyingError=0x7f8da0d28030 {Error Domain=NSOSStatusErrorDomain Code=-8969 &quot;codecBadDataErr&quot;}})

Looking for that timestamp in the enqueue log leads to:

SourceBufferPrivateAVFObjC::enqueueSample(0x553ef7d00) - sample({PTS({184320/15360 = 12.000000}), OPTS({184320/15360 = 12.000000}), DTS({184320/15360 = 12.000000}), duration({512/15360 = 0.033333}), flags(1), presentationSize(318.133026x142.000000)})
SourceBufferPrivateAVFObjC::enqueueSample(0x553ef7d00) - sample({PTS({185344/15360 = 12.066667}), OPTS({185344/15360 = 12.066667}), DTS({184320/15360 = 12.000000}), duration({512/15360 = 0.033333}), flags(1), presentationSize(1917.759644x856.000000)})
SourceBufferPrivateAVFObjC::enqueueSample(0x553ef7d00) - sample({PTS({184832/15360 = 12.033333}), OPTS({184832/15360 = 12.033333}), DTS({184832/15360 = 12.033333}), duration({512/15360 = 0.033333}), flags(0), presentationSize(318.133026x142.000000)})
SourceBufferPrivateAVFObjC::enqueueSample(0x553ef7d00) - sample({PTS({186368/15360 = 12.133333}), OPTS({186368/15360 = 12.133333}), DTS({184832/15360 = 12.033333}), duration({512/15360 = 0.033333}), flags(0), presentationSize(1917.759644x856.000000)})

So somehow we are leaving in the decoding queue two sets of samples with the same DTS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470256</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-17 12:18:14 -0700</bug_when>
    <thetext>I don&apos;t think this has anything to do with edit lists, per se. But rather, there&apos;s a bug either in the spec or in our implementation that&apos;s particular to B-frames. The removal algorithm mandates the UA remove samples who overlap in presentation time, but in this case, the samples do not overlap in PTS at all. Rather, they overlap in decode time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470264</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-17 12:26:23 -0700</bug_when>
    <thetext>Actually, those samples should not be removed, because that would result in a &quot;gap&quot; in presentation order from 184320/15360 -&gt; 185344/15360. One other solution would be to re-order the decodeQueue to enqueue samples out-of-DTS order, but that might cause problems in the decoder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470265</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-17 12:38:43 -0700</bug_when>
    <thetext>I think the best solution we can hope for is, when were are re-enqueuing samples after a removal, we simply fail to enqueue samples which indicate a size change, but are not sync-samples.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470582</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-18 10:24:18 -0700</bug_when>
    <thetext>Okay, I&apos;ve come around 180º from my previous opinion. I think that those frames whose decode times are after the replacement frame&apos;s decode times should be removed as well. I have a patch which implements and tests this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470583</commentid>
    <comment_count>7</comment_count>
      <attachid>352706</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-18 10:25:26 -0700</bug_when>
    <thetext>Created attachment 352706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470699</commentid>
    <comment_count>8</comment_count>
      <attachid>352706</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-18 14:53:26 -0700</bug_when>
    <thetext>Comment on attachment 352706
Patch

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

&gt; Source/WebCore/Modules/mediasource/SampleMap.cpp:316
&gt; +    // endKey is not inclusive, so use lower_bound to exclude samples which start exactly at endKey.

Nit: don&apos;t you mean &quot;... so use upper_bound to ...&quot;

&gt; LayoutTests/media/media-source/media-source-append-overlapping-dts.html:4
&gt; +    &lt;title&gt;mock-media-source&lt;/title&gt;

Nit: a more descriptive title would be nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470705</commentid>
    <comment_count>9</comment_count>
      <attachid>352706</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-18 15:07:13 -0700</bug_when>
    <thetext>Comment on attachment 352706
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasource/SampleMap.cpp:316
&gt;&gt; +    // endKey is not inclusive, so use lower_bound to exclude samples which start exactly at endKey.
&gt; 
&gt; Nit: don&apos;t you mean &quot;... so use upper_bound to ...&quot;

Nope, lower_bound.  STL iterators are always inclusive-start, exclusive-end, so using lower_bound ensures that anything exactly matching endKey is excluded from the range.

&gt;&gt; LayoutTests/media/media-source/media-source-append-overlapping-dts.html:4
&gt;&gt; +    &lt;title&gt;mock-media-source&lt;/title&gt;
&gt; 
&gt; Nit: a more descriptive title would be nice.

good point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470716</commentid>
    <comment_count>10</comment_count>
      <attachid>352741</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-18 15:33:40 -0700</bug_when>
    <thetext>Created attachment 352741
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470718</commentid>
    <comment_count>11</comment_count>
      <attachid>352741</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-18 15:48:37 -0700</bug_when>
    <thetext>Comment on attachment 352741
Patch for landing

Clearing flags on attachment: 352741

Committed r237271: &lt;https://trac.webkit.org/changeset/237271&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470719</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-18 15:48:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470772</commentid>
    <comment_count>13</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-10-18 19:53:09 -0700</bug_when>
    <thetext>(In reply to KongQun Yang from comment #0)
&gt; It is common to see H264 streams with base profile and main profile in the
&gt; same AdaptationSet. The H264 stream with base profile will not have EditList
&gt; while it is common for the H264 stream with main profile to contain an
&gt; EditList.

This comment scared me a bit, since edit list displace the timestamps of the movies and in general, you don&apos;t want adaption sets to be offsetted with each other.

Later I checked the files and it&apos;s fine in this case: the edit list in the main profile AdaptationSet comes just from the fact that the main profile (unlike the baseline profile) uses B-frames, and coding B-frames in MP4 causes offsetting of frames which has to be compensated with an edit list.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352706</attachid>
            <date>2018-10-18 10:25:26 -0700</date>
            <delta_ts>2018-10-18 15:33:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190638-20181018102525.patch</filename>
            <type>text/plain</type>
            <size>10991</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U2YzFlMjRkNGM4N2Ji
YTAxNmExNmM5ODc5MDk2NDE4YjMyZTJiYS4uNzQ5ZTdhZGYyZTBhZTlkNGMyMTcwMGQ0OGU5ZWQ1
NjIzNGIxYTM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTEwLTE4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBpcyBub3QgYWJs
ZSB0byBhZGFwdCBiZXR3ZWVuIEgyNjQgc3RyZWFtcyB3aXRoIEVkaXRMaXN0IGFuZCB3aXRob3V0
IEVkaXRMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTA2MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MzQyMjA4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLW92ZXJsYXBwaW5nLWR0cy5odG1sCisKKyAgICAgICAg
VGhlIE1TRSBmcmFtZSByZXBsYWNlbWVudCBhbGdvcml0aG0gZG9lcyBub3QgdGFrZSBkZWNvZGUg
dGltZXN0YW1wcyBpbnRvIGFjY291bnQ7IHRoaXMgY2FuCisgICAgICAgIGxlYWQgdG8gc2l0dWF0
aW9ucyB3aGVyZSB0aGUgcmVwbGFjZW1lbnQgYWxnb3JpdGhtIG1heSBsZWF2ZSBpbiBwbGFjZSBm
cmFtZXMgd2hlcmUgdGhlIAorICAgICAgICBwcmVzZW50YXRpb25UaW1lc3RhbXAgaXMgbGVzcyB0
aGFuIHRoZSByZXBsYWNlbWVudCBmcmFtZSwgYnV0IHdob3NlIGRlY29kZVRpbWVzdGFtcCBpcwor
ICAgICAgICBhZnRlciB0aGUgcmVwbGFjZW1lbnQgZnJhbWUuIFdoZW4gcmUtZW5xdWV1aW5nIHRo
ZXNlIGZyYW1lcywgdGhleSBtYXkgY2F1c2UgYSBkZWNvZGUgZXJyb3IKKyAgICAgICAgaWYgdGhl
eSBicmVhayB0aGUgZ3JvdXAtb2YtcGljdHVyZXMgc2VxdWVuY2Ugb2YgdGhlIHJlcGxhY2VkIHJh
bmdlLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGVjb2RlT3JkZXJTYW1wbGVNYXA6OmZpbmRTYW1wbGVzQmV0d2VlbkRl
Y29kZUtleXMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBs
ZSk6CisKIDIwMTgtMTAtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyJ3MgcGFyZW50IHNob3VsZCBiZSBh
IFdlYWtQdHIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NhbXBsZU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBs
ZU1hcC5jcHAKaW5kZXggYWZhZGU3YWYyZDdlNzZhMzQ2ZWNjZDY1ODJiODAxYjA0OWZiMDJlNC4u
MDdjZjVkN2MwOWFkM2IzYmRjMWVmNTQwY2IxYjBhZWQ3NjNmYzEzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmNwcApAQCAtMzA3LDQgKzMw
NywxOCBAQCBEZWNvZGVPcmRlclNhbXBsZU1hcDo6cmV2ZXJzZV9pdGVyYXRvcl9yYW5nZSBEZWNv
ZGVPcmRlclNhbXBsZU1hcDo6ZmluZERlcGVuZGVudAogICAgIHJldHVybiByZXZlcnNlX2l0ZXJh
dG9yX3JhbmdlKGN1cnJlbnREZWNvZGVJdGVyLCBuZXh0U3luY1NhbXBsZSk7CiB9CiAKK0RlY29k
ZU9yZGVyU2FtcGxlTWFwOjppdGVyYXRvcl9yYW5nZSBEZWNvZGVPcmRlclNhbXBsZU1hcDo6Zmlu
ZFNhbXBsZXNCZXR3ZWVuRGVjb2RlS2V5cyhjb25zdCBLZXlUeXBlJiBiZWdpbktleSwgY29uc3Qg
S2V5VHlwZSYgZW5kS2V5KQoreworICAgIGlmIChiZWdpbktleSA+IGVuZEtleSkKKyAgICAgICAg
cmV0dXJuIHsgZW5kKCksIGVuZCgpIH07CisKKyAgICAvLyBiZWdpbktleSBpcyBpbmNsdXNpdmUs
IHNvIHVzZSBsb3dlcl9ib3VuZCB0byBpbmNsdWRlIHNhbXBsZXMgd2ljaCBzdGFydCBleGFjdGx5
IGF0IGJlZ2luS2V5LgorICAgIC8vIGVuZEtleSBpcyBub3QgaW5jbHVzaXZlLCBzbyB1c2UgbG93
ZXJfYm91bmQgdG8gZXhjbHVkZSBzYW1wbGVzIHdoaWNoIHN0YXJ0IGV4YWN0bHkgYXQgZW5kS2V5
LgorICAgIGF1dG8gbG93ZXJfYm91bmQgPSBtX3NhbXBsZXMubG93ZXJfYm91bmQoYmVnaW5LZXkp
OworICAgIGF1dG8gdXBwZXJfYm91bmQgPSBtX3NhbXBsZXMubG93ZXJfYm91bmQoZW5kS2V5KTsK
KyAgICBpZiAobG93ZXJfYm91bmQgPT0gdXBwZXJfYm91bmQpCisgICAgICAgIHJldHVybiB7IGVu
ZCgpLCBlbmQoKSB9OworICAgIHJldHVybiB7IGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCB9Owor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nh
bXBsZU1hcC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAu
aAppbmRleCBmMjdmYWFkNTdiYjIzNzU5Mjg0ZmRhYWI5NWRkMTUzMTQ1Njg1M2U4Li5mNzgzMDgy
ZTZmMWEyNjQ4ZjhlMjAwMGY5YTAwNjhiODIwMjJhMWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmgKQEAgLTc5LDYgKzc5LDcgQEAgcHVibGlj
OgogICAgIHR5cGVkZWYgTWFwVHlwZTo6Y29uc3RfaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CiAg
ICAgdHlwZWRlZiBNYXBUeXBlOjpyZXZlcnNlX2l0ZXJhdG9yIHJldmVyc2VfaXRlcmF0b3I7CiAg
ICAgdHlwZWRlZiBNYXBUeXBlOjpjb25zdF9yZXZlcnNlX2l0ZXJhdG9yIGNvbnN0X3JldmVyc2Vf
aXRlcmF0b3I7CisgICAgdHlwZWRlZiBzdGQ6OnBhaXI8aXRlcmF0b3IsIGl0ZXJhdG9yPiBpdGVy
YXRvcl9yYW5nZTsKICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxyZXZlcnNlX2l0ZXJhdG9yLCByZXZl
cnNlX2l0ZXJhdG9yPiByZXZlcnNlX2l0ZXJhdG9yX3JhbmdlOwogICAgIHR5cGVkZWYgTWFwVHlw
ZTo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOwogCkBAIC05OCw2ICs5OSw3IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBpdGVyYXRvciBmaW5kU3luY1NhbXBsZUFmdGVyUHJlc2VudGF0aW9u
VGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIHRocmVzaG9sZCA9IE1lZGlh
VGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgaXRlcmF0
b3IgZmluZFN5bmNTYW1wbGVBZnRlckRlY29kZUl0ZXJhdG9yKGl0ZXJhdG9yKTsKICAgICBXRUJD
T1JFX0VYUE9SVCByZXZlcnNlX2l0ZXJhdG9yX3JhbmdlIGZpbmREZXBlbmRlbnRTYW1wbGVzKE1l
ZGlhU2FtcGxlKik7CisgICAgV0VCQ09SRV9FWFBPUlQgaXRlcmF0b3JfcmFuZ2UgZmluZFNhbXBs
ZXNCZXR3ZWVuRGVjb2RlS2V5cyhjb25zdCBLZXlUeXBlJiwgY29uc3QgS2V5VHlwZSYpOwogCiBw
cml2YXRlOgogICAgIE1hcFR5cGUgbV9zYW1wbGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDE4YTQ0MDU1NDdlN2Jl
ZjA4NmZjZWM5OTVhMzQ5ZmY4MjQ1NWRiYTYuLjRjYWM1MmM2YTBmMDk2OTViZTdlYTk1YTk0ODMy
ZjAwYjFiOGM0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTE2NDgsNiArMTY0OCwxNCBAQCB2b2lkIFNvdXJjZUJ1
ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKICAgICAgICAgICAgIGF1dG8gbmV4dFN5bmNJdGVyID0gdHJhY2tCdWZmZXIuc2FtcGxl
cy5kZWNvZGVPcmRlcigpLmZpbmRTeW5jU2FtcGxlQWZ0ZXJEZWNvZGVJdGVyYXRvcihsYXN0RGVj
b2RlSXRlcik7CiAgICAgICAgICAgICBkZXBlbmRlbnRTYW1wbGVzLmluc2VydChmaXJzdERlY29k
ZUl0ZXIsIG5leHRTeW5jSXRlcik7CiAKKyAgICAgICAgICAgIC8vIE5PVEU6IGluIHRoZSBjYXNl
IG9mIGItZnJhbWVzLCB0aGUgcHJldmlvdXMgc3RlcCBtYXkgbGVhdmUgaW4gcGxhY2Ugc2FtcGxl
cyB3aG9zZSBwcmVzZW50YXRpb24KKyAgICAgICAgICAgIC8vIHRpbWVzdGFtcCA8IHByZXNlbnRh
dGlvblRpbWUsIGJ1dCB3aG9zZSBkZWNvZGUgdGltZXN0YW1wID49IGRlY29kZVRpbWUuIFRoZXNl
IHdpbGwgZXZlbnR1YWxseSBjYXVzZQorICAgICAgICAgICAgLy8gYSBkZWNvZGUgZXJyb3IgaWYg
bGVmdCBpbiBwbGFjZSwgc28gcmVtb3ZlIHRoZXNlIHNhbXBsZXMgYXMgd2VsbC4KKyAgICAgICAg
ICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpLZXlUeXBlIGRlY29kZUtleShzYW1wbGUuZGVjb2Rl
VGltZSgpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpKTsKKyAgICAgICAgICAgIGF1dG8gc2Ft
cGxlc1dpdGhIaWdoZXJEZWNvZGVUaW1lcyA9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZGVjb2RlT3Jk
ZXIoKS5maW5kU2FtcGxlc0JldHdlZW5EZWNvZGVLZXlzKGRlY29kZUtleSwgZXJhc2VkU2FtcGxl
cy5kZWNvZGVPcmRlcigpLmJlZ2luKCktPmZpcnN0KTsKKyAgICAgICAgICAgIGlmIChzYW1wbGVz
V2l0aEhpZ2hlckRlY29kZVRpbWVzLmZpcnN0ICE9IHNhbXBsZXNXaXRoSGlnaGVyRGVjb2RlVGlt
ZXMuc2Vjb25kKQorICAgICAgICAgICAgICAgIGRlcGVuZGVudFNhbXBsZXMuaW5zZXJ0KHNhbXBs
ZXNXaXRoSGlnaGVyRGVjb2RlVGltZXMuZmlyc3QsIHNhbXBsZXNXaXRoSGlnaGVyRGVjb2RlVGlt
ZXMuc2Vjb25kKTsKKwogICAgICAgICAgICAgUGxhdGZvcm1UaW1lUmFuZ2VzIGVyYXNlZFJhbmdl
cyA9IHJlbW92ZVNhbXBsZXNGcm9tVHJhY2tCdWZmZXIoZGVwZW5kZW50U2FtcGxlcywgdHJhY2tC
dWZmZXIsIHRoaXMsICJzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSIpOwogCiAg
ICAgICAgICAgICAvLyBPbmx5IGZvcmNlIHRoZSBUcmFja0J1ZmZlciB0byByZS1lbnF1ZXVlIGlm
IHRoZSByZW1vdmVkIHJhbmdlcyBvdmVybGFwIHdpdGggZW5xdWV1ZWQgYW5kIHBvc3NpYmx5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggOGVjZjczMDZhODU4MTk4NmJkY2VkZTM1ZTQ1M2ViMWI5NTEwNzU4Yy4uNWJkMTA3ZTI2
ZTE0ODRjMzAyMGUyOWVhOWU4NTRlNGZiMDcwYWQ3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE4LTEwLTE4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFNh
ZmFyaSBpcyBub3QgYWJsZSB0byBhZGFwdCBiZXR3ZWVuIEgyNjQgc3RyZWFtcyB3aXRoIEVkaXRM
aXN0IGFuZCB3aXRob3V0IEVkaXRMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTA2MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MzQyMjA4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hcHBlbmQtb3ZlcmxhcHBpbmctZHRzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1hcHBlbmQtb3ZlcmxhcHBpbmctZHRzLmh0bWw6IEFkZGVkLgorCiAyMDE4LTEwLTEyICBEYXdl
aSBGZW50b24gIDxyZWFsZGF3ZWlAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb2phdmUgV2syXSBM
YXlvdXQgVGVzdCBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YWxpZGF0
aW9uLWF0dGFjaG1lbnQuaHRtbCBpcyBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hcHBlbmQtb3ZlcmxhcHBpbmctZHRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBw
ZW5kLW92ZXJsYXBwaW5nLWR0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc3MzE1NDA4ODE1
YmI2Y2ZiMTZjZGQxYjE2YTRhYjQ5ZGY4MDE1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLW92ZXJsYXBwaW5nLWR0
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGhpcyB0ZXN0cyB0aGF0IGFuIG92ZXJs
YXBwaW5nIGFwcGVuZCBvZiBzYW1wbGVzIHdpdGggcmVvcmRlcmVkIHByZXNlbnRhdGlvbiB0aW1l
c3RhbXBzIHdpbGwgY29ycmVjdGx5IHJlbW92ZSBwcmV2aW91c2x5IGFwcGVuZGVkIG5vbi1yZW9y
ZGVyZWQgc2FtcGxlcy4KKworUlVOKHZpZGVvLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc291
cmNlKSkKK0VWRU5UKHNvdXJjZW9wZW4pCitSVU4oc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNv
dXJjZUJ1ZmZlcigidmlkZW8vbW9jazsgY29kZWNzPW1vY2siKSkKK1JVTihzb3VyY2VCdWZmZXIu
YXBwZW5kQnVmZmVyKGluaXRTZWdtZW50KSkKK0VWRU5UKHVwZGF0ZWVuZCkKK1JVTihzb3VyY2VC
dWZmZXIuYXBwZW5kQnVmZmVyKHNhbXBsZXMpKQorRVZFTlQodXBkYXRlZW5kKQorUlVOKHNvdXJj
ZUJ1ZmZlci5hcHBlbmRCdWZmZXIoc2FtcGxlcykpCitFVkVOVCh1cGRhdGVlbmQpCitFWFBFQ1RF
RCAoYnVmZmVyZWRTYW1wbGVzLmxlbmd0aCA9PSAnOScpIE9LCit7UFRTKHswLzEwMDAgPSAwLjAw
MDAwMH0pLCBEVFMoezAvMTAwMCA9IDAuMDAwMDAwfSksIGR1cmF0aW9uKHsxMDAwLzEwMDAgPSAx
LjAwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezEwMDAvMTAwMCA9IDEu
MDAwMDAwfSksIERUUyh7MTAwMC8xMDAwID0gMS4wMDAwMDB9KSwgZHVyYXRpb24oezEwMDAvMTAw
MCA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7MjAwMC8xMDAw
ID0gMi4wMDAwMDB9KSwgRFRTKHsyMDAwLzEwMDAgPSAyLjAwMDAwMH0pLCBkdXJhdGlvbih7MTAw
MC8xMDAwID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHszMDAw
LzEwMDAgPSAzLjAwMDAwMH0pLCBEVFMoezMwMDAvMTAwMCA9IDMuMDAwMDAwfSksIGR1cmF0aW9u
KHsxMDAwLzEwMDAgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMo
ezQwMDAvMTAwMCA9IDQuMDAwMDAwfSksIERUUyh7NDAwMC8xMDAwID0gNC4wMDAwMDB9KSwgZHVy
YXRpb24oezEwMDAvMTAwMCA9IDEuMDAwMDAwfSksIGZsYWdzKDEpLCBnZW5lcmF0aW9uKDApfQor
e1BUUyh7NjAwMC8xMDAwID0gNi4wMDAwMDB9KSwgRFRTKHs0MDAwLzEwMDAgPSA0LjAwMDAwMH0p
LCBkdXJhdGlvbih7MTAwMC8xMDAwID0gMS4wMDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24o
MSl9Cit7UFRTKHs3MDAwLzEwMDAgPSA3LjAwMDAwMH0pLCBEVFMoezUwMDAvMTAwMCA9IDUuMDAw
MDAwfSksIGR1cmF0aW9uKHsxMDAwLzEwMDAgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJh
dGlvbigxKX0KK3tQVFMoezQwMDAvMTAwMCA9IDQuMDAwMDAwfSksIERUUyh7NjAwMC8xMDAwID0g
Ni4wMDAwMDB9KSwgZHVyYXRpb24oezEwMDAvMTAwMCA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBn
ZW5lcmF0aW9uKDEpfQore1BUUyh7NTAwMC8xMDAwID0gNS4wMDAwMDB9KSwgRFRTKHs3MDAwLzEw
MDAgPSA3LjAwMDAwMH0pLCBkdXJhdGlvbih7MTAwMC8xMDAwID0gMS4wMDAwMDB9KSwgZmxhZ3Mo
MCksIGdlbmVyYXRpb24oMSl9CitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1vdmVybGFwcGluZy1kdHMu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5k
LW92ZXJsYXBwaW5nLWR0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNDU0OWZjZWYyMDgwMzI1MjRhNzlh
YWNlNmI5NTMyYmY5M2Y4NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1vdmVybGFwcGluZy1kdHMuaHRtbApAQCAt
MCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
Pm1vY2stbWVkaWEtc291cmNlPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0ibW9jay1tZWRpYS1z
b3VyY2UuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHZhciBzb3VyY2U7CisgICAgdmFyIHNvdXJjZUJ1
ZmZlcjsKKyAgICB2YXIgaW5pdFNlZ21lbnQ7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgaW50ZXJuYWxzLmluaXRpYWxpemVNb2NrTWVkaWFTb3VyY2UoKTsKKworICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworCisgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKKworICAgICAgICBzb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2Uo
KTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNvdXJjZSkn
KTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2UsICdzb3VyY2VvcGVuJyk7CisKKyAgICAg
ICAgcnVuKCdzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tb2Nr
OyBjb2RlY3M9bW9jayIpJyk7CisgICAgICAgIGluaXRTZWdtZW50ID0gbWFrZUFJbml0KDgsIFtt
YWtlQVRyYWNrKDEsICdtb2NrJywgVFJBQ0tfS0lORC5WSURFTyldKTsKKyAgICAgICAgcnVuKCdz
b3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGluaXRTZWdtZW50KScpOworCisgICAgICAgIGF3YWl0
IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgc2FtcGxlcyA9
IGNvbmNhdGVuYXRlU2FtcGxlcyhbCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgwLCAwLCAxLCAx
LCBTQU1QTEVfRkxBRy5TWU5DLCAwKSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDEsIDEsIDEs
IDEsIFNBTVBMRV9GTEFHLk5PTkUsIDApLAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoMiwgMiwg
MSwgMSwgU0FNUExFX0ZMQUcuTk9ORSwgMCksCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgzLCAz
LCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FLCAwKSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDQs
IDQsIDEsIDEsIFNBTVBMRV9GTEFHLlNZTkMsIDApLAorICAgICAgICAgICAgbWFrZUFTYW1wbGUo
NSwgNSwgMSwgMSwgU0FNUExFX0ZMQUcuTk9ORSwgMCksCisgICAgICAgICAgICBtYWtlQVNhbXBs
ZSg2LCA2LCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FLCAwKSwKKyAgICAgICAgICAgIG1ha2VBU2Ft
cGxlKDcsIDcsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUsIDApLAorICAgICAgICBdKTsKKyAgICAg
ICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKHNhbXBsZXMpJyk7CisgICAgICAgIGF3
YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgc2FtcGxl
cyA9IGNvbmNhdGVuYXRlU2FtcGxlcyhbCisgICAgICAgICAgICBtYWtlQVNhbXBsZSg2LCA0LCAx
LCAxLCBTQU1QTEVfRkxBRy5TWU5DLCAxKSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDcsIDUs
IDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUsIDEpLAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoNCwg
NiwgMSwgMSwgU0FNUExFX0ZMQUcuTk9ORSwgMSksCisgICAgICAgICAgICBtYWtlQVNhbXBsZSg1
LCA3LCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FLCAxKSwKKyAgICAgICAgXSk7CisgICAgICAgIHJ1
bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihzYW1wbGVzKScpOworICAgICAgICBhd2FpdCB3
YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcpOworCisgICAgICAgIGJ1ZmZlcmVkU2Ft
cGxlcyA9IGludGVybmFscy5idWZmZXJlZFNhbXBsZXNGb3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwg
MSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgiYnVmZmVyZWRTYW1wbGVzLmxlbmd0aCIsIDkpOwor
ICAgICAgICBidWZmZXJlZFNhbXBsZXMuZm9yRWFjaChjb25zb2xlV3JpdGUpOworICAgICAgICBl
bmRUZXN0KCk7CisKKyAgICB9LCB7b25jZTogdHJ1ZX0pOworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisgICAgPGRpdj5UaGlzIHRlc3RzIHRoYXQgYW4gb3ZlcmxhcHBpbmcgYXBwZW5k
IG9mIHNhbXBsZXMgd2l0aCByZW9yZGVyZWQgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMgd2lsbCBj
b3JyZWN0bHkgcmVtb3ZlIHByZXZpb3VzbHkgYXBwZW5kZWQgbm9uLXJlb3JkZXJlZCBzYW1wbGVz
LjwvZGl2PgorICAgIDx2aWRlbz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352741</attachid>
            <date>2018-10-18 15:33:40 -0700</date>
            <delta_ts>2018-10-18 15:48:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-190638-20181018153339.patch</filename>
            <type>text/plain</type>
            <size>10951</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzYwMzk4YmEwY2JlZGQz
YWZmMGIxOTcwNjVlMDc2MjEwZTFkNWQwNS4uYWE5MTk3MGY2M2M4Mjc3MzQ5MzVmOGJlYzVlZDhm
ZDcxYjNmZGJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTEwLTE4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBpcyBub3QgYWJs
ZSB0byBhZGFwdCBiZXR3ZWVuIEgyNjQgc3RyZWFtcyB3aXRoIEVkaXRMaXN0IGFuZCB3aXRob3V0
IEVkaXRMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTA2MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MzQyMjA4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBUZXN0OiBtZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLWFwcGVuZC1vdmVybGFwcGluZy1kdHMuaHRtbAorCisgICAgICAgIFRo
ZSBNU0UgZnJhbWUgcmVwbGFjZW1lbnQgYWxnb3JpdGhtIGRvZXMgbm90IHRha2UgZGVjb2RlIHRp
bWVzdGFtcHMgaW50byBhY2NvdW50OyB0aGlzIGNhbgorICAgICAgICBsZWFkIHRvIHNpdHVhdGlv
bnMgd2hlcmUgdGhlIHJlcGxhY2VtZW50IGFsZ29yaXRobSBtYXkgbGVhdmUgaW4gcGxhY2UgZnJh
bWVzIHdoZXJlIHRoZSAKKyAgICAgICAgcHJlc2VudGF0aW9uVGltZXN0YW1wIGlzIGxlc3MgdGhh
biB0aGUgcmVwbGFjZW1lbnQgZnJhbWUsIGJ1dCB3aG9zZSBkZWNvZGVUaW1lc3RhbXAgaXMKKyAg
ICAgICAgYWZ0ZXIgdGhlIHJlcGxhY2VtZW50IGZyYW1lLiBXaGVuIHJlLWVucXVldWluZyB0aGVz
ZSBmcmFtZXMsIHRoZXkgbWF5IGNhdXNlIGEgZGVjb2RlIGVycm9yCisgICAgICAgIGlmIHRoZXkg
YnJlYWsgdGhlIGdyb3VwLW9mLXBpY3R1cmVzIHNlcXVlbmNlIG9mIHRoZSByZXBsYWNlZCByYW5n
ZS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlY29kZU9yZGVyU2FtcGxlTWFwOjpmaW5kU2FtcGxlc0JldHdlZW5EZWNv
ZGVLZXlzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUp
OgorCiAyMDE4LTEwLTAxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBNZWRpYUtleUVuY3J5cHRpb25TY2hlbWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmNwcAppbmRleCBhZmFkZTdh
ZjJkN2U3NmEzNDZlY2NkNjU4MmI4MDFiMDQ5ZmIwMmU0Li4wN2NmNWQ3YzA5YWQzYjNiZGMxZWY1
NDBjYjFiMGFlZDc2M2ZjMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NhbXBsZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9TYW1wbGVNYXAuY3BwCkBAIC0zMDcsNCArMzA3LDE4IEBAIERlY29kZU9yZGVyU2Ft
cGxlTWFwOjpyZXZlcnNlX2l0ZXJhdG9yX3JhbmdlIERlY29kZU9yZGVyU2FtcGxlTWFwOjpmaW5k
RGVwZW5kZW50CiAgICAgcmV0dXJuIHJldmVyc2VfaXRlcmF0b3JfcmFuZ2UoY3VycmVudERlY29k
ZUl0ZXIsIG5leHRTeW5jU2FtcGxlKTsKIH0KIAorRGVjb2RlT3JkZXJTYW1wbGVNYXA6Oml0ZXJh
dG9yX3JhbmdlIERlY29kZU9yZGVyU2FtcGxlTWFwOjpmaW5kU2FtcGxlc0JldHdlZW5EZWNvZGVL
ZXlzKGNvbnN0IEtleVR5cGUmIGJlZ2luS2V5LCBjb25zdCBLZXlUeXBlJiBlbmRLZXkpCit7Cisg
ICAgaWYgKGJlZ2luS2V5ID4gZW5kS2V5KQorICAgICAgICByZXR1cm4geyBlbmQoKSwgZW5kKCkg
fTsKKworICAgIC8vIGJlZ2luS2V5IGlzIGluY2x1c2l2ZSwgc28gdXNlIGxvd2VyX2JvdW5kIHRv
IGluY2x1ZGUgc2FtcGxlcyB3aWNoIHN0YXJ0IGV4YWN0bHkgYXQgYmVnaW5LZXkuCisgICAgLy8g
ZW5kS2V5IGlzIG5vdCBpbmNsdXNpdmUsIHNvIHVzZSBsb3dlcl9ib3VuZCB0byBleGNsdWRlIHNh
bXBsZXMgd2hpY2ggc3RhcnQgZXhhY3RseSBhdCBlbmRLZXkuCisgICAgYXV0byBsb3dlcl9ib3Vu
ZCA9IG1fc2FtcGxlcy5sb3dlcl9ib3VuZChiZWdpbktleSk7CisgICAgYXV0byB1cHBlcl9ib3Vu
ZCA9IG1fc2FtcGxlcy5sb3dlcl9ib3VuZChlbmRLZXkpOworICAgIGlmIChsb3dlcl9ib3VuZCA9
PSB1cHBlcl9ib3VuZCkKKyAgICAgICAgcmV0dXJuIHsgZW5kKCksIGVuZCgpIH07CisgICAgcmV0
dXJuIHsgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5kIH07Cit9CisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oCmluZGV4IGYyN2ZhYWQ1N2JiMjM3
NTkyODRmZGFhYjk1ZGQxNTMxNDU2ODUzZTguLmY3ODMwODJlNmYxYTI2NDhmOGUyMDAwZjlhMDA2
OGI4MjAyMmExYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU2FtcGxlTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
YW1wbGVNYXAuaApAQCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBNYXBUeXBl
Ojpjb25zdF9pdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKICAgICB0eXBlZGVmIE1hcFR5cGU6OnJl
dmVyc2VfaXRlcmF0b3IgcmV2ZXJzZV9pdGVyYXRvcjsKICAgICB0eXBlZGVmIE1hcFR5cGU6OmNv
bnN0X3JldmVyc2VfaXRlcmF0b3IgY29uc3RfcmV2ZXJzZV9pdGVyYXRvcjsKKyAgICB0eXBlZGVm
IHN0ZDo6cGFpcjxpdGVyYXRvciwgaXRlcmF0b3I+IGl0ZXJhdG9yX3JhbmdlOwogICAgIHR5cGVk
ZWYgc3RkOjpwYWlyPHJldmVyc2VfaXRlcmF0b3IsIHJldmVyc2VfaXRlcmF0b3I+IHJldmVyc2Vf
aXRlcmF0b3JfcmFuZ2U7CiAgICAgdHlwZWRlZiBNYXBUeXBlOjp2YWx1ZV90eXBlIHZhbHVlX3R5
cGU7CiAKQEAgLTk4LDYgKzk5LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGl0ZXJh
dG9yIGZpbmRTeW5jU2FtcGxlQWZ0ZXJQcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGltZSYs
IGNvbnN0IE1lZGlhVGltZSYgdGhyZXNob2xkID0gTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRl
VGltZSgpKTsKICAgICBXRUJDT1JFX0VYUE9SVCBpdGVyYXRvciBmaW5kU3luY1NhbXBsZUFmdGVy
RGVjb2RlSXRlcmF0b3IoaXRlcmF0b3IpOwogICAgIFdFQkNPUkVfRVhQT1JUIHJldmVyc2VfaXRl
cmF0b3JfcmFuZ2UgZmluZERlcGVuZGVudFNhbXBsZXMoTWVkaWFTYW1wbGUqKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBpdGVyYXRvcl9yYW5nZSBmaW5kU2FtcGxlc0JldHdlZW5EZWNvZGVLZXlzKGNv
bnN0IEtleVR5cGUmLCBjb25zdCBLZXlUeXBlJik7CiAKIHByaXZhdGU6CiAgICAgTWFwVHlwZSBt
X3NhbXBsZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5jcHAKaW5kZXggMThhNDQwNTU0N2U3YmVmMDg2ZmNlYzk5NWEzNDlmZjgyNDU1
ZGJhNi4uNGNhYzUyYzZhMGYwOTY5NWJlN2VhOTVhOTQ4MzJmMDBiMWI4YzRlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApA
QCAtMTY0OCw2ICsxNjQ4LDE0IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICAgICAgYXV0
byBuZXh0U3luY0l0ZXIgPSB0cmFja0J1ZmZlci5zYW1wbGVzLmRlY29kZU9yZGVyKCkuZmluZFN5
bmNTYW1wbGVBZnRlckRlY29kZUl0ZXJhdG9yKGxhc3REZWNvZGVJdGVyKTsKICAgICAgICAgICAg
IGRlcGVuZGVudFNhbXBsZXMuaW5zZXJ0KGZpcnN0RGVjb2RlSXRlciwgbmV4dFN5bmNJdGVyKTsK
IAorICAgICAgICAgICAgLy8gTk9URTogaW4gdGhlIGNhc2Ugb2YgYi1mcmFtZXMsIHRoZSBwcmV2
aW91cyBzdGVwIG1heSBsZWF2ZSBpbiBwbGFjZSBzYW1wbGVzIHdob3NlIHByZXNlbnRhdGlvbgor
ICAgICAgICAgICAgLy8gdGltZXN0YW1wIDwgcHJlc2VudGF0aW9uVGltZSwgYnV0IHdob3NlIGRl
Y29kZSB0aW1lc3RhbXAgPj0gZGVjb2RlVGltZS4gVGhlc2Ugd2lsbCBldmVudHVhbGx5IGNhdXNl
CisgICAgICAgICAgICAvLyBhIGRlY29kZSBlcnJvciBpZiBsZWZ0IGluIHBsYWNlLCBzbyByZW1v
dmUgdGhlc2Ugc2FtcGxlcyBhcyB3ZWxsLgorICAgICAgICAgICAgRGVjb2RlT3JkZXJTYW1wbGVN
YXA6OktleVR5cGUgZGVjb2RlS2V5KHNhbXBsZS5kZWNvZGVUaW1lKCksIHNhbXBsZS5wcmVzZW50
YXRpb25UaW1lKCkpOworICAgICAgICAgICAgYXV0byBzYW1wbGVzV2l0aEhpZ2hlckRlY29kZVRp
bWVzID0gdHJhY2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVPcmRlcigpLmZpbmRTYW1wbGVzQmV0d2Vl
bkRlY29kZUtleXMoZGVjb2RlS2V5LCBlcmFzZWRTYW1wbGVzLmRlY29kZU9yZGVyKCkuYmVnaW4o
KS0+Zmlyc3QpOworICAgICAgICAgICAgaWYgKHNhbXBsZXNXaXRoSGlnaGVyRGVjb2RlVGltZXMu
Zmlyc3QgIT0gc2FtcGxlc1dpdGhIaWdoZXJEZWNvZGVUaW1lcy5zZWNvbmQpCisgICAgICAgICAg
ICAgICAgZGVwZW5kZW50U2FtcGxlcy5pbnNlcnQoc2FtcGxlc1dpdGhIaWdoZXJEZWNvZGVUaW1l
cy5maXJzdCwgc2FtcGxlc1dpdGhIaWdoZXJEZWNvZGVUaW1lcy5zZWNvbmQpOworCiAgICAgICAg
ICAgICBQbGF0Zm9ybVRpbWVSYW5nZXMgZXJhc2VkUmFuZ2VzID0gcmVtb3ZlU2FtcGxlc0Zyb21U
cmFja0J1ZmZlcihkZXBlbmRlbnRTYW1wbGVzLCB0cmFja0J1ZmZlciwgdGhpcywgInNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlIik7CiAKICAgICAgICAgICAgIC8vIE9ubHkgZm9y
Y2UgdGhlIFRyYWNrQnVmZmVyIHRvIHJlLWVucXVldWUgaWYgdGhlIHJlbW92ZWQgcmFuZ2VzIG92
ZXJsYXAgd2l0aCBlbnF1ZXVlZCBhbmQgcG9zc2libHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MTUzYjg5ZDRjMTMyODhi
YWIwZjI5NDdlMzQwOWRkNmNhMDkzNWIwLi45MzQ5YzZlMzE4MjVjYjM1YzljNTcxZDk3ZjcwNzlh
NzRhYWVjMzY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMTAtMTggIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgU2FmYXJpIGlzIG5vdCBhYmxlIHRvIGFk
YXB0IGJldHdlZW4gSDI2NCBzdHJlYW1zIHdpdGggRWRpdExpc3QgYW5kIHdpdGhvdXQgRWRpdExp
c3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDYz
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUzNDIyMDg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1hcHBlbmQtb3ZlcmxhcHBpbmctZHRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hcHBlbmQtb3ZlcmxhcHBpbmctZHRz
Lmh0bWw6IEFkZGVkLgorCiAyMDE4LTEwLTE4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIEVuYWJsZSBXS1ByZWZlcmVuY2VzLl9sb3dQb3dlclZpZGVvQXVkaW9C
dWZmZXJTaXplRW5hYmxlZCBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1vdmVybGFwcGluZy1kdHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hcHBl
bmQtb3ZlcmxhcHBpbmctZHRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzczMTU0MDg4MTVi
YjZjZmIxNmNkZDFiMTZhNGFiNDlkZjgwMTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hcHBlbmQtb3ZlcmxhcHBpbmctZHRz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUaGlzIHRlc3RzIHRoYXQgYW4gb3Zlcmxh
cHBpbmcgYXBwZW5kIG9mIHNhbXBsZXMgd2l0aCByZW9yZGVyZWQgcHJlc2VudGF0aW9uIHRpbWVz
dGFtcHMgd2lsbCBjb3JyZWN0bHkgcmVtb3ZlIHByZXZpb3VzbHkgYXBwZW5kZWQgbm9uLXJlb3Jk
ZXJlZCBzYW1wbGVzLgorCitSVU4odmlkZW8uc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3Vy
Y2UpKQorRVZFTlQoc291cmNlb3BlbikKK1JVTihzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291
cmNlQnVmZmVyKCJ2aWRlby9tb2NrOyBjb2RlY3M9bW9jayIpKQorUlVOKHNvdXJjZUJ1ZmZlci5h
cHBlbmRCdWZmZXIoaW5pdFNlZ21lbnQpKQorRVZFTlQodXBkYXRlZW5kKQorUlVOKHNvdXJjZUJ1
ZmZlci5hcHBlbmRCdWZmZXIoc2FtcGxlcykpCitFVkVOVCh1cGRhdGVlbmQpCitSVU4oc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihzYW1wbGVzKSkKK0VWRU5UKHVwZGF0ZWVuZCkKK0VYUEVDVEVE
IChidWZmZXJlZFNhbXBsZXMubGVuZ3RoID09ICc5JykgT0sKK3tQVFMoezAvMTAwMCA9IDAuMDAw
MDAwfSksIERUUyh7MC8xMDAwID0gMC4wMDAwMDB9KSwgZHVyYXRpb24oezEwMDAvMTAwMCA9IDEu
MDAwMDAwfSksIGZsYWdzKDEpLCBnZW5lcmF0aW9uKDApfQore1BUUyh7MTAwMC8xMDAwID0gMS4w
MDAwMDB9KSwgRFRTKHsxMDAwLzEwMDAgPSAxLjAwMDAwMH0pLCBkdXJhdGlvbih7MTAwMC8xMDAw
ID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsyMDAwLzEwMDAg
PSAyLjAwMDAwMH0pLCBEVFMoezIwMDAvMTAwMCA9IDIuMDAwMDAwfSksIGR1cmF0aW9uKHsxMDAw
LzEwMDAgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezMwMDAv
MTAwMCA9IDMuMDAwMDAwfSksIERUUyh7MzAwMC8xMDAwID0gMy4wMDAwMDB9KSwgZHVyYXRpb24o
ezEwMDAvMTAwMCA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7
NDAwMC8xMDAwID0gNC4wMDAwMDB9KSwgRFRTKHs0MDAwLzEwMDAgPSA0LjAwMDAwMH0pLCBkdXJh
dGlvbih7MTAwMC8xMDAwID0gMS4wMDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7
UFRTKHs2MDAwLzEwMDAgPSA2LjAwMDAwMH0pLCBEVFMoezQwMDAvMTAwMCA9IDQuMDAwMDAwfSks
IGR1cmF0aW9uKHsxMDAwLzEwMDAgPSAxLjAwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigx
KX0KK3tQVFMoezcwMDAvMTAwMCA9IDcuMDAwMDAwfSksIERUUyh7NTAwMC8xMDAwID0gNS4wMDAw
MDB9KSwgZHVyYXRpb24oezEwMDAvMTAwMCA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0
aW9uKDEpfQore1BUUyh7NDAwMC8xMDAwID0gNC4wMDAwMDB9KSwgRFRTKHs2MDAwLzEwMDAgPSA2
LjAwMDAwMH0pLCBkdXJhdGlvbih7MTAwMC8xMDAwID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdl
bmVyYXRpb24oMSl9Cit7UFRTKHs1MDAwLzEwMDAgPSA1LjAwMDAwMH0pLCBEVFMoezcwMDAvMTAw
MCA9IDcuMDAwMDAwfSksIGR1cmF0aW9uKHsxMDAwLzEwMDAgPSAxLjAwMDAwMH0pLCBmbGFncygw
KSwgZ2VuZXJhdGlvbigxKX0KK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLW92ZXJsYXBwaW5nLWR0cy5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hcHBlbmQt
b3ZlcmxhcHBpbmctZHRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JlMmJiZWM0YWE4MGJlOGU5OTk3OGFi
YzhjZWJjZmRiMmY4YmI0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLW92ZXJsYXBwaW5nLWR0cy5odG1sCkBAIC0w
LDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+
bWVkaWEtc291cmNlLWFwcGVuZC1vdmVybGFwcGluZy1kdHM8L3RpdGxlPgorICAgIDxzY3JpcHQg
c3JjPSJtb2NrLW1lZGlhLXNvdXJjZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
L3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIHNvdXJjZTsK
KyAgICB2YXIgc291cmNlQnVmZmVyOworICAgIHZhciBpbml0U2VnbWVudDsKKworICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuaW5pdGlhbGl6ZU1vY2tNZWRpYVNv
dXJjZSgpOworCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVu
dCA9PiB7CisKKyAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworCisgICAgICAgIHNvdXJjZSA9
IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9IFVSTC5jcmVhdGVP
YmplY3RVUkwoc291cmNlKScpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZSwgJ3NvdXJj
ZW9wZW4nKTsKKworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VC
dWZmZXIoInZpZGVvL21vY2s7IGNvZGVjcz1tb2NrIiknKTsKKyAgICAgICAgaW5pdFNlZ21lbnQg
PSBtYWtlQUluaXQoOCwgW21ha2VBVHJhY2soMSwgJ21vY2snLCBUUkFDS19LSU5ELlZJREVPKV0p
OworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaW5pdFNlZ21lbnQpJyk7
CisKKyAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGVlbmQnKTsKKwor
ICAgICAgICBzYW1wbGVzID0gY29uY2F0ZW5hdGVTYW1wbGVzKFsKKyAgICAgICAgICAgIG1ha2VB
U2FtcGxlKDAsIDAsIDEsIDEsIFNBTVBMRV9GTEFHLlNZTkMsIDApLAorICAgICAgICAgICAgbWFr
ZUFTYW1wbGUoMSwgMSwgMSwgMSwgU0FNUExFX0ZMQUcuTk9ORSwgMCksCisgICAgICAgICAgICBt
YWtlQVNhbXBsZSgyLCAyLCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FLCAwKSwKKyAgICAgICAgICAg
IG1ha2VBU2FtcGxlKDMsIDMsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUsIDApLAorICAgICAgICAg
ICAgbWFrZUFTYW1wbGUoNCwgNCwgMSwgMSwgU0FNUExFX0ZMQUcuU1lOQywgMCksCisgICAgICAg
ICAgICBtYWtlQVNhbXBsZSg1LCA1LCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FLCAwKSwKKyAgICAg
ICAgICAgIG1ha2VBU2FtcGxlKDYsIDYsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUsIDApLAorICAg
ICAgICAgICAgbWFrZUFTYW1wbGUoNywgNywgMSwgMSwgU0FNUExFX0ZMQUcuTk9ORSwgMCksCisg
ICAgICAgIF0pOworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoc2FtcGxl
cyknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGVlbmQnKTsK
KworICAgICAgICBzYW1wbGVzID0gY29uY2F0ZW5hdGVTYW1wbGVzKFsKKyAgICAgICAgICAgIG1h
a2VBU2FtcGxlKDYsIDQsIDEsIDEsIFNBTVBMRV9GTEFHLlNZTkMsIDEpLAorICAgICAgICAgICAg
bWFrZUFTYW1wbGUoNywgNSwgMSwgMSwgU0FNUExFX0ZMQUcuTk9ORSwgMSksCisgICAgICAgICAg
ICBtYWtlQVNhbXBsZSg0LCA2LCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FLCAxKSwKKyAgICAgICAg
ICAgIG1ha2VBU2FtcGxlKDUsIDcsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUsIDEpLAorICAgICAg
ICBdKTsKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKHNhbXBsZXMpJyk7
CisgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAg
ICAgICAgYnVmZmVyZWRTYW1wbGVzID0gaW50ZXJuYWxzLmJ1ZmZlcmVkU2FtcGxlc0ZvclRyYWNr
SUQoc291cmNlQnVmZmVyLCAxKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCJidWZmZXJlZFNhbXBs
ZXMubGVuZ3RoIiwgOSk7CisgICAgICAgIGJ1ZmZlcmVkU2FtcGxlcy5mb3JFYWNoKGNvbnNvbGVX
cml0ZSk7CisgICAgICAgIGVuZFRlc3QoKTsKKworICAgIH0sIHtvbmNlOiB0cnVlfSk7CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2PlRoaXMgdGVzdHMgdGhhdCBhbiBv
dmVybGFwcGluZyBhcHBlbmQgb2Ygc2FtcGxlcyB3aXRoIHJlb3JkZXJlZCBwcmVzZW50YXRpb24g
dGltZXN0YW1wcyB3aWxsIGNvcnJlY3RseSByZW1vdmUgcHJldmlvdXNseSBhcHBlbmRlZCBub24t
cmVvcmRlcmVkIHNhbXBsZXMuPC9kaXY+CisgICAgPHZpZGVvPjwvdmlkZW8+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>